/* ════════════════════════════════════════
   BLACKLION STUDIOS — FEUILLE DE STYLE
   Version 1.0.0 — Scrollytelling Cinématographique
════════════════════════════════════════ */

/* ── TOKENS ── */
:root {
  --gold:    #C9A84C;
  --gold-l:  #E8D5A3;
  --gold-d:  #8B6914;
  --gold-gl: rgba(201,168,76,.12);
  --black:   #060606;
  --dark:    #0C0C0C;
  --mid:     #161616;
  --card:    #1E1E1E;
  --gray:    #888;
  --lgray:   #444;
  --white:   #FFF;
  --off:     #F0EDE4;

  /* Divertissement — couleurs lumineuses */
  --divert-warm: #FFD166;
  --divert-glow: rgba(255,209,102,.08);

  /* Espacements responsifs */
  --px:  clamp(20px, 5vw, 100px);
  --py:  clamp(60px, 10vw, 140px);
  --max: 1280px;

  --ease:      cubic-bezier(.76,0,.24,1);
  --ease-soft: cubic-bezier(.25,.46,.45,.94);
}

/* ── RESET ── */
*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; -webkit-tap-highlight-color:transparent; }
html { scroll-behavior:smooth; font-size:16px; overflow-x:hidden; }
body {
  background: var(--black);
  color: var(--white);
  font-family: 'Montserrat', sans-serif;
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
  cursor: none;
}
@media (max-width:768px) { body { cursor: auto; } }
img { display:block; max-width:100%; }
a { text-decoration:none; color:inherit; }
button { border:none; background:none; cursor:pointer; font-family:inherit; }

/* ════════════════════════════════════════
   CURSEUR
════════════════════════════════════════ */
#bl-cursor {
  position:fixed; width:8px; height:8px;
  background:var(--gold); border-radius:50%;
  pointer-events:none; z-index:9999;
  transform:translate(-50%,-50%);
  mix-blend-mode:difference;
  transition:width .3s,height .3s;
}
#bl-cursor-ring {
  position:fixed; width:32px; height:32px;
  border:1px solid rgba(201,168,76,.4); border-radius:50%;
  pointer-events:none; z-index:9998;
  transform:translate(-50%,-50%);
}
body.bl-hover #bl-cursor { width:18px; height:18px; }
@media (max-width:768px) { #bl-cursor, #bl-cursor-ring { display:none; } }

/* ════════════════════════════════════════
   GRAIN
════════════════════════════════════════ */
#bl-grain {
  position:fixed; inset:0; z-index:9990; pointer-events:none; opacity:.04;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='256' height='256'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.75' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='256' height='256' filter='url(%23n)'/%3E%3C/svg%3E");
  animation: grainAnim .1s steps(1) infinite;
}
@keyframes grainAnim { 0%,100%{transform:translate(0,0)} 50%{transform:translate(2%,1%)} }

/* ════════════════════════════════════════
   RIDEAU TRANSITION
════════════════════════════════════════ */
#bl-curtain {
  position:fixed; inset:0; z-index:9500;
  display:grid; grid-template-columns:1fr 1fr 1fr;
  pointer-events:none;
}
.bl-curtain-panel { background:var(--black); transform:scaleY(0); }

/* ════════════════════════════════════════
   LOADER — UNIVERS ÉTOILÉ
════════════════════════════════════════ */
#bl-loader {
  position:fixed; inset:0; z-index:9800;
  background:radial-gradient(ellipse at center, #0a0800 0%, #000 100%);
  display:flex; flex-direction:column;
  align-items:center; justify-content:center;
  overflow:hidden;
}
#bl-star-canvas { position:absolute; inset:0; z-index:0; }
.bl-loader-content { position:relative; z-index:1; text-align:center; padding:0 20px; }
.bl-loader-glow {
  width:1px; height:0;
  background:linear-gradient(to bottom, transparent, var(--gold), transparent);
  margin:0 auto 44px;
  animation:loaderGrow 1.6s var(--ease) .3s forwards;
}
@keyframes loaderGrow { to { height:90px; } }
.bl-loader-brand {
  font-family:'Cormorant Garamond',serif;
  font-size:clamp(11px,3vw,14px); letter-spacing:.9em;
  color:var(--gold); text-transform:uppercase;
  opacity:0; animation:blFadeUp .8s ease .9s forwards;
}
.bl-loader-sub {
  font-size:clamp(7px,2vw,9px); letter-spacing:.55em;
  color:var(--lgray); text-transform:uppercase; margin-top:14px;
  opacity:0; animation:blFadeUp .8s ease 1.3s forwards;
}
.bl-loader-bar-track {
  width:min(200px,50vw); height:1px;
  background:rgba(201,168,76,.1); margin:50px auto 0; overflow:hidden;
  opacity:0; animation:blFadeUp .5s ease 1.5s forwards;
}
.bl-loader-bar-fill { height:100%; width:0; background:var(--gold); animation:loaderBar 1.8s var(--ease) 1.6s forwards; }
@keyframes loaderBar { to { width:100%; } }
.bl-loader-msg {
  font-size:clamp(7px,2vw,9px); letter-spacing:.4em;
  color:rgba(201,168,76,.3); text-transform:uppercase; margin-top:24px;
  opacity:0; animation:blFadeUp .8s ease 2s forwards;
}
@keyframes blFadeUp { from{opacity:0;transform:translateY(8px)} to{opacity:1;transform:none} }

