/* ============================================================
   ATM — v3 — Space Mono partout, immersif, vivant
   ============================================================ */

:root {
  --bg:        #F4F3F0;
  --panel:     #FFFFFF;
  --panel-alt: #EDECE8;
  --ink:       #0E0E0E;
  --ink-dim:   #78756F;
  --line:      #D6D3CC;
  --accent:    #FF5A1F;
  --footer-bg: #0E0E0E;
  --footer-ink:#F4F3F0;
  --footer-dim:#6E6B65;
  --container: 1280px;
  --hh:        64px;
}
html[data-theme="dark"] {
  --bg:        #0E0E0E;
  --panel:     #181818;
  --panel-alt: #222222;
  --ink:       #F0EFE8;
  --ink-dim:   #8A8780;
  --line:      #2C2A26;
  --accent:    #FF6B35;
  --footer-bg: #080808;
  --footer-ink:#F0EFE8;
  --footer-dim:#6E6B65;
}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;overflow-x:hidden}
body{
  margin:0;background:var(--bg);color:var(--ink);
  font-family:'Space Mono',monospace;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;transition:background .3s,color .3s;
}
::selection{background:var(--accent);color:#fff}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
p{font-family:'Space Mono',monospace;font-size:.85rem;line-height:1.8}

/* ── CURSEUR ─────────────────────────────────────────────── */
@media (pointer:fine){
  *{cursor:none!important}
  #cursor{
    position:fixed;z-index:9999;pointer-events:none;
    width:10px;height:10px;
    border-radius:50%;background:var(--accent);
    transform:translate(-50%,-50%);
    transition:width .18s,height .18s,background .18s,opacity .18s;
    will-change:transform;
  }
  #cursor-ring{
    position:fixed;z-index:9998;pointer-events:none;
    width:36px;height:36px;
    border-radius:50%;border:1.5px solid var(--accent);
    transform:translate(-50%,-50%);
    opacity:.5;
    transition:width .3s,height .3s,opacity .3s;
    will-change:transform;
  }
  #cursor.hover{width:6px;height:6px}
  #cursor-ring.hover{width:56px;height:56px;opacity:.25}
  #cursor.hidden,#cursor-ring.hidden{opacity:0}
}

/* (intro screen supprimé) */

/* ── HEADER ──────────────────────────────────────────────── */
header{
  position:sticky;top:0;z-index:100;
  background:var(--bg);border-bottom:1px solid var(--line);
}
.nav{
  display:flex;align-items:center;justify-content:space-between;
  padding:0 36px;height:var(--hh);
  max-width:var(--container);margin:0 auto;
}
.nav-brand{display:flex;align-items:center;gap:10px}
/* Logo officiel propre en haut à gauche */
.nav-logo-img{height:32px;width:auto;display:block}
.nav-logo-img.dark-ver {display:none}
.nav-logo-img.light-ver{display:block}
html[data-theme="dark"] .nav-logo-img.dark-ver {display:block}
html[data-theme="dark"] .nav-logo-img.light-ver{display:none}

.nav-brand .brand-text{
  font-size:.68rem;font-weight:700;
  text-transform:uppercase;letter-spacing:.5px;line-height:1.3;
}
.nav-links{
  display:flex;gap:24px;list-style:none;margin:0;padding:0;
}
.nav-links a{
  font-size:.7rem;text-transform:uppercase;letter-spacing:1px;
  font-weight:700;color:var(--ink-dim);
  position:relative;padding-bottom:2px;
  transition:color .15s;
}
.nav-links a::after{
  content:'';position:absolute;left:0;bottom:0;
  height:1px;width:0;background:var(--accent);transition:width .2s;
}
.nav-links a:hover{color:var(--ink)}
.nav-links a:hover::after{width:100%}
.nav-actions{display:flex;align-items:center;gap:14px}
.theme-switch{position:relative;width:40px;height:22px;display:inline-block}
.theme-switch input{opacity:0;width:0;height:0;position:absolute}
.theme-switch .slider{
  position:absolute;inset:0;
  background:var(--panel-alt);border:1px solid var(--line);
}
.theme-switch .slider::before{
  content:'';position:absolute;width:14px;height:14px;
  left:3px;top:3px;background:var(--accent);transition:.2s;
}
.theme-switch input:checked + .slider::before{left:22px}
.nav-toggle{
  display:none;flex-direction:column;gap:5px;
  background:none;border:none;padding:6px;
}
.nav-toggle span{width:22px;height:1.5px;background:var(--ink);transition:.2s;display:block}
.nav-toggle.active span:nth-child(1){transform:translateY(6.5px) rotate(45deg)}
.nav-toggle.active span:nth-child(2){opacity:0}
.nav-toggle.active span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg)}

