/* ═══════════════════════════════════════════════════════════════
   RT VISUALS — v3 · feuille de style du site
   Ordre : polices · base · composants · bande de négatif · header ·
   curseur · hero · vision · métiers · portfolio · packs · collab ·
   contact · pages intérieures · footer · révélations · transitions ·
   reduced-motion · responsive
   ═══════════════════════════════════════════════════════════════ */

/* Polices de secours du H1, calées sur la chasse de Fraunces (pas de saut de mise en page pendant le chargement) */
@font-face{font-family:'Fraunces secours Georgia';src:local('Georgia');size-adjust:80%;ascent-override:122.5%;descent-override:32.5%;line-gap-override:0%}
@font-face{font-family:'Fraunces secours Georgia';font-style:italic;src:local('Georgia Italic'),local('Georgia-Italic');size-adjust:75.4%;ascent-override:130%;descent-override:34.5%;line-gap-override:0%}
@font-face{font-family:'Fraunces secours Times';src:local('Times New Roman'),local('TimesNewRomanPSMT');size-adjust:89%;ascent-override:110.1%;descent-override:29.2%;line-gap-override:0%}
@font-face{font-family:'Fraunces secours Times';font-style:italic;src:local('Times New Roman Italic'),local('TimesNewRomanPS-ItalicMT');size-adjust:83.7%;ascent-override:117.1%;descent-override:31.1%;line-gap-override:0%}
@font-face{font-family:'Fraunces secours DejaVu';src:local('DejaVu Serif'),local('Liberation Serif'),local('Noto Serif');size-adjust:70%;ascent-override:140%;descent-override:37.1%;line-gap-override:0%}

