html{-webkit-text-size-adjust:100%;font-size:12px}body{letter-spacing:0;-webkit-font-smoothing:antialiased;background:var(--bg);color:var(--ink);--bg:#0a0f0c;--surface:#0d1310;--card:#101713;--ink:#e7ece8;--body:#c3cbc5;--muted:#96a09a;--faint:#66716a;--line:#e7ece817;--line2:#e7ece82b;--accent:#4ade80;--on-accent:#07130c;--gutter:24px;--tap:44px;margin:0;font-family:Space Mono,ui-monospace,SFMono-Regular,Menlo,monospace}*{box-sizing:border-box}[hidden]{display:none!important}a{color:var(--accent);text-decoration:none}@media (hover:hover){a:hover{color:var(--ink)}}::selection{background:var(--accent);color:var(--on-accent)}.mono{font-family:IBM Plex Mono,ui-monospace,SFMono-Regular,Menlo,monospace}.exp-bar{padding:10px var(--gutter);letter-spacing:.06em;color:var(--muted);background:color-mix(in oklab, var(--bg) 72%, transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--line);z-index:2;justify-content:space-between;align-items:center;gap:12px;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:12px;display:flex;position:fixed;top:0;left:0;right:0}.exp-bar a{color:var(--muted);align-items:center;min-height:32px;display:inline-flex}@media (hover:hover){.exp-bar a:hover{color:var(--accent)}}.exp-bar .code{color:var(--accent)}@media (width<=520px){body{--gutter:18px}.exp-bar{font-size:11px}}:root{--dock-h:64px}#ui{--glass:#090b169e;--glass-strong:#090b16db;--stroke:#ffffff17;--stroke-2:#ffffff2e;--hover:#ffffff14;--text:#eceef6;--text-2:#aab0c4;--text-3:#727a93;--accent:#8da6ff;--accent-bg:#7892ff33;--accent-stroke:#8da6ff8c;--radius:14px;--gap:16px;--ctl:36px;--ctl-sm:28px;--ease:cubic-bezier(.2, .7, .2, 1)}@media (pointer:coarse){#ui{--ctl:42px;--ctl-sm:38px}}@media (width<=640px){#ui{--gap:12px}}.webgl{cursor:grab;touch-action:none;background-color:#03050e;display:none;width:100vw!important;height:100vh!important}.webgl:active{cursor:grabbing}.webgl.over-body{cursor:pointer}.sprite{width:0;height:0;position:absolute;overflow:hidden}.icon{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0;width:18px;height:18px}#ui{color:var(--text);font-size:12px;line-height:1.4}.glass,.comet-alert,.back,.tools,.dock,.card,.popover,.fps,.modal-card{background:var(--glass);-webkit-backdrop-filter:blur(14px)saturate(140%);backdrop-filter:blur(14px)saturate(140%);border:1px solid var(--stroke);box-shadow:0 10px 30px -12px #0009}kbd{border:1px solid var(--stroke-2);min-width:20px;height:20px;color:var(--text-2);font:inherit;background:#ffffff0d;border-bottom-width:2px;border-radius:5px;place-items:center;padding:0 5px;font-size:11px;line-height:1;display:inline-grid}.ctl{width:var(--ctl);height:var(--ctl);color:var(--text-2);cursor:pointer;transition:background-color .15s, color .15s, transform .15s var(--ease);background:0 0;border:0;border-radius:10px;place-items:center;padding:0;display:inline-grid}.ctl-sm{width:var(--ctl-sm);height:var(--ctl-sm);border-radius:8px}.ctl-sm .icon{width:16px;height:16px}.ctl:active:not(:disabled){transform:scale(.92)}.ctl:disabled{opacity:.35;cursor:default}.ctl.on{color:var(--accent);background:var(--accent-bg)}.ctl-primary{background:var(--accent-bg);color:#fff;box-shadow:inset 0 0 0 1px var(--accent-stroke);border-radius:50%}.ctl-primary .icon{width:16px;height:16px}@media (hover:hover){.ctl:hover:not(:disabled){background:var(--hover);color:var(--text)}.ctl.on:hover{background:var(--accent-bg);color:var(--accent)}.ctl-primary:hover:not(:disabled){color:#fff;background:#7892ff57}}:where(button,a,input):focus-visible{outline:2px solid var(--accent);outline-offset:2px}.loader{text-align:center;width:min(300px,100vw - 48px);position:fixed;top:50%;left:50%;transform:translate(-50%,-50%)}.loader-track{background:#ffffff1a;border-radius:3px;height:3px;overflow:hidden}.loader-fill{border-radius:inherit;background:linear-gradient(90deg, #5078eb, var(--accent));width:0;height:100%;transition:width .3s var(--ease);box-shadow:0 0 12px #8da6ffcc}.loader-label{color:var(--text-3);letter-spacing:.08em;text-transform:uppercase;margin-top:12px;font-size:11px}.topbar{top:var(--gap);left:var(--gap);right:var(--gap);pointer-events:none;z-index:10;animation:fade-down .4s var(--ease);justify-content:space-between;align-items:flex-start;gap:12px;display:flex;position:fixed}.topbar>*{pointer-events:auto}.brand{align-items:center;gap:12px;min-width:0;display:flex}.back{height:calc(var(--ctl) + 8px);border-radius:var(--radius);color:var(--text-2);white-space:nowrap;align-items:center;gap:6px;padding:0 14px;transition:color .15s;display:inline-flex}.back-title{color:var(--text-3)}@media (hover:hover){.back:hover{color:var(--text)}}.social{gap:2px;display:flex}.social a{width:30px;height:30px;color:var(--text-3);border-radius:8px;place-items:center;transition:color .15s;display:inline-grid}.social svg{width:15px;height:15px}@media (hover:hover){.social a:hover{color:var(--text)}}.tools{border-radius:var(--radius);gap:2px;padding:3px;display:flex}.popover{top:calc(var(--gap) + var(--ctl) + 16px);right:var(--gap);border-radius:var(--radius);background:var(--glass-strong);z-index:11;transform-origin:100% 0;width:264px;animation:pop .18s var(--ease);gap:14px;padding:14px;display:grid;position:fixed}.field{border:0;min-width:0;margin:0;padding:0}.field legend,.field-label{width:100%;color:var(--text-3);letter-spacing:.06em;text-transform:uppercase;justify-content:space-between;margin-bottom:8px;padding:0;font-size:11px;display:flex}.field-label output{color:var(--text-2);letter-spacing:0}.segmented{border:1px solid var(--stroke);background:#ffffff0d;border-radius:10px;grid-template-columns:repeat(4,1fr);padding:3px;display:grid}.segmented button{height:28px;color:var(--text-2);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:7px;transition:background-color .15s,color .15s;position:relative}.segmented button[aria-pressed=true]{background:var(--accent-bg);color:#fff;box-shadow:inset 0 0 0 1px var(--accent-stroke)}.segmented button.current:after{content:"";background:var(--accent);border-radius:50%;width:4px;height:4px;margin-left:-2px;position:absolute;bottom:3px;left:50%}@media (hover:hover){.segmented button:hover:not([aria-pressed=true]){background:var(--hover);color:var(--text)}}.switch-row{color:var(--text-2);cursor:pointer;justify-content:space-between;align-items:center;gap:12px;display:flex}.switch-row span{align-items:center;gap:8px;display:inline-flex}input[role=switch]{appearance:none;cursor:pointer;background:#ffffff24;border-radius:999px;flex-shrink:0;width:34px;height:20px;margin:0;transition:background-color .2s;position:relative}input[role=switch]:before{content:"";width:14px;height:14px;transition:transform .2s var(--ease), background-color .2s;background:#cfd4e4;border-radius:50%;position:absolute;top:3px;left:3px}input[role=switch]:checked{background:#5d7cf0}input[role=switch]:checked:before{background:#fff;transform:translate(14px)}.range{appearance:none;cursor:pointer;background:0 0;width:100%;height:20px;margin:0;display:block}.range::-webkit-slider-runnable-track{background:#ffffff29;border-radius:4px;height:4px}.range::-moz-range-track{background:#ffffff29;border-radius:4px;height:4px}.range::-webkit-slider-thumb{-webkit-appearance:none;background:#fff;border:0;border-radius:50%;width:14px;height:14px;margin-top:-5px;box-shadow:0 0 0 4px #8da6ff59}.range::-moz-range-thumb{background:#fff;border:0;border-radius:50%;width:14px;height:14px;box-shadow:0 0 0 4px #8da6ff59}.song{color:var(--text-3);margin-top:10px;font-size:11px;display:inline-block}@media (hover:hover){.song:hover{color:var(--accent)}}.fps{top:calc(var(--gap) + var(--ctl) + 16px);left:var(--gap);color:var(--text-3);font-variant-numeric:tabular-nums;z-index:10;border-radius:10px;padding:6px 10px;position:fixed}.fps-meta{margin-left:6px}.performance-good{color:#4ade80}.performance-medium{color:#fbbf24}.performance-poor{color:#f87171}.dock{left:50%;bottom:var(--gap);max-width:calc(100vw - 2 * var(--gap));border-radius:calc(var(--radius) + 4px);z-index:10;animation:fade-up .4s var(--ease);align-items:center;gap:6px;padding:6px;display:flex;position:fixed;transform:translate(-50%)}.time{flex-shrink:0;align-items:center;gap:10px;padding:0 8px 0 2px;display:flex}.speed{border:1px solid var(--stroke);background:#ffffff0d;border-radius:10px;align-items:center;display:flex}.speed-value{text-align:center;font-variant-numeric:tabular-nums;min-width:8.5ch;color:var(--text)}.date{color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:10px;align-items:center;gap:8px;margin:0;padding:4px 8px;line-height:1.25;transition:background-color .15s,box-shadow .15s;display:flex}.date-lines{min-width:104px;display:grid}.date-icon{width:15px;height:15px;color:var(--text-3);transition:color .15s}.date[aria-expanded=true]{background:var(--accent-bg);box-shadow:inset 0 0 0 1px var(--accent-stroke)}.date[aria-expanded=true] .date-icon{color:var(--accent)}@media (hover:hover){.date:hover:not([aria-expanded=true]){background:var(--hover)}.date:hover .date-icon{color:var(--text-2)}}.date-value{color:var(--text);font-variant-numeric:tabular-nums;white-space:nowrap}.date-rate{color:var(--text-3);white-space:nowrap;font-size:11px}.date-rate.paused{color:#fbbf24}.date-rate.traveling{color:var(--accent)}.date-rate.reversed:before{content:"";vertical-align:0;border-style:solid;border-width:4px 6px 4px 0;border-color:transparent var(--accent) transparent transparent;margin-right:5px;display:inline-block}.bodies{border-left:1px solid var(--stroke);gap:2px;min-width:0;padding-left:8px;display:flex}.chip{height:var(--ctl);color:var(--text-2);font:inherit;white-space:nowrap;cursor:pointer;background:0 0;border:0;border-radius:10px;align-items:center;gap:7px;padding:0 11px;transition:background-color .15s,color .15s;display:inline-flex}.swatch{background:var(--swatch);border-radius:50%;flex-shrink:0;width:8px;height:8px;transition:box-shadow .2s;box-shadow:inset 0 -2px 3px #00000059}.chip[aria-pressed=true]{background:var(--accent-bg);color:#fff;box-shadow:inset 0 0 0 1px var(--accent-stroke)}.chip[aria-pressed=true] .swatch{box-shadow:0 0 0 3px color-mix(in srgb, var(--swatch) 30%, transparent), 0 0 10px var(--swatch)}@media (hover:hover){.chip:hover:not([aria-pressed=true]){background:var(--hover);color:var(--text)}}@media (width<=1240px){.dock{width:min(760px, calc(100vw - 2 * var(--gap)));flex-direction:column-reverse;align-items:stretch;gap:4px}.bodies{border-left:0;border-bottom:1px solid var(--stroke);scrollbar-width:none;padding:0 0 4px;overflow-x:auto;-webkit-mask-image:linear-gradient(90deg,#0000,#000 12px calc(100% - 20px),#0000);mask-image:linear-gradient(90deg,#0000,#000 12px calc(100% - 20px),#0000)}.bodies::-webkit-scrollbar{display:none}.chip:first-child{margin-left:4px}.chip:last-child{margin-right:16px}.time{padding:0 2px}.date{text-align:right;margin-left:auto}}.card{top:calc(var(--gap) + var(--ctl) + 16px);right:var(--gap);bottom:calc(var(--dock-h) + 2 * var(--gap));border-radius:calc(var(--radius) + 2px);z-index:9;width:340px;max-height:620px;animation:slide-in .35s var(--ease);flex-direction:column;display:flex;position:fixed;overflow:hidden}.card:before{content:"";background:radial-gradient(120% 100% at 0% 0%, color-mix(in srgb, var(--swatch) 22%, transparent), transparent 70%);pointer-events:none;height:120px;position:absolute;inset:0 0 auto}.card-head{justify-content:space-between;align-items:flex-start;gap:8px;padding:14px 10px 10px 18px;display:flex;position:relative}.card-kicker{color:var(--text-3);letter-spacing:.06em;text-transform:uppercase;font-size:11px}.card-title{color:#fff;margin:2px 0 0;font-size:26px;font-weight:700;line-height:1.1}.card-nav{gap:2px;margin-top:2px;display:flex}.card-body{overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#fff3 transparent;flex:1;min-height:0;padding:0 18px 18px;position:relative;overflow-y:auto}.card-desc{color:var(--text-2);margin:0 0 16px;line-height:1.6}.facts{border:1px solid var(--stroke);background:var(--stroke);border-radius:10px;grid-template-columns:1fr 1fr;gap:1px;margin:0 0 16px;display:grid;overflow:hidden}.fact{background:#0c0e1ae6;min-width:0;padding:8px 10px}.fact:last-child:nth-child(odd){grid-column:span 2}.fact dt{color:var(--text-3);letter-spacing:.04em;text-transform:uppercase;font-size:10.5px}.fact dd{color:var(--text);overflow-wrap:anywhere;margin:2px 0 0}.card-note{border-left:2px solid var(--swatch);background:color-mix(in srgb, var(--swatch) 8%, transparent);color:var(--text);border-radius:0 8px 8px 0;margin:0 0 14px;padding:10px 12px;line-height:1.55}.card-note-label{color:var(--swatch);letter-spacing:.06em;text-transform:uppercase;margin-bottom:4px;font-size:10.5px;display:block}.card-list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.card-list li{color:var(--text-2);padding-left:16px;line-height:1.5;position:relative}.card-list li:before{content:"";background:var(--swatch);border-radius:50%;width:5px;height:5px;position:absolute;top:.6em;left:2px}@media (width<=640px){.card{top:auto;left:var(--gap);right:var(--gap);bottom:calc(var(--dock-h) + var(--gap) + 8px);width:auto;max-height:min(44vh,420px);animation-name:slide-up}.card-title{font-size:22px}.back-site,.back-title{display:none}.back{width:calc(var(--ctl) + 8px);justify-content:center;padding:0}.social{display:none}.fps{top:calc(var(--gap) + var(--ctl) + 16px)}}@media (width<=380px){.chip{padding:0 9px}.date-lines{min-width:0}.date-icon{display:none}}.time-panel{top:auto;right:auto;bottom:calc(var(--dock-h) + var(--gap) + 8px);left:var(--gap);width:min(312px, calc(100vw - 2 * var(--gap)));transform-origin:0 100%}.time-head{justify-content:space-between;align-items:center;margin:-6px -6px -4px 0;display:flex}.time-head h3{color:#fff;margin:0;font-size:13px;font-weight:400}.field-hint{color:var(--text-3);letter-spacing:0;text-transform:none}.field legend kbd{letter-spacing:0;min-width:17px;height:17px;font-size:10px}.travel-row{grid-template-columns:minmax(0,1fr) 88px auto;gap:6px;display:grid}.text-input{border:1px solid var(--stroke);min-width:0;height:32px;color:var(--text);font:inherit;font-variant-numeric:tabular-nums;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;background:#ffffff0d;border-radius:8px;padding:0 8px}.text-input::-webkit-calendar-picker-indicator{opacity:.55;cursor:pointer}.text-input:invalid:not(:focus){border-color:#f8717180}.btn{border:1px solid var(--stroke);height:32px;color:var(--text);font:inherit;white-space:nowrap;cursor:pointer;transition:background-color .15s, transform .15s var(--ease);background:#ffffff0d;border-radius:8px;justify-content:center;align-items:center;gap:8px;padding:0 12px;display:inline-flex}.btn kbd{min-width:17px;height:17px;font-size:10px}.btn:active{transform:scale(.96)}.btn-accent{border-color:var(--accent-stroke);background:var(--accent-bg)}@media (hover:hover){.btn:hover{background:var(--hover)}.btn-accent:hover{background:#7892ff52}}.segmented-2{grid-template-columns:repeat(2,1fr)}.segmented-6{grid-template-columns:repeat(6,1fr)}.segmented-6 button{padding:0;font-size:11px}.travel-actions{grid-template-columns:1fr 1fr;gap:6px;display:grid}@media (pointer:coarse){.time-panel kbd{display:none}}.comet-alert{top:var(--gap);width:max-content;max-width:calc(100vw - 2 * var(--gap));min-height:calc(var(--ctl) + 8px);border-radius:var(--radius);z-index:11;animation:fade-down .4s var(--ease);align-items:center;gap:10px;margin:0 auto;padding:4px 4px 4px 14px;display:flex;position:fixed;left:0;right:0}.comet-pulse{background:#a9c8ff;border-radius:50%;flex:none;width:8px;height:8px;animation:1.8s ease-out infinite comet-pulse;box-shadow:0 0 #a9c8ff8c}@keyframes comet-pulse{to{box-shadow:0 0 0 9px #a9c8ff00}}.comet-alert-text{flex-direction:column;min-width:0;line-height:1.25;display:flex}.comet-alert-kicker{color:var(--text-3);letter-spacing:.06em;text-transform:uppercase;font-size:10px}.comet-alert-name{color:var(--text);white-space:nowrap;text-overflow:ellipsis;font-size:13px;overflow:hidden}.comet-follow{height:var(--ctl-sm);border:1px solid var(--accent-stroke);background:var(--accent-bg);color:var(--text);font:inherit;cursor:pointer;transition:background-color .15s, transform .15s var(--ease);border-radius:8px;flex:none;padding:0 12px;font-size:13px}.comet-follow:active{transform:scale(.95)}@media (hover:hover){.comet-follow:hover{background:#7892ff52}}@media (width<=1000px){.comet-alert{top:calc(var(--gap) + var(--ctl) + 16px)}}.hover-label{background:var(--glass-strong);border:1px solid var(--stroke-2);color:var(--text);white-space:nowrap;pointer-events:none;z-index:8;border-radius:6px;padding:3px 8px;font-size:11px;position:fixed;top:0;left:0}.modal{padding:var(--gap);z-index:20;background:#02030a80;place-items:center;animation:.2s fade;display:grid;position:fixed;inset:0}.modal-card{width:min(460px,100%);max-height:calc(100vh - 2 * var(--gap));border-radius:calc(var(--radius) + 4px);background:var(--glass-strong);animation:pop .22s var(--ease);padding:18px 20px 20px;overflow-y:auto}.modal-head{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.modal-head h3{color:#fff;margin:0;font-size:15px}.gestures{border-bottom:1px solid var(--stroke);color:var(--text-2);gap:4px;margin:0 0 14px;padding:0 0 14px;list-style:none;display:grid}.shortcut-list{gap:7px;display:grid}.shortcut{color:var(--text-2);grid-template-columns:112px 1fr;align-items:center;gap:12px;display:grid}.keys{color:var(--text-3);align-items:center;gap:4px;display:inline-flex}.credit{border-top:1px solid var(--stroke);color:var(--text-3);margin:14px 0 0;padding-top:12px;font-size:11px}.credit a{color:var(--text-2)}.reveal{right:var(--gap);bottom:var(--gap);height:var(--ctl);border:1px solid var(--stroke);background:var(--glass);color:var(--text-2);font:inherit;opacity:.45;cursor:pointer;z-index:10;border-radius:10px;align-items:center;gap:8px;padding:0 12px;transition:opacity .2s;display:inline-flex;position:fixed}.reveal:hover,.reveal:focus-visible{opacity:1}@media (pointer:coarse){.reveal kbd{display:none}}@keyframes fade{0%{opacity:0}}@keyframes pop{0%{opacity:0;transform:scale(.96)}}@keyframes fade-down{0%{opacity:0;transform:translateY(-8px)}}@keyframes fade-up{0%{opacity:0;transform:translate(-50%,8px)}}@keyframes slide-in{0%{opacity:0;transform:translate(16px)}}@keyframes slide-up{0%{opacity:0;transform:translateY(16px)}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}
