/* ==========================================================================
   Rayoneo v4 : « la lumière sur les talents »
   Fond noir de la charte, faisceaux violet / magenta / orange, titres géants.
   Règle d'or : rien n'est caché sans la classe .anim (posée par mode-accessible.js
   seulement si l'animation est permise : ni prefers-reduced-motion, ni « Réduire
   les animations », ni « Version accessible »). Sans .anim : page statique complète.
   Couches : 1. jetons et base  2. composants  3. mouvement (.anim)  4. accessibilité
   ========================================================================== */

/* Rayoneo · kit d'identité partagé (site + applications). Source unique : ne pas modifier une copie.
   Polices auto-hébergées (chemins relatifs ../fonts/).
   Modifier ce fichier dans rayoneo-identite/, puis propager (voir LISEZ-MOI.md). */
@font-face{font-family:"Bricolage Grotesque";font-style:normal;font-weight:500 800;font-display:swap;src:url("../fonts/bricolage-grotesque-normal.woff2") format("woff2")}
@font-face{font-family:"Instrument Serif";font-style:italic;font-weight:400;font-display:swap;src:url("../fonts/instrument-serif-italic.woff2") format("woff2")}
@font-face{font-family:"Inter";font-style:normal;font-weight:100 900;font-display:swap;src:url("../fonts/inter-var.woff2") format("woff2")}
@font-face{font-family:"Poppins";font-style:normal;font-weight:700;font-display:swap;src:url("../fonts/poppins-700.woff2") format("woff2")}
@font-face{font-family:"Atkinson Hyperlegible";font-style:normal;font-weight:400;font-display:swap;src:url("../fonts/atkinson-400.woff2") format("woff2")}
@font-face{font-family:"Atkinson Hyperlegible";font-style:normal;font-weight:700;font-display:swap;src:url("../fonts/atkinson-700.woff2") format("woff2")}
@font-face{font-family:"OpenDyslexic";font-style:normal;font-weight:400;font-display:swap;src:url("../fonts/OpenDyslexic-Regular.woff") format("woff")}
@font-face{font-family:"OpenDyslexic";font-style:normal;font-weight:700;font-display:swap;src:url("../fonts/OpenDyslexic-Bold.woff") format("woff")}

/* Rayoneo · kit d'identité partagé (site + applications). Source unique : ne pas modifier une copie.
   Jetons : couleurs, dégradés, typographie, rayons, ombres, espacements, durées et courbes.
   Modifier ce fichier dans rayoneo-identite/, puis propager (voir LISEZ-MOI.md).
   Les valeurs de la première partie sont exactement celles du site v4 (23/10/2026). */
