/* ====== Couche "wow" commune à toutes les pages ====== */

/* Transition entre les pages : rideau noir + logo */
#pt{position:fixed;inset:0;z-index:100;background:#0f0f0f;display:grid;place-items:center;pointer-events:none;transform:translateY(0);transition:transform .75s cubic-bezier(.77,0,.18,1)}
#pt img{width:200px;height:auto;object-fit:contain;opacity:0;transform:translateY(12px);transition:opacity .5s,transform .5s}
#pt:after{content:"";position:absolute;left:50%;top:calc(50% + 34px);width:0;height:1px;background:#8dc63f;transform:translateX(-50%);transition:width .6s cubic-bezier(.77,0,.18,1)}
body.pret #pt{transform:translateY(-100%)}
body.sortie #pt{transform:translateY(0);transition-duration:.55s}
body.sortie #pt img,body.intro #pt img{opacity:1;transform:none}
body.intro #pt:after{width:200px}

/* Barre de progression dorée */
#prog{position:fixed;top:0;left:0;height:2px;width:100%;background:#8dc63f;transform-origin:0 50%;transform:scaleX(0);z-index:30;pointer-events:none}

/* Grain de film, très léger */
body:after{content:"";position:fixed;inset:-50%;z-index:90;pointer-events:none;opacity:.05;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  animation:grain 1.2s steps(6) infinite}
@keyframes grain{0%{transform:translate(0,0)}20%{transform:translate(-3%,2%)}40%{transform:translate(2%,-3%)}60%{transform:translate(-2%,-1%)}80%{transform:translate(3%,3%)}100%{transform:translate(0,0)}}

/* Titres : chaque ligne monte derrière un masque */
.ln{display:block;overflow:hidden;padding-bottom:.06em;margin-bottom:-.06em}
.ln>span{display:inline-block;transform:translateY(110%);transition:transform 1.15s cubic-bezier(.19,1,.22,1)}
body.pret .ln>span{transform:none}
.ln em{display:inline!important}

/* Image d'en-tête : dévoilement latéral + léger dézoom */
.tete-img img,.hero-img img{clip-path:inset(0 0 0 100%);transform:scale(1.18);transition:clip-path 1.5s cubic-bezier(.77,0,.18,1) .25s,transform 2.4s cubic-bezier(.19,1,.22,1) .25s;animation:none!important}
body.pret .tete-img img,body.pret .hero-img img{clip-path:inset(0 0 0 0);transform:scale(1)}

/* Harmonie des photos (même grade partout) */
.tete-img img,.face img,.galerie img,.duo-img img,.slide img,.card img,.u-img img{filter:saturate(.88) contrast(1.05) brightness(.96)}

/* Curseur personnalisé (souris uniquement) */
.cur{position:fixed;left:0;top:0;z-index:95;pointer-events:none;width:10px;height:10px;margin:-5px 0 0 -5px;border-radius:50%;background:#8dc63f;transition:width .35s cubic-bezier(.19,1,.22,1),height .35s cubic-bezier(.19,1,.22,1),margin .35s cubic-bezier(.19,1,.22,1),background .35s;display:grid;place-items:center;mix-blend-mode:normal}
.cur span{font:500 9px/1 Inter,sans-serif;letter-spacing:.2em;text-transform:uppercase;color:#0f0f0f;opacity:0;transition:opacity .2s}
.cur.lien{width:44px;height:44px;margin:-22px 0 0 -22px;background:rgba(141,198,63,.22);border:1px solid #8dc63f}
.cur.voir{width:86px;height:86px;margin:-43px 0 0 -43px;background:#8dc63f}
.cur.voir span{opacity:1}
@media (hover:none){.cur{display:none}}

/* Cartes : éclat doré qui balaie la face au survol */
.tuile .face:before,.card .face:before{content:"";position:absolute;z-index:3;top:0;bottom:0;left:-60%;width:40%;background:linear-gradient(100deg,transparent,rgba(141,198,63,.28),transparent);transform:skewX(-18deg);pointer-events:none}
.tuile:hover .face:before,.card:hover .face:before{animation:eclat .9s ease}
@keyframes eclat{to{left:130%}}
.dos{background:radial-gradient(120% 90% at 100% 0%,rgba(141,198,63,.12),transparent 55%),#1a1a1a!important}

/* Galerie : visionneuse plein écran */
.galerie div{cursor:zoom-in;position:relative}
.galerie div:after{content:"";position:absolute;inset:0;border:1px solid rgba(141,198,63,0);transition:border-color .4s}
.galerie div:hover:after{border-color:rgba(141,198,63,.6)}
#lb{position:fixed;inset:0;z-index:80;background:rgba(8,7,6,.94);display:grid;place-items:center;opacity:0;pointer-events:none;transition:opacity .4s;cursor:zoom-out}
#lb.on{opacity:1;pointer-events:auto}
#lb img{max-width:88vw;max-height:84vh;width:auto;height:auto;object-fit:contain;transform:scale(.94);transition:transform .5s cubic-bezier(.19,1,.22,1);box-shadow:0 40px 120px rgba(0,0,0,.6)}
#lb.on img{transform:none}
#lb b{position:absolute;top:24px;right:30px;font:500 11px/1 Inter,sans-serif;letter-spacing:.24em;color:#8dc63f}

/* Mise en page des en-têtes : plus d'air pour les titres */
.tete{grid-template-columns:1.12fr .88fr}
.tete-txt{padding-right:5vw}
.tete h1{font-size:clamp(56px,6.4vw,112px)}
.tete-img:after{background:linear-gradient(90deg,#0f0f0f 0,rgba(15,15,15,.35) 18%,transparent 40%),linear-gradient(0deg,rgba(15,15,15,.45),transparent 30%)}
@media (max-width:860px){.tete{grid-template-columns:1fr}.tete-img:after{background:linear-gradient(180deg,#0f0f0f 0,transparent 30%)}}

/* Liens soulignés qui se dessinent */
.ariane a,.autres a{position:relative}
.btn{position:relative;overflow:hidden}

@media (prefers-reduced-motion:reduce){
  #pt,.ln>span,.tete-img img,.hero-img img{transition:none!important}
  body:after{animation:none}
}
