/**
 * LuvEarn Launch Enhanced Animations CSS
 * Provides styling for eye-catching UI effects
 */

/* Button glow and pulse effects */
.pulse-glow {
  animation: pulse-glow 2s infinite;
  position: relative;
  overflow: hidden;
}

@keyframes pulse-glow {
  0% {
    box-shadow: 0 0 5px 0 rgba(255, 105, 180, 0.5);
  }
  50% {
    box-shadow: 0 0 20px 5px rgba(255, 105, 180, 0.8);
  }
  100% {
    box-shadow: 0 0 5px 0 rgba(255, 105, 180, 0.5);
  }
}

/* Button shimmer effect */
.btn-shimmer {
  position: absolute;
  top: 0;
  left: 0;
  width: 30px;
  height: 100%;
  background: rgba(255, 255, 255, 0.3);
  transform: skewX(-20deg);
  transition: all 0.3s;
  opacity: 0;
}

.shimmer-active {
  animation: shimmer 1.5s infinite;
  opacity: 1;
}

@keyframes shimmer {
  0% {
    left: -50px;
  }
  100% {
    left: 150%;
  }
}

/* Button hover scale effect */
.btn-hover-scale {
  transform: scale(1.05);
  transition: transform 0.3s ease;
}

/* Dynamic Price Update Animations */
.dynamic-price-value {
  position: relative;
  display: inline-block;
}

@keyframes priceUpdatePulse {
  0% { transform: scale(1); text-shadow: 0 0 0 rgba(255, 0, 127, 0); }
  15% { transform: scale(1.1); text-shadow: 0 0 10px rgba(255, 0, 127, 0.8); }
  30% { transform: scale(1); text-shadow: 0 0 5px rgba(255, 0, 127, 0.3); }
  45% { transform: scale(1.05); text-shadow: 0 0 7px rgba(0, 204, 255, 0.6); }
  100% { transform: scale(1); text-shadow: 0 0 0 rgba(0, 204, 255, 0); }
}

.price-update-animation {
  animation: priceUpdatePulse 1.5s ease-in-out;
}

.price-update-info {
  position: relative;
  overflow: hidden;
}

.price-update-info::after {
  content: '';
  position: absolute;
  top: 0;
  left: -100%;
  width: 100%;
  height: 100%;
  background: linear-gradient(90deg, transparent, rgba(0, 204, 255, 0.3), transparent);
  animation: infoSweep 5s infinite linear;
}

@keyframes infoSweep {
  0% { left: -100%; }
  40% { left: 100%; }
  100% { left: 100%; }
}

/* Floating animation for presale banner */
.floating-animation {
  animation: floating 3s ease-in-out infinite;
}

@keyframes floating {
  0% {
    transform: translateY(0px);
  }
  50% {
    transform: translateY(-10px);
  }
  100% {
    transform: translateY(0px);
  }
}

/* Price highlight glow effect */
.price-highlight-glow {
  animation: price-glow 3s infinite;
  text-shadow: 0 0 8px rgba(0, 255, 255, 0.8);
}

@keyframes price-glow {
  0% {
    text-shadow: 0 0 4px rgba(0, 255, 255, 0.6);
  }
  50% {
    text-shadow: 0 0 15px rgba(0, 255, 255, 0.9), 0 0 25px rgba(0, 255, 255, 0.5);
  }
  100% {
    text-shadow: 0 0 4px rgba(0, 255, 255, 0.6);
  }
}

/* Price update animation */
.price-update-animation {
  animation: price-update 1.5s ease;
}

@keyframes price-update {
  0% {
    opacity: 1;
  }
  50% {
    opacity: 0.3;
    transform: scale(0.95);
  }
  100% {
    opacity: 1;
    transform: scale(1);
  }
}

/* Sparkle effect */
.sparkle {
  position: absolute;
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background-color: white;
  pointer-events: none;
  animation: sparkle 5s infinite;
}

@keyframes sparkle {
  0%, 100% {
    opacity: 0;
    transform: scale(0);
  }
  50% {
    opacity: 1;
    transform: scale(1);
    box-shadow: 0 0 10px 2px rgba(255, 255, 255, 0.8);
  }
}

/* Timer styles */
.presale-timer {
  border-radius: 10px;
  padding: 10px;
  margin: 15px 0;
  text-align: center;
  transition: all 0.3s ease;
}

.timer-label {
  font-size: 14px;
  font-weight: bold;
  margin-bottom: 5px;
}

.timer-value {
  font-size: 24px;
  font-weight: 700;
  letter-spacing: 1px;
}

.timer-starting {
  background: linear-gradient(135deg, rgba(0, 128, 128, 0.2), rgba(0, 128, 128, 0.4));
  border: 2px solid rgba(0, 128, 128, 0.5);
  color: #f0f0f0;
}

.timer-ending {
  background: linear-gradient(135deg, rgba(255, 105, 180, 0.2), rgba(255, 105, 180, 0.4));
  border: 2px solid rgba(255, 105, 180, 0.5);
  color: #ffffff;
}

.timer-urgent {
  animation: urgent-pulse 1s infinite alternate;
}

@keyframes urgent-pulse {
  0% {
    background: linear-gradient(135deg, rgba(255, 105, 180, 0.3), rgba(255, 105, 180, 0.5));
  }
  100% {
    background: linear-gradient(135deg, rgba(255, 0, 0, 0.4), rgba(255, 105, 180, 0.6));
  }
}

.timer-ended {
  background: linear-gradient(135deg, rgba(128, 128, 128, 0.2), rgba(128, 128, 128, 0.4));
  border: 2px solid rgba(128, 128, 128, 0.5);
  color: #d0d0d0;
}
