:root{--ink:#2a1e2e;--paper:#fbf3e0;--paper-edge:#e8d8b4;--red:#d8344a;--blue:#2a6ab0;--sun:#f8c83a;--sea:#3a8ab8;--night:#14121c;--panel:#241c2c;--panel-hi:#3a2e44;--stage-w:800px;--stage-h:400px}*{box-sizing:border-box}html,body{background:var(--night);height:100%;color:var(--paper);-webkit-user-select:none;user-select:none;margin:0;font-family:Nunito,system-ui,sans-serif;overflow:hidden}#app{flex-direction:column;justify-content:center;align-items:center;gap:6px;height:100%;padding:6px;display:flex}#stage{width:var(--stage-w);height:var(--stage-h);background:#000;flex:none;position:relative;box-shadow:0 0 0 3px #3a2e44,0 8px 30px #0009}#game{width:100%;height:100%;image-rendering:pixelated;cursor:none;touch-action:none;display:block}button{font:inherit;cursor:pointer}.screen{background:#14121c59;justify-content:center;align-items:center;padding:3%;display:flex;position:absolute;inset:0}.screen.dim{background:#14121ca6}.screen[hidden]{display:none}.postcard{background:var(--paper);color:var(--ink);max-width:min(640px,100%);max-height:100%;box-shadow:0 0 0 6px var(--paper), 0 0 0 8px var(--red), 0 0 0 11px var(--paper), 0 0 0 13px var(--blue), 0 14px 40px #00000080;text-align:center;border-radius:6px;padding:clamp(14px,3vw,30px) clamp(16px,4vw,40px);position:relative;overflow:auto}.kicker{letter-spacing:.08em;text-transform:uppercase;color:var(--red);margin:0;font-family:Silkscreen,monospace;font-size:13px}h1,h2,h3{margin:.1em 0 .2em;font-family:Shrikhand,cursive;font-weight:400;line-height:1.05}h1{color:var(--red);text-shadow:3px 3px 0 var(--sun), 6px 6px 0 var(--blue);letter-spacing:.01em;font-size:clamp(36px,7vw,72px)}h2{color:var(--blue);text-shadow:2px 2px 0 var(--sun);font-size:clamp(24px,4.2vw,40px)}h3{color:var(--red);font-size:clamp(16px,2.6vw,24px)}#parade{width:100%;max-width:600px;image-rendering:pixelated;margin:4px auto 0;display:block}.lede{max-width:34em;margin:.4em auto 1em;font-size:clamp(14px,1.8vw,17px);line-height:1.45}.buttons{flex-wrap:wrap;justify-content:center;gap:10px;margin-top:14px;display:flex}.buttons button{background:var(--paper-edge);color:var(--ink);border:0;border-radius:999px;padding:9px 18px;font-weight:800;box-shadow:0 3px #b8a07a}.buttons button.big{background:var(--red);color:#fff;padding:11px 24px;font-size:1.1em;box-shadow:0 4px #8a1e2e}.buttons button:hover,.buttons button:focus-visible{outline:3px solid var(--sun);outline-offset:2px;transform:translateY(-1px)}.buttons button:active{box-shadow:none;transform:translateY(2px)}.settings{justify-content:center;gap:18px;margin-top:14px;font-size:14px;display:flex}.sheet{background:var(--paper);color:var(--ink);border-radius:6px;flex-direction:column;width:100%;height:100%;padding:14px 18px;display:flex;box-shadow:0 10px 30px #00000080}.sheet-head{justify-content:space-between;align-items:center;display:flex}.sheet-head h2{margin:0}.sheet-head button{background:var(--paper-edge);border:0;border-radius:999px;padding:8px 16px;font-weight:800}.level-grid{flex:1;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));align-content:start;gap:10px;margin-top:10px;padding:4px;display:grid;overflow:auto}.level-card{text-align:left;color:var(--ink);box-shadow:0 0 0 2px var(--paper-edge), 0 3px 0 2px var(--paper-edge);background:#fff;border:0;border-radius:4px;min-height:92px;padding:10px 10px 8px;position:relative}.level-card:hover:not(:disabled),.level-card:focus-visible{outline:3px solid var(--sun)}.level-card .num{color:var(--red);font-family:Silkscreen,monospace;font-size:11px}.level-card .place{color:var(--blue);font-family:Shrikhand,cursive;font-size:18px;line-height:1.1;display:block}.level-card .name{margin-top:2px;font-size:12px;display:block}.level-card .best{background:var(--sun);border-radius:3px;padding:1px 4px;font-family:Silkscreen,monospace;font-size:11px;position:absolute;top:8px;right:8px}.level-card.done .best{background:#7ad07a}.level-card:disabled{opacity:.45;cursor:not-allowed}.facts{flex-wrap:wrap;justify-content:center;gap:6px 14px;margin:10px 0;padding:0;font-size:14px;list-style:none;display:flex}.facts b{color:var(--red)}.brief-skills{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.brief-skill{box-shadow:0 0 0 2px var(--paper-edge);text-align:left;background:#fff;border-radius:4px;align-items:center;gap:6px;max-width:260px;padding:4px 8px 4px 4px;font-size:12px;display:flex}.brief-skill canvas{width:34px;height:46px;image-rendering:pixelated;flex:none}.brief-skill b{font-size:13px;display:block}.score{margin:6px 0;font-family:Silkscreen,monospace;font-size:clamp(18px,3vw,26px)}.casualties{columns:2;text-align:left;max-width:30em;margin:8px auto 0;padding:0;font-size:13px;list-style:none}#panel{width:var(--stage-w);background:var(--panel);border-radius:6px;flex:none;padding:6px 8px 8px;font-family:Silkscreen,monospace}#panel[hidden]{display:none}.status{color:#d8cce0;white-space:nowrap;gap:18px;padding:0 4px 6px;font-size:13px;display:flex;overflow:hidden}.status b{color:var(--sun);font-weight:400}.status .hover{color:#fff;text-overflow:ellipsis;flex:1;overflow:hidden}.controls{flex-wrap:wrap;align-items:stretch;gap:4px;display:flex}.skills{flex-wrap:wrap;gap:4px;display:flex}.tool{background:var(--panel-hi);color:#fff;border:0;border-radius:4px;flex-direction:column;justify-content:center;align-items:center;width:46px;min-height:64px;padding:2px;font-family:Silkscreen,monospace;display:flex;position:relative;box-shadow:inset 0 -3px #00000059}.tool:hover{background:#4a3c58}.tool .sym{font-size:20px;line-height:1}.tool b{color:var(--sun);font-size:13px;font-weight:400}.tool small{color:#d8cce0;margin-top:3px;font-size:8px;line-height:1}.skill canvas{width:34px;height:46px;image-rendering:pixelated;margin-top:-6px}.skill .count{text-align:center;color:var(--sun);font-size:13px;position:absolute;top:2px;left:0;right:0}.skill .key{color:#a898b4;font-size:8px;position:absolute;bottom:2px;right:4px}.skill .label{margin-top:-4px;font-size:8px}.skill.selected{background:var(--paper);color:var(--ink);box-shadow:0 0 0 2px var(--sun)}.skill.selected .count{color:var(--red)}.skill.empty{opacity:.4}.tool.on{background:var(--sun);color:var(--ink)}.tool.nuke{background:#6a1e2e}.tool.nuke.armed{background:var(--red);animation:.4s infinite alternate throb}@keyframes throb{to{transform:scale(1.06)}}#minimap{min-width:80px;height:64px;image-rendering:pixelated;cursor:pointer;background:#10141c;border-radius:4px;flex:1}@media (width<=700px){.status{gap:10px;font-size:11px}.tool{width:36px;min-height:56px}.skill canvas{width:26px;height:36px}.skill .label,.tool small{display:none}}
