/* Motion is enabled only after the observer is ready; content stays visible without JS. */
@media (prefers-reduced-motion: no-preference) {
  html.motion-ready .motion-reveal {
    opacity: 0;
    transform: translate3d(0, 22px, 0);
    transition: opacity 700ms cubic-bezier(.22,.7,.25,1), transform 700ms cubic-bezier(.22,.7,.25,1);
    transition-delay: var(--reveal-delay, 0ms);
  }
  html.motion-ready .motion-reveal.in-view { opacity: 1; transform: translate3d(0,0,0); }
  .card { transition: transform 260ms ease, box-shadow 260ms ease, background-color 260ms ease; }
  .card:hover, .card:focus-within { transform: translateY(-7px); box-shadow: 0 16px 36px #2d392016; }
  html.motion-ready .card.motion-reveal.in-view:hover,
  html.motion-ready .card.motion-reveal.in-view:focus-within { transform: translateY(-7px); }
  .button, .headbtn { transition: background-color 200ms ease, transform 240ms ease, box-shadow 240ms ease; }
  .button:hover, .headbtn:hover { transform: translateY(-3px); box-shadow: 0 12px 24px #f05a2838; }
  .button span, .headbtn span { display: inline-block; transition: transform 220ms ease; }
  .button:hover span, .headbtn:hover span { transform: translate(3px,-3px); }
  .step { transition: border-color 350ms ease; }
  .step.in-view { border-color: #f2754e99; }
  .step b { transition: color 350ms ease, transform 350ms ease; }
  .step.in-view b { color: #ff9d7c; transform: scale(1.15); }
  .dot { animation: status-pulse 2.5s ease-in-out infinite; }
  @keyframes status-pulse { 0%,100% { box-shadow: 0 0 0 0 #f05a2833; } 50% { box-shadow: 0 0 0 7px #f05a2800; } }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  html.motion-ready .motion-reveal { opacity: 1; transform: none; }
}
