  @font-face{font-family:"Inter var";font-style:normal;font-weight:400 800;font-display:swap;
    src:url("/fonts/inter-var-latin.woff2") format("woff2");
    unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
  @font-face{font-family:"Inter Tight";font-style:normal;font-weight:400 800;font-display:swap;
    src:url("/fonts/inter-tight-var-latin.woff2") format("woff2");
    unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
  @font-face{font-family:"JetBrains Mono";font-style:normal;font-weight:400 600;font-display:swap;
    src:url("/fonts/jetbrains-mono-var-latin.woff2") format("woff2");
    unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
  :root{
    /* Palette AB2 du client Neural ICE (0.63.0, validée le 30.09.2026) : graphite
       presque neutre, un seul accent, le bleu glace. Les anciens jetons « gold »
       pointent désormais vers l'accent glace : plus de second accent vif. */
    --bg:#0d0e11; --bg-2:#111215; --surface:#151619; --surface-2:#1d1f22;
    --bg-rgb:13,14,17;
    --ice:#7dccf8; --ice-soft:#9cdaff; --ice-deep:#274c61;
    --ice-rgb:125,204,248;
    --gold:#7dccf8; --gold-soft:#bae5ff; --gold-deep:#5095bb;
    --gold-rgb:125,204,248;
    --accent-ink:#081018;
    --line:#282a2e; --line-2:#45484d;
    --text:#f1f4f6; --muted:#aeb1b6; --faint:#969aa0;
    --ok:#76c876;
    /* fonds animés, palette Glace : trait des particules et impulsions */
    --bg-ink:#b6c6d7; --bg-acc:#7dccf8;
    --display:"Inter Tight","Inter var",Inter,system-ui,sans-serif;
    --sans:"Inter var",Inter,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
    --mono:"JetBrains Mono",ui-monospace,"SF Mono",Menlo,Consolas,monospace;
    --w:min(1160px,92vw);
    --ease:cubic-bezier(.22,.61,.36,1);
  }
  *{box-sizing:border-box;margin:0;padding:0}
  /* Ancres sous le chrome fixe (bandeau partenaire + header 66px) :
     scroll-padding n'ajoute aucun trou au chargement sans #hash. */
  html{scroll-behavior:smooth;scroll-padding-top:calc(var(--strip) + 66px + 1.25rem)}
  body{background:var(--bg);color:var(--text);font-family:var(--sans);line-height:1.6;
    -webkit-font-smoothing:antialiased;overflow-x:hidden;letter-spacing:-.01em;font-weight:450}
  ::selection{background:rgba(var(--gold-rgb),.28);color:#fff}
  a{color:inherit;text-decoration:none}
  .wrap{width:var(--w);margin-inline:auto}
  .mono{font-family:var(--mono);font-feature-settings:"tnum"}
  .eyebrow{font-family:var(--mono);font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;
    color:var(--gold);display:inline-flex;align-items:center;gap:.65rem}
  .eyebrow::before{content:"";width:22px;height:1px;background:linear-gradient(90deg,transparent,var(--gold))}
  .eyebrow.ice{color:var(--ice)}.eyebrow.ice::before{background:linear-gradient(90deg,transparent,var(--ice))}

  /* AB2 : boutons et champs 6px, cartes 8px, photos héros 12px, puces 4px */
  .btn{display:inline-flex;align-items:center;justify-content:center;gap:.55rem;font-size:.9rem;font-weight:600;
    padding:.72rem 1.3rem;border-radius:6px;line-height:1;transition:background .2s var(--ease),color .2s var(--ease);white-space:nowrap;cursor:pointer;border:0}
  .btn-ghost{border:1px solid var(--line-2);color:var(--text);background:transparent}
  .btn-ghost:hover{border-color:var(--ice);background:rgba(var(--ice-rgb),.06)}
  /* Primary CTA: same object everywhere (header, hero, forms). Flat gold.
     Equal vertical padding + line-height 1; +1px padding-top for Inter optical center. */
  .btn-gold{background:var(--gold);color:var(--accent-ink);box-shadow:none;border-radius:6px;
    min-height:44px;padding:.72rem 1.35rem;padding-top:calc(.72rem + 1px);line-height:1;box-sizing:border-box}
  .btn-gold:hover{background:var(--gold-soft);box-shadow:none;transform:none}
  a:focus-visible,button:focus-visible{outline:2px solid var(--ice);outline-offset:3px}


  /* ---------- mention NVIDIA Inception ---------- */
  /* Le bandeau fixe au-dessus du header a été retiré le 23.09.2026 : la marque
     apparaissait trois fois sur la homepage et le bandeau repoussait le hero.
     La mention vit désormais dans le hero de la homepage (badge + texte, motif
     « Examples of Usage » des guidelines) et en texte dans le pied de page.
     --strip reste défini à 0 : header, burger et ancres le consomment encore. */
  :root{--strip:0px}
  .burger{top:calc(var(--strip) + 13px)}
  .hero-sub{padding:calc(66px + var(--strip) + 4rem) 0 4rem}

  /* ---------- header ---------- */
  header{position:fixed;inset:var(--strip) 0 auto;z-index:50;height:66px;display:flex;align-items:center;
    background:rgba(var(--bg-rgb),.92);border-bottom:1px solid transparent;
    transition:border-color .4s,background .4s}
  header.scrolled{border-bottom-color:var(--line);background:var(--bg)}
  header .wrap{display:flex;align-items:center;justify-content:space-between;gap:2rem}
  .brand{display:flex;align-items:center;gap:.7rem;font-weight:600;letter-spacing:.03em;font-size:1.02rem}
  .brand img{height:36px;width:auto;display:block}
  header .brand img{height:48px}
  .brand b{font-weight:800}.brand .ice{color:var(--ice)}
  nav.links{--ng:clamp(1.1rem,1.5vw,1.2rem);display:flex;align-items:center;flex-wrap:nowrap;white-space:nowrap;gap:var(--ng);font-size:.86rem;color:var(--muted)}
  nav.links a{transition:color .25s;position:relative}
  nav.links a:hover{color:var(--text)}
  .hdr-cta{display:flex;align-items:center;gap:.9rem}
  .hdr-cta .btn{min-height:44px;padding:.55rem 1.15rem;padding-top:calc(.55rem + 1px);font-size:.8rem;border-radius:6px;
    box-shadow:none;line-height:1;box-sizing:border-box}
  @media(max-width:1280px){nav.links{--ng:1.2rem;font-size:.82rem}}
  /* Seuil fixe abaissé de 1260 à 980 px (23.09.2026) : entre les deux, c'est la
     mesure réelle de main-v9.js / consulting-v9.js (.nav-compact) qui décide. À
     1250 px le menu anglais tenait avec ~20 px de marge mais était masqué d'office. */
  @media(max-width:980px){nav.links{display:none}}
  @media(max-width:620px){
    .brand img{height:31px}
    header .brand img{height:34px}
    .hdr-cta{gap:.55rem}
    .hdr-cta .btn{font-size:.75rem;padding:.5rem .95rem;padding-top:calc(.5rem + 1px);min-height:44px}
  }

  /* ---------- hero ---------- */
  /* static fallback glow, painted before (or without) the canvas: no bare flash */
  /* maquette: calmer hero: promise + CTA without a full-viewport stack */
  .hero{position:relative;min-height:0;display:flex;align-items:center;
    padding-top:calc(66px + var(--strip) + clamp(2.5rem,5vw,4rem));padding-bottom:clamp(2.5rem,5vw,4rem);overflow:hidden;
    background:radial-gradient(56% 44% at 68% 30%,rgba(var(--ice-rgb),.09),transparent 62%),
      radial-gradient(48% 52% at 28% 72%,rgba(var(--gold-rgb),.07),transparent 60%)}
  #aurora{position:absolute;inset:0;width:100%;height:100%;display:block;z-index:0;
    opacity:0;transition:opacity .9s var(--ease)}
  #aurora.on{opacity:1}
  .hero::after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
    background:radial-gradient(130% 100% at 70% 20%,transparent 42%,rgba(var(--bg-rgb),.5) 76%,var(--bg) 100%)}
  .hero .wrap{position:relative;z-index:2}
  .hero-inner{min-width:0}
  .hero .tag{font-size:clamp(2.2rem,5.2vw,3.6rem);margin-top:0}
  .hero .lede{margin-top:1.2rem;max-width:36em;font-size:clamp(1rem,1.5vw,1.18rem)}
  .hero-cta{margin-top:1.8rem;align-items:center}
  .hero-meta{margin-top:1.8rem;gap:1.2rem 1.8rem}
  .link-text{color:var(--muted);font-size:.95rem;font-weight:500;border-bottom:1px solid var(--line-2);
    padding-bottom:1px;transition:color .2s,border-color .2s}
  .link-text:hover{color:var(--ice);border-bottom-color:rgba(var(--ice-rgb),.5)}
  @media(max-width:620px){
    .hero .eyebrow{display:block;width:100%;max-width:100%;font-size:.62rem;line-height:1.6;
      letter-spacing:.16em;white-space:normal;overflow-wrap:anywhere}
    .hero .eyebrow::before{display:none}
  }
  /* hero photo: product in use, right of the title on desktop */
  .hero .wrap{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(220px,min(38vw,400px));
    gap:clamp(1.4rem,3.5vw,2.8rem);align-items:center}
  .hero-inner{max-width:none;min-width:0}
  .hero-photo{display:block;width:100%;aspect-ratio:1/1;height:auto;object-fit:cover;
    border-radius:12px;border:1px solid var(--line)}
  @media(max-width:900px){
    .hero .wrap{grid-template-columns:1fr}
    .hero-photo{max-width:min(100%,380px);margin:1.2rem auto 0}
  }

  /* "how it works" schematic (the product story in one diagram) */
  .howgrid{display:grid;grid-template-columns:minmax(0,1fr) minmax(340px,460px);
    gap:clamp(2rem,4vw,4rem);align-items:center;margin-top:3rem}
  .hstep{padding:1.3rem 0;border-top:1px solid var(--line)}
  .hstep:first-child{border-top:0;padding-top:0}
  .hstep .k{font-family:var(--mono);font-size:.72rem;letter-spacing:.12em;color:var(--ice);text-transform:uppercase}
  .hstep h3{font-size:1.15rem;font-weight:650;margin:.55rem 0 .45rem;color:var(--text)}
  .hstep p{font-size:.93rem;color:var(--muted);line-height:1.58}
  .how-photo{display:block;width:100%;max-width:460px;aspect-ratio:1/1;height:auto;
    object-fit:cover;margin:0 auto;border-radius:12px;border:1px solid var(--line)}
  @keyframes vpulse{0%,100%{opacity:.35}50%{opacity:1}}
  @keyframes vflow{to{stroke-dashoffset:-9}}
  @media(max-width:980px){.howgrid{grid-template-columns:1fr}}

  /* "in plain terms" explainer */
  .plain{display:grid;grid-template-columns:repeat(3,1fr);gap:1.1rem;margin-top:3rem}
  .plaincard{background:linear-gradient(180deg,var(--surface),var(--bg-2));border:1px solid var(--line);
    border-radius:8px;padding:2rem 1.8rem;transition:.4s var(--ease)}
  .plaincard:hover{transform:translateY(-3px);border-color:var(--line-2)}
  .plaincard svg{width:100%;height:110px;display:block;margin-bottom:1.4rem}
  .plaincard svg .ln{stroke:var(--line-2);fill:none}
  .plaincard svg .faint-ln{stroke:var(--faint);fill:none}
  .plaincard svg .ice-ln{stroke:var(--ice);fill:none}
  .plaincard svg .gold-ln{stroke:var(--gold);fill:none}
  .plaincard svg .lbl{font-family:var(--mono);font-size:9px;letter-spacing:.12em;fill:var(--faint);text-transform:uppercase}
  .plaincard .k{font-family:var(--mono);font-size:.72rem;letter-spacing:.12em;color:var(--gold);text-transform:uppercase}
  .plaincard h3{font-size:1.2rem;font-weight:650;margin:1rem 0 .6rem;color:var(--text)}
  .plaincard p{font-size:.94rem;color:var(--muted);line-height:1.58}
  @media(max-width:900px){.plain{grid-template-columns:1fr}}
  .tag{font-size:clamp(2.9rem,7.4vw,5.6rem);line-height:1;font-weight:800;letter-spacing:-.04em;
    text-wrap:balance;margin:1.5rem 0 0}
  .tag .cool{background:linear-gradient(96deg,var(--ice-soft),var(--ice) 60%,#bae5ff);
    -webkit-background-clip:text;background-clip:text;color:transparent}
  .lede{font-size:clamp(1.05rem,1.7vw,1.32rem);color:var(--muted);max-width:33em;margin-top:1.7rem;line-height:1.62}
  .lede b{color:var(--text);font-weight:600}
  .lede .g{color:var(--gold-soft);font-weight:600}
  .hero-cta{display:flex;gap:.9rem 1.4rem;margin-top:1.8rem;flex-wrap:wrap;align-items:center}
  .hero-meta{display:flex;gap:1.2rem 1.8rem;margin-top:1.8rem;flex-wrap:wrap;font-size:.8rem;color:var(--faint)}
  .hero-meta span{display:flex;align-items:center;gap:.5rem}
  .hero-meta b{color:var(--muted);font-weight:500}
  .dot{width:6px;height:6px;border-radius:50%;background:var(--ok)}

  /* reveal */
  .rise{opacity:0;transform:translateY(20px);transition:opacity .9s var(--ease),transform .9s var(--ease)}
  .rise.in{opacity:1;transform:none}
  .d1{transition-delay:.08s}.d2{transition-delay:.16s}.d3{transition-delay:.24s}.d4{transition-delay:.32s}

  /* ---------- section frame ---------- */
  .band{position:relative;padding:clamp(3rem,6vw,5rem) 0;border-top:1px solid var(--line)}
  .band-head{max-width:56ch}
  .band-head h2{font-size:clamp(1.7rem,3.2vw,2.4rem);font-weight:750;letter-spacing:-.03em;
    line-height:1.12;text-wrap:balance;margin:.85rem 0 0}
  .band-head p{color:var(--muted);margin-top:.9rem;font-size:1rem;max-width:50ch}
  .band.band-tight{padding:clamp(2.2rem,4vw,3.2rem) 0}
  .team-lines{display:flex;flex-direction:column;gap:1rem;margin-top:1.8rem}
  .team-line{display:flex;flex-wrap:wrap;gap:.35rem 1rem;align-items:baseline;padding:1rem 0;
    border-top:1px solid var(--line);color:var(--muted);font-size:.95rem;line-height:1.55}
  .team-line:first-child{border-top:0;padding-top:0}
  .team-line b{color:var(--text);font-weight:650}
  .team-line .role{font-family:var(--mono);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--gold)}
  .team-line .li{color:var(--ice);border-bottom:1px solid rgba(var(--ice-rgb),.35);font-size:.82rem}
  /* #own: two ownership beats, no card slab */
  .own-split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(1.4rem,3vw,2.4rem);
    margin-top:2rem;padding-top:1.6rem;border-top:1px solid var(--line)}
  .own-beat h3{font-size:clamp(1.15rem,2vw,1.35rem);font-weight:650;letter-spacing:-.02em;
    color:var(--text);margin:0 0 .55rem}
  .own-beat p{color:var(--muted);font-size:.95rem;line-height:1.55;max-width:36ch;margin:0}
  .own-founding{margin-top:1.6rem;color:var(--muted);font-size:.9rem;line-height:1.55;max-width:62ch}
  .own-partners{margin-top:.85rem;font-size:.9rem}
  @media(max-width:720px){.own-split{grid-template-columns:1fr;gap:1.35rem}}
  .platforms{margin-top:1.6rem;display:flex;flex-wrap:wrap;gap:.7rem}
  .platforms .chip{font-family:var(--mono);font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;
    color:var(--ice);border:1px solid rgba(var(--ice-rgb),.3);border-radius:4px;padding:.45rem .95rem}

  /* stakes / individual cards */
  .stakes{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1.1rem;margin-top:3rem}
  .stake{background:linear-gradient(180deg,var(--surface),var(--bg-2));border:1px solid var(--line);
    padding:2rem 1.8rem;border-radius:8px;position:relative;transition:.4s var(--ease);overflow:hidden}
  .stake:hover{transform:translateY(-3px);border-color:var(--line-2)}
  .stake .k{font-family:var(--mono);font-size:.72rem;letter-spacing:.12em;color:var(--gold);text-transform:uppercase}
  .stake h3{font-size:1.2rem;font-weight:650;margin:1.3rem 0 .6rem;color:var(--text)}
  .stake p{font-size:.94rem;color:var(--muted);line-height:1.58}
  @media(max-width:820px){.stakes{grid-template-columns:1fr}}
  .tradeoff{font-family:var(--mono);font-size:.82rem;letter-spacing:.03em;color:var(--muted);
    max-width:64ch;line-height:1.8;margin-top:2.6rem;border-left:2px solid var(--gold-deep);padding-left:1.3rem}


  /* comparative table + shared sheet language (filet, 18px, no glow).
     Fits the wrap at laptop widths: no min-width, no horizontal scrollbar. */
  .fourth{position:relative;margin-top:3rem;overflow-x:visible;
    border:1px solid var(--line);border-radius:8px;background:var(--surface)}
  table.cmp{width:100%;table-layout:fixed;border-collapse:separate;border-spacing:0;font-size:.86rem}
  table.cmp th,table.cmp td{text-align:left;padding:.85rem .7rem;border-bottom:1px solid var(--line);
    vertical-align:middle;overflow-wrap:anywhere;word-break:normal;hyphens:manual;min-width:0}
  table.cmp thead th{font-family:var(--sans);font-size:.78rem;letter-spacing:-.01em;text-transform:none;
    color:var(--text);font-weight:600;background:var(--bg-2);line-height:1.3;white-space:normal}
  table.cmp thead th:first-child{border-radius:7px 0 0 0}
  table.cmp thead th:last-child{border-radius:0 7px 0 0}
  table.cmp tbody tr{transition:background .2s var(--ease)}
  table.cmp tbody tr:not(.us):hover{background:rgba(255,255,255,.02)}
  table.cmp tbody tr:last-child td,table.cmp tbody tr:last-child th{border-bottom:0}
  table.cmp th[scope="row"]{color:var(--muted);font-weight:550;text-align:left;white-space:normal;
    background:var(--surface);line-height:1.3}
  table.cmp thead th:first-child{background:var(--bg-2)}
  table.cmp tr.us{background:var(--surface-2)}
  table.cmp tr.us td,table.cmp tr.us th{color:var(--text);font-weight:600;border-bottom:0;
    box-shadow:inset 0 1px 0 var(--line),inset 0 -1px 0 var(--line)}
  table.cmp tr.us th[scope="row"]{color:var(--ice);background:var(--surface-2);
    box-shadow:inset 3px 0 0 var(--ice),inset 0 1px 0 var(--line),inset 0 -1px 0 var(--line)}
  table.cmp tr.us td:first-of-type{box-shadow:inset 0 1px 0 var(--line),inset 0 -1px 0 var(--line)}
  table.cmp td a{color:var(--text);border-bottom:1px solid var(--line-2);transition:color .2s,border-color .2s}
  table.cmp td a:hover{color:var(--ice);border-bottom-color:rgba(var(--ice-rgb),.5)}
  table.cmp caption.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
  .chk{color:var(--muted);font-weight:500}
  .x{color:var(--faint);font-weight:500}
  table.cmp tr.us .chk{color:var(--ice);font-weight:600}
  table.cmp tr.us .chk a{color:var(--text);font-weight:600}
  table.cmp tr.us .chk a:hover{color:var(--ice)}
  @media(max-width:720px){
    table.cmp{font-size:.78rem}
    table.cmp th,table.cmp td{padding:.7rem .45rem}
    table.cmp thead th{font-size:.7rem}
  }
  /* Sous 620 px, six colonnes coupaient les mots en plein milieu (« Workin g »).
     Chaque solution devient une carte ; le libellé de colonne vient de data-label. */
  @media(max-width:620px){
    .fourth{border:0;background:transparent;border-radius:0}
    table.cmp,table.cmp tbody,table.cmp tr,table.cmp th,table.cmp td{display:block;width:100%}
    table.cmp thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
    table.cmp tbody tr{border:1px solid var(--line);border-radius:8px;background:var(--surface);
      margin-top:.7rem;padding:.35rem 0 .55rem}
    table.cmp tbody tr:first-child{margin-top:0}
    table.cmp tbody tr.us{border-color:rgba(var(--ice-rgb),.5);background:var(--surface-2)}
    table.cmp tbody th[scope="row"],table.cmp tr.us th[scope="row"]{background:transparent;border:0;box-shadow:none;
      padding:.65rem 1.1rem .35rem;font-size:.95rem;color:var(--text)}
    table.cmp tr.us th[scope="row"]{color:var(--ice)}
    table.cmp td,table.cmp tr.us td,table.cmp tr.us td:first-of-type{display:flex;justify-content:space-between;
      align-items:baseline;gap:1rem;border:0;box-shadow:none;padding:.3rem 1.1rem;font-size:.86rem;
      overflow-wrap:normal;text-align:right}
    table.cmp td::before{content:attr(data-label);color:var(--faint);font-weight:500;text-align:left}
  }

  /* pillars */
  .feat{display:grid;grid-template-columns:repeat(2,1fr);gap:1.1rem;margin-top:3rem}
  .card{background:var(--surface);border:1px solid var(--line);
    border-radius:8px;padding:2rem;position:relative;overflow:hidden;transition:border-color .2s var(--ease),transform .2s var(--ease)}
  .card:hover{transform:translateY(-2px);border-color:var(--line-2)}
  .ico{width:46px;height:46px;border-radius:8px;display:grid;place-items:center;
    background:rgba(var(--ice-rgb),.09);border:1px solid var(--line-2);color:var(--ice)}
  .ico svg{width:22px;height:22px}
  .card h3{font-size:1.16rem;font-weight:650;margin:1.35rem 0 .55rem}
  .card p{color:var(--muted);font-size:.94rem;line-height:1.58}
  @media(max-width:820px){.feat{grid-template-columns:1fr}}

  /* AC:1 capability cards */
  .cw{display:grid;grid-template-columns:repeat(2,1fr);gap:1.1rem;margin-top:3rem}
  .cwcard{background:var(--bg-2);border:1px solid var(--line);border-radius:8px;padding:1.8rem;transition:.35s var(--ease)}
  .cwcard:hover{border-color:var(--gold-deep);transform:translateY(-3px)}
  .cwcard .role{font-family:var(--mono);font-size:.74rem;letter-spacing:.1em;color:var(--gold);text-transform:uppercase}
  .cwcard h3{font-size:1.15rem;margin:.9rem 0 .5rem;font-weight:650}
  .cwcard p{color:var(--muted);font-size:.9rem;line-height:1.55}
  @media(max-width:820px){.cw{grid-template-columns:1fr}}
  .roadnote{font-family:var(--mono);color:var(--faint);font-size:.8rem;letter-spacing:.05em;margin-top:1.6rem}

  /* spec sheet */
  .spec-badges{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:2.4rem}
  .spec-badge{display:inline-flex;align-items:center;gap:.6rem;font-family:var(--mono);font-size:.74rem;
    letter-spacing:.12em;text-transform:uppercase;color:var(--ice);border:1px solid var(--line);
    border-radius:8px;padding:.55rem 1.1rem;background:var(--surface);box-shadow:none;
    transition:border-color .2s var(--ease),background .2s var(--ease)}
  .spec-badge:hover{border-color:var(--line-2);background:var(--surface-2)}
  .spec-badge.gh{color:var(--muted);border-color:var(--line-2)}
  .spec-badge.gh:hover{color:var(--ice);border-color:var(--ice)}
  .spec-badge .d{width:7px;height:7px;border-radius:50%;background:var(--ice)}
  .spec-badge svg{width:15px;height:15px}
  .spec-list{border:1px solid var(--line);border-radius:8px;margin-top:1.6rem;overflow:hidden;background:var(--surface)}
  .spec-row{display:grid;grid-template-columns:220px 1fr;gap:1.8rem;padding:1.1rem 1.7rem;
    border-bottom:1px solid var(--line);transition:background .2s var(--ease)}
  .spec-row:last-child{border-bottom:0}
  .spec-row:hover{background:rgba(255,255,255,.02)}
  .spec-key{font-family:var(--sans);font-size:.84rem;letter-spacing:-.01em;text-transform:none;color:var(--text);font-weight:600;padding-top:2px}
  .spec-val{font-size:.93rem;color:var(--muted);line-height:1.6}
  .spec-val .today{color:var(--ice)}
  .spec-val .soon{color:var(--gold)}
  .spec-val a{color:var(--ice);border-bottom:1px solid rgba(var(--ice-rgb),.4)}
  @media(max-width:640px){.spec-row{grid-template-columns:1fr;gap:.4rem;padding:1rem 1.2rem}}
  .midcta{text-align:center;margin-top:2.8rem}

  /* spec modules: flip cards (front: the spec / back: why it matters) */
  .modhint{font-family:var(--mono);font-size:.72rem;letter-spacing:.12em;color:var(--faint);margin-top:2.2rem}
  .modgrid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.1rem;margin-top:1rem}
  @media(max-width:820px){.modgrid{grid-template-columns:1fr}}
  .mod{perspective:1200px;outline:none}
  @media(hover:none){.mod{cursor:pointer}}
  .mod-inner{position:relative;height:100%;transform-style:preserve-3d;transition:transform .7s var(--ease)}
  .mod:hover .mod-inner,.mod:focus-visible .mod-inner,.mod.flip .mod-inner{transform:rotateY(180deg)}
  .mf{border:1px solid var(--line);border-radius:8px;padding:1.5rem 1.6rem;overflow:hidden;
    display:flex;flex-direction:column;gap:.65rem;
    backface-visibility:hidden;-webkit-backface-visibility:hidden}
  .mf::before,.mf::after{content:"";position:absolute;width:13px;height:13px;pointer-events:none;opacity:.5}
  .mf::before{top:9px;left:9px;border-top:1px solid var(--ice);border-left:1px solid var(--ice)}
  .mf::after{bottom:9px;right:9px;border-bottom:1px solid var(--ice);border-right:1px solid var(--ice)}
  .mf-front{position:relative;height:100%;min-height:215px;background:linear-gradient(180deg,var(--surface),var(--bg-2))}
  .mf-back{position:absolute;inset:0;transform:rotateY(180deg);border-color:rgba(var(--ice-rgb),.35);
    background:repeating-linear-gradient(0deg,rgba(var(--ice-rgb),.03) 0 1px,transparent 1px 4px),
    linear-gradient(180deg,var(--bg-2),var(--surface))}
  .mf-back .scan{position:absolute;left:0;right:0;top:-40%;height:34%;pointer-events:none;
    background:linear-gradient(180deg,transparent,rgba(var(--ice-rgb),.09),transparent);animation:scan 2.8s linear infinite}
  @keyframes scan{to{top:110%}}
  .mod-id{font-family:var(--mono);font-size:.66rem;letter-spacing:.16em;text-transform:uppercase;
    color:var(--ice);display:flex;align-items:center;gap:.35rem .6rem;flex-wrap:wrap}
  .mod-id .st{margin-left:auto;color:var(--ok);letter-spacing:.1em;white-space:nowrap}
  .mod-id .st.soon{color:var(--gold)}
  .mf h3{font-size:1.06rem;font-weight:650;margin:.15rem 0 0}
  .mf p{color:var(--muted);font-size:.9rem;line-height:1.55;margin:0}
  .mod:focus-visible .mf{border-color:var(--ice)}
  .mod:hover .mf-back,.mod.flip .mf-back{border-color:rgba(var(--ice-rgb),.45)}

  /* pricing */
  .pricebox{margin-top:2.6rem;border:1px solid var(--line);border-radius:8px;padding:clamp(2rem,4vw,3rem);
    text-align:center;background:linear-gradient(180deg,var(--surface),var(--bg-2))}
  .pricebox .tbd{font-family:var(--mono);font-size:clamp(2rem,4vw,3rem);font-weight:700;color:var(--ice);letter-spacing:.05em}
  .pricebox p{color:var(--muted);font-size:.95rem;max-width:46ch;margin:1rem auto 0;line-height:1.65}
  .hwrow{margin-top:1.1rem;border:1px solid var(--line);border-radius:8px;padding:1.5rem 1.8rem;
    display:flex;align-items:center;justify-content:space-between;gap:1.4rem;flex-wrap:wrap;background:var(--bg-2)}
  .hwrow p{color:var(--muted);font-size:.9rem;line-height:1.55;max-width:52ch}
  .hwrow .chip{font-family:var(--mono);font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;
    color:var(--gold);border:1px solid rgba(var(--gold-rgb),.35);border-radius:4px;padding:.5rem 1rem;white-space:nowrap}

  /* team */
  .team{display:flex;flex-wrap:wrap;gap:1.1rem;margin-top:3rem}
  .tmate{flex:1 1 300px;max-width:430px;background:linear-gradient(180deg,var(--surface),var(--bg-2));
    border:1px solid var(--line);border-radius:8px;padding:2rem 1.8rem;transition:.4s var(--ease)}
  .tmate:hover{transform:translateY(-3px);border-color:var(--line-2)}
  .tmate .ava{width:64px;height:64px;border-radius:50%;display:grid;place-items:center;
    font-family:var(--mono);font-size:1.05rem;letter-spacing:.06em;color:var(--ice);
    background:rgba(var(--ice-rgb),.08);border:1px solid rgba(var(--ice-rgb),.35)}
  .tmate h3{font-size:1.15rem;font-weight:650;margin:1.2rem 0 .2rem}
  .tmate .role{font-family:var(--mono);font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--gold)}
  .tmate p{color:var(--muted);font-size:.92rem;line-height:1.6;margin-top:.85rem}
  .tmate .li{display:inline-flex;align-items:center;gap:.45rem;margin-top:1.1rem;font-size:.82rem;
    color:var(--ice);border-bottom:1px solid rgba(var(--ice-rgb),.4);padding-bottom:1px;transition:color .2s}
  .tmate .li:hover{color:var(--ice-soft)}
  .tmate .li svg{width:14px;height:14px}

  /* early access */
  .demo-grid{display:grid;grid-template-columns:1fr 1.1fr;gap:clamp(2rem,5vw,4.5rem);margin-top:2.5rem;align-items:start}
  .demo-copy h2{font-size:clamp(2rem,3.8vw,2.9rem);font-weight:780;letter-spacing:-.03em;line-height:1.08;text-wrap:balance}
  .demo-copy p{color:var(--muted);margin-top:1.1rem;font-size:1.03rem;max-width:40ch}
  .demo-copy ul{list-style:none;margin-top:1.8rem;display:flex;flex-direction:column;gap:.9rem}
  .demo-copy li{display:flex;gap:.75rem;align-items:flex-start;color:var(--muted);font-size:.95rem}
  .demo-copy li svg{width:20px;height:20px;color:var(--gold);flex:0 0 auto;margin-top:1px}
  .trialbox{margin-top:1.8rem;border:1px solid rgba(var(--gold-rgb),.3);border-radius:8px;padding:1.3rem 1.5rem;
    background:rgba(var(--gold-rgb),.05)}
  .trialbox .tk{font-family:var(--mono);font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;color:var(--gold)}
  .trialbox p{color:var(--muted);font-size:.9rem;line-height:1.6;margin-top:.55rem;max-width:none}
  form.card2{background:var(--surface);border:1px solid var(--line);
    border-radius:8px;padding:clamp(1.6rem,3vw,2.3rem)}
  .frow{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
  .fld{display:flex;flex-direction:column;gap:.4rem;margin-top:1rem}
  .fld.first{margin-top:0}
  .fld label{font-size:.8rem;color:var(--muted);font-weight:500}
  .fld input,.fld select,.fld textarea{background:var(--bg);border:1px solid var(--line-2);border-radius:6px;
    padding:.72rem .85rem;color:var(--text);font-family:inherit;font-size:.92rem;transition:border-color .2s;width:100%}
  .fld input:focus,.fld select:focus,.fld textarea:focus{outline:none;border-color:var(--ice);
    box-shadow:0 0 0 2px rgba(var(--ice-rgb),.2)}
  .fld textarea{resize:vertical;min-height:74px}
  .privacy{margin-top:1.1rem;font-size:.76rem;color:var(--muted);display:flex;gap:.5rem;align-items:flex-start}
  .privacy svg{width:15px;height:15px;color:var(--ice);flex:0 0 auto;margin-top:2px}
  .form-ok{display:none;text-align:center;padding:2.5rem 1rem}
  .form-ok.show{display:block}
  .form-ok svg{width:52px;height:52px;color:var(--ok);margin-bottom:1rem}
  .form-ok h3{font-size:1.3rem;margin-bottom:.5rem}
  .form-ok p{color:var(--muted);font-size:.95rem}
  @media(max-width:820px){.demo-grid{grid-template-columns:1fr}.frow{grid-template-columns:1fr}}

  /* trust strip */
  .trust{display:flex;gap:2.2rem;flex-wrap:wrap;align-items:center;justify-content:center;
    margin-top:3.2rem;padding-top:2.4rem;border-top:1px solid var(--line);color:var(--faint);font-size:.84rem}
  .trust b{color:var(--muted);font-weight:500;display:flex;align-items:center;gap:.55rem}
  .trust svg{width:17px;height:17px;color:var(--ice)}

  footer{border-top:1px solid var(--line);padding:2.6rem 0 2rem;color:var(--faint);font-size:.82rem}
  footer .wrap{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;align-items:center}
  footer .made{display:flex;gap:1.3rem;flex-wrap:wrap}
  .easter{font-family:var(--mono);font-size:.5rem;letter-spacing:.22em;text-transform:uppercase;
    color:var(--faint);opacity:.18;text-align:center;margin-top:1.8rem;user-select:none}

  @media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}.rise{opacity:1;transform:none}}

  /* ==================================================================
     consulting page: base above, divergences scoped on body.page-consulting
     ================================================================== */
  /* subpage back-link: first item in nav, arrow marks the way home */
  nav.links a.back{color:var(--gold);display:inline-flex;align-items:center;gap:.45rem}
  nav.links a.back::before{content:"←";color:var(--gold)}
  nav.links a.back:hover{color:var(--gold-soft)}

  /* sub-page hero: static gradient, no canvas */
  .hero-sub{position:relative;min-height:74svh;display:flex;align-items:center;padding:calc(66px + 4rem) 0 4rem;overflow:hidden;
    background:
      radial-gradient(90% 90% at 78% 8%,rgba(var(--ice-rgb),.1),transparent 58%),
      radial-gradient(70% 80% at 12% 92%,rgba(var(--gold-rgb),.08),transparent 55%),
      var(--bg)}
  .hero-sub::after{content:"";position:absolute;inset:auto 0 0;height:180px;pointer-events:none;
    background:linear-gradient(180deg,transparent,var(--bg))}
  .hero-sub .wrap{position:relative;z-index:2}
  .page-consulting .hero-inner,.page-technical .hero-inner{max-width:820px}
  .page-consulting .tag,.page-technical .tag{font-size:clamp(2.5rem,6vw,4.4rem);line-height:1.04}
  .page-consulting .lede,.page-technical .lede{max-width:36em}

  /* offer cards: meta footer + flagship variant */
  .page-consulting .cwcard{display:flex;flex-direction:column}
  .cwcard .meta{font-family:var(--mono);font-size:.72rem;letter-spacing:.08em;color:var(--faint);
    margin-top:auto;padding-top:1.2rem}
  .cwcard .meta b{color:var(--ice);font-weight:500}
  .cwcard.lead{border-color:rgba(var(--ice-rgb),.35);background:linear-gradient(180deg,var(--surface),var(--bg-2))}

  /* method list spacing + the road to certification: ice ramps 01-04, gold 05 */
  .page-consulting .spec-list{margin-top:3rem}
  .page-consulting .spec-row{border-left:2px solid transparent}
  .page-consulting .spec-row:nth-child(1){border-left-color:rgba(var(--ice-rgb),.16)}
  .page-consulting .spec-row:nth-child(1) .spec-key{color:rgba(var(--ice-rgb),.48)}
  .page-consulting .spec-row:nth-child(2){border-left-color:rgba(var(--ice-rgb),.3)}
  .page-consulting .spec-row:nth-child(2) .spec-key{color:rgba(var(--ice-rgb),.6)}
  .page-consulting .spec-row:nth-child(3){border-left-color:rgba(var(--ice-rgb),.46)}
  .page-consulting .spec-row:nth-child(3) .spec-key{color:rgba(var(--ice-rgb),.72)}
  .page-consulting .spec-row:nth-child(4){border-left-color:rgba(var(--ice-rgb),.65)}
  .page-consulting .spec-row:nth-child(4) .spec-key{color:rgba(var(--ice-rgb),.86)}
  .page-consulting .spec-row:nth-child(5){border-left-color:var(--gold)}
  .page-consulting .spec-row:nth-child(5) .spec-key{color:var(--gold)}

  .page-consulting .hwrow{margin-top:3rem}
  .tmate .certs{font-family:var(--mono);font-size:.74rem;letter-spacing:.04em;color:var(--ice);margin-top:1rem;line-height:1.7}

  /* language switch */
  .lang{font-family:var(--mono);font-size:.72rem;letter-spacing:.14em;color:var(--muted)}
  .hdr-cta .lang{white-space:nowrap;flex-shrink:0}
  .lang a{transition:color .2s;color:var(--faint)}
  .lang a:hover{color:var(--ice)}
  .lang b{color:var(--ice);font-weight:500}

  /* ---------- lien d'évitement (a11y) ---------- */
  .skip{position:absolute;left:-9999px;top:0;z-index:100;background:var(--gold);color:var(--accent-ink);
    padding:.7rem 1.2rem;border-radius:0 0 10px 0;font-weight:600;font-size:.9rem}
  .skip:focus{left:0}

  /* ---------- navigation mobile ---------- */
  /* Le sélecteur à quatre langues augmente la largeur minimale de l'en-tête.
     Le menu compact prend donc le relais avant qu'un libellé puisse se replier. */
  .burger{display:none;position:fixed;top:13px;right:calc((100vw - var(--w))/2);z-index:60;
    width:40px;height:40px;border:1px solid var(--line-2);border-radius:8px;background:var(--bg-2);
    cursor:pointer;padding:0}
  .burger::before,.burger::after,.burger span{content:"";position:absolute;left:11px;right:11px;height:1.5px;
    background:var(--text);transition:.28s var(--ease)}
  .burger::before{top:14px}.burger::after{bottom:14px}
  .burger[aria-expanded="true"]::before{top:19px;transform:rotate(45deg)}
  .burger[aria-expanded="true"]::after{bottom:19px;transform:rotate(-45deg)}
  @media(max-width:980px){
    .burger{display:block}
    .hdr-cta{padding-right:50px}
    header.nav-open{background:rgba(var(--bg-rgb),.97);border-bottom-color:var(--line);height:auto;
      padding-bottom:1rem;align-items:flex-start}
    header.nav-open .wrap{flex-wrap:wrap;padding-top:14px}
    header.nav-open nav.links{display:flex;flex-direction:column;align-items:flex-start;
      gap:0;width:100%;order:3;margin-top:.6rem;font-size:.95rem}
    header.nav-open nav.links a{width:100%;padding:.85rem 0;border-top:1px solid var(--line)}
    header.nav-open .hdr-cta{order:2}
  }
  /* Le seuil de 1260 px ne suffit pas : les libellés FR/DE/IT et les sept liens
     du brief technique débordaient encore à 1280–1440 px et coupaient le bouton
     « Talk to us ». main-v5.js mesure la ligne réelle et pose .nav-compact dès
     qu'elle déborde ; ces règles reprennent celles du media query ci-dessus. */
  .nav-compact nav.links{display:none}
  .nav-compact .burger{display:block}
  .nav-compact .hdr-cta{padding-right:50px}
  .nav-compact header.nav-open{background:rgba(var(--bg-rgb),.97);border-bottom-color:var(--line);height:auto;
    padding-bottom:1rem;align-items:flex-start}
  .nav-compact header.nav-open .wrap{flex-wrap:wrap;padding-top:14px}
  .nav-compact header.nav-open nav.links{display:flex;flex-direction:column;align-items:flex-start;
    gap:0;width:100%;order:3;margin-top:.6rem;font-size:.95rem}
  .nav-compact header.nav-open nav.links a{width:100%;padding:.85rem 0;border-top:1px solid var(--line)}
  .nav-compact header.nav-open .hdr-cta{order:2}
  /* Sous 620px, le libellé du CTA ne tient plus à côté du logo et du burger : il
     passait SOUS le burger, tronqué. On le retire de l'en-tête : le hero porte le
     même appel à l'action, visible sans défilement, et le menu reste accessible. */
  @media(max-width:620px){
    .hdr-cta .btn{display:none}
    .hdr-cta{padding-right:46px;gap:0}
  }
  /* Sur les écrans les plus étroits, le logo, le sélecteur complet et le bouton
     du menu ne tiennent pas sur une seule ligne. Le sélecteur rejoint alors le
     menu ouvert ; il reste aussi disponible dans le pied de page. */
  @media(max-width:520px){
    header:not(.nav-open) .hdr-cta .lang{display:none}
    header.nav-open .hdr-cta{width:100%;padding-right:0;margin-top:.5rem}
    header.nav-open .hdr-cta .lang{display:block}
  }

  /* ---------- page légale ---------- */
  .page-legal .hero-inner{max-width:820px}
  .page-legal .tag{font-size:clamp(2.5rem,6vw,4.4rem);line-height:1.04}
  .page-legal .lede{max-width:38em}
  .page-legal .spec-val a{color:var(--ice);border-bottom:1px solid rgba(var(--ice-rgb),.4)}
  .page-legal .spec-row{grid-template-columns:220px 1fr}
  @media(max-width:640px){.page-legal .spec-row{grid-template-columns:1fr}}

  /* le défilement doux est une animation : le neutraliser avec les autres */
  @media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

  /* ---------- badge partenaire NVIDIA Inception ---------- */
  /* Contraintes imposées par les règles d'usage NVIDIA (Member Badge guidelines,
     rév. 28.08.2025), toutes vérifiables ici :
       · couleurs et texte de l'artwork jamais modifiés : le fichier est copié
         verbatim, on ne fait que le dimensionner ;
       · proportions préservées : hauteur fixée, width:auto ;
       · taille minimale digitale 30 px : plancher respecté à toutes les largeurs ;
       · « ne pas faire le badge plus grand que le logo partenaire » : dans le
         header, la signature Neural ICE fait 48 px comme le badge ; en mobile,
         elle fait 34 px contre 30 px pour le badge ;
       · zone de protection : marge explicite, le badge ne colle à rien. */
  .inception{display:inline-flex;align-items:center;gap:.6rem;line-height:0;
    transition:.25s var(--ease);opacity:.92}
  /* dans le bandeau de confiance, le badge suit le motif de ses voisins :
     un visuel ET son texte. Une image nue y était orpheline sur sa propre ligne. */
  .trust .inception span{font-size:.84rem;color:var(--muted);font-weight:500;line-height:1.4}
  .trust .inception:hover span{color:var(--text)}
  .trust .inception img{border-radius:4px}
  .inception:hover{opacity:1;transform:translateY(-1px)}
  .inception img{height:48px;width:auto;display:block}
  .spec-badges .inception{margin-left:.4rem}
  /* plancher NVIDIA de 30 px : on ne descend pas plus bas, même à l'étroit */
  @media(max-width:520px){.inception img{height:30px}}
  @media(max-width:520px){.brand img{height:31px}header .brand img{height:34px}}

  /* Mention légale NVIDIA : obligatoire dès qu'une marque NVIDIA est citée sur une
     page produit (Writing About the Program, rév. 28.08.2025). Formulation reprise
     mot pour mot, marques listées dans l'ordre alphabétique exigé. Ne pas
     reformuler ni raccourcir. */
  .tm{max-width:var(--w);margin:1.6rem auto 0;font-size:.66rem;line-height:1.6;
    color:var(--faint);text-align:center}

  /* ---------- NVIDIA Inception dans le hero de la homepage ---------- */
  /* Badge non modifié + mention adjacente ; 36 px : au-dessus du plancher de
     30 px et sous la signature Neural ICE du header (48 px). */
  .hero-meta .inception{gap:.6rem;line-height:1.4}
  .hero-meta .inception img{height:36px;border-radius:3px}
  .hero-meta .inception span{font-size:.8rem;color:var(--muted);font-weight:500}
  .hero-meta .inception:hover span{color:var(--text)}
  @media(max-width:520px){.hero-meta .inception img{height:30px}}

  /* ---------- #who : métiers soumis au secret professionnel ---------- */
  .who-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.9rem;margin-top:2rem}
  .who-card{border:1px solid var(--line);border-radius:8px;padding:1.2rem 1.2rem 1.3rem;
    background:linear-gradient(180deg,var(--surface),var(--bg-2))}
  .who-card .k{font-family:var(--mono);font-size:.66rem;letter-spacing:.12em;text-transform:uppercase;color:var(--gold)}
  /* #capabilities reprend la carte de #who ; étiquette bleue pour alterner avec l'or */
  .who-card .k.ice{color:var(--ice)}
  .who-card h3{font-size:1.02rem;font-weight:650;letter-spacing:-.01em;margin:.6rem 0 .45rem;color:var(--text);line-height:1.3}
  .who-card p{font-size:.88rem;color:var(--muted);line-height:1.5;margin:0}
  .who-more{margin-top:1.3rem;color:var(--muted);font-size:.9rem;max-width:62ch}
  @media(max-width:980px){.who-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
  @media(max-width:640px){.who-grid{grid-template-columns:1fr}}

  /* ---------- #security : preuves vérifiables ---------- */
  .proofs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.9rem;margin-top:2rem}
  .proof{border:1px solid var(--line);border-radius:8px;padding:1.2rem 1.3rem;background:var(--surface)}
  .proof h3{font-size:1rem;font-weight:650;color:var(--text);margin:0 0 .4rem;display:flex;gap:.6rem;align-items:baseline}
  .proof h3::before{content:"";flex:none;width:7px;height:7px;border-radius:50%;background:var(--ice);transform:translateY(-1px)}
  .proof p{font-size:.9rem;color:var(--muted);line-height:1.5;margin:0}
  .proof-cta{margin-top:1.4rem;font-size:.95rem;color:var(--muted)}
  .proof-cta a{color:var(--ice);border-bottom:1px solid rgba(var(--ice-rgb),.4)}
  @media(max-width:720px){.proofs{grid-template-columns:1fr}}

  /* ---------- #own : tarification en deux parties ---------- */
  .own-beat .k{display:block;font-family:var(--mono);font-size:.66rem;letter-spacing:.12em;text-transform:uppercase;
    color:var(--ice);margin-bottom:.5rem}
  .own-beat p + p{margin-top:.6rem}
  .own-cta{margin-top:1.4rem}

  /* ---------- impression (Ctrl+P) : fond clair, sans chrome d'écran ---------- */
  @media print{
    :root{--bg:#fff;--bg-2:#fff;--surface:#fff;--surface-2:#f5f5f5;--bg-rgb:255,255,255;
      --text:#111;--muted:#333;--faint:#555;--line:#ccc;--line-2:#bbb;
      --ice:#0b5e7a;--ice-soft:#0b5e7a;--gold:#6b561c;--gold-soft:#6b561c;--ok:#1d6b43}
    body{background:#fff;color:#111}
    header,.burger,.skip,.hero-cta,#aurora,.easter,.modhint,footer .lang,.mf-back .scan{display:none!important}
    .hero-sub{padding:0 0 1.5rem}
    .rise{opacity:1!important;transform:none!important}
    .band{padding:1.4rem 0;border-top:1px solid #ccc}
    .mod,.proof,.stake,.spec-row,tr{break-inside:avoid}
    h2,h3{break-after:avoid}
    .hero-sub,.band{background:none!important}
    .hero-sub::before,.hero-sub::after,.band::before,.band::after{display:none!important}
    .btn{display:none!important}
    /* cartes retournables : imprimer recto puis verso, à plat, sans hauteur d'écran */
    .mod-inner{transform:none!important;height:auto}
    .mf{backface-visibility:visible;-webkit-backface-visibility:visible;padding:.9rem 1rem}
    .mf-front{min-height:0;height:auto}
    .mf-back{position:relative;inset:auto;transform:none;margin-top:.4rem}
    .mf::before,.mf::after{display:none}
    a{color:inherit}
  }

  /* ---------- header compacté (.nav-tight, posé par main-v9.js / consulting-v9.js) ----------
     Palier intermédiaire quand la ligne complète déborde : le menu reste visible
     au lieu de passer tout de suite au hamburger. */
  .nav-tight header .wrap{gap:1.1rem}
  .nav-tight header .brand img{height:38px}
  .nav-tight nav.links{--ng:.85rem;font-size:.8rem}
  .nav-tight .hdr-cta{gap:.55rem}
  .nav-tight .hdr-cta .lang{letter-spacing:.06em}
  .nav-tight .hdr-cta .btn{padding-left:.8rem;padding-right:.8rem}

  /* second palier (.nav-tighter, cumulé avec .nav-tight) avant le hamburger */
  .nav-tighter header .wrap{gap:.8rem}
  .nav-tighter header .brand img{height:32px}
  .nav-tighter nav.links{--ng:.7rem;font-size:.77rem}
  .nav-tighter .hdr-cta{gap:.45rem}
  .nav-tighter .hdr-cta .lang{letter-spacing:0}
  .nav-tighter .hdr-cta .btn{padding-left:.7rem;padding-right:.7rem;font-size:.76rem}

  /* ---------- menu : section active (main-v9.js / consulting-v9.js) ---------- */
  nav.links a[href^="#"]::after{content:"";position:absolute;left:0;right:0;bottom:-7px;height:2px;border-radius:2px;
    background:var(--ice);transform:scaleX(0);transform-origin:left;transition:transform .35s var(--ease)}
  nav.links a.active{color:var(--text)}
  nav.links a.active::after{transform:scaleX(1)}
  header.nav-open nav.links a[href^="#"]::after{display:none}

  /* ---------- menu : ancres de la page ≠ liens vers une autre page ----------
     Les ancres (href="#…") restent en texte et reçoivent le soulignement de section
     active. Les liens vers une autre page portent un chevron, et un trait vertical
     sépare les deux groupes (posé devant le premier lien de page qui suit une ancre).
     Le lien retour « ← » des sous-pages garde son style doré. */
  nav.links a:not([href^="#"]):not(.back){display:inline-flex;align-items:center;gap:.32rem}
  nav.links a:not([href^="#"]):not(.back)::after{content:"";flex:none;width:.3rem;height:.3rem;
    border-top:1.5px solid currentColor;border-right:1.5px solid currentColor;transform:rotate(45deg);
    opacity:.75;transition:transform .25s var(--ease)}
  nav.links a:not([href^="#"]):not(.back):hover::after{transform:translateX(2px) rotate(45deg)}
  nav.links a[href^="#"] + a:not([href^="#"]){margin-left:calc(var(--ng) * .75)}
  .nav-tight nav.links a[href^="#"] + a:not([href^="#"]){margin-left:calc(var(--ng) * .4)}
  .nav-tight nav.links a[href^="#"] + a:not([href^="#"])::before{left:calc(var(--ng) * -.7)}
  nav.links a[href^="#"] + a:not([href^="#"])::before{content:"";position:absolute;top:50%;
    left:calc(var(--ng) * -.875);width:1px;height:22px;transform:translateY(-50%);background:rgba(241,239,234,.32)}
  header.nav-open nav.links a[href^="#"] + a:not([href^="#"]){margin-left:0}
  header.nav-open nav.links a[href^="#"] + a:not([href^="#"])::before{display:none}

  /* ---------- boutons dorés : flèche SVG (trait 2px, centrée sur le texte) ---------- */
  /* Le caractère « → » d'Inter est fin et assis sur la ligne de base : il paraissait
     bas dans un bouton centré. Le SVG est centré par l'inline-flex du bouton. */
  .btn .arr{flex:none;display:block;width:.95em;height:.95em;transition:transform .25s var(--ease)}
  /* La flèche SVG élargissait le bouton du header ; /fr/legal/ n'avait déjà que 3 px de
     marge en prod et repliait son menu. Espace et marges latérales resserrés : chaque
     page garde au moins la marge qu'elle avait en prod. */
  .hdr-cta .btn{gap:.4rem;padding-left:1rem;padding-right:1rem}
  .btn:hover .arr,.btn:focus-visible .arr{transform:translateX(3px)}

  /* ---------- transitions entre pages (Chrome/Edge, Safari 18.2+) ---------- */
  /* Fondu du contenu ; le header, nommé à part, reste en place. Sans effet ailleurs. */
  @view-transition{navigation:auto}
  header#hdr{view-transition-name:site-header}
  .burger{view-transition-name:site-burger}
  ::view-transition-old(root),::view-transition-new(root){animation-duration:.28s}
  @media(prefers-reduced-motion:reduce){@view-transition{navigation:none}}

  /* Page d'accueil « business » (01.10.2026) : modèles, grand livre, tarifs publics, questions */
  .nw{white-space:nowrap}
  .models-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.9rem;margin-top:2rem}
  .ledger{margin-top:1rem;border:1px solid var(--line);border-radius:8px;overflow:hidden;background:var(--surface)}
  .ledger>div{display:flex;justify-content:space-between;align-items:baseline;flex-wrap:wrap;gap:.3rem 1rem;padding:.85rem 1.2rem;border-top:1px solid var(--line);font-size:.92rem}
  .ledger>div:first-child{border-top:0}
  .ledger .m{font-family:var(--mono);color:var(--text)}
  .ledger .r{color:var(--muted)}
  .ledger .ok{color:var(--ok);font-family:var(--mono)}
  .price-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.9rem;margin-top:2rem}
  .price-card{border:1px solid var(--line);border-radius:8px;padding:1.4rem;display:flex;flex-direction:column;gap:.75rem;background:var(--surface)}
  .price-card.main{border-color:rgba(var(--gold-rgb),.6)}
  .price-card .k{font-family:var(--mono);font-size:.66rem;letter-spacing:.12em;text-transform:uppercase;color:var(--gold)}
  .price-card h3{font-size:1.1rem;font-weight:650;margin:0;color:var(--text)}
  .price-card .amt{font-size:2.2rem;font-weight:750;letter-spacing:-.03em;color:var(--text);line-height:1.1}
  .price-card .amt small{font-size:.9rem;color:var(--muted);font-weight:500;letter-spacing:0}
  .price-card ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.45rem;font-size:.9rem;color:var(--muted)}
  .price-card .row{display:flex;justify-content:space-between;gap:1rem;font-size:.9rem;border-top:1px solid var(--line);padding-top:.6rem;color:var(--muted)}
  .price-card .row b{color:var(--text);font-weight:600}
  .price-card .row span:last-child{font-family:var(--mono);color:var(--text);white-space:nowrap}
  .price-card .note{font-size:.8rem;color:var(--faint);margin-top:auto}
  .price-card .btn{justify-content:center;margin-top:auto}
  .faq-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.6rem 2.4rem;margin-top:2rem}
  .faq-grid h3{font-size:1.02rem;font-weight:650;margin:0 0 .4rem;color:var(--text)}
  .faq-grid p{font-size:.92rem;color:var(--muted);line-height:1.55;margin:0}
  @media(max-width:900px){.models-grid,.price-grid,.faq-grid{grid-template-columns:1fr}}
  /* Titre animé : décodage puis vague de lumière (js/main-v10.js) */
  .fx .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
  .fx-w{display:inline-block;white-space:nowrap}
  .fx-c{display:inline-block;text-align:center}
  .fx-scr{color:var(--ice);opacity:.8;font-family:var(--mono);font-weight:500;font-size:.78em}
  .fx-flare{animation:fxflare .9s var(--ease) both}
  @keyframes fxflare{0%{color:var(--ice-soft);text-shadow:0 0 22px rgba(var(--ice-rgb),.85)}100%{color:inherit;text-shadow:none}}
  @media(prefers-reduced-motion:reduce){.fx-flare{animation:none}}
  /* Révélations au défilement : mots des titres, cartes qui montent, trait de lumière */
  .band-head h2 .wd{display:inline-block;opacity:0;filter:blur(10px);transform:translateY(.45em);
    transition:opacity .8s var(--ease),filter .8s var(--ease),transform .8s var(--ease);transition-delay:calc(var(--w)*55ms)}
  .band-head.in h2 .wd{opacity:1;filter:none;transform:none}
  .who-card.rise,.price-card.rise,.proof.rise{transform:translateY(28px) scale(.97)}
  .who-card.rise.in,.price-card.rise.in,.proof.rise.in{transform:none}
  .who-card,.price-card,.proof{position:relative;overflow:hidden}
  .who-card.in::after,.price-card.in::after,.proof.in::after{content:"";position:absolute;left:0;top:0;width:100%;height:1px;pointer-events:none;
    background:linear-gradient(90deg,transparent,var(--ice),transparent);transform:translateX(-100%);animation:sweep 1.6s var(--ease) .25s both}
  @keyframes sweep{to{transform:translateX(100%)}}
  @media(prefers-reduced-motion:reduce){.band-head h2 .wd{opacity:1;filter:none;transform:none}.who-card.in::after,.price-card.in::after,.proof.in::after{display:none}}
  @media print{.band-head h2 .wd{opacity:1!important;filter:none!important;transform:none!important}}
  /* Titres AB2 : Inter Tight, poids du client (620 en sombre), un peu plus pour le héros */
  h1,h2,h3,.tag{font-family:var(--display)}
  /* Inter Tight est déjà serrée : l'interlettrage négatif hérité collait les lettres */
  .tag{font-weight:680;letter-spacing:-.015em}
  .band-head h2,.demo-copy h2{font-weight:640;letter-spacing:-.01em}
  h3,.who-card h3,.price-card h3,.proof h3,.hstep h3,.own-beat h3,.stake h3,.faq-grid h3,.mf h3{font-weight:620;letter-spacing:0}
