/* Calm, short animations. Everything here switches off for visitors who ask for reduced motion. */
@media (prefers-reduced-motion: no-preference) {
  /* gentle entrance of the home banner */
  .home-page .hero-content > * { animation: sac-rise .6s cubic-bezier(.2,.7,.2,1) both; }
  .home-page .hero-content > *:nth-child(2) { animation-delay: .06s; }
  .home-page .hero-content > *:nth-child(3) { animation-delay: .12s; }
  .home-page .hero-content > *:nth-child(4) { animation-delay: .18s; }
  .home-page .hero-content > *:nth-child(5) { animation-delay: .24s; }
  @keyframes sac-rise { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }

  /* sections fade in once as they scroll into view (class added by js/motion.js) */
  .js-motion .reveal { opacity: 0; transform: translateY(18px); transition: opacity .55s ease, transform .55s cubic-bezier(.2,.7,.2,1); }
  .js-motion .reveal.in { opacity: 1; transform: none; }
  .js-motion .reveal-stagger > * { opacity: 0; transform: translateY(14px); transition: opacity .5s ease, transform .5s cubic-bezier(.2,.7,.2,1); }
  .js-motion .reveal-stagger.in > * { opacity: 1; transform: none; }
  .js-motion .reveal-stagger.in > *:nth-child(2) { transition-delay: .07s; }
  .js-motion .reveal-stagger.in > *:nth-child(3) { transition-delay: .14s; }
  .js-motion .reveal-stagger.in > *:nth-child(4) { transition-delay: .21s; }
  .js-motion .reveal-stagger.in > *:nth-child(n+5) { transition-delay: .28s; }

  /* buttons and cards respond to hover and keyboard focus */
  .btn, .home-btn, .b, .nav-apply, .tab, .theme { transition: transform .18s ease, box-shadow .18s ease, background-color .18s ease, color .18s ease, border-color .18s ease; }
  .btn:hover, .home-btn:hover, .b:hover, .nav-apply:hover { transform: translateY(-2px); box-shadow: 0 8px 20px rgba(59,26,39,.18); }
  .btn:active, .home-btn:active, .b:active { transform: translateY(0); box-shadow: none; }
  .public-card, .feature-card, .news-item, .gcard, .item { transition: transform .22s ease, box-shadow .22s ease; }
  .public-card:hover, .news-item:hover { transform: translateY(-3px); }

  /* menu and messages ease in instead of popping */
  .public-nav.menu-open .public-nav-links { animation: sac-drop .22s ease both; }
  @keyframes sac-drop { from { opacity: 0; transform: translateY(-6px); } to { opacity: 1; transform: none; } }
  .msg.show, .toast { animation: sac-pop .25s ease both; }
  @keyframes sac-pop { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }

  /* progress steps and the payment box draw attention when they change */
  .track li.now { animation: sac-pulse 2.4s ease-in-out infinite; }
  @keyframes sac-pulse { 0%,100% { box-shadow: 0 0 0 0 rgba(180,59,96,.0); } 50% { box-shadow: 0 0 0 6px rgba(180,59,96,.14); } }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
  .js-motion .reveal, .js-motion .reveal-stagger > * { opacity: 1 !important; transform: none !important; }
}
