  @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:"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{
    /* warmed dark ground: charcoal with a touch of warmth, not cold blue-black */
    --bg:#0B0D12; --bg-2:#0f1219; --surface:#141824; --surface-2:#1a1f2e;
    --bg-rgb:11,13,18;
    /* signature accent: ICE (security / the countermeasure) */
    --ice:#7DD4F0; --ice-soft:#A9E1F4; --ice-deep:#1c4a5f;
    --ice-rgb:125,212,240;
    /* warm accent: the human / serenity / action. Muted private-banking gold, yellow-true, never peach */
    --gold:#CDB577; --gold-soft:#EADFB8; --gold-deep:#9C854E;
    --gold-rgb:205,181,119;
    --line:#232838; --line-2:#313850;
    --text:#F1EFEA; --muted:#9EA0AA; --faint:#7B7E94;
    --ok:#7BD8A6;
    --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}
  html{scroll-behavior:smooth}
  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}
  ::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))}

  /* buttons */
  .btn{display:inline-flex;align-items:center;gap:.55rem;font-size:.9rem;font-weight:600;
    padding:.72rem 1.3rem;border-radius:12px;transition:.25s 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)}
  .btn-gold{background:linear-gradient(180deg,var(--gold-soft),var(--gold));color:#2A2107;
    box-shadow:0 10px 34px -12px rgba(var(--gold-rgb),.5)}
  .btn-gold:hover{transform:translateY(-1px);box-shadow:0 16px 44px -14px rgba(var(--gold-rgb),.65)}


  /* ---------- bandeau partenaire (au-dessus du header) ---------- */
  /* Objectif : la membership Inception visible dès l'arrivée, sans disputer sa
     place à la navigation. Motif conforme aux guidelines NVIDIA : badge officiel
     non modifié + mention écrite adjacente, exactement la maquette « Examples of
     Usage ». Dans le header desktop, le badge et la signature Neural ICE font
     tous deux 48 px de haut. En mobile, la signature Neural ICE reste plus grande
     que le badge réduit à son plancher de 30 px. */
  :root{--strip:58px}
  .topbar{position:fixed;inset:0 0 auto;z-index:55;height:var(--strip);
    display:flex;align-items:center;justify-content:center;
    background:linear-gradient(90deg,rgba(var(--bg-rgb),.96),#101722 50%,rgba(var(--bg-rgb),.96));
    border-bottom:1px solid var(--line);backdrop-filter:blur(10px)}
  .topbar a{display:inline-flex;align-items:center;gap:1rem;font-size:.82rem;
    color:var(--muted);letter-spacing:.01em;transition:color .25s}
  .topbar a:hover{color:var(--text)}
  .topbar b{color:var(--text);font-weight:600}
  /* Deux libellés, tous deux conformes aux tournures approuvées. Le court permet
     de garder le badge visible sur téléphone, où le long débordait à 390 px —
     la largeur d'écran la plus répandue. */
  .topbar .sm{display:none}
  @media(max-width:430px){.topbar .lg{display:none}.topbar .sm{display:inline}}
  .topbar img{height:48px;width:auto;display:block;border-radius:3px}
  .burger{top:calc(var(--strip) + 13px)}
  .hero{padding-top:calc(66px + 2 * var(--strip))}
  .hero-sub{padding:calc(66px + var(--strip) + 4rem) 0 4rem}
  @media(max-width:620px){
    /* Le badge reste visible à son plancher de 30 px. La signature Neural ICE
       du header mesure 34 px et conserve donc la hiérarchie de marque. */
    .topbar img{height:30px}
    .topbar a{gap:.55rem;font-size:.66rem}
    :root{--strip:40px}
  }
  @media(max-width:330px){
    /* Seuil à 330 px : à 390 px — la largeur d'iPhone la plus répandue —
       le badge (70 px) et son libellé (~200 px) tiennent largement. Le masquer
       là privait la majorité du trafic mobile de la mention visuelle.
       Sous 330 px seulement, la mention écrite seule, que les guidelines
       autorisent. */
    .topbar img{display:none}
    .topbar a{font-size:.66rem}
    :root{--strip:32px}
  }

  /* ---------- header ---------- */
  header{position:fixed;inset:var(--strip) 0 auto;z-index:50;height:66px;display:flex;align-items:center;
    backdrop-filter:blur(16px);background:rgba(var(--bg-rgb),.5);border-bottom:1px solid transparent;
    transition:border-color .4s,background .4s}
  header.scrolled{border-bottom-color:var(--line);background:rgba(var(--bg-rgb),.86)}
  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{display:flex;align-items:center;flex-wrap:nowrap;white-space:nowrap;gap:1.9rem;font-size:.86rem;color:var(--muted)}
  nav.links a{transition:color .25s;position:relative}
  nav.links a:hover{color:var(--text)}
  nav.links a.consult{color:var(--ice);display:inline-flex;align-items:center;gap:.45rem}
  nav.links a.consult::before{content:"";width:5px;height:5px;border-radius:50%;background:var(--ice);
    box-shadow:0 0 8px rgba(var(--ice-rgb),.8)}
  nav.links a.consult:hover{color:var(--ice-soft)}
  .hdr-cta{display:flex;align-items:center;gap:.9rem}
  .hdr-cta .btn{padding:.48rem .95rem;font-size:.8rem;border-radius:9px;box-shadow:0 6px 20px -10px rgba(var(--gold-rgb),.45)}
  @media(max-width:1280px){nav.links{gap:1.2rem;font-size:.82rem}}
  /* the technical brief carries 7 nav links: hide the row before it can overflow */
  @media(max-width:1260px){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:.7rem;padding:.44rem .6rem}
  }

  /* ---------- hero ---------- */
  /* static fallback glow, painted before (or without) the canvas: no bare flash */
  .hero{position:relative;min-height:100svh;display:flex;align-items:center;
    padding-top:calc(66px + 2 * var(--strip));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;display:grid;grid-template-columns:minmax(0,660px) minmax(320px,1fr);
    gap:clamp(2rem,4vw,4rem);align-items:center}
  .hero-inner{max-width:780px}
  .hero .slogan{display:block;font-family:var(--mono);font-size:.78rem;letter-spacing:.16em;
    color:var(--faint);text-transform:uppercase;margin-top:1.4rem}
  @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 visual: the product itself, one message — the sealed box in your office */
  .hero-viz{display:block;width:100%;max-width:440px;justify-self:end;height:auto}
  .hero-motif{position:absolute;z-index:1;right:max(2vw,1rem);top:20%;width:min(34vw,470px);
    min-width:160px;height:auto;opacity:.055;pointer-events:none;user-select:none}
  @media(max-width:820px){.hero-motif{display:none}}
  .hero-viz .ln{stroke:var(--line-2);fill:none}
  .hero-viz .faint-ln{stroke:var(--faint);fill:none}
  .hero-viz .ice-ln{stroke:var(--ice);fill:none}
  .hero-viz .gold-ln{stroke:var(--gold);fill:none}
  .hero-viz .lbl{font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;fill:var(--muted);text-transform:uppercase}
  .hero-viz .lbl.ice{fill:var(--ice)}
  .hero-viz .lbl.s{font-size:9.5px}
  .hero-viz .pulse{animation:vpulse 2.6s ease-in-out infinite}
  .hero-viz .flow{stroke-dasharray:3 6;animation:vflow 1.6s linear infinite}
  @media(max-width:1080px){.hero .wrap{grid-template-columns:1fr}.hero-viz{display:none}}

  /* "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-viz{display:block;width:100%;max-width:460px;height:auto;margin:0 auto}
  .how-viz .ln{stroke:var(--line-2);fill:none}
  .how-viz .faint-ln{stroke:var(--faint);fill:none}
  .how-viz .ice-ln{stroke:var(--ice);fill:none}
  .how-viz .gold-ln{stroke:var(--gold);fill:none}
  .how-viz .lbl{font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;fill:var(--muted);text-transform:uppercase}
  .how-viz .lbl.ice{fill:var(--ice)}
  .how-viz .lbl.gold{fill:var(--gold)}
  .how-viz .pulse{animation:vpulse 2.6s ease-in-out infinite}
  @keyframes vpulse{0%,100%{opacity:.35}50%{opacity:1}}
  .how-viz .flow{stroke-dasharray:3 6;animation:vflow 1.6s linear infinite}
  @keyframes vflow{to{stroke-dashoffset:-9}}
  .how-viz .lbl.s{font-size:9.5px}
  @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:18px;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%,#bfe9f8);
    -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;margin-top:2.5rem;flex-wrap:wrap}
  .hero-meta{display:flex;gap:1.8rem;margin-top:3rem;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);box-shadow:0 0 9px 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(5rem,10vw,8rem) 0;border-top:1px solid var(--line)}
  .band-head{max-width:56ch}
  .band-head h2{font-size:clamp(1.95rem,3.6vw,2.85rem);font-weight:750;letter-spacing:-.03em;
    line-height:1.09;text-wrap:balance;margin:1rem 0 0}
  .band-head p{color:var(--muted);margin-top:1.05rem;font-size:1.04rem;max-width:50ch}

  /* 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:18px;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}

  /* fourth way table */
  .fourth{margin-top:3rem;overflow-x:auto;border:1px solid var(--line);border-radius:18px}
  table.cmp{width:100%;border-collapse:collapse;min-width:640px;font-size:.92rem}
  table.cmp th,table.cmp td{text-align:left;padding:1.05rem 1.3rem;border-bottom:1px solid var(--line)}
  table.cmp thead th{font-family:var(--mono);font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;
    color:var(--faint);font-weight:500;background:var(--bg-2)}
  table.cmp tbody tr:last-child td{border-bottom:0}
  table.cmp td:first-child{color:var(--muted);font-weight:500}
  table.cmp tr.us{background:linear-gradient(90deg,rgba(var(--ice-rgb),.09),rgba(var(--gold-rgb),.05))}
  table.cmp tr.us td{color:var(--text);font-weight:600;border-bottom:0}
  table.cmp tr.us td:first-child{color:var(--ice)}
  .chk{color:var(--ice)}.x{color:var(--faint)}

  /* video */
  .vframe{position:relative;margin-top:2.6rem;border-radius:20px;overflow:hidden;border:1px solid var(--line-2);
    aspect-ratio:16/9;background:
      radial-gradient(80% 120% at 50% 0%,rgba(var(--ice-rgb),.14),transparent 60%),
      radial-gradient(90% 120% at 50% 120%,rgba(var(--gold-rgb),.12),transparent 55%),
      var(--surface);cursor:pointer;display:grid;place-items:center}
  .vframe .play{width:84px;height:84px;border-radius:50%;display:grid;place-items:center;
    background:linear-gradient(180deg,var(--gold-soft),var(--gold));box-shadow:0 14px 50px -12px rgba(var(--gold-rgb),.55);
    transition:.3s var(--ease)}
  .vframe:hover .play{transform:scale(1.06)}
  .vframe .play svg{width:30px;height:30px;margin-left:4px;color:#2A2107}
  .vframe .vlabel{position:absolute;bottom:1.2rem;left:1.4rem;font-family:var(--mono);font-size:.78rem;color:var(--muted)}
  .vframe .vlabel b{color:var(--text);font-weight:500}

  /* pillars */
  .feat{display:grid;grid-template-columns:repeat(2,1fr);gap:1.1rem;margin-top:3rem}
  .card{background:linear-gradient(180deg,var(--surface),var(--bg-2));border:1px solid var(--line);
    border-radius:18px;padding:2rem;position:relative;overflow:hidden;transition:.4s var(--ease)}
  .card::before{content:"";position:absolute;inset:0;border-radius:18px;padding:1px;pointer-events:none;
    background:linear-gradient(140deg,rgba(var(--ice-rgb),.4),transparent 44%);
    -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);
    -webkit-mask-composite:xor;mask-composite:exclude;opacity:0;transition:opacity .4s}
  .card:hover{transform:translateY(-3px)}
  .card:hover::before{opacity:1}
  .ico{width:46px;height:46px;border-radius:13px;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:18px;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 rgba(var(--ice-rgb),.3);
    border-radius:999px;padding:.55rem 1.1rem;box-shadow:0 0 14px rgba(var(--ice-rgb),.08)}
  .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);box-shadow:0 0 8px var(--ice)}
  .spec-badge svg{width:15px;height:15px}
  .spec-list{border:1px solid var(--line);border-radius:18px;margin-top:1.6rem;overflow:hidden}
  .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}
  .spec-row:last-child{border-bottom:0}
  .spec-row:hover{background:rgba(var(--ice-rgb),.03)}
  .spec-key{font-family:var(--mono);font-size:.74rem;letter-spacing:.1em;text-transform:uppercase;color:var(--faint);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:18px;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{box-shadow:inset 0 0 34px rgba(var(--ice-rgb),.05)}

  /* pricing */
  .pricebox{margin-top:2.6rem;border:1px solid var(--line);border-radius:18px;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:18px;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:999px;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:18px;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:16px;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:linear-gradient(180deg,var(--surface),var(--bg-2));border:1px solid var(--line);
    border-radius:22px;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:11px;
    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 3px rgba(var(--ice-rgb),.13)}
  .fld textarea{resize:vertical;min-height:74px}
  .privacy{margin-top:1.1rem;font-size:.76rem;color:var(--faint);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:.62rem;letter-spacing:.25em;text-transform:uppercase;
    color:var(--ice);opacity:.12;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);text-shadow:0 0 12px rgba(var(--gold-rgb),.45)}

  .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:#2A2107;
    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:10px;background:rgba(var(--bg-rgb),.7);
    backdrop-filter:blur(10px);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:1260px){
    .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}
  }
  /* 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);opacity:.75;text-align:center}
