@charset "UTF-8";

                                             
                                                                       
                                                              

:root{
  --cv3-x:50vw;
  --cv3-y:38vh;
  --cv3-scroll:0;
  --cv3-metal:oklch(.84 .015 252.3);
  --cv3-paper:oklch(.93 .012 85);
  --cv3-ink:oklch(.105 .006 252.3);
  --cv3-ease:cubic-bezier(.19,1,.22,1);
  --cv3-cut:cubic-bezier(.7,0,.2,1);
}

                                                                          
                                                                       
                                                                       
body.cv3-nonhome .cv3-hero-stage::after{
  background:
    linear-gradient(104deg,transparent 28%,oklch(.96 .012 85 / .13) 49.3%,transparent 61%),
    radial-gradient(36% 48% at 76% 26%,oklch(.95 .014 85 / .11),transparent 72%);
  box-shadow:inset 0 0 0 1px oklch(.91 .012 85 / .14),inset 0 -80px 120px rgb(2 4 7 / .16);
  mix-blend-mode:screen;
}

body.cv3-nonhome .cv3-hero-stage::after,
body.cv3-nonhome .cv3-media::before{
  content:"";
  position:absolute;
  pointer-events:none;
}

body.cv3-nonhome .cv3-media::before{
  inset:1px;
  z-index:2;
  opacity:.82;
  background:
    repeating-linear-gradient(112deg,transparent 0 34px,oklch(.98 .01 85 / .055) 35px 36px,transparent 37px 78px),
    linear-gradient(90deg,oklch(.96 .012 85 / .24),transparent 12% 88%,oklch(.78 .014 252.3 / .17));
  mix-blend-mode:soft-light;
  mask-image:linear-gradient(90deg,transparent,black 12% 88%,transparent);
}

/* Le verre bouge avec le cadrage de l'image, jamais avec les titres. */
body.cv3-nonhome .cv3-media::after{
  opacity:.82;
  background:
    radial-gradient(46% 68% at var(--cv3-media-x) var(--cv3-media-y),oklch(.98 .01 85 / .22),transparent 69%),
    linear-gradient(128deg,transparent 34%,oklch(.92 .014 85 / .12) 48%,transparent 61%),
    linear-gradient(180deg,transparent 53%,oklch(.06 .006 252.3 / .62));
}

@supports (animation-timeline:view()){
  body.cv3-family-project .cv3-media::before,
  body.cv3-family-dubai .cv3-media::before{
    animation:cv3-etch-drift linear both;
    animation-timeline:view();
    animation-range:entry 0% exit 100%;
  }
  @keyframes cv3-etch-drift{
    from{transform:translate3d(-7%,0,0);opacity:.2;}
    48%{opacity:.9;}
    to{transform:translate3d(7%,0,0);opacity:.36;}
  }
}

/* Dramaturgies distinctes : Dubaï lumineux/minéral, projets photographiques,
   Portale cérémoniel. La couleur est une source, pas une UI. */
body.cv3-family-dubai .cv3-hero-stage::after{
  background:
    linear-gradient(106deg,oklch(.08 .008 252.3 / .34),transparent 46%),
    radial-gradient(42% 62% at 83% 21%,oklch(.94 .014 85 / .2),transparent 74%),
    repeating-linear-gradient(118deg,transparent 0 72px,oklch(.94 .012 85 / .06) 73px 74px);
}
body.cv3-family-project .cv3-media{box-shadow:0 32px 92px rgb(0 0 0 / .28),0 1px 0 oklch(.96 .012 85 / .16) inset;}
body.cv3-family-portale .cv3-hero-stage::after{
  background:
    conic-gradient(from 212deg at 74% 36%,transparent,oklch(.96 .014 85 / .15),transparent 24%),
    linear-gradient(105deg,oklch(.04 .004 252.3 / .58),transparent 58%);
}

@media (max-width:760px){
  body.cv3-nonhome .cv3-hero-stage::after{opacity:.58;box-shadow:inset 0 -48px 72px rgb(2 4 7 / .14);}
  body.cv3-nonhome .cv3-media::before{opacity:.48;}
  body.cv3-nonhome .cv3-media::after{opacity:.62;}
}

/* BOUSSOLE ARXIV8 — signature immédiatement perceptible, toujours derrière
   la lecture. Cette nappe prolonge le shader unique : aucun renderer, aucun
   scroll engine ni aucune couche de contenu supplémentaire. */
body.cv3-nonhome .cv3-boussole-field{
  position:absolute;
  inset:0;
  z-index:1;
  overflow:hidden;
  pointer-events:none;
  opacity:.94;
  background:
    radial-gradient(42% 56% at var(--cv3-x) var(--cv3-y),oklch(.98 .014 85 / .22),transparent 71%),
    linear-gradient(112deg,transparent 19%,oklch(.96 .012 85 / .08) 39%,oklch(.78 .022 252 / .12) 49%,transparent 66%);
  mix-blend-mode:screen;
  transform:translateZ(0);
  contain:strict;
}
body.cv3-nonhome .cv3-boussole-field::before,
body.cv3-nonhome .cv3-boussole-field::after{
  content:"";
  position:absolute;
  inset:-18%;
  pointer-events:none;
}
body.cv3-nonhome .cv3-boussole-field::before{
  background:
    conic-gradient(from 204deg at 72% 34%,transparent 0 9%,oklch(.98 .012 85 / .28) 10%,transparent 14% 100%),
    repeating-radial-gradient(ellipse at 76% 38%,transparent 0 42px,oklch(.96 .014 85 / .07) 44px 45px,transparent 47px 83px);
  filter:blur(1px);
  opacity:.86;
  transform-origin:72% 34%;
  animation:cv3-boussole-caustic 11s cubic-bezier(.19,1,.22,1) infinite alternate;
}
body.cv3-nonhome .cv3-boussole-field::after{
  /* K3-A : les grilles de points 1 px lues comme de la neige/poussière sont
     supprimées ; seule la lame de lumière demeure. */
  background:
    linear-gradient(102deg,transparent 24%,oklch(.98 .01 85 / .05) 41%,oklch(.98 .012 85 / .34) 49.7%,oklch(.68 .035 163 / .11) 51%,transparent 68%);
  background-size:100% 100%;
  opacity:.72;
  transform:translate3d(-7%,0,0) rotate(-.5deg);
  animation:cv3-boussole-etch 9s cubic-bezier(.19,1,.22,1) infinite alternate;
}
@keyframes cv3-boussole-caustic{
  from{transform:scale(1) rotate(-2deg);opacity:.52}
  to{transform:scale(1.08) rotate(2.4deg);opacity:.94}
}
@keyframes cv3-boussole-etch{
  from{transform:translate3d(-8%,1%,0) rotate(-.5deg);opacity:.42}
  to{transform:translate3d(8%,-1%,0) rotate(.6deg);opacity:.82}
}

/* Une dramaturgie par famille : même matière Caravelli, phénomènes distincts. */
body.cv3-family-project .cv3-boussole-field{
  background:
    radial-gradient(46% 64% at var(--cv3-x) var(--cv3-y),oklch(.98 .012 85 / .26),transparent 72%),
    linear-gradient(114deg,oklch(.04 .004 252 / .22),transparent 38%,oklch(.91 .016 85 / .14) 52%,transparent 69%);
}
body.cv3-family-editorial .cv3-boussole-field{opacity:.76;filter:saturate(.72)}
body.cv3-family-dubai .cv3-boussole-field{opacity:1;filter:brightness(1.12) saturate(.82)}
body.cv3-family-portale .cv3-boussole-field{opacity:.10;filter:none}
body.cv3-family-contact .cv3-boussole-field{opacity:.68;filter:saturate(.62)}

/* DOGSTUDIO / MMP : la lumière annonce une salle et respire avec elle. */
/* K3-20260818 : base de positionnement du room-light. L'orchestrateur JS
   injecte ce span dans chaque .cv3-room, mais le positionnement absolu
   n'existait que dans arxiv8-effects.css — chargé sur 5 pages seulement.
   Sur les autres pages (fiches projets C12, etc.) le span restait static,
   devenait un item de flux/grille et peignait un bloc gris flou dans la
   mise en page. isolation + z-index:-1 le placent derrière le contenu,
   au-dessus du fond de la salle, sans exiger le rehaussement du contenu. */
body.cv3-nonhome .cv3-room{isolation:isolate}
body.cv3-nonhome .cv3-room > .cv3-room-light{
  position:absolute;
  inset:0;
  z-index:-1;
  display:block;
  pointer-events:none;
  overflow:hidden;
}
body.cv3-nonhome .cv3-room .cv3-room-light{
  transition:opacity 1.35s var(--cv3-ease),filter 1.5s var(--cv3-ease),transform 1.7s var(--cv3-ease);
}
body.cv3-nonhome .cv3-room:not(.cv3-room-active) .cv3-room-light{opacity:.18;filter:blur(12px) saturate(.7)}
body.cv3-nonhome .cv3-room.cv3-room-active .cv3-room-light{opacity:var(--cv3-local-atmosphere,.72);filter:blur(3px) saturate(1.08)}
body.cv3-nonhome [data-cv3-line-title]{
  background-image:linear-gradient(90deg,oklch(.84 .022 85 / .72),oklch(.95 .012 85 / .2),transparent);
  background-repeat:no-repeat;
  background-position:0 100%;
  background-size:0 1px;
  transition:background-size 1.3s var(--cv3-ease),clip-path 1.15s var(--cv3-ease),transform 1.15s var(--cv3-ease);
}
body.cv3-nonhome .cv3-room-active [data-cv3-line-title]{background-size:min(42%,320px) 1px}

/* IMMERSIVE GARDEN / LOCOMOTIVE : chaque média reçoit une fonction précise. */
body.cv3-nonhome .cv3-media[data-cv3-effect]{
  transform-style:preserve-3d;
  transition:transform .9s var(--cv3-ease),box-shadow .9s var(--cv3-ease);
}
body.cv3-nonhome .cv3-media[data-cv3-effect="erosion"]::before{
  /* K3-A : erosion sans gravillons blancs — voile lumineux uniquement. */
  background:
    linear-gradient(108deg,transparent 28%,oklch(.97 .012 85 / .32) 49%,transparent 66%);
  background-size:100% 100%;
}
body.cv3-nonhome .cv3-media[data-cv3-effect="refraction"]::after{
  background:
    radial-gradient(38% 62% at var(--cv3-media-x) var(--cv3-media-y),oklch(.99 .01 85 / .4),transparent 67%),
    linear-gradient(126deg,transparent 31%,rgb(190 226 220 / .11) 47%,rgb(226 196 173 / .09) 52%,transparent 66%),
    linear-gradient(180deg,transparent 54%,oklch(.05 .005 252 / .5));
}
body.cv3-nonhome .cv3-media[data-cv3-effect="caustic"]::before{
  background:repeating-radial-gradient(ellipse at var(--cv3-media-x) var(--cv3-media-y),transparent 0 24px,oklch(.98 .012 85 / .16) 26px 27px,transparent 30px 51px);
  filter:blur(.7px);
}
@media (hover:hover) and (pointer:fine){
  body.cv3-nonhome .cv3-media[data-cv3-effect]:hover{
    transform:perspective(1200px) rotateX(var(--cv3-tilt-x,0deg)) rotateY(var(--cv3-tilt-y,0deg)) translateY(-5px);
    box-shadow:0 48px 130px rgb(0 0 0 / .32),0 0 0 1px oklch(.92 .014 85 / .26);
  }
}
@media (max-width:760px),(pointer:coarse){
  body.cv3-nonhome .cv3-boussole-field{opacity:.66}
  body.cv3-nonhome .cv3-boussole-field::before,
  body.cv3-nonhome .cv3-boussole-field::after{animation:none;transform:none}
  body.cv3-nonhome .cv3-room:not(.cv3-room-active) .cv3-room-light{opacity:.38;filter:none}
  body.cv3-nonhome .cv3-media[data-cv3-effect]{transform:none!important}
}
@media (prefers-reduced-motion:reduce){
  body.cv3-nonhome .cv3-boussole-field::before,
  body.cv3-nonhome .cv3-boussole-field::after{animation:none!important;transform:none!important}
  body.cv3-nonhome .cv3-room .cv3-room-light{opacity:.48;filter:none;transform:none}
}

/* ========================================================================== */
/* PORTFOLIO — cadrage éditorial souverain, photo réelle et lecture locale.   */
/* Ce bloc tardif neutralise uniquement l'ancien hero sans média (hauteur 0). */
/* ========================================================================== */
body.cv3-witness-portfolio .ph.v6-inline-portfolio-1{
  position:relative!important;
  display:flex!important;
  align-items:flex-end!important;
  min-height:clamp(760px,100svh,1040px)!important;
  height:auto!important;
  overflow:hidden!important;
  isolation:isolate!important;
  background:#0b0d0f!important;
}
body.cv3-witness-portfolio .ph.v6-inline-portfolio-1 > .ph-bg{
  position:absolute!important;
  z-index:0!important;
  inset:0!important;
  width:100%!important;
  height:100%!important;
  min-height:100%!important;
  opacity:1!important;
  visibility:visible!important;
  background-image:url("../assets/derived/portfolio-reims.webp?v=9ffff25699aa")!important;
  background-repeat:no-repeat!important;
  background-size:cover!important;
  background-position:center 52%!important;
  filter:saturate(.88) contrast(1.04) brightness(.94)!important;
  transform:scale(1.025)!important;
}
body.cv3-witness-portfolio .ph.v6-inline-portfolio-1::after{
  content:""!important;
  position:absolute!important;
  z-index:1!important;
  inset:0!important;
  pointer-events:none!important;
  opacity:1!important;
  mix-blend-mode:normal!important;
  transform:none!important;
  filter:none!important;
  clip-path:none!important;
  -webkit-mask:none;
  mask:none;
  background:
    linear-gradient(90deg,rgba(3,6,9,.78) 0%,rgba(3,6,9,.51) 34%,rgba(3,6,9,.17) 68%,rgba(3,6,9,.04) 100%),
    linear-gradient(0deg,rgba(3,6,9,.68) 0%,rgba(3,6,9,.12) 46%,rgba(3,6,9,.14) 100%)!important;
}
body.cv3-witness-portfolio .ph.v6-inline-portfolio-1 > .container{
  position:relative!important;
  z-index:3!important;
  align-self:flex-end!important;
  width:min(100% - clamp(44px,8vw,144px),1440px)!important;
  max-width:1440px!important;
  margin:0 auto!important;
  padding:clamp(150px,18vh,220px) 0 clamp(82px,10vh,124px)!important;
}
body.cv3-witness-portfolio .ph.v6-inline-portfolio-1 :is(.kicker,.ph-h1,.ph-sub){
  position:relative!important;
  z-index:4!important;
  opacity:1!important;
  visibility:visible!important;
  transform:none!important;
  filter:none!important;
}
body.cv3-witness-portfolio .ph.v6-inline-portfolio-1 .kicker{
  display:block!important;
  margin:0 0 clamp(18px,2.4vh,30px)!important;
  color:#d8c9a9!important;
  -webkit-text-fill-color:#d8c9a9!important;
  text-shadow:0 2px 20px rgba(0,0,0,.62)!important;
}
body.cv3-witness-portfolio .ph.v6-inline-portfolio-1 .ph-h1{
  max-width:min(1050px,82vw)!important;
  margin:0!important;
  color:#faf7f0!important;
  -webkit-text-fill-color:#faf7f0!important;
  font-size:var(--cv-typo-current-fs, clamp(68px,8.9vw,132px))!important;
  line-height:var(--cv-typo-current-lh, 1.12)!important;
  letter-spacing:var(--cv-typo-current-ls, -.045em)!important;
  text-wrap:balance!important;
  text-shadow:0 1px 2px rgba(6,14,18,.74),0 12px 30px rgba(6,14,18,.34)!important;
}
body.cv3-witness-portfolio .ph.v6-inline-portfolio-1 .ph-h1 em{
  color:#f0ede6!important;
  -webkit-text-fill-color:#f0ede6!important;
}
body.cv3-witness-portfolio .ph.v6-inline-portfolio-1 .ph-sub{
  max-width:min(620px,56vw)!important;
  margin:clamp(28px,4vh,48px) 0 0!important;
  color:rgba(250,247,240,.91)!important;
  -webkit-text-fill-color:rgba(250,247,240,.91)!important;
  font-size:var(--cv-typo-current-fs, clamp(18px,1.45vw,23px))!important;
  line-height:var(--cv-typo-current-lh, 1.58)!important;
  text-shadow:0 1px 16px rgba(6,14,18,.52)!important;
}
body.cv3-witness-portfolio .v6-inline-portfolio-85{
  isolation:isolate!important;
}
body.cv3-witness-portfolio .v6-inline-portfolio-85::before{
  content:"";
  position:absolute;
  z-index:-1;
  inset:-32px -38px;
  pointer-events:none;
  background:radial-gradient(ellipse at 22% 62%,rgba(3,6,9,.84),rgba(3,6,9,.58) 46%,transparent 78%);
  filter:blur(13px);
}
body.cv3-witness-portfolio .v6-inline-portfolio-85 :is(p,h3,span,em){
  color:#f4f1ea!important;
  -webkit-text-fill-color:#f4f1ea!important;
  opacity:1!important;
  text-shadow:0 2px 22px rgba(0,0,0,.78)!important;
}

@media (max-width:760px){
  body.cv3-witness-portfolio .ph.v6-inline-portfolio-1{
    min-height:clamp(700px,92svh,860px)!important;
  }
  body.cv3-witness-portfolio .ph.v6-inline-portfolio-1 > .ph-bg{
    background-position:58% 50%!important;
    filter:saturate(.84) contrast(1.04) brightness(.9)!important;
    transform:scale(1.02)!important;
  }
  body.cv3-witness-portfolio .ph.v6-inline-portfolio-1::after{
    background:
      linear-gradient(90deg,rgba(3,6,9,.82),rgba(3,6,9,.44) 76%,rgba(3,6,9,.16)),
      linear-gradient(0deg,rgba(3,6,9,.76),rgba(3,6,9,.1) 64%)!important;
  }
  body.cv3-witness-portfolio .ph.v6-inline-portfolio-1 > .container{
    width:calc(100% - 44px)!important;
    padding:clamp(130px,16vh,166px) 0 clamp(72px,9vh,94px)!important;
  }
  body.cv3-witness-portfolio .ph.v6-inline-portfolio-1 .ph-h1{
    max-width:100%!important;
    font-size:var(--cv-typo-current-fs, clamp(48px,14vw,76px))!important;
    line-height:var(--cv-typo-current-lh, 1.12)!important;
    letter-spacing:var(--cv-typo-current-ls, -.04em)!important;
  }
  body.cv3-witness-portfolio .ph.v6-inline-portfolio-1 .ph-sub{
    max-width:100%!important;
    font-size:var(--cv-typo-current-fs, 18px)!important;
    line-height:var(--cv-typo-current-lh, 1.56)!important;
  }
  body.cv3-witness-portfolio .v6-inline-portfolio-85::before{
    inset:-24px -20px;
    filter:blur(10px);
  }
}

@media (prefers-reduced-motion:reduce){
  body.cv3-nonhome .cv3-media::before{animation:none!important;transform:none!important;}
}

@view-transition{ navigation:auto; }

::view-transition-old(root){
  animation:cv3-old .46s var(--cv3-cut) both;
}

::view-transition-new(root){
  animation:cv3-new .88s var(--cv3-ease) both;
}

@keyframes cv3-old{
  to{ opacity:0; filter:brightness(.61) blur(2px); transform:scale(.994); }
}

@keyframes cv3-new{
  from{ opacity:0; clip-path:inset(0 0 100% 0); filter:brightness(.76); }
  to{ opacity:1; clip-path:inset(0); }
}

::view-transition-group(cv3-brand){ animation-duration:.72s; animation-timing-function:var(--cv3-ease); }
::view-transition-group(cv3-title){ animation-duration:.82s; animation-timing-function:var(--cv3-ease); }
::view-transition-group(cv3-hero-material){ animation-duration:.9s; animation-timing-function:var(--cv3-ease); }

html[data-cv3-transition="obsidian-cut"]::view-transition-new(root){ animation:cv3-obsidian-cut .78s var(--cv3-cut) both; }
html[data-cv3-transition="carrara-relay"]::view-transition-new(root){ animation:cv3-carrara-relay .92s var(--cv3-ease) both; }
html[data-cv3-transition="platinum-etch"]::view-transition-new(root){ animation:cv3-platinum-etch .84s var(--cv3-ease) both; }
html[data-cv3-transition="spectral-vein"]::view-transition-new(root){ animation:cv3-spectral-vein .96s var(--cv3-ease) both; }
html[data-cv3-transition="platinum-continuity"]::view-transition-new(root){ animation:cv3-platinum-continuity .90s var(--cv3-ease) both; }

@keyframes cv3-obsidian-cut{
  from{ opacity:.7; clip-path:polygon(100% 0,100% 0,100% 100%,100% 100%); filter:brightness(.58); }
  to{ opacity:1; clip-path:polygon(0 0,100% 0,100% 100%,0 100%); filter:none; }
}
@keyframes cv3-carrara-relay{
  from{ opacity:0; clip-path:inset(0 0 0 34%); transform:translate3d(1.2%,0,0); filter:brightness(1.16); }
  to{ opacity:1; clip-path:inset(0); transform:none; filter:none; }
}
@keyframes cv3-platinum-etch{
  from{ opacity:0; filter:contrast(1.18) brightness(1.14); clip-path:inset(49.6% 0 49.6% 0); }
  to{ opacity:1; filter:none; clip-path:inset(0); }
}
@keyframes cv3-spectral-vein{
  from{ opacity:.1; clip-path:polygon(0 48%,100% 45%,100% 55%,0 52%); filter:brightness(1.22); }
  to{ opacity:1; clip-path:polygon(0 0,100% 0,100% 100%,0 100%); filter:none; }
}
@keyframes cv3-platinum-continuity{
  from{ opacity:0; filter:blur(3px) brightness(1.08); transform:scale(1.004); }
  to{ opacity:1; filter:none; transform:none; }
}

html.cv3-ready,
html.cv3-ready body{
  overflow-x:clip;
}

/* Le lien d’évitement n’entre jamais dans la composition au repos. */
.cv-skip-link{
  position:fixed;
  z-index:2147483647;
  left:16px;
  top:16px;
  transform:translateY(calc(-100% - 32px));
  padding:11px 15px;
  background:oklch(.94 .012 85);
  color:oklch(.14 .006 252.3);
  border:1px solid oklch(.74 .016 252.3 / .52);
  font:var(--cv-typo-current-font, 500 12px/1.2 Inter,system-ui,sans-serif);
  letter-spacing:var(--cv-typo-current-ls, .08em);
  text-transform:var(--cv-typo-current-tt, uppercase);
  text-decoration:none;
  transition:transform .22s ease;
}

.cv-skip-link:focus,
.cv-skip-link:focus-visible{
  transform:none;
  outline:2px solid oklch(.84 .015 252.3);
  outline-offset:3px;
}

                                                                           
                                                                           
                 
html.lux.js:not(.oc-seuil-passe) body[data-page="index"] :is(
  .oc-accueil-in,.oc-accueil-geste,.oc-accueil-suite
){
  opacity:0 !important;
  /* Le seuil est l'unique propriétaire visuel de cette phase. Sans cette
     neutralisation, la transition de l'autorité accueil interpolait brièvement
     depuis l'état sans feuille de style et laissait deviner le nom. */
  transition:none !important;
}

/* Pendant le seuil, le compteur demeure le seul propriétaire visuel. Les
   contrôles globaux sont montés tôt par leurs moteurs respectifs : on les
   garde fonctionnels, mais strictement hors rendu jusqu'à la fin du seuil. */
html.lux.js:not(.oc-seuil-passe) body[data-page="index"] :is(
  #aiw,
  #vg-btn,
  #cur,
  .cur-ring,
  .cur-dot,
  .hc-lumiere,
  .cv90-scroll-cue,
  .cv90-frame,
  .cv90-progress,
  .cv3-light-field,
  .cv3-mineral-grain,
  .cv3-route-cut,
  .cv3-progress,
  #oc-grain-el
){
  opacity:0 !important;
  visibility:hidden !important;
  pointer-events:none !important;
  transition:none !important;
}

html.lux.js.oc-seuil-passe body[data-page="index"] :is(
  .oc-accueil-in,.oc-accueil-geste,.oc-accueil-suite
){
  opacity:1;
}

@media (min-width:641px){
  html.lux body[data-page="index"] .oc-accueil-suite{
    right:clamp(98px,8vw,132px);
  }
}

/* La lumière n'est ni une pastille ni un halo décoratif. C'est une nappe
   très large, fixe, qui traverse doucement la matière sans couvrir le texte. */
.cv3-light-field{
  position:fixed;
  inset:-18vh -14vw;
  z-index:2;
  pointer-events:none;
  opacity:.24;
  background:
    radial-gradient(42vw 34vw at var(--cv3-x) var(--cv3-y),
      oklch(.92 .016 85 / .16),
      oklch(.78 .018 252.3 / .055) 32%,
      transparent 72%),
    linear-gradient(108deg,
      transparent 34%,
      oklch(.92 .012 85 / .025) 48%,
      transparent 62%);
  mix-blend-mode:screen;
  transform:translate3d(0,calc(var(--cv3-scroll) * -10px),0);
  will-change:transform;
  contain:strict;
}

body[data-page="index"] .cv3-light-field{
  opacity:.08;
  mix-blend-mode:multiply;
}

/* Shader atmosphérique unique. Il reste derrière les contenus et adapte sa
   présence à la famille éditoriale plutôt que d'imposer un effet partout. */
.cv3-atmosphere{
  position:absolute !important;
  inset:0 !important;
  z-index:1;
  width:100% !important;
  height:100% !important;
  flex:none !important;
  pointer-events:none;
  opacity:.96;
  mix-blend-mode:screen;
  transform:translateZ(0);
  contain:strict;
}

