/* La Table du Vivant — fondations.
 *
 * Direction : la planche naturaliste. Papier crème, encre presque noire, traits
 * francs, ombres portées dures. Chaque thème porte un aplat saturé, comme une
 * gravure du dix-neuvième coloriée à la main. Rien de flou, rien de pâle.
 *
 * Ce qu'on ne fait PAS ici : des cartes blanches à coins très arrondis posées
 * sur du gris clair avec une ombre diffuse et un seul accent. C'est le réglage
 * par défaut de tous les gabarits, et ça ne ressemble à personne.
 */

/* Posé dès le premier jour, avant tout écran.
   Sur Mortalité, une règle `.overlay { display: grid }` neutralisait l'attribut
   `hidden` et laissait deux écrans empilés par-dessus l'accueil en permanence.
   Tous les tests jsdom passaient au vert, y compris celui écrit exprès pour ça,
   parce que jsdom ne modélise pas la précédence entre feuille d'auteur et
   feuille du navigateur. Cette ligne rend l'accident impossible. */
[hidden] { display: none !important; }

:root {
  color-scheme: light;

  /* Le papier et l'encre. */
  --papier:       #f4ede0;
  --papier-clair: #fbf7ef;
  --encre:        #17150f;
  --encre-douce:  #5f5748;
  --trait:        #17150f;

  /* Les deux couleurs qui portent l'interface. */
  --vif:          #d4442c;   /* vermillon, pour l'action */
  --vert:         #1f6b4a;   /* vert de planche, pour le juste */
  --jaune:        #e9b626;   /* jaune de jeton */

  --juste:        var(--vert);
  --faux:         #b3281a;
  --jeton:        var(--jaune);

  /* Un aplat par thème. Saturés, un peu terreux, jamais fluo. */
  --t-anatomie:       #c2452f;
  --t-comportement:   #b5741b;
  --t-records:        #1c5f8a;
  --t-repartition:    #2f7a4f;
  --t-reproduction:   #8f3f6e;
  --t-alimentation:   #c26a1e;
  --t-conservation:   #16766b;
  --t-classification: #4b4a9c;
  --t-humains:        #a5395a;
  --t-idees_recues:   #5c7222;

  /* Traits et ombres : durs, jamais diffus. */
  --bord:   2.5px solid var(--trait);
  --porte:  5px 5px 0 var(--trait);
  --porte-courte: 3px 3px 0 var(--trait);

  --titre: "Fraunces", "Iowan Old Style", Georgia, serif;
  --texte: "Inter", "Segoe UI", system-ui, -apple-system, sans-serif;
}

* { box-sizing: border-box; }

body {
  margin: 0;
  background-color: var(--papier);
  /* Grain de papier : une trame très légère, pas une texture bruyante. */
  background-image:
    radial-gradient(circle at 1px 1px, rgb(23 21 15 / 5%) 1px, transparent 0);
  background-size: 22px 22px;
  color: var(--encre);
  font-family: var(--texte);
  font-size: 17px;
  line-height: 1.55;
  -webkit-text-size-adjust: 100%;
}

img { max-width: 100%; height: auto; }

::selection { background: var(--jaune); color: var(--encre); }

:focus-visible { outline: 3px solid var(--vif); outline-offset: 3px; }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}
