:root{--bg: #f6f3ea;--panel: #fffdf7;--ink: #2b2a26;--muted: #6e6a60;--line: #e2dccb;--mine: #2f6fd6;--mine-soft: #dce8fb;--theirs: #d0452f;--theirs-soft: #fbe1dc;--good: #2d8a4e;--bad: #c0392b;--first: #8a5a00;--first-soft: #fff1cc;--floor: #e7ebcf;--ice: #cfe9f6;--lava-a: #f39a4b;--lava-b: #e2552f;--fort: #f7dde6;--fort-edge: #e4b3c4;--furniture: #a9805b;--move: #3aa35c;--target: #e8822c;--tile: 54px;color-scheme:light}@media (prefers-color-scheme: dark){:root{--bg: #1d1c1a;--panel: #262522;--ink: #ece8de;--muted: #a9a397;--line: #3a3833;--mine-soft: #24344f;--theirs-soft: #4a2723;--first: #f0c463;--first-soft: #3d3220;--floor: #3f5a3c;--ice: #3b5e70;--fort: #6a4c57;--fort-edge: #8a6372;--furniture: #6e5038;color-scheme:dark}}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.45 system-ui,-apple-system,Segoe UI,sans-serif}#app{max-width:1180px;margin:0 auto;padding:16px}header{display:flex;align-items:baseline;gap:16px;flex-wrap:wrap}h1{margin:0;font-size:22px;letter-spacing:.02em}.level{color:var(--muted)}#pick-level{margin-left:auto;font:inherit;padding:5px 8px;border-radius:8px;border:1px solid var(--line);background:var(--panel);color:var(--ink)}.game{color:var(--muted);margin:4px 0 12px}main{display:grid;grid-template-columns:minmax(0,auto) minmax(320px,1fr);gap:20px;align-items:start}@media (max-width: 900px){main{grid-template-columns:1fr}}aside,.left{min-width:0}aside{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:14px 16px}aside h2{margin:6px 0 8px;font-size:18px}button{font:inherit;color:inherit;background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:6px 12px;cursor:pointer}button:hover:not(:disabled){border-color:var(--muted)}button:disabled{opacity:.45;cursor:default}button.primary{background:var(--mine);border-color:var(--mine);color:#fff}button.wide{width:100%;margin:10px 0;padding:9px}button.on{outline:2px solid var(--mine);outline-offset:-1px;background:var(--mine-soft)}.row{display:flex;gap:8px;flex-wrap:wrap;margin:8px 0}.board{--tile: min(54px, calc((100vw - 76px - var(--cols) * 3px) / var(--cols)));display:grid;grid-template-columns:18px repeat(var(--cols),var(--tile));grid-auto-rows:var(--tile);gap:3px;width:max-content;max-width:100%;overflow-x:auto}.board .corner{height:18px}.board .coord{font-size:11px;color:var(--muted);display:grid;place-items:center}.board>.coord:nth-child(-n+50){align-self:end}.tile{position:relative;padding:0;border:none;border-radius:7px;width:var(--tile);height:var(--tile);display:grid;place-items:center;cursor:pointer}.t-floor{background:var(--floor)}.t-ice{background:linear-gradient(135deg,var(--ice) 60%,#ffffff66 61%,var(--ice) 75%)}.t-lava{background:radial-gradient(circle at 30% 30%,var(--lava-a),var(--lava-b))}.t-fort{background:var(--fort);box-shadow:inset 0 0 0 4px var(--fort-edge),inset 0 -8px 0 4px #fff5}.t-furniture{background:repeating-linear-gradient(90deg,var(--furniture) 0 10px,#00000014 10px 12px)}.t-table{background:linear-gradient(var(--furniture) 0 30%,var(--floor) 30% 100%);box-shadow:inset 6px 0 0 -2px var(--furniture),inset -6px 0 0 -2px var(--furniture)}.t-box{background:#c9a46b;box-shadow:inset 0 0 0 3px #8a6a3a,inset 0 -10px #b38f57}.t-made-ground{background:var(--floor);box-shadow:inset 0 0 0 3px #a0784a55}.t-made-object{background:#d9c7a3;box-shadow:inset 0 0 0 3px #8a6d3b}.tile .thing{position:absolute;bottom:2px;right:5px;font-size:12px;font-weight:700;color:#5b4526;line-height:1}.tile .hole{position:absolute;top:9px;right:9px;bottom:9px;left:9px;border-radius:50%;background:radial-gradient(circle,#1d140c 55%,#3b2a1a)}.tile .tunnel{position:absolute;top:5px;right:5px;bottom:5px;left:5px;border-radius:6px;border:2px dashed #d8b384;background:#1d140c99}.tile:is(.t-fort,.t-furniture,.t-table,.t-box,.t-made-object) .tunnel{background:none}.legend .sw-hole{background:radial-gradient(circle,#1d140c 55%,#3b2a1a);border-radius:50%}.legend .sw-tunnel{background:#1d140c99;border:2px dashed #d8b384}.kid.up{transform:translateY(-5px) scale(1.08);filter:drop-shadow(0 5px 2px #0006)}.kid.under{transform:scale(.8)}.kid.under .shape{box-shadow:inset 0 0 0 3px #000a}.tile.zone:after{content:"";position:absolute;top:5px;right:5px;bottom:5px;left:5px;border:2px dashed var(--mine);border-radius:6px;opacity:.7}.tile .flag{position:absolute;top:2px;left:5px;font-size:15px;line-height:1}.base-player .flag{color:var(--mine)}.base-npc .flag{color:var(--theirs)}.base{box-shadow:inset 0 0 0 2px currentColor}.base-player{color:var(--mine)}.base-npc{color:var(--theirs)}.tile.target-move:before,.tile.target-act:before,.tile.target-both:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:7px;pointer-events:none}.tile.target-move:before{box-shadow:inset 0 0 0 3px var(--move);background:#3aa35c22}.tile.target-act:before{box-shadow:inset 0 0 0 3px var(--target);background:#e8822c2a}.tile.target-both:before{box-shadow:inset 0 0 0 3px var(--move),inset 0 0 0 6px var(--target);background:#e8822c2a}.tile.target-move:empty:after,.tile.target-move:not(:has(.kid)):after{content:"";width:12px;height:12px;border-radius:50%;background:var(--move);opacity:.8}.tile.last{animation:flash .9s ease-out}.tile.choosing{outline:3px solid #ffd23f;outline-offset:-3px}.tile.danger-reach{background-image:repeating-linear-gradient(45deg,#d0452f30 0 5px,transparent 5px 10px)}.tile.danger-hit{box-shadow:inset 0 0 0 2px #d0452faa}.tile.danger-helped{outline:2px dashed #d0452faa;outline-offset:-5px}.tile.their-1{background-image:linear-gradient(#d0452f4d,#d0452f4d)}.tile.their-2{background-image:linear-gradient(#d0452f80,#d0452f80)}.tile.their-3{background-image:linear-gradient(#d0452fb3,#d0452fb3)}.tile .reachers{position:absolute;top:2px;left:4px;font-size:10px;font-weight:700;color:#fff;text-shadow:0 0 2px #000;pointer-events:none}.tile.fire-from{outline:3px dotted var(--target);outline-offset:-6px}.tile.deadly:before{box-shadow:inset 0 0 0 3px var(--bad)!important;background:#c0392b33!important}.tile .cost{position:absolute;top:2px;right:4px;font-size:11px;font-weight:700;line-height:1;color:#fff;background:var(--move);border-radius:4px;padding:1px 3px;pointer-events:none;z-index:2}.tile.target-act .cost,.tile.target-both .cost{background:var(--target)}.tile .path{position:absolute;width:16%;height:16%;border-radius:50%;background:var(--theirs);opacity:.7;pointer-events:none;z-index:1}.tile .trail{position:absolute;width:22%;height:22%;border-radius:50%;background:var(--target);box-shadow:0 0 0 3px #e8822c44;pointer-events:none;z-index:1}.tile:has(.kid) .trail{display:none}@keyframes flash{0%{filter:brightness(1.35)}to{filter:none}}.kid{position:relative;width:calc(var(--tile) * .7);height:calc(var(--tile) * .7);display:grid;place-items:center;color:#fff;font-weight:700;font-size:calc(var(--tile) * .32)}.kid .shape{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;box-shadow:0 2px #0003}.kid.side-player .shape{background:var(--mine)}.kid.side-npc .shape{background:var(--theirs)}.kid.type-melee .shape{border-radius:9px}.kid.type-fast .shape{top:-2px;right:-2px;bottom:-2px;left:-2px;border-radius:0;box-shadow:none;clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%)}.kid .letter{position:relative;line-height:1}.kid.frozen .shape{filter:saturate(.2) brightness(1.2)}.kid.frozen:before{content:"";position:absolute;top:-5px;right:-5px;bottom:-5px;left:-5px;border:2px dashed #59aee0;border-radius:50%}.kid .ice{position:absolute;top:-10px;right:-10px;font-size:15px;color:#59aee0;text-shadow:0 0 2px #fff}.kid.hiding .shape{opacity:.45}.kid.hiding:before{content:"";position:absolute;top:-5px;right:-5px;bottom:-5px;left:-5px;border:2px dotted var(--mine);border-radius:50%;opacity:.8}.kid.struck .letter:after{content:"!";position:absolute;top:-12px;left:-10px;font-size:13px;color:#ffd23f;text-shadow:0 0 2px #000}.proposal .part{margin-top:6px}.msg .thinking{margin-top:6px;font-size:.85em;opacity:.8}.proposal .does{margin-top:6px;font-size:.85em}.proposal .does summary,.msg .thinking summary{cursor:pointer}.kid.selected:after{content:"";position:absolute;top:-6px;right:-6px;bottom:-6px;left:-6px;border:3px solid #ffd23f;border-radius:50%}.kid .pips{position:absolute;bottom:1px;font-size:11px;letter-spacing:-1px;line-height:1}.kid .stance-badge{position:absolute;bottom:-7px;left:-8px;font-size:10px;font-weight:700;line-height:1;color:var(--ink);background:var(--panel);border:1px solid var(--line);border-radius:4px;padding:1px 2px;z-index:2}.kid.acting:after{content:"";position:absolute;top:-6px;right:-6px;bottom:-6px;left:-6px;border:3px solid var(--theirs);border-radius:50%}.legend{display:flex;flex-wrap:wrap;gap:4px 14px;font-size:12px;color:var(--muted);margin:10px 0;max-width:620px}.legend .sw{display:inline-block;width:12px;height:12px;border-radius:3px;vertical-align:-1px;margin-right:4px}.legend .dot{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:4px;vertical-align:0}.legend .mine{color:var(--mine);background:var(--mine)}.legend b.mine{background:none}.legend .theirs{color:var(--theirs);background:var(--theirs)}.legend b.theirs{background:none}.log{list-style:none;margin:12px 0 0;padding:8px 10px;max-height:260px;overflow-y:auto;background:var(--panel);border:1px solid var(--line);border-radius:10px;font-size:13px}.log li{padding:2px 0}.tone-turn{color:var(--muted);font-weight:600;margin-top:6px;border-top:1px solid var(--line);padding-top:6px!important}.tone-good{color:var(--good)}.tone-bad{color:var(--bad)}.tone-first{background:var(--first-soft);color:var(--first);border-radius:6px;padding:4px 6px!important;margin:3px 0;font-weight:600}.tone-trick{background:var(--theirs-soft);color:var(--theirs);border-radius:6px;padding:4px 6px!important;margin:3px 0;font-weight:600}.roster-list{display:grid;gap:6px;margin:10px 0}.roster{display:flex;gap:10px;align-items:center;text-align:left;padding:8px 10px}.roster small{color:var(--muted)}.roster .kid,.kidrow .kid{width:30px;height:30px;font-size:14px;flex:none}.kids{display:grid;gap:4px;margin:8px 0}.kidrow{display:grid;grid-template-columns:34px 1fr auto;align-items:center;gap:8px;text-align:left;padding:5px 8px}.kidrow .state{color:var(--muted);font-size:13px}.controls{border-top:1px solid var(--line);padding-top:8px;margin-top:8px}.modes,.stances{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0;align-items:center}.stances{font-size:13px;color:var(--muted)}.hint{color:var(--muted);font-size:13px;margin:6px 0}.hint .go{color:var(--move)}.hint .hitc{color:var(--target)}.can{font-size:13px;color:var(--muted)}.why{font-size:13px;color:var(--theirs);margin:4px 0}.controls.inspect{border-top-color:var(--theirs)}h2 .your{color:var(--mine)}h2 .their{color:var(--theirs)}.good{color:var(--good)}.bad{color:var(--bad)}.chat{display:grid;gap:6px;margin:10px 0}.msg{padding:8px 10px;border-radius:10px;max-width:92%}.msg.you{justify-self:end;background:var(--mine-soft)}.msg.ref{background:var(--bg);border:1px solid var(--line)}.msg.ref small{color:var(--muted)}.msg.thinking{color:var(--muted);font-style:italic}.msg .suggest{margin-top:6px;font-size:.92em}.msg .suggest button{margin-left:6px;padding:2px 8px}.msg.err,.warn{color:var(--bad)}.notice{background:var(--theirs-soft);border:1px solid var(--theirs);border-radius:8px;padding:8px 12px;margin:0 0 12px}.proposal{border:2px solid var(--mine);border-radius:10px;padding:10px 12px;margin:8px 0;background:var(--mine-soft)}.proposal blockquote{margin:6px 0;font-style:italic}.proposal .cost{font-size:12px;color:var(--muted);margin-top:6px}.chip{display:inline-block;font-size:12px;background:var(--panel);border:1px solid var(--line);border-radius:999px;padding:1px 8px;margin:2px 0}.chip.cond{border-style:dashed}#argue-form{display:flex;gap:6px;margin:8px 0}#argue{flex:1;min-width:0;font:inherit;padding:7px 10px;border-radius:8px;border:1px solid var(--line);background:var(--panel);color:var(--ink)}.rulebook{margin-top:12px;font-size:13px}.rulebook summary{cursor:pointer;color:var(--muted)}.rulebook ul{padding-left:18px;margin:6px 0}.rulebook li{margin:5px 0}.rulebook li.argued{list-style:"★ "}.rulebook .rtext{color:var(--muted)}.kind{font-size:11px;color:var(--muted);border:1px solid var(--line);border-radius:4px;padding:0 4px}.tag{font-size:11px;border-radius:4px;padding:0 5px}.tag.mine{background:var(--mine-soft);color:var(--mine)}.tag.both{background:var(--theirs-soft);color:var(--theirs)}.help{font-size:13px;color:var(--muted);margin-bottom:6px}.help summary{cursor:pointer}code{font-size:12px}.score-line{font-size:14px}.score-total{font-size:16px;margin:8px 0 4px}.scorecard{width:100%;border-collapse:collapse;margin:10px 0;font-size:13px}.scorecard th,.scorecard td{text-align:left;padding:4px 6px;border-bottom:1px solid var(--line)}.scorecard th:not(:first-child),.scorecard td:not(:first-child){text-align:right}.scorecard tfoot td{border-top:2px solid var(--ink);border-bottom:none;font-weight:600}.highscores{list-style:none;counter-reset:rank;margin:6px 0 12px;padding:10px 12px;background:#121212;color:#f4d35e;border-radius:6px;font-family:Courier New,ui-monospace,monospace;font-size:15px;letter-spacing:.08em}.highscores li{counter-increment:rank;display:flex;gap:14px;align-items:baseline;padding:1px 0}.highscores li:before{content:counter(rank) ".";width:2.2em;text-align:right;color:#8fd3ff}.highscores .initials{width:3.5em;font-weight:700}.highscores .toPar{width:3.5em;text-align:right}.highscores .hint{color:#9a9a9a;letter-spacing:0;font-size:12px}.highscores li.mine{color:#fff}.highscores li.mine .initials{animation:blink 1s step-end infinite}@keyframes blink{50%{opacity:0}}.initials-form{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:8px 0}.initials-form input{width:4.5em;text-transform:uppercase;font-family:Courier New,ui-monospace,monospace;font-size:22px;letter-spacing:.25em;text-align:center;padding:4px}.drafted{border-left:3px solid var(--theirs);padding:6px 10px;background:#d0452f14;border-radius:4px}.admits{margin-top:10px;padding:8px 10px;border-left:3px solid var(--target);background:#e8822c14;border-radius:4px}.admits-why{font-size:.9em;opacity:.8;margin:2px 0 6px}.admitting{font-style:italic;opacity:.8}.objective{margin:0 0 8px}.objective .now{font-weight:600;margin-left:4px}.tile .bacon{position:absolute;font-size:22px;color:#ffd23f;text-shadow:0 0 3px #000c;z-index:2;pointer-events:none}.kid .bacon.held{font-size:13px;top:-6px;right:-6px;position:absolute}.bacon-key{color:#ffd23f}.tile .hill-mark{position:absolute;top:3px;right:3px;bottom:3px;left:3px;border:2px solid #ffd23fbb;border-radius:6px;pointer-events:none}.tile .wave-mark{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:7px;pointer-events:none;background-image:repeating-linear-gradient(-45deg,#e8582c66 0 4px,transparent 4px 9px)}.legend .sw-hill{border:2px solid #ffd23fbb}.legend .sw-wave{background-image:repeating-linear-gradient(-45deg,#e8582c99 0 3px,transparent 3px 6px)}.their-plan{border-left:3px solid var(--theirs);padding:6px 10px;background:#d0452f14;border-radius:4px}.admits-answer{font-style:italic;margin-bottom:6px}.tip{color:var(--muted);margin:4px 0 12px}.tip a{color:var(--mine)}.intro{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20;display:flex;padding:16px;overflow-y:auto;background:#0008}.intro-card{margin:auto;max-width:540px;width:100%;padding:20px 22px;background:var(--panel);color:var(--ink);border:1px solid var(--line);border-radius:12px;box-shadow:0 12px 32px #0006;line-height:1.5}.intro-card h2{margin:0 0 10px;font-size:22px}.intro-card p{margin:0 0 10px}.intro-card .tip{margin:4px 0 0}