.cv3-atmosphere--editorial{ opacity:.78; }
.cv3-atmosphere--project{ opacity:.98; }
.cv3-atmosphere--portale{ opacity:.96; }
.cv3-atmosphere--dubai{ opacity:.92; }
.cv3-atmosphere--contact{ opacity:.74; }

.cv3-atmosphere--fallback{
  background:
    radial-gradient(56% 42% at var(--cv3-x) var(--cv3-y),oklch(.94 .012 85 / .1),transparent 72%),
    linear-gradient(112deg,transparent 34%,oklch(.82 .014 252.3 / .07),transparent 58%);
  animation:cv3-fallback-breathe 9s ease-in-out infinite alternate;
}

@keyframes cv3-fallback-breathe{
  from{ opacity:.34; transform:scale(1); }
  to{ opacity:.62; transform:scale(1.025); }
}

/* Grain minéral unifié : une seule couche, jamais au-dessus des contrôles. */
.cv3-mineral-grain{
  position:fixed;
  inset:0;
  z-index:3;
  pointer-events:none;
  opacity:.018;
  background-image:url("/assets/grain.png");
  background-repeat:repeat;
  mix-blend-mode:soft-light;
}

/* Lame de transition de repli pour les navigateurs sans transition
   inter-document. Son mouvement est court et mécanique. */
.cv3-route-cut{
  position:fixed;
  inset:0;
  z-index:2147482600;
  pointer-events:none;
  background:var(--cv3-ink);
  transform:scaleX(0);
  transform-origin:0 50%;
}

html.cv3-leaving .cv3-route-cut{
  transform:scaleX(1);
  transition:transform .36s var(--cv3-cut);
}

/* Révélations sûres : le contenu reste visible sans JavaScript. */
html.cv3-motion [data-cv3-reveal]{
  opacity:0;
  transform:translate3d(0,26px,0);
  filter:blur(4px);
}

html.cv3-motion [data-cv3-reveal]:not([data-cv3-reveal="title"]):not([data-cv3-reveal="media"]):not([data-cv3-reveal="line"]){
  opacity:1;
  transform:none;
  filter:none;
  clip-path:none;
}

html.cv3-motion [data-cv3-reveal].cv3-in{
  opacity:1;
  transform:none;
  filter:none;
  transition:
    opacity 1.12s var(--cv3-ease),
    transform 1.18s var(--cv3-ease),
    filter .92s var(--cv3-ease);
}

html.cv3-motion [data-cv3-reveal="line"]{
  clip-path:inset(0 100% 0 0);
  opacity:1;
  transform:none;
  filter:none;
}

html.cv3-motion [data-cv3-reveal="line"].cv3-in{
  clip-path:inset(0);
  transition:clip-path 1.25s var(--cv3-ease);
}

/* Aimantation très faible : elle sert la précision, jamais le spectacle. */
[data-cv3-magnet]{
  --cv3-mx:0px;
  --cv3-my:0px;
  transform:translate3d(var(--cv3-mx),var(--cv3-my),0);
  transition:transform .66s var(--cv3-ease),border-color .45s ease,color .45s ease;
  will-change:transform;
}

[data-cv3-magnet].cv3-magnet-active{
  transition:transform .16s linear,border-color .45s ease,color .45s ease;
}

/* L'option locale reste une commande du panneau Concierge. Elle ne flotte
   jamais seule au-dessus du contenu lorsque le panneau est refermé. */
#aiw .ai-pn > .ccl9240__offre{
  flex:0 0 auto;
  width:100%;
  min-height:44px;
  padding:11px 16px;
  border:0;
  border-top:1px solid oklch(.76 .025 84.7 / .22);
  background:oklch(.19 .018 252.3 / .98);
  color:oklch(.91 .014 84.7);
  font:var(--cv-typo-current-font, 500 10px/1.35 var(--font-ui));
  letter-spacing:var(--cv-typo-current-ls, .12em);
  text-transform:var(--cv-typo-current-tt, uppercase);
}

/* Filet platine commun aux images éditoriales, sans changer leur cadrage.
   Il reste porté par le héros lui-même : plusieurs pages utilisent déjà
   ::after pour leur voile de lisibilité, qui doit demeurer derrière le texte. */
body:not([data-page="index"]) :is(.hero,.ph,.ph-full,.pensee-hero,.dxb-hero,.cp-page-hero){
  outline:1px solid oklch(.84 .015 252.3 / .16);
  outline-offset:calc(-1 * clamp(9px,1.15vw,18px));
}

/* Le rail de progression est une incision, pas une barre d'application. */
.cv3-progress{
  position:fixed;
  z-index:2147481000;
  left:0;
  top:0;
  width:100%;
  height:1px;
  pointer-events:none;
  transform:scaleX(var(--cv3-scroll));
  transform-origin:0 50%;
  background:linear-gradient(90deg,
    oklch(.74 .016 252.3 / .35),
    oklch(.91 .012 85 / .82),
    oklch(.68 .035 163 / .28));
}

/* Consentement commun aux 51 routes, y compris les deux pages éditoriales
   légères qui n'embarquent pas le moteur Olympe. */
.hc-consent{
  position:fixed;
  z-index:2147483000;
  left:clamp(14px,2.2vw,34px);
  bottom:clamp(14px,2.2vw,34px);
  width:min(680px,calc(100vw - 28px));
  box-sizing:border-box;
  padding:clamp(20px,2.5vw,32px);
  color:oklch(.94 .01 85);
  background:linear-gradient(135deg,oklch(.14 .007 252.3 / .98),oklch(.09 .004 252.3 / .985));
  border:1px solid oklch(.84 .015 252.3 / .38);
  box-shadow:0 28px 80px rgb(0 0 0 / .44),inset 0 1px 0 rgb(255 255 255 / .08);
  backdrop-filter:blur(24px) saturate(.82);
  opacity:0;
  visibility:hidden;
  transform:translateY(18px);
  transition:opacity .58s var(--cv3-ease),transform .7s var(--cv3-ease),visibility .58s;
}

.hc-consent--visible{
  opacity:1;
  visibility:visible;
  transform:none;
}

.hc-consent__titre{
  margin:0 0 10px;
  font-size:var(--cv-typo-current-fs, clamp(17px,1.55vw,22px));
  line-height:var(--cv-typo-current-lh, 1.15);
  letter-spacing:var(--cv-typo-current-ls, .035em);
}

.hc-consent__texte{
  max-width:60ch;
  margin:0;
  color:oklch(.86 .01 85 / .9);
  font-size:var(--cv-typo-current-fs, 13px);
  line-height:var(--cv-typo-current-lh, 1.65);
}

.hc-consent__texte a{ color:inherit; text-underline-offset:.22em; }

.hc-consent__actions{
  display:flex;
  flex-wrap:wrap;
  gap:9px;
  margin-top:18px;
}

.hc-consent__btn{
  min-height:44px;
  padding:0 17px;
  border:1px solid oklch(.84 .015 252.3 / .42);
  border-radius:0;
  background:transparent;
  color:oklch(.94 .01 85);
  font:var(--cv-typo-current-font, 500 10px/1 Inter,system-ui,sans-serif);
  letter-spacing:var(--cv-typo-current-ls, .13em);
  text-transform:var(--cv-typo-current-tt, uppercase);
}

.hc-consent__btn--oui{
  background:oklch(.91 .012 85);
  color:oklch(.13 .006 252.3);
}

/* Les contrôles fixes conservent des zones tactiles distinctes. */
@media (max-width:760px){
  .cv3-light-field{ opacity:.14; inset:-10vh -30vw; }
  .cv3-mineral-grain{ opacity:.012; }
  body:not([data-page="index"]) :is(.hero,.ph,.ph-full,.pensee-hero,.dxb-hero,.cp-page-hero) :is(h1,.ph-h1){
    color:oklch(.97 .008 85) !important;
    text-shadow:0 2px 26px rgb(0 0 0 / .62),0 1px 2px rgb(0 0 0 / .65);
  }
  body:not([data-page="index"]) :is(.hero,.ph,.ph-full,.pensee-hero,.dxb-hero,.cp-page-hero) :is(p,.ph-sub,.body){
    color:oklch(.92 .008 85 / .94) !important;
    text-shadow:0 1px 18px rgb(0 0 0 / .7);
  }
  #oc-sound-toggle{ bottom:max(18px,env(safe-area-inset-bottom)); }
  #vg-btn{ bottom:calc(max(18px,env(safe-area-inset-bottom)) + 54px); }
  .hc-consent{ max-height:min(72svh,560px); overflow:auto; }
  .hc-consent__actions{ display:grid; grid-template-columns:1fr; }
  .hc-consent__btn{ width:100%; }
}

@media (hover:none),(pointer:coarse){
  #cur,
  .fx5-cursor-dot,
  .fx5-cursor-ring,
  .fx5-cursor-halo{ display:none !important; }
  body.fx5-cursor-on,
  body.fx5-cursor-on :is(a,button,select,.property-card,label){ cursor:auto !important; }
}

/* Le viewport étroit est également traité comme tactile lors des validations
   responsive : aucun pointeur propriétaire ne doit masquer un titre ou un CTA. */
@media (max-width:760px){
  #cur,
  .cur-ring,
  .cur-dot,
  .fx5-cursor-dot,
  .fx5-cursor-ring,
  .fx5-cursor-halo{ display:none !important; }
  body.fx5-cursor-on,
  body.fx5-cursor-on :is(a,button,select,.property-card,label){ cursor:auto !important; }

  body[data-page="contact"] .ph :is(.ph-h1,.ph-sub){
    color:oklch(.97 .008 85) !important;
    text-shadow:0 2px 24px rgba(0,0,0,.78),0 1px 4px rgba(0,0,0,.92);
  }
  body[data-page="contact"] .ph .container{
    width:calc(100% - 32px) !important;
    max-width:calc(100% - 32px) !important;
    margin-inline:auto !important;
  }
  body[data-page="contact"] .ph-h1{
    width:min(100%,8.4ch) !important;
    max-width:min(100%,8.4ch) !important;
    font-size:var(--cv-typo-current-fs, clamp(38px,10.2vw,48px)) !important;
    line-height:var(--cv-typo-current-lh, .98) !important;
    letter-spacing:var(--cv-typo-current-ls, -.035em) !important;
  }
  body[data-page="contact"] .ph-h1 em{
    width:100% !important;
    max-width:100% !important;
    font-size:var(--cv-typo-current-fs, clamp(37px,9.8vw,48px)) !important;
    line-height:var(--cv-typo-current-lh, .96) !important;
  }
  body[data-page="contact"] .ph-sub{
    width:min(100%,30ch) !important;
    max-width:min(100%,30ch) !important;
    overflow-wrap:break-word !important;
  }
  body[data-page="contact"] .ph-bg::before{
    opacity:.62 !important;
    background:linear-gradient(90deg,rgba(5,8,11,.86),rgba(5,8,11,.48) 72%,rgba(5,8,11,.62)) !important;
  }
}

/* Contact — seuil sculpté Carrara / obsidienne. L'image seule change : la
   géométrie, la typographie et la séquence du héros restent inchangées. */
body[data-page="contact"] .v6-inline-contact-1,
body[data-page="contact"].cv-strict-house .ph-bg{
  background-image:
    linear-gradient(90deg,rgba(5,6,7,.58) 0%,rgba(5,6,7,.46) 58%,rgba(5,6,7,.12) 86%),
    url("../assets/derived/contact/contact-hero-seuil-carrara-obsidienne-v1.png") !important;
  background-position:64% 52% !important;
}

@media (max-width:760px){
  body[data-page="contact"] .v6-inline-contact-1,
  body[data-page="contact"].cv-strict-house .ph-bg{
    background-image:
      linear-gradient(90deg,rgba(5,6,7,.5) 0%,rgba(5,6,7,.34) 62%,rgba(5,6,7,.16) 100%),
      url("../assets/derived/contact/contact-hero-seuil-carrara-obsidienne-v1.png") !important;
    background-position:66% 50% !important;
  }
}

@media (prefers-reduced-motion:reduce){
  @view-transition{ navigation:none; }
  .cv3-light-field{ display:none; }
  .cv3-route-cut{ display:none; }
  html.cv3-motion [data-cv3-reveal],
  html.cv3-motion [data-cv3-reveal].cv3-in{
    opacity:1;
    transform:none;
    filter:none;
    clip-path:none;
    transition:none;
  }
  [data-cv3-magnet],
  [data-cv3-magnet].cv3-magnet-active{
    transform:none;
    transition:none;
  }
}

@media (forced-colors:active){
  .cv3-light-field,.cv3-mineral-grain{ display:none; }
  .cv3-progress{ background:CanvasText; }
}

                                                                           
                                                    
                                                                             
                                                                             
                                                                              

body.cv3-nonhome{
  --cv3-obsidian:oklch(.105 .006 252.3);
  --cv3-obsidian-soft:oklch(.145 .008 252.3);
  --cv3-platinum:oklch(.82 .014 252.3);
  --cv3-platinum-hi:oklch(.94 .009 85);
  --cv3-stone:oklch(.885 .011 85);
  --cv3-stone-ink:oklch(.17 .009 252.3);
  --cv3-verdigris:oklch(.48 .038 174);
  background:var(--cv3-obsidian);
  color:var(--cv3-platinum-hi);
}

body.cv3-nonhome::before{
  content:"";
  position:fixed;
  inset:0;
  z-index:1;
  pointer-events:none;
  opacity:.34;
  background:
    linear-gradient(112deg,transparent 13%,oklch(.96 .01 85 / .028) 42%,transparent 58%),
    radial-gradient(78vw 72vh at 76% 14%,oklch(.75 .018 252.3 / .07),transparent 68%);
  mix-blend-mode:screen;
}

body.cv3-nonhome > header,
body.cv3-nonhome .site-header,
body.cv3-nonhome .lb-header{
  --cv3-header-active:var(--cv3-platinum-hi);
  background:linear-gradient(180deg,oklch(.09 .005 252.3 / .97),oklch(.105 .006 252.3 / .9)) !important;
  border-bottom:1px solid oklch(.82 .014 252.3 / .19) !important;
  box-shadow:0 18px 70px rgb(0 0 0 / .18);
  backdrop-filter:blur(22px) saturate(.72);
}

body.cv3-nonhome main{
  position:relative;
  z-index:4;
  background:var(--cv3-obsidian);
}

body.cv3-nonhome .cv3-hero-stage{
  position:relative;
  isolation:isolate;
  min-height:min(86svh,880px);
  overflow:hidden;
  background-color:var(--cv3-obsidian);
}

body.cv3-nonhome .cv3-hero-stage::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:2;
  pointer-events:none;
  background:
    linear-gradient(103deg,oklch(.09 .006 252.3 / .76) 0 14%,transparent 53%),
    radial-gradient(48vw 46vw at var(--cv3-x) var(--cv3-y),oklch(.94 .015 85 / .11),transparent 74%);
  mix-blend-mode:screen;
}

body.cv3-nonhome .cv3-hero-stage > :is(.wrap,.container,.hero-content,.ph-inner,.section-inner,.inner){
  position:relative;
  z-index:3;
}

body.cv3-nonhome .cv3-chapter{
  position:relative;
  isolation:isolate;
  overflow:hidden;
  padding-block:clamp(96px,11vw,190px);
  border-top:1px solid oklch(.82 .014 252.3 / .12);
}

body.cv3-nonhome .cv3-chapter::before{
  content:var(--cv3-chapter);
  position:absolute;
  z-index:0;
  top:clamp(26px,3.8vw,62px);
  right:clamp(22px,5vw,86px);
  color:currentColor;
  opacity:.075;
  font-size:var(--cv-typo-current-fs, clamp(72px,13vw,220px));
  font-weight:var(--cv-typo-current-fw, 300);
  line-height:var(--cv-typo-current-lh, .78);
  letter-spacing:var(--cv-typo-current-ls, -.075em);
  pointer-events:none;
}

body.cv3-nonhome .cv3-chapter::after{
  content:"";
  position:absolute;
  z-index:0;
  inset:-28% -12%;
  pointer-events:none;
  opacity:.58;
  background:linear-gradient(111deg,transparent 39%,oklch(.96 .012 85 / .085) 49.4%,transparent 58%);
  transform:translate3d(calc(var(--cv3-scroll) * 5vw),0,0);
  mix-blend-mode:screen;
}

body.cv3-nonhome .cv3-chapter > :is(.wrap,.container,.ph-inner,.hero-content,.section-inner,.inner,.dxb-inner){
  position:relative;
  z-index:1;
}

body.cv3-nonhome .cv3-chapter--obsidian{
  color:var(--cv3-platinum-hi);
  background:
    radial-gradient(76vw 42vw at 12% 10%,oklch(.23 .014 252.3 / .32),transparent 70%),
    linear-gradient(152deg,var(--cv3-obsidian-soft),var(--cv3-obsidian));
}

body.cv3-nonhome .cv3-chapter--platinum{
  color:var(--cv3-stone-ink);
  background:
    linear-gradient(103deg,oklch(.75 .014 252.3 / .22),transparent 24%),
    linear-gradient(155deg,oklch(.93 .01 85),var(--cv3-stone));
}

body.cv3-nonhome .cv3-chapter--platinum :is(p,li,.body,.lead){ color:oklch(.25 .01 252.3 / .88); }
body.cv3-nonhome .cv3-chapter--obsidian :is(p,li,.body,.lead){ color:oklch(.87 .01 85 / .86); }

