/* Global Animations */

@keyframes rotation {
    0% { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
}

@keyframes spin {
    from { transform: rotate(0deg); }
    to { transform: rotate(360deg); }
}

.spinner {
    width: 48px;
    height: 48px;
    border: 5px solid var(--border-color);
    border-bottom-color: var(--primary-color);
    border-radius: 50%;
    display: inline-block;
    box-sizing: border-box;
    animation: rotation 1s linear infinite;
}

@keyframes modalSlide {
    from { transform: translateY(20px); opacity: 0; }
    to { transform: translateY(0); opacity: 1; }
}

@keyframes pulse-gold-delicate {
    0% {
        box-shadow: 0 0 8px rgba(255, 202, 40, 0.3);
        border-color: rgba(255, 202, 40, 0.5);
    }
    50% {
        box-shadow: 0 0 16px rgba(255, 202, 40, 0.6);
        border-color: rgba(255, 202, 40, 0.9);
    }
    100% {
        box-shadow: 0 0 8px rgba(255, 202, 40, 0.3);
        border-color: rgba(255, 202, 40, 0.5);
    }
}

@keyframes pulse-nuclear {
    0% { transform: scale(1); opacity: 0.4; }
    50% { transform: scale(2.5); opacity: 0.2; }
    100% { transform: scale(1); opacity: 0.4; }
}

@keyframes pulse-gold-svg {
    0% { stroke-width: 6px; filter: drop-shadow(0 0 5px rgba(255, 215, 0, 0.5)); }
    50% { stroke-width: 12px; filter: drop-shadow(0 0 30px rgba(255, 215, 0, 1)); }
    100% { stroke-width: 6px; filter: drop-shadow(0 0 5px rgba(255, 215, 0, 0.5)); }
}

@keyframes pulse-gold {
    0% { transform: scale(1); box-shadow: 0 0 10px rgba(255, 215, 0, 0.4); }
    50% { transform: scale(1.05); box-shadow: 0 0 30px rgba(255, 215, 0, 0.8); }
    100% { transform: scale(1); box-shadow: 0 0 10px rgba(255, 215, 0, 0.4); }
}

@keyframes shake {
    10%, 90% { transform: translate3d(-1px, 0, 0); }
    20%, 80% { transform: translate3d(2px, 0, 0); }
    30%, 50%, 70% { transform: translate3d(-4px, 0, 0); }
    40%, 60% { transform: translate3d(4px, 0, 0); }
}

@keyframes pulse-gold-fill {
    0% { fill-opacity: 0.3; transform: scale(1); }
    50% { fill-opacity: 0.6; transform: scale(1.1); }
    100% { fill-opacity: 0.3; transform: scale(1); }
}
