@font-face{font-family:__Bricolage_Grotesque_a4bae9;font-style:normal;font-weight:200 800;font-stretch:100%;font-display:swap;src:url(/_next/static/media/93a6e477e1480c92-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:__Bricolage_Grotesque_a4bae9;font-style:normal;font-weight:200 800;font-stretch:100%;font-display:swap;src:url(/_next/static/media/c7e0cf6c760983e7-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:__Bricolage_Grotesque_a4bae9;font-style:normal;font-weight:200 800;font-stretch:100%;font-display:swap;src:url(/_next/static/media/9d5a263311222317-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:__Bricolage_Grotesque_Fallback_a4bae9;src:local("Arial");ascent-override:88.21%;descent-override:25.61%;line-gap-override:0.00%;size-adjust:105.43%}.__className_a4bae9{font-family:__Bricolage_Grotesque_a4bae9,__Bricolage_Grotesque_Fallback_a4bae9;font-style:normal}.__variable_a4bae9{--font-display:"__Bricolage_Grotesque_a4bae9","__Bricolage_Grotesque_Fallback_a4bae9"}@font-face{font-family:__Inter_f367f3;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/ba9851c3c22cd980-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:__Inter_f367f3;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/21350d82a1f187e9-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:__Inter_f367f3;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/c5fe6dc8356a8c31-s.woff2) format("woff2");unicode-range:u+1f??}@font-face{font-family:__Inter_f367f3;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/19cfc7226ec3afaa-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:__Inter_f367f3;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/df0a9ae256c0569c-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:__Inter_f367f3;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/8e9860b6e62d6359-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:__Inter_f367f3;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/e4af272ccee01ff0-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:__Inter_Fallback_f367f3;src:local("Arial");ascent-override:90.49%;descent-override:22.56%;line-gap-override:0.00%;size-adjust:107.06%}.__className_f367f3{font-family:__Inter_f367f3,__Inter_Fallback_f367f3;font-style:normal}.__variable_f367f3{--font-body:"__Inter_f367f3","__Inter_Fallback_f367f3"}@font-face{font-family:__JetBrains_Mono_3c557b;font-style:normal;font-weight:100 800;font-display:swap;src:url(/_next/static/media/886030b0b59bc5a7-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:__JetBrains_Mono_3c557b;font-style:normal;font-weight:100 800;font-display:swap;src:url(/_next/static/media/0aa834ed78bf6d07-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:__JetBrains_Mono_3c557b;font-style:normal;font-weight:100 800;font-display:swap;src:url(/_next/static/media/67957d42bae0796d-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:__JetBrains_Mono_3c557b;font-style:normal;font-weight:100 800;font-display:swap;src:url(/_next/static/media/f911b923c6adde36-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:__JetBrains_Mono_3c557b;font-style:normal;font-weight:100 800;font-display:swap;src:url(/_next/static/media/939c4f875ee75fbb-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:__JetBrains_Mono_3c557b;font-style:normal;font-weight:100 800;font-display:swap;src:url(/_next/static/media/bb3ef058b751a6ad-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:__JetBrains_Mono_Fallback_3c557b;src:local("Arial");ascent-override:75.79%;descent-override:22.29%;line-gap-override:0.00%;size-adjust:134.59%}.__className_3c557b{font-family:__JetBrains_Mono_3c557b,__JetBrains_Mono_Fallback_3c557b;font-style:normal}.__variable_3c557b{--font-mono:"__JetBrains_Mono_3c557b","__JetBrains_Mono_Fallback_3c557b"}*,:after,:before{box-sizing:border-box;margin:0;padding:0}:root{--ink:#0d1714;--ink-2:#0a110e;--surface:#15211b;--surface-2:#1b2a22;--bone:#ece6d8;--marigold:#f4a62a;--jade:#56c596;--muted:#8fa096;--line:hsla(42,34%,89%,.12);--line-strong:hsla(42,34%,89%,.24);--step--1:0.82rem;--step-0:1rem;--step-1:1.2rem;--step-2:1.5rem;--step-3:2rem;--step-4:clamp(2.4rem,4vw,3.2rem);--step-5:clamp(3rem,8vw,6rem);--max-width:1180px;--nav-height:68px}html{scroll-behavior:smooth;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}body{font-family:var(--font-body),system-ui,sans-serif;background-color:var(--ink);line-height:1.65;overflow-x:hidden}body,h1,h2,h3,h4{color:var(--bone)}h1,h2,h3,h4{font-family:var(--font-display),system-ui,sans-serif;font-weight:600;line-height:1.05;letter-spacing:-.02em}p{color:var(--muted)}a{color:var(--marigold)}a,a:hover{text-decoration:none}img{max-width:100%;display:block}::selection{background:var(--marigold);color:var(--ink)}:focus-visible{outline:2px solid var(--marigold);outline-offset:3px;border-radius:2px}.section{max-width:var(--max-width);margin:0 auto;padding:clamp(72px,11vw,140px) clamp(1.5rem,5vw,4rem);scroll-margin-top:var(--nav-height)}.eyebrow{display:inline-flex;align-items:center;gap:.5ch;font-family:var(--font-mono),monospace;font-size:var(--step--1);letter-spacing:.06em;color:var(--marigold);text-transform:lowercase;margin-bottom:1.1rem}.eyebrow:before{content:"//";color:var(--jade);opacity:.8}.section-heading{font-size:var(--step-4);margin-bottom:2.5rem;max-width:20ch}.btn{display:inline-flex;align-items:center;gap:.6ch;font-family:var(--font-mono),monospace;font-size:var(--step-0);padding:.85rem 1.5rem;border-radius:8px;border:1px solid transparent;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease,background .2s ease,color .2s ease,border-color .2s ease}.btn-primary{background:var(--marigold);color:var(--ink);font-weight:500}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 10px 26px rgba(244,166,42,.28)}.btn-ghost{background:transparent;color:var(--bone);border-color:var(--line-strong)}.btn-ghost:hover{border-color:var(--marigold);color:var(--marigold)}.glow-bg{position:fixed;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(60% 55% at 18% 12%,rgba(244,166,42,.14),transparent 60%),radial-gradient(55% 50% at 88% 82%,rgba(86,197,150,.12),transparent 62%),var(--ink)}.navbar{top:0;z-index:1000;height:var(--nav-height);display:flex;align-items:center;justify-content:space-between;gap:2rem;padding:0 clamp(1.25rem,5vw,4rem);transition:background-color .3s ease,border-color .3s ease,-webkit-backdrop-filter .3s ease;transition:background-color .3s ease,border-color .3s ease,backdrop-filter .3s ease;transition:background-color .3s ease,border-color .3s ease,backdrop-filter .3s ease,-webkit-backdrop-filter .3s ease;border-bottom:1px solid transparent}.navbar-scrolled{background-color:rgba(10,17,14,.72);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}.nav-brand{font-family:var(--font-display),sans-serif;font-weight:700;font-size:1.15rem;letter-spacing:-.02em;color:var(--bone);display:inline-flex;align-items:center;gap:.5ch}.nav-brand .dot{width:8px;height:8px;border-radius:50%;background:var(--marigold);display:inline-block}.nav-links{display:flex;align-items:center;gap:1.75rem;list-style:none}.page-links a{font-family:var(--font-mono),monospace;font-size:var(--step--1);letter-spacing:.02em;color:var(--muted);transition:color .2s ease}.page-links a:hover{color:var(--bone)}.social-links{gap:1.1rem}.social-links a{color:var(--muted);display:inline-flex;transition:color .2s ease,transform .2s ease}.social-links a:hover{color:var(--marigold);transform:translateY(-2px)}.nav-right{display:flex;align-items:center;gap:1.75rem}.hamburger{display:none;background:none;border:none;cursor:pointer;flex-direction:column;gap:5px}.hamburger span{width:24px;height:2px;background-color:var(--bone);transition:all .3s ease}@media (max-width:860px){.hamburger{display:flex}.nav-right{position:absolute;top:var(--nav-height);left:0;width:100%;flex-direction:column;gap:1.5rem;padding:1.75rem 0 2rem;background-color:rgba(10,17,14,.96);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--line);transform-origin:top;transform:scaleY(0);opacity:0;pointer-events:none;transition:transform .25s ease,opacity .25s ease}.nav-right.open{transform:scaleY(1);opacity:1;pointer-events:auto}.nav-links{flex-direction:column;gap:1.4rem}.page-links a{font-size:1rem}}.hero{max-width:var(--max-width);margin:0 auto;padding:clamp(3rem,9vw,7rem) clamp(1.5rem,5vw,4rem) clamp(4rem,8vw,6rem);display:grid;grid-template-columns:1.35fr .9fr;grid-gap:clamp(2rem,5vw,4.5rem);gap:clamp(2rem,5vw,4.5rem);align-items:center;min-height:calc(100vh - var(--nav-height))}.hero-eyebrow{font-family:var(--font-mono),monospace;font-size:var(--step-0);letter-spacing:.04em;color:var(--jade);text-transform:lowercase;margin-bottom:1.4rem}.hero-name{font-size:var(--step-5);line-height:.94;margin-bottom:1.4rem}.hero-name .surname{position:relative;white-space:nowrap}.hero-name .surname:after{content:"";position:absolute;left:0;right:0;bottom:.08em;height:.09em;background:var(--marigold);border-radius:2px}.hero-role{font-family:var(--font-mono),monospace;font-size:clamp(1.1rem,2.4vw,1.7rem);color:var(--bone);margin-bottom:1.6rem;min-height:1.6em}.hero-subtitle{max-width:46ch;font-size:var(--step-1);color:var(--muted);margin-bottom:2rem}.hero-actions{display:flex;flex-wrap:wrap;gap:1rem;margin-bottom:2.4rem}.spec-sheet{border:1px solid var(--line);border-radius:12px;background:rgba(21,33,27,.5);padding:1.2rem 1.4rem;font-family:var(--font-mono),monospace;font-size:var(--step--1);max-width:30rem}.spec-row{display:grid;grid-template-columns:6.5rem 1fr;grid-gap:1rem;gap:1rem;padding:.42rem 0}.spec-row+.spec-row{border-top:1px dashed var(--line)}@media (max-width:520px){.spec-sheet{padding:1rem 1.1rem;font-size:.78rem}.spec-row{grid-template-columns:5rem 1fr;gap:.7rem}}.spec-key{color:var(--muted);text-transform:lowercase;letter-spacing:.04em}.spec-val{color:var(--bone)}.spec-status{display:inline-flex;align-items:center;gap:.6ch;color:var(--jade)}.spec-status .pulse{width:8px;height:8px;border-radius:50%;background:var(--jade);box-shadow:0 0 0 0 rgba(86,197,150,.6);animation:pulse 2.4s infinite}@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(86,197,150,.5)}70%{box-shadow:0 0 0 8px rgba(86,197,150,0)}to{box-shadow:0 0 0 0 rgba(86,197,150,0)}}.hero-portrait{justify-self:center;position:relative;width:min(360px,80%);aspect-ratio:4/5}.hero-portrait .frame{position:absolute;inset:0;border-radius:18px;overflow:hidden;border:1px solid var(--line-strong);background:var(--surface);z-index:2}.hero-portrait .frame img{width:100%;height:100%;object-fit:cover;filter:saturate(1.05) contrast(1.02)}.hero-portrait .frame-offset{position:absolute;inset:0;border-radius:18px;border:1px solid var(--marigold);transform:translate(16px,16px);z-index:1}.hero-portrait .portrait-tag{position:absolute;left:12px;bottom:-14px;z-index:3;font-family:var(--font-mono),monospace;font-size:.72rem;color:var(--ink);background:var(--marigold);padding:.28rem .7rem;border-radius:6px}.hero-stagger>*{opacity:0;transform:translateY(16px);animation:rise .7s ease forwards}.hero-stagger>:first-child{animation-delay:.05s}.hero-stagger>:nth-child(2){animation-delay:.15s}.hero-stagger>:nth-child(3){animation-delay:.25s}.hero-stagger>:nth-child(4){animation-delay:.35s}.hero-stagger>:nth-child(5){animation-delay:.45s}.hero-stagger>:nth-child(6){animation-delay:.55s}.hero-portrait{opacity:0;animation:rise .8s ease .4s forwards}@keyframes rise{to{opacity:1;transform:none}}@media (max-width:860px){.hero{grid-template-columns:1fr;text-align:left;min-height:auto}.hero-portrait{grid-row:1;justify-self:start;width:min(260px,70%);margin-bottom:1rem}}.text-type{display:inline-block;color:var(--marigold)}.text-type__cursor{margin-left:.15rem;display:inline-block;color:var(--jade);animation:blink 1s step-end infinite}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}.about-container{display:grid;grid-template-columns:1.3fr .85fr;grid-gap:clamp(2rem,5vw,4rem);gap:clamp(2rem,5vw,4rem);align-items:start}.about-info .section-heading{margin-bottom:1.6rem}.about-info .text{font-size:var(--step-1);color:var(--muted);margin-bottom:1.2rem}.highlight-link{color:var(--marigold);font-weight:500;border-bottom:1px solid rgba(244,166,42,.4)}.highlight-link:hover{border-color:var(--marigold)}.technologies{margin:2rem 0 .5rem}.technologies .label{font-family:var(--font-mono),monospace;font-size:var(--step--1);color:var(--jade);text-transform:lowercase;letter-spacing:.05em;margin-bottom:1rem}.tech-list{list-style:none;display:flex;flex-wrap:wrap;gap:.6rem;padding:0;margin:0}.tech-list li{font-family:var(--font-mono),monospace;font-size:.82rem;color:var(--bone);background:var(--surface);border:1px solid var(--line);padding:.4rem .8rem;border-radius:999px;transition:border-color .2s ease,color .2s ease,transform .2s ease}.tech-list li:hover{border-color:var(--jade);color:var(--jade);transform:translateY(-2px)}.about-media{position:relative}.about-image{border-radius:14px;border:1px solid var(--line);aspect-ratio:3/2;background-size:cover;background-position:50%}.about-caption{font-family:var(--font-mono),monospace;font-size:.72rem;color:var(--muted);margin-top:.7rem}@media (max-width:860px){.about-container{grid-template-columns:1fr}.about-media{order:-1;max-width:320px}}.experience-content{display:flex;gap:clamp(1.5rem,4vw,3.5rem)}.experience-content.single{display:block}.experience-tabs{display:flex;flex-direction:column;min-width:210px;gap:2px}.experience-tab{background:none;border:none;border-left:2px solid var(--line);text-align:left;padding:.7rem 1.1rem;font-family:var(--font-mono),monospace;font-size:.95rem;color:var(--muted);cursor:pointer;transition:color .2s ease,border-color .2s ease,background .2s ease}.experience-tab:hover{color:var(--bone);background:hsla(42,34%,89%,.03)}.experience-tab.active{color:var(--marigold);border-left:2px solid var(--marigold)}.experience-details{flex:1 1;transition:opacity .3s ease,transform .3s ease}.experience-details.fade-in{opacity:1;transform:translateY(0)}.experience-details.fade-out{transform:translateY(10px)}.experience-role{padding-bottom:2rem;margin-bottom:2rem;border-bottom:1px solid var(--line)}.experience-role:last-child{border-bottom:none;margin-bottom:0}.role-title{font-size:var(--step-2);font-weight:600;color:var(--bone);margin-bottom:.3rem}.role-title .department{color:var(--jade)}.role-date{font-family:var(--font-mono),monospace;font-size:var(--step--1);color:var(--muted);margin-bottom:1rem}.role-description{list-style:none;padding-left:0}.role-description li{position:relative;padding-left:1.5rem;margin-bottom:.7rem;color:var(--muted)}.role-description li:before{content:"▹";position:absolute;left:0;color:var(--marigold)}@media (max-width:720px){.experience-content{flex-direction:column}.experience-tabs{flex-direction:row;overflow-x:auto;min-width:0}.experience-tab{border-left:none;border-bottom:2px solid var(--line);white-space:nowrap}.experience-tab.active{border-left:none;border-bottom:2px solid var(--marigold)}}.projects-filters{display:flex;flex-wrap:wrap;gap:.6rem;margin:0 0 2.5rem}.filter-btn{background:transparent;border:1px solid var(--line);padding:.45rem 1rem;border-radius:999px;font-family:var(--font-mono),monospace;font-size:.8rem;color:var(--muted);cursor:pointer;transition:all .2s ease}.filter-btn:hover{border-color:var(--bone);color:var(--bone)}.filter-btn.active{background:var(--marigold);color:var(--ink);border-color:var(--marigold)}.projects-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));grid-gap:1.6rem;gap:1.6rem}.project-card{background-color:var(--surface);border:1px solid var(--line);border-radius:14px;overflow:hidden;display:flex;flex-direction:column;cursor:pointer;transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease}.project-card:hover{transform:translateY(-6px);border-color:var(--marigold);box-shadow:0 24px 44px rgba(0,0,0,.4)}.project-cover{position:relative;width:100%;height:190px;overflow:hidden}.project-cover img{width:100%;height:100%;object-fit:cover;transition:transform .4s ease}.project-card:hover .project-cover img{transform:scale(1.05)}.project-cover .cover-tag{position:absolute;left:12px;top:12px;font-family:var(--font-mono),monospace;font-size:.68rem;letter-spacing:.03em;color:var(--ink);background:var(--jade);padding:.25rem .6rem;border-radius:6px}.project-info{position:relative;padding:1.4rem;display:flex;flex-direction:column;gap:.8rem;flex:1 1}.project-links{position:absolute;top:-1.35rem;right:1.2rem;display:flex;gap:.5rem}.project-links a{width:34px;height:34px;display:inline-flex;align-items:center;justify-content:center;border-radius:8px;background:var(--ink);border:1px solid var(--line);color:var(--bone);transition:color .2s ease,border-color .2s ease,transform .2s ease}.project-links a:hover{color:var(--marigold);border-color:var(--marigold);transform:translateY(-2px)}.project-title{font-family:var(--font-display),sans-serif;font-size:var(--step-2);color:var(--bone)}.project-description{font-size:.92rem;color:var(--muted);line-height:1.55;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden;max-height:calc(.92rem * 1.55 * 4);margin-bottom:auto}.project-tech{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:auto}.tech-chip{font-family:var(--font-mono),monospace;padding:.28rem .7rem;font-size:.72rem;border-radius:999px;background-color:rgba(86,197,150,.12);color:var(--jade)}.gallery-overlay{position:fixed;inset:0;background:rgba(5,9,7,.85);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;z-index:2000;padding:1.5rem;animation:fadeIn .3s ease}.gallery-modal{background:var(--surface);border:1px solid var(--line);width:min(1000px,100%);max-height:90vh;border-radius:16px;padding:1.8rem;position:relative;display:flex;flex-direction:column;animation:scaleIn .3s ease}.gallery-close{position:absolute;top:.8rem;right:1rem;background:none;border:none;font-size:1.3rem;color:var(--muted);cursor:pointer;line-height:1}.gallery-close:hover{color:var(--marigold)}.gallery-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-bottom:1.1rem;padding-right:1.5rem}.gallery-title{font-size:var(--step-2);color:var(--bone)}.gallery-links{display:flex;gap:.6rem;flex-wrap:wrap;padding-top:1rem;border-top:1px solid var(--line)}.gallery-link-btn{display:inline-flex;align-items:center;gap:.5ch;font-family:var(--font-mono),monospace;padding:.45rem .9rem;border-radius:999px;border:1px solid var(--line-strong);color:var(--bone);font-size:.8rem;transition:background .2s ease,color .2s ease,border-color .2s ease}.gallery-link-btn:hover{background:var(--marigold);color:var(--ink);border-color:var(--marigold)}.gallery-body{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(250px,.85fr);grid-gap:1.5rem;gap:1.5rem;flex:1 1;min-height:0}.gallery-stage{display:flex;flex-direction:column;min-width:0;min-height:0}.gallery-main{position:relative;flex:1 1;display:flex;align-items:center;justify-content:center;background:var(--ink-2);border-radius:12px;overflow:hidden;min-height:280px;max-height:58vh}.gallery-backdrop{position:absolute;inset:0;background-size:cover;background-position:50%;filter:blur(34px) saturate(1.25) brightness(.55);transform:scale(1.18)}.gallery-main img,.gallery-main video{position:relative;max-width:100%;max-height:58vh;object-fit:contain}.gallery-shot{border-radius:6px;box-shadow:0 18px 50px rgba(0,0,0,.55)}.gallery-aside{display:flex;flex-direction:column;gap:1rem;min-height:0}.gallery-aside-scroll{flex:1 1;min-height:0;overflow-y:auto;padding-right:.4rem}.gallery-label{font-family:var(--font-mono),monospace;font-size:.72rem;letter-spacing:.08em;text-transform:lowercase;color:var(--jade);margin-bottom:.6rem}.gallery-label+.gallery-description+.gallery-label{margin-top:1.4rem}.gallery-description{font-size:.94rem;line-height:1.65;color:var(--muted)}.gallery-stack{display:flex;flex-wrap:wrap;gap:.5rem}.gallery-thumbnails{display:flex;gap:.6rem;margin-top:1rem;overflow-x:auto;padding-bottom:.3rem}.thumbnail{width:78px;height:58px;border-radius:8px;overflow:hidden;border:2px solid transparent;background:var(--ink-2);cursor:pointer;flex-shrink:0;padding:0}.thumbnail img{width:100%;height:100%;object-fit:cover}.thumbnail.active{border-color:var(--marigold)}.video-thumb{position:relative;width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,.5)}.video-thumb img{width:100%;height:100%;object-fit:cover}.video-thumb-play{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:1.1rem;color:var(--marigold);background:rgba(5,9,7,.45);text-shadow:0 2px 6px rgba(0,0,0,.6)}@media (max-width:900px){.gallery-modal{display:block;padding:1.4rem 1.1rem;overflow-y:auto;-webkit-overflow-scrolling:touch}.gallery-body{display:block;min-height:0}.gallery-stage{display:block;margin-bottom:1.4rem}.gallery-main,.gallery-main img,.gallery-main video{max-height:42vh}.gallery-aside{display:block}.gallery-aside-scroll{overflow:visible;padding-right:0}.gallery-links{margin-top:1.2rem}.gallery-header{padding-right:2.2rem}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes scaleIn{0%{transform:scale(.96)}to{transform:scale(1)}}.footer{border-top:1px solid var(--line);background-color:var(--ink-2);padding:2.5rem clamp(1.5rem,5vw,4rem)}.footer-inner{max-width:var(--max-width);margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:1.5rem;flex-wrap:wrap}.footer p{font-family:var(--font-mono),monospace;font-size:var(--step--1);color:var(--muted)}.footer-social{display:flex;gap:1.1rem}.footer-social a{color:var(--muted);transition:color .2s ease,transform .2s ease}.footer-social a:hover{color:var(--marigold);transform:translateY(-2px)}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}.hero-portrait,.hero-stagger>*{opacity:1!important;transform:none!important}}.project-page{padding-top:clamp(2.5rem,5vw,4rem)}.back-link{display:inline-block;font-family:var(--font-mono),monospace;font-size:var(--step--1);color:var(--muted);margin-bottom:2.5rem;transition:color .25s ease,transform .25s ease}.back-link:hover{color:var(--marigold);transform:translateX(-4px)}.project-hero{margin-bottom:2.5rem}.project-page-title{font-size:var(--step-5);line-height:.98;margin-bottom:1.2rem}.project-lead{font-size:var(--step-1);color:var(--muted);max-width:60ch;margin-bottom:1.8rem}.project-page-links{display:flex;flex-wrap:wrap;gap:.8rem}.page-gallery{margin-bottom:3.5rem}.page-gallery .gallery-main{max-height:62vh;min-height:320px}.page-gallery .gallery-main img,.page-gallery .gallery-main video{max-height:62vh}.project-body{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(240px,.8fr);grid-gap:clamp(2rem,5vw,4rem);gap:clamp(2rem,5vw,4rem);align-items:start}.project-section-title{font-size:var(--step-2);margin:2.4rem 0 1rem}.project-prose .reveal:first-child .project-section-title,.project-prose>:first-child .project-section-title{margin-top:0}.project-prose .text{font-size:var(--step-0);line-height:1.7;max-width:68ch}.project-meta{position:-webkit-sticky;position:sticky;top:calc(var(--nav-height) + 2rem);display:flex;flex-direction:column;gap:1rem}.project-meta .spec-sheet{max-width:none}.project-meta .project-tech{display:flex;flex-wrap:wrap;gap:.5rem}.project-next{margin-top:4rem;padding-top:2rem;border-top:1px solid var(--line)}.project-next-links{display:flex;flex-wrap:wrap;gap:1.5rem}.project-next-link{font-family:var(--font-display),sans-serif;font-size:var(--step-2);color:var(--bone);transition:color .25s ease,transform .25s ease;display:inline-block}.project-next-link:hover{color:var(--marigold);transform:translateX(4px)}.card-case-link{font-family:var(--font-mono),monospace;font-size:.78rem;color:var(--jade);margin-top:.9rem;display:inline-block;transition:color .25s ease,gap .25s ease}.card-case-link:hover{color:var(--marigold)}.gallery-link-btn.is-primary{background:var(--marigold);color:var(--ink);border-color:var(--marigold);font-weight:500}.gallery-link-btn.is-primary:hover{filter:brightness(1.08)}@media (max-width:900px){.project-body{grid-template-columns:1fr}.project-meta{position:static}}:root{--ease-out-soft:cubic-bezier(0.16,1,0.3,1);--ease-in-out-soft:cubic-bezier(0.65,0,0.35,1);--ease-spring:cubic-bezier(0.34,1.56,0.64,1);--scroll-p:0;--pointer-x:50%;--pointer-y:30%}.reveal{--reveal-delay:0ms;transition-delay:var(--reveal-delay)}.reveal-rise{opacity:0;transform:translate3d(0,34px,0);transition:opacity .9s var(--ease-out-soft),transform .9s var(--ease-out-soft)}.reveal-blur{opacity:0;filter:blur(14px);transform:translate3d(0,22px,0) scale(.985);transition:opacity 1s var(--ease-out-soft),filter 1s var(--ease-out-soft),transform 1s var(--ease-out-soft)}.reveal-clip{overflow:hidden}.reveal-clip>*{-webkit-clip-path:inset(0 0 100% 0);clip-path:inset(0 0 100% 0);transform:scale(1.08);transition:transform 1.4s var(--ease-out-soft),-webkit-clip-path 1.15s var(--ease-out-soft);transition:clip-path 1.15s var(--ease-out-soft),transform 1.4s var(--ease-out-soft);transition:clip-path 1.15s var(--ease-out-soft),transform 1.4s var(--ease-out-soft),-webkit-clip-path 1.15s var(--ease-out-soft);transition-delay:var(--reveal-delay)}.reveal-clip.is-visible>*{-webkit-clip-path:inset(0 0 0 0);clip-path:inset(0 0 0 0);transform:none}.reveal-scale{opacity:0;transform:translate3d(0,26px,0) scale(.94);transition:opacity .8s var(--ease-out-soft),transform .8s var(--ease-spring)}.reveal-left,.reveal-right{opacity:0;transition:opacity .9s var(--ease-out-soft),transform .9s var(--ease-out-soft)}.reveal-left{transform:translate3d(-42px,0,0)}.reveal-right{transform:translate3d(42px,0,0)}.reveal.is-visible{opacity:1;filter:none;transform:none;-webkit-clip-path:inset(0 0 0 0);clip-path:inset(0 0 0 0)}.reveal-stagger>*{opacity:0;transform:translate3d(0,24px,0);transition:opacity .75s var(--ease-out-soft),transform .75s var(--ease-out-soft)}.reveal-stagger.is-visible>*{opacity:1;transform:none}.reveal-stagger.is-visible>:first-child{transition-delay:calc(var(--reveal-delay) + var(--reveal-step, 70ms) * 0)}.reveal-stagger.is-visible>:nth-child(2){transition-delay:calc(var(--reveal-delay) + var(--reveal-step, 70ms) * 1)}.reveal-stagger.is-visible>:nth-child(3){transition-delay:calc(var(--reveal-delay) + var(--reveal-step, 70ms) * 2)}.reveal-stagger.is-visible>:nth-child(4){transition-delay:calc(var(--reveal-delay) + var(--reveal-step, 70ms) * 3)}.reveal-stagger.is-visible>:nth-child(5){transition-delay:calc(var(--reveal-delay) + var(--reveal-step, 70ms) * 4)}.reveal-stagger.is-visible>:nth-child(6){transition-delay:calc(var(--reveal-delay) + var(--reveal-step, 70ms) * 5)}.reveal-stagger.is-visible>:nth-child(7){transition-delay:calc(var(--reveal-delay) + var(--reveal-step, 70ms) * 6)}.reveal-stagger.is-visible>:nth-child(8){transition-delay:calc(var(--reveal-delay) + var(--reveal-step, 70ms) * 7)}.reveal-stagger.is-visible>:nth-child(9){transition-delay:calc(var(--reveal-delay) + var(--reveal-step, 70ms) * 8)}.reveal-stagger.is-visible>:nth-child(10){transition-delay:calc(var(--reveal-delay) + var(--reveal-step, 70ms) * 9)}.reveal-stagger.is-visible>:nth-child(11){transition-delay:calc(var(--reveal-delay) + var(--reveal-step, 70ms) * 10)}.reveal-stagger.is-visible>:nth-child(12){transition-delay:calc(var(--reveal-delay) + var(--reveal-step, 70ms) * 11)}.reveal-stagger.is-visible>:nth-child(13){transition-delay:calc(var(--reveal-delay) + var(--reveal-step, 70ms) * 12)}.reveal-stagger.is-visible>:nth-child(14){transition-delay:calc(var(--reveal-delay) + var(--reveal-step, 70ms) * 13)}.reveal-stagger.is-visible>:nth-child(n+15){transition-delay:calc(var(--reveal-delay) + var(--reveal-step, 70ms) * 14)}.split-word{display:inline-block;overflow:hidden;vertical-align:bottom;padding-bottom:.12em;margin-bottom:-.12em}.split-word-inner{display:inline-block;transform:translate3d(0,110%,0) rotate(3deg);opacity:0;transition:transform .95s var(--ease-out-soft),opacity .7s var(--ease-out-soft);transition-delay:var(--w-delay,0ms);will-change:transform}.split-text.is-visible .split-word-inner{transform:none;opacity:1}.glow-bg{background:radial-gradient(40% 38% at var(--pointer-x) var(--pointer-y),rgba(86,197,150,.1),transparent 70%),radial-gradient(60% 55% at 18% calc(12% + var(--scroll-p) * 40%),rgba(244,166,42,.15),transparent 60%),radial-gradient(55% 50% at 88% calc(82% - var(--scroll-p) * 46%),rgba(86,197,150,.13),transparent 62%),var(--ink);transition:background-position .2s linear}.aurora{position:fixed;inset:-20vh -20vw;z-index:-1;pointer-events:none;opacity:.5;background:conic-gradient(from 180deg at 50% 50%,rgba(244,166,42,0) 0deg,rgba(244,166,42,.09) 70deg,rgba(86,197,150,.11) 160deg,rgba(244,166,42,0) 260deg,rgba(86,197,150,.08) 340deg,rgba(244,166,42,0) 1turn);filter:blur(60px);animation:aurora-spin 46s linear infinite}@keyframes aurora-spin{to{transform:rotate(1turn)}}.grain{position:fixed;inset:0;z-index:0;pointer-events:none;opacity:.035;mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)'/%3E%3C/svg%3E");animation:grain-shift 7s steps(6) infinite}@keyframes grain-shift{0%{transform:translate(0)}20%{transform:translate(-3%,2%)}40%{transform:translate(2%,-3%)}60%{transform:translate(-2%,-2%)}80%{transform:translate(3%,1%)}to{transform:translate(0)}}.scroll-rail{position:absolute;left:0;bottom:-1px;height:2px;width:100%;transform:scaleX(var(--scroll-p));transform-origin:left center;background:linear-gradient(90deg,var(--jade),var(--marigold));pointer-events:none}.navbar{position:-webkit-sticky;position:sticky}.nav-brand .dot{animation:dot-breathe 3.4s var(--ease-in-out-soft) infinite}@keyframes dot-breathe{0%,to{transform:scale(1);box-shadow:0 0 0 0 rgba(244,166,42,.5)}50%{transform:scale(1.25);box-shadow:0 0 0 6px rgba(244,166,42,0)}}.page-links a{position:relative}.page-links a:after{content:"";position:absolute;left:0;right:0;bottom:-5px;height:1px;background:var(--marigold);transform:scaleX(0);transform-origin:right center;transition:transform .4s var(--ease-out-soft)}.page-links a:hover:after{transform:scaleX(1);transform-origin:left center}.hero-scene{--p:0;position:relative}.hero-scene .hero-content{transform:translate3d(0,calc(var(--p) * -70px),0);opacity:calc(1.18 - var(--p) * 1.35);will-change:transform,opacity}.hero-scene .hero-portrait{transform:translate3d(0,calc(var(--p) * -26px),0) scale(calc(1 - var(--p) * .06));will-change:transform}.hero-portrait .frame{animation:float-slow 9s var(--ease-in-out-soft) infinite}.hero-portrait .frame-offset{animation:float-slow 9s var(--ease-in-out-soft) .5s infinite}@keyframes float-slow{0%,to{translate:0 0}50%{translate:0 -12px}}.hero-portrait .frame img{animation:portrait-wipe 1.5s var(--ease-out-soft) .35s both}@keyframes portrait-wipe{0%{-webkit-clip-path:inset(0 0 100% 0);clip-path:inset(0 0 100% 0);transform:scale(1.16)}to{-webkit-clip-path:inset(0 0 0 0);clip-path:inset(0 0 0 0);transform:scale(1)}}.hero-portrait .frame:after{content:"";position:absolute;inset:0;background:linear-gradient(105deg,transparent 35%,hsla(42,34%,89%,.16) 48%,transparent 62%);transform:translateX(-120%);animation:sweep 6.5s var(--ease-in-out-soft) 2s infinite;pointer-events:none}@keyframes sweep{0%{transform:translateX(-120%)}22%,to{transform:translateX(120%)}}.hero-name .surname:after{transform:scaleX(0);transform-origin:left center;animation:draw-rule 1.1s var(--ease-out-soft) .75s forwards}@keyframes draw-rule{to{transform:scaleX(1)}}.spec-row{transition:background .3s var(--ease-out-soft),padding-left .3s var(--ease-out-soft);border-radius:6px}.spec-row:hover{background:hsla(42,34%,89%,.04);padding-left:.5rem}.magnetic{--magnet-x:0px;--magnet-y:0px;transform:translate3d(var(--magnet-x),var(--magnet-y),0);transition:transform .45s var(--ease-out-soft),box-shadow .3s ease,background .3s ease,color .3s ease,border-color .3s ease}.magnetic:hover{transition:transform .12s linear,box-shadow .3s ease,background .3s ease,color .3s ease,border-color .3s ease}.btn-primary.magnetic:hover{transform:translate3d(var(--magnet-x),calc(var(--magnet-y) - 2px),0)}.btn{position:relative;overflow:hidden;isolation:isolate}.btn:before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(100deg,transparent 30%,hsla(0,0%,100%,.28) 50%,transparent 70%);transform:translateX(-140%);transition:transform .7s var(--ease-out-soft)}.btn:hover:before{transform:translateX(140%)}.tilt{--tilt-x:0deg;--tilt-y:0deg;--mx:50%;--my:50%;position:relative;transform-style:preserve-3d;transform:perspective(900px) rotateX(var(--tilt-x)) rotateY(var(--tilt-y));transition:transform .5s var(--ease-out-soft),box-shadow .4s var(--ease-out-soft),border-color .4s ease}.tilt:hover{transition:transform .12s linear,box-shadow .4s var(--ease-out-soft),border-color .4s ease}.tilt-sheen{position:absolute;inset:0;z-index:3;border-radius:inherit;pointer-events:none;opacity:0;background:radial-gradient(32% 42% at var(--mx) var(--my),rgba(244,166,42,.16),transparent 70%);transition:opacity .4s var(--ease-out-soft)}.tilt:hover .tilt-sheen{opacity:1}.projects-grid>.reveal{display:flex}.projects-grid .project-card{width:100%}.project-card{transform-origin:center}.project-card:hover{transform:perspective(900px) rotateX(var(--tilt-x)) rotateY(var(--tilt-y)) translateZ(14px);box-shadow:0 34px 60px rgba(0,0,0,.5)}.project-card .project-cover img{transition:transform .8s var(--ease-out-soft),filter .6s var(--ease-out-soft)}.project-card:hover .project-cover img{transform:scale(1.08);filter:saturate(1.12)}.project-cover:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(13,23,20,.55),transparent 55%);opacity:0;transition:opacity .5s var(--ease-out-soft)}.project-card:hover .project-cover:after{opacity:1}.project-title{transition:color .35s var(--ease-out-soft)}.project-card:hover .project-title{color:var(--marigold)}.project-tech .tech-chip{transition:transform .4s var(--ease-spring),background .3s ease,color .3s ease}.project-card:hover .tech-chip:first-child{transform:translateY(-3px);transition-delay:0ms}.project-card:hover .tech-chip:nth-child(2){transform:translateY(-3px);transition-delay:40ms}.project-card:hover .tech-chip:nth-child(3){transform:translateY(-3px);transition-delay:80ms}.project-card:hover .tech-chip:nth-child(4){transform:translateY(-3px);transition-delay:.12s}.project-card:hover .tech-chip:nth-child(n+5){transform:translateY(-3px);transition-delay:.16s}.filter-btn{position:relative;overflow:hidden;z-index:0;transition:color .35s var(--ease-out-soft),border-color .35s var(--ease-out-soft)}.filter-btn:before{content:"";position:absolute;inset:0;z-index:-1;background:var(--marigold);transform:scale(.2);opacity:0;border-radius:inherit;transition:transform .45s var(--ease-spring),opacity .3s ease}.filter-btn.active:before{transform:scale(1);opacity:1}.filter-btn.active{background:transparent}.experience-tab{position:relative;transition:color .3s var(--ease-out-soft),transform .35s var(--ease-out-soft),background .3s ease}.experience-tab:hover{transform:translateX(4px)}.experience-tab:before{content:"";position:absolute;left:-2px;top:0;bottom:0;width:2px;background:var(--marigold);transform:scaleY(0);transform-origin:top center;transition:transform .4s var(--ease-out-soft)}.experience-tab.active:before{transform:scaleY(1)}.experience-details{transition:opacity .34s var(--ease-out-soft),transform .34s var(--ease-out-soft),filter .34s var(--ease-out-soft)}.experience-details.fade-out{opacity:0;transform:translateY(14px);filter:blur(6px)}.role-description li:before{transition:transform .3s var(--ease-spring),color .3s ease}.role-description li:hover:before{transform:translateX(4px);color:var(--jade)}@media (min-width:861px){.about-media{position:-webkit-sticky;position:sticky;top:calc(var(--nav-height) + 3rem)}}.about-parallax{--p:0.5}.about-parallax .about-image{background-position:center calc(50% - (var(--p) - .5) * 56px)}.about-image{overflow:hidden;transition:transform .7s var(--ease-out-soft),border-color .5s var(--ease-out-soft)}.about-image:hover{transform:scale(1.02);border-color:var(--line-strong)}.tech-list li{transition:transform .35s var(--ease-spring),border-color .3s ease,color .3s ease,background .3s ease}.tech-list li:hover{transform:translateY(-4px) scale(1.04);background:rgba(86,197,150,.08)}.marquee-band{position:relative;overflow:hidden;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:rgba(10,17,14,.4);padding:1.1rem 0;mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent);-webkit-mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent)}.marquee{display:flex;width:100%;overflow:hidden}.marquee-track{display:flex;flex-shrink:0;gap:0;white-space:nowrap;animation:marquee-run var(--marquee-speed,38s) linear infinite;will-change:transform}.marquee-track.is-reverse{animation-direction:reverse}.marquee:hover .marquee-track{animation-play-state:paused}.marquee-item{display:inline-flex;align-items:center;gap:1.6rem;padding-right:1.6rem;font-family:var(--font-mono),monospace;font-size:.92rem;letter-spacing:.02em;color:var(--muted)}.marquee-sep{color:var(--marigold);opacity:.55;font-size:.7rem}@keyframes marquee-run{to{transform:translate3d(-50%,0,0)}}.eyebrow:before{display:inline-block;animation:eyebrow-tick 3s var(--ease-in-out-soft) infinite}@keyframes eyebrow-tick{0%,88%,to{opacity:.8}94%{opacity:.25}}.gallery-modal{animation:modal-in .5s var(--ease-out-soft)}@keyframes modal-in{0%{transform:translateY(24px) scale(.96);opacity:0;filter:blur(8px)}to{transform:none;opacity:1;filter:none}}.gallery-main video,.gallery-shot{animation:shot-in .5s var(--ease-out-soft)}@keyframes shot-in{0%{opacity:0;transform:scale(1.03)}to{opacity:1;transform:none}}.gallery-backdrop{animation:fadeIn .6s var(--ease-out-soft)}.gallery-aside{animation:aside-in .6s var(--ease-out-soft) .1s both}@keyframes aside-in{0%{opacity:0;transform:translateX(20px)}to{opacity:1;transform:none}}.gallery-close{transition:transform .3s var(--ease-spring),color .2s ease}.gallery-close:hover{transform:rotate(90deg) scale(1.1)}.thumbnail{transition:transform .3s var(--ease-spring),border-color .3s ease}.thumbnail:hover{transform:translateY(-3px) scale(1.05)}.footer-social a:hover{transform:translateY(-3px) rotate(-6deg)}@media (prefers-reduced-motion:reduce){.reveal,.reveal-clip>*,.reveal-stagger>*,.split-word-inner{opacity:1!important;transform:none!important;filter:none!important;-webkit-clip-path:none!important;clip-path:none!important;transition:none!important}.aurora,.eyebrow:before,.gallery-aside,.gallery-backdrop,.gallery-main video,.gallery-shot,.grain,.hero-portrait .frame,.hero-portrait .frame img,.hero-portrait .frame-offset,.hero-portrait .frame:after,.marquee-track,.nav-brand .dot{animation:none!important}.gallery-aside{opacity:1!important;transform:none!important}.hero-name .surname:after{animation:none!important;transform:none!important}.hero-scene .hero-content,.hero-scene .hero-portrait{transform:none!important;opacity:1!important}.about-media{position:static}}