/* Animation Keyframes */

@keyframes drift {
    0% {
        transform: translate(0, 0) scale(1);
    }

    33% {
        transform: translate(10%, 15%) scale(1.1);
    }

    66% {
        transform: translate(-5%, 8%) scale(0.9);
    }

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

@keyframes shine {
    to {
        background-position: 200% center;
    }
}

/* Scroll Reveal Utility Classes (Controlled via JS) */
.reveal {
    opacity: 0;
    transform: translateY(40px);
    transition: all 1s cubic-bezier(0.16, 1, 0.3, 1);
}

.reveal.active {
    opacity: 1;
    transform: translateY(0);
}

.reveal-delay-1 {
    transition-delay: 100ms;
}

.reveal-delay-2 {
    transition-delay: 200ms;
}

.reveal-delay-3 {
    transition-delay: 300ms;
}

.reveal-delay-4 {
    transition-delay: 400ms;
}

/* Staggered Children Reveal */
.reveal-stagger>* {
    opacity: 0;
    transform: translateY(30px);
    transition: all 0.8s cubic-bezier(0.16, 1, 0.3, 1);
}

.reveal-stagger.active>*:nth-child(1) {
    opacity: 1;
    transform: translateY(0);
    transition-delay: 100ms;
}

.reveal-stagger.active>*:nth-child(2) {
    opacity: 1;
    transform: translateY(0);
    transition-delay: 200ms;
}

.reveal-stagger.active>*:nth-child(3) {
    opacity: 1;
    transform: translateY(0);
    transition-delay: 300ms;
}

.reveal-stagger.active>*:nth-child(4) {
    opacity: 1;
    transform: translateY(0);
    transition-delay: 400ms;
}

/* Scale Reveal */
.reveal-scale {
    opacity: 0;
    transform: scale(0.9);
    transition: all 1s cubic-bezier(0.16, 1, 0.3, 1);
}

.reveal-scale.active {
    opacity: 1;
    transform: scale(1);
}