/* Soft, transparent ellipses orbit in opposite phase. No rectangular SVG
   surfaces move: the dark base stays fixed while only colored light travels. */
.ambient-background {
  display: none;
  position: absolute;
  inset: 0;
  z-index: -1;
  overflow: hidden;
  pointer-events: none;
  user-select: none;
}
.ambient-light {
  position: absolute;
  left: -34.64%;
  top: -10.835%;
  width: 169.28%;
  height: 121.67%;
  border-radius: 50%;
  filter: blur(2cqw);
}
.ambient-violet {
  background: radial-gradient(ellipse at center,
    rgba(198,173,210,.88) 0%, rgba(165,104,206,.80) 16%,
    rgba(111,40,158,.65) 30%, rgba(79,25,115,.42) 43%,
    rgba(34,13,51,.14) 56%, rgba(34,13,51,0) 70%);
}
.ambient-blue {
  background: radial-gradient(ellipse at center,
    rgba(126,131,171,.86) 0%, rgba(54,57,179,.80) 16%,
    rgba(33,36,140,.64) 30%, rgba(17,19,96,.42) 43%,
    rgba(13,14,51,.14) 56%, rgba(13,14,51,0) 70%);
}
@media (prefers-reduced-motion: no-preference) {
  .stage { background-image: none; }
  .ambient-background { display: block; }
  .ambient-light {
    animation: ambient-orbit 40s linear infinite;
    will-change: transform;
  }
  .ambient-violet { animation-delay: -5s; }
  .ambient-blue { animation-delay: -25s; }
  .ambient-paused .ambient-light { animation-play-state: paused; }
}
/* Reduced-motion and browsers without this media feature keep the original
   static Figma image supplied by styles.css. */
@media (prefers-reduced-motion: reduce) {
  .ambient-background { display: none; }
}
@keyframes ambient-orbit {
  0.0000% { transform: translate(0.0000%, -38.0000%) scaleX(1.0000); }
  4.1667% { transform: translate(6.2117%, -36.7052%) scaleX(0.9172); }
  8.3333% { transform: translate(12.0000%, -32.9090%) scaleX(0.8400); }
  12.5000% { transform: translate(16.9706%, -26.8701%) scaleX(0.7737); }
  16.6667% { transform: translate(20.7846%, -19.0000%) scaleX(0.7229); }
  20.8333% { transform: translate(23.1822%, -9.8351%) scaleX(0.6909); }
  25.0000% { transform: translate(24.0000%, -0.0000%) scaleX(0.6800); }
  29.1667% { transform: translate(23.1822%, 9.8351%) scaleX(0.6909); }
  33.3333% { transform: translate(20.7846%, 19.0000%) scaleX(0.7229); }
  37.5000% { transform: translate(16.9706%, 26.8701%) scaleX(0.7737); }
  41.6667% { transform: translate(12.0000%, 32.9090%) scaleX(0.8400); }
  45.8333% { transform: translate(6.2117%, 36.7052%) scaleX(0.9172); }
  50.0000% { transform: translate(0.0000%, 38.0000%) scaleX(1.0000); }
  54.1667% { transform: translate(-6.2117%, 36.7052%) scaleX(0.9172); }
  58.3333% { transform: translate(-12.0000%, 32.9090%) scaleX(0.8400); }
  62.5000% { transform: translate(-16.9706%, 26.8701%) scaleX(0.7737); }
  66.6667% { transform: translate(-20.7846%, 19.0000%) scaleX(0.7229); }
  70.8333% { transform: translate(-23.1822%, 9.8351%) scaleX(0.6909); }
  75.0000% { transform: translate(-24.0000%, 0.0000%) scaleX(0.6800); }
  79.1667% { transform: translate(-23.1822%, -9.8351%) scaleX(0.6909); }
  83.3333% { transform: translate(-20.7846%, -19.0000%) scaleX(0.7229); }
  87.5000% { transform: translate(-16.9706%, -26.8701%) scaleX(0.7737); }
  91.6667% { transform: translate(-12.0000%, -32.9090%) scaleX(0.8400); }
  95.8333% { transform: translate(-6.2117%, -36.7052%) scaleX(0.9172); }
  100.0000% { transform: translate(-0.0000%, -38.0000%) scaleX(1.0000); }
}
