/* Nova scroll motion — entrance reveals (classes applied by nova-motion.js).
   Final state is transform:none so no stacking contexts or containing
   blocks outlive the animation. Reduced-motion users never get the class. */
@media (prefers-reduced-motion: no-preference) {
  .nova-reveal {
    opacity: 0;
    transform: translateY(18px);
    transition:
      opacity 0.65s cubic-bezier(0.2, 0.7, 0.2, 1),
      transform 0.65s cubic-bezier(0.2, 0.7, 0.2, 1);
  }
  .nova-reveal.in {
    opacity: 1;
    transform: none;
  }
  /* Phones: shorter travel and a touch quicker, so the long scroll flows. */
  @media (max-width: 760px) {
    .nova-reveal {
      transform: translateY(12px);
      transition-duration: 0.5s, 0.5s;
    }
  }
}
