/* Pages de texte (légales) : mêmes couleurs et polices que le site, mise en page de lecture. */
:root {
  --night: #0D0809; --deep: #1A080A; --line: rgba(255,210,214,.16);
  --mist: #F6EEEE; --haze: #B9A2A5; --ember: #E23444; --ember-text: #FF6B78; --bone: #FFECEE;
  --f-display: "Unbounded", "Arial Black", system-ui, sans-serif;
  --f-body: "Hanken Grotesk", "Segoe UI", system-ui, sans-serif;
  --f-mono: "JetBrains Mono", ui-monospace, Consolas, monospace;
  color-scheme: dark;
}
* { box-sizing: border-box; }
body { margin: 0; background: var(--night); color: var(--mist); font: 400 17px/1.7 var(--f-body); -webkit-font-smoothing: antialiased; }
a { color: var(--bone); text-underline-offset: 3px; }
a:hover { color: var(--ember-text); }
:focus-visible { outline: 2px solid var(--ember-text); outline-offset: 3px; border-radius: 6px; }
.wrap { width: 100%; max-width: 820px; margin-inline: auto; padding-inline: clamp(16px, 4vw, 40px); }
.skip { position: absolute; left: 12px; top: -60px; z-index: 10; padding: 10px 16px; border-radius: 10px; background: var(--mist); color: var(--night); font-weight: 600; }
.skip:focus { top: 12px; }

header { border-bottom: 1px solid var(--line); }
header .wrap { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding-block: 16px; }
.brand { display: inline-flex; align-items: center; gap: 12px; color: var(--mist); text-decoration: none; font: 800 17px/1 var(--f-display); letter-spacing: .16em; }
.brand img { width: 44px; height: auto; margin-block: -12px; }
.btn { padding: 11px 18px; border-radius: 999px; border: 1px solid var(--line); color: var(--mist); text-decoration: none; font: 600 14px/1 var(--f-body); }
.btn:hover { border-color: var(--ember); color: var(--mist); }

main { padding-block: clamp(32px, 6vw, 64px); }
.eyebrow { margin: 0; font: 500 12px/1 var(--f-mono); letter-spacing: .16em; text-transform: uppercase; color: var(--haze); }
h1 { margin: 14px 0 8px; font: 800 clamp(26px, 5vw, 40px)/1.15 var(--f-display); letter-spacing: -.01em; text-wrap: balance; }
h2 { margin: 44px 0 12px; font: 700 clamp(17px, 2.6vw, 21px)/1.3 var(--f-display); }
p, ul, ol { margin: 0 0 14px; }
ul, ol { padding-left: 22px; }
li { margin-bottom: 6px; }
.updated { color: var(--haze); font-size: 14px; }
.intro { margin-top: 22px; padding: 16px 20px; border-left: 3px solid var(--ember); background: var(--deep); border-radius: 0 12px 12px 0; }
code { font: 500 14px var(--f-mono); color: var(--bone); }
mark.todo { background: #FFD9A0; color: #2A1500; padding: 1px 6px; border-radius: 4px; font-weight: 600; }

.table { overflow-x: auto; margin-bottom: 14px; border: 1px solid var(--line); border-radius: 12px; }
table { width: 100%; min-width: 640px; border-collapse: collapse; font-size: 15px; line-height: 1.5; }
th, td { padding: 12px 14px; text-align: left; vertical-align: top; border-top: 1px solid var(--line); }
th { border-top: 0; font: 500 12px/1.3 var(--f-mono); letter-spacing: .08em; text-transform: uppercase; color: var(--haze); }
.form-model { padding: 16px 20px; border: 1px dashed var(--line); border-radius: 12px; background: var(--deep); }
.form-model p:last-child { margin-bottom: 0; }

footer { border-top: 1px solid var(--line); margin-top: 24px; }
footer nav { display: flex; flex-wrap: wrap; gap: 10px 24px; padding-block: 22px; font-size: 14px; }
footer a { color: var(--haze); text-decoration: none; }
footer a:hover, footer a[aria-current="page"] { color: var(--mist); }
