/* ============================================
   Animations & Transitions
   ============================================ */

/* Keyframes */
@keyframes float-particle {
  0% {
    transform: translateY(100vh) rotate(0);
    opacity: 0;
  }
  10% {
    opacity: .06;
  }
  90% {
    opacity: .06;
  }
  100% {
    transform: translateY(-10vh) rotate(360deg);
    opacity: 0;
  }
}

@keyframes pulse-dot {
  0%, 100% {
    opacity: 1;
    transform: scale(1);
  }
  50% {
    opacity: .5;
    transform: scale(.75);
  }
}

@keyframes float-block {
  0%, 100% {
    transform: translateY(0) rotate(0);
  }
  25% {
    transform: translateY(-18px) rotate(4deg);
  }
  50% {
    transform: translateY(-8px) rotate(-2deg);
  }
  75% {
    transform: translateY(-22px) rotate(3deg);
  }
}

@keyframes scroll-bounce {
  0%, 100% {
    transform: rotate(45deg) translate(0, 0);
    opacity: 1;
  }
  50% {
    transform: rotate(45deg) translate(4px, 4px);
    opacity: .4;
  }
}

/* Scroll Animations (Intersection Observer) */
[data-animate] {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity .55s ease, transform .55s ease;
}

[data-animate].visible {
  opacity: 1;
  transform: translateY(0);
}

/* Staggered Delays */
.builds-showcase [data-animate]:nth-child(2),
.features-grid [data-animate]:nth-child(2),
.reviews-grid [data-animate]:nth-child(2),
.steps-grid [data-animate]:nth-child(2) {
  transition-delay: 80ms;
}

.builds-showcase [data-animate]:nth-child(3),
.features-grid [data-animate]:nth-child(3),
.reviews-grid [data-animate]:nth-child(3),
.steps-grid [data-animate]:nth-child(3) {
  transition-delay: 0.16s;
}

.builds-showcase [data-animate]:nth-child(4),
.features-grid [data-animate]:nth-child(4) {
  transition-delay: 0.24s;
}

.features-grid [data-animate]:nth-child(5) {
  transition-delay: 0.32s;
}

.features-grid [data-animate]:nth-child(6) {
  transition-delay: 0.40s;
}
