/* ── Animations: All @keyframes ── */

@keyframes slideUp{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}

@keyframes pulse2{0%,100%{opacity:1}50%{opacity:.4}}

@keyframes shrink-bar{0%{width:100%}100%{width:0}}

@keyframes fadeIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}

@keyframes shimmer{0%{background-position:200% 0}100%{background-position:-200% 0}}

@keyframes spin-border{to{--angle:360deg}}

@keyframes progress-shimmer{0%{transform:translateX(-100%)}100%{transform:translateX(100%)}}

@keyframes toast-shrink{from{transform:scaleX(1);transform-origin:left}to{transform:scaleX(0);transform-origin:left}}

/* ── Animation utility classes ── */
.pulse{animation:pulse2 2s infinite}
.fade-in{animation:fadeIn .25s ease}
.progress-bar{position:relative;overflow:hidden}
.progress-bar::after{content:'';position:absolute;inset:0;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,0.2),transparent);
  animation:progress-shimmer 1.5s ease-in-out infinite}