:root{
  /* charte Rayoneo */
  --violet:#9A00FF;--magenta:#FF2770;--orange:#FF8A00;--noir:#141414;
  --grad:linear-gradient(90deg,#9A00FF 0%,#FF2770 52%,#FF8A00 100%);
  --grad-cta:linear-gradient(120deg,#8A00E6 0%,#D4004F 100%);
  /* textes sur noir (tous ≥ 4,5:1 sur #141414) */
  --blanc:#FFFFFF;--gris-1:#D6D2DC;--gris-2:#ABA5B4;
  --violet-txt:#C77DFF;--rose-txt:#FF5C93;--orange-txt:#FF9D2E;
  /* surfaces */
  --fond:#141414;--fond-0:#0B0B0C;--surf:#1B1A1F;--surf-2:#232129;--ligne:#2E2B35;--ligne-2:#4A4553;
  /* typographie */
  --display:"Bricolage Grotesque","Poppins","Segoe UI",Arial,sans-serif;
  --serif:"Instrument Serif",Georgia,"Times New Roman",serif;
  --body:"Inter","Segoe UI",Arial,sans-serif;
  /* échelle des titres (site : très grande ; une application la resserre en redéfinissant ces trois jetons) */
  --h1:clamp(2.9rem,8.6vw,8.2rem);--h2:clamp(2.2rem,5.4vw,4.9rem);--h3:clamp(1.25rem,1.9vw,1.6rem);
  /* mise en page */
  --wrap:1240px;--gutter:clamp(1.25rem,4.5vw,3.5rem);--r:22px;--header-h:76px;
  /* courbes */
  --ease:cubic-bezier(.2,.7,.2,1);--ease-out:cubic-bezier(.16,1,.3,1);
  color-scheme:dark;

  /* ---- jetons ajoutés par le kit (nommés pour les applications ; le site ne s'en sert pas encore) */
  /* rayons */
  --rayon-s:10px;--rayon-m:14px;--rayon-pli:18px;--rayon-l:var(--r);--rayon-pilule:999px;
  /* ombres */
  --ombre-carte:0 1px 0 rgba(255,255,255,.04) inset,0 18px 40px -24px rgba(0,0,0,.7);
  --ombre-lum:0 18px 50px -18px rgba(255,39,112,.75);
  --ombre-panneau:0 30px 80px rgba(0,0,0,.55);
  --halo-focus:0 0 0 4px rgba(255,138,0,.25);
  /* espacements (échelle 4 px) */
  --esp-1:.25rem;--esp-2:.5rem;--esp-3:.75rem;--esp-4:1rem;--esp-5:1.5rem;--esp-6:2rem;--esp-7:3rem;--esp-8:4.5rem;
  /* durées */
  --duree-courte:.25s;--duree:.35s;--duree-moyenne:.6s;--duree-longue:.9s;
  /* focus */
  --focus:var(--orange);
  /* états (pastilles de statut : couleur + symbole + texte, jamais la couleur seule ; texte ≥ 7:1 sur son fond) */
  --ok-fond:#C4F2D6;--ok-texte:#0A3A1E;--ok-trait:#7FCFA0;
  --res-fond:#FFE2A8;--res-texte:#4A2E00;--res-trait:#E5B95C;
  --non-fond:#FFCAD6;--non-texte:#5C0019;--non-trait:#F08AA4;
  --calc-fond:#DEDAE6;--calc-texte:#24202C;--calc-trait:#B9B2C4;
  --info-fond:#2A1840;--info-texte:#E9D5FF;--info-trait:#7A3FC0;
  --alerte-fond:#2A1F00;--alerte-texte:#FFE2A8;--alerte-trait:#6B4C00;
  /* panneau de réglages (css/a11y.css) : ces variables n'étaient pas définies sur le site v4 du 23/10,
     d'où un panneau transparent et l'option cochée blanc sur blanc. Corrigé en v1.0.1 du kit.
     « Fond clair » et « Contraste renforcé » les redéfinissent. */
  --night:#141414;--night-2:#1B1A1F;--night-line:#4A4553;--on-night:#FFFFFF;--on-night-2:#D6D2DC;
  --ink:#141414;--ink-2:#47434F;--accent-night:#C77DFF;
}

/* Rayoneo · kit d'identité partagé (site + applications). Source unique : ne pas modifier une copie.
   Base : remise à zéro, titres, liens, focus visible, lien d'évitement.
   Modifier ce fichier dans rayoneo-identite/, puis propager (voir LISEZ-MOI.md). */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;background:var(--fond)}
body{margin:0;font-family:var(--body);font-size:1.0625rem;line-height:1.6;color:var(--gris-1);background:var(--fond);overflow-x:clip}
img,video,svg,canvas{display:block;max-width:100%}
img{height:auto}
figure{margin:0}
h1,h2,h3{font-family:var(--display);font-weight:700;line-height:1.02;letter-spacing:-.035em;margin:0 0 .5em;color:var(--blanc);text-wrap:balance;font-optical-sizing:auto}
h1{font-size:var(--h1);font-weight:750;letter-spacing:-.04em;line-height:.94}
h2{font-size:var(--h2)}
h3{font-size:var(--h3);line-height:1.15;letter-spacing:-.02em}
h1 em,h2 em,h3 em,.serif{font-family:var(--serif);font-style:italic;font-weight:400;letter-spacing:-.01em;color:var(--orange-txt)}
p{margin:0 0 1em;text-wrap:pretty}
p:last-child{margin-bottom:0}
a{color:inherit;text-underline-offset:.22em}
ul,ol{margin:0;padding:0}
button,input,select,textarea{font:inherit;color:inherit}
[id]{scroll-margin-top:calc(var(--header-h) + 1rem)}
.visually-hidden{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
:focus-visible{outline:3px solid var(--orange);outline-offset:3px;border-radius:6px}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 var(--gutter)}
.skip{position:absolute;left:-9999px;top:.5rem;z-index:400;background:#fff;color:#000;padding:.6rem 1rem;border-radius:8px;font-weight:600}
.skip:focus{left:.75rem}
::selection{background:var(--magenta);color:#fff}

/* mots découpés à la construction (titres) : simple habillage sans .anim */
.w{display:inline-block;vertical-align:top}
.w > span{display:inline-block}
.split .w{overflow:clip;overflow-clip-margin:.18em;padding-bottom:.06em;margin-bottom:-.06em}
/* rang du mot (délai de la révélation), sans attribut style */
.split .w:nth-child(2){--i:1}
.split .w:nth-child(3){--i:2}
.split .w:nth-child(4){--i:3}
.split .w:nth-child(5){--i:4}
.split .w:nth-child(6){--i:5}
.split .w:nth-child(7){--i:6}
.split .w:nth-child(8){--i:7}
.split .w:nth-child(9){--i:8}
.split .w:nth-child(10){--i:9}
.split .w:nth-child(11){--i:10}
.split .w:nth-child(12){--i:11}
.split .w:nth-child(13){--i:12}
.split .w:nth-child(14){--i:13}
.split .w:nth-child(15){--i:14}
.split .w:nth-child(16){--i:15}
.suite{margin-top:1.8rem}
.citation-bloc{margin-top:clamp(3rem,7vw,5rem);max-width:52rem}
.source--loin{margin-top:3rem}
.vrevele--photo{perspective:none}
.vrevele--photo .vrevele__cadre{max-width:420px}
.vrevele--photo img{border-radius:25px;aspect-ratio:5/6;object-fit:cover;object-position:50% 20%;background:#fff;width:100%}

/* ------------------------------------------------------------------ En-tête */
.site-header{position:fixed;inset:0 0 auto 0;z-index:200;color:#fff;transition:background-color .3s,border-color .3s,backdrop-filter .3s;border-bottom:1px solid transparent}
.site-header.is-scrolled,.no-js .site-header{background:rgba(20,20,20,.82);-webkit-backdrop-filter:blur(14px) saturate(1.4);backdrop-filter:blur(14px) saturate(1.4);border-bottom-color:var(--ligne)}
.site-header__in{display:flex;align-items:center;gap:1rem;height:var(--header-h)}
.brand{display:inline-flex;align-items:center;gap:.6rem;text-decoration:none;font-family:var(--display);font-weight:700;font-size:1.38rem;letter-spacing:-.02em;color:#fff}
.brand img{width:36px;height:auto}
.nav{margin-left:auto}
.nav ul{list-style:none;display:flex;gap:.15rem;align-items:center}
.nav a{position:relative;display:inline-flex;align-items:center;min-height:44px;padding:.4rem .85rem;border-radius:999px;text-decoration:none;font-weight:550;font-size:.98rem;color:var(--gris-1)}
.nav a:hover{color:#fff;background:rgba(255,255,255,.07)}
.nav a[aria-current="page"]{color:#fff}
.nav a[aria-current="page"]::after{content:"";position:absolute;left:.85rem;right:.85rem;bottom:4px;height:2px;border-radius:2px;background:var(--grad)}
.header-tools{display:flex;align-items:center;gap:.45rem}
/* Rayoneo · kit d'identité partagé (site + applications). Source unique : ne pas modifier une copie.
   Bascules d'en-tête : « Réduire les animations », « Version accessible », menu.
   Modifier ce fichier dans rayoneo-identite/, puis propager (voir LISEZ-MOI.md). */
.outil,.mode-btn,.menu-btn{display:inline-flex;align-items:center;gap:.45rem;min-height:44px;padding:.35rem .9rem .35rem .65rem;border:1.5px solid rgba(255,255,255,.55);border-radius:999px;background:rgba(20,20,20,.35);color:#fff;cursor:pointer;font-weight:600;font-size:.88rem;white-space:nowrap;line-height:1.1}
.outil svg,.mode-btn svg,.menu-btn svg{width:20px;height:20px;flex:none}
.outil:hover,.mode-btn:hover,.menu-btn:hover{background:#fff;color:var(--noir);border-color:#fff}
.mode-btn[aria-pressed="true"],.outil[aria-pressed="true"]{background:#fff;color:var(--noir);border-color:#fff}
.outil .on{display:none}
.outil[aria-pressed="true"] .on{display:inline}
.outil[aria-pressed="true"] .off{display:none}
.mode-btn__etat:empty{display:none}
.menu-btn{display:none}
@media (max-width:1180px){
  .outil__lib{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
  .outil{width:44px;padding:0;justify-content:center}
}
@media (max-width:980px){
  .menu-btn{display:inline-flex}
  .nav{position:fixed;left:0;right:0;top:var(--header-h);bottom:0;background:rgba(11,11,12,.97);padding:1.5rem var(--gutter) 7rem;display:none;overflow-y:auto}
  .nav.is-open{display:block}
  .nav ul{flex-direction:column;align-items:stretch;gap:0}
  .nav li{border-bottom:1px solid var(--ligne)}
  .nav a{width:100%;min-height:76px;font-family:var(--display);font-weight:700;font-size:clamp(1.9rem,8vw,2.6rem);letter-spacing:-.03em;color:#fff;border-radius:0;padding-left:0}
  .nav a[aria-current="page"]::after{left:0;right:auto;width:3rem;bottom:14px}
  .header-tools{margin-left:auto}
  .no-js .nav{position:static;display:block;padding:0;background:none}
  body.menu-ouvert{overflow:hidden}
  .site-header.menu-actif{background:rgba(11,11,12,.97)}
}
@media (max-width:560px){
  :root{--header-h:64px}
  .site-header__in{gap:.5rem}
  .brand{font-size:1.12rem;gap:.45rem}.brand img{width:28px}
  .header-tools{gap:.35rem}
  .mode-btn{padding:.35rem .6rem;font-size:.8rem}
  .mode-btn__v{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
  .mode-btn__a{display:inline-block}.mode-btn__a::first-letter{text-transform:uppercase}
  .mode-btn svg{display:none}
  .menu-btn__lib{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
  .menu-btn{width:44px;justify-content:center;padding:0}
}
@media (max-width:370px){.brand span:first-of-type{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}}
.progression{position:absolute;left:0;right:0;bottom:-1px;height:2px;background:var(--grad);transform-origin:0 50%;transform:scaleX(0);pointer-events:none}
html:not(.anim) .progression{display:none}

/* Rayoneo · kit d'identité partagé (site + applications). Source unique : ne pas modifier une copie.
   Boutons : lumière (dégradé), verre, blanc, petit ; liens soulignés ; liens fléchés.
   Modifier ce fichier dans rayoneo-identite/, puis propager (voir LISEZ-MOI.md). */
.btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:.6rem;min-height:56px;padding:.9rem 1.7rem;border-radius:999px;border:1.5px solid transparent;font-family:var(--display);font-weight:650;font-size:1.06rem;letter-spacing:-.01em;text-decoration:none;cursor:pointer;line-height:1.15;text-align:center;isolation:isolate}
.btn svg{width:20px;height:20px;flex:none}
.btn__in{display:inline-flex;align-items:center;gap:.6rem}
.btn--lum{background:var(--grad-cta);color:#fff;box-shadow:0 0 0 1px rgba(255,255,255,.08) inset,0 18px 50px -18px rgba(255,39,112,.75)}
.btn--lum::before{content:"";position:absolute;inset:-2px;border-radius:inherit;background:var(--grad);z-index:-1;filter:blur(14px);opacity:.0;transition:opacity .35s}
.btn--lum:hover::before,.btn--lum:focus-visible::before{opacity:.65}
.btn--verre{background:rgba(255,255,255,.06);color:#fff;border-color:rgba(255,255,255,.35);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}
.btn--verre:hover{background:#fff;color:var(--noir);border-color:#fff}
.btn--blanc{background:#fff;color:var(--noir)}
.btn--blanc:hover{background:var(--gris-1)}
.btn--petit{min-height:46px;padding:.6rem 1.15rem;font-size:.95rem}
.lien{font-weight:600;color:#fff;text-decoration:underline;text-decoration-thickness:1.5px;text-decoration-color:var(--magenta);text-underline-offset:.28em}
.lien:hover{text-decoration-color:var(--orange)}
.fleche{display:inline-flex;align-items:center;gap:.5rem;font-weight:650;color:#fff;text-decoration:none}
.fleche svg{width:22px;height:22px}

/* Rayoneo · kit d'identité partagé (site + applications). Source unique : ne pas modifier une copie.
   Typographie éditoriale : surtitre à filet, sections, chapô, source.
   Modifier ce fichier dans rayoneo-identite/, puis propager (voir LISEZ-MOI.md). */
.eyebrow{display:inline-flex;align-items:center;gap:.6rem;font-family:var(--body);font-weight:600;font-size:.82rem;letter-spacing:clamp(.1em,1vw,.16em);text-transform:uppercase;color:var(--gris-1);margin:0 0 1.2rem}
.eyebrow::before{content:"";width:28px;height:2px;border-radius:2px;background:var(--grad);flex:none}
.sec{position:relative;padding:clamp(5rem,12vw,10rem) 0}
.sec--serre{padding:clamp(3.5rem,8vw,6rem) 0}
.sec__tete{max-width:62rem;margin-bottom:clamp(2.2rem,5vw,4rem)}
.sec__tete p{font-size:clamp(1.08rem,1.5vw,1.25rem);color:var(--gris-1);max-width:40rem}
.chapo{font-size:clamp(1.12rem,1.7vw,1.38rem);line-height:1.5;color:var(--gris-1);max-width:38rem}
.source{font-size:.88rem;color:var(--gris-2);margin-top:1.4rem}

/* ------------------------------------------------------------------ Hero */
.hero{position:relative;min-height:100vh;min-height:100svh;display:flex;flex-direction:column;justify-content:flex-end;padding:calc(var(--header-h) + 2rem) 0 clamp(2rem,5vh,3.5rem);overflow:hidden;background:var(--fond-0);isolation:isolate}
.hero__fond{position:absolute;inset:0;z-index:-1;pointer-events:none}
.hero__fond picture,.hero__static,.hero__gl{position:absolute;inset:0;width:100%;height:100%}
.hero__static{object-fit:cover;object-position:72% 40%}
.hero__gl{opacity:0;transition:opacity 1.2s ease}
.gl-on .hero__gl{opacity:1}
.gl-on .hero__static{visibility:hidden}
.hero__voile{position:absolute;inset:auto 0 0 0;height:38%;background:linear-gradient(180deg,rgba(20,20,20,0),var(--fond))}
.hero__r{position:absolute;left:72%;top:40%;width:clamp(120px,17vw,270px);translate:-50% -50%;filter:drop-shadow(0 0 40px rgba(255,39,112,.55)) drop-shadow(0 0 90px rgba(154,0,255,.45));z-index:0}
.hero__in{position:relative;width:100%}
.hero h1{max-width:12ch;margin-bottom:.35em}
.hero__promesse{font-size:clamp(1.12rem,1.6vw,1.4rem);line-height:1.5;color:var(--gris-1);max-width:34rem;margin-bottom:2rem}
.hero__actions{display:flex;flex-wrap:wrap;gap:.8rem;margin-bottom:clamp(2.2rem,6vh,3.8rem)}
.hero__suite{position:absolute;right:var(--gutter);bottom:clamp(7.5rem,16vh,10rem);display:flex;flex-direction:column;align-items:center;gap:.7rem;color:var(--gris-1);text-decoration:none;font-size:.78rem;letter-spacing:.16em;text-transform:uppercase;writing-mode:vertical-rl;padding:.4rem}
.hero__suite::after{content:"";width:1.5px;height:64px;background:linear-gradient(180deg,#fff,rgba(255,255,255,0))}
@media (max-width:860px){
  .hero{justify-content:flex-start;padding-top:calc(var(--header-h) + 1rem)}
  .hero__r{position:relative;left:auto;top:auto;translate:none;margin:2vh auto 4vh;width:clamp(120px,36vw,200px)}
  .hero__static{object-position:50% 22%}
  .hero h1{font-size:clamp(3rem,14.5vw,5.4rem)}
  .hero__suite{display:none}
}
@media (max-width:560px){.hero__actions .btn{width:100%}}

/* page hero (pages intérieures) */
.phero{position:relative;padding:calc(var(--header-h) + clamp(3.5rem,9vw,7rem)) 0 clamp(3.5rem,8vw,6rem);overflow:hidden;background:var(--fond-0);isolation:isolate}
.phero .hero__static{object-position:88% 20%}
.phero .hero__voile{height:60%}
.phero h1{font-size:clamp(2.6rem,7.2vw,6.6rem);max-width:15ch}
.phero__grille{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr);gap:clamp(2rem,6vw,5rem);align-items:end}
.phero__grille > *{min-width:0}
.phero--seule .phero__grille{grid-template-columns:minmax(0,1fr)}
@media (max-width:860px){.phero__grille{grid-template-columns:1fr}}

/* Rayoneo · kit d'identité partagé (site + applications). Source unique : ne pas modifier une copie.
   Pastilles : trois chiffres ou paliers, une phrase chacun.
   Modifier ce fichier dans rayoneo-identite/, puis propager (voir LISEZ-MOI.md). */
.pastilles{list-style:none;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));max-width:46rem;border-top:1px solid rgba(255,255,255,.16);margin:0 0 2.2rem}
.pastille{padding:1.1rem 1.2rem 0 0;margin-right:1.2rem}
.pastille + .pastille{padding-left:1.2rem;border-left:1px solid rgba(255,255,255,.16)}
.pastille__n{display:block;white-space:nowrap;font-family:var(--display);font-weight:700;font-size:clamp(2.1rem,4vw,3.3rem);line-height:1;letter-spacing:-.04em;color:#fff;margin-bottom:.35rem;font-variant-numeric:tabular-nums}
.pastille:nth-child(1) .pastille__n{color:var(--orange-txt)}
.pastille:nth-child(2) .pastille__n{color:var(--rose-txt)}
.pastille:nth-child(3) .pastille__n{color:var(--violet-txt)}
.pastille__t{display:block;font-size:.95rem;line-height:1.35;color:var(--gris-1);overflow-wrap:break-word;hyphens:auto}
@media (max-width:560px){.pastille{padding-right:.5rem;margin-right:.5rem}.pastille + .pastille{padding-left:.7rem}.pastille__t{font-size:.84rem}.pastille__n{font-size:clamp(1.7rem,8vw,2.2rem)}}
.contact .pastille__n{font-size:clamp(1.6rem,2.6vw,2.2rem)}
.contact .pastilles{grid-template-columns:repeat(3,minmax(0,1fr))}
.contact .pastille__t{font-size:.84rem;overflow-wrap:normal}
.contact .pastille{margin-right:.7rem;padding-right:.4rem}
.contact .pastille + .pastille{padding-left:.8rem}
.hero .pastilles{margin-bottom:0}

/* ------------------------------------------------------------ Bandeau de mots */
.defile{position:relative;padding:clamp(2rem,5vw,3.5rem) 0;overflow:hidden;border-block:1px solid var(--ligne);background:var(--fond)}
.defile__ligne{display:flex;width:max-content;gap:clamp(1.4rem,3vw,2.6rem);align-items:center;white-space:nowrap;font-family:var(--display);font-weight:750;font-size:clamp(2.6rem,7vw,6.5rem);letter-spacing:-.04em;line-height:1.05;color:#fff;will-change:transform}
.defile__ligne + .defile__ligne{margin-top:.2em}
.defile__ligne--contour{color:var(--gris-2);font-weight:500}
.defile__ligne em{font-family:var(--serif);font-weight:400;font-style:italic;color:var(--orange-txt);-webkit-text-stroke:0}
.defile__point{flex:none;width:.32em;height:.32em;border-radius:50%;background:var(--grad);box-shadow:0 0 24px rgba(255,39,112,.8)}
html:not(.anim) .defile__ligne{flex-wrap:wrap;width:auto;white-space:normal;padding:0 var(--gutter);font-size:clamp(2rem,5vw,4rem)}
html:not(.anim) .defile__ligne .dup{display:none}

/* ------------------------------------------------------------ Manifeste */
.manifeste__texte{font-family:var(--display);font-weight:600;font-size:clamp(1.6rem,3.6vw,3.2rem);line-height:1.18;letter-spacing:-.03em;color:#fff;max-width:24em;margin:0 0 clamp(3rem,7vw,5.5rem)}
.manifeste__texte .mw{display:inline}
.chiffres{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(1rem,3vw,2.4rem);max-width:60rem}
.chiffre{position:relative;margin:0;padding:clamp(1.4rem,3vw,2.2rem) 0 0;border-top:1px solid var(--ligne-2)}
.chiffre b{display:block;font-family:var(--display);font-weight:750;font-size:clamp(3rem,8vw,7rem);line-height:.95;letter-spacing:-.05em;color:#fff;margin-bottom:.6rem;white-space:nowrap}
.chiffre b small{font-size:.42em;letter-spacing:-.02em;margin-left:.3em}
.chiffre:first-child b{color:var(--rose-txt)}
.chiffre:last-child b{color:var(--violet-txt)}
.chiffre > span{color:var(--gris-1);font-size:1.08rem;display:block;max-width:22rem}
@media (max-width:640px){.chiffres{grid-template-columns:1fr}}

/* ------------------------------------------------------------ Portes (cartes lumière) */
.portes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(1rem,2.4vw,1.8rem)}
.portes > *{min-width:0}
/* Rayoneo · kit d'identité partagé (site + applications). Source unique : ne pas modifier une copie.
   Cartes à halo : bord lumineux qui suit le pointeur (motion.js pose --mx / --my).
   Modifier ce fichier dans rayoneo-identite/, puis propager (voir LISEZ-MOI.md). */
.spot{--mx:50%;--my:50%;position:relative;border-radius:var(--r);background:var(--surf);border:1px solid var(--ligne);isolation:isolate}
.spot::before{content:"";position:absolute;inset:-1px;border-radius:inherit;padding:1px;background:radial-gradient(420px circle at var(--mx) var(--my),rgba(255,138,0,.95),rgba(255,39,112,.7) 30%,rgba(154,0,255,.45) 55%,transparent 75%);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#000 0 0) content-box exclude,linear-gradient(#000 0 0);opacity:0;transition:opacity .35s;pointer-events:none;z-index:2}
.spot::after{content:"";position:absolute;inset:0;border-radius:inherit;background:radial-gradient(600px circle at var(--mx) var(--my),rgba(255,39,112,.10),transparent 45%);opacity:0;transition:opacity .35s;pointer-events:none;z-index:-1}
.spot:hover::before,.spot:hover::after,.spot:focus-visible::before,.spot:focus-visible::after,.spot:focus-within::before{opacity:1}
.porte{display:flex;flex-direction:column;gap:.5rem;min-height:clamp(20rem,34vw,27rem);padding:clamp(1.6rem,3.2vw,2.6rem);text-decoration:none;color:var(--gris-1);overflow:hidden;transform-style:preserve-3d}
.porte__fx{position:absolute;inset:0;z-index:-1;border-radius:inherit;overflow:hidden;pointer-events:none}
.porte__fx::before{content:"";position:absolute;right:-20%;top:-30%;width:90%;height:160%;background:conic-gradient(from 200deg at 100% 0%,transparent 0deg,rgba(154,0,255,.35) 20deg,transparent 34deg,rgba(255,39,112,.28) 48deg,transparent 60deg,rgba(255,138,0,.25) 74deg,transparent 88deg);filter:blur(6px)}
.porte--orange .porte__fx::before{background:conic-gradient(from 200deg at 100% 0%,transparent 0deg,rgba(255,138,0,.35) 20deg,transparent 34deg,rgba(255,39,112,.28) 48deg,transparent 60deg,rgba(154,0,255,.25) 74deg,transparent 88deg)}
.porte__qui{font-weight:600;font-size:.82rem;letter-spacing:.16em;text-transform:uppercase;color:var(--orange-txt)}
.porte--violet .porte__qui{color:var(--violet-txt)}
.porte h3{font-size:clamp(2.2rem,4.6vw,4rem);letter-spacing:-.045em;margin:.2rem 0 .3rem}
.porte p{font-size:1.08rem;max-width:26rem;margin:0}
.porte__go{margin-top:auto;display:inline-flex;align-items:center;gap:.7rem;font-weight:650;color:#fff;padding-top:1.6rem}
.porte__rond{display:grid;place-items:center;width:54px;height:54px;border-radius:50%;border:1.5px solid rgba(255,255,255,.4);transition:background .3s,border-color .3s,color .3s}
.porte__rond svg{width:22px;height:22px}
.porte:hover .porte__rond,.porte:focus-visible .porte__rond{background:#fff;color:var(--noir);border-color:#fff}
@media (max-width:760px){.portes{grid-template-columns:1fr}.porte{min-height:0}}

/* ------------------------------------------------------------ Récit : le parcours */
.parcours__grille{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(2rem,6vw,6rem);align-items:start}
.parcours__grille > *{min-width:0}
.parcours__visuel{position:sticky;top:calc(var(--header-h) + 8vh);height:min(68vh,560px);border-radius:var(--r);background:radial-gradient(120% 90% at 50% 0%,#24152e 0%,#17141b 45%,#111012 100%);border:1px solid var(--ligne);overflow:hidden;display:flex;flex-direction:column;justify-content:center;padding:clamp(1.4rem,3vw,2.4rem)}
.parcours__visuel::before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(90deg,rgba(255,255,255,.035) 0 1px,transparent 1px 64px),repeating-linear-gradient(0deg,rgba(255,255,255,.035) 0 1px,transparent 1px 64px);mask:radial-gradient(80% 70% at 50% 50%,#000,transparent)}
.lien-visuel{position:relative;display:flex;align-items:center;gap:0}
.noeud{position:relative;z-index:1;flex:none;display:grid;place-items:center;width:clamp(84px,9vw,118px);aspect-ratio:1;border-radius:50%;font-family:var(--display);font-weight:700;font-size:clamp(.85rem,1.1vw,1rem);color:#fff;background:#1d1a22;border:1.5px solid var(--ligne-2);text-align:center}
.noeud--talent{box-shadow:0 0 0 6px rgba(255,138,0,.08),0 0 60px -10px rgba(255,138,0,.7);border-color:var(--orange)}
.noeud--ent{transition:box-shadow .6s,border-color .6s}
.parcours[data-pas="4"] .noeud--ent,html:not(.anim) .noeud--ent{box-shadow:0 0 0 6px rgba(154,0,255,.1),0 0 60px -10px rgba(199,125,255,.8);border-color:var(--violet-txt)}
.faisceau{position:relative;flex:1;height:6px;border-radius:6px;background:rgba(255,255,255,.08);margin:0 -2px}
.faisceau__plein{position:absolute;inset:0;border-radius:inherit;background:linear-gradient(90deg,#FF8A00,#FF2770 55%,#9A00FF);transform-origin:0 50%;transform:scaleX(var(--prog,1));box-shadow:0 0 18px rgba(255,39,112,.8),0 0 40px rgba(154,0,255,.5)}
.faisceau__eclat{position:absolute;top:50%;left:0;width:60px;height:60px;margin:-30px 0 0 -30px;border-radius:50%;background:radial-gradient(circle,#fff 0,rgba(255,200,230,.7) 18%,rgba(255,39,112,0) 62%);transform:translateX(calc(var(--prog,1) * var(--long,300px)))}
.parcours__jalons{list-style:none;display:grid;grid-template-columns:repeat(4,1fr);gap:.5rem;margin-top:clamp(2rem,5vh,3rem)}
.parcours__jalons li{font-size:.85rem;font-weight:600;color:var(--gris-2);padding-top:.8rem;border-top:2px solid rgba(255,255,255,.1);transition:color .4s,border-color .4s}
.parcours__jalons li.is-on{color:#fff;border-top-color:var(--magenta)}
html:not(.anim) .parcours__jalons li{color:var(--gris-1);border-top-color:var(--magenta)}
.parcours__compteur{position:absolute;right:clamp(1.2rem,3vw,2.2rem);top:clamp(1rem,2.4vw,1.8rem);font-family:var(--display);font-weight:700;font-size:.95rem;color:var(--gris-2);margin:0}
.parcours__compteur b{color:#fff;font-size:1.6rem;margin-right:.15rem}
.parcours__etapes{list-style:none;display:grid;gap:0}
.etape{min-height:min(68vh,560px);display:flex;flex-direction:column;justify-content:center;padding:2rem 0;border-top:1px solid var(--ligne)}
.etape:first-child{border-top:0}
.etape__n{font-family:var(--serif);font-style:italic;font-size:clamp(3.2rem,6vw,5rem);line-height:1;color:var(--orange-txt);margin-bottom:.6rem}
.etape:nth-child(2) .etape__n{color:var(--rose-txt)}
.etape:nth-child(3) .etape__n{color:var(--violet-txt)}
.etape:nth-child(4) .etape__n{color:#fff}
.etape h3{font-size:clamp(2.2rem,4.4vw,3.8rem);letter-spacing:-.045em;margin-bottom:.6rem}
.etape p{font-size:clamp(1.05rem,1.4vw,1.2rem);max-width:30rem}
.etape__qui{display:inline-block;margin-top:1rem;font-size:.8rem;letter-spacing:.14em;text-transform:uppercase;font-weight:600;color:var(--gris-2)}
.parcours__liens{display:flex;flex-wrap:wrap;gap:1.2rem 2rem;margin-top:clamp(2rem,5vw,3.5rem)}
@media (max-width:860px){
  .parcours__grille{grid-template-columns:1fr;gap:1rem}
  .parcours__visuel{top:calc(var(--header-h) + .5rem);height:auto;padding:1.1rem 1.2rem 1rem;z-index:2;background:rgba(23,20,27,.94);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}
  .noeud{width:64px;font-size:.72rem}
  .parcours__jalons{margin-top:1rem}
  .parcours__jalons li{font-size:.74rem;padding-top:.5rem}
  .parcours__compteur{display:none}
  .etape{min-height:auto;padding:3.2rem 0}
}

/* ------------------------------------------------------------ Talents + vidéo révélée */
.talents-sec__grille{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(2rem,6vw,6rem);align-items:center}
.talents-sec__grille > *{min-width:0}
.vrevele{position:relative;perspective:1400px}
.vrevele__cadre{position:relative;max-width:440px;margin-left:auto;border-radius:28px;padding:3px;background:var(--grad);box-shadow:0 40px 120px -40px rgba(255,39,112,.6),0 30px 80px -30px rgba(154,0,255,.6);transform-origin:50% 60%}
.video-talent{position:relative;border-radius:25px;overflow:hidden;background:#000;aspect-ratio:9/16}
.video-talent video{width:100%;height:100%;object-fit:cover}
.vrevele__btn{position:absolute;inset:0;width:100%;height:100%;padding:0;border:0;background:none;cursor:pointer;display:block}
.vrevele__btn img{width:100%;height:100%;object-fit:cover}
.vrevele__btn::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,0) 50%,rgba(0,0,0,.8))}
.play{position:absolute;left:50%;top:50%;z-index:1;display:grid;place-items:center;width:92px;height:92px;margin:-46px 0 0 -46px;border-radius:50%;background:rgba(255,255,255,.14);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1.5px solid rgba(255,255,255,.6);transition:transform .35s var(--ease-out),background .3s}
.play::before{content:"";margin-left:6px;border-left:24px solid #fff;border-top:15px solid transparent;border-bottom:15px solid transparent}
.vrevele__btn:hover .play,.vrevele__btn:focus-visible .play,.video__btn:hover .play,.video__btn:focus-visible .play{background:var(--magenta);border-color:var(--magenta)}
.vrevele__lib{position:absolute;left:1.2rem;right:1.2rem;bottom:1.1rem;z-index:1;color:#fff;text-align:left;font-weight:600;line-height:1.3}
.vrevele__lib small{display:block;font-weight:400;font-size:.86rem;color:var(--gris-1)}
.vrevele figcaption{max-width:440px;margin:1rem 0 0 auto;font-size:.95rem;color:var(--gris-1)}
.mini-talent{display:flex;align-items:center;gap:1rem;margin-top:2rem;padding:.9rem 1.1rem .9rem .9rem;text-decoration:none;color:var(--gris-1);max-width:30rem}
.mini-talent img{width:72px;height:96px;object-fit:cover;object-position:50% 30%;border-radius:12px;flex:none}
.mini-talent b{display:block;font-family:var(--display);font-size:1.15rem;color:#fff;letter-spacing:-.02em}
.mini-talent span{display:block;font-size:.92rem}
.mini-talent .fleche{margin-left:auto}
@media (max-width:860px){.talents-sec__grille{grid-template-columns:1fr}.vrevele__cadre,.vrevele figcaption{margin-left:auto;margin-right:auto;max-width:360px}}

/* grille de talents (page Talents) */
.talents{list-style:none;display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:clamp(1rem,2.4vw,1.8rem);max-width:980px}
.talent{min-width:0}
.talent a{display:flex;flex-direction:column;height:100%;text-decoration:none;color:var(--gris-1);overflow:hidden}
.talent__img{position:relative;aspect-ratio:4/5;overflow:hidden;border-radius:calc(var(--r) - 1px) calc(var(--r) - 1px) 0 0;background:#000}
.talent__img img{width:100%;height:100%;object-fit:cover;object-position:50% 34%;transition:transform .8s var(--ease-out)}
.talent a:hover .talent__img img{transform:scale(1.05)}
.talent__img .play{width:64px;height:64px;margin:0;left:auto;top:auto;right:1rem;bottom:1rem}
.talent__img .play::before{border-left-width:17px;border-top-width:11px;border-bottom-width:11px;margin-left:4px}
.talent__corps{padding:1.2rem 1.4rem 1.5rem}
.talent__corps h3{margin:0 0 .3rem}
.talent__corps span{display:block;font-size:.98rem}
.talent__corps .talent__go{margin-top:.9rem;color:#fff;font-weight:650;text-decoration:underline;text-decoration-color:var(--magenta);text-underline-offset:.28em}

/* ------------------------------------------------------------ Alix (vidéo YouTube en façade) */
.alix__texte{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(1.5rem,5vw,4.5rem);align-items:start;margin-top:clamp(2rem,4vw,3.2rem)}
.alix__texte > *{min-width:0}
.alix .video{aspect-ratio:21/9}
@media (max-width:860px){.alix .video{aspect-ratio:16/10}}
.video{position:relative;border-radius:var(--r);overflow:hidden;background:#000;aspect-ratio:16/10}
.video iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.video__btn{position:absolute;inset:0;padding:0;border:0;background:none;cursor:pointer;width:100%;height:100%;overflow:hidden}
.video__btn picture,.video__btn img{position:absolute;inset:-8% 0;width:100%;height:116%;object-fit:cover}
.video__btn::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,0) 40%,rgba(0,0,0,.78))}
.video__label{position:absolute;left:1.4rem;bottom:1.2rem;z-index:1;color:#fff;font-weight:600;text-align:left}
.video__label small{display:block;font-weight:400;font-size:.85rem;color:var(--gris-1)}
.citation{font-family:var(--serif);font-style:italic;font-weight:400;font-size:clamp(1.9rem,3.4vw,3rem);line-height:1.12;letter-spacing:-.01em;color:#fff;margin:0 0 1.2rem}
.citation::before{content:"«\00a0";color:var(--orange-txt)}
.citation::after{content:"\00a0»";color:var(--orange-txt)}
.citation-qui{color:var(--gris-1);font-size:.98rem}
@media (max-width:860px){.alix__texte{grid-template-columns:1fr}}

/* ------------------------------------------------------------ Équipe */
.equipe{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:clamp(2rem,5vw,4.5rem);align-items:center}
.equipe > *{min-width:0}
.equipe__photo{position:relative;border-radius:var(--r);overflow:hidden}
.equipe__photo img{width:100%} /* photo déjà traitée (N&B + faisceaux Rayoneo dans le fichier), aucun filtre */
@media (max-width:860px){.equipe{grid-template-columns:1fr}}

/* Rayoneo · kit d'identité partagé (site + applications). Source unique : ne pas modifier une copie.
   Plis (accordéons) : details/summary natifs, icône + qui tourne.
   Modifier ce fichier dans rayoneo-identite/, puis propager (voir LISEZ-MOI.md). */
.plis{display:grid;gap:.7rem;max-width:56rem}
.plis--2{grid-template-columns:repeat(2,minmax(0,1fr));max-width:none;align-items:start}
@media (max-width:760px){.plis--2{grid-template-columns:1fr}}
.pli{border-radius:18px;background:var(--surf);border:1px solid var(--ligne);transition:border-color .3s,background-color .3s}
.pli:hover{border-color:var(--ligne-2)}
.pli[open]{background:var(--surf-2);border-color:var(--ligne-2)}
.pli > summary{list-style:none;display:flex;align-items:center;gap:1rem;min-height:64px;padding:1.05rem 1.25rem;cursor:pointer;font-family:var(--display);font-weight:650;font-size:1.12rem;letter-spacing:-.015em;line-height:1.3;color:#fff;border-radius:18px}
.pli > summary::-webkit-details-marker{display:none}
.pli__titre{flex:1}
.pli > summary small{display:block;font-family:var(--body);font-weight:400;font-size:.9rem;letter-spacing:0;color:var(--gris-2);margin-top:.15rem}
.pli__ico{flex:none;width:36px;height:36px;border-radius:50%;display:grid;place-items:center;border:1.5px solid var(--ligne-2);color:#fff;transition:transform .35s var(--ease-out),background .3s,border-color .3s}
.pli__ico svg{width:16px;height:16px}
.pli[open] .pli__ico{transform:rotate(45deg);background:var(--magenta);border-color:var(--magenta)}
.pli__corps{padding:0 1.25rem 1.3rem;color:var(--gris-1)}
.pli__corps ul{padding-left:1.2rem;display:grid;gap:.3rem}
.pli__corps .btn{margin-top:.8rem}

/* Rayoneo · kit d'identité partagé (site + applications). Source unique : ne pas modifier une copie.
   Frise de progression : étapes reliées par un faisceau, panneau par étape.
   Modifier ce fichier dans rayoneo-identite/, puis propager (voir LISEZ-MOI.md). */
.frise{--n:4;--pas:0}
.frise__aide{color:var(--gris-1);font-size:.98rem;margin:0 0 1.4rem}
.frise__piste{position:relative}
.frise__etapes{list-style:none;position:relative;z-index:1;display:grid;grid-template-columns:repeat(var(--n),minmax(0,1fr));gap:.6rem}
.frise__fond,.frise__plein{position:absolute;top:39px;left:calc(50% / var(--n));right:calc(50% / var(--n));height:4px;border-radius:4px;background:rgba(255,255,255,.1)}
.frise__plein{right:auto;width:calc((100% - 100% / var(--n)) * var(--pas) / (var(--n) - 1));background:var(--grad);box-shadow:0 0 16px rgba(255,39,112,.7);z-index:0;transition:width .6s var(--ease-out)}
.frise__etapes li{position:relative;z-index:1;display:flex;justify-content:center}
.frise__btn{display:flex;flex-direction:column;align-items:center;gap:.7rem;width:100%;background:none;border:0;padding:0 .2rem .4rem;cursor:pointer;color:inherit;text-align:center;border-radius:14px}
.frise__num{display:grid;place-items:center;width:82px;height:82px;border-radius:50%;background:#1b1a1f;border:1.5px solid var(--ligne-2);font-family:var(--serif);font-style:italic;font-size:2.1rem;color:#fff;transition:transform .35s var(--ease-out),background .3s,box-shadow .3s,border-color .3s}
.frise__txt{display:flex;flex-direction:column;align-items:center;gap:.25rem}
.frise__titre{font-family:var(--display);font-weight:650;font-size:1.08rem;line-height:1.25;color:#fff}
.frise__plus{font-size:.86rem;color:var(--gris-1);text-decoration:underline;text-underline-offset:.2em}
.frise__btn[aria-expanded="true"] .frise__num,.frise__etapes li.is-faite .frise__num{border-color:transparent;background:var(--grad-cta);box-shadow:0 0 0 6px rgba(255,39,112,.12),0 0 40px -6px rgba(255,39,112,.9)}
.frise__btn[aria-expanded="true"] .frise__plus{visibility:hidden}
.frise__btn:hover .frise__num{transform:scale(1.07);border-color:#fff}
.frise__panneaux{margin-top:1.8rem}
.frise__panneau{position:relative;border-radius:var(--r);padding:clamp(1.4rem,3vw,2.2rem);background:var(--surf-2);border:1px solid var(--ligne-2);color:var(--gris-1);max-width:52rem;margin:0 auto;overflow:hidden}
.frise__panneau::before{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:var(--grad)}
.frise__panneau h3{margin-bottom:.5rem}
.frise__panneau .etape-n{font-weight:600;font-size:.8rem;letter-spacing:.14em;text-transform:uppercase;color:var(--orange-txt);margin-bottom:.4rem}
.frise__suite{margin-top:1.2rem;display:flex;gap:.6rem;flex-wrap:wrap}
.frise__suite button{min-height:46px;padding:.5rem 1.2rem;border-radius:999px;border:1.5px solid rgba(255,255,255,.5);background:transparent;font-weight:600;cursor:pointer;color:#fff}
.frise__suite button:hover{background:#fff;color:var(--noir)}
@media (max-width:760px){
  .frise__etapes{grid-template-columns:1fr;gap:.3rem}
  .frise__fond,.frise__plein{top:41px;bottom:41px;left:39px;right:auto;width:4px;height:auto}
  .frise__plein{bottom:auto;height:calc((100% - 82px) * var(--pas) / (var(--n) - 1));transition:height .6s var(--ease-out)}
  .frise__etapes li{justify-content:flex-start}
  .frise__btn{flex-direction:row;text-align:left;gap:1rem;padding:.3rem 0}
  .frise__num{flex:none}
  .frise__txt{align-items:flex-start;gap:.1rem}
}

/* ------------------------------------------------------------ Appel final */
.appel-final{position:relative;padding:clamp(6rem,14vw,11rem) 0;overflow:hidden;text-align:center;isolation:isolate}
.appel-final::before{content:"";position:absolute;left:50%;top:58%;width:min(1200px,140vw);aspect-ratio:2/1;translate:-50% -50%;z-index:-1;background:conic-gradient(from 180deg at 50% 100%,transparent 60deg,rgba(154,0,255,.55) 78deg,transparent 92deg,rgba(255,39,112,.6) 112deg,transparent 128deg,rgba(255,138,0,.55) 150deg,transparent 166deg,rgba(255,39,112,.45) 200deg,transparent 220deg,rgba(154,0,255,.4) 250deg,transparent 268deg);filter:blur(30px);opacity:.75;mask:radial-gradient(60% 80% at 50% 100%,#000 20%,transparent 75%)}
.appel-final h2{font-size:clamp(2.8rem,8vw,7.4rem);max-width:13ch;margin:0 auto .3em}
.appel-final p{font-size:clamp(1.1rem,1.6vw,1.3rem);margin:0 auto 2.4rem;max-width:32rem}
.btn--rond{width:clamp(150px,16vw,190px);height:clamp(150px,16vw,190px);border-radius:50%;padding:1rem;flex-direction:column;gap:.4rem;font-size:1.15rem}

/* ------------------------------------------------------------ Page talent */
.portrait{display:grid;grid-template-columns:minmax(0,360px) minmax(0,1fr);gap:clamp(2rem,6vw,5rem);align-items:center}
.portrait > *{min-width:0}
.portrait__video{border-radius:28px;padding:3px;background:var(--grad);box-shadow:0 40px 120px -40px rgba(255,39,112,.6)}
.portrait__video video{width:100%;aspect-ratio:9/16;border-radius:25px;background:#000;object-fit:cover}
.portrait h1{overflow-wrap:anywhere;font-size:clamp(2.6rem,6vw,5.6rem)}
.note{font-size:.9rem;color:var(--gris-1);margin-top:1.2rem;max-width:36rem}
@media (max-width:760px){.portrait{grid-template-columns:1fr}.portrait__video{max-width:320px}.portrait h1{font-size:clamp(2.3rem,10vw,3.4rem)}}

/* ------------------------------------------------------------ Contact */
.contact{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:clamp(2rem,5vw,4.5rem);align-items:start}
.contact > *{min-width:0}
@media (max-width:900px){.contact{grid-template-columns:1fr}}
.formulaire{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.1rem 1.2rem;padding:clamp(1.3rem,3vw,2.2rem)}
@media (max-width:640px){.formulaire{grid-template-columns:1fr}}
/* Rayoneo · kit d'identité partagé (site + applications). Source unique : ne pas modifier une copie.
   Champs de formulaire, case de consentement, messages d'état.
   Modifier ce fichier dans rayoneo-identite/, puis propager (voir LISEZ-MOI.md). */
.champ{display:flex;flex-direction:column;gap:.4rem}
.champ--plein,.formulaire .actions,.form-status{grid-column:1/-1}
.champ label{font-weight:600;color:#fff}
.champ input,.champ select,.champ textarea{min-height:52px;padding:.75rem .95rem;border:1.5px solid #8C8696;border-radius:12px;background:#121114;color:#fff;transition:border-color .25s,box-shadow .25s}
.champ input:hover,.champ select:hover,.champ textarea:hover{border-color:#C9C3D1}
.champ input:focus,.champ select:focus,.champ textarea:focus{outline:none;border-color:var(--orange);box-shadow:0 0 0 4px rgba(255,138,0,.25)}
.champ select option{background:#121114;color:#fff}
.champ textarea{min-height:150px;resize:vertical}
.champ .erreur{display:none;color:#FF8FA9;font-size:.92rem}
.champ.is-invalid .erreur{display:block}
.champ.is-invalid input,.champ.is-invalid textarea{border-color:#FF5C7A}
.consent{display:flex;gap:.7rem;align-items:flex-start;font-size:.95rem;color:var(--gris-1)}
.consent input{width:22px;height:22px;flex:none;margin-top:.1rem;accent-color:var(--magenta)}
.consent a{color:#fff}
.actions{display:flex;flex-direction:column;gap:1.1rem;align-items:flex-start}
.hp{position:absolute;left:-9999px}
.form-status:empty{display:none}
.form-status{padding:.95rem 1.1rem;border-radius:12px}
.form-status.ok{background:#0F2A1B;color:#9BE7B5;border:1px solid #2E6B47}
.form-status.err{background:#2E1116;color:#FFB3C0;border:1px solid #7A2633}
.infos{list-style:none;display:grid;gap:.7rem;margin-top:1.6rem}
.infos li{display:flex;gap:.7rem;align-items:center;color:var(--gris-1)}
.infos li::before{content:"";width:9px;height:9px;border-radius:50%;background:var(--grad);flex:none}
.mail{font-family:var(--display);font-weight:650;font-size:1.25rem;color:#fff}

/* ------------------------------------------------------------ Page légale */
.prose{max-width:48rem}
.prose dl{display:grid;grid-template-columns:minmax(0,12rem) minmax(0,1fr);gap:.6rem 1.2rem;margin:0}
.prose dt{font-weight:650;color:#fff}
.prose dd{margin:0}
.prose a{color:#fff}
@media (max-width:640px){.prose dl{grid-template-columns:1fr}.prose dd{margin-bottom:.6rem}}

/* ------------------------------------------------------------ Pied de page */
.site-footer{position:relative;background:var(--fond-0);color:var(--gris-1);padding:clamp(4rem,8vw,6rem) 0 2rem;border-top:1px solid var(--ligne);overflow:hidden}
.pied__cols{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) minmax(0,1fr);gap:2rem}
.pied__cols > *{min-width:0}
.site-footer h2{font-family:var(--body);font-size:.8rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--gris-2);margin-bottom:1rem}
.site-footer ul{list-style:none;display:grid;gap:.5rem}
.site-footer a{color:var(--gris-1);text-decoration:none}
.site-footer a:hover{color:#fff;text-decoration:underline}
.site-footer .brand{margin-bottom:1rem}
.pied__marque{display:block;width:100%;height:auto;margin:clamp(2.5rem,6vw,4.5rem) 0 0;pointer-events:none}
.pied__bas{display:flex;flex-wrap:wrap;justify-content:space-between;gap:1rem;margin-top:1.5rem;padding-top:1.2rem;border-top:1px solid var(--ligne);font-size:.88rem;padding-bottom:4.5rem;color:var(--gris-2)}
@media (max-width:760px){.pied__cols{grid-template-columns:1fr}}

/* ------------------------------------------------------------ Halo de curseur */
.halo{position:fixed;left:0;top:0;z-index:150;width:520px;height:520px;margin:-260px 0 0 -260px;border-radius:50%;pointer-events:none;background:radial-gradient(circle,rgba(255,39,112,.13) 0%,rgba(154,0,255,.07) 35%,transparent 65%);opacity:0;transition:opacity .5s;mix-blend-mode:screen}
.halo.is-on{opacity:1}

/* ==========================================================================
   3. MOUVEMENT : seulement sous .anim
   ========================================================================== */
/* intro du hero (CSS pur : démarre au premier affichage, sans attendre de script) */
.anim .hero .split .w,.anim .phero .split .w{overflow:visible}
.anim .hero .split .w > span,.anim .phero .split .w > span{opacity:.06;filter:blur(18px);transform:translateY(.32em) scale(1.04);animation:mot 1.25s var(--ease-out) forwards;animation-delay:calc(.08s + var(--i,0) * .085s)}
.anim .hero__r{opacity:0;scale:.7;animation:allume 1.6s var(--ease-out) .55s forwards}
.anim .hero__eyebrow,.anim .hero__promesse,.anim .hero__actions,.anim .hero .pastilles,.anim .phero__intro > :not(h1){opacity:0;animation:monte 1s var(--ease-out) forwards}
.anim .hero__eyebrow,.anim .phero__intro > .eyebrow{animation-delay:.2s}
.anim .hero__promesse,.anim .phero__intro > :nth-child(3){animation-delay:.75s}
.anim .hero__actions,.anim .phero__intro > :nth-child(4){animation-delay:.9s}
.anim .hero .pastilles,.anim .phero__intro > :nth-child(5),.anim .phero__intro > :nth-child(6){animation-delay:1.05s}
.anim .hero__suite::after{animation:goutte 2.4s var(--ease) 2s infinite;transform-origin:50% 0}
@keyframes mot{to{opacity:1;filter:none;transform:none}}
@keyframes monte{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
@keyframes allume{0%{opacity:0;scale:.7}60%{opacity:1}100%{opacity:1;scale:1}}
@keyframes goutte{0%{transform:scaleY(0)}50%{transform:scaleY(1)}100%{transform:scaleY(1);opacity:0}}

/* Rayoneo · kit d'identité partagé (site + applications). Source unique : ne pas modifier une copie.
   Mouvement : uniquement sous html.anim (posé par a11y.js) ; rien ne cache de contenu sans .anim.
   Modifier ce fichier dans rayoneo-identite/, puis propager (voir LISEZ-MOI.md). */
@keyframes monte{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
.anim .reveal.split .w > span{transform:translateY(108%);transition:transform 1s var(--ease-out);transition-delay:calc(var(--i,0) * .055s)}
.anim .reveal.split.is-in .w > span{transform:none}
.anim .reveal:not(.split){opacity:0;transform:translateY(28px);transition:opacity .9s var(--ease-out),transform .9s var(--ease-out)}
.anim .reveal:not(.split).is-in{opacity:1;transform:none}
.anim .reveal-groupe > *{opacity:0;transform:translateY(28px);transition:opacity .9s var(--ease-out),transform .9s var(--ease-out)}
.anim .reveal-groupe.is-in > *{opacity:1;transform:none}
.anim .reveal-groupe > [data-tilt]{transform:none;transition:opacity .9s var(--ease-out)}
.anim .reveal-groupe.is-in > :nth-child(2){transition-delay:.1s}
.anim .reveal-groupe.is-in > :nth-child(3){transition-delay:.2s}
.anim .reveal-groupe.is-in > :nth-child(4){transition-delay:.3s}
.anim .reveal-groupe.is-in > :nth-child(n+5){transition-delay:.4s}
.anim .pli[open] .pli__corps,.anim .frise__panneau:not([hidden]){animation:monte .45s var(--ease-out)}
.anim .btn--lum,.anim .btn--verre{transition:transform .4s var(--ease-out),background .3s,color .3s,border-color .3s}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
  .reveal,.reveal-groupe > *{opacity:1!important;transform:none!important}
  .split .w > span{transform:none!important}
}
.anim .porte__rond svg,.anim .fleche svg{transition:transform .35s var(--ease-out)}
.anim .porte:hover .porte__rond svg,.anim .fleche:hover svg{transform:translateX(4px)}
.anim .faisceau__eclat{animation:pulse 2.6s ease-in-out infinite}
@keyframes pulse{0%,100%{opacity:.75}50%{opacity:1}}
.anim .nav.is-open li{animation:monte .6s var(--ease-out) both}
.anim .nav.is-open li:nth-child(2){animation-delay:.05s}
.anim .nav.is-open li:nth-child(3){animation-delay:.1s}
.anim .nav.is-open li:nth-child(4){animation-delay:.15s}
html:not(.anim) .faisceau__eclat{display:none}
html:not(.anim) .halo{display:none}

/* transitions de page (API View Transitions, ignorée si non prise en charge) */
@media (prefers-reduced-motion:no-preference){
  @view-transition{navigation:auto}
  .site-header{view-transition-name:entete}
  ::view-transition-old(root){animation:.35s var(--ease) both vt-sort}
  ::view-transition-new(root){animation:.55s var(--ease-out) both vt-entre}
}
@keyframes vt-sort{to{opacity:0;transform:translateY(-24px)}}
@keyframes vt-entre{from{opacity:0;transform:translateY(32px)}}

/* Lenis */
html.lenis,html.lenis body{height:auto}
.lenis:not(.lenis-autoToggle).lenis-stopped{overflow:clip}
.lenis [data-lenis-prevent]{overscroll-behavior:contain}
.lenis.lenis-smooth iframe{pointer-events:none}

@media print{
  .site-header,.skip,.a11y-fab,.a11y-panneau,.video__btn,.hero__fond,.halo{display:none!important}
  body{background:#fff;color:#000}
  .pli__corps,.frise__panneau{display:block!important}
}

/* Rayoneo · kit d'identité partagé (site + applications). Source unique : ne pas modifier une copie.
   Accessibilité : panneau de réglages (a11y-*), « Version accessible » (html.mode-accessible), contraste, fond clair, polices lisibles.
   Modifier ce fichier dans rayoneo-identite/, puis propager (voir LISEZ-MOI.md). */
/* ==========================================================================
   RÉGLAGES D'ACCESSIBILITÉ
   1. Panneau de réglages fins (bouton flottant en bas à droite, a11y.js)
   2. Classes posées par le panneau (a11y-*)
   3. Version accessible en un clic (html.mode-accessible)
   ========================================================================== */
html[data-taille="1"]{font-size:112.5%}
html[data-taille="2"]{font-size:125%}
html[data-taille="3"]{font-size:145%}
.a11y-fab{position:fixed;right:22px;bottom:22px;z-index:250;display:flex;align-items:center;gap:.6rem;min-height:56px;padding:0 1.1rem 0 .85rem;border-radius:999px;background:var(--night);color:#fff;border:2px solid var(--magenta);cursor:pointer;box-shadow:0 14px 34px -12px rgba(0,0,0,.55);font-family:var(--display);font-weight:600;font-size:.95rem}
.a11y-fab svg{width:28px;height:28px;flex:none;color:var(--orange)}
.a11y-fab:hover{background:#000}
@media (max-width:600px){.a11y-fab{right:14px;bottom:14px;padding:0;width:56px;justify-content:center}.a11y-fab .fab-lib{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}}
.a11y-panneau{position:fixed;right:22px;bottom:92px;z-index:250;width:min(410px,calc(100vw - 28px));max-height:min(76vh,680px);overflow:auto;background:var(--night-2);color:#fff;border:1px solid var(--night-line);border-radius:12px;box-shadow:0 30px 80px rgba(0,0,0,.55);padding:1.5rem;display:none;font-family:var(--body)}
.a11y-panneau.ouvert{display:block}
.a11y-panneau h2{font-size:1.15rem;margin:0 2.75rem .3rem 0;color:#fff}
.a11y-panneau .sous{font-size:.88rem;color:var(--on-night-2);margin-bottom:1.1rem}
.a11y-groupe{margin-bottom:1.1rem}
.a11y-groupe .etiq{display:block;font-family:var(--display);font-weight:600;font-size:.78rem;letter-spacing:.06em;text-transform:uppercase;color:var(--on-night-2);margin-bottom:.55rem}
.a11y-options{display:flex;flex-wrap:wrap;gap:.5rem}
.a11y-opt{font-family:var(--display);font-weight:600;font-size:.88rem;line-height:1.25;color:#fff;background:#2B2830;border:2px solid var(--night-line);border-radius:10px;padding:.6rem .85rem;cursor:pointer;min-height:44px;text-align:left}
.a11y-opt:hover{border-color:var(--magenta)}
.a11y-opt[aria-pressed="true"]{background:#fff;color:var(--ink);border-color:var(--orange)}
.a11y-opt[data-bascule][aria-pressed="true"]::before,.a11y-opt[data-raccourci][aria-pressed="true"]::before,.a11y-opt[data-mode-accessible][aria-pressed="true"]::before{content:"\2713\00a0";color:var(--violet);font-weight:800}
.a11y-opt small{display:block;font-family:var(--body);font-weight:400;font-size:.78rem;color:var(--on-night-2);margin-top:.15rem}
.a11y-opt[aria-pressed="true"] small{color:var(--ink-2)}
.a11y-opt--large{width:100%}
.a11y-val{cursor:default;border-style:dashed}
.a11y-vocal select{appearance:auto;background:#2B2830}
.a11y-reset{width:100%;margin-top:.25rem;font-family:var(--display);font-weight:600;font-size:.88rem;background:none;border:2px solid var(--night-line);border-radius:10px;padding:.7rem;min-height:44px;cursor:pointer;color:var(--on-night-2)}
.a11y-reset:hover{border-color:#fff;color:#fff}
.a11y-fermer{position:absolute;top:.8rem;right:.8rem;background:#2B2830;border:none;border-radius:50%;width:44px;height:44px;font-size:1.05rem;cursor:pointer;color:#fff}
.a11y-note{font-size:.8rem;color:var(--on-night-2);margin-top:.9rem;line-height:1.5}
.a11y-note a{color:#fff}
.guide-lecture{position:fixed;left:0;top:38vh;width:100vw;height:22vh;min-height:150px;border-top:3px solid var(--orange);border-bottom:3px solid var(--orange);box-shadow:0 0 0 200vh rgba(0,0,0,.72);z-index:240;pointer-events:none;display:none}
html.a11y-masque .guide-lecture{display:block}
.ligne-lecture{position:fixed;left:0;width:100vw;height:4px;background:var(--orange);z-index:240;pointer-events:none;display:none;top:50vh}
html.a11y-ligne .ligne-lecture{display:block}
/* Polices */
html.a11y-police *{font-family:"Atkinson Hyperlegible",Verdana,sans-serif!important;letter-spacing:0!important}
html.a11y-dyspolice *{font-family:"OpenDyslexic",Verdana,sans-serif!important;letter-spacing:0!important}
html.a11y-dyspolice body{line-height:1.8}
html.a11y-dyspolice h1{font-size:clamp(2rem,5vw,3.4rem)}
html.a11y-espace body{line-height:2;letter-spacing:.06em;word-spacing:.14em}
html.a11y-espace p,html.a11y-espace li{margin-bottom:1.1em}
html.a11y-etroit .wrap{max-width:820px}
html.a11y-liens a{text-decoration:underline!important;text-underline-offset:3px;text-decoration-thickness:2px}
html.a11y-fixe *,html.a11y-fixe *::before,html.a11y-fixe *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
html.a11y-fixe .reveal{opacity:1!important;transform:none!important}
html.a11y-curseur,html.a11y-curseur *{cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='44' height='44' viewBox='0 0 24 24'%3E%3Cpath d='M4 2l16 11h-7l4 8-3.5 1.6-4-8L4 20z' fill='%23141414' stroke='white' stroke-width='1.4'/%3E%3C/svg%3E") 4 2,auto!important}
/* Fond clair : les bandes noires passent en blanc */
html.a11y-clair{--night:#FFFFFF;--night-2:#F5F3EF;--night-line:#D5D0D9;--on-night:#141414;--on-night-2:#47434F;--accent-night:#7400C2}
html.a11y-clair .a11y-panneau,html.a11y-clair .a11y-opt,html.a11y-clair .a11y-fermer,html.a11y-clair .a11y-panneau h2,html.a11y-clair .a11y-note a{color:var(--ink)}
html.a11y-clair .a11y-opt,html.a11y-clair .a11y-fermer,html.a11y-clair .a11y-vocal select{background:#fff}
html.a11y-clair .a11y-opt[aria-pressed="true"]{background:var(--ink);color:#fff}
html.a11y-clair .a11y-opt[aria-pressed="true"] small{color:#ddd}
html.a11y-clair .a11y-fab{background:#fff;color:var(--ink)}
html.a11y-clair .guide-lecture{box-shadow:0 0 0 200vh rgba(255,255,255,.8)}
/* Contraste renforcé : noir pur, blanc pur, accents jaunes */
html.a11y-contraste{--paper:#000;--paper-2:#000;--ink:#fff;--ink-2:#fff;--ink-3:#fff;--accent:#FFD23F;--line:#fff;--line-2:#fff;--night:#000;--night-2:#000;--night-line:#fff;--on-night:#fff;--on-night-2:#fff;--accent-night:#FFD23F;--magenta:#FFD23F;--orange:#FFD23F;--violet:#FFD23F;--grad:linear-gradient(90deg,#FFD23F,#FFD23F)}
html.a11y-contraste body{background:#000;color:#fff}
html.a11y-contraste a{text-decoration:underline}
html.a11y-contraste .btn--blanc{background:#fff;color:#000}
html.a11y-contraste .mode-btn[aria-pressed="true"]{background:#FFD23F;color:#000;border-color:#FFD23F}
html.a11y-contraste .form-status.ok,html.a11y-contraste .form-status.err{background:#000;color:#fff;border-color:#FFD23F}
html.a11y-contraste .champ .erreur{color:#FFD23F}
html.a11y-contraste .a11y-opt[aria-pressed="true"]{background:#FFD23F;color:#000;border-color:#fff}
html.a11y-contraste .a11y-opt[aria-pressed="true"] small{color:#000}
/* ==========================================================================
   4. ACCESSIBILITÉ : réglages du panneau (a11y-*) et « Version accessible »
   (html.mode-accessible). Le site v4 est sombre : ces règles le repassent en
   fond blanc / texte noir, sans décor ni mouvement, une seule colonne.
   ========================================================================== */
html.a11y-contraste{--gris-1:#fff;--gris-2:#fff;--ligne:#fff;--ligne-2:#fff;--orange-txt:#FFD23F;--rose-txt:#FFD23F;--violet-txt:#FFD23F;--surf:#000;--surf-2:#000;--fond:#000;--fond-0:#000}
html.a11y-contraste .btn--lum{background:#FFD23F;color:#000}
html.a11y-contraste .spot,html.a11y-contraste .pli,html.a11y-contraste .frise__panneau{border:2px solid #fff}
/* thème clair du panneau */
html.a11y-clair{--fond:#FFFFFF;--fond-0:#F6F4F9;--surf:#FFFFFF;--surf-2:#F6F4F9;--ligne:#CFC9D6;--ligne-2:#8C8696;--blanc:#141414;--gris-1:#2E2B33;--gris-2:#4A4653;--orange-txt:#8A4300;--rose-txt:#A3003A;--violet-txt:#5A0096;color-scheme:light}
html.a11y-clair body{color:var(--gris-1)}
html.a11y-clair h1,html.a11y-clair h2,html.a11y-clair h3,html.a11y-clair .lien,html.a11y-clair .fleche,html.a11y-clair .champ label,html.a11y-clair .pli > summary,html.a11y-clair .frise__titre,html.a11y-clair .frise__num,html.a11y-clair .pastille__n,html.a11y-clair .consent a{color:#141414}
html.a11y-clair .outil,html.a11y-clair .mode-btn,html.a11y-clair .menu-btn,html.a11y-clair .btn--verre,html.a11y-clair .frise__suite button{color:#141414;border-color:#141414;background:#fff}
html.a11y-clair .champ input,html.a11y-clair .champ select,html.a11y-clair .champ textarea,html.a11y-clair .champ select option{background:#fff;color:#141414}
html.a11y-clair .frise__num{background:#fff}
/* ----------------------------------------------------------------------
   Version accessible en un clic (bouton de l'en-tête, mode-accessible.js)
   ---------------------------------------------------------------------- */
html.mode-accessible{
  --fond:#FFFFFF;--fond-0:#FFFFFF;--surf:#FFFFFF;--surf-2:#FFFFFF;--ligne:#000;--ligne-2:#000;
  --blanc:#000;--gris-1:#1A1A1A;--gris-2:#1A1A1A;--orange-txt:#000;--rose-txt:#000;--violet-txt:#4B0082;
  --grad:linear-gradient(90deg,#000,#000);--grad-cta:linear-gradient(90deg,#000,#000);color-scheme:light;
}
html.mode-accessible *,html.mode-accessible *::before,html.mode-accessible *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
html.mode-accessible .reveal,html.mode-accessible .reveal-groupe > *{opacity:1!important;transform:none!important}
html.mode-accessible .split .w > span{transform:none!important}
html.mode-accessible body{background:#fff;color:#000;line-height:1.75}
html.mode-accessible h1,html.mode-accessible h2,html.mode-accessible h3{color:#000;letter-spacing:0;line-height:1.15}
html.mode-accessible h1 em,html.mode-accessible h2 em,html.mode-accessible h3 em,html.mode-accessible .serif,html.mode-accessible .frise__num{font-family:inherit;font-style:normal;font-weight:700;color:#000}
html.mode-accessible a{text-decoration:underline!important;text-decoration-thickness:2px!important;text-decoration-color:currentColor!important}
html.mode-accessible :focus-visible{outline:4px solid #000!important;outline-offset:3px!important;box-shadow:0 0 0 7px #FFE14D!important}
html.mode-accessible .menu-btn{color:#000}
html.mode-accessible .outil,html.mode-accessible .mode-btn{color:#000;border:2px solid #000;background:#fff}
html.mode-accessible .mode-btn[aria-pressed="true"],html.mode-accessible .outil[aria-pressed="true"]{background:#000;color:#fff;outline:3px solid #000;outline-offset:2px}
html.mode-accessible .spot::before,html.mode-accessible .spot::after{display:none!important}
html.mode-accessible h2{font-size:clamp(1.8rem,4vw,2.6rem)}
html.mode-accessible .chapo,html.mode-accessible .pastille__t,html.mode-accessible .note,html.mode-accessible .lien,html.mode-accessible .fleche,html.mode-accessible .eyebrow,html.mode-accessible .pli > summary,html.mode-accessible .pli > summary small,html.mode-accessible .pli__corps,html.mode-accessible .frise__titre,html.mode-accessible .frise__plus,html.mode-accessible .frise__aide,html.mode-accessible .frise__panneau,html.mode-accessible .champ label,html.mode-accessible .consent,html.mode-accessible .consent a,html.mode-accessible .pastille__n,html.mode-accessible .pastille:nth-child(n) .pastille__n,html.mode-accessible .source{color:#000}
html.mode-accessible .eyebrow::before{background:#000}
html.mode-accessible .spot,html.mode-accessible .pli,html.mode-accessible .frise__panneau{border:2px solid #000;background:#fff;color:#000;transform:none!important}
html.mode-accessible .btn{border:2px solid #000;transform:none!important}
html.mode-accessible .btn--lum,html.mode-accessible .btn--blanc,html.mode-accessible .btn--verre{background:#000;color:#fff;box-shadow:none}
html.mode-accessible .btn--lum::before{display:none}
html.mode-accessible .frise__num{background:#fff;border:2px solid #000;color:#000;box-shadow:none}
html.mode-accessible .frise__btn[aria-expanded="true"] .frise__num,html.mode-accessible .frise__etapes li.is-faite .frise__num{background:#000;color:#fff}
html.mode-accessible .frise__plein,html.mode-accessible .frise__fond{box-shadow:none}
html.mode-accessible .frise__suite button{color:#000;border:2px solid #000}
html.mode-accessible .pli__ico{background:#000;color:#fff;border-color:#000}
html.mode-accessible .champ input,html.mode-accessible .champ select,html.mode-accessible .champ textarea,html.mode-accessible .champ select option{border:2px solid #000;background:#fff;color:#000}
html.mode-accessible .champ .erreur{color:#8B0000}
html.mode-accessible .form-status.ok{background:#E7F6EC;color:#14532D}
html.mode-accessible .form-status.err{background:#FDECEC;color:#7F1D1D}
html.mode-accessible main .wrap{max-width:54rem}
html.mode-accessible .plis--2{grid-template-columns:1fr}
html.mode-accessible .pastilles{grid-template-columns:1fr;max-width:none;border-top:2px solid #000}
html.mode-accessible .pastille,html.mode-accessible .pastille + .pastille{padding:.8rem 0;margin:0;border-left:0;border-bottom:1px solid #000}
html.mode-accessible .a11y-fab{background:#000;color:#fff;border-color:#000;box-shadow:none;outline:2px solid #fff}
html.mode-accessible .a11y-fab svg{color:#fff}
html.mode-accessible .a11y-panneau{background:#fff;color:#000;border:2px solid #000;box-shadow:0 0 0 4px #fff}
html.mode-accessible .a11y-panneau h2,html.mode-accessible .a11y-panneau .sous,html.mode-accessible .a11y-groupe .etiq,html.mode-accessible .a11y-note,html.mode-accessible .a11y-note a,html.mode-accessible .a11y-reset{color:#000}
html.mode-accessible .a11y-opt,html.mode-accessible .a11y-fermer,html.mode-accessible .a11y-vocal select{background:#fff;color:#000;border:2px solid #000}
html.mode-accessible .a11y-opt small{color:#1a1a1a}
html.mode-accessible .a11y-opt[aria-pressed="true"]{background:#000;color:#fff;border-color:#000}
html.mode-accessible .a11y-opt[aria-pressed="true"] small,html.mode-accessible .a11y-opt[aria-pressed="true"]::before{color:#fff!important}
html.mode-accessible .a11y-reset{border:2px solid #000}
html.mode-accessible.a11y-contraste{--fond:#000;--fond-0:#000;--surf:#000;--surf-2:#000;--ligne:#fff;--ligne-2:#fff;--blanc:#fff;--gris-1:#fff;--gris-2:#fff}
html.mode-accessible.a11y-contraste body{background:#000;color:#fff}
/* 1.0.2 : en version accessible, la frise ouverte et le pli ouvert perdent aussi leur lueur et leur magenta
   (les règles d'état des composants étaient plus spécifiques que celles du mode). */
html.mode-accessible .frise__btn[aria-expanded="true"] .frise__num,html.mode-accessible .frise__etapes li.is-faite .frise__num{box-shadow:none;border-color:#000}
html.mode-accessible .pli[open] .pli__ico{background:#000;border-color:#000;color:#fff}

/* Rayoneo v4 : réglages d'accessibilité propres aux sections du site (le générique est dans le kit, css/a11y.css). */
/* Polices */
html.a11y-etroit .sec__grid,html.a11y-etroit .duo,html.a11y-etroit .ouverture__grid,html.a11y-etroit .contact,html.a11y-etroit .simu,html.a11y-etroit .portes{grid-template-columns:1fr}
/* Fond clair : les bandes noires passent en blanc */
html.a11y-clair .nuit .btn--blanc,html.a11y-clair .site-footer .btn--blanc{background:var(--ink);color:#fff}
html.a11y-clair .pied__devise,html.a11y-clair .site-footer h2,html.a11y-clair .site-footer .brand,html.a11y-clair .site-footer a:hover,html.a11y-clair .nuit .lien-fleche,html.a11y-clair .nuit .rang .meta,html.a11y-clair .nuit .prose a{color:var(--ink)}
html.a11y-clair .site-footer{border-top:1px solid var(--line)}
html.a11y-clair .site-footer .btn--contour{color:var(--ink)}
html.a11y-clair .nuit .champ input{background:#fff;color:var(--ink);border-color:var(--line-2)}
html.a11y-clair .video__label{color:#fff}
/* Contraste renforcé : noir pur, blanc pur, accents jaunes */
html.a11y-contraste .btn--noir{background:#FFD23F;color:#000}
html.a11y-contraste .figure__cadre,html.a11y-contraste .talent__img{outline:1px solid #fff}
html.a11y-contraste .nav__item[aria-current="page"],html.a11y-contraste .nav__item:hover,html.a11y-contraste .nav__btn:hover,html.a11y-contraste .nav__link:hover{background:#222}
/* ==========================================================================
   4. ACCESSIBILITÉ : réglages du panneau (a11y-*) et « Version accessible »
   (html.mode-accessible). Le site v4 est sombre : ces règles le repassent en
   fond blanc / texte noir, sans décor ni mouvement, une seule colonne.
   ========================================================================== */
html.a11y-contraste .hero__fond,html.a11y-contraste .phero .hero__fond,html.a11y-contraste .appel-final::before,html.a11y-contraste .porte__fx{display:none}
/* thème clair du panneau */
html.a11y-clair .brand,html.a11y-clair .nav a,html.a11y-clair .mail,html.a11y-clair .porte__go,html.a11y-clair .etape__n,html.a11y-clair .chiffre b,html.a11y-clair .defile__ligne,html.a11y-clair .citation,html.a11y-clair .manifeste__texte,html.a11y-clair .prose dt,html.a11y-clair .prose a,html.a11y-clair .talent__corps .talent__go,html.a11y-clair .mini-talent b,html.a11y-clair .noeud{color:#141414}
html.a11y-clair .hero__fond,html.a11y-clair .appel-final::before,html.a11y-clair .porte__fx,html.a11y-clair .parcours__visuel::before{display:none}
html.a11y-clair .hero,html.a11y-clair .phero{background:var(--fond-0)}
html.a11y-clair .site-header,html.a11y-clair .site-header.is-scrolled{background:#fff;border-bottom-color:var(--ligne)}
html.a11y-clair .nav{background:#fff}
html.a11y-clair .defile__ligne--contour{-webkit-text-stroke-color:#141414}
html.a11y-clair .parcours__visuel{background:#F6F4F9}
html.a11y-clair .noeud{background:#fff}
/* ----------------------------------------------------------------------
   Version accessible en un clic (bouton de l'en-tête, mode-accessible.js)
   ---------------------------------------------------------------------- */
html.mode-accessible .etape__n,html.mode-accessible .citation{font-family:inherit;font-style:normal;font-weight:700;color:#000}
html.mode-accessible .site-header{position:static;background:#fff;color:#000;border-bottom:2px solid #000;-webkit-backdrop-filter:none;backdrop-filter:none}
html.mode-accessible .site-header__in{height:auto;min-height:var(--header-h);flex-wrap:wrap;padding:.5rem 0}
html.mode-accessible .brand,html.mode-accessible .nav a{color:#000}
html.mode-accessible .nav{background:#fff}
html.mode-accessible .nav a[aria-current="page"]::after{background:#000}
html.mode-accessible .progression,html.mode-accessible .hero__fond,html.mode-accessible .halo,html.mode-accessible .appel-final::before,html.mode-accessible .porte__fx,html.mode-accessible .parcours__visuel::before,html.mode-accessible .pied__marque,html.mode-accessible .hero__suite,html.mode-accessible .faisceau__eclat,html.mode-accessible .equipe__photo::after{display:none!important}
html.mode-accessible .hero,html.mode-accessible .phero{min-height:0;background:#fff;padding-top:2rem;justify-content:flex-start}
html.mode-accessible .hero__r{position:static;translate:none;width:120px;margin:0 0 1rem;filter:none}
html.mode-accessible .hero h1,html.mode-accessible .phero h1{font-size:clamp(2.2rem,6vw,3.4rem)}
html.mode-accessible .hero__promesse,html.mode-accessible .infos li,html.mode-accessible .site-footer,html.mode-accessible .site-footer a,html.mode-accessible .mail,html.mode-accessible .porte,html.mode-accessible .porte__go,html.mode-accessible .porte__qui,html.mode-accessible .site-footer h2,html.mode-accessible .frise__panneau .etape-n,html.mode-accessible .manifeste__texte,html.mode-accessible .chiffre b,html.mode-accessible .chiffre span,html.mode-accessible .defile__ligne,html.mode-accessible .defile__ligne em,html.mode-accessible .citation-qui,html.mode-accessible .etape p,html.mode-accessible .etape__qui,html.mode-accessible .talent a,html.mode-accessible .talent__corps .talent__go,html.mode-accessible .mini-talent,html.mode-accessible .mini-talent b,html.mode-accessible .prose dt,html.mode-accessible .prose a,html.mode-accessible .vrevele figcaption,html.mode-accessible .parcours__jalons li,html.mode-accessible .noeud,html.mode-accessible .pied__bas{color:#000}
html.mode-accessible .defile{padding:1.5rem 0}
html.mode-accessible .defile__ligne{flex-wrap:wrap;width:auto;white-space:normal;padding:0 var(--gutter);font-size:clamp(1.4rem,4vw,2.2rem);-webkit-text-stroke:0}
html.mode-accessible .defile__ligne .dup{display:none}
html.mode-accessible .manifeste__texte .mw{opacity:1!important}
html.mode-accessible .formulaire,html.mode-accessible .parcours__visuel{border:2px solid #000;background:#fff;color:#000;transform:none!important}
html.mode-accessible .btn--rond{width:auto;height:auto;border-radius:999px;flex-direction:row}
html.mode-accessible .play{background:#000;border-color:#000}
html.mode-accessible .portrait__video,html.mode-accessible .vrevele__cadre{background:none;padding:0;box-shadow:none;transform:none!important}
html.mode-accessible .equipe__photo img{filter:none}
html.mode-accessible .parcours__visuel{position:static;height:auto}
html.mode-accessible .faisceau{background:#ccc}
html.mode-accessible .faisceau__plein{background:#000;box-shadow:none;transform:none}
html.mode-accessible .noeud{background:#fff;border:2px solid #000;box-shadow:none}
html.mode-accessible .etape{min-height:0;padding:1.5rem 0;border-top:2px solid #000}
html.mode-accessible .site-footer{background:#fff;border-top:2px solid #000}
html.mode-accessible .site-footer .wrap{max-width:54rem}
html.mode-accessible .phero__grille,html.mode-accessible .portes,html.mode-accessible .chiffres,html.mode-accessible .alix__texte,html.mode-accessible .equipe,html.mode-accessible .contact,html.mode-accessible .portrait,html.mode-accessible .pied__cols,html.mode-accessible .formulaire,html.mode-accessible .parcours__grille,html.mode-accessible .talents-sec__grille{grid-template-columns:1fr}
html.mode-accessible .portrait__video,html.mode-accessible .vrevele__cadre{max-width:22rem;margin:0}
html.mode-accessible .appel-final{text-align:left;padding:3rem 0}
html.mode-accessible .appel-final h2,html.mode-accessible .appel-final p{margin-left:0}
html.mode-accessible.a11y-contraste .site-header,html.mode-accessible.a11y-contraste .site-footer,html.mode-accessible.a11y-contraste .hero,html.mode-accessible.a11y-contraste .phero{background:#000;color:#fff}
