.glass{background:var(--card);-webkit-backdrop-filter:blur(16px)saturate(1.4);backdrop-filter:blur(16px)saturate(1.4);border:1px solid var(--card-border);box-shadow:var(--shadow);border-radius:var(--radius)}kbd{min-width:1.6em;font:700 11px/1.6 var(--font);color:var(--ink);text-align:center;background:#fff;border:1px solid #dde2ec;border-bottom-width:2px;border-radius:6px;padding:0 6px;display:inline-block}.icon-btn{width:40px;height:40px;color:var(--ink);cursor:pointer;background:#fff;border:1px solid #e6e9f1;border-radius:12px;place-items:center;transition:background .15s,color .15s,border-color .15s;display:inline-grid}.icon-btn:hover{border-color:var(--blue);color:var(--blue)}.icon-btn:focus-visible{border-color:var(--blue);color:var(--blue)}.icon-btn .icon{width:20px;height:20px}button:focus-visible{outline-offset:2px;outline:3px solid #2457f566}a:focus-visible{outline-offset:2px;outline:3px solid #2457f566}[hidden]{display:none!important}.card-layer{z-index:40;position:fixed;top:0;bottom:0;left:0;right:0;pointer-events:none!important}.card-backdrop{pointer-events:auto;opacity:0;background:#d6ddec2e;transition:opacity .25s;position:absolute;top:0;bottom:0;left:0;right:0}.card{top:calc(16px + var(--safe-top));right:calc(16px + var(--safe-right));width:min(440px,100vw - 32px);max-height:calc(100% - 32px - var(--safe-top) - var(--safe-bottom));pointer-events:auto;-webkit-backdrop-filter:blur(18px)saturate(1.4);backdrop-filter:blur(18px)saturate(1.4);border:1px solid var(--card-border);opacity:0;-webkit-user-select:text;user-select:text;touch-action:pan-y;background:#fffffff0;border-radius:20px;flex-direction:column;transition:opacity .22s,transform .3s cubic-bezier(.2,.9,.3,1.1);display:flex;position:absolute;transform:translate(24px);box-shadow:0 24px 60px #28386e29,0 3px 10px #28386e0f}.card-layer.open .card{opacity:1;transform:none}.card-layer.open .card-backdrop{opacity:1}.card-header{border-bottom:1px solid #eef0f5;align-items:center;gap:12px;padding:16px 14px 12px 18px;display:flex}.card-icon{width:44px;height:44px;color:var(--blue);background:#e8eeff;border-radius:12px;flex:none;place-items:center;display:grid}.card-icon .icon{width:24px;height:24px}.card[data-zone=contact] .card-icon,.card[data-zone=experience] .card-icon{color:#d98a0b;background:#fff3df}.card-heading{flex:1;min-width:0}.card-kicker{letter-spacing:.08em;text-transform:uppercase;color:var(--blue);font-size:11px;font-weight:800;display:block}.card-heading h2{letter-spacing:-.01em;margin:0;font-size:21px;line-height:1.25}.card-body{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding:16px 18px;overflow-y:auto}.card-footer{color:var(--ink-soft);border-top:1px solid #eef0f5;padding:10px 18px 14px;font-size:12px}@media (pointer:coarse){.card-footer{display:none}}@media (max-width:600px) and (orientation:portrait){.card{width:100%;max-height:82%;padding-bottom:var(--safe-bottom);border-radius:22px 22px 0 0;top:auto;bottom:0;right:0;transform:translateY(40px)}.card-backdrop{background:#d6ddec59}}@media (max-height:500px) and (orientation:landscape){.card{top:calc(8px + var(--safe-top));width:min(420px,60vw);max-height:calc(100% - 16px)}.card-header{padding-top:10px;padding-bottom:8px}}.zone-tag{background:var(--blue);color:#fff;font:700 14px var(--font);white-space:nowrap;cursor:pointer;opacity:0;will-change:transform;border:0;border-radius:999px;align-items:center;gap:8px;padding:5px 5px 5px 12px;transition:opacity .2s;display:inline-flex;position:absolute;top:0;left:0;box-shadow:0 8px 22px #2457f559}.zone-tag.visible{opacity:1}.zone-tag:before{content:"";background:#7cf0b4;border-radius:50%;width:7px;height:7px;box-shadow:0 0 0 3px #7cf0b44d}.zone-tag:after{content:"";background:var(--blue);border-radius:2px;width:12px;height:12px;margin-left:-6px;position:absolute;bottom:-6px;left:50%;transform:rotate(45deg)}.zone-tag-action{z-index:1;background:#ffffff2e;border-radius:999px;padding:4px 10px;font-size:12px;font-weight:600;position:relative}.zone-tag-action kbd{color:var(--blue-deep);background:#fffffff2;border-color:#0000}.zone-tag:hover .zone-tag-action{background:#ffffff47}.hud-id{top:calc(14px + var(--safe-top));left:calc(14px + var(--safe-left));max-width:calc(100vw - 330px - var(--safe-left) - var(--safe-right));align-items:center;gap:12px;padding:10px 16px 10px 10px;display:flex;position:absolute}.hud-logo{background:var(--blue);color:#fff;width:44px;height:44px;font:800 22px var(--font);border-radius:12px;flex:none;place-items:center;display:grid;box-shadow:0 6px 14px #2457f559}.hud-id-text{min-width:0}.hud-id h1{letter-spacing:-.01em;margin:0;font-size:17px;line-height:1.2}.hud-id p{color:var(--ink-soft);white-space:nowrap;text-overflow:ellipsis;margin:1px 0 0;font-size:13px;overflow:hidden}.hud-id a{color:var(--blue);margin-top:3px;font-size:12px;font-weight:700;text-decoration:none;display:inline-block}.hud-id a:hover{text-decoration:underline}.hud-id a .short{display:none}@media (max-width:480px){.hud-id{max-width:calc(100vw - 186px - var(--safe-left) - var(--safe-right));gap:10px;padding:8px 12px 8px 8px}.hud-logo{width:38px;height:38px;font-size:19px}.hud-id h1{font-size:15px}.hud-id p{font-size:11.5px}.hud-id a .long{display:none}.hud-id a .short{display:inline}}.hud-actions{top:calc(14px + var(--safe-top));right:calc(14px + var(--safe-right));gap:6px;padding:6px;display:flex;position:absolute}.menu-btn{width:auto;font:700 14px var(--font);align-items:center;gap:6px;padding:0 14px 0 10px;display:inline-flex}@media (max-width:480px){.menu-btn span{display:none}.menu-btn{justify-content:center;width:40px;padding:0}}.menu-panel{top:calc(76px + var(--safe-top));right:calc(14px + var(--safe-right));z-index:30;opacity:0;width:240px;padding:8px;transition:opacity .15s,transform .15s;position:absolute;transform:translateY(-6px)}.menu-panel.open{opacity:1;transform:none}.menu-panel h3{letter-spacing:.08em;text-transform:uppercase;color:var(--blue);margin:6px 10px;font-size:11px;font-weight:800}.menu-panel ul{margin:0;padding:0;list-style:none}.menu-panel button,.menu-panel a{width:100%;color:var(--ink);font:600 15px var(--font);text-align:left;cursor:pointer;background:0 0;border:0;border-radius:10px;align-items:center;gap:10px;padding:8px 10px;text-decoration:none;display:flex}.menu-icon{width:30px;height:30px;color:var(--blue);background:#edf2ff;border-radius:8px;place-items:center;display:grid}.menu-panel button:hover,.menu-panel a:hover{background:#f1f4fb;outline:none}.menu-panel button:focus-visible{background:#f1f4fb;outline:none}.menu-panel a:focus-visible{background:#f1f4fb;outline:none}.menu-panel .sep{background:#eef0f5;height:1px;margin:6px 8px}.menu-panel a{color:var(--ink-soft);font-size:13px}.minimap{left:calc(14px + var(--safe-left));bottom:calc(14px + var(--safe-bottom));border-radius:50%;width:170px;height:170px;padding:6px;position:absolute}.minimap canvas{cursor:pointer;border-radius:50%;width:100%;height:100%;display:block}body.touch .minimap{left:auto;right:calc(14px + var(--safe-right));top:calc(72px + var(--safe-top));width:104px;height:104px;padding:4px;bottom:auto}@media (orientation:landscape) and (max-height:500px){body.touch .minimap{top:calc(64px + var(--safe-top));width:92px;height:92px}}.toast{left:50%;top:calc(16px + var(--safe-top));opacity:0;white-space:nowrap;padding:8px 16px;font-size:13px;font-weight:700;transition:opacity .25s,transform .25s;position:absolute;transform:translate(-50%,-8px);pointer-events:none!important}.toast.show{opacity:1;transform:translate(-50%)}@media (max-width:600px){.toast{top:auto;bottom:calc(190px + var(--safe-bottom))}}.time-pill{width:auto;font:700 13px var(--font);white-space:nowrap;align-items:center;gap:6px;padding:0 12px 0 10px;display:inline-flex}.time-pill[data-phase=night]{color:#3b4f9a;background:#e9edfb}.time-pill[data-phase=morning],.time-pill[data-phase=evening]{color:#c4620e;background:#fff3e4}.time-pill[data-phase=noon]{color:#c48a00}@media (max-width:480px){.time-pill span{display:none}.time-pill{justify-content:center;width:40px;padding:0}}.icon-btn.on{color:var(--blue);background:#edf2ff;border-color:#cfdcff}.loading{z-index:60;background:radial-gradient(circle at 50% 38%, #f8f9fc, var(--bg) 70%);pointer-events:auto;place-items:center;padding:16px;transition:opacity .5s,visibility .5s;display:grid;position:fixed;top:0;bottom:0;left:0;right:0}.loading.done{opacity:0;visibility:hidden}.loading-card{text-align:center;width:min(360px,100%);padding:30px 26px 22px}.loading-logo{background:var(--blue);color:#fff;width:64px;height:64px;font:800 32px var(--font);border-radius:18px;place-items:center;margin:0 auto 14px;display:grid;box-shadow:0 12px 26px #2457f559}.loading-card h1{letter-spacing:-.02em;margin:0;font-size:26px}.loading-card p{color:var(--ink-soft);margin:4px 0 0;font-size:14px}.progress{background:#e3e8f2;border-radius:99px;height:8px;margin:24px 0 8px;overflow:hidden}.progress div{border-radius:inherit;background:linear-gradient(90deg, var(--blue), #6b93ff);width:0;height:100%;transition:width .3s}.loading-status{min-height:1.4em;color:var(--ink-soft);font-size:12px;font-weight:600}.start-btn{background:var(--blue);color:#fff;width:100%;height:52px;font:800 16px var(--font);cursor:pointer;border:0;border-radius:14px;margin-top:16px;transition:transform .12s,background .12s,box-shadow .12s;box-shadow:0 10px 22px #2457f559}.start-btn:hover{background:var(--blue-deep)}.start-btn:active{transform:scale(.98)}.start-btn:disabled{box-shadow:none;cursor:default;background:#c9d2e4}.loading-classic{color:var(--blue);margin-top:14px;font-size:13px;font-weight:700;text-decoration:none;display:inline-block}.loading-classic:hover{text-decoration:underline}.hint{left:50%;bottom:calc(22px + var(--safe-bottom));width:max-content;max-width:calc(100vw - 400px);color:var(--ink-soft);opacity:0;flex-wrap:wrap;justify-content:center;gap:6px 16px;padding:10px 16px;font-size:13px;transition:opacity .6s,transform .6s;display:flex;position:absolute;transform:translate(-50%,10px);pointer-events:none!important}.hint.show{opacity:1;transform:translate(-50%)}.hint span{align-items:center;gap:4px;display:inline-flex}.hint b{color:var(--ink)}@media (max-width:900px){.hint{max-width:calc(100vw - 32px);bottom:calc(200px + var(--safe-bottom))}}body.touch .hint{bottom:calc(196px + var(--safe-bottom));max-width:min(340px,100vw - 32px)}@media (orientation:landscape) and (max-height:500px){body.touch .hint{bottom:calc(14px + var(--safe-bottom));max-width:min(380px,100vw - 340px)}}.touch-controls{-webkit-user-select:none;user-select:none;position:absolute;top:0;bottom:0;left:0;right:0;pointer-events:none!important}.touch-controls>*,.pedals>*,.touch-small>*{pointer-events:auto;touch-action:none}.joystick{left:calc(20px + var(--safe-left));bottom:calc(20px + var(--safe-bottom));-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border:1px solid var(--card-border);width:140px;height:140px;box-shadow:var(--shadow);background:#ffffffb8;border-radius:50%;position:absolute}.joystick-arrow{opacity:.35;border:8px solid #0000;width:0;height:0;margin-top:-8px;position:absolute;top:50%}.joystick-arrow.left{border-right-color:var(--ink);left:10px}.joystick-arrow.right{border-left-color:var(--ink);right:10px}.joystick-knob{background:var(--blue);border-radius:50%;width:60px;height:60px;margin:-30px 0 0 -30px;transition:transform .15s ease-out;position:absolute;top:50%;left:50%;box-shadow:0 8px 18px #2457f566,inset 0 -4px #0000001f}.joystick.active .joystick-knob{transition:none}.pedals{right:calc(20px + var(--safe-right));bottom:calc(20px + var(--safe-bottom));align-items:flex-end;gap:14px;display:flex;position:absolute;pointer-events:none!important}.pedal{font:800 14px var(--font);letter-spacing:.04em;border-radius:50%;align-content:center;place-items:center;transition:transform 80ms,background .1s;display:grid}.pedal small{opacity:.6;font-size:10px;font-weight:700}.pedal.gas{background:var(--blue);color:#fff;width:92px;height:92px;font-size:18px;box-shadow:0 10px 22px #2457f566,inset 0 -5px #0000001f}.pedal.brake{-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border:1px solid var(--card-border);width:72px;height:72px;color:var(--ink);box-shadow:var(--shadow);background:#ffffffd1;margin-bottom:4px}.pedal.pressed{transform:scale(.92)}.pedal.gas.pressed{background:var(--blue-deep)}.pedal.brake.pressed{color:#c47a00;background:#fff3df}.touch-small{right:calc(20px + var(--safe-right));bottom:calc(130px + var(--safe-bottom));align-items:center;gap:10px;display:flex;position:absolute;pointer-events:none!important}.touch-reset{border:1px solid var(--card-border);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);width:46px;height:46px;color:var(--ink-soft);box-shadow:var(--shadow);background:#ffffffd1;border-radius:50%;place-items:center;display:grid}.touch-turbo{color:#fff;width:64px;height:64px;font:800 9px var(--font);letter-spacing:.06em;background:linear-gradient(160deg,#ff5a4f,#e0262f);border-radius:50%;align-content:center;place-items:center;transition:transform 80ms,box-shadow .1s;display:grid;box-shadow:0 10px 22px #e0262f66,inset 0 -4px #00000024}.touch-turbo .icon{width:24px;height:24px}.touch-turbo.pressed{transform:scale(.92);box-shadow:0 0 0 4px #ff5a4f59,0 0 26px #ff2a3abf}.interact-btn{background:var(--blue);color:#fff;height:48px;font:800 15px var(--font);white-space:nowrap;border:0;border-radius:999px;padding:0 20px;animation:.25s cubic-bezier(.2,.9,.3,1.4) pop;box-shadow:0 10px 22px #2457f566}.interact-btn:active,.touch-reset:active{transform:scale(.94)}@keyframes pop{0%{opacity:0;transform:scale(.6)}}@media (orientation:landscape) and (max-height:500px){.joystick{width:120px;height:120px;left:calc(16px + var(--safe-left));bottom:calc(14px + var(--safe-bottom))}.joystick-knob{width:52px;height:52px;margin:-26px 0 0 -26px}.pedals{right:calc(16px + var(--safe-right));bottom:calc(14px + var(--safe-bottom))}.pedal.gas{width:80px;height:80px}.pedal.brake{width:62px;height:62px}.touch-small{right:calc(16px + var(--safe-right));bottom:calc(106px + var(--safe-bottom))}.touch-turbo{width:54px;height:54px}}@media (min-width:768px) and (min-height:768px){.joystick{width:160px;height:160px}.pedal.gas{width:104px;height:104px}.pedal.brake{width:80px;height:80px}.touch-small{bottom:calc(146px + var(--safe-bottom))}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation:none!important}}.menu-panel h3 kbd{margin-left:4px}.menu-panel .vehicle-list button.on{background:#f4f7ff}.menu-panel .vehicle-list button>span:nth-child(2){flex:1}.menu-panel .vehicle-list button>.icon:last-child{color:var(--blue)}.menu-panel{max-height:calc(100dvh - 96px - var(--safe-top));overflow-y:auto}
