.aim-reticle{position:fixed;z-index:8;pointer-events:none;width:30px;height:30px;margin:-15px 0 0 -15px;border:2px solid #ffad83;border-radius:50%;color:#ffe0a2;font:bold 26px/24px monospace;text-align:center;text-shadow:1px 1px #462532;box-shadow:0 0 0 2px #342a3f,0 0 12px #f07b66}
.armed #world{cursor:crosshair}
.gun-equipped{background:#79445be8!important;border-color:#ffb686!important}
.top-buttons{flex-wrap:wrap;justify-content:flex-end}.top-buttons #phone-button{position:relative;display:inline-flex;align-items:center;gap:6px;min-height:37px;padding:4px 10px;background:#e8a35f;color:#243149;border:2px solid #fff2c0;box-shadow:3px 3px 0 #122035, inset 0 -4px #bd704f;font-size:12px;letter-spacing:.6px}.top-buttons #phone-button:hover{transform:translateY(-2px);box-shadow:3px 5px 0 #122035, inset 0 -4px #bd704f}.phone-icon{display:inline-grid;place-items:center;width:26px;height:26px;background:#263d54;border:2px solid #fff0be;color:#fff0bd;font-size:20px;line-height:1}.phone-label{display:flex;flex-direction:column;align-items:flex-start;line-height:1.05}.phone-label small{font-size:7px;letter-spacing:1px;margin-top:3px}.phone-badge{display:grid;place-items:center;position:absolute;top:-10px;right:-9px;width:20px;height:20px;border:2px solid #fff3ca;border-radius:50%;background:#e65f6c;color:#fff7e2;font-size:11px;box-shadow:2px 2px #1a2238}.phone-badge[hidden]{display:none}.phone-unread{animation:phone-glow 1.6s ease-in-out infinite alternate}@keyframes phone-glow{to{filter:brightness(1.17);box-shadow:3px 3px 0 #122035,0 0 15px #ffca77}}
.phone-tabs{display:flex;gap:5px;margin:11px 0}.phone-tabs button{flex:1;padding:8px;background:#4b5c68;border:2px solid #263747;color:#f7e6c3;font-size:10px;font-weight:900}.phone-tabs button.active{background:#d69468;color:#2f3043}
.phone-schedule{display:flex;justify-content:space-between;gap:8px;padding:7px 8px;background:#304258;border:2px solid #677a83;color:#fff0c3;font-size:8px;font-weight:900;letter-spacing:.4px}.phone-schedule b{color:#ffce84;white-space:nowrap}.phone-job-done{padding:8px;background:#568678;color:#f7eed8;border:2px solid #315b57;text-align:center;font-size:9px;font-weight:900}
.phone-texts{max-height:min(46vh,390px);overflow:auto;display:flex;flex-direction:column;gap:8px}.phone-message{padding:10px;background:#fbefd7;border:2px solid #99907d;color:#263346}.phone-message strong{font-size:10px}.phone-message p{font-size:10px;line-height:1.45;margin:6px 0 9px}.phone-message button{width:100%;background:#547b78;border:2px solid #2f5051;color:#fff0d3;padding:7px;font-size:10px;font-weight:900}.phone-job-active{border-color:#d58166;background:#fae3c6}
.dog-result{display:flex;align-items:center;justify-content:space-around;gap:8px;margin:12px 0;padding:20px 8px;background:#413d4d;border:3px solid #ddad78}.dog-result span{padding:14px;background:#64566a;border:2px solid #d5b88d;color:#f8e9bd;font-weight:900;font-size:12px}.dog-result b{color:#ffbd7a;font-size:20px}
.vault-game,.race-game{width:min(690px,94vw);padding:16px 20px;background:#233047;border:4px solid #e9b879;color:#fff0d4;box-shadow:9px 10px #0b1020;text-align:center}.vault-header,.race-head{display:flex;align-items:center;justify-content:space-between;border-bottom:2px solid #8c8a8f;padding-bottom:8px;color:#f4cb88}.vault-header small,.race-head small{font-size:9px;letter-spacing:1px;font-weight:900}.vault-header strong{font-size:25px}.vault-header strong.urgent{color:#fa6b72;animation:warning .55s infinite alternate}.vault-game h2,.race-game h2{font-size:22px;margin:12px 0 5px}.vault-game p,.race-game p{font-size:10px;line-height:1.5;max-width:530px;margin:0 auto 12px;color:#d7d6d2}.vault-scene{position:relative;display:flex;align-items:center;justify-content:center;background:linear-gradient(#3d4455 0 16%,#151f32 16% 100%);border:3px solid #8e8e8a;min-height:300px}.vault-crew{position:absolute;top:4px;left:9px;right:9px;display:flex;justify-content:space-between;color:#f7d594;font-size:8px;font-weight:900}.vault-crew span{padding:4px;background:#1b2337}.vault-police{position:absolute;right:8px;bottom:8px;background:#723d4e;color:#ffd7b8;padding:5px;font-size:9px;font-weight:900}.vault-scene canvas{display:block;width:min(332px,100%);height:auto;image-rendering:pixelated;touch-action:none;cursor:crosshair}.vault-foot,.race-status{display:flex;justify-content:space-between;gap:10px;margin-top:9px;font-size:9px;font-weight:900;color:#f3cd8b}
.race-road{position:relative;height:145px;border:3px solid #8d8a86;background:#434b54;overflow:hidden}.race-road::before,.race-road::after{content:"";position:absolute;left:0;right:0;height:3px;background:repeating-linear-gradient(90deg,#e9d7a1 0 24px,transparent 24px 44px)}.race-road::before{top:47px}.race-road::after{top:99px}.race-rival,.race-player{position:absolute;left:12%;z-index:1;width:76%;display:flex;justify-content:space-between;font-size:12px;font-weight:900;color:#f9e7b9;text-shadow:2px 2px #1b2434}.race-rival{top:14px}.race-player{top:67px}.race-rival span,.race-player span{display:block;border:3px solid #263449;border-radius:6px;padding:5px;background:#c7656b;color:#742d40;box-shadow:5px 5px #162236}.race-player span{background:#e6d6b2;color:#7c6661}.race-lanes{position:absolute;bottom:10px;left:0;right:0;display:flex;justify-content:space-around}.race-lanes i{width:34px;height:4px;background:#fff2bd}.race-meter{position:relative;height:30px;margin:18px 10px 6px;border:3px solid #121b30;background:linear-gradient(90deg,#bd615e,#d58f66,#ad625d)}.race-zone{position:absolute;top:0;bottom:0;background:#f8dc83;box-shadow:inset 0 0 0 2px #fff0b8}.race-needle{position:absolute;top:-8px;bottom:-8px;width:5px;background:#b0f1e8;box-shadow:1px 1px #2b3c42}.race-shift{display:block;margin:16px auto 0;width:min(270px,100%);background:#f1b76d;border:3px solid #fff0c3;color:#263049;font-weight:900;font-size:14px;padding:12px}
@media(max-width:600px){.vault-game,.race-game{padding:10px}.vault-game h2,.race-game h2{font-size:17px}.vault-scene{min-height:230px}.vault-scene canvas{width:min(275px,100%)}.vault-foot,.race-status{font-size:7px}.phone-message p{font-size:9px}.top-buttons{max-width:145px;gap:3px}.top-buttons #phone-button{min-height:30px;padding:3px 6px;font-size:9px;gap:3px}.phone-icon{width:21px;height:21px;font-size:15px}.phone-label small{font-size:5px;letter-spacing:.4px}.phone-badge{top:-6px;right:-5px;width:15px;height:15px;font-size:8px}.phone-schedule{font-size:7px}}
