/* ================================================================
   LORE : navigation à 3 rubriques + mise en page de la page Lore
   (chargé après style.css)
   ================================================================ */

/* ——— Navigation Lore | Mentalité | Règlement ——— */
.switch { grid-template-columns: repeat(3, 1fr); }
.switch .ind { width: calc((100% - 8px) / 3); }
.switch[data-active="lore"] .ind { opacity: 1; transform: translateX(0); }
.switch[data-active="mentalite"] .ind { opacity: 1; transform: translateX(100%); }
.switch[data-active="reglement"] .ind { opacity: 1; transform: translateX(200%); }
.switch a { padding: 8px 16px; gap: 7px; }

/* Sur les pages de faction, la barre est chargée : on masque le texte "Vision Illégal" (le logo reste) */
@media (min-width: 1021px) {
  .bar-in:has(.tabs:not([hidden])) .brand-t { display: none; }
}
@media (max-width: 720px) {
  .switch a { padding: 8px 2px; gap: 4px; font-size: clamp(.66rem, 2.9vw, .78rem); letter-spacing: -.01em; }
}
@media (max-width: 520px) {
  .bar-in { column-gap: 8px; }
  .switch svg { display: none; }
}

/* ——— Barre de progression de lecture (commune, en bas de l'en-tête) ——— */
#read-progress { position: absolute; left: 0; bottom: -1px; height: 3px; width: 0; background: var(--grad); box-shadow: 0 0 10px rgba(255,79,154,.6); pointer-events: none; }

/* ——— Texte du lore ——— */
.lore p { margin: 0 0 20px; font-size: 1.1rem; line-height: 1.9; }
.lore .chapter { margin-top: 64px; scroll-margin-top: 90px; }
.lore-intro { margin-top: 40px; }
.lore .lore-intro p:first-child { font-size: 1.3rem; line-height: 1.7; font-weight: 500; color: var(--ink); }
.lore p.punch { margin: 30px 0; padding: 4px 0 4px 22px; border-left: 5px solid var(--or1); font-weight: 800; font-size: clamp(1.25rem, 3.4vw, 1.7rem); line-height: 1.35; color: var(--ink); }
.lore .lore-intro p.punch { font-size: clamp(1.5rem, 4.2vw, 2.1rem); }

/* ——— Chaîne de causes ——— */
.chain { list-style: none; margin: 26px 0 8px; padding: 0; counter-reset: c; }
.chain li { position: relative; margin: 0 0 14px; padding: 15px 18px 15px 68px; border: 1px solid var(--line-strong); border-radius: 12px; color: var(--ink); font-weight: 600; font-size: 1.02rem; line-height: 1.5; background: color-mix(in srgb, var(--or2) calc(var(--i) * 2.6%), var(--surface)); }
.chain li::before { counter-increment: c; content: counter(c); position: absolute; left: 16px; top: 50%; transform: translateY(-50%); width: 34px; height: 34px; border-radius: 50%; background: var(--grad); color: var(--on-or); display: grid; place-items: center; font-weight: 800; font-size: .9rem; }
.chain li:not(:last-child)::after { content: ""; position: absolute; left: 32px; bottom: -15px; width: 2px; height: 14px; background: var(--or1); }

/* ——— Dernière phrase ——— */
.finale { margin: 44px 0 8px; padding: clamp(40px, 8vw, 68px) 24px; border-radius: 18px; text-align: center; border: 1px solid var(--line-strong); background: radial-gradient(ellipse at 50% 110%, rgba(255,79,154,.32), transparent 65%), #060607; }
.lore .finale p { max-width: 30rem; margin: 0 auto 20px; color: #dcdce2; font-size: 1.1rem; line-height: 1.7; }
.finale strong { display: block; font-weight: 800; font-size: clamp(2rem, 9.5vw, 4.4rem); line-height: 1.1; white-space: nowrap; text-transform: uppercase; letter-spacing: .02em; background: var(--grad); -webkit-background-clip: text; background-clip: text; color: transparent; }

@media (max-width: 720px) {
  .lore p { font-size: 1.05rem; line-height: 1.85; }
  .chain li { padding: 14px 14px 14px 58px; }
  .chain li::before { left: 12px; width: 32px; height: 32px; }
  .chain li:not(:last-child)::after { left: 27px; }
}
