:root{--navy:#111D2C;--ivory:#F0E8DB;--beige:#C9A96A}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Arial,Helvetica,sans-serif;background:var(--navy);color:var(--ivory)}header{position:fixed;z-index:50;top:0;left:0;right:0;display:flex;justify-content:flex-end;gap:36px;padding:26px 5vw;background:linear-gradient(#111d2ce8,#111d2c00);font-size:12px;letter-spacing:.15em}header a{color:var(--ivory);text-decoration:none}.talk{color:var(--beige)}.dark{background:var(--navy);color:var(--ivory)}.light{background:var(--ivory);color:var(--navy)}.narrow{width:min(960px,88vw);margin:auto}.hero{min-height:100vh;display:flex;align-items:center;padding:100px 6vw}.eyebrow,.label{font-size:12px;letter-spacing:.22em;color:var(--beige);font-weight:700}.hero h1,.statement h2,.meaning h2,.reveal h2,.looks h2,.cta h2{font-family:Georgia,serif;font-weight:400;line-height:1.08}.hero h1{font-size:clamp(44px,5.4vw,76px);margin:28px 0 42px}.hero .sub{font-family:Georgia,serif;font-size:clamp(20px,2vw,30px);line-height:1.45;max-width:850px}.triplet{font-size:clamp(12px,1.1vw,16px);letter-spacing:.16em}.triplet i{color:var(--beige);font-style:normal;margin:0 12px}.cinema{height:175vh;position:relative}.crossfade{height:205vh}.sticky-visual{height:100vh;position:sticky;top:0;display:flex;align-items:center;justify-content:center;overflow:hidden;padding:8vh 5vw}.visual-box{position:relative;width:min(1380px,90vw);height:84vh;display:flex;align-items:center;justify-content:center}.visual-box img{display:block;max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain}.crossfade .visual-box img{position:absolute;inset:0;margin:auto}.crossfade .before{opacity:1;z-index:1}.crossfade .after{opacity:0;z-index:2}.crossfade.play .before{animation:fadeOut 1.8s ease-in-out 1.2s forwards}.crossfade.play .after{animation:fadeIn 1.8s ease-in-out 1.2s forwards}@keyframes fadeOut{to{opacity:0}}@keyframes fadeIn{to{opacity:1}}.meaning{min-height:62vh;display:flex;align-items:center;padding:11vh 8vw 14vh}.meaning-inner{width:min(1120px,84vw);margin:auto}.meaning h2{font-size:clamp(32px,4vw,58px);margin:18px 0 0;max-width:930px}.meaning em,.reveal em,.looks em,.statement em{font-style:normal;color:var(--beige)}.statement,.reveal,.looks,.cta{min-height:82vh;display:flex;align-items:center;padding:110px 6vw}.statement h2,.reveal h2,.looks h2,.cta h2{font-size:clamp(34px,4vw,60px)}.statement p,.reveal p{margin-top:42px;font-size:clamp(18px,1.8vw,25px);line-height:1.6;max-width:880px}.statement strong,.reveal strong{color:var(--beige);font-weight:400}.looks a{display:grid;grid-template-columns:280px 1fr;gap:35px;padding:30px 0;border-top:1px solid #111d2c40;color:var(--navy);text-decoration:none;font-size:13px;letter-spacing:.08em}.looks a:last-child{border-bottom:1px solid #111d2c40}.looks span{font-family:Georgia,serif;font-size:20px;letter-spacing:0}.cta{text-align:center;min-height:75vh}.cta p{font-size:18px;margin:28px 0 42px}.button{display:inline-block;color:var(--beige);border:1px solid var(--beige);padding:18px 28px;text-decoration:none;letter-spacing:.13em;font-size:13px}.steps{margin-top:42px;display:grid;gap:18px}.steps div{padding:22px 0;border-top:1px solid currentColor;font-family:Georgia,serif;font-size:clamp(20px,2vw,28px)}.steps b{color:var(--beige);font-family:Arial,sans-serif;font-size:11px;letter-spacing:.16em;margin-right:20px}.quote{font-family:Georgia,serif;font-style:italic;opacity:.8;margin-top:50px}.role-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;margin:36px 0}.role-grid button{background:transparent;border:1px solid #c9a96a;color:var(--ivory);padding:18px;text-align:left;cursor:pointer}.role-grid button:hover,.role-grid button.active{background:#c9a96a;color:#111d2c}.small{font-size:14px;opacity:.75;line-height:1.6}
@media(max-width:700px){header{padding:20px;gap:24px}.hero{padding:100px 20px}.hero h1{font-size:42px}.triplet{font-size:10px;line-height:2;letter-spacing:.11em}.cinema{height:145vh}.crossfade{height:175vh}.sticky-visual{padding:74px 20px 40px}.visual-box{width:100%;height:78vh}.meaning{min-height:52vh;padding:90px 20px 110px}.meaning-inner{width:100%}.meaning h2{font-size:31px}.statement,.reveal,.looks,.cta{min-height:auto;padding:120px 20px}.statement h2,.reveal h2,.looks h2,.cta h2{font-size:35px}.looks a{grid-template-columns:1fr;gap:10px;padding:26px 0}.looks span{font-size:18px;line-height:1.35}.role-grid{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.crossfade.play .before{animation:none;opacity:0}.crossfade.play .after{animation:none;opacity:1}}

/* V2.1 — pages profils : image signature seule et hiérarchie typographique plus calme */
.profile-page .hero h1{font-size:clamp(34px,4.15vw,60px);line-height:1.12;max-width:1050px}
.profile-page .hero{min-height:88vh}
.profile-page .meaning h2{font-size:clamp(28px,3.25vw,48px);line-height:1.16}
.profile-page .reveal h2,.profile-page .cta h2{font-size:clamp(30px,3.45vw,50px);line-height:1.15}
.profile-page .cinema{height:155vh}
@media(max-width:700px){.profile-page .hero{min-height:78vh}.profile-page .hero h1{font-size:34px;line-height:1.15}.profile-page .meaning h2{font-size:28px}.profile-page .reveal h2,.profile-page .cta h2{font-size:31px}.profile-page .cinema{height:135vh}}

/* V2.2 — poids visuel homogène des 3D sur les pages profils.
   Le Décalage est un portrait : on l'agrandit sans le recadrer. */
.profile-page .cinema:first-of-type .visual-box{width:min(1380px,94vw);height:90vh}
.profile-page .cinema:first-of-type .visual-box img{max-height:90vh;max-width:94vw}
@media(max-width:700px){
  .profile-page .cinema:first-of-type .visual-box{width:100%;height:82vh}
  .profile-page .cinema:first-of-type .visual-box img{max-height:82vh;max-width:100%}
}

/* Accueil : attendu -> réel. Le visiteur déclenche le plan en y entrant ;
   le fondu se déroule ensuite tout seul, sans dépendre de la molette. */
.crossfade.play .before{animation:fadeOut 2.2s cubic-bezier(.45,0,.55,1) .9s forwards}
.crossfade.play .after{animation:fadeIn 2.2s cubic-bezier(.45,0,.55,1) .9s forwards}

/* V2.3 — derniers réglages perceptifs : tempo Décalage + présence de la balançoire */
/* Le plan attendu a davantage de temps pour être regardé avant la bascule. */
.crossfade{height:225vh}
.crossfade .visual-box{width:min(1500px,96vw);height:94vh}
.crossfade .visual-box img{max-height:94vh;max-width:96vw}
.crossfade.play .before{animation:fadeOut 3.2s cubic-bezier(.45,0,.55,1) 1.8s forwards}
.crossfade.play .after{animation:fadeIn 3.2s cubic-bezier(.45,0,.55,1) 1.8s forwards}

/* Pages profils : le Décalage utilise toute la hauteur disponible sans recadrage. */
.profile-page .cinema:first-of-type .sticky-visual{padding-top:3vh;padding-bottom:3vh}
.profile-page .cinema:first-of-type .visual-box{width:min(1500px,96vw);height:94vh}
.profile-page .cinema:first-of-type .visual-box img{max-height:94vh;max-width:96vw}

@media(max-width:700px){
  .crossfade{height:190vh}
  .crossfade .visual-box{width:100%;height:84vh}
  .crossfade .visual-box img{max-height:84vh;max-width:100%}
  .crossfade.play .before{animation-duration:3s;animation-delay:1.5s}
  .crossfade.play .after{animation-duration:3s;animation-delay:1.5s}
  .profile-page .cinema:first-of-type .sticky-visual{padding-top:68px;padding-bottom:24px}
  .profile-page .cinema:first-of-type .visual-box{width:100%;height:84vh}
  .profile-page .cinema:first-of-type .visual-box img{max-height:84vh;max-width:100%}
}

/* V2.6 — finition responsive technique. Aucun contenu ni parti pris éditorial modifié. */
img{max-width:100%}
header{padding-left:max(20px,5vw);padding-right:max(20px,5vw)}
.button{min-height:48px;display:inline-flex;align-items:center;justify-content:center}

/* Tablettes et petits portables */
@media (min-width:701px) and (max-width:1100px){
  header{padding-top:22px;padding-bottom:22px;gap:30px}
  .narrow{width:min(880px,86vw)}
  .hero{min-height:92svh;padding:110px 7vw 80px}
  .hero h1{font-size:clamp(42px,6.2vw,62px)}
  .profile-page .hero h1{font-size:clamp(36px,5vw,52px)}
  .cinema{height:155vh}
  .crossfade{height:205vh}
  .sticky-visual{height:100svh;padding:8svh 4vw}
  .visual-box{width:94vw;height:82svh}
  .crossfade .visual-box{width:96vw;height:88svh}
  .meaning{min-height:58svh;padding:10svh 7vw 12svh}
  .meaning-inner{width:min(900px,86vw)}
  .meaning h2{font-size:clamp(31px,4.8vw,48px)}
  .statement,.reveal,.looks,.cta{padding-left:7vw;padding-right:7vw}
  .looks a{grid-template-columns:minmax(190px,240px) 1fr;gap:28px}
}

/* Téléphones */
@media(max-width:700px){
  html{-webkit-text-size-adjust:100%}
  body{overflow-x:hidden}
  header{height:64px;align-items:center;padding:0 20px;gap:20px;background:linear-gradient(#111d2cf5,#111d2cb8 68%,#111d2c00);font-size:10px;letter-spacing:.12em}
  header a{white-space:nowrap}
  .narrow{width:100%;margin:0}
  .hero{min-height:100svh;padding:104px 20px 72px;align-items:center}
  .hero h1{font-size:clamp(36px,10.5vw,44px);line-height:1.08;margin:24px 0 34px}
  .hero .sub{font-size:20px;line-height:1.48}
  .eyebrow,.label{font-size:10px;letter-spacing:.18em;line-height:1.5}
  .triplet{font-size:9px;line-height:2.1;letter-spacing:.08em}
  .triplet i{margin:0 6px}

  /* Les photos restent intégrales : jamais de cover, jamais de crop. */
  .cinema,.profile-page .cinema{height:135svh}
  .crossfade{height:180svh}
  .sticky-visual{height:100svh;padding:76px 16px 28px;overflow:hidden}
  .visual-box,.profile-page .cinema:first-of-type .visual-box,.crossfade .visual-box{width:100%;height:calc(100svh - 112px)}
  .visual-box img,.profile-page .cinema:first-of-type .visual-box img,.crossfade .visual-box img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain}
  .profile-page .cinema:first-of-type .sticky-visual{padding:76px 10px 24px}

  .meaning{min-height:50svh;padding:82px 20px 96px}
  .meaning-inner{width:100%}
  .meaning h2,.profile-page .meaning h2{font-size:clamp(27px,8vw,32px);line-height:1.17;margin-top:16px}
  .statement,.reveal,.looks,.cta{min-height:auto;padding:96px 20px}
  .statement h2,.reveal h2,.looks h2,.cta h2,.profile-page .reveal h2,.profile-page .cta h2{font-size:clamp(30px,8.7vw,36px);line-height:1.12}
  .statement p,.reveal p{font-size:18px;line-height:1.55;margin-top:32px}
  .steps{margin-top:34px;gap:0}
  .steps div{font-size:21px;line-height:1.35;padding:20px 0}
  .steps b{display:block;margin:0 0 8px;font-size:10px}
  .looks a{grid-template-columns:1fr;gap:8px;padding:25px 0;font-size:10px;line-height:1.4}
  .looks span{font-size:18px;line-height:1.35}
  .cta{text-align:left}
  .cta p{font-size:17px;line-height:1.5;margin:24px 0 34px}
  .button{width:100%;padding:17px 18px;font-size:11px;text-align:center}
  .quote{font-size:18px;line-height:1.5;margin-top:0}

  .profile-page .hero{min-height:88svh;padding-top:104px;padding-bottom:72px}
  .profile-page .hero h1{font-size:clamp(32px,9vw,38px);line-height:1.14}

  /* Tempo du film conservé mais adapté au petit écran. */
  .crossfade.play .before{animation-duration:3s;animation-delay:1.65s}
  .crossfade.play .after{animation-duration:3s;animation-delay:1.65s}
}

/* Très petits téléphones */
@media(max-width:380px){
  header{padding-left:16px;padding-right:16px;gap:14px;font-size:9px}
  .hero,.meaning,.statement,.reveal,.looks,.cta{padding-left:16px;padding-right:16px}
  .hero h1{font-size:34px}
  .profile-page .hero h1{font-size:31px}
  .meaning h2,.profile-page .meaning h2{font-size:27px}
  .statement h2,.reveal h2,.looks h2,.cta h2,.profile-page .reveal h2,.profile-page .cta h2{font-size:29px}
}

/* Paysage mobile : éviter que le header et la photo se disputent la hauteur. */
@media(max-width:900px) and (orientation:landscape) and (max-height:520px){
  header{height:52px;padding-top:0;padding-bottom:0}
  .hero{min-height:100svh;padding-top:72px;padding-bottom:38px}
  .hero h1,.profile-page .hero h1{font-size:clamp(30px,6vw,42px);margin:16px 0 22px}
  .cinema,.profile-page .cinema{height:145svh}
  .crossfade{height:185svh}
  .sticky-visual{height:100svh;padding:58px 16px 12px}
  .visual-box,.profile-page .cinema:first-of-type .visual-box,.crossfade .visual-box{height:calc(100svh - 70px)}
}


/* V2.7 — Footer discret et pages légales */
.site-footer{background:#0f1b2a;color:#eee7db;border-top:1px solid rgba(238,231,219,.14);padding:24px 6vw;font-size:11px;letter-spacing:.08em}
.footer-inner{width:min(1180px,88vw);margin:0 auto;display:flex;justify-content:space-between;align-items:center;gap:24px}
.site-footer nav{display:flex;gap:24px}.site-footer a{color:inherit;text-decoration:none;opacity:.78}.site-footer a:hover{opacity:1}
.legal-page{background:#f0eadf;color:#142131}.legal-main{padding:140px 7vw 100px}.legal-wrap{width:min(880px,86vw);margin:0 auto}.legal-page h1{font-size:clamp(44px,6vw,72px);line-height:1.02;margin:22px 0 58px;font-weight:500}.legal-page section{padding:32px 0;border-top:1px solid rgba(20,33,49,.18)}.legal-page h2{font-size:20px;line-height:1.3;margin:0 0 16px;font-weight:600}.legal-page p{font-size:16px;line-height:1.7;margin:0 0 14px;max-width:78ch}.legal-page a{color:inherit;text-underline-offset:3px}.legal-lead{font-size:20px!important;line-height:1.55!important;margin-bottom:48px!important}
@media(max-width:700px){.site-footer{padding:24px 20px}.footer-inner{width:100%;display:block}.site-footer nav{margin-top:14px;gap:18px;flex-wrap:wrap}.legal-main{padding:110px 20px 72px}.legal-wrap{width:100%}.legal-page h1{font-size:40px;margin-bottom:42px}.legal-page section{padding:26px 0}.legal-page p{font-size:15px}.legal-lead{font-size:18px!important}}
