/* The same sky carries through the cinematic chapter and into the workspace. */
.universe { background: transparent; }
.universe-sticky { border-color: transparent; }
.flight-backdrop { position: fixed; inset: 0; z-index: 0; overflow: hidden; pointer-events: none; opacity: var(--flight-opacity, 0); background: #06070d; }
.flight-backdrop img, .flight-backdrop video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.flight-backdrop img { object-position: 65% center; }
.flight-backdrop video { z-index: 1; opacity: var(--video-ready, 0); }
.flight-backdrop .universe-vignette { z-index: 2; }
html.flight-ready canvas#sky { z-index: 1; }
html.flight-ready #stage #edges, html.flight-ready #stage .node .star,
html.flight-ready #stage .node.hub .name { opacity: var(--map-visibility, 0); }
.universe-art video { display: none; }
.universe-timeline button { position: relative; transition: color .3s, border-color .3s; }
.universe-timeline button::after { content: ''; position: absolute; top: -1px; left: 0; height: 2px; width: 100%; background: var(--polaris); transform: scaleX(var(--travel-fill, 0)); transform-origin: left; box-shadow: 0 0 12px #f3c96966; }
.universe-signal article:not([hidden]) { animation: signalArrive .55s both; }
@keyframes signalArrive { from { opacity: 0; transform: translateY(9px); } to { opacity: 1; transform: none; } }
.net-stage .node .star { transition: box-shadow .5s, background .5s, scale .5s; }
.net-stage .node.journey-lit .star { background: #fff3cd; box-shadow: 0 0 12px #ffe5a5, 0 0 35px #f3c96988; scale: 1.16; }
.net-stage .edge.journey-lit { stroke: #f3c9698c; transition: stroke .6s; }
.net-stage .journey-comet { fill: #fff3cc; filter: drop-shadow(0 0 1px #f3c969); pointer-events: none; }
.net-stage .journey-orbit { stroke: #e9cc8717; stroke-width: .13; fill: none; pointer-events: none; }
.net-stage .readout { overflow-anchor: none; }
@media (prefers-reduced-motion: reduce) {
  .flight-backdrop video { display: none; }
  html.flight-ready #stage #edges, html.flight-ready #stage .node .star,
  html.flight-ready #stage .node.hub .name { opacity: 1; }
  .universe-signal article:not([hidden]) { animation: none; }
  .net-stage .journey-comet, .net-stage .journey-orbit { display: none; }
  .net-stage .node .star, .universe-timeline button { transition: none; }
}
