:root{
  --bg:#f7f1e7; --paper:#fbf7f0; --ink:#2a2420; --muted:#7a6d62; --accent:#b4532a; --accent-soft:#e9d3bf; --rule:#e4d8c8; --teal:#3f6f6a;
  --serif:"Charter","Bitstream Charter","Iowan Old Style","Sitka Text","Cambria","Georgia",serif;
  --sans:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  --col:680px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--serif);font-size:20px;line-height:1.75;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;font-kerning:normal;hyphens:auto;-webkit-hyphens:auto}
::selection{background:var(--accent-soft)}
a{color:var(--accent)}
.progress{position:fixed;top:0;left:0;right:0;height:3px;z-index:20;background:transparent}
.progress span{display:block;height:100%;background:linear-gradient(90deg,var(--accent),#d98b4f);transform-origin:0 50%;transform:scaleX(0)}
.masthead{position:sticky;top:0;z-index:10;display:flex;justify-content:space-between;align-items:center;padding:.85rem 1.25rem;background:rgba(247,241,231,.92);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);border-bottom:1px solid var(--rule);font-family:var(--sans);font-size:.8rem}
.brand{font-weight:700;letter-spacing:.02em;color:var(--ink);text-decoration:none;font-size:1rem}
.masthead-meta{color:var(--muted)}
main{padding:0 1.25rem}
article{max-width:var(--col);margin:0 auto}
.article-head{padding:3.5rem 0 1.5rem}
.kicker{font-family:var(--sans);text-transform:uppercase;letter-spacing:.14em;font-size:.72rem;font-weight:600;color:var(--accent);margin:0 0 1rem}
h1{font-family:var(--serif);font-weight:700;font-size:clamp(2rem,5.2vw,3.1rem);line-height:1.15;letter-spacing:-.015em;margin:0 0 1.75rem;hyphens:none}
.byline{display:flex;align-items:center;gap:.8rem;font-family:var(--sans);font-size:.85rem;line-height:1.4}
.avatar{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;background:var(--accent);color:#fff;font-weight:700;font-family:var(--serif);font-size:1.2rem;flex:none}
.author{font-weight:600}
.meta{color:var(--muted)}
.fig{margin:2.75rem 0}
.fig img{display:block;width:100%;height:auto;border-radius:6px;background:var(--accent-soft);box-shadow:0 1px 2px rgba(60,40,20,.08),0 8px 30px rgba(60,40,20,.08)}
.fig figcaption{font-family:var(--sans);font-size:.78rem;color:var(--muted);text-align:center;margin-top:.7rem;line-height:1.5}
.fig.hero{margin:1rem calc(50% - min(50vw, 520px)) 2rem}
.fig.hero img{border-radius:8px}
@media (max-width:1080px){.fig.hero{margin-left:-1.25rem;margin-right:-1.25rem}.fig.hero img{border-radius:0}}
.toc{font-family:var(--sans);font-size:.88rem;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);padding:.6rem 0;margin:0 0 2.5rem}
.toc summary{cursor:pointer;color:var(--muted);font-weight:600;letter-spacing:.05em;text-transform:uppercase;font-size:.72rem;list-style:none;padding:.35rem 0}
.toc summary::-webkit-details-marker{display:none}
.toc summary::after{content:" +";color:var(--accent)}
.toc[open] summary::after{content:" –"}
.toc ol{margin:.5rem 0 .6rem;padding-left:1.4rem;line-height:1.5}
.toc li{margin:.4rem 0}
.toc a{color:var(--ink);text-decoration:none;border-bottom:1px solid transparent}
.toc a:hover{border-bottom-color:var(--accent)}
.prose p{margin:0 0 1.35em}
.prose p.lede{font-size:1.18em;line-height:1.65;display:flow-root}
.prose p.lede::first-letter{float:left;font-size:3.6em;line-height:.9;padding:.08em .1em 0 0;color:var(--accent);font-weight:700}
.prose h2{font-family:var(--serif);font-size:clamp(1.45rem,3.4vw,1.85rem);line-height:1.25;letter-spacing:-.01em;margin:3.6rem 0 1.4rem;scroll-margin-top:4.5rem;hyphens:none}
.prose h2::before{content:"";display:block;width:48px;height:3px;background:var(--accent);margin-bottom:1.1rem;border-radius:2px}
.pullquote{margin:2.6rem 0;padding:.4rem 0 .4rem 1.5rem;border-left:4px solid var(--accent)}
.pullquote p{margin:0!important;font-size:1.32em;line-height:1.45;font-style:italic;color:var(--accent);hyphens:none}
.prose p.closing{font-size:1.15em;font-weight:700}
.prose p.closing:last-child{text-align:center;font-style:italic;color:var(--accent);font-size:1.3em;margin-top:2rem}
.prose p.closing:last-child::before{content:"";display:block;width:60px;height:1px;background:var(--rule);margin:0 auto 2rem}
.article-foot{margin:3.5rem 0 0;padding:2rem 0;border-top:1px solid var(--rule)}
.site-foot{max-width:var(--col);margin:2rem auto 0;padding:2rem 1.25rem 3rem;font-family:var(--sans);font-size:.78rem;color:var(--muted);line-height:1.6;border-top:1px solid var(--rule)}
@media (max-width:600px){body{font-size:18px;line-height:1.7}.article-head{padding-top:2.25rem}.pullquote{padding-left:1rem}.pullquote p{font-size:1.2em}}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
@media print{.progress,.masthead,.toc{display:none}body{background:#fff}}
/* --- Lecteur audio --- */
.listen{margin:1.75rem 0 .5rem}
.listen-native{width:100%;display:block}
.listen-native.is-hidden{display:none}
.listen-ui{display:flex;align-items:center;gap:1rem;padding:.85rem 1rem .85rem .85rem;background:var(--paper);border:1px solid var(--rule);border-radius:14px;box-shadow:0 1px 2px rgba(60,40,20,.05),0 6px 20px rgba(60,40,20,.06);font-family:var(--sans)}
.listen-ui[hidden]{display:none}
.listen-play{flex:none;width:52px;height:52px;border-radius:50%;border:0;background:var(--accent);color:#fff;display:grid;place-items:center;cursor:pointer;transition:transform .15s ease,background .15s ease;box-shadow:0 4px 12px rgba(180,83,42,.3)}
.listen-play:hover{background:#9c4622;transform:scale(1.04)}
.listen-play:focus-visible,.listen-speed:focus-visible,.listen-seek:focus-visible{outline:2px solid var(--teal);outline-offset:3px}
.listen-play svg{width:24px;height:24px;fill:currentColor}
.listen-play .i-pause,.listen-ui.playing .i-play{display:none}
.listen-ui.playing .i-pause{display:block}
.listen-play .i-play{margin-left:3px}
.listen-body{flex:1;min-width:0}
.listen-top{display:flex;justify-content:space-between;align-items:baseline;gap:.5rem;margin-bottom:.45rem}
.listen-title{font-weight:600;font-size:.92rem;color:var(--ink)}
.listen-time{font-size:.78rem;color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap}
.listen-seek{--p:0%;-webkit-appearance:none;appearance:none;width:100%;height:4px;border-radius:4px;background:linear-gradient(90deg,var(--accent) var(--p),var(--rule) var(--p));cursor:pointer;margin:0}
.listen-seek::-webkit-slider-thumb{-webkit-appearance:none;width:14px;height:14px;border-radius:50%;background:var(--accent);border:2px solid var(--paper);box-shadow:0 0 0 1px var(--accent)}
.listen-seek::-moz-range-thumb{width:12px;height:12px;border-radius:50%;background:var(--accent);border:2px solid var(--paper)}
.listen-speed{flex:none;min-width:3.4rem;height:34px;padding:0 .6rem;border-radius:999px;border:1px solid var(--rule);background:var(--bg);color:var(--ink);font:600 .8rem var(--sans);cursor:pointer;font-variant-numeric:tabular-nums}
.listen-speed:hover{border-color:var(--accent);color:var(--accent)}
.listen-note{font-family:var(--sans);font-size:.72rem;color:var(--muted);margin:.5rem 0 0 .2rem}
@media (max-width:600px){.listen-ui{gap:.7rem;padding:.7rem}.listen-play{width:46px;height:46px}.listen-speed{min-width:3rem;height:30px}}
@media print{.listen{display:none}}
