@font-face{font-family:__Fraunces_ae2eaa;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/287637279c44650d-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:__Fraunces_ae2eaa;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/b387097da7407747-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:__Fraunces_ae2eaa;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/cb9f64d62d112b41-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:__Fraunces_Fallback_ae2eaa;src:local("Times New Roman");ascent-override:84.71%;descent-override:22.09%;line-gap-override:0.00%;size-adjust:115.45%}.__className_ae2eaa{font-family:__Fraunces_ae2eaa,__Fraunces_Fallback_ae2eaa;font-style:normal}.__variable_ae2eaa{--font-display:"__Fraunces_ae2eaa","__Fraunces_Fallback_ae2eaa"}@font-face{font-family:__Hanken_Grotesk_9c618b;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/a6c19694cd327cd4-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:__Hanken_Grotesk_9c618b;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/851c4691abdf3def-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:__Hanken_Grotesk_9c618b;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/a8a8dd7277bab4cf-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:__Hanken_Grotesk_9c618b;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/313510e2713fb214-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:__Hanken_Grotesk_Fallback_9c618b;src:local("Arial");ascent-override:99.07%;descent-override:30.02%;line-gap-override:0.00%;size-adjust:100.94%}.__className_9c618b{font-family:__Hanken_Grotesk_9c618b,__Hanken_Grotesk_Fallback_9c618b;font-style:normal}.__variable_9c618b{--font-body:"__Hanken_Grotesk_9c618b","__Hanken_Grotesk_Fallback_9c618b"}@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"}:root{--bg:#07070b;--bg-soft:#0d0d14;--ink:#ecebf2;--ink-dim:#a9a7b8;--ink-faint:#6f6d82;--line:hsla(0,0%,100%,.08);--line-strong:hsla(0,0%,100%,.16);--accent:#8b7bff;--accent-2:#4fd6c8;--glow:139,123,255;--maxw:1080px;--ease:cubic-bezier(0.22,1,0.36,1)}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}body{background:var(--bg);color:var(--ink);font-family:var(--font-body),system-ui,sans-serif;font-size:clamp(1rem,.95rem + .2vw,1.0625rem);line-height:1.65;overflow-x:hidden}a{color:inherit;text-decoration:none}::selection{background:rgba(var(--glow),.32);color:#fff}.page{position:relative;min-height:100vh;isolation:isolate}.grid-overlay{inset:-2px;background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px);background-size:64px 64px;-webkit-mask-image:radial-gradient(115% 75% at 50% -8%,#000 0,rgba(0,0,0,.4) 42%,transparent 70%);mask-image:radial-gradient(115% 75% at 50% -8%,#000 0,rgba(0,0,0,.4) 42%,transparent 70%);opacity:.7}.grid-overlay,.page:before{position:fixed;z-index:0;pointer-events:none}.page:before{content:"";inset:0;background:radial-gradient(640px circle at 18% 8%,rgba(var(--glow),.14),transparent 60%),radial-gradient(560px circle at 88% 0,rgba(79,214,200,.08),transparent 55%)}.grain{position:fixed;inset:0;z-index:1;pointer-events:none;opacity:.05;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' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}html[data-intro=armed] .eyebrow,html[data-intro=armed] .hero-links,html[data-intro=armed] .hero-title,html[data-intro=armed] .lede-rest,html[data-intro=armed] .signature{opacity:0!important}.caret{display:inline-block;width:.05em;height:.95em;margin-left:.06em;vertical-align:-.12em;background:var(--accent-2);animation:caretBlink 1s steps(1) infinite}@keyframes caretBlink{0%,50%{opacity:1}50.01%,to{opacity:0}}main{position:relative;z-index:2;max-width:var(--maxw);margin:0 auto;padding:0 clamp(1.25rem,5vw,3rem)}.hero{min-height:min(100vh,860px);display:flex;flex-direction:column;justify-content:center;padding:7rem 0 5rem}.eyebrow{display:inline-flex;align-items:center;gap:.6rem;width:-moz-fit-content;width:fit-content;font-family:var(--font-mono),monospace;font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-dim);margin-bottom:1.75rem}.hero-title{font-family:var(--font-display),Georgia,serif;font-style:normal;font-weight:400;font-variation-settings:"opsz" 144,"SOFT" 0;font-size:clamp(3rem,11vw,8.5rem);line-height:.92;letter-spacing:-.03em;overflow-wrap:break-word;margin-bottom:1rem;perspective:600px}.title-line{display:block}.title-line>span{display:inline-block;background:linear-gradient(180deg,#fff 0,var(--ink) 72%,var(--ink-faint) 118%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.ch-symbol{background:none;color:var(--ink-dim);-webkit-text-fill-color:var(--ink-dim);opacity:.55}.ch-flip{display:inline-block;animation:flipBack .7s var(--ease) both}@keyframes flipBack{0%{transform:translateY(.12em);opacity:0}to{transform:translateY(0);opacity:1}}.lede-rest{margin-top:1.5rem;max-width:48ch;display:grid;grid-gap:.65rem;gap:.65rem;font-size:clamp(1.05rem,1rem + .4vw,1.28rem);line-height:1.55;color:var(--ink-dim)}.signature{margin-top:1.25rem}.signature em{display:inline-block;transform-origin:0 50%;will-change:transform;font-family:var(--font-display),serif;font-style:italic;font-weight:400;font-size:clamp(1.7rem,1.2rem + 2vw,2.6rem);line-height:1.1;color:var(--ink)}.hero-links{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:2.5rem}.hero-links a{position:relative;font-family:var(--font-mono),monospace;font-size:.85rem;letter-spacing:.04em;padding:.6rem 1.15rem;border:1px solid var(--line-strong);border-radius:999px;color:var(--ink);transition:border-color .3s var(--ease),color .3s var(--ease),background .3s var(--ease),transform .3s var(--ease)}.hero-links a:hover{border-color:var(--accent);background:rgba(var(--glow),.1);transform:translateY(-2px)}.hero-load{opacity:0;transform:translateY(18px);animation:rise .9s var(--ease) forwards}@keyframes rise{to{opacity:1;transform:translateY(0)}}.section{position:relative;padding:5.5rem 0;border-top:1px solid var(--line)}.section-index{display:block;font-family:var(--font-mono),monospace;font-size:.8rem;letter-spacing:.2em;color:var(--accent);margin-bottom:.6rem}.section-title{font-family:var(--font-display),serif;font-weight:400;font-size:clamp(1.9rem,1.4rem + 2vw,3rem);letter-spacing:-.02em;margin-bottom:2.5rem}.prose{max-width:62ch;display:grid;grid-gap:1.25rem;gap:1.25rem;color:var(--ink-dim);font-size:clamp(1.02rem,1rem + .3vw,1.18rem)}.timeline{display:grid;grid-gap:2.25rem;gap:2.25rem}.job{padding-left:1.5rem;border-left:1px solid var(--line-strong)}.job-head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:.5rem 1rem}.job-head h3{font-size:1.2rem;font-weight:600;letter-spacing:-.01em}.job-company{color:var(--accent);font-weight:500}.job-when{font-family:var(--font-mono),monospace;font-size:.78rem;letter-spacing:.04em;color:var(--ink-faint);white-space:nowrap}.job-summary{color:var(--ink-dim);font-size:1.02rem;margin:.5rem 0 1rem;max-width:56ch}.projects{display:grid;grid-template-columns:repeat(2,1fr);grid-gap:1.25rem;gap:1.25rem}.card{position:relative;display:flex;flex-direction:column;gap:1rem;padding:1.75rem 1.75rem 1.6rem;background:linear-gradient(160deg,hsla(0,0%,100%,.035),hsla(0,0%,100%,.01));border:1px solid var(--line);border-radius:18px;overflow:hidden;transition:border-color .4s var(--ease),transform .4s var(--ease),background .4s var(--ease)}.card:before{content:"";position:absolute;inset:0;border-radius:inherit;padding:1px;background:linear-gradient(140deg,var(--accent),transparent 45%);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;opacity:0;transition:opacity .4s var(--ease)}.card:hover{transform:translateY(-4px);border-color:transparent;background:linear-gradient(160deg,rgba(var(--glow),.09),hsla(0,0%,100%,.015))}.card:hover:before{opacity:1}.card-top{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.card-top h3{font-size:1.18rem;font-weight:600;letter-spacing:-.01em;line-height:1.25}.badge{flex-shrink:0;font-family:var(--font-mono),monospace;font-size:.62rem;letter-spacing:.1em;text-transform:uppercase;padding:.3rem .55rem;border:1px solid var(--line-strong);border-radius:6px}.badge,.card p{color:var(--ink-dim)}.card p{font-size:.95rem;line-height:1.6;flex:1 1}.tags{display:flex;flex-wrap:wrap;gap:.4rem}.tag{font-family:var(--font-mono),monospace;font-size:.72rem;letter-spacing:.02em;padding:.32rem .7rem;border-radius:999px;border:1px solid var(--line);background:hsla(0,0%,100%,.03);color:var(--ink-dim);transition:border-color .3s var(--ease),color .3s var(--ease)}.card:hover .tag{border-color:var(--line-strong)}.card-meta{display:inline-flex;align-items:center;gap:.65rem;flex-shrink:0}.card-arrow{font-size:.95rem;line-height:1;color:var(--ink-faint);opacity:.7;transition:color .3s var(--ease),opacity .3s var(--ease),transform .3s var(--ease)}.card:hover .card-arrow{color:var(--accent);opacity:1;transform:translate(2px,-2px)}.awards{display:flex;flex-wrap:wrap;gap:1.25rem}.award{flex:1 1 240px;max-width:420px;padding:1.5rem;border:1px solid var(--line);border-radius:14px}.award h3{font-family:var(--font-display),serif;font-weight:400;font-size:1.3rem;margin-bottom:.5rem}.award p{font-size:.9rem;color:var(--ink-dim)}.footer{padding:6rem 0 4rem;border-top:1px solid var(--line)}.footer-line{font-family:var(--font-display),serif;font-style:italic;font-size:clamp(2.2rem,1.5rem + 3vw,4rem);letter-spacing:-.02em;margin-bottom:2rem;background:linear-gradient(90deg,var(--ink),var(--accent));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.footer-links{display:flex;flex-wrap:wrap;gap:1.5rem;margin-bottom:2.5rem}.footer-links a{font-family:var(--font-mono),monospace;font-size:.85rem;color:var(--ink-dim);border-bottom:1px solid transparent;padding-bottom:2px;transition:color .3s var(--ease),border-color .3s var(--ease)}.footer-links a:hover{color:var(--ink);border-color:var(--accent)}.footer-fine{font-family:var(--font-mono),monospace;font-size:.72rem;letter-spacing:.04em;color:var(--ink-faint)}.reveal-ready [data-reveal]{opacity:0;transform:translateY(26px);transition:opacity .8s var(--ease),transform .8s var(--ease)}.reveal-ready [data-reveal].is-visible{opacity:1;transform:translateY(0)}@media (max-width:720px){.awards,.projects{grid-template-columns:1fr}.hero{padding:5.5rem 0 3.5rem;min-height:100svh}.section{padding:3.5rem 0}.section-title{margin-bottom:1.75rem}.card{padding:1.5rem 1.4rem 1.4rem}.job-when{width:100%}.footer{padding:4rem 0 3rem}}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.hero-load,[data-reveal]{opacity:1;transform:none}}