/* Pulse */
@keyframes dracula-pulse {
  0%, 100% { transform: scale(1); }
  50% { transform: scale(1.1); }
}

/* Shake */
@keyframes dracula-shake {
  0%, 100% { transform: translateX(0); }
  10%, 30%, 50%, 70%, 90% { transform: translateX(-10px); }
  20%, 40%, 60%, 80% { transform: translateX(10px); }
}

/* Bounce */
@keyframes dracula-bounce {
  0%, 20%, 50%, 80%, 100% { transform: translateY(0); }
  40% { transform: translateY(-30px); }
  60% { transform: translateY(-15px); }
}

/* Glow */
@keyframes dracula-glow {
  0%, 100% { box-shadow: 0 0 5px #f8f8f2; }
  50% { box-shadow: 0 0 20px #f8f8f2, 0 0 30px #f8f8f2; }
}

/* Shadow */
@keyframes dracula-shadow {
  0%, 100% { box-shadow: 0 0 5px #444; }
  50% { box-shadow: 0 5px 15px #444; }
}

/* Ripple */
@keyframes dracula-ripple {
  0% { transform: scale(0.8); opacity: 1; }
  100% { transform: scale(1.5); opacity: 0; }
}

/* Rotate */
@keyframes dracula-rotate {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}

/* Flip */
@keyframes dracula-flip {
  0% { transform: perspective(400px) rotateY(0); }
  100% { transform: perspective(400px) rotateY(1turn); }
}

/* Swing */
@keyframes dracula-swing {
  20% { transform: rotate(15deg); }
  40% { transform: rotate(-10deg); }
  60% { transform: rotate(5deg); }
  80% { transform: rotate(-5deg); }
  100% { transform: rotate(0deg); }
}

/* Tilt */
@keyframes dracula-tilt {
  0%, 100% { transform: rotate(0deg); }
  50% { transform: rotate(10deg); }
}

/* Wobble */
@keyframes dracula-wobble {
  0%, 100% { transform: none; }
  15% { transform: translateX(-25%) rotate(-5deg); }
  30% { transform: translateX(20%) rotate(3deg); }
  45% { transform: translateX(-15%) rotate(-3deg); }
  60% { transform: translateX(10%) rotate(2deg); }
  75% { transform: translateX(-5%) rotate(-1deg); }
}

/* Jiggle */
@keyframes dracula-jiggle {
  0%, 100% { transform: skew(0deg); }
  25% { transform: skew(-15deg); }
  50% { transform: skew(10deg); }
  75% { transform: skew(-5deg); }
}

/* Fade */
@keyframes dracula-fade {
  0% { opacity: 0; }
  100% { opacity: 1; }
}

/* Slide */
@keyframes dracula-slide {
  0% { transform: translateY(-100%); }
  100% { transform: translateY(0); }
}

/* Color */
@keyframes dracula-color {
  0% { background-color: #f8f8f2; }
  50% { background-color: #6272a4; }
  100% { background-color: #f8f8f2; }
}

/* Usage */
.dracula-effect-pulse   { animation: dracula-pulse 1.5s; }
.dracula-effect-shake   { animation: dracula-shake 1.5s; }
.dracula-effect-bounce  { animation: dracula-bounce 1.5s; }
.dracula-effect-glow    { animation: dracula-glow 1.5s; }
.dracula-effect-shadow  { animation: dracula-shadow 1.5s; }
.dracula-effect-ripple  { animation: dracula-ripple 1.5s; }
.dracula-effect-rotate  { animation: dracula-rotate 1.5s; }
.dracula-effect-flip    { animation: dracula-flip 1.5s; }
.dracula-effect-swing   { animation: dracula-swing 1.5s; }
.dracula-effect-tilt    { animation: dracula-tilt 1.5s; }
.dracula-effect-wobble  { animation: dracula-wobble 1.5s; }
.dracula-effect-jiggle  { animation: dracula-jiggle 1.5s; }
.dracula-effect-fade    { animation: dracula-fade 1.5s; }
.dracula-effect-slide   { animation: dracula-slide 1.5s; }
.dracula-effect-color   { animation: dracula-color 1.5s; }
