@import"https://fonts.googleapis.com/css2?family=Barlow+Condensed:ital,wght@0,500;0,600;0,700;0,800;1,700&family=IBM+Plex+Mono:wght@500;600&display=swap";:root{color:#f7f8f5;background:#050706;font-family:Barlow Condensed,Arial Narrow,Arial,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}html,body,#app{width:100%;height:100%;min-height:100dvh;margin:0;overflow:hidden}body{min-width:320px}button,input{font:inherit}button{color:inherit}.game-shell{position:relative;width:100%;height:100dvh;min-height:100%;overflow:hidden;isolation:isolate;background:#050706}.map-host,.map-host>*{position:absolute;inset:0;display:block;width:100%;height:100%}.vignette{position:absolute;z-index:2;inset:0;pointer-events:none;background:linear-gradient(180deg,rgba(1,3,2,.6),transparent 23%,transparent 65%,rgba(1,3,2,.68)),radial-gradient(circle at 50% 45%,transparent 45%,rgba(0,0,0,.42) 100%)}.journey-line{position:absolute;z-index:7;top:0;left:0;width:100%;height:3px;pointer-events:none;background:#ffffff2e}.journey-line i{display:block;width:0;height:100%;background:#d8ff3e;box-shadow:0 0 16px #d8ff3ee6}.hud-panel{position:absolute;z-index:5;display:flex;flex-direction:column;text-shadow:0 2px 14px #000}.brand{top:28px;left:30px;padding-left:15px;border-left:4px solid #d8ff3e}.brand-name{font-size:clamp(1.2rem,2.2vw,1.8rem);font-weight:800;letter-spacing:.055em;line-height:.95}.brand-subtitle{margin-top:7px;color:#d8ff3e;font:600 .78rem IBM Plex Mono,monospace;letter-spacing:.16em}.mission-clock{top:94px;left:49px}.mission-clock span,.destination span,.speed-target span{color:#ffffffad;font:600 .78rem IBM Plex Mono,monospace;letter-spacing:.14em}.mission-clock strong{margin-top:3px;font:600 1rem IBM Plex Mono,monospace;font-variant-numeric:tabular-nums}.route-summary{position:absolute;z-index:6;top:22px;left:50%;display:grid;grid-template-columns:minmax(0,1fr) 42px minmax(0,1fr);align-items:center;width:min(610px,calc(100% - 610px));min-width:470px;min-height:74px;padding:10px 18px 9px;border:1px solid rgba(255,255,255,.2);border-radius:4px;translate:-50% 0;background:#050706ad;box-shadow:0 10px 34px #00000047;cursor:pointer;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.route-summary:hover,.route-summary:focus-visible{border-color:#d8ff3ebf;outline:none;background:#090d0ad6}.route-summary>i{color:#d8ff3e;font:600 1.5rem IBM Plex Mono,monospace;text-align:center}.route-endpoint{display:flex;min-width:0;flex-direction:column;align-items:flex-start;text-align:left}.route-endpoint--finish{align-items:flex-end;text-align:right}.route-endpoint small{color:#ffffff8c;font:600 .68rem IBM Plex Mono,monospace;letter-spacing:.13em}.route-endpoint strong{max-width:100%;margin-top:2px;overflow:hidden;font-size:1.1rem;font-style:italic;letter-spacing:.045em;line-height:1;text-overflow:ellipsis;white-space:nowrap}.route-endpoint b{max-width:100%;margin-top:4px;overflow:hidden;color:#ffffffa8;font:500 .7rem IBM Plex Mono,monospace;text-overflow:ellipsis;white-space:nowrap}.route-summary>em{position:absolute;right:12px;bottom:-17px;padding:3px 7px;color:#d8ff3e;background:#050706c2;font: 600 .64rem IBM Plex Mono,monospace;letter-spacing:.08em}.destination{top:26px;right:30px;flex-direction:row;align-items:center;gap:13px;text-align:right}.destination>div:last-child{display:flex;flex-direction:column;align-items:flex-end}.destination strong{max-width:210px;margin-top:1px;overflow:hidden;font-size:clamp(1.45rem,2.5vw,2.2rem);font-style:italic;line-height:.95;letter-spacing:.04em;text-overflow:ellipsis;white-space:nowrap}.destination b{margin-top:5px;color:#d8ff3e;font:600 .88rem IBM Plex Mono,monospace;font-variant-numeric:tabular-nums}.minimap-panel{position:absolute;z-index:5;top:116px;right:30px;width:252px;padding:8px;border:1px solid rgba(255,255,255,.2);border-radius:4px;background:#050706c2;box-shadow:0 12px 34px #00000057;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.minimap-heading{display:flex;align-items:center;justify-content:space-between;padding:1px 3px 7px;color:#ffffffb8;font:600 .7rem IBM Plex Mono,monospace;letter-spacing:.1em}.minimap-heading strong{color:#d8ff3e;font-size:.76rem}.minimap-host{width:100%;height:154px;overflow:hidden;border-radius:2px;background:#101410}.minimap-panel.is-unavailable{display:none}.compass{position:relative;display:grid;place-items:center;width:58px;height:58px;border:1px solid rgba(216,255,62,.6);border-radius:50%;background:#050706a6;box-shadow:inset 0 0 18px #d8ff3e14,0 2px 18px #00000059;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.compass:after{position:absolute;width:4px;height:4px;border-radius:50%;background:#fff;content:""}.compass i{display:block;color:#d8ff3e;font:600 2rem/1 IBM Plex Mono,monospace;transform-origin:50% 50%;transition:rotate 90ms linear}.view-switcher{position:absolute;z-index:6;bottom:72px;left:50%;display:flex;translate:-50% 0;border:1px solid rgba(255,255,255,.2);border-radius:4px;overflow:hidden;background:#050706a3;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.view-switcher button{min-height:38px;padding:0 13px;border:0;color:#ffffffb3;background:transparent;font:600 .72rem IBM Plex Mono,monospace;cursor:pointer}.view-switcher button+button{border-left:1px solid rgba(255,255,255,.15)}.view-switcher button:hover,.view-switcher button[aria-pressed=true]{color:#050706;background:#d8ff3e}.view-switcher .scene-option{border-left-color:#d8ff3e59}.camera-mode{position:absolute;z-index:6;bottom:29px;left:50%;min-width:182px;padding:8px 12px;border:1px solid rgba(255,255,255,.2);border-radius:3px;translate:-50% 0;color:#ffffffc7;background:#050706a3;font:600 .75rem IBM Plex Mono,monospace;text-align:center;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.camera-mode.pulse{animation:camera-pulse .42s ease-out}@keyframes camera-pulse{35%{color:#050706;border-color:#d8ff3e;background:#d8ff3e}}.speedometer{position:absolute;z-index:5;right:30px;bottom:25px;display:grid;grid-template-columns:auto auto;align-items:end;gap:0 18px;text-align:right;text-shadow:0 2px 18px #000}.speed-target{display:flex;min-width:74px;flex-direction:column;align-items:flex-end;padding-bottom:2px}.speed-target strong{margin-top:5px;color:#d8ff3e;font:italic 700 2.15rem/.9 Barlow Condensed,sans-serif;font-variant-numeric:tabular-nums}.speed-target b{margin-top:4px;color:#ffffffa6;font:600 .68rem IBM Plex Mono,monospace}.speed-value{display:flex;align-items:flex-end;gap:9px}.speed-value strong{min-width:3ch;font-size:clamp(4.8rem,9vw,7.6rem);font-style:italic;font-weight:700;line-height:.7;letter-spacing:-.045em;font-variant-numeric:tabular-nums}.speed-value span{padding-bottom:2px;color:#d8ff3e;font:600 .8rem IBM Plex Mono,monospace;letter-spacing:.12em;writing-mode:vertical-rl;transform:rotate(180deg)}.speed-line{grid-column:1 / -1;width:100%;height:3px;margin-top:16px;background:#fff3;overflow:hidden}.speed-line i{display:block;width:0;height:100%;background:#d8ff3e;box-shadow:0 0 12px #d8ff3ecc}.player-controls{position:absolute;z-index:6;bottom:126px;left:50%;display:flex;align-items:center;gap:7px;padding:7px;border:1px solid rgba(255,255,255,.2);border-radius:4px;translate:-50% 0;background:#050706c2;box-shadow:0 10px 30px #00000052;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.player-controls button{min-height:40px;padding:0 13px;border:1px solid rgba(255,255,255,.25);border-radius:3px;color:#ffffffdb;background:#ffffff0a;font:600 .75rem IBM Plex Mono,monospace;white-space:nowrap;cursor:pointer}.player-controls button:hover:not(:disabled){border-color:#d8ff3e}.player-controls .is-primary{color:#050706;border-color:#d8ff3e;background:#d8ff3e}.player-controls .is-primary:hover:not(:disabled){background:#fff}.player-controls button:disabled{cursor:not-allowed;opacity:.32}.player-controls>i{width:1px;height:26px;margin-inline:2px;background:#fff3}.pause-indicator{position:absolute;z-index:8;top:50%;left:50%;display:flex;flex-direction:column;align-items:center;padding:17px 25px;border:1px solid rgba(216,255,62,.5);border-radius:4px;opacity:0;visibility:hidden;translate:-50% -50%;color:#fff;background:#050706d6;box-shadow:0 18px 54px #0000007a;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);transition:opacity .16s ease,visibility .16s ease,scale .16s ease}.pause-indicator.is-visible{opacity:1;visibility:visible}.pause-indicator strong{color:#d8ff3e;font:700 2.1rem/1 IBM Plex Mono,monospace}.pause-indicator span{margin-top:7px;font:700 1.1rem IBM Plex Mono,monospace;letter-spacing:.12em}.pause-indicator small{margin-top:5px;color:#ffffff94;font:500 .72rem IBM Plex Mono,monospace}.touch-controls,.mobile-settings-toggle,.mobile-settings{display:none}.controls{left:30px;bottom:28px;flex-direction:row;flex-wrap:wrap;max-width:620px;gap:8px 17px;color:#ffffffc7;font:500 .75rem IBM Plex Mono,monospace}.controls span{display:flex;align-items:center;gap:5px}kbd{display:inline-grid;place-items:center;min-width:23px;height:23px;padding:0 5px;border:1px solid rgba(255,255,255,.34);border-radius:3px;color:#fff;background:#050706a6;box-shadow:inset 0 -2px #0000004d}.status-card{position:absolute;z-index:12;top:50%;left:50%;display:grid;grid-template-columns:82px minmax(0,1fr);align-items:center;width:min(620px,calc(100% - 40px));min-height:155px;padding:24px;border:1px solid rgba(255,255,255,.18);border-top:3px solid #d8ff3e;border-radius:5px;translate:-50% -50%;background:#070a08ed;box-shadow:0 22px 70px #0000008c;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);transition:opacity .3s ease,visibility .3s ease}.status-card.is-hidden{opacity:0;visibility:hidden}.status-card.is-error{border-top-color:#ff394d}.status-mark{display:grid;place-items:center;width:58px;height:58px;border:2px solid #d8ff3e;border-radius:50%;color:#d8ff3e;font-size:1.05rem;font-weight:800;letter-spacing:.08em}.eyebrow{margin:0 0 7px;color:#d8ff3e;font:600 .76rem IBM Plex Mono,monospace;letter-spacing:.17em}.status-card h1{margin:0;font-size:clamp(1.55rem,4vw,2.3rem);font-style:italic;line-height:1;text-transform:uppercase}.status-card p:last-child{max-width:48ch;margin:12px 0 0;color:#ffffffad;font:500 .82rem/1.6 IBM Plex Mono,monospace}code{color:#fff;font-family:inherit}.route-dialog{position:absolute;z-index:20;inset:0;display:grid;place-items:center;padding:20px;opacity:0;visibility:hidden;background:#00000094;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transition:opacity .22s ease,visibility .22s ease}.route-dialog.is-visible{opacity:1;visibility:visible}.route-form{position:relative;width:min(610px,100%);padding:30px;border:1px solid rgba(255,255,255,.2);border-top:3px solid #d8ff3e;border-radius:5px;background:#060907f5;box-shadow:0 30px 90px #000000ad}.route-close{position:absolute;top:12px;right:12px;display:grid;place-items:center;width:36px;height:36px;border:1px solid rgba(255,255,255,.22);border-radius:50%;background:transparent;font:500 1.5rem/1 sans-serif;cursor:pointer}.route-close:hover{color:#050706;border-color:#d8ff3e;background:#d8ff3e}.route-close.is-required{display:none}.route-form h2{margin:0 0 24px;font-size:clamp(2.1rem,5vw,3.4rem);font-style:italic;line-height:.95}.route-form h2 span{color:#d8ff3e}.route-form label{display:flex;flex-direction:column;gap:8px;margin-top:15px}.route-form label span{color:#ffffffa8;font:600 .76rem IBM Plex Mono,monospace;letter-spacing:.13em}.address-field{position:relative}.route-form input{width:100%;min-height:52px;padding:0 15px;border:1px solid rgba(255,255,255,.26);border-radius:3px;outline:none;color:#fff;background:#ffffff0f;font:500 1rem IBM Plex Mono,monospace}.route-form input:focus{border-color:#d8ff3e;box-shadow:0 0 0 2px #d8ff3e1f}.address-suggestions{position:absolute;z-index:4;top:calc(100% + 5px);left:0;display:none;width:100%;margin:0;padding:5px;border:1px solid rgba(216,255,62,.38);border-radius:3px;list-style:none;background:#060907fa;box-shadow:0 16px 34px #00000085}.address-suggestions.is-visible{display:block}.address-suggestions button{width:100%;min-height:42px;padding:7px 10px;border:0;border-radius:2px;color:#ffffffdb;background:transparent;font:500 .82rem/1.35 IBM Plex Mono,monospace;text-align:left;cursor:pointer}.address-suggestions button:hover,.address-suggestions button[aria-selected=true]{color:#050706;background:#d8ff3e}.route-error{min-height:20px;margin:12px 0 0;color:#ff6b7a;font:500 .8rem/1.45 IBM Plex Mono,monospace}.route-submit{width:100%;min-height:52px;margin-top:4px;border:1px solid #d8ff3e;border-radius:3px;color:#050706;background:#d8ff3e;font:700 .86rem IBM Plex Mono,monospace;letter-spacing:.11em;cursor:pointer}.route-submit:hover:not(:disabled){background:#fff}.route-submit:disabled{cursor:wait;opacity:.72}.route-form>small{display:block;margin-top:13px;color:#ffffff80;font:500 .73rem/1.55 IBM Plex Mono,monospace}.mission-complete{position:absolute;z-index:18;inset:0;overflow:hidden;opacity:0;visibility:hidden;pointer-events:none;background:#050706;transition:opacity .32s ease,visibility .32s ease}.mission-complete.is-visible{opacity:1;visibility:visible;pointer-events:auto}.arrival-street-view,.arrival-shade{position:absolute;inset:0}.arrival-street-view{background:#121512}.arrival-shade{z-index:1;pointer-events:none;background:linear-gradient(90deg,#030504c2,#03050414 65%),linear-gradient(0deg,rgba(3,5,4,.58),transparent 55%)}.arrival-card{position:absolute;z-index:2;bottom:30px;left:30px;display:flex;flex-direction:column;align-items:flex-start;width:min(500px,calc(100% - 60px));padding:27px 30px 30px;border:1px solid rgba(255,255,255,.2);border-top:3px solid #d8ff3e;border-radius:5px;background:#050706e0;box-shadow:0 30px 80px #00000094;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);transition:opacity .18s ease,visibility .18s ease,translate .18s ease}.arrival-card>p{margin:0;color:#d8ff3e;font:600 .8rem IBM Plex Mono,monospace;letter-spacing:.2em}.arrival-card h2{margin:10px 0 22px;font-size:clamp(2rem,6vw,3.6rem);font-style:italic;line-height:1;text-align:left}.arrival-card h2 span{color:#d8ff3e}.result-grid{display:grid;grid-template-columns:1fr 1fr;width:100%;border-block:1px solid rgba(255,255,255,.16)}.result-grid div{display:flex;flex-direction:column;gap:5px;padding:16px 12px;text-align:center}.result-grid div+div{border-left:1px solid rgba(255,255,255,.16)}.result-grid span{color:#ffffff9e;font:600 .75rem IBM Plex Mono,monospace;letter-spacing:.14em}.result-grid strong{font:600 clamp(1rem,3.5vw,1.45rem) "IBM Plex Mono",monospace;font-variant-numeric:tabular-nums}.arrival-actions{display:flex;flex-wrap:wrap;gap:9px;margin-top:24px}.arrival-actions button{min-height:46px;padding:0 22px;border:1px solid rgba(255,255,255,.28);border-radius:3px;color:#fff;background:#ffffff0d;font:700 .82rem IBM Plex Mono,monospace;letter-spacing:.08em;cursor:pointer}.arrival-actions .is-primary{color:#050706;border-color:#d8ff3e;background:#d8ff3e}.street-view-status{color:#ffffff9e;font:600 .72rem IBM Plex Mono,monospace;letter-spacing:.08em}.street-view-expand{display:flex;width:100%;min-height:52px;margin-top:15px;padding:9px 12px;border:1px solid rgba(216,255,62,.5);border-radius:3px;flex-direction:column;align-items:flex-start;justify-content:center;gap:4px;color:#fff;background:#d8ff3e0f;cursor:pointer}.street-view-expand strong{color:#d8ff3e;font:700 .78rem IBM Plex Mono,monospace;letter-spacing:.08em}.street-view-expand:hover:not(:disabled){color:#050706;background:#d8ff3e}.street-view-expand:hover:not(:disabled) small,.street-view-expand:hover:not(:disabled) strong{color:#050706}.street-view-expand:disabled{cursor:wait;opacity:.62}.arrival-summary-toggle{position:absolute;z-index:3;top:calc(16px + env(safe-area-inset-top,0px));left:16px;display:none;min-height:42px;padding:0 15px;border:1px solid rgba(216,255,62,.72);border-radius:3px;color:#050706;background:#d8ff3e;box-shadow:0 8px 24px #00000057;font:700 .72rem IBM Plex Mono,monospace;letter-spacing:.08em;cursor:pointer}.mission-complete.is-street-view-fullscreen .arrival-card{opacity:0;visibility:hidden;pointer-events:none;translate:0 16px}.mission-complete.is-street-view-fullscreen .arrival-shade{opacity:0}.mission-complete.is-street-view-fullscreen .arrival-summary-toggle{display:block}.arrival-actions button:hover{border-color:#d8ff3e;background:#fff;color:#050706}@media(max-width:1180px){.route-summary{top:126px;width:min(600px,calc(100% - 360px));min-width:440px}.minimap-panel{top:220px}}@media(max-width:780px){.brand,.mission-clock,.controls{left:16px}.brand,.destination{top:16px}.destination,.speedometer{right:16px}.brand{max-width:45%}.mission-clock{top:76px}.destination{gap:8px}.destination strong{max-width:135px}.compass{width:46px;height:46px}.compass i{font-size:1.55rem}.route-summary{top:119px;width:calc(100% - 32px);min-width:0}.minimap-panel{top:263px;right:16px;width:190px}.minimap-host{height:116px}.route-endpoint b{display:none}.controls{bottom:70px;max-width:320px;gap:6px 10px}.controls span:nth-child(5),.controls span:nth-child(6){display:none}.speedometer{bottom:22px}.speed-value strong{font-size:clamp(4rem,18vw,6rem)}.player-controls{bottom:130px;max-width:calc(100% - 32px);overflow-x:auto;scrollbar-width:none}.player-controls::-webkit-scrollbar{display:none}.touch-controls{display:block}.touch-group{position:absolute;z-index:7;top:54%;padding:7px;border:1px solid rgba(255,255,255,.2);border-radius:5px;translate:0 -50%;background:#050706b3;box-shadow:0 10px 28px #0000004d;-webkit-backdrop-filter:blur(9px);backdrop-filter:blur(9px)}.touch-group span{color:#ffffff9e;font:600 .66rem IBM Plex Mono,monospace;letter-spacing:.1em;text-align:center}.touch-group button{display:grid;place-items:center;width:40px;height:40px;padding:0;border:1px solid rgba(255,255,255,.28);border-radius:4px;color:#fff;background:#ffffff0f;font:700 1.05rem IBM Plex Mono,monospace;touch-action:manipulation}.touch-group button:active{color:#050706;border-color:#d8ff3e;background:#d8ff3e}.touch-view{left:16px;display:grid;grid-template-columns:repeat(3,40px);grid-template-rows:auto repeat(3,40px);gap:4px}.touch-view span{grid-column:1 / -1}.touch-up{grid-column:2;grid-row:2}.touch-left{grid-column:1;grid-row:3}.touch-right{grid-column:3;grid-row:3}.touch-down{grid-column:2;grid-row:4}.touch-speed{right:16px;display:flex;flex-direction:column;gap:5px}.view-switcher{top:205px;bottom:auto;max-width:calc(100% - 32px)}.camera-mode{display:none}.status-card{grid-template-columns:1fr}.status-mark{margin-bottom:20px}}@media(max-width:520px){.brand-name{font-size:1rem}.brand-subtitle,.mission-clock span,.destination span{font-size:.67rem}.destination strong{max-width:104px;font-size:1.25rem}.destination b{font-size:.75rem}.compass{width:40px;height:40px}.route-summary{grid-template-columns:minmax(0,1fr) 28px minmax(0,1fr);padding-inline:11px}.route-endpoint strong{font-size:.94rem}.route-summary>em{display:none}.view-switcher button{min-width:0;padding-inline:7px;font-size:.6rem}.minimap-panel{top:255px;width:150px}.minimap-host{height:92px}.minimap-heading span{font-size:0}.minimap-heading span:after{font-size:.65rem;content:"PERCORSO"}.controls{display:none}.controls span:nth-child(2),.controls span:nth-child(3){display:none}.speed-target{display:none}.speedometer{grid-template-columns:1fr}.player-controls{bottom:124px;left:16px;justify-content:flex-start;max-width:calc(100% - 32px);translate:0}.player-controls button{min-height:36px;padding-inline:10px;font-size:.66rem}.route-form{padding:26px 20px 22px}.arrival-card{bottom:16px;left:16px;width:calc(100% - 32px);padding:22px 20px 24px}.arrival-actions{width:100%}.arrival-actions button{flex:1 1 100%;width:100%}}@media(max-width:780px)and (max-height:650px){.mission-clock,.minimap-panel,.controls{display:none}.route-summary{top:78px}.view-switcher{top:164px}.touch-group{top:47%}.player-controls{bottom:76px}}@media(max-width:780px){.route-summary{top:auto;bottom:calc(18px + env(safe-area-inset-bottom,0px));left:16px;grid-template-columns:minmax(0,1fr) 20px minmax(0,1fr);width:min(260px,46vw);min-width:0;min-height:54px;padding:6px 10px;translate:0}.route-summary>em,.route-endpoint b,.view-switcher,.camera-mode,.controls{display:none}.route-summary>i{font-size:1rem}.route-endpoint small{font-size:.56rem}.route-endpoint strong{margin-top:1px;font-size:.76rem}.minimap-panel{top:110px;right:16px;width:150px;padding:6px}.minimap-host{height:88px}.minimap-heading{padding-bottom:5px;font-size:.62rem}.mobile-settings-toggle{position:absolute;z-index:13;top:110px;left:16px;display:grid;place-items:center;width:44px;height:44px;padding:0;border:1px solid rgba(255,255,255,.28);border-radius:50%;color:#fff;background:#0507066b;box-shadow:0 8px 24px #00000047;font-size:1.15rem;cursor:pointer;-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px)}.mobile-settings-toggle[aria-expanded=true]{color:#050706;border-color:#d8ff3e;background:#d8ff3e}.mobile-settings{position:absolute;z-index:14;top:164px;left:16px;display:flex;width:min(390px,calc(100% - 32px));max-height:calc(100dvh - 180px - env(safe-area-inset-bottom,0px));padding:13px;border:1px solid rgba(216,255,62,.38);border-radius:5px;opacity:0;visibility:hidden;pointer-events:none;flex-direction:column;gap:13px;overflow-y:auto;background:#050706eb;box-shadow:0 18px 48px #00000080;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);transition:opacity .16s ease,visibility .16s ease,translate .16s ease;translate:0 -6px}.mobile-settings.is-visible{opacity:1;visibility:visible;pointer-events:auto;translate:0}.mobile-settings header{display:flex;align-items:center;justify-content:space-between;color:#d8ff3e;font:700 .74rem IBM Plex Mono,monospace;letter-spacing:.11em}.mobile-settings header button{width:34px;height:34px;padding:0;border:1px solid rgba(255,255,255,.24);border-radius:50%;color:#fff;background:transparent;font-size:1.15rem}.settings-row{display:grid;gap:6px}.settings-row>span{color:#ffffff8f;font:600 .64rem IBM Plex Mono,monospace;letter-spacing:.11em}.settings-row>div{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.settings-row button{min-height:42px;padding:0 8px;border:1px solid rgba(255,255,255,.22);border-radius:3px;color:#ffffffd1;background:#ffffff0a;font:600 .67rem IBM Plex Mono,monospace}.settings-row button[aria-pressed=true]{color:#050706;border-color:#d8ff3e;background:#d8ff3e}.settings-row button:disabled{opacity:.3}.settings-journey>div{grid-template-columns:repeat(2,minmax(0,1fr))}.settings-journey .settings-stop{grid-column:1 / -1;min-height:46px;color:#d8ff3e;border-color:#d8ff3e8c;background:#d8ff3e12}.touch-controls{display:block}.touch-group{top:54%;padding:0;border:0;border-radius:0;translate:0 -50%;background:transparent;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none}.touch-group button{width:46px;height:46px;border-color:#ffffff3d;border-radius:50%;background:#0507064d;box-shadow:0 6px 18px #0003;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);touch-action:none;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.touch-view{left:16px;display:grid;grid-template-columns:repeat(3,46px);grid-template-rows:repeat(3,46px);gap:8px}.touch-up{grid-column:2;grid-row:1}.touch-left{grid-column:1;grid-row:2}.touch-right{grid-column:3;grid-row:2}.touch-down{grid-column:2;grid-row:3}.touch-speed{top:auto;right:16px;bottom:calc(124px + env(safe-area-inset-bottom,0px));display:grid;grid-template-columns:repeat(2,46px);gap:8px;translate:0}.player-controls{top:auto;right:16px;bottom:calc(172px + env(safe-area-inset-bottom,0px));left:auto;display:block;max-width:none;padding:0;border:0;translate:0;overflow:visible;background:transparent;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none}.player-controls>*:not(#pause-toggle){display:none}.player-controls #pause-toggle{width:58px;min-height:40px;padding:0 5px;border-radius:20px;font-size:.62rem}.speedometer{bottom:calc(18px + env(safe-area-inset-bottom,0px))}}@media(max-width:520px){.brand-subtitle{display:none}.mission-clock{top:56px}.route-summary{top:auto;bottom:calc(12px + env(safe-area-inset-bottom,0px));left:12px;width:46vw;min-height:52px}.route-endpoint strong{font-size:.76rem}.minimap-panel,.mobile-settings-toggle{top:100px}.minimap-panel{width:136px}.minimap-host{height:78px}.minimap-heading span{font-size:.6rem}.minimap-heading span:after{content:none}.mobile-settings{top:154px;max-height:calc(100dvh - 170px - env(safe-area-inset-bottom,0px))}.speed-value strong{font-size:clamp(3.5rem,18vw,5rem)}.touch-speed{right:12px;bottom:calc(118px + env(safe-area-inset-bottom,0px))}.player-controls{right:12px;bottom:calc(166px + env(safe-area-inset-bottom,0px))}.arrival-card{bottom:calc(12px + env(safe-area-inset-bottom,0px));left:12px;width:calc(100% - 24px);max-height:calc(100dvh - 24px - env(safe-area-inset-bottom,0px));padding:16px;overflow-y:auto}.arrival-card>p{font-size:.68rem}.arrival-card h2{margin:8px 0 13px;font-size:clamp(1.65rem,8vw,2.25rem)}.result-grid div{padding:10px 6px}.result-grid span{font-size:.66rem}.street-view-expand{min-height:48px;margin-top:12px}.arrival-actions{gap:7px;margin-top:12px}.arrival-actions button{min-height:42px}}@media(max-width:780px)and (max-height:650px){.route-summary{top:auto;bottom:calc(12px + env(safe-area-inset-bottom,0px))}.mobile-settings-toggle{top:88px}.mobile-settings{top:140px;max-height:calc(100dvh - 152px - env(safe-area-inset-bottom,0px))}.touch-group{top:48%}.player-controls{top:auto;bottom:calc(160px + env(safe-area-inset-bottom,0px))}.touch-speed{bottom:calc(112px + env(safe-area-inset-bottom,0px))}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
