/* ============================================================================
   Animation Styles
   Keyframes and animation classes for the game
   ============================================================================ */

/* Popup fade in/out animations */
@keyframes popupFadeIn {
    from {
        opacity: 0;
        transform: translateY(-10px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

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

/* General fade animations */
.fade-in {
    animation: fadeIn 0.5s ease-in;
}

@keyframes fadeIn {
    from {
        opacity: 0;
    }
    to {
        opacity: 1;
    }
}

.fade-out {
    animation: fadeOut 0.5s ease-out;
}

@keyframes fadeOut {
    from {
        opacity: 1;
    }
    to {
        opacity: 0;
    }
}

/* Spinning gear animation for game status icon */
@keyframes spin-gear {
    from {
        transform: rotate(0deg);
    }
    to {
        transform: rotate(360deg);
    }
}

/* ============================================================================
   Action Animation Styles (for in-place animations like rotate, pulse)
   ============================================================================ */

/* Spin animation for action elements */
@keyframes spin {
    from {
        transform: rotate(0deg);
    }
    to {
        transform: rotate(360deg);
    }
}

/* Pulse animation for action elements */
@keyframes pulse {
    0%, 100% {
        transform: scale(1);
        opacity: 1;
    }
    50% {
        transform: scale(1.3);
        opacity: 0.7;
    }
}

/* Base styling for action animation elements */
.animation-action {
    display: inline-block;
    text-align: center;
}

.animation-action-rotate {
    animation-timing-function: linear;
}

.animation-action-pulse {
    animation-timing-function: ease-in-out;
}
