.strong-hover-shake:hover {
    animation: tilt-shaking 0.15s infinite;
}

.gentle-hover-shake:hover {
    animation: tilt-shaking 0.25s infinite;
}

.gentle-tilt-shake-still {
    animation: tilt-shaking-bell 0.25s infinite;
}

.gentle-tilt-move-shake:hover {
    animation: tilt-n-move-shaking 0.25s infinite;
}

a:hover, button:hover {
    animation: anchor-shaking 1.3s infinite;
}

.flash-message-shaking {
    animation: flash-message-shaking 2s infinite;
}

.strong-tilt-move-shake:hover {
    animation: tilt-n-move-shaking 0.15s infinite;
}

.strong-tilt-move-shake-still:hover {
    animation: tilt-n-move-shaking 0.15s infinite;
}

.constant-tilt-shake {
    animation: tilt-shaking 0.3s infinite;
}

.vertical-shake {
    animation: vertical-shaking 0.35s infinite;
}

.horizontal-shake {
    animation: horizontal-shaking 0.35s infinite;
}

.rise-shake {
    animation: jump-shaking 0.83s infinite;
}

.skew-shake-x {
    animation: skew-x-shake 1.3s infinite;
}

.skew-shake-y {
    animation: skew-y-shake 1.3s infinite;
}

@keyframes tilt-shaking {
    0% { transform: rotate(0deg); }
    25% { transform: rotate(5deg); }
    50% { transform: rotate(0eg); }
    75% { transform: rotate(-5deg); }
    100% { transform: rotate(0deg); }
}

@keyframes tilt-shaking-bell {
    0% { transform: rotate(0deg); }
    5% { transform: rotate(3deg); }
    10% { transform: rotate(6deg); }
    20% { transform: rotate(9deg); }
    30% { transform: rotate(6deg); }
    40% { transform: rotate(3deg); }
    50% { transform: rotate(0deg); }
    60% { transform: rotate(-3deg); }
    70% { transform: rotate(-6deg); }
    80% { transform: rotate(-9deg); }
    90% { transform: rotate(-6deg); }
    95% { transform: rotate(-3deg); }
    100% { transform: rotate(0deg); }
}

@keyframes tilt-n-move-shaking {
    0% { transform: translate(0, 0) rotate(0deg); }
    25% { transform: translate(5px, 5px) rotate(5deg); }
    50% { transform: translate(0, 0) rotate(0eg); }
    75% { transform: translate(-5px, 5px) rotate(-5deg); }
    100% { transform: translate(0, 0) rotate(0deg); }
}

@keyframes anchor-shaking {
    0% { transform: translateX(0) }
    30% { transform: translateY(-3px) }
    35% { transform: translateY(-3px) rotate(1deg) }
    45% { transform: translateY(-3px) rotate(-1deg) }
    55% { transform: translateY(-3px) rotate(1deg) }
    65% { transform: translateY(-3px) rotate(-1deg) }
    70% { transform: translateY(-3px) }
    100% { transform: translateY(0) rotate(0) }
}

@keyframes flash-message-shaking {
    0% { transform: translateX(0) }
    30% { transform: translateY(-3px) }
    45% { transform: translateY(-3px) rotate(0.5deg) }
    50% { transform: translateY(-3px) rotate(-0.5deg) }
    55% { transform: translateY(-3px) rotate(0.5deg) }
    60% { transform: translateY(-3px) rotate(-0.5deg) }
    70% { transform: translateY(-3px) }
    100% { transform: translateY(0) rotate(0) }
}

@keyframes vertical-shaking {
    0% { transform: translateY(0) }
    25% { transform: translateY(5px) }
    50% { transform: translateY(-5px) }
    75% { transform: translateY(5px) }
    100% { transform: translateY(0) }
}

@keyframes horizontal-shaking {
    0% { transform: translateX(0) }
    25% { transform: translateX(5px) }
    50% { transform: translateX(-5px) }
    75% { transform: translateX(5px) }
    100% { transform: translateX(0) }
}

@keyframes jump-shaking {
    0% { transform: translateX(0) }
    25% { transform: translateY(-9px) }
    35% { transform: translateY(-9px) rotate(17deg) }
    55% { transform: translateY(-9px) rotate(-17deg) }
    65% { transform: translateY(-9px) rotate(17deg) }
    75% { transform: translateY(-9px) rotate(-17deg) }
    100% { transform: translateY(0) rotate(0) }
}

@keyframes skew-x-shake {
    0% { transform: skewX(-15deg); }
    5% { transform: skewX(15deg); }
    10% { transform: skewX(-15deg); }
    15% { transform: skewX(15deg); }
    20% { transform: skewX(0deg); }
    100% { transform: skewX(0deg); }
}

@keyframes skew-y-shake {
    0% { transform: skewY(-15deg); }
    5% { transform: skewY(15deg); }
    10% { transform: skewY(-15deg); }
    15% { transform: skewY(15deg); }
    20% { transform: skewY(0deg); }
    100% { transform: skewY(0deg); }
}

