:root{--bg: #f6f1e7;--panel: #fffdf8;--line: #e3dccb;--ink: #1d1a24;--muted: #6d6677;--dim: #9a93a3;--board: #18161f;--chalk: #f2ead8;--coral: #e4572e;--violet: #6d3fd1;--teal: #0e8c7f;--mono: ui-monospace, "SF Mono", "JetBrains Mono", Menlo, Consolas, monospace;--sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Inter, Roboto, sans-serif;color-scheme:light}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.55 var(--sans);-webkit-font-smoothing:antialiased;overflow-x:clip}[hidden]{display:none!important}:focus-visible{outline:2px solid var(--coral);outline-offset:2px}.top,.hero,.grid,.foot{max-width:1360px;margin:0 auto;padding-inline:clamp(16px,3vw,40px)}.top{display:flex;align-items:center;justify-content:space-between;padding-block:18px}.brand{display:inline-flex;align-items:center;gap:8px;color:var(--ink);font:600 17px/1 var(--mono);text-decoration:none}.brand svg{width:28px;height:28px;color:var(--coral)}.top-note{color:var(--dim);font:12.5px var(--mono)}.hero{padding-block:clamp(14px,3.5vw,40px) clamp(16px,2.5vw,28px)}.hero h1{margin:0 0 12px;max-width:20ch;font-size:clamp(30px,5.2vw,62px);line-height:1.03;letter-spacing:-.04em;font-weight:700;text-wrap:balance}.hero p{margin:0;max-width:72ch;color:var(--muted);font-size:clamp(15px,1.25vw,17px)}.grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-areas:"source board" "stages stages";gap:14px;align-items:start;padding-bottom:28px}.source{grid-area:source}.board{grid-area:board}.stages{grid-area:stages}.card{min-width:0;background:var(--panel);border:1px solid var(--line);border-radius:14px;overflow:hidden}.card-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 14px;padding:10px 14px;border-bottom:1px solid var(--line);color:var(--muted);font-size:13px}.card-head label{display:inline-flex;align-items:center;gap:8px}select{padding:6px 9px;background:var(--bg);border:1px solid var(--line);border-radius:8px;color:var(--ink);font:13.5px var(--sans)}.hint{color:var(--dim);font-size:12.5px}#src{display:block;width:100%;height:480px;padding:14px;resize:vertical;background:var(--panel);border:0;outline:none;color:var(--ink);font:13.5px/1.6 var(--mono);-moz-tab-size:2;tab-size:2;white-space:pre;overflow:auto}.errors{margin:0;padding:0;list-style:none}.errors li{padding:9px 14px;border-top:1px solid var(--line);background:#fdf1ec;color:#a3320f;font-size:13.5px;cursor:pointer}.errors b{margin-right:8px;font:600 12px var(--mono)}.errors pre{margin:5px 0 0;color:var(--muted);font:12px/1.45 var(--mono);overflow-x:auto}.errors pre i{color:var(--coral);font-style:normal;font-weight:700}.cheat{border-top:1px solid var(--line);font-size:13px}.cheat summary{padding:9px 14px;color:var(--muted);cursor:pointer}.cheat pre{margin:0;padding:0 14px 14px;color:var(--ink);font:12px/1.6 var(--mono);overflow-x:auto}.canvas-wrap{background:var(--board);line-height:0}#canvas{display:block;width:100%;height:auto;aspect-ratio:1;max-height:560px;margin:0 auto;object-fit:contain}.board-foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 14px;padding:10px 14px}.stats{flex:1 1 240px;margin:0;color:var(--muted);font:12.5px/1.5 var(--mono)}.stats.bad{color:#a3320f}.board-actions{display:inline-flex;gap:6px}.btn{padding:6px 12px;background:var(--panel);border:1px solid var(--line);border-radius:8px;color:var(--ink);font:600 13px/1.3 var(--sans);text-decoration:none;white-space:nowrap;cursor:pointer}.btn:hover{border-color:var(--dim)}.btn[aria-disabled=true]{opacity:.4;pointer-events:none}.printed{margin:0;padding:10px 14px;max-height:120px;overflow:auto;border-top:1px solid var(--line);color:var(--teal);font:13px/1.5 var(--mono)}.printed:before{content:"printed  ";color:var(--dim)}.tabs{display:flex;gap:2px;padding:8px 10px 0;border-bottom:1px solid var(--line);overflow-x:auto}.tabs button{padding:7px 12px 10px;margin-bottom:-1px;background:none;border:0;border-bottom:2px solid transparent;color:var(--muted);font:600 13px var(--sans);white-space:nowrap;cursor:pointer}.tabs button[aria-selected=true]{color:var(--ink);border-bottom-color:var(--coral)}.stage-note{margin:0;padding:10px 14px 0;color:var(--muted);font-size:13.5px}.stage{max-height:460px;padding:12px 14px 14px;overflow:auto}.stage pre{margin:0;font:12.5px/1.6 var(--mono)}.tokens{display:flex;flex-wrap:wrap;gap:4px;font:12.5px/1.5 var(--mono)}.tok{padding:1px 7px;border-radius:5px;background:#f0ebde}.tok.keyword{background:#ece4fb;color:var(--violet)}.tok.int,.tok.num{background:#def3f0;color:var(--teal)}.tok.op{color:var(--muted)}.tok.br{flex-basis:100%;height:0;padding:0;background:none}.wat .kw{color:var(--violet)}.wat .id{color:var(--teal)}.wat .cm{color:var(--dim)}.section{display:grid;grid-template-columns:9.5em minmax(0,1fr);gap:4px 14px;padding:8px 0;border-top:1px solid var(--line);font:12.5px/1.6 var(--mono)}.section:first-child{border-top:0}.section b{font-weight:600}.section small{display:block;color:var(--dim);font-size:11.5px}.section code{color:var(--muted);overflow-wrap:anywhere}.section code i{color:var(--coral);font-style:normal;font-weight:600}.foot{padding-block:4px 48px;color:var(--dim);font-size:13px}.foot p{max-width:82ch;margin:0}@media (max-width: 960px){.grid{grid-template-columns:minmax(0,1fr);grid-template-areas:"board" "source" "stages"}#src{height:360px}}@media (max-width: 560px){.top-note,.hint{display:none}.section{grid-template-columns:minmax(0,1fr)}}
