@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Oswald:wght@500;600;700&display=swap');

:root {
  --night: #02071d;
  --night-2: #07143d;
  --blue: #0b2b72;
  --cream: #f3ecdf;
  --yellow: #e3ff00;
  --red: #e62418;
  --orange: #f26c3b;
  --muted: rgba(243,236,223,.72);
  --line: rgba(243,236,223,.18);
  --max: 1280px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; background: var(--night); }
body { margin: 0; overflow-x: hidden; color: var(--cream); background: var(--night); font-family: 'DM Sans', Arial, sans-serif; }
body.modal-open { overflow: hidden; }
img, video { display: block; width: 100%; }
a { color: inherit; text-decoration: none; }
button { font: inherit; }
.skip { position: fixed; top: -100px; left: 16px; z-index: 200; padding: 12px 18px; background: var(--yellow); color: var(--night); }
.skip:focus { top: 16px; }

.site-header { position: fixed; z-index: 100; inset: 0 0 auto; display: flex; align-items: center; justify-content: space-between; min-height: 82px; padding: 12px clamp(18px,4vw,58px); background: linear-gradient(180deg,rgba(2,7,29,.94),rgba(2,7,29,.12)); transition: background .25s ease; }
.site-header.scrolled { background: rgba(2,7,29,.97); border-bottom: 1px solid var(--line); }
.site-logo img { width: clamp(112px,12vw,150px); }
.main-nav { display: flex; align-items: center; gap: clamp(14px,1.8vw,30px); font-size: .76rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.main-nav > a { padding: 12px 0 9px; border-bottom: 2px solid transparent; }
.main-nav > a:hover, .main-nav > a[aria-current="page"] { border-color: var(--yellow); }
.menu-button { display: none; width: 48px; height: 48px; border: 1px solid var(--line); border-radius: 50%; background: var(--night); color: var(--cream); }

.button { display: inline-flex; align-items: center; justify-content: center; min-height: 52px; padding: 0 25px; border: 1px solid var(--yellow); border-radius: 999px; background: var(--yellow); color: var(--night); font-weight: 800; letter-spacing: .045em; text-transform: uppercase; transition: transform .2s ease, background .2s ease; }
.button:hover { transform: translateY(-2px); background: #f0ff6d; }
.button.secondary { background: transparent; color: var(--cream); border-color: var(--cream); }
.button.red { background: var(--red); border-color: var(--red); color: white; }
.button.small { min-height: 44px; padding: 0 20px; font-size: .73rem; }

main { overflow: hidden; }
.hero-bus { position: relative; min-height: 100svh; background: #000; overflow: hidden; }
.hero-bus video { position: absolute; inset: 0; height: 100%; object-fit: cover; }
.hero-bus::after { content: ''; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(180deg,rgba(2,7,29,.28),transparent 48%,rgba(2,7,29,.44)); }
.scroll-mark { position: absolute; z-index: 2; left: 50%; bottom: 24px; width: 1px; height: 46px; background: linear-gradient(var(--cream),transparent); animation: pulse 1.8s infinite; }
.video-toggle { position: absolute; z-index: 3; right: 22px; bottom: 20px; padding: 10px 15px; border: 1px solid rgba(255,255,255,.55); border-radius: 999px; background: rgba(2,7,29,.66); color: white; cursor: pointer; }

.section { position: relative; padding: clamp(78px,10vw,150px) clamp(20px,5vw,72px); }
.section-inner { width: min(100%,var(--max)); margin: 0 auto; }
.eyebrow { margin: 0 0 20px; color: var(--yellow); font-size: .75rem; font-weight: 800; letter-spacing: .18em; text-transform: uppercase; }
h1,h2,h3,p { margin-top: 0; }
h1,h2,.display { font-family: 'Oswald', Impact, sans-serif; line-height: .94; letter-spacing: -.028em; text-transform: uppercase; }
h1 { margin-bottom: 30px; font-size: clamp(4rem,10vw,9.7rem); }
h2 { margin-bottom: 30px; font-size: clamp(3rem,7vw,7.2rem); }
h3 { font-size: clamp(1.3rem,2vw,2rem); line-height: 1.05; }
.lead { max-width: 880px; font-size: clamp(1.2rem,2.25vw,2rem); line-height: 1.42; }
.body-copy { max-width: 720px; color: var(--muted); font-size: clamp(1rem,1.3vw,1.18rem); line-height: 1.72; }
.actions { display: flex; flex-wrap: wrap; gap: 13px; margin-top: 34px; }

.manifesto { background: var(--cream); color: var(--night); }
.manifesto .eyebrow { color: #243367; }
.manifesto h1 { max-width: 1180px; }
.manifesto .lead { color: #18203f; }
.event-facts { display: grid; grid-template-columns: 1fr 1.2fr 1.6fr; gap: 1px; margin-top: 58px; border: 1px solid rgba(2,7,29,.2); background: rgba(2,7,29,.2); }
.event-facts > div { padding: 25px; background: var(--cream); }
.event-facts span { display: block; margin-bottom: 8px; color: #59617d; font-size: .72rem; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
.event-facts strong { font-size: clamp(1rem,1.5vw,1.25rem); }

.editorial-split { display: grid; grid-template-columns: .9fr 1.1fr; gap: clamp(36px,7vw,105px); align-items: center; }
.editorial-split.reverse { grid-template-columns: 1.1fr .9fr; }
.editorial-photo { min-height: 620px; height: 74vh; object-fit: cover; }
.editorial-photo.circle { border-radius: 50% 50% 6px 6px; }
.night-panel { background: radial-gradient(circle at 90% 20%,rgba(16,57,144,.45),transparent 35%),var(--night); }
.cream-panel { background: var(--cream); color: var(--night); }
.cream-panel .body-copy { color: #454b61; }

.poster-window { overflow: hidden; border: 1px solid var(--line); background: var(--night-2); }
.poster-window img { aspect-ratio: 2/3; object-fit: cover; transition: transform .45s ease; }
.poster-window:hover img { transform: scale(1.025); }
.poster-caption { display: flex; justify-content: space-between; gap: 20px; padding: 16px 18px; color: var(--muted); font-size: .76rem; letter-spacing: .08em; text-transform: uppercase; }

.character-preview { background: var(--night-2); }
.character-row { display: grid; grid-template-columns: repeat(3,1fr); gap: 16px; margin-top: 48px; }
.character-row a { position: relative; overflow: hidden; min-height: 540px; background: #06143e; }
.character-row img { height: 100%; object-fit: cover; transition: transform .5s ease; }
.character-row a:hover img { transform: scale(1.035); }
.character-row span { position: absolute; inset: auto 18px 18px; color: var(--yellow); font-family: 'Oswald'; font-size: clamp(1.7rem,3vw,3rem); text-transform: uppercase; text-shadow: 0 2px 18px #000; }

.proof { background: #060b25; }
.proof-head { display: flex; align-items: end; justify-content: space-between; gap: 28px; }
.gallery { display: grid; grid-auto-flow: column; grid-auto-columns: min(84vw,920px); gap: 20px; overflow-x: auto; padding: 38px max(20px,calc((100vw - var(--max))/2)) 12px; scroll-snap-type: x mandatory; scrollbar-width: none; }
.gallery::-webkit-scrollbar { display: none; }
.gallery-card { position: relative; margin: 0; aspect-ratio: 16/10; overflow: hidden; scroll-snap-align: center; cursor: zoom-in; }
.gallery-card img { height: 100%; object-fit: cover; transition: transform .45s ease; }
.gallery-card:hover img { transform: scale(1.02); }
.gallery-card figcaption { position: absolute; inset: auto 0 0; padding: 55px 22px 20px; background: linear-gradient(transparent,rgba(2,7,29,.85)); font-size: .78rem; letter-spacing: .1em; text-transform: uppercase; }
.gallery-controls { display: flex; align-items: center; gap: 9px; }
.gallery-controls button { width: 48px; height: 48px; border: 1px solid var(--line); border-radius: 50%; background: transparent; color: var(--cream); cursor: pointer; }
.gallery-count { min-width: 72px; text-align: center; }

.conversion { background: linear-gradient(135deg,#101f5a,#05081f 58%); text-align: center; }
.conversion h2 { max-width: 1080px; margin-left: auto; margin-right: auto; }
.conversion .lead { margin-left: auto; margin-right: auto; color: var(--muted); }
.conversion .actions { justify-content: center; }

.page-hero { min-height: 82svh; display: grid; align-items: end; padding-top: 145px; background: var(--night-2); overflow: hidden; }
.page-hero.media { min-height: 92svh; }
.page-hero video, .page-hero > img { position: absolute; inset: 0; height: 100%; object-fit: cover; }
.page-hero::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg,rgba(2,7,29,.25),rgba(2,7,29,.92)); }
.page-hero .section-inner { position: relative; z-index: 2; }
.page-hero h1 { max-width: 1160px; }
.hero-quiet::after { background: linear-gradient(90deg,rgba(2,7,29,.96) 0 38%,rgba(2,7,29,.18) 70%); }

.three-lines { display: grid; border-top: 1px solid var(--line); margin-top: 55px; }
.three-lines article { display: grid; grid-template-columns: 130px 1fr; gap: 28px; padding: 30px 0; border-bottom: 1px solid var(--line); }
.three-lines time { color: var(--yellow); font-family: 'Oswald'; font-size: 2rem; }
.three-lines strong { display: block; margin-bottom: 7px; font-size: 1.35rem; }
.three-lines p { margin: 0; color: var(--muted); }

.gesture { background: var(--orange); color: #180705; }
.gesture .eyebrow { color: #180705; }
.gesture-grid { display: grid; grid-template-columns: 1.1fr .9fr; gap: 18px; margin-top: 46px; }
.gesture-grid img { height: 100%; min-height: 420px; object-fit: cover; }
.gesture-grid .small-stack { display: grid; gap: 18px; }

.cast-hero { min-height: 68svh; background: linear-gradient(160deg,#0d2b70,#03081e 70%); }
.cast-hero .family-visual { position: absolute; right: 4vw; bottom: -6vw; width: min(43vw,630px); transform: rotate(2deg); filter: drop-shadow(0 26px 50px rgba(0,0,0,.4)); }
.cast-hero::after { background: linear-gradient(90deg,rgba(2,7,29,.94),rgba(2,7,29,.15)); }
.cast-hero h1 { max-width: 760px; }
.cast-intro { max-width: 790px; }
.cast-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 18px; margin-top: 55px; }
.cast-card { position: relative; min-height: 590px; padding: 0; overflow: hidden; border: 1px solid var(--line); background: #07143d; color: white; text-align: left; cursor: pointer; }
.cast-card img { height: 100%; object-fit: cover; transition: transform .45s ease, filter .45s ease; }
.cast-card:hover img { transform: scale(1.025); filter: brightness(.78); }
.cast-card-info { position: absolute; inset: auto 0 0; padding: 80px 22px 22px; background: linear-gradient(transparent,rgba(2,7,29,.96)); }
.cast-card-info strong { display: block; color: var(--yellow); font-family: 'Oswald'; font-size: clamp(1.7rem,2.5vw,2.7rem); text-transform: uppercase; }
.cast-card-info span { display: block; margin-top: 5px; color: var(--cream); font-size: .77rem; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; }

/* Distribution — Les Oiseaux de nuit */
.cast-hero-new { min-height: 94svh; align-items: end; background: linear-gradient(145deg,#0d2f7c 0%,#061844 48%,#02071d 100%); }
.cast-hero-new::after { background: radial-gradient(circle at 82% 28%,rgba(227,255,0,.08),transparent 18%),linear-gradient(180deg,rgba(2,7,29,.04),rgba(2,7,29,.5)); }
.cast-hero-new .section-inner { padding-bottom: clamp(22px,4vw,54px); }
.cast-hero-new h1 { max-width: 1100px; margin-bottom: 38px; color: #fff; font-size: clamp(5.4rem,13vw,13rem); }
.cast-opening { width: min(100%,820px); margin-left: auto; padding: 28px 0 0; border-top: 1px solid rgba(255,255,255,.34); }
.cast-opening p { margin-bottom: 8px; font-size: clamp(1.12rem,1.9vw,1.65rem); line-height: 1.42; }
.cast-opening strong { color: var(--yellow); font-weight: 700; }
.cast-whisper { position: absolute; z-index: 2; top: 21%; right: 8%; color: rgba(255,255,255,.62); font-family: cursive; font-size: clamp(2rem,5vw,4.8rem); font-style: italic; transform: rotate(-9deg); }
.cast-statement { overflow: hidden; background: var(--cream); color: var(--night); }
.cast-statement h2 { max-width: 1050px; margin: 0; font-size: clamp(4.6rem,11vw,11rem); }
.cast-statement-mark { margin: 0 0 10px; color: #164091; font-family: cursive; font-size: clamp(3rem,6vw,6rem); transform: rotate(4deg); }
.cast-panel { background: #071946; }
.cast-grid-new { margin-top: 0; gap: 22px; }
.cast-card-new { min-height: 640px; border-color: rgba(255,255,255,.22); background: #0c2e79; }
.cast-card-new::after { content: ''; position: absolute; inset: 0; border: 1px solid transparent; pointer-events: none; transition: border-color .25s ease; }
.cast-card-new:hover::after { border-color: rgba(255,255,255,.75); }
.cast-card-new img { filter: saturate(.92); }
.cast-card-new:hover img { filter: saturate(.92) brightness(.92); }
.cast-card-new .cast-card-info { padding: 108px 24px 25px; background: linear-gradient(transparent,#09235c 54%,#09235c); }
.cast-card-new .cast-card-info strong { color: #fff; font-size: clamp(1.8rem,2.7vw,3rem); line-height: 1; }
.cast-card-new .cast-card-info b { display: block; margin-top: 10px; color: #fff; font-size: .95rem; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; }
.cast-card-new .cast-card-info span { color: rgba(255,255,255,.76); }
.cast-card-featured { outline: 2px solid var(--yellow); outline-offset: -2px; }
.cast-card-featured::before { content: 'OUVRIR LA FICHE'; position: absolute; z-index: 2; top: 18px; right: 18px; padding: 8px 10px; background: var(--yellow); color: var(--night); font-size: .65rem; font-weight: 900; letter-spacing: .11em; }
.cast-conversion { background: linear-gradient(145deg,#0d2f7c,#02071d 68%); }

.cast-modal-card { grid-template-columns: minmax(300px,.92fr) 1.08fr; width: min(100%,1120px); background: #09235c; color: #fff; }
.cast-modal-visual { position: relative; min-height: 720px; overflow: hidden; background: #0b2b72; }
.cast-modal-portrait { height: 100%; max-height: none !important; object-fit: cover; object-position: center; }
.cast-modal-bird { position: absolute; right: 18px; bottom: 18px; width: 126px; height: 164px !important; border: 2px solid #fff; object-fit: cover; box-shadow: 0 12px 32px rgba(0,0,0,.35); }
.cast-modal-content { padding: clamp(34px,6vw,78px); }
.cast-modal-content .eyebrow { margin-bottom: 14px; color: var(--yellow); }
.cast-modal-content h2 { margin-bottom: 16px; color: #fff; }
.cast-modal-credit { margin-bottom: 35px; padding-bottom: 24px; border-bottom: 1px solid rgba(255,255,255,.24); color: rgba(255,255,255,.76); font-size: .78rem; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
.cast-modal-body { max-width: 570px; margin-bottom: 34px; color: #fff; font-size: clamp(1.25rem,2vw,1.7rem); line-height: 1.5; }
.cast-modal-note { margin: 0; color: var(--yellow); font-size: .78rem; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; }

.modal { position: fixed; z-index: 300; inset: 0; display: none; place-items: center; padding: 22px; background: rgba(1,3,15,.91); }
.modal.open { display: grid; }
.modal-card { position: relative; display: grid; grid-template-columns: minmax(260px,.9fr) 1.1fr; width: min(100%,970px); max-height: 90vh; overflow: auto; background: var(--cream); color: var(--night); }
.modal-card img { height: 100%; max-height: 82vh; object-fit: cover; }
.modal-content { align-self: center; padding: clamp(30px,6vw,72px); }
.modal-content .eyebrow { color: #34447f; }
.modal-content h2 { font-size: clamp(3.2rem,6vw,6rem); }
.modal-close { position: absolute; z-index: 2; top: 14px; right: 14px; width: 46px; height: 46px; border: 0; border-radius: 50%; background: var(--yellow); color: var(--night); font-size: 1.4rem; cursor: pointer; }
.lightbox-image { max-width: min(94vw,1400px); max-height: 88vh; object-fit: contain; }

.project-hero { background-image: linear-gradient(rgba(2,7,29,.18),rgba(2,7,29,.92)),url('images/affiche-grand-oiseau.webp'); background-size: cover; background-position: center 26%; }
.project-hero::after { background: linear-gradient(180deg,rgba(2,7,29,.2),rgba(2,7,29,.92)); }
.project-quote { background: var(--yellow); color: var(--night); }
.project-quote blockquote { margin: 0; max-width: 1100px; font-family: 'Oswald'; font-size: clamp(3rem,7vw,7rem); line-height: .98; text-transform: uppercase; }
.edition-grid { display: grid; grid-template-columns: repeat(2,1fr); gap: 18px; margin-top: 45px; }
.edition-grid button { padding: 0; border: 0; background: none; cursor: zoom-in; }
.edition-grid img { aspect-ratio: 16/10; object-fit: cover; }

.team-stage { padding-bottom: 0; background: var(--night-2); }
.team-image { width: 100%; max-height: 680px; object-fit: cover; object-position: center; background: #06143d; }
.credits { display: grid; grid-template-columns: repeat(2,1fr); gap: 1px; background: var(--line); border: 1px solid var(--line); margin-top: 1px; }
.credit { min-height: 150px; padding: 28px; background: var(--night); }
.credit span { display: block; margin-bottom: 8px; color: var(--yellow); font-size: .7rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.credit strong { font-family: 'Oswald'; font-size: clamp(1.6rem,2.8vw,2.8rem); text-transform: uppercase; }
.credit.main { grid-column: 1 / -1; min-height: 220px; display: grid; align-content: center; text-align: center; }
.credit.main strong { font-size: clamp(3.4rem,7vw,7rem); }

.partners-hero { background: linear-gradient(155deg,#193e8f,#04071b 66%); }
.partner-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 15px; margin-top: 48px; }
.partner-card { min-height: 280px; padding: 28px; border: 1px solid var(--line); }
.partner-card span { color: var(--yellow); font-family: 'Oswald'; font-size: 3.5rem; }
.partner-card p { color: var(--muted); line-height: 1.6; }
.logo-row { display: grid; grid-template-columns: repeat(4,1fr); gap: 12px; margin-top: 36px; }
.logo-chip { min-height: 150px; display: grid; place-items: center; padding: 28px; background: var(--cream); color: var(--night); font-weight: 800; text-align: center; }
.logo-chip img { max-width: 150px; max-height: 74px; object-fit: contain; }

.phone-hero { min-height: 84svh; }
.phone-hero > img { object-position: center; }
.phone-hero::after { background: linear-gradient(90deg,rgba(2,7,29,.98) 0 42%,rgba(2,7,29,.05) 72%); }
.phone-hero h1 { color: var(--cream); }
.faq-list { max-width: 980px; margin: 0 auto; border-top: 1px solid var(--line); }
.faq-list details { border-bottom: 1px solid var(--line); }
.faq-list summary { position: relative; padding: 28px 70px 28px 0; list-style: none; cursor: pointer; font-family: 'Oswald'; font-size: clamp(1.5rem,2.5vw,2.4rem); text-transform: uppercase; }
.faq-list summary::-webkit-details-marker { display: none; }
.faq-list summary::after { content: '+'; position: absolute; right: 8px; top: 25px; color: var(--yellow); font-family: 'DM Sans'; font-size: 2rem; }
.faq-list details[open] summary::after { content: '−'; }
.faq-answer { max-width: 760px; padding: 0 0 30px; color: var(--muted); font-size: 1.1rem; line-height: 1.7; }

.site-footer { padding: 42px clamp(20px,5vw,72px); border-top: 1px solid var(--line); background: #010414; }
.footer-inner { width: min(100%,var(--max)); margin: 0 auto; display: grid; grid-template-columns: 1fr auto auto; gap: 36px; align-items: center; }
.footer-logo { width: 130px; }
.footer-event { display: grid; gap: 5px; font-size: .83rem; }
.footer-event span { color: var(--muted); }
.footer-links { display: flex; gap: 20px; font-size: .75rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.footer-links a:hover { color: var(--yellow); }

.reveal { opacity: 0; transform: translateY(22px); transition: opacity .7s ease, transform .7s ease; }
.reveal.visible { opacity: 1; transform: none; }
@keyframes pulse { 0%,100% { opacity: .35; transform: translateY(0); } 50% { opacity: 1; transform: translateY(8px); } }
@media (prefers-reduced-motion: reduce) { *,*::before,*::after { scroll-behavior: auto !important; animation: none !important; transition: none !important; } .reveal { opacity: 1; transform: none; } }

@media (max-width: 1050px) {
  .menu-button { display: block; }
  .main-nav { position: fixed; inset: 82px 0 auto; display: none; padding: 26px; background: rgba(2,7,29,.98); border-top: 1px solid var(--line); flex-direction: column; align-items: stretch; }
  .main-nav.open { display: flex; }
  .main-nav .button { margin-top: 8px; }
  .editorial-split,.editorial-split.reverse,.gesture-grid { grid-template-columns: 1fr; }
  .editorial-photo { height: 65vh; min-height: 470px; }
  .cast-grid { grid-template-columns: repeat(2,1fr); }
  .partner-grid { grid-template-columns: 1fr 1fr; }
  .cast-hero .family-visual { width: 48vw; opacity: .72; }
}

@media (max-width: 700px) {
  .section { padding-left: 20px; padding-right: 20px; }
  .event-facts,.character-row,.cast-grid,.partner-grid,.edition-grid,.credits,.logo-row { grid-template-columns: 1fr; }
  .character-row a,.cast-card { min-height: 510px; }
  .proof-head { align-items: start; flex-direction: column; }
  .gallery { grid-auto-columns: 90vw; padding-left: 20px; padding-right: 20px; }
  .gallery-card { aspect-ratio: 4/5; }
  .three-lines article { grid-template-columns: 92px 1fr; }
  .modal-card { grid-template-columns: 1fr; }
  .modal-card img { max-height: 48vh; }
  .cast-hero .family-visual { right: -16vw; width: 88vw; opacity: .45; }
  .phone-hero::after { background: linear-gradient(180deg,rgba(2,7,29,.38),rgba(2,7,29,.98) 68%); }
  .phone-hero { align-items: end; }
  .phone-hero > img { object-position: 67% center; }
  .footer-inner { grid-template-columns: 1fr; }
  .footer-links { flex-wrap: wrap; }
  .cast-hero-new { min-height: 92svh; }
  .cast-hero-new h1 { font-size: clamp(4.5rem,22vw,7.5rem); }
  .cast-whisper { top: 16%; right: 7%; }
  .cast-opening { margin-left: 0; }
  .cast-card-new { min-height: 570px; }
  .cast-modal-card { grid-template-columns: 1fr; }
  .cast-modal-visual { min-height: 52vh; }
  .cast-modal-portrait { height: 52vh; object-position: center 36%; }
  .cast-modal-bird { width: 88px; height: 112px !important; }
}

/* Distribution v2 — le garage des Oiseaux de nuit */
.distribution-page { background: #020615; }
.distribution-page main { overflow: visible; }
.distribution-hero { position: relative; min-height: 100svh; overflow: hidden; background: radial-gradient(circle at 76% 44%,#103b91 0,#06183f 33%,#020615 71%); }
.distribution-hero > img { position: absolute; inset: 0 0 0 auto; width: min(74vw,1040px); height: 100%; object-fit: contain; object-position: right bottom; }
.distribution-hero-shade { position: absolute; inset: 0; background: linear-gradient(90deg,rgba(2,6,21,.98) 0%,rgba(2,6,21,.86) 28%,rgba(2,6,21,.15) 66%,rgba(2,6,21,.1)),linear-gradient(180deg,rgba(2,6,21,.28),transparent 62%,rgba(2,6,21,.55)); }
.distribution-hero-copy { position: absolute; z-index: 2; left: clamp(20px,5vw,72px); bottom: clamp(86px,10vh,130px); width: min(57vw,780px); }
.distribution-hero-copy h1 { margin: 0; color: #fff; font-size: clamp(5.5rem,11.3vw,12rem); line-height: .82; }
.distribution-hero-line { max-width: 520px; margin: 30px 0 0; color: rgba(255,255,255,.8); font-size: clamp(.96rem,1.25vw,1.2rem); letter-spacing: .05em; }
.distribution-scroll { position: absolute; z-index: 3; right: clamp(20px,4vw,60px); bottom: 24px; display: flex; align-items: center; gap: 14px; color: rgba(255,255,255,.78); font-size: .68rem; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; }
.distribution-scroll i { display: grid; place-items: center; width: 42px; height: 42px; border: 1px solid rgba(255,255,255,.42); border-radius: 50%; font-style: normal; }

.distribution-garage { position: relative; isolation: isolate; background-color: #04112f; background-image: linear-gradient(180deg,rgba(2,7,29,.68),rgba(2,7,29,.9)),url('images/distribution/garage-vide.webp'); background-size: cover; background-position: center top; background-attachment: fixed; }
.distribution-garage::before { content: ''; position: absolute; z-index: -1; inset: 0; background: linear-gradient(90deg,rgba(0,0,0,.08),transparent 48%,rgba(0,0,0,.12)); pointer-events: none; }
.distribution-intro { padding-top: clamp(94px,12vw,170px); padding-bottom: clamp(62px,8vw,110px); }
.distribution-intro-grid { display: grid; grid-template-columns: minmax(150px,.32fr) 1fr; gap: clamp(35px,7vw,110px); align-items: start; }
.distribution-intro-grid > .eyebrow { padding-top: 13px; }
.distribution-kicker { max-width: 1040px; margin-bottom: 38px; font-family: 'Oswald',Impact,sans-serif; font-size: clamp(2.9rem,6.4vw,6.6rem); line-height: .98; letter-spacing: -.025em; text-transform: uppercase; }
.distribution-copy { max-width: 840px; color: rgba(255,255,255,.78); font-size: clamp(1.05rem,1.6vw,1.4rem); line-height: 1.58; }
.distribution-copy strong { color: #fff; }
.distribution-question { max-width: 840px; margin-top: 34px; padding-top: 28px; border-top: 1px solid rgba(255,255,255,.26); color: #fff; font-size: clamp(1.2rem,2.1vw,1.8rem); line-height: 1.45; }

.distribution-cast { padding-top: 0; }
.cast-grid-garage { grid-template-columns: repeat(4,1fr); gap: 18px; margin: 0; }
.cast-card-garage { min-height: 610px; border: 1px solid rgba(255,255,255,.22); background: #0b2d77; box-shadow: 0 22px 52px rgba(0,0,0,.25); }
.cast-card-garage::after { content: ''; position: absolute; inset: 0; border: 1px solid transparent; pointer-events: none; transition: border-color .25s ease,background .25s ease; }
.cast-card-garage:hover::after,.cast-card-garage:focus-visible::after { border-color: rgba(255,255,255,.84); background: rgba(6,22,60,.08); }
.cast-card-garage > img { position: absolute; inset: 0; height: 100%; object-fit: cover; object-position: center 34%; filter: saturate(.92) contrast(1.02); }
.cast-card-garage:hover > img { transform: scale(1.025); filter: saturate(.92) brightness(.86); }
.cast-card-garage .cast-card-info { z-index: 2; padding: 145px 22px 25px; background: linear-gradient(transparent 0%,rgba(5,24,67,.9) 45%,#071d52 72%,#071d52 100%); }
.cast-card-garage .cast-card-info strong { color: #fff; font-size: clamp(1.75rem,2.3vw,2.75rem); line-height: .95; }
.cast-card-garage .cast-card-info b { display: block; margin-top: 12px; color: #fff; font-size: 1rem; font-weight: 800; letter-spacing: .11em; text-transform: uppercase; }
.cast-card-garage .cast-card-info span { color: rgba(255,255,255,.72); font-size: .67rem; line-height: 1.45; }
.cast-card-cue { position: absolute; z-index: 3; top: 17px; right: 17px; padding: 8px 10px; border: 1px solid rgba(255,255,255,.46); border-radius: 999px; background: rgba(3,11,34,.46); color: #fff; font-size: .58rem; font-weight: 800; letter-spacing: .11em; text-transform: uppercase; backdrop-filter: blur(8px); }

.veilleuse-section { padding-top: clamp(85px,11vw,155px); }
.veilleuse-layout { display: grid; grid-template-columns: 1.06fr .94fr; gap: 0; align-items: stretch; border: 1px solid rgba(255,255,255,.22); background: rgba(2,7,29,.9); box-shadow: 0 30px 80px rgba(0,0,0,.36); }
.veilleuse-visual { min-height: 710px; overflow: hidden; }
.veilleuse-visual img { height: 100%; object-fit: cover; object-position: center 30%; }
.veilleuse-copy { align-self: center; padding: clamp(38px,6vw,88px); }
.veilleuse-copy h2 { margin-bottom: 10px; color: #fff; font-size: clamp(4rem,7.5vw,7rem); }
.veilleuse-name { margin-bottom: 32px; color: #fff; font-size: .86rem; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
.veilleuse-lead { margin-bottom: 28px; color: #fff; font-size: clamp(1.35rem,2.3vw,2rem); line-height: 1.42; }
.veilleuse-copy > p:not(.eyebrow):not(.veilleuse-name):not(.veilleuse-lead) { color: rgba(255,255,255,.7); line-height: 1.7; }
.text-link { display: inline-block; margin-top: 26px; padding-bottom: 5px; border-bottom: 1px solid currentColor; color: var(--yellow); font-size: .76rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.text-link:hover { color: #fff; }

.distribution-ending { min-height: 78svh; display: grid; align-items: center; text-align: center; }
.distribution-ending .section-inner { display: grid; justify-items: center; }
.distribution-ending h2 { margin-bottom: 22px; color: #fff; font-size: clamp(5rem,11vw,11rem); }
.distribution-ending > div > p:not(.ending-whisper) { color: rgba(255,255,255,.72); font-size: clamp(1.1rem,1.7vw,1.45rem); }
.ending-whisper { margin: 0 0 24px; color: rgba(255,255,255,.72); font-family: Georgia,serif; font-size: clamp(2rem,4vw,4rem); font-style: italic; transform: rotate(-5deg); }

.cast-modal-card-v2 { grid-template-columns: minmax(360px,.88fr) 1.12fr; width: min(100%,1180px); border: 1px solid rgba(255,255,255,.2); background: #061c50; }
.cast-modal-card-v2 .cast-modal-visual { min-height: min(780px,90vh); }
.cast-modal-card-v2 .cast-modal-content { align-self: stretch; display: flex; flex-direction: column; justify-content: center; min-height: 720px; }
.cast-modal-card-v2 .cast-modal-content h2 { margin-bottom: 8px; font-size: clamp(3.4rem,6vw,6.4rem); }
.cast-modal-fullname { margin: 0 0 11px; color: #fff; font-size: .95rem; font-weight: 700; letter-spacing: .04em; }
.cast-modal-card-v2 .cast-modal-credit { margin-bottom: 25px; padding-bottom: 22px; }
.cast-tabs { display: flex; gap: 5px; margin-bottom: 30px; padding: 4px; border: 1px solid rgba(255,255,255,.2); border-radius: 999px; }
.cast-tabs button { flex: 1; min-height: 44px; padding: 0 14px; border: 0; border-radius: 999px; background: transparent; color: rgba(255,255,255,.65); font-size: .68rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; cursor: pointer; }
.cast-tabs button.active { background: #fff; color: #071d52; }
.cast-tab-panel { min-height: 215px; }
.cast-modal-card-v2 .cast-modal-body { margin-bottom: 0; color: #fff; font-family: Georgia,serif; font-size: clamp(1.55rem,2.5vw,2.25rem); line-height: 1.4; }
.cast-modal-bio { max-width: 590px; margin-bottom: 0; color: rgba(255,255,255,.82); font-size: clamp(1.05rem,1.3vw,1.18rem); line-height: 1.72; }
.cast-modal-link[hidden] { display: none; }

@media (max-width: 1120px) {
  .cast-grid-garage { grid-template-columns: repeat(2,1fr); }
  .cast-card-garage { min-height: 670px; }
  .distribution-hero > img { width: min(86vw,1000px); opacity: .82; }
  .distribution-hero-copy { width: 68vw; }
}

@media (max-width: 760px) {
  .distribution-hero { min-height: 94svh; }
  .distribution-hero > img { inset: 0; width: 100%; object-fit: cover; object-position: center bottom; opacity: .9; }
  .distribution-hero-shade { background: linear-gradient(180deg,rgba(2,6,21,.76),rgba(2,6,21,.08) 42%,rgba(2,6,21,.84)); }
  .distribution-hero-copy { left: 20px; right: 20px; bottom: 76px; width: auto; }
  .distribution-hero-copy h1 { font-size: clamp(4.2rem,20vw,7.2rem); }
  .distribution-hero-line { margin-top: 20px; font-size: .86rem; }
  .distribution-scroll { right: 18px; bottom: 18px; }
  .distribution-scroll span { display: none; }
  .distribution-garage { background-attachment: scroll; background-size: auto 100vh; background-repeat: repeat-y; }
  .distribution-intro-grid { grid-template-columns: 1fr; gap: 12px; }
  .distribution-intro-grid > .eyebrow { padding: 0; }
  .distribution-kicker { font-size: clamp(2.7rem,13vw,4.5rem); }
  .cast-grid-garage { grid-template-columns: 1fr; }
  .cast-card-garage { min-height: 690px; }
  .veilleuse-layout { grid-template-columns: 1fr; }
  .veilleuse-visual { min-height: 72vh; }
  .veilleuse-copy { padding: 36px 24px 44px; }
  .cast-modal-card-v2 { grid-template-columns: 1fr; max-height: 94vh; }
  .cast-modal-card-v2 .cast-modal-visual { min-height: 46vh; }
  .cast-modal-card-v2 .cast-modal-portrait { height: 46vh; }
  .cast-modal-card-v2 .cast-modal-content { min-height: 0; padding: 34px 24px 42px; }
  .cast-tab-panel { min-height: 0; }
}

/* =========================================================
   L’EXPÉRIENCE — version finale 2026
   ========================================================= */
.experience-page { background: #020615; }
.experience-page main { overflow: visible; }

.experience-hero { position: relative; min-height: 100svh; overflow: hidden; background: #020615; }
.experience-hero > video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; }
.experience-hero-shade { position: absolute; inset: 0; background: linear-gradient(90deg,rgba(2,6,21,.92) 0%,rgba(2,6,21,.6) 42%,rgba(2,6,21,.1) 76%),linear-gradient(180deg,rgba(2,6,21,.14),transparent 52%,rgba(2,6,21,.78)); }
.experience-hero-copy { position: absolute; z-index: 2; left: clamp(20px,5vw,72px); bottom: clamp(70px,9vh,112px); width: min(88vw,980px); }
.experience-hero-copy h1 { max-width: 920px; margin-bottom: 24px; color: #fff; font-size: clamp(5.5rem,12vw,12.5rem); line-height: .8; }
.experience-hero-lead { max-width: 650px; margin-bottom: 30px; color: rgba(255,255,255,.86); font-family: Georgia,serif; font-size: clamp(1.2rem,2vw,1.75rem); line-height: 1.45; }
.experience-facts { display: flex; flex-wrap: wrap; gap: 1px; width: fit-content; max-width: 100%; margin: 0; background: rgba(255,255,255,.28); border: 1px solid rgba(255,255,255,.28); }
.experience-facts > div { min-width: 190px; padding: 13px 18px 14px; background: rgba(2,6,21,.72); backdrop-filter: blur(8px); }
.experience-facts dt { margin-bottom: 4px; color: var(--yellow); font-size: .62rem; font-weight: 800; letter-spacing: .15em; text-transform: uppercase; }
.experience-facts dd { margin: 0; color: #fff; font-size: .84rem; font-weight: 700; }
.experience-video-toggle { right: clamp(20px,4vw,58px); bottom: 82px; }
.experience-scroll { position: absolute; z-index: 3; right: clamp(20px,4vw,58px); bottom: 22px; display: flex; align-items: center; gap: 12px; color: rgba(255,255,255,.78); font-size: .66rem; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; }
.experience-scroll i { display: grid; place-items: center; width: 42px; height: 42px; border: 1px solid rgba(255,255,255,.45); border-radius: 50%; font-style: normal; }

.experience-timeline,.experience-place { position: relative; isolation: isolate; overflow: hidden; background: #061331 url('images/experience-garage.webp') center/cover no-repeat fixed; }
.experience-garage-shade { position: absolute; z-index: -1; inset: 0; background: linear-gradient(180deg,rgba(2,7,29,.62),rgba(2,7,29,.9)),linear-gradient(90deg,rgba(2,7,29,.45),transparent 56%,rgba(2,7,29,.25)); }
.experience-timeline { padding: clamp(95px,12vw,175px) clamp(20px,5vw,72px); }
.experience-section-head { display: grid; grid-template-columns: minmax(160px,.32fr) 1fr; gap: clamp(35px,7vw,105px); align-items: start; }
.experience-section-head > .eyebrow { padding-top: 14px; }
.experience-section-head h2 { max-width: 980px; margin-bottom: 27px; color: #fff; font-size: clamp(4.7rem,9.6vw,10rem); }
.experience-schedule-line { max-width: 750px; margin: 0; color: rgba(255,255,255,.8); font-size: clamp(1.05rem,1.65vw,1.35rem); line-height: 1.62; }
.experience-time-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 1px; margin-top: clamp(58px,8vw,110px); border: 1px solid rgba(255,255,255,.24); background: rgba(255,255,255,.24); }
.experience-time-grid article { min-height: 340px; padding: clamp(25px,4vw,48px); background: rgba(3,13,39,.78); backdrop-filter: blur(11px); }
.experience-time-grid time { display: block; margin-bottom: 75px; color: var(--yellow); font-family: 'Oswald',Impact,sans-serif; font-size: clamp(2.5rem,4.2vw,4.4rem); line-height: 1; }
.experience-time-grid h3 { max-width: 310px; margin-bottom: 12px; color: #fff; font-family: 'Oswald',Impact,sans-serif; font-size: clamp(1.65rem,2.4vw,2.4rem); text-transform: uppercase; }
.experience-time-grid p { max-width: 290px; margin: 0; color: rgba(255,255,255,.67); line-height: 1.6; }

.experience-continuum { position: relative; isolation: isolate; background-color: #061331; background-image: linear-gradient(180deg,rgba(2,7,29,.72),rgba(2,7,29,.88) 38%,rgba(2,7,29,.94)),url('images/experience-garage.webp'); background-size: cover; background-position: center top; background-attachment: fixed; }
.experience-continuum::before { content: ''; position: absolute; z-index: -1; inset: 0; pointer-events: none; background: linear-gradient(90deg,rgba(1,5,18,.22),transparent 50%,rgba(1,5,18,.22)); }

.experience-gesture { position: relative; overflow: hidden; padding: clamp(115px,14vw,205px) clamp(20px,5vw,72px) clamp(95px,12vw,175px); color: var(--cream); }
.gesture-bar-atmosphere { position: absolute; z-index: -1; top: 0; right: 0; width: min(58vw,920px); height: min(92vh,950px); background: linear-gradient(90deg,#061331 0%,rgba(6,19,49,.7) 18%,rgba(6,19,49,.08) 56%),linear-gradient(180deg,rgba(2,7,29,.18),rgba(2,7,29,.86)),url('images/bar-a-tissus.webp') center/cover no-repeat; opacity: .86; -webkit-mask-image: linear-gradient(90deg,transparent 0,#000 22%,#000 100%); mask-image: linear-gradient(90deg,transparent 0,#000 22%,#000 100%); }
.gesture-opening { position: relative; z-index: 1; width: min(100%,var(--max)); min-height: clamp(590px,70vw,810px); margin: 0 auto; padding-right: min(40vw,540px); display: flex; flex-direction: column; justify-content: center; }
.gesture-opening h2 { max-width: 780px; margin-bottom: 22px; color: var(--cream); font-size: clamp(5.2rem,10vw,10.5rem); }
.gesture-tagline { margin: 0 0 32px; color: #fff; font-family: Georgia,serif; font-size: clamp(1.9rem,3.5vw,3.7rem); font-style: italic; line-height: 1.15; }
.gesture-opening .lead { max-width: 680px; color: rgba(243,236,223,.82); }
.gesture-steps { display: grid; grid-template-columns: repeat(3,1fr); width: min(100%,var(--max)); margin: clamp(40px,6vw,78px) auto 0; border-top: 1px solid rgba(243,236,223,.26); border-bottom: 1px solid rgba(243,236,223,.26); }
.gesture-steps article { min-height: 330px; padding: clamp(32px,4.2vw,58px) clamp(18px,3.2vw,42px); background: transparent; }
.gesture-steps article + article { border-left: 1px solid rgba(243,236,223,.22); }
.gesture-steps span { display: block; margin-bottom: 68px; color: var(--yellow); font-family: 'Oswald',Impact,sans-serif; font-size: 1.05rem; }
.gesture-steps h3 { margin-bottom: 17px; color: #fff; font-family: 'Oswald',Impact,sans-serif; font-size: clamp(2.2rem,3.6vw,3.7rem); text-transform: uppercase; }
.gesture-steps p { margin: 0; color: rgba(243,236,223,.72); font-size: 1rem; line-height: 1.7; }
.gesture-memory { position: relative; width: min(100%,1060px); margin: clamp(80px,10vw,140px) auto 0; overflow: hidden; background: #07112c; box-shadow: 0 35px 95px rgba(0,0,0,.46); }
.gesture-memory::after { content: ''; position: absolute; inset: 0; pointer-events: none; box-shadow: inset 0 0 120px 24px rgba(2,7,29,.84); background: linear-gradient(180deg,rgba(255,123,44,.08),rgba(2,7,29,.14) 45%,rgba(2,7,29,.68)); }
.gesture-memory img { aspect-ratio: 16/9; object-fit: cover; filter: saturate(.82) sepia(.12) brightness(.7) contrast(1.08); }
.gesture-memory figcaption { position: absolute; z-index: 1; inset: auto 0 0; padding: 80px clamp(22px,4vw,50px) clamp(24px,3vw,38px); color: #fff; font-family: Georgia,serif; font-size: clamp(1.25rem,2.3vw,2rem); font-style: italic; }
.gesture-origin { display: table; margin: 30px auto 0; color: rgba(243,236,223,.7); }
.gesture-origin:hover { color: var(--yellow); }

.experience-wish { min-height: 82svh; padding: clamp(105px,13vw,190px) clamp(20px,5vw,72px); border-top: 1px solid rgba(243,236,223,.12); }
.experience-wish-grid { display: grid; grid-template-columns: 1.12fr .88fr; gap: clamp(45px,7vw,105px); align-items: center; }
.experience-wish-image { position: relative; min-height: 650px; margin: 0; overflow: hidden; background: #070714; box-shadow: 0 30px 90px rgba(0,0,0,.42); }
.experience-wish-image::after { content: ''; position: absolute; inset: 0; pointer-events: none; box-shadow: inset 0 0 100px 22px rgba(2,7,29,.72); background: linear-gradient(180deg,rgba(2,7,29,.05),rgba(2,7,29,.32)); }
.experience-wish-image img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; filter: brightness(.78) saturate(.92); }
.experience-wish-copy { align-self: center; padding: 0; }
.experience-wish-copy .eyebrow { color: var(--yellow); }
.experience-wish-copy h2 { max-width: 680px; margin-bottom: 55px; color: #fff; font-size: clamp(4.2rem,7.5vw,8.2rem); }
.experience-wish-copy h2 em { color: #ff4d35; font-family: Georgia,serif; font-weight: 400; text-transform: none; }
.artist-credit { margin: 0; padding-top: 25px; border-top: 1px solid rgba(255,255,255,.28); color: rgba(255,255,255,.82); font-size: .86rem; line-height: 1.7; letter-spacing: .04em; }
.artist-credit strong { color: #fff; }
.artist-credit span { color: rgba(255,255,255,.58); font-size: .72rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }

.experience-place { padding: clamp(110px,13vw,195px) clamp(20px,5vw,72px); border-top: 1px solid rgba(243,236,223,.12); background: transparent; }
.experience-place-grid { display: grid; grid-template-columns: .9fr 1.1fr; gap: clamp(45px,7vw,105px); align-items: center; }
.experience-place-copy h2 { color: #fff; font-size: clamp(4.4rem,7.6vw,8.2rem); }
.experience-place-copy .lead { max-width: 590px; color: rgba(255,255,255,.8); }
.sceno-credit { margin: 35px 0 0; padding-top: 22px; border-top: 1px solid rgba(255,255,255,.28); color: rgba(255,255,255,.62); font-size: .7rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.claire-sketch { margin: 0; padding: clamp(12px,1.7vw,22px); transform: rotate(1.4deg); background: #f4efe4; box-shadow: 0 35px 85px rgba(0,0,0,.42); }
.claire-sketch img { aspect-ratio: 4/5; object-fit: cover; object-position: center; }
.claire-sketch figcaption { padding: 15px 5px 2px; color: #28314c; font-size: .65rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }

.experience-final { position: relative; min-height: 82svh; display: grid; align-items: center; padding: clamp(95px,12vw,175px) clamp(20px,5vw,72px); border-top: 1px solid rgba(243,236,223,.12); background: radial-gradient(circle at 50% 45%,rgba(20,61,151,.34),transparent 44%); text-align: center; }
.experience-final::before { content: ''; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(180deg,rgba(2,7,29,.06),rgba(2,7,29,.7)); }
.experience-final .section-inner { position: relative; z-index: 1; display: grid; justify-items: center; }
.experience-final h2 { max-width: 1050px; margin-bottom: 25px; color: #fff; font-size: clamp(5rem,11vw,11.5rem); }
.experience-final .lead { margin-bottom: 5px; color: rgba(255,255,255,.76); font-family: Georgia,serif; }
.experience-final .actions { justify-content: center; }

@media (max-width: 1020px) {
  .experience-hero-copy { width: min(84vw,760px); }
  .experience-section-head,.experience-place-grid { grid-template-columns: 1fr; }
  .experience-section-head > .eyebrow { padding-top: 0; }
  .experience-time-grid { grid-template-columns: 1fr; }
  .experience-time-grid article { min-height: 0; }
  .experience-time-grid time { margin-bottom: 42px; }
  .gesture-opening { padding-right: 30vw; }
  .gesture-steps { grid-template-columns: 1fr; }
  .gesture-steps article { min-height: 0; }
  .gesture-steps article + article { border-top: 1px solid rgba(243,236,223,.22); border-left: 0; }
  .gesture-steps span { margin-bottom: 42px; }
  .experience-wish-grid { grid-template-columns: 1fr; }
  .experience-wish-image { min-height: 62vw; max-height: 760px; }
  .experience-wish-copy { min-height: 0; padding-top: 30px; }
  .claire-sketch { width: min(100%,720px); margin: 0 auto; }
}

@media (max-width: 700px) {
  .experience-hero { min-height: 100svh; }
  .experience-hero > video { object-position: 57% center; }
  .experience-hero-shade { background: linear-gradient(180deg,rgba(2,6,21,.28),rgba(2,6,21,.12) 34%,rgba(2,6,21,.93) 72%); }
  .experience-hero-copy { left: 20px; right: 20px; bottom: 50px; width: auto; }
  .experience-hero-copy h1 { font-size: clamp(4.7rem,21vw,7.1rem); }
  .experience-hero-lead { max-width: 94%; font-size: 1.08rem; }
  .experience-facts { display: grid; grid-template-columns: 1fr 1fr; width: 100%; }
  .experience-facts > div { min-width: 0; }
  .experience-facts > div:last-child { grid-column: 1 / 3; }
  .experience-video-toggle { right: 20px; bottom: 14px; font-size: .65rem; }
  .experience-scroll { display: none; }
  .experience-timeline,.experience-place,.experience-continuum { background-attachment: scroll; }
  .experience-section-head h2 { font-size: clamp(4.2rem,19vw,6.5rem); }
  .experience-time-grid article { padding: 28px 24px 32px; }
  .experience-time-grid time { margin-bottom: 34px; }
  .experience-gesture { padding-top: 82px; }
  .gesture-bar-atmosphere { width: 100%; height: 760px; opacity: .68; background-image: linear-gradient(180deg,rgba(2,7,29,.32),rgba(2,7,29,.24) 42%,#061331 94%),url('images/bar-a-tissus.webp'); -webkit-mask-image: none; mask-image: none; }
  .gesture-opening { min-height: 720px; padding: 0; justify-content: end; }
  .gesture-opening h2 { font-size: clamp(4.7rem,20vw,7rem); }
  .gesture-opening .lead { max-width: 95%; font-size: 1.08rem; }
  .gesture-steps article { padding: 30px 24px; }
  .gesture-memory { margin-top: 72px; }
  .gesture-memory img { aspect-ratio: 4/5; }
  .gesture-memory figcaption { padding: 76px 22px 24px; }
  .experience-wish { min-height: 0; }
  .experience-wish-image { min-height: 76vw; }
  .experience-wish-copy { padding: 32px 0 0; }
  .experience-wish-copy h2 { font-size: clamp(4rem,17vw,6.2rem); }
  .experience-place-copy h2 { font-size: clamp(3.9rem,17vw,6rem); }
  .claire-sketch { transform: rotate(.5deg); }
  .experience-final h2 { font-size: clamp(4.5rem,20vw,7rem); }
}

/* =========================================================
   NUPA · consolidation éditoriale du 20 octobre 2026
   ========================================================= */

/* Accueil : du bus vers l’extérieur du garage */
.home-entry { position: relative; isolation: isolate; min-height: 94svh; display: grid; align-items: end; background: #020615 url('images/accueil-exterieur-garage.webp') center/cover no-repeat; }
.home-entry-shade { position: absolute; z-index: -1; inset: 0; background: linear-gradient(90deg,rgba(2,6,21,.93) 0%,rgba(2,6,21,.62) 48%,rgba(2,6,21,.22) 78%),linear-gradient(180deg,rgba(2,6,21,.12),rgba(2,6,21,.86)); }
.home-entry .section-inner { padding-bottom: clamp(45px,7vw,100px); }
.home-entry h1 { max-width: 920px; color: #fff; font-size: clamp(5rem,11.5vw,12rem); line-height: .82; }
.home-opening { max-width: 790px; margin: 24px 0 38px; color: #fff; font-family: Georgia,serif; font-size: clamp(1.35rem,2.5vw,2.25rem); line-height: 1.42; }
.home-entry .event-facts { max-width: 980px; background: rgba(255,255,255,.22); }
.home-entry .event-facts > div { background: rgba(2,7,29,.76); backdrop-filter: blur(10px); }
.home-entry .button.secondary { color: #fff; border-color: rgba(255,255,255,.72); }
.home-season { overflow: hidden; background: #061331; }
.home-season h2 { color: #fff; }
.home-season .lead { color: rgba(255,255,255,.72); }
.home-cast-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 14px; margin-top: 55px; }
.home-cast-card { position: relative; min-height: 660px; overflow: hidden; border: 1px solid rgba(255,255,255,.2); background: #0b2d77; }
.home-cast-card img { width: 100%; height: 100%; object-fit: cover; transition: transform .45s ease,filter .45s ease; }
.home-cast-card > span { position: absolute; inset: auto 0 0; display: grid; gap: 5px; padding: 80px 22px 23px; background: linear-gradient(transparent,rgba(2,7,29,.95)); }
.home-cast-card b { font-family: 'Oswald',Impact,sans-serif; font-size: clamp(1.8rem,2.5vw,2.7rem); text-transform: uppercase; }
.home-cast-card small { color: rgba(255,255,255,.72); font-size: .72rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.home-cast-card:hover img,.home-cast-card:focus-visible img { transform: scale(1.025); filter: brightness(.82); }
.home-season .actions { justify-content: center; margin-top: 40px; }

/* Projet : une seule nuit visuelle, plus calme que l’expérience */
.project-page { background: #020615; }
.project-hero-v2 { position: relative; isolation: isolate; min-height: 92svh; display: grid; align-items: end; background: #061331 url('images/projet-garage-atelier.webp') center/cover no-repeat; }
.project-hero-shade { position: absolute; z-index: -1; inset: 0; background: linear-gradient(90deg,rgba(2,6,21,.93),rgba(2,6,21,.48) 63%,rgba(2,6,21,.32)),linear-gradient(180deg,rgba(2,6,21,.12),rgba(2,6,21,.9)); }
.project-hero-v2 .section-inner { padding-bottom: clamp(52px,8vw,112px); }
.project-hero-v2 h1 { max-width: 1080px; color: #fff; font-size: clamp(5.3rem,11vw,11rem); }
.project-hero-v2 .lead { max-width: 920px; color: rgba(255,255,255,.84); }
.project-repair { background: #071946; }
.project-repair h2,.project-repair .lead { color: #fff; }
.project-method { background: #03102f; }
.project-method-grid { display: grid; grid-template-columns: repeat(2,1fr); gap: 1px; margin-top: 42px; border: 1px solid rgba(255,255,255,.18); background: rgba(255,255,255,.18); }
.project-method-grid article { min-height: 560px; display: flex; flex-direction: column; justify-content: flex-end; padding: clamp(30px,5vw,68px); background: linear-gradient(180deg,rgba(7,29,82,.7),rgba(2,7,29,.96)); }
.project-method-grid span { margin-bottom: auto; color: var(--yellow); font-family: 'Oswald',Impact,sans-serif; font-size: 1.1rem; }
.project-method-grid h2 { max-width: 590px; color: #fff; font-size: clamp(3rem,5vw,5.8rem); }
.project-method-grid p { max-width: 620px; color: rgba(255,255,255,.72); font-size: 1.05rem; line-height: 1.72; }
.project-proof blockquote { max-width: 780px; margin: 38px 0 0; padding-top: 28px; border-top: 1px solid rgba(255,255,255,.22); color: #fff; font-family: Georgia,serif; font-size: clamp(1.5rem,2.7vw,2.45rem); line-height: 1.45; }
.project-proof blockquote cite { display: block; margin-top: 14px; color: rgba(255,255,255,.56); font-family: 'DM Sans',Arial,sans-serif; font-size: .68rem; font-style: normal; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.project-season { background: var(--yellow); color: #02071d; }
.project-season .eyebrow,.project-season h2,.project-season .lead { color: #02071d; }

/* Équipe : nom et rôle au premier regard, phrase au clic */
.team-garage { position: relative; isolation: isolate; background: #04112f url('images/projet-garage-atelier.webp') center/cover fixed; }
.team-garage::before { content: ''; position: absolute; z-index: -1; inset: 0; background: linear-gradient(180deg,rgba(2,7,29,.76),rgba(2,7,29,.96)); }
.team-garage h2 { color: #fff; font-size: clamp(5rem,11vw,11rem); }
.team-garage > .section-inner > .lead { max-width: 780px; color: rgba(255,255,255,.68); }
.team-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 14px; margin-top: 58px; }
.team-card { position: relative; min-height: 610px; padding: 0; overflow: hidden; border: 1px solid rgba(255,255,255,.2); background: #09235c; color: #fff; text-align: left; cursor: pointer; }
.team-card > img,.team-placeholder { width: 100%; height: 100%; object-fit: cover; object-position: center 28%; transition: transform .45s ease,filter .45s ease; }
.team-placeholder { display: grid; place-items: center; background: linear-gradient(145deg,#0a2d78,#02071d); }
.team-placeholder b { color: rgba(255,255,255,.16); font-family: 'Oswald',Impact,sans-serif; font-size: clamp(7rem,13vw,13rem); }
.team-label { position: absolute; inset: auto 0 0; z-index: 2; display: grid; padding: 120px 22px 24px; background: linear-gradient(transparent,rgba(2,7,29,.96) 56%); }
.team-label b { font-family: 'Oswald',Impact,sans-serif; font-size: clamp(2rem,3vw,3.2rem); line-height: 1; text-transform: uppercase; }
.team-label small { margin-top: 10px; color: var(--yellow); font-size: .67rem; font-weight: 800; letter-spacing: .12em; line-height: 1.45; text-transform: uppercase; }
.team-label i { margin-top: 18px; color: rgba(255,255,255,.55); font-size: .68rem; font-style: normal; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.team-card:hover > img,.team-card:focus-visible > img { transform: scale(1.025); filter: brightness(.78); }
.team-card:hover .team-label i,.team-card:focus-visible .team-label i { color: #fff; }
.team-modal-card { position: relative; width: min(92vw,780px); padding: clamp(42px,7vw,92px); border: 1px solid rgba(255,255,255,.24); background: #071d52; color: #fff; }
.team-modal-card h2 { color: #fff; font-size: clamp(3.7rem,8vw,7.4rem); }
.team-modal-phrase { max-width: 620px; margin: 25px 0 0; color: #fff; font-family: Georgia,serif; font-size: clamp(1.55rem,3vw,2.6rem); line-height: 1.45; }
.maison-mad { background: #071946; }
.maison-mad h2,.maison-mad .lead { color: #fff; }

/* Expérience : sans cases horaires ni vue complète de la scénographie */
.experience-hours { max-width: 730px; margin: 0 0 30px; padding-top: 20px; border-top: 1px solid rgba(255,255,255,.35); color: rgba(255,255,255,.78); font-size: .9rem; font-weight: 700; line-height: 1.6; }
.experience-birds { min-height: 76svh; display: grid; align-items: center; border-bottom: 1px solid rgba(255,255,255,.14); background: radial-gradient(circle at 75% 40%,rgba(19,65,169,.35),transparent 35%); }
.experience-birds h2,.experience-birds .lead { color: #fff; }
.experience-place { min-height: 62svh; display: grid; align-items: center; }
.experience-place h2,.experience-place .lead { color: #fff; }
.experience-final { isolation: isolate; overflow: hidden; background: #02071d; }
.experience-final::before { z-index: -1; background: linear-gradient(90deg,rgba(2,7,29,.94),rgba(2,7,29,.58),rgba(2,7,29,.86)); }
.experience-final::after { content: ''; position: absolute; z-index: -2; inset: -8%; background: url('images/claire-dessin-fondateur.jpg') 62% 45%/cover no-repeat; filter: brightness(.45) saturate(.65) blur(1px); transform: scale(1.1); }
.experience-final .sceno-credit { max-width: 620px; margin: 24px auto 0; }

/* Partenaires */
.partners-hero-v2 { background: linear-gradient(90deg,rgba(2,7,29,.94),rgba(2,7,29,.55)),url('images/accueil-exterieur-garage.webp') center/cover no-repeat; }
.partners-hero-v2 h1 { color: #fff; font-size: clamp(5rem,11vw,11rem); }
.partners-hero-v2 .lead { max-width: 850px; color: rgba(255,255,255,.84); }
.partner-formulas { background: #071946; }
.partner-formulas h2 { color: #fff; }
.partner-formula-grid { display: grid; grid-template-columns: repeat(2,1fr); gap: 12px; margin-top: 48px; }
.partner-formula { border: 1px solid rgba(255,255,255,.2); background: rgba(2,7,29,.68); }
.partner-formula summary { display: grid; grid-template-columns: 1fr auto; gap: 24px; align-items: end; min-height: 210px; padding: 34px; list-style: none; cursor: pointer; }
.partner-formula summary::-webkit-details-marker { display: none; }
.partner-formula summary span { color: #fff; font-family: 'Oswald',Impact,sans-serif; font-size: clamp(2rem,4vw,4.2rem); text-transform: uppercase; }
.partner-formula summary b { color: var(--yellow); font-family: 'Oswald',Impact,sans-serif; font-size: clamp(1.7rem,3vw,3rem); white-space: nowrap; }
.partner-formula p { margin: 0; padding: 0 34px 20px; color: rgba(255,255,255,.72); line-height: 1.7; }
.partner-formula a { display: inline-block; margin: 0 34px 34px; padding-bottom: 4px; border-bottom: 1px solid currentColor; color: #fff; font-size: .72rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.partner-formula-ticket { border-color: rgba(227,255,0,.55); }
.partner-commitment { max-width: 920px; margin: 42px 0 0; padding: 28px 0; border-top: 1px solid rgba(255,255,255,.22); color: #fff; font-family: Georgia,serif; font-size: clamp(1.25rem,2.1vw,1.75rem); line-height: 1.5; }
.supporters { overflow: hidden; background: #020615; }
.logo-marquee { margin-top: 35px; overflow: hidden; }
.logo-track { display: flex; gap: 12px; width: max-content; animation: logoFlow 28s linear infinite; }
.logo-track .logo-chip { width: 250px; }
@keyframes logoFlow { to { transform: translateX(calc(-50% - 6px)); } }

/* Pied de page */
.footer-inner-expanded { grid-template-columns: auto auto 1fr; }
.footer-press { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(2,minmax(240px,1fr)); gap: 12px 40px; padding-top: 24px; border-top: 1px solid rgba(255,255,255,.14); color: rgba(255,255,255,.58); font-size: .72rem; line-height: 1.65; }
.footer-press p { margin: 0; }
.footer-press strong { color: #fff; font-size: .65rem; letter-spacing: .11em; text-transform: uppercase; }

/* Distribution mobile : l’image reste entière et le titre ne couvre plus les visages */
@media (max-width: 1050px) {
  .home-cast-grid,.team-grid { grid-template-columns: repeat(2,1fr); }
}

@media (max-width: 760px) {
  .home-entry { min-height: 92svh; background-position: 64% center; }
  .home-entry h1 { font-size: clamp(4.4rem,20vw,7rem); }
  .home-entry .event-facts { grid-template-columns: 1fr; }
  .home-cast-grid,.team-grid,.project-method-grid,.partner-formula-grid { grid-template-columns: 1fr; }
  .home-cast-card,.team-card { min-height: 570px; }
  .project-hero-v2 { min-height: 88svh; background-position: 60% center; }
  .project-hero-v2 h1 { font-size: clamp(4.5rem,20vw,7.5rem); }
  .project-method-grid article { min-height: 500px; }
  .team-garage { background-attachment: scroll; }
  .partner-formula summary { grid-template-columns: 1fr; min-height: 180px; }
  .footer-inner-expanded { grid-template-columns: 1fr; }
  .footer-press { grid-template-columns: 1fr; }
  .distribution-hero { min-height: auto; display: grid; padding-top: 82px; background: #020615; }
  .distribution-hero > img { position: relative; inset: auto; width: 100%; height: auto; aspect-ratio: 4/5; object-fit: cover; object-position: center 30%; opacity: 1; }
  .distribution-hero-shade { display: none; }
  .distribution-hero-copy { position: relative; inset: auto; width: auto; padding: 32px 20px 76px; background: #061331; }
  .distribution-hero-copy h1 { margin: 0; font-size: clamp(4rem,18vw,6.5rem); }
  .distribution-hero-line { margin-top: 20px; }
  .distribution-scroll { bottom: 18px; }
}


/* --- Mise à jour 21 octobre 2026 : garage, casting et conversion --- */
:root { --cta-red:#e44732; }
.home-entry h1 { max-width:1120px; font-size:clamp(3.4rem,8.2vw,8.8rem); line-height:.91; }
.home-season { position:relative; isolation:isolate; background:#020615 url('images/garage-continuum.webp') center/cover fixed no-repeat; }
.home-season::before { content:''; position:absolute; z-index:-1; inset:0; background:linear-gradient(180deg,rgba(2,7,29,.91),rgba(2,7,29,.76),rgba(2,7,29,.96)); }
.home-cast-selected { grid-template-columns:repeat(5,1fr); gap:10px; }
.home-cast-selected .home-cast-card { min-height:520px; }
.home-cast-selected .home-cast-card > span { padding:78px 18px 19px; }
.home-cast-selected .home-cast-card b { font-size:clamp(1.4rem,2.2vw,2.35rem); }
.home-entry [data-booking], .conversion [data-booking] { background:var(--cta-red); border-color:var(--cta-red); color:#fff; }
.home-entry [data-booking]:hover, .conversion [data-booking]:hover { background:#ff5b43; }

.project-page main { background:#020615 url('images/garage-continuum.webp') center top/cover fixed no-repeat; }
.project-repair,.project-method,.project-proof { background:rgba(2,7,29,.82); backdrop-filter:blur(1px); }
.project-repair { border-top:1px solid rgba(255,255,255,.12); }
.project-method-grid article { background:linear-gradient(180deg,rgba(7,29,82,.58),rgba(2,7,29,.95)); }
.maison-mad { position:relative; isolation:isolate; background:#03102f url('images/maison-mad-garage.webp') center/cover no-repeat; }
.maison-mad::before { content:''; position:absolute; z-index:-1; inset:0; background:linear-gradient(90deg,rgba(2,7,29,.96),rgba(2,7,29,.58),rgba(2,7,29,.9)); }
.maison-mad .section-inner { min-height:62vh; align-items:center; }

.partner-why { background:#04112f url('images/garage-continuum.webp') center/cover no-repeat; }
.partner-why > .section-inner { position:relative; }
.partner-yellow-title { color:var(--yellow)!important; font-size:clamp(3.8rem,8vw,8rem); line-height:.9; }
.partners-page .partner-formulas { background:linear-gradient(rgba(2,7,29,.9),rgba(2,7,29,.94)),url('images/maison-mad-garage.webp') center/cover fixed; }

.luciole-section { border-top:1px solid rgba(255,255,255,.15); background:linear-gradient(115deg,#071d52,#061331 54%,#101a25); }
.luciole-layout { display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); gap:clamp(34px,7vw,105px); align-items:center; }
.luciole-visual { min-height:700px; overflow:hidden; border:1px solid rgba(255,255,255,.2); }
.luciole-visual img { width:100%; height:100%; object-fit:cover; object-position:center 34%; }
.luciole-copy h2 { color:#fff; font-size:clamp(4.2rem,9vw,9rem); }
.luciole-name { margin:12px 0 28px; color:var(--yellow); font-size:.82rem; font-weight:800; letter-spacing:.13em; text-transform:uppercase; }
.luciole-lead { color:#fff; font-family:Georgia,serif; font-size:clamp(1.5rem,2.7vw,2.45rem); line-height:1.45; }
.luciole-copy > p:last-child { color:rgba(255,255,255,.7); line-height:1.75; }

.ticket-float { position:fixed; z-index:150; right:18px; bottom:18px; min-width:128px; min-height:54px; padding:0 24px; border:1px solid rgba(255,255,255,.72); border-radius:999px; background:var(--cta-red); color:#fff; box-shadow:0 14px 44px rgba(0,0,0,.42); font-weight:900; letter-spacing:.1em; text-transform:uppercase; cursor:pointer; }
.ticket-float:hover { transform:translateY(-2px); background:#ff5b43; }
.ticket-modal { position:fixed; z-index:300; inset:0; display:none; place-items:center; padding:18px; background:rgba(2,7,29,.9); backdrop-filter:blur(12px); }
.ticket-modal.open { display:grid; }
.ticket-shell { position:relative; width:min(100%,1040px); height:min(90vh,900px); overflow:hidden; border:1px solid rgba(255,255,255,.24); border-radius:18px; background:#fff; box-shadow:0 28px 90px rgba(0,0,0,.55); }
.ticket-shell iframe { width:100%; height:100%; border:0; background:#fff; }
.ticket-close { position:absolute; z-index:2; top:10px; right:10px; width:44px; height:44px; border:0; border-radius:50%; background:#02071d; color:#fff; font-size:1.7rem; cursor:pointer; }
.ticket-fallback { position:absolute; z-index:2; left:16px; bottom:12px; padding:8px 12px; border-radius:999px; background:rgba(2,7,29,.9); color:#fff; font-size:.7rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
body.ticket-open { overflow:hidden; }
.team-card img[alt="Portrait de Johanne"] { object-position:center 27%; }

@media (max-width:1100px) { .home-cast-selected { grid-template-columns:repeat(3,1fr); } }
@media (max-width:760px) {
 .home-entry h1 { font-size:clamp(3.25rem,15vw,5.7rem); }
 .home-cast-selected { grid-template-columns:repeat(2,1fr); }
 .home-cast-selected .home-cast-card { min-height:430px; }
 .home-cast-selected .home-cast-card:last-child { grid-column:1/-1; min-height:520px; }
 .luciole-layout { grid-template-columns:1fr; }
 .luciole-visual { min-height:560px; }
 .ticket-float { right:12px; bottom:12px; min-width:112px; min-height:50px; }
 .ticket-modal { padding:8px; }
 .ticket-shell { height:94vh; border-radius:12px; }
}
