/* ===== Master dossier — extra layouts ===== */
/* Cover Ken Burns */
.kb{ position:absolute; inset:0; overflow:hidden; background:#1a1512; }
.kb img{ width:100%; height:100%; object-fit:cover; transform:scale(1.06); }
@media (prefers-reduced-motion:no-preference){
  [data-deck-active] .kb img{ animation: kenburns 26s ease-in-out infinite alternate; }
}
@keyframes kenburns{ from{ transform:scale(1.06) translate(0,0);} to{ transform:scale(1.2) translate(-2.5%,-2%);} }

/* ===== Cinematic cover — multi-image crossfade (reads as video) ===== */
.cine{ position:absolute; inset:0; overflow:hidden; background:#161310; }
.cine-base{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; display:block; }
.cine .ly{ position:absolute; inset:0; opacity:0; }
.cine .ly img{ width:100%; height:100%; object-fit:cover; display:block; transform:scale(1.08); }
@media (prefers-reduced-motion:no-preference){
  [data-deck-active] .cine .ly{ animation:cineFade 27s cubic-bezier(.4,0,.2,1) infinite; animation-delay:var(--d,0s); }
  [data-deck-active] .cine .ly img{ animation:cineZoom 27s ease-in-out infinite; animation-delay:var(--d,0s); }
}
@keyframes cineFade{ 0%{opacity:0;} 4%{opacity:1;} 30%{opacity:1;} 37%{opacity:0;} 100%{opacity:0;} }
@keyframes cineZoom{ 0%{transform:scale(1.04);} 37%{transform:scale(1.16);} 100%{transform:scale(1.16);} }
/* film grain + vignette over the footage */
.cine-grain{ position:absolute; inset:0; pointer-events:none; mix-blend-mode:overlay; opacity:.5;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.5'/%3E%3C/svg%3E"); }
@media (prefers-reduced-motion:no-preference){ [data-deck-active] .cine-grain{ animation:grainShift 1.1s steps(3) infinite; } }
@keyframes grainShift{ 0%{transform:translate(0,0);} 33%{transform:translate(-3%,2%);} 66%{transform:translate(2%,-2%);} 100%{transform:translate(0,0);} }
.cine-vig{ position:absolute; inset:0; pointer-events:none; background:radial-gradient(130% 100% at 50% 38%, transparent 42%, rgba(18,13,10,.62) 100%); }
/* live indicator pill */
.cover-live{ display:inline-flex; align-items:center; gap:11px; font-family:var(--mono); font-size:18px; letter-spacing:.2em; text-transform:uppercase; color:rgba(242,235,221,.9); }
.cover-live .dot{ width:9px; height:9px; border-radius:50%; background:var(--terracotta); box-shadow:0 0 0 0 rgba(182,90,60,.7); }
@media (prefers-reduced-motion:no-preference){ [data-deck-active] .cover-live .dot{ animation:livePulse 2.4s ease-out infinite; } }
@keyframes livePulse{ 0%{box-shadow:0 0 0 0 rgba(182,90,60,.6);} 70%{box-shadow:0 0 0 12px rgba(182,90,60,0);} 100%{box-shadow:0 0 0 0 rgba(182,90,60,0);} }
.cover-eyebrow{ font-family:var(--mono); font-size:22px; letter-spacing:.34em; text-transform:uppercase; color:var(--brass); margin-bottom:22px; }
.cover-ttl em{ font-style:italic; font-weight:400; letter-spacing:.005em; }
.cover-block{ max-width:1180px; }
.cover-topgroup .cover-block{ margin-top:52px; }
.cover-sub{ font-size:30px; }
/* lighter, more editorial chrome (less deck-template) */
.head{ border-color:rgba(42,36,32,.1); }
.dark .head{ border-color:rgba(232,224,211,.12); }
.foot{ font-size:17px; color:var(--ink-soft); opacity:.85; }
/* cover stack order: bg-video (z0) behind the crossfade fallback, chrome on top */
section[data-label="Cover"] .cine{ z-index:1; }
section[data-label="Cover"] .cine-grain{ z-index:2; }
section[data-label="Cover"] .cine-vig{ z-index:3; }
section[data-label="Cover"] .cover-scrim{ z-index:4; }
section[data-label="Cover"] .cover-frame{ z-index:5; }
section[data-label="Cover"] .cover-inner{ z-index:6; }
/* cover entrance that runs on load (independent of deck active-toggle) */
.cv-in{ animation:covRise 1.1s cubic-bezier(.2,.7,.2,1) both .15s; }
.cv-in.d2{ animation-delay:.34s; }
@keyframes covRise{ from{ opacity:0; transform:translateY(22px); } to{ opacity:1; transform:none; } }
@media (prefers-reduced-motion:reduce){ .cv-in{ animation:none; } }

/* ===== Verrière — annotated plan diagram ===== */
.vplan{ position:absolute; inset:0; }
.vband{ position:absolute; border-radius:8px; }
.vband.glass{ background:rgba(96,140,170,.22); border:1.5px solid rgba(70,110,150,.85); }
.vband.steel{ background:rgba(34,26,21,.18); border:1.5px dashed rgba(34,26,21,.8); }
.vband.balcon{ background:rgba(176,122,75,.18); border:1.5px dashed rgba(140,90,50,.8); }
.vlabel{ position:absolute; transform:translate(-50%,-50%); font-family:var(--mono); font-size:15px; letter-spacing:.08em; text-transform:uppercase; color:#EFE7D8; background:rgba(34,26,21,.84); padding:5px 9px; border-radius:4px; white-space:nowrap; box-shadow:0 4px 14px rgba(0,0,0,.3); z-index:3; }
.vpole{ position:absolute; width:15px; height:15px; border-radius:50%; background:#1c1714; border:2px solid var(--brass); transform:translate(-50%,-50%); z-index:2; }
.velev{ display:flex; flex-direction:column; gap:14px; margin-top:30px; }
.velev .r{ display:grid; grid-template-columns:22px 1fr; gap:16px; align-items:start; padding:16px 0; border-top:1px solid var(--line); }
.velev .r:last-child{ border-bottom:1px solid var(--line); }
.velev .sw{ width:22px; height:22px; border-radius:5px; margin-top:4px; }
.velev h4{ font-family:var(--serif); font-weight:500; font-size:29px; margin:0 0 4px; }
.velev p{ margin:0; font-size:22px; color:var(--ink-soft); line-height:1.36; }

/* verrière simulation tiles — drop-slot tile variant */.ver-col image-slot{ flex:1; min-height:0; width:100%; }
.ver-col .frame.drop{ border:1.5px dashed var(--caramel); background:var(--paper-2); }

/* ===== Cinematic title pages — video-ready (Studio MA spirit) ===== */
.s-div.divx{ position:relative; overflow:hidden; justify-content:flex-end; padding:0 var(--pad-x) 116px; }
.bg-video{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:0; display:block; }
.bg-still{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:1; display:block; opacity:1; }
.div-scrim{ position:absolute; inset:0; z-index:2; background:linear-gradient(180deg, rgba(18,13,10,.52) 0%, rgba(18,13,10,.12) 36%, rgba(18,13,10,.88) 100%); }
.s-div.divx .div-inner{ position:relative; z-index:3; }
.s-div.divx .div-no{ z-index:3; }
.s-div.divx .div-sub{ color:rgba(240,233,219,.88); }
.s-div.divx .div-ttl{ text-shadow:0 2px 40px rgba(0,0,0,.35); }

/* Chez Georges (dark editorial) */
.s-cg{ display:grid; grid-template-columns:1fr 1fr; }
.cg-img{ position:relative; overflow:hidden; }
.cg-img img{ width:100%; height:100%; object-fit:cover; display:block; }
.cg-txt{ padding:var(--pad-y) var(--pad-x) var(--pad-bottom); display:flex; flex-direction:column; }
.cg-txt .lead{ margin-top:auto; }
.cg-txt h3{ font-family:var(--serif); font-style:italic; font-weight:400; font-size:64px; line-height:1.06; margin:0 0 26px; color:var(--paper); }
.cg-txt p{ font-size:25px; line-height:1.5; color:rgba(232,224,211,.74); margin:0 0 30px; max-width:34ch; }
.cg-facts{ display:flex; flex-direction:column; }
.cg-facts .r{ display:grid; grid-template-columns:auto 1fr; gap:20px; padding:15px 0; border-top:1px solid var(--line-d); align-items:baseline; }
.cg-facts .r:last-child{ border-bottom:1px solid var(--line-d); }
.cg-facts .k{ font-family:var(--mono); font-size:17px; letter-spacing:.1em; text-transform:uppercase; color:var(--brass); }
.cg-facts .v{ font-size:22px; color:var(--paper); }

/* Pièce showcase */
.s-piece{ display:grid; grid-template-columns:1.12fr .88fr; }
.piece-main{ position:relative; background:var(--paper-2); overflow:hidden; }
.piece-main img{ width:100%; height:100%; object-fit:cover; display:block; }
.piece-main.contain img{ object-fit:contain; padding:54px; }
.piece-side{ padding:var(--pad-y) var(--pad-x) var(--pad-bottom); display:flex; flex-direction:column; }
.piece-side .pbody{ }
.piece-side .pdesc{ font-size:25px; line-height:1.5; color:var(--ink-soft); margin:22px 0 0; max-width:32ch; }
.piece-side .pmeta{ display:flex; flex-direction:column; margin-top:30px; }
.piece-side .pmeta .r{ display:grid; grid-template-columns:130px 1fr; gap:18px; padding:13px 0; border-top:1px solid var(--line); align-items:baseline; }
.piece-side .pmeta .r:last-child{ border-bottom:1px solid var(--line); }
.piece-side .pmeta .k{ font-family:var(--mono); font-size:16px; letter-spacing:.1em; text-transform:uppercase; color:var(--caramel); }
.piece-side .pmeta .v{ font-size:21px; color:var(--ink); }
.piece-side .pthumb{ margin-top:auto; height:230px; overflow:hidden; position:relative; }
.piece-side .pthumb img{ width:100%; height:100%; object-fit:cover; display:block; }
.piece-side .pthumb .cap{ position:absolute; left:0; bottom:0; background:rgba(20,15,12,.66); color:#EFE7D8; font-family:var(--mono); font-size:15px; letter-spacing:.08em; text-transform:uppercase; padding:7px 12px; }
.badge.designer{ background:var(--forest); }

/* deux images côte à côte dans le main */
.piece-main.duo{ display:grid; grid-template-columns:1fr 1fr; gap:2px; background:var(--paper); padding:0; }
.piece-main.duo > div{ background:var(--paper-2); overflow:hidden; }
.piece-main.duo img{ object-fit:contain; padding:30px; }

/* four-up pieces board (Son & lumière, Les tables) */
.piece-main.quad{ display:grid; grid-template-columns:1fr 1fr; grid-template-rows:1fr 1fr; gap:2px; background:var(--paper); padding:0; }
.piece-main.quad > div{ background:var(--paper-2); overflow:hidden; position:relative; display:flex; align-items:center; justify-content:center; }
.piece-main.quad img{ width:100%; height:100%; object-fit:contain; padding:24px; }
.qbadge{ position:absolute; top:12px; left:12px; font-family:var(--mono); font-size:14px; letter-spacing:.1em; text-transform:uppercase; background:var(--caramel); color:#fff; padding:5px 10px; border-radius:4px; z-index:2; }

/* Verrière */
.s-ver{ display:flex; flex-direction:column; }
/* landscape coted plan — width-constrained in the half-column */
.plan-img.cote{ aspect-ratio:1910/1332; height:auto; width:100%; max-height:100%; }
.plan-img.sdb{ aspect-ratio:505/742; height:100%; }
.plan-img.sdbv{ aspect-ratio:797/877; height:100%; }
.ver-body.tri{ grid-template-columns:repeat(3,minmax(0,1fr)); gap:30px; max-width:none; margin:0; padding-top:26px; }
.ver-note{ font-family:var(--serif); font-style:italic; font-size:26px; line-height:1.42; color:var(--ink-soft); margin:16px 0 0; max-width:78ch; }
.ver-col .tag{ display:inline-flex; align-items:center; gap:8px; }
.ver-col .frame.cover{ background:var(--paper-2); aspect-ratio:auto; }

/* ===== Bathroom — full-bleed video page ===== */
.s-bathfull{ position:relative; overflow:hidden; }
.s-bathfull .bath-scrim{ position:absolute; inset:0; z-index:2; background:linear-gradient(72deg, rgba(18,13,10,.9) 0%, rgba(18,13,10,.58) 42%, rgba(18,13,10,.1) 74%, transparent 100%), linear-gradient(0deg, rgba(18,13,10,.5) 0%, rgba(18,13,10,0) 26%); }
.s-bathfull .bath-overlay{ position:absolute; inset:0; z-index:3; padding:var(--pad-y) var(--pad-x) var(--pad-bottom); display:flex; flex-direction:column; justify-content:flex-end; }
.s-bathfull .bath-text{ margin-top:0; }
.s-bathfull .foot{ margin-top:36px; border:0; }
.ver-body{ flex:1; min-height:0; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:48px; padding:32px 0 0; max-width:1400px; margin:0 auto; width:100%; }
.ver-col{ display:flex; flex-direction:column; min-height:0; min-width:0; }
.ver-col .tag{ font-family:var(--mono); font-size:18px; letter-spacing:.12em; text-transform:uppercase; color:var(--caramel); margin-bottom:12px; }
.ver-col .frame{ flex:1; min-height:0; overflow:hidden; background:#fff; border:1px solid var(--line); display:flex; align-items:center; justify-content:center; }
.ver-col .frame img{ width:100%; height:100%; object-fit:contain; }
.ver-col .frame.cover img{ object-fit:cover; }
.ver-col h4{ font-family:var(--serif); font-weight:500; font-size:27px; margin:16px 0 5px; }
.ver-col p{ font-size:19px; color:var(--ink-soft); margin:0; line-height:1.36; }

/* ===== Le parcours (dark journey manifesto) ===== */
.s-journey{ display:flex; flex-direction:column; padding:var(--pad-y) var(--pad-x) var(--pad-bottom); }
.s-journey .jr-mid{ flex:1; min-height:0; display:flex; flex-direction:column; justify-content:center; }
.s-journey .jr-grid{ display:grid; grid-template-columns:1.08fr .92fr; gap:80px; align-items:end; }
.jr-quote{ font-family:var(--serif); font-style:italic; font-weight:400; font-size:78px; line-height:1.05; margin:0; color:var(--paper); }
.jr-quote em{ font-style:normal; color:var(--brass); }
.jr-text{ font-size:26px; line-height:1.55; color:rgba(232,224,211,.78); margin:0; }
.jr-text em{ font-style:italic; color:var(--paper); }
.jr-cities{ display:flex; flex-wrap:wrap; gap:14px; margin-top:54px; padding-top:34px; border-top:1px solid var(--line-d); }
.jr-cities span{ font-family:var(--mono); font-size:20px; letter-spacing:.16em; text-transform:uppercase; color:var(--brass); border:1px solid rgba(194,160,90,.5); border-radius:999px; padding:11px 22px; }
.jr-cities .root{ background:rgba(194,160,90,.18); color:var(--paper); border-color:rgba(194,160,90,.85); }

/* ===== Moquette — teintes ===== */
.moq{ flex:1; min-height:0; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:30px; padding:34px 0 0; }
.moq .m{ display:flex; flex-direction:column; min-height:0; }
.moq .chip{ position:relative; flex:1; min-height:0; border:1px solid rgba(42,36,32,.14); border-radius:3px; overflow:hidden; }
.moq .chip::after{ content:""; position:absolute; inset:0; background-image:radial-gradient(circle, rgba(255,255,255,.09) 1px, transparent 1.5px); background-size:8px 8px; pointer-events:none; }
.moq .meta{ flex:0 0 auto; height:140px; padding-top:18px; }
.moq h4{ font-family:var(--serif); font-weight:600; font-size:30px; margin:0 0 6px; white-space:nowrap; }
.moq .ty{ font-size:20px; color:var(--ink-soft); margin:0 0 9px; line-height:1.32; }
.moq .src{ font-family:var(--mono); font-size:15px; letter-spacing:.07em; text-transform:uppercase; color:var(--caramel); margin:0; }
