:root{--bg: #000;--neon-yel: #ffd23b;--neon-green: #5cff8a;--neon-red: #ff3b30;--neon-blue: #3aa0ff;--coin-gold: #c89b3c;--white: #fff;--black: #000;--mono: "Press Start 2P", "Courier New", "JetBrains Mono", monospace}*{box-sizing:border-box}html,body{margin:0;padding:0;height:100%;overflow:hidden;background:var(--bg);color:var(--white);font-family:var(--mono);image-rendering:pixelated;-webkit-font-smoothing:none;-moz-osx-font-smoothing:grayscale}#app{position:fixed;inset:0}canvas{display:block;image-rendering:pixelated;image-rendering:crisp-edges}.hud-tl{position:fixed;top:12px;left:12px;display:flex;flex-direction:column;gap:6px;pointer-events:none;z-index:10;font-family:var(--mono);font-size:14px;font-weight:900;text-shadow:2px 2px 0 var(--black)}.hud-tl-row{display:flex;align-items:center;gap:8px}.hud-tl-heart{width:16px;height:16px;fill:var(--neon-red)}.hud-tl-heart.dead{fill:#555;opacity:.4}.hud-tl-icon{width:18px;height:18px;fill:var(--neon-yel)}.hud-tl-ammo{color:var(--neon-yel);font-size:16px;min-width:40px}.hud-tc{position:fixed;top:12px;left:50%;transform:translate(-50%);background:var(--neon-yel);border:4px solid var(--neon-yel);outline:2px solid var(--black);padding:6px 22px;font-family:var(--mono);font-size:16px;font-weight:900;color:var(--black);letter-spacing:1px;pointer-events:none;z-index:10;text-shadow:none}.hud-tr{position:fixed;top:12px;right:12px;display:flex;flex-direction:column;gap:4px;align-items:flex-end;pointer-events:none;z-index:10;font-family:var(--mono);font-weight:900;text-shadow:2px 2px 0 var(--black)}.hud-tr-score{color:var(--neon-green);font-size:14px}.hud-tr-cash{display:flex;align-items:center;gap:6px;color:var(--neon-yel);font-size:20px}.hud-tr-cash-icon{font-size:18px}.hud-wanted{position:fixed;top:46px;left:50%;transform:translate(-50%);display:flex;gap:2px;pointer-events:none;z-index:10}.hud-wanted-star{width:16px;height:16px;fill:var(--neon-yel);filter:drop-shadow(2px 2px 0 var(--black))}.hud-wanted-star.empty{fill:#444}.minimap{position:fixed;bottom:12px;right:12px;width:100px;height:100px;background:#0009;border:4px solid var(--neon-yel);pointer-events:none;z-index:10}.minimap canvas{width:100%;height:100%;display:block;image-rendering:pixelated}.controls-hint{position:fixed;bottom:12px;left:12px;display:flex;flex-wrap:wrap;gap:6px;pointer-events:none;z-index:10;font-family:var(--mono);font-size:11px;font-weight:700;text-shadow:2px 2px 0 var(--black);transition:opacity 1s ease 8s}.controls-hint.fade{opacity:0}.kbd{background:var(--black);border:2px solid var(--neon-yel);padding:3px 7px;color:var(--neon-yel);font-family:var(--mono);font-size:11px;font-weight:700}.modal-bg{position:fixed;inset:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:100;opacity:0;pointer-events:none;transition:opacity .2s}.modal-bg.open{opacity:1;pointer-events:auto}.modal{background:var(--black);border:4px solid var(--neon-yel);padding:16px;min-width:380px;max-width:480px;text-align:center;font-family:var(--mono)}.modal h2{margin:0 0 12px;font-family:var(--mono);font-size:32px;font-weight:900;color:var(--neon-yel);text-shadow:2px 2px 0 var(--black);letter-spacing:2px}.modal p{font-family:var(--mono);font-size:13px;font-weight:700;color:var(--white);line-height:1.6;white-space:pre-wrap;margin:0 0 16px;text-shadow:2px 2px 0 var(--black)}.modal .prompt{font-family:var(--mono);font-size:14px;font-weight:900;color:var(--neon-yel);text-shadow:2px 2px 0 var(--black);letter-spacing:1px}.banner-complete{position:fixed;top:30%;left:50%;transform:translate(-50%,-50%);font-family:var(--mono);font-size:64px;font-weight:900;color:var(--neon-green);text-shadow:4px 4px 0 #003a0c,4px 4px 0 #003a0c;letter-spacing:4px;z-index:90;pointer-events:none;animation:pulse .6s ease-in-out infinite alternate}@keyframes pulse{0%{transform:translate(-50%,-50%) scale(1)}to{transform:translate(-50%,-50%) scale(1.04)}}.banner-frenzy{position:fixed;top:30%;left:50%;transform:translate(-50%,-50%);font-family:var(--mono);font-size:60px;font-weight:900;color:var(--neon-yel);text-shadow:-3px -3px 0 #003a0c,3px -3px 0 #003a0c,-3px 3px 0 #003a0c,3px 3px 0 #003a0c,4px 4px 0 var(--black);letter-spacing:4px;z-index:90;pointer-events:none;font-style:italic}.banner-busted{position:fixed;top:30%;left:50%;transform:translate(-50%,-50%);font-family:var(--mono);font-size:72px;font-weight:900;color:var(--neon-red);text-shadow:4px 4px 0 var(--black),8px 8px 0 #5a0000;letter-spacing:4px;z-index:90;pointer-events:none;animation:shake .4s ease-in-out infinite}@keyframes shake{0%,to{transform:translate(-50%,-50%)}25%{transform:translate(calc(-50% - 3px),-50%)}75%{transform:translate(calc(-50% + 3px),-50%)}}.score-pop{position:fixed;top:40px;right:12px;font-family:var(--mono);font-size:14px;font-weight:900;color:var(--neon-green);text-shadow:2px 2px 0 var(--black);pointer-events:none;z-index:11;animation:scoreUp 1s ease-out forwards}@keyframes scoreUp{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-30px)}}
