/*
 * CARAVELLI — Studios 2026 / couche témoin ciblée.
 * Chargée sur six témoins uniquement, après l'orchestrateur et ARXIV8 quand
 * présent. Aucun moteur, aucune police, aucune règle pour l'accueil Claude.
 *
 * La caméra, les transitions, la lumière, les titres et la matière sont déjà
 * propriétaires de caravelli-v3-orchestrator.css + caravelli-arxiv8-effects.css.
 * Cette feuille n'en crée donc pas de doublon : elle borne le compositing,
 * protège la lecture et ajoute une qualité adaptative progressive.
 */

body.cv3-nonhome.cv3-witness {
  --s26-edge-light: rgba(250, 247, 239, .32);
  --s26-edge-dark: rgba(8, 10, 12, .24);
}

/* Matière/sculpture : une arête optique sans nouvelle nappe ni pseudo-élément. */
body.cv3-nonhome.cv3-witness .cv3-plane {
  contain: paint;
  outline: 1px solid var(--s26-edge-light);
  outline-offset: -1px;
}

body.cv3-nonhome.cv3-witness :is(.cv3-material--carrara, .cv3-material--ivory) .cv3-plane {
  outline-color: rgba(45, 49, 51, .2);
}

/* La surface gravée et la lumière ARXIV8 restent à z=0/1 ; légendes et
   informations actionnables demeurent explicitement au-dessus. */
body.cv3-nonhome.cv3-witness :is(.cv3-media, .cp-card, .property-card) > :is(
  figcaption,
  .caption,
  .destination-copy,
  .property-copy,
  .ba-labels
),
body.cv3-nonhome.cv3-witness-contact :is(.contact-form, .contact-details),
body.cv3-nonhome.cv3-witness-luxury-property :is(.bien-specs, .bien-desc, .bien-actions) {
  position: relative;
  z-index: 4;
}

/* About : ombre optique réservée à la citation obsidienne. Les titres clairs
   conservent le rendu net, sans bloom ni filtre. */
body.cv3-nonhome.cv3-witness-institution .cine-quote blockquote {
  text-wrap: balance;
  text-shadow: 0 .035em .11em rgba(0, 0, 0, .4), 0 1px 0 rgba(255, 255, 255, .06);
}

/* Rendu différé des longues pièces éditoriales non sticky. La seconde valeur
   devient la taille intrinsèque mémorisée après premier rendu, limitant CLS. */
@supports (content-visibility: auto) {
  body.cv3-nonhome:is(
    .cv3-witness-dubai,
    .cv3-witness-institution,
    .cv3-witness-portfolio,
    .cv3-witness-contact
  ) .cv3-room:not(.cv3-hero-stage, .cine-quote) {
    content-visibility: auto;
    contain-intrinsic-block-size: auto 900px;
  }
}

/* Adaptation mobile/coarse : les volumes et proportions existants restent,
   mais les coûts décoratifs non essentiels ne sont pas composités. */
@media (max-width: 760px), (pointer: coarse) {
  body.cv3-nonhome.cv3-witness .cv3-plane {
    contain: paint;
    outline-color: rgba(250, 247, 239, .22);
  }

  body.cv3-nonhome.cv3-witness .cv3-plane :is(img, video) {
    will-change: auto !important;
  }

  body.cv3-nonhome.cv3-witness .cv3-plane::before {
    display: none;
  }

  body.cv3-nonhome.cv3-witness :is(.dxb-cap, .contact-form) {
    -webkit-backdrop-filter: none !important;
    backdrop-filter: none !important;
  }
}

/* La préférence de transparence coupe verre et poussière, sans masquer les
   photographies, le formulaire, les prix ni les CTA. */
@media (prefers-reduced-transparency: reduce) {
  body.cv3-nonhome.cv3-witness .cv3-room-light,
  body.cv3-nonhome.cv3-witness .cv3-plane::before,
  body.cv3-nonhome.cv3-witness .cv3-plane::after {
    display: none !important;
  }

  body.cv3-nonhome.cv3-witness :is(.dxb-cap, .contact-form) {
    -webkit-backdrop-filter: none !important;
    backdrop-filter: none !important;
  }
}

/* Mode données réduites : aucune animation décorative/transition coûteuse.
   Les transitions de navigation sont déjà neutralisées par l'orchestrateur
   sous prefers-reduced-motion. */
@media (prefers-reduced-data: reduce) {
  body.cv3-nonhome.cv3-witness .cv3-room-light,
  body.cv3-nonhome.cv3-witness .cv3-plane::before {
    display: none !important;
  }

  body.cv3-nonhome.cv3-witness :is(.cv3-media, .cv3-plane, .cp-card, .property-card),
  body.cv3-nonhome.cv3-witness :is(.cv3-media, .cv3-plane, .cp-card, .property-card)::before,
  body.cv3-nonhome.cv3-witness :is(.cv3-media, .cv3-plane, .cp-card, .property-card)::after {
    animation: none !important;
    transition: none !important;
  }
}

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

  body.cv3-nonhome.cv3-witness .cv3-plane :is(img, video) {
    will-change: auto !important;
  }
}

@media (prefers-contrast: more) {
  body.cv3-nonhome.cv3-witness :is(.cv3-material--carrara, .cv3-material--ivory) {
    color: #101214 !important;
  }

  body.cv3-nonhome.cv3-witness :is(.cv3-material--glass, .cv3-material--smoke, .cv3-material--obsidian) {
    color: #fff !important;
  }
}

@media (forced-colors: active) {
  body.cv3-nonhome.cv3-witness .cv3-room-light,
  body.cv3-nonhome.cv3-witness .cv3-plane::before,
  body.cv3-nonhome.cv3-witness .cv3-plane::after {
    display: none !important;
  }

  body.cv3-nonhome.cv3-witness .cv3-plane {
    contain: none;
    outline: 1px solid CanvasText;
  }

  body.cv3-nonhome.cv3-witness :is(.cv3-monument-title, .cine-quote blockquote) {
    color: CanvasText !important;
    text-shadow: none !important;
  }
}
