/* CHR · Movimiento: keyframes compartidos y reducción de movimiento. Requiere tokens.css. */
@keyframes rise{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
@keyframes draw{to{stroke-dashoffset:0}}
@keyframes hojain{from{transform:translateY(100%)}to{transform:none}}
@keyframes popin{from{opacity:0;transform:scale(.96)}to{opacity:1;transform:none}}
@keyframes rowflash{0%{background:var(--ember-tint)}100%{background:transparent}}
@keyframes rowin{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
@keyframes flash{0%{background:var(--ember-tint)}100%{background:transparent}}
@keyframes num{from{opacity:.4;transform:translateY(4px)}to{opacity:1;transform:none}}
@keyframes shimmer{from{background-position:200% 0}to{background-position:-200% 0}}
@keyframes flow{to{stroke-dashoffset:-160}}
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes toastin{from{opacity:0;transform:translateY(100%)}to{opacity:1;transform:none}}
@keyframes toastout{to{opacity:0;transform:translateY(100%)}}
@keyframes blink{0%{background:var(--ember-tint);border-color:var(--ember)}100%{background:var(--surface);border-color:var(--line-3)}}
@keyframes fadeOnly{from{opacity:0}to{opacity:1}}
@keyframes fadeOut{to{opacity:0}}

/* Movimiento reducido: se conserva opacidad y color, se quitan desplazamientos y escalas */
@media (prefers-reduced-motion:reduce){
  .hero-copy>*,.tile,.pcard{animation:fadeOnly 240ms ease both}
  .hero-bg .ring-bg circle,.ring-draw circle{animation:none;stroke-dashoffset:0}
  .route-svg .flow{animation:none}
  .drawer .panel,.toast,.finder-pop,.menu,.chips .pop,.island nav,.combo-list{transition-duration:120ms;transform:none!important;animation:none}
  .toast{animation:fadeOnly 120ms ease} .toast.is-out{animation:fadeOut 120ms ease forwards}
  .drawer .panel{opacity:0;transition:opacity 120ms ease} .drawer.is-open .panel{opacity:1}
  .btn:active,.icon-btn:active,.tile:active,.fab:active,.avatar:active,.plus:active,.pages button:active{transform:none;opacity:.85}
  .cat tbody tr.is-new{animation:fadeOnly 200ms ease}
  .fresh-in,.calc b .fresh-in{animation:none}
  .sk{animation:none}
  .tabbar button svg,.hero-link svg,.tile,.pcard,.secnav .ind,.tabbar .pill,.segmented .tab-ind{transition:none}
  .ubar-fill{transition:background var(--t-fast)}
  .counter{transition:none}
}