/* ── REVEAL SCROLL ───────────────────────────────────────── */
.reveal{opacity:0;transform:translateY(24px);transition:opacity .65s ease,transform .65s ease}
.reveal.visible{opacity:1;transform:translateY(0)}

/* ── HOME / HERO ─────────────────────────────────────────── */
.home{max-width:var(--container);margin:0 auto;padding:80px 36px 0}
.home .relative{text-align:center}
.hero-eyebrow{
  display:inline-flex;align-items:center;gap:8px;
  font-size:.68rem;letter-spacing:2.5px;text-transform:uppercase;
  color:var(--accent);margin-bottom:20px;
}
.pulse-dot{
  width:6px;height:6px;border-radius:50%;background:var(--accent);
  animation:pulse 1.8s infinite;
}
@keyframes pulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.3;transform:scale(1.6)}}

/* Logo entrée — légèrement plus grand */
.logo-img{max-width:190px;margin:0 auto 32px;transition:opacity .2s}
.logo-img:hover{opacity:.85}
.logo-img.dark-ver {display:none}
.logo-img.light-ver{display:block}
html[data-theme="dark"] .logo-img.dark-ver {display:block}
html[data-theme="dark"] .logo-img.light-ver{display:none}

.hero-title{
  font-size:clamp(2.6rem,5.5vw,5.4rem);
  font-weight:700;letter-spacing:-2px;line-height:.95;
  text-transform:uppercase;margin:0 0 20px;
  word-break:break-word;font-family:'Space Mono',monospace;
}
.hero-title .outline{
  color:transparent;
  -webkit-text-stroke:2px var(--ink);
}
.hero-sub{
  color:var(--ink-dim);max-width:460px;margin:0 auto 40px;
  font-size:.83rem;line-height:1.75;
}

/* Tooltip logo */
#logoTooltip{
  max-width:560px;margin:0 auto 48px;
  background:var(--panel);border-left:3px solid var(--accent);
  padding:24px 28px;text-align:left;
  transition:opacity .3s;
}
#logoTooltip.hidden{display:none}
#logoTooltip.opacity-0{opacity:0}
#logoTooltip.opacity-100{opacity:1}
#logoTooltip h4{font-size:.72rem;text-transform:uppercase;letter-spacing:2px;color:var(--accent);margin:0 0 14px}
#logoTooltip p{margin:0 0 12px;color:var(--ink-dim);font-size:.8rem;line-height:1.7}
#logoTooltip ul{margin:0 0 12px;padding-left:16px;color:var(--ink-dim);font-size:.8rem}
#logoTooltip li{margin-bottom:6px}
#logoTooltip strong{color:var(--ink)}
#logoTooltip .close-hint{
  font-size:.66rem;color:var(--ink-dim);letter-spacing:1px;
  text-transform:uppercase;display:block;margin-top:16px;
  border-top:1px solid var(--line);padding-top:12px;
}

/* Marquee */
.marquee-strip{
  margin-top:48px;border-top:1px solid var(--line);
  overflow:hidden;white-space:nowrap;padding:12px 0;
  background:var(--ink);
}
.marquee-strip .track{display:inline-block;animation:scroll-left 30s linear infinite}
.marquee-strip:hover .track{animation-play-state:paused}
.marquee-strip span{
  display:inline-block;padding-right:32px;
  font-size:.72rem;letter-spacing:1px;text-transform:uppercase;color:var(--bg);
}
.marquee-strip span.dot{color:var(--accent)}
@keyframes scroll-left{from{transform:translateX(0)}to{transform:translateX(-50%)}}

/* ── SECTION SHARED ──────────────────────────────────────── */
.container{max-width:var(--container);margin:0 auto;padding:86px 36px}
.section-head{
  display:flex;align-items:baseline;justify-content:space-between;
  margin-bottom:48px;padding-bottom:18px;
  border-bottom:1px solid var(--accent);
  flex-wrap:wrap;gap:10px;
}
.heading-group{display:flex;align-items:center;gap:12px}
.index-tag{
  font-size:.66rem;background:var(--accent);color:#fff;
  padding:4px 9px;letter-spacing:1px;
}
.section-head h2{
  font-size:1.8rem;font-weight:700;letter-spacing:-1px;
  margin:0;text-transform:uppercase;
}
.count{font-size:.7rem;color:var(--ink-dim);letter-spacing:.5px}

