/* TEXT MICRO-ANIMATIONS: Shared CSS for scroll-triggered text animations */
/* This file serves as the single source of truth for all text animations across the site */

/* Base animation properties */
.fade-in-up {
    opacity: 0;
    transform: translateY(20px);
    transition: opacity 0.5s ease-out, transform 0.5s ease-out;
}

.fade-in-up.animate {
    opacity: 1;
    transform: translateY(0);
}

.stagger-item {
    opacity: 0;
    transform: translateY(20px);
    transition: opacity 0.5s ease-out, transform 0.5s ease-out;
    background: inherit;
}

.stagger-item.animate {
    opacity: 1;
    transform: translateY(0);
}

.bg-pattern {
    opacity: 0;
    transform: translateY(20px);
    transition: opacity 0.5s ease-out, transform 0.5s ease-out;
}

.bg-pattern.animate {
    opacity: 1;
    transform: translateY(0);
}

/* HERO H1 RESPONSIVE SCALING: Ensures long titles fit on mobile without overflow */
.font-inter.font-bold.text-4xl.md\\:text-6xl {
    font-size: clamp(2rem, 5.5vw, 3.75rem); /* 32px to 60px */
    line-height: 1.1;
    overflow-wrap: anywhere;
    text-wrap: balance;
}

/* Accessibility: Respect reduced motion */
@media (prefers-reduced-motion: reduce) {
    .fade-in-up,
    .stagger-item,
    .bg-pattern {
        transition: none;
        opacity: 1;
        transform: none;
    }
    
    .font-inter.font-bold.text-4xl.md\\:text-6xl {
        font-size: 2rem; /* Fixed size for reduced motion */
    }
}

/* Utility classes for disabling animations per block */
.no-reveal {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
}

.no-reveal.animate {
    opacity: 1 !important;
    transform: none !important;
}
