/**
 * Optimisations CSS globales
 * Ce fichier contient des optimisations CSS pour améliorer la fluidité et les performances du site
 */

/* Optimisations générales pour la performance */
html {
    scroll-behavior: smooth;
    text-size-adjust: 100%;
    -webkit-text-size-adjust: 100%;
    overflow-x: hidden;
}

/* Améliorations du rendu des polices */
body {
    text-rendering: optimizeSpeed;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

/* Optimisation des animations pour la GPU */
.btn, .vitrine-btn, [class*="-btn"], 
.navbar, .vitrine-item, .social-link, 
.footer-links a, .feature-column, 
.landing-card, .construction-container {
    will-change: transform;
    backface-visibility: hidden;
    transform: translateZ(0);
}

/* Optimisations pour le chargement des images */
img, video {
    content-visibility: auto;
}

img.smooth-image {
    opacity: 0;
    transition: opacity 0.3s;
}

img.smooth-image.loaded {
    opacity: 1;
}

/* Optimisation du chargement des polices */
.fonts-loading {
    font-display: swap;
}

.fonts-loaded {
    /* Une fois que les polices sont chargées, on peut activer le lissage */
    font-smooth: always;
}

/* Désactivation des effets pendant le défilement pour économiser des ressources */
.is-scrolling * {
    animation-play-state: paused !important;
    transition: none !important;
}

.is-scrolling .btn:hover,
.is-scrolling .vitrine-btn:hover,
.is-scrolling [class*="-btn"]:hover,
.is-scrolling .footer-links a:hover,
.is-scrolling .social-link:hover {
    transform: none !important;
}

/* Amélioration du débit de rendu des transitions */
@media screen and (min-width: 768px) {
    .btn, .vitrine-btn, [class*="-btn"] {
        transition: transform 0.15s cubic-bezier(0.33, 1, 0.68, 1),
                    background-color 0.2s ease-out,
                    color 0.2s ease-out;
    }
    
    .vitrine-item, .social-link, .footer-links a {
        transition: transform 0.2s cubic-bezier(0.33, 1, 0.68, 1),
                    box-shadow 0.3s ease;
    }
}

/* Optimisations pour les appareils à faible puissance ou batterie faible */
@media (prefers-reduced-motion), (prefers-reduced-data) {
    * {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
        scroll-behavior: auto !important;
    }
    
    img {
        transform: none !important;
    }
}

/* Optimisation du défilement */
.scroll-behavior-auto {
    scroll-behavior: auto !important;
} 