/* CARAVELLI — 12 chantiers. Couche strictement namespacée. */
/* Les douze récits sont actuellement éditorialisés en français uniquement.
   Aucun sélecteur EN/IT inerte ne doit promettre une traduction inexistante. */
html body.c12[data-page].cv3-nonhome header .nav > .lang-sw{display:none!important}
@font-face{font-family:"Bodoni Moda";src:url("/luxury-branch/assets/fonts/BodoniModa-500-latin.woff2") format("woff2");font-style:normal;font-weight:500;font-display:swap}
:root{--c12-ink:#151616;--c12-paper:#f2f0eb;--c12-bone:#e5e0d7;--c12-bronze:#a88752;--c12-muted:#625f59;--c12-ease:cubic-bezier(.19,1,.22,1)}
.c12{margin:0;background:var(--c12-paper);color:var(--c12-ink);font-family:var(--cv-typo-current-ff, Inter,Arial,sans-serif);overflow-x:clip}.c12 *{box-sizing:border-box}.c12 a{color:inherit}.c12 .cv-skip-link{position:fixed;z-index:1000;left:1rem;top:1rem;transform:translateY(-150%);background:var(--c12-ink);color:#fff;padding:.8rem 1rem}.c12 .cv-skip-link:focus{transform:none}.c12__header{height:88px;padding:0 clamp(20px,5vw,80px);display:flex;align-items:center;justify-content:space-between;background:rgba(242,240,235,.92);backdrop-filter:blur(14px);position:relative;z-index:20;border-bottom:1px solid rgba(21,22,22,.12)}.c12__brand{text-decoration:none;display:flex;flex-direction:column;font-family:var(--cv-typo-current-ff, "Cormorant Garamond",Georgia,serif);letter-spacing:var(--cv-typo-current-ls, .15em)}.c12__brand span{font-size:var(--cv-typo-current-fs, 1.05rem)}.c12__brand small{font:var(--cv-typo-current-font, italic .82rem Georgia,serif);letter-spacing:var(--cv-typo-current-ls, .08em)}.c12__header nav{display:flex;gap:clamp(16px,2.5vw,40px);align-items:center}.c12__header nav a{font-size:var(--cv-typo-current-fs, .72rem);letter-spacing:var(--cv-typo-current-ls, .12em);text-transform:var(--cv-typo-current-tt, uppercase);text-decoration:none}.c12__contact{min-height:44px;display:grid;place-items:center;border:1px solid currentColor;padding:0 18px}.c12__breadcrumb{padding:26px clamp(20px,5vw,80px);display:flex;gap:10px;font-size:var(--cv-typo-current-fs, .72rem);letter-spacing:var(--cv-typo-current-ls, .08em);text-transform:var(--cv-typo-current-tt, uppercase)}.c12__breadcrumb a{text-underline-offset:4px}.c12__hero{position:relative;min-height:calc(100svh - 140px);background:#101212;overflow:hidden}.c12__hero-image,.c12__hero-image .c12__media,.c12__hero-image .c12__media-mask{position:absolute;inset:0;margin:0}.c12__hero-image img{width:100%;height:100%;object-fit:contain;background:#101212}.c12__hero-image figcaption{position:absolute;right:24px;bottom:18px;z-index:4;color:#fff}.c12__hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(9,10,10,.72),rgba(9,10,10,.08) 68%);z-index:2}.c12__hero-copy{position:absolute;left:clamp(20px,7vw,110px);right:clamp(20px,7vw,110px);bottom:clamp(55px,10vh,120px);z-index:3;color:#fff}.c12__overline{font-size:var(--cv-typo-current-fs, .7rem);letter-spacing:var(--cv-typo-current-ls, .16em);text-transform:var(--cv-typo-current-tt, uppercase)}.c12__hero-copy h1{font:var(--cv-typo-current-font, 400 clamp(3.4rem,9vw,10.5rem)/.82 "Cormorant Garamond",Georgia,serif);letter-spacing:var(--cv-typo-current-ls, -.045em);margin:.22em 0;overflow:hidden}.c12__hero-copy h1 span{display:block}.c12__hero-copy>p:last-child{font:var(--cv-typo-current-font, italic clamp(1rem,1.6vw,1.4rem) Georgia,serif)}.c12__facts{padding:0 clamp(20px,5vw,80px);display:grid;grid-template-columns:repeat(5,minmax(0,1fr));border-bottom:1px solid rgba(21,22,22,.15)}.c12__facts>div{padding:32px 22px;border-left:1px solid rgba(21,22,22,.15)}.c12__facts>div:last-child{border-right:1px solid rgba(21,22,22,.15)}.c12__facts span{display:block;color:var(--c12-muted);font-size:var(--cv-typo-current-fs, .65rem);letter-spacing:var(--cv-typo-current-ls, .14em);text-transform:var(--cv-typo-current-tt, uppercase);margin-bottom:10px}.c12__facts strong{font:var(--cv-typo-current-font, 400 1rem/1.35 "Cormorant Garamond",Georgia,serif)}.c12__chapter,.c12__delivery{max-width:1440px;margin:auto;padding:clamp(80px,12vw,180px) clamp(20px,7vw,110px);display:grid;grid-template-columns:1fr 3fr;gap:7vw;border-bottom:1px solid rgba(21,22,22,.13)}.c12__chapter>span,.c12__delivery>span,.c12__gallery>header>span{font-size:var(--cv-typo-current-fs, .68rem);letter-spacing:var(--cv-typo-current-ls, .16em);text-transform:var(--cv-typo-current-tt, uppercase);color:var(--c12-muted)}.c12__chapter h2,.c12__gallery h2{font:var(--cv-typo-current-font, 400 clamp(2.7rem,5.5vw,6.8rem)/.92 "Cormorant Garamond",Georgia,serif);letter-spacing:var(--cv-typo-current-ls, -.035em);margin:0 0 .5em}.c12__chapter h2 em,.c12__gallery h2 em{color:var(--c12-bronze);font-weight:var(--cv-typo-current-fw, 400)}.c12__chapter p,.c12__delivery p{max-width:760px;font:var(--cv-typo-current-font, 400 clamp(1rem,1.25vw,1.18rem)/1.75 Inter,Arial,sans-serif)}.c12__statement{padding:clamp(90px,15vw,230px) clamp(20px,12vw,190px);background:var(--c12-ink);color:var(--c12-paper)}.c12__statement p{max-width:1180px;margin:auto;font:var(--cv-typo-current-font, 400 clamp(2.3rem,5vw,6rem)/1.04 "Cormorant Garamond",Georgia,serif)}.c12__gallery{max-width:1600px;margin:auto;padding:clamp(90px,12vw,180px) clamp(20px,5vw,80px)}.c12__gallery>header{margin-bottom:clamp(55px,8vw,110px);display:grid;grid-template-columns:1fr 3fr;gap:7vw}.c12__media{margin:0 0 clamp(55px,10vw,150px);position:relative}.c12__media:nth-of-type(even){width:78%;margin-left:auto}.c12__media:nth-of-type(3n){width:66%;margin-right:auto}.c12__media-mask{position:relative;overflow:hidden;background:#d5d1ca;clip-path:inset(0 0 100% 0);transition:clip-path 1s var(--c12-ease)}.c12__media.is-visible .c12__media-mask,.c12__hero .c12__media-mask{clip-path:inset(0)}.c12__media img{display:block;width:100%;height:auto;transform:scale(1.04);transition:transform 1.2s var(--c12-ease),filter 1.1s var(--c12-ease);will-change:transform}.c12__media.is-visible img{transform:scale(1)}.c12__media--hero-cinema img{transform:scale(1.065)}.c12__media--landscape-float.is-visible img{transform:translate3d(0,var(--c12-y,0),0) scale(1.015)}.c12__media--editorial-interior .c12__media-mask{clip-path:inset(0 100% 0 0)}.c12__media--detail-micro img{transform:scale(1.025)}.c12__media--aerial-plan .c12__media-mask{clip-path:inset(48% 48%)}.c12__media--night-glow img{filter:blur(8px) brightness(.92)}
                                                                          
.c12__media--night-glow img:where([data-cv-a6-graded="20261007"]){filter:blur(8px);}
.c12__media--night-glow.is-visible img,.c12__hero .c12__media--night-glow img{filter:blur(0) brightness(1.02)}
                                                                          
.c12__media--night-glow.is-visible img:where([data-cv-a6-graded="20261007"]),
.c12__hero .c12__media--night-glow img:where([data-cv-a6-graded="20261007"]){filter:blur(0);}
.c12__caustic:after{content:"";position:absolute;inset:-20%;pointer-events:none;background:radial-gradient(ellipse at var(--c12-light-x,30%) 70%,rgba(232,221,181,.16),transparent 35%);mix-blend-mode:screen;transform:translate3d(0,var(--c12-light-y,0),0)}.c12__media:after{content:"";position:absolute;inset:0;pointer-events:none;opacity:.012;background-image:url('/assets/grain.png');z-index:2}.c12__media figcaption{display:flex;gap:18px;margin-top:12px;color:#514f4a;font-size:var(--cv-typo-current-fs, .72rem);letter-spacing:var(--cv-typo-current-ls, .06em)}.c12__media[data-media-type="visualisation"] figcaption{font-style:var(--cv-typo-current-fst, italic)}.c12__media[data-effect="WATER_LIGHT"] .c12__media-mask:before{content:"";position:absolute;z-index:2;inset:0;background:linear-gradient(105deg,transparent 35%,rgba(255,245,211,.16) 49%,transparent 64%);transform:translateX(-110%);transition:transform 2.4s var(--c12-ease);pointer-events:none}.c12__media[data-effect="WATER_LIGHT"].is-visible .c12__media-mask:before{transform:translateX(110%)}.c12__media:hover img{transform:scale(1.018)}.c12__delivery{grid-template-columns:1fr 2fr 1fr;align-items:start}.c12__delivery strong{font:var(--cv-typo-current-font, italic 1.2rem/1.4 Georgia,serif);color:var(--c12-bronze)}.c12__back{min-height:140px;padding:0 clamp(20px,7vw,110px);display:flex;align-items:center;gap:20px;text-decoration:none;font:var(--cv-typo-current-font, 400 clamp(2rem,4vw,4.7rem)/1 "Cormorant Garamond",Georgia,serif)}.c12__back span{transition:transform .5s var(--c12-ease)}.c12__back:hover span{transform:translateX(-8px)}.c12__footer{background:#111313;color:#e8e4dc;padding:60px clamp(20px,5vw,80px) 30px;display:grid;grid-template-columns:1fr 1fr;gap:45px}.c12__footer div{display:flex;flex-direction:column;gap:8px}.c12__footer div span,.c12__footer small{font-size:var(--cv-typo-current-fs, .7rem);letter-spacing:var(--cv-typo-current-ls, .1em);color:#a6a29a}.c12__footer nav{display:flex;flex-wrap:wrap;gap:24px;justify-content:flex-end}.c12__footer a{font-size:var(--cv-typo-current-fs, .76rem)}.c12__transition{position:fixed;z-index:999;inset:0;background:#151616;transform:translateY(100%);pointer-events:none}.c12.is-leaving .c12__transition{transform:translateY(0);transition:transform .9s var(--c12-ease)}

/* Modules ajoutés au Portfolio */
.c12p{--c12p-ink:#151616;--c12p-paper:#f2f0eb;--c12p-bronze:#9c7d4d;color:var(--c12p-ink);background:var(--c12p-paper);padding:clamp(90px,11vw,170px) clamp(20px,5vw,80px);position:relative}.c12p__head{max-width:1200px;margin:0 auto clamp(55px,7vw,100px)}.c12p__head>span{font-size:var(--cv-typo-current-fs, .68rem);text-transform:var(--cv-typo-current-tt, uppercase);letter-spacing:var(--cv-typo-current-ls, .18em);color:#696761}.c12p__head h2{font:var(--cv-typo-current-font, 400 clamp(3rem,7vw,8rem)/.88 "Cormorant Garamond",Georgia,serif);letter-spacing:var(--cv-typo-current-ls, -.045em);margin:.18em 0}.c12p__head p{font:var(--cv-typo-current-font, 400 clamp(1.1rem,1.6vw,1.45rem)/1.5 Georgia,serif);max-width:620px}.c12p__grid{max-width:1500px;margin:auto;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(60px,9vw,140px) clamp(28px,6vw,90px)}.c12p__card{min-width:0}.c12p__card:nth-child(even){padding-top:clamp(60px,9vw,130px)}.c12p__card a{text-decoration:none;color:inherit;display:block}.c12p__image{aspect-ratio:4/3;overflow:hidden;background:#cbc7c0;clip-path:inset(0 0 100% 0);transition:clip-path 1s var(--c12-ease)}.c12p__card:nth-child(3n+2) .c12p__image{aspect-ratio:3/4}.c12p__card.is-visible .c12p__image{clip-path:inset(0)}.c12p__image img{width:100%;height:100%;object-fit:cover;transform:scale(1.045) translateY(var(--c12p-y,0));transition:transform 1.2s var(--c12-ease)}.c12p__card:hover img{transform:scale(1.018)}.c12p__meta{padding-top:20px;position:relative}.c12p__meta>span{font-size:var(--cv-typo-current-fs, .66rem);text-transform:var(--cv-typo-current-tt, uppercase);letter-spacing:var(--cv-typo-current-ls, .14em);color:#66625c}.c12p__meta h3{font:var(--cv-typo-current-font, 400 clamp(2rem,3.3vw,4.5rem)/.95 "Cormorant Garamond",Georgia,serif);margin:.22em 0;overflow:hidden}.c12p__meta h3 span{display:block;transform:translateY(110%);transition:transform .9s var(--c12-ease)}.c12p__card.is-visible h3 span{transform:none}.c12p__meta p,.c12p__meta strong{font-size:var(--cv-typo-current-fs, .75rem);letter-spacing:var(--cv-typo-current-ls, .06em)}.c12p__meta strong{display:block;margin-top:12px;color:#7a6039}.c12p__meta em{position:absolute;right:0;bottom:0;font:var(--cv-typo-current-font, italic .84rem Georgia,serif);opacity:0;transform:translateY(5px);transition:.45s var(--c12-ease)}.c12p__card:hover .c12p__meta em,.c12p__card:focus-within .c12p__meta em{opacity:1;transform:none}.c12p--ongoing{background:#171919;color:#eeece7;min-height:420vh}.c12p--ongoing .c12p__head>span,.c12p--ongoing .c12p__meta>span{color:#aaa69e}.c12p__rail-wrap{position:sticky;top:0;height:100svh;display:flex;flex-direction:column;justify-content:center;overflow:hidden}.c12p__rail{display:flex;gap:32px;width:max-content;will-change:transform}.c12p--ongoing .c12p__card{width:min(68vw,840px);flex:0 0 auto}.c12p--ongoing .c12p__card:nth-child(even){padding-top:0}.c12p--ongoing .c12p__image{aspect-ratio:16/9}.c12p__progress{height:1px;background:#494b49;margin-top:38px}.c12p__progress span{display:block;width:100%;height:100%;background:#c0a36e;transform:scaleX(var(--c12p-progress,0));transform-origin:left}.c12p__transition{position:fixed;z-index:9999;inset:0;background:#151616;transform:translateY(100%);pointer-events:none}.c12p-leaving .c12p__transition{transform:none;transition:transform .9s var(--c12-ease)}

/* Le rail horizontal ne reprend pas les ratios portrait de la grille livrée.
   Les cartes 2 et 5 doivent réserver la même hauteur aux titres et métadonnées. */
.c12p--ongoing .c12p__card .c12p__image{aspect-ratio:16/9}

/* L'action reste perceptible sans imposer le survol, y compris au clavier et au tactile. */
.c12p__meta em{opacity:.82;transform:none}
.c12p__card:hover .c12p__meta em,.c12p__card:focus-within .c12p__meta em{opacity:1}

/* Bodoni souveraine : uniquement les voix éditoriales, jamais l'UI ou les métadonnées. */
.c12 :is(.c12__hero-copy h1,.c12__chapter h2,.c12__gallery h2,.c12__statement p,.c12__back),
body[data-page="portfolio"] :is(.ph-h1,.c12p__head h2,.c12p__meta h3){font-family:var(--cv-typo-current-ff, "Bodoni Moda",Didot,"Bodoni 72",Georgia,serif) !important;font-weight:var(--cv-typo-current-fw, 500) !important;font-optical-sizing:var(--cv-typo-optical, auto)}
.c12__hero-copy h1{font-size:var(--cv-typo-current-fs, clamp(3.25rem,8.5vw,9.7rem));line-height:var(--cv-typo-current-lh, .86);letter-spacing:var(--cv-typo-current-ls, -.056em)}

/* P0 lecture des douze fiches : le héros reste une chambre obsidienne,
   indépendamment des matières Carrara injectées autour par CV3. Le titre
   Bodoni dispose de sa hauteur réelle — aucune hampe ni descendante coupée. */
body.c12 .c12__hero{background:#101212 !important;color:#fff !important;isolation:isolate}
body.c12 .c12__hero-image{position:absolute !important;inset:0 !important;z-index:0 !important;background:#101212 !important}
body.c12 .c12__hero-shade{position:absolute !important;inset:0 !important;z-index:2 !important;background:linear-gradient(90deg,rgba(7,9,9,.82) 0%,rgba(7,9,9,.42) 42%,rgba(7,9,9,.08) 76%) !important;pointer-events:none}
body.c12 .c12__hero-copy{position:absolute !important;z-index:4 !important;color:#fff !important;-webkit-text-fill-color:#fff !important;text-shadow:0 2px 30px rgba(0,0,0,.58)}
body.c12 .c12__hero-copy :is(h1,h1 span,.c12__overline,p){color:#fff !important;-webkit-text-fill-color:#fff !important;mix-blend-mode:normal !important}
body.c12 .c12__hero-copy h1{overflow:visible !important;line-height:var(--cv-typo-current-lh, .96) !important;padding:.08em 0 .16em;margin:.12em 0 !important;clip-path:none !important}
body.c12 .c12__hero-copy h1 span{overflow:visible !important;clip-path:none !important}
.c12__chapter h2,.c12__gallery h2{font-size:var(--cv-typo-current-fs, clamp(2.65rem,5.3vw,6.5rem));line-height:var(--cv-typo-current-lh, .91);letter-spacing:var(--cv-typo-current-ls, -.045em)}
.c12__statement p{font-size:var(--cv-typo-current-fs, clamp(2.35rem,5.1vw,6.15rem));line-height:var(--cv-typo-current-lh, 1.01);letter-spacing:var(--cv-typo-current-ls, -.04em)}
.c12__back{font-size:var(--cv-typo-current-fs, clamp(2.1rem,4.1vw,4.8rem));line-height:var(--cv-typo-current-lh, .96);letter-spacing:var(--cv-typo-current-ls, -.035em)}
body[data-page="portfolio"] .c12p__head h2{font-size:var(--cv-typo-current-fs, clamp(3rem,7vw,8rem));line-height:var(--cv-typo-current-lh, .86);letter-spacing:var(--cv-typo-current-ls, -.052em)}
body[data-page="portfolio"] .c12p__meta h3{font-size:var(--cv-typo-current-fs, clamp(2.1rem,3.45vw,4.7rem));line-height:var(--cv-typo-current-lh, .92);letter-spacing:var(--cv-typo-current-ls, -.04em)}

/* ARXIV8 — signatures éditoriales perceptibles, portées par le moteur C12 existant. */
.c12p__head,.c12__chapter,.c12__gallery>header{position:relative;isolation:isolate}
.c12p__head h2,.c12__chapter h2,.c12__gallery h2{
  position:relative;z-index:2;transform:translate3d(0,.14em,0);clip-path:inset(0 0 7% 0);
  transition:transform 1.05s var(--c12-ease),clip-path 1.05s var(--c12-ease)
}
.c12p__head.is-visible h2,.c12__chapter.is-visible h2,.c12__gallery>header.is-visible h2{transform:none;clip-path:inset(0)}
/* Les révélations C12 gardent la main sur les états tardifs du moteur V3.
   Sans ceci, le reveal global pouvait laisser les titres hors écran à 100 %. */
html.cv3-motion body[data-page="portfolio"] .c12p__head h2{
  transform:translate3d(0,.14em,0) !important;clip-path:inset(0 0 7% 0) !important;opacity:1 !important
}
html.cv3-motion body[data-page="portfolio"] .c12p__head.is-visible h2,
html.cv3-motion body[data-page="portfolio"] .c12p__head[data-cv3-state="visible"] h2{
  transform:none !important;clip-path:inset(0) !important;opacity:1 !important
}
.c12 .c12__chapter.is-visible h2,.c12 .c12__gallery>header.is-visible h2{
  transform:none !important;clip-path:inset(0) !important;opacity:1 !important
}
.c12p__head:after,.c12__chapter:after,.c12__gallery>header:after{
  content:"";position:absolute;z-index:1;left:0;bottom:-16px;width:min(230px,42%);height:1px;
  background:linear-gradient(90deg,transparent,#9c7d4d 12%,#ece7dc 54%,transparent);
  transform:scaleX(.22);transform-origin:left;opacity:.68;
  transition:transform 1.2s var(--c12-ease),opacity .7s ease
}
.c12p__head.is-visible:after,.c12__chapter.is-visible:after,.c12__gallery>header.is-visible:after{transform:scaleX(1);opacity:1}

.c12p__card{position:relative;isolation:isolate;--c12-stagger:0ms}
.c12p__card:nth-child(2n){--c12-stagger:90ms}.c12p__card:nth-child(3n){--c12-stagger:170ms}
.c12p__card a{position:relative;z-index:2}
.c12p__card:after{
  content:"";position:absolute;z-index:1;inset:-1px;pointer-events:none;
  border-top:1px solid rgba(156,125,77,.34);border-bottom:1px solid rgba(156,125,77,.22);
  transform:scaleX(.22);transform-origin:left;opacity:.68;
  transition:transform 1.15s var(--c12-ease) var(--c12-stagger),opacity .55s ease
}
.c12p__card.is-visible:after,.c12p__card:focus-within:after,.c12p__card:hover:after{transform:scaleX(1);opacity:1}
.c12p__image{
  position:relative;z-index:2;clip-path:inset(0 0 14% 0);
  background:linear-gradient(128deg,#c8c3ba,#e8e3da 46%,#aaa49b);
  transition:clip-path 1.15s var(--c12-ease) var(--c12-stagger)
}
.c12p__image:before{
  content:"";position:absolute;z-index:0;inset:-10%;pointer-events:none;
  /* K3-A : points blancs/bronze lus comme de la poussière — reflet seul conservé. */
  background:linear-gradient(117deg,transparent 35%,rgba(255,255,255,.22) 49%,transparent 63%);
  background-size:100% 100%;opacity:.42;transform:translate3d(-2%,2%,0) rotate(-1deg);
  transition:transform 1.6s var(--c12-ease),opacity 1s ease
}
.c12p__card.is-visible .c12p__image{clip-path:inset(0)}
.c12p__card.is-visible .c12p__image:before{transform:translate3d(2%,-1%,0) rotate(0);opacity:.7}
.c12p__image img{position:relative;z-index:1;display:block;transform:translate3d(0,var(--c12-y,0),0) scale(1.06);will-change:transform}
.c12p__card.is-visible .c12p__image img{transform:translate3d(0,var(--c12-y,0),0) scale(1)}
.c12p__card:hover .c12p__image img{transform:translate3d(0,var(--c12-y,0),0) scale(1.018)}
.c12p__meta{z-index:3}
.c12p__meta h3{overflow:visible;padding:.08em 0 .13em;margin:.12em 0}
.c12p__meta h3 span{
  transform:translate3d(0,.24em,0);clip-path:inset(0 0 8% 0);
  transition:transform .95s var(--c12-ease) var(--c12-stagger),clip-path .95s var(--c12-ease) var(--c12-stagger)
}
.c12p__card.is-visible h3 span{transform:none;clip-path:inset(0)}

/* Obsidian Cut : coupe diagonale et filet platine lors de la navigation. */
.c12__transition,.c12p__transition{
  transform:none;clip-path:polygon(0 100%,100% 100%,100% 100%,0 100%);
  background:linear-gradient(118deg,#090a0a 0 46%,#171919 46.2% 100%)
}
.c12__transition:before,.c12p__transition:before{
  content:"";position:absolute;left:-10%;right:-10%;top:46%;height:1px;
  background:linear-gradient(90deg,transparent,#d6c49f 22%,#f2eee4 52%,#8f7145 78%,transparent);
  box-shadow:0 0 24px rgba(214,196,159,.34)
}
.c12.is-leaving .c12__transition,.c12p-leaving .c12p__transition{
  clip-path:polygon(0 0,100% 0,100% 100%,0 100%);transition:clip-path .82s var(--c12-ease)
}

/* La galerie livrée reste une chambre Carrara, même si l'orchestrateur
   attribue une matière de passage à cette section. */
body.cv3-witness .c12p--delivered{
  color:var(--c12p-ink) !important;
  background:radial-gradient(72% 50% at 88% 8%,rgba(255,255,255,.86),transparent 68%),linear-gradient(112deg,transparent 0 23%,rgba(119,125,127,.075) 23.25%,transparent 23.7% 67%,rgba(255,255,255,.38) 67.3%,transparent 68%),linear-gradient(152deg,#f7f5f0 0%,var(--c12p-paper) 54%,#dedbd4 100%) !important;
}
body[data-page="portfolio"].cv3-witness .c12p--delivered,
body[data-page="portfolio"].cv3-witness .c12p--delivered a{
  color:#151616 !important;
  -webkit-text-fill-color:#151616 !important;
}
body[data-page="portfolio"].cv3-witness .c12p--delivered :is(h2,h3),
body[data-page="portfolio"].cv3-witness .c12p--delivered .c12p__meta h3 span{
  color:#151616 !important;
  -webkit-text-fill-color:#151616 !important;
  text-shadow:none !important;
}
body[data-page="portfolio"].cv3-witness .c12p--delivered :is(p,.c12p__meta>span){color:rgba(21,22,22,.76) !important;-webkit-text-fill-color:rgba(21,22,22,.76) !important}
body[data-page="portfolio"].cv3-witness .c12p--delivered .c12p__head>span{color:#625d54 !important;-webkit-text-fill-color:#625d54 !important}
body[data-page="portfolio"].cv3-witness .c12p--delivered .c12p__meta strong{color:#755d38 !important;-webkit-text-fill-color:#755d38 !important}
body[data-page="portfolio"].cv3-witness .c12p--ongoing .c12p__meta strong{
  color:#d6c49f !important;
  -webkit-text-fill-color:#d6c49f !important;
  text-shadow:0 1px 18px rgba(0,0,0,.36)
}

/* Le rail desktop conserve sa hauteur narrative malgré les chambres CV3. */
@media(min-width:901px) and (pointer:fine) and (prefers-reduced-motion:no-preference){
  body[data-page="portfolio"].cv3-witness .c12p--ongoing{min-height:420vh !important;padding-block:0 !important;overflow:clip !important}
  body[data-page="portfolio"].cv3-witness .c12p--ongoing .c12p__rail-wrap{position:sticky !important;top:0 !important;height:100svh !important;overflow:hidden !important;padding:clamp(54px,7vh,82px) 0}
}

@media(max-width:900px){.c12__header nav a:not(.c12__contact){display:none}.c12__facts{grid-template-columns:1fr 1fr}.c12__chapter,.c12__delivery,.c12__gallery>header{grid-template-columns:1fr;gap:28px}.c12__delivery{grid-template-columns:1fr}.c12__footer{grid-template-columns:1fr}.c12__footer nav{justify-content:flex-start}.c12p--ongoing{min-height:auto}.c12p__rail-wrap{position:relative;height:auto;overflow:visible}.c12p__rail{display:grid;width:auto;transform:none!important}.c12p--ongoing .c12p__card{width:auto}.c12p__progress{display:none}}
@media(max-width:680px){.c12__header{height:72px}.c12__contact{font-size:var(--cv-typo-current-fs, .62rem)!important}.c12 .logo,.c12 .ntog,.c12 .nav a,.c12 .ncta,.c12 .lb,.c12__breadcrumb a,.c12 .ft-nav a{min-height:44px;display:flex;align-items:center}.c12 .lb{min-width:44px;justify-content:center}.c12__facts{grid-template-columns:1fr}.c12__facts>div,.c12__facts>div:last-child{border-right:1px solid rgba(21,22,22,.15)}.c12__hero{min-height:76svh}.c12__hero-image img{object-fit:cover}.c12__hero-copy{left:22px !important;right:22px !important;bottom:clamp(38px,8svh,72px) !important}.c12__hero-copy h1{font-size:var(--cv-typo-current-fs, clamp(3rem,15vw,4.75rem));line-height:var(--cv-typo-current-lh, .98) !important;letter-spacing:var(--cv-typo-current-ls, -.05em)}.c12__chapter h2,.c12__gallery h2{font-size:var(--cv-typo-current-fs, clamp(2.55rem,13vw,4.35rem));line-height:var(--cv-typo-current-lh, .94)}.c12__statement p{font-size:var(--cv-typo-current-fs, clamp(2.25rem,11vw,3.9rem));line-height:var(--cv-typo-current-lh, 1.04)}.c12__media,.c12__media:nth-of-type(even),.c12__media:nth-of-type(3n){width:100%;margin-left:0;margin-right:0}.c12p__grid{grid-template-columns:1fr}.c12p__card:nth-child(even){padding-top:0}.c12p__image,.c12p__card:nth-child(3n+2) .c12p__image{aspect-ratio:auto}.c12p__image img{height:auto;object-fit:contain}.c12p__meta em{opacity:1;position:static;display:block;margin-top:16px;min-height:44px}.c12p__head h2{font-size:var(--cv-typo-current-fs, clamp(2.75rem,14vw,4.65rem))!important;line-height:var(--cv-typo-current-lh, .89)!important}.c12p__meta h3{font-size:var(--cv-typo-current-fs, clamp(2.05rem,10.7vw,3.1rem))!important;line-height:var(--cv-typo-current-lh, .94)!important}}
@media(pointer:coarse),(prefers-reduced-motion:reduce){.c12__media-mask,.c12p__image{clip-path:inset(0)!important}.c12__media img,.c12p__image img,.c12__media--night-glow img{transform:none!important;filter:none!important;transition:none!important}.c12__media-mask:before,.c12__caustic:after,.c12__transition{display:none!important}.c12p__meta h3 span{transform:none!important}.c12p--ongoing{min-height:auto}.c12p__rail-wrap{position:relative;height:auto;overflow:visible}.c12p__rail{display:grid;width:auto;transform:none!important}.c12p--ongoing .c12p__card{width:auto}.c12p__progress{display:none}}
@media(prefers-reduced-motion:reduce){.c12 *, .c12p *{scroll-behavior:auto!important;animation:none!important;transition-duration:.01ms!important}}

/* Hero C12 — la légende ne partage plus la zone de lecture du grand titre.
   Elle dispose d'une réserve locale en haut à droite, sans voile sur l'image. */
body.c12 .c12__hero-image figcaption{
  top:clamp(16px,2.5vw,30px) !important;
  right:clamp(18px,2.5vw,36px) !important;
  bottom:auto !important;
  z-index:5 !important;
  max-width:min(420px,40vw);
  padding:9px 12px;
  justify-content:flex-end;
  text-align:right;
  line-height:var(--cv-typo-current-lh, 1.45);
  overflow-wrap:break-word;
  color:#fff !important;
  background:linear-gradient(90deg,rgba(8,10,10,.22),rgba(8,10,10,.76));
  border-right:1px solid rgba(218,199,158,.66);
  text-shadow:0 1px 12px rgba(0,0,0,.72);
  backdrop-filter:blur(5px);
}

@media(max-width:680px){
  body.c12 .c12__hero-image figcaption{
    top:14px !important;
    right:14px !important;
    max-width:calc(100% - 44px) !important;
    padding:7px 9px;
    font-size:var(--cv-typo-current-fs, .66rem);
    line-height:var(--cv-typo-current-lh, 1.4);
  }
}

/* Presets autoritaires additionnels */
.c12__hero-image .c12__media img{width:100%;height:100%;object-fit:contain;background:#101212}
@media(min-width:901px){.c12__media--construction-story{position:sticky;top:8vh;margin-bottom:28vh;background:var(--c12-paper);box-shadow:0 24px 60px rgba(20,20,18,.12)}}
.c12__media--render-shared .c12__media-mask:after{content:"";position:absolute;inset:0;border:1px solid rgba(216,194,148,.34);box-shadow:inset 0 0 55px rgba(224,205,166,.08);pointer-events:none}.c12__media--render-shared:hover img{transform:scale(1.018)}
.c12__compare{height:48px;position:relative;margin-top:10px;display:flex;justify-content:space-between;align-items:center;font-size:var(--cv-typo-current-fs, .68rem);letter-spacing:var(--cv-typo-current-ls, .12em);text-transform:var(--cv-typo-current-tt, uppercase)}.c12__compare i{position:absolute;left:var(--c12-compare);top:-16px;width:1px;height:28px;background:var(--c12-bronze);transform:translateX(-50%)}.c12__compare input{position:absolute;inset:0;width:100%;height:48px;opacity:.001;cursor:ew-resize}.c12__compare input:focus-visible{opacity:1;accent-color:var(--c12-bronze)}

/* K3-20260818 : la figure .cv3-media reçoit un fond near-black
   (--cv3-obsidian-soft, orchestrateur) valable derrière l'image, mais la
   figure englobe aussi la zone de légende sous le masque → bande noire avec
   texte #151616 et index #625f59 illisibles. Le cadre redevient transparent
   (le masque garde son propre fond ivoire de chargement) et la légende reste
   lisible sur le papier. */
body.c12 .c12__gallery figure.cv3-media{
  background:transparent;
}
