:root{--page: #e8d6b0;--paper: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0.35 0 0 0 0 0.22 0 0 0 0 0.1 0 0 0 0.08 0'/%3E%3C/filter%3E%3Crect width='180' height='180' filter='url(%23n)'/%3E%3C/svg%3E");--hud: #f8eedb;--hud-solid: #f8eedb;--panel-border: 2px solid #4a3326;--panel-shadow: 0 3px 0 #4a3326, 0 22px 40px -18px rgba(60, 35, 15, .55);--blur: none;--line: rgba(74, 51, 38, .22);--soft: rgba(120, 85, 50, .08);--soft-2: rgba(120, 85, 50, .15);--ink: #3b2a20;--muted: #7d6550;--edge: #4a3326;--leaf: #5f7f3a;--leaf-rgb: 95, 127, 58;--leaf-ink: #fbf3e2;--ok: #5f8a3a;--sun: #d99a2b;--sun-rgb: 217, 154, 43;--sky: #3f6f9e;--bad: #b5452f;--bad-rgb: 181, 69, 47;--read: #4f74a8;--make: #5d8a4a;--fix: #c07a2a;--hack: #8a5a9e;--cap: linear-gradient(120deg, #b5452f, #8a5a9e);--scrim: rgba(60, 40, 20, .35);--veil: linear-gradient(90deg, rgba(232, 214, 176, 0) 35%, rgba(60, 40, 20, .45) 70%);--code-bg: #fbf4e4;--code-ink: #3b2a20;--code-num: #b39c80;--caret: #b5452f;--code-sel: rgba(63, 111, 158, .22);--syn-kw: #9a3a6b;--syn-fn: #2f5f8f;--syn-st: #4f7a2a;--syn-nu: #b5652f;--syn-cm: #a08a70;--syn-id: #3b2a20;--blk-mv: #4f74a8;--blk-act: #5d8a4a;--blk-say: #8a5a9e;--blk-var: #c0702a;--blk-ctl: #9a7a1e;--blk-fn: #b5456f;--fld-bg: #fffaf0;--fld-ink: #3b2a20;--v-str: #4f7a2a;--v-num: #b5652f;--v-bool: #9a3a6b;--blk-ink: #fff;--blk-border: 2px solid #4a3326;--blk-shadow: inset 0 -2px 0 rgba(0, 0, 0, .18);--note-ring: #4a3326;--note-shadow: 0 3px 0 #4a3326, 0 16px 30px -14px rgba(60, 35, 15, .6);--n-pick: #f3c55a;--n-pick-ink: #3b2a20;--n-ok: #e3ecc9;--n-ok-ink: #2f3f1c;--n-ok-icon: #5f8a3a;--n-bad: #f5d6c9;--n-bad-ink: #4a1d12;--n-bad-icon: #b5452f;--n-soft: #f6e4ac;--n-soft-ink: #4a3410;--n-soft-icon: #c07a2a;--n-hint: #d9e5ee;--n-hint-ink: #1f3346;--n-hint-icon: #3f6f9e;--n-info: #fbf3e2;--n-info-ink: #3b2a20;--n-info-icon: #7d6550;--bubble: #fffaf0;--bubble-ink: #3b2a20;--foil: linear-gradient(150deg, #f6dc8c, #c8943a 45%, #7a5520);--foil-inner: #fbf3e2;--sheen: linear-gradient(115deg, transparent 30%, rgba(255, 246, 210, .9) 45%, rgba(255, 220, 140, .6) 52%, transparent 66%);--sheen-blend: soft-light;--sheen-opacity: .8;--body: Nunito, system-ui, -apple-system, "Segoe UI", sans-serif;--head: Fraunces, Georgia, serif;--label-font: 800 11px/1.3 var(--body);--mono: "JetBrains Mono", ui-monospace, "Cascadia Mono", Consolas, monospace;--t-display: 700 32px/1.1 var(--head);--t-title: 700 22px/1.2 var(--head);--t-heading: 700 16px/1.3 var(--head);--t-stat: 700 20px/1.15 var(--head);--t-body: 400 14px/1.5 var(--body);--t-body-strong: 700 14px/1.5 var(--body);--t-small: 400 13px/1.5 var(--body);--t-small-strong: 700 13px/1.4 var(--body);--t-caption: 400 12px/1.45 var(--body);--t-label: var(--label-font);--t-badge: 800 10px/1.2 var(--body);--t-code: 500 13px/22px var(--mono);--t-code-sm: 500 12px/1.65 var(--mono);--label-spacing: .1em;color-scheme:light}#app.advanced{--leaf: #3f6f9e;--leaf-rgb: 63, 111, 158;--leaf-ink: #fbf3e2}:root.dark{--page: #0b0e1f;--paper: none;--hud: rgba(14, 19, 48, .84);--hud-solid: #10153a;--panel-border: 1px solid rgba(110, 231, 255, .3);--panel-shadow: 0 0 0 1px rgba(110, 231, 255, .05), 0 0 46px -12px rgba(110, 231, 255, .28), 0 24px 50px -20px rgba(0, 0, 0, .8);--blur: blur(12px);--line: rgba(140, 170, 255, .2);--soft: rgba(110, 231, 255, .07);--soft-2: rgba(110, 231, 255, .14);--ink: #e8ecff;--muted: #9aa5d6;--edge: #070a1e;--leaf: #7cf0a8;--leaf-rgb: 124, 240, 168;--leaf-ink: #07102e;--ok: #7cf0a8;--sun: #ffd166;--sun-rgb: 255, 209, 102;--sky: #6ee7ff;--bad: #ff7a8a;--bad-rgb: 255, 122, 138;--read: #3b6fd6;--make: #11a37f;--fix: #d48a16;--hack: #8b5cf6;--cap: linear-gradient(120deg, #db2777, #7c3aed);--scrim: rgba(3, 5, 16, .55);--veil: linear-gradient(90deg, rgba(7, 10, 30, 0) 35%, rgba(7, 10, 30, .75) 70%);--code-bg: rgba(4, 7, 24, .8);--code-ink: #dfe6ff;--code-num: #4b5694;--caret: #ffd166;--code-sel: rgba(110, 231, 255, .25);--syn-kw: #ff7ad9;--syn-fn: #6ee7ff;--syn-st: #7cf0a8;--syn-nu: #ffd166;--syn-cm: #5d679e;--syn-id: #e8ecff;--blk-mv: rgba(110, 231, 255, .14);--blk-act: rgba(124, 240, 168, .14);--blk-say: rgba(255, 122, 217, .14);--blk-var: rgba(255, 170, 90, .14);--blk-ctl: rgba(255, 209, 102, .14);--blk-fn: rgba(255, 122, 170, .14);--fld-bg: rgba(4, 7, 24, .85);--fld-ink: #e8ecff;--v-str: #7cf0a8;--v-num: #ffd166;--v-bool: #ff7ad9;--blk-ink: currentColor;--blk-border: 1.5px solid currentColor;--blk-shadow: 0 0 12px -3px currentColor;--note-ring: rgba(110, 231, 255, .4);--note-shadow: 0 0 30px -8px rgba(110, 231, 255, .45), 0 16px 34px -12px rgba(0, 0, 0, .7);--n-pick: #ffd166;--n-pick-ink: #07102e;--n-ok: rgba(10, 15, 42, .95);--n-ok-ink: #e8ecff;--n-ok-icon: #7cf0a8;--n-bad: rgba(10, 15, 42, .95);--n-bad-ink: #e8ecff;--n-bad-icon: #ff7a8a;--n-soft: rgba(10, 15, 42, .95);--n-soft-ink: #e8ecff;--n-soft-icon: #ffd166;--n-hint: rgba(10, 15, 42, .95);--n-hint-ink: #e8ecff;--n-hint-icon: #6ee7ff;--n-info: rgba(10, 15, 42, .95);--n-info-ink: #e8ecff;--n-info-icon: #9aa5d6;--bubble: #fffaf0;--bubble-ink: #1b1f3a;--foil: linear-gradient(150deg, #6ee7ff, #8b5cf6 50%, #1b2557);--foil-inner: linear-gradient(180deg, #141a42, #0b0f2a);--sheen: linear-gradient(115deg, transparent 25%, #ff6ad5 38%, #8be9ff 48%, #fff7a8 56%, transparent 70%);--sheen-blend: color-dodge;--sheen-opacity: .5;--body: Inter, system-ui, -apple-system, "Segoe UI", sans-serif;--head: Sora, Inter, system-ui, sans-serif;--label-font: 500 11px/1.3 var(--mono);--label-spacing: .08em;color-scheme:dark}:root.dark #app.advanced{--leaf: #6ee7ff;--leaf-rgb: 110, 231, 255;--leaf-ink: #07102e}*{box-sizing:border-box;scrollbar-width:thin;scrollbar-color:var(--code-num) transparent}html,body{margin:0;height:100%;overflow:hidden;background:var(--page);color:var(--ink);font:var(--t-body)}#app{position:fixed;inset:0}button,input{font:inherit;color:inherit}h1,h2,h3,p{margin:0}canvas.world{position:absolute;inset:0;width:100%;height:100%;display:block;cursor:grab;touch-action:none}canvas.world:active{cursor:grabbing}.k{font:var(--t-label);letter-spacing:var(--label-spacing);text-transform:uppercase;color:var(--muted)}.hide{display:none!important}.muted{font:var(--t-small);color:var(--muted)}.hud,.drawer,.card,.newgame{background:var(--paper),var(--hud);background-color:var(--hud);border:var(--panel-border);box-shadow:var(--panel-shadow);backdrop-filter:var(--blur);-webkit-backdrop-filter:var(--blur)}.card,.newgame{background-color:var(--hud-solid)}.hud{position:absolute;border-radius:14px;z-index:5}.stats{left:16px;top:16px;display:flex;align-items:center;gap:16px;padding:10px 16px}.stats b{font:var(--t-stat);display:block}.stats b.pop{animation:pop .6s ease;color:var(--sun)}.stats .sep{width:1px;height:30px;background:var(--line)}@keyframes pop{0%{transform:scale(1)}40%{transform:scale(1.35)}to{transform:scale(1)}}.hud.tools{right:16px;top:16px;display:flex;gap:8px;padding:8px;transition:right .35s cubic-bezier(.2,.8,.2,1)}#app:has(.drawer.open) .tools{right:448px}.demo *,.demo *:before,.demo *:after{transition:none!important}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;border-radius:10px;padding:9px 14px;font:var(--t-small-strong);color:var(--leaf-ink);background:var(--leaf);cursor:pointer;white-space:nowrap;transition:transform .08s ease,filter .15s ease}.btn:hover:not(:disabled){filter:brightness(1.08)}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn.go{background:var(--leaf);border:var(--panel-border);border-color:var(--edge);box-shadow:0 3px 0 var(--edge)}:root.dark .btn.go{border-color:transparent;box-shadow:0 0 24px -6px rgba(var(--leaf-rgb),.9)}.btn.go:disabled{opacity:1;background:var(--soft);color:var(--muted);border-color:var(--line);box-shadow:none}.btn.go.ready{animation:ready .9s ease-out 2}@keyframes ready{0%{box-shadow:0 0 rgba(var(--leaf-rgb),.7)}to{box-shadow:0 0 0 12px rgba(var(--leaf-rgb),0)}}.btn.ghost{background:var(--soft);color:var(--ink);border:1px solid var(--line);box-shadow:none}.btn.icon{width:38px;padding:9px 0;font:var(--t-heading)}.btn.full{width:100%}.btn.danger{color:var(--bad);border-color:rgba(var(--bad-rgb),.45)}.btn.glow{animation:glow 1.6s ease-in-out infinite}@keyframes glow{50%{box-shadow:0 0 0 4px rgba(var(--sun-rgb),.45);border-color:var(--sun)}}.moon{width:12px;height:12px;border-radius:50%;box-shadow:inset -4px -1px 0 0 var(--sun);transform:rotate(-20deg)}.btn:focus-visible,.rung:focus-visible,.mode:focus-visible,.row:focus-visible,.seg button:focus-visible{outline:2px solid var(--sun);outline-offset:2px}.badge{display:inline-block;font:var(--t-badge);letter-spacing:.08em;text-transform:uppercase;padding:4px 7px;border-radius:5px;color:#fff;text-align:center}.b-read{background:var(--read)}.b-make{background:var(--make)}.b-fix{background:var(--fix)}.b-hack{background:var(--hack)}.b-cap{background:var(--cap)}.mini{border:0;background:var(--soft);color:var(--ink);width:26px;height:26px;border-radius:7px;cursor:pointer;font:var(--t-small-strong);line-height:1}.mini:hover{background:var(--soft-2)}.mini.close{width:32px;height:32px;font:var(--t-heading);line-height:1}.quest{left:16px;bottom:16px;width:360px;padding:14px 16px 16px;display:flex;flex-direction:column;gap:8px}.quest h3{margin-top:-4px;font:var(--t-title)}.rungs{display:grid;gap:5px;margin-bottom:4px}.rung{display:grid;grid-template-columns:74px 1fr auto;gap:10px;align-items:center;padding:6px 9px;border-radius:9px;background:var(--soft);border:1px solid transparent;text-align:left;font:var(--t-small);cursor:pointer}.rung.cur{border-color:var(--leaf);background:rgba(var(--leaf-rgb),.12)}.rung.done:hover{background:var(--soft-2)}.rung.lock{opacity:.45;cursor:default}.rung .badge{width:74px}.pips{display:inline-flex;gap:4px}.pips i{width:9px;height:9px;border-radius:50%;border:1.5px solid var(--muted);opacity:.8}.pips i.on{background:var(--ok);border-color:var(--ok);opacity:1}.pips i.now{border-color:var(--leaf);opacity:1}.drawer{position:absolute;top:12px;right:12px;bottom:12px;width:420px;z-index:6;display:flex;flex-direction:column;gap:10px;padding:14px 16px 16px;border-radius:18px;overflow-y:auto;overflow-x:hidden;transform:translate(calc(100% + 24px));transition:transform .35s cubic-bezier(.2,.8,.2,1)}.drawer.open{transform:none}.drawer>*{flex:none}.drawer header{display:flex;align-items:center;gap:10px}.drawer header .badge{padding:6px 8px}.drawer header .ttl{flex:1}.drawer h2{font:var(--t-title)}.reps{display:flex;align-items:center;justify-content:space-between;font:var(--t-caption);font-weight:700;color:var(--muted)}.reps .pips i{width:11px;height:11px}.intro{font:var(--t-small);color:var(--muted);border-left:3px solid var(--leaf);padding:2px 0 2px 10px}.brief{font:var(--t-body-strong)}.brief-row{display:flex;align-items:flex-start;gap:8px}.brief-row .brief{flex:1}.mini.listen{display:grid;place-items:center;color:var(--leaf);flex:none}.notes{--inset: 0px;position:absolute;z-index:8;bottom:24px;left:calc((100% - var(--inset)) / 2);transform:translate(-50%);width:min(540px,calc(100% - var(--inset) - 32px));display:flex;flex-direction:column;align-items:center;gap:10px;pointer-events:none}.note{--note-bg: var(--n-info);--note-ink: var(--n-info-ink);--note-icon: var(--n-info-icon);display:none;align-items:flex-start;gap:10px;max-width:100%;padding:10px 14px 10px 12px;border-radius:14px;font:var(--t-body);color:var(--note-ink);background:var(--note-bg);border:2px solid var(--note-ring);box-shadow:var(--note-shadow);backdrop-filter:var(--blur);-webkit-backdrop-filter:var(--blur)}.note.show{display:flex;animation:note-in .3s cubic-bezier(.2,.8,.2,1)}.note.pick{--note-bg: var(--n-pick);--note-ink: var(--n-pick-ink);border-radius:999px;padding:11px 18px;align-items:center;border-color:var(--edge)}.note.pick.show{animation:note-in .3s cubic-bezier(.2,.8,.2,1),flash .45s ease-in-out .3s 2}.note.ok{--note-bg: var(--n-ok);--note-ink: var(--n-ok-ink);--note-icon: var(--n-ok-icon)}.note.bad{--note-bg: var(--n-bad);--note-ink: var(--n-bad-ink);--note-icon: var(--n-bad-icon)}.note.soft{--note-bg: var(--n-soft);--note-ink: var(--n-soft-ink);--note-icon: var(--n-soft-icon)}.note.hint{--note-bg: var(--n-hint);--note-ink: var(--n-hint-ink);--note-icon: var(--n-hint-icon)}:root.dark .note:not(.pick){border:1px solid var(--note-icon);box-shadow:0 0 30px -8px var(--note-icon),0 16px 34px -12px #000000b3}.note b{font-weight:700}.n-icon{flex:none;width:22px;height:22px;border-radius:50%;display:grid;place-items:center;font:var(--t-small-strong);background:var(--note-icon);color:var(--hud-solid)}.n-text{flex:1;min-width:0;padding-top:1px}.n-sub{opacity:.8}.n-label{display:block;font:var(--t-label);letter-spacing:var(--label-spacing);text-transform:uppercase;opacity:.75;margin-bottom:2px}.n-close{flex:none;pointer-events:auto;width:24px;height:24px;margin:-1px -4px 0 0;border:0;border-radius:7px;background:transparent;color:inherit;font:var(--t-heading);line-height:1;cursor:pointer;opacity:.55}.n-close:hover{opacity:1;background:var(--soft-2)}.note .flag{flex:none;width:18px;height:20px;position:relative}.note .flag:before{content:"";position:absolute;left:0;top:0;width:4px;height:20px;border-radius:2px;background:var(--note-ink)}.note .flag:after{content:"";position:absolute;left:4px;top:0;border-left:14px solid var(--note-ink);border-top:6px solid transparent;border-bottom:6px solid transparent}@keyframes note-in{0%{transform:translateY(16px);opacity:0}}@keyframes flash{50%{filter:brightness(1.12);box-shadow:0 0 0 7px rgba(var(--sun-rgb),.45)}}.budget{display:flex;justify-content:space-between;font:var(--t-caption);color:var(--muted);padding:0 2px}.budget b{font-weight:700;color:var(--ink)}.budget.over b{color:var(--bad)}.controls{display:flex;gap:8px;flex-wrap:wrap;margin-top:auto;padding-top:4px}.controls .btn.go:not(.full){flex:1}.drawer .ed{flex:1 1 0;min-height:190px;display:flex;flex-direction:column}.drawer .ed>.code{flex:1 1 0;max-height:none;height:auto;min-height:0}.code{--rows: 8;position:relative;display:flex;font:var(--t-code);background:var(--code-bg);border:1px solid var(--line);border-radius:12px;overflow:hidden;height:calc(var(--rows) * 22px + 20px);max-height:360px;min-height:150px;font-variant-ligatures:none}.code.ro{opacity:.95}.c-gutter{padding:10px 8px 10px 10px;color:var(--code-num);text-align:right;user-select:none;min-width:36px}.c-gutter span{display:block}.c-body{position:relative;flex:1;overflow:hidden}.c-pre,.c-area{position:absolute;inset:0;margin:0;padding:10px 12px 10px 6px;font:inherit;white-space:pre;tab-size:2;letter-spacing:0}.c-pre{color:var(--code-ink);pointer-events:none}.c-area{color:transparent;caret-color:var(--caret);background:transparent;border:0;outline:none;resize:none;overflow:auto}.c-area::selection{background:var(--code-sel);color:transparent}.c-line,.c-err{position:absolute;left:0;right:0;height:22px;display:none;pointer-events:none}.c-line{background:rgba(var(--leaf-rgb),.16);box-shadow:inset 3px 0 0 var(--leaf)}.c-err{background:rgba(var(--bad-rgb),.14);box-shadow:inset 3px 0 0 var(--bad)}.t-kw{color:var(--syn-kw)}.t-fn{color:var(--syn-fn)}.t-st{color:var(--syn-st)}.t-nu{color:var(--syn-nu)}.t-cm{color:var(--syn-cm)}.t-id{color:var(--syn-id)}details.peek summary,details.toolbox summary{cursor:pointer;font:var(--t-label);letter-spacing:var(--label-spacing);text-transform:uppercase;color:var(--muted);padding:2px 0 6px}details.peek .code{max-height:150px;min-height:0;font:var(--t-code);font-size:12px}.toolbox ul{list-style:none;margin:0;padding:0;display:grid;gap:4px}.toolbox li{display:flex;align-items:center;gap:10px;font:var(--t-caption);color:var(--muted)}.tb{border:1px solid var(--line);background:var(--code-bg);border-radius:7px;padding:3px 8px;cursor:pointer}.tb code{font:var(--t-code-sm);color:var(--syn-fn)}.tb:hover{border-color:var(--sky)}.blocks{display:flex;flex-direction:column;gap:10px;flex:1 1 0;min-height:0}.palette{flex:none;display:flex;flex-wrap:wrap;gap:6px;padding:10px;background:var(--soft);border:1px dashed var(--line);border-radius:12px}.blk{display:inline-flex;align-items:center;gap:7px;padding:7px 11px;border-radius:8px;border:var(--blk-border);font:var(--t-small-strong);color:var(--blk-ink);cursor:pointer;user-select:none;box-shadow:var(--blk-shadow)}.palette .blk{touch-action:none}.blk.mv{background:var(--blk-mv)}.blk.act{background:var(--blk-act)}.blk.say{background:var(--blk-say)}:root.dark .blk.mv{color:#6ee7ff}:root.dark .blk.act{color:#7cf0a8}:root.dark .blk.say{color:#ff7ad9}.blk .b-icon{width:16px;height:16px;flex:none}.palette .blk:hover{filter:brightness(1.12)}.stack{position:relative;list-style:none;margin:0;padding:8px 6px;background:var(--code-bg);border:1px solid var(--line);border-radius:12px;display:flex;flex-direction:column;gap:6px;overflow-y:auto;overscroll-behavior:contain;touch-action:pan-y;flex:1 1 0;min-height:0}.row{position:relative;display:flex;align-items:center;gap:6px;padding:1px 4px 1px 0;border-radius:8px;cursor:pointer;border:1px solid transparent;flex:none}.stack .blk{padding:4px 10px;cursor:inherit}.stack .blk .b-icon{width:14px;height:14px}.row:hover{background:var(--soft)}.blocks.dragging .row:hover{background:none}.row.sel{border-color:rgba(var(--sun-rgb),.6)}.row.sel:after{content:"";position:absolute;left:44px;right:8px;bottom:-5px;height:2px;border-radius:2px;background:var(--sun)}.row.lit{background:rgba(var(--leaf-rgb),.16);border-color:var(--leaf)}.row.bad{background:rgba(var(--bad-rgb),.14);border-color:var(--bad)}.row.lifted{opacity:.35}.row.added{animation:added .7s ease-out}@keyframes added{0%{background:rgba(var(--leaf-rgb),.3)}}.grip{flex:none;display:grid;place-items:center;width:22px;height:28px;border-radius:6px;color:var(--code-num);cursor:grab;touch-action:none}.grip:hover{color:var(--ink);background:var(--soft-2)}.grip:active{cursor:grabbing}.grip .b-icon{width:14px;height:14px}.row .num{width:18px;text-align:right;font:var(--t-code-sm);color:var(--code-num)}.row-tools{position:absolute;right:4px;top:50%;transform:translateY(-50%);display:flex;gap:4px;padding:2px;border-radius:9px;background:var(--code-bg);opacity:0;pointer-events:none;transition:opacity .15s}.row:hover .row-tools,.row:focus-within .row-tools,.row.sel .row-tools{pointer-events:auto}.row:hover .row-tools,.row:focus-within .row-tools,.row.sel .row-tools{opacity:1}.row .mini{width:24px;height:24px}.stack .empty{color:var(--muted);font:var(--t-small);padding:10px;text-align:center}.tail{flex:none;margin-top:2px;padding:7px 10px;border:1.5px dashed var(--line);border-radius:8px;font:var(--t-caption);color:var(--muted);text-align:center;cursor:pointer}.tail:hover{color:var(--ink)}.tail.next{border-color:rgba(var(--leaf-rgb),.6);color:var(--leaf);background:rgba(var(--leaf-rgb),.06)}.say-in{width:120px;border:0;border-radius:6px;padding:2px 6px;font:var(--t-code-sm);color:#3b0764;background:#f3e8ff}.blk.ghost{position:fixed;z-index:50;pointer-events:none;opacity:.92;transform:rotate(-3deg);box-shadow:0 12px 24px #00000059}.drop-line{position:fixed;z-index:49;height:3px;border-radius:2px;background:var(--sun);display:none;pointer-events:none}.bubble{position:absolute;left:0;top:0;z-index:4;max-width:240px;padding:8px 12px;font:var(--t-small);color:var(--bubble-ink);background:var(--bubble);border:2px solid var(--edge);border-radius:12px 12px 3px;box-shadow:0 12px 28px -10px #00000080;opacity:0;pointer-events:none;transition:opacity .25s}.bubble.show{opacity:1}.bubble b{display:block;font:var(--t-label);letter-spacing:var(--label-spacing);text-transform:uppercase;color:#9a6a18}.inspect{width:452px;max-width:calc(100% - 24px);padding:12px 14px;display:none;flex-direction:column;gap:8px;z-index:7}.inspect.show{display:flex}.ins-head{display:flex;align-items:flex-start;gap:8px}.ins-head>div{flex:1}.ins-head b{font:var(--t-heading)}.tag{font:var(--t-badge);letter-spacing:.08em;text-transform:uppercase;padding:4px 7px;border-radius:5px;background:var(--soft-2);color:var(--sky);margin-top:3px}.tag.looks{background:#c2417829;color:#c24178}:root.dark .tag.looks{color:#f9a8d4}.tag.routine{background:rgba(var(--leaf-rgb),.16);color:var(--leaf)}.ins-code{margin:0;font:var(--t-code-sm);background:var(--code-bg);border:1px solid var(--line);border-radius:10px;padding:9px 11px;white-space:pre;overflow-x:auto;max-height:300px;color:var(--code-ink);font-variant-ligatures:none}.seal{font:var(--t-badge);letter-spacing:.04em;color:var(--hack);background:#8a5a9e24;border-radius:5px;padding:1px 6px}:root.dark .seal{color:#c4b5fd;background:#a78bfa26}.seal.gold{color:var(--fix);background:rgba(var(--sun-rgb),.16)}.inspect p{font:var(--t-caption);color:var(--muted)}.toast{position:absolute;left:50%;top:18px;z-index:20;transform:translate(-50%,-30px);opacity:0;pointer-events:none;padding:10px 18px;border-radius:999px;font:var(--t-body-strong);color:var(--n-pick-ink);background:var(--n-pick);border:2px solid var(--edge);box-shadow:0 14px 30px -12px #00000080;transition:transform .35s cubic-bezier(.2,.8,.2,1),opacity .3s}.toast.show{transform:translate(-50%);opacity:1}.toast.big{padding:12px 22px}.modal{position:absolute;inset:0;z-index:30;display:none;align-items:center;justify-content:center;background:var(--scrim);padding:16px}.modal.show{display:flex}.card{width:440px;max-width:100%;max-height:100%;overflow-y:auto;border-radius:18px;padding:20px 22px;display:flex;flex-direction:column;gap:10px}.card h2{margin-bottom:4px;font:var(--t-title)}.card p{font:var(--t-small)}.card .sub{margin-top:6px}.log{display:grid;gap:5px}.log div{display:grid;grid-template-columns:80px 1fr auto;gap:8px;align-items:center;font:var(--t-small);padding:7px 10px;border-radius:9px;background:var(--soft)}.log b{font-weight:700}.log code{font:var(--t-code-sm);color:var(--syn-fn)}.log em{font-style:normal;font-weight:700;color:var(--ok)}.facts{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:4px 0 6px}.facts div{background:var(--soft);border-radius:10px;padding:8px 10px;display:flex;flex-direction:column;font:var(--t-caption);color:var(--muted)}.facts b{font:var(--t-stat);color:var(--ink)}.card .row{cursor:default;padding:0;gap:8px;justify-content:space-between;margin-top:8px}.card .row:hover{background:none}.mode{display:flex;flex-direction:column;gap:6px;text-align:left;padding:12px;border-radius:14px;border:1px solid var(--line);background:var(--soft);cursor:pointer}.mode.sel{border-color:var(--leaf);background:rgba(var(--leaf-rgb),.1);box-shadow:0 0 0 3px rgba(var(--leaf-rgb),.15)}.mode>span{font:var(--t-caption);color:var(--muted)}.mode b{font:var(--t-heading)}.toggle,.setting{display:flex;gap:12px;align-items:flex-start;padding:12px;border-radius:14px;border:1px solid var(--line);background:var(--soft);cursor:pointer}.toggle input{margin-top:3px;width:18px;height:18px;accent-color:var(--leaf)}.toggle>span,.setting>span{display:flex;flex-direction:column;gap:2px;font:var(--t-caption);color:var(--muted)}.toggle b,.setting b{font:var(--t-heading);color:var(--ink)}.setting{flex-direction:column;cursor:default;gap:10px}.seg{display:flex;padding:3px;gap:3px;border-radius:11px;background:var(--soft);border:1px solid var(--line);width:100%}.seg button{flex:1;border:0;border-radius:8px;padding:7px 8px;font:var(--t-small-strong);color:var(--muted);background:transparent;cursor:pointer}.seg button.sel{background:var(--leaf);color:var(--leaf-ink)}.chapter .holo{position:relative;border-radius:16px;padding:7px;background:var(--foil);box-shadow:inset 0 0 0 1px #ffffff59,0 3px 0 var(--edge);overflow:hidden}.chapter .holo:after{content:"";position:absolute;inset:0;mix-blend-mode:var(--sheen-blend);opacity:var(--sheen-opacity);background:var(--sheen);background-size:250% 250%;animation:holo 5s ease-in-out infinite alternate;pointer-events:none}@keyframes holo{0%{background-position:100% 0}to{background-position:0 100%}}.hc-in{position:relative;background:var(--paper),var(--foil-inner);background-color:var(--foil-inner);border-radius:11px;padding:14px 16px;display:flex;flex-direction:column;gap:6px;color:var(--ink)}.hc-in h2{margin:0}.hc-in ul{margin:0;padding-left:18px;font:var(--t-small);color:var(--ink)}#app:has(.newgame) .stats,#app:has(.newgame) .tools,#app:has(.newgame) .quest{display:none}.veil{position:absolute;inset:0;z-index:20;background:var(--veil)}.newgame{position:absolute;z-index:21;right:24px;top:24px;bottom:24px;width:420px;max-width:calc(100% - 32px);overflow-y:auto;display:flex;flex-direction:column;gap:12px;padding:22px;border-radius:20px}.newgame h1{margin-top:-4px;font:var(--t-display);letter-spacing:-.01em}.lead{color:var(--muted);font:var(--t-body)}.newgame .mode{gap:8px}.mh{display:flex;align-items:center;gap:8px}.tick{margin-left:auto;width:20px;height:20px;border-radius:50%;background:var(--leaf);color:var(--leaf-ink);font:var(--t-caption);font-weight:700;line-height:20px;text-align:center;visibility:hidden}.mode.sel .tick{visibility:visible}.newgame .mini{display:flex;flex-wrap:wrap;gap:6px;width:auto;height:auto;background:none}.newgame .mini .blk{padding:5px 9px;cursor:inherit}.mini-code{margin:0;font:var(--t-code-sm);color:var(--code-ink);background:var(--code-bg);border:1px solid var(--line);border-radius:9px;padding:7px 10px;font-variant-ligatures:none}.fine{margin-top:auto;font:var(--t-caption);color:var(--muted)}.q-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.q-nav{display:flex;gap:4px}.q-nav .mini:disabled{opacity:.35;cursor:default}.trials{margin:-2px 0 0;padding:6px 10px 6px 28px;font:var(--t-caption);color:var(--muted);background:var(--soft);border-radius:10px}.trials li{margin:1px 0}.choices{display:flex;flex-direction:column;gap:6px}.choice-row{display:flex;flex-wrap:wrap;gap:6px}.choice{border:1.5px solid var(--line);background:var(--code-bg);border-radius:10px;padding:7px 12px;cursor:pointer;color:var(--ink)}.choice code{font:var(--t-code-sm)}.choice:hover:not(:disabled){border-color:var(--leaf)}.choice.sel{border-color:var(--sun);background:rgba(var(--sun-rgb),.18);box-shadow:0 0 0 3px rgba(var(--sun-rgb),.18)}.choice:disabled{cursor:default;opacity:.8}.watch{display:flex;align-items:flex-start;gap:10px;padding:7px 10px;border-radius:10px;background:var(--soft);min-height:36px}.watch>.k{padding-top:4px;flex:none}.w-list{display:flex;flex-wrap:wrap;gap:5px}.w-var{display:inline-flex;align-items:baseline;gap:6px;padding:2px 8px;border-radius:7px;background:var(--code-bg);border:1px solid var(--line);font:var(--t-caption)}.w-var b{font-weight:700}.w-var code{font:var(--t-code-sm)}.w-var.v-str code{color:var(--v-str)}.w-var.v-num code{color:var(--v-num)}.w-var.v-bool code{color:var(--v-bool)}.w-var.world{border-style:dashed;opacity:.85}.w-var.pop{animation:added .7s ease-out;border-color:var(--leaf)}.watch .muted{font:var(--t-caption);padding-top:3px}.note.results{--note-bg: var(--n-info)}.r-list{list-style:none;margin:2px 0 0;padding:0;display:grid;gap:2px;font:var(--t-small)}.r-list li{display:flex;gap:8px;align-items:baseline}.r-list i{font-style:normal;font-weight:800;width:14px}.r-list li.ok i{color:var(--ok)}.r-list li.bad i{color:var(--bad)}.blk.var{background:var(--blk-var)}.blk.ctl{background:var(--blk-ctl)}.blk.fn{background:var(--blk-fn)}:root.dark .blk.var{color:#ffb36b}:root.dark .blk.ctl{color:#ffd166}:root.dark .blk.fn{color:#ff8fc0}.stack .blk{flex-wrap:wrap;row-gap:4px;column-gap:5px;padding:4px 8px;max-width:100%}.blk .kw{font:var(--t-code-sm);font-weight:700;opacity:.95}.fld{min-width:2.4ch;border:0;border-radius:6px;padding:2px 5px;font:var(--t-code-sm);color:var(--fld-ink);background:var(--fld-bg);box-shadow:inset 0 0 0 1px #0000001f}.fld:focus{outline:2px solid var(--sun);outline-offset:1px}.fld.v-str{color:var(--v-str)}.fld.v-num{color:var(--v-num)}.fld.v-bool{color:var(--v-bool)}.fld.bad{box-shadow:inset 0 0 0 2px var(--bad)}.fld.name{font-weight:700}select.fld{padding:2px 4px;cursor:pointer}.indent{flex:none;align-self:stretch;border-left:0}.row.r-end .blk,.row.r-else .blk,.row.r-arm .blk{opacity:.92}.blk.cap{padding:2px 10px;font:var(--t-caption);font-weight:700}.mini.wide{width:auto;padding:0 7px;font:var(--t-caption);font-weight:700}.say-in{display:none}.card.story p{font:var(--t-body)}.file-row{display:flex;gap:8px;flex-wrap:wrap}.fine.err{color:var(--bad);margin-top:0}.log em.bad{color:var(--bad)}@media(max-width:760px){.drawer{inset:auto 8px 8px;width:auto;height:58%;transform:translateY(calc(100% + 24px))}.quest{left:8px;right:8px;width:auto;bottom:8px}.stats{left:8px;top:8px;gap:10px;padding:8px 12px}.tools{right:8px;top:8px}.newgame{left:16px;right:16px;width:auto;top:auto;max-height:82%}.veil{background:var(--scrim)}.notes{bottom:auto;top:64px}}@media(prefers-reduced-motion:reduce){.drawer,.toast{transition:none}.note.show,.note.pick.show,.row.added{animation:none}.chapter .holo:after,.btn.glow{animation:none}}
