/* GHOSTFORM · BENZIN / Montserrat. Toutes les polices sont locales. */
@font-face { font-family:Benzin; src:url('../fonts/benzin-medium.woff2') format('woff2'); font-weight:500; font-style:normal; font-display:swap; }
@font-face { font-family:Benzin; src:url('../fonts/benzin-semibold.woff2') format('woff2'); font-weight:600; font-style:normal; font-display:swap; }
:root { --display:Benzin,Arial,sans-serif; --sans:Montserrat,system-ui,sans-serif; --mono:var(--sans); --serif:var(--display); }
body { font-family:var(--sans); }
h1,h2,h3 { font-family:var(--display); font-weight:500; letter-spacing:-.045em; }
.marque__mot,.experience .marque__mot { font-family:var(--display); font-weight:600; font-size:1.04rem; letter-spacing:-.045em; }
.marque__mot > span { font-weight:500; }
.repere,.numero,.hero-ghost__edition,.presence-cinema__signature { font-family:var(--mono); font-weight:400; letter-spacing:.09em; }
.candidature-entree h1,.regard-intro h1 { font-family:var(--display); font-size:clamp(2.1rem,4.4vw,4.4rem); line-height:1.08; letter-spacing:-.05em; }
.candidature-aside h2 { font-family:var(--display); font-size:1.5rem; }
.section-v3 h2 { font-family:var(--display); font-weight:500; letter-spacing:-.05em; }
/* La scène d’ouverture : monument typographique et matière en suspension. */
.experience { overflow-x:clip; }
.experience main { overflow-x:clip; }
.experience .entete { padding-block:1.4rem; }
.experience .entete__nav { font-size:.72rem; backdrop-filter:blur(16px); }
.hero-ghost { min-height:max(900px,100svh); padding-top:8.2rem; }
.hero-ghost__fond { background:radial-gradient(ellipse at 74% 45%,#44464d 0%,#16181e 28%,#08090b 66%); }
.hero-ghost__fond::before { content:''; position:absolute; inset:0; background:linear-gradient(120deg,transparent 38%,#ffffff05 46%,transparent 58%); }
.hero-ghost__haut { z-index:2; }
.hero-ghost__haut .repere { font-size:.62rem; }
.hero-ghost__edition { font-size:.55rem; padding-top:0; }
.titre-ghost { font:600 clamp(6rem,13.3vw,19rem)/.87 var(--display); letter-spacing:-.065em; margin:2.4rem 0 3rem -.04em; }
.titre-ghost > span:first-child { background:linear-gradient(115deg,#fff 10%,#c4c7cc 46%,#f5f4ef 72%); background-clip:text; -webkit-text-fill-color:transparent; }
.titre-ghost__forme { margin-top:.12em; -webkit-text-stroke:1px #e0e3e7b3; }
.titre-ghost__point { left:102%; top:0; color:#f15a43; }
.apparition { width:66%; right:-4%; top:-4%; height:108%; }
.champ-orbital { position:absolute; width:61%; aspect-ratio:1; right:-1%; top:10%; color:#d4d8e757; transform:rotate(-15deg); }
.champ-orbital svg { width:100%; height:100%; overflow:visible; }
.champ-orbital__repere,.champ-orbital__axe { position:absolute; font:400 .49rem/1.5 var(--mono); letter-spacing:.15em; color:#c2c4c9; }
.champ-orbital__repere { top:8%; right:11%; transform:rotate(15deg); }
.champ-orbital__axe { bottom:5%; left:22%; transform:rotate(15deg); }
.champ-orbital__balayage { position:absolute; left:12%; right:12%; top:25%; height:1px; background:linear-gradient(90deg,transparent,#e35b44a6,transparent); opacity:.5; }
.orbite { border-color:#c4c6d623; top:24%; width:63%; right:-2%; }
.orbite--b { border-style:dashed; border-color:#c4c6d61a; }
.hero-manifeste { font:500 clamp(1.3rem,1.9vw,2rem)/1.3 var(--display); letter-spacing:-.045em; max-width:36rem; }
.hero-ghost__description { font-size:.85rem; }
.hero-ghost__bas { gap:2rem; }
.hero-ghost__conversion { width:20.5rem; }
.experience .bouton--signal { position:relative; isolation:isolate; overflow:hidden; border-radius:3px 22px 3px 22px; padding:1.2rem 1.4rem; font-size:.83rem; min-width:0; width:100%; max-width:24rem; gap:1rem; }
.experience .bouton--signal::before { content:''; position:absolute; inset:0; z-index:-1; background:radial-gradient(ellipse at var(--reflet-x,50%) var(--reflet-y,0%),#ffffff14,transparent 65%); opacity:0; transition:opacity .3s; }
.experience .bouton--signal:hover::before { opacity:1; }
.experience .bouton--signal > span { transition:transform .45s cubic-bezier(.2,.8,.2,1); }
.experience .bouton--signal:hover > span { transform:rotate(45deg); }
.explorer span { transition:transform .4s; }
.explorer:hover span { transform:translateY(4px); }
.animation-controle { position:fixed; top:auto; bottom:1rem; right:1rem; border:1px solid #ffffff30; border-radius:100px; font:400 .56rem/1.5 var(--mono); padding:.65rem .9rem; background:#08090be8; backdrop-filter:blur(12px); z-index:12; color:#e3e2de; }
.progression-lecture { position:fixed; top:0; left:0; right:0; height:2px; z-index:15; pointer-events:none; }
.progression-lecture i { display:block; height:100%; background:#ef5c45; transform:scaleX(0); transform-origin:left; }
/* Cadence, changements d’échelle, repères de lecture. */
.interlude { padding:1.5rem 0; transform:rotate(-1.3deg) scale(1.02); margin-block:1rem; }
.interlude .interlude__piste { display:flex; width:max-content; font:500 clamp(1rem,2.1vw,2rem)/1.3 var(--display); letter-spacing:-.04em; }
.interlude__piste > div { flex:none; padding-right:0; }
.interlude span { color:#ef5c45; padding:0 2.5vw; }
.experience .reperes-cycle strong { font-family:var(--display); font-weight:500; font-size:1.65rem; letter-spacing:-.055em; }
.experience .reperes-cycle p { gap:1rem; padding-inline:1.4rem; }
.experience .reperes-cycle p:first-child { padding-left:0; }
.experience .situations-intro h2 { font:500 clamp(2.5rem,4.8vw,6rem)/1.12 var(--display); letter-spacing:-.055em; }
.situations-intro { grid-template-columns:1.3fr 1fr; }
.situations-intro h2 > span { color:#8d8e95; }
.situations-choix > a { font-size:clamp(1rem,1.5vw,1.4rem); font-weight:500; transition:color .3s,padding .5s cubic-bezier(.2,.8,.2,1),background .4s; }
.situations-choix > a > span:first-child { font-family:var(--mono); }
.situations-panels { border-radius:2px 4.5rem 2px 2px; background:radial-gradient(ellipse at var(--reflet-x,100%) var(--reflet-y,0%),#414148 0%,#222329 34%,#111216 80%); box-shadow:0 30px 80px #0004; }
.situations-panels::after { content:''; position:absolute; inset:0; pointer-events:none; border:1px solid #ffffff08; border-radius:inherit; }
.situation-panel { padding:3rem 2.4rem; }
.situation-panel h3 { font:500 clamp(1.65rem,2.6vw,3rem)/1.18 var(--display); letter-spacing:-.05em; }
.scene-dessin { right:-18%; top:-25%; width:72%; opacity:.22; }
.situation-panel:not([hidden]) { animation:scene-ghost .65s cubic-bezier(.2,.7,.2,1) both; }
.experience .regard-v3 { overflow:hidden; isolation:isolate; background:#deddd6; grid-template-columns:1.15fr 1fr; }
.experience .regard-v3 h2 { font:500 clamp(2.4rem,4.6vw,5.8rem)/1.12 var(--display); letter-spacing:-.055em; }
.experience .regard-v3 .section-v3__intro,.experience .regard-v3 .lectures { position:relative; }
.regard-boussole { position:absolute; z-index:-1; width:45vw; aspect-ratio:1; bottom:-14vw; left:27%; color:#96958c; opacity:.25; transform:rotate(var(--rotation,0deg)); }
.regard-boussole i { position:absolute; inset:0; border:1px solid; border-radius:50%; }
.regard-boussole i:nth-child(2) { inset:10%; border-style:dashed; }
.regard-boussole span { position:absolute; inset:0; display:grid; place-items:center; font-size:32vw; line-height:1; }
.presence-cinema { min-height:max(950px,110svh); }
.presence-cinema__contenu { max-width:61%; }
.presence-cinema h2 { font:500 clamp(2.4rem,4.7vw,5.8rem)/1.14 var(--display); letter-spacing:-.055em; }
.presence-cinema__lettres { font:600 17.8vw/1 var(--display); letter-spacing:-.06em; left:-1%; bottom:4%; }
.presence-cinema__photo { height:116%; top:-8%; width:68%; }
.presence-cinema__signature { position:absolute; bottom:2.5rem; left:6vw; padding:0; }
.experience .cycle-v3 { grid-template-columns:1.1fr 1fr; background:linear-gradient(125deg,#ba2418,#9b170f 60%,#6e100c); }
.experience .cycle-v3 h2 { font:500 clamp(2.8rem,5.1vw,6.4rem)/1.08 var(--display); letter-spacing:-.055em; }
.experience .cycle-v3 .cycle-v3__prix strong { font:500 clamp(2.5rem,4.4vw,4.5rem)/1 var(--display); letter-spacing:-.06em; }
.cycle-fantome { font-family:var(--display); font-weight:500; font-size:40vw; letter-spacing:-.08em; }
.experience .cycle-v3__etapes h3 { font:500 1.04rem/1.5 var(--display); letter-spacing:-.035em; }
.experience .cycle-v3__etapes li { position:relative; }
.experience .cycle-v3__etapes li::before { content:''; position:absolute; left:-2rem; width:2px; top:1.8rem; bottom:1.8rem; background:#f4d7cc; transform:scaleY(0); transform-origin:top; transition:transform .8s .4s; }
.experience .cycle-v3__etapes li.est-visible::before { transform:scaleY(1); }
.experience .questions h2 { font:500 clamp(2rem,4.3vw,5.4rem)/1.15 var(--display); letter-spacing:-.055em; }
.experience .ouverture-liste h2 { font:500 clamp(1.7rem,3.8vw,4.6rem)/1.2 var(--display); letter-spacing:-.055em; }
.experience .pied::before { font:600 9.5vw/1 var(--display); letter-spacing:-.06em; margin-left:-.04em; }
.mot-masque { display:inline-block; overflow:hidden; vertical-align:bottom; padding-bottom:.09em; margin-bottom:-.09em; max-width:100%; }
h2 .mot-masque, h2 .mot { color:inherit!important; }
.mot { display:inline-block; }
.revelation { opacity:1; transform:none; }
/* Les animations ne sont actives qu’après initialisation ; le contenu reste présent sans JS. */
.motion-active .revelation:not(.est-visible):not(h2) { opacity:0; transform:translateY(2.4rem); }
.motion-active h2.revelation:not(.est-visible) .mot { transform:translateY(115%) rotate(3deg); }
.revelation:not(h2) { transition:opacity .85s var(--delai,0s),transform 1.1s cubic-bezier(.16,1,.3,1) var(--delai,0s); }
h2.revelation .mot { transition:transform 1.05s cubic-bezier(.16,1,.3,1) var(--retard,0s); }
.motion-ready .interlude__piste { animation:defilement-forme 30s linear infinite; }
.motion-ready .orbital-trace { transform-origin:350px 350px; animation:rotation-forme 22s linear infinite; }
.motion-ready .orbital-retour { transform-origin:350px 350px; animation:rotation-forme 60s linear infinite reverse; }
.motion-ready .orbital-accent { transform-origin:350px 350px; animation:rotation-forme 34s linear infinite; }
.motion-ready .champ-orbital__balayage { animation:balayage-forme 8s ease-in-out infinite alternate; }
.motion-ready .scene-dessin { animation:orbite-forme 18s ease-in-out infinite alternate; }
.experience .titre-ghost { transform:translate3d(calc(var(--sortie,0) * -45px),calc(var(--sortie,0) * -65px),0); }
.experience .apparition { transform:translate3d(0,calc(var(--sortie,0) * 85px),0) rotate(calc(var(--sortie,0) * 8deg)); }
.experience .champ-orbital { transform:rotate(calc(-15deg + var(--sortie,0) * 20deg)); }
.experience .presence-cinema__photo { transform:translate3d(0,var(--derive,0px),0); }
.experience .presence-cinema__lettres { transform:translate3d(calc(var(--avance,0) * -70px),0,0); }
.experience .cycle-fantome { transform:translate3d(calc(var(--avance,0) * 75px),0,0) rotate(calc(var(--avance,0) * -5deg)); }
@media(hover:hover) and (pointer:fine) {
.motion-active .bouton--signal { transform:translate3d(var(--aimant-x,0px),var(--aimant-y,0px),0); transition:transform .4s cubic-bezier(.2,.8,.2,1),background .3s; }
.motion-active .situations-panels { transform:perspective(1400px) rotateY(var(--inclinaison,0deg)); transition:transform .6s; }
}
.motion-paused *, .motion-paused *::before, .motion-paused *::after { animation-play-state:paused!important; transition:none!important; }
.motion-paused .revelation { opacity:1; transform:none; }
.motion-paused .mot { transform:none!important; }
@keyframes defilement-forme { to { transform:translateX(-50%); } }
@keyframes rotation-forme { to { transform:rotate(360deg); } }
@keyframes balayage-forme { from { transform:translateY(0); opacity:.2; } to { transform:translateY(22vw); opacity:.7; } }
@keyframes orbite-forme { from { transform:rotate(-30deg) scale(.98); } to { transform:rotate(5deg) scale(1.08); } }
@media(min-width:1700px) { .titre-ghost {font-size:13.3vw;} }
@media(max-width:1100px) {
.experience .reperes-cycle {grid-template-columns:repeat(2,1fr);gap:1.5rem;}
.experience .reperes-cycle p:nth-child(3) {border-left:0;padding-left:0;}
.experience .cycle-v3,.experience .regard-v3 {gap:2.5rem;}
.experience .cycle-v3 h2 {font-size:4.8vw;}
.situations-scene {grid-template-columns:.85fr 1.15fr;gap:2rem;}
.situation-panel {padding:2.4rem 1.8rem;}
.hero-ghost__bas {margin-top:5rem;}
}
@media(max-width:700px) {
.experience .marque__mot {font-size:.82rem;}
.experience .entete {padding:1.2rem 1.25rem;gap:.6rem;}
.experience .entete__nav {font-size:.62rem;gap:.8rem;}
.hero-ghost {min-height:max(900px,100svh);padding:7rem 1.25rem 2.8rem;}
.hero-ghost__haut .repere {font-size:.52rem;}
.titre-ghost {font-size:18.9vw;line-height:.92;margin:3.5rem 0 auto -.035em;}
.titre-ghost__forme {margin-top:.14em;}
.titre-ghost__point {font-size:.25em;left:104%;}
.champ-orbital {width:124%;right:-24%;top:23%;}
.champ-orbital__repere,.champ-orbital__axe {font-size:.38rem;}
.apparition {width:115%;right:-16%;top:19%;height:55%;}
.hero-ghost__bas {margin-top:16.5rem;}
.hero-manifeste {font:500 clamp(1.15rem,5vw,1.45rem)/1.4 var(--display);letter-spacing:-.055em;}
.hero-ghost__description {font-size:.78rem;}
.hero-ghost__conversion {width:100%;margin-top:1.6rem;}
.experience .bouton--signal {max-width:none;font-size:.8rem;padding:1.1rem 1.3rem;}
.animation-controle {top:auto;right:.8rem;bottom:.8rem;width:2.3rem;height:2.3rem;padding:0;font-size:0;border-radius:50%;}
.animation-controle span {font-size:.85rem;margin:0;}
.interlude {padding:1.3rem 0;}
.interlude .interlude__piste {font-size:.95rem;}
.interlude span {padding:0 1.5rem;}
.experience .reperes-cycle {gap:1.5rem 1rem;padding:2rem 1.25rem;}
.experience .reperes-cycle p {padding:0 0 0 1rem;gap:.7rem;}
.experience .reperes-cycle strong {font-size:1.23rem;}
.experience .reperes-cycle span {font-size:.62rem;}
.experience .situations-intro h2 {font:500 8.7vw/1.18 var(--display);letter-spacing:-.055em;}
.situations-scene {display:block;}
.situations-choix > a {font-size:1.05rem;}
.situation-panel {padding:2rem 1.35rem;}
.situation-panel h3 {font:500 6.6vw/1.2 var(--display);letter-spacing:-.055em;}
.situations-panels {min-height:27rem;}
.experience .regard-v3 {display:block;}
.experience .regard-v3 h2 {font:500 8.8vw/1.16 var(--display);letter-spacing:-.055em;}
.regard-boussole {width:90vw;bottom:1rem;left:20%;}
.regard-boussole span {font-size:70vw;}
.presence-cinema {min-height:1160px;}
.presence-cinema__photo {width:130%;height:72%;top:-6%;right:-25%;}
.presence-cinema__contenu {max-width:none;padding-top:30rem;}
.presence-cinema h2 {font:500 8.2vw/1.2 var(--display);letter-spacing:-.055em;max-width:none;}
.presence-cinema__lettres {font:600 18vw/1 var(--display);bottom:45%;}
.presence-cinema__signature {display:none;}
.experience .cycle-v3 {display:block;}
.experience .cycle-v3 h2 {font:500 9.1vw/1.15 var(--display);letter-spacing:-.055em;}
.experience .cycle-v3 .cycle-v3__prix strong {font-size:2.8rem;}
.experience .cycle-v3__etapes h3 {font-size:.98rem;}
.experience .cycle-v3__etapes li::before {left:-1.2rem;}
.cycle-fantome {font-size:90vw;bottom:15%;}
.experience .questions h2 {font:500 8.5vw/1.18 var(--display);letter-spacing:-.055em;}
.experience .ouverture-liste h2 {font:500 6.5vw/1.25 var(--display);letter-spacing:-.055em;}
.experience .pied::before {font-size:9.2vw;}
.candidature-entree h1 {font-size:clamp(1.8rem,6.6vw,2.8rem);}
}
@media(max-width:359px) {
.hero-ghost {min-height:920px;}
.hero-manifeste {font-size:1.05rem;}
.hero-ghost__bas {margin-top:15rem;}
.experience .entete__nav {gap:.5rem;font-size:.56rem;}
.experience .marque__mot {font-size:.72rem;}
.experience .reperes-cycle strong {font-size:1.05rem;}
.experience .cycle-v3 .cycle-v3__prix strong {font-size:2.4rem;}
}
@media(prefers-reduced-motion:reduce) {
.motion-active .titre-ghost,.motion-active .apparition,.motion-active .champ-orbital,.motion-active .presence-cinema__photo,.motion-active .presence-cinema__lettres,.motion-active .cycle-fantome,.motion-active .situations-panels,.motion-active .bouton--signal {transform:none;}
.motion-active .revelation:not(.est-visible) {opacity:1;transform:none;}
.motion-active h2.revelation:not(.est-visible) .mot {transform:none;}
}

/* Les scènes hors champ ne consomment pas de mouvement en continu. */
.motion-hors-champ *, .motion-hors-champ *::before, .motion-hors-champ *::after { animation-play-state:paused!important; }
@media(min-width:701px) {
.hero-ghost {min-height:max(720px,100svh);padding-top:7rem;padding-bottom:2rem;}
.titre-ghost {font-size:12.6vw;line-height:.84;margin:2rem 0;letter-spacing:-.05em;}
.hero-ghost__bas {margin-top:1rem;}
.hero-manifeste {font-size:clamp(1.2rem,1.75vw,1.9rem);}
.hero-ghost__description {font-size:.78rem;}
.apparition {height:112%;top:-6%;}
}
/* Même famille visuelle jusqu’au formulaire et aux pages de lecture. */
.page-formulaire h1 {font:500 clamp(2rem,3.6vw,4.2rem)/1.14 var(--display);letter-spacing:-.055em;}
.regard-intro h1 {font-family:var(--display);font-weight:500;}
@media(max-width:700px){.page-formulaire h1{font-size:clamp(1.7rem,6.8vw,2.8rem);}}

@media(min-width:701px) and (max-width:1000px){.champ-orbital__repere{display:none;}}

.motion-document-hidden *, .motion-document-hidden *::before, .motion-document-hidden *::after {animation-play-state:paused!important;}

.experience .bouton--signal:hover {background:#bd2517;}
.page-formulaire h1, .page-regard .regard-intro {animation:entree-privee .85s cubic-bezier(.16,1,.3,1) both;}
.page-formulaire .formulaire {animation:entree-privee .95s .12s cubic-bezier(.16,1,.3,1) both;}
.formulaire input,.formulaire textarea,.formulaire select {transition:border-color .25s,background .25s,box-shadow .25s;}
.formulaire input:focus,.formulaire textarea:focus,.formulaire select:focus {background:#101115;box-shadow:0 0 0 3px #ffffff0a;}
@keyframes entree-privee {from {opacity:.3;transform:translateY(20px);} to {opacity:1;transform:none;}}

/* GHOSTFORM : un seul mot, suivi d’un petit x rouge en exposant. */
.titre-ghost.titre-ghost--unmot {font-size:10.3vw;line-height:1.05;letter-spacing:-.055em;white-space:nowrap;margin-left:0;}
.titre-ghost--unmot > span {display:inline-block;}
.titre-ghost--unmot > span:first-child {animation-name:arrivee-ghostform;}
@keyframes arrivee-ghostform {from {clip-path:inset(100% 0 0);transform:translateY(.2em);} to {clip-path:inset(-40% -30% -10% -10%);transform:none;}}
.experience .pied::before {content:none;}
.experience .pied__marque {display:block;font:600 10.3vw/1.1 var(--display);letter-spacing:-.055em;white-space:nowrap;color:#b8bbc1;margin-bottom:3rem;}
@media(max-width:700px){
  .titre-ghost.titre-ghost--unmot {font-size:9.6vw;}
  .experience .pied__marque {font-size:9.6vw;margin-bottom:2rem;}
}

/* Clarté du parcours — même identité, informations pratiques lisibles. */
.gf-cadre-demande { border-left:2px solid #ef5c45; padding:1.2rem 1.5rem; margin:1.5rem 0 2.5rem; background:#131315; color:#e8e5df; max-width:68rem; }
.gf-cadre-demande p { max-width:64ch; font-size:.9rem; line-height:1.7; margin:.5rem 0; }
.gf-cadre-demande .repere { font-size:.68rem; color:#c7c3bc; }
.gf-cadre-demande .lien-simple { color:#f2eee7; font-size:.85rem; margin-top:.6rem; }
.hero-regard .gf-ouverture { font:500 .7rem/1.6 var(--sans); color:#e3e0da; max-width:32rem; margin:1rem 0 0; }
.gf-apercu blockquote { font:500 clamp(1.2rem,2.5vw,2rem)/1.5 var(--display); margin:2rem 0; max-width:38ch; }
.gf-apercu-grille { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:2rem; margin:2rem 0; }
.gf-apercu-grille article { border-top:1px solid #66615c; padding-top:1.5rem; min-width:0; }
.gf-apercu-grille h3 { font-size:clamp(1.1rem,1.6vw,1.5rem); line-height:1.4; }
.gf-apercu-grille p { line-height:1.8; }
@media(max-width:760px) { .gf-apercu-grille { grid-template-columns:1fr; gap:1rem; } .gf-cadre-demande { padding:1rem; } }
.gf-cadre-demande details { margin:.8rem 0; border:0; padding:0; }
.gf-cadre-demande summary { color:#ddd8d0; font-size:.85rem; padding:.35rem 0; cursor:pointer; }
