/* Smooth transitions */
.md-fade-in {
    opacity: 0;
    animation: fadeIn 0.5s ease forwards;
}

@keyframes fadeIn {
    from { opacity: 0; transform: translateY(20px); }
    to { opacity: 1; transform: translateY(0); }
}

/* Button hover effects */
.md-button {
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.md-button:hover {
    transform: translateY(-2px);
    box-shadow: var(--md-elevation-2);
}

/* Card hover animations */
.md-card {
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.md-card:hover {
    transform: translateY(-4px);
    box-shadow: var(--md-elevation-3);
}

/* Stats number counting animation */
.md-stats-number {
    animation: countUp 2s ease-out forwards;
}

@keyframes countUp {
    from { opacity: 0; transform: translateY(10px); }
    to { opacity: 1; transform: translateY(0); }
}

@keyframes slideIn {
    from {
        transform: translateX(-100%);
        opacity: 0;
    }
    to {
        transform: translateX(0);
        opacity: 1;
    }
}

@keyframes fadeInUp {
    from {
        transform: translateY(20px);
        opacity: 0;
    }
    to {
        transform: translateY(0);
        opacity: 1;
    }
}

.animate-slide-in {
    animation: slideIn 0.6s ease-out forwards;
}

.animate-fade-up {
    animation: fadeInUp 0.6s ease-out forwards;
}

.stat-card,
.event-card,
.testimonial-card {
    transition: transform 0.2s ease;
}

.stat-card:hover,
.event-card:hover,
.testimonial-card:hover {
    transform: translateY(-2px);
}