/* Motion. Everything here is decoration on top of a page that already reads correctly at rest.
   Budget (spec §2a): button shine once; headline rises once. Hero wordmark is small and still (Rich, Nov 7).
   Animations only run under .motion-ok, which main.js adds on the first animation frame, so a paused
   or background page shows everything at rest instead of invisible text. */
@media (prefers-reduced-motion: no-preference) {
  .motion-ok .hero .eyebrow, .motion-ok .hero .lede, .motion-ok .hero .btn-row { animation: rw-rise 0.7s ease-out both; }
  .motion-ok .hero .eyebrow { animation-delay: 0.15s; }
  .motion-ok .hero h1 .w { animation: rw-rise 0.7s ease-out both; }
  .motion-ok .hero h1 .w:nth-child(1) { animation-delay: 0.3s; } .motion-ok .hero h1 .w:nth-child(2) { animation-delay: 0.4s; }
  .motion-ok .hero h1 em .w:nth-child(1) { animation-delay: 0.55s; } .motion-ok .hero h1 em .w:nth-child(2) { animation-delay: 0.65s; } .motion-ok .hero h1 em .w:nth-child(3) { animation-delay: 0.75s; }
  .motion-ok .hero .lede { animation-delay: 0.9s; }
  .motion-ok .hero .btn-row { animation-delay: 1.05s; }
  .motion-ok .hero .btn--gold::after { content: ""; position: absolute; top: 0; bottom: 0; width: 40%; left: -60%; background: linear-gradient(100deg, transparent, rgba(255, 255, 255, 0.6), transparent); animation: rw-shine 1.1s ease-out 1.8s 1 both; }
}
@keyframes rw-rise { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: none; } }
@keyframes rw-shine { from { left: -60%; } to { left: 130%; } }
