/* ============================================================================
   VOLTYR LABS — vnext · CE QUI NE SE VOIT PAS NE DOIT RIEN COÛTER
   ----------------------------------------------------------------------------
   Mesuré le 03/08 au banc de profils, sur un portable au processeur bridé ÷6
   (1366×768) — c'est-à-dire une machine de 2015 :

     page telle quelle .................. 32,9 ms par image  (30 images/s)
     animations HORS ÉCRAN en pause ..... 17,6 ms par image  (57 images/s)
     aucune animation CSS du tout ........ 7,6 ms par image (132 images/s)

   Autrement dit : mettre en pause ce que PERSONNE NE REGARDE fait DOUBLER la
   fluidité, sans qu'aucun visiteur ne puisse voir la moindre différence — les
   animations concernées sont, par définition, hors de l'écran.

   Le compte au moment de la mesure : 51 animations tournaient en permanence,
   dont SEPT seulement étaient visibles. Les 44 autres — mascottes, étincelles,
   égaliseurs des maquettes, faisceaux des lecteurs — s'animaient dans le vide,
   du haut en bas de la page, sur toutes les machines, tout le temps.

   La classe .hors-champ est posée et retirée par vnext-core.js
   (IntersectionObserver, marge de 300 px pour qu'une section soit déjà vivante
   quand elle arrive). Le hero n'est jamais mis en pause.
   ==========================================================================*/

.hors-champ,
.hors-champ *,
.hors-champ *::before,
.hors-champ *::after{
  animation-play-state: paused !important;
}

/* Reprendre une animation là où on l'avait laissée est invisible sur une
   boucle (flottement, scintillement, égaliseur) : ce sont toutes des boucles.
   Rien ici ne touche aux TRANSITIONS — l'entrée .reveal/.stagger continue de
   se jouer normalement quand la section arrive. */


/* ============================================================================
   LES PALIERS SORTENT DU CANVAS
   ----------------------------------------------------------------------------
   Mesure du 03/08, portable bridé ÷6 : dégrader la scène 3D du plein jusqu'au
   plancher fait passer l'image de 31,0 ms à 30,6 ms. AUTREMENT DIT : RIEN.
   La 3D ne pèse que 7 % du budget. Les animations décoratives de la page, à
   l'écran, en pèsent près de la moitié — 2 à 4 ms chacune.

   Un palier qui ne commanderait que le dragon serait donc une consolation.
   Celui-ci commande la page. L'attribut data-qualite est posé par
   ouverture3d.js (fonction appliquerPalier) : 0 plein · 1 allégé · 2 sobre ·
   3 silhouette.

   Ce qu'on éteint, et dans quel ordre — le sens avant le décor :
     palier 2 — les HALOS du hero et le champ d'étoiles. C'est de l'ambiance
                pure : leur absence n'est pas un défaut, c'est un fond plus
                calme. Le dragon, lui, ne bouge pas.
     palier 3 — l'anneau du socle, le flottement de l'éclair, le reflet des
                boutons. On garde le point « en ligne » qui bat : celui-là
                porte une information, pas une décoration.
   ==========================================================================*/

html[data-qualite="2"] .hero-spotlight,
html[data-qualite="2"] .hero-spotlight *,
html[data-qualite="3"] .hero-spotlight,
html[data-qualite="3"] .hero-spotlight *{
  animation: none !important;
}
html[data-qualite="2"] #hero-canvas,
html[data-qualite="3"] #hero-canvas,
html[data-qualite="2"] #final-canvas,
html[data-qualite="3"] #final-canvas{
  display: none !important;
}

html[data-qualite="3"] .dragon-stage,
html[data-qualite="3"] .hero-bolt,
html[data-qualite="3"] .btn-shimmer::after,
html[data-qualite="3"] .mascot-figure,
html[data-qualite="3"] .mascot-spark{
  animation: none !important;
}
/* le reflet des boutons n'a plus lieu d'être visible s'il ne balaie plus */
html[data-qualite="3"] .btn-shimmer::after{ opacity: 0; }
