.side-glow-overlay {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  pointer-events: none;
  z-index: 9999;
  width: 100%;
  height: 100%;
  transition: opacity 3s cubic-bezier(0.4, 0, 0.2, 1), visibility 3s;
  opacity: 1;
  visibility: visible;
  overflow: hidden;
  will-change: opacity;
}

.side-glow-overlay.dimmed {
  opacity: 0;
  visibility: hidden;
}

.side-glow-overlay::before,
.side-glow-overlay::after {
  content: '';
  position: absolute;
  top: 0;
  bottom: 0;
  width: 100px;
  height: 100%;
  opacity: 0.4;
  will-change: transform;
}

.side-glow-overlay::before {
  left: 0;
  background: radial-gradient(
      12px 12px at 12px 10%,
      #fff 0%,
      rgba(255, 255, 255, 0.4) 30%,
      transparent 70%
    ),
    radial-gradient(
      15px 15px at 10px 30%,
      var(--accent) 0%,
      rgba(128, 90, 213, 0.4) 40%,
      transparent 80%
    ),
    radial-gradient(
      12px 12px at 15px 50%,
      #fff 0%,
      rgba(255, 255, 255, 0.4) 30%,
      transparent 70%
    ),
    radial-gradient(
      12px 12px at 20px 70%,
      var(--accent) 0%,
      rgba(128, 90, 213, 0.4) 40%,
      transparent 80%
    ),
    radial-gradient(
      12px 12px at 16px 90%,
      #fff 0%,
      rgba(255, 255, 255, 0.4) 30%,
      transparent 70%
    );
  background-repeat: repeat-y;
  background-size: 100% 100vh;
  filter: none;
}

.side-glow-overlay::after {
  right: 0;
  background: radial-gradient(
      15px 15px at 88px 15%,
      #fff 0%,
      rgba(255, 255, 255, 0.4) 30%,
      transparent 70%
    ),
    radial-gradient(
      12px 12px at 92px 35%,
      var(--accent) 0%,
      rgba(128, 90, 213, 0.4) 40%,
      transparent 80%
    ),
    radial-gradient(
      12px 12px at 85px 55%,
      #fff 0%,
      rgba(255, 255, 255, 0.4) 30%,
      transparent 70%
    ),
    radial-gradient(
      15px 15px at 78px 75%,
      var(--accent) 0%,
      rgba(128, 90, 213, 0.4) 40%,
      transparent 80%
    ),
    radial-gradient(
      12px 12px at 82px 95%,
      #fff 0%,
      rgba(255, 255, 255, 0.4) 30%,
      transparent 70%
    );
  background-repeat: repeat-y;
  background-size: 100% 100vh;
  filter: none;
}

#loader-vignette {
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: 4;
  background: radial-gradient(
    circle at center,
    transparent 40%,
    rgba(0, 0, 0, 0.6) 100%
  );
  opacity: 1;
  transition: opacity 3s ease;
}