html.cv3-motion body.cv3-nonhome [data-cv3-reveal="title"]{
  opacity:1;
  transform:none;
  filter:none;
  clip-path:inset(0 0 100% 0);
  -webkit-mask-image:linear-gradient(180deg,#000 0 82%,transparent);
  mask-image:linear-gradient(180deg,#000 0 82%,transparent);
  transform:translate3d(0,10px,0);
}

html.cv3-motion body.cv3-nonhome [data-cv3-reveal="title"].cv3-in{
  clip-path:inset(0);
  -webkit-mask-image:none;
  mask-image:none;
  transform:none;
  transition:clip-path 1.22s var(--cv3-ease),transform .96s var(--cv3-ease);
}

/* Cinq familles de révélation : la hiérarchie reste lisible, mais les grands
   moments ne reposent plus sur le seul couple opacité / translation. */
html.cv3-motion body.cv3-family-project [data-cv3-reveal="title"]{ clip-path:inset(0 100% 0 0); }
html.cv3-motion body.cv3-family-project [data-cv3-reveal="title"].cv3-in{ clip-path:inset(0); transition-duration:1.08s; }

html.cv3-motion body.cv3-family-dubai [data-cv3-reveal="title"]{
  clip-path:polygon(0 46%,0 46%,0 56%,0 56%);
}
html.cv3-motion body.cv3-family-dubai [data-cv3-reveal="title"].cv3-in{
  clip-path:polygon(0 0,100% 0,100% 100%,0 100%);
  transition-duration:1.34s;
}

html.cv3-motion body.cv3-family-portale [data-cv3-reveal="title"]{
  clip-path:inset(0 0 100% 0 round 0);
  filter:brightness(1.16);
}
html.cv3-motion body.cv3-family-portale [data-cv3-reveal="title"].cv3-in{
  clip-path:inset(0);
  filter:none;
  transition:clip-path 1.42s var(--cv3-ease),filter 1.1s var(--cv3-ease);
}

html.cv3-motion body.cv3-nonhome [data-cv3-reveal="media"]{
  opacity:1;
  transform:none;
  filter:brightness(.72) saturate(.68);
  clip-path:inset(0 0 100% 0);
}
html.cv3-motion body.cv3-nonhome [data-cv3-reveal="media"].cv3-in{
  filter:none;
  clip-path:inset(0);
  transition:clip-path 1.28s var(--cv3-ease),filter 1.05s var(--cv3-ease);
}
html.cv3-motion body.cv3-family-project [data-cv3-reveal="media"]{
  clip-path:polygon(0 0,0 0,0 100%,0 100%);
}
html.cv3-motion body.cv3-family-project [data-cv3-reveal="media"].cv3-in{
  clip-path:polygon(0 0,100% 0,100% 100%,0 100%);
}
html.cv3-motion body.cv3-family-dubai [data-cv3-reveal="media"]{
  clip-path:inset(48.5% 0 48.5% 0);
}
html.cv3-motion body.cv3-family-dubai [data-cv3-reveal="media"].cv3-in{
  clip-path:inset(0);
}

body.cv3-nonhome .cv3-media{
  --cv3-media-x:50%;
  --cv3-media-y:42%;
  position:relative;
  overflow:hidden;
  background:var(--cv3-obsidian-soft);
  outline:1px solid oklch(.82 .014 252.3 / .22);
  outline-offset:-1px;
  box-shadow:0 38px 110px rgb(0 0 0 / .22);
}

body.cv3-nonhome .cv3-media::before{
  content:"";
  position:absolute;
  z-index:3;
  inset:-18% -42%;
  pointer-events:none;
  background:
    linear-gradient(106deg,transparent 30%,oklch(.98 .012 85 / .07) 42%,oklch(.98 .012 85 / .28) 49.6%,oklch(.7 .018 252.3 / .11) 52%,transparent 66%),
    repeating-linear-gradient(112deg,transparent 0 72px,oklch(.95 .01 85 / .048) 74px 75px,transparent 78px 156px);
  mix-blend-mode:screen;
  opacity:.74;
  filter:blur(.5px);
  transform:translate3d(-20%,0,0) rotate(-1deg);
  transition:opacity .8s var(--cv3-ease),transform 1.8s var(--cv3-ease);
}

body.cv3-nonhome .cv3-media::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:2;
  pointer-events:none;
  background:
    radial-gradient(42% 64% at var(--cv3-media-x) var(--cv3-media-y),oklch(.98 .01 85 / .22),transparent 70%),
    linear-gradient(180deg,transparent 45%,oklch(.08 .006 252.3 / .58));
  mix-blend-mode:screen;
  opacity:.78;
  transition:opacity .8s var(--cv3-ease);
}

body.cv3-nonhome .cv3-media :is(img,video){
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  filter:saturate(.78) contrast(1.06) brightness(.92);
  transform:scale(1.015);
  transition:transform 1.7s var(--cv3-ease),filter 1.2s var(--cv3-ease);
}

@media (hover:hover) and (pointer:fine){
  body.cv3-nonhome .cv3-media:hover :is(img,video){ transform:scale(1.045); filter:saturate(.9) contrast(1.04) brightness(.99); }
  body.cv3-nonhome .cv3-media:hover::before{ opacity:.96; transform:translate3d(10%,0,0) rotate(1deg); }
  body.cv3-nonhome .cv3-media:hover::after{ opacity:.9; }
}

@supports (animation-timeline:view()){
  body.cv3-nonhome .cv3-media :is(img,video){
    animation:cv3-media-breathe linear both;
    animation-timeline:view();
    animation-range:entry 0% exit 100%;
  }
  @keyframes cv3-media-breathe{ from{ transform:scale(1.06) translateY(-1.5%); } to{ transform:scale(1.015) translateY(1.5%); } }
}

/* Les familles disposent d'une lumière et d'une densité propres. */
body.cv3-family-editorial .cv3-hero-stage::after,
body.cv3-family-project .cv3-hero-stage::after,
body.cv3-family-portale .cv3-hero-stage::after,
body.cv3-family-dubai .cv3-hero-stage::after{
  content:"";
  position:absolute;
  z-index:2;
  pointer-events:none;
  inset:9% 4%;
  border:1px solid oklch(.82 .014 252.3 / .18);
  clip-path:polygon(0 0,100% 0,100% 28%,99.8% 28%,99.8% 100%,0 100%);
}

body.cv3-family-editorial .cv3-chapter--platinum{
  background:
    radial-gradient(48vw 28vw at 82% 18%,rgb(255 255 255 / .54),transparent 68%),
    linear-gradient(152deg,oklch(.94 .009 85),oklch(.86 .012 252.3));
}

body.cv3-family-project .cv3-hero-stage::before{
  background:
    radial-gradient(42vw 36vw at 62% 28%,oklch(.94 .012 85 / .18),transparent 72%),
    linear-gradient(90deg,oklch(.07 .006 252.3 / .86),transparent 64%),
    repeating-linear-gradient(104deg,transparent 0 70px,oklch(.94 .012 85 / .035) 72px 73px,transparent 75px 150px);
}

body.cv3-family-project .cv3-media{ min-height:clamp(280px,42vw,690px); }

body.cv3-family-portale{
  --cv3-obsidian:oklch(.075 .005 252.3);
  --cv3-obsidian-soft:oklch(.115 .008 252.3);
}

body.cv3-family-portale .cv3-hero-stage{
  min-height:100svh;
  background:
    radial-gradient(52vw 48vw at 72% 28%,oklch(.74 .018 252.3 / .13),transparent 68%),
    var(--cv3-obsidian);
}

body.cv3-family-portale .cv3-hero-stage::before{
  opacity:.84;
  background:
    conic-gradient(from 212deg at 75% 34%,transparent,oklch(.95 .015 85 / .16),transparent 23%),
    radial-gradient(28vw 28vw at 74% 34%,oklch(.95 .015 85 / .10),transparent 68%),
    linear-gradient(96deg,oklch(.06 .004 252.3 / .76),transparent 62%);
}

body.cv3-family-portale .property-card{
  background:oklch(.12 .007 252.3);
  border-color:oklch(.82 .014 252.3 / .2) !important;
  box-shadow:0 42px 120px rgb(0 0 0 / .33);
}

body.cv3-family-dubai{
  --cv3-obsidian:oklch(.10 .012 252.3);
  --cv3-verdigris:oklch(.43 .035 174);
}

body.cv3-family-dubai .cv3-hero-stage::before{
  background:
    radial-gradient(62vw 42vw at 80% 18%,oklch(.9 .014 85 / .14),transparent 70%),
    linear-gradient(112deg,oklch(.07 .008 252.3 / .82),transparent 68%),
    linear-gradient(118deg,transparent 36%,oklch(.84 .014 252.3 / .075) 46%,transparent 58%),
    radial-gradient(42vw 54vw at 82% 18%,oklch(.82 .018 252.3 / .18),transparent 72%);
}

body.cv3-family-contact .cv3-hero-stage{ min-height:clamp(600px,82svh,840px); }
body.cv3-family-contact :is(input,textarea,select){
  border-radius:0 !important;
  border:0 !important;
  border-bottom:1px solid oklch(.82 .014 252.3 / .34) !important;
  background:transparent !important;
  color:inherit;
  min-height:48px;
}
body.cv3-family-contact :is(input,textarea,select):focus{
  outline:0;
  border-bottom-color:var(--cv3-platinum-hi) !important;
  box-shadow:0 12px 34px -24px oklch(.94 .009 85 / .8);
}

html[data-cv3-light="golden"] body.cv3-nonhome::before{ filter:sepia(.16); opacity:.42; }
html[data-cv3-light="night"] body.cv3-nonhome::before{ opacity:.24; }

body.cv3-nonhome .cv3-finale{
  position:relative;
  z-index:4;
  overflow:hidden;
  padding-bottom:max(42px,env(safe-area-inset-bottom));
  background:oklch(.075 .004 252.3) !important;
  border-top:1px solid oklch(.82 .014 252.3 / .2);
}

.cv3-finale-seal{
  width:min(1180px,calc(100% - 40px));
  margin:clamp(48px,8vw,110px) auto 0;
  display:grid;
  grid-template-columns:auto 1fr auto;
  align-items:center;
  gap:clamp(14px,3vw,44px);
  color:oklch(.82 .014 252.3 / .8);
  font-size:var(--cv-typo-current-fs, 10px);
  letter-spacing:var(--cv-typo-current-ls, .24em);
  text-transform:var(--cv-typo-current-tt, uppercase);
}

.cv3-finale-seal i{ height:1px; background:linear-gradient(90deg,currentColor,transparent); }
.cv3-finale-seal strong{ color:oklch(.94 .009 85 / .7); font:var(--cv-typo-current-font, inherit); }

/* Consentement : un objet institutionnel bref, jamais une plaque juridique. */
body[data-page] .hc-consent,
body[data-page] .hc-consent--branch{
  left:auto !important;
  right:clamp(12px,2vw,28px) !important;
  bottom:clamp(12px,2vw,28px) !important;
  width:min(440px,calc(100vw - 24px)) !important;
  max-width:440px !important;
  min-height:0 !important;
  max-height:none !important;
  overflow:visible !important;
  padding:12px 13px !important;
  display:grid !important;
  grid-template-columns:minmax(0,1fr) auto !important;
  grid-template-areas:"title actions" "text actions" !important;
  column-gap:16px !important;
  row-gap:3px !important;
  border:1px solid oklch(.82 .014 252.3 / .28) !important;
  border-radius:0 !important;
  background:linear-gradient(135deg,oklch(.115 .006 252.3 / .965),oklch(.075 .004 252.3 / .985)) !important;
  box-shadow:0 24px 90px rgb(0 0 0 / .36),inset 0 1px 0 rgb(255 255 255 / .045) !important;
  backdrop-filter:blur(24px) saturate(.76) !important;
  transform:translate3d(0,16px,0) !important;
}

body[data-page] .hc-consent.hc-consent--visible,
body[data-page] .hc-consent--branch.hc-consent--visible{
  opacity:1 !important;
  visibility:visible !important;
  transform:none !important;
}

body[data-page] .hc-consent::before{
  content:"" !important;
  position:absolute !important;
  left:16px !important;
  right:16px !important;
  top:0 !important;
  height:1px !important;
  background:linear-gradient(90deg,transparent,oklch(.9 .012 252.3 / .55),transparent) !important;
  opacity:1 !important;
}

body[data-page] .hc-consent__titre{
  grid-area:title !important;
  margin:0 !important;
  color:oklch(.94 .009 85) !important;
  font-size:var(--cv-typo-current-fs, 9px) !important;
  font-weight:var(--cv-typo-current-fw, 500) !important;
  line-height:var(--cv-typo-current-lh, 1.2) !important;
  letter-spacing:var(--cv-typo-current-ls, .2em) !important;
  text-transform:var(--cv-typo-current-tt, uppercase) !important;
}

body[data-page] .hc-consent__texte{
  grid-area:text !important;
  margin:0 !important;
  max-width:27ch !important;
  color:oklch(.82 .014 252.3 / .78) !important;
  font-size:var(--cv-typo-current-fs, 10px) !important;
  line-height:var(--cv-typo-current-lh, 1.34) !important;
}

body[data-page] .hc-consent__texte a{
  margin-left:.45em;
  color:oklch(.9 .012 252.3 / .78) !important;
  text-underline-offset:3px;
}

body[data-page] .hc-consent__actions{
  grid-area:actions !important;
  align-self:center !important;
  display:flex !important;
  flex-wrap:nowrap !important;
  gap:6px !important;
  margin:0 !important;
}

body[data-page] .hc-consent__btn{
  min-width:0 !important;
  min-height:40px !important;
  height:40px !important;
  padding:0 10px !important;
  border:1px solid oklch(.82 .014 252.3 / .29) !important;
  border-radius:0 !important;
  background:transparent !important;
  color:oklch(.92 .01 85) !important;
  font-size:var(--cv-typo-current-fs, 7px) !important;
  font-weight:var(--cv-typo-current-fw, 500) !important;
  line-height:var(--cv-typo-current-lh, 1) !important;
  letter-spacing:var(--cv-typo-current-ls, .14em) !important;
  text-transform:var(--cv-typo-current-tt, uppercase) !important;
  white-space:nowrap !important;
  box-shadow:none !important;
}

body[data-page] .hc-consent__btn:is(:hover,:focus-visible){
  border-color:oklch(.94 .009 85 / .72) !important;
  background:oklch(.94 .009 85 / .07) !important;
  transform:translateY(-1px) !important;
}

body[data-page] .hc-consent__btn--oui{
  background:oklch(.9 .012 252.3) !important;
  border-color:oklch(.9 .012 252.3) !important;
  color:oklch(.11 .006 252.3) !important;
}

@media (max-width:760px){
  body.cv3-nonhome .cv3-hero-stage{ min-height:min(78svh,720px); }
  body.cv3-family-project .cv3-hero-stage > :is(.container,.wrap,.hero-content,.ph-inner){
    width:100% !important;
    max-width:none !important;
    box-sizing:border-box !important;
    padding-inline:clamp(16px,5vw,24px) !important;
  }
  body.cv3-family-project .cv3-hero-stage :is(h1,h2,.ph-h1,.ph-sub){
    width:auto !important;
    max-width:min(100%,34rem) !important;
  }
  body.cv3-nonhome .cv3-chapter{ padding-block:clamp(70px,22vw,112px); }
  body.cv3-nonhome .cv3-chapter::before{ top:24px; right:18px; font-size:var(--cv-typo-current-fs, 76px); }
  body.cv3-nonhome .cv3-chapter::after{ opacity:.32; }
  body.cv3-nonhome .cv3-media{ min-height:clamp(240px,92vw,470px); box-shadow:0 26px 70px rgb(0 0 0 / .2); }
  body.cv3-nonhome .cv3-media :is(img,video){ transform:none; }
  .cv3-finale-seal{ grid-template-columns:1fr; gap:12px; align-items:start; }
  .cv3-finale-seal i{ width:100%; }

  body[data-page] .hc-consent,
  body[data-page] .hc-consent--branch{
    left:8px !important;
    right:8px !important;
    bottom:8px !important;
    width:auto !important;
    max-width:none !important;
    box-sizing:border-box !important;
    padding:9px 10px 10px !important;
    grid-template-columns:1fr !important;
    grid-template-areas:"title" "text" "actions" !important;
    gap:5px !important;
    transform:translate3d(0,12px,0) !important;
  }
  body[data-page] .hc-consent__titre{ font-size:var(--cv-typo-current-fs, 8px) !important; letter-spacing:var(--cv-typo-current-ls, .17em) !important; }
  body[data-page] .hc-consent__texte{
    max-width:none !important;
    font-size:var(--cv-typo-current-fs, 9px) !important;
    line-height:var(--cv-typo-current-lh, 1.26) !important;
  }
  body[data-page] .hc-consent__actions{
    width:100% !important;
    display:grid !important;
    grid-template-columns:1fr !important;
    gap:5px !important;
    min-width:0 !important;
  }
  body[data-page] .hc-consent__btn{
    box-sizing:border-box !important;
    width:100% !important;
    min-width:0 !important;
    max-width:100% !important;
    min-height:34px !important;
    height:34px !important;
    padding:0 10px !important;
    font-size:var(--cv-typo-current-fs, 7px) !important;
    letter-spacing:var(--cv-typo-current-ls, .13em) !important;
    white-space:nowrap !important;
    overflow:visible !important;
    text-overflow:clip !important;
  }
}

@media (prefers-reduced-motion:reduce){
  body.cv3-nonhome .cv3-chapter::after{ transform:none; }
  body.cv3-nonhome .cv3-media :is(img,video){ animation:none !important; transform:none !important; transition:none !important; }
}

                                                                           
                                                                    
                                                                         
                                                                        
                                                                              

body.cv3-witness{
  --cv3-carrara:#e7e6df;
  --cv3-carrara-hi:#f3f2ee;
  --cv3-ivory:#d7dad7;
  --cv3-smoke:#273036;
  --cv3-obs:#11181b;
  --cv3-rake:rgba(207,224,226,.34);
  --cv3-albatre:url("../assets/palette02/albatre_sideral_1024.webp");
  --cv3-calcite:url("../assets/palette02/calcite_froide_1024.webp");
  --cv3-albatre-mist:url("../assets/palette02/brume_albatre_01.png");
  --cv3-albatre-light:url("../assets/palette02/light_sweep_albatre_cold.png");
  --cv3-vein-mask:url("../assets/palette02/vein_reveal_mask_alpha.png");
}

body.cv3-witness main{
  background:var(--cv3-carrara);
}

body.cv3-witness .cv3-room{
  min-height:min(94svh,980px);
  padding-block:clamp(108px,12vw,208px);
  border-top:0;
}

body.cv3-witness .cv3-room::before{
  font-size:var(--cv-typo-current-fs, clamp(96px,16vw,260px));
  opacity:.045;
}

body.cv3-witness .cv3-room::after{
  inset:0;
  opacity:var(--cv3-local-relief,1);
  background:
    linear-gradient(112deg,transparent 22%,var(--cv3-rake) 49.65%,transparent 51.4%),
    var(--cv3-room-material,var(--cv3-albatre));
  background-size:180% 100%,clamp(520px,68vw,1024px) clamp(520px,68vw,1024px);
  background-position:calc(42% + var(--cv3-scroll) * 9%) center,center;
  background-repeat:no-repeat;
  transform:translate3d(calc((var(--cv3-scroll) - .5) * 5vw),0,0);
  mix-blend-mode:soft-light;
}

body.cv3-witness .cv3-room-light{
  position:absolute;
  z-index:0;
  inset:-18% -12%;
  pointer-events:none;
  opacity:.48;
  background:
    var(--cv3-albatre-light) calc(42% + var(--cv3-scroll) * 14%) 36% / min(74vw,980px) auto no-repeat,
    var(--cv3-albatre-mist) 76% 42% / min(76vw,980px) auto no-repeat;
  -webkit-mask:var(--cv3-vein-mask) 72% 42% / min(78vw,980px) min(78vw,980px) no-repeat;
  mask:var(--cv3-vein-mask) 72% 42% / min(78vw,980px) min(78vw,980px) no-repeat;
  filter:blur(calc(5px + min(18px,abs(var(--cv3-velocity)) * .16px)));
  transform:translate3d(0,calc(var(--cv3-scroll) * -3.2vh),0) skewX(calc(var(--cv3-velocity) * .012deg));
  mix-blend-mode:soft-light;
}

body.cv3-witness .cv3-room:nth-of-type(3n) .cv3-room-light{
  opacity:.34;
  background:
    var(--cv3-albatre-light) 28% 48% / min(68vw,920px) auto no-repeat,
    var(--cv3-albatre-mist) 68% 36% / min(70vw,920px) auto no-repeat;
}

/* Un écran tactile ne compose qu'une seule nappe atmosphérique. Cette règle
   arrive après le bloc témoin afin que le budget mobile ne soit pas annulé
   par la cascade tardive du matériau. */
@media (max-width:760px),(hover:none),(pointer:coarse){
  body.cv3-witness .cv3-room .cv3-room-light,
  body.cv3-witness .cv3-room:nth-of-type(3n) .cv3-room-light{
    opacity:.32;
    background:var(--cv3-albatre-light) 58% 42% / 156vw auto no-repeat;
    -webkit-mask:none;
    mask:none;
    filter:none;
    transform:none;
    animation:none;
  }
}

@media (prefers-reduced-motion:reduce){
  body.cv3-witness .cv3-room .cv3-room-light,
  body.cv3-witness .cv3-room:nth-of-type(3n) .cv3-room-light{
    -webkit-mask:none;
    mask:none;
    filter:none;
    transform:none;
    animation:none;
  }
}

body.cv3-witness .cv3-material--carrara{
  --cv3-local-relief:.14;
  --cv3-local-atmosphere:.10;
  color:#17191b !important;
  background:
    linear-gradient(115deg,rgba(245,247,243,.84),rgba(224,232,229,.8)),
    linear-gradient(118deg,transparent 0 18%,rgba(114,121,125,.10) 18.25%,transparent 18.7% 42%,rgba(255,255,255,.52) 42.3%,transparent 43%),
    var(--cv3-albatre) center / clamp(520px,68vw,1024px) auto,
    linear-gradient(155deg,var(--cv3-carrara-hi),var(--cv3-carrara) 58%,#d7dad7) !important;
}

body.cv3-witness .cv3-material--ivory{
  --cv3-local-relief:.14;
  --cv3-local-atmosphere:.10;
  color:#1b1b1a !important;
  background:
    linear-gradient(115deg,rgba(243,247,243,.86),rgba(215,225,222,.8)),
    repeating-linear-gradient(102deg,rgba(28,29,30,.018) 0 1px,transparent 1px 54px),
    var(--cv3-calcite) center / clamp(520px,68vw,1024px) auto,
    linear-gradient(145deg,#f3f2ee,var(--cv3-ivory)) !important;
}

body.cv3-witness .cv3-material--glass{
  color:#f2efe8 !important;
  background:
    linear-gradient(110deg,rgba(255,255,255,.035),transparent 36% 64%,rgba(255,255,255,.06)),
    radial-gradient(62% 90% at 78% 15%,rgba(207,224,226,.18),transparent 70%),
    var(--cv3-calcite) 82% 40% / min(54vw,780px) auto no-repeat,
    linear-gradient(155deg,#273036,#11181b 68%) !important;
}

body.cv3-witness .cv3-material--smoke,
body.cv3-witness .cv3-material--obsidian{
  color:#f0ede7 !important;
  background:
    radial-gradient(88% 56% at 10% 0,rgba(199,204,203,.14),transparent 70%),
    var(--cv3-albatre-mist) 84% 30% / min(68vw,920px) auto no-repeat,
    linear-gradient(145deg,var(--cv3-smoke),var(--cv3-obs)) !important;
}

/* Clôture visuelle 2026-09-05 — six surfaces éditoriales vérifiées.
   Le masque de veines agrandi produisait des taches derrière la lecture ;
   roi-room-light portait encore sa nappe à .86 malgré le budget local.
   Conserver le light sweep fourni, sans masque ni montée animée d'opacité.
   Sélecteurs bornés : aucun autre chapitre About, notamment #folco. */
html.lux body[data-page="savoir-faire"].cv3-nonhome main > section:nth-of-type(4) > .cv3-room-light,
html.lux body[data-page="pensee"].cv3-nonhome .pensee-body > .cv3-room-light,
html.lux body[data-page="about"].cv3-nonhome main > section:nth-of-type(6) > .cv3-room-light,
html.lux body[data-page="about"].cv3-nonhome main > .ph > .cv3-room-light,
html.lux body[data-page="portfolio"].cv3-nonhome .v6-inline-portfolio-110 > .cv3-room-light,
html.lux body[data-page="portfolio"].cv3-nonhome .v923-chantiers-teaser > .cv3-room-light{
  opacity:.10 !important;
  background:var(--cv-as-light-sweep) 62% 42% / min(130vw,980px) auto no-repeat;
  -webkit-mask:none;
  mask:none;
  filter:none;
  transform:none;
  animation:none;
}

/* Les quatre contrechamps gardent leur profondeur ardoise et leur brume,
   mais sous un glacis calme ; le relief reste perceptible à courte distance. */
html.lux body[data-page="about"].cv3-nonhome main > section:nth-of-type(6),
html.lux body[data-page="about"].cv3-nonhome main > .ph,
html.lux body[data-page="portfolio"].cv3-nonhome .v6-inline-portfolio-110,
html.lux body[data-page="portfolio"].cv3-nonhome .v923-chantiers-teaser{
  --cv3-local-relief:.14;
  background:
    linear-gradient(145deg,rgba(39,48,54,.94),rgba(17,24,27,.92)),
    var(--cv3-albatre-mist) 84% 30% / min(68vw,920px) auto no-repeat,
    linear-gradient(145deg,var(--cv3-smoke),var(--cv3-obs)) !important;
}

/* Le manifeste Pensée conserve sa nappe de soie et le grain source intact,
   sans superposer un bruit à forte densité aux seize propositions. */
html.lux body[data-page="pensee"].cv3-nonhome .pensee-body > .oc-silk-layer{
  opacity:.20;
}
html.lux body[data-page="pensee"].cv3-nonhome .pensee-body > .oc-silk-layer::after{
  opacity:.035;
}

body.cv3-witness :is(.cv3-material--glass,.cv3-material--smoke,.cv3-material--obsidian) :is(h1,h2,h3,.dxb-t,.display){
  color:#f2efe8 !important;
  text-shadow:0 2px 34px rgba(0,0,0,.72),0 1px 2px rgba(0,0,0,.74);
}

body.cv3-witness :is(.cv3-material--glass,.cv3-material--smoke,.cv3-material--obsidian)::before{
  color:#f2efe8 !important;
  opacity:.075 !important;
}

body.cv3-witness :is(.cv3-material--carrara,.cv3-material--ivory) :is(h1,h2,h3,.dxb-t,.display){
  color:#191b1c !important;
  text-shadow:none;
}

body.cv3-witness .cv3-material--carrara :is(p,li,.body,.lead),
body.cv3-witness .cv3-material--ivory :is(p,li,.body,.lead){
  color:rgba(24,27,29,.76) !important;
}

body.cv3-witness .cv3-material--glass :is(p,li,.body,.lead),
body.cv3-witness :is(.cv3-material--smoke,.cv3-material--obsidian) :is(p,li,.body,.lead){
  color:rgba(239,237,231,.78) !important;
}

body.cv3-witness .cv3-monument-title{
  max-width:12.5ch;
  text-wrap:balance;
  letter-spacing:var(--cv-typo-current-ls, -.045em);
  line-height:var(--cv-typo-current-lh, .88);
}

body.cv3-witness .cv3-plane{
  outline:0;
  box-shadow:0 34px 110px rgba(12,14,15,.2);
}

body.cv3-witness .cv3-plane--monument{ min-height:clamp(520px,72vw,980px); }
body.cv3-witness .cv3-plane--detail{ aspect-ratio:4/5; }
body.cv3-witness .cv3-plane--floating{ aspect-ratio:5/4; }
body.cv3-witness .cv3-plane--horizon{ aspect-ratio:16/8.4; }

body.cv3-witness .cv3-plane::before{
  content:"";
  position:absolute;
  z-index:3;
  inset:0;
  pointer-events:none;
  opacity:.46;
  background:linear-gradient(112deg,transparent 30%,rgba(244,242,235,.24) 49.8%,transparent 51%);
  mix-blend-mode:screen;
  transform:translateX(-72%);
  transition:transform 1.65s var(--cv3-ease);
}

body.cv3-witness .cv3-plane::after{
  background:
    radial-gradient(32% 44% at var(--cv3-media-x) var(--cv3-media-y),rgba(247,245,239,.22),transparent 72%),
    linear-gradient(104deg,transparent 43%,rgba(218,222,224,.11) 49.7%,transparent 51.2%) !important;
  opacity:.58;
  mix-blend-mode:screen;
  backdrop-filter:saturate(.88);
}

body.cv3-witness .cv3-plane :is(img,video){
  will-change:transform,filter;
  transform:scale(calc(1.018 + min(.018,abs(var(--cv3-velocity)) * .00035)));
}

@media (hover:hover) and (pointer:fine){
  body.cv3-witness .cv3-plane:hover::before{ transform:translateX(72%); }
}

/* DUBAÏ — parcours de pièces, macro puis détail, verre puis pierre. */
body.cv3-witness-dubai .dxb-hero{
  min-height:100svh;
}

/* Réserve de lecture locale : protection du seul bloc éditorial, sans voile
   uniforme sur la photographie de la réception. */
body.cv3-witness-dubai .dxb-hero::after{
  background:
    radial-gradient(62% 74% at 23% 70%,rgba(5,7,8,.72),rgba(5,7,8,.34) 47%,transparent 78%),
    linear-gradient(112deg,transparent 36%,rgba(231,233,231,.08) 49.7%,transparent 52%);
  mix-blend-mode:normal;
}

body.cv3-witness-dubai .dxb-hero :is(h1,p,.eyebrow){
  position:relative;
  z-index:2;
}

body.cv3-witness-dubai .cv3-room:not(:first-child){
  margin-top:clamp(96px,9vw,136px) !important;
}

body.cv3-witness-dubai .dxb-hero :is(video,.dxb-v16,.dxb-v9){
  filter:saturate(.72) contrast(1.07) brightness(.74);
  transform:scale(1.035);
}

body.cv3-witness-dubai .dxb-veil{
  background:linear-gradient(96deg,rgba(8,10,12,.88) 0 18%,rgba(8,10,12,.38) 56%,rgba(8,10,12,.18)) !important;
}

@media (min-width:980px){
  body.cv3-witness-dubai .dxb-ch .split{
    display:grid;
    grid-template-columns:repeat(12,minmax(0,1fr));
    gap:clamp(24px,3vw,56px);
    align-items:center;
  }
  body.cv3-witness-dubai .dxb-ch .split > :first-child{ grid-column:1 / span 4; }
  body.cv3-witness-dubai .dxb-ch .split > :last-child{ grid-column:6 / -1; }
  body.cv3-witness-dubai .dxb-ch:nth-of-type(2n+1) .split > :first-child{ grid-column:2 / span 7; }
  body.cv3-witness-dubai .dxb-ch:nth-of-type(2n+1) .split > :last-child{ grid-column:10 / -1; }
  body.cv3-witness-dubai .dxb-ch:nth-of-type(4n) .dxb-media{ transform:translateY(clamp(42px,6vw,92px)); }
}

body.cv3-witness-dubai .dxb-media{
  min-height:clamp(520px,62vw,900px);
  margin:0;
}

body.cv3-witness-dubai .dxb-media :is(picture,video,.dxb-fb,img){
  width:100%;height:100%;object-fit:cover;
}

body.cv3-witness-dubai .dxb-full{
  width:min(1520px,100%);
  margin-inline:auto;
  display:grid;
  grid-template-columns:minmax(280px,.56fr) minmax(0,1.44fr);
  align-items:end;
  gap:clamp(34px,6vw,104px);
}

body.cv3-witness-dubai .dxb-full .dxb-media{ min-height:min(78svh,900px); }
body.cv3-witness-dubai .dxb-t{ font-size:var(--cv-typo-current-fs, clamp(48px,6.8vw,112px)); line-height:var(--cv-typo-current-lh, .9); letter-spacing:var(--cv-typo-current-ls, -.045em); }
body.cv3-witness-dubai .dxb-cap{ backdrop-filter:blur(16px); background:rgba(11,13,14,.62); color:#efede8; }

/* INSTITUTION — pages comme salons successifs, image hors grille. */
body.cv3-witness-institution .ph{ min-height:92svh; }
body.cv3-witness-institution .ph > .container{
  box-sizing:border-box;
  width:min(1180px,calc(100% - 80px));
  max-width:min(1180px,calc(100% - 80px));
  padding-right:clamp(36px,4vw,68px);
}
body.cv3-witness-institution .ph-h1{
  max-width:min(14ch,100%);
  font-size:var(--cv-typo-current-fs, clamp(64px,7.2vw,104px));
  line-height:var(--cv-typo-current-lh, .9);
  text-wrap:balance;
}
body.cv3-witness-institution .ph-h1 > span,
body.cv3-witness-institution .ph-h1 > em{
  white-space:normal;
}
body.cv3-witness-institution .ph-sub{
  max-width:min(580px,100%);
}
body.cv3-witness-institution .folco-grid{ gap:0; }
body.cv3-witness-institution .folco-portrait{ min-height:86svh; }
body.cv3-witness-institution .folco-text{ padding:clamp(70px,10vw,170px); }
body.cv3-witness-institution .cv3-material--carrara .split,
body.cv3-witness-institution .cv3-material--ivory .split{ align-items:center; gap:clamp(56px,9vw,150px); }
body.cv3-witness-institution .cv3-material--carrara img,
body.cv3-witness-institution .cv3-material--ivory img{ box-shadow:0 42px 120px rgba(24,26,28,.16); }
/* Le moteur historique attendait la classe `.in` tandis que l'orchestrateur
   unique libère désormais les scènes avec `.cv3-in`. La citation ne doit
   jamais rester fermée : l'effet demeure derrière, la lecture passe devant. */
body.cv3-witness-institution .cine-quote.cv3-in::after{ transform:scaleY(1); }
body.cv3-witness-institution .cine-quote.cv3-in blockquote,
body.cv3-witness-institution .cine-quote.cv3-in figcaption{
  opacity:1;
  filter:none;
  transform:none;
}
body.cv3-witness-institution .cine-quote{
  box-sizing:border-box;
  padding:clamp(54px,7vw,116px) clamp(34px,8vw,128px);
  aspect-ratio:auto !important;
  min-height:clamp(680px,84svh,860px) !important;
  display:flex;
  flex-direction:column;
  justify-content:center;
}
/* La séquence cinématique emploie un film vertical comme matière de fond.
   Il ne doit jamais imposer sa hauteur intrinsèque au document : sinon le
   parcours hérite de plusieurs écrans noirs sans contenu après la citation. */
body.cv3-witness-institution .cine--maison > .cine-bg{
  position:absolute !important;
  inset:0 !important;
  width:100% !important;
  height:100% !important;
  object-fit:cover !important;
}
body.cv3-witness-institution .cine-quote blockquote{
  max-width:17ch;
  margin:0;
  font-size:var(--cv-typo-current-fs, clamp(44px,5.4vw,84px));
  line-height:var(--cv-typo-current-lh, 1.02);
  letter-spacing:var(--cv-typo-current-ls, -.035em);
}
body.cv3-witness-institution .cine-quote figcaption{
  margin-top:clamp(28px,3.5vw,52px);
  font-size:var(--cv-typo-current-fs, clamp(11px,.85vw,14px));
  letter-spacing:var(--cv-typo-current-ls, .16em);
  text-transform:var(--cv-typo-current-tt, uppercase);
}
body.cv3-witness-institution .cine-meta--tl{
  box-sizing:border-box;
  padding-inline:clamp(80px,8vw,128px);
}
/* Les mots du moteur glyphe historique étaient laissés en boîtes inline alors
   que chaque lettre est déjà une boîte animée. À grande taille cela faisait
   s'effondrer la métrique de ligne et superposait les caractères. */
body.cv3-witness-institution h2.oc-glyph .oc-gw{
  display:inline-block !important;
  white-space:nowrap;
  vertical-align:baseline;
}
body.cv3-witness-institution h2.oc-glyph .oc-gc{
  opacity:1;
  filter:none;
  transform:none;
}
/* La ligne romaine, plus fine que l'italique, doit rester pleinement opaque
   sur la chambre obsidienne. Aucun effet de matière ne prend la priorité sur
   la lecture. */
body.cv3-witness-institution [data-i="about_proj_h1"],
body.cv3-witness-institution [data-i="about_proj_h1"] .oc-gw,
body.cv3-witness-institution [data-i="about_proj_h1"] .oc-gc{
  color:#f4f1ea !important;
  -webkit-text-fill-color:#f4f1ea !important;
  -webkit-text-stroke:0 transparent !important;
  opacity:1 !important;
  filter:none !important;
  mix-blend-mode:normal !important;
  text-shadow:0 2px 34px rgba(0,0,0,.72),0 1px 2px rgba(0,0,0,.82);
}
body.cv3-witness-institution .sec--noir .display > span,
body.cv3-witness-institution .sec--noir .display > span .oc-gw,
body.cv3-witness-institution .sec--noir .display > span .oc-gc{
  color:#f4f1ea !important;
  -webkit-text-fill-color:#f4f1ea !important;
  background:none !important;
  opacity:1 !important;
  filter:none !important;
  mix-blend-mode:normal !important;
}
body.cv3-witness-institution .cv912-memory-compact{
  box-sizing:border-box;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  width:100%;
  min-height:64px;
  padding:18px clamp(22px,5vw,72px);
  background:#060708;
  border-top:1px solid rgba(202,205,208,.18);
  color:#f4f1ea;
  font-family:var(--cv-typo-current-ff, var(--font-ui,sans-serif));
  font-size:var(--cv-typo-current-fs, 9px);
  line-height:var(--cv-typo-current-lh, 1.5);
  letter-spacing:var(--cv-typo-current-ls, .2em);
  text-decoration:none;
  text-transform:var(--cv-typo-current-tt, uppercase);
}
body.cv3-witness-institution .cv912-memory-compact__delta{ color:rgba(226,229,232,.72); }

body.cv3-witness-institution .cv3-presence-dubai{
  width:min(92vw,1420px);
  min-height:min(72svh,860px);
  margin:clamp(90px,12vw,190px) auto -5vw;
}
body.cv3-witness-institution .cv3-presence-dubai picture,
body.cv3-witness-institution .cv3-presence-dubai img{ display:block;width:100%;height:100%;object-fit:cover; }
body.cv3-witness-institution .cv3-presence-dubai figcaption{
  display:grid;grid-template-columns:auto 1fr auto;gap:20px;align-items:center;
  padding:18px 4px;color:rgba(240,238,232,.72);font-size:var(--cv-typo-current-fs, 9px);letter-spacing:var(--cv-typo-current-ls, .18em);text-transform:var(--cv-typo-current-tt, uppercase);
}
body.cv3-witness-institution .cv3-presence-dubai figcaption i{ height:1px;background:linear-gradient(90deg,rgba(230,229,225,.42),transparent); }

/* PORTFOLIO — une cimaise asymétrique, pas une mosaïque uniforme. */
body.cv3-witness-portfolio .ph{ min-height:100svh; }
body.cv3-witness-portfolio .ph-bg{ filter:saturate(.7) contrast(1.08) brightness(.74); }
body.cv3-witness-portfolio .v6-inline-portfolio-32{
  display:grid !important;
  grid-template-columns:repeat(12,minmax(0,1fr)) !important;
  gap:clamp(20px,3vw,54px) !important;
  align-items:start !important;
}
body.cv3-witness-portfolio .v6-inline-portfolio-32 > a{
  grid-column:span 7;
  min-height:clamp(520px,62vw,900px);
  position:relative;
  overflow:hidden;
  background:#111;
}
body.cv3-witness-portfolio .v6-inline-portfolio-32 > a:nth-child(2n){ grid-column:6 / -1; margin-top:clamp(80px,14vw,220px); }
body.cv3-witness-portfolio .v6-inline-portfolio-32 > a:nth-child(3n){ grid-column:2 / span 5; }
body.cv3-witness-portfolio .v6-inline-portfolio-32 > a img{ width:100%;height:100%;object-fit:cover;filter:saturate(.78) contrast(1.04);transition:transform 1.6s var(--cv3-ease); }
body.cv3-witness-portfolio .v6-inline-portfolio-32 > a:hover img{ transform:scale(1.04); }
body.cv3-witness-portfolio .v6-inline-portfolio-32 > a::after{
  content:"";
  position:absolute;
  z-index:2;
  inset:38% 0 0;
  pointer-events:none;
  background:linear-gradient(180deg,transparent,rgba(4,7,10,.22) 28%,rgba(4,7,10,.88));
}
body.cv3-witness-portfolio .v6-inline-portfolio-32 > a > div:last-child{
  position:absolute;z-index:3;left:clamp(22px,3vw,52px);right:clamp(22px,3vw,52px);bottom:clamp(22px,3vw,48px);color:#f4f1ea;
}
body.cv3-witness-portfolio .v6-inline-portfolio-32 > a > div:last-child :is(p,h3,span,em){
  color:#f4f1ea !important;
  -webkit-text-fill-color:#f4f1ea !important;
  text-shadow:0 2px 24px rgba(0,0,0,.68);
}
body.cv3-witness-portfolio .ba-after{
  z-index:1;
  clip-path:none !important;
}
body.cv3-witness-portfolio .ba-before{
  z-index:2;
  clip-path:inset(0 calc(100% - var(--pos)) 0 0);
}
body.cv3-witness-portfolio .ba-before img,
body.cv3-witness-portfolio .ba-after img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
}
body.cv3-witness-portfolio .ba-handle{ z-index:3; }
body.cv3-witness-portfolio .ba-range{ z-index:4; }
body.cv3-witness-portfolio .ba-labels{
  display:flex;
  justify-content:space-between;
  gap:24px;
  padding-top:12px;
}
body.cv3-witness-portfolio .ba-labels .ba-lbl{
  max-width:48%;
  color:rgb(52,76,80);
  font-family:var(--cv-typo-current-ff, var(--font-ui,sans-serif));
  font-size:var(--cv-typo-current-fs, 9px);
  line-height:var(--cv-typo-current-lh, 1.5);
  letter-spacing:var(--cv-typo-current-ls, .14em);
  text-shadow:none;
  text-transform:var(--cv-typo-current-tt, uppercase);
}

body[data-page="portfolio"] .tension-note > span{
  color:oklch(.2359 calc(var(--ol-c-body)*.635) var(--ol-h) / .78);
}

body[data-page="projets-metz"] .int-block-ey{
  color:var(--c-steel);
}
body.cv3-witness-portfolio .ba-labels .ba-lbl:last-child{ text-align:right; }
body.cv3-witness-portfolio .ba--single .ba-after{ inset:0; }
body.cv3-witness-portfolio .ba-labels--single{ justify-content:flex-end; }
body.cv3-witness-portfolio .ba-labels--single .ba-lbl{ max-width:100%; }
body.cv3-witness-portfolio .v6-inline-portfolio-85 :is(p,h3,span,em){
  color:#17191b !important;
  -webkit-text-fill-color:#17191b !important;
  opacity:1 !important;
}
body.cv3-witness-portfolio .v6-inline-portfolio-96{
  position:relative;
  overflow:hidden;
  color:#f4f1ea;
  background:
    radial-gradient(circle at 78% 18%,rgba(204,208,211,.12),transparent 34%),
    linear-gradient(132deg,#17191b,#26292b 58%,#111315) !important;
  border:1px solid rgba(210,214,217,.24);
  box-shadow:0 32px 90px rgba(21,24,26,.18);
}
body.cv3-witness-portfolio .v6-inline-portfolio-96::after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:linear-gradient(118deg,transparent 48%,rgba(236,235,230,.07) 48.2%,transparent 49%);
}
body.cv3-witness-portfolio .v6-inline-portfolio-97{ position:relative;z-index:1; }
html body.cv3-witness-portfolio main .v6-inline-portfolio-96 .kicker{
  color:#d5dfdf !important;
  -webkit-text-fill-color:#d5dfdf !important;
}
body.cv3-witness-portfolio .v6-inline-portfolio-98,
body.cv3-witness-portfolio .v6-inline-portfolio-98 :is(span,em){
  color:#f4f1ea !important;
  -webkit-text-fill-color:#f4f1ea !important;
}
body.cv3-witness-portfolio .v6-inline-portfolio-99{ background:rgba(240,238,232,.055) !important; }
body.cv3-witness-portfolio :is(.v6-inline-portfolio-100,.v6-inline-portfolio-103,.v6-inline-portfolio-106){
  background:rgba(9,11,13,.32) !important;
  border-color:rgba(218,220,221,.18) !important;
}
html body.cv3-witness-portfolio main :is(.v6-inline-portfolio-101,.v6-inline-portfolio-104,.v6-inline-portfolio-107){
  color:rgba(244,241,234,.72) !important;
  -webkit-text-fill-color:rgba(244,241,234,.72) !important;
  opacity:1 !important;
}
html body.cv3-witness-portfolio main :is(.v6-inline-portfolio-102,.v6-inline-portfolio-105,.v6-inline-portfolio-108){
  color:#f4f1ea !important;
  -webkit-text-fill-color:#f4f1ea !important;
  opacity:1 !important;
}
html body.cv3-witness-portfolio main .v6-inline-portfolio-109{
  color:rgba(244,241,234,.76) !important;
  -webkit-text-fill-color:rgba(244,241,234,.76) !important;
  opacity:1 !important;
}
html body.cv3-witness-portfolio main .v6-inline-portfolio-112,
html body.cv3-witness-portfolio main .v6-inline-portfolio-112 :is(span,em){
  color:#f4f1ea !important;
  -webkit-text-fill-color:#f4f1ea !important;
  background:none !important;
  background-image:none !important;
  mix-blend-mode:normal !important;
  opacity:1 !important;
  filter:none !important;
  text-shadow:0 12px 46px rgba(0,0,0,.2);
}
body.cv3-witness-portfolio .cv912-memory-compact{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  width:100%;
  min-height:64px;
  padding:18px clamp(22px,5vw,72px);
  color:#f4f1ea;
  background:#060708;
  border-top:1px solid rgba(214,217,219,.2);
  font-family:var(--cv-typo-current-ff, var(--font-ui,sans-serif));
  font-size:var(--cv-typo-current-fs, 9px);
  line-height:var(--cv-typo-current-lh, 1.5);
  letter-spacing:var(--cv-typo-current-ls, .2em);
  text-decoration:none;
  text-transform:var(--cv-typo-current-tt, uppercase);
}
body.cv3-witness-portfolio .cv912-memory-compact__name{ color:#f4f1ea; }
body.cv3-witness-portfolio .cv912-memory-compact__delta{ color:rgba(226,229,232,.72); }
body.cv3-witness-portfolio .cp-card{
  display:grid;grid-template-columns:minmax(0,1.45fr) minmax(300px,.55fr);min-height:min(74svh,850px);background:#111315;
}
body.cv3-witness-portfolio .cp-card:nth-child(even){ grid-template-columns:minmax(300px,.55fr) minmax(0,1.45fr); }
body.cv3-witness-portfolio .cp-card:nth-child(even) video{ order:2; }
body.cv3-witness-portfolio .cp-card :is(video,img){ width:100%;height:100%;object-fit:cover; }
body.cv3-witness-portfolio .cp-card figcaption{ padding:clamp(40px,5vw,86px);align-self:center; }

/* CONTACT — seuil sculpté, formulaire Carrara, adresses en plans décalés. */
body.cv3-witness-contact .ph{ min-height:96svh; }
body.cv3-witness-contact .ph > .container{
  flex:0 1 1280px;
  width:calc(100% - 96px);
  max-width:1280px;
  margin-inline:auto;
  padding-inline:0;
}
html body.cv3-witness-contact .ph-h1{ line-height:var(--cv-typo-current-lh, 1.04) !important; color:#243840 !important; text-shadow:none; }
html body.cv3-witness-contact .ph .ph-h1 :is(span,em){
  color:#243840 !important;
  -webkit-text-fill-color:#243840 !important;
  background:none !important;
  text-shadow:none !important;
}
body.cv3-witness-contact .ph-h1 em{
  display:block;
  margin-top:.06em;
  color:#435f69 !important;
  opacity:.92;
}
body.cv3-witness-contact .contact-intake{
  background:
    linear-gradient(112deg,transparent 20%,rgba(116,122,126,.12) 20.2%,transparent 20.7%),
    linear-gradient(150deg,#f2f6f2,#dce5e1) !important;
}
body.cv3-witness-contact .contact-intake .contact-form{
  padding:clamp(34px,5vw,78px);
  background:rgba(255,255,255,.44);
  border:1px solid rgba(76,81,84,.16);
  box-shadow:0 34px 120px rgba(30,33,35,.10);
  backdrop-filter:blur(18px);
}
body.cv3-witness-contact .contact-offices{ overflow:visible; }
body.cv3-witness-contact .v6-inline-contact-36{
  display:grid !important;grid-template-columns:repeat(12,minmax(0,1fr)) !important;gap:clamp(24px,3vw,52px) !important;
}
body.cv3-witness-contact .v6-inline-contact-36 > div{ grid-column:span 7;position:relative; }
body.cv3-witness-contact .v6-inline-contact-36 > div:nth-child(2){ grid-column:6 / -1;margin-top:clamp(70px,10vw,150px); }
body.cv3-witness-contact .v6-inline-contact-36 > div:nth-child(3){ grid-column:2 / span 9;margin-top:clamp(30px,5vw,80px); }
body.cv3-witness-contact .v6-inline-contact-36 img{ width:100%;min-height:clamp(420px,50vw,740px);object-fit:cover; }

/* PORTALE — Malachite Nocturne : serpentine, pétrole, acier froid et ivoire
   minéral. Aucun bordeaux, laiton, champagne ou or dans la branche active. */
body.cv3-witness-portale{
  --cv3-branch-wine:#0b332c;
  --cv3-branch-wine-deep:#050a09;
  --cv3-branch-brass:#71817d;
  --cv3-rake:rgba(149,161,158,.22);
  --cv3-malachite:url("../assets/palette02/malachite_nocturne_1024.webp");
  --cv3-serpentinite:url("../assets/palette02/serpentinite_noire_1024.webp");
  --cv3-petrol-glass:url("../assets/palette02/verre_petrole_1024.webp");
  --cv3-cold-steel:url("../assets/palette02/acier_brosse_froid_1024.webp");
  --cv3-malachite-smoke:url("../assets/palette02/fumee_malachite_01.png");
  --cv3-vein-mask:url("../assets/palette02/vein_reveal_mask_alpha.png");
  --cv3-room-material:linear-gradient(transparent,transparent);
}
body.cv3-witness-portale main{ background:#e4e8e4; }
body.cv3-witness-portale .hero{
  min-height:100svh;
  background:
    radial-gradient(74% 94% at 78% 24%,rgba(20,82,70,.30),transparent 70%),
    var(--cv3-serpentinite) center / min(72vw,1024px) auto no-repeat,
    var(--cv3-branch-wine-deep) !important;
}
body.cv3-witness-portale .hero::after{
  content:"";
  position:absolute;
  z-index:2;
  inset:0;
  pointer-events:none;
  background:
    linear-gradient(90deg,transparent 18%,rgba(5,10,9,.16) 48%,rgba(20,82,70,.12)),
    var(--cv3-malachite) 78% 46% / min(68vw,1024px) auto no-repeat;
  -webkit-mask-image:linear-gradient(90deg,transparent 18%,#000 54%,#000),var(--cv3-vein-mask);
  -webkit-mask-size:100% 100%,160vmax 160vmax;
  -webkit-mask-position:center,78% 44%;
  -webkit-mask-repeat:no-repeat;
  -webkit-mask-composite:source-in;
  mask-image:linear-gradient(90deg,transparent 18%,#000 54%,#000),var(--cv3-vein-mask);
  mask-size:100% 100%,160vmax 160vmax;
  mask-position:center,78% 44%;
  mask-repeat:no-repeat;
  mask-composite:intersect;
  mix-blend-mode:soft-light;
  opacity:.26;
}
html body.cv3-witness-portale .hero-overlay{
  background:linear-gradient(90deg,rgba(5,10,9,.95),rgba(5,10,9,.38) 58%,rgba(5,10,9,.66)) !important;
  -webkit-mask:none;
  mask:none;
}
body.cv3-witness-portale .hero-content{ width:min(620px,48vw); }
body.cv3-witness-portale #hero-title{ width:auto;max-width:none; }
body.cv3-witness-portale #hero-title span{ display:block;white-space:nowrap; }
body.cv3-witness-portale #hero-title > span .lw{ display:inline-block !important;width:auto !important; }
body.cv3-witness-portale .philosophy,
body.cv3-witness-portale .private-office{
  background:
    linear-gradient(130deg,rgba(11,51,44,.90),rgba(5,10,9,.87)),
    radial-gradient(68% 90% at 82% 12%,rgba(49,94,83,.26),transparent 70%),
    var(--cv3-petrol-glass) 84% 30% / min(62vw,900px) auto no-repeat,
    var(--cv3-serpentinite) center / min(72vw,1024px) auto no-repeat,
    linear-gradient(145deg,var(--cv3-branch-wine),var(--cv3-branch-wine-deep)) !important;
}
body.cv3-witness-portale :is(.properties,.destinations,.partners){
  color:#11181b !important;
  background:
    radial-gradient(56% 80% at 12% 8%,rgba(255,255,255,.82),transparent 68%),
    url("../assets/palette02/calcite_froide_1024.webp") 10% 0 / min(54vw,820px) auto no-repeat,
    linear-gradient(145deg,#f3f2ee,#d7dad7) !important;
}
body.cv3-witness-portale .stage-seuil{
  min-height:180svh;
  /* `overflow:hidden` hérité de .cv3-chapter neutralisait le sticky :
     la copie du Portale quittait le viewport et laissait un écran noir vide. */
  overflow:clip;
  background:
    linear-gradient(110deg,rgba(7,29,24,.92),rgba(13,44,36,.82)),
    radial-gradient(52% 76% at 20% 18%,rgba(207,224,226,.08),transparent 70%),
    var(--cv3-malachite) 76% 44% / min(66vw,960px) auto no-repeat,
    var(--cv3-serpentinite) center / min(78vw,1024px) auto no-repeat,
    linear-gradient(145deg,#17201e,#050a09 72%) !important;
}
body.cv3-witness-portale .stage-sticky{
  z-index:3;
}
body.cv3-witness-portale .stage-inner{
  position:relative;
  z-index:4;
}
body.cv3-witness-portale .stage-copy{
  position:relative;
  z-index:5;
}
body.cv3-witness-portale .stage-seuil::after{
  content:"";position:absolute;z-index:2;inset:0;pointer-events:none;
  background:
    linear-gradient(110deg,transparent,rgba(101,139,125,.06)),
    linear-gradient(112deg,transparent 34%,rgba(149,161,158,.16) 49.8%,transparent 51%);
  mix-blend-mode:screen;
}
body.cv3-witness-portale .stage-band{
  height:clamp(184px,22svh,236px);
  isolation:isolate;
  overflow:clip;
  background:
    radial-gradient(48% 180% at 18% 50%,rgba(255,255,255,.72),transparent 72%),
    var(--cv3-cold-steel) center / auto 100% no-repeat,
    linear-gradient(108deg,#f3f2ee,#d7dad7) !important;
}
body.cv3-witness-portale .stage-band::after{
  content:"";
  position:absolute;
  z-index:0;
  inset:0;
  pointer-events:none;
  background:
    linear-gradient(104deg,transparent 0 42%,rgba(101,112,120,.22) 49.7%,rgba(255,255,255,.5) 50%,transparent 50.5% 100%);
  transform:translate3d(calc((var(--cv3-scroll) - .5) * 3vw),0,0);
}
body.cv3-witness-portale .stage-band span{
  z-index:2;
  top:50%;
  bottom:auto;
  color:#273036 !important;
  transform:translateY(-50%);
}
body.cv3-witness-portale .stage-office{
  background:
    radial-gradient(54% 150% at 76% 42%,rgba(79,139,121,.18),transparent 72%),
    var(--cv3-petrol-glass) 72% 50% / min(72vw,1024px) auto no-repeat,
    var(--cv3-serpentinite) center / min(76vw,1024px) auto no-repeat,
    linear-gradient(118deg,#0b332c,#050a09) !important;
}
body.cv3-witness-portale .stage-office span{ color:#e4e8e4 !important; }
body.cv3-witness-portale .property-grid{ gap:clamp(28px,4vw,64px); }
body.cv3-witness-portale .property-card{
  background:
    linear-gradient(145deg,rgba(243,242,238,.94),rgba(215,218,215,.88)),
    url("../assets/palette02/calcite_froide_1024.webp") center / 560px auto !important;
  color:#11181b;
  border:1px solid rgba(113,129,125,.24);
  box-shadow:0 34px 90px rgba(5,10,9,.14),inset 0 1px rgba(255,255,255,.72);
}
body.cv3-witness-portale .btn-burgundy,
body.cv3-witness-portale .search-submit{
  background:
    linear-gradient(145deg,rgba(20,82,70,.90),rgba(11,51,44,.94)),
    url("../assets/palette02/malachite_nocturne_1024.webp") 44% 48% / 420px auto,
    linear-gradient(135deg,#145246,#0b332c) !important;
  border-color:rgba(113,129,125,.54) !important;
  color:#e4e8e4 !important;
  box-shadow:inset 0 1px rgba(228,232,228,.18),0 16px 42px rgba(5,10,9,.22);
}
body.cv3-witness-portale .destination-grid{ gap:clamp(18px,2.6vw,44px); }
body.cv3-witness-portale .destination-card:nth-child(even){ margin-top:clamp(48px,7vw,106px); }
body.cv3-witness.cv3-witness-portale .destinations.cv3-material--carrara
  .destination-card .destination-copy h3{
  color:#f2eee7 !important;
  -webkit-text-fill-color:#f2eee7 !important;
  text-shadow:0 2px 18px rgba(0,0,0,.36);
}
html body.cv3-witness-portale .partners-note{
  color:rgba(39,48,54,.68) !important;
  -webkit-text-fill-color:rgba(39,48,54,.68) !important;
}
body.cv3-witness-portale .site-footer > .cv912-memory-compact{
  box-sizing:border-box;
  display:grid;
  grid-template-columns:auto minmax(90px,1fr) auto;
  align-items:center;
  gap:clamp(16px,2.6vw,40px);
  width:min(1180px,calc(100% - clamp(32px,7vw,130px)));
  min-height:68px;
  margin:clamp(28px,4vw,54px) auto 0;
  padding:18px clamp(20px,3.4vw,44px);
  border:1px solid rgba(113,129,125,.28);
  background:
    linear-gradient(112deg,rgba(11,51,44,.76),rgba(5,10,9,.88)),
    radial-gradient(54% 160% at 14% 50%,rgba(79,139,121,.12),transparent 72%);
  color:#e4e8e4;
  font-family:var(--cv-typo-current-ff, var(--font-ui,'Instrument',sans-serif));
  font-size:var(--cv-typo-current-fs, 8.5px);
  line-height:var(--cv-typo-current-lh, 1.5);
  letter-spacing:var(--cv-typo-current-ls, .22em);
  text-decoration:none;
  text-transform:var(--cv-typo-current-tt, uppercase);
  box-shadow:0 26px 80px rgba(0,0,0,.22),inset 0 1px 0 rgba(255,255,255,.045);
}
body.cv3-witness-portale .site-footer > .cv912-memory-compact::before{
  content:"";
  width:clamp(38px,6vw,94px);
  height:1px;
  background:linear-gradient(90deg,rgba(113,129,125,.15),rgba(149,161,158,.82),rgba(113,129,125,.15));
}
body.cv3-witness-portale .site-footer > .cv912-memory-compact::after{
  content:"→";
  color:#95a19e;
  font-size:var(--cv-typo-current-fs, 16px);
  letter-spacing:0;
}
body.cv3-witness-portale .cv912-memory-compact__name{
  color:#e4e8e4;
  white-space:nowrap;
}
body.cv3-witness-portale .cv912-memory-compact__delta{
  margin-left:auto;
  color:rgba(149,161,158,.88);
  text-align:right;
  white-space:nowrap;
}
body.cv3-witness-portale .po-media{ min-height:100%; }
body.cv3-witness-portale .po-media img{ filter:saturate(.72) contrast(1.07) brightness(.82); }

@media (min-width:1181px){
  /* Les deux rails de la branche occupent la rive droite. Les grilles de
     lecture s'arrêtent avant eux : aucun favori, prix ou CTA ne passe dessous. */
  body.cv3-witness-portale :is(.properties,.destinations,.partners) > .wrap{
    width:calc(100% - 236px);
    margin-left:4vw;
    margin-right:auto;
  }
}

/* LUXURY BRANCH — fiche bien : galerie éditoriale Malachite Nocturne. */
body.cv3-witness-luxury-property{
  --cv3-branch-wine:#0b332c;
  --cv3-branch-brass:#71817d;
  background:#e4e8e4;
  color:#11181b;
}
body.cv3-witness-luxury-property main.wrap{
  width:min(1520px,calc(100% - clamp(28px,7vw,132px)));
  padding-top:clamp(64px,8vw,112px);
  background:transparent;
}
body.cv3-witness-luxury-property .bc{ color:#657078; }
body.cv3-witness-luxury-property .bc a{ color:#273036; }
body.cv3-witness-luxury-property .bien-lead{ min-height:0 !important;height:auto !important;background:none !important; }
body.cv3-witness-luxury-property .bien-lead{
  color:rgba(20,82,70,.78) !important;
  letter-spacing:var(--cv-typo-current-ls, .24em);
}
body.cv3-witness-luxury-property .bien-title{ max-width:9ch;font-size:var(--cv-typo-current-fs, clamp(68px,10vw,170px));line-height:var(--cv-typo-current-lh, .84);letter-spacing:var(--cv-typo-current-ls, -.055em);color:#11181b; }
body.cv3-witness-luxury-property .bien-loc{ color:rgba(39,48,54,.68) !important; }
body.cv3-witness-luxury-property .bien-price{ color:rgba(20,82,70,.88) !important; }
body.cv3-witness-luxury-property .bien-gal{
  display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:clamp(22px,4vw,72px);margin-block:clamp(70px,10vw,150px);
}
body.cv3-witness-luxury-property .bien-gal figure:first-child{ grid-column:1 / span 8;min-height:min(78svh,920px); }
body.cv3-witness-luxury-property .bien-gal figure:last-child{ grid-column:7 / -1;min-height:min(66svh,760px);margin-top:clamp(100px,16vw,250px); }
body.cv3-witness-luxury-property .bien-gal img{ width:100%;height:100%;object-fit:cover;filter:saturate(.78) contrast(1.05); }
body.cv3-witness-luxury-property .bien-specs{ border-block:1px solid rgba(101,112,120,.26);padding-block:clamp(32px,4vw,60px); }
body.cv3-witness-luxury-property .bien-desc{ max-width:28ch;margin-left:auto;font-size:var(--cv-typo-current-fs, clamp(28px,3.2vw,52px));line-height:var(--cv-typo-current-lh, 1.16); }

@media (max-width:760px){
  /* L'ancien chapitre WebGL conservait une grille de 680 px et élargissait
     silencieusement la scène à plus de 1 000 px. La scène reste cinématique,
     mais sa copie et ses commandes appartiennent strictement au viewport. */
  body.cv3-witness-portale .stage-seuil,
  body.cv3-witness-portale .stage-sticky{
    width:100%;
    max-width:100%;
    min-width:0;
  }
  body.cv3-witness-portale .stage-inner{
    width:calc(100% - 40px);
    max-width:calc(100% - 40px);
    min-width:0;
    margin-inline:auto;
    grid-template-columns:minmax(0,1fr);
    gap:24px;
    padding-bottom:8svh;
  }
  body.cv3-witness-portale .stage-copy{
    width:100%;
    min-width:0;
  }
  body.cv3-witness-portale .stage-copy :is(.stage-eyebrow,h2,p){
    width:100%;
    max-width:100%;
  }
  body.cv3-witness-portale .stage-copy :is(#ambiance-btn,.orbit-btn){
    display:flex;
    width:100%;
    max-width:100%;
    min-height:48px;
    margin:10px 0 0;
    white-space:normal;
  }
  body.cv3-witness-portale .site-footer > .cv912-memory-compact{
    display:grid;
    grid-template-columns:1fr auto;
    gap:6px 18px;
    min-height:88px;
    padding:20px 16px 22px;
  }
  body.cv3-witness-portale .cv912-memory-compact__name,
  body.cv3-witness-portale .cv912-memory-compact__delta{
    grid-column:1;
    margin:0;
  }
  body.cv3-witness-portale .site-footer > .cv912-memory-compact::after{
    grid-column:2;
    grid-row:1 / span 2;
    align-self:center;
  }
  /* Sur un écran de lecture, aucun médaillon fixe ne doit passer devant une
     photographie, un prix ou un CTA. Les deux accès restent disponibles dans
     l'état menu, dont la scène est précisément réservée à la navigation. */
  body.cv3-witness-portale:not(.menu-open) :is(.caravelli-maison-rail,.cvb-toggle){
    display:none !important;
  }
  body.cv3-witness-portale.menu-open .caravelli-maison-rail{
    display:flex !important;
    right:16px;
    bottom:18px;
  }
  body.cv3-witness-portale.menu-open .cvb-toggle{
    display:flex !important;
    right:76px;
    bottom:18px;
  }
  body.cv3-witness-portale :is(.language-button,.menu-button){
    min-width:44px;
    min-height:44px;
    display:grid;
    place-content:center;
  }
  body.cv3-witness-portale .fx-spot{ display:none !important; }
  body.cv3-witness-portale .caravelli-maison-rail{
    width:48px;
    min-width:48px;
    padding:0;
    justify-content:center;
  }
  body.cv3-witness-portale .caravelli-maison-rail__label{ display:none; }
  body.cv3-witness-institution #aiw{ display:none !important; }
  body.cv3-witness-institution #cur{ display:none !important; }
  body.cv3-witness-portfolio #aiw{ display:none !important; }
  body.cv3-witness-portfolio #cur{ display:none !important; }
  body.cv3-witness-portfolio .cv912-memory-compact{
    align-items:flex-start;
    flex-direction:column;
    gap:5px;
    min-height:74px;
  }
  body.cv3-witness-institution .cine--maison{
    aspect-ratio:auto !important;
    min-height:max(980px,116svh) !important;
  }
  body.cv3-witness .cv3-room{ min-height:0;padding-block:clamp(76px,24vw,120px); }
  body.cv3-witness .cv3-plane--monument,
  body.cv3-witness .cv3-plane--detail,
  body.cv3-witness .cv3-plane--floating,
  body.cv3-witness .cv3-plane--horizon{ min-height:0;aspect-ratio:4/5; }
  body.cv3-witness .cv3-monument-title{ max-width:100%;font-size:var(--cv-typo-current-fs, clamp(50px,14vw,78px)) !important;line-height:var(--cv-typo-current-lh, .9) !important; }
  body.cv3-witness-dubai .dxb-full{ display:block;width:100%; }
  body.cv3-witness-dubai .dxb-full > :first-child{ padding:0 20px 42px; }
  body.cv3-witness-dubai .dxb-media{ min-height:0;aspect-ratio:4/5; }
  body.cv3-witness-dubai .dxb-t{ font-size:var(--cv-typo-current-fs, clamp(44px,12vw,68px)); }
  body.cv3-witness-dubai .dxb-hero .dxb-inner{
    width:calc(100% - 44px) !important;
    max-width:calc(100% - 44px) !important;
    margin-inline:auto !important;
  }
  body.cv3-witness-dubai .dxb-hero .container{
    width:calc(100% - 38px) !important;
    max-width:calc(100% - 38px) !important;
    margin-inline:auto !important;
    padding-inline:0 !important;
  }
  body.cv3-witness-dubai .dxb-k{
    display:block !important;
    width:min(100%,27ch) !important;
    max-width:min(100%,27ch) !important;
    white-space:normal !important;
    overflow-wrap:normal !important;
    line-height:var(--cv-typo-current-lh, 1.68) !important;
    letter-spacing:var(--cv-typo-current-ls, .22em) !important;
  }
  body.cv3-witness-dubai .ph-h1,
  body.cv3-witness-dubai .ph-h1 span,
  body.cv3-witness-dubai .ph-h1 em{
    max-width:100% !important;
    white-space:normal !important;
    overflow-wrap:normal !important;
    word-break:normal !important;
    text-wrap:balance;
  }
  body.cv3-witness-dubai .ph-h1{
    width:min(100%,7.9ch) !important;
    font-size:var(--cv-typo-current-fs, clamp(40px,10.6vw,54px)) !important;
    line-height:var(--cv-typo-current-lh, .96) !important;
    letter-spacing:var(--cv-typo-current-ls, -.045em) !important;
  }
  body.cv3-witness-dubai .ph-h1 em{
    display:block !important;
    font-size:var(--cv-typo-current-fs, clamp(36px,9.8vw,50px)) !important;
    line-height:var(--cv-typo-current-lh, .98) !important;
  }
  body.cv3-witness-dubai .hero-sub{
    width:min(100%,30ch) !important;
    max-width:min(100%,30ch) !important;
    font-size:var(--cv-typo-current-fs, clamp(16px,4.35vw,19px)) !important;
    line-height:var(--cv-typo-current-lh, 1.48) !important;
    overflow-wrap:break-word !important;
  }
  body.cv3-witness-dubai .dxb-t{
    width:min(100%,8ch) !important;
    max-width:min(100%,8ch) !important;
    font-size:var(--cv-typo-current-fs, clamp(38px,10vw,52px)) !important;
    line-height:var(--cv-typo-current-lh, .98) !important;
    letter-spacing:var(--cv-typo-current-ls, -.04em) !important;
    white-space:normal !important;
    overflow-wrap:normal !important;
  }
  body.cv3-witness-dubai .dxb-t em{
    display:block !important;
    max-width:100% !important;
    font-size:var(--cv-typo-current-fs, clamp(38px,10vw,54px)) !important;
    white-space:normal !important;
  }
  body.cv3-witness-dubai .dxb-lead{
    width:min(100%,30ch) !important;
    max-width:min(100%,30ch) !important;
    overflow-wrap:break-word !important;
  }
  body.cv3-witness-dubai .cv3-room:not(:first-child){ margin-top:58px !important; }
  body.cv3-witness-institution .folco-portrait{ min-height:62svh; }
  body.cv3-witness-institution .folco-text{ padding:70px 20px; }
  body.cv3-witness-institution .ph .container{
    flex:0 0 calc(100% - 32px) !important;
    width:calc(100% - 32px) !important;
    max-width:calc(100% - 32px) !important;
    margin-inline:auto !important;
    padding-right:0 !important;
  }
  body.cv3-witness-institution .ph-h1{
    max-width:100% !important;
    font-size:var(--cv-typo-current-fs, clamp(48px,13vw,68px)) !important;
    line-height:var(--cv-typo-current-lh, .94) !important;
    letter-spacing:var(--cv-typo-current-ls, -.045em) !important;
  }
  body.cv3-witness-institution .ph-h1 em{
    display:block !important;
    max-width:100% !important;
    font-size:var(--cv-typo-current-fs, clamp(42px,11.2vw,60px)) !important;
    line-height:var(--cv-typo-current-lh, .96) !important;
    white-space:normal !important;
  }
  body.cv3-witness-institution .ph-sub{
    width:min(100%,29ch) !important;
    max-width:min(100%,29ch) !important;
    font-size:var(--cv-typo-current-fs, clamp(17px,4.65vw,20px)) !important;
    line-height:var(--cv-typo-current-lh, 1.46) !important;
    overflow-wrap:break-word !important;
  }
  body.cv3-witness-portale .hero-content{
    width:calc(100% - 40px) !important;
    max-width:calc(100% - 40px) !important;
    padding-bottom:440px !important;
  }
  body.cv3-witness-portale .hero-intro{
    width:min(100%,28ch) !important;
    max-width:min(100%,28ch) !important;
    font-size:var(--cv-typo-current-fs, clamp(17px,4.7vw,20px)) !important;
    line-height:var(--cv-typo-current-lh, 1.42) !important;
    white-space:normal !important;
    overflow-wrap:break-word !important;
  }
  body.cv3-witness-portale .hero-buttons{
    display:grid !important;
    grid-template-columns:1fr !important;
    gap:10px !important;
  }
  body.cv3-witness-portale .hero-buttons .btn{
    width:100% !important;
    min-height:44px !important;
    color:#f4efe6 !important;
    border-color:rgba(149,161,158,.48) !important;
    background:rgba(11,51,44,.82) !important;
    backdrop-filter:blur(14px) saturate(.82);
    opacity:1 !important;
  }
  body.cv3-witness-portale .search-panel{
    width:calc(100% - 40px) !important;
    bottom:20px !important;
    background:rgba(5,10,9,.9) !important;
    backdrop-filter:blur(18px) saturate(.76);
  }
  body.cv3-witness-portale .search-submit{
    min-height:38px !important;
    margin:8px 16px 14px !important;
    color:#f6efe3 !important;
    background:linear-gradient(90deg,#0b332c,#050a09) !important;
    opacity:1 !important;
  }
  body.cv3-witness-institution .cv3-presence-dubai{ width:calc(100% - 28px);min-height:0;aspect-ratio:3/4;margin-bottom:0; }
  body.cv3-witness-institution .cv3-presence-dubai figcaption{ grid-template-columns:1fr; }
  body.cv3-witness-institution .cv3-presence-dubai figcaption i{ width:100%; }
  body.cv3-witness-portfolio .v6-inline-portfolio-32{ display:block !important; }
  body.cv3-witness-portfolio .v6-inline-portfolio-32 > a{ display:block;min-height:0;aspect-ratio:4/5;margin:0 0 22px !important; }
  body.cv3-witness-portfolio .cp-card,
  body.cv3-witness-portfolio .cp-card:nth-child(even){ display:flex;flex-direction:column;min-height:0; }
  body.cv3-witness-portfolio .cp-card:nth-child(even) video{ order:0; }
  body.cv3-witness-portfolio .cp-card :is(video,img){ aspect-ratio:16/10;height:auto; }
  body.cv3-witness-contact .v6-inline-contact-36{ display:block !important; }
  body.cv3-witness-contact .v6-inline-contact-36 > div{ margin:0 0 72px !important; }
  body.cv3-witness-contact .v6-inline-contact-36 img{ min-height:0;aspect-ratio:4/5; }
  body.cv3-witness-portale .destination-card:nth-child(even){ margin-top:0; }
  body.cv3-witness-luxury-property main.wrap{ width:calc(100% - 32px);padding-top:78px; }
  body.cv3-witness-luxury-property .bien-title{ max-width:100%;font-size:var(--cv-typo-current-fs, clamp(56px,17vw,86px)); }
  body.cv3-witness-luxury-property .bien-gal{ display:block; }
  body.cv3-witness-luxury-property .bien-gal figure{ min-height:0 !important;aspect-ratio:4/5;margin:0 0 18px !important; }
  body.cv3-witness-luxury-property .bien-desc{ margin-left:0;font-size:var(--cv-typo-current-fs, clamp(26px,8vw,38px)); }
}

/* Mémoire Dubaï sur Portale/Luxury Branch : un sceau de bas de page,
   pas un lien brut qui casse la cérémonie. */
body[data-page^="portale"] .site-footer > .cv912-memory-compact,
body.cv3-witness-portale .site-footer > .cv912-memory-compact{
  box-sizing:border-box !important;
  display:grid !important;
  grid-template-columns:1fr auto !important;
  align-items:center !important;
  gap:8px 24px !important;
  width:100% !important;
  min-height:70px !important;
  padding:18px clamp(20px,5vw,76px) !important;
  border-top:1px solid rgba(113,129,125,.34) !important;
  background:
    radial-gradient(circle at 88% 50%,rgba(79,139,121,.14),transparent 34%),
    linear-gradient(112deg,rgba(11,51,44,.985),rgba(5,10,9,.985)) !important;
  color:#e4e8e4 !important;
  font-family:var(--cv-typo-current-ff, var(--font-ui,'Instrument',sans-serif)) !important;
  font-size:var(--cv-typo-current-fs, 9px) !important;
  line-height:var(--cv-typo-current-lh, 1.5) !important;
  letter-spacing:var(--cv-typo-current-ls, .24em) !important;
  text-decoration:none !important;
  text-transform:var(--cv-typo-current-tt, uppercase) !important;
}
body[data-page^="portale"] .site-footer > .cv912-memory-compact::after,
body.cv3-witness-portale .site-footer > .cv912-memory-compact::after{
  content:"→" !important;
  grid-column:2 !important;
  grid-row:1 / span 2 !important;
  align-self:center !important;
  color:#95a19e !important;
  font-size:var(--cv-typo-current-fs, 16px) !important;
  letter-spacing:0 !important;
}
body[data-page^="portale"] .cv912-memory-compact__name,
body.cv3-witness-portale .cv912-memory-compact__name{ color:#e4e8e4 !important; }
body[data-page^="portale"] .cv912-memory-compact__delta,
body.cv3-witness-portale .cv912-memory-compact__delta{
  grid-column:1 !important;
  margin:0 !important;
  color:rgba(149,161,158,.88) !important;
}

@media (max-width:760px){
  body[data-page^="portale"] .site-footer > .cv912-memory-compact,
  body.cv3-witness-portale .site-footer > .cv912-memory-compact{
    min-height:82px !important;
    padding:18px 16px 20px !important;
    gap:5px 16px !important;
  }
}

                                                                             
                                                      
                                                                             
                                                                          
                                                                             
                                                                                
body[data-page="index"] #hero .hero-vid{
  filter:saturate(.94) contrast(1.025) brightness(1.055) sepia(.012) !important;
  overflow:hidden !important;
  isolation:isolate !important;
}

body[data-page="index"] #hero :is(.villa-nappe,.villa-nom,.villa-nuit){
  opacity:0 !important;
  visibility:hidden !important;
  pointer-events:none !important;
}

html.oc-entree-passee body[data-page="index"] #accueil.oc-accueil,
html.oc-entree-passee body[data-page="index"] .oc-accueil{
  display:none !important;
  height:0 !important;
  min-height:0 !important;
  margin:0 !important;
  padding:0 !important;
  overflow:hidden !important;
  visibility:hidden !important;
  pointer-events:none !important;
}

body[data-page="index"] #hero .hero-vid video{
  opacity:.97 !important;
  filter:saturate(.98) contrast(1.025) brightness(1.035) sepia(.012) !important;
}

body[data-page="index"] #hero::after{
  background:
    radial-gradient(50vw 60vh at 68% 16%,rgba(246,241,229,.16),rgba(221,213,196,.08) 42%,transparent 76%),
    radial-gradient(34vw 48vh at 84% 58%,rgba(201,174,124,.11),transparent 72%),
    linear-gradient(90deg,rgba(5,6,7,.66) 0%,rgba(5,6,7,.44) 31%,rgba(5,6,7,.10) 64%,rgba(5,6,7,.20) 100%),
    linear-gradient(0deg,rgba(5,6,7,.40) 0%,transparent 48%) !important;
}

body[data-page="index"] .hero-veil{
  background:
    radial-gradient(42vw 58vh at 72% 30%,rgba(249,245,233,.10),transparent 70%),
    radial-gradient(20vw 30vh at 57% 60%,rgba(201,174,124,.08),transparent 72%),
    linear-gradient(90deg,rgba(5,6,7,.66) 0%,rgba(5,6,7,.42) 34%,rgba(5,6,7,.08) 68%,rgba(5,6,7,.18) 100%),
    linear-gradient(180deg,rgba(5,6,7,.06),rgba(5,6,7,.34)) !important;
}

body[data-page="index"] #hero .hero-body{
  left:auto !important;
  right:auto !important;
  top:auto !important;
  bottom:auto !important;
  inset:auto !important;
  width:min(1120px,calc(100% - clamp(44px,12vw,260px))) !important;
  max-width:1120px !important;
  min-height:calc(100svh - clamp(170px,19vh,216px)) !important;
  margin:0 auto !important;
  padding:clamp(92px,10vh,126px) 0 clamp(128px,15vh,168px) !important;
  display:flex !important;
  flex-direction:column !important;
  justify-content:center !important;
  align-items:flex-start !important;
  box-sizing:border-box !important;
  position:relative !important;
  z-index:5 !important;
  isolation:isolate !important;
  transform:none !important;
}

body[data-page="index"] #hero .hero-event-trace,
html.oc-seuil-passe body[data-page="index"] .dubai-band{
  display:none !important;
  opacity:0 !important;
  visibility:hidden !important;
  pointer-events:none !important;
}

body[data-page="index"] #hero .hero-body > *{
  position:relative !important;
  z-index:2 !important;
}

body[data-page="index"] #hero .hero-body::before{
  content:"" !important;
  position:absolute !important;
  z-index:-1 !important;
  inset:8vh auto 8vh -2.2vw !important;
  width:min(760px,62vw) !important;
  pointer-events:none !important;
  background:
    radial-gradient(closest-side at 20% 48%,rgba(5,6,7,.58),rgba(5,6,7,.31) 50%,transparent 78%),
    linear-gradient(90deg,rgba(5,6,7,.22),transparent 80%) !important;
  filter:blur(12px) !important;
  opacity:.78 !important;
}

body[data-page="index"] #hero .hero-body::after{
  content:"" !important;
  position:absolute !important;
  z-index:-1 !important;
  left:-2.8vw !important;
  top:clamp(116px,17vh,156px) !important;
  width:min(560px,42vw) !important;
  height:1px !important;
  pointer-events:none !important;
  background:linear-gradient(90deg,rgba(201,174,124,.0),rgba(232,228,220,.72),rgba(201,174,124,.30),transparent) !important;
  box-shadow:0 0 24px rgba(232,228,220,.18),0 0 70px rgba(201,174,124,.12) !important;
}

html.oc-seuil-passe body[data-page="index"] .ol-fumee{
  opacity:.86 !important;
  mix-blend-mode:screen !important;
}

html.oc-seuil-passe body[data-page="index"] .ol-fumee-rai{
  opacity:.46 !important;
  filter:blur(18px) brightness(1.24) !important;
}

html.oc-seuil-passe body[data-page="index"] .ol-fumee-vignette{
  opacity:.20 !important;
}

/* Cinema V3 owns the right-hand atmosphere. The legacy smoke stack is removed
   only on this hero: this prevents a second grade and a late full-viewport
   layout-shift source while preserving the original editorial column. */
body[data-page="index"] #hero:has(.cv-cinema-v3) .ol-fumee{
  display:none !important;
}

body[data-page="index"] #hero .hero-sub{
  margin-top:18px !important;
  max-width:min(620px,52vw) !important;
  color:rgba(250,246,236,.91) !important;
  text-shadow:0 16px 48px rgba(0,0,0,.58),0 2px 14px rgba(0,0,0,.54) !important;
}

body[data-page="index"] #hero .hero-h1{
  max-width:min(760px,58vw) !important;
  margin-top:12px !important;
  margin-bottom:16px !important;
  text-shadow:
    0 28px 82px rgba(0,0,0,.58),
    0 2px 16px rgba(0,0,0,.42),
    0 0 34px rgba(232,228,220,.06) !important;
}

body[data-page="index"] #hero .hero-kicker,
body[data-page="index"] #hero .hero-act .btn{
  text-shadow:0 10px 28px rgba(0,0,0,.42) !important;
}

body[data-page="index"] #hero .hero-act{
  margin-top:20px !important;
  position:relative !important;
  isolation:isolate !important;
  width:max-content !important;
  max-width:100% !important;
  padding:10px 12px 10px 0 !important;
}

body[data-page="index"] #hero .hero-act .btn{
  position:relative !important;
  z-index:2 !important;
  padding:10px 14px !important;
  background:rgba(9,9,9,.22) !important;
  border-color:rgba(255,255,255,.58) !important;
  color:rgba(250,246,236,.94) !important;
  backdrop-filter:blur(8px) saturate(1.05) !important;
}

body[data-page="index"] #hero .hero-act .btn-n{
  background:rgba(250,246,236,.94) !important;
  border-color:rgba(250,246,236,.88) !important;
  color:rgba(12,12,11,.92) !important;
}

body[data-page="index"] #hero .hero-act::before{
  content:none !important;
  position:absolute !important;
  z-index:0 !important;
  inset:-8px -14px -8px -10px !important;
  pointer-events:none !important;
  background:linear-gradient(90deg,rgba(5,6,7,.42),rgba(5,6,7,.18),transparent) !important;
  filter:blur(12px) !important;
  opacity:.86 !important;
}

html.oc-seuil-passe body[data-page="index"] .hc-consent{
  right:clamp(14px,2vw,28px) !important;
  bottom:clamp(14px,2vw,26px) !important;
  width:min(calc(100vw - 28px), 520px) !important;
  display:grid !important;
  grid-template-columns:minmax(0,1fr) auto !important;
  grid-template-areas:"title actions" "text actions" !important;
  align-items:center !important;
  column-gap:22px !important;
  row-gap:4px !important;
  padding:11px 14px 10px !important;
  background:linear-gradient(110deg,rgba(8,8,9,.76),rgba(18,16,13,.66)) !important;
  border-color:rgba(232,228,220,.22) !important;
  box-shadow:0 18px 64px rgba(0,0,0,.26),inset 0 1px 0 rgba(255,255,255,.08) !important;
}

html.oc-seuil-passe body[data-page="index"] .hc-consent__titre{
  grid-area:title !important;
  margin-bottom:5px !important;
  font-size:var(--cv-typo-current-fs, 8px) !important;
  letter-spacing:var(--cv-typo-current-ls, .28em) !important;
  white-space:nowrap !important;
}

html.oc-seuil-passe body[data-page="index"] .hc-consent__texte{
  grid-area:text !important;
  margin-bottom:0 !important;
  font-size:var(--cv-typo-current-fs, 11.5px) !important;
  line-height:var(--cv-typo-current-lh, 1.42) !important;
  max-width:100% !important;
}

html.oc-seuil-passe body[data-page="index"] .hc-consent__actions{
  grid-area:actions !important;
  gap:10px !important;
  flex-wrap:nowrap !important;
  align-items:center !important;
}

html.oc-seuil-passe body[data-page="index"] .hc-consent__btn{
  font-size:var(--cv-typo-current-fs, 8.5px) !important;
  min-height:30px !important;
  padding:8px 11px !important;
}

body[data-page="index"] #hero .hero-vid::before,
body[data-page="index"] #hero .hero-vid::after{
  content:"" !important;
  position:absolute !important;
  inset:-12% !important;
  z-index:2 !important;
  pointer-events:none !important;
}

body[data-page="index"] #hero .hero-vid::before{
  background:
    linear-gradient(108deg,transparent 22%,rgba(250,246,236,.055) 38%,rgba(201,174,124,.10) 45%,rgba(250,246,236,.045) 50%,transparent 66%),
    repeating-linear-gradient(102deg,transparent 0 54px,rgba(250,246,236,.030) 55px 56px,transparent 57px 136px) !important;
  mix-blend-mode:screen !important;
  opacity:.30 !important;
  filter:blur(1.2px) !important;
  transform:translate3d(-8%,0,0) rotate(-2deg) !important;
  animation:cvHeroCaustic 11s cubic-bezier(.19,1,.22,1) infinite alternate !important;
}

body[data-page="index"] #hero .hero-vid::after{
  background:
    radial-gradient(22vw 28vh at 60% 46%,rgba(250,246,236,.09),transparent 72%),
    radial-gradient(18vw 20vh at 73% 68%,rgba(201,174,124,.07),transparent 70%),
    radial-gradient(26vw 34vh at 47% 78%,rgba(232,228,220,.07),transparent 76%) !important;
  mix-blend-mode:screen !important;
  opacity:.24 !important;
  filter:blur(10px) !important;
  animation:cvHeroDustBreath 13s cubic-bezier(.37,0,.18,1) infinite alternate !important;
}

@keyframes cvHeroCaustic{
  0%{ transform:translate3d(-10%,1%,0) rotate(-2.6deg); opacity:.44; }
  100%{ transform:translate3d(6%,-1%,0) rotate(1.4deg); opacity:.72; }
}

@keyframes cvHeroDustBreath{
  0%{ transform:translate3d(-2%,1%,0) scale(1.02); opacity:.36; }
  100%{ transform:translate3d(2%,-1.5%,0) scale(1.08); opacity:.55; }
}

@media (max-width:760px){
  @media (pointer:coarse), (hover:none){
    body[data-page="index"] #cur,
    body[data-page="index"] .cur-ring,
    body[data-page="index"] .cur-dot{
      display:none !important;
      opacity:0 !important;
      visibility:hidden !important;
      pointer-events:none !important;
    }
  }

  body[data-page="index"] #hero .hero-vid{
    filter:saturate(.98) contrast(1.045) brightness(1.045) sepia(.012) !important;
  }

  body[data-page="index"] #hero .hero-vid video{
    opacity:1 !important;
    filter:saturate(1) contrast(1.04) brightness(1.035) sepia(.012) !important;
  }

  body[data-page="index"] #hero::after{
    background:
      radial-gradient(78vw 46vh at 72% 18%,rgba(246,241,229,.20),transparent 72%),
      radial-gradient(48vw 38vh at 86% 58%,rgba(201,174,124,.10),transparent 76%),
      linear-gradient(90deg,rgba(5,6,7,.72) 0%,rgba(5,6,7,.50) 50%,rgba(5,6,7,.14) 100%),
      linear-gradient(0deg,rgba(5,6,7,.52) 0%,transparent 58%) !important;
  }

  body[data-page="index"] .hero-veil{
    background:
      radial-gradient(76vw 42vh at 72% 26%,rgba(249,245,233,.24),transparent 70%),
      radial-gradient(42vw 34vh at 52% 56%,rgba(201,174,124,.12),transparent 72%),
      linear-gradient(90deg,rgba(5,6,7,.68),rgba(5,6,7,.28)),
      linear-gradient(180deg,rgba(5,6,7,.06),rgba(5,6,7,.34)) !important;
  }

  body[data-page="index"] #hero .hero-body{
    inset:auto !important;
    left:18px !important;
    right:auto !important;
    top:auto !important;
    bottom:auto !important;
    width:calc(100vw - 36px) !important;
    max-width:calc(100vw - 36px) !important;
    min-height:calc(100svh - 108px) !important;
    margin:0 !important;
    padding:clamp(42px,5vh,60px) 0 clamp(214px,27vh,258px) !important;
    display:flex !important;
    flex-direction:column !important;
    justify-content:flex-start !important;
    align-items:flex-start !important;
    transform:none !important;
  }

  body[data-page="index"] #hero .hero-body::before{
    z-index:0 !important;
    inset:clamp(188px,22vh,226px) -16px 136px -16px !important;
    width:auto !important;
    background:
      radial-gradient(closest-side at 26% 43%,rgba(3,4,5,.82),rgba(3,4,5,.58) 54%,transparent 84%),
      linear-gradient(90deg,rgba(3,4,5,.72),rgba(3,4,5,.48) 64%,rgba(3,4,5,.10) 100%) !important;
    filter:blur(9px) !important;
    opacity:.96 !important;
  }

  body[data-page="index"] #hero .hero-body::after{
    z-index:1 !important;
    left:0 !important;
    top:clamp(240px,28vh,278px) !important;
    width:min(270px,72vw) !important;
    opacity:.72 !important;
  }

  body[data-page="index"] #hero .hero-h1{
    max-width:100% !important;
    width:100% !important;
    font-size:var(--cv-typo-current-fs, clamp(42px,10.8vw,54px)) !important;
    line-height:var(--cv-typo-current-lh, .92) !important;
    letter-spacing:var(--cv-typo-current-ls, -.044em) !important;
    margin-top:8px !important;
    margin-bottom:14px !important;
  }

  body[data-page="index"] #hero .hero-h1 .sln{
    overflow:visible !important;
    padding-block:.035em .09em !important;
  }

  body[data-page="index"] #hero .hero-h1 .sli{
    white-space:normal !important;
    overflow:visible !important;
  }

  body[data-page="index"] #hero .hero-sub{
    max-width:100% !important;
    font-size:var(--cv-typo-current-fs, clamp(15.5px,4.15vw,17px)) !important;
    line-height:var(--cv-typo-current-lh, 1.55) !important;
    margin-top:10px !important;
    color:rgba(250,246,236,.90) !important;
  }

  body[data-page="index"] #hero .hero-ey{
    max-width:100% !important;
    font-size:var(--cv-typo-current-fs, 8px) !important;
    line-height:var(--cv-typo-current-lh, 1.55) !important;
    letter-spacing:var(--cv-typo-current-ls, .32em) !important;
    overflow-wrap:anywhere !important;
  }

  body[data-page="index"] #hero .hero-act{
    display:flex !important;
    flex-direction:column !important;
    align-items:stretch !important;
    gap:10px !important;
    width:min(100%,360px) !important;
    padding:0 !important;
    margin-top:14px !important;
  }

  body[data-page="index"] #hero .hero-act .btn{
    width:100% !important;
    min-height:48px !important;
    padding:13px 18px !important;
    font-size:var(--cv-typo-current-fs, 9px) !important;
    line-height:var(--cv-typo-current-lh, 1.2) !important;
  }

  html.oc-seuil-passe body[data-page="index"] .hc-consent{
    left:14px !important;
    right:14px !important;
    bottom:8px !important;
    width:auto !important;
    grid-template-columns:1fr !important;
    grid-template-areas:"title" "text" "actions" !important;
    row-gap:5px !important;
    padding:9px 11px !important;
    max-height:108px !important;
    overflow:hidden !important;
  }

  html.oc-seuil-passe body[data-page="index"] .hc-consent__titre{
    font-size:var(--cv-typo-current-fs, 7px) !important;
    letter-spacing:var(--cv-typo-current-ls, .25em) !important;
    margin:0 !important;
  }

  html.oc-seuil-passe body[data-page="index"] .hc-consent__texte{
    font-size:var(--cv-typo-current-fs, 10px) !important;
    line-height:var(--cv-typo-current-lh, 1.25) !important;
    margin:0 !important;
  }

  html.oc-seuil-passe body[data-page="index"] .hc-consent__actions{
    display:grid !important;
    grid-template-columns:1fr 1fr !important;
    gap:7px !important;
  }

  html.oc-seuil-passe body[data-page="index"] .hc-consent__btn{
    min-height:44px !important;
    width:100% !important;
    padding:10px 9px !important;
    font-size:var(--cv-typo-current-fs, 7.5px) !important;
  }

  html.oc-seuil-passe body[data-page="index"] :is(#vg-btn,#vg-trigger,.vg-trigger,.vg-panel:not(.is-open)){
    display:none !important;
    opacity:0 !important;
    visibility:hidden !important;
    pointer-events:none !important;
  }
}


