/* Content remains fully visible until motion.js confirms that animation is welcome. */
@media (prefers-reduced-motion: no-preference) {
  .motion-ready .reveal {
    opacity: 0;
    transform: translateY(22px);
    transition:
      opacity 0.65s cubic-bezier(0.2, 0.65, 0.2, 1),
      transform 0.65s cubic-bezier(0.2, 0.65, 0.2, 1);
    transition-delay: var(--reveal-delay, 0ms);
  }
  .motion-ready .reveal.reveal-in {
    opacity: 1;
    transform: none;
  }
  .motion-ready .hero .hero-inner {
    animation: hero-arrive 0.8s cubic-bezier(0.2, 0.7, 0.2, 1) both;
  }
  .motion-ready .hero-stamp {
    animation: stamp-arrive 0.9s 0.18s cubic-bezier(0.2, 0.7, 0.2, 1) both;
  }
  .motion-ready .hero-orbit {
    animation: orbit-arrive 0.9s 0.12s cubic-bezier(0.2, 0.7, 0.2, 1) both;
  }
}
@keyframes hero-arrive {
  from {
    opacity: 0;
    transform: translateY(22px);
  }
  to {
    opacity: 1;
    transform: none;
  }
}
@keyframes stamp-arrive {
  from {
    opacity: 0;
    transform: translateX(16px);
  }
  to {
    opacity: 1;
    transform: none;
  }
}
@keyframes orbit-arrive {
  from {
    opacity: 0;
    transform: rotate(-18deg) scale(0.94);
  }
  to {
    opacity: 1;
    transform: rotate(-12deg) scale(1);
  }
}
