/* ==========================================================
   Pigment Caché — Accueil, sections retravaillées (oct. 2026)
   Hero · Signature « Œuvres · Héritage · Émotion » · Authenticité & confiance
   S'appuie sur les jetons de main.css (--t-*, --ease-*, --gold-*, --col-gap).
   ========================================================== */

/* ---------------------------------------------------------
   1. HERO — ouverture d'exposition
   Chorégraphie CSS au chargement (≈ 1,2 s), sans dépendre du JS ;
   le CTA n'est jamais animé : il est utilisable immédiatement.
   --------------------------------------------------------- */
.h-hero{position:relative;background:var(--ivory);padding-top:var(--header-h);overflow:hidden;overflow:clip}
.h-hero__grid{display:grid;grid-template-columns:minmax(0,1fr);row-gap:clamp(40px,7vw,64px);padding-block:clamp(28px,5vw,64px) clamp(64px,8vw,104px)}
.h-hero__text{position:relative;z-index:3}

.h-hero__kicker{display:flex;align-items:center;gap:14px;font-size:11px;font-weight:500;letter-spacing:.28em;text-transform:uppercase;color:var(--stone)}
.h-hero__kicker::before{content:"";flex:0 0 32px;height:1px;background:var(--bronze)}

.pc .h-hero__title{margin-top:clamp(18px,2.2vw,30px);font-family:var(--serif);font-weight:400;font-size:clamp(64px,9.6vw,150px);line-height:.88;letter-spacing:-.028em;color:var(--ink)}
.h-hero__title .ln{display:block;overflow:hidden;padding:0 .06em .12em 0;margin-bottom:-.12em}
.h-hero__title .ln>span{display:block}
.h-hero__title em{font-style:italic;color:var(--ink-2);padding-left:.44em}

.h-hero__sub{display:flex;align-items:center;gap:14px;margin-top:clamp(24px,2.6vw,36px);font-size:12px;font-weight:500;letter-spacing:.36em;text-transform:uppercase;color:var(--ink)}
.h-hero__lead{margin-top:12px;font-family:var(--serif);font-style:italic;font-size:clamp(22px,1.9vw,28px);line-height:1.32;color:var(--ink-2);max-width:22ch}
.h-hero__act{margin-top:clamp(26px,3vw,40px);display:flex;flex-direction:column;align-items:flex-start;gap:16px}
.h-hero__note{font-size:15px;line-height:1.6;color:var(--ink-2);max-width:34ch}
.h-hero__cta{min-width:min(100%,250px)}
.h-hero__base{display:flex;align-items:baseline;gap:12px;margin-top:clamp(28px,3.4vw,48px);font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--stone)}
.h-hero__base strong{font-weight:500;color:var(--ink)}

/* la photographie : format d'origine, aucune partie de l'œuvre recadrée */
.h-hero__visual{--fo:18px;position:relative;margin:0 var(--fo) var(--fo) 0;--hp-p:0px;--hp-d:0px}
.h-hero__photo{position:relative;z-index:1;aspect-ratio:2400/2166;overflow:hidden;background:var(--sand-2);translate:0 var(--hp-p)}
.h-hero__photo picture,.h-hero__photo img{display:block;width:100%;height:100%}
.h-hero__photo img{object-fit:cover;object-position:50% 50%}
.h-hero__frame{position:absolute;z-index:0;inset:0;border:1px solid var(--gold-line);transform:translate(var(--fo),var(--fo));translate:0 var(--hp-p);pointer-events:none}
.h-hero__detail{position:absolute;z-index:2;left:-8%;bottom:-9%;width:23%;aspect-ratio:4/5;overflow:hidden;border:8px solid var(--ivory);background:var(--sand-2);translate:0 var(--hp-d)}
.h-hero__detail img{display:block;width:100%;height:100%;object-fit:cover;object-position:50% 22%}
.h-hero__cap{position:absolute;right:calc(var(--fo) * -1);top:calc(100% + var(--fo) + 16px);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--stone);text-align:right}
.h-hero__cap em{font-family:var(--serif);font-size:15px;letter-spacing:.01em;text-transform:none;color:var(--ink-2)}

@media (min-width:960px){
  .h-hero{min-height:100vh;min-height:100svh;display:flex;align-items:center}
  .h-hero__grid{width:100%;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--col-gap);align-items:center}
  .h-hero__text{grid-column:1/span 5}
  .h-hero__visual{grid-column:6/-1;justify-self:end;width:min(calc(100% - var(--fo)),max(420px,calc((100svh - var(--header-h) - 180px) * 1.108)));margin-left:clamp(24px,4vw,72px)}
}
@media (min-width:960px) and (max-width:1199px){
  .h-hero__text{grid-column:1/span 6}
  .h-hero__visual{grid-column:7/-1;--fo:14px}
  .pc .h-hero__title{font-size:clamp(64px,8.4vw,100px)}
}