/* CV3 P0 2026-08-13 -- accueil sans contamination Dubai */
body[data-page="index"] #hero .hero-event-trace,
body[data-page="index"] .dubai-band,
body[data-page="index"] .cv-vitrine-portals a[href*="dubai"],
body[data-page="index"] .cv-vitrine-portals a[href*="inauguration"]{
  display:none!important;
  visibility:hidden!important;
  pointer-events:none!important;
}
body[data-page="index"] .cv-vitrine-hud span:last-child{
  color:rgba(232,228,220,.64)!important;
}
body[data-page="index"] .cv-home-manifesto{
  position:relative!important;
  isolation:isolate!important;
  overflow:hidden!important;
  min-height:min(88svh,880px)!important;
  color:#111820!important;
  background:
    radial-gradient(58vw 42vw at 18% 24%,rgba(255,255,255,.88),rgba(232,228,220,.28) 44%,transparent 72%),
    linear-gradient(115deg,#f4f6f3 0%,#e4e8e5 43%,#b5c0c1 100%)!important;
}
body[data-page="index"] .cv-home-manifesto::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:1;
  pointer-events:none;
  background:linear-gradient(90deg,rgba(245,247,244,.92) 0 38%,rgba(235,241,239,.22) 62%,transparent 100%);
}
body[data-page="index"] .cv-home-manifesto::after{
  content:"";
  position:absolute;
  inset:-18%;
  z-index:2;
  pointer-events:none;
  background:
    radial-gradient(38vw 26vw at calc(46% + var(--cv-px,0)*8%) 42%,rgba(255,255,255,.30),transparent 68%),
    linear-gradient(104deg,transparent 30%,rgba(213,228,230,.12) 48%,transparent 61%);
  mix-blend-mode:screen;
  opacity:.78;
}
body[data-page="index"] .cv-home-manifesto .cv-manifesto-media{
  z-index:0!important;
  opacity:.88!important;
  filter:none!important;
}
body[data-page="index"] .cv-home-manifesto .cv-manifesto-media img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover!important;
  filter:grayscale(.05) saturate(.72) contrast(1.12) brightness(1.05)!important;
}
                                                                          
