@keyframes shake-mild {
  0%, 100% { transform: translateX(0); }
  25% { transform: translateX(-2px); }
  75% { transform: translateX(2px); }
}

@keyframes shake-medium {
  0%, 100% { transform: translate(0, 0); }
  25% { transform: translate(-3px, -3px); }
  50% { transform: translate(3px, 3px); }
  75% { transform: translate(-3px, 3px); }
}

@keyframes shake-severe {
  0%, 100% { transform: translate(0, 0) rotate(0deg); }
  10% { transform: translate(-5px, -5px) rotate(-2deg); }
  20% { transform: translate(5px, 5px) rotate(2deg); }
  30% { transform: translate(-5px, 5px) rotate(-2deg); }
  40% { transform: translate(5px, -5px) rotate(2deg); }
  50% { transform: translate(-5px, -5px) rotate(-2deg); }
  60% { transform: translate(5px, 5px) rotate(2deg); }
  70% { transform: translate(-5px, 5px) rotate(-2deg); }
  80% { transform: translate(5px, -5px) rotate(2deg); }
  90% { transform: translate(-5px, -5px) rotate(-2deg); }
}

.animate-shake-mild {
  animation: shake-mild 0.5s ease-in-out infinite;
}

.animate-shake-medium {
  animation: shake-medium 0.4s ease-in-out infinite;
}

.animate-shake-severe {
  animation: shake-severe 0.3s ease-in-out infinite;
}

body {
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif;
}

input[type="text"] {
  font-family: 'Courier New', Courier, monospace;
}