/* Animations & Micro-interactions */

@keyframes fadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}

@keyframes fadeInUp {
  from {
    opacity: 0;
    transform: translateY(24px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes scaleIn {
  from {
    opacity: 0;
    transform: scale(0.94);
  }
  to {
    opacity: 1;
    transform: scale(1);
  }
}

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

@keyframes pulseGlow {
  0%, 100% {
    opacity: 0.4;
    transform: scale(1);
  }
  50% {
    opacity: 0.75;
    transform: scale(1.06);
  }
}

[data-animate] {
  opacity: 0;
  transform: translateY(22px);
  transition:
    opacity 0.65s var(--ease-out),
    transform 0.65s var(--ease-out);
  transition-delay: var(--delay, 0ms);
  will-change: opacity, transform;
}

[data-animate="scale"] {
  transform: scale(0.95);
}

[data-animate="left"] {
  transform: translateX(-24px);
}

[data-animate="right"] {
  transform: translateX(24px);
}

[data-animate].is-inview {
  opacity: 1;
  transform: translate(0) scale(1);
}

.float-slow {
  animation: floatSlow 5s ease-in-out infinite;
}

.pulse-glow {
  animation: pulseGlow 4s ease-in-out infinite;
}

@media (prefers-reduced-motion: reduce) {
  [data-animate] {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }

  .trust-strip__track {
    animation: none !important;
  }

  .float-slow,
  .pulse-glow,
  .pulse-dot {
    animation: none !important;
  }
}
