@import"https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=JetBrains+Mono:wght@400;500;600&display=swap";:root{--bg-deep: #0b0b0d;--bg-panel: rgba(24, 24, 27, .42);--bg-panel-solid: #1c1c1e;--bg-raised: #2c2c2e;--bg-input: rgba(44, 44, 46, .9);--border: rgba(255, 255, 255, .08);--border-mid: rgba(255, 255, 255, .14);--border-bright: rgba(255, 255, 255, .26);--text: #f5f5f7;--text-mid: #aeb0b6;--text-dim: #86878c;--accent: #0a84ff;--accent-dim: rgba(10, 132, 255, .18);--accent-bright: #4ba3ff;--amber: #e8a020;--amber-dim: rgba(232, 160, 32, .15);--cyan: #38b8d0;--cyan-dim: rgba(56, 184, 208, .12);--cyan-bright: #5cdcf0;--red: #ff5f56;--green: #30d158;--night: #a78bfa;--font-sans: "Inter", -apple-system, system-ui, sans-serif;--font-mono: "JetBrains Mono", "SF Mono", "Fira Code", monospace;--radius-sm: 8px;--radius: 12px;--radius-lg: 16px;--shadow: 0 12px 40px rgba(0, 0, 0, .55);--shadow-sm: 0 2px 14px rgba(0, 0, 0, .4);--scrubber-h: 96px;--panel-bottom: calc(32px + var(--scrubber-h) + 6px)}*{margin:0;padding:0;box-sizing:border-box}body{background:var(--bg-deep);color:var(--text);font-family:var(--font-sans);overflow:hidden;width:100vw;height:100vh}#scene-container{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0}#scene-container canvas{display:block;width:100%;height:100%}#intro-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:100;display:flex;flex-direction:column;align-items:center;justify-content:center;background:radial-gradient(ellipse at center,#080a124d,#040508f2);transition:opacity 1s ease}#intro-overlay.hidden{opacity:0;pointer-events:none}#intro-hud{text-align:center}.hud-title{font-family:var(--font-sans);font-weight:300;font-size:1.5rem;letter-spacing:.35em;color:var(--text);text-shadow:0 0 40px rgba(56,184,208,.2)}.hud-subtitle{font-family:var(--font-sans);font-weight:300;font-size:.8rem;color:var(--text-mid);margin-top:.6rem;letter-spacing:.2em;text-transform:uppercase}#intro-status{font-family:var(--font-sans);font-weight:400;font-size:.7rem;color:var(--accent);margin-top:2.5rem;letter-spacing:.05em}#skip-intro{position:absolute;top:1.5rem;right:1.5rem}#explore-btn{margin-top:3rem}.hud-btn{font-family:var(--font-sans);font-weight:400;font-size:.72rem;padding:.5rem 1.4rem;border:1px solid var(--border-mid);background:var(--bg-panel);color:var(--text-mid);cursor:pointer;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transition:all .2s;letter-spacing:.08em}.hud-btn:hover{border-color:var(--accent);color:var(--text)}.hud-btn.primary{border-color:var(--accent);color:var(--accent)}.hud-btn.primary:hover{background:var(--accent-dim);color:var(--accent-bright)}#main-hud{position:absolute;top:0;right:0;bottom:0;left:0;z-index:50;pointer-events:none}#main-hud>*{pointer-events:auto}.top-bar{height:48px;display:flex;align-items:center;padding:0 1rem;position:relative;background:linear-gradient(to bottom,rgba(0,0,0,.55),transparent);white-space:nowrap}#top-bar{position:absolute;top:0;left:0;right:0;z-index:80}.brand{display:flex;text-decoration:none;align-items:center;gap:.5rem;padding-right:.8rem}.brand-mark{font-size:1.1rem;color:var(--accent);opacity:.8}.brand-text{display:flex;flex-direction:column;gap:0}.brand-title{font-family:var(--font-sans);font-weight:500;font-size:.68rem;letter-spacing:.18em;color:var(--text);line-height:1.1}.brand-sub{font-family:var(--font-sans);font-weight:300;font-size:.62rem;letter-spacing:.1em;color:var(--text-dim);text-transform:uppercase;line-height:1.1}.toolbar-divider{width:1px;height:22px;background:var(--border);margin:0 .7rem}.surface-action{position:absolute;left:50%;bottom:162px;transform:translate(-50%);z-index:50;display:inline-flex;align-items:center;gap:.55rem;font-family:var(--font-sans);font-weight:500;font-size:.85rem;color:var(--text);background:var(--bg-panel);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border:1px solid var(--border-mid);border-radius:999px;box-shadow:var(--shadow-sm);padding:.66rem 1.42rem;cursor:pointer;transition:background .15s,border-color .15s,transform .1s}.surface-action:hover{background:var(--bg-raised);border-color:var(--border-bright)}.surface-action:active{transform:translate(-50%) scale(.97)}.surface-action svg{flex-shrink:0;color:var(--accent-bright)}.surface-action.active{color:var(--text-mid)}.surface-action.active:hover{color:var(--text)}.surface-action.active #surface-icon{display:none}@keyframes surface-bob{0%,to{transform:translate(-50%) translateY(0)}50%{transform:translate(-50%) translateY(-5px)}}.surface-action:not(.active){animation:surface-bob 2.4s ease-in-out infinite}.surface-action:hover{animation-play-state:paused}@media (prefers-reduced-motion: reduce){.surface-action{animation:none}}.toolbar-btn{font-family:var(--font-sans);font-weight:400;font-size:.68rem;padding:.3rem .8rem;border:1px solid var(--border);background:var(--bg-input);color:var(--text-mid);cursor:pointer;transition:all .15s;letter-spacing:.06em;display:flex;align-items:center;gap:.35rem}.toolbar-btn:hover{border-color:var(--border-bright);color:var(--text)}.toolbar-btn.primary{border-color:var(--accent);color:var(--accent)}.toolbar-btn.primary:hover{background:var(--accent-dim);color:var(--accent-bright)}.toolbar-btn.small{font-size:.6rem;padding:.2rem .5rem}.toolbar-btn svg{flex-shrink:0}a.toolbar-btn{text-decoration:none}#date-range{position:absolute;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:.5rem}.plan-action{margin-left:auto;display:inline-flex;align-items:center;gap:.35rem;font-family:var(--font-sans);font-size:.74rem;font-weight:500;color:var(--text);background:var(--bg-input);border:1px solid var(--border-mid);border-radius:var(--radius-sm);padding:.42rem .85rem;cursor:pointer;transition:background .15s,border-color .15s;text-decoration:none}.plan-action:hover{border-color:var(--border-bright);background:var(--bg-raised)}#current-instant{display:flex;align-items:center;gap:.45rem;padding:.25rem .7rem}.instant-label{font-family:var(--font-sans);font-weight:500;font-size:.62rem;letter-spacing:.14em;color:var(--text-dim)}.instant-value{font-family:var(--font-mono);font-weight:400;font-size:.78rem;color:var(--amber);letter-spacing:.03em;white-space:nowrap}.date-pill{display:inline-flex;align-items:center;gap:.55rem;padding:.5rem 1rem;border:1px solid var(--border-mid);border-radius:var(--radius-sm);background:var(--bg-input);color:var(--text);font-family:var(--font-sans);font-size:.9rem;font-weight:500;cursor:pointer;transition:background .15s,border-color .15s}.date-pill:hover:not(:disabled){border-color:var(--border-bright);background:var(--bg-raised)}.date-pill.active{border-color:var(--accent)}.date-pill:disabled{opacity:.6;cursor:default}.date-pill>svg:first-child{color:var(--text-mid);flex-shrink:0}.date-pill .date-pill-caret{color:var(--text-dim);flex-shrink:0}#date-pill-label{font-family:var(--font-mono);letter-spacing:.01em;white-space:nowrap}.date-label{font-family:var(--font-sans);font-weight:500;font-size:.62rem;letter-spacing:.12em;color:var(--text-dim)}.date-value{font-family:var(--font-mono);font-weight:400;font-size:.72rem;color:var(--accent);letter-spacing:.02em;background:transparent;border:none;outline:none;width:7.5em;padding:0}.date-value::placeholder{color:var(--text-dim);opacity:.4}.date-value.invalid{color:var(--amber)}.coord-label{font-family:var(--font-mono);font-weight:500;font-size:.62rem;letter-spacing:.1em;color:var(--text-dim);display:flex;align-items:center;gap:.3rem}.coord-label input{font-family:var(--font-mono);font-size:.72rem;background:var(--bg-input);border:1px solid var(--border);color:var(--text);padding:.2rem .4rem;width:5.5em}.date-picker{position:absolute;top:100%;z-index:200;background:var(--bg-panel);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid var(--border);border-radius:var(--radius);padding:.75rem;width:272px;box-shadow:var(--shadow)}.dp-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.5rem}.dp-title{font-family:var(--font-mono);font-weight:400;font-size:.72rem;color:var(--text);letter-spacing:.06em;flex:1;text-align:center}.dp-nav{font-family:var(--font-mono);font-size:.9rem;width:26px;height:26px;display:flex;align-items:center;justify-content:center;border:none;border-radius:var(--radius-sm);background:none;color:var(--text-dim);cursor:pointer;transition:background .15s,color .15s;padding:0}.dp-nav:hover{background:#ffffff14;color:var(--text)}.dp-weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:1px;margin-bottom:.25rem}.dp-weekdays span{font-family:var(--font-mono);font-weight:500;font-size:.62rem;color:var(--text-dim);text-align:center;padding:.15rem 0}.dp-days{display:grid;grid-template-columns:repeat(7,1fr);gap:1px}.dp-day{font-family:var(--font-mono);font-weight:400;font-size:.78rem;text-align:center;padding:.36rem 0;cursor:pointer;border:1px solid transparent;border-radius:var(--radius-sm);background:transparent;color:var(--text);transition:background .1s,color .1s}.dp-day:hover{background:#ffffff1a}.dp-day.other-month{color:var(--text-dim);opacity:.35}.dp-day.today{border-color:var(--amber);color:var(--amber)}.dp-day.selected{background:var(--accent-dim);border-color:var(--accent);color:var(--accent)}.dp-days{gap:1px 0}.dp-day.in-range{background:#0a84ff47;color:var(--accent-bright)}.dp-day.in-range.preview{background:#38b8d02e}.dp-day.range-start,.dp-day.range-end{background:var(--accent);border-color:var(--accent-bright);color:#061018;font-weight:600}.dp-day.range-end.preview{background:#38b8d073;color:var(--text)}.dp-day.too-long,.dp-day.too-long.in-range,.dp-day.range-end.too-long{background:#e0505024;color:#e07070;border-color:transparent}.dp-day.other-month.in-range,.dp-day.other-month.range-start,.dp-day.other-month.range-end{opacity:.6}.dp-hint{margin-top:.5rem;font-family:var(--font-sans);font-size:.6rem;letter-spacing:.04em;color:var(--text-dim);text-align:center}.dp-hint.error{color:#e07070}.dp-day.disabled{opacity:.15;cursor:not-allowed;pointer-events:none}#site-sidebar{position:absolute;top:48px;left:12px;width:248px;max-height:calc(100vh - 48px - var(--panel-bottom) - 12px);background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);box-shadow:var(--shadow-sm);display:flex;flex-direction:column;overflow:hidden;z-index:55}.sidebar-header{display:flex;align-items:center;justify-content:space-between;padding:.5rem .7rem .3rem}.sidebar-header h3{font-family:var(--font-sans);font-weight:600;font-size:.74rem;letter-spacing:.01em;color:var(--text)}.sidebar-count{font-family:var(--font-mono);font-weight:400;font-size:.6rem;color:var(--text-mid);background:var(--bg-input);border:1px solid var(--border);padding:.05rem .4rem;border-radius:999px}.site-list{flex:1;overflow-y:auto;padding:.15rem .3rem .35rem}.site-group-header{font-family:var(--font-sans);font-weight:500;font-size:.58rem;letter-spacing:.08em;color:var(--text-dim);text-transform:uppercase;padding:.45rem .45rem .2rem}.site-fold{border-top:1px solid var(--border);margin-top:.4rem}.site-fold>summary{cursor:pointer;list-style:none;-webkit-user-select:none;user-select:none}.site-fold>summary::-webkit-details-marker{display:none}.site-fold>summary:before{content:"▸ "}.site-fold[open]>summary:before{content:"▾ "}.site-fold>summary:hover{color:var(--text-mid)}.site-item{display:flex;align-items:baseline;justify-content:space-between;gap:.5rem;padding:.3rem .45rem;border-radius:var(--radius-sm);cursor:pointer;transition:background .1s}.site-item:hover{background:#ffffff0f}.site-item.active{background:var(--accent-dim)}.site-name{flex:1 1 auto;font-family:var(--font-sans);font-weight:450;font-size:.74rem;color:var(--text);line-height:1.25}.site-item.active .site-name{color:var(--accent-bright);font-weight:550}.site-meta{flex:none;font-family:var(--font-mono);font-weight:400;font-size:.62rem;color:var(--text-dim)}.site-meta span:not(.site-sunlit){display:none}.site-sunlit{color:var(--amber);font-weight:400}.site-info-btn{flex:none;display:flex;align-items:center;justify-content:center;width:20px;height:20px;padding:0;background:none;border:none;cursor:pointer;color:var(--text-dim);opacity:.5;transition:opacity .12s,color .12s}.site-item:hover .site-info-btn{opacity:1;color:var(--text-mid)}.site-info-btn:hover{color:var(--accent-bright);opacity:1}.sidebar-footer{padding:.4rem .7rem;border-top:1px solid var(--border)}.body-indicator{position:absolute;z-index:70;pointer-events:none;white-space:nowrap;display:flex;align-items:center;gap:.2rem}.body-indicator .indicator-caret{font-size:.7rem;line-height:1;display:inline-block}.body-indicator .indicator-label{font-family:var(--font-sans);font-weight:400;font-size:.62rem;letter-spacing:.08em;opacity:.8}.body-indicator.sun{color:var(--amber)}.body-indicator.earth{color:#4080e0}#time-scrubber-container{position:absolute;bottom:32px;left:50%;transform:translate(-50%);width:min(720px,calc(100vw - 48px));background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);box-shadow:var(--shadow-sm);padding:.35rem .8rem;height:var(--scrubber-h);display:flex;flex-direction:column;justify-content:center;visibility:hidden;z-index:5}.scrubber-row{display:flex;align-items:center;gap:.5rem}.scrubber-btn{flex:none;height:30px;display:flex;align-items:center;justify-content:center;padding:0 .55rem;border:none;border-radius:var(--radius-sm);background:none;color:var(--text-mid);font-family:var(--font-mono);font-size:.68rem;letter-spacing:.01em;cursor:pointer;transition:background .15s,color .15s,transform .1s}.scrubber-btn:hover:not(:disabled){color:var(--text);background:#ffffff14}.scrubber-btn:focus-visible{outline:1px solid var(--accent-bright);outline-offset:1px}.scrubber-btn:disabled{opacity:.4;cursor:default}#play-btn{width:34px;height:34px;padding:0;border:none;background:none;border-radius:50%;color:var(--text);transition:background .15s,color .15s,transform .1s}#play-btn:hover:not(:disabled){background:#ffffff1a;color:#fff}#play-btn:active:not(:disabled){transform:scale(.9)}#play-btn .icon-pause,#play-btn.playing .icon-play{display:none}#play-btn.playing .icon-pause{display:block}#speed-btn{min-width:62px}#eph-info-btn{width:30px;height:30px;padding:0;border:none;background:none;border-radius:50%;color:var(--text-dim)}#eph-info-btn:hover:not(:disabled){background:#ffffff14;color:var(--text)}#eph-info-btn[aria-expanded=true]{background:#ffffff14;color:var(--accent)}.scrubber-viz{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:4px}.scrubber-legend{display:flex;gap:.9rem;font-family:var(--font-sans);font-size:.6rem;letter-spacing:.02em;color:var(--text-mid)}.scrubber-legend span{display:inline-flex;align-items:center;gap:.28rem}.scrubber-legend span:before{content:"";width:7px;height:7px;border-radius:2px;display:inline-block}.scrubber-legend .sl-sun:before{background:var(--amber)}.scrubber-legend .sl-earth:before{background:var(--cyan)}.scrubber-legend .sl-both:before{background:var(--green)}.scrubber-tracks{width:100%;height:18px;display:block}.scrubber-dates{position:relative;height:13px}.scrubber-dates span{position:absolute;top:0;transform:translate(-50%);font-family:var(--font-mono);font-size:.6rem;color:var(--text-dim);white-space:nowrap}.scrubber-dates span:first-child{transform:none}.scrubber-dates span:last-child{transform:translate(-100%)}#time-scrubber{flex:none;width:100%;min-width:0;height:14px;margin-top:6px;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;cursor:pointer}#time-scrubber::-webkit-slider-runnable-track{height:4px;border-radius:2px;background:linear-gradient(to right,var(--accent) 0 var(--seek, 0%),rgba(255,255,255,.16) var(--seek, 0%) 100%)}#time-scrubber::-moz-range-track{height:4px;border-radius:2px;background:#ffffff29}#time-scrubber::-moz-range-progress{height:4px;border-radius:2px;background:var(--accent)}#time-scrubber::-webkit-slider-thumb{-webkit-appearance:none;width:12px;height:12px;border-radius:50%;background:#fff;border:none;margin-top:-4px;cursor:pointer;box-shadow:0 1px 4px #00000073;transition:transform .12s}#time-scrubber::-moz-range-thumb{width:12px;height:12px;border-radius:50%;background:#fff;border:none;cursor:pointer}#time-scrubber:hover::-webkit-slider-thumb,#time-scrubber:active::-webkit-slider-thumb{transform:scale(1.3)}.eph-pop{position:absolute;bottom:calc(100% + 6px);right:.8rem;width:268px;background:var(--bg-panel-solid);border:1px solid var(--border-mid);padding:.6rem .7rem;box-shadow:0 6px 20px #0000008c;z-index:70}.eph-pop[hidden]{display:none}.eph-pop-row{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;margin-bottom:.3rem}.eph-pop-key{font-family:var(--font-sans);font-size:.62rem;letter-spacing:.12em;text-transform:uppercase;color:var(--text-dim)}.eph-pop-val{font-family:var(--font-mono);font-size:.6rem;color:var(--text)}.eph-pop-note{font-family:var(--font-sans);font-size:.58rem;line-height:1.45;color:var(--text-dim);margin:.45rem 0 0}.eph-pop a{color:var(--accent-bright);text-decoration:none}.eph-pop a:hover{text-decoration:underline}.scrubber-head{display:flex;align-items:baseline;justify-content:space-between;gap:1rem}#time-label{display:flex;align-items:baseline;gap:.55rem;white-space:nowrap;font-family:var(--font-mono)}#time-label .tl-date{font-size:.66rem;font-weight:500;color:var(--text)}#time-label .tl-ang{font-size:.6rem;color:var(--text-mid)}.panel.dockable{position:absolute;z-index:60;background:var(--bg-panel);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);overflow:hidden;display:flex;flex-direction:column;min-width:200px;min-height:80px;max-width:90vw;max-height:80vh;transition:box-shadow .15s}.panel.dockable:hover{box-shadow:var(--shadow)}.panel.dockable.dragging{opacity:.85;box-shadow:0 4px 24px #00000080;transition:none}#timeline-panel{bottom:var(--panel-bottom);right:8px;width:420px}#sky-panel{bottom:32px;right:8px;width:420px}#sky-chart{cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none}#sky-chart.dragging{cursor:grabbing}#panel-site-panel{top:330px;left:12px;width:248px;min-width:248px;max-height:calc(100vh - 330px - var(--panel-bottom) - 12px)}.panel-header{display:flex;align-items:center;justify-content:space-between;padding:.4rem .65rem;border-bottom:1px solid var(--border);flex-shrink:0;-webkit-user-select:none;user-select:none}.panel-header-left{display:flex;align-items:center;gap:.4rem}.panel-header h3{font-family:var(--font-sans);font-weight:600;font-size:.74rem;letter-spacing:.01em;color:var(--text)}.panel-header-actions{display:flex;gap:.2rem;align-items:center}.panel-btn{width:22px;height:22px;display:flex;align-items:center;justify-content:center;border:1px solid transparent;background:transparent;color:var(--text-dim);cursor:pointer;transition:all .15s;padding:0}.panel-btn:hover{border-color:var(--border-mid);color:var(--accent)}.panel-btn:disabled{opacity:.25;cursor:not-allowed;color:var(--text-dim)}.panel-btn:disabled:hover{border-color:transparent;color:var(--text-dim)}.panel-toggle svg{transition:transform .2s}.panel.collapsed .panel-toggle svg{transform:rotate(-90deg)}.panel-body{padding:.5rem .65rem;overflow-y:auto;height:200px;min-height:0;transition:height .2s,padding .2s}.panel.collapsed .panel-body{height:0;padding-top:0;padding-bottom:0;overflow:hidden}.panel.dockable.collapsed{min-height:0}.panel.collapsed .panel-body{border:none}.panel-resize{display:none}.panel-note{font-family:var(--font-sans);font-weight:400;font-size:.62rem;color:var(--text-dim);letter-spacing:.01em;margin-bottom:.5rem}.site-info{position:absolute;left:12px;width:248px;max-width:calc(100vw - 24px);z-index:70;display:flex;flex-direction:column;background:var(--bg-panel);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden;animation:site-info-in .16s ease-out}@keyframes site-info-in{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.site-info-header{display:flex;align-items:flex-start;justify-content:space-between;gap:.5rem;padding:.55rem .4rem .55rem .7rem;border-bottom:1px solid var(--border);flex-shrink:0}.site-info-title{display:flex;flex-direction:column;gap:.15rem;min-width:0}.site-info-eyebrow{font-family:var(--font-sans);font-weight:500;font-size:.6rem;letter-spacing:.02em;color:var(--text-dim)}.site-info-name{font-family:var(--font-sans);font-size:.92rem;font-weight:600;color:var(--text);line-height:1.2}.site-info-close{width:24px;height:24px;flex-shrink:0;display:flex;align-items:center;justify-content:center;border:1px solid transparent;background:transparent;color:var(--text-dim);cursor:pointer;transition:all .15s;padding:0}.site-info-close:hover{border-color:var(--border-mid);color:var(--accent)}.site-info-body{padding:.3rem .7rem .5rem;overflow-y:auto}.site-info-row{display:flex;flex-direction:column;gap:.1rem;padding:.42rem 0;border-bottom:1px solid var(--border)}.site-info-row:last-child{border-bottom:none}.site-info-label{font-family:var(--font-sans);font-weight:500;font-size:.64rem;letter-spacing:.01em;color:var(--text-dim)}.site-info-value{font-family:var(--font-sans);font-size:.78rem;color:var(--text);line-height:1.4;word-break:break-word}.site-info-value .sub{display:block;color:var(--text-mid);font-size:.66rem;margin-top:.1rem}.site-info-value.muted{color:var(--text-dim);font-style:italic}.site-info-foot{padding:.4rem .7rem;border-top:1px solid var(--border);font-family:var(--font-sans);font-size:.62rem;color:var(--text-dim);flex-shrink:0}.site-info-foot a{color:var(--accent-bright);text-decoration:none}.site-info-foot a:hover{text-decoration:underline}#site-markers{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;overflow:hidden}#site-leaders{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none;overflow:visible}.site-dot{position:absolute;width:12px;height:12px;margin:-6px 0 0 -6px;border-radius:50%;background:transparent;color:var(--cat, #9aa6bc);border:1.5px solid currentColor;box-shadow:0 0 2px #000000b3;pointer-events:auto;cursor:pointer;transition:transform .12s,opacity .15s}.site-dot:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;margin:auto;width:3px;height:3px;border-radius:50%;background:currentColor}.site-dot:hover{transform:scale(1.25)}.site-dot.selected{width:13px;height:13px;margin:-6.5px 0 0 -6.5px;color:#fff;background:#fff;border-color:#060a12;border-width:2px}.site-dot.selected:after{display:none}.site-dot.selected:before{content:"";position:absolute;top:-5px;right:-5px;bottom:-5px;left:-5px;border-radius:50%;border:1.5px solid rgba(255,255,255,.75)}.site-label{position:absolute;pointer-events:auto;cursor:pointer;transform:translateY(-50%);font-family:var(--font-sans);font-size:11px;font-weight:450;letter-spacing:.015em;line-height:1;color:#e6ebf3;background:#06090f99;border:none;border-radius:8px;padding:3px 7px;white-space:nowrap;text-shadow:0 1px 3px rgba(0,0,0,.9)}.site-label:hover{color:#fff}.site-label.selected{color:#fff;font-weight:600;background:#080e148c;text-shadow:0 1px 4px rgba(0,0,0,.95)}.site-leader{stroke:#b4c4d866;stroke-width:1;fill:none}#surface-markers{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;overflow:hidden}.surf-label{position:absolute;display:none;flex-direction:column;gap:2px;transform:translate(-50%,-100%);font-family:var(--font-sans);white-space:nowrap;background:#06090fb3;border-left:2px solid var(--surf-color, #e6ebf3);border-radius:6px;padding:4px 8px;text-shadow:0 1px 3px rgba(0,0,0,.9)}.surf-label.sun{--surf-color: var(--amber)}.surf-label.night{--surf-color: var(--cyan-bright)}.surf-label.zone{--surf-color: var(--green)}.surf-title{font-size:11px;font-weight:500;color:var(--surf-color, #e6ebf3)}.surf-sub{font-size:10px;color:var(--text);font-family:var(--font-mono)}.site-leader.selected{stroke:#ffffffb3;stroke-width:1.1}#dock-zones{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:55;display:none}#dock-zones.active{display:block}.dock-zone{position:absolute;width:100px;height:100px;border:1.5px dashed rgba(56,184,208,.25);border-radius:8px;transition:all .15s;pointer-events:auto}.dock-zone[data-corner=top-left]{top:50px;left:228px}.dock-zone[data-corner=top-right]{top:50px;right:8px}.dock-zone[data-corner=bottom-left]{bottom:var(--panel-bottom);left:228px}.dock-zone[data-corner=bottom-right]{bottom:var(--panel-bottom);right:8px}.dock-zone.hover{border-color:var(--accent);background:var(--accent-dim);box-shadow:0 0 16px #38b8d026}#status-bar{position:absolute;bottom:8px;right:10px;height:22px;display:flex;align-items:center;background:none;border:none;z-index:65}.status-section{display:flex;align-items:center;gap:.3rem;padding:0 .6rem;border-right:1px solid var(--border);height:100%}.status-section:last-child{border-right:none}.status-section.status-right{margin-left:auto;border-right:none;border-left:none}.status-key{font-family:var(--font-mono);font-weight:500;font-size:.62rem;letter-spacing:.12em;color:var(--text-dim)}.status-val{font-family:var(--font-mono);font-weight:400;font-size:.58rem;color:var(--text-mid);letter-spacing:.02em}.focus-hint{position:absolute;bottom:40px;left:12px;display:inline-flex;align-items:center;gap:.45rem;font-family:var(--font-sans);font-size:.74rem;font-weight:500;color:var(--text);background:var(--bg-input);border:1px solid var(--border-mid);border-radius:var(--radius-sm);padding:.42rem .8rem;cursor:pointer;z-index:66;transition:background .15s,border-color .15s}.focus-hint:hover{border-color:var(--border-bright);background:var(--bg-raised)}.focus-hint kbd{font-family:var(--font-mono);font-size:.6rem;color:var(--text-mid);background:var(--bg-raised);border:1px solid var(--border-mid);border-radius:4px;padding:.06rem .34rem;line-height:1.4}.walk-hint{position:absolute;bottom:78px;left:12px;display:inline-flex;align-items:center;gap:.45rem;font-family:var(--font-sans);font-size:.7rem;color:var(--text-mid);background:var(--bg-input);border:1px solid var(--border-mid);border-radius:var(--radius-sm);padding:.38rem .7rem;z-index:66;pointer-events:none}.walk-hint[hidden]{display:none}.walk-hint.at-edge{color:var(--text);border-color:var(--border-bright)}.walk-hint kbd{font-family:var(--font-mono);font-size:.6rem;color:var(--text-mid);background:var(--bg-raised);border:1px solid var(--border-mid);border-radius:4px;padding:.06rem .34rem;line-height:1.4}.panel-origin{font-family:var(--font-sans);font-size:.6rem;color:var(--text-mid);white-space:nowrap}#main-hud.focus-mode #top-bar,#main-hud.focus-mode #site-sidebar,#main-hud.focus-mode #panel-site-panel,#main-hud.focus-mode #timeline-metrics,#main-hud.focus-mode #surface-btn,#main-hud.focus-mode #walk-hint,#main-hud.focus-mode #site-info,#main-hud.focus-mode #sky-panel,#main-hud.focus-mode #status-bar,#main-hud.focus-mode #site-markers,#main-hud.focus-mode #site-leaders,#main-hud.focus-mode .body-indicator{opacity:0!important;pointer-events:none!important;transition:opacity .25s ease}#timeline-chart{width:100%;height:100%}.panel-body::-webkit-scrollbar,.site-list::-webkit-scrollbar,.site-info-body::-webkit-scrollbar{width:6px}.panel-body::-webkit-scrollbar-track,.site-list::-webkit-scrollbar-track,.site-info-body::-webkit-scrollbar-track{background:transparent}.panel-body::-webkit-scrollbar-thumb,.site-list::-webkit-scrollbar-thumb,.site-info-body::-webkit-scrollbar-thumb{background:var(--border-mid);border-radius:3px}.panel-body::-webkit-scrollbar-thumb:hover,.site-list::-webkit-scrollbar-thumb:hover,.site-info-body::-webkit-scrollbar-thumb:hover{background:var(--border-bright)}.site-info-body,.panel-body,.site-list{scrollbar-width:thin;scrollbar-color:var(--border-mid) transparent}@media (max-width: 900px){#site-sidebar{width:180px}.panel.dockable{width:calc(100vw - 200px)!important}.panel-body{height:160px}}#timeline-panel .panel-body{height:auto}#timeline-chart{display:block;height:auto}#sky-panel .panel-body{height:200px;display:flex;flex-direction:column;overflow:hidden}#sky-chart-wrap{position:relative;flex:1;min-height:0}#sky-chart{position:absolute;top:0;right:0;bottom:0;left:0;display:block}#timeline-panel.collapsed .panel-body,#sky-panel.collapsed .panel-body{height:0}.metrics-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-top:6px}.metrics-strip{position:absolute;top:56px;left:50%;transform:translate(-50%);z-index:50;grid-template-columns:repeat(6,auto);gap:6px}.metrics-strip .metric{min-width:76px}.metrics-strip .metrics-scope{grid-column:1 / -1;text-align:center;font-family:var(--font-sans);font-size:.62rem;color:var(--text-dim);letter-spacing:.01em;margin-top:2px}.metric{display:flex;flex-direction:column;gap:.12rem;padding:.45rem .55rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-input)}.metric-value{font-family:var(--font-mono);font-size:.92rem;font-weight:500;line-height:1.1;color:var(--text);white-space:nowrap}.metric.sun .metric-value{color:var(--amber)}.metric.earth .metric-value{color:var(--cyan)}.metric.total .metric-value{color:var(--accent-bright)}.metric-label{font-family:var(--font-sans);font-size:.56rem;letter-spacing:.02em;color:var(--text-dim)}#horizon-controls{display:flex;align-items:center;gap:.45rem}.seg{display:flex}.seg-btn{font-family:var(--font-sans);font-size:.62rem;letter-spacing:.06em;padding:.25rem .6rem;border:1px solid var(--border);background:var(--bg-input);color:var(--text-dim);cursor:pointer;transition:all .15s}.seg-btn+.seg-btn{border-left:none}.seg-btn:hover:not(:disabled){color:var(--text);border-color:var(--border-bright)}.seg-btn.active{color:var(--accent);border-color:var(--accent);background:var(--accent-dim)}.seg-btn:disabled{opacity:.35;cursor:not-allowed}#panel-site-panel .panel-body{height:auto;max-height:60vh}#panel-site-panel.collapsed .panel-body{height:0}#panel-site-body{font-size:.68rem;color:var(--text);line-height:1.45}#panel-site-body .sun{color:var(--amber)}.ps-empty{color:var(--text-mid)}.ps-block{padding:.35rem .5rem;margin-bottom:.35rem;border:1px solid var(--border);border-left:2px solid var(--amber);background:#1e1e2d80}.ps-block.ps-lander{border-left-color:var(--text-dim)}.ps-block.ps-same{border-left-color:var(--border-bright)}.ps-title{font-family:var(--font-sans);font-size:.62rem;letter-spacing:.12em;text-transform:uppercase;color:var(--text-dim)}.ps-main{font-family:var(--font-mono);font-size:.72rem}.ps-sub{color:var(--text-mid);font-size:.62rem}.ps-keep{color:var(--accent);font-size:.62rem;margin-top:.15rem}.ps-foot{color:var(--text-dim);font-size:.56rem;margin-top:.3rem}.ps-tiles{display:flex;gap:.5rem;margin-bottom:.45rem}.ps-tile{flex:1;background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-sm);padding:.5rem .6rem}.ps-tile-val{font-family:var(--font-mono);font-size:1.15rem;font-weight:500;color:var(--text);line-height:1.05;white-space:nowrap}.ps-tile-val.sun{color:var(--amber)}.ps-tile-val.night{color:var(--night)}.ps-tile-label{font-family:var(--font-sans);font-size:.6rem;letter-spacing:.02em;color:var(--text-mid);margin-top:.2rem}.ps-fine{font-family:var(--font-mono);font-size:.62rem;color:var(--text-mid);margin-bottom:.55rem}.ps-alts-head{font-family:var(--font-sans);font-weight:600;font-size:.66rem;letter-spacing:.01em;color:var(--text);margin-bottom:.35rem}.ps-alt{display:flex;align-items:baseline;gap:.5rem;padding:.22rem 0}.ps-alt-go{width:100%;margin:0 -.45rem;padding:.3rem .45rem;background:none;border:0;border-radius:var(--radius-sm);text-align:left;cursor:pointer;transition:background .12s ease;-webkit-appearance:none;-moz-appearance:none;appearance:none}.ps-alt-go:hover{background:#ffffff0f}.ps-alt-go:focus-visible{outline:1px solid var(--border-bright);outline-offset:1px}.ps-alt-go:active{background:var(--border)}.ps-alt-k{flex:1 1 auto;font-family:var(--font-sans);font-size:.68rem;color:var(--text);white-space:nowrap}.ps-alt-d{font-family:var(--font-mono);font-size:.74rem;color:var(--accent-bright);font-weight:500;white-space:nowrap}.ps-alt-d.sun{color:var(--amber)}.ps-alt-d.night{color:var(--night)}.ps-alt-w{font-family:var(--font-mono);font-size:.64rem;color:var(--text-mid);min-width:74px;text-align:right}.ps-surface-hint{display:block;width:100%;margin-top:.5rem;padding:.4rem .6rem;background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-mid);font-family:var(--font-sans);font-size:.64rem;text-align:left;cursor:pointer;transition:border-color .12s ease,color .12s ease;-webkit-appearance:none;-moz-appearance:none;appearance:none}.ps-surface-hint:hover{border-color:var(--border-bright);color:var(--text)}body.view-surface .ps-surface-hint{display:none}.ps-alt-stack{flex-wrap:wrap;row-gap:.1rem}.ps-alt-stack .ps-alt-w{flex-basis:100%;text-align:left;min-width:0;padding-left:1.15rem}.ps-verdict{font-family:var(--font-sans);font-size:.68rem;line-height:1.4;color:var(--text-mid);padding:.1rem 0}.ps-spinner{display:inline-block;width:9px;height:9px;margin-right:.4rem;border:1.5px solid var(--border-bright);border-top-color:var(--accent);border-radius:50%;animation:ps-spin .8s linear infinite;vertical-align:-1px}@keyframes ps-spin{to{transform:rotate(360deg)}}#chat{position:fixed;right:16px;bottom:calc(var(--panel-bottom, 80px) + 8px);z-index:150;font-family:var(--font-sans)}.chat-fab{background:var(--bg-raised);color:var(--text);border:1px solid rgba(255,255,255,.12);border-radius:999px;padding:8px 16px;font:inherit;font-size:13px;cursor:pointer}.chat-fab:hover{background:var(--bg-panel-solid)}.chat-fab[aria-expanded=true]{display:none}.chat-panel{width:min(380px,calc(100vw - 32px));height:min(520px,70vh);display:flex;flex-direction:column;background:var(--bg-panel-solid);border:1px solid rgba(255,255,255,.1);border-radius:12px;box-shadow:0 12px 40px #00000080;overflow:hidden}.chat-panel[hidden]{display:none}.chat-head{display:flex;justify-content:space-between;align-items:center;padding:10px 12px;font-size:13px;font-weight:600;border-bottom:1px solid rgba(255,255,255,.08)}.chat-close{background:none;border:0;color:var(--text-mid);font-size:18px;cursor:pointer;line-height:1}.chat-log{flex:1;overflow-y:auto;padding:12px;display:flex;flex-direction:column;gap:8px;font-size:13px;line-height:1.45}.chat-intro{color:var(--text-mid)}.chat-examples{display:flex;flex-direction:column;gap:6px}.chat-examples button{text-align:left;background:var(--bg-raised);color:var(--text);border:1px solid rgba(255,255,255,.08);border-radius:8px;padding:7px 10px;font:inherit;font-size:12px;cursor:pointer}.chat-examples button:hover{border-color:#fff3}.chat-msg{padding:8px 10px;border-radius:10px;max-width:92%;overflow-wrap:anywhere}.chat-msg.user{align-self:flex-end;background:var(--bg-raised)}.chat-msg.bot{align-self:flex-start;background:#ffffff0a}.chat-msg.pending{color:var(--text-dim);font-style:italic}.chat-msg.error{color:#ff8a80}.chat-form{display:flex;gap:6px;padding:10px;border-top:1px solid rgba(255,255,255,.08)}.chat-form input{flex:1;min-width:0;background:var(--bg-input);color:var(--text);border:1px solid rgba(255,255,255,.1);border-radius:8px;padding:8px 10px;font:inherit;font-size:13px}.chat-form button{background:var(--bg-raised);color:var(--text);border:1px solid rgba(255,255,255,.12);border-radius:8px;padding:0 12px;font:inherit;font-size:13px;cursor:pointer}.chat-form button:disabled{opacity:.5;cursor:default}
