@keyframes spin {
    0% {
        transform: rotate(0deg);
    }

    100% {
        transform: rotate(360deg);
    }
}

@keyframes pulse-accent {
    0% {
        transform: scale(1);
        opacity: 0.8;
    }

    70% {
        transform: scale(1.05);
        opacity: 1;
    }

    100% {
        transform: scale(1);
        opacity: 0.8;
    }
}

@keyframes pulse-danger {
    0% {
        opacity: 0.8;
    }

    70% {
        opacity: 1;
    }

    100% {
        opacity: 0.8;
    }
}

@keyframes cardEntrance {
    from {
        opacity: 0;
        transform: translateY(20px) scale(0.95);
    }

    to {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

@keyframes wiggle {

    0%,
    100% {
        transform: translateX(0);
    }

    25% {
        transform: translateX(-15px);
    }

    50% {
        transform: translateX(15px);
    }

    75% {
        transform: translateX(-15px);
    }
}

@keyframes ripple-animation {
    from {
        transform: scale(0);
        opacity: 0.6;
    }

    to {
        transform: scale(12);
        opacity: 0;
    }
}

@keyframes fadeIn {
    from {
        opacity: 0;
        transform: translateY(10px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes slideIn {
    from {
        opacity: 0;
        transform: translateX(-10px);
    }

    to {
        opacity: 1;
        transform: translateX(0);
    }
}

@keyframes popUp {
    from {
        transform: translate(-50%, 100px);
        opacity: 0;
    }

    to {
        transform: translate(-50%, 0);
        opacity: 1;
    }
}

@keyframes pulse-border {
    0% {
        border-color: var(--accent-color);
        box-shadow: 0 0 0 0 rgba(56, 189, 248, 0.7);
    }

    70% {
        border-color: var(--accent-color);
        box-shadow: 0 0 0 10px rgba(56, 189, 248, 0);
    }

    100% {
        border-color: var(--border-color);
        box-shadow: 0 0 0 0 rgba(56, 189, 248, 0);
    }
}

.pulse-primary {
    animation: pulse-accent 2s infinite;
}

.pulse-danger-ring {
    animation: pulse-danger 2s infinite;
}

.entrance-anim {
    animation: cardEntrance 0.4s cubic-bezier(0.2, 0.8, 0.2, 1.2) forwards;
}

.wiggle-hint {
    animation: wiggle 0.6s ease-in-out;
}

.highlight-pulse {
    animation: pulse-border 2s infinite;
    border-color: var(--accent-color);
}
