/**
 * DAWNSTAR Lore — feuille de style des archives narratives · v1.0
 * S'appuie sur les tokens --ds-* du CSS global (valeurs de repli fournies).
 * Chargée uniquement sur l'archive et les récits.
 */

.dnr-lore{
  --l-r:      var(--ds-r, #CC2828);
  --l-rl:     var(--ds-rl, #E03838);
  --l-bg:     var(--ds-bg, #0d1117);
  --l-bg1:    var(--ds-bg1, #161b22);
  --l-bdr:    var(--ds-bdr, rgba(204,40,40,.18));
  --l-bdrh:   var(--ds-bdrh, rgba(204,40,40,.45));
  --l-txt:    var(--ds-txt, #D0DCF0);
  --l-txt2:   var(--ds-txt2, #B0B8C4);
  --l-txt3:   var(--ds-txt3, #7888A0);
  --l-glow:   var(--ds-glow, rgba(204,40,40,.28));
  --l-surf:   var(--ds-surface, rgba(13,17,23,.72));
  --l-disp:   var(--font-display, 'Chakra Petch', sans-serif);
  --l-body:   var(--font-body, 'Inter', sans-serif);
  --l-mono:   var(--font-mono, 'Consolas', monospace);
  --l-cut:    var(--cut, 12px);

  max-width:1240px;
  margin:0 auto;
  padding:clamp(28px,5vw,72px) clamp(16px,4vw,32px) 96px;
  font-family:var(--l-body);
  color:var(--l-txt);
}

/* ═══════════════════════════ ÉLÉMENTS PARTAGÉS ═══════════════════════════ */

.dnr-lore .dnr-kicker{
  font-family:var(--l-mono);
  font-size:.72rem;
  font-weight:600;
  text-transform:uppercase;
  letter-spacing:.28em;
  color:var(--l-r);
  margin:0 0 .9em;
}
.dnr-lore .dnr-kicker a{ color:inherit; border-bottom:1px solid transparent; }
.dnr-lore .dnr-kicker a:hover{ color:#fff; border-bottom-color:var(--l-rl); }
.dnr-lore .dnr-kicker__sep{ opacity:.5; margin:0 .5em; }

.dnr-lore .dnr-tag{
  display:inline-block;
  font-family:var(--l-mono);
  font-size:.68rem;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--l-txt3);
  border:1px solid var(--l-bdr);
  padding:5px 12px;
  border-radius:2px;
}
.dnr-lore .dnr-tag--live{ color:var(--l-rl); border-color:var(--l-bdrh); }
.dnr-lore .dnr-tag--live::before{
  content:'●'; margin-right:.5em; font-size:.7em; vertical-align:middle;
  animation:dnr-pulse 2.4s ease-in-out infinite;
}
@keyframes dnr-pulse{ 0%,100%{ opacity:.35; } 50%{ opacity:1; } }

.dnr-lore .dnr-btn{
  display:inline-flex; align-items:center; gap:.6em;
  font-family:var(--l-disp); font-weight:600; font-size:.9rem;
  text-transform:uppercase; letter-spacing:.08em;
  color:#fff; text-decoration:none;
  padding:13px 28px;
  background:linear-gradient(135deg,var(--l-r),#991818);
  border:1px solid var(--l-rl);
  border-radius:3px;
  transition:transform .18s ease, box-shadow .18s ease;
}
.dnr-lore .dnr-btn:hover{ transform:translateY(-2px); box-shadow:0 0 24px var(--l-glow); color:#fff; }

/* ═══════════════════════════ ARCHIVE : EN-TÊTE ═══════════════════════════ */

.dnr-arch__head{
  position:relative;
  padding:clamp(28px,4vw,48px);
  margin-bottom:clamp(32px,5vw,56px);
  background:var(--l-surf);
  -webkit-backdrop-filter:blur(6px);
  backdrop-filter:blur(6px);
  border:1px solid var(--l-bdr);
  clip-path:polygon(var(--l-cut) 0,100% 0,100% calc(100% - var(--l-cut)),calc(100% - var(--l-cut)) 100%,0 100%,0 var(--l-cut));
}
.dnr-arch__head::before{
  content:''; position:absolute; inset:0; pointer-events:none;
  background:repeating-linear-gradient(0deg,transparent,transparent 3px,rgba(255,255,255,.012) 3px,rgba(255,255,255,.012) 4px);
}
.dnr-arch__title{
  font-family:var(--l-disp);
  font-size:clamp(2rem,4.4vw,3.4rem);
  font-weight:700; line-height:1.06;
  text-transform:uppercase; letter-spacing:.03em;
  color:#fff; margin:0 0 .5em;
}
.dnr-arch__title::after{ display:none; } /* neutralise le filet global du h2/h1 */
.dnr-arch__intro{
  max-width:64ch; color:var(--l-txt2); font-size:1.02rem; line-height:1.75; margin:0 0 1.6em;
}
.dnr-arch__meta{ display:flex; flex-wrap:wrap; gap:10px; margin-bottom:1.6em; }
.dnr-arch__cta{ margin:1.8em 0 0; }

.dnr-filters{ display:flex; flex-wrap:wrap; gap:8px; }
.dnr-filters__item{
  font-family:var(--l-mono); font-size:.74rem; letter-spacing:.1em; text-transform:uppercase;
  color:var(--l-txt3); text-decoration:none;
  padding:8px 16px; border:1px solid var(--l-bdr); border-radius:2px;
  transition:color .2s ease, border-color .2s ease, background .2s ease;
}
.dnr-filters__item:hover{ color:#fff; border-color:var(--l-bdrh); }
.dnr-filters__item.is-active{ color:#fff; background:rgba(204,40,40,.16); border-color:var(--l-bdrh); }

/* ═══════════════════════════ ARCHIVE : GRILLE ═══════════════════════════ */

.dnr-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(310px,1fr));
  gap:clamp(18px,2.4vw,30px);
}

.dnr-card{
  position:relative;
  background:linear-gradient(165deg,var(--l-bg1),var(--l-bg));
  border:1px solid var(--l-bdr);
  clip-path:polygon(var(--l-cut) 0,100% 0,100% calc(100% - var(--l-cut)),calc(100% - var(--l-cut)) 100%,0 100%,0 var(--l-cut));
  transition:border-color .25s ease, box-shadow .25s ease, transform .25s ease;
}
.dnr-card:hover{
  border-color:var(--l-bdrh);
  box-shadow:0 0 30px rgba(204,40,40,.16);
  transform:translateY(-4px);
}
.dnr-card__link{
  display:flex; flex-direction:column; height:100%;
  color:inherit; text-decoration:none;
}

.dnr-card__media{ position:relative; aspect-ratio:16/9; overflow:hidden; background:var(--l-bg); }
.dnr-card__media img{
  width:100%; height:100%; object-fit:cover; display:block;
  filter:saturate(.82) contrast(1.05);
  transition:transform .5s cubic-bezier(.2,.7,.3,1), filter .35s ease;
}
.dnr-card:hover .dnr-card__media img{ transform:scale(1.06); filter:saturate(1) contrast(1.05); }
.dnr-card__media::after{
  content:''; position:absolute; inset:0;
  background:linear-gradient(180deg,transparent 45%,rgba(13,17,23,.85) 100%);
}
.dnr-card__media--empty{
  display:flex; align-items:center; justify-content:center; height:100%;
  font-family:var(--l-disp); font-size:2.4rem; font-weight:700;
  letter-spacing:.2em; color:rgba(204,40,40,.22);
  background:repeating-linear-gradient(135deg,var(--l-bg1),var(--l-bg1) 12px,var(--l-bg) 12px,var(--l-bg) 24px);
}
.dnr-card__type{
  position:absolute; top:12px; left:12px; z-index:2;
  font-family:var(--l-mono); font-size:.62rem; font-weight:600;
  letter-spacing:.18em; text-transform:uppercase; color:#fff;
  background:rgba(204,40,40,.88);
  padding:5px 11px; border-radius:2px;
}

.dnr-card__body{ padding:20px 22px 12px; flex:1; }
.dnr-card__ref{
  display:block; font-family:var(--l-mono); font-size:.66rem;
  letter-spacing:.16em; color:var(--l-txt3); margin-bottom:.7em;
}
.dnr-card__title{
  font-family:var(--l-disp); font-size:1.18rem; font-weight:600; line-height:1.25;
  text-transform:uppercase; letter-spacing:.02em; color:#fff;
  margin:0 0 .6em; transition:color .2s ease;
}
.dnr-card__title::after{ display:none; }
.dnr-card:hover .dnr-card__title{ color:var(--l-rl); }
.dnr-card__excerpt{ font-size:.92rem; line-height:1.65; color:var(--l-txt2); margin:0; }

.dnr-card__foot{
  display:flex; justify-content:space-between; align-items:center; gap:12px;
  padding:14px 22px 18px;
  font-family:var(--l-mono); font-size:.68rem;
  letter-spacing:.1em; text-transform:uppercase; color:var(--l-txt3);
  border-top:1px solid var(--l-bdr); margin-top:12px;
}
.dnr-card__author{ color:var(--l-txt2); }

/* ═══════════════════════════ PAGINATION ═══════════════════════════ */

.dnr-pagination{ margin-top:clamp(32px,4vw,56px); }
.dnr-pagination .page-numbers{
  display:inline-flex; align-items:center; justify-content:center;
  min-width:42px; height:42px; padding:0 12px;
  font-family:var(--l-mono); font-size:.82rem;
  color:var(--l-txt2); text-decoration:none;
  border:1px solid var(--l-bdr); border-radius:2px;
  transition:all .2s ease;
}
.dnr-pagination ul{ display:flex; flex-wrap:wrap; gap:8px; list-style:none; margin:0; padding:0; justify-content:center; }
.dnr-pagination .page-numbers:hover{ color:#fff; border-color:var(--l-bdrh); background:rgba(204,40,40,.12); }
.dnr-pagination .page-numbers.current{ color:#fff; background:var(--l-r); border-color:var(--l-rl); }

.dnr-empty{
  text-align:center; padding:80px 20px;
  border:1px dashed var(--l-bdr); color:var(--l-txt2);
}
.dnr-empty__code{ font-family:var(--l-mono); color:var(--l-r); letter-spacing:.2em; font-size:.78rem; }

/* ═══════════════════════════ RÉCIT : EN-TÊTE ═══════════════════════════ */

.dnr-hero{
  position:relative; overflow:hidden;
  padding:clamp(40px,7vw,96px) clamp(24px,5vw,64px);
  border:1px solid var(--l-bdr);
  clip-path:polygon(var(--l-cut) 0,100% 0,100% calc(100% - var(--l-cut)),calc(100% - var(--l-cut)) 100%,0 100%,0 var(--l-cut));
  background:linear-gradient(165deg,var(--l-bg1),var(--l-bg));
}
.dnr-hero.has-cover{ min-height:clamp(320px,42vh,520px); display:flex; align-items:flex-end; }
.dnr-hero__bg{
  position:absolute; inset:0;
  background-size:cover; background-position:center;
  filter:saturate(.75) contrast(1.08);
  transform:scale(1.02);
}
.dnr-hero.has-cover .dnr-hero__bg::after{
  content:''; position:absolute; inset:0;
  background:linear-gradient(180deg,rgba(13,17,23,.35) 0%,rgba(13,17,23,.82) 55%,rgba(13,17,23,.96) 100%);
}
.dnr-hero__inner{ position:relative; z-index:2; max-width:60ch; }
.dnr-hero__title{
  font-family:var(--l-disp);
  font-size:clamp(1.9rem,4.8vw,3.6rem);
  font-weight:700; line-height:1.04;
  text-transform:uppercase; letter-spacing:.02em;
  color:#fff; margin:0;
  text-shadow:0 2px 30px rgba(0,0,0,.7);
}
.dnr-hero__title::after{ display:none; }
.dnr-hero__lede{
  margin:1.1em 0 0; font-size:clamp(1rem,1.6vw,1.18rem);
  line-height:1.7; color:var(--l-txt2);
}

/* ═══════════════════════════ RÉCIT : BANDEAU DE DONNÉES ═══════════════════════════ */

.dnr-strip{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(150px,1fr));
  gap:1px;
  margin:0 0 clamp(28px,4vw,44px);
  background:var(--l-bdr);
  border:1px solid var(--l-bdr);
  border-top:none;
}
.dnr-strip__cell{ background:var(--l-bg); padding:16px 20px; }
.dnr-strip dt{
  font-family:var(--l-mono); font-size:.62rem; font-weight:600;
  letter-spacing:.2em; text-transform:uppercase; color:var(--l-txt3);
  margin:0 0 .5em;
}
.dnr-strip dd{
  margin:0; font-family:var(--l-disp); font-size:.98rem; font-weight:600;
  letter-spacing:.02em; color:#fff;
}

/* ═══════════════════════════ RÉCIT : NOTE D'ARCHIVAGE ═══════════════════════════ */

.dnr-note{
  position:relative;
  margin:0 0 clamp(28px,4vw,44px);
  padding:20px 24px 20px 26px;
  background:rgba(204,40,40,.06);
  border:1px solid var(--l-bdr);
  border-left:3px solid var(--l-r);
  border-radius:0 3px 3px 0;
}
.dnr-note__label{
  display:block; font-family:var(--l-mono); font-size:.64rem; font-weight:600;
  letter-spacing:.22em; text-transform:uppercase; color:var(--l-r); margin-bottom:.6em;
}
.dnr-note p{ margin:0; font-size:.92rem; line-height:1.7; color:var(--l-txt2); font-style:italic; }

/* ═══════════════════════════ RÉCIT : CORPS DE TEXTE ═══════════════════════════ */

.dnr-prose{
  max-width:72ch;
  margin:0 auto;
  padding:clamp(24px,4vw,52px);
  background:var(--l-surf);
  -webkit-backdrop-filter:blur(6px);
  backdrop-filter:blur(6px);
  border:1px solid var(--l-bdr);
  border-radius:4px;
  font-size:1.06rem;
  line-height:1.85;
  color:var(--l-txt);
}
.dnr-prose > p{ margin:0 0 1.5em; }
.dnr-prose strong,.dnr-prose b{ color:#fff; font-weight:600; }
.dnr-prose em,.dnr-prose i{ color:var(--l-txt2); }

/* Lettrine sur le premier paragraphe */
.dnr-prose > p:first-of-type::first-letter{
  float:left;
  font-family:var(--l-disp);
  font-size:3.6em; line-height:.82; font-weight:700;
  color:var(--l-rl);
  margin:.06em .12em 0 0;
  text-shadow:0 0 24px var(--l-glow);
}
/* Chapô optionnel : classe .dnr-lede sur un paragraphe dans l'éditeur */
.dnr-prose .dnr-lede{
  font-size:1.18em; line-height:1.7; color:#fff; font-weight:500;
  padding-bottom:1.2em; margin-bottom:1.6em;
  border-bottom:1px solid var(--l-bdr);
}
.dnr-prose .dnr-lede::first-letter{ float:none; font-size:inherit; color:inherit; margin:0; text-shadow:none; }

.dnr-prose h2,.dnr-prose h3,.dnr-prose h4{
  font-family:var(--l-disp); color:#fff;
  text-transform:uppercase; letter-spacing:.04em;
  margin:2.2em 0 .8em;
}
.dnr-prose h2{ font-size:1.5rem; }
.dnr-prose h3{ font-size:1.22rem; }
.dnr-prose h2::after,.dnr-prose h3::after{
  content:''; display:block; width:56px; height:2px; margin:.6em 0 0;
  background:linear-gradient(90deg,var(--l-r),transparent);
}

.dnr-prose img{ max-width:100%; height:auto; display:block; border:1px solid var(--l-bdr); }
.dnr-prose figure{ margin:2em 0; }
.dnr-prose figcaption{
  font-family:var(--l-mono); font-size:.74rem; letter-spacing:.1em;
  color:var(--l-txt3); text-align:center; margin-top:.8em;
}

.dnr-prose blockquote{
  margin:2em 0; padding:4px 0 4px 26px;
  border-left:2px solid var(--l-r);
  font-family:var(--l-disp); font-size:1.15em; font-style:normal;
  color:#fff; line-height:1.6;
}
.dnr-prose blockquote p:last-child{ margin-bottom:0; }
.dnr-prose blockquote cite{
  display:block; margin-top:.8em;
  font-family:var(--l-mono); font-size:.72rem; font-style:normal;
  letter-spacing:.14em; text-transform:uppercase; color:var(--l-txt3);
}
.dnr-prose .wp-block-pullquote{
  border-top:1px solid var(--l-bdr); border-bottom:1px solid var(--l-bdr);
  padding:2em 0; margin:2.5em 0; text-align:center;
}
.dnr-prose .wp-block-pullquote p{
  font-family:var(--l-disp); font-size:1.5em; line-height:1.35;
  color:var(--l-rl); text-transform:uppercase; letter-spacing:.02em; margin:0;
}
.dnr-prose hr,.dnr-prose .wp-block-separator{
  border:none; height:1px; margin:2.6em auto;
  background:linear-gradient(90deg,transparent,var(--l-bdrh),transparent);
}
.dnr-prose ul,.dnr-prose ol{ margin:0 0 1.5em; padding-left:1.4em; }
.dnr-prose li{ margin-bottom:.5em; }
.dnr-prose ul li::marker{ color:var(--l-r); }

/* ═══════════════════════════ RÉCIT : SIGNATURE ═══════════════════════════ */

.dnr-sign{
  max-width:72ch; margin:clamp(28px,4vw,44px) auto 0;
  text-align:center;
}
.dnr-sign__rule{
  display:block; width:120px; height:1px; margin:0 auto 1.6em;
  background:linear-gradient(90deg,transparent,var(--l-r),transparent);
}
.dnr-sign__text{
  font-family:var(--l-disp); font-size:1.05rem; letter-spacing:.04em;
  color:var(--l-txt2); margin:0;
}
.dnr-sign__text strong{ color:#fff; text-transform:uppercase; }
.dnr-sign__date{
  display:inline-block; margin-top:.6em;
  font-family:var(--l-mono); font-size:.72rem;
  letter-spacing:.16em; text-transform:uppercase; color:var(--l-txt3);
}

/* ═══════════════════════════ NAVIGATION INTER-RÉCITS ═══════════════════════════ */

.dnr-nav{
  display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
  gap:16px; margin:clamp(40px,6vw,72px) 0 24px;
}
.dnr-nav__item{
  display:block; padding:20px 24px;
  background:linear-gradient(165deg,var(--l-bg1),var(--l-bg));
  border:1px solid var(--l-bdr);
  text-decoration:none;
  transition:border-color .2s ease, transform .2s ease, box-shadow .2s ease;
}
.dnr-nav__item:hover{ border-color:var(--l-bdrh); transform:translateY(-3px); box-shadow:0 0 24px rgba(204,40,40,.14); }
.dnr-nav__item--next{ text-align:right; }
.dnr-nav__label{
  display:block; font-family:var(--l-mono); font-size:.66rem;
  letter-spacing:.2em; text-transform:uppercase; color:var(--l-r); margin-bottom:.6em;
}
.dnr-nav__title{
  display:block; font-family:var(--l-disp); font-size:1.02rem; font-weight:600;
  text-transform:uppercase; letter-spacing:.02em; color:#fff; line-height:1.3;
}

.dnr-backlink{ text-align:center; margin:0; }
.dnr-backlink a{
  font-family:var(--l-mono); font-size:.76rem;
  letter-spacing:.16em; text-transform:uppercase; color:var(--l-txt3);
}
.dnr-backlink a:hover{ color:var(--l-rl); }

.dnr-comments{ max-width:72ch; margin:clamp(40px,6vw,72px) auto 0; }

/* ═══════════════════════════ RESPONSIVE / ACCESSIBILITÉ ═══════════════════════════ */

@media (max-width:640px){
  .dnr-grid{ grid-template-columns:1fr; }
  .dnr-strip{ grid-template-columns:repeat(2,1fr); }
  .dnr-prose{ font-size:1rem; }
  .dnr-prose > p:first-of-type::first-letter{ font-size:3em; }
  .dnr-nav__item--next{ text-align:left; }
}

@media (prefers-reduced-motion:reduce){
  .dnr-lore *,.dnr-lore *::before,.dnr-lore *::after{
    animation-duration:.001ms !important;
    transition-duration:.01ms !important;
  }
  .dnr-card:hover{ transform:none; }
  .dnr-card:hover .dnr-card__media img{ transform:none; }
}

.dnr-lore a:focus-visible,
.dnr-lore button:focus-visible{ outline:2px solid var(--l-rl); outline-offset:3px; }

@media print{
  .dnr-hero__bg,.dnr-nav,.dnr-backlink,.dnr-comments,.dnr-arch__cta{ display:none !important; }
  .dnr-lore{ color:#000; }
  .dnr-prose{ background:none; border:none; }
}
