:root{color-scheme:light;--bg: oklch(1 0 0);--ink: oklch(.16 .012 255);--body: oklch(.16 .012 255 / .76);--muted: oklch(.46 .018 255);--faint: oklch(.62 .012 255);--line: oklch(.935 .002 255);--line-2: oklch(.88 .004 255);--panel: oklch(.985 .002 255);--panel-2: oklch(.965 .003 255);--card: oklch(1 0 0);--accent: oklch(.7 .2 48);--accent-ink: oklch(.58 .19 45);--teal: oklch(.45 .11 190);--green: oklch(.52 .12 160);--red: oklch(.577 .22 27);--violet: oklch(.5 .17 295);--hl-cyan: oklch(.93 .045 205);--hl-mint: oklch(.93 .06 160);--hl-peach: oklch(.91 .06 50);--hl-grey: oklch(.93 .002 255);--pass-bg: oklch(.93 .06 160);--pass-ink: oklch(.42 .11 160);--fail-bg: oklch(.93 .05 25);--fail-ink: oklch(.52 .2 27);--warn-bg: oklch(.93 .07 70);--warn-ink: oklch(.55 .14 60);--wash-a: oklch(.9 .05 205 / .55);--wash-b: oklch(.94 .03 200 / .6);--dots: oklch(.16 .012 255 / .12);--sans: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--display: "Host Grotesk", system-ui, -apple-system, sans-serif;--mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--frame: 920px;--col: 660px;--gut: 34px}:root[data-theme=dark]{color-scheme:dark;--bg: oklch(.165 .008 255);--ink: oklch(.95 .004 255);--body: oklch(.95 .004 255 / .74);--muted: oklch(.72 .01 255);--faint: oklch(.55 .01 255);--line: oklch(.255 .008 255);--line-2: oklch(.32 .01 255);--panel: oklch(.195 .008 255);--panel-2: oklch(.22 .009 255);--card: oklch(.18 .008 255);--accent: oklch(.76 .17 55);--accent-ink: oklch(.78 .15 58);--teal: oklch(.78 .11 195);--green: oklch(.78 .15 155);--red: oklch(.7 .19 25);--violet: oklch(.75 .13 295);--hl-cyan: oklch(.36 .06 205);--hl-mint: oklch(.36 .07 160);--hl-peach: oklch(.38 .07 50);--hl-grey: oklch(.3 .006 255);--pass-bg: oklch(.3 .07 160);--pass-ink: oklch(.85 .14 155);--fail-bg: oklch(.3 .08 25);--fail-ink: oklch(.8 .15 25);--warn-bg: oklch(.32 .07 65);--warn-ink: oklch(.85 .13 70);--wash-a: oklch(.3 .04 205 / .5);--wash-b: oklch(.24 .03 200 / .6);--dots: oklch(.95 .004 255 / .09)}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.6 var(--sans);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}::selection{background:var(--hl-peach);color:var(--ink)}a{color:inherit}img,svg,canvas{max-width:100%}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}body:before{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;background-image:radial-gradient(var(--dots) 1px,transparent 1.4px);background-size:7px 7px;-webkit-mask-image:linear-gradient(90deg,#000 0,transparent 22%,transparent 78%,#000 100%);mask-image:linear-gradient(90deg,#000 0,transparent 22%,transparent 78%,#000 100%);opacity:.9}.frame{max-width:var(--frame);margin:0 auto;border-left:1px solid var(--line);border-right:1px solid var(--line);background:var(--bg);min-height:100vh;position:relative}.band{border-top:1px solid var(--line);position:relative}.band:before,.band:after{content:"";position:absolute;top:-4px;width:7px;height:7px;border:1px solid var(--line-2);background:var(--bg)}.band:before{left:-4px}.band:after{right:-4px}.pad{padding:0 var(--gut)}.site-head{position:sticky;top:0;z-index:20;height:52px;display:flex;align-items:center;gap:22px;padding:0 var(--gut);background:color-mix(in oklch,var(--bg) 88%,transparent);backdrop-filter:saturate(1.4) blur(10px);-webkit-backdrop-filter:saturate(1.4) blur(10px);border-bottom:1px solid var(--line)}.logo{display:inline-flex;align-items:center;gap:9px;text-decoration:none;font:600 15px/1 var(--display);letter-spacing:-.01em}.logo-mark{width:22px;height:22px;display:grid;place-items:center;background:var(--ink);color:var(--bg);font:600 11px/1 var(--mono);border-radius:3px}.logo-caret{color:var(--accent);animation:blink 1.1s steps(1) infinite}@keyframes blink{50%{opacity:0}}.nav{display:flex;gap:18px;font-size:14px}.nav a{text-decoration:none;color:var(--muted)}.nav a:hover,.nav a[aria-current=page]{color:var(--ink)}.head-right{margin-left:auto;display:flex;align-items:center;gap:12px}.mono-link{font:12px/1 var(--mono);color:var(--muted);text-decoration:none}.mono-link:hover{color:var(--ink)}.theme-btn{font:500 12px/1 var(--mono);color:var(--bg);background:var(--ink);border:0;border-radius:4px;padding:8px 11px;cursor:pointer}.theme-btn:hover{opacity:.88}h1,h2,h3,h4{font-family:var(--display);font-weight:500;color:var(--ink);letter-spacing:-.012em}.display{font:500 clamp(36px,6vw,56px)/1.08 var(--display);letter-spacing:-.02em;margin:0}.hl{padding:0 .08em;-webkit-box-decoration-break:clone;box-decoration-break:clone}.hl-cyan{background:var(--hl-cyan)}.hl-mint{background:var(--hl-mint)}.hl-peach{background:var(--hl-peach)}.hl-grey{background:var(--hl-grey)}.lede{font-size:17.5px;line-height:1.62;color:var(--body);max-width:560px}.eyebrow{display:inline-flex;align-items:center;gap:8px;font:500 11px/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}.eyebrow:before{content:"";width:2px;height:12px;background:var(--ink)}.meta{font:12px/1.6 var(--mono);color:var(--faint)}.meta b{color:var(--muted);font-weight:500}.tag{display:inline-block;font:600 10.5px/1 var(--mono);letter-spacing:.06em;text-transform:uppercase;padding:4px 6px;border-radius:3px;background:var(--hl-grey);color:var(--muted);vertical-align:1px}.tag.pass{background:var(--pass-bg);color:var(--pass-ink)}.tag.fail{background:var(--fail-bg);color:var(--fail-ink)}.tag.warn{background:var(--warn-bg);color:var(--warn-ink)}.tag.chip{background:transparent;border:1px solid var(--line-2);color:var(--muted);font-weight:500}.wash{position:relative;overflow:hidden;padding:44px clamp(16px,5vw,56px);background:radial-gradient(60% 80% at 12% 20%,var(--wash-a),transparent 70%),radial-gradient(50% 60% at 88% 75%,var(--wash-a),transparent 70%),radial-gradient(40% 50% at 70% 10%,var(--wash-b),transparent 70%),var(--panel)}.wash:after{content:"";position:absolute;inset:0;pointer-events:none;opacity:.35;mix-blend-mode:multiply;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.012 0.02' numOctaves='4' seed='7'/%3E%3CfeColorMatrix values='0 0 0 0 0.5 0 0 0 0 0.6 0 0 0 0 0.65 0 0 0 0.55 0'/%3E%3C/filter%3E%3Crect width='240' height='240' filter='url(%23n)'/%3E%3C/svg%3E");background-size:480px 480px}:root[data-theme=dark] .wash:after{mix-blend-mode:screen;opacity:.18}.wash.mint{--wash-a: oklch(.9 .07 160 / .55);--wash-b: oklch(.95 .04 150 / .6)}.wash.peach{--wash-a: oklch(.9 .07 55 / .5);--wash-b: oklch(.95 .04 70 / .6)}.wash.grey{--wash-a: oklch(.88 .005 255 / .6);--wash-b: oklch(.93 .004 255 / .6)}:root[data-theme=dark] .wash.mint{--wash-a: oklch(.32 .06 160 / .5);--wash-b: oklch(.24 .04 150 / .6)}:root[data-theme=dark] .wash.peach{--wash-a: oklch(.33 .06 55 / .5);--wash-b: oklch(.24 .04 70 / .6)}:root[data-theme=dark] .wash.grey{--wash-a: oklch(.28 .005 255 / .6);--wash-b: oklch(.22 .004 255 / .6)}.wash>*{position:relative;z-index:1}.inst{border:1px solid var(--line-2);border-radius:4px;background:var(--card);overflow:hidden}.inst-bar{display:flex;align-items:center;gap:10px;min-height:34px;padding:7px 12px;border-bottom:1px solid var(--line);background:var(--panel);font:11.5px/1.3 var(--mono);color:var(--muted)}.inst-bar:before{content:"";width:7px;height:7px;background:var(--accent);border-radius:1px;flex:none}.inst-bar .status{margin-left:auto;color:var(--faint)}.inst-body{padding:16px}.inst-cap{padding:10px 14px 12px;border-top:1px solid var(--line);font-size:13px;line-height:1.55;color:var(--muted)}.ctl{display:flex;flex-wrap:wrap;gap:10px 18px;align-items:center;font:12px/1.3 var(--mono);color:var(--muted)}.ctl label{display:inline-flex;align-items:center;gap:8px}.ctl output,.readout{font:500 12px/1.3 var(--mono);color:var(--ink);font-variant-numeric:tabular-nums}.btn{font:500 12px/1 var(--mono);color:var(--ink);background:var(--card);border:1px solid var(--line-2);border-radius:4px;padding:7px 10px;cursor:pointer}.btn:hover{border-color:var(--ink)}.btn.primary{background:var(--ink);color:var(--bg);border-color:var(--ink)}.btn[aria-pressed=true]{background:var(--hl-peach);border-color:var(--accent)}input[type=range]{accent-color:var(--accent);width:130px}input[type=checkbox]{accent-color:var(--accent)}.big-num{font:600 28px/1 var(--mono);letter-spacing:-.02em;font-variant-numeric:tabular-nums}.prose{font-size:16.5px;line-height:1.72;color:var(--body)}.prose>*{max-width:var(--col)}.prose>.wide,.prose>figure.wide,.prose>.wash{max-width:none}.prose p{margin:0 0 1.15em}.prose strong{color:var(--ink);font-weight:600}.prose a{color:var(--ink);text-decoration-color:var(--accent);text-underline-offset:3px}.prose a:hover{text-decoration-thickness:2px}.prose h2{font-size:25px;line-height:1.25;margin:2.6em 0 .9em;padding-bottom:12px;border-bottom:1px solid var(--line)}.prose .kicker+h2{margin-top:.35em}.prose h3{font-size:18.5px;margin:2em 0 .6em}.prose h2 a.anchor,.prose h3 a.anchor{text-decoration:none}.prose ul,.prose ol{padding-left:1.3em;margin:0 0 1.2em}.prose li{margin:.35em 0}.prose li::marker{color:var(--faint);font-family:var(--mono);font-size:.85em}.prose hr{border:0;border-top:1px solid var(--line);margin:3em 0}.prose blockquote{margin:1.6em 0;padding:2px 0 2px 18px;border-left:2px solid var(--ink);color:var(--ink);font:500 19px/1.5 var(--display)}.prose blockquote p{margin:0}.kicker{display:block;margin-top:3.2em;font:600 11px/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--accent-ink)}.prose :not(pre)>code{font:.86em/1 var(--mono);background:var(--panel-2);border:1px solid var(--line);padding:2px 5px;border-radius:3px;color:var(--ink);overflow-wrap:anywhere}.prose pre{font:13px/1.65 var(--mono);background:var(--panel)!important;border:1px solid var(--line-2);border-radius:4px;padding:14px 16px;overflow-x:auto;margin:1.4em 0 1.6em}.prose pre code{counter-reset:ln}.prose pre code .line:before{counter-increment:ln;content:counter(ln);display:inline-block;width:2.2em;margin-right:1.1em;text-align:right;color:var(--faint);opacity:.6}.shiki span{color:var(--shiki-light)}:root[data-theme=dark] .shiki span{color:var(--shiki-dark)}.prose table{width:100%;border-collapse:collapse;margin:1.4em 0 1.8em;font-size:14px}.prose th{text-align:left;font:600 11px/1.3 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.prose th,.prose td{padding:9px 10px;border-bottom:1px solid var(--line);vertical-align:top}.prose td code{white-space:nowrap}.table-wrap{overflow-x:auto}.callout{margin:1.8em 0;padding:16px 20px;border:1px dashed var(--line-2);border-left:3px solid var(--accent);background:color-mix(in oklch,var(--panel) 60%,transparent);font-size:15px;line-height:1.62;color:var(--ink)}.callout>:last-child{margin-bottom:0}.callout-label{font-weight:700;margin-right:4px}.callout.note{border-left-color:var(--teal)}.callout.note .callout-label{color:var(--teal);font:600 11px/1 var(--mono);letter-spacing:.12em;text-transform:uppercase;display:block;margin-bottom:8px}.callout.rule{border-left-color:var(--ink)}.prose figure{margin:2em 0 2.2em}.prose figure.wide{margin-left:calc(-1 * var(--gut) + 1px);margin-right:calc(-1 * var(--gut) + 1px)}.prose .wash{margin:2.4em calc(-1 * var(--gut) + 1px)}.post-grid{display:grid;grid-template-columns:minmax(0,1fr)}.toc{display:none}@media(min-width:1240px){.toc{display:block;position:fixed;top:110px;left:calc(50% + var(--frame) / 2 + 28px);width:200px;font:11.5px/1.5 var(--mono)}.toc a{display:block;padding:4px 0 4px 10px;color:var(--faint);text-decoration:none;border-left:1px solid var(--line)}.toc a:hover{color:var(--ink)}.toc a.on{color:var(--ink);border-left-color:var(--accent)}}.progress{position:fixed;top:0;left:0;height:2px;background:var(--accent);z-index:30;width:0}.rows{list-style:none;margin:0;padding:0}.rows li{border-top:1px solid var(--line)}.rows li:last-child{border-bottom:1px solid var(--line)}.rows a{display:grid;grid-template-columns:52px 1fr auto;gap:14px;align-items:baseline;padding:18px 0;text-decoration:none}.rows .idx{font:12px/1 var(--mono);color:var(--faint)}.rows .t{font:500 19px/1.3 var(--display);color:var(--ink);letter-spacing:-.01em}.rows .d{display:block;margin-top:6px;font:14px/1.55 var(--sans);color:var(--muted)}.rows .m{font:11px/1 var(--mono);color:var(--faint);white-space:nowrap}.rows a:hover .t{text-decoration:underline;text-decoration-color:var(--accent);text-underline-offset:4px}.steps{display:grid;grid-template-columns:repeat(3,1fr)}.steps>div{padding:26px var(--gut) 30px;border-right:1px solid var(--line)}.steps>div:last-child{border-right:0}.steps h3{font-size:17px;margin:12px 0 8px}.steps p{margin:0;font-size:14px;line-height:1.6;color:var(--muted)}.term{font:12.5px/1.75 var(--mono);color:var(--ink)}.term .p{color:var(--accent-ink)}.term .dim{color:var(--faint)}.term a{text-decoration:none}.term a:hover{background:var(--hl-peach)}.cursor{display:inline-block;width:7px;height:14px;background:var(--ink);vertical-align:-2px;animation:blink 1.1s steps(1) infinite}.site-foot{display:flex;flex-wrap:wrap;gap:10px 24px;justify-content:space-between;padding:26px var(--gut) 34px;font:11px/1.5 var(--mono);color:var(--faint);letter-spacing:.04em}@media(max-width:760px){:root{--gut: 16px}.frame{border:0}.band:before,.band:after{display:none}.steps{grid-template-columns:1fr}.steps>div{border-right:0;border-bottom:1px solid var(--line)}.rows a{grid-template-columns:34px 1fr}.rows .m,.mono-link{display:none}.prose{font-size:16px}.prose figure.wide{margin-left:0;margin-right:0}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
