/* ============================================================
   TRUvector.dev — Design System v4  (romantico · geek)
   Une seule source de vérité pour toutes les pages.
   ============================================================ */
:root{
  color-scheme: dark;
  --nuit:#070b11;
  --nuit-2:#0b121a;
  --panneau:rgba(17,27,37,.60);
  --panneau-2:rgba(13,21,29,.74);
  --bord:rgba(126,240,205,.16);
  --bord-fort:rgba(126,240,205,.34);

  --menthe:#34f5c5;         /* néon signature */
  --menthe-soft:#8ff3d9;
  --aurore-v:#b14aed;       /* violet aurore */
  --aurore-v-soft:#c98bf5;
  --aurore-g:#59e39a;       /* vert aurore */
  --ambre:#f4c56b;          /* guirlandes */

  --texte:#e8f2ee;
  --texte-2:#9db2ae;
  --texte-3:#6f8582;

  --sans:'Space Grotesk',system-ui,-apple-system,sans-serif;
  --mono:'JetBrains Mono',ui-monospace,monospace;
  --r:18px;
  --maxw:1040px;

  /* --- alias hérités (anciens articles / modules) : sans eux, couleurs perdues --- */
  --bg3:var(--panneau-2);
  --borderg:var(--bord-fort);
  --disp:var(--sans);
  --textb:var(--texte);
  --textd:#7d948f;          /* commentaires de code */
  --acc:var(--menthe);
  --acc2:#7cc8ff;           /* clés / propriétés */
  --acc3:#ff8b8b;           /* erreurs / anti-patterns */
  --acc4:var(--ambre);      /* chaînes */
  --acc5:var(--aurore-v-soft); /* mots-clés */
  --acc6:var(--aurore-g);   /* fonctions */
  --acc7:var(--menthe-soft);

  /* ===== Design tokens v5 (source unique pour les nouveaux composants) ===== */
  /* rayons */
  --r-xs:6px; --r-sm:10px; --r-md:14px; --r-lg:var(--r); --r-xl:24px; --r-pill:999px;
  /* espacements (échelle 4 px) */
  --sp-1:4px; --sp-2:8px; --sp-3:12px; --sp-4:16px; --sp-5:22px; --sp-6:32px; --sp-7:48px; --sp-8:72px;
  /* élévations */
  --elev-1:0 2px 10px rgba(0,0,0,.25);
  --elev-2:0 10px 28px rgba(0,0,0,.35);
  --elev-3:0 24px 60px rgba(0,0,0,.5);
  --glow-menthe:0 0 22px rgba(52,245,197,.35);
  --glow-aurore:0 0 26px rgba(177,74,237,.35);
  /* mouvement */
  --dur-1:.15s; --dur-2:.25s; --dur-3:.45s; --dur-4:.8s;
  --ease-out:cubic-bezier(.2,.8,.2,1);
  --ease-spring:cubic-bezier(.2,.9,.3,1.25);
  --ease-in:cubic-bezier(.5,0,.8,.3);
  /* surfaces */
  --surface-1:rgba(11,18,26,.72); --surface-2:rgba(13,21,29,.86); --surface-solide:#0b121a;
  --voile:rgba(7,11,17,.74);         /* voile de lisibilité sur l'aurore */
  --rose:#ff7ab6;
}
:root:not([data-theme="light"]), :root[data-theme="dark"]{ color-scheme: dark; }

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:var(--sans);
  color:var(--texte);
  background:
    radial-gradient(1100px 620px at 50% -12%, rgba(177,74,237,.20), transparent 60%),
    radial-gradient(900px 520px at 84% 4%, rgba(52,245,197,.12), transparent 58%),
    radial-gradient(760px 420px at 10% 10%, rgba(244,197,107,.08), transparent 60%),
    var(--nuit);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
  min-height:100vh;
}
img{max-width:100%;display:block}
a{color:var(--menthe);text-decoration:none}
a:hover{text-decoration:underline}
:focus-visible{outline:2px solid var(--menthe);outline-offset:3px;border-radius:6px}

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

