@font-face{font-family:Archivo Variable;src:url(/fonts/archivo-latin-wdth-normal.woff2)format("woff2");font-weight:100 900;font-stretch:62% 125%;font-display:swap}@font-face{font-family:JetBrains Mono Variable;src:url(/fonts/jetbrains-mono-latin-wght-normal.woff2)format("woff2");font-weight:100 800;font-display:swap}:root{--paper:#f3f5f1;--paper-sunk:#e8ece5;--paper-raise:#fafbf8;--rule:#cdd6cb;--rule-strong:#9fb3a1;--ink:#1c2230;--ink-muted:#535e6c;--ink-faint:#5d6876;--pen:#24396e;--pen-soft:color-mix(in oklab, var(--pen) 12%, transparent);--pen-on:#f5f7fb;--correction:#b8382a;--pass:#2f6b4a;--caution:#8a5a00;--cloth:#22304a;--cloth-raise:#2c3c5a;--cloth-ink:#eef1ea;--cloth-muted:#aeb9cb;--cloth-rule:#3b4b69;--site-ground:#fff;--site-line:#dcdcdc;--spark:#7b5ce8;--focus:#3a62c4;--font-ui:"Archivo Variable", "Archivo", system-ui, sans-serif;--font-mono:"JetBrains Mono Variable", "JetBrains Mono", ui-monospace, monospace;--ease-out:cubic-bezier(.16, 1, .3, 1);--margin:6.5rem;--gutter:40px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--paper:#141a25;--paper-sunk:#10151f;--paper-raise:#182030;--rule:#263145;--rule-strong:#3d5160;--ink:#e2e6de;--ink-muted:#a3adba;--ink-faint:#8792a1;--pen:#a8c0f2;--pen-on:#101828;--correction:#ff8473;--pass:#8fd0a8;--caution:#e8b75a;--cloth:#1d2a42;--cloth-raise:#27375a;--cloth-ink:#e9ede6;--cloth-muted:#a5b1c4;--cloth-rule:#33435f;--site-ground:#f4f4f2;--site-line:#d4d4d0;--spark:#b8a4ff;--focus:#8fb0ff;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--paper:#141a25;--paper-sunk:#10151f;--paper-raise:#182030;--rule:#263145;--rule-strong:#3d5160;--ink:#e2e6de;--ink-muted:#a3adba;--ink-faint:#8792a1;--pen:#a8c0f2;--pen-on:#101828;--correction:#ff8473;--pass:#8fd0a8;--caution:#e8b75a;--cloth:#1d2a42;--cloth-raise:#27375a;--cloth-ink:#e9ede6;--cloth-muted:#a5b1c4;--cloth-rule:#33435f;--site-ground:#f4f4f2;--site-line:#d4d4d0;--spark:#b8a4ff;--focus:#8fb0ff;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;scroll-padding-top:96px}body{background:var(--paper);color:var(--ink);font-family:var(--font-ui);-webkit-font-smoothing:antialiased;caret-color:var(--pen);margin:0;font-size:1rem;line-height:1.5}::selection{background:color-mix(in oklab, var(--pen) 22%, transparent);color:inherit}:focus-visible{outline:2px solid var(--focus);outline-offset:2px;border-radius:2px}html{scrollbar-color:var(--rule-strong) transparent}h1,h2,p,pre,ul,ol{margin:0}a{color:inherit;text-underline-offset:3px;text-decoration-thickness:1px}.vh{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.mono{font-family:var(--font-mono);font-feature-settings:"tnum";font-size:.8125rem}.label{letter-spacing:.07em;text-transform:uppercase;font-variation-settings:"wdth" 72;font-size:.6875rem;font-weight:640;font-stretch:72%}.stamp{letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;border:1.5px solid;border-radius:2px;align-items:center;height:18px;padding:0 5px;font-size:.625rem;font-weight:700;font-stretch:66%;line-height:1;display:inline-flex}.stamp.pass{color:var(--pass)}.stamp.fail{color:var(--correction)}.stamp.run{color:var(--pen)}.stamp.wait{color:var(--caution)}.btn{height:40px;font:600 .9375rem/1 var(--font-ui);white-space:nowrap;cursor:pointer;transition:background-color .16s var(--ease-out), border-color .16s var(--ease-out);border:1px solid #0000;border-radius:3px;align-items:center;gap:8px;padding:0 16px;text-decoration:none;display:inline-flex;position:relative}.btn svg{flex:none}.btn-pen{background:var(--pen);color:var(--pen-on)}.btn-pen:hover{background:color-mix(in oklab, var(--pen) 88%, var(--ink))}.btn-outline{border-color:var(--rule-strong);color:var(--ink);background:0 0}.btn-outline:hover{border-color:var(--ink-faint);background:color-mix(in oklab, var(--ink) 4%, transparent)}.btn .twinkle{width:14px;height:14px;color:var(--spark);transition:transform .32s var(--ease-out);pointer-events:none;position:absolute;top:-7px;right:-7px;transform:scale(0)rotate(-45deg)}.btn:hover .twinkle,.btn:focus-visible .twinkle{transform:scale(1)rotate(0)}.band{z-index:10;background:var(--cloth);height:52px;color:var(--cloth-ink);align-items:center;gap:14px;padding:0 20px;display:flex;position:sticky;top:0}.wordmark{letter-spacing:-.005em;align-items:center;gap:8px;font-size:1.0625rem;font-weight:700;font-stretch:80%;text-decoration:none;display:inline-flex}.wordmark svg{width:22px;height:22px}.band nav{align-items:center;gap:4px;margin-left:auto;display:flex}.band nav a{height:32px;color:var(--cloth-muted);transition:background-color .16s var(--ease-out), color .16s var(--ease-out);border-radius:3px;align-items:center;gap:7px;padding:0 10px;font-size:.8125rem;text-decoration:none;display:inline-flex}.band nav a:hover{background:var(--cloth-raise);color:var(--cloth-ink)}.band nav .sep{background:var(--cloth-rule);width:1px;height:20px;margin:0 8px}.band nav .num{font-family:var(--font-mono);opacity:.7;font-size:.6875rem}.filebar{z-index:9;background:color-mix(in oklab, var(--paper) 92%, transparent);-webkit-backdrop-filter:blur(8px);border-bottom:1px solid var(--rule);position:sticky;top:52px}.filebar .in{max-width:1200px;padding:0 var(--gutter);height:36px;color:var(--ink-muted);align-items:center;gap:10px;margin:0 auto;display:flex}.filebar b{color:var(--ink);font-weight:500}.filebar .crumb{color:var(--ink-faint);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.filebar .crumb span{color:var(--pen)}.filebar .state{align-items:center;gap:8px;margin-left:auto;display:inline-flex}.dot{background:var(--pass);border-radius:50%;width:6px;height:6px;transition:background-color .24s}.dot.dirty{background:var(--caution)}.page{max-width:1200px;padding:0 var(--gutter);margin:0 auto;position:relative}.page:before{content:"";background:var(--rule);width:1px;top:0;bottom:0;left:calc(var(--gutter) + var(--margin) - 1.5rem);position:absolute}.entry{grid-template-columns:var(--margin) minmax(0, 680px) minmax(0, 1fr);column-gap:0;padding:44px 0 72px;display:grid;position:relative}.entry:before{content:"";background:var(--rule);transform-origin:0;height:1px;transition:transform .9s var(--ease-out);position:absolute;top:0;left:0;right:0}.entry>.num{color:var(--ink-faint);padding-top:9px}.entry>.body{min-width:0}.entry>.aside{padding:64px 0 0 44px}h2{letter-spacing:-.015em;color:var(--pen);text-wrap:balance;font-size:1.75rem;font-weight:680;line-height:1.2}.md{color:var(--rule-strong);margin-right:.35em;font-weight:500}.body>p{max-width:62ch;color:var(--pen);margin-top:12px;font-size:1.0625rem;line-height:1.7}.body>p+p{margin-top:10px}code,.path{font-family:var(--font-mono);color:var(--ink);background:var(--paper-sunk);border-radius:2px;padding:1px 5px;font-size:.86em}.hero{padding:88px 0 80px}.hero:before{display:none}.hero>.num{padding-top:2.1rem}.hero>.body{grid-area:1/2/auto/4}.hero>.aside{grid-area:1/3;align-self:end;padding:0 0 6px 44px}.title{letter-spacing:-.04em;color:var(--pen);white-space:nowrap;padding-right:.35em;font-size:clamp(3.4rem,12.5vw,9rem);font-weight:820;font-stretch:112%;line-height:.9;display:inline-block;position:relative}.title .md{letter-spacing:-.02em;margin-right:.1em;font-weight:480}.title .ink{display:inline-block}.title .quill,.title .spark{pointer-events:none;position:absolute}.title .quill{width:.62em;height:.62em;color:var(--ink);opacity:0;bottom:.08em;left:0}.title .quill svg{transform-origin:10% 90%;width:100%;height:100%;display:block}.title .spark{width:.26em;height:.26em;color:var(--spark);top:-.02em;right:0}.lede{max-width:30ch;color:var(--pen);text-wrap:pretty;margin-top:34px;font-size:clamp(1.25rem,2.2vw,1.625rem);line-height:1.4}.lede strong{font-weight:640}.acts{flex-wrap:wrap;align-items:center;gap:14px 20px;margin-top:34px;display:flex}.facts{color:var(--ink-muted);font-size:.875rem;font-stretch:86%}.note{color:var(--pen);transform-origin:0 0;max-width:24ch;font-size:.9375rem;font-stretch:92%;line-height:1.45;transform:rotate(-1.5deg)}.note svg{margin:0 0 6px -6px;display:block;overflow:visible}.note path{fill:none;stroke:currentColor;stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:round}.module{border:1px solid var(--rule);background:var(--paper-raise);margin-top:26px}.mhead{background:var(--paper-sunk);border-bottom:1px solid var(--rule);height:36px;color:var(--ink-muted);align-items:center;gap:10px;padding:0 14px;display:flex}.mhead b{color:var(--ink);font-weight:500}.mhead .right{flex:none;align-items:center;gap:10px;margin-left:auto;display:flex}.mhead>.mono{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.index{font-family:var(--font-mono);margin:0;padding:10px 0;font-size:.8125rem;list-style:none}.index li{align-items:baseline;gap:.6em;padding:3px 14px;line-height:1.75;display:flex}.index h3{font:600 .8125rem var(--font-mono);color:var(--ink);margin:0 0 4px;padding:6px 14px 4px}.tick{font:inherit;color:var(--ink-faint);cursor:pointer;background:0 0;border:0;border-radius:2px;flex:none;margin:0 -2px;padding:0 2px}.tick:hover{background:var(--pen-soft);color:var(--pen)}.tick[aria-pressed=true]{color:var(--pass)}.index .t{color:var(--pen)}.index .m{color:var(--ink-faint)}.index li.done .t{color:var(--ink-muted);text-decoration:line-through;-webkit-text-decoration-color:var(--rule-strong);text-decoration-color:var(--rule-strong)}.index .x{white-space:pre;display:inline-block}.index .x.pop{animation:pop .42s var(--ease-out)}@keyframes pop{0%{transform:scale(1)}40%{transform:scale(1.35)}to{transform:scale(1)}}.index .keep{color:var(--ink-faint);font-style:normal}.desk{--split:52%;border:1px solid var(--rule);background:var(--paper);grid-template-rows:30px 1fr;height:300px;margin-top:26px;display:grid;overflow:hidden}.desk .mini-band{background:var(--cloth);color:var(--cloth-ink);white-space:nowrap;align-items:center;gap:10px;padding:0 12px;font-size:.75rem;display:flex;overflow:hidden}.desk .mini-band .d{color:var(--cloth-muted);font-stretch:80%}.desk .split{grid-template-columns:var(--split) 1fr;min-height:0;display:grid;position:relative}.desk .src{background:var(--site-ground);color:#262626;padding:18px 22px;overflow:hidden}.desk .src .h{font:600 1rem/1.25 Georgia,Times New Roman,serif}.desk .src .eq{text-align:center;white-space:nowrap;margin:12px 0;font:italic .95rem Georgia,serif}.desk .src p{margin-top:8px;font:.8125rem/1.55 Georgia,Times New Roman,serif}.desk .notes .nl{color:var(--pen);margin-top:3px;font-size:.78rem;line-height:1.45}.desk .notes{grid-template-columns:3.4rem 1fr;align-content:start;min-width:0;padding:14px 18px 0 0;display:grid;overflow:hidden}.desk .notes .label{color:var(--ink-faint);padding:3px 0 0 12px}.desk .notes .eh{color:var(--pen);white-space:nowrap;text-overflow:ellipsis;font-size:.875rem;font-weight:650;overflow:hidden}.desk .notes .ent{min-width:0;margin-bottom:14px}.splitter{top:0;bottom:0;left:var(--split);cursor:col-resize;touch-action:none;background:0 0;border:0;width:16px;padding:0;position:absolute;transform:translate(-8px)}.splitter:before{content:"";background:var(--rule);width:1px;transition:background-color .16s,width .16s,left .16s;position:absolute;top:0;bottom:0;left:7.5px}.splitter:after{content:"";background:var(--paper-raise);border:1px solid var(--rule-strong);border-radius:3px;width:8px;height:28px;margin-top:-14px;position:absolute;top:50%;left:4px}.splitter:hover:before,.splitter.dragging:before{background:var(--rule-strong)}.splitter:focus-visible{outline-offset:-2px}.code{font:.8125rem/1.7 var(--font-mono);color:var(--ink);tab-size:4;margin:0;padding:14px 16px;overflow-x:auto}.code .kw{color:var(--pen);font-weight:600}.code .num{color:var(--pass)}.code .cm{color:var(--ink-faint)}.code .fix{border-radius:2px;transition:background-color .3s;position:relative}.code .fix.bad{background:color-mix(in oklab, var(--correction) 12%, transparent);-webkit-text-decoration:underline wavy color-mix(in oklab, var(--correction) 70%, transparent);text-decoration:underline wavy color-mix(in oklab, var(--correction) 70%, transparent);text-underline-offset:4px;text-decoration-thickness:1px}.code .fix.writing{background:var(--pen-soft);color:var(--pen)}.code .fix.writing:after{content:"";vertical-align:-.2em;background:var(--pen);width:1.5px;height:1.1em;margin-left:1px;animation:.9s step-end infinite blink;display:inline-block}.code .fix.fixed{color:var(--pen);font-weight:600}@keyframes blink{50%{opacity:0}}.cast-btn{height:26px;padding:0 10px;font-size:.8125rem}.cast-btn kbd{font:.6875rem var(--font-mono);opacity:.75}.cast-btn:disabled{cursor:progress;opacity:.75}.log{border-top:1px solid var(--rule);background:var(--paper);min-height:52px}.log .empty{color:var(--ink-faint);padding:16px 14px;font-size:.8125rem}.runrow{border-bottom:1px solid color-mix(in oklab, var(--rule) 60%, transparent);padding:10px 14px 12px}.runrow:last-child{border-bottom:0}.runrow .top{grid-template-columns:2.5rem minmax(0,1fr) auto 3.5rem;align-items:center;gap:10px;display:grid}.runrow .top .label{color:var(--ink-faint)}.runrow .meta{color:var(--ink-muted);white-space:nowrap;text-overflow:ellipsis;justify-self:start;max-width:100%;position:relative;overflow:hidden}.runrow .meta:after{content:"";background:var(--correction);transform-origin:0;height:1.5px;transition:transform .42s var(--ease-out);position:absolute;top:52%;left:0;right:0;transform:scaleX(0)}.runrow.failed .meta{color:var(--ink-faint)}.runrow.failed .meta:after{transform:scaleX(1)}.runrow .dur{text-align:right;color:var(--ink-faint)}.runrow .bar{background:var(--paper-sunk);height:3px;margin:8px 0 0 calc(2.5rem + 10px);position:relative;overflow:hidden}.runrow .bar i{background:var(--pen);width:0;transition:width .38s var(--ease-out);position:absolute;inset:0 auto 0 0}.runrow.running .bar i{animation:1.2s ease-in-out infinite pulse}.runrow.failed .bar i{background:var(--correction)}@keyframes pulse{50%{opacity:.45}}.runrow .out{font:.75rem/1.6 var(--font-mono);color:var(--ink);white-space:pre-wrap;margin:8px 0 0 calc(2.5rem + 10px)}.runrow .out.err{color:var(--correction)}.stamp-wrap{display:inline-flex;position:relative}.burst{width:12px;height:12px;color:var(--spark);pointer-events:none;animation:burst .76s var(--ease-out) forwards;margin:-6px 0 0 -6px;position:absolute;top:50%;left:50%}@keyframes burst{0%{opacity:1;transform:translate(0)scale(0)rotate(0)}60%{opacity:1}to{transform:translate(var(--dx), var(--dy)) scale(1) rotate(90deg);opacity:0}}.langs{flex-wrap:wrap;gap:6px;margin-top:18px;display:flex}.langs>span{border:1px solid var(--rule-strong);background:var(--paper-raise);height:26px;color:var(--ink);border-radius:3px;align-items:center;padding:0 8px;font-size:.8125rem;display:inline-flex}.langs span .mono{color:var(--ink-faint);margin-left:6px;font-size:.6875rem}.tree{font:.8125rem/1.75 var(--font-mono);color:var(--ink);margin:0;padding:14px 16px;overflow-x:auto}.tree .c{color:var(--ink-faint)}.tree .d{color:var(--pen)}.shell{font:.8125rem/1.75 var(--font-mono);color:var(--ink);border-top:1px solid var(--rule);background:var(--paper);margin:0;padding:12px 16px;overflow-x:auto}.shell .p{color:var(--ink-faint);-webkit-user-select:none;user-select:none}.close{padding:72px 0 96px}.close h2{letter-spacing:-.035em;font-size:clamp(2.5rem,6vw,4.5rem);font-weight:800;font-stretch:108%;line-height:1}.close .acts{margin-top:28px}footer{border-top:1px solid var(--rule)}footer .in{max-width:1200px;padding:22px var(--gutter) 28px;color:var(--ink-muted);flex-wrap:wrap;align-items:center;gap:10px 24px;margin:0 auto;font-size:.8125rem;display:flex}footer .in .right{gap:20px;margin-left:auto;display:flex}footer a{color:var(--ink)}@media (prefers-reduced-motion:no-preference){:root:not(.js) .title .ink,.js .hero.seen .title .ink{animation:1.5s cubic-bezier(.45,.05,.3,1) .25s both write}:root:not(.js) .title .quill,.js .hero.seen .title .quill{animation:quill-move 1.5s cubic-bezier(.45, .05, .3, 1) .25s both, quill-lift .6s var(--ease-out) 1.75s forwards}:root:not(.js) .title .quill svg,.js .hero.seen .title .quill svg{animation:.19s ease-in-out .25s 8 alternate scribble}:root:not(.js) .title .spark,.js .hero.seen .title .spark{animation:spark-in .7s var(--ease-out) 1.75s both, twinkle 4.8s ease-in-out 2.6s infinite}.js .hero:not(.seen) .title .ink{clip-path:inset(-20% 100% -20% 0)}.js .hero:not(.seen) .title .spark{transform:scale(0)}.desk.settling .split{transition:grid-template-columns 1.1s var(--ease-out)}.desk.settling .splitter{transition:left 1.1s var(--ease-out)}.js .entry:not(.seen):before{transform:scaleX(0)}.js .close h2{clip-path:inset(-20% -5% -20% 0);transition:clip-path 1.3s cubic-bezier(.45,.05,.3,1) .2s}.js .close:not(.seen) h2{clip-path:inset(-20% 100% -20% 0)}.js .note path{stroke-dasharray:var(--len,200);stroke-dashoffset:0;transition:stroke-dashoffset .9s var(--ease-out) .25s}.js .entry:not(.seen) .note path{stroke-dashoffset:var(--len,200)}}@keyframes write{0%{clip-path:inset(-20% 100% -20% 0)}to{clip-path:inset(-20% -5% -20% 0)}}@keyframes quill-move{0%{opacity:1;left:0}to{opacity:1;left:calc(100% - .55em)}}@keyframes quill-lift{0%{opacity:1;translate:0;rotate:0deg}to{opacity:0;translate:.25em -.45em;rotate:14deg}}@keyframes scribble{0%{transform:translateY(.03em)rotate(-5deg)}to{transform:translateY(-.07em)rotate(4deg)}}@keyframes spark-in{0%{transform:scale(0)rotate(-90deg)}70%{transform:scale(1.25)rotate(8deg)}to{transform:scale(1)rotate(0)}}@keyframes twinkle{0%,82%,to{transform:scale(1)rotate(0)}88%{transform:scale(.6)rotate(45deg)}94%{transform:scale(1.15)rotate(90deg)}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.runrow .bar i,.runrow .meta:after,.entry:before{transition:none}.burst{display:none}.btn .twinkle{transition:none}.index .x.pop{animation:none}}@media (max-width:1040px){.entry{grid-template-columns:var(--margin) minmax(0, 1fr)}.entry>.aside{grid-column:2;padding:28px 0 0}.hero>.body{grid-column:2}.hero>.aside{grid-area:2/2;padding:36px 0 0}}@media (max-width:760px){:root{--gutter:16px}.band{padding:0 12px}.band nav .sec,.band nav .sep,.filebar .crumb{display:none}.entry{grid-template-columns:minmax(0,1fr);padding:36px 0 56px}.page:before{display:none}.entry>.num{padding:0;position:absolute;top:46px;right:0}.entry>.body h2{padding-right:3rem}.entry>.aside{grid-column:1}.hero{padding:48px 0 56px}.hero>.num{top:48px}.hero>.body,.hero>.aside{grid-area:auto/1}h2{font-size:1.5rem}.lede{margin-top:24px}.desk{height:260px}.desk .src{padding:14px}.desk .notes .label{padding-left:8px}.desk .notes{grid-template-columns:2.8rem 1fr;padding-right:10px}.runrow .top{grid-template-columns:2.2rem minmax(0,1fr) auto}.runrow .dur{display:none}.runrow .bar,.runrow .out{margin-left:calc(2.2rem + 10px)}.mhead .hide-sm,.mhead>.label{display:none}footer .in .right{margin-left:0}}