/* Accordéon mobile */
.mobile-collapsible .section-header{display:none}
@media(max-width:760px){
  .mobile-collapsible .section-header{
    display:flex;align-items:center;justify-content:space-between;
    padding:18px 0;border-bottom:1px solid var(--line);cursor:pointer;
  }
  .mobile-collapsible .section-header h2{font-size:1.1rem;margin:0;text-transform:uppercase;font-weight:700}
  .mobile-collapsible .toggle-icon{font-size:1.1rem;color:var(--accent)}
  .mobile-collapsible .section-content{max-height:0;overflow:hidden;transition:max-height .4s ease}
  .mobile-collapsible .section-content>h2{display:none}
}

/* ── ARTISTS — layout magazine ───────────────────────────── */
.artist-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  grid-auto-rows:380px;
  gap:3px;
}
/* Première carte grande (2 colonnes) */
.artist-card:nth-child(1){grid-column:span 2;grid-row:span 2}
/* 7e carte grande aussi */
.artist-card:nth-child(7){grid-column:span 2}

.artist-card{
  position:relative;overflow:hidden;
  background:#111;background-size:cover;background-position:center top;
  transition:transform .4s cubic-bezier(.2,.8,.2,1);
}
.artist-card:hover{transform:scale(1.015);z-index:2}

/* Photo en N&B par défaut, couleur au hover */
.artist-card .photo-layer{
  position:absolute;inset:0;
  background-size:cover;background-position:center top;
  filter:grayscale(1) contrast(1.05);
  transition:filter .5s ease,transform .5s cubic-bezier(.2,.8,.2,1);
}
.artist-card:hover .photo-layer{
  filter:grayscale(0) contrast(1);
  transform:scale(1.06);
}

/* Overlay */
.artist-card .overlay{
  position:absolute;inset:0;
  background:linear-gradient(180deg,transparent 40%,rgba(0,0,0,.82) 100%);
  z-index:1;
}
/* Overlay accent orange au hover */
.artist-card::after{
  content:'';position:absolute;inset:0;z-index:2;
  background:linear-gradient(180deg,transparent 50%,rgba(255,90,31,.35) 100%);
  opacity:0;transition:opacity .4s;
}
.artist-card:hover::after{opacity:1}

.artist-card-content{
  position:absolute;left:0;right:0;bottom:0;z-index:3;
  padding:20px 18px;color:#fff;
  transform:translateY(4px);transition:transform .3s;
}
.artist-card:hover .artist-card-content{transform:translateY(0)}
.artist-card-content h3{
  font-size:.95rem;font-weight:700;margin:0 0 2px;
  text-transform:uppercase;letter-spacing:.5px;
}
.artist-card-content p{font-size:.7rem;opacity:.8;margin:0;font-family:'Space Mono',monospace}

/* ── LABEL — flip cards améliorées ──────────────────────── */
.labels{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}
.flip-card{perspective:1400px;height:400px}
.flip-card-inner{
  position:relative;width:100%;height:100%;
  transition:transform .55s cubic-bezier(.4,.2,.2,1);
  transform-style:preserve-3d;
}
.flip-card.is-flipped .flip-card-inner{transform:rotateY(180deg)}
.flip-card-front,.flip-card-back{
  position:absolute;inset:0;backface-visibility:hidden;
  border:1px solid var(--line);background:var(--panel);overflow:hidden;
}
/* Indication de flip visible : bordure animée + texte hint */
.flip-card-front{
  display:flex;flex-direction:column;align-items:center;
  justify-content:center;padding:28px;text-align:center;gap:12px;
  transition:border-color .2s;cursor:none;
}
.flip-card-front:hover{border-color:var(--accent)}
.flip-hint{
  font-size:.62rem;text-transform:uppercase;letter-spacing:2px;
  color:var(--accent);margin-top:8px;
  animation:blink-hint 2s ease-in-out infinite;
}
@keyframes blink-hint{0%,100%{opacity:1}50%{opacity:.3}}
.label-img{
  width:90px;height:90px;object-fit:cover;
  border-radius:50%;border:2px solid var(--line);
  transition:border-color .2s;
}
.flip-card-front:hover .label-img{border-color:var(--accent)}
.flip-card-front h3{font-size:1.1rem;font-weight:700;margin:0;text-transform:uppercase}

