:root{font-family:Arial,Helvetica,sans-serif;color:#e4e1d6;background:#0a111a;font-synthesis:none;-webkit-text-size-adjust:100%;text-size-adjust:100%;--amber: #e2b76b;--muted: #99acb8}*{box-sizing:border-box}html,body,#app{margin:0;width:100%;height:100%;overflow:hidden;overscroll-behavior:none}body{touch-action:none;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer;touch-action:manipulation}button:focus-visible{outline:2px solid #e2b76b;outline-offset:3px}button:disabled{opacity:.5}button,.character{transition:background .15s,border-color .15s}button:active{transform:scale(.97)}[hidden]{display:none!important}#game{position:absolute;top:0;right:0;bottom:0;left:0}canvas{display:block}.screen{position:absolute;top:0;right:0;bottom:0;left:0;z-index:10}#menu{background:linear-gradient(90deg,#070d15cc,#070d1580),url(/assets/night.webp) center/cover;padding:max(16px,env(safe-area-inset-top)) max(26px,env(safe-area-inset-right)) max(12px,env(safe-area-inset-bottom)) max(26px,env(safe-area-inset-left));display:flex;flex-direction:column;overflow-y:auto;touch-action:pan-y}.menu-top{display:flex;justify-content:space-between;align-items:center;height:32px;flex-shrink:0}.brand-mark{font-size:32px;color:var(--amber)}.quiet{border:0;background:transparent;font-size:11px;padding:9px 0;color:#becbd0}.menu-layout{display:grid;grid-template-columns:.83fr 1.6fr;gap:35px;align-items:center;flex:1 0 auto;min-height:min-content;padding-block:10px}.intro{padding-bottom:10px}.edition{font-size:10px;color:#c6a46b;margin:5px 0 8px}h1{font:700 clamp(35px,6.3vw,76px)/.85 Georgia,serif;letter-spacing:-2px;margin:0;text-shadow:0 4px 24px #000}h1 span{display:block;font:400 14px/1.5 Arial,sans-serif;letter-spacing:6px;text-transform:uppercase;color:#c38370;margin-top:13px}.tagline{font-size:12px;line-height:1.7;color:#afbdc6;margin:18px 0}.record{font-size:10px;color:#9baeb8;display:flex;align-items:center;gap:12px}.record strong{font-size:16px;color:#e4e1d6;font-variant-numeric:tabular-nums}.selection h2{font-size:14px;font-weight:400;margin:0 0 13px}.characters{display:grid;grid-template-columns:repeat(4,1fr);gap:9px}.character{position:relative;overflow:hidden;min-width:0;padding:6px 8px 11px;border:1px solid #40515c;background:linear-gradient(#253441aa,#101923e8);text-align:left;clip-path:polygon(0 0,100% 0,100% calc(100% - 9px),calc(100% - 9px) 100%,0 100%)}.character.selected{border-color:var(--amber);background:linear-gradient(#4c463688,#14212deb);box-shadow:inset 0 -3px var(--amber)}.character .portrait{height:clamp(75px,23vh,145px);display:block;margin:0 auto 7px;max-width:100%;object-fit:contain;filter:drop-shadow(0 8px 12px #0009)}.character b{display:block;font:700 clamp(12px,1.8vw,17px) Georgia,serif;white-space:nowrap}.character small{display:block;color:#a8bac5;font-size:9px;margin-top:5px}.selected-check{position:absolute;top:8px;right:8px;font-size:11px;color:var(--amber);visibility:hidden}.selected .selected-check{visibility:visible}.deploy-row{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:14px}.deploy-row strong{font-size:12px;color:var(--amber)}.deploy-row p{font-size:10px;line-height:1.5;color:#aab9c2;margin:4px 0}.primary{background:var(--amber);border:1px solid #f2ce8c;color:#17202a;font-weight:700;padding:13px 18px;font-size:12px;white-space:nowrap;box-shadow:0 4px 20px #0005}.primary span{padding-left:15px;font-size:19px;line-height:10px}.instructions{font-size:10px;line-height:1.7;color:#8fa4b0;margin-bottom:0}footer{display:flex;justify-content:space-between;align-items:center;font-size:9px;color:#8094a0;min-height:30px;flex-shrink:0}#hud{position:absolute;top:0;right:0;bottom:0;left:0;z-index:5;pointer-events:none;padding:max(12px,env(safe-area-inset-top)) max(15px,env(safe-area-inset-right)) 0 max(15px,env(safe-area-inset-left))}.hud-top{display:flex;align-items:start;justify-content:space-between;gap:15px}.vitals{display:flex;gap:8px;align-items:center;width:170px}.vitals img{height:45px;width:38px;object-fit:contain;filter:drop-shadow(0 2px 6px #000)}.vitals>div{flex:1}.vitals b{font-size:11px;text-shadow:0 1px 5px #000}.health,.xp{height:5px;background:#202934;border-radius:3px;overflow:hidden}.health{margin:5px 0 1px}.health i,.xp i{display:block;width:100%;height:100%;background:#bb6258}.vitals small{font-size:9px;color:#c5cccd}.run-stats{display:flex;flex-direction:column;align-items:center;gap:2px;text-shadow:0 2px 6px #000;position:absolute;left:50%;transform:translate(-50%)}.run-stats strong{font-size:22px;letter-spacing:2px;font-variant-numeric:tabular-nums}.run-stats span{font-size:10px;color:#c0c7ca}.hud-button{pointer-events:auto;border:1px solid #748b9a66;background:#0d1b2bc9;border-radius:50%;width:37px;height:37px;font-size:18px}.xp-row{display:flex;align-items:center;gap:8px;margin-top:6px;width:170px}.xp-row span{font-size:9px;white-space:nowrap}.xp{height:3px;flex:1}.xp i{background:#7bbcd2;width:0}#announcement{text-align:center;position:absolute;left:25%;right:25%;top:24%;color:#f1d399;font:22px Georgia,serif;text-shadow:0 2px 10px #000;opacity:0;transition:opacity .3s}#announcement.visible{opacity:1}#weapons{position:absolute;left:50%;bottom:max(13px,env(safe-area-inset-bottom));transform:translate(-50%);display:flex;gap:5px;pointer-events:auto}#weapons button{min-width:49px;padding:6px 8px;border:1px solid #63768588;background:#0e1b28d9;font-size:9px;border-radius:4px}#weapons button.active{border-color:var(--amber);color:var(--amber);background:#443923cc}#weapons b{display:block;font-size:16px;height:20px;font-weight:400}#weapons small{display:block;font-size:9px;color:#a4b6bf;margin-top:2px}#controls{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.stick{position:absolute;bottom:max(20px,env(safe-area-inset-bottom));width:126px;height:126px;pointer-events:auto;border-radius:50%;touch-action:none;background:#18344720;border:1px solid #acc9d42a}.stick-ring{position:absolute;top:21px;right:21px;bottom:21px;left:21px;border:1px solid #acc9d440;border-radius:50%}.stick i{position:absolute;width:44px;height:44px;background:#b7d0db28;border:1px solid #bdd8e050;left:40px;top:40px;border-radius:50%;pointer-events:none}.stick span{position:absolute;bottom:13px;left:0;right:0;text-align:center;font-size:9px;color:#bfced477}#move-stick{left:max(22px,env(safe-area-inset-left))}#aim-stick{right:max(22px,env(safe-area-inset-right))}.action-buttons{position:absolute;right:max(33px,env(safe-area-inset-right));bottom:167px;display:flex;gap:9px;pointer-events:auto}.action-buttons button{border:1px solid #a5bbc65c;border-radius:50%;height:54px;width:54px;font-size:9px;background:#142534d9;color:#e7d5b2;box-shadow:0 2px 14px #0004}.action-buttons small{display:block;color:#9bb0bb;font-size:8px;margin-top:4px}.modal{background:#070e17d9;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:grid;place-items:center;padding:16px 45px;z-index:15}.modal-panel{text-align:center;width:min(650px,100%);max-height:100%;overflow:auto;padding:16px}.modal h2{font:30px Georgia,serif;margin:0 0 12px}.modal p{font-size:12px;color:#b8c4cc;line-height:1.7}.modal-buttons{display:flex;justify-content:center;gap:12px;margin-top:20px}.secondary{border:1px solid #5f7483;background:#172838;padding:12px 20px;font-size:12px}.upgrades{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:20px}.upgrade{padding:17px 12px;background:linear-gradient(#263d4d,#132332);border:1px solid #5c7a8c;text-align:left;min-height:130px}.upgrade span{display:block;font-size:28px;color:var(--amber);margin-bottom:12px}.upgrade b{font-size:13px;display:block}.upgrade p{font-size:11px}.result-stats{display:flex;justify-content:center;gap:40px;margin:20px 0}.result-stats b{display:block;font-size:26px;color:var(--amber)}.result-stats small{font-size:11px;color:#a4b8c6}.device-screen{position:absolute;top:0;right:0;bottom:0;left:0;z-index:30;background:radial-gradient(ellipse at center,#233744,#0a111a 75%);display:none;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:24px}.device-screen h2{font:30px Georgia,serif;margin-bottom:10px}.device-screen p{font-size:14px;line-height:1.8;color:#aabdc8}.phone-icon{font-size:65px;color:var(--amber)}.desktop-url{color:var(--amber)!important}#loading{display:flex;z-index:40}a{color:var(--amber)}@media(orientation:portrait){#rotate{display:flex}}@media(hover:hover)and (pointer:fine){#desktop{display:flex}}@media(max-height:390px){#menu{padding-top:8px;padding-bottom:4px}.menu-top{height:23px}.menu-layout{gap:20px}.character .portrait{height:82px}.character b{font-size:15px}.character small{font-size:8px}.deploy-row{margin-top:9px}.instructions{font-size:9px;margin-top:5px}.tagline{margin:12px 0}.selection h2{margin-bottom:8px}h1{font-size:46px}.stick{width:110px;height:110px;bottom:15px}.stick i{left:32px;top:32px}.stick-ring{top:16px;right:16px;bottom:16px;left:16px}.action-buttons{bottom:139px}.modal-panel{padding:5px}.upgrade{min-height:112px;padding:11px}.upgrades{margin-top:12px}.upgrade span{margin-bottom:7px}}@media(prefers-reduced-motion:reduce){*{transition:none!important}}#boss-bar{position:absolute;top:87px;left:35%;right:35%;text-align:center;font-size:11px;color:#c99d93}#boss-bar>div{height:5px;background:#2e252b;margin-top:5px}#boss-bar i{display:block;height:100%;background:#b75f54;width:100%}@media(max-height:300px)and (orientation:landscape){.menu-top{height:20px}.menu-layout{grid-template-columns:.65fr 1.8fr;gap:16px;padding-block:6px}.intro .edition,.tagline,.instructions,.deploy-row p{display:none}h1{font-size:38px}h1 span{font-size:11px;letter-spacing:4px;margin-top:8px}.record{margin-top:12px}.selection h2{font-size:12px;margin-bottom:6px}.character{padding:4px 6px 7px}.character .portrait{height:clamp(38px,20vh,60px);margin-bottom:4px}.character b{font-size:13px}.character small{font-size:7px;margin-top:3px}.deploy-row{margin-top:7px}#start{min-height:44px;padding:10px 14px}}.game-options{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:10px;font-size:11px}.game-options label{display:flex;align-items:center;gap:6px}.game-options select,.field select{background:#152634;color:#e4e1d6;border:1px solid #607c8c;padding:8px;border-radius:3px;font:inherit}.game-options .secondary{padding:9px 12px;font-size:11px}.game-options .quiet{padding:8px}.field{display:flex;align-items:center;justify-content:center;gap:12px;font-size:13px;margin:16px 0}.field input,.join-row input{min-height:42px;max-width:220px;border:1px solid #607c8c;background:#142332;color:#e4e1d6;padding:10px;font:inherit;border-radius:3px;-webkit-user-select:text;user-select:text;touch-action:auto}.join-row{display:flex;justify-content:center;gap:8px;margin:16px 0}.room-code{font-size:28px;letter-spacing:7px;color:#e2b76b;-webkit-user-select:all;user-select:all;margin:15px}.lobby-players{display:flex;justify-content:center;gap:16px}.lobby-players>div{display:flex;flex-direction:column;align-items:center;font-size:12px;gap:5px}.lobby-players img{height:62px;width:55px;object-fit:contain}.lobby-players small{color:#9ac7bc;font-size:10px}.score-table{overflow:auto;max-height:45vh;margin:16px 0;touch-action:pan-y}.score-table table{width:100%;border-collapse:collapse;font-size:12px;text-align:left}.score-table th,.score-table td{padding:10px 8px;border-bottom:1px solid #47607155}.score-table th{color:#e2b76b}.squad-results>div{display:flex;justify-content:space-between;padding:10px;border-bottom:1px solid #47607155;font-size:13px}#squad-status{position:absolute;top:86px;left:15px;right:15px;text-align:center;color:#abd2dc;font-size:10px;text-shadow:0 1px 3px #000;margin:0}.modal-panel{touch-action:pan-y}.modal input[type=range]{touch-action:pan-x;width:200px;accent-color:#e2b76b}.modal-buttons{flex-wrap:wrap}.modal .quiet{padding:12px}.modal input{user-select:text;-webkit-user-select:text}.character.selected .portrait{animation:survivor-ready .3s ease-out}@keyframes survivor-ready{0%{transform:scale(.9);opacity:.6}to{transform:scale(1);opacity:1}}@media(max-height:300px){.game-options{gap:6px;margin-top:6px}.game-options select{padding:5px}.game-options .secondary{padding:7px}.lobby-players img{height:40px}.room-code{font-size:22px;margin:8px}.modal h2{font-size:24px}.field{margin:8px 0}.modal-buttons{margin-top:10px}.modal-panel{padding:5px}.modal p{margin:8px 0;font-size:11px}}@media(prefers-reduced-motion:reduce){.character.selected .portrait{animation:none}}#wave-preview{position:absolute;bottom:max(78px,env(safe-area-inset-bottom));left:23%;right:23%;margin:0;text-align:center;font-size:10px;line-height:1.4;color:#d4c7a4;text-shadow:0 1px 4px #000;pointer-events:none}.bestiary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;text-align:left;margin:18px 0}.bestiary article{display:flex;gap:10px;background:#1d3042;border:1px solid #496577;padding:10px}.bestiary i{flex:0 0 18px;height:23px;border-radius:8px 8px 3px 3px;margin-top:4px;box-shadow:0 0 10px #0005}.bestiary b{font-size:13px}.bestiary small{display:block;font-size:10px;color:#e2b76b;margin-top:3px}.bestiary p{font-size:11px;margin:6px 0 0}.upgrade-reward{position:absolute;top:0;right:0;bottom:0;left:0;z-index:25;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#09111dec;pointer-events:auto;text-align:center;box-shadow:inset 0 0 90px #e2b76b20}.reward-reels{display:flex;gap:10px;margin-bottom:18px}.reward-reels span{display:grid;place-items:center;width:62px;height:70px;border:2px solid #d4ad65;background:linear-gradient(#233744,#131e2b);font-size:34px;color:#f0d794;border-radius:6px;animation:reward-reel .18s linear 3}.upgrade-reward strong{font:28px Georgia,serif;color:#f0d794}.upgrade-reward p{color:#becdd5;font-size:14px}.reward-won .reward-reels{filter:drop-shadow(0 0 16px #edc35f);transform:scale(1.08);transition:transform .2s}.reward-won{box-shadow:inset 0 0 100px #e2b76b35}@keyframes reward-reel{0%{transform:translateY(-8px);opacity:.4}50%{transform:translateY(8px);opacity:1}to{transform:translateY(-8px);opacity:.4}}@media(max-height:300px){.reward-reels span{height:50px;width:48px;font-size:28px}.upgrade-reward strong{font-size:22px}}@media(prefers-reduced-motion:reduce){.reward-reels span{animation:none}.reward-won .reward-reels{transform:none}}.reward-reels svg{width:34px;height:34px;fill:currentColor}#boss-bar{top:110px}@media(max-height:300px){#boss-bar{top:78px}#squad-status{top:57px}.reward-reels svg{width:28px;height:28px}}.public-games{display:grid;gap:8px;margin:12px 0;text-align:left}.public-game{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 14px;border:1px solid #536b73;background:#14232b;color:#f1edda;text-align:left}.public-game span{display:grid;gap:4px}.public-game small{color:#b1c6cb}.public-game strong{color:#e2b76b;white-space:nowrap}
