/* Hero entrance. Layout lives in landing-v5.css. Content stays visible without
   motion: reduced-motion visitors and focused content skip the animation.
   The capture composition only translates: fading real screenshots in hid the
   product behind an opacity ramp for 120ms, and a raster that starts at opacity
   0 is indistinguishable from one that never loads. */
@keyframes hero-reveal {
  from {
    opacity: 0;
    transform: translateY(10px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes hero-stage-reveal {
  from {
    transform: translateY(24px);
  }
  to {
    transform: translateY(0);
  }
}

@media (prefers-reduced-motion: no-preference) {
  #hero-copy {
    animation: hero-reveal 300ms cubic-bezier(0.22, 1, 0.36, 1) 40ms both;
  }

  #landing-hero .v5-hero-stage {
    animation: hero-stage-reveal 300ms cubic-bezier(0.22, 1, 0.36, 1) 120ms both;
  }

  #hero-copy:focus-within {
    animation: none;
  }
}
