:root{color-scheme:dark;font-family:'Courier New',monospace;background:#0b151b;color:#e7edd8}*{box-sizing:border-box}body{margin:0;min-height:100svh;background:radial-gradient(ellipse at 50% 20%,#243c40,transparent 75%),#0b151b}main{max-width:1320px;margin:auto;padding:25px 36px 22px}header{display:flex;justify-content:space-between;align-items:center;gap:15px;margin:0 0 18px}.brand{font-weight:900;font-size:15px;letter-spacing:2px;display:flex;align-items:center;gap:12px}.brand i{display:block;width:15px;height:15px;background:#ef603d;box-shadow:4px 4px 0 #853a30;position:relative}.brand i:before{content:'';position:absolute;width:6px;height:5px;left:5px;top:-5px;background:#a5c578}.tools{display:flex;gap:8px}button{font:700 13px 'Courier New',monospace;cursor:pointer;border:1px solid #48605d;background:#16282e;color:#d0dec9;padding:10px 13px;touch-action:none}button:hover{background:#2d4648;border-color:#a5c578}button:focus-visible{outline:3px solid #f9d271;outline-offset:3px}button small{opacity:.5;margin-left:8px}#full{font-size:20px;padding:3px 12px}#cabinet{position:relative;border:3px solid #48615b;box-shadow:0 0 0 6px #111f27,0 20px 60px #0008;background:#17282c;overflow:hidden;aspect-ratio:16/9}canvas{width:100%;height:100%;display:block;image-rendering:pixelated;outline:none}#overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;background:linear-gradient(90deg,#0a192adb,#0a192abd 50%,#0a192a72);text-align:center;padding:24px}#overlay.hidden{display:none}.eyebrow{color:#b9d795;font-size:13px;letter-spacing:3px;font-weight:bold;margin-bottom:16px}h1{font-size:clamp(28px,5.1vw,69px);line-height:.95;letter-spacing:-3px;margin:0;color:#fff0c9;text-shadow:4px 4px 0 #18232b;font-weight:900}h1 span{font-size:1.5em;color:#ed6744;letter-spacing:1px;text-shadow:4px 4px 0 #843f31,7px 7px 0 #13252e}#message{line-height:1.7;font-size:16px;color:#d2e1cf;margin:25px 0 22px}#play{background:#eccc75;color:#1b2b2d;border:0;box-shadow:0 5px 0 #a57940;padding:16px 28px;font-size:16px;letter-spacing:1px}#play:hover{background:#fff0a6;transform:translateY(-1px)}#play span{margin-left:24px}.start-note{font-size:12px;letter-spacing:1px;margin-top:24px;color:#b3c3b6}footer{padding:24px 0 0}.mission{display:flex;gap:16px;align-items:center;font-size:14px;color:#ccd6c6}.tag{font-size:12px;color:#eccc75;letter-spacing:1px;border:1px solid #526155;padding:5px 8px;white-space:nowrap}.keys{display:flex;gap:24px;flex-wrap:wrap;font-size:13px;color:#c0cfc4;margin-top:20px}.keys>span{display:flex;gap:5px;align-items:center}kbd{border:1px solid #4d615d;border-bottom:3px solid #4d615d;padding:4px 7px;font-size:12px;color:#ebeedb;background:#1d2d32}.hint{font-size:12px;color:#8faaa3;margin-top:18px}#touch{display:none;position:absolute;bottom:7px;left:10px;right:10px;justify-content:space-between;pointer-events:none}#touch>div{display:flex;gap:8px}#touch button{pointer-events:auto;width:46px;height:44px;background:#13242ec9;border:1px solid #b5c7a577;font-size:18px;user-select:none}#touch .fire{width:62px;font-size:14px;color:#ffbc89}@media(pointer:coarse){#touch{display:flex}#overlay{z-index:2}.keys{display:none}.hint{display:none}}@media(max-width:700px){main{padding:15px 10px}header{margin-bottom:12px}.brand{font-size:10px;letter-spacing:1px}.tools{gap:4px}.tools button{font-size:10px;padding:7px}.tools small{display:none}#full{font-size:17px}.eyebrow{font-size:9px;letter-spacing:1px;margin-bottom:10px}#overlay{padding:10px}h1{font-size:28px;letter-spacing:-1px}#message{font-size:11px;margin:12px 0}#play{font-size:12px;padding:10px 16px}.start-note{font-size:8px;margin-top:12px}.mission{font-size:12px;gap:8px}.tag{font-size:10px}.keys{gap:10px}.hint{line-height:1.6}}:fullscreen{background:#0b151b!important;display:flex;align-items:center;justify-content:center}#cabinet:fullscreen{width:100vw;height:100vh;aspect-ratio:auto}#cabinet:fullscreen canvas{width:min(100vw,177.778vh);height:min(100vh,56.25vw)}
/* Pause, checkpoint and completion overlays share the game's pixel controls. */
#overlay{background:linear-gradient(#03112beb,#09235ae8);border:2px solid #3ae7ff;box-shadow:inset 0 0 0 3px #123c73;gap:0;padding:18px 16px;overflow:auto}
#overlay #eyebrow{font:10px/1.6 var(--pixel-font,'Militia Pixel',monospace);letter-spacing:0;color:#b8ff7b;margin:0 0 14px;text-shadow:2px 2px #020924}
#overlay #title{font:clamp(25px,7.7vw,35px)/1.3 var(--pixel-font,'Militia Pixel',monospace);letter-spacing:0;color:#fff2a8;text-shadow:3px 3px #031032;margin:0}
#overlay #title span{font:inherit;line-height:1.35;letter-spacing:0;color:#ffe34c;text-shadow:0 3px #bf4c15,3px 3px #031032}
#overlay #message{font:11px/1.8 var(--pixel-font,'Militia Pixel',monospace);color:#cfedff;max-width:320px;margin:20px 0}
#overlay #play{position:relative;width:100%;max-width:324px;min-height:56px;padding:14px 12px;font:11px/1.6 var(--pixel-font,'Militia Pixel',monospace);letter-spacing:0;color:#f5ffd9;border:3px solid #a7ff43;background:linear-gradient(#36de0a,#0aaa24 45%,#046327);box-shadow:inset 0 0 0 2px #d9ff9c,inset 0 -5px #034c25,0 5px #020821;text-shadow:2px 2px #034221;clip-path:polygon(8px 0,calc(100% - 8px) 0,calc(100% - 8px) 4px,100% 4px,100% calc(100% - 4px),calc(100% - 8px) calc(100% - 4px),calc(100% - 8px) 100%,8px 100%,8px calc(100% - 4px),0 calc(100% - 4px),0 4px,8px 4px)}
#overlay #play:hover{filter:brightness(1.12);transform:none}#overlay #play:active{transform:translateY(2px);filter:brightness(1.25)}
#overlay #note{font:9px/1.7 var(--pixel-font,'Militia Pixel',monospace);letter-spacing:0;max-width:310px;color:#80cbf9;margin:16px 0 0}
@media(max-height:690px){#overlay{padding:12px}#overlay #eyebrow{margin-bottom:8px;font-size:9px}#overlay #title{font-size:25px}#overlay #message{font-size:10px;margin:12px 0}#overlay #note{font-size:8px;margin-top:12px}}
