:root{--bg:#08080a;--bg-elev:#0e0e11;--surface:#ffffff06;--surface-hi:#ffffff0d;--line:#ffffff14;--line-hi:#ffffff29;--fg:#fafafa;--fg-muted:#a2a2ad;--fg-dim:#8e8e99;--accent:#7aa2f7;--accent-soft:#7aa2f724;--accent-deep:#3b6fd4;--accent-line:#7aa2f759;--glow-a:#7aa2f721;--glow-b:#7882ff0f;--nav-veil:#08080ae6;--sheen-a:#ffffff0b;--sheen-b:#ffffff03;--dot:#7aa2f71a;--r-sm:8px;--r-md:14px;--r-lg:20px;--r-pill:999px;--frame:min(94vw, 1800px);--column:min(94vw, max(1080px, 64vw), 1280px);--measure:68ch;--nav-h:66px;--font:"Segoe UI Variable Display", "Segoe UI", -apple-system, BlinkMacSystemFont, "SF Pro Display", Inter, system-ui, Roboto, sans-serif;--mono:ui-monospace, "SF Mono", "Cascadia Code", Menlo, Consolas, monospace;color-scheme:dark}:root[data-theme=light]{--bg:#fbfbfa;--bg-elev:#fff;--surface:#0f0f1407;--surface-hi:#0f0f140e;--line:#0f0f141c;--line-hi:#0f0f1433;--fg:#14141a;--fg-muted:#4d4d57;--fg-dim:#71717c;--accent:#2f5fc7;--accent-soft:#2f5fc71c;--accent-deep:#244a9e;--accent-line:#2f5fc74d;--glow-a:#2f5fc717;--glow-b:#7882ff0d;--nav-veil:#fbfbfaeb;--sheen-a:#0f0f1408;--sheen-b:#0f0f1402;--dot:#0f0f1414;color-scheme:light}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.001ms!important;animation-duration:.001ms!important}}body{background:var(--bg);color:var(--fg);font-family:var(--font);-webkit-font-smoothing:antialiased;margin:0;font-size:16px;line-height:1.6;overflow-x:hidden}.glow{pointer-events:none;z-index:0;background:radial-gradient(ellipse 70% 44% at 50% -12%, var(--glow-a), transparent 70%), radial-gradient(ellipse 50% 40% at 88% 4%, var(--glow-b), transparent 70%);position:fixed;inset:0}.dots{pointer-events:none;z-index:0;background-image:radial-gradient(circle, var(--dot) 1px, transparent 1px);background-size:22px 22px;position:fixed;inset:0;mask-image:radial-gradient(100% 60% at 50% 0,#000,#0000 70%)}.shell{z-index:1;position:relative}a{color:inherit;text-decoration:none}a:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:var(--r-sm)}img{max-width:100%;height:auto}.sr-only{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.is-copied,.btn.is-copied{color:var(--accent);border-color:var(--accent-line)}::selection{background:var(--accent);color:var(--bg)}.frame{width:var(--frame);margin-inline:auto}.column{width:var(--column);margin-inline:auto}.bleed{width:var(--frame);margin-inline:calc(50% - var(--frame) / 2)}.js [data-reveal]{opacity:0;transition:opacity .75s cubic-bezier(.16,1,.3,1),transform .75s cubic-bezier(.16,1,.3,1);transition-delay:var(--d,0s);transform:translateY(20px)}.js [data-reveal].in{opacity:1;transform:none}.js [data-reveal-now]{transform:translateY(var(--ty,8px));transition:opacity 2s ease-in-out,transform 2s ease-in-out;transition-delay:var(--d,0s)}.hl{color:var(--accent)}.js [data-reveal-now] .hl{color:var(--fg)}.js [data-reveal-now].in .hl{color:var(--accent);animation:1.6s ease-in-out hl-warm}@keyframes hl-warm{0%,56%{color:var(--fg)}to{color:var(--accent)}}.js [data-stagger]>*{opacity:0;transition:opacity .75s cubic-bezier(.16,1,.3,1),transform .75s cubic-bezier(.16,1,.3,1);transform:translateY(20px)}.js [data-stagger].in>*{opacity:1;transform:none}.js [data-stagger].in>:first-child{transition-delay:0s}.js [data-stagger].in>:nth-child(2){transition-delay:80ms}.js [data-stagger].in>:nth-child(3){transition-delay:.16s}.js [data-stagger].in>:nth-child(4){transition-delay:.24s}.js [data-stagger].in>:nth-child(5){transition-delay:.32s}.js [data-stagger].in>:nth-child(6){transition-delay:.4s}@media (prefers-reduced-motion:reduce){.js [data-reveal],.js [data-stagger]>*{opacity:1!important;transition:none!important;transform:none!important}}.kicker{letter-spacing:.02em;color:var(--fg-muted);border:1px solid var(--line);background:var(--surface);border-radius:var(--r-pill);align-items:center;gap:8px;padding:6px 14px 6px 10px;font-size:12.5px;font-weight:500;display:inline-flex}.kicker .dot{background:var(--accent);width:6px;height:6px;box-shadow:0 0 0 3px var(--accent-soft);border-radius:50%}h1.display{letter-spacing:-.032em;text-wrap:balance;margin:0;font-size:clamp(38px,6vw,76px);font-weight:500;line-height:1.04}.section-title{letter-spacing:-.028em;text-wrap:balance;margin:0;font-size:clamp(28px,3.6vw,44px);font-weight:500;line-height:1.1}h1.page{letter-spacing:-.03em;text-wrap:balance;margin:0;font-size:clamp(32px,4.6vw,56px);font-weight:500;line-height:1.06}.muted{color:var(--fg-muted)}.dim{color:var(--fg-dim)}.eyebrow{letter-spacing:.14em;text-transform:uppercase;color:var(--fg-dim);margin:0 0 18px;font-size:12px;font-weight:600}.body-lg{color:var(--fg-muted);text-wrap:pretty;max-width:62ch;font-size:17.5px;line-height:1.62}.btn{border-radius:var(--r-pill);letter-spacing:-.01em;cursor:pointer;white-space:nowrap;border:1px solid #0000;justify-content:center;align-items:center;gap:8px;padding:11px 22px;font-family:inherit;font-size:14.5px;font-weight:500;transition:transform .15s,background .15s,border-color .15s,opacity .15s;display:inline-flex}.btn:active{transform:translateY(1px)}.btn-primary{background:var(--fg);color:var(--bg)}.btn-primary:hover{background:#fff}.btn-ghost{border-color:var(--line-hi);color:var(--fg);background:0 0}.btn-ghost:hover{background:var(--surface-hi);border-color:var(--line-hi)}.btn-sm{padding:8px 16px;font-size:13.5px}.nav{z-index:20;position:sticky;top:0}.nav:before{content:"";pointer-events:none;backdrop-filter:blur(8px);background:var(--nav-veil);position:absolute;inset:0 0 -48px;mask-image:linear-gradient(#000 58%,#0000 100%)}.nav-in{width:var(--column);height:var(--nav-h);grid-template-columns:1fr auto 1fr;align-items:center;gap:20px;margin-inline:auto;display:grid;position:relative}.nav-pill{border:1px solid var(--line);border-radius:var(--r-pill);background:var(--bg-elev);justify-self:center;align-items:center;gap:2px;padding:4px;display:flex}.nav-pill a{border-radius:var(--r-pill);color:var(--fg-muted);align-items:center;gap:7px;padding:6px 13px;font-size:14px;line-height:1;transition:color .15s,background-color .15s;display:inline-flex}.nav-pill svg{fill:none;stroke:currentColor;stroke-width:1.4px;stroke-linecap:round;stroke-linejoin:round;flex:none;width:15px;height:15px}.nav-pill a:hover{color:var(--fg)}.nav-pill a[aria-current=page]{background:var(--surface-hi);color:var(--fg)}.nav-end{justify-self:end;align-items:center;gap:10px;display:flex}.theme-toggle{border:1px solid var(--line);border-radius:var(--r-pill);width:32px;height:32px;color:var(--fg-muted);cursor:pointer;background:0 0;place-items:center;font-size:13px;line-height:1;transition:color .15s,border-color .15s;display:grid}.theme-toggle:hover{color:var(--fg);border-color:var(--line-hi)}.brand{letter-spacing:-.015em;align-items:center;gap:10px;font-size:15px;font-weight:600;display:inline-flex}.brand-mark{background:linear-gradient(150deg, var(--accent), var(--accent-deep));color:#fff;letter-spacing:-.02em;border-radius:7px;place-items:center;width:26px;height:26px;font-size:12px;font-weight:700;display:grid}.hero{grid-template-columns:1.35fr .9fr;align-items:end;gap:56px;padding:92px 0 76px;display:grid}.hero-side{padding-bottom:6px}.section{padding-block:86px}.section-sm{padding-block:60px}.hr{border:0;border-top:1px solid var(--line);margin:0}.rail{border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface);grid-template-columns:repeat(4,1fr);display:grid;overflow:hidden}.rail>div{border-left:1px solid var(--line);padding:26px 28px}.rail>div:first-child{border-left:0}.rail-fig{letter-spacing:-.03em;font-variant-numeric:tabular-nums;font-size:clamp(26px,2.6vw,34px);font-weight:500;line-height:1}.rail-lab{color:var(--fg-dim);margin-top:10px;font-size:13px;display:block}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;display:grid}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;display:grid}.card{border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface);padding:28px 28px 26px;transition:border-color .18s,background .18s,transform .18s;display:block;position:relative}a.card:hover{border-color:var(--line-hi);background:var(--surface-hi);transform:translateY(-2px)}.card-top{justify-content:space-between;align-items:center;gap:12px;margin-bottom:18px;display:flex}.tag{letter-spacing:.06em;text-transform:uppercase;color:var(--fg-dim);border:1px solid var(--line);border-radius:var(--r-pill);white-space:nowrap;padding:4px 11px;font-size:11.5px;font-weight:500}.card-num{font-family:var(--mono);color:var(--fg-dim);font-size:12px}.card h3{letter-spacing:-.022em;text-wrap:balance;margin:0 0 10px;font-size:21px;font-weight:500;line-height:1.25}.card p{color:var(--fg-muted);text-wrap:pretty;margin:0;font-size:14.5px;line-height:1.58}.card-foot{border-top:1px solid var(--line);color:var(--fg-dim);justify-content:space-between;align-items:center;gap:12px;margin-top:20px;padding-top:16px;font-size:13px;display:flex}a.card:hover .card-cta{color:var(--accent)}.card-cta{font-weight:500;transition:color .18s}.chips{flex-wrap:wrap;gap:8px;display:flex}.chip{font-family:var(--mono);color:var(--fg-muted);border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface);padding:4px 10px;font-size:12px}.arrow-link{color:var(--fg);border-bottom:1px solid var(--line-hi);align-items:center;gap:7px;padding-bottom:2px;font-size:15px;transition:color .15s,border-color .15s;display:inline-flex}.arrow-link:hover{color:var(--accent);border-bottom-color:var(--accent)}.arrow-link span{transition:transform .2s cubic-bezier(.16,1,.3,1)}.arrow-link:hover span{transform:translate(3px)}@media (prefers-reduced-motion:reduce){.arrow-link span{transition:none}}.panel{border:1px solid var(--line);border-radius:var(--r-lg);background:linear-gradient(180deg, var(--sheen-a), var(--sheen-b));padding:10px}.panel-in{border:1px solid var(--line);border-radius:var(--r-md);background:var(--bg-elev);padding:34px 30px}.panel-head{align-items:center;gap:8px;margin-bottom:26px;display:flex}.panel-head .lights{gap:6px;margin-right:8px;display:flex}.panel-head .lights i{background:var(--line-hi);border-radius:50%;width:10px;height:10px;display:block}.panel-title{font-family:var(--mono);color:var(--fg-dim);font-size:12.5px}.pipe{grid-template-columns:repeat(5,minmax(0,1fr));align-items:stretch;gap:10px;display:grid}.node{border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface);flex-direction:column;justify-content:space-between;min-height:104px;padding:16px 14px;display:flex}.node.is-model{border-color:var(--accent-line);background:linear-gradient(180deg, var(--accent-soft), transparent)}.node.is-gate{border-color:var(--line-hi);background:var(--surface-hi)}.node-step{font-family:var(--mono);color:var(--fg-dim);font-size:11px}.node-name{letter-spacing:-.015em;margin-top:10px;font-size:14px;font-weight:500}.node-note{color:var(--fg-dim);margin-top:5px;font-size:12px;line-height:1.4}.pipe-legend{border-top:1px solid var(--line);color:var(--fg-dim);flex-wrap:wrap;gap:18px;margin-top:22px;padding-top:18px;font-size:12.5px;display:flex}.pipe-legend span{align-items:center;gap:7px;display:inline-flex}.swatch{border-radius:3px;width:9px;height:9px;display:inline-block}.tl-top{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:18px;margin-bottom:34px;display:flex}.tl-employer{color:var(--fg-dim);font-variant-numeric:tabular-nums;margin:0;font-size:13px}.timeline{border-left:1px solid var(--line);gap:38px;margin:0;padding:4px 0 4px 30px;list-style:none;display:grid}.tl-item{grid-template-columns:minmax(0,1fr) auto;align-items:baseline;column-gap:32px;display:grid;position:relative}.tl-item:before{content:"";background:var(--bg);border:1px solid var(--line-hi);border-radius:50%;width:9px;height:9px;position:absolute;top:9px;left:-35px}.tl-meta{text-align:right;white-space:nowrap;grid-area:1/2}.tl-item:first-child:before{background:var(--accent);border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-soft)}.tl-period{letter-spacing:.04em;color:var(--fg-dim);font-variant-numeric:tabular-nums;font-size:12.5px}.tl-period:after{content:" · ";color:var(--fg-dim)}.tl-title{letter-spacing:-.015em;grid-area:1/1;margin:0;font-size:19px;font-weight:500}.tl-item:first-child .tl-title{font-size:22px}.tl-notes{max-width:62ch;color:var(--fg-muted);grid-area:2/1;margin:12px 0 0}.tl-where{color:var(--fg-dim);font-size:12.5px}.about-intro{grid-template-columns:140px minmax(0,1fr);align-items:start;gap:30px;display:grid}.about-photo{object-fit:cover;object-position:50% 22%;border-radius:var(--r-md);border:1px solid var(--line);width:140px;height:170px}.prose{max-width:var(--measure)}.prose p,.prose ul,.prose ol{color:var(--fg-muted);text-wrap:pretty;font-size:17px;line-height:1.68}.prose h2{letter-spacing:-.025em;color:var(--fg);margin:52px 0 14px;font-size:26px;font-weight:500;line-height:1.2}.prose h3{color:var(--fg);margin:34px 0 8px;font-size:18px;font-weight:600}.prose strong{color:var(--fg);font-weight:600}.prose li{margin-bottom:8px}.prose code{font-family:var(--mono);background:var(--surface-hi);border:1px solid var(--line);color:var(--fg);border-radius:5px;padding:1px 6px;font-size:.87em}.prose pre{background:var(--bg-elev);border:1px solid var(--line);border-radius:var(--r-md);padding:18px;font-size:13.5px;overflow-x:auto}.prose pre code{background:0 0;border:0;padding:0}.prose blockquote{border:1px solid var(--line);border-left:2px solid var(--accent);border-radius:var(--r-md);background:var(--surface);margin:34px 0;padding:18px 22px}.prose blockquote p{color:var(--fg);margin:0;font-size:17px}.prose a{color:var(--fg);border-bottom:1px solid var(--accent)}.prose a:hover{color:var(--accent)}.prose hr{border:0;border-top:1px solid var(--line);margin:46px 0}.case-mock{width:100%}.dg{width:var(--column);contain:inline-size;margin:38px 0 34px}.dg-scroll{border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface);padding:24px 22px 20px;overflow-x:auto}.dg-scroll svg{width:100%;min-width:660px;height:auto;display:block}.dg figcaption{max-width:var(--measure);color:var(--fg-dim);margin-top:16px;font-size:14.5px;line-height:1.6}.dg-box{fill:var(--surface-hi);stroke:var(--line);stroke-width:1px}.dg-box-on{fill:var(--accent-soft);stroke:var(--accent-line);stroke-width:1px}.dg-lane{fill:var(--surface);stroke:var(--line);stroke-width:1px}.dg-t{fill:var(--fg);font-family:var(--font);font-size:13px;font-weight:500}.dg-sub{fill:var(--fg-muted);font-family:var(--font);font-size:11.5px}.dg-lab{fill:var(--fg-muted);font-family:var(--font);font-size:11px}.dg-lab-on{fill:var(--accent);font-family:var(--font);font-size:11px;font-weight:500}.dg-lane-lab{fill:var(--fg);font-family:var(--font);letter-spacing:.11em;font-size:11px;font-weight:600}.dg-edge{stroke:var(--fg-dim);stroke-width:1.5px;fill:none}.dg-edge-off{stroke:var(--accent);stroke-width:1.5px;fill:none;stroke-dasharray:5 5}.dg-brace{stroke:var(--accent-line);stroke-width:1.5px;fill:none}.dg-guide{stroke:var(--line);stroke-width:1px;fill:none}.dg-code{fill:var(--fg);font-family:var(--mono);font-size:12px}.dg-big{fill:var(--fg);font-family:var(--font);letter-spacing:-.01em;font-size:30px;font-weight:600}.dg-x{stroke:var(--accent);stroke-width:2px;stroke-linecap:round}.dg-head{fill:var(--fg-dim)}.dg-head-on{fill:var(--accent)}.shot-stack{gap:52px;display:grid}.shot-label{flex-wrap:wrap;align-items:baseline;gap:14px;margin-bottom:14px;display:flex}.shot-line{color:var(--fg-dim);font-size:13.5px}.seg-wrap{top:var(--nav-h);z-index:21;grid-template-columns:1fr auto 1fr;align-items:center;gap:18px;padding-block:13px;display:grid;position:sticky}.seg-wrap .seg{grid-column:2}.seg-wrap:before{content:"";width:var(--frame);z-index:-1;backdrop-filter:blur(8px);background:var(--nav-veil);border-bottom:1px solid var(--line);position:absolute;top:0;bottom:0;left:50%;transform:translate(-50%)}.seg{border:1px solid var(--line);background:var(--surface);border-radius:var(--r-pill);gap:4px;padding:4px;display:inline-flex}.seg button{appearance:none;color:var(--fg-muted);letter-spacing:-.01em;border-radius:var(--r-pill);cursor:pointer;background:0 0;border:0;padding:9px 22px;font-family:inherit;font-size:14.5px;font-weight:500;transition:background .15s,color .15s}.seg button:hover{color:var(--fg)}.seg button[aria-selected=true]{background:var(--fg);color:var(--bg)}.seg-note{color:var(--fg-dim);grid-column:3;justify-self:start;font-size:13px;transition:opacity .25s}.seg-wrap.is-stuck .seg-note{opacity:0;pointer-events:none}.mock-note{max-width:84ch;color:var(--fg-dim);text-wrap:pretty;margin:16px 0 0;font-size:12.5px;line-height:1.6}.shot-intro{max-width:780px;margin-bottom:34px}.note{border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface);color:var(--fg-muted);max-width:var(--measure);padding:20px 22px;font-size:14px;line-height:1.6}.note strong{color:var(--fg);font-weight:600}.cta{border:1px solid var(--line);border-radius:var(--r-lg);background:radial-gradient(ellipse 60% 120% at 50% 0%, var(--accent-soft), transparent 70%), var(--surface);text-align:center;padding:60px 40px}.cta-actions{flex-wrap:wrap;justify-content:center;gap:12px;margin-top:28px;display:flex}.foot{border-top:1px solid var(--line);color:var(--fg-dim);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:20px;margin-top:30px;padding-block:34px 60px;font-size:14px;display:flex}.foot a:hover{color:var(--fg)}.foot-links{flex-wrap:wrap;gap:22px;display:flex}.back{color:var(--fg-dim);align-items:center;gap:7px;font-size:13.5px;transition:color .15s;display:inline-flex}.back:hover{color:var(--fg)}@media (width<=940px){.hero{grid-template-columns:1fr;align-items:start;gap:30px;padding:60px 0 52px}.grid-2,.grid-3{grid-template-columns:1fr}.rail{grid-template-columns:repeat(2,1fr)}.rail>div:nth-child(odd){border-left:0}.rail>div:nth-child(n+3){border-top:1px solid var(--line)}.pipe{grid-template-columns:repeat(2,minmax(0,1fr))}.section{padding-block:60px}}@media (width<=620px){.nav-pill a{padding:8px}.nav-pill a span,.nav-hide{display:none}.nav-pill{z-index:30;background:var(--bg-elev);position:fixed;bottom:18px;left:50%;transform:translate(-50%);box-shadow:0 8px 30px #00000059}.nav-in{grid-template-columns:1fr auto}.about-intro{grid-template-columns:1fr;gap:22px}.seg-wrap{grid-template-columns:1fr}.seg-wrap .seg{grid-column:1;justify-self:center}.seg-note{display:none}.tl-item{grid-template-columns:1fr}.tl-meta{text-align:left;grid-area:2/1;margin-top:8px}.tl-notes{grid-row:3}.pipe{grid-template-columns:1fr}.cta{padding:42px 22px}.panel-in{padding:22px 16px}}.resume-dl{font:inherit;color:var(--fg-muted);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-pill);margin-left:12px;padding:4px 11px;font-size:12px;display:inline-block}.resume-dl:hover{color:var(--fg);border-color:var(--line-hi)}@media print{.js [data-reveal],.js [data-reveal-now],.js [data-stagger]>*{opacity:1!important;transition:none!important;animation:none!important;transform:none!important}:root,:root[data-theme=light],:root[data-theme=dark]{--bg:#fff;--bg-elev:#fff;--surface:transparent;--fg:#000;--fg-muted:#1f1f26;--fg-dim:#3a3a44;--line:#00000038;--line-hi:#00000059;--accent:#1a1a20;--accent-soft:transparent;--accent-line:#00000038;--glow-a:transparent;--dot:transparent}html,body{color:#000!important;background:#fff!important}*{print-color-adjust:exact}.nav,.nav:before,.dots,.glow,.resume-dl,.foot-links,[data-theme-toggle]{display:none!important}.shell,.frame,.column{width:auto;max-width:none;margin:0;padding:0}.section{padding:14pt 0!important}.timeline li,.tl-top,.skill,.edu{break-inside:avoid;page-break-inside:avoid}h1,h2,h3{break-after:avoid;page-break-after:avoid}h1.page{font-size:22pt}body{font-size:10.5pt;line-height:1.42}a{text-decoration:none;color:#000!important}.foot a[href^=http]:after{content:" (" attr(href) ")";color:#3a3a44;font-size:9pt}@page{margin:14mm}}.work-lede{gap:34px;margin-bottom:34px;display:grid}@media (width>=1100px){.work-lede{grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);align-items:start;gap:56px}}.work-teaser{border-left:1px solid var(--line);padding-left:22px}@media (width<=1099px){.work-teaser{border-left:0;border-top:1px solid var(--line);padding-top:20px;padding-left:0}}.work-teaser-body{color:var(--fg-dim);text-wrap:pretty;margin:0 0 16px;font-size:15.5px;line-height:1.66}
