@keyframes logo-appear {
    0% {
        opacity: 0;
        transform: scale(0.5) translateY(30px);
    }
    100% {
        opacity: 1;
        transform: scale(1) translateY(0);
    }
}

@keyframes logo-float {
    0%, 100% {
        transform: translateY(0);
    }
    50% {
        transform: translateY(-10px);
    }
}

@keyframes divider-expand {
    0% {
        width: 0;
        opacity: 0;
    }
    100% {
        width: 80px;
        opacity: 1;
    }
}

@keyframes text-reveal {
    0% {
        opacity: 0;
        letter-spacing: 30px;
    }
    100% {
        opacity: 1;
        letter-spacing: 12px;
    }
}

@keyframes subtitle-glow {
    0% {
        opacity: 0;
        transform: translateY(20px);
    }
    100% {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes fade-in {
    0% { opacity: 0; }
    100% { opacity: 1; }
}

@keyframes sand-deplete {
    0%, 5% {
        clip-path: polygon(0% 0%, 100% 0%, 50% 100%);
    }
    95%, 100% {
        clip-path: polygon(0% 90%, 100% 90%, 50% 100%);
    }
}

@keyframes sand-fill {
    0%, 5% {
        height: 0;
        opacity: 0;
    }
    95%, 100% {
        height: 50px;
        opacity: 1;
    }
}

@keyframes stream-pour {
    0%, 100% {
        opacity: 1;
        height: 16px;
    }
    48%, 52% {
        opacity: 0;
        height: 0;
    }
}

@keyframes drip-fall {
    0% {
        transform: translateX(-50%) translateY(0);
        opacity: 1;
    }
    8% {
        transform: translateX(-50%) translateY(14px);
        opacity: 1;
    }
    9% {
        transform: translateX(-50%) translateY(14px);
        opacity: 0;
    }
    100% {
        opacity: 0;
    }
}

@keyframes pile-grow {
    0%, 5% {
        opacity: 0;
        transform: translateX(-50%) scale(0.3);
    }
    50% {
        opacity: 0.8;
        transform: translateX(-50%) scale(1);
    }
    95%, 100% {
        opacity: 0;
        transform: translateX(-50%) scale(0.3);
    }
}

@keyframes glow-pulse {
    0%, 100% {
        transform: translate(-50%, -50%) scale(1);
        opacity: 0.5;
    }
    50% {
        transform: translate(-50%, -50%) scale(1.2);
        opacity: 1;
    }
}