/**
 * Mode performance : PC sans accélération GPU / rendu logiciel.
 * Activé via performance.js (classe html.perf-lite).
 */

/* Pas de backdrop-filter : repaint CPU très coûteux */
html.perf-lite *,
html.perf-lite *::before,
html.perf-lite *::after {
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
}

/* Surfaces opaques à la place du verre */
html.perf-lite body.glass-theme .navbar,
html.perf-lite body.glass-theme .search-container,
html.perf-lite .mobile-bottom-nav,
html.perf-lite body.glass-theme .meme-card,
html.perf-lite body.glass-theme .filter-widget-panel,
html.perf-lite body.glass-theme .discord-connect,
html.perf-lite body.glass-theme .search-btn,
html.perf-lite .glass-panel,
html.perf-lite body.glass-theme .guidelines-content,
html.perf-lite body.glass-theme .error-container {
    background: rgba(12, 14, 22, 0.96) !important;
}

/* Cartes catégorie : garder les images de fond, couper seulement le blur glass */
html.perf-lite body.glass-theme .category-card,
html.perf-lite body.glass-theme .categories-grid .category-item {
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
}

html.perf-lite body.glass-theme .meme-card:hover,
html.perf-lite body.glass-theme .category-card:hover {
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.35) !important;
}

/* Animations décoratives off */
html.perf-lite .hero-particles,
html.perf-lite .hero-glow,
html.perf-lite .particle-bg,
html.perf-lite .floating-card,
html.perf-lite section.hero *,
html.perf-lite .stat-card,
html.perf-lite .trending-item {
    animation: none !important;
    transform: none !important;
}

html.perf-lite .hero-particles {
    display: none !important;
}

html.perf-lite .hero-glow {
    opacity: 0.35 !important;
}

/* NSFW : overlay sombre au lieu de filter:blur sur l'image */
html.perf-lite .meme-image-container .nsfw-shield,
html.perf-lite .meme-card .nsfw-shield {
    position: relative;
    display: block;
    width: 100%;
    min-height: 200px;
}

html.perf-lite .nsfw-shield > :not(.nsfw-overlay) {
    filter: none !important;
    transform: none !important;
}

html.perf-lite .nsfw-shield:not(.revealed) > :not(.nsfw-overlay) {
    position: absolute;
    width: 1px;
    height: 1px;
    opacity: 0 !important;
    visibility: hidden;
    pointer-events: none;
    overflow: hidden;
}

html.perf-lite .nsfw-overlay {
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    background: rgba(0, 0, 0, 0.88) !important;
    position: absolute;
    inset: 0;
    z-index: 5;
}

/* Scroll : ne pas animer chaque carte à l'entrée viewport */
html.perf-lite .animate-on-scroll,
html.perf-lite .category-card,
html.perf-lite .stat-card,
html.perf-lite .trending-item {
    animation: none !important;
    transition: none !important;
    opacity: 1 !important;
    transform: none !important;
}

/* Grille : ne peindre que ce qui est visible */
html.perf-lite .meme-card,
html.perf-lite .meme-card-v2,
html.perf-lite body.glass-theme .meme-card {
    content-visibility: auto;
    contain-intrinsic-size: 280px 360px;
    contain: layout style paint;
}

html.perf-lite .memes-grid,
html.perf-lite #memesGrid {
    contain: layout style;
}

/* Pas de drop-shadow animé au survol */
html.perf-lite .floating-card,
html.perf-lite .category-card,
html.perf-lite .meme-card {
    filter: none !important;
}

/* Titres : pas de glow animé */
html.perf-lite .hero-title,
html.perf-lite .category-title,
html.perf-lite .title-gradient {
    animation: none !important;
    text-shadow: none !important;
}

/* Spinners de chargement conservés */
html.perf-lite .fa-spin,
html.perf-lite .memes-loading::after {
    animation-duration: 1s !important;
    animation-iteration-count: infinite !important;
}