/* ── Base ── */
*,*::before,*::after{box-sizing:border-box}
html{font-size:17px;-webkit-text-size-adjust:100%;scroll-padding-top:80px}
@media (max-width:1023px){html{font-size:16px}}
body{
  margin:0;background:var(--taupe);color:var(--baryte);
  font-family:var(--f-body);font-size:var(--fs-body);line-height:var(--lh-body);font-weight:400;
  overflow-x:clip;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;
}
/* Papier baryté : texture fibreuse posée sur le fond */
body::before{
  content:"";position:fixed;inset:0;z-index:0;pointer-events:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='600' height='600'%3E%3Cfilter id='p' x='0' y='0' width='100%25' height='100%25'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' seed='7' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .157 0 0 0 0 .169 0 0 0 0 .153 0 0 0 .09 0'/%3E%3C/filter%3E%3Crect width='600' height='600' filter='url(%23p)'/%3E%3C/svg%3E");
  background-size:600px 600px;
}
main{position:relative;z-index:1}
h1,h2,h3,h4{margin:0;font-family:var(--f-display);font-weight:400;text-wrap:balance;font-optical-sizing:auto}
p{margin:0 0 1.5em;max-width:var(--mesure)}
p:last-child{margin-bottom:0}
a{color:inherit}
img,svg,canvas{max-width:100%}
button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}
:focus-visible{outline:2px solid var(--kaki2);outline-offset:3px;border-radius:1px}
.block--orange :focus-visible{outline-color:var(--encre)}
.block--gris :focus-visible,.block--moka :focus-visible,.block--kaki :focus-visible,.pf--home :focus-visible,.ct :focus-visible{outline-color:var(--baryte)}
::selection{background:var(--sable);color:var(--anth)}
[hidden]{display:none!important}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.sr:focus{position:fixed;top:8px;left:8px;width:auto;height:auto;clip:auto;overflow:visible;z-index:200;padding:10px 16px;background:var(--anth2);color:var(--baryte);border:1px solid var(--kaki2);font:500 12px/1 var(--f-body);letter-spacing:2.5px;text-transform:uppercase;text-decoration:none}
.mono{font-family:var(--f-mono);font-weight:400;font-size:11px;letter-spacing:1.5px;text-transform:uppercase;color:var(--cendre)}
.caps{font-family:var(--f-body);font-weight:600;font-size:12px;letter-spacing:2.5px;text-transform:uppercase}
.wrap{max-width:1440px;margin-inline:auto;padding-inline:var(--margin);padding-left:var(--pad-l)}
.sec{padding-block:var(--sec-gap);scroll-margin-top:72px;position:relative}
.sec--tight{padding-block:calc(var(--sec-gap) * .7)}
.sec-head{position:relative;border-top:1px solid var(--fil);padding-top:24px;margin-bottom:clamp(36px,5vw,64px)}
.sec-head .pin{position:absolute;top:-1px;left:var(--clipx,18%)}
.sec-head-row{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;flex-wrap:wrap}
.h1{font-family:var(--f-h1);font-size:clamp(2.75rem,5.2vw,4.9rem);line-height:.98;letter-spacing:-.015em;font-weight:300;font-variation-settings:"opsz" 144;text-wrap:initial}
.h1 em,.h2 em,.h3 em{font-style:italic;font-weight:300}
.h1 em{color:var(--sable)}
.h1--page{font-size:clamp(2.5rem,4.6vw,4.25rem);max-width:9em;text-wrap:balance}
.h2{font-size:clamp(2rem,3.4vw,3.5rem);line-height:1.05;letter-spacing:-.01em;font-weight:400;max-width:11em;font-variation-settings:"opsz" 96}
.h3{font-size:clamp(1.375rem,1.8vw,1.875rem);line-height:1.15;letter-spacing:-.01em;font-variation-settings:"opsz" 48}
.lead{font-size:clamp(1.125rem,1.05rem + .4vw,1.3125rem);line-height:1.5;max-width:56ch;font-weight:350}
.sec-intro{max-width:var(--mesure);color:var(--cendre)}
.eyebrow{display:block;margin:0 0 16px}
.txt{max-width:var(--mesure)}
.sable{color:var(--sable)}
.fil{height:1px;background:var(--fil);border:0;margin:0}
/* Pince : 6 × 10 px moka */
.pin{display:block;width:6px;height:10px;background:var(--moka2);position:relative;transform-origin:50% 0}
.pin::after{content:"";position:absolute;left:2.5px;top:0;bottom:0;width:1px;background:var(--moka)}
/* Lien souligné */
.lnk{display:inline-block;position:relative;font:600 12px/1 var(--f-body);letter-spacing:2.5px;text-transform:uppercase;color:rgba(237,230,214,.88);text-decoration:none;padding:6px 0;transition:color var(--d-1) ease}
.lnk::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--kaki2);transform:scaleX(var(--ul,1));transform-origin:left;transition:transform var(--d-3) var(--e-out),background var(--d-2) ease}
.lnk:hover,.lnk:focus-visible{color:var(--baryte)}
.lnk:hover::after,.lnk:focus-visible::after{transform:scaleX(1);background:var(--baryte)}
.lnk--ext::before{content:"↗";margin-right:8px;font-family:var(--f-mono);font-weight:400;display:inline-block;transition:transform var(--d-2) var(--e-out)}
.lnk--ext:hover::before{transform:translate(2px,-2px)}
.block .lnk{color:var(--baryte)}
.block .lnk::after{background:rgba(237,230,214,.45);height:2px}
.block .lnk:hover::after{background:var(--baryte)}
/* Bouton sable (un seul par page) */
.btn-sable{display:inline-block;background:var(--sable);color:var(--anth);font:600 12px/1 var(--f-body);letter-spacing:2.5px;text-transform:uppercase;padding:18px 28px;border:0;text-decoration:none;transition:transform var(--d-1) ease,background var(--d-2) ease,box-shadow var(--d-2) ease}
.btn-sable:hover{background:#e6cd85;box-shadow:0 8px 24px rgba(221,194,114,.18)}
.btn-sable:active{transform:translateY(2px)}
/* Carte flottante */
.card{background:var(--card-bg);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:var(--shadow-card);border:1px solid rgba(237,230,214,.06);padding:clamp(24px,3vw,44px);position:relative;transition:transform var(--d-3) var(--e-out),box-shadow var(--d-3) var(--e-out)}
.card:hover{transform:translateY(-4px);box-shadow:var(--shadow-hover)}
.card--pinned{border-top:1px solid var(--kaki)}
.card--pinned > .pin{position:absolute;top:-1px;left:var(--clipx,22%)}
.card--still:hover{transform:none;box-shadow:var(--shadow-card)}
/* Tirage : bord baryté, pince, inclinaison de repos ≤ 0,6° */
.print{position:relative;padding:6px;background:rgba(237,230,214,.12);box-shadow:var(--shadow-card),inset 0 0 0 1px rgba(0,0,0,.4);transform:rotate(var(--rot,0deg));transform-origin:var(--clipx,50%) 0;transition:transform var(--d-3) var(--e-out),box-shadow var(--d-3) var(--e-out);margin:0;display:block;text-decoration:none;color:inherit}
.print:hover,.print:focus-within{transform:translateY(-4px) rotate(0deg);box-shadow:var(--shadow-hover),inset 0 0 0 1px rgba(0,0,0,.4)}
.print:focus-visible,.pk:focus-visible,.pf-strip:focus-visible{outline:2px solid var(--sable);outline-offset:4px}
.print-img{position:relative;overflow:hidden;background:var(--cuve);aspect-ratio:var(--ar,3/2);display:block}
.print > .pin{position:absolute;top:-6px;left:var(--clipx,50%);margin-left:-3px;z-index:4}
.pin--l,:is(.hero-portrait,.tl-print,.tl-xpan,.pf-print,.pf-card,.pkp-print,.ct-portrait) > .pin{width:8px;height:16px;box-shadow:0 1px 2px rgba(0,0,0,.45)}
:is(.hero-portrait,.tl-print,.tl-xpan,.pf-print,.pf-card,.pkp-print,.ct-portrait) > .pin{top:-9px;margin-left:-4px}
.pin--l::after,:is(.hero-portrait,.tl-print,.tl-xpan,.pf-print,.pf-card,.pkp-print,.ct-portrait) > .pin::after{left:0;right:0;top:5px;bottom:auto;width:auto;height:3px}
.pin--l::before,:is(.hero-portrait,.tl-print,.tl-xpan,.pf-print,.pf-card,.pkp-print,.ct-portrait) > .pin::before{content:"";position:absolute;left:3.5px;top:8px;bottom:0;width:1px;background:var(--moka)}
.print:hover > .pin,.print:focus-within > .pin{animation:pinShiver .6s var(--e-out)}
@keyframes pinShiver{0%{transform:rotate(0)}25%{transform:rotate(1.5deg)}55%{transform:rotate(-.8deg)}80%{transform:rotate(.35deg)}100%{transform:rotate(0)}}
.print-cap{position:absolute;left:6px;right:6px;top:100%;padding-top:8px;font:400 11px/1.4 var(--f-mono);letter-spacing:1.5px;text-transform:uppercase;color:var(--cendre);opacity:0;transition:opacity var(--d-2) ease;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin:0}
.print:hover .print-cap,.print:focus-within .print-cap,.print.is-open .print-cap{opacity:1}
/* Tirage photographique : cadre gris clair, jamais de filtre sur l'image */
.print--photo{padding:5px;background:#D6CFBE;box-shadow:var(--shadow-card),inset 0 0 0 1px rgba(7,8,7,.2)}
.print--photo:hover,.print--photo:focus-within{box-shadow:var(--shadow-hover),inset 0 0 0 1px rgba(7,8,7,.2)}
@media (max-width:599px){.print--photo{padding:4px}}
/* Étiquette de catégorie posée sur le tirage */
.pf-tag{position:absolute;left:14px;bottom:14px;z-index:5;font:400 11px/1 var(--f-mono);letter-spacing:1.5px;text-transform:uppercase;color:var(--baryte);background:rgba(7,8,7,.72);padding:6px 8px;pointer-events:none;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}
/* Photographie : LQIP flou dessous, image fidèle dessus */
.ph-box{position:relative;overflow:hidden;background:var(--cuve);isolation:isolate}
.ph-box::before{content:"";position:absolute;inset:-16px;z-index:0;pointer-events:none;background:var(--lqip,none) var(--fp,50% 50%)/cover no-repeat;filter:blur(12px);opacity:1;transition:opacity var(--d-3) ease}
.print--photo .ph-box::before{filter:blur(12px) grayscale(1) brightness(.5)}
.ph-box.is-in::before{opacity:0}
.ph-box > img{position:absolute;inset:0;display:block;width:100%;height:100%;max-width:none;object-fit:cover;object-position:var(--fp,50% 50%)}
.ph-box > .ph{z-index:3}
.js .ph-box:not(.is-in) > .ph{opacity:0}
.js.rm .ph-box:not(.is-in) > .ph{opacity:1}
.ph-box > .ph-l{z-index:2;opacity:0;pointer-events:none}
.ph-box > .ph-l1{filter:grayscale(1) brightness(.4) contrast(1.9)}
.ph-box > .ph-l2{filter:grayscale(.45) brightness(.74) contrast(1.28)}
/* Emplacement en attente d'une photographie (portrait du photographe) */
.ph-wait{position:absolute;inset:0;z-index:1;display:flex;flex-direction:column;justify-content:flex-end;padding:18px;background:radial-gradient(ellipse at 50% 40%,rgba(237,230,214,.05),transparent 60%),var(--cuve);color:var(--cendre);line-height:1.7;letter-spacing:1.2px;font-size:9px;text-transform:uppercase;font-family:var(--f-mono)}
.ph-wait::before{content:"";position:absolute;inset:18px;border:1px dashed rgba(237,230,214,.18)}
.ph-wait b{display:block;font-weight:400;color:var(--baryte);margin-bottom:6px;font-size:10px}
.ph-box.is-in > .ph-wait{display:none}
/* Color block */
.block{position:relative;box-shadow:var(--shadow-block);padding:clamp(24px,3vw,40px);color:var(--baryte);transition:transform var(--d-3) var(--e-out),box-shadow var(--d-3) var(--e-out)}
.block--kaki{background:linear-gradient(rgba(7,8,7,.12),rgba(7,8,7,.12)),var(--kaki)}.block--moka{background:var(--moka)}.block--anth{background:var(--anth)}
.block--orange{background:var(--orange);color:var(--encre)}
.block--gris{background:var(--gris-chaud);color:var(--sur-gris)}
.block-lid{position:absolute;left:0;right:0;top:0;height:12px;transition:transform var(--d-3) var(--e-out)}
.block--kaki .block-lid{background:var(--kaki2)}.block--moka .block-lid{background:var(--moka2)}.block--anth .block-lid{background:var(--taupe2)}
.block--orange .block-lid{background:linear-gradient(rgba(255,255,255,.18),rgba(255,255,255,.18)),var(--orange)}
.block--gris .block-lid{background:rgba(255,255,255,.12)}
.block:hover{transform:translateY(-4px);box-shadow:var(--shadow-hover)}
.block:hover .block-lid{transform:translateY(-4px)}
.block .mono{color:var(--baryte)}
.block--anth .mono{color:var(--cendre)}
.block--orange .mono,.block--orange .h3,.block--orange p{color:var(--encre)}
.block--gris .mono{color:var(--sur-gris-2)}
/* Grain fixe, sous le contenu */
.grain{position:fixed;inset:-256px;z-index:0;pointer-events:none;background-image:var(--grain);background-size:256px 256px;opacity:.035;mix-blend-mode:overlay;will-change:transform}

/* ═══ Bande de négatif (≥ 1024) — contraste relevé ═══ */
.neg{display:none;position:fixed;left:0;top:0;bottom:0;width:var(--band);z-index:30;background:var(--anth);border-right:1px solid rgba(237,230,214,.09)}
@media (min-width:1024px){.neg{display:block}}
.neg::before,.neg::after{content:"";position:absolute;top:0;bottom:0;width:9px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='9' height='16'%3E%3Crect x='.5' y='5' width='8' height='6' rx='1' fill='rgba(237,230,214,.13)' stroke='rgba(237,230,214,.34)'/%3E%3C/svg%3E");background-repeat:repeat-y;background-position:0 var(--negy,0px)}
.neg::before{left:5px}.neg::after{right:5px}
/* traits de cadre tous les 96 px, comme les repères entre deux vues */
.neg-frames{position:absolute;left:17px;right:17px;top:0;bottom:0;background-image:linear-gradient(to bottom,rgba(237,230,214,.16) 0,rgba(237,230,214,.16) 1px,transparent 1px);background-size:100% 96px;background-repeat:repeat-y;background-position:0 calc(var(--negy,0px) * 6 + 40px)}
.neg-code{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%) rotate(-90deg);white-space:nowrap;font:400 10px/1 var(--f-mono);letter-spacing:2px;text-transform:uppercase;color:rgba(237,230,214,.78);display:flex;gap:16px;align-items:center}
.neg-code > span:first-child{color:var(--sable)}
.neg-view{position:relative;display:inline-block;height:12px;width:max-content;min-width:160px;overflow:hidden;vertical-align:top}
.neg-view span{position:absolute;left:0;top:0;transition:transform var(--d-2) var(--e-out),opacity var(--d-2);white-space:nowrap}
.neg-view span.is-out{transform:translateY(-100%);opacity:0}
.neg-view span.is-in{transform:translateY(100%);opacity:0}
.neg-cur{position:absolute;left:14px;right:14px;top:0;height:56px;background:var(--cuve);box-shadow:inset 0 0 0 1px rgba(237,230,214,.16);transform:translateY(var(--negcur,150px));transition:transform var(--d-3) var(--e-out);will-change:transform}
.neg-prog{position:fixed;top:0;left:0;width:100%;height:2px;z-index:70;background:var(--flash);transform-origin:left;transform:scaleX(0)}
@media (min-width:1024px){.neg-prog{display:none}}

/* ═══ Header — barre brune translucide (flou d'arrière-plan), logo à gauche, onglets à droite ═══ */
.hd{position:fixed;top:0;left:0;right:0;z-index:60;color:var(--baryte);background:rgba(var(--brun-rgb),.7);-webkit-backdrop-filter:blur(18px) saturate(1.3);backdrop-filter:blur(18px) saturate(1.3);border-bottom:1px solid rgba(237,230,214,.07);transition:background var(--d-4) ease,border-color var(--d-4) ease}
.hd.is-compact{background:rgba(var(--brun-rgb),.78);border-bottom-color:rgba(237,230,214,.1)}
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){.hd{background:rgba(var(--brun-rgb),.96)}}
.hd-halo{position:absolute;left:-120px;top:-200px;width:480px;height:480px;border-radius:50%;pointer-events:none;background:radial-gradient(circle,rgba(221,194,114,.07) 0%,rgba(221,194,114,0) 60%);animation:hdHalo 6s ease-in-out infinite}
@keyframes hdHalo{0%,100%{opacity:.7}50%{opacity:1}}
/* Une seule rangée : le logo et les onglets sont centrés verticalement dans une barre dont la hauteur se replie au scroll */
.hd-in{position:relative;max-width:1440px;margin-inline:auto;padding-inline:var(--margin);padding-left:var(--pad-l);display:flex;align-items:center;justify-content:space-between;gap:40px;height:var(--hd-h);transition:height var(--d-4) var(--e-out)}
.hd.is-compact .hd-in{height:56px}
/* Logo client : deux PNG posés bord à bord, même hauteur ; au scroll « visuals » et le sous-titre s'effacent, le rt se range dans le carré et s'allume */
.hd-brand{--lk-h:46px;position:relative;z-index:2;display:block;color:inherit;text-decoration:none;flex:none}
.lk{display:flex;align-items:flex-start;height:var(--lk-h);transition:height var(--d-4) var(--e-out)}
.lk-rt{position:relative;flex:none;display:block;width:calc(var(--lk-h) * 293 / 262);height:var(--lk-h);transition:width var(--d-4) var(--e-out),height var(--d-4) var(--e-out)}
.lk-rt > img{display:block;width:100%;height:100%;max-width:none;object-fit:contain;transition:opacity var(--d-2) ease,visibility 0s linear 0s}
.lk-sq{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:var(--anth);box-shadow:inset 0 0 0 1px rgba(var(--flash-rgb),.85);opacity:0;visibility:hidden;transition:opacity var(--d-2) ease,visibility 0s linear var(--d-2)}
.lk-mark{display:block;width:68%;aspect-ratio:281/207;background:var(--flash);-webkit-mask:url(../../assets/logo/rt-mark-blanc.png) center/contain no-repeat;mask:url(../../assets/logo/rt-mark-blanc.png) center/contain no-repeat;animation:lamp 4s ease-in-out infinite}
.lk-vis{display:block;flex:none;max-width:calc(var(--lk-h) * 899 / 262);overflow:hidden;opacity:1;transition:max-width var(--d-4) var(--e-out),opacity var(--d-2) ease}
.lk-vis img{display:block;width:calc(var(--lk-h) * 899 / 262);height:var(--lk-h);max-width:none}
.hd-sub{display:block;max-width:420px;max-height:14px;overflow:hidden;white-space:nowrap;opacity:1;margin-top:8px;padding-left:2px;font:400 9px/1 var(--f-mono);letter-spacing:1.85px;text-transform:uppercase;color:var(--cendre);transition:max-width var(--d-4) var(--e-out),max-height var(--d-4) var(--e-out),margin var(--d-4) var(--e-out),opacity var(--d-2) ease}
.hd.is-compact .lk{height:34px}
.hd.is-compact .lk-rt{width:34px;height:34px}
.hd.is-compact .lk-rt > img{opacity:0;visibility:hidden;transition:opacity var(--d-2) ease,visibility 0s linear var(--d-2)}
.hd.is-compact .lk-sq{opacity:1;visibility:visible;transition:opacity var(--d-2) ease,visibility 0s linear 0s;animation:lampOn .9s var(--e-out)}
.hd.is-compact .lk-vis{max-width:0;opacity:0}
.hd.is-compact .hd-sub{max-width:0;max-height:0;margin-top:0;opacity:0}
@keyframes lampOn{0%{box-shadow:inset 0 0 0 1px rgba(var(--flash-rgb),.85),0 0 0 0 rgba(var(--flash-rgb),.55)}100%{box-shadow:inset 0 0 0 1px rgba(var(--flash-rgb),.85),0 0 0 22px rgba(var(--flash-rgb),0)}}
@keyframes lamp{0%,100%{opacity:.82}50%{opacity:1}}
.lk-icon{--s:34px;position:relative;display:inline-flex;align-items:center;justify-content:center;flex:none;width:var(--s);height:var(--s);background:var(--anth);box-shadow:inset 0 0 0 1px rgba(var(--flash-rgb),.85)}
.lk-icon .lk-mark{animation:none}
/* Onglets : une rangée, capitales espacées, filet au survol et sur la page active */
.hd-nav{flex:0 1 auto;min-width:0;height:100%;display:flex;align-items:center}
.hd-list{list-style:none;margin:0;padding:0;display:flex;gap:36px;align-items:center;height:100%}
.hd-item{position:relative;height:100%;display:flex;align-items:center}
.hd-item::after{content:"";position:absolute;left:0;right:0;top:100%;height:12px}
.hd-tab{position:relative;display:flex;align-items:center;height:56px;font:600 11px/1 var(--f-body);letter-spacing:2.4px;text-transform:uppercase;color:rgba(237,230,214,.8);text-decoration:none;white-space:nowrap;transition:color var(--d-2) ease}
.hd-tab::after{content:"";position:absolute;left:0;right:0;bottom:16px;height:1px;background:var(--kaki2);transform:scaleX(0);transform-origin:left;transition:transform var(--d-2) var(--e-out),background var(--d-2) ease}
.hd-tab:hover,.hd-tab:focus-visible,.hd-tab.is-active{color:var(--baryte)}
.hd-tab:hover::after,.hd-tab:focus-visible::after,.hd-tab.is-active::after{transform:scaleX(1)}
.hd-tab.is-active::after{background:var(--sable)}
/* Sous-menus suspendus, sous l'onglet */
.hd-dd{position:absolute;top:calc(100% - 6px);right:-8px;width:280px;background:var(--anth2);border:1px solid rgba(237,230,214,.08);box-shadow:0 20px 40px rgba(0,0,0,.6),inset 0 1px 0 rgba(237,230,214,.04);padding:6px 0;opacity:0;transform:translateY(-4px);pointer-events:none;visibility:hidden;transition:opacity var(--d-2) var(--e-out),transform var(--d-2) var(--e-out),visibility 0s linear var(--d-2);z-index:5}
.hd-item:hover .hd-dd,.hd-item:focus-within:not(.is-closed) .hd-dd,.hd-item.is-open:not(.is-closed) .hd-dd{opacity:1;transform:none;pointer-events:auto;visibility:visible;transition:opacity var(--d-2) var(--e-out),transform var(--d-2) var(--e-out),visibility 0s}
.hd-dd-row{position:relative;display:grid;grid-template-columns:56px 1fr;gap:12px;align-items:center;padding:8px 12px 8px 14px;text-decoration:none;color:var(--baryte);border-top:1px solid var(--cuve);transition:background var(--d-2) ease}
.hd-dd-row:first-child{border-top:0}
.hd-dd-row::before{content:"";position:absolute;left:0;top:0;bottom:0;width:2px;background:var(--kaki2);opacity:0;transition:opacity var(--d-2) ease}
.hd-dd-row:hover,.hd-dd-row:focus-visible{background:rgba(107,112,92,.12)}
.hd-dd-row:hover::before,.hd-dd-row:focus-visible::before{opacity:1}
.hd-dd-th{position:relative;display:block;width:56px;height:37px;background:var(--cuve);overflow:hidden}
.hd-dd-th > img{display:none}
.hd-item:hover .hd-dd-th > img,.hd-item:focus-within .hd-dd-th > img,.hd-item.was-open .hd-dd-th > img{display:block}
.hd-dd-th > svg{display:block;width:100%;height:100%}
.hd-dd-th--tray{background:var(--anth);box-shadow:inset 0 0 0 1px rgba(237,230,214,.14)}
.hd-dd-th--tray::before{content:"";position:absolute;left:7px;right:7px;top:12px;bottom:6px;background:var(--cuve);box-shadow:inset 0 0 0 1px rgba(237,230,214,.1)}
.hd-dd-th--tray::after{content:"";position:absolute;left:12px;right:12px;top:6px;height:1px;background:rgba(237,230,214,.22)}
.hd-dd-th--block{background:var(--taupe2)}
.hd-dd-th--block i{position:absolute;display:block}
.hd-dd-th--block i:first-child{left:6px;top:6px;width:30px;height:20px;background:var(--kaki)}
.hd-dd-th--block i:last-child{left:22px;top:13px;width:28px;height:18px;background:var(--moka)}
.hd-dd-th--sable{background:var(--anth)}
.hd-dd-th--sable::before{content:"";position:absolute;left:8px;top:8px;bottom:8px;width:2px;background:var(--sable)}
.hd-dd-lab{display:block;font:600 11px/1.2 var(--f-body);letter-spacing:2px;text-transform:uppercase}
.hd-dd-meta{display:block;margin-top:4px;font:400 10px/1 var(--f-mono);letter-spacing:1px;color:var(--cendre)}
@media (min-width:1024px) and (max-width:1279px){.hd-list{gap:22px}.hd-tab{font-size:10px;letter-spacing:2px}}
@media (min-width:1024px) and (max-width:1139px){.hd-list{gap:14px}.hd-tab{letter-spacing:1.4px}.hd-sub{display:none}.hd-brand{--lk-h:40px}}
.hd-burger{display:none;position:absolute;right:var(--margin);top:50%;transform:translateY(-50%);width:44px;height:44px;align-items:center;justify-content:center;flex-direction:column;gap:5px}
.hd-burger i{display:block;height:1px;width:18px;background:var(--baryte);transition:transform var(--d-2) var(--e-out),width var(--d-2) var(--e-out),opacity var(--d-2)}
.hd-burger i:nth-child(2){width:12px;align-self:flex-start;margin-left:13px}
.hd-burger[aria-expanded="true"] i:nth-child(1){transform:translateY(6px) rotate(45deg)}
.hd-burger[aria-expanded="true"] i:nth-child(2){opacity:0}
.hd-burger[aria-expanded="true"] i:nth-child(3){transform:translateY(-6px) rotate(-45deg)}
@media (max-width:1023px){
  .hd-in{height:64px}
  .hd.is-compact .hd-in{height:56px}
  .hd-brand{--lk-h:35px}
  .hd-sub{font-size:8px;letter-spacing:.75px;margin-top:6px;padding-left:1px}
  .hd-nav,.hd.is-compact .hd-nav{display:none}
  .hd-burger{display:flex}
  .hd-halo{width:320px;height:320px;left:-100px;top:-160px}
}
/* Drawer mobile : la navigation en colonne */
.dr-bg{position:fixed;inset:0;z-index:80;background:rgba(3,4,3,.6);opacity:0;pointer-events:none;transition:opacity var(--d-3)}
.dr{position:fixed;top:0;right:0;bottom:0;width:86vw;max-width:420px;z-index:85;background:rgba(3,4,3,.92);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border-left:1px solid rgba(237,230,214,.08);transform:translateX(100%);visibility:hidden;transition:transform var(--d-3) var(--e-out),visibility var(--d-3);padding:24px 28px 40px;overflow-y:auto;display:flex;flex-direction:column}
.dr.is-open{transform:none;visibility:visible;transition:transform var(--d-3) var(--e-out),visibility 0s}
.dr-bg.is-open{opacity:1;pointer-events:auto}
.dr-head{display:flex;align-items:center;justify-content:space-between;height:40px;margin-bottom:28px}
.dr-close{width:44px;height:44px;display:flex;align-items:center;justify-content:center;font:400 18px var(--f-mono);color:var(--cendre)}
.dr > .mono{display:block;margin-bottom:10px}
.dr-list{list-style:none;margin:0;padding:0}
.dr-list > li{border-top:1px solid rgba(237,230,214,.08)}
.dr-list > li:last-child{border-bottom:1px solid rgba(237,230,214,.08)}
.dr-tab{display:flex;align-items:center;gap:14px;padding:16px 0;font:600 13px/1 var(--f-body);letter-spacing:2.4px;text-transform:uppercase;color:rgba(237,230,214,.88);text-decoration:none}
.dr-tab::before{content:"";width:0;height:1px;background:var(--sable);transition:width var(--d-2) var(--e-out)}
.dr-tab.is-active{color:var(--baryte)}
.dr-tab.is-active::before{width:14px}
.dr-sub{list-style:none;margin:0 0 12px;padding:0}
.dr-sub a{display:block;padding:8px 0;font:400 11px/1 var(--f-mono);letter-spacing:1.5px;text-transform:uppercase;color:var(--cendre);text-decoration:none}
.dr-sub a:hover{color:var(--kaki2)}
.dr-foot{margin-top:auto;padding-top:32px;font:400 10px/1.8 var(--f-mono);letter-spacing:1.5px;text-transform:uppercase;color:rgba(166,167,155,.85)}

/* ═══ Curseur viseur (pointer: fine) ═══ */
.cur{position:fixed;left:0;top:0;z-index:100;pointer-events:none;display:none;will-change:transform}
.cur-ring{position:absolute;left:-7px;top:-7px;width:14px;height:14px;border:1px solid rgba(237,230,214,.6);mix-blend-mode:difference;transition:width var(--d-2) ease,height var(--d-2) ease,left var(--d-2) ease,top var(--d-2) ease,border-color var(--d-2) ease,background var(--d-2) ease}
.cur-dot{position:absolute;left:-1.5px;top:-1.5px;width:3px;height:3px;background:var(--sable);transition:opacity var(--d-2)}
.cur-lab{position:absolute;left:26px;top:26px;font:400 9px/1 var(--f-mono);letter-spacing:1.5px;text-transform:uppercase;color:var(--baryte);opacity:0;transform:translateY(4px);transition:opacity var(--d-2) var(--e-out),transform var(--d-2) var(--e-out);white-space:nowrap}
.cur[data-state="link"] .cur-ring{width:8px;height:8px;left:-4px;top:-4px}
.cur[data-state="link"] .cur-dot{opacity:0}
.cur[data-state="print"] .cur-ring,.cur[data-state="lightbox"] .cur-ring,.cur[data-state="pack"] .cur-ring,.cur[data-state="drag"] .cur-ring{border-color:transparent;background:
  linear-gradient(var(--baryte),var(--baryte)) left top/8px 1px no-repeat,linear-gradient(var(--baryte),var(--baryte)) left top/1px 8px no-repeat,
  linear-gradient(var(--baryte),var(--baryte)) right top/8px 1px no-repeat,linear-gradient(var(--baryte),var(--baryte)) right top/1px 8px no-repeat,
  linear-gradient(var(--baryte),var(--baryte)) left bottom/8px 1px no-repeat,linear-gradient(var(--baryte),var(--baryte)) left bottom/1px 8px no-repeat,
  linear-gradient(var(--baryte),var(--baryte)) right bottom/8px 1px no-repeat,linear-gradient(var(--baryte),var(--baryte)) right bottom/1px 8px no-repeat}
.cur[data-state="print"] .cur-ring,.cur[data-state="lightbox"] .cur-ring{width:44px;height:44px;left:-22px;top:-22px}
.cur[data-state="pack"] .cur-ring,.cur[data-state="drag"] .cur-ring{width:44px;height:30px;left:-22px;top:-15px}
.cur[data-state="print"] .cur-dot,.cur[data-state="lightbox"] .cur-dot,.cur[data-state="pack"] .cur-dot,.cur[data-state="drag"] .cur-dot{opacity:0}
.cur[data-state="print"] .cur-lab,.cur[data-state="lightbox"] .cur-lab,.cur[data-state="pack"] .cur-lab,.cur[data-state="drag"] .cur-lab{opacity:1;transform:none}
@media (pointer:fine){
  .js.has-cursor .cur{display:block}
  .js.has-cursor body,.js.has-cursor a,.js.has-cursor button,.js.has-cursor label,.js.has-cursor select,.js.has-cursor summary,.js.has-cursor .print,.js.has-cursor .pf-strip{cursor:none}
  .js.has-cursor input,.js.has-cursor textarea{cursor:text}
}

/* ═══ Hero — la couverture du numéro zéro : titre à contre-jour, tirage, sommaire ═══ */
.hero{position:relative;min-height:min(100vh,1040px);display:flex;align-items:flex-start;padding-top:calc(var(--hd-h) + clamp(24px,4vh,44px));padding-bottom:clamp(40px,6vh,72px);overflow:clip;isolation:isolate;scroll-margin-top:0}
.bd{position:absolute;inset:0;z-index:-1;opacity:0.20;pointer-events:none;overflow:hidden;-webkit-mask-image:linear-gradient(#000 80%,transparent);mask-image:linear-gradient(#000 80%,transparent)}
.bd::before{content:"";position:absolute;inset:-24px;background:var(--lqip,none) var(--fp,50% 50%)/cover no-repeat;filter:blur(16px);transition:opacity 1.2s ease}
.bd.is-on::before{opacity:0}
.bd-img{position:absolute;inset:0;display:block;width:100%;height:100%;max-width:none;object-fit:cover;opacity:0;animation:bdfade 28s ease-in-out infinite}
.bd-img:nth-child(1){animation-delay:-2.3s}.bd-img:nth-child(2){animation-delay:4.7s}.bd-img:nth-child(3){animation-delay:11.7s}.bd-img:nth-child(4){animation-delay:18.7s}
.js .bd-img{animation:none}
.js .bd-img.is-on{opacity:1}
#bd .bd-img:not(:first-child):not(.is-on):not(.is-next){display:none}
@keyframes bdfade{0%{opacity:0}8%{opacity:1}25%{opacity:1}33%{opacity:0}100%{opacity:0}}
.cover-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gutter);row-gap:0;width:100%;align-items:start}
.cover-eyebrow{grid-column:1/13;display:flex;flex-wrap:wrap;align-items:center;gap:8px 28px;margin:0 0 clamp(18px,3vh,32px);max-width:none}
.cover-eyebrow .dot{flex:none;width:3px;height:3px;background:var(--sable);box-shadow:0 0 8px rgba(221,194,114,.45);display:inline-block;animation:lamp 4s ease-in-out infinite}
.cover-eyebrow .cover-concept{color:rgba(237,230,214,.6)}
/* titre de couverture : didone serrée (Fraunces opsz 144, sans SOFT), deuxième ligne italique décalée vers la droite */
.cover-title{grid-column:1/13;position:relative;z-index:2;pointer-events:none;font-family:var(--f-h1);font-size:clamp(3.1rem,8.4vw,8.5rem);line-height:.9;letter-spacing:-.025em;font-weight:300;font-variation-settings:"opsz" 144;max-width:none;text-wrap:initial;margin:0 0 clamp(6px,1.4vh,18px)}
.cover-title .line{display:block}
.cover-title .line--in{margin-left:clamp(0px,32%,560px)}
.cover-title em{font-style:italic;font-weight:300;color:var(--baryte)}
.cover-title .dot-sable{font-style:normal;color:var(--sable)}
.cover-print{grid-column:1/9;grid-row:3;--clipx:30%;--rot:0deg;margin-top:clamp(-64px,-4.6vw,-14px);z-index:1;align-self:start}
.cover-print .print-cap{opacity:1;position:static;padding-top:12px;display:flex;justify-content:space-between;gap:16px;white-space:normal;line-height:1.5}
.cover-print .print-cap em{font-style:normal;color:rgba(166,167,155,.85)}
.cover-som{grid-column:9/13;grid-row:3;align-self:start;padding-top:clamp(28px,7vh,84px);padding-left:clamp(0px,1.5vw,20px)}
.cover-som > .mono{display:block;margin-bottom:12px}
.som-list{list-style:none;margin:0;padding:0}
.som-row{display:flex;align-items:baseline;gap:12px;padding:9px 0;text-decoration:none;color:var(--baryte)}
.som-t{font-family:var(--f-display);font-weight:400;font-size:clamp(1.125rem,1.35vw,1.375rem);line-height:1.15;font-variation-settings:"opsz" 48;transition:color var(--d-2) ease,transform var(--d-2) var(--e-out);display:inline-block}
.som-lead{flex:1 1 auto;min-width:16px;height:1px;background-image:radial-gradient(circle,rgba(237,230,214,.45) .6px,transparent .7px);background-size:5px 1px;background-repeat:repeat-x;align-self:center;transform:translateY(-.15em);transition:opacity var(--d-2)}
.som-folio{flex:none;font:400 10px/1 var(--f-mono);letter-spacing:1.5px;text-transform:uppercase;color:var(--cendre);transition:color var(--d-2) ease}
.som-row:hover .som-t,.som-row:focus-visible .som-t{color:var(--sable);transform:translateX(4px)}
.som-row:hover .som-folio,.som-row:focus-visible .som-folio{color:var(--sable)}
.cover-intro{grid-column:1/7;grid-row:4;margin-top:clamp(28px,4vh,48px);min-width:0}
.cover-intro .lead{margin-bottom:24px;font-weight:350}
.dropcap{float:left;font-family:var(--f-display);font-weight:600;font-size:4.3em;line-height:.78;color:var(--sable);margin:.08em .14em 0 0;font-variation-settings:"opsz" 144}
.cover-foot{grid-column:7/13;grid-row:4;align-self:end;justify-self:end;display:flex;align-items:center;gap:14px;padding-bottom:8px;white-space:nowrap}
.cover-foot i{display:block;width:48px;height:1px;background:var(--kaki2);transform-origin:left;animation:scrollHintX 2.4s ease-in-out infinite}
@keyframes scrollHintX{0%{transform:scaleX(0);transform-origin:left}45%{transform:scaleX(1);transform-origin:left}55%{transform:scaleX(1);transform-origin:right}100%{transform:scaleX(0);transform-origin:right}}
/* Chorégraphie d'entrée (CSS pur, hors reduced-motion) : balayage du bac ligne après ligne */
.js:not(.rm) .hero .h1 .line{clip-path:polygon(0 100%,100% 101.5%,100% 100%,0 100%);transform:translateY(12px);animation:sweepIn .9s var(--e-out) both;animation-delay:calc(.15s + var(--i,0) * .12s)}
.js:not(.rm) .cover-eyebrow,.js:not(.rm) .cover-intro,.js:not(.rm) .cover-foot,.js:not(.rm) .cover-som > .mono,.js:not(.rm) .som-list li{opacity:0;transform:translateY(8px);animation:riseIn .5s var(--e-out) both}
.js:not(.rm) .cover-eyebrow{animation-delay:0s}
.js:not(.rm) .cover-intro{animation-delay:.75s}
.js:not(.rm) .cover-foot{animation-delay:1.2s}
.js:not(.rm) .cover-som > .mono{animation-delay:.6s}
.js:not(.rm) .som-list li{animation-delay:calc(.7s + var(--i,0) * .08s)}
.js:not(.rm) .cover-print{opacity:0;transform:translateY(-14px) rotate(.6deg);animation:printIn 1s var(--e-out) .15s both}
@keyframes sweepIn{0%{clip-path:polygon(0 100%,100% 101.5%,100% 100%,0 100%);transform:translateY(12px)}45%{clip-path:polygon(0 52%,100% 48%,100% 100%,0 100%);transform:translateY(6px)}100%{clip-path:polygon(0 0%,100% 0%,100% 100%,0 100%);transform:none}}
@keyframes riseIn{to{opacity:1;transform:none}}
@keyframes printIn{0%{opacity:0;transform:translateY(-14px) rotate(.6deg)}60%{opacity:1;transform:translateY(0) rotate(-.15deg)}100%{opacity:1;transform:none}}
@media (max-width:899px){.js:not(.rm) .cover-print{animation-delay:.1s}}

/* ═══ Ma vision — tirage encarté, texte sur gris chaud, planche de trois vues, repères verticaux ═══ */
.vi-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--gutter);align-items:start}
/* le tirage vertical déborde sur le bloc de texte : deux rectangles qui se chevauchent, règle de composition de la charte */
.vi-fig{grid-column:1/4;--clipx:46%;--rot:-.6deg;margin-top:34px;z-index:2;min-width:0}
.vi-fig .print-cap{opacity:1;position:static;padding-top:12px;white-space:normal;line-height:1.5}
.vi-text{grid-column:4/10;min-width:0;margin-left:calc(-1 * (var(--gutter) + 40px));padding:clamp(28px,3.4vw,52px) clamp(24px,3vw,48px) clamp(28px,3.4vw,48px) calc(clamp(24px,3vw,48px) + 48px);padding-top:calc(clamp(28px,3.4vw,52px) + 12px);position:relative}
.vi-text::after{content:"";position:absolute;inset:0;pointer-events:none;background-image:var(--grain);background-size:256px 256px;opacity:.07;mix-blend-mode:soft-light}
.vi-text > *{position:relative;z-index:1}
.vi-text p{color:var(--sur-gris)}
.vi-text .lead{color:var(--sur-gris);font-weight:400}
.vi-text .dropcap{color:var(--sur-gris);font-size:4em}
.vi-text .lnk{color:var(--sur-gris);margin-top:8px}
.vi-text .lnk::after{background:rgba(255,250,242,.5);height:2px}
.vi-text .lnk:hover::after{background:var(--sur-gris)}
.vi-text .mono{display:block;margin-bottom:18px;color:var(--sur-gris-2)}
/* planche de trois vues, suspendues à un fil dans le bloc : ce que je regarde */
.vi-prints{list-style:none;position:relative;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;max-width:520px;margin:30px 0 44px;padding:12px 0 0}
.vi-prints::before{content:"";position:absolute;left:-10px;right:-10px;top:9px;height:1px;background:rgba(255,250,242,.36)}
.vi-prints::after,.vi-prints i{content:"";position:absolute;top:7px;width:5px;height:5px;background:var(--moka2)}
.vi-prints::after{right:-10px}.vi-prints i{left:-10px}
.vi-prints li{min-width:0}
.vi-print{padding:4px}
.vi-print .print-cap{opacity:1;top:100%;padding-top:9px;font-size:9px;letter-spacing:1.1px;color:var(--sur-gris-2);white-space:nowrap;left:0;right:0}
.vi-rep-list{grid-column:10/13;list-style:none;margin:0;padding:0;align-self:stretch;display:flex;flex-direction:column;justify-content:space-between;min-width:0;margin-top:34px}
.vi-rep-list li{border-top:1px solid var(--fil)}
.vi-rep-list li:last-child{border-bottom:1px solid var(--fil)}
.vi-rep{position:relative;display:grid;grid-template-columns:auto 1fr;column-gap:14px;align-items:baseline;padding:18px 0;text-decoration:none;color:inherit;isolation:isolate;transition:padding var(--d-2) var(--e-out)}
.vi-rep b{display:block;font-family:var(--f-display);font-weight:300;font-size:clamp(2.2rem,3.2vw,3.2rem);line-height:1;letter-spacing:-.02em;font-variant-numeric:tabular-nums;color:var(--baryte);min-width:2.2ch}
.vi-rep b em{font-style:italic;color:var(--sable);font-weight:300}
.vi-rep > .mono{padding-bottom:6px;transition:color var(--d-2) ease;font-size:10px}
.vi-rep:hover > .mono,.vi-rep:focus-visible > .mono{color:var(--baryte)}
/* Icônes caractéristiques : trait fin, monochrome, très faible opacité, apparition délicate */
.vi-ico{position:absolute;right:0;top:50%;height:44px;width:min(46%,130px);transform:translateY(-50%) translateX(6px);opacity:0;color:var(--baryte);pointer-events:none;z-index:-1;transition:opacity var(--d-4) var(--e-out),transform var(--d-4) var(--e-out)}
.vi-ico svg{display:block;width:100%;height:100%;overflow:visible}
.vi-ico path,.vi-ico rect,.vi-ico circle,.vi-ico line,.vi-ico ellipse{fill:none;stroke:currentColor;stroke-width:1;vector-effect:non-scaling-stroke;stroke-linecap:round;stroke-linejoin:round}
.vi-rep:hover .vi-ico,.vi-rep:focus-visible .vi-ico,.vi-rep.is-lit .vi-ico{opacity:.16;transform:translateY(-50%) translateX(0)}
.vi-rep:focus-visible{outline-offset:-2px}
/* ancres de la page About : le même bloc, sans hover */
.vi-rep-list--about{grid-column:1/-1;flex-direction:row;flex-wrap:wrap;margin-top:0}
.vi-rep-list--about li{flex:1 1 220px;border-bottom:1px solid var(--fil)}
.vi-rep-list--about .vi-ico{width:min(38%,110px)}
@media (min-width:600px) and (max-width:1199px){.vi-rep-list--about{column-gap:32px}.vi-rep-list--about li{flex-basis:45%}}
@media (max-width:599px){.vi-rep-list--about li{flex-basis:100%}}

