/* Thème des wikis de projets de tachibana.eu (Eliott65, Projet 816) — charte : famille du site (encre, papier, orange tachibana), en clair et en sombre. */
@font-face{font-family:"IBM Plex Sans";font-style:normal;font-weight:300;font-display:swap;src:url(/fonts/ibm-plex-sans-latin-300.woff2) format("woff2");}
@font-face{font-family:"IBM Plex Sans";font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/ibm-plex-sans-latin-400.woff2) format("woff2");}
@font-face{font-family:"IBM Plex Sans";font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/ibm-plex-sans-latin-500.woff2) format("woff2");}
@font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/ibm-plex-mono-latin-400.woff2) format("woff2");}
@font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/ibm-plex-mono-latin-500.woff2) format("woff2");}
@font-face{font-family:"Zen Antique";font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/zen-antique-latin-400.woff2) format("woff2");}

:root{
  --fond:#F6F2E8; --fond-2:#ECE6D7; --surface:#FFFDF8;
  --texte:#0B1826; --texte-2:#4A5562; --trait:rgba(11,24,38,.16);
  --accent:#A44E0F;          /* liens : 5,6:1 sur --fond */
  --accent-vif:#E08A3C; --feuille:#2F6E4C;
  --code-fond:#ECE6D7;
  /* schémas */
  --d-fond:#FFFDF8; --d-trait:#0B1826; --d-texte:#0B1826; --d-doux:#4A5562;
  --d-6502:#F7D9BC; --d-rp:#CFE5D8; --d-mem:#DCE3EE; --d-accent:#C2621C;
  --display:"Zen Antique",Georgia,serif;
  --corps:"IBM Plex Sans",system-ui,sans-serif;
  --mono:"IBM Plex Mono",ui-monospace,monospace;
  color-scheme:light dark;
}
@media (prefers-color-scheme:dark){
  :root{
    --fond:#0B1826; --fond-2:#11233A; --surface:#132840;
    --texte:#EBE5D7; --texte-2:#A8A491; --trait:rgba(235,229,215,.16);
    --accent:#F0A160; --accent-vif:#E08A3C; --feuille:#5BA37C;
    --code-fond:#11233A;
    --d-fond:#132840; --d-trait:#EBE5D7; --d-texte:#EBE5D7; --d-doux:#A8A491;
    --d-6502:#5A3A1E; --d-rp:#1F4A35; --d-mem:#25395A; --d-accent:#F0A160;
  }
}

*{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;}
body{margin:0;background:var(--fond);color:var(--texte);font-family:var(--corps);font-weight:400;
  font-size:1.0625rem;line-height:1.65;}
a{color:var(--accent);text-underline-offset:.18em;}
a:hover{text-decoration-thickness:2px;}
:focus-visible{outline:2px solid var(--accent-vif);outline-offset:3px;}
img{max-width:100%;height:auto;}
.vh{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;}
.evitement{position:absolute;left:-999px;top:0;background:var(--texte);color:var(--fond);padding:8px 14px;z-index:10;}
.evitement:focus{left:8px;}

/* ---------- en-tête ---------- */
.entete{border-bottom:1px solid var(--trait);background:var(--fond);position:sticky;top:0;z-index:5;}
.entete-in{max-width:1280px;margin:0 auto;padding:10px 16px;display:flex;align-items:center;gap:16px;}
.marque{display:flex;align-items:baseline;gap:8px;text-decoration:none;color:var(--texte);}
.marque-nom{font-family:var(--display);font-size:1.5rem;letter-spacing:.02em;}
.marque-wiki{font-family:var(--mono);font-size:.75rem;color:var(--accent);border:1px solid currentColor;padding:0 6px;border-radius:3px;}
.recherche{position:relative;flex:1;max-width:420px;margin-left:auto;}
.recherche input{width:100%;font:inherit;font-size:.95rem;padding:8px 12px;min-height:44px;border:1px solid var(--trait);
  border-radius:6px;background:var(--surface);color:var(--texte);}
.resultats{position:absolute;left:0;right:0;top:calc(100% + 4px);margin:0;padding:6px;list-style:none;background:var(--surface);
  border:1px solid var(--trait);border-radius:6px;box-shadow:0 8px 24px rgba(0,0,0,.18);max-height:70vh;overflow:auto;}
