*{box-sizing:border-box}body{margin:0;overflow:hidden;background:#11181a;color:#e9e9dc;font-family:'IBM Plex Mono',monospace}canvas{display:block;width:100vw;height:100vh;cursor:none}header{position:absolute;top:27px;left:32px;right:32px;display:flex;align-items:center;justify-content:space-between;pointer-events:none}.brand{font-family:'Barlow Condensed',sans-serif;font-size:29px;font-weight:800;letter-spacing:3px}.brand span{color:#cbd879}.brand small{display:block;font-family:monospace;font-size:9px;letter-spacing:3px;margin-top:3px;color:#a5ad9c}.tag{font-size:10px;letter-spacing:2px;color:#9fa896;border:1px solid #67705b;padding:9px 13px}#hud{position:absolute;top:110px;left:32px;display:flex;gap:32px;pointer-events:none}small{display:block;font-size:9px;letter-spacing:2px;color:#a7b4a4;margin-bottom:8px}strong{font-size:26px;font-weight:500}.health{width:130px;height:7px;background:#334039;margin-top:18px}.health i{display:block;background:#d6db88;height:100%;width:100%}.ammo{border-left:1px solid #58604e;padding-left:26px}.ammo em{font-size:10px;font-style:normal;color:#a7b4a4}footer{position:absolute;bottom:22px;left:32px;right:32px;display:flex;justify-content:space-between;font-size:9px;letter-spacing:1px;color:#a7b4a4;pointer-events:none}footer i{font-style:normal;color:#d4de89;padding:0 7px}.overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:linear-gradient(90deg,#10191aee,#10191a77);backdrop-filter:blur(3px)}.panel{width:510px;padding:35px}.eyebrow{font-size:10px;letter-spacing:3px;color:#d4de89}h1{font-family:'Barlow Condensed',Impact,sans-serif;font-size:90px;line-height:.9;letter-spacing:1px;margin:23px 0}h1 span{color:#d4de89}p{font-size:12px;line-height:1.9;color:#bbc4b8}button{width:100%;border:0;background:#d4de89;color:#172021;padding:19px 22px;font-family:inherit;font-weight:bold;letter-spacing:2px;text-align:left;cursor:pointer;margin:18px 0}button:hover{background:#edf5a5}button span{float:right}.instructions{font-size:11px;line-height:2.3;color:#a8b4a4}.instructions b{color:#e9e9dc}.note{font-size:9px;margin-top:18px;color:#83917f}.hidden{display:none}#announcement{position:absolute;top:23%;width:100%;text-align:center;color:#d4de89;font-family:'Barlow Condensed',Impact,sans-serif;font-size:32px;letter-spacing:5px;pointer-events:none}@media(max-width:650px){#hud{gap:13px;left:16px}.health{width:70px}.ammo{padding-left:12px}header{left:16px;right:16px}.tag{display:none}footer{left:16px;font-size:7px}.panel{width:95%;padding:20px}h1{font-size:70px}}

/* Offline-first typography. No downloaded assets are required. */

body{font-family:Consolas,'Courier New',monospace}.brand,h1,#announcement{font-family:'Arial Narrow',Impact,sans-serif}h1{font-size:76px}.panel{width:590px;padding:28px}.instructions{line-height:1.9}#hud{top:95px;gap:25px}#hud strong{font-size:24px}#wave{font-size:19px!important}#hud span{display:block;font-size:9px;color:#a7b4a4;margin-top:8px}#partner{max-width:180px}#telemetry{position:absolute;left:32px;top:180px;display:flex;gap:24px;pointer-events:none}#telemetry>div{width:130px}#telemetry i{display:block;height:3px;background:#39463e}#telemetry b{display:block;height:100%;background:#b8cb82;width:0}#context{position:absolute;bottom:75px;width:100%;text-align:center;font-size:11px;color:#e2e6b0;pointer-events:none}#run-info{position:absolute;bottom:44px;right:32px;font-size:9px;color:#9bab9d;pointer-events:none}#announcement{top:28%;font-family:Consolas,monospace;font-size:14px;letter-spacing:1px;padding:0 15%;line-height:1.6;text-shadow:0 2px 5px #000}.note{line-height:1.7}#intro .panel{background:#10191aca;border-left:2px solid #cbd879}#weapon-state{min-height:12px}footer{font-size:9px}@media(max-width:900px){#hud{left:16px;gap:14px;flex-wrap:wrap}#hud strong{font-size:18px}.health{width:85px}#telemetry{left:16px;top:200px;gap:15px}#telemetry>div{width:95px}#partner{display:none}#announcement{font-size:12px;padding:0 8%}footer{font-size:7px}h1{font-size:62px}.panel{max-height:94vh;overflow:auto}#run-info{right:16px}}@media(max-height:650px){header{top:15px}#hud{top:75px}#telemetry{top:155px}h1{font-size:50px;margin:16px 0}.panel{padding:18px}#announcement{top:37%}button{margin:10px 0;padding:14px}}



.difficulty-label{display:block;font-size:11px;letter-spacing:2px;color:#d4de89;margin-top:18px}.difficulty-select{display:block;width:100%;min-height:44px;margin-top:8px;padding:10px 12px;background:#192522;color:#e9eedc;border:1px solid #8c9a71;font:14px Consolas,monospace;letter-spacing:0}.difficulty-help{font-size:11px;margin:8px 0}.difficulty-select:focus-visible{outline:2px solid #d4de89;outline-offset:2px}



#telemetry>div:first-child{display:none}



.overlay .panel{max-height:94vh;overflow-y:auto} .controller-settings{margin:14px 0;font-size:12px} .controller-settings summary{cursor:pointer;color:#d4de89;padding:12px 0} .controller-settings label{display:grid;grid-template-columns:145px 1fr;align-items:center;gap:8px;margin:8px 0} .controller-settings select{min-height:36px;background:#192522;color:#e9eedc;border:1px solid #8c9a71;font:inherit;padding:6px} button:focus-visible,summary:focus-visible,select:focus-visible{outline:3px solid #edf5a5;outline-offset:3px}



#voice-menu{position:absolute;z-index:20;left:50%;top:50%;transform:translate(-50%,-50%);width:350px;height:350px;border-radius:50%;background:#10191aee;border:2px solid #8c9a71;box-shadow:0 0 60px #000b}#voice-menu[hidden]{display:none}#voice-menu>span{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);text-align:center;font-size:13px;color:#d4de89;pointer-events:none}#voice-menu small{font-size:10px;letter-spacing:0;line-height:1.6;margin-top:10px}#voice-menu button{position:absolute;left:50%;top:50%;width:102px;min-height:44px;padding:10px 4px;margin:0;text-align:center;font-size:12px;letter-spacing:0;background:#24342e;color:#e9e9dc;border:1px solid #80906f;transform:translate(-50%,-50%) rotate(var(--voice-angle)) translateY(-125px) rotate(var(--voice-counter-angle))}#voice-menu button.selected,#voice-menu button:hover{background:#d4de89;color:#172021}


.difficulty-description{font-size:11px;margin:8px 0;line-height:1.7}

#controller-status{position:fixed;z-index:50;top:max(8px,env(safe-area-inset-top));left:50%;transform:translateX(-50%);max-width:calc(100vw - 32px);padding:7px 12px;border:1px solid #8c9a71;border-radius:5px;background:#10191aee;color:#d4de89;font-size:11px;line-height:1.4;text-align:center;pointer-events:none}#controller-status span{display:block;color:#b5c2b1;font-size:9px}#controller-status[hidden]{display:none}

.controller-menu .overlay button:focus,.controller-menu .overlay select:focus,.controller-menu .overlay summary:focus{outline:4px solid #f1ff9c;outline-offset:4px;background:#efffa0;color:#111d18;box-shadow:0 0 0 8px #a7cd4940,0 0 26px #c7ef6770}.controller-menu .overlay select:focus{font-weight:bold}.controller-menu .overlay summary:focus{padding-left:12px;border-radius:3px}

#controller-choice{position:fixed;z-index:60;left:50%;top:50%;transform:translate(-50%,-50%);width:min(420px,calc(100vw - 32px));max-height:85vh;overflow-y:auto;padding:24px;background:#101c19;border:2px solid #cbd879;box-shadow:0 0 0 100vmax #000b}#controller-choice[hidden]{display:none}#controller-choice h2{margin:0 0 18px;font-size:18px;color:#efffa0}#controller-choice button{margin:6px 0;background:#24342d;color:#e9eedc;letter-spacing:0;padding:14px;border:2px solid transparent}#controller-choice button.selected{background:#efffa0;color:#111d18;border-color:#fff;outline:3px solid #d4de89;outline-offset:1px}#controller-choice p{font-size:11px;margin:16px 0 0}

#witch-notification{position:absolute;z-index:15;left:50%;top:22%;transform:translateX(-50%);max-width:calc(100vw - 32px);padding:10px 18px;background:#261515ee;border:1px solid #e1856d;border-left:4px solid #ff987d;border-radius:3px;color:#ffe6d8;font:bold 15px monospace;text-align:center;text-shadow:0 1px 2px #000;pointer-events:none}#witch-notification[hidden]{display:none}@media(max-width:650px){#witch-notification{font-size:12px;padding:8px 12px}}

.menu-version{position:absolute;top:max(14px,env(safe-area-inset-top));right:24px;padding:7px 10px;border:1px solid #65745e;background:#10191aeb;color:#d4de89;font:12px Consolas,monospace;letter-spacing:1px;pointer-events:none}@media(max-width:650px){.menu-version{right:12px;font-size:11px}}

#controller-debug{position:fixed;z-index:70;right:16px;top:64px;width:min(480px,calc(100vw - 32px));max-height:calc(100vh - 80px);overflow:auto;padding:18px;background:#0d1b19f5;border:2px solid #cbd879;color:#d4de89;box-shadow:0 0 0 100vmax #0009}#controller-debug[hidden]{display:none}#controller-debug h2{font-size:17px;margin:0 0 12px}#controller-debug pre{font:12px/1.4 Consolas,monospace;white-space:pre-wrap;overflow-wrap:anywhere;color:#d4e0d1}#controller-debug button{min-height:44px;padding:12px;margin:12px 0 0}.input-settings button{min-height:44px;padding:12px;font-size:12px;letter-spacing:1px}.input-status{color:#edd49b}

.controls-overlay{z-index:55;background:rgba(5,10,10,.95)}
.controls-overlay[hidden]{display:none}
.controls-overlay h2{font-size:32px;margin:8px 0 20px}
.controls-overlay .controller-settings label button{margin:0;padding:10px;font-size:13px}
[data-open-controls]{margin-top:12px}

.debug-buttons{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0}.debug-buttons span{border:1px solid #5b6660;padding:6px 9px;font:12px monospace;color:#aab4ae}.debug-buttons span.active{background:#d6ee6d;color:#101810;box-shadow:0 0 8px #bde54b}

.secret-room-active header,.secret-room-active #hud,.secret-room-active #telemetry,.secret-room-active #announcement,.secret-room-active #run-info,.secret-room-active #context,.secret-room-active #switch-character,.secret-room-active #auto-use-items,.secret-room-active #survivors,.secret-room-active footer{visibility:hidden!important}
