:root{--ground: #000000;--surface: #111111;--well: #1c1c1c;--raised: #2a2a2a;--rule: #1a1a1a;--control: #444444;--text: #ffffff;--muted: #b4b4b4;--faint: #949494;--accent: #c6f24e;--positive: #c6f24e;--negative: #e5484d;--warning: #e5a93b;--pill-positive-bg: #222a10;--pill-positive-ink: #c6f24e;--radius-card: 20px;--radius-well: 12px;--radius-control: 999px;--gap: 12px;--pad: 22px;--control-height: 36px;--panel-width: 320px;--fs-title: 20px;--fs-section: 16px;--fs-kpi: 24px;--fs-body: 14px;--fs-small: 12px;--font: "Inter", system-ui, sans-serif;color-scheme:dark}*{box-sizing:border-box}[hidden]{display:none!important}html,body{margin:0;height:100%;background:var(--ground);color:var(--text);font:400 var(--fs-body) / 20px var(--font);font-variant-numeric:tabular-nums;-webkit-font-smoothing:antialiased}body{display:flex;flex-direction:column;overflow:hidden}h1,h2,h3,p{margin:0}button{font:inherit;color:inherit;cursor:pointer;border:none;background:none;padding:0}button:disabled{cursor:default}:focus-visible{outline:2px solid var(--text);outline-offset:2px}.primary,.secondary{height:var(--control-height);padding:0 18px;border-radius:var(--radius-control);font-weight:500;white-space:nowrap;transition:background-color .12s,transform .06s}.primary{background:var(--text);color:#000}.primary:hover{background:#e6e6e6}.secondary{background:var(--raised);color:var(--text)}.secondary:hover{background:#363636}.primary:active,.secondary:active,.icon-btn:active{transform:translateY(1px)}.icon-btn{width:var(--control-height);height:var(--control-height);border-radius:var(--radius-control);display:grid;place-items:center;color:var(--muted);transition:background-color .12s,color .12s}.icon-btn:hover{background:var(--well);color:var(--text)}.icon-btn svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}.icon-btn[aria-pressed=false] .snd-on,.icon-btn[aria-pressed=true] .snd-off{display:none}.pill{display:inline-flex;align-items:center;flex:none;height:22px;padding:0 9px;border-radius:var(--radius-control);font-size:var(--fs-small);font-weight:500;white-space:nowrap}.pill[hidden]{display:none}.pill-positive{background:var(--pill-positive-bg);color:var(--pill-positive-ink)}.topbar{flex:none;height:56px;display:flex;align-items:center;gap:14px;padding:0 var(--gap) 0 18px}.brand{display:flex;align-items:center;gap:10px;height:40px;padding:0 10px 0 4px;border-radius:var(--radius-control);font-weight:600;font-size:var(--fs-section)}.brand:hover{background:var(--well)}.mark{width:24px;height:24px;fill:none;stroke:var(--accent);stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}.divider{width:1px;align-self:stretch;margin:12px 0;background:var(--raised)}.crumb{display:flex;align-items:center;gap:10px;min-width:0}.crumb-scope{color:var(--faint);white-space:nowrap}.crumb h1{font-size:var(--fs-section);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.spacer{flex:1}.tools{display:flex;align-items:center;gap:4px}.tools .divider{margin:10px 8px}.workspace{flex:1;min-height:0;display:grid;grid-template-columns:var(--panel-width) 1fr;gap:var(--gap);padding:0 var(--gap) var(--gap)}.panel{background:var(--surface);border-radius:var(--radius-card);padding:var(--pad);overflow-y:auto;display:flex;flex-direction:column;gap:26px}.intro{color:var(--muted);line-height:21px}.intro b,.intro i{color:var(--text);font-weight:500}.hint{background:var(--well);border-radius:var(--radius-well);padding:12px 14px;color:var(--muted);line-height:21px}.hint:before{content:"Hint  ";color:var(--text);font-weight:600;white-space:pre}.block h2{font-size:var(--fs-section);font-weight:600;margin-bottom:12px}.goals{display:flex;flex-direction:column;gap:8px}.goal{background:var(--well);border-radius:var(--radius-well);padding:12px 14px 14px}.goal-row{display:flex;align-items:baseline;justify-content:space-between;gap:10px}.goal-name{font-weight:500}.goal-want{display:block;color:var(--faint);font-size:var(--fs-small);margin-top:2px}.goal-val{font-size:var(--fs-kpi);line-height:28px;font-weight:500}.goal.pass .goal-val{color:var(--positive)}.goal.mine .goal-val.hot{color:var(--negative)}.bar{position:relative;height:4px;margin-top:12px;border-radius:2px;background:var(--raised)}.bar .fill{position:absolute;inset:0 auto 0 0;border-radius:2px;background:var(--muted);transition:width .18s}.goal.pass .bar .fill{background:var(--positive)}.goal.mine .bar .fill{background:var(--negative)}.bar .zone{position:absolute;top:-4px;bottom:-4px;border-left:1px solid var(--text);border-right:1px solid var(--text)}.bar .zone.open-right{border-right:none}.bar .zone.open-left{border-left:none}.bar .limit{position:absolute;top:-5px;bottom:-5px;width:1px;background:var(--warning)}.sub{margin-top:14px}.bell-scale{position:relative;height:16px;margin-top:6px;font-size:var(--fs-small);color:var(--faint)}.bell-scale span{position:absolute;top:0;white-space:nowrap}.bell-scale span:nth-child(2){transform:translate(-50%);color:var(--warning)}.bell-parts{display:grid;grid-template-columns:1fr 1fr;gap:4px 14px;margin-top:10px;font-size:var(--fs-small);color:var(--faint)}.bell-parts span{display:flex;justify-content:space-between}.bell-parts b{color:var(--text);font-weight:500}.tests{display:flex;flex-direction:column;gap:2px}.test-row{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:40px;padding:6px 12px;border-radius:var(--radius-well);background:var(--well);text-align:left;transition:background-color .12s}.test-row:hover{background:#232323}.test-row.shown{background:var(--raised)}.test-io{color:var(--text)}.test-arrow{color:var(--faint)}.test-hidden{color:var(--faint);margin-right:6px}.test-score{color:var(--muted)}.test-score.ok{color:var(--positive)}.test-running{color:var(--text)}.test-pending{color:var(--faint)}.test-note{margin-top:10px;color:var(--faint);font-size:var(--fs-small);line-height:18px}.test-note.fail{color:var(--muted)}.pill-negative{background:#2c1a20;color:#e5566f}.unlock{display:grid;grid-template-columns:36px 1fr;gap:14px;align-items:center;margin-top:16px;padding:12px 14px;border-radius:var(--radius-well);background:var(--well)}.unlock canvas{border-radius:8px;background:var(--ground)}.unlock-name{font-weight:600}.unlock-text{color:var(--muted);font-size:var(--fs-small);line-height:18px;margin-top:2px}.inventory{display:flex;flex-direction:column;gap:2px}.inv{display:grid;grid-template-columns:36px 1fr auto;align-items:center;gap:12px;height:44px;padding:0 12px 0 4px;border-radius:var(--radius-well);text-align:left;touch-action:none;-webkit-user-select:none;user-select:none;transition:background-color .12s}.inv:hover:not(:disabled){background:var(--well)}.inv.armed{background:var(--raised)}.inv:disabled{color:var(--faint)}.inv canvas{pointer-events:none;border-radius:8px;background:var(--ground)}.inv .n{color:var(--faint)}.inv:disabled canvas{opacity:.5}.sel-head{display:flex;justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:8px}.sel-head h2{margin:0}.sel-val{color:var(--muted)}.sel-blurb{color:var(--muted);line-height:21px}.sel-tip{margin-top:8px;color:var(--faint);font-size:var(--fs-small);line-height:18px}.sel-tip b{color:var(--text);font-weight:500}.sel-btns{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}.sel-btns:empty{display:none}.sel-btns button{height:32px;padding:0 14px;font-size:var(--fs-body)}.stage{position:relative;min-width:0;min-height:0}#board{position:absolute;inset:0;width:100%;height:100%;touch-action:none}.legend{position:absolute;left:16px;right:16px;bottom:12px;align-items:center;display:flex;flex-wrap:wrap;gap:6px 18px;font-size:var(--fs-small);color:var(--faint);pointer-events:none}.legend .seg{pointer-events:auto;margin-left:auto}.seg{display:inline-flex;padding:3px;border-radius:var(--radius-control);background:var(--surface)}.seg button{height:30px;padding:0 14px;border-radius:var(--radius-control);color:var(--muted);font-size:var(--fs-body);transition:background-color .12s,color .12s}.seg button:hover{color:var(--text)}.seg button[aria-checked=true]{background:var(--raised);color:var(--text)}.legend span{display:inline-flex;align-items:center;gap:8px}.sw{display:inline-block;width:18px;height:3px;border-radius:2px}.sw-pure{background:var(--accent)}.sw-mixed{background:#8a8a8a}.sw-width{height:8px;background:var(--raised);clip-path:polygon(0 35%,100% 0,100% 100%,0 65%)}.modal{position:fixed;inset:0;z-index:10;display:grid;place-items:center;padding:16px;background:#000000c7}.modal[hidden]{display:none}.dialog{width:min(460px,100%);max-height:calc(100vh - 32px);overflow-y:auto;background:var(--surface);border-radius:var(--radius-card);padding:24px}.dialog.wide{width:min(680px,100%)}.dialog.tut{width:min(600px,100%)}.dialog h2{font-size:var(--fs-title);font-weight:600;line-height:26px}.dialog-sub{margin-top:4px;color:var(--faint)}.dialog-head,.win-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.win-head{justify-content:flex-start}.win-text{margin-top:14px;color:var(--muted);line-height:22px}.dialog-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:22px}.aim{margin-top:18px;background:var(--well);border-radius:var(--radius-well);padding:12px 14px;font-size:var(--fs-section);line-height:22px}.aim-label{display:block;font-size:var(--fs-small);color:var(--faint);margin-bottom:2px;line-height:16px}.tut-items{display:flex;flex-direction:column;gap:18px;margin-top:20px}.tut-item{display:grid;grid-template-columns:220px 1fr;gap:18px;align-items:center}.tut-demo{width:220px;height:124px;display:block;border-radius:var(--radius-well);background:var(--ground)}.tut-name{font-size:var(--fs-section);font-weight:600;margin-bottom:4px}.tut-text{color:var(--muted);line-height:21px}.tut-text b{color:var(--text);font-weight:500}.export-body h3{margin:20px 0 8px;font-size:var(--fs-body);font-weight:600;color:var(--muted)}.field{display:flex;flex-direction:column;gap:6px;margin-top:14px;color:var(--muted)}.field input[type=text],.field textarea,.ex-json textarea{font:inherit;color:var(--text);background:var(--well);border:1px solid var(--raised);border-radius:var(--radius-well);padding:9px 12px;resize:vertical}.field input[type=file]{color:var(--muted)}.ex-row{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:44px}.ex-count{color:var(--faint);margin-left:6px}.ex-row .seg{background:var(--well)}.ex-check{margin-top:16px;color:var(--muted);line-height:21px}.ex-check.bad{color:#e5566f}.ex-check:empty{display:none}.ex-note{margin-top:14px;color:var(--faint)}.ex-json{margin-top:14px;color:var(--muted)}.ex-json summary{cursor:pointer}.ex-json textarea{width:100%;margin-top:8px;font-size:var(--fs-small);line-height:18px}#level-list h3{margin:22px 0 8px;font-size:var(--fs-body);font-weight:600;color:var(--muted)}.lv-grid{display:grid;grid-template-columns:1fr 1fr;gap:2px 8px}.lv{display:grid;grid-template-columns:28px 1fr auto;align-items:center;gap:8px;height:44px;padding:0 12px;border-radius:var(--radius-well);text-align:left;transition:background-color .12s}.lv:hover{background:var(--well)}.lv.current{background:var(--raised)}.lv .num{color:var(--faint)}@media(max-width:900px){body{overflow:auto}.topbar{height:auto;flex-wrap:wrap;row-gap:0;padding:6px var(--gap) 6px 12px}.topbar>.divider{display:none}.crumb-scope,.wordmark{display:none}.workspace{grid-template-columns:1fr;grid-template-rows:minmax(320px,62vh) auto}.stage{order:-1}.panel{overflow:visible}}@media(max-width:560px){.tools{width:100%;justify-content:space-between}.tools .divider{display:none}.icon-btn{width:44px;height:44px}.tools .primary{height:44px}.tut-item{grid-template-columns:1fr;gap:10px}.tut-demo{width:100%}.lv-grid{grid-template-columns:1fr}.legend{left:12px;bottom:8px}}@media(prefers-reduced-motion:reduce){*{transition:none!important}}
