@font-face{font-family:Space Grotesk;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/e1aab0933260df4d-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:Space Grotesk;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/b7387a63dd068245-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-20c4,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Space Grotesk;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/36966cca54120369-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:Space Grotesk;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/e1aab0933260df4d-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:Space Grotesk;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/b7387a63dd068245-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-20c4,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Space Grotesk;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/36966cca54120369-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:Space Grotesk;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/e1aab0933260df4d-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:Space Grotesk;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/b7387a63dd068245-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-20c4,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Space Grotesk;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/36966cca54120369-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:Space Grotesk Fallback;src:local("Arial");ascent-override:89.71%;descent-override:26.62%;line-gap-override:0.00%;size-adjust:109.69%}.__className_cc9ae6{font-family:Space Grotesk,Space Grotesk Fallback;font-style:normal}.__variable_cc9ae6{--font-display:"Space Grotesk","Space Grotesk Fallback"}@font-face{font-family:Inter;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;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;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;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;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;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-20c4,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Inter;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;src:local("Arial");ascent-override:90.44%;descent-override:22.52%;line-gap-override:0.00%;size-adjust:107.12%}.__className_d8ebd1{font-family:Inter,Inter Fallback;font-style:normal}.__variable_d8ebd1{--font-body:"Inter","Inter Fallback"}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/edc640959b0c7826-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;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/ac0e76ddaeeb7981-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;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/64d784ea54a4acde-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;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/ff71da380fbe67dd-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;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/6d831b18ae5b01dc-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-20c4,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/558ca1a6aa3cb55e-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;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/edc640959b0c7826-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;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/ac0e76ddaeeb7981-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;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/64d784ea54a4acde-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;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/ff71da380fbe67dd-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;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/6d831b18ae5b01dc-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-20c4,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/558ca1a6aa3cb55e-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;src:local("Arial");ascent-override:75.79%;descent-override:22.29%;line-gap-override:0.00%;size-adjust:134.59%}.__className_a3cc63{font-family:JetBrains Mono,JetBrains Mono Fallback;font-style:normal}.__variable_a3cc63{--font-mono:"JetBrains Mono","JetBrains Mono Fallback"}:root{--bg:#08080a;--bg-2:#0e0e12;--card:rgba(19,19,24,0.86);--fg:#ededed;--muted:#a8a8b3;--dim:#8a8a96;--line:#1f1f26;--line-2:#2b2b35;--accent:#c8ff4d;--accent-ink:#0b0d05;--font-display:"Space Grotesk",system-ui,sans-serif;--font-body:"Inter",system-ui,sans-serif;--font-mono:"JetBrains Mono",ui-monospace,monospace;--gutter:clamp(20px,4vw,40px);--ease:cubic-bezier(0.2,0.8,0.2,1);--sy:0}*,:after,:before{box-sizing:border-box}html{background:var(--bg);color:var(--fg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;overflow-x:clip}html.lenis,html.lenis body{height:auto}.lenis.lenis-smooth{scroll-behavior:auto!important}.lenis.lenis-stopped{overflow:hidden}body{margin:0;font-family:var(--font-body);font-size:16px;line-height:1.6;background:radial-gradient(1200px 800px at 75% 20%,#15131f 0,transparent 60%),var(--bg);overflow-x:clip}a{color:inherit;text-decoration:none}ol,ul{padding:0;list-style:none}h1,h2,h3,ol,p,ul{margin:0}::selection{background:var(--accent);color:var(--accent-ink)}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:4px}.container{width:100%;max-width:1320px;margin:0 auto;padding:0 var(--gutter)}.accent{color:var(--accent)}.skip{position:fixed;top:12px;left:12px;z-index:100;padding:10px 16px;background:var(--accent);color:var(--accent-ink);border-radius:8px;transform:translateY(-200%)}.skip:focus{transform:none}.scene{inset:0;z-index:0;opacity:max(.42,calc(1 - var(--sy, 0) / 1400));contain:strict}.grain,.scene{position:fixed;pointer-events:none}.grain{inset:-50%;z-index:1;opacity:.05;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3' stitchTiles='stitch'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");animation:grain 8s steps(10) infinite;will-change:transform}@keyframes grain{0%,to{transform:translate(0)}20%{transform:translate(-5%,3%)}40%{transform:translate(4%,-6%)}60%{transform:translate(-3%,5%)}80%{transform:translate(6%,2%)}}main{position:relative;z-index:2}.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:48px;padding:0 26px;border-radius:999px;font-size:15px;font-weight:500;letter-spacing:.01em;transition:transform .4s var(--ease),background .3s,color .3s,border-color .3s}.btn:hover{transform:translateY(-2px)}.btn--accent{background:var(--accent);color:var(--accent-ink)}.btn--accent:hover{background:#d8ff7a}.btn--ghost{border:1px solid rgba(237,237,237,.3);color:var(--fg)}.btn--ghost:hover{border-color:var(--fg)}.btn--sm{min-height:44px;padding:0 20px;letter-spacing:.08em}.btn--sm,.eyebrow,.label{font-size:13px;text-transform:uppercase}.eyebrow,.label{font-family:var(--font-mono);letter-spacing:.14em;color:var(--muted)}.label{margin-bottom:16px;font-size:12px}.tags{display:flex;flex-wrap:wrap;gap:8px}.tags li{padding:6px 12px;border:1px solid var(--line-2);border-radius:999px;font-family:var(--font-mono);font-size:12px;color:#c9c9d1;background:rgba(255,255,255,.02)}.tags--lg li{padding:9px 16px;font-size:13px;transition:border-color .3s,color .3s}.tags--lg li:hover{border-color:var(--accent);color:var(--fg)}.link-muted{font-size:14px;color:var(--muted);transition:color .3s}.link-muted:hover{color:var(--fg)}.display{font-family:var(--font-display);font-weight:700;font-size:clamp(44px,7vw,104px);line-height:.95;letter-spacing:-.035em;text-shadow:0 2px 40px rgba(8,8,10,.6)}.outline{color:transparent;-webkit-text-stroke:1.5px var(--fg)}.nav{position:fixed;top:0;left:0;right:0;z-index:50;transition:background .4s,border-color .4s;border-bottom:1px solid transparent}.nav--scrolled{background:rgba(8,8,10,.62);-webkit-backdrop-filter:blur(14px) saturate(140%);backdrop-filter:blur(14px) saturate(140%);border-bottom-color:var(--line)}.nav__inner{display:flex;align-items:center;justify-content:space-between;min-height:76px}.nav__logo{font-family:var(--font-display);font-weight:700;font-size:22px;letter-spacing:.03em}.nav__links{display:flex;align-items:center;gap:34px;font-size:13px;letter-spacing:.08em;text-transform:uppercase}.nav__links a:not(.btn){position:relative;color:#d4d4db;transition:color .3s}.nav__links a:not(.btn):after{content:"";position:absolute;left:0;right:0;bottom:-6px;height:1px;background:var(--accent);transform:scaleX(0);transform-origin:right;transition:transform .4s var(--ease)}.nav__links a:not(.btn):hover{color:var(--fg)}.nav__links a:not(.btn):hover:after{transform:scaleX(1);transform-origin:left}.nav__toggle{display:none}@media (max-width:820px){.nav__toggle{display:inline-flex;flex-direction:column;justify-content:center;gap:7px;width:48px;height:48px;padding:0 12px;background:none;border:1px solid var(--line-2);border-radius:999px;cursor:pointer}.nav__toggle span{display:block;height:1.5px;background:var(--fg);transition:transform .35s var(--ease)}.nav--open .nav__toggle span:first-child{transform:translateY(4.25px) rotate(45deg)}.nav--open .nav__toggle span:last-child{transform:translateY(-4.25px) rotate(-45deg)}.nav__links{position:fixed;inset:76px 0 auto 0;flex-direction:column;align-items:flex-start;gap:0;padding:8px var(--gutter) 28px;background:rgba(8,8,10,.96);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom:1px solid var(--line);font-size:15px;transform:translateY(-12px);opacity:0;visibility:hidden;transition:opacity .3s,transform .3s var(--ease),visibility .3s}.nav__links li{width:100%}.nav__links a:not(.btn){display:block;padding:16px 0;border-bottom:1px solid var(--line)}.nav__links .btn{margin-top:20px}.nav--open .nav__links{transform:none;opacity:1;visibility:visible}.nav--open{background:rgba(8,8,10,.96)}}.hero{position:relative;min-height:100svh;justify-content:center;padding:120px 0 40px}.hero,.hero__inner{display:flex;flex-direction:column}.hero__inner{gap:28px;transform:translate3d(0,calc(var(--sy, 0) * .25px),0);opacity:max(0,calc(1 - var(--sy, 0) / 650));will-change:transform,opacity}.hero__eyebrow{display:inline-flex;align-items:center;gap:12px}.pulse{width:8px;height:8px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 0 rgba(200,255,77,.6);animation:pulse 2.2s infinite}@keyframes pulse{70%{box-shadow:0 0 0 10px rgba(200,255,77,0)}to{box-shadow:0 0 0 0 rgba(200,255,77,0)}}.hero__name{font-family:var(--font-display);font-weight:700;font-size:clamp(68px,13vw,200px);line-height:.86;letter-spacing:-.045em}.hero__line{display:block;overflow:hidden;padding-bottom:.04em}.hero__line--outline .char{color:transparent;-webkit-text-stroke:2px var(--fg)}.char{display:inline-block;transform:translateY(110%);animation:rise 1.1s var(--ease) forwards;animation-delay:calc(var(--i) * 45ms + .15s)}@keyframes rise{to{transform:translateY(0)}}.hero__tagline{max-width:520px;font-size:clamp(18px,1.6vw,21px);line-height:1.55;color:#c9c9d1}.hero__cta{gap:14px}.hero__cta,.hero__foot{display:flex;flex-wrap:wrap}.hero__foot{position:absolute;left:0;right:0;bottom:32px;gap:12px;justify-content:space-between;font-family:var(--font-mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--dim)}.hero__foot>span:first-child{display:inline-flex;align-items:center;gap:12px}.rule{display:inline-block;width:40px;height:1px;background:var(--accent)}.intro{opacity:0;transform:translateY(16px);animation:intro 1s var(--ease) forwards;animation-delay:var(--d,0s)}@keyframes intro{to{opacity:1;transform:none}}@media (max-width:820px){.hero{justify-content:flex-start;padding-top:128px}.hero__foot .hero__loc{display:none}}.section{position:relative;padding:clamp(96px,14vw,180px) 0;scroll-margin-top:40px}.section--flush{padding-bottom:clamp(72px,10vw,140px)}.section__head{display:flex;align-items:center;gap:16px;padding-bottom:20px;margin-bottom:clamp(40px,6vw,72px);border-bottom:1px solid var(--line)}.section__head--split{justify-content:space-between}.about{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);grid-gap:clamp(40px,6vw,96px);gap:clamp(40px,6vw,96px)}.about__lead{font-family:var(--font-display);font-size:clamp(28px,3.3vw,46px);line-height:1.18;letter-spacing:-.015em;text-shadow:0 2px 40px rgba(8,8,10,.7)}.about__side{display:flex;flex-direction:column;gap:22px}.about__body{font-size:17px;line-height:1.75;color:#c3c3cc}.edu{margin-top:16px;padding:24px;border:1px solid var(--line);border-radius:18px;background:var(--card)}.edu ul{display:flex;flex-direction:column;gap:14px}.edu li{display:grid;grid-template-columns:64px minmax(0,1fr) auto;grid-gap:14px;gap:14px;align-items:baseline;font-size:14px}.edu__deg{font-family:var(--font-display);font-weight:700;color:var(--fg)}.edu__school{color:#c3c3cc}.edu__year{font-family:var(--font-mono);font-size:12px;color:var(--dim);white-space:nowrap}.stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin-top:clamp(64px,9vw,120px);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.stat{padding:32px 28px 32px 0}.stat+.stat{padding-left:28px;border-left:1px solid var(--line)}.stat__value{font-family:var(--font-display);font-weight:700;font-size:clamp(52px,6vw,88px);line-height:1;letter-spacing:-.04em}.stat__value:first-letter{color:var(--accent)}.stat__label{margin-top:12px;max-width:260px;font-size:15px;color:var(--muted)}@media (max-width:900px){.about,.stats{grid-template-columns:1fr}.stat,.stat+.stat{padding:28px 0;border-left:0}.stat+.stat{border-top:1px solid var(--line)}.edu li{grid-template-columns:56px minmax(0,1fr)}.edu__year{grid-column:2}}.projects{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:28px;gap:28px;margin-top:clamp(40px,6vw,72px)}.projects>.reveal:nth-child(2n){margin-top:96px}.project{--mx:50%;--my:50%;--rx:0deg;--ry:0deg;position:relative;height:100%;display:flex;flex-direction:column;border:1px solid var(--line-2);border-radius:24px;background:var(--card);overflow:hidden;transform:perspective(1100px) rotateX(var(--rx)) rotateY(var(--ry));transition:transform .5s var(--ease),border-color .4s}.project:before{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;background:radial-gradient(420px circle at var(--mx) var(--my),hsla(var(--h),90%,70%,.12),transparent 60%);opacity:0;transition:opacity .4s}.project:hover{border-color:hsla(var(--h),70%,70%,.45)}.project:hover:before{opacity:1}.project__cover{position:relative;height:260px;overflow:hidden;border-bottom:1px solid var(--line);background:#0c0c10}.project__orb{position:absolute;width:340px;height:340px;right:-60px;top:-70px;border-radius:50%;background:conic-gradient(from 200deg,hsl(var(--h),85%,62%),hsl(calc(var(--h) + 60),80%,55%),hsl(calc(var(--h) + 150),70%,50%),hsl(var(--h),85%,62%));filter:blur(46px) saturate(120%);opacity:.55;transition:transform 1.2s var(--ease),opacity .6s}.project:hover .project__orb{transform:translate(-40px,30px) scale(1.12) rotate(40deg);opacity:.75}.project__num{position:absolute;left:28px;bottom:-18px;font-family:var(--font-display);font-weight:700;font-size:150px;line-height:1;letter-spacing:-.06em;color:transparent;-webkit-text-stroke:1.5px rgba(237,237,237,.55)}.project__kind{position:absolute;top:24px;left:28px;font-family:var(--font-mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:#e3e3ea}.project__body{position:relative;z-index:1;display:flex;flex-direction:column;gap:18px;padding:28px;flex:1 1}.project__head{display:flex;justify-content:space-between;align-items:baseline;flex-wrap:wrap;gap:8px 16px}.project__head h3{min-width:0;overflow-wrap:anywhere;font-family:var(--font-display);font-size:clamp(28px,2.6vw,38px);font-weight:700;letter-spacing:-.02em}.project__link{flex-shrink:0;font-family:var(--font-mono);font-size:13px;color:var(--muted);border-bottom:1px solid transparent;transition:color .3s,border-color .3s}.project__link:hover{color:var(--accent);border-color:var(--accent)}.project__summary{font-size:16px;color:#d4d4db}.project__points{display:flex;flex-direction:column;gap:8px;font-size:14px;color:var(--muted)}.project__points li{position:relative;padding-left:18px}.project__points li:before{content:"";position:absolute;left:0;top:.72em;width:8px;height:1px;background:hsl(var(--h),80%,68%)}.project .tags{margin-top:auto;padding-top:6px}@media (max-width:900px){.projects{grid-template-columns:minmax(0,1fr)}.projects>.reveal:nth-child(2n){margin-top:0}.project__cover{height:200px}.project__num{font-size:110px}}.timeline{display:flex;flex-direction:column}.timeline>li{border-bottom:1px solid var(--line)}.job{display:grid;grid-template-columns:minmax(0,280px) minmax(0,1fr);grid-gap:clamp(24px,5vw,80px);gap:clamp(24px,5vw,80px);padding:40px 0}.job__period{font-family:var(--font-mono);font-size:14px;color:var(--fg)}.job__loc{margin-top:6px;font-size:14px;color:var(--dim)}.job__company{display:flex;align-items:center;flex-wrap:wrap;gap:14px;font-family:var(--font-display);font-size:clamp(34px,4vw,56px);font-weight:700;line-height:1;letter-spacing:-.03em}.badge{padding:5px 12px;border-radius:999px;background:var(--accent);color:var(--accent-ink);font-family:var(--font-mono);font-size:11px;font-weight:500;letter-spacing:.1em;text-transform:uppercase}.job__role{margin-top:10px;font-size:18px;color:#c9c9d1}.job__points{display:flex;flex-direction:column;gap:10px;margin-top:22px;max-width:720px;color:var(--muted)}.job__points li{position:relative;padding-left:22px}.job__points li:before{content:"→";position:absolute;left:0;color:var(--accent)}@media (max-width:820px){.job{grid-template-columns:1fr;gap:16px}}.marquee{display:flex;flex-direction:column;gap:10px;margin-bottom:clamp(56px,8vw,96px);overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent);mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent)}.marquee__track{display:flex;gap:48px;width:max-content;font-family:var(--font-display);font-weight:700;font-size:clamp(40px,6vw,88px);line-height:1.05;letter-spacing:-.03em;white-space:nowrap;animation:marquee 48s linear infinite}.marquee__track span:after{content:"✳";margin-left:48px;color:var(--accent);font-size:.5em;vertical-align:middle}.marquee__track--reverse{animation-direction:reverse;animation-duration:56s}.marquee__track--outline{color:transparent;-webkit-text-stroke:1.5px #6f6f7a}.marquee__track--outline span:after{-webkit-text-stroke:0}@keyframes marquee{to{transform:translateX(-50%)}}.skills{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:28px;gap:28px}.skills__group{padding:28px;border:1px solid var(--line);border-radius:20px;background:var(--card)}@media (max-width:900px){.skills{grid-template-columns:1fr}}.contact{padding-bottom:40px}.contact__title{font-family:var(--font-display);font-weight:700;font-size:clamp(52px,9vw,150px);line-height:.92;letter-spacing:-.045em;text-shadow:0 2px 50px rgba(8,8,10,.7)}.contact__email{display:inline-flex;align-items:center;gap:18px;margin-top:clamp(36px,5vw,56px);padding-bottom:8px;border-bottom:1px solid var(--line-2);font-family:var(--font-display);font-size:clamp(22px,3vw,40px);transition:border-color .3s,gap .4s var(--ease)}.contact__email:hover{border-color:var(--accent);gap:28px}.contact__email span{color:var(--accent)}.contact__links{display:flex;flex-wrap:wrap;gap:14px 32px;margin-top:36px;font-size:16px;color:#c9c9d1}.contact__links a{transition:color .3s}.contact__links a:hover{color:var(--accent)}.footer{display:flex;flex-wrap:wrap;justify-content:space-between;gap:16px;margin-top:clamp(96px,12vw,160px);padding-top:24px;border-top:1px solid var(--line);font-family:var(--font-mono);font-size:12px;letter-spacing:.06em;color:var(--dim)}.reveal{opacity:0;transform:translateY(36px);transition:opacity 1s var(--ease),transform 1.1s var(--ease)}.reveal.is-in{opacity:1;transform:none}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}.char,.intro,.reveal{opacity:1;transform:none}.hero__inner{transform:none}.grain{animation:none}}@media (hover:none),(max-width:900px){.grain{display:none}.nav--open .nav__links,.nav--scrolled{-webkit-backdrop-filter:none;backdrop-filter:none;background:rgba(8,8,10,.94)}.project__orb{filter:blur(28px)}}