/* Ambient background: a few large, soft glass shapes drifting very slowly behind the whole
   page. Fixed, aria-hidden, pointer-events:none (inserted in layout.ts between .lightfield and
   #build-film). Pure CSS, no scroll dependency and no JS: the drift is a slow, loopable keyframe
   so there is nothing to scrub and nothing to fall back to. The site's own build story lives in
   the fixed background film (css/build-stage.css), not here. */

#scene-bg {
  position: fixed;
  inset: 0;
  z-index: 1;
  overflow: hidden;
  pointer-events: none;
}

.scene-shape {
  position: absolute;
  display: block;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.07);
  filter: blur(40px);
  opacity: 0.5;
}

.scene-shape--a {
  width: 46vmax;
  height: 46vmax;
  top: -14vmax;
  right: -10vmax;
  background: radial-gradient(circle at 30% 30%, rgba(200, 255, 61, 0.07), rgba(200, 255, 61, 0) 70%);
  border-color: rgba(200, 255, 61, 0.08);
}

.scene-shape--b {
  width: 38vmax;
  height: 38vmax;
  bottom: -16vmax;
  left: -12vmax;
}

.scene-shape--c {
  width: 26vmax;
  height: 26vmax;
  top: 42vh;
  left: 58vw;
}

@media (prefers-reduced-motion: no-preference) {
  .scene-shape--a { animation: scene-drift-a 68s ease-in-out infinite; }
  .scene-shape--b { animation: scene-drift-b 84s ease-in-out infinite; }
  .scene-shape--c { animation: scene-drift-c 76s ease-in-out infinite; }
}

@keyframes scene-drift-a {
  0%, 100% { transform: translate(0, 0); }
  50% { transform: translate(-4vmax, 3vmax); }
}

@keyframes scene-drift-b {
  0%, 100% { transform: translate(0, 0); }
  50% { transform: translate(3vmax, -4vmax); }
}

@keyframes scene-drift-c {
  0%, 100% { transform: translate(0, 0); }
  50% { transform: translate(-3vmax, -3vmax); }
}

@media (max-width: 640px) {
  .scene-shape { filter: blur(28px); }
}

