/* ============================================================
   CoinRush RAVE MODE v3 — ULTIMATE NEON NIGHTCLUB
   ============================================================
   ALL-IN club: UV black-light, LESS DARK, MORE NEON GLOW!
   BPM-synced via --beat, --two-beat, etc.
   ============================================================ */

.rave-overlay {
  --beat: 0.4688s; --half-beat: 0.2344s; --two-beat: 0.9375s;
  --four-beat: 1.875s; --eight-beat: 3.75s; --sixteen-beat: 7.5s;
  --vibe-h: 165; --vibe-s: 100%; --vibe-l: 50%;
  position: fixed; inset: 0; pointer-events: none; z-index: 9998;
  overflow: hidden; opacity: 0;
  transition: opacity 0.8s cubic-bezier(0.4, 0, 0.2, 1);
  contain: layout style paint; transform: translateZ(0); backface-visibility: hidden;
}
body.coinrush-radio-playing.coinrush-rave-on .rave-overlay { opacity: 1; }

.rave-overlay-top {
  position: fixed; inset: 0; pointer-events: none;
  z-index: 1999999 !important; overflow: hidden; opacity: 0;
  transition: opacity 0.8s cubic-bezier(0.4, 0, 0.2, 1); contain: layout style;
}
body.coinrush-radio-playing.coinrush-rave-on .rave-overlay-top { opacity: 1; }


/* ─── AMBIENT WASH — BRIGHT neon color pools ─── */
.rave-ambient-wash {
  position: absolute; inset: 0; opacity: 0;
  animation: raveAmbientWash var(--sixteen-beat) ease-in-out infinite;
}
body.coinrush-radio-playing.coinrush-rave-on .rave-ambient-wash { opacity: 1; }

@keyframes raveAmbientWash {
  0%, 100% {
    background:
      radial-gradient(ellipse at 20% 10%, hsla(var(--vibe-h), 100%, 60%, 0.18) 0%, transparent 55%),
      radial-gradient(ellipse at 80% 85%, hsla(calc(var(--vibe-h) + 120), 100%, 55%, 0.15) 0%, transparent 55%),
      radial-gradient(ellipse at 50% 50%, hsla(calc(var(--vibe-h) + 240), 80%, 50%, 0.06) 0%, transparent 70%);
  }
  25% {
    background:
      radial-gradient(ellipse at 75% 15%, hsla(calc(var(--vibe-h) + 60), 100%, 60%, 0.16) 0%, transparent 55%),
      radial-gradient(ellipse at 15% 80%, hsla(calc(var(--vibe-h) + 180), 100%, 55%, 0.14) 0%, transparent 55%),
      radial-gradient(ellipse at 50% 40%, hsla(var(--vibe-h), 90%, 55%, 0.08) 0%, transparent 65%);
  }
  50% {
    background:
      radial-gradient(ellipse at 50% 85%, hsla(calc(var(--vibe-h) + 120), 100%, 60%, 0.18) 0%, transparent 55%),
      radial-gradient(ellipse at 25% 15%, hsla(calc(var(--vibe-h) + 240), 100%, 55%, 0.12) 0%, transparent 55%),
      radial-gradient(ellipse at 75% 50%, hsla(calc(var(--vibe-h) + 60), 80%, 55%, 0.07) 0%, transparent 65%);
  }
  75% {
    background:
      radial-gradient(ellipse at 10% 55%, hsla(calc(var(--vibe-h) + 180), 100%, 60%, 0.16) 0%, transparent 55%),
      radial-gradient(ellipse at 90% 30%, hsla(var(--vibe-h), 100%, 55%, 0.14) 0%, transparent 55%),
      radial-gradient(ellipse at 50% 70%, hsla(calc(var(--vibe-h) + 300), 80%, 50%, 0.06) 0%, transparent 65%);
  }
}


/* ─── LASERS — Thicker, brighter, more glow ─── */
.rave-lasers { position: absolute; inset: 0; overflow: hidden; }

.rave-laser {
  position: absolute; top: -5%; left: var(--lx, 50%);
  width: var(--lwidth, 2.5px); height: 120%;
  transform-origin: top center; opacity: 0;
  background: linear-gradient(180deg, var(--lcolor, rgba(0,255,204,0.9)) 0%, transparent 90%);
  box-shadow: 0 0 12px var(--lglow, rgba(0,255,204,0.3)), 0 0 40px var(--lglow, rgba(0,255,204,0.1));
  animation: raveLaserSweep var(--lspeed, 6s) ease-in-out infinite;
  animation-delay: calc(var(--loffset, 0) * 0.5s);
  contain: layout style paint;
}
body.coinrush-radio-playing.coinrush-rave-on .rave-laser { opacity: 1; }

.rave-laser--0 { animation-name: raveLaserSweep0; }
.rave-laser--1 { animation-name: raveLaserSweep1; }
.rave-laser--2 { animation-name: raveLaserSweep2; }
.rave-laser--3 { animation-name: raveLaserSweep3; }
.rave-laser--4 { animation-name: raveLaserSweep4; }
.rave-laser--5 { animation-name: raveLaserSweep5; }
.rave-laser--6 { animation-name: raveLaserSweep6; }
.rave-laser--7 { animation-name: raveLaserSweep7; }
.rave-laser--8 { animation-name: raveLaserSweep8; }
.rave-laser--9 { animation-name: raveLaserSweep9; }
.rave-laser--10 { animation-name: raveLaserSweep10; }
.rave-laser--11 { animation-name: raveLaserSweep11; }

