@font-face{font-family:Instrument Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(/_next/static/media/adb45196eddef626-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:Instrument Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(/_next/static/media/26d0ba92e140f0dc-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 Sans;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(/_next/static/media/adb45196eddef626-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:Instrument Sans;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(/_next/static/media/26d0ba92e140f0dc-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 Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(/_next/static/media/adb45196eddef626-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:Instrument Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(/_next/static/media/26d0ba92e140f0dc-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 Sans Fallback;src:local("Arial");ascent-override:94.42%;descent-override:24.33%;line-gap-override:0.00%;size-adjust:102.74%}.__className_16eff0{font-family:Instrument Sans,Instrument Sans Fallback;font-style:normal}.__variable_16eff0{--font-sans:"Instrument Sans","Instrument Sans Fallback"}:root{--bg:#f4f6f8;--ink:#16181b;--muted:#5c656e;--faint:#8b939c;--line:rgba(22,24,27,0.12);--blue:#2f6fed;--blue-soft:rgba(47,111,237,0.14);--ease:cubic-bezier(0.22,1,0.36,1);color-scheme:light}@property --mx{syntax:"<percentage>";inherits:true;initial-value:30%}@property --my{syntax:"<percentage>";inherits:true;initial-value:22%}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:5rem}.hero,.section{scroll-margin-top:4.5rem}body{margin:0;min-height:100%;background:var(--bg);color:var(--ink);font-family:var(--font-sans),"Segoe UI",sans-serif;font-weight:400;line-height:1.6;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}body:before{inset:0;z-index:0;background:radial-gradient(980px 560px at 8% -8%,rgba(186,210,255,.62),transparent 62%),radial-gradient(820px 480px at 108% 0,rgba(214,226,242,.7),transparent 58%),radial-gradient(740px 520px at 86% 108%,rgba(198,216,242,.45),transparent 55%)}body:after,body:before{content:"";position:fixed;pointer-events:none}body:after{left:0;right:0;top:0;height:2px;transform:scaleX(var(--progress,0));transform-origin:0 50%;background:var(--blue);z-index:80}a{color:inherit}a,button{-webkit-tap-highlight-color:transparent}::selection{background:#d7e4ff;color:var(--ink)}:focus-visible{outline:2px solid var(--blue);outline-offset:3px;box-shadow:0 0 0 6px var(--blue-soft)}.skip{position:absolute;left:1rem;top:-3rem;z-index:90;background:white;padding:.5rem .75rem}.skip:focus{top:.75rem}.nav{position:fixed;z-index:40;top:0;left:0;right:0;display:flex;flex-wrap:wrap;align-items:center;gap:.35rem 1.25rem;padding:1.05rem max(1.4rem,calc((100% - 1120px) / 2 + 2rem)) .85rem;transition:background .4s var(--ease),border-color .4s var(--ease);border-bottom:1px solid transparent}.nav.is-stuck{background:rgba(244,246,248,.78);backdrop-filter:blur(16px) saturate(1.2);-webkit-backdrop-filter:blur(16px) saturate(1.2);border-bottom-color:var(--line)}.brand{font-size:.92rem;font-weight:500;letter-spacing:-.03em;text-decoration:none}.nav-links{display:flex;gap:1.05rem;margin-left:auto;list-style:none;padding:0;margin-top:0;margin-bottom:0}.nav-links a{position:relative;text-decoration:none;font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;color:var(--faint)}.nav-links a:after{content:"";position:absolute;left:0;bottom:-.28rem;width:100%;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left center;transition:transform .45s var(--ease)}.nav-links a:hover:after,.nav-links a[aria-current=true]:after{transform:scaleX(1)}.nav-links a:hover,.nav-links a[aria-current=true]{color:var(--ink)}.section h2>span{transition:color .45s var(--ease)}.section.is-current h2>span{color:var(--ink)}.hero{position:relative;z-index:4;min-height:100svh;display:grid;grid-template-rows:auto 1fr auto;padding:5.4rem max(1.4rem,calc((100% - 1120px) / 2 + 2rem)) 1.5rem}.eyebrow{margin:0;font-size:.75rem;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}.hero-lens{display:grid;place-items:center;min-height:0}.hero-foot{position:relative;z-index:2;margin-top:-6.5rem}.hero h1{margin:0;font-weight:500;font-size:clamp(4.25rem,13.2vw,10.6rem);letter-spacing:-.062em;line-height:.84}.hero h1 .line{display:block}.mark{color:var(--blue)}.hero-meta{display:flex;justify-content:space-between;gap:1.5rem;align-items:flex-end;margin-top:1.15rem;max-width:68rem}.hero-line{margin:0;max-width:22rem;color:var(--muted);font-size:.98rem;line-height:1.45}.scroll-cue{display:inline-flex;align-items:center;gap:.7rem;color:var(--ink);text-decoration:none;font-size:.75rem;letter-spacing:.16em;text-transform:uppercase;background:none;border:0;padding:0}.scroll-cue i{display:block;width:2.5rem;height:1px;background:var(--ink);transform-origin:0 50%;animation:cue 1.8s var(--ease) infinite}.count{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-weight:500;letter-spacing:-.04em;font-size:.95rem}.lens{--mx:30%;--my:22%;width:min(78vw,44svh,500px);aspect-ratio:1;position:relative;border-radius:50%}.lens-glass{border-radius:inherit;background:radial-gradient(90% 80% at var(--mx) var(--my),rgba(255,255,255,.96),rgba(255,255,255,.28) 28%,transparent 46%),radial-gradient(120% 100% at 50% 42%,rgba(255,255,255,.55),rgba(226,236,250,.28) 52%,rgba(255,255,255,.08) 72%),radial-gradient(70% 60% at 72% 78%,rgba(176,204,242,.38),transparent 70%);box-shadow:inset 0 0 0 1px rgba(255,255,255,.85),inset 0 -40px 70px rgba(150,176,214,.18),0 24px 70px rgba(90,120,170,.1);backdrop-filter:blur(6px) saturate(1.15);-webkit-backdrop-filter:blur(6px) saturate(1.15);overflow:hidden}.lens svg,.lens-glass{position:absolute;inset:0}.lens svg{width:100%;height:100%;overflow:visible}.lens .arc,.lens .ring{fill:none;stroke:#1c1e22;stroke-width:1.35px;vector-effect:non-scaling-stroke}.lens .arc{stroke:rgba(28,30,34,.35);transform-box:view-box;transform-origin:center;transform:rotate(var(--tilt,0deg));transition:transform .45s var(--ease)}.lens.is-draw{animation:lensIn 1.15s var(--ease) both}.lens.is-idle .lens-glass{animation:drift 9s ease-in-out infinite alternate}.hero.is-intro .eyebrow,.hero.is-intro .hero-meta,.hero.is-intro h1{animation:rise 1s .55s var(--ease) both}.section{position:relative;z-index:1;max-width:1120px;margin:0 auto;padding:7.5rem 2rem 0}.section h2{margin:0 0 2.4rem;font-size:clamp(2.6rem,6vw,4.6rem);font-weight:500;letter-spacing:-.05em;line-height:.95}.index,.section h2 span{display:block;margin-bottom:.75rem;font-size:.72rem;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--faint)}.lede{margin:0 0 1.15rem;font-size:clamp(1.25rem,2vw,1.55rem);line-height:1.45;letter-spacing:-.02em;color:var(--ink)}.prose p{margin:0 0 1rem;color:var(--muted);max-width:40rem}.prose p:last-child{margin-bottom:0}.interests{display:flex;flex-wrap:wrap;gap:.4rem 0;list-style:none;padding:1.6rem 0 0;margin:0}.interests li{margin-right:.9rem;padding-right:.9rem;border-right:1px solid var(--line);color:var(--ink);font-size:.92rem}.interests li:last-child{border-right:0;margin-right:0;padding-right:0}.group-label{margin:2.8rem 0 .85rem;font-size:.95rem;font-weight:500;letter-spacing:-.02em}.timeline{position:relative;margin-left:.2rem;padding-left:1.65rem}.timeline:before{content:"";background:rgba(22,24,27,.14)}.timeline-fill,.timeline:before{position:absolute;left:.42rem;top:.35rem;bottom:.35rem;width:1px}.timeline-fill{background:rgba(22,24,27,.55);transform:scaleY(var(--fill,0));transform-origin:top center;pointer-events:none}.role{position:relative;border-top:1px solid var(--line)}.group .role:last-child{border-bottom:1px solid var(--line)}.role:before{content:"";position:absolute;left:-1.23rem;top:1.62rem;width:9px;height:9px;border-radius:50%;border:1.5px solid var(--ink);background:var(--bg);transform:translateX(-50%) scale(.3);opacity:0;z-index:1;transition:transform .45s var(--ease),opacity .45s var(--ease),background .3s var(--ease),border-color .3s var(--ease),box-shadow .3s var(--ease)}.timeline.is-in .role:before{transform:translateX(-50%) scale(1);opacity:1}.timeline.is-in .role:nth-of-type(2):before{transition-delay:.12s}.role.is-open:before{background:var(--blue);border-color:var(--blue);box-shadow:0 0 0 4px var(--blue-soft)}.role:not(.is-open):hover:before{background:rgba(47,111,237,.28);border-color:var(--blue)}.role:after{content:"";position:absolute;left:-1.23rem;top:1.9rem;width:1px;height:calc(100% - 2.2rem);background:var(--blue);transform:translateX(-50%) scaleY(0);transform-origin:top center;transition:transform .55s var(--ease);pointer-events:none}.role.is-open:after{transform:translateX(-50%) scaleY(1)}.orb{position:fixed;top:0;left:0;z-index:3;width:36px;height:36px;border-radius:50%;pointer-events:none;opacity:0;will-change:transform,width,height}.orb.is-pointer{z-index:70}.orb svg{position:absolute;inset:0;width:100%;height:100%}.orb .arc,.orb .ring{fill:none;stroke:#1c1e22;stroke-width:1.6px;vector-effect:non-scaling-stroke}.orb .arc{stroke:rgba(28,30,34,.35)}.orb.is-hot .ring{stroke:var(--blue)}html.has-orb,html.has-orb *{cursor:none!important}.role-btn{width:100%;display:grid;grid-template-columns:2.2rem minmax(0,1fr) auto;grid-gap:.2rem 1rem;gap:.2rem 1rem;align-items:center;padding:1.2rem 0;background:none;border:0;color:inherit;text-align:left;cursor:pointer}.idx{color:var(--faint);font-size:.8rem;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.role-main{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-column-gap:1.25rem;column-gap:1.25rem;align-items:baseline}.org{font-size:clamp(1.2rem,2vw,1.55rem);font-weight:500;letter-spacing:-.03em}.title{grid-column:1;color:var(--muted);font-size:.95rem}.date{grid-column:2;grid-row:1;color:var(--faint);font-size:.88rem;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;white-space:nowrap;transition:transform .45s var(--ease)}.role.is-open .date{transform:translateX(-4px)}.plus{width:.85rem;height:.85rem;position:relative;align-self:center}.plus:after,.plus:before{content:"";position:absolute;background:var(--ink);transition:transform .45s var(--ease)}.plus:before{left:0;right:0;top:50%;height:1px}.plus:after{top:0;bottom:0;left:50%;width:1px}.role.is-open .plus:after{transform:scaleY(0)}.panel{display:grid;grid-template-rows:0fr;transition:grid-template-rows .5s var(--ease)}.role.is-open .panel{grid-template-rows:1fr}.panel-inner{overflow:hidden}.panel-body{max-width:40rem;padding:0 0 1.4rem 3.2rem;color:var(--muted)}.panel-body p{margin:0 0 .8rem}.text-link{display:inline-flex;align-items:center;gap:.4rem;color:var(--ink);font-weight:500;text-underline-offset:.22em}.text-link svg{transition:transform .4s var(--ease)}.text-link:hover svg{transform:translate(2px,-2px)}.feature{display:grid;grid-gap:1.5rem;gap:1.5rem;align-items:center;padding-bottom:3.5rem}.feature-copy .kicker{margin:0 0 .7rem;font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--faint)}.entry h3,.feature h3{margin:0;font-size:clamp(2rem,4vw,3.3rem);font-weight:500;letter-spacing:-.045em;line-height:1}.tags{margin:.8rem 0 1.1rem;color:var(--muted);font-size:.92rem}.feature .lens{width:min(100%,380px);margin-inline:auto;transition:filter .7s var(--ease)}.feature.is-lit .lens{filter:brightness(1.12) saturate(1.2)}.entry{display:grid;grid-gap:.8rem 2.5rem;gap:.8rem 2.5rem;padding:2rem 0;border-top:1px solid var(--line)}.entry:last-of-type{border-bottom:1px solid var(--line)}.metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:1.2rem 1rem;gap:1.2rem 1rem;list-style:none;padding:.4rem 0 .2rem;margin:0 0 1rem}.metrics strong{display:block;font-size:clamp(1.65rem,3vw,2.45rem);font-weight:500;letter-spacing:-.045em;line-height:1;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.metrics span{display:block;margin-top:.35rem;color:var(--muted);font-size:.85rem}.note,.stack{margin:.35rem 0 .9rem;color:var(--faint);font-size:.85rem}.experiments{max-width:40rem;margin:2.2rem 0 0;color:var(--muted)}.press{display:grid;grid-template-columns:minmax(8rem,14rem) minmax(0,1fr) auto auto;grid-gap:.75rem 1.25rem;gap:.75rem 1.25rem;align-items:baseline;padding:1.15rem .4rem;margin:0 -.4rem;border-top:1px solid var(--line);text-decoration:none;color:inherit;background:transparent;transition:background .4s var(--ease)}.press:focus-visible,.press:hover{background:rgba(255,255,255,.62)}.stories .press:last-child,.stories .static:last-child{border-bottom:1px solid var(--line)}.outlet{color:var(--faint);font-size:.92rem}.story-title{display:inline-block;font-weight:500;letter-spacing:-.02em;transition:transform .45s var(--ease)}.press:focus-visible .story-title,.press:hover .story-title{transform:translateX(4px)}.press svg{opacity:0;transition:opacity .35s var(--ease)}.press:focus-visible svg,.press:hover svg{opacity:1}.year{color:var(--faint);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-size:.88rem}.static{cursor:default}.story-note{grid-column:2/-1;margin:-.35rem 0 0;color:var(--faint);font-size:.85rem}.press-word{font-style:normal}.contact-grid,.resume-row{display:grid;grid-gap:1.5rem;gap:1.5rem}.contact-grid p,.resume-row p{margin:0 0 .85rem;color:var(--muted);max-width:36rem}.download{position:relative;display:inline-flex;align-items:center;gap:.75rem;margin-top:.6rem;padding:.9rem 1.15rem;border-radius:999px;background:var(--ink);color:#f4f6f8;text-decoration:none;font-size:.95rem;letter-spacing:-.02em}.download-ring{position:absolute;inset:-5px;border-radius:inherit;border:1px solid transparent;border-top:1px solid var(--blue);opacity:0;pointer-events:none}.download.is-busy .download-ring,.download:focus-visible .download-ring,.download:hover .download-ring{opacity:1;animation:turn .7s var(--ease) forwards}.download .down-icon{transition:transform .35s var(--ease)}.download.is-busy .down-icon,.download:focus-visible .down-icon,.download:hover .down-icon{transform:translateY(3px);transition-delay:.45s}.mail{display:inline-block;margin:.4rem 0 1rem;padding-bottom:.08em;font-size:clamp(1.4rem,3vw,2.15rem);font-weight:500;letter-spacing:-.04em;text-decoration:none;background-image:linear-gradient(currentColor,currentColor);background-repeat:no-repeat;background-position:0 100%;background-size:0 1px;transition:background-size .6s var(--ease)}.mail:focus-visible,.mail:hover{background-size:100% 1px}.socials{display:flex;flex-wrap:wrap;gap:.5rem 1.4rem;list-style:none;padding:0;margin:0}.socials a{text-decoration:none;font-weight:500}.footer{position:relative;z-index:1;max-width:1120px;margin:0 auto;padding:4.5rem max(1.4rem,calc((100% - 1120px) / 2 + 2rem)) 2rem;display:flex;justify-content:space-between;gap:1rem;color:var(--faint);font-size:.88rem}.footer a{color:var(--muted);text-decoration:none}@media (min-width:800px){.section{padding-top:8.5rem}.feature{grid-template-columns:.85fr 1.15fr;gap:4rem}.entry{grid-template-columns:.7fr 1.3fr;align-items:start}.metrics{grid-template-columns:repeat(4,minmax(0,1fr))}.about,.contact-grid,.resume-row{grid-template-columns:.7fr 1.3fr;align-items:start}.about{display:grid;grid-gap:3rem;gap:3rem}.about h2{margin-bottom:0}}@media (max-width:760px){.nav-links{margin-left:0;width:100%;max-width:100%;flex-wrap:nowrap;justify-content:space-between;gap:.3rem;overflow:visible}.nav-links a{font-size:.62rem;letter-spacing:.04em}.hero{padding-top:7.2rem}.hero-foot{margin-top:-2.4rem}.hero-meta{flex-direction:column;align-items:flex-start;gap:.8rem}.role-main{grid-template-columns:1fr}.date{grid-column:1;grid-row:auto;margin-top:.2rem}.panel-body{padding-left:0}.press,.static{grid-template-columns:minmax(0,1fr) auto}.outlet,.story-note{grid-column:1/-1}.year{justify-self:end}}@media (prefers-reduced-motion:no-preference){html.motion .entry:not(.is-in),html.motion .feature:not(.is-in),html.motion .press:not(.is-in){opacity:0;transform:translateY(12px)}html.motion .entry.is-in,html.motion .feature.is-in,html.motion .press.is-in{animation:riseSoft .75s var(--ease) both;animation-delay:var(--d,0s)}.press.is-in .press-word{animation:pressOnce 1.6s var(--ease) .25s 1 both}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:after,:before{animation:none!important;transition:none!important}.timeline-fill{transform:none}.role:before{opacity:1;transform:translateX(-50%)}.role.is-open:after{transform:translateX(-50%) scaleY(1)}.press svg{opacity:1}}@keyframes lensIn{0%{opacity:0;transform:scale(.94)}to{opacity:1;transform:none}}@keyframes rise{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}@keyframes cue{0%,to{transform:scaleX(.35);opacity:.4}50%{transform:scaleX(1);opacity:1}}@keyframes riseSoft{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}@keyframes turn{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@keyframes pressOnce{0%{opacity:1}45%{opacity:.28}to{opacity:1}}@keyframes drift{0%{--mx:24%;--my:18%}to{--mx:68%;--my:42%}}