/* Remise à zéro minimale, focus visible, mouvement réduit, mode capture. */

/* Outfit : la police de l'interface autour des diapos (accueil, rail, barre, contrôles de la maquette). Les diapos
   elles-mêmes gardent la pile système --police-diapo (css/gabarits.css), comme dans l'ancien système.
   Fichiers copiés de ancien-gele/formation-sisc/assets/vendor/outfit/ ; aucun chargement depuis internet. */
/* latin-ext */
@font-face {
  font-family: 'Outfit';
  font-style: normal;
  font-weight: 400 800; /* une police variable : le même fichier sert toutes les graisses */
  font-display: swap;
  src: url(../assets/polices/outfit-2.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Outfit';
  font-style: normal;
  font-weight: 400 800; /* une police variable : le même fichier sert toutes les graisses */
  font-display: swap;
  src: url(../assets/polices/outfit-1.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

*, *::before, *::after { box-sizing: border-box; }

html, body { margin: 0; height: 100%; }

body {
  font-family: var(--police);
  color: var(--encre);
  background: var(--clair);
}

button { font: inherit; color: inherit; }

img, svg { display: block; max-width: 100%; }

[hidden] { display: none !important; }

/* Le focus se voit toujours : anneau double (clair puis foncé), lisible sur fond clair comme foncé. */
:focus-visible {
  outline: 3px solid var(--vert-fonce);
  outline-offset: 2px;
  box-shadow: 0 0 0 5px #fff;
}

/* --- Zone de toucher des contrôles du plan ----------------------------------------------------------------
   Le plan est réduit pour tenir dans la fenêtre (0,2 environ sur un téléphone) : un bouton de 44 px dans le plan
   n'en mesure que 9 à l'écran. scene.js pose --echelle-plan (échelle de base x zoom) sur .scene__plan ; la zone de toucher
   de chaque contrôle (sauf le bouton Agrandir, qui se met lui-même à l'échelle : css/agrandir.css) est un pseudo-élément invisible, centré sur lui, de 44 px divisés par cette échelle : 44 px à l'écran
   quelle que soit l'échelle. Le dessin du contrôle ne change pas. Hors du plan (surcouche Agrandir, clones du rail),
   la variable n'existe pas et vaut 1. Aux faibles échelles, les zones de contrôles voisins se recouvrent : le dernier
   dans l'ordre du document gagne. */
.maquette__pastille::before,
.vues__fleche::before,
.vues__point::before,
.etats__option::before,
.maquette__zone--declencheur::before {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  width: max(100%, calc(var(--cible-tactile) / var(--echelle-plan, 1)));
  height: max(100%, calc(var(--cible-tactile) / var(--echelle-plan, 1)));
  transform: translate(-50%, -50%);
}

/* Réservé aux lecteurs d'écran : présent dans l'arbre d'accessibilité, invisible à l'œil. */
.sr-seulement {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
  border: 0;
}

/* Préférence « moins de mouvement » : tout est instantané. */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.001ms !important;
    animation-delay: 0s !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.001ms !important;
    transition-delay: 0s !important;
    scroll-behavior: auto !important;
  }
}

/* Mode capture (&capture=1) : aucune animation ni transition ; les éléments sont à leur état final
   (une animation d'entrée qui finit visible est donc rendue visible d'emblée). */
html.capture *, html.capture *::before, html.capture *::after {
  animation: none !important;
  transition: none !important;
  scroll-behavior: auto !important;
  caret-color: transparent !important;
}