/* mobile : titre, phrase, CTA puis photographie ; superposition simplifiée */
@media (max-width:959px){
  .pc .h-hero__title{font-size:clamp(58px,16vw,96px)}
  .h-hero__title em{padding-left:.36em}
  .h-hero__visual{--fo:10px;width:calc(100% - var(--fo));max-width:560px}
  .h-hero__photo{aspect-ratio:4/5}
  .h-hero__photo img{object-position:50% 44%}
  .h-hero__detail{left:14px;bottom:-24px;width:28%;border-width:5px}
  .h-hero__cap{display:none}
  .h-hero__base{margin-top:22px}
}

/* chorégraphie d'ouverture */
@keyframes hLine{from{opacity:0;transform:translateY(58%)}to{opacity:1;transform:none}}
@keyframes hRise{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
@keyframes hOpen{from{clip-path:inset(6% 8% 6% 8%)}to{clip-path:inset(0)}}
@keyframes hScale{from{transform:scale(1.035)}to{transform:scale(1)}}
@keyframes hFrame{from{opacity:0;transform:translate(calc(var(--fo) * .4),calc(var(--fo) * .4))}to{opacity:1;transform:translate(var(--fo),var(--fo))}}
.h-hero__title .ln>span{animation:hLine 760ms var(--ease-reveal) 40ms both}
.h-hero__title .ln+.ln>span{animation-delay:130ms}
.h-hero__kicker{animation:hRise 650ms var(--ease-reveal) both}
.h-hero__sub{animation:hRise 650ms var(--ease-reveal) 280ms both}
.h-hero__lead{animation:hRise 650ms var(--ease-reveal) 350ms both}
.h-hero__note{animation:hRise 650ms var(--ease-reveal) 420ms both}
.h-hero__base{animation:hRise 650ms var(--ease-reveal) 500ms both}
.h-hero__photo{animation:hOpen 900ms var(--ease-reveal) 80ms both}
.h-hero__photo img{animation:hScale 1200ms var(--ease-reveal) both}
.h-hero__frame{animation:hFrame 700ms var(--ease-reveal) 420ms both}
.h-hero__detail{animation:hRise 700ms var(--ease-reveal) 460ms both}
.h-hero__cap{animation:hRise 650ms var(--ease-reveal) 560ms both}
@media (prefers-reduced-motion:reduce){
  .h-hero *{animation:none!important}
  .h-hero__photo,.h-hero__frame,.h-hero__detail{translate:none!important}
}

/* ---------------------------------------------------------
   2. SIGNATURE — Œuvres · Héritage · Émotion
   Sans JS ou en mouvement réduit : composition fixe centrée (3 mots).
   Avec JS (.is-running) : boucle raccordée au pixel, largeur mesurée (--sig-w).
   --------------------------------------------------------- */
.h-sig{position:relative;background:var(--ivory);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.h-sig::before,.h-sig::after{content:"";position:absolute;left:0;right:0;height:1px;background:var(--gold-line);opacity:.55;pointer-events:none}
.h-sig::before{top:4px}
.h-sig::after{bottom:4px}
.h-sig__viewport{overflow:hidden;padding-block:clamp(22px,2.8vw,38px)}
.h-sig__track{display:flex;justify-content:center}
.h-sig__group{display:flex;align-items:center;flex-wrap:wrap;justify-content:center;row-gap:6px}
.h-sig__w{font-family:var(--serif);font-weight:400;font-size:clamp(30px,5vw,72px);line-height:1.05;letter-spacing:.005em;color:var(--ink);padding-inline:clamp(14px,2.2vw,38px);white-space:nowrap}
.h-sig__w--it{font-style:italic;color:#9A6F41} /* or patiné : contraste ≈ 3,6:1, conforme pour ce corps (> 24 px) */
.h-sig__sep{display:inline-flex;flex:0 0 auto;width:clamp(14px,1.3vw,19px);color:var(--bronze)}
.h-sig__sep svg{display:block;width:100%;height:auto;fill:none;stroke:currentColor;stroke-width:1}
.h-sig__sep svg circle{fill:currentColor;stroke:none}
.h-sig:not(.is-running) .is-dup{display:none}

.h-sig.is-running .h-sig__track{justify-content:flex-start;width:max-content;will-change:transform;animation:hSig var(--sig-dur,70s) linear infinite}
.h-sig.is-running .h-sig__group{flex-wrap:nowrap;flex-shrink:0}
@keyframes hSig{from{transform:translate3d(0,0,0)}to{transform:translate3d(calc(var(--sig-w,0px) * -1),0,0)}}
.h-sig.is-paused .h-sig__track,.h-sig.is-off .h-sig__track,.h-sig.is-focus .h-sig__track{animation-play-state:paused}
@media (hover:hover){.h-sig:hover .h-sig__track{animation-play-state:paused}}

/* commande posée sur le filet inférieur : elle ne masque aucun mot */
.h-sig__toggle{position:absolute;z-index:2;right:var(--gutter);bottom:-15px;display:inline-flex;align-items:center;gap:8px;height:30px;padding:0 12px;border:1px solid var(--line);border-radius:2px;background:var(--ivory);font-size:10px;font-weight:500;letter-spacing:.18em;text-transform:uppercase;color:var(--stone);transition:border-color var(--t-micro) var(--ease-micro),color var(--t-micro) var(--ease-micro)}
.h-sig__toggle[hidden]{display:none}
.h-sig__toggle:hover,.h-sig__toggle:focus-visible{color:var(--ink);border-color:var(--gold-line)}
.h-sig__toggle:focus-visible{outline:2px solid var(--bronze);outline-offset:2px}
.h-sig__icon{position:relative;display:block;width:8px;height:9px}
.h-sig__icon::before,.h-sig__icon::after{content:"";position:absolute;top:0;bottom:0;width:2px;background:currentColor}
.h-sig__icon::before{left:0}.h-sig__icon::after{right:0}
.h-sig.is-paused .h-sig__icon::before{left:1px;width:0;height:0;background:none;border-style:solid;border-width:4.5px 0 4.5px 7px;border-color:transparent transparent transparent currentColor}
.h-sig.is-paused .h-sig__icon::after{display:none}

@media (max-width:700px){
  .h-sig__viewport{padding-block:16px}
  .h-sig__w{font-size:clamp(26px,8vw,36px);padding-inline:12px}
  .h-sig:not(.is-running) .h-sig__w{font-size:clamp(24px,7vw,32px);padding-inline:9px}
  .h-sig__toggle{height:28px;padding:0 9px;right:12px;bottom:-14px}
  .h-sig__toggle .h-sig__txt{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
}
@media (prefers-reduced-motion:reduce){
  .h-sig .h-sig__track{animation:none!important}
}

/* ---------------------------------------------------------
   3. AUTHENTICITÉ & CONFIANCE — composition de certificat d'artiste
   Ordre d'entrée : filet → titre par lignes → texte + cartouche → tracé du sceau.
   Tout est visible sans JS (états initiaux limités à .js .h-auth:not(.in)).
   --------------------------------------------------------- */
.h-auth-sec{background:var(--ivory);padding-block:clamp(72px,8vw,124px)}
.h-auth{display:grid;grid-template-columns:minmax(0,1fr);row-gap:clamp(28px,4vw,44px)}
.h-auth__rule{display:block;height:1px;background:var(--gold-line);transform-origin:0 50%}
.pc .h-auth__title{font-family:var(--serif);font-weight:400;font-size:clamp(42px,4.8vw,70px);line-height:.98;letter-spacing:-.018em;color:var(--ink)}
.h-auth__title .ln{display:block;overflow:hidden;padding-bottom:.1em;margin-bottom:-.1em}
.h-auth__title .ln>span{display:block}
.h-auth__title em{font-style:italic;color:var(--gold-deep)}
.h-auth__body{max-width:46ch;font-size:clamp(17px,1.25vw,19px);line-height:1.78;color:var(--ink-2)}
.h-auth__body p+p{margin-top:1em}
.h-auth__card{display:flex;align-items:center;gap:20px;max-width:46ch;padding:20px 24px;border:1px solid var(--gold-line);border-radius:2px;background:var(--ivory-warm)}
.h-auth__seal{flex:0 0 52px;width:52px;height:52px;fill:none;stroke:var(--bronze);stroke-width:1.05;stroke-linecap:round;stroke-linejoin:round}
.h-auth__card-txt{display:flex;flex-direction:column;gap:4px}
.h-auth__card-txt strong{font-family:var(--serif);font-weight:500;font-size:clamp(20px,1.6vw,23px);line-height:1.2;color:var(--ink)}
.h-auth__card-txt span{font-size:12px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--stone)}

@media (min-width:900px){
  .h-auth{grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--col-gap);row-gap:clamp(36px,4vw,52px)}
  .h-auth__rule{grid-column:1/-1}
  .h-auth__title{grid-column:1/span 5;grid-row:2/span 2;align-self:start}
  .h-auth__body{grid-column:7/-1;grid-row:2}
  .h-auth__card{grid-column:7/-1;grid-row:3}
}

/* entrée (déclenchée par le moteur de révélation : .rv-on → .in) */
.h-auth__rule{transition:transform 700ms var(--ease-reveal)}
.h-auth__title .ln>span{transition:opacity 760ms var(--ease-reveal),transform 760ms var(--ease-reveal)}
.h-auth__title .ln:first-child>span{transition-delay:160ms}
.h-auth__title .ln+.ln>span{transition-delay:250ms}
.h-auth__body{transition:opacity var(--t-reveal) var(--ease-reveal) 340ms,transform var(--t-reveal) var(--ease-reveal) 340ms}
.h-auth__card{transition:opacity var(--t-reveal) var(--ease-reveal) 420ms,transform var(--t-reveal) var(--ease-reveal) 420ms}
.h-auth__seal *{stroke-dasharray:1;stroke-dashoffset:0;transition:stroke-dashoffset 1100ms cubic-bezier(.45,0,.2,1) 600ms}
.h-auth__seal path:nth-of-type(1){transition-delay:820ms}
.h-auth__seal path:nth-of-type(n+2){transition-delay:950ms}
.js .h-auth:not(.in) .h-auth__rule{transform:scaleX(0)}
.js .h-auth:not(.in) .h-auth__title .ln>span{opacity:0;transform:translateY(58%)}
.js .h-auth:not(.in) .h-auth__body,.js .h-auth:not(.in) .h-auth__card{opacity:0;transform:translateY(14px)}
.js .h-auth:not(.in) .h-auth__seal *{stroke-dashoffset:1}
@media (prefers-reduced-motion:reduce){
  .h-auth *,.h-auth__rule{transition:none!important}
  .js .h-auth:not(.in) .h-auth__rule{transform:none}
  .js .h-auth:not(.in) .h-auth__title .ln>span,.js .h-auth:not(.in) .h-auth__body,.js .h-auth:not(.in) .h-auth__card{opacity:1;transform:none}
  .js .h-auth:not(.in) .h-auth__seal *{stroke-dashoffset:0}
}

/* ---------------------------------------------------------
   Utilitaire : titres révélés par lignes (déclenchés par .rv-on → .in)
   --------------------------------------------------------- */
.pc-lines .ln{display:block;overflow:hidden;padding-bottom:.12em;margin-bottom:-.12em}
.pc-lines .ln>span{display:block;transition:opacity 700ms var(--ease-reveal),transform 700ms var(--ease-reveal)}
.pc-lines .ln+.ln>span{transition-delay:90ms}
.js .rv-on:not(.in) .pc-lines .ln>span{opacity:0;transform:translateY(55%)}
.h-fade{transition:opacity 700ms var(--ease-reveal),transform 700ms var(--ease-reveal)}

/* ---------------------------------------------------------
   4. L’UNIVERS — diptyque de matière
   Aucune image n'est fermée à 100 % : révélation courte (opacité + 8 % de masque),
   déclenchée par le conteneur du diptyque, jamais par l'image elle-même.
   --------------------------------------------------------- */
.h-uni{overflow:hidden}
.h-uni__grid{display:grid;grid-template-columns:minmax(0,1fr);row-gap:40px;align-items:center}
.h-uni__text{order:-1}
.pc .h-uni__title{font-size:clamp(40px,4.4vw,64px);line-height:1.02}
.h-uni__title em{color:var(--ink-2)}
.h-uni__lead{margin-top:clamp(20px,2.4vw,30px);font-family:var(--serif);font-style:italic;font-size:clamp(21px,1.8vw,26px);line-height:1.45;color:var(--ink-2);max-width:30ch}
.h-uni__link{margin-top:clamp(24px,3vw,36px)}
.h-uni__media{position:relative;display:grid;grid-template-columns:minmax(0,1fr);row-gap:20px}
.h-uni__main,.h-uni__second{position:relative;margin:0}
.h-uni__second{width:64%;justify-self:end}
.h-uni__frame{position:relative;overflow:hidden;aspect-ratio:4/5;background:var(--sand-deep)}
.h-uni__frame img{display:block;width:100%;height:100%;object-fit:cover}
.h-uni__cap{margin-top:10px;font-size:11px;line-height:1.6;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-2)}
.h-uni__explore{position:absolute;left:12px;bottom:calc(10px + 1.6em + 12px);z-index:2;display:inline-flex;align-items:center;gap:10px;min-height:44px;padding:0 16px;border:1px solid rgba(41,33,27,.18);border-radius:2px;background:var(--ivory);color:var(--ink);font-size:11px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;transition:background-color var(--t-micro) var(--ease-micro),color var(--t-micro) var(--ease-micro)}
.h-uni__explore svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.3}
.h-uni__explore:hover{background:var(--ink);color:var(--ivory)}
.h-uni__explore:focus-visible{outline:2px solid var(--bronze);outline-offset:3px}
@media (min-width:960px){
  .h-uni__grid{grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--col-gap)}
  .h-uni__text{order:0;grid-column:9/span 4}
  .h-uni__media{grid-column:1/span 7;grid-template-columns:minmax(0,58fr) minmax(0,38fr);column-gap:4%;align-items:end;padding-bottom:clamp(32px,4vw,64px)}
  .h-uni__frame{aspect-ratio:2/3}
  .h-uni__second{width:auto;justify-self:stretch;margin-bottom:calc(clamp(32px,4vw,64px) * -1);translate:0 var(--uni-d,0px)}
}
.h-uni__frame{transition:opacity 650ms var(--ease-reveal),clip-path 650ms var(--ease-reveal)}
.h-uni__frame img{transition:transform 900ms var(--ease-reveal)}
.h-uni__second .h-uni__frame,.h-uni__second .h-uni__frame img{transition-delay:100ms}
.h-uni__cap,.h-uni__explore{transition:opacity 500ms var(--ease-reveal) 350ms,background-color var(--t-micro) var(--ease-micro),color var(--t-micro) var(--ease-micro)}
.js .h-uni__media:not(.in) .h-uni__frame{opacity:0;clip-path:inset(0 0 8% 0)}
.js .h-uni__media:not(.in) .h-uni__frame img{transform:scale(1.03)}
.js .h-uni__media:not(.in) .h-uni__cap{opacity:0}
.h-uni__lead,.h-uni__link{transition:opacity 700ms var(--ease-reveal) 200ms,transform 700ms var(--ease-reveal) 200ms}
.h-uni__link{transition-delay:280ms}
.js .h-uni__text:not(.in) .h-uni__lead,.js .h-uni__text:not(.in) .h-uni__link{opacity:0;transform:translateY(14px)}

