@font-face{font-family:Instrument Sans;font-style:normal;font-weight:400;font-display:swap;src:url(fonts/instrument-sans-400-latin.woff2) format("woff2")}@font-face{font-family:Instrument Sans;font-style:normal;font-weight:400;font-display:swap;src:url(fonts/instrument-sans-400-latin-ext.woff2) format("woff2")}@font-face{font-family:Instrument Sans;font-style:normal;font-weight:600;font-display:swap;src:url(fonts/instrument-sans-600-latin.woff2) format("woff2")}@font-face{font-family:Instrument Sans;font-style:normal;font-weight:600;font-display:swap;src:url(fonts/instrument-sans-600-latin-ext.woff2) format("woff2")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(fonts/plex-mono-400-latin.woff2) format("woff2")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(fonts/plex-mono-400-latin-ext.woff2) format("woff2")}:root{color-scheme:dark;--celestial-ink: #08090d;--celestial-text: #eef2fb;--celestial-secondary: #d6deed;--celestial-meta: #8fa3be;--celestial-azur: #6ad2ff;--celestial-amber: #ffb454;--celestial-line: rgba(255, 255, 255, .14);--celestial-hud: rgba(9, 14, 28, .88)}*{box-sizing:border-box}[hidden]{display:none!important}html,body{width:100%;min-height:100%;margin:0;overflow:hidden}body{background:var(--celestial-ink);color:var(--celestial-text);font-family:Instrument Sans,system-ui,sans-serif;-webkit-font-smoothing:antialiased}.celestial-shell{position:relative;width:100vw;height:100dvh;min-height:568px;isolation:isolate;overflow:hidden}.celestial-starfield,.celestial-canvas{position:absolute;inset:0;width:100%;height:100%;display:block}.celestial-starfield{z-index:0;pointer-events:none}.celestial-canvas{z-index:1;cursor:default;touch-action:none}@media(hover:hover)and (pointer:fine){.celestial-canvas{cursor:grab}.celestial-canvas[data-hover-target=true]{cursor:crosshair}.celestial-canvas[data-interaction=dragging],.celestial-canvas[data-interaction=traveling]{cursor:grabbing}}.celestial-canvas:focus-visible{outline:3px solid var(--celestial-azur);outline-offset:-3px}.celestial-controls button:focus-visible{outline:3px solid var(--celestial-azur);outline-offset:3px}.celestial-labels{position:absolute;z-index:2;inset:0;pointer-events:none}.celestial-label{position:absolute;display:flex;flex-direction:column;justify-content:center;min-width:0;padding:3px 10px;border-radius:8px;color:var(--celestial-text);background:#08090dad;text-shadow:0 1px 8px #08090d}.celestial-label[data-status=leader]{background:#090e1cc2}.celestial-label[data-horizon=below]{opacity:.68}.celestial-label[data-kind=planet],.celestial-label[data-kind=moon]{border-left:2px solid var(--celestial-amber)}.celestial-label[data-kind=sun_or_earth]{border-left:2px solid var(--celestial-azur)}.celestial-label-title{overflow:hidden;font-size:1rem;font-weight:600;line-height:1.25;text-overflow:ellipsis;white-space:nowrap}.celestial-label-subtitle{overflow:hidden;color:var(--celestial-meta);font-family:IBM Plex Mono,ui-monospace,monospace;font-size:.8125rem;line-height:1.4;text-overflow:ellipsis;white-space:nowrap}.celestial-target-lock{position:absolute;z-index:3;top:calc(124px + env(safe-area-inset-top));left:50%;display:flex;align-items:center;gap:8px;min-height:44px;padding:6px 8px 6px 14px;border:1px solid rgba(106,210,255,.46);border-radius:999px;background:#090e1cb8;box-shadow:0 12px 30px #02040a66;backdrop-filter:blur(14px);transform:translate(-50%);font-family:IBM Plex Mono,ui-monospace,monospace;font-size:.75rem}.celestial-target-lock span{color:var(--celestial-meta)}.celestial-target-lock strong{color:var(--celestial-azur);font-weight:500}.celestial-target-lock button{min-height:32px;padding:0 12px;border:0;border-radius:999px;color:var(--celestial-text);background:#ffffff17;font:inherit;cursor:pointer}.celestial-target-lock button:focus-visible{outline:3px solid var(--celestial-azur);outline-offset:2px}.celestial-info{position:absolute;z-index:4;width:min(17rem,calc(100vw - 32px));padding:14px 16px 12px;border:1px solid rgba(255,255,255,.16);border-radius:16px;background:#090e1c9e;box-shadow:0 18px 44px #02040a80;backdrop-filter:blur(18px) saturate(1.15);animation:celestial-info-in .16s ease-out;pointer-events:none}.celestial-info-view,.celestial-info-content{min-height:0}.celestial-info-view[hidden]{display:none}.celestial-object-view{display:flex;flex-direction:column}@keyframes celestial-info-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}.celestial-info-close{position:absolute;top:2px;right:2px;display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;padding:0;border:0;border-radius:999px;color:var(--celestial-meta);background:none;cursor:pointer;pointer-events:auto}.celestial-info-close:hover{color:var(--celestial-text)}.celestial-info-close:focus-visible{outline:3px solid var(--celestial-azur);outline-offset:-3px}.celestial-info-close svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round}.celestial-info-eyebrow{margin:0;padding-right:36px;color:var(--celestial-azur);font-family:IBM Plex Mono,ui-monospace,monospace;font-size:.6875rem;letter-spacing:.08em;line-height:1.4;text-transform:uppercase}.celestial-info-title{margin:2px 0 0;padding-right:36px;font-size:1.125rem;font-weight:600;line-height:1.25}.celestial-info-subtitle{margin:2px 0 0;color:var(--celestial-meta);font-family:IBM Plex Mono,ui-monospace,monospace;font-size:.75rem;line-height:1.4}.celestial-info-constellation{margin:5px 0 0;padding:0;border:0;color:var(--celestial-azur);background:none;font:500 .75rem/1.4 IBM Plex Mono,ui-monospace,monospace;text-decoration:underline;text-underline-offset:3px;cursor:pointer;pointer-events:auto}.celestial-info-constellation:disabled{color:var(--celestial-meta);text-decoration-style:dashed;cursor:not-allowed}.celestial-info-constellation:focus-visible{outline:3px solid var(--celestial-azur);outline-offset:3px}.celestial-info-constellation-hint{margin:3px 0 0;color:var(--celestial-meta);font-size:.6875rem;line-height:1.4}.celestial-info-rows{display:grid;grid-template-columns:minmax(0,auto) minmax(0,1fr);gap:2px 12px;margin:10px 0 0;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:.75rem;font-variant-numeric:tabular-nums;line-height:1.5}.celestial-info-rows dt{color:var(--celestial-meta)}.celestial-info-rows dd{margin:0;color:var(--celestial-secondary);text-align:right}.celestial-info-note{margin:10px 0 0;padding-top:9px;border-top:1px solid rgba(255,255,255,.1);color:var(--celestial-secondary);font-size:.8125rem;line-height:1.45}.celestial-info-history{margin:10px 0 0;color:var(--celestial-secondary);font-size:.8125rem;line-height:1.45}.celestial-info-data-note{margin:8px 0 0;color:var(--celestial-meta);font-size:.75rem;line-height:1.45}.celestial-info-source{margin:8px 0 0;color:var(--celestial-meta);font-family:IBM Plex Mono,ui-monospace,monospace;font-size:.6875rem;line-height:1.4}.celestial-observation{pointer-events:auto}.celestial-observation-back{min-height:36px;margin:0 36px 8px 0;padding:0;border:0;color:var(--celestial-azur);background:none;font:500 .75rem/1.4 IBM Plex Mono,ui-monospace,monospace;cursor:pointer}.celestial-observation-back:before{content:"← "}.celestial-observation-back:focus-visible,.celestial-observation h2:focus-visible{outline:3px solid var(--celestial-azur);outline-offset:3px}.celestial-observation h2{margin:0;padding-right:36px;color:var(--celestial-text);font-size:.9375rem;line-height:1.35}.celestial-observation-context,.celestial-observation-state,.celestial-observation-source{margin:6px 0 0;color:var(--celestial-secondary);font-size:.75rem;line-height:1.45}.celestial-observation-state{color:var(--celestial-text)}.celestial-observation-list{display:grid;gap:8px;max-height:10rem;margin:10px 0 0;padding:0 4px 0 0;overflow-y:auto;overscroll-behavior:contain;list-style:none;scrollbar-width:thin}.celestial-observation-list li{padding:8px 9px;border:1px solid rgba(255,255,255,.1);border-radius:10px;background:#ffffff0b}.celestial-observation-list li.celestial-observation-best{border-color:#6ad2ff6b;background:#6ad2ff14}.celestial-observation-list strong,.celestial-observation-list span{display:block}.celestial-observation-list strong{color:var(--celestial-text);font:500 .75rem/1.4 IBM Plex Mono,ui-monospace,monospace}.celestial-observation-list span{margin-top:2px;color:var(--celestial-meta);font-size:.6875rem;line-height:1.4}.celestial-observation-list .celestial-observation-moon-facts[data-moon-state=below_horizon]{color:var(--celestial-azur);font-weight:600}.celestial-observation-list .celestial-observation-moon-guidance{margin-top:3px;color:var(--celestial-secondary)}.celestial-observation-list .celestial-observation-moon-guidance-below{padding-left:7px;border-left:2px solid var(--celestial-azur);color:var(--celestial-text)}.celestial-observation-list .celestial-observation-best-reason{margin-top:6px;color:var(--celestial-azur)}.celestial-observation-list .celestial-observation-chance{--observation-chance-color: #f27d7d;display:flex;align-items:center;gap:10px;margin-top:7px;padding:7px 8px;border:1px solid color-mix(in srgb,var(--observation-chance-color) 46%,transparent);border-radius:10px;background:#050a1647}.celestial-observation-list .celestial-observation-chance[data-band=limited]{--observation-chance-color: #f4b55f}.celestial-observation-list .celestial-observation-chance[data-band=high]{--observation-chance-color: #63d692}.celestial-observation-list .celestial-observation-chance-ring{position:relative;display:grid;flex:0 0 50px;width:50px;height:50px;margin:0;place-items:center;border-radius:50%;color:var(--observation-chance-color);background:conic-gradient(currentColor calc(var(--observation-chance) * 1%),#ffffff1f 0)}.celestial-observation-list .celestial-observation-chance-ring:after{position:absolute;inset:5px;border-radius:inherit;background:#11182a;content:""}.celestial-observation-list .celestial-observation-chance-percent{position:relative;z-index:1;margin:0;color:#fff;font:600 .6875rem/1 IBM Plex Mono,ui-monospace,monospace;font-variant-numeric:tabular-nums}.celestial-observation-list .celestial-observation-chance-copy{min-width:0;margin:0}.celestial-observation-list .celestial-observation-chance-label{display:block;margin:0;color:var(--celestial-meta);font-size:.6875rem;letter-spacing:.02em}.celestial-observation-list .celestial-observation-chance-quality{margin:0;color:#fff;font-weight:650;text-transform:uppercase}.celestial-observation-list .celestial-observation-chance-reason{margin:2px 0 0;color:var(--celestial-secondary)}.celestial-observation-estimate{position:relative;display:flex;align-items:center;gap:6px;margin-top:8px;color:var(--celestial-meta);font:500 .6875rem/1.35 IBM Plex Mono,ui-monospace,monospace}.celestial-observation-help{display:inline-grid;width:28px;min-width:28px;min-height:28px;padding:0;border:1px solid rgba(106,210,255,.42);border-radius:50%;color:var(--celestial-azur);background:#6ad2ff1a;font:650 .75rem/1 IBM Plex Mono,ui-monospace,monospace;cursor:pointer;place-items:center}.celestial-observation-help:hover{background:#6ad2ff33}.celestial-observation-help:focus-visible{outline:3px solid var(--celestial-azur);outline-offset:2px}.celestial-observation-disclosure{position:absolute;z-index:2;right:0;bottom:calc(100% + 6px);left:0;margin:0;padding:10px 11px;border:1px solid rgba(106,210,255,.32);border-radius:10px;color:var(--celestial-secondary);background:#11182a;box-shadow:0 12px 28px #00000052;font:400 .75rem/1.45 Inter,system-ui,sans-serif}.celestial-observation-source{font-family:IBM Plex Mono,ui-monospace,monospace;font-size:.6875rem}.celestial-observation-place{display:inline-block;margin-top:8px;color:var(--celestial-azur);font-size:.75rem;text-underline-offset:3px}.celestial-observation-place:focus-visible{outline:3px solid var(--celestial-azur);outline-offset:3px}.celestial-info-actions{flex:none}.celestial-info-action{width:100%;min-height:42px;margin-top:12px;padding:8px 14px;border:1px solid rgba(106,210,255,.42);border-radius:999px;color:var(--celestial-text);background:#6ad2ff24;font:500 .8125rem/1.2 IBM Plex Mono,ui-monospace,monospace;cursor:pointer;pointer-events:auto}.celestial-info-action:hover{background:#6ad2ff38}.celestial-info-action:focus-visible{outline:3px solid var(--celestial-azur);outline-offset:2px}.celestial-info-action-secondary{margin-top:8px;border-color:#fff3;background:#ffffff12}.celestial-info-action-secondary:hover{background:#ffffff1f}@media(max-width:767px),(max-height:700px){.celestial-info{display:flex;flex-direction:column;max-height:var(--celestial-info-max-height, calc(100dvh - 32px) )}.celestial-object-view{flex:1 1 auto;overflow:hidden}.celestial-info-content{flex:1 1 auto;overflow-y:auto;overscroll-behavior:contain;pointer-events:auto;scrollbar-width:thin}.celestial-observation{overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin}.celestial-info-actions{flex:none}.celestial-info:not([hidden])~.celestial-panel .celestial-hud{display:none}}html[data-celestial-text-scale=large] .celestial-info{width:calc(100vw - 24px)}.celestial-header{position:absolute;z-index:2;inset:0 0 auto;display:grid;grid-template-columns:minmax(160px,1fr) minmax(280px,auto) minmax(220px,1fr);align-items:start;gap:24px;padding:calc(24px + env(safe-area-inset-top)) 32px 48px;background:linear-gradient(180deg,#060811e6,#06081100);pointer-events:none}.celestial-brand{display:inline-flex;align-items:center;gap:10px;width:fit-content;min-height:44px;color:var(--celestial-text);font-weight:600;text-decoration:none;pointer-events:auto}.celestial-brand:focus-visible{outline:3px solid var(--celestial-azur);outline-offset:4px}.celestial-place{text-align:center}.celestial-eyebrow,.celestial-place p,.celestial-conditions,.celestial-hud,.celestial-loading,.celestial-unavailable{font-family:IBM Plex Mono,ui-monospace,monospace;font-variant-numeric:tabular-nums}.celestial-eyebrow{color:var(--celestial-azur);font-size:.8125rem;letter-spacing:.08em}h1{margin:4px 0;font-size:2rem;line-height:1.25;font-weight:600}.celestial-place p,.celestial-conditions{margin:0;color:var(--celestial-secondary);font-size:.8125rem;line-height:1.55}.celestial-conditions{justify-self:end;max-width:250px;padding-top:12px;text-align:right}.celestial-conditions[data-status=partial],.celestial-conditions[data-status=stale],.celestial-conditions[data-status=unavailable]{color:var(--celestial-amber)}.celestial-panel{position:absolute;z-index:2;left:50%;bottom:calc(24px + env(safe-area-inset-bottom));display:grid;grid-template-columns:auto minmax(260px,1fr);align-items:stretch;gap:12px;width:min(820px,calc(100vw - 48px));transform:translate(-50%)}.celestial-controls{display:grid;grid-template-columns:repeat(5,minmax(48px,3rem)) minmax(116px,7.25rem) minmax(168px,10.5rem);align-items:center;gap:8px;padding:12px;border:1px solid var(--celestial-line);border-radius:18px;background:var(--celestial-hud);backdrop-filter:blur(12px)}.celestial-controls button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-width:max(48px,3rem);min-height:max(48px,3rem);margin:0;padding:0;border:1px solid var(--celestial-line);border-radius:999px;color:var(--celestial-text);background:#ffffff0f;font:600 .8125rem/1.4 Instrument Sans,system-ui,sans-serif;cursor:pointer;touch-action:manipulation}.celestial-controls button:hover{border-color:#6ad2ffb8}.celestial-controls button:disabled{border-color:var(--celestial-line);color:var(--celestial-meta);opacity:.55;cursor:not-allowed}.celestial-controls button[aria-pressed=true]{border-color:var(--celestial-azur);color:#07101a;background:var(--celestial-azur)}.celestial-controls svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.celestial-controls svg[hidden]{display:none}.celestial-label-toggle{padding-inline:16px!important}.celestial-recenter,.celestial-door{padding-inline:14px!important}.celestial-hud{display:grid;grid-template-columns:auto auto;align-items:center;gap:4px 20px;min-width:0;padding:16px 20px;border:1px solid var(--celestial-line);border-radius:18px;background:var(--celestial-hud);backdrop-filter:blur(12px);font-size:.9375rem;line-height:1.45}.celestial-hud strong{justify-self:end;color:var(--celestial-azur);font-weight:400}.celestial-hud-footer{grid-column:1 / -1;display:flex;flex-wrap:wrap;gap:4px 12px;align-items:center}.celestial-hud-source{color:var(--celestial-meta);font-size:.8125rem}.celestial-licenses{color:var(--celestial-meta);font-size:.75rem}.celestial-licenses summary{color:var(--celestial-azur);cursor:pointer}.celestial-licenses a{color:var(--celestial-secondary)}.celestial-licenses p{margin:4px 0 0}.celestial-privacy{padding:0;border:0;color:var(--celestial-azur);background:none;font:inherit;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px;cursor:pointer}.celestial-privacy:focus-visible{outline:3px solid var(--celestial-azur);outline-offset:3px}.celestial-loading,.celestial-unavailable{position:absolute;z-index:3;inset:50% auto auto 50%;margin:0;padding:12px 16px;border-radius:14px;background:var(--celestial-hud);transform:translate(-50%,-50%);font-size:.8125rem}.celestial-unavailable{color:var(--celestial-amber)}.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}@media(max-width:767px){.celestial-header{grid-template-columns:1fr auto;gap:8px 16px;padding:calc(12px + env(safe-area-inset-top)) 16px 48px}.celestial-brand span{display:none}.celestial-target-lock{top:calc(184px + env(safe-area-inset-top))}.celestial-place{grid-column:1 / -1;grid-row:2;text-align:left}.celestial-conditions{grid-column:2;grid-row:1;max-width:220px;padding-top:2px}h1{margin-top:8px;font-size:1.875rem;line-height:1.27}.celestial-place p{font-size:.8125rem}.celestial-hud{grid-template-columns:auto auto;gap:2px;padding:12px 16px}.celestial-hud strong{justify-self:end}.celestial-hud-footer{grid-column:1 / -1}.celestial-panel{bottom:calc(12px + env(safe-area-inset-bottom));display:grid;grid-template-columns:1fr;gap:8px;width:calc(100vw - 32px)}.celestial-controls{grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;padding:8px}.celestial-controls button{width:100%;min-width:0}.celestial-label-toggle{padding-inline:4px!important}.celestial-recenter{position:absolute;right:0;bottom:calc(100% + 8px);width:max(48px,3rem)!important;min-height:max(48px,3rem)!important;padding:0!important}.celestial-recenter span{display:none}.celestial-door{position:absolute;right:calc(max(48px,3rem) + 8px);bottom:calc(100% + 8px);width:max(48px,3rem)!important;min-height:max(48px,3rem)!important;padding:0!important}.celestial-door span{display:none}html[data-celestial-text-scale=large] .celestial-header{grid-template-columns:44px minmax(0,1fr);grid-template-rows:auto;align-items:center;gap:8px;padding:calc(8px + env(safe-area-inset-top)) 12px 14px}html[data-celestial-text-scale=large] .celestial-place{grid-column:2;grid-row:1}html[data-celestial-text-scale=large] .celestial-eyebrow,html[data-celestial-text-scale=large] .celestial-place p,html[data-celestial-text-scale=large] .celestial-conditions{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}html[data-celestial-text-scale=large] h1{margin:0}html[data-celestial-text-scale=large] .celestial-panel{bottom:calc(8px + env(safe-area-inset-bottom));gap:6px;width:calc(100vw - 24px)}html[data-celestial-text-scale=large] .celestial-controls{gap:4px;padding:6px}html[data-celestial-text-scale=large] .celestial-controls button{min-height:48px;font-size:.5rem}html[data-celestial-text-scale=large] .celestial-hud{gap:0 8px;padding:8px 10px;font-size:.55rem;line-height:1.25}html[data-celestial-text-scale=large] .celestial-hud-source{font-size:.45rem}}@media(max-width:359px)and (max-height:700px){html[data-celestial-text-scale=large],html[data-celestial-text-scale=large] body{overflow:hidden}.celestial-shell[data-text-scale=large]{height:100dvh;min-height:568px}}@media(min-width:768px)and (max-width:1199px){h1{font-size:2.375rem;line-height:1.21}}@media(min-width:768px){.celestial-panel{left:12px;right:12px;width:auto;bottom:calc(14px + env(safe-area-inset-bottom));grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:end;gap:10px;transform:none}.celestial-controls{grid-column:2;grid-row:1;grid-template-columns:repeat(4,auto) auto auto auto;gap:6px;padding:6px 10px;border-radius:999px}.celestial-controls button{min-width:max(48px,3rem);min-height:max(48px,3rem)}.celestial-hud{grid-column:3;grid-row:1;justify-self:end;align-self:end;max-width:min(20rem,100%);padding:10px 14px;border-radius:14px;font-size:.8125rem}.celestial-hud-footer{font-size:.75rem}.celestial-hud-source{font-size:.75rem;line-height:1.35}}@media(min-width:768px)and (max-width:1100px){.celestial-recenter,.celestial-door{width:max(48px,3rem);padding-inline:0!important}.celestial-recenter span,.celestial-door span{display:none}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}@media(prefers-contrast:more){.celestial-observation-list .celestial-observation-chance{border-width:2px;border-color:var(--observation-chance-color);background:#050a16}.celestial-observation-list .celestial-observation-chance-reason{color:#fff}}@media(forced-colors:active){.celestial-header,.celestial-controls,.celestial-hud,.celestial-loading,.celestial-unavailable,.celestial-info{background:Canvas;border-color:CanvasText}.celestial-info{backdrop-filter:none}.celestial-canvas:focus-visible,.celestial-controls button:focus-visible,.celestial-info-close:focus-visible,.celestial-brand:focus-visible{outline-color:Highlight}.celestial-controls button[aria-pressed=true]{color:HighlightText;background:Highlight}.celestial-observation-list .celestial-observation-chance{border-color:CanvasText}.celestial-observation-list .celestial-observation-chance-ring{color:Highlight}.celestial-observation-help,.celestial-observation-disclosure{border-color:CanvasText;background:Canvas;color:CanvasText}}