.resultats a{display:block;padding:8px 10px;border-radius:4px;text-decoration:none;color:var(--texte);}
.resultats a:hover,.resultats a:focus{background:var(--fond-2);}
.resultats small{display:block;color:var(--texte-2);font-size:.8rem;}
.resultats mark{background:none;color:var(--accent);font-weight:500;}
.langues{display:flex;gap:2px;font-family:var(--mono);font-size:.8rem;}
.langues a,.langues span{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;padding:0 8px;text-decoration:none;}
.langues span{background:var(--accent-vif);color:#0B1826;border-radius:4px;}
.langues a{color:var(--texte-2);}

/* ---------- cadre ---------- */
.cadre{max-width:1280px;margin:0 auto;padding:0 16px;display:grid;grid-template-columns:260px minmax(0,1fr);gap:40px;}
.laterale{position:sticky;top:66px;align-self:start;max-height:calc(100vh - 66px);overflow:auto;padding:24px 0;}
.sommaire-mobile{display:none;}
.nav-wiki ul{list-style:none;margin:0 0 6px;padding:0;}
.nav-wiki li a,.nav-section a{display:block;padding:4px 10px;border-radius:4px;text-decoration:none;color:var(--texte);font-size:.93rem;line-height:1.35;}
.nav-wiki li a{padding-left:20px;color:var(--texte-2);}
.nav-section{margin:16px 0 2px;}
.nav-section a{font-family:var(--mono);font-size:.74rem;text-transform:uppercase;letter-spacing:.12em;color:var(--texte);}
.nav-wiki a:hover{background:var(--fond-2);}
.nav-wiki a[aria-current="page"]{background:var(--fond-2);color:var(--accent);box-shadow:inset 3px 0 0 var(--accent-vif);}
.principal{min-width:0;padding:24px 0 64px;}

/* ---------- contenu ---------- */
.contenu{max-width:760px;}
.fil ol{list-style:none;margin:0 0 8px;padding:0;display:flex;flex-wrap:wrap;gap:4px;font-size:.85rem;color:var(--texte-2);}
.fil li+li::before{content:"›";margin-right:4px;}
.fil a{color:var(--texte-2);}
h1,h2,h3{line-height:1.25;font-weight:500;}
h1{font-family:var(--display);font-weight:400;font-size:clamp(1.9rem,4vw,2.6rem);margin:.2em 0 .5em;}
h2{font-size:1.45rem;margin:2.2em 0 .6em;padding-top:.6em;border-top:1px solid var(--trait);}
h3{font-size:1.15rem;margin:1.8em 0 .4em;}
.chapeau{font-size:1.2rem;line-height:1.55;color:var(--texte-2);margin:0 0 1.5em;}
code,kbd,pre{font-family:var(--mono);font-size:.88em;}
code{background:var(--code-fond);padding:.1em .35em;border-radius:3px;}
pre{background:var(--code-fond);padding:14px 16px;border-radius:6px;overflow:auto;line-height:1.5;}
pre code{background:none;padding:0;}
kbd{border:1px solid var(--trait);border-bottom-width:2px;border-radius:4px;padding:0 .35em;background:var(--surface);}
blockquote{margin:1.2em 0;padding:.2em 1em;border-left:3px solid var(--accent-vif);color:var(--texte-2);}
hr{border:0;border-top:1px solid var(--trait);margin:2em 0;}
.contenu table{border-collapse:collapse;width:100%;margin:1.2em 0;font-size:.94rem;display:block;overflow-x:auto;}
.contenu th,.contenu td{border-bottom:1px solid var(--trait);padding:7px 10px;text-align:left;vertical-align:top;}
.contenu th{font-weight:500;background:var(--fond-2);}
.contenu td:not(:first-child){font-variant-numeric:tabular-nums;}

.toc{border:1px solid var(--trait);border-radius:6px;padding:10px 16px;margin:0 0 1.8em;background:var(--surface);font-size:.93rem;}
.toc summary{cursor:pointer;font-family:var(--mono);font-size:.75rem;text-transform:uppercase;letter-spacing:.12em;min-height:32px;}
.toc ul{margin:.3em 0;padding-left:1.2em;}

.encadre{border:1px solid var(--trait);border-left:4px solid var(--feuille);border-radius:6px;background:var(--surface);
  padding:12px 18px;margin:1.6em 0;}
.encadre-titre{margin:0 0 .3em;font-family:var(--mono);font-size:.75rem;text-transform:uppercase;letter-spacing:.12em;color:var(--feuille);}
.encadre>:last-child{margin-bottom:0;}
.encadre-attention{border-left-color:var(--accent-vif);}
.encadre-attention .encadre-titre{color:var(--accent);}

figure{margin:1.8em 0;}
figcaption{font-size:.9rem;color:var(--texte-2);margin-top:.6em;}
.schema svg{display:block;width:100%;height:auto;background:var(--d-fond);border:1px solid var(--trait);border-radius:8px;}
.ecran img{display:block;border-radius:6px;image-rendering:pixelated;box-shadow:0 0 0 8px #1a1a1a,0 0 0 9px var(--trait);margin:8px;max-width:calc(100% - 16px);}
.carte-image{position:relative;}
.carte-image img{display:block;border-radius:8px;}
.carte-image svg{position:absolute;inset:0;width:100%;height:100%;}
.repere circle{fill:#E08A3C;stroke:#0B1826;stroke-width:4;}
.repere text{font:600 28px var(--corps);fill:#0B1826;}
.legende{columns:2 320px;column-gap:28px;padding-left:1.6em;margin:.8em 0;}
.legende li{break-inside:avoid;margin-bottom:.4em;}

/* schémas : classes communes des SVG de assets/diagrammes */
.d-boite{fill:var(--d-fond);stroke:var(--d-trait);stroke-width:2;}
.d-6502{fill:var(--d-6502);stroke:var(--d-trait);stroke-width:2;}
.d-rp{fill:var(--d-rp);stroke:var(--d-trait);stroke-width:2;}
.d-mem{fill:var(--d-mem);stroke:var(--d-trait);stroke-width:2;}
.d-accent-fond{fill:var(--d-accent);}
.d-ligne{stroke:var(--d-trait);stroke-width:2;fill:none;}
.d-pointe{fill:var(--d-trait);}
.d-t{fill:var(--d-texte);font:400 15px var(--corps);}
.d-tg{fill:var(--d-texte);font:500 17px var(--corps);}
.d-tp{fill:var(--d-doux);font:400 13px var(--corps);}
.d-tm{fill:var(--d-texte);font:400 13px var(--mono);}
.d-ta{fill:var(--d-accent);font:500 15px var(--corps);}

.cartes{list-style:none;padding:0;margin:1.5em 0;display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:14px;}
.cartes a{display:block;height:100%;padding:14px 16px;border:1px solid var(--trait);border-radius:8px;background:var(--surface);
  text-decoration:none;color:var(--texte);}
.cartes a:hover{border-color:var(--accent-vif);}
.cartes strong{display:block;font-weight:500;margin-bottom:4px;color:var(--accent);}
.cartes span{font-size:.9rem;color:var(--texte-2);line-height:1.45;}

.chiffres{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin:1.6em 0;padding:0;list-style:none;}
.chiffres li{border:1px solid var(--trait);border-radius:8px;padding:12px 14px;background:var(--surface);}
.chiffres b{display:block;font-family:var(--display);font-weight:400;font-size:1.7rem;color:var(--accent);line-height:1.1;}
.chiffres span{font-size:.88rem;color:var(--texte-2);}

.heros{padding:12px 0 8px;}
.heros h1{font-size:clamp(2.2rem,6vw,3.4rem);margin-bottom:.2em;}
.heros .chapeau{font-size:1.25rem;}
.boutons{display:flex;flex-wrap:wrap;gap:10px;margin:1.2em 0;}
.boutons a{display:inline-flex;align-items:center;min-height:44px;padding:0 18px;border-radius:6px;text-decoration:none;font-weight:500;
  border:1px solid var(--accent);}
.boutons a:first-child{background:var(--accent);color:var(--fond);}

.meta{margin-top:3em;font-size:.85rem;color:var(--texte-2);}
.suite{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:1.5em;}
.suite a{display:block;padding:12px 14px;border:1px solid var(--trait);border-radius:8px;text-decoration:none;}
.suite span{display:block;font-size:.75rem;font-family:var(--mono);text-transform:uppercase;letter-spacing:.1em;color:var(--texte-2);}
.suite .suiv{grid-column:2;text-align:right;}

.pied{border-top:1px solid var(--trait);color:var(--texte-2);font-size:.88rem;}
.pied-in{max-width:1280px;margin:0 auto;padding:20px 16px 40px;}
.pied p{margin:.3em 0;}

/* ---------- petits écrans ---------- */
@media (max-width:900px){
  .cadre{grid-template-columns:minmax(0,1fr);gap:0;}
  .laterale{display:none;}
  .sommaire-mobile{display:block;border-bottom:1px solid var(--trait);padding:6px 0;}
  .sommaire-mobile summary{min-height:44px;display:flex;align-items:center;cursor:pointer;font-family:var(--mono);font-size:.8rem;
    text-transform:uppercase;letter-spacing:.12em;}
  .entete-in{flex-wrap:wrap;}
  .recherche{order:3;flex-basis:100%;max-width:none;}
  .langues{margin-left:auto;}
}
@media (max-width:520px){
  body{font-size:1rem;}
  .suite{grid-template-columns:1fr;}
  .suite .suiv{grid-column:1;}
}
