@font-face{font-family:'Nyght';src:url('/fonts/NyghtSerif-Light.woff2') format('woff2');font-weight:300;font-style:normal;font-display:swap}
@font-face{font-family:'Nyght';src:url('/fonts/NyghtSerif-LightItalic.woff2') format('woff2');font-weight:300;font-style:italic;font-display:swap}
@font-face{font-family:'Nyght';src:url('/fonts/NyghtSerif-Regular.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'Nyght';src:url('/fonts/NyghtSerif-RegularItalic.woff2') format('woff2');font-weight:400;font-style:italic;font-display:swap}
@font-face{font-family:'Nyght';src:url('/fonts/NyghtSerif-Medium.woff2') format('woff2');font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:'Hauora';src:url('/fonts/hauora-sans-latin-300-normal.woff2') format('woff2');font-weight:300;font-style:normal;font-display:swap}
@font-face{font-family:'Hauora';src:url('/fonts/hauora-sans-latin-400-normal.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'Hauora';src:url('/fonts/hauora-sans-latin-500-normal.woff2') format('woff2');font-weight:500;font-style:normal;font-display:swap}
:root{--bg:#171717;--ink:#ECE8E1;--mute:rgba(236,232,225,.6);--line:rgba(236,232,225,.18);--panel:#222;--acc:#ECE8E1;--gut:40px;--gap:24px;--blk:160px;--ease:cubic-bezier(.22,.61,.36,1);--serif:'Nyght',Georgia,serif;--sans:'Hauora',system-ui,sans-serif}
*{margin:0;padding:0;box-sizing:border-box}
html{-webkit-text-size-adjust:100%;background:var(--bg)}
body{background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:15px;line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{display:block;max-width:100%;height:auto}
a{color:inherit;text-decoration:none}
figure,blockquote{margin:0}
ul,ol{list-style:none}
:focus-visible{outline:1px solid var(--ink);outline-offset:4px}
.skip{position:absolute;left:-9999px;top:8px;z-index:99;background:var(--ink);color:var(--bg);padding:8px 14px}.skip:focus{left:8px}
.sm{font-size:11.5px;letter-spacing:.16em;text-transform:uppercase}
.ps-close,.ps-hero-tx p,.ps-hero-meta dt,.ps-next-tx p,.ps-next-tx span,.ps-foot,.bk-nav,.ps-tech span,.ps-steps h3{font-size:11.5px;letter-spacing:.16em;text-transform:uppercase}

/* En-tête */
.ps-hdr{position:fixed;inset:0 0 auto;z-index:40;display:grid;grid-template-columns:1fr auto;align-items:center;padding:18px var(--gut);color:#fff;mix-blend-mode:difference}
.ps-logo{width:60px;height:auto}
.ps-close{justify-self:end;display:flex;gap:18px}
.ps-close span{border-bottom:1px solid currentColor;padding-bottom:1px}

/* Hero : plein écran, titre en bas à gauche, lieu et année en bas, une phrase en haut à droite */
.ps-hero{position:relative;height:100svh;min-height:560px;overflow:hidden;color:#fff}
.ps-hero-ph{position:absolute;inset:0 0 -8%;will-change:transform}
.ps-hero-ph img{width:100%;height:100%;object-fit:cover}
.ps-hero::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.25) 0%,rgba(0,0,0,0) 30%,rgba(0,0,0,0) 55%,rgba(0,0,0,.55) 100%)}
.ps-hero-pitch{position:absolute;z-index:2;right:var(--gut);top:clamp(90px,12vh,120px);width:min(300px,40%);font-size:13px;line-height:1.55;color:rgba(255,255,255,.85)}
.ps-hero-tx{position:absolute;z-index:2;left:var(--gut);bottom:clamp(70px,10vh,110px);max-width:70%}
.ps-hero-tx p{margin-bottom:12px;opacity:.85}
.ps-hero h1{font-family:var(--serif);font-weight:300;font-size:clamp(48px,7.2vw,120px);line-height:.95;letter-spacing:-.02em}
.ps-hero-meta{position:absolute;z-index:2;left:var(--gut);right:var(--gut);bottom:clamp(24px,4vh,40px);display:flex;justify-content:space-between;font-size:13px}
.ps-hero-meta div{display:flex;gap:10px;align-items:baseline}
.ps-hero-meta dt{opacity:.7}
.ps-hero-meta dd a{border-bottom:1px solid rgba(255,255,255,.5)}

/* Blocs : marges de 40 px, 24 px entre les images, 160 px entre les blocs */
.wrap{padding:0 var(--gut);max-width:1440px;margin:0 auto}
.blk{margin-top:var(--blk)}
.pf .fr{overflow:hidden;background:var(--panel)}
.pf img,.pf video{display:block;width:100%;height:100%;object-fit:cover;object-position:50% 30%;transition:transform 1.1s var(--ease)}
.pf:hover img{transform:scale(1.035)}
.pf.cut .fr{background:#F7F3EC;display:flex;justify-content:center;align-items:center}
.pf.cut img{width:auto;height:auto;max-width:86%;max-height:86%;object-fit:contain}

/* Texte : la démarche en colonne à droite, comme le paragraphe de la référence */
.ps-intro{display:grid;grid-template-columns:1fr 340px;gap:var(--gap)}
.ps-intro p{grid-column:2;font-size:14px;line-height:1.6;color:var(--ink)}
/* Portrait seul à gauche, texte technique à droite */
.ps-split{display:grid;grid-template-columns:322fr 1038fr;gap:var(--gap);align-items:end}
.ps-split .pf .fr{aspect-ratio:322/628}
.ps-steps{display:grid;grid-template-columns:1fr 1fr;gap:28px var(--gap);max-width:720px;margin-left:auto}
.ps-steps h3{font-weight:400;margin-bottom:8px;color:var(--mute)}
.ps-steps p{font-size:14px;line-height:1.55}
.ps-tech{display:flex;gap:16px;font-size:13px;margin-top:14px;max-width:720px;margin-left:auto}
.ps-tech span{color:var(--mute);min-width:52px;padding-top:3px}
/* Trois paysages 4/3 */
.ps-row3{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--gap)}
.ps-row3 .pf .fr{aspect-ratio:4/3}
/* Deux images de même hauteur : une étroite, une large (puis l'inverse) */
.ps-pair{display:grid;grid-template-columns:532fr 804fr;gap:var(--gap)}
.ps-pair.rev{grid-template-columns:804fr 532fr}
.ps-pair .pf .fr{height:clamp(300px,43.6vw,628px)}
.ps-pair+.ps-pair{margin-top:var(--gap)}
/* Vidéo centrée, 1280 de large */
.ps-video{max-width:1360px;padding:0 var(--gut);margin:var(--blk) auto 0}
.ps-video .pf .fr{background:#000}
.ps-video video{height:auto}
.ps-video.tall{max-width:560px}

/* Livre */
.ps-book{padding:var(--blk) var(--gut) 0;text-align:center}
.ps-book h2{font-family:var(--serif);font-weight:300;font-size:clamp(34px,3.6vw,56px);line-height:1;letter-spacing:-.015em;margin-bottom:clamp(40px,6vh,70px)}
.bk3d{position:relative;width:min(100%,1360px);aspect-ratio:2.4/1;margin:0 auto;cursor:grab;touch-action:pan-y;outline:none}
@media(max-width:820px){.bk3d{aspect-ratio:1.6/1}}
.bk3d canvas{display:block;width:100%;height:100%}
.bk-hint{position:absolute;left:50%;bottom:-4%;transform:translateX(-50%);font-size:11.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--mute);transition:opacity .6s}
.bk3d.open .bk-hint{opacity:0}
.bk-nav{display:flex;justify-content:center;align-items:center;gap:24px;margin-top:34px}
.bk-nav button{font:inherit;background:none;border:1px solid var(--line);border-radius:50%;width:44px;height:44px;cursor:pointer;color:var(--ink);transition:background .3s,color .3s}
.bk-nav button:hover{background:var(--ink);color:var(--bg)}

/* Projet suivant, pied */
.ps-next{position:relative;display:block;height:clamp(440px,86vh,900px);margin-top:var(--blk);overflow:hidden;color:#fff}
.ps-next-ph{position:absolute;inset:0}
.ps-next-ph img{width:100%;height:100%;object-fit:cover;transition:transform 1.6s var(--ease)}
.ps-next:hover .ps-next-ph img{transform:scale(1.04)}
.ps-next::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.15),rgba(0,0,0,.55))}
.ps-next-tx{position:absolute;z-index:2;left:var(--gut);right:var(--gut);bottom:clamp(28px,5vw,64px);display:flex;flex-direction:column;gap:12px}
.ps-next-tx strong{font-family:var(--serif);font-weight:300;font-size:clamp(44px,6.8vw,112px);line-height:.95;letter-spacing:-.02em}
.ps-foot{display:flex;justify-content:space-between;flex-wrap:wrap;gap:16px 28px;padding:24px var(--gut);color:var(--mute)}
.ps-foot a{border-bottom:1px solid transparent}.ps-foot a:hover{border-color:currentColor}

.rv{opacity:0;transform:translateY(28px);transition:opacity 1.4s var(--ease),transform 1.4s var(--ease)}
.rv.in{opacity:1;transform:none}
.no-js .rv{opacity:1;transform:none}
@media (max-width:1000px){
  :root{--gut:20px;--gap:14px;--blk:90px}
  .ps-intro{grid-template-columns:1fr}.ps-intro p{grid-column:1;max-width:520px}
  .ps-split{grid-template-columns:1fr;align-items:start}.ps-split .pf{max-width:60%}
  .ps-steps{grid-template-columns:1fr;margin-left:0}.ps-tech{margin-left:0}
  .ps-row3{grid-template-columns:1fr 1fr}.ps-row3 .pf:nth-child(3){grid-column:1/-1}
  .ps-pair,.ps-pair.rev{grid-template-columns:1fr}.ps-pair .pf .fr{height:auto;aspect-ratio:4/3}
  .ps-hero-pitch{display:none}.ps-hero-meta{flex-direction:column;gap:6px}
}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}.rv{opacity:1;transform:none}}
