/* BASE — reinitialisation minimale. */
*,*::before,*::after{box-sizing:border-box}
/* overflow-x:clip (pas hidden) sur html ET body : contrairement a hidden,
   clip n'etablit pas de nouveau conteneur de scroll, donc ne casse pas
   position:sticky pour les descendants (reveal-stage) -- hidden sur les
   deux a la fois cassait le scroll-jacking, hidden sur body seul ne
   suffisait pas a empecher le debordement horizontal sur mobile. */
html{-webkit-text-size-adjust:100%;overflow-x:clip}
body{margin:0;overflow-x:clip;background:var(--bg-page);color:var(--text-body);font:var(--type-body);-webkit-font-smoothing:antialiased}
h1,h2,h3,h4{margin:0;color:var(--text-title)}
p{margin:0 0 16px}
p:last-child{margin-bottom:0}
a{color:inherit;text-decoration:none}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}
::selection{background:var(--primary-quiet);color:var(--ink)}