body[data-page="index"] .cv-home-manifesto .cv-manifesto-media img:where([data-cv-a6-graded="20261007"]){filter:none !important;}

body[data-page="index"] .cv-home-manifesto .cv-manifesto-media figcaption{
  z-index:5!important;
  color:#f4f1ea!important;
  background:linear-gradient(90deg,rgba(7,9,12,.72),rgba(7,9,12,.18))!important;
  backdrop-filter:blur(10px)!important;
}
body[data-page="index"] .cv-home-manifesto .lux-manifesto{
  position:relative!important;
  z-index:4!important;
  color:#111820!important;
  max-width:min(960px,82vw)!important;
  margin-left:clamp(28px,8vw,132px)!important;
  text-shadow:0 1px 0 rgba(255,255,255,.38),0 22px 70px rgba(14,18,24,.12)!important;
}
body[data-page="index"] .cv-home-manifesto .lux-manifesto p{
  color:#111820!important;
  opacity:1!important;
  line-height:var(--cv-typo-current-lh, .93)!important;
  overflow-wrap:normal!important;
  text-wrap:balance;
}
body[data-page="index"] .cv-home-manifesto .lux-manifesto em{
  color:#29333e!important;
  -webkit-text-fill-color:#29333e!important;
}
@media (max-width:700px){
  body[data-page="index"] .cv-home-manifesto{
    min-height:auto!important;
    padding:78px 0 72px!important;
  }
  body[data-page="index"] .cv-home-manifesto::before{
    background:linear-gradient(180deg,rgba(246,244,238,.94),rgba(246,244,238,.74) 66%,rgba(14,18,24,.28));
  }
  body[data-page="index"] .cv-home-manifesto .lux-manifesto{
    max-width:calc(100vw - 44px)!important;
    margin:0 22px!important;
  }
  body[data-page="index"] .cv-home-manifesto .lux-manifesto p{
    font-size:var(--cv-typo-current-fs, clamp(40px,12.5vw,62px))!important;
    line-height:var(--cv-typo-current-lh, .96)!important;
  }
  body[data-page="index"] .cv-home-manifesto .cv-manifesto-media{
    position:absolute!important;
    inset:0!important;
    min-height:100%!important;
  }
}


