@font-face{font-family:Chakra Petch;font-weight:500;src:url(/fonts/ChakraPetch-500.woff2) format("woff2");font-display:swap}@font-face{font-family:Chakra Petch;font-weight:600;src:url(/fonts/ChakraPetch-600.woff2) format("woff2");font-display:swap}@font-face{font-family:Chakra Petch;font-weight:700;src:url(/fonts/ChakraPetch-700.woff2) format("woff2");font-display:swap}@font-face{font-family:JetBrains Mono;font-weight:500;src:url(/fonts/JetBrainsMono-500.woff2) format("woff2");font-display:swap}:root{color-scheme:dark;--font-ui: "Chakra Petch", sans-serif;--page: #0b1a11;--panel: #12231a;--stage: #10241a;--ink: #f3fff8;--line: #4a875f;--radius: 10px;--accent: #6bb083;--accent-soft: rgba(107, 176, 131, .35);--good: #45ffb2;--on-good: #06281a;--bad: #ff5d5d;--bad-ink: #ff9c9c;--warn: #ffb454;--floor: #3f7a52;--floor-line: #336642;--lava: #1b100b;--lava-seam: #ff6a1f;--arch: #d7f5e3;--arrow: #f3fff8}*{box-sizing:border-box}html,body{height:100%;margin:0}body{display:grid;grid-template-rows:auto 1fr;background:var(--page);color:var(--ink);font-family:var(--font-ui);overflow:hidden}button{font:inherit;color:inherit;cursor:pointer}button:disabled{cursor:default}[hidden]{display:none!important}.bar{display:flex;align-items:center;gap:14px;padding:12px 14px}.brand{font-size:18px;font-weight:700;letter-spacing:.08em}.brand .dot{color:var(--good)}.tutor{display:flex;align-items:center;gap:8px}.where{font-family:JetBrains Mono,monospace;font-size:11px;padding:3px 8px;border:1px solid #63d7f4;border-radius:5px;color:#63d7f4}.answer{border:1.5px dashed var(--warn);background:transparent;color:var(--warn);border-radius:7px;padding:4px 10px;font-size:11px;font-weight:700;letter-spacing:.06em}.rungs{display:flex;gap:6px;margin-left:auto}.rung{width:28px;height:28px;border-radius:7px;border:1.5px solid var(--line);background:transparent;font-size:13px;font-weight:600}.rung.on{border-color:var(--ink);box-shadow:0 0 0 2px var(--accent-soft)}.rung.done{background:var(--good);border-color:var(--good);color:var(--on-good)}.rung:disabled{opacity:.38}.logo{height:26px;width:auto}main{display:grid;grid-template-columns:minmax(0,1fr) minmax(360px,44%);gap:10px;padding:0 10px 10px;min-height:0}.code{position:relative;min-height:0;overflow:hidden;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel)}#ws{position:absolute;inset:0}.side{display:flex;flex-direction:column;gap:8px;min-height:0}.stagebox{position:relative;flex:1;min-height:0;display:flex;flex-direction:column;border:1px solid var(--line);border-radius:var(--radius);background:var(--stage);overflow:hidden}.title{padding:8px 12px 0;font-size:11px;letter-spacing:.14em;text-transform:uppercase;opacity:.85}.stage{flex:1;min-height:0;display:grid;place-items:center}.meter{position:absolute;right:10px;bottom:10px;display:flex;align-items:center;gap:7px;font-size:11px;letter-spacing:.08em;padding:5px 10px;border:1px solid var(--line);border-radius:999px;background:var(--panel)}.meter b{font-weight:600;opacity:.85}.meter em{font-style:normal;font-weight:600}.pips{display:flex;gap:2px}.pips i{width:6px;height:12px;border-radius:1.5px;background:var(--warn)}.pips i.used{background:var(--line);opacity:.55}.controls{display:flex;align-items:center;gap:8px;min-height:36px}.btn{padding:6px 12px;border:1.5px solid var(--line);border-radius:7px;background:var(--panel);font-size:12px;font-weight:700;letter-spacing:.06em;white-space:nowrap}.btn:hover{border-color:var(--ink)}.btn.run,.btn.next{background:var(--good);border-color:var(--good);color:var(--on-good)}.cases{display:flex;gap:5px;margin-left:auto}.case{width:26px;height:26px;border-radius:50%;border:1.5px solid var(--line);background:var(--panel);font-size:12px;font-weight:700}.case.on{border-color:var(--ink);box-shadow:0 0 0 2px var(--accent-soft)}.case.win{background:var(--good);border-color:var(--good);color:var(--on-good)}.case.fail{background:var(--bad);border-color:var(--bad);color:#2a0707}.verdict{min-height:54px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 14px;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);font-size:15px}.verdict.good{border-color:var(--good);color:var(--good);font-weight:600}.verdict.bad{border-color:var(--bad);color:var(--bad-ink);font-weight:600}.board{position:relative;--ease: cubic-bezier(.38, .04, .16, 1)}.cells{display:grid;grid-auto-rows:var(--tile)}.cell{position:relative;width:var(--tile);height:var(--tile)}.cell svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}.cell.floor{background:var(--floor);box-shadow:inset 0 0 0 1px var(--floor-line)}.cell.painted{background:var(--paint)}.cell.lava{background:var(--lava);border:0 solid var(--lava-seam)}.cell.edge-up{border-top-width:3px}.cell.edge-down{border-bottom-width:3px}.cell.edge-left{border-left-width:3px}.cell.edge-right{border-right-width:3px}.cell.beam:after{content:"";position:absolute;inset:0;background:repeating-linear-gradient(45deg,rgba(255,59,59,.34) 0 4px,transparent 4px 9px)}.cell.hit{outline:3px solid var(--bad);outline-offset:-3px;z-index:1}.tile-label{font-family:var(--font-ui);font-weight:700;fill:#0c1611}.eye-white{fill:#fff;stroke:#1b1b1b;stroke-width:1.5}.eye-iris{fill:#e53935}.eye-pupil{fill:#111}.squeeze{fill:var(--lava);stroke:var(--lava-seam);stroke-width:1}.rock{fill:#a3abb6;stroke:#4b5058;stroke-width:1.5}.crack{fill:none;stroke:#4b5058;stroke-width:1.5}.rubble{fill:#a3abb6}.bar{fill:#c3ccd8;stroke:#4b5058;stroke-width:.6}.arch{fill:none;stroke:var(--arch);stroke-width:3.5}.door{fill:#f1e0bb;stroke:#7a5a2b;stroke-width:2}.door-post{fill:#c9a86a;stroke:#7a5a2b;stroke-width:1}.door-dot{stroke:#00000059;stroke-width:1.5}.bubble{fill:#fff;stroke:#444;stroke-width:1}.mystery{fill:#fff;stroke:#7a5cff;stroke-width:2.5}.sign{fill:#f6e7c1;stroke:#7a5a2b;stroke-width:1.5}.post{fill:#7a5a2b}.gem{fill:#ffd43b;stroke:#8a6500;stroke-width:1.5}.gem-shine{fill:#fff3b0}.mons{position:absolute;inset:0;pointer-events:none}.mon{position:absolute;left:0;top:0;width:var(--tile);height:var(--tile);transition:transform .38s var(--ease)}.mon .body{position:absolute;inset:9%;transform-origin:50% 85%;transition:transform .3s var(--ease),opacity .26s linear}.mon img{display:block;width:100%;image-rendering:pixelated}.mon .mark{position:absolute;inset:7%;border:2px dashed var(--mine);border-radius:8px;opacity:0;transition:opacity .2s}.mon.hidden .mark{opacity:.8}.mon.failed .mark{opacity:1;border-style:solid;border-color:var(--bad)}.mon .arrow{position:absolute;inset:0;display:none}.headed .mon .arrow{display:block}.mon .arrow:after{content:"";position:absolute;right:-22%;top:50%;margin-top:-7px;border:7px solid transparent;border-left-color:var(--arrow)}.mon .say{position:absolute;bottom:104%;left:50%;transform:translate(-50%);padding:2px 9px;border:2px solid #5b6270;border-radius:12px;background:#fff;color:#2b3140;font-size:13px;font-weight:600;white-space:nowrap;opacity:0}.mon .say.on{opacity:1}.mon.won .body{animation:hop .42s var(--ease) 2}.mons.jump .mon,.mons.jump .mon *{transition:none!important}@keyframes hop{50%{translate:0 -18%}}.mp-on{stroke:#fff200!important;stroke-width:4px!important}