@keyframes raveLaserSweep0 { 0% { transform: rotate(-30deg); opacity: 0; } 8% { opacity: 0.95; } 25% { transform: rotate(18deg); opacity: 0.8; } 50% { transform: rotate(35deg); opacity: 0.5; } 75% { transform: rotate(-12deg); opacity: 0.9; } 92% { opacity: 0.7; } 100% { transform: rotate(-30deg); opacity: 0; } }
@keyframes raveLaserSweep1 { 0% { transform: rotate(22deg); opacity: 0; } 12% { opacity: 0.9; } 35% { transform: rotate(-35deg); opacity: 0.6; } 65% { transform: rotate(12deg); opacity: 0.8; } 88% { opacity: 0.5; } 100% { transform: rotate(22deg); opacity: 0; } }
@keyframes raveLaserSweep2 { 0% { transform: rotate(-18deg); opacity: 0; } 15% { opacity: 0.85; } 40% { transform: rotate(28deg); opacity: 0.7; } 60% { transform: rotate(-25deg); opacity: 0.55; } 85% { opacity: 0.8; } 100% { transform: rotate(-18deg); opacity: 0; } }
@keyframes raveLaserSweep3 { 0% { transform: rotate(35deg); opacity: 0; } 10% { opacity: 0.75; } 30% { transform: rotate(-28deg); opacity: 0.9; } 50% { transform: rotate(8deg); opacity: 0.45; } 80% { transform: rotate(-18deg); opacity: 0.7; } 100% { transform: rotate(35deg); opacity: 0; } }
@keyframes raveLaserSweep4 { 0% { transform: rotate(-12deg); opacity: 0; } 18% { opacity: 0.8; } 45% { transform: rotate(40deg); opacity: 0.6; } 70% { transform: rotate(-22deg); opacity: 0.75; } 90% { opacity: 0.4; } 100% { transform: rotate(-12deg); opacity: 0; } }
@keyframes raveLaserSweep5 { 0% { transform: rotate(18deg); opacity: 0; } 20% { opacity: 0.7; } 50% { transform: rotate(-32deg); opacity: 0.85; } 75% { transform: rotate(22deg); opacity: 0.5; } 95% { opacity: 0.65; } 100% { transform: rotate(18deg); opacity: 0; } }
@keyframes raveLaserSweep6 { 0% { transform: rotate(-40deg); opacity: 0; } 5% { opacity: 0.6; } 25% { transform: rotate(12deg); opacity: 0.8; } 55% { transform: rotate(-8deg); opacity: 0.65; } 80% { transform: rotate(28deg); opacity: 0.5; } 100% { transform: rotate(-40deg); opacity: 0; } }
@keyframes raveLaserSweep7 { 0% { transform: rotate(20deg); opacity: 0; } 10% { opacity: 0.7; } 30% { transform: rotate(-25deg); opacity: 0.85; } 60% { transform: rotate(15deg); opacity: 0.5; } 85% { opacity: 0.65; } 100% { transform: rotate(20deg); opacity: 0; } }
@keyframes raveLaserSweep8 { 0% { transform: rotate(-32deg); opacity: 0; } 8% { opacity: 0.65; } 35% { transform: rotate(22deg); opacity: 0.75; } 55% { transform: rotate(-10deg); opacity: 0.6; } 78% { transform: rotate(32deg); opacity: 0.45; } 100% { transform: rotate(-32deg); opacity: 0; } }
@keyframes raveLaserSweep9 { 0% { transform: rotate(15deg); opacity: 0; } 12% { opacity: 0.75; } 40% { transform: rotate(-20deg); opacity: 0.6; } 65% { transform: rotate(30deg); opacity: 0.8; } 90% { opacity: 0.45; } 100% { transform: rotate(15deg); opacity: 0; } }
@keyframes raveLaserSweep10 { 0% { transform: rotate(-22deg); opacity: 0; } 15% { opacity: 0.6; } 45% { transform: rotate(18deg); opacity: 0.75; } 70% { transform: rotate(-35deg); opacity: 0.5; } 92% { opacity: 0.65; } 100% { transform: rotate(-22deg); opacity: 0; } }
@keyframes raveLaserSweep11 { 0% { transform: rotate(28deg); opacity: 0; } 8% { opacity: 0.7; } 30% { transform: rotate(-15deg); opacity: 0.85; } 55% { transform: rotate(25deg); opacity: 0.55; } 82% { transform: rotate(-30deg); opacity: 0.7; } 100% { transform: rotate(28deg); opacity: 0; } }


/* ─── VOLUMETRIC SPOTLIGHTS — Brighter cones ─── */
.rave-spotlights { position: absolute; inset: 0; overflow: hidden; }
.rave-spotlight { position: absolute; top: -30%; width: 0; height: 0; opacity: 0; }

.rave-spotlight--left {
  left: 8%; border-left: 180px solid transparent; border-right: 180px solid transparent;
  border-top: 170vh solid transparent; border-top-color: hsla(var(--vibe-h), 80%, 60%, 0.06);
  transform-origin: top center; filter: blur(10px);
}
body.coinrush-radio-playing.coinrush-rave-on .rave-spotlight--left { animation: raveSpotLeft var(--sixteen-beat) ease-in-out infinite; }

.rave-spotlight--right {
  right: 8%; border-left: 160px solid transparent; border-right: 160px solid transparent;
  border-top: 160vh solid transparent; border-top-color: hsla(calc(var(--vibe-h) + 120), 70%, 55%, 0.05);
  transform-origin: top center; filter: blur(12px);
}
body.coinrush-radio-playing.coinrush-rave-on .rave-spotlight--right { animation: raveSpotRight var(--sixteen-beat) ease-in-out calc(var(--four-beat)) infinite; }

.rave-spotlight--center {
  left: 50%; transform: translateX(-50%);
  border-left: 130px solid transparent; border-right: 130px solid transparent;
  border-top: 150vh solid transparent; border-top-color: hsla(calc(var(--vibe-h) + 60), 80%, 65%, 0.04);
  transform-origin: top center; filter: blur(22px);
}
body.coinrush-radio-playing.coinrush-rave-on .rave-spotlight--center { animation: raveSpotCenter var(--eight-beat) ease-in-out calc(var(--two-beat)) infinite; }

@keyframes raveSpotLeft {
  0% { transform: rotate(-40deg) translateX(0); opacity: 0; }
  12% { opacity: 0.9; } 35% { transform: rotate(18deg) translateX(18vw); opacity: 1; }
  60% { transform: rotate(42deg) translateX(32vw); opacity: 0.7; }
  85% { opacity: 0.5; } 100% { transform: rotate(-40deg) translateX(0); opacity: 0; }
}
@keyframes raveSpotRight {
  0% { transform: rotate(38deg) translateX(0); opacity: 0; }
  15% { opacity: 0.8; } 40% { transform: rotate(-22deg) translateX(-22vw); opacity: 0.95; }
  65% { transform: rotate(-48deg) translateX(-38vw); opacity: 0.6; }
  90% { opacity: 0.35; } 100% { transform: rotate(38deg) translateX(0); opacity: 0; }
}
@keyframes raveSpotCenter {
  0%, 100% { transform: translateX(-50%) rotate(-10deg); opacity: 0; }
  20% { opacity: 0.7; transform: translateX(-50%) rotate(12deg); }
  50% { opacity: 0.9; transform: translateX(-50%) rotate(-6deg); }
  80% { opacity: 0.6; transform: translateX(-50%) rotate(14deg); }
}


/* ─── STROBE — Brighter double-flash ─── */
.rave-strobe { position: absolute; inset: 0; background: white; opacity: 0; mix-blend-mode: overlay; }
body.coinrush-radio-playing.coinrush-rave-on .rave-strobe { animation: raveStrobe var(--four-beat) step-end infinite; }

@keyframes raveStrobe {
  0% { opacity: 0; } 0.5% { opacity: 0.18; } 1% { opacity: 0; }
  1.5% { opacity: 0.12; } 2.5% { opacity: 0; }
  25% { opacity: 0.15; } 25.8% { opacity: 0; } 26.2% { opacity: 0.08; } 27% { opacity: 0; }
  50% { opacity: 0.18; } 50.5% { opacity: 0; } 51% { opacity: 0.10; } 51.8% { opacity: 0; }
  75% { opacity: 0.12; } 75.5% { opacity: 0; } 76% { opacity: 0.06; } 76.5% { opacity: 0; }
  100% { opacity: 0; }
}


/* ─── DISCO REFLECTIONS — Brighter scattered dots ─── */
.rave-reflections { position: absolute; inset: 0; overflow: hidden; }

.rave-reflection-dot {
  position: absolute; left: var(--rx, 50%); top: var(--ry, 50%);
  width: var(--rsize, 3px); height: var(--rsize, 3px); border-radius: 50%;
  background: hsla(calc(var(--vibe-h) + var(--rhue, 0)), 100%, 80%, 0.85);
  box-shadow: 0 0 10px hsla(calc(var(--vibe-h) + var(--rhue, 0)), 100%, 70%, 0.5);
  opacity: 0; contain: layout style paint;
  animation:
    raveReflectionPulse var(--rpulse-dur, 1.5s) ease-in-out var(--rpulse-delay, 0s) infinite,
    raveReflectionDrift var(--rdrift-dur, 12s) ease-in-out infinite;
}
body.coinrush-radio-playing.coinrush-rave-on .rave-reflection-dot { opacity: 1; }

