/* ============================================================
   z/S SYSTEMS · GÉNÉRATION 2 · LES GABARITS
   S03 et S04 · 17 septembre 2026
   post, page, index, tag, author · la forme seule, aucun contenu touché.
   Tout est gardé sous body[data-zs-g2="eveille"] · tant que le drapeau
   dort, cette feuille ne change pas un pixel.
   Le thème pose -webkit-text-fill-color et des familles fortes · chaque
   couleur et chaque famille est doublée en !important avec spécificité
   montée (html body…), leçon L285.
   ============================================================ */

/* ⛔⛔ LE CALQUE · site.css pose ses règles dans @layer zs-chambre-claire avec !important.
   Entre calques, un !important du calque déclaré le PREMIER gagne, et un !important hors
   calque perd contre tous. Le thème (1.5.1, default.hbs) déclare `@layer zs-g2;` avant
   site.css · toute la feuille vit donc dans ce calque. Mesuré le 17 septembre. */
@layer zs-g2{


/* ⛔⛔ LE REMPLISSAGE DU CORPS · le socle pose -webkit-text-fill-color sur body, et cette propriété
   HÉRITE · tout élément du thème qui ne déclare que `color` sortait alors dans la couleur du corps
   (mesuré le 17 · « Soyez le premier informé » en ivoire sur #F7F7F7, 1,0 pour 1). currentColor
   hérite comme mot clef · chaque élément reprend sa propre couleur. ---- */
html body[data-zs-g2="eveille"]:not(#zsg2){ -webkit-text-fill-color:currentColor !important; }

/* ---- le bandeau du site (header.zs-fb-pop) est dessiné pour la nuit · il garde son ivoire,
   il n hérite pas de l encre du corps (mesuré le 17 · « À PROPOS » tombait à 1,5 pour 1) ---- */
html body[data-zs-g2="eveille"]:not(#zsg2) .zs-fb-pop{ color:#FFF5E6 !important; -webkit-text-fill-color:#FFF5E6 !important; }

/* ---- l en tête de signature · z/S SYSTEMS, la surface, l état ---- */
html body[data-zs-g2="eveille"]:not(#zsg2) .zs-g2-entete{
  display:flex !important; align-items:center; justify-content:space-between; gap:var(--e2);
  max-width:1120px; margin:0 auto !important; padding:10px 16px !important; box-sizing:border-box;
  border-bottom:1px solid var(--filet);
  font-family:var(--fm) !important; font-size:var(--n0) !important;
  letter-spacing:.14em; text-transform:uppercase;
  color:var(--co) !important; -webkit-text-fill-color:var(--co) !important;
}
html body[data-zs-g2="eveille"]:not(#zsg2) .zs-g2-entete .zs-g2-marque{
  color:var(--fg) !important; -webkit-text-fill-color:var(--fg) !important; font-weight:600;
}
html body[data-zs-g2="eveille"]:not(#zsg2) .zs-g2-entete .zs-g2-surface{
  text-align:center; flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
}
html body[data-zs-g2="eveille"]:not(#zsg2) .zs-g2-entete .zs-g2-etat::before{
  content:""; display:inline-block; width:6px; height:6px; border-radius:50%;
  background:var(--acc); margin-right:8px; vertical-align:middle;
}

/* ---- ⛔ la spécificité · le thème pose `html body article p:not(…)×6` (0,6,4). Un `:not(#zsg2)`
   sur le body ajoute un identifiant (1,0,0) sans cibler personne · mesuré le 17 septembre. ---- */
html:has(> body[data-zs-g2="eveille"]),
html body[data-zs-g2="eveille"]:not(#zsg2){
  background:var(--bg) !important; background-color:var(--bg) !important;
}
html:has(> body[data-zs-g2="eveille"][data-etat="public"]){ background:#FFFFFF !important; }
html:has(> body[data-zs-g2="eveille"][data-etat="payant"]){ background:#050010 !important; }

/* ---- le fond, un seul par lumière, jamais de dégradé sous du texte ---- */
html body[data-zs-g2="eveille"]:not(#zsg2) .zs-pop,
html body[data-zs-g2="eveille"]:not(#zsg2) .gh-main,
html body[data-zs-g2="eveille"]:not(#zsg2) main{
  background:var(--bg) !important;
}

/* ---- la colonne · 62 signes, corps à 17 px, interligne 1,68 ----
   ⛔ 17 septembre · les billets récents enveloppent leur corps dans .zs-art, une carte de nuit
   dessinée par le contenu (dégradé #050010). Son encre reste la sienne · la G2 ne pose que la
   taille et la mesure dedans, jamais la couleur. Réveil éteint puis rallumé pour cela. */
html body[data-zs-g2="eveille"]:not(#zsg2) .zs-body,
html body[data-zs-g2="eveille"]:not(#zsg2) .gh-content{
  max-width:62ch !important; margin-left:auto !important; margin-right:auto !important;
  font-family:var(--fp) !important; font-size:var(--n1) !important; line-height:var(--ligne) !important;
}
html body[data-zs-g2="eveille"]:not(#zsg2) :is(.zs-body, .gh-content):not(:has(> .zs-art)){
  color:var(--co) !important; -webkit-text-fill-color:var(--co) !important;
}
html body[data-zs-g2="eveille"]:not(#zsg2) :is(.zs-body, .gh-content) :is(p, li){
  font-size:var(--n1) !important; line-height:var(--ligne) !important;
}
html body[data-zs-g2="eveille"]:not(#zsg2) :is(.zs-body, .gh-content) :is(p, li):not(:is(.zs-art, .zs-cta-oracle, .zs-pa, header.hero, #zs-art-cta) *){
  color:var(--co) !important; -webkit-text-fill-color:var(--co) !important;
}

/* ---- la manchette et le chapô ---- */
html body[data-zs-g2="eveille"]:not(#zsg2) .zs-title,
html body[data-zs-g2="eveille"]:not(#zsg2) article h1:not(.zsen *, .zs-g2-accueil *, :is(.zs-art, .zs-cta-oracle, .zs-pa, header.hero, #zs-art-cta) *){
  font-family:var(--ft) !important; font-size:clamp(var(--n4),5vw,var(--n5)) !important;
  font-weight:400 !important; line-height:1.12 !important; letter-spacing:-.015em;
  color:var(--fg) !important; -webkit-text-fill-color:var(--fg) !important;
  background:none !important; text-shadow:none !important;
}
html body[data-zs-g2="eveille"]:not(#zsg2) .zs-lede:not(:is(.zs-art, .zs-cta-oracle, .zs-pa, header.hero, #zs-art-cta) *){
  max-width:62ch; margin-left:auto; margin-right:auto;
  font-family:var(--fp) !important; font-style:italic !important; font-size:var(--n2) !important;
  color:var(--co) !important; -webkit-text-fill-color:var(--co) !important;
}
html body[data-zs-g2="eveille"]:not(#zsg2) .zs-body h2:not(:is(.zs-art, .zs-cta-oracle, .zs-pa, header.hero, #zs-art-cta) *),
html body[data-zs-g2="eveille"]:not(#zsg2) .gh-content h2:not(:is(.zs-art, .zs-cta-oracle, .zs-pa, header.hero, #zs-art-cta) *){
  font-family:var(--ft) !important; font-size:var(--n3) !important; font-weight:500 !important;
  color:var(--fg) !important; -webkit-text-fill-color:var(--fg) !important;
  border-top:1px solid var(--filet); padding-top:var(--e3);
}
html body[data-zs-g2="eveille"]:not(#zsg2) .zs-body h3:not(:is(.zs-art, .zs-cta-oracle, .zs-pa, header.hero, #zs-art-cta) *),
html body[data-zs-g2="eveille"]:not(#zsg2) .gh-content h3:not(:is(.zs-art, .zs-cta-oracle, .zs-pa, header.hero, #zs-art-cta) *){
  font-family:var(--fm) !important; font-size:var(--n0) !important; letter-spacing:.12em; text-transform:uppercase;
  color:var(--fg) !important; -webkit-text-fill-color:var(--fg) !important;
}
html body[data-zs-g2="eveille"]:not(#zsg2) .zs-body a:not(:is(.zs-art, .zs-cta-oracle, .zs-pa, header.hero, #zs-art-cta) *),
html body[data-zs-g2="eveille"]:not(#zsg2) .gh-content a:not(:is(.zs-art, .zs-cta-oracle, .zs-pa, header.hero, #zs-art-cta) *){
  color:var(--fg) !important; -webkit-text-fill-color:var(--fg) !important;
  text-decoration:underline; text-decoration-color:var(--acc); text-underline-offset:3px;
}
html body[data-zs-g2="eveille"]:not(#zsg2) .zs-body blockquote,
html body[data-zs-g2="eveille"]:not(#zsg2) .gh-content blockquote{
  border-left:2px solid var(--acc) !important; padding-left:var(--e2) !important;
  font-style:italic; background:none !important;
}

/* ---- la DÉTONATION encadrée · filet, jamais d aplat ---- */
html body[data-zs-g2="eveille"]:not(#zsg2) :is(.zs-body,.gh-content) [class*="detonation"]:not([class*="tag-"]),
html body[data-zs-g2="eveille"]:not(#zsg2) :is(.zs-body,.gh-content) [class*="DETONATION"]{
  border:2px solid var(--fg) !important; background:var(--bg) !important;
  padding:var(--e3) !important;
}

/* ---- les métadonnées en mono ---- */
html body[data-zs-g2="eveille"]:not(#zsg2) .zs-meta,
html body[data-zs-g2="eveille"]:not(#zsg2) .zs-date,
html body[data-zs-g2="eveille"]:not(#zsg2) .zs-tag-line,
html body[data-zs-g2="eveille"]:not(#zsg2) .post-card-meta{
  font-family:var(--fm) !important; font-size:var(--n0) !important; letter-spacing:.08em;
  color:var(--dim) !important; -webkit-text-fill-color:var(--dim) !important;
}

/* ---- les images tiennent dans la colonne ---- */
html body[data-zs-g2="eveille"]:not(#zsg2) .zs-body img,
html body[data-zs-g2="eveille"]:not(#zsg2) .gh-content img{ max-width:100% !important; height:auto !important; }

/* ---- les légendes · jamais de pavé gris sous du texte blanc ---- */
html body[data-zs-g2="eveille"]:not(#zsg2) figcaption,
html body[data-zs-g2="eveille"]:not(#zsg2) .zs-hero-img figcaption{
  background:none !important; font-family:var(--fp) !important; font-style:italic; font-size:15px !important;
  color:var(--co) !important; -webkit-text-fill-color:var(--co) !important;
}

/* ---- le chrome du billet (signature, propager, carte d auteur, Oracle, recommandés, pied)
   était écrit pour la nuit · ivoire, or, rose sur fond presque transparent. En lumière
   publique il devient invisible (mesuré 1,0 pour 1 sur un billet réel). Tout texte hors
   du contenu (.zs-art) reprend l encre · les orbes gardent leur dessin. ---- */
html body[data-zs-g2="eveille"][data-etat="public"]:not(#zsg2) .zs-pop :not(:is(.zs-art, .zs-cta-oracle, .zs-pa, header.hero, #zs-art-cta), :is(.zs-art, .zs-cta-oracle, .zs-pa, header.hero, #zs-art-cta) *, [class*="orb"], [class*="seal"], [class*="orb"] *, [class*="seal"] *){
  color:var(--co) !important; -webkit-text-fill-color:var(--co) !important; text-shadow:none !important;
}
html body[data-zs-g2="eveille"][data-etat="public"]:not(#zsg2) .zs-pop :is(h1,h2,h3,h4,[class*="title"],[class*="mark"],[class*="name"],b,strong):not(:is(.zs-art, .zs-cta-oracle, .zs-pa, header.hero, #zs-art-cta) *, :is(.zs-art, .zs-cta-oracle, .zs-pa, header.hero, #zs-art-cta), [class*="orb"], [class*="seal"]){
  color:var(--fg) !important; -webkit-text-fill-color:var(--fg) !important;
  background-image:none !important; -webkit-background-clip:border-box !important; background-clip:border-box !important;
}
html body[data-zs-g2="eveille"][data-etat="public"]:not(#zsg2) .zs-pop :is([class*="cta"],[class*="save"],.zs-arrow):not(:is(.zs-art, .zs-cta-oracle, .zs-pa, header.hero, #zs-art-cta) *, :is(.zs-art, .zs-cta-oracle, .zs-pa, header.hero, #zs-art-cta)){
  color:var(--fg) !important; -webkit-text-fill-color:var(--fg) !important; border-color:var(--fg) !important;
}
html body[data-zs-g2="eveille"][data-etat="public"]:not(#zsg2) .zs-pop :is(.zs-author-card,.zs-oracle-mini,.zs-footer,.zs-recommended){
  background:var(--bg) !important; border-color:var(--filet) !important; box-shadow:none !important;
}

html body[data-zs-g2="eveille"][data-etat="public"]:not(#zsg2) .zs-pop :is(.zs-sig-meta,.zs-propager-note,.zs-footer-genealogy,.zs-footer-bottom){ opacity:1 !important; }

/* ---- le plancher de 17 px vaut aussi pour la prose du chrome du billet (carte d auteur, encarts) · mesuré 16 px à 360 ---- */
html body[data-zs-g2="eveille"][data-etat="public"]:not(#zsg2) .zs-pop p:not(:is(.zs-art, .zs-cta-oracle, .zs-pa, header.hero, #zs-art-cta) *, .zs-lede){ font-size:var(--n1) !important; line-height:var(--ligne) !important; }

/* ---- le plancher vaut aussi dans les cartes de nuit · la taille seulement, jamais la couleur ---- */
html body[data-zs-g2="eveille"]:not(#zsg2) :is(.zs-art, .zs-cta-oracle, .zs-pa, header.hero, #zs-art-cta) :is(p, li):not(.zs-lede){ font-size:max(var(--n1), 1em) !important; }

/* ---- index, étiquette, auteur · la grille éditoriale ---- */
html body[data-zs-g2="eveille"]:not(#zsg2).tag-template h1,
html body[data-zs-g2="eveille"]:not(#zsg2).author-template h1,
html body[data-zs-g2="eveille"]:not(#zsg2):not(.zsg2-accueil-actif).home-template h1{
  font-family:var(--ft) !important; font-size:var(--n5) !important; font-weight:400 !important;
  color:var(--fg) !important; -webkit-text-fill-color:var(--fg) !important;
}
html body[data-zs-g2="eveille"]:not(#zsg2) [data-posts] h2,
html body[data-zs-g2="eveille"]:not(#zsg2) [data-posts] h3{
  font-family:var(--ft) !important; font-size:var(--n3) !important; font-weight:500 !important;
  color:var(--fg) !important; -webkit-text-fill-color:var(--fg) !important;
}
html body[data-zs-g2="eveille"]:not(#zsg2) [data-posts] p{
  font-family:var(--fp) !important; font-size:var(--n1) !important;
  color:var(--co) !important; -webkit-text-fill-color:var(--co) !important;
}


/* ============================================================
   S10 · LE TERMINAL DE /chat/ · on habille, on ne recâble pas.
   La détection de membre, les en têtes de revendication et le moteur
   de réponse ne sont pas touchés · seules la typographie, la lumière
   et le bruit décoratif changent.
   ============================================================ */
/* le terminal porte déjà sa tête (zt-head · z/S ORACLE TERMINAL) · l en tête de gabarit s efface */
html body.page-chat[data-zs-g2="eveille"]:not(#zsg2) .zs-g2-entete{ display:none !important; }
/* neuf niveaux · la prose en Newsreader, les labels en mono, fini le Geist */
html body.page-chat[data-zs-g2="eveille"]:not(#zsg2) #zs-chat-root{ font-family:var(--fp) !important; }
html body.page-chat[data-zs-g2="eveille"]:not(#zsg2) #zs-chat-root :is([class^="zt-"], [class*=" zt-"], .zs-compose-quota, .zs-mq-bar, .zs-live-counter, .zs-btn-ask, .zs-tier-name, .zs-paywall-label){
  font-family:var(--fm) !important;
}
html body.page-chat[data-zs-g2="eveille"]:not(#zsg2) #zs-chat-root :is(.zs-hero-title, .zs-paywall-title, .zsv5-title){
  font-family:var(--ft) !important; font-weight:300 !important; letter-spacing:-.015em;
}
html body.page-chat[data-zs-g2="eveille"]:not(#zsg2) #zs-chat-root :is(.zs-conv, .zs-conv p, .zs-hero-sub, .zs-paywall-sub, textarea){
  font-family:var(--fp) !important; font-size:var(--n1) !important; line-height:var(--ligne) !important;
}
/* les sources du calcul sous chaque réponse · labels mono, un seul accent */
html body.page-chat[data-zs-g2="eveille"]:not(#zsg2) #zs-chat-root .zt-src{
  font-size:var(--n0) !important; letter-spacing:.14em; text-transform:uppercase;
  color:var(--co) !important; -webkit-text-fill-color:var(--co) !important;
}
/* le bruit décoratif baisse · un seul accent par lumière */
html body.page-chat[data-zs-g2="eveille"]:not(#zsg2) :is(.zs-comet, .zs-ember){ display:none !important; }
html body.page-chat[data-zs-g2="eveille"]:not(#zsg2) .zs-cosmos{ opacity:.35 !important; }


/* ============================================================
   S13 à S17 · LES PAGES EN NUIT · la peau commune des pages sur mesure.
   Leur prose sortait en ivoire pur, 19,2 pour 1, au dessus du plafond de 13,
   avec des légendes de 10 à 11,5 px et des lignes de 79 à 94 signes.
   La G2 pose l encre de nuit (--co, 11,0 pour 1), le plancher de 17 px et la
   mesure · jamais une mise en page, jamais un mot.
   ============================================================ */
html body.page-template[data-zs-g2="eveille"][data-etat="payant"]:not(#zsg2) :is(p, li):not(:is(button, nav, header, footer, .zsen, .zs-g2-accueil, #zs-chat-root, .zsfq-lire) *):not(.zsfq-lire):not(:is(.zs-art, .zs-cta-oracle, .zs-pa, header.hero, #zs-art-cta) *){
  color:var(--co) !important; -webkit-text-fill-color:var(--co) !important;
  font-size:max(var(--n1), 1em) !important; line-height:var(--ligne) !important;
  max-width:min(62ch, 30em) !important; margin-left:auto !important; margin-right:auto !important;
}
html body.page-template[data-zs-g2="eveille"][data-etat="payant"]:not(#zsg2) :is(p, li):not(:is(.zsen, .zs-g2-accueil, #zs-chat-root) *) :is(b, strong){
  color:var(--fg) !important; -webkit-text-fill-color:var(--fg) !important;
}

/* ---- le téléphone · aucun débordement à 360 ---- */
@media (max-width:480px){
  html body[data-zs-g2="eveille"]:not(#zsg2){ overflow-x:clip; }
  html body[data-zs-g2="eveille"]:not(#zsg2) .zs-g2-entete .zs-g2-surface{ display:none; }
  html body[data-zs-g2="eveille"]:not(#zsg2) .zs-body,
  html body[data-zs-g2="eveille"]:not(#zsg2) .gh-content{ padding-left:16px !important; padding-right:16px !important; }
}

@media (prefers-reduced-motion:reduce){
  html body[data-zs-g2="eveille"]:not(#zsg2) *{ animation:none !important; transition:none !important; }
}

}
