/* App-wide motion (Raj, 14 Oct): pages glide in, numbers count up, buttons ripple, smooth page changes. */
@media (prefers-reduced-motion: no-preference) {
  .mo-in { opacity: 0; transform: translateY(14px); animation: moIn .55s cubic-bezier(.2,.8,.25,1) forwards; animation-delay: var(--d, 0s); }
  @keyframes moIn { to { opacity: 1; transform: none; } }
  body.mo-leave .main { opacity: 0; transform: translateY(6px); transition: opacity .16s ease, transform .16s ease; }
  .btn, .lv-btn, .cc-tile, .py-k, .cc-k { transition: transform .15s ease, box-shadow .2s ease, background-position .4s ease; }
  .btn:active { transform: scale(.97); }
  .btn.primary:hover { box-shadow: 0 12px 28px -12px rgba(124,58,237,.75); }
}
.mo-rp { position: absolute; border-radius: 50%; background: rgba(255,255,255,.4); transform: scale(0); animation: moRp .6s ease-out forwards; pointer-events: none; }
@keyframes moRp { to { transform: scale(4); opacity: 0; } }
.btn { position: relative; overflow: hidden; }
