/* INDUSER - Animaciones & Transiciones Fluidas (Behance / Apple Style) */

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

@keyframes pulseGlow {
  0% {
    box-shadow: 0 0 0 0 rgba(37, 211, 102, 0.6);
  }
  70% {
    box-shadow: 0 0 0 18px rgba(37, 211, 102, 0);
  }
  100% {
    box-shadow: 0 0 0 0 rgba(37, 211, 102, 0);
  }
}

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

.reveal-on-scroll {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity 0.7s cubic-bezier(0.16, 1, 0.3, 1), transform 0.7s cubic-bezier(0.16, 1, 0.3, 1);
  will-change: opacity, transform;
}

.reveal-on-scroll.is-visible {
  opacity: 1;
  transform: translateY(0);
}

/* Retardos progresivos (Stagger Effect) */
.stagger-1 { transition-delay: 0.1s; }
.stagger-2 { transition-delay: 0.2s; }
.stagger-3 { transition-delay: 0.3s; }
.stagger-4 { transition-delay: 0.4s; }

.float-animation {
  animation: floatSoft 4s ease-in-out infinite;
}

.whatsapp-float {
  animation: pulseGlow 2.5s infinite;
}

@keyframes heroDrift {
  from { background-position: 50% 50%; }
  to { background-position: 54% 48%; }
}

@keyframes gradientShift {
  0%, 100% { background-position: 0% 50%; }
  50% { background-position: 100% 50%; }
}

@keyframes softIn {
  from { opacity: 0; transform: translateY(12px); }
  to { opacity: 1; transform: none; }
}

body.is-ready main,
body.is-ready > section:first-of-type {
  animation: softIn .55s var(--ease-out-expo) both;
}

.section-hero-parallax {
  animation: heroDrift 12s ease-in-out infinite alternate;
}

.section-title {
  text-wrap: balance;
}

.card.is-filter-entering {
  animation: softIn .45s var(--ease-out-expo) both;
}

/* Reducción de Movimiento por Accesibilidad */
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
  
  .reveal-on-scroll {
    opacity: 1;
    transform: none;
  }
}
