/* ═══════════════════════════════════════════════════════════
   L'Atmosphère · couche animation + lisibilité
   Inspirée de symphonyofvines.unseen.co (vigne, révélations en
   douceur, parallaxe) et ribbit.dk (bandeaux défilants, boutons
   magnétiques, rythme). Chargée après le CSS principal.
   ═══════════════════════════════════════════════════════════ */

/* ── LISIBILITÉ ────────────────────────────────────────────── */
:root{--muted:#B0A797;--texte:#D6CDBC;--rouge-txt:#E08B97}
html{scroll-padding-top:72px}
.prose{font-size:17px;line-height:1.9}
.hdg{line-height:1.1}
.hdg-s{line-height:1}
.lbl,.h-over,.sp-tag,.hslbl,.poeme-author,.poeme-source,.hnum-l,.ci-l,.vc-c,.tab,.vt,.nbook,.badge-lim,.fnav a,.fd label,.fl label{font-size:12px}
.item-nm{font-size:24px}
.item-ds,.cti-d,.vi-d,.vc-d{font-size:14.5px;color:var(--muted)}
.vi-n{font-size:16px;color:rgba(255,255,255,0.92)}
.ac-b{font-size:17px}
.fcopy,.flegal a,.flegal button,.fevin{font-size:13px}
.h-over{text-shadow:0 1px 14px rgba(0,0,0,0.8)}
.h-poem{color:rgba(255,255,255,0.94);text-shadow:0 2px 20px rgba(0,0,0,0.75)}
.hcont::before{content:'';position:absolute;inset:-10% -6%;z-index:-1;pointer-events:none;background:radial-gradient(closest-side,rgba(8,6,5,0.55),transparent)}
.poeme-body{color:rgba(255,255,255,0.88)}
.tab,.vt{min-height:44px}

/* ── HÉRO : halo qui suit le curseur + parallaxe douce ─────── */
.hglow{position:absolute;inset:0;pointer-events:none;z-index:1;mix-blend-mode:screen;opacity:0;transition:opacity 0.8s;background:radial-gradient(520px circle at var(--gx,50%) var(--gy,50%),rgba(226,192,122,0.2),transparent 62%)}
#hero:hover .hglow{opacity:1}
.hcont{transition:transform 0.5s cubic-bezier(0.2,0.7,0.2,1);will-change:transform}
.ptcl{width:2px;height:2px;box-shadow:0 0 8px 1px rgba(226,192,122,0.5)}
.h-title{text-shadow:0 0 80px rgba(196,163,90,0.18),0 4px 40px rgba(0,0,0,0.55)}
.h-title.glint .char{animation:glint 1.6s ease-in-out 1}
@keyframes glint{0%,100%{color:#fff}45%{color:var(--or2);text-shadow:0 0 28px rgba(226,192,122,0.7)}}
.h-cta{animation:hA 0.9s 1.2s ease forwards,ctaPulse 3.2s 3s ease-in-out infinite}
@keyframes ctaPulse{0%,100%{box-shadow:0 0 0 0 rgba(124,27,40,0.55)}50%{box-shadow:0 0 0 14px rgba(124,27,40,0)}}

/* ── BANDEAU DÉFILANT (façon Ribbit) ───────────────────────── */
.mq{overflow:hidden;padding:28px 0;border-top:1px solid var(--or-dim);border-bottom:1px solid var(--or-dim);background:var(--noir3);white-space:nowrap;user-select:none}
.mq-track{display:inline-flex;will-change:transform}
.mq-grp{display:inline-flex;align-items:center;flex-shrink:0}
.mq-it{font-family:'Bodoni Moda',serif;font-style:italic;font-size:clamp(28px,4.6vw,58px);line-height:1.2;color:rgba(255,255,255,0.92);padding:0 0.45em}
.mq-it:nth-child(4n+3){color:transparent;-webkit-text-stroke:1px var(--or)}
.mq-st{display:inline-block;width:11px;height:11px;margin:0 0.7em;border:1px solid var(--or);transform:rotate(45deg);font-size:0;flex-shrink:0;transition:background 0.4s}

.mq:hover .mq-st{background:var(--or)}

/* ── TITRES : rideau qui se lève, filet qui se dessine ─────── */
.hdg.rv>*,.hdg-s.rv>*{display:inline-block;clip-path:inset(-30% 100% -30% -5%);transition:clip-path 1.3s 0.15s cubic-bezier(0.65,0,0.2,1)}
.hdg.rv.on>*,.hdg-s.rv.on>*{clip-path:inset(-30% -10% -30% -5%)}
.lbl{position:relative}
.lbl.rv::after{content:'';display:inline-block;width:0;height:1px;background:var(--or);opacity:0.6;vertical-align:middle;margin-left:14px;transition:width 1.2s 0.5s ease}
.lbl.rv.on::after{width:56px}
.chd .lbl.rv::before{content:'';display:inline-block;width:0;height:1px;background:var(--or);opacity:0.6;vertical-align:middle;margin-right:14px;transition:width 1.2s 0.5s ease}
.chd .lbl.rv.on::before{width:56px}

/* ── IMAGES : révélation en volet + profondeur ─────────────── */
.imr{clip-path:inset(100% 0 0 0);transition:clip-path 1.4s cubic-bezier(0.65,0,0.2,1)}
.imr.on,.rl.on .imr,.rr.on .imr{clip-path:inset(0 0 0 0)}
.cia.imr,.cib.imr{transition:clip-path 1.4s cubic-bezier(0.65,0,0.2,1),filter 0.7s}
.cib.imr{transition-delay:0.25s,0s}
.hpimg{scale:1.12;translate:0 var(--py,0px)}
.cib{translate:0 var(--py,0px)}
.cframe,.hframe{opacity:0;transition:opacity 1s 0.9s ease,transform 0.9s ease}
.on .cframe,.on.cimgs .cframe,.on .hframe{opacity:1}
.cimgs.on .cframe{opacity:1}

/* ── CARTES : apparition en cascade + halo de survol ───────── */
.tc.active .item,.vs.active .vi,.tc.active .vc{animation:itIn 0.7s cubic-bezier(0.2,0.7,0.2,1) both;animation-delay:calc(var(--i,0) * 70ms)}
@keyframes itIn{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
.ac,.vc,.hnum{position:relative}
.ac::before,.vc::before,.hnum::before{content:'';position:absolute;inset:0;pointer-events:none;opacity:0;transition:opacity 0.4s;background:radial-gradient(260px circle at var(--mx,50%) var(--my,50%),rgba(196,163,90,0.13),transparent 70%)}
.ac:hover::before,.vc:hover::before,.hnum:hover::before{opacity:1}
.ac-q{transition:transform 0.6s ease,opacity 0.6s}
.ac:hover .ac-q{transform:translateY(-4px) scale(1.15);opacity:0.22}
.rtg-stars{display:inline-block;background:linear-gradient(100deg,var(--or) 40%,#fff 50%,var(--or) 60%) 200% 0/250% 100%;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;animation:starShine 4.5s ease-in-out infinite}
@keyframes starShine{0%,60%{background-position:200% 0}100%{background-position:-100% 0}}

/* ── BOUTONS MAGNÉTIQUES ───────────────────────────────────── */
.mag{translate:var(--tx,0px) var(--ty,0px);transition:translate 0.35s cubic-bezier(0.2,0.7,0.2,1),background 0.3s,color 0.3s,border-color 0.3s,box-shadow 0.35s}

/* ── NAV : section active ──────────────────────────────────── */
.nlinks a.act{color:var(--or2)!important}
.nlinks a.act::after{right:0}

/* ── VIGNE QUI POUSSE (côté gauche, grand écran) ───────────── */
#vine{display:none;position:fixed;left:6px;top:0;width:44px;height:100vh;z-index:50;pointer-events:none;overflow:visible}
@media(min-width:1240px){#vine{display:block}}
#vine path.stem{fill:none;stroke:var(--or);stroke-width:1.2;stroke-linecap:round;opacity:0.55}
#vine .lf{fill:var(--or);opacity:0;transform-box:fill-box;transform-origin:50% 100%;transform:scale(0) rotate(var(--r,0deg));transition:opacity 0.6s,transform 0.9s cubic-bezier(0.34,1.56,0.64,1)}
#vine .lf.on{opacity:0.7;transform:scale(1) rotate(var(--r,0deg))}
#vine .gr{fill:var(--ral);opacity:0;transform:scale(0);transform-box:fill-box;transform-origin:center;transition:opacity 0.5s,transform 0.7s cubic-bezier(0.34,1.56,0.64,1)}
#vine .gr.on{opacity:0.9;transform:scale(1)}

/* ── RETOUR EN HAUT (anneau de progression) ────────────────── */
#totop{position:fixed;right:22px;bottom:24px;width:48px;height:48px;z-index:98;border:none;background:rgba(8,6,5,0.85);border-radius:50%;color:var(--or);cursor:pointer;opacity:0;visibility:hidden;transform:translateY(14px);transition:opacity 0.4s,transform 0.4s,visibility 0.4s,background 0.3s}
#totop.vis{opacity:1;visibility:visible;transform:none}
#totop:hover{background:var(--or);color:#000}
#totop svg{position:absolute;inset:0;width:100%;height:100%;transform:rotate(-90deg)}
#totop circle{fill:none;stroke-width:2}
#totop .bg{stroke:var(--or-dim)}
#totop .fg{stroke:var(--or);stroke-dasharray:125.7;stroke-dashoffset:125.7}
#totop .ar{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:18px;line-height:1}
@media(max-width:920px){#totop{right:14px;bottom:86px;width:42px;height:42px}}

/* ── SPLASH : sortie en rideau ─────────────────────────────── */
#splash{transition:opacity 0.6s ease,visibility 0.6s,clip-path 0.9s cubic-bezier(0.65,0,0.2,1)}
#splash.hide{clip-path:inset(0 0 100% 0)}

/* ── INVITATION AU SPECTACLE ───────────────────────────────── */
.spec{position:relative;overflow:hidden;min-height:78vh;display:flex;align-items:center;justify-content:center;text-align:center;padding:120px 24px;background:var(--noir)}
.spec-bg{position:absolute;inset:0}
.spec-bg span{position:absolute;inset:-5%;background-size:cover;background-position:center;opacity:0;filter:brightness(0.42) saturate(1.1);animation:specShow 24s infinite}
.spec-bg span:nth-child(2){animation-delay:6s}.spec-bg span:nth-child(3){animation-delay:12s}.spec-bg span:nth-child(4){animation-delay:18s}
@keyframes specShow{0%{opacity:0;transform:scale(1.05)}6%{opacity:1}25%{opacity:1}31%{opacity:0;transform:scale(1.2) translateX(-2%)}100%{opacity:0;transform:scale(1.2)}}
.spec::before{content:'';position:absolute;inset:0;z-index:1;background:radial-gradient(ellipse at 50% 50%,rgba(8,6,5,0.35),rgba(8,6,5,0.88) 85%),linear-gradient(to bottom,var(--noir),transparent 22%,transparent 78%,var(--noir2))}
.spec-in{position:relative;z-index:2;max-width:760px}
.spec .hdg-s{font-size:clamp(56px,10vw,130px);margin:6px 0 10px;text-shadow:0 4px 40px rgba(0,0,0,0.8)}
.spec-p{font-family:'Cormorant Garamond',serif;font-style:italic;font-size:clamp(19px,2vw,26px);line-height:1.6;color:rgba(255,255,255,0.93);text-shadow:0 2px 20px rgba(0,0,0,0.85);margin:0 auto 34px;max-width:620px}
.spec .cta-main{border-color:var(--or)}
/* ── Assiettes détourées flottantes (invitation) ── */
.spec-float{position:absolute;z-index:2;height:auto;pointer-events:none;filter:drop-shadow(0 34px 40px rgba(0,0,0,0.75));transform:translate3d(var(--sx,0px),var(--sy,0px),0);will-change:transform}
.spec-float.f1{width:clamp(130px,19vw,280px);left:6%;top:14%;animation:sfloat 7s ease-in-out infinite,sspin 70s linear infinite}
.spec-float.f2{width:clamp(150px,22vw,330px);right:5%;top:18%;animation:sfloat 8s -2s ease-in-out infinite,ssway 9s ease-in-out infinite}
.spec-float.f3{width:clamp(110px,16vw,240px);left:12%;bottom:8%;animation:sfloat 9s -4s ease-in-out infinite,ssway 11s -3s ease-in-out infinite reverse}
@keyframes sfloat{50%{translate:0 -20px}}
@keyframes sspin{to{rotate:360deg}}
@keyframes ssway{50%{rotate:7deg}}
@media(max-width:700px){.spec-float{opacity:0.5}.spec-float.f1{left:-6%}.spec-float.f2{right:-8%}.spec-float.f3{left:-4%}}

/* ── Passerelle site → spectacle ── */
.bridge{position:fixed;inset:0;z-index:100000;background:#000;display:flex;flex-direction:column;align-items:center;justify-content:center;clip-path:circle(0 at var(--bx,50%) var(--by,50%));animation:bridgeIn 1s cubic-bezier(0.65,0,0.2,1) forwards}
@keyframes bridgeIn{to{clip-path:circle(150% at var(--bx,50%) var(--by,50%))}}
.bridge img{width:92px;height:auto;margin-bottom:6px;opacity:0;animation:bridgeTx 0.5s 0.55s ease forwards}
.bridge span{font-family:'Pinyon Script',cursive;font-size:44px;color:#fff;opacity:0;animation:bridgeTx 0.5s 0.65s ease forwards}
@keyframes bridgeTx{to{opacity:1}}
.bridge i{position:absolute;left:var(--bx,50%);top:var(--by,50%);width:40px;height:40px;margin:-20px;border-radius:50%;border:1px solid var(--or);animation:bridgeRing 1.1s ease-out forwards}
@keyframes bridgeRing{to{transform:scale(60);opacity:0}}
/* ── AMBIANCES : lueurs bordeaux et or, même palette ───────── */
#vins{background:radial-gradient(ellipse 55% 40% at 8% 12%,rgba(124,27,40,0.18),transparent 70%),var(--noir2)}
#contact{background:radial-gradient(ellipse 50% 45% at 92% 8%,rgba(196,163,90,0.07),transparent 70%),var(--noir2)}

/* ── APERÇU PHOTO AU SURVOL DE LA CARTE ────────────────────── */
#pv{position:fixed;left:0;top:0;width:230px;z-index:90;pointer-events:none;opacity:0;transform:translate3d(0,0,0) scale(0.92) rotate(-2deg);transition:opacity 0.3s,scale 0.3s;border:1px solid var(--or-mid);padding:7px;background:var(--noir2);box-shadow:0 20px 50px rgba(0,0,0,0.6)}
#pv.on{opacity:1;scale:1}
#pv img{display:block;width:100%;aspect-ratio:4/5;object-fit:cover}
@media(max-width:920px){#pv{display:none}}

/* ── MOUVEMENT RÉDUIT : tout reste visible et statique ─────── */
@media(prefers-reduced-motion:reduce){
  .hdg.rv>*,.hdg-s.rv>*,.imr{clip-path:none!important}
  .mq-track{transform:none!important}
  .mq{white-space:normal;text-align:center}
  .h-cta,.mq-st,.rtg-stars{animation:none!important}
  .hpimg{scale:1;translate:none}
  .spec-bg span:first-child{opacity:1;animation:none}
  .spec-float,.bridge{animation:none!important}
  #vine{display:none!important}
}