/* ═══ Trois univers — feuilles empilées dans la cuve ═══ */
.cb-comp{position:relative;display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--gutter);align-items:start;margin-top:clamp(40px,5vw,72px)}
.cb-sheet{min-width:0;padding-top:36px}
.cb-sheet .h3{margin-bottom:14px}
.cb-sheet p{max-width:38ch;color:var(--baryte)}
.cb-sheet.block--orange p{color:var(--encre)}
.cb-sheet .mono{display:block;margin-bottom:14px}
.cb-a{grid-column:1/8;grid-row:1;z-index:1}
.cb-b{grid-column:7/12;grid-row:1;margin-top:96px;z-index:2}
.cb-c{grid-column:9/13;grid-row:2;margin-top:-64px;z-index:3}
.cb-filet{position:absolute;left:0;top:0;bottom:0;width:2px;background:var(--sable);transform-origin:top}
.cb-legend{grid-column:1/8;grid-row:2;align-self:end;padding-top:48px;max-width:52ch;color:var(--cendre)}
.cb-legend .mono{display:block;margin-bottom:12px}
.cb-sheet .lnk{margin-top:18px}
.block--orange .lnk{color:var(--encre)}
.block--orange .lnk::after{background:rgba(33,17,3,.45)}
.block--orange .lnk:hover::after{background:var(--encre)}

