/* Titan Pest Control Group — animations.css
   Apariciones al scroll, keyframes y prefers-reduced-motion */

.js .reveal { opacity: 0; transform: translateY(22px); transition: opacity .8s var(--ease), transform .8s var(--ease); transition-delay: calc(var(--i, 0) * 90ms); }
.js .reveal.is-in { opacity: 1; transform: none; }
.js .card.reveal.is-in:hover { transform: translateY(-4px); transition-delay: 0s; }

@keyframes draw-y { from { transform: scaleY(0); } to { transform: scaleY(1); } }
@keyframes ring-pulse { 0% { transform: scale(1); opacity: .9; } 70%, 100% { transform: scale(1.35); opacity: 0; } }
@keyframes soon-pulse { 0%, 100% { opacity: 1; } 50% { opacity: .35; } }
@keyframes float { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-6px); } }
@keyframes flash { 0%, 100% { color: var(--c-muted); } 30% { color: var(--c-gold-deep); } }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .001ms !important; animation-iteration-count: 1 !important; transition-duration: .001ms !important; transition-delay: 0s !important; scroll-behavior: auto !important; }
  .js .reveal { opacity: 1; transform: none; }
  .steps__fill { transform: none !important; }
  .video__play-icon::after { animation: none !important; opacity: 0; }
}
