/* Full-page Rephazer LCV background — fades with body.is-audio-on */
.lcv-bg-wrap {
  position: fixed;
  inset: 0;
  z-index: -2;
  pointer-events: none;
  background: #f7f7f7;
  opacity: 0;
  transition: opacity 0.8s ease;
}

body.is-audio-on .lcv-bg-wrap {
  opacity: 1;
}

.lcv-bg-wrap canvas {
  display: block;
  width: 100%;
  height: 100%;
}

.lcv-bg-wrap::after {
  content: '';
  position: absolute;
  inset: 0;
  pointer-events: none;
  opacity: 0;
  transition: opacity 0.8s ease;
  box-shadow:
    inset 0 0 90px 36px rgba(255, 255, 255, 0.92),
    inset 0 0 160px 72px rgba(247, 247, 247, 0.55);
}

body.is-audio-on .lcv-bg-wrap::after {
  opacity: 1;
}

.lcv-bg-scrim {
  position: fixed;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  opacity: 0;
  transition: opacity 0.8s ease;
  background:
    radial-gradient(
      ellipse 88% 78% at 50% 50%,
      transparent 28%,
      rgba(255, 255, 255, 0.28) 68%,
      rgba(255, 255, 255, 0.72) 100%
    ),
    rgba(255, 255, 255, 0.52);
}

body.is-audio-on .lcv-bg-scrim {
  opacity: 1;
}

@media (prefers-reduced-motion: reduce) {
  .lcv-bg-wrap,
  .lcv-bg-wrap::after,
  .lcv-bg-scrim {
    transition: none;
  }
}
