/* ============================================================
   Théo Baret — Via Reflex · theobaret.ch
   Direction artistique : nuit étoilée (tranchée au corps, 6 juillet 2026)
   Fond sombre profond, l'étoile en point de lumière, le site comme un ciel calme.
   Zéro dépendance externe. Polices système uniquement.
   ============================================================ */

:root {
  --nuit: #0a0e1a;            /* le ciel, presque noir, bleuté */
  --nuit-haute: #0d1322;      /* voûte légèrement plus claire (haut de page) */
  --encre: #141b2e;           /* panneaux, mention pratique */
  --etoile: #d9c08a;          /* or pâle — le point de lumière */
  --etoile-vive: #efdcae;     /* cœur de l'étoile */
  --lueur: rgba(217, 192, 138, 0.16);
  --texte: #e9e6dc;           /* blanc chaud de lumière stellaire */
  --texte-doux: #a9b0c2;      /* bleu-gris doux, texte secondaire */
  --trait: rgba(169, 176, 194, 0.18);
  /* Échelle du nombre d'or — l'espace seul (tranché au corps, 7 juillet) */
  --phi-1: 0.618rem;
  --phi0: 1rem;
  --phi1: 1.618rem;
  --phi2: 2.618rem;
  --phi3: 4.236rem;
  --phi4: 6.854rem;
  --serif: "Iowan Old Style", "Palatino Linotype", Palatino, Georgia, "Times New Roman", serif;
  --sans: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
}

* { margin: 0; padding: 0; box-sizing: border-box; }

html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; transition: none !important; }
}

body {
  background: var(--nuit);
  background-image: radial-gradient(ellipse 120% 60% at 50% -10%, var(--nuit-haute) 0%, var(--nuit) 62%);
  background-repeat: no-repeat;
  color: var(--texte);
  font-family: var(--serif);
  font-size: 1.1875rem;
  line-height: 1.75;
  min-height: 100vh;
  display: flex;
  flex-direction: column;
}