@keyframes raveReflectionPulse { 0%, 100% { opacity: 0.2; transform: scale(0.7); } 50% { opacity: 0.95; transform: scale(1.5); } }
@keyframes raveReflectionDrift {
  0%, 100% { translate: 0 0; }
  25% { translate: var(--rdx, 10px) calc(var(--rdy, 10px) * -1); }
  50% { translate: calc(var(--rdx, 10px) * -0.5) var(--rdy, 10px); }
  75% { translate: calc(var(--rdx, 10px) * 0.7) calc(var(--rdy, 10px) * -0.3); }
}


/* ─── NEON FLOOR GRID — Brighter lines ─── */
.rave-floor {
  position: absolute; bottom: 0; left: -15%; right: -15%; height: 42%;
  transform: perspective(500px) rotateX(58deg) translateZ(0);
  transform-origin: bottom center; overflow: hidden;
  mask-image: linear-gradient(to top, rgba(0,0,0,0.9) 0%, transparent 100%);
  -webkit-mask-image: linear-gradient(to top, rgba(0,0,0,0.9) 0%, transparent 100%);
}

.rave-floor-grid {
  position: absolute; inset: 0;
  background:
    linear-gradient(transparent 46%, hsla(var(--vibe-h), var(--vibe-s), var(--vibe-l), 0.2) 49%, hsla(var(--vibe-h), var(--vibe-s), var(--vibe-l), 0.2) 51%, transparent 54%),
    linear-gradient(90deg, transparent 46%, hsla(var(--vibe-h), var(--vibe-s), calc(var(--vibe-l) + 15%), 0.14) 49%, hsla(var(--vibe-h), var(--vibe-s), calc(var(--vibe-l) + 15%), 0.14) 51%, transparent 54%);
  background-size: 50px 22px; opacity: 0;
}
body.coinrush-radio-playing.coinrush-rave-on .rave-floor-grid { opacity: 1; animation: raveFloorScroll var(--beat) linear infinite; }
@keyframes raveFloorScroll { 0% { background-position: 0 0; } 100% { background-position: 0 22px; } }

.rave-floor-glow {
  position: absolute; bottom: 0; left: 10%; right: 10%; height: 80%; opacity: 0;
  background: radial-gradient(ellipse at 50% 100%, hsla(var(--vibe-h), 100%, var(--vibe-l), 0.28) 0%, transparent 70%);
}
body.coinrush-radio-playing.coinrush-rave-on .rave-floor-glow { animation: raveFloorGlow var(--two-beat) ease-in-out infinite; }
@keyframes raveFloorGlow { 0%, 100% { opacity: 0.4; } 50% { opacity: 1; } }


/* ─── PARTICLES — Brighter, more glow ─── */
.rave-particles { position: absolute; inset: 0; overflow: hidden; }

.rave-particle {
  position: absolute; bottom: -3%; left: var(--px, 50%);
  width: var(--psize, 3px); height: var(--psize, 3px); border-radius: 50%;
  background: hsla(calc(var(--vibe-h) + var(--phue, 0)), 100%, 75%, var(--popacity, 0.7));
  box-shadow: 0 0 8px hsla(calc(var(--vibe-h) + var(--phue, 0)), 100%, 70%, 0.4);
  opacity: 0; contain: layout style paint;
  animation: raveParticleRise var(--pspeed, 20s) ease-out var(--pdelay, 0s) infinite;
}
body.coinrush-radio-playing.coinrush-rave-on .rave-particle { opacity: 1; }

@keyframes raveParticleRise {
  0% { transform: translateY(0) translateX(0) scale(0); opacity: 0; }
  3% { opacity: var(--popacity, 0.7); transform: translateY(-3vh) translateX(0) scale(1); }
  50% { opacity: calc(var(--popacity, 0.7) * 0.7); transform: translateY(-50vh) translateX(var(--pdrift, 0px)) scale(0.8); }
  100% { transform: translateY(-110vh) translateX(calc(var(--pdrift, 0px) * 1.5)) scale(0.2); opacity: 0; }
}


/* ─── PLASMA ORBS — Bigger, brighter ─── */
.rave-orbs { position: absolute; inset: 0; overflow: hidden; }

.rave-orb {
  position: absolute; bottom: -20%; border-radius: 50%;
  filter: blur(30px); opacity: 0; contain: layout style paint;
}
body.coinrush-radio-playing.coinrush-rave-on .rave-orb { animation: raveOrbFloat var(--sixteen-beat) ease-in-out infinite; }

.rave-orb--0  { left: 3%;  width: 240px; height: 240px; background: hsla(var(--vibe-h), 100%, 60%, 0.35); animation-delay: 0s !important; }
.rave-orb--1  { left: 15%; width: 180px; height: 180px; background: hsla(calc(var(--vibe-h) + 120), 90%, 60%, 0.3); animation-delay: calc(var(--beat) * 3) !important; }
.rave-orb--2  { left: 28%; width: 260px; height: 260px; background: hsla(calc(var(--vibe-h) + 60), 100%, 55%, 0.25); animation-delay: calc(var(--beat) * 6) !important; }
.rave-orb--3  { left: 42%; width: 160px; height: 160px; background: hsla(calc(var(--vibe-h) + 180), 100%, 55%, 0.3); animation-delay: calc(var(--beat) * 1) !important; }
.rave-orb--4  { left: 55%; width: 220px; height: 220px; background: hsla(var(--vibe-h), 100%, 65%, 0.28); animation-delay: calc(var(--beat) * 8) !important; }
.rave-orb--5  { left: 68%; width: 240px; height: 240px; background: hsla(calc(var(--vibe-h) + 240), 90%, 55%, 0.25); animation-delay: calc(var(--beat) * 4) !important; }
.rave-orb--6  { left: 78%; width: 200px; height: 200px; background: hsla(calc(var(--vibe-h) + 300), 100%, 60%, 0.28); animation-delay: calc(var(--beat) * 10) !important; }
.rave-orb--7  { left: 88%; width: 230px; height: 230px; background: hsla(calc(var(--vibe-h) + 150), 95%, 60%, 0.3); animation-delay: calc(var(--beat) * 5) !important; }
.rave-orb--8  { left: 10%; width: 200px; height: 200px; background: hsla(calc(var(--vibe-h) + 200), 100%, 60%, 0.28); animation-delay: calc(var(--beat) * 7) !important; }
.rave-orb--9  { left: 70%; width: 250px; height: 250px; background: hsla(calc(var(--vibe-h) + 30), 95%, 55%, 0.25); animation-delay: calc(var(--beat) * 12) !important; }
.rave-orb--10 { left: 35%; width: 190px; height: 190px; background: hsla(calc(var(--vibe-h) + 90), 100%, 60%, 0.3); animation-delay: calc(var(--beat) * 9) !important; }
.rave-orb--11 { left: 50%; width: 270px; height: 270px; background: hsla(calc(var(--vibe-h) + 270), 85%, 55%, 0.22); animation-delay: calc(var(--beat) * 2) !important; }

@keyframes raveOrbFloat {
  0% { transform: translateY(0) scale(0.5); opacity: 0; }
  6% { opacity: 0.7; transform: translateY(-8vh) scale(1.1); }
  25% { opacity: 0.55; transform: translateY(-30vh) scale(1.3); }
  50% { opacity: 0.4; transform: translateY(-55vh) scale(1.1); }
  75% { opacity: 0.2; transform: translateY(-85vh) scale(0.8); }
  100% { transform: translateY(-130vh) scale(0.3); opacity: 0; }
}


/* ─── NEON HORIZON — single-element bottom glow, pure GPU ─── */
.rave-horizon {
  position: absolute; bottom: 0; left: 0; right: 0; height: 0;
  opacity: 0; transition: opacity 0.6s ease;
  contain: strict;
}
body.coinrush-radio-playing.coinrush-rave-on .rave-horizon { opacity: 1; }

