/* ═══════════════════ TOKENS ═══════════════════ */
:root{
  color-scheme: light dark;
  --f-display:"Palatino Linotype",Palatino,"Book Antiqua","URW Palladio L",Georgia,"Times New Roman",serif;
  --f-body:"Avenir Next",Avenir,"Segoe UI","Helvetica Neue",Helvetica,Arial,sans-serif;
  --f-util:ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,"Liberation Mono",monospace;

  /* LE GRIMOIRE — thème clair, papier vieilli */
  --ground:#EDE5D3; --ground-2:#E3D8BF;
  --surface:#F8F3E7; --surface-2:#FCFAF2;
  --line:rgba(122,92,36,.24); --line-strong:rgba(122,92,36,.48);
  --text:#1A150D; --dim:#6B6150;
  --gilt:#8A6318; --gilt-hi:#AD801F;
  --ember:#AE3A0B; --ember-hi:#CB4A0D;
  --astral:#2C5677; --astral-hi:#3A6C93;
  --shadow:0 18px 44px rgba(74,55,20,.13);
  --emblem-fx:drop-shadow(0 14px 28px rgba(74,55,20,.30));
  --halo:radial-gradient(circle at 50% 46%, rgba(174,58,11,.14), transparent 62%);
  --ember-ink:#AE3A0B;
  --vignette:linear-gradient(180deg, rgba(227,216,191,.9), transparent 30%);
  /* decors des deux mondes : voile clair, le texte est sombre */
  --card-scrim:rgba(248,243,231,.88); --card-scrim-0:rgba(248,243,231,0);
  --decor-p:.15; --decor-p-h:.28; --decor-a:.13; --decor-a-h:.24;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --ground:#0A0E16; --ground-2:#060910;
    --surface:#111826; --surface-2:#161F30;
    --line:rgba(200,154,60,.20); --line-strong:rgba(200,154,60,.46);
    --text:#E9E2D2; --dim:#9A9483;
    --gilt:#C89A3C; --gilt-hi:#EFCB7A;
    --ember:#E2571C; --ember-hi:#FF9048;
    --astral:#7FA8CC; --astral-hi:#A9CAE6;
    --shadow:0 26px 64px rgba(0,0,0,.58);
    --emblem-fx:drop-shadow(0 0 46px rgba(226,120,28,.30)) drop-shadow(0 18px 40px rgba(0,0,0,.6));
    --halo:radial-gradient(circle at 50% 46%, rgba(226,110,28,.20), transparent 62%);
    --ember-ink:#FF9048;
    --vignette:linear-gradient(180deg, rgba(6,9,16,.9), transparent 30%);
    --card-scrim:rgba(9,14,24,.72); --card-scrim-0:rgba(9,14,24,0);
    --decor-p:.26; --decor-p-h:.5; --decor-a:.24; --decor-a-h:.38;
  }
}
:root[data-theme="dark"]{
  --ground:#0A0E16; --ground-2:#060910;
  --surface:#111826; --surface-2:#161F30;
  --line:rgba(200,154,60,.20); --line-strong:rgba(200,154,60,.46);
  --text:#E9E2D2; --dim:#9A9483;
  --gilt:#C89A3C; --gilt-hi:#EFCB7A;
  --ember:#E2571C; --ember-hi:#FF9048;
  --astral:#7FA8CC; --astral-hi:#A9CAE6;
  --shadow:0 26px 64px rgba(0,0,0,.58);
  --emblem-fx:drop-shadow(0 0 46px rgba(226,120,28,.30)) drop-shadow(0 18px 40px rgba(0,0,0,.6));
  --halo:radial-gradient(circle at 50% 46%, rgba(226,110,28,.20), transparent 62%);
  --ember-ink:#FF9048;
  --vignette:linear-gradient(180deg, rgba(6,9,16,.9), transparent 30%);
  --card-scrim:rgba(9,14,24,.72); --card-scrim-0:rgba(9,14,24,0);
  --decor-p:.26; --decor-p-h:.5; --decor-a:.24; --decor-a-h:.38;
}

/* ═══════════════════ BASE ═══════════════════ */
*{box-sizing:border-box}
body{
  margin:0; background:var(--ground); color:var(--text);
  font-family:var(--f-body); font-size:16px; line-height:1.65;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%; display:block}
button{font:inherit; color:inherit; background:none; border:0; cursor:pointer}
a{color:inherit}
:focus-visible{outline:2px solid var(--gilt-hi); outline-offset:3px; border-radius:2px}

.wrap{width:min(1180px,92vw); margin-inline:auto}

h1,h2,h3,h4{font-family:var(--f-display); font-weight:700; text-wrap:balance; margin:0; line-height:1.14}
p{margin:0}

.eyebrow{
  font-family:var(--f-util); font-size:.6875rem; letter-spacing:.2em;
  text-transform:uppercase; color:var(--gilt); margin:0;
}
.lead{color:var(--dim); font-size:1.0625rem; max-width:62ch}
.num{font-family:var(--f-util); font-variant-numeric:tabular-nums}

/* ═══════════════════ RAIL / NAV ═══════════════════ */
.rail{
  position:sticky; top:0; z-index:60;
  background:color-mix(in srgb, var(--ground) 88%, transparent);
  backdrop-filter:blur(14px) saturate(1.2);
  border-bottom:1px solid var(--line);
}
.rail-inner{
  width:min(1180px,92vw); margin-inline:auto;
  display:flex; align-items:center; gap:1.25rem; height:68px;
}
.mark{display:flex; align-items:center; gap:.6rem; text-decoration:none; flex:none}
.mark-emblem{width:36px; height:auto; filter:var(--emblem-fx)}
.mark-text{
  font-family:var(--f-display); font-weight:700; font-size:.8125rem;
  letter-spacing:.16em; text-transform:uppercase;
  background:linear-gradient(180deg,var(--gilt-hi),var(--gilt));
  -webkit-background-clip:text; background-clip:text; color:transparent;
  white-space:nowrap;
}
.nav{
  display:flex; gap:.15rem; margin-left:auto; overflow-x:auto;
  scrollbar-width:none; -ms-overflow-style:none;
}
.nav::-webkit-scrollbar{display:none}
.nav-item{
  font-family:var(--f-util); font-size:.6875rem; letter-spacing:.15em;
  text-transform:uppercase; color:var(--dim);
  padding:.55rem .7rem; border-radius:3px; white-space:nowrap;
  position:relative; transition:color .2s;
}
.nav-item:hover{color:var(--text)}
.nav-item.is-active{color:var(--gilt-hi)}
.nav-item.is-active::after{
  content:""; position:absolute; left:.7rem; right:.7rem; bottom:.15rem; height:1px;
  background:linear-gradient(90deg,transparent,var(--gilt),transparent);
}
.nav-auth{
  font-family:var(--f-util); font-size:.625rem; letter-spacing:.12em;
  text-transform:uppercase; color:var(--gilt-hi); white-space:nowrap;
  padding:.48rem .62rem; margin:.07rem .1rem; border:1px solid var(--line);
  border-radius:3px; transition:background .2s,border-color .2s,color .2s,transform .2s;
}
.nav-auth:hover{border-color:var(--gilt); background:color-mix(in srgb,var(--gilt) 12%,transparent); color:var(--text); transform:translateY(-1px)}
.nav-signup{border-color:var(--gilt); background:color-mix(in srgb,var(--gilt) 8%,transparent)}
.nav-dashboard{border-color:var(--ember);color:var(--text);background:color-mix(in srgb,var(--ember) 14%,transparent)}
.nav-logout{color:var(--dim)}
.account-tool{width:46px;height:46px;border-radius:50%;border:1px solid var(--gilt);display:grid;place-items:center;overflow:hidden;color:var(--text);font-family:var(--f-display);font-size:1.15rem;background:var(--surface);transition:transform .2s,box-shadow .2s}.account-tool[hidden]{display:none}.account-tool:hover{transform:translateY(-2px);box-shadow:0 0 0 3px color-mix(in srgb,var(--gilt) 16%,transparent)}.account-tool img{width:100%;height:100%;object-fit:cover}
.tools{display:flex; gap:.35rem; flex:none; margin-left:.5rem}
.tool{
  width:36px; height:36px; display:grid; place-items:center; border-radius:50%;
  border:1px solid var(--line); color:var(--dim); position:relative;
  transition:border-color .2s,color .2s;
}
.tool:hover{border-color:var(--line-strong); color:var(--gilt-hi)}
.tool svg{width:16px; height:16px}
.cart-count{
  position:absolute; top:-3px; right:-3px; min-width:17px; height:17px; padding:0 4px;
  border-radius:9px; background:var(--ember); color:#fff;
  font-family:var(--f-util); font-size:.5625rem; line-height:17px; text-align:center;
  opacity:0; transform:scale(.5); transition:.25s;
}
.cart-count.on{opacity:1; transform:scale(1)}
@media (max-width:880px){
  .rail-inner{height:60px; gap:.75rem}
  .mark-text{display:none}
  .nav{margin-left:0}
}

/* ═══════════════════ VIEWS ═══════════════════ */
.view{display:none}
.view.is-on{display:block; animation:rise .5s ease both}
@keyframes rise{from{opacity:0; transform:translateY(10px)} to{opacity:1; transform:none}}

.section{padding:clamp(3.5rem,7vw,6rem) 0}
.section-head{display:flex; flex-direction:column; gap:.7rem; margin-bottom:2.5rem; max-width:60ch}
.section-head h2{font-size:clamp(1.6rem,3.2vw,2.25rem)}

/* filet ornemental */
.rule{display:flex; align-items:center; gap:1rem; opacity:.85}
.rule i{flex:1; height:1px; background:linear-gradient(90deg,transparent,var(--line-strong),transparent)}
.rule svg{width:15px; height:15px; color:var(--gilt); flex:none}

/* ═══════════════════ HERO ═══════════════════ */
.hero{position:relative; overflow:hidden; border-bottom:1px solid var(--line)}
.hero::before{content:""; position:absolute; inset:0; background:var(--halo); pointer-events:none}
#embers{position:absolute; inset:0; width:100%; height:100%; pointer-events:none; opacity:.85}
.hero-inner{
  position:relative; width:min(1180px,92vw); margin-inline:auto;
  display:grid; grid-template-columns:1.28fr .72fr; gap:clamp(2rem,5vw,4rem);
  align-items:center; padding:clamp(3rem,7vw,5.5rem) 0 clamp(2.5rem,5vw,4rem);
}
.hero h1{
  font-size:clamp(2.3rem,5.2vw,3.9rem); margin:1.1rem 0 1.3rem;
  letter-spacing:-.01em; color:var(--ember-ink);
}
.hero-copy > .lead{font-size:1.09rem}
/* la mention du rythme de parution tient sur une seule ligne des que la colonne le permet */
.hero-copy > .lead + .lead{margin-top:1rem; max-width:none}
@media (min-width:1220px){
  .hero-copy > .lead + .lead{white-space:nowrap; font-size:1rem}
}
.hero-cta{display:flex; flex-wrap:wrap; gap:.8rem; margin-top:2rem}
.hero-emblem{justify-self:center; width:min(100%,400px); filter:var(--emblem-fx); animation:float 9s ease-in-out infinite}
@keyframes float{0%,100%{transform:translateY(0)} 50%{transform:translateY(-12px)}}
@media (max-width:900px){
  .hero-inner{grid-template-columns:1fr; padding-top:2.5rem}
  .hero-emblem{grid-row:1; width:min(74%,300px); margin-bottom:.5rem}
}
@media (prefers-reduced-motion:reduce){
  .hero-emblem{animation:none}
  .view.is-on{animation:none}
}

/* ═══════════════════ BOUTONS ═══════════════════ */
.btn{
  display:inline-flex; align-items:center; gap:.5rem;
  font-family:var(--f-util); font-size:.6875rem; letter-spacing:.16em; text-transform:uppercase;
  padding:.85rem 1.5rem; border-radius:2px; border:1px solid transparent;
  text-decoration:none; transition:transform .18s, box-shadow .18s, background .18s, border-color .18s;
}
.btn:hover{transform:translateY(-2px)}
.btn-fire{
  background:linear-gradient(135deg,var(--ember),var(--ember-hi)); color:#fff;
  box-shadow:0 8px 24px color-mix(in srgb, var(--ember) 40%, transparent);
}
.btn-fire:hover{box-shadow:0 14px 34px color-mix(in srgb, var(--ember) 52%, transparent)}
.btn-gilt{border-color:var(--line-strong); color:var(--gilt-hi)}
.btn-gilt:hover{border-color:var(--gilt); background:color-mix(in srgb, var(--gilt) 10%, transparent)}
.btn-sm{padding:.6rem 1rem; font-size:.625rem}

