@font-face{font-family:Bricolage Grotesque;src:url(/fonts/bricolage-latin-ext.woff2)format("woff2");font-weight:400 800;font-display:swap;unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Bricolage Grotesque;src:url(/fonts/bricolage-latin.woff2)format("woff2");font-weight:400 800;font-display:swap;unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg:#f7f7fb;--surface:#fff;--ink:#14161f;--ink-muted:#565c73;--brand:#4338ca;--brand-soft:#eae9fd;--brand-ink:#4f46e5;--accent:#0891b2;--line:#14161f1a;--shadow:0 1px 2px #14161f0d, 0 14px 34px -20px #14161f66;--radius:20px;--measure:62ch;--gutter:clamp(1rem, 4vw, 2.5rem);--header-h:3.75rem;--display:"Bricolage Grotesque", ui-sans-serif, system-ui, sans-serif;--mono:ui-monospace, "SF Mono", "Cascadia Mono", "DejaVu Sans Mono", monospace}@media (prefers-color-scheme:dark){:root{--bg:#0b0c12;--surface:#14161f;--ink:#ecedf5;--ink-muted:#9aa0b8;--brand:#6c5cf5;--brand-soft:#1b1a35;--brand-ink:#a99bff;--accent:#22d3ee;--line:#ecedf51f;--shadow:0 1px 2px #0006, 0 18px 44px -24px #000000e6}}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth;overflow-x:clip}[id]{scroll-margin-top:calc(var(--header-h) + 1rem)}body{background:var(--bg);color:var(--ink);-webkit-text-size-adjust:100%;flex-direction:column;min-height:100dvh;margin:0;font:16px/1.65 ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;display:flex}.glow{z-index:-1;pointer-events:none;background:radial-gradient(60rem 30rem at 12% -8%, color-mix(in oklab, var(--brand) 20%, transparent), transparent 70%), radial-gradient(45rem 26rem at 92% 4%, color-mix(in oklab, var(--accent) 14%, transparent), transparent 70%);position:fixed;inset:0}main,footer,.bar{width:100%;max-width:70rem;padding-inline:var(--gutter);margin-inline:auto}header{z-index:10;background:color-mix(in oklab, var(--bg) 78%, transparent);backdrop-filter:blur(12px);position:sticky;top:0}.bar{justify-content:space-between;align-items:center;gap:1rem;padding-block:1rem;display:flex}main{flex:1;padding-block:clamp(1.5rem,5vw,3.5rem)}footer{border-top:1px solid var(--line);color:var(--ink-muted);flex-wrap:wrap;justify-content:space-between;gap:.25rem 2rem;margin-top:5rem;padding-block:2rem;font-size:.875rem;display:flex}footer p{margin:0}.wordmark{font-family:var(--display);letter-spacing:-.03em;color:var(--ink);align-items:center;gap:.5rem;font-weight:700;text-decoration:none;display:inline-flex}.wm-text span,.wordmark-small{color:var(--ink-muted);font-weight:500}.wordmark-small{font-family:var(--display);color:var(--ink)}.header-links{gap:1.25rem;display:flex}.header-link{color:var(--ink-muted);font-size:.9375rem;text-decoration:none}.header-link:hover{color:var(--ink)}h1,h2,h3{font-family:var(--display);letter-spacing:-.035em;text-wrap:balance;font-weight:700;line-height:1.08}h1{margin-block:0 .75rem;font-size:clamp(2.5rem,7vw,4.25rem)}h2{font-size:clamp(1.5rem,3.5vw,2rem)}p{text-wrap:pretty}a{color:var(--brand-ink)}a:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:6px}img{max-width:100%;height:auto}.eyebrow{font-family:var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--ink-muted);margin:0 0 1rem;font-size:.75rem}.lede{color:var(--ink-muted);max-width:var(--measure);margin-block:0 2rem;font-size:clamp(1.125rem,2.5vw,1.375rem);line-height:1.5}.prose{max-width:var(--measure)}.prose h2{margin-top:3rem}.prose table{border-collapse:collapse;width:100%}.prose th,.prose td{text-align:left;border-bottom:1px solid var(--line);vertical-align:top;padding:.5rem .75rem .5rem 0}@view-transition{navigation:auto}header{view-transition-name:site-header}::view-transition-old(root){animation:.2s cubic-bezier(.4,0,1,1) both page-out}::view-transition-new(root){animation:.42s cubic-bezier(0,0,.2,1) both page-in}::view-transition-group(*){animation-duration:.42s;animation-timing-function:cubic-bezier(.4,0,.2,1)}@keyframes page-out{to{opacity:0;transform:translateY(-6px)}}@keyframes page-in{0%{opacity:0;transform:translateY(10px)}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation-duration:1ms!important}}
