@keyframes breatheFog {
    0%, 100% {
        transform: translateX(-2%);
        filter: blur(2px);
    }
    50% {
        transform: translateX(2%);
        filter: blur(5px);
    }
}

@keyframes driftCloud {
    0%, 100% {
        transform: translateX(-18px);
    }
    50% {
        transform: translateX(42px);
    }
}

@keyframes twinkle {
    0%, 100% {
        opacity: 0.25;
        transform: scale(0.8);
    }
    50% {
        opacity: 1;
        transform: scale(1.18);
    }
}

@keyframes smokeRise {
    0% {
        transform: translateY(60px) scale(0.55);
        opacity: 0;
    }
    25% {
        opacity: 0.72;
    }
    100% {
        transform: translateY(-120px) translateX(36px) scale(1.55);
        opacity: 0;
    }
}

@keyframes bellRing {
    0%, 100% {
        transform: rotate(0deg);
    }
    15% {
        transform: rotate(-14deg);
    }
    32% {
        transform: rotate(13deg);
    }
    50% {
        transform: rotate(-9deg);
    }
    72% {
        transform: rotate(7deg);
    }
}

@keyframes gentleFloat {
    0%, 100% {
        transform: translateY(0);
    }
    50% {
        transform: translateY(8px);
    }
}

@keyframes enterGlow {
    0% {
        opacity: 0;
        transform: scale(0.94);
    }
    70% {
        opacity: 1;
    }
    100% {
        opacity: 1;
        transform: scale(1.04);
    }
}

@keyframes flame {
    0%, 100% {
        transform: scaleY(0.92) rotate(-3deg);
        opacity: 0.82;
    }
    50% {
        transform: scaleY(1.08) rotate(4deg);
        opacity: 1;
    }
}

@keyframes hearthGlow {
    0%, 100% {
        filter: brightness(0.96) saturate(1);
        box-shadow:
            0 0 46px rgba(255, 132, 40, 0.4),
            inset 0 0 22px rgba(0, 0, 0, 0.58);
    }
    50% {
        filter: brightness(1.12) saturate(1.12);
        box-shadow:
            0 0 68px rgba(255, 158, 58, 0.54),
            inset 0 0 18px rgba(0, 0, 0, 0.5);
    }
}

@keyframes emberPulse {
    0%, 100% {
        opacity: 0.42;
        transform: scale(0.96);
    }
    50% {
        opacity: 0.72;
        transform: scale(1.06);
    }
}

@keyframes catBreathe {
    0%, 100% {
        transform: translateY(0) scaleY(1);
    }
    50% {
        transform: translateY(2px) scaleY(0.98);
    }
}
