/* Page /pilotes : le récit vertical, métier par métier (recit-scenes.js, recit-personnages.js et recit.js).
   Tout est rangé sous .recit ou .recit-intro pour ne rien changer au reste du site.
   Les classes recit-hud et recit-fil évitent les classes .hud (instruments du site) et .fil (démo de Léa). */
.recit-intro{padding-bottom:clamp(24px,4vw,48px)}
.recit-intro .entete{margin-bottom:28px}
.recit-intro .defiler{display:inline-flex;align-items:center;gap:12px;font:500 .72rem/1 var(--f-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--texte)}
.recit-intro .defiler i{width:22px;height:34px;border:1px solid var(--trait-fort);border-radius:12px;position:relative}
.recit-intro .defiler i::after{content:"";position:absolute;left:50%;top:7px;width:3px;height:7px;margin-left:-1.5px;border-radius:2px;background:var(--cyan);animation:recit-roulette 1.6s ease-in-out infinite}
@keyframes recit-roulette{0%{transform:translateY(0);opacity:1}70%{transform:translateY(11px);opacity:0}100%{transform:translateY(0);opacity:0}}

/* 4 chapitres de 220 % de hauteur d'écran (CHAPITRE dans recit.js) ; la scène reste épinglée juste sous l'en-tête du site. */
.recit{--recit-haut:71px;position:relative;height:calc(4 * 220vh + 100vh)}
@supports (height:100svh){.recit{height:calc(4 * 220svh + 100svh)}}
.recit .scene-fixe{position:sticky;top:var(--recit-haut);height:calc(100vh - var(--recit-haut));overflow:hidden;border-block:1px solid var(--trait);
  background:radial-gradient(1100px 560px at 85% -12%,rgba(11,108,245,.16),transparent 62%),rgba(5,9,20,.9)}
@supports (height:100svh){.recit .scene-fixe{height:calc(100svh - var(--recit-haut))}}
.recit #toile{position:absolute;inset:0;width:100%;height:100%;display:block}
.recit .scene-grille{position:relative;z-index:1;height:100%;display:grid;grid-template-columns:minmax(0,1.35fr) minmax(320px,440px);gap:clamp(20px,4vw,72px);
  padding:clamp(22px,4vh,52px) max(16px,4vw) clamp(96px,14vh,124px);align-items:center}
.recit .plateau{position:relative;height:100%;min-height:0}
.recit .recit-hud{position:absolute;top:0;left:0;display:grid;gap:9px;font:500 .72rem/1.3 var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--texte-2);pointer-events:none}
.recit .hud-num{color:var(--cyan)}
.recit .hud-num b{font:700 1.5rem/1 var(--f-titre);letter-spacing:-.02em;color:var(--texte);margin-right:8px}
.recit .hud-etat{display:inline-flex;align-items:center;gap:9px;color:var(--texte);letter-spacing:.06em;text-transform:none;font-size:.8rem}
.recit .hud-etat::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--cyan);box-shadow:0 0 10px var(--cyan);animation:recit-clignote 1.2s infinite}
.recit .hud-etat.fait{color:var(--ok)}
.recit .hud-etat.fait::before{background:var(--ok);box-shadow:0 0 12px var(--ok);animation:none}
@keyframes recit-clignote{50%{opacity:.25}}

.recit .cote{position:relative;height:min(100%,640px);display:grid;align-items:center}
.recit .cote > *{grid-area:1/1}

/* L'appel, propre à chaque métier */
.recit .appel{align-self:center;display:grid;gap:14px;padding:22px;border-radius:24px;background:linear-gradient(165deg,rgba(18,34,80,.86),rgba(5,10,26,.94));border:1px solid var(--trait);
  box-shadow:0 30px 80px -40px rgba(11,108,245,.8);opacity:0;transform:translateY(18px) scale(.98);transition:opacity .45s,transform .45s;pointer-events:none}
