/* Fichier généré par scripts/build.py — modifier fonts/tokens/base/site.css. */

@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url('../fonts/montserrat-normal-400-700.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Playfair Display';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url('../fonts/playfair-display-italic-400.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Playfair Display';
  font-style: normal;
  font-weight: 400 600;
  font-display: swap;
  src: url('../fonts/playfair-display-normal-400-600.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
:root {
  --color-bg: #faf6f2;          
  --color-surface: #f1eae2;     
  --color-text: #2a221d;        
  --color-text-muted: #73665a;   
  --color-warm: #6c4e3f;        
  --color-accent: #df5b7c;      
  --color-accent-texte: #c5264e;  
  --color-line: #e2d8cc;
  --card-blush: #f0dde2;
  --card-lilas: #e2ddee;
  --card-sauge: #dde4da;
  --card-sable: #efe6d8;
  --card-ciel:  #dce6ee;
  --color-on-accent: #ffffff;
  --color-night: #15140f;       
  --color-on-night: #f5f2ed;
  --color-night-muted: #8d887a;
  --color-cine: #0c0a08;                    
  --color-cine-texte: #f3ede6;
  --color-cine-muted: rgba(243, 237, 230, .58);
  --color-champagne: #cdb08a;               
  --color-rose-pale: #f6e6e9;               
  --font-display: "Playfair Display", Georgia, "Times New Roman", serif;
  --font-body: "Montserrat", "Helvetica Neue", system-ui, sans-serif;
  --step--2: clamp(0.69rem, 0.66rem + 0.12vw, 0.76rem);
  --step--1: clamp(0.82rem, 0.79rem + 0.15vw, 0.9rem);
  --step-0: clamp(1rem, 0.96rem + 0.2vw, 1.08rem);
  --step-1: clamp(1.15rem, 1.07rem + 0.4vw, 1.35rem);
  --step-2: clamp(1.4rem, 1.2rem + 0.85vw, 1.95rem);
  --step-3: clamp(1.95rem, 1.25rem + 3.2vw, 3.7rem);
  --step-4: clamp(2.5rem, 1.25rem + 5.3vw, 5.85rem);  
  --track-label: 0.2em;
  --track-display: 0.05em;
  --space-xs: 0.5rem;
  --space-s: 1rem;
  --space-m: 1.75rem;
  --space-l: clamp(2.5rem, 1.8rem + 3vw, 4.5rem);
  --space-xl: clamp(4.5rem, 3rem + 6vw, 8rem);
  --space-2xl: clamp(4.5rem, 2.8rem + 6.5vw, 9rem);
  --container: 74rem;
  --measure: 36rem;
  --gutter: clamp(1.5rem, 0.8rem + 3vw, 4rem);
  --radius: 0;
  --radius-soft: 14px;          
  --arch: 50% 50% 0 0 / 34% 34% 0 0;  
  --ease: cubic-bezier(0.22, 1, 0.36, 1);
  --duration: 900ms;
  --duration-fast: 300ms;
  --header-h: 4.25rem;
}
@media (min-width: 900px) {
  :root { --header-h: 5rem; }
}
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--color-bg);
  color: var(--color-text);
  font-family: var(--font-body);
  font-size: var(--step-0);
  line-height: 1.6;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}
h1, h2, h3, h4 { margin: 0; font-family: var(--font-display); font-weight: 400; line-height: 1.1; text-wrap: balance; }
p { margin: 0 0 1em; text-wrap: pretty; }
p:last-child { margin-bottom: 0; }
img, video, svg { display: block; max-width: 100%; height: auto; }
img, video { object-fit: cover; }
a { color: inherit; }
button, input, textarea, select { font: inherit; color: inherit; }
ul[class], ol[class] { margin: 0; padding: 0; list-style: none; }
:focus-visible { outline: 2px solid var(--color-accent); outline-offset: 3px; }
.visually-hidden {
  position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}
.skip-link { position: absolute; left: var(--gutter); top: -100px; z-index: 100; padding: var(--space-xs) var(--space-s); background: var(--color-text); color: var(--color-bg); }
.skip-link:focus { top: var(--space-xs); }
.container { width: min(100% - 2 * var(--gutter), var(--container)); margin-inline: auto; }
.site-header__toggle { display: none; }
@media (max-width: 899px) {
  .site-header__toggle { display: inline-flex; }
  .site-nav { display: none; }
  .site-nav[data-open] { display: block; }
  body[data-menu-open] { overflow: hidden; }
}
.js-motion [data-reveal] { opacity: 0; transform: translateY(24px); transition: opacity var(--duration) var(--ease), transform var(--duration) var(--ease); }
.js-motion [data-reveal].is-visible { opacity: 1; transform: none; }
.sticky-cta { display: none; }
@media (max-width: 899px) {
  .sticky-cta { display: block; position: fixed; inset: auto var(--space-s) var(--space-s); z-index: 50; }
  body { padding-bottom: 5rem; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: 0.01ms !important; transition-duration: 0.01ms !important; }
}
body { font-family: var(--font-body); font-weight: 400; }
::selection { background: var(--color-accent); color: #fff; }
ul.container, ol.container { margin-inline: auto; }
a { text-decoration: none; }
.measure { max-width: var(--measure); }
.site-header {
  position: sticky;
  top: 0;
  z-index: 60;
  height: var(--header-h);
  display: flex;
  align-items: center;
  background: var(--color-bg);
  border-bottom: 1px solid var(--color-line);
}
.site-header__inner {
  width: min(100% - 2 * var(--gutter), var(--container));
  margin-inline: auto;
  display: flex;
  align-items: center;
  gap: clamp(1rem, 2.2vw, 3.5rem);
}
.site-header__logo { display: block; flex: none; }
.site-header__logo img { width: clamp(7rem, 10vw, 9.5rem); height: auto; }
.site-header__logo-light { display: none; }
.site-nav__list { display: flex; gap: clamp(0.8rem, 1.6vw, 2rem); }
.site-nav__list a,
.site-nav__client,
.site-nav__cta {
  font-size: var(--step--2);
  font-weight: 700;
  letter-spacing: var(--track-label);
  text-transform: uppercase;
  white-space: nowrap;
}
.site-nav__list a {
  color: var(--color-text);
  padding-bottom: 0.25em;
  border-bottom: 1px solid transparent;
  transition: border-color var(--duration-fast) var(--ease);
}
.site-nav__list a:hover { border-bottom-color: currentColor; }
.site-nav__list a[aria-current="page"] { color: var(--color-accent); }
.site-nav__client { color: var(--color-text-muted); transition: color var(--duration-fast) var(--ease); }
.site-nav__client:hover { color: var(--color-text); }
.site-nav__cta {
  padding: 0.8em clamp(1rem, 1.5vw, 1.5rem);
  border: 1px solid var(--color-text);
  color: var(--color-text);
  transition: background var(--duration-fast) var(--ease), color var(--duration-fast) var(--ease);
}
.site-nav__cta:hover { background: var(--color-text); color: var(--color-bg); }
@media (min-width: 900px) {
  .site-nav { margin-left: auto; display: flex; align-items: center; gap: clamp(1rem, 2vw, 2.25rem); }
}
@media (min-width: 900px) and (max-width: 1199px) {
  .site-nav__client { display: none; }
}
.site-header__toggle {
  margin-left: auto;
  width: 2.75rem; height: 2.75rem;
  align-items: center; justify-content: center;
  background: none; border: 0; padding: 0; cursor: pointer;
}
.site-header__toggle-bars,
.site-header__toggle-bars::before,
.site-header__toggle-bars::after {
  display: block; width: 1.4rem; height: 1px; background: var(--color-text);
  transition: transform var(--duration-fast) var(--ease);
}
.site-header__toggle-bars { position: relative; }
.site-header__toggle-bars::before,
.site-header__toggle-bars::after { content: ""; position: absolute; left: 0; }
.site-header__toggle-bars::before { top: -6px; }
.site-header__toggle-bars::after { top: 6px; }
.site-header__toggle[aria-expanded="true"] .site-header__toggle-bars { background: transparent; }
.site-header__toggle[aria-expanded="true"] .site-header__toggle-bars::before { transform: translateY(6px) rotate(45deg); }
.site-header__toggle[aria-expanded="true"] .site-header__toggle-bars::after { transform: translateY(-6px) rotate(-45deg); }
@media (max-width: 899px) {
  .site-nav[data-open] {
    position: fixed;
    inset: var(--header-h) 0 0;
    background: var(--color-bg);
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    gap: var(--space-l);
    padding: var(--gutter);
    overflow-y: auto;
  }
  .site-nav__list { flex-direction: column; gap: var(--space-m); }
  .site-nav__list a {
    font-family: var(--font-display);
    font-size: var(--step-2);
    font-weight: 400;
    letter-spacing: var(--track-display);
  }
  .site-nav__client { order: 1; }
}
.cover { background: var(--color-surface); }
.cover img { width: 100%; height: clamp(24rem, 78vh, 50rem); object-fit: cover; object-position: center 42%; }
.statement { padding-block: var(--space-2xl); }
.statement__title {
  font-family: var(--font-display);
  font-size: var(--step-3);
  font-weight: 400;
  line-height: 1.14;
  max-width: 19ch;
  text-wrap: balance;
}
.statement__lede {
  margin-top: var(--space-m);
  font-size: var(--step-1);
  color: var(--color-text-muted);
  max-width: 36ch;
}
.plate { padding-block: var(--space-2xl); }
.plate--tight { padding-block: var(--space-xl); }
.plate--tint { background: var(--color-surface); }
.plate--night { background: var(--color-night); color: var(--color-on-night); }
.plate__title {
  font-family: var(--font-display);
  font-size: var(--step-2);
  font-weight: 400;
  line-height: 1.15;
  letter-spacing: var(--track-display);
  text-transform: uppercase;
  margin-bottom: var(--space-l);
}
.plate--split .plate__title { margin-bottom: var(--space-m); }
.plate__action { margin-top: var(--space-l); }
.split { display: grid; gap: var(--space-l); align-items: center; }
.split__figure { max-width: 34rem; }
.split__figure--portrait { max-width: 24rem; }
.split__figure img { width: 100%; }
.split__lede {
  font-family: var(--font-display);
  font-size: var(--step-1);
  margin-bottom: var(--space-m);
  max-width: 34ch;
}
.plate--night .split__lede { color: rgba(255, 255, 255, 0.78); }
@media (min-width: 900px) {
  .split { grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); gap: var(--space-xl); }
  .split--reverse > .split__figure { order: 2; justify-self: end; }
}
.prose { max-width: var(--measure); }
.prose p { margin-bottom: 1.1em; }
.prose--tight p { margin-bottom: 0.25em; }
.prose strong { font-weight: 700; }
.plate--night .prose { color: rgba(255, 255, 255, 0.78); }
.h-small {
  font-family: var(--font-body);
  font-size: var(--step--2);
  font-weight: 700;
  letter-spacing: var(--track-label);
  text-transform: uppercase;
  margin: var(--space-l) 0 var(--space-xs);
}
.h-small:first-child { margin-top: 0; }
.page-head__media { background: var(--color-surface); }
.page-head__media img { width: 100%; height: clamp(16rem, 44vh, 28rem); object-fit: cover; }
.page-head__text { padding-block: var(--space-xl); }
.page-head__title {
  font-family: var(--font-display);
  font-size: var(--step-3);
  font-weight: 400;
  line-height: 1.14;
  letter-spacing: var(--track-display);
  text-transform: uppercase;
}
.page-head__lede {
  margin-top: var(--space-m);
  font-size: var(--step-1);
  color: var(--color-text-muted);
  max-width: 44ch;
}
.arch {
  margin: 0;
  overflow: hidden;
  border-radius: var(--arch);
  background: var(--color-surface);
}
.arch img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.4s var(--ease); }
ul.arch-row {
  display: flex;
  gap: clamp(0.75rem, 1.6vw, 1.5rem);
  overflow-x: auto;
  scroll-snap-type: x proximity;
  scroll-padding-inline: var(--gutter);
  padding-inline: var(--gutter);
  padding-bottom: var(--space-s);
  scrollbar-width: thin;
  scrollbar-color: var(--color-line) transparent;
}
.arch-row__item { flex: 0 0 clamp(12rem, 22vw, 16rem); scroll-snap-align: start; }
.arch-card .arch { aspect-ratio: 2 / 3; }
.arch-card:hover .arch img { transform: scale(1.03); }
.arch-card__name {
  margin-top: var(--space-s);
  font-family: var(--font-display);
  font-size: var(--step--1);
  font-weight: 400;
  text-transform: uppercase;
  letter-spacing: var(--track-label);
}
ul.film-row {
  display: flex;
  gap: clamp(0.75rem, 1.6vw, 1.5rem);
  overflow-x: auto;
  scroll-snap-type: x proximity;
  scroll-padding-inline: var(--gutter);
  padding-inline: var(--gutter);
  padding-bottom: var(--space-s);
  scrollbar-width: thin;
  scrollbar-color: rgba(255, 255, 255, 0.25) transparent;
}
.film-row__item { flex: 0 0 clamp(12rem, 21vw, 15rem); scroll-snap-align: start; }
.film { position: relative; margin: 0; background: #000; }
.film__video { width: 100%; aspect-ratio: 9 / 16; object-fit: cover; display: block; }
.film--wide .film__video { aspect-ratio: 16 / 9; }
.film__play {
  position: absolute; inset: 0; width: 100%;
  background: none; border: 0; cursor: pointer;
  display: grid; place-items: center;
  transition: opacity var(--duration-fast) var(--ease);
}
.film__play-icon {
  width: 3.25rem; height: 3.25rem;
  border: 1px solid rgba(255, 255, 255, 0.8);
  border-radius: 50%;
  display: grid; place-items: center;
  transition: background var(--duration-fast) var(--ease);
}
.film__play-icon::after {
  content: "";
  border-left: 0.6rem solid #fff;
  border-top: 0.4rem solid transparent;
  border-bottom: 0.4rem solid transparent;
  margin-left: 0.2rem;
}
.film__play:hover .film__play-icon { background: rgba(0, 0, 0, 0.4); }
.film[data-playing] .film__play { opacity: 0; pointer-events: none; }
.gallery { columns: 2; column-gap: clamp(0.75rem, 1.6vw, 1.5rem); }
.gallery__item { break-inside: avoid; margin-bottom: clamp(0.75rem, 1.6vw, 1.5rem); }
.gallery__item img { width: 100%; }
@media (min-width: 760px) { .gallery { columns: 3; } }
@media (min-width: 1200px) { .gallery { columns: 4; } }
.tenues-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: clamp(0.75rem, 1.6vw, 1.5rem); margin-top: var(--space-l); }
.tenues-grid figure { margin: 0; }
.tenues-grid img { width: 100%; }
@media (min-width: 900px) { .tenues-grid { grid-template-columns: repeat(4, 1fr); } }
ul.stats {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--space-m);
  border-top: 1px solid var(--color-line);
  padding-top: var(--space-l);
}
.stat { display: flex; flex-direction: column; gap: 0.3rem; }
.stat__value { font-family: var(--font-display); font-size: var(--step-2); line-height: 1; }
.stat__label {
  font-size: var(--step--2);
  letter-spacing: var(--track-label);
  text-transform: uppercase;
  color: var(--color-text-muted);
}
.closing { padding-block: var(--space-2xl); background: var(--color-surface); }
.closing__inner { max-width: 40rem; }
.closing__title {
  font-family: var(--font-display);
  font-size: var(--step-3);
  font-weight: 400;
  line-height: 1.14;
  text-wrap: balance;
}
.closing__lede { margin-top: var(--space-m); font-size: var(--step-1); color: var(--color-text-muted); max-width: 40ch; }
.link-underline {
  font-size: var(--step--2);
  font-weight: 700;
  letter-spacing: var(--track-label);
  text-transform: uppercase;
  padding-bottom: 0.35em;
  border-bottom: 1px solid var(--color-line);
  transition: border-color var(--duration-fast) var(--ease), color var(--duration-fast) var(--ease);
}
.link-underline:hover { border-color: var(--color-accent); color: var(--color-accent); }
.link-underline--on-dark { border-color: rgba(255, 255, 255, 0.3); }
.btn {
  display: inline-block;
  margin-top: var(--space-l);
  padding: 1em 2.4em;
  background: var(--color-text);
  color: var(--color-bg);
  border: 1px solid var(--color-text);
  font-size: var(--step--2);
  font-weight: 700;
  letter-spacing: var(--track-label);
  text-transform: uppercase;
  transition: background var(--duration-fast) var(--ease), color var(--duration-fast) var(--ease);
}
.btn:hover { background: transparent; color: var(--color-text); }
ul.contact-direct {
  margin-top: var(--space-l);
  display: flex; flex-wrap: wrap; gap: var(--space-s) var(--space-l);
  font-size: var(--step--1);
}
.contact-direct a { border-bottom: 1px solid var(--color-line); padding-bottom: 0.2em; transition: border-color var(--duration-fast) var(--ease); }
.contact-direct a:hover { border-color: var(--color-accent); }
.contact-direct--stack { flex-direction: column; gap: var(--space-xs); align-items: flex-start; }
.contact-page { display: grid; gap: var(--space-xl); }
@media (min-width: 900px) { .contact-page { grid-template-columns: minmax(0, 7fr) minmax(0, 4fr); gap: var(--space-2xl); } }
.contact-page__aside { font-size: var(--step--1); color: var(--color-text-muted); }
.contact-page__aside .h-small { color: var(--color-text); }
.contact-form__note { font-size: var(--step--2); color: var(--color-text-muted); margin-bottom: var(--space-m); }
.contact-form__grid { display: grid; gap: var(--space-m); }
@media (min-width: 620px) {
  .contact-form__grid { grid-template-columns: repeat(2, 1fr); }
  .field--full { grid-column: 1 / -1; }
}
.field { display: flex; flex-direction: column; gap: 0.4rem; }
.field label {
  font-size: var(--step--2);
  font-weight: 700;
  letter-spacing: var(--track-label);
  text-transform: uppercase;
}
.field input, .field textarea, .field select {
  width: 100%;
  padding: 0.8em 0;
  background: transparent;
  border: 0;
  border-bottom: 1px solid var(--color-line);
  font-size: var(--step-0);
  transition: border-color var(--duration-fast) var(--ease);
}
.field select { appearance: none; }
.field input:focus, .field textarea:focus, .field select:focus { border-bottom-color: var(--color-text); outline-offset: 4px; }
.field textarea { resize: vertical; min-height: 5.5rem; }
.field__help { font-size: var(--step--2); color: var(--color-text-muted); margin: 0; }
.field ::placeholder { color: var(--color-text-muted); opacity: .75; }
.contact-form__footer { margin-top: var(--space-m); display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-m); }
.contact-form button[type="submit"] {
  padding: 1em 2.4em;
  background: var(--color-text);
  color: var(--color-bg);
  border: 1px solid var(--color-text);
  font-size: var(--step--2);
  font-weight: 700;
  letter-spacing: var(--track-label);
  text-transform: uppercase;
  cursor: pointer;
  transition: background var(--duration-fast) var(--ease), color var(--duration-fast) var(--ease);
}
.contact-form button[type="submit"]:hover:not(:disabled) { background: transparent; color: var(--color-text); }
.contact-form button[type="submit"]:disabled { opacity: 0.5; cursor: wait; }
.contact-form__status { font-size: var(--step--1); margin: 0; }
.site-footer { background: var(--color-night); color: var(--color-on-night); padding-block: var(--space-xl) var(--space-l); }
.site-footer__inner { display: grid; gap: var(--space-l); }
.site-footer__brand img { height: auto; }
.site-footer__tagline { margin-top: var(--space-s); color: var(--color-night-muted); max-width: 24ch; font-size: var(--step--1); }
.site-footer__title {
  font-family: var(--font-body);
  font-size: var(--step--2);
  font-weight: 700;
  letter-spacing: var(--track-label);
  text-transform: uppercase;
  margin-bottom: var(--space-s);
  color: #fff;
}
.site-footer__title--spaced { margin-top: var(--space-l); }
.site-footer__col ul { display: flex; flex-direction: column; gap: 0.5rem; margin: 0; padding: 0; list-style: none; }
.site-footer__col a, .site-footer__col span { color: var(--color-night-muted); font-size: var(--step--1); transition: color var(--duration-fast) var(--ease); }
.site-footer__col a:hover { color: #fff; }
.site-footer__note { color: var(--color-night-muted); font-size: var(--step--1); margin-bottom: 0.5em; max-width: 24ch; }
.site-footer__client { display: inline-block; font-size: var(--step--1); color: #fff; padding-bottom: 0.2em; border-bottom: 1px solid var(--color-accent); }
.site-footer__legal {
  grid-column: 1 / -1;
  margin: var(--space-l) 0 0;
  padding-top: var(--space-m);
  border-top: 1px solid rgba(255, 255, 255, 0.12);
  display: flex; flex-wrap: wrap; justify-content: space-between; gap: var(--space-s);
  font-size: var(--step--2);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--color-night-muted);
}
@media (min-width: 760px) { .site-footer__inner { grid-template-columns: 2fr 1fr 1.4fr 1.2fr; gap: var(--space-xl); } }
@media (max-width: 899px) {
  .sticky-cta { display: flex; gap: 0.5rem; left: var(--gutter); right: var(--gutter); }
  .sticky-cta__link {
    flex: 1; text-align: center;
    padding: 1em 0.5em;
    background: var(--color-bg);
    border: 1px solid var(--color-text);
    color: var(--color-text);
    font-size: var(--step--2);
    font-weight: 700;
    letter-spacing: var(--track-label);
    text-transform: uppercase;
    box-shadow: 0 6px 22px rgba(23, 21, 15, 0.12);
  }
  .sticky-cta__link--primary { background: var(--color-text); color: var(--color-bg); }
  body { padding-bottom: 5.25rem; }
}
.lang-switch { display: flex; gap: 0.5rem; font-size: var(--step--2); letter-spacing: var(--track-label); text-transform: uppercase; }
.lang-switch [aria-current="true"] { color: var(--color-accent); }
.h-display {
  font-family: var(--font-display);
  font-size: var(--step-3);
  font-weight: 400;
  line-height: 1.04;
  letter-spacing: var(--track-display);
  text-transform: uppercase;
  text-wrap: balance;
}
.lede {
  margin-top: var(--space-m);
  font-size: var(--step-1);
  color: var(--color-text-muted);
  max-width: 40ch;
}
.wall {
  position: relative;
  height: 100svh;
  min-height: 32rem;
  display: flex;
  align-items: flex-end;
  overflow: hidden;
  isolation: isolate;
  background: var(--color-night);
  color: #fff;
}
.wall__films { position: absolute; inset: 0; z-index: -2; display: grid; grid-template-columns: 1fr; }
.wall__col { overflow: hidden; }
.wall__video { width: 100%; height: 100%; object-fit: cover; display: block; }
.wall__col:nth-child(n+2) { display: none; }
@media (min-width: 700px) {
  .wall__films { grid-template-columns: repeat(3, 1fr); }
  .wall__col:nth-child(-n+3) { display: block; }
}
@media (min-width: 1100px) {
  .wall__films { grid-template-columns: repeat(5, 1fr); }
  .wall__col:nth-child(n+2) { display: block; }
}
.wall::after {
  content: "";
  position: absolute; inset: auto 0 0; height: 78%;
  z-index: -1;
  background: linear-gradient(to top, rgba(10,9,6,.80) 0%, rgba(10,9,6,.42) 42%, rgba(10,9,6,0) 100%);
}
.wall__body { padding-bottom: clamp(4rem, 10vh, 8rem); }
.wall__kicker {
  font-size: var(--step--2);
  font-weight: 700;
  letter-spacing: var(--track-label);
  text-transform: uppercase;
  color: rgba(255,255,255,.8);
  margin-bottom: var(--space-m);
}
.wall__title {
  font-family: var(--font-display);
  font-size: var(--step-4);
  font-weight: 400;
  line-height: 1.02;
  letter-spacing: 0.01em;
  max-width: 15ch;
}
.wall__lede { margin-top: var(--space-m); font-size: var(--step-1); color: rgba(255,255,255,.88); max-width: 32ch; }
.wall__scroll {
  position: absolute; right: calc(var(--gutter) / 2); bottom: clamp(4rem, 10vh, 8rem);
  display: none;
  font-size: var(--step--2); font-weight: 700;
  letter-spacing: var(--track-label); text-transform: uppercase;
  color: rgba(255,255,255,.8);
  writing-mode: vertical-rl;
  white-space: nowrap;
}
@media (min-width: 900px) { .wall__scroll { display: block; } }
.js-motion .wall__col { opacity: 0; transform: translateY(2.5rem); }
.js-motion .wall__col.is-in { opacity: 1; transform: none; transition: opacity 1.1s var(--ease), transform 1.3s var(--ease); }
.rail__head { margin-bottom: var(--space-l); }
ul.rail__track {
  display: flex;
  gap: clamp(0.75rem, 1.6vw, 1.5rem);
  padding-inline: var(--gutter);
  overflow-x: auto;
  scroll-snap-type: x proximity;
  scroll-padding-inline: var(--gutter);
  padding-bottom: var(--space-s);
  scrollbar-width: thin;
  scrollbar-color: var(--color-line) transparent;
}
.rail__item { flex: 0 0 clamp(12rem, 22vw, 16.5rem); scroll-snap-align: start; }
.rail__item--end { display: flex; align-items: center; flex-basis: auto; padding-inline: var(--space-l) var(--gutter); }
.js-rail .rail { height: 320vh; }
.js-rail .rail__sticky {
  position: sticky;
  top: var(--header-h);
  height: calc(100svh - var(--header-h));
  display: flex;
  flex-direction: column;
  justify-content: center;
  overflow: hidden;
}
.js-rail ul.rail__track { overflow: visible; will-change: transform; scroll-snap-type: none; }
.band { overflow: hidden; }
.band img { width: 100%; height: clamp(16rem, 56vh, 34rem); object-fit: cover; display: block; }
.js-motion .band img { will-change: transform; }
.js-motion [data-scale] { overflow: hidden; }
.js-motion [data-scale] img { will-change: transform; }
.js-motion [data-lift] { opacity: 0; transform: translateY(1.2rem); }
.js-motion [data-lift].is-in { opacity: 1; transform: none; transition: opacity .9s var(--ease), transform .9s var(--ease); }
.js-motion [data-split] .w { display: inline-block; opacity: 0; transform: translateY(0.5em); }
.js-motion [data-split].is-in .w {
  opacity: 1; transform: none;
  transition: opacity .7s var(--ease), transform .8s var(--ease);
  transition-delay: calc(var(--i) * 45ms);
}
.films__head { margin-bottom: var(--space-l); }
.lightbox {
  position: fixed; inset: 0; z-index: 90;
  background: rgba(14,13,9,.94);
  display: grid; place-items: center;
  padding: clamp(1rem, 4vw, 3rem);
  opacity: 0; pointer-events: none;
  transition: opacity var(--duration-fast) var(--ease);
}
.lightbox[data-open] { opacity: 1; pointer-events: auto; }
.lightbox img { max-width: 100%; max-height: 86svh; width: auto; height: auto; object-fit: contain; }
.lightbox__close,
.lightbox__prev,
.lightbox__next {
  position: absolute;
  background: none; border: 0; cursor: pointer;
  color: #fff; font-size: var(--step--1); font-weight: 700;
  letter-spacing: var(--track-label); text-transform: uppercase;
  padding: var(--space-s);
}
.lightbox__close { top: var(--space-s); right: var(--space-s); }
.lightbox__prev { left: var(--space-xs); top: 50%; transform: translateY(-50%); font-size: var(--step-2); }
.lightbox__next { right: var(--space-xs); top: 50%; transform: translateY(-50%); font-size: var(--step-2); }
.gallery__item { cursor: zoom-in; }
@media (prefers-reduced-motion: reduce) {
  .js-motion .wall__col,
  .js-motion [data-lift],
  .js-motion [data-split] .w { opacity: 1 !important; transform: none !important; }
}
.h-display, .closing__title, .page-head__title, .wall__title, .plate__title { color: var(--color-warm); }
.plate--night .plate__title, .wall__title { color: #fff; }
.arch { border-radius: var(--arch); }
.band img, .gallery__item img, .tenues-grid img, .page-head__media img { border-radius: var(--radius-soft); }
.gallery__item img, .tenues-grid img { overflow: hidden; }
.rule-v { width: 1px; height: clamp(3rem, 8vh, 6rem); background: var(--color-line); margin: 0 auto var(--space-l); }
.deck { position: relative; }
.deck__sticky { padding-block: var(--space-2xl); }
.deck__head { text-align: center; margin-bottom: var(--space-xl); }
.deck__head .lede { margin-inline: auto; }
ul.deck__cards:not(.js-deck *) { }
ul.deck__cards {
  display: flex;
  gap: var(--space-m);
  padding-inline: var(--gutter);
  overflow-x: auto;
  scroll-snap-type: x proximity;
  scroll-padding-inline: var(--gutter);
  padding-bottom: var(--space-m);
}
.card {
  flex: 0 0 min(78vw, 20rem);
  scroll-snap-align: center;
  background: var(--card-sable);
  border-radius: var(--radius-soft);
  padding: var(--space-m) var(--space-m) var(--space-l);
  display: flex;
  flex-direction: column;
  gap: var(--space-s);
}
.card--blush { background: var(--card-blush); }
.card--lilas { background: var(--card-lilas); }
.card--sauge { background: var(--card-sauge); }
.card--sable { background: var(--card-sable); }
.card--ciel  { background: var(--card-ciel); }
.card__kicker {
  font-size: var(--step--2);
  font-weight: 500;
  letter-spacing: var(--track-label);
  text-transform: uppercase;
  color: var(--color-warm);
  opacity: .72;
}
.card__title {
  font-family: var(--font-display);
  font-size: var(--step-2);
  font-weight: 500;
  line-height: 1;
  letter-spacing: var(--track-display);
  text-transform: uppercase;
  color: var(--color-warm);
}
.card__media {
  margin: 0;
  border-radius: calc(var(--radius-soft) - 4px);
  overflow: hidden;
  flex: 1 1 auto;
  min-height: 0;
}
.card__media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.card__caption { font-size: var(--step--2); line-height: 1.5; color: var(--color-warm); opacity: .78; flex: none; }
.js-deck .deck { height: 300vh; }
.js-deck .deck__sticky {
  position: sticky; top: var(--header-h);
  height: calc(100svh - var(--header-h));
  display: flex; flex-direction: column; justify-content: center;
  overflow: hidden;
  padding-block: 0;
}
.js-deck ul.deck__cards {
  position: relative;
  display: block;
  overflow: visible;
  flex: none;
  height: min(30rem, calc(100svh - var(--header-h) - 16rem));
  padding: 0;
  margin-top: var(--space-m);
}
.js-deck .deck__head { flex: none; margin-bottom: 0; }
.js-deck .card {
  position: absolute;
  top: 50%; left: 50%;
  width: clamp(13.5rem, 17vw, 16.5rem);
  height: 100%;
  margin: 0;
  transform: translate(-50%, -50%) translateX(var(--x, 0px)) rotate(var(--r, 0deg)) scale(var(--s, 1));
  transition: box-shadow var(--duration-fast) var(--ease);
  box-shadow: 0 18px 50px rgba(42, 34, 29, .14);
  will-change: transform;
}
@media (prefers-reduced-motion: reduce) {
  .js-deck .deck { height: auto; }
  .js-deck .deck__sticky { position: static; height: auto; overflow: visible; }
  .js-deck ul.deck__cards { position: static; display: flex; height: auto; overflow-x: auto; }
  .js-deck .card { position: static; transform: none; width: auto; height: auto; }
}
html:not(.js-deck) .card__media { flex: none; }
html:not(.js-deck) .card__media img { aspect-ratio: 3 / 4; height: auto; }
.page-head { padding-top: var(--space-xl); padding-bottom: var(--space-2xl); overflow: hidden; }
.page-head__grid { display: grid; gap: var(--space-l); align-items: center; }
.page-head__kicker {
  font-size: var(--step--2); font-weight: 500;
  letter-spacing: var(--track-label); text-transform: uppercase;
  color: var(--color-text-muted); margin-bottom: var(--space-m);
}
.page-head__title {
  font-family: var(--font-display);
  font-size: var(--step-3);
  overflow-wrap: break-word;
  font-weight: 500;
  line-height: 1.02;
  letter-spacing: var(--track-display);
  text-transform: uppercase;
  color: var(--color-warm);
}
.page-head__rule { display: block; width: 3.5rem; height: 1px; background: var(--color-line); margin: var(--space-m) 0; }
.page-head__lede { font-size: var(--step-1); color: var(--color-text-muted); max-width: 34ch; }
.page-head__figure { margin: 0; overflow: hidden; border-radius: var(--arch); background: var(--color-surface); }
.page-head__figure img { width: 100%; height: clamp(18rem, 48vh, 30rem); object-fit: cover; display: block; }
@media (min-width: 900px) {
  .page-head__grid { grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); gap: var(--space-xl); }
  .page-head__figure { margin-right: calc(50% - 50vw); border-radius: var(--arch) 0 0 var(--arch); }
}
.band { position: relative; display: grid; align-items: end; min-height: clamp(26rem, 72vh, 42rem); }
.band__media { position: absolute; inset: 0; overflow: hidden; }
.band__media img { width: 100%; height: 100%; object-fit: cover; display: block; border-radius: 0; }
.band__body {
  position: relative;
  background: var(--color-bg);
  border-radius: var(--radius-soft);
  padding: var(--space-l);
  margin-block: var(--space-l);
  width: min(100% - 2 * var(--gutter), 34rem);
  margin-inline: var(--gutter) auto;
  box-shadow: 0 20px 60px rgba(42, 34, 29, .16);
}
.band__kicker {
  font-size: var(--step--2); font-weight: 500;
  letter-spacing: var(--track-label); text-transform: uppercase;
  color: var(--color-text-muted); margin-bottom: var(--space-s);
}
.band__title {
  font-family: var(--font-display); font-size: var(--step-2); font-weight: 500;
  line-height: 1.08; letter-spacing: var(--track-display); text-transform: uppercase;
  color: var(--color-warm);
}
ul.band__stats {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--space-s);
  margin-top: var(--space-l); padding-top: var(--space-m);
  border-top: 1px solid var(--color-line);
}
.band__stat { display: flex; flex-direction: column; gap: 0.2rem; }
.band__value { font-family: var(--font-display); font-size: var(--step-2); line-height: 1; color: var(--color-warm); }
.band__label {
  font-size: var(--step--2); letter-spacing: var(--track-label);
  text-transform: uppercase; color: var(--color-text-muted); line-height: 1.5;
  hyphens: none; overflow-wrap: normal;
}
@media (min-width: 900px) {
  .band__body { margin-inline: clamp(var(--gutter), 8vw, 9rem) auto; }
}
.closing { padding-block: var(--space-2xl); background: var(--color-surface); }
.closing__grid { display: grid; gap: var(--space-l); align-items: center; }
.closing__figure { max-width: 26rem; }
.closing__figure img { width: 100%; }
.closing__kicker {
  font-size: var(--step--2); font-weight: 500;
  letter-spacing: var(--track-label); text-transform: uppercase;
  color: var(--color-text-muted); margin-bottom: var(--space-s);
}
.closing__title { font-size: var(--step-3); letter-spacing: var(--track-display); }
.closing__lede { max-width: 42ch; }
ul.closing__points { margin-top: var(--space-l); display: grid; gap: 0; }
.closing__points li { border-top: 1px solid var(--color-line); padding: var(--space-s) 0; display: grid; gap: 0.15rem; }
.closing__points li:last-child { border-bottom: 1px solid var(--color-line); }
.closing__point-title {
  font-size: var(--step--2); font-weight: 500;
  letter-spacing: var(--track-label); text-transform: uppercase; color: var(--color-warm);
}
.closing__point-text { font-size: var(--step--1); color: var(--color-text-muted); }
.closing__actions { margin-top: var(--space-l); }
.closing__actions .btn { margin-top: 0; }
.closing__actions ul.contact-direct { margin-top: var(--space-m); }
@media (min-width: 900px) {
  .closing__grid { grid-template-columns: minmax(0, 4fr) minmax(0, 7fr); gap: var(--space-xl); }
}
.site-footer { padding-block: var(--space-2xl) var(--space-l); }
.site-footer__inner { display: grid; gap: var(--space-xl); }
.site-footer__brand { grid-column: 1 / -1; }
.site-footer__logo { display: block; width: clamp(14rem, 28vw, 26rem); max-width: 100%; height: auto; }
.site-footer__title {
  font-size: var(--step--2); font-weight: 500;
  letter-spacing: var(--track-label); text-transform: uppercase;
  color: #fff; margin-bottom: var(--space-m);
}
.site-footer__col ul { display: grid; gap: 0.75rem; margin: 0; padding: 0; list-style: none; }
.site-footer__col a, .site-footer__col span {
  font-size: var(--step--1); color: var(--color-night-muted);
  transition: color var(--duration-fast) var(--ease);
}
.site-footer__col a:hover { color: #fff; }
.site-footer__legal {
  grid-column: 1 / -1;
  margin: var(--space-l) 0 0; padding-top: var(--space-m);
  border-top: 1px solid rgba(255,255,255,.12);
  display: flex; flex-wrap: wrap; justify-content: space-between; gap: var(--space-s);
  font-size: var(--step--2); letter-spacing: 0.08em; text-transform: uppercase;
  color: var(--color-night-muted);
}
@media (min-width: 900px) {
  .site-footer__inner { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-l) var(--space-xl); align-items: start; }
}
.contact-section { padding-top: 0; }
.contact-page { display: grid; gap: var(--space-xl); }
@media (min-width: 980px) { .contact-page { grid-template-columns: minmax(0, 7fr) minmax(0, 4fr); gap: var(--space-2xl); } }
.info-card {
  border: 1px solid var(--color-line);
  border-radius: var(--radius-soft);
  padding: var(--space-m);
  margin-bottom: var(--space-m);
}
.info-card--tint { background: var(--color-surface); border-color: transparent; }
.info-card__title {
  font-size: var(--step--2); font-weight: 500;
  letter-spacing: var(--track-label); text-transform: uppercase;
  color: var(--color-warm); margin-bottom: var(--space-xs);
}
.info-card__title--spaced { margin-top: var(--space-m); }
.info-card__text { font-size: var(--step--1); color: var(--color-text-muted); line-height: 1.6; }
ul.info-card__links { display: grid; gap: 0.5rem; margin-top: var(--space-s); }
.info-card__links a {
  font-size: var(--step--1); color: var(--color-text);
  border-bottom: 1px solid var(--color-line); padding-bottom: 0.15em;
  transition: border-color var(--duration-fast) var(--ease);
}
.info-card__links a:hover { border-bottom-color: var(--color-accent); }
.contact-form__grid { gap: var(--space-m) var(--space-m); }
.field input, .field textarea, .field select { padding: 0.9em 0.2em; }
.field label { color: var(--color-warm); }
.gallery__item {
  overflow: hidden;
  border-radius: var(--radius-soft);
  opacity: 0;
  transform: translateY(1.5rem) scale(.985);
}
html:not(.js-motion) .gallery__item { opacity: 1; transform: none; }
.gallery__item.is-in {
  opacity: 1; transform: none;
  transition: opacity .85s var(--ease), transform 1s var(--ease);
  transition-delay: calc(var(--d, 0) * 70ms);
}
.gallery__item img { transition: transform 1.1s var(--ease); border-radius: 0; }
.gallery__item:hover img { transform: scale(1.05); }
@media (prefers-reduced-motion: reduce) {
  .gallery__item { opacity: 1 !important; transform: none !important; }
}
.dest-intro { padding-block: var(--space-2xl) var(--space-xl); }
.dest-intro__inner { max-width: 44rem; }
.dest-intro__title {
  font-family: var(--font-display); font-size: var(--step-4); font-weight: 500;
  line-height: 1.02; letter-spacing: var(--track-display); text-transform: uppercase;
  color: var(--color-warm);
}
.dest-stack { position: relative; }
.dest-panel {
  position: relative;
  min-height: 100svh;
  display: flex; align-items: center;
  overflow: hidden;
  isolation: isolate;
}
.dest-panel__media { position: absolute; inset: -8% 0; z-index: -2; }
.dest-panel__media img { width: 100%; height: 100%; object-fit: cover; display: block; border-radius: 0; }
.dest-panel { justify-content: center; }
.dest-panel::after {
  content: ""; position: absolute; inset: 0; z-index: -1;
  background:
    radial-gradient(ellipse 64% 46% at 50% 50%, rgba(14, 10, 8, .66) 0%, rgba(14, 10, 8, .34) 55%, rgba(14, 10, 8, 0) 100%),
    linear-gradient(rgba(14, 10, 8, .2), rgba(14, 10, 8, .2));
}
.dest-panel__body { display: flex; justify-content: center; text-align: center; }
.dest-panel__name {
  margin: 0;
  font-family: var(--font-display); font-weight: 400;
  font-size: clamp(3rem, 13vw, 12rem); line-height: 1;
  letter-spacing: .08em; text-transform: uppercase;
  padding-left: .08em;          
  color: #fff;
  text-shadow: 0 2px 28px rgba(0, 0, 0, .45), 0 0 2px rgba(0, 0, 0, .35);
}
.team-hero { position: relative; min-height: 92svh; display: flex; align-items: flex-end; overflow: hidden; isolation: isolate; color: #fff; }
.team-hero__media { position: absolute; inset: -6% 0; z-index: -2; }
.team-hero__media img { width: 100%; height: 100%; object-fit: cover; display: block; border-radius: 0; }
.team-hero::after {
  content: ""; position: absolute; inset: 0; z-index: -1;
  background: linear-gradient(to top, rgba(16,12,9,.86) 0%, rgba(16,12,9,.42) 48%, rgba(16,12,9,.1) 100%);
}
.team-hero__body { padding-bottom: clamp(7rem, 16vh, 11rem); }
.team-hero__kicker { font-size: var(--step--2); font-weight: 500; letter-spacing: var(--track-label); text-transform: uppercase; color: rgba(255,255,255,.78); margin-bottom: var(--space-s); }
.team-hero__title { font-family: var(--font-display); font-size: var(--step-4); font-weight: 500; line-height: 1; letter-spacing: var(--track-display); text-transform: uppercase; }
.team-hero__lede { margin-top: var(--space-m); font-size: var(--step-1); color: rgba(255,255,255,.88); max-width: 34ch; }
ul.team-hero__stats {
  position: absolute; inset: auto 0 0; z-index: 1;
  display: grid; grid-template-columns: repeat(3, 1fr);
  background: rgba(16,12,9,.55); backdrop-filter: blur(6px);
  border-top: 1px solid rgba(255,255,255,.18);
}
.team-hero__stats li { padding: var(--space-m) var(--gutter); display: grid; gap: 0.2rem; }
.team-hero__stats li + li { border-left: 1px solid rgba(255,255,255,.18); }
.team-hero__value { font-family: var(--font-display); font-size: var(--step-2); line-height: 1; }
.team-hero__label { font-size: var(--step--2); letter-spacing: var(--track-label); text-transform: uppercase; color: rgba(255,255,255,.72); }
ul.members__row {
  display: flex; gap: clamp(1rem, 2vw, 1.75rem);
  justify-content: center;
  overflow-x: auto; scroll-snap-type: x proximity;
  padding-inline: var(--gutter); padding-bottom: var(--space-m);
  scroll-padding-inline: var(--gutter);
}
.member-card { flex: 0 0 min(84vw, 19rem); scroll-snap-align: start; display: flex; flex-direction: column; }
.member-card__media {
  margin: 0 0 var(--space-m); overflow: hidden;
  border-radius: 999px 999px 999px 999px / 22% 22% 22% 22%;
  background: var(--color-surface);
}
.member-card__media img { width: 100%; aspect-ratio: 3/4; object-fit: cover; display: block; transition: transform 1.1s var(--ease); }
.member-card:hover .member-card__media img { transform: scale(1.04); }
.member-card { text-align: center; }
.member-card .prose { margin-inline: auto; }
.member-card__role { font-size: var(--step--2); font-weight: 500; letter-spacing: var(--track-label); text-transform: uppercase; color: var(--color-text-muted); }
.member-card__name { font-family: var(--font-display); font-size: var(--step-2); font-weight: 500; letter-spacing: var(--track-display); text-transform: uppercase; color: var(--color-warm); margin-top: 0.15em; }
.member-card__years { font-size: var(--step--2); letter-spacing: var(--track-label); text-transform: uppercase; color: var(--color-accent); margin: 0.3em 0 var(--space-s); }
.member-card__bio { font-size: var(--step--1); }
ul.tenues-mosaic {
  display: grid; grid-template-columns: repeat(2, 1fr);
  gap: clamp(0.6rem, 1.4vw, 1.2rem); margin-top: var(--space-l);
}
.tenues-mosaic img { width: 100%; aspect-ratio: 4/5; object-fit: cover; display: block; border-radius: var(--radius-soft); }
@media (min-width: 760px) { ul.tenues-mosaic { grid-template-columns: repeat(4, 1fr); } }
.contact-hero { position: relative; padding-block: var(--space-2xl); background: var(--color-rose-pale); }
.contact-hero__grid { display: grid; gap: var(--space-xl); align-items: start; }
.contact-hero__kicker { font-size: var(--step--2); font-weight: 500; letter-spacing: var(--track-label); text-transform: uppercase; color: var(--color-text-muted); margin-bottom: var(--space-s); }
.contact-hero__title { font-family: var(--font-display); font-size: var(--step-4); font-weight: 500; line-height: 1; letter-spacing: var(--track-display); text-transform: uppercase; color: var(--color-warm); }
.contact-hero__lede { margin-top: var(--space-m); font-size: var(--step-1); color: var(--color-text); max-width: 34ch; }
ul.contact-hero__links { margin-top: var(--space-l); display: grid; gap: 0.6rem; }
.contact-hero__links a { color: var(--color-text); font-size: var(--step-0); border-bottom: 1px solid rgba(108, 78, 63, .35); padding-bottom: 0.2em; }
.contact-hero__links a:hover { border-bottom-color: var(--color-accent); }
.form-card {
  background: var(--color-bg);
  border-radius: var(--radius-soft);
  padding: clamp(1.5rem, 3vw, 2.75rem);
  box-shadow: 0 30px 80px rgba(30, 22, 16, .22);
}
.form-card__title { font-family: var(--font-display); font-size: var(--step-2); font-weight: 500; letter-spacing: var(--track-display); text-transform: uppercase; color: var(--color-warm); }
.form-card__intro { margin-top: var(--space-s); font-size: var(--step--1); color: var(--color-text-muted); }
.form-card .contact-form { margin-top: var(--space-m); }
.form-card .field input, .form-card .field textarea, .form-card .field select {
  background: var(--color-surface); border: 1px solid transparent;
  border-radius: calc(var(--radius-soft) - 6px); padding: 0.85em 0.9em;
}
.form-card .field input:focus, .form-card .field textarea:focus, .form-card .field select:focus {
  border-color: var(--color-warm); background: var(--color-bg); outline-offset: 2px;
}
.form-card button[type="submit"] { width: 100%; }
ul.info-row { display: grid; gap: var(--space-l); }
.info-row li { border-top: 1px solid var(--color-line); padding-top: var(--space-m); }
@media (min-width: 980px) {
  .contact-hero__grid { grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); gap: var(--space-2xl); }
  .contact-hero__intro { padding-top: var(--space-l); }
  ul.info-row { grid-template-columns: repeat(4, 1fr); }
}
.nom { padding-block: var(--space-2xl); overflow: hidden; }
.nom__stage {
  position: relative;
  isolation: isolate;                 
  aspect-ratio: 16 / 7;
}
@media (max-width: 699px) { .nom__stage { aspect-ratio: 4 / 3; } }
.nom__video {
  position: absolute; inset: 0; width: 100%; height: 100%;
  object-fit: cover; display: block;
  filter: brightness(.62) saturate(1.1);
}
.nom__mot {
  position: absolute; inset: 0;
  margin: 0;
  display: grid; place-items: center;
  background: var(--color-bg);
  color: #000;
  mix-blend-mode: lighten;
  font-family: var(--font-display);
  font-size: clamp(3rem, 15vw, 13rem);
  font-weight: 600;
  line-height: 0.95;
  letter-spacing: 0.01em;
  text-transform: uppercase;
  text-align: center;
}
@supports not (mix-blend-mode: lighten) {
  .nom__video { display: none; }
  .nom__mot { background: none; color: var(--color-warm); }
}
.nom__lede {
  margin-top: var(--space-l);
  text-align: center;
  font-size: var(--step-1);
  color: var(--color-text-muted);
  max-width: 40ch; margin-inline: auto;
}
.ruban { padding-block: var(--space-xl) var(--space-2xl); }
.ruban__stage { width: 100%; }
.ruban__svg { width: 100%; height: auto; display: block; }
.ruban__filet {
  fill: none; stroke: var(--color-warm);
  stroke-width: 5; opacity: .32;
}
.ruban__filet--amorce { stroke-width: 3; opacity: .22; }
@media (max-width: 700px) {
  .ruban { padding-block: var(--space-l) var(--space-xl); }
  .ruban__filet { stroke-width: 7; opacity: .4; }
}
.ruban__lede {
  margin-top: var(--space-l); text-align: center;
  font-size: var(--step-1); color: var(--color-text-muted);
  max-width: 46ch; margin-inline: auto;
}
.h-display, .closing__title, .page-head__title, .wall__title, .plate__title { color: var(--color-warm); }
.plate--night .plate__title, .wall__title { color: #fff; }
.arch { border-radius: var(--arch); }
.band img, .gallery__item img, .tenues-grid img, .page-head__media img { border-radius: var(--radius-soft); }
.gallery__item img, .tenues-grid img { overflow: hidden; }
.rule-v { width: 1px; height: clamp(3rem, 8vh, 6rem); background: var(--color-line); margin: 0 auto var(--space-l); }
.deck { position: relative; }
.deck__sticky { padding-block: var(--space-2xl); }
.deck__head { text-align: center; margin-bottom: var(--space-xl); }
.deck__head .lede { margin-inline: auto; }
ul.deck__cards:not(.js-deck *) { }
ul.deck__cards {
  display: flex;
  gap: var(--space-m);
  padding-inline: var(--gutter);
  overflow-x: auto;
  scroll-snap-type: x proximity;
  scroll-padding-inline: var(--gutter);
  padding-bottom: var(--space-m);
}
.card {
  flex: 0 0 min(78vw, 20rem);
  scroll-snap-align: center;
  background: var(--card-sable);
  border-radius: var(--radius-soft);
  padding: var(--space-m) var(--space-m) var(--space-l);
  display: flex;
  flex-direction: column;
  gap: var(--space-s);
}
.card--blush { background: var(--card-blush); }
.card--lilas { background: var(--card-lilas); }
.card--sauge { background: var(--card-sauge); }
.card--sable { background: var(--card-sable); }
.card--ciel  { background: var(--card-ciel); }
.card__kicker {
  font-size: var(--step--2);
  font-weight: 500;
  letter-spacing: var(--track-label);
  text-transform: uppercase;
  color: var(--color-warm);
  opacity: .72;
}
.card__title {
  font-family: var(--font-display);
  font-size: var(--step-2);
  font-weight: 500;
  line-height: 1;
  letter-spacing: var(--track-display);
  text-transform: uppercase;
  color: var(--color-warm);
}
.card__media {
  margin: 0;
  border-radius: calc(var(--radius-soft) - 4px);
  overflow: hidden;
  flex: 1 1 auto;
  min-height: 0;
}
.card__media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.card__caption { font-size: var(--step--2); line-height: 1.5; color: var(--color-warm); opacity: .78; flex: none; }
.js-deck .deck { height: 300vh; }
.js-deck .deck__sticky {
  position: sticky; top: var(--header-h);
  height: calc(100svh - var(--header-h));
  display: flex; flex-direction: column; justify-content: center;
  overflow: hidden;
  padding-block: 0;
}
.js-deck ul.deck__cards {
  position: relative;
  display: block;
  overflow: visible;
  flex: none;
  height: min(30rem, calc(100svh - var(--header-h) - 16rem));
  padding: 0;
  margin-top: var(--space-m);
}
.js-deck .deck__head { flex: none; margin-bottom: 0; }
.js-deck .card {
  position: absolute;
  top: 50%; left: 50%;
  width: clamp(13.5rem, 17vw, 16.5rem);
  height: 100%;
  margin: 0;
  transform: translate(-50%, -50%) translateX(var(--x, 0px)) rotate(var(--r, 0deg)) scale(var(--s, 1));
  transition: box-shadow var(--duration-fast) var(--ease);
  box-shadow: 0 18px 50px rgba(42, 34, 29, .14);
  will-change: transform;
}
@media (prefers-reduced-motion: reduce) {
  .js-deck .deck { height: auto; }
  .js-deck .deck__sticky { position: static; height: auto; overflow: visible; }
  .js-deck ul.deck__cards { position: static; display: flex; height: auto; overflow-x: auto; }
  .js-deck .card { position: static; transform: none; width: auto; height: auto; }
}
html:not(.js-deck) .card__media { flex: none; }
html:not(.js-deck) .card__media img { aspect-ratio: 3 / 4; height: auto; }
.page-head { padding-top: var(--space-xl); padding-bottom: var(--space-2xl); overflow: hidden; }
.page-head__grid { display: grid; gap: var(--space-l); align-items: center; }
.page-head__kicker {
  font-size: var(--step--2); font-weight: 500;
  letter-spacing: var(--track-label); text-transform: uppercase;
  color: var(--color-text-muted); margin-bottom: var(--space-m);
}
.page-head__title {
  font-family: var(--font-display);
  font-size: var(--step-3);
  overflow-wrap: break-word;
  font-weight: 500;
  line-height: 1.02;
  letter-spacing: var(--track-display);
  text-transform: uppercase;
  color: var(--color-warm);
}
.page-head__rule { display: block; width: 3.5rem; height: 1px; background: var(--color-line); margin: var(--space-m) 0; }
.page-head__lede { font-size: var(--step-1); color: var(--color-text-muted); max-width: 34ch; }
.page-head__figure { margin: 0; overflow: hidden; border-radius: var(--arch); background: var(--color-surface); }
.page-head__figure img { width: 100%; height: clamp(18rem, 48vh, 30rem); object-fit: cover; display: block; }
@media (min-width: 900px) {
  .page-head__grid { grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); gap: var(--space-xl); }
  .page-head__figure { margin-right: calc(50% - 50vw); border-radius: var(--arch) 0 0 var(--arch); }
}
.band { position: relative; display: grid; align-items: end; min-height: clamp(26rem, 72vh, 42rem); }
.band__media { position: absolute; inset: 0; overflow: hidden; }
.band__media img { width: 100%; height: 100%; object-fit: cover; display: block; border-radius: 0; }
.band__body {
  position: relative;
  background: var(--color-bg);
  border-radius: var(--radius-soft);
  padding: var(--space-l);
  margin-block: var(--space-l);
  width: min(100% - 2 * var(--gutter), 34rem);
  margin-inline: var(--gutter) auto;
  box-shadow: 0 20px 60px rgba(42, 34, 29, .16);
}
.band__kicker {
  font-size: var(--step--2); font-weight: 500;
  letter-spacing: var(--track-label); text-transform: uppercase;
  color: var(--color-text-muted); margin-bottom: var(--space-s);
}
.band__title {
  font-family: var(--font-display); font-size: var(--step-2); font-weight: 500;
  line-height: 1.08; letter-spacing: var(--track-display); text-transform: uppercase;
  color: var(--color-warm);
}
ul.band__stats {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--space-s);
  margin-top: var(--space-l); padding-top: var(--space-m);
  border-top: 1px solid var(--color-line);
}
.band__stat { display: flex; flex-direction: column; gap: 0.2rem; }
.band__value { font-family: var(--font-display); font-size: var(--step-2); line-height: 1; color: var(--color-warm); }
.band__label {
  font-size: var(--step--2); letter-spacing: var(--track-label);
  text-transform: uppercase; color: var(--color-text-muted); line-height: 1.5;
  hyphens: none; overflow-wrap: normal;
}
@media (min-width: 900px) {
  .band__body { margin-inline: clamp(var(--gutter), 8vw, 9rem) auto; }
}
.closing { padding-block: var(--space-2xl); background: var(--color-surface); }
.closing__grid { display: grid; gap: var(--space-l); align-items: center; }
.closing__figure { max-width: 26rem; }
.closing__figure img { width: 100%; }
.closing__kicker {
  font-size: var(--step--2); font-weight: 500;
  letter-spacing: var(--track-label); text-transform: uppercase;
  color: var(--color-text-muted); margin-bottom: var(--space-s);
}
.closing__title { font-size: var(--step-3); letter-spacing: var(--track-display); }
.closing__lede { max-width: 42ch; }
ul.closing__points { margin-top: var(--space-l); display: grid; gap: 0; }
.closing__points li { border-top: 1px solid var(--color-line); padding: var(--space-s) 0; display: grid; gap: 0.15rem; }
.closing__points li:last-child { border-bottom: 1px solid var(--color-line); }
.closing__point-title {
  font-size: var(--step--2); font-weight: 500;
  letter-spacing: var(--track-label); text-transform: uppercase; color: var(--color-warm);
}
.closing__point-text { font-size: var(--step--1); color: var(--color-text-muted); }
.closing__actions { margin-top: var(--space-l); }
.closing__actions .btn { margin-top: 0; }
.closing__actions ul.contact-direct { margin-top: var(--space-m); }
@media (min-width: 900px) {
  .closing__grid { grid-template-columns: minmax(0, 4fr) minmax(0, 7fr); gap: var(--space-xl); }
}
.site-footer { padding-block: var(--space-2xl) var(--space-l); }
.site-footer__inner { display: grid; gap: var(--space-xl); }
.site-footer__brand { grid-column: 1 / -1; }
.site-footer__logo { display: block; width: clamp(14rem, 28vw, 26rem); max-width: 100%; height: auto; }
.site-footer__title {
  font-size: var(--step--2); font-weight: 500;
  letter-spacing: var(--track-label); text-transform: uppercase;
  color: #fff; margin-bottom: var(--space-m);
}
.site-footer__col ul { display: grid; gap: 0.75rem; margin: 0; padding: 0; list-style: none; }
.site-footer__col a, .site-footer__col span {
  font-size: var(--step--1); color: var(--color-night-muted);
  transition: color var(--duration-fast) var(--ease);
}
.site-footer__col a:hover { color: #fff; }
.site-footer__legal {
  grid-column: 1 / -1;
  margin: var(--space-l) 0 0; padding-top: var(--space-m);
  border-top: 1px solid rgba(255,255,255,.12);
  display: flex; flex-wrap: wrap; justify-content: space-between; gap: var(--space-s);
  font-size: var(--step--2); letter-spacing: 0.08em; text-transform: uppercase;
  color: var(--color-night-muted);
}
@media (min-width: 900px) {
  .site-footer__inner { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-l) var(--space-xl); align-items: start; }
}
.contact-section { padding-top: 0; }
.contact-page { display: grid; gap: var(--space-xl); }
@media (min-width: 980px) { .contact-page { grid-template-columns: minmax(0, 7fr) minmax(0, 4fr); gap: var(--space-2xl); } }
.info-card {
  border: 1px solid var(--color-line);
  border-radius: var(--radius-soft);
  padding: var(--space-m);
  margin-bottom: var(--space-m);
}
.info-card--tint { background: var(--color-surface); border-color: transparent; }
.info-card__title {
  font-size: var(--step--2); font-weight: 500;
  letter-spacing: var(--track-label); text-transform: uppercase;
  color: var(--color-warm); margin-bottom: var(--space-xs);
}
.info-card__title--spaced { margin-top: var(--space-m); }
.info-card__text { font-size: var(--step--1); color: var(--color-text-muted); line-height: 1.6; }
ul.info-card__links { display: grid; gap: 0.5rem; margin-top: var(--space-s); }
.info-card__links a {
  font-size: var(--step--1); color: var(--color-text);
  border-bottom: 1px solid var(--color-line); padding-bottom: 0.15em;
  transition: border-color var(--duration-fast) var(--ease);
}
.info-card__links a:hover { border-bottom-color: var(--color-accent); }
.contact-form__grid { gap: var(--space-m) var(--space-m); }
.field input, .field textarea, .field select { padding: 0.9em 0.2em; }
.field label { color: var(--color-warm); }
.gallery__item {
  overflow: hidden;
  border-radius: var(--radius-soft);
  opacity: 0;
  transform: translateY(1.5rem) scale(.985);
}
html:not(.js-motion) .gallery__item { opacity: 1; transform: none; }
.gallery__item.is-in {
  opacity: 1; transform: none;
  transition: opacity .85s var(--ease), transform 1s var(--ease);
  transition-delay: calc(var(--d, 0) * 70ms);
}
.gallery__item img { transition: transform 1.1s var(--ease); border-radius: 0; }
.gallery__item:hover img { transform: scale(1.05); }
@media (prefers-reduced-motion: reduce) {
  .gallery__item { opacity: 1 !important; transform: none !important; }
}
.dest-intro { padding-block: var(--space-2xl) var(--space-xl); }
.dest-intro__inner { max-width: 44rem; }
.dest-intro__title {
  font-family: var(--font-display); font-size: var(--step-4); font-weight: 500;
  line-height: 1.02; letter-spacing: var(--track-display); text-transform: uppercase;
  color: var(--color-warm);
}
.dest-nav { display: none; }
@media (min-width: 1100px) {
  .dest-nav {
    display: block; position: fixed; z-index: 40;
    left: var(--gutter); top: 50%; transform: translateY(-50%);
  }
  .dest-nav ol { display: grid; gap: 0.95rem; margin: 0; padding: 0; list-style: none; }
  .dest-nav a {
    display: flex; align-items: baseline; gap: 0.75em;
    font-size: var(--step--1); font-weight: 500;
    letter-spacing: var(--track-label); text-transform: uppercase;
    transition: color var(--duration-fast) var(--ease),
                opacity var(--duration-fast) var(--ease);
  }
  .dest-nav a span {
    font-family: var(--font-display); font-style: italic; font-weight: 400;
    font-size: var(--step-0); letter-spacing: 0; text-transform: none;
    opacity: .75; min-width: 1.6em;
  }
  .dest-nav a::after {
    content: ""; width: 0; height: 1px; margin-left: 0.1em;
    background: currentColor;
    transition: width var(--duration) var(--ease);
  }
  .dest-nav a[aria-current="true"]::after { width: 1.6rem; }
  .dest-nav { color: var(--color-text-muted); }
  .dest-nav a { color: var(--color-text-muted); opacity: .75; }
  .dest-nav a:hover,
  .dest-nav a[aria-current="true"] { color: var(--color-accent); opacity: 1; }
  .dest-nav { position: fixed; }
  .dest-nav[data-fond="sombre"]::before {
    content: ""; position: absolute; z-index: -1;
    inset: -2.5rem -9rem -2.5rem -4rem;
    background: radial-gradient(ellipse at 28% 50%,
                rgba(16,11,8,.78) 0%, rgba(16,11,8,.52) 42%, rgba(16,11,8,0) 76%);
    pointer-events: none;
  }
  .dest-nav[data-fond="sombre"] a {
    color: rgba(255,255,255,.82); opacity: 1;
    text-shadow: 0 1px 6px rgba(16,11,8,.7);
  }
  .dest-nav[data-fond="sombre"] a:hover,
  .dest-nav[data-fond="sombre"] a[aria-current="true"] { color: #fff; }
  .dest-nav[data-fond="sombre"] a[aria-current="true"] span { color: var(--color-accent); opacity: 1; }
}
.dest-stack { position: relative; }
.dest-panel {
  position: relative;
  min-height: 100svh;
  display: flex; align-items: center;
  overflow: hidden;
  isolation: isolate;
}
.dest-panel__media { position: absolute; inset: -8% 0; z-index: -2; }
.dest-panel__media img { width: 100%; height: 100%; object-fit: cover; display: block; border-radius: 0; }
.dest-panel { justify-content: center; }
.dest-panel::after {
  content: ""; position: absolute; inset: 0; z-index: -1;
  background:
    radial-gradient(ellipse 64% 46% at 50% 50%, rgba(14, 10, 8, .66) 0%, rgba(14, 10, 8, .34) 55%, rgba(14, 10, 8, 0) 100%),
    linear-gradient(rgba(14, 10, 8, .2), rgba(14, 10, 8, .2));
}
.dest-panel__body { display: flex; justify-content: center; text-align: center; }
.dest-panel__name {
  margin: 0;
  font-family: var(--font-display); font-weight: 400;
  font-size: clamp(3rem, 13vw, 12rem); line-height: 1;
  letter-spacing: .08em; text-transform: uppercase;
  padding-left: .08em;          
  color: #fff;
  text-shadow: 0 2px 28px rgba(0, 0, 0, .45), 0 0 2px rgba(0, 0, 0, .35);
}
.team-hero { position: relative; min-height: 92svh; display: flex; align-items: flex-end; overflow: hidden; isolation: isolate; color: #fff; }
.team-hero__media { position: absolute; inset: -6% 0; z-index: -2; }
.team-hero__media img { width: 100%; height: 100%; object-fit: cover; display: block; border-radius: 0; }
.team-hero::after {
  content: ""; position: absolute; inset: 0; z-index: -1;
  background: linear-gradient(to top, rgba(16,12,9,.86) 0%, rgba(16,12,9,.42) 48%, rgba(16,12,9,.1) 100%);
}
.team-hero__body { padding-bottom: clamp(7rem, 16vh, 11rem); }
.team-hero__kicker { font-size: var(--step--2); font-weight: 500; letter-spacing: var(--track-label); text-transform: uppercase; color: rgba(255,255,255,.78); margin-bottom: var(--space-s); }
.team-hero__title { font-family: var(--font-display); font-size: var(--step-4); font-weight: 500; line-height: 1; letter-spacing: var(--track-display); text-transform: uppercase; }
.team-hero__lede { margin-top: var(--space-m); font-size: var(--step-1); color: rgba(255,255,255,.88); max-width: 34ch; }
ul.team-hero__stats {
  position: absolute; inset: auto 0 0; z-index: 1;
  display: grid; grid-template-columns: repeat(3, 1fr);
  background: rgba(16,12,9,.55); backdrop-filter: blur(6px);
  border-top: 1px solid rgba(255,255,255,.18);
}
.team-hero__stats li { padding: var(--space-m) var(--gutter); display: grid; gap: 0.2rem; }
.team-hero__stats li + li { border-left: 1px solid rgba(255,255,255,.18); }
.team-hero__value { font-family: var(--font-display); font-size: var(--step-2); line-height: 1; }
.team-hero__label { font-size: var(--step--2); letter-spacing: var(--track-label); text-transform: uppercase; color: rgba(255,255,255,.72); }
ul.members__row {
  display: flex; gap: clamp(1rem, 2vw, 1.75rem);
  justify-content: center;
  overflow-x: auto; scroll-snap-type: x proximity;
  padding-inline: var(--gutter); padding-bottom: var(--space-m);
  scroll-padding-inline: var(--gutter);
}
.member-card { flex: 0 0 min(84vw, 19rem); scroll-snap-align: start; display: flex; flex-direction: column; }
.member-card__media {
  margin: 0 0 var(--space-m); overflow: hidden;
  border-radius: 999px 999px 999px 999px / 22% 22% 22% 22%;
  background: var(--color-surface);
}
.member-card__media img { width: 100%; aspect-ratio: 3/4; object-fit: cover; display: block; transition: transform 1.1s var(--ease); }
.member-card:hover .member-card__media img { transform: scale(1.04); }
.member-card { text-align: center; }
.member-card .prose { margin-inline: auto; }
.member-card__role { font-size: var(--step--2); font-weight: 500; letter-spacing: var(--track-label); text-transform: uppercase; color: var(--color-text-muted); }
.member-card__name { font-family: var(--font-display); font-size: var(--step-2); font-weight: 500; letter-spacing: var(--track-display); text-transform: uppercase; color: var(--color-warm); margin-top: 0.15em; }
.member-card__years { font-size: var(--step--2); letter-spacing: var(--track-label); text-transform: uppercase; color: var(--color-accent); margin: 0.3em 0 var(--space-s); }
.member-card__bio { font-size: var(--step--1); }
ul.tenues-mosaic {
  display: grid; grid-template-columns: repeat(2, 1fr);
  gap: clamp(0.6rem, 1.4vw, 1.2rem); margin-top: var(--space-l);
}
.tenues-mosaic img { width: 100%; aspect-ratio: 4/5; object-fit: cover; display: block; border-radius: var(--radius-soft); }
@media (min-width: 760px) { ul.tenues-mosaic { grid-template-columns: repeat(4, 1fr); } }
.contact-hero { position: relative; padding-block: var(--space-2xl); background: var(--color-rose-pale); }
.contact-hero__grid { display: grid; gap: var(--space-xl); align-items: start; }
.contact-hero__kicker { font-size: var(--step--2); font-weight: 500; letter-spacing: var(--track-label); text-transform: uppercase; color: var(--color-text-muted); margin-bottom: var(--space-s); }
.contact-hero__title { font-family: var(--font-display); font-size: var(--step-4); font-weight: 500; line-height: 1; letter-spacing: var(--track-display); text-transform: uppercase; color: var(--color-warm); }
.contact-hero__lede { margin-top: var(--space-m); font-size: var(--step-1); color: var(--color-text); max-width: 34ch; }
ul.contact-hero__links { margin-top: var(--space-l); display: grid; gap: 0.6rem; }
.contact-hero__links a { color: var(--color-text); font-size: var(--step-0); border-bottom: 1px solid rgba(108, 78, 63, .35); padding-bottom: 0.2em; }
.contact-hero__links a:hover { border-bottom-color: var(--color-accent); }
.form-card {
  background: var(--color-bg);
  border-radius: var(--radius-soft);
  padding: clamp(1.5rem, 3vw, 2.75rem);
  box-shadow: 0 30px 80px rgba(30, 22, 16, .22);
}
.form-card__title { font-family: var(--font-display); font-size: var(--step-2); font-weight: 500; letter-spacing: var(--track-display); text-transform: uppercase; color: var(--color-warm); }
.form-card__intro { margin-top: var(--space-s); font-size: var(--step--1); color: var(--color-text-muted); }
.form-card .contact-form { margin-top: var(--space-m); }
.form-card .field input, .form-card .field textarea, .form-card .field select {
  background: var(--color-surface); border: 1px solid transparent;
  border-radius: calc(var(--radius-soft) - 6px); padding: 0.85em 0.9em;
}
.form-card .field input:focus, .form-card .field textarea:focus, .form-card .field select:focus {
  border-color: var(--color-warm); background: var(--color-bg); outline-offset: 2px;
}
.form-card button[type="submit"] { width: 100%; }
ul.info-row { display: grid; gap: var(--space-l); }
.info-row li { border-top: 1px solid var(--color-line); padding-top: var(--space-m); }
@media (min-width: 980px) {
  .contact-hero__grid { grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); gap: var(--space-2xl); }
  .contact-hero__intro { padding-top: var(--space-l); }
  ul.info-row { grid-template-columns: repeat(4, 1fr); }
}
.nom { padding-block: var(--space-2xl); overflow: hidden; }
.nom__stage {
  position: relative;
  isolation: isolate;                 
  aspect-ratio: 16 / 7;
}
@media (max-width: 699px) { .nom__stage { aspect-ratio: 4 / 3; } }
.nom__video {
  position: absolute; inset: 0; width: 100%; height: 100%;
  object-fit: cover; display: block;
  filter: brightness(.62) saturate(1.1);
}
.nom__mot {
  position: absolute; inset: 0;
  margin: 0;
  display: grid; place-items: center;
  background: var(--color-bg);
  color: #000;
  mix-blend-mode: lighten;
  font-family: var(--font-display);
  font-size: clamp(3rem, 15vw, 13rem);
  font-weight: 600;
  line-height: 0.95;
  letter-spacing: 0.01em;
  text-transform: uppercase;
  text-align: center;
}
@supports not (mix-blend-mode: lighten) {
  .nom__video { display: none; }
  .nom__mot { background: none; color: var(--color-warm); }
}
.nom__lede {
  margin-top: var(--space-l);
  text-align: center;
  font-size: var(--step-1);
  color: var(--color-text-muted);
  max-width: 40ch; margin-inline: auto;
}
body.page-realisations { background: var(--color-cine); color: var(--color-cine-texte); }
.cine { background: var(--color-cine); color: var(--color-cine-texte); overflow-x: clip; }
.page-realisations .site-header { background: var(--color-cine); border-bottom-color: rgba(243, 237, 230, .08); }
.page-realisations .site-header__logo-dark { display: none; }
.page-realisations .site-header__logo-light { display: block; }
.page-realisations .site-nav__list a { color: rgba(243, 237, 230, .86); }
.page-realisations .site-nav__list a[aria-current="page"] { color: var(--color-champagne); }
.page-realisations .site-nav__client { color: rgba(243, 237, 230, .55); }
.page-realisations .site-nav__client:hover { color: var(--color-cine-texte); }
.page-realisations .site-nav__cta { border-color: rgba(243, 237, 230, .6); color: var(--color-cine-texte); }
.page-realisations .site-nav__cta:hover { background: var(--color-cine-texte); color: var(--color-cine); }
.page-realisations .site-header__toggle-bars,
.page-realisations .site-header__toggle-bars::before,
.page-realisations .site-header__toggle-bars::after { background: var(--color-cine-texte); }
.page-realisations .site-header__toggle[aria-expanded="true"] .site-header__toggle-bars { background: transparent; }
@media (max-width: 899px) {
  .page-realisations .site-nav[data-open] { background: var(--color-cine); }
}
.page-realisations .site-footer { background: var(--color-cine); border-top: 1px solid rgba(243, 237, 230, .06); }
body.page-realisations::after {
  content: ""; position: fixed; inset: -50%; z-index: 58; pointer-events: none;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='220' height='220'><filter id='g'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 1  0 0 0 0 1  0 0 0 0 1  .5 .5 .5 0 -.55'/></filter><rect width='100%' height='100%' filter='url(%23g)'/></svg>");
  opacity: .09;
  animation: cine-grain 1.1s steps(6) infinite;
}
@keyframes cine-grain {
  0%, 100% { transform: translate(0, 0); }
  17% { transform: translate(-4%, 3%); }
  33% { transform: translate(3%, -5%); }
  50% { transform: translate(-6%, -2%); }
  67% { transform: translate(5%, 4%); }
  83% { transform: translate(-2%, 6%); }
}
.cine-label {
  margin: 0;
  font-size: var(--step--2); font-weight: 500;
  letter-spacing: .32em; text-transform: uppercase;
  color: var(--color-champagne);
}
.cine img[data-zoom] { cursor: zoom-in; }
.cine-legende {
  display: flex; gap: .9rem; align-items: baseline;
  margin-top: .9rem;
  font-size: var(--step--1); line-height: 1.45;
  color: var(--color-cine-muted);
}
.cine-legende__num {
  flex: none;
  font-size: var(--step--2); letter-spacing: .22em; text-transform: uppercase;
  color: var(--color-champagne);
  font-variant-numeric: tabular-nums;
}
.cine-open { position: relative; }
.cine-open__pin {
  position: relative; isolation: isolate; overflow: hidden;
  height: calc(100svh - var(--header-h)); min-height: 32rem;
  display: grid; place-items: center;
}
.js-cine .cine-open { height: 190svh; }
.js-cine .cine-open__pin { position: sticky; top: var(--header-h); }
.cine-open__ecran {
  position: absolute; inset: 0; z-index: -2;
  display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 2px;
  background: #000;
  scale: calc(1.03 + .16 * var(--p, 0));
}
.cine-open__video { width: 100%; height: 100%; object-fit: cover; display: block; opacity: .74; }
@media (max-width: 699px) {
  .cine-open__ecran { grid-template-columns: 1fr; }
  .cine-open__video:not(:first-child) { display: none; }
}
.cine-open__pin::before {
  content: ""; position: absolute; inset: 0; z-index: -1;
  background: radial-gradient(ellipse 72% 62% at 50% 50%, rgba(12, 10, 8, .62), rgba(12, 10, 8, .25) 68%, rgba(12, 10, 8, .7));
}
.cine-open__bande {
  position: absolute; left: 0; right: 0; z-index: 2;
  height: 50%; background: var(--color-cine);
  transform: scaleY(calc(.24 + .76 * var(--p, 0)));
}
.cine-open__bande--haut { top: 0; transform-origin: top; }
.cine-open__bande--bas { bottom: 0; transform-origin: bottom; }
.cine-open__titres {
  position: relative; z-index: 1; width: 100%;
  text-align: center; padding-inline: var(--gutter);
  opacity: clamp(0, calc(1 - var(--p, 0) * 2.2), 1);
  transform: translateY(calc(var(--p, 0) * -6vh)) scale(calc(1 - var(--p, 0) * .08));
}
.cine-open__presente { margin-bottom: clamp(1rem, 3vh, 2rem); }
.cine-open__titre {
  font-family: var(--font-display); font-weight: 400;
  font-size: clamp(1.6rem, 7.4vw, 9rem); line-height: 1;
  letter-spacing: .06em; text-transform: uppercase;
  white-space: nowrap;
  color: var(--color-cine-texte);
  text-shadow: 0 2px 40px rgba(0, 0, 0, .45);
}
.cine-open__titre .l { display: inline-block; overflow: hidden; vertical-align: bottom; padding-top: .16em; margin-top: -.16em; }
.cine-open__titre .l > span { display: inline-block; }
.cine-open__accroche {
  margin-top: clamp(1rem, 3vh, 2rem);
  font-family: var(--font-display); font-style: italic;
  font-size: var(--step-1); color: var(--color-cine-texte);
}
.cine-open__note { margin-top: .4rem; font-size: var(--step--1); color: var(--color-cine-muted); }
.cine-open__defiler {
  position: absolute; z-index: 3; left: 0; right: 0; bottom: 3vh;
  margin: 0; text-align: center;
  font-size: var(--step--2); letter-spacing: .32em; text-transform: uppercase;
  color: var(--color-cine-muted);
  opacity: clamp(0, calc(1 - var(--p, 0) * 8), 1);
}
.cine-open__defiler span { display: inline-block; }
.cine-open__defiler span::after {
  content: ""; display: block; width: 1px; height: 2rem; margin: .6rem auto 0;
  background: linear-gradient(var(--color-champagne), transparent);
  transform-origin: top;
}
.js-cine .cine-open__ecran { animation: cine-allume 2.6s var(--ease) both; }
.js-cine .cine-open__presente { animation: cine-fondu 1.4s .5s var(--ease) both; }
.js-cine .cine-open__titre .l > span { animation: cine-lettre 1.3s calc(1s + var(--i) * 70ms) cubic-bezier(.2, .8, .1, 1) both; }
.js-cine .cine-open__accroche { animation: cine-fondu 1.4s 2.1s var(--ease) both; }
.js-cine .cine-open__note { animation: cine-fondu 1.4s 2.5s var(--ease) both; }
.js-cine .cine-open__defiler span { animation: cine-fondu 1s 3s var(--ease) both; }
.js-cine .cine-open__defiler span::after { animation: cine-goutte 2.2s 3.4s var(--ease) infinite both; }
@keyframes cine-allume { from { opacity: 0; transform: scale(1.06); } to { opacity: 1; transform: none; } }
@keyframes cine-fondu { from { opacity: 0; transform: translateY(.6rem); } to { opacity: 1; transform: none; } }
@keyframes cine-lettre { from { transform: translateY(108%); } to { transform: none; } }
@keyframes cine-goutte { 0% { transform: scaleY(0); opacity: 1; } 60% { transform: scaleY(1); opacity: 1; } 100% { transform: scaleY(1); opacity: 0; } }
.cine-acte { position: relative; --p: .7; }
.cine-acte__pin {
  min-height: calc(100svh - var(--header-h));
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  padding: var(--space-xl) var(--gutter);
  text-align: center;
  opacity: clamp(0, calc(1 - (var(--p) - .8) * 5), 1);
}
.js-cine .cine-acte { height: 170svh; }
.js-cine .cine-acte__pin { position: sticky; top: var(--header-h); height: calc(100svh - var(--header-h)); min-height: 0; padding-block: 0; }
.cine-acte__num {
  display: grid; margin: .15em 0 .05em;
  font-family: var(--font-display); font-weight: 400;
  font-size: clamp(8rem, 40vh, 24rem); line-height: .82; letter-spacing: .02em;
  transform: scale(calc(1.18 - .18 * min(1, var(--p) * 1.5)));
}
.cine-acte__num > span { grid-area: 1 / 1; }
.cine-acte__trait { color: transparent; -webkit-text-stroke: 1px rgba(205, 176, 138, .7); }
.cine-acte__plein {
  color: var(--color-champagne);
  clip-path: inset(calc((1 - min(1, var(--p) * 1.6)) * 100%) 0 0 0);
}
.cine-acte__titre {
  --t: clamp(0, calc((var(--p) - .22) * 3.2), 1);
  font-family: var(--font-display); font-weight: 400; font-style: italic;
  font-size: var(--step-3); line-height: 1.05;
  color: var(--color-cine-texte);
  opacity: var(--t);
  letter-spacing: calc(.02em + .45em * (1 - var(--t)));
}
.cine-acte__accroche {
  --a: clamp(0, calc((var(--p) - .38) * 4), 1);
  margin-top: var(--space-s); max-width: 34ch;
  font-size: var(--step-0); color: var(--color-cine-muted);
  opacity: var(--a);
  transform: translateY(calc((1 - var(--a)) * 1.2rem));
}
.cine-ceremonie { padding: var(--space-l) 0 var(--space-2xl); }
.cine-ceremonie__grille {
  width: min(100% - 2 * var(--gutter), 92rem); margin-inline: auto;
  display: grid; grid-template-columns: repeat(12, minmax(0, 1fr));
  column-gap: clamp(1rem, 2.4vw, 2.5rem); row-gap: clamp(4rem, 12vh, 9rem);
  align-items: start;
}
.cine-plan { margin: 0; grid-column: 1 / -1; }
.cine-plan__cadre { overflow: hidden; background: #15110d; }
.cine-plan__cadre img { width: 100%; height: 100%; object-fit: cover; display: block; }
.cine-plan--portrait .cine-plan__cadre { aspect-ratio: 2 / 3; }
.cine-plan--paysage .cine-plan__cadre { aspect-ratio: 3 / 2; }
.cine-plan--1 .cine-plan__cadre { aspect-ratio: 2.39 / 1; }   
@media (min-width: 760px) {
  .cine-plan--2 { grid-column: 2 / 6; }
  .cine-plan--3 { grid-column: 8 / 12; margin-top: 24vh; }
  .cine-plan--4 { grid-column: 3 / 13; }
  .cine-plan--5 { grid-column: 1 / 5; margin-top: 10vh; }
  .cine-plan--6 { grid-column: 6 / 13; align-self: center; }
  .cine-plan--7 { grid-column: 5 / 9; }
}
@media (max-width: 759px) {
  .cine-plan:nth-child(even) { grid-column: 3 / -1; }
  .cine-plan:nth-child(odd):not(.cine-plan--1) { grid-column: 1 / 11; }
}
.js-cine [data-rideau] .cine-plan__cadre { clip-path: inset(0 50% 0 50%); transition: clip-path 1.7s cubic-bezier(.77, 0, .18, 1); }
.js-cine [data-rideau="bas"] .cine-plan__cadre { clip-path: inset(100% 0 0 0); }
.js-cine [data-rideau="gauche"] .cine-plan__cadre { clip-path: inset(0 100% 0 0); }
.js-cine [data-rideau="droite"] .cine-plan__cadre { clip-path: inset(0 0 0 100%); }
.js-cine [data-rideau] img { transform: scale(1.28); transition: transform 2.6s cubic-bezier(.2, .75, .1, 1); }
.js-cine [data-rideau] .cine-legende { opacity: 0; transform: translateY(.8rem); transition: opacity 1s .8s var(--ease), transform 1s .8s var(--ease); }
.js-cine [data-rideau].is-in .cine-plan__cadre { clip-path: inset(0 0 0 0); }
.js-cine [data-rideau].is-in img { transform: none; }
.js-cine [data-rideau].is-in .cine-legende { opacity: 1; transform: none; }
.cine-travelling { padding: var(--space-l) var(--gutter) var(--space-2xl); }
.cine-travelling__scene {
  max-width: 92rem; margin-inline: auto;
  display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 15rem), 1fr));
  gap: var(--space-m);
}
.cine-portrait { margin: 0; }
.cine-portrait img { width: 100%; aspect-ratio: 2 / 3; object-fit: cover; display: block; }
.cine-portrait--paysage img { aspect-ratio: 3 / 2; }
.js-cine .cine-travelling { padding: 0; height: calc(var(--n) * 52svh + 100svh); }
.js-cine .cine-travelling__pin {
  position: sticky; top: var(--header-h);
  height: calc(100svh - var(--header-h)); overflow: hidden;
  perspective: 1200px; perspective-origin: 50% 45%;
}
.js-cine .cine-travelling__scene { position: absolute; inset: 0; display: block; max-width: none; transform-style: preserve-3d; }
.js-cine .cine-portrait {
  position: absolute; left: 50%; top: 50%;
  width: clamp(12rem, 24vw, 25rem);
  opacity: 0; visibility: hidden;
  will-change: transform, opacity;
}
.js-cine .cine-portrait--paysage { width: clamp(17rem, 36vw, 36rem); }
.js-cine .cine-portrait .cine-legende { opacity: var(--proche, 0); white-space: nowrap; }
@media (max-width: 699px) {
  .js-cine .cine-portrait { width: 56vw; }
  .js-cine .cine-portrait--paysage { width: 78vw; }
}
.cine-entracte { padding: var(--space-2xl) 0; }
.cine-entracte__tete { text-align: center; margin-bottom: var(--space-l); }
.cine-entracte__titre {
  margin-top: var(--space-s);
  font-family: var(--font-display); font-weight: 400; font-style: italic;
  font-size: var(--step-3); color: var(--color-cine-texte);
}
.cine-pellicule {
  width: 112vw; margin-left: -6vw;
  overflow-x: auto; overscroll-behavior-x: contain; scrollbar-width: none;
  transform: rotate(-2.2deg);
}
.cine-pellicule::-webkit-scrollbar { display: none; }
.cine-pellicule:focus-visible { outline: 2px solid var(--color-champagne); outline-offset: 6px; }
.cine-pellicule__bande {
  display: flex; gap: clamp(.8rem, 1.4vw, 1.25rem);
  width: max-content; margin: 0; list-style: none;
  padding: 2.6rem clamp(2rem, 10vw, 9rem);
  background-color: #1b1713;
  background-image:
    repeating-linear-gradient(90deg, var(--color-cine) 0 14px, transparent 14px 34px),
    repeating-linear-gradient(90deg, var(--color-cine) 0 14px, transparent 14px 34px);
  background-size: 100% 10px, 100% 10px;
  background-position: 0 .8rem, 0 calc(100% - .8rem);
  background-repeat: repeat-x;
}
.cine-pellicule__photogramme {
  flex: none;
  width: clamp(11rem, min(24vw, calc((100svh - var(--header-h) - 12rem) * 9 / 16)), 30rem);
}
.cine-pellicule__film { border-radius: 2px; overflow: hidden; }
.cine-pellicule__legende { margin: .9rem 0 0; display: grid; gap: .25rem; }
.cine-pellicule__titre { font-family: var(--font-display); font-style: italic; font-size: var(--step-0); color: var(--color-cine-texte); }
.cine-pellicule__lieu { font-size: var(--step--2); color: var(--color-cine-muted); }
@media (hover: none) {
  .cine-pellicule { scroll-snap-type: x mandatory; }
  .cine-pellicule__photogramme { scroll-snap-align: center; }
}
@media (max-width: 699px) {
  .cine-pellicule__photogramme { width: 56vw; }
}
.cine-nuit { position: relative; }
.cine-nuit__panneau {
  position: sticky; top: var(--header-h);
  height: calc(100svh - var(--header-h)); min-height: 30rem;
  display: grid; grid-template: minmax(0, 1fr) / minmax(0, 1fr);
  padding: clamp(1.5rem, 4vh, 3rem) var(--gutter);
  background: var(--color-cine); overflow: hidden;
}
.cine-nuit__panneau + .cine-nuit__panneau { box-shadow: 0 -24px 48px rgba(0, 0, 0, .55); }
.cine-nuit__contenu {
  min-height: 0;
  display: grid; grid-template-rows: auto auto;
  justify-items: center; align-content: center; gap: 1.4rem;
  transform: scale(calc(1 - .08 * var(--q, 0)));
  opacity: calc(1 - .72 * var(--q, 0));
  transform-origin: 50% 35%;
}
.cine-nuit__cadre {
  width: min(100%, 76rem, calc((100svh - var(--header-h) - 13rem) * 1.85));
  aspect-ratio: 1.85; overflow: hidden; background: #15110d;
}
.cine-nuit__cadre img { width: 100%; height: 100%; object-fit: cover; display: block; }
.cine-nuit__legende { margin: 0; display: grid; gap: .45rem; justify-items: center; text-align: center; max-width: 40rem; }
.cine-nuit__texte { font-family: var(--font-display); font-style: italic; font-size: var(--step-1); line-height: 1.3; color: var(--color-cine-texte); }
.cine-nuit__panneau--portrait .cine-nuit__contenu {
  grid-template-columns: auto minmax(0, 24rem); grid-template-rows: minmax(0, 1fr);
  justify-content: center; column-gap: clamp(2rem, 6vw, 6rem);
}
.cine-nuit__panneau--portrait .cine-nuit__cadre { width: auto; height: min(100%, 46rem); aspect-ratio: 2 / 3; }
.cine-nuit__panneau--portrait .cine-nuit__legende { justify-items: start; text-align: left; align-self: end; align-content: end; padding-bottom: 2vh; }
.cine-nuit__panneau--portrait .cine-nuit__texte { font-size: var(--step-2); }
@media (max-width: 699px) {
  .cine-nuit__cadre { width: 100%; aspect-ratio: 3 / 2; }
  .cine-nuit__panneau--portrait .cine-nuit__contenu { grid-template-columns: 1fr; grid-template-rows: minmax(0, 1fr) auto; }
  .cine-nuit__panneau--portrait .cine-nuit__cadre { height: 100%; max-height: 62svh; }
  .cine-nuit__panneau--portrait .cine-nuit__legende { justify-items: center; text-align: center; }
  .cine-nuit__panneau--portrait .cine-nuit__texte { font-size: var(--step-1); }
}
.js-cine .cine-nuit__cadre img { transform: scale(1.12); transition: transform 3s cubic-bezier(.2, .7, .1, 1); }
.js-cine [data-pile].is-in .cine-nuit__cadre img { transform: none; }
.js-cine .cine-nuit__legende { opacity: 0; transform: translateY(1rem); transition: opacity 1s .35s var(--ease), transform 1s .35s var(--ease); }
.js-cine [data-pile].is-in .cine-nuit__legende { opacity: 1; transform: none; }
.cine-generique { padding: var(--space-2xl) var(--gutter); text-align: center; }
.cine-generique__suite { max-width: 46rem; margin: 0 auto; }
.cine-generique__titre {
  margin-top: var(--space-s);
  font-family: var(--font-display); font-weight: 400;
  font-size: var(--step-4); line-height: 1; letter-spacing: .04em; text-transform: uppercase;
  color: var(--color-cine-texte);
}
.cine-generique__lede { margin: var(--space-m) auto 0; max-width: 38ch; color: var(--color-cine-muted); }
.cine-btn { background: var(--color-cine-texte); color: var(--color-cine); border-color: var(--color-cine-texte); }
.cine-btn:hover { background: transparent; color: var(--color-cine-texte); }
.cine-tc { display: none; }
@media (min-width: 900px) {
  .js-cine .cine-tc {
    display: flex; gap: 1.1rem; align-items: baseline;
    position: fixed; left: var(--gutter); bottom: 1.3rem; z-index: 57;
    margin: 0; pointer-events: none;
    padding: .5rem .85rem; border-radius: 2px;
    background: rgba(12, 10, 8, .78);
    -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px);
    font-size: .68rem; letter-spacing: .2em; text-transform: uppercase;
    color: rgba(243, 237, 230, .5);
    font-variant-numeric: tabular-nums;
    transition: opacity .4s var(--ease);
  }
  .cine-tc__code { color: var(--color-champagne); letter-spacing: .12em; }
}
@media (max-width: 899px) {
  .cine-open__defiler { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  body.page-realisations::after { animation: none; }
  .cine-nuit__panneau { position: relative; }
}
ul.members__row { justify-content: flex-start; }
ul.members__row > .member-card:first-child { margin-left: auto; }
ul.members__row > .member-card:last-child { margin-right: auto; }
.site-footer__brand { text-align: center; }
.site-footer__logo { margin-inline: auto; }
html:not(.js-rail) .rail__sticky { padding-top: var(--space-xl); }
html:not(.js-rail) .rail__head .lede { margin-top: .9rem; }
.plate--night .h-display { color: var(--color-on-night); }
@media (max-width: 899px) {
  body { padding-bottom: 0; }
  .sticky-cta {
    left: 50%; right: auto; bottom: calc(.75rem + env(safe-area-inset-bottom, 0px));
    width: min(calc(100% - 1.5rem), 24rem);
    display: grid; grid-template-columns: 1fr 1fr; gap: 4px;
    padding: 4px; border-radius: 999px;
    background: rgba(42, 34, 29, .92);
    -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px);
    box-shadow: 0 10px 30px rgba(23, 18, 14, .28);
    transform: translateX(-50%);
    transition: transform .45s var(--ease), visibility 0s;
  }
  .sticky-cta[data-ready]:not([data-visible]) {
    transform: translate(-50%, calc(100% + 1.5rem));
    visibility: hidden;
    transition: transform .45s var(--ease), visibility 0s .45s;
  }
  .sticky-cta__link {
    flex: none;
    display: flex; align-items: center; justify-content: center; gap: .5rem;
    min-height: 2.9rem; padding: 0 .9rem;
    border: 0; border-radius: 999px; box-shadow: none;
    background: transparent; color: var(--color-bg);
    font-size: .76rem; font-weight: 600; letter-spacing: .12em; text-transform: uppercase;
    white-space: nowrap;
  }
  .sticky-cta__link--primary { background: var(--color-bg); color: var(--color-text); }
  .sticky-cta__icone { width: 1.15rem; height: 1.15rem; flex: none; }
}
@media (max-width: 699px) {
  :root {
    --step--2: .8125rem;    
    --step--1: .95rem;      
    --track-label: .14em;   
  }
  .prose, .member-card__bio { font-size: var(--step-0); line-height: 1.6; }
  .h-display { margin-bottom: .5rem; }
  .team-hero__stats li { padding: .9rem .7rem; text-align: center; justify-items: center; }
  .team-hero__label { letter-spacing: .08em; line-height: 1.3; }
  .card__caption, .cine-pellicule__lieu { font-size: var(--step--1); }
  .cine-label, .cine-legende__num { letter-spacing: .16em; }
  .link-underline { position: relative; display: inline-block; }
  .link-underline::after { content: ""; position: absolute; inset: -14px -10px; }
  .site-header__logo { padding-block: .65rem; }
  ul.contact-hero__links { gap: 1.1rem; }
  .contact-hero__links a { position: relative; display: inline-block; }
  .contact-hero__links a::after { content: ""; position: absolute; inset: -11px -10px; }
  .btn {
    display: flex; align-items: center; justify-content: center;
    width: 100%; min-height: 3.25rem; padding: .9em 1.25em; text-align: center;
  }
  ul.contact-direct { flex-direction: column; gap: 0; align-items: stretch; font-size: var(--step-0); }
  .contact-direct li a { display: flex; align-items: center; min-height: 3rem; padding: 0; border-bottom: 1px solid var(--color-line); }
  ul.band__stats { grid-template-columns: 1fr; gap: 0; padding-top: .25rem; }
  .band__stat { flex-direction: row; align-items: baseline; gap: 1rem; padding: .8rem 0; border-bottom: 1px solid var(--color-line); }
  .band__stat:last-child { border-bottom: 0; }
  .band__value { min-width: 2.4ch; }
  .rail__item { flex-basis: 66vw; }
  ul.members__row { flex-direction: column; overflow: visible; gap: var(--space-xl); padding-bottom: 0; scroll-snap-type: none; }
  ul.members__row > .member-card { flex: none; width: 100%; }
  .member-card__media { width: min(70vw, 17rem); margin-inline: auto; }
  .info-card__links a { display: inline-flex; align-items: center; min-height: 2.75rem; }
  .site-footer { padding-block: var(--space-xl) var(--space-m); }
  .site-footer__inner { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: var(--space-l) var(--space-m); }
  .site-footer__brand { grid-column: 1 / -1; }
  .site-footer__inner > :nth-child(3) { grid-column: 1 / -1; grid-row: 2; }
  .site-footer__inner > :nth-child(2) { grid-column: 1; grid-row: 3; }
  .site-footer__inner > :nth-child(4) { grid-column: 2; grid-row: 3; }
  .site-footer__legal { grid-row: 4; margin-top: 0; }
  .site-footer__title { margin-bottom: .35rem; }
  .site-footer__col ul { gap: 0; }
  .site-footer__col a, .site-footer__col span { display: block; padding-block: .72rem; font-size: var(--step-0); line-height: 1.4; }
}
.cine-rideau { position: relative; --p: 1; --o: min(1, calc(.14 + var(--p) * 1.3)); }   
.cine-rideau__pin { display: grid; place-items: center; padding: var(--space-l) var(--gutter) 0; }
.js-cine .cine-rideau { height: 210svh; }
.js-cine .cine-rideau__pin {
  position: sticky; top: var(--header-h);
  height: calc(100svh - var(--header-h));
  padding: clamp(1rem, 4vh, 2.5rem) var(--gutter);
}
.cine-plan--grand { margin: 0; width: min(100%, 92rem, calc((100svh - var(--header-h) - 8rem) * 2.39)); }
.cine-plan--grand .cine-plan__cadre { aspect-ratio: 2.39 / 1; }
.js-cine .cine-rideau .cine-plan__cadre { clip-path: inset(0 calc((1 - var(--o)) * 50%) 0 calc((1 - var(--o)) * 50%)); }
.js-cine .cine-rideau .cine-plan__cadre img { transform: scale(calc(1.25 - .25 * var(--o))); }
.js-cine .cine-rideau .cine-legende { opacity: clamp(0, calc((var(--p) - .6) * 6), 1); }
@media (max-width: 699px) {
  .cine-plan--grand { width: min(100%, calc((100svh - var(--header-h) - 9rem) * .8)); }
  .cine-plan--grand .cine-plan__cadre { aspect-ratio: 4 / 5; }
}
.carrousel-repere { display: flex; align-items: center; gap: 1rem; padding: .9rem var(--gutter) 0; }
.carrousel-repere[hidden] { display: none; }
.carrousel-repere__texte {
  flex: none;
  font-size: var(--step--2); font-weight: 500; letter-spacing: var(--track-label); text-transform: uppercase;
  color: var(--color-text-muted);
  transition: opacity .5s var(--ease);
}
.carrousel-repere__texte::after { content: "→"; display: inline-block; margin-left: .5em; animation: carrousel-fleche 1.6s var(--ease) infinite; }
.carrousel-repere.a-glisse .carrousel-repere__texte { opacity: 0; }
.carrousel-repere__barre { flex: 1; height: 2px; border-radius: 2px; background: var(--color-line); overflow: hidden; }
.carrousel-repere__barre > span { display: block; height: 100%; border-radius: 2px; background: var(--color-warm); transition: transform .12s linear; }
@keyframes carrousel-fleche { 0%, 100% { transform: translateX(0); } 50% { transform: translateX(.4em); } }
.carrousel--esquisse > * { animation: carrousel-esquisse 1.4s var(--ease) both; }
@keyframes carrousel-esquisse { 0%, 100% { transform: none; } 45% { transform: translateX(-2.6rem); } }
@media (hover: hover) and (pointer: fine) { .carrousel-repere__texte { display: none; } }
.cine .carrousel-repere { padding-top: 1.6rem; }
.cine .carrousel-repere__texte { color: var(--color-cine-muted); }
.cine .carrousel-repere__barre { background: rgba(243, 237, 230, .14); }
.cine .carrousel-repere__barre > span { background: var(--color-champagne); }
.cine-pellicule[data-pilote] { scroll-snap-type: none; }
@media (max-width: 699px) {
  .rail__item { flex-basis: 40vw; }   
  .card { flex-basis: 64vw; }
}
@media (max-width: 899px) {
  .closing__figure, .split__figure { margin-inline: auto; }
}
@media (max-width: 1099px) {
  .dest-nav {
    display: block; position: fixed; left: 0; right: 0; top: var(--header-h); z-index: 40;
    padding: .15rem 0 1.5rem;
    background: linear-gradient(rgba(12, 10, 8, .66), rgba(12, 10, 8, .34) 60%, rgba(12, 10, 8, 0));
    opacity: 0; visibility: hidden; transform: translateY(-.5rem);
    transition: opacity .35s var(--ease), transform .35s var(--ease), visibility 0s .35s;
  }
  .dest-nav[data-fond="sombre"] {
    opacity: 1; visibility: visible; transform: none;
    transition: opacity .35s var(--ease), transform .35s var(--ease);
  }
  .dest-nav ol {
    display: flex; gap: 1.5rem; margin: 0; padding: 0 var(--gutter); list-style: none;
    overflow-x: auto; scrollbar-width: none;
  }
  .dest-nav ol::-webkit-scrollbar { display: none; }
  .dest-nav li { flex: none; }
  .dest-nav a {
    display: flex; align-items: center; gap: .45em; min-height: 2.75rem;
    font-size: var(--step--2); font-weight: 500; letter-spacing: .14em; text-transform: uppercase;
    color: rgba(255, 255, 255, .66); text-shadow: 0 1px 8px rgba(0, 0, 0, .55);
    border-bottom: 1px solid transparent;
    transition: color var(--duration-fast) var(--ease), border-color var(--duration-fast) var(--ease);
  }
  .dest-nav a span { font-family: var(--font-display); font-style: italic; font-weight: 400; letter-spacing: 0; text-transform: none; opacity: .85; }
  .dest-nav a[aria-current="true"] { color: #fff; border-bottom-color: var(--color-accent); }
  .dest-nav a[aria-current="true"] span { color: var(--color-accent); opacity: 1; }
}
.js-motion .wall__col:first-child { opacity: 1; transform: none; }
.card__kicker, .card__caption { opacity: 1; }
.page-404 { padding-block: var(--space-2xl); text-align: center; }
.page-404__inner { max-width: 40rem; }
.page-404__titre {
  font-family: var(--font-display); font-weight: 400; font-size: var(--step-3); line-height: 1.1;
  color: var(--color-warm); margin-top: var(--space-s);
}
.page-404__lede { margin: var(--space-m) auto 0; }
ul.page-404__liens { display: flex; flex-wrap: wrap; justify-content: center; gap: var(--space-s) var(--space-l); margin: var(--space-l) 0 0; padding: 0; list-style: none; }
.site-nav__list a[aria-current="page"],
.link-underline:hover,
.lang-switch [aria-current="true"],
.member-card__years { color: var(--color-accent-texte); }
