@keyframes floatServer {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-12px) rotate(.6deg); }
}

@keyframes softPulse {
  0%, 100% { box-shadow: 0 0 0 0 rgba(34, 197, 94, .35); }
  50% { box-shadow: 0 0 0 12px rgba(34, 197, 94, 0); }
}

.hero-visual img,
.migration-visual img {
  animation: floatServer 6s ease-in-out infinite;
}

.floating-whatsapp {
  animation: softPulse 2.8s ease-in-out infinite;
}

.reveal {
  opacity: 0;
  transform: translateY(22px);
  transition: opacity .65s ease, transform .65s ease;
}

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

.delay-1 { transition-delay: .12s; }
.delay-2 { transition-delay: .22s; }

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

  .reveal {
    opacity: 1;
    transform: none;
  }
}