/* ---------- Ciel : micro-étoiles fixes, discrètes ---------- */
.ciel {
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: 0;
  background: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%201200%20800%22%20preserveAspectRatio%3D%22xMidYMid%20slice%22%3E%3Ccircle%20cx%3D%22497.4%22%20cy%3D%22785.9%22%20r%3D%221.3%22%20fill%3D%22%23e9e6dc%22%20fill-opacity%3D%220.36%22/%3E%3Ccircle%20cx%3D%22934.8%22%20cy%3D%2289.2%22%20r%3D%220.6%22%20fill%3D%22%23a9b0c2%22%20fill-opacity%3D%220.11%22/%3E%3Ccircle%20cx%3D%2258.0%22%20cy%3D%22656.6%22%20r%3D%220.6%22%20fill%3D%22%23e9e6dc%22%20fill-opacity%3D%220.24%22/%3E%3Ccircle%20cx%3D%22501.4%22%20cy%3D%22336.7%22%20r%3D%221.3%22%20fill%3D%22%23a9b0c2%22%20fill-opacity%3D%220.16%22/%3E%3Ccircle%20cx%3D%22965.6%22%20cy%3D%22608.5%22%20r%3D%220.9%22%20fill%3D%22%23a9b0c2%22%20fill-opacity%3D%220.34%22/%3E%3Ccircle%20cx%3D%22487.4%22%20cy%3D%22490.8%22%20r%3D%220.9%22%20fill%3D%22%23e9e6dc%22%20fill-opacity%3D%220.25%22/%3E%3Ccircle%20cx%3D%22777.4%22%20cy%3D%22681.9%22%20r%3D%220.6%22%20fill%3D%22%23a9b0c2%22%20fill-opacity%3D%220.2%22/%3E%3Ccircle%20cx%3D%22550.7%22%20cy%3D%22681.2%22%20r%3D%220.6%22%20fill%3D%22%23a9b0c2%22%20fill-opacity%3D%220.13%22/%3E%3Ccircle%20cx%3D%221089.4%22%20cy%3D%22166.9%22%20r%3D%220.9%22%20fill%3D%22%23e9e6dc%22%20fill-opacity%3D%220.14%22/%3E%3Ccircle%20cx%3D%22361.6%22%20cy%3D%22642.8%22%20r%3D%220.6%22%20fill%3D%22%23a9b0c2%22%20fill-opacity%3D%220.21%22/%3E%3Ccircle%20cx%3D%2285.7%22%20cy%3D%22298.5%22%20r%3D%221.3%22%20fill%3D%22%23a9b0c2%22%20fill-opacity%3D%220.28%22/%3E%3Ccircle%20cx%3D%22872.3%22%20cy%3D%22702.0%22%20r%3D%221.3%22%20fill%3D%22%23a9b0c2%22%20fill-opacity%3D%220.34%22/%3E%3Ccircle%20cx%3D%221060.9%22%20cy%3D%22163.8%22%20r%3D%220.6%22%20fill%3D%22%23a9b0c2%22%20fill-opacity%3D%220.35%22/%3E%3Ccircle%20cx%3D%22537.9%22%20cy%3D%22594.4%22%20r%3D%221.3%22%20fill%3D%22%23e9e6dc%22%20fill-opacity%3D%220.17%22/%3E%3Ccircle%20cx%3D%22754.0%22%20cy%3D%22633.0%22%20r%3D%220.6%22%20fill%3D%22%23e9e6dc%22%20fill-opacity%3D%220.22%22/%3E%3Ccircle%20cx%3D%22388.3%22%20cy%3D%22568.0%22%20r%3D%220.6%22%20fill%3D%22%23e9e6dc%22%20fill-opacity%3D%220.27%22/%3E%3Ccircle%20cx%3D%22968.8%22%20cy%3D%2286.9%22%20r%3D%220.9%22%20fill%3D%22%23d9c08a%22%20fill-opacity%3D%220.23%22/%3E%3Ccircle%20cx%3D%22984.8%22%20cy%3D%22191.9%22%20r%3D%220.9%22%20fill%3D%22%23a9b0c2%22%20fill-opacity%3D%220.26%22/%3E%3Ccircle%20cx%3D%22932.0%22%20cy%3D%22680.6%22%20r%3D%220.9%22%20fill%3D%22%23d9c08a%22%20fill-opacity%3D%220.3%22/%3E%3Ccircle%20cx%3D%22425.2%22%20cy%3D%22741.6%22%20r%3D%220.6%22%20fill%3D%22%23a9b0c2%22%20fill-opacity%3D%220.23%22/%3E%3Ccircle%20cx%3D%221057.9%22%20cy%3D%22489.9%22%20r%3D%221.3%22%20fill%3D%22%23e9e6dc%22%20fill-opacity%3D%220.11%22/%3E%3Ccircle%20cx%3D%22875.5%22%20cy%3D%22669.7%22%20r%3D%220.6%22%20fill%3D%22%23a9b0c2%22%20fill-opacity%3D%220.3%22/%3E%3Ccircle%20cx%3D%22433.2%22%20cy%3D%22477.7%22%20r%3D%220.6%22%20fill%3D%22%23a9b0c2%22%20fill-opacity%3D%220.35%22/%3E%3Ccircle%20cx%3D%22707.2%22%20cy%3D%22332.8%22%20r%3D%220.6%22%20fill%3D%22%23a9b0c2%22%20fill-opacity%3D%220.33%22/%3E%3Ccircle%20cx%3D%22566.7%22%20cy%3D%22405.9%22%20r%3D%220.9%22%20fill%3D%22%23d9c08a%22%20fill-opacity%3D%220.14%22/%3E%3Ccircle%20cx%3D%22894.6%22%20cy%3D%22791.0%22%20r%3D%220.6%22%20fill%3D%22%23a9b0c2%22%20fill-opacity%3D%220.31%22/%3E%3Ccircle%20cx%3D%22851.1%22%20cy%3D%22748.0%22%20r%3D%220.6%22%20fill%3D%22%23e9e6dc%22%20fill-opacity%3D%220.19%22/%3E%3Ccircle%20cx%3D%22181.1%22%20cy%3D%22482.3%22%20r%3D%220.9%22%20fill%3D%22%23e9e6dc%22%20fill-opacity%3D%220.35%22/%3E%3Ccircle%20cx%3D%221199.2%22%20cy%3D%22785.4%22%20r%3D%220.9%22%20fill%3D%22%23a9b0c2%22%20fill-opacity%3D%220.21%22/%3E%3Ccircle%20cx%3D%22988.7%22%20cy%3D%224.3%22%20r%3D%220.6%22%20fill%3D%22%23a9b0c2%22%20fill-opacity%3D%220.27%22/%3E%3Ccircle%20cx%3D%2255.6%22%20cy%3D%22463.8%22%20r%3D%220.9%22%20fill%3D%22%23d9c08a%22%20fill-opacity%3D%220.33%22/%3E%3Ccircle%20cx%3D%22982.8%22%20cy%3D%22593.7%22%20r%3D%220.6%22%20fill%3D%22%23a9b0c2%22%20fill-opacity%3D%220.22%22/%3E%3Ccircle%20cx%3D%22202.4%22%20cy%3D%22235.9%22%20r%3D%220.9%22%20fill%3D%22%23a9b0c2%22%20fill-opacity%3D%220.1%22/%3E%3Ccircle%20cx%3D%22727.3%22%20cy%3D%22529.5%22%20r%3D%221.3%22%20fill%3D%22%23e9e6dc%22%20fill-opacity%3D%220.18%22/%3E%3Ccircle%20cx%3D%22736.6%22%20cy%3D%22600.8%22%20r%3D%220.9%22%20fill%3D%22%23a9b0c2%22%20fill-opacity%3D%220.16%22/%3E%3Ccircle%20cx%3D%221090.3%22%20cy%3D%2264.1%22%20r%3D%220.9%22%20fill%3D%22%23a9b0c2%22%20fill-opacity%3D%220.32%22/%3E%3Ccircle%20cx%3D%221061.9%22%20cy%3D%2217.7%22%20r%3D%220.6%22%20fill%3D%22%23a9b0c2%22%20fill-opacity%3D%220.35%22/%3E%3Ccircle%20cx%3D%221189.9%22%20cy%3D%22671.1%22%20r%3D%220.9%22%20fill%3D%22%23a9b0c2%22%20fill-opacity%3D%220.17%22/%3E%3Ccircle%20cx%3D%2262.3%22%20cy%3D%22718.2%22%20r%3D%220.9%22%20fill%3D%22%23a9b0c2%22%20fill-opacity%3D%220.12%22/%3E%3Ccircle%20cx%3D%22241.1%22%20cy%3D%22493.4%22%20r%3D%220.9%22%20fill%3D%22%23a9b0c2%22%20fill-opacity%3D%220.14%22/%3E%3Ccircle%20cx%3D%22994.1%22%20cy%3D%22178.6%22%20r%3D%220.6%22%20fill%3D%22%23e9e6dc%22%20fill-opacity%3D%220.26%22/%3E%3Ccircle%20cx%3D%221033.4%22%20cy%3D%22558.0%22%20r%3D%221.3%22%20fill%3D%22%23a9b0c2%22%20fill-opacity%3D%220.28%22/%3E%3Ccircle%20cx%3D%22226.5%22%20cy%3D%2232.8%22%20r%3D%220.9%22%20fill%3D%22%23e9e6dc%22%20fill-opacity%3D%220.18%22/%3E%3Ccircle%20cx%3D%221129.6%22%20cy%3D%2218.1%22%20r%3D%220.9%22%20fill%3D%22%23a9b0c2%22%20fill-opacity%3D%220.35%22/%3E%3Ccircle%20cx%3D%22371.8%22%20cy%3D%2220.0%22%20r%3D%220.6%22%20fill%3D%22%23a9b0c2%22%20fill-opacity%3D%220.11%22/%3E%3Ccircle%20cx%3D%221141.1%22%20cy%3D%22289.4%22%20r%3D%220.6%22%20fill%3D%22%23a9b0c2%22%20fill-opacity%3D%220.12%22/%3E%3Ccircle%20cx%3D%22219.5%22%20cy%3D%22729.5%22%20r%3D%220.6%22%20fill%3D%22%23a9b0c2%22%20fill-opacity%3D%220.25%22/%3E%3Ccircle%20cx%3D%221132.9%22%20cy%3D%2252.7%22%20r%3D%220.9%22%20fill%3D%22%23a9b0c2%22%20fill-opacity%3D%220.14%22/%3E%3Ccircle%20cx%3D%2285.5%22%20cy%3D%22766.3%22%20r%3D%220.6%22%20fill%3D%22%23a9b0c2%22%20fill-opacity%3D%220.16%22/%3E%3Ccircle%20cx%3D%22901.8%22%20cy%3D%22324.2%22%20r%3D%221.3%22%20fill%3D%22%23a9b0c2%22%20fill-opacity%3D%220.29%22/%3E%3Ccircle%20cx%3D%22832.0%22%20cy%3D%22752.3%22%20r%3D%220.6%22%20fill%3D%22%23a9b0c2%22%20fill-opacity%3D%220.23%22/%3E%3Ccircle%20cx%3D%221022.7%22%20cy%3D%22333.3%22%20r%3D%220.6%22%20fill%3D%22%23e9e6dc%22%20fill-opacity%3D%220.13%22/%3E%3Ccircle%20cx%3D%22846.5%22%20cy%3D%22133.2%22%20r%3D%220.6%22%20fill%3D%22%23e9e6dc%22%20fill-opacity%3D%220.34%22/%3E%3Ccircle%20cx%3D%22805.0%22%20cy%3D%22443.4%22%20r%3D%220.6%22%20fill%3D%22%23e9e6dc%22%20fill-opacity%3D%220.25%22/%3E%3Ccircle%20cx%3D%22766.8%22%20cy%3D%22562.0%22%20r%3D%220.6%22%20fill%3D%22%23a9b0c2%22%20fill-opacity%3D%220.14%22/%3E%3Ccircle%20cx%3D%22309.4%22%20cy%3D%22662.5%22%20r%3D%220.6%22%20fill%3D%22%23a9b0c2%22%20fill-opacity%3D%220.21%22/%3E%3Ccircle%20cx%3D%226.7%22%20cy%3D%22488.3%22%20r%3D%220.9%22%20fill%3D%22%23a9b0c2%22%20fill-opacity%3D%220.34%22/%3E%3Ccircle%20cx%3D%221064.5%22%20cy%3D%22621.3%22%20r%3D%220.6%22%20fill%3D%22%23e9e6dc%22%20fill-opacity%3D%220.2%22/%3E%3Ccircle%20cx%3D%22576.3%22%20cy%3D%22602.9%22%20r%3D%220.6%22%20fill%3D%22%23e9e6dc%22%20fill-opacity%3D%220.36%22/%3E%3Ccircle%20cx%3D%22798.8%22%20cy%3D%22786.9%22%20r%3D%220.6%22%20fill%3D%22%23d9c08a%22%20fill-opacity%3D%220.25%22/%3E%3Ccircle%20cx%3D%22980.6%22%20cy%3D%22262.6%22%20r%3D%220.6%22%20fill%3D%22%23d9c08a%22%20fill-opacity%3D%220.3%22/%3E%3Ccircle%20cx%3D%221143.8%22%20cy%3D%22771.6%22%20r%3D%220.9%22%20fill%3D%22%23a9b0c2%22%20fill-opacity%3D%220.31%22/%3E%3Ccircle%20cx%3D%22890.1%22%20cy%3D%22498.9%22%20r%3D%220.6%22%20fill%3D%22%23e9e6dc%22%20fill-opacity%3D%220.31%22/%3E%3Ccircle%20cx%3D%22218.6%22%20cy%3D%22546.7%22%20r%3D%220.6%22%20fill%3D%22%23a9b0c2%22%20fill-opacity%3D%220.19%22/%3E%3Ccircle%20cx%3D%22817.4%22%20cy%3D%2248.0%22%20r%3D%220.9%22%20fill%3D%22%23a9b0c2%22%20fill-opacity%3D%220.14%22/%3E%3Ccircle%20cx%3D%22291.6%22%20cy%3D%2299.3%22%20r%3D%220.9%22%20fill%3D%22%23a9b0c2%22%20fill-opacity%3D%220.37%22/%3E%3Ccircle%20cx%3D%22597.9%22%20cy%3D%2299.9%22%20r%3D%220.6%22%20fill%3D%22%23a9b0c2%22%20fill-opacity%3D%220.25%22/%3E%3Ccircle%20cx%3D%22597.9%22%20cy%3D%22764.1%22%20r%3D%220.6%22%20fill%3D%22%23a9b0c2%22%20fill-opacity%3D%220.34%22/%3E%3Ccircle%20cx%3D%221025.6%22%20cy%3D%22615.2%22%20r%3D%221.3%22%20fill%3D%22%23e9e6dc%22%20fill-opacity%3D%220.17%22/%3E%3Ccircle%20cx%3D%2239.8%22%20cy%3D%22192.2%22%20r%3D%220.6%22%20fill%3D%22%23e9e6dc%22%20fill-opacity%3D%220.36%22/%3E%3Ccircle%20cx%3D%22912.0%22%20cy%3D%22797.6%22%20r%3D%220.6%22%20fill%3D%22%23a9b0c2%22%20fill-opacity%3D%220.31%22/%3E%3Ccircle%20cx%3D%221027.1%22%20cy%3D%22587.2%22%20r%3D%220.9%22%20fill%3D%22%23d9c08a%22%20fill-opacity%3D%220.16%22/%3E%3Ccircle%20cx%3D%22589.4%22%20cy%3D%22429.1%22%20r%3D%220.6%22%20fill%3D%22%23e9e6dc%22%20fill-opacity%3D%220.36%22/%3E%3Ccircle%20cx%3D%2277.7%22%20cy%3D%22667.8%22%20r%3D%220.9%22%20fill%3D%22%23e9e6dc%22%20fill-opacity%3D%220.1%22/%3E%3Ccircle%20cx%3D%22156.4%22%20cy%3D%22243.8%22%20r%3D%220.9%22%20fill%3D%22%23a9b0c2%22%20fill-opacity%3D%220.2%22/%3E%3Ccircle%20cx%3D%22504.4%22%20cy%3D%2225.0%22%20r%3D%220.9%22%20fill%3D%22%23a9b0c2%22%20fill-opacity%3D%220.37%22/%3E%3Ccircle%20cx%3D%22136.7%22%20cy%3D%22474.8%22%20r%3D%220.6%22%20fill%3D%22%23e9e6dc%22%20fill-opacity%3D%220.36%22/%3E%3Ccircle%20cx%3D%2265.6%22%20cy%3D%22255.3%22%20r%3D%220.6%22%20fill%3D%22%23e9e6dc%22%20fill-opacity%3D%220.31%22/%3E%3Ccircle%20cx%3D%22909.6%22%20cy%3D%22755.0%22%20r%3D%220.6%22%20fill%3D%22%23a9b0c2%22%20fill-opacity%3D%220.12%22/%3E%3Ccircle%20cx%3D%22558.0%22%20cy%3D%227.3%22%20r%3D%220.9%22%20fill%3D%22%23a9b0c2%22%20fill-opacity%3D%220.28%22/%3E%3Ccircle%20cx%3D%221066.3%22%20cy%3D%2227.5%22%20r%3D%220.6%22%20fill%3D%22%23a9b0c2%22%20fill-opacity%3D%220.23%22/%3E%3Ccircle%20cx%3D%22860.8%22%20cy%3D%22178.0%22%20r%3D%220.6%22%20fill%3D%22%23e9e6dc%22%20fill-opacity%3D%220.2%22/%3E%3Ccircle%20cx%3D%2259.8%22%20cy%3D%22282.5%22%20r%3D%220.6%22%20fill%3D%22%23e9e6dc%22%20fill-opacity%3D%220.15%22/%3E%3Ccircle%20cx%3D%22924.9%22%20cy%3D%22545.9%22%20r%3D%220.9%22%20fill%3D%22%23a9b0c2%22%20fill-opacity%3D%220.34%22/%3E%3Ccircle%20cx%3D%22480.8%22%20cy%3D%22371.7%22%20r%3D%220.6%22%20fill%3D%22%23a9b0c2%22%20fill-opacity%3D%220.29%22/%3E%3Ccircle%20cx%3D%22335.8%22%20cy%3D%22514.5%22%20r%3D%220.6%22%20fill%3D%22%23a9b0c2%22%20fill-opacity%3D%220.17%22/%3E%3Ccircle%20cx%3D%22726.0%22%20cy%3D%2231.8%22%20r%3D%220.9%22%20fill%3D%22%23a9b0c2%22%20fill-opacity%3D%220.32%22/%3E%3Ccircle%20cx%3D%22560.3%22%20cy%3D%22463.5%22%20r%3D%220.6%22%20fill%3D%22%23a9b0c2%22%20fill-opacity%3D%220.19%22/%3E%3Ccircle%20cx%3D%22652.3%22%20cy%3D%22486.7%22%20r%3D%220.9%22%20fill%3D%22%23a9b0c2%22%20fill-opacity%3D%220.21%22/%3E%3Ccircle%20cx%3D%22654.1%22%20cy%3D%22293.1%22%20r%3D%220.6%22%20fill%3D%22%23a9b0c2%22%20fill-opacity%3D%220.37%22/%3E%3Ccircle%20cx%3D%22713.6%22%20cy%3D%22271.6%22%20r%3D%220.6%22%20fill%3D%22%23e9e6dc%22%20fill-opacity%3D%220.1%22/%3E%3Ccircle%20cx%3D%22945.4%22%20cy%3D%22292.6%22%20r%3D%220.6%22%20fill%3D%22%23e9e6dc%22%20fill-opacity%3D%220.29%22/%3E%3Cpath%20d%3D%22M%20120%2C90%20L%20185%2C70%20L%20250%2C95%20L%20305%2C140%20L%20340%2C205%22%20fill%3D%22none%22%20stroke%3D%22%23d9c08a%22%20stroke-width%3D%220.55%22%20stroke-opacity%3D%220.13%22/%3E%3Ccircle%20cx%3D%22120%22%20cy%3D%2290%22%20r%3D%221.5%22%20fill%3D%22%23efdcae%22%20fill-opacity%3D%220.42%22/%3E%3Ccircle%20cx%3D%22185%22%20cy%3D%2270%22%20r%3D%221.5%22%20fill%3D%22%23efdcae%22%20fill-opacity%3D%220.42%22/%3E%3Ccircle%20cx%3D%22250%22%20cy%3D%2295%22%20r%3D%221.5%22%20fill%3D%22%23efdcae%22%20fill-opacity%3D%220.42%22/%3E%3Ccircle%20cx%3D%22305%22%20cy%3D%22140%22%20r%3D%221.5%22%20fill%3D%22%23efdcae%22%20fill-opacity%3D%220.42%22/%3E%3Ccircle%20cx%3D%22340%22%20cy%3D%22205%22%20r%3D%221.5%22%20fill%3D%22%23efdcae%22%20fill-opacity%3D%220.42%22/%3E%3Cpath%20d%3D%22M%20880%2C300%20L%20940%2C265%20L%201005%2C290%20L%201045%2C350%20L%201010%2C415%20L%20945%2C430%22%20fill%3D%22none%22%20stroke%3D%22%23d9c08a%22%20stroke-width%3D%220.55%22%20stroke-opacity%3D%220.13%22/%3E%3Ccircle%20cx%3D%22880%22%20cy%3D%22300%22%20r%3D%221.5%22%20fill%3D%22%23efdcae%22%20fill-opacity%3D%220.42%22/%3E%3Ccircle%20cx%3D%22940%22%20cy%3D%22265%22%20r%3D%221.5%22%20fill%3D%22%23efdcae%22%20fill-opacity%3D%220.42%22/%3E%3Ccircle%20cx%3D%221005%22%20cy%3D%22290%22%20r%3D%221.5%22%20fill%3D%22%23efdcae%22%20fill-opacity%3D%220.42%22/%3E%3Ccircle%20cx%3D%221045%22%20cy%3D%22350%22%20r%3D%221.5%22%20fill%3D%22%23efdcae%22%20fill-opacity%3D%220.42%22/%3E%3Ccircle%20cx%3D%221010%22%20cy%3D%22415%22%20r%3D%221.5%22%20fill%3D%22%23efdcae%22%20fill-opacity%3D%220.42%22/%3E%3Ccircle%20cx%3D%22945%22%20cy%3D%22430%22%20r%3D%221.5%22%20fill%3D%22%23efdcae%22%20fill-opacity%3D%220.42%22/%3E%3Cpath%20d%3D%22M%20150%2C600%20L%20215%2C565%20L%20275%2C610%20L%20212%2C655%20Z%22%20fill%3D%22none%22%20stroke%3D%22%23d9c08a%22%20stroke-width%3D%220.55%22%20stroke-opacity%3D%220.13%22/%3E%3Ccircle%20cx%3D%22150%22%20cy%3D%22600%22%20r%3D%221.5%22%20fill%3D%22%23efdcae%22%20fill-opacity%3D%220.42%22/%3E%3Ccircle%20cx%3D%22215%22%20cy%3D%22565%22%20r%3D%221.5%22%20fill%3D%22%23efdcae%22%20fill-opacity%3D%220.42%22/%3E%3Ccircle%20cx%3D%22275%22%20cy%3D%22610%22%20r%3D%221.5%22%20fill%3D%22%23efdcae%22%20fill-opacity%3D%220.42%22/%3E%3Ccircle%20cx%3D%22212%22%20cy%3D%22655%22%20r%3D%221.5%22%20fill%3D%22%23efdcae%22%20fill-opacity%3D%220.42%22/%3E%3C/svg%3E") no-repeat center / cover;
}
.ciel::before {
  content: "";
  position: absolute;
  top: 16%;
  left: -10%;
  width: 130px;
  height: 1px;
  background: linear-gradient(90deg, transparent, #efdcae 55%, transparent);
  transform: rotate(16deg);
  opacity: 0;
  animation: filante 2.6s ease-out 9s 1;
}
@keyframes filante {
  0%   { opacity: 0; transform: translate(0, 0) rotate(16deg); }
  10%  { opacity: 0.85; }
  100% { opacity: 0; transform: translate(78vw, 24vh) rotate(16deg); }
}
.ciel::after {
  content: "";
  position: absolute;
  right: -12%;
  bottom: -18%;
  width: min(88vw, 860px);
  aspect-ratio: 1.4080;
  background: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%20208%20148%22%3E%3Cpath%20d%3D%22M%20158.3%2C54.6%20L%20158.5%2C55.2%20L%20158.6%2C55.8%20L%20158.7%2C56.4%20L%20158.7%2C57.0%20L%20158.7%2C57.7%20L%20158.6%2C58.3%20L%20158.5%2C59.0%20L%20158.4%2C59.7%20L%20158.2%2C60.3%20L%20157.9%2C61.0%20L%20157.6%2C61.7%20L%20157.2%2C62.3%20L%20156.8%2C63.0%20L%20156.4%2C63.6%20L%20155.8%2C64.2%20L%20155.3%2C64.8%20L%20154.6%2C65.3%20L%20154.0%2C65.8%20L%20153.2%2C66.3%20L%20152.4%2C66.7%20L%20151.6%2C67.1%20L%20150.8%2C67.4%20L%20149.9%2C67.7%20L%20148.9%2C67.9%20L%20147.9%2C68.1%20L%20146.9%2C68.2%20L%20145.9%2C68.2%20L%20144.9%2C68.1%20L%20143.8%2C68.0%20L%20142.7%2C67.8%20L%20141.6%2C67.5%20L%20140.6%2C67.1%20L%20139.5%2C66.7%20L%20138.4%2C66.1%20L%20137.4%2C65.5%20L%20136.3%2C64.8%20L%20135.3%2C64.0%20L%20134.4%2C63.1%20L%20133.5%2C62.1%20L%20132.6%2C61.1%20L%20131.8%2C59.9%20L%20131.1%2C58.7%20L%20130.4%2C57.4%20L%20129.9%2C56.1%20L%20129.4%2C54.6%20L%20129.0%2C53.1%20L%20128.7%2C51.6%20L%20128.5%2C50.0%20L%20128.4%2C48.4%20L%20128.4%2C46.7%20L%20128.6%2C45.0%20L%20128.8%2C43.2%20L%20129.2%2C41.5%20L%20129.8%2C39.7%20L%20130.4%2C38.0%20L%20131.3%2C36.2%20L%20132.2%2C34.5%20L%20133.3%2C32.8%20L%20134.5%2C31.2%20L%20135.9%2C29.6%20L%20137.4%2C28.1%20L%20139.0%2C26.7%20L%20140.8%2C25.4%20L%20142.7%2C24.1%20L%20144.7%2C23.0%20L%20146.9%2C22.0%20L%20149.1%2C21.1%20L%20151.5%2C20.4%20L%20154.0%2C19.8%20L%20156.5%2C19.4%20L%20159.2%2C19.2%20L%20161.8%2C19.2%20L%20164.6%2C19.3%20L%20167.4%2C19.6%20L%20170.2%2C20.2%20L%20173.0%2C20.9%20L%20175.9%2C21.9%20L%20178.7%2C23.1%20L%20181.5%2C24.5%20L%20184.2%2C26.2%20L%20186.9%2C28.1%20L%20189.5%2C30.2%20L%20192.0%2C32.5%20L%20194.4%2C35.0%20L%20196.6%2C37.8%20L%20198.7%2C40.8%20L%20200.6%2C43.9%20L%20202.3%2C47.3%20L%20203.9%2C50.9%20L%20205.2%2C54.6%20L%20206.2%2C58.5%20L%20207.0%2C62.6%20L%20207.5%2C66.8%20L%20207.7%2C71.1%20L%20207.7%2C75.5%20L%20207.3%2C80.0%20L%20206.6%2C84.5%20L%20205.5%2C89.1%20L%20204.1%2C93.7%20L%20202.3%2C98.3%20L%20200.2%2C102.8%20L%20197.7%2C107.3%20L%20194.9%2C111.7%20L%20191.7%2C116.0%20L%20188.1%2C120.1%20L%20184.2%2C124.0%20L%20179.9%2C127.8%20L%20175.2%2C131.3%20L%20170.2%2C134.5%20L%20164.9%2C137.5%20L%20159.3%2C140.1%20L%20153.4%2C142.4%20L%20147.2%2C144.3%20L%20140.7%2C145.8%20L%20134.1%2C146.8%20L%20127.2%2C147.4%20L%20120.1%2C147.5%20L%20112.9%2C147.2%20L%20105.6%2C146.3%20L%2098.2%2C144.8%20L%2090.8%2C142.9%20L%2083.4%2C140.3%20L%2076.0%2C137.2%20L%2068.7%2C133.5%20L%2061.5%2C129.1%20L%2054.5%2C124.2%20L%2047.7%2C118.7%20L%2041.2%2C112.7%20L%2035.0%2C106.0%20L%2029.1%2C98.8%20L%2023.6%2C91.0%20L%2018.6%2C82.6%20L%2014.1%2C73.8%20L%2010.1%2C64.4%20L%206.8%2C54.6%20L%204.0%2C44.4%20L%201.9%2C33.8%20L%200.6%2C22.8%20L%200.0%2C11.5%20L%200.2%2C0.0%22%20fill%3D%22none%22%20stroke%3D%22%23d9c08a%22%20stroke-width%3D%222.6%22%20stroke-linecap%3D%22round%22/%3E%3C/svg%3E") no-repeat center / contain;
  opacity: 0.05;
}
.ciel span {
  position: absolute;
  width: 2px; height: 2px;
  border-radius: 50%;
  background: var(--texte-doux);
  opacity: 0.28;
}
@keyframes scintille {
  0%, 100% { opacity: 0.3; }
  50%      { opacity: 0.07; }
}
.ciel span { animation: scintille 8s ease-in-out infinite; }
.ciel span:nth-child(1) { top: 8%;  left: 12%; }
.ciel span:nth-child(2) { top: 16%; left: 78%; opacity: 0.18; }
.ciel span:nth-child(3) { top: 27%; left: 32%; width: 1px; height: 1px; }
.ciel span:nth-child(4) { top: 12%; left: 55%; width: 1px; height: 1px; opacity: 0.2; }
.ciel span:nth-child(5) { top: 38%; left: 88%; width: 1px; height: 1px; }
.ciel span:nth-child(6) { top: 55%; left: 7%;  opacity: 0.14; }
.ciel span:nth-child(7) { top: 70%; left: 63%; width: 1px; height: 1px; opacity: 0.16; }
.ciel span:nth-child(8) { top: 84%; left: 24%; width: 1px; height: 1px; opacity: 0.12; }


.ciel span:nth-child(1) { animation-duration: 7s; }
.ciel span:nth-child(2) { animation-duration: 11s; animation-delay: 2.2s; }
.ciel span:nth-child(3) { animation-duration: 9s;  animation-delay: 4.1s; }
.ciel span:nth-child(4) { animation-duration: 13s; animation-delay: 1.3s; }
.ciel span:nth-child(5) { animation-duration: 8s;  animation-delay: 5.6s; }
.ciel span:nth-child(6) { animation-duration: 12s; animation-delay: 3.4s; }
.ciel span:nth-child(7) { animation-duration: 10s; animation-delay: 6.8s; }
.ciel span:nth-child(8) { animation-duration: 14s; animation-delay: 0.9s; }

main, header, footer { position: relative; z-index: 1; }

/* ---------- En-tête ---------- */
header {
  padding: var(--phi2) var(--phi1) 0;
  text-align: center;
}
.marque {
  display: inline-block;
  text-decoration: none;
  color: var(--texte);
}
.marque .nom {
  font-size: 1.05rem;
  letter-spacing: 0.24em;
  text-transform: uppercase;
}
.marque .methode {
  display: block;
  margin-top: 0.35rem;
  font-family: var(--sans);
  font-size: 0.66rem;
  letter-spacing: 0.34em;
  text-transform: uppercase;
  color: var(--texte-doux);
}

nav {
  margin-top: var(--phi1);
  position: relative;
  padding: var(--phi-1) 0;
}
nav::before, nav::after {
  content: "";
  position: absolute;
  left: 6%; right: 6%;
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--trait) 18%, var(--trait) 82%, transparent);
}
nav::before { top: 0; }
nav::after { bottom: 0; }
nav ul {
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.4rem 1.9rem;
}
nav a {
  font-family: var(--sans);
  font-size: 0.72rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  text-decoration: none;
  color: var(--texte-doux);
  padding: 0.3rem 0.1rem;
  transition: color 0.3s ease;
}
nav a:hover { color: var(--etoile); }
nav a[aria-current="page"] {
  color: var(--etoile);
  border-bottom: 1px solid var(--etoile);
}

