/* ============================================================
   Wiki de Lunafall et d'Ashenfall — style « Nuit astrale » (choix de sian du 28/10/2026 :
   comme les menus d'Aether, transparent, épuré, astral). Verre de nuit très léger posé sur un ciel étoilé,
   filets d'or fins, titres en Cinzel dans leur plaque, boutons à contour (jamais remplis d'or).
   Aides à la lecture sur <html> : data-taille (0 à 3), data-contraste, data-police, data-calme.
   ============================================================ */
/* Polices hébergées avec le wiki (dossier polices/) : aucune requête vers un autre site. */
@font-face{font-family:'Nunito';font-style:normal;font-weight:400;font-display:swap;src:url(polices/nunito-latin-400-normal.woff2) format('woff2')}
@font-face{font-family:'Nunito';font-style:normal;font-weight:600;font-display:swap;src:url(polices/nunito-latin-600-normal.woff2) format('woff2')}
@font-face{font-family:'Nunito';font-style:normal;font-weight:700;font-display:swap;src:url(polices/nunito-latin-700-normal.woff2) format('woff2')}
@font-face{font-family:'Nunito';font-style:normal;font-weight:800;font-display:swap;src:url(polices/nunito-latin-800-normal.woff2) format('woff2')}
@font-face{font-family:'Cinzel';font-style:normal;font-weight:600;font-display:swap;src:url(polices/cinzel-latin-600-normal.woff2) format('woff2')}
@font-face{font-family:'Cinzel';font-style:normal;font-weight:700;font-display:swap;src:url(polices/cinzel-latin-700-normal.woff2) format('woff2')}
@font-face{font-family:'Atkinson Hyperlegible';font-style:normal;font-weight:400;font-display:swap;src:url(polices/atkinson-hyperlegible-latin-400-normal.woff2) format('woff2')}
@font-face{font-family:'Atkinson Hyperlegible';font-style:italic;font-weight:400;font-display:swap;src:url(polices/atkinson-hyperlegible-latin-400-italic.woff2) format('woff2')}
@font-face{font-family:'Atkinson Hyperlegible';font-style:normal;font-weight:700;font-display:swap;src:url(polices/atkinson-hyperlegible-latin-700-normal.woff2) format('woff2')}
:root{
  --nuit:#0b0716; --nuit2:#160d28;
  --verre:rgba(30,19,50,.58); --verre-fort:rgba(22,14,38,.86); --verre-clair:rgba(255,255,255,.045);
  --or:#f0c060; --or-clair:#fff0c8; --or-fil:rgba(240,192,96,.42); --or-doux:rgba(240,192,96,.2);
  --texte:#f6efe2; --doux:#c8bcdc; --lien:#ffe2a0; --violet:#b07aff;
  --vert:#9be37a; --rouge:#ff9a8a; --bleu:#9fd4ff;
  --t:18px; --police:'Nunito','Segoe UI',system-ui,sans-serif; --titre:'Cinzel',Georgia,serif;
  color-scheme:dark;
}
html[data-taille="1"]{--t:20px} html[data-taille="2"]{--t:23px} html[data-taille="3"]{--t:26px}
html[data-police="1"]{--police:'Atkinson Hyperlegible',Verdana,sans-serif;--titre:'Atkinson Hyperlegible',Verdana,sans-serif}
html[data-contraste="1"]{--nuit:#000;--nuit2:#000;--verre:#000;--verre-fort:#000;--verre-clair:#111;--texte:#fff;--doux:#e6e6e6;--lien:#ffe680;--or-fil:#ffd257;--or-doux:#ffd257}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:90px}
body{margin:0;min-height:100vh;background:radial-gradient(ellipse 80% 55% at 50% -10%,#2b1a48 0%,var(--nuit2) 45%,var(--nuit) 100%) fixed,var(--nuit);
  color:var(--texte);font:400 var(--t)/1.8 var(--police);letter-spacing:.005em;word-spacing:.04em}
html[data-contraste="1"] body{background:#000}
img{max-width:100%}
a{color:var(--lien);text-underline-offset:.2em;text-decoration-thickness:1px}
a:hover{color:#fff}
:focus-visible{outline:3px solid var(--or-clair);outline-offset:3px;border-radius:4px}
.cache{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.saut{position:absolute;left:12px;top:-60px;z-index:50;background:var(--verre-fort);border:1px solid var(--or);padding:8px 16px;border-radius:6px}
.saut:focus{top:10px}

/* ---------- ciel ---------- */
.ciel{position:fixed;inset:0;z-index:-1;pointer-events:none;overflow:hidden}
.ciel i{position:absolute;inset:-50%;background-repeat:repeat}
.ciel .c1{background-image:radial-gradient(1px 1px at 20px 30px,#fff,transparent),radial-gradient(1px 1px at 90px 120px,#ffe9c0,transparent),radial-gradient(1px 1px at 170px 60px,#d9ccff,transparent),radial-gradient(1px 1px at 230px 190px,#fff,transparent);background-size:260px 230px;opacity:.55}
.ciel .c2{background-image:radial-gradient(1.6px 1.6px at 50px 80px,#fff,transparent),radial-gradient(1.4px 1.4px at 210px 30px,#fff2c8,transparent),radial-gradient(1.8px 1.8px at 330px 250px,#e6d8ff,transparent);background-size:400px 340px;animation:scint 4.5s ease-in-out infinite alternate}
.ciel .c3{inset:0;background:radial-gradient(ellipse 40% 30% at 85% 15%,rgba(150,90,255,.16),transparent 70%),radial-gradient(ellipse 35% 28% at 10% 75%,rgba(80,140,255,.1),transparent 70%),radial-gradient(ellipse 30% 22% at 60% 95%,rgba(240,160,90,.07),transparent 70%)}
@keyframes scint{0%{opacity:.3}100%{opacity:1}}
html[data-contraste="1"] .ciel{display:none}
html[data-calme="1"] *,html[data-calme="1"] *::before,html[data-calme="1"] *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}html{scroll-behavior:auto}}

/* ---------- haut ---------- */
.haut{position:sticky;top:0;z-index:20;display:flex;flex-wrap:wrap;align-items:center;gap:10px 18px;padding:10px max(16px,3vw);
  background:linear-gradient(rgba(11,7,22,.9),rgba(11,7,22,.7));backdrop-filter:blur(8px);border-bottom:1px solid var(--or-doux)}
.logo{display:flex;align-items:center;gap:10px;font:700 1.05em var(--titre);letter-spacing:.16em;text-transform:uppercase;color:var(--or-clair);text-decoration:none}
.logo .lune{width:22px;height:22px;border-radius:50%;box-shadow:inset -6px -2px 0 0 var(--or-clair);transform:rotate(-20deg)}
.fil{color:var(--doux)}
.logo-jeu{font:700 1em var(--titre);letter-spacing:.08em;color:var(--or-clair);text-decoration:none}
.rech{position:relative;flex:1 1 220px;max-width:420px;margin-left:auto}
.rech input{width:100%;font:inherit;font-size:.9em;color:var(--texte);background:var(--verre-clair);border:1px solid var(--or-fil);border-radius:22px;padding:7px 16px}
.rech input::placeholder{color:var(--doux)}
.qres{position:absolute;left:0;right:0;top:calc(100% + 6px);margin:0;padding:6px;list-style:none;background:var(--verre-fort);border:1px solid var(--or-fil);border-radius:10px;max-height:60vh;overflow:auto;box-shadow:0 18px 40px rgba(0,0,0,.6);font-size:.9em}
.qres a{display:block;padding:8px 10px;border-radius:6px;text-decoration:none;color:var(--texte)}
.qres a:hover,.qres a:focus{background:var(--verre-clair);color:#fff}
.qres small{display:block;color:var(--doux);line-height:1.4}
.qres .vide{padding:8px 10px;color:var(--doux)}
.aides{display:flex;flex-wrap:wrap;gap:6px}
.aides button,.btn,.som-bouton{font:700 .82em var(--police);color:var(--texte);background:rgba(21,15,38,.75);border:1px solid var(--or-fil);border-radius:6px;padding:6px 12px;cursor:pointer;line-height:1.3}
.aides button:hover,.btn:hover,.som-bouton:hover{border-color:var(--or);color:var(--or-clair);background:#2a1e46}
.aides button[aria-pressed="true"]{border-color:var(--or);color:var(--or-clair);box-shadow:0 0 12px rgba(176,122,255,.35)}
.aides .plus{font-size:.8em;vertical-align:super}

/* ---------- cadre et sommaire ---------- */
.cadre{max-width:1640px;margin:0 auto;padding:44px max(16px,4vw) 60px}
.cadre.avec-som{display:grid;grid-template-columns:300px minmax(0,1fr);gap:clamp(28px,4vw,72px)}
.sommaire{position:sticky;top:84px;align-self:start;max-height:calc(100vh - 100px);overflow:auto;padding:14px 12px;background:var(--verre);border:1px solid var(--or-doux);border-radius:12px;backdrop-filter:blur(6px);font-size:.88em}
.som-bouton{display:none;width:100%}
.som-accueil{display:block;padding:8px 10px;margin-bottom:6px;border-radius:6px;font-weight:800;text-decoration:none;color:var(--or-clair)}
.sommaire details{border-top:1px solid var(--or-doux)}
.sommaire summary{cursor:pointer;list-style:none;padding:10px 8px;font:700 1em var(--titre);letter-spacing:.04em;color:var(--or-clair);display:flex;gap:8px;align-items:center}
.sommaire summary::-webkit-details-marker{display:none}
.sommaire summary::after{content:'';margin-left:auto;width:8px;height:8px;border-right:2px solid var(--or);border-bottom:2px solid var(--or);transform:rotate(-45deg);transition:transform .2s}
.sommaire details[open]>summary::after{transform:rotate(45deg)}
.sommaire ul{list-style:none;margin:0 0 10px;padding:0 0 0 6px}
.sommaire li a{display:flex;gap:8px;padding:6px 8px;border-radius:6px;text-decoration:none;color:var(--texte);line-height:1.35}
.sommaire li a:hover,.som-accueil:hover{background:var(--verre-clair);color:#fff}
.sommaire a.ici{border:1px solid var(--or-fil);color:var(--or-clair);background:rgba(240,192,96,.06)}
main{min-width:0;outline:none}

/* ---------- textes ---------- */
.plaque{position:relative;display:table;margin:0 0 18px;padding:12px 52px;font:700 clamp(1.3em,3.4vw,1.75em) var(--titre);letter-spacing:.16em;text-transform:uppercase;color:var(--or-clair);
  background:linear-gradient(rgba(59,42,92,.75),rgba(32,21,55,.75));border:1.5px solid var(--or-fil);border-radius:8px;overflow:hidden;line-height:1.3}
.plaque::before,.plaque::after{content:'';position:absolute;top:50%;width:13px;height:13px;margin-top:-6.5px;background:var(--or);transform:rotate(45deg);box-shadow:0 0 0 3px rgba(240,192,96,.15)}
.plaque::before{left:18px}.plaque::after{right:18px}
.plaque i{position:absolute;top:0;bottom:0;width:40%;left:-60%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.16),transparent);animation:reflet 5s ease-in-out infinite}
@keyframes reflet{0%{left:-60%}50%,100%{left:130%}}
html[data-contraste="1"] .plaque{background:#000}
main h2{font:700 1.3em var(--titre);letter-spacing:.05em;color:var(--or-clair);margin:2.4em 0 .8em;padding-bottom:.3em;border-bottom:1px solid var(--or-doux)}
main h3{font:700 1.08em var(--police);color:var(--or-clair);margin:1.4em 0 .3em}
main p,main li,main dd{max-width:76ch}
main p{margin:0 0 1.1em}
.texte{max-width:920px}
.rubrique{margin:-6px 0 14px;color:var(--doux);font-weight:700;font-size:.9em}
.bref{padding:20px 26px;margin:0 0 26px;background:var(--verre);border:1px solid var(--or-fil);border-left:5px solid var(--or);border-radius:10px;font-size:1.06em;max-width:920px}
.bref strong{color:var(--or-clair)}
.cartes2{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:20px;margin:0 0 26px;max-width:920px}
.carte{padding:18px 22px;background:var(--verre);border:1px solid var(--or-doux);border-radius:10px}
.carte strong{color:var(--or-clair)}.carte p{margin:4px 0 0}
.dans-page{padding:12px 18px;margin:0 0 10px;border:1px dashed var(--or-doux);border-radius:10px;max-width:78ch;font-size:.94em}
.dans-page ul{margin:6px 0 0;padding-left:1.2em;columns:2 220px}
strong{color:#fff;font-weight:800}
kbd{display:inline-block;min-width:1.7em;padding:0 .45em;margin:0 .1em;text-align:center;font:700 .85em var(--police);color:var(--or-clair);background:rgba(21,15,38,.9);border:1px solid var(--or-fil);border-bottom-width:3px;border-radius:5px;line-height:1.5}
ol.etapes{list-style:none;counter-reset:e;padding:0;margin:14px 0}
ol.etapes li{counter-increment:e;position:relative;padding:14px 18px 14px 68px;margin:12px 0;min-height:52px;background:var(--verre);border:1px solid var(--or-doux);border-radius:10px;display:flex;align-items:center}
ol.etapes li::before{content:counter(e);position:absolute;left:12px;top:50%;margin-top:-19px;width:38px;height:38px;display:grid;place-items:center;border:1.5px solid var(--or);border-radius:50%;font:800 1.05em var(--police);color:var(--or-clair);background:rgba(21,15,38,.9)}
ul.puces{padding-left:1.3em}
ul.puces li{margin:.35em 0}
ul.puces li::marker{color:var(--or);content:'✦  '}
.boite{display:flex;gap:14px;align-items:flex-start;padding:16px 20px;margin:20px 0;border-radius:8px;border:1px solid;border-left-width:5px;max-width:920px}
.boite .b-ico{font-size:1.3em;line-height:1.3}
.boite.astuce{border-color:rgba(155,227,122,.45);border-left-color:var(--vert);background:rgba(155,227,122,.07)}
.boite.astuce .b-nom{color:var(--vert)}
.boite.attention{border-color:rgba(255,154,138,.45);border-left-color:var(--rouge);background:rgba(255,154,138,.07)}
.boite.attention .b-nom{color:var(--rouge)}
.boite.info{border-color:rgba(159,212,255,.4);border-left-color:var(--bleu);background:rgba(159,212,255,.06)}
.boite.info .b-nom{color:var(--bleu)}
.boite.exemple{border-color:rgba(176,122,255,.45);border-left-color:var(--violet);background:rgba(176,122,255,.08)}
.boite.exemple .b-nom{color:#d9b8ff}
.tab{overflow-x:auto;margin:14px 0;max-width:100%}
table{border-collapse:collapse;min-width:60%;background:var(--verre);border:1px solid var(--or-doux);border-radius:8px;overflow:hidden;font-size:.95em}
th{text-align:left;color:var(--or-clair);background:rgba(59,42,92,.5);font-weight:800}
th,td{padding:8px 14px;border-bottom:1px solid var(--or-doux);vertical-align:top}
dfn.mot{font-style:normal;border-bottom:2px dotted var(--or);cursor:help;position:relative}
.bulle{position:absolute;z-index:40;max-width:min(340px,90vw);padding:10px 14px;background:var(--verre-fort);border:1px solid var(--or);border-radius:8px;box-shadow:0 12px 30px rgba(0,0,0,.6);font-size:.88em;line-height:1.5;color:var(--texte);pointer-events:none}
.bulle b{display:block;color:var(--or-clair);font-family:var(--titre);letter-spacing:.04em}
.suite{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:44px 0 0;padding-top:20px;border-top:1px solid var(--or-doux);max-width:920px}
.btn{display:inline-block;text-decoration:none;font-size:.92em;padding:10px 20px}
.btn.fort{border-color:var(--or);color:var(--or-clair);box-shadow:0 0 16px rgba(176,122,255,.2)}
.lu{background:rgba(240,192,96,.18);border-radius:3px}

/* ---------- glossaire ---------- */
.abc{display:flex;flex-wrap:wrap;gap:6px}
.abc a{display:inline-grid;place-items:center;width:2em;height:2em;border:1px solid var(--or-fil);border-radius:6px;text-decoration:none;font-weight:800}
dl.glossaire dt{font-weight:800;color:var(--or-clair);margin-top:12px}
dl.glossaire dd{margin:2px 0 0 0;padding-left:16px;border-left:2px solid var(--or-doux)}

/* ---------- accueil d'un jeu : fiche en deux colonnes ---------- */
.fiche-jeu{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:clamp(28px,4vw,64px);align-items:start}
.accroche{font-size:1.15em;color:var(--or-clair);font-weight:700;max-width:60ch}
.accroche.centre,.centre{text-align:center;margin-left:auto;margin-right:auto}
.fiche{position:sticky;top:96px;padding:22px 26px;background:var(--verre);border:1px solid var(--or-doux);border-radius:12px;backdrop-filter:blur(6px)}
.fiche-titre{display:block;font:700 1.05em var(--titre);letter-spacing:.16em;text-transform:uppercase;color:var(--or-clair);margin-bottom:10px;padding-bottom:10px;border-bottom:1px solid var(--or-doux)}
.fiche dl{margin:0 0 16px}
.fiche dl div{padding:10px 0}
.fiche dt{color:var(--doux);font-size:.85em;font-weight:700}
.fiche dd{margin:2px 0 0;font-weight:600;line-height:1.5}
.fiche .btn{display:block;text-align:center}
.titre-rub{margin-top:2em}
.rubs{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:14px}
.rub{display:flex;flex-direction:column;gap:2px;padding:16px;background:var(--verre);border:1px solid var(--or-doux);border-radius:10px;text-decoration:none;color:var(--texte)}
.rub:hover{border-color:var(--or);background:rgba(42,30,70,.7)}
.rub .r-ico{font-size:1.6em}.rub strong{color:var(--or-clair)}.rub small{color:var(--doux)}

/* ---------- accueil du wiki : deux portes ---------- */
body:not(:has(.sommaire)) main{max-width:980px;margin:0 auto}
body:not(:has(.sommaire)) .plaque{margin:10px auto 18px}
.portes{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin:20px 0 40px}
.porte{position:relative;display:flex;flex-direction:column;align-items:center;gap:8px;padding:34px 20px 26px;text-align:center;text-decoration:none;color:var(--texte);
  background:var(--verre);border:1.5px solid var(--or-fil);border-radius:120px 120px 14px 14px;overflow:hidden;transition:border-color .2s,transform .2s}
.porte::before{content:'';position:absolute;inset:8px;border:1px solid var(--or-doux);border-radius:112px 112px 8px 8px;pointer-events:none}
.porte:hover,.porte:focus-visible{border-color:var(--or);transform:translateY(-3px)}
.porte .p-ico{font-size:2.6em}
.porte strong{font:700 1.6em var(--titre);letter-spacing:.2em;text-transform:uppercase;color:var(--or-clair)}
.porte .btn{margin-top:10px}
.aide-lecture{padding:6px 22px 14px;background:var(--verre);border:1px solid var(--or-doux);border-radius:12px}
.retour{font:700 .82em var(--police);color:var(--doux);text-decoration:none;white-space:nowrap}
.retour:hover,.retour:focus{color:var(--or-clair)}
.bas a{color:var(--lien)}
.bas{text-align:center;color:var(--doux);font-size:.82em;padding:20px 16px 40px;border-top:1px solid var(--or-doux)}

/* ---------- petits écrans ---------- */
@media (max-width:900px){
  .cadre.avec-som{grid-template-columns:1fr;gap:18px}
  .sommaire{position:static;max-height:none}
  .som-bouton{display:block}
  .som-liste{display:none;margin-top:10px}
  .sommaire.ouvert .som-liste{display:block}
  .fiche-jeu{grid-template-columns:1fr}
  .fiche{position:static}
}
@media (max-width:640px){
  .portes{grid-template-columns:1fr}
  .plaque{padding:10px 40px;letter-spacing:.08em}
  .plaque::before{left:12px}.plaque::after{right:12px}
  ol.etapes li{padding-left:58px}
  .haut{gap:8px;position:static}
  html{scroll-padding-top:10px}
  .rech{order:3;flex-basis:100%;max-width:none}
}
@media print{.ciel,.haut,.sommaire,.suite,.aides{display:none}body{background:#fff;color:#000}.cadre.avec-som{display:block}}

/* ---------- captures du jeu ---------- */
figure.capture{margin:26px 0;max-width:920px}
figure.capture img{display:block;width:100%;height:auto;border-radius:10px;border:1px solid var(--or-doux);box-shadow:0 14px 40px rgba(0,0,0,.5);background:#000}
figure.capture a:hover img{border-color:var(--or)}
figure.capture figcaption{margin-top:10px;color:var(--doux);font-size:.88em;line-height:1.5}
.captures{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:22px;max-width:920px;margin:26px 0}
.captures figure.capture{margin:0}
.fiche-texte figure.capture:first-of-type{margin-top:6px}
