/* InStudy — Rapport « Les décisions Produit à l'ère de l'IA » — page de lecture.
   Repose sur instudy-brand.css (tokens, polices, boutons). Une seule échelle d'espacement : 8 · 12 · 16 · 24 · 40 · 64 · 96. */
:root {
  --s1: 8px; --s2: 12px; --s3: 16px; --s4: 24px; --s5: 40px; --s6: 64px; --s7: 96px;
  --pad-x: clamp(20px, 5vw, 72px); --pad-y: clamp(56px, 8vw, 104px);
  --content: 1120px; --card-r: 14px; --panel-r: 20px;
  --body: #2a2d32;
}
html { scroll-behavior: smooth; scroll-padding-top: 84px; }
body { background: var(--ink); color: var(--ink); font-size: 17px; line-height: 1.6; }
.sr-only, .skip { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.skip:focus { position: fixed; top: 8px; left: 16px; z-index: 200; width: auto; height: auto; clip-path: none; padding: 10px 16px; background: var(--marble); border-radius: 999px; }
h1, h2, h3, h4, p, figure, blockquote, ol, ul, dl, dd { margin: 0; }
h1 em, h2 em, h3 em { font-family: var(--display); font-style: italic; font-weight: 400; letter-spacing: -.01em; color: var(--accent); }
strong, b { font-weight: 500; }

/* ---------- Sections = panneaux ---------- */
.report { display: flex; flex-direction: column; gap: 10px; padding: 10px 10px 0; }
@media (min-width: 800px) { .report { padding: 16px 16px 0; } }
.sec { border-radius: var(--panel-r); padding: var(--pad-y) var(--pad-x); background: var(--marble); }
.sec-mist { background: var(--stone); }
.sec-dark { background: var(--ink-2); color: var(--marble); box-shadow: inset 0 0 0 1px var(--line-dark); }
.sec-inner { max-width: var(--content); margin: 0 auto; display: flex; flex-direction: column; gap: var(--s5); }

/* En-tête de section */
.slide-heading { display: flex; flex-direction: column; gap: var(--s3); max-width: 900px; }
.slide-heading .eyebrow { display: block; }
.slide-heading h2 { font-size: clamp(34px, 4.6vw, 60px); line-height: 1.02; letter-spacing: -.04em; }
.slide-heading h2 em { display: inline; }
.slide-heading > p { font-size: clamp(17px, 1.5vw, 20px); line-height: 1.5; color: var(--muted); max-width: 60ch; }
.sec-dark .slide-heading h2 em, .sec-dark h2 em { color: var(--accent-light); }
.sec-dark .eyebrow { color: var(--accent-light); }
.eyebrow { font: 400 12px/1.5 var(--mono); letter-spacing: .08em; text-transform: uppercase; color: var(--accent); }
.source, .index { font: 400 12px/1.5 var(--mono); letter-spacing: .06em; text-transform: uppercase; color: var(--muted); }

/* ---------- Couverture ---------- */
.sec-cover { position: relative; min-height: min(100svh, 920px); display: flex; padding-top: 24px; padding-bottom: 32px;
  background: radial-gradient(90% 70% at 50% 30%, #f7f6f2 0%, #ebeae5 45%, #dcdfe3 100%), #ebeae5; }
.sec-cover .sec-inner { max-width: none; width: 100%; justify-content: space-between; gap: var(--s5); }
.cover-head { display: flex; justify-content: space-between; align-items: center; gap: var(--s3); }
.cover-head .brand-logo { font-size: 21px; }
.cover-top { display: flex; justify-content: center; }
.cover-tag { display: inline-flex; align-items: center; gap: 10px; padding: 8px 16px 8px 8px; border-radius: 999px; background: rgba(255,255,255,.7); box-shadow: inset 0 0 0 1px rgba(60,84,112,.2); font-size: 14px; color: #1d2024; }
.cover-tag b { font: 400 11px/1 var(--mono); letter-spacing: .08em; background: var(--accent); color: #fff; padding: 5px 8px; border-radius: 999px; }
.cover-main { display: flex; flex-direction: column; align-items: center; text-align: center; gap: var(--s4); }
.cover-pretitle { font: 400 12px/1.5 var(--mono); letter-spacing: .08em; text-transform: uppercase; color: var(--accent); }
.cover-main h1 { font-size: clamp(40px, 6vw, 92px); font-weight: 500; line-height: .98; letter-spacing: -.045em; max-width: 16ch;
  background: linear-gradient(180deg, #0d0f12 55%, #3a3e45 100%); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; }
.cover-main h1 em { display: block; -webkit-text-fill-color: var(--accent); letter-spacing: -.02em; padding-bottom: .06em; }
.cover-main h1 br { display: none; }
.cover-deck { max-width: 50ch; font-size: clamp(17px, 1.6vw, 20px); line-height: 1.5; color: #3a3d42; }
.cover-deck br { display: none; }
.cover-bottom { display: flex; justify-content: space-between; align-items: flex-end; gap: var(--s4); flex-wrap: wrap; }
.cover-meta { font: 400 12px/2 var(--mono); letter-spacing: .04em; color: #3a3d42; }
.cover-meta b { color: var(--accent); font-weight: 400; }
.cover-actions { display: flex; gap: var(--s2); flex-wrap: wrap; }

/* ---------- Synthèse : 4 tuiles teintées ---------- */
.summary-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; }
.summary-card { --fg: var(--ink); --soft: #4d5157; --hi: var(--accent);
  position: relative; overflow: hidden; isolation: isolate; display: flex; flex-direction: column; gap: var(--s2);
  min-height: 320px; padding: 28px 24px 24px; border-radius: 18px; color: var(--fg); text-decoration: none; transition: transform .2s ease, box-shadow .2s ease; }
.summary-card::before { content: attr(data-n); position: absolute; right: 14px; top: -26px; z-index: -1; font: 300 170px/1 var(--display); color: currentColor; opacity: .09; }
.summary-card:hover { transform: translateY(-3px); box-shadow: 0 18px 40px rgba(13,15,18,.14); }
.d-slate { background: linear-gradient(140deg, #2c3f55 0%, #4f6886 100%); --fg: #fff; --soft: #e6ecf2; --hi: #fff; }
.d-mist { background: radial-gradient(120% 90% at 80% 0%, #eef1f4 0%, #cfd8e2 100%); }
.d-night { background: radial-gradient(90% 80% at 100% 100%, rgba(143,169,196,.28), transparent 60%), #1c2330; --fg: var(--marble); --soft: #b4bcc6; --hi: var(--accent-light); }
.d-stone { background: linear-gradient(160deg, #f6f4ef 0%, #dcd8ce 100%); }
.summary-card .index { color: var(--hi); font-weight: 500; letter-spacing: .1em; }
.summary-card h3 { font-size: 24px; line-height: 1.12; letter-spacing: -.03em; color: var(--fg); }
.summary-card p { font-size: 15px; line-height: 1.5; color: var(--fg); }
.summary-card p b { display: block; font: 400 11px/1.6 var(--mono); letter-spacing: .08em; text-transform: uppercase; color: var(--soft); margin: 10px 0 4px; }
.card-arrow { margin-top: auto; align-self: flex-end; width: 34px; height: 34px; border-radius: 999px; display: grid; place-items: center; box-shadow: inset 0 0 0 1px color-mix(in srgb, currentColor 35%, transparent); }
.reading { display: grid; grid-template-columns: 1.3fr 1fr; gap: var(--s6); align-items: center; padding-top: var(--s5); border-top: 1px solid var(--line); }
.reading .statement { font: 500 clamp(26px, 3vw, 42px)/1.12 var(--sans); letter-spacing: -.035em; max-width: 24ch; }
.reading .statement em { font-family: var(--display); font-style: italic; font-weight: 400; color: var(--accent); letter-spacing: -.01em; }
.reading blockquote { font: italic 300 22px/1.4 var(--display); }
.reading blockquote cite { display: block; margin-top: var(--s2); font: normal 400 12px var(--mono); letter-spacing: .06em; color: var(--muted); }

/* ---------- Insights ---------- */
.insight-layout { display: grid; grid-template-columns: 1fr 1fr; gap: var(--s5); align-items: stretch; }
.observation-list { counter-reset: obs; display: flex; flex-direction: column; }
.observation { counter-increment: obs; display: grid; grid-template-columns: 44px 1fr; row-gap: 6px; padding: var(--s4) 0; border-top: 1px solid var(--line); }
.observation:last-child { border-bottom: 1px solid var(--line); }
.observation::before { content: "0" counter(obs); grid-row: 1 / 4; font: 400 12px/2.2 var(--mono); color: var(--muted); }
.observation h3 { font-size: 22px; line-height: 1.2; letter-spacing: -.025em; }
.observation p { color: var(--body); max-width: 50ch; }
.verbatim { display: flex; flex-direction: column; justify-content: center; gap: var(--s3); padding: var(--s5); border-radius: 18px; background: var(--ink); color: var(--marble); }
.verbatim .eyebrow { color: var(--accent-light); }
.verbatim blockquote { font: italic 300 clamp(24px, 2.4vw, 32px)/1.25 var(--display); letter-spacing: -.01em; text-wrap: pretty; }
.verbatim figcaption { display: flex; flex-direction: column; gap: 2px; font-size: 14px; color: rgba(241,240,236,.75); }
.verbatim figcaption strong { color: var(--marble); }
.verbatim figcaption span { font: 400 12px/1.5 var(--mono); letter-spacing: .04em; }
.action-strip { display: grid; grid-template-columns: 1fr auto; gap: var(--s4); align-items: center; padding: var(--s4) 28px; border-radius: 18px; background: #fff; box-shadow: inset 0 0 0 1px var(--line); }
.sec-mist .action-strip { background: var(--marble); }
.action-strip > div { display: flex; flex-direction: column; gap: 6px; }
.action-strip h3 { font-size: 22px; letter-spacing: -.025em; }
.action-strip p { color: var(--body); max-width: 70ch; }

/* Boutons secondaires */
.detail-trigger, .text-button { display: inline-flex; align-items: center; gap: 10px; font: 500 15px/1 var(--sans); color: var(--ink); background: transparent; border: 0; cursor: pointer; white-space: nowrap; text-decoration: none; }
.detail-trigger { padding: 14px 20px; border-radius: 999px; box-shadow: inset 0 0 0 1.5px var(--ink); }
.detail-trigger:hover { background: var(--ink); color: var(--marble); }
.text-button { padding: 8px 0; color: var(--accent); }
.text-button:hover { text-decoration: underline; text-underline-offset: 5px; }
.detail-trigger span, .text-button span { font-size: 18px; line-height: 1; }

/* ---------- Usages ---------- */
.usage-grid { display: grid; grid-template-columns: 1fr 1fr; gap: var(--s5); }
.column-label { font: 400 12px/1.5 var(--mono); letter-spacing: .08em; text-transform: uppercase; color: var(--accent); padding-bottom: var(--s2); border-bottom: 2px solid var(--accent); }
.usage-grid > div:last-child .column-label { color: var(--muted); border-color: var(--accent-light); }
.usage-grid ul { list-style: none; padding: 0; }
.usage-grid li { padding: var(--s3) 0; border-bottom: 1px solid var(--line); }
.usage-grid li strong { display: block; font-size: 18px; letter-spacing: -.01em; margin-bottom: 2px; }
.usage-grid li span { display: block; color: var(--body); font-size: 16px; }
.usage-grid small { font: 400 12px/1.5 var(--mono); color: var(--muted); white-space: nowrap; }
.quote-ribbon .verbatim { padding: 28px var(--s5); }
.quote-ribbon .verbatim .eyebrow { display: none; }
.quote-ribbon blockquote { font-size: clamp(22px, 2.2vw, 28px); }

/* ---------- Corpus ---------- */
.chart-layout { display: grid; grid-template-columns: 1fr 1.6fr; gap: var(--s5); align-items: stretch; }
.chart-intro { display: flex; flex-direction: column; gap: var(--s2); padding: var(--s5); border-radius: 18px; background: var(--ink-2); color: var(--marble); }
.large-stat { font: 500 clamp(64px, 8vw, 104px)/1 var(--sans); letter-spacing: -.05em; font-variant-numeric: tabular-nums; }
.chart-intro h3 { font-size: 22px; letter-spacing: -.02em; }
.chart-intro p { color: rgba(241,240,236,.72); font-size: 16px; }
.corpus-chart { display: flex; flex-direction: column; justify-content: center; gap: var(--s4); }
.chart-label { font: 400 12px/1.5 var(--mono); letter-spacing: .08em; text-transform: uppercase; color: var(--muted); }
.chart-row { display: grid; grid-template-columns: 1fr auto; gap: var(--s1); align-items: baseline; }
.chart-row > span { font-size: 18px; }
.chart-row b { font: 500 18px/1 var(--sans); letter-spacing: -.02em; }
.chart-row small { font-size: 13px; color: var(--muted); font-weight: 400; }
.bar-track { grid-column: 1 / -1; height: 10px; border-radius: 999px; background: rgba(13,15,18,.08); overflow: hidden; }
.bar-track > div { height: 100%; width: calc(var(--count) / 12 * 100%); border-radius: 999px; background: var(--accent); }
.chart-row:nth-of-type(3) .bar-track > div { background: #4f6886; }
.chart-row:nth-of-type(4) .bar-track > div { background: var(--accent-light); }
.chart-row:nth-of-type(5) .bar-track > div { background: #2c3f55; }
.corpus-chart figcaption { font-size: 14px; color: var(--muted); }

/* Encadré de lecture (takeaway) */
.takeaway { display: flex; flex-direction: column; gap: 6px; padding-top: var(--s4); border-top: 1px solid var(--line); font-size: clamp(18px, 1.6vw, 21px); line-height: 1.45; }
.takeaway > span { font: 400 12px/1.5 var(--mono); letter-spacing: .08em; text-transform: uppercase; color: var(--accent); }

/* ---------- Business ---------- */
.impact-chain { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; list-style: none; padding: 0; }
.impact-chain li { display: flex; flex-direction: column; gap: var(--s2); padding: 28px 24px; border-radius: 18px; background: #fff; box-shadow: inset 0 0 0 1px var(--line); }
.impact-chain li:last-child { background: linear-gradient(140deg, #2c3f55 0%, #4f6886 100%); color: #fff; box-shadow: none; }
.impact-chain .index { color: var(--accent); }
.impact-chain li:last-child .index, .impact-chain li:last-child p { color: #e6ecf2; }
.impact-chain h3 { font-size: 30px; letter-spacing: -.035em; margin-top: var(--s3); }
.impact-chain p { color: var(--body); font-size: 16px; }
.impact-chain br { display: none; }
.slide-footnote { display: flex; justify-content: space-between; align-items: center; gap: var(--s4); flex-wrap: wrap; }
.slide-footnote p { font-size: 14px; color: var(--muted); }

/* ---------- Cas d'activation ---------- */
.result-layout { display: grid; grid-template-columns: 1.3fr 1fr; gap: var(--s6); align-items: center; }
.result-stat { order: 2; text-align: right; display: flex; flex-direction: column; align-items: flex-end; gap: var(--s2); }
.result-stat .large-stat { font-size: clamp(72px, 10vw, 140px); color: var(--marble); }
.result-stat h3 { font-size: 24px; letter-spacing: -.02em; }
.result-stat p { color: rgba(241,240,236,.7); }
.result-stat br { display: none; }
.result-stat .source { color: var(--accent-light); }
.result-story { order: 1; display: flex; flex-direction: column; gap: var(--s4); }
.result-story > p { font-size: 19px; color: rgba(241,240,236,.88); max-width: 52ch; }
.result-story .verbatim { padding: var(--s4) 0 0; background: transparent; border-top: 1px solid var(--line-dark); border-radius: 0; }
.result-story .verbatim .eyebrow { display: none; }
.result-caveat { padding-top: var(--s4); border-top: 1px solid var(--line-dark); font-size: 15px; color: rgba(241,240,236,.7); max-width: 90ch; }
.result-caveat strong { color: var(--marble); }

/* ---------- Fondations ---------- */
.foundation-copy { display: flex; flex-direction: column; justify-content: center; gap: var(--s3); }
.foundation-copy h3 { font-size: 26px; letter-spacing: -.03em; max-width: 26ch; }
.foundation-copy p { color: var(--body); max-width: 46ch; }
.foundation-measures { display: flex; flex-wrap: wrap; gap: var(--s1); padding-top: var(--s3); }
.foundation-measures span { font-size: 14px; padding: 8px 14px; border-radius: 999px; background: #fff; box-shadow: inset 0 0 0 1px var(--line); color: var(--accent); }

/* ---------- Premier pas ---------- */
.pilot-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
.pilot-grid > div { display: flex; flex-direction: column; gap: var(--s2); padding: 28px 24px; border-radius: 18px; background: var(--marble); }
.step-number { font: 500 44px/1 var(--sans); letter-spacing: -.05em; color: var(--accent); }
.pilot-grid h3 { font-size: 22px; letter-spacing: -.025em; margin-top: var(--s2); }
.pilot-grid p { color: var(--body); font-size: 16px; }
.example-prompt { display: flex; justify-content: space-between; align-items: center; gap: var(--s4); flex-wrap: wrap; padding: var(--s4) 28px; border-radius: 18px; background: var(--ink); color: var(--marble); }
.example-prompt .eyebrow { color: var(--accent-light); }
.example-prompt h3 { font: italic 300 clamp(24px, 2.4vw, 32px)/1.2 var(--display); margin-top: 6px; }
.example-prompt .detail-trigger { color: var(--marble); box-shadow: inset 0 0 0 1.5px rgba(241,240,236,.6); }
.example-prompt .detail-trigger:hover { background: var(--marble); color: var(--ink); }

/* ---------- Méthode ---------- */
.method-grid { display: flex; flex-direction: column; }
.method-grid > div { display: grid; grid-template-columns: 200px 1fr; column-gap: var(--s4); row-gap: 6px; padding: var(--s4) 0; border-top: 1px solid var(--line); }
.method-grid > div > .eyebrow { grid-row: 1 / 3; line-height: 2.2; }
.method-grid h3 { font-size: 22px; letter-spacing: -.025em; }
.method-grid p { color: var(--body); max-width: 70ch; }
.closing-question { display: flex; flex-direction: column; gap: var(--s3); padding: var(--s6) var(--s5); border-radius: 18px; color: var(--marble);
  background: radial-gradient(40% 60% at 10% 100%, rgba(143,169,196,.16), transparent 70%), var(--ink); }
.closing-question .eyebrow { color: var(--accent-light); }
.closing-question p { font: 500 clamp(30px, 4vw, 56px)/1.06 var(--sans); letter-spacing: -.04em; max-width: 22ch; }
.closing-question em { font-family: var(--display); font-style: italic; font-weight: 400; letter-spacing: -.01em; }
.closing-question mark { background: linear-gradient(180deg, #a9bdd3, #8fa9c4); color: var(--ink); border-radius: 10px; padding: 0 .12em; }
.closing-question .sig { font: 400 13px/1 var(--mono); color: var(--muted-dark); }
.method-links { display: flex; justify-content: space-between; align-items: center; gap: var(--s4); flex-wrap: wrap; }

/* ---------- Pied de rapport ---------- */
.end { margin: 10px; border-radius: var(--panel-r); padding: var(--pad-y) var(--pad-x); background: var(--ink); color: var(--marble); }
@media (min-width: 800px) { .end { margin: 10px 16px 16px; } }
.end-inner { max-width: var(--content); margin: 0 auto; display: grid; grid-template-columns: 1.4fr 1fr; gap: var(--s6); align-items: end; }
.end .eyebrow { color: var(--accent-light); }
.end h2 { font-size: clamp(32px, 4vw, 52px); letter-spacing: -.04em; margin: var(--s3) 0; }
.end h2 em { color: var(--accent-light); }
.end p { color: rgba(241,240,236,.8); max-width: 52ch; }
.end-actions { display: flex; flex-direction: column; gap: var(--s2); align-items: flex-start; }
.end .btn-primary { background: var(--marble); color: var(--ink); }
.end .btn-primary:hover { background: #fff; }
.end-foot { max-width: var(--content); margin: var(--s6) auto 0; padding-top: var(--s4); border-top: 1px solid var(--line-dark); display: flex; justify-content: space-between; gap: var(--s3); flex-wrap: wrap; font: 400 12px/1.6 var(--mono); color: var(--muted-dark); }
.end-foot a { color: var(--marble); }
.end .brand-logo { color: var(--marble); }

/* ---------- Barre flottante (après la couverture) ---------- */
.float-bar { position: fixed; top: 12px; left: 50%; z-index: 90; width: min(760px, calc(100% - 20px)); transform: translate(-50%, calc(-100% - 24px));
  display: flex; align-items: center; justify-content: space-between; gap: var(--s3); padding: 6px 6px 6px 18px; border-radius: 999px;
  background: rgba(241,240,236,.86); -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px); box-shadow: 0 0 0 1px var(--line), 0 10px 30px rgba(13,15,18,.12); transition: transform .35s ease; }
.float-bar.is-on { transform: translate(-50%, 0); }
.float-bar .brand-logo { font-size: 17px; }
.float-bar .brand-logo i { font-size: 20px; }
.float-title { font-size: 14px; color: var(--muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; flex: 1; min-width: 0; }
.float-bar .btn { padding: 10px 16px; font-size: 14px; }
.float-bar select { font: 400 14px var(--sans); color: var(--ink); background: transparent; border: 0; padding: 8px 4px; max-width: 220px; cursor: pointer; }
@media (max-width: 700px) { .float-title { display: none; } .float-bar select { max-width: 130px; } }

/* Toast copie */
.toast { position: fixed; bottom: 20px; left: 50%; transform: translate(-50%, 200%); z-index: 120; padding: 12px 18px; border-radius: 999px; background: var(--ink); color: var(--marble); font-size: 14px; transition: transform .3s ease; }
.toast.is-on { transform: translate(-50%, 0); }

/* ---------- Dialogues ---------- */
dialog { border: 0; border-radius: 20px; padding: 0; width: min(760px, calc(100% - 24px)); max-height: calc(100dvh - 48px); background: var(--marble); color: var(--ink); box-shadow: 0 30px 100px rgba(0,0,0,.35); }
dialog::backdrop { background: rgba(13,15,18,.55); -webkit-backdrop-filter: blur(3px); backdrop-filter: blur(3px); }
.dialog-top { position: sticky; top: 0; z-index: 2; display: flex; justify-content: space-between; align-items: center; padding: 14px 28px; background: var(--marble); border-bottom: 1px solid var(--line); }
.close-dialog { width: 40px; height: 40px; border: 0; border-radius: 999px; background: var(--stone); color: var(--ink); font-size: 24px; line-height: 1; cursor: pointer; }
.dialog-content { padding: 28px 28px 40px; display: flex; flex-direction: column; gap: var(--s4); }
.dialog-content h2 { font-size: clamp(28px, 3.4vw, 40px); letter-spacing: -.035em; line-height: 1.05; }
.dialog-content section { display: flex; flex-direction: column; gap: var(--s1); padding-top: var(--s4); border-top: 1px solid var(--line); }
.dialog-content h3 { font-size: 20px; letter-spacing: -.02em; }
.dialog-content p, .dialog-content dd, .dialog-content li { color: var(--body); }
.dialog-content ol { padding-left: 22px; display: flex; flex-direction: column; gap: var(--s1); }
.dialog-content dl { display: grid; gap: var(--s2); margin-top: var(--s1); }
.dialog-content dt { font: 400 12px/1.5 var(--mono); letter-spacing: .08em; text-transform: uppercase; color: var(--muted); }
.dialog-content .note { font-size: 14px; color: var(--muted); }
.dialog-content .dialog-action { border-top: 2px solid var(--accent); }
.source-list { columns: 2; padding-left: 18px; font-size: 15px; color: var(--body); }

/* ---------- Responsive ---------- */
@media (max-width: 1000px) {
  .summary-grid, .impact-chain { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 800px) {
  .insight-layout, .usage-grid, .chart-layout, .result-layout, .reading, .end-inner, .pilot-grid { grid-template-columns: 1fr; gap: var(--s4); }
  .action-strip { grid-template-columns: 1fr; }
  .result-stat { order: 0; text-align: left; align-items: flex-start; }
  .method-grid > div { grid-template-columns: 1fr; }
  .method-grid > div > .eyebrow { grid-row: auto; }
  .cover-bottom { flex-direction: column; align-items: stretch; }
  .cover-actions .btn { flex: 1; justify-content: center; }
  .verbatim, .chart-intro, .closing-question { padding: 28px 24px; }
  .source-list { columns: 1; }
}
@media (max-width: 560px) {
  .summary-grid, .impact-chain { grid-template-columns: 1fr; }
  .summary-card { min-height: 0; }
  .sec-cover { min-height: auto; }
}
@media print {
  body { background: #fff; }
  .float-bar, .toast, .cover-actions, .detail-trigger, .text-button, .method-links { display: none !important; }
  .report { padding: 0; gap: 0; }
  .sec, .end { border-radius: 0; break-inside: avoid; }
}

.float-count { font: 400 12px/1 var(--mono); letter-spacing: .06em; color: var(--muted); white-space: nowrap; font-variant-numeric: tabular-nums; }
/* Question finale en slide à part (manifeste) */
.sec-question { background: radial-gradient(40% 60% at 10% 100%, rgba(143,169,196,.16), transparent 70%), var(--ink-2); }
.sec-question .closing-question { background: none; padding: 0; gap: var(--s4); }
.sec-question .closing-question p { font-size: clamp(36px, 5.6vw, 84px); max-width: 18ch; line-height: 1.04; }


/* ===== Mode slides horizontales (≥ 800 px, activé par deck.js) ===== */
@media (min-width: 800px) {
  html.deck-on, html.deck-on body { height: 100%; overflow: clip; overscroll-behavior: none; }
  html.deck-on .report { flex-direction: row; gap: 0; padding: 0; height: 100svh; width: 100vw; transition: transform .6s cubic-bezier(.65,.05,.25,1); will-change: transform; }
  html.deck-on .sec, html.deck-on .end { flex: 0 0 100vw; width: 100vw; height: 100svh; margin: 0; overflow-y: auto; overflow-x: hidden; scrollbar-width: none;
    border: 16px solid var(--ink); border-radius: 36px; background-clip: padding-box; display: flex; align-items: safe center;
    padding: clamp(40px, 7vh, 88px) var(--pad-x) clamp(88px, 12vh, 112px); }
  html.deck-on .sec::-webkit-scrollbar, html.deck-on .end::-webkit-scrollbar { display: none; }
  html.deck-on .sec-dark { box-shadow: none; }
  html.deck-on .sec-cover { padding: 28px var(--pad-x) clamp(88px, 12vh, 112px); align-items: stretch; }
  html.deck-on .sec > .sec-inner, html.deck-on .end > .end-inner { width: 100%; }
  html.deck-on .end { flex-direction: column; justify-content: center; }
  html.deck-on .end-foot { width: 100%; }
  html.deck-on .sec .sec-inner { gap: clamp(18px, 3.2vh, 40px); }
  html.deck-on [data-fit] > .sec-inner > *, html.deck-on [data-fit] > .end-inner > *, html.deck-on [data-fit] > .end-foot { zoom: var(--fit, 1); }
  html.deck-on .float-bar { display: none; }
  html.deck-on .deck-nav { display: flex; }
}
@media (min-width: 800px) and (prefers-reduced-motion: reduce) { html.deck-on .report { transition: none; } }

/* Pastille de navigation (mode slides) */
.deck-nav { display: none; position: fixed; left: 50%; bottom: 30px; transform: translateX(-50%); width: max-content; max-width: calc(100vw - 48px); white-space: nowrap; z-index: 95; align-items: center; gap: 6px; padding: 6px; border-radius: 999px;
  background: rgba(241,240,236,.9); -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px); box-shadow: 0 0 0 1px var(--line), 0 10px 30px rgba(13,15,18,.16); }
.deck-nav button:not(.btn) { width: 38px; height: 38px; border: 0; border-radius: 999px; background: transparent; color: var(--ink); font-size: 18px; cursor: pointer; display: grid; place-items: center; }
.deck-nav button:not(.btn):hover:not(:disabled) { background: var(--stone); }
.deck-nav button:disabled { opacity: .3; cursor: default; }
.deck-nav .deck-count { font: 400 12px/1 var(--mono); letter-spacing: .06em; color: var(--ink); min-width: 64px; text-align: center; font-variant-numeric: tabular-nums; }
.deck-nav .deck-progress { width: 90px; height: 3px; border-radius: 999px; background: var(--line); overflow: hidden; }
.deck-nav .deck-progress i { display: block; height: 100%; width: 0; background: var(--accent); transition: width .4s ease; }
.deck-nav select { font: 400 13px var(--sans); color: var(--ink); background: transparent; border: 0; padding: 8px 4px; max-width: 190px; cursor: pointer; }
.deck-nav .btn { padding: 10px 16px; font-size: 14px; background: var(--ink); color: var(--marble); flex: none; }
.deck-nav .btn:hover { background: var(--accent-ink); }
.deck-nav .sep { width: 1px; height: 22px; background: var(--line); margin: 0 4px; }
@media (min-width: 900px) { html.deck-on .summary-grid { grid-template-columns: repeat(4, 1fr); } html.deck-on .summary-card { min-height: 0; } }
@media (min-width: 800px) {
  html.deck-on .cover-main h1 { font-size: clamp(34px, min(6vw, 10.5vh), 92px); }
  html.deck-on .cover-main { gap: clamp(12px, 2.4vh, 24px); }
  html.deck-on .cover-deck { font-size: clamp(15px, 2.2vh, 20px); }
  html.deck-on .sec-cover .sec-inner { gap: clamp(16px, 3vh, 40px); }
}
