/* ==========================================================================
   FastSolve, arrivée de la marque : le titre de l'en-tête se construit en
   pixels, à sa taille réelle, puis le logo glisse depuis la gauche.
   Aucun style en ligne (CSP du site) : tout passe par ces classes.
   ========================================================================== */

/* Le canevas couvre l'en-tête (position: sticky = bloc conteneur). */
.marque3d-canvas {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  display: block;
  pointer-events: none;
  z-index: 5;
  opacity: 1;
  transition: opacity 160ms ease;
}
.marque3d-canvas.marque3d-canvas--fondu { opacity: 0; }
.marque3d-canvas.marque3d-canvas--cache { display: none; }


/* Avant le premier affichage : la marque entière est masquée par le script
   (classe posée sur <html>), le temps que la construction démarre. */
html.marque3d-attente .site-header .brand { opacity: 0; }

/* Le texte du titre : masqué pendant la construction, fondu à l'arrivée. */
.site-header.marque3d-actif .brand > span { transition: opacity 160ms ease; }
.site-header.marque3d-texte-cache .brand > span { opacity: 0; }

/* Le logo : masqué tant que le titre n'est pas posé, puis animé en JS. */
.site-header.marque3d-logo-cache .brand-logo { opacity: 0; }
