/* Grismantel — une page. Le ton de `docs/voice.md` s'applique au style comme à la copie :
   rien ne clignote, rien ne presse. Pas d'animation, pas de dégradé, pas de police chargée
   depuis un tiers — la pile système est déjà celle de l'app.

   Palette grise et neutre, qui suit l'apparence du système plutôt que d'imposer la sienne :
   c'est ce que fait l'app depuis l'abandon des huit thèmes (cf. GRPalette). */

:root {
  color-scheme: light dark;

  --bg:        #fbfbfa;
  --surface:   #ffffff;
  --text:      #1c1c1e;
  --text-2:    #6b6b70;
  --text-3:    #98989d;
  --line:      #e4e4e2;
  --accent:    #3b6ea5;
  --accent-in: #ffffff;

  --measure: 34rem;
  --gap: 1.5rem;
  --radius: 10px;
}

@media (prefers-color-scheme: dark) {
  :root {
    --bg:        #131315;
    --surface:   #1c1c1f;
    --text:      #f2f2f4;
    --text-2:    #a1a1a8;
    --text-3:    #78787e;
    --line:      #2c2c30;
    --accent:    #7aa7d9;
    --accent-in: #101012;
  }
}

*, *::before, *::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; }

body {
  margin: 0;
  padding: 0 1.25rem 4rem;
  background: var(--bg);
  color: var(--text);
  font: 16px/1.65 ui-sans-serif, -apple-system, BlinkMacSystemFont, "SF Pro Text",
        "Helvetica Neue", Arial, sans-serif;
  font-synthesis: none;
  text-rendering: optimizeLegibility;
}

.wrap { max-width: var(--measure); margin: 0 auto; }

/* ── En-tête ───────────────────────────────────────────────────────────── */

header { padding: 5rem 0 3.5rem; }

h1 {
  margin: 0 0 .6rem;
  font-size: clamp(1.9rem, 6vw, 2.6rem);
  line-height: 1.15;
  letter-spacing: -.021em;
  font-weight: 600;
}

.lede {
  margin: 0;
  font-size: 1.075rem;
  color: var(--text-2);
  text-wrap: pretty;
}

/* ── Téléchargement ────────────────────────────────────────────────────── */

.download { margin: 2.25rem 0 0; }

.button {
  display: inline-block;
  padding: .7rem 1.4rem;
  border-radius: var(--radius);
  background: var(--accent);
  color: var(--accent-in);
  font-weight: 600;
  text-decoration: none;
}

/* L'anneau de focus est visible et distinct du survol : la navigation au clavier est
   une contrainte du produit, pas une option (cf. README, contrainte d'accessibilité). */
.button:focus-visible,
a:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 3px;
}

.button:hover { filter: brightness(1.08); }

.meta {
  margin: .85rem 0 0;
  font-size: .85rem;
  color: var(--text-3);
}

/* ── Sections ──────────────────────────────────────────────────────────── */

section { padding: 2.5rem 0 0; }

h2 {
  margin: 0 0 .75rem;
  font-size: 1.05rem;
  font-weight: 600;
  letter-spacing: -.008em;
}

p { margin: 0 0 1rem; text-wrap: pretty; }

.card {
  padding: 1.15rem 1.3rem;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--surface);
}

.card p:last-child { margin-bottom: 0; }
.card .note { margin-top: 1rem; }

ol { margin: 0; padding-left: 1.2rem; }
li { margin-bottom: .4rem; }
li:last-child { margin-bottom: 0; }

a { color: var(--accent); text-underline-offset: .18em; }

strong { font-weight: 600; }

code {
  font: .875em/1.5 ui-monospace, SFMono-Regular, "SF Mono", Menlo, monospace;
  padding: .12em .35em;
  border-radius: 4px;
  background: color-mix(in srgb, var(--text) 7%, transparent);
}

footer {
  margin-top: 3.5rem;
  padding-top: 1.5rem;
  border-top: 1px solid var(--line);
  font-size: .85rem;
  color: var(--text-3);
}

footer a { color: var(--text-2); }

/* Le réglage système fait foi — l'app respecte Reduce Motion à 166 endroits ;
   sa page ne va pas introduire ce qu'elle a passé du temps à éviter. */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: .01ms !important;
    transition-duration: .01ms !important;
  }
}
