@charset "UTF-8";

/* ═══ FONTES AUTO-HÉBERGÉES ════════════════════════════════════════════════
   Rapatriées de Google Fonts (toutes sous licence OFL) et servies depuis
   l'origine. Trois raisons : `font-src 'self'` suffit alors sans dépendance
   tierce ; le rendu ne dépend plus d'un hôte externe ; et aucune adresse IP
   de visiteur ne part chez un tiers — ce qui, pour une fondation qui publie
   une page « privacy », est une question de cohérence, pas de détail.
   Sous-ensembles latin + latin-ext seulement : le site est it / fr / en.
   ═══════════════════════════════════════════════════════════════════════ */



@font-face {
  font-family: 'Bodoni Moda';
  font-style: italic;
  font-weight: 400 900;
  font-display: swap;
  src: url(../fonts/BodoniModa-italic-400-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Bodoni Moda';
  font-style: italic;
  font-weight: 400 900;
  font-display: swap;
  src: url(../fonts/BodoniModa-italic-400-latin.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: 'Bodoni Moda';
  font-style: normal;
  font-weight: 400 900;
  font-display: swap;
  src: url(../fonts/BodoniModa-normal-400-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Bodoni Moda';
  font-style: normal;
  font-weight: 400 900;
  font-display: swap;
  src: url(../fonts/BodoniModa-normal-400-latin.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: 'Manrope';
  font-style: normal;
  font-weight: 200 800;
  font-display: swap;
  src: url(../fonts/Manrope-normal-400-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 200 800;
  font-display: swap;
  src: url(../fonts/Manrope-normal-400-latin.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: 'Cormorant Garamond';
  font-style: italic;
  font-weight: 300 700;
  font-display: swap;
  src: url(../fonts/CormorantGaramond-italic-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: italic;
  font-weight: 300 700;
  font-display: swap;
  src: url(../fonts/CormorantGaramond-italic-latin.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: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 300 700;
  font-display: swap;
  src: url(../fonts/CormorantGaramond-normal-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 300 700;
  font-display: swap;
  src: url(../fonts/CormorantGaramond-normal-latin.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;
}

/* ═══════════════════════════════════════════════════════════════════════════
   FONDAZIONE CARAVELLI — SYSTÈME UNIQUE 2026
   ───────────────────────────────────────────────────────────────────────────
   Remplace les 16 feuilles empilées (foundation-core + couture v10→v21,
   416 Ko) par une seule source. Aucune strate supplémentaire.

   Direction artistique — ARXIV8, orchestration Caravelli :
     Les dix studios servent de bibliothèque de savoir-faire, jamais de
     palettes copiées ni de styles juxtaposés. La maison Caravelli reste
     l'unique identité : Bodoni / Cormorant / Carrara froid / obsidienne /
     porcelaine / ultraviolet / lapis. AUCUN or, champagne, bronze ni beige.

     · 01 Locomotive ....... grille éditoriale, masques, expo.out, parallaxe
     · 02 Immersive Garden . matière, lumière, dissolve, flowmap, grain
     · 03 RESN ............. puissance de réponse, inertie, anticipation
     · 04 Monks ............ modularité, FLIP, états et transitions partagées
     · 05 Active Theory .... HUD, qualité adaptative, shaders préchauffés
     · 06 Hello Monday ..... scrollytelling, respiration, récit typographique
     · 07 AQuest ........... CTA, rail horizontal, accent premium fonctionnel
     · 08 makemepulse ...... fog, damping, portrait/mobile-first, douceur
     · 09 Merci Michel ..... wipes, split type, contraste de vitesse
     · 10 Dogstudio ........ profondeur spatiale, hotspots, progression

     La contrainte impérative la plus récente prime sur l'ancien brief :
     chaque archive doit fournir plusieurs apports réellement exécutables.

   Couleur — aucune valeur en dur. Tout dérive des ONZE NOMBRES du §0.
   La clarté reste littérale (les contrastes ne bougent jamais) ; seules la
   teinte et la chroma sont variables. Changer la marque = changer 11 nombres.
   Seule exception admise : noir et blanc purs dans les propriétés `mask`,
   qui ont besoin d'un alpha franc.
   ═══════════════════════════════════════════════════════════════════════════ */


/* ═══ 0. LES ONZE NOMBRES ══════════════════════════════════════════════════ */

:root{
  /* cinq teintes — PALAZZO PRISMATICO (directive §XX) : aucune teinte chaude.
     L'or, le champagne, le bronze et le beige luxe sont exclus ; la couleur
     intervient comme LUMIÈRE, REFLET, RÉFRACTION et PROFONDEUR. */
  --h-ink:264;   /* encre / neutres — indigo nocturne (VOID → OBSIDIAN) */
  --h-pap:252;   /* papiers — porcelaine / Carrara froid */
  --h-vio:276;   /* ultraviolet — identité, lumière dirigée */
  --h-or:228;    /* lapis — ornement rare, métal froid (remplace l'or) */
  --h-jad:155;   /* malachite — la preuve, l'accent le plus rare */

  /* cinq gains de chroma */
  --c-ink:1;
  --c-pap:1;
  --c-vio:.78;
  --c-or:.90;   /* Lapis mesuré : conserver la couleur sans halo cyan. */
  --c-jad:1;

  /* gain global */
  --c:1;
}


/* ═══ 1. RÔLES DÉRIVÉS ═════════════════════════════════════════════════════
   Nommés par rôle, jamais par teinte (BRIEF_CODEX §3).
   Contraste WCAG vérifié pour chaque paire texte/fond en §1b.            */

:root{
  /* — la nuit — */
  --obsidienne : oklch(.1220 calc(var(--c) * var(--c-ink) * .0141) var(--h-ink));
  --nuit       : oklch(.1628 calc(var(--c) * var(--c-ink) * .0372) var(--h-ink));
  --encre      : oklch(.1842 calc(var(--c) * var(--c-ink) * .0214) var(--h-ink));
  --profond    : oklch(.2102 calc(var(--c) * var(--c-vio) * .0837) var(--h-vio));

  /* — l'identité — */
  --violet     : oklch(.3745 calc(var(--c) * var(--c-vio) * .1515) var(--h-vio));
  --violet-vif : oklch(.4900 calc(var(--c) * var(--c-vio) * .1700) var(--h-vio));
  --glycine    : oklch(.7780 calc(var(--c) * var(--c-vio) * .0808) var(--h-vio));

  /* — les papiers — */
  --albe       : oklch(.9825 calc(var(--c) * var(--c-pap) * .0057) var(--h-pap));
  --ivoire     : oklch(.9591 calc(var(--c) * var(--c-pap) * .0074) var(--h-pap));
  --carrara    : oklch(.9198 calc(var(--c) * var(--c-pap) * .0119) var(--h-pap));
  --pierre     : oklch(.7662 calc(var(--c) * var(--c-pap) * .0132) var(--h-pap));

  /* — les ornements —
     Trois clartés, pas deux : l'or de la nuit ne peut pas servir sur le
     papier. Mesuré au fond réellement peint, `--or` tombait à 4,43:1 sur
     l'ivoire, sous le seuil AA du petit texte ; `--or-sombre` le passe. */
  --or         : oklch(.5456 calc(var(--c) * var(--c-or)  * .0768) var(--h-or));
  --or-sombre  : oklch(.4950 calc(var(--c) * var(--c-or)  * .0810) var(--h-or));
  --or-clair   : oklch(.7600 calc(var(--c) * var(--c-or)  * .0700) var(--h-or));
  --jade       : oklch(.7000 calc(var(--c) * var(--c-jad) * .0620) var(--h-jad));

  /* — surfaces & filets, en alpha pour tenir sur les deux fonds — */
  --voile-nuit : oklch(.1220 calc(var(--c) * var(--c-ink) * .0141) var(--h-ink) / .72);
  --voile-jour : oklch(.9591 calc(var(--c) * var(--c-pap) * .0074) var(--h-pap) / .82);
  --filet-nuit : oklch(.9591 calc(var(--c) * var(--c-pap) * .0074) var(--h-pap) / .16);
  --filet-jour : oklch(.1220 calc(var(--c) * var(--c-ink) * .0141) var(--h-ink) / .14);
  --filet-or   : oklch(.5456 calc(var(--c) * var(--c-or)  * .0768) var(--h-or)  / .42);
}

/* — 1b. Rôles de texte par surface —
   Leçon retenue : la couleur d'un texte se décide sur la SURFACE qui le porte,
   jamais sur la structure de la section. Chaque surface déclare donc son
   propre trio texte / texte-doux / filet, et les composants héritent.        */

.fc-nuit{
  --texte      : var(--ivoire);     /* 15.8:1 sur obsidienne */
  --texte-doux : var(--pierre);     /*  9.4:1 */
  --texte-tres-doux: oklch(.6400 calc(var(--c) * var(--c-pap) * .0132) var(--h-pap)); /* 5.9:1 */
  --accent     : var(--glycine);    /*  9.8:1 */
  --ornement   : var(--or-clair);   /*  8.9:1 */
  --filet      : var(--filet-nuit);
  --surface    : var(--obsidienne);
  --surface-2  : var(--nuit);
  color:var(--texte);
  background-color:var(--surface);
}

.fc-jour{
  --texte      : var(--encre);      /* 15.1:1 sur ivoire */
  --texte-doux : oklch(.4200 calc(var(--c) * var(--c-ink) * .0214) var(--h-ink)); /* 8.2:1 */
  /* Mesuré au fond peint : .5200 donnait 4,39:1 sur l'ivoire — sous le seuil
     AA du petit texte. .4900 le passe à 4,9:1. Les légendes de photo et les
     mentions académiques en dépendent. */
  --texte-tres-doux: oklch(.4900 calc(var(--c) * var(--c-ink) * .0180) var(--h-ink)); /* 4.9:1 */
  --accent     : var(--violet);     /*  8.6:1 */
  --ornement   : var(--or-sombre);  /*  5.2:1 — mesuré sur ivoire peint */
  --filet      : var(--filet-jour);
  --surface    : var(--ivoire);
  --surface-2  : var(--carrara);
  color:var(--texte);
  background-color:var(--surface);
}


/* ═══ 2. TYPOGRAPHIE ═══════════════════════════════════════════════════════
   Trio de grande maison, auto-hébergé et OFL :
   · Bodoni Moda        = signature cérémonielle / monuments sous masque ;
   · Cormorant Garamond = récit, citations et textes institutionnels — la voix
                          littéraire des grandes maisons (remplace Newsreader) ;
   · Manrope            = navigation, labels, chiffres, filtres et interface.
   Le luxe vient du contraste de rôles et de l'optical sizing, pas d'un
   empilement de fontes décoratives.                                                */

:root{
  --f-signature : 'Bodoni Moda', 'Didot', 'Times New Roman', Georgia, serif;
  --f-editorial : 'Cormorant Garamond', 'Iowan Old Style', Georgia, serif;
  --f-interface : 'Manrope', 'Helvetica Neue', Arial, system-ui, sans-serif;

  /* Alias conservés pour tous les composants historiques. */
  --f-display : var(--f-signature);
  --f-ui      : var(--f-interface);
  --f-lecture : var(--f-editorial);

  /* Les fichiers embarqués sont variables : Bodoni wght+opsz, Newsreader
     wght+opsz, Manrope wght. Ces valeurs donnent une vraie hiérarchie
     optique sans télécharger une quatrième police. */
  --opsz-monument:96;
  --opsz-titre:72;
  --opsz-chapitre:44;
  --opsz-lecture:18;

  /* Locomotive §4 : un très grand corps, un très petit, peu d'intermédiaires */
  --t-monument : clamp(3.2rem, 11vw, 11.5rem);
  --t-titre    : clamp(2.3rem, 5.6vw,  5.6rem);
  --t-chapitre : clamp(1.65rem, 2.9vw, 2.9rem);
  --t-sous     : clamp(1.12rem, 1.5vw, 1.45rem);
  --t-corps    : clamp(1rem, .95rem + .28vw, 1.16rem);
  --t-petit    : .875rem;
  --t-label    : .69rem;

  --lh-serre   : .88;
  --lh-titre   : 1.04;
  --lh-corps   : 1.68;
  --ls-monument: -.035em;   /* Locomotive §4 */
  --ls-titre   : -.022em;
  --ls-label   : .38em;
}


/* ═══ 3. ESPACE, RAYONS, CONTENEURS ════════════════════════════════════════ */

:root{
  --e-1:.5rem;  --e-2:.875rem; --e-3:1.5rem; --e-4:2.5rem;
  --e-5:4rem;   --e-6:6.5rem;  --e-7:10rem;  --e-8:15rem;

  --marge   : clamp(1.4rem, 6vw, 7.5rem);   /* Locomotive §5 : 6–8vw */
  --gouttiere: clamp(1.5rem, 2.2vw, 2rem);
  --largeur : 1440px;
  --largeur-texte: 68ch;

  --r-0:0; --r-1:2px; --r-2:6px; --r-plein:999px;
}


/* ═══ 4. MOTION ════════════════════════════════════════════════════════════
   Le site n'a pas une seule vitesse : il possède une grammaire de tempos.
   Les courbes ci-dessous traduisent les archives dans un registre Caravelli :
   jamais de bounce cartoon, jamais de cinématique qui bloque l'information. */

:root{
  --ease-sortie : cubic-bezier(.19, 1, .22, 1);      /* 01 Locomotive — expo.out */
  --ease-rideau : cubic-bezier(.76, 0, .24, 1);      /* 09 Merci Michel — cut/wipe */
  --ease-doux   : cubic-bezier(.33, 1, .68, 1);      /* 06/08 — organique */
  --ease-service: cubic-bezier(.4, 0, .2, 1);        /* 04 Monks — utilitaire */
  --ease-impact : cubic-bezier(.22, 1.18, .38, 1);   /* 03 RESN — overshoot dosé */
  --ease-camera : cubic-bezier(.65, 0, .35, 1);      /* 02/10 — déplacement spatial */
  --ease-produit: cubic-bezier(.16, 1, .3, 1);       /* 07 AQuest — réponse premium */

  --d-instant : .22s;
  --d-micro   : .32s;
  --d-service : .52s;
  --d-reveal  : .95s;
  --d-page    : 1.25s;
  --d-cinema  : 1.65s;
  --stagger   : .075s;
}


/* ═══ 5. OMBRES & LUMIÈRE ══════════════════════════════════════════════════ */

:root{
  /* Ombres froides multi-couches — teintées indigo (DIRECTIVE §XII.10) :
     profondeur de grande maison, jamais de shadow générique. */
  --sh-1:0 1px 2px oklch(.1220 .028 var(--h-ink) / .20);
  --sh-2:0 4px 14px oklch(.1220 .030 var(--h-ink) / .24);
  --sh-3:0 14px 40px oklch(.1220 .034 var(--h-ink) / .30);
  --sh-4:0 30px 80px oklch(.1220 .038 var(--h-ink) / .40);
  --sh-5:0 60px 140px oklch(.1220 .044 var(--h-ink) / .52);
}


/* ═══ 6. RESET ═════════════════════════════════════════════════════════════ */

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}

html{
  -webkit-text-size-adjust:100%;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  text-rendering:optimizeLegibility;
  scroll-behavior:auto;              /* Lenis pilote le défilement */
  background-color:var(--obsidienne);
  color-scheme:dark;
}

/* Lenis — le corps ne défile plus lui-même quand le moteur est actif */
html.lenis,html.lenis body{height:auto}
.lenis.lenis-smooth{scroll-behavior:auto!important}
.lenis.lenis-stopped{overflow:hidden}

body{
  font-family:var(--f-ui);
  font-size:var(--t-corps);
  line-height:var(--lh-corps);
  font-weight:400;
  letter-spacing:.005em;
  overflow-x:clip;
  background-color:var(--obsidienne);
  color:var(--ivoire);
}

img,picture,video,canvas,svg{display:block;max-width:100%}
img,video{height:auto}
input,button,textarea,select{font:inherit;color:inherit}
button{background:none;border:0;cursor:pointer}
a{color:inherit;text-decoration:none}
ul,ol{list-style:none}
table{border-collapse:collapse;width:100%}
:where(h1,h2,h3,h4,h5,h6){font-weight:400;text-wrap:balance}
p{text-wrap:pretty}

::selection{background:var(--violet);color:var(--albe)}

:focus-visible{
  outline:2px solid var(--glycine);
  outline-offset:4px;
  border-radius:var(--r-1);
}

.fc-saut{
  position:absolute;left:-9999px;top:0;z-index:9000;
  background:var(--ivoire);color:var(--obsidienne);
  padding:.8rem 1.4rem;
  font-size:var(--t-label);letter-spacing:var(--ls-label);text-transform:uppercase;
}
.fc-saut:focus{left:1rem;top:1rem}

.fc-vh{
  position:absolute;width:1px;height:1px;padding:0;margin:-1px;
  overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0;
}


/* ═══ 7. COMPOSITION DE BASE ═══════════════════════════════════════════════ */

.fc-monument{
  font-family:var(--f-display);
  font-size:var(--t-monument);
  line-height:var(--lh-serre);
  letter-spacing:var(--ls-monument);
  font-weight:400;
}
.fc-monument em{font-style:italic;font-weight:400}

.fc-titre{
  font-family:var(--f-display);
  font-size:var(--t-titre);
  line-height:var(--lh-titre);
  letter-spacing:var(--ls-titre);
}
.fc-titre em{font-style:italic}

.fc-chapitre{
  font-family:var(--f-display);
  font-size:var(--t-chapitre);
  line-height:1.18;
  letter-spacing:-.014em;
}

.fc-sous{
  font-family:var(--f-lecture);
  font-size:var(--t-sous);
  line-height:1.52;
  font-weight:300;
  color:var(--texte-doux,var(--pierre));
  max-width:52ch;
}

.fc-label{
  font-family:var(--f-ui);
  font-size:var(--t-label);
  font-weight:500;
  letter-spacing:var(--ls-label);
  text-transform:uppercase;
  color:var(--accent,var(--glycine));
  display:inline-block;
}

.fc-lecture{
  font-family:var(--f-lecture);
  font-size:var(--t-corps);
  line-height:var(--lh-corps);
  font-weight:300;
  max-width:var(--largeur-texte);
  color:var(--texte-doux,var(--pierre));
}
.fc-lecture + .fc-lecture{margin-top:var(--e-3)}

.fc-petit{font-size:var(--t-petit);color:var(--texte-tres-doux)}


/* ═══ 8. PRIMITIVES DE MISE EN PAGE ════════════════════════════════════════ */

.fc-shell{
  width:100%;max-width:var(--largeur);
  margin-inline:auto;
  padding-inline:var(--marge);
}

.fc-section{
  position:relative;
  padding-block:clamp(var(--e-6),12vh,var(--e-8));
  overflow:clip;
}
.fc-section--serre{padding-block:clamp(var(--e-5),8vh,var(--e-6))}

/* Grille 12 colonnes — Locomotive §5, avec désalignements volontaires */
.fc-grille{
  display:grid;
  grid-template-columns:repeat(12,minmax(0,1fr));
  gap:var(--gouttiere);
}
.fc-col-3{grid-column:auto / span 3}
.fc-col-4{grid-column:auto / span 4}
.fc-col-5{grid-column:auto / span 5}
.fc-col-6{grid-column:auto / span 6}
.fc-col-7{grid-column:auto / span 7}
.fc-col-8{grid-column:auto / span 8}
.fc-col-12{grid-column:1 / -1}
.fc-depart-2{grid-column-start:2}
.fc-depart-3{grid-column-start:3}   /* le texte démarre col.3 — Locomotive §5 */
.fc-depart-4{grid-column-start:4}
.fc-depart-7{grid-column-start:7}

@media (max-width:900px){
  .fc-grille{grid-template-columns:repeat(6,minmax(0,1fr))}
  .fc-col-3,.fc-col-4,.fc-col-5,.fc-col-6,.fc-col-7,.fc-col-8{grid-column:1 / -1}
  .fc-depart-2,.fc-depart-3,.fc-depart-4,.fc-depart-7{grid-column-start:1}
}

/* Débordement en bleed — l'image sort de la grille */
.fc-bleed{width:100vw;margin-inline:calc(50% - 50vw)}
.fc-bleed-d{margin-right:calc(50% - 50vw);width:auto}

/* Filet horizontal */
.fc-filet{height:1px;background:var(--filet);border:0;width:100%}

/* Grain plein écran — 02_IMMERSIVE_GARDEN §7.7, unifie le rendu.
   Noir et blanc purs légitimes : c'est un masque de matière.               */
.fc-grain{position:relative}
.fc-grain::after{
  content:"";position:absolute;inset:0;pointer-events:none;z-index:2;
  opacity:.055;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.82' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  background-size:180px 180px;
}


/* ═══ 9. CURSEUR CUSTOM ════════════════════════════════════════════════════
   Locomotive §7.5 : cercle qui grossit + label au hover.                   */

.fc-curseur{
  position:fixed;top:0;left:0;z-index:8000;
  pointer-events:none;
  width:34px;height:34px;
  margin:-17px 0 0 -17px;
  border:1px solid var(--glycine);
  border-radius:var(--r-plein);
  mix-blend-mode:difference;
  opacity:0;
  transition:opacity var(--d-micro) var(--ease-doux),
             width .5s var(--ease-sortie),
             height .5s var(--ease-sortie),
             margin .5s var(--ease-sortie),
             background-color var(--d-micro) var(--ease-doux),
             border-color var(--d-micro) var(--ease-doux);
  will-change:transform;
}
.fc-curseur.est-visible{opacity:1}
.fc-curseur.est-actif{
  width:88px;height:88px;margin:-44px 0 0 -44px;
  background-color:var(--glycine);
  border-color:transparent;
}
.fc-curseur__label{
  position:absolute;inset:0;
  display:grid;place-items:center;
  font-family:var(--f-ui);font-size:var(--t-label);
  letter-spacing:var(--ls-label);text-transform:uppercase;
  color:var(--obsidienne);
  opacity:0;transform:scale(.7);
  transition:opacity var(--d-micro) var(--ease-doux),transform var(--d-micro) var(--ease-sortie);
}
.fc-curseur.est-actif .fc-curseur__label{opacity:1;transform:scale(1)}

@media (hover:none),(pointer:coarse){.fc-curseur{display:none}}


/* ═══ 10. LE SEUIL — page d'accueil avant le site ══════════════════════════
   Le compteur est réel (Synthèse §B.3) : il mesure le préchargement.
   Le dissolve est la signature empruntée à 02_IMMERSIVE_GARDEN.           */

.fc-seuil{
  position:fixed;inset:0;z-index:7000;
  display:grid;grid-template-rows:1fr auto;
  background-color:var(--obsidienne);
  padding:var(--marge);
}
.fc-seuil__centre{
  align-self:center;justify-self:center;text-align:center;
  display:grid;gap:var(--e-3);justify-items:center;
}
.fc-seuil__mot{
  font-family:var(--f-display);
  font-size:clamp(1.4rem,3vw,2.4rem);
  font-style:italic;
  color:var(--pierre);
  overflow:hidden;
}
.fc-seuil__compteur{
  font-family:var(--f-ui);
  font-size:var(--t-label);
  letter-spacing:var(--ls-label);
  color:var(--or-clair);
  font-variant-numeric:tabular-nums;
}
.fc-seuil__jauge{
  width:min(46vw,340px);height:1px;
  background:var(--filet-nuit);
  position:relative;overflow:hidden;
}
.fc-seuil__jauge span{
  position:absolute;inset:0;
  background:var(--or-clair);
  transform:scaleX(0);transform-origin:left;
}
/* `pointer-events` bascule immédiatement, sans attendre la fin du fondu :
   sinon un voile déjà transparent continue d'intercepter les clics — et dans
   un onglet étranglé, la transition de `visibility` peut tarder. */
.fc-seuil.est-parti{
  opacity:0;visibility:hidden;pointer-events:none;
  transition:opacity .9s var(--ease-rideau),visibility 0s .9s;
}


/* ═══ 11. LE VOILE — dissolve organique entre les pages ════════════════════
   02_IMMERSIVE_GARDEN §7.1 : dissolve par masque de bruit + progress.
   Version CSS : aucun WebGL requis, donc aucun fallback à écrire.         */

@property --fc-voile{syntax:'<percentage>';inherits:false;initial-value:0%}

.fc-voile{
  position:fixed;inset:0;z-index:7500;
  pointer-events:none;
  background-color:var(--obsidienne);
  opacity:0;
  --fc-voile:0%;
  -webkit-mask-image:
    radial-gradient(120% 120% at 50% 50%, #000 var(--fc-voile), transparent calc(var(--fc-voile) + 42%)),
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='260' height='260'%3E%3Cfilter id='d'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.035' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23d)'/%3E%3C/svg%3E");
  mask-image:
    radial-gradient(120% 120% at 50% 50%, #000 var(--fc-voile), transparent calc(var(--fc-voile) + 42%)),
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='260' height='260'%3E%3Cfilter id='d'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.035' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23d)'/%3E%3C/svg%3E");
  -webkit-mask-composite:source-in;
  mask-composite:intersect;
  -webkit-mask-size:100% 100%,260px 260px;
  mask-size:100% 100%,260px 260px;
}
.fc-voile.est-actif{opacity:1}


/* ═══ 12. EN-TÊTE ══════════════════════════════════════════════════════════ */

.fc-entete{
  position:fixed;top:0;left:0;right:0;z-index:6000;
  padding-block:var(--e-3);
  transition:transform var(--d-reveal) var(--ease-sortie),
             background-color var(--d-micro) var(--ease-doux),
             padding-block var(--d-micro) var(--ease-doux);
}
.fc-entete.est-pose{
  background-color:var(--voile-nuit);
  backdrop-filter:saturate(1.4) blur(18px);
  -webkit-backdrop-filter:saturate(1.4) blur(18px);
  padding-block:var(--e-2);
  border-bottom:1px solid var(--filet-nuit);
}
.fc-entete.est-cache{transform:translateY(-102%)}

.fc-entete__inner{
  display:flex;align-items:center;justify-content:space-between;
  gap:var(--e-4);
}

.fc-marque{display:flex;align-items:center;gap:.7rem}
.fc-marque__signe{width:30px;height:auto;flex:none}
.fc-marque__nom{
  font-family:var(--f-display);
  font-size:.95rem;letter-spacing:.16em;text-transform:uppercase;
  color:var(--ivoire);white-space:nowrap;
}

.fc-nav{display:flex;align-items:center;gap:clamp(1rem,1.9vw,2.1rem)}
.fc-nav a{
  position:relative;
  font-size:var(--t-petit);
  letter-spacing:.045em;
  color:var(--pierre);
  padding-block:.3rem;
  transition:color var(--d-micro) var(--ease-doux);
}
.fc-nav a::after{
  content:"";position:absolute;left:0;right:0;bottom:0;height:1px;
  background:currentColor;
  transform:scaleX(0);transform-origin:right;         /* Locomotive §9 */
  transition:transform .45s var(--ease-sortie);
}
.fc-nav a:hover,.fc-nav a[aria-current="page"]{color:var(--ivoire)}
.fc-nav a:hover::after,.fc-nav a[aria-current="page"]::after{
  transform:scaleX(1);transform-origin:left;
}
@media (max-width:1100px){.fc-nav{display:none}}

.fc-entete__droite{display:flex;align-items:center;gap:var(--e-3)}

/* Signature sonore — présence discrète dans l'entête. Le son reste opt-in.
   Le motif italien est traité comme une matière, jamais comme un jingle. */
.fc-son-global{
  display:inline-flex;align-items:center;gap:.48rem;min-height:32px;padding:.25rem .15rem;
  color:color-mix(in oklab,var(--carrara) 62%,transparent);
  font-family:var(--f-interface);font-size:.54rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;
  transition:color var(--d-micro) var(--ease-doux),transform var(--d-micro) var(--ease-sortie);
}
.fc-son-global:hover,.fc-son-global:focus-visible{color:var(--ivoire)}
.fc-son-global > i{display:inline-flex;align-items:end;gap:2px;width:14px;height:14px;flex:none}
.fc-son-global > i span{display:block;width:2px;height:28%;background:currentColor;border-radius:var(--r-plein);transform-origin:bottom;transition:height .36s var(--ease-doux)}
.fc-son-global > i span:nth-child(2){height:72%}.fc-son-global > i span:nth-child(3){height:46%}
.fc-son-global.joue > i span{animation:fc-son-impulsion 1.4s ease-in-out infinite alternate}
.fc-son-global.joue > i span:nth-child(2){animation-delay:-.45s}.fc-son-global.joue > i span:nth-child(3){animation-delay:-.8s}
.fc-son-global b{font:inherit;color:inherit}
@keyframes fc-son-impulsion{0%{transform:scaleY(.48);opacity:.58}100%{transform:scaleY(1);opacity:1}}
@media (max-width:1240px){.fc-son-global b{display:none}}
@media (max-width:700px){.fc-son-global{padding-inline:.3rem}.fc-son-global > i{width:13px}}
@media (prefers-reduced-motion:reduce){.fc-son-global.joue > i span{animation:none}}

.fc-langues{display:flex;align-items:center;gap:.45rem;font-size:var(--t-label);letter-spacing:.14em}
.fc-langues a{color:var(--texte-tres-doux,var(--pierre));transition:color var(--d-micro) var(--ease-doux)}
.fc-langues a:hover{color:var(--ivoire)}
.fc-langues a.est-active{color:var(--or-clair)}
.fc-langues span{color:var(--texte-tres-doux,var(--pierre));opacity:.5}

.fc-bascule{
  display:none;width:34px;height:22px;position:relative;flex:none;
}
.fc-bascule span{
  position:absolute;left:0;right:0;height:1px;background:var(--ivoire);
  transition:transform var(--d-micro) var(--ease-rideau),opacity var(--d-micro) linear;
}
.fc-bascule span:nth-child(1){top:3px}
.fc-bascule span:nth-child(2){top:50%}
.fc-bascule span:nth-child(3){bottom:3px}
.fc-bascule[aria-expanded="true"] span:nth-child(1){transform:translateY(8px) rotate(45deg)}
.fc-bascule[aria-expanded="true"] span:nth-child(2){opacity:0}
.fc-bascule[aria-expanded="true"] span:nth-child(3){transform:translateY(-8px) rotate(-45deg)}
@media (max-width:1100px){.fc-bascule{display:block}}

/* Navigation mobile — rideau plein écran */
.fc-mobnav{
  position:fixed;inset:0;z-index:5900;
  background-color:var(--obsidienne);
  display:grid;align-content:center;gap:var(--e-2);
  padding:var(--marge);
  clip-path:inset(0 0 100% 0);
  transition:clip-path var(--d-page) var(--ease-rideau);
  visibility:hidden;
}
.fc-mobnav.est-ouverte{clip-path:inset(0 0 0 0);visibility:visible}
.fc-mobnav a{
  font-family:var(--f-display);
  font-size:clamp(1.6rem,6vw,2.6rem);
  color:var(--ivoire);
  padding-block:.24rem;
  opacity:0;transform:translateY(28px);
  transition:opacity .6s var(--ease-sortie),transform .6s var(--ease-sortie);
}
.fc-mobnav.est-ouverte a{opacity:1;transform:none}
.fc-mobnav__langues{display:flex;gap:var(--e-3);margin-top:var(--e-3)}
.fc-mobnav__langues a{font-family:var(--f-ui);font-size:var(--t-label);letter-spacing:var(--ls-label);text-transform:uppercase;color:var(--pierre)}


/* ═══ 13. COMPOSANTS ═══════════════════════════════════════════════════════ */

/* — Lien fléché — le soulignement se trace, Locomotive §9 — */
.fc-lien{
  display:inline-flex;align-items:center;gap:.6rem;
  font-size:var(--t-petit);
  letter-spacing:.09em;text-transform:uppercase;
  color:var(--accent,var(--glycine));
  position:relative;padding-block:.45rem;
}
.fc-lien::after{
  content:"";position:absolute;left:0;right:0;bottom:0;height:1px;
  background:currentColor;opacity:.45;
  transform:scaleX(0);transform-origin:right;
  transition:transform .55s var(--ease-sortie);
}
.fc-lien:hover::after{transform:scaleX(1);transform-origin:left}
.fc-lien i{font-style:normal;transition:transform .45s var(--ease-sortie)}
.fc-lien:hover i{transform:translateX(7px)}

/* — Bouton, avec magnetic hover piloté en JS — */
.fc-bouton{
  display:inline-flex;align-items:center;justify-content:center;gap:.7rem;
  padding:1.05rem 2.3rem;
  font-size:var(--t-label);letter-spacing:var(--ls-label);text-transform:uppercase;
  border:1px solid currentColor;
  border-radius:var(--r-plein);
  color:var(--texte,var(--ivoire));
  position:relative;overflow:hidden;isolation:isolate;
  transition:color .5s var(--ease-sortie);
  will-change:transform;
}
.fc-bouton::before{
  content:"";position:absolute;inset:0;z-index:-1;
  background:var(--texte,var(--ivoire));
  transform:translateY(101%);
  transition:transform .6s var(--ease-sortie);
}
.fc-bouton:hover{color:var(--surface,var(--obsidienne))}
.fc-bouton:hover::before{transform:translateY(0)}
.fc-bouton--plein{
  background:var(--violet);border-color:var(--violet);color:var(--albe);
}
.fc-bouton--plein::before{background:var(--albe)}
.fc-bouton--plein:hover{color:var(--violet)}

/* — Marquee infini, Locomotive §7.6 — */
.fc-bandeau{
  overflow:hidden;white-space:nowrap;
  border-block:1px solid var(--filet);
  padding-block:var(--e-3);
  user-select:none;
}
.fc-bandeau__piste{display:inline-flex;gap:var(--e-4);will-change:transform}
.fc-bandeau__piste > span{
  font-family:var(--f-display);
  font-size:clamp(1.6rem,3.4vw,3.2rem);
  font-style:italic;
  color:var(--texte-tres-doux);
  display:inline-flex;align-items:center;gap:var(--e-4);
}
.fc-bandeau__piste > span::after{
  content:"";width:7px;height:7px;border-radius:var(--r-plein);
  background:var(--ornement);flex:none;
}

/* — Figure avec reveal par clip-path et scale 1.15 → 1, Locomotive §7.7 — */
.fc-figure{position:relative;overflow:hidden;background-color:var(--surface-2)}
.fc-figure img{width:100%;height:100%;object-fit:cover}
.fc-figure figcaption{
  margin-top:var(--e-2);
  font-size:var(--t-label);letter-spacing:.13em;text-transform:uppercase;
  color:var(--texte-tres-doux);
}
.fc-figure--haute{aspect-ratio:4 / 5}
.fc-figure--large{aspect-ratio:16 / 9}
.fc-figure--carree{aspect-ratio:1}

/* — Carte projet — */
.fc-carte{
  position:relative;display:block;overflow:hidden;
  background-color:var(--surface-2);
}
.fc-carte__media{display:block;overflow:hidden;aspect-ratio:3 / 4}
.fc-carte__media img{
  width:100%;height:100%;object-fit:cover;
  transform:scale(1.02);
  transition:transform 1.1s var(--ease-sortie),filter 1.1s var(--ease-sortie);
}
.fc-carte:hover .fc-carte__media img{transform:scale(1.09)}
.fc-carte__corps{display:block;padding:var(--e-3) 0 0}
.fc-carte__lieu{
  display:block;
  font-size:var(--t-label);letter-spacing:var(--ls-label);text-transform:uppercase;
  color:var(--ornement);
}
.fc-carte__titre{
  display:block;
  font-family:var(--f-display);
  font-size:var(--t-chapitre);margin-top:.5rem;
  color:var(--texte);
  transition:transform .6s var(--ease-sortie);
}
.fc-carte:hover .fc-carte__titre{transform:translateX(10px)}   /* Locomotive §9 */
.fc-carte__note{display:block;margin-top:.6rem;color:var(--texte-doux);font-size:var(--t-petit)}

/* — Liste de définitions éditoriale — */
.fc-deflist{display:grid;gap:0}
.fc-defrow{
  display:grid;grid-template-columns:minmax(0,4fr) minmax(0,7fr);
  gap:var(--gouttiere);
  padding-block:var(--e-4);
  border-top:1px solid var(--filet);
}
.fc-defrow:last-child{border-bottom:1px solid var(--filet)}
.fc-defrow dt{
  font-family:var(--f-display);
  font-size:var(--t-chapitre);
  color:var(--texte);
}
.fc-defrow dd{color:var(--texte-doux);font-family:var(--f-lecture);font-weight:300}
@media (max-width:760px){
  .fc-defrow{grid-template-columns:1fr;gap:var(--e-2)}
}

/* — Chiffre / preuve — */
.fc-chiffre{display:grid;gap:.4rem}
.fc-chiffre__valeur{
  font-family:var(--f-display);
  font-size:clamp(2.6rem,5vw,4.4rem);
  line-height:1;
  color:var(--texte);
  font-variant-numeric:tabular-nums;
}
.fc-chiffre__legende{
  font-size:var(--t-label);letter-spacing:.15em;text-transform:uppercase;
  color:var(--texte-tres-doux);
}

/* — Citation — */
.fc-citation{
  font-family:var(--f-display);
  font-size:var(--t-titre);
  font-style:italic;
  line-height:1.22;
  letter-spacing:var(--ls-titre);
  color:var(--texte);
  max-width:22ch;
}
.fc-citation__source{
  display:block;margin-top:var(--e-3);
  font-family:var(--f-ui);font-style:normal;
  font-size:var(--t-label);letter-spacing:var(--ls-label);text-transform:uppercase;
  color:var(--ornement);
}

/* — Filigrane de marque — */
.fc-filigrane{
  position:absolute;pointer-events:none;
  opacity:.05;width:min(38vw,420px);
}
.fc-filigrane--bd{right:calc(var(--marge) * -.3);bottom:-8%}
.fc-filigrane--hg{left:calc(var(--marge) * -.3);top:-8%}


/* ═══ 14. LE SEUIL — composition de la page d'accueil ══════════════════════ */

.fc-porte{
  position:relative;min-height:100svh;min-height:100dvh;
  display:grid;grid-template-rows:auto 1fr auto;
  padding:var(--marge);
  overflow:hidden;
  isolation:isolate;
}
.fc-porte__scene{
  position:absolute;inset:0;z-index:-2;
  background-color:var(--obsidienne);
}
.fc-porte__scene canvas{width:100%;height:100%;display:block}
.fc-porte__scene img,.fc-porte__scene video{
  width:100%;height:100%;object-fit:cover;
}
/* voile de lisibilité — la surface qui porte réellement le texte */
.fc-porte__ombre{
  position:absolute;inset:0;z-index:-1;pointer-events:none;
  background:
    linear-gradient(180deg,
      oklch(.1220 calc(var(--c) * var(--c-ink) * .0141) var(--h-ink) / .78) 0%,
      oklch(.1220 calc(var(--c) * var(--c-ink) * .0141) var(--h-ink) / .48) 42%,
      oklch(.1220 calc(var(--c) * var(--c-ink) * .0141) var(--h-ink) / .88) 100%),
    radial-gradient(72% 58% at 50% 46%,
      transparent 0%,
      oklch(.1220 calc(var(--c) * var(--c-ink) * .0141) var(--h-ink) / .55) 100%);
}

.fc-porte__haut{
  display:flex;align-items:center;justify-content:space-between;
  gap:var(--e-3);
}

.fc-porte__centre{
  align-self:center;
  display:grid;gap:var(--e-4);justify-items:center;text-align:center;
  padding-block:var(--e-5);
}
.fc-porte__monument{
  font-family:var(--f-display);
  font-size:clamp(2.9rem,9.5vw,9.5rem);
  line-height:.92;
  letter-spacing:var(--ls-monument);
  color:var(--ivoire);
}
.fc-porte__monument em{font-style:italic;color:var(--glycine)}
.fc-porte__monument [data-fc-ligne]{display:block}
.fc-porte__note{
  font-family:var(--f-lecture);font-weight:300;
  font-size:var(--t-sous);
  color:var(--pierre);max-width:44ch;
}

.fc-portes{
  display:flex;flex-wrap:wrap;gap:var(--e-2);justify-content:center;
  margin-top:var(--e-2);
}
.fc-porte-lien{
  position:relative;
  display:grid;gap:.3rem;justify-items:center;
  padding:1.15rem 2.4rem;
  border:1px solid var(--filet-nuit);
  border-radius:var(--r-plein);
  overflow:hidden;isolation:isolate;
  color:var(--ivoire);
  transition:color .55s var(--ease-sortie),border-color .55s var(--ease-sortie);
  will-change:transform;
}
.fc-porte-lien::before{
  content:"";position:absolute;inset:0;z-index:-1;
  background:var(--ivoire);
  transform:translateY(101%);
  transition:transform .65s var(--ease-sortie);
}
.fc-porte-lien:hover{color:var(--obsidienne);border-color:var(--ivoire)}
.fc-porte-lien:hover::before{transform:translateY(0)}
.fc-porte-lien__langue{
  font-family:var(--f-display);font-size:1.5rem;line-height:1;
}
.fc-porte-lien__mot{
  font-size:var(--t-label);letter-spacing:var(--ls-label);text-transform:uppercase;
  opacity:.7;
}

.fc-porte__bas{
  display:flex;align-items:flex-end;justify-content:space-between;
  gap:var(--e-3);
  font-size:var(--t-label);letter-spacing:.16em;text-transform:uppercase;
  color:var(--texte-tres-doux,var(--pierre));
}
.fc-porte__son{
  display:inline-flex;align-items:center;gap:.55rem;
  color:var(--pierre);
  transition:color var(--d-micro) var(--ease-doux);
}
.fc-porte__son:hover{color:var(--ivoire)}
.fc-porte__son i{
  font-style:normal;width:14px;height:14px;flex:none;
  border:1px solid currentColor;border-radius:var(--r-plein);
  position:relative;
}
.fc-porte__son.joue i::after{
  content:"";position:absolute;inset:3px;border-radius:var(--r-plein);
  background:currentColor;
}
@media (max-width:700px){
  .fc-porte__bas{flex-direction:column;align-items:flex-start;gap:var(--e-2)}
}


/* Alerte du garde de sécurité — composant système, sans couleur en dur JS. */
.fc-security-toast{
  position:fixed;right:18px;bottom:18px;z-index:7405;max-width:360px;
  padding:14px 16px;border:1px solid var(--filet-or);border-radius:18px;
  background:color-mix(in oklab,var(--ivoire) 96%,transparent);color:var(--encre);
  box-shadow:0 18px 70px color-mix(in oklab,var(--profond) 18%,transparent);
  font:500 12px/1.55 var(--f-interface);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);
}
@media (max-width:700px){.fc-security-toast{left:var(--marge);right:var(--marge);bottom:1rem;max-width:none}}

/* ═══ 15. SECTIONS D'ACCUEIL ═══════════════════════════════════════════════ */

/* — Héros — plan de cinéma, le texte en surimpression — */
.fc-heros{
  position:relative;min-height:100svh;min-height:100dvh;
  display:grid;align-items:end;
  padding-block:calc(var(--e-7)) var(--e-6);
  overflow:hidden;isolation:isolate;
}
.fc-heros__scene{position:absolute;inset:0;z-index:-2;background-color:var(--obsidienne)}
.fc-heros__scene canvas,.fc-heros__scene img,.fc-heros__scene video{
  width:100%;height:100%;object-fit:cover;display:block;
}
.fc-heros__ombre{
  position:absolute;inset:0;z-index:-1;pointer-events:none;
  background:linear-gradient(180deg,
    oklch(.1220 calc(var(--c) * var(--c-ink) * .0141) var(--h-ink) / .70) 0%,
    oklch(.1220 calc(var(--c) * var(--c-ink) * .0141) var(--h-ink) / .30) 45%,
    oklch(.1220 calc(var(--c) * var(--c-ink) * .0141) var(--h-ink) / .92) 100%);
}
.fc-heros__corps{display:grid;gap:var(--e-3);max-width:20ch}
.fc-heros__titre{
  font-family:var(--f-display);
  font-size:var(--t-monument);
  line-height:.9;letter-spacing:var(--ls-monument);
  color:var(--ivoire);
}
.fc-heros__titre em{display:block;font-style:italic;color:var(--glycine)}
.fc-heros__pied{
  display:flex;flex-wrap:wrap;align-items:center;gap:var(--e-4);
  margin-top:var(--e-4);
  padding-top:var(--e-3);
  border-top:1px solid var(--filet-nuit);
}


/* Accueil couture — la vidéo reste la source visuelle ; la matière WebGL,
   les filets et les arcs ne sont que des couches optiques. */
.fc-heros--couture{--fc-home-x:0;--fc-home-y:0;padding-top:clamp(8.5rem,15vh,12rem)}
.fc-heros--couture .fc-heros__scene{inset:clamp(.8rem,1.25vw,1.4rem);border:1px solid color-mix(in oklab,var(--carrara) 7%,transparent);overflow:hidden}
.fc-heros--couture .fc-heros__scene::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(118deg,color-mix(in oklab,var(--nuit) 70%,transparent) 3%,transparent 48%,color-mix(in oklab,var(--or-clair) 5%,transparent) 76%,color-mix(in oklab,var(--nuit) 48%,transparent));mix-blend-mode:soft-light}
.fc-heros--couture .fc-heros__scene video{filter:saturate(.7) contrast(1.1) brightness(.78);transform:scale(1.025);transition:filter 1.4s var(--ease-doux),transform 1.8s var(--ease-camera)}
.fc-heros--couture.est-compose .fc-heros__scene video{transform:scale(1)}
.fc-heros--couture .fc-shell{position:relative;z-index:4}
.fc-heros--couture .fc-heros__corps{max-width:min(78rem,86vw);padding-bottom:clamp(1.8rem,3.5vh,3rem)}
.fc-heros--couture .fc-heros__titre{font-size:clamp(4.8rem,10.4vw,11.8rem);max-width:8.8ch;text-wrap:balance;text-shadow:0 20px 70px color-mix(in oklab,var(--nuit) 54%,transparent)}
.fc-heros--couture .fc-heros__titre em{color:color-mix(in oklab,var(--ivoire) 74%,var(--glycine));font-weight:400}
.fc-heros--couture .fc-heros__pied{display:grid;grid-template-columns:minmax(18rem,1.15fr) auto;justify-content:space-between;align-items:end;gap:clamp(2rem,5vw,7rem);border-color:color-mix(in oklab,var(--carrara) 16%,transparent)}
.fc-heros--couture .fc-sous{max-width:48ch;font-family:var(--f-editorial);font-size:clamp(1.02rem,1.35vw,1.35rem);line-height:1.55;color:color-mix(in oklab,var(--carrara) 74%,transparent)}
.fc-heros__architecture{position:absolute;inset:0;z-index:2;pointer-events:none;overflow:hidden;mix-blend-mode:screen}
.fc-heros__arc{position:absolute;border:1px solid color-mix(in oklab,var(--or-clair) 20%,transparent);border-radius:50%;opacity:.44;transform:translate3d(calc(var(--fc-home-x) * 10px),calc(var(--fc-home-y) * 7px),0);transition:opacity .8s var(--ease-doux)}
.fc-heros__arc--a{width:min(58vw,56rem);aspect-ratio:1;right:-18vw;top:-20vw;box-shadow:inset 0 0 0 1px color-mix(in oklab,var(--glycine) 6%,transparent),0 0 90px color-mix(in oklab,var(--or-clair) 4%,transparent)}
.fc-heros__arc--b{width:min(30vw,30rem);aspect-ratio:1;right:8vw;top:17vh;border-color:color-mix(in oklab,var(--glycine) 18%,transparent);transform:translate3d(calc(var(--fc-home-x) * -14px),calc(var(--fc-home-y) * -10px),0)}
.fc-heros__ligne-verticale{position:absolute;right:11.5vw;top:13vh;bottom:12vh;width:1px;background:linear-gradient(transparent,color-mix(in oklab,var(--or-clair) 42%,transparent) 32%,color-mix(in oklab,var(--carrara) 12%,transparent) 68%,transparent);transform:scaleY(.72);transform-origin:center;opacity:.58}
.fc-heros__monogramme{position:absolute;right:clamp(2rem,5vw,5.8rem);bottom:clamp(7rem,14vh,10rem);font-family:var(--f-display);font-size:clamp(3rem,6vw,7rem);line-height:1;letter-spacing:-.08em;color:color-mix(in oklab,var(--carrara) 7%,transparent);transform:translate3d(calc(var(--fc-home-x) * -5px),calc(var(--fc-home-y) * -4px),0);user-select:none}
@media (max-width:900px){
  .fc-heros--couture{padding-top:7rem;padding-bottom:5.2rem}
  .fc-heros--couture .fc-heros__scene{inset:.55rem}
  .fc-heros--couture .fc-heros__titre{font-size:clamp(3.7rem,16vw,6.4rem);max-width:7.3ch}
  .fc-heros--couture .fc-heros__pied{grid-template-columns:1fr;gap:1.35rem}
  .fc-heros--couture .fc-sous{max-width:32ch;font-size:1rem}
  .fc-heros__arc--a{width:95vw;right:-45vw;top:4vh}.fc-heros__arc--b{width:54vw;right:-10vw;top:22vh}
  .fc-heros__ligne-verticale{right:8vw;top:18vh;bottom:18vh}.fc-heros__monogramme{right:1.2rem;bottom:7rem;font-size:4rem}
}

/* — Défilement suggéré — */
.fc-defile{
  position:absolute;left:50%;bottom:var(--e-3);transform:translateX(-50%);
  display:grid;justify-items:center;gap:.6rem;
  font-size:var(--t-label);letter-spacing:var(--ls-label);text-transform:uppercase;
  color:var(--pierre);z-index:1;
}
.fc-defile__trait{
  width:1px;height:52px;background:var(--filet-nuit);position:relative;overflow:hidden;
}
.fc-defile__trait::after{
  content:"";position:absolute;left:0;right:0;top:-52px;height:52px;
  background:var(--or-clair);
  animation:fc-descend 2.6s var(--ease-doux) infinite;
}
@keyframes fc-descend{
  0%{transform:translateY(0)}
  100%{transform:translateY(104px)}
}

/* — Manifeste — la déclaration, texte seul, très grand — */
.fc-manifeste__texte{
  font-family:var(--f-display);
  font-size:clamp(1.8rem,4.4vw,4rem);
  line-height:1.14;letter-spacing:-.02em;
  color:var(--texte);
  max-width:24ch;
}
.fc-manifeste__texte em{font-style:italic;color:var(--accent)}

/* — Domaines — */
.fc-domaines{display:grid;gap:0}
.fc-domaine{
  display:grid;grid-template-columns:auto minmax(0,1fr) auto;
  gap:var(--gouttiere);align-items:center;
  padding-block:var(--e-4);
  border-top:1px solid var(--filet);
  position:relative;
  transition:padding-inline .7s var(--ease-sortie);
}
.fc-domaine:last-child{border-bottom:1px solid var(--filet)}
.fc-domaine:hover{padding-inline:var(--e-2)}
.fc-domaine__num{
  font-family:var(--f-ui);font-size:var(--t-label);
  letter-spacing:.2em;color:var(--ornement);
  font-variant-numeric:tabular-nums;
}
.fc-domaine__titre{
  display:block;
  font-family:var(--f-display);
  font-size:clamp(1.5rem,3.4vw,2.9rem);
  line-height:1.1;
  color:var(--texte);
}
.fc-domaine__note{
  display:block;
  color:var(--texte-doux);font-size:var(--t-petit);
  max-width:46ch;margin-top:.5rem;
}
.fc-domaine__fleche{color:var(--texte-tres-doux);transition:transform .6s var(--ease-sortie)}
.fc-domaine:hover .fc-domaine__fleche{transform:translateX(10px)}
@media (max-width:760px){
  .fc-domaine{grid-template-columns:auto minmax(0,1fr);}
  .fc-domaine__fleche{display:none}
}

/* — Bande projets, défilement horizontal, Locomotive §7.4 — */
.fc-piste{position:relative;overflow:hidden}
.fc-piste__rail{display:flex;gap:var(--gouttiere);will-change:transform}
.fc-piste__item{flex:0 0 clamp(260px,26vw,400px)}


/* ═══ 16. PIED DE PAGE ═════════════════════════════════════════════════════ */

.fc-pied{position:relative;padding-block:var(--e-6) var(--e-4);overflow:clip}
.fc-pied__haut{
  display:grid;
  grid-template-columns:minmax(0,1.4fr) repeat(4,minmax(0,1fr));
  gap:var(--e-4) var(--gouttiere);
}
@media (max-width:1000px){.fc-pied__haut{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.fc-pied__haut{grid-template-columns:1fr}}

.fc-pied__signe{width:64px;margin-bottom:var(--e-3);opacity:.9}
.fc-pied__nom{
  font-family:var(--f-display);font-size:1.05rem;
  letter-spacing:.18em;text-transform:uppercase;color:var(--ivoire);
}
.fc-pied__devise{
  font-family:var(--f-display);font-style:italic;
  font-size:1.25rem;color:var(--glycine);margin-top:var(--e-2);
}
.fc-pied__ultime{
  font-size:var(--t-label);letter-spacing:var(--ls-label);text-transform:uppercase;
  color:var(--or-clair);margin-top:var(--e-2);
}
.fc-pied__titre{
  font-size:var(--t-label);letter-spacing:var(--ls-label);text-transform:uppercase;
  color:var(--or-clair);margin-bottom:var(--e-2);
}
.fc-pied li{margin-bottom:.55rem}
.fc-pied li a{
  font-size:var(--t-petit);color:var(--pierre);
  transition:color var(--d-micro) var(--ease-doux);
}
.fc-pied li a:hover{color:var(--ivoire)}
.fc-pied__adresse{margin-top:var(--e-2);font-size:var(--t-petit);color:var(--texte-tres-doux)}
.fc-pied__bas{
  margin-top:var(--e-5);padding-top:var(--e-3);
  border-top:1px solid var(--filet-nuit);
  display:flex;flex-wrap:wrap;gap:var(--e-2) var(--e-4);
  justify-content:space-between;align-items:baseline;
}
.fc-pied__legal{font-size:var(--t-petit);color:var(--texte-tres-doux);max-width:62ch}
.fc-pied__meta{font-size:var(--t-label);letter-spacing:.1em;color:var(--texte-tres-doux)}
.fc-pied__meta a{color:var(--pierre)}
.fc-pied__meta a:hover{color:var(--ivoire)}


/* ═══ 17. RÉVÉLATIONS AU SCROLL ════════════════════════════════════════════
   Synthèse §B.5 : masque + translateY, jamais un fondu simple.
   L'état initial est posé sans condition — sinon l'ajout de la classe par JS
   ferait sauter le contenu déjà peint. Le bloc <noscript> de chaque page
   annule ces trois règles : sans JS, tout reste visible.                   */

[data-fc-ligne]{display:block;overflow:hidden}
[data-fc-ligne] > span{
  display:block;
  transform:translateY(105%);
  transition:transform var(--d-reveal) var(--ease-sortie);
  transition-delay:var(--fc-delai,0s);
}
[data-fc-ligne].est-vue > span{transform:translateY(0)}

[data-fc-monte]{
  opacity:0;transform:translateY(38px);
  transition:opacity var(--d-reveal) var(--ease-sortie),
             transform var(--d-reveal) var(--ease-sortie);
  transition-delay:var(--fc-delai,0s);
}
[data-fc-monte].est-vue{opacity:1;transform:none}

/* Image : clip-path + scale 1.15 → 1, Locomotive §7.7 */
[data-fc-clip]{clip-path:inset(0 0 100% 0);transition:clip-path 1.25s var(--ease-rideau)}
[data-fc-clip].est-vue{clip-path:inset(0 0 0 0)}
[data-fc-clip] img{
  transform:scale(1.15);
  transition:transform 1.6s var(--ease-sortie);
}
[data-fc-clip].est-vue img{transform:scale(1)}


/* ═══ 18. ACCESSIBILITÉ & IMPRESSION ═══════════════════════════════════════ */

/* Locomotive §11 : la courbe s'arrête, le contenu reste. */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{
    animation-duration:.001ms!important;
    animation-iteration-count:1!important;
    transition-duration:.001ms!important;
    scroll-behavior:auto!important;
  }
  html{scroll-behavior:auto}
  [data-fc-ligne] > span{transform:none}
  [data-fc-monte]{opacity:1;transform:none}
  [data-fc-clip]{clip-path:none}
  [data-fc-clip] img{transform:none}
  .fc-curseur{display:none}
  .fc-defile__trait::after{animation:none;top:0}
  .fc-bandeau__piste{transform:none!important}
}

@media (prefers-contrast:more){
  :root{--c:1.15}
  .fc-nuit{--texte-tres-doux:var(--ivoire)}
  .fc-jour{--texte-tres-doux:var(--encre)}
  .fc-porte__ombre,.fc-heros__ombre{filter:brightness(.72)}
}

@media print{
  .fc-entete,.fc-mobnav,.fc-curseur,.fc-voile,.fc-seuil,
  .fc-defile,.fc-bandeau,.fc-porte__scene,.fc-heros__scene{display:none!important}
  *{background:transparent!important;color:#000!important;box-shadow:none!important}
  .fc-section{padding-block:1.5rem}
  a[href^="http"]::after{content:" (" attr(href) ")";font-size:.7em}
}


/* ═══════════════════════════════════════════════════════════════════════════
   19. CATALOGUE ÉTENDU — les dix archives
   ───────────────────────────────────────────────────────────────────────────
   Chaque bloc porte l'archive et la section dont la technique est tirée.
   ═══════════════════════════════════════════════════════════════════════════ */


/* — 19.1 Split-text au mot et à la lettre — 09_MERCI_MICHEL §7.3 ─────────── */

.fc-mot{display:inline-block;overflow:hidden;vertical-align:top}
.fc-mot > span{
  display:inline-block;
  transform:translateY(105%) rotate(4deg);
  transition:transform var(--d-reveal) var(--ease-sortie);
  transition-delay:var(--fc-delai,0s);
}
.est-vue .fc-mot > span,.fc-mot.est-vue > span{transform:none}

.fc-lettre{display:inline-block;will-change:transform}

/* Révélation mot à mot par opacité progressive — 06_HELLO_MONDAY §7.5 */
[data-fc-lueur]{color:var(--texte-tres-doux)}
[data-fc-lueur] .fc-mot-lueur{
  color:var(--texte-tres-doux);
  transition:color .5s var(--ease-doux);
}
[data-fc-lueur] .fc-mot-lueur.est-lu{color:var(--texte)}


/* — 19.2 Chapitres collants + progression — 10_DOGSTUDIO §7.6 / 06 §7.6 ─── */

.fc-chapitres{
  position:fixed;right:var(--marge);top:50%;transform:translateY(-50%);
  z-index:5500;display:grid;gap:.9rem;
  pointer-events:none;opacity:0;
  transition:opacity .6s var(--ease-doux);
}
.fc-chapitres.est-visible{opacity:1;pointer-events:auto}
.fc-chapitre-puce{
  display:flex;align-items:center;gap:.7rem;justify-content:flex-end;
  font-size:var(--t-label);letter-spacing:.16em;text-transform:uppercase;
  color:var(--texte-tres-doux);
}
.fc-chapitre-puce__mot{
  opacity:0;transform:translateX(8px);
  transition:opacity .45s var(--ease-sortie),transform .45s var(--ease-sortie);
  white-space:nowrap;
}
.fc-chapitre-puce:hover .fc-chapitre-puce__mot,
.fc-chapitre-puce.est-active .fc-chapitre-puce__mot{opacity:1;transform:none}
.fc-chapitre-puce__trait{
  width:22px;height:1px;background:currentColor;opacity:.4;flex:none;
  transition:width .55s var(--ease-sortie),opacity .55s var(--ease-doux),background-color .55s var(--ease-doux);
}
.fc-chapitre-puce.est-active .fc-chapitre-puce__trait{
  width:44px;opacity:1;background:var(--ornement);
}
.fc-chapitre-puce.est-active{color:var(--texte)}
@media (max-width:1100px){.fc-chapitres{display:none}}

/* Jauge de progression du parcours */
.fc-progres{
  position:fixed;left:0;top:0;height:2px;z-index:6100;
  background:var(--or-clair);
  transform:scaleX(0);transform-origin:left;width:100%;
}


/* — 19.3 Navigation en blend-mode — 04_MONKS §7.6 ───────────────────────── */

.fc-entete--fusion .fc-marque__nom,
.fc-entete--fusion .fc-nav a,
.fc-entete--fusion .fc-langues{
  mix-blend-mode:difference;color:var(--albe);
}
.fc-entete--fusion.est-pose .fc-marque__nom,
.fc-entete--fusion.est-pose .fc-nav a,
.fc-entete--fusion.est-pose .fc-langues{mix-blend-mode:normal}


/* — 19.4 Vignette vidéo au survol — 04_MONKS §7.1 ───────────────────────── */

.fc-vignette{position:relative;overflow:hidden;display:block}
.fc-vignette video{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  opacity:0;transition:opacity .55s var(--ease-doux);
}
.fc-vignette.est-jouee video{opacity:1}
.fc-vignette img{transition:transform 1.1s var(--ease-sortie)}
.fc-vignette.est-jouee img{transform:scale(1.04)}


/* — 19.5 Filtres avec transition FLIP — 04_MONKS §7.3 ───────────────────── */

.fc-filtres{
  display:flex;flex-wrap:wrap;gap:.6rem;
  padding-block:var(--e-3);
  border-bottom:1px solid var(--filet);
  margin-bottom:var(--e-4);
}
.fc-filtre{
  padding:.55rem 1.25rem;border:1px solid var(--filet);border-radius:var(--r-plein);
  font-size:var(--t-label);letter-spacing:.14em;text-transform:uppercase;
  color:var(--texte-doux);
  transition:color var(--d-micro) var(--ease-doux),border-color var(--d-micro) var(--ease-doux),background-color var(--d-micro) var(--ease-doux);
}
.fc-filtre:hover{color:var(--texte);border-color:var(--texte-tres-doux)}
.fc-filtre[aria-pressed="true"]{
  background:var(--texte);color:var(--surface);border-color:var(--texte);
}
.fc-grille-flip{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:var(--gouttiere)}
.fc-grille-flip > .est-filtree{display:none}


/* — 19.6 Points d'intérêt — 10_DOGSTUDIO §7.1 / §9 ──────────────────────── */

.fc-scene-plan{position:relative;overflow:hidden}
.fc-hotspot{
  position:absolute;transform:translate(-50%,-50%);
  width:34px;height:34px;display:grid;place-items:center;
  z-index:2;
}
.fc-hotspot__puce{
  width:11px;height:11px;border-radius:var(--r-plein);
  background:var(--or-clair);position:relative;
}
.fc-hotspot__puce::after{
  content:"";position:absolute;inset:-11px;border-radius:var(--r-plein);
  border:1px solid var(--or-clair);opacity:.55;
  animation:fc-pulse 2.8s var(--ease-doux) infinite;
}
@keyframes fc-pulse{
  0%{transform:scale(.6);opacity:.7}
  70%{transform:scale(1.5);opacity:0}
  100%{transform:scale(1.5);opacity:0}
}
.fc-hotspot__label{
  position:absolute;left:50%;bottom:calc(100% + 12px);transform:translateX(-50%) translateY(6px);
  white-space:nowrap;padding:.5rem .9rem;
  background:var(--voile-nuit);backdrop-filter:blur(12px);
  border:1px solid var(--filet-nuit);
  font-size:var(--t-label);letter-spacing:.14em;text-transform:uppercase;
  color:var(--ivoire);
  opacity:0;pointer-events:none;
  transition:opacity .4s var(--ease-doux),transform .4s var(--ease-sortie);
}
.fc-hotspot:hover .fc-hotspot__label,
.fc-hotspot:focus-visible .fc-hotspot__label{opacity:1;transform:translateX(-50%) translateY(0)}


/* — 19.7 Rideau de couleur — 09_MERCI_MICHEL §7.1 ───────────────────────── */

.fc-rideau{
  position:fixed;inset:0;z-index:7400;pointer-events:none;
  background:var(--violet);
  transform:scaleY(0);transform-origin:bottom;
}


/* — 19.8 Tracé SVG — 06_HELLO_MONDAY §2 (animation SVG native) ──────────── */

[data-fc-trace] path,[data-fc-trace] line,[data-fc-trace] circle,[data-fc-trace] polyline{
  stroke-dasharray:var(--fc-long,1000);
  stroke-dashoffset:var(--fc-long,1000);
  transition:stroke-dashoffset 1.8s var(--ease-sortie);
  transition-delay:var(--fc-delai,0s);
}
[data-fc-trace].est-vue path,[data-fc-trace].est-vue line,
[data-fc-trace].est-vue circle,[data-fc-trace].est-vue polyline{stroke-dashoffset:0}


/* — 19.9 Survol élastique — 03_RESN §7.5 / §8, dosé ─────────────────────── */

.fc-elastique{
  transition:transform .55s cubic-bezier(.34,1.56,.64,1);   /* back.out(1.7) */
  will-change:transform;
}
.fc-elastique:hover{transform:scale(1.045)}
.fc-elastique:active{transform:scale(.985)}


/* — 19.10 HUD typographique — 05_ACTIVE_THEORY §4 ───────────────────────── */

.fc-hud{
  position:fixed;z-index:5400;pointer-events:none;
  font-size:var(--t-label);letter-spacing:.22em;text-transform:uppercase;
  color:var(--texte-tres-doux);
  font-variant-numeric:tabular-nums;
}
.fc-hud--bg{left:var(--marge);bottom:var(--e-3)}
.fc-hud--bd{right:var(--marge);bottom:var(--e-3);text-align:right}
@media (max-width:900px){.fc-hud{display:none}}


/* — 19.11 Poussière — 08_MAKEMEPULSE §6 / 05_ACTIVE_THEORY §7 ───────────── */

.fc-poussiere{
  position:absolute;inset:0;pointer-events:none;z-index:1;
  mix-blend-mode:screen;opacity:.5;
}


/* — 19.12 Scrollytelling — 06_HELLO_MONDAY §7.1 ─────────────────────────── */

.fc-recit{position:relative}
.fc-recit__collant{
  position:sticky;top:0;height:100svh;
  display:grid;place-items:center;overflow:hidden;
}
.fc-recit__plan{
  position:absolute;inset:0;
  opacity:0;transition:opacity .8s var(--ease-doux);
}
.fc-recit__plan.est-active{opacity:1}
.fc-recit__plan img,.fc-recit__plan video{width:100%;height:100%;object-fit:cover}
.fc-recit__texte{
  position:relative;z-index:2;text-align:center;
  max-width:26ch;
  font-family:var(--f-display);
  font-size:clamp(1.6rem,3.6vw,3.2rem);
  line-height:1.16;
  color:var(--ivoire);
  text-shadow:0 2px 40px oklch(.1220 0 var(--h-ink) / .8);
}
.fc-recit__etape{min-height:100svh}


/* — 19.13 Interpolation du fond au scroll — 06_HELLO_MONDAY §7.7 ────────── */

.fc-teinte{transition:background-color 1.1s var(--ease-doux),color 1.1s var(--ease-doux)}


/* — 19.14 Transition à élément partagé — 07_AQUEST §7.4 / 04_MONKS §7.5 ─── */

@view-transition{navigation:auto}

::view-transition-old(root),::view-transition-new(root){
  animation-duration:.55s;
  animation-timing-function:cubic-bezier(.19,1,.22,1);
}
[data-fc-partage]{view-transition-name:var(--fc-partage)}

@media (prefers-reduced-motion:reduce){
  @view-transition{navigation:none}
}



/* Les destinations projet reçoivent le même nom que leur carte d’accueil.
   Classes explicites plutôt qu’un style inline, car le build V27 purge les
   styles générés pour garder la CSP et l’audit déterministes. */
.fc-vt-acqua-prima{view-transition-name:fc-acqua-prima}
.fc-vt-il-quaderno{view-transition-name:fc-il-quaderno}
.fc-vt-casa-sospesa{view-transition-name:fc-casa-sospesa}

/* — 19.15 Réductions supplémentaires ────────────────────────────────────── */

@media (prefers-reduced-motion:reduce){
  .fc-mot > span{transform:none}
  [data-fc-trace] path,[data-fc-trace] line,
  [data-fc-trace] circle,[data-fc-trace] polyline{stroke-dashoffset:0}
  .fc-hotspot__puce::after{animation:none;opacity:.4;transform:scale(1)}
  .fc-elastique:hover{transform:none}
  .fc-poussiere,.fc-progres{display:none}
  .fc-recit__plan{opacity:1}
}


/* ═══════════════════════════════════════════════════════════════════════════
   20. COMPOSANTS ÉDITORIAUX — pages intérieures
   Reprennent le vocabulaire réel du contenu existant (héros de page,
   galeries, registres, étapes, piliers, jalons) dans le système unique.
   ═══════════════════════════════════════════════════════════════════════════ */

/* — Héros de page intérieure — */
.fc-page-heros{
  position:relative;
  min-height:clamp(52svh,60vh,72svh);
  display:grid;align-items:end;
  padding-block:calc(var(--e-7) + var(--e-3)) var(--e-5);
  overflow:hidden;isolation:isolate;
}
.fc-page-heros__titre{
  font-family:var(--f-display);
  font-size:var(--t-titre);
  line-height:var(--lh-titre);letter-spacing:var(--ls-titre);
  color:var(--texte);
}
.fc-page-heros__titre em{font-style:italic;color:var(--accent)}
.fc-page-heros .fc-sous{margin-top:var(--e-3)}
.fc-page-heros__fond{position:absolute;inset:0;z-index:-2;background-color:var(--surface)}
.fc-page-heros__fond img,.fc-page-heros__fond canvas{width:100%;height:100%;object-fit:cover}
.fc-page-heros__ombre{
  position:absolute;inset:0;z-index:-1;pointer-events:none;
  background:linear-gradient(180deg,
    oklch(.1220 calc(var(--c) * var(--c-ink) * .0141) var(--h-ink) / .62) 0%,
    oklch(.1220 calc(var(--c) * var(--c-ink) * .0141) var(--h-ink) / .34) 45%,
    oklch(.1220 calc(var(--c) * var(--c-ink) * .0141) var(--h-ink) / .94) 100%);
}

/* — Étiquettes et jalons — */
.fc-etiquette{
  display:inline-flex;align-items:center;gap:.45rem;
  padding:.34rem .85rem;
  border:1px solid var(--filet);border-radius:var(--r-plein);
  font-size:var(--t-label);letter-spacing:.14em;text-transform:uppercase;
  color:var(--texte-doux);
}
.fc-etiquette--vif{border-color:var(--filet-or);color:var(--ornement)}
.fc-etiquettes{display:flex;flex-wrap:wrap;gap:.5rem}

.fc-etat{display:inline-flex;align-items:center;gap:.55rem;font-size:var(--t-petit);color:var(--texte-doux)}
.fc-etat__point{
  width:7px;height:7px;border-radius:var(--r-plein);
  background:var(--jade);flex:none;
}
.fc-etat--attente .fc-etat__point{background:var(--ornement)}

/* — Galeries — */
.fc-galerie{display:grid;gap:var(--gouttiere);grid-template-columns:repeat(auto-fill,minmax(min(100%,290px),1fr))}
.fc-galerie--tiers{grid-template-columns:repeat(auto-fill,minmax(min(100%,320px),1fr))}
.fc-galerie--demi{grid-template-columns:repeat(auto-fill,minmax(min(100%,460px),1fr))}
.fc-galerie figure{margin:0}

/* — Registre / entrées numérotées — */
.fc-registre{display:grid}
.fc-registre__entree{
  display:grid;grid-template-columns:auto minmax(0,1fr);
  gap:var(--gouttiere);
  padding-block:var(--e-4);
  border-top:1px solid var(--filet);
}
.fc-registre__entree:last-child{border-bottom:1px solid var(--filet)}
.fc-registre__num{
  font-family:var(--f-ui);font-size:var(--t-label);letter-spacing:.2em;
  color:var(--ornement);font-variant-numeric:tabular-nums;padding-top:.4rem;
}
.fc-registre__tete{
  font-family:var(--f-display);font-size:var(--t-chapitre);color:var(--texte);
  margin-bottom:.6rem;
}
.fc-registre__corps{color:var(--texte-doux)}
@media (max-width:640px){.fc-registre__entree{grid-template-columns:1fr}}

/* — Étapes numérotées — */
.fc-etapes{display:grid;gap:var(--e-4);grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr))}
.fc-etape{display:grid;gap:.7rem;align-content:start}
.fc-etape__num{
  font-family:var(--f-display);font-size:2.4rem;line-height:1;
  color:var(--ornement);
}
.fc-etape__titre{font-family:var(--f-display);font-size:var(--t-sous);color:var(--texte)}
.fc-etape p{color:var(--texte-doux);font-size:var(--t-petit)}

/* — Piliers avec picto — */
.fc-piliers{display:grid;gap:var(--e-4);grid-template-columns:repeat(auto-fit,minmax(min(100%,250px),1fr))}
.fc-pilier{display:grid;gap:var(--e-2);align-content:start}
.fc-pilier__icone{width:38px;height:38px;color:var(--ornement)}
.fc-pilier__icone svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.1;
  stroke-linecap:round;stroke-linejoin:round}
.fc-pilier :is(h2,h3){font-family:var(--f-display);font-size:var(--t-sous);color:var(--texte)}
.fc-pilier p{color:var(--texte-doux);font-size:var(--t-petit)}

/* — Bloc signature de fin de page — */
.fc-sceau{position:relative;text-align:center;padding-block:var(--e-6);overflow:clip}
.fc-sceau__signe{width:78px;margin:0 auto var(--e-3);opacity:.85}
.fc-sceau__phrase{
  font-family:var(--f-display);font-style:italic;
  font-size:clamp(1.35rem,2.7vw,2.15rem);line-height:1.3;
  color:var(--texte);
}
.fc-sceau__nom{
  margin-top:var(--e-3);
  font-size:var(--t-label);letter-spacing:var(--ls-label);text-transform:uppercase;
  color:var(--ornement);
}

/* — Note discrète — */
.fc-note{
  border-left:1px solid var(--filet-or);
  padding-left:var(--e-3);
  color:var(--texte-doux);
  font-family:var(--f-lecture);font-style:italic;font-weight:300;
  max-width:56ch;
}

/* — Tableaux de transparence — */
.fc-table{width:100%;font-size:var(--t-petit)}
.fc-table th,.fc-table td{
  text-align:left;padding:.9rem 1rem;
  border-bottom:1px solid var(--filet);
  vertical-align:top;
}
.fc-table th{
  font-family:var(--f-ui);font-size:var(--t-label);letter-spacing:.16em;
  text-transform:uppercase;color:var(--ornement);font-weight:500;
}
.fc-table td{color:var(--texte-doux)}
.fc-table__enveloppe{overflow-x:auto;-webkit-overflow-scrolling:touch}

/* — Entête de section — */
.fc-tete{display:grid;gap:var(--e-2);margin-bottom:var(--e-5);max-width:56ch}
.fc-tete--large{max-width:none}


/* ═══════════════════════════════════════════════════════════════════════════
   21. FILET DE SÉCURITÉ
   Le contenu converti vient de 66 pages écrites sur trois systèmes de nommage
   successifs. Ces règles garantissent qu'aucun élément ne reste nu, même si
   sa classe d'origine n'avait pas d'équivalent dans le nouveau vocabulaire.
   ═══════════════════════════════════════════════════════════════════════════ */

/* L'en-tête est fixe : la première section doit lui laisser sa hauteur. */
main > :first-child:not(.fc-heros):not(.fc-page-heros):not(.fc-recit){
  padding-top:calc(var(--e-7) + var(--e-2));
}

main h1:not([class]){
  font-family:var(--f-display);
  font-size:var(--t-titre);line-height:var(--lh-titre);letter-spacing:var(--ls-titre);
  color:var(--texte);
}
main h2:not([class]){
  font-family:var(--f-display);
  font-size:var(--t-chapitre);line-height:1.16;letter-spacing:-.014em;
  color:var(--texte);margin-bottom:var(--e-2);
}
main h3:not([class]){
  font-family:var(--f-display);
  font-size:var(--t-sous);color:var(--texte);margin-bottom:.5rem;
}
h2.fc-niveau2-compact{
  font-family:var(--f-display);
  font-size:var(--t-sous);line-height:1.2;letter-spacing:normal;
  color:var(--texte);margin-bottom:.5rem;
}
main h4:not([class]){
  font-size:var(--t-label);letter-spacing:var(--ls-label);text-transform:uppercase;
  color:var(--ornement);margin-bottom:.6rem;
}
main p:not([class]){color:var(--texte-doux);max-width:var(--largeur-texte)}
main p:not([class]) + p:not([class]){margin-top:var(--e-3)}

main li{color:var(--texte-doux)}
main ul:not([class]){display:grid;gap:.7rem}
main ul:not([class]) li{position:relative;padding-left:1.4rem}
main ul:not([class]) li::before{
  content:"";position:absolute;left:0;top:.72em;
  width:6px;height:1px;background:var(--ornement);
}

main figure{margin-block:var(--e-3)}
main figcaption{
  margin-top:var(--e-2);
  font-size:var(--t-label);letter-spacing:.13em;text-transform:uppercase;
  color:var(--texte-tres-doux);
}
main a:not([class]){
  color:var(--accent);
  text-decoration:underline;
  text-underline-offset:.28em;
  text-decoration-thickness:1px;
  text-decoration-color:var(--filet-or);
  transition:text-decoration-color var(--d-micro) var(--ease-doux);
}
main a:not([class]):hover{text-decoration-color:currentColor}

main dl:not([class]){display:grid;gap:var(--e-2)}
main dt{color:var(--texte)}
main dd{color:var(--texte-doux)}

main blockquote{
  font-family:var(--f-display);font-style:italic;
  font-size:var(--t-chapitre);color:var(--texte);
  border-left:1px solid var(--filet-or);padding-left:var(--e-3);
  max-width:36ch;
}

main svg:not([class]){max-width:100%;height:auto}

/* Les sections converties portent toutes une surface ; on borne juste la
   respiration verticale quand elles s'enchaînent sur la même surface. */
.fc-section + .fc-section{padding-top:clamp(var(--e-5),9vh,var(--e-7))}
.fc-nuit + .fc-nuit{border-top:1px solid var(--filet-nuit)}

/* Les images du contenu converti ne doivent jamais déborder. */
main img{max-width:100%;height:auto}
main picture{display:block}


/* ═══════════════════════════════════════════════════════════════════════════
   22. CONCIERGERIE
   ───────────────────────────────────────────────────────────────────────────
   `concierge.js` construit tout son DOM en JavaScript ; son habillage vivait
   dans les anciennes feuilles. Il est réécrit ici sur les mêmes jetons que le
   reste — c'est une fonction du site, pas une strate : la retirer aurait
   supprimé la bascule vers Tawk.to.
   ═══════════════════════════════════════════════════════════════════════════ */

.fc-concierge{
  position:fixed;right:var(--e-3);bottom:var(--e-3);z-index:6200;
  display:grid;justify-items:end;gap:var(--e-2);
}

.fc-concierge__toggle{
  display:inline-flex;align-items:center;gap:.6rem;
  padding:.9rem 1.5rem;
  border:1px solid var(--filet-nuit);
  border-radius:var(--r-plein);
  background:var(--voile-nuit);
  backdrop-filter:blur(18px) saturate(1.3);
  -webkit-backdrop-filter:blur(18px) saturate(1.3);
  color:var(--ivoire);
  font-size:var(--t-label);letter-spacing:var(--ls-label);text-transform:uppercase;
  box-shadow:var(--sh-3);
  transition:border-color var(--d-micro) var(--ease-doux),
             transform .5s var(--ease-sortie);
}
.fc-concierge__toggle:hover{border-color:var(--or-clair);transform:translateY(-2px)}

.fc-concierge__panel{
  width:min(92vw,382px);
  max-height:min(72svh,560px);
  display:none;
  /* cinq enfants : en-tête, journal, intitulé des thèmes, pastilles, saisie.
     Seul le journal doit absorber la place restante. */
  grid-template-rows:auto minmax(0,1fr) auto auto auto;
  gap:var(--e-2);
  padding:var(--e-3);
  border:1px solid var(--filet-nuit);
  border-radius:var(--r-2);
  background:var(--obsidienne);
  box-shadow:var(--sh-5);
  overflow:hidden;
}
.fc-concierge.is-open .fc-concierge__panel{display:grid}

/* L'en-tête est bâti en JS, sans classes :
   <header><div><strong/><small/><span.status/></div><button.x/></header> */
.fc-concierge__panel > header{
  display:flex;align-items:flex-start;justify-content:space-between;
  gap:.8rem;
  padding-bottom:var(--e-2);
  border-bottom:1px solid var(--filet-nuit);
}
.fc-concierge__panel > header > div{display:grid;gap:.25rem;min-width:0}
.fc-concierge__panel > header strong{
  font-family:var(--f-display);font-size:1.15rem;font-weight:400;
  color:var(--ivoire);
}
.fc-concierge__panel > header small{
  font-size:var(--t-label);letter-spacing:.14em;text-transform:uppercase;
  color:var(--texte-tres-doux,var(--pierre));
}

.fc-concierge__x{
  flex:none;
  width:30px;height:30px;border-radius:var(--r-plein);
  border:1px solid var(--filet-nuit);
  color:var(--pierre);line-height:1;
  transition:color var(--d-micro) var(--ease-doux),border-color var(--d-micro) var(--ease-doux);
}
.fc-concierge__x:hover{color:var(--ivoire);border-color:var(--ivoire)}

.fc-concierge__status{
  font-size:var(--t-label);letter-spacing:.16em;text-transform:uppercase;
  color:var(--or-clair);
}

.fc-concierge__topics-head{display:flex;flex-wrap:wrap;gap:.5rem;align-items:baseline}

.fc-concierge__log{
  overflow-y:auto;display:grid;gap:var(--e-2);align-content:start;
  padding-right:.4rem;
  scrollbar-width:thin;
}
.fc-concierge__log p{
  font-size:var(--t-petit);line-height:1.6;
  color:var(--pierre);
  padding:.7rem .95rem;
  border-radius:var(--r-2);
  background:var(--nuit);
  max-width:92%;
}
.fc-concierge__log p.is-me{
  justify-self:end;
  background:var(--profond);color:var(--ivoire);
}

.fc-concierge__topics-head{
  font-size:var(--t-label);letter-spacing:.16em;text-transform:uppercase;
  color:var(--texte-tres-doux,var(--pierre));
}
.fc-concierge__chips{display:flex;flex-wrap:wrap;gap:.45rem}
.fc-concierge__chips button,
.fc-concierge__action{
  padding:.42rem .9rem;
  border:1px solid var(--filet-nuit);border-radius:var(--r-plein);
  font-size:var(--t-label);letter-spacing:.1em;
  color:var(--pierre);
  transition:color var(--d-micro) var(--ease-doux),border-color var(--d-micro) var(--ease-doux);
}
.fc-concierge__chips button:hover,
.fc-concierge__action:hover{color:var(--ivoire);border-color:var(--or-clair)}

.fc-concierge__actions{display:flex;flex-wrap:wrap;gap:.45rem}

.fc-concierge__form{display:flex;gap:.5rem}
.fc-concierge__form input{
  flex:1;min-width:0;
  padding:.7rem .9rem;
  background:var(--nuit);
  border:1px solid var(--filet-nuit);border-radius:var(--r-plein);
  color:var(--ivoire);font-size:var(--t-petit);
}
.fc-concierge__form input::placeholder{color:var(--texte-tres-doux,var(--pierre))}
.fc-concierge__form input:focus-visible{border-color:var(--glycine)}
.fc-concierge__form button{
  padding:.7rem 1.2rem;
  border-radius:var(--r-plein);
  background:var(--ivoire);color:var(--obsidienne);
  font-size:var(--t-label);letter-spacing:var(--ls-label);text-transform:uppercase;
  transition:background-color var(--d-micro) var(--ease-doux);
}
.fc-concierge__form button:hover{background:var(--glycine)}

/* Quand Tawk.to prend la main, la conciergerie maison s'efface. */
body.fc-team-chat-active .fc-concierge{display:none}

@media (max-width:520px){
  .fc-concierge{right:.9rem;bottom:.9rem;left:auto;justify-items:end;max-width:calc(100vw - 1.8rem)}
  .fc-concierge__panel{width:min(calc(100vw - 1.8rem),382px)}
  .fc-concierge__toggle{justify-content:center;padding:.72rem 1.05rem;min-width:0;box-shadow:var(--sh-3)}
}

@media print{.fc-concierge{display:none!important}}


/* ═══════════════════════════════════════════════════════════════════════════
   23. FINITIONS
   ═══════════════════════════════════════════════════════════════════════════ */

/* — 23.1 Teintes des SVG —
   Les cartes de l'atlas portaient leurs couleurs en attributs de présentation
   (`stroke="#C9A8DC"`). Elles pointent désormais vers `currentColor`, et c'est
   `color` — donc le système — qui décide. 117 valeurs littérales en moins. */

.fc-t--ivoire{color:var(--ivoire)}
.fc-t--glycine{color:var(--glycine)}
.fc-t--violet{color:var(--violet)}
.fc-t--or{color:var(--or-clair)}
.fc-t--obsidienne{color:var(--obsidienne)}

/* — 23.2 Barre de filtres collante — 04_MONKS §7.3 — */

.fc-filtres{
  position:sticky;top:calc(var(--e-5) + var(--e-2));z-index:100;
  background:var(--voile-nuit);
  backdrop-filter:blur(16px) saturate(1.3);
  -webkit-backdrop-filter:blur(16px) saturate(1.3);
  border:1px solid var(--filet-nuit);
  border-radius:var(--r-plein);
  padding:.55rem;
  justify-content:center;
}
.fc-jour .fc-filtres{background:var(--voile-jour);border-color:var(--filet-jour)}

/* Une section vidée par un filtre ne doit pas laisser un trou. */
.fc-section:has(.fc-galerie:not(:has(figure:not(.est-filtree)))){display:none}

/* — 23.3 Bande horizontale épinglée — 01_LOCOMOTIVE §7.4 / 07_AQUEST §7.2 — */

.fc-piste{padding-block:var(--e-5)}
.fc-piste__rail{padding-inline:var(--marge)}
.fc-piste__item{flex:0 0 clamp(268px,30vw,420px)}
.fc-piste__fin{
  flex:0 0 clamp(220px,22vw,300px);
  display:grid;align-content:center;gap:var(--e-2);
  padding-inline:var(--e-3);
}
@media (max-width:860px){
  /* Sous cette largeur l'épinglage gêne plus qu'il ne sert : on rend la
     bande à un défilement tactile normal (01_LOCOMOTIVE §13). */
  .fc-piste__rail{overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:var(--e-2)}
  .fc-piste__item{scroll-snap-align:start}
}

/* — 23.4 Bloc film — 09_MERCI_MICHEL §7.2 (la vidéo devient de l'UI) — */

.fc-film{position:relative;overflow:hidden;isolation:isolate}
.fc-film__media{
  position:relative;width:100%;aspect-ratio:16 / 9;overflow:hidden;
  background-color:var(--surface-2);
}
.fc-film__media video,.fc-film__media img{
  width:100%;height:100%;object-fit:cover;display:block;
}
.fc-film__media video{position:absolute;inset:0}
.fc-film__legende{
  display:flex;flex-wrap:wrap;gap:var(--e-2) var(--e-4);
  justify-content:space-between;align-items:baseline;
  margin-top:var(--e-3);
  font-size:var(--t-label);letter-spacing:.16em;text-transform:uppercase;
  color:var(--texte-tres-doux);
}

/* — 23.5 Le héros de page projet accueille la scène WebGL — */

.fc-page-heros__fond picture,.fc-page-heros__fond img{width:100%;height:100%;object-fit:cover}


/* ═══════════════════════════════════════════════════════════════════════════
   24. COMPOSANTS DES PAGES INTÉRIEURES — second passage
   ───────────────────────────────────────────────────────────────────────────
   Relevés par audit : classes réellement présentes dans le HTML converti et
   qui n'avaient plus de style. Le reste a été rattaché au vocabulaire
   existant dans le générateur ; ne subsistent ici que les formes propres.
   ═══════════════════════════════════════════════════════════════════════════ */

/* — Duo éditorial : un bloc de texte, une image, désalignés — Locomotive §5 — */
.fc-duo{
  display:grid;
  grid-template-columns:repeat(12,minmax(0,1fr));
  gap:var(--gouttiere) var(--gouttiere);
  align-items:center;
}
.fc-duo > *{grid-column:span 6}
.fc-duo > *:nth-child(odd){grid-column:1 / span 5}
.fc-duo > *:nth-child(even){grid-column:7 / span 6}
@media (max-width:900px){
  .fc-duo{grid-template-columns:1fr}
  .fc-duo > *,.fc-duo > *:nth-child(odd),.fc-duo > *:nth-child(even){grid-column:1}
}

/* — Formats de galerie hérités — */
.fc-galerie__haute{grid-row:span 2}
.fc-galerie__haute .fc-figure,.fc-galerie__haute img{aspect-ratio:3 / 4;object-fit:cover}
.fc-galerie__large{grid-column:span 2}
.fc-galerie__large img{aspect-ratio:16 / 9;object-fit:cover}
@media (max-width:760px){
  .fc-galerie__large{grid-column:span 1}
  .fc-galerie__haute{grid-row:span 1}
}

/* — Rideau : une phrase pleine largeur sur image — 09_MERCI_MICHEL §7.4 — */
.fc-curtain,.curtain{
  position:relative;overflow:hidden;isolation:isolate;
  min-height:clamp(46svh,54vh,66svh);
  display:grid;place-items:center;
  padding:var(--e-5) var(--marge);
}
.curtain img,.curtain video{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;
}
.curtain__veil{
  position:absolute;inset:0;z-index:-1;pointer-events:none;
  background:linear-gradient(180deg,
    oklch(.1220 calc(var(--c) * var(--c-ink) * .0141) var(--h-ink) / .58) 0%,
    oklch(.1220 calc(var(--c) * var(--c-ink) * .0141) var(--h-ink) / .82) 100%);
}
.curtain__text{
  position:relative;z-index:1;text-align:center;
  font-family:var(--f-display);font-style:italic;
  font-size:clamp(1.5rem,3.4vw,3rem);line-height:1.24;
  color:var(--ivoire);max-width:24ch;
  text-shadow:0 2px 40px oklch(.1220 0 var(--h-ink) / .7);
}

/* — Légende de l'atlas — */
.atl-legend{
  display:flex;flex-wrap:wrap;gap:var(--e-2) var(--e-4);
  margin-top:var(--e-3);
}
.atl-legenditem{
  display:inline-flex;align-items:center;gap:.55rem;
  font-size:var(--t-label);letter-spacing:.14em;text-transform:uppercase;
  color:var(--texte-tres-doux,var(--pierre));
}
.atl-legenddot{
  width:9px;height:9px;flex:none;border-radius:var(--r-plein);
  background:var(--glycine);
}
.atl-legenddot--prep{background:var(--violet)}
.atl-legenddot--seat{background:var(--or-clair);border-radius:1px;transform:rotate(45deg)}

/* Étiquettes portées par le SVG de la carte */
.atl-label--seat,.fc-label.atl-label--seat{font-size:9px;letter-spacing:.2em}
.atl-seat{color:var(--or-clair)}

/* — Fragment révélé (page gouvernance) — */
.frag-rv{overflow:hidden}

/* — Géométrie décorative des pages soutien / direction — */
.fc15-support-geometry,.fc15-direction-target{
  position:absolute;pointer-events:none;opacity:.14;
  inset-inline-end:calc(var(--marge) * -.4);inset-block-start:0;
  width:min(34vw,360px);color:var(--glycine);
}
.fc15-support-geometry svg,.fc15-direction-target svg{width:100%;height:auto;
  fill:none;stroke:currentColor;stroke-width:.7}

/* — Les sections qui portent une image de fond doivent isoler leur pile — */
.fc-section{isolation:isolate}


/* — 24.1 Texte dans les SVG —
   Un <text> SVG se peint avec `fill`, pas avec `color`. Les libellés de la
   carte héritaient donc du noir par défaut : illisibles sur fond de nuit,
   alors que leur `color` était juste. On rebranche `fill` sur `currentColor`
   pour que la palette redescende comme partout ailleurs. */

svg text{fill:currentColor}
svg .fc-label,svg .fc-etat{display:initial;letter-spacing:.16em}
svg .fc-etat{color:var(--texte-tres-doux,var(--pierre))}
svg .fc-etat__point{display:initial}

/* Deux surtitres qui se suivent (le numéro puis le lieu, sur les pages
   projet) se collaient faute de séparateur : ils sont en inline-block. */
.fc-label + .fc-label::before{
  content:"·";margin-inline:.6rem;opacity:.55;
}


/* ═══════════════════════════════════════════════════════════════════════════
   25. LE PLAN DEVIENT UNE CARTE — 09_MERCI_MICHEL §7.2
   ───────────────────────────────────────────────────────────────────────────
   « La vidéo se transforme en élément d'UI. » Au scroll, le plan cinéma
   plein cadre se rétracte en carte cadrée dans la grille éditoriale : le
   film cesse d'être un décor et devient un objet de la page.
   `@property` est indispensable — sans type déclaré, le navigateur ne sait
   pas interpoler une variable et le mouvement serait un saut.
   ═══════════════════════════════════════════════════════════════════════════ */

@property --fc-plan{syntax:'<number>';inherits:true;initial-value:1}

.fc-film__media{
  --fc-plan:1;
  width:calc(100% + (100vw - 100%) * var(--fc-plan));
  margin-inline:calc((100% - 100vw) / 2 * var(--fc-plan));
  border-radius:calc(var(--r-2) * (1 - var(--fc-plan)));
  will-change:width,margin;
}
.fc-film__legende{
  opacity:calc(1 - var(--fc-plan));
  transition:opacity .4s var(--ease-doux);
}

@media (prefers-reduced-motion:reduce){
  /* Le plan reste une carte, sans rétraction : le contenu ne bouge pas. */
  .fc-film__media{--fc-plan:0!important}
  .fc-film__legende{opacity:1}
}

/* ═══ 26. ARXIV8 — EFFETS OBLIGATOIRES / PASSAGE PUISSANCE ════════════════ */

/* 08_MAKEMEPULSE §7.3 / §8 — translation gyroscopique/tactile séparée de
   `transform`, afin de pouvoir coexister avec les scènes et reveals. */
[data-fc-gyro]{
  --fc-gyro-x:0px;--fc-gyro-y:0px;
  translate:var(--fc-gyro-x) var(--fc-gyro-y);
  will-change:translate;
}

/* 03_RESN §7.3 — le portrait de Giulia « regarde » le pointeur avec une
   amplitude volontairement inférieure à 6 px ; aucune déformation du visage. */
[data-fc-giulia-portrait]{
  --fc-giulia-x:0px;--fc-giulia-y:0px;
  --fc-giulia-rx:0deg;--fc-giulia-ry:0deg;
  transform:perspective(1200px)
    translate3d(var(--fc-giulia-x),var(--fc-giulia-y),0)
    rotateX(var(--fc-giulia-rx)) rotateY(var(--fc-giulia-ry));
  transform-style:preserve-3d;
  will-change:transform,translate;
  isolation:isolate;
}
[data-fc-giulia-portrait]::after{
  content:"";position:absolute;inset:0;z-index:3;pointer-events:none;
  border:1px solid transparent;
  background:radial-gradient(58% 48% at 50% 42%,var(--voile-clair),transparent 72%);
  mix-blend-mode:soft-light;opacity:0;
  transition:opacity 1.2s var(--ease-sortie),border-color 1.2s var(--ease-doux);
}
body.fc-giulia-easter [data-fc-giulia-portrait]::after{
  opacity:.48;border-color:var(--filet-nuit);
}

/* 03_RESN §8 — squash & stretch retenu sur les crédentiels : overshoot
   réduit, sans bounce. Le wrapper est composé comme une seule ligne de force. */
[data-fc-giulia-credentials]{
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));
  gap:0;margin-inline:auto;padding-inline:var(--marge);
  max-width:var(--largeur);width:100%;
  border-top:1px solid var(--filet-nuit);border-bottom:1px solid var(--filet-nuit);
}
.fc-giulia-cred{
  position:relative;display:grid;grid-template-columns:auto 1fr;gap:var(--e-2);
  align-items:start;padding:var(--e-3);
  border-right:1px solid var(--filet-nuit);overflow:hidden;
  transform-origin:50% 60%;
  transition:transform .62s cubic-bezier(.22,1.2,.36,1),
             background-color .45s var(--ease-doux),border-color .45s var(--ease-doux);
}
.fc-giulia-cred:last-child{border-right:0}
.fc-giulia-cred:hover{transform:scale(1.018)}

/* 03_RESN §9 — densité de feedback. Le pointeur déplace une lumière locale ;
   le contenu ne bouge que de quelques pixels et reste parfaitement lisible. */
.fc-giulia-feedback{
  --fc-giulia-px:50%;--fc-giulia-py:50%;
  position:relative;isolation:isolate;overflow:hidden;
  transition:translate .55s var(--ease-sortie),border-color .55s var(--ease-doux);
}
.fc-giulia-feedback::after{
  content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;
  background:radial-gradient(340px circle at var(--fc-giulia-px) var(--fc-giulia-py),var(--voile-clair),transparent 68%);
  opacity:0;transition:opacity .5s var(--ease-doux);
}
.fc-giulia-feedback:hover{translate:0 -3px}
.fc-giulia-feedback:hover::after{opacity:.72}

/* 07_AQUEST §9 — CTA : fill existant + réponse de pression et flèche. */
.fc-cta-aquest{transform-origin:center;will-change:transform}
.fc-cta-aquest > span:last-child{
  display:inline-block;transition:transform .45s var(--ease-sortie),opacity .3s var(--ease-doux);
}
.fc-cta-aquest:hover > span:last-child{transform:translateX(7px)}
.fc-cta-aquest.est-presse{transform:scale(.982)}
.fc-cta-aquest.est-presse > span:last-child{transform:translateX(11px);opacity:.82}

/* 10_DOGSTUDIO §7.1 — les hotspots projetés sur l'Atlas doivent rester
   lisibles au-dessus du SVG sans masquer sa cartographie. */
.fc-scene-plan > svg{position:relative;z-index:0}
.fc-scene-plan > .fc-hotspot{z-index:4}

@media (max-width:760px){
  [data-fc-giulia-credentials]{grid-template-columns:1fr;padding-inline:var(--marge)}
  .fc-giulia-cred{border-right:0;border-bottom:1px solid var(--filet-nuit)}
  .fc-giulia-cred:last-child{border-bottom:0}
  .fc-giulia-feedback:hover{translate:none}
}

@media (prefers-reduced-motion:reduce){
  [data-fc-gyro]{translate:none!important}
  [data-fc-giulia-portrait]{transform:none!important}
  .fc-giulia-cred:hover,.fc-cta-aquest.est-presse{transform:none}
  .fc-giulia-feedback:hover{translate:none}
}

/* ═══ 27. ARXIV8 — PUISSANCE TRANSVERSALE ═══════════════════════════════════ */

/* 09_MERCI_MICHEL §7.3 — split à la lettre sur les grands héros intérieurs. */
[data-fc-lettres] .fc-lettre{
  opacity:0;transform:translateY(.72em) rotate(3deg);
  transition:opacity .5s var(--ease-doux),transform 1s var(--ease-sortie);
  transition-delay:var(--fc-delai,0s);
}
[data-fc-lettres].est-vue .fc-lettre{opacity:1;transform:none}

/* 02_IMMERSIVE_GARDEN §9 + 05_ACTIVE_THEORY §8 — le pointeur devient une
   source de lumière lente sur tous les héros intérieurs. */
[data-fc-hero-reactif]{
  --fc-hero-px:50%;--fc-hero-py:50%;--fc-hero-intensite:.48;
}
[data-fc-hero-reactif]::after{
  content:"";position:absolute;inset:-18%;z-index:-1;pointer-events:none;
  background:
    radial-gradient(42% 58% at var(--fc-hero-px) var(--fc-hero-py),
      color-mix(in oklab,var(--glycine) 13%,transparent),transparent 72%),
    radial-gradient(26% 38% at calc(var(--fc-hero-px) + 9%) calc(var(--fc-hero-py) - 8%),
      color-mix(in oklab,var(--or-clair) 8%,transparent),transparent 78%);
  opacity:var(--fc-hero-intensite);
  filter:blur(10px);transform:scale(1.04);
  transition:opacity 1.2s var(--ease-doux);
}
[data-fc-hero-reactif] .fc-page-heros__titre{position:relative;z-index:1}
[data-fc-hero-reactif] .fc-page-heros__titre::after{
  content:"";display:block;width:clamp(48px,7vw,100px);height:1px;
  margin-top:1.15rem;background:linear-gradient(90deg,var(--ornement),transparent);
  transform-origin:left;transform:scaleX(.45);opacity:.7;
  transition:transform 1.1s var(--ease-sortie),opacity .7s var(--ease-doux);
}
[data-fc-hero-reactif]:hover .fc-page-heros__titre::after{transform:scaleX(1);opacity:1}

/* 03_RESN §7/§8/§9 — densité de feedback sur les objets éditoriaux.
   Déplacement très court + lumière locale : pas de wobble cartoon. */
[data-fc-reactif]{
  --fc-react-x:0px;--fc-react-y:0px;--fc-react-px:50%;--fc-react-py:50%;
  position:relative;isolation:isolate;
  translate:var(--fc-react-x) var(--fc-react-y);
  transition:border-color .45s var(--ease-doux),background-color .45s var(--ease-doux),box-shadow .45s var(--ease-doux);
  will-change:translate;
}
[data-fc-reactif]::after{
  content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;
  background:radial-gradient(360px circle at var(--fc-react-px) var(--fc-react-py),
    color-mix(in oklab,var(--ornement) 10%,transparent),transparent 68%);
  opacity:0;transition:opacity .5s var(--ease-doux);
}
[data-fc-reactif]:hover::after,[data-fc-reactif]:focus-within::after{opacity:1}
[data-fc-reactif].est-presse{box-shadow:inset 0 0 0 1px var(--filet)}
.fc-jour [data-fc-reactif]::after{
  background:radial-gradient(360px circle at var(--fc-react-px) var(--fc-react-py),
    color-mix(in oklab,var(--violet) 8%,transparent),transparent 68%);
}

/* 04_MONKS §7.3 — double filtre d'archive, réellement combinable. */
.fc-filtres--double{
  display:grid;gap:.55rem;justify-items:center;border-radius:1.2rem;
}
.fc-filtres__groupe{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:.5rem}
.fc-filtres__label{
  margin-right:.35rem;font-size:var(--t-label);letter-spacing:.16em;text-transform:uppercase;
  color:var(--texte-tres-doux);
}

/* Les figures WebGL sélectionnées restent des objets de galerie normaux. */
figure[data-fc-survol]{position:relative;overflow:hidden;isolation:isolate}
figure[data-fc-survol] canvas{z-index:1}
figure[data-fc-survol] figcaption{position:relative;z-index:2}

@media (max-width:760px){
  .fc-filtres--double{justify-items:stretch;border-radius:1rem}
  .fc-filtres__groupe{justify-content:flex-start;overflow-x:auto;flex-wrap:nowrap;padding-bottom:.2rem;scrollbar-width:none}
  .fc-filtres__groupe::-webkit-scrollbar{display:none}
  .fc-filtres__label{position:sticky;left:0;z-index:1;background:inherit;padding-right:.5rem}
}

@media (prefers-reduced-motion:reduce){
  [data-fc-lettres] .fc-lettre{opacity:1!important;transform:none!important;transition:none!important}
  [data-fc-hero-reactif]::after{opacity:.22!important;transition:none!important}
  [data-fc-reactif]{translate:none!important}
}

/* ═══════════════════════════════════════════════════════════════════════════
   28. PREVIEW QA — cadrage Direction + mobile réellement natif
   Corrections découvertes sur le rendu local multi-pages, pas une rustine
   dédiée à une capture : elles s'appliquent au système réel.
   ═══════════════════════════════════════════════════════════════════════════ */

/* Direction : portrait et texte forment une scène, pas deux blocs empilés. */
.fc-page-heros:has([data-fc-giulia-portrait]) > .fc-shell{
  display:grid;
  grid-template-columns:minmax(300px,.82fr) minmax(0,1fr);
  align-items:center;
  gap:clamp(2.5rem,6vw,7rem);
}
[data-fc-giulia-portrait]{
  width:100%;
  aspect-ratio:4 / 5;
  min-height:0;
  max-height:min(72svh,760px);
  margin:0;
}
[data-fc-giulia-portrait] picture,
[data-fc-giulia-portrait] img{display:block;width:100%;height:100%;object-fit:cover}
.fc-page-heros:has([data-fc-giulia-portrait]) .fc-lecture{max-width:42rem}
.fc-page-heros:has([data-fc-giulia-portrait]) [data-fc-giulia-credentials]{grid-column:1 / -1}

/* Les statuts de galerie sont des métadonnées distinctes de la légende. */
.fc-galerie figcaption > .fc-etat{display:block;margin-top:.42rem}

@media (max-width:760px){
  /* La langue reste dans le rideau mobile : le header n'est plus tronqué. */
  .fc-entete{padding-block:.95rem}
  .fc-entete__inner{gap:.65rem}
  .fc-marque{min-width:0;gap:.5rem}
  .fc-marque__signe{width:22px}
  .fc-marque__nom{font-size:.76rem;letter-spacing:.12em;overflow:hidden;text-overflow:ellipsis}
  .fc-entete__droite{gap:.5rem}
  .fc-entete__droite > .fc-langues{display:none}
  .fc-bascule{width:30px;height:20px}

  /* Direction est composée nativement en portrait, avec le texte dans le
     premier écran utile et non après une image haute de 1500 px. */
  .fc-page-heros:has([data-fc-giulia-portrait]) > .fc-shell{
    grid-template-columns:1fr;
    gap:var(--e-3);
  }
  [data-fc-giulia-portrait]{
    aspect-ratio:5 / 4;
    max-height:42svh;
    /* Le suivi RESN est desktop-only : sur tactile on retire aussi la couche
       perspective pour éviter un compositing GPU inutile et garder l’image
       LCP directement peinte par le navigateur. */
    transform:none!important;
    translate:none!important;
    will-change:auto;
  }
  .fc-page-heros:has([data-fc-giulia-portrait]) [data-fc-giulia-credentials]{grid-column:1}

  /* Les deux axes d'archive restent tous lisibles sans scroll horizontal. */
  .fc-filtres--double{padding:1rem}
  .fc-filtres__groupe{
    display:grid;
    width:100%;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:.55rem;
    overflow:visible;
    padding:0;
  }
  .fc-filtres__label{
    grid-column:1 / -1;
    position:static;
    padding:0 0 .1rem;
    margin:0;
    background:transparent;
  }
  .fc-filtres__groupe .fc-filtre{width:100%;justify-content:center;min-width:0}
}

/* ═══════════════════════════════════════════════════════════════════════════
   29. PARCOURS ÉDITORIAL — puissance transversale sans spectaculaire
   06_HELLO_MONDAY §7.6 + 10_DOGSTUDIO §7.6 + 01_LOCOMOTIVE §7.2
   ═══════════════════════════════════════════════════════════════════════════ */

[data-fc-rail-actif]{
  --fc-rail-prog:0;
  position:relative;
  padding-left:clamp(2.2rem,4vw,4.6rem);
}
[data-fc-rail-actif]::before,
[data-fc-rail-actif]::after{
  content:"";position:absolute;left:clamp(.72rem,1.5vw,1.35rem);top:.4rem;bottom:.4rem;width:1px;
  transform-origin:top;pointer-events:none;
}
[data-fc-rail-actif]::before{background:var(--filet)}
[data-fc-rail-actif]::after{
  background:linear-gradient(180deg,var(--ornement),color-mix(in oklab,var(--ornement) 22%,transparent));
  transform:scaleY(var(--fc-rail-prog));
  transition:transform .9s var(--ease-sortie);
}
.fc-rail-index{
  position:absolute;left:0;top:.1rem;width:2.8rem;
  display:grid;justify-items:center;gap:.45rem;
  font-family:var(--f-interface);font-size:var(--t-label);letter-spacing:.14em;
  color:var(--texte-tres-doux);font-variant-numeric:tabular-nums;
}
.fc-rail-index i{display:block;width:1px;height:2.2rem;background:var(--filet)}
.fc-rail-index__actuel{color:var(--ornement);transition:color .45s var(--ease-doux)}

[data-fc-rail-actif] > .fc-registre__entree,
[data-fc-rail-actif] > .fc-defrow,
[data-fc-rail-actif] > .fc-etape,
[data-fc-rail-actif] > .fc-pilier{
  transition:translate .8s var(--ease-sortie),opacity .55s var(--ease-doux),border-color .55s var(--ease-doux);
}
[data-fc-rail-actif] > :is(.fc-registre__entree,.fc-defrow,.fc-etape,.fc-pilier):not(.est-active){opacity:.72}
[data-fc-rail-actif] > :is(.fc-registre__entree,.fc-defrow,.fc-etape,.fc-pilier).est-active{
  translate:clamp(.15rem,.45vw,.45rem) 0;
  opacity:1;
}

/* Les images de projets et d'archives peuvent recevoir une profondeur GSAP
   sans jamais déplacer leur figure ni modifier la grille. */
figure[data-fc-clip] > picture[data-fc-vitesse]{
  display:block;width:100%;height:100%;will-change:transform;
}

@media (max-width:760px){
  [data-fc-rail-actif]{padding-left:1.55rem}
  [data-fc-rail-actif]::before,[data-fc-rail-actif]::after{left:.38rem}
  .fc-rail-index{display:none}
  [data-fc-rail-actif] > :is(.fc-registre__entree,.fc-defrow,.fc-etape,.fc-pilier).est-active{translate:none}
}

@media (prefers-reduced-motion:reduce){
  [data-fc-rail-actif]::after{transition:none}
  [data-fc-rail-actif] > :is(.fc-registre__entree,.fc-defrow,.fc-etape,.fc-pilier){opacity:1!important;translate:none!important;transition:none!important}
  figure[data-fc-clip] > picture[data-fc-vitesse]{transform:none!important}
}

/* ═══════════════════════════════════════════════════════════════════════════
   30. FAMILLES DE PAGES — reprise globale après audit visuel local
   Les pages historiques V15 sont reconnectées au système V27 sans changer
   leur contenu. Locomotive = structure, RESN = réponse, IG = matière.
   ═══════════════════════════════════════════════════════════════════════════ */

/* Domaines d'action — dernier survivant V15 : un héros éditorial suivi d'une
   grille de quatre cartes qui ont chacune une masse, un média et un rythme. */
.fc-domaines-hero{min-height:clamp(56svh,64vh,74svh)}
.fc-domaines-intro{
  display:grid;grid-template-columns:minmax(0,.9fr) minmax(18rem,.55fr);
  align-items:end;gap:clamp(2rem,7vw,8rem);width:100%;
}
.fc-domaines-intro > div{max-width:54rem}
.fc-domaines-intro > p{
  max-width:36ch;margin:0;color:var(--texte-doux);
  font-family:var(--f-lecture);font-size:var(--t-sous);font-weight:300;
}
.fc-domaines-corps{padding-block:clamp(var(--e-5),9vw,var(--e-7))}
.fc-domaines-grille{grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(1rem,2.2vw,2rem)}
.fc-domaines-carte{
  min-height:clamp(29rem,48vw,39rem);
  display:grid;grid-template-columns:minmax(0,.88fr) minmax(0,1.12fr);
  border:1px solid var(--filet);background:var(--surface);
  overflow:hidden;isolation:isolate;
}
.fc-domaines-carte .fc-carte__corps{
  padding:clamp(1.5rem,3vw,2.7rem);display:flex;flex-direction:column;align-items:flex-start;
  position:relative;z-index:3;
}
.fc-domaines-carte .fc-pilier__icone{margin-block:auto 1.5rem}
.fc-domaines-carte .fc-carte__corps :is(h2,h3){
  font-family:var(--f-display);font-size:clamp(1.9rem,3vw,3.5rem);line-height:1;
  letter-spacing:var(--ls-titre);margin-bottom:1rem;
}
.fc-domaines-carte .fc-carte__corps p{color:var(--texte-doux);max-width:32ch}
.fc-domaines-carte .fc-carte__corps a{
  margin-top:auto;padding-top:1.2rem;border-bottom:1px solid var(--filet-or);
  color:var(--ornement);font-size:var(--t-petit);
}
.fc-domaines-carte > figure{height:100%;min-height:22rem;background:var(--surface-2)}
.fc-domaines-carte > figure picture,
.fc-domaines-carte > figure img,
.fc-domaines-carte > figure canvas{display:block;width:100%;height:100%;object-fit:cover}
.fc-domaines-carte:nth-child(4n + 2),.fc-domaines-carte:nth-child(4n + 3){background:var(--surface-2)}
.fc-domaines-grille + .fc-citation{margin-top:clamp(4rem,9vw,9rem)}

/* Soutenir — le héros devient un vrai seuil de mécénat, puis les quatre axes
   forment une architecture visible. Aucune promesse ou montant n'est ajouté. */
.fc-soutien-hero{
  min-height:auto;display:grid;
  grid-template-columns:minmax(0,.88fr) minmax(16rem,.52fr);
  gap:clamp(2rem,6vw,7rem);align-items:center;
  padding-inline:var(--marge);padding-bottom:clamp(4rem,8vw,8rem);
}
.fc-soutien-hero > .fc-lecture{max-width:48rem;position:relative;z-index:2}
.fc-soutien-hero > .fc15-support-geometry{
  position:relative;inset:auto;width:min(100%,30rem);aspect-ratio:1;margin-inline:auto;
  opacity:1;border:1px solid var(--filet-nuit);border-radius:50%;
  background:
    radial-gradient(circle at 50% 50%,transparent 0 28%,var(--filet-nuit) 28.2% 28.45%,transparent 28.7% 100%),
    radial-gradient(circle at 50% 50%,transparent 0 46%,var(--filet-nuit) 46.2% 46.45%,transparent 46.7% 100%);
}
.fc-soutien-hero > .fc15-support-geometry::before,
.fc-soutien-hero > .fc15-support-geometry::after{
  content:"";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%) rotate(45deg);
  border:1px solid var(--filet-or);pointer-events:none;
}
.fc-soutien-hero > .fc15-support-geometry::before{width:45%;height:45%}
.fc-soutien-hero > .fc15-support-geometry::after{width:9px;height:9px;background:var(--ornement)}
.fc-soutien-hero > .fc-galerie{grid-column:1 / -1;grid-template-columns:repeat(4,minmax(0,1fr));margin-top:clamp(2rem,5vw,5rem)}
.fc-soutien-pilier{
  min-height:19rem;padding:clamp(1.4rem,2.5vw,2.2rem);
  border-top:1px solid var(--filet-nuit);border-bottom:1px solid var(--filet-nuit);
}
.fc-soutien-pilier .fc-pilier__icone{margin-bottom:auto}
.fc-soutien-pilier a{display:inline-flex;margin-top:auto;color:var(--ornement);font-size:var(--t-petit)}

/* Patronage — la page reste grave, mais son seuil reçoit une architecture de
   lumière cohérente avec Soutenir et les héros réactifs du reste du site. */
.fc-patronage-hero::before{
  content:"";position:absolute;right:var(--marge);bottom:clamp(1.8rem,5vw,5rem);
  width:clamp(8rem,18vw,16rem);aspect-ratio:1;pointer-events:none;opacity:.6;
  border:1px solid var(--filet-nuit);transform:rotate(45deg);
  box-shadow:0 0 0 clamp(1.2rem,2.5vw,2.4rem) color-mix(in oklab,var(--filet-nuit) 52%,transparent);
}

/* Finition commune : les grands CTA de soutien ont une lumière directionnelle
   qui suit le même vocabulaire que les héros, sans ajouter de couleur. */
.fc-etiquettes > .fc-bouton{position:relative;isolation:isolate}
.fc-etiquettes > .fc-bouton::after{
  content:"";position:absolute;inset:-1px;z-index:-1;border-radius:inherit;pointer-events:none;
  background:linear-gradient(110deg,transparent 22%,color-mix(in oklab,var(--ornement) 12%,transparent) 50%,transparent 78%);
  transform:translateX(-130%);transition:transform 1s var(--ease-sortie);
}
.fc-etiquettes > .fc-bouton:hover::after,.fc-etiquettes > .fc-bouton:focus-visible::after{transform:translateX(130%)}

@media (max-width:980px){
  .fc-domaines-grille{grid-template-columns:1fr}
  .fc-domaines-carte{min-height:30rem}
  .fc-soutien-hero{grid-template-columns:1fr}
  .fc-soutien-hero > .fc15-support-geometry{width:min(58vw,24rem)}
  .fc-soutien-hero > .fc-galerie{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:700px){
  .fc-domaines-intro{grid-template-columns:1fr;gap:var(--e-3)}
  .fc-domaines-carte{grid-template-columns:1fr;min-height:0}
  .fc-domaines-carte > figure{grid-row:1;min-height:46svh}
  .fc-domaines-carte .fc-carte__corps{min-height:19rem}
  .fc-soutien-hero{padding-inline:var(--marge);gap:var(--e-4)}
  .fc-soutien-hero > .fc15-support-geometry{width:min(72vw,19rem)}
  .fc-soutien-hero > .fc-galerie{grid-template-columns:1fr}
  .fc-soutien-pilier{min-height:14rem}
  .fc-patronage-hero::before{opacity:.32;right:-2.5rem}
}
@media (prefers-reduced-motion:reduce){
  .fc-etiquettes > .fc-bouton::after{display:none}
}


/* ═══════════════════════════════════════════════════════════════════════════
   31. CENTRE DE LA PREUVE — registre documentaire, pas grille commerciale
   ═══════════════════════════════════════════════════════════════════════════ */
.fc-preuves-hero{min-height:clamp(56svh,62vh,70svh)}
.fc-preuves-hero .fc-sous{max-width:48ch}
.fc-preuves-docs{padding-block:clamp(4rem,8vw,8rem)}
.fc-preuves-grille{
  grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;
  background:var(--filet-nuit);border:1px solid var(--filet-nuit);
}
.fc-preuve-doc{
  min-height:clamp(22rem,30vw,30rem);padding:clamp(1.7rem,3vw,3rem);
  display:flex;flex-direction:column;align-items:flex-start;
  border:0;background:var(--nuit);overflow:hidden;
}
.fc-preuve-doc::before{
  content:"";position:absolute;left:0;bottom:0;width:100%;height:1px;
  background:linear-gradient(90deg,var(--ornement),transparent 76%);
  transform:scaleX(.16);transform-origin:left;
  transition:transform 1s var(--ease-sortie);pointer-events:none;
}
.fc-preuve-doc:hover::before,.fc-preuve-doc:focus-within::before{transform:scaleX(1)}
.fc-preuve-doc__num{
  position:absolute;right:clamp(1.5rem,2.6vw,2.6rem);top:clamp(1.5rem,2.6vw,2.6rem);
  font-size:var(--t-label);letter-spacing:.2em;color:var(--ornement);
}
.fc-preuve-doc > .fc-label{padding-right:4rem}
.fc-preuve-doc h2{
  max-width:14ch;margin-top:auto;margin-bottom:clamp(1.6rem,3vw,2.5rem);
  font-family:var(--f-display);font-size:clamp(2.15rem,3.7vw,4.4rem);
  line-height:.98;letter-spacing:var(--ls-titre);font-weight:400;
}
.fc-preuve-doc p{max-width:42ch;color:var(--texte-tres-doux);margin-bottom:1.4rem}
.fc-preuve-doc > a{
  margin-top:auto;display:inline-flex;align-items:center;min-height:2.4rem;
  border-bottom:1px solid var(--filet-or);color:var(--ornement);
  font-size:var(--t-petit);letter-spacing:.02em;
}
.fc-preuves-docs > .fc-shell > p:last-child{
  max-width:72ch;margin-top:clamp(3rem,6vw,6rem);color:var(--texte-tres-doux);
  font-family:var(--f-lecture);font-size:var(--t-sous);font-weight:300;
}
@media (max-width:780px){
  .fc-preuves-grille{grid-template-columns:1fr}
  .fc-preuve-doc{min-height:20rem}
  .fc-preuve-doc h2{font-size:clamp(2rem,11vw,3.35rem)}
}
@media (prefers-reduced-motion:reduce){
  .fc-preuve-doc::before{transform:scaleX(1);transition:none}
}

/* ═══════════════════════════════════════════════════════════════════════════
   32. INSTITUTION — Gouvernance / Code / Rapport / Transparence
   Une même autorité visuelle, quatre rythmes distincts. Aucun contenu ajouté.
   ═══════════════════════════════════════════════════════════════════════════ */

/* Gouvernance — le portrait ouvre le registre, sans refaire la page Direction. */
.fc-gouvernance-hero{min-height:clamp(54svh,60vh,68svh)}
.fc-gouvernance-direction{
  position:relative;padding-block:clamp(4.5rem,9vw,9rem);overflow:hidden;
}
.fc-gouvernance-direction::before{
  content:"";position:absolute;inset:0 auto 0 50%;width:1px;background:var(--filet);pointer-events:none;
}
.fc-gouvernance-direction .fc-duo{align-items:start}
.fc-gouvernance-direction .fc-figure{min-height:min(68svh,46rem)}
.fc-gouvernance-direction .fc-figure > .frag-rv,
.fc-gouvernance-direction .fc-figure picture,
.fc-gouvernance-direction .fc-figure img{display:block;width:100%;height:100%}
.fc-gouvernance-direction .fc-figure img{object-fit:cover;object-position:50% 24%}
.fc-gouvernance-direction .fc-lecture{padding-top:clamp(1rem,5vw,5rem);max-width:42rem}
.fc-gouvernance-direction .fc-lecture h2{
  font-family:var(--f-display);font-size:clamp(3rem,6vw,6.8rem);line-height:.92;
  letter-spacing:var(--ls-titre);font-weight:400;margin:.9rem 0 1.1rem;
}
.fc-gouvernance-principes{padding-top:clamp(3rem,6vw,6rem)}
.fc-gouvernance-liste{counter-reset:fc-gouvernance}
.fc-gouvernance-liste .fc-defrow{
  counter-increment:fc-gouvernance;grid-template-columns:minmax(3rem,.55fr) minmax(11rem,3.2fr) minmax(0,6.8fr);
  align-items:start;column-gap:clamp(1rem,3vw,3rem);padding-block:clamp(1.65rem,3vw,3rem);
}
.fc-gouvernance-liste .fc-defrow::before{
  content:counter(fc-gouvernance,decimal-leading-zero);font-size:var(--t-label);letter-spacing:.16em;
  color:var(--ornement);padding-top:.45rem;
}
.fc-gouvernance-liste .fc-defrow dt{font-size:clamp(1.35rem,2.15vw,2.3rem);line-height:1.05}
.fc-gouvernance-liste .fc-defrow dd{max-width:52rem;font-size:clamp(1rem,1.35vw,1.18rem);line-height:1.72}

/* Code de dignité — dix lignes, dix respirations : le texte est la scène. */
.fc-code-hero{min-height:clamp(48svh,56vh,64svh)}
.fc-code-corps{padding-block:0;background:var(--albe)}
.fc-code-corps > .fc-shell{max-width:none;padding-inline:var(--marge)}
.fc-code-liste{border-top:1px solid var(--filet);counter-reset:fc-code}
.fc-code-liste .fc-defrow{
  min-height:clamp(11rem,18svh,15rem);grid-template-columns:minmax(4.2rem,.8fr) minmax(0,9.2fr);
  align-items:center;gap:clamp(1rem,4vw,4rem);padding-block:clamp(2rem,4vw,4rem);
  border-top:0;border-bottom:1px solid var(--filet);isolation:isolate;overflow:hidden;
}
.fc-code-liste .fc-defrow::before{
  content:"";position:absolute;inset:0;z-index:-1;background:var(--obsidienne);
  transform:scaleY(0);transform-origin:bottom;transition:transform .8s var(--ease-sortie);
}
.fc-code-liste .fc-defrow:is(:hover,.est-active)::before{transform:scaleY(1)}
.fc-code-liste .fc-defrow dt{
  font-family:var(--f-ui);font-size:var(--t-label);letter-spacing:.2em;color:var(--ornement);
  transition:color .55s var(--ease-doux);
}
.fc-code-liste .fc-defrow dd{
  max-width:34ch;font-family:var(--f-display);font-size:clamp(2rem,4.7vw,5.4rem);line-height:.98;
  letter-spacing:var(--ls-titre);color:var(--texte);transition:color .55s var(--ease-doux);
}
.fc-code-liste .fc-defrow:is(:hover,.est-active) dd{color:var(--ivoire)}
.fc-code-liste .fc-defrow:is(:hover,.est-active) dt{color:var(--ornement)}

/* Rapport — un registre de restitution avec numérotation réellement source. */
.fc-rapport-hero{min-height:clamp(54svh,62vh,70svh)}
.fc-rapport-corps{padding-block:clamp(4rem,8vw,8rem)}
.fc-rapport-intro{
  max-width:55ch!important;margin:0 0 clamp(4rem,8vw,8rem);font-family:var(--f-lecture);
  font-size:clamp(1.35rem,2.25vw,2.15rem);line-height:1.42;font-weight:300;color:var(--texte);
}
.fc-rapport-registre{border-top:1px solid var(--filet)}
.fc-rapport-registre > .fc-registre__entree{
  grid-template-columns:minmax(3rem,.8fr) minmax(0,9.2fr);gap:clamp(1.4rem,4vw,4.5rem);
  padding-block:clamp(2.5rem,5vw,5rem);align-items:start;
}
.fc-rapport-registre > .fc-registre__entree > .fc-registre__num{
  position:sticky;top:calc(var(--entete-h,5rem) + 1.5rem);font-family:var(--f-display);
  font-size:clamp(2.1rem,4vw,4.7rem);line-height:1;color:var(--ornement);opacity:.82;
}
.fc-rapport-registre > .fc-registre__entree > .fc-registre__corps{max-width:70rem}
.fc-rapport-registre .fc-registre__tete :is(h2,h3){
  font-family:var(--f-display);font-size:clamp(2.05rem,4.1vw,4.8rem);line-height:1;
  letter-spacing:var(--ls-titre);font-weight:400;
}
.fc-rapport-registre .fc-registre__corps > p{max-width:58ch;font-size:clamp(1rem,1.28vw,1.16rem);line-height:1.72}
.fc-rapport-registre .fc-registre .fc-lien{
  display:grid;grid-template-columns:minmax(7rem,.95fr) minmax(0,3fr) auto;gap:1rem;align-items:center;
  padding-block:1rem;border-top:1px solid var(--filet);
}
.fc-rapport-maxime{
  max-width:15ch!important;margin:clamp(5rem,10vw,10rem) 0 0 auto;font-family:var(--f-display);
  font-size:clamp(3rem,7vw,8rem);line-height:.9;letter-spacing:var(--ls-titre);color:var(--texte);
}

/* Transparence — table de statut d'abord, principes de gouvernance ensuite. */
.fc-transparence-hero{min-height:clamp(58svh,66vh,74svh)}
.fc-transparence-hero .fc-sous{max-width:64ch}
.fc-transparence-corps{padding-block:clamp(4rem,8vw,8rem)}
.fc-transparence-table{border-top:1px solid var(--filet)}
.fc-transparence-table .fc-defrow{
  grid-template-columns:minmax(11rem,2.7fr) minmax(0,7.3fr);padding-block:clamp(1.45rem,2.6vw,2.5rem);
}
.fc-transparence-table .fc-defrow dt{font-size:clamp(1.28rem,2vw,2rem);line-height:1.08}
.fc-transparence-table .fc-defrow dd{position:relative;line-height:1.65}
.fc-transparence-table .fc-defrow dd:has(.fc-etiquette){padding-right:clamp(9.5rem,15vw,12rem)}
.fc-transparence-table .fc-etiquette{
  position:absolute;right:0;top:0;min-width:8.7rem;justify-content:center;white-space:nowrap;
  text-align:center;border-color:var(--filet-or);
}
.fc-transparence-corps .fc-note{
  max-width:62rem;margin:clamp(4rem,8vw,8rem) 0 clamp(2rem,4vw,4rem);padding:0 0 0 clamp(1rem,2vw,2rem);
  border-left:1px solid var(--ornement);font-family:var(--f-lecture);font-size:clamp(1.2rem,2vw,1.8rem);line-height:1.45;
}
.fc-transparence-intertitre{
  margin:clamp(5rem,10vw,10rem) 0 1.2rem;font-family:var(--f-display);font-size:clamp(3rem,7vw,7rem);
  line-height:.92;letter-spacing:var(--ls-titre);font-weight:400;
}
.fc-transparence-intertitre + p{max-width:58ch!important;margin-bottom:clamp(3rem,6vw,6rem)}
.fc-transparence-gouvernance .fc-defrow{padding-block:clamp(1.6rem,3vw,3rem)}
.fc-transparence-gouvernance .fc-defrow dt{font-size:clamp(1.35rem,2.2vw,2.35rem)}

@media (max-width:900px){
  .fc-gouvernance-direction::before{display:none}
  .fc-gouvernance-direction .fc-figure{min-height:58svh}
  .fc-gouvernance-liste .fc-defrow{grid-template-columns:minmax(2.8rem,.7fr) minmax(9rem,3fr) minmax(0,6.3fr)}
  .fc-rapport-registre > .fc-registre__entree{grid-template-columns:minmax(2.8rem,.7fr) minmax(0,9.3fr)}
}
@media (max-width:700px){
  .fc-gouvernance-liste .fc-defrow{grid-template-columns:2.4rem minmax(0,1fr);gap:.7rem 1rem}
  .fc-gouvernance-liste .fc-defrow::before{grid-column:1;grid-row:1 / span 2}
  .fc-gouvernance-liste .fc-defrow dt,.fc-gouvernance-liste .fc-defrow dd{grid-column:2}
  .fc-code-corps > .fc-shell{padding-inline:var(--marge)}
  .fc-code-liste .fc-defrow{min-height:10rem;grid-template-columns:2.8rem minmax(0,1fr);gap:1rem}
  .fc-code-liste .fc-defrow dd{font-size:clamp(1.85rem,9.5vw,3rem);line-height:1.02}
  .fc-code-liste .fc-defrow::before{display:none}
  .fc-code-liste .fc-defrow:is(:hover,.est-active) dd{color:var(--texte)}
  .fc-rapport-registre > .fc-registre__entree{grid-template-columns:1fr;gap:1.2rem}
  .fc-rapport-registre > .fc-registre__entree > .fc-registre__num{position:static;font-size:2.2rem}
  .fc-rapport-registre .fc-registre .fc-lien{grid-template-columns:1fr auto}
  .fc-rapport-registre .fc-registre .fc-lien .fc-etat{grid-column:1 / -1}
  .fc-transparence-table .fc-defrow{grid-template-columns:1fr;gap:1rem}
  .fc-transparence-table .fc-defrow dd:has(.fc-etiquette){padding-right:0}
  .fc-transparence-table .fc-etiquette{position:static;display:inline-flex;margin-top:1rem;min-width:0}
}
@media (prefers-reduced-motion:reduce){
  .fc-code-liste .fc-defrow::before{display:none}
  .fc-code-liste .fc-defrow:is(:hover,.est-active) dd{color:var(--texte)}
}

/* — 32.1 Archives : console de lecture à deux axes, pas rangée de petits tags. */
@media (min-width:761px){
  .fc-filtres--double{
    grid-template-columns:repeat(2,minmax(0,1fr));justify-items:stretch;gap:0;
    padding:0;border:1px solid var(--filet-nuit);border-radius:0;background:var(--voile-nuit);
    margin-bottom:clamp(3rem,6vw,6rem);
  }
  .fc-filtres--double .fc-filtres__groupe{
    justify-content:flex-start;align-content:start;gap:.55rem;padding:1.15rem 1.25rem;
  }
  .fc-filtres--double .fc-filtres__groupe + .fc-filtres__groupe{border-left:1px solid var(--filet-nuit)}
  .fc-filtres--double .fc-filtres__label{
    flex:0 0 100%;margin:0 0 .25rem;color:var(--ornement);font-size:.62rem;
  }
  .fc-filtres--double .fc-filtre{padding:.48rem .9rem;background:transparent}
}


/* ═══════════════════════════════════════════════════════════════════════════
   33. ARXIV8 — ORCHESTRATION VISUELLE 10 STUDIOS
   Typographie, lumière, transitions et micro-réponses partagent les mêmes
   tokens. Ce bloc ne crée pas une 17e couche : il appartient à la feuille
   unique et remplace les décisions « deux studios seulement » devenues
   obsolètes après la directive autoritaire.
   ═══════════════════════════════════════════════════════════════════════════ */

:root{
  /* Couleur comme lumière, jamais comme patchwork de palettes externes.
     02 Immersive Garden / 05 Active Theory / 08 makemepulse / 10 Dogstudio. */
  --lumiere-froide:var(--glycine);
  --lumiere-chaude:var(--or-clair);
  --lumiere-preuve:var(--jade);
  --brume-claire:var(--carrara);
  --brume-sombre:var(--nuit);
}

/* Bodoni est la signature. Son axe optique est ouvert au maximum sur les
   grands corps ; Newsreader revient à une taille optique de lecture. */
.fc-monument,.fc-page-heros__titre,.fc-heros__titre{
  font-optical-sizing:auto;
  font-variation-settings:'opsz' var(--opsz-monument),'wght' 430;
  text-wrap:balance;
}
.fc-titre,.fc-gouvernance-direction .fc-lecture h2,.fc-rapport-registre .fc-registre__tete :is(h2,h3),
.fc-transparence-intertitre,.fc-code-liste .fc-defrow dd{
  font-optical-sizing:auto;
  font-variation-settings:'opsz' var(--opsz-titre),'wght' 420;
  text-wrap:balance;
}
.fc-chapitre{
  font-optical-sizing:auto;
  font-variation-settings:'opsz' var(--opsz-chapitre),'wght' 430;
}
.fc-lecture,.fc-sous,.fc-note,blockquote{
  font-optical-sizing:auto;
  font-variation-settings:'opsz' var(--opsz-lecture),'wght' 330;
}
.fc-label,.fc-entete,.fc-filtres,.fc-hud,.fc-rail-index{
  font-variation-settings:'wght' 520;
}
.fc-monument em,.fc-titre em,.fc-maxime em,blockquote em{
  font-family:var(--f-signature);font-style:italic;
  font-variation-settings:'opsz' 88,'wght' 420;
}

/* La couleur externe devient une source lumineuse Caravelli : deux halos
   maximum, jamais une palette néon importée. */
.fc-page-heros::before{
  content:"";position:absolute;inset:0;pointer-events:none;z-index:-1;
  background:
    radial-gradient(58% 72% at 78% 18%,color-mix(in oklab,var(--lumiere-froide) 8%,transparent),transparent 72%),
    radial-gradient(42% 58% at 12% 86%,color-mix(in oklab,var(--lumiere-chaude) 6%,transparent),transparent 76%);
  opacity:.58;
}
.fc-jour.fc-page-heros::before,.fc-jour .fc-page-heros::before{opacity:.2}

/* 03 RESN + 04 Monks + 07 AQuest : la puissance et le service utilisent des
   tempos distincts. L'overshoot n'est autorisé que sur les objets courts. */
.fc-bouton,.fc-filtre,.fc-hotspot__puce{transition-timing-function:var(--ease-service)}
.fc-carte,.fc-pilier,.fc-preuve-doc,.fc-soutien-pilier{transition-timing-function:var(--ease-produit)}
.fc-elastique,.fc-cta-aquest.est-presse{transition-timing-function:var(--ease-impact)}

/* 09 Merci Michel : le rideau de langue conserve la ponctuation violette,
   enrichie d'un filet-or très bref. 02/08 : le dissolve reste la transition
   lente des déplacements éditoriaux. */
.fc-rideau{
  background:
    linear-gradient(180deg,transparent 0 49.7%,color-mix(in oklab,var(--or-clair) 62%,transparent) 49.8% 50.2%,transparent 50.3%),
    var(--violet);
}

/* 06 Hello Monday : les longs récits gardent une mesure éditoriale ;
   01 Locomotive : les grands titres peuvent volontairement dépasser ce cadre. */
.fc-lecture{max-width:min(var(--largeur-texte),68ch)}
.fc-rapport-intro,.fc-transparence-corps .fc-note{max-width:58ch}

/* 08 makemepulse : sur tactile, on privilégie composition verticale, douceur
   et stabilité GPU ; aucune inertie physique décorative n'est conservée. */
@media (hover:none),(pointer:coarse){
  .fc-elastique:hover,.fc-carte:hover,.fc-pilier:hover{transform:none!important}
  [data-fc-reactif]{translate:none!important;will-change:auto}
  .fc-page-heros::before{filter:blur(8px);opacity:.34}
}

@media (prefers-reduced-motion:reduce){
  .fc-rideau{background:var(--violet)}
  .fc-page-heros::before{opacity:.18;filter:none}
}

/* ═══════════════════════════════════════════════════════════════════════════
   34. CLIMAT CARAVELLI — MÉTÉO VIVANTE / RESN × MAKEMEPULSE
   La météo n'est pas un encart utilitaire : elle module la lumière du seuil.
   Firenze / Paris, jour / nuit, pluie / soleil / brume et vent partagent les
   tokens Caravelli. Le détail reste secondaire et ne bloque jamais la lecture.
   ═══════════════════════════════════════════════════════════════════════════ */

:root{
  --fc-climat-lux:var(--or-clair);
  --fc-climat-froid:var(--glycine);
  --fc-climat-vent:0;
  --fc-climat-nuage:.2;
  --fc-climat-pluie:0;
  --fc-climat-direction:0deg;
}



/* 34.1 — OUVERTURE ATMOSPHÉRIQUE RESN : la donnée météo entre dans le héros
   avant de se condenser dans l'instrument d'en-tête. Aucun panneau opaque :
   typographie, filet, souffle et lumière composent la présence. */
.fc-heros,.fc-page-heros,.fc-porte{position:relative}
.fc-climat-ouverture{
  --fc-ouverture-vent:0;position:absolute;z-index:26;right:clamp(1.3rem,5vw,5.8rem);
  top:clamp(7rem,15svh,10.5rem);width:min(36rem,42vw);display:grid;grid-template-columns:minmax(0,1fr) auto;
  column-gap:clamp(1rem,2vw,2.2rem);align-items:end;color:var(--carrara);pointer-events:none;
  opacity:0;filter:blur(9px);transform:translate3d(0,-14px,0);clip-path:inset(0 0 100% 0);
  transition:opacity .9s var(--ease-doux),filter 1.25s var(--ease-doux),transform 1.25s var(--ease-camera),clip-path 1.25s var(--ease-sortie);
}
.fc-climat-ouverture.est-presente{opacity:1;filter:none;transform:none;clip-path:inset(0)}
.fc-climat-ouverture.est-dissoute{opacity:0;filter:blur(4px);transform:translate3d(calc(var(--fc-ouverture-vent) * 16px),-7px,0);clip-path:inset(0 0 0 100%);transition-duration:1.35s}
.fc-climat-ouverture.est-interrompue{opacity:0!important;visibility:hidden;filter:none!important;transform:none!important;clip-path:none!important;transition:opacity .18s linear!important}
.fc-climat-ouverture::before{
  content:"";position:absolute;inset:-2.8rem -2rem -2.4rem -3.5rem;z-index:-1;pointer-events:none;
  background:radial-gradient(ellipse at 74% 44%,color-mix(in oklab,var(--fc-climat-lux) 11%,transparent),transparent 58%);
  opacity:.75;mix-blend-mode:screen;
}
body[data-fc-cycle="nuit"] .fc-climat-ouverture::before{background:radial-gradient(ellipse at 72% 44%,color-mix(in oklab,var(--fc-climat-froid) 13%,transparent),transparent 60%)}
.fc-climat-ouverture__trait{grid-column:1 / -1;height:1px;margin-bottom:.8rem;transform-origin:right;background:linear-gradient(90deg,transparent,color-mix(in oklab,var(--carrara) 24%,transparent) 24%,color-mix(in oklab,var(--or-clair) 56%,transparent) 68%,transparent);transform:scaleX(.15);transition:transform 1.5s var(--ease-sortie) .12s}
.fc-climat-ouverture.est-presente .fc-climat-ouverture__trait{transform:scaleX(1)}
.fc-climat-ouverture__corps{display:grid;grid-template-columns:auto 1fr;align-items:baseline;gap:.12rem .8rem;min-width:0}
.fc-climat-ouverture__surtitle{grid-column:1 / -1;font-family:var(--f-interface);font-size:.54rem;font-weight:600;letter-spacing:.28em;text-transform:uppercase;color:color-mix(in oklab,var(--carrara) 52%,transparent)}
.fc-climat-ouverture__ville{font-family:var(--f-display);font-optical-sizing:auto;font-variation-settings:'opsz' 44,'wght' 400;font-size:clamp(1.8rem,3vw,3.45rem);line-height:.95;letter-spacing:-.035em;color:var(--ivoire)}
.fc-climat-ouverture__etat{font-family:var(--f-editorial);font-optical-sizing:auto;font-style:italic;font-size:clamp(.82rem,1.15vw,1.04rem);color:color-mix(in oklab,var(--glycine) 78%,var(--carrara));white-space:nowrap}
.fc-climat-ouverture__heure{grid-column:1 / -1;font-family:var(--f-interface);font-size:.56rem;letter-spacing:.16em;text-transform:uppercase;color:color-mix(in oklab,var(--carrara) 42%,transparent);margin-top:.12rem}
.fc-climat-ouverture__mesures{display:grid;grid-template-columns:repeat(3,minmax(3.7rem,auto));align-items:end;min-width:0}
.fc-climat-ouverture__mesures > span{position:relative;display:grid;gap:.14rem;padding:0 .78rem .06rem;border-left:1px solid color-mix(in oklab,var(--carrara) 10%,transparent)}
.fc-climat-ouverture__mesures i{position:absolute;left:-1px;bottom:0;width:1px;height:calc(18% + var(--fc-ouverture-vent) * 46%);background:linear-gradient(transparent,var(--or-clair));opacity:.75}
.fc-climat-ouverture__mesures b{font-family:var(--f-display);font-size:.95rem;font-weight:400;letter-spacing:-.025em;color:var(--carrara)}
.fc-climat-ouverture__mesures em{font-family:var(--f-interface);font-style:normal;font-size:.48rem;letter-spacing:.18em;text-transform:uppercase;color:color-mix(in oklab,var(--carrara) 38%,transparent)}
body[data-fc-meteo="pluie"] .fc-climat-ouverture__trait,body[data-fc-meteo="orage"] .fc-climat-ouverture__trait{background:linear-gradient(90deg,transparent,color-mix(in oklab,var(--glycine) 20%,transparent),color-mix(in oklab,var(--carrara) 38%,transparent),transparent)}
/* Sur le seuil trilingue, l'atmosphère remplace le petit label central
   redondant sans déplacer le monument ni les portes de langue. */
body.fc-climat-arrivee .fc-porte__centre > .fc-label:first-child{visibility:hidden}
.fc-porte > .fc-climat-ouverture{top:clamp(6.7rem,11svh,7.8rem)}

.fc-climat-ciel{
  position:fixed;inset:0 0 auto 0;height:min(62svh,680px);z-index:5250;
  width:100%;pointer-events:none;opacity:0;mix-blend-mode:screen;
  mask-image:linear-gradient(to bottom,#000 0 58%,transparent 100%);
  -webkit-mask-image:linear-gradient(to bottom,#000 0 58%,transparent 100%);
  transition:opacity 1.6s var(--ease-doux),filter 1.6s var(--ease-doux);
}
body.fc-climat-arrivee[data-fc-cycle="nuit"] .fc-climat-ciel{opacity:.32;filter:saturate(.8) hue-rotate(8deg)}
body.fc-climat-arrivee[data-fc-meteo="pluie"] .fc-climat-ciel{opacity:.55;filter:saturate(.72) contrast(1.04)}
body.fc-climat-arrivee[data-fc-meteo="brume"] .fc-climat-ciel{opacity:.48;filter:blur(.35px) saturate(.62)}
body.fc-climat-arrivee[data-fc-meteo="soleil"] .fc-climat-ciel{opacity:.28;filter:saturate(.92)}
body.fc-climat-arrivee[data-fc-meteo="neige"] .fc-climat-ciel{opacity:.43;filter:saturate(.56) brightness(1.08)}
body.fc-climat-arrivee[data-fc-meteo="orage"] .fc-climat-ciel{opacity:.58;filter:saturate(.58) contrast(1.08)}

.fc-climat-lumiere{
  position:fixed;inset:0 0 auto 0;height:min(72svh,760px);z-index:5240;pointer-events:none;opacity:0;
  background:radial-gradient(ellipse at 78% 8%,color-mix(in oklab,var(--or-clair) 13%,transparent),transparent 43%),linear-gradient(118deg,transparent 20%,color-mix(in oklab,var(--glycine) 4%,transparent) 58%,transparent 82%);
  mix-blend-mode:screen;mask-image:linear-gradient(#000 0 62%,transparent 100%);-webkit-mask-image:linear-gradient(#000 0 62%,transparent 100%);
  transition:opacity 1.8s var(--ease-doux),filter 1.8s var(--ease-doux),background 1.8s var(--ease-doux);
}
body.fc-climat-arrivee[data-fc-cycle="nuit"] .fc-climat-lumiere{opacity:.28;background:radial-gradient(ellipse at 74% 5%,color-mix(in oklab,var(--glycine) 14%,transparent),transparent 46%),linear-gradient(135deg,transparent 26%,color-mix(in oklab,var(--violet) 5%,transparent),transparent 74%)}
body.fc-climat-arrivee[data-fc-meteo="pluie"] .fc-climat-lumiere,body.fc-climat-arrivee[data-fc-meteo="orage"] .fc-climat-lumiere{opacity:.31;filter:saturate(.7) hue-rotate(8deg)}
body.fc-climat-arrivee[data-fc-meteo="brume"] .fc-climat-lumiere,body.fc-climat-arrivee[data-fc-meteo="nuage"] .fc-climat-lumiere{opacity:.36;filter:saturate(.66) blur(1px)}
.fc-climat-ciel.est-dissipe,.fc-climat-lumiere.est-dissipe{opacity:0!important;filter:blur(7px)!important;transition-duration:1.8s!important}

.fc-climat{
  position:fixed;right:clamp(1rem,2vw,2rem);top:calc(var(--entete-h,5rem) + .8rem);
  z-index:6060;width:clamp(12.5rem,17vw,15.5rem);color:var(--carrara);
  font-family:var(--f-interface);font-size:.68rem;letter-spacing:.08em;
  transition:transform .7s var(--ease-sortie),opacity .7s var(--ease-doux);
}
.fc-climat[hidden]{display:none}
.fc-climat.est-attente{animation:none!important;opacity:0;transform:translate3d(0,-7px,0);pointer-events:none}
.fc-climat__verre{
  position:relative;overflow:hidden;border:1px solid color-mix(in oklab,var(--carrara) 14%,transparent);
  background:linear-gradient(145deg,oklch(.16 .012 280 / .38),oklch(.1 .008 270 / .18));
  box-shadow:0 14px 42px oklch(.05 0 0 / .14),inset 0 1px 0 oklch(.98 .01 90 / .055);
  -webkit-backdrop-filter:blur(18px) saturate(1.08);backdrop-filter:blur(18px) saturate(1.08);
}
.fc-climat__verre::before{
  content:"";position:absolute;inset:-70% -35% auto auto;width:9rem;height:9rem;border-radius:50%;pointer-events:none;
  background:radial-gradient(circle,color-mix(in oklab,var(--fc-climat-lux) 22%,transparent),transparent 66%);
  transform:translate3d(calc(var(--fc-climat-vent) * .16px),0,0);opacity:.72;
  transition:background 1.4s var(--ease-doux),opacity 1.4s var(--ease-doux),transform 1.8s var(--ease-camera);
}
body[data-fc-cycle="nuit"] .fc-climat__verre::before{
  background:radial-gradient(circle,color-mix(in oklab,var(--fc-climat-froid) 28%,transparent),transparent 68%);
}

.fc-climat:not(:hover):not(:focus-within):not([data-ouvert="true"]) .fc-climat__verre{border-color:color-mix(in oklab,var(--carrara) 9%,transparent);background:linear-gradient(145deg,oklch(.13 .01 278 / .30),oklch(.09 .006 270 / .13));box-shadow:0 10px 34px oklch(.03 0 0 / .10)}
.fc-climat:not(:hover):not(:focus-within):not([data-ouvert="true"]) .fc-climat__verre::before{opacity:.42}
body.fc-climat-actif .fc-climat{will-change:auto}
.fc-climat__ligne{
  position:relative;display:grid;grid-template-columns:2.6rem 1fr auto;align-items:center;gap:.72rem;
  min-height:3.55rem;padding:.62rem .7rem .62rem .62rem;border:0;background:transparent;color:inherit;width:100%;text-align:left;
}
.fc-climat__ligne:focus-visible{outline:1px solid var(--or-clair);outline-offset:3px}
.fc-climat__astre{
  position:relative;width:2.35rem;height:2.35rem;border-radius:50%;display:grid;place-items:center;
  border:1px solid color-mix(in oklab,var(--carrara) 16%,transparent);
  background:radial-gradient(circle at 35% 32%,oklch(.98 .035 90 / .62),oklch(.78 .08 82 / .12) 46%,transparent 70%);
  box-shadow:inset 0 0 0 1px oklch(.98 .02 90 / .035),0 0 24px oklch(.82 .09 84 / .10);
}
body[data-fc-cycle="nuit"] .fc-climat__astre{
  background:radial-gradient(circle at 38% 33%,oklch(.92 .03 275 / .46),oklch(.56 .08 286 / .10) 48%,transparent 72%);
  box-shadow:0 0 26px oklch(.64 .08 286 / .12);
}
.fc-climat__rose{position:absolute;inset:3px;border-radius:50%;border:1px solid color-mix(in oklab,var(--carrara) 8%,transparent);transform:rotate(var(--fc-climat-direction));transition:transform 1.8s var(--ease-camera);opacity:.8}
.fc-climat__rose::before{content:"";position:absolute;left:50%;top:-1px;width:1px;height:30%;background:linear-gradient(var(--or-clair),transparent);transform:translateX(-50%);box-shadow:0 0 6px color-mix(in oklab,var(--or-clair) 42%,transparent)}
.fc-climat__astre::before,.fc-climat__astre::after{content:"";position:absolute;pointer-events:none}
body[data-fc-meteo="soleil"] .fc-climat__astre::before{width:.72rem;height:.72rem;border-radius:50%;background:var(--or-clair);box-shadow:0 0 14px oklch(.88 .11 83 / .42);animation:fc-astre-respire 5.4s var(--ease-doux) infinite}
@keyframes fc-astre-respire{50%{transform:scale(1.12);box-shadow:0 0 22px oklch(.88 .11 83 / .28)}}
body[data-fc-cycle="nuit"] .fc-climat__astre::before{width:.82rem;height:.82rem;border-radius:50%;background:var(--carrara);box-shadow:.22rem -.11rem 0 .01rem color-mix(in oklab,var(--nuit) 92%,transparent)}
body[data-fc-meteo="nuage"] .fc-climat__astre::after,
body[data-fc-meteo="pluie"] .fc-climat__astre::after,
body[data-fc-meteo="brume"] .fc-climat__astre::after{
  width:1.08rem;height:.34rem;border-radius:999px;background:oklch(.88 .018 255 / .58);box-shadow:.33rem -.16rem 0 -.03rem oklch(.88 .018 255 / .45),-.28rem -.08rem 0 -.08rem oklch(.88 .018 255 / .38)
}
body[data-fc-meteo="pluie"] .fc-climat__astre,body[data-fc-meteo="orage"] .fc-climat__astre{box-shadow:inset 0 0 0 1px oklch(.98 .02 90 / .025),0 0 22px oklch(.58 .06 248 / .10)}
body[data-fc-meteo="neige"] .fc-climat__astre::after{width:.22rem;height:.22rem;border-radius:50%;background:var(--carrara);box-shadow:.38rem .12rem 0 -.03rem color-mix(in oklab,var(--carrara) 72%,transparent),-.31rem .18rem 0 -.06rem color-mix(in oklab,var(--carrara) 58%,transparent)}
.fc-climat__identite{min-width:0;display:grid;gap:.14rem}
.fc-climat__ville{
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:var(--f-ui);font-size:.62rem;font-weight:560;
  letter-spacing:.21em;text-transform:uppercase;color:var(--carrara)
}
.fc-climat__etat{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:color-mix(in oklab,var(--carrara) 64%,transparent);letter-spacing:.045em}
.fc-climat__heure{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:color-mix(in oklab,var(--carrara) 38%,transparent);font-size:.49rem;letter-spacing:.12em;text-transform:uppercase}
.fc-climat__temperature{
  font-family:var(--f-display);font-size:1.32rem;font-weight:420;line-height:1;font-optical-sizing:auto;
  font-variation-settings:'opsz' 36,'wght' 420;letter-spacing:-.035em;color:var(--carrara)
}
.fc-climat__detail{
  display:grid;grid-template-rows:0fr;opacity:0;border-top:1px solid transparent;
  transition:grid-template-rows .7s var(--ease-sortie),opacity .45s var(--ease-doux),border-color .7s var(--ease-doux)
}
.fc-climat__detail > div{overflow:hidden}
.fc-climat:is(:hover,:focus-within,[data-ouvert="true"]) .fc-climat__detail{
  grid-template-rows:1fr;opacity:1;border-color:color-mix(in oklab,var(--carrara) 10%,transparent)
}
.fc-climat__mesures{display:grid;grid-template-columns:repeat(3,1fr);gap:0;padding:.58rem .68rem .45rem}
.fc-climat__mesure{display:grid;gap:.12rem;min-width:0}
.fc-climat__mesure + .fc-climat__mesure{border-left:1px solid color-mix(in oklab,var(--carrara) 9%,transparent);padding-left:.55rem}
.fc-climat__mesure b{font-family:var(--f-display);font-size:.9rem;font-weight:400;letter-spacing:-.02em;color:var(--carrara)}
.fc-climat__mesure span{font-size:.54rem;letter-spacing:.16em;text-transform:uppercase;color:color-mix(in oklab,var(--carrara) 46%,transparent)}
.fc-climat__bas{display:flex;align-items:flex-end;justify-content:space-between;gap:.7rem;padding:.42rem .68rem .6rem;color:color-mix(in oklab,var(--carrara) 38%,transparent);font-size:.52rem;letter-spacing:.11em;text-transform:uppercase}
.fc-climat__actions,.fc-climat__sources{display:flex;align-items:center;gap:.52rem;flex-wrap:wrap}
.fc-climat__sources{justify-content:flex-end;gap:.32rem}
.fc-climat__changer,.fc-climat__localiser{border:0;background:none;color:var(--or-clair);font:inherit;letter-spacing:.13em;text-transform:uppercase;cursor:pointer;padding:.1rem 0}
.fc-climat__localiser{color:color-mix(in oklab,var(--carrara) 68%,transparent);position:relative;padding-left:.72rem}
.fc-climat__localiser::before{content:"";position:absolute;left:0;top:50%;width:.34rem;height:.34rem;border:1px solid currentColor;border-radius:50%;transform:translateY(-50%);box-shadow:0 0 0 .12rem color-mix(in oklab,currentColor 10%,transparent)}
.fc-climat__localiser:disabled{opacity:.55;cursor:wait}
.fc-climat__source{color:inherit;text-decoration:none}
.fc-climat__source:hover{color:var(--carrara)}
.fc-climat.est-entree{animation:fc-climat-entree 1.15s var(--ease-sortie) both .6s}
@keyframes fc-climat-entree{from{opacity:0;transform:translate3d(0,-12px,0);filter:blur(5px)}to{opacity:1;transform:none;filter:none}}

/* La météo colore légèrement les héros sans changer la palette de marque. */
body.fc-climat-arrivee[data-fc-meteo="pluie"] .fc-page-heros::before,body.fc-climat-arrivee[data-fc-meteo="pluie"] .fc-heros::before{filter:saturate(.72) hue-rotate(8deg)}
body.fc-climat-arrivee[data-fc-meteo="soleil"][data-fc-cycle="jour"] .fc-page-heros::before{opacity:.68}
body.fc-climat-arrivee[data-fc-cycle="nuit"] .fc-page-heros::before{opacity:.44;filter:saturate(.8)}

@media (max-width:1180px){
  .fc-climat{right:4.3rem;top:.72rem;width:10.9rem}
  .fc-climat__verre{overflow:visible}
  .fc-climat__ligne{grid-template-columns:2rem 1fr auto;min-height:3.2rem;padding:.45rem .52rem;gap:.5rem}
  .fc-climat__astre{width:1.9rem;height:1.9rem}
  .fc-climat__ville{font-size:.55rem}.fc-climat__etat,.fc-climat__heure{display:none}.fc-climat__temperature{font-size:1.05rem}
  .fc-climat__detail{position:absolute;right:0;top:calc(100% - 1px);width:min(17rem,calc(100vw - 2rem));background:linear-gradient(145deg,oklch(.14 .012 280 / .96),oklch(.09 .008 270 / .94));border:1px solid color-mix(in oklab,var(--carrara) 10%,transparent);box-shadow:0 22px 48px oklch(.04 0 0 / .28);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}
  .fc-climat:not([data-ouvert="true"]) .fc-climat__detail{visibility:hidden;pointer-events:none}
  .fc-climat[data-ouvert="true"] .fc-climat__detail{visibility:visible;pointer-events:auto}
}
@media (max-width:760px){

  .fc-climat-ouverture{right:1.25rem;left:1.25rem;top:7.25rem;width:auto;grid-template-columns:minmax(0,1fr) auto;column-gap:.7rem}
  .fc-porte > .fc-climat-ouverture{top:5.8rem}
  .fc-porte__haut .fc-marque__nom{font-size:.64rem;letter-spacing:.08em;text-overflow:clip}
  .fc-porte__haut > .fc-label{font-size:.5rem;letter-spacing:.22em;white-space:nowrap}
  .fc-climat-ouverture__trait{margin-bottom:.5rem}
  .fc-climat-ouverture__ville{font-size:1.55rem}.fc-climat-ouverture__etat{font-size:.72rem}.fc-climat-ouverture__heure{font-size:.46rem}
  .fc-climat-ouverture__surtitle{font-size:.46rem;letter-spacing:.22em}
  .fc-climat-ouverture__mesures{grid-template-columns:repeat(3,auto)}
  .fc-climat-ouverture__mesures > span{padding:0 .42rem}.fc-climat-ouverture__mesures b{font-size:.72rem}.fc-climat-ouverture__mesures em{display:none}
  .fc-climat{right:1.15rem;top:3.72rem;width:auto;max-width:9.6rem}
  .fc-climat__verre{border-color:color-mix(in oklab,var(--carrara) 10%,transparent);background:oklch(.11 .008 275 / .54)}
  .fc-climat__ligne{grid-template-columns:1.72rem minmax(0,1fr) auto;min-height:2.85rem;padding:.38rem .48rem;gap:.42rem}
  .fc-climat__astre{width:1.68rem;height:1.68rem}.fc-climat__ville{font-size:.5rem;letter-spacing:.15em}.fc-climat__temperature{font-size:.92rem}
  .fc-climat-ciel{height:48svh;opacity:.28}.fc-climat-lumiere{height:54svh;opacity:.28}
}
@media (prefers-reduced-motion:reduce){
  .fc-climat.est-entree{animation:none}.fc-climat-ouverture{filter:none;transform:none;clip-path:none;transition:opacity .2s linear}.fc-climat-ciel{display:none}.fc-climat-lumiere{opacity:.16;filter:none}.fc-climat__verre::before,.fc-climat__rose{transform:none!important}.fc-climat__astre::before{animation:none!important}
}

/* ═══════════════════════════════════════════════════════════════════════════
   35. BOUSSOLE V27.2 — CONTENU D'ABORD, PUISSANCE SOUS CONTRÔLE
   Locomotive = architecture ; Immersive Garden = matière-signature ;
   RESN = réponse locale ; makemepulse = douceur/mobile. Aucune photographie
   ne dépend d'un shader pour exister. Cette section corrige la production.
   ═══════════════════════════════════════════════════════════════════════════ */

/* 35.1 — Fail-safe médias : visibles dès le premier frame, même sans JS. */
[data-fc-clip]{clip-path:none!important;overflow:hidden}
[data-fc-clip] img,
[data-fc-clip] video{
  opacity:1;
  transform:scale(1.025) translate3d(0,.45%,0);
  transition:transform 1.45s var(--ease-sortie),filter 1.1s var(--ease-doux),opacity .45s linear;
}
[data-fc-clip].est-vue img,
[data-fc-clip].est-vue video{transform:none}
.fc-webgl-fallback canvas{opacity:0!important}

/* La photographie est l'autorité. La lumière interactive n'est qu'une peau. */
[data-fc-media-luxe]{position:relative;overflow:hidden;isolation:isolate}
[data-fc-media-luxe] :is(img,video){
  opacity:1!important;width:100%;height:100%;object-fit:cover;
  transform:scale(1.012);filter:saturate(.91) contrast(1.025);
  transition:transform 1.35s var(--ease-camera),filter 1.15s var(--ease-doux);
}
[data-fc-media-luxe]::after{
  content:"";position:absolute;inset:0;z-index:2;pointer-events:none;opacity:0;
  background:
    radial-gradient(52% 48% at var(--fc-react-px,72%) var(--fc-react-py,28%),color-mix(in oklab,var(--or-clair) 12%,transparent),transparent 72%),
    linear-gradient(118deg,transparent 18%,color-mix(in oklab,var(--glycine) 5%,transparent) 56%,transparent 82%);
  mix-blend-mode:screen;transition:opacity .85s var(--ease-doux);
}
@media (hover:hover) and (pointer:fine){
  [data-fc-media-luxe]:hover :is(img,video){transform:scale(1.035);filter:saturate(.98) contrast(1.035)}
  [data-fc-media-luxe]:hover::after{opacity:.8}
}

/* 35.2 — Direction : portrait prioritaire, jamais un rectangle vide. */
body[data-fc-page="direction"] [data-fc-giulia-portrait]{
  min-height:min(72svh,760px);background:linear-gradient(145deg,var(--surface-2),var(--nuit));
  box-shadow:0 30px 90px oklch(.025 0 0 / .34);border:1px solid color-mix(in oklab,var(--carrara) 8%,transparent);
}
body[data-fc-page="direction"] [data-fc-giulia-portrait] picture,
body[data-fc-page="direction"] [data-fc-giulia-portrait] img{display:block;width:100%;height:100%}
body[data-fc-page="direction"] [data-fc-giulia-portrait] img{object-fit:cover;object-position:50% 38%;opacity:1!important}
body[data-fc-page="direction"] .fc-page-heros{padding-top:clamp(7.2rem,10vw,10rem)}
body[data-fc-page="direction"] .fc-page-heros__titre{font-size:clamp(4.7rem,8.9vw,9.8rem);line-height:.82}
body[data-fc-page="direction"] [data-fc-giulia-credentials]{border-top:1px solid var(--filet-nuit)}

/* 35.3 — Accueil : galerie de projets éditoriale, pas trois panneaux identiques. */
body[data-fc-page="accueil"] .fc-piste__rail{align-items:flex-start;gap:clamp(1.1rem,2.6vw,2.8rem)}
body[data-fc-page="accueil"] .fc-piste__item{flex-basis:clamp(300px,31vw,470px)}
body[data-fc-page="accueil"] .fc-piste__item:nth-child(2){margin-top:clamp(2.8rem,7vw,7rem)}
body[data-fc-page="accueil"] .fc-piste__item:nth-child(3){margin-top:clamp(.8rem,2.4vw,2.3rem)}
body[data-fc-page="accueil"] .fc-carte{background:transparent}
body[data-fc-page="accueil"] .fc-carte__media{aspect-ratio:4/5;border:1px solid color-mix(in oklab,var(--carrara) 7%,transparent);background:var(--nuit)}
body[data-fc-page="accueil"] .fc-carte__media :is(picture,img){display:block;width:100%;height:100%}
body[data-fc-page="accueil"] .fc-carte__corps{padding-top:1.25rem;border-top:0}
body[data-fc-page="accueil"] .fc-carte__titre{font-size:clamp(2rem,3.1vw,3.4rem);line-height:.98}
body[data-fc-page="accueil"] .fc-carte:hover .fc-carte__titre{transform:translateX(.35rem)}

/* 35.4 — Méthode / charte : séquences monumentales plutôt que liste générique. */
body[data-fc-page="methode"] .fc-deflist,
body[data-fc-page="charte"] .fc-deflist{counter-reset:fc-boussole;border-top:1px solid var(--filet)}
body[data-fc-page="methode"] .fc-defrow,
body[data-fc-page="charte"] .fc-defrow{
  counter-increment:fc-boussole;position:relative;grid-template-columns:minmax(4rem,.8fr) minmax(12rem,3.15fr) minmax(0,6fr);
  gap:clamp(1rem,2.8vw,3.5rem);min-height:clamp(10rem,18vw,17rem);align-items:center;padding-block:clamp(2rem,4vw,4.5rem);
}
body[data-fc-page="methode"] .fc-defrow::before,
body[data-fc-page="charte"] .fc-defrow::before{
  content:counter(fc-boussole,decimal-leading-zero);font-family:var(--f-display);font-size:clamp(2.5rem,5vw,5.8rem);line-height:1;color:var(--ornement);opacity:.62;
}
body[data-fc-page="methode"] .fc-defrow dt,
body[data-fc-page="charte"] .fc-defrow dt{font-size:clamp(2rem,4.1vw,4.9rem);line-height:.96;letter-spacing:var(--ls-titre)}
body[data-fc-page="methode"] .fc-defrow dd,
body[data-fc-page="charte"] .fc-defrow dd{max-width:48rem;font-size:clamp(1.02rem,1.35vw,1.2rem);line-height:1.75}

/* 35.5 — Archives : vraie chambre d'images, proportions conservées et variées. */
body[data-fc-page="archives"] .gallery{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:clamp(1.2rem,2.4vw,2.6rem);align-items:start}
body[data-fc-page="archives"] .gallery > figure{grid-column:span 4;margin:0}
body[data-fc-page="archives"] .gallery > figure:nth-child(6n+1),
body[data-fc-page="archives"] .gallery > figure:nth-child(6n+5){grid-column:span 5}
body[data-fc-page="archives"] .gallery > figure:nth-child(6n+2),
body[data-fc-page="archives"] .gallery > figure:nth-child(6n+6){grid-column:span 3}
body[data-fc-page="archives"] .gallery > figure:nth-child(6n+3),
body[data-fc-page="archives"] .gallery > figure:nth-child(6n+4){grid-column:span 4}
body[data-fc-page="archives"] .archfig{overflow:hidden;background:var(--surface-2)}
body[data-fc-page="archives"] .archfig img{width:100%;height:auto;display:block}
body[data-fc-page="archives"] figcaption{padding-top:.75rem;border-top:1px solid var(--filet-nuit);font-family:var(--f-lecture);font-size:.92rem;line-height:1.45;color:var(--texte-doux)}
body[data-fc-page="archives"] .archstatus{display:block;margin-top:.45rem;font-family:var(--f-ui);font-size:.58rem;letter-spacing:.18em;text-transform:uppercase;color:var(--ornement)}

/* 35.6 — Atlas : la carte est une pièce de cabinet, pas un SVG nu. */
body[data-fc-page="atlas"] .fc-scene-plan,
body[data-fc-page="atlas"] .atlante-frame{
  position:relative;border:1px solid color-mix(in oklab,var(--carrara) 10%,transparent);
  background:radial-gradient(80% 75% at 50% 45%,color-mix(in oklab,var(--glycine) 7%,transparent),transparent 72%),var(--nuit);
  box-shadow:0 34px 110px oklch(.02 0 0 / .38),inset 0 0 0 1px oklch(.95 .02 90 / .018);
}
body[data-fc-page="atlas"] .fc-scene-plan::before,
body[data-fc-page="atlas"] .atlante-frame::before{content:"";position:absolute;inset:1rem;pointer-events:none;border:1px solid color-mix(in oklab,var(--or-clair) 8%,transparent);z-index:2}

/* 35.7 — Terrain : journal éditorial, chaque entrée a sa cadence. */
body[data-fc-page="terrain"] .fc-registre__entree{grid-template-columns:minmax(4.5rem,.9fr) minmax(0,8fr);padding-block:clamp(2.4rem,5vw,5rem);gap:clamp(1.5rem,4vw,4rem)}
body[data-fc-page="terrain"] .fc-registre__num{font-family:var(--f-display);font-size:clamp(2.8rem,5vw,5.5rem);line-height:.9;color:var(--ornement);opacity:.74}
body[data-fc-page="terrain"] .fc-registre__tete :is(h2,h3){font-size:clamp(2.1rem,4vw,4.6rem);line-height:.98}

/* 35.8 — Pages de lecture : luxe calme, aucune agitation superflue. */
body[data-fc-page="lecture"] .fc-page-heros{min-height:clamp(42svh,50vh,58svh)}
body[data-fc-page="lecture"] .fc-section.fc-jour > .fc-shell{max-width:78rem}
body[data-fc-page="lecture"] .fc-defrow{grid-template-columns:minmax(10rem,2.6fr) minmax(0,7.4fr);padding-block:clamp(1.6rem,2.8vw,2.8rem)}
body[data-fc-page="lecture"] [data-fc-reactif]{translate:none!important}

/* La météo reste un instrument secondaire : elle ne mord jamais sur le texte du héros. */
body:not([data-fc-page="accueil"]) .fc-climat-ouverture{top:calc(var(--entete-h,5rem) + 2.8rem);right:clamp(1.25rem,4vw,4.5rem);width:min(25rem,38vw);opacity:0} body:not([data-fc-page="accueil"]) .fc-climat-ouverture.est-presente{opacity:.82}
@media (min-width:1181px){body:not([data-fc-page="accueil"]) .fc-climat{top:calc(var(--entete-h,5rem) + .55rem);width:13.2rem}}

@media (max-width:900px){
  body[data-fc-page="methode"] .fc-defrow,
  body[data-fc-page="charte"] .fc-defrow{grid-template-columns:3.2rem minmax(0,1fr);min-height:0;gap:.7rem 1.2rem}
  body[data-fc-page="methode"] .fc-defrow::before,
  body[data-fc-page="charte"] .fc-defrow::before{grid-row:1 / span 2;font-size:2.6rem}
  body[data-fc-page="methode"] .fc-defrow :is(dt,dd),
  body[data-fc-page="charte"] .fc-defrow :is(dt,dd){grid-column:2}
  body[data-fc-page="archives"] .gallery > figure,
  body[data-fc-page="archives"] .gallery > figure:nth-child(n){grid-column:span 6}
}
@media (max-width:760px){
  body[data-fc-page="accueil"] .fc-piste__item:nth-child(n){margin-top:0;flex-basis:min(82vw,360px)}
  body[data-fc-page="direction"] [data-fc-giulia-portrait]{min-height:0;aspect-ratio:4/5}
  body[data-fc-page="direction"] .fc-page-heros{padding-top:6.4rem}
  body[data-fc-page="direction"] .fc-page-heros__titre{font-size:clamp(3.8rem,18vw,6rem)}
  body[data-fc-page="archives"] .gallery{grid-template-columns:1fr;gap:2.4rem}
  body[data-fc-page="archives"] .gallery > figure,
  body[data-fc-page="archives"] .gallery > figure:nth-child(n){grid-column:1}
  body[data-fc-page="terrain"] .fc-registre__entree{grid-template-columns:1fr;gap:.8rem}
  body[data-fc-page="lecture"] .fc-defrow{grid-template-columns:1fr;gap:.7rem}
}
@media (prefers-reduced-motion:reduce){
  [data-fc-media-luxe] :is(img,video),[data-fc-media-luxe]::after{transition:none!important;transform:none!important}
}

/* 35.9 — Ajustements issus du contrôle visuel réel. */
body[data-fc-page="methode"] .fc-defrow{
  grid-template-columns:minmax(13rem,4.2fr) minmax(0,6.8fr);counter-increment:none;
}
body[data-fc-page="methode"] .fc-defrow::before{content:none!important}
body[data-fc-page="methode"] .fc-defrow dt{font-size:clamp(2.4rem,4.8vw,5.7rem)}
body[data-fc-page="atlas"] .fc-figure:has(> svg){
  position:relative;padding:clamp(1rem,2vw,1.8rem);border:1px solid color-mix(in oklab,var(--carrara) 10%,transparent);
  background:radial-gradient(80% 75% at 50% 45%,color-mix(in oklab,var(--glycine) 7%,transparent),transparent 72%),var(--nuit);
  box-shadow:0 34px 110px oklch(.02 0 0 / .38),inset 0 0 0 1px oklch(.95 .02 90 / .018);
}
body[data-fc-page="atlas"] .fc-figure:has(> svg)::before{content:"";position:absolute;inset:.8rem;pointer-events:none;border:1px solid color-mix(in oklab,var(--or-clair) 7%,transparent);z-index:2}
body[data-fc-page="atlas"] .fc-figure > svg{position:relative;z-index:1;width:100%;height:auto;display:block}
@media (max-width:900px){
  body[data-fc-page="methode"] .fc-defrow{grid-template-columns:1fr;gap:.8rem;min-height:0}
  body[data-fc-page="methode"] .fc-defrow :is(dt,dd){grid-column:1}
}

/* 35.10 — Conciergerie : aucun lanceur tiers visible avant handoff volontaire. */
body:not(.fc-team-chat-active) iframe[src*="tawk.to"],
body:not(.fc-team-chat-active) iframe[src*="tawk.link"],
body:not(.fc-team-chat-active) iframe[title*="Tawk" i],
body:not(.fc-team-chat-active) iframe[title*="chat widget" i],
body:not(.fc-team-chat-active) [id^="tawk_"],
body:not(.fc-team-chat-active) [id*="tawkchat" i],
body:not(.fc-team-chat-active) [class*="tawk-min-container" i]{
  display:none!important;visibility:hidden!important;opacity:0!important;pointer-events:none!important;
}

/* ═══════════════════════════════════════════════════════════════════════════
   35.11 — Code de la dignité : état actif minéral, jamais panneau gris.
   Le rail reste perceptible par lumière + filet, sans inverser brutalement
   le registre de lecture ivoire/Carrara.
   ═══════════════════════════════════════════════════════════════════════════ */
body[data-fc-page="charte"] .fc-code-liste .fc-defrow::before{
  inset:0;
  background:
    linear-gradient(90deg,
      color-mix(in oklab,var(--ornement) 7%,transparent) 0%,
      color-mix(in oklab,var(--glycine) 3%,transparent) 38%,
      transparent 76%);
  transform:scaleX(0);
  transform-origin:left center;
  transition:transform .9s var(--ease-sortie),opacity .55s var(--ease-doux);
  opacity:.9;
}
body[data-fc-page="charte"] .fc-code-liste .fc-defrow:is(:hover,.est-active)::before{transform:scaleX(1)}
body[data-fc-page="charte"] .fc-code-liste .fc-defrow:is(:hover,.est-active){
  box-shadow:inset 2px 0 0 color-mix(in oklab,var(--ornement) 72%,transparent);
}
body[data-fc-page="charte"] .fc-code-liste .fc-defrow:is(:hover,.est-active) dd{color:var(--texte)}
body[data-fc-page="charte"] .fc-code-liste .fc-defrow:is(:hover,.est-active) dt{color:var(--ornement)}
@media (max-width:760px){
  body[data-fc-page="charte"] .fc-code-liste .fc-defrow:is(:hover,.est-active){box-shadow:inset 1px 0 0 color-mix(in oklab,var(--ornement) 62%,transparent)}
}
body[data-fc-page="charte"] .fc-code-liste .fc-defrow::before{content:""!important}

/* ═══════════════════════════════════════════════════════════════════════════
   V27.3 — BENCHMARK 2026
   Technologie maximale, retrait luxe maximal. Une seule feuille, un seul
   vocabulaire : Obsidienne · Carrara · Platinum · lumière minérale.
   ═══════════════════════════════════════════════════════════════════════════ */

/* L'accueil commence comme un film : la navigation existe dans le DOM et
   reste accessible au clavier, mais ne concurrence pas le premier plan. */
body[data-fc-page="accueil"] .fc-entete{
  opacity:0;transform:translate3d(0,-1.15rem,0);pointer-events:none;
  transition:opacity .7s var(--ease-doux),transform .9s var(--ease-camera),background .6s var(--ease-doux);
}
body[data-fc-page="accueil"].fc-a-defile .fc-entete,
body[data-fc-page="accueil"] .fc-entete:focus-within{
  opacity:1;transform:none;pointer-events:auto;
}

/* Circadien : seulement de la lumière physique, jamais une nouvelle couleur UI. */
body[data-fc-circadian="dawn"]{--fc-circadian-light:color-mix(in oklab,var(--or-clair) 16%,transparent)}
body[data-fc-circadian="morning"]{--fc-circadian-light:color-mix(in oklab,var(--carrara) 18%,var(--or-clair) 4%)}
body[data-fc-circadian="day"]{--fc-circadian-light:color-mix(in oklab,var(--carrara) 17%,transparent)}
body[data-fc-circadian="golden"]{--fc-circadian-light:color-mix(in oklab,var(--or-clair) 18%,transparent)}
body[data-fc-circadian="sunset"]{--fc-circadian-light:color-mix(in oklab,var(--or) 12%,var(--carrara) 3%)}
body[data-fc-circadian="blue"]{--fc-circadian-light:color-mix(in oklab,var(--glycine) 8%,var(--carrara) 4%)}
body[data-fc-circadian="night"],body[data-fc-circadian="deep"]{--fc-circadian-light:color-mix(in oklab,var(--carrara) 5%,transparent)}
body.fc-climat-arrivee .fc-climat-lumiere::after{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(118deg,transparent 14%,var(--fc-circadian-light,transparent) 48%,transparent 78%);
  opacity:.75;mix-blend-mode:screen;
}

/* Les pages de lecture ne doivent jamais subir le climat comme un panneau. */
body[data-fc-page="lecture"] .fc-climat-ouverture,
body[data-fc-page="institution"] .fc-climat-ouverture{max-width:min(22rem,34vw);opacity:.82}
body[data-fc-page="lecture"] .fc-climat{transform:scale(.9);transform-origin:100% 0}

/* Langage commun aux familles : lumière locale et médias physiques. */
.fc-page-heros[data-fc-hero-reactif]{
  --fc-hero-px:50%;--fc-hero-py:50%;--fc-hero-intensite:.48;
  isolation:isolate;overflow:hidden;
}
.fc-page-heros[data-fc-hero-reactif]::after{
  content:"";position:absolute;inset:-12%;z-index:0;pointer-events:none;
  background:radial-gradient(48rem circle at var(--fc-hero-px) var(--fc-hero-py),color-mix(in oklab,var(--carrara) calc(var(--fc-hero-intensite) * 5%),transparent),transparent 70%);
  opacity:.9;
}
.fc-page-heros[data-fc-hero-reactif] > :not(.fc-page-heros__fond){position:relative;z-index:1}
[data-fc-media-luxe]{position:relative;isolation:isolate;overflow:hidden}
[data-fc-media-luxe]::after{
  content:"";position:absolute;inset:-28% -45%;z-index:4;pointer-events:none;
  background:linear-gradient(112deg,transparent 37%,color-mix(in oklab,var(--carrara) 7%,transparent) 49%,transparent 61%);
  transform:translate3d(-25%,0,0);opacity:0;transition:opacity .8s var(--ease-doux),transform 1.5s var(--ease-camera);
}
@media (hover:hover) and (pointer:fine){
  [data-fc-media-luxe]:hover::after{opacity:.6;transform:translate3d(24%,0,0)}
}
[data-fc-survol] > canvas{z-index:3!important;pointer-events:none!important}

/* Familles : plus de présence sur les pages d'expérience, silence sur le texte. */
body[data-fc-page="projet"] .fc-page-heros{min-height:min(92svh,64rem)}
body[data-fc-page="projet"] .fc-page-heros__titre,
body[data-fc-page="domaines"] .fc-page-heros__titre,
body[data-fc-page="atlas"] .fc-page-heros__titre{letter-spacing:-.045em}
body[data-fc-page="institution"] .fc-lecture,
body[data-fc-page="lecture"] .fc-lecture{max-width:52rem}
body[data-fc-page="institution"] .fc-page-heros,
body[data-fc-page="lecture"] .fc-page-heros{min-height:46svh}
body[data-fc-page="soutien"] .fc-bouton{min-height:3.25rem}
body[data-fc-page="archives"] .fc-galerie figure,
body[data-fc-page="projet"] .fc-galerie figure{background:var(--obsidienne)}

/* ── DIRECTION / GIULIA — page manifeste ─────────────────────────────── */
body[data-fc-page="direction"]{--accent:var(--or-clair)}
.fc-direction-couture{
  min-height:100svh;padding:clamp(7.5rem,10vw,10.8rem) 0 clamp(2.4rem,5vw,5rem);
  background:
    radial-gradient(ellipse at 72% 28%,color-mix(in oklab,var(--carrara) 5%,transparent),transparent 35%),
    linear-gradient(112deg,var(--obsidienne) 0 38%,color-mix(in oklab,var(--nuit) 94%,var(--carrara) 6%) 70%,var(--obsidienne));
}
.fc-direction-couture::before{
  content:"";position:absolute;inset:0;pointer-events:none;z-index:0;
  background:
    linear-gradient(90deg,transparent 0 49.9%,color-mix(in oklab,var(--carrara) 9%,transparent) 50%,transparent 50.1%),
    linear-gradient(118deg,transparent 18%,color-mix(in oklab,var(--or-clair) 5%,transparent) 45%,transparent 67%);
  opacity:.75;
}
.fc-direction-couture__grid{
  display:grid;grid-template-columns:repeat(12,minmax(0,1fr));
  grid-template-rows:auto auto;gap:clamp(1.5rem,3vw,3.5rem);align-items:center;
}
.fc-direction-couture__copy{grid-column:1 / 7;grid-row:1;z-index:5;padding-right:clamp(0rem,3vw,3rem)}
.fc-direction-couture__copy .fc-label{display:block;margin-bottom:clamp(1.2rem,2vw,2rem)}
.fc-direction-couture__copy h1{
  margin:0;font-family:var(--f-display);font-weight:400;font-size:clamp(5.2rem,9.6vw,10.8rem);
  line-height:.77;letter-spacing:-.062em;color:var(--ivoire);text-wrap:balance;
}
.fc-direction-couture__copy h1 > span,.fc-direction-couture__copy h1 > em{display:block}
.fc-direction-couture__copy h1 em{font-style:italic;font-weight:400;color:var(--carrara)}
.fc-direction-couture__role{
  margin:clamp(1.35rem,2.3vw,2.2rem) 0 .55rem;font-family:var(--f-ui);font-size:.72rem;
  letter-spacing:.28em;text-transform:uppercase;color:var(--or-clair)
}
.fc-direction-couture__degree{margin:0;color:var(--texte-doux);font-family:var(--f-lecture);font-size:clamp(.95rem,1.2vw,1.15rem);line-height:1.55}
.fc-direction-couture__copy blockquote{
  max-width:39rem;margin:clamp(1.8rem,3vw,3rem) 0 1rem;padding-left:clamp(1rem,2vw,1.6rem);
  border-left:1px solid color-mix(in oklab,var(--or-clair) 60%,transparent);
  font-family:var(--f-lecture);font-style:italic;font-size:clamp(1.55rem,2.4vw,2.75rem);line-height:1.14;color:var(--ivoire)
}
.fc-direction-couture__body{max-width:36rem;color:var(--texte-doux);line-height:1.7}
.fc-direction-couture__portrait{
  grid-column:6 / 13;grid-row:1;align-self:stretch;min-height:min(76svh,54rem);margin:0;
  transform:translate3d(var(--fc-giulia-x,0),var(--fc-giulia-y,0),0) rotateX(var(--fc-giulia-rx,0deg)) rotateY(var(--fc-giulia-ry,0deg));
  transform-style:preserve-3d;perspective:1100px;border-left:1px solid color-mix(in oklab,var(--carrara) 8%,transparent);
}
.fc-direction-couture__portrait picture,.fc-direction-couture__portrait img{display:block;width:100%;height:100%}
.fc-direction-couture__portrait img{object-fit:cover;object-position:50% 32%;opacity:1!important;filter:saturate(.82) contrast(1.04)}
.fc-direction-couture__portrait::before{
  content:"";position:absolute;inset:0;z-index:2;pointer-events:none;
  background:linear-gradient(90deg,var(--obsidienne),transparent 24% 72%,color-mix(in oklab,var(--obsidienne) 52%,transparent)),linear-gradient(0deg,var(--obsidienne),transparent 22% 76%,color-mix(in oklab,var(--obsidienne) 30%,transparent));
}
.fc-direction-couture__halo{
  position:absolute;z-index:4;inset:8% 3% 10% 18%;pointer-events:none;
  border-top:1px solid color-mix(in oklab,var(--or-clair) 30%,transparent);
  border-right:1px solid color-mix(in oklab,var(--carrara) 10%,transparent);
  transform:skewY(-7deg);opacity:.72;
}
.fc-direction-credentials{
  grid-column:1 / 13;grid-row:2;display:grid;grid-template-columns:repeat(3,1fr);
  border-top:1px solid var(--filet-nuit);border-bottom:1px solid var(--filet-nuit);z-index:6
}
.fc-direction-cred{display:grid;grid-template-columns:auto 1fr;gap:1rem;padding:clamp(1.25rem,2vw,2rem);border-right:1px solid var(--filet-nuit);align-items:start}
.fc-direction-cred:last-child{border-right:0}
.fc-direction-cred__icon{width:2.6rem;color:var(--or-clair)}
.fc-direction-cred__icon svg{display:block;width:100%;height:auto;fill:none;stroke:currentColor;stroke-width:1.15}
.fc-direction-cred h3{margin:0 0 .35rem;font-family:var(--f-display);font-weight:400;font-size:clamp(1.35rem,2vw,2rem);color:var(--ivoire)}
.fc-direction-cred p{margin:0;color:var(--texte-doux);font-size:.9rem;line-height:1.55}

.fc-direction-doctrine{padding:clamp(6rem,10vw,11rem) 0;background:var(--obsidienne)}
.fc-direction-doctrine__head{display:grid;grid-template-columns:3fr 6fr 3fr;gap:var(--e-4);align-items:end;margin-bottom:clamp(4rem,7vw,7rem)}
.fc-direction-doctrine__head .fc-label{align-self:start}
.fc-direction-doctrine__head h2{margin:0;font-family:var(--f-display);font-size:clamp(3.7rem,7vw,8rem);line-height:.88;font-weight:400;letter-spacing:-.045em;color:var(--ivoire)}
.fc-direction-doctrine__head h2 em{font-style:italic;color:var(--carrara)}
.fc-direction-doctrine__head > p{margin:0;color:var(--texte-doux);line-height:1.75}
.fc-direction-principles{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--filet-nuit);border-bottom:1px solid var(--filet-nuit)}
.fc-direction-principle{position:relative;padding:clamp(2rem,3.5vw,4rem) clamp(1.3rem,2.8vw,3rem);min-height:23rem;border-right:1px solid var(--filet-nuit)}
.fc-direction-principle:last-child{border-right:0}
.fc-direction-principle::before{content:attr(data-num);position:absolute;right:1.2rem;top:1rem;font-family:var(--f-display);font-size:clamp(3rem,6vw,6.5rem);color:color-mix(in oklab,var(--carrara) 7%,transparent);line-height:1}
.fc-direction-principle h3{margin:clamp(5rem,8vw,8rem) 0 1rem;font-family:var(--f-display);font-size:clamp(2rem,3vw,3.4rem);font-weight:400;line-height:.98;color:var(--ivoire)}
.fc-direction-principle p{max-width:27rem;color:var(--texte-doux);line-height:1.7}

.fc-direction-ledger{padding:clamp(6rem,10vw,11rem) 0;background:linear-gradient(180deg,var(--obsidienne),var(--nuit),var(--obsidienne))}
.fc-direction-ledger__grid{display:grid;grid-template-columns:minmax(24rem,5fr) minmax(0,6fr);gap:clamp(3rem,5vw,6rem);align-items:start}
.fc-direction-ledger__intro{position:sticky;top:clamp(7rem,12vh,10rem)}
.fc-direction-ledger__intro h2{margin:1rem 0 2rem;font-family:var(--f-display);font-weight:400;font-size:clamp(3.65rem,5.05vw,5.45rem);line-height:.86;letter-spacing:-.052em;color:var(--ivoire);max-width:7.35ch;text-wrap:balance}
.fc-direction-ledger__intro h2 em{font-style:italic;color:var(--carrara)}
.fc-direction-ledger__intro p{max-width:30rem;color:var(--texte-doux);line-height:1.75}
.fc-direction-ledger__list{border-top:1px solid var(--filet-nuit)}
.fc-direction-ledger__item{display:grid;grid-template-columns:4.5rem 1fr;gap:clamp(1.2rem,3vw,3rem);padding:clamp(2.2rem,4vw,4.2rem) 0;border-bottom:1px solid var(--filet-nuit);min-height:15rem;align-items:start}
.fc-direction-ledger__index{font-family:var(--f-display);font-size:2.1rem;color:var(--or-clair);opacity:.75}
.fc-direction-ledger__item h3{margin:.7rem 0 1rem;font-family:var(--f-display);font-size:clamp(2.1rem,3.5vw,4rem);font-weight:400;line-height:.95;color:var(--ivoire)}
.fc-direction-ledger__item p{margin:0;max-width:38rem;color:var(--texte-doux);line-height:1.7}

.fc-direction-gesture{padding:0;background:var(--obsidienne)}
.fc-direction-gesture__grid{display:grid;grid-template-columns:7fr 5fr;align-items:stretch;min-height:72svh;padding:0}
.fc-direction-gesture__media{margin:0;min-height:72svh}
.fc-direction-gesture__media img{display:block;width:100%;height:100%;object-fit:cover;filter:saturate(.48) contrast(1.08)}
.fc-direction-gesture__copy{display:flex;flex-direction:column;justify-content:center;padding:clamp(3rem,7vw,8rem);border-left:1px solid var(--filet-nuit)}
.fc-direction-gesture__copy h2{margin:1rem 0 2rem;font-family:var(--f-display);font-size:clamp(4rem,7vw,8rem);font-weight:400;line-height:.86;color:var(--ivoire)}
.fc-direction-gesture__copy p{max-width:31rem;color:var(--texte-doux);line-height:1.75}

.fc-direction-signature{text-align:center;padding:clamp(7rem,12vw,13rem) 0;background:radial-gradient(ellipse at 50% 38%,color-mix(in oklab,var(--carrara) 4%,transparent),transparent 48%),var(--obsidienne)}
.fc-direction-signature blockquote{max-width:62rem;margin:0 auto;font-family:var(--f-display);font-size:clamp(3rem,6vw,7rem);font-style:italic;font-weight:400;line-height:.93;color:var(--ivoire)}
.fc-direction-signature__seal{display:block;width:min(18rem,48vw);margin:clamp(2.5rem,5vw,5rem) auto 1rem;padding:0;border:0;background:transparent;color:inherit;cursor:pointer}
.fc-direction-signature__seal img{display:block;width:100%;height:auto;opacity:.72}
.fc-direction-signature > .fc-shell > p{color:var(--texte-doux);font-size:.8rem;letter-spacing:.14em;text-transform:uppercase}
.fc-direction-next{display:grid;grid-template-columns:repeat(3,1fr);margin-top:clamp(4rem,7vw,7rem);border-top:1px solid var(--filet-nuit);border-bottom:1px solid var(--filet-nuit)}
.fc-direction-next .fc-lien{justify-content:space-between;padding:1.5rem;border-right:1px solid var(--filet-nuit)}
.fc-direction-next .fc-lien:last-child{border-right:0}

/* RESN traduit en luxe : la lueur suit le geste, sans wobble/cartoon. */
.fc-giulia-feedback{position:relative;overflow:hidden}
.fc-giulia-feedback::after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(28rem circle at var(--fc-giulia-px,50%) var(--fc-giulia-py,50%),color-mix(in oklab,var(--carrara) 5%,transparent),transparent 68%);opacity:0;transition:opacity .6s var(--ease-doux)}
@media (hover:hover) and (pointer:fine){.fc-giulia-feedback:hover::after{opacity:1}}

@media (max-width:900px){
  body[data-fc-page="accueil"] .fc-entete{opacity:1;transform:none;pointer-events:auto}
  .fc-direction-couture{padding-top:6.3rem}
  .fc-direction-couture__grid{grid-template-columns:1fr;grid-template-rows:auto;gap:1.8rem}
  .fc-direction-couture__copy,.fc-direction-couture__portrait,.fc-direction-credentials{grid-column:1;grid-row:auto}
  .fc-direction-couture__copy{padding-right:0;order:1}
  .fc-direction-couture__copy h1{font-size:clamp(4.2rem,19vw,7.4rem);line-height:.79}
  .fc-direction-couture__portrait{order:2;min-height:0;aspect-ratio:4/5;border-left:0;border-top:1px solid var(--filet-nuit)}
  .fc-direction-couture__portrait img{object-position:50% 30%}
  .fc-direction-credentials{order:3;grid-template-columns:1fr}
  .fc-direction-cred{border-right:0;border-bottom:1px solid var(--filet-nuit)}
  .fc-direction-cred:last-child{border-bottom:0}
  .fc-direction-doctrine__head{grid-template-columns:1fr;gap:1.4rem}
  .fc-direction-principles{grid-template-columns:1fr}
  .fc-direction-principle{min-height:0;border-right:0;border-bottom:1px solid var(--filet-nuit)}
  .fc-direction-principle:last-child{border-bottom:0}
  .fc-direction-principle h3{margin-top:4.5rem}
  .fc-direction-ledger__grid{grid-template-columns:1fr;gap:3rem}
  .fc-direction-ledger__intro{position:static}
  .fc-direction-ledger__item{grid-template-columns:3.2rem 1fr;min-height:0}
  .fc-direction-gesture__grid{grid-template-columns:1fr;min-height:0}
  .fc-direction-gesture__media{min-height:0;aspect-ratio:4/5}
  .fc-direction-gesture__copy{border-left:0;border-top:1px solid var(--filet-nuit)}
  .fc-direction-next{grid-template-columns:1fr}
  .fc-direction-next .fc-lien{border-right:0;border-bottom:1px solid var(--filet-nuit)}
  .fc-direction-next .fc-lien:last-child{border-bottom:0}
  body[data-fc-page="lecture"] .fc-climat-ouverture,body[data-fc-page="institution"] .fc-climat-ouverture{max-width:min(90vw,20rem)}
}

@media (prefers-reduced-motion:reduce){
  [data-fc-media-luxe]::after{display:none}
  .fc-direction-couture__portrait{transform:none!important}
}

/* V27.3 — Fallback média souverain.
   Un héros documentaire doit rester photographique sans WebGL. Le canvas est une
   surimpression matérielle, jamais le propriétaire de l'image. */
.fc-page-heros > .fc-page-heros__fond{position:absolute!important;inset:0!important;z-index:0;height:auto!important}
.fc-page-heros > .fc-shell{position:relative;z-index:3}
.fc-page-heros > .fc-page-heros__fond > .fc-page-heros__fond{z-index:0}
.fc-page-heros > .fc-page-heros__fond > .fc-page-heros__ombre{z-index:1}
.fc-page-heros__fond picture,.fc-page-heros__fond img{position:relative;z-index:0}
.fc-page-heros__fond[data-fc-scene] > canvas{position:absolute!important;inset:0;z-index:2!important;pointer-events:none!important}


/* 36 — BENCHMARK 50 — orchestration transversale V27.3
   Active Theory × Immersive Garden × Locomotive × RESN × Hello Monday ×
   AQuest × makemepulse × Merci Michel × Dogstudio, retraduits CARAVELLI.
   Un effet = une fonction ; aucun nouveau canvas propriétaire. */
:root{
  --fc-bx:72%;--fc-by:28%;--fc-bvx:0;--fc-bvy:0;
  --fc-depth-shadow:0 42px 120px oklch(.018 0 0 / .34),0 8px 30px oklch(.02 0 0 / .18);
}
body[data-fc-benchmark="50"] .fc-page-heros{
  isolation:isolate;overflow:hidden;
  background:
    radial-gradient(54rem 38rem at var(--fc-bx) var(--fc-by),color-mix(in oklab,var(--glycine) 6%,transparent),transparent 70%),
    radial-gradient(42rem 26rem at calc(var(--fc-bx) - 18%) calc(var(--fc-by) + 12%),color-mix(in oklab,var(--or-clair) 3.5%,transparent),transparent 74%),
    var(--obsidienne);
}
body[data-fc-benchmark="50"] .fc-page-heros::before{
  content:"";position:absolute;inset:-16%;z-index:1;pointer-events:none;opacity:.58;
  background:
    linear-gradient(108deg,transparent 18%,color-mix(in oklab,var(--carrara) 3%,transparent) 49%,transparent 70%),
    repeating-linear-gradient(90deg,transparent 0 13.5%,color-mix(in oklab,var(--carrara) 2.8%,transparent) 13.55% 13.62%,transparent 13.7% 27%);
  transform:translate3d(calc((var(--fc-bx) - 50%) * .018),calc((var(--fc-by) - 50%) * .012),0) rotate(-2deg);
  transition:opacity .8s var(--ease-doux);
}
body[data-fc-benchmark="50"] .fc-page-heros::after{
  content:"";position:absolute;inset:0;z-index:2;pointer-events:none;
  background:linear-gradient(180deg,transparent 48%,color-mix(in oklab,var(--obsidienne) 38%,transparent) 78%,var(--obsidienne) 108%);
}
body[data-fc-benchmark="50"] .fc-page-heros > .fc-shell{z-index:4}

/* Instrument éditorial construit à partir des vrais intitulés de la page. */
.fc-benchmark-ledger{
  position:absolute;right:clamp(2.5rem,7vw,8rem);bottom:clamp(2.2rem,5vw,5.5rem);z-index:5;
  width:min(24rem,31vw);padding:1rem 0 0;border-top:1px solid color-mix(in oklab,var(--carrara) 13%,transparent);
  backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
}
.fc-benchmark-ledger__row{
  display:grid;grid-template-columns:2.2rem 1fr auto;align-items:center;gap:.8rem;
  min-height:2.85rem;border-bottom:1px solid color-mix(in oklab,var(--carrara) 6%,transparent);
  font-family:var(--f-ui);font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;color:var(--texte-doux)
}
.fc-benchmark-ledger__row i{font-family:var(--f-display);font-style:normal;font-size:1rem;color:var(--ornement);letter-spacing:0}
.fc-benchmark-ledger__row b{font-weight:500;color:var(--ivoire);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fc-benchmark-ledger__row span{width:2.5rem;height:1px;background:linear-gradient(90deg,var(--or-clair),transparent);opacity:.58}

/* Ticker éditorial lent : rythme / continuité, jamais un bandeau publicitaire. */
.fc-benchmark-ticker{overflow:hidden;border-top:1px solid var(--filet-nuit);border-bottom:1px solid var(--filet-nuit);background:color-mix(in oklab,var(--obsidienne) 88%,transparent)}
.fc-benchmark-ticker__rail{display:flex;width:max-content;gap:clamp(3rem,7vw,8rem);padding:.78rem 0;animation:fc-benchmark-ticker 32s linear infinite;will-change:transform}
.fc-benchmark-ticker__rail span{font-family:var(--f-ui);font-size:.6rem;letter-spacing:.24em;text-transform:uppercase;color:color-mix(in oklab,var(--carrara) 62%,transparent);white-space:nowrap}
.fc-benchmark-ticker__rail span::after{content:"◆";padding-left:clamp(3rem,7vw,8rem);font-size:.42rem;color:var(--ornement)}
@keyframes fc-benchmark-ticker{to{transform:translate3d(-25%,0,0)}}

/* RESN/AQuest : masse, profondeur et réponse. Pas de wobble cartoon. */
[data-fc-depth-card]{
  --fc-depth-rx:0deg;--fc-depth-ry:0deg;--fc-depth-z:0px;
  transform:perspective(1100px) translate3d(0,0,var(--fc-depth-z)) rotateX(var(--fc-depth-rx)) rotateY(var(--fc-depth-ry));
  transform-style:preserve-3d;transition:transform .72s var(--ease-camera),border-color .6s var(--ease-doux),box-shadow .72s var(--ease-doux);
}
@media (hover:hover) and (pointer:fine){
  [data-fc-depth-card]:hover{--fc-depth-z:7px;box-shadow:var(--fc-depth-shadow);border-color:color-mix(in oklab,var(--carrara) 12%,transparent)}
}
[data-fc-press]{position:relative;overflow:hidden}
[data-fc-press]::after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(12rem circle at var(--fc-press-x,50%) var(--fc-press-y,50%),color-mix(in oklab,var(--carrara) 11%,transparent),transparent 68%);opacity:0;transition:opacity .46s var(--ease-doux)}
[data-fc-press].est-presse::after{opacity:1;transition-duration:.08s}

/* Image grading : la couleur naît de la lumière, pas d'un filtre décoratif. */
body[data-fc-benchmark="50"] [data-fc-media-luxe]{box-shadow:var(--fc-depth-shadow)}
body[data-fc-benchmark="50"] [data-fc-media-luxe] :is(img,video){filter:saturate(.84) contrast(1.045) brightness(.97)}
body[data-fc-benchmark="50"] [data-fc-media-luxe]::before{
  content:"";position:absolute;inset:0;z-index:3;pointer-events:none;opacity:.18;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='90' height='90' viewBox='0 0 90 90'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.92' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.14'/%3E%3C/svg%3E");
  mix-blend-mode:soft-light;
}

/* Institution / rapport / gouvernance : moins de vide, plus d'architecture. */
body[data-fc-page="institution"] .fc-page-heros,
body[data-fc-page="methode"] .fc-page-heros,
body[data-fc-page="charte"] .fc-page-heros{min-height:clamp(34rem,68svh,48rem)}
body[data-fc-page="institution"] .fc-page-heros .fc-page-heros__titre,
body[data-fc-page="methode"] .fc-page-heros .fc-page-heros__titre,
body[data-fc-page="charte"] .fc-page-heros .fc-page-heros__titre{max-width:10.5ch}
body[data-fc-page="institution"] .fc-page-heros .fc-sous,
body[data-fc-page="methode"] .fc-page-heros .fc-sous,
body[data-fc-page="charte"] .fc-page-heros .fc-sous{max-width:38rem}

/* Archives / Atlas / Domaines : chambre de matière + continuité spatiale. */
body[data-fc-page="archives"] .fc-filtres,
body[data-fc-page="atlas"] .fc-etiquettes{
  backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);
  box-shadow:0 22px 70px oklch(.02 0 0 / .2)
}
body[data-fc-page="archives"] .fc-filtres{position:sticky;top:calc(var(--entete-h,5rem) + .8rem);z-index:20;background:color-mix(in oklab,var(--obsidienne) 82%,transparent);padding:.6rem;border:1px solid var(--filet-nuit)}

/* Support : la géométrie devient champ de lumière, pas simple illustration filaire. */
body[data-fc-page="soutien"] .fc-page-heros{background:radial-gradient(34rem 34rem at 75% 48%,color-mix(in oklab,var(--or-clair) 5%,transparent),transparent 72%),var(--obsidienne)}
body[data-fc-page="soutien"] .fc-page-heros [aria-hidden="true"]{filter:drop-shadow(0 0 28px color-mix(in oklab,var(--or-clair) 12%,transparent))}

/* Responsive motion : mobile pensé nativement. */
@media (max-width:900px){
  .fc-benchmark-ledger{position:relative;right:auto;bottom:auto;width:100%;margin-top:2.2rem;backdrop-filter:none;-webkit-backdrop-filter:none}
  body[data-fc-page="institution"] .fc-page-heros,
  body[data-fc-page="methode"] .fc-page-heros,
  body[data-fc-page="charte"] .fc-page-heros{min-height:auto;padding-bottom:3.5rem}
  [data-fc-depth-card]{transform:none!important}
}
@media (max-width:760px){
  .fc-benchmark-ticker__rail{animation-duration:42s;gap:2.2rem}
  .fc-benchmark-ticker__rail span::after{padding-left:2.2rem}
  body[data-fc-benchmark="50"] .fc-page-heros::before{opacity:.28}
}
@media (prefers-reduced-motion:reduce){
  .fc-benchmark-ticker__rail{animation:none!important;transform:none!important}
  [data-fc-depth-card]{transition:none!important;transform:none!important}
  body[data-fc-benchmark="50"] .fc-page-heros::before{transform:none!important}
}


/* 37 — BENCHMARK 50 — réception 10:19
   La météo intérieure reste un événement d'arrivée, jamais un voile qui efface
   photographie ou typographie. L'accueil conserve la dramaturgie la plus riche. */
body:not([data-fc-page="accueil"]).fc-climat-arrivee .fc-climat-ciel{opacity:.12!important;filter:saturate(.78)!important}
body:not([data-fc-page="accueil"]).fc-climat-arrivee[data-fc-meteo="pluie"] .fc-climat-ciel,
body:not([data-fc-page="accueil"]).fc-climat-arrivee[data-fc-meteo="orage"] .fc-climat-ciel{opacity:.20!important}
body:not([data-fc-page="accueil"]).fc-climat-arrivee[data-fc-meteo="brume"] .fc-climat-ciel,
body:not([data-fc-page="accueil"]).fc-climat-arrivee[data-fc-meteo="nuage"] .fc-climat-ciel{opacity:.16!important}
body:not([data-fc-page="accueil"]).fc-climat-arrivee .fc-climat-lumiere{opacity:.11!important;filter:none!important}
body:not([data-fc-page="accueil"]).fc-climat-arrivee .fc-page-heros::before{opacity:.30!important}
body:not([data-fc-page="accueil"]) .fc-climat-ouverture.est-presente{opacity:.88}

/* Archives : une photographie réelle devient présence, jamais wallpaper décoratif. */
.fc-benchmark-archive-echo{position:absolute;right:clamp(3rem,8vw,9rem);top:clamp(9rem,20svh,13rem);z-index:3;width:min(35vw,31rem);aspect-ratio:4/5;overflow:hidden;opacity:.30;filter:saturate(.62) contrast(1.08);box-shadow:0 46px 140px oklch(.015 0 0 / .34);clip-path:inset(0 0 0 18%)}
.fc-benchmark-archive-echo img{width:100%;height:100%;object-fit:cover;transform:scale(1.06);filter:brightness(.72)}
.fc-benchmark-archive-echo::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,var(--obsidienne),transparent 38%),linear-gradient(180deg,transparent 52%,var(--obsidienne));pointer-events:none}

/* Atlas : constellation fantôme construite depuis les coordonnées du SVG réel. */
.fc-benchmark-atlas-echo{position:absolute;right:clamp(2.5rem,6vw,7rem);top:clamp(8.5rem,18svh,12rem);z-index:3;width:min(42vw,39rem);aspect-ratio:765/416;opacity:.66;border:1px solid color-mix(in oklab,var(--carrara) 5%,transparent);background-image:linear-gradient(color-mix(in oklab,var(--carrara) 2.5%,transparent) 1px,transparent 1px),linear-gradient(90deg,color-mix(in oklab,var(--carrara) 2.5%,transparent) 1px,transparent 1px),radial-gradient(ellipse at 50% 50%,color-mix(in oklab,var(--glycine) 5%,transparent),transparent 70%);background-size:3.6rem 3.6rem,3.6rem 3.6rem,100% 100%;overflow:hidden;mask-image:linear-gradient(90deg,transparent,#000 18% 86%,transparent);-webkit-mask-image:linear-gradient(90deg,transparent,#000 18% 86%,transparent)}
.fc-benchmark-atlas-echo__point{position:absolute;transform:translate(-50%,-50%);display:grid;place-items:center;width:.48rem;height:.48rem;border-radius:50%;background:var(--carrara);box-shadow:0 0 0 .6rem color-mix(in oklab,var(--glycine) 6%,transparent),0 0 2.3rem color-mix(in oklab,var(--glycine) 20%,transparent)}
.fc-benchmark-atlas-echo__point b{position:absolute;top:1rem;left:50%;transform:translateX(-50%);font-family:var(--f-ui);font-size:.47rem;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:color-mix(in oklab,var(--carrara) 64%,transparent);white-space:nowrap}
.fc-benchmark-atlas-echo__point.is-seat{width:.42rem;height:.42rem;border-radius:0;transform:translate(-50%,-50%) rotate(45deg);background:var(--or-clair);box-shadow:0 0 1.6rem color-mix(in oklab,var(--or-clair) 22%,transparent)}
.fc-benchmark-atlas-echo__point.is-seat b{transform:translateX(-50%) rotate(-45deg)}

@media (max-width:1000px){.fc-benchmark-archive-echo,.fc-benchmark-atlas-echo{opacity:.20;right:-5rem;width:58vw}}
@media (max-width:760px){body:not([data-fc-page="accueil"]).fc-climat-arrivee .fc-climat-ciel{opacity:.08!important}.fc-benchmark-archive-echo,.fc-benchmark-atlas-echo{display:none}}
@media (prefers-reduced-motion:reduce){.fc-benchmark-archive-echo img{transform:none}.fc-benchmark-atlas-echo{opacity:.38}}

/* Cadrage éditorial des trois projets : l'image doit raconter dès le premier écran. */
body[data-fc-slug="acqua-prima"] .fc-page-heros__fond img{object-position:50% 20%}
body[data-fc-slug="il-quaderno"] .fc-page-heros__fond img{object-position:50% 30%}
body[data-fc-slug="casa-sospesa"] .fc-page-heros__fond img{object-position:50% 27%}
@media (max-width:760px){
 body[data-fc-slug="acqua-prima"] .fc-page-heros__fond img{object-position:52% 28%}
 body[data-fc-slug="il-quaderno"] .fc-page-heros__fond img{object-position:50% 32%}
 body[data-fc-slug="casa-sospesa"] .fc-page-heros__fond img{object-position:50% 30%}
}

/* Les échos sont des couches du héros : ils doivent passer devant son fond, mais derrière le texte. */
body[data-fc-benchmark="50"] .fc-page-heros > .fc-benchmark-archive-echo,body[data-fc-benchmark="50"] .fc-page-heros > .fc-benchmark-atlas-echo{position:absolute;z-index:3}

/* 38 — Réception Direction : le climat reste informatif sans mordre sur le portrait. */
@media (min-width:1181px){
  body[data-fc-page="direction"] .fc-climat{
    top:calc(var(--entete-h,5rem) - .7rem);
    width:11.2rem;
  }
}


/* 39 — V27.4 — TYPOGRAPHIE TERTIAIRE + DIRECTION VIVANTE
   Même bibliothèque typographique : Newsreader devient la voix tertiaire
   éditoriale, Manrope reste l'interface. Aucun nouveau font-face. */
.fc-petit,.fc-carte__note,.fc-etape p,.fc-registre__corps,
.fc-direction-cred p,.fc-direction-couture__body,.fc-direction-ledger__item p,
.fc-home-direction__role,.fc-home-direction__body{
  font-family:var(--f-lecture);font-optical-sizing:auto;
  font-variation-settings:'opsz' 22,'wght' 330;
}
.fc-petit{font-size:clamp(.94rem,1.05vw,1.08rem);line-height:1.58;letter-spacing:.005em}
.fc-carte__note,.fc-etape p,.fc-registre__corps{line-height:1.62}

/* Teaser Direction de l'accueil : portrait souverain + transition de matière. */
.fc-home-direction{position:relative;overflow:hidden;padding:clamp(6rem,10vw,11rem) 0;background:
  radial-gradient(48rem 36rem at var(--fc-hero-px,28%) var(--fc-hero-py,44%),color-mix(in oklab,var(--glycine) 5%,transparent),transparent 72%),
  linear-gradient(112deg,var(--obsidienne),color-mix(in oklab,var(--nuit) 95%,var(--carrara) 5%) 58%,var(--obsidienne));
}
.fc-home-direction::before{content:"";position:absolute;inset:0;pointer-events:none;background:
  linear-gradient(90deg,transparent 49.92%,color-mix(in oklab,var(--carrara) 8%,transparent) 50%,transparent 50.08%),
  linear-gradient(124deg,transparent 20%,color-mix(in oklab,var(--or-clair) 4%,transparent) 46%,transparent 70%);opacity:.72}
.fc-home-direction__grid{position:relative;display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:clamp(2rem,4vw,5rem);align-items:center;min-height:78svh}
.fc-home-direction__portrait{grid-column:1 / 7;position:relative;margin:0;min-height:min(72svh,52rem);overflow:hidden;isolation:isolate;border:1px solid color-mix(in oklab,var(--carrara) 8%,transparent);box-shadow:0 42px 120px oklch(.015 0 0 / .32);transform:translate3d(var(--fc-giulia-x,0),var(--fc-giulia-y,0),0) rotateX(var(--fc-giulia-rx,0deg)) rotateY(var(--fc-giulia-ry,0deg));transform-style:preserve-3d;perspective:1200px}
.fc-home-direction__portrait picture,.fc-home-direction__portrait img{display:block;width:100%;height:100%}
.fc-home-direction__portrait img{object-fit:cover;object-position:50% 28%;filter:saturate(.88) contrast(1.045) brightness(.98);transform:scale(var(--fc-giulia-scale,1.025)) translate3d(calc(var(--fc-giulia-x,0px) * -.18),calc(var(--fc-giulia-y,0px) * -.12),0);transition:filter 1.2s var(--ease-doux),transform 1.1s var(--ease-camera)}
.fc-home-direction__portrait::before{content:"";position:absolute;inset:0;z-index:4;pointer-events:none;background:
  radial-gradient(28rem 34rem at var(--fc-giulia-px,56%) var(--fc-giulia-py,36%),color-mix(in oklab,var(--carrara) 13%,transparent),transparent 66%),
  linear-gradient(90deg,color-mix(in oklab,var(--obsidienne) 72%,transparent),transparent 24% 80%,color-mix(in oklab,var(--obsidienne) 35%,transparent)),
  linear-gradient(180deg,transparent 60%,color-mix(in oklab,var(--obsidienne) 48%,transparent));mix-blend-mode:screen;opacity:.24;transition:opacity .7s var(--ease-doux)}
.fc-home-direction__veil{position:absolute;inset:-12%;z-index:5;pointer-events:none;background:linear-gradient(108deg,transparent 12%,color-mix(in oklab,var(--carrara) 18%,transparent) 46%,transparent 64%);transform:translate3d(-48%,0,0) skewX(-12deg);opacity:.22;transition:transform 1.9s cubic-bezier(.19,1,.22,1),opacity 1.2s var(--ease-doux)}
.fc-home-direction__portrait.est-giulia-revele .fc-home-direction__veil{transform:translate3d(58%,0,0) skewX(-12deg);opacity:.05}
.fc-home-direction__etch{position:absolute;z-index:6;inset:8% 6% 10% 12%;pointer-events:none;border-top:1px solid color-mix(in oklab,var(--or-clair) 32%,transparent);border-right:1px solid color-mix(in oklab,var(--carrara) 12%,transparent);clip-path:polygon(0 0,100% 0,100% 100%,98% 100%,98% 2%,0 2%);opacity:.78;transform:translate3d(calc(var(--fc-giulia-x,0px) * -.2),calc(var(--fc-giulia-y,0px) * -.2),0)}
.fc-home-direction__copy{grid-column:7 / 13;position:relative;z-index:6;max-width:46rem;padding-right:clamp(0rem,2vw,2rem)}
.fc-home-direction__name{margin:.8rem 0 1.2rem;font-family:var(--f-display);font-size:clamp(4.3rem,7.4vw,8.6rem);font-weight:400;line-height:.82;letter-spacing:-.055em;color:var(--ivoire);font-optical-sizing:auto;font-variation-settings:'opsz' 90,'wght' 420}
.fc-home-direction__role{max-width:42rem;margin:0;color:color-mix(in oklab,var(--carrara) 72%,transparent);font-size:clamp(1.02rem,1.35vw,1.28rem);line-height:1.42}
.fc-home-direction__quote{max-width:36rem;margin:clamp(1.6rem,3vw,2.8rem) 0 1.3rem;padding-left:1.15rem;border-left:1px solid color-mix(in oklab,var(--or-clair) 58%,transparent);font-family:var(--f-signature);font-style:italic;font-size:clamp(1.65rem,2.55vw,3rem);line-height:1.12;color:var(--ivoire)}
.fc-home-direction__body{max-width:42rem;margin:0;color:var(--texte-doux);font-size:clamp(1.02rem,1.2vw,1.17rem);line-height:1.7}
.fc-home-direction__pillars{display:flex;flex-wrap:wrap;gap:.55rem;margin:clamp(1.6rem,2.5vw,2.4rem) 0}
.fc-home-direction__pillars span{padding:.58rem .8rem;border:1px solid color-mix(in oklab,var(--carrara) 10%,transparent);font-family:var(--f-interface);font-size:.58rem;font-weight:500;letter-spacing:.19em;text-transform:uppercase;color:color-mix(in oklab,var(--carrara) 72%,transparent);background:color-mix(in oklab,var(--obsidienne) 80%,transparent);backdrop-filter:blur(10px)}
.fc-home-direction__rail{position:absolute;right:0;top:12%;bottom:12%;display:flex;flex-direction:column;align-items:center;justify-content:space-between;color:color-mix(in oklab,var(--carrara) 30%,transparent);font-family:var(--f-interface);font-size:.48rem;letter-spacing:.16em}
.fc-home-direction__rail span{width:1px;flex:1;margin:.8rem 0;background:linear-gradient(180deg,transparent,var(--or-clair),transparent);opacity:.35}
@media (hover:hover) and (pointer:fine){.fc-home-direction__portrait:hover::before{opacity:.42}.fc-home-direction__portrait:hover img{filter:saturate(.94) contrast(1.055) brightness(1.005)}}

/* Page Direction : présence plus perceptible, toujours au-dessus d'un média DOM souverain. */
.fc-direction-couture__portrait{overflow:hidden;isolation:isolate;transition:transform .9s var(--ease-camera),box-shadow .9s var(--ease-doux)}
.fc-direction-couture__portrait img{transform:scale(var(--fc-giulia-scale,1.018)) translate3d(calc(var(--fc-giulia-x,0px) * -.14),calc(var(--fc-giulia-y,0px) * -.10),0);transition:transform 1.05s var(--ease-camera),filter .9s var(--ease-doux)}
.fc-direction-couture__portrait::after{content:"";position:absolute;inset:-10%;z-index:3;pointer-events:none;background:
  radial-gradient(30rem 34rem at var(--fc-giulia-px,58%) var(--fc-giulia-py,34%),color-mix(in oklab,var(--carrara) 16%,transparent),transparent 65%),
  linear-gradient(116deg,transparent 18%,color-mix(in oklab,var(--or-clair) 8%,transparent) 48%,transparent 68%);mix-blend-mode:screen;opacity:.16;transform:translate3d(calc(var(--fc-giulia-x,0px) * .28),calc(var(--fc-giulia-y,0px) * .2),0);transition:opacity .7s var(--ease-doux)}
.fc-direction-couture__portrait.est-giulia-active::after{opacity:.34}
.fc-direction-couture__portrait.est-giulia-revele{box-shadow:0 52px 160px oklch(.014 0 0 / .4)}
.fc-direction-couture__portrait.est-giulia-revele .fc-direction-couture__halo{animation:fc-giulia-etch 5.8s cubic-bezier(.19,1,.22,1) 1 both}
@keyframes fc-giulia-etch{0%{opacity:.05;clip-path:inset(0 100% 0 0)}38%{opacity:.78}100%{opacity:.62;clip-path:inset(0 0 0 0)}}

/* Benchmark 50 renforcé : les médias existants reçoivent matière et réponse sans
   créer un deuxième moteur ni masquer l'image. */
.fc-b50-media{position:relative;isolation:isolate;overflow:hidden}
.fc-b50-media::after{content:"";position:absolute;inset:-18%;z-index:6;pointer-events:none;background:linear-gradient(112deg,transparent 24%,color-mix(in oklab,var(--carrara) 11%,transparent) 48%,transparent 64%);opacity:0;transform:translate3d(-30%,0,0);transition:opacity .65s var(--ease-doux),transform 1.4s cubic-bezier(.19,1,.22,1)}
@media (hover:hover) and (pointer:fine){.fc-b50-media:hover::after{opacity:.28;transform:translate3d(28%,0,0)}}

@media (max-width:900px){
  .fc-home-direction__grid{grid-template-columns:1fr;min-height:0;gap:2.2rem}
  .fc-home-direction__portrait,.fc-home-direction__copy{grid-column:1}
  .fc-home-direction__portrait{min-height:0;aspect-ratio:4/5;order:1}
  .fc-home-direction__copy{order:2;padding-right:0}
  .fc-home-direction__name{font-size:clamp(4rem,18vw,7.2rem)}
  .fc-home-direction__rail{display:none}
}
@media (prefers-reduced-motion:reduce){
  .fc-home-direction__veil{display:none}.fc-direction-couture__portrait .fc-direction-couture__halo{animation:none!important}
  .fc-home-direction__portrait img,.fc-direction-couture__portrait img{transform:none!important}
}


/* ═══ V27.5 — SEUIL CINÉMATIQUE / ACTIVE-THEORY LOGIC, CARAVELLI LANGUAGE ══
   Une scène plein écran, un vrai préchargement, puis un choix explicite de son.
   Le média DOM reste l'autorité; FCScene ajoute la matière quand WebGL existe. */
.fc-seuil{
  overflow:hidden;isolation:isolate;grid-template-rows:auto 1fr auto;
  background:var(--obsidienne);padding:clamp(1.1rem,2.4vw,2rem) var(--marge);
  color:var(--ivoire);transition:opacity .85s var(--ease-rideau),visibility 0s .85s;
}
.fc-seuil__scene{position:absolute;inset:0;z-index:-3;overflow:hidden;background:var(--obsidienne)}
.fc-seuil__scene picture,.fc-seuil__scene img,.fc-seuil__scene canvas{width:100%;height:100%;object-fit:cover;display:block}
.fc-seuil__scene img{opacity:.42!important;filter:saturate(.46) contrast(1.18) brightness(.54);transform:scale(1.045)}
.fc-seuil__scene canvas{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;z-index:2!important;opacity:.42!important;mix-blend-mode:screen!important}
.fc-seuil__veil{position:absolute;inset:0;z-index:-2;pointer-events:none;background:
  radial-gradient(70% 82% at 67% 42%,color-mix(in oklab,var(--carrara) 8%,transparent),transparent 70%),
  linear-gradient(90deg,oklch(.115 .007 312/.93) 0%,oklch(.115 .007 312/.54) 52%,oklch(.115 .007 312/.84) 100%)}
.fc-seuil__veil::after{content:"";position:absolute;inset:0;opacity:.16;mix-blend-mode:soft-light;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.72' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.35'/%3E%3C/svg%3E")}
.fc-seuil__top,.fc-seuil__bottom{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;position:relative;z-index:3;font-family:var(--f-ui);font-size:clamp(.58rem,.52rem + .14vw,.69rem);letter-spacing:.22em;text-transform:uppercase;color:color-mix(in oklab,var(--ivoire) 66%,transparent)}
.fc-seuil__mark{letter-spacing:.28em;color:var(--ivoire)}
.fc-seuil__geo{display:flex;align-items:center;gap:.7rem;letter-spacing:.12em}.fc-seuil__geo b{font-weight:500;color:var(--ivoire)}.fc-seuil__geo i{width:22px;height:1px;background:var(--filet-or)}
.fc-seuil__centre{align-self:center;justify-self:start;text-align:left;display:grid;gap:clamp(.75rem,1.4vw,1.25rem);justify-items:start;width:min(64rem,88vw);padding-left:clamp(0rem,6vw,7rem);position:relative;z-index:3}
.fc-seuil__eyebrow{font:500 var(--t-label)/1.2 var(--f-ui);letter-spacing:.28em;text-transform:uppercase;color:var(--or-clair);margin:0}
.fc-seuil__mot{font-family:var(--f-display);font-style:normal;font-weight:400;font-size:clamp(3.2rem,7.6vw,8.8rem);line-height:.86;letter-spacing:-.055em;color:var(--ivoire);max-width:9ch;margin:0;text-wrap:balance;overflow:visible}
.fc-seuil__hint{font-family:var(--f-lecture);font-size:clamp(.96rem,1.05vw,1.18rem);line-height:1.55;color:color-mix(in oklab,var(--ivoire) 70%,transparent);max-width:39rem;margin:0}
.fc-seuil__progress{display:grid;grid-template-columns:minmax(160px,350px) auto;align-items:center;gap:1rem;margin-top:.5rem;transition:opacity .55s var(--ease-doux),transform .7s var(--ease-sortie)}
.fc-seuil__jauge{width:100%;height:1px;background:color-mix(in oklab,var(--ivoire) 15%,transparent)}
.fc-seuil__jauge span{background:linear-gradient(90deg,var(--or-sombre),var(--ivoire));box-shadow:0 0 24px color-mix(in oklab,var(--carrara) 20%,transparent)}
.fc-seuil__compteur{min-width:3.2rem;margin:0;color:var(--ivoire)}
.fc-seuil__actions{display:flex;align-items:center;gap:1.35rem;opacity:0;transform:translateY(18px);pointer-events:none;transition:opacity .7s .15s var(--ease-doux),transform 1s .08s var(--ease-sortie)}
.fc-seuil.est-pret .fc-seuil__progress{opacity:.42;transform:translateY(-3px)}
.fc-seuil.est-pret .fc-seuil__actions{opacity:1;transform:none;pointer-events:auto}
.fc-seuil__entrer{appearance:none;border:0;background:none;color:var(--ivoire);font:500 .68rem/1 var(--f-ui);letter-spacing:.18em;text-transform:uppercase;padding:.9rem 0;cursor:pointer;position:relative}
.fc-seuil__entrer::after{content:"";position:absolute;left:0;right:0;bottom:.38rem;height:1px;background:currentColor;transform-origin:left;transform:scaleX(.22);opacity:.55;transition:transform .7s var(--ease-sortie),opacity .4s}
.fc-seuil__entrer:hover::after,.fc-seuil__entrer:focus-visible::after{transform:scaleX(1);opacity:1}
.fc-seuil__entrer--son{display:inline-flex;gap:.7rem;align-items:center;color:var(--or-clair)}
.fc-seuil__entrer:disabled{opacity:.36;cursor:default}.fc-seuil__entrer:focus-visible{outline:1px solid var(--or-clair);outline-offset:8px}
.fc-seuil__bottom time{font-variant-numeric:tabular-nums;color:var(--ivoire)}
.fc-seuil.est-ouverture .fc-seuil__scene{transform:scale(1.026);filter:brightness(1.13);transition:transform 1.35s var(--ease-camera),filter 1.25s var(--ease-doux)}
.fc-seuil.est-ouverture .fc-seuil__centre,.fc-seuil.est-ouverture .fc-seuil__top,.fc-seuil.est-ouverture .fc-seuil__bottom{opacity:0;transform:translateY(-10px);transition:opacity .58s var(--ease-doux),transform .75s var(--ease-sortie)}
.fc-seuil.est-parti{opacity:0;visibility:hidden;pointer-events:none}
@media (max-width:760px){
  .fc-seuil{padding:1rem var(--marge) max(1rem,env(safe-area-inset-bottom))}
  .fc-seuil__top{align-items:flex-start}.fc-seuil__geo{flex-direction:column;align-items:flex-end;gap:.25rem}.fc-seuil__geo i{display:none}
  .fc-seuil__centre{padding-left:0;width:100%;align-self:end;margin-bottom:10svh}.fc-seuil__mot{font-size:clamp(3.1rem,17vw,5.9rem);max-width:8ch}.fc-seuil__hint{font-size:.96rem;max-width:28rem}
  .fc-seuil__actions{align-items:flex-start;flex-direction:column;gap:.1rem}.fc-seuil__progress{width:100%;grid-template-columns:1fr auto}
  .fc-seuil__bottom{font-size:.54rem;letter-spacing:.14em}.fc-seuil__bottom span{max-width:65%}
  .fc-seuil__scene img{opacity:.48!important;object-position:58% center}
}
@media (prefers-reduced-motion:reduce){
  .fc-seuil__scene canvas{display:none!important}.fc-seuil__scene img{transform:none!important}.fc-seuil__actions,.fc-seuil__centre,.fc-seuil__top,.fc-seuil__bottom{transition:none!important}
}


/* ═══ V27.5.1 — CINÉMA MAISON GLOBAL ═══════════════════════════════════════
   Additif uniquement : cadre, lumière, plans et chapitres, sans masquer le DOM. */
body[data-fc-cinema="maison"]{--fc-cinema-intensity:.62;--fc-cinema-shot:.72}
body[data-fc-page="lecture"],body[data-fc-page="institution"]{--fc-cinema-intensity:.28;--fc-cinema-shot:.35}
body[data-fc-page="methode"],body[data-fc-page="charte"]{--fc-cinema-intensity:.38;--fc-cinema-shot:.42}
body[data-fc-page="direction"],body[data-fc-page="projet"],body[data-fc-page="archives"],body[data-fc-page="atlas"],body[data-fc-page="domaines"],body[data-fc-page="soutien"]{--fc-cinema-intensity:.78;--fc-cinema-shot:.86}
.fc-cinema-global{position:fixed;inset:0;z-index:68;pointer-events:none;overflow:hidden;opacity:0;transition:opacity 1.3s var(--ease-doux)}
body.fc-cinema-entree .fc-cinema-global{opacity:1}
.fc-cinema-vignette{position:absolute;inset:-1px;background:radial-gradient(ellipse 92% 84% at 50% 46%,transparent 54%,oklch(.015 0 0/.15) 82%,oklch(.01 0 0/.34) 100%);opacity:calc(var(--fc-cinema-intensity)*.86)}
.fc-cinema-beam{position:absolute;inset:-18%;background:radial-gradient(42rem 34rem at var(--fc-cinema-x,58%) var(--fc-cinema-y,38%),color-mix(in oklab,var(--carrara) 8%,transparent),transparent 66%),linear-gradient(112deg,transparent 22%,color-mix(in oklab,var(--platinum) 3%,transparent) 48%,transparent 70%);mix-blend-mode:screen;opacity:calc(var(--fc-cinema-intensity)*.72);transform:translate3d(calc((var(--fc-cinema-scroll,0) - .5)*1.8vw),0,0)}
.fc-cinema-frame{position:absolute;left:var(--marge);right:var(--marge);height:1px;background:linear-gradient(90deg,transparent,color-mix(in oklab,var(--carrara) 22%,transparent) 16%,color-mix(in oklab,var(--platinum) 26%,transparent) 50%,color-mix(in oklab,var(--carrara) 22%,transparent) 84%,transparent);opacity:calc(var(--fc-cinema-intensity)*.66);transform:scaleX(.28);transition:transform 1.7s .2s var(--ease-sortie)}
body.fc-cinema-entree .fc-cinema-frame{transform:scaleX(1)}.fc-cinema-frame--t{top:calc(env(safe-area-inset-top) + 9px)}.fc-cinema-frame--b{bottom:calc(env(safe-area-inset-bottom) + 9px)}
.fc-cinema-progress{position:absolute;left:0;top:0;width:100%;height:2px;overflow:hidden;opacity:.72}.fc-cinema-progress span{display:block;width:100%;height:100%;transform-origin:left center;transform:scaleX(0);background:linear-gradient(90deg,var(--or-sombre),var(--carrara),var(--platinum));box-shadow:0 0 18px color-mix(in oklab,var(--carrara) 18%,transparent)}
.fc-cinema-chapter{position:absolute;left:var(--marge);bottom:clamp(1rem,2vw,1.7rem);display:flex;align-items:center;gap:.75rem;max-width:min(44vw,32rem);font-family:var(--f-interface);font-size:.54rem;letter-spacing:.18em;text-transform:uppercase;color:color-mix(in oklab,var(--carrara) 54%,transparent);opacity:calc(var(--fc-cinema-intensity)*.72);transition:opacity .5s var(--ease-doux)}
.fc-cinema-chapter::before{content:"";width:28px;height:1px;background:var(--filet-or)}.fc-cinema-chapter em{font-style:normal;color:var(--or-clair);font-variant-numeric:tabular-nums}.fc-cinema-chapter b{font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fc-cinema-chapter.est-cinema-change b{animation:fc-cinema-caption .82s var(--ease-sortie) both}@keyframes fc-cinema-caption{0%{opacity:0;transform:translateY(7px);filter:blur(5px)}100%{opacity:1;transform:none;filter:none}}
[data-fc-cinema-section]{position:relative;isolation:isolate;--fc-cinema-section-light:0;transition:filter 1.2s var(--ease-doux)}
[data-fc-cinema-section]::after{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;background:radial-gradient(52rem 30rem at calc(18% + var(--fc-cinema-index,0)*4%) 18%,color-mix(in oklab,var(--carrara) 3.8%,transparent),transparent 70%);opacity:0;transition:opacity 1.6s var(--ease-doux)}
[data-fc-cinema-section].est-cinema-vu::after{opacity:calc(var(--fc-cinema-intensity)*.62)}
[data-fc-cinema-section]>.fc-shell,[data-fc-cinema-section]>.fc-wrap,[data-fc-cinema-section]>.wrap{position:relative;z-index:1}
.fc-cinema-shot{position:relative;isolation:isolate;transform-origin:center center;box-shadow:0 0 0 1px transparent;transition:box-shadow 1.4s var(--ease-doux),filter 1.2s var(--ease-doux)}
.fc-cinema-shot::before{content:"";position:absolute;inset:-1px;z-index:8;pointer-events:none;background:linear-gradient(118deg,transparent 18%,color-mix(in oklab,var(--carrara) 10%,transparent) 47%,transparent 72%);mix-blend-mode:screen;opacity:0;transform:translate3d(-26%,0,0);transition:opacity .8s var(--ease-doux),transform 1.8s var(--ease-sortie)}
.fc-cinema-shot::after{content:"";position:absolute;inset:0;z-index:9;pointer-events:none;border:1px solid color-mix(in oklab,var(--platinum) 12%,transparent);opacity:0;clip-path:inset(0 100% 0 0);transition:opacity .8s var(--ease-doux),clip-path 1.8s var(--ease-sortie)}
.est-cinema-vu .fc-cinema-shot::after,.fc-cinema-shot.est-cinema-vu::after{opacity:calc(var(--fc-cinema-shot)*.65);clip-path:inset(0 0 0 0)}
@media (hover:hover) and (pointer:fine){.fc-cinema-shot:hover{box-shadow:0 38px 120px oklch(.012 0 0/.28)}.fc-cinema-shot:hover::before{opacity:calc(var(--fc-cinema-shot)*.38);transform:translate3d(24%,0,0)}}
body[data-fc-page="projet"] .fc-page-heros,body[data-fc-page="direction"] .fc-page-heros,body[data-fc-page="archives"] .fc-page-heros,body[data-fc-page="atlas"] .fc-page-heros{box-shadow:inset 0 -1px color-mix(in oklab,var(--carrara) 8%,transparent)}
body[data-fc-page="projet"] .fc-page-heros::before,body[data-fc-page="direction"] .fc-page-heros::before,body[data-fc-page="archives"] .fc-page-heros::before,body[data-fc-page="atlas"] .fc-page-heros::before{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;background:linear-gradient(124deg,transparent 12%,color-mix(in oklab,var(--carrara) 4%,transparent) 48%,transparent 72%);opacity:.7;mix-blend-mode:screen}
body[data-fc-page="lecture"] .fc-cinema-chapter,body[data-fc-page="institution"] .fc-cinema-chapter{opacity:.16}
@media (max-width:760px){.fc-cinema-frame{left:1rem;right:1rem}.fc-cinema-chapter{left:1rem;bottom:max(1rem,env(safe-area-inset-bottom));max-width:66vw;font-size:.48rem}.fc-cinema-vignette{opacity:calc(var(--fc-cinema-intensity)*.58)}.fc-cinema-beam{opacity:calc(var(--fc-cinema-intensity)*.44)}.fc-cinema-shot::before{display:none}}
@media (prefers-reduced-motion:reduce){.fc-cinema-beam{display:none}.fc-cinema-frame{transform:scaleX(1);transition:none}.fc-cinema-chapter.est-cinema-change b{animation:none}.fc-cinema-shot,.fc-cinema-shot::before,.fc-cinema-shot::after{transition:none!important}.fc-cinema-global{transition:none;opacity:.45}.fc-cinema-progress{display:none}}

/* ═══ V27.5.2 — ACTIVE STAGE CARAVELLI ════════════════════════════════════
   Principe Active Theory : le seuil est un environnement interactif plein
   écran, pas un loader. Traduction Caravelli : Carrara, lumière rasante,
   profondeur architecturale, interaction matérielle et sortie Obsidian Cut. */
.fc-seuil--root.fc-active-stage{
  --fc-stage-x:0;
  --fc-stage-y:0;
  --fc-stage-vx:0;
  --fc-stage-vy:0;
  --fc-stage-progress:0;
  grid-template-rows:auto 1fr auto;
  overflow:hidden;
  isolation:isolate;
  perspective:1200px;
  background:var(--obsidienne);
  animation:fc-stage-failsafe .01s linear 12s forwards;
}
.fc-seuil--root.fc-active-stage.est-pret{animation:none}
@keyframes fc-stage-failsafe{to{opacity:0;visibility:hidden;pointer-events:none}}

.fc-seuil--root .fc-seuil__scene{z-index:-8;transform:scale(1.08);filter:brightness(.72) saturate(.62) contrast(1.14);transition:filter 1.4s var(--ease-doux),transform 1.8s var(--ease-camera)}
.fc-seuil--root .fc-seuil__scene img{opacity:.66!important;filter:saturate(.58) contrast(1.15) brightness(.68) sepia(.04)!important;transform:scale(1.08) translate3d(calc(var(--fc-stage-x)*-7px),calc(var(--fc-stage-y)*-5px),0)!important;transition:filter 1.2s var(--ease-doux)}
.fc-seuil--root .fc-seuil__scene canvas{opacity:.58!important;mix-blend-mode:screen!important;filter:contrast(1.04) saturate(.72)}
.fc-seuil--root .fc-seuil__veil{z-index:-7;background:
  radial-gradient(48rem 58rem at calc(58% + var(--fc-stage-x)*7%) calc(42% + var(--fc-stage-y)*5%),oklch(.88 .015 85/.10),transparent 58%),
  linear-gradient(90deg,oklch(.055 .004 305/.97) 0%,oklch(.07 .006 305/.58) 42%,oklch(.055 .004 305/.88) 100%)}
.fc-seuil--root .fc-seuil__veil::before{content:"";position:absolute;inset:0;background:linear-gradient(112deg,transparent 28%,oklch(.9 .012 78/.05) 48%,transparent 64%);transform:translate3d(calc(var(--fc-stage-progress)*28% - 16%),0,0);mix-blend-mode:screen}

.fc-active-stage__field{position:absolute;inset:0;z-index:-5;pointer-events:none;overflow:hidden}
.fc-active-stage__field::before,.fc-active-stage__field::after{content:"";position:absolute;inset:-18%;border:1px solid color-mix(in oklab,var(--carrara) 8%,transparent);border-radius:50%;transform:translate3d(calc(var(--fc-stage-x)*18px),calc(var(--fc-stage-y)*12px),0) scale(calc(.82 + var(--fc-stage-progress)*.22));opacity:calc(.10 + var(--fc-stage-progress)*.14)}
.fc-active-stage__field::after{inset:-6%;border-color:color-mix(in oklab,var(--platinum) 8%,transparent);transform:translate3d(calc(var(--fc-stage-x)*-12px),calc(var(--fc-stage-y)*-9px),0) scale(calc(.72 + var(--fc-stage-progress)*.31))}
.fc-active-stage__field i{position:absolute;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,color-mix(in oklab,var(--carrara) 16%,transparent),transparent);transform-origin:center;opacity:.28}
.fc-active-stage__field i:nth-child(1){top:21%;transform:scaleX(calc(.18 + var(--fc-stage-progress)*.82))}
.fc-active-stage__field i:nth-child(2){top:50%;transform:scaleX(calc(.06 + var(--fc-stage-progress)*.58)) translateX(calc(var(--fc-stage-x)*2vw))}
.fc-active-stage__field i:nth-child(3){top:79%;transform:scaleX(calc(.12 + var(--fc-stage-progress)*.68)) translateX(calc(var(--fc-stage-x)*-2vw))}

.fc-active-stage__monolith{position:absolute;z-index:-3;right:clamp(4vw,9vw,11vw);top:50%;width:min(29vw,29rem);height:min(70vh,47rem);transform-style:preserve-3d;transform:translate3d(calc(var(--fc-stage-x)*20px),calc(-50% + var(--fc-stage-y)*12px),0) rotateY(calc(var(--fc-stage-x)*-3.5deg)) rotateX(calc(var(--fc-stage-y)*2.2deg));filter:drop-shadow(0 38px 70px oklch(.01 0 0/.48));pointer-events:none}
.fc-active-stage__slab{position:absolute;top:0;bottom:0;background-image:linear-gradient(180deg,oklch(.93 .009 80/.16),transparent 18%,transparent 72%,oklch(.05 0 0/.32)),url("../img/video/hero-poster.jpg?v=20260819-finalmedia1");background-size:310% 112%;background-position-y:center;border:1px solid color-mix(in oklab,var(--carrara) 13%,transparent);box-shadow:inset 0 0 0 1px oklch(.99 0 0/.025),inset -22px 0 42px oklch(.01 0 0/.28);transition:transform 1.45s var(--ease-camera),filter 1.2s var(--ease-doux),opacity .8s var(--ease-doux);filter:grayscale(.38) saturate(.58) contrast(1.12) brightness(.66)}
.fc-active-stage__slab--a{left:0;width:33.333%;background-position-x:0;transform:translate3d(calc((1 - var(--fc-stage-progress))*-3.5vw),calc((1 - var(--fc-stage-progress))*2.5vh),20px)}
.fc-active-stage__slab--b{left:33.333%;width:33.334%;background-position-x:50%;transform:translate3d(0,calc((1 - var(--fc-stage-progress))*-3vh),42px)}
.fc-active-stage__slab--c{right:0;width:33.333%;background-position-x:100%;transform:translate3d(calc((1 - var(--fc-stage-progress))*3.5vw),calc((1 - var(--fc-stage-progress))*1.5vh),0)}
.fc-active-stage__vein{position:absolute;inset:-2%;background:radial-gradient(28rem 32rem at calc(50% + var(--fc-stage-x)*18%) calc(42% + var(--fc-stage-y)*16%),transparent 32%,oklch(.91 .018 85/.075) 34%,transparent 36%),linear-gradient(108deg,transparent 43%,oklch(.92 .018 78/.12) 49%,transparent 54%);mix-blend-mode:screen;opacity:calc(.22 + var(--fc-stage-progress)*.42);filter:blur(.4px);transform:translateZ(68px)}

.fc-active-stage__cut{position:absolute;top:0;bottom:0;width:50.2%;z-index:8;background:var(--obsidienne);pointer-events:none;transform:translateX(0);transition:transform 1.28s var(--ease-camera);opacity:0}
.fc-active-stage__cut--l{left:0}.fc-active-stage__cut--r{right:0}
.fc-seuil--root.est-ouverture .fc-active-stage__cut{opacity:1}
.fc-seuil--root.est-ouverture .fc-active-stage__cut--l{transform:translateX(-102%)}
.fc-seuil--root.est-ouverture .fc-active-stage__cut--r{transform:translateX(102%)}

.fc-seuil--root .fc-seuil__top,.fc-seuil--root .fc-seuil__bottom{z-index:9}
.fc-seuil--root .fc-seuil__centre{width:min(58rem,72vw);padding-left:clamp(0rem,4vw,4.8rem);z-index:9;align-self:center;margin:0}
.fc-seuil--root .fc-seuil__eyebrow{color:color-mix(in oklab,var(--or-clair) 86%,var(--carrara));opacity:.9}
.fc-active-stage__title{display:grid;margin:0;font-family:var(--f-display);font-weight:400;color:var(--ivoire);line-height:.79;letter-spacing:-.065em;text-wrap:balance;isolation:isolate}
.fc-active-stage__title span{font-size:clamp(4.6rem,9.4vw,11.4rem);transform:translate3d(calc(var(--fc-stage-x)*-5px),0,0)}
.fc-active-stage__title em{font-family:var(--f-lecture);font-weight:300;font-style:italic;font-size:clamp(2.5rem,5.7vw,7.1rem);letter-spacing:-.045em;margin-left:clamp(3rem,8vw,10rem);color:color-mix(in oklab,var(--ivoire) 92%,var(--or-clair));transform:translate3d(calc(var(--fc-stage-x)*7px),calc(var(--fc-stage-y)*4px),0)}
.fc-seuil--root .fc-seuil__hint{max-width:34rem;font-size:clamp(.92rem,.9rem + .18vw,1.08rem);color:color-mix(in oklab,var(--ivoire) 68%,transparent)}
.fc-active-stage__phase{display:grid;grid-template-columns:auto minmax(3.8rem,10rem) auto;align-items:center;gap:.85rem;margin-top:.65rem;font:500 .56rem/1 var(--f-ui);letter-spacing:.18em;text-transform:uppercase;color:color-mix(in oklab,var(--ivoire) 48%,transparent)}
.fc-active-stage__phase span{color:var(--or-clair)}.fc-active-stage__phase i{height:1px;background:linear-gradient(90deg,var(--filet-or),transparent)}.fc-active-stage__phase b{font-weight:500;color:color-mix(in oklab,var(--ivoire) 62%,transparent)}
.fc-seuil--root .fc-seuil__progress{width:min(28rem,70vw);grid-template-columns:1fr auto;margin-top:.25rem}
.fc-seuil--root.est-pret .fc-seuil__progress{opacity:.26}
.fc-seuil--root .fc-seuil__actions{display:grid;gap:.7rem;margin-top:.2rem}
.fc-active-stage__languages{display:flex;gap:.85rem;align-items:center}
.fc-active-stage__languages button{appearance:none;border:0;border-bottom:1px solid transparent;background:none;color:color-mix(in oklab,var(--ivoire) 42%,transparent);font:500 .58rem/1 var(--f-ui);letter-spacing:.2em;padding:.45rem .08rem;cursor:pointer;transition:color .35s,border-color .35s,transform .45s var(--ease-sortie)}
.fc-active-stage__languages button:hover,.fc-active-stage__languages button:focus-visible{color:var(--ivoire)}
.fc-active-stage__languages button.est-active{color:var(--ivoire);border-color:var(--filet-or);transform:translateY(-2px)}
.fc-active-stage__enter-row{display:flex;align-items:center;gap:1.5rem;flex-wrap:wrap}
.fc-active-stage__coords{display:flex;align-items:center;gap:.65rem}.fc-active-stage__coords i{width:18px;height:1px;background:var(--filet-or)}.fc-active-stage__coords b{font-weight:500;color:color-mix(in oklab,var(--ivoire) 48%,transparent);letter-spacing:.16em}

.fc-seuil--root.est-pret .fc-active-stage__slab--a{transform:translate3d(-.9vw,.35vh,20px)}
.fc-seuil--root.est-pret .fc-active-stage__slab--b{transform:translate3d(0,-.55vh,54px);filter:grayscale(.24) saturate(.72) contrast(1.14) brightness(.76)}
.fc-seuil--root.est-pret .fc-active-stage__slab--c{transform:translate3d(.9vw,.2vh,0)}
.fc-seuil--root.est-ouverture .fc-active-stage__monolith{transform:translate3d(calc(var(--fc-stage-x)*18px),-50%,0) scale(1.045);transition:transform 1.35s var(--ease-camera),filter 1.1s var(--ease-doux);filter:brightness(1.16) drop-shadow(0 38px 80px oklch(.01 0 0/.5))}
.fc-seuil--root.est-ouverture .fc-seuil__centre,.fc-seuil--root.est-ouverture .fc-seuil__top,.fc-seuil--root.est-ouverture .fc-seuil__bottom{transform:translateY(-8px) scale(.985)}

@media (max-width:900px){
  .fc-active-stage__monolith{right:-5vw;width:48vw;height:58vh;top:39%;opacity:.78}
  .fc-seuil--root .fc-seuil__centre{width:100%;padding-left:0;align-self:end;margin-bottom:8svh}
  .fc-active-stage__title span{font-size:clamp(4rem,18vw,7rem)}
  .fc-active-stage__title em{font-size:clamp(2.5rem,11vw,4.7rem);margin-left:clamp(1rem,9vw,4rem)}
  .fc-seuil--root .fc-seuil__hint{max-width:27rem;padding-right:5vw}
}
@media (max-width:620px){
  .fc-active-stage__monolith{right:-20vw;width:72vw;height:48vh;top:32%;opacity:.66}
  .fc-active-stage__phase{grid-template-columns:auto 3.5rem;}.fc-active-stage__phase b{display:none}
  .fc-active-stage__enter-row{align-items:flex-start;flex-direction:column;gap:.05rem}
  .fc-seuil--root .fc-seuil__bottom>span:first-child{max-width:58%}
}
@media (prefers-reduced-motion:reduce){
  .fc-seuil--root.fc-active-stage{animation:none}
  .fc-active-stage__field,.fc-active-stage__vein{display:none!important}
  .fc-active-stage__monolith{transform:translate3d(0,-50%,0)!important}
  .fc-active-stage__slab{transform:none!important;transition:none!important}
}
.fc-active-stage__dust{position:absolute;inset:0;z-index:-4;width:100%;height:100%;pointer-events:none;mix-blend-mode:screen;opacity:.82;filter:blur(.08px)}
.fc-seuil--root.est-pret .fc-active-stage__dust{opacity:.62;transition:opacity 1.1s var(--ease-doux)}
.fc-seuil--root.est-ouverture .fc-active-stage__dust{opacity:1;filter:brightness(1.4);transition:opacity .4s,filter .55s}
@media (prefers-reduced-motion:reduce){.fc-active-stage__dust{display:none!important}}
@media (max-width:760px){
  .fc-seuil--root.est-pret .fc-seuil__actions{opacity:1!important;transform:none!important;pointer-events:auto!important}
}
@media (max-width:760px){
  .fc-seuil--root.est-pret .fc-seuil__actions{opacity:1!important;transform:none!important;pointer-events:auto!important;transition:none!important}
}

/* V27.5.3 — HOME HUMANITÉ / lisibilité / garde-fou WebGL */
.fc-heros__scene--humanite{background:#07060C;isolation:isolate}
.fc-heros__scene--humanite picture,.fc-heros__scene--humanite img{position:absolute;inset:0;width:100%;height:100%;display:block}
.fc-heros__scene--humanite img{object-fit:cover;object-position:50% 48%;filter:saturate(.72) contrast(1.08) brightness(.62) hue-rotate(8deg);transform:scale(1.018);animation:fc-humanite-camera 18s cubic-bezier(.2,.7,.2,1) both}
.fc-heros__scene--humanite::before{content:"";position:absolute;inset:0;z-index:2;background:radial-gradient(circle at 67% 38%,transparent 0 18%,rgba(6,7,14,.20) 48%,rgba(6,7,14,.56) 100%),linear-gradient(90deg,rgba(5,6,12,.68) 0%,rgba(5,6,12,.20) 48%,rgba(5,6,12,.38) 100%);pointer-events:none}
.fc-heros--couture .fc-heros__corps,.fc-heros--couture .fc-heros__pied{position:relative;z-index:8}
.fc-heros--couture .fc-heros__titre,.fc-heros--couture .fc-label,.fc-heros--couture .fc-sous{opacity:1!important;visibility:visible!important}
.fc-heros--couture .fc-heros__titre{text-shadow:0 3px 26px rgba(2,3,10,.60),0 24px 80px rgba(2,3,10,.42)}
.fc-heros--couture .fc-sous{color:rgba(238,242,250,.90);text-shadow:0 2px 18px rgba(2,3,10,.82)}
.fc-recit__plan picture,.fc-recit__plan img{display:block;width:100%;height:100%}.fc-recit__plan img{object-fit:cover}
.fc-recit__plan canvas{opacity:.12!important;mix-blend-mode:soft-light!important;pointer-events:none!important}
@keyframes fc-humanite-camera{from{transform:scale(1.06) translate3d(0,1.2%,0)}to{transform:scale(1.018) translate3d(0,0,0)}}
@media(max-width:760px){.fc-heros__scene--humanite img{object-position:50% 50%;filter:saturate(.76) contrast(1.05) brightness(.55)}.fc-heros__scene--humanite::before{background:linear-gradient(180deg,rgba(4,4,4,.2),rgba(4,4,4,.48) 58%,rgba(4,4,4,.78))}}
@media(prefers-reduced-motion:reduce){.fc-heros__scene--humanite img{animation:none;transform:none}}


/* ═══════════════════════════════════════════════════════════════════════
   V27.5.4 — BENCHMARK SIGNATURE
   Active Theory × Immersive Garden × Resn — couche additive, sans mosaïque
   ═══════════════════════════════════════════════════════════════════════ */
:root{--fc-b54-x:50%;--fc-b54-y:42%;--fc-b54-scroll:0;--fc-b54-speed:0;--fc-b54-gold:oklch(.78 .055 78);--fc-b54-ivory:oklch(.94 .018 82)}
.fc-b54-field{position:fixed;inset:0;z-index:2147480000;pointer-events:none;opacity:.72;mix-blend-mode:screen;transition:opacity .8s var(--ease-doux)}
body:not(.fc-b54-ready) .fc-b54-field{opacity:0}
.fc-b54-aura{position:fixed;inset:-18vmax;z-index:6;pointer-events:none;background:radial-gradient(34vmax 28vmax at var(--fc-b54-x) var(--fc-b54-y),oklch(.82 .045 80/.07),transparent 62%);mix-blend-mode:screen;filter:blur(18px);opacity:.75;transform:translateZ(0)}
.fc-b54-scan{position:fixed;left:0;right:0;top:0;height:1px;z-index:2147480001;pointer-events:none;background:linear-gradient(90deg,transparent 4%,oklch(.83 .055 79/.0),oklch(.83 .055 79/.55),transparent 76%);transform:translateY(calc(var(--fc-b54-scroll)*100vh));opacity:.24}
.fc-b54-corners{position:fixed;inset:clamp(14px,2.2vw,34px);z-index:2147480001;pointer-events:none;border:1px solid transparent;background:linear-gradient(90deg,var(--filet-or),transparent 12%,transparent 88%,var(--filet-or)) top/100% 1px no-repeat,linear-gradient(90deg,var(--filet-or),transparent 12%,transparent 88%,var(--filet-or)) bottom/100% 1px no-repeat;opacity:.16}
.fc-b54-chapter{position:fixed;right:clamp(18px,3vw,48px);top:50%;z-index:120;display:flex;align-items:center;gap:.7rem;transform:translateY(-50%) rotate(90deg) translateX(50%);transform-origin:right center;font:500 .55rem/1 var(--f-ui);letter-spacing:.2em;text-transform:uppercase;color:color-mix(in oklab,var(--texte) 52%,transparent);pointer-events:none}
.fc-b54-chapter i{display:block;width:42px;height:1px;background:var(--filet-or)}.fc-b54-chapter b{font-weight:500;max-width:16rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
[data-fc-b54-section]{position:relative;isolation:isolate}
[data-fc-b54-section]::after{content:"";position:absolute;inset:0;z-index:20;pointer-events:none;background:linear-gradient(110deg,transparent 30%,oklch(.92 .018 80/.035) 48%,transparent 65%);transform:translate3d(-48%,0,0);opacity:0}
[data-fc-b54-section].fc-b54-active::after{animation:fc-b54-sweep 2.4s var(--ease-camera) both}
@keyframes fc-b54-sweep{0%{transform:translate3d(-45%,0,0);opacity:0}22%{opacity:.75}100%{transform:translate3d(48%,0,0);opacity:0}}

/* Immersive Garden : révélation optique des médias, sans duplication du DOM */
.fc-b54-media{overflow:hidden;isolation:isolate;--fc-b54-rx:0deg;--fc-b54-ry:0deg;transform-style:preserve-3d;transition:transform .95s cubic-bezier(.19,1,.22,1),filter .8s cubic-bezier(.19,1,.22,1);will-change:transform}
.fc-b54-media>picture,.fc-b54-media>img,.fc-b54-media>video{transform:scale(1.045);transition:transform 1.6s cubic-bezier(.19,1,.22,1),filter 1.1s ease;filter:saturate(.78) contrast(1.04)}
.fc-b54-media.fc-b54-visible>picture,.fc-b54-media.fc-b54-visible>img,.fc-b54-media.fc-b54-visible>video{transform:scale(1)}
.fc-b54-media::after{content:"";position:absolute;inset:-1px;z-index:5;pointer-events:none;background:linear-gradient(115deg,transparent 20%,oklch(.9 .025 82/.12) 48%,transparent 72%);transform:translateX(-115%);mix-blend-mode:screen}
.fc-b54-media:hover::after{transform:translateX(115%);transition:transform 1.2s cubic-bezier(.19,1,.22,1)}
.fc-b54-media:hover{transform:perspective(1100px) rotateX(var(--fc-b54-rx)) rotateY(var(--fc-b54-ry)) translateZ(0)}

/* Resn : élasticité contrôlée, jamais cartoon sur l'identité */
[data-fc-b54-elastic]{position:relative;transition:transform .62s cubic-bezier(.16,1.45,.34,1),border-color .45s,color .45s,background-color .45s}
[data-fc-b54-elastic]:hover{transform:translateY(-3px) scale(1.012)}
[data-fc-b54-elastic]:active{transform:translateY(1px) scale(.985);transition-duration:.12s}
[data-fc-b54-elastic]::before{content:"";position:absolute;inset:-1px;border-radius:inherit;pointer-events:none;border:1px solid color-mix(in oklab,var(--ornement) 42%,transparent);opacity:0;transform:scale(.92)}
[data-fc-b54-elastic]:hover::before{opacity:.42;transform:scale(1.035);transition:opacity .35s,transform .72s cubic-bezier(.19,1,.22,1)}

/* Accueil : photographie intégrale + profondeur de lumière, aucun découpage */
body[data-fc-page="accueil"] .fc-heros--couture{min-height:max(760px,100svh);overflow:hidden}
body[data-fc-page="accueil"] .fc-heros__scene--humanite{transform:translate3d(calc(var(--fc-home-x,0)*-5px),calc(var(--fc-home-y,0)*-4px),0) scale(1.015);transition:filter .8s ease;will-change:transform}
body[data-fc-page="accueil"] .fc-heros__scene--humanite::after{content:"";position:absolute;inset:-12%;z-index:3;pointer-events:none;background:radial-gradient(38% 46% at var(--fc-b54-x) var(--fc-b54-y),oklch(.91 .04 82/.13),transparent 70%),linear-gradient(105deg,transparent 28%,oklch(.88 .03 79/.055) 50%,transparent 67%);mix-blend-mode:screen;filter:blur(9px)}
body[data-fc-page="accueil"] .fc-heros__architecture{z-index:7;opacity:.7}
body[data-fc-page="accueil"] .fc-heros__corps{max-width:min(74rem,84vw)}
body[data-fc-page="accueil"] .fc-heros__titre{font-size:clamp(4.7rem,10vw,11rem);line-height:.78;letter-spacing:-.055em}
body[data-fc-page="accueil"] .fc-heros__titre em{font-size:.69em;display:inline-block;margin-left:clamp(1.4rem,7vw,8rem)}
body[data-fc-page="accueil"] .fc-heros__pied{backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);background:linear-gradient(90deg,oklch(.08 .005 290/.34),transparent 82%);padding:1rem 1.1rem 1rem 0;border-top:1px solid color-mix(in oklab,var(--ornement) 22%,transparent)}

/* typo motion : masque de ligne, lisibilité prioritaire */
.fc-b54-typeclip{overflow:hidden;display:block}.fc-b54-typeclip>.fc-b54-typeinner{display:inline-block;transform:translateY(118%) rotate(.8deg);opacity:.01;transition:transform 1.15s cubic-bezier(.19,1,.22,1),opacity .45s ease}
.fc-b54-typeclip.fc-b54-visible>.fc-b54-typeinner{transform:translateY(0) rotate(0);opacity:1}

@media(max-width:900px){.fc-b54-chapter,.fc-b54-corners{display:none}.fc-b54-field{opacity:.42}body[data-fc-page="accueil"] .fc-heros__titre{font-size:clamp(3.9rem,15vw,7.2rem)}body[data-fc-page="accueil"] .fc-heros__titre em{margin-left:0}.fc-b54-media:hover{transform:none}}
@media(prefers-reduced-motion:reduce){.fc-b54-field,.fc-b54-aura,.fc-b54-scan{display:none!important}[data-fc-b54-section].fc-b54-active::after{animation:none}.fc-b54-media,.fc-b54-media>picture,.fc-b54-media>img,.fc-b54-media>video,[data-fc-b54-elastic],.fc-b54-typeclip>.fc-b54-typeinner{transition:none!important;transform:none!important;opacity:1!important}}

/* ═══════════════════════════════════════════════════════════════════════════
   PALAZZO PRISMATICO — COUCHE BOTTEGA (build K3, directive BOT §III–§X)
   Principes transposés : CONTINUITÉ, SUR-MESURE, SERVICE, TRANSMISSION.
   Chaque composant réutilise le moteur existant : data-fc-monte / data-fc-ligne
   / data-fc-cascade pour les reveals sous masque, data-fc-aimant pour le
   magnetic, les tokens du §0 pour la matière. Aucun canal ni chiffre fabriqué.
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── A. VOTRE ENGAGEMENT — Patronage Sur Mesure (§IV) ─────────────────────
   La première question n'est jamais le montant : c'est la continuité.     */

.fc-engagement{position:relative;padding-block:var(--e-6)}
.fc-engagement__question{
  font-family:var(--f-signature);font-size:var(--t-titre);line-height:var(--lh-titre);
  letter-spacing:var(--ls-titre);max-width:14ch;margin:0 0 var(--e-5);
}
.fc-engagement__question em{font-style:italic;color:var(--accent)}
.fc-engagement__etapes{display:grid;gap:var(--e-5);counter-reset:engagement}
.fc-engagement__etape{border:0;padding:0;margin:0;min-width:0}
.fc-engagement__etape>legend{
  display:flex;align-items:baseline;gap:var(--e-2);padding:0;margin-bottom:var(--e-3);
  font-family:var(--f-ui);font-size:var(--t-label);letter-spacing:var(--ls-label);
  text-transform:uppercase;color:var(--texte-tres-doux);
}
.fc-engagement__etape>legend::before{
  counter-increment:engagement;content:counter(engagement,decimal-leading-zero);
  font-family:var(--f-signature);font-size:var(--t-chapitre);letter-spacing:0;
  color:var(--ornement);font-variant-numeric:lining-nums;
}
.fc-engagement__choix{display:flex;flex-wrap:wrap;gap:var(--e-2)}
.fc-engagement__choix input{position:absolute;opacity:0;pointer-events:none}
.fc-engagement__choix label{
  cursor:pointer;user-select:none;padding:.9em 1.5em;border-radius:var(--r-plein);
  border:1px solid var(--filet);font-family:var(--f-editorial);font-size:1.22rem;
  font-weight:500;letter-spacing:.01em;color:var(--texte-doux);
  transition:color var(--d-micro) var(--ease-sortie),border-color var(--d-micro) var(--ease-sortie),
    background-color var(--d-micro) var(--ease-sortie),transform var(--d-micro) var(--ease-sortie),
    box-shadow var(--d-service) var(--ease-sortie);
}
.fc-engagement__choix label:hover{color:var(--texte);border-color:var(--ornement);transform:translateY(-2px)}
.fc-engagement__choix input:focus-visible+label{outline:2px solid var(--accent);outline-offset:3px}
.fc-engagement__choix input:checked+label{
  color:var(--surface);background:var(--accent);border-color:transparent;
  box-shadow:var(--sh-2),0 0 0 1px oklch(1 0 0 / .08) inset;
}
.fc-engagement__resume{
  margin-top:var(--e-5);padding:var(--e-4);border:1px solid var(--filet);border-radius:var(--r-2);
  background:oklch(1 0 0 / .02);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);
}
.fc-jour .fc-engagement__resume{background:oklch(.1220 .014 var(--h-ink) / .025)}
.fc-engagement__resume-titre{
  font-family:var(--f-ui);font-size:var(--t-label);letter-spacing:var(--ls-label);
  text-transform:uppercase;color:var(--texte-tres-doux);margin-bottom:var(--e-2);
}
.fc-engagement__phrase{
  font-family:var(--f-editorial);font-size:clamp(1.35rem,2.2vw,1.9rem);line-height:1.35;
  color:var(--texte);min-height:1.4em;
}
.fc-engagement__phrase em{color:var(--accent);font-style:italic}
.fc-engagement__actions{margin-top:var(--e-4);display:flex;flex-wrap:wrap;gap:var(--e-3);align-items:center}
.fc-engagement__note{font-family:var(--f-editorial);font-style:italic;color:var(--texte-tres-doux);font-size:1.05rem}

/* ── B. DIALOGUE PRIVÉ (§V) — la conciergerie institutionnelle ──────────── */

.fc-prive{
  position:relative;margin-block:var(--e-6);padding:var(--e-5) var(--e-4);
  border:1px solid var(--filet);border-radius:var(--r-2);overflow:hidden;
  background:
    radial-gradient(120% 140% at 12% 0%,oklch(.30 .10 var(--h-or) / .16),transparent 55%),
    radial-gradient(100% 120% at 92% 100%,oklch(.32 .12 var(--h-vio) / .14),transparent 60%),
    var(--surface-2);
  box-shadow:var(--sh-3);
}
.fc-prive::after{ /* grain fin de la matière Palazzo */
  content:"";position:absolute;inset:0;pointer-events:none;opacity:.05;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)'/%3E%3C/svg%3E");
}
.fc-prive__label{
  font-family:var(--f-ui);font-size:var(--t-label);letter-spacing:var(--ls-label);
  text-transform:uppercase;color:var(--ornement);margin-bottom:var(--e-3);
}
.fc-prive__titre{
  font-family:var(--f-signature);font-size:var(--t-chapitre);line-height:var(--lh-titre);
  letter-spacing:var(--ls-titre);margin-bottom:var(--e-3);max-width:22ch;
}
.fc-prive__texte{font-family:var(--f-editorial);font-size:1.28rem;line-height:1.5;color:var(--texte-doux);max-width:52ch;margin-bottom:var(--e-4)}
.fc-prive__canaux{display:flex;flex-wrap:wrap;gap:var(--e-3);list-style:none}
.fc-prive__canal{
  display:inline-flex;align-items:center;gap:.7em;padding:1em 1.7em;border-radius:var(--r-plein);
  border:1px solid var(--filet);color:var(--texte);text-decoration:none;
  font-family:var(--f-ui);font-size:.86rem;letter-spacing:.12em;text-transform:uppercase;
  transition:border-color var(--d-micro) var(--ease-sortie),background-color var(--d-micro) var(--ease-sortie),transform var(--d-micro) var(--ease-sortie);
}
.fc-prive__canal:hover{border-color:var(--ornement);background:oklch(1 0 0 / .04);transform:translateY(-2px)}
.fc-prive__canal:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.fc-prive__canal--maj{
  background:var(--accent);color:var(--surface);border-color:transparent;
  box-shadow:var(--sh-2);
}
.fc-prive__canal--maj:hover{background:var(--violet-vif);color:var(--albe)}
.fc-prive__canal i{font-style:normal;font-size:1.1em;line-height:1}

/* ── C. PRINCIPI VIVENTI (§VII) — déclarations institutionnelles ────────── */

.fc-principes{padding-block:var(--e-5)}
.fc-principe{
  display:grid;grid-template-columns:minmax(3rem,6rem) 1fr;gap:var(--e-3);
  padding-block:var(--e-4);border-top:1px solid var(--filet);align-items:start;
}
.fc-principe:last-child{border-bottom:1px solid var(--filet)}
.fc-principe__num{
  font-family:var(--f-signature);font-size:var(--t-chapitre);color:var(--ornement);
  font-variant-numeric:lining-nums;line-height:1;
}
.fc-principe__titre{
  font-family:var(--f-signature);font-size:clamp(1.9rem,4vw,3.4rem);line-height:var(--lh-titre);
  letter-spacing:var(--ls-titre);margin-bottom:var(--e-2);
}
.fc-principe__texte{font-family:var(--f-editorial);font-size:1.24rem;line-height:1.55;color:var(--texte-doux);max-width:56ch}
.fc-principe__source{
  display:inline-block;margin-top:var(--e-2);font-family:var(--f-ui);font-size:var(--t-label);
  letter-spacing:var(--ls-label);text-transform:uppercase;color:var(--ornement);text-decoration:none;
  border-bottom:1px solid var(--filet-or);padding-bottom:.35em;
  transition:color var(--d-micro) var(--ease-sortie);
}
.fc-principe__source:hover{color:var(--accent)}
@media(max-width:700px){.fc-principe{grid-template-columns:1fr;gap:var(--e-2)}}

/* ── D. PROOF ATELIER (§VIII) — atelier de lecture de la preuve ─────────── */

.fc-atelier{padding-block:var(--e-5)}
.fc-atelier__entetes{
  display:grid;grid-template-columns:1.1fr 1fr .8fr .7fr;gap:var(--e-3);
  padding-bottom:var(--e-2);border-bottom:1px solid var(--filet);
  font-family:var(--f-ui);font-size:var(--t-label);letter-spacing:var(--ls-label);
  text-transform:uppercase;color:var(--texte-tres-doux);
}
.fc-atelier__ligne{
  display:grid;grid-template-columns:1.1fr 1fr .8fr .7fr;gap:var(--e-3);align-items:baseline;
  padding-block:var(--e-3);border-bottom:1px solid var(--filet);
  transition:background-color var(--d-micro) var(--ease-sortie),transform var(--d-micro) var(--ease-sortie);
}
.fc-atelier__ligne:hover{background:oklch(1 0 0 / .025)}
.fc-jour .fc-atelier__ligne:hover{background:oklch(.1220 .014 var(--h-ink) / .03)}
.fc-atelier__etape{font-family:var(--f-signature);font-size:1.45rem;line-height:1.15;color:var(--texte)}
.fc-atelier__doc{font-family:var(--f-editorial);font-size:1.12rem;color:var(--texte-doux)}
.fc-atelier__doc a{color:var(--accent);text-decoration:none;border-bottom:1px solid var(--filet)}
.fc-atelier__doc a:hover{border-color:var(--accent)}
.fc-atelier__date,.fc-atelier__statut{font-family:var(--f-ui);font-size:.82rem;letter-spacing:.08em;color:var(--texte-tres-doux)}
.fc-atelier__statut{color:var(--jade)}
.fc-atelier__note{margin-top:var(--e-3);font-family:var(--f-editorial);font-style:italic;color:var(--texte-tres-doux);font-size:1.05rem}
@media(max-width:820px){
  .fc-atelier__entetes{display:none}
  .fc-atelier__ligne{grid-template-columns:1fr;gap:.4em}
}

/* ── E. LA DIGNITÉ EN MOUVEMENT (§VI) — chapitre cinématographique ─────── */

.fc-dm{position:relative;overflow:hidden;background:var(--obsidienne)}
.fc-dm__media{position:relative;aspect-ratio:16/8;overflow:hidden}
.fc-dm__media video{width:100%;height:100%;object-fit:cover;display:block;
  filter:saturate(.68) contrast(1.1) brightness(.72) hue-rotate(8deg)}
.fc-dm__media::after{content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,oklch(.1220 .014 var(--h-ink) / .55),transparent 30% 70%,oklch(.1220 .014 var(--h-ink) / .75))}
.fc-dm__recit{position:relative;z-index:2;margin-top:calc(var(--e-6) * -1);padding:0 var(--marge) var(--e-6)}
.fc-dm__mot{
  font-family:var(--f-signature);font-size:clamp(2.6rem,7vw,6.4rem);line-height:.94;
  letter-spacing:var(--ls-monument);color:var(--albe);text-shadow:0 3px 30px oklch(.1 .02 var(--h-ink) / .65);
}
.fc-dm__mot em{font-style:italic;color:var(--glycine)}
.fc-dm__legende{
  margin-top:var(--e-3);max-width:46ch;font-family:var(--f-editorial);font-size:1.3rem;
  line-height:1.5;color:oklch(.9198 .008 252);text-shadow:0 2px 16px oklch(.1 .02 var(--h-ink) / .8);
}
.fc-dm__gestes{
  display:flex;flex-wrap:wrap;gap:var(--e-2) var(--e-4);margin-top:var(--e-4);list-style:none;
  font-family:var(--f-ui);font-size:var(--t-label);letter-spacing:var(--ls-label);
  text-transform:uppercase;color:oklch(.7780 .09 276);
}
.fc-dm__gestes li{display:flex;align-items:center;gap:var(--e-2)}
.fc-dm__gestes li+li::before{content:"";width:2.2rem;height:1px;background:var(--filet-nuit);margin-right:var(--e-2)}
@media(max-width:700px){.fc-dm__media{aspect-ratio:3/4}}

/* ── Reduced motion : toute la couche retombe en lecture calme ─────────── */
@media(prefers-reduced-motion:reduce){
  .fc-engagement__choix label,.fc-prive__canal,.fc-atelier__ligne{transition:none!important;transform:none!important}
  .fc-dm__media video{animation:none!important}
}

/* ── F. CERTIFICATO DI CONTINUITÀ (§III) — chronologie du parcours donateur
   Structure éditoriale uniquement : aucune donnée personnelle, aucune
   blockchain, aucune gamification. Le ruban de la preuve est la ligne.   */

.fc-continuite{padding-block:var(--e-5)}
.fc-continuite__rail{
  display:grid;grid-template-columns:repeat(6,1fr);gap:var(--e-2);
  position:relative;padding-top:var(--e-4);list-style:none;
}
.fc-continuite__rail::before{
  content:"";position:absolute;top:.55rem;left:0;right:0;height:1px;
  background:linear-gradient(90deg,transparent,var(--filet-or) 12% 88%,transparent);
}
.fc-continuite__etape{position:relative;padding-top:var(--e-3)}
.fc-continuite__etape::before{
  content:"";position:absolute;top:0;left:0;width:.72rem;height:.72rem;border-radius:50%;
  border:1px solid var(--ornement);background:var(--surface);
  box-shadow:0 0 12px oklch(.6 .12 var(--h-or) / .35);
}
.fc-continuite__etape strong{
  display:block;font-family:var(--f-ui);font-size:var(--t-label);letter-spacing:var(--ls-label);
  text-transform:uppercase;color:var(--texte);margin-bottom:.5em;
}
.fc-continuite__etape span{font-family:var(--f-editorial);font-size:1.05rem;line-height:1.4;color:var(--texte-tres-doux)}
@media(max-width:900px){
  .fc-continuite__rail{grid-template-columns:1fr 1fr;gap:var(--e-3)}
  .fc-continuite__rail::before{display:none}
}

/* ── G. DIALOGUES & PARTENAIRES (§IX–§X) — composants PRÊTS, NON PUBLIÉS ──
   Le corpus actuel ne contient ni dialogue publiable ni partenaire vérifié
   (« Partenaires : en préparation » — trasparenza). Ces styles attendent le
   contenu réel ; aucune page ne les référence encore.                     */

.fc-dialogues,.fc-partenaires{padding-block:var(--e-5)}
.fc-dialogue-card,.fc-partenaire-card{
  border-top:1px solid var(--filet);padding-block:var(--e-4);
  display:grid;grid-template-columns:minmax(4rem,8rem) 1fr;gap:var(--e-3);align-items:start;
}
.fc-dialogue-card__regard,.fc-partenaire-card__role{
  font-family:var(--f-ui);font-size:var(--t-label);letter-spacing:var(--ls-label);
  text-transform:uppercase;color:var(--ornement);
}
.fc-dialogue-card__titre,.fc-partenaire-card__nom{
  font-family:var(--f-signature);font-size:clamp(1.8rem,3.4vw,3rem);line-height:var(--lh-titre);
  letter-spacing:var(--ls-titre);margin-bottom:var(--e-2);
}
.fc-dialogue-card__texte,.fc-partenaire-card__texte{
  font-family:var(--f-editorial);font-size:1.22rem;line-height:1.55;color:var(--texte-doux);max-width:56ch;
}
@media(max-width:700px){.fc-dialogue-card,.fc-partenaire-card{grid-template-columns:1fr}}

/* ── H. NAVIGATION CINQ MONDES (§XI) — overlay Palazzo ────────────────────
   Fond obsidienne teinté, blur contenu, grands titres Bodoni, index Manrope.
   Les liens proviennent du DOM existant : aucune URL n'est cassée, aucune
   destination institutionnelle n'est supprimée.                            */

.fc-mondes-ouvre{
  display:inline-flex;align-items:center;gap:.6em;background:none;border:1px solid var(--filet-nuit);
  border-radius:var(--r-plein);padding:.62em 1.15em;cursor:pointer;
  font-family:var(--f-ui);font-size:var(--t-label);letter-spacing:var(--ls-label);
  text-transform:uppercase;color:var(--ivoire);
  transition:border-color var(--d-micro) var(--ease-sortie),background-color var(--d-micro) var(--ease-sortie);
}
.fc-mondes-ouvre:hover{border-color:var(--ornement);background:oklch(1 0 0 / .05)}
.fc-mondes-ouvre:focus-visible{outline:2px solid var(--glycine);outline-offset:3px}

.fc-mondes{
  position:fixed;inset:0;z-index:120;display:flex;flex-direction:column;justify-content:center;
  padding:var(--marge);visibility:hidden;pointer-events:none;
  background:oklch(.1220 .02 264 / .78);
  backdrop-filter:blur(22px) saturate(1.2);-webkit-backdrop-filter:blur(22px) saturate(1.2);
  opacity:0;transition:opacity var(--d-service) var(--ease-sortie),visibility 0s var(--d-service);
}
.fc-mondes.est-ouvert{visibility:visible;pointer-events:auto;opacity:1;transition:opacity var(--d-service) var(--ease-sortie)}
.fc-mondes__fermer{
  position:absolute;top:var(--e-4);right:var(--marge);background:none;border:0;cursor:pointer;
  font-family:var(--f-ui);font-size:var(--t-label);letter-spacing:var(--ls-label);
  text-transform:uppercase;color:var(--pierre);padding:1em;
}
.fc-mondes__fermer:hover{color:var(--albe)}
.fc-mondes__fermer:focus-visible{outline:2px solid var(--glycine);outline-offset:3px}
.fc-mondes__grille{display:grid;grid-template-columns:repeat(5,1fr);gap:var(--e-4)}
.fc-mondes__monde{overflow:hidden}
.fc-mondes__monde-titre{
  display:block;font-family:var(--f-signature);font-size:clamp(1.7rem,2.6vw,2.6rem);
  line-height:1.02;letter-spacing:var(--ls-titre);color:var(--albe);text-decoration:none;
  margin-bottom:var(--e-3);transform:translateY(112%);
  transition:transform var(--d-reveal) var(--ease-sortie),color var(--d-micro) var(--ease-sortie);
}
.fc-mondes.est-ouvert .fc-mondes__monde-titre{transform:translateY(0)}
.fc-mondes__monde:nth-child(2) .fc-mondes__monde-titre{transition-delay:.06s}
.fc-mondes__monde:nth-child(3) .fc-mondes__monde-titre{transition-delay:.12s}
.fc-mondes__monde:nth-child(4) .fc-mondes__monde-titre{transition-delay:.18s}
.fc-mondes__monde:nth-child(5) .fc-mondes__monde-titre{transition-delay:.24s}
.fc-mondes__monde-titre:hover{color:var(--glycine)}
.fc-mondes__monde ul{list-style:none;opacity:0;transform:translateY(12px);
  transition:opacity var(--d-service) var(--ease-sortie) .3s,transform var(--d-service) var(--ease-sortie) .3s}
.fc-mondes.est-ouvert .fc-mondes__monde ul{opacity:1;transform:none}
.fc-mondes__monde li a{
  display:block;padding:.42em 0;font-family:var(--f-ui);font-size:.86rem;letter-spacing:.1em;
  text-transform:uppercase;color:var(--pierre);text-decoration:none;
  transition:color var(--d-instant) var(--ease-sortie),padding-left var(--d-micro) var(--ease-sortie);
}
.fc-mondes__monde li a:hover{color:var(--albe);padding-left:.5em}
.fc-mondes__monde li a:focus-visible{outline:2px solid var(--glycine);outline-offset:2px}
.fc-mondes__monde li a[aria-current="page"]{color:var(--glycine)}
@media(max-width:960px){.fc-mondes__grille{grid-template-columns:1fr 1fr;gap:var(--e-3);overflow-y:auto}}
@media(max-width:560px){.fc-mondes__grille{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){
  .fc-mondes,.fc-mondes__monde-titre,.fc-mondes__monde ul{transition:none!important;transform:none!important}
  .fc-mondes__monde ul{opacity:1}
}

/* ── I. CHAMBRES ÉDITORIALES PHOTO (K3) — domaines d'action ───────────────
   Vraies photographies, grading Palazzo froid, reveal par masque, zoom lent
   1.04–1.10, jamais de déformation de visage.                             */

.fc-chambres{display:grid;gap:var(--e-6);padding-block:var(--e-5)}
.fc-chambre{display:grid;grid-template-columns:1fr 1fr;gap:var(--e-4);align-items:center}
.fc-chambre:nth-child(even){direction:rtl}
.fc-chambre>*{direction:ltr}
.fc-chambre__media{position:relative;overflow:hidden;border-radius:var(--r-1);aspect-ratio:4/5;box-shadow:var(--sh-4)}
.fc-chambre__media img{width:100%;height:100%;object-fit:cover;display:block;
  filter:saturate(.78) contrast(1.06) brightness(.92) hue-rotate(6deg);
  transform:scale(1.04);transition:transform 2.4s var(--ease-camera),filter 1.2s var(--ease-doux)}
.fc-chambre:hover .fc-chambre__media img{transform:scale(1.09)}
.fc-chambre__media::after{content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(180deg,transparent 55%,oklch(.1220 .02 264 / .42))}
.fc-chambre__corps{padding:var(--e-3)}
.fc-chambre__label{font-family:var(--f-ui);font-size:var(--t-label);letter-spacing:var(--ls-label);
  text-transform:uppercase;color:var(--ornement);margin-bottom:var(--e-2)}
.fc-chambre__titre{font-family:var(--f-signature);font-size:clamp(2rem,4.4vw,3.8rem);
  line-height:var(--lh-titre);letter-spacing:var(--ls-titre);margin-bottom:var(--e-3)}
.fc-chambre__texte{font-family:var(--f-editorial);font-size:1.26rem;line-height:1.55;
  color:var(--texte-doux);max-width:44ch;margin-bottom:var(--e-3)}
.fc-chambre__lien{font-family:var(--f-ui);font-size:.86rem;letter-spacing:.14em;text-transform:uppercase;
  color:var(--accent);text-decoration:none;border-bottom:1px solid var(--filet);padding-bottom:.35em;
  transition:border-color var(--d-micro) var(--ease-sortie)}
.fc-chambre__lien:hover{border-color:var(--accent)}
.fc-chambre__credit{font-family:var(--f-ui);font-size:.72rem;letter-spacing:.06em;
  color:var(--texte-tres-doux);margin-top:var(--e-2)}
@media(max-width:820px){.fc-chambre{grid-template-columns:1fr;direction:ltr}.fc-chambre__media{aspect-ratio:3/4}}
@media(prefers-reduced-motion:reduce){.fc-chambre__media img{transform:none!important;transition:none!important}}

/* Triptyque de pauses visuelles dans La Dignité en Mouvement */
.fc-dm__triptyque{display:grid;grid-template-columns:1fr 1.4fr 1fr;gap:var(--e-2);
  padding:0 var(--marge) var(--e-5);background:var(--obsidienne)}
.fc-dm__triptyque figure{margin:0;overflow:hidden;border-radius:var(--r-1);box-shadow:var(--sh-3)}
.fc-dm__triptyque figure:nth-child(2){transform:translateY(calc(var(--e-4) * -1))}
.fc-dm__triptyque img{width:100%;height:100%;object-fit:cover;display:block;aspect-ratio:3/4;
  filter:saturate(.78) contrast(1.06) brightness(.9) hue-rotate(6deg)}
@media(max-width:700px){.fc-dm__triptyque{grid-template-columns:1fr}.fc-dm__triptyque figure:nth-child(2){transform:none}}

/* K3 — seuil : retrait du monolithe à dalles (barres verticales), la photographie humanité respire seule */
.fc-active-stage__monolith{display:none!important}

/* K3 — seuil racine : la vidéo héro reprend exactement le traitement de l'image */
.fc-seuil__scene video{width:100%;height:100%;object-fit:cover;display:block}
.fc-seuil--root .fc-seuil__scene video{opacity:.66;filter:saturate(.58) contrast(1.15) brightness(.68);transform:scale(1.08) translate3d(calc(var(--fc-stage-x)*-7px),calc(var(--fc-stage-y)*-5px),0);transition:filter 1.2s var(--ease-doux)}
@media (max-width:760px){.fc-seuil__scene video{opacity:.48;object-position:58% center;transform:none}}
@media (prefers-reduced-motion:reduce){.fc-seuil__scene video{transform:none}}

/* ==========================================================================
   CORRECTIFS QA FINALE 2026-08-24 — deux fails réels mesurés, rien d'autre.
   1) Entre 1101 et 1400 px, la grappe droite de l'en-tête (Ambiance +
      langues + MONDES) dépassait la fenêtre et le bouton MONDES était
      coupé. Les langues restent disponibles via MONDES ; la nav desktop
      et le burger (≤1100 px) sont inchangés.
   2) Sur le seuil en ≤760 px, la ligne météo (« CIEL CLAIR · COUCHER DU
      SOLEIL ») était coupée net au bord droit : ellipse élégante.
   ========================================================================== */
@media (min-width:1101px) and (max-width:1400px){
  .fc-entete__droite{gap:.55rem}
  .fc-entete__droite > .fc-langues{display:none}
  .fc-nav{gap:clamp(.7rem,1.3vw,1.4rem)}
}
@media (max-width:760px){
  .fc-seuil__geo [data-fc-seuil-climat]{max-width:52vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
}
