/* ============================================
   내온섯사이 — Animation Keyframes
   ============================================ */

/* Fade In Up */
@keyframes fadeInUp {
    from {
        opacity: 0;
        transform: translateY(30px);
    }

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

@keyframes fadeInDown {
    from {
        opacity: 0;
        transform: translateY(-20px);
    }

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

@keyframes fadeIn {
    from {
        opacity: 0;
    }

    to {
        opacity: 1;
    }
}

/* Scale */
@keyframes scaleIn {
    from {
        opacity: 0;
        transform: scale(0.9);
    }

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

/* Pulse */
@keyframes pulse {

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

    50% {
        opacity: 0.7;
        transform: scale(1.1);
    }
}

@keyframes pulseGlow {

    0%,
    100% {
        box-shadow: 0 0 0 0 rgba(255, 107, 53, 0.3);
    }

    50% {
        box-shadow: 0 0 0 12px rgba(255, 107, 53, 0);
    }
}

/* Spin */
@keyframes spinSlow {
    from {
        transform: rotate(0deg);
    }

    to {
        transform: rotate(360deg);
    }
}

/* Float */
@keyframes float {

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

    50% {
        transform: translateY(-10px);
    }
}

/* Ken Burns */
@keyframes kenBurns {
    0% {
        transform: scale(1);
    }

    100% {
        transform: scale(1.08);
    }
}

/* Line draw */
@keyframes drawLine {
    from {
        stroke-dashoffset: 1000;
    }

    to {
        stroke-dashoffset: 0;
    }
}

/* Typing cursor */
@keyframes blink {

    0%,
    50% {
        border-color: var(--accent);
    }

    51%,
    100% {
        border-color: transparent;
    }
}

/* Scroll indicator */
@keyframes scrollBounce {

    0%,
    20%,
    50%,
    80%,
    100% {
        transform: translateY(0) translateX(-50%);
    }

    40% {
        transform: translateY(8px) translateX(-50%);
    }

    60% {
        transform: translateY(4px) translateX(-50%);
    }
}

/* Shimmer loading */
@keyframes shimmer {
    0% {
        background-position: -200% 0;
    }

    100% {
        background-position: 200% 0;
    }
}

/* Counter glow */
@keyframes counterGlow {
    0% {
        text-shadow: 0 0 0 rgba(255, 107, 53, 0);
    }

    50% {
        text-shadow: 0 0 20px rgba(255, 107, 53, 0.3);
    }

    100% {
        text-shadow: 0 0 0 rgba(255, 107, 53, 0);
    }
}