/* ══════════════════════════════════════
   KEYFRAME ANIMATIONS
══════════════════════════════════════ */

/* ── POP-IN (element entry) ── */
@keyframes pop-in {
  0%   { transform: scale(.88); opacity: 0; }
  70%  { transform: scale(1.03); }
  100% { transform: scale(1); opacity: 1; }
}

.pop-in { 
  animation: pop-in .22s ease forwards; 
}

/* ── SHAKE (error feedback) ── */
@keyframes wshk {
  0%,100% { transform: translateX(0); }
  20% { transform: translateX(-8px); }
  40% { transform: translateX(8px); }
  60% { transform: translateX(-4px); }
  80% { transform: translateX(4px); }
}

.shake { 
  animation: wshk .32s ease; 
}


