:root{
 --bg:#f2f0e8;--paper:#fbfaf5;--ink:#13191f;--muted:#60686d;--line:#c8c6bd;
 --blue:#1555d9;--blue-soft:#e8eefb;--green:#23634d;--green-soft:#e5efe9;
 --orange:#a95a19;--orange-soft:#f5e9dc;--red:#9b3636;--red-soft:#f5e5e2;
}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);font-family:Arial,"Helvetica Neue",sans-serif;line-height:1.58}
a{color:var(--blue)}.shell{width:min(1060px,calc(100% - 36px));margin:auto}
.topbar{position:sticky;top:0;z-index:10;background:rgba(242,240,232,.97);border-bottom:2px solid var(--ink)}
.topbar-inner{min-height:58px;display:flex;justify-content:space-between;align-items:center;gap:16px}
.brand{display:flex;gap:10px;align-items:center;text-decoration:none;color:var(--ink)}.mark{width:34px;height:34px;background:var(--blue);color:white;display:grid;place-items:center;font:bold .73rem ui-monospace,monospace}
.brand strong{display:block;font-size:.88rem;text-transform:uppercase;letter-spacing:.04em}.brand span,.topmeta{display:block;color:var(--muted);font:.64rem ui-monospace,monospace}
.hero{padding:44px 0 30px;border-bottom:1px solid var(--line)}.eyebrow{font:800 .66rem ui-monospace,monospace;color:var(--blue);letter-spacing:.09em;text-transform:uppercase}
h1{font-size:clamp(2.3rem,5.8vw,4.5rem);line-height:1;letter-spacing:-.045em;margin:9px 0 17px;max-width:950px}
.lead{font-size:1.06rem;max-width:86ch;color:#3f484d}
.brief{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--ink);margin-top:24px;background:var(--paper)}
.brief div{padding:12px 14px;border-right:1px solid var(--line)}.brief div:last-child{border-right:0}.brief span{display:block;font:.59rem ui-monospace,monospace;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}.brief strong{font-size:.88rem}
.nav{display:flex;gap:8px;flex-wrap:wrap;padding:15px 0;border-bottom:1px solid var(--line)}.nav a{text-decoration:none;color:var(--ink);background:var(--paper);border:1px solid var(--line);padding:7px 9px;font:.64rem ui-monospace,monospace}
.intro,.section{padding:32px 0;border-bottom:1px solid var(--line)}
.section-head{display:grid;grid-template-columns:92px 1fr;gap:18px;align-items:start;margin-bottom:18px}.numb{font:900 2.7rem ui-monospace,monospace;color:var(--blue);line-height:1}
h2{font-size:1.75rem;line-height:1.15;margin:0 0 9px}h3{font-size:1.04rem;margin:30px 0 9px;scroll-margin-top:76px}.goal{font-weight:400;max-width:82ch;color:#3f484d}
.frame{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:16px 0}.frame>div,.card{background:var(--paper);border:1px solid var(--line);padding:14px}.frame b,.card b{display:block;font-size:.81rem;margin-bottom:4px}.frame p,.card p{font-size:.8rem;color:var(--muted);margin:0}
.primer{background:var(--blue-soft);border-left:4px solid var(--blue);padding:14px 16px;max-width:94ch;margin:14px 0}.primer h3{margin:0 0 5px}.primer p{margin:4px 0;color:#354047;font-size:.92rem}
.terms{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;margin:13px 0 18px}.terms>div{background:var(--paper);border:1px solid var(--line);padding:11px}.terms b{display:block;font-size:.78rem;color:#173b88;margin-bottom:4px}.terms span{font-size:.73rem;color:var(--muted);display:block}
.tools{display:flex;gap:8px;flex-wrap:wrap;margin:13px 0}.tool{display:inline-flex;text-decoration:none;border:1px solid var(--blue);background:var(--paper);padding:8px 10px;font:800 .65rem ui-monospace,monospace}.tool.secondary{border-color:var(--line);color:var(--ink)}
.note,.safety,.method{padding:12px 14px;max-width:94ch;margin:13px 0}.note{background:var(--orange-soft);border-left:4px solid var(--orange)}.safety{background:var(--red-soft);border-left:4px solid var(--red)}.method{background:var(--green-soft);border-left:4px solid var(--green)}
.case{background:#171c21;color:#edf1f3;border-left:4px solid var(--orange);padding:14px;font:.73rem/1.55 ui-monospace,monospace;white-space:pre-wrap;overflow:auto;max-width:94ch}
.path{display:flex;gap:7px;align-items:center;flex-wrap:wrap;margin:15px 0;font:.7rem ui-monospace,monospace}.path span{background:var(--paper);border:1px solid var(--line);padding:7px 9px}.path i{font-style:normal;color:var(--muted)}
.questions{background:var(--paper);border:1px solid var(--ink);padding:16px 18px;margin-top:19px;max-width:96ch}.questions h3{margin:0 0 8px}.questions ol{margin:0;padding-left:24px}.questions li{margin:10px 0;padding-left:3px}
.figure{max-width:94ch;margin:16px 0;background:var(--paper);border:1px solid var(--line);padding:10px}.figure img{display:block;width:100%;height:auto}.figure figcaption{font-size:.72rem;color:var(--muted);margin-top:7px}
.download-box{background:var(--green-soft);border:1px solid var(--green);padding:13px 14px;max-width:94ch;margin:14px 0}.download-box strong{color:var(--green)}
.product-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:15px 0}.product{background:var(--paper);border:1px solid var(--ink);padding:15px;display:flex;flex-direction:column;min-height:235px}.product .tag{font:700 .59rem ui-monospace,monospace;color:var(--blue);text-transform:uppercase;letter-spacing:.06em}.product h3{margin:4px 0 7px}.product p{font-size:.79rem;color:var(--muted)}.product .links{margin-top:auto;display:flex;gap:7px;flex-wrap:wrap}.product .links a{font:.62rem ui-monospace,monospace}
.report{padding:38px 0 52px}.report h2{font-size:2rem}.report-grid{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--ink);margin:17px 0;background:var(--paper)}.report-grid div{padding:13px;border-right:1px solid var(--line)}.report-grid div:last-child{border-right:0}.report-grid b{display:block;font-size:.76rem}.report-grid span{display:block;font-size:.7rem;color:var(--muted);margin-top:4px}
.deliver{background:var(--ink);color:white;padding:15px 17px;max-width:94ch}.deliver b{color:#b9c9f1}.footer{padding:16px 0 38px;color:var(--muted);font:.62rem ui-monospace,monospace}
@media(max-width:820px){.brief,.frame,.product-grid,.report-grid{grid-template-columns:1fr}.brief div,.report-grid div{border-right:0;border-bottom:1px solid var(--line)}.brief div:last-child,.report-grid div:last-child{border-bottom:0}.terms{grid-template-columns:1fr 1fr}.section-head{grid-template-columns:66px 1fr}}
@media(max-width:520px){.shell{width:min(100% - 22px,1060px)}.topmeta{display:none}.hero{padding-top:28px}.terms{grid-template-columns:1fr}.section-head{grid-template-columns:1fr;gap:5px}.numb{font-size:2rem}}
.question-inline{display:grid;grid-template-columns:54px 1fr;gap:12px;align-items:start;background:var(--paper);border:1px solid var(--ink);padding:13px 15px;margin:13px 0 22px;max-width:96ch}
.question-inline>span{display:grid;place-items:center;min-height:36px;background:var(--blue);color:#fff;font:900 .72rem ui-monospace,monospace;letter-spacing:.04em}
.question-inline p{margin:1px 0;font-size:.91rem}
.challenge{background:#fff7d9;border-left:4px solid #c38b10;padding:12px 14px;max-width:94ch;margin:13px 0}
.challenge strong{display:block;font:.72rem ui-monospace,monospace;text-transform:uppercase;letter-spacing:.06em;color:#765100;margin-bottom:4px}.challenge p{margin:0;font-size:.82rem;color:#55491f}
@media(max-width:520px){.question-inline{grid-template-columns:44px 1fr;padding:11px}.question-inline p{font-size:.86rem}}
.query-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:9px;margin:13px 0 18px;max-width:94ch}
.query-grid>div{background:var(--paper);border:1px solid var(--line);padding:11px 12px}
.query-grid code{display:block;font-weight:800;color:#173b88;margin-bottom:4px}
.query-grid span{display:block;font-size:.74rem;color:var(--muted)}
@media(max-width:650px){.query-grid{grid-template-columns:1fr}}
.image-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin:14px 0 18px;max-width:94ch}.image-grid figure{margin:0;background:var(--paper);border:1px solid var(--line);padding:9px;display:flex;flex-direction:column}.image-grid img{width:100%;aspect-ratio:16/10;object-fit:cover;display:block;background:#ddd}.image-grid figcaption{font-size:.72rem;color:var(--muted);padding:7px 2px 2px}.image-grid figcaption b{color:var(--ink)}@media(max-width:700px){.image-grid{grid-template-columns:1fr}}
.plain-list{max-width:94ch;margin:10px 0 14px;padding-left:22px}.plain-list li{margin:6px 0;color:#354047}.plain-list strong{color:var(--ink)}

/* scénarios et outils du TD */
.focus{display:flex;gap:10px;align-items:baseline;flex-wrap:wrap;background:#eef3ff;border-left:4px solid var(--blue);padding:10px 13px;max-width:94ch;margin:12px 0}
.focus strong{font-size:.78rem;color:#173b88}.focus span{font-size:.79rem;color:#46515a}
.scenario-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;max-width:94ch;margin:12px 0 16px}.scenario-grid.wide{grid-template-columns:repeat(2,1fr)}
.scenario-grid>div{background:var(--paper);border:1px solid var(--line);padding:12px}.scenario-grid b{display:block;font-size:.8rem;margin-bottom:4px}.scenario-grid span{font-size:.75rem;color:var(--muted);display:block}
.tech-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;max-width:94ch;margin:14px 0}.tech-grid>div{background:var(--paper);border:1px solid var(--line);padding:13px}.tech-grid b{display:block;color:#173b88;font-size:.82rem}.tech-grid p{margin:5px 0 0;font-size:.78rem;color:var(--muted)}
.flow{display:flex;align-items:center;gap:8px;flex-wrap:wrap;max-width:94ch;margin:12px 0;background:#171c21;color:#eef2f5;padding:12px 14px;font:.72rem ui-monospace,monospace}.flow span{border:1px solid #5f6b76;padding:7px 9px}.flow i{font-style:normal;color:#aeb9c2}
.cost-table{border-collapse:collapse;width:min(700px,94ch);background:var(--paper);margin:12px 0 16px}.cost-table th,.cost-table td{border:1px solid var(--line);padding:8px 10px;text-align:left;font-size:.8rem}.cost-table th{background:var(--blue-soft);color:#173b88}
@media(max-width:700px){.scenario-grid,.scenario-grid.wide,.tech-grid{grid-template-columns:1fr}}

.query-grid.simple>div{display:grid;place-items:center;min-height:54px}.query-grid.simple code{margin:0;font-size:.86rem}

.section{scroll-margin-top:58px}.question-inline strong{font-weight:800}
.section>p{max-width:94ch}