/* ═══ Portfolio (accueil) — fil horizontal sur fond réchauffé ═══ */
.pf--home{background:linear-gradient(180deg,rgba(var(--cuivre-rgb),.55) 0%,var(--fond-origine) 100%)}
@supports (background:color-mix(in srgb,red 50%,blue)){
  .pf--home{background:linear-gradient(180deg,color-mix(in srgb,var(--cuivre) var(--pf-chaleur),var(--fond-origine)) 0%,color-mix(in srgb,var(--cuivre) calc(var(--pf-chaleur) * .35),var(--fond-origine)) 46%,var(--fond-origine) 100%)}
}
.pf--home .sec-head{border-top-color:rgba(237,230,214,.16)}
.pf--home .sec-intro{color:rgba(237,230,214,.82)}
.pf--home .mono{color:rgba(237,230,214,.86)}
.pf-strip-wrap{position:relative}
.pf-strip{--pf-h:clamp(240px,50vh,520px);position:relative;display:flex;align-items:flex-start;gap:clamp(28px,3.4vw,48px);overflow-x:auto;overflow-y:visible;overscroll-behavior-x:contain;padding:34px var(--margin) 46px var(--pad-l);scroll-padding-inline:var(--pad-l) var(--margin);scrollbar-width:none;-webkit-overflow-scrolling:touch;cursor:grab;outline-offset:-4px}
.pf-strip::-webkit-scrollbar{display:none}
.pf-strip.is-dragging{cursor:grabbing;scroll-snap-type:none;user-select:none}
.pf-strip::after{content:"";flex:none;width:1px}
.pf-card{flex:0 0 auto;scroll-snap-align:start;padding:5px;display:block}
.pf-card .print-img{height:var(--pf-h);aspect-ratio:var(--ar,3/2);width:auto;max-width:calc(100vw - var(--pad-l) - var(--margin))}
.pf-card .print-cap{white-space:normal}
.pf-strip.is-dragging .pf-card{pointer-events:none}
/* fil de séchage : un trait au sommet du fil, qui court sur toute la largeur du bac */
.pf-strip-wire{position:absolute;left:0;right:0;top:30px;height:1px;background:rgba(237,230,214,.28);pointer-events:none}
.pf-strip-wire::before,.pf-strip-wire::after{content:"";position:absolute;top:-2px;width:5px;height:5px;background:var(--moka2)}
.pf-strip-wire::before{left:calc(max(0px,(100% - 1440px) / 2) + var(--pad-l) - 14px)}.pf-strip-wire::after{right:calc(max(0px,(100% - 1440px) / 2) + var(--margin) - 14px)}
.pf-strip-foot{display:flex;align-items:center;gap:28px;flex-wrap:wrap;margin-top:8px}
.pf-prog{position:relative;flex:1 1 160px;max-width:320px;height:1px;background:rgba(237,230,214,.18)}
.pf-prog i{position:absolute;left:0;top:-1px;height:3px;width:var(--w,20%);background:var(--sable);transform:translateX(var(--x,0));transition:transform var(--d-2) var(--e-out),width var(--d-2) var(--e-out)}
.pf-prog-n{font-variant-numeric:tabular-nums;min-width:6ch}
.pf-strip-foot .lnk{margin-left:auto}
.pf-strip-hint{display:none}
@media (hover:none){.pf-strip{cursor:auto;scroll-snap-type:x proximity}}

