/* ============================================================
   ATENA CRYPTO — HOMEPAGE SCROLL-REVEAL (Stage A pilot)
   Loaded ONLY by index.html. Do NOT promote to base.css until
   Stage B review. Tokens (--dur-*, --ease-out) come from base.css.

   No-JS / reduced-motion safe: [data-reveal] elements are fully
   visible by default. They only hide (then fade up once on scroll)
   AFTER home-reveal.js adds .reveal-ready to <html> — which it does
   only when motion is allowed and IntersectionObserver exists.
   ============================================================ */

.reveal-ready [data-reveal] {
  opacity: 0;
  transform: translateY(8px);
  transition: opacity var(--dur-slow) var(--ease-out),
              transform var(--dur-slow) var(--ease-out);
  transition-delay: var(--reveal-delay, 0ms);
  /* No will-change: a one-shot opacity/transform transition does not need
     it, and leaving it on permanently kept ~10 idle compositor layers
     alive for the whole session (scroll-jank contributor). */
}

.reveal-ready [data-reveal].is-revealed {
  opacity: 1;
  transform: none;
}

/* Belt-and-suspenders: even if .reveal-ready were ever applied under
   reduced-motion, force content visible and motionless. */
@media (prefers-reduced-motion: reduce) {
  .reveal-ready [data-reveal],
  .reveal-ready [data-reveal].is-revealed {
    opacity: 1;
    transform: none;
    transition: none;
  }
}
