:root{
  --papier:#f2f1ec; --encre:#22242e; --encre-2:#4c4f5e; --trait:#d8d6cd;
  --ambre:#c97e26; --ambre-txt:#96570e; --indigo:#5a68d8; --indigo-txt:#4351bd;
  --vert:#3f7d5a;
  --carte:#faf9f6; --code:#e9e8e2;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --papier:#191b23; --encre:#e7e6df; --encre-2:#a3a4ad; --trait:#33364a;
    --ambre:#e09a45; --ambre-txt:#e8ad63; --indigo:#8b97f0; --indigo-txt:#a4adf4;
    --vert:#6fae8a;
    --carte:#20222d; --code:#252836;
  }
}
:root[data-theme="dark"]{
  --papier:#191b23; --encre:#e7e6df; --encre-2:#a3a4ad; --trait:#33364a;
  --ambre:#e09a45; --ambre-txt:#e8ad63; --indigo:#8b97f0; --indigo-txt:#a4adf4;
  --vert:#6fae8a;
  --carte:#20222d; --code:#252836;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}}
body{margin:0;background:var(--papier);color:var(--encre);
  font-family:"Source Serif 4",Georgia,serif;font-size:17px;line-height:1.68;
  -webkit-text-size-adjust:100%;text-size-adjust:100%}
a{color:var(--indigo-txt);text-decoration-thickness:1px;text-underline-offset:2px}
a:hover{color:var(--ambre-txt)}
a:visited:not(.carte-post):not(.serie-t){text-decoration-style:dotted}
a:focus-visible{outline:2px solid var(--indigo);outline-offset:2px;border-radius:2px}
.skip{position:absolute;left:-9999px;top:0;background:var(--carte);color:var(--encre);
  padding:10px 16px;z-index:10;border-radius:0 0 6px 0}
.skip:focus{left:0}
.page{max-width:1140px;margin:0 auto;padding:0 24px}
.etq{font-family:"IBM Plex Mono",monospace;font-size:12px;letter-spacing:.14em;
  text-transform:uppercase;color:var(--encre-2)}
h1,h2,h3{font-family:"Fraunces",Georgia,serif;font-weight:600;text-wrap:balance;line-height:1.16}
h1{font-size:clamp(30px,4.6vw,46px);margin:.4em 0 .3em}
h2{font-size:26px;margin:1.7em 0 .45em}
h3{font-size:20px;margin:1.4em 0 .4em}
/* ---- en-tête ---- */
.haut{display:flex;align-items:center;justify-content:space-between;gap:10px 16px;
  flex-wrap:wrap;padding:16px 0 12px;border-bottom:1px solid var(--trait);margin-bottom:30px}
.haut.flottant{position:fixed;top:0;left:0;right:0;z-index:20;margin:0;
  padding:10px max(24px,calc((100vw - 1140px)/2 + 24px));
  background:var(--carte);box-shadow:0 1px 8px rgba(0,0,0,.08);
  transform:translateY(-110%);transition:transform .22s ease}
.haut.flottant.visible{transform:translateY(0)}
@media (prefers-reduced-motion: reduce){.haut.flottant{transition:none}}
@media (max-height:480px) and (orientation:landscape){.haut.flottant{display:none}}
.marque{display:flex;align-items:center;gap:11px;text-decoration:none;color:var(--encre)}
.marque svg{flex:none}
.marque b{font-family:"Fraunces",serif;font-weight:600;font-size:21px;letter-spacing:-.01em}
.marque b .lA{color:var(--ambre)}
.marque b .lB{color:var(--indigo)}
.haut-droite{display:flex;align-items:center;gap:4px 6px;flex-wrap:wrap}
nav.menu{display:flex;gap:4px 6px;flex-wrap:wrap}
nav.menu a{font-family:"IBM Plex Mono",monospace;font-size:13px;text-decoration:none;
  color:var(--encre-2);padding:10px 8px;border-radius:6px}
nav.menu a:hover{color:var(--encre)}
#theme{background:none;border:1px solid var(--trait);border-radius:6px;cursor:pointer;
  color:var(--encre-2);font-family:"IBM Plex Mono",monospace;font-size:13px;
  padding:8px 10px;line-height:1}
#theme:hover{color:var(--encre);border-color:var(--encre-2)}
/* ---- accueil ---- */
.hero-bandeau{text-align:center;padding:14px 0 6px}
.hero-bandeau .tagline{font-family:"IBM Plex Mono",monospace;font-size:13.5px;color:var(--encre-2);margin:0}
.series-tuiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:12px;margin:22px 0 8px}
.serie-t{border:1px solid var(--trait);border-top-width:4px;border-radius:6px;background:var(--carte);
  padding:14px 16px;text-decoration:none;color:var(--encre)}