/* ---------- aurore + guirlandes (fond décoratif) ---------- */
.aurora{position:absolute;inset:-30% -20% auto -20%;height:130%;z-index:0;filter:blur(48px);opacity:.5;pointer-events:none}
.aurora span{position:absolute;border-radius:50%;mix-blend-mode:screen}
.aurora .a1{width:60%;height:60%;left:6%;top:-6%;background:radial-gradient(circle,var(--aurore-g),transparent 62%);animation:drift 17s ease-in-out infinite alternate}
.aurora .a2{width:58%;height:58%;right:4%;top:-2%;background:radial-gradient(circle,var(--aurore-v),transparent 62%);animation:drift 21s ease-in-out infinite alternate-reverse}
.aurora .a3{width:44%;height:44%;left:34%;top:16%;background:radial-gradient(circle,var(--menthe),transparent 60%);opacity:.5;animation:drift 24s ease-in-out infinite alternate}
@keyframes drift{from{transform:translate3d(-3%,0,0) scale(1)}to{transform:translate3d(4%,5%,0) scale(1.12)}}

.lights{position:absolute;top:12px;left:0;right:0;height:26px;z-index:1;display:flex;justify-content:space-around;padding:0 6%;pointer-events:none}
.lights i{width:6px;height:6px;border-radius:50%;background:var(--ambre);box-shadow:0 0 10px 2px rgba(244,197,107,.7);animation:twinkle 3.4s ease-in-out infinite}
.lights i:nth-child(2n){animation-delay:.7s;opacity:.6}
.lights i:nth-child(3n){animation-delay:1.4s}
@keyframes twinkle{0%,100%{opacity:.35}50%{opacity:1}}

/* ---------- triskèle ---------- */
.triskele{filter:drop-shadow(0 0 10px rgba(52,245,197,.85)) drop-shadow(0 0 24px rgba(52,245,197,.4))}
.triskele path{fill:none;stroke:var(--menthe);stroke-width:7;stroke-linecap:round}
.triskele .core{fill:var(--menthe);stroke:none}

/* ---------- barre de navigation ---------- */
.site-nav{position:sticky;top:0;z-index:40;backdrop-filter:blur(12px);background:rgba(7,11,17,.66);border-bottom:1px solid var(--bord)}
.site-nav .row{display:flex;align-items:center;gap:16px;height:60px}
.brand{display:flex;align-items:center;gap:10px;font-weight:700;letter-spacing:.4px;font-size:18px}
.brand svg{width:26px;height:26px}
.brand .tru{color:var(--menthe)} .brand .vec{color:var(--texte)} .brand .dev{color:var(--aurore-v-soft);font-weight:500}
.nav-links{margin-left:auto;display:flex;gap:18px;font-family:var(--mono);font-size:13px}
.nav-links a{color:var(--texte-2)} .nav-links a:hover{color:var(--menthe);text-decoration:none}
.nav-links a[aria-current="page"]{color:var(--menthe)}

/* ---------- wordmark ---------- */
.wordmark{font-weight:700;letter-spacing:.5px;line-height:1.05;margin:0}
.wordmark .tru{color:var(--menthe);text-shadow:0 0 18px rgba(52,245,197,.55)}
.wordmark .vec{color:var(--texte)}
.wordmark .dev{color:var(--aurore-v-soft);font-weight:500}
.kicker{font-family:var(--mono);font-size:12.5px;color:var(--menthe-soft);letter-spacing:2px;opacity:.9}

