/* Minddex, page d'accueil */
body.admin-bar .hero{min-height:calc(100vh - 32px);min-height:calc(100svh - 32px)}


*{box-sizing:border-box}
body{margin:0;background:var(--noir);color:var(--txt);font-family:var(--f);line-height:1.5;
  -webkit-font-smoothing:antialiased;overflow-x:hidden;padding-top:env(safe-area-inset-top,0px)}
a{color:inherit;text-decoration:none}
p{margin:0}
img{max-width:100%;height:auto}
button{font-family:inherit}
a:focus-visible,button:focus-visible,input:focus-visible,summary:focus-visible{outline:2px solid var(--cyan);outline-offset:4px}

h1,h2,h3{margin:0;font-weight:500;letter-spacing:-.04em;line-height:.96;color:var(--blanc)}
h1{font-size:clamp(46px,8.6vw,132px)}
h2{font-size:clamp(34px,5.4vw,84px)}
h3{font-size:clamp(20px,2vw,26px);letter-spacing:-.02em;line-height:1.15}
.serif{font-family:var(--fs);font-weight:400;letter-spacing:-.02em;line-height:1}
.ital{font-family:var(--fs);font-style:italic;font-weight:400}

.wrap{width:100%;max-width:var(--wrap);margin:0 auto;padding-inline:var(--pad)}
section{position:relative}
.bloc{padding-block:clamp(72px,10vw,150px)}
.filet{height:1px;background:var(--trait)}
.oeil{font-size:13px;letter-spacing:.01em;color:var(--fuchsia)}
/* ligne de categorie de l'accueil : degrade du logo
   La couleur pleine reste la base : le degrade ne s'applique que si le
   navigateur sait decouper le fond sur le texte. Sans ce garde-fou,
   certains Android affichaient un texte transparent, donc invisible. */
.hero .oeil{font-size:clamp(14px,1.5vw,17px);font-weight:500;color:var(--fuchsia)}
@supports ((-webkit-background-clip:text) or (background-clip:text)){
  .hero .oeil{background:linear-gradient(90deg,#8B7CF6 0%,#A78BFA 45%,#DF7AFE 100%);
    -webkit-background-clip:text;background-clip:text;
    color:transparent;-webkit-text-fill-color:transparent}
}
.legende{font-size:12px;color:var(--txt3)}
.texte{font-size:clamp(16px,1.5vw,19px);line-height:1.7;color:var(--txt2);max-width:58ch}
.texte strong{color:var(--blanc);font-weight:500}

/* boutons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;height:clamp(48px,6.4vh,56px);padding:0 26px;border:0;border-radius:6px;
  font-size:16px;font-weight:600;cursor:pointer;transition:background-color .18s,color .18s,border-color .18s,transform .18s}
.btn--p{background:var(--blanc);color:var(--noir)}
.btn--p:hover{background:var(--fuchsia);color:var(--noir)}
.btn--f{background:transparent;color:var(--blanc);border:1px solid rgba(238,240,255,.35);font-weight:500}
.btn--f:hover{border-color:var(--blanc);background:rgba(238,240,255,.06)}
.btn--sm{height:46px;padding:0 18px;font-size:14px;border-radius:5px}

/* entete */
.top .in{display:flex;align-items:center;justify-content:space-between;gap:20px;max-width:var(--wrap);margin:0 auto;padding:14px var(--pad)}
.logo-site{height:52px;width:auto;display:block}

/* ---------- signature : le ruban d'index ---------- */
.ruban-index{display:flex;align-items:flex-end;gap:3px;height:var(--h,86px);width:100%;overflow:hidden}
.tick{flex:1 1 auto;min-width:2px;max-width:7px;height:var(--t,40%);background:rgba(238,240,255,.22);border-radius:1px;
  transform:scaleY(0);transform-origin:bottom;transition:transform .6s cubic-bezier(.2,.8,.2,1) var(--d,0s),background-color .3s}
.vu .tick,.ruban-index.vu .tick{transform:scaleY(1)}
.tick.cite{background:var(--cyan)}
.tick.moi{background:var(--fuchsia)}
.ruban-index.scan .tick{transition:transform .4s cubic-bezier(.2,.8,.2,1) var(--d,0s),background-color .25s var(--d,0s)}

/* ---------- hero ---------- */
.hero{min-height:100vh;min-height:100svh;display:flex;flex-direction:column;justify-content:center;
  padding-top:calc(var(--entete) + clamp(16px,4.5vh,60px));padding-bottom:clamp(14px,2.4vh,28px);border-bottom:1px solid var(--trait)}
.hero .grille{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,480px);gap:clamp(28px,4vw,60px);align-items:end}
.hero h1{overflow-wrap:anywhere;margin-top:clamp(10px,1.6vh,20px);font-size:clamp(34px,min(6.6vw,8.8vh),106px)}
.hero .phrase{margin-top:clamp(14px,2.2vh,26px);max-width:42ch;font-size:clamp(15px,min(1.8vw,2.5vh),24px);line-height:1.28;color:var(--blanc);letter-spacing:-.01em}
.hero .sous{margin-top:clamp(10px,1.4vh,18px);max-width:52ch;font-size:clamp(14px,1.7vh,16px);line-height:1.6;color:var(--txt2)}
.hero .mesureur{margin-top:auto;padding-top:clamp(20px,3.4vh,54px)}
.hero .ruban-index{--h:clamp(48px,9vh,108px) !important}
@media (max-height:780px){
  .hero .sous{display:none}
  .instrument .corps{padding:14px}
  .instrument .moteurs{margin-top:10px}
}