/* CV3 P0 2026-08-13 -- fragment Carrara lisible */
body[data-page="index"] .oc-frag-sec{
  min-height:min(82svh,760px)!important;
  padding:clamp(72px,8vh,104px) 0 clamp(64px,8vh,96px)!important;
  background:
    radial-gradient(42vw 38vw at 34% 24%,rgba(246,243,234,.26),transparent 68%),
    radial-gradient(50vw 44vw at 66% 48%,rgba(201,174,124,.12),transparent 72%),
    linear-gradient(118deg,#0b0c0d 0%,#1d1c19 42%,#d9d6cd 100%)!important;
  overflow:hidden!important;
  isolation:isolate!important;
}
body[data-page="index"] .oc-frag-sec::before{
  opacity:.62!important;
  filter:blur(16px)!important;
}
body[data-page="index"] .oc-frag-host{
  inset:-8% -8% auto auto!important;
  width:min(72vw,980px)!important;
  height:110%!important;
  opacity:.82!important;
  filter:brightness(1.08) contrast(1.08) saturate(.68)!important;
}
body[data-page="index"] .oc-frag-cap{
  position:relative!important;
  z-index:5!important;
  width:min(1180px,calc(100% - clamp(44px,10vw,160px)))!important;
  align-self:center!important;
  padding:0!important;
  margin:auto!important;
}
body[data-page="index"] .oc-frag-t{
  max-width:min(920px,78vw)!important;
  margin:0!important;
  font-size:var(--cv-typo-current-fs, clamp(72px,8.2vw,138px))!important;
  line-height:var(--cv-typo-current-lh, .86)!important;
  color:rgba(248,246,239,.96)!important;
  text-shadow:0 24px 88px rgba(0,0,0,.62),0 1px 0 rgba(255,255,255,.18)!important;
  overflow:visible!important;
  padding:.06em 0 .16em!important;
}
body[data-page="index"] .oc-frag-t em{
  color:rgba(231,226,214,.88)!important;
  -webkit-text-fill-color:rgba(231,226,214,.88)!important;
}
body[data-page="index"] .oc-frag-sec + .cv-home-manifesto{
  margin-top:0!important;
}
@media (max-width:700px){
  body[data-page="index"] .oc-frag-sec{
    min-height:auto!important;
    padding:76px 22px 86px!important;
    background:linear-gradient(145deg,#111315 0%,#302f2b 48%,#dedbd2 100%)!important;
  }
  body[data-page="index"] .oc-frag-host{
    inset:0 -42% auto auto!important;
    width:132vw!important;
    opacity:.55!important;
  }
  body[data-page="index"] .oc-frag-cap{
    width:100%!important;
  }
  body[data-page="index"] .oc-frag-t{
    max-width:100%!important;
    font-size:var(--cv-typo-current-fs, clamp(48px,14vw,76px))!important;
    line-height:var(--cv-typo-current-lh, .9)!important;
  }
}


/* CV3 P0 2026-08-13 -- lecture prioritaire accueil interieur */
body[data-page="index"] .oc-frag-host{
  z-index:1!important;
  right:-12vw!important;
  left:auto!important;
  width:min(54vw,760px)!important;
  opacity:.62!important;
  mix-blend-mode:screen!important;
}
body[data-page="index"] .oc-frag-host canvas{
  opacity:.86!important;
}
body[data-page="index"] .oc-frag-cap{
  z-index:8!important;
}
body[data-page="index"] .oc-frag-t{
  max-width:min(760px,64vw)!important;
  font-size:var(--cv-typo-current-fs, clamp(64px,7.4vw,120px))!important;
  color:rgba(250,248,241,.98)!important;
}
body[data-page="index"] .hc-consent{
  max-width:min(420px,calc(100vw - 56px))!important;
  min-height:0!important;
  transform:translateY(10px)!important;
}
body[data-page="index"] .cv-home-manifesto{
  display:grid!important;
  grid-template-columns:minmax(320px,0.92fr) minmax(360px,1.08fr)!important;
  align-items:center!important;
  gap:clamp(34px,6vw,92px)!important;
  padding:clamp(72px,8vh,112px) clamp(34px,7vw,120px)!important;
  min-height:min(92svh,900px)!important;
}
body[data-page="index"] .cv-home-manifesto .cv-manifesto-media{
  position:relative!important;
  grid-column:2!important;
  grid-row:1!important;
  width:100%!important;
  height:min(68vh,620px)!important;
  align-self:center!important;
  justify-self:end!important;
  border:1px solid rgba(17,24,32,.16)!important;
  box-shadow:0 44px 120px rgba(9,12,16,.18)!important;
}
body[data-page="index"] .cv-home-manifesto .lux-manifesto{
  grid-column:1!important;
  grid-row:1!important;
  margin:0!important;
  max-width:680px!important;
  align-self:center!important;
}
body[data-page="index"] .cv-home-manifesto .lux-manifesto p{
  font-size:var(--cv-typo-current-fs, clamp(52px,5.1vw,88px))!important;
  color:#121820!important;
  text-shadow:0 1px 0 rgba(255,255,255,.44),0 20px 80px rgba(14,18,24,.10)!important;
}
body[data-page="index"] .cv-home-manifesto .cv-manifesto-media figcaption{
  left:clamp(18px,2vw,30px)!important;
  right:auto!important;
  bottom:clamp(18px,2vw,30px)!important;
  width:min(420px,calc(100% - 48px))!important;
}
@media (max-width:900px){
  body[data-page="index"] .cv-home-manifesto{
    display:block!important;
    padding:76px 24px 86px!important;
  }
  body[data-page="index"] .cv-home-manifesto .lux-manifesto{
    max-width:100%!important;
    margin:0 0 34px!important;
  }
  body[data-page="index"] .cv-home-manifesto .cv-manifesto-media{
    position:relative!important;
    width:100%!important;
    height:min(52vh,430px)!important;
  }
}
@media (max-width:700px){
  body[data-page="index"] .oc-frag-host{
    right:-54vw!important;
    width:118vw!important;
    opacity:.42!important;
  }
  body[data-page="index"] .oc-frag-t{
    max-width:88vw!important;
    font-size:var(--cv-typo-current-fs, clamp(44px,13vw,70px))!important;
  }
}


/* CV3 P0 2026-08-13 -- micro corrections fragment manifeste */
body[data-page="index"] .oc-frag-sec{
  min-height:min(72svh,690px)!important;
  padding:clamp(54px,6vh,78px) 0 clamp(72px,8vh,96px)!important;
}
body[data-page="index"] .oc-frag-t{
  max-width:min(700px,58vw)!important;
  font-size:var(--cv-typo-current-fs, clamp(54px,6.2vw,96px))!important;
  line-height:var(--cv-typo-current-lh, .89)!important;
  padding-bottom:.22em!important;
}
body[data-page="index"] .oc-frag-host{
  right:-18vw!important;
  width:min(50vw,700px)!important;
  opacity:.52!important;
}
body[data-page="index"] .cv-home-manifesto .cv-manifesto-media figcaption{
  position:absolute!important;
  left:clamp(22px,2.2vw,34px)!important;
  right:auto!important;
  top:auto!important;
  bottom:clamp(22px,2.4vw,38px)!important;
  width:auto!important;
  max-width:min(460px,calc(100% - 68px))!important;
  display:flex!important;
  flex-wrap:wrap!important;
  gap:.42rem .7rem!important;
  align-items:center!important;
  padding:12px 16px!important;
  border:1px solid rgba(246,241,229,.20)!important;
  background:linear-gradient(90deg,rgba(7,9,12,.76),rgba(7,9,12,.34))!important;
  box-shadow:0 24px 70px rgba(0,0,0,.18)!important;
}
body[data-page="index"] .cv-home-manifesto .cv-manifesto-media figcaption span,
body[data-page="index"] .cv-home-manifesto .cv-manifesto-media figcaption b{
  color:#f4f1ea!important;
  opacity:1!important;
  line-height:var(--cv-typo-current-lh, 1.05)!important;
}
body[data-page="index"] .cv-home-manifesto .cv-manifesto-media figcaption span::after{
  content:"";
  display:inline-block;
  width:22px;
  height:1px;
  margin-left:10px;
  vertical-align:middle;
  background:rgba(201,174,124,.72);
}
body[data-page="index"] .hc-consent{
  right:clamp(18px,2vw,28px)!important;
  bottom:clamp(18px,2vh,28px)!important;
  padding:14px 16px!important;
}
body[data-page="index"] .hc-consent__texte{
  max-width:190px!important;
}
@media (max-width:900px){
  body[data-page="index"] .cv-home-manifesto .cv-manifesto-media figcaption{
    max-width:calc(100% - 44px)!important;
    left:22px!important;
    bottom:22px!important;
  }
}
@media (max-width:700px){
  body[data-page="index"] .oc-frag-sec{
    padding:64px 22px 78px!important;
  }
  body[data-page="index"] .oc-frag-t{
    max-width:86vw!important;
    font-size:var(--cv-typo-current-fs, clamp(42px,11.6vw,62px))!important;
  }
  body[data-page="index"] .hc-consent{
    max-width:calc(100vw - 32px)!important;
    right:16px!important;
    left:16px!important;
    bottom:14px!important;
  }
}

/* CV3 P0 2026-08-13 -- verrou lisibilité + accueil intérieur sans Dubai */
body[data-page="index"] :is(.dubai-band,.hero-event-trace,.cv-home-memory,.cv-memory-media,.cv-memory-copy,.cv-memory-axis){
  display:none!important;
  visibility:hidden!important;
  opacity:0!important;
  pointer-events:none!important;
}
body[data-page="index"] :is(.hero-sub,.legacy-copy,.sf-b,.cp-copy,.cv-trans-copy p,.cv-found-copy p,.cv-ending-copy p,.body p,.lead){
  opacity:1!important;
  visibility:visible!important;
  filter:none!important;
  clip-path:none!important;
  transform:none!important;
}
body[data-page="index"] [data-cv3-reveal]:not([data-cv3-reveal="title"]):not([data-cv3-reveal="media"]):not([data-cv3-reveal="line"]){
  opacity:1!important;
  visibility:visible!important;
  filter:none!important;
  clip-path:none!important;
  transform:none!important;
}

/* Fragment Albâtre : effet visible, lecture souveraine, aucun texte parasite. */
html.cv-palette-albatre-active body[data-page="index"] #oc-fragment-sec.oc-frag-sec{
  position:relative!important;
  display:grid!important;
  align-items:center!important;
  min-height:clamp(640px,92svh,900px)!important;
  padding:clamp(76px,9vh,118px) clamp(38px,7vw,126px)!important;
  overflow:hidden!important;
  isolation:isolate!important;
  color:#f6f1e8!important;
  background:
    radial-gradient(58vw 46vw at calc(68% + var(--cv-px,0)*8%) 40%,rgba(207,224,226,.24),transparent 64%),
    url("../assets/palette02/calcite_froide_1024.webp") 82% 40% / min(64vw,980px) auto no-repeat,
    url("../assets/palette02/albatre_sideral_1024.webp") 64% 50% / min(74vw,1080px) auto no-repeat,
    linear-gradient(128deg,#11181b 0%,#273036 46%,#f3f2ee 100%)!important;
}
html.cv-palette-albatre-active body[data-page="index"] #oc-fragment-sec::before{
  content:"";
  position:absolute;
  inset:-18%;
  z-index:1;
  pointer-events:none;
  background:
    url("../assets/palette02/light_sweep_albatre_cold.png") 72% 44% / min(76vw,1080px) auto no-repeat,
    url("../assets/palette02/brume_albatre_01.png") 74% 42% / min(70vw,980px) auto no-repeat;
  -webkit-mask:url("../assets/palette02/vein_reveal_mask_alpha.png") 72% 44% / min(72vw,1024px) min(72vw,1024px) no-repeat;
  mask:url("../assets/palette02/vein_reveal_mask_alpha.png") 72% 44% / min(72vw,1024px) min(72vw,1024px) no-repeat;
  filter:none;
  mix-blend-mode:screen;
  opacity:.82;
  transform:translate3d(calc(var(--cv-px,0)*18px),calc(var(--cv-py,0)*10px),0);
}
html.cv-palette-albatre-active body[data-page="index"] #oc-fragment-sec::after{
  content:"ALBÂTRE · CALCITE · LUMIÈRE RASANTE";
  position:absolute;
  right:clamp(22px,3vw,48px);
  bottom:clamp(24px,4vh,54px);
  z-index:4;
  font:var(--cv-typo-current-font, 500 8px/1 var(--font-ui));
  letter-spacing:var(--cv-typo-current-ls, .32em);
  color:rgba(246,241,229,.46);
  pointer-events:none;
}
body[data-page="index"] #oc-fragment-sec .oc-frag-host{
  position:absolute!important;
  inset:-8% -10% -8% auto!important;
  z-index:2!important;
  width:min(70vw,920px)!important;
  height:116%!important;
  opacity:.82!important;
  filter:brightness(1.08) contrast(1.18) saturate(.82)!important;
  mix-blend-mode:screen!important;
  pointer-events:none!important;
}
body[data-page="index"] #oc-fragment-sec .oc-frag-host :not(canvas){
  color:transparent!important;
  opacity:0!important;
  text-shadow:none!important;
}
body[data-page="index"] #oc-fragment-sec .oc-frag-host canvas{
  display:block!important;
  width:100%!important;
  height:100%!important;
}
body[data-page="index"] #oc-fragment-sec .oc-frag-cap{
  position:relative!important;
  z-index:5!important;
  width:min(100%,1040px)!important;
  margin:0!important;
  align-self:center!important;
  pointer-events:none!important;
}
body[data-page="index"] #oc-fragment-sec .kicker{
  display:block!important;
  margin:0 0 24px!important;
  color:rgba(199,204,203,.88)!important;
  text-shadow:0 18px 70px rgba(0,0,0,.42)!important;
}
body[data-page="index"] #oc-fragment-sec .oc-frag-t{
  max-width:min(860px,68vw)!important;
  margin:0!important;
  font-size:var(--cv-typo-current-fs, clamp(66px,7.8vw,132px))!important;
  line-height:var(--cv-typo-current-lh, .86)!important;
  letter-spacing:var(--cv-typo-current-ls, -.055em)!important;
  color:#f7f1e8!important;
  text-shadow:0 22px 90px rgba(0,0,0,.56),0 1px 0 rgba(255,255,255,.12)!important;
  opacity:1!important;
  visibility:visible!important;
  filter:none!important;
  transform:none!important;
}
body[data-page="index"] #oc-fragment-sec .oc-frag-t em{
  color:rgba(232,229,222,.88)!important;
  -webkit-text-stroke:.35px rgba(246,241,229,.28);
}
@media (max-width:760px){
  body[data-page="index"] #oc-fragment-sec.oc-frag-sec{
    min-height:78svh!important;
    padding:72px 22px 88px!important;
  }
  body[data-page="index"] #oc-fragment-sec .oc-frag-host{
    inset:-4% -72vw -6% auto!important;
    width:150vw!important;
    opacity:.46!important;
  }
  body[data-page="index"] #oc-fragment-sec .oc-frag-t{
    max-width:92vw!important;
    font-size:var(--cv-typo-current-fs, clamp(48px,14vw,78px))!important;
    line-height:var(--cv-typo-current-lh, .9)!important;
  }
  body[data-page="index"] #oc-fragment-sec::after{
    left:22px;
    right:auto;
    bottom:24px;
    max-width:72vw;
    letter-spacing:var(--cv-typo-current-ls, .22em);
  }
}