/* ---------- boutons ---------- */
.btn{display:inline-flex;align-items:center;gap:9px;font-family:var(--mono);font-size:14px;font-weight:500;
  padding:12px 22px;border-radius:12px;border:1px solid var(--menthe);color:#04120d;
  background:linear-gradient(180deg,var(--menthe),#1fd6ac);cursor:pointer;transition:transform .15s,box-shadow .2s;
  box-shadow:0 0 22px rgba(52,245,197,.28)}
.btn:hover{transform:translateY(-1px);box-shadow:0 0 30px rgba(52,245,197,.5);text-decoration:none}
.btn:disabled,.btn[aria-disabled="true"]{opacity:.4;cursor:not-allowed;box-shadow:none;filter:grayscale(.3)}
.btn-ghost{background:transparent;color:var(--menthe-soft);border:1px solid var(--bord-fort);box-shadow:none}
.btn-ghost:hover{border-color:var(--menthe);color:var(--menthe);box-shadow:0 0 18px rgba(52,245,197,.15)}
/* Les règles de contenu du type « .article a { color: menthe } » écrasaient la couleur
   des boutons (texte menthe sur fond menthe = illisible). On verrouille ici. */
/* Boutons pleins : texte sombre, même visités ou dans un article (sinon menthe sur menthe). */
a.btn:not(.btn-ghost):not(.btn-outline),a.btn:not(.btn-ghost):not(.btn-outline):hover,a.btn:not(.btn-ghost):not(.btn-outline):visited,.btn-primary{color:#04120d;text-decoration:none}
/* Boutons fantômes : texte clair dans TOUS les états (visité compris) — spécificité supérieure aux règles ci-dessus. */
.btn.btn-ghost,.btn.btn-outline,a.btn.btn-ghost:link,a.btn.btn-ghost:visited,a.btn.btn-outline:link,a.btn.btn-outline:visited{background:transparent;color:var(--menthe-soft);border:1px solid var(--bord-fort);box-shadow:none;text-decoration:none}
.btn.btn-ghost:hover,.btn.btn-outline:hover,a.btn.btn-ghost:visited:hover,a.btn.btn-outline:visited:hover{border-color:var(--menthe);color:var(--menthe)}

/* ---------- cartes / verre ---------- */
.card{background:var(--panneau-2);border:1px solid var(--bord);border-radius:var(--r);padding:18px;backdrop-filter:blur(8px)}
.eyebrow{font-family:var(--mono);font-size:12px;color:var(--menthe);letter-spacing:2px}
h2{font-size:clamp(22px,4.4vw,30px);margin:8px 0 4px;font-weight:600;letter-spacing:-.3px}
.sub{color:var(--texte-2);margin:0 0 26px;font-size:15.5px}

/* ---------- pied de page ---------- */
.hr{height:1px;background:linear-gradient(90deg,transparent,var(--bord-fort),transparent)}
footer.site-foot{padding:44px 0 60px;text-align:center;color:var(--texte-3);font-size:13px;position:relative;z-index:2}
footer.site-foot .fm{font-family:var(--mono);color:var(--menthe-soft);margin-bottom:10px}
footer.site-foot a{color:var(--texte-2)} footer.site-foot a:hover{color:var(--menthe)}

@media (prefers-reduced-motion:reduce){
  .aurora span,.lights i,.triskele{animation:none!important}
}

/* ---------- pages légales & conformité ---------- */
.legal{max-width:780px;margin:0 auto;padding:40px 22px 60px}
.legal .head-tris{width:54px;height:54px;margin-bottom:14px}
.legal h1{font-size:clamp(25px,5vw,34px);margin:0 0 6px;font-weight:700;letter-spacing:-.3px}
.legal h1 .dev{color:var(--aurore-v-soft);font-weight:500}
.legal .updated{font-family:var(--mono);font-size:12px;color:var(--texte-3);margin:0 0 8px}
.legal .intro{color:var(--texte-2);font-size:15px;margin:0 0 22px}
.legal .toc-legal{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 26px;font-family:var(--mono);font-size:12.5px}
.legal .toc-legal a{color:var(--texte-2);border:1px solid var(--bord);border-radius:999px;padding:5px 12px}
.legal .toc-legal a:hover{border-color:var(--menthe);color:var(--menthe);text-decoration:none}
.legal .toc-legal a[aria-current="page"]{border-color:var(--menthe);color:var(--menthe)}
.legal section{background:var(--panneau-2);border:1px solid var(--bord);border-left:3px solid var(--menthe);border-radius:14px;padding:18px 20px;margin-bottom:16px}
.legal section:nth-of-type(even){border-left-color:var(--aurore-v)}
.legal h2{font-size:16.5px;margin:0 0 10px;font-weight:600}
.legal h3{font-size:14.5px;margin:16px 0 6px;font-weight:600;color:var(--menthe-soft)}
.legal p{margin:0 0 10px;color:var(--texte);font-size:14.5px}
.legal ul{margin:0 0 10px;padding-left:20px}
.legal li{margin:0 0 6px;font-size:14.5px}
.legal li::marker{color:var(--menthe)}
.legal .k{font-family:var(--mono);font-size:12.5px;color:var(--menthe-soft)}
.legal .todo{color:var(--ambre);font-family:var(--mono);font-size:12px}
.legal .tw{overflow-x:auto;margin:0 0 10px}
.legal table{border-collapse:collapse;width:100%;min-width:440px;font-size:13.3px}
.legal th,.legal td{text-align:left;padding:8px 10px;border-bottom:1px solid var(--bord);vertical-align:top}
.legal th{font-family:var(--mono);font-size:11px;letter-spacing:.5px;color:var(--texte-3);text-transform:uppercase;font-weight:500}
.legal td code,.legal p code{font-family:var(--mono);font-size:.86em;background:rgba(52,245,197,.08);border:1px solid var(--bord);border-radius:5px;padding:1px 5px;color:var(--menthe-soft)}
.foot-legal{font-family:var(--mono);font-size:12px;margin-top:8px}
.foot-legal a{color:var(--texte-2)} .foot-legal a:hover{color:var(--menthe)}

/* ---------- portail d'accès générique ---------- */
.gate{position:fixed;inset:0;z-index:100;background:var(--nuit);display:flex;align-items:center;justify-content:center;padding:24px}
.gate.hidden{display:none}
.gate .box{max-width:400px;width:100%;text-align:center}
.gate .box .triskele{width:78px;height:78px;margin:0 auto 16px}
.gate .box h2{font-size:21px;margin:0 0 6px}
.gate .box p{color:var(--texte-2);font-size:14px;margin:0 0 18px}
.gate input{width:100%;text-align:center;letter-spacing:2px;font-family:var(--mono);font-size:16px;color:var(--texte);background:var(--panneau);border:1px solid var(--bord-fort);border-radius:12px;padding:14px;margin-bottom:12px}
.gate .err{color:#ff8b8b;font-family:var(--mono);font-size:12.5px;min-height:18px;margin-bottom:8px}
.gate .btn{width:100%;justify-content:center}

/* ---------- sections de contenu ---------- */
.section-hero{position:relative;padding:52px 0 24px;text-align:center;overflow:hidden}
.section-hero .in{position:relative;z-index:2}
.section-hero .triskele{width:58px;height:58px;margin:0 auto 14px}
.section-hero h1{font-size:clamp(26px,5.5vw,38px);margin:0;font-weight:700;letter-spacing:-.3px}
.section-hero h1 .dev{color:var(--aurore-v-soft);font-weight:500}
.section-hero p{color:var(--texte-2);max-width:56ch;margin:12px auto 0;font-size:15.5px}
.sec-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(258px,1fr));gap:16px;padding:8px 0 34px}
.sec-card{display:flex;flex-direction:column;gap:8px;background:var(--panneau-2);border:1px solid var(--bord);border-radius:var(--r);padding:18px;transition:transform .15s,border-color .2s}
.sec-card:hover{transform:translateY(-2px);border-color:var(--bord-fort)}
.sec-card .badge{align-self:flex-start;font-family:var(--mono);font-size:10.5px;letter-spacing:1px;text-transform:uppercase;color:var(--aurore-v-soft);border:1px solid rgba(177,74,237,.4);background:rgba(177,74,237,.10);border-radius:999px;padding:3px 9px}
.sec-card h3{margin:2px 0 0;font-size:17px;font-weight:600}
.sec-card p{margin:0;color:var(--texte-2);font-size:14px;flex:1}
.sec-card .go{font-family:var(--mono);font-size:12.5px;color:var(--menthe);margin-top:6px}
.sec-card .date{font-family:var(--mono);font-size:11px;color:var(--texte-3)}
.empty{text-align:center;color:var(--texte-2);border:1px dashed var(--bord-fort);border-radius:var(--r);padding:44px 20px;background:var(--panneau);margin:8px 0 34px}
.empty .ic{font-size:30px;display:block;margin-bottom:10px}

/* ---------- hub d'accueil ---------- */
.hub-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(148px,1fr));gap:12px}
.hub-card{display:flex;flex-direction:column;align-items:center;gap:7px;text-align:center;background:var(--panneau-2);border:1px solid var(--bord);border-radius:16px;padding:20px 14px;color:var(--texte);transition:transform .15s,border-color .2s,box-shadow .2s}
.hub-card:hover{transform:translateY(-3px);border-color:var(--menthe);text-decoration:none;box-shadow:0 0 22px rgba(52,245,197,.12)}
.hub-card .ic{font-size:26px}
.hub-card .t{font-weight:600;font-size:14.5px}
.hub-card .s{font-family:var(--mono);font-size:10px;color:var(--texte-3)}

