/* ===== tuto2.lpp.ovh — feuille de style partagée (extraite de index.html le 03/09/2026) ===== */
  :root{
    --ink:#0B0F17;
    --ink-panel:#121A26;
    --ink-line:#22303f;
    --paper:#F3F0E7;
    --paper-2:#E7E1D2;
    --paper-line:#D6CFBC;
    --ink-text:#161B22;
    --jade:#37BF92;        /* canal sécurisé / "go" */
    --jade-deep:#1F8E6A;
    --amber:#D9913B;       /* vigilance / menace politique */
    --alert:#C9543F;       /* danger / "sans protection" */
    --mute:#8C97A8;        /* texte secondaire sur fond sombre */
    --mute-paper:#5C6470;  /* texte secondaire sur papier */
    --maxw:1120px;
  }

  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  @media (prefers-reduced-motion: reduce){ html{scroll-behavior:auto;} }

  body{
    margin:0;
    background:var(--ink);
    color:#E9E6DD;
    font-family:"Newsreader",Georgia,serif;
    font-size:18px;
    line-height:1.62;
    -webkit-font-smoothing:antialiased;
  }

  a{color:inherit;}
  h1,h2,h3,h4{font-family:"Archivo",sans-serif;line-height:1.05;margin:0;letter-spacing:-0.01em;}
  .mono{font-family:"JetBrains Mono",monospace;}

  .wrap{max-width:var(--maxw);margin:0 auto;padding:0 24px;}

  /* ---------- skip link ---------- */
  .skip{position:absolute;left:-999px;top:0;background:var(--jade);color:#04130d;padding:10px 16px;font-family:"JetBrains Mono",monospace;font-size:13px;z-index:200;}
  .skip:focus{left:8px;top:8px;}

  /* ---------- eyebrow / labels ---------- */
  .eyebrow{
    font-family:"JetBrains Mono",monospace;
    font-size:12px;letter-spacing:0.22em;text-transform:uppercase;
    color:var(--jade);
  }

  /* ---------- NAV ---------- */
  header.nav{
    position:sticky;top:0;z-index:100;
    background:rgba(11,15,23,0.86);
    backdrop-filter:blur(10px);
    border-bottom:1px solid var(--ink-line);
  }
  .nav-inner{display:flex;align-items:center;gap:18px;height:60px;}
  .brand{display:flex;align-items:center;gap:10px;flex:0 0 auto;text-decoration:none;}
  .brand .sigil{
    width:30px;height:30px;border:1px solid var(--jade);border-radius:5px;
    display:grid;place-items:center;font-family:"Archivo";font-weight:900;font-size:13px;color:var(--jade);
  }
  .brand b{font-family:"Archivo";font-weight:800;letter-spacing:0.02em;font-size:15px;color:#fff;}
  .brand span{font-family:"JetBrains Mono",monospace;font-size:11px;color:var(--mute);letter-spacing:0.12em;}
  nav.links{margin-left:auto;display:flex;gap:6px;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;}
  nav.links::-webkit-scrollbar{display:none;}
  nav.links a{
    font-family:"JetBrains Mono",monospace;font-size:12.5px;letter-spacing:0.04em;
    text-decoration:none;color:var(--mute);white-space:nowrap;padding:8px 11px;border-radius:6px;
    transition:color .15s, background .15s;
  }
  nav.links a:hover{color:#fff;background:var(--ink-panel);}
  nav.links a.hot{color:var(--amber);}
  nav.links a.hot:hover{color:#fff;background:rgba(217,145,59,0.12);}
  nav.links a.cta{color:#04130d;background:var(--jade);font-weight:700;}
  nav.links a.cta:hover{background:#48d6a6;}

  /* ---------- HERO ---------- */
  .hero{position:relative;overflow:hidden;border-bottom:1px solid var(--ink-line);}
  .hero::before{ /* grille / scanlines discrètes */
    content:"";position:absolute;inset:0;
    background-image:
      linear-gradient(rgba(55,191,146,0.05) 1px, transparent 1px),
      linear-gradient(90deg, rgba(55,191,146,0.05) 1px, transparent 1px);
    background-size:46px 46px;
    mask-image:radial-gradient(120% 90% at 70% 0%, #000 30%, transparent 75%);
    pointer-events:none;
  }
  .hero-inner{position:relative;padding:64px 0 72px;}
  .classif{
    display:inline-flex;flex-wrap:wrap;gap:0;align-items:stretch;
    border:1px solid var(--ink-line);border-radius:6px;overflow:hidden;margin-bottom:30px;
    font-family:"JetBrains Mono",monospace;font-size:11.5px;letter-spacing:0.16em;text-transform:uppercase;
  }
  .classif span{padding:7px 13px;color:var(--mute);border-right:1px solid var(--ink-line);}
  .classif span:last-child{border-right:0;}
  .classif span.live{color:#04130d;background:var(--jade);font-weight:700;letter-spacing:0.12em;}
  .classif span.live::before{content:"●  ";}

  h1.title{
    font-weight:900;font-size:clamp(40px,8.2vw,92px);
    letter-spacing:-0.025em;color:#fff;max-width:14ch;text-wrap:balance;
  }
  h1.title em{font-style:normal;color:var(--jade);}
  .decode{
    font-family:"JetBrains Mono",monospace;font-size:clamp(13px,2.4vw,16px);
    color:var(--jade);margin:24px 0 0;letter-spacing:0.02em;min-height:1.4em;
  }
  .decode .pre{color:var(--mute);}
  .lede{font-size:clamp(18px,2.4vw,22px);color:#CDD3DC;max-width:60ch;margin:26px 0 0;line-height:1.55;}
  .byline{font-family:"JetBrains Mono",monospace;font-size:12.5px;color:var(--mute);margin-top:22px;letter-spacing:0.02em;}
  .byline b{color:#E9E6DD;font-weight:500;}

  .hero-cta{display:flex;flex-wrap:wrap;gap:14px;margin-top:34px;}
  .btn{
    display:inline-flex;align-items:center;gap:9px;text-decoration:none;
    font-family:"Archivo",sans-serif;font-weight:700;font-size:15px;letter-spacing:0.01em;
    padding:14px 22px;border-radius:8px;transition:transform .12s, background .15s, border-color .15s;
  }
  .btn:active{transform:translateY(1px);}
  .btn-primary{background:var(--jade);color:#04130d;}
  .btn-primary:hover{background:#48d6a6;}
  .btn-ghost{background:transparent;color:#fff;border:1px solid var(--ink-line);}
  .btn-ghost:hover{border-color:var(--jade);color:var(--jade);}
  .btn-play{background:#C9543F;color:#fff;}
  .btn-play:hover{background:#e0654f;}
  .btn-paper{background:#fff;color:var(--jade-deep);border:1px solid var(--paper-line);}
  .btn-paper:hover{border-color:var(--jade-deep);}
  .btn .arw{font-family:"JetBrains Mono",monospace;}

  .hero-status{
    margin-top:40px;display:flex;flex-wrap:wrap;gap:18px;
    font-family:"JetBrains Mono",monospace;font-size:12px;color:var(--mute);letter-spacing:0.05em;
  }
  .hero-status b{color:var(--jade);font-weight:500;}
  .hero-status a{color:var(--jade);text-decoration:none;}
  .hero-status a:hover{text-decoration:underline;}

  /* ---------- SECTIONS ---------- */
  section{padding:84px 0;}
  .sec-head{margin-bottom:46px;max-width:62ch;}
  .sec-head .eyebrow{display:block;margin-bottom:16px;}
  .sec-head h2{font-weight:800;font-size:clamp(28px,4.6vw,46px);color:inherit;letter-spacing:-0.02em;}
  .sec-head p{font-size:19px;margin:18px 0 0;color:var(--mute);line-height:1.55;}

  .on-paper{background:var(--paper);color:var(--ink-text);}
  .on-paper .eyebrow{color:var(--jade-deep);}
  .on-paper .sec-head p{color:var(--mute-paper);}

  /* ---------- MISE À JOUR POST-LIVE (remplace l'agenda) ---------- */
  #update{padding-top:70px;}
  .patch-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:16px;margin-bottom:36px;}
  .patch-head h2{font-weight:800;font-size:clamp(28px,4.6vw,46px);letter-spacing:-0.02em;color:#fff;}
  .patch-head .stamp{
    font-family:"JetBrains Mono",monospace;font-size:12px;letter-spacing:0.14em;text-transform:uppercase;
    color:var(--amber);border:1px solid rgba(217,145,59,0.5);border-radius:6px;padding:6px 12px;white-space:nowrap;
  }
  .patch-lede{font-size:19px;color:var(--mute);max-width:62ch;line-height:1.55;margin:0 0 40px;}
  .patch-lede b{color:#E9E6DD;font-weight:600;}

  /* ---------- CARD GRID (messageries) ---------- */
  .grid{display:grid;gap:18px;}
  .grid.cols-2{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));}
  .grid.cols-3{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));}

  .card{
    background:var(--ink-panel);border:1px solid var(--ink-line);border-radius:12px;padding:26px;
    position:relative;transition:border-color .18s, transform .18s;
  }
  .card:hover{border-color:var(--jade-deep);transform:translateY(-2px);}
  .card .rank{font-family:"JetBrains Mono",monospace;font-size:12px;color:var(--mute);letter-spacing:0.1em;}
  .card h3{font-family:"Archivo";font-weight:800;font-size:23px;color:#fff;margin:10px 0 4px;letter-spacing:0;}
  .card .tag{font-family:"JetBrains Mono",monospace;font-size:12px;color:var(--jade);letter-spacing:0.04em;}
  .card p{font-size:16px;color:#C4CBD4;margin:14px 0 0;line-height:1.5;}
  .card ul{list-style:none;padding:0;margin:16px 0 0;}
  .card li{position:relative;padding-left:22px;font-size:15px;color:#C4CBD4;margin:9px 0;line-height:1.45;}
  .card li::before{content:"";position:absolute;left:0;top:9px;width:8px;height:8px;border-radius:2px;background:var(--jade);}
  .card li.minus::before{background:var(--amber);}
  .card .verdict{margin-top:18px;padding-top:16px;border-top:1px solid var(--ink-line);font-family:"JetBrains Mono",monospace;font-size:12.5px;color:var(--mute);}

  /* carte vedette (SimpleX) */
  .card.featured{
    grid-column:1 / -1;
    border-color:rgba(55,191,146,0.55);
    background:linear-gradient(180deg, rgba(55,191,146,0.07), var(--ink-panel) 55%);
    box-shadow:0 0 50px rgba(55,191,146,0.07);
  }
  .card.featured:hover{border-color:var(--jade);}
  .card.featured .rank{color:var(--jade);}
  .card.featured .cols{display:grid;grid-template-columns:1fr 1fr;gap:0 34px;margin-top:4px;}
  @media (max-width:820px){ .card.featured .cols{grid-template-columns:1fr;} }

  /* ---------- WARNING CALLOUT ---------- */
  .callout{
    margin-top:26px;border:1px solid rgba(201,84,63,0.5);border-radius:12px;
    background:linear-gradient(180deg, rgba(201,84,63,0.08), transparent);
    padding:26px 28px;display:grid;grid-template-columns:auto 1fr;gap:20px;align-items:start;
  }
  .callout .badge{font-family:"Archivo";font-weight:900;font-size:13px;color:var(--alert);border:1px solid var(--alert);border-radius:6px;padding:6px 10px;white-space:nowrap;letter-spacing:0.05em;}
  .callout h3{font-family:"Archivo";font-weight:800;font-size:21px;color:#fff;margin:0 0 8px;letter-spacing:0;}
  .callout p{margin:0 0 10px;font-size:16px;color:#CBD0D8;line-height:1.55;}
  .callout p:last-child{margin-bottom:0;}
  .callout b{color:#fff;font-weight:600;}
  /* variante jade (bonne nouvelle) */
  .callout.jade{border-color:rgba(55,191,146,0.5);background:linear-gradient(180deg, rgba(55,191,146,0.08), transparent);}
  .callout.jade .badge{color:var(--jade);border-color:var(--jade);}
  /* variante discrète (remerciements) */
  .callout.quiet{border-color:var(--ink-line);background:var(--ink-panel);}
  .callout.quiet .badge{color:var(--mute);border-color:var(--ink-line);}

  /* ---------- PGP DIAGRAM ---------- */
  .pgp-wrap{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:8px;}
  .pgp-col{border-radius:12px;padding:24px;border:1px solid var(--ink-line);background:var(--ink-panel);}
  .pgp-col.bad{border-color:rgba(201,84,63,0.45);}
  .pgp-col.good{border-color:rgba(55,191,146,0.45);}
  .pgp-col .head{display:flex;align-items:center;gap:10px;font-family:"Archivo";font-weight:800;font-size:17px;color:#fff;margin-bottom:18px;}
  .pgp-col .dot{width:11px;height:11px;border-radius:50%;}
  .pgp-col.bad .dot{background:var(--alert);}
  .pgp-col.good .dot{background:var(--jade);}
  .msgbox{font-family:"JetBrains Mono",monospace;font-size:13px;border-radius:8px;padding:14px;line-height:1.55;}
  .msgbox.clear{background:#0c1119;border:1px dashed rgba(201,84,63,0.5);color:#D6A9A0;}
  .msgbox.cipher{background:#0c1119;border:1px dashed rgba(55,191,146,0.5);color:var(--jade);word-break:break-all;}
  .pgp-col .flow{font-family:"JetBrains Mono",monospace;font-size:12px;color:var(--mute);text-align:center;margin:12px 0;letter-spacing:0.08em;}
  .pgp-col ul{list-style:none;padding:0;margin:16px 0 0;}
  .pgp-col li{font-size:14.5px;color:#C4CBD4;padding-left:22px;position:relative;margin:8px 0;line-height:1.45;}
  .pgp-col.bad li::before{content:"✕";position:absolute;left:0;color:var(--alert);font-family:"JetBrains Mono";}
  .pgp-col.good li::before{content:"✓";position:absolute;left:0;color:var(--jade);font-family:"JetBrains Mono";}
  .resume{margin-top:22px;display:grid;grid-template-columns:1fr 1fr;gap:14px;}
  .resume div{border-radius:10px;padding:16px 18px;font-size:15.5px;line-height:1.5;}
  .resume .r-bad{background:rgba(201,84,63,0.08);border:1px solid rgba(201,84,63,0.35);}
  .resume .r-good{background:rgba(55,191,146,0.08);border:1px solid rgba(55,191,146,0.35);}
  .resume b{font-family:"Archivo";font-weight:800;display:block;margin-bottom:4px;color:#fff;}
  .reco{margin-top:24px;font-family:"JetBrains Mono",monospace;font-size:13.5px;color:var(--mute);background:var(--ink-panel);border:1px solid var(--ink-line);border-radius:10px;padding:16px 18px;}
  .reco b{color:var(--jade);}
  .reco a{color:#fff;}

  /* ---------- VOIP DIAGRAM ---------- */
  .voip-wrap{display:grid;grid-template-columns:1fr 1fr;gap:18px;}
  .voip-col{border-radius:12px;border:1px solid var(--paper-line);padding:24px;text-align:center;background:var(--paper-2);}
  .voip-col.net{background:#dfe2ec;border-color:#c5cad9;}
  .voip-col h3{font-family:"Archivo";font-weight:800;font-size:20px;color:var(--ink-text);margin:0 0 6px;letter-spacing:0;}
  .voip-col .ico{display:flex;justify-content:center;gap:18px;margin:14px 0;}
  .voip-col .ico svg{width:46px;height:46px;}
  .voip-col p{margin:0;font-family:"JetBrains Mono",monospace;font-size:12.5px;color:var(--mute-paper);letter-spacing:0.04em;}
  .voip-note{margin-top:20px;background:rgba(201,84,63,0.07);border:1px solid rgba(201,84,63,0.4);border-radius:10px;padding:16px 18px;font-size:15.5px;color:var(--ink-text);}
  .voip-note b{color:var(--alert);}

  /* paper card variant */
  .pcard{background:#fff;border:1px solid var(--paper-line);border-radius:12px;padding:24px;transition:transform .18s, box-shadow .18s;}
  .pcard:hover{transform:translateY(-2px);box-shadow:0 10px 30px rgba(20,24,34,0.08);}
  .pcard h3{font-family:"Archivo";font-weight:800;font-size:20px;color:var(--ink-text);margin:0 0 4px;letter-spacing:0;}
  .pcard .tag{font-family:"JetBrains Mono",monospace;font-size:12px;color:var(--jade-deep);letter-spacing:0.04em;}
  .pcard p{font-size:16px;color:#3c434e;margin:12px 0 0;line-height:1.5;}
  .pcard .step-num{font-family:"JetBrains Mono",monospace;font-size:12px;color:var(--jade-deep);letter-spacing:0.1em;display:block;margin-bottom:8px;}
  .pcard a.lk{font-family:"JetBrains Mono",monospace;font-size:13px;color:var(--jade-deep);text-decoration:none;font-weight:500;word-break:break-all;}
  .pcard a.lk:hover{text-decoration:underline;}

  /* ---------- CENSURE timeline ---------- */
  .tl{border-left:2px solid var(--ink-line);margin-left:6px;padding-left:0;}
  .tl .item{position:relative;padding:0 0 34px 30px;}
  .tl .item::before{content:"";position:absolute;left:-7px;top:4px;width:12px;height:12px;border-radius:50%;background:var(--ink);border:2px solid var(--jade);}
  .tl .item:last-child{padding-bottom:0;}
  .tl .when{font-family:"JetBrains Mono",monospace;font-size:12px;color:var(--jade);letter-spacing:0.06em;}
  .tl .item h3{font-family:"Archivo";font-weight:700;font-size:20px;color:#fff;margin:8px 0 8px;letter-spacing:0;}
  .tl .item p{margin:0;font-size:16px;color:#C4CBD4;line-height:1.55;}
  .tl .item p + p{margin-top:10px;}
  .tl .item b{color:#fff;font-weight:600;}
  .inline-link{color:var(--jade);text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px;}
  .inline-link:hover{color:#48d6a6;}

  .factbox{margin-top:14px;border:1px solid var(--ink-line);border-radius:8px;background:var(--ink-panel);padding:14px 16px;font-family:"JetBrains Mono",monospace;font-size:12.5px;color:var(--mute);line-height:1.6;}
  .factbox b{color:var(--jade);font-weight:500;}
  .factbox a{color:#fff;}
  /* variante papier */
  .factbox.paper{background:#fff;border-color:var(--paper-line);color:var(--mute-paper);}
  .factbox.paper b{color:var(--jade-deep);}
  .factbox.paper a{color:var(--jade-deep);}

  /* ---------- EURO NUM risk grid ---------- */
  .risk{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px;}
  .risk .r{background:var(--ink-panel);border:1px solid var(--ink-line);border-radius:12px;padding:22px;}
  .risk .r .n{font-family:"JetBrains Mono",monospace;font-size:12px;color:var(--amber);letter-spacing:0.1em;}
  .risk .r h3{font-family:"Archivo";font-weight:700;font-size:18px;color:#fff;margin:10px 0 8px;letter-spacing:0;}
  .risk .r p{margin:0;font-size:15px;color:#C4CBD4;line-height:1.5;}
  .balance{margin-top:24px;border-left:3px solid var(--amber);background:rgba(217,145,59,0.07);border-radius:0 10px 10px 0;padding:18px 22px;font-size:16px;color:#D7D2C7;line-height:1.6;}
  .balance b{color:var(--amber);font-family:"Archivo";font-weight:700;}
  /* variante papier */
  .balance.paper{color:var(--ink-text);}
  .balance.jade{border-left-color:var(--jade-deep);background:rgba(31,142,106,0.08);}
  .balance.jade b{color:var(--jade-deep);}

  /* ---------- CLEARANCE OS feature ---------- */
  .terminal{
    border:1px solid var(--jade-deep);border-radius:14px;overflow:hidden;background:#070b11;
    box-shadow:0 0 60px rgba(55,191,146,0.08);
  }
  .term-bar{display:flex;align-items:center;gap:8px;padding:12px 16px;background:#0c1219;border-bottom:1px solid var(--ink-line);}
  .term-bar i{width:11px;height:11px;border-radius:50%;display:inline-block;}
  .term-bar .r1{background:#C9543F;}.term-bar .r2{background:#D9913B;}.term-bar .r3{background:#37BF92;}
  .term-bar .ttl{margin-left:10px;font-family:"JetBrains Mono",monospace;font-size:12px;color:var(--mute);letter-spacing:0.06em;}
  .term-body{padding:30px 28px;display:grid;grid-template-columns:1.3fr 1fr;gap:30px;align-items:center;}
  .term-cli{font-family:"JetBrains Mono",monospace;font-size:13.5px;line-height:1.9;color:#C4CBD4;}
  .term-cli .p{color:var(--jade);}
  .term-cli .c{color:#fff;}
  .term-cli .o{color:var(--mute);}
  .term-info h3{font-family:"Archivo";font-weight:800;font-size:26px;color:#fff;margin:0 0 12px;letter-spacing:0;}
  .term-info p{font-size:16px;color:#C4CBD4;margin:0 0 16px;line-height:1.55;}
  .term-info .chips{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 22px;}
  .term-info .chips span{font-family:"JetBrains Mono",monospace;font-size:11.5px;color:var(--jade);border:1px solid var(--ink-line);border-radius:20px;padding:5px 12px;letter-spacing:0.04em;}

  /* ---------- ACTION / CONTACT ---------- */
  .action-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:18px;}
  .acard{border:1px solid var(--paper-line);border-radius:12px;padding:24px;background:#fff;}
  .acard .eyebrow{color:var(--jade-deep);display:block;margin-bottom:12px;}
  .acard h3{font-family:"Archivo";font-weight:800;font-size:20px;color:var(--ink-text);margin:0 0 8px;letter-spacing:0;}
  .acard p{font-size:15.5px;color:#4a515c;margin:0 0 16px;line-height:1.5;}
  .acard a.lk{font-family:"JetBrains Mono",monospace;font-size:13px;color:var(--jade-deep);text-decoration:none;font-weight:500;word-break:break-all;}
  .acard a.lk:hover{text-decoration:underline;}
  .acard .btn{margin-top:4px;}
  .acard .sublk{display:block;margin-top:12px;font-family:"JetBrains Mono",monospace;font-size:12.5px;color:var(--mute-paper);text-decoration:none;}
  .acard .sublk:hover{color:var(--jade-deep);text-decoration:underline;}

  /* ---------- FOOTER + DISCLAIMER ---------- */
  footer{background:var(--ink);border-top:1px solid var(--ink-line);padding:60px 0 50px;}
  .foot-top{display:flex;flex-wrap:wrap;gap:30px;justify-content:space-between;align-items:flex-start;margin-bottom:40px;}
  .foot-brand b{font-family:"Archivo";font-weight:900;font-size:20px;color:#fff;display:block;}
  .foot-brand p{font-family:"JetBrains Mono",monospace;font-size:12.5px;color:var(--mute);margin:8px 0 0;line-height:1.7;letter-spacing:0.02em;}
  .foot-links{display:flex;flex-wrap:wrap;gap:26px;}
  .foot-links a{font-family:"JetBrains Mono",monospace;font-size:13px;color:var(--mute);text-decoration:none;letter-spacing:0.03em;}
  .foot-links a:hover{color:var(--jade);}

  details.legal{border:1px solid var(--ink-line);border-radius:12px;background:var(--ink-panel);overflow:hidden;}
  details.legal summary{
    cursor:pointer;list-style:none;padding:20px 24px;
    font-family:"JetBrains Mono",monospace;font-size:13px;letter-spacing:0.1em;text-transform:uppercase;color:var(--jade);
    display:flex;justify-content:space-between;align-items:center;
  }
  details.legal summary::-webkit-details-marker{display:none;}
  details.legal summary .x{transition:transform .2s;color:var(--mute);}
  details.legal[open] summary .x{transform:rotate(45deg);}
  .legal-body{padding:4px 24px 26px;border-top:1px solid var(--ink-line);}
  .legal-body h4{font-family:"Archivo";font-weight:700;font-size:14px;color:#fff;margin:22px 0 6px;letter-spacing:0.02em;}
  .legal-body p{font-size:14.5px;color:#AEB6C1;line-height:1.6;margin:0;}
  .legal-body p a{color:var(--jade);}
  .copyr{margin-top:34px;font-family:"JetBrains Mono",monospace;font-size:11.5px;color:var(--mute);line-height:1.8;letter-spacing:0.03em;}

  /* ---------- focus visibility ---------- */
  a:focus-visible,summary:focus-visible,.btn:focus-visible{outline:2px solid var(--jade);outline-offset:3px;border-radius:4px;}

  /* ---------- jeu CTA (sur papier) ---------- */
  .gamecta{margin-top:28px;display:flex;flex-wrap:wrap;align-items:center;gap:22px;background:#fff;border:1px solid var(--paper-line);border-radius:14px;padding:24px 26px;}
  .gamecta .gc-ico{width:54px;height:54px;border-radius:12px;background:var(--ink);display:grid;place-items:center;flex:0 0 auto;}
  .gamecta .gc-ico svg{width:28px;height:28px;}
  .gamecta .gc-txt{flex:1 1 260px;}
  .gamecta .gc-txt .eyebrow{color:var(--jade-deep);display:block;margin-bottom:6px;}
  .gamecta .gc-txt h3{font-family:"Archivo";font-weight:800;font-size:21px;color:var(--ink-text);margin:0 0 6px;letter-spacing:0;}
  .gamecta .gc-txt p{margin:0;font-size:15.5px;color:#4a515c;line-height:1.5;}
  .gamecta .gc-actions{display:flex;flex-wrap:wrap;gap:10px;flex:0 0 auto;}

  /* ---------- VPN recap : table de protocoles ---------- */
  .vpn-sub{font-family:"Archivo";font-weight:800;font-size:22px;color:#fff;margin:42px 0 6px;letter-spacing:0;}
  .vpn-sub.on-paper-sub{color:var(--ink-text);}
  .vpn-lede{color:var(--mute);max-width:64ch;margin:0 0 20px;font-size:16px;line-height:1.55;}
  .vpn-lede.on-paper-sub{color:var(--mute-paper);}
  .vpn-lede b{color:#fff;font-weight:600;}
  .vpn-lede.on-paper-sub b{color:var(--ink-text);}
  .ptable-wrap{overflow-x:auto;border:1px solid var(--ink-line);border-radius:12px;background:var(--ink-panel);}
  .ptable{width:100%;border-collapse:collapse;font-size:14.5px;min-width:560px;}
  .ptable th,.ptable td{text-align:left;padding:13px 16px;border-bottom:1px solid var(--ink-line);vertical-align:top;}
  .ptable tr:last-child td{border-bottom:0;}
  .ptable th{font-family:"JetBrains Mono",monospace;font-size:11.5px;letter-spacing:0.1em;text-transform:uppercase;color:var(--mute);font-weight:500;}
  .ptable td{color:#C4CBD4;line-height:1.45;}
  .ptable td:first-child{font-family:"JetBrains Mono",monospace;color:var(--jade);white-space:nowrap;font-size:13.5px;}
  .ptable .cav{color:var(--amber);}

  /* ---------- responsive ---------- */
  @media (max-width:820px){
    body{font-size:17px;}
    section{padding:60px 0;}
    .pgp-wrap,.voip-wrap,.resume{grid-template-columns:1fr;}
    .term-body{grid-template-columns:1fr;gap:24px;}
    .callout{grid-template-columns:1fr;gap:14px;}
    .foot-top{flex-direction:column;}
    .brand span{display:none;}
  }
  @media (prefers-reduced-motion: reduce){
    *{animation:none !important;transition:none !important;}
  }