.reveal {
  opacity: 0;
  transform: translateY(28px);
  transition: opacity 0.7s var(--ease-out), transform 0.7s var(--ease-out);
  transition-delay: var(--reveal-delay, 0s);
  will-change: opacity, transform;
}
.reveal.visible { opacity: 1; transform: none; }

.hero [data-stagger] { opacity: 0; transform: translateY(24px); animation: fadeUp 0.8s var(--ease-out) forwards; animation-delay: var(--stagger-delay, 0s); }

@media (prefers-reduced-motion: reduce) {
  .reveal { opacity: 1; transform: none; transition: none; }
  .hero [data-stagger] { opacity: 1; transform: none; animation: none; }
}
