/* animations.css — central animation library */

/* Spin Animation */
@keyframes spin_once {
    from { transform: rotate(0deg); }
    to { transform: rotate(360deg); }
}

.spin {
    animation: spin_once 0.5s ease;
    animation-fill-mode: forwards;
    /* Prevent transitions from interfering */
    transition: none !important;
}


/* Jelly Animation */
@keyframes jelly {
    0%   { transform: scale(1); }
    20%  { transform: scale(1.15, 0.85); }
    50%  { transform: scale(0.9, 1.1); }
    80%  { transform: scale(1.05, 0.95); }
    100% { transform: scale(1.1); }
}

.jelly {
    animation: jelly 0.5s ease;
    animation-fill-mode: forwards;
}

/* Hover Pop Animation */
@keyframes hover_pop {
    0%   { transform: scale(1); }
    100% { transform: scale(1.2); }
}

.pop {
    animation: hover_pop 0.5s ease forwards;
}


/* Optional: fade-in utility */
@keyframes fade_in {
    from { opacity: 0; }
    to   { opacity: 1; }
}

.fade_in {
    animation: fade_in 0.5s ease;
}


/* Contact form animation */
@keyframes slide_in {
    from { transform: translateY(-200px); opacity: 0; }
    to { transform: translateY(0); opacity: 1; }
}

@keyframes slide_out {
    from { transform: translateY(0); opacity: 1; }
    to { transform: translateY(-200px); opacity: 0; }
}

.slide_up {
    animation: slide_in 0.5s ease forwards;
}

.slide_down {
    animation: slide_out 0.5s ease forwards;
}

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

.shake {
    animation: shake 0.5s;
}