/* Primary horizon line — sharp neon edge */
.rave-horizon::before {
  content: ''; position: absolute; bottom: 0; left: 0; right: 0; height: 2px;
  background: linear-gradient(90deg,
    transparent 0%,
    hsla(var(--vibe-h), 100%, 65%, 0.6) 8%,
    hsla(var(--vibe-h), 100%, 80%, 1) 20%,
    hsla(calc(var(--vibe-h) + 60), 100%, 75%, 0.9) 35%,
    hsla(calc(var(--vibe-h) + 120), 100%, 80%, 1) 50%,
    hsla(calc(var(--vibe-h) + 180), 100%, 75%, 0.9) 65%,
    hsla(calc(var(--vibe-h) + 240), 100%, 80%, 1) 80%,
    hsla(var(--vibe-h), 100%, 65%, 0.6) 92%,
    transparent 100%
  );
  background-size: 200% 100%;
  animation: raveHorizonShift var(--eight-beat, 3.75s) linear infinite;
  box-shadow:
    0 0 8px hsla(var(--vibe-h), 100%, 70%, 0.6),
    0 0 25px hsla(var(--vibe-h), 100%, 60%, 0.3),
    0 0 60px hsla(var(--vibe-h), 100%, 55%, 0.15);
}

/* Soft upward glow wash — gives depth */
.rave-horizon::after {
  content: ''; position: absolute; bottom: 0; left: 5%; right: 5%; height: 120px;
  background: linear-gradient(to top,
    hsla(var(--vibe-h), 100%, 60%, 0.12) 0%,
    hsla(calc(var(--vibe-h) + 90), 90%, 55%, 0.04) 40%,
    transparent 100%
  );
  animation: raveHorizonPulse var(--two-beat, 0.94s) ease-in-out infinite;
  pointer-events: none;
}

@keyframes raveHorizonShift {
  0%   { background-position: 0% 0; }
  100% { background-position: 200% 0; }
}

@keyframes raveHorizonPulse {
  0%, 100% { opacity: 0.5; transform: scaleY(0.8); }
  50%      { opacity: 1;   transform: scaleY(1.15); }
}


/* ─── NEON EDGE GLOW — Thicker ─── */
.rave-edge { position: absolute; opacity: 0; }
body.coinrush-radio-playing.coinrush-rave-on .rave-edge { opacity: 1; }

.rave-edge--top {
  top: 0; left: 0; right: 0; height: 3px;
  background: linear-gradient(90deg, transparent 0%, hsla(var(--vibe-h), 100%, 60%, 0.8) 15%, hsla(calc(var(--vibe-h) + 60), 100%, 60%, 0.7) 30%, hsla(calc(var(--vibe-h) + 120), 100%, 60%, 0.8) 50%, hsla(calc(var(--vibe-h) + 180), 100%, 60%, 0.6) 70%, hsla(calc(var(--vibe-h) + 240), 100%, 60%, 0.7) 85%, transparent 100%);
  background-size: 300% 100%;
  box-shadow: 0 0 15px hsla(var(--vibe-h), 100%, 60%, 0.3), 0 0 40px hsla(var(--vibe-h), 100%, 60%, 0.12), 0 0 80px hsla(var(--vibe-h), 100%, 60%, 0.05);
  animation: raveEdgeH var(--eight-beat) linear infinite;
}
.rave-edge--bottom {
  bottom: 0; left: 0; right: 0; height: 4px;
  background: linear-gradient(90deg, transparent 0%, hsla(calc(var(--vibe-h) + 180), 100%, 60%, 0.7) 20%, hsla(calc(var(--vibe-h) + 120), 100%, 60%, 0.8) 40%, hsla(calc(var(--vibe-h) + 60), 100%, 60%, 0.6) 60%, hsla(var(--vibe-h), 100%, 60%, 0.8) 80%, transparent 100%);
  background-size: 300% 100%;
  box-shadow: 0 0 20px hsla(calc(var(--vibe-h) + 120), 100%, 60%, 0.2), 0 0 50px hsla(calc(var(--vibe-h) + 120), 100%, 60%, 0.08);
  animation: raveEdgeH var(--eight-beat) linear calc(var(--two-beat)) infinite reverse;
}
.rave-edge--left {
  top: 0; left: 0; bottom: 0; width: 3px;
  background: linear-gradient(180deg, transparent 0%, hsla(var(--vibe-h), 100%, 60%, 0.6) 20%, hsla(calc(var(--vibe-h) + 90), 100%, 60%, 0.5) 50%, hsla(calc(var(--vibe-h) + 180), 100%, 55%, 0.6) 80%, transparent 100%);
  background-size: 100% 300%;
  box-shadow: 0 0 15px hsla(var(--vibe-h), 90%, 60%, 0.15);
  animation: raveEdgeV var(--sixteen-beat) linear calc(var(--beat)) infinite;
}
.rave-edge--right {
  top: 0; right: 0; bottom: 0; width: 3px;
  background: linear-gradient(180deg, transparent 0%, hsla(calc(var(--vibe-h) + 120), 100%, 60%, 0.6) 20%, hsla(calc(var(--vibe-h) + 210), 90%, 60%, 0.5) 50%, hsla(calc(var(--vibe-h) + 300), 100%, 55%, 0.6) 80%, transparent 100%);
  background-size: 100% 300%;
  box-shadow: 0 0 15px hsla(calc(var(--vibe-h) + 120), 90%, 60%, 0.15);
  animation: raveEdgeV var(--sixteen-beat) linear calc(var(--four-beat)) infinite reverse;
}
@keyframes raveEdgeH { 0% { background-position: -150% 0; } 100% { background-position: 250% 0; } }
@keyframes raveEdgeV { 0% { background-position: 0 -150%; } 100% { background-position: 0 250%; } }


/* ─── VIGNETTE — Softer, less dark ─── */
.rave-vignette {
  position: absolute; inset: 0; opacity: 0;
  background: radial-gradient(ellipse at 50% 50%, transparent 40%, hsla(var(--vibe-h), 60%, 35%, 0.08) 65%, rgba(0,0,0,0.18) 100%);
}
body.coinrush-radio-playing.coinrush-rave-on .rave-vignette { animation: raveVignette var(--two-beat) ease-in-out infinite; }
@keyframes raveVignette { 0%, 100% { opacity: 0.3; } 50% { opacity: 0.7; } }


/* ─── RADIO BAR ─── */
body.coinrush-radio-playing.coinrush-rave-on .cr-radio-bar {
  animation: raveBarBeat var(--beat) ease-in-out infinite;
  border-color: hsla(var(--vibe-h), 80%, 55%, 0.45) !important;
}
@keyframes raveBarBeat {
  0%, 100% { box-shadow: 0 0 0 0 transparent; }
  50% { box-shadow: 0 0 20px hsla(var(--vibe-h), 90%, 60%, 0.4), 0 0 8px hsla(calc(var(--vibe-h) + 60), 90%, 60%, 0.2); }
}


/* ═══════════════════════════════════════════════
   CLUB MODE — UV BLACK-LIGHT NEON AESTHETIC
   BRIGHT! Things GLOW, not HIDE!
   ═══════════════════════════════════════════════ */

body.coinrush-radio-playing.coinrush-rave-on {
  background-color: #06081a !important;
  transition: background-color 0.6s ease;
}

/* Very subtle overlay — NOT dark like before */
body.coinrush-radio-playing.coinrush-rave-on::before {
  content: ''; position: fixed; inset: 0;
  background: rgba(0, 0, 0, 0.12);
  z-index: 99; pointer-events: none;
}