/* ═══════════════════ BANDEAU CHAPITRE ═══════════════════ */
.chapter{
  border-top:1px solid var(--line); border-bottom:1px solid var(--line);
  background:linear-gradient(180deg, color-mix(in srgb,var(--surface) 70%, transparent), transparent);
}
.chapter-in{
  width:min(1180px,92vw); margin-inline:auto; padding:2.2rem 0;
  display:grid; grid-template-columns:auto 1fr auto; gap:2rem; align-items:center;
}
.pulse{
  display:inline-flex; align-items:center; gap:.5rem;
  font-family:var(--f-util); font-size:.625rem; letter-spacing:.18em; text-transform:uppercase; color:var(--ember-ink);
}
.pulse::before{
  content:""; width:7px; height:7px; border-radius:50%; background:var(--ember);
  box-shadow:0 0 0 0 color-mix(in srgb,var(--ember) 60%, transparent); animation:ping 2.2s infinite;
}
@keyframes ping{70%{box-shadow:0 0 0 9px transparent} 100%{box-shadow:0 0 0 0 transparent}}
@media (prefers-reduced-motion:reduce){.pulse::before{animation:none}}
.chapter h3{font-size:1.35rem; margin:.5rem 0 .45rem}
.chapter p{color:var(--dim); font-size:.9375rem; max-width:58ch}
.chapter-meta{
  font-family:var(--f-util); font-size:.6875rem; color:var(--dim);
  letter-spacing:.05em; margin-top:.7rem;
}
.countdown{text-align:right; flex:none}
.countdown .k{font-family:var(--f-util); font-size:.5625rem; letter-spacing:.18em; text-transform:uppercase; color:var(--dim)}
.countdown .v{font-family:var(--f-display); font-size:1.7rem; color:var(--gilt-hi); font-variant-numeric:tabular-nums; letter-spacing:.02em}
@media (max-width:860px){
  .chapter-in{grid-template-columns:1fr; gap:1.2rem}
  .countdown{text-align:left}
}

/* ═══════════════════ CARTES ═══════════════════ */
.card{
  background:var(--surface); border:1px solid var(--line); border-radius:3px;
  padding:1.6rem; transition:border-color .25s, transform .25s, background .25s;
}
.card:hover{border-color:var(--line-strong); transform:translateY(-3px); background:var(--surface-2)}
.card h3{font-size:1.1rem; margin-bottom:.55rem}
.card p{color:var(--dim); font-size:.9375rem}
.kicker{
  font-family:var(--f-util); font-size:.5625rem; letter-spacing:.2em;
  text-transform:uppercase; color:var(--gilt); display:block; margin-bottom:.7rem;
}

/* raccourcis d'actualite vers les rubriques */
.ordres{display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--line); border:1px solid var(--line)}
.ordre{
  display:block; width:100%; text-align:left; border:0; font:inherit; color:inherit; cursor:pointer;
  background:var(--ground); padding:2.1rem 1.5rem; transition:background .3s; position:relative;
}
.ordre:hover{background:var(--surface)}
.ordre .sig{width:30px; height:30px; color:var(--gilt); margin-bottom:1.2rem; transition:color .3s}
.ordre:hover .sig{color:var(--gilt-hi)}
.ordre h3{font-size:1.05rem; margin:0}
@media (max-width:900px){.ordres{grid-template-columns:repeat(2,1fr)}}
@media (max-width:520px){.ordres{grid-template-columns:1fr}}

/* chroniques */
.chron{display:grid; gap:0; border-top:1px solid var(--line)}
.chron a{
  display:grid; grid-template-columns:130px 1fr auto; gap:1.5rem; align-items:center;
  padding:1.4rem .5rem; border-bottom:1px solid var(--line); text-decoration:none;
  transition:background .2s, padding-left .25s;
}
.chron a:hover{background:var(--surface); padding-left:1.2rem}
.chron .d{font-family:var(--f-util); font-size:.6875rem; color:var(--gilt); letter-spacing:.08em}
.chron h3{font-size:1.05rem}
.chron .t{font-family:var(--f-util); font-size:.625rem; letter-spacing:.14em; text-transform:uppercase; color:var(--dim)}
.chron-empty{padding:1.4rem .5rem;border-bottom:1px solid var(--line);color:var(--dim)}
.lore-article{max-width:820px}.lore-article-date{font-family:var(--f-util);font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--gilt);padding-bottom:1.5rem;border-bottom:1px solid var(--line)}.lore-article-body{padding-top:2rem;white-space:pre-wrap;color:var(--text);font-size:1.08rem;line-height:1.9}
.lore-article-intro{margin:2rem 0 0;padding-left:1.25rem;border-left:2px solid var(--gilt);color:var(--dim);font-size:1.15rem;line-height:1.75}.lore-article-cover{display:block;width:100%;max-height:460px;margin:2rem 0 0;object-fit:cover;border:1px solid var(--line)}.lore-takeaway,.lore-sources,.lore-related{margin-top:2.5rem;padding:1.4rem;border:1px solid var(--line);background:var(--surface)}.lore-takeaway{border-left:3px solid var(--gilt)}.lore-takeaway p:last-child,.lore-sources p:last-child{margin-top:.75rem;color:var(--dim);line-height:1.7;white-space:pre-wrap}.lore-related>div{display:grid;gap:.65rem;margin-top:1rem}.lore-related a{color:var(--gilt-hi);text-decoration:underline}
.lore-tags{display:flex;flex-wrap:wrap;gap:.45rem;margin-top:1rem}.lore-tags span{padding:.28rem .5rem;border:1px solid var(--line-strong);color:var(--gilt-hi);font-family:var(--f-util);font-size:.58rem;letter-spacing:.08em;text-transform:uppercase}
.featured-form-fields{display:grid;gap:1.2rem;padding:1.2rem;border:1px solid var(--line);background:color-mix(in srgb,var(--gilt) 5%,transparent)}.featured-events-section{margin-top:clamp(2rem,6vw,5rem);padding-top:clamp(3.5rem,7vw,6rem)!important;border-top:1px solid var(--line)}.featured-events-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.5rem}.featured-event-card{border:1px solid var(--line);background:var(--surface);overflow:hidden}.featured-event-cover{display:block;width:100%;aspect-ratio:16/9;object-fit:cover}.featured-event-copy{padding:1.5rem}.featured-event-copy .eyebrow{margin-bottom:.7rem}.featured-event-copy h3{font-size:1.6rem;margin:0 0 .8rem}.featured-event-copy>p:last-child{color:var(--dim);line-height:1.7}.featured-gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:2px;margin-top:1.2rem}.featured-gallery img{display:block;width:100%;aspect-ratio:1;object-fit:cover}.featured-events-empty{grid-column:1/-1;padding:1.5rem;border:1px dashed var(--line-strong);color:var(--dim)}@media(max-width:700px){.featured-events-grid{grid-template-columns:1fr}}
@media (max-width:760px){
  .chron a{grid-template-columns:1fr; gap:.4rem}
  .chron .t{order:-1}
}