/* ---------- L'étoile — le point de lumière ---------- */
.etoile-svg {
  display: block;
  margin: 0 auto;
  filter: drop-shadow(0 0 18px var(--lueur));
}
@keyframes respiration {
  0%, 100% { opacity: 0.85; }
  50%      { opacity: 1; }
}
.etoile-svg .coeur { animation: respiration 7s ease-in-out infinite; }

/* ---------- Corps de page ---------- */
main {
  flex: 1;
  width: 100%;
  max-width: 41rem;
  margin: 0 auto;
  padding: var(--phi3) var(--phi1) var(--phi4);
}
.seuil main, main.seuil { padding-top: var(--phi4); }

h1 {
  font-weight: 400;
  font-size: 1.9rem;
  line-height: 1.3;
  letter-spacing: 0.02em;
  text-align: center;
  margin-bottom: var(--phi2);
}
h2::before {
  content: "\2726";           /* ✦ — l'étoile minuscule de section */
  display: inline-block;
  margin-right: 0.65em;
  font-size: 0.62em;
  color: var(--etoile);
  opacity: 0.85;
  transform: translateY(-0.08em);
}
h2 {
  font-weight: 400;
  font-size: 1.28rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--etoile);
  margin: var(--phi2) 0 var(--phi1);
}
h3 {
  font-weight: 400;
  font-size: 1.12rem;
  margin: var(--phi1) 0 var(--phi-1);
}

