/* --- (KEYFRAMES DEFINITIONS) --- */

/* Pop In */
@keyframes wpbingo-pop-in {
    0% { opacity: 0; transform: scale(0.5); }
    70% { transform: scale(1.05); }
    100% { opacity: 1; transform: scale(1); }
}
.wpbingo-pop-in.animated {
    animation-name: wpbingo-pop-in;
}

/* Blur In */
@keyframes wpbingo-blur-in {
    0% { opacity: 0; filter: blur(10px); transform: scale(1.1); }
    100% { opacity: 1; filter: blur(0); transform: scale(1); }
}
.wpbingo-blur-in.animated {
    animation-name: wpbingo-blur-in;
}

/* Move Up */
@keyframes wpbingo-move-up {
    0% { opacity: 0; transform: translateY(100px); }
    100% { opacity: 1; transform: translateY(0); }
}
.wpbingo-move-up.animated {
    animation-name: wpbingo-move-up;
}

/* Move Down */
@keyframes wpbingo-move-down {
    0% { opacity: 0; transform: translateY(-100px); }
    100% { opacity: 1; transform: translateY(0); }
}
.wpbingo-move-down.animated {
    animation-name: wpbingo-move-down;
}

/* Move Left */
@keyframes wpbingo-move-left {
    0% { opacity: 0; transform: translateX(100px); }
    100% { opacity: 1; transform: translateX(0); }
}
.wpbingo-move-left.animated {
    animation-name: wpbingo-move-left;
}

/* Move Right */
@keyframes wpbingo-move-right {
    0% { opacity: 0; transform: translateX(-100px); }
    100% { opacity: 1; transform: translateX(0); }
}
.wpbingo-move-right.animated {
    animation-name: wpbingo-move-right;
}

/* Float — Up and down gently */
.animated.wpbingo-float {
    animation: wpbingo-float 3s ease-in-out infinite;
}
@keyframes wpbingo-float {
    0%, 100% { transform: translateY(0); }
    50%       { transform: translateY(-14px); }
}
 
/* Sway — left and right gently */
.animated.wpbingo-sway {
    animation: wpbingo-sway 3s ease-in-out infinite;
}
@keyframes wpbingo-sway {
    0%, 100% { transform: translateX(0); }
    50%       { transform: translateX(14px); }
}
 
/* Breathe — zoom in/out */
.animated.wpbingo-breathe {
    animation: wpbingo-breathe 3s ease-in-out infinite;
}
@keyframes wpbingo-breathe {
    0%, 100% { transform: scale(1); }
    50%       { transform: scale(1.12); }
}
 
/* Wobble — swaying and gently rotating */
.animated.wpbingo-wobble {
    animation: wpbingo-wobble 4s ease-in-out infinite;
}
@keyframes wpbingo-wobble {
    0%, 100% { transform: rotate(0deg); }
    25%       { transform: rotate(6deg); }
    75%       { transform: rotate(-6deg); }
}
 
/* Drift — move in a circle */
.animated.wpbingo-drift {
    animation: wpbingo-drift 5s ease-in-out infinite;
}
@keyframes wpbingo-drift {
    0%   { transform: translate(0, 0); }
    25%  { transform: translate(10px, -10px); }
    50%  { transform: translate(0, -18px); }
    75%  { transform: translate(-10px, -10px); }
    100% { transform: translate(0, 0); }
}
 
/* Pendulum — rocking like a pendulum */
.animated.wpbingo-pendulum {
    transform-origin: center top;
    animation: wpbingo-pendulum 2.5s cubic-bezier(0.4, 0, 0.6, 1) infinite;
}
@keyframes wpbingo-pendulum {
    0%, 100% { transform: rotate(-12deg); }
    50%       { transform: rotate(12deg); }
}
 
/* Pulse — scale combined with opacity */
.animated.wpbingo-pulse {
    animation: wpbingo-pulse 2.5s ease-in-out infinite;
}
@keyframes wpbingo-pulse {
    0%, 100% { transform: scale(1); opacity: 1; }
    50%       { transform: scale(1.1); opacity: 0.7; }
}
 
/* Orbit — pivot */
.animated.wpbingo-orbit {
    animation: wpbingo-orbit 4s linear infinite;
}
@keyframes wpbingo-orbit {
    from { transform: rotate(0deg) translateX(12px) rotate(0deg); }
    to   { transform: rotate(360deg) translateX(12px) rotate(-360deg); }
}
 
/* Shake — random shaking */
.animated.wpbingo-shake {
    animation: wpbingo-shake 3s ease-in-out infinite;
}
@keyframes wpbingo-shake {
    0%, 100% { transform: translate(0, 0) rotate(0); }
    20%       { transform: translate(-6px, 4px) rotate(-3deg); }
    40%       { transform: translate(6px, -4px) rotate(3deg); }
    60%       { transform: translate(-4px, 6px) rotate(-2deg); }
    80%       { transform: translate(4px, -6px) rotate(2deg); }
}

/* Spin 360° — normal rotation */
.animated.wpbingo-spin {
    animation: wpbingo-spin 5s linear infinite;
}
@keyframes wpbingo-spin {
    from { transform: rotate(0deg); }
    to   { transform: rotate(360deg); }
}
 
/* Spin 360° Slow — slow rotation */
.animated.wpbingo-spin-slow {
    animation: wpbingo-spin 15s linear infinite;
}
 
/* Spin 360° Counter — rotate counterclockwise */
.animated.wpbingo-spin-ccw {
    animation: wpbingo-spin-ccw 5s linear infinite;
}
@keyframes wpbingo-spin-ccw {
    from { transform: rotate(0deg); }
    to   { transform: rotate(-360deg); }
}