:root { --panel: rgba(10, 14, 18, 0.82); --panel-solid: rgba(10, 14, 18, 0.95); --border: rgba(255, 255, 255, 0.08); --accent: #35e0ff; --text: #d6e2ea; --dim: #7c8b97; --ok: #46e08a; --warn: #ffcf50; --err: #ff5964; } * { box-sizing: border-box; } html, body { margin: 0; height: 100%; overflow: hidden; background: #05080b; color: var(--text); font-family: ui-monospace, "SF Mono", "Cascadia Code", Menlo, Consolas, monospace; } #cesiumContainer { position: absolute; inset: 0; } /* ---- HUD ---- */ #hud { position: absolute; top: 14px; left: 14px; width: 288px; max-height: calc(100vh - 28px); display: flex; flex-direction: column; gap: 10px; padding: 14px; background: var(--panel); border: 1px solid var(--border); border-radius: 12px; backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); z-index: 10; font-size: 12px; box-shadow: 0 8px 40px rgba(0, 0, 0, 0.5); } #hud header { display: flex; align-items: center; justify-content: space-between; gap: 8px; } .brand { font-weight: 700; letter-spacing: 0.5px; font-size: 14px; color: #fff; } .brand span { color: var(--accent); font-weight: 500; font-size: 11px; } #live-chip { font-size: 10px; font-weight: 700; letter-spacing: 0.5px; padding: 3px 8px; border-radius: 999px; white-space: nowrap; border: 1px solid transparent; } #live-chip[data-state="live"] { color: var(--ok); border-color: rgba(70, 224, 138, 0.4); background: rgba(70, 224, 138, 0.1); } #live-chip[data-state="scrub"] { color: var(--warn); border-color: rgba(255, 207, 80, 0.4); background: rgba(255, 207, 80, 0.1); font-size: 9px; } .modes { display: flex; gap: 6px; } .modes button { flex: 1; padding: 6px 8px; font: inherit; font-size: 11px; color: var(--dim); background: rgba(255, 255, 255, 0.03); border: 1px solid var(--border); border-radius: 8px; cursor: pointer; transition: all 0.15s; } .modes button:hover { color: var(--text); } .modes button.active { color: #04121a; background: var(--accent); border-color: var(--accent); font-weight: 700; } /* ---- portal to SOLARGOD (sibling orrery) ---- */ .portal-link { display: block; text-align: center; padding: 6px 8px; font-size: 11px; color: var(--dim); text-decoration: none; background: rgba(255, 255, 255, 0.03); border: 1px solid var(--border); border-radius: 8px; transition: all 0.15s; } .portal-link:hover { color: var(--accent); border-color: var(--accent); } /* ---- layer rows ---- */ #layers { display: flex; flex-direction: column; gap: 1px; overflow-y: auto; } /* ---- collapsible category sections ---- */ .cat:has(.cat-body:empty) { display: none; } /* hide unused categories */ .cat-header { display: flex; align-items: center; gap: 6px; padding: 4px 4px 3px; margin-top: 4px; cursor: pointer; user-select: none; color: var(--dim); font-size: 9.5px; letter-spacing: 0.6px; text-transform: uppercase; border-top: 1px solid var(--border); } .cat-header:hover { color: var(--text); } .cat-chevron { font-size: 8px; width: 8px; transition: transform 0.15s; } .cat.collapsed .cat-chevron { transform: rotate(-90deg); } .cat.collapsed .cat-body { display: none; } .cat-body { display: flex; flex-direction: column; gap: 1px; } .layer-row { padding: 5px 4px; border-radius: 6px; } .layer-row:hover { background: rgba(255, 255, 255, 0.03); } .layer-row label { display: flex; align-items: center; gap: 7px; cursor: pointer; user-select: none; } .layer-row input[type="checkbox"] { accent-color: var(--accent); margin: 0; cursor: pointer; } .layer-row .lname { flex: 1; color: var(--text); } .dot { width: 7px; height: 7px; border-radius: 50%; flex: none; background: var(--dim); transition: background 0.2s; } .dot[data-state="ok"] { background: var(--ok); box-shadow: 0 0 6px rgba(70, 224, 138, 0.6); } .dot[data-state="warn"] { background: var(--warn); box-shadow: 0 0 6px rgba(255, 207, 80, 0.6); } .dot[data-state="err"] { background: var(--err); box-shadow: 0 0 6px rgba(255, 89, 100, 0.6); } .dot[data-state="off"] { background: var(--dim); } .lstatus { padding: 0 0 0 24px; color: var(--dim); font-size: 10px; line-height: 1.3; min-height: 0; } .lstatus:empty { display: none; } #hud footer { border-top: 1px solid var(--border); padding-top: 8px; color: var(--dim); font-size: 9.5px; line-height: 1.4; } #hud footer .demo { color: var(--warn); } /* ---- aircraft pick overlay ---- */ #pick-overlay { position: absolute; bottom: 130px; right: 14px; width: 220px; padding: 12px 14px; background: var(--panel-solid); border: 1px solid var(--border); border-left: 2px solid var(--accent); border-radius: 10px; backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); z-index: 10; font-size: 11px; box-shadow: 0 8px 40px rgba(0, 0, 0, 0.5); } #pick-overlay[hidden] { display: none; } #pick-overlay .po-title { font-weight: 700; color: #fff; font-size: 13px; margin-bottom: 6px; } #pick-overlay .po-row { display: flex; justify-content: space-between; gap: 10px; padding: 1px 0; } #pick-overlay .po-row span:first-child { color: var(--dim); } #pick-overlay .po-close { position: absolute; top: 8px; right: 10px; cursor: pointer; color: var(--dim); font-size: 14px; } #pick-overlay .po-close:hover { color: var(--text); } /* Keep Cesium's info box on-theme without fighting it */ .cesium-infoBox { font-family: ui-monospace, monospace; } /* ---- Solar System mode ---- */ #ss-btn { position: absolute; top: 14px; right: 14px; z-index: 12; padding: 8px 14px; font: 12px ui-monospace, "SF Mono", Menlo, monospace; color: var(--text); background: var(--panel); border: 1px solid var(--border); border-radius: 10px; backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); cursor: pointer; letter-spacing: 0.5px; transition: all 0.15s; } #ss-btn:hover { color: #fff; border-color: rgba(255,255,255,0.25); } #ss-btn.active { color: #04121a; background: var(--accent); border-color: var(--accent); font-weight: 700; } #ss-panel { position: absolute; top: 14px; left: 14px; width: 240px; z-index: 12; padding: 14px; background: var(--panel); border: 1px solid var(--border); border-radius: 12px; backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); font: 12px ui-monospace, Menlo, monospace; color: var(--text); } #ss-panel .ss-title { font-weight: 700; letter-spacing: 1px; color: var(--accent); font-size: 11px; margin-bottom: 10px; cursor: pointer; user-select: none; display: flex; align-items: center; justify-content: space-between; } #ss-panel .ss-collapse { font-size: 9px; transition: transform 0.15s; } #ss-panel.collapsed .ss-collapse { transform: rotate(-90deg); } #ss-panel.collapsed { width: auto; } #ss-panel.collapsed .ss-title { margin-bottom: 0; } #ss-panel.collapsed .ss-body { display: none; } #ss-panel .ss-overview { color: var(--accent); border-color: rgba(53,224,255,0.3); margin-bottom: 8px; } #ss-panel .ss-dests { display: flex; flex-direction: column; gap: 4px; } #ss-panel .ss-dest { text-align: left; padding: 7px 10px; font: inherit; color: var(--text); background: rgba(255,255,255,0.03); border: 1px solid var(--border); border-radius: 8px; cursor: pointer; transition: all 0.12s; } #ss-panel .ss-dest:hover { background: rgba(53,224,255,0.12); border-color: var(--accent); color: #fff; } #ss-panel .ss-back { margin-top: 8px; color: var(--dim); } #ss-panel .ss-foot { margin-top: 12px; padding-top: 10px; border-top: 1px solid var(--border); color: var(--dim); font-size: 9.5px; line-height: 1.4; } #ss-panel .ss-foot a { color: var(--dim); } /* Solar System mode hides the Earth/OSINT clock + timeline chrome for a clean view. */ body.ss-active .cesium-viewer-timelineContainer, body.ss-active .cesium-viewer-animationContainer, body.ss-active #live-chip { display: none !important; } /* ---- Space missions list (in the Travel-to panel) ---- */ #ss-panel .ss-missions-toggle { margin-top: 8px; } #ss-panel .ss-missions-toggle.active { color: #04121a; background: var(--accent); border-color: var(--accent); font-weight: 700; } #ss-panel .ss-missions-hint { color: var(--dim); font-size: 9px; margin: 6px 2px 4px; } #ss-panel .ss-missions { display: flex; flex-direction: column; gap: 2px; max-height: 220px; overflow-y: auto; } #ss-panel .ss-mission { display: flex; align-items: center; gap: 7px; padding: 5px 8px; font: inherit; font-size: 11px; text-align: left; color: var(--text); background: rgba(255, 255, 255, 0.02); border: 1px solid transparent; border-radius: 6px; cursor: pointer; transition: all 0.12s; } #ss-panel .ss-mission:hover { background: rgba(255, 255, 255, 0.06); } #ss-panel .ss-mission.active { background: rgba(53, 224, 255, 0.12); border-color: var(--accent); } #ss-panel .ss-mission-dot { width: 8px; height: 8px; border-radius: 50%; flex: none; box-shadow: 0 0 5px currentColor; } #ss-panel .ss-mission-name { flex: 1; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } #ss-panel .ss-mission-tgt { color: var(--dim); font-size: 12px; } /* ---- Infographic card (planet facts + mission info) ---- */ #ss-card { position: absolute; top: 14px; right: 14px; width: 268px; max-height: calc(100vh - 28px); overflow-y: auto; z-index: 13; padding: 16px; background: var(--panel-solid); border: 1px solid var(--border); border-radius: 12px; backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); font: 12px ui-monospace, Menlo, monospace; color: var(--text); box-shadow: 0 8px 40px rgba(0, 0, 0, 0.5); } /* Sit below the Solar System button, which shares the top-right corner. */ body.ss-active #ss-card { top: 62px; } #ss-card .ss-card-x { position: absolute; top: 10px; right: 12px; width: 20px; height: 20px; padding: 0; font: 16px/1 ui-monospace, monospace; color: var(--dim); background: none; border: none; cursor: pointer; } #ss-card .ss-card-x:hover { color: var(--text); } #ss-card .ss-card-title { font-size: 16px; font-weight: 700; color: #fff; margin: 0 20px 8px 0; letter-spacing: 0.5px; } #ss-card .ss-card-blurb { color: var(--text); font-size: 11px; line-height: 1.5; margin-bottom: 12px; } #ss-card .ss-card-stats { display: flex; flex-direction: column; gap: 3px; margin-bottom: 12px; } #ss-card .ss-card-row { display: flex; justify-content: space-between; gap: 10px; padding: 3px 0; border-bottom: 1px solid rgba(255, 255, 255, 0.05); } #ss-card .ss-card-row span:first-child { color: var(--dim); } #ss-card .ss-card-row span:last-child { color: var(--text); text-align: right; } #ss-card .ss-card-fact { font-size: 10.5px; line-height: 1.45; color: var(--accent); background: rgba(53, 224, 255, 0.08); border-left: 2px solid var(--accent); padding: 8px 10px; border-radius: 0 6px 6px 0; }