/**
 * Imagilire Studio - Aperçu syllabé incrémental
 *
 * Lot 2.1 du plan. Les styles de la syllabation elle-même (couleurs, lettres
 * muettes, listes, titres) restent dans `imagilire-studio-editor.css` : ce
 * fichier ne porte que ce que le rendu **incrémental** rend nécessaire.
 */

/* ------------------------------------------------------------------------
   Ancrage du défilement

   Le rendu incrémental ne remplace que les blocs modifiés. Quand la
   modification a lieu au-dessus de la ligne de flottaison et change la hauteur
   du bloc, le navigateur sait compenser tout seul — à condition qu'on ne le
   lui interdise pas, ce qu'une valeur `none` héritée ferait. La règle est donc
   explicite plutôt que laissée au défaut.

   `PreviewManager` pose en plus son propre repère (`captureScrollAnchor()`),
   pour les cas où l'ancre native est perdue : bloc supprimé, conteneur recréé.
   ------------------------------------------------------------------------ */
.preview-content {
    overflow-anchor: auto;
}

/* ------------------------------------------------------------------------
   Texte nu sous un conteneur

   Cas rare — Quill enveloppe normalement tout — mais le rendu lui donne son
   propre nœud pour pouvoir le syllaber. Ce nœud ne doit rien changer à la mise
   en page.
   ------------------------------------------------------------------------ */
.preview-content .preview-text-run {
    display: inline;
}

/* ------------------------------------------------------------------------
   Ce qui n'est PAS ici, et pourquoi : content-visibility

   `content-visibility: auto` sur les blocs, pour laisser le navigateur sauter
   la mise en page de ce qui est hors écran, paraissait le compagnon naturel de
   la syllabation différée. Mesuré sur un document de 22 000 caractères, c'est
   une perte sèche :

   - la hauteur totale annoncée tombe de 21 806 px à 14 373 px, parce que les
     blocs jamais peints comptent pour leur `contain-intrinsic-size` estimée et
     non pour leur hauteur réelle : la barre de défilement ment, et sa taille
     change au fil du parcours ;
   - une frappe au-dessus de la ligne de flottaison décale l'aperçu de 162 px,
     ce que le critère du lot interdit explicitement ;
   - et c'est plus lent : 21,4 ms par frappe contre 18,0 ms sans.

   Le gain espéré n'existe pas ici parce que le travail coûteux n'était pas la
   peinture mais la syllabation — et celle-là, l'`IntersectionObserver` la
   diffère déjà. À ne pas réessayer sans remesurer.
   ------------------------------------------------------------------------ */
