:root{--bg: #f6f5f1;--panel: #ffffff;--ink: #16181d;--muted: #61656f;--rule: #e2e0d9;--soft: #f1efe9;--accent: #2a78d6;--accent-2: #eb6834;--good: #0a8a0a;--bad: #d03b3b;--entry-a: #eef3fb;--entry-b: #f7f1e9;--sim: #e9f6ee;--mono: ui-monospace, "SF Mono", Menlo, Consolas, monospace;--sans: -apple-system, BlinkMacSystemFont, "Inter", "Segoe UI", system-ui, sans-serif;color-scheme:light}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bg: #111317;--panel: #191c22;--ink: #eceef2;--muted: #9aa0ab;--rule: #2a2e37;--soft: #20242c;--accent: #3987e5;--accent-2: #d95926;--good: #3cbf5c;--bad: #e66767;--entry-a: #24324b;--entry-b: #3a2f24;--sim: #1f3528;color-scheme:dark}}:root[data-theme=dark]{--bg: #111317;--panel: #191c22;--ink: #eceef2;--muted: #9aa0ab;--rule: #2a2e37;--soft: #20242c;--accent: #3987e5;--accent-2: #d95926;--good: #3cbf5c;--bad: #e66767;--entry-a: #24324b;--entry-b: #3a2f24;--sim: #1f3528;color-scheme:dark}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.55 var(--sans)}code{font-family:var(--mono);font-size:0.92em}.wrap{max-width:1180px;margin:0 auto;padding:0 20px}.hero{padding:44px 0 26px}.hero .wrap{position:relative}.kicker{margin:0 0 6px;font:600 12px var(--mono);letter-spacing:0.06em;color:var(--accent)}h1{margin:0;font-size:clamp(30px,5vw,46px);line-height:1.08;letter-spacing:-0.02em}.lede{max-width:760px;margin:14px 0 0;font-size:17px;color:var(--muted)}.lede b{color:var(--ink)}.theme{position:absolute;top:0;right:20px;width:36px;height:36px;border-radius:50%;border:1px solid var(--rule);background:var(--panel);color:var(--ink);font-size:16px;cursor:pointer}.panel{background:var(--panel);border:1px solid var(--rule);border-radius:16px;padding:20px 22px;margin:0 0 16px}.label{font-size:12px;font-weight:600;color:var(--muted);letter-spacing:0.02em}.row{display:flex;flex-wrap:wrap;align-items:center;gap:10px 12px;margin:10px 0}.chips{display:flex;flex-wrap:wrap;gap:6px}.chip{font:inherit;font-size:13px;padding:5px 12px;border-radius:999px;border:1px solid var(--rule);background:var(--soft);color:var(--ink);cursor:pointer}.chip[aria-pressed=true]{background:var(--ink);color:var(--panel);border-color:var(--ink)}.chip.own{border-style:dashed}#input{font:600 16px var(--mono);padding:7px 12px;border-radius:10px;border:1px solid var(--rule);background:var(--bg);color:var(--ink);min-width:0;flex:0 1 260px}.hint{font-size:13px;color:var(--muted)}.editor{margin:6px 0 4px}.editor .label{display:block;margin-bottom:6px;font-weight:500}textarea{width:100%;font:14px/1.5 var(--mono);padding:10px 12px;border-radius:10px;border:1px solid var(--rule);background:var(--bg);color:var(--ink);resize:vertical}.error{min-height:1.2em;margin:4px 0 0;color:var(--bad);font-size:13px}.buttons{margin-top:14px}.btn{font:inherit;font-size:13.5px;padding:7px 13px;border-radius:10px;border:1px solid var(--rule);background:var(--soft);color:var(--ink);cursor:pointer}.btn:hover{border-color:var(--muted)}.btn:disabled{opacity:0.45;cursor:default}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600;min-width:92px}.btn.ghost{background:none}.speed{margin-left:auto;display:inline-flex;align-items:center;gap:8px}select{font:inherit;font-size:13px;padding:6px 8px;border-radius:8px;border:1px solid var(--rule);background:var(--bg);color:var(--ink)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.phead{display:grid;grid-template-columns:auto 1fr auto;gap:14px;align-items:start;margin-bottom:16px}.num{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;font-weight:700;font-size:14px;background:var(--soft);border:1px solid var(--rule)}h2{margin:2px 0 2px;font-size:19px;letter-spacing:-0.01em}.sub{margin:0;color:var(--muted);font-size:14px}.sub b{color:var(--ink);font-weight:600}.stat{text-align:right}.stat span{display:block;font-size:11.5px;color:var(--muted)}.stat b{font-size:26px;font-weight:650;letter-spacing:-0.01em}.simgrid{display:grid;grid-template-columns:1.4fr 1fr;gap:22px}.state-line{font-size:14px;color:var(--muted);margin-bottom:8px}.state-line b{font:700 16px var(--mono);color:var(--ink);padding:2px 8px;border-radius:6px;background:var(--soft)}.tape{display:flex;flex-wrap:wrap;gap:4px;padding-top:18px}.cell{position:relative;width:42px;height:46px;display:grid;place-items:center;font:700 20px var(--mono);border:1.5px solid var(--rule);border-radius:8px;background:var(--bg);transition:background 0.2s}.cell.blank{color:var(--muted);font-weight:400}.cell.head{border-color:var(--accent-2);box-shadow:0 0 0 2px var(--accent-2)}.cell.head::before{content:"\25bc";position:absolute;top:-19px;font-size:12px;color:var(--accent-2)}.verdict{margin-top:16px;min-height:44px}.verdict .box{display:inline-flex;flex-wrap:wrap;align-items:center;gap:6px 12px;padding:10px 14px;border-radius:12px;border:1px solid var(--rule);background:var(--soft);font-size:14px}.verdict .ok{color:var(--good);font-weight:700}.verdict .no{color:var(--bad);font-weight:700}.rules{display:grid;gap:3px;margin-top:6px;max-height:260px;overflow:auto}.rule{font:13.5px var(--mono);padding:4px 10px;border-radius:7px;border:1px solid transparent}.rule.live{border-color:var(--accent-2);background:color-mix(in srgb,var(--accent-2) 12%,transparent)}.rule.cur{background:var(--soft)}.utm{display:flex;flex-wrap:wrap;gap:3px 2px;padding-top:22px;font:600 14px var(--mono)}.u{position:relative;min-width:21px;height:28px;padding:0 3px;display:grid;place-items:center;border-radius:4px}.u.ea{background:var(--entry-a)}.u.eb{background:var(--entry-b)}.u.star{background:var(--accent);color:#fff}.u.sel{box-shadow:inset 0 -3px 0 var(--accent-2)}.u.dollar{background:var(--ink);color:var(--panel)}.u.sim{background:var(--sim)}.u.blank{color:var(--muted);font-weight:400}.u.head{outline:2px solid var(--ink);outline-offset:1px;z-index:1}.u.head .tag{position:absolute;bottom:31px;left:50%;transform:translateX(-50%);white-space:nowrap;font:600 10.5px var(--mono);padding:1px 5px;border-radius:4px;background:var(--ink);color:var(--panel)}.legend{display:flex;flex-wrap:wrap;gap:6px 16px;margin-top:14px;font-size:12.5px;color:var(--muted)}.k{display:inline-block;width:12px;height:12px;border-radius:3px;vertical-align:-2px;margin-right:5px}.k-star{background:var(--accent)}.k-entry{background:var(--entry-a);border:1px solid var(--rule)}.k-sel{box-shadow:inset 0 -3px 0 var(--accent-2);background:var(--entry-b)}.k-sim{background:var(--sim)}.k-head{outline:2px solid var(--ink)}.netgrid{display:grid;grid-template-columns:1fr 1fr;gap:26px}.window{display:flex;gap:8px;margin:8px 0 18px}.wtok{flex:1;max-width:150px;text-align:center;border:1.5px solid var(--accent);border-radius:10px;padding:8px 6px}.wtok .pos{display:block;font-size:11px;color:var(--muted)}.wtok b{font:700 16px var(--mono)}.attn{display:grid;gap:10px;margin-top:8px}.ahead{display:grid;grid-template-columns:62px 1fr;gap:10px;align-items:center;font-size:12.5px;color:var(--muted)}.abars{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.abar{height:26px;border-radius:6px;background:var(--soft);position:relative;overflow:hidden}.abar i{position:absolute;left:0;top:0;bottom:0;background:var(--accent);opacity:0.85;border-radius:6px 4px 4px 6px}.abar span{position:relative;z-index:1;display:block;padding:0 8px;line-height:26px;font:600 12px var(--mono);color:var(--ink)}.preds{display:grid;gap:6px;margin-top:8px}.pred{display:grid;grid-template-columns:1fr 120px 52px;gap:10px;align-items:center;font:14px var(--mono)}.pred .pbar{height:8px;border-radius:4px;background:var(--soft);overflow:hidden}.pred .pbar i{display:block;height:100%;background:var(--accent);border-radius:4px}.pred .pp{text-align:right;color:var(--muted);font-size:12.5px}.pred.top{font-weight:700}.appended{margin-top:12px;font-size:13.5px;color:var(--muted)}.appended b{font-family:var(--mono);color:var(--ink);padding:2px 7px;border-radius:6px;border:1.5px solid var(--accent-2)}.checks{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:18px}.check{padding:9px 12px;border-radius:10px;border:1px solid var(--rule);background:var(--soft)}.check span{display:block;font-size:11.5px;color:var(--muted)}.check b{font-size:19px}.check.warn{border-color:var(--bad)}.check.warn b{color:var(--bad)}.explain .cols{display:grid;grid-template-columns:1fr 1fr;gap:28px}.explain p{margin:0 0 10px}.explain table{width:100%;border-collapse:collapse;font-size:14px;margin-top:6px}.explain th,.explain td{text-align:left;padding:7px 10px;border-bottom:1px solid var(--rule);vertical-align:top}.explain th{font-size:12px;color:var(--muted);font-weight:600}.foot{padding:6px 20px 40px;color:var(--muted);font-size:13px}@media(max-width:900px){.simgrid,.netgrid,.explain .cols{grid-template-columns:1fr}.speed{margin-left:0}}@media(max-width:560px){.wrap{padding:0 14px}.panel{padding:16px}.phead{grid-template-columns:auto 1fr}.phead .stat{grid-column:1 / -1;text-align:left}.cell{width:34px;height:40px;font-size:17px}.checks{grid-template-columns:1fr}.pred{grid-template-columns:1fr 70px 46px}}@media(prefers-reduced-motion:reduce){*{transition:none!important}}.kicker a{color:inherit;text-decoration:none}.kicker a:hover{text-decoration:underline}.nav-draw{display:inline-block;margin-top:16px;font-weight:600;color:var(--accent);text-decoration:none}.nav-draw:hover{text-decoration:underline}.anyrule{display:inline-flex;align-items:center;gap:8px;margin-left:6px}.anyrule input{width:84px;font:600 15px var(--mono);padding:5px 10px;border-radius:10px;border:1px solid var(--rule);background:var(--bg);color:var(--ink)}.drawgrid{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:24px;align-items:start}.canvaswrap{position:relative;display:flex;justify-content:center;padding-right:26px}canvas{display:block;border-radius:6px}.ticks{position:absolute;top:0;right:0;width:22px}.ticks span{position:absolute;left:0;display:flex;align-items:center;font-weight:700;line-height:1}.ticks .ok{color:var(--good)}.ticks .no{color:var(--bad)}.dstats{display:grid;grid-template-columns:1fr 1fr;gap:8px}.dstats>div{padding:9px 12px;border-radius:10px;border:1px solid var(--rule);background:var(--soft)}.dstats span{display:block;font-size:11.5px;color:var(--muted)}.dstats b{font-size:18px}.dstats .big,.dstats .wide{grid-column:1 / -1}.dstats .big b{font-size:30px;letter-spacing:-0.02em}.dstats .big em{display:block;font-style:normal;font-size:12.5px;color:var(--muted);min-height:1.2em}.dstats .warn{border-color:var(--bad)}.dstats .warn b{color:var(--bad)}.note{grid-column:1 / -1;margin:4px 0 0;font-size:13.5px;color:var(--muted)}.tower{margin:0 0 10px;padding-left:20px}.tower li{margin:0 0 6px}.enc{margin:0 0 12px;padding:10px 12px;border-radius:10px;background:var(--soft);border:1px solid var(--rule);font:12.5px/1.5 var(--mono);white-space:pre-wrap;word-break:break-all}.rules.small{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));max-height:none;margin:4px 0 12px}.rules.small .rule{font-size:12.5px;padding:2px 6px}@media(max-width:900px){.drawgrid{grid-template-columns:1fr}}.pagenav{display:flex;flex-wrap:wrap;gap:8px 18px;margin-top:16px}.pagenav a{font-weight:600;color:var(--accent);text-decoration:none}.pagenav a:hover{text-decoration:underline}.bbtop{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:6px 0 18px}.counter{padding:12px 14px;border-radius:12px;border:1px solid var(--rule);background:var(--soft)}.counter span{display:block;font-size:12px;color:var(--muted)}.counter b{display:block;font-size:40px;line-height:1.1;letter-spacing:-0.03em;font-variant-numeric:tabular-nums}.counter em{display:block;font-style:normal;font-size:12.5px;color:var(--muted);min-height:1.2em}.bbtape-wrap{overflow-x:auto;padding:26px 2px 4px}.bbtape{display:flex;gap:4px;width:max-content;margin:0 auto}.bbcell{position:relative;width:44px;height:44px;border-radius:8px;border:1px solid var(--rule);background:var(--bg);display:flex;align-items:center;justify-content:center;font:600 15px var(--mono);color:var(--muted);transition:background-color .12s}.bbcell.one{background:var(--ink);border-color:var(--ink)}.bbcell.head{box-shadow:0 0 0 3px var(--accent)}.bbcell .badge{position:absolute;top:-24px;left:50%;transform:translateX(-50%);padding:1px 7px;border-radius:999px;background:var(--accent);color:#fff;font:700 12px var(--mono)}.used{margin:10px 0 18px;text-align:center;font-size:15px;color:var(--muted);min-height:1.4em}.bbgrid{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:24px;align-items:start}.bbrules{border-collapse:separate;border-spacing:4px;margin:6px 0 10px;font:14px var(--mono)}.bbrules th{font:600 12px var(--sans);color:var(--muted);text-align:left;padding:2px 6px}.bbrules tbody th{font:700 15px var(--mono);color:var(--ink)}.bbrules td{min-width:78px;padding:6px 10px;border-radius:8px;background:var(--soft);border:1px solid var(--rule)}.bbrules td:empty{background:none;border-color:transparent}.bbrules tr.prelude td,.bbrules tr.prelude th{color:var(--muted)}.bbrules td.on{background:var(--accent);border-color:var(--accent);color:#fff}.checks2{display:grid;grid-template-columns:1fr 1fr;gap:8px}.checks2 .sm{padding:9px 12px;border-radius:10px;border:1px solid var(--rule);background:var(--soft)}.checks2 .sm:first-child{grid-column:1 / -1}.checks2 span{display:block;font-size:11.5px;color:var(--muted)}.checks2 b{font-size:18px}.checks2 .warn{border-color:var(--bad)}.checks2 .warn b{color:var(--bad)}.ribbon-wrap{overflow-x:auto;padding-bottom:4px}.ribbon-wrap canvas{display:block;border-radius:6px}.verdict2{margin:14px 0 0;font-weight:600;min-height:1.4em}.verdict2.ok{color:var(--good)}.verdict2.bad{color:var(--bad)}@media(max-width:900px){.bbgrid{grid-template-columns:1fr}}@media(max-width:600px){.bbtop{grid-template-columns:1fr 1fr}.bbtop .counter:last-child{grid-column:1 / -1}.counter b{font-size:30px}.bbcell{width:30px;height:30px;border-radius:6px;font-size:12px}.bbtape{gap:3px}.bbrules td{min-width:0;padding:5px 6px;font-size:12.5px}}.hero .kicker{padding-right:52px}.mono{font-family:var(--mono)}.hint{margin:8px 0 0;font-size:13.5px;color:var(--muted)}#machines{flex:1 1 220px;max-width:420px;accent-color:var(--accent)}#machines-out{font-size:18px;min-width:64px;text-align:right}.small-in{width:70px;font:600 14px var(--mono);padding:5px 8px;border-radius:10px;border:1px solid var(--rule);background:var(--bg);color:var(--ink)}.tstats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:6px 0 14px}.tstats>div{padding:10px 12px;border-radius:10px;border:1px solid var(--rule);background:var(--soft)}.tstats span{display:block;font-size:11.5px;color:var(--muted)}.tstats b{font-size:20px;font-variant-numeric:tabular-nums}.charts{display:grid;grid-template-columns:1fr 1fr;gap:16px}.charts figure{margin:0}.charts figcaption{font-size:12.5px;color:var(--muted);margin-bottom:4px;display:flex;flex-wrap:wrap;gap:10px;align-items:center}.charts canvas{display:block;width:100%;height:190px}.key{display:inline-flex;gap:6px;align-items:center}.key i{display:inline-block;width:14px;height:3px;border-radius:2px;margin-left:6px}.key .k1{background:#2a78d6}.key .k2{background:#eb6834}.progs{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:8px}.prog{padding:10px 12px;border-radius:10px;border:1px solid var(--rule);background:var(--soft);display:flex;flex-direction:column;gap:3px}.prog b{font-size:14.5px}.prog .sub2{font-size:12px;color:var(--muted)}.prog .res{font-size:13px;font-weight:600;color:var(--muted)}.prog.yes .res{color:var(--good)}.prog.no .res{color:var(--bad)}.prog.no{border-color:var(--bad)}.view3d{position:relative;height:440px;border-radius:12px;background:var(--soft);overflow:hidden;touch-action:none}.view3d canvas{display:block;width:100%!important;height:100%!important}.v-msg{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;margin:0;color:var(--muted);font-size:14px;padding:16px;text-align:center}.v-label{position:absolute;left:0;top:0;pointer-events:none;font:600 12px var(--mono);color:var(--ink);background:var(--panel);border:1px solid var(--rule);border-radius:6px;padding:1px 6px;white-space:nowrap}.legend3d{margin-top:10px;gap:8px 16px;font-size:13px;color:var(--muted)}.legend3d>span{display:inline-flex;align-items:center;gap:6px}.sw{display:inline-block;width:12px;height:12px;border-radius:3px}.s-learned{background:var(--learned, var(--accent))}.s-pending{background:var(--rule)}.s-good{background:#0ca30c}.s-bad{background:#d03b3b}.dot{display:inline-block;width:10px;height:10px;border-radius:50%}.d1{background:#2a78d6}.d2{background:#eb6834}.d3{background:#1baf7a}.mynet-bar{margin:0 0 16px;padding:10px 14px;border-radius:12px;border:1px solid var(--accent);background:var(--soft);font-size:14px;display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px}@media(max-width:760px){.tstats{grid-template-columns:1fr 1fr}.charts{grid-template-columns:1fr}.view3d{height:340px}}.param-in{width:200px;font:600 15px var(--mono);padding:6px 10px;border-radius:10px;border:1px solid var(--rule);background:var(--bg);color:var(--ink)}.bigval{font:700 clamp(28px,6vw,52px)/1.1 var(--mono);letter-spacing:-0.02em;margin:4px 0 12px;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.plotwrap canvas{display:block;width:100%;height:220px}.ptape-wrap{overflow-x:auto;margin:6px 0 16px;padding:4px 2px}.ptape{display:flex;gap:2px;width:max-content}.pcell{width:18px;height:24px;border-radius:4px;border:1px solid var(--rule);background:var(--bg);display:flex;align-items:center;justify-content:center;font:600 11px var(--mono);color:var(--muted)}.pcell.one{background:var(--ink);border-color:var(--ink);color:var(--bg)}.pcell.head{box-shadow:0 0 0 2px var(--accent)}.pstats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.pstats>div{padding:9px 12px;border-radius:10px;border:1px solid var(--rule);background:var(--soft)}.pstats span{display:block;font-size:11.5px;color:var(--muted)}.pstats b{font-size:18px;font-variant-numeric:tabular-nums}.pstats .big{grid-row:span 2}.pstats .big b{font-size:28px}.pstats .big em{display:block;font-style:normal;font-size:12.5px;color:var(--muted)}.pstats .warn{border-color:var(--bad)}.pstats .warn b{color:var(--bad)}@media(max-width:760px){.pstats{grid-template-columns:1fr 1fr}.pstats .big{grid-column:1 / -1;grid-row:auto}}.pskip{display:flex;align-items:center;padding:0 8px;font-size:11.5px;color:var(--muted);white-space:nowrap}.small-lede{font-size:16px;margin-top:10px}.small-lede a{color:var(--accent);font-weight:600;white-space:nowrap}.sizes{margin:16px 0 8px}.sz-axis{position:relative;height:18px;margin-left:260px;font-size:11px;color:var(--muted)}.sz-axis span{position:absolute;transform:translateX(-50%);white-space:nowrap}.sz-axis span:first-child{transform:none}.sz-axis span:last-child{transform:translateX(-100%)}.sz-row{display:grid;grid-template-columns:260px minmax(0,1fr);align-items:center;gap:0;padding:8px 0;border-top:1px solid var(--rule)}.sz-name{font-weight:600;font-size:14.5px;padding-right:12px}.sz-name small{display:block;font-weight:400;font-size:12px;color:var(--muted)}.sz-name small a{color:var(--accent)}.sz-bar{position:relative;display:flex;align-items:center;gap:8px;height:28px;background:repeating-linear-gradient(to right,var(--rule) 0 1px,transparent 1px 20%)}.sz-bar i{display:block;height:18px;border-radius:0 4px 4px 0;background:var(--muted)}.sz-row.ours .sz-bar i{background:var(--accent)}.sz-bar b{font:600 13.5px var(--mono);white-space:nowrap}.small-cols{margin-top:12px;font-size:13.5px;color:var(--muted)}@media(max-width:700px){.sz-axis{margin-left:0}.sz-row{grid-template-columns:1fr;gap:6px}}.sz-bar i{flex:none}.sz-row.inside .sz-bar i{display:flex;align-items:center;justify-content:flex-end;padding-right:8px;box-sizing:border-box}.sz-row.inside .sz-bar b{color:var(--bg)}.artwrap{border-radius:12px;background:var(--soft);margin:6px 0 4px}.artwrap canvas{display:block;width:100%;height:480px}.artwrap{position:relative}.artwrap canvas{height:min(68vh,600px)}.artwrap #pen{position:absolute;inset:0;width:100%;pointer-events:none}.inside{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:20px;margin:14px 0 16px;align-items:start}.in-line{margin:6px 0 8px;font-size:14.5px;color:var(--muted)}.in-line b{color:var(--ink)}.in-say{margin-left:8px;font-weight:600;color:var(--accent)}.inside .ptape{flex-wrap:wrap;width:auto}.in-flow{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.in-flow .window{margin:6px 0}.in-flow .arrow{font-size:20px;color:var(--muted)}.wtok.out{border-style:dashed}.in-pass .note{margin:2px 0 0}@media(max-width:760px){.inside{grid-template-columns:1fr}}.in-rings{grid-column:1 / -1}.ringrow{display:grid;grid-template-columns:64px minmax(0,1fr);gap:8px;align-items:start;margin:6px 0}.ringname{font-size:12px;color:var(--muted);padding-top:3px}.ringcells{display:flex;flex-wrap:wrap;gap:2px}.rc{min-width:15px;padding:1px 2px;text-align:center;font:600 11.5px/18px var(--mono);border-radius:3px;background:var(--soft);color:var(--muted)}.rc.rh{background:var(--ink);color:var(--bg)}.rc.rw{outline:2px solid var(--accent);outline-offset:0;color:var(--ink)}.view3d.tall{height:min(72vh,620px)}.v-label.small{font-size:11px;font-weight:600;padding:0 5px}.s-neg{background:#2a78d6}.s-pos{background:#eb6834}.s-mid{background:#c3c2b7}.s-glow{background:#fffbe0;border:1px solid var(--rule)}.spiralwrap{border-radius:12px;background:var(--soft);margin:6px 0 4px;padding:12px}.spiralwrap canvas{display:block;width:100%;max-width:640px;min-width:0;aspect-ratio:1;margin:0 auto}#rules.tall{max-height:420px;overflow:auto}.legend{display:flex;flex-wrap:wrap;gap:6px 16px;margin:10px 0 2px;font-size:12.5px;color:var(--muted)}.legend span{display:inline-flex;align-items:center;gap:6px}.legend .sw{width:12px;height:12px;border-radius:3px;display:inline-block}.legend .sw.prime{background:var(--accent)}.legend .sw.lit{background:color-mix(in srgb,var(--ink) 38%,transparent)}.legend .sw.now{background:color-mix(in srgb,var(--accent-2) 55%,transparent)}.legend .sw.out{background:color-mix(in srgb,var(--ink) 8%,transparent)}.legend .sw.mark{background:var(--accent-2)}.legend .sw.head{background:transparent;box-shadow:inset 0 0 0 2px var(--ink)}.nowline{margin:12px 0 0}.controls .speed{max-width:100%;min-width:0}.controls select{max-width:100%;min-width:0;text-overflow:ellipsis}.strip{display:flex;flex-direction:column;gap:14px;overflow-x:auto;padding:16px 2px 4px;font:600 13px var(--mono)}.strip .line{display:flex;gap:3px;align-items:center;white-space:nowrap}.strip .lab{flex:0 0 9.5em;color:var(--muted);font:500 12.5px var(--sans)}.tok{padding:2px 6px;border-radius:6px;background:var(--soft);border:1px solid var(--rule)}.tok.head{background:var(--entry-b)}.tok.win{position:relative;border-color:var(--ink);background:var(--panel)}.tok.win::before{content:attr(data-r);position:absolute;top:-16px;left:50%;transform:translateX(-50%);font-size:10.5px;color:var(--muted)}.tok.w-c{box-shadow:0 0 0 2px var(--accent-2, #eb6834)}.tok.out{border-style:dashed;border-color:var(--muted);min-width:1.6em;text-align:center}.tok.out.shown{border-style:solid;border-color:var(--good);box-shadow:0 0 0 2px var(--good)}.tok.more{background:none;border-color:transparent;color:var(--muted)}.win-buttons{margin-top:14px}.inside-grid{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:18px;align-items:start}.view3d.stage{height:min(72vh,620px)}.labels3d{position:absolute;left:0;top:0}.labels3d .v-label{opacity:0.92}.v-label.tag{border-color:#e0a400}.v-label.tag.win{border-color:var(--good);color:var(--good)}.v-label.side{background:none;border:none;color:var(--muted)}.tip{position:absolute;z-index:3;pointer-events:none;font:600 12px var(--mono);color:var(--ink);background:var(--panel);border:1px solid var(--rule);border-radius:8px;padding:4px 8px;white-space:nowrap;box-shadow:0 2px 8px rgba(0,0,0,0.12)}.chapter h3{margin:2px 0 10px;font-size:20px}.chapter p{margin:0 0 10px;font-size:14.5px;line-height:1.55}.chapter .ch-num{margin:0;font-size:12px;color:var(--muted)}.chapter .muted,.muted{color:var(--muted)}.chapter ul.toks,.chapter ol.toks{margin:0 0 10px;padding-left:18px;font-size:14px;line-height:1.55}.chapter code{font-size:12.5px}.chapter .ok{color:var(--good)}.chapter .bad{color:var(--bad)}.hk{font-weight:650;border-bottom:3px solid}.hk.h1{border-color:#1baf7a}.hk.h2{border-color:#8b5cf6}.s-h1{background:#1baf7a}.s-h2{background:#8b5cf6}.ch-buttons{margin-top:14px;align-items:center}.chapters{list-style:none;display:flex;flex-wrap:wrap;gap:6px;margin:0;padding:0}.chapters button{width:32px;height:32px;border-radius:50%;border:1px solid var(--rule);background:var(--soft);color:var(--ink);font:600 13px var(--sans);cursor:pointer}.chapters button.on{background:var(--accent);border-color:var(--accent);color:#fff}.scroll{overflow-x:auto}.budget{width:100%;border-collapse:collapse;font-size:14px}.budget th,.budget td{text-align:left;padding:7px 10px;border-bottom:1px solid var(--rule);white-space:nowrap}.budget .n{text-align:right}.budget tfoot td{font-weight:650;border-bottom:none}@media(max-width:900px){.inside-grid{grid-template-columns:1fr}.view3d.stage{height:min(58vh,100vw)}}.v-label.sec{font:650 13px var(--sans);padding:2px 8px}.scrollhint{margin:22px 0 0;font:600 13px var(--sans);color:var(--muted)}.walk{display:grid;grid-template-columns:minmax(0,0.82fr) minmax(0,1.18fr);gap:0 28px;max-width:1400px;margin:0 auto;padding:0 24px}.walk-stage{grid-column:2;grid-row:1;position:sticky;top:0;height:100vh;height:100svh;padding:16px 0;box-sizing:border-box;display:flex;flex-direction:column;gap:8px}.walk-stage .view3d{flex:1;height:auto;touch-action:auto}.walk-progress{height:3px;border-radius:2px;background:var(--rule);overflow:hidden}.walk-progress i{display:block;height:100%;width:0;background:var(--accent)}.walk-steps{grid-column:1;grid-row:1;padding:30vh 0 40vh}.step{min-height:88vh;display:flex;align-items:center}.step .card{width:100%;background:var(--panel);border:1px solid var(--rule);border-radius:16px;padding:20px 22px;opacity:0.4;transition:opacity 0.35s,box-shadow 0.35s}.step.on .card{opacity:1;box-shadow:0 6px 24px rgba(0,0,0,0.07)}.step h2{margin:2px 0 10px;font-size:22px}.step p{margin:0 0 10px;font-size:15.5px;line-height:1.6}.step .ch-num{margin:0;font-size:12px;color:var(--muted)}.step .muted{color:var(--muted)}.step ul.toks,.step ol.toks{margin:0 0 10px;padding-left:20px;font-size:15px;line-height:1.6}.step code{font-size:13px}.step .ok{color:var(--good)}.step .bad{color:var(--bad)}.step .strip{margin:4px 0 10px;padding-top:14px}.step .strip .lab{flex-basis:8.5em}.step .buttons{margin:6px 0 12px}.walk-after{margin-top:10px}@media(max-width:899px){.walk{display:block;padding:0}.walk-stage{position:sticky;top:0;z-index:2;height:52vh;height:52svh;padding:0;background:var(--bg);gap:0}.walk-stage .view3d{border-radius:0}.walk-steps{padding:6vh 16px 30vh}.step{min-height:70vh;align-items:flex-end;padding-bottom:6vh}.step .card{padding:16px}.step p{font-size:15px}.walk-stage .v-label.small{font-size:10px;padding:0 4px}.walk-stage .v-label.sec{font-size:11.5px;padding:1px 6px}}.retrain{margin-top:14px}
