@font-face { font-family: Acherus; src: url('/fonts/AcherusMilitant1-Bold.woff2') format('woff2'); font-weight: 700; font-display: swap; }
:root { --purple:#5700c1; --ink:#17131f; --muted:#706b7b; --line:#e8e5ec; }
* { box-sizing:border-box; }
body { margin:0; color:var(--ink); background:#f7f6f9; font:14px/1.5 Arial,sans-serif; }
button,input { font:inherit; }
button,a,input,summary { -webkit-tap-highlight-color:transparent; }
button { cursor:pointer; }
button:disabled { cursor:wait; opacity:.5; }
a { color:var(--purple); text-decoration:none; }
a:hover { text-decoration:underline; }
:focus-visible { outline:3px solid #a67af1; outline-offset:4px; }
[hidden] { display:none !important; }
.site-header { min-height:76px; display:flex; align-items:center; gap:24px; padding:16px 4vw; background:#000; color:#fff; }
.brand { display:flex; align-items:center; gap:10px; font-family:Acherus,Arial,sans-serif; font-weight:700; font-size:19px; letter-spacing:.2px; color:#fff; white-space:nowrap; }
.brand img { object-fit:contain; }
.header-divider { width:1px; height:24px; background:#444; }
.header-title { color:#c0bdc8; font-size:13px; }
.header-title a { color:#fff; }
.back-link { margin-left:auto; color:#ddd; font-size:12px; }
main { max-width:1560px; margin:auto; padding:36px 4vw 20px; }
.intro { display:flex; justify-content:space-between; align-items:center; gap:25px; margin-bottom:28px; }
.eyebrow { margin:0 0 8px; color:var(--purple); font-size:10px; letter-spacing:2px; font-weight:700; }
h1,h2 { font-family:Acherus,Arial,sans-serif; font-weight:700; }
h1 { margin:0; font-size:clamp(28px,3vw,42px); line-height:1.15; letter-spacing:-1px; overflow-wrap:anywhere; }
h1 span { color:var(--purple); }
.intro-actions { display:flex; flex-direction:column; align-items:flex-end; gap:10px; }
.intro-copy { color:var(--muted); font-size:13px; margin:0; max-width:300px; text-align:right; }
.share-links { display:flex; gap:8px; }
.share-links a { display:inline-flex; align-items:center; justify-content:center; width:34px; height:34px; border:1px solid var(--line); border-radius:2px; background:#fff; color:var(--muted); font-size:14px; text-decoration:none; transition:color .15s, border-color .15s, background .15s; }
.share-links a:hover, .share-links a:focus-visible { color:#fff; background:var(--purple); border-color:var(--purple); }
/* UNDO: share buttons start */
.share-buttons { display:flex; gap:6px; flex-wrap:wrap; }
.share-btn { width:32px; height:32px; border:1px solid var(--line); background:#fff; color:var(--ink); border-radius:2px; display:flex; align-items:center; justify-content:center; font-size:13px; cursor:pointer; text-decoration:none; padding:0; }
.share-btn:hover { background:#f1e9ff; border-color:#d9cdf5; color:var(--purple); text-decoration:none; }
/* UNDO: share buttons end */
.satellite-picker { display:flex; align-items:center; gap:10px; margin-top:16px; }
.satellite-picker label { color:var(--muted); font-size:12px; }
.satellite-picker select { min-width:190px; max-width:100%; padding:9px 12px; border:1px solid var(--line); border-radius:2px; background:#fff; color:var(--ink); font:inherit; cursor:pointer; }
.tracker-icon { width:1.1em; margin-right:6px; color:#91839f; font-size:.9em; text-align:center; }
.tracker-layout { display:grid; grid-template-columns:290px minmax(0,1fr); border:1px solid var(--line); background:white; border-radius:3px; overflow:hidden; box-shadow:0 8px 32px #17131f05; }
.mission-panel { --panel-padding:25px; min-width:0; padding:var(--panel-padding); border-right:1px solid var(--line); overflow-wrap:anywhere; }
.mission-tag { color:var(--purple); font-size:10px; font-weight:700; letter-spacing:1.5px; }
h2 { margin:6px 0 2px; font-size:28px; }
.mission-heading p { margin:0; color:var(--muted); font-size:12px; }
dl { margin:0; }
dd { margin:0; }
.identity { margin:15px 0 14px; padding-bottom:10px; border-bottom:1px solid var(--line); }
.identity div,.orbit-facts div { display:flex; justify-content:space-between; gap:10px; margin:7px 0; font-size:12px; }
dt { color:var(--muted); }
.identity dd,.orbit-facts dd { font-weight:600; }
.section-heading { display:flex; align-items:center; justify-content:space-between; gap:8px; }
h3 { font-size:13px; margin:0; }
.status-chip { font-size:9px; font-weight:700; color:var(--purple); background:#f1e9ff; padding:3px 6px; border-radius:2px; white-space:nowrap; }
.model-label { font-size:10px; color:var(--muted); margin:8px 0 17px; }
.metrics { display:grid; grid-template-columns:1fr 1fr; gap:10px 8px; }
.metrics dt { font-size:11px; margin-bottom:4px; }
.metrics dd { font-size:19px; font-weight:600; font-variant-numeric:tabular-nums; letter-spacing:-.5px; }
.metrics small { font-size:11px; color:var(--muted); font-weight:400; letter-spacing:0; }
.time-readout { background:#f8f6fb; border-left:2px solid var(--purple); padding:5px 12px; margin-top:17px; }
.time-readout span { display:block; font-size:8px; letter-spacing:1px; color:var(--muted); }
.time-readout time { display:block; margin-top:4px; font:12px/1.5 monospace; }
.orbit-facts { padding:6px 0; }
.merch-cta { display:flex; align-items:center; gap:12px; margin:7px calc(-1 * var(--panel-padding)) 0; padding:5px calc(var(--panel-padding) - 4px); background:#fff; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.merch-cta:hover { background:#faf8ff; border-color:#d9cdf5; text-decoration:none; }
.merch-cta img { width:92px; height:92px; object-fit:contain; flex-shrink:0; }
.merch-cta-text { flex:1; min-width:0; }
.merch-cta-text strong { display:block; font-family:Acherus,Arial,sans-serif; font-weight:700; font-size:14px; letter-spacing:-.2px; color:var(--ink); }
.merch-cta-text span { display:block; font-size:11px; color:var(--muted); margin-top:2px; }
.merch-cta-arrow { font-size:17px; line-height:1; color:var(--purple); flex-shrink:0; transition:transform .15s; }
.merch-cta:hover .merch-cta-arrow { transform:translateX(3px); }
.flyover-cta { margin-top:0; border-top:0; }
.data-details { margin-top:12px; font-size:11px; color:var(--muted); }
.data-details summary { cursor:pointer; color:var(--ink); font-weight:600; }
.data-details p { line-height:1.6; margin:12px 0; }
.data-details dt { margin-top:8px; font-size:10px; }
.data-details dd { color:#3f394b; font-variant-numeric:tabular-nums; }
.data-details a { display:inline-block; margin-top:12px; }
.viewer-panel { min-width:0; background:#090911; color:#fff; display:flex; flex-direction:column; }
.viewer-toolbar { display:flex; align-items:flex-start; justify-content:space-between; gap:15px; padding:18px 20px 0; z-index:2; }
.view-buttons { display:flex; flex-wrap:wrap; gap:8px; }
.map-toggles { display:grid; gap:4px; margin-left:auto; flex-shrink:0; }
.map-status { margin:10px 20px 0; color:#ffd29e; font-size:11px; }
.viewer-panel button { color:#d6d1e2; background:#ffffff08; border:1px solid #ffffff24; border-radius:2px; padding:8px 12px; font-size:11px; }
.viewer-panel button:hover { color:white; border-color:#ae7cf1; background:#ffffff12; }
.viewer-panel button[aria-pressed=true] { border-color:#9551ed; color:#fff; background:#5700c144; }
.orbit-toggle { display:flex; align-items:center; gap:6px; min-height:20px; color:#c4bfd0; font-size:11px; white-space:nowrap; cursor:pointer; }
.orbit-toggle input { margin:0; }
input[type=checkbox],input[type=range] { accent-color:#9c65f0; }
#globe { position:relative; min-height:440px; height:clamp(440px,46vw,560px); flex:1; overflow:hidden; background:radial-gradient(ellipse at center,#18233b 0,#0c0d18 48%,#090911 72%); }
#globe canvas { display:block; width:100%; height:100%; touch-action:none; }
#city-labels { position:absolute; inset:0; pointer-events:none; z-index:1; }
.city-label { position:absolute; padding:0 5px; color:#d8f3f6; background:#080e1bc9; border-radius:2px; font:10px/18px Arial,sans-serif; white-space:nowrap; }
#satellite-label { position:absolute; z-index:2; pointer-events:none; font-size:9px; letter-spacing:1px; font-weight:bold; background:#100b20db; border:1px solid #9b64e7; padding:6px 8px; border-radius:2px; white-space:nowrap; transform:translate(16px,-50%); }
#satellite-label span { display:inline-block; width:5px; height:5px; border-radius:50%; background:#be91ff; margin-right:4px; }
#marker-name { display:inline-block; max-width:150px; overflow:hidden; text-overflow:ellipsis; vertical-align:bottom; }
.globe-message { position:absolute; inset:35% 12% auto; text-align:center; z-index:3; padding:18px; background:#0d0a18ee; border:1px solid #443455; font-size:13px; color:#e7dff2; border-radius:2px; }
.globe-controls { position:absolute; right:20px; bottom:50px; display:flex; flex-direction:column; gap:6px; z-index:2; }
.globe-controls button { width:34px; height:34px; padding:0; font-size:19px; background:#0e0d19dd; }
.legend { display:flex; gap:18px; position:absolute; left:20px; bottom:15px; color:#b5b1c5; font-size:10px; pointer-events:none; }
.legend span { display:flex; gap:6px; align-items:center; }
.legend i { display:block; width:17px; height:2px; }
.past { background:#8b8ca7; }.future { background:#b36aff; }
.time-controls { background:#11101b; border-top:1px solid #ffffff14; padding:14px 22px 12px; }
.time-controls-heading { display:flex; align-items:center; justify-content:space-between; font-size:12px; }
.time-controls-heading button { border:0; padding:0; color:#c69aff; }
#time-offset { width:100%; margin:15px 0 5px; cursor:pointer; }
.range-labels { display:flex; justify-content:space-between; font-size:10px; color:#a29bab; }
.range-labels output { color:#e0c5ff; }
.data-status { font-size:11px; padding:10px 22px; background:#181322; color:#c9bcd9; border-top:1px solid #ffffff0c; min-height:37px; }
.data-status.warning { color:#ffd29e; background:#2c2116; }
.data-status.error { color:#ffd0d5; background:#321a24; }
.viewer-footer { display:flex; gap:10px; align-items:center; justify-content:space-between; padding:10px 22px; color:#9992a8; font-size:10px; }
.viewer-footer button { border:0; padding:0; font-size:10px; }
.viewer-panel:fullscreen { width:100vw; height:100vh; }.viewer-panel:fullscreen #globe { height:auto; }
.page-footer { display:flex; justify-content:space-between; gap:16px; padding-top:20px; color:#89828f; font-size:10px; }
.page-footer>span:first-child { flex-shrink:0; }
.page-footer>span:last-child { text-align:right; }
.page-footer a { color:inherit; text-decoration:underline; }
.noscript { margin:20px; padding:20px; border:1px solid var(--purple); }
@media(max-width:1000px) { main { padding:28px 20px 20px; }.tracker-layout { grid-template-columns:255px minmax(0,1fr); }.mission-panel { --panel-padding:20px; }.viewer-toolbar { flex-wrap:wrap; }.intro-copy { display:none; }.intro-actions { align-items:flex-end; } }
@media(max-width:700px) {
  .site-header { min-height:64px; padding:16px 20px; gap:12px; }.brand { font-size:16px; }.brand img { width:28px; }.header-divider,.header-title { display:none; }.back-link { font-size:0; }.back-link span { font-size:20px; }
  main { padding:24px 14px 18px; }.intro { margin-bottom:20px; }.intro { flex-direction:column; align-items:flex-start; gap:14px; }.intro-actions { align-items:flex-start; }h1 { font-size:30px; }.eyebrow { font-size:9px; letter-spacing:1.3px; }
  .tracker-layout { display:flex; flex-direction:column; }.viewer-panel { order:-1; }.mission-panel { border-right:0; --panel-padding:24px; }.viewer-toolbar { gap:8px; padding:12px 12px 0; }.viewer-panel button { font-size:10px; padding:8px; }.orbit-toggle { font-size:10px; }
  .view-buttons { flex-direction:column; align-items:flex-start; }.page-footer>span:last-child { text-align:left; }
  #globe { min-height:340px; height:360px; flex:auto; }.legend { left:12px; font-size:9px; gap:12px; }.globe-controls { right:12px; }.globe-controls button { font-size:19px; padding:0; }.time-controls,.data-status { padding-left:14px; padding-right:14px; }.viewer-footer { padding:10px 14px; }.viewer-footer button { padding:0; }
  .metrics { gap:8px 18px; }.metrics dd { font-size:24px; }.mission-heading { float:left; }.identity { margin:0 0 10px; padding:0 0 10px; clear:both; padding-top:11px; }.page-footer { flex-direction:column; gap:8px; font-size:9px; }
}