.flip-card-back{
  transform:rotateY(180deg);padding:24px;
  display:flex;flex-direction:column;
  /* Fix: scroll ne doit pas bloquer la page parente */
  overflow-y:auto;overscroll-behavior:contain;
}
.flip-card-back .back-header{
  display:flex;align-items:center;justify-content:space-between;
  margin-bottom:14px;
}
.flip-card-back h3{font-size:1rem;font-weight:700;margin:0;text-transform:uppercase}
.close-card-btn{
  font-size:.62rem;color:var(--accent);text-transform:uppercase;
  letter-spacing:1px;background:none;border:none;cursor:none;
  padding:4px 8px;border:1px solid var(--accent);
}
.flip-card-back p{font-size:.78rem;line-height:1.72;color:var(--ink-dim);margin:0 0 12px}
.flip-card-back iframe{margin-top:auto}

/* ── PODCAST ─────────────────────────────────────────────── */
.podcast-layout{
  display:grid;
  grid-template-columns:1fr 1.4fr;
  gap:56px;
  align-items:start;
}
.podcast-text .podcast-name{
  font-size:2.4rem;font-weight:700;letter-spacing:-1px;
  text-transform:uppercase;margin:0 0 24px;line-height:1;
}
.podcast-intro{
  font-size:.82rem;line-height:1.85;color:var(--ink-dim);
  margin:0 0 16px;
}
.podcast-player{
  border:1px solid var(--line);background:var(--panel);
}
.podcast-player iframe{display:block;width:100%;height:400px}
.podcast-meta{
  font-size:.66rem;color:var(--ink-dim);
  padding:10px 14px;border-top:1px solid var(--line);
}
.podcast-meta a{color:var(--ink-dim)}
.podcast-meta a:hover{color:var(--accent)}

/* ── EVENTS ──────────────────────────────────────────────── */
.event-description{
  font-size:.82rem;line-height:1.82;color:var(--ink-dim);
  max-width:720px;margin:0 0 36px;
}
.event-gallery{
  display:grid;
  grid-template-columns:2fr 1fr 1fr;
  grid-auto-rows:220px;
  gap:3px;
}
.event-gallery .ev-big{grid-row:span 2}
.event-gallery a{overflow:hidden;display:block;position:relative}
.event-gallery img{
  width:100%;height:100%;object-fit:cover;
  transition:transform .45s cubic-bezier(.2,.8,.2,1),filter .45s;
  filter:grayscale(20%);
}
.event-gallery a:hover img{transform:scale(1.06);filter:grayscale(0)}

/* ── MERCH ───────────────────────────────────────────────── */
.merch-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.merch-card{
  border:1px solid var(--line);background:var(--panel);
  overflow:hidden;transition:border-color .2s,transform .25s;
}
.merch-card:hover{transform:translateY(-4px);border-color:var(--accent)}
.merch-card img{
  width:100%;aspect-ratio:1/1;object-fit:cover;
  border-bottom:1px solid var(--line);background:var(--panel-alt);
  transition:transform .4s;filter:grayscale(15%);
}
.merch-card:hover img{transform:scale(1.04);filter:grayscale(0)}
.merch-card h3{font-size:.82rem;font-weight:700;margin:12px 14px 2px;text-transform:uppercase}
.merch-card p{font-size:.65rem;color:var(--accent);margin:0 14px 14px;text-transform:uppercase;letter-spacing:.5px}

/* ── ABOUT ───────────────────────────────────────────────── */
.about-split{display:grid;grid-template-columns:1.2fr .8fr;gap:56px;align-items:start}
.about-text p{font-size:.82rem;line-height:1.9;color:var(--ink-dim);margin:0}
.about-numbers{display:flex;flex-direction:column;gap:28px;border-left:2px solid var(--accent);padding-left:28px}
.about-numbers .num{font-size:3.4rem;font-weight:700;color:var(--accent);line-height:1}
.about-numbers .lbl{font-size:.62rem;text-transform:uppercase;letter-spacing:1.5px;color:var(--ink-dim);margin-top:2px}

/* ── BOUTONS ─────────────────────────────────────────────── */
.btn{
  display:inline-flex;align-items:center;gap:8px;
  font-family:'Space Mono',monospace;font-weight:700;
  font-size:.7rem;text-transform:uppercase;letter-spacing:1px;
  padding:12px 20px;background:var(--accent);color:#fff;
  border:none;transition:transform .15s,box-shadow .15s;
}
.btn:hover{transform:translate(-2px,-2px);box-shadow:3px 3px 0 var(--ink)}

