:root{color:#eef3f7;--primary:#ae0d0a;--primary-hover:#c9221e;--primary-text:#ff9b96;--primary-soft:#ae0d0a29;--primary-panel:#ae0d0a3d;--primary-border:#ae0d0a85;--primary-focus:#ae0d0a42;background:#121416;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}html,body{width:100%;height:100%;margin:0;overflow:hidden}.auth-mode #game-canvas,.loading-mode #game-canvas{background:#101315}.auth-shell,.loading-shell{background:url(/assets/images/background.png) 50%/cover no-repeat,#111416;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.auth-shell{z-index:60}.loading-shell{z-index:58}.auth-panel,.loading-panel{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#121619c2;border:1px solid #ffffff29;border-radius:8px;width:min(430px,100%);padding:24px;box-shadow:0 22px 58px #0000007a}.loading-panel{width:min(480px,100%)}.auth-header,.loading-header{gap:4px;margin-bottom:20px;display:grid}.auth-header p,.loading-header p{color:var(--primary-text);letter-spacing:0;text-transform:uppercase;margin:0;font-size:.78rem;font-weight:900}.auth-header h1,.loading-header h1{color:#fff;margin:0;font-size:1.55rem;line-height:1.1}.loading-status{color:#dbe7ee;min-height:1.35rem;font-size:.92rem;font-weight:800}.loading-progress{background:#ffffff1a;border:1px solid #ffffff2e;border-radius:999px;height:10px;margin-top:16px;position:relative;overflow:hidden}.loading-progress span{border-radius:inherit;background:linear-gradient(90deg, var(--primary), var(--primary-hover));width:0%;height:100%;box-shadow:0 0 18px var(--primary-focus);transition:width .26s;display:block}.loading-progress:after{content:"";background:linear-gradient(90deg,#0000,#ffffff38,#0000);animation:1.45s linear infinite loading-sheen;position:absolute;inset:0;transform:translate(-100%)}.loading-percent{color:var(--primary-text);text-align:right;margin-top:9px;font-size:.8rem;font-weight:900}.loading-shell.is-error .loading-progress span{background:linear-gradient(90deg, #7f0b09, var(--primary))}@keyframes loading-sheen{to{transform:translate(100%)}}.auth-form{gap:14px;display:grid}.auth-form label{color:#b9c6cc;gap:7px;font-size:.82rem;font-weight:800;display:grid}.auth-form input{color:#fff;width:100%;height:42px;font:inherit;background:#ffffff14;border:1px solid #ffffff2e;border-radius:6px;outline:none;padding:0 12px}.auth-form input:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-focus)}.auth-error[hidden]{display:none}.auth-error{color:#ffd2ca;background:#74261f52;border:1px solid #ff6e5c59;border-radius:6px;padding:10px 12px;font-size:.84rem;line-height:1.35}.auth-submit{color:#fff;background:var(--primary);cursor:pointer;border:0;border-radius:6px;height:44px;font-size:.92rem;font-weight:950}.auth-submit:disabled{cursor:wait;opacity:.72}.auth-submit:hover,.auth-submit:focus-visible{background:var(--primary-hover);outline:none}.auth-switch{color:#aebbc5;text-align:center;margin-top:18px;font-size:.86rem}.auth-switch button,.auth-session-control button{color:var(--primary-text);font:inherit;cursor:pointer;background:0 0;border:0;font-weight:900}.auth-session-control{z-index:35;color:#dce8ed;pointer-events:auto;white-space:nowrap;background:#0c0f11b8;border:1px solid #ffffff24;border-radius:6px;align-items:center;gap:10px;max-width:min(340px,100vw - 36px);padding:8px 10px;font-size:.78rem;font-weight:800;display:flex;position:fixed;bottom:18px;left:50%;right:auto;transform:translate(-50%);box-shadow:0 10px 28px #00000042}.auth-session-control span{text-overflow:ellipsis;min-width:0;overflow:hidden}#game-canvas{touch-action:none;outline:none;width:100vw;height:100vh;display:block}#hud{pointer-events:none;min-width:260px;max-width:min(360px,100vw - 36px);position:fixed;top:18px;left:18px}.perf-panel[hidden]{display:none}.perf-panel{z-index:72;color:#f3fbff;pointer-events:none;white-space:pre;background:#080a0cd1;border:1px solid #fff3;border-radius:6px;min-width:190px;padding:10px 12px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace;font-size:.72rem;font-weight:800;line-height:1.45;position:fixed;top:18px;left:50%;transform:translate(-50%);box-shadow:0 12px 30px #00000059}.hud-panel{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#0f1216c7;border:1px solid #ffffff2e;border-radius:8px;gap:10px;padding:14px 16px;display:grid;box-shadow:0 14px 34px #00000047}.hud-row{justify-content:space-between;align-items:center;gap:16px;display:flex}.hud-label{color:#aebbc5;letter-spacing:0;text-transform:uppercase;font-size:.76rem;font-weight:700}.hud-value{color:#fff;text-align:right;font-size:.95rem;font-weight:800}.hud-objective{color:#dbe7ee;border-top:1px solid #ffffff24;padding-top:10px;font-size:.92rem;line-height:1.4}.hud-hint{min-height:1.2rem;color:var(--primary-text);font-size:.82rem}.bank-panel{z-index:21;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);text-align:right;background:#0e1114d1;border:1px solid #ffffff2e;border-radius:8px;min-width:150px;padding:11px 14px 12px;transition:top .16s;position:fixed;top:18px;right:18px;box-shadow:0 14px 34px #0000004d}.bank-panel.is-offset-by-radio{top:112px}.bank-label{color:var(--primary-text);letter-spacing:0;text-transform:uppercase;font-size:.72rem;font-weight:850}.bank-balance{color:#fff;margin-top:2px;font-size:1.25rem;font-weight:900;line-height:1.1}.vehicle-health-panel[hidden]{display:none}.player-health-panel,.vehicle-health-panel{border-top:1px solid #ffffff24;margin-top:9px;padding-top:8px}.player-health-header,.vehicle-health-header{color:#aebbc5;letter-spacing:0;text-transform:uppercase;justify-content:space-between;align-items:center;gap:14px;font-size:.68rem;font-weight:900;display:flex}.player-health-header strong,.vehicle-health-header strong{color:#fff;font-variant-numeric:tabular-nums;font-size:.78rem}.player-health-track,.vehicle-health-track{background:#ffffff1a;border:1px solid #ffffff2e;border-radius:999px;height:7px;margin-top:6px;overflow:hidden}.player-health-track span,.vehicle-health-track span{border-radius:inherit;background:linear-gradient(90deg,#54d98a,#b7ef79);width:100%;height:100%;transition:width .12s,background .12s,box-shadow .12s;display:block;box-shadow:0 0 12px #54d98a57}.player-health-panel.is-damaged .player-health-track span,.vehicle-health-panel.is-damaged .vehicle-health-track span{background:linear-gradient(90deg,#f0b44d,#f5d067);box-shadow:0 0 12px #f0b44d59}.player-health-panel.is-critical .player-health-track span,.vehicle-health-panel.is-critical .vehicle-health-track span{background:linear-gradient(90deg,#e94332,#ff7b42);box-shadow:0 0 14px #e943326b}.wanted-panel[hidden]{display:none}.wanted-panel{border-top:1px solid #ffffff24;margin-top:9px;padding-top:8px}.wanted-label{color:#f0c86a;letter-spacing:0;text-transform:uppercase;font-size:.68rem;font-weight:900}.wanted-stars{color:#ffd66f;letter-spacing:1px;text-shadow:0 2px 12px #0000007a;margin-top:2px;font-size:1.08rem;font-weight:950;line-height:1.1}.radio-panel[hidden]{display:none}.radio-panel{z-index:22;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#0e1114cc;border:1px solid #ffffff2e;border-radius:8px;width:min(310px,100vw - 36px);padding:12px 14px 13px;position:fixed;top:18px;right:18px;box-shadow:0 14px 34px #0000004d}.radio-label{color:var(--primary-text);letter-spacing:0;text-transform:uppercase;margin-bottom:6px;font-size:.72rem;font-weight:850}.radio-station{color:#fff;font-size:1rem;font-weight:900;line-height:1.2}.radio-track{color:#cbd8df;margin-top:4px;font-size:.84rem;font-weight:700;line-height:1.3}.speedometer-panel[hidden]{display:none}.speedometer-panel{-webkit-backdrop-filter:blur(9px);backdrop-filter:blur(9px);background:radial-gradient(circle at 50% 54%,#191f21d6 0 54%,#080b0ceb 55% 100%),#0a0d0edb;border:3px solid #eef6f7e0;border-radius:50%;place-items:center;width:146px;height:146px;display:grid;position:fixed;bottom:22px;right:22px;box-shadow:0 18px 42px #00000057,inset 0 0 0 1px #ffffff1a}.speedometer-speed{color:#fff;font-variant-numeric:tabular-nums;text-shadow:0 2px 12px #00000075;margin-top:12px;font-size:2.65rem;font-weight:950;line-height:.95}.speedometer-meta{color:var(--primary-text);letter-spacing:0;text-transform:uppercase;justify-content:center;align-items:center;gap:12px;margin-top:-22px;font-size:.72rem;font-weight:900;display:flex}.speedometer-meta [data-speedometer-gear]{border:1px solid var(--primary-border);color:#fff;text-align:center;background:#ffffff14;border-radius:4px;min-width:24px;padding:3px 5px}.settings-overlay[hidden]{display:none}.settings-overlay{z-index:28;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);pointer-events:auto;background:radial-gradient(circle at 50% 42%,#32484c47,#0000 36%),#04070894;place-items:center;padding:28px;display:grid;position:fixed;inset:0}.settings-card{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:linear-gradient(#141b1ef0,#080c0eeb),#0c1012eb;border:1px solid #fff3;border-radius:8px;width:min(520px,100vw - 56px);padding:18px;box-shadow:0 24px 80px #00000080}.settings-title{color:#fff;margin-bottom:14px;font-size:1.05rem;font-weight:900;line-height:1.2}.settings-list{gap:8px;display:grid}.settings-row{background:#ffffff0d;border:1px solid #ffffff1a;border-radius:7px;gap:9px;padding:12px;display:grid}.settings-row.is-selected{border-color:var(--primary-border);background:var(--primary-soft);box-shadow:0 0 0 1px var(--primary-focus)}.settings-row-main{color:#cbd8df;justify-content:space-between;gap:18px;font-size:.9rem;font-weight:800;display:flex}.settings-row-main strong{color:var(--primary-text);font-variant-numeric:tabular-nums}.settings-bar{background:#ffffff1f;border-radius:999px;height:7px;overflow:hidden}.settings-bar span{border-radius:inherit;background:linear-gradient(90deg, var(--primary), #f0dd8d);height:100%;display:block}.blackout-overlay[hidden]{display:none}.blackout-overlay{z-index:1000;pointer-events:none;background:#000;position:fixed;inset:0}.minimap-panel{-webkit-backdrop-filter:blur(9px);backdrop-filter:blur(9px);background:linear-gradient(145deg,#0b0e10d1,#181e20bd),#0d1012d6;border:1px solid #ffffff3d;border-radius:50%;width:178px;height:178px;padding:7px;position:fixed;bottom:18px;left:18px;box-shadow:0 18px 42px #00000052,inset 0 0 0 1px #ffffff14}.minimap-canvas{border-radius:50%;width:100%;height:100%;display:block}.full-map-panel[hidden]{display:none}.full-map-panel{z-index:24;pointer-events:none;place-items:center;display:grid;position:fixed;inset:24px}.full-map-frame{-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:linear-gradient(#161d1feb,#0d1213e6),#0c1012eb;border:1px solid #fff3;border-radius:8px;gap:10px;width:min(1120px,100vw - 48px);max-height:calc(100vh - 48px);padding:14px;display:grid;box-shadow:0 24px 80px #0000007a}.full-map-title{color:#eef7f8;letter-spacing:0;font-size:.9rem;font-weight:850}.full-map-canvas{aspect-ratio:1200/760;background:#162120;border:1px solid #ffffff24;border-radius:6px;width:100%;max-height:calc(100vh - 116px);display:block}body.map-select-mode #hud{display:none}body.map-select-mode #game-canvas{background:radial-gradient(circle at 25% 18%,#4669733d,#0000 30%),linear-gradient(150deg,#101417,#171c1f 52%,#0f1518)}.map-select-shell{z-index:30;background:linear-gradient(90deg,#06090ac7,#06090a38),#0a0d0f61;place-items:center;padding:28px;display:grid;position:fixed;inset:0}.map-select-panel{-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#0e1215eb;border:1px solid #ffffff29;border-radius:8px;width:min(860px,100vw - 56px);max-height:calc(100vh - 56px);padding:18px;overflow:auto;box-shadow:0 24px 80px #00000075}.map-select-header,.map-select-footer{justify-content:space-between;align-items:center;gap:18px;display:flex}.map-select-header{border-bottom:1px solid #ffffff1f;padding-bottom:16px}.map-select-header p{color:var(--primary-text);letter-spacing:0;text-transform:uppercase;margin:0 0 4px;font-size:.78rem;font-weight:800}.map-select-header h1{color:#f8fbff;letter-spacing:0;margin:0;font-size:clamp(1.55rem,4vw,2.35rem);font-weight:850}.map-select-editor-link{min-height:38px;color:var(--primary-text);background:#ffffff12;border:1px solid #ffffff26;border-radius:6px;padding:9px 13px;font-size:.86rem;font-weight:850;text-decoration:none}.map-select-list{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding:16px 0;display:grid}.map-select-card{color:#edf6fa;min-height:182px;font:inherit;text-align:left;cursor:pointer;background:linear-gradient(#ffffff17,#ffffff0a),#12181beb;border:1px solid #ffffff24;border-radius:8px;gap:9px;padding:15px;display:grid}.map-select-card:hover,.map-select-card:focus-visible{border-color:var(--primary-border);background:linear-gradient(180deg, var(--primary-soft), #ffffff0d), #12181bf5;outline:none}.map-select-card[data-selected=true]{border-color:#f6d77bc2;box-shadow:inset 0 0 0 1px #f6d77b57,0 14px 34px #0000003d}.map-select-card-title{color:#fff;font-size:1rem;font-weight:850;line-height:1.25}.map-select-card-description{color:#bfccd2;font-size:.84rem;font-weight:650;line-height:1.45}.map-select-card-meta{flex-wrap:wrap;align-self:end;gap:7px;display:flex}.map-select-card-meta span{color:#aebdc4;background:#00000029;border:1px solid #ffffff1f;border-radius:6px;padding:5px 7px;font-size:.72rem;font-weight:850}.map-select-footer{border-top:1px solid #ffffff1f;padding-top:15px}.map-select-footer span{color:#9daeb5;font-size:.82rem;font-weight:800}.map-select-start{color:#17140b;min-width:132px;min-height:42px;font:inherit;cursor:pointer;background:#e1bf5d;border:1px solid #f6d77bad;border-radius:6px;font-size:.92rem;font-weight:900}.map-select-start:hover,.map-select-start:focus-visible{background:#f2d26f;outline:none}@media (width<=640px){#hud{max-width:calc(100vw - 24px);top:12px;left:12px}.hud-panel{padding:12px}.minimap-panel{width:142px;height:142px;padding:6px;bottom:12px;left:12px}.auth-session-control{max-width:min(300px,100vw - 24px);bottom:12px}.bank-panel,.radio-panel{right:12px}.bank-panel{top:12px}.bank-panel.is-offset-by-radio{top:106px}.radio-panel{width:min(300px,100vw - 24px);top:12px}.map-select-shell{padding:12px}.map-select-panel{width:calc(100vw - 24px);max-height:calc(100vh - 24px);padding:14px}.map-select-list{grid-template-columns:1fr}.map-select-header,.map-select-footer{flex-direction:column;align-items:stretch}.map-select-start{width:100%}}body.editor-mode{background:#0e1214}#editor-ui{z-index:10;pointer-events:none;position:fixed;inset:0}.editor-panel{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);pointer-events:auto;background:#0d1113db;border:1px solid #ffffff24;border-radius:8px;width:330px;padding:16px;position:fixed;top:18px;bottom:18px;overflow:auto;box-shadow:0 18px 44px #0000004d}.editor-panel-left{left:18px}.editor-panel-right{width:300px;right:18px}.editor-header,.editor-list-header{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:16px;display:flex}.editor-header h1,.editor-list-header h2,.editor-section h2{color:#f7fbff;letter-spacing:0;margin:0;font-size:1rem;font-weight:800}.editor-header span,.editor-list-header span{color:#8fa4ad;margin-top:4px;font-size:.78rem;font-weight:700;display:block}.editor-link{color:var(--primary-text);font-size:.82rem;font-weight:800;text-decoration:none}.editor-header-actions{align-items:center;gap:10px;display:flex}.editor-link-button{color:var(--primary-text);font:inherit;cursor:pointer;background:0 0;border:0;font-size:.82rem;font-weight:800}.editor-section{border-top:1px solid #ffffff1f;margin-top:16px;padding-top:14px}.editor-field{gap:7px;margin-top:12px;display:grid}.editor-field span{color:#b9c6cc;font-size:.78rem;font-weight:800}.editor-field select,.editor-field input{color:#edf7fb;width:100%;min-height:36px;font:inherit;background:#ffffff14;border:1px solid #ffffff2e;border-radius:6px;font-size:.9rem}.editor-field select,.editor-field input[type=number],.editor-field input[type=text]{padding:0 10px}.editor-field input[type=range]{accent-color:var(--primary)}.editor-toggle{color:#b9c6cc;align-items:center;gap:9px;margin-top:12px;font-size:.78rem;font-weight:800;display:flex}.editor-toggle input{width:17px;height:17px;accent-color:var(--primary);margin:0}.editor-actions,.editor-tool-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:10px;display:grid}.editor-tool-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.editor-actions-compact{grid-template-columns:repeat(4,minmax(0,1fr))}.editor-property-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:10px;display:grid}.editor-property-grid-two{grid-template-columns:repeat(2,minmax(0,1fr))}.editor-property-grid .editor-field{margin-top:0}.editor-property-grid .editor-field input{min-width:0;padding:0 7px}.editor-actions button,.editor-tool-grid button,.editor-feature-row{color:#edf7fb;min-height:36px;font:inherit;letter-spacing:0;cursor:pointer;background:#ffffff14;border:1px solid #ffffff26;border-radius:6px;font-size:.82rem;font-weight:800}.editor-actions button:hover,.editor-tool-grid button:hover,.editor-feature-row:hover{border-color:var(--primary-border);background:var(--primary-soft)}.editor-actions button[data-active=true],.editor-tool-grid button[data-active=true]{border-color:var(--primary-border);background:var(--primary-panel);color:#fff}.editor-selection{color:#cfdde3;background:#ffffff0f;border:1px solid #ffffff1f;border-radius:6px;min-height:34px;padding:9px 10px;font-size:.82rem;font-weight:700}.editor-feature-list{gap:8px;margin-top:14px;display:grid}.editor-feature-row{text-align:left;min-height:52px;padding:9px 10px;display:grid}.editor-feature-row[data-selected=true]{background:#f8dc7224;border-color:#f8dc72c2}.editor-feature-row span{color:#fff;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.editor-feature-row small{color:#9eb0b7;text-overflow:ellipsis;white-space:nowrap;font-size:.74rem;font-weight:700;overflow:hidden}.editor-status{color:#ddecf1;pointer-events:none;background:#0d1113d6;border:1px solid #ffffff26;border-radius:8px;max-width:min(420px,100vw - 36px);padding:10px 13px;font-size:.84rem;font-weight:800;position:fixed;bottom:18px;right:18px;box-shadow:0 14px 32px #0000003d}.editor-help,.editor-object-manager{z-index:20;pointer-events:auto;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.editor-help[hidden],.editor-object-manager[hidden]{display:none}.editor-object-manager{z-index:22}.editor-modal-backdrop{background:#00000085;position:absolute;inset:0}.editor-help-panel,.editor-object-manager-panel{background:#0f1417f5;border:1px solid #ffffff29;border-radius:8px;width:min(760px,100vw - 48px);max-height:min(760px,100vh - 48px);padding:18px;position:relative;overflow:auto;box-shadow:0 24px 80px #00000075}.editor-object-manager-panel{width:min(560px,100vw - 48px)}.editor-modal-header{border-bottom:1px solid #ffffff1f;justify-content:space-between;align-items:flex-start;gap:14px;padding-bottom:14px;display:flex}.editor-modal-header h2,.editor-help-content h3{color:#f7fbff;letter-spacing:0;margin:0}.editor-modal-header h2{font-size:1.05rem}.editor-modal-header span{color:#8fa4ad;margin-top:4px;font-size:.8rem;font-weight:700;display:block}.editor-modal-header button{color:#edf7fb;min-height:34px;font:inherit;cursor:pointer;background:#ffffff14;border:1px solid #ffffff29;border-radius:6px;padding:0 12px;font-size:.82rem;font-weight:800}.editor-help-content,.editor-object-manager-content{gap:14px;padding-top:14px;display:grid}.editor-object-preview{background:#12191a;border:1px solid #ffffff24;border-radius:8px;height:220px;overflow:hidden}.editor-object-preview canvas{touch-action:none;outline:none;width:100%;height:100%;display:block}.editor-object-manager-actions{grid-template-columns:repeat(2,minmax(0,1fr))}.editor-help-content section{border-bottom:1px solid #ffffff17;padding-bottom:12px}.editor-help-content section:last-child{border-bottom:0}.editor-help-content h3{font-size:.92rem}.editor-help-content p{color:#cbd8dd;margin:8px 0 0;font-size:.86rem;line-height:1.55}.editor-help-content code{color:var(--primary-text)}@media (width<=900px){.editor-panel{width:min(320px,100vw - 24px);max-height:calc(100vh - 24px);top:12px;bottom:auto}.editor-panel-left{left:12px}.editor-panel-right{display:none;right:12px}.editor-status{bottom:12px;right:12px}}
