:root{color-scheme:dark;font-family:"Courier New",monospace;background:#050505;color:#eee}
*{box-sizing:border-box}body{margin:0;min-height:100vh;display:grid;place-items:center;background:radial-gradient(circle at 50% 35%,#202020 0,#090909 50%,#000 100%)}
main{width:min(100vw,1020px);padding:18px}header,footer{display:flex;align-items:end;justify-content:space-between;gap:18px;text-transform:uppercase;letter-spacing:.08em}
header{padding:0 4px 12px}header span{font-size:12px;color:#aaa}h1{font-size:clamp(28px,5vw,54px);line-height:.85;margin:7px 0 0;letter-spacing:-.08em;text-transform:uppercase}.status{display:flex;gap:18px;flex-wrap:wrap;justify-content:flex-end}.status span{color:#fff;font-weight:bold}
.game-shell{position:relative;border:1px solid #777;background:#000;box-shadow:0 18px 70px #000;overflow:hidden}canvas{display:block;width:100%;height:auto;aspect-ratio:48/35;outline:none;image-rendering:pixelated}
#start{position:absolute;inset:0;display:grid;place-content:center;text-align:center;background:rgba(0,0,0,.84);backdrop-filter:blur(2px);padding:24px}#start.hidden{display:none}#start p{font-size:13px;letter-spacing:.28em;color:#aaa;margin:0 0 14px}#start h2{font-size:clamp(28px,5vw,52px);text-transform:uppercase;line-height:1;margin:0 0 26px}.choice{display:flex;justify-content:center;gap:12px;flex-wrap:wrap}button{font:700 13px "Courier New",monospace;letter-spacing:.08em;padding:13px 18px;color:#000;background:#eee;border:0;cursor:pointer}button:hover,button:focus{background:#fff;box-shadow:0 0 0 3px #777}#start small{display:block;margin-top:20px;color:#aaa}
#message{position:absolute;left:50%;top:18%;translate:-50% 0;font-size:clamp(24px,5vw,50px);font-weight:bold;text-transform:uppercase;text-shadow:3px 3px #000;opacity:0;transition:opacity .2s;pointer-events:none;white-space:nowrap}#message.show{opacity:1}
#scanner{position:absolute;left:16px;bottom:14px;display:flex;align-items:center;gap:9px;padding:6px 9px;border:1px solid #777;background:rgba(0,0,0,.72);color:#888;font-size:13px;font-weight:bold;letter-spacing:.16em;pointer-events:none;opacity:0;transition:opacity .15s,color .08s,border-color .08s}#scanner.visible{opacity:1}#scanner b{display:block;width:11px;height:11px;border:1px solid #777;background:#171717;transform:rotate(45deg)}#scanner.locked{color:#fff;border-color:#fff;text-shadow:0 0 7px #fff}#scanner.locked b{border-color:#fff;background:#fff;box-shadow:0 0 10px #fff}#scanner.rescued{color:#aaa}
footer{padding:10px 4px 0;font-size:11px;color:#aaa;align-items:center;flex-wrap:wrap}@media(max-width:700px){.status{display:none}footer{justify-content:center}main{padding:8px}}