.serie-t:hover{border-color:var(--encre-2);color:var(--encre)}
.serie-t b{font-family:"Fraunces",serif;font-size:17px}
.serie-t p{margin:4px 0 0;font-size:13.5px;color:var(--encre-2)}
.t-ambre{border-top-color:var(--ambre)}
.t-indigo{border-top-color:var(--indigo)}
.t-encre{border-top-color:var(--encre-2)}
.t-vert{border-top-color:var(--vert)}
.une{display:block;border:1px solid var(--trait);border-left:5px solid var(--ambre);
  border-radius:8px;background:var(--carte);padding:28px 32px;margin:26px 0 8px;
  text-decoration:none;color:var(--encre)}
.une:hover{border-color:var(--encre-2);color:var(--encre)}
.une h2{margin:.3em 0 .35em;font-size:clamp(26px,3.4vw,36px)}
.une p{margin:0;color:var(--encre-2);font-size:17px;max-width:75ch}
.une.s-ensemble-et-temps{border-left-color:var(--indigo)}
.une.s-atelier{border-left-color:var(--encre-2)}
.une.s-derriere-lecran{border-left-color:var(--vert)}
.grille-posts{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px;margin:14px 0}
/* ---- cartes ---- */
.carte-post{display:block;border:1px solid var(--trait);border-left-width:4px;border-radius:6px;
  background:var(--carte);padding:18px 22px;text-decoration:none;color:var(--encre)}
.carte-post:hover{border-color:var(--encre-2);color:var(--encre)}
.carte-post h3{margin:.25em 0 .3em}
.carte-post p{margin:0;color:var(--encre-2);font-size:15.5px}
.liste-posts .carte-post{margin:14px 0}
.s-la-table-des-trois{border-left-color:var(--ambre)}
.s-ensemble-et-temps{border-left-color:var(--indigo)}
.s-atelier{border-left-color:var(--encre-2)}
.s-derriere-lecran{border-left-color:var(--vert)}
.meta{font-family:"IBM Plex Mono",monospace;font-size:12.5px;color:var(--encre-2)}
.meta a{color:inherit}
/* ---- gabarit article : deux colonnes sur bureau ---- */
.article-grille{display:grid;grid-template-columns:minmax(0,1fr);gap:40px}
@media (min-width: 1000px){
  .article-grille{grid-template-columns:minmax(0,72ch) 280px}
  .article-cote{position:sticky;top:24px;align-self:start;font-size:14.5px}
}
.article-cote{display:flex;flex-direction:column;gap:18px}
.cote-bloc{border:1px solid var(--trait);border-radius:6px;background:var(--carte);padding:14px 16px}
.cote-bloc .etq{display:block;margin-bottom:8px}
.cote-bloc ul{margin:0;padding-left:18px;font-size:14px}
.cote-bloc li{margin:4px 0}
.cote-bloc nav#TableOfContents ul{list-style:none;padding-left:0}
.cote-bloc nav#TableOfContents a{color:var(--encre-2);text-decoration:none}
.cote-bloc nav#TableOfContents a:hover{color:var(--encre)}
article.post{margin-bottom:24px}
article.post .chapo{font-size:19px;color:var(--encre-2);font-style:italic;max-width:64ch}
article.post p{max-width:72ch}
article.post img{max-width:100%;height:auto;border-radius:6px}
article.post blockquote{margin:1.2em 0;padding:.2em 1.2em;border-left:3px solid var(--ambre);
  color:var(--encre-2);font-style:italic}
article.post pre{background:var(--code);padding:14px 16px;border-radius:6px;overflow-x:auto;
  font-size:14px;line-height:1.5}
article.post code{font-family:"IBM Plex Mono",monospace;font-size:.86em;background:var(--code);
  padding:1px 5px;border-radius:4px}
article.post pre code{background:none;padding:0}
article.post table{border-collapse:collapse;width:100%;font-size:15px;
  display:block;overflow-x:auto;white-space:normal}
