:root{color-scheme:dark;--bg: #080a14;--panel: #161820;--panel-border: #32302c;--text: #f0ece4;--home-text: #f4f0e8;--muted: #9a9388;--muted-mid: #c5c0b6;--accent: #2ecc71;--accent-dim: #1f8a4c;--danger: #e74c3c;--row-hover: #1e221c;--tour: #c9a35a;--tour-ink: #f3e2b8;font-family:Segoe UI,system-ui,sans-serif}*{box-sizing:border-box}html,body{margin:0;height:100%;height:100dvh;background:var(--bg);color:var(--text);overflow:hidden}#home-overlay{display:none}html.intro #home-overlay,html.intro-leaving #home-overlay{display:block;position:fixed;top:0;right:0;bottom:0;left:0;z-index:20;pointer-events:none}.home-header{position:absolute;top:0;left:0;z-index:3;padding:22px 28px}.home-logo{display:flex;align-items:center;gap:12px;width:max-content;color:var(--home-text);text-decoration:none;pointer-events:auto;filter:drop-shadow(0 2px 12px rgba(8,10,20,.9))}.home-logo .mark{width:36px;height:36px;display:block}.home-logo .word{font-family:Inter Tight,Segoe UI,sans-serif;font-weight:600;font-size:.95rem;letter-spacing:.18em;line-height:1.15}.home-copy{position:absolute;left:0;right:0;top:16vh;z-index:2;display:flex;flex-direction:column;align-items:center;text-align:center;padding:0 20px;pointer-events:none}.home-copy.is-entering{opacity:0}html.intro .home-copy:not(.is-entering){transition:opacity .55s ease}.home-title{margin:0 0 16px;color:var(--home-text);font-size:clamp(1.35rem,3.2vw,2.15rem);font-weight:600;line-height:1.15;letter-spacing:-.03em;text-shadow:0 2px 24px rgba(8,10,20,.85)}.home-blurb{margin:-6px 0 18px;max-width:28rem;color:var(--home-text);font-size:clamp(.82rem,1.6vw,1rem);font-weight:500;line-height:1.4;letter-spacing:-.01em;opacity:.78;text-shadow:0 2px 18px rgba(8,10,20,.85)}.home-copy .cta{pointer-events:auto;color:#fff;background:#1a73e8;border:none;border-radius:8px;font:inherit;font-size:.95rem;font-weight:600;padding:12px 22px;box-shadow:0 1px 3px #00000059;cursor:pointer}.home-copy .cta:hover{background:#1765cc}html.home-short .home-title{font-size:1.15rem;margin-bottom:10px}html.home-short .home-blurb{font-size:.8rem;max-width:22rem;margin:-2px 0 12px}html.home-short .home-copy .cta{padding:10px 18px;font-size:.88rem}.home-sighting{position:absolute;right:0;bottom:0;z-index:2;margin:0;padding:0 28px calc(22px + env(safe-area-inset-bottom,0px));text-align:right;pointer-events:none;color:var(--home-text);text-shadow:0 2px 16px rgba(8,10,20,.9);opacity:1}html.intro .home-sighting{transition:opacity .55s ease}.home-sighting-name{display:block;font-size:.92rem;font-weight:600;letter-spacing:.04em}.home-sighting-meta{display:block;margin-top:3px;font-size:.72rem;font-weight:500;letter-spacing:.01em;opacity:.7}html.home-short .home-sighting{padding:0 20px calc(16px + env(safe-area-inset-bottom,0px))}html.home-short .home-sighting-name{font-size:.8rem}html.home-short .home-sighting-meta{font-size:.66rem}html.intro #renderCanvas,html.intro-leaving #renderCanvas{pointer-events:none}html.intro #hud,html.intro #staff-nav,html.intro #field-toggles,html.intro #scene-loader span,html.intro #label-layer,html.intro #leader-layer,html.intro #hover-tip,html.intro #curvature-hud{opacity:0;visibility:hidden}html.intro #scene-loader{left:0;background:transparent;opacity:0;visibility:hidden}html.intro #sidebar{transform:translate(-105%)}html.no-sidebar-transition #sidebar{transition:none!important}html.intro-leaving .home-header{opacity:0;transition:opacity .5s ease}html.intro-leaving .home-copy{opacity:0;transition:opacity .55s ease}html.intro-leaving .home-sighting{opacity:0}html.intro-leaving #home-overlay{pointer-events:none}html.intro-leaving #sidebar{transform:none;transition:transform .85s cubic-bezier(.22,1,.36,1)}html.intro-leaving #hud{opacity:1;visibility:visible;transition:opacity .8s ease .35s}@media(prefers-reduced-motion:reduce){html.intro-leaving .home-header,html.intro-leaving .home-copy,html.intro-leaving .home-sighting,html.intro-leaving #sidebar,html.intro-leaving #hud,html.intro .home-copy:not(.is-entering),html.intro .home-sighting{transition:none}}#app{position:relative;height:100%}#sidebar{position:absolute;left:0;top:0;bottom:0;width:420px;display:flex;flex-direction:column;gap:12px;padding:16px;background:var(--panel);border-right:1px solid var(--panel-border);min-height:0;z-index:8;transition:transform .85s cubic-bezier(.22,1,.36,1),width .22s ease,padding .22s ease}#sidebar.is-collapsed{width:auto;height:auto;bottom:auto;right:auto;padding:16px 18px;gap:0;overflow:visible;background:transparent;border:none}#sidebar.is-collapsed .sidebar-header{justify-content:flex-start}#sidebar.is-collapsed .home-logo{filter:drop-shadow(0 2px 12px rgba(8,10,20,.9))}#sidebar.is-collapsed .home-logo .word,#sidebar.is-collapsed .sidebar-actions,#sidebar.is-collapsed #search-form,#sidebar.is-collapsed #search-results,#sidebar.is-collapsed #list-tools,#sidebar.is-collapsed #object-list,#sidebar.is-curvature #search-form,#sidebar.is-curvature #search-results,#sidebar.is-curvature #list-tools,#sidebar.is-curvature #object-list,#sidebar.is-curvature #sidebar-collapse{display:none!important}#sidebar.is-curvature #curvature-hud{position:relative;top:auto;bottom:auto;left:auto;transform:none;width:auto;flex:1;min-height:0;overflow:auto;padding:0 2px 4px;background:transparent;border:none;text-align:left}.sidebar-header{display:flex;align-items:center;justify-content:space-between;gap:12px;position:relative}.sidebar-actions{display:flex;align-items:center;gap:6px;position:relative;flex-shrink:0}.sidebar-header .home-logo{filter:none;color:var(--home-text)}.staff-nav{position:absolute;top:16px;right:16px;left:auto;z-index:13;display:flex;align-items:center;flex-wrap:wrap;gap:8px 12px;padding:6px 10px;border-radius:8px;background:#121a2ed9;border:1px solid var(--panel-border);pointer-events:auto}.staff-nav[hidden]{display:none!important}.staff-nav a,.staff-logout{color:var(--accent);text-decoration:none;background:none;border:0;padding:0;font:inherit;font-size:.75rem;cursor:pointer}.staff-nav a:hover,.staff-logout:hover{text-decoration:underline;color:var(--text)}.staff-logout{color:var(--muted)}.staff-log-toggle{display:inline-flex;align-items:center;gap:4px;color:var(--muted);font-size:.75rem;cursor:pointer;-webkit-user-select:none;user-select:none}.staff-log-toggle input{margin:0;accent-color:var(--accent)}.guide-menu-wrap{position:relative;flex-shrink:0}.guide-menu-btn{border:1px solid var(--panel-border);background:transparent;color:var(--muted);font:inherit;font-size:.72rem;font-weight:600;padding:5px 11px;border-radius:8px;cursor:pointer}.guide-menu-btn:hover,.guide-menu-btn[aria-expanded=true]{color:var(--text);border-color:#5a564c}.guide-menu{position:absolute;top:calc(100% + 6px);right:0;z-index:100;min-width:140px;padding:6px;background:#1c1a16;border:1px solid #5a564c;border-radius:10px;box-shadow:0 8px 28px #000000a6;display:flex;flex-direction:column;gap:2px}.guide-menu[hidden]{display:none}.guide-menu-item{display:block;width:100%;text-align:left;border:0;background:transparent;color:var(--text);font:inherit;font-size:.8rem;font-weight:600;padding:8px 10px;border-radius:7px;cursor:pointer}.guide-menu-item:hover,.guide-menu-item[aria-expanded=true]{background:#2a2722}#try-tour-panel,#guide-modal{position:fixed;top:50%;left:50%;right:auto;transform:translate(-50%,-50%);z-index:100;width:min(320px,calc(100vw - 24px));background:#1c1a16;border:1px solid var(--tour);border-radius:10px;padding:12px 14px 10px;box-shadow:0 8px 28px #0000008c}#guide-modal{width:min(340px,calc(100vw - 24px));max-height:calc(100vh - 32px);overflow:auto}#guide-modal[hidden]{display:none}#guide-modal .try-tour-head{cursor:default}@media(min-width:641px){#guide-modal{display:none!important}}.guide-modal-body{display:flex;flex-direction:column;gap:12px}.guide-modal-body section strong{display:block;font-size:.8rem;font-weight:600}.guide-modal-body section p{margin:3px 0 0;font-size:.72rem;line-height:1.35;color:var(--muted)}#try-tour-panel.is-dragging{-webkit-user-select:none;user-select:none}.try-tour-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:-2px 0 10px;padding-bottom:8px;border-bottom:1px solid #3a3428;font-size:.8rem;font-weight:600;color:var(--tour-ink);cursor:grab;-webkit-user-select:none;user-select:none}.try-tour-head-label{display:inline-flex;align-items:center;gap:7px}.try-tour-grip{width:10px;height:16px;fill:var(--tour);flex-shrink:0;opacity:.85}.try-tour-x{width:22px;height:22px;margin:-4px -4px -4px 0;padding:0;border:0;background:transparent;color:var(--muted);font:inherit;font-size:1.15rem;line-height:1;cursor:pointer;border-radius:4px}.try-tour-x:hover{color:var(--text)}#try-tour-panel.is-dragging .try-tour-head{cursor:grabbing}#try-tour-panel[hidden]{display:none}.try-tour-list{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:8px}.try-tour-item{display:grid;grid-template-columns:18px 1fr;gap:8px;align-items:start;cursor:pointer}.try-tour-check{width:18px;height:18px;border-radius:50%;border:1px solid #8a7348;display:flex;align-items:center;justify-content:center;margin-top:1px}.try-tour-check svg{width:12px;height:12px;display:block}.try-tour-check path{fill:none;stroke:var(--accent);stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}.try-tour-item.is-done .try-tour-check{background:transparent;border-color:transparent}.try-tour-item strong{display:block;font-size:.8rem;font-weight:600}.try-tour-item.is-done strong{color:var(--muted)}.try-tour-item span{display:block;margin-top:2px;font-size:.72rem;line-height:1.35;color:var(--muted)}.try-tour-hint{margin:10px 0 0;font-size:.72rem;color:var(--muted)}.try-tour-hint:empty{display:none}.try-tour-actions{display:flex;align-items:center;gap:8px;margin-top:10px}.try-tour-reset,.try-tour-close{border:1px solid #8a7348;background:transparent;color:var(--tour-ink);font:inherit;font-size:.72rem;padding:4px 10px;border-radius:8px;cursor:pointer}.try-tour-reset:hover,.try-tour-close:hover{border-color:var(--text)}html.intro:not(.intro-leaving) #guide-menu-btn,html.intro:not(.intro-leaving) #message-open,html.intro:not(.intro-leaving) #guide-menu,html.intro:not(.intro-leaving) #try-tour-panel,html.intro:not(.intro-leaving) #storyboard-panel,html.intro:not(.intro-leaving) #storyboard-create,html.intro:not(.intro-leaving) #storyboard-confirm,html.intro:not(.intro-leaving) #story-play-bar,html.intro:not(.intro-leaving) #guide-modal,html.intro:not(.intro-leaving) #message-dialog{display:none!important}.admin-only[hidden]{display:none!important}.settings-btn{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border:1px solid var(--panel-border);background:transparent;color:var(--muted);border-radius:8px;cursor:pointer;flex-shrink:0;transition:color .15s,border-color .15s;padding:0}.settings-btn svg{width:15px;height:15px}.settings-btn:hover,.settings-btn[aria-expanded=true]{color:var(--text);border-color:var(--text)}#message-dialog{position:fixed;top:0;right:0;bottom:0;left:0;z-index:120;display:flex;align-items:center;justify-content:center;padding:20px;background:#080a148c}#message-dialog[hidden]{display:none}.message-card{width:min(400px,100%);background:#1c1a16;border:1px solid var(--tour);border-radius:12px;padding:16px 18px 14px;box-shadow:0 8px 28px #0000008c}.message-card h2{margin:0 0 6px;font-size:1.05rem}.message-lead{margin:0 0 14px;color:var(--muted);font-size:.82rem;line-height:1.4}.message-field{display:flex;flex-direction:column;gap:5px;margin-bottom:12px;color:var(--muted);font-size:.75rem}.message-field input,.message-field textarea{width:100%;border:1px solid #4d5360;background:#2a2e38;color:var(--text);font:inherit;font-size:.88rem;border-radius:8px;padding:8px 10px;resize:vertical}.message-field input:focus,.message-field textarea:focus{outline:none;border-color:var(--accent)}.message-hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}.message-status{margin:0 0 10px;font-size:.8rem}.message-status.is-ok{color:var(--accent)}.message-status.is-err{color:#e8a0a0}.message-actions{display:flex;justify-content:flex-end;gap:8px}.message-actions button{border:1px solid var(--panel-border);background:transparent;color:var(--muted);font:inherit;font-size:.8rem;font-weight:600;padding:7px 12px;border-radius:8px;cursor:pointer}.message-actions button:hover{color:var(--text);border-color:#5a564c}#message-send{border-color:transparent;background:#1a73e8;color:#fff}#message-send:hover{background:#1765cc;color:#fff;border-color:transparent}#message-send:disabled{opacity:.6;cursor:default}#storyboard-panel{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);z-index:100;width:min(360px,calc(100vw - 24px));background:#1c1a16;border:1px solid var(--tour);border-radius:10px;padding:12px 14px 10px;box-shadow:0 8px 28px #0000008c}#storyboard-panel[hidden]{display:none}#storyboard-panel.is-dragging .try-tour-head,.story-create-card.is-dragging .story-create-head{cursor:grabbing}.story-lead,.story-empty,.story-status{margin:0 0 10px;color:var(--muted);font-size:.8rem;line-height:1.4}.story-status:empty{display:none}.story-list{display:flex;flex-direction:column;gap:8px;max-height:min(42vh,320px);overflow:auto;margin-bottom:10px}.story-item{display:flex;align-items:center;justify-content:space-between;gap:10px}.story-item strong{display:block;font-size:.88rem}.story-item span{display:block;color:var(--muted);font-size:.72rem}.story-item-btns{display:flex;gap:6px;flex:0 0 auto}.story-item button{flex:0 0 auto;border:1px solid var(--tour);background:transparent;color:var(--tour-ink);font:inherit;font-size:.75rem;font-weight:600;padding:5px 10px;border-radius:7px;cursor:pointer}#storyboard-create{position:fixed;top:0;right:0;bottom:0;left:0;z-index:120;display:flex;align-items:center;justify-content:center;padding:20px;background:#080a148c}#storyboard-create[hidden],#storyboard-confirm[hidden],#story-play-bar[hidden]{display:none}#story-play-bar{position:fixed;left:50%;bottom:28px;transform:translate(-50%);z-index:140;display:flex;flex-direction:column;align-items:center;gap:10px;pointer-events:none}.story-play-caption{margin:0;color:var(--text);font-size:.92rem;font-weight:600;text-shadow:0 1px 8px rgba(0,0,0,.7)}.story-play-btns{display:flex;gap:10px;pointer-events:auto}.story-play-stop,.story-play-go{border:1px solid var(--tour);background:#1c1a16;color:var(--tour-ink);font:inherit;font-size:.95rem;font-weight:700;padding:10px 22px;border-radius:10px;cursor:pointer;box-shadow:0 8px 28px #0000008c}.story-play-go{background:var(--tour);color:#1c1a16}.story-play-stop:hover,.story-play-go:hover{filter:brightness(1.08)}#storyboard-confirm{position:fixed;top:0;right:0;bottom:0;left:0;z-index:130;display:flex;align-items:center;justify-content:center;padding:20px;background:#080a148c}.story-confirm-card{width:min(400px,100%)}.story-del,.story-del-btn{border-color:#8a4040!important;color:#e8a0a0!important}.story-item button.story-del:hover,.story-del-btn:hover{border-color:#c06060!important;color:#ffd0d0!important}#story-delete{margin-right:auto}.story-create-card{width:min(520px,100%);max-height:min(78vh,680px);display:flex;flex-direction:column;overflow:hidden}.story-create-card>:not(.story-steps){flex:0 0 auto}.story-create-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:-2px 0 10px;padding-bottom:8px;border-bottom:1px solid #3a3428;cursor:grab;-webkit-user-select:none;user-select:none}.story-create-head h2{margin:0;font-size:1.05rem}.story-steps-head{font-size:.75rem;color:var(--muted);margin-bottom:6px}.story-steps{display:flex;flex-direction:column;gap:8px;margin-bottom:8px;flex:1 1 auto;min-height:0;max-height:min(38vh,320px);overflow-y:auto;padding-right:4px}.story-step{display:grid;grid-template-columns:22px minmax(0,1fr) 52px;gap:6px;align-items:start}.story-step-n{color:var(--muted);font-size:.75rem;padding-top:8px}.story-step select,.story-step input{width:100%;border:1px solid #4d5360;background:#2a2e38;color:var(--text);font:inherit;font-size:.8rem;border-radius:7px;padding:6px 8px}.story-pick{position:relative}.story-pick-menu{position:absolute;left:0;right:0;top:calc(100% + 2px);z-index:2;max-height:180px;overflow:auto;background:#1c1a16;border:1px solid #4d5360;border-radius:7px;box-shadow:0 8px 20px #00000073}.story-pick-menu button{display:block;width:100%;text-align:left;border:0;background:transparent;color:var(--text);font:inherit;font-size:.8rem;padding:6px 8px;cursor:pointer}.story-pick-menu button:hover{background:#2a2722}.story-zoom{display:flex;flex-direction:column;gap:6px}.story-zoom-row{display:grid;grid-template-columns:36px minmax(0,1fr);gap:6px;align-items:center;color:var(--muted);font-size:.72rem}.story-wait{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:.75rem;padding-top:4px}.story-wait input{width:5.5rem}.story-add,.story-step-rm,.story-step-ins{border:1px solid var(--panel-border);background:transparent;color:var(--muted);font:inherit;cursor:pointer}.story-add{font-size:.8rem;font-weight:600;padding:6px 10px;border-radius:7px;margin-bottom:10px}.story-step-ops{display:flex;gap:2px;padding-top:2px}.story-step-rm,.story-step-ins{font-size:1.1rem;line-height:1;width:24px;padding:4px 0;border-radius:7px}#tour-root{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40}#tour-root[hidden]{display:none!important}.tour-dismiss{position:absolute;top:0;right:0;bottom:0;left:0}.tour-ring{position:fixed;z-index:41;pointer-events:none;border:2px solid #f4c430;border-radius:8px;box-shadow:0 0 0 1px #00000059}.tour-ring-num{position:absolute;top:-11px;left:-11px}.tour-box{position:fixed;z-index:42;width:min(300px,calc(100vw - 24px));padding:12px;background:#1a2438;border:1px solid var(--panel-border);border-radius:10px;box-shadow:0 12px 28px #00000073}.tour-box-head{display:flex;align-items:center;gap:8px;margin:0 0 8px}.tour-box-head strong{font-size:.85rem;font-weight:600}.tour-num{flex:0 0 22px;width:22px;height:22px;border-radius:50%;background:#f4c430;color:#1a1404;font-size:.75rem;font-weight:700;line-height:22px;text-align:center}.tour-rows{margin:0;display:flex;flex-direction:column;gap:6px}.tour-box:has(.tour-gotit) .tour-rows{margin-bottom:12px}.tour-row{display:grid;grid-template-columns:auto 1fr;gap:6px 10px;align-items:start}.tour-k{color:#f4c430;font-size:.72rem;font-weight:600;white-space:nowrap}.tour-v{color:var(--muted);font-size:.78rem;line-height:1.35}.tour-gotit{display:block;width:100%;border:none;background:#1a73e8;color:#fff;font:inherit;font-size:.85rem;font-weight:600;padding:10px 18px;border-radius:8px;box-shadow:0 1px 3px #00000059;cursor:pointer}.tour-gotit:hover{background:#1765cc}.sidebar-header .home-logo .mark{width:32px;height:32px}.hint{margin:4px 0 0;color:var(--muted);font-size:.75rem}#search-form,#search-results,#list-tools{padding-right:14px;scrollbar-gutter:stable}.list-tools{display:flex;align-items:center;justify-content:space-between;gap:4px;flex-shrink:0}#search-form{display:flex}.search-field{display:flex;align-items:center;gap:8px;width:100%;padding:0 8px 0 10px;border-radius:8px;border:1px solid #4d5360;background:#2a2e38}.search-field:focus-within{border-color:var(--accent);background:#323744}.search-icon,.search-clear{flex:0 0 20px;width:20px;height:20px;color:#8b9bb8}.search-icon svg,.search-clear svg{display:block;width:100%;height:100%}.search-clear{padding:0;border:0;background:transparent;cursor:pointer}.search-clear:hover{color:var(--text)}#search-input{flex:1;min-width:0;padding:10px 0;border:0;background:transparent;color:var(--text);outline:none}#search-input::placeholder{color:#a8b0c0;opacity:1}#search-results{border:1px solid #4d5360;border-radius:8px;background:#2a2e38;max-height:160px;overflow:auto}.search-hit{display:block;width:100%;text-align:left;padding:8px 10px;border:0;background:transparent;color:var(--text);cursor:pointer;font:inherit}.search-hit:hover{background:var(--row-hover)}.search-hit .meta{display:block;color:var(--muted);font-size:.72rem}#object-list{flex:1;min-height:0;overflow:auto;display:flex;flex-direction:column;gap:14px;padding-right:14px;scrollbar-gutter:stable}#object-list.is-loading{color:var(--muted);font-size:.85rem;padding-top:8px}.section-title{margin:0 0 6px;font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.sets-box{border:1px solid var(--panel-border);border-radius:8px;padding:8px 0 6px;background:#12141c;margin-bottom:4px}.sets-box-head{display:flex;align-items:center;justify-content:flex-start;gap:8px;margin:0 0 4px;padding:0 4px;font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--text);cursor:pointer;-webkit-user-select:none;user-select:none}.sets-box-head .twistie{margin-top:0}.sets-box-head .section-star{color:var(--muted);cursor:default;display:grid;place-items:center}.sets-box-head .section-star svg{width:11px;height:11px;display:block}.sets-box-head .section-star path{fill:none;stroke:currentColor;stroke-width:1.8;stroke-linejoin:round}.favorites-empty{color:var(--muted);font-size:.75rem;padding:4px 4px 8px}.fav-star{width:20px;height:20px;margin-top:0;padding:0;border:0;background:transparent;color:#8b9bb8;cursor:pointer;display:grid;place-items:center}.fav-star svg{width:16px;height:16px;display:block}.fav-star path{fill:none;stroke:currentColor;stroke-width:1.8;stroke-linejoin:round;stroke-linecap:round}.fav-star:hover{color:#f4b400}.fav-star:disabled{opacity:.28;cursor:default;pointer-events:none}.fav-star.is-on{color:#f4b400}.fav-star.is-on path{fill:#f4b400;stroke:#f4b400}.tree-head{display:flex;align-items:baseline;justify-content:flex-end;gap:8px;margin-bottom:8px}.tree-head .section-title{margin:0}.tree-tools{display:flex;gap:6px;flex-shrink:0}.tree-tool-btn{border:1px solid var(--panel-border);background:transparent;color:var(--muted-mid);font-size:.65rem;padding:2px 6px;border-radius:4px;cursor:pointer;white-space:nowrap}.tree-tool-btn:hover{color:var(--text);border-color:#6a655c;background:#f0ece40f}.section-title.root-title{font-size:.8rem;letter-spacing:.1em;color:var(--text)}.object-tree,.tree-node,.tree-children{display:flex;flex-direction:column;gap:1px}.tree-children[hidden],.tree-children.is-collapsed{display:none!important}.object-row{--depth: 0;display:grid;grid-template-columns:14px auto 1fr auto 20px;gap:6px;align-items:start;padding:6px 4px;padding-left:calc(2px + var(--depth) * 14px);border-radius:6px}.twistie{width:14px;height:16px;margin-top:2px;padding:0;border:0;background:transparent;color:#ff9800;font-size:.62rem;line-height:16px;cursor:pointer;text-align:center}.twistie:hover{color:#ffc107}.twistie.is-leaf{cursor:default;visibility:hidden;pointer-events:none}.object-row.is-child{border-left:1px solid var(--panel-border);margin-left:calc(var(--depth) * 2px)}.object-row:hover{background:var(--row-hover)}.object-row.flash{outline:1px solid var(--accent);background:var(--row-hover)}.object-row.is-visiting{background:var(--row-hover)}.object-row input[type=checkbox]{width:16px;height:16px;margin-top:2px;accent-color:var(--accent)}.object-row input[type=checkbox]:disabled{opacity:.72;cursor:default}.ref-spacer{width:16px;height:16px;margin-top:2px}.object-main{min-width:0;display:flex;flex-direction:column;gap:2px}.object-row button.name{border:0;background:transparent;color:var(--text);text-align:left;padding:0;cursor:pointer;font:inherit}.object-row button.name:hover{color:var(--accent)}.name-disabled{color:#7a8aa8;font:inherit;display:inline-flex;align-items:center}.name-disabled .swatch{opacity:.55}.ref-link{align-self:flex-start;border:0;background:transparent;color:var(--accent);font-size:.68rem;padding:0;cursor:pointer;text-align:left}.ref-link:hover{text-decoration:underline}.object-row.is-ref .dist{opacity:.7}.object-row .dist{color:var(--muted);font-size:.72rem;white-space:nowrap;margin-top:2px;padding-right:4px}.swatch{width:8px;height:8px;border-radius:50%;display:inline-block;margin-right:6px;flex-shrink:0}.swatch.swatch-square{border-radius:1px}#stage{position:absolute;top:0;right:0;bottom:0;left:0}#field-toggles{position:absolute;top:16px;right:16px;z-index:13;display:flex;flex-direction:column;align-items:flex-end;gap:6px;padding:8px 8px 6px 12px;border-radius:14px;background:#0c101ae0;border:1px solid rgba(243,226,184,.45);box-shadow:0 0 0 1px #080a148c,0 8px 28px #00000073;pointer-events:auto}.field-hint{margin:0 6px 0 2px;color:#f3e2b8;font-size:.82rem;font-weight:600;letter-spacing:.01em;line-height:1.25;text-shadow:0 1px 10px rgba(8,10,20,.9);animation:field-hint-pulse 1.35s ease-in-out 5}.field-toggle-row{display:flex;align-items:center;gap:4px;padding:3px;border-radius:999px;background:#080a1473}@keyframes field-hint-pulse{0%,to{opacity:1}50%{opacity:.55}}@media(prefers-reduced-motion:reduce){.field-hint{animation:none}}.field-toggle{border:0;background:transparent;color:var(--muted);font:inherit;font-size:.72rem;font-weight:600;letter-spacing:.02em;padding:6px 14px;border-radius:999px;cursor:pointer}.field-toggle:hover{color:var(--text)}.field-toggle[aria-pressed=true]{color:#f4f0e8;background:#2ecc7147}html:has(#staff-nav:not([hidden])) #field-toggles{top:52px}#renderCanvas{width:100%;height:100%;display:block;outline:none;touch-action:none}#scene-loader{position:absolute;top:0;right:0;bottom:0;left:420px;display:flex;align-items:center;justify-content:center;background:#080a14;color:var(--muted);font-size:.9rem;letter-spacing:.04em;z-index:1;pointer-events:none}#scene-loader span{animation:loader-pulse 1.4s ease-in-out infinite}#scene-loader.is-done{opacity:0;visibility:hidden;transition:opacity .35s ease,visibility .35s}#sidebar.is-collapsed~#stage #scene-loader{left:0}@keyframes loader-pulse{50%{opacity:.45}}#hud{position:fixed;right:16px;top:56px;padding:8px 12px;border-radius:8px;background:#121a2ed9;border:1px solid var(--panel-border);font-size:.85rem;z-index:12;pointer-events:auto;display:flex;align-items:center;gap:12px}#hud[hidden]{display:none!important}#hud-go{color:var(--accent);text-decoration:none;-webkit-user-select:text;user-select:text;cursor:pointer}#hud-go:hover{text-decoration:underline;color:var(--text)}html:has(#staff-nav:not([hidden])) #hud{top:92px}#curvature-hud{position:absolute;top:16px;left:50%;transform:translate(-50%);z-index:11;width:min(560px,calc(100% - 32px));padding:10px 14px 12px;border-radius:10px;background:#0c101ae0;border:1px solid var(--panel-border);color:var(--text);pointer-events:auto;text-align:center}#sidebar:not(.is-collapsed)~#stage #curvature-hud{left:calc(50% + 210px)}.curvature-title{font-size:.78rem;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);margin-bottom:8px}.curvature-track{position:relative;height:28px}.curvature-planck{position:absolute;top:9px;height:10px;border-radius:2px;background:#4a90e273;pointer-events:none}.curvature-track input[type=range]{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;margin:0;background:transparent;accent-color:#c9a35a}.curvature-ends{display:flex;justify-content:space-between;font-size:.72rem;color:var(--muted);margin-top:2px}.curvature-caption,.curvature-stats{margin:8px 0 0;font-size:.78rem;line-height:1.35;color:var(--text)}.curvature-stats{margin-top:5px;padding-top:5px;border-top:1px solid var(--panel-border);color:var(--muted);font-variant-numeric:tabular-nums}#perf-hud{position:fixed;left:16px;bottom:16px;z-index:6;padding:6px 10px;border-radius:6px;background:#0c1220eb;border:1px solid var(--panel-border);color:var(--text);font:12px/1.4 ui-monospace,Consolas,monospace;pointer-events:none}@media(min-width:641px)and (max-width:1099px){#sidebar{width:400px}#scene-loader{left:400px}#sidebar.is-collapsed~#stage #scene-loader{left:0}}@media(max-width:640px){.home-header{padding:18px 20px}.home-title{font-size:1.2rem}.home-blurb{font-size:.78rem;max-width:18.5rem;margin-bottom:16px}.home-sighting{padding:0 20px calc(16px + env(safe-area-inset-bottom,0px))}.home-sighting-name{font-size:.8rem}.home-sighting-meta{font-size:.66rem}html.intro #sidebar{transform:translateY(-110%)}.sidebar-header{flex-shrink:0}.sidebar-header .home-logo .mark{width:26px;height:26px}.sidebar-header .home-logo .word{font-size:.72rem;letter-spacing:.14em}#tour-root{display:none!important}#guide-modal,#try-tour-panel{position:fixed;top:50%;left:50%;right:auto;transform:translate(-50%,-50%);width:min(320px,calc(100vw - 24px));max-height:calc(100vh - 32px);overflow:auto}#scene-loader{left:0}#sidebar{left:0;right:0;top:0;bottom:auto;width:auto;height:38vh;border-right:none;border-bottom:1px solid var(--panel-border);min-height:0;overflow:hidden;gap:8px;padding:8px 10px 10px}#sidebar.is-collapsed{padding:12px 14px}#search-input{padding:8px 0}#object-list{flex:1;min-height:0;overflow:auto;gap:8px}.tour-box.is-mobile{width:auto}#staff-nav{top:calc(38vh + 8px);right:8px;left:auto}#field-toggles{top:calc(38vh + 8px);right:8px}html:has(#staff-nav:not([hidden])) #field-toggles{top:calc(38vh + 44px)}#hud{top:calc(38vh + 48px);bottom:auto;right:8px}html:has(#staff-nav:not([hidden])) #hud{top:calc(38vh + 84px)}#curvature-hud{top:auto;bottom:12px;left:50%;width:calc(100% - 24px)}#sidebar.is-curvature #curvature-hud{bottom:auto;width:auto}#perf-hud{left:12px;bottom:auto;top:calc(38vh + 8px)}}html:has(body.logs-page),body.logs-page{overflow:auto;height:auto;min-height:100%}#charts-app{padding:20px 24px 48px;max-width:1100px;margin:0 auto}.chart-explain,.chart-card{background:var(--panel);border:1px solid var(--panel-border);border-radius:10px;padding:16px 18px;margin-bottom:16px}.chart-explain p,.chart-card p{margin:0 0 12px;color:var(--muted);font-size:.88rem;line-height:1.45}.chart-explain h2,.chart-card h2{margin:0 0 6px;font-size:1.05rem}.lod-svg{display:block;width:100%;height:auto}.chart-legend{display:flex;flex-wrap:wrap;gap:8px 16px;margin-top:10px;font-size:.78rem}.chart-leg{display:inline-flex;align-items:center;gap:6px}.chart-leg i{width:14px;height:3px;border-radius:1px}.chart-leg i.is-dash{background-image:linear-gradient(90deg,currentColor 60%,transparent 60%);background-size:8px 3px}.scrub-row{display:grid;grid-template-columns:1fr 280px;gap:16px;align-items:start}#radius-slider{width:100%;margin-top:8px}.radius-readout{font-family:ui-monospace,Consolas,monospace;font-size:.9rem;margin-bottom:8px}.radius-vals{display:grid;grid-template-columns:1fr auto;gap:4px 12px;font-size:.78rem}.radius-vals>div{display:contents}.radius-vals label{color:var(--muted)}.radius-vals span{font-family:ui-monospace,Consolas,monospace;text-align:right}@media(max-width:720px){.scrub-row{grid-template-columns:1fr}}#logs-app,#ips-app,#tools-app{padding:20px 24px 40px;max-width:1400px;margin:0 auto}.logs-header{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;margin-bottom:16px}.logs-header h1{margin:0;font-size:1.35rem}.logs-nav{display:flex;gap:10px;align-items:center}.logs-nav a,.logs-nav button{color:var(--accent);background:#12141c;border:1px solid var(--panel-border);border-radius:8px;padding:6px 10px;font:inherit;font-size:.8rem;cursor:pointer;text-decoration:none}.logs-now{background:var(--panel);border:1px solid var(--panel-border);border-radius:10px;padding:14px 16px;margin-bottom:16px}.now-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px 16px;font-size:.85rem}.now-grid label{display:block;color:var(--muted);font-size:.7rem;margin-bottom:2px}.now-grid code,.logs-table-wrap code{font-family:ui-monospace,Consolas,monospace;font-size:.78rem}.muted{color:var(--muted);font-size:.75rem}.flag-ok{color:var(--accent)}.flag-bad{color:#ffb4a8}.logs-table-wrap{overflow:auto;border:1px solid var(--panel-border);border-radius:10px}.logs-table-wrap table{width:100%;border-collapse:collapse;font-size:.78rem}.logs-table-wrap th,.logs-table-wrap td{text-align:left;padding:6px 8px;border-bottom:1px solid var(--panel-border);vertical-align:top}.logs-table-wrap th{color:var(--muted);font-weight:600;position:sticky;top:0;background:var(--panel)}.logs-table-wrap tr.is-warn{background:#e74c3c1f}.logs-table-wrap tr.is-wheel{background:#2ecc710f}.logs-table-wrap td.note{color:var(--muted);max-width:280px}.chart-recipe{margin:0 0 12px;padding-left:1.2rem;color:var(--muted);font-size:.88rem;line-height:1.5}.chart-recipe li{margin-bottom:6px}.chart-recipe code{font-size:.82em}.chart-dont{margin:0;padding-left:1.2rem;color:#c9a8a4;font-size:.84rem;line-height:1.45}.chart-dont li{margin-bottom:4px}.tools-bar .tools-actions{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px}.tools-filters{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-top:10px}.tools-filters input,.tools-filters select{font:inherit;font-size:.82rem;background:#12141c;color:var(--text);border:1px solid var(--panel-border);border-radius:6px;padding:4px 8px}.tools-detail td{background:#080c16a6}#logs-app,#ips-app,#tools-app,#galaxies-app{padding:20px 24px 40px;max-width:1400px;margin:0 auto}body.galaxies-page #galaxies-app{max-width:1600px;min-height:calc(100dvh + -0px)}.ws-layout{display:grid;grid-template-columns:minmax(280px,380px) 1fr;gap:18px;align-items:start}.ws-panel,.ws-stage{background:var(--panel);border:1px solid var(--panel-border);border-radius:10px}.ws-panel{padding:16px 16px 20px}.ws-form{display:flex;gap:8px;align-items:flex-end}.ws-field{display:flex;flex-direction:column;gap:4px;flex:1;margin:12px 0 0;font-size:.78rem;color:var(--muted-mid)}.ws-form .ws-field{margin:0}.ws-field input,.ws-flags input[type=range]{font:inherit;font-size:.88rem;background:#12141c;color:var(--text);border:1px solid var(--panel-border);border-radius:6px;padding:7px 8px}.ws-form button,.ws-actions button{font:inherit;font-size:.85rem;background:#12141c;color:var(--text);border:1px solid var(--panel-border);border-radius:8px;padding:7px 12px;cursor:pointer}.ws-form button:hover,.ws-actions button:hover,.ws-class:hover{border-color:var(--muted-mid);color:var(--text)}.ws-notes{display:grid;grid-template-columns:88px 1fr;gap:12px;margin:14px 0;font-size:.82rem;line-height:1.45;color:var(--muted)}.ws-notes[hidden]{display:none}.ws-thumb{width:88px;height:88px;object-fit:cover;border-radius:8px;background:#0b0d14}.ws-title{margin:0 0 4px;color:var(--text);font-weight:600}.ws-classes{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0}.ws-class{font:inherit;font-size:.78rem;background:#12141c;color:var(--muted-mid);border:1px solid var(--panel-border);border-radius:999px;padding:5px 10px;cursor:pointer}.ws-class[aria-pressed=true]{color:var(--text);border-color:var(--muted-mid);background:#1c1f28}.ws-flags{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin:8px 0 4px;font-size:.8rem;color:var(--muted-mid)}.ws-tilt{display:inline-flex;align-items:center;gap:8px;flex:1}.ws-tilt input{flex:1;min-width:80px}.ws-actions{margin-top:12px}.ws-lib-title{margin:20px 0 8px;font-size:.82rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--text)}.ws-library{list-style:none;margin:0;padding:0;max-height:220px;overflow:auto}.ws-library li{display:flex;justify-content:space-between;gap:8px;align-items:center;padding:4px 0}.ws-library button{font:inherit;font-size:.82rem;color:var(--text);background:none;border:0;padding:0;cursor:pointer;text-align:left}.ws-library button:hover{color:var(--home-text)}.ws-tune{margin:12px 0 0;padding:10px 12px 12px;border:1px solid var(--panel-border);border-radius:8px;background:#0d0f16}.ws-tune[hidden]{display:none}.ws-tune-title,.ws-ref-title{margin:0;font-size:.7rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--muted-mid)}.ws-tune-title{margin-bottom:8px;padding-bottom:6px;border-bottom:1px solid var(--panel-border);color:var(--text)}.ws-tune-row{display:grid;grid-template-columns:66px 1fr 46px;align-items:center;gap:10px;padding:4px 0;font-size:.79rem;color:var(--text)}.ws-tune-row output{font-size:.72rem;text-align:right;color:var(--muted-mid);font-variant-numeric:tabular-nums}.ws-tune input[type=range],.ws-tilt input[type=range]{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;min-width:0;height:4px;padding:0;border:0;border-radius:3px;background:#2a3140;cursor:pointer}.ws-tune input[type=range]::-webkit-slider-thumb,.ws-tilt input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:13px;height:13px;border:0;border-radius:50%;background:#7fb2ff;box-shadow:0 0 0 3px #7fb2ff29}.ws-tune input[type=range]::-moz-range-thumb,.ws-tilt input[type=range]::-moz-range-thumb{width:13px;height:13px;border:0;border-radius:50%;background:#7fb2ff}.ws-stage{min-height:560px;overflow:hidden}.ws-stage-grid{display:grid;grid-template-columns:1fr minmax(170px,260px);gap:12px;padding:10px}.ws-view{position:relative;min-width:0}#ws-canvas{display:block;width:100%;height:540px;border-radius:8px;background:#06070d}#ws-caption{position:absolute;left:12px;bottom:10px;margin:0;text-shadow:0 1px 8px #000}.ws-ref{display:flex;flex-direction:column;gap:6px;min-width:0}.ws-ref img{display:block;width:100%;border-radius:8px;border:1px solid var(--panel-border);background:#06070d}@media(max-width:1200px){.ws-stage-grid{grid-template-columns:1fr}.ws-ref img{max-width:320px}}@media(max-width:880px){.ws-layout{grid-template-columns:1fr}.ws-notes{grid-template-columns:64px 1fr}.ws-tune-row{grid-template-columns:60px 1fr 42px}}
