#reward-carousel-wrap {
  background: #000 !important;
  box-shadow: 0 0 60px rgba(124,58,237,0.4), 0 0 120px rgba(124,58,237,0.1), inset 0 0 80px rgba(0,0,0,0.9) !important;
  border: 1px solid rgba(124,58,237,0.4) !important;
}
.r-slide {
  min-width: 100%;
  height: 100%;
  position: relative;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #08061a;
}
.r-slide-bg {
  position: absolute;
  inset: 0;
  background: 
    radial-gradient(ellipse at 30% 70%, rgba(124,58,237,0.4) 0%, transparent 55%),
    radial-gradient(ellipse at 70% 20%, rgba(59,130,246,0.25) 0%, transparent 45%),
    radial-gradient(ellipse at 50% 110%, rgba(168,85,247,0.5) 0%, transparent 45%);
}
.r-slide-bg.locked {
  background: 
    radial-gradient(ellipse at 50% 110%, rgba(40,30,60,0.9) 0%, transparent 50%),
    radial-gradient(ellipse at 30% 30%, rgba(20,20,40,0.5) 0%, transparent 40%);
}
.r-stars {
  position: absolute;
  inset: 0;
  overflow: hidden;
}
.r-star {
  position: absolute;
  border-radius: 50%;
  background: #fff;
  animation: rTwinkle var(--d) var(--delay) ease-in-out infinite;
}
@keyframes rTwinkle {
  0%,100% { opacity: 0.1; transform: scale(0.8); }
  50% { opacity: 1; transform: scale(1.2); }
}
.r-content {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 20px;
  text-align: center;
}
.r-img {
  max-height: 180px;
  max-width: 80%;
  object-fit: contain;
  animation: rFloat 4s ease-in-out infinite;
  filter: drop-shadow(0 0 30px var(--col)) drop-shadow(0 0 10px var(--col));
}
.r-img.locked {
  filter: grayscale(1) brightness(0.6);
  animation: none;
}
.r-emoji {
  font-size: 90px;
  animation: rFloat 4s ease-in-out infinite;
  filter: drop-shadow(0 0 20px var(--col));
}
.r-emoji.locked {
  filter: grayscale(1) brightness(0.15);
  animation: none;
}
@keyframes rFloat {
  0%,100% { transform: translateY(0px); }
  50% { transform: translateY(-12px); }
}
.r-label {
  font-size: 28px;
  font-weight: 900;
  letter-spacing: -1px;
  margin-top: 12px;
  color: var(--col);
  text-shadow: 0 0 20px var(--col), 0 0 40px var(--col);
}
.r-label.locked {
  color: #252525;
  text-shadow: none;
}
.r-desc {
  font-size: 12px;
  color: #888;
  margin-top: 4px;
  letter-spacing: 0.5px;
}
.r-desc.locked { color: #2a2a2a; }
.r-badge-locked {
  position: absolute;
  top: 12px;
  right: 12px;
  background: rgba(0,0,0,0.8);
  border: 1px solid #222;
  border-radius: 20px;
  padding: 4px 12px;
  font-size: 11px;
  color: #444;
  z-index: 3;
}
.r-progress {
  width: 65%;
  margin-top: 10px;
}
.r-progress-bar {
  height: 3px;
  background: #111;
  border-radius: 2px;
  overflow: hidden;
}
.r-progress-fill {
  height: 100%;
  border-radius: 2px;
  background: var(--col);
  box-shadow: 0 0 6px var(--col);
}
.r-progress-text {
  font-size: 10px;
  color: #333;
  text-align: center;
  margin-top: 4px;
}
.r-unlocked-badge {
  margin-top: 10px;
  background: rgba(255,215,0,0.1);
  border: 1px solid rgba(255,215,0,0.4);
  border-radius: 20px;
  padding: 5px 18px;
  font-size: 12px;
  font-weight: 700;
  color: #ffd700;
  text-shadow: 0 0 10px #ffd70088;
}
.r-glow-bottom {
  position: absolute;
  bottom: -30px;
  left: 50%;
  transform: translateX(-50%);
  width: 220px;
  height: 100px;
  border-radius: 50%;
  background: var(--col);
  opacity: 0.15;
  filter: blur(25px);
}

@keyframes fall {
  0% { transform: translateY(0) rotate(0deg); opacity: 1; }
  100% { transform: translateY(110vh) rotate(720deg); opacity: 0; }
}
@keyframes bounce {
  0%,100% { transform: scale(1); }
  50% { transform: scale(1.2); }
}
#celebrate-overlay {
  flex-direction: column;
  gap: 12px;
}
#celebrate-overlay > div:first-child {
  animation: bounce 0.8s ease-in-out infinite;
}

@keyframes spinStar {
  0% { transform: rotate(0deg) scale(1); }
  50% { transform: rotate(180deg) scale(1.3); }
  100% { transform: rotate(360deg) scale(1); }
}
@keyframes glowPulse {
  0%,100% { box-shadow: 0 0 10px #ffd700, 0 0 20px #ffd70066; }
  50% { box-shadow: 0 0 20px #ffd700, 0 0 40px #ffd700aa, 0 0 60px #ffd70044; }
}
@keyframes trailUnlocked {
  0%,100% { transform: scale(1); }
  50% { transform: scale(1.15); }
}
.trail-node-unlocked {
  animation: trailUnlocked 1.5s ease-in-out infinite, glowPulse 1.5s ease-in-out infinite;
}
.trail-icon-unlocked {
  display: inline-block;
  animation: spinStar 3s linear infinite;
  font-size: 22px;
}
