/* web/css/motion.css — all movement lives here so one reduced-motion block can switch it off. */
@keyframes rise{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.rise{animation:rise var(--dur) var(--ease) both;animation-delay:calc(var(--i,0)*30ms)}
@keyframes vt-out{to{opacity:0}}
@keyframes vt-in{from{opacity:0;transform:translateY(8px)}}
::view-transition-old(root){animation:vt-out 180ms var(--ease) both}
::view-transition-new(root){animation:vt-in 180ms var(--ease) both}
.top{view-transition-name:top}.tabs{view-transition-name:tabs}       /* chrome stays put while the view changes */
.chip,.tabs a,.sub a{transition:background var(--dur-fast) var(--ease),color var(--dur-fast) var(--ease)}
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
  ::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none}
  button:active,.btn:active{transform:none}
  .rise{opacity:1}
}