/* visionneuse « Explorer la matière » */
.pc-viewer{width:100vw;height:100vh;height:100dvh;max-width:none;max-height:none;margin:0;padding:0;border:0;background:var(--dark);color:var(--ivory);overflow:hidden}
.pc-viewer[open]{display:grid;grid-template-rows:auto minmax(0,1fr) auto}
.pc-viewer::backdrop{background:rgba(23,20,17,.92)}
.pc-viewer__bar,.pc-viewer__nav{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 18px;padding:14px var(--gutter)}
.pc-viewer__bar{border-bottom:1px solid var(--line-light)}
.pc-viewer__nav{border-top:1px solid var(--line-light)}
.pc-viewer__cap{font-family:var(--serif);font-size:clamp(18px,1.6vw,22px)}
.pc-viewer__cap small{display:block;font-family:var(--sans);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:rgba(243,236,226,.62);margin-top:2px}
.pc-viewer__tools{display:flex;align-items:center;gap:8px}
.pc-viewer button{min-height:44px;padding:0 14px;border:1px solid var(--line-light);border-radius:2px;color:var(--ivory);font-size:11px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;transition:background-color var(--t-micro) var(--ease-micro),border-color var(--t-micro) var(--ease-micro)}
.pc-viewer button:hover{background:rgba(243,236,226,.08);border-color:rgba(243,236,226,.4)}
.pc-viewer button:focus-visible,.pc-viewer__stage:focus-visible{outline:2px solid var(--gold-light);outline-offset:2px}
.pc-viewer button[hidden]{display:none}
.pc-viewer__zoom[aria-pressed="true"]{background:var(--ivory);color:var(--ink);border-color:var(--ivory)}
.pc-viewer__count{font-size:11px;letter-spacing:.14em;color:rgba(243,236,226,.62);min-width:3.5em;text-align:center;font-variant-numeric:tabular-nums}
.pc-viewer__stage{position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center;padding:clamp(10px,2vw,24px);touch-action:manipulation}
.pc-viewer__stage img{display:block;max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;cursor:zoom-in;user-select:none;-webkit-user-drag:none}
.pc-viewer.is-zoomed .pc-viewer__stage{overflow:auto;display:block;padding:0;overscroll-behavior:contain;touch-action:pan-x pan-y;cursor:grab}
.pc-viewer.is-zoomed .pc-viewer__stage img{max-width:none;max-height:none;cursor:zoom-out;margin:0 auto}
.pc-viewer.is-dragging .pc-viewer__stage{cursor:grabbing}
.pc-viewer__hint{font-size:12px;color:rgba(243,236,226,.62)}
html.pc-viewer-open{overflow:hidden}