/* Ambient color cycling — brighter */
body.coinrush-radio-playing.coinrush-rave-on::after {
  content: ''; position: fixed; inset: 0; pointer-events: none; z-index: 9997;
  animation: raveBodyAmbient var(--sixteen-beat, 7.5s) ease-in-out infinite;
}
@keyframes raveBodyAmbient {
  0%, 100% { background: radial-gradient(ellipse at 50% 0%, hsla(var(--vibe-h, 270), 100%, 65%, 0.12) 0%, transparent 55%); }
  25% { background: radial-gradient(ellipse at 20% 100%, hsla(calc(var(--vibe-h, 270) + 120), 100%, 60%, 0.1) 0%, transparent 55%); }
  50% { background: radial-gradient(ellipse at 80% 0%, hsla(calc(var(--vibe-h, 270) + 60), 100%, 60%, 0.1) 0%, transparent 55%); }
  75% { background: radial-gradient(ellipse at 50% 100%, hsla(calc(var(--vibe-h, 270) - 60), 100%, 55%, 0.08) 0%, transparent 55%); }
}

/* ── Topbar ── */
body.coinrush-radio-playing.coinrush-rave-on .jackpot-topnav {
  background: rgba(6, 8, 26, 0.92) !important;
  border-bottom: 2px solid hsla(var(--vibe-h), 80%, 55%, 0.35) !important;
  box-shadow: 0 2px 20px rgba(168, 85, 247, 0.1) !important;
}
body.coinrush-radio-playing.coinrush-rave-on .jackpot-topnav::before {
  background: linear-gradient(90deg, transparent, rgba(0,255,204,0.7), rgba(168,85,247,0.7), rgba(255,0,180,0.6), rgba(0,150,255,0.5), transparent) !important;
  background-size: 200% 100% !important; width: 100% !important; height: 2px !important;
  animation: raveTopnavLine var(--eight-beat, 3.75s) linear infinite !important;
}
@keyframes raveTopnavLine { 0% { background-position: -200% 0; } 100% { background-position: 200% 0; } }

