/* ============================================================
   LA AVENTURA DEL SABER — RENDIMIENTO · ESTABLE 1.0
   Reglas globales de composición. No elimina animaciones del avatar:
   en modo equilibrado simplifica únicamente los filtros dinámicos.
   ============================================================ */

/* Blur sobre escenas animadas fuerza repintados grandes. */
.introduccionV3,
.fondoNuevoPerfilV3,
.fondoConfiguracionV1 {
    -webkit-backdrop-filter: none !important;
    backdrop-filter: none !important;
}

/* Al quedar cubierto por una ventana grande, el contenido subyacente no
   necesita seguir animando efectos de avatar. Al cerrar, se reanudan. */
body.introV6Abierta .pantalla:not(.oculto) [class*="efectoAvatar-"],
body.configuracionJuegoAbiertaV7 .pantalla:not(.oculto) [class*="efectoAvatar-"] {
    animation-play-state: paused !important;
}

/* Los modos equilibrado/económico preservan los efectos y las animaciones,
   pero evitan recalcular filter/hue-rotate en cada frame. */
body[data-rendimiento="equilibrado"] [class*="efectoAvatar-brillo"],
body[data-rendimiento="equilibrado"] [class*="efectoAvatar-pulso"],
body[data-rendimiento="equilibrado"] [class*="efectoAvatar-destello"],
body[data-rendimiento="equilibrado"] [class*="efectoAvatar-fuego"],
body[data-rendimiento="equilibrado"] [class*="efectoAvatar-llamas"],
body[data-rendimiento="equilibrado"] [class*="efectoAvatar-hielo"],
body[data-rendimiento="equilibrado"] [class*="efectoAvatar-cristal"],
body[data-rendimiento="equilibrado"] [class*="efectoAvatar-electricidad"],
body[data-rendimiento="equilibrado"] [class*="efectoAvatar-agua"],
body[data-rendimiento="equilibrado"] [class*="efectoAvatar-naturaleza"],
body[data-rendimiento="equilibrado"] [class*="efectoAvatar-energia"],
body[data-rendimiento="equilibrado"] [class*="efectoAvatar-luces"],
body[data-rendimiento="equilibrado"] [class*="efectoAvatar-estrellas"],
body[data-rendimiento="equilibrado"] [class*="efectoAvatar-halo"],
body[data-rendimiento="equilibrado"] [class*="efectoAvatar-nebulosa"],
body[data-rendimiento="equilibrado"] [class*="efectoAvatar-arcoiris"],
body[data-rendimiento="equilibrado"] [class*="efectoAvatar-aurora"],
body[data-rendimiento="equilibrado"] [class*="efectoAvatar-particulas"],
body[data-rendimiento="equilibrado"] [class*="efectoAvatar-rayos"],
body[data-rendimiento="equilibrado"] [class*="efectoAvatar-brasas"] {
    animation-name: avatarEfectoLigeroEstable !important;
    animation-duration: 2.8s !important;
    animation-timing-function: ease-in-out !important;
    animation-iteration-count: infinite !important;
    filter: brightness(1.06) saturate(1.08) !important;
    will-change: transform, opacity;
}

body[data-rendimiento="economico"] [class*="efectoAvatar-"] {
    animation-name: avatarEfectoEconomicoEstable !important;
    animation-duration: 3.4s !important;
    animation-timing-function: ease-in-out !important;
    animation-iteration-count: infinite !important;
    filter: none !important;
    will-change: transform, opacity;
}

/* Efectos puramente cinéticos conservan su identidad incluso en modos bajos. */
body[data-rendimiento="equilibrado"] .efectoAvatar-flotar,
body[data-rendimiento="equilibrado"] .efectoAvatar-rebote,
body[data-rendimiento="economico"] .efectoAvatar-flotar,
body[data-rendimiento="economico"] .efectoAvatar-rebote {
    animation-name: avatarFlotarEstable !important;
    filter: none !important;
}

@keyframes avatarEfectoLigeroEstable {
    0%,100% { opacity:.96; transform:translate3d(0,0,0) scale(1); }
    50% { opacity:1; transform:translate3d(0,-1px,0) scale(1.006); }
}
@keyframes avatarEfectoEconomicoEstable {
    0%,100% { opacity:.97; transform:translate3d(0,0,0); }
    50% { opacity:1; transform:translate3d(0,-1px,0); }
}
@keyframes avatarFlotarEstable {
    0%,100% { transform:translate3d(0,0,0); }
    50% { transform:translate3d(0,-3px,0); }
}

