:root{
    --ink:#211f1a;
    --ink-soft:#4a463d;
    --paper:#f3f1e9;
    --paper-2:#eae6da;
    --paper-3:#e2ddcd;
    --water:#0e4a49;
    --water-700:#0a3635;
    --water-300:#3f8a83;
    --earth:#9c5a2b;
    --earth-300:#c98a4f;
    --line:rgba(33,31,26,.14);
    --line-soft:rgba(33,31,26,.08);
    --paper-line:rgba(243,241,233,.22);

    --f-display:"Fraunces", Georgia, serif;
    --f-body:"Instrument Sans", system-ui, sans-serif;
    --f-mono:"IBM Plex Mono", ui-monospace, monospace;

    --wrap:1180px;
  }

  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{
    margin:0;
    background:var(--paper);
    color:var(--ink);
    font-family:var(--f-body);
    font-size:17px;
    line-height:1.6;
    -webkit-font-smoothing:antialiased;
    text-rendering:optimizeLegibility;
  }
  h1,h2,h3{font-family:var(--f-display);font-weight:600;line-height:1.04;margin:0;letter-spacing:-.015em;}
  p{margin:0 0 1rem;}
  a{color:inherit;}
  img,svg{max-width:100%;display:block;}

  .wrap{width:100%;max-width:var(--wrap);margin:0 auto;padding:0 28px;}

  .eyebrow{
    font-family:var(--f-mono);
    font-size:12px;
    letter-spacing:.18em;
    text-transform:uppercase;
    color:var(--earth);
    display:inline-flex;
    align-items:center;
    gap:.6em;
    margin:0 0 20px;
  }
  .eyebrow::before{content:"";width:26px;height:1px;background:var(--earth);opacity:.7;}

  /* ---------- Buttons ---------- */
  .btn{
    font-family:var(--f-body);
    font-weight:600;
    font-size:15px;
    line-height:1;
    display:inline-flex;
    align-items:center;
    gap:.55em;
    padding:14px 22px;
    border-radius:2px;
    text-decoration:none;
    border:1px solid transparent;
    cursor:pointer;
    transition:transform .18s ease, background .18s ease, color .18s ease, border-color .18s ease;
  }
  .btn-primary{background:var(--earth);color:#fdfbf4;}
  .btn-primary:hover{background:#87491f;transform:translateY(-1px);}
  .btn-ghost{border-color:var(--line);color:var(--ink);background:transparent;}
  .btn-ghost:hover{border-color:var(--ink);transform:translateY(-1px);}
  .btn-on-dark{border-color:var(--paper-line);color:var(--paper);}
  .btn-on-dark:hover{border-color:var(--paper);background:rgba(243,241,233,.06);}

  /* ---------- Header ---------- */
  header{
    position:sticky;top:0;z-index:50;
    background:rgba(243,241,233,.86);
    backdrop-filter:saturate(1.2) blur(10px);
    border-bottom:1px solid var(--line-soft);
  }
  .nav{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:15px 0;}
  .brand{display:flex;flex-direction:column;text-decoration:none;line-height:1;}
  .brand .name{font-family:var(--f-display);font-weight:600;font-size:22px;letter-spacing:-.01em;color:var(--ink);}
  .brand .name .amp{color:var(--earth);font-style:italic;padding:0 .05em;}
  .brand .tag{font-family:var(--f-mono);font-size:9.5px;letter-spacing:.22em;text-transform:uppercase;color:var(--ink-soft);margin-top:5px;}
  .nav-links{display:flex;align-items:center;gap:26px;}
  .nav-links a{font-size:14.5px;text-decoration:none;color:var(--ink-soft);transition:color .15s ease;}
  .nav-links a:hover{color:var(--ink);}
  .nav-cta{display:flex;align-items:center;gap:16px;}

  /* ---------- Hero ---------- */
  .hero{position:relative;background:var(--water);color:var(--paper);overflow:hidden;}
  .hero-furrows{position:absolute;inset:auto 0 0 0;height:60%;width:100%;pointer-events:none;opacity:.9;}
  .hero-furrows path{fill:none;stroke:var(--earth-300);stroke-width:1.4;}
  .hero-inner{position:relative;z-index:2;padding:118px 0 128px;}
  .hero .eyebrow{color:var(--earth-300);}
  .hero .eyebrow::before{background:var(--earth-300);}
  .hero h1{
    font-size:clamp(2.8rem,7.2vw,5.4rem);
    font-weight:600;
    max-width:16ch;
    margin:0 0 26px;
    color:var(--paper);
  }
  .hero h1 em{font-style:italic;color:var(--earth-300);}
  .hero .lede{
    font-size:clamp(1.05rem,1.8vw,1.32rem);
    max-width:46ch;
    color:rgba(243,241,233,.86);
    line-height:1.55;
    margin:0 0 38px;
  }
  .hero-actions{display:flex;flex-wrap:wrap;gap:14px;align-items:center;}
  .hero-baseline{
    margin-top:56px;
    font-family:var(--f-mono);
    font-size:12.5px;
    letter-spacing:.2em;
    text-transform:uppercase;
    color:rgba(243,241,233,.6);
    display:flex;align-items:center;gap:14px;
  }
  .hero-baseline .dot{width:4px;height:4px;border-radius:50%;background:var(--earth-300);}

  /* ---------- Section base ---------- */
  section{padding:104px 0;}
  .section-head{max-width:64ch;margin-bottom:56px;}
  .section-head h2{font-size:clamp(2rem,4vw,3rem);max-width:20ch;}
  .section-head .lede{font-size:1.14rem;color:var(--ink-soft);margin-top:22px;max-width:58ch;}
  #mission{scroll-margin-top:80px;}
  #mandat{scroll-margin-top:80px;background:var(--paper-2);}
  #temoin{scroll-margin-top:80px;}
  #terrains{scroll-margin-top:80px;background:var(--water);color:var(--paper);}
  #soutenir{scroll-margin-top:80px;background:var(--paper-2);}

  /* ---------- Mission facts ---------- */
  .mission-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:64px;align-items:start;}
  .mission-body p{font-size:1.16rem;color:var(--ink-soft);max-width:52ch;}
  .facts{border-top:1px solid var(--line);}
  .fact{display:grid;grid-template-columns:auto 1fr;gap:20px;padding:20px 0;border-bottom:1px solid var(--line);align-items:baseline;}
  .fact dt{font-family:var(--f-mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--earth);white-space:nowrap;}
  .fact dd{margin:0;font-family:var(--f-display);font-size:1.32rem;font-weight:500;line-height:1.2;}

  /* ---------- Mandat ---------- */
  .mandat-grid{display:grid;grid-template-columns:1fr 1fr;gap:28px;}
  .panel{background:var(--paper);border:1px solid var(--line);border-radius:3px;padding:40px;display:flex;flex-direction:column;}
  .panel .kind{font-family:var(--f-mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--earth);margin-bottom:20px;display:flex;align-items:center;gap:10px;}
  .panel .kind .clock{width:9px;height:9px;border-radius:50%;border:1.5px solid var(--earth);}
  .panel.urgence .kind{color:var(--water);}
  .panel.urgence .kind .clock{border-color:var(--water);background:radial-gradient(circle,var(--water) 0 30%,transparent 32%);}
  .panel h3{font-size:1.7rem;margin-bottom:22px;}
  .panel ul{list-style:none;margin:0 0 26px;padding:0;}
  .panel li{padding:13px 0;border-top:1px solid var(--line-soft);font-size:1.02rem;color:var(--ink-soft);display:flex;gap:12px;}
  .panel li::before{content:"";flex:0 0 6px;height:6px;margin-top:.5em;background:var(--earth);}
  .panel.urgence li::before{background:var(--water);}
  .panel .witness{margin-top:auto;padding-top:22px;border-top:1px solid var(--line);font-family:var(--f-display);font-size:1.08rem;font-style:italic;color:var(--ink);line-height:1.4;}
  .panel .witness b{font-style:normal;font-weight:600;color:var(--earth);}
  .panel.urgence .witness b{color:var(--water);}

  /* ---------- Témoin / hydrograph ---------- */
  .temoin-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:64px;align-items:center;}
  .temoin-body p{font-size:1.14rem;color:var(--ink-soft);max-width:46ch;}
  .chart-card{background:var(--water);color:var(--paper);border-radius:4px;padding:30px 30px 26px;}
  .chart-card .chart-label{font-family:var(--f-mono);font-size:11.5px;letter-spacing:.13em;text-transform:uppercase;color:rgba(243,241,233,.7);margin-bottom:6px;}
  .chart-card .chart-sub{font-family:var(--f-mono);font-size:11px;color:var(--earth-300);margin-bottom:18px;letter-spacing:.04em;}
  .hydro{width:100%;height:auto;}
  .hydro .grid-line{stroke:rgba(243,241,233,.14);stroke-width:1;}
  .hydro .axis-txt{font-family:"IBM Plex Mono",monospace;font-size:11px;fill:rgba(243,241,233,.55);}
  .hydro .data-line{fill:none;stroke:var(--earth-300);stroke-width:2.4;stroke-linejoin:round;stroke-linecap:round;}
  .hydro .dot{fill:var(--paper);}
  .hydro .marker{stroke:rgba(243,241,233,.5);stroke-width:1;stroke-dasharray:3 4;}
  .hydro .marker-txt{font-family:"IBM Plex Mono",monospace;font-size:10.5px;fill:var(--paper);letter-spacing:.02em;}
  .chart-foot{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:22px;padding-top:20px;border-top:1px solid rgba(243,241,233,.16);}
  .stat .num{font-family:var(--f-display);font-size:2rem;font-weight:600;color:var(--earth-300);line-height:1;}
  .stat .cap{font-family:var(--f-mono);font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;color:rgba(243,241,233,.6);margin-top:8px;line-height:1.4;}
  .temoin-note{margin-top:44px;border-left:2px solid var(--earth);padding:6px 0 6px 24px;max-width:70ch;}
  .temoin-note p{font-size:1.05rem;color:var(--ink-soft);margin:0;}

  /* draw animation for hydrograph */
  .js .hydro .data-line{stroke-dasharray:100;stroke-dashoffset:100;}
  .js .hydro .dot,.js .hydro .marker,.js .hydro .marker-txt{opacity:0;}
  .hydro.drawn .data-line{stroke-dashoffset:0;transition:stroke-dashoffset 1.9s cubic-bezier(.65,0,.35,1);}
  .hydro.drawn .dot{opacity:1;transition:opacity .5s ease;}
  .hydro.drawn .dot{transition-delay:calc(var(--d) * 1s);}
  .hydro.drawn .marker,.hydro.drawn .marker-txt{opacity:1;transition:opacity .6s ease 1.5s;}

  /* ---------- Terrains ---------- */
  #terrains .eyebrow{color:var(--earth-300);}
  #terrains .eyebrow::before{background:var(--earth-300);}
  #terrains .section-head .lede{color:rgba(243,241,233,.78);}
  .terrains-grid{display:grid;grid-template-columns:1.4fr 1fr;gap:24px;}
  .terrain{border:1px solid var(--paper-line);border-radius:3px;padding:34px;display:flex;flex-direction:column;min-height:230px;}
  .terrain.active{background:rgba(243,241,233,.05);}
  .terrain .status{font-family:var(--f-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--earth-300);display:flex;align-items:center;gap:9px;margin-bottom:20px;}
  .terrain .status .pulse{width:8px;height:8px;border-radius:50%;background:var(--earth-300);}
  .terrain h3{font-size:1.9rem;color:var(--paper);margin-bottom:12px;}
  .terrain p{color:rgba(243,241,233,.72);font-size:1rem;margin:0;}
  .terrain .coord{margin-top:auto;padding-top:22px;font-family:var(--f-mono);font-size:11px;letter-spacing:.05em;color:rgba(243,241,233,.5);}
  .terrain.muted{border-style:dashed;justify-content:center;color:rgba(243,241,233,.6);}
  .terrain.muted h3{color:rgba(243,241,233,.85);font-size:1.4rem;}

  /* ---------- Soutenir ---------- */
  .soutenir-grid{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:start;}
  .soutenir-body p{font-size:1.14rem;color:var(--ink-soft);max-width:48ch;}
  .give-list{margin:0 0 26px;border-top:1px solid var(--line);}
  .give{display:grid;grid-template-columns:auto 1fr;gap:22px;align-items:baseline;padding:18px 0;border-bottom:1px solid var(--line);}
  .give .amt{font-family:var(--f-display);font-weight:600;font-size:1.5rem;color:var(--earth);white-space:nowrap;}
  .give .what{color:var(--ink-soft);font-size:.98rem;}
  .give-actions{display:flex;flex-wrap:wrap;gap:14px;align-items:center;margin-top:8px;}
  .legal-note{font-family:var(--f-mono);font-size:11.5px;line-height:1.7;letter-spacing:.02em;color:var(--ink-soft);margin-top:26px;padding-top:20px;border-top:1px solid var(--line);}

  /* ---------- Footer ---------- */
  footer{background:var(--water-700);color:rgba(243,241,233,.8);padding:76px 0 34px;}
  .foot-top{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:40px;padding-bottom:52px;border-bottom:1px solid rgba(243,241,233,.14);}
  .foot-brand .name{font-family:var(--f-display);font-size:26px;font-weight:600;color:var(--paper);}
  .foot-brand .name .amp{color:var(--earth-300);font-style:italic;}
  .foot-brand .tag{font-family:var(--f-mono);font-size:10px;letter-spacing:.2em;text-transform:uppercase;margin-top:10px;color:rgba(243,241,233,.55);}
  .foot-brand .accroche{font-family:var(--f-display);font-style:italic;font-size:1.15rem;color:rgba(243,241,233,.75);margin-top:22px;max-width:24ch;}
  .foot-col h4{font-family:var(--f-mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--earth-300);margin:0 0 18px;font-weight:500;}
  .foot-col a,.foot-col span{display:block;text-decoration:none;color:rgba(243,241,233,.72);font-size:14.5px;margin-bottom:11px;transition:color .15s ease;}
  .foot-col a:hover{color:var(--paper);}
  .foot-bottom{display:flex;flex-wrap:wrap;justify-content:space-between;gap:14px;padding-top:26px;font-family:var(--f-mono);font-size:11.5px;letter-spacing:.03em;color:rgba(243,241,233,.5);}

  /* ---------- Reveal ---------- */
  .js .reveal{opacity:0;transform:translateY(16px);transition:opacity .7s ease,transform .7s ease;}
  .js .reveal.in{opacity:1;transform:none;}

  /* ---------- Responsive ---------- */
  @media(max-width:920px){
    .mission-grid,.temoin-grid,.soutenir-grid{grid-template-columns:1fr;gap:44px;}
    .mandat-grid,.terrains-grid{grid-template-columns:1fr;}
    .nav-links{display:none;}
  }
  @media(max-width:560px){
    body{font-size:16px;}
    .wrap{padding:0 20px;}
    section{padding:74px 0;}
    .hero-inner{padding:80px 0 90px;}
    .panel{padding:30px;}
    .chart-foot{grid-template-columns:1fr;}
    .foot-top{grid-template-columns:1fr 1fr;gap:34px;}
    .nav-cta .btn{padding:12px 16px;font-size:14px;}
    .brand .tag{display:none;}
  }

  @media(prefers-reduced-motion:reduce){
    html{scroll-behavior:auto;}
    .js .reveal{opacity:1;transform:none;transition:none;}
    .hydro .data-line{stroke-dasharray:none!important;stroke-dashoffset:0!important;}
    .hydro .dot,.hydro .marker,.hydro .marker-txt{opacity:1!important;transition:none!important;}
    *{animation:none!important;}
  }

  a:focus-visible,.btn:focus-visible{outline:2px solid var(--earth);outline-offset:3px;border-radius:2px;}
  .hero a:focus-visible,#terrains a:focus-visible{outline-color:var(--earth-300);}

  /* =========================================================
     Sélecteur de langue (en-tête) — ajout multi-pages
     ========================================================= */
  .lang-switch{display:inline-flex;align-items:center;gap:1px;font-family:var(--f-mono);font-size:12px;letter-spacing:.06em;}
  .lang-switch a{
    text-decoration:none;color:var(--ink-soft);
    padding:5px 8px;border-radius:2px;line-height:1;
    transition:color .15s ease,background .15s ease;
  }
  .lang-switch a:hover{color:var(--ink);}
  .lang-switch a[aria-current="true"]{color:var(--ink);background:var(--paper-3);font-weight:600;}
  .lang-switch .sep{color:var(--line);padding:0 1px;}
  @media(max-width:560px){
    .lang-switch{font-size:11.5px;}
    .lang-switch a{padding:5px 6px;}
  }

  /* =========================================================
     Pages internes (mentions légales, confidentialité…)
     ========================================================= */
  .page-hero{background:var(--paper-2);border-bottom:1px solid var(--line-soft);}
  .page-hero .wrap{padding-top:72px;padding-bottom:60px;}
  .page-hero .eyebrow{margin-bottom:18px;}
  .page-hero h1{font-size:clamp(2.2rem,5vw,3.4rem);max-width:20ch;color:var(--ink);}
  .page-hero .updated{
    font-family:var(--f-mono);font-size:11.5px;letter-spacing:.06em;
    color:var(--ink-soft);margin-top:22px;
  }
  .doc{padding:76px 0 96px;}
  .doc .wrap{max-width:760px;}
  .doc-section{padding:0 0 8px;margin-bottom:40px;}
  .doc-section + .doc-section{border-top:1px solid var(--line-soft);padding-top:40px;}
  .doc h2{
    font-family:var(--f-display);font-size:1.5rem;font-weight:600;
    letter-spacing:-.01em;margin:0 0 18px;color:var(--ink);
    display:flex;align-items:baseline;gap:14px;
  }
  .doc h2 .idx{
    font-family:var(--f-mono);font-size:12px;font-weight:500;letter-spacing:.05em;
    color:var(--earth);flex:0 0 auto;transform:translateY(-2px);
  }
  .doc h3{font-family:var(--f-display);font-size:1.12rem;font-weight:600;margin:26px 0 10px;color:var(--ink);}
  .doc p{color:var(--ink-soft);font-size:1.03rem;line-height:1.7;margin:0 0 14px;}
  .doc a[href]{color:var(--water);text-decoration:underline;text-underline-offset:2px;text-decoration-thickness:1px;}
  .doc a[href]:hover{color:var(--water-700);}
  .doc ul{margin:0 0 16px;padding:0;list-style:none;}
  .doc ul li{position:relative;padding:7px 0 7px 22px;color:var(--ink-soft);font-size:1.03rem;line-height:1.6;border-bottom:1px solid var(--line-soft);}
  .doc ul li:last-child{border-bottom:none;}
  .doc ul li::before{content:"";position:absolute;left:0;top:1.05em;width:6px;height:6px;background:var(--earth);}
  .doc .placeholder{color:var(--water);font-style:italic;}
  /* Bloc d'identité (éditeur / hébergeur) */
  .idcard{border:1px solid var(--line);border-radius:3px;padding:26px 28px;margin:0 0 16px;background:var(--paper);}
  .idcard dl{margin:0;display:grid;grid-template-columns:auto 1fr;gap:10px 24px;}
  .idcard dt{font-family:var(--f-mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--earth);white-space:nowrap;padding-top:3px;}
  .idcard dd{margin:0;color:var(--ink);font-size:1.02rem;line-height:1.5;}
  .doc-back{margin-top:8px;}
  .doc-back a{
    display:inline-flex;align-items:center;gap:8px;text-decoration:none;
    font-family:var(--f-mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase;
    color:var(--ink-soft);transition:color .15s ease,gap .15s ease;
  }
  .doc-back a:hover{color:var(--ink);gap:12px;}
  .doc-toc{
    font-family:var(--f-mono);font-size:12px;letter-spacing:.03em;
    border-left:2px solid var(--earth);padding:4px 0 4px 20px;margin:0 0 44px;
  }
  .doc-toc a{display:block;color:var(--ink-soft);text-decoration:none;padding:5px 0;transition:color .15s ease;}
  .doc-toc a:hover{color:var(--water);}
  @media(max-width:560px){
    .idcard dl{grid-template-columns:1fr;gap:3px 0;}
    .idcard dt{padding-top:12px;}
    .idcard dd{padding-bottom:6px;}
  }

  /* Décalage d'ancrage pour l'en-tête collant (pages internes) */
  .doc-section{scroll-margin-top:96px;}

  /* =========================================================
     Bandeau d'avertissement — contenu fictif (CTF)
     ========================================================= */
  .ctf-notice{background:var(--ink);border-top:2px solid var(--earth);}
  .ctf-notice .wrap{
    display:flex;gap:16px 22px;align-items:baseline;flex-wrap:wrap;
    padding-top:18px;padding-bottom:22px;
  }
  .ctf-notice .label{
    font-family:var(--f-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;
    color:var(--earth-300);white-space:nowrap;flex:0 0 auto;
    display:inline-flex;align-items:center;gap:8px;
  }
  .ctf-notice .label::before{content:"";width:7px;height:7px;background:var(--earth-300);transform:rotate(45deg);}
  .ctf-notice p{
    margin:0;flex:1 1 320px;max-width:110ch;
    font-size:12.5px;line-height:1.6;letter-spacing:.01em;
    color:rgba(243,241,233,.62);
  }