/* ════════════════════════════════════════
   NAVIGATION
════════════════════════════════════════ */
#bl-nav {
  position:fixed; top:0; left:0; right:0; z-index:500;
  display:flex; align-items:center; justify-content:space-between;
  padding:0 var(--px); height:clamp(56px,8vw,72px);
  background:linear-gradient(to bottom, rgba(6,6,6,.95), transparent);
  border-bottom:1px solid rgba(201,168,76,.06);
  transition:background .5s, border-color .5s;
}
#bl-nav.bl-nav-solid { background:rgba(6,6,6,.97); border-color:rgba(201,168,76,.08); }
#bl-nav.bl-nav-light { background:rgba(255,248,230,.97); border-color:rgba(201,168,76,.2); }
.bl-nav-logo {
  display:flex; align-items:center; gap:10px;
  font-family:'Cormorant Garamond',serif;
  font-size:clamp(12px,2vw,15px); letter-spacing:.35em;
  color:var(--gold); text-transform:uppercase;
}
.bl-nav-logo-text { display:block; }
.bl-nav-logo-img { height:36px; width:auto; object-fit:contain; }
.bl-nav-dot { width:4px; height:4px; background:var(--gold); border-radius:50%; flex-shrink:0; }
.bl-nav-links { display:none; gap:clamp(20px,3vw,40px); list-style:none; align-items:center; }
@media (min-width:768px) { .bl-nav-links { display:flex; } }
.bl-nav-link {
  font-size:8px; letter-spacing:.32em; color:var(--gray);
  text-transform:uppercase; position:relative; padding-bottom:3px; transition:color .3s;
}
.bl-nav-link::after {
  content:''; position:absolute; bottom:0; left:0; width:0; height:1px;
  background:var(--gold); transition:width .35s var(--ease);
}
.bl-nav-link:hover, .bl-nav-link.bl-active { color:var(--gold); }
.bl-nav-link:hover::after, .bl-nav-link.bl-active::after { width:100%; }
.bl-nav-cta {
  font-size:8px; letter-spacing:.32em; text-transform:uppercase;
  color:var(--black); background:var(--gold);
  padding:9px 22px; transition:background .3s;
}
.bl-nav-cta:hover { background:var(--gold-l); }
.bl-nav-burger {
  display:flex; flex-direction:column; gap:5px; padding:8px;
}
@media (min-width:768px) { .bl-nav-burger { display:none; } }
.bl-nav-burger span { width:22px; height:1px; background:var(--gold); display:block; transition:all .3s; }
.bl-nav-burger.bl-open span:nth-child(1) { transform:rotate(45deg) translate(4px,4px); }
.bl-nav-burger.bl-open span:nth-child(2) { opacity:0; }
.bl-nav-burger.bl-open span:nth-child(3) { transform:rotate(-45deg) translate(4px,-4px); }

/* Mobile menu */
#bl-mobile-menu {
  position:fixed; inset:0; z-index:490;
  background:rgba(6,6,6,.98); backdrop-filter:blur(20px);
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:clamp(20px,5vw,36px);
  transform:translateX(100%); transition:transform .55s var(--ease);
}
#bl-mobile-menu.bl-open { transform:translateX(0); }
.bl-mobile-close {
  position:absolute; top:20px; right:20px;
  font-size:24px; color:var(--gold); padding:8px;
}
.bl-mobile-link {
  font-family:'Cormorant Garamond',serif;
  font-size:clamp(32px,8vw,52px); color:var(--white);
  font-weight:300; transition:color .3s;
}
.bl-mobile-link:hover, .bl-mobile-link-gold { color:var(--gold); }
.bl-mobile-footer { display:flex; gap:24px; position:absolute; bottom:40px; }
.bl-mobile-social {
  font-size:9px; letter-spacing:.4em; color:var(--lgray);
  text-transform:uppercase; border:1px solid rgba(255,255,255,.1); padding:10px 16px;
  transition:all .3s;
}
.bl-mobile-social:hover { border-color:var(--gold); color:var(--gold); }

/* Page nav dots */
#ndots {
  position:fixed; right:16px; top:50%; transform:translateY(-50%);
  z-index:400; display:flex; flex-direction:column; gap:8px;
}
@media (max-width:768px) { #ndots { display:none; } }
.ndot {
  width:4px; height:4px; border-radius:50%;
  background:rgba(201,168,76,.2); cursor:pointer; transition:all .3s;
}
.ndot.active { background:var(--gold); transform:scale(2); }

/* ════════════════════════════════════════
   SCROLL PROGRESS BAR
════════════════════════════════════════ */
#bl-scroll-progress {
  position:fixed; top:0; left:0; right:0; height:2px;
  background:rgba(201,168,76,.1); z-index:501;
}
#bl-scroll-bar { height:100%; width:0; background:var(--gold); transition:width .1s; }

