body:has(.landing-overlay){overflow:hidden}#app.landing-mode{position:fixed;inset:0;height:100vh;height:100dvh;z-index:1}#app.landing-mode #topbar,#app.landing-mode #statusbar,#app.landing-mode .left-toolbar,#app.landing-mode .side-drawer,#app.landing-mode .viewport-camera-bar,#app.landing-mode .viewport-mode-bar,#app.landing-mode #help-card,#app.landing-mode .minimap-overlay-container{display:none!important}#app.landing-mode #main,#app.landing-mode .app-shell{position:fixed;inset:0;height:100%;flex:none;padding:0;gap:0}#app.landing-mode .viewport-area{position:fixed;inset:0;background:transparent;border-radius:0;border:none;box-shadow:none;filter:saturate(1.18) brightness(.92) contrast(1.03);transform:translateY(16vh) scale(1.05);transform-origin:center}.landing-overlay{position:fixed;inset:0;z-index:10000;min-height:100vh;min-height:100dvh;background:transparent;color:var(--text-main);font-family:var(--font);overflow:hidden;pointer-events:none;transition:opacity .72s cubic-bezier(.4,0,.2,1),transform .72s cubic-bezier(.4,0,.2,1),filter .72s cubic-bezier(.4,0,.2,1);will-change:opacity,transform,filter;animation:landing-overlay-in .6s cubic-bezier(.16,1,.3,1) both}.landing-overlay.exiting{opacity:0;transform:scale(1.02);filter:blur(4px)}@keyframes landing-overlay-in{0%{opacity:0;transform:scale(1.015);filter:blur(3px)}to{opacity:1;transform:scale(1);filter:blur(0)}}.landing-scrim{position:absolute;inset:0;z-index:1;pointer-events:none;background:radial-gradient(ellipse 62% 44% at 50% 22%,rgba(255,185,92,.1),transparent 70%),linear-gradient(180deg,#0910228c,#09102224 24%,#0910220f 52%,#0910224d 78%,#091022c7)}.landing-scrim:after{content:"";position:absolute;inset:0;background:radial-gradient(ellipse 135% 115% at 50% 45%,transparent 52%,rgba(9,16,34,.5) 100%)}.landing-title-inner{position:relative;z-index:2;height:100%;min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;pointer-events:auto}.landing-title-hero{flex:1;min-height:0;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;text-align:center;padding:clamp(26px,7vh,88px) clamp(18px,5vw,48px) 0}.landing-title-eyebrow{font-size:12px;font-weight:600;letter-spacing:.34em;padding-left:.34em;text-transform:uppercase;color:#f4eee2ad;animation:landing-rise .8s cubic-bezier(.16,1,.3,1) .05s both}.landing-title-wordmark{margin:16px 0 12px;font-family:var(--font-display);font-size:clamp(44px,9vw,118px);font-weight:700;line-height:1;letter-spacing:.1em;padding-left:.1em;text-transform:uppercase;color:#ffc76f;background:linear-gradient(180deg,#ffe3ab,#ffc76f 46%,#e2952f);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;filter:drop-shadow(0 6px 22px rgba(0,0,0,.5)) drop-shadow(0 18px 70px rgba(0,0,0,.55));animation:landing-rise .8s cubic-bezier(.16,1,.3,1) .14s both}.landing-title-tagline{margin:0 0 26px;font-size:16px;font-weight:500;letter-spacing:.04em;color:#f0ece2c7;animation:landing-rise .8s cubic-bezier(.16,1,.3,1) .22s both}@keyframes landing-rise{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}.landing-cta{display:inline-flex;align-items:center;justify-content:center;gap:10px;height:52px;padding:0 34px;background:linear-gradient(135deg,#ffcf98,#f0a942);border:1px solid rgba(255,210,150,.55);border-radius:var(--radius-md);color:#1b1206;font-family:var(--font-display);font-size:14px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;cursor:var(--cursor-pointer);transition:background .15s ease,border-color .15s ease,transform .15s ease,opacity .15s ease,box-shadow .2s ease;box-shadow:0 8px 26px #f0a03c42;animation:landing-rise .8s cubic-bezier(.16,1,.3,1) .3s both}.landing-cta:not(.loading){animation:landing-rise .55s cubic-bezier(.16,1,.3,1) both,landing-cta-breathe 3.4s ease-in-out 1.6s infinite}.landing-cta svg{width:14px;height:14px}.landing-cta:hover:not(:disabled){background:linear-gradient(135deg,var(--accent-hover),var(--accent));border-color:var(--accent-hover);transform:translateY(-1px);animation-play-state:paused}.landing-cta:active:not(:disabled){transform:translateY(0)}.landing-cta:disabled{opacity:.9;cursor:var(--cursor-default);transform:none}.landing-cta.loading{background:#0a0f1ab8;border-color:var(--border-subtle);color:var(--text-muted);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);box-shadow:none}.landing-cta-spinner{width:14px;height:14px;border:2px solid var(--border-subtle);border-top-color:var(--accent);border-radius:50%;animation:landing-spin .75s linear infinite}@keyframes landing-spin{to{transform:rotate(360deg)}}@keyframes landing-cta-breathe{0%,to{box-shadow:0 8px 26px #f0a03c42}50%{box-shadow:0 0 0 1px #ffcf9866,0 12px 44px #ff963a80}}.landing-title-meta{position:relative;display:flex;align-items:center;justify-content:center;padding:11px clamp(16px,4vw,40px);border-top:1px solid rgba(255,255,255,.07);background:#0910226b;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:#e2e5ec8c;animation:landing-fade .9s ease .55s both}.landing-meta-group{display:flex;align-items:center;gap:12px}.landing-meta-sep{color:#e2e5ec47;user-select:none}.landing-meta-credit{position:absolute;right:clamp(16px,4vw,40px);color:#e2e5ec8c;text-decoration:none;transition:color .15s ease}.landing-meta-credit:hover{color:var(--accent)}@keyframes landing-fade{0%{opacity:0}to{opacity:1}}@media(max-width:640px){.landing-title-eyebrow{letter-spacing:.26em;padding-left:.26em}.landing-title-tagline{font-size:14px;margin-bottom:26px}.landing-meta-credit{display:none}.landing-meta-group{gap:10px}}@media(max-width:420px){.landing-title-hero{padding-inline:16px}.landing-cta{width:min(100%,340px)}}@media(max-height:520px){.landing-title-hero{padding-top:3vh}#app.landing-mode .viewport-area{transform:translateY(22vh) scale(1.05)}.landing-title-wordmark{font-size:clamp(34px,11vh,72px);margin:10px 0 8px}.landing-title-tagline{margin-bottom:18px}}@media(prefers-reduced-motion:reduce){.landing-overlay{transition:opacity .35s ease;animation:none}.landing-overlay.exiting{transform:none;filter:none}.landing-title-eyebrow,.landing-title-wordmark,.landing-title-tagline,.landing-title-meta,.landing-cta,.landing-cta:not(.loading){animation:none}.landing-cta:hover:not(:disabled){transform:none}.landing-cta-spinner{animation:none;border-top-color:var(--text-dim)}}:root{--cursor-default: default;--cursor-pointer: pointer;--cursor-text: text;--cursor-not-allowed: not-allowed;--cursor-crosshair: crosshair;--cursor-move: move;--cursor-grab: grab;--cursor-grabbing: grabbing;--cursor-help: help}html,body{cursor:var(--cursor-default)}input:not([type=button]):not([type=submit]):not([type=reset]):not([type=checkbox]):not([type=radio]):not([type=range]):not([type=file]):not([type=color]),textarea,[contenteditable=true]{cursor:var(--cursor-text)}:root{--bg-main: #05070d;--bg-panel: #0c1424;--bg-panel-soft: #111d33;--bg-control: #172642;--bg-elevated: #111d33;--border-subtle: #24334f;--border-strong: #39517e;--border-active: #ffc06a;--text-main: #e7eefc;--text-muted: #9fb2d8;--text-dim: #66789f;--text-bright: #ffffff;--accent: #ffc06a;--accent-hover: #ffd9a0;--accent-bg: rgba(255, 192, 106, .14);--accent-bg-strong: rgba(255, 192, 106, .26);--thumb: #ffd9a0;--success: #7dd3b0;--warning: #f0c87a;--danger: #e87878;--shadow-panel: 0 14px 40px rgba(0, 0, 0, .6);--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--ctl-h: 30px;--ctl-h-md: 36px;--ctl-h-lg: 44px;--icon-sm: 16px;--icon-md: 22px;--topbar-h: 54px;--drawer-w: min(368px, 92vw);--glass-bg: rgba(13, 22, 38, .72);--glass-border: rgba(151, 183, 255, .11);--stage-gap: 12px;--font: "Rajdhani", "Inter", "Segoe UI", system-ui, sans-serif;--font-display: "Cinzel", "Times New Roman", Georgia, serif;--mono: "JetBrains Mono", "Cascadia Code", Consolas, monospace;--bg: var(--bg-main);--panel: var(--bg-panel);--panel-border: var(--border-subtle);--panel-header: var(--bg-panel-soft);--text: var(--text-main);--text-faint: var(--text-dim);--accent-soft: var(--accent-bg);--good: var(--success);--warn: var(--warning);--input-bg: var(--bg-control);--input-border: var(--border-subtle);--radius: var(--radius-md)}*{margin:0;padding:0;box-sizing:border-box}html,body{height:100%;overflow:hidden}body{font-family:var(--font);font-size:13.5px;color:var(--text-main);background:var(--bg-main);user-select:none;-webkit-font-smoothing:antialiased}#app{display:flex;flex-direction:column;height:100vh;position:relative;background:radial-gradient(ellipse 90% 70% at 72% -12%,rgba(64,98,172,.16),transparent 62%),radial-gradient(ellipse 70% 60% at 0% 108%,rgba(38,64,118,.12),transparent 60%),linear-gradient(180deg,#0a1322,#060b14)}#topbar{display:flex;align-items:center;gap:14px;height:var(--topbar-h);flex:0 0 var(--topbar-h);margin:12px 16px 0;padding:0 12px 0 16px;background:var(--glass-bg);backdrop-filter:blur(18px) saturate(1.4);-webkit-backdrop-filter:blur(18px) saturate(1.4);border:1px solid var(--glass-border);border-radius:16px;box-shadow:0 12px 32px #00000052;z-index:30}.tb-group{display:flex;align-items:center;gap:6px}.tb-brand{gap:9px;margin-right:8px}.tb-center{flex:1 1 auto;justify-content:center;min-width:0;gap:8px}.logo{width:26px;height:26px;color:var(--accent);flex-shrink:0}.app-name{font-family:var(--font-display);font-weight:700;letter-spacing:2.5px;font-size:15px;text-transform:uppercase;color:var(--accent)}.app-version{font-size:10.5px;color:var(--text-dim);font-family:var(--mono);margin-top:2px}.tb-right{margin-left:auto}.tb-btn{display:inline-flex;align-items:center;gap:7px;height:var(--ctl-h-md);padding:0 13px;background:transparent;border:1px solid transparent;border-radius:var(--radius-sm);color:var(--text-muted);font-family:var(--font);font-size:13px;font-weight:500;cursor:var(--cursor-pointer);white-space:nowrap;transition:background .12s ease,color .12s ease,border-color .12s ease}.tb-btn:hover{background:#97b7ff17;color:var(--text-main);border-color:transparent}.tb-btn.active{background:var(--accent-bg);color:var(--accent);border-color:var(--border-active)}.tb-btn svg{width:var(--icon-sm);height:var(--icon-sm)}.tb-btn .caret{width:8px;height:8px}.tb-icon-btn{padding:0 9px}.tb-icon-btn:disabled:hover{background:transparent;color:var(--text-muted);border-color:transparent}.tb-search-btn{padding:0 14px;gap:8px;background:#1726428c;border-color:var(--glass-border);border-radius:999px}.tb-search-btn:hover{border-color:var(--border-active);background:var(--accent-bg)}.tb-search-btn.active{background:var(--accent-bg);border-color:var(--border-active);color:var(--accent)}.tb-search-btn svg{width:13px;height:13px;flex-shrink:0}.tb-shortcut{display:inline-flex;align-items:center;height:20px;padding:0 6px;border-radius:999px;background:#96b9ff0d;border:1px solid var(--border-subtle);color:var(--text-dim);font-family:var(--mono);font-size:10px;letter-spacing:.04em;flex-shrink:0}.tb-btn.primary{background:var(--accent-bg);color:var(--accent);border-color:#ffc06a66}.tb-btn.primary:hover{background:var(--accent-bg-strong);border-color:var(--accent);color:var(--accent-hover)}.tb-btn:disabled{opacity:.45;cursor:var(--cursor-not-allowed)}.tb-segment{display:flex;gap:3px;padding:4px;background:#1726428c;border:1px solid var(--glass-border);border-radius:999px}.tb-mode{height:34px;padding:0 18px;border:1px solid transparent;border-radius:999px;background:transparent;color:var(--text-muted);font-family:var(--font);font-size:12.5px;font-weight:600;cursor:var(--cursor-pointer);white-space:nowrap;transition:background .12s ease,color .12s ease}.tb-mode:hover:not(:disabled){color:var(--text-main)}.tb-mode.active{background:var(--accent);color:#1b1206;font-weight:700}.tb-mode:disabled{opacity:.5;cursor:var(--cursor-not-allowed)}.tb-loading{display:inline-flex;align-items:center;gap:7px;height:32px;padding:0 12px;border-radius:var(--radius-sm);background:var(--accent-bg);border:1px solid var(--border-active);color:var(--accent);font-size:11.5px;font-weight:600}.tb-spin{animation:tb-spin .8s linear infinite}@keyframes tb-spin{to{transform:rotate(360deg)}}.tb-dropdown{position:relative}.tb-menu{position:absolute;top:calc(var(--ctl-h-md) + 6px);left:0;min-width:190px;background:var(--bg-panel);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:6px;display:none;flex-direction:column;z-index:50;box-shadow:var(--shadow-panel)}.tb-menu.open{display:flex}.tb-menu button{background:none;border:none;color:var(--text-main);font-family:var(--font);font-size:13px;text-align:left;padding:9px 12px;border-radius:6px;cursor:var(--cursor-pointer)}.tb-menu button:hover{background:var(--accent-bg);color:var(--accent)}.app-shell{position:relative;flex:1;display:flex;overflow:hidden;min-height:0;padding:var(--stage-gap) 16px;gap:var(--stage-gap)}.left-toolbar{display:flex;flex-direction:column;align-items:stretch;gap:4px;width:84px;flex:0 0 84px;padding:10px 8px;background:var(--glass-bg);backdrop-filter:blur(18px) saturate(1.4);-webkit-backdrop-filter:blur(18px) saturate(1.4);border:1px solid var(--glass-border);border-radius:20px;box-shadow:0 14px 36px #0000004d;align-self:center;max-height:100%;overflow-y:auto;z-index:12}.left-toolbar::-webkit-scrollbar{width:0}.toolbar-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;height:64px;border:1px solid transparent;border-radius:var(--radius-md);background:transparent;color:var(--text-dim);cursor:var(--cursor-pointer);transition:background .12s ease,color .12s ease,border-color .12s ease}.toolbar-btn svg{width:var(--icon-md);height:var(--icon-md)}.toolbar-btn-label{font-size:10.5px;font-weight:600;letter-spacing:.3px;color:inherit}.toolbar-btn:hover{background:#97b7ff17;color:var(--text-main)}.toolbar-btn.active{background:var(--accent-bg);color:var(--accent);border-color:transparent;box-shadow:inset 0 0 0 1px #ffc06a59}.side-drawer{position:absolute;top:var(--stage-gap);right:16px;bottom:var(--stage-gap);width:var(--drawer-w);background:#0b1220db;backdrop-filter:blur(24px) saturate(1.5);-webkit-backdrop-filter:blur(24px) saturate(1.5);border:1px solid var(--glass-border);border-radius:18px;box-shadow:var(--shadow-panel);transform:translate(calc(100% + 40px));opacity:0;pointer-events:none;transition:transform .24s cubic-bezier(.16,1,.3,1),opacity .2s ease;z-index:12;display:flex;flex-direction:column;min-height:0;overflow:hidden}.side-drawer.open{transform:translate(0);opacity:1;pointer-events:auto}.side-panel{display:flex;flex-direction:column;flex:1 1 0;min-height:0;overflow:hidden}.side-panel-header{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;padding:16px 18px 14px;border-bottom:1px solid var(--border-subtle);flex-shrink:0}.side-panel-title{font-size:15.5px;font-weight:700;letter-spacing:.3px;color:var(--text-bright)}.side-panel-desc{margin-top:3px;font-size:12px;color:var(--text-dim);line-height:1.45}.side-panel-close{display:flex;align-items:center;justify-content:center;width:32px;height:32px;flex-shrink:0;border:1px solid var(--border-subtle);border-radius:var(--radius-sm);background:var(--bg-control);color:var(--text-muted);cursor:var(--cursor-pointer);transition:background .12s ease,color .12s ease,border-color .12s ease}.side-panel-close:hover{color:var(--text-main);border-color:var(--border-active)}.side-panel-content{flex:1 1 0;min-height:0;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;padding:14px 18px 18px;scrollbar-width:thin;scrollbar-color:var(--border-strong) transparent}.side-panel-content>*+*{margin-top:4px}.side-panel-content::-webkit-scrollbar{width:7px}.side-panel-content::-webkit-scrollbar-track{background:transparent}.side-panel-content::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:4px;min-height:32px}.side-panel-content::-webkit-scrollbar-thumb:hover{background:var(--text-dim)}.side-panel-footer{flex-shrink:0;padding:14px 18px;border-top:1px solid var(--border-subtle);background:transparent}.side-panel-footer .action-btn{margin-top:0}.side-panel-quick{display:flex;gap:8px;margin-bottom:6px}.side-panel-quick .action-btn{margin-top:0}.panel-tabs{display:flex;gap:4px;padding:4px;margin-bottom:12px;background:var(--bg-control);border:1px solid var(--border-subtle);border-radius:var(--radius-md)}.panel-tab{flex:1;height:34px;border:none;border-radius:8px;background:transparent;color:var(--text-muted);font-family:var(--font);font-size:12.5px;font-weight:600;cursor:var(--cursor-pointer);transition:background .12s ease,color .12s ease}.panel-tab:hover{color:var(--text-main)}.panel-tab.active{background:var(--accent);color:#1b1206;font-weight:700}.panel-group{border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--bg-panel-soft);overflow:hidden;margin-bottom:8px}.panel-group-header{display:flex;align-items:center;gap:8px;padding:9px 12px;border-bottom:1px solid var(--border-subtle)}.panel-group-icon{display:flex;color:var(--accent)}.panel-group-icon svg{width:15px;height:15px}.panel-group-title{font-size:10px;font-weight:700;letter-spacing:1.3px;color:var(--text-muted)}.panel-group-body{padding:12px}.collapsible-group .panel-group-header{width:100%;border:none;background:transparent;cursor:var(--cursor-pointer);font-family:var(--font);text-align:left;transition:background .12s ease}.collapsible-group .panel-group-toggle:hover{background:var(--bg-control)}.collapsible-group .panel-group-toggle{justify-content:flex-start;border-bottom:none}.collapsible-group.open .panel-group-toggle{border-bottom:1px solid var(--border-subtle)}.collapsible-group .panel-group-chevron{display:flex;margin-left:auto;color:var(--text-dim);transition:transform .15s ease}.collapsible-group .panel-group-chevron.open{transform:rotate(180deg)}.panel-group.nested{margin-top:4px;margin-bottom:4px;background:transparent}.panel-group.nested .panel-group-header{padding:7px 10px}.panel-group.nested .panel-group-title{font-size:9.5px;letter-spacing:1.1px}.panel-group.nested .panel-group-body{padding:8px 10px 10px}.file-picker{margin-bottom:10px}.file-picker-input{position:absolute;width:0;height:0;opacity:0;pointer-events:none}.file-picker-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;width:100%;min-height:36px;padding:0 12px;border:1px dashed var(--border-strong);border-radius:var(--radius-sm);background:var(--bg-control);color:var(--text-main);font-family:var(--font);font-size:12px;font-weight:600;cursor:var(--cursor-pointer);transition:background .12s ease,color .12s ease,border-color .12s ease}.file-picker-btn:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-bg)}.file-picker-name{display:block;margin-top:6px;font-size:10.5px;color:var(--text-dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.import-map-preview{width:100%;max-height:120px;object-fit:cover;border-radius:var(--radius-sm);margin:8px 0 10px;border:1px solid var(--border-subtle)}.import-map-error{color:#ff8a8a}.realworld-search{margin:6px 0 8px}.realworld-list{display:flex;flex-direction:column;gap:6px;margin:6px 0}.realworld-item{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;min-height:38px;padding:6px 10px;text-align:left;border:1px solid var(--border-subtle);border-radius:var(--radius-sm);background:var(--panel-2, #141414);color:inherit;cursor:var(--cursor-pointer)}.realworld-item:hover:not(:disabled){border-color:var(--accent);background:var(--accent-bg)}.realworld-item:disabled{opacity:.55;cursor:var(--cursor-default)}.realworld-text{display:flex;flex-direction:column;line-height:1.25}.realworld-name{font-size:12px;font-weight:600}.realworld-blurb{font-size:10.5px;opacity:.65}.realworld-progress{font-size:11px;font-variant-numeric:tabular-nums;color:var(--accent)}.realworld-attribution{margin-top:8px;font-size:10px;opacity:.55}.biome-legend{display:flex;flex-direction:column;gap:6px;margin-top:8px;padding-top:8px;border-top:1px solid var(--border-subtle)}.biome-legend-row{display:flex;align-items:center;gap:8px;font-size:11px;color:var(--text-muted)}.biome-legend-swatch{width:12px;height:12px;border-radius:3px;flex-shrink:0}.perf-settings-body{display:flex;flex-direction:column;gap:4px}.control-section{background:var(--bg-panel-soft);border:1px solid var(--border-subtle);border-radius:var(--radius-md);overflow:hidden;flex-shrink:0}.control-section-header{display:flex;align-items:center;justify-content:space-between;width:100%;padding:10px 12px;background:var(--bg-panel-soft);border:none;cursor:var(--cursor-pointer);color:var(--text-muted);font-family:var(--font);text-align:left;transition:background .12s ease}.control-section-header:hover{background:var(--bg-control)}.control-section-left{display:flex;align-items:center;gap:8px;min-width:0}.control-section-icon{display:flex;align-items:center;color:var(--accent);flex-shrink:0}.control-section-icon svg{width:15px;height:15px}.control-section-title{font-size:10px;font-weight:700;letter-spacing:1.3px;color:var(--text-muted)}.control-section-dot{width:6px;height:6px;border-radius:50%;background:var(--text-dim);flex-shrink:0}.control-section-dot.active{background:var(--accent)}.control-section-chevron{display:flex;color:var(--text-dim);transition:transform .15s ease}.control-section-chevron.open{transform:rotate(180deg)}.control-section-body{padding:4px 12px 12px;border-top:1px solid var(--border-subtle)}.control-section-body.collapsed{display:none}.subsection-label{font-size:9.5px;font-weight:700;letter-spacing:1.1px;text-transform:uppercase;color:var(--accent);margin:12px 0 8px;padding-bottom:4px;border-bottom:1px solid var(--border-subtle)}.subsection-label:first-child{margin-top:4px}.settings-hint{font-size:11px;line-height:1.45;color:var(--text-dim, #9aa0a6);margin:4px 0 8px}.kv-row{display:flex;justify-content:space-between;align-items:center;font-size:12px;padding:4px 0}.tile-chip-grid{display:flex;flex-wrap:wrap;gap:6px}.tile-chip-grid .action-btn{margin-top:0;flex:0 0 auto}.section-hint{font-size:11px;color:var(--text-dim);line-height:1.5;padding:4px 0}.section-hint.warning{color:var(--warning, #e8a84a)}.water-mode-banner{display:flex;flex-direction:column;gap:2px;padding:10px 12px;margin-bottom:10px;border-radius:6px;border:1px solid var(--border-subtle);background:var(--panel-elevated, rgba(255, 255, 255, .03))}.water-mode-banner.legacy{border-color:#64a0dc59}.water-mode-banner.realistic{border-color:#3cc8b466}.water-mode-banner-label{font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--text-dim)}.water-mode-banner-value{font-size:14px;font-weight:600;color:var(--text)}.panel-reset-footer{margin-top:16px;padding-top:14px;border-top:1px solid var(--border-subtle)}.panel-reset-btn{width:100%;justify-content:center}#main{position:relative;flex:1;overflow:hidden;min-height:0}.viewport-area{position:relative;flex:1 1 auto;min-width:0;min-height:0;background:var(--bg-main);overflow:hidden;border-radius:18px;border:1px solid var(--glass-border);box-shadow:0 18px 50px #00000061}#viewport{position:absolute;inset:0;width:100%;height:100%;display:block}#viewport.viewport-disabled{visibility:hidden}.webgl-error-overlay{position:absolute;inset:0;z-index:20;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:24px;text-align:center;background:#0e090cf7;color:var(--text-main)}.webgl-error-overlay h2{margin:0;font-size:18px;font-weight:600}.webgl-error-overlay p{margin:0;max-width:420px;font-size:13px;line-height:1.5;color:#a8b0c0}.webgl-error-hint{font-size:12px!important;color:#7a8498!important}.webgl-error-overlay button{margin-top:8px;padding:8px 18px;border:1px solid #3a4560;border-radius:6px;background:#1a2233;color:#e8ecf4;font-size:13px;cursor:var(--cursor-pointer)}.webgl-error-overlay button:hover{background:#243048}.glb-drop-zone{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;padding:20px 14px;border:1.5px dashed var(--border-active);border-radius:var(--radius-md);background:var(--accent-bg);cursor:pointer;transition:background .15s,border-color .15s;text-align:center;user-select:none}.glb-drop-zone:hover,.glb-drop-zone--over{background:color-mix(in srgb,var(--accent) 14%,transparent);border-color:var(--accent)}.glb-drop-icon{color:var(--accent);margin-bottom:2px}.glb-drop-label{font-size:12px;color:var(--text-main)}.glb-drop-sub{font-size:11px;color:var(--text-muted)}.glb-load-error{color:var(--danger)}.glb-object-list{display:flex;flex-direction:column;gap:8px;margin-top:12px}.glb-object-row{border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--bg-control);padding:10px;display:flex;flex-direction:column;gap:8px}.glb-object-header{display:flex;align-items:center;gap:7px}.glb-object-icon{color:var(--accent);flex-shrink:0}.glb-object-name{flex:1;font-size:12px;font-weight:600;color:var(--text-main);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.glb-remove-btn{margin-left:auto;flex-shrink:0}.glb-object-transforms{display:flex;flex-direction:column;gap:6px}.glb-xyz-row,.glb-rot-scale-row{display:flex;gap:6px}.num-field-wrap{display:flex;flex-direction:column;gap:2px;flex:1}.num-field-label{font-size:10px;color:var(--text-muted);letter-spacing:.03em;text-transform:uppercase}.num-field-input{width:100%;background:var(--bg-panel);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);color:var(--text-main);font-size:11.5px;padding:3px 6px;text-align:right;-moz-appearance:textfield}.num-field-input::-webkit-outer-spin-button,.num-field-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.num-field-input:focus{outline:none;border-color:var(--border-active)}.panel{background:var(--bg-panel-soft);border:1px solid var(--border-subtle);border-radius:var(--radius-md);box-shadow:var(--shadow-panel);overflow:hidden}.panel-header{display:flex;align-items:center;justify-content:space-between;padding:9px 12px;font-size:10.5px;font-weight:700;letter-spacing:1.2px;color:var(--text-muted);background:var(--bg-panel-soft);border-bottom:1px solid var(--border-subtle)}.collapse-btn{background:none;border:none;color:var(--text-dim);cursor:var(--cursor-pointer);font-size:14px;line-height:1;padding:2px 6px;border-radius:4px}.collapse-btn:hover{background:var(--bg-control);color:var(--text-main)}.panel-body{padding:10px 12px}.panel-body.collapsed{display:none}.row{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}.row label{color:var(--text-muted);font-size:12.5px;flex:1}.row input[type=number],.row input[type=text],.row select{width:104px;height:var(--ctl-h);padding:0 9px;background:var(--bg-control);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);color:var(--text-main);font-family:var(--mono);font-size:12px;outline:none}.row input:focus,.row select:focus{border-color:var(--border-active)}.row input[readonly]{color:var(--text-muted)}.row select{font-family:var(--font);cursor:var(--cursor-pointer)}.row select option{background:var(--bg-panel-soft)}.field-label{display:block;font-size:12.5px;color:var(--text-muted);margin-bottom:6px}.ctl{margin-bottom:13px}.ctl-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}.ctl-top label{color:var(--text-muted);font-size:12.5px}.ctl-val{width:72px;height:26px;text-align:right;padding:0 8px;background:var(--bg-control);border:1px solid var(--border-subtle);border-radius:6px;color:var(--text-main);font-family:var(--mono);font-size:11.5px;outline:none}.ctl-val:focus{border-color:var(--border-active)}.slider-track-wrap{position:relative;height:24px;display:flex;align-items:center}.slider-track-bg{position:absolute;left:0;right:0;height:4px;background:var(--bg-control);border-radius:3px;pointer-events:none}.slider-track-fill{position:absolute;left:0;height:4px;background:var(--accent);border-radius:3px;pointer-events:none}.slider-input{-webkit-appearance:none;appearance:none;position:relative;z-index:1;width:100%;height:24px;background:transparent;cursor:var(--cursor-pointer);margin:0}.slider-input::-webkit-slider-runnable-track{height:4px;background:transparent}.slider-input::-webkit-slider-thumb{-webkit-appearance:none;width:16px;height:16px;margin-top:-6px;border-radius:50%;background:var(--thumb);border:2px solid var(--accent);box-shadow:0 1px 4px #00000073}.slider-input::-moz-range-track{height:4px;background:transparent}.slider-input::-moz-range-thumb{width:14px;height:14px;border-radius:50%;background:var(--thumb);border:2px solid var(--accent)}.toggle-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:11px}.toggle-row label{color:var(--text-muted);font-size:12.5px}.toggle{position:relative;width:44px;height:24px;border-radius:999px;background:var(--bg-control);border:1px solid var(--border-subtle);cursor:var(--cursor-pointer);transition:background .15s ease}.toggle:after{content:"";position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:50%;background:var(--text-muted);transition:left .15s ease,background .15s ease}.toggle.on{background:var(--accent);border-color:var(--accent)}.toggle.on:after{left:23px;background:#fff}.action-btn,.wide-btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;height:var(--ctl-h-md);margin-top:6px;background:var(--bg-control);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);color:var(--text-main);font-family:var(--font);font-size:13px;font-weight:500;cursor:var(--cursor-pointer);transition:background .12s ease,border-color .12s ease}.action-btn:hover,.wide-btn:hover{background:#17233c;border-color:#96b9ff2e}.action-btn.primary,.wide-btn.primary{background:var(--accent-bg);border-color:var(--border-active);color:var(--accent)}.action-btn.primary:hover,.wide-btn.primary:hover{background:var(--accent-bg-strong)}.action-btn svg,.wide-btn svg{width:var(--icon-sm);height:var(--icon-sm)}.tb-btn.tb-play,.action-btn.play-skybringer{background:linear-gradient(180deg,#ffd9a0,#ffb454 52%,#ec9636);border:1px solid #ffe1ad;color:#1b1206;font-family:var(--font-display);font-weight:700;letter-spacing:1.2px;text-transform:uppercase;box-shadow:0 0 0 1px #ffcf984d,0 4px 18px #ff963a57;animation:sbPlayPulse 2.6s ease-in-out infinite}.tb-btn.tb-play{height:38px;padding:0 20px;font-size:12.5px}.action-btn.play-skybringer{height:46px;font-size:14px;margin-top:0}.tb-btn.tb-play:hover,.action-btn.play-skybringer:hover{background:linear-gradient(180deg,#ffe6b8,#ffc061 52%,#f2a344);border-color:#fff0d2;box-shadow:0 0 0 1px #ffe1ad80,0 6px 26px #ffa04280}.tb-btn.tb-play:disabled,.action-btn.play-skybringer:disabled{background:var(--bg-control);color:var(--text-dim);border-color:var(--border-subtle);box-shadow:none;animation:none;cursor:default}.tb-btn.tb-play svg,.action-btn.play-skybringer svg{width:15px;height:15px}@keyframes sbPlayPulse{0%,to{box-shadow:0 0 0 1px #ffcf9847,0 4px 16px #ff963a47}50%{box-shadow:0 0 0 1px #ffcf9870,0 6px 26px #ff963a80}}.action-btn.play-vsight{height:46px;margin-top:0;background:#7fb8ff1f;border:1px solid rgba(127,184,255,.45);color:#a8cdff;font-family:var(--font-display);font-weight:700;font-size:14px;letter-spacing:1.2px;text-transform:uppercase}.action-btn.play-vsight:hover{background:#7fb8ff33;border-color:#a8cdff}.action-btn.play-vsight:disabled{background:var(--bg-control);color:var(--text-dim);border-color:var(--border-subtle);cursor:default}.tb-play-menu{left:auto;right:0}.icon-btn{display:flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:var(--radius-sm);background:var(--bg-control);border:1px solid var(--border-subtle);color:var(--text-muted);cursor:var(--cursor-pointer);flex-shrink:0}.icon-btn:hover{color:var(--accent);border-color:var(--border-active)}.icon-btn svg{width:var(--icon-sm);height:var(--icon-sm)}.seed-row{margin-bottom:8px}.seed-input-wrap{display:flex;gap:8px}.seed-input-wrap input{flex:1;height:var(--ctl-h);padding:0 10px;background:var(--bg-control);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);color:var(--text-main);font-family:var(--mono);font-size:12px;outline:none}.seed-input-wrap input:focus{border-color:var(--border-active)}.color-field{display:flex;align-items:center;justify-content:space-between;margin-bottom:7px}.color-field label{font-size:12px;color:var(--text-muted)}.color-field input[type=color],input[type=color].palette-color-input{width:38px;height:26px;padding:0;border:1px solid var(--border-subtle);border-radius:6px;background:var(--bg-control);cursor:var(--cursor-pointer);pointer-events:auto}.palette-block{display:flex;flex-direction:column;gap:10px}.palette-preview-wrap{display:flex;align-items:center;gap:8px}.palette-preview{flex:1;height:22px;border-radius:var(--radius-sm);border:1px solid var(--border-subtle);box-shadow:inset 0 1px 3px #00000040}.palette-preview-hint{font-size:10px;color:var(--text-dim);font-family:var(--mono);white-space:nowrap}.palette-generator{padding:10px;border-radius:var(--radius-md);background:var(--bg-panel-soft);border:1px solid var(--border-subtle);display:flex;flex-direction:column;gap:8px}.palette-generator-head{display:flex;align-items:center;justify-content:space-between}.palette-generator-title{font-size:11px;font-weight:600;color:var(--text-main);letter-spacing:.3px}.palette-generator .seed-row{display:flex;flex-direction:column;gap:4px;margin-bottom:0}.palette-generator .seed-row>label{font-size:11px;color:var(--text-muted)}.palette-generate-btn{width:100%;justify-content:center;margin-top:2px}.palette-preset-row{margin-top:2px}.palette-groups{display:flex;flex-direction:column;gap:4px}.palette-group{border-radius:var(--radius-sm);border:1px solid var(--border-subtle);background:var(--bg-control);overflow:hidden}.palette-group-header{display:flex;align-items:center;gap:8px;width:100%;padding:7px 10px;background:transparent;border:none;color:var(--text-muted);font-family:var(--font);font-size:11px;cursor:var(--cursor-pointer);text-align:left;transition:background .12s ease,color .12s ease}.palette-group-header:hover{background:#c88ca012;color:var(--text-main)}.palette-group-dots{display:flex;gap:2px;flex-shrink:0}.palette-group-dot{width:10px;height:10px;border-radius:2px;border:1px solid rgba(0,0,0,.2)}.palette-group-label{flex:1;font-weight:500}.palette-group-chevron{display:flex;color:var(--text-dim);transition:transform .15s ease}.palette-group-chevron.open{transform:rotate(180deg)}.palette-group-body{padding:4px 6px 6px;border-top:1px solid var(--border-subtle);display:flex;flex-direction:column;gap:2px}.palette-color-row{display:flex;align-items:center;gap:8px;padding:5px 6px;border-radius:var(--radius-sm);cursor:var(--cursor-pointer);position:relative;transition:background .1s ease}.palette-color-row:hover{background:#c88ca017}.palette-color-chip{width:28px;height:22px;border-radius:5px;border:1px solid rgba(255,255,255,.12);box-shadow:inset 0 1px 2px #0003;flex-shrink:0}.palette-color-name{flex:1;font-size:11px;color:var(--text-muted)}.palette-color-row:hover .palette-color-name{color:var(--text-main)}.palette-color-input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:var(--cursor-pointer)}.palette-tuning{margin-top:2px}.palette-io{display:flex;gap:6px;margin-top:2px}.palette-io .action-btn{flex:1;justify-content:center}.planet-preset-block{margin-bottom:4px}.stat-row{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:7px;font-size:12px}.stat-label{color:var(--text-muted);flex-shrink:0}.stat-value{color:var(--text-main);text-align:right}.stat-value.stat-mono{font-family:var(--mono);font-size:11px}.stat-value.stat-truncate{max-width:130px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.stat-fps{padding:1px 8px;border-radius:4px;background:#34d39924;color:var(--success);border:1px solid rgba(52,211,153,.3);font-family:var(--mono);font-size:11px}.stat-fps.low{background:#f5a52424;color:var(--warning);border-color:#f5a5244d}#help-card{position:absolute;top:16px;left:16px;z-index:5;background:var(--bg-panel);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:14px 18px;display:flex;flex-direction:column;gap:12px;box-shadow:var(--shadow-panel);transition:opacity .4s ease}#help-card.hidden{opacity:0;pointer-events:none}.help-row{display:flex;align-items:center;gap:10px;color:var(--text-muted);font-size:12px}.help-ic{font-size:14px;width:18px;text-align:center}.lod-row{display:flex;align-items:center;gap:8px;margin-bottom:7px;font-size:12px}.lod-dot{width:9px;height:9px;border-radius:2.5px;flex:0 0 9px}.lod-name{color:var(--text-main);flex:1}.lod-count{color:var(--text-muted);font-family:var(--mono);font-size:11px}.lod-summary{display:flex;align-items:center;gap:14px;margin-top:10px;padding-top:10px;border-top:1px solid var(--border-subtle)}.lod-donut{width:60px;height:60px}.lod-total-num{font-size:22px;font-weight:700;color:var(--text-bright);font-family:var(--mono)}.lod-total-label{font-size:10.5px;color:var(--text-muted);line-height:1.45}.lod-grid-label{display:block;color:var(--text-dim);font-family:var(--mono);font-size:10px}.minimap-wrap{position:relative;width:100%;aspect-ratio:1;border-radius:var(--radius-sm);overflow:hidden;border:1px solid var(--border-subtle);background:var(--bg-main);cursor:var(--cursor-crosshair)}.minimap-wrap canvas{position:absolute;inset:0;width:100%;height:100%}.minimap-caption{font-size:10.5px;color:var(--text-dim);font-family:var(--mono)}.minimap-meta{display:flex;flex-direction:column;gap:6px}.minimap-caption{display:flex;justify-content:space-between;gap:10px}.minimap-hover-info{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 10px;padding:8px 9px;border-radius:8px;background:#120a0fa6;border:1px solid rgba(150,185,255,.07);color:var(--text);font-size:10px;font-family:var(--mono)}.minimap-hover-info.empty{grid-template-columns:1fr;color:var(--text-dim)}.minimap-toolbar,.minimap-header-actions{display:flex;align-items:center;gap:6px}.minimap-toolbar{justify-content:space-between}.minimap-segmented,.minimap-zoom-group,.minimap-mode-grid{display:flex;flex-wrap:wrap;gap:6px}.minimap-zoom-group{align-items:center}.minimap-zoom-value{min-width:26px;text-align:center;font-size:10px;color:var(--text-dim);font-family:var(--mono)}.minimap-chip{min-height:28px;height:28px;padding:0 10px;border-radius:999px;font-size:10px;white-space:nowrap}.minimap-chip.tb-btn{gap:0}.minimap-chip.active{background:var(--accent-bg);color:var(--accent);border-color:var(--border-active)}.viewport-camera-bar{position:absolute;bottom:18px;left:50%;transform:translate(-50%);z-index:10;display:flex;gap:2px;padding:4px;background:var(--glass-bg);backdrop-filter:blur(16px) saturate(1.4);-webkit-backdrop-filter:blur(16px) saturate(1.4);border:1px solid var(--glass-border);border-radius:999px;box-shadow:var(--shadow-panel)}.camera-bar-btn{display:flex;align-items:center;gap:7px;height:32px;padding:0 14px;border-radius:999px;background:transparent;border:1px solid transparent;color:var(--text-muted);font-family:var(--font);font-size:12px;cursor:var(--cursor-pointer);transition:background .12s ease,color .12s ease,border-color .12s ease}.camera-bar-btn svg{width:14px;height:14px}.camera-bar-btn .camera-bar-label{white-space:nowrap}.camera-bar-btn:hover{background:var(--bg-control);color:var(--text-main)}.camera-bar-btn.active{background:var(--accent-bg);color:var(--accent);border-color:var(--border-active)}.explore-menu-wrap{position:relative;display:flex}.explore-menu-trigger .explore-chevron{width:12px;height:12px;opacity:.7;transition:transform .15s ease}.explore-menu-trigger .explore-chevron.open{transform:rotate(180deg)}.explore-menu{position:fixed;transform:translate(-50%);z-index:1000;min-width:118px;padding:4px;border-radius:10px;background:var(--bg-panel);border:1px solid var(--border-subtle);box-shadow:var(--shadow-panel)}.explore-menu-item{display:flex;align-items:center;width:100%;height:30px;padding:0 10px;border:1px solid transparent;border-radius:7px;background:transparent;color:var(--text-muted);font-family:var(--font);font-size:12px;cursor:var(--cursor-pointer)}.explore-menu-item:hover{background:var(--bg-control);color:var(--text-main)}.explore-menu-item.active{background:var(--accent-bg);color:var(--accent);border-color:var(--border-active)}#bottom-toolbar{display:none}#statusbar{display:flex;align-items:center;justify-content:space-between;height:28px;flex:0 0 28px;padding:0 26px 6px;background:transparent;border-top:none;font-size:11px;color:var(--text-dim);font-family:var(--mono);z-index:30}.sb-group{display:flex;align-items:center;gap:10px}.sb-sep{width:1px;height:12px;background:#96b9ff1f}.sb-github-link{display:flex;align-items:center;color:var(--text-muted);opacity:.65;transition:color .15s,opacity .15s}.sb-github-link:hover{color:var(--text);opacity:1}.sb-github-link svg{width:14px;height:14px}.status-dot{width:7px;height:7px;border-radius:50%;background:var(--success)}.status-dot.busy{background:var(--warning)}.fps-badge{padding:1px 8px;border-radius:4px;background:#34d39924;color:var(--success);border:1px solid rgba(52,211,153,.3);font-family:var(--mono);font-size:inherit;line-height:inherit}.fps-badge.low{background:#f5a52424;color:var(--warning);border-color:#f5a5244d}.fps-badge-btn{cursor:var(--cursor-pointer);transition:background .15s,border-color .15s,color .15s,box-shadow .15s}.fps-badge-btn:hover{background:#34d39938;border-color:#34d39980;box-shadow:0 0 0 1px #34d39914}.fps-badge-btn.low:hover{background:#f5a52438;border-color:#f5a52480;box-shadow:0 0 0 1px #f5a52414}.fps-badge-btn.is-open{background:var(--accent-bg);border-color:var(--accent);color:var(--accent);box-shadow:0 0 0 1px var(--accent-bg)}.fps-badge-btn.is-open.low{color:var(--warning);border-color:var(--warning);background:#f59e0b29}.modal{position:fixed;inset:0;z-index:100;background:#040812b8;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center}.modal.hidden{display:none}.modal-card{width:420px;max-height:80vh;overflow-y:auto;background:var(--bg-panel);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:0 12px 40px #00000080}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;font-weight:600;font-size:13.5px;color:var(--text-bright);border-bottom:1px solid var(--border-subtle);background:var(--bg-panel-soft)}.modal-header button{background:none;border:none;color:var(--text-muted);cursor:var(--cursor-pointer);font-size:13px}.modal-header button:hover{color:var(--text-main)}.modal-body{padding:16px 18px}.settings-modal-card{display:flex;flex-direction:column;width:min(780px,94vw);max-height:86vh;background:var(--bg-panel);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:0 16px 48px #0000008c;overflow:hidden}.settings-modal-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;background:var(--bg-panel-soft);border-bottom:1px solid var(--border-subtle);flex-shrink:0}.settings-modal-title{display:flex;align-items:center;gap:10px;font-weight:700;font-size:14px;letter-spacing:.06em;text-transform:uppercase;color:var(--text-bright)}.settings-modal-title svg{color:var(--accent)}.settings-modal-close{display:flex;align-items:center;justify-content:center;width:30px;height:30px;border:1px solid var(--border-subtle);border-radius:var(--radius-sm);background:var(--bg-control);color:var(--text-muted);cursor:var(--cursor-pointer);transition:background .12s ease,color .12s ease,border-color .12s ease}.settings-modal-close:hover{background:var(--bg-panel-soft);color:var(--text-main);border-color:var(--border-active)}.settings-modal-toolbar{padding:12px 20px;border-bottom:1px solid var(--border-subtle);background:var(--bg-panel);flex-shrink:0}.settings-search-wrap{display:flex;align-items:center;gap:10px;padding:0 12px;height:36px;background:var(--bg-control);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);transition:border-color .12s ease}.settings-search-wrap:focus-within{border-color:var(--border-active)}.settings-search-wrap svg{color:var(--text-dim);flex-shrink:0}.settings-search-input{flex:1;height:100%;border:none;background:transparent;color:var(--text-main);font-family:var(--font);font-size:13px;outline:none;appearance:none;-webkit-appearance:none}.settings-search-input::-webkit-search-cancel-button,.settings-search-input::-webkit-search-decoration{-webkit-appearance:none;appearance:none}.settings-search-input::placeholder{color:var(--text-dim)}.settings-search-clear{background:none;border:none;color:var(--text-dim);cursor:var(--cursor-pointer);font-size:12px;padding:2px 4px;border-radius:3px}.settings-search-clear:hover{color:var(--text-main);background:var(--bg-panel-soft)}.settings-tabs{display:flex;gap:4px;padding:10px 20px 0;background:var(--bg-panel);border-bottom:1px solid var(--border-subtle);flex-shrink:0;overflow-x:auto}.settings-tabs::-webkit-scrollbar{height:0}.settings-tab{height:34px;padding:0 14px;border:1px solid transparent;border-bottom:none;border-radius:var(--radius-sm) var(--radius-sm) 0 0;background:transparent;color:var(--text-muted);font-family:var(--font);font-size:12px;font-weight:600;letter-spacing:.04em;cursor:var(--cursor-pointer);white-space:nowrap;transition:background .12s ease,color .12s ease,border-color .12s ease;margin-bottom:-1px}.settings-tab:hover{background:var(--bg-control);color:var(--text-main)}.settings-tab.active{background:var(--bg-panel-soft);color:var(--accent);border-color:var(--border-subtle);border-bottom-color:var(--bg-panel-soft)}.settings-modal-body{flex:1;overflow-y:auto;padding:18px 20px 22px;background:var(--bg-panel-soft);min-height:0}.settings-modal-body::-webkit-scrollbar{width:8px}.settings-modal-body::-webkit-scrollbar-thumb{background:#ffffff14;border-radius:4px}.settings-tab-panel,.settings-search-results{display:flex;flex-direction:column;gap:4px;max-width:680px}.settings-field{padding:10px 12px;background:var(--bg-panel);border:1px solid var(--border-subtle);border-radius:var(--radius-sm)}.settings-field .ctl,.settings-field .row,.settings-field .toggle-row{margin-bottom:0}.settings-field-tab{display:inline-block;font-size:9px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--accent);background:var(--accent-bg);border:1px solid var(--border-subtle);border-radius:3px;padding:2px 6px;margin-bottom:8px}.settings-note{font-size:11.5px;color:var(--text-muted);padding:8px 12px;background:var(--bg-panel);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);font-family:var(--mono)}.gpu-renderer-section{display:flex;flex-direction:column;gap:10px}.gpu-renderer-section .subsection-label{margin-top:0}.gpu-renderer-section .row,.gpu-renderer-section .toggle-row{gap:14px;min-height:30px}.gpu-renderer-section .row select{width:128px;min-width:128px}.gpu-renderer-section .label-with-icon{min-width:0}.gpu-cap-list{display:flex;flex-direction:column;gap:6px;padding:10px 12px;background:var(--bg-panel-soft);border:1px solid var(--border-subtle);border-radius:var(--radius-sm)}.gpu-cap-row{display:flex;align-items:baseline;justify-content:space-between;gap:14px;min-width:0;font-size:11.5px;color:var(--text-muted)}.gpu-cap-row strong{min-width:0;max-width:58%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-main);font-family:var(--mono);font-size:11px;font-weight:600;text-align:right}.gpu-apply-row{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:8px;padding:8px 10px;color:var(--warning);background:#f5a52414;border:1px solid rgba(245,165,36,.3);border-radius:var(--radius-sm);font-size:11.5px}.gpu-apply-row span{width:100%;line-height:1.35}.gpu-apply-btn{width:100%;flex:0 0 auto;margin-top:0;padding:5px 8px;font-size:11px;color:var(--warning);background:#f5a5241a;border-color:#f5a52459}.gpu-footnote{margin:0;color:var(--text-dim);font-size:11px;line-height:1.35}.settings-search-hint{font-size:10px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--text-dim);margin-bottom:8px}.settings-search-overlay{position:absolute;inset:0;z-index:26;pointer-events:none;display:none}.settings-search-overlay.open{display:block}.settings-search-backdrop{position:absolute;inset:0;border:0;background:transparent;pointer-events:auto}.settings-search-shell{position:absolute;top:clamp(28px,7vh,72px);left:50%;transform:translate(-50%);width:min(500px,calc(100vw - 40px));display:flex;flex-direction:column;gap:8px;pointer-events:auto}.settings-search-wrap-global{width:100%;padding:10px 12px;background:#0b1221f5;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);box-shadow:0 16px 30px #00000073;border:1px solid var(--border-subtle);border-radius:var(--radius-md)}.settings-search-wrap-global .settings-search-input{flex:1;width:auto;min-width:0;height:30px}.settings-search-results-panel{padding:10px;background:var(--bg-panel-soft);border:1px solid var(--border-subtle);border-radius:var(--radius-md);box-shadow:0 18px 32px #0000005c;max-height:min(42vh,360px);overflow:auto;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.15) transparent}.settings-search-results-panel::-webkit-scrollbar{width:8px}.settings-search-results-panel::-webkit-scrollbar-thumb{background:#ffffff1f;border-radius:999px}.settings-search-hint-row{display:flex;justify-content:space-between;gap:12px;margin-bottom:10px;font-size:11px;color:var(--text-dim)}.settings-search-shortcut{font-family:var(--mono);color:var(--accent);white-space:nowrap}.settings-search-results{display:flex;flex-direction:column;gap:10px;max-width:none}.settings-search-group{display:flex;flex-direction:column;gap:6px}.settings-search-group-title{display:flex;justify-content:space-between;gap:8px;font-size:10.5px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted);padding:0 2px}.settings-search-group-title-btn{width:100%;border:none;background:transparent;cursor:var(--cursor-pointer);font-family:inherit;text-align:left;transition:color .12s ease}.settings-search-group-title-btn:hover{color:var(--text-main)}.settings-search-group-body{display:flex;flex-direction:column;gap:6px}.settings-search-item{display:flex;flex-direction:column;width:100%;padding:0;border:1px solid var(--border-subtle);border-radius:var(--radius-sm);background:var(--bg-control);color:var(--text-main);cursor:var(--cursor-pointer);text-align:left;transition:background .12s ease,border-color .12s ease,transform .12s ease,box-shadow .12s ease;overflow:hidden}.settings-search-item:hover,.settings-search-item.active{background:var(--accent-bg);border-color:var(--border-active);box-shadow:0 0 0 1px #ffc06a1f inset}.settings-search-item-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:9px 12px}.settings-search-item-copy{display:flex;flex-direction:column;gap:4px;min-width:0;flex:1}.settings-search-item-label{font-size:12.5px;font-weight:600;color:var(--text-bright);line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.settings-search-item-meta{display:flex;gap:8px;align-items:center;flex-wrap:wrap;font-size:10px;color:var(--text-dim);text-transform:uppercase;letter-spacing:.08em}.settings-search-item-meta span+span:before{content:"·";margin-right:8px;color:var(--text-dim)}.settings-search-item-value{flex-shrink:0;min-width:68px;max-width:128px;padding:5px 9px;border-radius:999px;border:1px solid var(--border-subtle);background:var(--bg-control);color:var(--accent);font-family:var(--mono);font-size:10.5px;text-align:right;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.settings-search-empty{padding:18px 8px 6px;color:var(--text-dim);font-size:12px}.settings-empty{color:var(--text-muted);font-size:13px;padding:24px 0;text-align:center}.settings-field .perf-reset-btn{margin-top:0}.settings-section-title{font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--accent);margin:14px 0 10px;padding-bottom:5px;border-bottom:1px solid var(--border-subtle)}.settings-section-title:first-child{margin-top:0}.settings-subtitle{font-size:11.5px;font-weight:600;color:var(--text-main);margin:12px 0 8px}.perf-note{font-size:11px;color:var(--text-muted);margin:-2px 0 10px;font-style:italic}.lod-multi-val{pointer-events:none}.lod-multi-track{position:relative;height:26px;margin:4px 6px 12px;border-radius:3px}.lod-multi-track:before{content:"";position:absolute;left:0;right:0;top:11px;height:4px;background:var(--bg-control);border-radius:2px}.lod-multi-thumb{position:absolute;top:4px;width:18px;height:18px;margin-left:-9px;border-radius:50%;background:var(--bg-panel-soft);border:2px solid var(--accent);cursor:var(--cursor-grab);touch-action:none;z-index:1}.lod-multi-thumb:hover{background:var(--accent-bg)}.lod-multi-thumb:active{cursor:var(--cursor-grabbing);background:var(--accent-bg-strong)}.lod-multi-tag{position:absolute;top:17px;left:50%;transform:translate(-50%);font-size:9px;color:var(--text-muted);pointer-events:none}.perf-reset-btn{width:100%;margin-top:12px;padding:8px 0;background:#f5a52414;color:var(--warning);border:1px solid rgba(245,165,36,.3);border-radius:var(--radius-sm);font-family:var(--font);font-size:12px;cursor:var(--cursor-pointer)}.perf-reset-btn:hover{background:#f5a52429}.settings-field .action-btn.perf-reset-btn{background:#f5a52414;color:var(--warning);border-color:#f5a5244d}.settings-field .action-btn.perf-reset-btn:hover{background:#f5a52429}.perf-estimate{margin-top:12px;padding:7px 10px;font-size:11.5px;color:var(--text-muted);background:var(--accent-bg);border:1px solid var(--border-subtle);border-radius:7px}.setting-target-flash{animation:setting-target-flash 1.05s ease;box-shadow:0 0 0 1px var(--border-active),0 0 0 4px #2563eb24;border-color:var(--border-active)!important}@keyframes setting-target-flash{0%{background:var(--accent-bg-strong)}60%{background:var(--accent-bg)}to{background:inherit}}.toast-container{position:fixed;bottom:40px;left:50%;transform:translate(-50%);z-index:300;display:flex;flex-direction:column;align-items:center;gap:8px;pointer-events:none}.toast{display:flex;align-items:center;gap:9px;min-width:220px;max-width:360px;padding:9px 14px;background:var(--bg-panel);border:1px solid var(--border-subtle);border-left-width:3px;border-radius:var(--radius-sm);color:var(--text-main);font-size:12.5px;box-shadow:var(--shadow-panel);animation:toast-in .22s cubic-bezier(.16,1,.3,1)}.toast-icon{display:flex;flex-shrink:0}.toast-msg{line-height:1.35}.toast-info{border-left-color:var(--accent)}.toast-info .toast-icon{color:var(--accent)}.toast-success{border-left-color:var(--success)}.toast-success .toast-icon{color:var(--success)}.toast-error{border-left-color:var(--danger)}.toast-error .toast-icon{color:var(--danger)}@keyframes toast-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.loading-overlay{position:absolute;inset:0;z-index:40;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;background:#0505059e;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px)}.loading-card{display:flex;align-items:center;gap:14px;min-width:280px;max-width:80%;padding:16px 18px;background:var(--bg-panel);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-panel)}.loading-card-spinner{display:flex;flex-shrink:0}.loading-card-spinner svg{animation:tb-spin .8s linear infinite}.loading-card-text{flex:1;min-width:0}.loading-card-title{font-size:13.5px;font-weight:700;color:var(--text-bright)}.loading-card-detail{margin-top:3px;font-size:11.5px;color:var(--text-muted)}.loading-card-pct{font-family:var(--mono);font-size:14px;font-weight:700;color:var(--accent)}.loading-card-barwrap{width:min(360px,70%)}.loading-bar{height:4px;border-radius:2px;background:var(--bg-control);overflow:hidden}.loading-bar-fill{height:100%;background:var(--accent);border-radius:2px}.loading-bar-fill.indeterminate{width:38%;animation:loading-slide 1.1s ease-in-out infinite}@keyframes loading-slide{0%{margin-left:-40%}to{margin-left:100%}}#app.infinite-mode .app-shell{padding:0;gap:0}#app.infinite-mode .viewport-area{border-radius:0;border:none;box-shadow:none}#app.infinite-mode #topbar{margin:0;border-radius:0;border:none;border-bottom:1px solid var(--border-subtle);box-shadow:none}#app.infinite-mode #statusbar{padding:0 14px;height:26px;flex-basis:26px}#app.preview-mode .left-toolbar,#app.preview-mode .side-drawer,#app.preview-mode #help-card,#app.preview-mode .viewport-camera-bar,#app.preview-mode .viewport-mode-bar{display:none}.infinite-mode .left-toolbar,.infinite-mode .side-drawer,.infinite-mode #help-card,.infinite-mode .viewport-camera-bar{display:none!important}#fps-crosshair{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:15;pointer-events:none;opacity:.7}#fps-info{position:absolute;top:18px;left:18px;z-index:12;background:var(--bg-panel);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:12px 16px;min-width:180px;box-shadow:var(--shadow-panel);display:none}.infinite-mode #fps-info{display:block}.fps-info-row{display:flex;justify-content:space-between;gap:16px;margin-bottom:5px;font-size:11px}.fps-info-row:last-child{margin-bottom:0}.fps-info-label{color:var(--accent);font-weight:700;letter-spacing:1px;font-size:10px;font-family:var(--mono)}.fps-info-val{color:var(--text-main);font-family:var(--mono);font-size:11px}#fps-speed-bar{position:absolute;bottom:22px;left:50%;transform:translate(-50%);z-index:15;display:none;align-items:center;gap:8px;background:var(--bg-panel);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:8px 18px;box-shadow:var(--shadow-panel);font-family:var(--mono);font-size:12px;color:var(--text-main)}.infinite-mode #fps-speed-bar{display:flex}#fps-speed-bar svg{color:var(--accent)}.fps-speed-hint{color:var(--text-dim);font-size:10px;font-family:var(--font);margin-left:6px}#fps-controls-hint{position:absolute;bottom:22px;left:18px;z-index:15;display:none;font-size:11px;color:var(--text-dim);background:var(--bg-panel);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);padding:8px 14px;box-shadow:var(--shadow-panel)}.infinite-mode #fps-controls-hint{display:block}#fps-controls-hint span{color:var(--accent);font-family:var(--mono);font-weight:600;font-size:10.5px;letter-spacing:.5px}#fps-return-btn{position:absolute;top:18px;right:18px;z-index:15;display:none;align-items:center;gap:7px;height:34px;padding:0 16px;border-radius:var(--radius-sm);background:var(--accent-bg);border:1px solid var(--border-active);color:var(--accent);font-family:var(--font);font-size:12.5px;cursor:var(--cursor-pointer);transition:background .15s ease;box-shadow:var(--shadow-panel)}.infinite-mode #fps-return-btn{display:flex}#fps-return-btn:hover{background:var(--accent-bg-strong)}#fps-return-btn svg{width:14px;height:14px}#fps-settings-panel{position:absolute;top:18px;right:18px;z-index:12;display:none;background:var(--bg-panel);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:14px 16px;min-width:200px;box-shadow:var(--shadow-panel)}.infinite-mode #fps-settings-panel{display:block}.fps-setting-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px;font-size:11.5px}.fps-setting-row:last-child{margin-bottom:0}.fps-setting-label{color:var(--text-muted);font-size:11px;font-weight:600;letter-spacing:.5px}.fps-setting-value{color:var(--accent);font-family:var(--mono);font-size:11px;font-weight:600}.fps-planet-actions{display:flex;gap:6px;margin:4px 0 8px}.fps-mini-btn{flex:1;height:24px;font-size:10px;background:var(--bg-control);border:1px solid var(--border-subtle);border-radius:4px;color:var(--text-muted);cursor:var(--cursor-pointer)}.fps-mini-btn:hover{color:var(--text-main);border-color:var(--border-active)}.fps-select{height:24px;padding:0 8px;background:var(--bg-control);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);color:var(--text-main);font-family:var(--font);font-size:11px;cursor:var(--cursor-pointer);outline:none}.fps-select:focus{border-color:var(--border-active)}.fps-select option{background:var(--bg-panel-soft)}.fps-explore-select{display:flex;align-items:center;gap:3px;padding:3px;border-radius:999px;background:var(--bg-control);border:1px solid var(--border-subtle)}.fps-explore-option{display:flex;align-items:center;gap:4px;height:24px;padding:0 8px;border:1px solid transparent;border-radius:999px;background:transparent;color:var(--text-muted);font-family:var(--font);font-size:10.5px;cursor:var(--cursor-pointer)}.fps-explore-option:hover{color:var(--text-main)}.fps-explore-option.active{color:var(--accent);background:var(--accent-bg);border-color:var(--border-active)}.fps-slider{-webkit-appearance:none;appearance:none;width:100%;height:20px;background:transparent;cursor:var(--cursor-pointer);margin-bottom:8px}.fps-slider::-webkit-slider-runnable-track{height:4px;border-radius:3px;background:var(--bg-control)}.fps-slider::-webkit-slider-thumb{-webkit-appearance:none;width:16px;height:16px;margin-top:-6px;border-radius:50%;background:var(--thumb);border:2px solid var(--accent);box-shadow:0 1px 4px #00000073}.fps-slider::-moz-range-track{height:4px;border-radius:3px;background:var(--bg-control)}.fps-slider::-moz-range-thumb{width:14px;height:14px;border-radius:50%;background:var(--thumb);border:2px solid var(--accent)}.fps-info-dim{color:var(--text-dim);font-size:10px}.fps-info-culled{color:var(--warning)}#fps-perf-window{position:absolute;right:18px;bottom:18px;z-index:12;display:none;flex-direction:column;width:320px;max-width:calc(100vw - 36px);background:var(--bg-panel);border:1px solid var(--border-subtle);border-radius:var(--radius-md);box-shadow:var(--shadow-panel);overflow:hidden}.infinite-mode #fps-perf-window{display:flex}.fps-perf-header{display:flex;align-items:center;gap:8px;width:100%;padding:10px 12px;background:transparent;border:none;color:var(--text-muted);font-family:var(--font);font-size:11px;font-weight:600;letter-spacing:.5px;text-transform:uppercase;cursor:var(--cursor-pointer)}.fps-perf-header:hover{color:var(--text-main)}.fps-perf-title{flex:1;text-align:left}.fps-perf-chevron{transition:transform .15s ease;opacity:.7}#fps-perf-window.open .fps-perf-chevron{transform:rotate(180deg)}.fps-perf-body{border-top:1px solid var(--border-subtle);padding:12px;max-height:min(60vh,520px);overflow-y:auto}.fps-mobile-dock{display:none;position:absolute;bottom:calc(12px + env(safe-area-inset-bottom));left:50%;transform:translate(-50%);z-index:14;align-items:center;gap:2px;padding:4px;background:var(--bg-panel);border:1px solid var(--border-subtle);border-radius:999px;box-shadow:var(--shadow-panel)}.fps-dock-btn{width:40px;height:40px;padding:0!important;justify-content:center;gap:0!important}.fps-dock-speed{font-family:var(--mono);font-size:11px;color:var(--text-muted);padding:0 10px 0 4px;white-space:nowrap}.touch-controls{display:none;position:absolute;inset:0;z-index:13;pointer-events:none}.touch-joystick{position:absolute;width:118px;height:118px;pointer-events:auto;touch-action:none;border-radius:50%;background:#0d0d0d6b;border:1px solid var(--border-subtle);box-shadow:var(--shadow-panel)}.touch-joystick-move{left:max(12px,env(safe-area-inset-left));bottom:calc(58px + env(safe-area-inset-bottom))}.touch-joystick-look{right:max(12px,env(safe-area-inset-right));bottom:calc(58px + env(safe-area-inset-bottom))}.touch-joystick-knob{position:absolute;left:50%;top:50%;width:42px;height:42px;border-radius:50%;background:var(--accent-bg);border:1px solid var(--border-active);transform:translate(-50%,-50%);pointer-events:none}.touch-joystick-label{position:absolute;bottom:12px;left:50%;transform:translate(-50%);font-size:8.5px;font-weight:700;letter-spacing:.6px;color:var(--text-dim);text-transform:uppercase;pointer-events:none}.touch-throttle{position:absolute;left:50%;bottom:calc(68px + env(safe-area-inset-bottom));transform:translate(-50%);width:46px;height:148px;pointer-events:auto;touch-action:none;border-radius:12px;background:#0d0d0d75;border:1px solid var(--border-subtle);box-shadow:var(--shadow-panel);overflow:hidden}.touch-throttle-fill{position:absolute;left:0;right:0;bottom:0;height:35%;background:linear-gradient(180deg,#60a5fae0,#34d399c7);border-top:1px solid rgba(255,255,255,.28);pointer-events:none}.touch-throttle-label{position:absolute;left:50%;bottom:8px;transform:translate(-50%) rotate(-90deg);transform-origin:center;color:#ffffffb8;font-size:8px;font-weight:700;letter-spacing:.7px;text-transform:uppercase;pointer-events:none}.sb-quality{padding:1px 8px;border-radius:4px;background:var(--accent-bg);color:var(--accent);border:1px solid var(--border-subtle);font-size:10px;text-transform:capitalize}.plane-hud{position:absolute;inset:0;z-index:16;pointer-events:none;font-family:var(--mono)}.infinite-mode.plane-mode #fps-crosshair,.fps-explore-mode.plane-mode #fps-crosshair{display:none}.plane-hud-left{position:absolute;left:18px;bottom:calc(72px + env(safe-area-inset-bottom));display:flex;flex-direction:column;align-items:center;gap:6px}.plane-hud-right{position:absolute;right:18px;bottom:calc(72px + env(safe-area-inset-bottom));display:flex;flex-direction:column;align-items:flex-end;gap:10px}.plane-ai{width:132px;height:132px;filter:drop-shadow(0 4px 14px rgba(0,0,0,.45))}.plane-ai-stall .plane-ai-ring{stroke:#f87171;stroke-width:2.5}.plane-ai-svg{width:100%;height:100%;display:block}.plane-ai-bezel{fill:#0a0c10;stroke:#3a4254;stroke-width:2}.plane-ai-sky{fill:#1e4d8c}.plane-ai-ground{fill:#6b4a2e}.plane-ai-horizon-line{stroke:#f8fafc;stroke-width:2.2;stroke-linecap:round}.plane-ai-ladder{stroke:#f8fafcb8;stroke-width:1.4}.plane-ai-ladder-label{fill:#f8fafca6;font-size:8px;font-family:var(--mono)}.plane-ai-tick{stroke:#ffffff59;stroke-width:1.2}.plane-ai-wings{stroke:#fbbf24;stroke-width:2.4;stroke-linecap:round;fill:none}.plane-ai-center{fill:#fbbf24}.plane-ai-ring{fill:none;stroke:#64748b;stroke-width:1.6}.plane-heading{display:flex;align-items:baseline;gap:8px;padding:4px 10px;border-radius:var(--radius-sm);background:#0a0c10d1;border:1px solid var(--border-subtle);box-shadow:var(--shadow-panel)}.plane-heading-label{font-size:9px;font-weight:700;letter-spacing:1px;color:var(--accent)}.plane-heading-val{font-size:14px;font-weight:600;color:#f8fafc;min-width:3.2em;text-align:right}.plane-reticle{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);opacity:.88}.plane-throttle{width:58px;background:#0a0c10e0;border:1px solid #3a4254;border-radius:8px;box-shadow:var(--shadow-panel);overflow:hidden}.plane-throttle-header{text-align:center;font-size:8px;font-weight:700;letter-spacing:1.2px;color:var(--accent);padding:5px 0 3px;border-bottom:1px solid var(--border-subtle)}.plane-throttle-body{display:flex;padding:8px 6px 6px;gap:4px}.plane-throttle-track{position:relative;width:22px;height:148px;border-radius:4px;background:#11151c;border:1px solid #2a3140;overflow:hidden}.plane-throttle-zone{position:absolute;left:0;right:0;pointer-events:none}.plane-throttle-zone-idle{bottom:0;height:28%;background:linear-gradient(180deg,transparent,rgba(248,113,113,.12))}.plane-throttle-zone-cruise{bottom:28%;height:44%;background:#34d39914}.plane-throttle-zone-max{top:0;height:28%;background:linear-gradient(180deg,rgba(251,191,36,.14),transparent)}.plane-throttle-tick{position:absolute;left:0;right:0;display:flex;align-items:center;transform:translateY(50%);pointer-events:none}.plane-throttle-tick-mark{width:6px;height:1px;background:#ffffff59;margin-left:2px}.plane-throttle-tick-label{position:absolute;left:10px;font-size:7px;color:#ffffff73}.plane-throttle-lever{position:absolute;left:2px;right:2px;height:0;transform:translateY(50%);z-index:2}.plane-throttle-handle{height:14px;margin-top:-7px;border-radius:3px;background:linear-gradient(180deg,#4b5563,#1f2937);border:1px solid #9ca3af;box-shadow:0 2px 6px #00000080,inset 0 1px #ffffff26}.plane-throttle-labels{display:flex;flex-direction:column;justify-content:space-between;font-size:7px;font-weight:700;letter-spacing:.4px;color:#ffffff6b;padding:2px 0}.plane-throttle-readout{text-align:center;font-size:13px;font-weight:700;color:#f8fafc;padding:4px 0 7px;border-top:1px solid var(--border-subtle)}.plane-instruments{display:flex;flex-direction:column;gap:6px;min-width:72px}.plane-gauge{display:grid;grid-template-columns:auto 1fr auto;align-items:baseline;gap:4px 6px;padding:6px 10px;border-radius:var(--radius-sm);background:#0a0c10d1;border:1px solid var(--border-subtle);box-shadow:var(--shadow-panel)}.plane-gauge-label{font-size:8px;font-weight:700;letter-spacing:.8px;color:var(--accent)}.plane-gauge-val{font-size:15px;font-weight:600;color:#f8fafc;text-align:right}.plane-gauge-val.plane-gauge-warn{color:#f87171}.plane-gauge-unit{font-size:8px;color:var(--text-dim)}.plane-stall-banner{position:absolute;top:22%;left:50%;transform:translate(-50%);padding:6px 18px;border-radius:4px;background:#7f1d1de0;border:1px solid #f87171;color:#fecaca;font-size:13px;font-weight:800;letter-spacing:3px;animation:plane-stall-pulse .9s ease-in-out infinite;box-shadow:0 4px 18px #f8717159}@keyframes plane-stall-pulse{0%,to{opacity:1}50%{opacity:.55}}@media(max-width:640px){.plane-hud-left{left:10px;bottom:calc(88px + env(safe-area-inset-bottom))}.plane-hud-right{right:10px;bottom:calc(88px + env(safe-area-inset-bottom))}.plane-ai{width:108px;height:108px}.plane-throttle-track{height:118px}.plane-instruments{display:none}}@media(max-width:1180px){.tb-actions .tb-text,.tb-search-btn .tb-text{display:none}}@media(max-width:900px){.left-toolbar{width:68px;flex-basis:68px}.toolbar-btn-label{display:none}.toolbar-btn{height:52px}.tb-mode{padding:0 12px;font-size:11.5px}.side-drawer{width:min(368px,96vw)}.minimap-overlay-container.drawer-open{right:calc(min(368px,96vw) + 18px)}}@media(max-width:640px){#topbar{gap:10px}.side-drawer{width:100vw}.minimap-overlay-container.drawer-open{right:18px;opacity:0;pointer-events:none}}.label-with-icon{display:flex;align-items:center;gap:6px;color:var(--text-muted);font-size:12px;cursor:var(--cursor-help);user-select:none}.label-with-icon:hover{color:var(--text-main)}.setting-icon{display:inline-flex;align-items:center;color:var(--accent);opacity:.85}.setting-icon svg{width:13px;height:13px;display:block}.setting-label{font-weight:500}.info-icon-trigger{display:inline-flex;align-items:center;color:var(--text-dim);opacity:.6;transition:opacity .15s ease,color .15s ease}.label-with-icon:hover .info-icon-trigger{color:var(--accent);opacity:1}.global-tooltip{pointer-events:none;z-index:99999;display:flex;align-items:center;filter:drop-shadow(0 4px 12px rgba(0,0,0,.45));animation:tooltip-fade-in .12s cubic-bezier(.16,1,.3,1)}@keyframes tooltip-fade-in{0%{opacity:0}to{opacity:1}}.global-tooltip-content{background:#12161ff5;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid var(--accent);color:var(--text-main);padding:8px 12px;border-radius:var(--radius-sm);font-size:11px;line-height:1.45;max-width:220px;box-shadow:0 4px 16px #00000080;font-family:var(--font)}.global-tooltip-arrow{width:0;height:0;border-top:5px solid transparent;border-bottom:5px solid transparent}.global-tooltip-arrow.right{border-left:6px solid var(--accent);margin-left:-1px}.global-tooltip-arrow.left{border-right:6px solid var(--accent);margin-right:-1px}.minimap-overlay-container{position:absolute;bottom:18px;right:18px;z-index:20;width:248px;background:var(--glass-bg);backdrop-filter:blur(16px) saturate(1.4);-webkit-backdrop-filter:blur(16px) saturate(1.4);border:1px solid var(--glass-border);border-radius:16px;box-shadow:var(--shadow-panel);overflow:hidden;transition:all .22s cubic-bezier(.16,1,.3,1)}.minimap-overlay-container.large{width:336px}.minimap-overlay-container.drawer-open{right:calc(var(--drawer-w) + 18px)}.minimap-overlay-header{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;background:var(--bg-panel-soft);border-bottom:1px solid var(--border-subtle);transition:background .12s ease}.minimap-overlay-header:hover{background:var(--bg-control)}.minimap-title{display:flex;align-items:center;gap:8px;font-size:10px;font-weight:700;letter-spacing:1.2px;color:var(--text-muted);text-transform:uppercase}.minimap-toggle-btn{background:var(--bg-control);border:1px solid var(--border-subtle);color:var(--text-dim);cursor:var(--cursor-pointer);width:20px;height:20px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);transition:background .12s ease,color .12s ease,border-color .12s ease}.minimap-toggle-btn:hover{background:var(--bg-control);color:var(--accent);border-color:var(--border-subtle)}.minimap-toggle-btn svg{display:block}.minimap-title svg{flex:0 0 auto;color:var(--accent)}.minimap-overlay-body{padding:10px;display:flex;flex-direction:column;gap:8px}.minimap-overlay-container.collapsed{width:130px}.minimap-overlay-container.collapsed .minimap-overlay-body{display:none}.minimap-overlay-container.collapsed .minimap-overlay-header{border-bottom:none}.minimap-fab{display:none;align-items:center;justify-content:center;width:40px;height:40px;padding:0;border:1px solid var(--border-subtle);border-radius:999px;background:var(--bg-panel-soft);color:var(--accent);box-shadow:var(--shadow-panel);cursor:var(--cursor-pointer);transition:background .12s ease,color .12s ease,border-color .12s ease}.minimap-fab:hover{background:var(--bg-control);color:var(--accent);border-color:var(--border-subtle)}.minimap-panel{display:contents}.minimap-overlay-container.compact .minimap-wrap{max-width:216px;margin:0 auto}.minimap-overlay-container.large .minimap-wrap{max-width:304px;margin:0 auto}.viewport-mode-bar{display:none;position:fixed;top:calc(54px + env(safe-area-inset-top));left:50%;transform:translate(-50%);z-index:28;pointer-events:auto;max-width:calc(100vw - 20px);gap:2px;padding:4px;background:var(--bg-panel);border:1px solid var(--border-subtle);border-radius:999px;box-shadow:var(--shadow-panel);flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch}.viewport-mode-bar::-webkit-scrollbar{display:none}.mode-bar-btn{flex:0 0 auto;white-space:nowrap;font-size:11px;font-weight:600}.player-state{font-weight:600;letter-spacing:.04em;text-transform:uppercase;font-size:10px}.player-state-grounded{color:#7dd87d}.player-state-falling{color:#f0c560}.player-state-swimming{color:#6db8f0}.player-state-underwater{color:#4d8fd6}.paint-panel{position:absolute;top:14px;left:14px;width:300px;max-height:calc(100% - 28px);overflow-y:auto;padding:12px;background:#12161ff5;border:1px solid var(--border-active);border-radius:var(--radius-lg);box-shadow:var(--shadow-panel);z-index:20;backdrop-filter:blur(10px)}.paint-panel-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-bottom:10px;border-bottom:1px solid var(--border-subtle)}.paint-kicker{color:var(--accent);font-size:9.5px;font-weight:700;letter-spacing:1.2px;text-transform:uppercase}.paint-panel h2{margin-top:2px;color:var(--text-bright);font-size:16px}.paint-exit{height:28px;padding:0 10px;color:var(--text-main);background:var(--bg-control);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);cursor:var(--cursor-pointer)}.paint-exit:hover{border-color:var(--border-active);color:var(--accent)}.paint-section{padding:8px 0 4px;border-bottom:1px solid rgba(120,150,190,.08)}.paint-section:last-child{border-bottom:0}.wide-btn.danger{border-color:#e5484d59;color:#ffb4b4}.wide-btn.danger:hover{background:#e5484d1f;border-color:#e5484d99}#viewport{touch-action:none}.nl-stack{display:flex;flex-direction:column;gap:2px;margin-top:8px}.nl-item{background:var(--bg-control);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);transition:border-color .12s ease,box-shadow .12s ease}.nl-item.expanded{border-color:var(--border-active);box-shadow:0 0 0 1px #6366f11f}.nl-item.disabled{opacity:.55}.nl-item.solo{border-color:var(--warning);box-shadow:0 0 0 1px #f5a5242e}.nl-item[draggable]{cursor:var(--cursor-grab)}.nl-item[draggable]:active{cursor:var(--cursor-grabbing)}.nl-header{display:flex;align-items:center;gap:6px;padding:6px 8px;cursor:var(--cursor-pointer);user-select:none;min-height:32px}.nl-header:hover{background:#7896c80d}.nl-grip{display:flex;align-items:center;cursor:var(--cursor-grab);flex-shrink:0}.nl-vis{background:none;border:none;cursor:var(--cursor-pointer);padding:1px;display:flex;align-items:center;color:var(--text-muted);flex-shrink:0}.nl-vis:hover{color:var(--text-main)}.nl-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11.5px;font-weight:600;color:var(--text-main)}.nl-badge{flex-shrink:0;padding:1px 5px;border-radius:3px;font-size:8.5px;font-weight:700;letter-spacing:.5px;text-transform:uppercase}.nl-badge-base{background:#6366f12e;color:var(--accent)}.nl-badge-mod{background:#f5a5242e;color:var(--warning)}.nl-type-tag{flex-shrink:0;font-size:9.5px;color:var(--text-dim);letter-spacing:.3px}.nl-strength-compact{flex-shrink:0;font-size:10px;font-family:var(--mono);color:var(--text-muted);min-width:30px;text-align:right}.nl-body{padding:4px 10px 10px;border-top:1px solid var(--border-subtle)}.nl-actions{display:flex;gap:4px;margin-bottom:8px;justify-content:flex-end}.nl-icon-btn{background:var(--bg-control);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);cursor:var(--cursor-pointer);padding:3px 5px;display:flex;align-items:center;color:var(--text-muted);transition:color .1s,border-color .1s}.nl-icon-btn:hover{color:var(--text-main);border-color:var(--border-active)}.nl-icon-btn.active{color:var(--warning);border-color:#f5a52466;background:#f5a52414}.nl-icon-btn.danger:hover{color:var(--danger);border-color:#e5484d73}.nl-icon-btn:disabled{opacity:.35;pointer-events:none}.nl-field{display:flex;align-items:center;gap:8px;margin-bottom:6px}.nl-label{font-size:11px;color:var(--text-muted);font-weight:500;flex-shrink:0;min-width:42px}.nl-input{flex:1;min-width:0;height:26px;padding:0 8px;background:var(--bg-panel-soft);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);color:var(--text-main);font-family:var(--font);font-size:11.5px}.nl-input:focus{border-color:var(--border-active);outline:none}.nl-masks{margin-top:10px;padding-top:8px;border-top:1px solid var(--border-subtle)}.nl-masks-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}.nl-mask-add{height:22px;padding:0 6px;font-size:10px;background:var(--bg-control);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);color:var(--text-muted);cursor:var(--cursor-pointer)}.nl-mask{background:#7896c80a;border:1px solid var(--border-subtle);border-radius:var(--radius-sm);padding:6px 8px;margin-bottom:4px}.nl-mask.disabled{opacity:.45}.nl-mask-row{display:flex;align-items:center;gap:6px}.nl-mask-label{flex:1;font-size:11px;font-weight:600;color:var(--text-main)}.nl-hint{font-size:10.5px;color:var(--text-dim);font-style:italic}.nl-add-wrap{margin-top:8px;position:relative}.nl-add-btn{width:100%;display:flex;align-items:center;justify-content:center}.nl-add-menu{position:absolute;bottom:100%;left:0;right:0;margin-bottom:6px;background:var(--bg-panel);border:1px solid var(--border-active);border-radius:var(--radius-md);box-shadow:0 12px 36px #0009;max-height:280px;overflow-y:auto;z-index:9999;padding:4px}.nl-add-backdrop{position:fixed;inset:0;z-index:9998}.nl-add-group{font-size:9px;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:var(--text-dim);padding:6px 8px 3px}.nl-add-item{display:flex;flex-wrap:wrap;align-items:center;gap:6px;width:100%;padding:6px 8px;background:none;border:none;border-radius:var(--radius-sm);color:var(--text-main);cursor:var(--cursor-pointer);font-family:var(--font);font-size:12px;text-align:left}.nl-add-item:hover{background:#6366f11a}.nl-add-name{font-weight:600}.nl-add-desc{width:100%;font-size:10px;color:var(--text-dim);margin-top:-2px}.nl-empty{padding:18px 12px;text-align:center;color:var(--text-dim);font-size:12px;font-style:italic}@media(hover:none),(pointer:coarse),(max-width:820px){html,body,#root,#app{height:100%;width:100%}body{-webkit-text-size-adjust:100%;overscroll-behavior:none}button,input,select{font-size:16px}#topbar{height:auto;min-height:40px;flex:0 0 auto;flex-wrap:nowrap;gap:4px;margin:0;border:none;border-bottom:1px solid var(--border-subtle);border-radius:0;background:var(--bg-panel-soft);backdrop-filter:none;-webkit-backdrop-filter:none;box-shadow:none;padding:4px max(6px,env(safe-area-inset-right)) 4px max(6px,env(safe-area-inset-left));overflow-x:auto;overflow-y:hidden;scrollbar-width:none;-webkit-overflow-scrolling:touch;touch-action:pan-x}#topbar::-webkit-scrollbar{display:none}.tb-brand{margin-right:0;flex:0 0 auto;padding-right:2px}.tb-brand .logo{width:18px;height:18px}.app-name,.app-version{display:none}.tb-group,.tb-segment{flex:0 0 auto;gap:2px}.tb-center{flex:0 0 auto;margin:0;gap:4px}.tb-right{margin-left:auto;flex-shrink:0}#topbar .tb-segment{display:none}.viewport-mode-bar{display:flex}.tb-btn{width:34px;height:34px;min-height:34px;padding:0;justify-content:center;gap:0;flex-shrink:0}.tb-btn svg{width:15px;height:15px}.tb-mode{min-height:32px;padding:0 10px;font-size:11px}.tb-actions .tb-text,.tb-right .tb-text,.tb-search-btn .tb-shortcut{display:none}.tb-loading{height:34px;padding:0 8px}.tb-loading .tb-text{display:none}.app-shell{flex-direction:column;min-width:0;padding:0;gap:0}.viewport-area{border-radius:0;border:none;box-shadow:none}.left-toolbar{order:2;width:100%;max-width:100%;min-width:0;flex:0 0 auto;align-self:stretch;min-height:58px;max-height:74px;flex-direction:row;flex-wrap:nowrap;padding:6px max(8px,env(safe-area-inset-right)) calc(6px + env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left));border:none;border-radius:0;background:var(--bg-panel);backdrop-filter:none;-webkit-backdrop-filter:none;box-shadow:none;border-top:1px solid var(--border-subtle);overflow-x:scroll;overflow-y:hidden;scrollbar-width:none;-webkit-overflow-scrolling:touch;touch-action:pan-x;overscroll-behavior-x:contain;position:relative;z-index:16}.left-toolbar::-webkit-scrollbar{display:none}.toolbar-btn{flex:0 0 54px;height:46px;min-width:54px}.toolbar-btn-label{display:block;font-size:8.5px}.viewport-area{order:1;min-height:0}.minimap-overlay-container{top:auto;left:max(10px,env(safe-area-inset-left));right:auto;bottom:calc(12px + env(safe-area-inset-bottom));width:auto;background:var(--bg-panel-soft);border:1px solid var(--border-subtle);border-radius:999px;box-shadow:var(--shadow-panel);z-index:11}.minimap-overlay-container.collapsed{width:auto;padding:0;overflow:visible}.minimap-overlay-container.collapsed .minimap-fab{display:flex;background:transparent;border:none;box-shadow:none}.minimap-overlay-container.collapsed .minimap-panel{display:none}.minimap-overlay-container:not(.collapsed) .minimap-fab{display:none}.minimap-overlay-container:not(.collapsed) .minimap-panel{display:block;width:100%}.minimap-overlay-container:not(.collapsed){width:min(84vw,320px);border-radius:12px;bottom:calc(12px + env(safe-area-inset-bottom))}.minimap-overlay-container.drawer-open{right:auto;left:max(10px,env(safe-area-inset-left));opacity:0;pointer-events:none}.minimap-overlay-header{padding:5px 8px;background:transparent}.minimap-overlay-container:not(.collapsed) .minimap-overlay-header{border-bottom:1px solid var(--border-subtle)}.minimap-title{font-size:9px;letter-spacing:.8px;gap:5px}.minimap-title-text{display:none}.minimap-overlay-body{padding:6px;gap:4px}.minimap-wrap{border-radius:6px}.minimap-caption{font-size:8px}.minimap-hover-info{grid-template-columns:1fr;font-size:9px;padding:6px 7px}.minimap-toolbar,.minimap-mode-grid{gap:4px}.minimap-chip{padding:3px 7px;font-size:9px}.viewport-mode-bar .mode-bar-btn{height:32px;padding:0 11px;font-size:10.5px}.fps-explore-mode .touch-controls{display:block}.fps-explore-mode #fps-info,.fps-explore-mode #fps-settings-panel{display:none!important}.fps-explore-mode .fps-mobile-dock{display:flex}.fps-explore-mode #fps-perf-window{display:none}.fps-explore-mode #fps-perf-window.open{display:flex;left:max(10px,env(safe-area-inset-left));right:max(10px,env(safe-area-inset-right));bottom:calc(58px + env(safe-area-inset-bottom));width:auto;max-width:none;border-radius:12px}.fps-explore-mode #fps-speed-bar,.fps-explore-mode #fps-controls-hint{display:none!important}.fps-explore-mode .fps-perf-header-desktop{display:none}.side-drawer{top:0;right:0;bottom:0;width:min(430px,100vw);max-width:100vw;border-radius:0;border:none;z-index:20}#app.side-drawer-open .viewport-mode-bar{display:none!important}.side-panel-header{padding:12px 14px 10px;padding-top:max(12px,env(safe-area-inset-top))}.side-panel-content{padding:10px 14px calc(18px + env(safe-area-inset-bottom))}.side-panel-close,.panel-tab,.action-btn,.camera-bar-btn{min-height:40px}.row input[type=number],.row input[type=text],.row select,.ctl-val{min-height:34px}.slider-input,.slider-track-wrap{height:30px}#help-card{top:10px;left:10px;right:10px;max-width:calc(100vw - 20px);padding:10px 12px;gap:7px}.help-row{font-size:11.5px}.viewport-camera-bar{bottom:calc(12px + env(safe-area-inset-bottom));max-width:calc(100vw - 20px);flex-wrap:nowrap;overflow-x:scroll;overflow-y:hidden;scrollbar-width:none;-webkit-overflow-scrolling:touch;touch-action:pan-x;overscroll-behavior-x:contain;border-radius:16px}.viewport-camera-bar::-webkit-scrollbar{display:none}.camera-bar-btn{flex:0 0 auto;padding:0 10px;gap:0}.camera-bar-btn .camera-bar-label{display:none}#statusbar{height:auto;min-height:34px;flex:0 0 auto;flex-wrap:nowrap;align-items:center;justify-content:space-between;gap:10px;padding:6px max(10px,env(safe-area-inset-right)) calc(6px + env(safe-area-inset-bottom)) max(10px,env(safe-area-inset-left));overflow:hidden;font-size:10px}.sb-desktop-only{display:none!important}.sb-group{flex:0 1 auto;min-width:0;gap:8px;flex-wrap:nowrap;white-space:nowrap}.sb-group-primary{flex:1 1 auto}.sb-group-stats{flex:0 0 auto;justify-content:flex-end}.sb-status{overflow:hidden;text-overflow:ellipsis;max-width:42vw}.sb-tris{font-variant-numeric:tabular-nums}.fps-badge,.sb-github-link{flex-shrink:0}}@media(hover:none)and (pointer:coarse)and (orientation:landscape)and (max-height:520px){#topbar{min-height:42px;padding-top:3px;padding-bottom:3px}.tb-btn,.tb-mode{min-height:32px;height:32px}.left-toolbar{position:absolute;left:0;right:0;bottom:0;z-index:16;background:#0d0d0df0}.viewport-area{height:100%}#statusbar{display:none}.side-drawer{bottom:58px;z-index:20}.viewport-camera-bar,.minimap-overlay-container{bottom:72px}.minimap-overlay-container:not(.collapsed){bottom:72px}.touch-joystick-move,.touch-joystick-look{bottom:calc(72px + env(safe-area-inset-bottom))}.touch-throttle{bottom:calc(82px + env(safe-area-inset-bottom));height:118px}.fps-mobile-dock{bottom:calc(12px + env(safe-area-inset-bottom))}.fps-explore-mode #fps-perf-window.open{bottom:calc(58px + env(safe-area-inset-bottom))}#help-card{max-width:360px;right:auto}}@media(max-width:420px){.viewport-mode-bar .mode-bar-btn{padding:0 9px;font-size:10px}.toolbar-btn{flex-basis:50px;min-width:50px}#statusbar{gap:6px;font-size:9.5px}.sb-group{gap:6px}.sb-status{max-width:34vw}}.perf-overlay{position:fixed;inset:auto 12px 42px auto;z-index:200;width:340px;max-height:min(72vh,calc(100vh - 90px));display:flex;flex-direction:column;background:var(--bg-panel);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);color:var(--text-main);font-size:11px;box-shadow:var(--shadow-panel);overflow:hidden;animation:perf-slide-up .2s ease;transition:right .22s cubic-bezier(.16,1,.3,1),left .22s cubic-bezier(.16,1,.3,1),bottom .22s cubic-bezier(.16,1,.3,1),top .22s cubic-bezier(.16,1,.3,1),max-height .22s cubic-bezier(.16,1,.3,1)}#app.side-drawer-open:not(.infinite-mode) .perf-overlay{right:calc(var(--drawer-w) + 32px)}#app.infinite-mode:not(.plane-mode) .perf-overlay{bottom:76px}#app.plane-mode .perf-overlay{inset:52px 12px auto auto;max-height:min(52vh,calc(100vh - 120px))}@keyframes perf-slide-up{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.perf-overlay-loading{min-height:120px}.perf-overlay-head{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;background:linear-gradient(180deg,var(--bg-panel-soft) 0%,var(--bg-panel) 100%);border-bottom:1px solid var(--border-subtle)}.perf-title{font-weight:700;letter-spacing:1.2px;font-size:11px;text-transform:uppercase;color:var(--text-bright)}.perf-head-actions{display:flex;align-items:center;gap:5px}.perf-chip{padding:4px 8px;border-radius:var(--radius-sm);cursor:var(--cursor-pointer);background:var(--bg-control);border:1px solid var(--border-subtle);color:var(--text-muted);font-size:10px;font-family:var(--mono);transition:border-color .15s,color .15s,background .15s}.perf-chip:hover{border-color:var(--accent);color:var(--text-main);background:var(--accent-bg)}.perf-chip.ok{border-color:var(--accent);color:var(--accent);background:var(--accent-bg)}.perf-x{width:24px;height:24px;border-radius:var(--radius-sm);cursor:var(--cursor-pointer);background:transparent;border:1px solid transparent;color:var(--text-muted);font-size:12px;transition:border-color .15s,color .15s,background .15s}.perf-x:hover{border-color:var(--border-subtle);color:var(--text-bright);background:var(--bg-control)}.perf-loading-body{display:flex;align-items:center;justify-content:center;gap:8px;padding:28px 16px;color:var(--text-muted);font-family:var(--mono);font-size:11px}.perf-loading-dot{width:6px;height:6px;border-radius:50%;background:var(--accent);animation:perf-pulse 1s ease infinite}@keyframes perf-pulse{0%,to{opacity:.35;transform:scale(.9)}50%{opacity:1;transform:scale(1)}}.perf-overlay-body{overflow-y:auto;padding:0}.perf-hero{padding:12px;display:flex;flex-direction:column;gap:10px;background:linear-gradient(180deg,rgba(37,99,235,.06) 0%,transparent 100%);border-bottom:1px solid var(--border-subtle)}.perf-hero-metrics{display:flex;align-items:stretch;gap:12px}.perf-hero-fps{display:flex;align-items:baseline;gap:4px;padding:8px 14px;border-radius:var(--radius-md);background:var(--bg-panel-soft);border:1px solid var(--border-subtle);min-width:88px}.perf-hero-fps.perf-hero-good{border-color:#22c55e59;background:#22c55e14}.perf-hero-fps.perf-hero-warn{border-color:#f59e0b59;background:#f59e0b14}.perf-hero-fps.perf-hero-crit{border-color:#ef444459;background:#ef444414}.perf-hero-value{font-family:var(--mono);font-size:28px;font-weight:700;line-height:1;color:var(--text-bright)}.perf-hero-good .perf-hero-value{color:var(--success)}.perf-hero-warn .perf-hero-value{color:var(--warning)}.perf-hero-crit .perf-hero-value{color:var(--danger)}.perf-hero-unit{font-size:11px;color:var(--text-dim);font-family:var(--mono);text-transform:lowercase}.perf-hero-secondary{flex:1;display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.perf-hero-stat{display:flex;flex-direction:column;justify-content:center;gap:2px;padding:6px 8px;border-radius:var(--radius-sm);background:var(--bg-panel-soft);border:1px solid var(--border-subtle)}.perf-hero-stat-label{font-size:9px;text-transform:uppercase;letter-spacing:.6px;color:var(--text-dim)}.perf-hero-stat-value{font-family:var(--mono);font-size:12px;font-weight:600;color:var(--text-main)}.perf-hero-stat-value.warn{color:var(--warning)}.perf-graph-card{padding:8px 10px;border-radius:var(--radius-md);background:var(--bg-panel-soft);border:1px solid var(--border-subtle)}.perf-graph-card-head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:6px;gap:8px}.perf-graph-card-label{font-size:10px;font-weight:600;letter-spacing:.3px;color:var(--text-muted);text-transform:uppercase}.perf-graph-card-hint{font-size:9px;color:var(--text-dim);font-family:var(--mono)}.perf-graph-duo{display:grid;grid-template-columns:1fr 1fr;gap:8px}.perf-graph-wrap{position:relative}.perf-graph-svg{display:block;width:100%;border-radius:4px}.perf-graph-meta{display:flex;align-items:baseline;justify-content:space-between;margin-top:4px;gap:8px}.perf-graph-latest{font-family:var(--mono);font-size:11px;font-weight:600}.perf-graph-latest em{font-style:normal;font-size:9px;color:var(--text-dim);margin-left:2px}.perf-graph-ref-label{font-size:9px;color:var(--text-dim);font-family:var(--mono)}.perf-graph-empty{display:flex;align-items:center;justify-content:center;border-radius:4px;background:var(--bg-control);color:var(--text-dim);font-size:10px;font-family:var(--mono)}.perf-section{border-bottom:1px solid var(--border-subtle)}.perf-section:last-child{border-bottom:none}.perf-section-head{width:100%;display:flex;align-items:center;gap:6px;padding:8px 12px;cursor:var(--cursor-pointer);background:transparent;border:none;color:var(--text-main);font-weight:600;font-size:10.5px;letter-spacing:.3px;text-align:left;transition:background .12s}.perf-section-head:hover{background:var(--bg-panel-soft)}.perf-caret{display:flex;color:var(--text-dim);transition:transform .15s ease}.perf-caret.closed{transform:rotate(-90deg)}.perf-section-body{padding:2px 12px 10px}.perf-row{display:flex;align-items:baseline;justify-content:space-between;gap:8px;padding:3px 0}.perf-row-label{color:var(--text-muted);white-space:nowrap}.perf-row-value{color:var(--text-main);font-family:var(--mono);text-align:right;word-break:break-word;font-size:10.5px}.perf-row-value.warn{color:var(--warning)}.perf-warn{display:flex;align-items:center;gap:6px;padding:4px 0}.perf-warn-level{flex-shrink:0;padding:2px 6px;border-radius:3px;font-size:8.5px;text-transform:uppercase;letter-spacing:.5px;font-weight:700}.perf-warn-info .perf-warn-level{background:var(--accent-bg);color:var(--accent)}.perf-warn-warning .perf-warn-level{background:#f59e0b2e;color:var(--warning)}.perf-warn-critical .perf-warn-level{background:#ef44442e;color:var(--danger)}.perf-warn-label{color:var(--text-muted);font-size:10.5px}.perf-prefs{display:flex;flex-wrap:wrap;gap:12px;padding:10px 12px;border-top:1px solid var(--border-subtle);background:var(--bg-panel-soft)}.perf-prefs label{display:flex;align-items:center;gap:5px;color:var(--text-muted);cursor:var(--cursor-pointer);font-size:10.5px}.perf-prefs input{accent-color:var(--accent)}@media(max-width:900px){#app.side-drawer-open:not(.infinite-mode) .perf-overlay{right:calc(min(368px,96vw) + 16px)}}@media(max-width:640px){.perf-overlay{right:8px;left:8px;width:auto;bottom:calc(40px + env(safe-area-inset-bottom));max-height:min(65vh,calc(100vh - 100px))}#app.side-drawer-open:not(.infinite-mode) .perf-overlay{inset:48px 8px auto;max-height:min(45vh,calc(100vh - 110px))}#app.infinite-mode:not(.plane-mode) .perf-overlay{bottom:calc(76px + env(safe-area-inset-bottom))}#app.plane-mode .perf-overlay{top:48px;right:8px;left:8px;width:auto;max-height:min(48vh,calc(100vh - 110px))}.perf-graph-duo{grid-template-columns:1fr}.perf-hero-secondary{grid-template-columns:repeat(3,1fr)}}@media(max-width:400px){.perf-hero-metrics{flex-direction:column}.perf-hero-fps{align-self:flex-start}}.about-card{width:min(560px,94vw);position:relative}.about-close{position:absolute;top:14px;right:14px;display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:1px solid var(--border-subtle);border-radius:var(--radius-sm);background:var(--bg-control);color:var(--text-muted);cursor:var(--cursor-pointer);transition:color .12s ease,border-color .12s ease}.about-close:hover{color:var(--text-main);border-color:var(--border-active)}.about-close svg{width:14px;height:14px}.about-hero{padding:26px 26px 20px;background:radial-gradient(ellipse 70% 100% at 50% 0%,rgba(255,192,106,.09),transparent 72%),var(--bg-panel-soft);border-bottom:1px solid var(--border-subtle);text-align:center}.about-wordmark{font-family:var(--font-display);font-size:26px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--accent)}.about-tagline{margin-top:5px;font-size:13.5px;color:var(--text-muted)}.about-body{padding:20px 26px 24px}.about-body>p{font-size:13.5px;line-height:1.65;color:var(--text-muted)}.about-steps{display:flex;gap:10px;margin:18px 0}.about-step{flex:1;padding:14px 12px;background:var(--bg-panel-soft);border:1px solid var(--border-subtle);border-radius:var(--radius-md);text-align:center}.about-step-num{font-family:var(--mono);font-size:11px;letter-spacing:.12em;color:var(--accent)}.about-step h4{margin:5px 0 4px;font-size:13.5px;font-weight:700;color:var(--text-bright)}.about-step p{font-size:12px;line-height:1.45;color:var(--text-dim)}.about-modes{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:7px}.about-modes li{font-size:13px;line-height:1.5;color:var(--text-muted)}.about-modes strong{color:var(--text-main);font-weight:700}.about-footer{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:18px;padding-top:14px;border-top:1px solid var(--border-subtle);font-family:var(--mono);font-size:11.5px;color:var(--text-dim)}.about-footer a{color:var(--accent);text-decoration:none}.about-footer a:hover{color:var(--accent-hover)}@media(max-width:640px){.about-steps{flex-direction:column}.about-body{padding:18px 20px 20px}.about-hero{padding:22px 20px 16px}}