.recit .appel.visible{opacity:1;transform:none}
.recit .appel-tete{display:flex;align-items:center;gap:14px}
.recit .appel-icone{position:relative;flex:none;width:44px;height:44px;border-radius:50%;display:grid;place-items:center;background:radial-gradient(circle at 35% 30%,#5BE7FF,#0B6CF5);box-shadow:0 0 22px rgba(34,211,251,.5)}
.recit .appel-icone svg{width:20px;height:20px}
/* Quand Léa décroche, l'icône du téléphone devient son visage. */
.recit .appel-visage{position:absolute;inset:0;z-index:1;width:100%;height:100%;border-radius:50%;object-fit:cover;transition:opacity .35s}
.recit .appel.sonne .appel-visage{opacity:0}
.recit .appel-icone::before,.recit .appel-icone::after{content:"";position:absolute;inset:-6px;border-radius:50%;border:1px solid rgba(34,211,251,.6);opacity:0}
.recit .appel.sonne .appel-icone::before{animation:recit-sonnerie 1.2s infinite}
.recit .appel.sonne .appel-icone::after{animation:recit-sonnerie 1.2s .4s infinite}
.recit .appel.sonne .appel-icone{animation:recit-vibre .6s infinite}
@keyframes recit-sonnerie{0%{transform:scale(.8);opacity:.9}100%{transform:scale(1.7);opacity:0}}
@keyframes recit-vibre{0%,100%{rotate:0deg}20%{rotate:-12deg}40%{rotate:10deg}60%{rotate:-6deg}80%{rotate:4deg}}
.recit .appel-qui{display:grid;gap:3px;min-width:0}
.recit .appel-qui b{font:600 1rem/1.2 var(--f-corps)}
.recit .appel-qui small{font:500 .68rem/1.2 var(--f-mono);letter-spacing:.06em;color:var(--texte-2)}
.recit .appel .eq{display:inline-flex;align-items:flex-end;gap:2px;height:16px;margin-left:auto;flex:none}
.recit .appel .eq i{width:3px;height:3px;background:var(--cyan);border-radius:1px}
.recit .appel.en-ligne .eq i{animation:recit-eq .42s ease-in-out infinite alternate}
.recit .appel.en-ligne .eq i:nth-child(2){animation-delay:.1s}
.recit .appel.en-ligne .eq i:nth-child(3){animation-delay:.2s}
.recit .appel.en-ligne .eq i:nth-child(4){animation-delay:.3s}
.recit .appel.en-ligne .eq i:nth-child(5){animation-delay:.15s}
@keyframes recit-eq{from{height:3px}to{height:16px}}
.recit .recit-fil{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.recit .recit-fil li{font-size:.93rem;line-height:1.45;padding:10px 13px;opacity:0;transform:translateY(10px);transition:opacity .4s,transform .4s}
.recit .recit-fil li.vu{opacity:1;transform:none}
.recit .recit-fil .client{background:rgba(255,255,255,.045);border:1px solid var(--trait);border-radius:16px 16px 16px 4px;color:var(--texte);margin-right:28px}
.recit .recit-fil .lea{background:rgba(34,211,251,.09);border:1px solid rgba(34,211,251,.28);border-radius:16px 16px 4px 16px;margin-left:28px}
.recit .recit-fil .lea span{display:block;font:600 .62rem/1 var(--f-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--cyan);margin-bottom:6px}
.recit .appel-bilan{display:flex;gap:10px;align-items:flex-start;margin:0;font:500 .78rem/1.4 var(--f-mono);color:var(--ok);padding:10px 12px;border-radius:12px;background:rgba(59,227,160,.08);border:1px solid rgba(59,227,160,.3);opacity:0;transform:translateY(8px);transition:opacity .4s,transform .4s}
.recit .appel-bilan.vu{opacity:1;transform:none}

/* La carte du pilote, qui se dévoile une fois le métier construit */
.recit .fiche{position:relative;align-self:center;display:flex;flex-direction:column;gap:14px;padding:26px;border-radius:26px;text-decoration:none;color:var(--texte);
  background:linear-gradient(165deg,rgba(18,34,80,.86),rgba(5,10,26,.94));border:1px solid var(--trait);box-shadow:0 40px 90px -46px rgba(11,108,245,.9);
  opacity:0;transform:translateY(24px);transition:opacity .5s,transform .5s;pointer-events:none}
.recit .fiche.visible{opacity:1;transform:none;pointer-events:auto}
.recit .fiche.attente{background:rgba(6,12,30,.82);border-style:dashed}
.recit .fiche > *{opacity:0;transform:translateY(12px);transition:opacity .45s,transform .45s}
.recit .fiche > .vu{opacity:1;transform:none}
.recit .fiche .pilote-haut{display:flex;justify-content:space-between;align-items:center;gap:10px;font:500 .7rem/1 var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--texte-2)}
.recit .fiche .statut{display:inline-flex;align-items:center;gap:8px;padding:7px 11px;border-radius:999px;border:1px solid var(--trait)}
.recit .fiche .statut::before{content:"";width:7px;height:7px;border-radius:50%}
.recit .fiche .statut.vol{color:var(--ok);border-color:rgba(59,227,160,.4);background:rgba(59,227,160,.08)}
.recit .fiche .statut.vol::before{background:var(--ok)}
.recit .fiche .statut.prep{color:#FFC857;border-color:rgba(255,200,87,.35)}
.recit .fiche .statut.prep::before{background:#FFC857}
.recit .fiche .metier{font:500 .8rem/1 var(--f-mono);color:var(--cyan);letter-spacing:.06em}
.recit .fiche h3{position:relative;font-size:clamp(1.8rem,2.6vw,2.4rem);font-weight:700;line-height:1.06}
.recit .fiche.attente h3{color:#B9C4E2}
/* Décodage du nom du pilote : un calque au-dessus du titre, pour que la mise en page ne bouge pas. */
.recit .fiche h3.decode,.recit .fiche.attente h3.decode{color:transparent}
.recit .fiche h3 .code{position:absolute;inset:0;color:var(--texte)}
.recit .fiche.attente h3 .code{color:#B9C4E2}
.recit .fiche h3 .code i{font-style:normal;color:var(--cyan)}
.recit .fiche p{margin:0;color:var(--texte-2);font-size:.96rem}
.recit .fiche p.journal{display:flex;gap:10px;align-items:flex-start;font:500 .74rem/1.4 var(--f-mono);color:var(--texte)}
.recit .fiche p.journal b{color:var(--ok);font-weight:600}
.recit .fiche ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.recit .fiche li{font-size:.78rem;padding:6px 10px;border-radius:8px;background:rgba(34,211,251,.08)}
.recit .fiche .pilote-pied{margin-top:4px;padding-top:16px;border-top:1px solid var(--trait);display:flex;justify-content:space-between;align-items:center;gap:12px;font-weight:600}
.recit .fiche .pilote-pied small{font:400 .72rem/1 var(--f-mono);color:var(--texte-2)}

/* Fin de chapitre : le professionnel voit Léa décrocher à sa place, puis souffle. La carte et son apparition sont ici ;
   le dessin (recit-personnages.js) et ses styles (personnages.css) sont partagés avec l'accueil. */
.recit .soulage{position:relative;align-self:center;display:grid;gap:12px;margin:0;padding:16px;border-radius:24px;
  background:linear-gradient(165deg,rgba(18,34,80,.86),rgba(5,10,26,.94));border:1px solid var(--trait);box-shadow:0 30px 80px -40px rgba(11,108,245,.8);
  opacity:0;transform:translateY(18px) scale(.98);transition:opacity .45s,transform .45s;pointer-events:none}
.recit .soulage.visible{opacity:1;transform:none}

/* Carte trop haute pour la colonne (téléphone peu haut) : recit.js la resserre (serree), puis masque ses éléments data-repli. */
.recit .appel.serree{padding:12px;gap:8px}
.recit .appel.serree .appel-tete{gap:10px}
.recit .appel.serree .appel-icone{width:36px;height:36px}
.recit .appel.serree .appel-qui b{font-size:.92rem}
.recit .appel.serree .recit-fil{gap:7px}
.recit .appel.serree .recit-fil li{font-size:.78rem;padding:6px 9px}
.recit .appel.serree .appel-bilan{font-size:.7rem;padding:7px 9px}
.recit .fiche.serree{padding:14px;gap:7px}
.recit .fiche.serree h3{font-size:1.4rem}
.recit .fiche.serree p{font-size:.82rem}
.recit .fiche.serree p.journal{font-size:.68rem}
.recit .fiche.serree li{font-size:.68rem;padding:4px 7px}
.recit .fiche.serree .pilote-pied{padding-top:10px}
.recit .soulage.serree{padding:10px;gap:7px}

/* Le rail des quatre métiers (au-dessus des instruments du site, en bas d'écran) */
.recit .rail{position:absolute;left:0;right:0;bottom:0;z-index:4;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:0;padding:0 max(16px,4vw) clamp(40px,6vh,52px);list-style:none}
.recit .rail button{all:unset;cursor:pointer;display:grid;gap:9px;width:100%;font:500 .68rem/1.2 var(--f-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--texte-2)}
.recit .rail button:focus-visible{outline:2px solid var(--cyan);outline-offset:6px;border-radius:6px}
.recit .rail .jauge{height:2px;background:var(--trait);position:relative;overflow:hidden;border-radius:2px}
.recit .rail .jauge i{position:absolute;inset:0 auto 0 0;width:calc(var(--p,0) * 100%);background:linear-gradient(90deg,var(--cyan),#0B6CF5)}
.recit .rail li.actif button{color:var(--texte)}
.recit .rail .num{color:var(--cyan)}

/* Le repère de suite : la scène épinglée donne l'impression d'une page immobile. Quand le visiteur s'arrête, recit.js
   l'affiche (classe visible) sous le plateau, à la position calculée dans mise() (--suite-x, --suite-y). */
.recit .suite{position:absolute;z-index:5;left:var(--suite-x,50%);top:var(--suite-y,auto);bottom:auto;display:inline-flex;align-items:center;gap:12px;margin:0;
  padding:9px 18px 9px 12px;border-radius:999px;background:rgba(5,10,26,.9);border:1px solid var(--trait-fort);box-shadow:0 16px 44px -18px rgba(34,211,251,.75);
  backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);white-space:nowrap;pointer-events:none;
  opacity:0;transform:translate(-50%,10px);transition:opacity .35s,transform .45s cubic-bezier(.2,.9,.3,1.2)}
.recit .suite.visible{opacity:1;transform:translate(-50%,0);animation:recit-suite 2.4s ease-in-out .5s infinite}
@keyframes recit-suite{50%{transform:translate(-50%,-4px)}}
.recit .suite-txt{display:grid;gap:3px}
.recit .suite b{font:600 .84rem/1.15 var(--f-corps);color:var(--texte)}
.recit .suite-quoi{font:500 .64rem/1.2 var(--f-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--cyan)}
.recit .suite-quoi::before{content:"Ensuite · ";color:var(--texte-2)}
/* La souris (pointeur fin) ou le doigt qui pousse vers le haut (écran tactile) */
.recit .suite-ic{flex:none;position:relative;width:20px;height:30px;border:1.5px solid var(--trait-fort);border-radius:11px}
.recit .suite-ic::after{content:"";position:absolute;left:50%;top:6px;width:3px;height:7px;margin-left:-1.5px;border-radius:2px;background:var(--cyan);animation:recit-roulette 1.6s ease-in-out infinite}
@media (pointer:coarse){
  .recit .suite-ic{width:22px;height:26px;border:0;border-radius:0}
  .recit .suite-ic::before,.recit .suite-ic::after{content:"";position:absolute;left:50%;width:11px;height:11px;margin-left:-5.5px;border:solid var(--cyan);border-width:2px 2px 0 0;background:none;border-radius:1px;transform:rotate(-45deg)}
  .recit .suite-ic::before{top:3px;opacity:.45}
  .recit .suite-ic::after{top:11px;animation:recit-pousse 1.4s ease-in-out infinite}
}
@keyframes recit-pousse{0%,100%{transform:translateY(3px) rotate(-45deg);opacity:.5}50%{transform:translateY(-3px) rotate(-45deg);opacity:1}}

/* La carte-titre qui balaie l'écran à l'entrée de chaque métier, pilotée par le défilement */
.recit .titre-chap{position:absolute;inset:0;z-index:3;pointer-events:none;display:none}
.recit .titre-chap.actif{display:block}
.recit .tc-carte{position:absolute;inset:0;overflow:hidden;clip-path:inset(0 0 0 100%);
  background:radial-gradient(1000px 600px at 70% 45%,rgba(11,108,245,.32),transparent 65%),linear-gradient(160deg,#091640,#03060f 72%)}
.recit .tc-carte::before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(86,128,230,.14) 1px,transparent 1px),linear-gradient(90deg,rgba(86,128,230,.14) 1px,transparent 1px);background-size:56px 56px;
  -webkit-mask-image:radial-gradient(ellipse at 55% 50%,#000 20%,transparent 72%);mask-image:radial-gradient(ellipse at 55% 50%,#000 20%,transparent 72%)}
.recit .tc-num{position:absolute;right:3vw;top:50%;transform:translate(var(--dx1,0),-50%);font:700 min(56vh,36vw)/.8 var(--f-titre);letter-spacing:-.07em;color:transparent;-webkit-text-stroke:1.5px rgba(34,211,251,.45)}
.recit .tc-bloc{position:absolute;left:max(16px,6vw);right:max(16px,6vw);top:50%;transform:translate(var(--dx2,0),-50%);display:grid;justify-items:start;gap:clamp(10px,2.2vh,22px)}
.recit .tc-metier{display:inline-flex;align-items:center;gap:12px;font:500 .78rem/1 var(--f-mono);letter-spacing:.22em;text-transform:uppercase;color:var(--teinte,var(--cyan))}
.recit .tc-metier::before{content:"";width:36px;height:2px;background:currentColor;box-shadow:0 0 12px currentColor}
.recit .tc-nom{font:700 clamp(2.4rem,7vw,6.4rem)/.95 var(--f-titre);letter-spacing:-.035em;background:linear-gradient(95deg,#fff 15%,#A5ECFF 55%,var(--cyan) 95%);-webkit-background-clip:text;background-clip:text;color:transparent;text-wrap:balance}
.recit .tc-phrase{font-size:clamp(1rem,1.5vw,1.3rem);color:var(--texte-2);max-width:42ch}
.recit .tc-lame{position:absolute;top:0;bottom:0;left:100%;width:2px;margin-left:-1px;background:#fff;opacity:0;
  box-shadow:0 0 16px 3px rgba(34,211,251,.95),0 0 80px 18px rgba(11,108,245,.55)}

.recit-suite .entete{margin-bottom:28px}

@media (max-width:860px){
  .recit .scene-grille{grid-template-columns:1fr;grid-template-rows:minmax(0,40fr) minmax(0,60fr);gap:8px;padding:16px 16px 62px;align-items:stretch}
  .recit .cote{height:100%;align-items:start}
  .recit .appel,.recit .fiche,.recit .soulage{align-self:start}
  .recit .appel{padding:16px;gap:10px}
  .recit .recit-fil li{font-size:.84rem;padding:8px 11px}
  .recit .fiche{padding:18px;gap:10px;border-radius:20px}
  .recit .fiche h3{font-size:1.6rem}
  .recit .fiche p{font-size:.88rem}
  .recit .fiche li{font-size:.72rem;padding:5px 8px}
  .recit .soulage{padding:12px;gap:9px;border-radius:20px}
  .recit .sl-legende{font-size:.8rem}
  .recit .sl-bulle{font-size:.62rem;padding:5px 8px;max-width:30%}
  .recit .sl-notif{padding:5px 7px;width:47%}
  .recit .sl-notif b{font-size:.66rem}
  .recit .sl-notif small{font-size:.54rem}
  .recit .sl-notif .ic{width:16px;height:16px}
  .recit .recit-hud{gap:6px}
  .recit .hud-num b{font-size:1.2rem}
  .recit .rail{gap:8px;padding-bottom:16px}
  .recit .rail .nom{display:none}
  .recit .suite{gap:10px;padding:7px 14px 7px 10px}
  .recit .suite b{font-size:.78rem}
}
@media (prefers-reduced-motion:reduce){
  .recit .appel,.recit .fiche,.recit .fiche > *,.recit .recit-fil li,.recit .appel-bilan,.recit .soulage,.recit .sl-notif > span,.recit .sl-bulle,.recit .sl-legende > span{transition:none}
  .recit .sl-vibre,.recit .sl-ondes,.recit .sl-pouls,.recit .sl-ondelette rect,.recit .sl-yeux,.recit .sl-souffle,.recit .sl-vapeur,.recit .sl-led-b,.recit .sl-n-a .ic{animation:none !important}
  .recit .titre-chap{display:none !important}
  .recit .appel.sonne .appel-icone,.recit .appel.sonne .appel-icone::before,.recit .appel.sonne .appel-icone::after,.recit .appel.en-ligne .eq i,.recit .hud-etat::before,.recit-intro .defiler i::after{animation:none}
}