/* ---------------------------------------------------------
   5. ŒUVRES À LA UNE — galerie éditoriale
   Chaque photo garde le format de son fichier (aspect-ratio réservé = aucun recadrage).
   --------------------------------------------------------- */
.h-works{background:var(--ivory)}
.h-works__head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px 32px;margin-bottom:clamp(40px,5vw,72px)}
.pc .h-works__title{font-size:clamp(40px,4.4vw,64px);line-height:1}
.hw-list{display:grid;grid-template-columns:minmax(0,1fr);row-gap:clamp(48px,7vw,64px);margin:0;padding:0;list-style:none}
.hw-item{min-width:0}
.hw-card{display:block;color:inherit}
.hw-media{position:relative;display:block;overflow:hidden;background:var(--sand-2)}
.hw-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 500ms var(--ease-reveal),opacity 450ms var(--ease-micro)}
.hw-img--alt{opacity:0}
.hw-view{position:absolute;left:12px;bottom:12px;z-index:2;display:inline-flex;align-items:center;gap:8px;min-height:36px;padding:0 14px;border-radius:2px;background:var(--ivory);color:var(--ink);font-size:11px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;opacity:0;transform:translateY(6px);transition:opacity var(--t-micro) var(--ease-micro),transform var(--t-micro) var(--ease-micro)}
.hw-view .arr{transition:transform var(--t-micro) var(--ease-micro)}
.hw-badge{position:absolute;left:12px;top:12px;z-index:2;padding:7px 12px;border-radius:2px;background:var(--ivory);color:var(--ink);font-size:11px;font-weight:500;letter-spacing:.16em;text-transform:uppercase}
@media (hover:hover){
  .hw-card:hover .hw-img{transform:scale(1.025)}
  .hw-card:hover .hw-img--alt{opacity:1}
  .hw-card:hover .hw-view{opacity:1;transform:none}
  .hw-card:hover .hw-view .arr{transform:translateX(3px)}
  .hw-card:hover .hw-title{color:var(--ink-2)}
}
.hw-card:focus-visible{outline:none}
.hw-card:focus-visible .hw-media{outline:2px solid var(--bronze);outline-offset:4px}
.hw-card:focus-visible .hw-view{opacity:1;transform:none}
.hw-meta{display:grid;grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"no title price" ". dims .";column-gap:16px;row-gap:4px;align-items:baseline;margin-top:16px;padding-top:14px;border-top:1px solid var(--line)}
.hw-no{grid-area:no;font-size:11px;font-weight:500;letter-spacing:.14em;color:var(--stone);font-variant-numeric:tabular-nums;white-space:nowrap}
.hw-title{grid-area:title;font-family:var(--serif);font-size:clamp(24px,2vw,30px);line-height:1.12;color:var(--ink);transition:color var(--t-micro) var(--ease-micro)}
.hw-dims{grid-area:dims;font-size:14px;line-height:1.5;color:var(--ink-2)}
.hw-price{grid-area:price;font-family:var(--serif);font-size:23px;line-height:1.1;color:var(--ink);white-space:nowrap}
.hw-price .amount,.hw-price bdi{font-family:inherit}
.h-works__more{display:flex;justify-content:center;margin-top:clamp(56px,6vw,88px)}
.h-works__btn:active{background:var(--umber);color:var(--ivory);border-color:var(--umber)}
@media (min-width:600px) and (max-width:959px){
  .hw-item:not(.is-land){width:min(100%,500px)}
  .hw-item:nth-child(even):not(.is-land){justify-self:end}
}
@media (min-width:960px){
  .hw-list{grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--col-gap);row-gap:clamp(56px,6vw,96px);align-items:start}
  .hw-item--1{grid-column:1/span 4}
  .hw-item--2{grid-column:7/span 4;margin-top:clamp(56px,8vw,128px)}
  .hw-item--3{grid-column:2/span 4;margin-top:clamp(0px,2vw,24px)}
  .hw-item--4{grid-column:7/span 6;margin-top:clamp(40px,6vw,96px)}
  .hw-item--5{grid-column:1/span 7}
  .hw-item--6{grid-column:9/span 4;margin-top:clamp(32px,4vw,64px)}
}