article.post td,article.post th{border-bottom:1px solid var(--trait);padding:8px 10px;text-align:left}
article.post hr{border:none;margin:2.4em auto;height:22px;width:120px;
  background:no-repeat center/contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 22'%3E%3Cpath d='M6 6 C 40 6, 80 16, 114 16' fill='none' stroke='%23c97e26' stroke-width='3.4' stroke-linecap='round'/%3E%3Cpath d='M6 16 C 40 16, 80 6, 114 6' fill='none' stroke='%235a68d8' stroke-width='3.4' stroke-linecap='round'/%3E%3C/svg%3E")}
.entete-article{border-bottom:3px solid var(--trait);padding-bottom:14px;margin-bottom:22px}
.entete-article.s-la-table-des-trois{border-bottom-color:var(--ambre)}
.entete-article.s-ensemble-et-temps{border-bottom-color:var(--indigo)}
.entete-article.s-atelier{border-bottom-color:var(--encre-2)}
.entete-article.s-derriere-lecran{border-bottom-color:var(--vert)}
/* ---- fin d'article ---- */
.fin-article{border-top:1px solid var(--trait);margin-top:34px;padding-top:20px}
.nav-posts{display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap;margin:18px 0}
.nav-posts a{display:block;max-width:46%;text-decoration:none;font-family:"Fraunces",serif;font-size:16px}
.nav-posts .suiv{margin-left:auto;text-align:right}
.commentaires{margin-top:30px}
/* ---- newsletter ---- */
.nl{border:1px solid var(--trait);border-radius:6px;background:var(--carte);
  padding:22px 24px;margin:30px 0}
.nl h3{margin:0 0 4px}
.nl p{margin:0 0 14px;color:var(--encre-2);font-size:15px}
.nl form{display:flex;gap:10px;flex-wrap:wrap}
.nl input[type=email]{flex:1;min-width:210px;padding:10px 13px;font-size:15px;
  font-family:inherit;color:var(--encre);background:var(--papier);
  border:1px solid var(--trait);border-radius:6px}
.nl input[type=email]:focus-visible{outline:2px solid var(--indigo);outline-offset:1px}
.nl button{padding:10px 20px;font-family:"IBM Plex Mono",monospace;font-size:13.5px;
  letter-spacing:.04em;color:#fff;background:var(--indigo);border:none;border-radius:6px;cursor:pointer}
.nl button:hover{background:var(--ambre)}
:root[data-theme="dark"] .nl button, :root:not([data-theme="light"]) .nl button{color:#191b23}
@media (prefers-color-scheme: light){:root:not([data-theme="dark"]) .nl button{color:#fff}}
:root[data-theme="light"] .nl button{color:#fff}
/* ---- pied ---- */
footer.bas{border-top:1px solid var(--trait);margin-top:48px;padding:22px 0 40px;
  display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap;
  font-family:"IBM Plex Mono",monospace;font-size:12.5px;color:var(--encre-2)}
footer.bas a{color:inherit}
/* ---- pages simples : colonne de lecture centree ---- */
.colonne{max-width:72ch;margin:0 auto}
/* ===== telephone portrait ===== */
@media (max-width: 480px){
  body{font-size:16px}
  .page{padding:0 16px}
  .haut{justify-content:center;text-align:center}
  .marque{width:100%;justify-content:center}
  .haut-droite{width:100%;justify-content:center}
  h1{font-size:clamp(26px,7.5vw,32px)}
  h2{font-size:22px}
  .series-tuiles{grid-template-columns:1fr;gap:10px}
  .une{padding:18px 18px}
  .carte-post{padding:14px 16px}
  .carte-post h3{font-size:18px}
  article.post .chapo{font-size:17px}
  .nl{padding:18px 16px}
  .nl form{flex-direction:column}
  .nl input[type=email],.nl button{width:100%;min-width:0;padding:13px 14px}
  footer.bas{flex-direction:column;gap:8px;text-align:center;align-items:center}
}
/* ===== telephone paysage ===== */
@media (max-height: 480px) and (orientation: landscape){
  .haut{padding:10px 0 8px;margin-bottom:16px}
  .series-tuiles{grid-template-columns:repeat(4,1fr)}
  .nl form{flex-direction:row}
}
/* ===== tablette portrait ===== */
@media (min-width: 481px) and (max-width: 900px) and (orientation: portrait){
  .series-tuiles{grid-template-columns:1fr 1fr}
  .series-tuiles .serie-t:last-child:nth-child(odd){grid-column:1/-1}
}
/* ===== grands ecrans : le texte grandit avec la distance de lecture ===== */
@media (min-width: 1200px){ body{font-size:18px} }
@media (min-width: 1700px){ body{font-size:19px} .page{max-width:1220px} }
@media (pointer: coarse){
  a{text-underline-offset:3px}
  .serie-t,.carte-post{padding-top:16px;padding-bottom:16px}
}
/* ---- commentaires giscus ---- */
.commentaires{border:1px solid var(--trait);border-radius:6px;background:var(--carte);
  padding:22px 24px;margin-top:26px}
.commentaires h2{margin:0 0 4px;font-size:22px}
.commentaires>.meta{margin:0 0 16px}
.commentaires .giscus,.commentaires iframe.giscus-frame{width:100%;border:0}
.commentaires iframe.giscus-frame{min-height:150px;color-scheme:normal}
