/* ── HERO ENTRY ANIMATIONS ── */
@keyframes fadeUp {
  from {
    opacity: 0;
    transform: translateY(24px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* ── SCROLL REVEAL (Intersection Observer) ── */
.reveal {
  opacity: 0;
  transform: translateY(28px);
  transition: opacity 0.65s ease, transform 0.65s ease;
}
.reveal.is-visible {
  opacity: 1;
  transform: none;
}

/* Fallback: if JS hasn't run yet, ensure content is never permanently hidden */
.no-js .reveal {
  opacity: 1;
  transform: none;
}

/* ── REDUCED MOTION ── */
@media (prefers-reduced-motion: reduce) {
  .reveal,
  .hero-badge,
  .hero h1,
  .hero-sub,
  .hero-actions {
    animation: none;
    transition: none;
    opacity: 1;
    transform: none;
  }
  .plan-card:hover {
    transform: none;
  }
  .pillar::before {
    transition: none;
  }
}
