/* =============================================================
   PMS — Animations
   ============================================================= */

@keyframes p-pulse {
  0%, 100% { opacity: 1; }
  50%      { opacity: 0.4; }
}

@keyframes p-fade-up {
  from { opacity: 0; transform: translateY(6px); }
  to   { opacity: 1; transform: translateY(0); }
}

@keyframes p-fade-in {
  from { opacity: 0; }
  to   { opacity: 1; }
}

@keyframes p-slide-in-left {
  from { opacity: 0; transform: translateX(-8px); }
  to   { opacity: 1; transform: translateX(0); }
}

@keyframes p-slide-in-right {
  from { opacity: 0; transform: translateX(8px); }
  to   { opacity: 1; transform: translateX(0); }
}

@keyframes p-aurora-shift {
  0%   { background-position: 0% 50%; }
  50%  { background-position: 100% 50%; }
  100% { background-position: 0% 50%; }
}

@keyframes p-card-glow {
  0%, 100% { box-shadow: 0 0 0 1px var(--border); }
  50%      { box-shadow: 0 0 0 1px var(--border-indigo), var(--shadow-indigo); }
}

@keyframes p-spin {
  to { transform: rotate(360deg); }
}

@keyframes p-blocked-pulse {
  0%, 100% { box-shadow: -3px 0 0 0 var(--rose), 0 0 0 0 rgba(248,113,113,0); }
  50%      { box-shadow: -3px 0 0 0 var(--rose), 0 0 0 4px rgba(248,113,113,0.18); }
}

@keyframes p-tick-down {
  0% { transform: translateY(-100%); opacity: 0; }
  to { transform: translateY(0); opacity: 1; }
}

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

@keyframes p-pop {
  0%   { transform: scale(0.6); opacity: 0; }
  60%  { transform: scale(1.06); }
  100% { transform: scale(1); opacity: 1; }
}

@keyframes p-glow-indigo {
  0%, 100% { box-shadow: 0 0 0 0 rgba(129,140,248,0); }
  50%      { box-shadow: 0 0 0 4px rgba(129,140,248,0.20); }
}

/* utility */
.p-anim-fade-up    { animation: p-fade-up   240ms var(--ease) both; }
.p-anim-fade-in    { animation: p-fade-in   240ms var(--ease) both; }
.p-anim-slide-l    { animation: p-slide-in-left  240ms var(--ease) both; }
.p-anim-slide-r    { animation: p-slide-in-right 240ms var(--ease) both; }
.p-anim-pop        { animation: p-pop 280ms var(--ease) both; }
.p-anim-spin       { animation: p-spin 1s linear infinite; }
.p-anim-shimmer {
  background: linear-gradient(90deg,
    var(--surface-2) 0%, var(--surface-3) 50%, var(--surface-2) 100%);
  background-size: 200% 100%;
  animation: p-shimmer 1.6s linear infinite;
}
