@font-face{font-family:Archivo;font-style:normal;font-weight:100 900;font-stretch:62% 125%;font-display:swap;src:url(/_next/static/media/8a053b136321ec99-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:Archivo;font-style:normal;font-weight:100 900;font-stretch:62% 125%;font-display:swap;src:url(/_next/static/media/2a8fe189f1a8dd0c-s.p.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:Archivo;font-style:normal;font-weight:100 900;font-stretch:62% 125%;font-display:swap;src:url(/_next/static/media/c214ffb7f5362987-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:Archivo Fallback;src:local("Arial");ascent-override:88.96%;descent-override:21.28%;line-gap-override:0.00%;size-adjust:98.70%}.__className_7d15d2{font-family:Archivo,Archivo Fallback;font-style:normal}.__variable_7d15d2{--archivo:"Archivo","Archivo Fallback"}@font-face{font-family:"Instrument Serif";font-style:italic;font-weight:400;font-display:swap;src:url(/_next/static/media/5ece437c7024c161-s.p.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:"Instrument Serif";font-style:italic;font-weight:400;font-display:swap;src:url(/_next/static/media/9cc5b37ab1350db7-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:"Instrument Serif";font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/35f3de0ebb1cfc70-s.p.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:"Instrument Serif";font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/e6099e249fd938cc-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:"Instrument Serif Fallback";src:local("Times New Roman");ascent-override:117.94%;descent-override:36.93%;line-gap-override:0.00%;size-adjust:83.94%}.__className_24bd6f{font-family:"Instrument Serif","Instrument Serif Fallback";font-weight:400}.__variable_24bd6f{--instrument:"Instrument Serif","Instrument Serif Fallback"}@font-face{font-family:JetBrains Mono;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;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;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;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;font-style:normal;font-weight:100 800;font-display:swap;src:url(/_next/static/media/939c4f875ee75fbb-s.p.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;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;src:local("Arial");ascent-override:75.79%;descent-override:22.29%;line-gap-override:0.00%;size-adjust:134.59%}.__className_fdaf1b{font-family:JetBrains Mono,JetBrains Mono Fallback;font-style:normal}.__variable_fdaf1b{--jetbrains:"JetBrains Mono","JetBrains Mono Fallback"}:root{--bg:#0b0c0e;--bg-raised:#111316;--line:rgba(232,230,225,0.1);--line-strong:rgba(232,230,225,0.22);--ink:#e8e6e1;--ink-dim:#93989f;--ink-faint:#5c6067;--accent:#6fe7c8;--accent-ink:#0b0c0e;--font-sans:var(--archivo),sans-serif;--font-serif:var(--instrument),serif;--font-mono:var(--jetbrains),monospace;--pad:clamp(1.25rem,4vw,4rem)}*{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--ink);font-family:var(--font-sans);font-size:1rem;line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden}::selection{background:var(--accent);color:var(--accent-ink)}a{color:inherit;text-decoration:none}body:after{content:"";position:fixed;inset:0;pointer-events:none;z-index:99;opacity:.5;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='matrix' values='0 0 0 0 0.9 0 0 0 0 0.9 0 0 0 0 0.88 0 0 0 0.035 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}.mono{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;font-weight:500}.serif-i{font-family:var(--font-serif);font-style:italic;font-weight:400;letter-spacing:0;text-transform:none}.reveal{opacity:0;transform:translateY(28px);transition:opacity .9s cubic-bezier(.16,1,.3,1),transform .9s cubic-bezier(.16,1,.3,1);transition-delay:var(--reveal-delay,0s)}.reveal.is-visible{opacity:1;transform:translateY(0)}@media (prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}html{scroll-behavior:auto}}.nav{position:fixed;top:0;left:0;right:0;z-index:50;display:flex;align-items:center;justify-content:space-between;padding:1.1rem var(--pad);mix-blend-mode:difference}.nav-logo{font-family:var(--font-mono);font-size:.8rem;letter-spacing:.14em;font-weight:700}.nav-links{display:flex;gap:1.75rem}.nav-links a{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;opacity:.75;transition:opacity .25s}.nav-links a:hover{opacity:1}.hero{min-height:100svh;display:flex;flex-direction:column;justify-content:flex-end;padding:var(--pad);padding-bottom:clamp(2rem,5vh,4rem);position:relative;border-bottom:1px solid var(--line);background:radial-gradient(ellipse 80% 55% at 75% 10%,rgba(111,231,200,.07),transparent 60%),linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px);background-size:100% 100%,clamp(48px,8vw,110px) clamp(48px,8vw,110px),clamp(48px,8vw,110px) clamp(48px,8vw,110px)}.hero-top{position:absolute;top:4.5rem;left:var(--pad);right:var(--pad);display:flex;justify-content:space-between;color:var(--ink-dim)}.hero-name{font-size:clamp(3.4rem,13.5vw,12.5rem);line-height:.92;font-weight:700;font-stretch:115%;letter-spacing:-.03em;text-transform:uppercase;margin-bottom:clamp(1.5rem,4vh,3rem)}.hero-name em{font-style:normal;color:var(--accent)}.hero-name .line{display:block;overflow:hidden}.hero-name .line>span{display:inline-block;animation:rise 1.1s cubic-bezier(.16,1,.3,1) both}.hero-name .line:nth-child(2)>span{animation-delay:.12s}@keyframes rise{0%{transform:translateY(110%)}to{transform:translateY(0)}}.hero-bottom{display:flex;justify-content:space-between;align-items:flex-end;gap:2rem;flex-wrap:wrap;animation:fade 1s ease .5s both}@keyframes fade{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}.hero-intro{max-width:34rem;font-size:clamp(1.05rem,1.6vw,1.3rem);line-height:1.5;color:var(--ink-dim)}.hero-intro strong{color:var(--ink);font-weight:500}.hero-intro .serif-i{color:var(--accent);font-size:1.12em}.hero-meta{display:flex;flex-direction:column;gap:.45rem;color:var(--ink-dim);text-align:right}@media (max-width:640px){.hero-meta{text-align:left}.hero-top span:last-child{display:none}}.hero-meta .dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--accent);margin-right:.5rem;animation:pulse 2.4s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.35}}section{padding:clamp(4.5rem,10vh,8rem) var(--pad);border-bottom:1px solid var(--line)}.section-head{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;margin-bottom:clamp(2.5rem,6vh,4.5rem)}.section-head h2{font-size:clamp(1.8rem,3.5vw,3rem);font-weight:700;font-stretch:115%;text-transform:uppercase;letter-spacing:-.01em;line-height:1}.section-head .index{color:var(--ink-faint)}.project-list{border-top:1px solid var(--line)}.project-row{display:grid;grid-template-columns:4rem 1fr auto;align-items:baseline;grid-gap:1.5rem;gap:1.5rem;padding:clamp(1.4rem,3vh,2.2rem) .75rem;border-bottom:1px solid var(--line);position:relative;transition:background .35s ease}.project-row:hover{background:var(--bg-raised)}.project-row .num{color:var(--ink-faint);transition:color .3s}.project-row:hover .num{color:var(--accent)}.project-name{font-size:clamp(1.5rem,4vw,2.8rem);font-weight:600;font-stretch:112%;text-transform:uppercase;letter-spacing:-.015em;line-height:1.1;transition:transform .35s cubic-bezier(.16,1,.3,1)}.project-row:hover .project-name{transform:translateX(.6rem)}.project-desc{margin-top:.35rem;color:var(--ink-dim);font-size:.95rem;max-width:40rem}.project-side{display:flex;flex-direction:column;align-items:flex-end;gap:.5rem}.project-arrow,.project-tag{color:var(--ink-faint)}.project-arrow{font-size:1.4rem;transition:transform .35s cubic-bezier(.16,1,.3,1),color .3s}.project-row:hover .project-arrow{transform:translate(4px,-4px);color:var(--accent)}@media (max-width:640px){.project-row{grid-template-columns:2.4rem 1fr auto;gap:.9rem}.project-side .project-tag{display:none}}.xp-entry{display:grid;grid-template-columns:minmax(8rem,16rem) 1fr;grid-gap:2rem;gap:2rem;padding:clamp(1.8rem,4vh,2.75rem) 0;border-bottom:1px solid var(--line)}.xp-entry:first-of-type{border-top:1px solid var(--line)}@media (max-width:700px){.xp-entry{grid-template-columns:1fr;gap:.9rem}}.xp-when{color:var(--ink-faint);padding-top:.4rem}.xp-role{font-size:clamp(1.25rem,2.4vw,1.7rem);font-weight:600;font-stretch:110%}.xp-org{color:var(--accent);font-weight:500}.xp-points{margin-top:1rem;display:grid;grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));grid-gap:.6rem 2rem;gap:.6rem 2rem;list-style:none}.xp-points li{color:var(--ink-dim);font-size:.92rem;padding-left:1.1rem;position:relative}.xp-points li:before{content:"→";position:absolute;left:0;color:var(--accent);font-family:var(--font-mono);font-size:.8rem}.xp-points li strong{color:var(--ink);font-weight:500}.skill-groups{display:grid;grid-template-columns:repeat(auto-fit,minmax(16rem,1fr));grid-gap:clamp(2rem,4vw,3.5rem);gap:clamp(2rem,4vw,3.5rem)}.skill-group h3{color:var(--ink-faint);margin-bottom:1.1rem;font-weight:500}.chips{display:flex;flex-wrap:wrap;gap:.5rem}.chip{font-family:var(--font-mono);font-size:.74rem;letter-spacing:.05em;padding:.42rem .85rem;border:1px solid var(--line-strong);border-radius:999px;color:var(--ink-dim);transition:border-color .25s,color .25s,background .25s}.chip:hover{border-color:var(--accent);color:var(--accent)}.chip.hot{border-color:rgba(111,231,200,.45);color:var(--accent)}.edu-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(16rem,1fr));grid-gap:clamp(1.5rem,3vw,2.5rem);gap:clamp(1.5rem,3vw,2.5rem)}.edu-card{border:1px solid var(--line);padding:1.6rem;display:flex;flex-direction:column;gap:.55rem;transition:border-color .3s}.edu-card:hover{border-color:var(--line-strong)}.edu-card .mono{color:var(--ink-faint)}.edu-card h3{font-size:1.12rem;font-weight:600;line-height:1.35}.edu-card p{color:var(--ink-dim);font-size:.9rem}.contact{border-bottom:none;padding-top:clamp(5rem,14vh,9rem);padding-bottom:clamp(2rem,5vh,3rem);background:radial-gradient(ellipse 70% 60% at 50% 115%,rgba(111,231,200,.09),transparent 65%)}.contact-title{font-size:clamp(2.6rem,9.5vw,8.5rem);font-weight:700;font-stretch:115%;text-transform:uppercase;letter-spacing:-.03em;line-height:.95;margin-bottom:clamp(2.5rem,6vh,4rem)}.contact-title a{display:inline-block;position:relative;transition:color .3s}.contact-title a:after{content:"";position:absolute;left:0;bottom:.05em;width:100%;height:.06em;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform .45s cubic-bezier(.16,1,.3,1)}.contact-title a:hover{color:var(--accent)}.contact-title a:hover:after{transform:scaleX(1)}.contact-foot{display:flex;justify-content:space-between;align-items:flex-end;gap:1.5rem;flex-wrap:wrap;color:var(--ink-faint)}.contact-links{display:flex;gap:1.75rem}.contact-links a{color:var(--ink-dim);transition:color .25s}.contact-links a:hover{color:var(--accent)}