:root{--paper:#f7f5ef;--surface:#fff;--ink:#16223d;--muted:#5d6678;--line:#e7e3d6;--navy:#0f2460;--blue:#1d4ed8;--blue-700:#1e3a8a;--gold:#8a6510;--gold-soft:#c79a2e;--cd-bg:#eef3fb;--cd-bd:#1d4ed8;--ca-bg:#fbece6;--ca-bd:#c0392b;--cn-bg:#f3f1e6;--cn-bd:#cdbf93;--rad:12px;--side:288px;--toc:236px;--maxw:760px}
[data-theme=dark]{--paper:#0c1322;--surface:#121b30;--ink:#e9edf6;--muted:#9aa6bd;--line:#23304b;--navy:#9db8ff;--blue:#7aa6ff;--blue-700:#a7c2ff;--gold:#e2c167;--gold-soft:#e2c167;--cd-bg:#16243f;--cd-bd:#4b82e6;--ca-bg:#311a1a;--ca-bd:#d9655a;--cn-bg:#1c2336;--cn-bd:#4a4326}
*{box-sizing:border-box}html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:'Atkinson Hyperlegible',system-ui,-apple-system,Segoe UI,sans-serif;font-size:17px;line-height:1.7;-webkit-font-smoothing:antialiased}
.skip{position:absolute;left:-999px;top:8px;background:var(--navy);color:#fff;padding:8px 14px;border-radius:8px;z-index:200}.skip:focus{left:12px}
.topbar{position:sticky;top:0;z-index:50;height:62px;display:flex;align-items:center;gap:14px;padding:0 20px;background:var(--surface);background:color-mix(in srgb,var(--surface) 88%,transparent);backdrop-filter:saturate(140%) blur(10px);border-bottom:1px solid var(--line)}
.brand{display:flex;align-items:baseline;gap:2px;text-decoration:none;font-family:'Fraunces',serif;font-size:23px;color:var(--ink)}.brand-hello{font-weight:400}.brand-mairie{font-weight:600;color:var(--gold)}.brand-sub{font-family:'Atkinson Hyperlegible';font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-left:8px;border-left:1px solid var(--line);padding-left:8px;align-self:center}
.icon-btn{background:none;border:1px solid transparent;color:var(--ink);font-size:19px;width:40px;height:40px;border-radius:10px;cursor:pointer;line-height:1}.icon-btn:hover{background:var(--paper);border-color:var(--line)}.menu-toggle{display:none}
.search-trigger{margin-left:auto;display:flex;align-items:center;gap:10px;height:40px;padding:0 12px 0 14px;background:var(--paper);border:1px solid var(--line);border-radius:10px;color:var(--muted);cursor:pointer;font:inherit;font-size:15px;min-width:230px}.search-trigger:hover{border-color:var(--gold-soft)}.search-trigger .si{font-size:14px}.search-trigger kbd,.search-input-wrap kbd{margin-left:auto;font-family:inherit;font-size:12px;background:var(--surface);border:1px solid var(--line);border-radius:6px;padding:2px 7px;color:var(--muted)}
.layout{display:grid;grid-template-columns:var(--side) minmax(0,1fr) var(--toc);max-width:1480px;margin:0 auto;align-items:start}
.sidebar{position:sticky;top:62px;height:calc(100vh - 62px);overflow-y:auto;padding:22px 14px 60px;border-right:1px solid var(--line)}
.nav-group{margin-bottom:18px}.nav-group-t{font-size:11.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--gold);padding:0 12px 7px}
.sidebar ul{list-style:none;margin:0;padding:0}.sidebar a{display:flex;align-items:center;gap:9px;padding:7px 12px;border-radius:9px;text-decoration:none;color:var(--muted);font-size:15px;line-height:1.35;border:1px solid transparent}.sidebar a:hover{background:var(--paper);color:var(--ink)}.sidebar a.active{background:color-mix(in srgb,var(--blue) 12%,transparent);color:var(--blue-700);font-weight:700;border-color:color-mix(in srgb,var(--blue) 22%,transparent)}.nav-emoji{font-size:15px;width:18px;text-align:center;flex:none}
.content{min-width:0;padding:34px 56px 90px;max-width:calc(var(--maxw) + 112px);margin:0 auto;width:100%}
.chapter{display:block;animation:fade .35s ease}@keyframes fade{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion){.chapter{animation:none}}
.crumb{font-size:13.5px;color:var(--muted);margin-bottom:14px}.crumb a{color:var(--blue);text-decoration:none}.crumb span{margin:0 2px}
.ch-head{position:relative;margin:0 0 10px;padding-bottom:18px;border-bottom:2px solid var(--line)}.ch-num{font-family:'Fraunces',serif;font-size:74px;font-weight:600;line-height:.8;color:color-mix(in srgb,var(--gold-soft) 62%,transparent);letter-spacing:-.02em}
h1{font-family:'Fraunces',serif;font-weight:600;font-size:36px;line-height:1.12;margin:8px 0 0;letter-spacing:-.01em}.ch-emoji{margin-right:12px}
h2{font-family:'Fraunces',serif;font-weight:600;font-size:25px;margin:42px 0 12px;scroll-margin-top:84px;position:relative}h3{font-size:18.5px;font-weight:700;margin:26px 0 8px;color:var(--ink)}
.anchor{position:absolute;left:-24px;top:2px;color:var(--gold);opacity:0;text-decoration:none;font-weight:400}h2:hover .anchor{opacity:.8}.anchor:focus{opacity:.8}
p{margin:0 0 15px}a.xref{color:var(--blue);text-decoration:underline;text-underline-offset:2px;font-weight:700}
ul,ol{margin:0 0 16px;padding-left:24px}li{margin:0 0 7px}
code{font-family:ui-monospace,'SF Mono',Menlo,Consolas,monospace;font-size:.86em;background:color-mix(in srgb,var(--blue) 9%,var(--surface));border:1px solid var(--line);border-radius:6px;padding:1px 6px;color:var(--blue-700);word-break:break-word}
.callout{display:flex;gap:12px;margin:0 0 18px;padding:14px 16px;border-radius:var(--rad);border:1px solid var(--cd-bd);border-left-width:4px;background:var(--cd-bg);font-size:15.5px}.callout .ci{font-size:18px;flex:none;line-height:1.4}.callout strong{font-weight:700}.callout.conseil{background:var(--cd-bg);border-color:var(--cd-bd)}.callout.attention{background:var(--ca-bg);border-color:var(--ca-bd)}.callout.note{background:var(--cn-bg);border-color:var(--cn-bd)}
.tw{overflow-x:auto;margin:0 0 20px;border:1px solid var(--line);border-radius:var(--rad)}table{border-collapse:collapse;width:100%;font-size:15px}th{background:var(--navy);color:#fff;text-align:left;font-weight:700;padding:10px 14px}[data-theme=dark] th{background:#1b294a}td{padding:9px 14px;border-top:1px solid var(--line);vertical-align:top}tr:nth-child(even) td{background:color-mix(in srgb,var(--paper) 60%,transparent)}
.pager{display:flex;gap:14px;margin-top:48px;border-top:1px solid var(--line);padding-top:24px}.pager a{flex:1;text-decoration:none;border:1px solid var(--line);border-radius:var(--rad);padding:14px 16px;color:var(--ink);transition:border-color .15s}.pager a:hover{border-color:var(--gold-soft)}.pager .dir{font-size:12.5px;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}.pager .ttl{font-weight:700;color:var(--blue-700);margin-top:3px}.pager .next{text-align:right}
.footnote{margin-top:34px;color:var(--muted);font-size:13.5px;border-top:1px solid var(--line);padding-top:16px}
.toc{position:sticky;top:62px;height:calc(100vh - 62px);overflow-y:auto;padding:34px 20px;font-size:14px}.toc-t{font-size:11.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:12px}.toc a{display:block;padding:5px 12px;color:var(--muted);text-decoration:none;border-left:2px solid var(--line);line-height:1.4}.toc a:hover{color:var(--ink)}.toc a.active{color:var(--blue-700);border-left-color:var(--blue);font-weight:700}
.scrim{display:none}
.search-modal{display:none;position:fixed;inset:0;z-index:100;background:rgba(8,14,28,.5);padding-top:11vh;justify-content:center}.search-modal.open{display:flex}
.search-box{width:min(640px,92vw);background:var(--surface);border:1px solid var(--line);border-radius:16px;box-shadow:0 24px 60px rgba(8,14,28,.3);overflow:hidden;height:max-content;max-height:76vh;display:flex;flex-direction:column}
.search-input-wrap{display:flex;align-items:center;gap:12px;padding:16px 18px;border-bottom:1px solid var(--line)}.search-input-wrap .si{font-size:17px}#searchInput{flex:1;border:none;outline:none;background:none;font:inherit;font-size:17px;color:var(--ink)}
.search-results{overflow-y:auto;padding:8px}.sr-item{display:block;padding:11px 14px;border-radius:10px;text-decoration:none;color:var(--ink);cursor:pointer}.sr-item:hover,.sr-item.sel{background:color-mix(in srgb,var(--blue) 12%,transparent)}.sr-ct{font-size:12.5px;color:var(--gold);font-weight:700}.sr-st{font-weight:700;margin:2px 0}.sr-sn{font-size:13.5px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sr-empty{padding:26px;text-align:center;color:var(--muted)}
.site-footer{background:#0e1f49;color:#c5d2ec;border-top:3px solid #c79a2e;font-size:15px}
.sf-inner{max-width:1180px;margin:0 auto;padding:44px 32px 28px;display:grid;grid-template-columns:1.7fr 1fr 1fr 1fr;gap:30px}
.sf-logo{font-family:'Fraunces',serif;font-size:24px;text-decoration:none;display:inline-block}.sf-hello{color:#fff;font-weight:400}.sf-mairie{color:#e2c167;font-weight:600}.sf-brand p{margin:12px 0 0;color:#9fb0d4;font-size:14px;line-height:1.6;max-width:36ch}
.sf-col h4{color:#e2c167;font-size:12.5px;letter-spacing:.08em;text-transform:uppercase;margin:0 0 10px;font-weight:700}.sf-col a{display:block;color:#c5d2ec;text-decoration:none;padding:4px 0;font-size:14.5px}.sf-col a:hover{color:#fff;text-decoration:underline}
.sf-bottom{border-top:1px solid rgba(255,255,255,.13);max-width:1180px;margin:0 auto;padding:18px 32px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;font-size:13px;color:#8fa0c6}.sf-bottom a{color:#8fa0c6;text-decoration:none}.sf-bottom a:hover{color:#fff}
@media(max-width:860px){.sf-inner{grid-template-columns:1fr 1fr;padding:34px 20px 24px}.sf-bottom{padding:16px 20px}}@media(max-width:520px){.sf-inner{grid-template-columns:1fr}}
@media(max-width:1180px){.layout{grid-template-columns:var(--side) minmax(0,1fr)}.toc{display:none}}
@media(max-width:860px){.layout{grid-template-columns:1fr}.menu-toggle{display:inline-block}.sidebar{position:fixed;top:62px;left:0;width:84vw;max-width:320px;background:var(--surface);transform:translateX(-100%);transition:transform .25s;z-index:60}.sidebar.open{transform:none}.scrim.open{display:block;position:fixed;inset:62px 0 0;background:rgba(8,14,28,.4);z-index:55}.content{padding:24px 20px 80px}.search-trigger{min-width:0}.st-label,.search-trigger kbd{display:none}.brand-sub{display:none}.ch-num{font-size:54px}h1{font-size:28px}}