/* CV3 — seuil éditorial Home, après K3.
   Une aile de calcite pour la lecture, le film existant en contrechamp.
   Les matières restent continues : aucune tuile opaque dans le viewport. */
body[data-page="index"] #hero{
  background:
    linear-gradient(110deg,rgba(244,247,244,.92),rgba(223,232,229,.84)),
    url("../assets/palette02/calcite_froide_1024.webp") center / 1024px auto !important;
  box-shadow:inset 0 0 0 1px rgba(109,131,137,.3) !important;
}
body[data-page="index"] #hero .hero-vid{
  display:block !important;
  inset:0 0 0 51% !important;
  width:49% !important;
  height:100% !important;
  transform:none !important;
  opacity:1 !important;
  filter:none !important;
}
body[data-page="index"] #hero .hero-vid video{
  display:block !important;
  width:100% !important;height:100% !important;
  object-fit:cover !important;object-position:58% center !important;
  opacity:1 !important;filter:none !important;
}
body[data-page="index"] #hero .hero-vid::before,
body[data-page="index"] #hero .hero-vid::after{
  opacity:.05 !important;animation:none !important;transform:none !important;
}
body[data-page="index"] #hero::before{
  content:"" !important;
  position:absolute !important;inset:0 !important;z-index:3 !important;
  pointer-events:none !important;
  background:linear-gradient(110deg,rgba(252,253,249,.25),transparent 60%) !important;
  -webkit-mask:none;mask:none;mix-blend-mode:normal !important;
  opacity:1 !important;filter:none !important;animation:none !important;
}
body[data-page="index"] #hero::after{
  z-index:4 !important;
  mix-blend-mode:normal !important;
  transform:none !important;
  background:linear-gradient(90deg,#edf2ed 0%,rgba(233,240,235,.97) 45%,rgba(216,227,225,.68) 53%,transparent 61%) !important;
}
body[data-page="index"] .hero-veil{
  z-index:4 !important;
  background:linear-gradient(0deg,rgba(28,49,55,.14),transparent 38%) !important;
}
body[data-page="index"] #hero .hero-body{
  z-index:12 !important;
  width:min(700px,44vw) !important;
  max-width:min(700px,44vw) !important;
  margin:0 auto 0 clamp(40px,8vw,154px) !important;
  padding:clamp(140px,15vh,180px) 0 clamp(96px,12vh,144px) !important;
}
body[data-page="index"] #hero .hero-body::before,
body[data-page="index"] #hero .hero-body::after{content:none !important;}
body[data-page="index"] #hero .hero-ey{
  color:#425c65 !important;text-shadow:none !important;
  white-space:normal !important;line-height:var(--cv-typo-current-lh, 1.6) !important;
}
body[data-page="index"] #hero .hero-h1{
  font-size:var(--cv-typo-current-fs, clamp(52px,5vw,86px)) !important;line-height:var(--cv-typo-current-lh, 1.04) !important;
  color:#223940 !important;-webkit-text-fill-color:#223940 !important;
  text-shadow:none !important;
}
body[data-page="index"] #hero .hero-h1 :is(em,.sli,.oc-gc){
  color:#223940 !important;-webkit-text-fill-color:#223940 !important;
  text-shadow:none !important;
}
body[data-page="index"] #hero .hero-sub{
  color:#354c55 !important;max-width:42ch !important;
  text-shadow:none !important;
}
body[data-page="index"] #hero .hero-act .btn:not(.btn-n){
  color:#223940 !important;border-color:#728990 !important;
  background:rgba(247,250,246,.84) !important;text-shadow:none !important;
}
body[data-page="index"] #hero .hero-act .btn{
  box-shadow:0 5px 18px rgba(28,49,55,.10) !important;
}
body[data-page="index"] #hero :is(.dubai-band,.hero-event-trace,.cv-home-memory,.cv-memory-media,.cv-memory-copy,.cv-memory-axis),
html.oc-seuil-passe body[data-page="index"] .cv-vitrine-portals a[href*="dubai"],
html.oc-seuil-passe body[data-page="index"] .cv-vitrine-portals a[href*="inauguration"]{
  display:none !important;visibility:hidden !important;pointer-events:none !important;
}
@media(max-width:1180px){
  body[data-page="index"] #hero .hero-motif{display:none !important;}
  body[data-page="index"] #hero .hero-body{
    left:auto !important;right:auto !important;
    width:calc(100% - 80px) !important;max-width:720px !important;
    margin:0 auto 0 40px !important;
    min-height:100svh !important;align-self:stretch !important;justify-content:center !important;
  }
  body[data-page="index"] #hero::after{
    background:linear-gradient(90deg,rgba(237,242,237,.98) 0 40%,rgba(229,238,232,.94) 66%,rgba(219,230,226,.35)) !important;
  }
}
@media(max-width:760px){
  body[data-page="index"] #hero .hero-vid{inset:0 !important;width:100% !important;opacity:.3 !important;}
  body[data-page="index"] #hero::after{
    background:linear-gradient(110deg,rgba(239,244,238,.98),rgba(227,237,232,.9) 76%,rgba(213,228,225,.82)) !important;
  }
  body[data-page="index"] #hero .hero-body{
    width:calc(100vw - 44px) !important;max-width:calc(100vw - 44px) !important;
    margin:0 22px !important;padding:142px 0 92px !important;
    justify-content:center !important;
  }
  body[data-page="index"] #hero .hero-ey{max-width:34ch !important;font-size:var(--cv-typo-current-fs, 9px) !important;letter-spacing:var(--cv-typo-current-ls, .2em) !important;}
  body[data-page="index"] #hero .hero-h1{font-size:var(--cv-typo-current-fs, clamp(44px,12.6vw,70px)) !important;line-height:var(--cv-typo-current-lh, 1.05) !important;}
  body[data-page="index"] #hero .hero-sub{max-width:100% !important;}
}

/* Cinema V3 occupies only the existing media rectangle. The poster is the
   default, including script/GPU failure; the editorial half keeps its DOM. */
body[data-page="index"] #hero .cv-cinema-v3 :is(.cv-cinema-poster,.cv-cinema-canvas){
  position:absolute;inset:0;width:100%;height:100%;display:block;
  object-fit:cover;object-position:55% 52%;filter:none!important;
  mix-blend-mode:normal!important;transform:none!important;
}
body[data-page="index"] #hero .cv-cinema-poster{opacity:1!important;}
body[data-page="index"] #hero .cv-cinema-canvas{opacity:0!important;pointer-events:none;}
body[data-page="index"] #hero .cv-cinema-rendered .cv-cinema-canvas{opacity:1!important;}
body[data-page="index"] #hero .cv-cinema-v3::before,
body[data-page="index"] #hero .cv-cinema-v3::after{content:none!important;}
/* Existing text-protection washes remain on narrow layouts. Desktop media
   has one shader grade, without a second full-frame veil. */
@media(min-width:1181px){
  /* The former 100vh - 84px exposed an orphan strip of the next chapter
     after the #hero anchor. Keep the 51/49 split, complete the viewport. */
  body[data-page="index"] #hero:has(.cv-cinema-v3){min-height:100svh!important;}
  body[data-page="index"] #hero:has(.cv-cinema-v3)::before,
  body[data-page="index"] #hero:has(.cv-cinema-v3)::after,
  body[data-page="index"] #hero:has(.cv-cinema-v3) > .hero-veil{clip-path:inset(0 49% 0 0)!important;}
}

/* INAUGURATION DUBAÏ — Albâtre Sidéral.
   La photographie historique demeure intacte : aucun filtre colorimétrique,
   aucune opacité de regrade. La lumière, la calcite, la nacre et l'étain sont
   construits autour d'elle, dans la scène et dans le cartouche éditorial. */
html.lux body[data-page="inauguration-dubai"].cv3-family-dubai{
  background:#edf0ee !important;
  --dxb-horizon-deep:#4b606a;
  --dxb-horizon-light:#455c67;
}
html.lux body[data-page="inauguration-dubai"].cv3-family-dubai main{
  background:#edf0ee;
}
html.lux body[data-page="inauguration-dubai"].cv3-family-dubai main > :is(.dxb-sec,.event-folio,.cv-dubai-chapter,.cv-thanks,.cv-dubai-axis,.sec,.event-closing){
  color:#253037;
  background:
    linear-gradient(115deg,rgba(249,250,247,.97),rgba(223,230,228,.94)),
    url("../assets/palette02/calcite_froide_1024.webp") center / 1024px auto !important;
  border-color:#c8d0d0;
}
html.lux body[data-page="inauguration-dubai"].cv3-family-dubai :is(.dxb-sec,.event-folio,.cv-dubai-chapter,.cv-thanks,.cv-dubai-axis,.sec,.event-closing) :is(h2,h3,p,small,strong,.cv-thanks__index,.cv-dubai-chapter__label,.event-sheet-index){
  color:#35464e;
  -webkit-text-fill-color:currentColor;
  text-shadow:none;
}
html.lux body[data-page="inauguration-dubai"].cv3-family-dubai :is(.dxb-sec,.event-folio,.cv-dubai-chapter,.cv-thanks,.cv-dubai-axis,.sec,.event-closing) :is(h2,h3,strong){
  color:#253037;
  background:none;
}
html.lux body[data-page="inauguration-dubai"].cv3-family-dubai .oc-silk-layer{
  opacity:.16;
}
html.lux body[data-page="inauguration-dubai"].cv3-family-dubai .cv3-room > .cv3-room-light{
  opacity:.12;
  background:var(--cv-as-light-sweep) 62% 46% / 140vw auto no-repeat;
  mask:none;
  -webkit-mask:none;
  filter:none;
}
html.lux body[data-page="inauguration-dubai"].cv3-family-dubai .event-film-copy :is(h2,h2 em,p,span){
  color:#f0f3ef;
  -webkit-text-fill-color:currentColor;
  background:none;
  text-shadow:0 2px 18px rgba(6,17,23,.45);
}
html.lux body[data-page="inauguration-dubai"].cv3-family-dubai .event-film-veil{
  background:linear-gradient(90deg,rgba(16,29,37,.9),rgba(16,29,37,.62) 48%,rgba(16,29,37,.08) 85%);
}
html.lux body[data-page="inauguration-dubai"].cv3-family-dubai .event-sheet{
  background:rgba(249,250,247,.8);
  border-color:#c0cbcd;
  box-shadow:0 14px 34px rgba(41,57,63,.08),inset 0 1px 0 #fff;
}
html.lux body[data-page="inauguration-dubai"].cv3-family-dubai .event-sheet a,
html.lux body[data-page="inauguration-dubai"].cv3-family-dubai .dxb-memory .btn-l{
  color:#354f5c !important;
  -webkit-text-fill-color:currentColor;
}
html.lux body[data-page="inauguration-dubai"].cv3-family-dubai .event-closing{
  gap:0;
  min-height:0;
  padding-block:clamp(84px,9vw,144px);
}
html.lux body[data-page="inauguration-dubai"].cv3-family-dubai .event-closing h2{
  font-size:var(--cv-typo-current-fs, clamp(42px,5.2vw,84px));
  line-height:var(--cv-typo-current-lh, 1.06);
}
html.lux body[data-page="inauguration-dubai"].cv3-family-dubai .event-closing-oculus{
  flex-shrink:0;
  width:108px;
  height:108px;
  border-color:#96a9af;
  box-shadow:inset 0 1px 18px rgba(94,111,118,.1),0 12px 24px rgba(61,78,86,.08);
}
html.lux body[data-page="inauguration-dubai"].cv3-family-dubai .event-closing-oculus span{
  color:#455c67;
  font-size:var(--cv-typo-current-fs, 32px);
}
html.lux body[data-page="inauguration-dubai"].cv3-family-dubai .dxb-hero{
  box-sizing:border-box;
  min-height:100svh;
  padding:clamp(116px,14vh,148px) 0 clamp(34px,5vh,58px);
  display:flex;
  align-items:center;
  justify-content:flex-start;
  isolation:isolate;
  overflow:hidden;
  color:#1d2529;
  background:
    radial-gradient(58vw 72vh at 14% 18%,rgba(255,255,255,.96),transparent 66%),
    radial-gradient(42vw 58vh at 42% 84%,rgba(137,147,153,.24),transparent 72%),
    url("../assets/palette02/calcite_froide_1024.webp") -8% 48% / min(67vw,1024px) auto no-repeat,
    url("../assets/palette02/albatre_sideral_1024.webp") 30% 48% / min(76vw,1180px) auto no-repeat,
    linear-gradient(112deg,#f8f8f5 0%,#e7e9e7 43%,#c7cccd 100%);
}

html.lux body[data-page="inauguration-dubai"].cv3-family-dubai .dxb-hero-bg{
  position:absolute;
  z-index:0;
  inset:0 0 0 48%;
  overflow:hidden;
  border-left:1px solid rgba(99,111,118,.48);
  box-shadow:-28px 0 72px rgba(51,61,66,.18);
}

html.lux body[data-page="inauguration-dubai"].cv3-family-dubai .dxb-hero-bg img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:55% 50%;
  opacity:1;
  filter:none !important;
  transform:none;
}

html.lux body[data-page="inauguration-dubai"].cv3-family-dubai .dxb-hero-veil{
  position:absolute;
  z-index:1;
  inset:0;
  pointer-events:none;
  background:
    linear-gradient(90deg,rgba(247,247,243,.96) 0 45%,rgba(231,234,232,.72) 48%,transparent 54%),
    linear-gradient(0deg,rgba(29,37,41,.16),transparent 19% 100%);
}

html.lux body[data-page="inauguration-dubai"].cv3-family-dubai .dxb-hero::before{
  content:"";
  position:absolute;
  z-index:2;
  inset:-7% 50% -7% -8%;
  pointer-events:none;
  background:
    url("../assets/palette02/light_sweep_albatre_cold.png") 56% 44% / 118% auto no-repeat,
    url("../assets/palette02/brume_albatre_01.png") 46% 60% / 108% auto no-repeat;
  -webkit-mask:url("../assets/palette02/vein_reveal_mask_alpha.png") 46% 52% / min(78vw,1120px) min(78vw,1120px) no-repeat;
  mask:url("../assets/palette02/vein_reveal_mask_alpha.png") 46% 52% / min(78vw,1120px) min(78vw,1120px) no-repeat;
  mix-blend-mode:screen;
  opacity:.74;
  filter:none;
  transform:none;
  animation:none;
}

html.lux body[data-page="inauguration-dubai"].cv3-family-dubai .dxb-hero::after{
  content:"";
  position:absolute;
  z-index:3;
  inset:0;
  height:auto;
  pointer-events:none;
  background:
    url("../assets/palette02/etain_satine_1024.webp") 48% 50% / clamp(3px,.42vw,7px) 100% no-repeat,
    linear-gradient(112deg,transparent 0 44%,rgba(255,255,255,.42) 47.6%,transparent 50% 100%);
  box-shadow:none;
  mix-blend-mode:normal;
  transform:none;
}

html.lux body[data-page="inauguration-dubai"].cv3-family-dubai .dxb-monument{
  z-index:3;
  opacity:.14;
  mix-blend-mode:multiply;
}

html.lux body[data-page="inauguration-dubai"].cv3-family-dubai .dxb-hero-in{
  position:relative;
  z-index:7;
  box-sizing:border-box;
  width:min(46vw,690px);
  margin:0 auto 0 clamp(34px,5.5vw,88px);
  padding:clamp(38px,4.6vw,70px) clamp(32px,4vw,62px);
  color:#1d2529;
  background:
    linear-gradient(138deg,rgba(255,255,255,.90),rgba(232,234,232,.86) 58%,rgba(199,204,203,.86)),
    url("../assets/palette02/albatre_sideral_1024.webp") 48% 44% / cover no-repeat;
  border:1px solid rgba(137,147,153,.54);
  box-shadow:
    0 38px 104px rgba(29,37,41,.22),
    inset 0 1px 0 rgba(255,255,255,.98),
    inset 0 0 0 9px rgba(255,255,255,.18);
  backdrop-filter:blur(18px) saturate(.72);
  -webkit-backdrop-filter:blur(18px) saturate(.72);
}

html.lux body[data-page="inauguration-dubai"].cv3-family-dubai .dxb-hero-in::before{
  content:"";
  position:absolute;
  inset:10px;
  pointer-events:none;
  border:1px solid rgba(255,255,255,.54);
  box-shadow:inset 0 0 52px rgba(137,147,153,.10);
}

html.lux body[data-page="inauguration-dubai"].cv3-family-dubai .dxb-date{
  position:relative;
  z-index:1;
  margin:0 0 20px;
  color:#59676d;
  letter-spacing:var(--cv-typo-current-ls, .30em);
  text-shadow:none;
}

html.lux body[data-page="inauguration-dubai"].cv3-family-dubai .dxb-h1{
  position:relative;
  z-index:1;
  max-width:10ch;
  margin:0;
  color:#1d2529;
  font-size:var(--cv-typo-current-fs, clamp(48px,4.7vw,74px));
  line-height:var(--cv-typo-current-lh, .90);
  letter-spacing:var(--cv-typo-current-ls, -.045em);
  text-shadow:none;
  background:none;
}

html.lux body[data-page="inauguration-dubai"].cv3-family-dubai .dxb-h1 em{
  color:#526066;
  text-shadow:none;
}

html.lux body[data-page="inauguration-dubai"].cv3-family-dubai .dxb-sub{
  position:relative;
  z-index:1;
  max-width:48ch;
  margin:24px 0 0;
  color:rgba(29,37,41,.78);
  font-size:var(--cv-typo-current-fs, clamp(14px,1.15vw,17px));
  line-height:var(--cv-typo-current-lh, 1.62);
  text-shadow:none;
}

html.lux body[data-page="inauguration-dubai"].cv3-family-dubai .dxb-hero-in :is(.dxb-date,.dxb-h1,.dxb-h1 em,.dxb-sub){
  color:#263137 !important;
  -webkit-text-fill-color:currentColor !important;
  text-shadow:none !important;
}

html.lux body[data-page="inauguration-dubai"].cv3-family-dubai .dxb-hero-in .dxb-h1 em{
  color:#526066 !important;
}

/* L'en-tête devient une tablette nacrée ; le menu ouvert conserve son salon
   sombre et son contraste historique. */
html.lux body[data-page="inauguration-dubai"].cv3-family-dubai .hd{
  color:#1d2529;
  background:
    linear-gradient(90deg,rgba(248,248,245,.97),rgba(226,229,228,.94)),
    url("../assets/palette02/calcite_froide_1024.webp") center 42% / cover no-repeat !important;
  border-bottom:1px solid rgba(99,111,118,.30) !important;
  box-shadow:0 10px 42px rgba(29,37,41,.10);
  backdrop-filter:blur(22px) saturate(.76);
  -webkit-backdrop-filter:blur(22px) saturate(.76);
}

html.lux body[data-page="inauguration-dubai"].cv3-family-dubai .hd :is(.nl,.lb,.logo-n,.logo-s){
  color:#344147;
  text-shadow:none;
}

html.lux body[data-page="inauguration-dubai"].cv3-family-dubai .hd :is(.nl:hover,.nl.active,.lb.active){
  color:#11181b;
}

html.lux body[data-page="inauguration-dubai"].cv3-family-dubai .hd .ncta{
  color:#1d2529;
  border-color:rgba(29,37,41,.38);
  background:rgba(255,255,255,.44);
}

html.lux body[data-page="inauguration-dubai"].cv3-family-dubai .hd .ldot{
  background:rgba(29,37,41,.28);
}

html.lux body[data-page="inauguration-dubai"].cv3-family-dubai .hd .ntog{
  border-color:rgba(29,37,41,.38);
  background:rgba(255,255,255,.36);
}

html.lux body[data-page="inauguration-dubai"].cv3-family-dubai .hd .ntog span{
  background:#1d2529;
}

/* Rail de lecture Dubaï : les chapitres sont désormais majoritairement
   Albâtre. Une tablette nacrée très étroite garantit la lecture du repère
   sans dépendre de la photographie ou de la section qui défile derrière. */
html.lux body[data-page="inauguration-dubai"].cv3-family-dubai .cv90-frame__mark{
  color:#2f464c !important;
  background:rgba(246,248,245,.93);
  border:1px solid rgba(74,94,101,.22);
  box-shadow:0 8px 24px rgba(29,43,48,.12),inset 0 1px 0 rgba(255,255,255,.92);
  padding:8px 4px;
}

html.lux body[data-page="inauguration-dubai"].cv3-family-dubai .cv90-progress{
  box-sizing:border-box;
  padding:11px 6px;
  background:rgba(246,248,245,.93);
  border:1px solid rgba(74,94,101,.22);
  box-shadow:0 8px 24px rgba(29,43,48,.12),inset 0 1px 0 rgba(255,255,255,.92);
}

html.lux body[data-page="inauguration-dubai"].cv3-family-dubai :is(.cv90-progress__index,.cv90-progress__label){
  color:#2f464c !important;
}

html.lux body[data-page="inauguration-dubai"].cv3-family-dubai .cv90-progress__track{
  background:rgba(47,70,76,.20);
}

html.lux body[data-page="inauguration-dubai"].cv3-family-dubai .cv90-scroll-cue{
  color:#1d2b2f !important;
  opacity:1;
  background:rgba(246,248,245,.93);
  border:1px solid rgba(74,94,101,.22);
  box-shadow:0 8px 24px rgba(29,43,48,.12),inset 0 1px 0 rgba(255,255,255,.92);
  padding:8px 10px;
}

html.lux body[data-page="inauguration-dubai"].cv3-family-dubai .cv90-scroll-cue__text{
  color:#1d2b2f !important;
}

html.lux body[data-page="inauguration-dubai"].cv3-family-dubai .cv90-scroll-cue__line{
  background:rgba(47,70,76,.32);
}

