*{margin:0;padding:0;box-sizing:border-box}:root{--ui-bg: rgba(10, 15, 30, .85);--ui-border: rgba(100, 150, 255, .3);--ui-text: #e0e8ff;--ui-text-dim: #8090b0;--ui-accent: #4a9eff;--ui-accent-hover: #70b8ff;--ui-danger: #ff6b6b;--ui-success: #6bff8a;--ui-shadow: 0 4px 20px rgba(0, 0, 0, .5);--ui-radius: 8px;--font-main: "Segoe UI", system-ui, sans-serif;--font-mono: "JetBrains Mono", "Fira Code", monospace}html,body{width:100%;height:100%;overflow:hidden;font-family:var(--font-main);background:#000;color:var(--ui-text)}#app{width:100%;height:100%;position:relative}#scene{position:absolute;top:0;left:0;width:100%;height:100%;display:block;z-index:1}#ui{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:100}.ui-panel{pointer-events:auto;background:var(--ui-bg);border:1px solid var(--ui-border);border-radius:var(--ui-radius);box-shadow:var(--ui-shadow);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}#toolbar{position:absolute;top:20px;left:50%;transform:translate(-50%);display:flex;gap:2px;pointer-events:auto;background:var(--ui-bg);border:1px solid var(--ui-border);border-radius:var(--ui-radius);box-shadow:var(--ui-shadow);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);padding:4px;z-index:200}#toolbar button{display:flex;align-items:center;justify-content:center;gap:6px;background:transparent;border:none;color:var(--ui-text-dim);padding:8px 12px;border-radius:6px;cursor:pointer;font-size:12px;font-family:var(--font-main);transition:all .15s;white-space:nowrap}#toolbar button:hover{background:#ffffff1a;color:var(--ui-text)}#toolbar button.active{background:#4a9eff33;color:var(--ui-accent)}#toolbar button svg{flex-shrink:0}.toolbar-label{font-size:12px}#time-arc-container{position:absolute;bottom:0;left:0;right:0;height:220px;pointer-events:auto;z-index:150}#time-arc-playback{position:absolute;top:10px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:8px;background:#0a0f1ef2;border:1px solid rgba(100,150,255,.3);border-radius:30px;padding:6px 10px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:10000;pointer-events:auto!important;touch-action:manipulation}#time-arc-playback button{background:#ffffff0d;border:none;color:#ffffffb3;width:40px;height:40px;border-radius:50%;cursor:pointer;font-size:18px;transition:all .2s;display:flex;align-items:center;justify-content:center;pointer-events:auto!important;position:relative;z-index:1000;touch-action:manipulation;-webkit-tap-highlight-color:rgba(74,158,255,.3);user-select:none;-webkit-user-select:none}#time-arc-playback button svg{display:block;pointer-events:none}#time-arc-playback button:hover{background:#ffffff1a;color:var(--ui-text)}#time-arc-playback button.active{background:#4a9eff4d;color:var(--ui-accent)}#time-arc-playback button#time-arc-playpause{width:48px;height:48px;font-size:22px;background:#4a9eff33}#time-arc-playback button#time-arc-playpause:hover{background:#4a9eff66}#time-arc-playback button#time-arc-playpause.playing{background:#4a9eff66;color:#4a9eff;box-shadow:0 0 10px #4a9eff80}#time-arc-playback button#time-arc-playpause.paused{background:#ff96644d;color:#ff9664e6}#time-arc-canvas{position:absolute;bottom:40px;left:0;width:100%;height:150px;cursor:grab;z-index:1}#time-arc-canvas:active{cursor:grabbing}#time-arc-controls{position:absolute;bottom:0;left:0;right:0;height:40px;background:linear-gradient(to top,rgba(0,0,0,.6),transparent);display:flex;align-items:center;justify-content:center;gap:20px;padding:0 20px;z-index:200;pointer-events:auto}#time-arc-input{position:absolute;bottom:50px;left:50%;transform:translate(-50%)}#time-arc-speed{font-family:var(--font-mono);font-size:13px;font-weight:500;color:var(--ui-accent);background:var(--ui-bg);border:1px solid var(--ui-border);border-radius:var(--ui-radius);padding:8px 16px;min-width:80px;text-align:center;cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);position:relative;pointer-events:auto;z-index:10}#time-arc-speed:hover{background:#4a9eff33}#time-arc-speed-menu{position:absolute;bottom:50px;left:50%;transform:translate(-50%);background:#0a0f1e;border:1px solid var(--ui-border);border-radius:var(--ui-radius);max-height:300px;overflow-y:auto;z-index:20000;min-width:100px;box-shadow:var(--ui-shadow);pointer-events:auto!important;touch-action:pan-y}#time-arc-speed-menu.hidden{display:none}.speed-menu-item{padding:8px 16px;font-family:var(--font-mono);font-size:13px;color:var(--ui-text);cursor:pointer;text-align:center;white-space:nowrap;transition:background .15s;pointer-events:auto!important;touch-action:manipulation;-webkit-tap-highlight-color:rgba(74,158,255,.3);user-select:none;-webkit-user-select:none}.speed-menu-item:hover{background:#4a9eff33}.speed-menu-item.active{background:var(--ui-accent);color:#fff}#time-arc-now{padding:8px 16px;border-radius:var(--ui-radius);background:var(--ui-bg);border:1px solid var(--ui-border);color:var(--ui-text);font-size:13px;font-weight:500;cursor:pointer;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transition:all .2s;pointer-events:auto;position:relative;z-index:10}#time-arc-now:hover{background:var(--ui-accent);border-color:var(--ui-accent)}#search-panel{position:absolute;top:20px;left:20px;width:280px}#search-input{width:100%;padding:12px 16px;background:transparent;border:none;color:var(--ui-text);font-size:14px;outline:none}#search-input::placeholder{color:var(--ui-text-dim)}#search-results{max-height:300px;overflow-y:auto}.search-result{padding:10px 16px;cursor:pointer;border-top:1px solid var(--ui-border);transition:background .2s}.search-result:hover{background:#4a9eff33}.search-result .name{font-weight:500}.search-result .type{font-size:12px;color:var(--ui-text-dim);text-transform:capitalize}#info-panel{position:absolute;top:20px;right:20px;width:320px;padding:20px}#info-panel.hidden{display:none}#info-close{position:absolute;top:10px;right:10px;background:transparent;border:none;color:var(--ui-text-dim);font-size:24px;cursor:pointer;line-height:1}#info-close:hover{color:var(--ui-text)}#info-name{font-size:24px;font-weight:300;margin-bottom:5px}#info-type{font-size:12px;color:var(--ui-accent);text-transform:uppercase;letter-spacing:1px;margin-bottom:20px}#info-details{font-size:13px;line-height:1.8}#info-details .label{color:var(--ui-text-dim)}#info-details .value{font-family:var(--font-mono);color:var(--ui-text)}#info-actions{display:flex;gap:8px;margin:12px 0}#info-actions button{flex:1;display:flex;align-items:center;justify-content:center;gap:6px;padding:8px 12px;background:#ffffff14;border:1px solid var(--ui-border);border-radius:6px;color:var(--ui-text);font-size:12px;cursor:pointer;transition:all .15s ease}#info-actions button:hover{background:#ffffff26;border-color:var(--accent-color)}#info-actions button.active{background:var(--accent-color);border-color:var(--accent-color)}#info-actions button svg{flex-shrink:0}#info-navigate{margin-top:12px;border-top:1px solid var(--ui-border);padding-top:10px}#info-navigate.hidden{display:none}.info-section-label{font-size:11px;color:var(--ui-text-dim);text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px}.info-nav-group{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}.info-nav-group:empty,.info-nav-group.hidden{display:none}.info-nav-btn{padding:5px 10px;background:#ffffff14;border:1px solid var(--ui-border);border-radius:4px;color:var(--ui-text);font-size:11px;cursor:pointer;transition:all .15s ease}.info-nav-btn:hover{background:#ffffff26;border-color:var(--accent-color)}.info-nav-btn.active{background:var(--accent-color);border-color:var(--accent-color);color:#fff}#settings-panel{position:absolute;top:60px;right:20px}#settings-toggle{display:none}#settings-content{padding:15px;min-width:200px}#settings-content.hidden{display:none}body.is-mobile #settings-content.hidden{display:block}#settings-content label{display:flex;align-items:center;justify-content:space-between;padding:8px 0;font-size:13px;gap:10px}#settings-content select{background:#ffffff1a;border:1px solid var(--ui-border);border-radius:4px;color:var(--ui-text);padding:4px 8px}#settings-content input[type=checkbox]{width:18px;height:18px;accent-color:var(--ui-accent)}.settings-divider{border-top:1px solid var(--ui-border);margin:10px 0}.settings-button{width:100%;background:var(--ui-bg-hover);border:1px solid var(--ui-border);color:var(--ui-text);padding:8px 12px;border-radius:4px;cursor:pointer;font-size:12px;transition:all .2s}.settings-button:hover{background:var(--accent-color);border-color:var(--accent-color)}.settings-button.copied{background:#2a7a3a;border-color:#2a7a3a}.settings-link-buttons{display:flex;gap:6px}.settings-link-buttons .settings-button{flex:1;font-size:11px;padding:7px 6px}.scene-config-modal{position:fixed;top:0;left:0;right:0;bottom:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:1000}.scene-config-modal.hidden{display:none}.scene-config-modal-content{background:var(--ui-bg);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid var(--ui-border);border-radius:12px;padding:16px;width:480px;max-width:90vw;max-height:80vh;display:flex;flex-direction:column}.scene-config-modal-header{display:flex;justify-content:space-between;align-items:center;font-size:13px;color:var(--ui-text);margin-bottom:10px}.scene-config-textarea{flex:1;min-height:200px;max-height:50vh;background:#0000004d;border:1px solid var(--ui-border);border-radius:6px;color:var(--ui-text);font-family:Monaco,Menlo,monospace;font-size:11px;padding:10px;resize:vertical}.scene-config-textarea:focus{outline:none;border-color:var(--accent-color)}.scene-config-textarea.json-error{border-color:#f87171}.scene-config-modal-actions{margin-top:10px;display:flex;justify-content:flex-end}#view-mode{position:absolute;bottom:20px;right:20px;display:flex;overflow:hidden}#view-mode button{background:transparent;border:none;color:var(--ui-text-dim);padding:10px 20px;cursor:pointer;font-size:13px;font-weight:500;transition:all .2s}#view-mode button.active{background:var(--ui-accent);color:#fff}#view-mode button:not(.active):hover{background:#ffffff1a;color:var(--ui-text)}#nav-controls{position:absolute;bottom:20px;right:150px;display:flex;gap:2px;overflow:hidden}#nav-controls button{background:transparent;border:none;color:var(--ui-text-dim);padding:10px 14px;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center}#nav-controls button:not(:disabled):hover{background:#ffffff1a;color:var(--ui-text)}#nav-controls button:disabled{opacity:.3;cursor:not-allowed}#nav-controls button svg{width:18px;height:18px}#zoom-controller{position:absolute;right:20px;top:50%;transform:translateY(-50%);display:flex;flex-direction:column;align-items:center;padding:8px;gap:8px}#zoom-controller button{background:transparent;border:none;color:var(--ui-text-dim);width:32px;height:32px;cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:all .2s}#zoom-controller button:hover{background:#ffffff1a;color:var(--ui-text)}#zoom-controller button:active{background:#4a9eff4d}.zoom-track{position:relative;width:6px;height:150px;background:#ffffff1a;border-radius:3px;cursor:pointer}.zoom-fill{position:absolute;bottom:0;left:0;width:100%;background:linear-gradient(to top,var(--ui-accent),rgba(74,158,255,.3));border-radius:3px;transition:height .1s ease-out}.zoom-thumb{position:absolute;left:50%;bottom:0;transform:translate(-50%);width:14px;height:14px;background:var(--ui-accent);border:2px solid var(--ui-text);border-radius:50%;cursor:grab;transition:box-shadow .2s;box-shadow:0 2px 8px #0000004d}.zoom-thumb:hover{transform:translate(-50%) scale(1.2);box-shadow:0 0 12px #4a9eff80}.zoom-thumb:active{cursor:grabbing}.zoom-label{text-align:center;margin-top:4px;width:60px}#zoom-distance{font-family:var(--font-mono);font-size:10px;color:var(--ui-text-dim);display:block;text-align:center}@media(max-width:768px){body:not(.is-mobile):not(.is-desktop) #zoom-controller{display:none}}#splash{position:absolute;top:0;left:0;width:100%;height:100%;background:radial-gradient(ellipse at center,#0a0f1eed,#000000f5);display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:1000;transition:opacity .8s ease-out}#splash.hidden{opacity:0;pointer-events:none}#splash.hidden *{pointer-events:none!important}.splash-content{display:flex;flex-direction:column;align-items:center;text-align:center;padding:40px;animation:fadeInUp .6s ease-out}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.splash-logo{margin-bottom:24px;animation:float 3s ease-in-out infinite}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.splash-logo svg{filter:drop-shadow(0 0 20px rgba(74,158,255,.3))}.splash-title{font-size:48px;font-weight:200;letter-spacing:8px;text-transform:uppercase;color:var(--ui-text);margin-bottom:8px;background:linear-gradient(135deg,#fff,#4a9eff,#fff);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.splash-tagline{font-size:14px;letter-spacing:4px;text-transform:uppercase;color:var(--ui-accent);margin-bottom:32px}.splash-description{font-size:15px;line-height:1.8;color:var(--ui-text-dim);max-width:500px;margin-bottom:48px}.splash-log{max-height:180px;width:340px;overflow-y:auto;text-align:left;scrollbar-width:thin;scrollbar-color:rgba(74,158,255,.3) transparent}.splash-log::-webkit-scrollbar{width:4px}.splash-log::-webkit-scrollbar-thumb{background:#4a9eff4d;border-radius:2px}.splash-log-entry{display:flex;align-items:center;gap:8px;padding:3px 0;font-size:12px;color:#8090b080;animation:logFadeIn .3s ease-out}@keyframes logFadeIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.splash-log-entry.active{color:var(--ui-text-dim)}.splash-log-entry.error{color:#ff6b6b}.splash-log-icon{width:14px;height:14px;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:10px}.splash-log-entry.done .splash-log-icon:before{content:"✓";color:#4a9eff80}.splash-log-entry.active .splash-log-icon:before{content:"";display:block;width:10px;height:10px;border:1.5px solid rgba(74,158,255,.2);border-top-color:var(--ui-accent);border-radius:50%;animation:spin .8s linear infinite}.splash-log-entry.error .splash-log-icon:before{content:"✗";color:#ff6b6b}@keyframes spin{to{transform:rotate(360deg)}}.splash-log-text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.splash-loader.hidden{display:none}.splash-enter{display:flex;align-items:center;gap:8px;margin-top:32px;padding:14px 32px;background:linear-gradient(135deg,#4a9eff4d,#4a9eff1a);border:1px solid var(--ui-accent);border-radius:30px;color:var(--ui-text);font-size:15px;font-weight:500;letter-spacing:1px;cursor:pointer;transition:all .3s ease;animation:fadeIn .5s ease-out,pulse 2s ease-in-out infinite}@keyframes fadeIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}@keyframes pulse{0%,to{box-shadow:0 0 #4a9eff66}50%{box-shadow:0 0 20px 5px #4a9eff33}}.splash-enter:hover{background:linear-gradient(135deg,#4a9eff80,#4a9eff33);transform:scale(1.05);box-shadow:0 0 30px #4a9eff66}.splash-enter:active{transform:scale(.98)}.splash-enter.hidden,.splash-loader.hidden{display:none}.splash-footer{position:absolute;bottom:0;left:0;right:0;padding:24px;display:flex;flex-direction:column;align-items:center;gap:16px}#splash-ad-space{width:100%;max-width:728px;min-height:90px;display:flex;align-items:center;justify-content:center}.splash-credits{font-size:11px;color:#8090b099;letter-spacing:1px}@media(max-width:768px){.splash-title{font-size:32px;letter-spacing:4px}.splash-tagline{font-size:12px;letter-spacing:2px}.splash-description{font-size:14px;padding:0 20px}.splash-description br{display:none}#splash-ad-space{max-width:320px;min-height:50px}}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--ui-border);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--ui-accent)}@media(max-width:768px){body:not(.is-mobile):not(.is-desktop) #time-arc-container{height:120px}body:not(.is-mobile):not(.is-desktop) #search-panel{width:calc(100% - 40px);left:20px;right:20px}body:not(.is-mobile):not(.is-desktop) #info-panel{width:calc(100% - 40px);top:auto;bottom:140px;left:20px;right:20px;max-height:40vh;overflow-y:auto}body:not(.is-mobile):not(.is-desktop) #settings-panel{right:20px;top:80px}body:not(.is-mobile):not(.is-desktop) #view-mode{bottom:150px;right:20px}body:not(.is-mobile):not(.is-desktop) #nav-controls{bottom:150px;right:130px}}.body-tooltip{position:fixed;z-index:1000;background:var(--ui-bg);border:1px solid var(--ui-border);border-radius:var(--ui-radius);box-shadow:var(--ui-shadow);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);padding:12px 16px;pointer-events:none;min-width:150px;max-width:280px;transition:opacity .15s ease}.body-tooltip.hidden{opacity:0;visibility:hidden}.body-tooltip .tooltip-name{font-size:16px;font-weight:600;color:var(--ui-text);margin-bottom:4px}.body-tooltip .tooltip-type{font-size:12px;color:var(--ui-accent);margin-bottom:8px}.body-tooltip .tooltip-info{font-size:13px;color:var(--ui-text-dim);line-height:1.5}.body-tooltip .tooltip-info .info-label{color:var(--ui-text);font-weight:500}canvas{cursor:default}canvas.hovering-body{cursor:pointer}#object-menu-container{position:absolute;top:20px;left:20px;bottom:240px;width:auto;pointer-events:auto;z-index:200}.object-menu{background:var(--ui-bg);border:1px solid var(--ui-border);border-radius:var(--ui-radius);box-shadow:var(--ui-shadow);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);overflow:hidden;display:flex;flex-direction:column;max-height:100%;transition:width .3s ease}.object-menu.mode-search,.object-menu.mode-tree{width:280px}.object-menu.mode-expanded{width:360px}.menu-header{padding:12px;border-bottom:1px solid var(--ui-border);flex-shrink:0;position:relative}.object-menu.mode-search .menu-header{border-bottom:none}.search-wrapper{display:flex;gap:8px;align-items:center}.menu-search{flex:1;background:#0000004d;border:1px solid var(--ui-border);border-radius:6px;padding:8px 12px;color:var(--ui-text);font-size:14px;outline:none;transition:border-color .2s}.menu-search:focus{border-color:var(--ui-accent)}.menu-search::placeholder{color:var(--ui-text-dim)}.menu-toggle{background:#0000004d;border:1px solid var(--ui-border);border-radius:6px;width:36px;height:36px;color:var(--ui-text);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s,border-color .2s}.menu-toggle:hover{background:#4a9eff33;border-color:var(--ui-accent)}.toggle-icon{font-size:12px}.mode-toggle{display:flex;gap:2px;background:#0000004d;border-radius:6px;padding:2px}.mode-btn{background:transparent;border:none;width:28px;height:28px;border-radius:4px;cursor:pointer;font-size:12px;display:flex;align-items:center;justify-content:center;transition:background .2s}.mode-btn:hover{background:#4a9eff33}.mode-btn.active{background:var(--ui-accent)}.search-results{position:absolute;top:100%;left:0;right:0;background:var(--ui-bg);border:1px solid var(--ui-border);border-top:none;border-radius:0 0 var(--ui-radius) var(--ui-radius);max-height:300px;overflow-y:auto;z-index:10}.search-result{display:flex;align-items:center;gap:8px;padding:8px 12px;cursor:pointer;transition:background .15s}.search-result:hover{background:#4a9eff26}.search-result.active{background:#4a9eff4d}.search-result .body-type{margin-left:auto;font-size:11px;color:var(--ui-text-dim);background:#0000004d;padding:2px 6px;border-radius:4px}.no-results{padding:12px;text-align:center;color:var(--ui-text-dim);font-size:13px}.more-results{padding:8px 12px;text-align:center;color:var(--ui-text-dim);font-size:12px;border-top:1px solid var(--ui-border)}.menu-content{flex:1;overflow-y:auto;overflow-x:hidden}.object-menu.mode-search .menu-content{display:none}.expanded-content{padding:0}.tag-filters{padding:10px 12px;border-bottom:1px solid var(--ui-border)}.tag-search-row{display:flex;align-items:center;gap:10px;margin-bottom:8px}.filter-label{font-size:11px;color:var(--ui-text-dim);text-transform:uppercase;letter-spacing:.5px;flex-shrink:0}.tag-search-input{flex:1;background:#0000004d;border:1px solid var(--ui-border);border-radius:4px;padding:5px 10px;color:var(--ui-text);font-size:12px;outline:none}.tag-search-input:focus{border-color:var(--ui-accent)}.tag-search-input::placeholder{color:var(--ui-text-dim)}.selected-tags{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px;padding-bottom:8px;border-bottom:1px dashed var(--ui-border)}.tag-remove{margin-left:4px;font-weight:700}.clear-tags-btn{background:transparent;border:1px dashed var(--ui-border);border-radius:12px;padding:4px 10px;font-size:11px;color:var(--ui-text-dim);cursor:pointer;transition:all .2s}.clear-tags-btn:hover{border-color:#e57373;color:#e57373}.tag-chips{display:flex;flex-wrap:wrap;gap:6px}.more-tags-hint,.no-tags-found{font-size:11px;color:var(--ui-text-dim);font-style:italic;padding:4px 0}.tag-chip{background:#0000004d;border:1px solid var(--ui-border);border-radius:12px;padding:4px 10px;font-size:11px;color:var(--ui-text);cursor:pointer;display:flex;align-items:center;gap:4px;transition:all .2s}.tag-chip:hover{background:#4a9eff33;border-color:var(--ui-accent)}.tag-chip.active{background:var(--ui-accent);border-color:var(--ui-accent);color:#000}.tag-chip .tag-count{background:#0003;padding:1px 5px;border-radius:8px;font-size:10px}.tag-chip.active .tag-count{background:#ffffff4d}.type-filters{padding:10px 12px;border-bottom:1px solid var(--ui-border)}.type-toggles{display:flex;flex-wrap:wrap;gap:8px}.type-toggle{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--ui-text);cursor:pointer}.type-toggle input{accent-color:var(--ui-accent)}.body-list{padding:8px 0}.type-section{margin-bottom:4px}.type-header{display:flex;align-items:center;gap:8px;padding:8px 12px;background:#0003;font-size:12px;font-weight:500;color:var(--ui-text);-webkit-user-select:none;user-select:none}.type-header:hover{background:#4a9eff1a}.type-header-text{display:flex;align-items:center;gap:8px;flex:1;cursor:pointer}.type-visibility{position:relative;display:flex;align-items:center;cursor:pointer}.type-visibility input{position:absolute;opacity:0;width:0;height:0}.type-visibility .checkmark{width:16px;height:16px;border:2px solid var(--ui-border);border-radius:3px;background:transparent;transition:all .2s;position:relative}.type-visibility input:checked+.checkmark{background:var(--ui-accent);border-color:var(--ui-accent)}.type-visibility .checkmark:after{content:"✓";display:none;color:#fff;font-size:10px;position:absolute;top:-1px;left:2px}.type-visibility input:checked+.checkmark:after{display:block}.type-visibility .checkmark.indeterminate,.group-visibility .checkmark.indeterminate,.body-visibility .checkmark.indeterminate{background:var(--ui-accent);border-color:var(--ui-accent)}.type-visibility .checkmark.indeterminate:after,.group-visibility .checkmark.indeterminate:after,.body-visibility .checkmark.indeterminate:after{content:"−";display:block;color:#fff;font-size:14px;font-weight:700;line-height:12px;position:absolute;top:-1px;left:2px}.selection-controls{display:flex;align-items:center;gap:8px;padding:8px 12px;background:#00000026;border-bottom:1px solid var(--ui-border)}.selection-label{font-size:11px;color:var(--ui-text-dim)}.selection-btn{padding:4px 10px;font-size:11px;background:#4a9eff33;border:1px solid var(--ui-border);border-radius:4px;color:var(--ui-text);cursor:pointer;transition:all .15s}.selection-btn:hover{background:#4a9eff66;border-color:var(--ui-accent)}.selection-count{margin-left:auto;font-size:11px;color:var(--ui-text-dim)}.type-collapse-btn{background:none;border:none;color:var(--ui-text-dim);cursor:pointer;padding:0;width:16px;font-size:10px;display:flex;align-items:center;justify-content:center}.type-name{flex:1}.type-count{font-size:11px;color:var(--ui-text-dim);background:#0000004d;padding:2px 6px;border-radius:10px}.type-bodies{padding:4px 0;max-height:50000px;overflow:hidden;transition:max-height .3s ease}.type-section.collapsed .type-bodies{max-height:0;padding:0}.expanded-body{display:flex;align-items:center;gap:6px;padding:6px 12px;cursor:pointer;transition:background .15s}.expanded-body:hover{background:#4a9eff26}.expanded-body.active{background:#4a9eff4d}.body-tags{margin-left:auto;display:flex;gap:4px}.mini-tag{font-size:9px;padding:2px 6px;border-radius:8px;background:#3d5a8080;color:var(--ui-text-dim)}.menu-groups{padding:8px 0}.menu-group{margin-bottom:4px}.group-header{display:flex;align-items:center;gap:8px;padding:8px 12px;background:#0003;cursor:pointer;-webkit-user-select:none;user-select:none}.group-header:hover{background:#4a9eff1a}.group-visibility{position:relative;display:flex;align-items:center;cursor:pointer}.group-visibility input{position:absolute;opacity:0;width:0;height:0}.group-visibility .checkmark{width:16px;height:16px;border:2px solid var(--ui-border);border-radius:3px;background:transparent;transition:all .2s;position:relative}.group-visibility input:checked+.checkmark{background:var(--ui-accent);border-color:var(--ui-accent)}.group-visibility .checkmark:after{content:"✓";display:none;color:#fff;font-size:10px;position:absolute;top:0;left:3px}.group-visibility input:checked+.checkmark:after{display:block}.group-name{flex:1;font-weight:500;font-size:13px;color:var(--ui-text)}.group-count{font-size:11px;color:var(--ui-text-dim);background:#0000004d;padding:2px 6px;border-radius:10px}.group-collapse{background:none;border:none;color:var(--ui-text-dim);cursor:pointer;padding:4px;font-size:10px;transition:transform .2s}.menu-group.collapsed .group-collapse{transform:rotate(-90deg)}.visible-filter-btn{background:none;border:none;color:var(--ui-text-dim);cursor:pointer;padding:2px 4px;opacity:.3;transition:opacity .15s;display:flex;align-items:center}.visible-filter-btn:hover{opacity:.7}.visible-filter-btn.active{opacity:1;color:var(--ui-accent, #4a9eff)}.group-items{max-height:50000px;overflow:hidden;transition:max-height .3s ease}.menu-group.collapsed .group-items{max-height:0}.body-item{margin-left:8px}.body-row{display:flex;align-items:center;gap:6px;padding:6px 12px;cursor:pointer;border-radius:4px;transition:background .15s}.body-row:hover{background:#4a9eff26}.body-row.active{background:#4a9eff4d}.satellite-toggle{background:none;border:none;color:var(--ui-text-dim);cursor:pointer;padding:2px;font-size:8px;width:16px;transition:transform .2s}.body-item.satellites-expanded .satellite-toggle{transform:rotate(90deg)}.body-icon{font-size:14px;width:20px;text-align:center}.body-name{font-size:13px;color:var(--ui-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.satellite-list{margin-left:22px;max-height:0;overflow:hidden;transition:max-height .3s ease}.body-item.satellites-expanded .satellite-list{max-height:500px}.satellite-item{display:flex;align-items:center;gap:6px;padding:4px 12px;cursor:pointer;border-radius:4px;transition:background .15s}.satellite-item:hover{background:#4a9eff26}.satellite-item.active{background:#4a9eff4d}.satellite-item .body-icon{font-size:12px}.satellite-item .body-name{font-size:12px;color:var(--ui-text-dim)}.body-visibility{position:relative;display:flex;align-items:center;cursor:pointer;flex-shrink:0}.body-visibility input{position:absolute;opacity:0;width:0;height:0}.body-visibility .checkmark{width:14px;height:14px;border:2px solid var(--ui-border);border-radius:3px;background:transparent;transition:all .2s;display:flex;align-items:center;justify-content:center}.body-visibility input:checked+.checkmark{background:var(--ui-accent);border-color:var(--ui-accent)}.body-visibility .checkmark:after{content:"✓";display:none;color:#fff;font-size:9px;font-weight:700}.body-visibility input:checked+.checkmark:after{display:block}.body-clickable{display:flex;align-items:center;gap:6px;flex:1;min-width:0}.nav-context-btn{display:flex;align-items:center;justify-content:center;width:22px;height:22px;padding:0;margin-left:auto;flex-shrink:0;background:none;border:1px solid transparent;border-radius:4px;color:var(--ui-text-dim);cursor:pointer;opacity:0;transition:opacity .15s,background .15s,border-color .15s}.body-row:hover .nav-context-btn,.satellite-item:hover .nav-context-btn,.search-result:hover .nav-context-btn,.expanded-body:hover .nav-context-btn{opacity:.6}.nav-context-btn:hover{opacity:1!important;background:#ffffff1a;border-color:var(--ui-border);color:var(--accent-color)}.nav-popup{position:fixed;z-index:1000;min-width:160px;max-width:220px;background:var(--ui-bg);border:1px solid var(--ui-border);border-radius:6px;padding:4px;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:0 4px 16px #0006}.nav-popup-loading,.nav-popup-empty{padding:8px 12px;color:var(--ui-text-dim);font-size:12px;text-align:center}.nav-popup-section-label{font-size:10px;color:var(--ui-text-dim);text-transform:uppercase;letter-spacing:.5px;padding:6px 10px 2px}.nav-popup-item{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;padding:6px 10px;background:none;border:none;border-radius:4px;color:var(--ui-text);font-size:12px;cursor:pointer;text-align:left;transition:background .12s}.nav-popup-item:hover{background:#4a9eff33}.nav-popup-detail{font-size:10px;color:var(--ui-text-dim);white-space:nowrap}.menu-content::-webkit-scrollbar{width:6px}.menu-content::-webkit-scrollbar-track{background:transparent}.menu-content::-webkit-scrollbar-thumb{background:#6496ff4d;border-radius:3px}.menu-content::-webkit-scrollbar-thumb:hover{background:#6496ff80}#debug-panel{position:absolute;bottom:240px;left:20px;padding:12px 16px;min-width:200px;font-family:var(--font-mono);font-size:12px}#debug-panel.hidden{display:none}.debug-title{font-size:11px;font-weight:600;color:var(--ui-accent);text-transform:uppercase;letter-spacing:1px;margin-bottom:10px;padding-bottom:6px;border-bottom:1px solid var(--ui-border)}.debug-row{display:flex;justify-content:space-between;padding:4px 0;gap:12px}.debug-label{color:var(--ui-text-dim)}.debug-value{color:var(--ui-text);text-align:right}.debug-actions{margin-top:8px;padding-top:8px;border-top:1px solid var(--ui-border)}.debug-button{background:var(--ui-bg-hover);border:1px solid var(--ui-border);color:var(--ui-text);padding:4px 8px;border-radius:4px;cursor:pointer;font-size:11px}.debug-button:hover{background:var(--accent-color);border-color:var(--accent-color)}.scene-export-dialog{padding:0;border:none;border-radius:12px;background:var(--ui-bg);color:var(--ui-text);max-width:900px;width:90vw;max-height:85vh;overflow:hidden;box-shadow:0 20px 60px #00000080}.scene-export-dialog::backdrop{background:#000000b3;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.export-dialog-content{display:flex;flex-direction:column;height:100%;max-height:85vh}.export-dialog-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid var(--ui-border)}.export-dialog-header h2{margin:0;font-size:18px;font-weight:500}.export-dialog-close{background:none;border:none;color:var(--ui-text-dim);font-size:24px;cursor:pointer;padding:4px 8px;line-height:1}.export-dialog-close:hover{color:var(--ui-text)}.export-dialog-body{display:flex;flex:1;min-height:0;overflow:hidden}.export-body-picker{width:280px;min-width:280px;display:flex;flex-direction:column;border-right:1px solid var(--ui-border)}.export-picker-header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border-bottom:1px solid var(--ui-border)}.picker-title{font-weight:500;font-size:13px}.picker-actions{display:flex;gap:4px}.picker-btn{background:var(--ui-bg-hover);border:1px solid var(--ui-border);color:var(--ui-text-dim);padding:4px 8px;border-radius:4px;font-size:11px;cursor:pointer}.picker-btn:hover{background:var(--accent-color);border-color:var(--accent-color);color:var(--ui-text)}.export-body-tree{flex:1;overflow-y:auto;padding:8px 0}.picker-status{padding:8px 16px;border-top:1px solid var(--ui-border);font-size:12px;color:var(--ui-text-dim)}.export-body-item{padding:4px 16px}.export-satellite-item{padding:4px 8px;display:flex;align-items:center;gap:8px}.export-body-item .body-row{display:flex;align-items:center;gap:8px;width:100%}.export-body-item:hover,.export-satellite-item:hover{background:var(--ui-bg-hover)}.export-checkbox{position:relative;display:flex;align-items:center;cursor:pointer}.export-checkbox input{width:16px;height:16px;accent-color:var(--accent-color)}.satellite-toggle{background:none;border:none;color:var(--ui-text-dim);cursor:pointer;padding:0;font-size:10px;width:16px}.satellite-spacer{width:16px}.body-icon{font-size:14px}.body-name{font-size:13px}.export-satellite-list{margin-left:48px}.export-group{margin-bottom:4px}.export-group-header{display:flex;align-items:center;gap:8px;padding:6px 16px;background:var(--ui-bg-hover);cursor:pointer}.export-group-header .group-name{flex:1;font-weight:500;font-size:13px}.export-group-header .group-count{font-size:11px;color:var(--ui-text-dim)}.export-group-header .group-collapse{background:none;border:none;color:var(--ui-text-dim);cursor:pointer;padding:2px 4px;font-size:10px}.export-group-items{display:block}.export-group.collapsed .export-group-items{display:none}.export-preview{flex:1;display:flex;flex-direction:column;min-width:0}.export-preview-header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border-bottom:1px solid var(--ui-border)}.preview-title{font-weight:500;font-size:13px}.preview-size{font-size:11px;color:var(--ui-text-dim)}.export-preview-content{flex:1;margin:0;padding:16px;overflow:auto;background:#0000004d;font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:11px;line-height:1.5;white-space:pre;color:var(--ui-text)}.export-preview-content.preview-disabled{display:flex;align-items:center;justify-content:center;text-align:center;color:var(--ui-text-dim);font-family:inherit;font-size:13px;white-space:pre-wrap}.export-dialog-footer{display:flex;justify-content:flex-end;gap:8px;padding:16px 20px;border-top:1px solid var(--ui-border)}.export-btn{padding:8px 16px;border-radius:6px;font-size:13px;cursor:pointer;border:1px solid var(--ui-border);background:var(--ui-bg-hover);color:var(--ui-text);transition:all .2s}.export-btn:hover{background:var(--ui-bg);border-color:var(--accent-color)}.export-btn.primary{background:var(--accent-color);border-color:var(--accent-color);color:#fff}.export-btn.primary:hover{background:#3d8af0}.export-btn.secondary{background:transparent}body.is-mobile{--touch-target-min: 44px}#time-arc-toggle{display:none;position:absolute;bottom:20px;left:50%;transform:translate(-50%);width:56px;height:56px;border-radius:50%;background:var(--ui-bg);border:1px solid var(--ui-border);color:var(--ui-text);font-size:24px;cursor:pointer;box-shadow:var(--ui-shadow);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);z-index:150;transition:all .3s ease}#time-arc-toggle:active{transform:translate(-50%) scale(.95)}#time-arc-toggle.expanded{background:var(--ui-accent);border-color:var(--ui-accent)}body.is-mobile #time-arc-container{bottom:-220px;transition:bottom .3s ease-out}body.is-mobile #time-arc-container.visible{bottom:0}body.is-mobile #zoom-controller{display:flex;right:12px;top:50%;bottom:auto;transform:translateY(-50%);padding:6px;gap:6px}body.is-mobile .zoom-track{height:100px}body.is-mobile #zoom-controller button{width:40px;height:40px}body.is-mobile .zoom-thumb{width:18px;height:18px}body.is-mobile .zoom-label{display:none}body.is-mobile #object-menu-container{position:absolute;top:auto;bottom:80px;left:12px;right:auto;width:auto;max-width:calc(100% - 100px);max-height:50vh;z-index:200}body.is-mobile .object-menu{max-height:50vh}body.is-mobile .object-menu.collapsed{width:auto;min-width:48px}body.is-mobile .object-menu.collapsed .menu-header{padding:8px}body.is-mobile .object-menu.collapsed .menu-search{display:none}body.is-mobile .menu-toggle{width:44px;height:44px}body.is-mobile .body-row{padding:10px 12px;min-height:44px}body.is-mobile .satellite-item{padding:8px 12px;min-height:40px}body.is-mobile #info-panel{position:fixed;top:auto;bottom:0;left:0;right:0;width:100%;max-height:50vh;border-radius:var(--ui-radius) var(--ui-radius) 0 0;transform:translateY(100%);transition:transform .3s ease-out;z-index:300}body.is-mobile #info-panel:not(.hidden){transform:translateY(0)}body.is-mobile #info-panel.hidden{transform:translateY(100%)}body.is-mobile #info-close{top:12px;right:12px;font-size:28px;padding:8px}body.is-mobile #info-actions button{padding:12px 16px;font-size:14px;min-height:44px}body.is-mobile #settings-panel{position:fixed;top:12px;right:12px;left:auto;z-index:100000}body.is-mobile #settings-toggle{width:44px;height:44px;font-size:22px}body.is-mobile #settings-content{position:fixed;top:0;right:0;width:280px;max-width:85vw;height:100vh;padding:60px 20px 20px;background:#0a0f1e;border-left:1px solid var(--ui-border);transition:right .3s ease-out;overflow-y:auto;z-index:100001;box-shadow:-4px 0 20px #00000080;pointer-events:auto!important;touch-action:pan-y}body.is-mobile #settings-content.hidden{right:-280px;box-shadow:none;pointer-events:none!important;visibility:hidden;transition:right .3s ease-out,visibility 0s linear .3s}body.is-mobile #settings-content:not(.hidden){visibility:visible;transition:right .3s ease-out,visibility 0s linear 0s}.settings-close-btn{display:none}body.is-mobile .settings-close-btn{display:flex;align-items:center;justify-content:center;position:absolute;top:12px;right:12px;width:36px;height:36px;background:#ffffff1a;border:1px solid var(--ui-border);border-radius:50%;color:var(--ui-text);font-size:24px;cursor:pointer;z-index:10}body.is-mobile .settings-close-btn:active{background:#fff3}body.is-mobile #settings-content label{padding:12px 0;font-size:15px}body.is-mobile #settings-content select{padding:8px 12px;font-size:15px;min-height:44px}body.is-mobile #settings-content input[type=checkbox]{width:24px;height:24px}body.is-mobile #settings-content input[type=range]{height:8px}body.is-mobile #settings-content select,body.is-mobile #settings-content input,body.is-mobile #settings-content button,body.is-mobile #settings-content label{pointer-events:auto!important;touch-action:manipulation;position:relative;z-index:1}#settings-overlay{display:none;position:fixed;top:0;left:0;right:0;bottom:0;background:#0009;z-index:9998;pointer-events:auto!important;touch-action:manipulation}body.is-mobile #settings-overlay.visible{display:block}body.is-mobile #view-mode{bottom:20px;right:70px}body.is-mobile #view-mode button{padding:12px 16px;font-size:14px}body.is-mobile #nav-controls{bottom:20px;right:170px}body.is-mobile #nav-controls button{padding:12px 16px;min-width:44px;min-height:44px}body.is-mobile #debug-panel{display:none}body.is-mobile #time-arc-playback{padding:4px 8px}body.is-mobile #time-arc-playback button{width:48px;height:48px;font-size:20px}body.is-mobile #time-arc-playback button#time-arc-playpause{width:56px;height:56px;font-size:24px}body.is-mobile #time-arc-speed,body.is-mobile #time-arc-now{padding:12px 20px;font-size:14px;min-height:44px}body.is-mobile #time-arc-speed-menu{max-height:40vh}body.is-mobile .speed-menu-item{padding:12px 20px;font-size:15px}@media(max-width:480px){body.is-mobile #nav-controls{display:none}body.is-mobile #view-mode{right:12px}body.is-mobile #object-menu-container{max-width:calc(100% - 80px)}}@media(max-height:500px)and (orientation:landscape){body.is-mobile #time-arc-container{height:100px}body.is-mobile #time-arc-toggle{bottom:10px;width:48px;height:48px}body.is-mobile #info-panel{max-height:70vh}}body.has-touch .ui-panel button:active,body.has-touch .body-row:active,body.has-touch .satellite-item:active{background:#4a9eff4d}body.has-touch .menu-content,body.has-touch #info-details,body.has-touch #settings-content{-webkit-overflow-scrolling:touch;overscroll-behavior:contain}body.is-mobile .ui-panel,body.is-mobile #time-arc-container,body.is-mobile #time-arc-playback,body.is-mobile #time-arc-controls,body.is-mobile #time-arc-toggle,body.is-mobile #settings-overlay,body.is-mobile #object-menu-container,body.is-mobile #info-panel,body.is-mobile #zoom-controller,body.is-mobile #view-mode,body.is-mobile #nav-controls{pointer-events:auto;touch-action:manipulation}body.is-mobile button,body.is-mobile select,body.is-mobile input,body.is-mobile .body-row,body.is-mobile .satellite-item,body.is-mobile .speed-menu-item{pointer-events:auto;touch-action:manipulation;-webkit-tap-highlight-color:rgba(74,158,255,.3)}@supports (padding-bottom: env(safe-area-inset-bottom)){body.is-mobile #time-arc-container{padding-bottom:env(safe-area-inset-bottom)}body.is-mobile #time-arc-toggle{bottom:calc(20px + env(safe-area-inset-bottom))}body.is-mobile #info-panel{padding-bottom:env(safe-area-inset-bottom)}body.is-mobile #view-mode,body.is-mobile #nav-controls{bottom:calc(20px + env(safe-area-inset-bottom))}}#performance-panel-container{position:absolute;top:20px;left:310px;pointer-events:auto;z-index:200}#performance-panel-container.hidden{display:none}.perf-panel{background:var(--ui-bg);border:1px solid var(--ui-border);border-radius:var(--ui-radius);box-shadow:var(--ui-shadow);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);min-width:180px;font-family:var(--font-mono);font-size:11px}.perf-header{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;border-bottom:1px solid var(--ui-border)}.perf-title{font-size:11px;font-weight:600;color:var(--ui-accent);text-transform:uppercase;letter-spacing:1px}.perf-close{background:transparent;border:none;color:var(--ui-text-dim);font-size:16px;cursor:pointer;line-height:1;padding:0;width:20px;height:20px;display:flex;align-items:center;justify-content:center}.perf-close:hover{color:var(--ui-text)}.perf-content{padding:8px 0}.perf-section{padding:4px 12px}.perf-section-title{font-size:9px;font-weight:600;color:var(--ui-text-dim);text-transform:uppercase;letter-spacing:.5px;margin-bottom:4px;margin-top:4px}.perf-row{display:flex;justify-content:space-between;padding:2px 0;gap:12px}.perf-label{color:var(--ui-text-dim)}.perf-value{color:var(--ui-text);text-align:right}.perf-value.perf-good{color:var(--ui-success)}.perf-value.perf-warn{color:orange}.perf-value.perf-bad{color:var(--ui-danger)}body.is-mobile #performance-panel-container{top:auto;bottom:240px;left:12px;right:auto}@media(max-width:480px){#performance-panel-container{left:12px}}
