/* landing-3.css : sorti de landing.html (versionné par date de modification). */
      /* Présentation défilable : une rangée par module (on scrolle pour les voir) */
      /* recentré : les fonctionnalités reviennent vers le milieu */
      .ld-mscroll{margin:34px auto 0;max-width:1080px;counter-reset:msr;position:relative;}
      /* chaque fonctionnalité occupe sa propre « scène » : beaucoup d'espace autour */
      .msr{display:grid;grid-template-columns:1fr 1fr;gap:clamp(48px,7vw,96px);align-items:center;min-height:66vh;padding:44px 0;position:relative;counter-increment:msr;}
      .msr.rev .msr-txt{order:2;}
      @media(max-width:760px){.msr{grid-template-columns:1fr;gap:26px;min-height:auto;padding:60px 0;}.msr.rev .msr-txt{order:0;}}
      /* numéro d'étape (habillage + organisation) */
      .msr-txt{position:relative;}
      .msr-txt::before{content:counter(msr,decimal-leading-zero);display:block;font-family:'Outfit',inherit;font-weight:800;font-size:.82rem;letter-spacing:.14em;color:var(--sw-blue-ink);opacity:.8;margin-bottom:12px;}
      .msr-ic{width:50px;height:50px;border-radius:15px;display:grid;place-items:center;font-size:1.35rem;margin-bottom:16px;}
      .msr-txt h3{font-family:'Outfit',inherit;font-weight:800;font-size:1.7rem;margin:0 0 12px;letter-spacing:-.01em;}
      .msr-txt p{color:var(--dsx-text-mut);margin:0;font-size:1.05rem;line-height:1.65;max-width:430px;}
      /* Zone d'animation SANS fond de carte, avec un halo doux pour l'habiller */
      .msr-vis{position:relative;background:transparent;border:0;box-shadow:none;min-height:360px;display:flex;align-items:center;justify-content:center;padding:0;}
      .msr-vis::before{content:'';position:absolute;inset:-8% -4%;z-index:-1;border-radius:50%;background:radial-gradient(ellipse at center, color-mix(in srgb, var(--sw-blue-ink) 16%, transparent), color-mix(in srgb, var(--sw-violet-ink) 6%, transparent) 46%, transparent 70%);filter:blur(24px);}
      /* Ligne de liaison « timeline » entre les fonctionnalités + nœud par fonctionnalité */
      .ld-mscroll::before{content:'';position:absolute;left:50%;top:4%;bottom:4%;width:2px;transform:translateX(-1px);z-index:-2;
        background:linear-gradient(180deg,transparent,color-mix(in srgb, var(--sw-blue-ink) 30%, transparent) 12%,color-mix(in srgb, var(--sw-violet-ink) 24%, transparent) 88%,transparent);}
      .msr::before{content:'';position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:-1;width:11px;height:11px;border-radius:50%;
        background:var(--dsx-accent);box-shadow:0 0 0 5px color-mix(in srgb, var(--sw-blue-ink) 16%, transparent),0 0 16px color-mix(in srgb, var(--sw-blue-ink) 60%, transparent);}
      @media(max-width:760px){.ld-mscroll::before,.msr::before{display:none;}}
      /* Contenu explicatif : étapes sous le paragraphe */
      .msr-steps{list-style:none;margin:20px 0 0;padding:0;display:flex;flex-direction:column;gap:12px;}
      .msr-steps li{display:flex;align-items:center;gap:12px;font-size:.94rem;color:var(--dsx-text);font-weight:600;}
      .msr-steps li i{display:grid;place-items:center;width:28px;height:28px;border-radius:9px;flex:none;font-size:.9rem;}
      .msr-steps li span{min-width:0;}
      .msr-steps li small{display:block;color:var(--dsx-text-mut);font-weight:400;font-size:.8rem;margin-top:1px;}
      /* Transition type apple.com : entrée pilotée au scroll (via JS msScrollFx) — universelle */
      .msr.reveal{opacity:1;transform:none;}
      .msr-txt,.msr-vis{opacity:0;transform:translateY(70px) scale(.9);will-change:opacity,transform;}
      /* === Scènes riches (mini-UI Discord, sans fond de carte) === */
      .scene{width:100%;max-width:480px;display:flex;flex-direction:column;gap:12px;}
      .dwin{background:var(--sw-surface);border:1px solid color-mix(in srgb, var(--sw-ink) 6%, transparent);border-radius:16px;padding:15px 17px;box-shadow:0 30px 64px -36px rgba(0,0,0,.8);}
      .chh{display:flex;align-items:center;gap:7px;color:var(--sw-ink);font-weight:700;font-size:.9rem;padding-bottom:11px;margin-bottom:13px;border-bottom:1px solid color-mix(in srgb, var(--sw-ink) 7%, transparent);}
      .chh i{color:var(--dsx-text-mut);font-size:1rem;}
      .chh .sp{margin-left:auto;font-size:.7rem;color:var(--dsx-text-mut);font-weight:600;display:inline-flex;align-items:center;gap:5px;}
      .chh .sp::before{content:'';width:7px;height:7px;border-radius:50%;background:var(--sw-green);}
      .dm{display:flex;gap:12px;align-items:flex-start;}
      .dm+.dm{margin-top:13px;}
      .dm .av{width:40px;height:40px;border-radius:50%;flex:none;display:grid;place-items:center;color:var(--sw-ink);font-weight:800;font-family:'Outfit',inherit;font-size:.9rem;}
      .dm .bd{flex:1;min-width:0;}
      .dm .hd{display:flex;align-items:center;gap:8px;}
      .dm .nm{font-weight:700;color:var(--sw-ink);font-size:.9rem;}
      .dm .rl{font-size:.62rem;font-weight:800;padding:2px 7px;border-radius:5px;}
      .dm .tm{font-size:.66rem;color:var(--dsx-text-mut);}
      .dm .tx{color:var(--sw-ink-2);font-size:.88rem;line-height:1.45;margin-top:3px;}
      .dm .tx.del{color:var(--sw-ink-3);text-decoration:line-through;}
      .emb{border-left:4px solid var(--ec,var(--sw-green-ink));background:var(--sw-bg);border-radius:6px;padding:12px 14px;margin-top:7px;}
      .emb .et{font-weight:700;color:var(--sw-ink);font-size:.9rem;margin-bottom:5px;}
      .emb .ex{font-size:.82rem;color:var(--sw-ink-2);line-height:1.45;}
      .emb .eimg{height:76px;border-radius:6px;margin-top:9px;display:flex;align-items:center;justify-content:center;color:var(--sw-on);font-weight:800;font-family:'Outfit',inherit;font-size:1.05rem;background:linear-gradient(120deg,var(--sw-blue),var(--sw-violet));}
      .pill{display:inline-flex;align-items:center;gap:6px;font-size:.8rem;font-weight:800;padding:7px 13px;border-radius:999px;}
      .dbtn{display:inline-flex;align-items:center;gap:8px;font-size:.86rem;font-weight:800;padding:10px 18px;border-radius:9px;background:var(--sw-blue);color:var(--sw-on);box-shadow:0 10px 24px -10px color-mix(in srgb, var(--sw-blue-ink) 75%, transparent);}
      /* Rangée de boutons Discord : TOUJOURS alignée à gauche (Discord ne centre jamais) */
      .drow{display:flex;justify-content:flex-start;flex-wrap:wrap;gap:8px;margin-top:10px;}
      /* carte de rang (Niveaux) */
      .rankc{display:flex;align-items:center;gap:15px;position:relative;}
      .rankc .rav{width:54px;height:54px;border-radius:50%;flex:none;display:grid;place-items:center;color:var(--sw-on);font-weight:800;font-family:'Outfit',inherit;font-size:1.15rem;background:linear-gradient(135deg,var(--sw-sky),var(--sw-blue));}
      .rankc .rr{flex:1;min-width:0;}
      .rankc .rtop{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:8px;}
      .rankc .rtop b{color:var(--sw-ink);font-size:.96rem;font-weight:800;}
      .rankc .lvl{font-size:.72rem;font-weight:800;color:var(--sw-sky-ink);}
      .rankc .tr{height:13px;border-radius:7px;background:color-mix(in srgb, var(--sw-ink) 9%, transparent);overflow:hidden;}
      .rankc .tr>i{display:block;height:100%;border-radius:7px;background:linear-gradient(90deg,var(--sw-sky),var(--sw-violet));width:16%;}
      .rankc .rx{font-size:.68rem;color:var(--dsx-text-mut);margin-top:6px;}
      .xpf{position:absolute;left:40px;top:-16px;font-size:.82rem;font-weight:800;color:var(--sw-green-ink);text-shadow:0 2px 8px rgba(0,0,0,.5);}
      /* scoreboard factions */
      .fac{display:flex;flex-direction:column;gap:14px;}
      .frow{display:flex;align-items:center;gap:12px;}
      .frow .fn{width:76px;font-size:.82rem;font-weight:800;flex:none;}
      .frow .ft{flex:1;height:15px;border-radius:8px;background:color-mix(in srgb, var(--sw-ink) 8%, transparent);overflow:hidden;}
      .frow .ft>i{display:block;height:100%;border-radius:8px;}
      .frow .fs{width:46px;text-align:right;font-size:.84rem;font-weight:800;flex:none;}
      /* liste vocale (salons temporaires) */
      .vlist{display:flex;flex-direction:column;gap:9px;}
      .vrow{display:flex;align-items:center;gap:10px;font-size:.86rem;color:var(--sw-ink-2);padding:9px 12px;border-radius:10px;}
      .vrow i{color:var(--dsx-text-mut);}
      .vrow.gen{color:var(--dsx-text-mut);border:1px dashed color-mix(in srgb, var(--sw-ink) 20%, transparent);}
      .vrow.made{background:color-mix(in srgb, var(--sw-sky-ink) 12%, transparent);color:var(--sw-sky-ink);}
      .vrow.made i{color:var(--sw-sky-ink);}
      .vrow .vc{margin-left:auto;display:flex;gap:6px;}
      .vrow .vc span{width:26px;height:26px;border-radius:8px;background:color-mix(in srgb, var(--sw-ink) 9%, transparent);display:grid;place-items:center;font-size:.74rem;color:var(--sw-ink);}
      /* Démos qui tournent EN BOUCLE (explication continue, comme la maquette du dashboard) */
      .a-pop,.ms-fade0,.a-check{opacity:0;}
      .a-pop{animation:msLoopIn 4.6s cubic-bezier(.2,.8,.2,1) infinite both;}
      .a-pop.d1{animation-delay:.4s}.a-pop.d2{animation-delay:.8s}.a-pop.d3{animation-delay:1.2s}
      @keyframes msLoopIn{0%{opacity:0;transform:translateY(16px) scale(.93)}9%{opacity:1;transform:none}80%{opacity:1;transform:none}91%{opacity:0;transform:translateY(-8px) scale(.98)}100%{opacity:0}}
      /* le « résultat » qui apparaît APRÈS le déclencheur (message supprimé, ticket créé…) */
      .ms-fade0{animation:msResult 4.6s ease infinite both;}
      .a-check{animation:msResult 4.6s cubic-bezier(.2,1.5,.4,1) infinite both;}
      @keyframes msResult{0%,26%{opacity:0;transform:translateY(12px) scale(.9)}38%{opacity:1;transform:none}80%{opacity:1;transform:none}92%,100%{opacity:0;transform:scale(.96)}}
      /* barre d'XP qui se remplit puis se réinitialise, en boucle */
      .a-fill{animation:msFillLoop 4.6s cubic-bezier(.2,.8,.2,1) infinite both;}
      @keyframes msFillLoop{0%{width:12%}35%{width:88%}80%{width:88%}92%{width:12%}100%{width:12%}}
      .a-up{animation:msUp 4.6s ease infinite;}
      @keyframes msUp{0%,32%{opacity:0;transform:translateY(8px)}44%,76%{opacity:1;transform:none}86%,100%{opacity:0;transform:translateY(-6px)}}
      .a-pulse{animation:msPulse 2.1s ease infinite;}
      @keyframes msPulse{0%,100%{transform:scale(1)}50%{transform:scale(1.13)}}
      /* ===== Présentation « façon Apple » — ROBUSTE =====
         DÉFAUT = statique et VISIBLE (aucune dépendance au JS). L'animation épinglée n'est
         activée QUE si le JS ajoute `.ff-anim` (desktop + pas d'« animations réduites »).
         → en reduced-motion, sans JS, ou en cas d'erreur, la section reste VISIBLE (jamais blanche). */
      .ff-wrap{position:relative;}
      .ff-stage{position:static;}
      .ld-mscroll.ff-mode{max-width:1080px;margin:34px auto 0;}
      .ld-mscroll.ff-mode::before{display:none;}
      .ff-mode .msr{position:relative;opacity:1;min-height:auto;padding:34px 0;grid-template-columns:1fr 1fr;}
      .ff-mode .msr::before{display:none;}
      .ff-mode .msr-txt,.ff-mode .msr-vis{opacity:1;transform:none;}
      .ff-mode .msr-vis{min-height:0;}
      /* Layouts ALTERNÉS (façon page produit) : texte-droite / texte-gauche / centré */
      .ff-mode .msr.lay-right{grid-template-columns:1.05fr 1fr;}
      .ff-mode .msr.lay-right .msr-txt{order:1;} .ff-mode .msr.lay-right .msr-vis{order:2;}
      .ff-mode .msr.lay-left{grid-template-columns:1fr 1.05fr;}
      .ff-mode .msr.lay-left .msr-txt{order:2;} .ff-mode .msr.lay-left .msr-vis{order:1;}
      .ff-mode .msr.lay-center{grid-template-columns:1fr;justify-items:center;text-align:center;gap:24px;max-width:820px;margin-left:auto;margin-right:auto;}
      .ff-mode .msr.lay-center .msr-txt{max-width:620px;}
      .ff-mode .msr.lay-center .msr-ic{margin-left:auto;margin-right:auto;}
      .ff-mode .msr.lay-center .msr-txt p{margin-left:auto;margin-right:auto;}
      .ff-mode .msr.lay-center .msr-txt h3{font-size:clamp(2rem,4.4vw,2.6rem);}
      .ff-mode .msr.lay-center .msr-steps{display:none;}         /* compact : les specs suffisent en 2e étape */
      .ff-mode .msr.lay-center .msr-vis .scene{max-width:400px;}
      .ff-mode .msr.lay-center .msr-specs{text-align:center;margin-top:6px;}
      .ff-mode .msr.lay-center .msr-specrow{justify-content:center;}
      /* HÉROS (intro) : pleine largeur, texte centré au-dessus d'une maquette large */
      .ff-mode .msr.lay-hero{grid-template-columns:1fr;justify-items:center;text-align:center;gap:34px;max-width:1180px;margin-left:auto;margin-right:auto;}
      .ff-mode .msr.lay-hero .msr-txt{max-width:760px;}
      .ff-mode .msr.lay-hero .msr-ic{margin-left:auto;margin-right:auto;}
      .ff-mode .msr.lay-hero .msr-txt p{margin-left:auto;margin-right:auto;}
      .ff-mode .msr.lay-hero .msr-steps{display:none;}
      .ff-mode .msr.lay-hero .msr-vis{width:100%;}
      .ff-mode .msr.lay-hero .msr-vis .scene{max-width:none;width:100%;}
      /* Avatar = image (logo OpenBots pour le bot, avatar cohérent pour un membre) */
      .av img,.rav img{width:100%;height:100%;object-fit:cover;border-radius:inherit;display:block;}
      /* Stats du hero */
      .hstat{display:flex;flex-wrap:wrap;gap:26px 34px;}
      .hstat>div{text-align:left;}
      .hstat b{display:block;font-family:'Outfit',inherit;font-weight:800;font-size:1.5rem;color:var(--sw-ink);line-height:1;}
      .hstat span{color:var(--dsx-text-mut);font-size:.76rem;}
      .hfeat{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:9px;}
      @media(max-width:820px){ .hfeat{grid-template-columns:repeat(auto-fill,minmax(130px,1fr));} }
      @media(max-width:820px){
        .ff-mode .msr,.ff-mode .msr.lay-center,.ff-mode .msr.lay-left,.ff-mode .msr.lay-right{grid-template-columns:1fr;gap:26px;max-width:none;text-align:left;}
        .ff-mode .msr .msr-txt{order:0!important;} .ff-mode .msr .msr-vis{order:1!important;}
        .ff-mode .msr.lay-center .msr-ic,.ff-mode .msr.lay-center .msr-txt p,.ff-mode .msr.lay-center .msr-steps{margin-left:0;margin-right:0;}
        .ff-mode .msr.lay-center .msr-specrow{justify-content:flex-start;}
      }
      /* --- Mode ANIMÉ (classe .ff-anim ajoutée par le JS) : plein écran + pin + panneaux au centre --- */
      .ff-wrap.ff-anim{width:100vw;margin-left:calc(50% - 50vw);height:calc(var(--n,15) * 105vh);}
      .ff-anim .ff-stage{position:absolute;top:0;left:0;right:0;height:100vh;min-height:600px;display:flex;align-items:center;overflow:hidden;}
      .ff-anim .ff-stage.is-fixed{position:fixed;top:0;left:0;right:0;height:100vh;}
      .ff-anim .ff-stage.is-bottom{position:absolute;top:auto;bottom:0;}
      .ff-anim .ld-mscroll.ff-mode{max-width:none;width:100%;height:auto;margin:0;position:static;}
      /* Le panneau REMPLIT la scène (top/bottom:0) et centre son contenu via align-content
         → centrage vertical fiable quelle que soit la hauteur du contenu (plus de coupure). */
      .ff-anim .ff-mode .msr{position:absolute;top:0;height:100vh;left:50%;width:min(1080px,92vw);transform:translateX(-50%);display:grid;align-content:center;padding:24px clamp(16px,4vw,40px);margin:0;opacity:0;pointer-events:none;z-index:1;will-change:opacity,transform;overflow:hidden;}
      /* Navigation par points + rail — SEULEMENT en mode animé */
      .ff-nav,.ff-rail{display:none;}
      .ff-anim .ff-nav{position:absolute;right:max(14px,2.2vw);top:50%;transform:translateY(-50%);display:flex;flex-direction:column;gap:11px;z-index:6;}
      .ff-nav button{width:9px;height:9px;padding:0;border:0;border-radius:50%;background:color-mix(in srgb, var(--sw-ink) 20%, transparent);cursor:pointer;transition:transform .25s,background .25s;}
      .ff-nav button:hover{background:color-mix(in srgb, var(--sw-ink) 45%, transparent);}
      .ff-nav button.on{background:var(--dsx-accent);transform:scale(1.55);box-shadow:0 0 12px color-mix(in srgb, var(--sw-blue-ink) 75%, transparent);}
      .ff-anim .ff-rail{position:absolute;left:0;bottom:0;height:3px;width:100%;background:color-mix(in srgb, var(--sw-ink) 6%, transparent);z-index:6;display:block;}
      .ff-rail>i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--sw-blue),var(--sw-violet));box-shadow:0 0 12px color-mix(in srgb, var(--sw-blue-ink) 55%, transparent);}
      /* Bandeau de TRANSITION : le nom de la fonctionnalité en grand, avant le contenu */
      .msr-banner{display:none;}
      .ff-anim .ff-mode .msr-banner{display:flex;position:absolute;inset:0;align-items:center;justify-content:center;text-align:center;z-index:7;pointer-events:none;padding:0 6vw;}
      .ff-anim .ff-mode .msr-txt h3{display:none;}   /* le titre vit dans le bandeau en mode animé */
      .msr-banner .bnum{display:block;font-family:'Outfit',inherit;font-size:.82rem;font-weight:800;letter-spacing:.34em;color:var(--ac,var(--dsx-accent));margin-bottom:20px;}
      .msr-banner .bn{font-family:'Outfit',inherit;font-weight:800;font-size:clamp(2.8rem,9vw,6.4rem);letter-spacing:-.035em;line-height:.96;text-wrap:balance;
        background:linear-gradient(180deg,var(--dsx-text),color-mix(in srgb,var(--dsx-text) 52%,var(--ac,var(--sw-blue-ink))));-webkit-background-clip:text;background-clip:text;color:transparent;}
      /* Mini-UI additionnelles (outils : commandes / permissions / emojis / stickers) */
      .cmdl{display:flex;flex-direction:column;gap:9px;}
      .cmdrow{display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:10px;background:color-mix(in srgb, var(--sw-ink) 4%, transparent);}
      .cmdrow .cmk{font-family:'Outfit',inherit;font-weight:800;color:var(--sw-ink);font-size:.9rem;}
      .cmdrow .cmd{color:var(--dsx-text-mut);font-size:.8rem;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
      .tgl{width:34px;height:19px;border-radius:11px;background:color-mix(in srgb, var(--sw-ink) 14%, transparent);position:relative;flex:none;transition:background-color .25s, border-color .25s, color .25s, opacity .25s, transform .25s, box-shadow .25s;}
      .tgl::after{content:'';position:absolute;top:2px;left:2px;width:15px;height:15px;border-radius:50%;background:var(--sw-white);transition:background-color .25s, border-color .25s, color .25s, opacity .25s, transform .25s, box-shadow .25s;}
      .tgl.on{background:var(--sw-green);}.tgl.on::after{left:17px;}
      .permr{display:flex;align-items:center;gap:10px;padding:9px 2px;}
      .permr+.permr{border-top:1px solid color-mix(in srgb, var(--sw-ink) 5%, transparent);}
      .permr .pn{flex:1;display:flex;align-items:center;gap:9px;color:var(--sw-ink-2);font-weight:600;font-size:.9rem;}
      .permr .pdot{width:10px;height:10px;border-radius:50%;flex:none;}
      .tilegrid{display:flex;flex-wrap:wrap;gap:10px;margin-top:2px;}
      .tile{width:46px;height:46px;border-radius:12px;display:grid;place-items:center;font-size:1.5rem;background:color-mix(in srgb, var(--sw-ink) 5%, transparent);}
      .tile.big{width:60px;height:60px;font-size:1.9rem;border-radius:14px;}
      .tile.add{color:var(--dsx-text-mut);font-size:1.1rem;border:1px dashed color-mix(in srgb, var(--sw-ink) 20%, transparent);background:transparent;}
      /* --- Fond animé (particules) — visible uniquement en mode animé épinglé --- */
      .ff-bg{position:absolute;inset:0;z-index:0;opacity:0;pointer-events:none;transition:opacity .5s ease;}
      .ff-anim .ff-stage.is-fixed .ff-bg{opacity:.5;}
      .ff-mode .msr{z-index:1;}
      /* Détails pilotés au scroll (2e temps) : boucles coupées SEULEMENT quand le JS anime */
      .js-driven .a-pop,.js-driven .ms-fade0,.js-driven .a-check,.js-driven .a-up{animation:none!important;opacity:0;}
      .js-driven .a-fill{animation:none!important;width:12%;}
      /* 2e vague de détails (specs) : VISIBLES par défaut ; masquées/révélées seulement si animé */
      .msr-specs{margin-top:22px;opacity:1;will-change:opacity,transform;}
      .ff-anim .msr-specs{opacity:0;}
      /* Liste d'OPTIONS de la fonctionnalité (plus de détail, remplit l'espace) */
      .msr-opts{margin-top:24px;opacity:1;will-change:opacity,transform;}
      .ff-anim .msr-opts{opacity:0;}
      .msr-opts .ol{display:block;font-size:.68rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--dsx-text-mut);margin-bottom:13px;}
      .msr-optgrid{display:grid;grid-template-columns:1fr 1fr;gap:11px 20px;}
      .msr-opt{display:flex;align-items:center;gap:10px;font-size:.92rem;color:var(--dsx-text);font-weight:600;}
      .msr-opt i{flex:none;width:20px;height:20px;border-radius:6px;display:grid;place-items:center;font-size:.72rem;font-style:normal;
        background:color-mix(in srgb,var(--ac,var(--dsx-accent)) 18%,transparent);color:var(--ac,var(--dsx-accent));}
      .ff-mode .msr.lay-center .msr-opts{display:none;}   /* centré = statement compact */
      @media(max-width:820px){ .msr-optgrid{grid-template-columns:1fr;} .msr-opts{opacity:1!important;} }
      .msr-specs .sl{display:block;font-size:.68rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--dsx-text-mut);margin-bottom:10px;}
      .msr-specrow{display:flex;flex-wrap:wrap;gap:8px;}
      .msr-spec{font-size:.78rem;font-weight:700;padding:6px 12px;border-radius:999px;display:inline-flex;align-items:center;gap:6px;
        color:var(--ac,var(--dsx-accent));background:color-mix(in srgb,var(--ac,var(--dsx-accent)) 13%,transparent);
        border:1px solid color-mix(in srgb,var(--ac,var(--dsx-accent)) 28%,transparent);}
      .msr-spec::before{content:'';width:5px;height:5px;border-radius:50%;background:currentColor;}
    