/* =========================================================================
   Mobisoft Labs — animations.css
   Scroll-reveal + entrance animations. Respects prefers-reduced-motion.
   ========================================================================= */

/* Reveal-on-scroll (toggled by animations.js via IntersectionObserver) */
[data-reveal] {
  opacity: 0;
  transform: translateY(28px);
  transition: opacity 0.7s var(--ease), transform 0.7s var(--ease);
  will-change: opacity, transform;
}
[data-reveal].revealed { opacity: 1; transform: none; }

/* Stagger children */
[data-reveal-group] > * {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity 0.6s var(--ease), transform 0.6s var(--ease);
}
[data-reveal-group].revealed > * { opacity: 1; transform: none; }
[data-reveal-group].revealed > *:nth-child(1) { transition-delay: 0.05s; }
[data-reveal-group].revealed > *:nth-child(2) { transition-delay: 0.12s; }
[data-reveal-group].revealed > *:nth-child(3) { transition-delay: 0.19s; }
[data-reveal-group].revealed > *:nth-child(4) { transition-delay: 0.26s; }
[data-reveal-group].revealed > *:nth-child(5) { transition-delay: 0.33s; }
[data-reveal-group].revealed > *:nth-child(6) { transition-delay: 0.40s; }
[data-reveal-group].revealed > *:nth-child(7) { transition-delay: 0.47s; }
[data-reveal-group].revealed > *:nth-child(8) { transition-delay: 0.54s; }

/* Hero entrance */
.hero h1, .hero .lead, .hero-actions, .hero-trust {
  animation: rise 0.8s var(--ease) both;
}
.hero .lead { animation-delay: 0.12s; }
.hero-actions { animation-delay: 0.24s; }
.hero-trust { animation-delay: 0.36s; }
.hero-visual { animation: fadeScale 1s var(--ease) 0.2s both; }

@keyframes rise { from { opacity: 0; transform: translateY(30px); } to { opacity: 1; transform: none; } }
@keyframes fadeScale { from { opacity: 0; transform: scale(0.94); } to { opacity: 1; transform: none; } }

/* Count-up helper: number stays put, JS updates text */
.stat .num { font-variant-numeric: tabular-nums; }

/* Gentle pulse for primary CTAs on hero */
.pulse { position: relative; }
.pulse::after {
  content: ""; position: absolute; inset: 0; border-radius: inherit;
  box-shadow: 0 0 0 0 rgba(255,77,109,0.5); animation: pulse 2.4s infinite;
}
@keyframes pulse { 70% { box-shadow: 0 0 0 16px rgba(255,77,109,0); } 100% { box-shadow: 0 0 0 0 rgba(255,77,109,0); } }

@media (prefers-reduced-motion: reduce) {
  [data-reveal], [data-reveal-group] > * { opacity: 1 !important; transform: none !important; }
  .hero h1, .hero .lead, .hero-actions, .hero-trust, .hero-visual { animation: none !important; }
  .pulse::after, .marquee-track, .float-badge, .skeleton { animation: none !important; }
}
