:root{color-scheme:light dark;--bg:light-dark(oklch(98.5% .002 250),oklch(16.5% .006 262));--surface:light-dark(oklch(100% 0 0),oklch(19.8% .007 262));--surface-2:light-dark(oklch(96.8% .003 250),oklch(22.8% .008 262));--line:light-dark(oklch(91.5% .004 250),oklch(28.5% .009 262));--line-strong:light-dark(oklch(85% .006 250),oklch(36% .01 262));--ink:light-dark(oklch(22% .014 262),oklch(96.5% .003 262));--ink-2:light-dark(oklch(43% .014 262),oklch(80% .008 262));--ink-3:light-dark(oklch(53% .012 262),oklch(68% .008 262));--on-ink:var(--bg);--focus:var(--ink);--shadow:light-dark(oklch(25% .02 262/.12),oklch(0% 0 0/.5));--overlay:light-dark(oklch(25% .02 262/.3),oklch(0% 0 0/.62));--cloud:light-dark(oklch(62% .17 255),oklch(70% .15 255));--cloud-text:light-dark(oklch(50% .15 255),oklch(80% .1 255));--cloud-soft:light-dark(oklch(96.5% .014 255),oklch(25% .04 255));--cloud-line:light-dark(oklch(86% .06 255),oklch(40% .08 255));--auto:light-dark(oklch(68% .14 165),oklch(74% .13 165));--auto-text:light-dark(oklch(50% .1 165),oklch(80% .1 165));--auto-soft:light-dark(oklch(96.5% .022 165),oklch(25% .035 165));--auto-line:light-dark(oklch(86% .06 165),oklch(40% .07 165));--rel:light-dark(oklch(79% .15 75),oklch(82% .14 75));--rel-text:light-dark(oklch(52% .11 75),oklch(84% .11 75));--rel-soft:light-dark(oklch(97% .024 75),oklch(26% .035 75));--rel-line:light-dark(oklch(87% .07 75),oklch(42% .07 75));--sec:light-dark(oklch(63% .2 345),oklch(70% .17 345));--sec-text:light-dark(oklch(50% .18 345),oklch(80% .12 345));--sec-soft:light-dark(oklch(96.5% .02 345),oklch(25% .04 345));--sec-line:light-dark(oklch(86% .06 345),oklch(40% .08 345));--spectrum:linear-gradient(90deg, var(--cloud) 0 25%, var(--auto) 25% 50%, var(--rel) 50% 75%, var(--sec) 75% 100%);--font-sans:"Be Vietnam Pro", ui-sans-serif, system-ui, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono:"JetBrains Mono", ui-monospace, "Cascadia Mono", Consolas, monospace;--text-xs:.75rem;--text-sm:.875rem;--text-md:1rem;--text-lg:1.125rem;--text-xl:1.3125rem;--text-2xl:clamp(1.375rem, 1.15rem + .9vw, 1.875rem);--text-3xl:clamp(1.875rem, 1.35rem + 2vw, 2.875rem);--text-display:clamp(2.375rem, 1.45rem + 3.4vw, 4rem);--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--space-7:48px;--space-8:64px;--space-9:96px;--space-10:128px;--section-pad:clamp(64px, 4.5vw + 44px, 120px);--radius-sm:6px;--radius-md:10px;--radius-lg:16px;--radius-xl:20px;--radius-pill:999px;--dur-1:.12s;--dur-2:.2s;--dur-3:.32s;--dur-4:.56s;--ease-out:cubic-bezier(.22, 1, .36, 1);--ease-in-out:cubic-bezier(.65, 0, .35, 1);--stagger:60ms;--container:1200px;--gutter:clamp(20px, 3vw, 32px);--nav-h:64px}[data-theme=light]{color-scheme:light}[data-theme=dark]{color-scheme:dark}[data-cap=cloud]{--c:var(--cloud);--c-text:var(--cloud-text);--c-soft:var(--cloud-soft);--c-line:var(--cloud-line)}[data-cap=auto]{--c:var(--auto);--c-text:var(--auto-text);--c-soft:var(--auto-soft);--c-line:var(--auto-line)}[data-cap=rel]{--c:var(--rel);--c-text:var(--rel-text);--c-soft:var(--rel-soft);--c-line:var(--rel-line)}[data-cap=sec]{--c:var(--sec);--c-text:var(--sec-text);--c-soft:var(--sec-soft);--c-line:var(--sec-line)}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-padding-top:calc(var(--nav-h) + 20px)}html[data-motion=full]{scroll-behavior:smooth;interpolate-size:allow-keywords}body{background:var(--bg);min-height:100vh;color:var(--ink);font-family:var(--font-sans);font-size:var(--text-md);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;line-height:1.6}h1,h2,h3,h4,p,figure,blockquote,dl,dd{margin:0}:where(ul[class],ol[class]){margin:0;padding:0;list-style:none}img,svg{max-width:100%;display:block}a{color:inherit;text-underline-offset:.22em;text-decoration-thickness:1px}button,input{font:inherit;color:inherit}button{cursor:pointer}:focus-visible{outline:2px solid var(--focus);outline-offset:3px}::selection{background:color-mix(in oklch, var(--cloud) 30%, transparent)}.i{flex:none;width:1.25em;height:1.25em}.mono{font-family:var(--font-mono)}.nowrap{white-space:nowrap}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{z-index:100;border-radius:var(--radius-md);background:var(--ink);color:var(--on-ink);padding:10px 16px;font-weight:600;text-decoration:none;position:fixed;top:12px;left:16px;transform:translateY(-160%)}.skip-link:focus{transform:none}.container{width:min(100% - 2 * var(--gutter), var(--container));margin-inline:auto}html[data-ph=on] .ph{outline:1.5px dashed var(--sec);outline-offset:2px;background-color:color-mix(in oklch, var(--sec) 9%, transparent);border-radius:3px}.button{border-radius:var(--radius-md);white-space:nowrap;height:44px;transition:background-color var(--dur-1), border-color var(--dur-1), color var(--dur-1), transform var(--dur-1) var(--ease-out);border:1px solid #0000;justify-content:center;align-items:center;gap:8px;padding:0 18px;font-size:.9375rem;font-weight:600;line-height:1;text-decoration:none;display:inline-flex}.button .i{width:18px;height:18px}.button-primary{background:var(--ink);color:var(--on-ink)}.button-primary:hover{background:color-mix(in oklch, var(--ink) 84%, var(--bg))}.button-secondary{background:var(--surface);color:var(--ink);border-color:var(--line-strong)}.button-secondary:hover{background:var(--surface-2);border-color:var(--ink-3)}.button-ghost{color:var(--ink-2);background:0 0}.button-ghost:hover{background:var(--surface-2);color:var(--ink)}.button-sm{height:36px;font-size:var(--text-sm);border-radius:9px;padding:0 14px}.button[disabled],.button.is-disabled{opacity:.45;pointer-events:none}html[data-motion=full] .button:active{transform:translateY(1px)scale(.99)}html[data-motion=full] .button .i-move{transition:transform var(--dur-2) var(--ease-out)}html[data-motion=full] .button:is(:hover,:focus-visible) .i-move.to-right{transform:translate(3px)}html[data-motion=full] .button:is(:hover,:focus-visible) .i-move.to-down{transform:translateY(2px)}.text-link{color:var(--ink);text-decoration:underline;text-decoration-color:color-mix(in oklch, currentColor 38%, transparent);transition:text-decoration-color var(--dur-1);align-items:center;gap:4px;font-weight:500;display:inline-flex}.text-link:hover{text-decoration-color:currentColor}.text-link .i{width:16px;height:16px}.icon-button{border-radius:var(--radius-md);width:44px;height:44px;color:var(--ink-2);transition:background-color var(--dur-1), color var(--dur-1);background:0 0;border:1px solid #0000;place-items:center;display:inline-grid}.icon-button:hover{background:var(--surface-2);color:var(--ink)}.icon-button .i{width:20px;height:20px}kbd{border:1px solid var(--line);background:var(--surface-2);min-width:22px;height:22px;font-family:var(--font-mono);color:var(--ink-2);border-bottom-width:2px;border-radius:6px;justify-content:center;align-items:center;padding:0 6px;font-size:.6875rem;line-height:1;display:inline-flex}.chips{flex-wrap:wrap;gap:6px;display:flex}.chip{border:1px solid var(--c-line,var(--line));border-radius:var(--radius-pill);background:var(--c-soft,var(--surface-2));height:28px;color:var(--c-text,var(--ink-2));white-space:nowrap;transition:border-color var(--dur-1);align-items:center;gap:7px;padding:0 11px 0 10px;font-size:.8125rem;font-weight:500;line-height:1;text-decoration:none;display:inline-flex}.chip:before{content:"";background:var(--c,var(--ink-3));border-radius:50%;flex:none;width:6px;height:6px}a.chip:hover{border-color:var(--c,var(--ink-3))}.logo-tile{border:1px solid var(--line);background:var(--surface);border-radius:12px;flex:none;place-items:center;width:44px;height:44px;display:grid;overflow:hidden}.logo-tile img{object-fit:contain;width:72%;height:72%}.logo-tile.is-placeholder{background:repeating-linear-gradient(135deg, var(--surface-2) 0 5px, var(--surface) 5px 10px);font-family:var(--font-mono);letter-spacing:.06em;color:var(--ink-3);font-size:9px}.logo-tile.is-monogram{background:var(--surface-2);letter-spacing:-.02em;color:var(--ink-2);font-size:.875rem;font-weight:700}.logo-mini{border:1px solid var(--line);background:var(--surface-2);letter-spacing:-.02em;width:20px;height:20px;color:var(--ink-2);border-radius:6px;flex:none;place-items:center;font-size:8.5px;font-weight:700;display:inline-grid}.site-header{z-index:50;height:var(--nav-h);background:var(--bg);backdrop-filter:saturate(1.4)blur(14px);transition:border-color var(--dur-2) var(--ease-out);border-bottom:1px solid #0000;position:sticky;top:0}.site-header.is-scrolled{border-bottom-color:var(--line)}.header-inner{align-items:center;gap:var(--space-5);height:100%;display:flex}.wordmark{letter-spacing:-.02em;white-space:nowrap;align-items:center;gap:10px;min-height:44px;font-size:1.0625rem;font-weight:600;line-height:1.1;text-decoration:none;display:inline-flex}.mark{flex:none;width:24px;height:24px;overflow:visible}.mark .m1{fill:var(--sec)}.mark .m2{fill:var(--rel)}.mark .m3{fill:var(--auto)}.mark .m4{fill:var(--cloud)}html[data-motion=full] .mark rect{transition:transform var(--dur-3) var(--ease-out)}html[data-motion=full] .wordmark:is(:hover,:focus-visible) .m1{transform:translate(-6.75px)}html[data-motion=full] .wordmark:is(:hover,:focus-visible) .m2{transform:translate(-4.5px)}html[data-motion=full] .wordmark:is(:hover,:focus-visible) .m3{transform:translate(-2.25px)}.site-nav{align-self:stretch;margin-left:auto;display:none;position:relative}.site-nav ul{align-items:center;gap:2px;height:100%;margin:0;padding:0;list-style:none;display:flex}.site-nav a{color:var(--ink-2);transition:color var(--dur-1), background-color var(--dur-1);border-radius:8px;padding:8px 12px;font-size:.9375rem;font-weight:500;text-decoration:none;display:block}.site-nav a:hover{color:var(--ink);background:var(--surface-2)}.site-nav a[aria-current]{color:var(--ink)}.nav-indicator{height:2px;width:var(--w,0);background:var(--ink);opacity:0;transform:translateX(var(--x,0));border-radius:2px;position:absolute;bottom:-1px;left:0}.nav-indicator.is-visible{opacity:1}html[data-motion=full] .nav-indicator{transition:transform var(--dur-3) var(--ease-out), width var(--dur-3) var(--ease-out), opacity var(--dur-2)}.header-actions{align-items:center;gap:4px;margin-left:auto;display:flex}.site-nav+.header-actions{margin-left:auto}.kbd-button{border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface);height:36px;font-size:var(--text-sm);color:var(--ink-3);transition:border-color var(--dur-1), color var(--dur-1);align-items:center;gap:8px;padding:0 7px 0 11px;display:none}.kbd-button:hover{border-color:var(--line-strong);color:var(--ink)}.kbd-button .i{width:16px;height:16px}.theme-sun{display:none}[data-theme=dark] .theme-sun{display:block}[data-theme=dark] .theme-moon{display:none}@media (width>=960px){.site-nav{display:block}.site-nav+.header-actions{margin-left:12px}.kbd-button{margin-right:4px;display:inline-flex}.menu-button{display:none}.icon-button{width:40px;height:40px}}.menu-dialog{background:var(--bg);width:100%;max-width:none;height:100dvh;max-height:none;color:var(--ink);border:0;margin:0;padding:0;inset:0}.menu-dialog[open]{flex-direction:column;display:flex}.menu-dialog::backdrop{background:var(--bg)}.menu-top{height:var(--nav-h);padding:0 var(--gutter);border-bottom:1px solid var(--line);flex:none;justify-content:space-between;align-items:center;display:flex}.menu-links{padding:8px 0}.menu-links a{min-height:64px;padding:0 var(--gutter);border-bottom:1px solid var(--line);letter-spacing:-.025em;justify-content:space-between;align-items:center;font-size:1.625rem;font-weight:600;text-decoration:none;display:flex}.menu-links .num{font-family:var(--font-mono);letter-spacing:0;color:var(--ink-3);font-size:.8125rem;font-weight:400}.menu-foot{padding:var(--gutter);border-top:1px solid var(--line);flex-wrap:wrap;gap:10px;margin-top:auto;display:flex}.menu-foot .button{flex:140px}html[data-motion=full] .menu-dialog[open] .menu-links li{animation:rise var(--dur-3) var(--ease-out) backwards;animation-delay:calc(var(--i,0) * 40ms + 40ms)}.hero{padding-block:clamp(28px,5vw,80px) clamp(48px,5vw,72px)}.hero-grid{gap:36px;display:grid}@media (width>=1024px){.hero-grid{grid-template-columns:minmax(0,7fr) minmax(0,5fr);align-items:end;column-gap:64px}}.hero-meta{color:var(--ink-2);flex-wrap:wrap;align-items:center;gap:8px 10px;font-size:.9375rem;display:flex}.avatar{border:1px solid var(--line);background:var(--surface-2);letter-spacing:-.02em;width:32px;height:32px;color:var(--ink-2);border-radius:50%;flex:none;place-items:center;font-size:.6875rem;font-weight:700;display:grid}.meta-sep{color:var(--line-strong)}.status-chip{border:1px solid var(--line);border-radius:var(--radius-pill);background:var(--surface);height:28px;color:var(--ink-2);align-items:center;gap:7px;padding:0 11px 0 9px;font-size:.8125rem;display:inline-flex}.status-dot{background:var(--auto);width:7px;height:7px;box-shadow:0 0 0 3px color-mix(in oklch, var(--auto) 22%, transparent);border-radius:50%}.display{max-width:15ch;font-size:var(--text-display);letter-spacing:-.038em;text-wrap:balance;margin-top:22px;font-weight:600;line-height:1.04}.hl{background:var(--spectrum) no-repeat 0 92% / 100% .085em;padding-bottom:.02em}html[data-motion=full] .hl{animation:draw-underline .9s var(--ease-out) .45s backwards}.lead{max-width:56ch;font-size:var(--text-lg);color:var(--ink-2);text-wrap:pretty;margin-top:22px;line-height:1.6}.hero-actions{flex-wrap:wrap;align-items:center;gap:12px 18px;margin-top:30px;display:flex}.platform-map{border:1px solid var(--line);border-radius:var(--radius-lg);background-color:var(--surface);background-image:radial-gradient(circle at 1px 1px, var(--line) 1px, transparent 0);background-size:14px 14px;grid-template-columns:1fr 1fr;grid-template-areas:"cap cap""con con""cloud auto""rel sec";gap:8px;padding:14px;display:grid;position:relative}.map-caption{color:var(--ink-3);flex-wrap:wrap;grid-area:cap;justify-content:space-between;align-items:baseline;gap:4px 12px;padding:0 2px 2px;font-size:.8125rem;display:flex}.map-caption .mono{color:var(--ink-2);font-size:.75rem}.map-consumers{border:1px dashed var(--line-strong);background:var(--surface);color:var(--ink-2);border-radius:12px;grid-area:con;justify-content:space-between;align-items:center;gap:12px;padding:11px 12px;font-size:.875rem;font-weight:500;display:flex}.map-services{gap:5px;display:flex}.map-services span{border:1px solid var(--line);background:var(--surface-2);height:24px;font-family:var(--font-mono);color:var(--ink-3);border-radius:6px;place-items:center;padding:0 8px;font-size:.6875rem;display:grid}.map-path{grid-area:path;display:none}.map-block{border:1px solid var(--c-line);background:var(--c-soft);min-height:92px;color:var(--c-text);transition:opacity var(--dur-2), border-color var(--dur-2), box-shadow var(--dur-2), transform var(--dur-2) var(--ease-out);border-radius:12px;flex-direction:column;justify-content:space-between;gap:14px;padding:11px 12px 12px;text-decoration:none;display:flex;position:relative}.map-block[data-cap=cloud]{grid-area:cloud}.map-block[data-cap=auto]{grid-area:auto}.map-block[data-cap=rel]{grid-area:rel}.map-block[data-cap=sec]{grid-area:sec}.map-index{font-family:var(--font-mono);opacity:.85;font-size:.6875rem}.map-label{letter-spacing:-.01em;font-size:.9375rem;font-weight:600;line-height:1.25}.map-go{white-space:nowrap;align-items:center;gap:4px;font-size:.75rem;font-weight:500;display:inline-flex}.map-go .i{width:14px;height:14px}.map-block:is(:hover,:focus-visible){border-color:var(--c);box-shadow:0 10px 24px -16px var(--c)}html[data-motion=full] .map-block:is(:hover,:focus-visible){transform:translateY(-2px)}html[data-motion=full] .map-block:is(:hover,:focus-visible) .map-go .i{transition:transform var(--dur-2) var(--ease-out);transform:translate(2px)}.platform-map:has(.map-block:is(:hover,:focus-visible)) .map-block:not(:hover,:focus-visible){opacity:.5}html[data-motion=full] .platform-map>:is(.map-block,.map-consumers,.map-path){animation:rise var(--dur-4) var(--ease-out) backwards;animation-delay:calc(var(--i,0) * 80ms + .25s)}@media (width>=640px){.platform-map{grid-template-columns:1.1fr 1.6fr 1.1fr;grid-template-areas:"cap cap cap""con con con""path path path""rel auto sec""rel cloud sec";padding:16px}.map-path{height:18px;font-family:var(--font-mono);color:var(--ink-3);justify-content:center;align-items:center;gap:10px;font-size:.6875rem;display:flex}.map-path:before,.map-path:after{content:"";border-top:1px dashed var(--line-strong);flex:1;max-width:72px}.map-block[data-cap=rel],.map-block[data-cap=sec]{justify-content:flex-start}.map-block[data-cap=rel] .map-go,.map-block[data-cap=sec] .map-go{margin-top:auto}}.proof-strip{border-top:1px solid var(--line);margin-top:clamp(40px,5vw,64px);display:grid}.proof{border-bottom:1px solid var(--line);grid-template-columns:92px minmax(0,1fr);gap:2px 16px;padding:16px 0;display:grid;position:relative}.proof:before{content:"";background:var(--c);width:28px;height:2px;position:absolute;top:-1px;left:0}.proof-value{letter-spacing:-.035em;font-variant-numeric:tabular-nums;grid-row:span 2;font-size:clamp(1.75rem,1.25rem + 1.3vw,2.5rem);font-weight:600;line-height:1}.proof-label{color:var(--ink-2);font-size:.9375rem;line-height:1.45}.proof-source{color:var(--ink-3);justify-self:start;align-items:center;gap:4px;font-size:.8125rem;text-decoration:none;display:inline-flex}.proof-source:hover{color:var(--ink);text-decoration:underline}.proof-source .i{width:14px;height:14px}@media (width>=768px){.proof-strip{grid-template-columns:repeat(3,minmax(0,1fr))}.proof{border-bottom:0;flex-direction:column;gap:8px;padding:22px 24px 0 0;display:flex}.proof+.proof{border-left:1px solid var(--line);padding-left:24px}.proof+.proof:before{left:24px}}.section{padding-block:var(--section-pad);border-top:1px solid var(--line);scroll-margin-top:var(--nav-h)}.section-head{gap:12px;margin-bottom:clamp(32px,4vw,56px);display:grid}@media (width>=1024px){.section-head{grid-template-columns:minmax(0,1fr) auto;align-items:end;column-gap:48px}}.section-index{font-family:var(--font-mono);color:var(--ink-3);align-items:center;gap:10px;font-size:.8125rem;display:flex}.section-index:after{content:"";background:var(--line-strong);width:28px;height:1px}.section-title{font-size:var(--text-3xl);letter-spacing:-.032em;margin-top:6px;font-weight:600;line-height:1.08}.section-desc{max-width:60ch;font-size:var(--text-lg);color:var(--ink-2);text-wrap:pretty;margin-top:12px}.section-actions{flex-wrap:wrap;gap:10px;display:flex}.timeline{display:grid}.job{border-top:1px solid var(--line);grid-template-columns:44px minmax(0,1fr);grid-template-areas:"logo head""roles roles""aside aside";column-gap:14px;padding-block:28px;display:grid;position:relative}.job:first-child{border-top:0;padding-top:0}.job-logo{grid-area:logo}.job-main{display:contents}.job-head{grid-area:head;align-self:center;min-width:0}.job-roles{grid-area:roles;margin-top:18px}.job-aside{grid-area:aside;margin-top:22px}.job-tenure{display:none}.job-company{letter-spacing:-.015em;font-size:1.1875rem;font-weight:600;line-height:1.25}.job-company a{align-items:center;gap:6px;text-decoration:none;display:inline-flex}.job-company a:hover{text-decoration:underline}.job-company .i{width:16px;height:16px;color:var(--ink-3)}.job-company-meta{color:var(--ink-3);margin-top:2px;font-size:.875rem}.role+.role{border-top:1px dashed var(--line-strong);margin-top:24px;padding-top:22px}.role-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:2px 16px;display:flex}.role-title{letter-spacing:-.01em;font-size:1.0625rem;font-weight:600}.role-meta{font-family:var(--font-mono);color:var(--ink-3);white-space:nowrap;font-size:.8125rem}.role-dates+.role-type:before{content:" · "}.role-summary{max-width:66ch;color:var(--ink-2);text-wrap:pretty;margin-top:8px}.highlights{gap:9px;margin-top:14px;display:grid}.highlights li{text-wrap:pretty;max-width:66ch;padding-left:20px;position:relative}.highlights li:before{content:"";background:var(--line-strong);border-radius:2px;width:9px;height:2px;position:absolute;top:.78em;left:2px}.highlights strong{font-variant-numeric:tabular-nums;font-weight:600}.more{margin-top:12px}.more>summary{cursor:pointer;min-height:36px;font-size:var(--text-sm);color:var(--ink-2);transition:background-color var(--dur-1), color var(--dur-1);border-radius:8px;align-items:center;gap:6px;margin-left:-10px;padding:0 10px;font-weight:500;list-style:none;display:inline-flex}.more>summary::-webkit-details-marker{display:none}.more>summary:hover{background:var(--surface-2);color:var(--ink)}.more>summary .i{width:16px;height:16px;transition:transform var(--dur-2) var(--ease-out)}.more[open]>summary .i{transform:rotate(180deg)}.more .when-open{display:none}.more[open] .when-open{display:inline}.more[open] .when-closed{display:none}.more-body{color:var(--ink-2);gap:12px;padding:10px 0 2px;display:grid}.more-body .highlights{margin-top:0}.more-body p{max-width:66ch}html[data-motion=full] .more::details-content{block-size:0;transition:block-size var(--dur-3) var(--ease-out), content-visibility var(--dur-3) allow-discrete;overflow-y:clip}html[data-motion=full] .more[open]::details-content{block-size:auto}.job-aside{align-content:start;gap:16px;display:grid}.aside-label{font-family:var(--font-mono);color:var(--ink-3);margin-bottom:8px;font-size:.75rem}.tool-inline{font-size:var(--text-sm);color:var(--ink-2);line-height:1.7}.tool-inline li{white-space:nowrap;display:inline-block}.tool-inline li:not(:last-child):after{content:"·";color:var(--ink-3);margin:0 .4em}@media (width>=768px){.job{border-top:0;grid-template-columns:56px minmax(0,1fr);grid-template-areas:"logo head"".roles"".aside";column-gap:24px;padding-block:0 48px}.job:before{content:"";background:var(--line);width:1px;position:absolute;top:68px;bottom:12px;left:27.5px}.job:last-child{padding-bottom:0}.job:last-child:before{display:none}.job .logo-tile{border-radius:14px;width:56px;height:56px}.job-roles{margin-top:14px}}@media (width>=1100px){.job{grid-template-columns:164px 56px minmax(0,1fr) 240px;grid-template-areas:"tenure logo head aside"". .roles aside"}.job:before{left:215.5px}.job-tenure{font-family:var(--font-mono);color:var(--ink-3);grid-area:tenure;padding-top:6px;font-size:.8125rem;line-height:1.55;display:block}.job-tenure span{white-space:nowrap;display:block}.job-tenure span+span{color:color-mix(in oklch, var(--ink-3) 80%, var(--bg))}.job-aside{border-left:1px solid var(--line);margin-top:0;padding-left:24px}.job.is-single .role-dates{display:none}.job.is-single .role-type:before{content:none}}.projects{gap:20px;display:grid}@media (width>=768px){.projects{grid-template-columns:repeat(2,minmax(0,1fr))}.project--featured{grid-column:1/-1}}.project{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);transition:border-color var(--dur-2), box-shadow var(--dur-2), transform var(--dur-2) var(--ease-out);flex-direction:column;display:flex;position:relative;overflow:hidden}.project:is(:hover,:focus-within){border-color:var(--c-line);box-shadow:0 1px 2px var(--shadow), 0 22px 44px -28px var(--shadow)}html[data-motion=full] .project:is(:hover,:focus-within){transform:translateY(-2px)}.project-visual{aspect-ratio:16/9;border-bottom:1px solid var(--c-line);background-color:var(--c-soft);background-image:radial-gradient(circle at 1px 1px, color-mix(in oklch, var(--c-line) 70%, transparent) 1px, transparent 0);background-size:16px 16px;order:-1;place-items:center;display:grid;position:relative;overflow:hidden}.project-visual svg{width:88%;height:auto;overflow:visible}.visual-caption{font-family:var(--font-mono);color:var(--c-text);font-size:.6875rem;position:absolute;bottom:10px;left:12px}.project-body{flex-direction:column;flex:1;gap:14px;padding:22px;display:flex}@media (width>=640px){.project-body{padding:26px}}@media (width>=1024px){.project--featured{flex-direction:row}.project--featured .project-visual{aspect-ratio:auto;border-bottom:0;border-left:1px solid var(--c-line);flex:1.2;order:1;min-height:440px}.project--featured .project-body{flex:1;padding:36px}}.project-kind{color:var(--ink-3);flex-wrap:wrap;align-items:center;gap:8px;font-size:.8125rem;display:flex}.kind-badge{border:1px solid var(--line);background:var(--surface-2);height:24px;color:var(--ink-2);border-radius:6px;align-items:center;padding:0 8px;font-weight:500;display:inline-flex}.project-title{font-size:var(--text-2xl);letter-spacing:-.022em;font-weight:600;line-height:1.18}.project-title a{text-decoration:none}.project-title a:hover{text-decoration:underline}.project-summary{max-width:52ch;color:var(--ink-2);text-wrap:pretty}.project-metrics{border-block:1px solid var(--line);grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding-block:14px;display:grid}.project-metrics.is-two{grid-template-columns:repeat(2,minmax(0,1fr))}.project-metrics>div{flex-direction:column-reverse;gap:2px;display:flex}.project-metrics dd{letter-spacing:-.025em;font-variant-numeric:tabular-nums;font-size:1.375rem;font-weight:600;line-height:1.1}.project-metrics dt{color:var(--ink-3);font-size:.75rem}.project-tools{font-size:var(--text-sm);color:var(--ink-3)}.project-actions{flex-wrap:wrap;align-items:center;gap:12px 18px;margin-top:auto;padding-top:4px;display:flex}.diagram .edge{fill:none;stroke:var(--c);stroke-width:1.5px;stroke-dasharray:4 4}.diagram .edge-solid{fill:none;stroke:var(--c-line);stroke-width:1.5px}.diagram .node rect{fill:var(--surface);stroke:var(--c-line);stroke-width:1px}.diagram .node.is-key rect{stroke:var(--c);stroke-width:1.5px}.diagram .node text{fill:var(--c-text);font-family:var(--font-mono);font-size:11px;font-weight:500}.diagram .zone{fill:none;stroke:var(--c-line);stroke-width:1px;stroke-dasharray:3 3}.diagram .zone-label{fill:var(--c-text);font-family:var(--font-mono);opacity:.85;font-size:10px}.diagram .dot{fill:var(--c)}@media (width<=639px){.project-visual .diagram .node text{font-size:15px}.project-visual .diagram .zone-label{font-size:13px}}html[data-motion=full] .project:is(:hover,:focus-within) .diagram .edge{animation:1.4s linear flow}.areas{gap:20px;display:grid}@media (width>=900px){.areas{grid-template-columns:repeat(2,minmax(0,1fr))}}.area{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);scroll-margin-top:calc(var(--nav-h) + 24px);transition:border-color var(--dur-2);flex-direction:column;gap:18px;padding:22px;display:flex;position:relative}@media (width>=640px){.area{padding:26px}}.area:before{content:"";border-radius:var(--radius-lg) var(--radius-lg) 0 0;background:var(--c);height:3px;position:absolute;inset:-1px -1px auto}.area:is(:hover,:focus-within){border-color:var(--c-line)}.area:target{outline-offset:4px;outline:2px solid #0000}html[data-motion=full] .area:target{animation:target-flash 1.8s var(--ease-out) 1 forwards}html[data-motion=reduce] .area:target{outline-color:var(--c)}.area-head{grid-template-columns:40px minmax(0,1fr) auto;grid-template-areas:"swatch title count""desc desc desc";align-items:center;gap:10px 14px;display:grid}.area-swatch{border:1px solid var(--c-line);background:var(--c-soft);width:40px;height:40px;color:var(--c-text);border-radius:11px;grid-area:swatch;place-items:center;display:grid}.area-swatch .i{width:20px;height:20px}.area-title{letter-spacing:-.015em;grid-area:title;font-size:1.1875rem;font-weight:600;line-height:1.3}.area-desc{color:var(--ink-2);text-wrap:pretty;grid-area:desc;font-size:.9375rem}.area-count{font-family:var(--font-mono);color:var(--ink-3);white-space:nowrap;grid-area:count;font-size:.75rem}@media (width>=640px){.area-head{grid-template-areas:"swatch title count""swatch desc desc";align-items:start;row-gap:2px}.area-title{padding-top:1px}}.tool-list{border-top:1px solid var(--line);display:grid}.tool{border-bottom:1px solid var(--line);grid-template-columns:32px minmax(0,1fr);grid-template-areas:"logo name""logo ctx";align-items:center;gap:1px 12px;padding:10px 0;display:grid}.tool-logo{border:1px solid var(--c-line);background:var(--c-soft);width:32px;height:32px;color:var(--ink-2);border-radius:9px;grid-area:logo;place-items:center;display:grid}.tool-logo svg{width:16px;height:16px}.tool-name{grid-area:name;font-size:.9375rem;font-weight:500}.tool-context{color:var(--ink-3);grid-area:ctx;font-size:.8125rem}.tool-context a{color:var(--ink-2);text-decoration:underline;text-decoration-color:color-mix(in oklch, currentColor 38%, transparent)}.tool-context a:hover{color:var(--ink);text-decoration-color:currentColor}@media (width>=640px){.tool{grid-template-columns:32px minmax(0,.85fr) minmax(0,1.15fr);grid-template-areas:"logo name ctx"}.tool-context{text-align:right}}.area-practices{font-size:var(--text-sm);color:var(--ink-2)}.area-practices .label{font-family:var(--font-mono);color:var(--ink-3);margin-right:8px;font-size:.75rem}.craft-banner{border:1px dashed var(--line-strong);border-radius:var(--radius-lg);background:var(--surface);align-items:center;gap:14px;margin-top:20px;padding:20px 22px;display:grid}.craft-banner p{color:var(--ink-2)}.craft-banner strong{color:var(--ink);font-weight:600}@media (width>=768px){.craft-banner{grid-template-columns:auto minmax(0,1fr) auto;gap:20px}}.craft-mark{gap:3px;display:flex}.craft-mark span{background:var(--c);border-radius:3px;width:6px;height:22px}.contact-panel{border:1px solid var(--line);border-radius:var(--radius-xl);background:var(--surface);gap:32px;padding:clamp(24px,4.5vw,56px);display:grid;position:relative;overflow:hidden}.contact-panel:before{content:"";background:var(--spectrum);height:4px;position:absolute;inset:0 0 auto}@media (width>=900px){.contact-panel{grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);align-items:end;gap:56px}}.contact-lead{max-width:46ch;font-size:var(--text-lg);color:var(--ink-2);text-wrap:pretty;margin-top:14px}.contact-meta{font-family:var(--font-mono);color:var(--ink-3);flex-wrap:wrap;gap:2px 0;margin-top:18px;font-size:.8125rem;display:flex}.contact-meta>span{white-space:nowrap}.contact-meta>span:not(:last-child):after{content:"·";margin:0 .6em}.email-row{border:1px solid var(--line);background:var(--surface-2);border-radius:14px;flex-wrap:wrap;align-items:center;gap:8px;padding:10px 10px 10px 14px;display:flex}@media (width>=640px){.email-row{gap:10px 12px;padding:14px 14px 14px 18px}}.email-link{letter-spacing:-.02em;overflow-wrap:anywhere;margin-right:auto;font-size:clamp(1.125rem,.95rem + .8vw,1.5rem);font-weight:600;text-decoration:none}.email-link:hover{text-decoration:underline}.copy-button[data-state=copied]{border-color:var(--auto);color:var(--auto-text)}.copy-button .when-copied{display:none}.copy-button[data-state=copied] .when-copied{display:block}.copy-button[data-state=copied] .when-idle{display:none}.contact-links{margin-top:10px;display:grid}.contact-links a{border-bottom:1px solid var(--line);align-items:center;gap:12px;min-height:52px;font-weight:500;text-decoration:none;display:flex}.contact-links a>.i{width:18px;height:18px;color:var(--ink-3)}.contact-links .label{white-space:nowrap}.contact-links .meta{min-width:0;color:var(--ink-3);text-align:right;margin-left:auto;font-size:.8125rem;font-weight:400}@media (width<=639px){.contact-links .meta .more-meta{display:none}}.contact-links .go{width:16px;height:16px;color:var(--ink-3)}.contact-links a:hover .go{color:var(--ink)}html[data-motion=full] .contact-links .go{transition:transform var(--dur-2) var(--ease-out)}html[data-motion=full] .contact-links a:is(:hover,:focus-visible) .go{transform:translate(2px,-2px)}.site-footer{border-top:1px solid var(--line);font-size:var(--text-sm);color:var(--ink-3)}.footer-inner{gap:18px;padding-block:32px 36px;display:grid}@media (width>=768px){.footer-inner{grid-template-columns:minmax(0,1fr) auto;align-items:center}}.footer-brand{flex-wrap:wrap;align-items:center;gap:6px 14px;display:flex}.footer-brand .wordmark{min-height:0;color:var(--ink);font-size:.9375rem}.footer-brand .mark{width:18px;height:18px}.footer-nav{flex-wrap:wrap;gap:6px 20px;display:flex}.footer-nav a{min-height:32px;color:var(--ink-2);align-items:center;gap:4px;text-decoration:none;display:inline-flex}.footer-nav a:hover{color:var(--ink);text-decoration:underline}.footer-nav .i{width:14px;height:14px}.footer-meta{font-family:var(--font-mono);font-size:.75rem}@media (width>=768px){.footer-meta{grid-column:1/-1}}.spectrum-bar{background:var(--spectrum);height:4px}.palette{border:1px solid var(--line-strong);border-radius:var(--radius-lg);background:var(--surface);width:min(620px,100% - 24px);max-height:min(560px,100dvh - 48px);color:var(--ink);box-shadow:0 2px 6px var(--shadow), 0 28px 80px -24px var(--shadow);margin:max(10vh,24px) auto auto;padding:0;overflow:hidden}.palette::backdrop{background:var(--overlay);backdrop-filter:blur(2px)}.palette-inner{max-height:inherit;flex-direction:column;display:flex}.palette-search{border-bottom:1px solid var(--line);flex:none;align-items:center;gap:10px;height:56px;padding:0 14px 0 16px;display:flex}.palette-search:focus-within{box-shadow:inset 0 -2px 0 var(--ink)}.palette-search .i{width:18px;height:18px;color:var(--ink-3)}.palette-search input{min-width:0;height:100%;font-size:var(--text-md);background:0 0;border:0;outline:0;flex:1}.palette-search input::placeholder{color:var(--ink-3)}.palette-list{overscroll-behavior:contain;padding:6px 8px 8px;overflow-y:auto}.palette-group-label{font-family:var(--font-mono);color:var(--ink-3);padding:12px 10px 6px;font-size:.6875rem}.palette-option{border-radius:var(--radius-md);min-height:44px;color:var(--ink-2);cursor:pointer;align-items:center;gap:12px;padding:0 10px;display:flex}.palette-option[aria-selected=true]{background:var(--surface-2);color:var(--ink)}.palette-ic{border:1px solid var(--c-line,var(--line));background:var(--c-soft,var(--surface-2));width:28px;height:28px;color:var(--c-text,var(--ink-2));border-radius:8px;flex:none;place-items:center;display:grid}.palette-ic .i{width:15px;height:15px}.palette-label{flex:1;min-width:0;font-size:.9375rem}.palette-hint{font-family:var(--font-mono);color:var(--ink-3);font-size:.6875rem}.palette-empty{text-align:center;color:var(--ink-3);padding:28px 12px}.palette-foot{border-top:1px solid var(--line);color:var(--ink-3);flex-wrap:wrap;flex:none;gap:6px 16px;padding:10px 16px;font-size:.75rem;display:flex}.palette-foot span{align-items:center;gap:5px;display:inline-flex}@media (width<=639px){.palette-foot{display:none}}html[data-motion=full] .palette{opacity:0;transition:opacity var(--dur-2) var(--ease-out), transform var(--dur-2) var(--ease-out), overlay var(--dur-2) allow-discrete, display var(--dur-2) allow-discrete;transform:translateY(-6px)scale(.985)}html[data-motion=full] .palette[open]{opacity:1;transform:none}html[data-motion=full] .palette::backdrop{opacity:0;transition:opacity var(--dur-2), overlay var(--dur-2) allow-discrete, display var(--dur-2) allow-discrete}html[data-motion=full] .palette[open]::backdrop{opacity:1}@starting-style{html[data-motion=full] .palette[open]{opacity:0;transform:translateY(-6px)scale(.985)}html[data-motion=full] .palette[open]::backdrop{opacity:0}}.toast{z-index:80;border-radius:var(--radius-pill);background:var(--ink);height:40px;color:var(--on-ink);font-size:var(--text-sm);box-shadow:0 12px 32px -12px var(--shadow);opacity:0;pointer-events:none;transition:opacity var(--dur-2), transform var(--dur-3) var(--ease-out);align-items:center;gap:8px;padding:0 16px 0 12px;font-weight:500;display:flex;position:fixed;bottom:24px;left:50%;transform:translate(-50%,12px)}.toast .i{width:16px;height:16px}.toast.is-visible{opacity:1;transform:translate(-50%)}.js-reveal [data-reveal]{opacity:0;transform:translateY(14px)}.js-reveal [data-reveal].is-in{opacity:1;transition:opacity var(--dur-4) var(--ease-out), transform var(--dur-4) var(--ease-out);transition-delay:calc(var(--i,0) * var(--stagger));transform:none}.reading-progress{top:var(--nav-h);z-index:49;pointer-events:none;height:2px;position:fixed;left:0;right:0}.reading-progress span{background:var(--spectrum);height:100%;clip-path:inset(0 calc(100% - var(--p,0) * 100%) 0 0);display:block}.cs-hero{padding-block:clamp(24px,4vw,56px) clamp(32px,4vw,56px)}.breadcrumb{min-height:36px;font-size:var(--text-sm);color:var(--ink-3);align-items:center;gap:6px;text-decoration:none;display:inline-flex}.breadcrumb:hover{color:var(--ink)}.breadcrumb .i{width:16px;height:16px}html[data-motion=full] .breadcrumb .i{transition:transform var(--dur-2) var(--ease-out)}html[data-motion=full] .breadcrumb:is(:hover,:focus-visible) .i{transform:translate(-3px)}.cs-tags{flex-wrap:wrap;align-items:center;gap:8px;margin-top:20px;display:flex}.cs-title{letter-spacing:-.036em;text-wrap:balance;margin-top:14px;font-size:clamp(2.25rem,1.35rem + 3vw,3.75rem);font-weight:600;line-height:1.04}.cs-lead{max-width:48ch;font-size:var(--text-xl);color:var(--ink-2);text-wrap:pretty;margin-top:14px;line-height:1.5}.cs-meta{border-block:1px solid var(--line);grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 24px;margin-top:32px;padding-block:20px;display:grid}@media (width>=900px){.cs-meta{grid-template-columns:repeat(4,minmax(0,1fr))}}.cs-meta dt{font-family:var(--font-mono);color:var(--ink-3);font-size:.75rem}.cs-meta dd{margin-top:4px;font-weight:500}.cs-results{gap:12px;margin-top:24px;display:grid}@media (width>=640px){.cs-results{grid-template-columns:repeat(3,minmax(0,1fr))}}.result{border:1px solid var(--c-line);background:var(--c-soft);border-radius:14px;padding:18px 18px 16px}.result-value{letter-spacing:-.03em;color:var(--c-text);font-variant-numeric:tabular-nums;font-size:2rem;font-weight:600;line-height:1.1}.result-label{font-size:var(--text-sm);color:var(--ink-2);margin-top:4px}.cs-layout{padding-bottom:var(--section-pad);gap:28px;display:grid}@media (width>=1024px){.cs-layout{grid-template-columns:208px minmax(0,720px);column-gap:72px}}.toc{display:none}@media (width>=1024px){.toc{top:calc(var(--nav-h) + 32px);align-self:start;display:block;position:sticky}.toc-mobile{display:none}}.toc-title{font-family:var(--font-mono);color:var(--ink-3);margin-bottom:10px;font-size:.75rem}.toc ol,.toc-mobile ol{border-left:1px solid var(--line);margin:0;padding:0;list-style:none;display:grid}.toc a,.toc-mobile a{font-size:var(--text-sm);color:var(--ink-3);transition:color var(--dur-1), border-color var(--dur-2);border-left:2px solid #0000;margin-left:-1px;padding:6px 12px;text-decoration:none;display:block}.toc a:hover,.toc-mobile a:hover{color:var(--ink)}.toc a[aria-current=true],.toc-mobile a[aria-current=true]{color:var(--ink);border-left-color:var(--c)}.toc-mobile{border:1px solid var(--line);background:var(--surface);border-radius:12px}.toc-mobile>summary{cursor:pointer;justify-content:space-between;align-items:center;min-height:48px;padding:0 14px;font-weight:500;list-style:none;display:flex}.toc-mobile>summary::-webkit-details-marker{display:none}.toc-mobile>summary .i{width:16px;height:16px;transition:transform var(--dur-2) var(--ease-out)}.toc-mobile[open]>summary .i{transform:rotate(180deg)}.toc-mobile ol{margin:0 14px 14px}.prose{min-width:0}.prose>section+section{margin-top:56px}.prose h2{font-size:var(--text-2xl);letter-spacing:-.022em;font-weight:600;line-height:1.2;position:relative}.prose h3{letter-spacing:-.01em;font-size:1.0625rem;font-weight:600}.prose p{max-width:68ch;color:var(--ink-2);text-wrap:pretty;margin-top:12px}.prose ul:not([class]){color:var(--ink-2);margin:12px 0 0;padding-left:20px}.prose ul:not([class]) li+li{margin-top:6px}.heading-anchor{font-family:var(--font-mono);color:var(--ink-3);opacity:0;transition:opacity var(--dur-1);margin-left:8px;font-size:.8em;font-weight:400;text-decoration:none}.prose h2:hover .heading-anchor,.heading-anchor:focus-visible{opacity:1}@media (hover:none){.heading-anchor{opacity:1}}.tldr{border:1px solid var(--line);background:var(--surface);border-radius:14px;gap:14px;margin-top:16px;padding:20px;display:grid}.tldr>div{gap:4px;display:grid}@media (width>=640px){.tldr>div{grid-template-columns:112px minmax(0,1fr);gap:16px}}.tldr dt{font-family:var(--font-mono);color:var(--ink-3);padding-top:3px;font-size:.75rem}.tldr dd{color:var(--ink-2)}.constraints{gap:10px;margin-top:16px;display:grid}@media (width>=640px){.constraints{grid-template-columns:repeat(2,minmax(0,1fr))}}.constraint{border:1px solid var(--line);background:var(--surface);border-radius:12px;padding:14px 16px}.constraint .mono{color:var(--ink-3);margin-bottom:4px;font-size:.6875rem;display:block}.figure{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);margin-top:20px;overflow:hidden}.figure-canvas{border-bottom:1px solid var(--c-line);background-color:var(--c-soft);background-image:radial-gradient(circle at 1px 1px, color-mix(in oklch, var(--c-line) 70%, transparent) 1px, transparent 0);background-size:16px 16px;padding:20px 16px}.figure-canvas svg{width:100%;height:auto;overflow:visible}.diagram-h{display:none}@media (width>=640px){.diagram-h{display:block}.diagram-v{display:none}}.diagram-v{max-width:300px;margin-inline:auto}.diagram .node{transition:opacity var(--dur-2)}.diagram .node.is-active rect{stroke:var(--c);stroke-width:2px}[data-diagram].has-active .diagram .node:not(.is-active){opacity:.4}.figure-legend{gap:2px;padding:12px;display:grid}@media (width>=640px){.figure-legend{grid-template-columns:repeat(2,minmax(0,1fr))}}.legend-item{text-align:left;width:100%;transition:background-color var(--dur-1), border-color var(--dur-1);background:0 0;border:1px solid #0000;border-radius:10px;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:2px 10px;padding:10px;display:grid}.legend-item:hover,.legend-item[aria-pressed=true]{background:var(--c-soft);border-color:var(--c-line)}.legend-item .key{border:1px solid var(--c-line);background:var(--surface);width:22px;height:22px;font-family:var(--font-mono);color:var(--c-text);border-radius:6px;grid-row:span 2;place-items:center;margin-top:1px;font-size:.6875rem;display:grid}.legend-item .name{font-weight:600;font-size:var(--text-sm)}.legend-item .desc{color:var(--ink-3);font-size:.8125rem}.figure figcaption{border-top:1px solid var(--line);color:var(--ink-3);padding:12px 16px;font-size:.8125rem}.code-block{border:1px solid var(--line);background:var(--surface-2);border-radius:12px;margin-top:16px;position:relative}.code-block pre{font:400 .8125rem/1.75 var(--font-mono);color:var(--ink-2);tab-size:2;margin:0;padding:16px 18px;overflow-x:auto}.code-block .tok-k{color:var(--auto-text)}.code-block .tok-c{color:var(--ink-3)}.code-block .tok-s{color:var(--cloud-text)}.code-block .copy-button{background:var(--surface);position:absolute;top:8px;right:8px}.code-label{font-family:var(--font-mono);color:var(--ink-3);justify-content:space-between;padding:10px 18px 0;font-size:.6875rem;display:flex}.decisions{gap:12px;margin-top:16px;display:grid}.decision{border:1px solid var(--line);background:var(--surface);border-radius:14px;gap:12px;padding:20px;display:grid}.decision-head{align-items:center;gap:10px;display:flex}.decision-head .num{background:var(--c-soft);border:1px solid var(--c-line);width:26px;height:26px;font-family:var(--font-mono);color:var(--c-text);border-radius:8px;flex:none;place-items:center;font-size:.75rem;display:grid}.decision dl{gap:10px;display:grid}.decision dl>div{gap:2px;display:grid}@media (width>=640px){.decision dl>div{grid-template-columns:136px minmax(0,1fr);gap:16px}}.decision dt{font-family:var(--font-mono);color:var(--ink-3);padding-top:3px;font-size:.75rem}.decision dd{color:var(--ink-2)}.results-table{border-collapse:collapse;width:100%;margin-top:16px;font-size:.9375rem}.results-table caption{text-align:left;color:var(--ink-3);padding-bottom:8px;font-size:.8125rem}.results-table th{border-bottom:1px solid var(--line-strong);text-align:left;font-family:var(--font-mono);color:var(--ink-3);padding:10px 12px;font-size:.75rem;font-weight:500}.results-table td{border-bottom:1px solid var(--line);color:var(--ink-2);vertical-align:top;padding:12px}.results-table td.num{color:var(--ink);font-variant-numeric:tabular-nums;white-space:nowrap;font-weight:600}@media (width<=639px){.results-table thead{clip:rect(0 0 0 0);width:1px;height:1px;position:absolute;overflow:hidden}.results-table tr{border-bottom:1px solid var(--line);grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 12px;padding:14px 0;display:grid}.results-table td{border:0;gap:2px;padding:0;display:grid}.results-table td:before{content:attr(data-label);font-family:var(--font-mono);color:var(--ink-3);font-size:.6875rem;font-weight:400}.results-table td:first-child,.results-table td:last-child{grid-column:1/-1}}.evidence-links{border-top:1px solid var(--line);margin-top:14px;display:grid}.evidence-links a{border-bottom:1px solid var(--line);align-items:center;gap:10px;min-height:52px;font-weight:500;text-decoration:none;display:flex}.evidence-links a>.i{width:18px;height:18px;color:var(--ink-3)}.evidence-links .meta{color:var(--ink-3);margin-left:auto;font-size:.8125rem;font-weight:400}.evidence-links a:hover .name{text-decoration:underline}.cs-next{padding-block:32px var(--section-pad);border-top:1px solid var(--line);gap:12px;display:grid}@media (width>=768px){.cs-next{grid-template-columns:1fr 1fr}}.next-card{border:1px solid var(--line);background:var(--surface);transition:border-color var(--dur-2), transform var(--dur-2) var(--ease-out);border-radius:14px;gap:6px;padding:20px 22px;text-decoration:none;display:grid}.next-card:hover{border-color:var(--c-line,var(--line-strong))}html[data-motion=full] .next-card:is(:hover,:focus-visible){transform:translateY(-2px)}.next-card .mono{color:var(--ink-3);font-size:.75rem}.next-card .title{letter-spacing:-.015em;justify-content:space-between;align-items:center;gap:12px;font-size:1.1875rem;font-weight:600;display:flex}.next-card.is-right{text-align:right}.next-card.is-right .title{flex-direction:row-reverse}.page-hero{padding-block:clamp(28px,5vw,72px) clamp(32px,4vw,48px)}.page-title{letter-spacing:-.036em;text-wrap:balance;max-width:16ch;margin-top:14px;font-size:clamp(2.25rem,1.35rem + 3vw,3.75rem);font-weight:600;line-height:1.04}.page-lead{max-width:58ch;font-size:var(--text-lg);color:var(--ink-2);text-wrap:pretty;margin-top:16px}.glance{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);grid-template-columns:repeat(2,minmax(0,1fr));gap:0;margin-top:32px;display:grid;overflow:hidden}@media (width>=900px){.glance{grid-template-columns:repeat(3,minmax(0,1fr))}}.glance>div{border-right:1px solid var(--line);border-bottom:1px solid var(--line);margin:0 -1px -1px 0;padding:16px 18px}.glance dt{font-family:var(--font-mono);color:var(--ink-3);font-size:.75rem}.glance dd{margin-top:4px;font-weight:500}.status-pill{border:1px solid var(--line);border-radius:var(--radius-pill);background:var(--surface-2);height:22px;font-family:var(--font-mono);color:var(--ink-3);white-space:nowrap;vertical-align:1px;align-items:center;gap:6px;padding:0 8px;font-size:.6875rem;font-weight:400;display:inline-flex}.status-pill.is-ok{border-color:var(--auto-line);background:var(--auto-soft);color:var(--auto-text)}.principles{gap:12px;display:grid}@media (width>=768px){.principles{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width>=1100px){.principles{grid-template-columns:repeat(4,minmax(0,1fr))}}.principle{border:1px solid var(--line);background:var(--surface);border-radius:14px;align-content:start;gap:8px;padding:20px;display:grid}.principle .num{font-family:var(--font-mono);color:var(--ink-3);font-size:.75rem}.principle h3{letter-spacing:-.01em;font-size:1.0625rem;font-weight:600}.principle p{color:var(--ink-2);font-size:.9375rem}.token-group+.token-group{margin-top:32px}.token-group h3{margin-bottom:12px;font-size:1.0625rem;font-weight:600}.swatches{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}@media (width>=640px){.swatches{grid-template-columns:repeat(4,minmax(0,1fr))}}.swatch{border:1px solid var(--line);background:var(--surface);border-radius:12px;overflow:hidden}.swatch-chip{background:var(--sw);border-bottom:1px solid var(--line);height:64px}.swatch-body{gap:1px;padding:10px 12px;display:grid}.swatch-body b{font-size:var(--text-sm);font-weight:600}.swatch-body span{font-family:var(--font-mono);color:var(--ink-3);overflow-wrap:anywhere;font-size:.6875rem}.type-scale{border-top:1px solid var(--line);display:grid}.type-row{border-bottom:1px solid var(--line);align-items:baseline;gap:4px 20px;padding:14px 0;display:grid}@media (width>=768px){.type-row{grid-template-columns:180px minmax(0,1fr)}}.type-row .mono{color:var(--ink-3);font-size:.75rem}.type-row .sample{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.pipeline{counter-reset:step;gap:8px;display:grid}@media (width>=900px){.pipeline{grid-template-columns:repeat(5,minmax(0,1fr))}}.pipeline-step{border:1px solid var(--line);background:var(--surface);border-radius:12px;align-content:start;gap:6px;padding:16px;display:grid;position:relative}.pipeline-step.is-gate{border-style:dashed;border-color:var(--line-strong)}.pipeline-step .mono{color:var(--ink-3);font-size:.6875rem}.pipeline-step h3{font-size:.9375rem;font-weight:600}.pipeline-step p{color:var(--ink-2);font-size:.8125rem}.checklist{border-top:1px solid var(--line);display:grid}.checklist li{border-bottom:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 16px;min-height:52px;padding:10px 0;display:flex}.checklist .what{font-weight:500}.checklist .how{font-size:var(--text-sm);color:var(--ink-3);flex-basis:100%}@media (width>=768px){.checklist .how{text-align:right;flex-basis:auto;margin-left:auto}}.changelog{border-left:1px solid var(--line);gap:0;margin-left:6px;display:grid}.changelog li{padding:0 0 22px 22px;position:relative}.changelog li:before{content:"";background:var(--surface);border:2px solid var(--ink-3);border-radius:50%;width:9px;height:9px;position:absolute;top:7px;left:-5px}.changelog li:first-child:before{border-color:var(--ink);background:var(--ink)}.changelog .mono{color:var(--ink-3);font-size:.75rem}.changelog b{font-weight:600;display:block}.changelog p{color:var(--ink-2);font-size:.9375rem}@keyframes rise{0%{opacity:0;transform:translateY(10px)}}@keyframes draw-underline{0%{background-size:0% .085em}}@keyframes flow{to{stroke-dashoffset:-40px}}@keyframes target-flash{0%,55%{outline-color:var(--c);outline-offset:4px}to{outline-offset:8px;outline-color:#0000}}html[data-motion=reduce] *,html[data-motion=reduce] :before,html[data-motion=reduce] :after,html[data-motion=reduce] ::backdrop{scroll-behavior:auto!important;transition-duration:0s!important;transition-delay:0s!important;animation:none!important}@media (prefers-reduced-motion:reduce){html:not([data-motion=full]) *,html:not([data-motion=full]) :before,html:not([data-motion=full]) :after{scroll-behavior:auto!important;transition-duration:0s!important;animation:none!important}}@media print{.site-header,.palette,.toast,.menu-dialog,.reading-progress{display:none!important}.js-reveal [data-reveal]{opacity:1;transform:none}}:root{--bg:light-dark(#f1f4f8,oklch(16.5% .006 262));--surface:light-dark(#fff,oklch(19.8% .007 262));--surface-2:light-dark(#e5ebf2,oklch(22.8% .008 262));--ink:light-dark(#172131,oklch(96.5% .003 262));--ink-2:light-dark(#343f50,oklch(80% .008 262));--ink-3:light-dark(#455366,oklch(68% .008 262));--line:light-dark(#c5cdd8,oklch(28.5% .009 262));--line-strong:light-dark(#93a1b4,oklch(36% .01 262))}.hero{border-bottom:1px solid var(--line);padding-block:clamp(36px,6vw,88px) clamp(40px,5vw,64px)}.hero-grid{grid-template-columns:minmax(0,1fr) 90px;align-items:start;gap:12px 18px}.hero-copy{display:contents}.hero-meta{grid-area:1/1;font-size:12px}.hero .display{text-wrap:initial;grid-area:2/1;max-width:none;margin:0;font-size:clamp(36px,7vw,48px);line-height:1.15}.hero-role{grid-area:3/1;font-size:20px;font-weight:500}.hero-about{grid-area:4/1/auto/-1;max-width:52ch;margin-top:16px;font-size:17px;line-height:1.7}.hero-focus{color:var(--ink-2)}.hero-learning{color:var(--ink-2);margin-top:8px;font-size:.85em;display:block}.hero-actions{grid-area:5/1/auto/-1;gap:12px;margin-top:18px}.hero-actions .button{padding-inline:15px;font-size:14px}.hero-portrait{background:#fff;border-radius:16px;grid-area:1/2/span 3;align-self:center;width:90px;overflow:hidden}.hero-portrait img{width:100%;height:auto;display:block}.hero>.container:empty{display:none}.job{grid-template-areas:"logo head""roles roles"}.job .highlights{gap:8px}.job-tool-detail{font-size:14px}.role-head{grid-template-columns:minmax(0,1fr);gap:4px;display:grid}.role-meta{white-space:normal;text-wrap:balance}@media (width>=1100px){.job.is-single .role-meta{display:none}}.areas .area{gap:16px}.stack-subgroup h4{color:var(--ink-2);align-items:center;gap:8px;margin:0 0 10px;font-size:13px;font-weight:500;display:flex}.stack-subgroup h4 .tool-logo{flex:0 0 28px;width:28px;height:28px}.stack-subgroup h4 .brand-svg{width:20px;height:20px}.stack-subgroup+.stack-subgroup{border-top:1px solid var(--line);padding-top:14px}.area-count{display:none}.compact-tools{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.compact-tools li{border:1px solid var(--line);background:var(--bg);border-radius:12px;align-items:center;gap:10px;min-width:0;min-height:64px;padding:8px;font-size:14px;font-weight:500;display:flex}.compact-tools .tool-logo{background:#fff;border:1px solid #e8e8e8;border-radius:10px;flex:0 0 38px;width:38px;height:38px}.compact-tools .brand-svg{width:28px;height:28px}.compact-tools li>span:last-child{overflow-wrap:anywhere;min-width:0}.stack-brand{color:var(--ink-2);margin-top:4px;font-size:11px;font-weight:400;display:block}.tool-evidence{margin-top:0}.tool-evidence .tool-list{margin-top:12px}.evidence-row{border-bottom:1px solid var(--line);gap:4px;padding-block:10px;font-size:13px;display:grid}.evidence-row strong{font-weight:500}.evidence-row span{color:var(--ink-3)}.craft-banner{margin-top:24px}.support-stack{border-top:1px solid var(--line);margin-top:32px;padding-top:28px}.support-stack h3{margin-bottom:10px;font-size:19px}.support-stack p{color:var(--ink-2);margin-bottom:18px;font-size:14px}.support-stack small{color:var(--ink-2);margin-top:4px;font-size:11px;font-weight:400;display:block}.support-stack>a{margin-top:18px}@media (width>=960px){.support-stack .compact-tools{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (width>=640px){.hero-grid{grid-template-columns:minmax(0,1fr) 160px;gap:14px 40px}.hero-portrait{border-radius:20px;width:160px}}@media (width>=768px){.job{grid-template-areas:"logo head"".roles"}}@media (width>=1024px){.hero-grid{grid-template-columns:minmax(0,1fr) 256px;align-items:center;column-gap:100px}.hero-copy{display:block}.hero .display{margin-top:16px;font-size:clamp(48px,4.5vw,64px)}.hero-meta{font-size:14px}.hero-role{margin-top:16px;font-size:28px}.hero-about{margin-top:24px;font-size:19px}.hero-actions{margin-top:30px}.hero-portrait{border-radius:24px;grid-row:auto;width:256px}}@media (width>=1100px){.job{grid-template-columns:170px 56px minmax(0,1fr);grid-template-areas:"tenure logo head"". .roles"}.job:before{left:221.5px}}.content-review-note{border-bottom:1px solid var(--line);background:var(--surface-2);padding:12px 0;font-size:13px}.content-review-note a{padding-block:3px;display:inline-block}.direction-label{color:var(--ink-2);margin-bottom:14px;font-size:14px}.proof-fact{font-size:clamp(19px,2vw,24px);line-height:1.3}.brand-svg{object-fit:contain;width:24px;height:24px}.logo-tile .brand-svg{width:32px;height:32px}.brand-mask{mask:var(--brand-url) center / contain no-repeat;-webkit-mask:var(--brand-url) center / contain no-repeat;background:currentColor;display:block}.brand-inline{display:block}.brand-inline svg{width:100%;height:100%;display:block}.logo-tile:not(.is-monogram),.tool-logo:not(.text-fallback){background:#fff;border-color:#e8e8e8}.brand-original{filter:none}.text-fallback{font-family:var(--font-mono);color:var(--ink-2);font-size:10px}.candidate-grid{gap:20px;display:grid}.candidate-card{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);padding:26px}.candidate-card h3{margin:12px 0;font-size:23px;line-height:1.3}.candidate-status,.candidate-foot{color:var(--ink-2);font-size:13px}.candidate-foot{margin-top:22px}.education-grid{gap:40px;display:grid}.education-entry{border-bottom:1px solid var(--line);padding:20px 0}.education-entry h3{margin:10px 0;font-size:19px}.education-entry .mono{color:var(--ink-2);font-size:13px}.credential-heading{margin:20px 0 12px;font-size:17px}.credential-list{gap:16px;padding-left:0;list-style:none;display:grid}.credential-list li{align-items:center;gap:14px;min-width:0;display:flex}.credential-list .tool-logo{flex:0 0 44px;width:44px;height:44px}.credential-name{font-size:14px;font-weight:500;display:block}.credential-year{color:var(--ink-3);margin-top:4px;font-size:12px;display:block}.education-brand{align-items:center;gap:16px;margin-bottom:14px;display:flex}.education-brand .logo-tile{flex:0 0 56px;width:56px;height:56px}.education-brand h3{margin-bottom:0;font-size:17px}.education-brand>div{min-width:0}.education-brand h3{text-wrap:pretty}.education-affiliation{color:var(--ink-2);margin:4px 0 0;font-size:14px}.education-entry>p{color:var(--ink-2);font-size:14px}.learning-details{margin-top:24px}.learning-details .credential-list{margin-top:20px}.credential-list .mono{white-space:nowrap;font-size:12px}.email-row{flex-wrap:wrap}.email-link{overflow-wrap:normal;word-break:normal;min-width:0;font-size:clamp(1rem,.875rem + .25vw,1.125rem)}.email-link>span{white-space:nowrap}.tool-context{overflow-wrap:anywhere}.review-document{padding-block:40px}.review-document>h1{margin:36px 0 20px;font-size:clamp(28px,5vw,46px);line-height:1.2}.review-document>h2{margin:30px 0 12px}.review-document>p{max-width:70ch;margin:14px 0}.review-document>button{margin:12px 0 12px 20px}.asset-grid{gap:16px;margin-top:32px;display:grid}.asset-card{border:1px solid var(--line);border-radius:var(--radius-lg);padding:22px}.asset-card h2{margin:14px 0 8px;font-size:19px}.asset-card p{color:var(--ink-2);overflow-wrap:anywhere;font-size:13px}.asset-card a{margin-top:10px;font-size:14px;display:block}@media (width>=640px){.asset-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width>=960px){.candidate-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.education-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.asset-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}.previous-role{border-top:1px solid var(--line);margin-top:20px;padding-top:16px}.supporting-tools{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);margin-top:28px;padding:24px}.supporting-tools h3{margin:0 0 18px;font-size:18px;font-weight:600}.supporting-tool-groups{gap:20px;display:grid}.supporting-tool-groups>div{min-width:0}.supporting-tool-groups dt{font-size:16px;font-weight:500}.supporting-tool-groups dd{color:var(--ink-2);margin-top:6px;font-size:16px}@media (width>=640px){.supporting-tool-groups{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}}.stack-build-link{margin-top:24px;font-size:14px}.credential-list li>div{min-width:0}.js-reveal [data-reveal]:focus-within,html[data-motion=reduce] [data-reveal]{opacity:1;transform:none}.copy-button{min-width:126px}.button{white-space:normal;text-align:center;height:auto;min-height:44px;padding-block:10px}.hero-actions .button{max-width:100%}html:not(.js) .site-header{height:auto;position:static}html:not(.js) .header-inner{flex-wrap:wrap;padding-block:12px}html:not(.js) .site-nav{order:3;width:100%;margin-left:0;display:block}html:not(.js) .site-nav ul{flex-wrap:wrap}html:not(.js) .header-actions,html:not(.js) [data-expand-all],html:not(.js) [data-copy]{display:none}.build-notes h1{letter-spacing:-.04em;max-width:820px;font-size:clamp(34px,5vw,60px);line-height:1.15}.build-eyebrow{margin:40px 0 16px}.build-intro{max-width:720px;color:var(--ink-2);margin-top:24px;font-size:18px}.build-facts{flex-wrap:wrap;gap:12px;margin-top:28px;display:flex}.build-facts span{border:1px solid var(--line);border-radius:var(--radius-sm);padding:6px 12px;font-size:13px}.build-grid,.build-pipeline{gap:20px;display:grid}.build-grid article,.build-pipeline li{border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface);padding:24px}.build-notes h3{margin-bottom:12px;font-size:19px}.build-grid p,.build-pipeline p,.build-caption{color:var(--ink-2);font-size:15px}.build-pipeline .mono{color:var(--cloud-text);margin-bottom:20px;display:block}.build-caption{max-width:720px;margin-top:24px}.build-palette{gap:8px;margin-bottom:24px;display:flex}.build-palette span{background:var(--cloud);border-radius:6px;width:40px;height:12px}.build-palette span:nth-child(2){background:var(--auto)}.build-palette span:nth-child(3){background:var(--rel)}.build-palette span:nth-child(4){background:var(--sec)}@media (width>=768px){.build-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.build-pipeline{grid-template-columns:repeat(3,minmax(0,1fr))}}
