/* Animations AOS personnalisées pour une meilleure fluidité */

/* Easing personnalisé pour des transitions plus fluides */
[data-aos] {
    transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1) !important;
    will-change: transform, opacity;
}

/* Animation séquentielle fluide */
[data-aos]:not(.aos-animate) {
    transform: translateY(30px);
    opacity: 0;
}

[data-aos].aos-animate {
    transform: translateY(0);
    opacity: 1;
}

/* Optimisation des performances */
[data-aos="fade-up"],
[data-aos="fade-down"],
[data-aos="fade-left"],
[data-aos="fade-right"] {
    backface-visibility: hidden;
    transform-style: preserve-3d;
}

/* Transitions personnalisées pour certains éléments */
.text-reveal-mask {
    overflow: hidden;
}

.reveal-text {
    transform: translateY(100%);
    transition: transform 0.8s cubic-bezier(0.4, 0, 0.2, 1);
}

.aos-animate .reveal-text {
    transform: translateY(0);
}

/* Animation pour les SVG */
[data-aos="fade-down"] svg {
    transform-origin: center;
}

/* Amélioration des animations de zoom */
[data-aos="zoom-in"] {
    transform-origin: center;
}

/* Smooth scrolling global */
html {
    scroll-behavior: smooth;
}

/* Performance optimizations */
* {
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

/* Réduction du motion pour les utilisateurs qui le préfèrent */
@media (prefers-reduced-motion: reduce) {
    [data-aos] {
        animation: none !important;
        transition: none !important;
    }

    html {
        scroll-behavior: auto;
    }
}

/* Amélioration de la fluidité pour les appareils mobiles */
@media (max-width: 768px) {
    [data-aos] {
        transition-duration: 0.6s !important;
    }
}
