.glow { box-shadow: var(--shadow-neon); }
.glass { background: var(--bg-glass); backdrop-filter: var(--blur-strong); border: 1px solid rgba(0,255,255,.18); }

.hero .btn-primary { position: relative; }
.hero .btn-primary::after { content: ""; position: absolute; inset: -2px; border-radius: inherit; box-shadow: 0 0 20px rgba(153,69,255,.6), 0 0 30px rgba(0,255,255,.4); opacity: .6; }

.reel.spin-fast .reel-track { animation: reel-spin-fast 5200ms cubic-bezier(.2,.7,.4,1); }
.reel.spin-med .reel-track { animation: reel-spin-med 5600ms cubic-bezier(.2,.7,.4,1); }
.reel.spin-slow .reel-track { animation: reel-spin-slow 6000ms cubic-bezier(.2,.7,.4,1); }
.reel.spin-fast .reel-reflection,
.reel.spin-med .reel-reflection,
.reel.spin-slow .reel-reflection { opacity: .4; }

.win { animation: winPulse 900ms ease-out both; }

.cabinet { --tilt: rotateX(2deg) rotateY(-2deg); }
.cabinet .reels { transform: var(--tilt); transform-style: preserve-3d; }
.cabinet .btn-spin { transform: translateZ(30px); }
.cabinet .reel { border: 1px solid rgba(0,255,255,.18); }

.cabinet.loss::after { content: ""; position: absolute; inset: 0; border-radius: inherit; background: radial-gradient(60% 60% at 50% 50%, rgba(255,80,110,.35), rgba(255,80,110,0)); box-shadow: 0 0 24px rgba(255,80,110,.6), 0 0 42px rgba(255,0,64,.35); animation: lossFlash 900ms ease-out; }

.reel.reel-win::after { content: ""; position: absolute; inset: -2px; border-radius: inherit; background: conic-gradient(from 0deg, rgba(153,69,255,.9), rgba(0,255,255,.9), rgba(20,241,149,.9), rgba(153,69,255,.9)); filter: blur(6px); opacity: .8; animation: neonLoop 1200ms linear infinite; }

.reel.show-single .reel-track .symbol { display: none; }
.reel.show-single .reel-track .symbol:first-child { display: grid; }
.reel.show-single .reel-track { display: flex; align-items: center; justify-content: center; height: 100%; }

.symbol-img { width: clamp(40px, 6vw, 60px); height: clamp(40px, 6vw, 60px); object-fit: cover; border-radius: 999px; display: block; margin: 6px auto; filter: drop-shadow(0 0 6px rgba(0,255,255,.35)); }
.symbol.win-effect { position: relative; animation: symbolTwirl 1200ms ease-out both; }
.symbol.win-effect .symbol-img { filter: drop-shadow(0 0 10px rgba(153,69,255,.8)) drop-shadow(0 0 18px rgba(0,255,255,.6)) drop-shadow(0 0 26px rgba(20,241,149,.5)); }

.symbol.loss-effect { position: relative; animation: textGlowLoss 5s ease-out both; }
.symbol.loss-effect .symbol-img { filter: drop-shadow(0 0 8px rgba(255,80,110,.85)) drop-shadow(0 0 18px rgba(255,0,64,.6)); }

@media (max-width: 560px) {
  .reel.reel-win::after { filter: blur(3px); }
  .symbol-img { width: 44px; height: 44px; }
}
@media (max-width: 340px) {
  .symbol-img { width: 36px; height: 36px; }
}