/* ═══════════════════ DEUX MONDES ═══════════════════ */
.mondes{display:grid; grid-template-columns:1fr 1fr; gap:1.5rem}
.monde{padding:2.4rem; border:1px solid var(--line); border-radius:3px; position:relative; overflow:hidden}
.monde > *{position:relative; z-index:1}
/* decor de chaque monde : le paysage monte et s'eclaire au survol */
.monde::after{
  content:""; position:absolute; left:0; right:0; bottom:0; height:62%;
  background-position:center bottom; background-size:cover; background-repeat:no-repeat;
  -webkit-mask-image:linear-gradient(to top,#000 18%,rgba(0,0,0,.42) 58%,transparent);
          mask-image:linear-gradient(to top,#000 18%,rgba(0,0,0,.42) 58%,transparent);
  transform:translateY(10px) scale(1.05); transform-origin:bottom center;
  transition:opacity .7s ease, transform .9s cubic-bezier(.22,.7,.24,1), filter .7s ease;
  pointer-events:none;
}
/* le voile protege la zone de texte ; sa teinte suit le theme */
.monde.phys::after{
  background-image:linear-gradient(to top,var(--card-scrim),var(--card-scrim-0) 55%),url("../assets/ville.png");
  opacity:var(--decor-p);
}
.monde.phys.districts-card::after{
  background-image:linear-gradient(to top,var(--card-scrim),var(--card-scrim-0) 55%),url("assets/Grilles.png");
}
.monde.astr::after{
  background-image:linear-gradient(to top,var(--card-scrim),var(--card-scrim-0) 55%),url("../assets/iles.jpg");
  opacity:var(--decor-a); filter:saturate(.75);
}
.monde.phys:hover::after{opacity:var(--decor-p-h); transform:translateY(0) scale(1); filter:saturate(1.25) brightness(1.12)}
.monde.astr:hover::after{opacity:var(--decor-a-h); transform:translateY(0) scale(1); filter:saturate(1) brightness(1.06)}
@media (prefers-reduced-motion:reduce){
  .monde::after{transition:none; transform:none}
  .monde.phys:hover::after, .monde.astr:hover::after{transform:none}
}
.monde.phys{background:linear-gradient(160deg, color-mix(in srgb,var(--gilt) 9%, var(--surface)), var(--surface))}
.monde.astr{background:linear-gradient(160deg, color-mix(in srgb,var(--astral) 12%, var(--surface)), var(--surface))}
.monde .sig{width:34px; height:34px; margin-bottom:1.4rem}
.monde.phys .sig{color:var(--gilt)}
.monde.astr .sig{color:var(--astral)}
.monde h3{font-size:1.6rem; margin-bottom:.9rem}
.monde.phys h3{color:var(--gilt-hi)}
.monde.astr h3{color:var(--astral-hi)}
.monde p{color:var(--dim); font-size:.9375rem}
.facts{display:flex; flex-wrap:wrap; gap:1.4rem; margin-top:1.8rem; padding-top:1.4rem; border-top:1px solid var(--line)}
.facts div b{display:block; font-family:var(--f-display); font-size:1.15rem}
.facts div span{font-family:var(--f-util); font-size:.5625rem; letter-spacing:.16em; text-transform:uppercase; color:var(--dim)}
@media (max-width:820px){.mondes{grid-template-columns:1fr}}

/* sélection d'un monde : la carte cliquée reste mise en avant */
.monde[data-go]{cursor:pointer; text-align:left; border-color:var(--line)}
.monde.phys.is-active{border-color:var(--gilt); box-shadow:0 0 0 1px var(--gilt) inset}
.monde.astr.is-active{border-color:var(--astral); box-shadow:0 0 0 1px var(--astral) inset}
.monde-hint{font-family:var(--f-util); font-size:.5625rem; letter-spacing:.14em; text-transform:uppercase; color:var(--dim); margin-top:1.1rem}
.monde.phys.is-active .monde-hint, .monde.astr.is-active .monde-hint{color:inherit}

/* ═══════════════════ RUBRIQUES D'UN MONDE ═══════════════════ */
.world-menu-wrap{padding-top:clamp(2rem,4vw,3.5rem)}
.world-menu{display:grid; grid-template-columns:repeat(2,1fr); gap:1px; border:1px solid var(--line); background:var(--line)}
.world-menu-card{
  min-height:178px; padding:1.6rem; text-align:left; background:var(--ground); color:var(--text);
  display:flex; flex-direction:column; align-items:flex-start; gap:.7rem; transition:background .25s, color .25s;
}
.world-menu-card:hover{background:var(--surface)}
.world-menu-card span{font-family:var(--f-util); font-size:.625rem; letter-spacing:.16em; color:var(--dim)}
.world-menu-card b{font-family:var(--f-display); font-size:1.35rem; line-height:1.2}
.world-menu-card small{font-family:var(--f-util); font-size:.625rem; letter-spacing:.1em; text-transform:uppercase; color:var(--dim)}
.world-menu-card.phys-card.is-active{background:color-mix(in srgb,var(--gilt) 12%,var(--surface)); box-shadow:inset 3px 0 var(--gilt)}
.world-menu-card.astr-card.is-active{background:color-mix(in srgb,var(--astral) 16%,var(--surface)); box-shadow:inset 3px 0 var(--astral)}
.world-detail{display:none}
.world-detail.is-active{display:block; animation:rise .4s ease both}
.world-page.is-detail > .phero,.world-page.is-detail > .world-menu-wrap{display:none}
.world-detail-head{padding-top:clamp(2rem,4vw,3.5rem)}
.world-presentation{grid-template-columns:minmax(0,1fr)}
@media (max-width:620px){.world-menu{grid-template-columns:1fr}.world-menu-card{min-height:142px}}

/* Menu d'entrée du Monde Physique : les quatre rubriques restent visibles à 100 % de zoom. */
#v-monde-reel:not(.is-detail) > .phero{padding:1.1rem 0 1.3rem}
#v-monde-reel:not(.is-detail) > .phero h1{font-size:clamp(2rem,3.1vw,2.7rem);line-height:1.12;max-width:none;white-space:nowrap}
#v-monde-reel:not(.is-detail) > .world-menu-wrap{padding-top:1rem;padding-bottom:1.4rem}
#v-monde-reel:not(.is-detail) .world-menu{grid-template-columns:repeat(2,minmax(0,1fr))}
#v-monde-reel:not(.is-detail) .world-menu-card{min-height:150px;padding:1.2rem;gap:.5rem}
@media(max-width:1100px){#v-monde-reel:not(.is-detail) > .phero h1{white-space:normal}}

/* La présentation profite de la largeur de l'écran : la première carte reste visible sans défilement. */
#v-monde-reel .world-detail .section-head{max-width:none;margin-bottom:1.5rem}
#v-monde-reel .world-detail .section-head .lead{max-width:110ch}

/* Les cartes du Monde Physique tiennent intégralement dans le premier écran. */
#v-monde-reel .world-detail[data-detail="carte"] .game-map{display:flex;flex-direction:column;align-items:center}
#v-monde-reel .world-detail[data-detail="carte"] .map-view-tabs{width:100%}
#v-monde-reel .world-detail[data-detail="carte"] .map-board:not(.is-detail){width:fit-content;height:calc(100vh - 18rem);max-width:100%;aspect-ratio:var(--map-ratio,1080 / 735);margin-inline:auto;flex:none}
#v-monde-reel .world-detail[data-detail="carte"] .map-board:not(.is-detail) .map-image-views{position:absolute;inset:0}
#v-monde-reel .world-detail[data-detail="carte"] .map-board:not(.is-detail) .map-image-view{width:100%;height:100%;object-fit:fill}
@media(max-width:820px){#v-monde-reel .world-detail[data-detail="carte"] .map-board:not(.is-detail){height:auto;width:100%;aspect-ratio:auto}#v-monde-reel .world-detail[data-detail="carte"] .map-board:not(.is-detail) .map-image-views{position:relative}#v-monde-reel .world-detail[data-detail="carte"] .map-board:not(.is-detail) .map-image-view{width:100%;height:auto}}

/* ═══════════════════ FICHES (admin Django) ═══════════════════ */
.fiches-filters{display:flex; flex-wrap:wrap; gap:.55rem; margin-bottom:1.8rem}
.fiche-filter{
  font-family:var(--f-util); font-size:.625rem; letter-spacing:.12em; text-transform:uppercase;
  padding:.5rem 1rem; border-radius:99px; border:1px solid var(--line-strong); color:var(--dim);
  transition:border-color .2s, color .2s, background .2s;
}
.fiche-filter:hover{color:var(--text); border-color:var(--gilt)}
.fiche-filter.is-active{color:var(--gilt-hi); border-color:var(--gilt); background:color-mix(in srgb,var(--gilt) 10%, transparent)}
.fiche-grid{display:grid; grid-template-columns:repeat(auto-fill,minmax(240px,1fr)); gap:1.25rem}
.character-groups{grid-template-columns:repeat(3,minmax(0,1fr));gap:1.5rem}
.fiche-card.character-group{position:relative;overflow:hidden;display:flex;flex-direction:column;justify-content:flex-start;align-items:flex-start;min-height:360px;padding:2.4rem;cursor:pointer;border-radius:3px;background-color:var(--surface);background-position:center;background-size:cover;background-repeat:no-repeat;color:var(--text);transition:transform .35s ease,border-color .35s ease,box-shadow .35s ease,background-size .65s ease}
.character-group::after{display:none}
.fiche-card.character-group.ordinary-people{background-image:url("assets/Les hommes ordinaires 02.png")}
.fiche-card.character-group.shadow-people{background-image:url("assets/Les hommes de l'ombre.png")}
.fiche-card.character-group.system-people{background-image:url("assets/Le système.png")}
.character-group h3{margin:0;color:var(--gilt-hi);font-size:clamp(1.7rem,2.5vw,2.45rem);line-height:1.1;text-shadow:0 2px 14px rgba(0,0,0,.9)}
.fiche-card.character-group p{max-height:0;max-width:32rem;overflow:hidden;margin:0;color:var(--text);opacity:0;transform:translateY(10px);font-size:1rem;line-height:1.6;text-shadow:0 1px 9px rgba(0,0,0,.95);transition:max-height .4s ease,opacity .3s ease,transform .4s ease}
.fiche-card.character-group:hover,.fiche-card.character-group:focus-visible{border-color:var(--gilt-hi);background-color:var(--surface);background-size:108%;transform:translateY(-6px);box-shadow:0 14px 32px rgba(0,0,0,.35);outline:none}
.fiche-card.character-group:hover p,.fiche-card.character-group:focus-visible p{max-height:12rem;opacity:1;transform:translateY(0);margin-top:1rem}
.fraternity-groups{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.5rem}
.fraternity-card{position:relative;isolation:isolate;min-height:680px;overflow:hidden;border:1px solid var(--line-strong);border-radius:3px;background:var(--surface);transition:transform .35s ease,border-color .35s ease,box-shadow .35s ease}
.fraternity-card img{width:100%;height:100%;position:absolute;inset:0;object-fit:contain;background:var(--surface);transition:transform .65s ease}
.fraternity-card::after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(180deg,rgba(6,9,16,.6),transparent 28%)}
.fraternity-card h2{position:relative;z-index:2;margin:0;padding:1.8rem;color:var(--gilt-hi);font-family:var(--f-display);font-size:clamp(1.8rem,3vw,2.6rem);line-height:1.1;text-shadow:0 2px 14px rgba(0,0,0,.9)}
.fraternity-card p{position:relative;z-index:2;max-height:0;overflow:hidden;margin:0;padding:0 1.8rem;color:var(--text);opacity:0;transform:translateY(10px);font-size:1rem;line-height:1.6;text-shadow:0 1px 9px rgba(0,0,0,.95);transition:max-height .4s ease,opacity .3s ease,transform .4s ease}
.fraternity-card:hover{transform:translateY(-6px);border-color:var(--gilt-hi);box-shadow:0 14px 32px rgba(0,0,0,.35)}
.fraternity-card:hover img{transform:scale(1.06)}
.fraternity-card:hover p{max-height:12rem;opacity:1;transform:translateY(0);padding-bottom:1.8rem}
@media(max-width:760px){.fraternity-groups{grid-template-columns:1fr}}

/* licences */
.licence-section{width:min(1320px,96vw)}
.licence-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem}
.licence-section{padding-top:1rem;padding-bottom:1.5rem}
#v-licences .phero{padding:1.2rem 0 1.35rem}
#v-licences .phero h1{max-width:none;font-size:clamp(1.85rem,2.75vw,2.45rem);line-height:1.12}
.licence-card{position:relative;display:block;overflow:hidden;border:0;border-radius:0;background:transparent;padding:0;transition:transform .35s ease,filter .35s ease;line-height:0}
.licence-card img{display:block;width:100%;height:auto;background:transparent;transition:transform .65s ease}
.licence-card span{position:absolute;z-index:2;left:0;right:0;bottom:0;display:block;padding:2.4rem 1.15rem 1.15rem;background:linear-gradient(transparent,rgba(6,9,16,.94));color:var(--text);opacity:0;transform:translateY(12px);font-size:.9375rem;line-height:1.55;text-align:left;text-shadow:0 1px 9px rgba(0,0,0,.95);transition:opacity .3s ease,transform .4s ease}
.licence-card:hover,.licence-card:focus-visible{transform:translateY(-6px);filter:drop-shadow(0 14px 22px rgba(0,0,0,.38));outline:none}
.licence-card:hover img,.licence-card:focus-visible img{transform:scale(1.06)}
.licence-card:hover span,.licence-card:focus-visible span{opacity:1;transform:translateY(0)}
@media(max-width:1050px){.licence-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:580px){.licence-grid{grid-template-columns:1fr}}
.licence-book{display:grid;grid-template-columns:minmax(250px,340px) minmax(0,1fr);gap:clamp(2rem,5vw,5rem);align-items:start}
.licence-book-cover img{width:100%;border:1px solid var(--line-strong)}
.licence-book-actions{display:grid;gap:.75rem;margin-top:1rem}
.licence-book-actions .btn{width:100%;justify-content:center}
.licence-book-summary{padding-top:.35rem;max-width:68ch;font-size:1.05rem;line-height:1.8;color:var(--text)}
.licence-book-summary p+ p{margin-top:1.25rem}
#v-licence-ombres-revolution .phero{padding:.9rem 0 1rem}
#v-licence-ombres-revolution .phero h1{max-width:34ch;margin:.55rem 0;font-size:clamp(1.8rem,3vw,2.55rem);line-height:1.12}
#v-licence-ombres-revolution .phero .lead{max-width:82ch;font-size:1rem}
#v-licence-ombres-revolution .licence-book-section{padding-top:.8rem;padding-bottom:1.5rem}
#v-licence-ombres-revolution .licence-book{display:grid;grid-template-columns:minmax(190px,280px) minmax(180px,220px) minmax(0,1fr);gap:1.25rem;align-items:start}
#v-licence-ombres-revolution .licence-book-cover{width:min(100%,280px)}
.licence-book-cover-trigger{display:block;width:100%;padding:0;border:0;background:transparent;cursor:pointer}
#v-licence-ombres-revolution .licence-book-cover-trigger img{display:block;width:100%;height:auto;max-height:calc(100vh - 26rem);object-fit:contain;border-color:var(--gilt)}
.licence-book-cover-trigger:hover img,.licence-book-cover-trigger:focus-visible img{border-color:var(--gilt-hi);transform:scale(1.01)}
#v-licence-ombres-revolution .licence-book-actions{margin:0;align-self:start}
#v-licence-ombres-revolution .licence-book-summary{grid-column:1 / -1;width:100%;margin-top:.5rem;padding:2rem 3.8rem;border:1px solid var(--line);background:var(--surface);max-width:none}
#licenceBookSummaryCopy{max-width:none;margin:0;color:var(--text)}
@media(max-width:720px){#v-licence-ombres-revolution .licence-book{grid-template-columns:1fr}#v-licence-ombres-revolution .licence-book-cover{margin-inline:auto}#v-licence-ombres-revolution .licence-book-actions{width:min(100%,280px);justify-self:center}#v-licence-ombres-revolution .licence-book-summary{grid-column:1}}
@media(max-width:720px){.licence-book{grid-template-columns:1fr}.licence-book-cover{max-width:340px;margin-inline:auto}.licence-book-summary{padding-top:0}}

/* lecture en ligne */
.reader-auth{max-width:680px;margin-inline:auto;border:1px solid var(--line);background:var(--surface);padding:clamp(1.5rem,4vw,3rem)}
.auth-connected{max-width:680px;margin-inline:auto;border:1px solid var(--line);background:var(--surface);padding:1.5rem 2rem}.auth-connected p{color:var(--dim);margin-bottom:1rem}
.account-panel{max-width:760px}.account-summary{display:flex;align-items:center;gap:1.25rem;padding:1.5rem;border:1px solid var(--line);background:var(--surface);margin-bottom:1.5rem}.account-summary h2{margin:.4rem 0}.account-summary>div:last-child>p:last-child{color:var(--dim);font-size:.9rem}.account-avatar{width:82px;height:82px;flex:none;border-radius:50%;border:2px solid var(--gilt);display:grid;place-items:center;overflow:hidden;color:var(--text);font-family:var(--f-display);font-size:2rem;background:var(--ground)}.account-avatar img{width:100%;height:100%;object-fit:cover}.account-form{display:grid;gap:1rem;padding:clamp(1.5rem,4vw,2.3rem);border:1px solid var(--line);background:var(--surface)}.account-form label{display:grid;gap:.4rem;color:var(--dim);font-size:.875rem}.account-form input{width:100%;border:1px solid var(--line-strong);background:var(--ground);color:var(--text);padding:.75rem;font:inherit}.account-logout{margin-top:1rem}
@media(max-width:520px){.account-summary{align-items:flex-start}.account-avatar{width:64px;height:64px;font-size:1.5rem}}
.reader-auth h2{margin:.5rem 0 1rem;font-size:clamp(2rem,4vw,3.4rem)}
.auth-form{display:grid;gap:1rem;margin-top:1.8rem}.auth-form label,.chapter-form label{display:grid;gap:.4rem;color:var(--dim);font-size:.875rem}
.auth-form input,.chapter-form input,.chapter-form textarea{width:100%;border:1px solid var(--line-strong);background:var(--ground);color:var(--text);padding:.75rem;font:inherit}
.auth-avatar-picker{border:1px solid var(--line);padding:1rem;margin:0;color:var(--dim)}.auth-avatar-picker legend{padding:0 .35rem;font-size:.875rem}.avatar-options{display:flex;gap:.8rem;margin-top:.35rem}.avatar-options label{display:block;cursor:pointer}.avatar-options input{position:absolute;opacity:0;pointer-events:none}.avatar-choice{display:grid;place-items:center;width:48px;height:48px;border-radius:50%;border:1px solid var(--line-strong);font-family:var(--f-display);font-size:1.35rem;color:var(--text);transition:transform .2s,border-color .2s,box-shadow .2s}.avatar-options input:checked + .avatar-choice{border-color:var(--gilt-hi);box-shadow:0 0 0 3px color-mix(in srgb,var(--gilt) 18%,transparent);transform:translateY(-2px)}.avatar-ember{background:linear-gradient(145deg,#9a3917,#ed6c28)}.avatar-moon{background:linear-gradient(145deg,#304567,#8495b8)}.avatar-crown{background:linear-gradient(145deg,#694c18,#b9983c)}.avatar-star{background:linear-gradient(145deg,#60365c,#c07aaf)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.avatar-upload{display:grid!important;gap:.55rem;margin-top:1rem;padding-top:1rem;border-top:1px solid var(--line);color:var(--gilt-hi)!important;font-size:.8rem!important;cursor:pointer}.avatar-upload input{font-size:.78rem!important;padding:.55rem!important}.custom-avatar-preview{width:88px;height:88px;object-fit:cover;border-radius:50%;border:2px solid var(--gilt-hi);margin-top:1rem}.auth-notice{margin:1.5rem 0 0;color:var(--dim);font-size:.82rem;line-height:1.55;text-align:center}
.auth-form .auth-newsletter{display:flex;align-items:flex-start;gap:.7rem;padding:1rem;border:1px solid var(--line);background:color-mix(in srgb,var(--gilt) 7%,transparent);color:var(--text);cursor:pointer}.auth-newsletter input{width:auto;margin-top:.25rem}.auth-newsletter span{display:grid;gap:.2rem}.auth-newsletter small{color:var(--dim);font-size:.8rem;line-height:1.45}
.auth-switch{justify-self:start;color:var(--gilt-hi);font-family:var(--f-util);font-size:.65rem;letter-spacing:.1em;text-transform:uppercase;text-decoration:underline}
.auth-signup-prompt{color:var(--dim);font-size:.875rem;margin:0}.auth-signup-prompt button{color:var(--gilt-hi);text-decoration:underline;font:inherit}
.reader-layout{width:min(1540px,96vw);margin:0 auto;padding:clamp(1rem,3vw,2.5rem) 0 clamp(2rem,4vw,4rem);display:grid;gap:clamp(2rem,4vw,3.5rem)}
.reader-toolbar{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:1.5rem;padding:0 0 1.25rem;border-bottom:1px solid var(--line)}.reader-heading{display:grid;gap:.7rem;justify-items:start}.reader-return{padding:0;color:var(--gilt-hi);font-family:var(--f-util);font-size:.625rem;letter-spacing:.12em;text-transform:uppercase;text-align:left}.reader-return:hover{text-decoration:underline}
.reader-chapter-navigator{min-width:0;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.65rem;padding-block:.3rem}
.reader-periods{display:flex;gap:.65rem;min-width:0;padding-block:.3rem;overflow-x:auto;overflow-y:visible;scroll-behavior:smooth;scroll-snap-type:x proximity;scrollbar-width:none}.reader-periods::-webkit-scrollbar{display:none}
.reader-chapter{flex:0 0 auto;display:grid;gap:.2rem;padding:.72rem 1rem;border:1px solid var(--line);background:var(--surface);text-align:left;scroll-snap-align:start;white-space:nowrap;transition:border-color .25s,background .25s,transform .25s}
.reader-chapter:hover,.reader-chapter.is-active{border-color:var(--gilt);background:color-mix(in srgb,var(--surface) 87%,var(--gilt));transform:translateY(-2px)}
.reader-empty{margin:0;color:var(--dim);font-size:.875rem;line-height:1.55;white-space:nowrap}
.reader-scroll-control{width:2.25rem;height:2.25rem;display:grid;place-items:center;border:1px solid var(--line-strong);color:var(--gilt-hi);font-size:1.15rem;transition:border-color .2s,background .2s,transform .2s}.reader-scroll-control:hover{border-color:var(--gilt);background:color-mix(in srgb,var(--gilt) 12%,transparent);transform:translateY(-1px)}
.reader-content{width:min(94vw,1700px);max-width:none;min-width:0;min-height:calc(100vh - 190px);margin-inline:auto;border:2px solid var(--gilt);background:#fffdf8;color:#201b14;padding:clamp(1.5rem,5vw,5.5rem)}
.reader-content.is-empty{min-height:0}
.reader-content h2{margin:0 0 1.25rem;font-family:var(--f-util);font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:#9a6515}
.reader-placeholder{min-height:420px;max-width:none;margin:0;color:#282117;font-size:1.1rem;line-height:1.9;white-space:pre-wrap;overflow-wrap:anywhere;text-align:justify;text-justify:inter-word;hyphens:auto;user-select:none;-webkit-user-select:none}
.reader-placeholder.is-reader-empty{min-height:0;text-align:left}
.reader-engagement{max-width:none;margin-top:3rem;padding-top:1.25rem;border-top:1px solid #dbcda9}.reader-actions{display:flex;flex-wrap:wrap;gap:.65rem}.reader-action{padding:.65rem .9rem;border:1px solid #b89552;color:#765013;font-family:var(--f-util);font-size:.65rem;letter-spacing:.1em;text-transform:uppercase;transition:background .25s,border-color .25s,transform .25s}.reader-action:hover,.reader-action.is-active{background:#fbefd6;border-color:#8b621b;transform:translateY(-2px)}.reader-action span{margin-left:.35rem;color:#1e1911}.reader-comments{margin-top:1.25rem;padding:1.25rem;border:1px solid #dfd2b2;background:#fffaf0;color:#292217}.reader-comments-head{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;margin-bottom:1rem}.reader-comments-head h3{font-size:1.3rem}.reader-comments-head span{font-family:var(--f-util);font-size:.65rem;letter-spacing:.08em;text-transform:uppercase;color:#765f43}.reader-comment-form{display:grid;gap:.75rem}.reader-comment-form textarea{width:100%;min-height:110px;resize:vertical;border:1px solid #bda977;background:#fffdf8;color:#201b14;padding:.8rem;font:inherit;line-height:1.6}.reader-comment-form>div{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center}.reader-cancel-reply{color:#765013;font-family:var(--f-util);font-size:.65rem;letter-spacing:.1em;text-transform:uppercase;text-decoration:underline}.reader-comments-list{display:grid;gap:1rem;margin-top:1.5rem}.reader-comment{padding-top:1rem;border-top:1px solid #e6dac0}.reader-comment:first-child{border-top:0;padding-top:0}.reader-comment-meta{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;color:#786b57}.reader-comment-meta strong{color:#241d14}.reader-comment-meta time{font-family:var(--f-util);font-size:.6rem;letter-spacing:.08em;text-transform:uppercase}.reader-comment-body{margin-top:.45rem;color:#30291e;line-height:1.65;white-space:pre-wrap}.reader-reply{margin-top:.65rem;color:#765013;font-family:var(--f-util);font-size:.65rem;letter-spacing:.1em;text-transform:uppercase;text-decoration:underline}.reader-replies{display:grid;gap:.8rem;margin:1rem 0 0 1.25rem;padding-left:1rem;border-left:2px solid #dbcda9}.reader-feedback{min-height:1.5rem;max-width:none;margin:1rem 0 0;color:#8b621b;font-size:.875rem}.reader-admin-controls{max-width:none;margin:2.5rem 0 0;padding-top:1.25rem;border-top:1px solid #dbcda9;display:flex;align-items:center;justify-content:space-between;gap:1rem}.reader-admin-controls>div{display:flex;gap:.65rem;flex-wrap:wrap}.btn-danger{border-color:var(--ember);color:var(--ember-hi);background:color-mix(in srgb,var(--ember) 8%,transparent)}.btn-danger:hover{background:color-mix(in srgb,var(--ember) 18%,transparent)}.chapter-form-actions{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center}
.admin-dashboard{max-width:1020px}.admin-tabs{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1.5rem;border-bottom:1px solid var(--line);padding-bottom:1rem}.admin-tabs button{padding:.65rem .9rem;border:1px solid transparent;color:var(--dim);font-family:var(--f-util);font-size:.65rem;letter-spacing:.12em;text-transform:uppercase;transition:border-color .2s,background .2s,color .2s}.admin-tabs button:hover,.admin-tabs button.is-active{border-color:var(--gilt);background:color-mix(in srgb,var(--gilt) 10%,transparent);color:var(--gilt-hi)}.admin-panel{border:1px solid var(--line);background:var(--surface);padding:clamp(1.25rem,3vw,2.4rem)}.admin-panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1.5rem}.admin-panel-head h2{margin:.45rem 0 0;font-size:clamp(1.6rem,3vw,2.5rem)}.admin-panel-actions{display:flex;flex-wrap:wrap;gap:.65rem}.admin-intro{max-width:62ch;margin-top:.75rem;color:var(--dim);line-height:1.6}.chapter-form{display:grid;gap:1.2rem}.chapter-form textarea{min-height:260px;resize:vertical;line-height:1.7}.chapter-form select{width:100%;border:1px solid var(--line-strong);background:var(--ground);color:var(--text);padding:.75rem;font:inherit}.chapter-check{display:flex!important;align-items:center;gap:.55rem}.chapter-check input{width:auto}.schedule-fields{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.schedule-list{display:grid;gap:.7rem}.schedule-item{display:grid;grid-template-columns:auto 1fr auto;gap:1rem;align-items:center;padding:1rem;border:1px solid var(--line);background:var(--ground)}.schedule-item time{font-family:var(--f-util);font-size:.67rem;letter-spacing:.1em;color:var(--gilt-hi);text-transform:uppercase}.schedule-item h3{font-size:1.05rem;margin:0 0 .25rem}.schedule-item p{color:var(--dim);font-size:.85rem;line-height:1.45}.schedule-kind{padding:.35rem .45rem;border:1px solid var(--line-strong);font-family:var(--f-util);font-size:.55rem;letter-spacing:.1em;text-transform:uppercase;color:var(--dim)}.admin-empty{padding:1.2rem;border:1px dashed var(--line-strong);color:var(--dim)}@media(max-width:620px){.admin-panel-head{display:grid}.schedule-fields{grid-template-columns:1fr}.schedule-item{grid-template-columns:1fr}.schedule-kind{justify-self:start}}
@media(max-width:800px){.reader-toolbar{grid-template-columns:1fr;gap:.9rem}.reader-admin-controls{display:grid}.reader-content{min-height:60vh}}
@media(max-width:520px){.reader-layout{width:min(100%,94vw);padding-top:1.25rem}.reader-content{padding:1.4rem}.reader-chapter{max-width:70vw;overflow:hidden;text-overflow:ellipsis}.reader-scroll-control{width:2rem;height:2rem}}
@media(max-width:900px){.character-groups{grid-template-columns:1fr}.character-group{min-height:300px}}
.fiche-card{text-align:left;min-height:220px;display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;transition:border-color .2s,transform .2s,background .2s}
.fiche-card.character-group{min-height:360px}
.character-roster{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1.25rem}
.character-portrait{padding:0;text-align:left;overflow:hidden;border:1px solid var(--line);border-radius:3px;background:var(--surface);color:var(--text);transition:border-color .2s,transform .2s,background .2s}
.character-portrait span{display:block;padding:1rem 1.1rem;font-family:var(--f-display);font-size:1.05rem}
.character-portrait:hover,.character-portrait:focus-visible,.character-portrait.is-selected{border-color:var(--gilt);background:var(--surface-2);outline:none}
.character-profile{display:grid;grid-template-columns:minmax(180px,260px) 1fr;gap:2rem;align-items:start;margin-top:2rem;padding:2rem;border:1px solid var(--line);background:var(--surface)}
.character-profile img{grid-column:1;grid-row:1;width:100%;max-height:360px;object-fit:cover}
.character-copy{grid-column:2;grid-row:1;display:grid;align-content:start;gap:.8rem}
.character-copy h2{margin:0;font-size:clamp(2rem,4vw,3.5rem);line-height:1.05}
.character-copy p{margin:0;color:var(--dim);font-size:1rem;line-height:1.8}
.character-book-logo{object-fit:contain!important;background:var(--ground);padding:1rem}
#v-hommes-ordinaires .phero,#v-hommes-ombre .phero,#v-systeme .phero{padding:1.1rem 0 1.35rem}
#v-hommes-ordinaires .phero h1,#v-hommes-ombre .phero h1,#v-systeme .phero h1{max-width:none;font-size:clamp(2rem,3.2vw,2.8rem);line-height:1.12;white-space:nowrap}
#v-hommes-ordinaires .character-content,#v-hommes-ombre .character-content,#v-systeme .character-content{padding-top:1rem;padding-bottom:1.5rem}
#v-hommes-ordinaires .character-profile,#v-hommes-ombre .character-profile:first-child,#v-systeme .character-profile:first-child{margin-top:0;padding:1.5rem}
.character-profile img{cursor:zoom-in;transition:border-color .2s,transform .2s}
.character-profile img:hover{transform:scale(1.01)}
@media(max-width:900px){.character-roster{grid-template-columns:repeat(2,minmax(0,1fr))}.character-profile{grid-template-columns:150px 1fr;gap:1.25rem}}
@media(max-width:520px){.character-roster{grid-template-columns:1fr}.character-profile{grid-template-columns:1fr}.character-profile img,.character-copy{grid-column:1;grid-row:auto}}
.fiche-card:hover,.fiche-card:focus-visible{border-color:var(--gilt);background:color-mix(in srgb,var(--surface) 88%,var(--gilt));transform:translateY(-2px);outline:none}
.fiche-card p{margin-top:1rem}
.fiche-detail{border:1px solid var(--line);background:var(--surface);padding:2rem}
.fiche-detail-copy{max-width:760px;margin-top:2rem}.fiche-detail-copy h2{font-size:clamp(1.8rem,4vw,3rem);margin:.5rem 0 1rem}
.fiche-detail-content{margin:2rem 0;color:var(--text)}.fiche-detail-content p{margin-bottom:1rem}
.personnage-section-head{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin:2.5rem 0 1rem;padding-top:1.5rem;border-top:1px solid var(--line)}
.personnage-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:1rem}
.personnage-card{padding:1.4rem;border:1px solid var(--line);background:var(--ground)}
.personnage-card h3{margin:.45rem 0}.personnage-card p,.personnage-content{color:var(--dim);font-size:.875rem}
.personnage-content{margin-top:1rem;padding-top:1rem;border-top:1px solid var(--line)}
.personnage-card a{display:inline-block;margin-top:1rem;color:var(--gilt-hi);font-family:var(--f-util);font-size:.625rem;letter-spacing:.1em;text-transform:uppercase}
.personnage-empty{color:var(--dim)}
@media(max-width:640px){.personnage-section-head{align-items:flex-start;flex-direction:column}}
.fiche-empty{
  grid-column:1/-1; text-align:center; padding:2.4rem 1.5rem; color:var(--dim); font-size:.9375rem;
  border:1px dashed var(--line-strong); border-radius:3px;
}
.fiche-empty a{color:var(--gilt-hi); text-decoration:underline}

/* chronologie */
.time{position:relative; padding-left:2.4rem}
.time::before{content:""; position:absolute; left:7px; top:.6rem; bottom:.6rem; width:1px; background:linear-gradient(180deg,transparent,var(--line-strong) 12%,var(--line-strong) 88%,transparent)}
.era{position:relative; padding-bottom:2.4rem}
.era:last-child{padding-bottom:0}
.era::before{
  content:""; position:absolute; left:-2.4rem; top:.55rem; width:15px; height:15px;
  border-radius:50%; border:1px solid var(--gilt); background:var(--ground);
}
.era.now::before{background:var(--ember); border-color:var(--ember); box-shadow:0 0 0 4px color-mix(in srgb,var(--ember) 22%, transparent)}
.era .y{font-family:var(--f-util); font-size:.6875rem; letter-spacing:.14em; color:var(--gilt); text-transform:uppercase}
.era h3{font-size:1.2rem; margin:.35rem 0 .5rem}
.era p{color:var(--dim); font-size:.9375rem; max-width:60ch}

/* chronologie du Monde Physique */
.era-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.25rem}
.era-card{position:relative;isolation:isolate;overflow:hidden;display:flex;align-items:flex-end;min-height:330px;padding:1.7rem;border:1px solid var(--line-strong);background:#121720;color:var(--text);text-align:left;cursor:pointer;transition:transform .3s ease,border-color .3s ease,box-shadow .3s ease}
.era-card::before{content:"";position:absolute;inset:0;z-index:-2;background-image:var(--era-art);background-size:cover;background-position:center;transition:transform .6s ease}
.era-card::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(7,10,16,.08) 12%,rgba(7,10,16,.28) 40%,rgba(7,10,16,.94) 100%);transition:background .3s ease}
.era-card-content{display:grid;gap:.55rem;max-width:32rem}
.era-card .eyebrow{margin:0;color:var(--gilt-hi)}
.era-card-title{font-family:var(--f-display);font-size:clamp(1.6rem,3vw,2.35rem);font-weight:700;line-height:1.08;text-shadow:0 2px 15px #000}
.era-card-description{max-height:0;overflow:hidden;opacity:0;transform:translateY(8px);color:var(--text);font-size:.94rem;line-height:1.55;transition:max-height .35s ease,opacity .25s ease,transform .35s ease}
.era-card-action{font-family:var(--f-util);font-size:.65rem;letter-spacing:.13em;text-transform:uppercase;color:var(--text);opacity:.82}
.era-card-action b{padding-left:.35rem;color:var(--gilt-hi);font-size:1rem;transition:transform .3s ease}
.era-card:hover,.era-card:focus-visible{transform:translateY(-6px);border-color:var(--gilt-hi);box-shadow:0 14px 32px rgba(0,0,0,.35);outline:none}
.era-card:hover::before,.era-card:focus-visible::before{transform:scale(1.08)}
.era-card:hover::after,.era-card:focus-visible::after{background:linear-gradient(180deg,rgba(7,10,16,.02) 12%,rgba(7,10,16,.18) 40%,rgba(7,10,16,.9) 100%)}
.era-card:hover .era-card-description,.era-card:focus-visible .era-card-description{max-height:10rem;opacity:1;transform:translateY(0)}
.era-card:hover .era-card-action b,.era-card:focus-visible .era-card-action b{display:inline-block;transform:translateX(5px)}
.era-detail-page{max-width:1040px;margin-inline:auto}
.era-detail-page[hidden]{display:none}
.era-detail-heading{margin:2rem 0 1.2rem}
.era-detail-heading .eyebrow{margin-bottom:.5rem}
.era-detail-heading h2{margin:0;font-size:clamp(2.25rem,5vw,4.5rem)}
.era-detail-image{display:block;width:100%;max-height:68vh;object-fit:contain;border:1px solid var(--line-strong);background:var(--surface)}
@media(max-width:680px){.era-cards{grid-template-columns:1fr}.era-card{min-height:270px;padding:1.35rem}}

/* carte */
.map{border:1px solid var(--line); border-radius:3px; background:var(--surface); padding:1.5rem}
.map svg{width:100%; height:auto}
.map .land{color:var(--gilt)}
.map .seat{color:var(--ember)}
.map .gate{color:var(--astral)}
.map text{font-family:var(--f-util); fill:var(--dim)}
.map text.t-gilt{fill:var(--gilt)}
.map text.t-astral{fill:var(--astral)}
.map-cap{font-family:var(--f-util); font-size:.625rem; letter-spacing:.14em; text-transform:uppercase; color:var(--dim); margin-top:1rem; text-align:center}
.game-map{padding:0; overflow:hidden}
.map-view-tabs{display:flex; gap:1px; padding:1px; background:var(--line); border-bottom:1px solid var(--line)}
.map-view-tab{flex:1; min-height:48px; padding:.7rem 1rem; background:var(--ground); color:var(--dim); border:0; font-family:var(--f-util); font-size:.6875rem; letter-spacing:.12em; text-transform:uppercase; cursor:pointer; transition:background .2s,color .2s}
.map-view-tab:hover,.map-view-tab:focus-visible{background:var(--surface); color:var(--text)}
.map-view-tab.is-active{background:var(--surface); color:var(--gilt-hi); box-shadow:inset 0 -2px var(--gilt)}
.map-board{position:relative; overflow:hidden; background:#e8e5dc}
.map-board > svg:not(.map-interaction-overlay){display:none}
.map-image-view{width:100%; height:auto; object-fit:contain; background:#fff}
.map-image-view[hidden]{display:none}
.map-interaction-overlay{position:absolute;inset:0;z-index:3;width:100%;height:100%;pointer-events:none}
.map-region-hit{display:block;pointer-events:all;fill:transparent;stroke:transparent;stroke-width:0;cursor:pointer}
.map-region-hit:hover,.map-region-hit:focus-visible,.map-region-hit.is-selected{fill:transparent;stroke:transparent;outline:none}
.map-interaction-overlay-victoria .map-region-hit:hover,.map-interaction-overlay-victoria .map-region-hit:focus-visible,.map-interaction-overlay-victoria .map-region-hit.is-selected{fill:rgba(199,162,77,.28);stroke:var(--gilt-hi);stroke-width:5}
.map-region-hit[hidden]{display:none}
.map-hover-label{position:fixed;z-index:90;max-width:260px;padding:.45rem .65rem;border:1px solid var(--gilt);border-radius:3px;background:rgba(10,14,22,.96);box-shadow:0 8px 22px rgba(0,0,0,.3);color:var(--paper);font-family:var(--f-util);font-size:.6875rem;letter-spacing:.08em;line-height:1.35;pointer-events:none}
.map-board.is-detail .map-points{display:none}
.map-landmass{fill:url(#map-hatch); stroke:#bd913d; stroke-width:2; stroke-linejoin:round}
.map-cassiopeia path:nth-child(2),.map-virgo path:nth-child(1){fill:url(#map-hatch)}
.map-fertile,.map-shores{fill:none; stroke:#bd913d; stroke-width:1.3; opacity:.55}
.map-mountains{fill:none; stroke:#d5af5a; stroke-width:2.5; stroke-linejoin:round}
.map-rivers{stroke:#6d9fc6; stroke-width:2; stroke-linecap:round; opacity:.65}
.map-waterways{stroke:#111a29; stroke-width:8; stroke-linecap:round; stroke-linejoin:round; filter:drop-shadow(0 0 1px #bd913d)}
.map-internal{stroke:#bd913d; stroke-width:1.3; stroke-dasharray:5 6; stroke-linecap:round; opacity:.55}
.map-labels{font-family:var(--f-util); font-size:16px; letter-spacing:.13em; fill:#978d7c; font-weight:700}
.map-regions path{fill:rgba(189,145,61,.001);stroke:transparent;stroke-width:2;cursor:pointer;outline:none;transition:fill .2s,stroke .2s}
.map-regions path:hover,.map-regions path:focus-visible,.map-regions path.is-active{fill:rgba(189,145,61,.12);stroke:#e1bc64}
.map-city-labels{font-size:10px;fill:#d5c7a8;pointer-events:none}
.map-andromeda{fill:#121b29; stroke:#bd913d; stroke-width:2; opacity:.86}
.map-andromeda[data-map-area]{cursor:pointer;outline:none;transition:fill .2s,stroke .2s}
.map-andromeda[data-map-area]:hover,.map-andromeda[data-map-area]:focus-visible,.map-andromeda[data-map-area].is-active{fill:rgba(189,145,61,.1);stroke:#e1bc64}
.map-andromeda-label{font-family:var(--f-util); font-size:15px; letter-spacing:.14em; fill:#978d7c; text-anchor:middle}
.map-points{position:absolute; inset:0; pointer-events:none}
.map-point{position:absolute; display:grid; place-items:center; width:28px; height:28px; transform:translate(-50%,-50%); z-index:2; pointer-events:auto}
.map-point span{width:15px; height:15px; display:block; border-radius:50%; border:2px solid #111a29; background:var(--ember); box-shadow:0 0 0 1px #bd913d,0 5px 12px rgba(0,0,0,.38); transition:transform .2s, box-shadow .2s}
.map-point b{position:absolute; top:25px; left:50%; transform:translateX(-50%); width:max-content; max-width:150px; color:#978d7c; font-family:var(--f-util); font-size:.625rem; letter-spacing:.14em; text-transform:uppercase; text-shadow:none; pointer-events:none}
.map-point:hover span,.map-point:focus-visible span{transform:scale(1.35); box-shadow:0 0 0 5px rgba(255,255,255,.75),0 5px 12px rgba(0,0,0,.38)}
.map-point.state-rumeur span{background:#6d9fc6}
.map-point.state-alerte span{background:var(--ember); animation:map-pulse 1.8s infinite}
.map-point.state-cache{opacity:.55}.map-point.state-cache span{background:#59616c}
@keyframes map-pulse{50%{box-shadow:0 0 0 8px rgba(226,87,28,.22),0 5px 12px rgba(0,0,0,.38)}}
.map-info{min-height:130px; padding:1.3rem 1.5rem; border-top:1px solid var(--line); background:color-mix(in srgb,var(--surface) 86%,var(--ground));}
.map-info h3{font-size:1.15rem; margin:.35rem 0}.map-info p{font-size:.875rem; color:var(--dim); max-width:64ch}
.map-presentation-info{padding:clamp(1.5rem,4vw,3rem)}
.map-presentation-info > h3{font-size:clamp(2rem,4vw,3.5rem);margin:0 0 2rem}
.map-presentation{max-width:900px}
.map-presentation h4{margin:2.2rem 0 .7rem;font-family:var(--f-display);font-size:1.35rem;color:var(--gilt-hi);letter-spacing:.05em}
.map-presentation h4:first-child{margin-top:0}
.map-presentation p,.map-presentation li{max-width:none;font-size:1rem;line-height:1.8}
.map-presentation ol{margin:1rem 0 0;padding-left:1.5rem;color:var(--dim)}
.map-presentation li{padding-left:.4rem;margin:.45rem 0}
.map-region-presentation{max-width:900px}
.map-region-presentation h3{font-size:clamp(2rem,4vw,3.5rem);margin:0 0 2rem}
.map-region-presentation p{max-width:none;font-size:1rem;line-height:1.8}
.map-point-presentation img{display:block;width:min(100%,480px);max-height:420px;object-fit:cover;margin:0 0 1.5rem;border:1px solid var(--line);border-radius:3px;cursor:zoom-in;transition:border-color .2s,transform .2s}
.map-point-presentation img:hover{border-color:var(--gilt-hi);transform:scale(1.01)}
.page-head{max-width:900px;margin:0 auto;padding:clamp(4rem,10vw,8rem) var(--pad) 2rem}
.page-head h1{margin:.35rem 0 1rem;font-size:clamp(2.5rem,6vw,5.5rem);line-height:1.02}
.page-head .lead{max-width:62ch}
.section{max-width:1200px;margin:0 auto;padding:2.5rem var(--pad)}
.section .map-image{display:block;width:min(100%,900px);height:auto;margin-top:1.5rem;border:1px solid var(--line);border-radius:3px}
.image-lightbox{width:min(92vw,1100px);max-width:none;max-height:92vh;padding:3.5rem 1rem 1rem;border:1px solid var(--line-strong);border-radius:4px;background:var(--ground);box-shadow:0 24px 70px rgba(0,0,0,.7)}
.image-lightbox::backdrop{background:rgba(3,7,13,.86);backdrop-filter:blur(4px)}
.image-lightbox img{display:block;max-width:100%;max-height:calc(92vh - 4.5rem);margin:auto;object-fit:contain}
.image-lightbox-close{position:absolute;top:.65rem;right:.8rem;width:2.35rem;height:2.35rem;border:1px solid var(--line-strong);border-radius:50%;background:var(--surface);color:var(--paper);font-size:1.7rem;line-height:1;cursor:pointer}
.image-lightbox-close:hover,.image-lightbox-close:focus-visible{border-color:var(--gilt-hi);color:var(--gilt-hi)}
.map-info .map-area{display:inline-block;margin-top:.65rem;padding:.35rem .55rem;border:1px solid var(--line-strong);font-family:var(--f-util);font-size:.625rem;letter-spacing:.1em;text-transform:uppercase;color:var(--gilt-hi)}
.map-info .map-state{font-family:var(--f-util); font-size:.625rem; color:var(--ember-ink); letter-spacing:.12em; text-transform:uppercase}
.game-map .map-cap{margin:0; padding:1rem 1.5rem; border-top:1px solid var(--line)}
@media (max-width:700px){.map{padding:0}.map-view-tab{min-height:44px;padding:.6rem .35rem;font-size:.5625rem}.map-labels{font-size:10px}.map-point{width:24px;height:24px}.map-point span{width:13px;height:13px}.map-point b{display:none}.map-info{padding:1rem}.game-map .map-cap{padding:.85rem;font-size:.55rem}}

/* ═══════════════════ LICENCES ═══════════════════ */
.works{display:grid; gap:1.25rem}
.work{
  display:grid; grid-template-columns:132px 1fr 190px; gap:2rem; align-items:center;
  background:var(--surface); border:1px solid var(--line); border-radius:3px; padding:1.6rem;
  transition:border-color .25s, transform .25s;
}
.work:hover{border-color:var(--line-strong); transform:translateY(-2px)}
.spine{
  height:180px; border-radius:2px 5px 5px 2px; position:relative; overflow:hidden;
  box-shadow:var(--shadow); display:grid; place-items:center; padding:1rem;
}
.spine::before{content:""; position:absolute; left:0; top:0; bottom:0; width:9px; background:linear-gradient(90deg,rgba(0,0,0,.42),transparent)}
.spine span{
  font-family:var(--f-display); font-size:.75rem; letter-spacing:.12em; text-transform:uppercase;
  text-align:center; color:#F6EBD3; line-height:1.5; text-shadow:0 2px 8px rgba(0,0,0,.6);
}
.sp-1{background:linear-gradient(150deg,#3A1608,#8A2F0B 55%,#C2701C)}
.sp-2{background:linear-gradient(150deg,#101823,#243449 60%,#4A6C8B)}
.sp-3{background:linear-gradient(150deg,#2B2109,#6B5216 58%,#B08A2A)}
.sp-4{background:linear-gradient(150deg,#1B1016,#3E1F2C 58%,#77384C)}
.work h3{font-size:1.35rem; margin-bottom:.4rem}
.work p{color:var(--dim); font-size:.9375rem; margin-bottom:1rem}
.pill{
  display:inline-flex; align-items:center; gap:.4rem; font-family:var(--f-util);
  font-size:.5625rem; letter-spacing:.16em; text-transform:uppercase;
  padding:.3rem .6rem; border-radius:99px; border:1px solid var(--line-strong); color:var(--dim);
}
.pill.live{color:var(--ember-ink); border-color:color-mix(in srgb,var(--ember) 45%, transparent)}
.pill.done{color:var(--gilt-hi); border-color:color-mix(in srgb,var(--gilt) 45%, transparent)}
.pill.soon{color:var(--astral-hi); border-color:color-mix(in srgb,var(--astral) 45%, transparent)}
.prog{margin-top:.4rem}
.prog .bar{height:3px; background:var(--line); border-radius:99px; overflow:hidden}
.prog .bar i{display:block; height:100%; background:linear-gradient(90deg,var(--gilt),var(--gilt-hi)); border-radius:99px}
.prog .lab{font-family:var(--f-util); font-size:.625rem; color:var(--dim); margin-top:.5rem; display:flex; justify-content:space-between}
@media (max-width:860px){
  .work{grid-template-columns:100px 1fr; gap:1.4rem}
  .work > div:last-child{grid-column:1/-1}
  .spine{height:140px}
}

/* ═══════════════════ ÉVÉNEMENTS ═══════════════════ */
.evt-main{
  display:grid; grid-template-columns:1.3fr 1fr; gap:1.5rem; align-items:stretch;
}
.evt-hero{
  padding:2.6rem; border-radius:3px; border:1px solid var(--line-strong);
  background:linear-gradient(150deg, color-mix(in srgb,var(--ember) 14%, var(--surface)), var(--surface) 65%);
  display:flex; flex-direction:column; justify-content:space-between; gap:2rem;
}
.evt-hero h3{font-size:1.75rem; margin:.8rem 0 .7rem}
.evt-date{display:flex; align-items:baseline; gap:.6rem; font-family:var(--f-display)}
.evt-date b{font-size:2.6rem; color:var(--ember-ink); line-height:1; font-variant-numeric:tabular-nums}
.evt-date span{font-family:var(--f-util); font-size:.6875rem; letter-spacing:.16em; text-transform:uppercase; color:var(--dim)}
.agenda{display:grid; border:1px solid var(--line); border-radius:3px; background:var(--surface); overflow:hidden}
.agenda-row{display:grid; grid-template-columns:64px 1fr; gap:1.1rem; padding:1.1rem 1.3rem; border-bottom:1px solid var(--line); align-items:center}
.agenda-row:last-child{border-bottom:0}
.agenda-row .dt{text-align:center; font-family:var(--f-util); border-right:1px solid var(--line); padding-right:1.1rem}
.agenda-row .dt b{display:block; font-family:var(--f-display); font-size:1.3rem; color:var(--gilt-hi); font-variant-numeric:tabular-nums; line-height:1}
.agenda-row .dt span{font-size:.5625rem; letter-spacing:.14em; text-transform:uppercase; color:var(--dim)}
.agenda-row h4{font-family:var(--f-display); font-size:1rem; margin-bottom:.2rem}
.agenda-row p{font-size:.8125rem; color:var(--dim)}
#publishedEventList{display:contents}
.agenda-empty{padding:1.3rem;color:var(--dim);font-size:.9rem}
@media (max-width:860px){.evt-main{grid-template-columns:1fr}}

/* sondage */
.poll{background:var(--surface); border:1px solid var(--line); border-radius:3px; padding:2.2rem}
.poll h3{font-size:1.3rem; margin:.6rem 0 .4rem}
.poll > p{color:var(--dim); font-size:.875rem; margin-bottom:1.6rem}
.opt{
  width:100%; text-align:left; position:relative; overflow:hidden;
  border:1px solid var(--line); border-radius:2px; padding:.95rem 1.1rem; margin-bottom:.7rem;
  display:flex; justify-content:space-between; align-items:center; gap:1rem;
  transition:border-color .2s, background .2s;
}
.opt:hover{border-color:var(--line-strong)}
.opt .fill{
  position:absolute; inset:0 auto 0 0; width:0; background:color-mix(in srgb,var(--gilt) 16%, transparent);
  transition:width .9s cubic-bezier(.2,.7,.2,1);
}
.opt .txt,.opt .pct{position:relative; font-size:.9375rem}
.opt .pct{font-family:var(--f-util); font-size:.8125rem; color:var(--gilt-hi); opacity:0; transition:opacity .4s}
.poll.voted .opt .pct{opacity:1}
.poll.voted .opt{cursor:default}
.opt.chosen{border-color:var(--gilt)}
.opt.chosen .fill{background:color-mix(in srgb,var(--ember) 20%, transparent)}
.poll-foot{font-family:var(--f-util); font-size:.625rem; letter-spacing:.12em; color:var(--dim); margin-top:1.2rem; text-transform:uppercase}

/* ═══════════════════ COMMUNAUTÉ ═══════════════════ */
.author{
  display:grid; grid-template-columns:auto 1fr; gap:2rem; align-items:start;
  border:1px solid var(--line); border-left:2px solid var(--gilt); border-radius:3px;
  background:var(--surface); padding:2.4rem;
}
.author-portrait{width:180px; aspect-ratio:1; object-fit:cover; border-radius:50%; border:2px solid var(--gilt); box-shadow:var(--shadow)}
.author .kicker{display:block; margin:.15rem 0 1rem}
.author p{color:var(--dim); font-size:.95rem; line-height:1.65; margin:.7rem 0 0}
.author strong{color:var(--text)}
.author .author-name{margin:-.6rem 0 1rem;color:var(--gilt-hi);font-family:var(--f-util);font-size:.72rem;letter-spacing:.16em;font-weight:700}
.community-cta{margin-top:clamp(2rem,4vw,3rem);padding-top:clamp(1.5rem,3vw,2.2rem);border-top:1px solid var(--line)}.community-cta h2{max-width:30ch;margin:0 0 1rem;font-size:clamp(1.45rem,3vw,2.2rem);line-height:1.2}.community-signup{min-width:172px;justify-content:center}
.community-writer-slot{margin:1.15rem 0 1.8rem}
.community-polls{margin-top:clamp(1.5rem,3vw,2.4rem);padding-top:clamp(1.8rem,3.5vw,2.7rem);border-top:1px solid var(--line)}.community-polls .section-head h2{color:var(--text);font-size:clamp(1.6rem,3.2vw,2.25rem);margin-bottom:.45rem}.community-polls .section-head .lead{margin:0;color:var(--dim)}.community-poll-slot{min-height:190px;margin-top:1.5rem;border:1px dashed var(--line-strong);background:var(--surface);display:grid;gap:1rem;align-items:start;padding:1.5rem}.community-poll-slot>p{align-self:center;justify-self:center}.community-poll-slot p{margin:0;color:var(--dim);font-size:.95rem}.community-poll-slot .poll{width:100%}
@media (max-width:640px){.author{grid-template-columns:1fr; padding:1.7rem}}

.salons{display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:1rem}
.salon{display:flex; justify-content:space-between; align-items:center; gap:1rem; padding:1.2rem 1.3rem; border:1px solid var(--line); border-radius:3px; background:var(--surface); transition:border-color .2s}
.salon:hover{border-color:var(--line-strong)}
.salon h4{font-family:var(--f-display); font-size:.9375rem; margin-bottom:.15rem}
.salon .sub{font-size:.75rem; color:var(--dim)}
.salon .n{font-family:var(--f-util); font-size:.9375rem; color:var(--gilt-hi); font-variant-numeric:tabular-nums; flex:none}

.amb{display:grid; grid-template-columns:repeat(auto-fit,minmax(210px,1fr)); gap:1rem}
.amb-card{text-align:center; padding:1.8rem 1.2rem; border:1px solid var(--line); border-radius:3px; background:var(--surface)}
.avatar{
  width:52px; height:52px; border-radius:50%; margin:0 auto .9rem; display:grid; place-items:center;
  font-family:var(--f-display); font-size:1.05rem; color:var(--ground);
  background:linear-gradient(140deg,var(--gilt-hi),var(--gilt));
}
.amb-card h4{font-family:var(--f-display); font-size:1rem}
.amb-card .role{font-family:var(--f-util); font-size:.5625rem; letter-spacing:.16em; text-transform:uppercase; color:var(--gilt); margin:.35rem 0 .6rem}
.amb-card p{font-size:.8125rem; color:var(--dim)}

/* rédaction communautaire */
.writer-panel{max-width:960px}.writer-form{display:grid;gap:1.25rem;padding:clamp(1.4rem,4vw,2.6rem);border:1px solid var(--line);background:var(--surface)}.writer-type-row{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;padding-bottom:1.2rem;border-bottom:1px solid var(--line)}.writer-type-row h2{font-size:1.5rem;white-space:nowrap}.writer-types{display:flex;flex-wrap:wrap;gap:.55rem;justify-content:flex-end}.writer-types label{cursor:pointer}.writer-types input{position:absolute;opacity:0;pointer-events:none}.writer-types span{display:block;padding:.6rem .75rem;border:1px solid var(--line-strong);color:var(--dim);font-family:var(--f-util);font-size:.66rem;letter-spacing:.08em;text-transform:uppercase;transition:background .2s,border-color .2s,color .2s}.writer-types input:checked + span{border-color:var(--gilt);background:color-mix(in srgb,var(--gilt) 13%,transparent);color:var(--gilt-hi)}.writer-form>label{display:grid;gap:.45rem;color:var(--dim);font-size:.875rem}.writer-form input,.writer-form textarea{width:100%;border:1px solid var(--line-strong);background:var(--ground);color:var(--text);padding:.8rem;font:inherit}.writer-form textarea{min-height:360px;resize:vertical;line-height:1.7}@media(max-width:720px){.writer-type-row{align-items:flex-start;flex-direction:column}.writer-types{justify-content:flex-start}.writer-type-row h2{white-space:normal}}

/* ═══════════════════ BOUTIQUE ═══════════════════ */
.shop{display:grid; grid-template-columns:repeat(auto-fit,minmax(250px,1fr)); gap:1.5rem}
.shop-empty{min-height:45vh;display:grid;place-items:center;color:var(--dim);font-size:1.1rem;text-align:center}
.contact-page{display:grid;grid-template-columns:minmax(0,1fr) minmax(240px,.42fr);gap:1.5rem;align-items:start}.contact-form,.contact-public{display:grid;gap:1rem;padding:clamp(1.3rem,3vw,2.2rem);border:1px solid var(--line);background:var(--surface)}.contact-form textarea{min-height:180px;resize:vertical}.contact-public{position:sticky;top:1rem}.contact-public>div{display:grid;gap:.7rem}.contact-public a{color:var(--gilt-hi);text-decoration:underline;overflow-wrap:anywhere}.contact-network-link{display:flex;align-items:center;gap:.65rem;padding:.65rem .75rem;border:1px solid var(--line);text-decoration:none!important;transition:border-color .2s,background .2s,transform .2s}.contact-network-link:hover{border-color:var(--gilt);background:color-mix(in srgb,var(--gilt) 9%,transparent);transform:translateX(2px)}.contact-network-icon{width:1.15rem;height:1.15rem;object-fit:contain;flex:none}.contact-network-mail{display:grid;place-items:center;color:var(--gilt-hi);font-size:1.05rem}.admin-contact-list{display:grid;gap:.8rem;margin-bottom:2rem}.admin-contact-item{display:grid;gap:.5rem;padding:1rem;border:1px solid var(--line);background:var(--ground)}.admin-contact-item header{display:flex;justify-content:space-between;gap:1rem;align-items:baseline}.admin-contact-item h3{margin:0;font-size:1rem}.admin-contact-item time{font-family:var(--f-util);font-size:.6rem;letter-spacing:.08em;text-transform:uppercase;color:var(--dim)}.admin-contact-item a{color:var(--gilt-hi);text-decoration:underline}.admin-contact-item p{margin:0;color:var(--dim);line-height:1.6;white-space:pre-wrap}.admin-contact-actions{display:flex;flex-wrap:wrap;gap:.6rem}.admin-contact-settings{margin-top:2rem;padding-top:1.5rem;border-top:1px solid var(--line)}.admin-contact-settings h3{margin:0;font-size:1.25rem}@media(max-width:720px){.contact-page{grid-template-columns:1fr}.contact-public{position:static}}
.contact-page{grid-template-columns:minmax(0,760px) minmax(240px,.42fr);justify-content:center;gap:clamp(1.25rem,3vw,2.5rem)}.contact-page:has(.contact-public[hidden]){grid-template-columns:minmax(0,760px)}.contact-form{width:100%;gap:1.2rem;padding:clamp(1.7rem,4vw,2.8rem);box-shadow:var(--shadow)}.contact-form label{display:grid;gap:.5rem;color:var(--dim);font-size:.9rem}.contact-form input,.contact-form select,.contact-form textarea{width:100%;border:1px solid var(--line-strong);background:var(--ground);color:var(--text);padding:.85rem .95rem;font:inherit;line-height:1.5}.contact-form input:focus,.contact-form select:focus,.contact-form textarea:focus{outline:none;border-color:var(--gilt-hi);box-shadow:0 0 0 3px color-mix(in srgb,var(--gilt) 14%,transparent)}.contact-form textarea{min-height:320px;resize:vertical}.contact-form .btn{justify-self:start;margin-top:.2rem}
.prod{display:flex; flex-direction:column; background:var(--surface); border:1px solid var(--line); border-radius:3px; overflow:hidden; transition:border-color .25s, transform .25s}
.prod:hover{border-color:var(--line-strong); transform:translateY(-4px)}
.prod-vis{height:200px; position:relative; display:grid; place-items:center; padding:1.5rem}
.prod-vis span{font-family:var(--f-display); font-size:.8125rem; letter-spacing:.14em; text-transform:uppercase; text-align:center; color:#F6EBD3; line-height:1.6; text-shadow:0 2px 10px rgba(0,0,0,.65)}
.prod-vis .badge{
  position:absolute; top:.9rem; left:.9rem; font-family:var(--f-util); font-size:.5625rem;
  letter-spacing:.16em; text-transform:uppercase; padding:.28rem .55rem; border-radius:99px;
  background:rgba(10,12,18,.72); color:#F0D89C; border:1px solid rgba(240,203,122,.35);
  text-shadow:none; line-height:1.4;
}
.prod-body{padding:1.4rem; display:flex; flex-direction:column; gap:.5rem; flex:1}
.prod-body h3{font-size:1.05rem}
.prod-body .fmt{font-family:var(--f-util); font-size:.625rem; letter-spacing:.14em; text-transform:uppercase; color:var(--dim)}
.prod-body p{font-size:.8125rem; color:var(--dim); flex:1}
.prod-foot{display:flex; justify-content:space-between; align-items:center; gap:1rem; margin-top:.6rem}
.price{font-family:var(--f-display); font-size:1.3rem; color:var(--gilt-hi); font-variant-numeric:tabular-nums}
.add{
  font-family:var(--f-util); font-size:.625rem; letter-spacing:.14em; text-transform:uppercase;
  border:1px solid var(--line-strong); border-radius:2px; padding:.55rem .9rem; color:var(--text);
  transition:background .2s,color .2s,border-color .2s;
}
.add:hover{background:var(--ember); border-color:var(--ember); color:#fff}
.add.ok{background:var(--gilt); border-color:var(--gilt); color:#1A1208}
.add[disabled]{opacity:.45; cursor:not-allowed}
.reassure{display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:1.5rem; margin-top:3rem; padding-top:2rem; border-top:1px solid var(--line)}
.reassure div h4{font-family:var(--f-display); font-size:.9375rem; margin-bottom:.3rem}
.reassure div p{font-size:.8125rem; color:var(--dim)}

/* ═══════════════════ NEWSLETTER ═══════════════════ */
.registre{
  border:1px solid var(--line-strong); border-radius:3px; padding:clamp(2rem,5vw,3.2rem);
  background:linear-gradient(150deg, color-mix(in srgb,var(--gilt) 10%, var(--surface)), var(--surface) 70%);
  display:grid; grid-template-columns:1fr auto; gap:2.5rem; align-items:center;
}
.registre h3{font-size:1.6rem; margin:.7rem 0 .6rem}
.registre p{color:var(--dim); font-size:.9375rem; max-width:48ch}
.form{display:flex; gap:.6rem; flex-wrap:wrap}
.form input{
  font:inherit; font-size:.9375rem; padding:.75rem .9rem; min-width:250px;
  background:var(--ground); border:1px solid var(--line-strong); border-radius:2px; color:var(--text);
}
.form input::placeholder{color:var(--dim)}
.form-msg{font-family:var(--f-util); font-size:.6875rem; color:var(--gilt-hi); margin-top:.9rem; min-height:1em}
@media (max-width:820px){.registre{grid-template-columns:1fr; gap:1.6rem}}

/* ═══════════════════ PAGE HERO ═══════════════════ */
.phero{padding:clamp(3rem,6vw,4.6rem) 0 clamp(2rem,4vw,3rem); border-bottom:1px solid var(--line); background:var(--vignette)}
.phero h1{font-size:clamp(2rem,4.6vw,3.2rem); margin:.9rem 0 1rem; max-width:20ch}

/* La page d'entrée de l'Univers tient dans le premier écran sur ordinateur. */
#v-univers .phero{padding:clamp(1.25rem,2.2vw,1.8rem) 0 clamp(1.15rem,2vw,1.6rem)}
#v-univers .phero h1{font-size:clamp(2rem,3.25vw,2.8rem);max-width:none;line-height:1.12;white-space:nowrap}
#v-univers > .section{padding-top:clamp(.8rem,1.5vw,1.2rem);padding-bottom:clamp(1.4rem,2.5vw,2rem)}
#v-univers .monde{padding:clamp(1.25rem,2vw,1.7rem)}
@media(max-width:820px){#v-univers .phero h1{white-space:normal}}

/* Les rendez-vous principaux restent dans le premier écran à 100 % de zoom. */
#v-evenements .phero{padding:1.25rem 0 1.35rem}
#v-evenements .phero h1{max-width:none;margin:.55rem 0 .65rem;font-size:clamp(2rem,3.25vw,2.8rem);line-height:1.12;white-space:nowrap}
#v-evenements .phero .lead{max-width:none;margin:0}
#v-evenements > .section.wrap{padding-top:.9rem;padding-bottom:1.35rem}
#v-evenements .evt-hero{padding:1.7rem;gap:1.25rem}
@media(max-width:700px){#v-evenements .phero h1{white-space:normal}}

/* Le mot de l'auteur reste intégralement présent dans le premier écran. */
#v-communaute .phero{padding:1.15rem 0 1.3rem}
#v-communaute .phero h1{max-width:none;margin:.55rem 0 .65rem;font-size:clamp(1.9rem,3vw,2.6rem);line-height:1.12}
#v-communaute .phero .lead{max-width:75ch;margin:0}
#v-communaute > div.section.wrap{padding-top:1rem;padding-bottom:1.25rem}
#v-communaute .author{gap:1.4rem;padding:1.5rem}
#v-communaute .author-portrait{width:145px}
#v-communaute .author p{margin:.5rem 0 0;line-height:1.55}
#v-communaute .author-signature{margin-top:1rem!important;color:var(--gilt-hi);font-family:var(--f-util);font-size:.72rem;letter-spacing:.16em;font-weight:700}
@media(max-width:640px){#v-communaute .author-portrait{width:130px}}

/* À propos et FAQ */
.about-author-hero-wrap{display:grid;grid-template-columns:minmax(0,1fr) min(30vw,320px);gap:clamp(2rem,7vw,6rem);align-items:center}.about-author-avatar{width:100%;aspect-ratio:1;object-fit:cover;border-radius:50%;border:2px solid var(--gilt);box-shadow:var(--shadow)}.about-author-page{max-width:980px}.about-author-page h2{font-size:clamp(1.7rem,3vw,2.5rem);margin:.55rem 0 1.2rem}.about-author-page h3{font-size:clamp(1.25rem,2.2vw,1.7rem);margin:2.3rem 0 .9rem}.about-author-page p:not(.eyebrow){color:var(--dim);line-height:1.75;margin:.85rem 0}.about-author-page .btn{margin-top:1.2rem}.faq-page{max-width:920px;display:grid;gap:.8rem}.faq-page details{border:1px solid var(--line);background:var(--surface);padding:1.1rem 1.3rem}.faq-page summary{cursor:pointer;font-family:var(--f-display);font-size:1.08rem;color:var(--text)}.faq-page details p{margin:1rem 0 .15rem;color:var(--dim);line-height:1.7}@media(max-width:650px){.about-author-hero-wrap{grid-template-columns:1fr;gap:1.7rem}.about-author-hero .about-author-avatar{width:min(220px,65vw);justify-self:center}.about-author-identity{text-align:center}}

/* ═══════════════════ FOOTER ═══════════════════ */
.foot{border-top:1px solid var(--line); background:var(--ground-2); padding:3.5rem 0 2rem; margin-top:2rem}
.foot-grid{display:grid; grid-template-columns:2fr 1fr 1fr 1fr; gap:2.5rem}
.foot-brand img{width:54px; filter:var(--emblem-fx); margin-bottom:1rem}
.foot-brand p{font-size:.8125rem; color:var(--dim); max-width:34ch}
.foot h4{font-family:var(--f-util); font-size:.5625rem; letter-spacing:.2em; text-transform:uppercase; color:var(--gilt); margin-bottom:1rem; font-weight:400}
.foot ul{list-style:none; margin:0; padding:0; display:grid; gap:.55rem}
.foot ul button, .foot ul span{font-size:.8125rem; color:var(--dim); text-align:left; transition:color .2s}
.foot ul button:hover{color:var(--gilt-hi)}
.foot-base{
  margin-top:3rem; padding-top:1.5rem; border-top:1px solid var(--line);
  display:flex; justify-content:space-between; gap:1rem; flex-wrap:wrap;
  font-family:var(--f-util); font-size:.625rem; letter-spacing:.1em; color:var(--dim); text-transform:uppercase;
}
@media (max-width:820px){.foot-grid{grid-template-columns:1fr 1fr; gap:2rem}}

/* La liseuse occupe volontairement toute la largeur disponible. */
.section.reader-layout{width:100%;max-width:none;margin:0;padding:clamp(1rem,3vw,2.5rem) 0 clamp(2rem,4vw,4rem)}
@media(max-width:520px){.section.reader-layout{width:100%;padding-top:1.25rem}}

.reader-comment-head{display:flex;align-items:center;gap:.7rem}.reader-comment-avatar{width:38px;height:38px;flex:none;display:grid;place-items:center;overflow:hidden;border-radius:50%;border:1px solid #b89552;font-family:var(--f-display);font-size:1rem;color:#fff}.reader-comment-avatar img{width:100%;height:100%;object-fit:cover}.reader-comment-meta{flex:1}.reader-comment-actions{display:flex;flex-wrap:nowrap;align-items:center;gap:1.4rem;margin-top:.65rem}.reader-comment-like,.reader-comment-delete{white-space:nowrap;color:#765013;font-family:var(--f-util);font-size:.65rem;letter-spacing:.08em;text-transform:uppercase;text-decoration:underline}.reader-comment-like.is-active{color:#b54b19}.reader-comment-delete{color:#af3b13}.reader-comment .reader-comment-form{margin-top:.9rem}.reader-mention{font-weight:700;color:#9a6515}@media(max-width:520px){.reader-comment-actions{flex-wrap:wrap;gap:.7rem}}

/* Actions d'un commentaire : un groupe compact et aligné. */
.reader-comment-actions{display:inline-flex;width:auto;justify-content:flex-start;gap:.85rem}
.reader-comment-actions>button{width:auto;min-width:0;margin:0;padding:0}

/* Passe mobile : navigation tactile, marges et contenus sans débordement. */
@media(max-width:640px){
  html{scroll-padding-top:112px}
  .wrap{width:min(100% - 1.5rem,1180px)}
  .rail-inner{width:min(100% - 1rem,1180px);height:auto;min-height:60px;flex-wrap:wrap;gap:.35rem;padding:.35rem 0}
  .mark{margin-right:auto}
  .nav{order:3;width:100%;margin:0;gap:.2rem;padding:.15rem 0;scroll-padding-inline:.2rem}
  .nav-item{min-height:42px;display:grid;place-items:center;padding:.5rem .65rem;font-size:.62rem}
  .nav-auth{min-height:38px;display:grid;place-items:center;padding:.45rem .55rem;font-size:.58rem}
  .tools{margin-left:0;gap:.2rem}
  .tool{width:38px;height:38px}
  .account-tool{width:40px;height:40px}
  .section{padding:2.4rem 0}
  .section-head{margin-bottom:1.5rem}
  .phero{padding:2rem 0 1.7rem}
  .phero h1{font-size:clamp(1.9rem,10vw,2.5rem);margin:.65rem 0 .8rem}
  .lead{font-size:1rem;line-height:1.6}
  .btn{min-height:44px}
  .evt-hero,.agenda,.author,.admin-panel{border-radius:2px}
  .evt-hero{padding:1.35rem}
  .agenda-row{grid-template-columns:52px 1fr;gap:.75rem;padding:1rem}
  .author{gap:1.1rem;padding:1.25rem}
  #v-communaute .author{padding:1.25rem}
  #v-communaute .phero h1,#v-evenements .phero h1,#v-hommes-ordinaires .phero h1,#v-hommes-ombre .phero h1,#v-systeme .phero h1{white-space:normal}
  .reader-layout{width:100%!important}
  .reader-toolbar{gap:.75rem}
  .reader-periods{scrollbar-width:thin}
  .reader-content{width:calc(100% - 1.5rem);min-height:0;padding:1.35rem 1.1rem}
  .reader-placeholder{font-size:1rem;line-height:1.78;text-align:left;hyphens:none}
  .reader-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.45rem}
  .reader-action{min-width:0;padding:.7rem .35rem;font-size:.55rem;text-align:center}
  .reader-comments{padding:1rem}
  .reader-comments-head{align-items:flex-start;flex-direction:column;gap:.3rem}
  .reader-replies{margin-left:.5rem;padding-left:.75rem}
  #v-licence-ombres-revolution .licence-book-summary{padding:1.35rem 1rem;font-size:1rem;line-height:1.7}
  .licence-grid{gap:.8rem}
  .community-post-actions .btn{min-height:42px}
  .community-article-comments{padding:1rem}
  .contact-form{padding:1.25rem}
  .contact-form textarea{min-height:240px}
  .admin-tabs{overflow-x:auto;flex-wrap:nowrap;padding-bottom:.8rem}
  .admin-tabs button{white-space:nowrap;min-height:40px}
  .admin-panel{padding:1.1rem}
  .foot{padding:2.5rem 0 1.5rem}
  .foot-grid{grid-template-columns:1fr;gap:1.5rem}
  .foot-base{margin-top:2rem;line-height:1.5}
}

/* Publications de la communauté */
.community-publications{margin-top:clamp(2rem,4vw,3rem);padding-bottom:clamp(3rem,7vw,6rem)}
.community-post-list{display:grid;gap:1.25rem}
.community-post-empty{padding:2rem;border:1px dashed var(--line-strong);color:var(--dim)}
.community-post-item{display:grid;grid-template-columns:clamp(84px,13vw,142px) minmax(0,1fr);gap:clamp(1rem,2.8vw,2.4rem);align-items:center}
.community-post-avatar{width:100%;aspect-ratio:1;border-radius:50%;overflow:hidden;display:grid;place-items:center;border:2px solid var(--gilt);font-family:var(--f-display);font-size:2.35rem;color:#fff;background:linear-gradient(145deg,var(--gilt),var(--ember))}
.community-post-avatar img{width:100%;height:100%;object-fit:cover}
.community-post-card{position:relative;min-height:190px;border:1px solid var(--line-strong);background:var(--surface);display:grid;place-items:center;padding:3.5rem 8rem;cursor:pointer;transition:border-color .2s,transform .2s;text-align:center}
.community-post-card:hover{border-color:var(--gilt);transform:translateY(-2px)}
.community-post-card h3{font-size:clamp(1.3rem,2.8vw,2.25rem);line-height:1.14;margin:0;max-width:23ch}
.community-post-type,.community-post-author{position:absolute;padding:.45rem .8rem;border:1px solid var(--gilt);border-radius:999px;font-family:var(--f-util);font-size:.63rem;letter-spacing:.1em;text-transform:uppercase}
.community-post-type{top:1rem;left:1rem;color:var(--gilt-hi);background:color-mix(in srgb,var(--ground) 82%,transparent)}
.community-post-author{right:1rem;bottom:1rem;color:var(--dim);border-color:var(--line-strong);background:color-mix(in srgb,var(--ground) 82%,transparent)}
.community-post-actions{display:flex;gap:.6rem;flex-wrap:wrap;margin-top:.7rem}.community-post-actions .btn{min-width:0}
.community-article-reader{max-width:1040px}.community-article-body{white-space:pre-wrap;font-size:1.08rem;line-height:1.9;color:var(--text);padding:clamp(1.4rem,4vw,3rem);border:1px solid var(--line);background:var(--surface)}
.community-article-actions{display:flex;gap:.75rem;flex-wrap:wrap;margin-top:1.25rem}.community-article-actions .btn{min-width:0}
.community-article-comments{margin-top:2rem;padding:clamp(1.25rem,3vw,2rem);border:1px solid #dfd2b2;background:#fffaf0;color:#292217}.community-article-comments h2{color:#292217}.community-article-comments .reader-comment-form{margin-top:1rem}.community-article-comments .reader-comments-list{margin-top:1.25rem}

/* Trois publications compactes par rangée sur les écrans larges. */
.community-post-list{grid-template-columns:repeat(3,minmax(0,1fr));align-items:start}
.community-post-item{grid-template-columns:72px minmax(0,1fr);gap:1rem;align-items:center}
.community-post-card{min-height:154px;padding:3rem 1rem}
.community-post-card h3{font-size:clamp(1.1rem,1.7vw,1.5rem)}
.community-post-type,.community-post-author{padding:.35rem .62rem;font-size:.56rem}
@media(max-width:1060px){.community-post-list{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:640px){.community-post-list{grid-template-columns:1fr}}

/* La carte et ses trois actions occupent exactement la même largeur. */
.community-post-item{grid-template-columns:92px minmax(0,1fr);align-items:start}
.community-post-item>.community-post-avatar{width:92px;margin-top:32px}
.community-post-item>div:last-child{min-width:0}
.community-post-card{width:100%;min-height:156px}
.community-post-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));width:100%;gap:.55rem}
.community-post-actions .btn{width:100%;min-width:0!important;justify-content:center;padding:.72rem .28rem;font-size:.58rem}
@media(max-width:640px){.community-post-item{grid-template-columns:78px minmax(0,1fr)}.community-post-item>.community-post-avatar{width:78px;margin-top:36px}.community-post-actions{grid-column:auto;margin-top:.7rem}}

.poll-options-editor{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;padding:1rem;border:1px solid var(--line)}.poll-options-editor legend{padding:0 .4rem;color:var(--dim);font-size:.85rem}.poll-options-editor label{display:grid;gap:.45rem;color:var(--dim);font-size:.875rem}.poll-options-editor input{width:100%;border:1px solid var(--line-strong);background:var(--ground);color:var(--text);padding:.8rem;font:inherit}@media(max-width:620px){.poll-options-editor{grid-template-columns:1fr}}
@media(max-width:640px){.community-post-item{grid-template-columns:72px minmax(0,1fr);gap:1rem}.community-post-card{min-height:150px;padding:3.1rem 1.2rem 3rem}.community-post-card h3{font-size:1.3rem}.community-post-type{top:.75rem;left:.75rem}.community-post-author{right:.75rem;bottom:.75rem}.community-post-actions{grid-column:1/-1;margin-top:-.5rem}.community-article-body{font-size:1rem}}