/* ---------------------------------------------------------
   6. L’ATELIER — carnet documentaire
   Images au format d'origine ; seule une entrée .rv (opacité + 18 px), jamais de masque.
   --------------------------------------------------------- */
.h-atl__grid{display:grid;grid-template-columns:minmax(0,1fr);row-gap:28px}
.h-atl__text{margin-bottom:8px}
.pc .h-atl__title{margin-top:16px;font-size:clamp(40px,4.4vw,64px);line-height:1}
.h-atl__body{margin-top:20px;max-width:40ch;color:var(--ink-2)}
.h-atl__body,.h-atl__cta{transition:opacity 700ms var(--ease-reveal) 180ms,transform 700ms var(--ease-reveal) 180ms}
.h-atl__cta{margin-top:30px;transition-delay:260ms}
.js .h-atl__text:not(.in) .h-atl__body,.js .h-atl__text:not(.in) .h-atl__cta{opacity:0;transform:translateY(14px)}
.h-atl__fig{margin:0}
.h-atl__img{overflow:hidden;background:var(--sand-2)}
.h-atl__img img{display:block;width:100%;height:auto}
.h-atl__fig figcaption{display:block;margin-top:10px;padding-left:2.4em;text-indent:-2.4em;font-size:13px;line-height:1.5;color:var(--ink-2)}
.h-atl__fig figcaption span{display:inline-block;width:2.4em;text-indent:0;font-size:11px;font-weight:500;letter-spacing:.14em;color:var(--bronze);font-variant-numeric:tabular-nums}
.h-atl__fig--2{width:78%;justify-self:end}
/* le fichier carré contient des bandes blanches latérales : le format 3:4 les retire sans toucher au sujet */
.h-atl__fig--2 .h-atl__img{aspect-ratio:3/4}
.h-atl__fig--2 .h-atl__img img{height:100%;object-fit:cover}
@media (min-width:960px){
  .h-atl__grid{grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--col-gap);row-gap:clamp(28px,3vw,40px);align-items:start}
  .h-atl__text{grid-column:1/span 4;grid-row:1/span 2;align-self:center;margin:0;padding-right:clamp(0px,2vw,24px)}
  .h-atl__fig--1{grid-column:5/span 5;grid-row:1/span 2}
  .h-atl__fig--2{grid-column:10/span 3;grid-row:1;width:auto;translate:0 var(--atl-a,0px)}
  .h-atl__fig--3{grid-column:10/span 3;grid-row:2;translate:0 var(--atl-b,0px)}
  .h-atl__fig--2.rv{transition-delay:120ms}
  .h-atl__fig--3.rv{transition-delay:240ms}
}