/* ════════════════════════════════════════
   HÉRO — ACTE 0 — L'ESPACE
════════════════════════════════════════ */
#bl-hero {
  height:100svh; position:relative; overflow:hidden;
  display:flex; flex-direction:column;
  align-items:center; justify-content:center;
}
#bl-space-canvas { position:absolute; inset:0; z-index:0; }
.bl-hero-atm { position:absolute; inset:0; z-index:1; pointer-events:none; }
.bl-atm-nebula {
  position:absolute; border-radius:50%; filter:blur(80px); pointer-events:none;
  animation:nebulaFloat 10s ease-in-out infinite;
}
.bl-atm-nebula-1 {
  width:600px; height:500px; top:-100px; left:-100px;
  background:radial-gradient(circle, rgba(201,168,76,.04) 0%, transparent 70%);
  animation-delay:0s;
}
.bl-atm-nebula-2 {
  width:400px; height:400px; bottom:-80px; right:-80px;
  background:radial-gradient(circle, rgba(201,168,76,.05) 0%, transparent 70%);
  animation-delay:-4s;
}
.bl-atm-nebula-3 {
  width:300px; height:300px; top:40%; right:20%;
  background:radial-gradient(circle, rgba(100,50,200,.03) 0%, transparent 70%);
  animation-delay:-7s;
}
@keyframes nebulaFloat {
  0%,100% { transform:translate(0,0) scale(1); }
  50% { transform:translate(30px,-20px) scale(1.08); }
}

/* Contenu héro — éléments masqués, révélés au PREMIER SCROLL */
.bl-hero-content {
  position:relative; z-index:10; text-align:center;
  padding:0 clamp(16px,5vw,60px); max-width:1100px;
}
.bl-hero-label {
  display:flex; align-items:center; justify-content:center; gap:20px;
  font-size:clamp(7px,1.5vw,9px); letter-spacing:.7em;
  color:var(--gold); text-transform:uppercase;
  margin-bottom:clamp(28px,5vw,48px);
  opacity:0; transform:translateY(20px); will-change:transform,opacity;
}
.bl-hero-label-line { width:clamp(30px,5vw,50px); height:1px; background:rgba(201,168,76,.35); }
.bl-hero-title {
  font-family:'Cormorant Garamond',serif;
  font-size:clamp(44px,10vw,130px); font-weight:300;
  line-height:.85; letter-spacing:-.02em;
  margin-bottom:clamp(20px,3vw,36px);
  opacity:0; transform:translateY(30px); will-change:transform,opacity;
}
.bl-hero-title-line { display:block; }
.bl-title-gold { color:var(--gold); }
.bl-hero-sub {
  font-size:clamp(9px,2vw,12px); letter-spacing:.18em; color:var(--gray);
  line-height:2; max-width:500px; margin:0 auto clamp(28px,5vw,50px);
  text-transform:uppercase;
  opacity:0; transform:translateY(20px); will-change:transform,opacity;
}
.bl-hero-actions {
  opacity:0; transform:translateY(20px); will-change:transform,opacity;
}
.bl-scroll-indicator {
  position:absolute; bottom:clamp(24px,5vw,40px); left:50%; transform:translateX(-50%);
  z-index:10; text-align:center;
  opacity:0; transition:opacity .8s;
}
.bl-scroll-indicator.bl-visible { opacity:1; }
.bl-scroll-text {
  font-size:7.5px; letter-spacing:.5em; color:rgba(201,168,76,.5);
  text-transform:uppercase; margin-bottom:10px;
}
.bl-scroll-arrow {
  width:1px; height:44px; background:linear-gradient(to bottom,transparent,var(--gold));
  margin:0 auto; animation:scrollPulse 2.2s ease infinite;
}
@keyframes scrollPulse {
  0%{opacity:0;transform:scaleY(0);transform-origin:top}
  55%{opacity:1}
  100%{opacity:0;transform:scaleY(1);transform-origin:top}
}

/* ════════════════════════════════════════
   SECTIONS — BASE
════════════════════════════════════════ */
.bl-section { position:relative; overflow:hidden; }

