/* Project content keeps its subtle fade-up; heroes match homepage hero.css.
   The opt-in class keeps content readable if JavaScript is unavailable. */
@media (prefers-reduced-motion: no-preference) {
  .project-page [data-reveal].reveal-enabled {
    opacity: 0;
    transform: translate3d(0, 1.1rem, 0);
    transition:
      opacity 650ms cubic-bezier(.16, 1, .3, 1),
      transform 650ms cubic-bezier(.16, 1, .3, 1);
    transition-delay: var(--reveal-delay, 0ms);
  }

  .project-page [data-reveal="hero"].reveal-enabled {
    transform: translateY(1.5rem);
    filter: none;
    transition: opacity 850ms ease, transform 850ms cubic-bezier(.16, 1, .3, 1);
    transition-delay: var(--reveal-delay, 0ms);
  }

  .project-page [data-reveal].reveal-enabled.is-visible {
    opacity: 1;
    transform: translate3d(0, 0, 0);
  }

  .project-page [data-reveal="hero"].reveal-enabled.is-visible { transform: translateY(0); filter: none; }

  /* Set the starting pose immediately; only the entrance should transition. */
  .project-page [data-reveal].reveal-enabled:not(.is-visible) { transition: none; }
}
