/* Overscan equals the full background travel, so cover never reveals an edge. */
.scene {
  position:fixed;
  inset:0;
  background:#090c15;
}
.scene::before {
  content:'';
  position:absolute;
  inset:0 0 calc(0px - var(--scene-travel, 0px));
  background:
    radial-gradient(ellipse at 78% 22%,#4f527333,transparent 65%),
    radial-gradient(ellipse at 22% 78%,#66543f30,transparent 65%),
    url('light-field.svg') center / cover no-repeat;
  transform:translateY(calc(0px - var(--scene-offset, 0px)));
}
@media(prefers-reduced-motion:reduce) {
  .scene::before { inset:0; transform:none; }
}