@media (max-width:760px){
  html.lux body[data-page="inauguration-dubai"].cv3-family-dubai .event-film-veil{
    background:linear-gradient(0deg,rgba(16,29,37,.86),rgba(16,29,37,.74) 65%,rgba(16,29,37,.12));
  }
  html.lux body[data-page="inauguration-dubai"].cv3-family-dubai .dxb-hero{
    min-height:100svh;
    display:block;
    padding:clamp(292px,37svh,346px) 16px 28px;
    background:
      radial-gradient(120vw 56vh at 16% 64%,rgba(255,255,255,.98),transparent 70%),
      url("../assets/palette02/calcite_froide_1024.webp") 18% 70% / 178vw auto no-repeat,
      linear-gradient(158deg,#f8f8f5,#d7dad9);
  }

  html.lux body[data-page="inauguration-dubai"].cv3-family-dubai .dxb-hero-bg{
    inset:78px 0 auto;
    height:clamp(214px,30svh,286px);
    border-left:0;
    border-bottom:1px solid rgba(99,111,118,.48);
    box-shadow:0 22px 62px rgba(29,37,41,.18);
  }

  html.lux body[data-page="inauguration-dubai"].cv3-family-dubai .dxb-hero-bg img{
    object-position:54% 50%;
  }

  html.lux body[data-page="inauguration-dubai"].cv3-family-dubai .dxb-hero-veil{
    background:
      linear-gradient(180deg,transparent 0 29%,rgba(231,234,232,.34) 34%,rgba(247,247,243,.95) 42%,rgba(247,247,243,0) 66%),
      linear-gradient(0deg,rgba(29,37,41,.10),transparent 14% 100%);
  }

  html.lux body[data-page="inauguration-dubai"].cv3-family-dubai .dxb-hero::before{
    inset:25% -24% -8% -32%;
    -webkit-mask:none;
    mask:none;
    opacity:.44;
  }

  html.lux body[data-page="inauguration-dubai"].cv3-family-dubai .dxb-hero::after{
    background:
      url("../assets/palette02/etain_satine_1024.webp") 50% clamp(292px,37svh,346px) / 100% 3px no-repeat,
      linear-gradient(180deg,transparent 0 38%,rgba(255,255,255,.40) 43%,transparent 52%);
  }

  html.lux body[data-page="inauguration-dubai"].cv3-family-dubai .dxb-monument{
    display:none;
  }

  html.lux body[data-page="inauguration-dubai"].cv3-family-dubai .dxb-hero-in{
    width:100%;
    margin:0 auto;
    padding:30px 25px 28px;
    background:
      linear-gradient(138deg,rgba(255,255,255,.94),rgba(225,228,226,.90)),
      url("../assets/palette02/albatre_sideral_1024.webp") 50% 48% / cover no-repeat;
    box-shadow:0 24px 64px rgba(29,37,41,.18),inset 0 1px 0 #fff;
    backdrop-filter:none;
    -webkit-backdrop-filter:none;
  }

  html.lux body[data-page="inauguration-dubai"].cv3-family-dubai .dxb-h1{
    max-width:9.7ch;
    font-size:var(--cv-typo-current-fs, clamp(42px,11.4vw,54px));
    line-height:var(--cv-typo-current-lh, .91);
  }

  html.lux body[data-page="inauguration-dubai"].cv3-family-dubai .dxb-date{
    margin-bottom:16px;
    font-size:var(--cv-typo-current-fs, 9px);
    letter-spacing:var(--cv-typo-current-ls, .22em);
  }

  html.lux body[data-page="inauguration-dubai"].cv3-family-dubai .dxb-sub{
    margin-top:19px;
    font-size:var(--cv-typo-current-fs, 14px);
    line-height:var(--cv-typo-current-lh, 1.55);
  }
}

@media (max-width:1180px){
  html.lux body[data-page="inauguration-dubai"].cv3-family-dubai.nopen .hd :is(.nl,.lb,.logo-n,.logo-s),
  html.lux body[data-page="inauguration-dubai"].cv3-family-dubai.nopen .hd :is(.nl:hover,.nl.active,.lb.active){
    color:#f3f2ee;
  }

  html.lux body[data-page="inauguration-dubai"].cv3-family-dubai.nopen .hd .ntog span{
    background:#f3f2ee;
  }
}

/* CURSEUR DE MAISON — le moteur #cur reste l'unique propriétaire du suivi.
   Cette finition affine seulement sa matière et ses états existants. */
@media (hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){
  :where(html.cv-palette-albatre-active body[data-page="index"],html.lux body[data-page]:not([data-page="index"]):not([data-page="folco"])) #cur .cur-ring{
    width:34px;
    height:34px;
    border-color:rgba(137,147,153,.66);
    background:rgba(17,24,27,.055);
    box-shadow:
      0 0 0 1px rgba(7,9,11,.10),
      inset 0 0 0 5px rgba(207,224,226,.045),
      0 7px 24px rgba(0,0,0,.11);
    backdrop-filter:blur(2px);
    -webkit-backdrop-filter:blur(2px);
  }
  :where(html.cv-palette-albatre-active body[data-page="index"],html.lux body[data-page]:not([data-page="index"]):not([data-page="folco"])) #cur .cur-dot{
    width:2.5px;
    height:2.5px;
    background:rgb(137,147,153);
    box-shadow:0 0 10px rgba(207,224,226,.42);
  }
  :where(html.cv-palette-albatre-active body[data-page="index"],html.lux body[data-page]:not([data-page="index"]):not([data-page="folco"])) #cur.is-action .cur-ring{
    width:64px;
    height:64px;
    border-color:rgba(199,204,203,.94);
    background:rgba(8,10,12,.10);
    box-shadow:
      inset 0 0 0 8px rgba(207,224,226,.05),
      0 14px 34px rgba(0,0,0,.18);
  }
  :where(html.cv-palette-albatre-active body[data-page="index"],html.lux body[data-page]:not([data-page="index"]):not([data-page="folco"])) #cur.has-label .cur-ring,
  :where(html.cv-palette-albatre-active body[data-page="index"],html.lux body[data-page]:not([data-page="index"]):not([data-page="folco"])) #cur.is-media .cur-ring{
    width:92px;
    height:54px;
    border-radius:999px;
    background:rgba(8,10,12,.78);
    border-color:rgba(244,238,223,.70);
    box-shadow:0 18px 44px rgba(0,0,0,.24),inset 0 1px rgba(255,255,255,.12);
    backdrop-filter:blur(11px) saturate(.82);
    -webkit-backdrop-filter:blur(11px) saturate(.82);
  }
}

/* Secondary Motion High ROI — Méthode garde la lumière de la boussole, mais
   pas ses cercles ni sa lame animée. Pensée conserve seule cette ponctuation
   conceptuelle forte ; CV-008 et le voile CV-009 restent byte-identiques. */
body[data-page="savoir-faire"].cv3-nonhome .cv3-boussole-field::before,
body[data-page="savoir-faire"].cv3-nonhome .cv3-boussole-field::after{
  content:none;
}

/* ========================================================================
   MAISON CARAVELLI — GALERIE DE TRANSMISSION
   Environnement exporté de la scène Blender existante, sans œuvre ni cadre.
   Le master est une image DOM intacte. La matière et les ombres restent autour.
   ======================================================================== */
body[data-page="index"] #maison-caravelli-triptyque{
  --cv-triptych-ink:#18252b;
  --cv-triptych-steel:#485c65;
  position:relative;
  isolation:isolate;
  box-sizing:border-box;
  padding:clamp(64px,6vw,100px) clamp(26px,7vw,134px) clamp(116px,11vw,184px);
  color:var(--cv-triptych-ink);
  background:
    linear-gradient(110deg,rgba(245,247,245,.96),rgba(232,237,234,.88)),
    url("../assets/palette02/calcite_froide_1024.webp") center / 1024px auto;
  border:0;
}
body[data-page="index"] #maison-caravelli-triptyque::before{
  content:"";
  position:absolute;
  z-index:0;
  inset:-1px 0 0;
  pointer-events:none;
  border:0;
  background:url("../assets/maison-caravelli/albatre-blender-environment-p02m14.webp") center / cover no-repeat;
  mask-image:linear-gradient(transparent,black 22%,black 72%,transparent);
  box-shadow:none;
}
body[data-page="index"] #maison-caravelli-triptyque::after{
  content:"";
  position:absolute;
  z-index:0;
  inset:auto 0 -1px;
  height:clamp(100px,10vw,176px);
  pointer-events:none;
  border:0;
  background:linear-gradient(transparent,rgba(103,129,119,.3) 25%,#09251f);
  opacity:1;
  transform:none;
  transition:none;
  box-shadow:none;
}
body[data-page="index"] #maison-caravelli-triptyque .cv-triptych-inner{
  position:relative;
  z-index:1;
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  grid-template-areas:"heading object" "motto object" "entities entities";
  gap:24px clamp(40px,5.5vw,100px);
  align-items:center;
  width:min(100%,1260px);
  margin:auto;
}
body[data-page="index"] #maison-caravelli-triptyque .cv-triptych-heading{
  grid-area:heading;
  align-self:end;
  margin:0;
}
body[data-page="index"] #maison-caravelli-triptyque .cv-triptych-eyebrow{
  margin:0 0 32px;
  font:var(--cv-typo-current-font, 600 10px/1.6 var(--font-ui,"Inter",sans-serif));
  letter-spacing:var(--cv-typo-current-ls, .2em);
  color:var(--cv-triptych-steel);
}
body[data-page="index"] #maison-caravelli-triptyque h2{
  margin:0;
  font:var(--cv-typo-current-font, 400 clamp(38px,3.7vw,66px)/1.08 var(--font-display,"Bodoni Moda",serif));
  letter-spacing:var(--cv-typo-current-ls, -.035em);
  color:var(--cv-triptych-ink);
  -webkit-text-fill-color:currentColor;
  text-shadow:none;
  overflow:visible;
}
body[data-page="index"] #maison-caravelli-triptyque h2 em{
  font-weight:var(--cv-typo-current-fw, 400);
  color:var(--cv-triptych-steel);
  -webkit-text-fill-color:currentColor;
  -webkit-text-stroke:0;
}
body[data-page="index"] #maison-caravelli-triptyque .cv-triptych-axis{display:none;}
body[data-page="index"] #maison-caravelli-triptyque .cv-triptych-object{
  grid-area:object;
  position:relative;
  width:100%;
  max-width:min(100%,560px,calc(100svh - 310px));
  justify-self:center;
  box-sizing:border-box;
  margin:0;
  padding:0;
  background:none;
  border:0;
  box-shadow:none;
}
body[data-page="index"] #maison-caravelli-triptyque .cv-triptych-object img{
  display:block;
  width:100%;
  height:auto;
  max-width:100%;
  object-fit:contain;
  object-position:center;
  filter:none;
  opacity:1;
  mix-blend-mode:normal;
  transform:none;
  clip-path:none;
  border:0;
  border-radius:0;
}
body[data-page="index"] #maison-caravelli-triptyque .cv-triptych-a11y{
  position:absolute;width:1px;height:1px;padding:0;margin:-1px;
  overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0;
}
body[data-page="index"] #maison-caravelli-triptyque .cv-triptych-motto{
  grid-area:motto;
  align-self:start;
  margin:0;
  padding-top:24px;
  border-top:1px solid rgba(72,92,101,.4);
  font:var(--cv-typo-current-font, 600 10px/1.8 var(--font-ui,"Inter",sans-serif));
  letter-spacing:var(--cv-typo-current-ls, .16em);
  color:var(--cv-triptych-steel);
}
body[data-page="index"] #maison-caravelli-triptyque .cv-triptych-entities{
  grid-area:entities;
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  margin-top:clamp(24px,3vw,48px);
  border-block:1px solid rgba(72,92,101,.3);
}
body[data-page="index"] #maison-caravelli-triptyque .cv-triptych-entity{
  display:flex;min-width:0;flex-direction:column;gap:12px;
  padding:28px clamp(12px,2vw,34px);
  color:var(--cv-triptych-ink);
  text-decoration:none;
}
body[data-page="index"] #maison-caravelli-triptyque .cv-triptych-entity + .cv-triptych-entity{border-left:1px solid rgba(72,92,101,.24);}
body[data-page="index"] #maison-caravelli-triptyque .cv-triptych-entity strong{
  font:var(--cv-typo-current-font, 600 10px/1.6 var(--font-ui,"Inter",sans-serif));
  letter-spacing:var(--cv-typo-current-ls, .12em);color:inherit;
}
body[data-page="index"] #maison-caravelli-triptyque .cv-triptych-entity span{
  font:var(--cv-typo-current-font, 400 clamp(17px,1.3vw,21px)/1.4 var(--font-display,"Bodoni Moda",serif));
  color:#435760;
}
body[data-page="index"] #maison-caravelli-triptyque a.cv-triptych-entity:hover{background:rgba(255,255,255,.38);}
body[data-page="index"] #maison-caravelli-triptyque a.cv-triptych-entity:focus-visible{outline:2px solid #435760;outline-offset:4px;}
/* Présence statique : ni observer, ni mouvement de souris ne masque le master. */
html.cv3-motion body[data-page="index"] #maison-caravelli-triptyque[data-cv3-reveal]{
  opacity:1;transform:none;filter:none;clip-path:none;
}
@media(max-width:900px){
  body[data-page="index"] #maison-caravelli-triptyque{
    padding:64px 26px 136px;
  }
  body[data-page="index"] #maison-caravelli-triptyque .cv-triptych-inner{
    grid-template-columns:minmax(0,1fr);
    grid-template-areas:"heading" "object" "motto" "entities";
    gap:32px;
    max-width:620px;
  }
  body[data-page="index"] #maison-caravelli-triptyque h2{font-size:var(--cv-typo-current-fs, clamp(38px,8.8vw,64px));}
  body[data-page="index"] #maison-caravelli-triptyque .cv-triptych-eyebrow{font-size:var(--cv-typo-current-fs, 9px);margin-bottom:24px;}
  body[data-page="index"] #maison-caravelli-triptyque .cv-triptych-object{max-width:100%;}
  body[data-page="index"] #maison-caravelli-triptyque .cv-triptych-entities{grid-template-columns:1fr;margin-top:8px;}
  body[data-page="index"] #maison-caravelli-triptyque .cv-triptych-entity{padding:22px 0;}
  body[data-page="index"] #maison-caravelli-triptyque .cv-triptych-entity + .cv-triptych-entity{border-left:0;border-top:1px solid rgba(72,92,101,.24);}
}

/* P02M14 — défauts de lecture constatés sur les routes secondaires.
   Aucun sélecteur K3, Folco, Terrae, Carrara, ni changement typographique. */
html.lux body[data-page="chantiers-prives"] .hd .lb.active{
  color:#f1f4ef !important;-webkit-text-fill-color:currentColor;
}
html.lux body[data-page="dubai-bureaux"] .dxb-cap{
  color:#f1f4ef !important;-webkit-text-fill-color:currentColor;
  background:rgba(15,27,29,.88) !important;
}
html.lux body[data-page="dubai-bureaux"] .dxb-hero h1{
  line-height:var(--cv-typo-current-lh, 1.12) !important;
}
/* La calcite du dernier chapitre reste une matière sous le texte clair. */
html.lux body[data-page="dubai-bureaux"] .dxb-ch:has(.dxb-clarif){
  background-blend-mode:normal,normal,multiply,normal;
}
html.lux body[data-page="dubai-bureaux"] .dxb-clarif{
  font:var(--cv-typo-current-font, 400 16px/1.6 var(--font-reading,Georgia,serif));
  max-width:68ch;
  margin-top:24px;
}
@media(min-width:901px){
  html.lux body[data-page="dubai-bureaux"] .dxb-ch > .container{
    width:calc(100% - 112px) !important;max-width:1280px !important;margin-inline:auto !important;
  }
  html.lux body[data-page="portfolio"] #v923-chantiers-title{
    padding-left:44px;
  }
}
html.lux body[data-page="fondation"] main > .sec :is(.v6-inline-fondation-22,.btn-o,.btn-o span){
  color:#243840 !important;-webkit-text-fill-color:#243840 !important;
  text-shadow:none !important;
}
html.lux body[data-page="fondation"] main > .sec .kicker{
  color:#405860 !important;-webkit-text-fill-color:currentColor;
}
html.lux body[data-page="projets-saint-cloud"] :is(.sc-photo-cap,.sig-note){
  background:#e5e9e7 !important;
}
html.lux body[data-page="projets-saint-cloud"] :is(.sc-photo-cap,.sig-note) :is(h3,p,em,span){
  color:#243840 !important;-webkit-text-fill-color:currentColor;
}
html.lux body[data-page="portfolio"] main :is(.ph-h1,h2.display){
  line-height:var(--cv-typo-current-lh, 1.12) !important;
}
/* Passages 2026 — autorité matérielle des seules pages hors continuum.
   Les snapshots natifs font tout le travail : aucun overlay DOM, aucun
   canvas, aucun clic intercepté. Le data-page HTML existe dès le snapshot,
   avant les scripts différés. Les textures fournies restent inchangées.
   L'Albâtre apparaît dans l'interstice ; aucune photo n'est recolorée. */
html:has(> body[data-page]:not([data-page="index"]):not([data-page="folco"]):not([data-page^="terrae"]):not([data-terrae-production]))::view-transition{
  background:#e5e9e8 url("../assets/palette02/calcite_froide_1024.webp") center/cover;
  pointer-events:none;
}
html:has(> body[data-page]:not([data-page="index"]):not([data-page="folco"]):not([data-page^="terrae"]):not([data-terrae-production])):has(> body[data-page^="portale-"])::view-transition{
  background:#18362f url("../assets/palette02/malachite_nocturne_1024.webp") center/cover;
}
/* Les anciennes feuilles nommaient aussi tout l'en-tête, le pied et un
   bouton de visite. Ce ne sont pas des objets identiques entre gabarits.
   La marque seule reste nommée ; root est le snapshot natif du document. */
html:has(> body[data-page]:not([data-page="index"]):not([data-page="folco"]):not([data-page^="terrae"]):not([data-terrae-production])) :is(header#hd,.site-header,.site-footer,#vg-btn,#aiw){
  view-transition-name:none;
}
html:has(> body[data-page]:not([data-page="index"]):not([data-page="folco"]):not([data-page^="terrae"]):not([data-terrae-production])) :is(header#hd .logo,header.site-header > .brand){
  view-transition-name:cv3-brand;
}
html:has(> body[data-page]:not([data-page="index"]):not([data-page="folco"]):not([data-page^="terrae"]):not([data-terrae-production]))::view-transition-old(root),
html:has(> body[data-page]:not([data-page="index"]):not([data-page="folco"]):not([data-page^="terrae"]):not([data-terrae-production]))::view-transition-new(root){
  mix-blend-mode:normal;
  filter:none !important;
  -webkit-mask-image:none !important;
  mask-image:none !important;
  background:transparent;
}
@media(prefers-reduced-motion:no-preference){
  html:has(> body[data-page]:not([data-page="index"]):not([data-page="folco"]):not([data-page^="terrae"]):not([data-terrae-production]))::view-transition-old(root){
    animation:cv3-passage-recede .44s cubic-bezier(.4,0,.65,1) both;
  }
  html:has(> body[data-page]:not([data-page="index"]):not([data-page="folco"]):not([data-page^="terrae"]):not([data-terrae-production]))::view-transition-new(root){
    animation:cv3-passage-unseal .78s cubic-bezier(.22,.75,.18,1) both;
  }
  html:has(> body[data-page]:not([data-page="index"]):not([data-page="folco"]):not([data-page^="terrae"]):not([data-terrae-production])):has(> body[data-page^="portale-"])::view-transition-new(root){
    animation-name:cv3-passage-malachite;
  }
  html:has(> body[data-page]:not([data-page="index"]):not([data-page="folco"]):not([data-page^="terrae"]):not([data-terrae-production]))::view-transition-group(cv3-brand){
    animation-duration:.62s;
    animation-timing-function:cubic-bezier(.22,.75,.18,1);
  }
  html:has(> body[data-page]:not([data-page="index"]):not([data-page="folco"]):not([data-page^="terrae"]):not([data-terrae-production]))::view-transition-old(cv3-brand){
    animation:cv3-brand-out .20s ease-out both;
    mix-blend-mode:normal;
  }
  html:has(> body[data-page]:not([data-page="index"]):not([data-page="folco"]):not([data-page^="terrae"]):not([data-terrae-production]))::view-transition-new(cv3-brand){
    animation:cv3-brand-in .32s .08s ease-out both;
    mix-blend-mode:normal;
  }
}
@keyframes cv3-brand-out{from{opacity:1;}to{opacity:0;}}
@keyframes cv3-brand-in{from{opacity:0;}to{opacity:1;}}
@keyframes cv3-passage-recede{
  from{opacity:1;transform:none;clip-path:inset(0);}
  to{opacity:0;transform:translate3d(-12px,0,0) scale(.996);clip-path:inset(0);}
}
@keyframes cv3-passage-unseal{
  from{opacity:1;transform:translate3d(14px,0,0);clip-path:polygon(0 0,7% 0,0 100%,0 100%);}
  to{opacity:1;transform:none;clip-path:polygon(0 0,100% 0,100% 100%,0 100%);}
}
@keyframes cv3-passage-malachite{
  from{opacity:1;transform:translate3d(0,12px,0);clip-path:polygon(0 100%,100% 94%,100% 100%,0 100%);}
  to{opacity:1;transform:none;clip-path:polygon(0 0,100% 0,100% 100%,0 100%);}
}
/* Révélations fail-open : l'état d'attente est toujours lisible. Le même
   observer existant déclenche une animation finie, jamais un masque fermé
   qui attendrait une autre action. L'étalonnage des images enfants reste
   celui de la page ; seul le filtre temporaire du conteneur est retiré. */
html:has(> body[data-page]:not([data-page="index"]):not([data-page="folco"]):not([data-page^="terrae"]):not([data-terrae-production])) body.cv3-nonhome [data-cv3-reveal="title"],
html:has(> body[data-page]:not([data-page="index"]):not([data-page="folco"]):not([data-page^="terrae"]):not([data-terrae-production])) body.cv3-nonhome [data-cv3-reveal="media"]{
  opacity:1;
  transform:none;
  filter:none;
  clip-path:none;
  -webkit-mask-image:none;
  mask-image:none;
  transition:none;
}
@media(prefers-reduced-motion:no-preference){
  html:has(> body[data-page]:not([data-page="index"]):not([data-page="folco"]):not([data-page^="terrae"]):not([data-terrae-production])) body.cv3-nonhome [data-cv3-reveal="title"].cv3-in{
    animation:cv3-heading-settle .64s cubic-bezier(.22,.75,.18,1) both;
  }
  html:has(> body[data-page]:not([data-page="index"]):not([data-page="folco"]):not([data-page^="terrae"]):not([data-terrae-production])) body.cv3-nonhome [data-cv3-reveal="media"].cv3-in{
    animation:cv3-material-settle .82s .08s cubic-bezier(.22,.75,.18,1) both;
  }
}
@keyframes cv3-heading-settle{
  from{opacity:.78;transform:translate3d(0,8px,0);}
  to{opacity:1;transform:none;}
}
@keyframes cv3-material-settle{
  from{opacity:1;transform:translate3d(0,7px,0);clip-path:none;}
  to{opacity:1;transform:none;clip-path:none;}
}
@media(max-width:760px),(pointer:coarse){
  html:has(> body[data-page]:not([data-page="index"]):not([data-page="folco"]):not([data-page^="terrae"]):not([data-terrae-production]))::view-transition-old(root){animation-duration:.28s;}
  html:has(> body[data-page]:not([data-page="index"]):not([data-page="folco"]):not([data-page^="terrae"]):not([data-terrae-production]))::view-transition-new(root){animation:cv3-passage-compact .52s cubic-bezier(.22,.75,.18,1) both !important;}
  html:has(> body[data-page]:not([data-page="index"]):not([data-page="folco"]):not([data-page^="terrae"]):not([data-terrae-production]))::view-transition-group(cv3-brand){animation-duration:.44s;}
  html:has(> body[data-page]:not([data-page="index"]):not([data-page="folco"]):not([data-page^="terrae"]):not([data-terrae-production])) body.cv3-nonhome [data-cv3-reveal="title"].cv3-in{animation-duration:.42s;}
  html:has(> body[data-page]:not([data-page="index"]):not([data-page="folco"]):not([data-page^="terrae"]):not([data-terrae-production])) body.cv3-nonhome [data-cv3-reveal="media"].cv3-in{animation-duration:.50s;animation-delay:.05s;}
}
@keyframes cv3-passage-compact{
  from{opacity:1;transform:translate3d(0,4px,0);clip-path:inset(0 0 18% 0);}
  to{opacity:1;transform:none;clip-path:inset(0);}
}
@media(prefers-reduced-motion:reduce),(forced-colors:active){
  html:has(> body[data-page]:not([data-page="index"]):not([data-page="folco"]):not([data-page^="terrae"]):not([data-terrae-production]))::view-transition-old(root),
  html:has(> body[data-page]:not([data-page="index"]):not([data-page="folco"]):not([data-page^="terrae"]):not([data-terrae-production]))::view-transition-new(root),
  html:has(> body[data-page]:not([data-page="index"]):not([data-page="folco"]):not([data-page^="terrae"]):not([data-terrae-production]))::view-transition-group(cv3-brand){animation:none !important;transform:none;clip-path:none;}
  html:has(> body[data-page]:not([data-page="index"]):not([data-page="folco"]):not([data-page^="terrae"]):not([data-terrae-production])) body.cv3-nonhome [data-cv3-reveal="title"],
  html:has(> body[data-page]:not([data-page="index"]):not([data-page="folco"]):not([data-page^="terrae"]):not([data-terrae-production])) body.cv3-nonhome [data-cv3-reveal="media"]{animation:none !important;opacity:1;transform:none;clip-path:none;transition:none;}
}

/* L'instrument météo fermé ne doit recouvrir ni les dossiers ni leurs CTA.
   Le chapitre Folco est explicitement exclu du correctif de positionnement. */
@media(min-width:701px){
  body.cv3-nonhome:not(:has(#folco.cv90-section-active)) #cv-atmosphere-control:not(.cv-atmo-control--expanded){
    left:auto !important;right:4px !important;top:auto !important;bottom:112px !important;
    width:40px !important;min-width:40px !important;height:40px !important;min-height:40px !important;
    display:block !important;padding:0 !important;transform:none !important;
  }
  body.cv3-nonhome:not(:has(#folco.cv90-section-active)) #cv-atmosphere-control:not(.cv-atmo-control--expanded) .cv-atmo-place{
    position:absolute !important;width:1px !important;height:1px !important;
    overflow:hidden !important;clip-path:inset(50%) !important;
  }
  body.cv3-nonhome:not(:has(#folco.cv90-section-active)) #cv-atmosphere-control:not(.cv-atmo-control--expanded) .cv-atmo-toggle{
    width:38px !important;height:38px !important;min-height:38px !important;padding:8px !important;
    display:grid !important;grid-template-columns:1fr !important;place-items:center !important;gap:0 !important;
  }
  body.cv3-nonhome:not(:has(#folco.cv90-section-active)) #cv-atmosphere-control:not(.cv-atmo-control--expanded) .cv-atmo-instrument{display:block !important;}
  body.cv3-nonhome:not(:has(#folco.cv90-section-active)) #cv-atmosphere-control:not(.cv-atmo-control--expanded) .cv-atmo-indicator{display:none !important;}
}
