/* Ambient club lighting. Decorative only; content remains fully interactive. */
body {
  isolation: isolate;
}

body::before {
  z-index: -3;
}

.club-lights {
  position: fixed;
  inset: 0;
  z-index: -2;
  overflow: hidden;
  pointer-events: none;
  contain: strict;
}

.club-spotlight {
  position: absolute;
  top: -24vh;
  left: -30vw;
  width: clamp(320px, 38vw, 680px);
  height: 150vh;
  opacity: .22;
  background: linear-gradient(
    180deg,
    rgba(124, 229, 255, .82) 0,
    rgba(8, 196, 232, .34) 42%,
    rgba(8, 196, 232, .08) 72%,
    transparent 94%
  );
  clip-path: polygon(47% 0, 53% 0, 100% 100%, 0 100%);
  filter: blur(18px);
  mix-blend-mode: screen;
  transform-origin: 50% 0;
  will-change: transform, opacity;
}

.club-spotlight--primary {
  animation: club-sweep-primary 18s ease-in-out infinite;
}

.club-spotlight--secondary {
  top: -34vh;
  left: auto;
  right: -32vw;
  width: clamp(280px, 32vw, 580px);
  opacity: .13;
  background: linear-gradient(
    180deg,
    rgba(159, 130, 255, .72) 0,
    rgba(58, 121, 255, .28) 44%,
    rgba(8, 196, 232, .06) 74%,
    transparent 94%
  );
  animation: club-sweep-secondary 23s ease-in-out -8s infinite;
}

@keyframes club-sweep-primary {
  0%, 100% {
    opacity: .16;
    transform: translate3d(-8vw, -8vh, 0) rotate(-18deg) scaleY(.94);
  }
  24% {
    opacity: .25;
    transform: translate3d(38vw, 7vh, 0) rotate(4deg) scaleY(1.04);
  }
  50% {
    opacity: .2;
    transform: translate3d(88vw, -3vh, 0) rotate(19deg) scaleY(.98);
  }
  76% {
    opacity: .26;
    transform: translate3d(32vw, 14vh, 0) rotate(-5deg) scaleY(1.08);
  }
}

@keyframes club-sweep-secondary {
  0%, 100% {
    opacity: .09;
    transform: translate3d(8vw, 10vh, 0) rotate(18deg) scaleY(1.06);
  }
  28% {
    opacity: .16;
    transform: translate3d(-34vw, -5vh, 0) rotate(-3deg) scaleY(.96);
  }
  54% {
    opacity: .11;
    transform: translate3d(-82vw, 12vh, 0) rotate(-19deg) scaleY(1.08);
  }
  80% {
    opacity: .17;
    transform: translate3d(-26vw, -9vh, 0) rotate(5deg) scaleY(.94);
  }
}

@media (max-width: 760px) {
  .club-spotlight {
    top: -18vh;
    left: -58vw;
    width: 92vw;
    height: 132vh;
    opacity: .18;
    filter: blur(12px);
  }

  .club-spotlight--secondary {
    top: -26vh;
    right: -62vw;
    left: auto;
    width: 84vw;
    opacity: .11;
  }
}

@media (prefers-reduced-motion: reduce) {
  .club-spotlight {
    animation: none;
    opacity: .08;
    transform: translate3d(24vw, 0, 0) rotate(-6deg);
  }

  .club-spotlight--secondary {
    opacity: .06;
    transform: translate3d(-24vw, 0, 0) rotate(6deg);
  }
}