p { margin-bottom: var(--phi1); }
p:last-child { margin-bottom: 0; }
strong { font-weight: 600; color: var(--texte); }
em { color: var(--texte-doux); }

a { color: var(--etoile); }
a:hover { color: var(--etoile-vive); }
:focus-visible {
  outline: 2px solid var(--etoile);
  outline-offset: 3px;
  border-radius: 2px;
}

/* Séparateur : trois points de lumière */
.sep {
  border: none;
  text-align: center;
  margin: var(--phi3) auto;
  height: auto;
}
.sep::before {
  content: "·\2002 ·\2002 ·";
  color: var(--etoile);
  letter-spacing: 0.5em;
  font-size: 1.05rem;
  opacity: 0.75;
}

/* Voix du seuil : grandes lignes espacées */
.voix p {
  font-size: 1.3rem;
  line-height: 1.9;
  text-align: center;
  margin-bottom: var(--phi2);
}
.voix .noyau {
  color: var(--etoile-vive);
}

/* Mention pratique, détachée */
.mention {
  margin-top: var(--phi2);
  padding: var(--phi0) var(--phi1);
  background: var(--encre);
  border-left: 2px solid var(--etoile);
  font-family: var(--sans);
  font-size: 0.86rem;
  color: var(--texte-doux);
  letter-spacing: 0.02em;
}

