/* ============================================================
   REVEAL
   ============================================================ */

/* Only active when JS has set body.reveal-ready */

body.reveal-ready [data-reveal] {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 0.9s cubic-bezier(0.4, 0, 0.2, 1), transform 0.9s cubic-bezier(0.4, 0, 0.2, 1);
  transition-delay: var(--reveal-delay, 0s);
  will-change: opacity, transform;
}

body.reveal-ready [data-reveal].is-revealed {
  opacity: 1;
  transform: translateY(0);
}

/* Stagger for elements within same section: delay multiplier */

body.reveal-ready [data-reveal-stagger="1"] { --reveal-delay: 0.10s; }

body.reveal-ready [data-reveal-stagger="2"] { --reveal-delay: 0.20s; }

body.reveal-ready [data-reveal-stagger="3"] { --reveal-delay: 0.30s; }

body.reveal-ready [data-reveal-stagger="4"] { --reveal-delay: 0.40s; }

/* For initial hero load — fades in immediately on page load */

body.reveal-ready [data-reveal-initial] {
  opacity: 0;
  transform: translateY(20px);
  animation: heroFadeIn 1s cubic-bezier(0.4, 0, 0.2, 1) forwards;
  animation-delay: var(--reveal-delay, 0s);
}
