@keyframes wzb-fade-in {
  from {
    opacity: 0;
    transform: translateY(16px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes wzb-slide-right {
  from {
    opacity: 0;
    transform: translateX(-24px);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}

@keyframes wzb-pulse-glow {
  0%,
  100% {
    box-shadow: 0 4px 14px rgba(61, 214, 12, 0.35);
  }
  50% {
    box-shadow: 0 4px 28px rgba(61, 214, 12, 0.65);
  }
}

@keyframes wzb-shimmer {
  0% {
    background-position: -400px 0;
  }
  100% {
    background-position: 400px 0;
  }
}

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

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

@keyframes wzb-bounce-in {
  0% {
    opacity: 0;
    transform: scale(0.8);
  }
  60% {
    opacity: 1;
    transform: scale(1.05);
  }
  100% {
    transform: scale(1);
  }
}

@keyframes wzb-gradient-shift {
  0% {
    background-position: 0% 50%;
  }
  50% {
    background-position: 100% 50%;
  }
  100% {
    background-position: 0% 50%;
  }
}

.wzb-animate-fade {
  animation: wzb-fade-in 0.6s ease both;
}
.wzb-animate-slide {
  animation: wzb-slide-right 0.5s ease both;
}
.wzb-animate-float {
  animation: wzb-float 3s ease-in-out infinite;
}
.wzb-animate-bounce {
  animation: wzb-bounce-in 0.5s ease both;
}

.wzb-btn-primary {
  animation: wzb-pulse-glow 2.5s ease-in-out infinite;
}
.wzb-btn-primary:hover {
  animation: none;
}

.wzb-hero-title {
  animation: wzb-fade-in 0.7s ease both;
}
.wzb-hero-desc {
  animation: wzb-fade-in 0.7s 0.15s ease both;
}
.wzb-hero-actions {
  animation: wzb-fade-in 0.7s 0.25s ease both;
}
.wzb-hero-rating {
  animation: wzb-fade-in 0.7s 0.1s ease both;
}

#wzb-hero::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 80px;
  background: linear-gradient(to bottom, transparent, var(--c-bg));
  pointer-events: none;
}

.wzb-section-title {
  position: relative;
  display: inline-block;
}
.wzb-section-title::after {
  content: "";
  position: absolute;
  bottom: -6px;
  left: 0;
  width: 48px;
  height: 3px;
  background: var(--c-header);
  border-radius: 2px;
}

.wzb-bonus-card:hover .wzb-bonus-icon {
  animation: wzb-float 1.5s ease-in-out infinite;
}

.wzb-tile:hover .wzb-tile-icon {
  transform: scale(1.15);
  transition: transform 0.2s ease;
}

.wzb-review-card {
  transition: all 0.3s ease;
}

.wzb-gradient-animated {
  background: linear-gradient(270deg, #001428, #002b58, #003a78, #002050);
  background-size: 400% 400%;
  animation: wzb-gradient-shift 10s ease infinite;
}

.wzb-header-underline {
  height: 3px;
  background: linear-gradient(
    90deg,
    var(--c-secondary),
    var(--c-primary),
    var(--c-header)
  );
  background-size: 200% 100%;
  animation: wzb-shimmer 2.5s linear infinite;
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}
