/* ==========================================================================
   Zakir OS — Motion. Deliberate and few. Reduced-motion respected globally.
   ========================================================================== */

@keyframes fade{from{opacity:0}to{opacity:1}}
@keyframes rise{from{opacity:0;transform:translateY(8px) scale(.985)}to{opacity:1;transform:none}}
@keyframes slide-in{from{opacity:0;transform:translateX(12px)}to{opacity:1;transform:none}}
@keyframes pulse-line{0%,100%{opacity:.35}50%{opacity:1}}

/* Page transition — one orchestrated moment, not scattered effects */
.view-enter{animation:view-in var(--base) var(--ease)}
@keyframes view-in{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}

/* Route progress bar */
.route-progress{
  position:fixed;top:0;left:0;height:2px;width:0;
  background:var(--accent);
  z-index:var(--z-toast);
  transition:width var(--slow) var(--ease),opacity var(--base) var(--ease);
}
.route-progress[data-state="loading"]{width:70%}
.route-progress[data-state="done"]{width:100%;opacity:0}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{
    animation-duration:.001ms!important;
    animation-iteration-count:1!important;
    transition-duration:.001ms!important;
  }
}
