/* v2 — Interactive Game Systems, original GTA-inspired parody styling */
:root{--v2-ink:#09060e;--v2-pink:#ff54bb;--v2-yellow:#ffd48a;--v2-teal:#77f9dc}
/* Utility high-contrast details: make the world feel like a game rather than a plain website. */
.side-menu{gap:0}.side-link{height:43px}.side-bottom{display:none}
.topnav{gap:15px}.topnav-link{font-size:16px}
.phone-launcher{position:absolute;right:28px;bottom:48px;z-index:23;background:#ff4eb4;color:#19061b;border:2px solid #ffd4eb;border-radius:14px 14px 7px 7px;height:67px;min-width:63px;padding:7px;box-shadow:0 8px 0 #2b0826,0 0 28px #ff2fa172;display:flex;flex-direction:column;align-items:center;justify-content:center;transform:rotate(-4deg);transition:transform .15s,box-shadow .15s;animation:phoneFloat 4s ease-in-out infinite}
.phone-launcher:hover{transform:translateY(-5px) rotate(0);box-shadow:0 12px 0 #2b0826,0 0 32px #ff2fa1b0}.phone-launcher-symbol{font:900 27px/1 var(--impact);letter-spacing:2px}.phone-launcher-label{font:900 11px var(--display);white-space:nowrap;letter-spacing:1px}.phone-launcher kbd{background:#380e30;color:white;padding:1px 3px;font:800 9px var(--display)}
.phone-alert{position:absolute;right:-11px;top:-13px;min-width:22px;height:22px;padding:0 5px;border-radius:50%;display:grid;place-items:center;background:#fff;color:#be146d;font:900 13px var(--display);border:2px solid #751949;box-shadow:0 0 10px #ffb1e6}.phone-alert.empty{background:#293e2e;color:#adfac3}
.incoming-tip{position:absolute;z-index:21;right:103px;bottom:60px;width:min(330px,calc(100vw - 125px));min-height:74px;display:flex;align-items:center;gap:10px;background:#120b1cf0;border:1px solid #ff8dd7a8;padding:10px 12px;box-shadow:0 8px 35px #000b;backdrop-filter:blur(12px);opacity:0;pointer-events:none;transform:translateY(17px);transition:opacity .32s,transform .32s}.incoming-tip.show{opacity:1;pointer-events:auto;transform:translateY(0)}.incoming-icon{font-size:30px;color:var(--pink)}.incoming-tip div{flex:1;min-width:0}.incoming-tip small{display:block;color:var(--pink);font:900 11px var(--display);letter-spacing:1px}.incoming-tip b{font-size:11px;line-height:1.45}.incoming-tip button{border:0;background:transparent;color:#ffd8ef;font:900 12px var(--display)}
@keyframes phoneFloat{0%,100%{translate:0 0}50%{translate:0 -5px}}
.phone-screen-backdrop{position:absolute;inset:0;z-index:49;background:#06030db3;backdrop-filter:blur(3px)}.phone-screen-backdrop[hidden]{display:none}
.phone-device{position:absolute;top:50%;left:50%;transform:translate(-50%,-44%) scale(.94);width:356px;height:min(745px,92dvh);z-index:50;visibility:hidden;opacity:0;pointer-events:none;transition:transform .35s cubic-bezier(.2,.9,.2,1),opacity .25s,visibility .25s}.phone-device.show{visibility:visible;opacity:1;pointer-events:auto;transform:translate(-50%,-50%) scale(1)}
.phone-shell{height:100%;padding:11px;background:linear-gradient(120deg,#1e1a22,#050508 17%,#26212a 42%,#050407 88%);border:2px solid #bcb0be;border-radius:39px;box-shadow:0 0 0 3px #0b050e,0 21px 65px #000d,0 0 80px #f958b540;position:relative}.phone-shell:before{content:'';position:absolute;top:5px;left:50%;transform:translateX(-50%);width:94px;height:13px;background:#040205;border-radius:0 0 12px 12px;z-index:4}.phone-inner{border:2px solid #332036;height:100%;border-radius:29px;background:#100b1a;overflow:hidden;display:flex;flex-direction:column;position:relative}
.phone-topline{height:28px;padding:9px 22px 0;flex-shrink:0;display:flex;justify-content:space-between;font:800 10px var(--display);color:#f9e5fa;letter-spacing:.8px}.phone-topline i{font-style:normal;color:#9efe9c;margin-left:3px}.phone-titlebar{height:53px;flex-shrink:0;display:flex;align-items:center;justify-content:space-between;padding:0 12px;border-bottom:1px solid #ffffff18;background:#160d24}.phone-titlebar strong{font:900 18px var(--display);letter-spacing:1.4px}.phone-titlebar button{border:0;background:transparent;color:#f4a9d3;font-size:30px;line-height:1;width:35px;height:35px}.phone-content{overflow-y:auto;min-height:0;flex:1;background:linear-gradient(135deg,#21112a,#0b0a14 60%,#29112b);scrollbar-width:thin;scrollbar-color:#ac477c #130e1c}
.phone-dock{height:66px;padding:10px 12px 6px;flex-shrink:0;background:#0e0a16;border-top:1px solid #ffffff1f;display:flex;justify-content:space-around;gap:7px}.phone-dock button{flex:1;background:#24182d;border:1px solid #8d557a;color:#ffc2e4;font-size:27px;border-radius:9px}.phone-dock button:hover{background:#673054}.phone-bottom-line{width:95px;height:4px;flex-shrink:0;background:#ddd1dd;border-radius:6px;margin:5px auto 9px}
.phone-wallpaper{height:194px;position:relative;padding:18px 18px;color:white;background:linear-gradient(180deg,#2f194e20,#0707109a),url('assets/city-hero.webp') center 38%/cover;display:flex;flex-direction:column;justify-content:end;overflow:hidden}.phone-wallpaper:after{content:'☼';position:absolute;right:-17px;top:18px;font-size:125px;color:#ffb37430}.phone-wallpaper>span{font:900 11px var(--display);letter-spacing:2px;color:#ffd3e6}.phone-wallpaper strong{font:900 45px/.83 var(--display);letter-spacing:1px;text-shadow:2px 3px #100417}.phone-wallpaper small{font:800 9px var(--display);letter-spacing:1.5px;color:#fff}
.phone-home-apps{display:grid;grid-template-columns:repeat(3,1fr);gap:14px 3px;margin:17px 12px 0}.phone-home-apps button{border:0;background:transparent;color:#f8e4ee;display:flex;flex-direction:column;align-items:center;gap:5px;font:900 10px var(--display);letter-spacing:.6px}.phone-home-apps button small{font:700 8px var(--display);color:#fda6d6}.app-icon{width:55px;height:54px;display:grid;place-items:center;font-size:31px;border-radius:13px;background:linear-gradient(140deg,#442252,#16112c);border:1px solid #a066a2;box-shadow:0 4px 12px #070308a0}.app-icon.hot{background:linear-gradient(140deg,#ff79c2,#d72c89);color:#2b0629}.app-icon.gold{background:linear-gradient(140deg,#ffdd8e,#e4a249);color:#49210c}.app-icon.sea{background:linear-gradient(140deg,#5dc9c8,#1d6478)}
.phone-home-note{margin:19px 16px 13px;padding:10px 13px;background:#0d0c17bb;border:1px solid #ef8acb40;font:900 11px var(--display);letter-spacing:1px;display:flex;align-items:center;flex-wrap:wrap;justify-content:space-between}.phone-home-note strong{color:#ffa9db}.phone-track{height:3px;background:#3d3049;width:100%;margin-top:8px}.phone-track i{display:block;height:100%;background:var(--pink)}
.phone-section-label{font:900 11px var(--display);letter-spacing:1.5px;padding:16px;color:#ee94c9}.contact-list>button{border:0;border-bottom:1px solid #ffffff19;color:#fff;background:#130d1bbe;width:100%;padding:12px;text-align:left;display:flex;align-items:center;gap:12px}.contact-list>button:hover{background:#3c1d3d}.contact-list img{width:49px;height:49px;border-radius:50%;object-fit:cover;border:2px solid #ee67b7}.contact-list button>span{flex:1;min-width:0}.contact-list b{display:block;font:900 15px var(--display);letter-spacing:.4px}.contact-list small{display:block;font-size:10px;color:#beafc2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:4px}.unread-indicator{width:10px;height:10px;background:#ff53b9;border-radius:50%;box-shadow:0 0 8px #f5a}.chat-chevron{color:#ec85bc}
.chat-portrait{height:92px;background:linear-gradient(90deg,#1e1524,#392042);display:flex;align-items:center;gap:14px;padding:12px 16px}.chat-portrait img{height:63px;width:63px;object-fit:cover;border-radius:50%;border:2px solid #ff79c4}.chat-portrait span{font:900 12px var(--display);color:#adf7c1;letter-spacing:1px}
.phone-chat{height:auto;min-height:145px;max-height:300px;overflow-y:auto;padding:13px 12px;display:flex;flex-direction:column;align-items:flex-start;gap:9px;background:linear-gradient(180deg,#120c1caa,#28163090)}.bubble{max-width:89%;border-radius:12px 12px 12px 3px;background:#332b3d;padding:10px 12px;font-size:12px;line-height:1.5}.bubble.mine{align-self:flex-end;border-radius:12px 12px 3px 12px;background:#ed53ad;color:#1b0919;font-weight:700}.phone-quickreplies{padding:12px;display:grid;gap:7px}.phone-quickreplies>small{font:900 10px var(--display);color:#ff8fd4;letter-spacing:1.7px}.phone-quickreplies>button,.phone-message-action{width:100%;border:1px solid #985784;color:#fff;background:#2c182f;padding:10px;text-align:left;font:800 12px var(--display);letter-spacing:.6px;display:flex;justify-content:space-between}.phone-quickreplies>button:hover{border-color:var(--pink);background:#472343}.phone-message-action{margin-top:5px;background:#dc3e95;color:#180519;border:0}
.phone-map-art{height:170px;margin:0 12px 12px;overflow:hidden;position:relative;background:linear-gradient(135deg,#122d38,#31243a);border:2px solid #be669d}.phone-map-lines{position:absolute;inset:-100%;transform:rotate(25deg);background:repeating-linear-gradient(0deg,transparent 0 24px,#af9bad50 25px 27px,transparent 28px 65px),repeating-linear-gradient(90deg,transparent 0 30px,#a9a2b05a 31px 33px,transparent 34px 72px)}.phone-map-art b{position:absolute;top:17px;left:17px;font:900 27px/.95 var(--display);text-shadow:2px 3px #13091a}.phone-map-art>span{position:absolute;top:48%;left:60%;font-size:51px;color:#ff5ab8;text-shadow:0 0 20px #e64cbd}
.phone-list{display:grid}.phone-list button{border:0;border-top:1px solid #ffffff23;background:#120d1dbe;display:flex;align-items:center;gap:10px;text-align:left;color:#fff;padding:12px;font:800 12px var(--display);letter-spacing:1px}.phone-list button>span{font-size:12px;color:var(--pink)}.phone-list button>b{margin-left:auto;color:#fda1d9}.phone-list button:hover{background:#442342}
.phone-cta{border:0;background:#ff54bb;padding:12px 15px;color:#23091f;font:900 17px var(--display);width:100%;margin-top:10px;letter-spacing:1px;box-shadow:0 4px 0 #601540}.phone-crew{padding:35px 24px}.phone-crew-icon{font-size:54px;color:#ffc0e6}.phone-crew h3{font:900 46px/.92 var(--display)}.phone-crew p{color:#d7c7d4;line-height:1.7;margin:20px 0}.phone-crew small{display:block;font:800 10px var(--display);color:#8f8297;margin-top:22px}.phone-radio{text-align:center;padding:35px 15px}.phone-radio>span{color:#ff97d0;font:900 11px var(--display)}.radio-record{width:170px;height:170px;border-radius:50%;margin:22px auto;background:repeating-radial-gradient(circle,#25142c 0px,#25142c 3px,#543359 4px,#1b1024 5px);border:3px solid #ffa5d8;box-shadow:0 0 24px #f572bc50;display:grid;place-items:center;font-size:52px;animation:spin 9s linear infinite}.phone-radio h3{font:900 53px/.85 var(--display)}.phone-radio p{margin:15px 0}.phone-radio small{font:800 10px var(--display);color:#a995ad}@keyframes spin{to{transform:rotate(360deg)}}
/* Arcade selection / full-page dashboard */
.arcade-view{background:linear-gradient(0deg,#090611f2,#180c2199),url('assets/mission-3.webp') center/cover}.arcade-cabinet-top{margin:18px 0 22px;display:flex;align-items:center;gap:20px;color:#faaddb;letter-spacing:2px;font:900 14px var(--display)}.arcade-cabinet-top>div{font:900 40px var(--display);color:white}.arcade-cabinet-top small{color:#bbb0bf;font:800 10px var(--display)}.arcade-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px;padding-right:3px}.arcade-card{height:370px;position:relative;overflow:hidden;border:1px solid #f98ccb6e;background:#160d1c;text-align:left;color:white;padding:0;transition:transform .2s,border-color .2s}.arcade-card:hover{transform:translateY(-7px);border-color:#ffb5de}.arcade-card>img{width:100%;height:100%;object-fit:cover;filter:saturate(.9);transition:transform .4s}.arcade-card:hover>img{transform:scale(1.06)}.arcade-card-shade{position:absolute;inset:0;background:linear-gradient(0deg,#06050ded 0%,#07041050 55%,#09051040 100%)}.arcade-number{position:absolute;top:14px;left:13px;border:1px solid #ff7ac5;background:#180a1dcb;padding:5px 9px;color:#ff9ad1;font:900 12px var(--display);letter-spacing:1px}.arcade-card-content{position:absolute;bottom:18px;left:15px;right:12px}.arcade-card-content>small{font:900 10px var(--display);color:#e8a4ce;letter-spacing:1.5px}.arcade-card-content h3{font:900 clamp(27px,3.1vw,44px)/.9 var(--display);margin:7px 0 10px}.arcade-card-content p{font-size:11px;color:#e4d4e1;min-height:35px}.arcade-card-content b{margin-top:17px;display:inline-flex;align-items:center;gap:21px;background:#ff53b6;color:#1b071b;padding:9px 13px;font:900 15px var(--display);letter-spacing:1px}.arcade-footer{margin-top:19px;padding:12px;border:1px solid #a862965b;color:#dac9d8;font:800 12px var(--display);letter-spacing:1px}.arcade-footer span{color:#ff69c7;margin-right:12px}
/* Reusable arcade mission overlay */
.minigame-backdrop{position:absolute;inset:0;z-index:38;background:#05030de9;backdrop-filter:blur(14px);display:flex;justify-content:center;align-items:center;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .22s,visibility .22s}.minigame-backdrop.show{opacity:1;visibility:visible;pointer-events:auto}.minigame-panel{width:min(930px,95vw);max-height:min(730px,93dvh);display:flex;flex-direction:column;position:relative;background:linear-gradient(145deg,#22122c,#0c0a14 58%,#261126);border:1px solid #ff86d7b5;box-shadow:0 0 0 5px #09050f,0 0 85px #fe47aa38,0 45px 85px #000a;overflow:hidden}.minigame-panel:before{content:'';position:absolute;inset:0;pointer-events:none;border:8px solid #ffffff05}.game-header{display:flex;justify-content:space-between;align-items:center;padding:13px 24px;background:#0b0714;border-bottom:1px solid #a750865f}.game-kicker{font:900 13px var(--display);color:#ff9fd3;letter-spacing:2px}.game-close{border:1px solid #8d547d;background:#281527;color:#f8daee;padding:7px 12px;font:900 13px var(--display);letter-spacing:1px}.game-close:hover{border-color:#ff7bc8}.game-content{flex:1;min-height:0;overflow-y:auto;padding:25px 35px 25px;scrollbar-color:#cf6da7 transparent;scrollbar-width:thin}.game-title>span{font:900 12px var(--display);letter-spacing:2px;color:#ff9bd6}.game-title h2{font:900 clamp(48px,6vw,83px)/.88 var(--display);letter-spacing:1px;margin:7px 0 9px;text-shadow:4px 4px #050309}.game-title>p{font-size:14px;color:#d5c5d8}.game-scoreline{display:flex;justify-content:space-between;gap:12px;padding:15px 0;border-bottom:1px solid #ffffff2c;margin-bottom:20px;font:900 13px var(--display);letter-spacing:1.3px;color:#a8a0af}.game-scoreline b{font-size:20px;color:#ffa2d6;margin-left:5px}.game-toolbar{display:flex;justify-content:space-between;align-items:center;padding:12px 24px;background:#0c0813;border-top:1px solid #a64e8960;gap:8px;font:900 11px var(--display);letter-spacing:1px;color:#a7a0b4;flex-shrink:0}.game-toolbar>button{border:0;background:transparent;color:#f2a4d5;font:900 12px var(--display);letter-spacing:1px}.game-toolbar>button:hover{text-decoration:underline}
.signal-outer{height:180px;border:1px solid #815878;background:radial-gradient(ellipse at 50% 60%,#412044,#0d0916 72%);position:relative;overflow:hidden}.signal-lines{position:absolute;inset:0;background:repeating-linear-gradient(90deg,#ffffff20 0 1px,transparent 1px 5%),linear-gradient(0deg,transparent 48%,#ffffff24 50%,transparent 52%)}.signal-target{position:absolute;top:0;width:20%;height:100%;background:#ff54b52e;border-left:2px solid #ff9bd9;border-right:2px solid #ff9bd9;box-shadow:inset 0 0 22px #ff67ba3e}.signal-marker{position:absolute;left:50%;top:0;height:100%;width:3px;background:#ffffcf;box-shadow:0 0 11px 4px #fff4bc99;z-index:2}.signal-cross{position:absolute;top:3px;left:50%;font-size:18px;color:#ffc0dc;opacity:.3}.signal-status{font:900 14px var(--display);color:#ff86ca;text-align:center;letter-spacing:1.5px;margin:15px}.signal-status.signal-good{color:#adffca}.game-big-btn{width:100%;min-height:67px;border:1px solid #ffd7ed;background:linear-gradient(90deg,#ff4baa,#ff81bf);color:#280720;font:900 30px var(--display);letter-spacing:1px;box-shadow:0 6px 0 #5f163e}.game-big-btn small{font:900 12px var(--display);margin-left:18px}
.vip-ticket{background:#f4d7b6;color:#251321;border:8px solid #db74a8;outline:2px dashed #ffe4d0;outline-offset:-18px;padding:25px 28px;min-height:160px;transform:rotate(-1deg);margin:14px 8px 25px;box-shadow:9px 10px 0 #08040b}.vip-ticket>span{font:900 13px var(--display);letter-spacing:2px}.vip-question{font:900 clamp(21px,2.5vw,34px)/1.05 var(--display);margin:17px 0}.vip-ticket>small{font:900 10px var(--display);letter-spacing:1px}.answer-grid{display:grid;gap:10px}.answer-grid button{min-height:52px;display:flex;align-items:center;gap:20px;border:1px solid #ad5d99;background:#221226;color:#fff;text-align:left;padding:10px 15px;font:900 17px var(--display);letter-spacing:.8px;transition:background .2s}.answer-grid button span{color:var(--pink);font-size:23px;min-width:18px}.answer-grid button i{margin-left:auto;color:#d37aa9}.answer-grid button:hover{background:#492344;border-color:#ff71bb}.answer-grid button.correct{background:#254a38;border-color:#a2efbc}.answer-grid button.wrong{background:#6e1e3e;border-color:#ef638f;animation:shake .24s}.game-feedback{color:#c9b8c9;font:900 13px var(--display);letter-spacing:1px;margin-top:15px;min-height:20px}@keyframes shake{25%{transform:translateX(-5px)}75%{transform:translateX(5px)}}
.npc-dialogue{min-height:165px;display:flex;gap:15px;align-items:center;margin-bottom:17px}.npc-dialogue img{width:155px;height:155px;object-fit:cover;border:3px solid #ff89c5;box-shadow:8px 7px #110715}.npc-bubble{padding:23px 22px;border:1px solid #ff80be;background:#351b36;position:relative;flex:1}.npc-bubble:before{content:'';position:absolute;left:-11px;top:49%;border-top:10px solid transparent;border-bottom:10px solid transparent;border-right:10px solid #ff80be}.npc-bubble small{color:#ff9fd4;font:900 12px var(--display);letter-spacing:1px}.npc-bubble p{font:900 clamp(18px,2.3vw,29px)/1.05 var(--display);margin-top:9px}
.code-layout{display:grid;grid-template-columns:1fr 1fr;gap:18px}.code-note{min-height:310px;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;padding:30px;border:1px solid #ffbb7f80;background:linear-gradient(120deg,#49232b,#251423),url('assets/mission-5.webp') center/cover;background-blend-mode:multiply}.code-note span,.code-note small{font:900 11px var(--display);color:#ffd0ae;letter-spacing:1px}.code-note b{font:900 clamp(28px,3.6vw,48px)/.94 var(--display);margin:15px 0}.code-note b em{color:#ff80c7}.code-note p{line-height:1.6;font-size:13px;color:#f5dce9}.code-note small{margin-top:25px}.code-device{border:2px solid #8e578b;padding:18px;background:#0a0d18;display:flex;flex-direction:column}.code-device>span{font:900 12px var(--display);color:#eda1d0;letter-spacing:1px}.code-digits{font:900 48px var(--display);letter-spacing:11px;color:#adf7e8;text-align:center;background:#13272c;border:2px inset #567a7e;padding:10px 0;margin:13px 0}.code-keys{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;flex:1}.code-keys button{min-height:44px;background:#231b30;color:#fff;border:1px solid #8c729e;font:900 23px var(--display)}.code-keys button:hover{background:#813872}.code-device>small{text-align:center;font:900 11px var(--display);color:#f891c7;margin-top:12px}
.road-wrap{position:relative;height:285px;background:#090911;overflow:hidden;border:1px solid #bd669b}.road-scene{height:260px;position:relative;background:linear-gradient(90deg,#241426 0%,#241426 7%,#191925 7%,#191925 93%,#271427 93%),repeating-linear-gradient(0deg,#1b1422 0 20px,#3b1e43 21px 50px);overflow:hidden}.road-scene:before,.road-scene:after{content:'';position:absolute;top:0;bottom:0;width:7%;z-index:2;background:repeating-linear-gradient(0deg,#ff55ba 0 20px,#1b071f 20px 40px);opacity:.68}.road-scene:before{left:0}.road-scene:after{right:0}.road-lane{position:absolute;top:0;bottom:0;width:3px;background:repeating-linear-gradient(0deg,#ffeeaaad 0 24px,transparent 24px 52px);animation:roadScroll .5s linear infinite}.road-lane.lane1{left:33.333%}.road-lane.lane2{left:66.667%}@keyframes roadScroll{to{background-position:0 52px}}.road-horizon{position:absolute;top:7px;left:11%;font:900 12px var(--display);letter-spacing:3px;color:#ac82b0;pointer-events:none}.road-player{position:absolute;bottom:10%;left:50%;width:49px;height:77px;background:linear-gradient(90deg,#04050e,#422550 20%,#ff4bb1 46%,#381e48 85%,#030312);border:2px solid #ffa5d1;border-radius:16px 16px 9px 9px;z-index:4;transform:translateX(-50%);transition:left .13s;box-shadow:0 9px 15px #000d,0 0 25px #ff3ab354}.player-windshield{position:absolute;top:13px;left:9px;right:9px;height:17px;border-radius:7px 7px 3px 3px;background:#72aabd;opacity:.7}.player-lights{position:absolute;bottom:6px;left:4px;right:4px;height:7px;border-left:12px solid #ff324c;border-right:12px solid #ff324c;filter:drop-shadow(0 0 5px red)}.road-cone{position:absolute;width:37px;height:38px;top:-20%;transform:translateX(-50%);z-index:3;display:grid;place-items:center}.road-cone b{display:block;width:0;height:0;border-left:15px solid transparent;border-right:15px solid transparent;border-bottom:31px solid #ff9d44;filter:drop-shadow(2px 3px 1px #100913)}.road-cone b:after{content:'';position:absolute;transform:translate(-10px,15px);background:#fff2b8;height:4px;width:20px}.road-cone.crashed{opacity:.1}.road-shake{animation:shake .24s}.drive-progress{position:absolute;bottom:0;left:0;right:0;background:#170d1d;height:25px;padding:4px}.drive-progress i{display:block;background:linear-gradient(90deg,#7bffdb,#ff62c0);height:100%;width:0;box-shadow:0 0 10px #ff8dc8}.drive-controls{margin-top:14px;display:flex;align-items:center;gap:9px;justify-content:space-between}.drive-controls button{border:1px solid #ed8ac6;background:#42213b;color:white;font:900 21px var(--display);min-width:130px;min-height:52px}.drive-controls button:active{background:#f752af}.drive-controls span{font:900 13px var(--display);letter-spacing:2px;color:#f5a5d0}.drive-over{position:absolute;inset:55px 0 45px;z-index:5;background:#080611e9;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:12px}.drive-over h2{font:900 65px var(--display)}.drive-over p{color:#e2bed5}
.arcade-complete{text-align:center;padding:33px 5px 25px}.arcade-complete-stars{color:#ffe19a;letter-spacing:19px;font-size:46px;text-shadow:0 0 25px #ffd173}.arcade-complete h2{font:900 clamp(55px,7vw,95px)/.86 var(--display);margin:10px 0 14px}.arcade-complete h2 em{font-style:normal;color:#ffa4d5}.arcade-complete p{font:900 20px var(--display)}.arcade-complete>b{display:block;color:#adf9c3;font:900 17px var(--display);margin:20px 0 25px}.arcade-complete .btn-main{margin:auto}
/* Mission passed: intentionally looks like a game reward screen, not a web modal. */
.victory-screen{position:absolute;inset:0;z-index:41;opacity:0;visibility:hidden;pointer-events:none;display:flex;align-items:center;justify-content:center;background:linear-gradient(90deg,#090610f5,#120815de 45%,#120716df),url('assets/city-hero.webp') center 50%/cover;transition:opacity .3s,visibility .3s;overflow:hidden}.victory-screen.show{opacity:1;visibility:visible;pointer-events:auto}.victory-light{position:absolute;inset:-25%;background:conic-gradient(from 0deg at 50% 50%,transparent 0 20deg,#ff4eb614 26deg,transparent 45deg 85deg,#ffd08e16 95deg,transparent 130deg 180deg,#ff4eb614 199deg,transparent 260deg 300deg,#ff8ac514 315deg,transparent 340deg);animation:spin 30s linear infinite}.victory-inner{position:relative;text-align:center;max-width:900px;padding:26px 22px;color:#fff;animation:missionDrop .45s ease both}.victory-overline{font:900 14px var(--display);letter-spacing:4px;color:#ffa7d8}.victory-stars{font-size:42px;letter-spacing:25px;color:#ffdca0;margin:20px 0;text-shadow:0 0 30px #ff8a79}.victory-inner h2{font:900 clamp(66px,11vw,170px)/.77 var(--display);letter-spacing:-2px;text-shadow:7px 8px 0 #170718,0 0 40px #ff54bb30}.victory-inner h2 em{font-style:normal;display:block;color:#ff60b7}.victory-line{height:4px;background:linear-gradient(90deg,transparent,#ff63bd,#ffe2a2,#ff63bd,transparent);margin:31px 0 20px}.victory-inner h3{font:900 clamp(21px,3vw,36px) var(--display);letter-spacing:1px}.victory-inner p{font-size:15px;color:#f4e0ed;margin:9px auto 22px;max-width:640px;line-height:1.5}.victory-rewards{display:flex;justify-content:center;gap:2px;margin-bottom:24px}.victory-rewards span{min-width:158px;background:#160b1bcf;border:1px solid #a46497;padding:14px;display:flex;flex-direction:column;gap:5px;font:900 11px var(--display);letter-spacing:1px;color:#c8a6c2}.victory-rewards b{font:900 25px var(--display);letter-spacing:1px;color:#fff4c2}.victory-buttons{display:flex;justify-content:center;gap:12px;flex-wrap:wrap}.victory-inner>small{display:block;margin-top:20px;font:900 10px var(--display);letter-spacing:1px;color:#b795b2}@keyframes missionDrop{from{transform:translateY(45px);opacity:0}to{transform:translateY(0);opacity:1}}
/* Tablet + phone */
@media(max-width:1260px){.arcade-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.arcade-card{height:300px}.arcade-view{overflow-y:auto}.phone-launcher{right:14px}.side-link{height:42px}}
@media(max-width:980px){.phone-launcher{bottom:54px}.arcade-cabinet-top>div{font-size:29px}.arcade-cabinet-top small{display:none}}
@media(max-width:700px){.side-link{font-size:10px}.side-link:nth-of-type(6){display:none}.side-link:nth-of-type(7){display:flex}.side-menu{height:60px}.phone-launcher{bottom:79px;right:15px;width:57px;height:56px;min-width:55px;border-radius:11px 11px 6px 6px}.phone-launcher-symbol{font-size:23px}.phone-launcher-label{font-size:9px}.incoming-tip{bottom:88px;right:83px;width:min(280px,calc(100vw - 99px));min-height:67px;padding:8px}.incoming-tip b{font-size:10px}.phone-device{width:min(346px,95vw);height:min(720px,90dvh)}.arcade-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.arcade-card{height:270px}.arcade-card-content{bottom:9px;left:9px}.arcade-card-content h3{font-size:29px}.arcade-card-content p{font-size:10px}.arcade-card-content b{font-size:12px;padding:7px 8px;margin-top:9px}.arcade-cabinet-top{margin:6px 0 13px;gap:10px}.arcade-cabinet-top>div{font-size:26px}.arcade-cabinet-top>span{display:none}.minigame-panel{width:96vw;max-height:92dvh}.game-header{padding:10px 12px}.game-kicker{font-size:11px}.game-content{padding:15px 17px}.game-title h2{font-size:53px}.game-title>p{font-size:12px}.game-scoreline{margin:8px 0 12px;font-size:10px}.game-scoreline b{font-size:15px}.game-toolbar{padding:10px 12px;font-size:9px}.game-toolbar>button{font-size:10px}.signal-outer{height:170px}.game-big-btn{font-size:21px}.game-big-btn small{font-size:9px;margin-left:5px}.vip-ticket{margin:7px 5px 17px;padding:20px;min-height:160px}.vip-question{font-size:28px}.answer-grid button{min-height:49px;font-size:15px}.npc-dialogue{gap:9px;min-height:90px}.npc-dialogue img{width:90px;height:105px}.npc-bubble{padding:11px}.npc-bubble p{font-size:20px}.code-layout{display:block}.code-note{min-height:140px;padding:18px}.code-note b{font-size:31px;margin:7px 0}.code-note p{font-size:11px}.code-note small{margin-top:7px}.code-device{margin-top:9px;padding:12px}.code-digits{font-size:34px;margin:5px 0;letter-spacing:7px}.code-keys button{min-height:36px}.road-wrap{height:285px}.road-scene{height:260px}.drive-controls button{min-width:100px;font-size:16px}.drive-controls span{font-size:10px}.victory-inner{padding:14px}.victory-stars{font-size:27px;letter-spacing:14px;margin:10px 0}.victory-inner h2{font-size:clamp(66px,19vw,105px)}.victory-overline{font-size:10px;letter-spacing:2px}.victory-line{margin:22px 0 16px}.victory-inner h3{font-size:23px}.victory-inner p{font-size:12px;margin:8px auto 14px}.victory-rewards{margin-bottom:15px}.victory-rewards span{min-width:0;flex:1;padding:8px 5px;font-size:9px}.victory-rewards b{font-size:19px}.victory-buttons .btn-main,.victory-buttons .btn-outline{min-width:135px;font-size:15px}.victory-inner>small{font-size:8px}.topbar{z-index:11}}
@media(max-height:750px) and (min-width:701px){.minigame-panel{max-height:95dvh}.game-content{padding:14px 28px}.game-title h2{font-size:59px}.game-scoreline{padding:8px 0;margin-bottom:12px}.signal-outer{height:135px}.road-wrap{height:235px}.road-scene{height:210px}.arcade-card{height:245px}.phone-device{height:min(660px,92dvh)}}
@media(max-width:390px){.arcade-card{height:245px}.arcade-card-content h3{font-size:25px}.arcade-card-content p{min-height:31px}.arcade-card-content b{font-size:11px}.phone-device{width:93vw}.drive-controls span{display:none}.drive-controls button{flex:1}}
@media(prefers-reduced-motion:reduce){.phone-launcher,.radio-record,.victory-light{animation:none!important}}
/* Keep interactive phone launcher stationary for accurate pointer/touch hit targets. */
@media(min-width:701px){.phone-launcher{bottom:198px;animation:none}}
@media(max-width:700px){.phone-launcher{animation:none}}

html,body{max-width:100%;overflow-x:hidden}.app{width:100%;max-width:100vw}
.app{overflow:clip}

.phone-header-button{display:none}
@media(max-width:700px){
 .phone-launcher{display:none}
 .phone-header-button{display:grid;position:relative;place-items:center;min-width:37px;width:37px;height:38px;border:1px solid #ff7dc7;background:#421b38;color:#ffc6e9;font:900 23px var(--display);border-radius:7px;box-shadow:0 0 12px #f35baa42}
 .phone-header-button span{position:absolute;top:-7px;right:-6px;background:#ff5bb8;border-radius:50%;color:#23081a;width:17px;height:17px;display:grid;place-items:center;font-size:9px}
 .topbar .sound-toggle{display:none}
 .incoming-tip{bottom:auto;top:69px;right:10px;width:min(290px,calc(100vw - 20px))}
}
