:root{color-scheme:dark;font:14px/1.7 "Courier New",Courier,monospace;letter-spacing:.025em;background:#000;color:#fff}*{box-sizing:border-box}body{margin:0}a{color:inherit;text-decoration:none}a:hover{text-decoration:underline}header{padding:28px;border-bottom:1px solid #fff;display:flex;gap:1ch;flex-wrap:wrap}header span{margin-left:auto;font-size:10px;align-self:center}main{padding:28px 4vw 40px}h1,h2,h3,p{font:inherit;margin:0}h1{margin-bottom:6px}.intro p,.section-label,.hint,.credit,small,.planet-caption{font-size:10px}.observatory{display:grid;grid-template-columns:210px minmax(0,1fr);gap:30px;max-width:1200px;margin:38px auto 36px 0;align-items:center}aside p{margin:20px 0}.readout{font-size:11px;margin:32px 0;min-height:42px}fieldset{border:0;padding:0;margin:24px 0}legend{font-size:10px;margin-bottom:10px}button{display:block;font:inherit;letter-spacing:inherit;font-size:11px;color:#fff;background:#000;border:0;padding:6px 0;cursor:pointer;text-align:left}button:hover{text-decoration:underline;text-underline-offset:4px}button:focus-visible,a:focus-visible{outline:1px solid #fff;outline-offset:5px}.planet{min-width:0;max-width:800px;width:100%;justify-self:center}svg{width:100%;height:auto;aspect-ratio:1.15;display:block;touch-action:pan-y;cursor:grab}svg:active{cursor:grabbing}svg path,svg circle{vector-effect:non-scaling-stroke}.planet-caption{display:flex;justify-content:space-between;gap:16px;margin-top:8px}.future{border-top:1px solid #fff;padding-top:22px;max-width:1200px}.future h2{font-size:10px;margin-bottom:24px}.future>div{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px}.future h3{font-size:11px;margin-bottom:12px}.future p{font-size:11px;line-height:1.7}.future small{display:block;margin-top:20px}.credit{margin-top:48px}@media(max-width:650px){header{padding:24px}header span{width:100%;margin:6px 0 0}main{padding:24px}.observatory{grid-template-columns:1fr;margin-top:28px;gap:20px}.planet{grid-row:1}aside{display:grid;grid-template-columns:1fr 1fr;gap:12px 20px}.section-label,aside>p,.readout,.hint{display:none}fieldset{grid-row:span 3;margin:0}.future>div{grid-template-columns:1fr;gap:30px}.planet-caption{font-size:9px}button{min-height:40px}.credit{font-size:9px}}

header{position:sticky;top:0;z-index:3;background:#000}.observatory{margin-top:0}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.seismic{max-width:1200px;border-top:1px solid #fff;padding-top:24px}.seismic h2{margin-bottom:16px}.source-note,.map-key{font-size:10px}.map-key p{margin:12px 0}.event-control{margin:24px 0;max-width:650px}.event-control label{display:block;font-size:11px;margin-bottom:8px}select{width:100%;font:inherit;background:#000;color:#fff;border:1px solid #fff;border-radius:0;padding:10px;min-width:0}#event-detail{max-width:650px;font-size:12px;min-height:100px}#event-detail a{text-decoration:underline}.crosshair{pointer-events:none}.credit a{text-decoration:underline}.seismic p{margin-bottom:10px}@media(max-width:650px){.readout{display:block;margin:0;grid-column:1/-1}.map-key{grid-column:1/-1}select{font-size:16px}.observatory{margin-top:0}}

/* Phone readability, touch targets and landscape safe areas. */
html { -webkit-text-size-adjust: 100%; }
header { padding-left: max(28px, env(safe-area-inset-left)); padding-right: max(28px, env(safe-area-inset-right)); }
main { padding-left: max(4vw, env(safe-area-inset-left)); padding-right: max(4vw, env(safe-area-inset-right)); padding-bottom: max(40px, env(safe-area-inset-bottom)); }
@media (max-width: 600px), (pointer: coarse), (max-height: 500px) and (max-width: 950px) {
  header { padding-top: max(12px, env(safe-area-inset-top)); padding-bottom: 12px; align-items: center; }
  header a { display: inline-flex; align-items: center; min-height: 44px; }
  button { min-width: 44px; min-height: 44px; font-size: 12px; }
  .section-label, .hint, .credit, small, .planet-caption, .source-note { font-size: 11px; }
  select { font-size: 16px; min-height: 44px; }
  .credit a, #event-detail a { display: inline-flex; align-items: center; min-height: 44px; }
  main { padding-left: max(24px, env(safe-area-inset-left)); padding-right: max(24px, env(safe-area-inset-right)); }
  .seismic, #event-detail { overflow-wrap: anywhere; }
}
@media (max-height: 500px) and (max-width: 950px) { header { padding-top: 8px; padding-bottom: 8px; } }

/* Reserve caption space so pausing never shifts the globe or touch controls. */
.planet-caption { display:flex; flex-direction:column; align-items:flex-start; gap:0; }
.love-control { position:relative; height:44px; }
#send-love { position:absolute; top:0; min-height:44px; font-size:11px; }
#send-love[hidden] { display:none; }
#send-love:disabled { cursor:default; opacity:.5; text-decoration:none; }
.love-symbol { color:#fff; font-family:Arial,sans-serif; }
.love-flight { pointer-events:none; }

.world-actions { grid-column:1/-1; text-align:left; }
.world-actions .planet-caption { margin-top:0; }

.world-ticker { display:flex; align-items:center; width:100%; max-width:1200px; min-width:0; border-top:1px solid #fff; border-bottom:1px solid #fff; margin:0 0 24px; }
#ticker-toggle { flex:none; min-width:44px; min-height:44px; text-align:center; }
.ticker-window { min-width:0; flex:1; overflow-x:auto; scrollbar-width:none; }
.ticker-window:focus-visible { outline:1px dotted #fff; outline-offset:2px; }
#ticker-track { display:flex; width:max-content; animation:ticker-travel var(--ticker-duration,180s) linear infinite; font-size:12px; }
.ticker-group { display:flex; flex:none; align-items:center; }
.ticker-item { white-space:nowrap; padding-right:5ch; }
.ticker-item::after { content:' + '; margin-left:5ch; }
.world-ticker:hover #ticker-track,.ticker-window:focus #ticker-track,.ticker-hidden #ticker-track { animation-play-state:paused; }
.ticker-paused #ticker-track { animation:none; }
.ticker-paused .ticker-group[aria-hidden] { display:none; }
@keyframes ticker-travel { to { transform:translateX(-50%); } }
@media(prefers-reduced-motion:reduce) { #ticker-track { animation:none; } .ticker-group[aria-hidden] { display:none; } }

#ticker-toggle[hidden] { display:none; }

#news-ticker { display:flex; align-items:center; max-width:1200px; min-width:0; min-height:44px; margin:-16px 0 16px; border:0; visibility:hidden; }
#news-ticker.news-ready { visibility:visible; }
#news-toggle { min-height:44px; min-width:44px; text-align:center; flex:none; }
#news-toggle[hidden] { display:none; }
.news-window { flex:1; min-width:0; overflow-x:auto; scrollbar-width:none; }
.news-window:focus-visible { outline:1px dotted #fff; }
#news-track { display:flex; width:max-content; font-size:12px; animation:news-travel var(--news-duration,90s) linear infinite; }
.news-group { display:flex; flex:none; }
.news-item { white-space:nowrap; margin-right:5ch; }
a.news-item { text-decoration:none; }
a.news-item:hover,a.news-item:focus-visible { text-decoration:underline; }
#news-ticker:hover #news-track,.news-window:focus-within #news-track,.news-hidden #news-track { animation-play-state:paused; }
.news-paused #news-track { animation:none; }
.news-paused .news-group[aria-hidden] { display:none; }
@keyframes news-travel { to { transform:translateX(-50%); } }
@media(prefers-reduced-motion:reduce) { #news-track { animation:none; } .news-group[aria-hidden] { display:none; } }

.news-error #news-track { animation:none; }

/* Match the native selector while retaining 16px phone input text. */
.event-control label { font-size:14px; }
@media (max-width:650px), (pointer:coarse), (max-height:500px) and (max-width:950px) { .seismic h2, .event-control label { font-size:16px; } }