/* ── Sidebar ── */
body.coinrush-radio-playing.coinrush-rave-on .cr-sidebar {
  background: rgba(6, 8, 26, 0.95) !important;
  border-right: 2px solid hsla(var(--vibe-h, 165), 100%, 55%, 0.3) !important;
  box-shadow: 3px 0 20px rgba(168, 85, 247, 0.06) !important;
}
body.coinrush-radio-playing.coinrush-rave-on .cr-sidebar-logo-icon {
  box-shadow: 0 0 15px rgba(0,255,204,0.35), 0 0 30px rgba(0,255,204,0.12) !important;
  animation: raveLogoGlow var(--two-beat, 0.9375s) ease-in-out infinite !important;
}
@keyframes raveLogoGlow {
  0%, 100% { opacity: 0.85; }
  50% { opacity: 1; }
}
body.coinrush-radio-playing.coinrush-rave-on .cr-sidebar-nav-item { color: rgba(220, 235, 255, 0.8) !important; transition: color 0.2s ease, background 0.2s ease; }
body.coinrush-radio-playing.coinrush-rave-on .cr-sidebar-nav-item:hover { background: rgba(168, 85, 247, 0.15) !important; color: #e0b0ff !important; }
body.coinrush-radio-playing.coinrush-rave-on .cr-sidebar-nav-item.active { background: rgba(0, 255, 204, 0.1) !important; color: #4fffb0 !important; border-color: rgba(0, 255, 204, 0.5) !important; }
body.coinrush-radio-playing.coinrush-rave-on .cr-sidebar-nav-item .cr-sidebar-icon { filter: brightness(1.3) saturate(1.4) !important; }

/* ── Content — Subtle dim via opacity, NOT filter on #root (perf killer) ── */
body.coinrush-radio-playing.coinrush-rave-on .main-content-container {
  filter: brightness(0.88) saturate(1.3) !important;
  contain: strict;
}

/* ── Neon text ── */
body.coinrush-radio-playing.coinrush-rave-on .topnav-brand-name,
body.coinrush-radio-playing.coinrush-rave-on .cr-sidebar-logo-title {
  text-shadow: 0 0 10px rgba(0,255,204,0.6), 0 0 25px rgba(0,255,204,0.3), 0 0 50px rgba(0,255,204,0.15) !important;
  color: #4fffb0 !important;
  animation: raveNeonText var(--two-beat) ease-in-out infinite !important;
}
@keyframes raveNeonText { 0%, 100% { filter: brightness(1); } 50% { filter: brightness(1.3); } }

body.coinrush-radio-playing.coinrush-rave-on .cr-sidebar-logo-sub { text-shadow: 0 0 12px rgba(168, 85, 247, 0.5) !important; color: #c084fc !important; }

/* ── Balance GOLDEN NEON ── */
body.coinrush-radio-playing.coinrush-rave-on .user-balance {
  text-shadow: 0 0 10px rgba(255,200,0,0.6), 0 0 25px rgba(255,200,0,0.3), 0 0 50px rgba(255,200,0,0.15) !important;
  color: #ffd700 !important;
  animation: raveGoldPulse var(--two-beat) ease-in-out infinite !important;
}
@keyframes raveGoldPulse { 0%, 100% { filter: brightness(1); } 50% { filter: brightness(1.2); } }

/* ── EQ / Track ── */
body.coinrush-radio-playing.coinrush-rave-on .cr-radio-eq-bar { background: hsla(var(--vibe-h, 165), 100%, 65%, 0.9) !important; box-shadow: 0 0 8px hsla(var(--vibe-h, 165), 100%, 65%, 0.5) !important; }
body.coinrush-radio-playing.coinrush-rave-on .cr-radio-track-name { color: hsla(var(--vibe-h, 165), 90%, 85%, 1) !important; text-shadow: 0 0 12px hsla(var(--vibe-h, 165), 100%, 65%, 0.5) !important; }

/* ── Button hover ── */
body.coinrush-radio-playing.coinrush-rave-on button:not(.cr-radio-rave-btn):not(.cr-radio-play):not(.cr-radio-skip):not(.cr-radio-vol):hover {
  box-shadow: 0 0 20px rgba(168, 85, 247, 0.35), 0 0 8px rgba(0, 255, 204, 0.2) !important;
}

/* ── Cards NEON BORDER ── */
body.coinrush-radio-playing.coinrush-rave-on .card,
body.coinrush-radio-playing.coinrush-rave-on .panel,
body.coinrush-radio-playing.coinrush-rave-on [class*="card"],
body.coinrush-radio-playing.coinrush-rave-on [class*="container"]:not(.main-content-container):not(.jackpot-player-card-container) {
  border-color: hsla(var(--vibe-h), 80%, 55%, 0.25) !important;
  box-shadow: 0 0 15px hsla(var(--vibe-h), 80%, 55%, 0.06), inset 0 0 10px hsla(var(--vibe-h), 80%, 55%, 0.02) !important;
}

/* ── Chat ── */
body.coinrush-radio-playing.coinrush-rave-on .cr-floating-chat-panel,
body.coinrush-radio-playing.coinrush-rave-on .jp-sidebar--right,
body.coinrush-radio-playing.coinrush-rave-on .sd-sidebar--right,
body.coinrush-radio-playing.coinrush-rave-on .cf-sidebar--right,
body.coinrush-radio-playing.coinrush-rave-on .sidebar--right,
body.coinrush-radio-playing.coinrush-rave-on .plinko-chat {
  background: rgba(6, 8, 26, 0.93) !important;
  border-color: hsla(var(--vibe-h), 80%, 55%, 0.25) !important;
  box-shadow: -4px 0 25px rgba(0,0,0,0.4), 0 0 30px rgba(168, 85, 247, 0.08) !important;
}

/* ── Search ── */
body.coinrush-radio-playing.coinrush-rave-on .topnav-search-input { background: rgba(6, 8, 26, 0.85) !important; border-color: rgba(0, 255, 204, 0.3) !important; color: #e0ffee !important; }
body.coinrush-radio-playing.coinrush-rave-on .topnav-search-input::placeholder { color: rgba(0, 255, 204, 0.3) !important; }
body.coinrush-radio-playing.coinrush-rave-on .topnav-search-input:focus { border-color: rgba(0, 255, 204, 0.6) !important; box-shadow: 0 0 20px rgba(0, 255, 204, 0.15) !important; }

/* ── Player card ── */
body.coinrush-radio-playing.coinrush-rave-on .jackpot-player-card { background: rgba(6, 8, 26, 0.85) !important; border-color: rgba(168, 85, 247, 0.45) !important; box-shadow: 0 0 15px rgba(168, 85, 247, 0.2), inset 0 0 12px rgba(0, 255, 204, 0.05) !important; }

/* ── Level bar ── */
body.coinrush-radio-playing.coinrush-rave-on .jackpot-level-progress-fill { box-shadow: 0 0 12px rgba(0, 255, 204, 0.6), 0 0 25px rgba(0, 255, 204, 0.25) !important; }

/* ── Links ── */
body.coinrush-radio-playing.coinrush-rave-on a:not([class]) { color: #4fffb0 !important; text-shadow: 0 0 10px rgba(79, 255, 176, 0.4) !important; }
body.coinrush-radio-playing.coinrush-rave-on a:not([class]):hover { text-shadow: 0 0 12px rgba(79, 255, 176, 0.7), 0 0 25px rgba(79, 255, 176, 0.3), 0 0 40px rgba(79, 255, 176, 0.1) !important; }

/* ── Headings NEON ── */
body.coinrush-radio-playing.coinrush-rave-on h1,
body.coinrush-radio-playing.coinrush-rave-on h2,
body.coinrush-radio-playing.coinrush-rave-on h3 {
  text-shadow: 0 0 10px hsla(var(--vibe-h, 165), 100%, 65%, 0.5), 0 0 25px hsla(var(--vibe-h, 165), 100%, 65%, 0.2), 0 0 50px hsla(var(--vibe-h, 165), 100%, 65%, 0.08) !important;
}

/* ── Focus rings ── */
body.coinrush-radio-playing.coinrush-rave-on input:focus,
body.coinrush-radio-playing.coinrush-rave-on select:focus,
body.coinrush-radio-playing.coinrush-rave-on textarea:focus {
  border-color: hsla(var(--vibe-h, 165), 100%, 60%, 0.6) !important;
  box-shadow: 0 0 15px hsla(var(--vibe-h, 165), 100%, 60%, 0.25) !important; outline: none !important;
}

/* ── Scrollbar ── */
body.coinrush-radio-playing.coinrush-rave-on ::-webkit-scrollbar-thumb { background: hsla(var(--vibe-h, 165), 90%, 60%, 0.35) !important; }
body.coinrush-radio-playing.coinrush-rave-on ::-webkit-scrollbar-thumb:hover { background: hsla(var(--vibe-h, 165), 90%, 60%, 0.55) !important; }
body.coinrush-radio-playing.coinrush-rave-on ::-webkit-scrollbar-track { background: rgba(6, 8, 26, 0.5) !important; }

/* ── Duel neon ── */
body.coinrush-radio-playing.coinrush-rave-on .duel-overlay-wrapper { background: rgba(0, 0, 0, 0.85) !important; }
body.coinrush-radio-playing.coinrush-rave-on .duel-pop,
body.coinrush-radio-playing.coinrush-rave-on .duel-card {
  background: linear-gradient(145deg, rgba(8, 10, 30, 0.97), rgba(4, 6, 20, 0.95)) padding-box, linear-gradient(135deg, rgba(0, 255, 204, 0.8), rgba(168, 85, 247, 0.8), rgba(255, 0, 180, 0.7)) border-box !important;
  border: 2px solid transparent !important;
  box-shadow: 0 30px 80px rgba(0,0,0,0.6), 0 0 50px rgba(0,255,204,0.1), 0 0 80px rgba(168,85,247,0.1), 0 0 100px rgba(255,0,180,0.06) !important;
}
body.coinrush-radio-playing.coinrush-rave-on .duel-panel--red { border-color: rgba(255, 50, 100, 0.85) !important; box-shadow: 0 0 30px rgba(255, 50, 100, 0.4), 0 0 60px rgba(255, 50, 100, 0.15), inset 0 0 20px rgba(255, 50, 100, 0.06) !important; }
body.coinrush-radio-playing.coinrush-rave-on .duel-panel--green { border-color: rgba(0, 255, 180, 0.85) !important; box-shadow: 0 0 30px rgba(0, 255, 180, 0.4), 0 0 60px rgba(0, 255, 180, 0.15), inset 0 0 20px rgba(0, 255, 180, 0.06) !important; }
body.coinrush-radio-playing.coinrush-rave-on .team-glow { opacity: 0.9 !important; filter: blur(25px) !important; }
body.coinrush-radio-playing.coinrush-rave-on .team-glow.left { background: radial-gradient(closest-side, rgba(255, 50, 100, 0.85), transparent 70%) !important; }
body.coinrush-radio-playing.coinrush-rave-on .team-glow.right { background: radial-gradient(closest-side, rgba(0, 255, 180, 0.85), transparent 70%) !important; }
body.coinrush-radio-playing.coinrush-rave-on .text-neon-red { text-shadow: 0 0 25px rgba(255, 50, 100, 0.8), 0 0 50px rgba(255, 50, 100, 0.35) !important; }
body.coinrush-radio-playing.coinrush-rave-on .text-neon-lime,
body.coinrush-radio-playing.coinrush-rave-on .text-neon-cyan { text-shadow: 0 0 25px rgba(0, 255, 180, 0.8), 0 0 50px rgba(0, 255, 180, 0.35) !important; }
body.coinrush-radio-playing.coinrush-rave-on .coin3d { filter: saturate(1.5) contrast(1.15) brightness(1.15) !important; }
body.coinrush-radio-playing.coinrush-rave-on .coin3d .rim { box-shadow: inset 0 0 0 2px rgba(255,255,255,0.12), 0 0 35px rgba(168, 85, 247, 0.35), 0 0 70px rgba(168, 85, 247, 0.12) !important; }

/* ── Coinflip orbs ── */
body.coinrush-radio-playing.coinrush-rave-on .cf-orb { filter: blur(65px) !important; opacity: 0.85 !important; animation-duration: 5s !important; }
body.coinrush-radio-playing.coinrush-rave-on .cf-orb--1 { background: hsla(var(--vibe-h), 100%, 60%, 0.45) !important; box-shadow: 0 0 100px hsla(var(--vibe-h), 100%, 60%, 0.35) !important; }
body.coinrush-radio-playing.coinrush-rave-on .cf-orb--2 { background: rgba(168, 85, 247, 0.4) !important; box-shadow: 0 0 100px rgba(168, 85, 247, 0.3) !important; }
body.coinrush-radio-playing.coinrush-rave-on .cf-orb--3 { background: rgba(255, 0, 180, 0.35) !important; box-shadow: 0 0 80px rgba(255, 0, 180, 0.25) !important; }
body.coinrush-radio-playing.coinrush-rave-on .cf-orb--4 { background: rgba(0, 255, 204, 0.35) !important; box-shadow: 0 0 80px rgba(0, 255, 204, 0.25) !important; }
body.coinrush-radio-playing.coinrush-rave-on .cf-orb--5 { background: rgba(255, 200, 0, 0.35) !important; box-shadow: 0 0 80px rgba(255, 200, 0, 0.25) !important; }
body.coinrush-radio-playing.coinrush-rave-on .cf-orb--6 { background: rgba(0, 150, 255, 0.35) !important; box-shadow: 0 0 80px rgba(0, 150, 255, 0.25) !important; }

/* ── Modals ── */
body.coinrush-radio-playing.coinrush-rave-on .modal-content,
body.coinrush-radio-playing.coinrush-rave-on .auth-modal,
body.coinrush-radio-playing.coinrush-rave-on [class*="modal-content"],
body.coinrush-radio-playing.coinrush-rave-on [class*="overlay-content"] {
  border: 1px solid rgba(168, 85, 247, 0.35) !important;
  box-shadow: 0 20px 60px rgba(0,0,0,0.6), 0 0 40px rgba(168, 85, 247, 0.12), 0 0 60px hsla(var(--vibe-h, 165), 80%, 55%, 0.08) !important;
}

/* ── Tables ── */
body.coinrush-radio-playing.coinrush-rave-on table, body.coinrush-radio-playing.coinrush-rave-on .table { border-color: rgba(168, 85, 247, 0.2) !important; }
body.coinrush-radio-playing.coinrush-rave-on table th, body.coinrush-radio-playing.coinrush-rave-on .table th { text-shadow: 0 0 10px rgba(168, 85, 247, 0.35) !important; border-bottom-color: rgba(168, 85, 247, 0.25) !important; }

/* ── Badges ── */
body.coinrush-radio-playing.coinrush-rave-on .badge,
body.coinrush-radio-playing.coinrush-rave-on [class*="badge"],
body.coinrush-radio-playing.coinrush-rave-on [class*="tag"],
body.coinrush-radio-playing.coinrush-rave-on [class*="chip"]:not(.duel-chip) {
  box-shadow: 0 0 10px hsla(var(--vibe-h, 165), 90%, 60%, 0.2) !important;
  border-color: hsla(var(--vibe-h, 165), 90%, 60%, 0.3) !important;
}

/* ── Online count ── */
body.coinrush-radio-playing.coinrush-rave-on .topnav-online-count,
body.coinrush-radio-playing.coinrush-rave-on .topnav-daily-btn { text-shadow: 0 0 10px rgba(0, 255, 204, 0.5) !important; }

/* ── Tooltips ── */
body.coinrush-radio-playing.coinrush-rave-on [class*="tooltip"] {
  background: rgba(6, 8, 26, 0.95) !important; border: 1px solid rgba(168, 85, 247, 0.35) !important;
  box-shadow: 0 0 20px rgba(168, 85, 247, 0.2) !important;
}


/* ═══════════════════════════════════════════════
   UV BLACK-LIGHT — ALL buttons & elements GLOW
   ═══════════════════════════════════════════════ */

body.coinrush-radio-playing.coinrush-rave-on .btn-primary,
body.coinrush-radio-playing.coinrush-rave-on [class*="btn-primary"],
body.coinrush-radio-playing.coinrush-rave-on .btn-cta,
body.coinrush-radio-playing.coinrush-rave-on .deposit-btn,
body.coinrush-radio-playing.coinrush-rave-on [class*="deposit"],
body.coinrush-radio-playing.coinrush-rave-on .topnav-deposit-btn {
  box-shadow: 0 0 15px rgba(168, 85, 247, 0.4), 0 0 35px rgba(168, 85, 247, 0.15), 0 0 60px rgba(168, 85, 247, 0.06), inset 0 0 10px rgba(255, 255, 255, 0.05) !important;
  animation: raveNeonBtn var(--two-beat) ease-in-out infinite !important;
}
@keyframes raveNeonBtn {
  0%, 100% { box-shadow: 0 0 12px rgba(168, 85, 247, 0.35), 0 0 30px rgba(168, 85, 247, 0.12); }
  50% { box-shadow: 0 0 20px rgba(168, 85, 247, 0.55), 0 0 45px rgba(168, 85, 247, 0.25), 0 0 80px rgba(168, 85, 247, 0.1); }
}

body.coinrush-radio-playing.coinrush-rave-on .jp-bet-button,
body.coinrush-radio-playing.coinrush-rave-on .bet-button,
body.coinrush-radio-playing.coinrush-rave-on [class*="bet-btn"],
body.coinrush-radio-playing.coinrush-rave-on [class*="place-bet"] {
  box-shadow: 0 0 15px rgba(0, 255, 150, 0.4), 0 0 35px rgba(0, 255, 150, 0.15), 0 0 60px rgba(0, 255, 150, 0.06) !important;
  animation: raveNeonGreen var(--two-beat) ease-in-out infinite !important;
}
@keyframes raveNeonGreen {
  0%, 100% { box-shadow: 0 0 12px rgba(0, 255, 150, 0.35), 0 0 30px rgba(0, 255, 150, 0.12); }
  50% { box-shadow: 0 0 20px rgba(0, 255, 150, 0.55), 0 0 45px rgba(0, 255, 150, 0.25), 0 0 80px rgba(0, 255, 150, 0.1); }
}

body.coinrush-radio-playing.coinrush-rave-on [class*="jackpot-amount"],
body.coinrush-radio-playing.coinrush-rave-on .jackpot-display-amount {
  text-shadow: 0 0 10px rgba(0,255,204,0.7), 0 0 30px rgba(0,255,204,0.4), 0 0 60px rgba(0,255,204,0.2), 0 0 100px rgba(0,255,204,0.08) !important;
  animation: raveJackpotGlow var(--four-beat) ease-in-out infinite !important;
}
@keyframes raveJackpotGlow { 0%, 100% { filter: brightness(1); } 50% { filter: brightness(1.3); } }

body.coinrush-radio-playing.coinrush-rave-on .winner-ticker,
body.coinrush-radio-playing.coinrush-rave-on [class*="winner-ticker"],
body.coinrush-radio-playing.coinrush-rave-on [class*="ticker"] { text-shadow: 0 0 8px hsla(var(--vibe-h), 100%, 65%, 0.5) !important; }


/* ─── NEON LIGHT COLUMNS — Floor-to-ceiling pillars ─── */
.rave-light-column {
  position: absolute; bottom: 0; width: 3px; height: 100%; opacity: 0;
}
body.coinrush-radio-playing.coinrush-rave-on .rave-light-column { opacity: 1; }

.rave-light-column--0 { left: 10%; background: linear-gradient(to top, hsla(var(--vibe-h), 100%, 65%, 0.3) 0%, transparent 80%); box-shadow: 0 0 30px hsla(var(--vibe-h), 100%, 65%, 0.15), 0 0 60px hsla(var(--vibe-h), 100%, 65%, 0.05); animation: raveCol0 var(--four-beat) ease-in-out infinite; }
.rave-light-column--1 { left: 30%; background: linear-gradient(to top, hsla(calc(var(--vibe-h) + 120), 100%, 60%, 0.25) 0%, transparent 75%); box-shadow: 0 0 25px hsla(calc(var(--vibe-h) + 120), 100%, 60%, 0.12); animation: raveCol1 var(--four-beat) ease-in-out calc(var(--beat)) infinite; }
.rave-light-column--2 { left: 50%; background: linear-gradient(to top, hsla(calc(var(--vibe-h) + 240), 100%, 65%, 0.3) 0%, transparent 85%); box-shadow: 0 0 35px hsla(calc(var(--vibe-h) + 240), 100%, 65%, 0.15); animation: raveCol2 var(--four-beat) ease-in-out calc(var(--two-beat)) infinite; }
.rave-light-column--3 { left: 70%; background: linear-gradient(to top, hsla(calc(var(--vibe-h) + 60), 100%, 60%, 0.25) 0%, transparent 75%); box-shadow: 0 0 25px hsla(calc(var(--vibe-h) + 60), 100%, 60%, 0.12); animation: raveCol3 var(--four-beat) ease-in-out calc(var(--beat) * 3) infinite; }
.rave-light-column--4 { left: 90%; background: linear-gradient(to top, hsla(calc(var(--vibe-h) + 180), 100%, 65%, 0.3) 0%, transparent 80%); box-shadow: 0 0 30px hsla(calc(var(--vibe-h) + 180), 100%, 65%, 0.15); animation: raveCol4 var(--four-beat) ease-in-out calc(var(--beat) * 2) infinite; }

@keyframes raveCol0 { 0%, 100% { opacity: 0.3; } 50% { opacity: 0.9; } }
@keyframes raveCol1 { 0%, 100% { opacity: 0.2; } 50% { opacity: 0.8; } }
@keyframes raveCol2 { 0%, 100% { opacity: 0.35; } 50% { opacity: 1; } }
@keyframes raveCol3 { 0%, 100% { opacity: 0.25; } 50% { opacity: 0.85; } }
@keyframes raveCol4 { 0%, 100% { opacity: 0.3; } 50% { opacity: 0.9; } }


/* ─── SCANLINES — Removed for performance ─── */


/* ─── BEAT FLASH CANVAS ─── */
.rave-beat-flash { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; mix-blend-mode: screen; opacity: 0; transition: opacity 0.3s ease; }
body.coinrush-radio-playing.coinrush-rave-on .rave-beat-flash { opacity: 1; }


/* ─── FOG / SMOKE — Thicker, more visible ─── */
.rave-fog { position: absolute; inset: 0; overflow: hidden; pointer-events: none; }
.rave-fog-layer { position: absolute; left: -25%; right: -25%; height: 45%; opacity: 0; filter: blur(40px); mix-blend-mode: screen; contain: layout style paint; }
body.coinrush-radio-playing.coinrush-rave-on .rave-fog-layer { opacity: 1; }

.rave-fog-layer--0 { top: 45%; background: radial-gradient(ellipse at 30% 50%, hsla(var(--vibe-h), 90%, 60%, 0.1) 0%, transparent 70%); animation: raveFog0 40s ease-in-out infinite; }
.rave-fog-layer--1 { top: 25%; background: radial-gradient(ellipse at 70% 50%, hsla(calc(var(--vibe-h) + 120), 80%, 55%, 0.07) 0%, transparent 70%); animation: raveFog1 55s ease-in-out infinite; filter: blur(50px); }
.rave-fog-layer--2 { top: 60%; background: radial-gradient(ellipse at 50% 50%, hsla(calc(var(--vibe-h) + 240), 85%, 55%, 0.08) 0%, transparent 70%); animation: raveFog2 30s ease-in-out infinite; filter: blur(55px); }
.rave-fog-layer--3 { top: 10%; background: radial-gradient(ellipse at 40% 50%, hsla(calc(var(--vibe-h) + 180), 80%, 60%, 0.06) 0%, transparent 65%); animation: raveFog3 50s ease-in-out infinite; filter: blur(80px); }

@keyframes raveFog0 { 0%, 100% { transform: translateX(-15%) translateY(0); opacity: 0.6; } 25% { transform: translateX(12%) translateY(-6%); opacity: 0.9; } 50% { transform: translateX(22%) translateY(3%); opacity: 0.5; } 75% { transform: translateX(-5%) translateY(-3%); opacity: 0.8; } }
@keyframes raveFog1 { 0%, 100% { transform: translateX(10%) translateY(0); opacity: 0.5; } 33% { transform: translateX(-18%) translateY(6%); opacity: 0.7; } 66% { transform: translateX(5%) translateY(-4%); opacity: 0.4; } }
@keyframes raveFog2 { 0%, 100% { transform: translateX(5%) translateY(0); opacity: 0.6; } 50% { transform: translateX(-22%) translateY(-5%); opacity: 0.85; } }
@keyframes raveFog3 { 0%, 100% { transform: translateX(-8%) translateY(0); opacity: 0.4; } 40% { transform: translateX(15%) translateY(4%); opacity: 0.65; } 80% { transform: translateX(-10%) translateY(-3%); opacity: 0.5; } }


/* ─── SCANNER LINES — Brighter ─── */
.rave-scanner { position: absolute; inset: 0; overflow: hidden; pointer-events: none; }
.rave-scanner-line {
  position: absolute; left: 0; right: 0; height: 3px; opacity: 0;
  background: linear-gradient(90deg, transparent 0%, hsla(var(--vibe-h), 100%, 70%, 0.7) 20%, hsla(var(--vibe-h), 100%, 85%, 1) 50%, hsla(var(--vibe-h), 100%, 70%, 0.7) 80%, transparent 100%);
  box-shadow: 0 0 20px hsla(var(--vibe-h), 100%, 65%, 0.4), 0 0 50px hsla(var(--vibe-h), 100%, 65%, 0.15);
  contain: layout style paint;
}
body.coinrush-radio-playing.coinrush-rave-on .rave-scanner-line { animation: raveScanDown var(--eight-beat) ease-in-out infinite; }

.rave-scanner-line--2 {
  background: linear-gradient(90deg, transparent 0%, hsla(calc(var(--vibe-h) + 180), 100%, 70%, 0.5) 20%, hsla(calc(var(--vibe-h) + 180), 100%, 85%, 0.8) 50%, hsla(calc(var(--vibe-h) + 180), 100%, 70%, 0.5) 80%, transparent 100%);
  box-shadow: 0 0 20px hsla(calc(var(--vibe-h) + 180), 100%, 65%, 0.4), 0 0 50px hsla(calc(var(--vibe-h) + 180), 100%, 65%, 0.15);
}
body.coinrush-radio-playing.coinrush-rave-on .rave-scanner-line--2 { animation: raveScanUp var(--sixteen-beat) ease-in-out calc(var(--four-beat)) infinite; }

@keyframes raveScanDown { 0% { transform: translateY(-10vh); opacity: 0; } 5% { opacity: 0.9; } 50% { opacity: 0.7; } 95% { opacity: 0.9; } 100% { transform: translateY(110vh); opacity: 0; } }
@keyframes raveScanUp { 0% { transform: translateY(110vh); opacity: 0; } 5% { opacity: 0.7; } 50% { opacity: 0.5; } 95% { opacity: 0.7; } 100% { transform: translateY(-10vh); opacity: 0; } }


/* ─── ACCESSIBILITY ─── */
@media (prefers-reduced-motion: reduce) {
  .rave-overlay, .rave-overlay-top,
  body.coinrush-radio-playing.coinrush-rave-on::after,
  body.coinrush-radio-playing.coinrush-rave-on::before {
    display: none !important; animation: none !important; opacity: 0 !important;
  }
}


/* ─── MOBILE ─── */
@media (max-width: 768px) {
  .rave-horizon::after { height: 80px; }
  .rave-spotlight, .rave-light-column { display: none; }
}
@media (max-width: 480px) {
  .rave-horizon::after { height: 50px; }
  .rave-orbs { display: none; }
}