/* instrument de mesure */
.instrument{border:1px solid var(--trait);border-radius:10px;background:rgba(10,12,30,.7);overflow:hidden}
.instrument .haut{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;border-bottom:1px solid var(--trait);font-size:12px;color:var(--txt3)}
.pulse{display:inline-flex;align-items:center;gap:7px}
.pulse i{width:7px;height:7px;border-radius:50%;background:var(--cyan);box-shadow:0 0 0 0 rgba(34,211,238,.6);animation:pulse 2.4s infinite}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(34,211,238,.55)}70%{box-shadow:0 0 0 9px rgba(34,211,238,0)}100%{box-shadow:0 0 0 0 rgba(34,211,238,0)}}
.instrument .corps{padding:18px}
.saisie{display:flex;gap:10px}
.saisie input{flex:1 1 auto;min-width:0;height:clamp(48px,6.4vh,56px);padding:0 16px;border-radius:6px;border:1px solid var(--trait);
  background:#05060F;color:var(--blanc);font-family:var(--f);font-size:17px}
.saisie input::placeholder{color:var(--txt3)}
.saisie input:focus{outline:none;border-color:var(--cyan)}
.moteurs{display:flex;flex-wrap:wrap;gap:6px;margin-top:14px}
.moteur{display:inline-flex;align-items:center;gap:7px;padding:6px 11px;border:1px solid var(--trait);border-radius:4px;font-size:12px;color:var(--txt2)}
.moteur i{width:6px;height:6px;border-radius:50%;background:var(--txt3);transition:background-color .3s}
.moteur.ok i{background:var(--cyan)}
.moteur.ok{color:var(--blanc);border-color:rgba(34,211,238,.4)}
.resultat{margin-top:18px;border-top:1px solid var(--trait);padding-top:16px;display:none}
.resultat.on{display:block}
.classement{display:flex;flex-direction:column;gap:2px;margin-top:10px}
.pos{display:grid;grid-template-columns:30px minmax(0,1fr) 62px;align-items:center;gap:12px;padding:10px 12px;border-radius:6px;font-size:15px}
.pos span:first-child{color:var(--txt3);font-size:13px}
.pos .part{text-align:right;color:var(--txt2);font-size:13px}
.pos .part.masque{letter-spacing:1px;color:var(--txt3)}
.pos.moi .part.masque{color:var(--fuchsia)}
.pos .anonyme{color:var(--txt2)}
.pos .anonyme::after{content:"";display:inline-block;width:62px;height:9px;margin-left:12px;border-radius:2px;
  background:repeating-linear-gradient(90deg,rgba(238,240,255,.16) 0 9px,transparent 9px 14px);vertical-align:middle}
.pos.moi{background:rgba(223,122,254,.1);box-shadow:inset 0 0 0 1px rgba(223,122,254,.55);color:var(--blanc)}
.pos.moi .part{color:var(--fuchsia)}

/* bande logos */
.marques-bande{border-bottom:1px solid var(--trait);padding-block:30px;overflow:hidden}
.piste{max-width:100vw;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 4%,#000 96%,transparent);mask-image:linear-gradient(90deg,transparent,#000 4%,#000 96%,transparent)}
.file{display:flex;width:max-content;animation:defile 48s linear infinite}
.piste--inverse .file{animation-direction:reverse;animation-duration:58s}
.piste:hover .file{animation-play-state:paused}
.demi{display:flex;align-items:center;gap:52px;padding-right:52px}
.piste--inverse .demi{gap:44px;padding-right:44px}
@keyframes defile{to{transform:translateX(-50%)}}
/* logos en grise sur fond sombre */
.demi img{flex:0 0 auto;height:36px;width:auto;object-fit:contain;transform:scale(var(--s,1));
  filter:grayscale(1) brightness(0) invert(1);opacity:.6;transition:opacity .25s,filter .25s}
.demi img:hover{opacity:1;filter:none}
/* fichiers dont le fond est blanc : on inverse, le fond devient noir et disparait dans la page */
.demi img.fond{filter:grayscale(1) invert(1);mix-blend-mode:screen;opacity:.72}
.demi img.fond:hover{filter:grayscale(1) invert(1);opacity:1}
.demi span{font-size:15px;color:var(--txt3);white-space:nowrap}

/* manifeste */
.manifeste{background:var(--degrade);border-block:1px solid var(--trait)}
.manifeste .serif{font-size:clamp(40px,7.4vw,112px);color:var(--blanc);max-width:16ch}
.manifeste .texte{margin-top:34px;color:rgba(232,234,247,.86)}
.manifeste .deux{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:48px;margin-top:40px}

/* grilles editoriales */
.duo{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:72px;align-items:start}
.entete-bloc{display:flex;justify-content:space-between;align-items:flex-end;gap:40px;flex-wrap:wrap;margin-bottom:52px}
.entete-bloc .texte{max-width:38ch}

/* sources */
.sources{display:flex;flex-direction:column;border-top:1px solid var(--trait)}
.source{display:grid;grid-template-columns:22px minmax(0,220px) minmax(0,1fr) 68px;gap:18px;align-items:center;
  padding:16px 0;border-bottom:1px solid var(--trait);font-size:15px}
.source .r{color:var(--txt3);font-size:13px}
.source .nom{color:var(--blanc)}
.source .jauge{height:4px;background:rgba(238,240,255,.08);border-radius:2px;overflow:hidden}
.source .jauge i{display:block;height:4px;width:0;border-radius:2px;background:linear-gradient(90deg,var(--violet),var(--fuchsia));transition:width 1s cubic-bezier(.2,.8,.2,1) var(--d,0s)}
.vu .source .jauge i{width:var(--w)}
.source .val{text-align:right;color:var(--txt2);font-size:14px}
.source.moi .nom{color:var(--fuchsia)}
.source.moi .jauge i{background:var(--cyan)}

/* territoires */
.territoires{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;background:var(--trait);border:1px solid var(--trait)}
.territoire{background:var(--noir);padding:26px 24px;display:flex;flex-direction:column;gap:18px;min-height:230px;transition:background-color .25s}
.territoire:hover{background:var(--encre)}
.territoire .q{font-size:15px;line-height:1.4;color:var(--blanc)}
.territoire .meta{display:flex;justify-content:space-between;font-size:12px;color:var(--txt3);margin-top:auto}
.territoire .chef{color:var(--txt2)}
.territoire.gagne .chef{color:var(--cyan)}

/* etapes */
.etapes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:var(--trait);border-block:1px solid var(--trait)}
.etape{background:var(--noir);padding:34px 30px;display:flex;flex-direction:column;gap:14px}
.etape .n{font-size:13px;color:var(--fuchsia)}
.etape p{font-size:15px;line-height:1.6;color:var(--txt2)}
.etape .ruban-index{margin-top:auto;--h:54px}

/* cerveau */
.cerveau.sans-3d{background:radial-gradient(60% 60% at 50% 45%,rgba(124,58,237,.28) 0%,rgba(124,58,237,0) 70%),var(--noir)}
.cerveau{position:relative;min-height:clamp(560px,86vh,860px);display:flex;align-items:center;justify-content:center;overflow:hidden;border-block:1px solid var(--trait)}
#cerveau{position:absolute;inset:0;width:100%;height:100%}
.cerveau .mot{position:relative;z-index:2;text-align:center;padding-inline:var(--pad);pointer-events:none}
.cerveau .serif{font-size:clamp(34px,6vw,86px);color:var(--blanc)}
.cerveau .texte{margin:22px auto 0;text-align:center;color:var(--txt2)}

/* preuves */
.preuves{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(36px,5vw,72px);
  border-top:1px solid var(--trait);padding-top:clamp(34px,4vw,54px)}
.preuve{display:flex;flex-direction:column;gap:20px;padding:0;background:none}
.preuve+.preuve{padding-left:clamp(36px,5vw,72px);border-left:1px solid var(--trait)}
.preuve blockquote{margin:0;font-family:var(--fs);font-weight:400;font-size:clamp(26px,3.1vw,46px);line-height:1.02;color:var(--blanc);letter-spacing:-.02em}
.preuve p{font-size:15px;line-height:1.65;color:var(--txt2);max-width:44ch}
.preuve cite{margin-top:auto;padding-top:8px;font-style:normal;font-size:13px;letter-spacing:.03em;color:var(--txt3)}
.chiffres{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:40px;margin-top:56px}
.chiffres dd{margin:0;font-size:clamp(34px,4.4vw,64px);font-weight:500;letter-spacing:-.04em;color:var(--blanc);line-height:1}
.chiffres dt{margin-top:12px;font-size:14px;line-height:1.5;color:var(--txt2)}

/* observatoire */
.obs{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:40px}
.obs-une{position:relative;overflow:hidden;display:flex;flex-direction:column;justify-content:flex-end;gap:14px;min-height:400px;padding:38px;
  border-radius:10px;border:1px solid var(--trait);background:radial-gradient(60% 70% at 85% 12%,rgba(223,122,254,.32),rgba(223,122,254,0) 70%),var(--degrade)}
.obs-une .t{font-family:var(--fs);font-size:clamp(28px,3vw,44px);line-height:1;color:var(--blanc);max-width:18ch}
.obs-une .d{font-size:16px;line-height:1.6;color:rgba(232,234,247,.8);max-width:46ch}
.obs-liste a{display:flex;flex-direction:column;gap:7px;padding:22px 0;border-top:1px solid var(--trait)}
.obs-liste a:last-child{border-bottom:1px solid var(--trait)}
.obs-liste .t{font-size:19px;color:var(--blanc)}
.obs-liste .d{font-size:14px;line-height:1.5;color:var(--txt2)}
.etiq{display:inline-block;padding:4px 10px;border:1px solid rgba(238,240,255,.7);border-radius:3px;font-size:11px;letter-spacing:.04em;color:var(--blanc);align-self:flex-start}

/* faq */
details{border-top:1px solid var(--trait)}
details:last-of-type{border-bottom:1px solid var(--trait)}
summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:20px;padding:24px 0;font-size:19px;color:var(--blanc)}
summary::-webkit-details-marker{display:none}
summary .p{color:var(--fuchsia);font-size:22px;transition:transform .2s}
details[open] summary .p{transform:rotate(45deg)}
details p{margin:0 0 16px;max-width:70ch;font-size:16px;line-height:1.7;color:var(--txt2)}
.reponse-faq{padding-bottom:10px}
.reponse-faq p:last-child{margin-bottom:24px}
.reponse-faq strong{color:var(--blanc);font-weight:500}