/* ---------------------------------------------------------
   7. DERRIÈRE LES PORTES — moment signature
   Deux panneaux mats (surcouche décorative) s'écartent : la photographie dessous
   n'est jamais découpée ni animée. Sans JS, en mobile et en mouvement réduit :
   pas de panneaux, composition stable.
   --------------------------------------------------------- */
.h-dlp{position:relative;overflow:hidden;background:var(--dark);color:var(--ivory);padding-block:clamp(88px,10vw,160px)}
.h-dlp__grid{display:grid;grid-template-columns:minmax(0,1fr);row-gap:clamp(64px,9vw,88px);align-items:center}
.h-dlp__stage{position:relative;width:min(84%,440px);justify-self:start}
.h-dlp__halo{position:absolute;z-index:0;left:-12%;right:-12%;top:12%;bottom:12%;border-radius:50%;background:var(--bronze);filter:blur(90px);opacity:.14;pointer-events:none;transition:opacity 1200ms var(--ease-reveal)}
.h-dlp__work{position:relative;z-index:1;margin:0}
.h-dlp__photo{position:relative;overflow:hidden;aspect-ratio:2/3;background:var(--dark-2)}
.h-dlp__photo img{display:block;width:100%;height:100%;object-fit:cover}
.h-dlp__panel{display:none}
.h-dlp__detail{position:absolute;z-index:3;right:-22%;bottom:-8%;width:36%;aspect-ratio:2/3;margin:0;overflow:hidden;border:5px solid var(--dark);background:var(--dark-2)}
.h-dlp__detail img{display:block;width:100%;height:100%;object-fit:cover}
.h-dlp__eyebrow{font-size:11px;font-weight:500;letter-spacing:.24em;text-transform:uppercase;color:var(--gold-light)}
.pc .h-dlp__title{margin-top:20px;font-size:clamp(48px,5.6vw,88px);line-height:.96;letter-spacing:-.02em;color:var(--ivory)}
.h-dlp__title em{color:var(--gold-light)}
.h-dlp__lead{margin-top:clamp(20px,2.4vw,30px);font-family:var(--serif);font-style:italic;font-size:clamp(22px,1.9vw,28px);line-height:1.4;color:rgba(243,236,226,.86);max-width:24ch}
.h-dlp__cta{margin-top:clamp(28px,3vw,40px)}
@media (min-width:960px){
  .h-dlp__grid{grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--col-gap)}
  .h-dlp__stage{grid-column:1/span 7;justify-self:center;width:min(calc(100% / 1.24),calc(min(84vh,880px) * 2 / 3));translate:calc(-11%) 0}
  .h-dlp__text{grid-column:9/span 4}
  .h-dlp__detail{border-width:7px}
}
/* révélation signature (desktop, mouvement autorisé) */
@media (min-width:960px) and (prefers-reduced-motion:no-preference){
  .js .h-dlp__panel{display:block;position:absolute;z-index:2;top:0;bottom:0;width:50.5%;background:#1C1712;transition:transform 900ms cubic-bezier(.65,0,.25,1)}
  .js .h-dlp__panel--l{left:0;border-right:1px solid var(--gold-line)}
  .js .h-dlp__panel--r{right:0;border-left:1px solid var(--gold-line)}
  .js .h-dlp__stage.in .h-dlp__panel--l{transform:translateX(-101%)}
  .js .h-dlp__stage.in .h-dlp__panel--r{transform:translateX(101%)}
  .h-dlp__detail{transition:opacity 600ms var(--ease-reveal) 760ms,transform 600ms var(--ease-reveal) 760ms}
  .js .h-dlp__stage:not(.in) .h-dlp__detail{opacity:0;transform:translateY(16px)}
  .js .h-dlp__stage:not(.in) .h-dlp__halo{opacity:0}
  .h-dlp__text .pc-lines .ln>span{transition-delay:900ms}
  .h-dlp__text .pc-lines .ln+.ln>span{transition-delay:990ms}
  .h-dlp__eyebrow,.h-dlp__lead{transition:opacity 700ms var(--ease-reveal),transform 700ms var(--ease-reveal)}
  .h-dlp__eyebrow{transition-delay:820ms}
  .h-dlp__lead{transition-delay:1080ms}
  .js .h-dlp__text:not(.in) .h-dlp__eyebrow,.js .h-dlp__text:not(.in) .h-dlp__lead{opacity:0;transform:translateY(12px)}
}
/* mobile : révélation simplifiée, le CTA reste toujours visible */
@media (max-width:959px) and (prefers-reduced-motion:no-preference){
  .h-dlp__photo,.h-dlp__detail{transition:opacity 600ms var(--ease-reveal)}
  .h-dlp__detail{transition-delay:200ms}
  .js .h-dlp__stage:not(.in) .h-dlp__photo,.js .h-dlp__stage:not(.in) .h-dlp__detail{opacity:0}
}

/* ---------------------------------------------------------
   8. CITATION — pause éditoriale
   Phrase entière lisible dès l'apparition (texte non accentué ≥ 6:1).
   La mise en lumière n'existe qu'avec .is-live (JS actif, mouvement autorisé).
   --------------------------------------------------------- */
.h-quote{position:relative;background:var(--dark-2);color:var(--ivory);text-align:center;padding-block:clamp(96px,12vw,176px)}
.h-quote__fig{margin:0 auto;max-width:1100px}
.h-quote__mark{display:block;height:.42em;font-family:var(--serif);font-size:clamp(80px,9vw,128px);line-height:.8;color:var(--gold-light);opacity:.5}
.h-quote__text{margin:0}
.h-quote__text p{font-family:var(--serif);font-weight:300;font-size:clamp(38px,6.2vw,96px);line-height:1.06;letter-spacing:-.015em;text-wrap:balance}
.q-g{display:block;color:var(--ivory);transition:color 1100ms var(--ease-reveal)}
.q-g--accent em{font-style:italic;color:var(--gold-light);transition:color 1100ms var(--ease-reveal)}
.h-quote.is-live .q-g:not(.is-lit){color:rgba(243,236,226,.62)}
.h-quote.is-live .q-g--accent:not(.is-lit) em{color:rgba(196,162,114,.66)}
.h-quote__sign{margin-top:clamp(32px,4vw,48px);font-size:11px;font-weight:500;letter-spacing:.32em;text-transform:uppercase;color:var(--gold-light);transition:opacity 900ms var(--ease-reveal),transform 900ms var(--ease-reveal)}
.h-quote__sign::before{content:"";display:block;width:40px;height:1px;margin:0 auto 18px;background:var(--gold-line)}
.h-quote.is-live:not(.is-signed) .h-quote__sign{opacity:0;transform:translateY(8px)}

/* ---------------------------------------------------------
   9. CONTACT — invitation personnelle
   --------------------------------------------------------- */
.h-contact{position:relative;overflow:hidden;background:var(--ivory);padding-bottom:0}
.h-contact__grid{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1fr);row-gap:22px}
.h-contact__eyebrow{display:flex;align-items:center;gap:14px;font-size:11px;font-weight:500;letter-spacing:.24em;text-transform:uppercase;color:var(--stone)}
.h-contact__eyebrow::before{content:"";flex:0 0 32px;height:1px;background:var(--bronze)}
.pc .h-contact__title{font-size:clamp(44px,6vw,92px);line-height:.98;letter-spacing:-.02em}
.h-contact__title em{color:var(--gold-deep)}
.h-contact__body{max-width:44ch;font-size:clamp(17px,1.3vw,19px);line-height:1.75;color:var(--ink-2)}
.h-contact__actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}
.h-contact__wa svg{width:18px;height:18px;fill:currentColor}
.h-contact__side{transition:opacity 700ms var(--ease-reveal) 260ms,transform 700ms var(--ease-reveal) 260ms}
.js .h-contact__grid:not(.in) .h-contact__side{opacity:0;transform:translateY(14px)}
.h-contact__ghost{position:relative;z-index:0;display:block;width:100%;max-width:calc(var(--max) + var(--gutter) * 2);height:auto;margin:clamp(32px,5vw,72px) auto 0;padding-inline:var(--gutter);overflow:visible}
.h-contact__ghost text{font-family:var(--serif);font-style:italic;font-weight:300;font-size:142px;letter-spacing:-1px;fill:none;stroke:rgba(41,33,27,.14);stroke-width:1}
@media (min-width:900px){
  .h-contact__grid{grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--col-gap);row-gap:28px;align-items:end}
  .h-contact__eyebrow{grid-column:1/-1}
  .h-contact__title{grid-column:1/span 7}
  .h-contact__side{grid-column:8/span 5}
}
@media (max-width:599px){
  .h-contact__actions{flex-direction:column;align-items:stretch}
  .h-contact__actions .pc-btn{width:100%;justify-content:center}
}

/* mouvement réduit : composition finale immédiate */
@media (prefers-reduced-motion:reduce){
  .pc-lines .ln>span,.h-uni__frame,.h-uni__frame img,.h-uni__cap,.h-uni__lead,.h-uni__link,.hw-img,.hw-view,.h-atl__body,.h-atl__cta,.h-dlp__halo,.h-contact__side,.q-g,.q-g--accent em,.h-quote__sign{transition:none!important}
  .js .rv-on:not(.in) .pc-lines .ln>span,.js .h-uni__media:not(.in) .h-uni__frame,.js .h-uni__media:not(.in) .h-uni__cap,.js .h-uni__text:not(.in) .h-uni__lead,.js .h-uni__text:not(.in) .h-uni__link,.js .h-atl__text:not(.in) .h-atl__body,.js .h-atl__text:not(.in) .h-atl__cta,.js .h-contact__grid:not(.in) .h-contact__side{opacity:1;transform:none;clip-path:none}
  .js .h-uni__media:not(.in) .h-uni__frame img{transform:none}
  .h-uni__second,.h-atl__fig--2,.h-atl__fig--3{translate:none!important}
  .hw-card:hover .hw-img{transform:none}
}