/* ═══ Portfolio (page) — planche modulaire, filtres, lightbox ═══ */
.pf-filters{display:flex;flex-wrap:wrap;gap:32px;position:relative;border-top:1px solid var(--fil);padding-top:16px;margin-bottom:clamp(40px,5vw,64px)}
.pf-filter{font:400 11px/1 var(--f-mono);letter-spacing:1.5px;text-transform:uppercase;color:var(--cendre);padding:8px 0;position:relative;transition:color var(--d-2)}
.pf-filter::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--kaki2);transform:scaleX(0);transform-origin:left;transition:transform var(--d-2) var(--e-out)}
.pf-filter:hover,.pf-filter[aria-pressed="true"]{color:var(--baryte)}
.pf-filter[aria-pressed="true"]::after,.pf-filter:hover::after{transform:scaleX(1)}
.pf-count{margin-left:auto;align-self:center}
.pf-n{display:inline-block;margin-left:1px;font-size:9px;letter-spacing:1px;color:rgba(166,167,155,.85);vertical-align:1px}
.pf-filter[aria-pressed="true"] .pf-n{color:var(--kaki2)}
.pf-grid{position:relative;display:flex;flex-wrap:wrap;align-items:flex-start;column-gap:var(--gutter);row-gap:clamp(64px,7vw,104px);padding-top:16px}
.pf-print{--n:var(--sp,4);flex:0 0 calc((100% - 11 * var(--gutter)) / 12 * var(--n) + (var(--n) - 1) * var(--gutter));min-width:0;cursor:pointer;margin:0}
.pf-print.is-hidden{display:none}
.pf-wire{position:absolute;left:-14px;right:-14px;top:0;height:1px;background:rgba(237,230,214,.17);pointer-events:none;transition:top var(--d-3) var(--e-out)}
.pf-wire::before,.pf-wire::after{content:"";position:absolute;top:-2px;width:5px;height:5px;background:var(--moka2)}
.pf-wire::before{left:0}.pf-wire::after{right:0}
.pf-more{margin-top:clamp(40px,5vw,64px);display:flex;align-items:center;gap:24px;flex-wrap:wrap}
.pf-empty{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--gutter);align-items:center;padding:8px 0 16px}
.pf-tray{grid-column:1/8;position:relative;height:clamp(220px,24vw,300px)}
.pf-tray-wire{position:absolute;left:0;right:0;top:44px;height:1px;background:rgba(237,230,214,.17);display:flex;justify-content:space-around;align-items:flex-start}
.pf-tray-wire .pin{position:relative;top:-3px}
.pf-tray-wire::before,.pf-tray-wire::after{content:"";position:absolute;top:-2px;width:5px;height:5px;background:var(--moka2)}
.pf-tray-wire::before{left:0}.pf-tray-wire::after{right:0}
.pf-tray-bac{position:absolute;left:5%;right:5%;bottom:10px;height:76%;background:var(--anth);border-top:1px solid rgba(237,230,214,.16);box-shadow:var(--shadow-card),inset 0 0 0 1px rgba(237,230,214,.08);transform:perspective(700px) rotateX(34deg);transform-origin:50% 100%;overflow:hidden}
.pf-tray-bath{position:absolute;left:16px;right:16px;top:16px;bottom:16px;background:linear-gradient(180deg,rgba(138,144,121,.10),rgba(14,15,14,0) 55%),var(--cuve);box-shadow:inset 0 10px 24px rgba(0,0,0,.6);overflow:hidden}
.pf-tray-bath::after{content:"";position:absolute;inset:-30%;background:linear-gradient(100deg,transparent 42%,rgba(237,230,214,.07) 50%,transparent 58%);animation:haze 9s ease-in-out infinite alternate}
@keyframes haze{from{transform:translateX(-24%)}to{transform:translateX(24%)}}
.pf-tray-code{position:absolute;right:5%;bottom:-14px;font:400 9px/1 var(--f-mono);letter-spacing:1.5px;text-transform:uppercase;color:var(--cendre)}
.pf-empty-txt{grid-column:8/13;min-width:0}
.pf-empty-h{font-family:var(--f-display);font-weight:300;font-size:clamp(1.75rem,2.6vw,2.625rem);line-height:1.08;letter-spacing:-.01em;margin:12px 0 16px;font-variation-settings:"opsz" 96}
.pf-empty-h em{font-style:italic}
.pf-empty-note{color:var(--cendre);max-width:40ch;margin-bottom:20px}
.lb{position:fixed;inset:0;z-index:95;background:rgba(3,4,3,.96);display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--gutter);align-items:center;padding:calc(var(--margin) + 40px) var(--margin) var(--margin) var(--pad-l);opacity:0;visibility:hidden;pointer-events:none;transition:opacity var(--d-3),visibility var(--d-3)}
.lb.is-open{opacity:1;visibility:visible;pointer-events:auto;transition:opacity var(--d-3),visibility 0s}
.lb-fig{grid-column:1/9;justify-self:stretch;margin:0;min-width:0;touch-action:pan-y}
.lb-ph{width:100%;aspect-ratio:3/2;background:var(--cuve);box-shadow:0 30px 60px rgba(0,0,0,.5)}
@media (min-width:900px){
  .lb-ph{margin-left:auto}
  .lb.is-pano{align-content:center}
  .lb.is-pano .lb-fig{grid-column:1/-1}
  .lb.is-pano .lb-ph{margin-left:0}
  .lb.is-pano .lb-side{grid-column:1/-1;align-self:start;display:grid;grid-template-columns:minmax(0,5fr) minmax(0,4fr);grid-template-areas:"idx meta" "tit meta" "desc nav";column-gap:var(--gutter);align-items:start}
  .lb.is-pano #lbIndex{grid-area:idx}.lb.is-pano #lbTitle{grid-area:tit}.lb.is-pano #lbDesc{grid-area:desc}.lb.is-pano #lbMeta{grid-area:meta}.lb.is-pano .lb-nav{grid-area:nav;margin-top:0;align-self:end}
}
.lb-side{grid-column:9/13;align-self:center}
.lb-side .h3{margin:0 0 14px}
.lb-desc{color:var(--cendre);font-size:.9375rem;line-height:1.5;max-width:42ch;margin:0 0 18px}
.lb-side .mono{display:block;line-height:2}
.lb-nav{margin-top:32px;display:flex;gap:24px;align-items:center}
.lb-btn{font:400 11px/1 var(--f-mono);letter-spacing:1.5px;text-transform:uppercase;color:var(--cendre);padding:10px 0;border-bottom:1px solid transparent;transition:color var(--d-2),border-color var(--d-2)}
.lb-btn:hover,.lb-btn:focus-visible{color:var(--baryte);border-color:var(--kaki2)}
.lb-close{position:absolute;top:calc(var(--margin) + 8px);right:var(--margin)}

