/* Accueil — direction artistique « noir profond, grande serif capitale, mouvement lent »
   (inspirée du site de référence : préchargeur à compteur, bandeau défilant, indicateur Scroll à losange) */
:root{--d0:#0e0b0c;--d1:#151012;--d2:#1c1517}
body.is-home{background:var(--d0);color:var(--ivory)}

/* ---------- En-tête superposé ---------- */
.is-home .site-header{position:fixed;left:0;right:0;top:0;background:transparent;border-bottom:1px solid transparent;-webkit-backdrop-filter:none;backdrop-filter:none;transition:transform .55s cubic-bezier(.2,.7,.2,1),background-color .4s,border-color .4s}
.is-home .site-header.solid{background:rgba(14,11,12,.84);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-color:rgba(247,243,237,.1)}
.is-home .site-header.hide{transform:translateY(-101%)}
.is-home .logo{color:#fff}
.is-home .nav a.top,.is-home .nav button.sub-toggle{color:rgba(247,243,237,.86)}
.is-home .nav a.top[aria-current]{color:var(--gold)}
.is-home .nav a.top::after{background:var(--gold)}
.is-home .menu-btn{color:#fff;border-color:rgba(247,243,237,.45)}
.is-home .mobile{background:var(--d0);border-top-color:rgba(247,243,237,.12)}
.is-home .mobile a{color:#fff;border-bottom-color:rgba(247,243,237,.12)}
.is-home .mobile a[aria-current]{color:var(--gold)}
.is-home .mobile ul ul a{color:rgba(247,243,237,.7)}
.is-home .skip{z-index:400}

/* ---------- Préchargeur ---------- */
#preloader{display:none}
html.preload,html.preload body{overflow:hidden}
html.preload #preloader{display:block;position:fixed;inset:0;z-index:300;background:var(--d0);color:var(--ivory);transition:transform 1s cubic-bezier(.76,0,.24,1);will-change:transform}
#preloader.pl-out{transform:translateY(-100%)}
#preloader .pl-bg{position:absolute;inset:0;filter:blur(var(--blur,26px));transform:scale(1.08);opacity:.9}
#preloader .pl-top{position:absolute;left:var(--gutter);top:clamp(22px,4vw,40px);font-family:var(--serif);font-size:1.5rem;font-weight:600}
#preloader .pl-top sup{font-family:var(--sans);font-size:.5em;color:var(--gold)}
#preloader .pl-bot{position:absolute;left:var(--gutter);right:var(--gutter);bottom:clamp(20px,4vw,44px);display:flex;align-items:flex-end;justify-content:space-between;gap:20px}
#preloader .pl-tag{font-size:.8rem;letter-spacing:.2em;text-transform:uppercase;color:rgba(247,243,237,.75);padding-bottom:1.2rem}
#preloader .pl-count{font-family:var(--serif);font-weight:500;line-height:.8;font-size:clamp(5rem,16vw,13rem);display:flex;align-items:flex-start;font-variant-numeric:tabular-nums}
#preloader .pl-count small{font-size:.28em;color:var(--gold);margin:.35em 0 0 .1em}

/* ---------- Avenue : perspective de lignes vers l'horizon ---------- */
.avenue{position:absolute;inset:0;z-index:0;overflow:hidden;background:radial-gradient(60% 55% at 50% 40%,rgba(217,190,147,.13),transparent 70%),radial-gradient(110% 70% at 50% 105%,rgba(94,26,46,.7),transparent 70%),var(--d0)}
.avenue .glow{position:absolute;left:calc(50% + var(--gx,0px));top:36%;width:min(54vw,620px);aspect-ratio:1;transform:translate(-50%,-50%);border-radius:50%;background:radial-gradient(circle,rgba(247,226,190,.34),rgba(217,190,147,.1) 38%,transparent 68%);filter:blur(10px);animation:breathe 7s ease-in-out infinite}
.avenue .plane{position:absolute;left:0;right:0;top:36%;bottom:-30%;perspective:520px;perspective-origin:50% 0;overflow:hidden;transform:translate3d(0,calc(var(--sy,0)*.12px),0);-webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 22%,#000 70%,transparent 100%);mask-image:linear-gradient(to bottom,transparent 0,#000 22%,#000 70%,transparent 100%)}
.avenue .grid{position:absolute;left:-60%;right:-60%;top:0;height:260%;transform-origin:50% 0;transform:rotateX(74deg);background-image:repeating-linear-gradient(90deg,rgba(217,190,147,.5) 0 1px,transparent 1px 110px),repeating-linear-gradient(0deg,rgba(217,190,147,.34) 0 1px,transparent 1px 110px);background-position:0 0,0 0;animation:roll 5.5s linear infinite}
.avenue .vignette{position:absolute;inset:0;background:radial-gradient(120% 90% at 50% 50%,transparent 45%,rgba(14,11,12,.85) 100%)}
@keyframes roll{to{background-position:0 0,0 110px}}
@keyframes breathe{0%,100%{opacity:.85;transform:translate(-50%,-50%) scale(1)}50%{opacity:1;transform:translate(-50%,-50%) scale(1.08)}}

/* ---------- Hero ---------- */
.h-hero{position:relative;min-height:100vh;min-height:100svh;display:flex;align-items:flex-end;overflow:hidden;isolation:isolate;background:var(--d0)}
.h-hero-in{position:relative;z-index:2;padding-top:clamp(120px,16vh,170px);padding-bottom:clamp(56px,9vh,88px)}
.h-hero-grid{display:grid;gap:24px 56px;grid-template-columns:1fr;align-items:end}
@media(min-width:1100px){.h-hero-grid{grid-template-columns:minmax(0,8fr) minmax(0,4fr)}}
.h-kicker{font-size:.78rem;letter-spacing:.22em;text-transform:uppercase;color:var(--gold);margin:0 0 clamp(14px,2vw,24px);font-weight:500}
.disp{font-family:var(--serif);font-weight:500;text-transform:uppercase;letter-spacing:.004em;line-height:1;font-size:clamp(2.35rem,6.3vw,6.1rem);color:#fff;text-wrap:balance}
.disp-m{font-family:var(--serif);font-weight:500;line-height:1.08;font-size:clamp(1.8rem,3.8vw,3.3rem);letter-spacing:-.005em;text-wrap:balance}
.disp .w{display:inline-block;overflow:hidden;vertical-align:top;padding:.14em .02em .02em;margin:-.14em -.02em -.02em}
.disp .w i{display:inline-block;font-style:normal}
.h-lead{font-size:clamp(.98rem,1.15vw,1.1rem);line-height:1.7;color:rgba(247,243,237,.78);margin:0;max-width:52ch}

.js:not(.ready) .disp .w i{transform:translateY(112%)}
.disp .w i{transition:transform 1.15s cubic-bezier(.16,.84,.24,1);transition-delay:var(--d,0ms)}
.js:not(.ready) .h-fade{opacity:0;transform:translateY(18px)}
.h-fade{transition:opacity 1s ease,transform 1s cubic-bezier(.16,.84,.24,1);transition-delay:var(--d,0ms)}

/* Portes */
.h-doors{display:grid;gap:clamp(12px,1.6vw,20px);grid-template-columns:1fr;margin-top:clamp(28px,4.5vh,52px)}
@media(min-width:760px){.h-doors{grid-template-columns:1fr 1fr}}
.h-door{position:relative;display:flex;flex-direction:column;align-items:center;text-align:center;padding:clamp(26px,3vw,38px) clamp(22px,3vw,40px) clamp(22px,2.4vw,30px);border-radius:clamp(70px,9vw,140px) clamp(70px,9vw,140px) 12px 12px;text-decoration:none;border:1px solid rgba(217,190,147,.38);overflow:hidden;isolation:isolate;transition:transform .45s cubic-bezier(.2,.7,.2,1),border-color .4s,box-shadow .4s}
.h-door::before{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(420px circle at var(--x,50%) var(--y,0%),rgba(217,190,147,.22),transparent 60%);opacity:0;transition:opacity .4s}
.h-door:hover{transform:translateY(-5px);border-color:var(--gold);box-shadow:0 30px 60px rgba(0,0,0,.45)}
.h-door:hover::before{opacity:1}
.h-door-co{background:var(--ivory);color:var(--ink)}
.h-door-co::before{background:radial-gradient(420px circle at var(--x,50%) var(--y,0%),rgba(94,26,46,.14),transparent 60%)}
.h-door-ta{background:rgba(58,16,29,.78);color:var(--ivory);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
.h-door h2{font-size:clamp(1.55rem,2.3vw,2.1rem);margin-bottom:8px}
.h-door .tag{font-family:var(--serif);font-size:clamp(1.12rem,1.5vw,1.3rem);line-height:1.25;margin-bottom:10px;max-width:30ch}
.h-door-co .tag{color:var(--bordeaux)}
.h-door-ta .tag{color:var(--gold)}
.h-door p{font-size:.95rem;line-height:1.55;max-width:42ch;margin-bottom:0}
.h-door-co p:not(.tag){color:var(--muted)}
.h-door-ta p:not(.tag){color:rgba(247,243,237,.8)}
.h-door .go{margin-top:auto;padding-top:18px}
.h-door .go>span{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:0 22px;border-radius:6px;font-weight:500;text-align:center;transition:gap .3s}
.h-door:hover .go>span{gap:14px}
.h-door-co .go>span{background:var(--bordeaux);color:#fff}
.h-door-ta .go>span{background:var(--gold);color:var(--bordeaux-deep)}
.h-door svg{width:18px;height:18px;flex:none}
@media(max-width:759px){
  .h-hero-grid{display:flex;flex-direction:column}
  .h-lead{order:3;margin-top:0}
  .h-doors{order:2;margin-top:22px;margin-bottom:22px}
  .h-hero-in{display:flex;flex-direction:column}
  .h-hero-in .h-doors{order:2}.h-hero-in .h-hero-grid{display:contents}
  .h-hero-head{order:1}.h-lead{order:3}
  .h-door{border-radius:64px 64px 12px 12px;padding:22px 20px}
  .h-door .go,.h-door .go>span{width:100%}
}

/* Indicateur Scroll */
.h-scroll{position:absolute;z-index:3;right:var(--gutter);bottom:clamp(14px,3vh,28px);display:none;align-items:center;gap:10px;font-family:var(--serif);font-size:.95rem;letter-spacing:.12em;text-transform:uppercase;color:rgba(247,243,237,.85);transition:opacity .4s}
@media(min-width:1100px){.h-scroll{display:flex}}
.h-scroll.gone{opacity:0}
.dia{display:inline-block;width:10px;height:10px;background:var(--gold);transform:rotate(45deg);animation:beat 1.6s cubic-bezier(.37,0,.63,1) infinite}
@keyframes beat{0%,100%{transform:rotate(45deg) translate(0,0)}50%{transform:rotate(45deg) translate(5px,5px)}}

/* ---------- Bandeau défilant ---------- */
.h-marquee{overflow:hidden;background:var(--d0);border-block:1px solid rgba(247,243,237,.14);padding:clamp(18px,2.4vw,28px) 0;position:relative;z-index:3}
.h-track{display:flex;width:max-content;animation:mq 46s linear infinite}
.h-marquee:hover .h-track{animation-play-state:paused}
.h-track .grp{display:flex;flex:none}
.h-track span{display:flex;align-items:center;gap:clamp(26px,3.2vw,52px);padding-right:clamp(26px,3.2vw,52px);font-family:var(--serif);font-size:clamp(1.5rem,3.2vw,2.7rem);text-transform:uppercase;white-space:nowrap;color:rgba(247,243,237,.92)}
.h-track span::after{content:"";width:9px;height:9px;background:var(--gold);transform:rotate(45deg);flex:none}
@keyframes mq{to{transform:translateX(-50%)}}

/* ---------- Sections ---------- */
.h-sec{position:relative;padding-block:clamp(72px,11vw,160px)}
.h-dark{background:var(--d0);color:var(--ivory)}
.h-light{background:#efe9df;color:var(--ink)}
.h-head{display:grid;gap:20px 64px;grid-template-columns:1fr;margin-bottom:clamp(36px,6vw,72px);align-items:end}
@media(min-width:1000px){.h-head{grid-template-columns:7fr 5fr}}
.h-head p{margin:0;font-size:clamp(1rem,1.2vw,1.12rem);line-height:1.7}
.h-dark .h-head p{color:rgba(247,243,237,.78)}
.h-light .h-head p{color:var(--muted)}
.h-light .disp-m{color:var(--bordeaux-deep)}

/* Révélations au scroll (activées seulement quand home.js tourne) */
html.anim .rv{opacity:0;transform:translateY(28px);transition:opacity .95s ease,transform .95s cubic-bezier(.16,.84,.24,1);transition-delay:var(--d,0ms)}
html.anim .rv.in{opacity:1;transform:none}

/* Déclaration à mots révélés */
.h-statement .disp-m{max-width:20ch;margin-bottom:clamp(28px,4vw,48px);color:var(--gold)}
.scrub{font-family:var(--serif);font-size:clamp(1.35rem,2.5vw,2.25rem);line-height:1.38;max-width:40ch;margin:0;color:#fff}
@media(min-width:1000px){.scrub{max-width:46ch}}
html.anim .scrub .sw{opacity:.2;transition:opacity .5s ease}
html.anim .scrub .sw.on{opacity:1}

/* Lignes interactives */
.h-rows{border-top:1px solid rgba(35,31,32,.22)}
.h-row{position:relative;display:grid;grid-template-columns:1fr;gap:6px 40px;align-items:center;padding:clamp(22px,2.6vw,34px) clamp(4px,1vw,16px);border-bottom:1px solid rgba(35,31,32,.22);text-decoration:none;color:var(--ink);isolation:isolate;overflow:hidden}
@media(min-width:900px){.h-row{grid-template-columns:5fr 5fr 48px}}
.h-row::before{content:"";position:absolute;inset:0;z-index:-1;background:var(--bordeaux);transform:scaleY(0);transform-origin:bottom;transition:transform .55s cubic-bezier(.76,0,.24,1)}
.h-row:hover::before,.h-row:focus-visible::before{transform:scaleY(1)}
.h-row .t{font-family:var(--serif);font-size:clamp(1.3rem,2.1vw,1.85rem);line-height:1.2;transition:color .4s,transform .5s cubic-bezier(.2,.7,.2,1)}
.h-row-lg .t{font-size:clamp(1.55rem,2.8vw,2.5rem)}
.h-row .d{color:var(--muted);font-size:1rem;line-height:1.6;transition:color .4s}
.h-row .ar{display:none;width:44px;height:44px;border:1px solid currentColor;border-radius:50%;align-items:center;justify-content:center;transition:transform .4s,background .4s,color .4s;color:var(--bordeaux)}
@media(min-width:900px){.h-row .ar{display:flex}}
.h-row .ar svg{width:18px;height:18px}
.h-row:hover .t,.h-row:focus-visible .t{color:#fff;transform:translateX(10px)}
.h-row:hover .d,.h-row:focus-visible .d{color:rgba(247,243,237,.85)}
.h-row:hover .ar,.h-row:focus-visible .ar{background:var(--gold);color:var(--bordeaux-deep);border-color:var(--gold);transform:rotate(-45deg)}
.h-note{max-width:62ch;margin:clamp(32px,5vw,56px) 0 0;color:var(--muted);font-size:1.05rem;line-height:1.75}

/* Étapes avec ligne de progression */
.h-steps{list-style:none;counter-reset:hs;display:grid;gap:0;grid-template-columns:1fr;position:relative;--p:0;padding-left:34px}
@media(min-width:900px){.h-steps{grid-template-columns:repeat(4,1fr);padding-left:0;padding-top:34px}}
.h-steps::before,.h-steps::after{content:"";position:absolute;background:rgba(247,243,237,.2)}
.h-steps::after{background:var(--gold);transform-origin:top left}
.h-steps::before,.h-steps::after{left:6px;top:0;bottom:0;width:1px}
.h-steps::after{transform:scaleY(var(--p))}
@media(min-width:900px){.h-steps::before,.h-steps::after{left:0;right:0;top:0;bottom:auto;width:auto;height:1px}.h-steps::after{transform:scaleX(var(--p))}}
.h-steps li{counter-increment:hs;position:relative;padding:0 0 clamp(28px,4vw,40px);}
@media(min-width:900px){.h-steps li{padding:0 28px 0 0}}
.h-steps li::after{content:"";position:absolute;left:-34px;top:.5em;width:11px;height:11px;background:var(--d0);border:1px solid var(--gold);transform:rotate(45deg) translate(0,0);margin-left:1px}
@media(min-width:900px){.h-steps li::after{left:0;top:-39px;margin-left:0}}
.h-steps li::before{content:counter(hs,decimal-leading-zero);display:block;font-family:var(--serif);font-size:clamp(3.4rem,6vw,5.4rem);line-height:1;color:transparent;-webkit-text-stroke:1px rgba(217,190,147,.85);margin-bottom:14px}
.h-steps strong{display:block;font-family:var(--serif);font-weight:500;font-size:clamp(1.5rem,2.2vw,1.9rem);text-transform:uppercase;color:#fff;margin-bottom:8px}
.h-steps span{color:rgba(247,243,237,.78);display:block;max-width:34ch}

/* Final */
.h-finale{overflow:hidden;text-align:left;padding-block:clamp(96px,14vw,200px)}
.h-finale-bg{position:absolute;inset:0;background:radial-gradient(70% 90% at 80% 20%,rgba(94,26,46,.8),transparent 70%),radial-gradient(50% 60% at 10% 100%,rgba(217,190,147,.12),transparent 70%);animation:drift 14s ease-in-out infinite alternate}
@keyframes drift{to{transform:translate3d(-3%,2%,0) scale(1.06)}}
.h-finale .wrap{position:relative}
.h-finale .disp{max-width:16ch;margin-bottom:clamp(20px,3vw,36px)}
.h-finale-p{max-width:52ch;color:rgba(247,243,237,.82);font-size:clamp(1.05rem,1.4vw,1.2rem);margin-bottom:clamp(28px,4vw,44px)}
.btn-xl{min-height:64px;padding:0 40px;font-size:1.08rem;border-radius:999px}
.mag{transition:transform .35s cubic-bezier(.2,.7,.2,1),background-color .25s}
.is-home .site-footer{background:#0a0809;border-top:1px solid rgba(247,243,237,.1)}
.is-home .cta-band{display:none}

@media(prefers-reduced-motion:reduce){
  .avenue .grid,.avenue .glow,.h-track,.dia,.h-finale-bg{animation:none!important}
  html.anim .rv,html.anim .scrub .sw{opacity:1!important;transform:none!important}
}