/* Sin pestaña visible no se necesita gastar ciclos de animación. */
body.rendimientoPausado *,
body.rendimientoPausado *::before,
body.rendimientoPausado *::after {
    animation-play-state: paused !important;
}

/* ============================================================
   COMPATIBILIDAD CON EFECTOS HISTÓRICOS DE ROPA / DISFRACES
   En equilibrado siguen animados, pero sin filter recalculado por frame.
   ============================================================ */
body[data-rendimiento="equilibrado"] [class*="animacion-ropa_"] .capaImagenAvatar-ropa,
body[data-rendimiento="equilibrado"] [class*="animacion-disfraz_"] .capaImagenAvatar-disfraz,
body[data-rendimiento="economico"] [class*="animacion-ropa_"] .capaImagenAvatar-ropa,
body[data-rendimiento="economico"] [class*="animacion-disfraz_"] .capaImagenAvatar-disfraz {
    animation-name: avatarEfectoLigeroEstable !important;
    animation-duration: 3s !important;
    animation-timing-function: ease-in-out !important;
    animation-iteration-count: infinite !important;
    filter: none !important;
    will-change: transform, opacity !important;
}

/* Marco maestro: conserva vida sin animar box-shadow en cada frame. */
body[data-rendimiento="equilibrado"] .marco_avatar_maestro,
body[data-rendimiento="economico"] .marco_avatar_maestro {
    animation: marcoMaestroLigeroEstable 3.4s ease-in-out infinite !important;
    box-shadow: 0 0 10px rgba(245,216,82,.62) !important;
    will-change: transform, opacity;
}
@keyframes marcoMaestroLigeroEstable {
    0%,100% { transform:translateZ(0) scale(1); opacity:.96; }
    50% { transform:translateZ(0) scale(1.006); opacity:1; }
}

/* El fondo de estrellas del carnet conserva movimiento en modo completo.
   En equilibrado/económico cambia a una respiración compositada. */
body[data-rendimiento="equilibrado"] #pantallaPerfilJugador.perfilMejoraPremium2 .carnetAventurero::before,
body[data-rendimiento="economico"] #pantallaPerfilJugador.perfilMejoraPremium2 .carnetAventurero::before {
    animation: perfilEstrellasLigeroEstable 4.8s ease-in-out infinite !important;
    will-change: opacity, transform;
}
@keyframes perfilEstrellasLigeroEstable {
    0%,100% { opacity:.62; transform:translateZ(0) scale(1); }
    50% { opacity:.88; transform:translateZ(0) scale(1.012); }
}

body[data-rendimiento="equilibrado"] #pantallaPerfilJugador.perfilMejoraPremium3 .carnetAventurero,
body[data-rendimiento="economico"] #pantallaPerfilJugador.perfilMejoraPremium3 .carnetAventurero {
    animation: perfilMaestroLigeroEstable 3.4s ease-in-out infinite !important;
    filter:none !important;
    will-change:transform, opacity;
}
@keyframes perfilMaestroLigeroEstable {
    0%,100% { transform:translateZ(0); opacity:.985; }
    50% { transform:translate3d(0,-1px,0); opacity:1; }
}

/* No reservar capas de composición para ropa/disfraces estáticos. */
.capaImagenAvatar-ropa,
.capaImagenAvatar-disfraz {
    will-change:auto !important;
}
[class*="animacion-ropa_"] .capaImagenAvatar-ropa,
[class*="animacion-disfraz_"] .capaImagenAvatar-disfraz {
    will-change:filter, opacity !important;
}
body[data-rendimiento="equilibrado"] [class*="animacion-ropa_"] .capaImagenAvatar-ropa,
body[data-rendimiento="equilibrado"] [class*="animacion-disfraz_"] .capaImagenAvatar-disfraz,
body[data-rendimiento="economico"] [class*="animacion-ropa_"] .capaImagenAvatar-ropa,
body[data-rendimiento="economico"] [class*="animacion-disfraz_"] .capaImagenAvatar-disfraz {
    will-change:transform, opacity !important;
}
