.survivor-shell{position:fixed;inset:0;background:#101a24;color:#eee4cc;z-index:20;font:16px/1.45 system-ui,sans-serif}
.survivor-shell canvas{position:absolute;inset:0;width:100%;height:100%;touch-action:none}
.sv-hud{position:absolute;top:max(12px,env(safe-area-inset-top));left:16px;right:16px;display:flex;justify-content:space-between;gap:12px;pointer-events:none;font-weight:700;text-shadow:0 2px 3px #000}
.sv-hud button{pointer-events:auto;color:#eee4cc;background:#203344;border:1px solid #849097;padding:6px 12px}
.sv-stats{max-width:70%;font-size:14px}.sv-stats strong{font-size:23px;display:block}
.sv-modal{position:absolute;inset:0;background:#08111cd9;display:grid;place-items:center;padding:24px;overflow:auto}
.sv-panel{background:#1d2e3d;border:1px solid #72818a;width:min(540px,100%);padding:24px;max-height:90dvh;overflow:auto;box-shadow:0 18px 80px #0008}
.sv-panel h2{font:800 30px/1.2 system-ui;margin:8px 0 16px;color:#f7df9a}
.sv-panel p{margin:12px 0}.sv-panel small{color:#c0cbd0}
.sv-panel button{display:block;width:100%;padding:12px 16px;margin:10px 0;text-align:left;border:1px solid #738591;background:#293f50;color:#fff1cc}
.sv-panel button:hover{background:#3c596b}.sv-panel button:focus-visible,.sv-panel input:focus-visible{outline:3px solid #ffd05b;outline-offset:3px}
.sv-panel .sv-primary{background:#efd08a;color:#152a39;font-weight:800;border-color:#efd08a;text-align:center}
.sv-panel input{background:#101d29;border:2px solid #72818a;border-radius:0;color:#fff;font:24px system-ui;width:100%;padding:12px;min-height:52px}
.sv-panel label{display:block;margin-bottom:8px}.sv-feedback{color:#ffda8e;min-height:24px}
.sv-label{color:#bcd1d6;letter-spacing:.12em;font-size:12px}.sv-key{font-size:24px;font-weight:800}
.sv-toast{position:absolute;bottom:max(130px,env(safe-area-inset-bottom));left:20px;right:20px;text-align:center;pointer-events:none;color:#ffe6a0;text-shadow:0 2px 4px #000}
.sv-help{position:absolute;bottom:max(12px,env(safe-area-inset-bottom));left:16px;right:16px;color:#b6c2cc;font-size:12px;pointer-events:none}
.sv-choices{display:grid;gap:8px}.sv-panel progress{height:8px}
.sv-panel .sv-exit{background:none;border:0;text-align:center;text-decoration:underline;color:#c0cbd0}
@media(max-width:520px){.sv-modal{padding:16px}.sv-panel{padding:20px}.sv-hud{left:12px;right:12px}.sv-panel h2{font-size:26px}}

.sv-won .sv-modal{background:#08111c50}
.sv-panel{background:#182b30;border:1px solid #b99b62;box-shadow:0 0 0 5px #152329,0 24px 90px #0009}
.sv-panel h2{font-family:Georgia,"Songti SC",serif;letter-spacing:.03em}
.sv-panel button{border-color:#687e79;background:#263f42}
.sv-letter-grid{display:flex;flex-wrap:wrap;gap:5px;margin:18px 0}
.sv-panel .sv-slot{width:30px;min-width:30px;height:42px;min-height:42px;margin:0;padding:0;text-align:center;font:700 24px Georgia,serif;background:#0e1e24;border:1px solid #6b8b8b;border-bottom:3px solid #8aa5a0}
.sv-panel .sv-slot.active{border-color:#f9d78d;background:#36504d;box-shadow:0 0 0 1px #f9d78d}
.sv-word-gap{width:14px}.sv-punctuation{align-self:center;color:#c1cfc6}
.sv-keyboard>div{display:flex;justify-content:center;gap:4px;margin:5px 0}
.sv-panel .sv-keyboard button{flex:1;min-width:0;min-height:42px;margin:0;padding:6px 0;text-align:center;font-size:18px;border-radius:4px;background:#345252;border:1px solid #79958b;box-shadow:0 3px 0 #0f1f24}
.sv-panel .sv-keyboard button:active{transform:translateY(2px);box-shadow:none}
.sv-panel .sv-keyboard>div:last-child{margin-top:12px}
.sv-panel .sv-keyboard>div:last-child button:last-child{background:#eacb85;color:#14262a;font-weight:800}
.sv-weapon-icon{width:54px;height:54px;flex-shrink:0;filter:drop-shadow(0 2px 6px #0008)}
.sv-panel button[data-sv^="pick:"]{display:flex;align-items:center;gap:16px;padding:15px 12px;min-height:86px;background:#233c3c;border-color:#6e887c}
.sv-panel button[data-sv^="pick:"]:hover{border-color:#edcb83;background:#36504a}
.sv-panel button[data-sv^="pick:"] strong{font-size:19px}
.sv-panel button[data-sv^="pick:"] small{display:inline-block;margin-top:5px;line-height:1.4}
.sv-hud{background:#101d2ae8;border:1px solid #6b7c82;border-radius:12px;padding:12px 14px;box-shadow:0 5px 24px #07101a88;align-items:flex-start}
.sv-hud button{border:1px solid #7b928e;border-radius:7px;background:#293e49;color:#f8ddb0;min-height:40px}
.sv-stats{font-size:12px;color:#c2d6d7;max-width:80%;font-weight:500}.sv-stats strong{font-family:Georgia,serif;font-size:27px;color:#fff0c9;margin-bottom:3px}
.sv-panel{position:relative;border-radius:18px;background:linear-gradient(145deg,#2c4350,#142330 75%);border:1px solid #b6a27a;box-shadow:0 0 0 4px #12202bbf,0 22px 90px #000b;padding:26px}
.sv-panel h2{font-size:29px;color:#ffe1a0;text-shadow:0 2px 8px #0007}.sv-label{font-size:10px;letter-spacing:.18em;color:#9fbac4}
.sv-modal{background:#07131ca8}
.sv-panel button{border-radius:8px}
.sv-panel button[data-sv^="pick:"]{background:linear-gradient(110deg,#314c59,#213541);border:1px solid #6e8d97;box-shadow:inset 0 1px 0 #b5d7de25,0 5px 10px #0002}
.sv-weapon-icon{background:#142832;border:1px solid #9eb5ae66;border-radius:10px;padding:5px;width:62px;height:62px}
.sv-panel .sv-primary{background:linear-gradient(#f1d59a,#cfa75e);border-color:#f9dfa8;box-shadow:0 3px 0 #6a5735;color:#1c303b}
.sv-panel .sv-slot{border-radius:5px;background:#0d202b;box-shadow:inset 0 2px 4px #0006}
.sv-toast{background:#13232ec9;border:1px solid #a3906266;border-radius:20px;left:50%;right:auto;transform:translateX(-50%);width:max-content;max-width:90%;padding:7px 15px;font-size:13px}.sv-toast:empty{display:none}
.sv-help{color:#e2ede6;text-shadow:0 2px 4px #000}
.sv-panel button.sv-picked[data-sv^="pick:"]{border:2px solid #f1d59a;background:#36524f;box-shadow:inset 4px 0 #f1d59a}
.sv-panel button[data-sv="gear-confirm"]:disabled{opacity:.45;cursor:default}
/* DungeonTileset II: crisp pixels and stone / brass interface. */
.survivor-shell canvas{image-rendering:pixelated}
.sv-modal>div{border-radius:3px;background:#25222eeF;border:3px solid #71645c;box-shadow:0 0 0 3px #13121c,0 12px 0 #13121c80}
.sv-modal button{border-radius:3px}
.sv-weapon-icon{image-rendering:pixelated;object-fit:contain;width:48px;height:64px;padding:6px;filter:drop-shadow(3px 3px 0 #10101b)}
.sv-hud{color:#f3dfba;text-shadow:2px 2px #17131e}
.sv-panel{color:var(--ink)}
#sv-chest{background:var(--green);color:var(--white-ink);border:var(--pixel-edge) solid var(--line);font-weight:750}
#sv-chest[hidden]{display:none}
.sv-hud{gap:var(--s1)}
.sv-modal .sv-panel,.sv-hud{border-radius:0;background:var(--page);border-color:var(--line)}
@media(max-width:480px){#sv-chest{font-size:.75rem;max-width:100px;padding:var(--s1)}.sv-hud .sv-stats{min-width:0;font-size:.7rem}}
#sv-pause{flex-shrink:0;white-space:nowrap;padding:var(--s1)}
#sv-chest{flex-shrink:0}
/* Combat overlays share the same stone panels and brass controls as every page. */
.sv-modal{background:#111019c9}
.sv-modal .sv-panel{background:var(--page);border:3px solid var(--line);border-radius:0;box-shadow:var(--panel-shadow);padding:var(--s4)}
.sv-panel h2,.sv-stats strong{font-family:var(--sans);color:var(--green);text-shadow:none}
.sv-label,.sv-panel small,.sv-stats{color:var(--muted)}
.sv-panel button,.sv-panel button[data-sv^="pick:"],.sv-panel .sv-keyboard button,.sv-hud button{background:var(--deep);color:var(--ink);border:2px solid var(--line);border-radius:0;box-shadow:var(--panel-shadow)}
.sv-panel button:hover,.sv-panel button[data-sv^="pick:"]:hover{background:var(--wash);border-color:var(--green)}
.sv-panel .sv-primary,.sv-panel .sv-keyboard>div:last-child button:last-child{background:var(--green);color:var(--deep);border-color:var(--ink);box-shadow:var(--panel-shadow)}
.sv-panel button.sv-picked[data-sv^="pick:"]{background:var(--wash);border:2px solid var(--green);box-shadow:inset 4px 0 var(--green)}
.sv-weapon-icon{background:var(--deep);border:0;border-radius:0;box-shadow:none}
.sv-panel .sv-slot{background:var(--deep);border:2px solid var(--line);border-radius:0;box-shadow:none;color:var(--ink);font-family:monospace}
.sv-panel .sv-slot.active{background:var(--wash);border-color:var(--green);box-shadow:none}
.sv-toast{background:var(--deep);color:var(--green);border:2px solid var(--line);border-radius:0;text-shadow:none}
.sv-hud{box-shadow:var(--panel-shadow);text-shadow:none}
#sv-chest:disabled{opacity:1;background:var(--deep);color:var(--muted);border-color:var(--line)}
#sv-chest.sv-chest-ready{background:var(--green);color:var(--deep);border-color:var(--ink);box-shadow:3px 3px 0 var(--deep)}
#sv-chest{display:flex;align-items:center;text-align:center;justify-content:center;padding:var(--s1);background:var(--deep);color:var(--muted);font-size:.8rem}
.sv-bonus-options{display:flex;gap:var(--s1)}
.sv-bonus-options button{font-size:.82rem;padding:var(--s1)}
.sv-bonus-options button[aria-pressed=true]{border-color:var(--green);color:var(--green)}
.sv-starter{display:grid;gap:var(--s1)}
.sv-starter button{display:flex;align-items:center;gap:var(--s2);text-align:left}
.sv-starter button[aria-pressed=true]{border-color:var(--green);box-shadow:inset 4px 0 var(--green)}
html.survivor-active,html.survivor-active body{overflow:hidden;overscroll-behavior:none}
.survivor-shell{right:auto;bottom:auto;overflow:hidden;isolation:isolate}
.survivor-shell canvas{display:block;image-rendering:auto}
.sv-modal{overscroll-behavior:contain}