/* ════════════════════════════════════════
   ACTE 1 — CINÉMA
════════════════════════════════════════ */
.bl-section-cinema {
  background:linear-gradient(180deg, #000 0%, #060606 30%, #0a0800 60%, #060606 100%);
}

/* Film strips */
.bl-film-strips { position:absolute; inset:0; pointer-events:none; z-index:2; }
.bl-film-strip {
  position:absolute; top:0; bottom:0; width:36px;
  background:#030303; display:flex; flex-direction:column;
  justify-content:space-around; align-items:center;
}
.bl-film-strip-left { left:0; border-right:1px solid rgba(201,168,76,.05); }
.bl-film-strip-right { right:0; border-left:1px solid rgba(201,168,76,.05); }
@media (max-width:768px) { .bl-film-strips { display:none; } }
.bl-film-hole { width:14px; height:10px; background:#000; border:1px solid rgba(201,168,76,.06); border-radius:1px; }

/* Fond cinéma */
.bl-cinema-bg { position:absolute; inset:0; z-index:0; pointer-events:none; }
.bl-cinema-vignette {
  position:absolute; inset:0;
  background:radial-gradient(ellipse at center,transparent 40%,rgba(0,0,0,.8) 100%);
}
#bl-cinema-particles { position:absolute; inset:0; }

/* Manifeste scrollytelling */
.bl-manifeste-wrap {
  padding:clamp(80px,15vw,200px) var(--px);
  position:relative; z-index:10;
  display:flex; align-items:center; justify-content:center;
  min-height:80vh;
}
.bl-manifeste-inner { max-width:900px; width:100%; text-align:center; }
.bl-manifeste-label {
  font-size:8px; letter-spacing:.6em; color:var(--gold);
  text-transform:uppercase; margin-bottom:40px;
}
.bl-manifeste-quote {
  font-family:'Cormorant Garamond',serif;
  font-size:clamp(28px,6vw,70px); font-weight:300; line-height:1.25;
  margin-bottom:40px;
}
/* Mots du manifeste — chacun animé */
.bl-word {
  display:inline-block; opacity:.1; color:var(--white);
  transition:opacity .4s, color .4s;
  margin:0 clamp(4px,1vw,8px);
}
.bl-word.bl-active { opacity:1; }
.bl-word-gold { color:var(--gold) !important; }
.bl-word-italic { font-style:italic; }
.bl-manifeste-attr {
  font-size:clamp(7px,1.5vw,9px); letter-spacing:.4em;
  color:var(--lgray); text-transform:uppercase; margin-top:40px;
  opacity:0; transition:opacity .8s;
}
.bl-manifeste-attr.bl-visible { opacity:1; }

/* Identité */
.bl-cinema-identity {
  display:grid; grid-template-columns:1fr;
  gap:clamp(40px,6vw,80px);
  padding:clamp(60px,8vw,120px) var(--px);
  max-width:var(--max); margin:0 auto;
  position:relative; z-index:10;
}
@media (min-width:768px) { .bl-cinema-identity { grid-template-columns:1fr 1fr; align-items:center; } }
.bl-identity-img-wrap { position:relative; }
.bl-identity-text {}

/* Standards */
.bl-cinema-standards {
  padding:clamp(60px,8vw,120px) var(--px);
  max-width:var(--max); margin:0 auto;
  position:relative; z-index:10;
}
.bl-standards-header { margin-bottom:clamp(40px,6vw,70px); }
.bl-standards-grid {
  display:grid; grid-template-columns:1fr 1fr;
  gap:clamp(12px,2vw,20px);
}
@media (min-width:768px) { .bl-standards-grid { grid-template-columns:repeat(4,1fr); } }
.bl-std-item {
  padding:clamp(20px,3vw,30px); border:1px solid rgba(201,168,76,.1);
  background:rgba(201,168,76,.02); transition:border-color .4s,background .4s;
  opacity:0; transform:translateY(40px); will-change:transform,opacity;
  transition-delay:calc(var(--i,0) * 0.1s);
}
.bl-std-item.bl-in { opacity:1; transform:translateY(0); transition:opacity .85s ease,transform .85s ease,border-color .4s,background .4s; }
.bl-std-item:hover { border-color:rgba(201,168,76,.3); background:rgba(201,168,76,.05); }
.bl-std-icon { font-size:22px; color:var(--gold); margin-bottom:12px; }
.bl-std-title { font-family:'Cormorant Garamond',serif; font-size:clamp(17px,2.5vw,21px); color:var(--white); margin-bottom:8px; }
.bl-std-text { font-size:clamp(10px,1.5vw,11.5px); line-height:1.9; color:var(--gray); font-weight:300; }

/* Image pleine largeur cinéma */
.bl-cinema-fullimg {
  height:clamp(280px,50vw,620px); position:relative; overflow:hidden;
  opacity:0; transform:scale(.96); will-change:transform,opacity;
}
.bl-cinema-fullimg.bl-in { opacity:1; transform:scale(1); transition:opacity 1.2s ease,transform 1.2s ease; }

/* ════════════════════════════════════════
   ACTE 2 — TRANSITION EXPLOSION
════════════════════════════════════════ */
.bl-section-transition {
  height:100vh; position:relative; overflow:hidden;
  display:flex; align-items:center; justify-content:center;
  background:#000;
}
#bl-explosion-canvas { position:absolute; inset:0; z-index:0; }
.bl-transition-text {
  position:relative; z-index:10; text-align:center;
  opacity:0; transition:opacity .8s;
}
.bl-transition-text.bl-visible { opacity:1; }
.bl-transition-label {
  font-size:8px; letter-spacing:.6em; color:var(--gold);
  text-transform:uppercase; margin-bottom:20px;
}
.bl-transition-title {
  font-family:'Cormorant Garamond',serif;
  font-size:clamp(40px,7vw,90px); font-weight:300; line-height:1; color:var(--white);
}

/* ════════════════════════════════════════
   ACTE 3 — DIVERTISSEMENT
════════════════════════════════════════ */
.bl-section-divert {
  background:linear-gradient(180deg, #060606 0%, #0c0800 20%, #100c00 50%, #0c0800 80%, #060606 100%);
}
.bl-divert-bg { position:absolute; inset:0; z-index:0; pointer-events:none; }
#bl-divert-canvas { position:absolute; inset:0; }
.bl-divert-glow {
  position:absolute; border-radius:50%; filter:blur(100px); pointer-events:none;
  animation:divertGlow 6s ease-in-out infinite;
}
.bl-divert-glow-1 { width:500px; height:400px; top:-50px; left:10%; background:rgba(201,168,76,.06); animation-delay:0s; }
.bl-divert-glow-2 { width:400px; height:350px; bottom:10%; right:5%; background:rgba(255,180,50,.04); animation-delay:-3s; }
.bl-divert-glow-3 { width:300px; height:300px; top:40%; left:45%; background:rgba(201,168,76,.05); animation-delay:-5s; }
@keyframes divertGlow { 0%,100%{transform:scale(1);opacity:1} 50%{transform:scale(1.15);opacity:.6} }

.bl-divert-header {
  text-align:center; padding:clamp(80px,12vw,160px) var(--px) clamp(40px,6vw,80px);
  position:relative; z-index:10;
}
.bl-divert-title {
  font-family:'Cormorant Garamond',serif;
  font-size:clamp(44px,9vw,110px); font-weight:300; line-height:.88;
  margin-bottom:clamp(24px,4vw,50px);
}
.bl-divert-word { display:inline-block; opacity:0; transform:translateY(30px); will-change:transform,opacity; }
.bl-divert-word.bl-in { opacity:1; transform:translateY(0); transition:opacity .8s ease,transform .8s ease; }
.bl-divert-word-gold { color:var(--gold); }
.bl-divert-body {
  font-size:clamp(12px,1.8vw,14px); line-height:2.3; color:var(--gray); font-weight:300;
  max-width:680px; margin:0 auto;
}

/* Valeurs divertissement */
.bl-divert-values {
  display:grid; grid-template-columns:1fr;
  gap:1px; background:rgba(201,168,76,.08);
  position:relative; z-index:10;
  margin:clamp(40px,6vw,80px) 0 0;
}
@media (min-width:600px) { .bl-divert-values { grid-template-columns:repeat(3,1fr); } }
.bl-dval { background:var(--mid); padding:clamp(40px,6vw,64px) clamp(24px,4vw,50px); transition:background .4s; }
.bl-dval:hover { background:#100c00; }
.bl-dval-featured { background:#120e00; border-top:2px solid var(--gold); }
.bl-dval-icon { font-size:clamp(20px,3vw,26px); color:var(--gold); margin-bottom:clamp(16px,2.5vw,24px); }
.bl-dval-icon-large { font-size:clamp(30px,5vw,40px); color:var(--gold); margin-bottom:clamp(16px,2.5vw,24px); }
.bl-dval-title { font-family:'Cormorant Garamond',serif; font-size:clamp(22px,3.5vw,30px); color:var(--white); margin-bottom:clamp(10px,1.5vw,16px); }
.bl-dval-text { font-size:clamp(10.5px,1.5vw,12px); line-height:2; color:var(--gray); font-weight:300; }
.bl-dval-badge {
  display:inline-block; margin-top:16px; font-size:8px; letter-spacing:.35em;
  color:var(--gold); text-transform:uppercase; border:1px solid rgba(201,168,76,.3); padding:5px 14px;
}

/* Challenge teaser */
.bl-challenge-teaser {
  display:grid; grid-template-columns:1fr;
  gap:clamp(40px,6vw,80px); align-items:center;
  padding:clamp(80px,10vw,140px) var(--px);
  max-width:var(--max); margin:0 auto;
  position:relative; z-index:10;
}
@media (min-width:768px) { .bl-challenge-teaser { grid-template-columns:5fr 4fr; } }
.bl-challenge-bg { position:absolute; inset:0; pointer-events:none; z-index:0; }
.bl-challenge-grid {
  position:absolute; inset:0;
  background-image:linear-gradient(rgba(201,168,76,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(201,168,76,.025) 1px,transparent 1px);
  background-size:60px 60px;
}
.bl-challenge-badge {
  display:inline-flex; align-items:center; gap:10px;
  border:1px solid rgba(201,168,76,.25); padding:8px 20px;
  background:rgba(201,168,76,.05); margin-bottom:clamp(24px,4vw,36px);
  font-size:7.5px; letter-spacing:.4em; color:var(--gold); text-transform:uppercase;
}
.bl-live-dot { width:6px; height:6px; background:#e53e3e; border-radius:50%; animation:blink 1.5s ease infinite; flex-shrink:0; }
@keyframes blink { 0%,100%{opacity:1} 50%{opacity:.1} }
.bl-challenge-title {
  font-family:'Cormorant Garamond',serif;
  font-size:clamp(40px,7vw,82px); color:var(--white); line-height:.9; margin-bottom:clamp(20px,3vw,30px);
}
.bl-challenge-title em { color:var(--gold); }
.bl-challenge-desc { font-size:clamp(12px,1.8vw,14px); line-height:2.2; color:var(--gray); font-weight:300; margin-bottom:clamp(24px,4vw,40px); }
.bl-challenge-stats { display:grid; grid-template-columns:repeat(2,1fr); gap:clamp(10px,2vw,20px); margin-bottom:clamp(24px,4vw,40px); }
@media (min-width:480px) { .bl-challenge-stats { grid-template-columns:repeat(4,1fr); } }
.bl-cstat { padding:clamp(14px,2.5vw,22px); border:1px solid rgba(201,168,76,.1); background:rgba(201,168,76,.02); }
.bl-cstat-n { font-family:'Cormorant Garamond',serif; font-size:clamp(22px,4vw,30px); color:var(--gold); display:block; }
.bl-cstat-l { font-size:clamp(7px,1.2vw,8px); letter-spacing:.3em; color:var(--lgray); text-transform:uppercase; margin-top:4px; display:block; }
.bl-challenge-actions { display:flex; gap:clamp(8px,2vw,14px); flex-wrap:wrap; }
.bl-challenge-img { position:relative; min-height:clamp(300px,50vw,520px); }
.bl-challenge-img-badge {
  position:absolute; bottom:0; left:0; right:0;
  background:rgba(6,6,6,.9); backdrop-filter:blur(10px);
  padding:clamp(14px,2.5vw,20px); border-top:1px solid rgba(201,168,76,.2);
  text-align:center; font-size:clamp(8px,1.5vw,9px); letter-spacing:.35em; color:var(--gold); text-transform:uppercase;
}

/* Plateformes */
.bl-platforms { padding:clamp(60px,8vw,120px) var(--px); position:relative; z-index:10; max-width:var(--max); margin:0 auto; }
.bl-platforms-header { margin-bottom:clamp(36px,6vw,60px); }
.bl-platforms-title { font-family:'Cormorant Garamond',serif; font-size:clamp(30px,5vw,60px); font-weight:300; color:var(--white); margin-top:10px; }
.bl-platforms-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:1px; background:rgba(201,168,76,.07); }
@media (min-width:600px) { .bl-platforms-grid { grid-template-columns:repeat(4,1fr); } }
.bl-platform { padding:clamp(28px,4vw,44px) clamp(16px,3vw,30px); text-align:center; background:var(--mid); transition:background .4s; }
.bl-platform:hover { background:var(--clr,rgba(201,168,76,.04)); }
.bl-platform-icon { font-size:clamp(22px,4vw,28px); margin-bottom:clamp(10px,2vw,16px); display:block; }
.bl-platform-name { font-family:'Cormorant Garamond',serif; font-size:clamp(18px,3vw,23px); color:var(--white); margin-bottom:8px; }
.bl-platform-desc { font-size:clamp(9.5px,1.5vw,11px); line-height:1.9; color:var(--gray); font-weight:300; }

/* ════════════════════════════════════════
   ACTE 4 — LA MAISON
════════════════════════════════════════ */
.bl-section-maison { background:var(--dark); padding:clamp(80px,10vw,140px) var(--px); }
.bl-maison-header { max-width:var(--max); margin:0 auto clamp(50px,8vw,90px); }
.bl-pillars-grid {
  display:grid; grid-template-columns:1fr;
  gap:1px; background:rgba(201,168,76,.08);
  max-width:var(--max); margin:0 auto;
}
@media (min-width:600px) { .bl-pillars-grid { grid-template-columns:repeat(3,1fr); } }
.bl-pillar {
  background:var(--mid); padding:clamp(40px,5vw,60px) clamp(24px,4vw,50px);
  position:relative; overflow:hidden; cursor:pointer; transition:background .4s;
  opacity:0; transform:translateY(50px); will-change:transform,opacity;
  transition-delay:calc(var(--i,0) * 0.12s);
}
.bl-pillar.bl-in { opacity:1; transform:translateY(0); transition:opacity .9s ease,transform .9s ease,background .4s; }
.bl-pillar:hover { background:#0e0e0a; }
.bl-pillar::before { content:''; position:absolute; top:0; left:0; right:0; height:1px; background:var(--gold); transform:scaleX(0); transform-origin:left; transition:transform .5s var(--ease); }
.bl-pillar:hover::before { transform:scaleX(1); }
.bl-pillar-ghost { position:absolute; bottom:-10px; right:16px; font-family:'Cormorant Garamond',serif; font-size:clamp(60px,10vw,100px); color:rgba(201,168,76,.04); line-height:1; pointer-events:none; transition:color .4s; }
.bl-pillar:hover .bl-pillar-ghost { color:rgba(201,168,76,.08); }
.bl-pillar-icon { font-size:clamp(24px,4vw,32px); margin-bottom:clamp(18px,3vw,28px); display:block; }
.bl-pillar-tag { font-size:7.5px; letter-spacing:.45em; color:var(--gold); text-transform:uppercase; margin-bottom:clamp(10px,2vw,16px); }
.bl-pillar-title { font-family:'Cormorant Garamond',serif; font-size:clamp(22px,3vw,30px); color:var(--white); margin-bottom:clamp(12px,2vw,18px); }
.bl-pillar-text { font-size:clamp(10px,1.5vw,11.5px); line-height:2; color:var(--gray); font-weight:300; }
.bl-pillar-link { display:inline-flex; align-items:center; gap:8px; margin-top:clamp(18px,3vw,28px); font-size:8px; letter-spacing:.28em; color:var(--gold); text-transform:uppercase; transition:gap .3s; }
.bl-pillar:hover .bl-pillar-link { gap:16px; }

/* Strip défilant */
.bl-strip { overflow:hidden; border-top:1px solid rgba(201,168,76,.1); border-bottom:1px solid rgba(201,168,76,.1); margin-top:clamp(50px,8vw,100px); }
.bl-strip-inner { display:flex; white-space:nowrap; animation:stripRun 35s linear infinite; }
.bl-strip-inner:hover { animation-play-state:paused; }
.bl-strip-item { padding:clamp(16px,3vw,22px) clamp(30px,5vw,50px); font-family:'Cormorant Garamond',serif; font-size:clamp(14px,2.5vw,20px); font-style:italic; color:rgba(201,168,76,.4); border-right:1px solid rgba(201,168,76,.08); flex-shrink:0; }
.bl-strip-gem { width:7px; height:7px; background:var(--gold); transform:rotate(45deg); flex-shrink:0; align-self:center; margin:0 clamp(20px,3vw,40px); }
@keyframes stripRun { 0%{transform:translateX(0)} 100%{transform:translateX(-50%)} }

/* ════════════════════════════════════════
   ACTE 5 — FINALE COSMIQUE
════════════════════════════════════════ */
.bl-section-finale {
  padding:clamp(100px,14vw,200px) var(--px);
  background:var(--black); text-align:center;
  position:relative; overflow:hidden;
}
.bl-finale-cosmos { position:absolute; inset:0; pointer-events:none; }
#bl-finale-canvas { position:absolute; inset:0; }
.bl-finale-content { position:relative; z-index:10; max-width:1000px; margin:0 auto; }
.bl-finale-quote {
  font-family:'Cormorant Garamond',serif;
  font-size:clamp(28px,6vw,72px); font-weight:300; font-style:italic;
  color:var(--white); line-height:1.25;
  margin-bottom:clamp(24px,4vw,40px);
}
.bl-finale-attr { font-size:clamp(8px,1.5vw,10px); letter-spacing:.4em; color:var(--gray); text-transform:uppercase; margin-bottom:clamp(40px,7vw,70px); }
.bl-finale-actions { display:flex; gap:clamp(8px,2vw,16px); justify-content:center; flex-wrap:wrap; }

/* Séparateur doré */
.bl-gold-sep { display:flex; align-items:center; gap:14px; justify-content:center; margin:clamp(20px,3vw,36px) auto; max-width:240px; }
.bl-sep-line { flex:1; height:1px; background:rgba(201,168,76,.2); }
.bl-sep-gem { width:6px; height:6px; background:var(--gold); transform:rotate(45deg); flex-shrink:0; }

/* ════════════════════════════════════════
   BOUTONS
════════════════════════════════════════ */
.bl-btn {
  display:inline-flex; align-items:center; gap:10px;
  font-family:'Montserrat',sans-serif;
  font-size:clamp(7px,1.5vw,9px); letter-spacing:.38em; text-transform:uppercase;
  padding:clamp(12px,2vw,16px) clamp(22px,3vw,34px);
  cursor:pointer; transition:all .35s; text-decoration:none;
}
.bl-btn-gold { background:transparent; border:1px solid var(--gold); color:var(--gold); }
.bl-btn-gold:hover { background:var(--gold); color:var(--black); }
.bl-btn-dark { background:transparent; border:1px solid rgba(255,255,255,.12); color:var(--gray); }
.bl-btn-dark:hover { border-color:rgba(255,255,255,.4); color:var(--white); }
.bl-btn-arrow::after { content:'→'; font-size:clamp(12px,2vw,14px); letter-spacing:0; }

/* ════════════════════════════════════════
   ZONES IMAGES
════════════════════════════════════════ */
.bl-img-zone {
  width:100%; height:100%;
  background:linear-gradient(135deg,#0a0a0a,#100a00);
  border:1px solid rgba(201,168,76,.1);
  display:flex; align-items:center; justify-content:center;
  overflow:hidden; position:relative;
}
.bl-img-zone img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.bl-img-placeholder { text-align:center; padding:clamp(30px,5vw,60px); position:relative; z-index:1; }
.bl-img-ph-icon { font-size:clamp(28px,5vw,40px); opacity:.3; display:block; margin-bottom:12px; }
.bl-img-ph-title { font-family:'Cormorant Garamond',serif; font-size:clamp(14px,2.5vw,20px); color:rgba(201,168,76,.4); margin-bottom:6px; }
.bl-img-ph-sub { font-size:clamp(8px,1.5vw,10px); letter-spacing:.3em; color:rgba(255,255,255,.15); text-transform:uppercase; }
.bl-img-ph-note { font-size:clamp(8px,1.5vw,9px); color:rgba(201,168,76,.2); font-style:italic; margin-top:12px; }
.bl-img-corner { position:absolute; width:24px; height:24px; border-color:rgba(201,168,76,.3); border-style:solid; }
.bl-img-corner-tl { top:12px; left:12px; border-width:1px 0 0 1px; }
.bl-img-corner-br { bottom:12px; right:12px; border-width:0 1px 1px 0; }
.bl-fullimg-zone { min-height:inherit; }
.bl-fullimg-overlay { position:absolute; inset:0; background:linear-gradient(to top,rgba(6,6,6,.85) 0%,transparent 60%); display:flex; align-items:flex-end; padding:clamp(24px,5vw,60px) var(--px); z-index:10; }
.bl-fullimg-quote { font-family:'Cormorant Garamond',serif; font-size:clamp(20px,4vw,44px); color:var(--white); font-style:italic; font-weight:300; max-width:700px; line-height:1.3; }
.bl-fullimg-attr { font-size:clamp(7px,1.5vw,9px); letter-spacing:.4em; color:rgba(201,168,76,.55); text-transform:uppercase; margin-top:10px; display:block; }

/* ════════════════════════════════════════
   TYPOGRAPHIE PARTAGÉE
════════════════════════════════════════ */
.bl-section-label { font-size:8px; letter-spacing:.55em; color:var(--gold); text-transform:uppercase; display:flex; align-items:center; gap:16px; margin-bottom:clamp(20px,4vw,32px); }
.bl-section-label::before { content:''; width:24px; height:1px; background:var(--gold); flex-shrink:0; }
.bl-section-label::after { content:''; flex:1; max-width:80px; height:1px; background:rgba(201,168,76,.2); }
.bl-section-label-light { color:var(--gold-l); }
.bl-section-label-light::before { background:var(--gold-l); }
.bl-section-title { font-family:'Cormorant Garamond',serif; font-size:clamp(34px,6vw,80px); font-weight:300; line-height:.9; letter-spacing:-.015em; }
.bl-body-text { font-size:clamp(12px,1.5vw,14px); line-height:2.2; color:var(--gray); font-weight:300; margin-bottom:clamp(14px,2vw,24px); }
.bl-gold { color:var(--gold); }
.bl-italic { font-style:italic; }
.bl-identity-pull { padding:clamp(18px,3vw,26px); border-left:2px solid var(--gold); background:rgba(201,168,76,.04); margin:clamp(20px,3vw,36px) 0; }
.bl-identity-pull p { font-family:'Cormorant Garamond',serif; font-size:clamp(16px,2.5vw,22px); font-style:italic; color:var(--white); line-height:1.6; }
.bl-h-rule { height:1px; background:linear-gradient(to right,transparent,rgba(201,168,76,.25),transparent); }

/* ════════════════════════════════════════
   REVEALS PAR SCROLL (classes de base)
════════════════════════════════════════ */
.bl-reveal-up { opacity:0; transform:translateY(60px); will-change:transform,opacity; }
.bl-reveal-left { opacity:0; transform:translateX(-60px); will-change:transform,opacity; }
.bl-reveal-right { opacity:0; transform:translateX(60px); will-change:transform,opacity; }
.bl-reveal-scale { opacity:0; transform:scale(.94); will-change:transform,opacity; }
/* Ajout de la classe .bl-in via JS déclenche la transition */
.bl-reveal-up.bl-in,
.bl-reveal-left.bl-in,
.bl-reveal-right.bl-in,
.bl-reveal-scale.bl-in {
  opacity:1; transform:none;
  transition:opacity .95s ease, transform .95s ease;
  transition-delay:var(--delay,0s);
}

/* ════════════════════════════════════════
   FOOTER
════════════════════════════════════════ */
.bl-footer { background:#000; padding:clamp(50px,8vw,80px) var(--px) clamp(30px,5vw,50px); border-top:1px solid rgba(201,168,76,.1); }
.bl-footer-inner { max-width:var(--max); margin:0 auto; }
.bl-footer-grid { display:grid; grid-template-columns:1fr 1fr; gap:clamp(30px,5vw,60px); margin-bottom:clamp(40px,6vw,60px); }
@media (min-width:768px) { .bl-footer-grid { grid-template-columns:2fr 1fr 1fr 1fr; } }
.bl-footer-logo { font-family:'Cormorant Garamond',serif; font-size:clamp(18px,3vw,24px); color:var(--gold); margin-bottom:10px; }
.bl-footer-tagline { font-size:8px; letter-spacing:.25em; color:var(--lgray); text-transform:uppercase; margin-bottom:16px; }
.bl-footer-desc { font-size:clamp(10.5px,1.5vw,12px); line-height:2; color:var(--lgray); font-weight:300; }
.bl-footer-col-title { font-size:8px; letter-spacing:.45em; color:var(--gold); text-transform:uppercase; margin-bottom:clamp(16px,3vw,24px); }
.bl-footer-col ul { list-style:none; }
.bl-footer-col ul li { margin-bottom:clamp(10px,2vw,14px); }
.bl-footer-col ul li a { font-size:clamp(11px,1.5vw,12px); color:var(--lgray); transition:color .3s; font-weight:300; }
.bl-footer-col ul li a:hover { color:var(--white); }
.bl-footer-bottom { display:flex; flex-direction:column; gap:8px; padding-top:clamp(20px,3vw,30px); border-top:1px solid rgba(255,255,255,.04); }
@media (min-width:600px) { .bl-footer-bottom { flex-direction:row; justify-content:space-between; } }
.bl-footer-bottom span { font-size:clamp(9px,1.5vw,10px); color:rgba(255,255,255,.17); letter-spacing:.15em; }

/* ════════════════════════════════════════
   PRINT
════════════════════════════════════════ */
@media print { #bl-loader,#bl-cursor,#bl-cursor-ring,#bl-grain,#bl-curtain,#bl-scroll-progress,.bl-film-strips,.bl-nav-burger { display:none !important; } }
