@font-face{font-family:"VT323";font-style:normal;font-weight:400;font-display:swap;src:url("assets/fonts/vt323-latin.woff2") format("woff2")}
@font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:400;font-display:swap;src:url("assets/fonts/ibm-plex-mono-latin.woff2") format("woff2")}
*{box-sizing:border-box}
html{font-size:16px;color-scheme:dark;--ui-font:"IBM Plex Mono","Lucida Console",Monaco,monospace;--display-font:"VT323","Courier New",monospace;--bg:#30303f;--edge:#13131e;--text:#f3efdf;--muted:#c4c2d3;--accent:#c5e6ae;--soft:#3d3c50;--line:#77718966;--shine:#8a829e;--shadow:#191824;--button:#c4bfd5;--button-ink:#282436;--title-bg:#4a435e;--title-ink:#f8f0da;--screen:#1e282b;--screen-text:#d8ebbb;--screen-muted:#b6cbb4;--input:#252631;--raised:inset 1px 1px 0 var(--shine),inset -1px -1px 0 var(--shadow);--sunken:inset 1px 1px 0 var(--shadow),inset -1px -1px 0 var(--shine)}
html[data-theme=light]{color-scheme:light;--bg:#c4c2d0;--edge:#454154;--text:#292538;--muted:#504b62;--accent:#315b37;--soft:#d6d2e0;--line:#77708777;--shine:#f6f1fb;--shadow:#777183;--button:#dfdbe5;--button-ink:#292538;--title-bg:#716486;--title-ink:#fff6df;--screen:#d5dbc4;--screen-text:#253d2d;--screen-muted:#435846;--input:#f3f1e9}
body{margin:0;padding:7px 9px 10px 6px;background:transparent;color:var(--text);font:1rem/1.5 var(--ui-font);-webkit-font-smoothing:antialiased}
[hidden]{display:none!important}button,input{font:inherit}button,a{-webkit-tap-highlight-color:transparent}
button{cursor:pointer;color:var(--button-ink);border:1px solid var(--edge);background:var(--button);border-radius:1px;padding:7px 12px;line-height:1.45;box-shadow:var(--raised)}
button:hover:not(:disabled){filter:brightness(1.06)}button:active:not(:disabled){box-shadow:var(--sunken)}button:disabled{cursor:default;opacity:.45}
button:focus-visible,a:focus-visible,input:focus-visible{outline:2px dashed var(--accent);outline-offset:3px}
h2,h3,p{margin:0}a{color:var(--accent)}.muted,.hint,.sources{color:var(--muted)}
.banner{width:100%;overflow:hidden;border:2px solid var(--edge);border-radius:3px;padding:3px;background:var(--bg);box-shadow:var(--raised),3px 3px 0 #11121c99}
.toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:7px 12px 9px;margin-top:4px;border-top:1px solid var(--shadow)}
.tools{display:flex;align-items:center;gap:8px}
.pill{display:flex;align-items:center;gap:8px;font-size:.875rem;padding:6px 10px}
.pill svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.8}
.count{display:inline-grid;place-items:center;min-width:19px;height:19px;padding:0 3px;background:#27352d;color:#dceac1;font:1.15rem/1 var(--display-font);box-shadow:inset 1px 1px 0 #101c13}
.unit-toggle{display:flex;padding:2px;gap:3px;border:1px solid var(--edge);border-radius:1px;background:var(--bg);box-shadow:var(--sunken)}
.unit-toggle button{width:32px;min-height:29px;padding:0 2px;font:1.3rem/1 var(--display-font)}
.unit-toggle button[aria-pressed=true]{color:#213226;background:#c5e6ae;box-shadow:inset 1px 1px 0 #6b8760}
.icon-button{display:inline-grid;place-items:center;padding:2px;width:32px;height:32px;font-size:1.25rem}
.panels{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);border:1px solid var(--edge)}
.location-panel{--panel-pad:24px;position:relative;isolation:isolate;overflow:hidden;min-width:0;padding:0 var(--panel-pad) 12px;--text:#fff8df;--muted:#dce6ee;--accent:#d9ebbb;--line:#bcb9d655;--bg:#142234;color:var(--text)}
.location-panel>.panel-heading,.location-panel>#local-card,.location-panel>.slides,.location-panel>.empty{position:relative;z-index:1}
.location-panel .primary{color:#243128}
.panel-sky,.sky-scene,.sky-art,.sky-layer,.sky-shade{position:absolute;inset:0;pointer-events:none}
.panel-sky{z-index:0;background:#142234}
.sky-scene{opacity:0;background:#142234;transition:opacity .75s ease}
.sky-scene.is-visible{opacity:1}
.sky-art{opacity:0;transition:opacity 1s ease}
.sky-scene[data-ready=true] .sky-art{opacity:1}
.sky-layer{background-size:cover;background-position:center 48%;transition:opacity 2s ease,filter 2s ease}
.sky-night{background-image:url("assets/sky/clear-night.png")}
.sky-day{background-image:url("assets/sky/clear-day.png");opacity:var(--sky-daylight,0)}
.sky-clouds{background-image:url("assets/sky/cloud-cover.png");opacity:var(--sky-clouds,0);filter:brightness(var(--sky-cloud-brightness,1)) blur(var(--sky-haze,0px))}
.sky-twilight{background:linear-gradient(180deg,#1e254fdd,#a9617466 58%,#ef9a4ccc);opacity:var(--sky-glow,0)}
.sky-shade{background:linear-gradient(180deg,#06111d9e,#07111ba8 65%,#07111dba)}
.location-panel+.location-panel{border-left:2px solid #2a2738}
.panel-heading{display:flex;justify-content:space-between;align-items:center;gap:8px;min-height:36px;margin:0 calc(-1 * var(--panel-pad)) 9px;padding:4px 12px;background:var(--title-bg);border-top:1px solid #8c7d9e;border-bottom:2px solid #1b1927}
.panel-heading h2{font:400 1.15rem/1 var(--display-font);letter-spacing:.045em;text-transform:uppercase;color:var(--title-ink)}
.small-label{font-size:.8125rem;color:var(--title-ink);white-space:nowrap}
.rotation-controls{display:flex;align-items:center;gap:4px}
.rotation-controls .small-label{margin-right:4px}
.mini-button{display:grid;place-items:center;width:25px;height:24px;padding:0;font-size:1.25rem;line-height:1}
.pause-button{font-size:.875rem}
.place-heading{display:flex;align-items:center;justify-content:space-between;gap:14px;min-height:56px}
.place-identity{min-width:0}
.place-identity h3{font:400 1.85rem/1 var(--display-font);letter-spacing:0;overflow-wrap:anywhere}
.person-label{font-size:.875rem;color:var(--accent);line-height:1.5;margin-top:4px;overflow-wrap:anywhere;min-height:21px}
.local-clock{text-align:right;flex-shrink:0;display:flex;flex-direction:column;gap:2px}
.local-clock time{font:400 1.5rem/1 var(--display-font);white-space:nowrap;color:#efe2ff}
.local-clock span{font-size:.8125rem;color:var(--muted);white-space:nowrap}
.weather-row{display:flex;align-items:center;gap:15px;min-height:64px}
.weather-icon{color:var(--accent);font-size:2rem;width:33px;flex-shrink:0;line-height:1}
.weather-icon svg{width:33px;height:33px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:square;stroke-linejoin:miter}
.temperature{font:400 3.7rem/.95 var(--display-font);letter-spacing:-.025em;white-space:nowrap;color:#fff0be}
.temperature small{font-size:1.65rem;vertical-align:top;line-height:1.25}
.weather-description{min-width:0;font-size:.875rem;line-height:1.55}
.weather-description .muted{font-size:.875rem;margin-top:3px}
.weather-details{display:flex;justify-content:space-between;flex-wrap:wrap;gap:4px 12px;font-size:.8125rem;color:var(--muted);min-height:20px}
.card-note{min-height:18px;font-size:.8125rem;line-height:1.45;color:var(--muted);margin-top:6px}
.slides{display:grid}
.person-slide{grid-area:1/1;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .75s ease,visibility 0s .75s}
.person-slide.is-active{opacity:1;visibility:visible;pointer-events:auto;transition:opacity .75s ease,visibility 0s}
.empty{min-height:188px;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:18px;color:var(--muted);font-size:.875rem}
/* Moon strip, then two compact Earth views. */
.celestial-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:4px;margin-bottom:4px}
.shared-moon{grid-column:1/-1;display:flex;align-items:center;flex-wrap:wrap;gap:8px 18px;margin:0;padding:10px 17px;border:1px solid var(--edge);background:var(--screen);color:var(--screen-text);box-shadow:var(--sunken)}
.earth-section{min-width:0;padding:10px 14px 9px;border:1px solid var(--edge);background:var(--screen);color:var(--screen-text);box-shadow:var(--sunken)}
.earth-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:4px}
.earth-heading h2{font:400 1.15rem/1.15 var(--display-font);letter-spacing:.035em;text-transform:uppercase}
.earth-heading button{font-size:.75rem;line-height:1.4;padding:3px 7px;white-space:nowrap}
.earth-heading button[aria-pressed=true]{background:#c5e6ae;color:#213226;box-shadow:var(--sunken)}
.earth-body{display:grid;grid-template-columns:144px minmax(0,1fr);align-items:center;gap:12px;min-height:153px}
#earth-globe{display:block;width:144px;height:144px;max-width:100%;object-fit:contain}
.earth-copy,.orbit-copy{min-width:0}
#earth-status,#orbit-status{font-size:.8125rem;line-height:1.45;font-variant-numeric:tabular-nums}
.earth-detail{font-size:.75rem;color:var(--screen-muted);line-height:1.5;margin-top:3px}
.earth-places{padding:0;margin:6px 0;list-style:none;max-height:108px;overflow:auto;scrollbar-width:thin}
.earth-places li+li{margin-top:3px}
.earth-place{display:flex;align-items:center;gap:6px;width:100%;text-align:left;background:transparent;box-shadow:none;border:1px solid transparent;padding:1px;color:var(--screen-text);font-size:.75rem;line-height:1.25}
.earth-place:hover:not(:disabled){background:var(--line);filter:none}
.earth-place:focus-visible{outline-offset:-1px}
.earth-pin-key{display:grid;place-items:center;flex:none;min-width:15px;height:15px;border:1px solid #101d27;border-radius:50%;background:#d5c5f0;color:#172331;font:11px/1 var(--ui-font)}
.earth-place[data-own=true] .earth-pin-key{background:#d4edac}
.earth-place-copy{min-width:0;overflow:hidden}
.earth-place-name{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.earth-place-state{display:block;color:var(--screen-muted);font-size:.75rem;margin-top:2px}
.orbit-body{display:flex;align-items:center;gap:5px;min-height:153px}
#earth-orbit{display:block;width:62%;max-width:260px;min-width:0;flex:none;overflow:visible}
.orbit-copy{flex:1}
.orbit-path{fill:none;stroke:var(--screen-muted);stroke-width:1;stroke-dasharray:2 3;opacity:.75}
.orbit-direction{fill:none;stroke:var(--screen-muted);stroke-width:1.2;stroke-linejoin:round}
.orbit-season-dot{fill:var(--screen);stroke:var(--screen-muted);stroke-width:1}
.orbit-season-label{fill:var(--screen-text);font:18px var(--ui-font)}
.orbit-season-kind{fill:var(--screen-muted);font:17px var(--ui-font)}
.orbit-sun{fill:#efd186;stroke:#9b6d2b;stroke-width:1}
.orbit-sun-label{fill:var(--screen-text);font:17px var(--ui-font)}
.orbit-halo{fill:var(--screen);stroke:var(--screen-text);stroke-width:1}
.orbit-planet{fill:#8bc4dd;stroke:#243e52;stroke-width:1.5}
.shared-moon h2{font:400 1.15rem/1.15 var(--display-font);letter-spacing:.035em;text-transform:uppercase;color:var(--screen-text)}
.shared-next{margin-left:auto;font-size:.875rem;color:var(--screen-muted)}
.moon-row{display:flex;align-items:center;gap:13px;min-height:54px}
.moon-image-wrap{display:grid;place-items:center;width:54px;height:54px;flex-shrink:0;overflow:hidden;border-radius:50%;background:#020304;color:#d2c9bb;font-size:.8125rem}
.moon-image-wrap img{display:block;width:100%;height:100%;object-fit:cover}
.moon-copy{min-width:0;font:400 1.4rem/1 var(--display-font)}
.moon-copy .muted{font:.8125rem/1.5 var(--ui-font);color:var(--screen-muted);margin-top:4px}
footer{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:4px;padding:6px 11px;min-height:36px;border:1px solid var(--edge);box-shadow:var(--sunken);font-size:.8125rem;color:var(--muted)}
.status{display:flex;gap:8px;align-items:center;line-height:1.4}
footer button{font-size:.8125rem;padding:1px 8px;white-space:nowrap}#about-button{margin-left:auto}#retry{color:var(--accent);background:var(--bg);text-decoration:underline}
dialog{color:var(--text);background:var(--bg);border:2px solid var(--edge);border-radius:2px;box-shadow:var(--raised),5px 5px 0 #0d101a99;padding:5px 20px 18px;width:min(610px,calc(100% - 24px));max-height:calc(100dvh - 16px);overflow:auto}
dialog::backdrop{background:#101421b8}
.dialog-header{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:0 -15px 14px;padding:4px 7px 4px 10px;background:var(--title-bg);border:1px solid var(--edge)}
.dialog-header h2{font:400 1.5rem/1.1 var(--display-font);letter-spacing:0;color:var(--title-ink)}
.close{display:inline-flex;align-items:center;justify-content:center;padding:0;line-height:1;flex-shrink:0;height:26px;width:26px}
.close svg{display:block;width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:square}
dialog p{font-size:.875rem;line-height:1.7;margin:10px 0}
dialog .hint,dialog .sources{font-size:.8125rem}
.credits{margin-top:16px;font-size:.875rem}.credits summary{cursor:pointer;color:var(--accent)}.credits summary:focus-visible{outline:2px dashed var(--accent);outline-offset:3px}
.location-actions,.form-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}
.primary{color:#243128;background:#c5e6ae}
form{margin-top:18px}label{display:block;font-size:.875rem;margin:13px 0 7px}
.search-row{display:flex;gap:8px}
input{min-width:0;width:100%;padding:10px;border:1px solid var(--edge);border-radius:1px;box-shadow:var(--sunken);color:var(--text);background:var(--input)}
.results{display:grid;gap:6px;margin-top:10px}.results button{text-align:left}.results small{display:block;color:var(--button-ink);opacity:.8;margin-top:4px}.results p{margin:0}
.people-list{list-style:none;margin:16px 0;padding:0;display:grid;gap:0}
.person-list-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0;border-top:1px dashed var(--line)}
.person-list-row:last-child{border-bottom:1px dashed var(--line)}
.person-summary{min-width:0}.person-summary strong{display:block;font-size:.9375rem;font-weight:400;overflow-wrap:anywhere}.person-summary small{display:block;font-size:.8125rem;color:var(--muted);margin-top:4px;overflow-wrap:anywhere}
.person-actions{display:flex;gap:6px;flex-shrink:0}.person-actions button{font-size:.8125rem;padding:6px 8px}
.person-form{padding-top:16px;border-top:1px solid var(--line)}.person-form h3{font:1.5rem/1.2 var(--display-font)}
.undo-row{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:.8125rem;margin:12px 0;color:var(--accent)}.undo-row button{font-size:.8125rem}
.error{color:var(--accent)}noscript{display:block;padding:16px}
@media(min-width:1200px){.location-panel{--panel-pad:32px}.place-identity h3{font-size:2.05rem}.weather-row{gap:18px}}
@media(max-width:900px){.location-panel{--panel-pad:17px}.place-heading{gap:9px}.place-identity h3{font-size:1.75rem}.local-clock time{font-size:1.375rem}.weather-row{gap:10px}.temperature{font-size:3.25rem}.weather-icon,.weather-icon svg{width:28px;height:28px}.panel-heading{gap:4px;padding-inline:9px}.panel-heading h2{font-size:1.125rem}.rotation-controls{gap:3px}.mini-button{width:23px}.shared-moon{gap:10px 18px;padding-inline:17px}.shared-next{font-size:.8125rem}}
@media(max-width:670px){.panels{grid-template-columns:1fr}.location-panel+.location-panel{border-left:0;border-top:2px solid var(--edge)}.toolbar{flex-wrap:wrap;gap:8px;padding:8px 8px 10px}.tools{margin-left:auto}.place-identity h3{font-size:1.85rem}.local-clock time{font-size:1.5rem}.weather-row{gap:14px}.panel-heading h2{font-size:1.15rem}.temperature{font-size:3.5rem}.shared-moon{padding:12px 17px;gap:8px 16px}.shared-moon h2{width:100%}.shared-next{margin-left:0}footer{align-items:flex-start;gap:8px}.person-list-row{align-items:flex-start}.person-actions{flex-wrap:wrap;justify-content:flex-end}}
@media(max-width:390px){.toolbar>.pill{width:100%;justify-content:center}.tools{margin:0 auto}.place-identity h3{font-size:1.7rem}.local-clock time{font-size:1.375rem}.person-actions{flex-direction:column}.shared-next{width:100%}.search-row{flex-wrap:wrap}.search-row input{flex-basis:100%}}
@media(prefers-reduced-motion:reduce){.person-slide,.person-slide.is-active,.sky-scene,.sky-art,.sky-layer{transition:none}}




@media(max-width:900px){.earth-section{padding-inline:10px}.earth-body{grid-template-columns:128px minmax(0,1fr);gap:8px}#earth-globe{width:128px;height:128px}.earth-heading h2{font-size:1.1rem}}
@media(max-width:740px){.celestial-row{grid-template-columns:1fr}.earth-section{padding-inline:17px}.earth-body{grid-template-columns:144px minmax(0,1fr);gap:16px}#earth-globe{width:144px;height:144px}#earth-orbit{width:62%;max-width:280px}.orbit-body{gap:16px}.earth-places{max-height:110px}.earth-place{font-size:.8125rem}}
@media(max-width:390px){.earth-section{padding-inline:10px}.earth-body{grid-template-columns:120px minmax(0,1fr);gap:10px}#earth-globe{width:120px;height:120px}.orbit-body{gap:6px}.earth-heading button{font-size:.6875rem}.earth-detail{font-size:.75rem}}

.orbit-key{display:flex;align-items:center;gap:5px;font-size:.8125rem;margin-bottom:3px}.orbit-key span{width:9px;height:9px;border-radius:50%;background:#8bc4dd;border:1px solid #243e52}

.earth-viewport{min-width:0}.earth-zoom{display:flex;align-items:center;justify-content:center;gap:3px;margin-top:5px}
.earth-zoom button{display:grid;place-items:center;padding:0;min-width:27px;height:26px;font-size:.875rem;line-height:1}
#earth-zoom-reset{min-width:43px;font-size:.75rem}#earth-globe{touch-action:none;cursor:default;border-radius:2px}#earth-globe[data-zoomed=true]{cursor:grab}#earth-globe[data-dragging=true]{cursor:grabbing}
.orbit-toolbar{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;margin:7px 0 4px}
.orbit-views{display:flex;gap:3px}.orbit-views button{padding:1px 7px;font-size:.75rem}.orbit-views button[aria-pressed=true]{background:#c5e6ae;color:#213226;box-shadow:var(--sunken)}
.planet-list{list-style:none;padding:0;margin:0;display:grid;gap:2px}.planet-list button{display:flex;align-items:center;gap:5px;width:100%;background:transparent;box-shadow:none;color:var(--screen-text);border:1px solid transparent;padding:2px 3px;font-size:.75rem;line-height:1.2;text-align:left}
.planet-list button[aria-pressed=true]{border-color:var(--screen-muted);background:var(--line)}.planet-list button:hover{background:var(--line)}.planet-list button:focus-visible{outline-offset:0}
.planet-key{display:block;flex:none;width:9px;height:9px;background:var(--planet-color);border:1px solid #34404d;border-radius:50%}
.planet-track{fill:none;stroke:var(--screen-muted);stroke-width:.8;opacity:.4}.planet-track.is-selected{stroke:var(--screen-text);stroke-width:1.4;opacity:1}
.planet-marker{cursor:inherit}.planet-marker circle{stroke:#24313d;stroke-width:.8}.planet-marker .planet-ring{fill:none;stroke:var(--screen-text);stroke-width:1.2}
#planet-markers .planet-marker:not(.is-selected) .planet-ring{display:none}
@media(max-width:390px){.orbit-toolbar{gap:5px}.orbit-views button{padding-inline:5px}#orbit-status{font-size:.75rem}.planet-list button{font-size:.75rem;padding-inline:1px}}

/* Give the interactive maps their own full-width rows. */
#earth-section,#orbit-section{grid-column:1/-1}
.earth-body{grid-template-columns:minmax(160px,240px) minmax(0,1fr);gap:24px;max-width:720px;margin:6px auto}
#earth-globe{width:100%;height:auto;aspect-ratio:1;cursor:grab}.earth-places{max-height:180px}.earth-place{font-size:.875rem;padding:4px 2px}.earth-place-state{font-size:.75rem}
.orbit-body{display:block;min-height:0}.orbit-zoom{display:flex;gap:4px}.orbit-zoom button{min-width:30px;height:28px;padding:0 8px;font-size:.875rem}#orbit-fit{min-width:43px;font-size:.75rem}
#earth-orbit{display:block;width:100%;max-width:none;height:clamp(320px,44vw,430px);overflow:hidden;touch-action:none;cursor:grab;background:var(--screen);border:1px solid var(--line);box-shadow:var(--sunken)}
#earth-orbit[data-dragging=true]{cursor:grabbing}.planet-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(92px,1fr));gap:4px;margin:10px 0 2px}.planet-list button{min-height:28px;font-size:.8125rem;padding:4px 6px}
.planet-track,.planet-marker circle,.orbit-sun,.orbit-season-dot{vector-effect:non-scaling-stroke}.orbit-selected-label,.orbit-season-label{fill:var(--screen-text);font-family:var(--ui-font);paint-order:stroke;stroke:var(--screen);stroke-linejoin:round;pointer-events:none}
@media(max-width:500px){.earth-body{grid-template-columns:minmax(130px,46%) minmax(0,1fr);gap:12px}.earth-place{font-size:.8125rem}.earth-places{max-height:150px}.planet-list{grid-template-columns:repeat(3,minmax(0,1fr))}.planet-list button{font-size:.75rem;padding-inline:3px}#earth-orbit{height:330px}}

/* Compact Notion banner. Map dialogs keep the larger exploration views. */
body{padding:4px 7px 7px 4px}
.banner>.shared-moon{padding:6px 12px;gap:6px 16px;margin-bottom:4px}
.banner>.shared-moon h2{width:auto;flex:none;font-size:1.1rem}
.banner>.shared-moon .moon-row{min-height:40px;gap:9px}
.banner>.shared-moon .moon-image-wrap{width:40px;height:40px}
.banner>.shared-moon .moon-copy{font-size:1.25rem}
.banner>.shared-moon .moon-copy .muted{margin-top:1px;font-size:.8125rem}
.banner>.shared-moon .shared-next{width:auto;margin-left:auto;font-size:.8125rem}
.banner-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px}
.banner-grid .panels{display:contents}
.banner-grid .location-panel{--panel-pad:12px;border:1px solid var(--edge);padding-bottom:10px}
.banner-grid .panel-heading{min-height:30px;padding:3px 8px;margin-bottom:8px;gap:4px}
.banner-grid .panel-heading h2{font-size:1.1rem}
.banner-grid .rotation-controls{gap:3px}
.banner-grid .rotation-controls .small-label{font-size:.75rem;margin-right:1px}
.banner-grid .mini-button{width:22px;height:23px}
.banner-grid .place-heading{display:block;min-height:0}
.banner-grid .place-identity h3{font-size:1.65rem;line-height:1.05}
.banner-grid .person-label{font-size:.875rem;line-height:1.35;min-height:19px;margin-top:3px}
.banner-grid .local-clock{flex-direction:row;justify-content:space-between;align-items:center;gap:5px;margin-top:8px;text-align:left;flex-wrap:wrap}
.banner-grid .local-clock time{font-size:1.35rem}
.banner-grid .local-clock span{font-size:.75rem}
.banner-grid .weather-row{min-height:62px;gap:9px;margin:7px 0}
.banner-grid .weather-icon,.banner-grid .weather-icon svg{width:24px;height:24px}
.banner-grid .temperature{font-size:3.15rem}
.banner-grid .weather-description,.banner-grid .weather-description .muted{font-size:.875rem;line-height:1.35}
.banner-grid .weather-details,.banner-grid .card-note{font-size:.8125rem}
.banner-grid #earth-section,.banner-grid #orbit-section{grid-column:auto;padding:8px 10px}
.banner-grid .earth-heading{flex-wrap:wrap;gap:4px;margin-bottom:6px}
.banner-grid .earth-heading h2{font-size:1.1rem;flex:1;white-space:nowrap}
.banner-grid .earth-heading button{font-size:.75rem;padding:3px 6px}
.map-expand{display:grid;place-items:center;flex:none;width:26px;height:26px;padding:3px!important}
.map-expand svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.5}
.banner-grid .earth-body{grid-template-columns:136px minmax(0,1fr);min-height:0;max-width:none;gap:8px;margin:0}
.banner-grid .earth-viewport{width:136px;max-width:100%;margin:auto}
.banner-grid #earth-globe{width:100%;height:auto}
.banner-grid .earth-zoom{margin-top:2px}
.banner-grid .earth-places{max-height:120px;margin:3px 0}
.banner-grid .earth-place{font-size:.875rem;padding:4px 1px}
.banner-grid .orbit-toolbar{margin:3px 0 5px;gap:4px}
.banner-grid #orbit-status{font-size:.75rem}
.banner-grid .orbit-zoom{gap:3px}
.banner-grid .orbit-zoom button{min-width:25px;height:25px;padding:0 5px}
.banner-grid #orbit-fit{min-width:34px}
.banner-grid #earth-orbit{height:140px;min-height:0}
.banner-grid .orbit-season-label{display:none}
.banner-grid #planet-list{display:none}
#planet-picker{display:block;width:100%;min-height:29px;margin-top:6px;padding:3px 7px;color:var(--screen-text);background:var(--screen);border:1px solid var(--line);border-radius:1px;font:.875rem var(--ui-font)}
#planet-picker:focus-visible{outline:2px dashed var(--accent);outline-offset:1px}
.banner-settings{display:flex;align-items:center;gap:5px;margin-top:4px;border-top:1px solid var(--shadow)}
.banner-settings .toolbar{flex:1;min-width:0;gap:8px;margin:0;border:0;padding:5px 7px}
.banner-settings .pill{font-size:.8125rem;padding:3px 7px;gap:6px}
.banner-settings .tools{gap:5px}
.banner-settings .unit-toggle button{min-height:25px;width:29px}
.banner-settings .icon-button{width:29px;height:29px}
.banner-settings footer{flex:none;border:0;box-shadow:none;margin:0;padding:5px 7px 5px 0;min-height:0;gap:6px}
.banner-settings footer button{min-height:29px;font-size:.8125rem;padding:1px 7px}
.banner-settings:has(#status-wrap:not([hidden])){flex-wrap:wrap}
.banner-settings:has(#status-wrap:not([hidden])) footer{flex-basis:100%;padding:0 7px 5px}
.map-dialog{width:min(960px,calc(100% - 24px));padding:5px 12px 12px}
.map-dialog>.dialog-header{margin:0 -7px 8px}
.map-dialog .earth-section{padding:10px 12px}
.map-dialog .earth-heading h2,.map-dialog .map-expand,.map-dialog #planet-picker{display:none}
.map-dialog .earth-heading{justify-content:flex-end}
.map-dialog .earth-body{grid-template-columns:minmax(160px,360px) minmax(0,1fr);gap:22px;max-width:780px}
.map-dialog #earth-globe{width:100%;height:auto}
.map-dialog #earth-orbit{height:min(58vh,480px)}
.map-dialog .earth-places{max-height:280px}
.map-dialog .earth-place{font-size:.875rem}
.map-dialog .planet-list{grid-template-columns:repeat(auto-fit,minmax(92px,1fr))}
@media(min-width:840px){
  .banner-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
  .banner-grid .earth-heading h2{flex-basis:100%}
  .banner-grid .map-expand{margin-left:auto}
  .banner-grid .earth-body{grid-template-columns:1fr;gap:1px}
  .banner-grid .earth-places{max-height:84px;margin:4px 0 0}
  .banner-grid .earth-place{padding:3px 1px;line-height:1.2}
}
@media(min-width:1200px){
  .banner-grid .earth-heading h2{flex-basis:auto}
  .banner-grid .map-expand{margin-left:0}
  .banner-grid .earth-viewport{width:144px}
  .banner-grid #earth-orbit{height:152px}
}
@media(min-width:840px) and (max-width:1040px){
  .banner-grid .weather-row{display:grid;grid-template-columns:24px minmax(0,1fr);gap:4px 8px}
  .banner-grid .weather-description{grid-column:1/-1}
  .banner-grid .panel-heading{flex-wrap:wrap}
}
@media(max-width:620px){
  .banner>.shared-moon{gap:6px 10px}
  .banner>.shared-moon h2{flex-basis:100%}
  .banner>.shared-moon .shared-next{margin-left:0}
  .banner-grid .earth-heading h2{flex-basis:100%}
  .banner-grid .map-expand{margin-left:auto}
  .banner-grid .earth-body{grid-template-columns:1fr;gap:1px}
  .banner-grid .earth-places{max-height:84px}
  .banner-settings{flex-wrap:wrap}
  .banner-settings .toolbar{flex-basis:100%}
  .banner-settings footer{margin-left:auto;padding:0 7px 5px}
  .map-dialog .earth-body{grid-template-columns:1fr;gap:8px}
  .map-dialog .earth-viewport{width:min(100%,260px);margin:auto}
  .map-dialog .earth-places{max-height:110px}
}
@media(max-width:460px){
  .banner-grid{grid-template-columns:minmax(0,1fr)}
  .banner-grid .earth-heading h2{flex-basis:auto}
  .banner-grid .earth-body{grid-template-columns:136px minmax(0,1fr);gap:10px}
  .banner-grid .earth-places{max-height:136px}
  .banner-settings .toolbar>.pill{width:auto}
  .banner-settings .tools{margin-left:auto}
}

/* Keep city headings aligned; carousel controls live below the family weather. */
.banner-grid .location-panel{display:flex;flex-direction:column}
.banner-grid .panel-heading{flex-wrap:nowrap;flex:none}
.banner-grid .panel-heading h2{white-space:nowrap}
#family-panel>.rotation-controls{position:relative;z-index:1;justify-content:flex-end;margin-top:auto;padding-top:8px}
#family-panel>.rotation-controls .small-label{color:var(--muted)}
.planet-portrait{pointer-events:none;overflow:hidden}
.rotation-controls .mini-button{align-items:center;justify-items:center;padding:0;line-height:1}
.rotation-controls .mini-button svg{display:block;width:14px;height:14px;fill:currentColor}
.pause-button[aria-pressed=false] .rotation-play,.pause-button[aria-pressed=true] .rotation-pause{display:none}
#orbit-section,.planet-dialog{--screen:#000;--screen-text:#d8ebbb;--screen-muted:#b6cbb4;background:#000;color:var(--screen-text)}
.planet-marker{cursor:pointer}
.planet-marker .planet-dot{stroke:none}
.planet-marker:focus-visible{outline:none}
#planet-markers .planet-marker:focus-visible .planet-ring{display:block;stroke:#fff;stroke-dasharray:2 2}
.planet-picker-row{display:flex;align-items:stretch;gap:4px;margin-top:6px}
.planet-picker-row #planet-picker{flex:1;min-width:0;margin:0}
#planet-open{display:grid;place-items:center;flex:none;width:30px;padding:3px}
#planet-open svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.5}
.map-dialog .planet-picker-row #planet-picker{display:block}
.planet-dialog{width:min(960px,calc(100% - 24px));padding:5px 12px 12px}
.planet-dialog>.dialog-header{margin:0 -7px 8px}
.planet-detail-toolbar{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:8px;margin:8px 0}
#planet-diameter{font-size:.8125rem}
#planet-closeup{display:block;width:100%;height:min(58dvh,510px);min-height:160px;background:#000;touch-action:none;cursor:grab;border:1px solid var(--line)}
#planet-closeup[data-dragging=true]{cursor:grabbing}
#planet-closeup:focus-visible{outline:1px dashed var(--screen-muted);outline-offset:2px}
#planet-photo-error{font-size:.8125rem;margin-top:8px}
.planet-detail-body{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;gap:18px}
.planet-photo-column,.planet-facts-copy{min-width:0}
.planet-photo-column{position:sticky;top:0}
.planet-facts-copy{font-size:.875rem;line-height:1.5;padding:0 2px 4px;overflow-wrap:anywhere}
.planet-type{font:1.35rem/1.2 var(--display-font);letter-spacing:.03em;text-transform:uppercase;margin-bottom:10px}
.planet-facts-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:12px;margin:0}
.planet-facts-list>div{grid-column:1/-1;padding:8px 0;border-top:1px solid #b6cbb42e}
.planet-facts-list>.planet-period{grid-column:auto}
.planet-facts-list dt,.planet-changes-list dt{color:#9fad98;font-size:.75rem;text-transform:uppercase;letter-spacing:.04em;margin-bottom:3px}
.planet-facts-list dd,.planet-changes-list dd{margin:0;color:#e2edcd}
.planet-fact-note{display:block;color:#aebdaa;font-size:.75rem;margin-top:3px}
.planet-temperature-changes{border-top:1px solid #b6cbb42e;padding:9px 0 2px}
.planet-temperature-changes summary{font-size:.875rem;color:#c5e6ae;cursor:pointer}
.planet-changes-list{margin:10px 0}
.planet-changes-list>div+div{margin-top:10px}
.planet-notable{margin:10px 0 12px;padding:10px 12px;background:#181d19;border-left:2px solid #c5e6ae;color:#e2edcd}
.planet-notable>.planet-fact-heading{display:block;font:1.15rem/1.2 var(--display-font);color:#c5e6ae;margin-bottom:4px}
.planet-facts-sources{font-size:.75rem;color:#aebdaa;overflow-wrap:anywhere}
.planet-facts-sources summary{padding:10px 0;cursor:pointer}
.planet-facts-sources a{color:#bcd7a9}
.planet-facts-sources p{margin-top:7px}
@media(max-width:640px){
  .planet-detail-body{grid-template-columns:minmax(0,1fr);gap:14px}
  .planet-photo-column{position:static}
  #planet-closeup{height:min(38dvh,260px)}
  .planet-type{margin-bottom:6px}
}

/* Compact horizontal Notion banner, with a dedicated moon column. */
.banner{max-width:1600px;display:grid;grid-template-columns:150px minmax(0,1fr);gap:10px;padding:12px}
.small-world-heading{grid-column:1/-1}
.small-world-heading h1{font:32px/1 var(--display-font);margin:0 0 2px;text-transform:none;letter-spacing:.02em}
.banner>.shared-moon{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;margin:0;padding:12px;text-align:center;min-width:0}
.banner>.shared-moon .moon-row{display:flex;flex-direction:column;gap:6px}
.banner>.shared-moon .moon-image-wrap{width:72px;height:72px;flex:none}
.banner>.shared-moon h2{margin:0}
.banner>.shared-moon .shared-next{margin:0;white-space:normal}
.banner>.banner-grid{min-width:0;margin:0}
.banner>.banner-settings,.banner>footer{grid-column:1/-1}
@media(max-width:1000px){.banner{grid-template-columns:125px minmax(0,1fr)}.banner>.banner-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:580px){.banner{display:block}.small-world-heading{margin-bottom:10px}.banner>.shared-moon{flex-direction:row;flex-wrap:wrap;margin-bottom:10px}.banner>.shared-moon .moon-row{flex-direction:row;align-items:center}.banner>.shared-moon .moon-image-wrap{width:48px;height:48px}.banner>.shared-moon h2{font-size:18px}.banner>.banner-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

.banner>.shared-moon{grid-column:1;grid-row:2}.banner>.banner-grid{grid-column:2;grid-row:2}.banner>.banner-settings{grid-row:3}

/* Larger type and map targets while retaining the horizontal banner. */
html{font-size:18px}
.banner{grid-template-columns:165px minmax(0,1fr);gap:12px;padding:16px}
.small-world-heading h1{font-size:38px}
.banner>.shared-moon .moon-image-wrap{width:88px;height:88px}
.banner-grid .earth-viewport{width:180px;max-width:100%}
.banner-grid .earth-body{grid-template-columns:minmax(0,1fr)}
.banner-grid #earth-orbit{height:180px}
.banner-grid .earth-places{max-height:120px}
.earth-place[data-own=true] .earth-pin-key{background:#f5d76e;border-radius:50%;color:#172331}
@media(max-width:1000px){.banner{grid-template-columns:140px minmax(0,1fr)}}
@media(max-width:580px){.banner>.shared-moon .moon-image-wrap{width:60px;height:60px}}

/* A shared lavender-and-sage palette across the light banner. */
#theme-button{display:grid;place-items:center;padding:0;line-height:1}
#theme-button svg{display:block;width:18px;height:18px}
html[data-theme=light]{--bg:#e4e2ea;--edge:#696477;--text:#292735;--muted:#53505f;--accent:#375744;--soft:#eeeaf1;--line:#88819255;--shine:#fffefa;--shadow:#aaa4b5;--button:#f0ecf4;--button-ink:#302b3e;--title-bg:#d4cbe1;--title-ink:#302b3e;--screen:#e5eadd;--screen-text:#2e4439;--screen-muted:#526455;--input:#faf9f5}
html[data-theme=light] .location-panel{--text:#292735;--muted:#474c58;--accent:#375744;--line:#88819255;--bg:#e4e8e4}
html[data-theme=light] .sky-shade{background:linear-gradient(180deg,#eef0eddf,#e7eae4da 65%,#e1e6e1e8)}
html[data-theme=light] .panel-heading{border-top-color:var(--shine);border-bottom:1px solid var(--edge)}
html[data-theme=light] .local-clock time{color:#48405e}
html[data-theme=light] .temperature{color:#334a3c}
html[data-theme=light] #orbit-section,html[data-theme=light] .planet-dialog{--screen:#e5eadd;--screen-text:#2e4439;--screen-muted:#526455;background:var(--screen);color:var(--screen-text)}
html[data-theme=light] .count{background:#d2dfc9;color:#2e4439;box-shadow:inset 1px 1px 0 #9cac93}
html[data-theme=light] .banner{box-shadow:var(--raised),2px 2px 0 #69647733}