/* ═══ Packs — trois boîtes sur un écran, chacune ouvre sa page ═══ */
.pk-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--gutter);align-items:stretch}
.pk{display:flex;flex-direction:column;padding:0 0 clamp(20px,2.2vw,28px);min-width:0;color:var(--baryte);text-decoration:none;overflow:hidden}
.pk > .block-lid{z-index:2}
.pk--moka > .block-lid{background:var(--moka)}.pk--kaki > .block-lid{background:var(--kaki)}.pk--anth > .block-lid{background:var(--anth)}
.pk--anth::before{content:"";position:absolute;left:0;top:12px;bottom:0;width:2px;background:var(--sable);z-index:2}
.pk:hover > .block-lid{transform:translateY(-4px)}
.pk-fig{position:relative;margin:0;height:clamp(140px,17vh,190px);flex:none}
.pk-fig::after{content:"";position:absolute;inset:0;z-index:4;pointer-events:none;background:linear-gradient(180deg,rgba(7,8,7,0) 60%,rgba(7,8,7,.55) 100%)}
.pk-fig .ph{transition:transform 1.2s var(--e-out)}
.pk:hover .pk-fig .ph{transform:scale(1.03)}
.pk-figcap{position:absolute;left:14px;bottom:12px;z-index:5;color:rgba(237,230,214,.9);font-size:9px}
.pk-body{display:flex;flex-direction:column;flex:1 1 auto;padding:clamp(16px,1.8vw,22px) clamp(20px,2.2vw,28px) 0}
.pk-body > .mono{display:block;margin-bottom:10px}
.pk-title{font-size:clamp(1.5rem,1.9vw,2rem);line-height:1.1;margin-bottom:10px;max-width:16ch}
.pk-desc{color:var(--baryte);font-size:1.0625rem;line-height:1.5;max-width:34ch;margin-bottom:12px}
.pk-from{display:flex;align-items:baseline;gap:12px;margin-top:auto;padding-top:12px;border-top:1px solid var(--fil)}
.pk-from b{font-family:var(--f-display);font-weight:600;font-size:clamp(1.5rem,2vw,2rem);line-height:1;letter-spacing:-.01em;font-variant-numeric:tabular-nums;font-variation-settings:"opsz" 72}
.pk--moka .pk-from b{color:var(--sable)}
.pk-from .pk-from-lab{font-size:10px}
.pk-cta{margin-top:14px;display:inline-flex;align-items:center;gap:10px;--ul:0}
.pk:hover .pk-cta,.pk:focus-visible .pk-cta{--ul:1;color:var(--baryte)}
.pk:hover .pk-cta::after{background:var(--baryte)}
.pk-ext{font-family:var(--f-mono);font-weight:400;font-style:normal;transition:transform var(--d-2) var(--e-out)}
.pk:hover .pk-ext{transform:translate(2px,-2px)}
.pk-sec{padding-block:calc(var(--sec-gap) * .65)}
.pk-sec .sec-head{margin-bottom:clamp(24px,3vw,36px)}
.pk-sec .pk-note{display:block;margin-top:20px;max-width:none}
@media (min-width:1024px) and (max-height:800px){.pk-fig{height:108px}.pk-sec{padding-block:calc(var(--sec-gap) * .3)}.pk-sec .sec-head{margin-bottom:16px;padding-top:16px}.pk-body{padding-top:10px}.pk-title{font-size:clamp(1.3rem,1.5vw,1.6rem);margin-bottom:6px}.pk-desc{font-size:1rem;margin-bottom:6px;line-height:1.45}.pk-from{padding-top:8px}.pk-cta{margin-top:10px}.pk{padding-bottom:18px}}
.pk-list{list-style:none;margin:16px 0 0;padding:0}
.pk-list li{display:flex;justify-content:space-between;align-items:baseline;gap:16px;padding:14px 0;border-top:1px solid var(--fil);font-size:1rem;line-height:1.5}
.pk-list li:last-child{border-bottom:1px solid var(--fil)}
.pk-list li > span:first-child{max-width:62%}
.pk-list small{display:block;color:var(--cendre);font-size:.85rem;margin-top:2px}
.pk-list .is-star{color:var(--sable)}
.pk-price{font-family:var(--f-display);font-weight:600;font-size:clamp(1.25rem,1.8vw,1.625rem);line-height:1;letter-spacing:-.01em;font-variant-numeric:tabular-nums;white-space:nowrap;font-variation-settings:"opsz" 72}
.pk-price small{display:inline;font-family:var(--f-mono);font-weight:400;font-size:10px;letter-spacing:1.5px;text-transform:uppercase;margin-right:8px;opacity:.75;color:inherit}
.pk-price--devis{font-size:.85rem;font-family:var(--f-mono);font-weight:400;letter-spacing:1.5px;text-transform:uppercase}
.pk-steps{list-style:none;margin:24px 0 0;padding:0}
.pk-steps li{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:24px;align-items:baseline;padding:11px 0;border-top:1px solid var(--fil)}
.pk-steps li:last-child{border-bottom:1px solid var(--fil)}
.pk-steps b{font-weight:600;display:block}
.pk-steps small{display:block;color:var(--cendre);font-size:.9rem;margin-top:2px}
/* Page d'un pack */
.pkp-hero{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--gutter);align-items:end;margin-top:clamp(24px,3vw,40px)}
.pkp-print{grid-column:1/9;--clipx:28%;--rot:-.3deg}
.pkp-print .print-cap{opacity:1;white-space:normal;left:0;right:0;padding-top:12px}
.pkp-aside{grid-column:9/13;min-width:0;padding-bottom:36px}
.pkp-aside .block{padding-top:36px}
.pkp-aside ul{list-style:none;margin:12px 0 0;padding:0}
.pkp-aside li{padding:10px 0;border-top:1px solid rgba(0,0,0,.25);font-size:.9375rem}
.pkp-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--gutter);align-items:start;margin-top:clamp(56px,7vw,96px)}
.pkp-offers{grid-column:1/8;min-width:0}
.pkp-side{grid-column:9/13;min-width:0;display:flex;flex-direction:column;gap:28px}
.pkp-side .card{--clipx:30%}
.pkp-cta{margin-top:clamp(48px,6vw,80px);padding-top:32px;border-top:1px solid var(--fil);display:flex;align-items:center;gap:28px;flex-wrap:wrap}
.pkp-cta p{margin:0;max-width:44ch;color:var(--cendre)}
.pkp-cta .btn-sable{margin-left:auto}
.pkp-nav{display:flex;gap:28px;flex-wrap:wrap;margin-top:40px}

