@keyframes secousseErreur {
  0%   { transform: translateX(0); }
  20%  { transform: translateX(-6px); }
  40%  { transform: translateX(6px); }
  60%  { transform: translateX(-4px); }
  80%  { transform: translateX(4px); }
  100% { transform: translateX(0); }
}

@keyframes rebondSucces {
  0%   { transform: scale(1) translateY(0); }
  30%  { transform: scale(1.02) translateY(-3px); }
  60%  { transform: scale(0.995) translateY(1px); }
  100% { transform: scale(1) translateY(0); }
}

.cadre.succesAnime {
  animation: rebondSucces 0.35s ease;
}

.cadre.erreurAnime {
  animation: secousseErreur 0.35s ease;
}