.hero.pubh{padding-bottom:2rem}
.badge{display:inline-flex;align-items:center;padding:.3rem .75rem;border-radius:99px;background:var(--acc-l);color:#161a24;font-size:.75rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.pmeta{margin-top:1.4rem;display:flex;gap:.6rem;align-items:center;flex-wrap:wrap;color:var(--nmu);font-size:.85rem}
.ptl{font-family:Oswald,Arial,sans-serif;font-weight:600;font-size:clamp(2rem,6vw,3.2rem);line-height:1.05;color:#fff;margin-top:.7rem;max-width:48rem}
.ptl em{font-style:normal;color:var(--acc-l)}
.chap{color:#cfd2d8;font-size:1.12rem;margin-top:.7rem;max-width:42rem}
.by{display:flex;gap:.7rem;align-items:center;margin-top:1.2rem;font-size:.88rem;color:var(--nmu)}
.by img{width:2.4rem;height:2.4rem;border-radius:50%;border:2px solid var(--gold);object-fit:cover}
.by b{color:#fff;font-weight:600}.by .g{color:var(--gold)}
.acts{display:flex;gap:.6rem;flex-wrap:wrap;margin-top:1.4rem}
.bt{display:inline-flex;align-items:center;gap:.45rem;padding:.65rem 1.05rem;border-radius:99px;font-weight:700;font-size:.88rem;text-decoration:none;border:1.5px solid #4a5268;color:#f4f1ea;background:transparent}
.bt:hover{border-color:var(--gold)}
.bt.solid{background:var(--gold);border-color:var(--gold);color:#161a24}
.bt svg{width:18px;height:18px}
.toc{position:sticky;top:var(--tbh,3.7rem);z-index:10;transition:top .25s;background:var(--card);border-bottom:1px solid var(--line);box-shadow:0 6px 18px -14px rgba(0,0,0,.4)}
.toc .in{display:flex;gap:.3rem;overflow-x:auto;padding-top:.5rem;padding-bottom:.5rem;scrollbar-width:none}
.toc .in::-webkit-scrollbar{display:none}
.toc a{flex:none;font-size:.82rem;font-weight:700;padding:.45rem .8rem;border-radius:99px;text-decoration:none;color:var(--mu);display:flex;gap:.4rem;align-items:center}
.toc a i{font-style:normal;display:inline-flex;width:1.3rem;height:1.3rem;border-radius:50%;background:var(--soft);font-size:.7rem;align-items:center;justify-content:center;color:var(--mu)}
.toc a.on{background:var(--night);color:#f4f1ea}.toc a.on i,.toc a.done i{background:var(--acc-l);color:#161a24}
.toc .bar{height:3px;background:var(--line)}.toc .bar b{display:block;height:100%;width:0;background:var(--acc)}
.art{max-width:46rem}
.sec{padding:2.2rem 0 .3rem;border-bottom:1px solid var(--line);scroll-margin-top:7.5rem}
.kk{font-size:.72rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--acc-t)}
.sec h2{font-family:Oswald,Arial,sans-serif;font-size:clamp(1.55rem,4.5vw,2.05rem);line-height:1.12;color:var(--ink);margin-top:.35rem}
.lead{font-size:1.05rem;margin-top:.6rem}
.tl{margin-top:1.2rem;border-left:3px solid var(--line);padding-left:1.1rem;display:grid;gap:.85rem;list-style:none}
.tl li{position:relative}.tl li::before{content:"";position:absolute;left:-1.55rem;top:.35rem;width:.75rem;height:.75rem;border-radius:50%;background:var(--acc);border:3px solid var(--bg)}
.tl b{display:block;font-family:Oswald,Arial,sans-serif;font-size:1.1rem;font-weight:500;color:var(--ink)}
.quote{margin-top:1.2rem;padding:1rem 1.1rem;background:var(--soft);border-radius:.9rem}
.quote small,.note small{display:block;font-size:.72rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--mu);margin-bottom:.25rem}
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(12rem,1fr));gap:.7rem;margin-top:1.2rem}
.st{background:var(--card);border:1px solid var(--line);border-radius:1rem;padding:1rem}
.st b{display:block;font-family:Oswald,Arial,sans-serif;font-size:2.1rem;font-weight:600;line-height:1.05;color:var(--acc-t)}
.st span{display:block;font-size:.88rem;margin-top:.35rem}
.st small{display:block;font-size:.7rem;font-weight:800;color:var(--mu);margin-top:.45rem;letter-spacing:.04em;text-transform:uppercase}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(13rem,1fr));gap:.7rem;margin-top:1.2rem}
.cd{background:var(--card);border:1px solid var(--line);border-radius:1rem;padding:1rem;font-size:.92rem}
.cd h3{font-family:Oswald,Arial,sans-serif;font-size:1.15rem;font-weight:500;color:var(--ink);margin-bottom:.3rem;line-height:1.2}
.cd.miss{border-style:dashed;border-color:var(--acc)}
.bars{margin-top:1.2rem;background:var(--card);border:1px solid var(--line);border-radius:1rem;padding:1rem}
.bars h3,.tblw h3,.lst h3{font-size:.92rem;font-weight:800;color:var(--ink);margin-bottom:.6rem}
.br{display:grid;grid-template-columns:minmax(8rem,14rem) 1fr;gap:.7rem;align-items:center;font-size:.85rem;margin:.5rem 0}
.br .tr{display:flex;align-items:center;gap:.5rem}
.br i{display:block;height:1.1rem;border-radius:.35rem;background:var(--acc);min-width:.35rem;flex:none}
.br em{font-style:normal;font-weight:800;font-size:.8rem;color:var(--ink);white-space:nowrap}
.tblw{margin-top:1.2rem;background:var(--card);border:1px solid var(--line);border-radius:1rem;padding:1rem;overflow-x:auto}
.tblw table{width:100%;border-collapse:collapse;font-size:.88rem}
.tblw th,.tblw td{text-align:left;padding:.45rem .5rem;border-bottom:1px solid var(--line)}
.tblw th{font-size:.75rem;color:var(--mu);font-weight:800}
.tblw td:not(:first-child),.tblw th:not(:first-child){text-align:right;white-space:nowrap}
.tblw tr:last-child td{font-weight:800;color:var(--acc-t)}
.note{margin-top:1.2rem;padding:.9rem 1.1rem;border-radius:.9rem;background:var(--night);color:#e7e3d9}
.note small{color:var(--gold)}
.steps{margin-top:1.2rem;display:grid;gap:.7rem;list-style:none;counter-reset:s}
.steps li{background:var(--card);border:1px solid var(--line);border-radius:1rem;padding:1rem 1rem 1rem 3.4rem;position:relative;counter-increment:s;font-size:.92rem}
.steps li::before{content:counter(s);position:absolute;left:1rem;top:1rem;width:1.7rem;height:1.7rem;border-radius:50%;background:var(--night);color:var(--gold);display:flex;align-items:center;justify-content:center;font-family:Oswald,Arial,sans-serif;font-weight:600}
.steps h3{font-family:Oswald,Arial,sans-serif;font-size:1.15rem;font-weight:500;color:var(--ink)}
.steps .tag{display:inline-block;margin-top:.5rem;font-size:.75rem;font-weight:800;color:var(--acc-t);background:var(--soft);padding:.2rem .6rem;border-radius:99px}
.rows{margin-top:1.2rem;display:grid;gap:.6rem}
.rw{background:var(--card);border:1px solid var(--line);border-radius:1rem;padding:1rem;font-size:.92rem}
.rw h3{font-size:.98rem;font-weight:800;color:var(--ink)}
.rw .tag{display:inline-block;margin:.35rem 0 .4rem;font-size:.72rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:#161a24;background:var(--acc-l);padding:.15rem .55rem;border-radius:99px}
.lst{margin-top:1.2rem}
.lst ul{display:grid;gap:.5rem;padding-left:1.1rem}
.lst li::marker{color:var(--acc-t)}
.code{margin-top:1.2rem;background:var(--night);color:#e7e3d9;border-radius:.9rem;padding:1rem;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.85rem;white-space:pre}
.meteo{margin-top:1.2rem;display:grid;gap:.5rem}
.mt{display:grid;grid-template-columns:9.5rem 8rem 1fr;gap:.7rem;align-items:center;background:var(--card);border:1px solid var(--line);border-radius:.8rem;padding:.7rem .9rem;font-size:.9rem}
.mt b{color:var(--ink)}
.pill{font-size:.72rem;font-weight:800;padding:.2rem .55rem;border-radius:99px;text-align:center;justify-self:start}
.p-vigueur{background:#dfe8cf;color:#3d5216}.p-discussion{background:#fbecc8;color:#7a5508}.p-bloque{background:#f6d9cf;color:#8a2f17}.p-suspens{background:#e3e4ea;color:#3d4350}.p-libre{background:#dbe7f3;color:#244a6e}
details.src{margin:1.1rem 0 1.6rem;font-size:.8rem;color:var(--mu)}
details.src summary{cursor:pointer;font-weight:700;color:var(--olive-t);list-style:none;display:inline-flex;gap:.4rem;align-items:center}
details.src summary::-webkit-details-marker{display:none}
details.src summary::before{content:"+";display:inline-flex;width:1.1rem;height:1.1rem;border-radius:50%;border:1.5px solid currentColor;align-items:center;justify-content:center;font-size:.8rem}
details.src[open] summary::before{content:"–"}
details.src p{margin-top:.4rem}
.rv{opacity:0;transform:translateY(12px);transition:opacity .5s,transform .5s}.rv.vis{opacity:1;transform:none}
.cta{margin-top:2.2rem;border-radius:1.1rem;padding:1.3rem;display:grid;grid-template-columns:1fr auto;gap:1rem;align-items:center}
.cta.share{background:var(--card);border:1px solid var(--line)}
.cta.test{background:var(--night);color:#f4f1ea;margin-top:1rem}
.cta b{font-family:Oswald,Arial,sans-serif;font-size:1.35rem;font-weight:500;display:block;color:var(--ink)}
.cta.test b{color:#fff}.cta span{font-size:.9rem}.cta.test span{color:#cfd2d8}
.cta .bt{color:#161a24}
.cta.test .bt:not(.solid){color:#f4f1ea}
.blk{margin-top:2.4rem}
.slides{margin-top:.9rem;display:flex;gap:.6rem;overflow-x:auto;padding-bottom:.4rem}
.slides button{flex:none;padding:0;border-radius:.5rem;overflow:hidden;border:1px solid var(--line)}
.slides img{height:190px;display:block}
.viewer{position:fixed;inset:0;z-index:40;background:rgba(10,12,18,.94);display:flex;align-items:center;justify-content:center;flex-direction:column;gap:.8rem;padding:16px}
.viewer img{max-width:min(92vw,560px);max-height:78vh;border-radius:.6rem;box-shadow:0 20px 50px rgba(0,0,0,.5);touch-action:pan-y}
.vbar{display:flex;gap:.8rem;align-items:center;color:#f4f1ea;font-weight:700}
.vbtn{width:2.8rem;height:2.8rem;border-radius:50%;background:#f4f1ea;color:#161a24;display:flex;align-items:center;justify-content:center;font-size:1.3rem}
.vclose{position:absolute;top:16px;right:16px}
.sheet-bg{position:fixed;inset:0;background:rgba(10,12,18,.55);z-index:30;display:flex;align-items:center;justify-content:center;padding:16px}
.sheet{background:var(--card);color:var(--tx);border-radius:1.2rem;width:min(28rem,100%);padding:1.2rem;box-shadow:0 25px 60px -15px rgba(0,0,0,.5)}
.sprev{margin-top:.8rem;padding:.8rem .9rem;background:var(--soft);border-radius:.8rem;font-size:.88rem;white-space:pre-line;color:var(--ink)}
.sbtns{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem;margin-top:1rem}
.sb{display:flex;flex-direction:column;align-items:center;gap:.35rem;padding:.8rem .4rem;border-radius:.9rem;font-weight:700;font-size:.82rem;text-decoration:none;border:1.5px solid var(--line);color:var(--ink);background:var(--card)}
.sb svg{width:20px;height:20px}
.sb.li{background:#0a66c2;border-color:#0a66c2;color:#fff}.sb.wa{background:#25d366;border-color:#25d366;color:#0b2e17}
.snote{font-size:.8rem;color:var(--olive-t);font-weight:700;margin-top:.7rem;min-height:1.1rem}
.dock{display:none}
body.tb-hidden .toc{top:0}
@media (max-width:640px){
 .hero .acts{display:none}
 .br{grid-template-columns:1fr;gap:.25rem}
 .mt{grid-template-columns:1fr auto;}.mt span:last-child{grid-column:1/-1}
 .cta{grid-template-columns:1fr}
 .dock{display:flex;justify-content:space-around;position:fixed;left:0;right:0;bottom:0;z-index:15;background:var(--card);border-top:1px solid var(--line);padding:.5rem 8px calc(.55rem + env(safe-area-inset-bottom));box-shadow:0 -6px 18px -12px rgba(0,0,0,.25)}
 .dock a,.dock button{display:flex;flex-direction:column;align-items:center;gap:.25rem;font-size:.7rem;font-weight:700;color:var(--ink);text-decoration:none;width:4.4rem}
 .dock .ic{display:flex;width:2.75rem;height:2.75rem;border-radius:.9rem;align-items:center;justify-content:center;background:var(--soft);color:var(--ink)}
 .dock .p .ic{background:var(--gold);color:#161a24}
 .dock svg{width:22px;height:22px}
 body{padding-bottom:5rem}
 .sheet-bg{align-items:flex-end;padding:0}.sheet{border-radius:1.2rem 1.2rem 0 0}
}
@media print{.toc,.dock,.acts,.cta,.blk,.topbar,footer,.panel{display:none!important}.hero{background:#fff;color:#000}.ptl,.chap,.by b{color:#000}.rv{opacity:1;transform:none}details.src>*{display:block}}
@media (prefers-reduced-motion:reduce){.rv{opacity:1;transform:none;transition:none}}