/* Liste des portes */
.portes { list-style: none; margin: 2.4rem 0; }
.portes li {
  padding: 1.05rem 0;
  border-bottom: 1px solid var(--trait);
  display: flex;
  align-items: baseline;
  gap: 0.9rem;
}
.portes li::before {
  content: "·";
  color: var(--etoile);
  font-size: 1.4rem;
  line-height: 1;
}
.portes li:first-child { border-top: 1px solid var(--trait); }

/* Bloc tarif */
.tarif {
  text-align: center;
  margin: var(--phi2) 0;
}
.tarif .montant {
  font-size: 2rem;
  color: var(--etoile-vive);
  letter-spacing: 0.04em;
}
.tarif .unite {
  display: block;
  margin-top: 0.3rem;
  font-family: var(--sans);
  font-size: 0.72rem;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: var(--texte-doux);
}

/* Lien d'appel discret */
.appel {
  display: block;
  width: fit-content;
  margin: var(--phi2) auto 0;
  padding: 0.75rem 2.2rem;
  border: 1px solid var(--etoile);
  border-radius: 2px;
  font-family: var(--sans);
  font-size: 0.74rem;
  letter-spacing: 0.26em;
  text-transform: uppercase;
  text-decoration: none;
  color: var(--etoile);
  transition: background 0.3s ease, color 0.3s ease;
}
.appel:hover {
  background: var(--etoile);
  color: var(--nuit);
}