/* ---------- lecteur musique ---------- */
.player{background:var(--panneau-2);border:1px solid var(--bord);border-radius:var(--r);padding:18px;margin:8px 0 18px}
.player .now{display:flex;align-items:center;gap:14px}
.player .disc{width:54px;height:54px;border-radius:50%;background:radial-gradient(circle at 50% 50%,var(--aurore-v),#0c1016 70%);border:1px solid var(--bord-fort);flex:0 0 auto;position:relative}
.player .disc::after{content:"";position:absolute;inset:44%;background:var(--menthe);border-radius:50%}
.player.playing .disc{animation:tvspin 4s linear infinite}
@keyframes tvspin{to{transform:rotate(360deg)}}
.player .meta{flex:1;min-width:0}
.player .meta .tt{font-weight:600;font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.player .meta .stt{font-family:var(--mono);font-size:11.5px;color:var(--texte-3)}
.player .ctrls{display:flex;gap:8px;margin-top:14px;align-items:center;flex-wrap:wrap}
.player .ctrls button{background:var(--panneau);border:1px solid var(--bord-fort);color:var(--texte);border-radius:10px;width:44px;height:44px;font-size:15px;cursor:pointer}
.player .ctrls button.play{background:linear-gradient(180deg,var(--menthe),#1fd6ac);color:#04120d;border-color:var(--menthe)}
.player .ctrls button:hover{border-color:var(--menthe)}
.player .ctrls .bg{font-family:var(--mono);font-size:11.5px;color:var(--texte-2);display:flex;align-items:center;gap:6px;margin-left:auto}
.playlist{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.playlist li{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--bord);border-radius:10px;cursor:pointer;font-size:14px}
.playlist li:hover{border-color:var(--bord-fort)}
.playlist li.active{border-color:var(--menthe);background:rgba(52,245,197,.06)}
.playlist li .n{font-family:var(--mono);font-size:11px;color:var(--texte-3)}

/* ---------- dons ---------- */
.dons-grid{display:flex;flex-wrap:wrap;gap:12px;margin:10px 0 20px}
.dons-grid a{flex:1;min-width:170px;text-align:center;justify-content:center}

/* ---------- mini-lecteur global (musique sur tout le site) ---------- */
.mini-player{position:fixed;right:14px;bottom:14px;z-index:60;display:flex;align-items:center;gap:8px;
  background:rgba(11,18,26,.92);backdrop-filter:blur(10px);border:1px solid var(--bord-fort);border-radius:999px;
  padding:7px 10px 7px 8px;box-shadow:0 6px 26px rgba(0,0,0,.4),0 0 18px rgba(52,245,197,.12);max-width:min(76vw,320px)}
.mini-player .mp-disc{width:26px;height:26px;border-radius:50%;background:radial-gradient(circle at 50% 50%,var(--aurore-v),#0c1016 70%);border:1px solid var(--bord-fort);flex:0 0 auto;position:relative}
.mini-player .mp-disc::after{content:"";position:absolute;inset:42%;background:var(--menthe);border-radius:50%}
.mini-player.playing .mp-disc{animation:tvspin 4s linear infinite}
.mini-player .mp-tt{font-size:12.5px;color:var(--texte);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;min-width:40px}
.mini-player .mp-b{background:transparent;border:0;color:var(--texte-2);font-size:14px;cursor:pointer;width:28px;height:28px;border-radius:8px;flex:0 0 auto}
.mini-player .mp-b:hover{color:var(--menthe);background:rgba(52,245,197,.08)}
.mini-player .mp-pp{color:var(--menthe)}
.mini-player a.mp-b{display:inline-flex;align-items:center;justify-content:center;text-decoration:none}

/* ---------- lisibilité des cartes (contraste renforcé) ---------- */
.sec-card{background:linear-gradient(180deg,rgba(18,29,40,.92),rgba(10,16,23,.94))}
.sec-card p{color:#b3c6c2}
.sec-card h3{color:var(--texte)}

/* ---------- filtres de sections (assets/js/filters.js) ---------- */
.tvf{display:flex;flex-direction:column;gap:12px;margin:6px 0 18px;position:relative;z-index:3}
.tvf-top{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.tvf-search{flex:1 1 260px;position:relative}
.tvf-search input{width:100%;font-family:var(--sans);font-size:15px;color:var(--texte);background:rgba(10,16,23,.85);border:1px solid var(--bord-fort);border-radius:12px;padding:11px 14px 11px 40px}
.tvf-search input:focus{outline:none;border-color:var(--menthe);box-shadow:0 0 0 3px rgba(52,245,197,.14)}
.tvf-search::before{content:"";position:absolute;left:14px;top:50%;width:14px;height:14px;margin-top:-8px;border:2px solid var(--texte-3);border-radius:50%}
.tvf-search::after{content:"";position:absolute;left:26px;top:50%;width:7px;height:2px;margin-top:6px;background:var(--texte-3);transform:rotate(45deg)}
.tvf-search kbd{position:absolute;right:10px;top:50%;transform:translateY(-50%);font-family:var(--mono);font-size:11px;color:var(--texte-3);border:1px solid var(--bord);border-radius:6px;padding:1px 6px}
.tvf-sort{font-family:var(--mono);font-size:12.5px;color:var(--texte);background:rgba(10,16,23,.85);border:1px solid var(--bord-fort);border-radius:12px;padding:10px 12px}
.tvf-count{font-family:var(--mono);font-size:12px;color:var(--texte-3);white-space:nowrap}
.tvf-chips{display:flex;gap:8px;flex-wrap:wrap}
.tvf-chip{font-family:var(--mono);font-size:12px;color:var(--texte-2);background:transparent;border:1px solid var(--bord);border-radius:999px;padding:6px 12px;cursor:pointer;transition:color .15s,border-color .15s,background .15s}
.tvf-chip:hover{color:var(--menthe);border-color:var(--bord-fort)}
.tvf-chip[aria-pressed="true"]{color:#04120d;background:var(--menthe);border-color:var(--menthe)}
.tvf-chip .n{opacity:.6;margin-left:6px}
.tvf-hide{display:none!important}
.tvf-empty{text-align:center;color:var(--texte-2);border:1px dashed var(--bord-fort);border-radius:var(--r);padding:30px 18px;margin:0 0 24px}
.tvf-empty button{margin-top:10px}
mark.tvf-hl{background:rgba(52,245,197,.22);color:inherit;border-radius:3px;padding:0 1px}

/* ---------- menu déroulant "Sections" (nav) ---------- */
.has-menu{position:relative;display:inline-block}
.menu-btn{background:none;border:0;color:var(--texte-2);font-family:var(--mono);font-size:13px;cursor:pointer;padding:0;display:inline-flex;align-items:center;gap:5px}
.menu-btn:hover,.has-menu.open .menu-btn{color:var(--menthe)}
.menu{position:absolute;right:0;top:calc(100% + 12px);min-width:216px;background:rgba(10,16,24,.98);backdrop-filter:blur(12px);border:1px solid var(--bord-fort);border-radius:14px;padding:8px;display:none;flex-direction:column;gap:2px;box-shadow:0 14px 36px rgba(0,0,0,.55),0 0 22px rgba(52,245,197,.10);z-index:60}
.has-menu.open .menu{display:flex}
@media(hover:hover) and (min-width:721px){.has-menu:hover .menu{display:flex}}
.menu a{display:flex;align-items:center;gap:10px;padding:9px 11px;border-radius:9px;color:var(--texte);font-family:var(--sans);font-size:14px}
.menu a:hover{background:rgba(52,245,197,.08);color:var(--menthe);text-decoration:none}
.menu a .mi{width:20px;text-align:center;flex:0 0 auto}
.menu a .ms{margin-left:auto;font-family:var(--mono);font-size:10px;color:var(--texte-3)}
