/* Pages du site (accueil, tables, invitation) : même nuit et même parchemin que la table de jeu. */
:root{
  --nuit:#11181a; --ardoise:#1a2427; --ardoise-2:#223035; --ardoise-3:#2c3d43; --ligne:#36494f;
  --texte:#e7dfcb; --texte-2:#a7b2ac; --parchemin:#efe5ca; --braise:#e8933a; --sang:#d0614a; --mousse:#93bb6c;
  --f-titre:"IM Fell English SC","Iowan Old Style",Georgia,serif;
  --f-ui:"Alegreya Sans",system-ui,-apple-system,"Segoe UI",sans-serif;
  color-scheme:dark;
}
*{box-sizing:border-box}
[hidden]{display:none!important}
html{background:var(--nuit)}
body{margin:0;min-height:100dvh;background:var(--nuit);color:var(--texte);font:17px/1.5 var(--f-ui);
  padding:calc(24px + env(safe-area-inset-top,0px)) 16px calc(32px + env(safe-area-inset-bottom,0px))}
main{max-width:38rem;margin:0 auto}
h1{font:400 clamp(30px,7vw,42px)/1.1 var(--f-titre);color:var(--parchemin);margin:0 0 4px;text-wrap:balance}
h2{font:400 24px/1.2 var(--f-titre);color:var(--parchemin);margin:0 0 10px}
.sous{color:var(--texte-2);margin:0 0 24px}
.carte{background:var(--ardoise);border:1px solid var(--ligne);border-radius:12px;padding:18px;margin:0 0 16px}
label{display:block;color:var(--texte-2);font-size:15px;margin:0 0 4px}
input[type=text],input[type=email]{width:100%;font:inherit;color:var(--texte);background:var(--ardoise-2);border:1px solid var(--ligne);border-radius:8px;padding:10px 12px;min-height:44px}
input:focus-visible,button:focus-visible,a:focus-visible{outline:2px solid var(--braise);outline-offset:2px}
.rang{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-top:12px}
.rang > input{flex:1;min-width:12rem}
.btn{font:600 16px/1 var(--f-ui);color:var(--texte);background:var(--ardoise-3);border:1px solid var(--ligne);border-radius:8px;padding:0 16px;min-height:44px;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center}
.btn:hover{border-color:var(--braise)}
.btn.or{background:var(--braise);border-color:var(--braise);color:#1b1206}
.btn[disabled]{opacity:.5;cursor:default}
.aide{color:var(--texte-2);font-size:15px;margin:8px 0 0}
.erreur{color:var(--sang);margin:8px 0 0}
.succes{color:var(--mousse);margin:8px 0 0}
a{color:var(--braise)}
.liste{list-style:none;margin:0;padding:0}
.liste li{padding:14px 0;border-top:1px solid var(--ligne)}
.liste li:first-child{border-top:0;padding-top:0}
.liste .nom{font-weight:700;font-size:19px;color:var(--parchemin)}
.pastille{display:inline-block;font-size:13px;border:1px solid var(--ligne);border-radius:99px;padding:1px 9px;margin-left:8px;color:var(--texte-2);vertical-align:middle}
.lien-inv{display:block;width:100%;margin-top:10px;font:15px/1.4 ui-monospace,Menlo,Consolas,monospace;color:var(--parchemin);background:var(--nuit);border:1px dashed var(--ligne);border-radius:8px;padding:10px;overflow-wrap:anywhere;user-select:all}
.entete{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap}
.qui{color:var(--texte-2);font-size:15px;text-align:right}

/* =====================================================================
   Pages publiques (accueil, règles, carte, 404) et pages munies de la
   navigation commune (css/nav.css) : le corps n'a plus de marge, le
   contenu la porte, le pied de page reste en bas.
   ===================================================================== */
:root{--parchemin-2:#e2d4b0;--encre:#2a2017;--encre-2:#6b5640;--texte-3:#7d8b86;
  --f-recit:"Alegreya","Iowan Old Style",Georgia,serif;--f-sc:"Alegreya Sans SC","Alegreya Sans",system-ui,sans-serif}
body.public{padding:0;display:flex;flex-direction:column}
body.public > main{width:100%;flex:1 0 auto;padding:28px max(16px,env(safe-area-inset-right,0px)) 44px max(16px,env(safe-area-inset-left,0px))}
body.public > main.large{max-width:72rem}
.sc{font:500 13px/1.2 var(--f-sc);letter-spacing:.14em;text-transform:lowercase;color:var(--braise)}
.btn.grand{min-height:50px;padding:0 22px;font-size:18px}
.parchemin{background:var(--parchemin);color:var(--encre);border-radius:4px;box-shadow:0 18px 40px -24px #000;font:18px/1.6 var(--f-recit)}
.parchemin a{color:#8a3d12}

/* ---------- accueil ---------- */
.a-hero{position:relative;isolation:isolate;overflow:hidden;border-bottom:1px solid var(--ligne);
  padding:clamp(56px,12vw,128px) max(16px,env(safe-area-inset-right,0px)) clamp(48px,9vw,96px) max(16px,env(safe-area-inset-left,0px))}
.a-hero::before{content:"";position:absolute;inset:0;z-index:-2;background:url("../assets/carteA.jpg") center 40%/cover no-repeat;filter:saturate(.8)}
.a-hero::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(17,24,26,.55) 0%,rgba(17,24,26,.82) 55%,var(--nuit) 100%)}
.a-hero .in{max-width:72rem;margin:0 auto}
.a-hero h1{font-size:clamp(52px,13vw,112px);line-height:.95;margin:6px 0 14px;text-shadow:0 2px 24px rgba(0,0,0,.6)}
.a-hero p.acc{font:italic clamp(19px,2.6vw,24px)/1.45 var(--f-recit);color:var(--parchemin);max-width:36rem;margin:0 0 26px;text-shadow:0 1px 12px rgba(0,0,0,.7)}
.a-hero .rang{margin-top:0}
.a-bloc{max-width:72rem;margin:0 auto;padding:44px 0 0}
.a-bloc > h2{font-size:clamp(28px,4.5vw,36px);margin:4px 0 16px}
.a-monde{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:24px;align-items:start}
.a-monde .parchemin{padding:26px 30px}
.a-monde .parchemin p{margin:0 0 .8em}.a-monde .parchemin p:last-child{margin:0}
.a-monde .parchemin b{color:#5a2d12}
.a-royaumes{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.a-royaumes li{background:var(--ardoise);border:1px solid var(--ligne);border-radius:10px;padding:12px 14px}
.a-royaumes b{display:block;font:400 21px/1.15 var(--f-titre);color:var(--parchemin)}
.a-royaumes i{display:block;font:italic 15px/1.3 var(--f-recit);color:var(--texte-2)}
.a-royaumes span{display:block;font-size:14px;color:var(--texte-3);margin-top:4px}
.a-etapes{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;counter-reset:e}
.a-etapes li{counter-increment:e;background:var(--ardoise);border:1px solid var(--ligne);border-radius:12px;padding:18px}
.a-etapes li::before{content:counter(e,upper-roman);display:block;font:400 26px/1 var(--f-titre);color:var(--braise);margin-bottom:8px}
.a-etapes h3{font:700 19px/1.25 var(--f-ui);color:var(--parchemin);margin:0 0 6px}
.a-etapes p{margin:0;color:var(--texte-2);font-size:16px}
.a-portes{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.a-porte{display:flex;flex-direction:column;gap:6px;background:var(--ardoise);border:1px solid var(--ligne);border-radius:12px;padding:18px;text-decoration:none;color:var(--texte);transition:border-color .15s}
.a-porte:hover{border-color:var(--braise)}
.a-porte b{font:400 23px/1.15 var(--f-titre);color:var(--parchemin)}
.a-porte span{color:var(--texte-2);font-size:16px;flex:1}
.a-porte em{font-style:normal;font-weight:700;color:var(--braise)}
@media (max-width:900px){.a-monde,.a-etapes{grid-template-columns:1fr}.a-portes{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.a-royaumes,.a-portes{grid-template-columns:1fr}.a-monde .parchemin{padding:20px 18px}}

/* ---------- règles ---------- */
.r-barre{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:0 0 18px}
.r-barre h1{margin:0 auto 0 0;font-size:clamp(28px,5vw,38px)}
.r-cherche{position:relative;flex:0 1 24rem;min-width:0;width:100%}
.r-cherche input{width:100%;font:inherit;color:var(--texte);background:var(--ardoise-2);border:1px solid var(--ligne);border-radius:8px;padding:10px 12px 10px 38px;min-height:44px}
.r-cherche svg{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--texte-2);pointer-events:none}
.r-cherche input:focus-visible{outline:2px solid var(--braise);outline-offset:1px}
#b-sommaire{display:none}
.r-grille{display:grid;grid-template-columns:290px minmax(0,1fr);gap:26px;align-items:start}
.r-sommaire{position:sticky;top:72px;max-height:calc(100dvh - 88px);overflow:auto;overscroll-behavior:contain;
  background:var(--ardoise);border:1px solid var(--ligne);border-radius:12px;padding:10px 6px 10px 10px;font-size:15px;line-height:1.3}
.r-sommaire ol{list-style:none;margin:0;padding:0}
.r-sommaire a{display:block;color:var(--texte-2);text-decoration:none;padding:7px 8px;border-radius:6px}
.r-sommaire a:hover{color:var(--parchemin);background:var(--ardoise-2)}
.r-sommaire .chap > a{font-weight:700;color:var(--texte)}
.r-sommaire .chap.ouvert > a{color:var(--parchemin)}
.r-sommaire .secs{margin:2px 0 8px 8px;border-left:1px solid var(--ligne)}
.r-sommaire .secs a{padding:5px 8px 5px 12px}
.r-sommaire .secs .d3 a{padding-left:24px;font-size:14px}
.r-sommaire a[aria-current="true"]{color:var(--braise);background:var(--ardoise-2)}
.r-lecture{min-width:0;padding:30px clamp(18px,4vw,48px) 36px}
.r-lecture h1{font:400 clamp(30px,5vw,44px)/1.1 var(--f-titre);color:var(--encre);margin:0 0 20px;text-wrap:balance}
.r-lecture .r-chap-sc{font:500 13px/1 var(--f-sc);letter-spacing:.16em;color:var(--encre-2);margin:0 0 8px}
.r-sec{scroll-margin-top:84px;padding-top:6px}
.r-sec + .r-sec{border-top:1px solid #d6c59c;margin-top:22px;padding-top:18px}
.r-lecture h2,.r-lecture h3,.r-lecture h4{font-family:var(--f-titre);font-weight:400;color:var(--encre);line-height:1.2;margin:1.1em 0 .45em;text-wrap:balance}
.r-lecture h2{font-size:28px}.r-lecture h3{font-size:23px}.r-lecture h4{font-size:19px}
.r-sec.d3 > h2:first-child{font-size:24px}
.r-sec > :first-child{margin-top:0}
.r-titre{display:flex;align-items:baseline;gap:8px}
.r-lien{flex:none;font:600 15px/1 var(--f-ui);color:var(--encre-2);text-decoration:none;border:1px solid transparent;border-radius:6px;padding:6px 8px;opacity:.55;cursor:pointer;background:none}
.r-lien:hover,.r-lien:focus-visible{opacity:1;border-color:#cbb88d}
.r-lecture p{margin:0 0 .8em}
.r-lecture ul{margin:0 0 .9em;padding-left:1.3em}
.r-lecture li{margin:.25em 0}
.r-lecture b{color:#3d2410}
.r-lecture em{color:#5a3a1e}
.r-lecture blockquote{margin:0 0 1em;padding:6px 16px;border-left:3px solid #b98a4a;background:#e9dcb9;font-style:italic}
.r-lecture .tab{overflow-x:auto;margin:0 0 1.1em;-webkit-overflow-scrolling:touch;border:1px solid #cdb98c;border-radius:4px}
.r-lecture table{border-collapse:collapse;width:100%;font:15px/1.4 var(--f-ui);background:#f6eed8}
.r-lecture th,.r-lecture td{padding:7px 10px;border-bottom:1px solid #dccb9f;text-align:left;vertical-align:top;min-width:6em}
.r-lecture th{background:var(--parchemin-2);font-weight:700;color:var(--encre)}
.r-lecture tr:last-child td{border-bottom:0}
.r-lecture mark,.r-res mark{background:#f2c46b;color:inherit;border-radius:2px;padding:0 1px}
.r-sec.cible{animation:cible 1.6s ease-out}
@keyframes cible{0%{box-shadow:0 0 0 6px rgba(232,147,58,.45)}100%{box-shadow:0 0 0 6px rgba(232,147,58,0)}}
@media (prefers-reduced-motion:reduce){.r-sec.cible{animation:none}}
.r-suite{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:28px;padding-top:18px;border-top:1px solid #d6c59c}
.r-suite a{font:600 16px/1.3 var(--f-ui);color:#8a3d12;text-decoration:none;max-width:48%}
.r-suite a:hover{text-decoration:underline}
.r-suite .suiv{margin-left:auto;text-align:right}
.r-res{background:var(--ardoise);border:1px solid var(--ligne);border-radius:12px;padding:14px 18px;min-width:0}
.r-res h2{font:400 24px/1.2 var(--f-titre);margin:0 0 6px}
.r-res ol{list-style:none;margin:10px 0 0;padding:0}
.r-res li{border-top:1px solid var(--ligne)}
.r-res li a{display:block;padding:12px 4px;text-decoration:none;color:var(--texte)}
.r-res li a:hover b{color:var(--braise)}
.r-res li b{display:block;color:var(--parchemin);font-size:17px}
.r-res li small{display:block;color:var(--texte-3);font-size:13px;margin:2px 0 4px}
.r-res li span{display:block;color:var(--texte-2);font-size:15px;overflow-wrap:anywhere}
.r-res mark{background:rgba(232,147,58,.35);color:var(--parchemin)}
.r-toast{position:fixed;left:50%;bottom:calc(24px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);background:var(--ardoise-3);border:1px solid var(--ligne);color:var(--texte);padding:10px 16px;border-radius:8px;z-index:40;box-shadow:0 10px 30px -10px #000;max-width:calc(100vw - 32px)}
@media (max-width:900px){
  #b-sommaire{display:inline-flex}
  .r-cherche{flex:1 1 100%;order:3}
  .r-grille{grid-template-columns:minmax(0,1fr);gap:16px}
  .r-sommaire{position:static;max-height:none;display:none}
  .r-sommaire.ouvert{display:block}
  .r-lecture{font-size:17px}
}

/* ---------- carte ---------- */
.c-page{display:flex;flex-direction:column;gap:12px}
.c-barre{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.c-barre h1{margin:0 auto 0 0;font-size:clamp(26px,5vw,38px)}
.c-outils{display:flex;gap:6px;align-items:center}
.c-outils .btn{min-width:44px;justify-content:center;font-size:20px;padding:0 12px}
.c-outils .btn.mot{font-size:16px}
#c-zoom{min-width:4.2em;text-align:center;color:var(--texte-2);font-variant-numeric:tabular-nums;font-size:15px}
.c-vue{position:relative;overflow:hidden;height:calc(100dvh - 210px);min-height:320px;background:#0b1012;border:1px solid var(--ligne);border-radius:12px;
  touch-action:none;cursor:grab;user-select:none;-webkit-user-select:none;overscroll-behavior:contain}
.c-vue.prise{cursor:grabbing}
.c-vue:focus-visible{outline:2px solid var(--braise);outline-offset:2px}
.c-vue img{position:absolute;left:0;top:0;transform-origin:0 0;max-width:none;will-change:transform;-webkit-user-drag:none;pointer-events:none}
.c-aide{color:var(--texte-2);font-size:15px;margin:0}
@media (max-width:560px){.c-vue{height:calc(100dvh - 250px)}}

/* ---------- 404 ---------- */
.p404{text-align:center;padding-top:clamp(24px,8vh,80px)}
.p404 .num{font:400 clamp(80px,22vw,160px)/1 var(--f-titre);color:var(--braise);margin:0}
.p404 .rang{justify-content:center}