/* ═══ Collab — planches-contact ═══ */
.cbh-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--gutter);align-items:start}
.cbh-list{grid-column:1/7;list-style:none;margin:0;padding:0;min-width:0}
.cbh-list li{border-top:1px solid var(--fil)}
.cbh-list li:last-child{border-bottom:1px solid var(--fil)}
.cbh-row{display:grid;grid-template-columns:9.5rem 1fr auto;gap:16px;align-items:baseline;padding:16px 0;text-decoration:none;color:inherit;transition:padding-left var(--d-2) var(--e-out)}
.cbh-row > .mono{white-space:nowrap}
.cbh-row b{font-family:var(--f-display);font-weight:400;font-style:italic;font-size:1.25rem;line-height:1.2}
.cbh-row:hover,.cbh-row:focus-visible{padding-left:8px}
.cbh-row:hover b{color:var(--sable)}
.cbh-grid > .cbh-sheet{grid-column:7/13;min-width:0;align-self:start}
@media (max-width:1439px){.cbh-row{grid-template-columns:8rem 1fr;row-gap:2px}.cbh-row > .mono:last-child{grid-column:2;white-space:normal}}
@media (max-width:1279px){.cbh-row{grid-template-columns:1fr;gap:4px}.cbh-row > .mono:last-child{grid-column:auto}}
.cbh-more{margin-top:32px}
.cb-list{display:flex;flex-direction:column;gap:clamp(56px,7vw,112px)}
.cbp{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--gutter);align-items:start}
.cbp-info{grid-column:1/4;min-width:0;padding-top:8px}
.cbp-info .h3{font-style:italic;font-weight:400;margin-bottom:12px}
.cbp-info .mono{display:block;line-height:1.9}
.cbp-quote{margin-top:20px;font-style:italic;color:var(--cendre);max-width:30ch;font-size:1rem}
.cbp-quote::before{content:"\00AB\00A0"}.cbp-quote::after{content:"\00A0\00BB"}
.cbp-sheet{grid-column:4/13;min-width:0;background:var(--anth);padding:22px 20px;position:relative;box-shadow:var(--shadow-block)}
.cbp--alt .cbp-sheet{grid-column:4/12}
.cbp-sheet::before,.cbp-sheet::after{content:"";position:absolute;left:14px;right:14px;height:6px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='6'%3E%3Crect x='4' y='.5' width='8' height='5' rx='1' fill='rgba(237,230,214,.10)' stroke='rgba(237,230,214,.22)'/%3E%3C/svg%3E");background-repeat:repeat-x}
.cbp-sheet::before{top:8px}.cbp-sheet::after{bottom:8px}
.cbp-code{position:absolute;top:0;right:22px;font:400 9px/9px var(--f-mono);letter-spacing:1.5px;text-transform:uppercase;color:var(--cendre);z-index:1}
.cbp-views{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;position:relative}
.cbp-view{position:relative;aspect-ratio:3/2;background:var(--cuve);min-width:0}
.cbp-view > svg:first-child{position:relative;z-index:1;display:block;width:100%;height:100%}
.cbp-view .n{position:absolute;left:4px;bottom:3px;font:400 9px/1 var(--f-mono);letter-spacing:1px;color:rgba(237,230,214,.9);text-shadow:0 1px 2px rgba(0,0,0,.9);z-index:2}
.cbp-mark{position:absolute;inset:-6px;width:calc(100% + 12px);height:calc(100% + 12px);pointer-events:none;overflow:visible;z-index:3}
.cbp-mark path{fill:none;stroke:var(--sable);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.cbp-mark.is-x path{stroke:var(--cendre);stroke-width:1.5;opacity:.7}
.cbp-dust{position:absolute;inset:0;pointer-events:none;overflow:visible;z-index:2}
.cbp-dust line{stroke:rgba(237,230,214,.06);stroke-width:.5}
.cbp-dust circle{fill:rgba(237,230,214,.08)}
.cbp-logo{position:absolute;left:22px;top:0;height:9px;line-height:9px;display:flex;align-items:center;font:600 10px/1 var(--f-body);letter-spacing:2px;text-transform:uppercase;color:rgba(237,230,214,.7);z-index:1}
.cbp-logo i{display:inline-block;width:9px;height:9px;border:1px solid rgba(237,230,214,.7);margin-right:6px;vertical-align:-1px}
.cb-filters{margin-bottom:clamp(40px,5vw,64px)}
.js:not(.rm) .cbp-view{opacity:0;filter:brightness(.3)}
.js:not(.rm) .is-developed .cbp-view,.js:not(.rm) .is-planche .cbp-view{opacity:1;filter:none;transition:opacity var(--d-4) var(--e-out),filter var(--d-4) var(--e-out);transition-delay:calc(var(--i,0) * 90ms + 50ms)}

/* ═══ Contact — lumineux et coloré ═══ */
.ct{position:relative;overflow-x:clip;isolation:isolate}
main.ct::before{background:radial-gradient(ellipse 64% 50% at 26% 46%,rgba(var(--cuivre-rgb),.58),transparent 70%),radial-gradient(ellipse 50% 44% at 84% 82%,rgba(var(--orange-rgb),.34),transparent 70%),radial-gradient(ellipse 44% 36% at 70% 6%,rgba(221,194,114,.16),transparent 70%),linear-gradient(180deg,rgba(var(--cuivre-rgb),.06),rgba(var(--cuivre-rgb),.16))}
.ct::before{content:"";position:absolute;inset:0;z-index:-2;pointer-events:none;background:
  radial-gradient(ellipse 64% 60% at 24% 34%,rgba(var(--cuivre-rgb),.62),transparent 70%),
  radial-gradient(ellipse 50% 54% at 84% 78%,rgba(var(--orange-rgb),.36),transparent 70%),
  radial-gradient(ellipse 44% 44% at 70% 8%,rgba(221,194,114,.18),transparent 70%),
  linear-gradient(180deg,rgba(var(--cuivre-rgb),.10),rgba(var(--cuivre-rgb),.16))}
/* halo sable qui suit la souris avec retard */
.ct::after{content:"";position:absolute;left:var(--lx,30%);top:var(--ly,30%);width:560px;height:560px;margin:-280px 0 0 -280px;border-radius:50%;pointer-events:none;background:radial-gradient(circle,rgba(221,194,114,.10) 0%,rgba(221,194,114,0) 60%);z-index:-1}
.ct .sec-head{border-top-color:rgba(237,230,214,.18)}
.ct-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--gutter);align-items:start;position:relative;z-index:1}
.ct-form-wrap{grid-column:1/8;position:relative;min-width:0}
.ct-form{--clipx:28%;background:rgba(var(--brun-rgb),.42);border-color:rgba(237,230,214,.12)}
.ct-form:hover{transform:none}
.ct-fields{display:grid;grid-template-columns:1fr 1fr;gap:20px 24px;margin-top:24px}
.ct-f{display:flex;flex-direction:column;gap:8px;min-width:0}
.ct-f--full{grid-column:1/-1}
.ct-f label{font:400 11px/1 var(--f-mono);letter-spacing:1.5px;text-transform:uppercase;color:rgba(237,230,214,.78)}
.ct-f input,.ct-f select,.ct-f textarea{width:100%;background:rgba(7,8,7,.42);border:0;border-bottom:1px solid rgba(237,230,214,.5);color:var(--baryte);font:400 1rem/1.4 var(--f-body);padding:12px 12px;transition:border-color var(--d-2),box-shadow var(--d-2),background var(--d-2);border-radius:0;-webkit-appearance:none;appearance:none}
.ct-f select{font-family:var(--f-mono);font-size:12px;letter-spacing:1px;text-transform:uppercase;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%23EDE6D6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:32px}
.ct-f select option{background:var(--cuve);color:var(--baryte)}
.ct-f textarea{min-height:140px;resize:vertical}
.ct-f input::placeholder,.ct-f textarea::placeholder{color:rgba(237,230,214,.62)}
.ct-f :is(input,select,textarea):focus-visible{outline:2px solid var(--sable);outline-offset:2px}
.ct-f input:focus,.ct-f select:focus,.ct-f textarea:focus{outline:none;border-bottom-color:var(--sable);box-shadow:0 1px 0 0 var(--sable);background:rgba(7,8,7,.6)}
.ct-f.is-err input,.ct-f.is-err select,.ct-f.is-err textarea{border-bottom-color:var(--flash);box-shadow:0 1px 0 0 var(--flash)}
.ct-err{display:none;font:400 11px/1.4 var(--f-mono);letter-spacing:1px;text-transform:uppercase;color:var(--baryte);border-left:2px solid var(--flash);padding-left:8px}
.ct-f.is-err .ct-err{display:block}
.ct-check{display:flex;gap:12px;align-items:flex-start;font-size:.9375rem;color:rgba(237,230,214,.85);grid-column:1/-1}
.ct-check input{width:16px;height:16px;flex:none;margin-top:3px;-webkit-appearance:none;appearance:none;background:rgba(7,8,7,.42);border:1px solid rgba(237,230,214,.4);position:relative;cursor:pointer}
.ct-check input:checked::after{content:"";position:absolute;inset:3px;background:var(--sable)}
.ct-check input:focus-visible{outline:2px solid var(--kaki2);outline-offset:2px}
.ct-actions{display:flex;align-items:center;gap:24px;flex-wrap:wrap;margin-top:32px}
.ct-status{font:400 11px/1.4 var(--f-mono);letter-spacing:1.5px;text-transform:uppercase;color:var(--baryte);min-height:1em}
.ct-done{position:absolute;inset:0;display:none;align-items:flex-start;padding-top:24px}
.ct-done.is-on{display:block}
.ct-done .print{--ar:3/2;--clipx:34%;--rot:0deg;max-width:560px}
.ct-done .print-img{display:flex;flex-direction:column;justify-content:flex-end;padding:clamp(24px,3vw,40px);background:var(--taupe2);aspect-ratio:3/2}
.ct-done .h3{font-style:italic;margin-bottom:10px}
.ct-done .mono{display:block;line-height:2}
.ct-done .date{position:relative;display:inline-block;padding:2px 6px}
.ct-done .date svg{position:absolute;inset:-6px -10px;width:calc(100% + 20px);height:calc(100% + 12px);overflow:visible}
.ct-done .date path{fill:none;stroke:var(--sable);stroke-width:2;stroke-linecap:round}
.ct-side{grid-column:9/13;margin-top:24px;display:flex;flex-direction:column;gap:36px;min-width:0}
.ct-portrait{--clipx:56%;--rot:.5deg;max-width:360px}
.ct-portrait .print-cap{opacity:1;white-space:normal;position:static;padding-top:12px;line-height:1.55}
.ct-direct{list-style:none;margin:0;padding:0}
.ct-direct li{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 0;border-top:1px solid rgba(237,230,214,.16);font:400 11px/1.6 var(--f-mono);letter-spacing:1.5px;text-transform:uppercase;color:var(--baryte)}
.ct-direct li:last-child{border-bottom:1px solid rgba(237,230,214,.16)}
.ct-direct a{text-decoration:none;color:inherit}
.ct-copy{font:400 10px/1 var(--f-mono);letter-spacing:1.5px;text-transform:uppercase;color:var(--baryte);padding:8px 0;border-bottom:1px solid transparent;transition:color var(--d-2),border-color var(--d-2);flex:none}
.ct-copy:hover{color:var(--sable);border-color:var(--sable)}
.ct-copy.is-done{color:var(--sable)}
.ct-fs{border:0;padding:0;margin:0;min-width:0}
.ct-fs legend{display:block;padding:0;margin:0 0 8px;font:400 11px/1 var(--f-mono);letter-spacing:1.5px;text-transform:uppercase;color:rgba(237,230,214,.78)}
.ct-opts{display:flex;flex-wrap:wrap;gap:10px 28px;padding:12px 0}
.ct-opts .ct-check{grid-column:auto;align-items:center;font:400 12px/1 var(--f-mono);letter-spacing:1px;text-transform:uppercase;color:var(--baryte);cursor:pointer}
.ct-opts .ct-check input{margin-top:0}
.ct-opts input[type="radio"],.ct-opts input[type="radio"]:checked::after{border-radius:50%}
.ct-modal{list-style:none;margin:0;padding:0}
.ct-modal li{display:flex;justify-content:space-between;gap:16px;padding:10px 0;border-top:1px solid rgba(0,0,0,.22);font-size:.9375rem}
.ct-modal li span:last-child{font:400 10px/1.6 var(--f-mono);letter-spacing:1.2px;text-transform:uppercase;color:var(--baryte);text-align:right;flex:none}

