:root{--sun:#f2c46d;--ice:#9cc9ff;--ink:#e9edf5;--mute:#8d97ab;--glass:#0c101a94;--line:#9cc9ff29;--serif:"Songti SC", "Noto Serif SC", "Source Han Serif SC", "STSong", serif;--sans:"PingFang SC", "Hiragino Sans GB", "Noto Sans SC", system-ui, sans-serif;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{height:100%;color:var(--ink);font:13px/1.55 var(--sans);background:#000;margin:0;overflow:hidden}canvas#scene{touch-action:none;width:100vw;height:100vh;display:block;position:fixed;inset:0}button{font:inherit;color:inherit;cursor:pointer}:focus-visible{outline:2px solid var(--ice);outline-offset:2px}.glass,#brand .search input,#nav,#info,#timebar,#layers{background:var(--glass);-webkit-backdrop-filter:blur(14px)saturate(140%);border:1px solid var(--line)}.ghost{border:1px solid var(--line);background:0 0;border-radius:8px;padding:4px 10px}.ghost:hover{border-color:#9cc9ff73}.primary{background:var(--sun);color:#1a1205;border:0;border-radius:50%;width:38px;height:38px;font-weight:700}.primary.paused{background:var(--ice)}#brand{z-index:5;pointer-events:none;position:fixed;top:18px;left:22px}#brand h1{font:600 30px/1 var(--serif);letter-spacing:.18em;color:#fff;text-shadow:0 0 24px #f2c46d59;margin:0}#brand>p{color:var(--mute);letter-spacing:.08em;margin:6px 0 12px}.search{pointer-events:auto;width:300px;position:relative}.search input{width:100%;color:var(--ink);border-radius:10px;outline:none;padding:9px 12px}.search input::placeholder{color:#69738a}#search-results{background:#0a0d16eb;border-radius:10px;width:100%;margin:4px 0 0;padding:0;list-style:none;position:absolute;overflow:hidden}#search-results li{cursor:pointer;justify-content:space-between;gap:10px;padding:7px 12px;display:flex}#search-results li.active,#search-results li:hover{background:#9cc9ff1f}#search-results .en{color:var(--mute);font-size:12px}#nav{z-index:4;border-radius:14px;flex-direction:column;width:250px;transition:width .25s;display:flex;position:fixed;top:160px;bottom:150px;left:22px;overflow:hidden}#nav-toggle{color:var(--sun);border-radius:8px;align-self:flex-start;margin:10px}#nav.collapsed{width:70px;bottom:auto}#nav.collapsed #nav-tree{display:none}#nav-tree{scrollbar-width:thin;scrollbar-color:#2b3448 transparent;padding:0 6px 10px;overflow-y:auto}.nav-group>summary,.nav-minor>summary{cursor:pointer;color:var(--mute);justify-content:space-between;padding:8px 8px 4px;list-style:none;display:flex}.nav-group>summary::-webkit-details-marker{display:none}.nav-minor>summary::-webkit-details-marker{display:none}.nav-group>summary:before{content:"▸";margin-right:6px;transition:transform .2s;display:inline-block}.nav-group[open]>summary:before{transform:rotate(90deg)}.nav-group>summary small{color:#5b6479}.nav-minor>summary{padding-left:26px;font-size:12px}.nav-item{text-align:left;width:100%;padding:5px 8px 5px calc(10px + var(--depth,0) * 16px);background:0 0;border:0;border-radius:8px;align-items:baseline;gap:8px;display:flex}.nav-item:hover{background:#ffffff0d}.nav-item.active{background:#f2c46d1f}.nav-item .zh{font-family:var(--serif);white-space:nowrap;text-overflow:ellipsis;font-size:14px;overflow:hidden}.nav-item .en{color:#5f6a80;white-space:nowrap;text-overflow:ellipsis;font-size:11px;font-style:italic;overflow:hidden}.nav-item .dot{background:var(--c,var(--ice));border-radius:50%;flex:none;align-self:center;width:7px;height:7px}.t-star{--c:var(--sun)}.t-planet{--c:#8fc0ff}.t-dwarf{--c:#c8a8ff}.t-moon{--c:#9adfd0}.t-asteroid{--c:#d9b48a}.t-comet{--c:#8fe7ff}#info{z-index:4;scrollbar-width:thin;scrollbar-color:#2b3448 transparent;border-radius:16px;width:340px;max-height:calc(100vh - 170px);padding:20px 20px 16px;position:fixed;top:18px;right:22px;overflow-y:auto}#info[hidden]{display:none}.close{border-radius:50%;width:30px;height:30px;padding:0;font-size:18px;line-height:1;position:absolute;top:12px;right:12px}.badge{color:var(--c);border:1px solid color-mix(in srgb, var(--c) 45%, transparent);border-radius:99px;padding:2px 9px;font-size:11px;display:inline-block}#info-name{font:600 32px/1.15 var(--serif);letter-spacing:.04em;margin:10px 0 2px}#info-en{color:var(--mute);font:italic 15px var(--serif);margin:0 0 12px}#info-desc{color:#c3cad8;margin:0 0 14px;line-height:1.75}.grid{border-top:1px solid var(--line);grid-template-columns:auto 1fr;gap:5px 14px;margin:0 0 14px;padding-top:12px;display:grid}.grid dt{color:var(--mute);white-space:nowrap}.grid dd{text-align:right;font-variant-numeric:tabular-nums;margin:0}.grid.live dd{color:var(--sun)}#info-children h3{font:600 14px var(--serif);color:var(--mute);margin:4px 0 8px}.chips{flex-wrap:wrap;gap:6px;display:flex}.chip{border:1px solid var(--line);font-family:var(--serif);background:#9adfd00f;border-radius:99px;padding:2px 10px}.chip:hover{border-color:#9adfd0}.more{color:var(--mute);align-self:center;font-size:12px}#timebar{z-index:5;border-radius:18px;align-items:center;gap:22px;padding:12px 20px;display:flex;position:fixed;bottom:20px;left:50%;transform:translate(-50%)}.clock{flex-direction:column;min-width:190px;display:flex}#clock-date{font:600 17px var(--serif);letter-spacing:.04em}#clock-time{color:var(--sun);font-variant-numeric:tabular-nums;font-size:15px}.controls{align-items:center;gap:8px;display:flex}#t-rev.on{border-color:var(--sun);color:var(--sun)}#t-date{border:1px solid var(--line);color:var(--ink);font:inherit;background:#ffffff0a;border-radius:8px;padding:5px 8px}.speed{min-width:190px;color:var(--mute);flex-direction:column;gap:4px;display:flex}.speed b{color:var(--ink);font-weight:500}input[type=range]{accent-color:var(--sun);width:100%}#layers{z-index:5;border-radius:14px;width:270px;padding:10px;position:fixed;bottom:20px;right:22px}#layers-toggle{width:100%}#layers-body{padding:10px 4px 2px}#layers fieldset{border:0;margin:0 0 10px;padding:0}#layers legend{color:var(--mute);margin-bottom:6px}.check{cursor:pointer;align-items:center;gap:8px;padding:3px 0;display:flex}.check input{accent-color:var(--ice)}.check small{color:#5f6a80;font-variant-numeric:tabular-nums;margin-left:auto}.scale{color:var(--mute);flex-direction:column;gap:4px;display:flex}.scale b{color:var(--sun);font-weight:500}.scale small{color:#5f6a80;line-height:1.5}#perf{color:#5f6a80;font-variant-numeric:tabular-nums;margin:10px 0 0;font-size:11px}#labels{pointer-events:none;z-index:2;position:fixed;inset:0;overflow:hidden}.label{pointer-events:auto;cursor:pointer;white-space:nowrap;font:13px var(--serif);color:color-mix(in srgb, var(--c) 70%, white);text-shadow:0 0 6px #000,0 0 2px #000;will-change:transform;padding:0 3px;position:absolute;top:0;left:0}.label.t-planet,.label.t-star{letter-spacing:.06em;font-size:15px}.label.selected{color:var(--sun)}.label:hover{color:#fff}.label[hidden]{display:none}#loading{z-index:20;background:radial-gradient(circle at 50% 45%,#0d1322 0%,#000 70%);place-items:center;transition:opacity 1s;display:grid;position:fixed;inset:0}#loading.done{opacity:0;pointer-events:none}.loading-inner{text-align:center;color:var(--mute)}.orrery{width:120px;height:120px;margin:0 auto 18px;position:relative}.orrery:before{content:"";background:var(--sun);width:14px;height:14px;box-shadow:0 0 24px var(--sun);border-radius:50%;margin:-7px;position:absolute;top:50%;left:50%}.orrery i{inset:calc(var(--k) * 1px);border:1px solid var(--line);animation:spin calc(var(--t) * 1s) linear infinite;border-radius:50%;position:absolute}.orrery i:after{content:"";background:var(--ice);border-radius:50%;width:6px;height:6px;margin-left:-3px;position:absolute;top:-3px;left:50%}.orrery i:first-child{--k:40;--t:1.6}.orrery i:nth-child(2){--k:22;--t:3.2}.orrery i:nth-child(3){--k:2;--t:6}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.orrery i{animation:none}#nav,#loading{transition:none}}@media (max-width:1500px) and (min-width:901px){#timebar{left:22px;transform:none}#nav{bottom:130px}}@media (max-width:900px){#info{width:calc(100vw - 44px);max-height:40vh;top:auto;bottom:150px}#timebar{flex-wrap:wrap;justify-content:center;gap:10px;width:calc(100vw - 30px)}#layers{width:200px;top:18px;bottom:auto}#nav{max-height:40vh;top:150px;bottom:auto}.search{width:220px}}
