:root{--font-ui:"DM Sans", system-ui, sans-serif;--font-display:"Inter", sans-serif;--font-accent:"Pixelify Sans", monospace;--font-caption:"Poppins", sans-serif;--font-mono:"SF Mono", "Menlo", "Consolas", monospace;--brand:#06c;--brand-hover:#004c99;--brand-light:#e0f2fe;--brand-shadow:0 4px 20px #0066cc4d;--brand-shadow-hover:0 8px 28px #06c6;--accent:#0a84ff;--accent-hover:#0071e3;--accent-glow:#0a84ff17;--surface-bg:#f2f2f7;--surface-card:#fff;--surface-hover:#0000000b;--surface-ch:242 242 247;--surface-card-ch:255 255 255;--surface-border-ch:229 229 234;--text-primary:#1d1d1f;--text-mid:#4a4a4f;--text-muted:#6e6e73;--text-dim:#aeaeb2;--text-primary-ch:29 29 31;--text-muted-ch:110 110 115;--text-dim-ch:174 174 178;--border:#00000017;--border-mid:#00000021;--border-light:#1d1d1f1f;--border-white:#fff9;--red:#ff3b30;--green:#34c759;--yellow:#ffd60a;--orange:#ff9f0a;--stat-good:#30d158;--stat-ok:#ffd60a;--stat-bad:#ff453a;--shadow-sm:0 1px 4px #00000014;--shadow:0 4px 20px #0000001a;--shadow-lg:0 8px 32px #00000024;--glass-bg-sm:#ffffffc2;--glass-bg:#ffffffd1;--glass-bg-strong:#ffffffb8;--glass-blur-sm:blur(12px);--glass-blur:blur(20px) saturate(1.6);--glass-blur-lg:blur(28px) saturate(1.7);--glass-border:1px solid #00000017;--glass-border-white:1px solid #fff9;--input-border:1.5px solid var(--border-mid);--input-radius:12px;--input-bg:var(--glass-bg);--focus-ring:0 0 0 3px #0a84ff1f;--r-xs:4px;--r-sm:6px;--r:8px;--r-input:12px;--r-lg:14px;--r-xl:20px;--r-card:28px;--r-pill:980px;--r-full:9999px;--icon-sm:14px;--icon:16px;--icon-md:20px;--icon-lg:24px;--t-fast:.12s;--t:.15s ease;--t-btn:.18s ease;--t-std:.2s ease;--t-slow:.4s ease;--t-spring:cubic-bezier(.34, 1.4, .64, 1);--t-spring-soft:cubic-bezier(.34, 1.1, .64, 1);--t-slide:cubic-bezier(.25, .46, .45, .94)}.dark{--surface-bg:#1c1c1e;--surface-card:#242426;--surface-hover:#ffffff12;--surface-ch:10 10 10;--surface-card-ch:28 28 30;--surface-border-ch:58 58 60;--text-primary:#f5f5f7;--text-muted:#aeaeb2;--text-dim:#636366;--text-primary-ch:245 245 247;--text-muted-ch:152 152 157;--text-dim-ch:72 72 74;--border:#ffffff1a;--border-mid:#ffffff29;--border-light:#ffffff1f;--shadow-sm:0 1px 4px #0006;--shadow:0 4px 20px #00000080;--shadow-lg:0 8px 32px #0009;--glass-bg-sm:#242426db;--glass-bg:#242426eb;--glass-bg-strong:#1c1c1e9e;--glass-border:1px solid #ffffff1a;--glass-border-white:1px solid #ffffff29;--input-bg:#ffffff0f}@keyframes pulse-load{0%,to{opacity:1;transform:scale(1)}50%{opacity:.72;transform:scale(.93)}}@keyframes blob-drift-1{0%,to{transform:translate(0)scale(1)}50%{transform:translate(8vmax,6vmax)scale(1.12)}}@keyframes blob-drift-2{0%,to{transform:translate(0)scale(1)}50%{transform:translate(-7vmax,9vmax)scale(.92)}}@keyframes blob-drift-3{0%,to{transform:translate(0)scale(1)}50%{transform:translate(6vmax,-7vmax)scale(1.08)}}@keyframes toast-in{0%{opacity:0;transform:translate(-16px)}to{opacity:1;transform:translate(0)}}@keyframes toast-out{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(-16px)}}@keyframes float-in{0%{opacity:0;transform:translate(-50%)translateY(6px)}to{opacity:1;transform:translate(-50%)translateY(0)}}@keyframes rotate-hint{0%,30%{opacity:1;transform:rotate(0)}55%,75%{opacity:.9;transform:rotate(-90deg)}to{opacity:1;transform:rotate(0)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes fps-warn-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse-custom{0%,to{opacity:1;transform:scale(1)}50%{opacity:.7;transform:scale(.95)}}*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--toolbar-h:0px;--controls-h:46px;--font-sans:var(--font-ui);--radius:var(--r);--radius-lg:var(--r-input);--shadow-float:var(--shadow);--bg-deep:var(--surface-bg);--bg-panel:var(--glass-bg);--bg-hover:var(--surface-hover);--accent-dim:var(--accent-hover)}html,body{background:var(--bg-deep);width:100%;height:100%;color:var(--text-primary);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;font-size:14px;line-height:1.5;overflow:hidden}#app-canvas{z-index:0;display:block;position:fixed;inset:0;width:100vw!important;height:100vh!important}#loading-screen{background:var(--bg-deep);z-index:100;justify-content:center;align-items:center;transition:opacity .5s,visibility .5s;display:flex;position:fixed;inset:0}#loading-screen.hidden{opacity:0;visibility:hidden;pointer-events:none}.loading-inner{flex-direction:column;align-items:center;gap:20px;width:320px;display:flex}.loading-logo-img{object-fit:contain;width:96px;height:96px;animation:2s ease-in-out infinite pulse-load}.loading-bar-track{background:var(--border);border-radius:2px;width:100%;height:2px;overflow:hidden}.loading-bar-fill{background:var(--accent);border-radius:2px;width:0%;height:100%;transition:width .3s}.loading-label{color:var(--text-muted);font-size:12px}.top-left-cluster{z-index:10;align-items:center;gap:8px;display:flex;position:fixed;top:12px;left:12px}.logo-watermark{-webkit-backdrop-filter:blur(20px)saturate(1.6);letter-spacing:-.2px;color:var(--text-primary);cursor:pointer;user-select:none;background:#ffffffc2;border-radius:50px;align-items:center;gap:8px;padding:7px 10px;font-size:13px;font-weight:600;transition:opacity .15s;display:inline-flex;box-shadow:0 2px 16px #0000001a,inset 0 0 0 1px #00000012}.logo-watermark:hover{opacity:.82}.logo-watermark .logo-img{object-fit:contain;width:22px;height:22px}.file-chip{border:1px solid var(--border-mid);color:var(--text-primary);cursor:pointer;white-space:nowrap;background:#0000000d;border-radius:20px;flex-shrink:0;align-items:center;gap:5px;max-width:160px;padding:3px 6px 3px 10px;font-size:12px;font-weight:500;transition:background .15s;display:inline-flex}.file-chip:hover{background:#00000014}.file-chip-icon{color:var(--text-muted);font-size:11px}.file-chip-name{text-overflow:ellipsis;max-width:110px;overflow:hidden}.file-chip-remove{cursor:pointer;color:var(--text-dim);background:0 0;border:none;border-radius:50%;flex-shrink:0;padding:2px 3px;font-size:10px;line-height:1;transition:all .12s}.file-chip-remove:hover{color:var(--red);background:#ff3b301a}.btn-primary,.btn-secondary{border-radius:var(--radius);font-family:var(--font-sans);cursor:pointer;white-space:nowrap;border:none;padding:7px 14px;font-size:12px;font-weight:600;transition:all .18s}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover{background:var(--accent-dim)}.btn-secondary{color:var(--text-muted);border:1px solid var(--border-mid);background:0 0}.btn-secondary:hover{color:var(--text-primary);background:var(--bg-hover)}.btn-icon{border:1px solid var(--border-mid);border-radius:var(--radius);cursor:pointer;width:32px;height:32px;color:var(--text-muted);background:0 0;flex-shrink:0;justify-content:center;align-items:center;padding:0;font-size:15px;line-height:1;transition:all .18s;display:inline-flex}.btn-icon:hover{background:var(--bg-hover);color:var(--text-primary)}.btn-icon.active{background:var(--accent-glow);color:var(--accent);border-color:#0a84ff40}.btn-icon.active:hover{background:#0a84ff24}#drop-zone{z-index:5;pointer-events:none;justify-content:center;align-items:center;transition:opacity .4s,visibility .4s;display:flex;position:fixed;inset:0;overflow:hidden}#drop-zone.hidden{opacity:0;visibility:hidden}.drop-bg{pointer-events:none;background:radial-gradient(120% 120% at 50% -10%,#0a84ff0f,#0000 60%);position:absolute;inset:0;overflow:hidden}.drop-blob{filter:blur(70px);opacity:.6;will-change:transform;border-radius:50%;position:absolute}.drop-blob--1{background:radial-gradient(circle,#0a84ff66,#0000 70%);width:46vmax;height:46vmax;animation:19s ease-in-out infinite blob-drift-1;top:-14vmax;left:-12vmax}.drop-blob--2{background:radial-gradient(circle,#5e5ce657,#0000 70%);width:38vmax;height:38vmax;animation:23s ease-in-out infinite blob-drift-2;top:8vmax;right:-10vmax}.drop-blob--3{background:radial-gradient(circle,#30d1b447,#0000 70%);width:40vmax;height:40vmax;animation:27s ease-in-out infinite blob-drift-3;bottom:-18vmax;left:22vmax}.drop-inner{-webkit-backdrop-filter:blur(28px)saturate(1.7);text-align:center;pointer-events:auto;background:#ffffffb8;border:1px solid #fff9;border-radius:28px;flex-direction:column;align-items:center;gap:18px;width:min(92vw,440px);padding:clamp(28px,5vw,44px) clamp(24px,5vw,46px);display:flex;position:relative;box-shadow:0 20px 60px #00000029,inset 0 1px #ffffff80}.drop-brand{align-items:center;gap:10px;display:flex}.drop-icon{object-fit:contain;width:44px;height:44px;animation:2.8s ease-in-out infinite pulse-load}.drop-brand-name{letter-spacing:-.3px;color:var(--text-primary);font-size:17px;font-weight:700}.drop-inner h2{letter-spacing:-.6px;color:var(--text-primary);font-size:clamp(22px,4.5vw,30px);font-weight:700;line-height:1.15}.drop-hint{color:var(--text-muted);max-width:32ch;font-size:14px;line-height:1.5}.room-id-row{align-items:stretch;gap:8px;width:100%;margin-top:2px;display:flex}.room-id-input{border:1.5px solid var(--border-mid);min-width:0;height:52px;color:var(--text-primary);font-family:var(--font-sans);background:#fff9;border-radius:14px;outline:none;flex:1;padding:0 16px;font-size:16px;font-weight:500;transition:border-color .15s,box-shadow .15s,background .15s}.room-id-input::placeholder{color:var(--text-dim);font-weight:400}.room-id-input:focus{border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-glow);background:#fff}.room-id-row .btn-primary{border-radius:14px;justify-content:center;align-items:center;gap:6px;height:52px;padding:0 22px;font-size:15px;font-weight:600;display:inline-flex}.room-id-row .btn-primary .material-symbols-rounded{font-size:20px}.drop-divider{width:100%;color:var(--text-dim);text-transform:lowercase;align-items:center;gap:12px;font-size:12px;display:flex}.drop-divider:before,.drop-divider:after{content:"";background:var(--border);flex:1;height:1px}.btn-demo{border:1.5px solid var(--border-mid);width:100%;height:48px;color:var(--text-primary);font-family:var(--font-sans);cursor:pointer;background:0 0;border-radius:14px;justify-content:center;align-items:center;gap:8px;font-size:15px;font-weight:600;transition:border-color .15s,color .15s,background .15s;display:inline-flex}.btn-demo .material-symbols-rounded{color:var(--accent);font-size:22px}.btn-demo:hover{border-color:var(--accent);background:var(--accent-glow)}@media (prefers-reduced-motion:reduce){.drop-blob,.drop-icon{animation:none}}#controls-panel{height:var(--controls-h);background:var(--bg-panel);-webkit-backdrop-filter:blur(20px)saturate(1.6);border-top:1px solid var(--border);z-index:10;justify-content:center;align-items:center;gap:0;padding:0 16px;display:flex;position:fixed;bottom:0;left:0;right:0}.seg-control{border-radius:var(--radius-lg);background:#0000000f;flex-shrink:0;gap:0;padding:3px;display:flex;position:relative}.seg-pill{border-radius:calc(var(--radius-lg) - 3px);pointer-events:none;z-index:0;background:#fff;height:calc(100% - 6px);transition:left .22s cubic-bezier(.34,1.1,.64,1),width .22s cubic-bezier(.34,1.1,.64,1);position:absolute;top:3px;left:3px;box-shadow:0 1px 4px #00000021}.seg-btn{z-index:1;color:var(--text-muted);font-family:var(--font-sans);cursor:pointer;white-space:nowrap;user-select:none;border-radius:calc(var(--radius-lg) - 3px);background:0 0;border:none;align-items:center;gap:4px;padding:4px 13px;font-size:12px;font-weight:500;transition:color .18s;display:inline-flex;position:relative}.seg-btn:hover{color:var(--text-primary)}.seg-btn.active{color:var(--accent);font-weight:600}.ctrl-divider{background:var(--border-mid);flex-shrink:0;width:1px;height:20px;margin:0 14px}.legal-links{flex-shrink:0;align-items:center;gap:6px;display:flex}.legal-links a{color:var(--text-muted);white-space:nowrap;font-size:11px;text-decoration:none;transition:color .18s}.legal-links a:hover{color:var(--text-primary)}.legal-links span{color:var(--border-mid);font-size:11px}.speed-control{color:var(--text-muted);flex-shrink:0;align-items:center;gap:8px;font-size:12px;display:flex}.hints-wrapper{flex-shrink:0;align-items:center;display:grid}.controls-walk,.controls-drone{color:var(--text-muted);white-space:nowrap;grid-area:1/1;align-items:center;gap:6px;font-size:11px;transition:opacity .2s;display:flex}.hints-hidden{opacity:0;pointer-events:none}kbd{border:1px solid var(--border-mid);min-width:22px;height:20px;font-family:var(--font-sans);color:var(--text-primary);background:#fff;border-bottom-width:2px;border-radius:5px;justify-content:center;align-items:center;padding:0 5px;font-size:10px;font-weight:600;display:inline-flex}.ctrl-mouse{color:var(--text-muted)}.pointer-lock-notice,.pointer-lock-active{bottom:calc(var(--controls-h) + 12px);background:var(--bg-panel);-webkit-backdrop-filter:blur(20px)saturate(1.6);border:1px solid var(--border);color:var(--text-muted);z-index:11;white-space:nowrap;box-shadow:var(--shadow-float);border-radius:50px;align-items:center;gap:6px;padding:8px 20px;font-size:12px;animation:.25s float-in;display:flex;position:fixed;left:50%;transform:translate(-50%)}.pointer-lock-active{color:var(--accent);border-color:#0a84ff38}.pointer-lock-notice .material-symbols-rounded,.pointer-lock-active .material-symbols-rounded{font-size:15px}.hidden{display:none!important}.toast-container{left:16px;bottom:calc(var(--controls-h) + 16px);z-index:20;pointer-events:none;flex-direction:column;gap:8px;display:flex;position:fixed}.toast{--toast-rgb:10, 132, 255;pointer-events:auto;background-color:var(--bg-panel);background-image:linear-gradient(rgba(var(--toast-rgb), .12), rgba(var(--toast-rgb), .12));-webkit-backdrop-filter:blur(20px)saturate(1.6);border:1px solid rgba(var(--toast-rgb), .32);border-radius:var(--r-input);width:min(320px,100vw - 32px);box-shadow:var(--shadow-float);align-items:flex-start;gap:10px;padding:11px 12px;animation:.3s cubic-bezier(.34,1.4,.64,1) forwards toast-in;display:flex}.toast.success{--toast-rgb:52, 199, 89}.toast.warning{--toast-rgb:255, 159, 10}.toast.error{--toast-rgb:255, 59, 48}.toast.toast-out{animation:.22s ease-in forwards toast-out}.toast-icon{background:rgb(var(--toast-rgb));color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:24px;height:24px;display:flex}.toast-icon .material-symbols-rounded{font-variation-settings:"FILL" 1, "wght" 700, "GRAD" 0, "opsz" 20;font-size:15px}.toast-icon .spinner{border-color:#fff #fff6 #fff6;width:13px;height:13px}.toast-body{min-width:0;color:var(--text-primary);flex:auto;padding-top:1px;font-size:13px;font-weight:600;line-height:1.35}.toast-body small{color:var(--text-muted);margin-top:2px;font-size:12px;font-weight:400;line-height:1.4;display:block}.toast-close{cursor:pointer;color:var(--text-dim);background:0 0;border:none;border-radius:4px;flex-shrink:0;padding:2px;font-size:15px;line-height:1}.toast-close:hover{color:var(--text-primary);background:var(--bg-hover)}.room-loading-overlay{-webkit-backdrop-filter:blur(6px);z-index:2;opacity:0;visibility:hidden;background:#0009;justify-content:center;align-items:center;transition:opacity .35s,visibility 0s linear .35s;display:flex;position:fixed;inset:0}.room-loading-overlay.active{opacity:1;visibility:visible;transition:opacity .35s,visibility}.room-loading-inner{flex-direction:column;align-items:center;gap:20px;display:flex}.room-loading-spinner{border:3px solid #fff3;border-top-color:#fff;border-radius:50%;width:48px;height:48px;animation:.8s linear infinite room-spin}@keyframes room-spin{to{transform:rotate(360deg)}}.room-loading-label{color:#ffffffd9;letter-spacing:.01em;font-size:15px;font-weight:500}.spinner{border:2px solid var(--border-mid);border-top-color:var(--accent);vertical-align:middle;border-radius:50%;width:14px;height:14px;margin-right:8px;animation:.8s linear infinite spin;display:inline-block}::-webkit-scrollbar{width:5px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#00000029;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#00000042}#studio-bar{z-index:100;backdrop-filter:blur(12px);pointer-events:all;opacity:0;background:#0a0a14d9;border:1px solid #ffffff1f;border-radius:12px;gap:.5rem;padding:.5rem .75rem;transition:opacity .2s;display:flex;position:fixed;top:1rem;left:50%;transform:translate(-50%)}#studio-bar.visible{opacity:1}.studio-btn{color:#ffffffe6;font-family:var(--font-sans);cursor:pointer;white-space:nowrap;background:#ffffff14;border:1px solid #ffffff26;border-radius:8px;padding:.35rem .85rem;font-size:12px;font-weight:500;transition:background .15s}.studio-btn:hover{background:#ffffff26}.studio-btn.active{background:#007aff99;border-color:#007affcc}.studio-mode-switch{border-right:1px solid #ffffff26;gap:.25rem;margin-right:.25rem;padding-right:.5rem;display:flex}.studio-mode-switch .studio-btn{padding:.35rem .7rem}html.studio-mode .top-left-cluster,html.studio-mode #controls-panel,html.studio-mode #side-panel-container,html.studio-mode #btn-expand-panel,html.studio-mode #stats-overlay,html.studio-mode #touch-joystick,html.studio-mode #mobile-gate,html.studio-mode #drop-zone,html.studio-mode #pointer-lock-notice,html.studio-mode #pointer-lock-active,html.studio-mode #route-caption,html.studio-mode #level-switcher{display:none!important}.nav-cursor-overlay{pointer-events:none;z-index:2;position:fixed;inset:0;overflow:visible}.wp-overlay{pointer-events:none;z-index:5;position:fixed;inset:0;overflow:hidden}.wp-marker{transform-origin:50%;will-change:transform;opacity:0;color:#ffffffd9;width:48px;height:48px;font-family:var(--font-sans);pointer-events:none;user-select:none;background:radial-gradient(circle at 38% 32%,#74cfffa6 0%,#1a8fffa6 40%,#004ee8a6 100%);border:2.5px solid #ffffffd9;border-radius:50%;justify-content:center;align-items:center;font-size:20px;font-weight:700;line-height:1;transition:opacity .2s;display:flex;position:absolute;top:0;left:0}#side-panel-container{top:var(--toolbar-h);right:0;bottom:var(--controls-h);background:var(--bg-panel);-webkit-backdrop-filter:blur(20px)saturate(1.6);border-left:1px solid var(--border);z-index:9;flex-direction:column;width:350px;transition:transform .3s cubic-bezier(.25,.46,.45,.94);display:flex;position:fixed;transform:translate(0)}#side-panel-container.panel-hidden{transform:translate(100%)}#side-panel-container.no-room .tab-btn[data-tab=waypoints],#side-panel-container.no-room .tab-btn[data-tab=info],#side-panel-container.no-room .series-switcher{display:none}.series-switcher{border-bottom:1px solid var(--border);background:var(--bg-hover);flex-shrink:0}.series-switcher.hidden{display:none}.series-current{width:100%;color:var(--text-primary);text-align:left;cursor:pointer;background:0 0;border:none;align-items:center;gap:10px;padding:10px 14px;font-family:inherit;transition:background .15s;display:flex}.series-current:hover{background:var(--bg-panel)}.series-current-icon{color:var(--accent);flex-shrink:0;font-size:18px}.series-current-text{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.series-current-date{white-space:nowrap;text-overflow:ellipsis;font-size:12px;font-weight:600;overflow:hidden}.series-current-label{color:var(--text-dim);white-space:nowrap;text-overflow:ellipsis;font-size:11px;overflow:hidden}.series-current-label.hidden{display:none}.series-counter{font-variant-numeric:tabular-nums;color:var(--text-dim);flex-shrink:0;font-size:11px}.series-chevron{color:var(--text-dim);flex-shrink:0;font-size:18px;transition:transform .2s}.series-switcher.open .series-chevron{transform:rotate(180deg)}.series-scan-list{flex-direction:column;gap:4px;max-height:40vh;padding:4px 10px 10px;display:flex;overflow-y:auto}.series-scan-list[hidden]{display:none}.series-scan-btn{background:var(--bg-panel);border:1px solid var(--border);width:100%;color:var(--text-primary);text-align:left;cursor:pointer;border-radius:10px;align-items:center;gap:9px;padding:7px 9px;font-family:inherit;transition:background .15s,border-color .15s;display:flex}.series-scan-btn:hover{border-color:var(--accent)}.series-scan-btn.active{border-color:var(--accent);cursor:default}.series-scan-index{font-variant-numeric:tabular-nums;width:18px;color:var(--text-dim);text-align:center;flex-shrink:0;font-size:10px}.series-scan-thumb{object-fit:cover;border:1px solid var(--border);border-radius:6px;flex-shrink:0;width:40px;height:28px}.series-scan-thumb-fallback{width:40px;height:28px;color:var(--text-dim);background:var(--bg-hover);border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;font-size:16px;display:flex}.series-scan-text{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.series-scan-date{white-space:nowrap;text-overflow:ellipsis;font-size:11.5px;font-weight:600;overflow:hidden}.series-scan-label{color:var(--text-dim);white-space:nowrap;text-overflow:ellipsis;font-size:10.5px;overflow:hidden}.series-scan-check{color:var(--accent);flex-shrink:0;font-size:16px}.tab-buttons-row{border-bottom:1px solid var(--border);flex-shrink:0;align-items:center;gap:0;padding:0;display:flex}.tab-btn{cursor:pointer;height:44px;color:var(--text-dim);background:0 0;border:none;border-bottom:3px solid #0000;flex:1;justify-content:center;align-items:center;padding:10px 0;font-size:18px;transition:background .15s,border-color .15s,color .15s;display:flex}.tab-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.tab-btn.active{border-bottom-color:var(--accent);color:var(--accent)}.tab-btn .material-symbols-rounded{font-variation-settings:"FILL" 0, "wght" 500, "GRAD" 0, "opsz" 24;pointer-events:none;font-size:20px;line-height:1}.tab-buttons-row .close-btn{background:var(--bg-hover);cursor:pointer;width:44px;height:44px;color:var(--text-primary);border:none;border-left:1px solid var(--border);flex:none;justify-content:center;align-items:center;font-size:19px;font-weight:700;line-height:1;transition:color .15s,background .15s,transform .15s;display:flex}.tab-buttons-row .close-btn:hover{background:var(--red);color:#fff;transform:scale(1.06)}.tab-content{flex-direction:column;flex:1;display:none;overflow:hidden}.tab-content.active{display:flex}.waypoints-panel-header{border-bottom:1px solid var(--border);flex-shrink:0;justify-content:space-between;align-items:center;gap:8px;padding:14px 16px;display:flex}.waypoints-panel-header h3{color:var(--text-primary);margin:0;font-size:14px;font-weight:600}.wp-markers-toggle-row{border-bottom:1px solid var(--border);cursor:pointer;color:var(--text-muted);flex-shrink:0;justify-content:space-between;align-items:center;padding:10px 16px;font-size:12px;display:flex}.waypoints-list{flex-direction:column;flex:1;gap:2px;padding:6px;display:flex;overflow-y:auto}.waypoint-item{border-radius:var(--radius);cursor:pointer;align-items:center;gap:10px;padding:9px 10px;transition:background .15s;display:flex}.waypoint-item:hover{background:var(--bg-hover)}.waypoint-item:hover .waypoint-item-go{color:var(--accent)}.waypoint-item-id{color:#ffffffd9;letter-spacing:-.5px;background:radial-gradient(circle at 38% 32%,#74cfffa6,#1a8fffa6 45%,#004ee8a6 100%);border:2.5px solid #ffffffd9;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:26px;height:26px;font-size:10px;font-weight:700;display:flex}.waypoint-item-info{flex:1;min-width:0}.waypoint-item-name{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:600;overflow:hidden}.waypoint-item-desc{color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;margin-top:1px;font-size:11px;overflow:hidden}.waypoint-item-go{color:var(--text-dim);flex-shrink:0;font-size:13px;transition:color .15s}.info-panel-header{border-bottom:1px solid var(--border);flex-shrink:0;justify-content:flex-start;align-items:center;gap:8px;padding:14px 16px;display:flex}.info-panel-header h3{color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;flex:1;margin:0;font-size:14px;font-weight:600;overflow:hidden}.info-panel-body{flex-direction:column;flex:1;gap:12px;padding:12px 14px 14px;display:flex;overflow-y:auto}.info-hero{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.info-price-block{min-width:0}.info-price-label,.info-description-label,.info-metric-label{letter-spacing:.08em;text-transform:uppercase;color:var(--text-dim);font-size:9px;font-weight:700;display:block}.info-price-value{color:var(--text-primary);margin-top:2px;font-size:20px;font-weight:700;line-height:1.15}.info-type-badge{background:var(--accent-glow);color:var(--accent);white-space:nowrap;border-radius:999px;flex-shrink:0;padding:6px 10px;font-size:11px;font-weight:700}.info-metrics{grid-template-columns:1fr 1fr;gap:8px;display:grid}.info-panel-body.is-other .info-listing-only{display:none}.info-panel-body.is-other .info-metrics{grid-template-columns:1fr}.info-panel-body.is-service .info-listing-only:not(.info-location-card){display:none}.info-panel-body.is-service .info-metrics{grid-template-columns:1fr}.info-business{flex-direction:column;gap:14px;display:flex}.info-business[hidden],.info-business [hidden],.info-map-wrap[hidden]{display:none!important}.info-link-btn.info-website-btn{text-align:left;border-radius:12px;justify-content:flex-start;gap:10px;padding:12px 14px}.info-link-btn.info-website-btn .material-symbols-rounded{font-size:22px}.info-link-btn.info-website-btn .info-website-arrow{opacity:.85;margin-left:auto;font-size:18px}.info-website-copy{flex-direction:column;min-width:0;font-size:13px;line-height:1.25;display:flex}.info-website-host{opacity:.8;text-overflow:ellipsis;white-space:nowrap;font-size:11px;font-weight:500;overflow:hidden}.info-socials-wrap{flex-direction:column;gap:6px;display:flex}.info-map-wrap{aspect-ratio:4/3;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-hover);position:relative;overflow:hidden}.info-map{border:0;width:100%;height:100%;position:absolute;inset:0}.info-business-links{flex-direction:column;gap:6px;display:flex}.info-business-link{background:var(--bg-hover);border:1px solid var(--border);min-width:0;color:var(--text-primary);border-radius:10px;align-items:center;gap:10px;padding:11px 12px;font-size:13px;font-weight:600;text-decoration:none;transition:border-color .18s,transform .18s;display:flex}.info-business-link:hover{border-color:var(--accent);transform:translateY(-1px)}.info-business-link-label{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.info-business-link .material-symbols-rounded{color:var(--accent);flex-shrink:0;font-size:19px}.info-brand-icon{width:20px;height:20px;color:var(--text-primary);flex-shrink:0;display:inline-flex}.info-brand-icon svg{width:100%;height:100%}.info-business-link .info-business-link-arrow{color:var(--text-dim);font-size:18px}.info-metric{background:var(--bg-hover);border:1px solid var(--border);border-radius:var(--radius);align-items:center;gap:10px;padding:9px 10px;display:flex}.info-metric-icon{color:var(--accent);flex-shrink:0;font-size:18px}.info-metric-copy{flex-direction:column;min-width:0;display:flex}.info-metric-value{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;font-size:12px;font-weight:600;overflow:hidden}.info-features{flex-wrap:wrap;gap:6px;display:flex}.info-feature-chip{background:var(--bg-hover);border:1px solid var(--border);color:var(--text-primary);border-radius:999px;align-items:center;gap:5px;padding:6px 8px;font-size:11px;font-weight:600;display:inline-flex}.info-feature-chip .material-symbols-rounded{color:var(--accent);font-size:14px}.info-description-wrap{flex-direction:column;gap:4px;display:flex}.info-description{color:var(--text-primary);margin:0;font-size:12px;line-height:1.5}.info-location-card{background:var(--bg-hover);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;gap:3px;padding:10px 12px;display:flex}.info-location-header{align-items:center;gap:6px;margin-bottom:4px;display:flex}.info-location-icon{color:var(--accent);flex-shrink:0;font-size:16px}.info-location-label{letter-spacing:.08em;text-transform:uppercase;color:var(--text-dim);font-size:9px;font-weight:700}.info-location-street{color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:600;overflow:hidden}.info-location-area{color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.info-location-postal{color:var(--text-dim);font-size:10px}.info-link-btn{background:var(--accent);color:#fff;cursor:pointer;text-align:center;border:none;border-radius:10px;justify-content:center;align-items:center;gap:7px;width:100%;padding:9px 14px;font-family:inherit;font-size:12px;font-weight:600;text-decoration:none;transition:background .18s,transform .18s;display:flex}.info-link-btn:hover{background:var(--accent-dim);transform:translateY(-1px)}.info-link-btn .material-symbols-rounded{font-size:17px}.info-back-btn{background:var(--bg-hover);color:var(--text-primary);border:1px solid var(--border)}.info-back-btn:hover{background:var(--border);color:var(--text-primary)}.info-additional-scans-wrap,.info-additional-scans{flex-direction:column;gap:6px;display:flex}.info-scan-btn{background:var(--bg-hover);border:1px solid var(--border);width:100%;color:var(--text-primary);text-align:left;cursor:pointer;border-radius:10px;align-items:center;gap:8px;padding:9px 12px;font-family:inherit;font-size:12px;font-weight:600;transition:background .15s,border-color .15s;display:flex}.info-scan-btn:hover{background:var(--accent);color:#fff;border-color:var(--accent)}.info-scan-btn:hover .info-scan-btn-icon,.info-scan-btn:hover .info-scan-btn-chevron{color:#fff}.info-scan-btn.active{border-color:var(--accent)}.info-scan-btn-icon{color:var(--accent);flex-shrink:0;font-size:16px}.info-scan-btn-label{flex:1;min-width:0}.info-scan-btn-chevron{color:var(--text-dim);flex-shrink:0;font-size:16px;transition:color .15s}.perf-panel-body{flex-direction:column;flex:1;gap:12px;min-height:0;padding:14px 16px;display:flex;overflow-y:auto}.perf-slider-group{flex-direction:column;gap:8px;display:flex}.perf-slider-header{justify-content:space-between;align-items:center;display:flex}.perf-section-label{letter-spacing:.06em;text-transform:uppercase;color:var(--text-dim);font-size:10px;font-weight:600}.perf-value-badge{color:var(--accent);background:var(--accent-glow);border-radius:20px;padding:2px 7px;font-size:11px;font-weight:700}.perf-slider-input{width:100%;accent-color:var(--accent);cursor:pointer;height:4px}.perf-slider-marks{color:var(--text-dim);justify-content:space-between;font-size:10px;display:flex}.perf-divider{background:var(--border);height:1px;margin:0 -16px}.perf-control-row{justify-content:space-between;align-items:center;gap:8px;display:flex}.fps-buttons{flex-shrink:0;gap:3px;display:flex}.fps-btn{border-radius:var(--radius);border:1px solid var(--border-mid);color:var(--text-muted);cursor:pointer;font-size:11px;font-weight:700;font-family:var(--font-sans);background:0 0;padding:4px 10px;line-height:1.4;transition:all .15s}.fps-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.fps-btn.active{background:var(--accent-glow);color:var(--accent);border-color:#0a84ff40}.engine-info-row{color:var(--text-dim);text-align:center;letter-spacing:.01em;margin-top:12px;padding:8px 0 2px;font-size:11px}.perf-toggle-row{cursor:pointer;justify-content:space-between;align-items:center;display:flex}.toggle-switch{flex-shrink:0;width:36px;height:20px;position:relative}.toggle-switch input{opacity:0;width:0;height:0;position:absolute}.toggle-track{background:var(--border-mid);cursor:pointer;border-radius:20px;transition:background .2s;position:absolute;inset:0}.toggle-track:after{content:"";background:#fff;border-radius:50%;width:16px;height:16px;transition:transform .2s;position:absolute;top:2px;left:2px;box-shadow:0 1px 3px #00000040}.toggle-switch input:checked+.toggle-track{background:var(--accent)}.toggle-switch input:checked+.toggle-track:after{transform:translate(16px)}.settings-file-buttons{flex-direction:column;gap:8px;margin-top:8px;display:flex}.settings-file-buttons .btn-primary,.settings-file-buttons .btn-secondary{border-radius:var(--radius);cursor:pointer;border:none;width:100%;padding:10px 12px;font-size:12px;font-weight:600;transition:background .18s,transform .1s}.settings-file-buttons .btn-primary{background:var(--accent);color:#fff}.settings-file-buttons .btn-primary:hover{background:var(--accent-dim);transform:translateY(-1px)}.settings-file-buttons .btn-secondary{background:var(--bg-hover);color:var(--text-primary);border:1px solid var(--border)}.settings-file-buttons .btn-secondary:hover{background:var(--border);transform:translateY(-1px)}.settings-file-chips{flex-direction:column;gap:6px;margin-top:12px;padding:6px 0 4px;display:flex}.settings-file-chips .file-chip{background:var(--bg-hover);border:1px solid var(--border);border-radius:var(--radius);color:var(--text-primary);align-items:center;gap:8px;padding:8px 10px;font-size:12px;transition:background .15s,border-color .15s;display:flex}.settings-file-chips .file-chip:hover{background:var(--border);border-color:var(--accent)}.settings-file-chips .file-chip-icon{flex-shrink:0;font-size:14px}.settings-file-chips .file-chip-name{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;font-weight:500;overflow:hidden}.settings-file-chips .file-chip-remove{width:20px;height:20px;color:var(--text-dim);cursor:pointer;background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;padding:0;font-size:12px;transition:color .15s;display:flex}.settings-file-chips .file-chip-remove:hover{color:var(--accent)}.skybox-grid{grid-template-columns:repeat(2,1fr);gap:6px;display:grid}.skybox-btn{border-radius:var(--radius);border:1px solid var(--border-mid);color:var(--text-muted);cursor:pointer;font-size:11px;font-weight:600;font-family:var(--font-sans);text-align:center;background:0 0;flex-direction:column;padding:0;transition:all .15s;display:flex;overflow:hidden}.skybox-btn-img{object-fit:cover;border-radius:0;width:100%;height:64px;display:block}.skybox-btn-label{white-space:nowrap;text-overflow:ellipsis;padding:5px 8px;display:block;overflow:hidden}.skybox-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.skybox-btn.active{background:var(--accent-glow);color:var(--accent);border-color:#0a84ff40}.skybox-btn-none{grid-column:1/-1;padding:7px 10px}.skybox-loading{text-align:center;color:var(--text-muted);grid-column:1/-1;padding:10px 0;font-size:.85rem}.expand-panel-btn{right:0;top:var(--toolbar-h);bottom:var(--controls-h);border:1px solid var(--border-mid);background:var(--bg-panel);-webkit-backdrop-filter:blur(16px)saturate(1.4);width:34px;height:auto;color:var(--text-muted);cursor:pointer;z-index:10;transform-origin:100%;box-shadow:none;border-right:0;border-radius:0;justify-content:center;align-items:center;transition:transform .18s;display:flex;position:fixed}.expand-panel-btn:hover{transform:scaleX(1.06)}.expand-panel-btn .material-symbols-rounded{font-variation-settings:"FILL" 0, "wght" 500, "GRAD" 0, "opsz" 24;pointer-events:none;font-size:18px;line-height:1}.stats-overlay{-webkit-backdrop-filter:blur(10px);border-radius:var(--radius);z-index:8;pointer-events:none;background:#0009;border:1px solid #ffffff1a;width:180px;padding:8px 10px;font-family:SF Mono,Menlo,Consolas,monospace;font-size:11px;line-height:1;transition:opacity .2s;position:fixed;top:56px;left:10px}.stats-overlay.hidden{opacity:0;pointer-events:none}.stat-row{justify-content:space-between;align-items:baseline;gap:8px;padding:3px 0;display:flex}.stat-key{color:#ffffff73;letter-spacing:.04em;white-space:nowrap;font-size:10px}.stat-val{color:#ffffffe6;text-align:right;font-weight:600}.stat-val.stat-good{color:#30d158}.stat-val.stat-ok{color:#ffd60a}.stat-val.stat-bad{color:#ff453a}.stat-sep{background:#ffffff14;height:1px;margin:5px 0}.stat-fps-graph{border-radius:3px;width:100%;height:38px;margin:4px 0 2px;display:block}.fps-warning{z-index:300;-webkit-backdrop-filter:blur(14px)saturate(1.6);background:#ffd60a21;border:1px solid #ffd60a61;border-radius:14px;align-items:center;gap:10px;max-width:280px;padding:10px 12px 10px 14px;animation:.3s fps-warn-in;display:flex;position:fixed;bottom:20px;left:20px}.fps-warning.hidden{display:none}.fps-warning-icon{color:#ffd60a;flex-shrink:0;font-size:22px}.fps-warning-text{flex-direction:column;flex:1;gap:2px;display:flex}.fps-warning-title{color:var(--text-primary);font-size:13px;font-weight:600;line-height:1.2}.fps-warning-sub{color:var(--text-muted);font-size:11px;line-height:1.4}.fps-warning-close{cursor:pointer;color:var(--text-muted);background:0 0;border:none;border-radius:4px;flex-shrink:0;padding:2px 4px;font-size:12px}.fps-warning-close:hover{color:var(--text-primary);background:var(--bg-hover)}html[data-theme=dark] .logo-watermark{background:#242426db;box-shadow:0 2px 16px #00000073,inset 0 0 0 1px #ffffff14}html[data-theme=dark] .file-chip,html[data-theme=dark] .seg-control{background:#ffffff12}html[data-theme=dark] .seg-pill{background:#ffffff26;box-shadow:0 1px 4px #0006}html[data-theme=dark] .drop-inner{background:#1c1c1e9e;border-color:#ffffff1f;box-shadow:0 20px 60px #00000080,inset 0 1px #ffffff0f}html[data-theme=dark] .room-id-input{background:#ffffff0f}html[data-theme=dark] .room-id-input:focus{background:#ffffff1a}html[data-theme=dark] .drop-bg{background:radial-gradient(120% 120% at 50% -10%,#0a84ff1f,#0000 60%)}html[data-theme=dark] .drop-blob{opacity:.42}html[data-theme=dark] kbd{background:#3a3a3c}html[data-theme=dark] ::-webkit-scrollbar-thumb{background:#ffffff2e}html[data-theme=dark] ::-webkit-scrollbar-thumb:hover{background:#ffffff47}.mobile-gate{background:var(--bg-deep);z-index:9999;justify-content:center;align-items:center;padding:24px;display:none;position:fixed;inset:0}html[data-iab] .mobile-gate{display:flex}.mobile-gate-card{text-align:center;flex-direction:column;align-items:center;gap:20px;max-width:360px;display:flex}.mobile-gate-title{letter-spacing:-.5px;color:var(--text-primary);font-size:26px;font-weight:700;line-height:1.25}.mobile-gate-desc{color:var(--text-muted);font-size:14px;line-height:1.6}.orientation-icon-wrap{background:var(--accent-glow);border:2px solid #0a84ff38;border-radius:50%;justify-content:center;align-items:center;width:88px;height:88px;display:flex}.orientation-icon{color:var(--accent);font-variation-settings:"FILL" 0, "wght" 400, "GRAD" 0, "opsz" 48;font-size:44px;animation:2.8s ease-in-out infinite rotate-hint}@media (pointer:coarse){body{touch-action:none;overscroll-behavior:none}#app-canvas{touch-action:none}:root{--controls-h:calc(46px + env(safe-area-inset-bottom,0px))}#controls-panel{height:var(--controls-h);padding-bottom:env(safe-area-inset-bottom,0px);padding-left:env(safe-area-inset-left,0px);padding-right:env(safe-area-inset-right,0px)}.top-left-cluster{top:calc(12px + env(safe-area-inset-top,0px));left:calc(12px + env(safe-area-inset-left,0px))}body.mobile-panel-open .top-left-cluster,body.mobile-panel-open .level-switcher,.hints-wrapper,.hints-divider{display:none}.pointer-lock-notice,.pointer-lock-active{display:none!important}#side-panel-container{width:100%;padding-top:env(safe-area-inset-top,0px);padding-left:env(safe-area-inset-left,0px);padding-right:env(safe-area-inset-right,0px);border-left:none}#controls-panel{display:none}body.mobile-panel-open #controls-panel{display:flex}.touch-joystick{bottom:env(safe-area-inset-bottom,0px)}body.mobile-panel-open .touch-joystick{bottom:calc(var(--controls-h) + 10px);display:none}.expand-panel-btn{width:44px;bottom:env(safe-area-inset-bottom,0px)}.drop-inner{gap:12px;width:min(88vw,460px);max-height:90vh;padding:22px 30px;overflow-y:auto}.drop-inner h2{font-size:22px}.drop-hint{font-size:13px}.drop-icon{width:38px;height:38px}.room-id-input,.room-id-row .btn-primary{height:48px}.btn-demo{height:44px}}.touch-joystick{bottom:calc(var(--controls-h) + 14px);z-index:20;touch-action:none;user-select:none;width:120px;height:120px;display:none;position:fixed;left:14px}@media (pointer:coarse){.touch-joystick{left:calc(14px + env(safe-area-inset-left,0px));display:block}.toast-container{left:calc(16px + env(safe-area-inset-left,0px));bottom:calc(var(--controls-h) + 14px + 130px)}}body[data-input-mode=desktop] .touch-joystick{display:none}.touch-joystick-base{-webkit-backdrop-filter:blur(10px);background:#ffffff21;border:2px solid #ffffff47;border-radius:50%;width:100%;height:100%;position:relative}html[data-theme=dark] .touch-joystick-base{background:#ffffff12;border-color:#ffffff2e}.touch-joystick-thumb{-webkit-backdrop-filter:blur(6px);pointer-events:none;background:#ffffff8c;border-radius:50%;width:46px;height:46px;position:absolute;top:60px;left:60px;transform:translate(-50%,-50%)}html[data-theme=dark] .touch-joystick-thumb{background:#ffffff59}.route-player{-webkit-backdrop-filter:blur(20px)saturate(1.6);background:#ffffffc2;border-radius:50px;align-items:center;gap:2px;padding:5px 12px 5px 8px;display:inline-flex;box-shadow:0 2px 16px #0000001a,inset 0 0 0 1px #00000012}.route-player.hidden{display:none}.rp-btn{cursor:pointer;width:26px;height:26px;color:var(--text-muted);background:0 0;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;transition:color .15s,background .15s;display:flex}.rp-btn:hover{color:var(--text-primary);background:var(--bg-hover)}.rp-btn .material-symbols-rounded{font-size:17px}.rp-sep{background:var(--border-mid);flex-shrink:0;width:1px;height:14px;margin:0 6px}.rp-track-area{align-items:center;width:120px;display:flex}.rp-track{cursor:pointer;background:#0000001f;border-radius:2px;width:100%;height:3px;transition:height .12s;position:relative}.rp-track:hover{height:5px}.rp-track-fill{background:var(--accent);border-radius:inherit;pointer-events:none;width:0%;position:absolute;top:0;bottom:0;left:0}.rp-track-thumb{background:var(--accent);opacity:0;pointer-events:auto;cursor:grab;border-radius:50%;width:10px;height:10px;transition:opacity .12s;position:absolute;top:50%;left:0%;transform:translate(-50%,-50%);box-shadow:0 1px 3px #00000040}.rp-track:hover .rp-track-thumb{opacity:1}.rp-track-thumb:active{cursor:grabbing}html[data-theme=dark] .route-player{background:#242426db;box-shadow:0 2px 16px #00000073,inset 0 0 0 1px #ffffff14}html[data-theme=dark] .rp-track{background:#ffffff24}.rp-timer{font-variant-numeric:tabular-nums;color:var(--text-muted);white-space:nowrap;flex-shrink:0;margin-right:6px;font-size:11px;font-weight:500}.top-pill-btn{-webkit-backdrop-filter:blur(20px)saturate(1.6);cursor:pointer;width:36px;height:36px;color:var(--text-muted);font-size:14px;font-weight:700;font-family:var(--font-sans);user-select:none;background:#ffffffc2;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;transition:opacity .15s,color .15s;display:inline-flex;box-shadow:0 2px 16px #0000001a,inset 0 0 0 1px #00000012}.top-pill-btn:hover{opacity:.82;color:var(--text-primary)}.top-pill-btn .material-symbols-rounded{font-size:17px}.top-pill-btn--lang{letter-spacing:.03em;border-radius:18px;gap:4px;width:auto;padding:0 10px;font-size:11px;font-weight:700}.top-pill-btn--dev{letter-spacing:.05em;color:#ff9f0a;border-color:#ff9f0a59;padding:0 10px;font-size:10px;font-weight:700}html[data-theme=dark] .top-pill-btn{background:#242426db;box-shadow:0 2px 16px #00000073,inset 0 0 0 1px #ffffff14}.share-modal{z-index:500;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.share-modal.hidden{display:none}.share-modal-backdrop{-webkit-backdrop-filter:blur(4px);background:#0006;position:absolute;inset:0}.share-modal-card{background:var(--bg-panel);-webkit-backdrop-filter:blur(20px)saturate(1.6);border-radius:var(--radius-lg);box-shadow:var(--shadow-float);border:1px solid var(--border);flex-direction:column;align-items:center;gap:16px;width:280px;padding:24px;display:flex;position:relative}.share-modal-header{justify-content:space-between;align-items:center;width:100%;display:flex}.share-modal-title{color:var(--text-primary);font-size:14px;font-weight:600}.share-modal-close{border:1px solid var(--border-mid);background:var(--bg-hover);cursor:pointer;width:34px;height:34px;color:var(--text-primary);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;transition:background .15s,color .15s,transform .15s;display:flex}.share-modal-close:hover{background:var(--red);border-color:var(--red);color:#fff;transform:scale(1.05)}.share-modal-close .material-symbols-rounded{font-size:20px}.share-qr{border-radius:var(--radius);display:block}.share-url-row{background:var(--bg-hover);border-radius:var(--radius);align-items:center;gap:8px;width:100%;padding:6px 8px 6px 10px;display:flex}.share-url-text{color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:11px;overflow:hidden}.share-copy-btn{cursor:pointer;width:24px;height:24px;color:var(--text-muted);border-radius:var(--radius);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;transition:color .15s;display:flex}.share-copy-btn:hover{color:var(--accent)}.share-copy-btn .material-symbols-rounded{font-size:15px}.access-gate-modal{z-index:900;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.access-gate-modal.hidden{display:none}.access-gate-backdrop{-webkit-backdrop-filter:blur(6px);background:#0000008c;position:absolute;inset:0}.access-gate-card{background:var(--bg-panel);-webkit-backdrop-filter:blur(20px)saturate(1.6);border-radius:var(--radius-lg);box-shadow:var(--shadow-float);border:1px solid var(--border);text-align:center;flex-direction:column;align-items:center;gap:6px;width:320px;max-width:90vw;padding:28px;display:flex;position:relative}.access-gate-icon{color:var(--accent);margin-bottom:6px;font-size:28px}.access-gate-title{color:var(--text-primary);font-size:15px;font-weight:600}.access-gate-name{color:var(--text-muted);font-size:12px}.access-gate-name:empty{display:none}.access-gate-hint{color:var(--text-muted);margin-bottom:14px;font-size:12px}.access-gate-form{flex-direction:column;gap:10px;width:100%;display:flex}.access-gate-input{text-align:center;letter-spacing:.08em;text-transform:uppercase;flex:none;width:100%}.access-gate-error{color:var(--red);margin:0;font-size:12px}.access-gate-error.hidden{display:none}.access-gate-submit{border-radius:14px;justify-content:center;align-items:center;gap:8px;width:100%;height:48px;font-size:14px;display:flex}.access-gate-submit.is-busy{opacity:.6;pointer-events:none}.access-gate-home{color:var(--text-dim);cursor:pointer;background:0 0;border:none;margin-top:14px;font-size:12px;text-decoration:underline}.access-gate-home:hover{color:var(--text-muted)}.help-modal{z-index:500;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.help-modal.hidden{display:none}.help-modal-backdrop{-webkit-backdrop-filter:blur(4px);background:#0006;position:absolute;inset:0}.help-modal-card{background:var(--bg-panel);-webkit-backdrop-filter:blur(20px)saturate(1.6);border-radius:var(--radius-lg);box-shadow:var(--shadow-float);border:1px solid var(--border);flex-direction:column;gap:0;width:90vw;max-width:600px;max-height:85vh;padding:24px;display:flex;position:relative}.help-modal-body{flex-direction:column;gap:0;padding-top:16px;display:flex;overflow-y:auto}.help-section{border-bottom:1px solid var(--border);margin-bottom:20px;padding-bottom:20px}.help-section:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0}.help-section-title{text-transform:uppercase;letter-spacing:.06em;color:var(--accent);margin-bottom:12px;font-size:12px;font-weight:600}.help-brand-row{align-items:center;gap:12px;margin-bottom:12px;display:flex}.help-brand-logo{object-fit:contain;flex-shrink:0;width:auto;height:36px}.help-brand-name{color:var(--text-primary);font-size:15px;font-weight:600}.help-brand-tagline{color:var(--text-muted);margin-top:2px;font-size:12px}.help-para{color:var(--text-muted);margin-bottom:10px;font-size:13px;line-height:1.6}.help-link{color:var(--accent);align-items:center;gap:5px;font-size:12px;text-decoration:none;display:inline-flex}.help-link:hover{text-decoration:underline}.help-link .material-symbols-rounded{font-size:14px}.help-table{border-collapse:collapse;width:100%;color:var(--text-muted);font-size:12px}.help-table th{text-align:left;color:var(--text-dim);border-bottom:1px solid var(--border);padding:4px 8px 6px;font-size:11px;font-weight:600}.help-table td{border-bottom:1px solid var(--border);vertical-align:middle;padding:6px 8px}.help-table tr:last-child td{border-bottom:none}.help-table kbd{background:var(--bg-hover);border:1px solid var(--border-mid);color:var(--text-primary);font-size:10px;font-family:var(--font-sans);border-radius:4px;padding:1px 5px}.help-rows{flex-direction:column;gap:10px;margin-bottom:10px;display:flex}.help-row{color:var(--text-muted);align-items:flex-start;gap:10px;font-size:13px;line-height:1.55;display:flex}.help-row-icon{color:var(--accent);flex-shrink:0;margin-top:1px;font-size:17px}.help-note{color:var(--text-dim);margin-top:4px;font-size:12px;line-height:1.5}.help-footer{color:var(--text-dim);text-align:center;padding-top:16px;font-size:12px}@media (pointer:coarse){.share-modal-close{width:44px;height:44px}.share-modal-close .material-symbols-rounded{font-size:26px}.share-modal,.help-modal{padding:env(safe-area-inset-top,0px) env(safe-area-inset-right,0px) env(safe-area-inset-bottom,0px) env(safe-area-inset-left,0px)}.help-modal-card{width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;padding:14px 22px;padding-top:calc(14px + env(safe-area-inset-top,0px));padding-bottom:calc(14px + env(safe-area-inset-bottom,0px));padding-left:calc(22px + env(safe-area-inset-left,0px));padding-right:calc(22px + env(safe-area-inset-right,0px));border:none;border-radius:0}.help-modal-card .share-modal-header{flex-shrink:0;padding-bottom:8px}.help-modal-body{-webkit-overflow-scrolling:touch;flex:1;min-height:0}}@media (pointer:coarse) and (orientation:landscape){.share-modal-card{flex-flow:wrap;align-items:center;gap:12px 20px;width:auto;max-width:92vw;max-height:92vh;padding:16px 20px}.share-modal-card .share-modal-header{flex-basis:100%;order:-1}.share-qr{width:150px!important;height:150px!important}.share-modal-card .share-url-row{flex:180px;width:auto}}.route-caption{text-align:center;pointer-events:none;opacity:0;z-index:90;isolation:isolate;width:max-content;max-width:680px;padding:16px 32px;transition:opacity .5s,transform .5s;position:fixed;top:68px;left:50%;transform:translate(-50%)translateY(-10px)}.route-caption:before{content:"";filter:blur(40px);z-index:-1;background:#1e64ff38;border-radius:50%;position:absolute;inset:0;transform:scaleX(1.3)scaleY(.9)}.route-caption.visible{opacity:1;transform:translate(-50%)translateY(0)}.route-caption-title{color:#fff;text-shadow:0 1px 4px #00000080;font-family:Poppins,sans-serif;font-size:39px;font-weight:700;line-height:1.15}.route-caption-desc{color:#ffffffe6;text-shadow:0 1px 4px #0006;margin-top:4px;font-family:Poppins,sans-serif;font-size:22px;font-weight:200;line-height:1.4}@media (pointer:coarse) and (orientation:landscape){body.mobile-panel-open .info-panel-body{grid-template-columns:1fr 1fr;align-content:start;gap:10px 16px;display:grid}body.mobile-panel-open .info-hero,body.mobile-panel-open .info-location-card,body.mobile-panel-open #info-business{grid-column:1}body.mobile-panel-open #info-map-wrap{grid-column:1/-1}body.mobile-panel-open .info-metrics,body.mobile-panel-open #info-features,body.mobile-panel-open #info-description-wrap,body.mobile-panel-open #info-link{grid-column:2}body.mobile-panel-open .waypoints-list{grid-template-columns:1fr 1fr;align-content:start;display:grid}body.mobile-panel-open .perf-panel-body{grid-template-columns:1fr 1fr;align-content:start;align-items:start;gap:8px 12px;display:grid}body.mobile-panel-open .perf-panel-body>.perf-divider{display:none}body.mobile-panel-open .perf-panel-body>.perf-divider:nth-child(4n),body.mobile-panel-open .perf-panel-body>.perf-divider:nth-child(18){grid-column:1/-1;margin:0;display:block}body.mobile-panel-open .perf-panel-body>.perf-control-row:has(#theme-control),body.mobile-panel-open .perf-panel-body>label[for=smooth-toggle],body.mobile-panel-open .perf-panel-body>label[for=collision-toggle],body.mobile-panel-open .perf-panel-body>label[for=perf-stats-toggle]{grid-column:1}body.mobile-panel-open .perf-panel-body>.perf-slider-group:has(#sens-slider),body.mobile-panel-open .perf-panel-body>label[for=antialias-toggle]{grid-column:2}body.mobile-panel-open #skybox-grid,body.mobile-panel-open .perf-panel-body>.perf-control-row:has(+#skybox-grid){grid-column:1/-1}}.dev-lod-panel{border-radius:var(--radius-lg);z-index:500;color:#e5e5ea;-webkit-backdrop-filter:blur(16px);background:#121214f7;border:1px solid #ffffff1c;width:296px;max-height:calc(100vh - 80px);font-size:12px;position:fixed;top:60px;right:16px;overflow-y:auto;box-shadow:0 8px 32px #000000a6}.dev-lod-panel.hidden{display:none}.dev-lod-header{text-transform:uppercase;letter-spacing:.06em;color:#ff9f0a;background:#121214fa;border-bottom:1px solid #ffffff17;justify-content:space-between;align-items:center;padding:9px 12px;font-size:10px;font-weight:700;display:flex;position:sticky;top:0}.dev-lod-header kbd{letter-spacing:0;background:#ffffff1a;border-radius:3px;padding:1px 4px;font-family:monospace;font-size:9px;font-weight:400}.dev-lod-header button{color:#636366;cursor:pointer;background:0 0;border:none;padding:0 2px;font-size:18px;line-height:1;transition:color .15s}.dev-lod-header button:hover{color:#e5e5ea}.dev-lod-body{padding:4px 12px 12px}.dev-lod-section{text-transform:uppercase;letter-spacing:.08em;color:#48484a;margin:10px 0 5px;font-size:9px;font-weight:700}.dev-lod-row{grid-template-columns:108px 1fr 38px;align-items:center;gap:5px;margin-bottom:3px;display:grid}.dev-lod-row label{color:#98989d;white-space:nowrap;text-overflow:ellipsis;font-size:11px;overflow:hidden}.dev-lod-row input[type=range]{accent-color:#0a84ff;cursor:pointer;width:100%;height:4px}.dev-lod-val{text-align:right;color:#e5e5ea;min-width:38px;font-family:SF Mono,Fira Code,monospace;font-size:10px}.dev-lod-row--check{grid-template-columns:108px auto}.dev-lod-row--check input[type=checkbox]{accent-color:#0a84ff;cursor:pointer;width:14px;height:14px}.dev-lod-legend{background:#ffffff0a;border:1px solid #ffffff12;border-radius:6px;margin:4px 0 6px;padding:6px 8px}.dev-lod-legend-item{color:#ebebf5cc;align-items:center;gap:7px;font-size:10px;line-height:1.8;display:flex}.dev-lod-swatch{border-radius:2px;flex-shrink:0;width:10px;height:10px;display:inline-block}.dev-lod-duo{color:#48484a;grid-column:2/-1;align-items:center;gap:4px;font-size:11px;display:flex}.dev-lod-duo input[type=number]{color:#e5e5ea;text-align:center;background:#ffffff12;border:1px solid #ffffff1c;border-radius:4px;width:46px;padding:2px 4px;font-family:monospace;font-size:11px}.dev-lod-duo input[type=number]:focus{outline-offset:1px;outline:1px solid #0a84ff}.dev-lod-entity-info{color:#48484a;min-height:16px;margin-bottom:5px;font-size:10px;font-style:italic}.dev-lod-entity-name{color:#30d158;text-overflow:ellipsis;white-space:nowrap;font-family:monospace;font-size:10px;font-style:normal;display:block;overflow:hidden}.dev-lod-entity-plain{color:#ff9f0a}.dev-lod-entity-warn{color:#636366;white-space:normal;margin-top:2px;font-size:10px;font-style:italic;display:block}.dev-lod-row--disabled{opacity:.35;pointer-events:none}.dev-lod-actions{border-top:1px solid #ffffff12;gap:6px;margin-top:10px;padding-top:10px;display:flex}.dev-lod-actions button{color:#aeaeb2;cursor:pointer;font-size:11px;font-family:var(--font-sans);background:#ffffff0f;border:1px solid #ffffff1a;border-radius:6px;flex:1;padding:5px 6px;transition:background .15s,color .15s}.dev-lod-actions button:hover{color:#e5e5ea;background:#ffffff1f}#dev-lod-reset{color:#ff9f0a;border-color:#ff9f0a40}#dev-lod-reset:hover{background:#ff9f0a1f}.cine-overlay{pointer-events:none;z-index:6;position:fixed;inset:0}.cine-shade{-webkit-backdrop-filter:blur(20px)saturate(1.3);background:#000000d1;position:absolute;inset:0}.cine-frame{outline:1px solid #ffffff38;position:absolute}.cine-watermark{user-select:none;-webkit-user-drag:none;height:auto;display:block;position:absolute}.cine-watermark[hidden]{display:none}.cine-size{color:#ffffffd9;letter-spacing:.02em;white-space:nowrap;user-select:none;background:#0000008c;border-radius:999px;padding:2px 8px;font:500 10px/1.5 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;position:absolute;bottom:8px;left:50%;transform:translate(-50%)}.cine-qr{user-select:none;-webkit-user-drag:none;display:block;position:absolute}.cine-qr[hidden]{display:none}body.cine-preview .top-left-cluster,body.cine-preview #controls-panel,body.cine-preview #side-panel-container,body.cine-preview #btn-expand-panel,body.cine-preview #stats-overlay,body.cine-preview #touch-joystick,body.cine-preview #level-switcher,body.cine-preview .tm-overlay,body.cine-preview .wp-overlay,body.cine-preview .nav-cursor-overlay,body.cine-preview #route-caption{display:none!important}.render-overlay{z-index:400;-webkit-backdrop-filter:blur(6px);opacity:0;visibility:hidden;background:#000000b8;justify-content:center;align-items:center;transition:opacity .25s,visibility 0s linear .25s;display:flex;position:fixed;inset:0}.render-overlay.active{opacity:1;visibility:visible;transition:opacity .25s,visibility}.render-overlay-card{border-radius:var(--r-input);background:var(--bg-panel);width:min(360px,100vw - 48px);-webkit-backdrop-filter:var(--glass-blur);border:var(--glass-border);box-shadow:var(--shadow-float);font-family:var(--font-sans);padding:20px 22px}.render-overlay-head{align-items:center;gap:9px;margin-bottom:14px;display:flex}.render-overlay-spinner{border:2px solid var(--accent);border-right-color:#0000;border-radius:50%;flex-shrink:0;width:15px;height:15px;animation:.8s linear infinite spin}.render-overlay-title{color:var(--text-primary);font-size:14px;font-weight:600}.render-overlay-bar{border-radius:var(--r-full);background:var(--surface-hover);height:6px;overflow:hidden}.render-overlay-fill{border-radius:var(--r-full);background:var(--accent);width:0;height:100%;transition:width .15s linear}.render-overlay-meta{font-family:var(--font-mono);color:var(--text-muted);justify-content:space-between;align-items:center;margin-top:8px;font-size:11px;display:flex}.render-overlay-hint{color:var(--text-dim);margin:14px 0 0;font-size:11px;line-height:1.5}body.rendering .top-left-cluster,body.rendering #controls-panel,body.rendering #side-panel-container,body.rendering #btn-expand-panel,body.rendering #stats-overlay,body.rendering #touch-joystick,body.rendering #studio-bar,body.rendering .tm-overlay,body.rendering .wp-overlay,body.rendering .nav-cursor-overlay,body.rendering #route-caption{display:none!important}.level-switcher{z-index:9;background:var(--glass-bg);min-width:148px;max-width:210px;-webkit-backdrop-filter:var(--glass-blur);border:var(--glass-border);border-radius:var(--r-input);box-shadow:var(--shadow);flex-direction:column;padding:4px;display:flex;position:fixed;top:50%;left:12px;overflow:hidden;transform:translateY(-50%)}.level-switcher[hidden]{display:none}.level-switcher.busy{pointer-events:none;opacity:.6}.level-switcher-head{border:none;border-bottom:1px solid var(--border-light);text-align:left;cursor:default;background:0 0;align-items:center;gap:6px;width:100%;margin-bottom:4px;padding:6px 8px 7px;font-family:inherit;display:flex}.level-switcher-current,.level-switcher-chevron{display:none}.level-switcher-icon{color:var(--accent);font-size:16px;line-height:1}.level-switcher-title{letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);font-size:10.5px;font-weight:700}.level-switcher-list{max-height:calc(100vh - var(--controls-h) - 190px);scrollbar-width:none;flex-direction:column;gap:2px;display:flex;overflow-y:auto}.level-switcher-list::-webkit-scrollbar{display:none}.level-btn{border-radius:var(--r);width:100%;color:var(--text-muted);letter-spacing:-.2px;text-align:left;cursor:pointer;background:0 0;border:none;align-items:center;gap:8px;padding:8px 10px;font-family:inherit;font-size:12.5px;font-weight:600;transition:background .15s,color .15s;display:flex}.level-btn:hover:not(.active):not(:disabled){background:var(--surface-hover);color:var(--text-primary)}.level-btn.active{background:var(--accent);color:#fff;cursor:default}.level-btn:disabled{cursor:wait}.level-btn-dot{opacity:.35;background:currentColor;border-radius:50%;flex-shrink:0;width:6px;height:6px;transition:opacity .15s}.level-btn.active .level-btn-dot{opacity:1}.level-btn-label{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}@media (width<=640px){.level-switcher{min-width:124px;max-width:156px;left:8px}.level-switcher-head{padding:5px 6px 6px}.level-btn{padding:7px 8px;font-size:12px}}@media (pointer:coarse){.level-switcher{background:var(--glass-bg-sm);border:none;border-radius:22px;padding:4px;box-shadow:0 2px 16px #0000001a,inset 0 0 0 1px #00000012}.level-switcher.collapsed{border-radius:50px;padding:0}.level-switcher.collapsed .level-switcher-head{gap:7px;height:36px;padding:0 12px 0 11px}.level-switcher-icon{color:var(--text-muted);font-size:18px}.level-switcher .level-btn{border-radius:999px}.level-switcher-head{cursor:pointer;-webkit-tap-highlight-color:transparent}.level-switcher-chevron{color:var(--text-muted);margin-left:auto;font-size:18px;line-height:1;transition:transform .18s;display:block}.level-switcher:not(.collapsed) .level-switcher-chevron{transform:rotate(180deg)}.level-switcher.collapsed{min-width:0}.level-switcher.collapsed .level-switcher-head{border-bottom:0;margin-bottom:0;padding:8px 8px 8px 10px}.level-switcher.collapsed .level-switcher-title,.level-switcher.collapsed .level-switcher-list{display:none}.level-switcher.collapsed .level-switcher-current{text-overflow:ellipsis;white-space:nowrap;letter-spacing:-.2px;max-width:150px;color:var(--text-primary);font-size:13px;font-weight:600;display:block;overflow:hidden}html[data-theme=dark] .level-switcher{box-shadow:0 2px 16px #00000073,inset 0 0 0 1px #ffffff14}.level-switcher{left:calc(12px + env(safe-area-inset-left,0px));right:auto;top:calc(58px + env(safe-area-inset-top,0px));transform:none}}body.portrait-dock .level-switcher-list{max-height:calc(var(--stage-vis) - 120px)}.portrait-dock[hidden]{display:none}body.portrait-dock{--dock-overlap:14px;--stage-vis:calc(var(--stage-h) - var(--dock-overlap));--stage-inset:12px;--rp-h:44px}body.portrait-dock #app-canvas{bottom:auto;height:var(--stage-h)!important}body.portrait-dock-resizing #app-canvas{object-fit:cover;object-position:center top}.portrait-dock{top:var(--stage-vis);z-index:9;background:var(--surface-card);padding-bottom:env(safe-area-inset-bottom,0px);padding-left:env(safe-area-inset-left,0px);padding-right:env(safe-area-inset-right,0px);border-radius:16px 16px 0 0;flex-direction:column;display:flex;position:fixed;bottom:0;left:0;right:0;overflow:hidden;box-shadow:0 -8px 28px #0000002e}.portrait-dock-handle{touch-action:none;cursor:grab;-webkit-tap-highlight-color:transparent;flex-shrink:0;justify-content:center;align-items:center;height:26px;display:flex}.portrait-dock-grip{background:var(--border-mid);border-radius:3px;width:40px;height:5px;transition:background .15s,width .15s}.portrait-dock-handle:active .portrait-dock-grip,body.portrait-dock-dragging .portrait-dock-grip{background:var(--text-muted);width:52px}.portrait-dock-handle:focus-visible{outline:2px solid var(--accent);outline-offset:-4px;border-radius:8px}body.portrait-dock-dragging{cursor:grabbing}.portrait-dock-body{flex-direction:column;flex:1;min-height:0;display:flex}body.portrait-dock-collapsed .portrait-dock-body{visibility:hidden}#portrait-dock #controls-panel{-webkit-backdrop-filter:none;border-top:0;border-bottom:1px solid var(--border);z-index:auto;background:0 0;flex-wrap:wrap;flex-shrink:0;justify-content:space-between;align-items:center;gap:8px 12px;height:auto;padding:0 14px 10px;display:flex;position:static}#portrait-dock #controls-panel .ctrl-divider,#portrait-dock #controls-panel .speed-control label{display:none}#portrait-dock .speed-control{margin-left:auto}#portrait-dock #controls-panel .seg-btn{padding:7px 12px;font-size:13px}#portrait-dock #side-panel-container{-webkit-backdrop-filter:none;z-index:auto;background:0 0;border:0;flex:1;width:auto;min-height:0;padding:0;transition:none;position:static;transform:none}#portrait-dock .tab-buttons-row .close-btn,body.portrait-dock #btn-expand-panel{display:none}#portrait-dock #tab-settings .legal-links{justify-content:center;padding-bottom:4px}body.portrait-dock .wp-overlay,body.portrait-dock .tm-overlay,body.portrait-dock .nav-cursor-overlay{overflow:hidden;height:var(--stage-vis)!important;bottom:auto!important}body.portrait-dock .route-player{left:calc(var(--stage-inset) + env(safe-area-inset-left,0px));right:calc(var(--stage-inset) + env(safe-area-inset-right,0px));top:calc(var(--stage-vis) - var(--stage-inset) - var(--rp-h));height:var(--rp-h);z-index:10;padding:0 16px 0 4px;position:fixed}body.portrait-dock .rp-btn{width:36px;height:36px}body.portrait-dock .rp-btn .material-symbols-rounded{font-size:22px}body.portrait-dock .rp-sep{margin:0 4px}body.portrait-dock .rp-timer{margin-right:8px;font-size:12px}body.portrait-dock .rp-track-area{flex:1;width:auto;min-width:0}body.portrait-dock .rp-track{height:4px}body.portrait-dock .rp-track:before{content:"";position:absolute;inset:-16px 0}body.portrait-dock .rp-track-thumb{opacity:1;width:14px;height:14px}body.portrait-dock .touch-joystick{bottom:auto;top:calc(var(--stage-vis) - var(--stage-inset) - 120px)}body.portrait-dock:has(#route-player:not(.hidden)) .touch-joystick{top:calc(var(--stage-vis) - var(--stage-inset) - var(--rp-h) - 10px - 120px)}body.portrait-dock .toast-container{top:calc(104px + env(safe-area-inset-top,0px));bottom:auto;left:calc(var(--stage-inset) + env(safe-area-inset-left,0px))}body.portrait-dock .route-caption{top:calc(60px + env(safe-area-inset-top,0px));width:calc(100vw - 32px);max-width:none;padding:10px 16px}body.portrait-dock .route-caption-title{font-size:24px}body.portrait-dock .route-caption-desc{font-size:15px}.seg-btn[hidden]{display:none}.controls-orbit{color:var(--text-muted);white-space:nowrap;grid-area:1/1;align-items:center;gap:6px;font-size:11px;transition:opacity .2s;display:flex}body[data-camera-mode=orbit] .touch-joystick{display:none!important}body[data-camera-mode=orbit] .speed-control,body[data-camera-mode=orbit] .ctrl-divider:has(+.speed-control),.info-panel-body.is-car>.info-location-card,.info-panel-body.is-car>.info-metrics,.info-panel-body.is-car>#info-features{display:none}.car-info[hidden],.car-info [hidden]{display:none!important}.car-info{flex-direction:column;gap:12px;display:flex}.car-title-block{flex-direction:column;gap:2px;display:flex}.car-title{letter-spacing:-.3px;color:var(--text-primary);font-size:17px;font-weight:700;line-height:1.25}.car-version{color:var(--text-muted);font-size:12.5px}.car-equipment-wrap{flex-direction:column;gap:6px;display:flex}.car-equipment{flex-wrap:wrap;gap:5px;display:flex}.car-equipment-item{border-radius:var(--r-pill);background:var(--bg-hover);border:1px solid var(--border);color:var(--text-primary);padding:4px 9px;font-size:11.5px;line-height:1.3}.car-city{color:var(--text-muted);align-items:center;gap:6px;font-size:12.5px;display:flex}.car-city .material-symbols-rounded{color:var(--accent);font-size:17px}.car-vin{flex-direction:column;gap:4px;display:flex}.car-vin code{letter-spacing:.08em;color:var(--text-primary);user-select:all;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12.5px}.car-dock{left:50%;bottom:calc(var(--controls-h) + 14px);z-index:9;border-radius:var(--r-pill);background:var(--glass-bg-sm);max-width:calc(100vw - 24px);-webkit-backdrop-filter:var(--glass-blur);box-shadow:var(--shadow-logo,var(--shadow));scrollbar-width:none;gap:2px;padding:4px;display:flex;position:fixed;overflow-x:auto;transform:translate(-50%)}.car-dock::-webkit-scrollbar{display:none}.car-dock[hidden]{display:none}.car-dock.busy{pointer-events:none;opacity:.6}.car-dock-btn{border-radius:var(--r-pill);height:38px;color:var(--text-muted);letter-spacing:-.2px;white-space:nowrap;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:background var(--t-fast,.12s), color var(--t-fast,.12s);background:0 0;border:none;flex-shrink:0;align-items:center;gap:6px;padding:0 14px 0 11px;font-family:inherit;font-size:12.5px;font-weight:600;display:inline-flex}.car-dock-btn:hover:not(.active):not(:disabled){background:var(--surface-hover);color:var(--text-primary)}.car-dock-btn.active{background:var(--accent);color:#fff;cursor:default}.car-dock-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.car-dock-btn:disabled{cursor:wait}.car-dock-icon{font-size:20px;line-height:1}.car-dock-label{text-overflow:ellipsis;max-width:16ch;overflow:hidden}@media (width<=520px){.car-dock-btn{padding:0 10px}.car-dock:has(.car-dock-btn:nth-child(4)) .car-dock-label{display:none}.car-dock:has(.car-dock-btn:nth-child(4)) .car-dock-btn.active .car-dock-label{display:inline}}@media (pointer:coarse){.car-dock{bottom:calc(12px + env(safe-area-inset-bottom,0px))}body.mobile-panel-open .car-dock{display:none}}body.portrait-dock .car-dock{bottom:auto;top:calc(var(--stage-vis) - var(--stage-inset) - 46px)}body.portrait-dock:has(#route-player:not(.hidden)) .car-dock{top:calc(var(--stage-vis) - var(--stage-inset) - var(--rp-h) - 10px - 46px)}html.studio-mode #car-dock,body.cine-preview #car-dock,body.rendering #car-dock{display:none!important}.studio-orbit-anchor{z-index:12;width:22px;height:22px;box-shadow:0 0 0 2px var(--accent), 0 2px 8px #00000073;pointer-events:none;border:2px solid #fff;border-radius:50%;position:fixed;top:0;left:0}.studio-orbit-anchor:before,.studio-orbit-anchor:after{content:"";background:var(--accent);position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.studio-orbit-anchor:before{width:2px;height:10px}.studio-orbit-anchor:after{width:10px;height:2px}.studio-orbit-anchor[hidden]{display:none}body.rendering .studio-orbit-anchor,body.cine-preview .studio-orbit-anchor{display:none!important}body.has-car-dock .pointer-lock-notice,body.has-car-dock .pointer-lock-active{bottom:calc(var(--controls-h) + 14px + 46px + 10px)}:root{--app-build:"2026-09-25.1"}