/* ---------- Formulaire ---------- */
form { margin-top: var(--phi2); }
.champ { margin-bottom: var(--phi1); }
label {
  display: block;
  font-family: var(--sans);
  font-size: 0.72rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--texte-doux);
  margin-bottom: 0.55rem;
}
input[type="text"], input[type="email"], textarea {
  width: 100%;
  background: var(--encre);
  border: 1px solid var(--trait);
  border-radius: 2px;
  padding: 0.85rem 1rem;
  color: var(--texte);
  font-family: var(--serif);
  font-size: 1.05rem;
  line-height: 1.6;
}
input:focus, textarea:focus {
  border-color: var(--etoile);
  outline: none;
}
textarea { min-height: 11rem; resize: vertical; }

.consentement {
  display: flex;
  gap: 0.8rem;
  align-items: flex-start;
  margin: var(--phi1) 0;
}
.consentement input[type="checkbox"] {
  margin-top: 0.42rem;
  width: 1rem; height: 1rem;
  accent-color: var(--etoile);
  flex: none;
}
.consentement label {
  text-transform: none;
  letter-spacing: 0.02em;
  font-size: 0.85rem;
  line-height: 1.65;
  margin: 0;
}
.consentement a { color: var(--etoile); }

button[type="submit"] {
  display: block;
  margin: 0 auto;
  padding: 0.85rem 2.6rem;
  background: transparent;
  border: 1px solid var(--etoile);
  border-radius: 2px;
  color: var(--etoile);
  font-family: var(--sans);
  font-size: 0.76rem;
  letter-spacing: 0.26em;
  text-transform: uppercase;
  cursor: pointer;
  transition: background 0.3s ease, color 0.3s ease;
}
button[type="submit"]:hover {
  background: var(--etoile);
  color: var(--nuit);
}
.hpot { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

.message-envoi {
  margin-top: 1.6rem;
  padding: 1rem 1.3rem;
  background: var(--encre);
  border-left: 2px solid var(--etoile);
  font-family: var(--sans);
  font-size: 0.9rem;
  color: var(--texte);
}

/* ---------- Unité d'alignement : les pages de voix sont centrées ---------- */
body:not(.legal) main p,
body:not(.legal) main h2,
body:not(.legal) main h3 {
  text-align: center;
}
body:not(.legal) .mention { text-align: center; border-left: none; border-top: 2px solid var(--etoile); }
body:not(.legal) label { text-align: center; }
.consentement { text-align: left; }
.consentement label { text-align: left; }

/* ---------- Pages légales ---------- */
.legal main { max-width: 41rem; }
.legal h1 { font-size: 1.5rem; }
.legal h2 { font-size: 1.02rem; margin-top: 2.6rem; }
.legal p, .legal li { font-size: 1rem; color: var(--texte-doux); }
.legal strong { color: var(--texte); }
.legal ul { margin: 0 0 1.35rem 1.3rem; }

/* ---------- Pied de page ---------- */
footer {
  border-top: 1px solid var(--trait);
  padding: var(--phi2) var(--phi1) var(--phi2);
  text-align: center;
  font-family: var(--sans);
  font-size: 0.72rem;
  letter-spacing: 0.14em;
  color: var(--texte-doux);
}
footer .liens {
  margin-bottom: 1rem;
}
footer .liens a {
  color: var(--texte-doux);
  text-decoration: none;
  margin: 0 0.9rem;
  text-transform: uppercase;
  letter-spacing: 0.18em;
  font-size: 0.68rem;
}
footer .liens a:hover { color: var(--etoile); }
footer .sceau { opacity: 0.75; }

@media (max-width: 540px) {
  body { font-size: 1.08rem; }
  .voix p { font-size: 1.16rem; }
  h1 { font-size: 1.55rem; }
  nav ul { gap: 0.3rem 1.1rem; }
}

/* ---------- Version jour — au choix du visiteur (la nuit reste l'identité par défaut) ---------- */
html[data-theme="jour"] {
  --nuit: #f6f2e9;
  --nuit-haute: #fbf8f0;
  --encre: #ede7d9;
  --etoile: #8a6a2f;
  --etoile-vive: #6e5322;
  --lueur: rgba(138, 106, 47, 0.10);
  --texte: #232a3d;
  --texte-doux: #5a6275;
  --trait: rgba(35, 42, 61, 0.16);
}
html[data-theme="jour"] body {
  background: var(--nuit);
  background-image: radial-gradient(ellipse 120% 60% at 50% -10%, var(--nuit-haute) 0%, var(--nuit) 62%);
}
html[data-theme="jour"] .ciel { background: none; }
html[data-theme="jour"] .ciel span { display: none; }
html[data-theme="jour"] .ciel::before { display: none; }      /* pas d'étoile filante en plein jour */
html[data-theme="jour"] .ciel::after { opacity: 0.06; }        /* la spirale demeure, en or sur crème */
html[data-theme="jour"] .etoile-svg { filter: none; opacity: 0.92; }

/* ---------- Le bouton de bascule nuit/jour ---------- */
.bascule {
  position: fixed;
  top: 1.1rem;
  right: 1.1rem;
  z-index: 3;
  width: 2.4rem;
  height: 2.4rem;
  border: 1px solid var(--trait);
  border-radius: 50%;
  background: transparent;
  color: var(--texte-doux);
  font-size: 1rem;
  line-height: 1;
  cursor: pointer;
  transition: color 0.3s ease, border-color 0.3s ease;
}
.bascule:hover { color: var(--etoile); border-color: var(--etoile); }
