/* Section-scoped space scenes. Additive: no page, card, text, or spacing overrides. */
:root {
  --jr-scenes-ready: 2;
  --space-scene-strength: .88; /* 0–1. Reduce to .65 for a quieter environment. */
}
.space-scenes {
  position: fixed;
  inset: 0;
  z-index: 12; /* Below navigation (80/100). Paint is clipped to measured safe areas. */
  overflow: hidden;
  contain: strict;
  pointer-events: none;
  user-select: none;
  -webkit-user-select: none;
  opacity: var(--space-scene-strength);
}
.space-scenes, .space-scenes * { pointer-events: none !important; }
.space-scenes[hidden] { display: none !important; }
.space-scene-box {
  position: absolute;
  top: 0;
  left: 0;
  overflow: hidden;
  contain: layout style paint;
  color: #94d4e5;
  --scene-line: #6fc3da;
  --scene-label: #abd7e4;
  --scene-faint: #538da0;
}
.space-scene-box.is-gutter {
  --scene-line: #337c93;
  --scene-label: #35677a;
  --scene-faint: #80a3af;
}
.space-scene-box svg {
  display: block;
  overflow: visible;
  max-width: none;
  width: 100%;
  height: 100%;
}
.space-scene-object { position: absolute; top: 0; left: 0; transform-origin: center; }
.space-scene-label {
  fill: var(--scene-label);
  font: 8px "Anonymous Pro", "Liberation Mono", "Courier New", monospace;
  letter-spacing: 1px;
}
.space-scene-micro { font-size: 7px; letter-spacing: .75px; }
.space-scene-line { stroke: var(--scene-line); fill: none; }
.space-scene-faint { stroke: var(--scene-faint); fill: none; }
.space-pixel-ship svg { shape-rendering: crispEdges; }
/* Pause removes distractions; elapsed scene time is retained for a later resume.
   These safety rules apply even if scripting stops or CSS loads before the script. */
html[data-motion="off"] .space-scenes { visibility: hidden; }
@media (max-width: 760px), (prefers-reduced-motion: reduce), (forced-colors: active) {
  .space-scenes { display: none !important; }
}
@media print { .space-scenes { display: none !important; } }
