  @font-face { font-family:'TXC Pearl'; src:url('/txc-pearl.woff2') format('woff2'); font-weight:400; font-style:normal; font-display:swap; }
  @font-face { font-family:'Inter Tight'; src:url('/inter-tight.woff2') format('woff2'); font-weight:300 500; font-style:normal; font-display:swap; }

  :root {
    color-scheme: dark;
    --fond:#08090C;
    --ligne:rgba(255,255,255,.14);
    --ligne-f:rgba(255,255,255,.28);
    --blanc:#FFFFFF;
    --gris:rgba(255,255,255,.68);
    --gris-d:rgba(255,255,255,.52);
    --bleu:#2353E0;
    --ciel:#9CC4E4;
    --pearl:'TXC Pearl','Inter Tight',system-ui,sans-serif;
    --corps:'Inter Tight',-apple-system,BlinkMacSystemFont,system-ui,sans-serif;
  }

  * { margin:0; padding:0; box-sizing:border-box; -webkit-tap-highlight-color:transparent; }
  html { -webkit-text-size-adjust:100%; }
  body { background:var(--fond); color:var(--blanc); font-family:var(--corps); font-size:17px; font-weight:300; line-height:1.6; letter-spacing:-.006em; -webkit-font-smoothing:antialiased; overflow-x:hidden; font-synthesis:none; }
  img { display:block; max-width:100%; height:auto; border-radius:10px; }
  a { color:inherit; }
  .wrap { max-width:1180px; margin:0 auto; padding:0 32px; }
  @media (max-width:640px) { .wrap { padding:0 20px; } }

  /* TXC Pearl : une seule graisse, toujours en capitales espacées */
  .eti, h1, h2, h3, .these, .logo, .piliers dt { font-family:var(--pearl); font-weight:400; text-transform:uppercase; }
  .eti { font-size:12.5px; letter-spacing:.14em; color:var(--gris); display:inline-flex; align-items:center; gap:10px; }
  .eti::before { content:''; width:16px; height:1px; background:var(--ciel); }
  h1 { font-size:clamp(36px,6.2vw,84px); line-height:.98; letter-spacing:.035em; margin-top:24px; }
  h2 { font-size:clamp(28px,4.2vw,56px); line-height:1; letter-spacing:.04em; margin-top:20px; max-width:20ch; }
  h3 { font-size:15px; letter-spacing:.12em; line-height:1.3; }
  p + p { margin-top:14px; }
  .gris { color:var(--gris); }

  /* bandeau */
  .haut { display:flex; align-items:center; justify-content:space-between; padding-block:22px; border-bottom:1px solid var(--ligne); }
  .logo { font-size:15px; letter-spacing:.18em; text-decoration:none; }
  .raccourci { font-size:14px; color:var(--gris); text-decoration:none; border-bottom:1px solid var(--ligne-f); padding-bottom:2px; }
  .raccourci:hover { color:var(--blanc); }

  /* le bouton : la seule couleur de la page */
  .cta { display:inline-block; background:var(--bleu); color:var(--blanc); text-decoration:none; font-weight:500; font-size:17px; padding:18px 30px; border-radius:6px; transition:transform .15s ease; }
  .cta:hover { transform:translateY(-2px); }
  .cta:focus-visible, .raccourci:focus-visible, summary:focus-visible { outline:2px solid var(--ciel); outline-offset:3px; }
  .sous-cta { display:block; margin-top:14px; font-size:14.5px; color:var(--gris-d); }

  section { padding:96px 0; border-top:1px solid var(--ligne); }
  @media (max-width:640px) { section { padding:68px 0; } }
  .deux { display:grid; grid-template-columns:1fr 1fr; gap:64px; }
  @media (max-width:900px) { .deux { grid-template-columns:1fr; gap:40px; } }

  /* 1. promesse */
  .promesse { display:grid; grid-template-columns:1.15fr .85fr; gap:64px; align-items:center; padding-block:64px 88px; }
  .promesse .lede { font-size:clamp(17px,1.5vw,20px); color:var(--gris); max-width:44ch; margin:28px 0 34px; }
  .promesse img { width:100%; aspect-ratio:4/5; object-fit:cover; object-position:50% 20%; }
  .compte { margin-top:30px; font-size:14.5px; color:var(--gris-d); display:flex; gap:12px; align-items:center; }
  .compte::before { content:'■ ■ ■' / ''; font-size:9px; letter-spacing:2px; color:var(--ciel); flex-shrink:0; }
  @media (max-width:900px) { .promesse { grid-template-columns:1fr; gap:44px; padding-block:44px 68px; } }

  /* 2. problème */
  .paroles { margin-top:22px; }
  .paroles blockquote { font-size:clamp(20px,2.2vw,28px); line-height:1.3; padding:20px 0; border-bottom:1px solid var(--ligne); }
  .paroles blockquote:first-child { border-top:1px solid var(--ligne); }
  .essais { list-style:none; margin:18px 0 40px; }
  .essais li { padding:12px 0; border-bottom:1px solid var(--ligne); color:var(--gris); }
  .probleme-grille { margin-top:56px; }
  .these { font-size:clamp(30px,5vw,68px); line-height:1; letter-spacing:.035em; margin-top:80px; max-width:18ch; }
  .apres-these { margin-top:22px; font-size:clamp(17px,1.5vw,20px); }

  /* 3. preuve */
  .aurelien { display:grid; grid-template-columns:minmax(0,380px) 1fr; gap:64px; margin-top:52px; align-items:start; }
  figcaption { margin-top:12px; font-size:13.5px; color:var(--gris-d); }
  .recit { list-style:none; }
  .recit li { padding:18px 0; border-bottom:1px solid var(--ligne); font-size:clamp(17px,1.6vw,20px); color:var(--gris); }
  .recit li:first-child { border-top:1px solid var(--ligne); }
  .recit .fort { color:var(--blanc); font-weight:500; }
  @media (max-width:900px) { .aurelien { grid-template-columns:1fr; gap:36px; } .aurelien figure { max-width:420px; } }
  .cartes { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--ligne); border:1px solid var(--ligne); border-radius:10px; overflow:hidden; margin:64px 0 44px; }
  .cartes article { background:var(--fond); padding:30px 28px 34px; }
  .cartes h3 { color:var(--ciel); margin-bottom:16px; }
  .cartes p { font-size:16.5px; }
  @media (max-width:900px) { .cartes { grid-template-columns:1fr; } }

  /* qui je suis */
  .fondateur p { font-size:clamp(17px,1.5vw,19px); color:var(--gris); }
  .fondateur p:last-child { color:var(--blanc); font-weight:500; }

  /* 4. passerelle */
  .etapes { margin-top:52px; border-top:1px solid var(--ligne); }
  .etape { display:grid; grid-template-columns:280px 1fr; gap:48px; padding:44px 0; border-bottom:1px solid var(--ligne); }
  @media (max-width:900px) { .etape { grid-template-columns:1fr; gap:18px; } }
  .points { list-style:none; margin-top:14px; }
  .points li { padding:9px 0 9px 22px; position:relative; color:var(--gris); }
  .points li::before { content:''; position:absolute; left:0; top:19px; width:8px; height:8px; background:var(--ciel); }
  .piliers { margin:22px 0 30px; }
  .piliers div { display:grid; grid-template-columns:150px 1fr; gap:16px; padding:14px 0; border-top:1px solid var(--ligne); }
  .piliers dt { letter-spacing:.1em; font-size:14px; padding-top:4px; }
  .piliers dd { color:var(--gris); }
  @media (max-width:640px) { .piliers div { grid-template-columns:1fr; gap:4px; } }
  .prix { font-size:clamp(22px,2.6vw,32px); font-weight:500; line-height:1.25; }
  .garantie { margin-top:56px; padding:36px 32px; border:1px solid var(--ligne-f); border-radius:10px; max-width:760px; }
  .garantie h3 { color:var(--ciel); margin-bottom:14px; }

  /* 5. demande */
  .faq details { border-bottom:1px solid var(--ligne); }
  .faq details:first-child { border-top:1px solid var(--ligne); }
  .faq summary { list-style:none; cursor:pointer; padding:22px 44px 22px 0; font-weight:500; font-size:18px; position:relative; }
  .faq summary::-webkit-details-marker { display:none; }
  .faq summary::after { content:'+'; position:absolute; right:4px; top:16px; font-size:26px; font-weight:300; color:var(--gris); transition:transform .2s; }
  .faq details[open] summary::after { transform:rotate(45deg); }
  .faq details p { padding:0 0 24px; color:var(--gris); max-width:60ch; }
  .final { text-align:center; padding:128px 0; }
  .final h2 { margin:0 auto; max-width:16ch; font-size:clamp(34px,6vw,84px); }
  .final .lede { color:var(--gris); max-width:46ch; margin:28px auto 36px; font-size:clamp(17px,1.5vw,20px); }

  /* pied de page */
  footer { border-top:1px solid var(--ligne); padding:40px 0 48px; font-size:14px; color:var(--gris-d); }
  footer a { color:var(--gris); }
  .mentions summary { cursor:pointer; margin-top:14px; width:max-content; }
  .mentions p { margin-top:10px; max-width:70ch; }

  /* barre du téléphone */
  .barre { display:none; }
  @media (max-width:820px) {
    body { padding-bottom:84px; }
    .barre { display:flex; position:fixed; left:0; right:0; bottom:0; z-index:10; align-items:center; justify-content:space-between; gap:12px; padding:12px 20px calc(12px + env(safe-area-inset-bottom)); background:var(--fond); border-top:1px solid var(--ligne); font-size:14.5px; color:var(--gris); }
    .barre .cta { padding:13px 22px; font-size:16px; }
  }

  /* mouvement : CSS seul ; sans prise en charge, tout s'affiche */
  @media (prefers-reduced-motion: no-preference) {
    @supports (animation-timeline: view()) {
      .apparait { animation:monte linear both; animation-timeline:view(); animation-range:entry 0% cover 22%; }
      @keyframes monte { from { opacity:0; transform:translateY(24px); } to { opacity:1; transform:none; } }
      @media (max-width:820px) {
        .barre { animation:barre linear both; animation-timeline:scroll(root); animation-range:0 420px; }
        @keyframes barre { from { opacity:0; transform:translateY(100%); } to { opacity:1; transform:none; } }
      }
    }
  }
  @media (prefers-reduced-motion: reduce) { .cta, .faq summary::after { transition:none; } }

  /* confirmation : titre, vidéo en 16:9 */
  .confirme { padding-block:64px 88px; }
  .confirme .lede { font-size:clamp(17px,1.5vw,20px); color:var(--gris); max-width:44ch; margin:28px 0 34px; }
  .confirme h2 { margin-top:48px; }
  @media (max-width:640px) { .confirme { padding-block:44px 68px; } }
  .video { aspect-ratio:16/9; max-width:900px; margin-top:44px; border-radius:10px; overflow:hidden; background:#000; }
  .video iframe { display:block; width:100%; height:100%; border:0; }

  /* désinscription : le bouton est un <button> */
  button.cta { border:0; font-family:inherit; cursor:pointer; }
  .cta[hidden] { display:none; }
  .cta:disabled { opacity:.5; pointer-events:none; }
