/* Supporting artwork enters once; headings and body copy never wait for it. */
.home-step-art.motion-play { animation: home-step-enter .75s cubic-bezier(.2,.8,.2,1) both; }
@keyframes home-step-enter {
  from { opacity: .45; transform: translateY(24px) scale(.97); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}

.home-hero-cta, .home-cta-button {
  box-shadow: none;
  transition: transform .22s ease-out, box-shadow .22s ease-out, background-color .22s ease-out;
}
.home-hero-cta span, .home-cta-button span { transition: transform .22s ease-out; }
@media (hover: hover) {
  .home-hero-cta:hover, .home-cta-button:hover {
    transform: translateY(-5px) scale(1.015);
    box-shadow: none;
  }
  .home-hero-cta:hover span, .home-cta-button:hover span { transform: translateX(8px); }
}
.home-hero-cta:focus-visible, .home-cta-button:focus-visible { transform: translateY(-4px); }
.home-hero-cta:focus-visible span, .home-cta-button:focus-visible span { transform: translateX(8px); }
.home-hero-cta:active, .home-cta-button:active { transform: translateY(2px) scale(.97); transition-duration: .1s; }

@media (prefers-reduced-motion: reduce) {
  .home-step-art.motion-play { animation: none; }
  .home-hero-cta, .home-hero-cta span, .home-cta-button, .home-cta-button span { transition: none; }
  .home-hero-cta:hover, .home-hero-cta:focus-visible, .home-hero-cta:active,
  .home-cta-button:hover, .home-cta-button:focus-visible, .home-cta-button:active,
  .home-hero-cta:hover span, .home-hero-cta:focus-visible span,
  .home-cta-button:hover span, .home-cta-button:focus-visible span { transform: none; }
}
