/* LD Gaming - Animations */

@keyframes ld-fade-up {
  from { opacity: 0; transform: translateY(30px); }
  to { opacity: 1; transform: translateY(0); }
}

@keyframes ld-fade-in {
  from { opacity: 0; }
  to { opacity: 1; }
}

@keyframes ld-slide-left {
  from { opacity: 0; transform: translateX(40px); }
  to { opacity: 1; transform: translateX(0); }
}

@keyframes ld-scale-in {
  from { opacity: 0; transform: scale(0.9); }
  to { opacity: 1; transform: scale(1); }
}

@keyframes ld-glow-pulse {
  0%, 100% { box-shadow: 0 0 20px rgba(0,212,255,0.2); }
  50% { box-shadow: 0 0 40px rgba(0,212,255,0.5); }
}

@keyframes ld-float {
  0%, 100% { transform: translateY(0px); }
  50% { transform: translateY(-8px); }
}

@keyframes ld-spin-slow {
  from { transform: rotate(0deg); }
  to { transform: rotate(360deg); }
}

@keyframes ld-bar-grow {
  from { width: 0%; }
  to { width: var(--target-width); }
}

@keyframes ld-counter-tick {
  from { opacity: 0; transform: translateY(10px); }
  to { opacity: 1; transform: translateY(0); }
}

@keyframes ld-shimmer {
  0% { background-position: -200% center; }
  100% { background-position: 200% center; }
}

@keyframes ld-border-flow {
  0% { background-position: 0% 50%; }
  50% { background-position: 100% 50%; }
  100% { background-position: 0% 50%; }
}

/* ========================= APPLY ANIMATIONS ========================= */
.ld-animate-fade-up {
  opacity: 0;
  animation: ld-fade-up 0.7s ease forwards;
}

.ld-animate-delay-1 { animation-delay: 0.1s; }
.ld-animate-delay-2 { animation-delay: 0.2s; }
.ld-animate-delay-3 { animation-delay: 0.3s; }
.ld-animate-delay-4 { animation-delay: 0.4s; }
.ld-animate-delay-5 { animation-delay: 0.5s; }

.ld-animate-float { animation: ld-float 3s ease-in-out infinite; }
.ld-animate-float-2 { animation: ld-float 4s ease-in-out infinite 1s; }

.ld-hero-float-card-1 { animation: ld-float 4s ease-in-out infinite; }
.ld-hero-float-card-2 { animation: ld-float 3.5s ease-in-out infinite 0.5s; }

/* Scroll-reveal class (added via JS) */
.ld-reveal {
  opacity: 0;
  transform: translateY(28px);
  transition: opacity 0.7s ease, transform 0.7s ease;
}

.ld-reveal.ld-visible {
  opacity: 1;
  transform: translateY(0);
}

.ld-reveal-delay-1 { transition-delay: 0.1s; }
.ld-reveal-delay-2 { transition-delay: 0.2s; }
.ld-reveal-delay-3 { transition-delay: 0.3s; }
.ld-reveal-delay-4 { transition-delay: 0.4s; }

/* Glow borders */
.ld-glow-border {
  position: relative;
}

.ld-glow-border::after {
  content: '';
  position: absolute;
  inset: -1px;
  border-radius: inherit;
  background: var(--ld-gradient-accent);
  z-index: -1;
  opacity: 0;
  transition: opacity 0.3s;
}

.ld-glow-border:hover::after { opacity: 0.5; }

/* Shimmer skeleton */
.ld-shimmer {
  background: linear-gradient(90deg, rgba(255,255,255,0.03) 25%, rgba(255,255,255,0.08) 50%, rgba(255,255,255,0.03) 75%);
  background-size: 200% 100%;
  animation: ld-shimmer 1.5s infinite;
}

/* Glow pulse for accent elements */
.ld-pulse { animation: ld-glow-pulse 2s ease-in-out infinite; }

/* Gradient text animation */
.ld-gradient-text-animated {
  background: linear-gradient(135deg, #00d4ff, #7c3aed, #f59e0b, #00d4ff);
  background-size: 300% 300%;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  animation: ld-border-flow 4s ease infinite;
}

/* Progress bar animation */
.ld-stat-bar {
  height: 4px;
  background: rgba(255,255,255,0.08);
  border-radius: 4px;
  overflow: hidden;
  margin-top: 8px;
}

.ld-stat-bar-fill {
  height: 100%;
  background: var(--ld-gradient-accent);
  border-radius: 4px;
  width: 0;
  transition: width 1.5s ease;
}

/* Hover reveal overlay */
.ld-hover-overlay {
  position: relative;
  overflow: hidden;
}

.ld-hover-overlay::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(0,212,255,0.1), rgba(124,58,237,0.1));
  opacity: 0;
  transition: opacity 0.3s ease;
}

.ld-hover-overlay:hover::after { opacity: 1; }
