:root{--color-space: #050810;--color-space-deep: #020408;--color-space-blue: #0a0e1a;--color-surface-0: rgba(8, 12, 24, .92);--color-surface-1: rgba(14, 20, 36, .95);--color-surface-2: rgba(20, 28, 48, .9);--color-surface-3: rgba(28, 36, 60, .85);--color-border-subtle: rgba(60, 80, 120, .25);--color-border-normal: rgba(80, 100, 140, .35);--color-border-strong: rgba(100, 120, 160, .5);--color-text-primary: #e8ecf4;--color-text-secondary: #a0acc0;--color-text-tertiary: #6878a0;--color-text-disabled: #404860;--color-accent: #38bdf8;--color-accent-hover: #5ccbfa;--color-accent-muted: rgba(56, 189, 248, .15);--color-accent-strong: rgba(56, 189, 248, .3);--color-solar: #f59e0b;--color-solar-hover: #fbbf24;--color-solar-muted: rgba(245, 158, 11, .15);--color-success: #34d399;--color-success-muted: rgba(52, 211, 153, .15);--color-caution: #fbbf24;--color-caution-muted: rgba(251, 191, 36, .15);--color-error: #f87171;--color-error-muted: rgba(248, 113, 113, .15);--color-info: #60a5fa;--color-info-muted: rgba(96, 165, 250, .15);--color-selected: rgba(56, 189, 248, .12);--color-selected-border: rgba(56, 189, 248, .5);--font-sans: "Inter", "Segoe UI", system-ui, -apple-system, sans-serif;--font-mono: "JetBrains Mono", "Cascadia Code", "Consolas", monospace;--text-xs: .6875rem;--text-sm: .75rem;--text-base: .8125rem;--text-md: .875rem;--text-lg: 1rem;--text-xl: 1.25rem;--text-2xl: 1.5rem;--text-3xl: 2rem;--leading-tight: 1.25;--leading-normal: 1.5;--leading-relaxed: 1.75;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--space-10: 40px;--space-12: 48px;--space-16: 64px;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--radius-full: 9999px;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .4);--shadow-md: 0 4px 12px rgba(0, 0, 0, .5);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .6);--shadow-xl: 0 16px 48px rgba(0, 0, 0, .7);--shadow-glow: 0 0 20px rgba(56, 189, 248, .15);--duration-fast: .1s;--duration-normal: .2s;--duration-slow: .35s;--duration-camera: 1.2s;--duration-tour: 2.5s;--ease-out: cubic-bezier(.16, 1, .3, 1);--ease-in-out: cubic-bezier(.4, 0, .2, 1);--ease-spring: cubic-bezier(.34, 1.56, .64, 1);--z-canvas: 0;--z-labels: 10;--z-ui: 100;--z-panels: 200;--z-status: 300;--z-tooltips: 400;--z-modals: 500;--z-loading: 600;--z-onboarding: 550;--panel-width: 320px;--panel-width-narrow: 280px;--panel-max-height: calc(100vh - 140px) ;--top-bar-height: 48px;--time-controls-height: 80px;--minimap-size: 160px;--touch-target: 44px;--icon-btn-size: 36px}@media(prefers-reduced-motion:reduce){:root{--duration-fast: 0ms;--duration-normal: 0ms;--duration-slow: 50ms;--duration-camera: .15s;--duration-tour: .3s}}@media(max-width:768px){:root{--panel-width: 100%;--panel-width-narrow: 100%;--top-bar-height: 44px;--time-controls-height: 100px;--minimap-size: 100px}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body{width:100%;height:100%;overflow:hidden;background:var(--color-space);color:var(--color-text-primary);font-family:var(--font-sans);font-size:var(--text-base);line-height:var(--leading-normal);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;user-select:none;-webkit-user-select:none}#solar-canvas{position:fixed;top:0;left:0;width:100%;height:100%;z-index:var(--z-canvas);display:block;outline:none;touch-action:none}.loading-screen{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--z-loading);display:flex;align-items:center;justify-content:center;background:var(--color-space-deep);transition:opacity var(--duration-slow) var(--ease-out)}.loading-screen.fade-out{opacity:0;pointer-events:none}.loading-content{text-align:center;max-width:360px;padding:var(--space-6)}.loading-sun{width:64px;height:64px;margin:0 auto var(--space-6);border-radius:50%;background:radial-gradient(circle,#fff4e0,#f59e0b,#d97706);box-shadow:0 0 40px #f59e0b66,0 0 80px #f59e0b33;animation:pulse-sun 2s ease-in-out infinite}@keyframes pulse-sun{0%,to{transform:scale(1);box-shadow:0 0 40px #f59e0b66,0 0 80px #f59e0b33}50%{transform:scale(1.05);box-shadow:0 0 50px #f59e0b80,0 0 100px #f59e0b4d}}@media(prefers-reduced-motion:reduce){.loading-sun{animation:none}}.loading-title{font-size:var(--text-xl);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin-bottom:var(--space-3);letter-spacing:.02em}.loading-status{font-size:var(--text-sm);color:var(--color-text-secondary);margin-bottom:var(--space-5)}.loading-bar{width:200px;height:3px;margin:0 auto;background:var(--color-surface-2);border-radius:var(--radius-full);overflow:hidden}.loading-bar-fill{width:0%;height:100%;background:var(--color-accent);border-radius:var(--radius-full);transition:width var(--duration-normal) var(--ease-out)}.ui-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--z-ui);pointer-events:none;display:flex;flex-direction:column}.ui-overlay>*{pointer-events:auto}.top-bar{display:flex;align-items:center;justify-content:space-between;height:var(--top-bar-height);padding:0 var(--space-3);background:var(--color-surface-0);border-bottom:1px solid var(--color-border-subtle);z-index:var(--z-ui);flex-shrink:0}.top-bar-left,.top-bar-right{display:flex;align-items:center;gap:var(--space-1)}.top-bar-center{flex:1;display:flex;justify-content:center}.app-title-text{font-size:var(--text-sm);font-weight:var(--font-weight-medium);color:var(--color-text-secondary);white-space:nowrap}.main-nav{display:flex;gap:var(--space-1)}.nav-tab{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border:none;background:transparent;color:var(--color-text-secondary);font-size:var(--text-sm);font-family:inherit;cursor:pointer;border-radius:var(--radius-md);transition:color var(--duration-fast),background var(--duration-fast);white-space:nowrap}.nav-tab:hover{color:var(--color-text-primary);background:var(--color-surface-2)}.nav-tab.active{color:var(--color-accent);background:var(--color-accent-muted)}.nav-tab svg{flex-shrink:0}.icon-btn{display:flex;align-items:center;justify-content:center;width:var(--icon-btn-size);height:var(--icon-btn-size);border:none;background:transparent;color:var(--color-text-secondary);cursor:pointer;border-radius:var(--radius-md);transition:color var(--duration-fast),background var(--duration-fast)}.icon-btn:hover{color:var(--color-text-primary);background:var(--color-surface-2)}.icon-btn:active{background:var(--color-surface-3)}.icon-btn:focus-visible{outline:2px solid var(--color-accent);outline-offset:-2px}.icon-btn.small{width:28px;height:28px}.text-btn{padding:var(--space-1) var(--space-3);border:1px solid var(--color-border-subtle);background:transparent;color:var(--color-text-secondary);font-size:var(--text-xs);font-family:inherit;cursor:pointer;border-radius:var(--radius-sm);transition:all var(--duration-fast);white-space:nowrap}.text-btn:hover{color:var(--color-text-primary);border-color:var(--color-border-normal);background:var(--color-surface-2)}.text-btn.primary{border-color:var(--color-accent);color:var(--color-accent)}.text-btn.primary:hover{background:var(--color-accent-muted)}.side-panel{position:fixed;top:var(--top-bar-height);width:var(--panel-width);max-height:var(--panel-max-height);background:var(--color-surface-0);border:1px solid var(--color-border-subtle);z-index:var(--z-panels);display:flex;flex-direction:column;transition:transform var(--duration-slow) var(--ease-out),opacity var(--duration-normal);overflow:hidden}.left-panel{left:var(--space-3);border-radius:0 0 var(--radius-lg) var(--radius-lg)}.right-panel{right:var(--space-3);border-radius:0 0 var(--radius-lg) var(--radius-lg)}.side-panel.hidden{transform:translateY(-10px);opacity:0;pointer-events:none}.panel-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border-subtle);flex-shrink:0}.panel-title{font-size:var(--text-md);font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.panel-close{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border:none;background:transparent;color:var(--color-text-tertiary);cursor:pointer;border-radius:var(--radius-sm);font-size:var(--text-lg)}.panel-close:hover{color:var(--color-text-primary);background:var(--color-surface-2)}.panel-search{padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--color-border-subtle)}.panel-search input{width:100%;padding:var(--space-2) var(--space-3);background:var(--color-surface-2);border:1px solid var(--color-border-subtle);border-radius:var(--radius-md);color:var(--color-text-primary);font-size:var(--text-sm);font-family:inherit;outline:none}.panel-search input::placeholder{color:var(--color-text-disabled)}.panel-search input:focus{border-color:var(--color-accent);box-shadow:0 0 0 2px var(--color-accent-muted)}.navigator-list{overflow-y:auto;flex:1;padding:var(--space-2) 0}.nav-group{margin-bottom:var(--space-1)}.nav-group-header{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);font-size:var(--text-xs);font-weight:var(--font-weight-semibold);color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.05em;cursor:pointer}.nav-group-header:hover{color:var(--color-text-secondary)}.nav-item{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-4) var(--space-2) var(--space-6);cursor:pointer;transition:background var(--duration-fast);border:none;background:transparent;width:100%;text-align:left;color:var(--color-text-primary);font-family:inherit;font-size:var(--text-sm)}.nav-item:hover{background:var(--color-surface-2)}.nav-item.selected{background:var(--color-selected);border-left:2px solid var(--color-accent)}.nav-item-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.nav-item-name{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.nav-item-type{font-size:var(--text-xs);color:var(--color-text-tertiary)}.nav-item-moon{padding-left:var(--space-10)}.inspector-content{overflow-y:auto;flex:1;padding:var(--space-3) var(--space-4)}.inspector-empty{text-align:center;padding:var(--space-8) var(--space-4);color:var(--color-text-tertiary)}.inspector-empty svg{margin-bottom:var(--space-3);opacity:.4}.inspector-body-header{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-4)}.inspector-body-icon{width:48px;height:48px;border-radius:50%;flex-shrink:0}.inspector-body-info{flex:1;min-width:0}.inspector-body-name{font-size:var(--text-lg);font-weight:var(--font-weight-semibold)}.inspector-body-type{font-size:var(--text-xs);color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.05em}.inspector-actions{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-bottom:var(--space-4)}.inspector-action-btn{display:flex;align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-2);border:1px solid var(--color-border-subtle);background:transparent;color:var(--color-text-secondary);font-size:var(--text-xs);font-family:inherit;cursor:pointer;border-radius:var(--radius-sm);transition:all var(--duration-fast)}.inspector-action-btn:hover{color:var(--color-accent);border-color:var(--color-accent);background:var(--color-accent-muted)}.inspector-tabs{display:flex;border-bottom:1px solid var(--color-border-subtle);margin-bottom:var(--space-3)}.inspector-tab{padding:var(--space-2) var(--space-3);border:none;background:transparent;color:var(--color-text-tertiary);font-size:var(--text-sm);font-family:inherit;cursor:pointer;border-bottom:2px solid transparent;transition:all var(--duration-fast)}.inspector-tab:hover{color:var(--color-text-secondary)}.inspector-tab.active{color:var(--color-accent);border-bottom-color:var(--color-accent)}.inspector-data-row{display:flex;justify-content:space-between;align-items:baseline;padding:var(--space-2) 0;border-bottom:1px solid var(--color-border-subtle);font-size:var(--text-sm)}.inspector-data-label{color:var(--color-text-secondary);flex-shrink:0}.inspector-data-value{color:var(--color-text-primary);font-variant-numeric:tabular-nums;text-align:right;margin-left:var(--space-3)}.inspector-data-unit{font-size:var(--text-xs);color:var(--color-text-tertiary);margin-left:var(--space-1)}.inspector-description{font-size:var(--text-sm);color:var(--color-text-secondary);line-height:var(--leading-relaxed);margin-bottom:var(--space-4)}.inspector-facts{list-style:none;margin-bottom:var(--space-4)}.inspector-facts li{position:relative;padding:var(--space-1) 0 var(--space-1) var(--space-4);font-size:var(--text-sm);color:var(--color-text-secondary)}.inspector-facts li:before{content:"•";position:absolute;left:0;color:var(--color-solar)}.scale-badge{position:fixed;bottom:calc(var(--time-controls-height) + var(--space-3));left:var(--space-3);display:flex;align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-3);background:var(--color-surface-1);border:1px solid var(--color-border-subtle);border-radius:var(--radius-full);font-size:var(--text-xs);color:var(--color-text-secondary);cursor:pointer;z-index:var(--z-status);transition:all var(--duration-fast)}.scale-badge:hover{border-color:var(--color-accent);color:var(--color-text-primary)}.scale-badge-icon{font-size:var(--text-sm)}.status-bar{position:fixed;bottom:calc(var(--time-controls-height) + var(--space-3));right:var(--space-3);display:flex;align-items:center;gap:var(--space-3);font-size:var(--text-xs);color:var(--color-text-tertiary);z-index:var(--z-status)}.status-item:empty{display:none}.status-approx{color:var(--color-solar)}.minimap{position:fixed;bottom:calc(var(--time-controls-height) + var(--space-3));right:var(--space-3);width:var(--minimap-size);z-index:var(--z-status);display:none}.minimap canvas{width:100%;height:auto;border-radius:var(--radius-md);border:1px solid var(--color-border-subtle);background:var(--color-surface-0)}.minimap-label{text-align:center;font-size:var(--text-xs);color:var(--color-text-tertiary);margin-top:var(--space-1)}.time-controls{position:fixed;bottom:0;left:0;right:0;height:var(--time-controls-height);background:var(--color-surface-0);border-top:1px solid var(--color-border-subtle);z-index:var(--z-ui);display:flex;align-items:center;justify-content:center;padding:0 var(--space-4)}.time-controls-inner{display:flex;align-items:center;gap:var(--space-4);max-width:960px;width:100%}.time-display{display:flex;flex-direction:column;min-width:140px}.time-date{font-size:var(--text-sm);font-weight:var(--font-weight-medium);color:var(--color-text-primary);font-variant-numeric:tabular-nums}.time-rate{font-size:var(--text-xs);color:var(--color-accent);font-variant-numeric:tabular-nums}.time-buttons{display:flex;align-items:center;gap:var(--space-1)}.time-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;background:transparent;color:var(--color-text-secondary);cursor:pointer;border-radius:var(--radius-md);transition:all var(--duration-fast)}.time-btn:hover{color:var(--color-text-primary);background:var(--color-surface-2)}.time-btn.active{color:var(--color-accent)}.time-btn-play{width:40px;height:40px;background:var(--color-accent-muted);color:var(--color-accent);border-radius:50%}.time-btn-play:hover{background:var(--color-accent-strong)}.time-speed{flex:1;max-width:200px;display:flex;flex-direction:column;gap:var(--space-1)}.speed-slider{width:100%;height:4px;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--color-surface-3);border-radius:var(--radius-full);outline:none;cursor:pointer}.speed-slider::-webkit-slider-thumb{-webkit-appearance:none;width:14px;height:14px;border-radius:50%;background:var(--color-accent);cursor:pointer;border:2px solid var(--color-surface-0);box-shadow:var(--shadow-sm)}.speed-slider::-moz-range-thumb{width:14px;height:14px;border-radius:50%;background:var(--color-accent);cursor:pointer;border:2px solid var(--color-surface-0)}.speed-labels{display:flex;justify-content:space-between;font-size:9px;color:var(--color-text-disabled)}.time-actions{display:flex;align-items:center;gap:var(--space-2)}.onboarding-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--z-onboarding);display:flex;align-items:center;justify-content:center;background:#00000080;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.onboarding-card{background:var(--color-surface-1);border:1px solid var(--color-border-normal);border-radius:var(--radius-xl);padding:var(--space-8);max-width:420px;text-align:center;box-shadow:var(--shadow-xl)}.onboarding-title{font-size:var(--text-2xl);font-weight:var(--font-weight-bold);margin-bottom:var(--space-2);background:linear-gradient(135deg,var(--color-text-primary),var(--color-accent));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.onboarding-subtitle{font-size:var(--text-md);color:var(--color-text-secondary);margin-bottom:var(--space-6)}.onboarding-actions{display:flex;flex-direction:column;gap:var(--space-3)}.onboarding-btn{display:flex;align-items:center;justify-content:center;gap:var(--space-3);padding:var(--space-3) var(--space-5);border:1px solid var(--color-border-normal);background:var(--color-surface-2);color:var(--color-text-primary);font-size:var(--text-md);font-family:inherit;cursor:pointer;border-radius:var(--radius-lg);transition:all var(--duration-fast)}.onboarding-btn:hover{background:var(--color-surface-3);border-color:var(--color-border-strong)}.onboarding-btn.primary{background:var(--color-accent-muted);border-color:var(--color-accent);color:var(--color-accent)}.onboarding-btn.primary:hover{background:var(--color-accent-strong)}.onboarding-dismiss{margin-top:var(--space-4);border:none;background:transparent;color:var(--color-text-tertiary);font-size:var(--text-sm);font-family:inherit;cursor:pointer}.onboarding-dismiss:hover{color:var(--color-text-secondary)}.contextual-hints{position:fixed;z-index:var(--z-tooltips);pointer-events:none}.hint-bubble{position:fixed;padding:var(--space-2) var(--space-3);background:var(--color-surface-1);border:1px solid var(--color-accent);border-radius:var(--radius-md);font-size:var(--text-sm);color:var(--color-text-primary);max-width:240px;box-shadow:var(--shadow-md),var(--shadow-glow);pointer-events:auto;animation:hint-appear var(--duration-slow) var(--ease-out)}@keyframes hint-appear{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--z-modals);display:flex;align-items:center;justify-content:center;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.modal-dialog{background:var(--color-surface-1);border:1px solid var(--color-border-normal);border-radius:var(--radius-xl);max-width:600px;max-height:80vh;overflow-y:auto;box-shadow:var(--shadow-xl)}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--color-border-subtle)}.modal-header h2{font-size:var(--text-lg);font-weight:var(--font-weight-semibold)}.modal-close{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border:none;background:transparent;color:var(--color-text-tertiary);cursor:pointer;border-radius:var(--radius-sm);font-size:var(--text-xl)}.modal-close:hover{color:var(--color-text-primary);background:var(--color-surface-2)}.modal-body{padding:var(--space-5)}.keyboard-help-dialog{min-width:400px}.keyboard-shortcuts{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-6)}.shortcut-group h3{font-size:var(--text-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);margin-bottom:var(--space-3);text-transform:uppercase;letter-spacing:.05em}.shortcut-row{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-1) 0;font-size:var(--text-sm)}.shortcut-row kbd{min-width:32px;padding:2px 6px;background:var(--color-surface-2);border:1px solid var(--color-border-normal);border-radius:var(--radius-sm);font-family:var(--font-mono);font-size:var(--text-xs);text-align:center;color:var(--color-text-primary)}.shortcut-row span{color:var(--color-text-secondary)}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--color-border-subtle);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--color-border-normal)}.comparison-panel{position:fixed;top:var(--top-bar-height);left:50%;transform:translate(-50%);width:min(90vw,800px);max-height:var(--panel-max-height);background:var(--color-surface-0);border:1px solid var(--color-border-subtle);border-radius:0 0 var(--radius-lg) var(--radius-lg);z-index:var(--z-panels);overflow-y:auto;display:none}.comparison-panel.visible{display:block}.comparison-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border-subtle)}.comparison-bodies{display:flex;gap:var(--space-4);padding:var(--space-4);justify-content:center}.comparison-body-card{text-align:center;min-width:120px}.comparison-body-preview{width:64px;height:64px;border-radius:50%;margin:0 auto var(--space-2)}.comparison-table th,.comparison-table td{padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--color-border-subtle);text-align:right;font-variant-numeric:tabular-nums}.comparison-table th{text-align:left;color:var(--color-text-secondary);font-weight:var(--font-weight-medium);position:sticky;left:0;background:var(--color-surface-0)}.comparison-table td{color:var(--color-text-primary)}.tour-overlay{position:fixed;bottom:calc(var(--time-controls-height) + var(--space-4));left:50%;transform:translate(-50%);width:min(90vw,500px);background:var(--color-surface-1);border:1px solid var(--color-border-normal);border-radius:var(--radius-lg);z-index:var(--z-panels);display:none;box-shadow:var(--shadow-lg)}.tour-overlay.visible{display:block}.tour-content{padding:var(--space-4) var(--space-5)}.tour-stop-title{font-size:var(--text-lg);font-weight:var(--font-weight-semibold);margin-bottom:var(--space-2);color:var(--color-solar)}.tour-stop-text{font-size:var(--text-sm);color:var(--color-text-secondary);line-height:var(--leading-relaxed);margin-bottom:var(--space-3)}.tour-progress{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-xs);color:var(--color-text-tertiary);margin-bottom:var(--space-3)}.tour-progress-bar{flex:1;height:2px;background:var(--color-surface-3);border-radius:var(--radius-full)}.tour-progress-fill{height:100%;background:var(--color-solar);border-radius:var(--radius-full);transition:width var(--duration-normal)}.tour-controls{display:flex;justify-content:space-between;align-items:center;padding:var(--space-3) var(--space-5);border-top:1px solid var(--color-border-subtle)}.learn-panel{position:fixed;top:var(--top-bar-height);left:0;right:0;bottom:var(--time-controls-height);background:var(--color-surface-0);z-index:var(--z-panels);overflow-y:auto;display:none;padding:var(--space-6)}.learn-panel.visible{display:block}.learn-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--space-4);max-width:1200px;margin:0 auto}.learn-card{background:var(--color-surface-1);border:1px solid var(--color-border-subtle);border-radius:var(--radius-lg);padding:var(--space-5);cursor:pointer;transition:all var(--duration-fast)}.learn-card:hover{border-color:var(--color-border-normal);background:var(--color-surface-2);transform:translateY(-2px);box-shadow:var(--shadow-md)}.learn-card-icon{font-size:var(--text-2xl);margin-bottom:var(--space-3)}.learn-card-title{font-size:var(--text-md);font-weight:var(--font-weight-semibold);margin-bottom:var(--space-2)}.learn-card-desc{font-size:var(--text-sm);color:var(--color-text-secondary);line-height:var(--leading-relaxed)}.settings-section{margin-bottom:var(--space-6)}.settings-section h3{font-size:var(--text-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.05em;margin-bottom:var(--space-3)}.settings-row{display:flex;align-items:center;justify-content:space-between;padding:var(--space-2) 0;font-size:var(--text-sm)}.settings-row label{color:var(--color-text-secondary)}.settings-toggle{position:relative;width:36px;height:20px;background:var(--color-surface-3);border-radius:var(--radius-full);border:none;cursor:pointer;transition:background var(--duration-fast)}.settings-toggle.active{background:var(--color-accent)}.settings-toggle:after{content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;background:#fff;border-radius:50%;transition:transform var(--duration-fast)}.settings-toggle.active:after{transform:translate(16px)}.settings-select{padding:var(--space-1) var(--space-2);background:var(--color-surface-2);border:1px solid var(--color-border-subtle);border-radius:var(--radius-sm);color:var(--color-text-primary);font-size:var(--text-sm);font-family:inherit}.photo-mode-active .top-bar,.photo-mode-active .side-panel,.photo-mode-active .time-controls,.photo-mode-active .scale-badge,.photo-mode-active .status-bar{display:none!important}.photo-toolbar{position:fixed;top:var(--space-3);left:50%;transform:translate(-50%);display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-4);background:var(--color-surface-0);border:1px solid var(--color-border-subtle);border-radius:var(--radius-full);z-index:var(--z-panels)}@media(max-width:1024px){.top-bar-left .app-title,.nav-tab span{display:none}.time-display{min-width:100px}}@media(max-width:768px){.top-bar{padding:0 var(--space-2)}.side-panel{position:fixed;top:auto;bottom:var(--time-controls-height);left:0;right:0;width:100%;max-height:50vh;border-radius:var(--radius-lg) var(--radius-lg) 0 0;border:1px solid var(--color-border-subtle);border-bottom:none}.side-panel.hidden{transform:translateY(100%)}.time-controls-inner{flex-wrap:wrap;gap:var(--space-2);justify-content:center}.time-speed{order:10;max-width:100%;flex:0 0 100%}.time-display{flex-direction:row;gap:var(--space-3);min-width:auto}.keyboard-shortcuts{grid-template-columns:1fr}.keyboard-help-dialog{min-width:auto;margin:var(--space-3)}.comparison-panel{width:100%;left:0;transform:none}.comparison-bodies{flex-direction:column;align-items:center}.tour-overlay{bottom:calc(var(--time-controls-height) + var(--space-2));width:calc(100% - var(--space-4))}}:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}button:focus:not(:focus-visible){outline:none}.distraction-free .top-bar,.distraction-free .side-panel,.distraction-free .scale-badge,.distraction-free .status-bar,.distraction-free .minimap,.distraction-free .time-controls{opacity:0;pointer-events:none;transition:opacity var(--duration-slow)}.distraction-free:hover .time-controls{opacity:1;pointer-events:auto}.distraction-free .restore-ui-btn{display:block}.restore-ui-btn{display:none;position:fixed;bottom:var(--space-3);right:var(--space-3);z-index:var(--z-ui)}.tool-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:900;background:#020408d1;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;padding:var(--space-4);animation:fadeIn .2s ease-out}.tool-window{background:var(--color-surface-1);border:1px solid var(--color-border-normal);border-radius:var(--radius-lg);width:100%;max-width:960px;max-height:90vh;display:flex;flex-direction:column;box-shadow:0 24px 48px #0009;overflow:hidden}.tool-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--color-border-subtle)}.tool-title-group{display:flex;align-items:center;gap:var(--space-3)}.tool-title{font-size:var(--text-lg);font-weight:var(--weight-semibold);color:var(--color-text-primary)}.tool-icon{font-size:var(--text-xl)}.tool-close-btn{background:transparent;border:none;color:var(--color-text-secondary);font-size:1.5rem;cursor:pointer;padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);transition:all .15s ease}.tool-close-btn:hover{color:var(--color-text-primary);background:var(--color-surface-3)}.tool-nav-tabs{display:flex;gap:var(--space-1);padding:var(--space-2) var(--space-4);background:var(--color-surface-0);border-bottom:1px solid var(--color-border-subtle);overflow-x:auto}.tool-tab{background:transparent;border:none;color:var(--color-text-secondary);padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);cursor:pointer;font-size:var(--text-sm);font-weight:var(--weight-medium);white-space:nowrap;transition:all .15s ease}.tool-tab:hover{color:var(--color-text-primary);background:var(--color-surface-2)}.tool-tab.active{color:var(--color-accent);background:var(--color-selected);border:1px solid var(--color-selected-border)}.tool-body{padding:var(--space-5);overflow-y:auto;flex:1}.tool-footer{display:flex;align-items:center;justify-content:space-between;padding:var(--space-3) var(--space-5);border-top:1px solid var(--color-border-subtle);background:var(--color-surface-0);gap:var(--space-3)}.tool-note{font-size:var(--text-xs);color:var(--color-text-tertiary);flex:1}.control-box{background:var(--color-surface-2);border:1px solid var(--color-border-subtle);border-radius:var(--radius-md);padding:var(--space-3);margin-bottom:var(--space-3)}.control-label-row{display:flex;justify-content:space-between;margin-bottom:var(--space-2);font-size:var(--text-sm)}.control-hint-text{font-size:var(--text-xs);color:var(--color-text-secondary);margin-top:var(--space-2)}.preset-buttons,.control-hint-row{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-top:var(--space-2)}.chip-btn{background:var(--color-surface-3);border:1px solid var(--color-border-subtle);color:var(--color-text-secondary);padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);font-size:var(--text-xs);cursor:pointer;transition:all .15s ease}.chip-btn:hover,.chip-btn.active{background:var(--color-accent-muted);border-color:var(--color-accent);color:var(--color-accent)}.action-btn{background:var(--color-surface-3);border:1px solid var(--color-border-normal);color:var(--color-text-primary);padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);font-size:var(--text-sm);font-weight:var(--weight-medium);cursor:pointer;transition:all .15s ease}.action-btn:hover{background:var(--color-surface-2);border-color:var(--color-border-strong)}.action-btn.primary{background:var(--color-accent);color:#050810;border-color:var(--color-accent)}.action-btn.primary:hover{background:var(--color-accent-hover)}.action-btn.danger{background:var(--color-error-muted);color:var(--color-error);border-color:var(--color-error)}.custom-select{background:var(--color-surface-3);border:1px solid var(--color-border-normal);color:var(--color-text-primary);padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);font-size:var(--text-sm);outline:none}.seasons-lab-body,.moon-lab-body,.sandbox-body{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-5)}@media(max-width:768px){.seasons-lab-body,.moon-lab-body,.sandbox-body{grid-template-columns:1fr}}.seasons-diagram-card,.sandbox-canvas-card{background:var(--color-surface-2);border:1px solid var(--color-border-subtle);border-radius:var(--radius-md);padding:var(--space-3);display:flex;align-items:center;justify-content:center;margin-bottom:var(--space-4)}.seasons-results-grid,.sandbox-results-grid,.model-results-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-3)}.seasons-stat-card,.sandbox-stat-card,.model-card{background:var(--color-surface-2);border:1px solid var(--color-border-subtle);border-radius:var(--radius-md);padding:var(--space-3);display:flex;flex-direction:column}.seasons-stat-card.highlight,.sandbox-stat-card.highlight{border-color:var(--color-accent);background:var(--color-accent-muted)}.dual-canvas-grid{display:grid;grid-template-columns:1fr;gap:var(--space-4)}.canvas-card{background:var(--color-surface-2);border:1px solid var(--color-border-subtle);border-radius:var(--radius-md);padding:var(--space-3);text-align:center}.canvas-card h4{font-size:var(--text-sm);color:var(--color-text-secondary);margin-bottom:var(--space-2)}.canvas-caption{font-size:var(--text-xs);color:var(--color-text-tertiary);display:block;margin-top:var(--space-2)}.phase-readout-card{background:var(--color-surface-3);border:1px solid var(--color-selected-border);border-radius:var(--radius-md);padding:var(--space-4);margin-top:var(--space-3)}.phase-readout-card h3{color:var(--color-accent);font-size:var(--text-lg);margin-bottom:var(--space-2)}.phase-stat-line{display:flex;justify-content:space-between;font-size:var(--text-sm);margin-bottom:var(--space-1)}.comparison-visual-stage{background:var(--color-surface-2);border:1px solid var(--color-border-subtle);border-radius:var(--radius-md);padding:var(--space-4);margin-bottom:var(--space-4);text-align:center}.stage-circles-row{display:flex;align-items:flex-end;justify-content:center;gap:var(--space-6);min-height:160px;padding:var(--space-4) 0;overflow-x:auto}.stage-body-col{display:flex;flex-direction:column;align-items:center;gap:var(--space-2)}.stage-circle{border-radius:50%;box-shadow:0 0 16px #00000080;transition:all .3s ease}.comparison-table-wrapper{overflow-x:auto}.comparison-table{width:100%;border-collapse:collapse;font-size:var(--text-sm)}.comparison-table th,.comparison-table td{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border-subtle);text-align:left}.comparison-table th{background:var(--color-surface-0);color:var(--color-text-secondary)}.table-th-body{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2)}.remove-col-btn{background:transparent;border:none;color:var(--color-text-tertiary);cursor:pointer;font-size:1.1rem}.endpoints-selection-bar{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-4)}.measurement-hero-card{background:var(--color-surface-2);border:1px solid var(--color-accent-strong);border-radius:var(--radius-lg);padding:var(--space-6);text-align:center;margin-bottom:var(--space-4)}.endpoints-banner{display:flex;align-items:center;justify-content:center;gap:var(--space-3);margin-bottom:var(--space-4)}.endpoint-tag{padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);font-weight:var(--weight-bold);font-size:var(--text-sm)}.stat-big-val{font-size:2rem;color:var(--color-text-primary);font-variant-numeric:tabular-nums;display:block;margin:var(--space-2) 0}.stat-sub-val{font-size:var(--text-md);color:var(--color-accent)}.measure-light-card{margin-top:var(--space-4);background:var(--color-surface-3);border:1px solid var(--color-solar-muted);border-radius:var(--radius-md);padding:var(--space-4);display:flex;align-items:center;gap:var(--space-4);text-align:left}.light-icon{font-size:2rem}.light-time-highlight{display:block;font-size:var(--text-lg);color:var(--color-solar);font-weight:var(--weight-bold)}.activities-workspace{display:grid;grid-template-columns:280px 1fr;gap:var(--space-5);min-height:500px}.activities-sidebar{background:var(--color-surface-2);border:1px solid var(--color-border-subtle);border-radius:var(--radius-md);padding:var(--space-3);overflow-y:auto;max-height:60vh}.sidebar-title-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-3)}.progress-badge{background:var(--color-accent-muted);color:var(--color-accent);padding:2px 8px;border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:var(--weight-bold)}.activities-list{display:flex;flex-direction:column;gap:var(--space-2)}.activity-item-btn{display:flex;align-items:center;gap:var(--space-2);background:transparent;border:none;color:var(--color-text-secondary);padding:var(--space-2);border-radius:var(--radius-sm);cursor:pointer;text-align:left;font-size:var(--text-xs);transition:all .15s ease}.activity-item-btn:hover{background:var(--color-surface-3);color:var(--color-text-primary)}.activity-item-btn.active{background:var(--color-selected);color:var(--color-accent)}.activity-item-btn.completed .act-status-icon{color:var(--color-success)}.activity-detail-card{background:var(--color-surface-2);border:1px solid var(--color-border-subtle);border-radius:var(--radius-md);padding:var(--space-5);display:flex;flex-direction:column;gap:var(--space-4)}.category-tag{background:var(--color-solar-muted);color:var(--color-solar);padding:2px 8px;border-radius:var(--radius-sm);font-size:var(--text-xs);font-weight:var(--weight-bold);align-self:flex-start}.options-container{display:flex;flex-direction:column;gap:var(--space-3)}.quiz-option-btn{display:flex;align-items:center;gap:var(--space-3);background:var(--color-surface-3);border:1px solid var(--color-border-normal);color:var(--color-text-primary);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);cursor:pointer;font-size:var(--text-sm);transition:all .15s ease;text-align:left}.quiz-option-btn:hover{border-color:var(--color-accent);background:var(--color-surface-2)}.quiz-option-btn.correct{border-color:var(--color-success);background:var(--color-success-muted)}.quiz-option-btn.incorrect{border-color:var(--color-error);background:var(--color-error-muted)}.opt-letter{background:#ffffff1a;padding:4px 8px;border-radius:4px;font-weight:var(--weight-bold)}.quiz-result-banner{padding:var(--space-4);border-radius:var(--radius-md)}.quiz-result-banner.success{background:var(--color-success-muted);border:1px solid var(--color-success)}.quiz-result-banner.error{background:var(--color-error-muted);border:1px solid var(--color-error)}.labels-container{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:100}.scene-label{position:absolute;top:0;left:0;background:#080c18d9;border:1px solid var(--color-border-subtle);border-radius:var(--radius-sm);color:var(--color-text-secondary);font-size:var(--text-xs);padding:2px 8px;white-space:nowrap;pointer-events:auto;cursor:pointer;transition:all .15s ease;box-shadow:0 4px 12px #0006}.scene-label:hover,.scene-label.selected{color:var(--color-accent);border-color:var(--color-accent);background:var(--color-surface-1)}.active-tour-banner{position:fixed;bottom:80px;left:50%;transform:translate(-50%);width:90%;max-width:680px;background:var(--color-surface-1);border:1px solid var(--color-accent);border-radius:var(--radius-lg);padding:var(--space-4) var(--space-5);z-index:600;box-shadow:0 16px 36px #0009;animation:slideUp .3s ease-out}.tour-header-line{display:flex;justify-content:space-between;margin-bottom:var(--space-2)}.tour-badge{color:var(--color-solar);font-weight:var(--weight-bold);font-size:var(--text-xs)}.tour-stop-title{color:var(--color-text-primary);font-size:var(--text-md);margin-bottom:var(--space-2)}.tour-stop-text{color:var(--color-text-secondary);font-size:var(--text-sm);line-height:var(--leading-normal);margin-bottom:var(--space-4)}.tour-banner-actions{display:flex;gap:var(--space-3);justify-content:flex-end}.photo-mode-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:999;display:none;flex-direction:column;justify-content:flex-end;pointer-events:none}.photo-toolbar{pointer-events:auto;background:#080c18f2;border-top:1px solid var(--color-border-normal);padding:var(--space-3) var(--space-5);display:flex;align-items:center;justify-content:space-between}.photo-badge{color:var(--color-accent);font-weight:var(--weight-bold)}.photo-toolbar-center{display:flex;align-items:center;gap:var(--space-4)}.photo-control-group{display:flex;align-items:center;gap:var(--space-2)}.photo-mode-active .top-bar,.photo-mode-active .side-panel,.photo-mode-active .scale-badge,.photo-mode-active .status-bar,.photo-mode-active .minimap,.photo-mode-active .time-controls,.photo-mode-active .labels-container{display:none!important}.command-palette-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:950;background:#020408bf;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:flex;justify-content:center;padding-top:100px}.command-palette-dialog{background:var(--color-surface-1);border:1px solid var(--color-border-strong);border-radius:var(--radius-lg);width:100%;max-width:560px;overflow:hidden;box-shadow:0 20px 40px #000000b3}.palette-input-wrapper{display:flex;align-items:center;padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border-subtle);gap:var(--space-3)}.palette-input-wrapper input{flex:1;background:transparent;border:none;color:var(--color-text-primary);font-size:var(--text-md);outline:none}.palette-results{max-height:320px;overflow-y:auto}.palette-item{width:100%;display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);background:transparent;border:none;color:var(--color-text-primary);cursor:pointer;text-align:left;transition:background .15s ease}.palette-item:hover{background:var(--color-surface-3)}.palette-item-dot{width:10px;height:10px;border-radius:50%}.palette-item-name{flex:1;font-weight:var(--weight-medium)}.palette-item-type{font-size:var(--text-xs);color:var(--color-text-tertiary);text-transform:uppercase}@keyframes slideUp{0%{transform:translate(-50%,30px);opacity:0}to{transform:translate(-50%);opacity:1}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}