/* ═══ Pages intérieures ═══ */
.page{padding-top:calc(var(--hd-h) + clamp(28px,4vw,56px))}
.page-head{position:relative;padding-bottom:clamp(32px,4vw,56px)}
.page-head + .sec,.page-head + .ct{padding-top:calc(var(--sec-gap) * .45)}
.page-head .lead{margin-top:24px;color:var(--baryte)}
.page-head .eyebrow{display:flex;align-items:center;gap:12px}
.page-head .eyebrow .dot{flex:none;width:3px;height:3px;background:var(--sable);box-shadow:0 0 8px rgba(221,194,114,.45);display:inline-block;animation:lamp 4s ease-in-out infinite}
.page-crumbs{display:flex;gap:14px;align-items:center;margin-bottom:22px;font:400 10px/1 var(--f-mono);letter-spacing:1.5px;text-transform:uppercase;color:var(--cendre)}
.page-crumbs a{text-decoration:none;color:inherit;transition:color var(--d-2)}
.page-crumbs a:hover{color:var(--baryte)}
.page-crumbs i{display:inline-block;width:14px;height:1px;background:var(--moka2)}
/* Timeline (About) */
.tl-wrap{position:relative}
.tl-line{position:absolute;top:0;bottom:0;left:calc(var(--pad-l) - 24px);width:1px;background:var(--kaki);transform-origin:top;transform:scaleY(var(--tl,0))}
.tl-head{margin-bottom:clamp(48px,6vw,88px);max-width:62ch}
.tl-st{position:relative;padding-bottom:clamp(48px,6vw,96px)}
.tl-st > .pin{position:absolute;left:-27px;top:-2px;opacity:0;transform:translateY(-6px);transition:opacity var(--d-2) var(--e-out),transform var(--d-2) var(--e-out)}
.tl-st.is-developed > .pin,.rm .tl-st > .pin{opacity:1;transform:none}
.tl-label{display:block;margin:0 0 20px}
.tl-label b{font-weight:400;color:var(--baryte)}
.tl-body{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--gutter);align-items:start}
.tl-text{grid-column:1/7;min-width:0}
.tl-visual{grid-column:8/13;min-width:0}
.tl-visual--wide{grid-column:1/13}
.tl-rule{height:1px;background:var(--moka);transform-origin:left;margin-top:clamp(40px,5vw,72px);transform:scaleX(0);transition:transform var(--d-3) var(--e-out) .5s}
.tl-st.is-developed .tl-rule,.rm .tl-rule{transform:scaleX(1)}
.tl-refus{list-style:none;margin:0;padding:0;max-width:52ch}
.tl-refus li{padding:18px 0;border-top:1px solid var(--fil);font-size:1.0625rem;line-height:1.5}
.tl-refus li:last-child{border-bottom:1px solid var(--fil)}
.tl-vision{--w:min(100%,360px);width:var(--w);margin-left:auto;padding:clamp(28px,3vw,44px) clamp(24px,2.6vw,36px)}
.tl-vision p{font-family:var(--f-display);font-style:italic;font-weight:300;font-size:clamp(1.375rem,1.8vw,1.75rem);line-height:1.25;letter-spacing:-.01em}
.tl-xpan{--clipx:30%;--rot:.3deg}
.tl-print .print-cap,.pf-print .print-cap{white-space:normal;line-height:1.5}
.film-slot{background:var(--anth)}
.film-slot .film-svg{position:absolute;inset:0;width:100%;height:100%;z-index:1}
.film-svg .fs-g{fill:none;stroke:rgba(237,230,214,.16);stroke-width:1;vector-effect:non-scaling-stroke}
.film-svg .fs-d{fill:none;stroke:rgba(237,230,214,.09);stroke-width:1;stroke-dasharray:3 3;vector-effect:non-scaling-stroke}
.film-svg .fs-p{fill:none;stroke:rgba(237,230,214,.62);stroke-width:1.2;vector-effect:non-scaling-stroke}
.film-lab,.film-tc{position:absolute;z-index:4;font:400 10px/1.4 var(--f-mono);letter-spacing:1.5px;text-transform:uppercase}
.film-lab{left:clamp(14px,2vw,22px);top:clamp(12px,1.8vw,20px);color:var(--baryte)}
.film-tc{left:clamp(14px,2vw,22px);right:clamp(14px,2vw,22px);bottom:clamp(12px,1.8vw,20px);display:flex;justify-content:space-between;gap:12px;color:var(--cendre)}
.print--video{padding:10px}
.print-img--dark::before{content:"";position:absolute;inset:0;z-index:2;pointer-events:none;background:radial-gradient(ellipse at 50% 46%,transparent 58%,rgba(0,0,0,.5) 100%)}

/* ═══ Footer ═══ */
.ft-foot{background:var(--anth);color:var(--baryte);position:relative;z-index:1;margin-top:var(--sec-gap);border-top:1px solid var(--fil)}
.fo-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--gutter);padding:clamp(48px,6vw,80px) 0 40px}
.fo-col{grid-column:span 4;min-width:0}
.fo-col .mono{display:block;margin-bottom:18px;color:var(--kaki2)}
.fo-col ul{list-style:none;margin:0;padding:0}
.fo-col li{padding:6px 0;font:400 11px/1.7 var(--f-mono);letter-spacing:1.5px;text-transform:uppercase;color:rgba(237,230,214,.8)}
.fo-col a{text-decoration:none;color:inherit;border-bottom:1px solid transparent;transition:color var(--d-2),border-color var(--d-2)}
.fo-col a:hover,.fo-col a:focus-visible{color:var(--kaki2);border-color:var(--kaki2)}
.fo-bot{display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px 24px;padding:24px 0 32px;border-top:1px solid var(--fil);font:400 10px/1.6 var(--f-mono);letter-spacing:1.5px;text-transform:uppercase;color:rgba(166,167,155,.85)}
.fo-logo{margin-bottom:28px}
.fo-logo img{display:block;height:36px;width:auto}
.fo-som{list-style:none;margin:0;padding:0;counter-reset:som}
.fo-som li{counter-increment:som}
.fo-som a::before{content:counter(som,decimal-leading-zero) "  ";color:var(--cendre)}

/* ═══ Révélations au scroll (IntersectionObserver + CSS) ═══ */
.js:not(.rm) [data-rv]{opacity:0;transform:translateY(22px);transition:opacity var(--d-4) var(--e-out),transform var(--d-4) var(--e-out);transition-delay:calc(var(--i,0) * var(--stagger))}
.js:not(.rm) [data-rv="develop"]{transform:translateY(-14px) rotate(calc(var(--rot,0deg) + .6deg))}
.js:not(.rm) [data-rv="sweep"]{transform:translateY(12px);clip-path:polygon(0 100%,100% 101.5%,100% 100%,0 100%);transition:opacity var(--d-2) var(--e-out),transform .9s var(--e-out),clip-path .9s var(--e-out)}
.js:not(.rm) [data-rv].is-developed{opacity:1;transform:none}
.js:not(.rm) [data-rv="sweep"].is-developed{clip-path:polygon(0 0%,100% 0%,100% 100%,0 100%)}
.js:not(.rm) [data-rv="develop"].is-developed{transform:rotate(var(--rot,0deg))}
.js:not(.rm) .print[data-rv="develop"].is-developed{transition:opacity var(--d-4) var(--e-out),transform 1.1s var(--e-out)}
.js:not(.rm) .print[data-rv="develop"].is-developed:hover{transform:translateY(-4px) rotate(0deg)}
.js.rm [data-rv]{opacity:1;transform:none}

/* ═══ Transitions entre pages — avance de pellicule ═══ */
@view-transition{navigation:auto}
.hd{view-transition-name:hd}
.neg{view-transition-name:neg}
.neg-prog{view-transition-name:negprog}
::view-transition-old(root){animation:vtOut .32s var(--e-in) both}
::view-transition-new(root){animation:vtIn .55s var(--e-out) both}
::view-transition-old(hd),::view-transition-new(hd),::view-transition-old(neg),::view-transition-new(neg){animation:none;mix-blend-mode:normal}
@keyframes vtOut{to{opacity:0;transform:translateX(-28px)}}
@keyframes vtIn{from{opacity:0;transform:translateX(28px)}}
::view-transition-group(vue){animation-duration:.55s;animation-timing-function:var(--e-out)}
::view-transition-old(vue),::view-transition-new(vue){animation:none;mix-blend-mode:normal;height:100%;object-fit:cover}

/* ═══ Reduced motion : version sobre ═══ */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001s !important;animation-iteration-count:1 !important;transition-duration:.15s !important;scroll-behavior:auto !important}
  .print{transform:none}
  .bd-img:not(:first-child){display:none}
  .bd-img:first-child{opacity:1;animation:none}
  .pf-tray-bath::after{animation:none}
  .hd-halo,.hero-eyebrow .dot,.lk-mark,.hero-scroll i{animation:none}
  ::view-transition-old(root){animation:vtFade .2s ease both}
  ::view-transition-new(root){animation:vtFadeIn .25s ease both}
  .vi-ico{transform:translateY(-50%)}
}
@keyframes vtFade{to{opacity:0}}
@keyframes vtFadeIn{from{opacity:0}}

/* ═══ Responsive ═══ */
@media (max-width:1023px){
  .tl-line{left:8px}
  .tl-st > .pin{left:-15px}
  .lb{padding-top:80px}
  .vi-fig{grid-column:1/5}
  .vi-text{grid-column:5/13;margin-left:calc(-1 * (var(--gutter) + 32px));padding-left:calc(clamp(24px,3vw,48px) + 36px)}
  .vi-rep-list{grid-column:1/-1;flex-direction:row;flex-wrap:wrap;margin-top:16px}
  .vi-rep-list li{flex:1 1 45%;border-bottom:1px solid var(--fil)}
  .cover-som{padding-top:20px}
  .pk-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .pk--anth{grid-column:1/-1}
  .pkp-print,.pkp-aside,.pkp-offers,.pkp-side{grid-column:1/-1}
  .pkp-aside{padding-bottom:0}
  .pkp-print{margin-bottom:32px}
}
@media (max-width:899px){
  .cover-title .line--in{margin-left:12%}
  .cover-print{grid-column:1/-1;grid-row:3;margin-top:10px}
  .cover-intro{grid-column:1/-1;grid-row:4;margin-top:28px}
  .cover-som{grid-column:1/-1;grid-row:5;padding:36px 0 0}
  .cover-foot{display:none}
  .vi-rep-list{grid-column:1/-1;margin-top:8px}
  .vi-prints{max-width:none}
  .tl-text,.tl-visual,.tl-visual--wide{grid-column:1/-1}
  .tl-visual{margin-top:32px}
  .tl-print{max-width:440px}
  .tl-vision{margin-left:0}
  .cb-a,.cb-b,.cb-c,.cb-legend{grid-column:1/-1;grid-row:auto;margin-top:0}
  .cb-b{margin-left:16px}.cb-c{margin-left:32px}
  .cb-legend{padding-top:24px}
  .pf-print{--n:var(--spt,6)}
  .pf-tray,.pf-empty-txt{grid-column:1/-1}
  .pf-tray{height:210px}
  .cbh-list,.cbh-grid > .cbh-sheet{grid-column:1/-1}
  .cbh-sheet{margin-top:24px}
  .cbp-info,.cbp-sheet,.cbp--alt .cbp-sheet{grid-column:1/-1}
  .cbp-views{grid-template-columns:repeat(3,minmax(0,1fr))}
  .ct-form-wrap,.ct-side{grid-column:1/-1}
  .ct-side{margin-top:0}
  .ct-fields{grid-template-columns:1fr}
  .fo-col{grid-column:1/-1}
  .lb-fig,.lb-side{grid-column:1/-1}
  .lb{align-content:start;overflow-y:auto}
  .pf-strip{--pf-h:clamp(220px,42vh,380px)}
}
@media (max-width:699px){
  .vi-fig{grid-column:1/-1;max-width:260px;margin-top:0}
  .vi-text{grid-column:1/-1;margin-left:0;padding-left:clamp(24px,3vw,48px);margin-top:56px}
}
@media (max-width:599px){
  .pf-print{--n:12}
  .pk-grid{grid-template-columns:1fr}
  .pk-fig{height:170px}
  .cbp-views{gap:6px}
  .cbh-row{grid-template-columns:1fr;gap:4px}
  .ct-done .print-img{aspect-ratio:auto;min-height:min(60vw,240px)}
  .pf-strip{--pf-h:clamp(200px,38vh,300px)}
  .vi-rep b{font-size:2.2rem}
  .vi-rep-list li{flex:1 1 100%}
  .cover-print .print-cap{flex-direction:column;gap:2px}
  .pf-strip-foot .lnk{line-height:1.6}
  .vi-fig{max-width:220px}
  .vi-prints{gap:12px;margin-bottom:52px}
  .vi-print .print-cap{white-space:normal;line-height:1.35}
  .cover-title{font-size:clamp(2.6rem,12.5vw,3.4rem)}
  .h1--page{font-size:clamp(2.4rem,11vw,2.75rem)}
}
