@layer utilities {
    .text-balance {
        text-wrap: balance;
    }

    /* Scroll Reveal Animation Utilities */
    .reveal-invisible {
        opacity: 0;
        transform: translateY(30px);
        transition: opacity 0.8s cubic-bezier(0.16, 1, 0.3, 1),
            transform 0.8s cubic-bezier(0.16, 1, 0.3, 1);
        will-change: opacity, transform;
    }

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

    /* Stagger Delays */
    .delay-100 {
        transition-delay: 100ms;
    }

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

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

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

    .delay-500 {
        transition-delay: 500ms;
    }
}