/* ==========================================================================
   CINÉMA — couche de mise en scène (chargée après site.css)
   A. Jetons et thème      D. Composants en verre     G. Scènes de l'accueil
   B. Scène fixe en boucle E. Moteur de défilement    H. Calculatrices
   C. Structure du thème   F. Effets pilotés           I. Mouvement réduit / mobile
   ========================================================================== */

/* A. JETONS ---------------------------------------------------------------- */
body.cine{
  --text:#f4f0e9;
  --text-2:rgba(244,240,233,.74);
  --text-3:rgba(244,240,233,.52);
  --bg:#090c0b;

  /* Remappage des neutres : les anciennes règles claires deviennent sombres */
  --ink:#f4f0e9;
  --ink-soft:rgba(244,240,233,.82);
  --ink-mute:rgba(244,240,233,.58);
  --bone:#0f1413;
  --bone-2:#121917;
  --bone-3:#1a2321;
  --line:rgba(244,240,233,.12);
  --line-strong:rgba(244,240,233,.24);
  --line-invert:rgba(244,240,233,.14);
  --accent-wash:rgba(201,122,70,.13);
  --forest-wash:rgba(78,138,114,.12);
  --accent:#c36d3c;          /* cuir, un ton plus lumineux sur fond sombre */
  --accent-deep:#9a5129;

  --glass:rgba(18,25,23,.52);
  --glass-strong:rgba(13,18,17,.74);
  --glass-line:rgba(244,240,233,.13);
  --radius-lg:28px;
  --radius-md:20px;
  --radius-sm:14px;
  --grad-text:linear-gradient(96deg,#fbf5ec 0%,#ecc796 42%,#d9864f 78%,#c36d3c 100%);
  --grad-warm:linear-gradient(135deg,#d9864f 0%,#c36d3c 45%,#8e4a25 100%);
  --ease-apple:cubic-bezier(.28,.11,.32,1);

  background:var(--bg);
  color:var(--text);
}

/* B. SCÈNE FIXE EN BOUCLE -------------------------------------------------- */
.stage{position:fixed;inset:0;z-index:0;overflow:hidden;background:#070908;pointer-events:none}
.stage__slide{position:absolute;inset:-4%;opacity:0;transition:opacity 2.2s var(--ease-apple)}
.stage__slide.is-active{opacity:1}
.stage__slide img{width:100%;height:100%;object-fit:cover;transform:scale(1.02);will-change:transform}
.stage__slide.is-active img,.stage__slide.is-leaving img{animation:stageDrift 16s linear forwards}
@keyframes stageDrift{from{transform:scale(1.02) translate3d(0,0,0)}to{transform:scale(1.14) translate3d(-1.2%,-1.6%,0)}}
.stage__veil{position:absolute;inset:0;
  background:
    radial-gradient(120% 80% at 50% 0%,rgba(9,12,11,.15) 0%,rgba(9,12,11,.55) 70%),
    linear-gradient(180deg,rgba(9,12,11,.35),rgba(9,12,11,.55));
  transition:background .8s}
.stage__grain{position:absolute;inset:0;opacity:.07;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
.cine .progress,.cine .header,.cine main,.cine .footer{position:relative;z-index:2}
.cine .progress,.cine .header{position:fixed}
.cine .header{z-index:100}
.cine .progress{z-index:120}

/* C. STRUCTURE DU THÈME ---------------------------------------------------- */
.cine ::selection{background:var(--accent);color:#fff}
.cine h1,.cine h2{font-family:var(--font-body);font-weight:600;letter-spacing:-.038em;line-height:1.02;font-variation-settings:normal}
.cine h3{font-family:var(--font-body);font-weight:600;letter-spacing:-.022em}
.cine h1 em,.cine h2 em,.cine h3 em,.serif{font-family:var(--font-display);font-style:italic;font-weight:400;letter-spacing:-.02em}
.cine h1{font-size:clamp(2.7rem,1.4rem + 5.2vw,6.6rem)}
.cine h2{font-size:clamp(2.2rem,1.3rem + 3.4vw,4.6rem)}
.grad{background:var(--grad-text);-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent}
.cine .eyebrow{color:var(--accent-light);letter-spacing:.2em}
.cine .lead,.cine .prose{color:var(--text-2)}
.cine .prose strong{color:var(--text);font-weight:500}

/* Voiles : chaque section laisse deviner le fond qui défile derrière */
.cine .section{background:linear-gradient(180deg,rgba(9,12,11,.78),rgba(9,12,11,.84));color:var(--text)}
.cine .section--wash{background:linear-gradient(180deg,rgba(13,17,15,.82),rgba(11,14,13,.86))}
.cine .section--sage{background:linear-gradient(180deg,rgba(14,33,27,.8),rgba(9,20,17,.86))}
.cine .section--accent-wash{background:linear-gradient(180deg,rgba(46,25,14,.76),rgba(16,11,9,.86))}
.cine .section--forest{background:linear-gradient(170deg,rgba(22,49,40,.78),rgba(12,28,23,.86))}
.cine .section--dark{background:linear-gradient(180deg,rgba(5,7,7,.84),rgba(5,7,7,.9))}
.cine .section--clear{background:linear-gradient(180deg,rgba(9,12,11,.42),rgba(9,12,11,.58))}
.cine .section--rule{border-top-color:var(--line)}
.cine .section,.cine .page-hero,.cine .bleed{border-top:1px solid rgba(244,240,233,.06)}

/* Couleurs de texte « claires » écrites sur fond clair d'origine */
.cine .skip-link,.cine .hero,.cine .page-hero,.cine .bleed,.cine .territory>a,.cine .tile,
.cine .callbar,.cine .card__badge--sold,.cine .a-msg--me,.cine .a-chip:hover,
.cine .section--forest .portrait__tag,.cine .section--dark .portrait__tag,.cine .btn--forest{color:var(--text)}
.cine .skip-link{background:var(--text);color:var(--bg)}
.cine .hero,.cine .page-hero,.cine .bleed,.cine .territory>a,.cine .tile{background:transparent}

/* En-tête, menu, pied de page */
.cine .header{color:var(--text)}
.cine .header.is-solid{background:rgba(9,12,11,.62);-webkit-backdrop-filter:saturate(170%) blur(22px);backdrop-filter:saturate(170%) blur(22px);box-shadow:0 1px 0 rgba(244,240,233,.08)}
.cine .header .btn--ghost{--btn-fg:var(--text);--btn-bd:rgba(244,240,233,.28)}
.cine .header__cta,.cine .header.is-over-dark .header__cta{--btn-bg:var(--accent);--btn-fg:#fff;--btn-bd:var(--accent)}
.cine .menu{background:rgba(7,9,8,.96);-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px);color:var(--text)}
.cine .footer{background:linear-gradient(180deg,rgba(12,28,23,.94),rgba(8,17,14,.98))}
.cine .callbar{background:rgba(9,12,11,.9);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}

/* D. COMPOSANTS EN VERRE --------------------------------------------------- */
.glass{background:var(--glass);border:1px solid var(--glass-line);border-radius:var(--radius-lg);
  -webkit-backdrop-filter:blur(22px) saturate(150%);backdrop-filter:blur(22px) saturate(150%)}
.glass--strong{background:var(--glass-strong)}

/* Boutons façon lancement produit : pilules, casse normale */
.cine .btn{border-radius:999px;text-transform:none;letter-spacing:-.005em;font-size:.98rem;font-weight:500;padding:.95rem 1.6rem;min-height:50px}
.cine .btn--sm{font-size:.86rem;padding:.6rem 1.1rem;min-height:40px}
.cine .btn:hover,.cine .btn:focus-visible{color:#fff}
.cine .btn--light{--btn-bg:var(--text);--btn-fg:var(--bg);--btn-bd:var(--text)}
.cine .btn--outline-light,.cine .btn--ghost{--btn-bg:rgba(244,240,233,.06);--btn-fg:var(--text);--btn-bd:rgba(244,240,233,.26)}
.cine .btn--accent{--btn-bg:var(--accent);--btn-fg:#fff;--btn-bd:var(--accent)}
.cine .btn--forest{--btn-bg:var(--forest-light);--btn-fg:#fff;--btn-bd:var(--forest-light)}
.cine .link-under{text-transform:none;letter-spacing:0;font-size:1rem;color:var(--accent-light)}
.cine .link-under:hover{color:var(--text)}

.cine .figure{border-radius:var(--radius-lg);background:rgba(255,255,255,.04)}
.cine .figure-stack .figure--float{border-color:rgba(9,12,11,.9);border-radius:var(--radius-md)}
.cine .figure__cap{color:var(--text-3)}

.cine .card,.cine .empty-state,.cine .listing__aside,.cine .stat-row div,.cine .testimonial{
  background:var(--glass);-webkit-backdrop-filter:blur(20px) saturate(150%);backdrop-filter:blur(20px) saturate(150%);border-color:var(--glass-line)}
.cine .card{border-radius:var(--radius-lg);overflow:hidden}
.cine .card:hover{box-shadow:0 30px 80px -40px rgba(0,0,0,.9)}
.cine .card__badge{border-radius:999px}
.cine .empty-state{border-radius:var(--radius-lg)}
.cine .listing__aside{border-radius:var(--radius-md)}
.cine .stat-row{background:transparent;border:0;gap:1rem}
.cine .stat-row div{border-radius:var(--radius-md);border:1px solid var(--glass-line);border-top-width:2px}

.cine .pillars .num{background:rgba(217,165,102,.14);color:var(--accent-light)}
.cine .steps li span{color:var(--accent-light)}
.cine .territory{background:transparent;border:0;gap:.9rem}
.cine .territory>a{border-radius:var(--radius-lg);isolation:isolate}
.cine .tile{border-radius:var(--radius-lg);overflow:hidden}
.cine .social-row a{border-radius:999px;border-color:var(--line-strong)}
.cine .social-row a:hover{background:var(--text);color:var(--bg);border-color:var(--text)}

.cine .field input,.cine .field select,.cine .field textarea{
  background:rgba(244,240,233,.05);border-color:var(--line-strong);border-radius:var(--radius-sm);color:var(--text)}
.cine .field input:focus,.cine .field select:focus,.cine .field textarea:focus{background:rgba(244,240,233,.08);border-color:var(--accent-light)}
.cine .field select option{background:#111816;color:var(--text)}
.cine .field input::placeholder,.cine .field textarea::placeholder{color:var(--text-3)}
.cine .form__consent{color:var(--text-2)}
.cine .form__consent a{text-decoration:underline;text-underline-offset:3px}

/* Héros des pages intérieures : l'image vient désormais de la scène fixe */
.cine .page-hero>img{display:none}
.cine .page-hero{min-height:clamp(62vh,74vh,820px)}
.cine .page-hero__scrim{background:linear-gradient(180deg,rgba(9,12,11,.2) 0%,rgba(9,12,11,.18) 45%,rgba(9,12,11,.82) 100%)}
.cine .page-hero h1{max-width:15ch}
.cine .page-hero .lead{color:var(--text-2);max-width:40rem}
.cine .page-hero__inner{transform:translate3d(0,calc(var(--hero-p,0) * -60px),0) scale(calc(1 - var(--hero-p,0) * .06));
  opacity:calc(1 - var(--hero-p,0) * 1.1);transform-origin:0 100%}
.cine .bleed::after{background:linear-gradient(90deg,rgba(9,12,11,.84) 0%,rgba(9,12,11,.5) 50%,rgba(9,12,11,.15) 100%)}

/* Portrait (pages intérieures) : halo chaud + fondu du bas */
.cine .portrait__field{background:radial-gradient(60% 55% at 50% 42%,rgba(217,134,79,.42) 0%,rgba(195,109,60,.16) 45%,transparent 72%)}
.cine .portrait__ring{border-color:rgba(236,199,150,.35)}
.cine .portrait__ring::after{border-color:rgba(236,199,150,.18)}
.cine .portrait img,.cine .scene-portrait img{
  -webkit-mask-image:linear-gradient(180deg,#000 72%,transparent 100%);mask-image:linear-gradient(180deg,#000 72%,transparent 100%)}
.cine .portrait__tag{border-radius:var(--radius-sm);background:var(--glass-strong);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}
.cine .footer__portrait img{background:radial-gradient(circle at 50% 35%,#d9864f,#5a2f18)}

/* Assistant en verre sombre */
.cine .assist{background:rgba(12,16,15,.9);-webkit-backdrop-filter:blur(26px) saturate(150%);backdrop-filter:blur(26px) saturate(150%);border-color:var(--glass-line);border-radius:22px}
.cine .assist__foot{background:rgba(255,255,255,.03);border-top-color:var(--line)}
.cine .a-msg--bot,.cine .a-typing,.cine .a-recap{background:rgba(244,240,233,.07);border-color:var(--line)}
.cine .a-typing i{background:var(--text-2)}
.cine .a-msg--note{background:rgba(217,134,79,.12);border-color:rgba(217,134,79,.35);color:#f2c9a0}
.cine .a-chip{background:rgba(244,240,233,.06);border-color:var(--line-strong);color:var(--text)}
.cine .a-chip:hover{background:var(--forest-light);border-color:var(--forest-light)}
.cine .assist__input input{background:rgba(244,240,233,.06);border-color:var(--line-strong);color:var(--text)}
.cine .assist__legal{color:var(--text-3)}
.cine .consent{border-radius:var(--radius-md);background:rgba(12,16,15,.92);-webkit-backdrop-filter:blur(22px);backdrop-filter:blur(22px)}

/* E. MOTEUR DE DÉFILEMENT -------------------------------------------------- */
/* Une scène mesure --len × hauteur d'écran ; son contenu reste épinglé pendant
   que --p (0 → 1) avance. Les enfants [data-range="a b"] reçoivent --r. */
.scene{position:relative;height:calc(var(--len,200) * 1vh)}
.scene__pin{position:sticky;top:0;height:100vh;overflow:hidden;display:flex;align-items:center}
@supports (height:100svh){
  .scene{height:calc(var(--len,200) * 1svh)}
  .scene__pin{height:100svh}
}
[data-range]{--r:0}

/* F. EFFETS PILOTÉS -------------------------------------------------------- */
.fx-fade{opacity:var(--r)}
.fx-rise{opacity:var(--r);transform:translate3d(0,calc((1 - var(--r)) * 64px),0)}
.fx-out{opacity:calc(1 - var(--r));transform:translate3d(0,calc(var(--r) * -48px),0) scale(calc(1 - var(--r) * .1))}
.fx-left{opacity:var(--r);transform:translate3d(calc((1 - var(--r)) * -34vw),0,0)}
.fx-right{opacity:var(--r);transform:translate3d(calc((1 - var(--r)) * 34vw),0,0)}
.fx-zoom{opacity:calc(.2 + var(--r) * .8);transform:scale(calc(.86 + var(--r) * .14))}
.fx-rise,.fx-out,.fx-left,.fx-right,.fx-zoom{will-change:transform,opacity}

/* Mots qui s'allument au fil du défilement */
.words .w{color:rgba(244,240,233,.16);transition:color .4s var(--ease-apple)}
.words .w.on{color:var(--text)}
.words .w.hl.on{color:#ecc796}

/* Apparition d'entrée (au chargement) */
@keyframes cineIn{from{opacity:0;transform:translate3d(0,40px,0);filter:blur(12px)}to{opacity:1;transform:none;filter:blur(0)}}
.cine-in{animation:cineIn 1.3s var(--ease-apple) both;animation-delay:var(--d,0ms)}

/* G. SCÈNES DE L'ACCUEIL --------------------------------------------------- */
.scene-kicker{font-size:var(--fs-xs);letter-spacing:.24em;text-transform:uppercase;color:var(--accent-light);margin:0 0 1.4rem}
.display-xl{font-size:clamp(3rem,1.2rem + 7.4vw,9rem);line-height:.95;letter-spacing:-.05em;font-weight:600}
.display-l{font-size:clamp(2.4rem,1.1rem + 4.8vw,6.2rem);line-height:.98;letter-spacing:-.045em;font-weight:600}

/* 1. Ouverture */
.s-open .scene__pin{align-items:stretch}
.s-open__veil{position:absolute;inset:0;background:radial-gradient(90% 70% at 50% 100%,rgba(9,12,11,0) 0%,rgba(9,12,11,.45) 100%),
  linear-gradient(180deg,rgba(9,12,11,.4) 0%,rgba(9,12,11,0) 30%,rgba(9,12,11,.55) 100%)}
.s-open__title{position:absolute;left:0;right:0;top:calc(var(--header-h) + 5vh);z-index:3;text-align:center;padding-inline:var(--gutter)}
.s-open__title h1{margin-inline:auto;max-width:14ch;text-wrap:balance;font-size:clamp(2.8rem,1.1rem + 6.2vw,7.6rem);line-height:.96;letter-spacing:-.05em}
.s-open__title p{margin:1.4rem auto 0;max-width:34rem;font-size:var(--fs-lead);color:var(--text-2)}
.s-open__glow{position:absolute;left:50%;bottom:-18vh;z-index:1;width:min(92vw,980px);aspect-ratio:1/1;transform:translateX(-50%);
  background:radial-gradient(closest-side,rgba(217,134,79,.5),rgba(195,109,60,.18) 50%,transparent 72%);
  opacity:calc(.35 + var(--r,0) * .65);filter:blur(10px)}
.s-open__portrait{position:absolute;left:50%;bottom:0;z-index:2;height:min(86vh,980px);width:auto;
  transform:translate3d(-50%,calc((1 - var(--r)) * 22vh),0) scale(calc(.9 + var(--r) * .1));transform-origin:50% 100%;
  opacity:calc(.28 + var(--r) * .72);will-change:transform,opacity}
.s-open__portrait img{height:100%;width:auto;max-width:none;
  -webkit-mask-image:linear-gradient(180deg,#000 70%,transparent 99%);mask-image:linear-gradient(180deg,#000 70%,transparent 99%);
  filter:drop-shadow(0 40px 60px rgba(0,0,0,.45))}
.s-open__side{position:absolute;z-index:3;bottom:clamp(2.5rem,9vh,6rem);max-width:min(30vw,24rem)}
.s-open__side--l{left:max(var(--gutter),4vw)}
.s-open__side--r{right:max(var(--gutter),4vw);text-align:right}
.s-open__name{font-size:clamp(2rem,1rem + 2.6vw,3.6rem);line-height:1;letter-spacing:-.04em;font-weight:600;margin:0}
.s-open__role{margin:.8rem 0 0;color:var(--text-2);font-size:.98rem;line-height:1.45}
.s-open__side--r p{margin:0 0 1.2rem;color:var(--text-2);font-size:1.02rem;line-height:1.5}
.s-open__side--r .btn-row{justify-content:flex-end;margin-top:0}
.s-open__hint{position:absolute;left:50%;bottom:1.4rem;z-index:3;transform:translateX(-50%);
  display:flex;flex-direction:column;align-items:center;gap:.6rem;font-size:.62rem;letter-spacing:.24em;text-transform:uppercase;color:var(--text-3)}
.s-open__hint span{width:1px;height:38px;background:linear-gradient(180deg,transparent,var(--accent-light));animation:hint 2.2s var(--ease-apple) infinite}
@keyframes hint{0%{transform:scaleY(0);transform-origin:0 0}45%{transform:scaleY(1);transform-origin:0 0}55%{transform:scaleY(1);transform-origin:0 100%}100%{transform:scaleY(0);transform-origin:0 100%}}

/* 2. Manifeste */
.s-manifesto .scene__pin{background:linear-gradient(180deg,rgba(9,12,11,.72),rgba(9,12,11,.86))}
.s-manifesto__inner{width:100%;max-width:64rem;margin-inline:auto;padding-inline:var(--gutter)}
.s-manifesto__head{display:flex;flex-wrap:wrap;gap:0 .35em;margin-bottom:clamp(1.8rem,4vh,3rem)}
.s-manifesto__text{font-size:clamp(1.5rem,.9rem + 2.3vw,3.1rem);line-height:1.22;letter-spacing:-.03em;font-weight:500;margin:0}

/* 3. Piste horizontale des piliers */
.s-track .scene__pin{flex-direction:column;align-items:stretch;justify-content:center;gap:clamp(1.5rem,4vh,3rem)}
.s-track__head{width:100%;max-width:var(--maxw);margin-inline:auto;padding-inline:var(--gutter);display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:1rem 3rem}
.s-track__head p{max-width:26rem;color:var(--text-2);margin:0}
.track{display:flex;gap:clamp(1rem,2vw,1.6rem);padding-inline:max(var(--gutter),calc((100vw - var(--maxw)) / 2 + var(--gutter)));
  transform:translate3d(var(--tx,0px),0,0);will-change:transform}
.pillar-card{flex:none;width:clamp(290px,31vw,440px);min-height:min(58vh,520px);display:flex;flex-direction:column;justify-content:space-between;
  padding:clamp(1.6rem,2.6vw,2.4rem);position:relative;overflow:hidden}
.pillar-card::before{content:"";position:absolute;inset:auto -30% -40% auto;width:80%;aspect-ratio:1/1;border-radius:50%;
  background:radial-gradient(closest-side,rgba(217,134,79,.28),transparent 70%);transition:transform .8s var(--ease-apple)}
.pillar-card:hover::before{transform:scale(1.25)}
.pillar-card__num{font-size:clamp(4rem,7vw,6.8rem);line-height:.9;font-weight:600;letter-spacing:-.06em}
.pillar-card h3{font-size:clamp(1.6rem,2.2vw,2.2rem);margin:0 0 .7rem}
.pillar-card p{margin:0;color:var(--text-2);font-size:1.02rem;line-height:1.55}
.track__progress{width:100%;max-width:var(--maxw);margin-inline:auto;padding-inline:var(--gutter)}
.track__progress span{display:block;height:2px;background:var(--line);position:relative;overflow:hidden;border-radius:2px}
.track__progress span::after{content:"";position:absolute;inset:0;background:var(--grad-warm);transform:scaleX(var(--p,0));transform-origin:0 50%}

/* 4. Portrait / À propos */
.s-about .scene__pin{background:radial-gradient(70% 90% at 25% 60%,rgba(46,25,14,.55),rgba(9,12,11,.86) 70%)}
.s-about__grid{width:100%;max-width:var(--maxw);margin-inline:auto;padding-inline:var(--gutter);display:grid;grid-template-columns:1fr 1fr;align-items:end;gap:clamp(1.5rem,5vw,5rem);height:100%}
.scene-portrait{position:relative;align-self:end;height:min(88vh,940px);display:flex;justify-content:center}
.scene-portrait img{height:100%;width:auto;max-width:none;position:relative;z-index:2;filter:drop-shadow(0 40px 70px rgba(0,0,0,.5))}
.scene-portrait::before{content:"";position:absolute;left:50%;bottom:6%;width:115%;aspect-ratio:1/1;transform:translateX(-50%);z-index:1;
  background:radial-gradient(closest-side,rgba(217,134,79,.5),rgba(195,109,60,.16) 55%,transparent 72%)}
.s-about__copy{align-self:center;padding-bottom:4vh}
.s-about__words{margin:0 0 2rem;display:grid;gap:.1rem}
.s-about__words span{display:block;font-size:clamp(2.4rem,1rem + 4.4vw,5.6rem);line-height:1;letter-spacing:-.05em;font-weight:600}
.s-about__copy p{color:var(--text-2);font-size:1.08rem;line-height:1.6;max-width:32rem}

/* 5. Masque qui s'ouvre (Le Courtier au Galop) */
.s-mask .scene__pin{align-items:flex-end}
.mask{position:absolute;inset:0;overflow:hidden;
  clip-path:inset(calc((1 - var(--r)) * 20vh) calc((1 - var(--r)) * 28vw) calc((1 - var(--r)) * 20vh) calc((1 - var(--r)) * 28vw) round calc((1 - var(--r)) * 40px));
  will-change:clip-path}
.mask img{width:100%;height:100%;object-fit:cover;transform:scale(calc(1.28 - var(--r) * .28));will-change:transform}
.mask::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(9,12,11,.88) 0%,rgba(9,12,11,.45) 55%,rgba(9,12,11,.1) 100%);opacity:var(--r)}
.s-mask__copy{position:relative;z-index:2;width:100%;max-width:var(--maxw);margin-inline:auto;padding:0 var(--gutter) clamp(3rem,10vh,7rem)}
.s-mask__copy h2{max-width:13ch}
.s-mask__copy .prose{margin-top:1.6rem;max-width:34rem}

/* 6. Grille « bento » (Vendre) */
.bento{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin-top:clamp(2.5rem,5vw,4rem)}
.bento__tile{padding:1.5rem;display:flex;flex-direction:column;justify-content:space-between;gap:1.6rem;min-height:170px;position:relative;overflow:hidden;
  transition:transform .7s var(--ease-apple),border-color .5s}
.bento__tile:hover{transform:translateY(-4px);border-color:rgba(236,199,150,.34)}
.bento__tile b{font-size:clamp(2rem,3vw,2.6rem);line-height:1;font-weight:600;letter-spacing:-.05em}
.bento__tile span{font-size:1.02rem;line-height:1.35;color:var(--text)}
.bento__img{grid-column:span 2;grid-row:span 2;padding:0;min-height:360px}
.bento__img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1.4s var(--ease-apple)}
.bento__img:hover img{transform:scale(1.05)}
.bento__img::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 40%,rgba(9,12,11,.85))}
.bento__img figcaption{position:absolute;left:1.6rem;right:1.6rem;bottom:1.5rem;z-index:2;font-size:1.25rem;line-height:1.35;letter-spacing:-.015em}
.bento__cta{grid-column:span 2;background:var(--grad-warm)!important;border-color:transparent!important;justify-content:center;align-items:flex-start}
.bento__cta span{font-size:1.4rem;font-weight:600;letter-spacing:-.03em;color:#fff}

/* 7. Étapes épinglées (Acheter) */
.s-steps .scene__pin{background:linear-gradient(165deg,rgba(22,49,40,.84),rgba(9,18,15,.9))}
.s-steps__grid{width:100%;max-width:var(--maxw);margin-inline:auto;padding-inline:var(--gutter);display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,6vw,6rem);align-items:center}
.s-steps__grid .prose{margin-top:1.4rem}
.rail{position:relative;list-style:none;margin:0;padding:0 0 0 2.2rem}
.rail::before{content:"";position:absolute;left:.45rem;top:.6rem;bottom:.6rem;width:2px;background:var(--line);border-radius:2px}
.rail::after{content:"";position:absolute;left:.45rem;top:.6rem;bottom:.6rem;width:2px;background:var(--grad-warm);border-radius:2px;
  transform:scaleY(var(--p,0));transform-origin:50% 0}
.rail li{position:relative;padding:.72rem 0;font-size:clamp(1.05rem,.9rem + .6vw,1.5rem);letter-spacing:-.02em;color:var(--text-3);transition:color .5s var(--ease-apple),transform .5s var(--ease-apple)}
.rail li::before{content:"";position:absolute;left:-2.2rem;top:50%;width:.95rem;height:.95rem;margin-top:-.48rem;border-radius:50%;
  background:#0d1512;border:2px solid var(--line-strong);transition:background .4s,border-color .4s,box-shadow .4s}
.rail li.is-done{color:var(--text-2)}
.rail li.is-done::before{background:var(--accent);border-color:var(--accent)}
.rail li.is-current{color:var(--text);transform:translateX(6px)}
.rail li.is-current::before{background:#ecc796;border-color:#ecc796;box-shadow:0 0 0 6px rgba(236,199,150,.18)}

/* 8. Chiffres */
.numbers{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem}
.number{padding:clamp(1.6rem,3vw,2.4rem)}
.number b{display:block;font-size:clamp(4rem,8vw,7.6rem);line-height:.85;font-weight:600;letter-spacing:-.07em}
.number span{display:block;margin-top:1rem;color:var(--text-2);font-size:1rem;line-height:1.45}

/* 9. Chapitres du territoire */
.s-chapters .scene__pin{background:#070908}
.chapter{position:absolute;inset:0;opacity:0;visibility:hidden;transition:opacity 1s var(--ease-apple),visibility 0s linear 1s}
.chapter.is-active{opacity:1;visibility:visible;transition:opacity 1s var(--ease-apple),visibility 0s}
.chapter>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transform:scale(1.12);transition:transform 7s linear}
.chapter.is-active>img{transform:scale(1)}
.chapter::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(7,9,8,.35) 0%,rgba(7,9,8,.05) 40%,rgba(7,9,8,.88) 100%)}
.chapter__copy{position:absolute;left:0;right:0;bottom:0;z-index:2;max-width:var(--maxw);margin-inline:auto;padding:0 var(--gutter) clamp(3rem,10vh,6.5rem)}
.chapter__index{font-size:var(--fs-xs);letter-spacing:.24em;color:var(--accent-light);margin:0 0 1rem}
.chapter__copy h3{font-size:clamp(3rem,1rem + 7vw,8.4rem);line-height:.92;letter-spacing:-.055em;margin:0;
  transform:translate3d(0,30px,0);opacity:0;transition:transform 1.1s var(--ease-apple) .15s,opacity 1.1s var(--ease-apple) .15s}
.chapter__copy p{max-width:34rem;color:var(--text-2);font-size:1.1rem;line-height:1.55;margin:1.2rem 0 1.6rem;
  transform:translate3d(0,24px,0);opacity:0;transition:transform 1.1s var(--ease-apple) .3s,opacity 1.1s var(--ease-apple) .3s}
.chapter__copy .btn{transform:translate3d(0,20px,0);opacity:0;transition:transform 1.1s var(--ease-apple) .42s,opacity 1.1s var(--ease-apple) .42s,color .4s}
.chapter.is-active .chapter__copy h3,.chapter.is-active .chapter__copy p,.chapter.is-active .chapter__copy .btn{transform:none;opacity:1}
.chapters__nav{position:absolute;right:max(var(--gutter),3vw);top:50%;z-index:3;transform:translateY(-50%);display:grid;gap:.9rem;list-style:none;margin:0;padding:0}
.chapters__nav li{display:flex;align-items:center;justify-content:flex-end;gap:.8rem;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--text-3);transition:color .5s}
.chapters__nav li::after{content:"";width:22px;height:2px;border-radius:2px;background:currentColor;transition:width .5s var(--ease-apple)}
.chapters__nav li.is-active{color:var(--text)}
.chapters__nav li.is-active::after{width:44px;background:#ecc796}

/* 10. Aperçu calculatrice + carrousel Découvrir */
.mini-calc{display:grid;grid-template-columns:1.1fr .9fr;gap:1rem;margin-top:clamp(2rem,4vw,3.5rem)}
.mini-calc__form,.mini-calc__out{padding:clamp(1.6rem,3vw,2.4rem)}
.mini-calc__out{display:flex;flex-direction:column;justify-content:space-between;gap:1.5rem;background:linear-gradient(160deg,rgba(195,109,60,.28),rgba(18,25,23,.6))!important}
.mini-calc__out b{display:block;font-size:clamp(3.4rem,7vw,6rem);line-height:.9;font-weight:600;letter-spacing:-.06em}
.mini-calc__out small{display:block;color:var(--text-2);font-size:.95rem;margin-top:.8rem;line-height:1.5}

.reel{position:relative;overflow:hidden;margin-top:clamp(2rem,4vw,3.5rem);-webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent)}
.reel__track{display:flex;gap:1rem;width:max-content;animation:marquee 60s linear infinite}
.reel:hover .reel__track{animation-play-state:paused}
.reel .tile{width:clamp(240px,24vw,330px);flex:none}

/* 11. Finale contact */
.finale-title{font-size:clamp(3.2rem,1rem + 8vw,10rem);line-height:.9;letter-spacing:-.06em;font-weight:600;margin:0 0 clamp(2rem,5vw,4rem)}
.cine #contact .form{padding:clamp(1.5rem,3vw,2.4rem)}

/* H. CALCULATRICES --------------------------------------------------------- */
.calc-tabs{display:inline-flex;flex-wrap:wrap;gap:.3rem;padding:.35rem;border-radius:999px;margin-bottom:clamp(1.5rem,3vw,2.5rem)}
.calc-tabs button{padding:.7rem 1.2rem;border-radius:999px;font-size:.95rem;color:var(--text-2);transition:background .4s var(--ease-apple),color .3s}
.calc-tabs button:hover{color:var(--text)}
.calc-tabs button[aria-selected="true"]{background:var(--text);color:var(--bg)}
.calc{display:grid;grid-template-columns:1.05fr .95fr;gap:1rem;align-items:start}
.calc__form,.calc__out{padding:clamp(1.5rem,3vw,2.4rem)}
.calc__out{position:sticky;top:calc(var(--header-h) + 1.5rem)}
.calc__form h2,.calc__out h2{font-size:clamp(1.5rem,1.1rem + 1.2vw,2.1rem);margin:0 0 .5rem}
.calc__intro{color:var(--text-2);margin:0 0 1.8rem;font-size:.98rem;line-height:1.55}
.calc-field{display:grid;gap:.55rem;margin-bottom:1.35rem}
.calc-field__top{display:flex;justify-content:space-between;align-items:baseline;gap:1rem}
.calc-field label{font-size:.92rem;color:var(--text-2)}
.calc-field__val{display:flex;align-items:center;gap:.4rem}
.calc-field__val input{width:9.5rem;text-align:right;padding:.55rem .75rem;font:inherit;font-size:1rem;font-variant-numeric:tabular-nums;
  color:var(--text);background:rgba(244,240,233,.06);border:1px solid var(--line-strong);border-radius:10px}
.calc-field__val input:focus{outline:none;border-color:var(--accent-light)}
.calc-field__val em{font-style:normal;color:var(--text-3);font-size:.9rem;min-width:1.2rem}
.calc-field select{width:100%;padding:.75rem .9rem;font:inherit;color:var(--text);background:rgba(244,240,233,.06);border:1px solid var(--line-strong);border-radius:10px}
.calc-field select option{background:#111816}
.calc-field .hint{font-size:.8rem;color:var(--text-3);line-height:1.45}
.calc-field .hint.warn{color:#f2b184}
input[type=range].slider{-webkit-appearance:none;appearance:none;width:100%;height:28px;background:transparent;cursor:pointer;--fill:50%}
input[type=range].slider::-webkit-slider-runnable-track{height:4px;border-radius:4px;background:linear-gradient(90deg,var(--accent) var(--fill),rgba(244,240,233,.14) var(--fill))}
input[type=range].slider::-moz-range-track{height:4px;border-radius:4px;background:rgba(244,240,233,.14)}
input[type=range].slider::-moz-range-progress{height:4px;border-radius:4px;background:var(--accent)}
input[type=range].slider::-webkit-slider-thumb{-webkit-appearance:none;width:22px;height:22px;margin-top:-9px;border-radius:50%;background:#fff;box-shadow:0 2px 10px rgba(0,0,0,.45);transition:transform .2s}
input[type=range].slider::-moz-range-thumb{width:22px;height:22px;border:0;border-radius:50%;background:#fff;box-shadow:0 2px 10px rgba(0,0,0,.45)}
input[type=range].slider:active::-webkit-slider-thumb{transform:scale(1.15)}
.calc-check{display:flex;gap:.7rem;align-items:flex-start;font-size:.92rem;color:var(--text-2);margin:-.3rem 0 1.3rem}
.calc-check input{width:18px;height:18px;margin-top:.15rem;accent-color:var(--accent)}
.calc-seg{display:flex;flex-wrap:wrap;gap:.35rem}
.calc-seg button{padding:.5rem .85rem;border-radius:999px;border:1px solid var(--line-strong);font-size:.85rem;color:var(--text-2)}
.calc-seg button[aria-pressed="true"]{background:var(--accent);border-color:var(--accent);color:#fff}

.calc-big{margin:.4rem 0 .3rem}
.calc-big b{display:block;font-size:clamp(3rem,6vw,5.2rem);line-height:.92;font-weight:600;letter-spacing:-.06em;font-variant-numeric:tabular-nums}
.calc-big small{color:var(--text-2);font-size:.95rem}
.calc-lines{list-style:none;margin:1.6rem 0 0;padding:0;border-top:1px solid var(--line)}
.calc-lines li{display:flex;justify-content:space-between;gap:1rem;padding:.8rem 0;border-bottom:1px solid var(--line);font-size:.95rem}
.calc-lines li span{color:var(--text-2)}
.calc-lines li b{font-weight:500;font-variant-numeric:tabular-nums;text-align:right}
.calc-lines li.total b{font-size:1.1rem;color:#ecc796}
.calc-bar{display:flex;height:12px;border-radius:12px;overflow:hidden;margin:1.4rem 0 .6rem;background:rgba(244,240,233,.08)}
.calc-bar i{display:block;height:100%;transition:width .6s var(--ease-apple)}
.calc-bar i:nth-child(1){background:var(--accent-light)}
.calc-bar i:nth-child(2){background:var(--accent)}
.calc-bar i:nth-child(3){background:var(--forest-light)}
.calc-legend{display:flex;flex-wrap:wrap;gap:.4rem 1.2rem;font-size:.82rem;color:var(--text-2)}
.calc-legend span::before{content:"";display:inline-block;width:.6rem;height:.6rem;border-radius:50%;margin-right:.45rem;background:var(--c)}
.calc-note{margin-top:1.4rem;font-size:.78rem;line-height:1.55;color:var(--text-3)}
.calc-verdict{margin-top:1.2rem;padding:.9rem 1rem;border-radius:12px;font-size:.92rem;line-height:1.45;background:rgba(78,138,114,.16);border:1px solid rgba(78,138,114,.35)}
.calc-verdict.warn{background:rgba(217,134,79,.13);border-color:rgba(217,134,79,.38)}
.calc details{margin-top:1.4rem}
.calc summary{cursor:pointer;color:var(--accent-light);font-size:.95rem}
.amort{width:100%;border-collapse:collapse;margin-top:.9rem;font-size:.85rem;font-variant-numeric:tabular-nums}
.amort th,.amort td{padding:.5rem .4rem;text-align:right;border-bottom:1px solid var(--line)}
.amort th{color:var(--text-3);font-weight:500}
.amort th:first-child,.amort td:first-child{text-align:left}
.calc-table-wrap{max-height:320px;overflow:auto}
.calc-panel[hidden]{display:none!important}
.calc-sources{margin-top:clamp(2.5rem,5vw,4rem);display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}
.calc-sources .glass{padding:1.4rem 1.5rem;font-size:.9rem;line-height:1.55;color:var(--text-2)}
.calc-sources h3{font-size:1.05rem;margin:0 0 .5rem;color:var(--text)}

/* I. MOUVEMENT RÉDUIT ET PETITS ÉCRANS ------------------------------------ */
html.rm .scene{height:auto!important}
html.rm .scene__pin{position:relative;height:auto;min-height:100vh;padding-block:calc(var(--header-h) + 3rem) 4rem}
html.rm [data-range]{--r:1!important}
html.rm .words .w{color:var(--text)}
html.rm .track{transform:none!important;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:1rem}
html.rm .pillar-card{scroll-snap-align:start}
html.rm .chapter{position:relative;opacity:1;visibility:visible;min-height:80vh}
html.rm .chapter__copy h3,html.rm .chapter__copy p,html.rm .chapter__copy .btn{transform:none;opacity:1}
html.rm .chapters__nav{display:none}
html.rm .stage__slide img{animation:none!important}
html.rm .reel__track{animation:none;overflow-x:auto}
@media (prefers-reduced-motion:reduce){.cine-in{animation:none}}

@media (max-width:1240px){
  .cine .nav,.cine .header__cta{display:none}
  .cine .burger{display:flex}
}
@media (max-width:1080px){
  .bento{grid-template-columns:repeat(2,1fr)}
  .numbers{grid-template-columns:repeat(2,1fr)}
  .calc{grid-template-columns:1fr}
  .calc__out{position:relative;top:0}
  .calc-sources{grid-template-columns:1fr}
  .mini-calc{grid-template-columns:1fr}
}
@media (max-width:860px){
  .s-open__side{max-width:none;left:var(--gutter)!important;right:var(--gutter)!important;text-align:left!important}
  .s-open__side--l{bottom:auto;top:auto;display:none}
  .s-open__side--r{bottom:2.2rem}
  .s-open__side--r p{display:none}
  .s-open__side--r .btn-row{justify-content:flex-start}
  .s-open__portrait{height:70vh}
  .s-open__hint{display:none}
  .s-about__grid{grid-template-columns:1fr;align-items:start;padding-top:calc(var(--header-h) + 2vh)}
  .scene-portrait{position:absolute;right:-12vw;bottom:0;height:62vh;opacity:.5;z-index:0}
  .s-about__copy{position:relative;z-index:2;align-self:start;padding-bottom:0}
  .s-steps__grid{grid-template-columns:1fr;gap:1.6rem;padding-top:var(--header-h)}
  .s-steps__grid .prose,.s-steps__grid .btn-row{display:none}
  .rail li{padding:.45rem 0;font-size:1.05rem}
  .chapters__nav{top:auto;bottom:auto;right:var(--gutter);top:calc(var(--header-h) + 1.5rem);transform:none}
  .chapters__nav li{font-size:0;gap:0}
  .mask{clip-path:inset(calc((1 - var(--r)) * 16vh) calc((1 - var(--r)) * 12vw) round calc((1 - var(--r)) * 24px))}
}
@media (max-width:640px){
  .bento{grid-template-columns:1fr}
  .bento__img,.bento__cta{grid-column:auto}
  .numbers{grid-template-columns:1fr}
  .pillar-card{width:80vw;min-height:52vh}
  .cine .page-hero{min-height:64vh}
}

/* Compléments de l'accueil */
.s-open__links{display:flex;flex-wrap:wrap;justify-content:center;gap:.4rem 2rem;margin-top:1.6rem!important}
.s-open__links a{color:#ecc796;font-size:1.08rem;letter-spacing:-.01em;transition:color .3s}
.s-open__links a:hover{color:#fff;text-decoration:underline;text-underline-offset:4px}
.s-manifesto__head>span{display:inline-block}
.s-chapters__title{position:absolute;left:0;right:0;top:calc(var(--header-h) + 3vh);z-index:3;max-width:var(--maxw);margin-inline:auto;padding-inline:var(--gutter)}
.s-chapters__title h2{font-size:clamp(1.3rem,.9rem + 1.3vw,2.1rem);max-width:26ch;letter-spacing:-.025em;line-height:1.15}
.tile__body .tile__title{font-size:1.25rem;font-weight:600;letter-spacing:-.02em;margin:0;line-height:1.2}
.cine .tile__body h3{font-size:1.25rem}
.cine .section-head h2{max-width:18ch}
.cine .finale-title{max-width:12ch}
@media (max-width:860px){.s-chapters__title h2{max-width:20ch}}

/* Correctifs d'en-tête et d'ouverture */
.cine .nav{gap:0}
.cine .nav a{white-space:nowrap;padding:.5rem .62rem;font-size:.82rem;letter-spacing:.01em}
.cine .nav a::after{left:.62rem;right:.62rem}
.cine .header__cta{white-space:nowrap}
.cine .brand__name,.cine .brand__tag{white-space:nowrap}
@media (max-width:1380px){.cine .header__cta{display:none}}
.s-open__title .scene-kicker{font-size:var(--fs-xs);max-width:none;margin:0 0 1.2rem;color:var(--accent-light)}
.s-open__title h1{max-width:16ch;font-size:clamp(2.6rem,1rem + 5.2vw,6.8rem)}

/* Correctifs après revue visuelle */
.bento__img{margin:0}
.s-manifesto .scene__pin{padding-top:calc(var(--header-h) * .6)}
.s-manifesto__text{font-size:clamp(1.25rem,.62rem + 1.75vw,2.45rem);line-height:1.28}
.s-manifesto__head{font-size:clamp(2.2rem,1rem + 3.8vw,5rem)}
@media (max-height:760px){.s-manifesto__text{font-size:clamp(1.1rem,.5rem + 1.5vw,2rem)}}
.s-open__side{bottom:clamp(5.5rem,13vh,8.5rem)}
@media (max-width:860px){
  .s-open__side--r{display:none}
  .s-open__side--l{display:block;top:auto;bottom:calc(52px + 5.2rem);left:var(--gutter)}
  .s-open__name{font-size:2.3rem;text-shadow:0 2px 24px rgba(0,0,0,.55)}
  .s-open__role{text-shadow:0 1px 14px rgba(0,0,0,.7)}
}
@media (max-width:640px){
  .s-about__more{display:none}
  .s-about__words span{font-size:clamp(2.2rem,11vw,3.2rem)}
  .assist-launch{padding:.55rem;gap:0}
  .assist-launch__label{display:none}
  .assist-launch__mark{width:40px;height:40px}
}

/* Performance : pas de flou d'arrière-plan sur ce qui bouge à chaque image
   (piste horizontale) — le flou recalculé en continu fait décrocher les GPU mobiles. */
.pillar-card.glass{-webkit-backdrop-filter:none;backdrop-filter:none;
  background:linear-gradient(160deg,rgba(26,34,31,.9),rgba(14,19,17,.92))}
@media (max-width:860px){
  /* Sur téléphone, le verre devient plus opaque et sans flou : lisibilité et fluidité */
  .cine .glass,.cine .card,.cine .empty-state,.cine .stat-row div{-webkit-backdrop-filter:none;backdrop-filter:none;background:rgba(15,20,19,.86)}
}

/* Aucun défilement horizontal parasite — « clip » ne casse pas position:sticky */
.cine main,.cine .footer{overflow-x:clip}
@media (max-width:860px){
  [data-reveal="left"],[data-reveal="right"]{transform:translate3d(0,26px,0)}
}