/* cta et pied */
.final{background:var(--degrade);border-top:1px solid var(--trait)}
.final .serif{font-size:clamp(40px,7vw,104px);color:var(--blanc);max-width:15ch}
.final .boutons{display:flex;gap:12px;flex-wrap:wrap;margin-top:40px}
.pied{padding-block:34px;border-top:1px solid var(--trait);font-size:13px;color:var(--txt3)}
.pied .in{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap}

/* apparitions */
.anim{opacity:0;transform:translateY(22px);transition:opacity .75s cubic-bezier(.2,.75,.2,1),transform .75s cubic-bezier(.2,.75,.2,1);transition-delay:var(--d,0s)}
.anim.vu{opacity:1;transform:none}
.lettres{display:inline-block;overflow:hidden;vertical-align:bottom}
.lettres>span{display:inline-block;transform:translateY(105%);transition:transform .85s cubic-bezier(.16,.84,.28,1) var(--d,0s)}
.vu .lettres>span,.lettres.vu>span{transform:none}

@media (max-width:1080px){
  .hero .grille,.duo,.obs,.manifeste .deux{grid-template-columns:1fr;gap:40px}
  .territoires{grid-template-columns:repeat(2,minmax(0,1fr))}
  .etapes{grid-template-columns:1fr}
  .preuves{grid-template-columns:1fr}
  .preuve+.preuve{padding-left:0;border-left:0;padding-top:36px;border-top:1px solid var(--trait)}
  .chiffres{grid-template-columns:1fr;gap:26px}
}
@media (max-width:760px){
  @media (prefers-reduced-motion:reduce){
  .anim,.tick,.lettres>span,.source .jauge i{transition:none;opacity:1;transform:none}
  .tick{transform:scaleY(1)}
  .file{animation:none}
}
