:root{--bg:#edf1f7;--panel:#fff;--panel2:#f6f8fc;--ink:#18202f;--muted:#5b6679;--line:#d8dfea;--line2:#9fadc2;--accent:#2f6fb2;--accentInk:#fff;--nodefill:#f8fafd;--compfill:#fff;--shadow:0 1px 2px #141e320f,0 8px 24px #141e3212;--pkq:#2f6fb2;--pkw:#d98e1b;--pka:#2e9e68;--pkd:#8b5fd6;--p1:#4a7fe0;--p2:#1e9c93;--p3:#8b63d6;--p4:#d08a16;--p5:#d95a4e;--p6:#2e9e68;--p7:#b5539f;--phase:var(--p1)}@media (prefers-color-scheme:dark){:root{--bg:#0b111e;--panel:#121a2b;--panel2:#0f1626;--ink:#eaf0f9;--muted:#a2afc8;--line:#243149;--line2:#465a85;--accent:#63a7ea;--accentInk:#0b111e;--nodefill:#0f1727;--compfill:#182337;--shadow:0 1px 2px #0006,0 10px 30px #00000059;--pkq:#63a7ea;--pkw:#edb33d;--pka:#4cc48a;--pkd:#ab86ee;--p1:#6c9beb;--p2:#35bcb2;--p3:#a985ec;--p4:#e8aa2e;--p5:#ee7a6e;--p6:#4cc48a;--p7:#d272be}}:root[data-theme=dark]{--bg:#0b111e;--panel:#121a2b;--panel2:#0f1626;--ink:#eaf0f9;--muted:#a2afc8;--line:#243149;--line2:#465a85;--accent:#63a7ea;--accentInk:#0b111e;--nodefill:#0f1727;--compfill:#182337;--shadow:0 1px 2px #0006,0 10px 30px #00000059;--pkq:#63a7ea;--pkw:#edb33d;--pka:#4cc48a;--pkd:#ab86ee;--p1:#6c9beb;--p2:#35bcb2;--p3:#a985ec;--p4:#e8aa2e;--p5:#ee7a6e;--p6:#4cc48a;--p7:#d272be}:root[data-theme=light]{--bg:#edf1f7;--panel:#fff;--panel2:#f6f8fc;--ink:#18202f;--muted:#5b6679;--line:#d8dfea;--line2:#9fadc2;--accent:#2f6fb2;--accentInk:#fff;--nodefill:#f8fafd;--compfill:#fff;--shadow:0 1px 2px #141e320f,0 8px 24px #141e3212;--pkq:#2f6fb2;--pkw:#d98e1b;--pka:#2e9e68;--pkd:#8b5fd6;--p1:#4a7fe0;--p2:#1e9c93;--p3:#8b63d6;--p4:#d08a16;--p5:#d95a4e;--p6:#2e9e68;--p7:#b5539f}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;font:15px/1.62 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}.mono{font-family:ui-monospace,JetBrains Mono,SF Mono,Menlo,Consolas,monospace}.wrap{max-width:1460px;margin:0 auto;padding:20px 22px 48px}.topnav{z-index:40;background:color-mix(in srgb, var(--bg) 82%, transparent);-webkit-backdrop-filter:blur(8px);border-bottom:1px solid var(--line);position:sticky;top:0}.topnav-in{align-items:center;gap:14px;max-width:1460px;margin:0 auto;padding:10px 22px;display:flex}.brand{color:var(--ink);letter-spacing:-.01em;font-size:15px;font-weight:700;text-decoration:none}.brand .dollar{color:var(--accent)}.brand-tag{color:var(--muted);margin-left:8px;font-size:11px;font-weight:500}.brand:hover .dollar{opacity:.7}.topnav-right{align-items:center;gap:10px;margin-left:auto;display:flex}.topnav-link{color:var(--muted);border:1px solid var(--line);border-radius:9px;padding:7px 12px;font-size:12.5px;font-weight:700;text-decoration:none;transition:all .15s}.topnav-link:hover{border-color:var(--accent);color:var(--ink)}.topnav-link:focus-visible,.brand:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.player-hd{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:12px;display:flex}.player-hd .tabs{flex:1;min-width:0;margin:0}@media (max-width:700px){.brand-tag{display:none}}header{flex-wrap:wrap;align-items:flex-end;gap:14px;margin-bottom:14px;display:flex}.hd-title h1{letter-spacing:-.02em;text-wrap:balance;margin:0;font-family:ui-monospace,JetBrains Mono,SF Mono,Menlo,Consolas,monospace;font-size:21px;font-weight:700}.hd-title h1 .dollar{color:var(--accent)}.hd-title p{color:var(--muted);margin:4px 0 0;font-size:13px}.hd-title p b{color:var(--ink);font-weight:600}.controls{align-items:center;gap:8px;margin-left:auto;display:flex}.btn{color:var(--ink);background:var(--panel);border:1px solid var(--line2);cursor:pointer;border-radius:9px;padding:8px 14px;font-family:inherit;font-size:14px;font-weight:600;transition:border-color .15s,background .15s}.btn:hover{border-color:var(--accent)}.btn:focus-visible,.chip:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.btn.primary{background:var(--accent);color:var(--accentInk);border-color:#0000}.btn.primary[aria-pressed=true]{background:var(--p5)}.counter{text-align:center;font-variant-numeric:tabular-nums;min-width:74px;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:14px;font-weight:600}.counter small{color:var(--muted);font-weight:500}.tabs{flex-wrap:wrap;gap:8px;margin:2px 0 12px;display:flex}.tab{letter-spacing:.01em;color:var(--muted);background:var(--panel);border:1px solid var(--line);cursor:pointer;border-radius:10px;padding:8px 15px;font-family:ui-monospace,JetBrains Mono,Menlo,Consolas,monospace;font-size:13px;font-weight:700;transition:all .15s}.tab:hover{border-color:var(--accent);color:var(--ink)}.tab.cur{background:var(--accent);color:var(--accentInk);border-color:#0000}.tab:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.sql{background:var(--panel2);border:1px solid var(--line);white-space:nowrap;color:var(--muted);border-radius:10px;margin-bottom:12px;padding:9px 14px;font-family:ui-monospace,JetBrains Mono,SF Mono,Menlo,Consolas,monospace;font-size:12.5px;overflow-x:auto}.sql .kw{color:var(--accent);font-weight:700}.sql .lit{color:var(--p6)}.sql .traced{color:var(--ink)}.phases{flex-wrap:wrap;gap:6px;margin-bottom:8px;display:flex}.chip{letter-spacing:.02em;border:1px solid var(--line);background:var(--panel);color:var(--muted);cursor:pointer;border-radius:999px;align-items:center;gap:7px;padding:5px 11px;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:11.5px;font-weight:600;transition:all .15s;display:flex}.chip .dot{background:var(--c);border-radius:50%;width:8px;height:8px}.chip:hover{border-color:var(--c);color:var(--ink)}.chip.cur{background:var(--c);border-color:var(--c);color:#fff}:root[data-theme=dark] .chip.cur,.chip.cur{color:#fff}.chip.cur .dot{background:#fff}.progress{gap:3px;height:5px;margin-bottom:16px;display:flex}.progress .seg{background:var(--line);border-radius:3px;flex:1;overflow:hidden}.progress .seg i{background:var(--c);width:0;height:100%;transition:width .3s;display:block}main{grid-template-columns:minmax(0,1.3fr) minmax(360px,440px);align-items:start;gap:18px;display:grid}.stage{background:var(--panel);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:16px;padding:10px;overflow-x:auto}.stage svg{width:100%;min-width:720px;height:auto;display:block}.legend{color:var(--muted);flex-wrap:wrap;gap:14px;padding:8px 10px 4px;font-size:12px;display:flex}.legend span{align-items:center;gap:6px;display:flex}.legend i{border-radius:50%;width:9px;height:9px}.panel{background:var(--panel);border:1px solid var(--line);box-shadow:var(--shadow);border-top:3px solid var(--phase);border-radius:16px;padding:22px 24px;position:sticky;top:62px}.eyebrow{letter-spacing:.14em;text-transform:uppercase;color:var(--phase);margin:0 0 10px;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:11px;font-weight:700}.step-head{align-items:baseline;gap:12px;display:flex}.step-num{color:var(--phase);font-variant-numeric:tabular-nums;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:38px;font-weight:800;line-height:1}.step-title{letter-spacing:-.01em;text-wrap:balance;margin:0;font-size:19px;font-weight:700;line-height:1.3}.fnchip{color:var(--accent);background:var(--panel2);border:1px solid var(--line);border-radius:7px;margin:12px 0 2px;padding:4px 9px;font-family:ui-monospace,JetBrains Mono,Menlo,Consolas,monospace;font-size:12.5px;font-weight:600;display:inline-block}.srcfile{color:var(--muted);margin:4px 0 0;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:11px}.reflink{margin:7px 0 0;font-size:12.5px}.reflink a{color:var(--accent);border-bottom:1px dashed var(--accent);text-decoration:none}.reflink a:hover{border-bottom-style:solid}.body{color:var(--ink);font-size:14.5px}.body p{max-width:62ch;margin:12px 0 0}.body code,.notes code{background:var(--panel2);border:1px solid var(--line);border-radius:5px;padding:1px 5px;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.92em}.notes{border-left:3px solid var(--phase);background:var(--panel2);border-radius:0 10px 10px 0;margin-top:18px;padding:12px 16px}.notes h3{letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin:0 0 8px;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:10.5px;font-weight:700}.notes ul{margin:0;padding-left:16px}.notes li{color:var(--ink);margin:5px 0;font-size:13px}.panel-nav{border-top:1px dashed var(--line);justify-content:space-between;margin-top:18px;padding-top:14px;display:flex}.panel-nav .hint{color:var(--muted);align-self:center;font-size:12px}.panel-nav .hint kbd{border:1px solid var(--line2);background:var(--panel2);border-bottom-width:2px;border-radius:5px;padding:1px 6px;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:11px}svg text{fill:var(--ink);font-family:ui-monospace,JetBrains Mono,Menlo,Consolas,monospace}.nodebox{fill:var(--nodefill);stroke:var(--line2);stroke-width:1.4px;rx:14}.nodelabel{letter-spacing:.12em;fill:var(--muted);font-size:12px;font-weight:700}.nodelabel .em{fill:var(--accent)}.comp .box{fill:var(--compfill);stroke:var(--line2);stroke-width:1.5px;transition:stroke .3s,fill .3s}.comp text{transition:opacity .3s}.comp .t1{font-size:12px;font-weight:700}.comp .t2{fill:var(--muted);font-size:10.5px}.comp{cursor:help;transition:opacity .35s}svg.stepping .comp{opacity:.62}svg.stepping .comp.on{opacity:1}svg.stepping .comp.on .box{stroke:var(--phase);stroke-width:2.4px;fill:color-mix(in srgb, var(--phase) 12%, var(--compfill))}.shm{fill:none;stroke:var(--line2);stroke-width:1.2px;stroke-dasharray:5 4}.shmlabel{letter-spacing:.12em;fill:var(--muted);font-size:10px;font-weight:700}.comp.st-dead .box{fill:var(--panel2);stroke:var(--muted);stroke-dasharray:4 3}.comp.st-dead text{opacity:.45}.comp.st-dead .cross{display:inline}.cross{stroke:var(--p5);stroke-width:2.5px;opacity:.85;stroke-linecap:round;display:none}.comp.st-newv .box{stroke:var(--p6);stroke-width:2.4px}.comp.st-frozen .box{stroke:#5fa8dc;stroke-width:2.2px;fill:color-mix(in srgb,#5fa8dc 12%,var(--compfill))}.comp.st-gone .box{stroke:var(--line);stroke-dasharray:2 4;fill:none}.comp.st-gone text{opacity:.25}.cell{fill:var(--panel2);stroke:var(--line2);stroke-width:1.1px;transition:fill .3s,stroke .3s}.cell.lit{stroke:var(--phase);stroke-width:2.2px;fill:var(--compfill)}.cell.dirty{fill:var(--pkw);fill-opacity:.6;stroke:var(--pkw)}#edges{pointer-events:none}.edge{fill:none;stroke:var(--line2);stroke-width:2px;transition:stroke .3s,opacity .35s}.edge.dash{stroke-dasharray:5 5}svg.stepping .edge{opacity:.45}svg.stepping .edge.hot{opacity:1;stroke:var(--phase);stroke-width:3px;stroke-dasharray:8 6;animation:.9s linear infinite flow}@keyframes flow{to{stroke-dashoffset:-14px}}.ov{display:none}svg.fx-crash #ovCrash,svg.fx-promoted #ovPromoted,svg.fx-tl2 #ovTl{display:inline}.edge.xtra{visibility:hidden}.edge.xtra.hot{visibility:visible}.pk{stroke:var(--panel);stroke-width:2px}.pk.q{fill:var(--pkq)}.pk.w{fill:var(--pkw)}.pk.a{fill:var(--pka)}.pk.d{fill:var(--pkd)}@keyframes glowPulse{0%,to{filter:drop-shadow(0 0 2px color-mix(in srgb, var(--phase) 60%, transparent))}50%{filter:drop-shadow(0 0 9px color-mix(in srgb, var(--phase) 85%, transparent))}}svg.stepping .comp.on .box{animation:2.2s ease-in-out infinite glowPulse}@media (prefers-reduced-motion:reduce){svg.stepping .comp.on .box{filter:drop-shadow(0 0 5px color-mix(in srgb, var(--phase) 70%, transparent));animation:none}svg.stepping .edge.hot{animation:none}*{transition:none!important}}.stage{position:relative}.tip{z-index:30;pointer-events:none;background:var(--panel);border:1px solid var(--line2);border-left:3px solid var(--accent);max-width:290px;box-shadow:var(--shadow);color:var(--ink);opacity:0;border-radius:10px;padding:10px 14px;font-size:12.5px;line-height:1.55;transition:opacity .12s;position:absolute}.tip.show{opacity:1}.tip h4{color:var(--accent);margin:0 0 4px;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:12px;font-weight:700}.gloss{margin-top:30px}.gloss>h2{letter-spacing:-.01em;margin:0 0 4px;font-family:ui-monospace,JetBrains Mono,Menlo,Consolas,monospace;font-size:18px;font-weight:700}.gloss>h2 .cm{color:var(--accent)}.gloss-sub{color:var(--muted);max-width:75ch;margin:0 0 16px;font-size:13.5px}.grp{margin-bottom:18px}.grp h3{letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin:0 0 8px;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:11px;font-weight:700}.gcards{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:10px;display:grid}.gcard{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:12px 15px}.gcard b{color:var(--accent);font-family:ui-monospace,Menlo,Consolas,monospace;font-size:12.5px}.gcard p{color:var(--ink);margin:5px 0 0;font-size:13px;line-height:1.55}.gcard a{color:var(--accent);text-decoration:none}.gcard a:hover{text-decoration:underline}@media (max-width:980px){main{grid-template-columns:1fr}.panel{position:static}.controls{margin-left:0}}.home section{margin-top:26px}.home-h2{letter-spacing:-.01em;margin:0 0 12px;font-family:ui-monospace,JetBrains Mono,Menlo,Consolas,monospace;font-size:17px;font-weight:700}.home-h2 .cm{color:var(--accent)}.home-p{max-width:75ch;color:var(--ink);margin:0;font-size:14.5px}.home-p kbd{border:1px solid var(--line2);background:var(--panel2);border-bottom-width:2px;border-radius:5px;padding:1px 6px;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:11px}.hero-cta{flex-wrap:wrap;align-items:center;gap:14px;margin:18px 0 0;display:flex}.hero-cta .btn{padding:11px 20px;font-size:15px;text-decoration:none;display:inline-block}.hero-alt{color:var(--muted);font-size:12px}a.jcard{color:inherit;border-left:3px solid var(--accent);flex-direction:column;text-decoration:none;transition:border-color .15s,transform .15s,box-shadow .15s;display:flex}a.jcard:hover{border-color:var(--accent);box-shadow:var(--shadow);transform:translateY(-2px)}a.jcard b{font-size:14px}.jgo{color:var(--accent);align-self:flex-start;margin-top:auto;padding-top:10px;font-size:12px;font-weight:700;transition:transform .15s}a.jcard:hover .jgo{transform:translate(4px)}.jmeta{color:var(--muted);margin:4px 0 0;font-size:11.5px}.gcard.soon{opacity:.75;border-style:dashed}.soon-tag{color:var(--muted);border:1px solid var(--line);vertical-align:2px;border-radius:999px;padding:2px 8px;font-size:10px;font-weight:600}.tabs{scrollbar-width:thin;flex-wrap:nowrap;overflow-x:auto}@media (min-width:700px){.tabs{flex-wrap:wrap;overflow:visible}}a.tab{text-decoration:none;display:inline-block}.themeBtn{color:var(--muted);background:var(--panel);border:1px solid var(--line);cursor:pointer;border-radius:9px;padding:8px 12px;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:13px;font-weight:700;transition:all .15s}.themeBtn:hover{border-color:var(--accent);color:var(--ink)}.themeBtn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.stage svg[data-hidden=true]{display:none}