/* ── FOOTER ──────────────────────────────────────────────── */
footer{background:var(--footer-bg);color:var(--footer-ink);border-top:1px solid #222}
.footer-contact{max-width:var(--container);margin:0 auto;padding:48px 36px}
.footer-contact h4{font-size:.78rem;text-transform:uppercase;letter-spacing:1px;margin:0 0 16px}
.footer-contact p{margin:0 0 6px;font-size:.82rem;color:var(--footer-ink)}
.footer-contact a{border-bottom:1px solid transparent;transition:border-color .2s,color .2s}
.footer-contact a:hover{border-color:var(--accent);color:var(--accent)}
.footer-social{display:flex;gap:12px;margin-top:22px}
.footer-social a{
  width:34px;height:34px;border:1px solid #333;border-radius:50%;
  display:flex;align-items:center;justify-content:center;font-size:.9rem;
  transition:border-color .2s,color .2s,background .2s;
}
.footer-social a:hover{border-color:var(--accent);color:#fff;background:var(--accent)}
.footer-bottom{
  border-top:1px solid #222;padding:20px 36px;
  display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px;
  font-size:.66rem;color:var(--footer-dim);
  max-width:var(--container);margin:0 auto;
}

/* ── RESPONSIVE ──────────────────────────────────────────── */
@media(max-width:1024px){
  .artist-grid{grid-template-columns:repeat(2,1fr);grid-auto-rows:320px}
  .artist-card:nth-child(1),.artist-card:nth-child(7){grid-column:span 1;grid-row:span 1}
  .about-split{grid-template-columns:1fr;gap:36px}
  .event-gallery{grid-template-columns:1fr 1fr;grid-auto-rows:200px}
  .event-gallery .ev-big{grid-row:span 1}
}
@media(max-width:760px){
  .nav{padding:0 20px}
  .nav-links{
    position:fixed;top:var(--hh);left:0;right:0;flex-direction:column;gap:0;
    background:var(--bg);border-bottom:1px solid var(--line);
    max-height:0;overflow:hidden;transition:max-height .3s;
    z-index:99;
  }
  .nav-links.active{max-height:450px}
  .nav-links li{width:100%}
  .nav-links a{display:block;padding:14px 20px;border-bottom:1px solid var(--line)}
  .nav-links a::after{display:none}
  .nav-toggle{display:flex}

  .home{padding:56px 20px 0}
  .hero-title{font-size:2.1rem;letter-spacing:-1.5px;word-break:break-word}

  .container{padding:56px 20px}
  .section-head h2{font-size:1.3rem}

  .podcast-layout{grid-template-columns:1fr;gap:32px}
  .podcast-text .podcast-name{font-size:1.8rem}
  .labels{grid-template-columns:1fr}
  .merch-grid{grid-template-columns:1fr 1fr}
  .event-gallery{grid-template-columns:1fr 1fr;grid-auto-rows:180px}
  .about-split{grid-template-columns:1fr;gap:0}
  .about-numbers{
    display:grid;grid-template-columns:repeat(3,1fr);
    gap:1px;background:var(--line);
    border:none;padding:0;flex-direction:unset;
    border-left:none;padding-left:0;border-top:none;margin-top:0;
  }
  .about-numbers>div{padding:16px 12px;background:var(--panel);text-align:center;border-top:1px solid var(--line)}
  .about-numbers .num{font-size:1.6rem}
  .about-numbers .lbl{font-size:.58rem}

  /* Artist grid mobile — 2 colonnes serrées */
  .artist-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    grid-auto-rows:52vw;
    gap:1px;
    background:var(--line);
    padding:0;margin:0;width:100%;
  }
  .artist-card:nth-child(1){grid-column:span 2;height:56vw}
  .artist-card{flex:none;width:auto;height:auto;aspect-ratio:unset;transform:none;margin:0;border:none;border-radius:0}
  .artist-card:hover{transform:none}
  .artist-card-content{transform:none;padding:10px 12px}
  .artist-card:hover .artist-card-content{transform:none}
  .artist-card-content h3{font-size:.8rem}
  .artist-card-content p{font-size:.62rem}

  /* Cursor off */
  #cursor,#cursor-ring{display:none!important}
  *{cursor:auto!important}

  /* Footer */
  .footer-bottom{flex-direction:column;text-align:center;font-size:.62rem}
}
@media(max-width:480px){
  .hero-title{font-size:1.75rem}
  .merch-grid{grid-template-columns:1fr 1fr}
}
@media(prefers-reduced-motion:reduce){
  *,.reveal{animation:none!important;transition-duration:.01ms!important}
}
