@font-face{font-family:Excalifont;src:url(/fonts/Excalifont-Regular.woff2) format("woff2");font-weight:400 700;font-style:normal;font-display:swap}@font-face{font-family:Virgil;src:url(/fonts/Virgil.woff2) format("woff2");font-weight:400 700;font-style:normal;font-display:swap}:root{--ink-stage: #050506;--ink-black: #0a0a0b;--ink-bg: #121212;--ink-surface: #1a1a1c;--ink-surface-2: #242427;--ink-surface-3: #2e2e32;--ink-hair: #2c2c30;--ink-border: #3a3a40;--ink-stroke: #6b6f76;--ink-stroke-soft:#52555c;--ink-text: #ECECEC;--ink-text-dim: #B4B4BC;--ink-text-faint: #74767E;--ink-text-ink: #0a0a0b;--c-blue: #4dabf7;--c-blue-soft: #1c3a52;--c-violet: #b197fc;--c-violet-soft: #2f2a52;--c-grape: #da77f2;--c-grape-soft: #422348;--c-green: #69db7c;--c-green-soft: #1d3a25;--c-lime: #a9e34b;--c-lime-soft: #2f3d18;--c-yellow: #ffd43b;--c-yellow-soft: #41370f;--c-orange: #ffa94d;--c-orange-soft: #432a12;--c-red: #ff8787;--c-red-soft: #45211f;--c-pink: #f783ac;--c-pink-soft: #431f30;--c-cyan: #66d9e8;--c-cyan-soft: #143b40;--c-teal: #38d9a9;--c-teal-soft: #103a30;--accent: var(--c-blue);--accent-soft: var(--c-blue-soft);--accent-2: var(--c-violet);--accent-2-soft: var(--c-violet-soft);--success: var(--c-green);--success-soft: var(--c-green-soft);--danger: var(--c-red);--danger-soft: var(--c-red-soft);--warning: var(--c-yellow);--warning-soft: var(--c-yellow-soft);--info: var(--c-cyan);--info-soft: var(--c-cyan-soft);--role-target: var(--c-blue);--role-draft: var(--c-violet);--role-accept: var(--c-green);--role-reject: var(--c-red);--role-cache: var(--c-orange);--role-token: var(--ink-text)}:root{--font-hand: "Excalifont", "Virgil", "Comic Sans MS", cursive;--font-mono: "JetBrains Mono", "SFMono-Regular", "Consolas", ui-monospace, monospace;--font-display: var(--font-hand);--font-body: var(--font-hand);--fs-2xs: .75rem;--fs-xs: .875rem;--fs-sm: 1rem;--fs-base: 1.25rem;--fs-md: 1.5rem;--fs-lg: 2rem;--fs-xl: 2.75rem;--fs-2xl: 3.75rem;--fs-3xl: 5rem;--lh-tight: 1.05;--lh-snug: 1.2;--lh-normal: 1.5;--lh-relaxed: 1.7;--ls-tight: -.01em;--ls-normal: .005em;--ls-wide: .06em;--ls-caps: .12em;--text-title: var(--fs-2xl);--text-heading: var(--fs-xl);--text-sub: var(--fs-lg);--text-lead: var(--fs-md);--text-body: var(--fs-base);--text-caption: var(--fs-xs)}:root{--sp-0: 0;--sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-5: 20px;--sp-6: 24px;--sp-8: 32px;--sp-10: 40px;--sp-12: 48px;--sp-16: 64px;--sp-20: 80px;--sp-24: 96px;--gap-node: var(--sp-3);--gap-stack: var(--sp-4);--gap-section: var(--sp-12);--pad-card: var(--sp-6);--pad-slide: var(--sp-20);--slide-w: 1280px;--slide-h: 720px;--slide-safe: 64px;--measure: 62ch;--container: 1120px}:root{--r-drawn-1: 14px 9px 12px 8px;--r-drawn-2: 9px 14px 8px 12px;--r-drawn-3: 10px 7px 9px 6px;--r-drawn-4: 12px 8px 14px 10px;--r-drawn-chip: 9px 6px 8px 6px;--r-wobble-1: 255px 15px 225px 15px / 15px 225px 15px 255px;--r-wobble-2: 15px 225px 15px 255px / 225px 15px 255px 15px;--r-wobble-3: 225px 15px 255px 15px / 15px 255px 15px 225px;--r-wobble-4: 15px 225px 15px 255px / 255px 15px 225px 15px;--r-soft: 12px 10px 14px 10px / 10px 14px 10px 12px;--r-pill: 80px 60px 80px 60px / 60px 80px 60px 80px;--r-sm: 6px 4px 7px 5px / 5px 7px 4px 6px;--stroke-hair: 1.5px;--stroke: 2px;--stroke-bold: 3px;--shadow-sm: 0 1px 2px rgba(0,0,0,.5);--shadow: 0 4px 14px rgba(0,0,0,.55);--shadow-lg: 0 18px 48px rgba(0,0,0,.6);--glow-accent: 0 0 0 1px color-mix(in oklab, var(--accent) 35%, transparent), 0 0 18px color-mix(in oklab, var(--accent) 28%, transparent);--glow-success: 0 0 16px color-mix(in oklab, var(--success) 30%, transparent);--glow-danger: 0 0 16px color-mix(in oklab, var(--danger) 30%, transparent);--ease-draw: cubic-bezier(.22,.61,.36,1);--ease-pop: cubic-bezier(.34,1.56,.64,1);--dur-fast: .14s;--dur: .26s;--dur-slow: .52s;--sketch-underline: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='120' height='10' viewBox='0 0 120 10'><path d='M2 6 C 20 2, 38 9, 58 5 S 96 2, 118 6' fill='none' stroke='%236b6f76' stroke-width='2' stroke-linecap='round'/></svg>")}.sk-box{border:var(--stroke) solid var(--ink-stroke);border-radius:var(--r-drawn-1);background:var(--ink-surface)}.sk-box--2{border-radius:var(--r-drawn-2)}.sk-box--3{border-radius:var(--r-drawn-3)}.sk-box--4{border-radius:var(--r-drawn-4)}.sk-box--wobble{border-radius:var(--r-wobble-1)}.sk-box--wobble-2{border-radius:var(--r-wobble-2)}.sk-underline{position:relative;display:inline}.sk-highlight{background:linear-gradient(120deg,color-mix(in oklab,var(--warning) 30%,transparent),color-mix(in oklab,var(--warning) 22%,transparent));border-radius:var(--r-sm);padding:0 .18em;box-decoration-break:clone}:root{--sm-dur-fast:.3s;--sm-dur:.55s;--sm-dur-slow:.9s;--sm-ease:cubic-bezier(.22,1,.36,1);--sm-ease-snap:cubic-bezier(.34,1.56,.64,1)}[data-sv]:not(.sm-on),[data-sv]:not(.sm-on) *{animation:none!important}.sm-fade,.sm-rise,.sm-pop,.sm-slam,.sm-stamp,.sm-sweep,.sm-fly,.sm-land{opacity:0}.sm-grow-x{transform:scaleX(0);transform-origin:left center}.sm-grow-y{transform:scaleY(0);transform-origin:center bottom}.sm-draw{stroke-dashoffset:var(--sm-len,300)}.sm-land{transform:translate(var(--tx,0px),var(--ty,0px))}.sm-go .sm-fade,.sm-go.sm-fade{animation:smFade var(--sm-dur) var(--sm-ease) var(--sm-delay,0s) both}.sm-go .sm-rise,.sm-go.sm-rise{animation:smRise var(--sm-dur) var(--sm-ease) var(--sm-delay,0s) both}.sm-go .sm-pop,.sm-go.sm-pop{animation:smPop var(--sm-dur) var(--sm-ease-snap) var(--sm-delay,0s) both}.sm-go .sm-slam,.sm-go.sm-slam{animation:smSlam var(--sm-dur-fast) var(--sm-ease-snap) var(--sm-delay,0s) both}.sm-go .sm-stamp,.sm-go.sm-stamp{animation:smStamp var(--sm-dur) var(--sm-ease-snap) var(--sm-delay,0s) both}@keyframes smFade{0%{opacity:0}to{opacity:1}}@keyframes smRise{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}@keyframes smPop{0%{opacity:0;transform:scale(.55)}to{opacity:1;transform:scale(1)}}@keyframes smSlam{0%{opacity:0;transform:scale(1.7)}to{opacity:1;transform:scale(1)}}@keyframes smStamp{0%{opacity:0;transform:scale(1.9) rotate(-9deg)}55%{opacity:1;transform:scale(.94) rotate(-2deg)}to{opacity:1;transform:scale(1) rotate(-2deg)}}.sm-go .sm-grow-x,.sm-go.sm-grow-x{animation:smGrowX var(--sm-dur) var(--sm-ease) var(--sm-delay,0s) both}.sm-go .sm-grow-y,.sm-go.sm-grow-y{animation:smGrowY var(--sm-dur) var(--sm-ease) var(--sm-delay,0s) both}.sm-go .sm-draw,.sm-go.sm-draw{animation:smDraw var(--sm-dur-slow) var(--sm-ease) var(--sm-delay,0s) both}.sm-go .sm-march,.sm-go.sm-march{animation:smMarch 1s linear infinite}@keyframes smGrowX{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes smGrowY{0%{transform:scaleY(0)}to{transform:scaleY(1)}}@keyframes smDraw{0%{stroke-dashoffset:var(--sm-len,300)}to{stroke-dashoffset:0}}@keyframes smMarch{to{stroke-dashoffset:-24px}}.sm-go .sm-fly,.sm-go.sm-fly{animation:smFly var(--sm-dur-slow) var(--sm-ease) var(--sm-delay,0s) both}.sm-go .sm-land,.sm-go.sm-land{animation:smLand var(--sm-dur) var(--sm-ease-snap) var(--sm-delay,0s) both}.sm-go .sm-sweep,.sm-go.sm-sweep{animation:smSweep var(--sm-dur) var(--sm-ease) var(--sm-delay,0s) both}@keyframes smFly{0%{opacity:1;transform:none}to{opacity:1;transform:translate(var(--tx,0px),var(--ty,0px))}}@keyframes smLand{0%{opacity:0;transform:translate(var(--tx,0px),var(--ty,0px)) translateY(-22px) scale(1.3)}65%{opacity:1;transform:translate(var(--tx,0px),var(--ty,0px)) scale(.95)}to{opacity:1;transform:translate(var(--tx,0px),var(--ty,0px))}}@keyframes smSweep{0%{opacity:0;transform:translate(-28px) skew(-8deg)}to{opacity:1;transform:none}}.sm-go .sm-dim,.sm-go.sm-dim{animation:smDim var(--sm-dur) var(--sm-ease) var(--sm-delay,0s) both}.sm-go .sm-die,.sm-go.sm-die{animation:smDie .7s var(--sm-ease) var(--sm-delay,0s) both}.sm-go .sm-shake,.sm-go.sm-shake{animation:smShake .5s var(--sm-ease) var(--sm-delay,0s)}.sm-go .sm-flash,.sm-go.sm-flash{animation:smFlash .8s var(--sm-ease) var(--sm-delay,0s)}@keyframes smDim{to{opacity:.3}}@keyframes smDie{0%{transform:none}25%{transform:translate(-5px) rotate(-1.5deg)}50%{transform:translate(4px)}to{opacity:.25;filter:grayscale(.8);transform:translateY(3px)}}@keyframes smShake{0%,to{transform:none}20%{transform:translate(-6px)}40%{transform:translate(5px)}60%{transform:translate(-4px)}80%{transform:translate(3px)}}@keyframes smFlash{0%{box-shadow:0 0 0 0 transparent}35%{box-shadow:0 0 0 5px color-mix(in oklab,var(--sm-glow,#fff) 55%,transparent)}to{box-shadow:0 0 0 0 transparent}}.sm-go .sm-blink,.sm-go.sm-blink{animation:smBlink 1.1s linear infinite}.sm-go .sm-pulse,.sm-go.sm-pulse{animation:smPulse 1.8s ease-in-out infinite}.sm-go .sm-breathe,.sm-go.sm-breathe{animation:smBreathe 2.4s ease-in-out infinite}@keyframes smBlink{0%,45%{opacity:1}50%,to{opacity:0}}@keyframes smPulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}@keyframes smBreathe{0%,to{box-shadow:0 0 0 0 transparent}50%{box-shadow:0 0 22px 2px color-mix(in oklab,var(--sm-glow,#fff) 40%,transparent)}}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--ink-bg);color:var(--ink-text);font-family:var(--font-hand);font-size:var(--fs-base);line-height:var(--lh-normal);letter-spacing:var(--ls-normal);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}h1,h2,h3,h4{font-family:var(--font-hand);line-height:var(--lh-snug);font-weight:400;margin:0 0 var(--sp-4);text-wrap:balance}h1{font-size:var(--fs-2xl);line-height:var(--lh-tight)}h2{font-size:var(--fs-xl)}h3{font-size:var(--fs-lg)}h4{font-size:var(--fs-md)}p{margin:0 0 var(--sp-4);text-wrap:pretty}a{color:var(--accent);text-decoration:none;border-bottom:1.5px solid color-mix(in oklab,var(--accent) 45%,transparent);transition:color var(--dur-fast),border-color var(--dur-fast)}a:hover{color:var(--c-cyan);border-color:var(--c-cyan)}code,kbd,samp,pre{font-family:var(--font-mono);font-size:.92em}:not(pre)>code{background:var(--ink-surface-2);border:1px solid var(--ink-border);border-radius:var(--r-sm);padding:.06em .36em;color:var(--c-cyan)}hr{border:none;border-top:var(--stroke) solid var(--ink-border);border-radius:50%;margin:var(--sp-8) 0}::selection{background:color-mix(in oklab,var(--accent) 35%,transparent)}*{scrollbar-width:thin;scrollbar-color:var(--ink-surface-3) transparent}*::-webkit-scrollbar{width:10px;height:10px}*::-webkit-scrollbar-thumb{background:var(--ink-surface-3);border-radius:8px;border:2px solid var(--ink-bg)}:root{color-scheme:dark}body{min-height:100vh;display:flex;flex-direction:column;background-image:radial-gradient(color-mix(in oklab,var(--ink-hair) 70%,transparent) 1px,transparent 1.2px);background-size:32px 32px}.wrap{width:100%;max-width:1080px;margin:0 auto;padding:0 var(--sp-6)}.wrap.narrow{max-width:760px}main{flex:1;padding:var(--sp-10) 0 var(--sp-16)}.top{border-bottom:1px solid var(--ink-hair);background:color-mix(in oklab,var(--ink-bg) 88%,transparent);position:sticky;top:0;z-index:10;backdrop-filter:blur(6px)}.top .wrap{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-4);height:64px}.mark{font-family:var(--font-hand);font-size:26px;color:var(--ink-text);border:0;white-space:nowrap}.mark .p{font-family:var(--font-mono);color:var(--c-green);font-size:20px;margin-right:6px}.mark .s{color:var(--c-blue)}.mark .cur{display:inline-block;width:10px;height:20px;background:var(--c-green);margin-left:4px;vertical-align:-2px;animation:blink 1.1s steps(1) infinite}@keyframes blink{50%{opacity:0}}@media (prefers-reduced-motion: reduce){.mark .cur{animation:none}}nav.links{display:flex;gap:var(--sp-5);flex-wrap:wrap}nav.links a{font-family:var(--font-mono);font-size:14px;letter-spacing:var(--ls-wide);text-transform:uppercase;color:var(--ink-text-dim);border:0}nav.links a:hover,nav.links a[aria-current=page]{color:var(--c-blue)}.foot{border-top:1px solid var(--ink-hair);padding:var(--sp-6) 0;font-family:var(--font-mono);font-size:13px;color:var(--ink-text-faint)}.foot .wrap{display:flex;gap:var(--sp-5);flex-wrap:wrap;justify-content:space-between}.foot a{color:var(--ink-text-dim);border:0}.kicker{font-family:var(--font-mono);font-size:13px;letter-spacing:var(--ls-caps);text-transform:uppercase;color:var(--c-green);margin-bottom:var(--sp-3)}.kicker:before{content:">_ ";color:var(--c-blue)}.lede{font-size:var(--fs-md);color:var(--ink-text-dim);max-width:64ch}.mono{font-family:var(--font-mono)}.dim{color:var(--ink-text-faint)}h1{font-size:clamp(36px,5vw,60px)}.box{background:var(--ink-surface);border:var(--stroke) solid var(--ink-border);border-radius:var(--r-drawn-1);padding:var(--sp-5) var(--sp-6);box-shadow:var(--shadow-sm)}.box:nth-child(4n+2){border-radius:var(--r-drawn-2)}.box:nth-child(4n+3){border-radius:var(--r-drawn-3)}.box:nth-child(4n+4){border-radius:var(--r-drawn-4)}a.box{display:block;color:inherit;transition:border-color var(--dur-fast),box-shadow var(--dur-fast),transform var(--dur-fast)}a.box:hover{border-color:var(--c-blue);box-shadow:var(--glow-accent);color:inherit}a.box:active{transform:scale(.98)}.grid{display:grid;gap:var(--sp-5);grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}.box h3{margin-bottom:var(--sp-2)}.box p{color:var(--ink-text-dim);margin:0;font-size:var(--fs-sm)}section+section{margin-top:var(--sp-12)}.table-wrap{overflow-x:auto}table.sc{width:100%;border-collapse:collapse;font-size:17px}table.sc th{text-align:left;font-family:var(--font-hand);font-weight:400;font-size:18px;padding:6px 12px 8px;border-bottom:2px solid var(--ink-border);vertical-align:bottom}table.sc th .org{display:block;font-family:var(--font-mono);font-size:12px;color:var(--ink-text-faint)}table.sc td{padding:8px 12px;border-top:1px solid var(--ink-hair);vertical-align:middle}table.sc td.t small{display:block;font-family:var(--font-mono);font-size:12px;color:var(--ink-text-faint)}table.sc td.v{font-family:var(--font-mono);white-space:nowrap}table.sc td.win{color:var(--c-yellow);font-weight:700;background:color-mix(in oklab,var(--c-yellow-soft) 55%,transparent)}.tag{font-family:var(--font-mono);font-size:11px;padding:1px 6px;border:1px solid currentColor;border-radius:var(--r-drawn-chip);margin-left:6px;vertical-align:2px}.tally{display:flex;gap:var(--sp-4);flex-wrap:wrap;margin:var(--sp-5) 0}.tally .box{flex:1;min-width:180px}.tally .n{font-family:var(--font-hand);font-size:48px;line-height:1;color:var(--c-yellow)}.tally .box.tie .n{color:var(--ink-text-faint)}ul.notes{color:var(--ink-text-dim);font-size:var(--fs-sm)}.prose{font-size:20px;line-height:1.6}.prose h2{margin-top:var(--sp-10)}.prose h3{margin-top:var(--sp-8)}.prose ul,.prose ol{padding-left:1.2em;margin:0 0 var(--sp-4)}.prose li{margin-bottom:var(--sp-2)}.prose img{max-width:100%;border-radius:var(--r-drawn-2);border:1px solid var(--ink-border)}.prose pre{background:var(--ink-black);border:1px solid var(--ink-border);border-radius:10px 8px 11px 9px;padding:var(--sp-4) var(--sp-5);overflow-x:auto;font-size:15px;line-height:1.5}.prose :not(pre)>code{background:var(--ink-surface-2);padding:1px 6px;border-radius:4px;font-size:.85em}.prose blockquote{margin:var(--sp-5) 0;padding:var(--sp-3) var(--sp-5);border:var(--stroke) solid var(--c-green);border-radius:var(--r-drawn-3);background:color-mix(in oklab,var(--c-green-soft) 45%,transparent)}.prose blockquote p:last-child{margin:0}.prose table{border-collapse:collapse;margin:var(--sp-5) 0;font-size:17px}.prose th,.prose td{border-top:1px solid var(--ink-hair);padding:6px 12px;text-align:left}.figure{margin:var(--sp-8) 0}.figure .cap{font-family:var(--font-mono);font-size:13px;color:var(--ink-text-faint);margin-top:var(--sp-2)}@media (max-width: 640px){.wrap{padding:0 16px}.top .wrap{height:auto;padding-top:10px;padding-bottom:10px;flex-direction:column;align-items:flex-start;gap:6px}.prose{font-size:18px}}.lede+section,.lede+p+section{margin-top:var(--sp-10)}
