/* ============================================================================
 * perf-boost.css v1.0 — Capa de RENDIMIENTO (v51)
 * © 2005-2026 Rolando Cabrera — Todos los derechos reservados.
 * ----------------------------------------------------------------------------
 * Optimizaciones de render sin cambiar el diseño:
 *  1. content-visibility: auto en secciones → el navegador NO pinta lo que
 *     está fuera de pantalla (mejora dramática de First Paint y scroll).
 *  2. contain-intrinsic-size reserva altura estimada → sin saltos de scroll.
 *  3. GPU hints solo donde hay animación constante.
 *  4. Reducción de coste de backdrop-filter en móvil.
 * ========================================================================= */

/* 1-2. Render diferido de secciones bajo el pliegue */
.sub-section,
.vg-section,
.whatsapp-cta-section {
    content-visibility: auto;
    contain-intrinsic-size: auto 720px;
}

/* El hero SIEMPRE se pinta de inmediato (es el LCP) */
.sub-hero,
.welcome-hero {
    content-visibility: visible;
    contain-intrinsic-size: none;
}

/* Footers: diferidos con estimación pequeña */
.sub-footer,
.vng-footer {
    content-visibility: auto;
    contain-intrinsic-size: auto 160px;
}

/* 3. Las imágenes de galería decodifican async sin bloquear el hilo */
.gallery-item img,
.video-card img,
.cv-spec-card img {
    content-visibility: auto;
}

/* 4. Móvil: backdrop-filter es carísimo en GPUs modestas → se reduce blur.
      Se mantiene el vidrio pero con la mitad de radio (imperceptible). */
@media (max-width: 640px) {
    .f5-dock,
    .f5-modal,
    .audio-player,
    .sub-header {
        -webkit-backdrop-filter: blur(8px);
        backdrop-filter: blur(8px);
    }
    /* El grano cinematográfico consume repintados en móvil: fuera */
    .up2-grain { display: none !important; }
}

/* Dispositivos que piden menos movimiento: sin partículas de fondo */
@media (prefers-reduced-motion: reduce) {
    .particle-canvas { display: none !important; }
}
