:root{--ink:#f6f3ec;--muted:#a9a69e;--bg:#0a0a0a;--panel:#141412;--panel-2:#1c1c19;--accent:#f5c842;--line:#2e2e29;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--ink);margin:0;font-family:Arial,Helvetica,sans-serif;line-height:1.6}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit}.site-header{z-index:50;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#0a0a0ad6;border-bottom:1px solid #ffffff14;position:fixed;inset:0 0 auto}.nav-shell{align-items:center;gap:30px;width:min(1240px,100% - 48px);height:72px;margin:auto;display:flex}.brand{flex-direction:column;margin-right:auto;font-weight:800;line-height:1.15;display:flex}.brand span,h1 span,h2 span{color:var(--accent)}.brand small{color:var(--muted);text-transform:uppercase;letter-spacing:.11em;font-size:11px}.nav-links{gap:4px;display:flex}.nav-links a{color:#d8d5ce;text-transform:capitalize;border-radius:6px;padding:8px 11px;font-size:14px}.nav-links a:hover{color:var(--accent);background:#1d1d1a}.social-links{gap:14px;display:flex}.social-links a:hover{color:var(--accent)}.menu-button{color:#fff;background:0 0;border:0;display:none}.section{width:min(1240px,100% - 48px);margin:0 auto;scroll-margin-top:72px}.hero{grid-template-columns:1.05fr .95fr;align-items:center;gap:80px;min-height:100vh;padding-top:120px;display:grid}.eyebrow{color:var(--accent);text-transform:uppercase;letter-spacing:.2em;font-size:12px;font-weight:800}.hero h1{letter-spacing:-.07em;max-width:800px;margin:4px 0;font-size:clamp(64px,9vw,132px);line-height:.87}.hero-role{color:var(--muted);margin:20px 0 30px;font-size:clamp(20px,3vw,32px)}.about-copy{max-width:650px}.about-copy h2{margin:20px 0 4px;font-size:20px}.about-copy p{color:#c4c1ba;margin:0}.text-link{border-bottom:2px solid var(--accent);align-items:center;gap:10px;margin-top:34px;padding-bottom:5px;font-weight:800;display:inline-flex}.portrait-wrap{justify-self:center;position:relative}.portrait-frame{aspect-ratio:4/5;border:12px solid var(--panel);background:var(--panel);outline:1px solid #4b493f;width:min(420px,38vw);transition:outline-color .3s,box-shadow .3s;position:relative;overflow:hidden}.portrait-wrap:hover .portrait-frame{outline-color:var(--accent);box-shadow:0 24px 70px #00000073}.portrait-frame img{object-fit:cover;filter:grayscale(20%);width:100%;height:100%}.portrait-label{background:var(--accent);color:#111;padding:9px 14px;font-weight:800;position:absolute;bottom:26px;left:-38px;transform:rotate(-3deg)}.data-notice{border-left:3px solid var(--accent);color:var(--muted);padding-left:12px}.section-block{min-height:90vh;padding:120px 0}.section-title{margin-bottom:52px}.section-title h2,.contact-intro h2{letter-spacing:-.05em;margin:8px 0;font-size:clamp(44px,7vw,84px);line-height:1}.timeline{position:relative}.timeline:before{content:"";background:var(--line);width:1px;position:absolute;top:0;bottom:0;left:26%}.timeline-item{grid-template-columns:24% 4% 72%;align-items:start;margin-bottom:28px;display:grid}.timeline-date{text-align:right;color:var(--muted);padding:20px 30px 0 0}.timeline-dot{border:4px solid var(--bg);background:var(--accent);z-index:1;border-radius:50%;width:48px;height:48px;margin-left:-23px;position:relative;overflow:hidden}.timeline-dot img{object-fit:cover;width:100%;height:100%}.timeline-card{background:var(--panel);border:1px solid var(--line);padding:28px}.timeline-card h3{margin:0;font-size:28px}.timeline-card strong{color:var(--accent)}.timeline-card p{color:var(--muted);margin-bottom:0}.project-grid{grid-template-columns:repeat(3,1fr);gap:20px;display:grid}.project-card{background:var(--panel);border:1px solid var(--line);transition:border-color .25s}.project-card:hover{border-color:var(--accent)}.project-image{background:var(--panel-2);height:230px;position:relative;overflow:hidden}.project-image img{object-fit:cover;width:100%;height:100%;transition:transform .35s}.project-card:hover img{transform:scale(1.035)}.project-image svg{background:var(--accent);color:#111;border-radius:50%;width:38px;height:38px;padding:8px;position:absolute;top:14px;right:14px}.project-copy{padding:24px}.project-copy h3{margin:0;font-size:27px}.project-copy p{color:var(--muted);min-height:76px}.project-copy span{color:var(--accent);font-size:13px;font-weight:800}.skills-grid{grid-template-columns:repeat(2,1fr);gap:20px;display:grid}.skill-group{background:var(--panel);border:1px solid var(--line);padding:28px}.skill-group h3{margin:0 0 20px;font-size:24px}.skill-list{flex-wrap:wrap;gap:9px;display:flex}.skill-list span{background:var(--panel-2);border:1px solid #33332e;padding:9px 12px;transition:color .2s,border-color .2s,transform .2s}.skill-list span:hover{color:var(--accent);border-color:var(--accent);transform:translateY(-2px)}.skill-list small{color:var(--accent);margin-left:8px}.contact-section{grid-template-columns:1fr 1fr;align-items:center;gap:80px;min-height:100vh;padding:120px 0;display:grid}.contact-intro>p:last-child{max-width:500px;color:var(--muted)}.contact-form{background:var(--panel);border:1px solid var(--line);padding:34px}.contact-form label{color:#d8d5ce;margin-bottom:16px;font-size:13px;font-weight:700;display:block}.contact-form input,.contact-form textarea{width:100%;color:var(--ink);resize:vertical;background:#0e0e0d;border:1px solid #3b3b35;outline:none;margin-top:6px;padding:12px 13px;display:block}.contact-form input:focus,.contact-form textarea:focus{border-color:var(--accent)}.contact-form .field-invalid{color:#ff9a9a}.contact-form input[aria-invalid=true],.contact-form textarea[aria-invalid=true]{background:#6f181821;border-color:#e85d5d;box-shadow:0 0 0 3px #e85d5d1a}.contact-form input[aria-invalid=true]:focus,.contact-form textarea[aria-invalid=true]:focus{border-color:#ff7b7b;box-shadow:0 0 0 3px #ff7b7b29}.field-message{color:#ff8d8d;align-items:center;gap:6px;margin-top:6px;font-size:12px;font-weight:700;line-height:1.35;animation:.2s ease-out both field-error-in;display:flex}.field-message svg{flex:none}@keyframes field-error-in{0%{opacity:0;transform:translateY(-3px)}}.button{background:var(--accent);color:#111;cursor:pointer;border:0;justify-content:center;align-items:center;gap:9px;padding:12px 18px;font-weight:900;display:inline-flex}.button:disabled{opacity:.6;cursor:wait}.cv-section{padding:110px 0}.cv-heading{justify-content:space-between;align-items:center;gap:24px;display:flex}.cv-heading .section-title{margin-bottom:52px}.cv-grid{grid-template-columns:repeat(3,1fr);gap:20px;display:grid}.cv-grid article{border-top:2px solid var(--accent);background:var(--panel);flex-direction:column;gap:8px;padding:26px;display:flex}.cv-grid h3{margin:0 0 8px}.cv-grid a,.cv-grid span{color:var(--muted);align-items:center;gap:9px;display:flex}.cv-details{grid-template-columns:1fr 1fr;gap:20px;margin-top:20px;display:grid}.cv-details>article{background:var(--panel);border:1px solid var(--line);padding:26px}.cv-details>article:last-child{grid-column:1/-1}.cv-details h3{margin-top:0;font-size:24px}.cv-details article div{margin:18px 0}.cv-details article div strong,.cv-details article div small{display:block}.cv-details small,.cv-details p{color:var(--muted)}.cv-details p{margin-top:4px}footer{border-top:1px solid var(--line);width:min(1240px,100% - 48px);color:var(--muted);justify-content:space-between;margin:auto;padding:28px 0;display:flex}@media (min-width:1200px){.hero{grid-template-columns:minmax(0,1fr) 420px}}@media (max-width:900px){.hero{grid-template-columns:1fr;gap:50px;padding-bottom:90px}.portrait-frame{width:min(520px,82vw)}.portrait-wrap{grid-row:1}.project-grid{grid-template-columns:repeat(2,1fr)}.contact-section{grid-template-columns:1fr;gap:35px}.cv-grid,.cv-details{grid-template-columns:1fr}.cv-details>article:last-child{grid-column:auto}}@media (max-width:680px){.section,.nav-shell{width:min(100% - 30px,1240px)}.nav-shell{gap:12px}.social-links{gap:9px}.menu-button{display:block}.nav-links{border-bottom:1px solid var(--line);background:#10100f;padding:14px;display:none;position:absolute;top:71px;left:0;right:0}.nav-links.open{display:grid}.hero h1{font-size:62px}.project-grid,.skills-grid{grid-template-columns:1fr}.timeline:before{left:23px}.timeline-item{grid-template-columns:46px 1fr}.timeline-date{text-align:left;grid-column:2;padding:0 0 7px 14px}.timeline-dot{grid-area:1/1/3;width:46px;height:46px;margin:0}.timeline-card{grid-column:2;margin-left:14px;padding:20px}.contact-form{padding:22px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;transition-delay:0s!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@media print{:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}body{color:#111;background:#fff}.site-header,.hero,#experience,#work,#skills,#contact,footer,.print-cv{display:none!important}.cv-section{width:100%;padding:0}.cv-section .eyebrow{color:#555}.cv-section h2 span{color:#111}.cv-grid{grid-template-columns:repeat(3,1fr)}.cv-grid article,.cv-details>article{color:#111;background:#fff;border-color:#bbb}.cv-grid a,.cv-grid span,.cv-details small,.cv-details p{color:#333}}.login-page{background:radial-gradient(circle at 20% 15%, #292614, transparent 32%), var(--bg);place-items:center;min-height:100vh;padding:24px;display:grid}.login-card{background:var(--panel);border:1px solid var(--line);width:min(440px,100%);padding:38px;box-shadow:0 28px 80px #00000059}.login-card h1{margin:5px 0;font-size:36px}.login-card>p:not(.eyebrow){color:var(--muted)}.login-card form{margin:28px 0}.login-card label,.admin-modal label{color:#d3d0c8;margin-bottom:15px;font-size:13px;font-weight:800;display:block}.login-card input,.admin-modal input:not([type=checkbox]),.admin-modal textarea,.admin-modal select{width:100%;color:var(--ink);background:#0c0c0b;border:1px solid #3b3b35;outline:none;margin-top:6px;padding:11px 12px;display:block}.login-card input:focus,.admin-modal input:focus,.admin-modal textarea:focus,.admin-modal select:focus{border-color:var(--accent)}.login-card .button{width:100%}.login-card>a{color:var(--muted);align-items:center;gap:7px;font-size:13px;display:flex}.login-card .form-status.error{color:#ff7676;margin:12px 0 0;font-size:13px;font-weight:700}.login-icon{background:var(--accent);color:#111;place-items:center;width:48px;height:48px;margin-bottom:25px;display:grid}.admin-shell{color:#1a1a18;background:#efeee9;min-height:100vh}.admin-sidebar{color:#e9e7e0;background:#11110f;border-right:1px solid #282824;flex-direction:column;width:245px;display:flex;position:fixed;inset:0 auto 0 0}.admin-brand{border-bottom:1px solid #292925;align-items:center;gap:12px;padding:22px 20px;font-weight:900;display:flex}.admin-brand>span{background:var(--accent);color:#111;place-items:center;width:38px;height:38px;display:grid}.admin-brand div{flex-direction:column;line-height:1.15;display:flex}.admin-brand small{color:#85857e;text-transform:uppercase;letter-spacing:.12em;font-size:10px}.admin-sidebar nav{gap:3px;padding:16px 10px;display:grid}.admin-sidebar nav a{color:#aaa9a2;border-radius:5px;align-items:center;gap:11px;padding:10px 12px;font-size:14px;font-weight:700;display:flex}.admin-sidebar nav a:hover,.admin-sidebar nav a.active{color:#111;background:var(--accent)}.admin-user{border-top:1px solid #292925;justify-content:space-between;align-items:center;margin-top:auto;padding:18px;display:flex}.admin-user div{flex-direction:column;display:flex}.admin-user small{color:#777770}.admin-user button,.record-actions button,.modal-heading button{color:inherit;cursor:pointer;background:0 0;border:0;padding:8px}.admin-main{min-height:100vh;margin-left:245px}.admin-main>header{background:#fff;border-bottom:1px solid #dcdbd5;justify-content:space-between;align-items:center;height:74px;padding:0 35px;display:flex}.admin-main>header div{flex-direction:column;line-height:1.15;display:flex}.admin-main>header p{color:#777;text-transform:uppercase;letter-spacing:.1em;margin:0;font-size:11px}.admin-main>header a{font-size:13px;font-weight:800}.admin-content{max-width:1200px;margin:auto;padding:42px 35px}.admin-heading{justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:28px;display:flex}.admin-heading h1{letter-spacing:-.04em;margin:4px 0 0;font-size:clamp(30px,4vw,46px);line-height:1.1}.admin-heading .eyebrow{margin:0}.stats-grid{grid-template-columns:repeat(4,1fr);gap:16px;display:grid}.stats-grid a{background:#fff;border:1px solid #dcdbd5;flex-direction:column;min-height:160px;padding:22px;display:flex;position:relative}.stats-grid svg{color:#8d7b17}.stats-grid strong{margin-top:auto;font-size:39px;line-height:1}.stats-grid span{color:#73736e;font-size:13px}.record-list{gap:10px;display:grid}.record-list article{background:#fff;border:1px solid #dcdbd5;justify-content:space-between;align-items:center;gap:20px;padding:18px 20px;display:flex}.record-list article>div:first-child{grid-template-columns:minmax(180px,1fr) minmax(180px,1fr) minmax(180px,1fr);gap:25px;width:100%;min-width:0;display:grid}.record-list strong,.record-list span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.record-list span{color:#74746e;font-size:14px}.record-actions{display:flex}.record-actions button{color:#555}.record-actions button:hover{background:#eee}.record-actions button.danger{color:#aa2d2d}.admin-empty{text-align:center;color:#777;background:#ffffff73;border:1px dashed #bbb;padding:50px 25px}.admin-error{color:#8f2525;background:#ffe7e7;border-left:3px solid #b72f2f;padding:12px 15px}.modal-backdrop{z-index:100;background:#000000b8;place-items:center;padding:24px;display:grid;position:fixed;inset:0;overflow-y:auto}.admin-modal{width:min(680px,100%);max-height:calc(100vh - 48px);color:var(--ink);background:#171715;border:1px solid #3b3b35;padding:28px;overflow-y:auto;box-shadow:0 25px 100px #000}.modal-heading{justify-content:space-between;align-items:flex-start;margin-bottom:25px;display:flex}.modal-heading p{margin:0}.modal-heading h2{text-transform:capitalize;margin:2px 0;font-size:30px}.modal-heading button{color:#aaa}.admin-modal textarea{resize:vertical}.admin-modal input[type=file]{padding:8px}.checkbox-field{align-items:center;gap:9px;display:flex!important}.checkbox-field input{accent-color:var(--accent)}.modal-actions{justify-content:flex-end;gap:10px;margin-top:25px;display:flex}.modal-actions>button:not(.button){color:#ddd;cursor:pointer;background:0 0;border:1px solid #444;padding:11px 17px}@media (max-width:900px){.stats-grid{grid-template-columns:repeat(2,1fr)}.record-list article>div:first-child{grid-template-columns:1fr 1fr}.record-list article>div:first-child span:last-child{display:none}}@media (max-width:680px){.admin-sidebar{width:100%;position:static}.admin-sidebar nav{grid-template-columns:repeat(4,1fr)}.admin-sidebar nav a{justify-content:center}.admin-sidebar nav a svg{flex-shrink:0}.admin-sidebar nav a{font-size:0}.admin-user{display:none}.admin-main{margin-left:0}.admin-main>header,.admin-content{padding-left:16px;padding-right:16px}.stats-grid{grid-template-columns:1fr 1fr}.admin-heading{flex-direction:column;align-items:flex-start}.record-list article>div:first-child{flex-direction:column;gap:2px;display:flex}.record-list article>div:first-child span{display:block!important}.admin-modal{padding:20px}}.content-editor::backdrop{background:#000000b8}.content-editor{margin:auto}.editor-group{border:0;min-width:0;margin:0 0 28px;padding:0}.editor-group legend{border-bottom:1px solid var(--line);width:100%;color:var(--accent);margin-bottom:16px;padding:10px 0;font-size:18px;font-weight:800}.editor-image{margin-bottom:20px}.editor-image>a{color:var(--accent);margin-bottom:12px;display:inline-block}.editor-image small{color:var(--muted)}.admin-content-links{margin-top:36px}.admin-content-links p{color:#666}.admin-content-links>div{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;display:grid}.admin-content-links a{background:#fff;border:1px solid #dcdbd5;padding:18px;font-weight:700}.admin-content-links a:hover{border-color:#8d7b17}.portfolio-experience{overflow:clip}.reading-progress{z-index:60;background:var(--accent);transform-origin:0;pointer-events:none;height:2px;position:fixed;top:0;left:0;right:0;transform:scaleX(0);box-shadow:0 0 14px #f5c84299}.portfolio-experience .hero{isolation:isolate;padding-bottom:72px;position:relative}.hero-scene{z-index:-1;pointer-events:none;background:radial-gradient(at 82% 45%,#f5c84217,#0000 48%);position:absolute;inset:0 calc(min(1240px,100vw - 48px)/2 - 50vw);overflow:hidden;-webkit-mask-image:linear-gradient(#0000,#000 15% 75%,#0000);mask-image:linear-gradient(#0000,#000 15% 75%,#0000)}.hero-scene:before{content:"";opacity:.2;background-image:linear-gradient(#f5c8421f 1px,#0000 1px),linear-gradient(90deg,#f5c8421f 1px,#0000 1px);background-size:64px 64px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(at 70%,#000,#0000 70%);mask-image:radial-gradient(at 70%,#000,#0000 70%)}.hero-scene canvas{width:100%;height:100%;display:block}.hero-copy{min-width:0}.hero h1 .hero-name-word{vertical-align:bottom;color:var(--ink);margin-bottom:-.13em;padding-bottom:.13em;display:inline-block;overflow:clip}.hero-name-word>span{color:inherit;transform-origin:0 100%;display:inline-block}.hero h1 .hero-name-letter{color:inherit}.hero h1 .hero-name-dot{color:var(--accent)}.hero .eyebrow{align-items:center;gap:12px;display:flex}.hero .eyebrow:before{content:"";background:var(--accent);width:28px;height:1px}.hero .about-copy p{max-width:57ch}.portrait-parallax{justify-self:center;position:relative}.portrait-interaction{perspective:1000px;position:relative}.portfolio-experience .portrait-frame{border:8px solid #1a1914;border-radius:4px;box-shadow:0 30px 90px #0008}.portrait-shine{pointer-events:none;background:linear-gradient(135deg,#ffffff18,#0000 45%,#f5c84210);position:absolute;inset:0}.portrait-orbit{pointer-events:none;border:1px solid #f5c84240;border-radius:6px;position:absolute;inset:-22px;transform:rotate(-5deg)}.portrait-orbit:before,.portrait-orbit:after{content:"";background:var(--accent);width:7px;height:7px;position:absolute;box-shadow:0 0 18px #f5c84280}.portrait-orbit:before{top:-4px;left:25%}.portrait-orbit:after{bottom:25%;right:-4px}.portrait-code{width:66px;height:66px;color:var(--accent);pointer-events:none;background:#141412;border:1px solid #f5c84266;place-items:center;font:700 24px ui-monospace,monospace;display:grid;position:absolute;top:-36px;right:-22px;transform:rotate(8deg);box-shadow:0 12px 40px #0008}.portfolio-experience .portrait-label{z-index:2;bottom:26px;left:-24px;box-shadow:0 8px 30px #0005}.portfolio-experience .section-title{padding-bottom:28px;position:relative}.portfolio-experience .section-title:after{content:"";width:min(160px,35%);height:2px;transform:scaleX(var(--line-progress,1));transform-origin:0;background:linear-gradient(90deg, var(--accent), transparent);position:absolute;bottom:0;left:0}.portfolio-experience .timeline:after{content:"";width:1px;transform:scaleY(var(--timeline-progress,1));transform-origin:top;background:var(--accent);position:absolute;top:0;bottom:0;left:26%;box-shadow:0 0 12px #f5c84266}.portfolio-experience .timeline-card{background:linear-gradient(130deg, #1b1b17, var(--panel));transition:border-color .25s}.portfolio-experience .timeline-card:hover{border-color:#f5c84260}.portfolio-experience .project-card{border-radius:8px;position:relative;overflow:hidden;box-shadow:0 18px 45px #0003}.portfolio-experience .project-image svg{transition:transform .3s}.portfolio-experience .project-card:hover .project-image svg{transform:rotate(45deg)}.portfolio-experience .project-card:focus-visible{outline:2px solid var(--accent);outline-offset:5px}.portfolio-experience .skill-group{background:radial-gradient(ellipse at top right, #f5c84208, transparent 65%), var(--panel);border-radius:8px}.portfolio-experience .text-link{transition:gap .25s,color .25s}.portfolio-experience .text-link:hover{color:var(--accent);gap:18px}.portfolio-experience .button{transition:box-shadow .25s,transform .25s}.portfolio-experience .button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 8px 30px #f5c84226}@media (max-width:900px){.portrait-parallax{grid-row:1}.hero-scene{background:radial-gradient(at 50% 28%,#f5c84210,#0000 65%)}}@media (max-width:680px){.portfolio-experience .timeline:after{left:23px}.portrait-orbit{inset:-12px;transform:rotate(-3deg)}.portrait-code{width:48px;height:48px;font-size:19px;top:-20px;right:-8px}.portfolio-experience .portrait-label{left:-8px}}@media (prefers-reduced-motion:reduce){.reading-progress{display:none}.portfolio-experience .button:hover,.portfolio-experience .project-card:hover img,.portfolio-experience .project-card:hover .project-image svg{transform:none}}@media print{.hero-scene,.reading-progress{display:none}}
