/* Grain animé sur tout le site (bruit de télé), intensité « Léger » retenue par Ali le 02/11/2026 sur grain.html.
   Un calque fixe, plus grand que l'écran de 10rem de chaque côté, saute d'une position à l'autre (steps) : les points
   de grain.png (scripts/generer_grain.py) changent de place une vingtaine de fois par seconde. Rien ne se clique dessus.
   Même fichier dans la maquette et dans mu-plugins/charte/ du site (le test permanent le vérifie).
   Au-dessus du contenu, de l'écran 1 (50), du rideau (60) et de l'autocollant (90) ; sous le module d'accessibilité (110). */
body::after{content:"";position:fixed;inset:-10rem;z-index:95;pointer-events:none;
  background:url(grain.png);opacity:.05;animation:grain 1s steps(2) infinite}
@keyframes grain{
  0%{transform:translate3d(0,9rem,0)}       10%{transform:translate3d(-1rem,-4rem,0)}
  20%{transform:translate3d(-8rem,2rem,0)}  30%{transform:translate3d(9rem,-9rem,0)}
  40%{transform:translate3d(-2rem,7rem,0)}  50%{transform:translate3d(-9rem,-4rem,0)}
  60%{transform:translate3d(2rem,6rem,0)}   70%{transform:translate3d(7rem,-8rem,0)}
  80%{transform:translate3d(-9rem,1rem,0)}  90%{transform:translate3d(6rem,-5rem,0)}
  100%{transform:translate3d(-7rem,0,0)}}
/* mouvement réduit et pause du module : le grain reste, immobile ; thème contraste : pas de grain sur le texte */
@media (prefers-reduced-motion:reduce){body::after{animation:none}}
html[data-a11y-pause] body::after{animation:none!important;transform:none!important}
html[data-theme="contraste"] body::after{display:none}
@media print{body::after{display:none}}
