@import"https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@500;700;800&family=Inter:wght@400;500;600&display=swap";*{box-sizing:border-box}body{margin:0;background:#111b21;color:#ecf0ea;font:14px Inter,Arial,sans-serif;overflow:hidden}canvas{display:block;width:100vw;height:100vh;outline:none;touch-action:none}header{position:absolute;top:32px;left:40px;right:40px;display:flex;justify-content:space-between;pointer-events:none}.brand{font:800 34px Barlow Condensed,sans-serif;letter-spacing:3px}.brand span{color:#d4ec82}.brand small{display:block;font:10px Inter,sans-serif;letter-spacing:2px;margin-top:7px;color:#aeb9b5}.stage{display:flex;align-items:center;gap:10px;font-size:11px;letter-spacing:2px}.stage i{background:#d4ec82;width:7px;height:7px;border-radius:50%}#intro{position:absolute;left:6vw;top:25vh;max-width:440px;pointer-events:none}#intro button{pointer-events:auto}.eyebrow{font-size:10px;letter-spacing:3px;color:#d4ec82}h1{font:700 clamp(48px,6vw,88px) / .95 "Barlow Condensed",sans-serif;text-transform:uppercase;margin:20px 0;letter-spacing:1px}#intro p:not(.eyebrow){color:#c3cbc8;line-height:1.8}button,select{font:600 11px Inter,sans-serif;cursor:pointer}button{border:1px solid #6c7a72;background:#14201ed9;color:#f0f4e9;padding:13px 16px;border-radius:3px}button:hover{background:#34483b}button:disabled{opacity:.5;cursor:wait}#enter{margin-top:15px;background:#d4ec82;color:#1d2b24;border:0;padding:20px 24px;letter-spacing:1px;display:flex;gap:40px}#status{font-size:11px;max-width:420px}aside{position:absolute;right:30px;top:110px;display:flex;flex-direction:column;align-items:stretch;gap:8px;max-width:260px}aside label{padding:9px;background:#101b20c9;font-size:11px}select{background:#26382f;color:#fff;border:0;padding:4px}pre{background:#101b20d9;padding:15px;font-size:11px;line-height:1.8;margin:0}footer{pointer-events:none;position:absolute;bottom:25px;left:40px;right:40px;display:flex;gap:25px;flex-wrap:wrap;font-size:10px;color:#afbbb5}footer b{color:#f0f3e9;margin-right:6px;font-weight:500}#reticle{position:absolute;top:50%;left:50%;opacity:.3;pointer-events:none}.playing #intro{top:auto;bottom:70px}.playing #intro h1,.playing #intro .eyebrow,.playing #intro p:not(#status),.playing #enter{display:none}@media(max-width:700px){header{left:20px;right:20px;top:20px}.brand{font-size:26px}.stage{font-size:8px}aside{right:15px;top:95px;max-width:180px}footer{left:20px;gap:10px}#intro{left:20px;top:28vh}#intro p{max-width:250px}}header{text-shadow:0 2px 5px #0009}footer{background:#101b20cf;padding:12px 16px;border-radius:3px;width:fit-content}.playing #status{background:#101b20cf;padding:6px 10px;border-radius:3px;color:#e8eee6}#combat-hud{position:absolute;left:40px;right:40px;bottom:80px;display:flex;justify-content:space-between;align-items:end;pointer-events:none;text-shadow:0 2px 4px #000b;gap:20px}#combat-hud small{display:block;font-size:9px;letter-spacing:2px;color:#d3e2dd;margin-bottom:5px}#combat-hud strong{font:700 42px Barlow Condensed,sans-serif}.ammo-block{text-align:right}.ammo-block>span{font-size:20px;color:#bdc6c2}.round-block{text-align:center}.round-block strong{font-size:24px}.round-block>span{display:block;margin-top:5px;font-size:11px;color:#e3e9df}.health-block strong{color:#d4ec82}#reticle{transform:translate(-50%,-50%);font:400 28px Arial;color:#deeeae;opacity:.9;text-shadow:0 0 3px #000;transition:color .08s,scale .08s}#reticle.hit{color:#ff9c56;scale:1.3}#reticle.aiming{scale:.7}.training #intro{display:none}.locked aside{opacity:0;pointer-events:none}.damaged:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;box-shadow:inset 0 0 100px 25px #c3222280;pointer-events:none}aside{top:100px;gap:5px;max-width:240px}aside button{padding:10px 12px;font-size:10px}.playing #intro{bottom:150px}footer{gap:16px;font-size:9px}body:not(.training):not(.playing) #combat-hud .round-block{opacity:.5}@media(max-width:700px){#combat-hud{left:20px;right:20px;bottom:105px}.round-block{max-width:180px}#combat-hud strong{font-size:30px}aside{max-width:185px}}aside{max-height:calc(100vh - 265px);overflow:auto;scrollbar-width:thin}#stats{white-space:pre-wrap;overflow-wrap:anywhere;max-height:220px;overflow:auto;font-size:10px}[hidden]{display:none!important}.survival #intro,.survival aside,.survival #combat-hud .round-block{display:none}.survival.debug-open aside{display:flex;z-index:5;top:160px;background:#111b20e8;padding:10px}.survival #combat-hud{bottom:76px}.survival-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:10;display:flex;align-items:center;padding:40px 6vw;background:linear-gradient(90deg,#0a1217fa,#0d171cf0 44%,#12202496);overflow:auto}.survival-card{max-width:610px;width:100%;max-height:90vh;overflow:auto;padding-right:15px}.survival-card h1{font-size:clamp(48px,6vw,78px);margin:12px 0 20px;line-height:.95}.menu-lead{font-size:13px;line-height:1.8;color:#aebbb8}.menu-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px;margin:20px 0 10px}.menu-grid label{font-size:9px;letter-spacing:2px;color:#bdc8c1}.menu-grid input:not([type=range]),.menu-grid select{display:block;width:100%;padding:12px;margin-top:7px;border:1px solid #43534e;background:#152328;color:#f1f3e9;border-radius:3px;font:500 13px Inter,Arial;letter-spacing:.3px}.menu-grid input[type=range]{display:block;width:100%;margin:12px 0;accent-color:#d4ec82}.menu-grid output{float:right;color:#d4ec82}.primary-action{background:#d4ec82;color:#17251e;border:0;padding:18px 24px;letter-spacing:1.5px;font-size:12px}.primary-action:hover{background:#e2f4a5}#start-survival{width:100%;margin:8px 0 16px}#difficulty-description,#profile-summary,#record-summary{font-size:11px;line-height:1.6;color:#adbeb5}#profile-summary{color:#d4ec82}#record-summary{margin-top:4px}.profile-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}.profile-actions button{font-size:10px}.survival-card details{margin-top:20px;color:#b9c6bf;font-size:11px;line-height:1.8}.survival-card summary{cursor:pointer;color:#dbe4dc}#menu-message{font-size:11px;line-height:1.6;color:#ffd192;min-height:18px}#gameover{background:#091217e8}#gameover-stats{padding:0;background:none;font:13px/2 Inter,Arial;color:#d2dbd4;margin:25px 0}#survival-hud{pointer-events:none}.xp-panel{position:absolute;left:40px;top:112px;width:190px;font-size:10px;text-shadow:0 2px 5px #000b}.xp-panel>span{display:block;font-size:12px;font-weight:600;margin-bottom:8px}.xp-panel b{font-size:10px;color:#d4ec82;letter-spacing:1.5px}.xp-panel small{color:#e2ebe0;font-size:9px}progress{accent-color:#d4ec82;height:5px;border:0;display:block;border-radius:2px;background:#0b171ac4}#xp-progress{width:190px;margin:7px 0}#health-bar{width:85px;margin-top:3px}.wave-panel{position:absolute;top:38px;left:50%;transform:translate(-50%);display:flex;gap:20px;background:#102022d9;padding:12px 18px;border-radius:3px}.wave-panel span{font-size:8px;letter-spacing:1px;color:#bfcec6}.wave-panel b{display:block;font:600 20px Barlow Condensed,Arial;color:#f1f4e9;margin-top:4px;letter-spacing:1px}#wave-notice{position:absolute;top:155px;left:50%;transform:translate(-50%);background:#0c1c20db;padding:13px 24px;font-size:11px;letter-spacing:2px;color:#e5f1be;pointer-events:none;text-align:center}body[data-game-state=MENU] #reticle,body[data-game-state=PREPARING] #reticle,body[data-game-state=GAME_OVER] #reticle{display:none}.survival footer{font-size:8px;gap:13px}.survival[data-game-state=MENU] footer,.survival[data-game-state=PREPARING] footer{display:none}@media(max-width:760px){.survival-overlay{padding:25px}.survival-card{max-height:94vh}.wave-panel{top:85px;gap:12px;width:max-content}.xp-panel{top:165px;left:20px;width:140px}#xp-progress{width:140px}#wave-notice{top:242px;width:80%}.survival-card h1{font-size:48px}.menu-grid{gap:10px}.survival #combat-hud{bottom:95px}}.survival:after{content:"";position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;box-shadow:inset 0 0 150px #03101845;z-index:1}.survival .wave-panel{background:linear-gradient(135deg,#132228ed,#172c31d9);border:1px solid #c7dfcf25;box-shadow:0 8px 25px #07131730;border-radius:7px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.survival .xp-panel{padding:14px 16px;background:linear-gradient(115deg,#0b1924c9,#14272e66);border-left:2px solid #c9e493;border-radius:0 6px 6px 0;width:222px}.survival-overlay{background:radial-gradient(ellipse at 95% 15%,#69897928,transparent 55%),linear-gradient(100deg,#07121cfa,#10232bee 52%,#172e3ac9);-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.survival-card .eyebrow{color:#bed48c;letter-spacing:3px}.survival-card h1{letter-spacing:-2px}.survival-card button{border-radius:5px;transition:background .15s,transform .15s}.survival-card button:hover{transform:translateY(-1px)}#pickup-prompt{position:absolute;bottom:190px;left:50%;transform:translate(-50%);z-index:4;padding:14px 22px;background:#0d1f29ed;border:1px solid #cbe79b88;border-radius:6px;color:#e2efcc;font-size:12px;text-align:center;pointer-events:none;box-shadow:0 5px 25px #0005}#inventory{position:absolute;right:40px;bottom:196px;max-width:38vw;text-align:right;z-index:3;font-size:10px;line-height:1.7;letter-spacing:.3px;color:#e0ead4;text-shadow:0 2px 5px #071319;pointer-events:none}body[data-game-state=MENU] #inventory,body[data-game-state=PREPARING] #inventory,body[data-game-state=GAME_OVER] #inventory{display:none}#weapon-name{letter-spacing:1.4px;font-size:10px}.survival .ammo-block{padding:12px 15px;background:#0c1c24b5;border-right:2px solid #cae695;border-radius:5px 0 0 5px}@media(max-width:760px){#inventory{right:20px;bottom:160px;max-width:55vw;font-size:9px}#pickup-prompt{bottom:220px;width:80%}.survival .xp-panel{width:175px;padding:10px}}
