/* === Montserrat Alternates (landing + player) === */
@font-face {
  font-family: "MontserratAlternates";
  src: url("../fonts/MontserratAlternates-Regular.woff2") format("woff2"),
       url("../fonts/MontserratAlternates-Regular.woff") format("woff");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "MontserratAlternates";
  src: url("../fonts/MontserratAlternates-Italic.woff2") format("woff2"),
       url("../fonts/MontserratAlternates-Italic.woff") format("woff");
  font-weight: 400;
  font-style: italic;
  font-display: swap;
}

@font-face {
  font-family: "MontserratAlternates";
  src: url("../fonts/MontserratAlternates-Bold.woff2") format("woff2"),
       url("../fonts/MontserratAlternates-Bold.woff") format("woff");
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "MontserratAlternates";
  src: url("../fonts/MontserratAlternates-BoldItalic.woff2") format("woff2"),
       url("../fonts/MontserratAlternates-BoldItalic.woff") format("woff");
  font-weight: 700;
  font-style: italic;
  font-display: swap;
}

@font-face {
  font-family: "MontserratAlternates";
  src: url("../fonts/MontserratAlternates-ExtraBold.woff2") format("woff2"),
       url("../fonts/MontserratAlternates-ExtraBold.woff") format("woff");
  font-weight: 800;
  font-style: normal;
  font-display: swap;
}

/* Sacrifice */
@font-face {
  font-family: "Sacrifice";
  src: url("../fonts/Sacrifice-Regular.woff2") format("woff2"),
       url("../fonts/Sacrifice-Regular.woff") format("woff");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

/* === Fontes Satoshi locales (dossier fonts/, sans sous-dossier) === */
@font-face {
  font-family: "Satoshi";
  src: url("../fonts/Satoshi-Regular.woff2") format("woff2"),
       url("../fonts/Satoshi-Regular.woff") format("woff");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Satoshi";
  src: url("../fonts/Satoshi-Medium.woff2") format("woff2"),
       url("../fonts/Satoshi-Medium.woff") format("woff");
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Satoshi";
  src: url("../fonts/Satoshi-Bold.woff2") format("woff2"),
       url("../fonts/Satoshi-Bold.woff") format("woff");
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Satoshi";
  src: url("../fonts/Satoshi-Black.woff2") format("woff2"),
       url("../fonts/Satoshi-Black.woff") format("woff");
  font-weight: 900;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Satoshi";
  src: url("../fonts/Satoshi-Italic.woff2") format("woff2"),
       url("../fonts/Satoshi-Italic.woff") format("woff");
  font-weight: 400;
  font-style: italic;
  font-display: swap;
}

/* Titre principal "Buzz Bomb | Ladbroke | Da Monikeerz" */
.site-title {
  font-family: "MontserratAlternates", system-ui, -apple-system, "Segoe UI", sans-serif;
  font-weight: 800;
  font-size: 1.9rem;
  letter-spacing: 0.04em;
  margin: 0 0 0.5rem;
}

/* Bloc Since 1995 */
.since {
  text-align: center;
  margin: 2rem 0 0.5rem;
}

.since {
  text-align: center;
  margin: 2rem 0 0.5rem;
}

.since-label {
  display: block;
  font-family: "Sacrifice", "MontserratAlt",
    "Satoshi", system-ui, -apple-system, "Segoe UI", Arial, sans-serif;
  font-size: 1.2rem;
  letter-spacing: 0.12em;
  line-height: 1.05;        /* interlignage serré */
}

.since-year {
  display: block;
  font-family: "Satoshi", system-ui, -apple-system, "Segoe UI", Arial, sans-serif;
  font-size: 1.1rem;
  line-height: 1.05;
  margin-top: 0.1rem;       /* ajuste la distance verticale */
}

:root{
  --bg:#000; --fg:#e9eef2; --muted:#9aa4ae;
  --card:#181818;      /* carte gris foncé */
  --panel:#202020;     /* panneau boutons */
  --radius:18px; --maxw:1100px; color-scheme:dark;

  /* Couleurs plateformes */
  --spotify:#1DB954; --apple:#fa243c; --amazon:#fff;
  --deezer:#fff; --tidal:#fff; --youtube:#ff0000; --bandcamp:#639aa9;
}

*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;
  font-family:"Satoshi", system-ui, -apple-system, "Segoe UI", Arial, sans-serif;
  background:var(--bg); color:var(--fg);
  -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale;
}

/* Layout */
.page{min-height:100vh; display:flex; flex-direction:column; align-items:center}
.hero-wrap{ width:100%; max-width:var(--maxw); padding:24px; flex:1; display:flex; flex-direction:column; align-items:center }

/* Carte */
.card{
  width:100%;
  background:var(--card);
  border-radius:var(--radius);
  padding:26px;
  box-shadow:0 14px 50px rgba(0,0,0,.6);
}
.grid-2{
  display:grid;
  grid-template-columns: 420px 1fr;   /* 2 colonnes desktop */
  gap:22px;
  align-items:start;
}

/* Cover (~40% plus petite). Descendue sur desktop pour aérer. */
.left{ }
.cover-wrap{
  width:100%;
  background:#101010;
  border-radius:14px;
  padding:14px;
  display:flex;
  align-items:center;
  justify-content:center;
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.05);
  margin-top:0;                  /* cover remontée, alignée sur le titre */
}
.cover{
  max-width:100%; max-height:216px;
  width:auto; height:auto; display:block;
  border-radius:10px; object-fit:contain; background:#0b0b0b;
}

/* Titres */
.title{ margin:0 0 6px 0; font-size:28px; letter-spacing:.6px; font-weight:800 }
.subtitle{ margin:0 0 18px 0; color:var(--muted) }

/* Panneau scrollable des 7 boutons — indépendant, sans barre visible */
.linkpanel{
  background:var(--panel);
  border-radius:14px;
  padding:12px;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.04);
  max-height:360px;              /* hauteur fixe desktop → scroll interne */
  overflow:auto;
  -ms-overflow-style:none; scrollbar-width:none; overscroll-behavior:contain;
}
.linkpanel::-webkit-scrollbar{ width:0; height:0; background:transparent }

/* Liste et boutons compacts */
.linklist {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.btn-wide {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  width: 86%;                     /* plus étroit desktop */
  margin: 0 auto;
  padding: 12px 14px;             /* hauteur compacte */
  border-radius: 10px;
  font-weight: 800;
  font-size: 15px;
  text-decoration: none;
  box-shadow: 0 4px 12px rgba(0, 0, 0, .28);
  color: #111;
  background: #e7edf8;
  transition:
    transform .25s cubic-bezier(.25, .1, .25, 1),
    filter .25s ease,
    box-shadow .25s ease;
}

.btn-wide:hover {
  transform: scale(1.04);
  filter: brightness(1.1);
  box-shadow: 0 8px 20px rgba(0, 0, 0, .45);
}

.icon {
  width: 24px;    /* logos légèrement agrandis */
  height: 24px;
  display: block;
  transition: transform .25s ease;
}

.btn-wide:hover .icon {
  transform: scale(1.08);
}

/* Couleurs par service */
.spotify{ background:var(--spotify); color:#0b1c0f }
.applemusic{ background:var(--apple); color:#fff }
.amazon{ background:var(--amazon); color:#0b0b0b; border:1px solid rgba(0,0,0,.12) }
.deezer{ background:var(--deezer); color:#0b0b0b; border:1px solid rgba(0,0,0,.12) }
.tidal{ background:var(--tidal); color:#0b0b0b; border:1px solid rgba(0,0,0,.18) }
.youtube{ background:var(--youtube); color:#fff }
.bandcamp{ background:var(--bandcamp); color:#fff }

/* Réseaux sociaux + meta + footer centrés */
.socials{
  display:flex; flex-wrap:wrap; gap:14px; justify-content:center;
  margin:18px 0 8px 0;
}
.sbtn{
  width:42px; height:42px; border-radius:50%;
  background:#fff; display:inline-flex; align-items:center; justify-content:center;
  box-shadow:0 2px 8px rgba(0,0,0,.25);
}
.sicon{ width:22px; height:22px; display:block }

.meta{ color:var(--muted); font-size:13px; text-align:center; margin-top:10px }
.release-info{ margin-top:22px; color:var(--muted); font-size:13px; text-align:center }
.mini-footer{ margin-top:22px; color:var(--muted); font-size:13px; text-align:center }

/* Mobile: 1 colonne, cover masqué, panneau centré, boutons plus étroits */
@media (max-width:900px){
  .grid-2{ grid-template-columns:1fr }
  .hero-wrap{ padding:16px }
  .card{ padding:18px; border-radius:16px }

  /* Cover visible et plus grande au-dessus des boutons */
  .left{ display:block }
  .cover-wrap{
    margin:0 auto 14px auto;
    max-width:min(520px, 94%);
  }
  .cover{
    max-height:360px;   /* augmente/descends cette valeur pour ajuster */
    width:100%;
  }

  .title, .subtitle{ text-align:center }

  /* Panneau scrollable centré et plus étroit que l'écran */
  .linkpanel{
    max-height:62vh;
    padding:12px;
    border-radius:12px;
    background:var(--panel);
    margin:0 auto;
    width:min(540px, 94%);
  }

  /* Boutons plus fins et étroits */
  .btn-wide{
    width:82%;
    padding:10px 12px;
    gap:8px;
    font-size:14px;
  }
  .icon{ width:20px; height:20px }
}
.sbtn {
  transition: transform .2s ease, filter .2s ease, box-shadow .2s ease;
}
.sbtn:hover {
  transform: scale(1.1);
  box-shadow: 0 4px 12px rgba(255,255,255,.25);
  filter: brightness(1.15);
}
  /* Tagline: centrée + 2 lignes avec suffixe plus petit */
.tagline { margin: 0 0 18px 0; }
.tagline em { font-style: italic; }

/* Mobile */
@media (max-width:900px){
  h2.tagline{
    text-align:center;
    line-height:1.15;
  }
  h2.tagline em{
    display:block;               /* force la 1re ligne seule */
  }
  h2.tagline .tagline-suffix{
    display:block;               /* 2e ligne */
    font-size: clamp(16px, 4.2vw, 18px);
    font-weight: 600;
    opacity:.95;
  }
  /* Centrer "Sortie prévue: 11/2025" */
  p[data-i18n="release"]{
    text-align:center;
  }
}

/* === Correctifs mobile: centrage tagline + "Sortie prévue" === */
@media (max-width: 900px){
  .right h2.tagline{
    text-align: center !important;
    line-height: 1.15;
    margin-left: auto;
    margin-right: auto;
  }
  .right h2.tagline em{
    display: block;           /* 1re ligne seule */
    font-style: italic;
  }
  .right h2.tagline .tagline-suffix{
    display: block;           /* 2e ligne */
    font-size: clamp(16px, 4.2vw, 18px);
    font-weight: 600;
    opacity: .95;
  }

  /* Centrer "Sortie prévue: 11/2025" */
  .right p[data-i18n="release"]{
    text-align: center !important;
    margin-left: auto;
    margin-right: auto;
  }
}
.tagline-suffix {
  color: #ffb857;  /* exemple : orange chaud */
}
/* === Desktop: centrage titre + tagline + sortie prévue dans la colonne droite === */
@media (min-width: 901px){
  .right h1,
  .right h2.tagline,
  .right p[data-i18n="release"]{
    text-align: center;
    margin-left: auto;
    margin-right: auto;
    width: 100%;
  }
}
/* Bouton "Site" (globe) : fond + halo de base */
.socials .sbtn-globe{
  background-color: #eeefd0 !important;
  box-shadow:
    0 0 0 2px rgba(238,239,208,.45) inset,
    0 0 10px rgba(238,239,208,.35);
  position: relative;
}

/* Tooltip : "Enter site →" sur le lien du globe */
.socials a.is-globe::before {
  content: "Enter site →";
  position: absolute;
  bottom: -35px;
  left: 50%;
  transform: translateX(-50%);
  opacity: 0;
  font-size: 0.75rem;
  color: #fbbf24;
  white-space: nowrap;
  transition: opacity .25s ease;
  pointer-events: none;
}

.socials a.is-globe:hover::before {
  opacity: 1;
}

/* Pulsation rouge autour du globe (animée) */
.socials .sbtn-globe::after{
  content: "";
  position: absolute;
  inset: -6px;                  /* halo plus large */
  border-radius: 50%;
  border: 3px solid rgba(255, 60, 60, 0.85); /* rouge vif */
  box-shadow:
    0 0 12px rgba(255, 60, 60, 0.85),
    0 0 24px rgba(255, 60, 60, 0.65),
    0 0 36px rgba(255, 60, 60, 0.45);
  animation: globePulseStrong 1.8s ease-out infinite;
  pointer-events: none;
}

@keyframes globePulseStrong{
  0%   { transform: scale(1);    opacity: 1;    }
  50%  { transform: scale(1.45); opacity: 0.75; }
  80%  { transform: scale(1.75); opacity: 0.15; }
  100% { transform: scale(1.85); opacity: 0;    }
}

/* Micro-rotation lente + respect prefers-reduced-motion */
@media (prefers-reduced-motion: no-preference){
  .socials .sbtn-globe .sicon{
    animation: globeSpin 10s linear infinite; /* rotation très lente */
    transform-origin: 50% 50%;
  }

  @keyframes globeSpin{
    from { transform: rotate(0deg);   }
    to   { transform: rotate(360deg); }
  }

  /* léger zoom au survol (desktop / pointeur) */
  .socials .sbtn-globe:hover{
    transform: scale(1.08);
  }
}

/* Hover : halo blanc fort, arrêt pulsation + affichage tooltip */
.socials .sbtn-globe:hover::after {
  border-color: rgba(255,255,255,0.9);
  box-shadow:
    0 0 14px rgba(255,255,255,0.9),
    0 0 26px rgba(255,255,255,0.6),
    0 0 38px rgba(255,255,255,0.4);
  animation: none;   /* stop pulsation rouge */
}

.socials .sbtn-globe:hover::before {
  opacity: 1;
}

/* Forcer la rotation sur Safari iOS / iPadOS */
.socials .sbtn-globe .sicon {
  will-change: transform;
  transform: rotate(0.0001deg);
}

/* Tooltip sur TOUTES les icônes sauf le globe */
.socials a:not(.is-globe):hover::before {
  content: "Maybe one day…";
  position: absolute;
  left: 50%;
  top: -38px;
  transform: translateX(-50%);
  padding: 4px 10px;
  background: rgba(0, 0, 0, 0.75);
  color: #ffffff;
  font-size: 0.75rem;
  font-style: italic;
  font-weight: 400;
  border-radius: 6px;
  white-space: nowrap;
  opacity: 0;
  pointer-events: none;
  animation: tooltipFade 0.25s ease forwards;
}

/* Animation fade-in */
@keyframes tooltipFade {
  from { opacity: 0; transform: translateX(-50%) translateY(4px); }
  to   { opacity: 1; transform: translateX(-50%) translateY(0); }
}

/* --- Legacy playlist --- */
.bb-player-card{
  max-width:800px;margin:30px auto;padding:20px;border:1px solid rgba(255,255,255,.2);
  border-radius:18px;background:rgba(255,255,255,.03);backdrop-filter:blur(3px);
  box-shadow:0 6px 24px rgba(0,0,0,.28),inset 0 1px 0 rgba(255,255,255,.06);
}

.bb-player-meta{
  display:flex;align-items:center;gap:14px;margin-bottom:14px;
}

.bb-cover{
  width:64px;height:64px;border-radius:12px;object-fit:cover;
}

.bb-playlist{
  max-width:800px;margin:20px auto;display:flex;flex-direction:column;gap:6px;
}

.bb-track-row{
  display:flex;align-items:center;gap:12px;padding:10px;border-radius:10px;
  background:rgba(255,255,255,.05);cursor:pointer;transition:.15s;
}
.bb-track-row:hover{background:rgba(255,255,255,.08);}
.bb-track-row.active{background:#eeefd0;color:#000;font-weight:600;}

bb-track-row img{
  width:44px;height:44px;border-radius:8px;object-fit:cover;
}

.bb-track-info{flex:1;}
.bb-track-info p{margin:0;font-size:.85rem;opacity:.8;
}
/* === Cadre central + playlist (legacy) === */
.bb-frame{
  max-width: 760px;
  margin: 40px auto 18px;
  padding: 24px 22px;
  text-align: center;
  border: 2px solid #eeefd0;         /* cadre jaune pâle */
  border-radius: 14px;
  background: rgba(255,255,255,.03);
  box-shadow: 0 6px 24px rgba(0,0,0,.25), inset 0 1px 0 rgba(255,255,255,.06);
}

.bb-count{ margin: 0 0 10px; letter-spacing: .06em; opacity: .8; font-size: .9rem; }
.bb-count{ position: relative; z-index: 1; }
.bb-cover-lg{ width: 220px; height: 220px; object-fit: cover; border-radius: 16px; box-shadow: 0 6px 16px rgba(0,0,0,.35); margin-bottom: 12px; }

.bb-title-lg{ font-size: clamp(24px, 4.2vw, 44px); margin: 8px 0 0; }
.bb-artist-lg{ margin: 4px 0 12px; opacity: .85; font-weight: 600; }

.bb-transport{ display:flex; gap:14px; justify-content:center; align-items:center; margin: 10px 0 8px; }
.bb-btn{ font: inherit; padding:8px 12px; border-radius: 999px; border: 1px solid rgba(255,255,255,.25); background:#2a2a2a; color:#fff; cursor:pointer; }
bb-btn:hover{ filter: brightness(1.1); }
.bb-btn-main{ width:56px; height:56px; font-size: 22px; border-width:2px; }

/* ========================================================= */
/* Player audio – boutons personnalisés (SVG)                 */
/* pl-back-*.svg / pl-next-*.svg / pl-play-*.svg / pl-pause-*.svg */
/* Dossier : site/assets/img                                  */
/* ========================================================= */

/* Reset visuel de base des boutons, on garde la forme existante */
/* Boutons transport : on laisse l’icône SVG faire tout le visuel */
.bb-btn {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;

  width: 48px;
  height: 48px;

  padding: 0;
  margin: 0 6px;

  border-radius: 50%;
  border: none;
  background: transparent;      /* plus de cercle gris derrière */
  box-shadow: none;

  cursor: pointer;
  font-size: 0;                 /* masque le caractère Unicode */
  line-height: 0;
}

/* Bouton central un peu plus grand si tu veux garder une hiérarchie */
.bb-btn-main {
  width: 56px;
  height: 56px;
}

/* L’icône SVG qu’on a déjà mis en ::before plus tôt reste inchangée */
/* (bb-btn::before, #bb-prev::before, #bb-next::before, #bb-play::before, etc.) */

/* On utilise un ::before pour afficher l’icône */
.bb-btn::before {
  content: "";
  display: block;
  width: 90%;              /* au lieu de 24px */
  height: 90%;             /* au lieu de 24px */
  background-repeat: no-repeat;
  background-position: center;
  background-size: 90%;    /* au lieu de contain */
  margin: 0 auto;
}

/* PREVIOUS (back) – mode sombre par défaut */
#bb-prev::before {
  background-image: url("../img/pl-back-dark.svg");
}

/* NEXT – mode sombre */
#bb-next::before {
  background-image: url("../img/pl-next-dark.svg");
}

/* PLAY par défaut – mode sombre */
#bb-play::before {
  background-image: url("../img/pl-play-dark.svg");
}

/* Quand le player est en lecture (#bb-legacy-player.playing) → icône PAUSE */
#bb-legacy-player.playing #bb-play::before {
  background-image: url("../img/pl-pause-dark.svg");
}

/* ------- Variantes en mode clair ------- */

body.light-mode #bb-prev::before {
  background-image: url("../img/pl-back-light.svg");
}

body.light-mode #bb-next::before {
  background-image: url("../img/pl-next-light.svg");
}

body.light-mode #bb-play::before {
  background-image: url("../img/pl-play-light.svg");
}

body.light-mode #bb-legacy-player.playing #bb-play::before {
  background-image: url("../img/pl-pause-light.svg");
}

.bb-playlist-grid{
  max-width: 760px;
  margin: 10px auto 32px;
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
  gap: 8px;
}
.bb-track-row{
  display:flex; gap:10px; align-items:center;
  text-align:left; padding:10px; border-radius:10px; background:rgba(255,255,255,.05);
  border:1px solid rgba(255,255,255,.08);
}
.bb-track-row.active{ background:#eeefd0; color:#000; font-weight:600; }
.bb-track-row img{ width:44px; height:44px; border-radius:8px; object-fit:cover; }
.bb-track-info p{ margin:0; opacity:.8; font-size:.9rem; }

/* Mobile */
@media (max-width: 600px){
  .bb-frame{ margin: 24px 12px 12px; padding: 18px 14px; }
  .bb-cover-lg{ width: 180px; height: 180px; }
  .bb-playlist-grid{ grid-template-columns: 1fr; }
}
/* Correction dark-mode legacy player */
body.dark-mode .bb-frame{ background: rgba(255,255,255,0.04); border-color:#cdd2a3; }
body.dark-mode .bb-title-lg, body.dark-mode .bb-artist-lg, body.dark-mode .bb-count{ color:#fff; }
body.dark-mode .bb-btn{ background:#444; border-color:rgba(255,255,255,.25); color:#fff; }
body.dark-mode .bb-track-row{ background:rgba(255,255,255,.08); border-color:rgba(255,255,255,.15); color:#fff; }
body.dark-mode .bb-track-row.active{ background:#eeefd0; color:#000; }
body.dark-mode .plyr--audio .plyr__controls{ background:rgba(255,255,255,0.08) !important; }
body.dark-mode .plyr__control{ color:#fff !important; }

/* Player audio : utiliser Montserrat Alternates pour le texte */
.bb-frame,
.bb-frame h1,
.bb-frame h2,
.bb-frame h3,
.bb-frame p,
.bb-frame button,
.bb-frame .bb-title-lg,
.bb-frame .bb-artist-lg,
.bb-frame .bb-playlist-item {
  font-family: "MontserratAlternates", system-ui, -apple-system, "Segoe UI", sans-serif;
}

/* === Vinyl UI === */
.bb-turntable{ position:relative; width:260px; height:260px; margin:0 auto 12px; }
.bb-vinyl{
  position:relative; width:100%; height:100%; border-radius:50%;
  background:
    radial-gradient(circle at 50% 50%, #111 0 30%, #0c0c0c 30.5% 48%, #111 48.5% 64%, #0c0c0c 64.5% 100%);
  box-shadow: inset 0 0 0 8px #000, 0 8px 16px rgba(0,0,0,.35);
  animation: bbSpin 12s linear infinite;
  animation-play-state: paused;
}
.bb-vinyl::after{
  content:""; position:absolute; inset:0; border-radius:50%;
  background:
    radial-gradient(circle at 50% 50%, transparent 60%, rgba(255,255,255,.05) 61% 80%, transparent 81%),
    repeating-radial-gradient(circle at 50% 50%, transparent 0 2px, rgba(255,255,255,.04) 2px 3px);
  pointer-events:none;
}
.bb-label{
  position:absolute; inset:50% auto auto 50%; width:42%; height:42%;
  transform:translate(-50%,-50%); border-radius:50%; object-fit:cover;
  box-shadow: inset 0 0 0 6px #000, 0 0 0 1px rgba(255,255,255,.08);
}
.bb-tonearm{
  position: absolute;
  right: -6px;         /* avant : -18px */
  top: 6px;            /* avant : -18px */
  width: 140px; height: 18px;
  transform-origin: 20px 9px;
  transform: rotate(-26deg);
  background: linear-gradient(90deg,#999,#bbb);
  border-radius: 9px;
  box-shadow: 0 2px 6px rgba(0,0,0,.35);
  z-index: 0;          /* passe derrière le libellé "PLAYING..." */
}
.bb-tonearm::before{
  content:""; position:absolute; left:0; top:0; width:28px; height:18px;
  border-radius:9px; background:#666; box-shadow:inset 0 0 0 2px rgba(0,0,0,.25);
}
.bb-tonearm::after{
  content:""; position:absolute; right:-8px; top:4px; width:22px; height:10px;
  border-radius:5px; background:#222;
}
#bb-legacy-player.playing .bb-vinyl{ animation-play-state: running; }
#bb-legacy-player.playing .bb-tonearm{ transform: rotate(-6deg); }
body.dark-mode .bb-tonearm{ background: linear-gradient(90deg,#777,#9a9a9a); }
@keyframes bbSpin { from{transform:rotate(0)} to{transform:rotate(360deg)} }
@media (max-width:600px){ .bb-turntable{ width:200px; height:200px; } }

/* Centre propre du header et du footer */
.center{
  max-width: 1100px;
  margin-left: auto;
  margin-right: auto;
  text-align: center !important;
}
.center p, .center h2 { text-align: center !important; }

/* Modes explicites */
body.light-mode{ background:#f2f2f2 !important; color:#111 !important; }
body.dark-mode { background:#000 !important;  color:#fff !important; }

/* Mode clair : fond jaune clair pour la carte principale */
body.light-mode .card{
  background:#eeefd0 !important;
}

/* Blocs principaux (player + tracklist) en jaune clair en mode clair */
body.light-mode .card,
body.light-mode .bb-frame,
body.light-mode .bb-player-card,
body.light-mode .bb-playlist-grid > div,
body.light-mode .bb-track-row {
  background: #eeefd0 !important;
}

/* Bords plus doux, comme la page Pressbook */
body.light-mode .card,
body.light-mode .bb-frame {
  border-color: rgba(0,0,0,0.10) !important;
}

/* Liens du header/footer */
.center a{ color: inherit; }
body.light-mode .center a{ color:#111; }
body.dark-mode  .center a{ color:#fff; }

/* Plyr lisible en clair comme en sombre */
body.light-mode .plyr--audio .plyr__controls{ background: rgba(0,0,0,.06) !important; }
body.dark-mode  .plyr--audio .plyr__controls{ background: rgba(255,255,255,.08) !important; }

.email-mask .hint{ pointer-events:none; }
.email-mask .hidden-email{ display:none; font-weight:700; }
.email-mask.revealed .hint{ display:none; }
.email-mask.revealed .hidden-email{ display:inline; }

/* Lisibilité en mode clair */
body.light-mode .bb-track-row{
  background: #eeefd0;
  border-color: rgba(0,0,0,.10);
  color: #111;
}

body.light-mode .bb-track-row .bb-track-info strong{
  color: #0f172a;              /* titre */
}
body.light-mode .bb-track-row .bb-track-info p{
  color: #334155;              /* artiste */
  opacity: .9;                 /* pas de blanchiment */
}

/* L’item actif reste contrasté */
body.light-mode .bb-track-row.active{
  background: #eeefd0;
  color: #000;
}

/* Email mask */
.email-mask { cursor: pointer; }
.email-mask .hidden-email { display: none; font-weight: 700; }
.email-mask.revealed .hidden-email { display: inline; }
.email-mask.revealed .hint { display: none; }
.email-mask .hint { pointer-events: none; }

/* Lisibilité en mode clair */
body.light-mode .bb-track-row{
  background: #eeefd0;
  border-color: rgba(0,0,0,.10);
  color: #111;
}

body.light-mode .bb-track-row:hover{
  background: #e5e7c8;  /* léger assombrissement au survol */
}
body.light-mode .bb-track-row:hover{ background: rgba(0,0,0,.10); }
body.light-mode .bb-track-row .bb-track-info strong{ color: #0f172a; }
body.light-mode .bb-track-row .bb-track-info p{ color: #334155; opacity: .9; }

/* L’item actif reste contrasté */
body.light-mode .bb-track-row.active{
  background: #eeefd0;
  color: #000;
}
.remaster-note {
  margin-top: 1.5rem;
  padding: 0;
  color: #f4f4f4;
  font-size: 1.05rem;
  font-style: italic;
  font-weight: 500;
  letter-spacing: 0.03em;
  line-height: 1.5;
}

/* Version desktop */
@media (min-width: 769px) {
  .remaster-note {
    text-align: left;
    max-width: 32rem;
    margin-left: 0;
    margin-right: 0;
  }
}

@media (min-width: 901px){
  .cover{
    max-height:500px;   /* cover plus grande sur desktop */
  }
}

/* Légère emphase sur 'still solid' */
.tagline-strong {
  white-space: nowrap;      /* évite de casser "still solid" */
}
/* Titres des morceaux en italique */
.track-title {
    font-style: italic;
}
/* Noms d’artistes en bold */
.track-artist {
    font-weight: 700;
}

/* ===== Player styling overrides ===== */

/* TITRE : italique */
#bb-playlist .bb-track-info strong {
  font-style: italic;
  font-weight: normal; /* on annule le gras paramétré par <strong> */
}

/* ARTISTE : gras */
#bb-playlist .bb-track-info p {
  font-weight: 700;
  font-style: normal; /* s'assurer qu’il n’hérite pas d’un italic */
}

/* TITRE du morceau en cours (gros player) : italique */
#bb-title.bb-title-lg {
  font-style: italic;
  font-weight: normal;  /* on annule un éventuel gras par défaut */
}

/* ARTISTE du morceau en cours (gros player) : gras */
#bb-artist.bb-artist-lg {
  font-weight: 700;
  font-style: normal;
}



/* ---------- Bouton Day / Night type pressbook ---------- */

.theme-toggle {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.35rem 0.75rem 0.35rem 0.55rem;
  border-radius: 999px;
  border: 1px solid rgba(148, 163, 184, 0.5);
  background: rgba(15, 23, 42, 0.85);
  color: #e5e7eb;
  font-size: 0.8rem;
  font-weight: 600;
  cursor: pointer;
  user-select: none;
  transition: background 0.2s ease, border-color 0.2s ease, color 0.2s ease;
}

.theme-toggle:hover {
  background: rgba(30, 64, 175, 0.9);
  border-color: rgba(191, 219, 254, 0.9);
}

.theme-toggle__label {
  white-space: nowrap;
}

.theme-toggle__icon {
  width: 1.35rem;
  height: 1.35rem;
  border-radius: 999px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.85rem;
  background: #0b1120;
}

.theme-toggle__icon--sun {
  display: none;
}

/* état visuel en mode clair */
body.light-mode .theme-toggle {
  background: #f9fafb;
  color: #0f172a;
  border-color: rgba(148, 163, 184, 0.6);
}

body.light-mode .theme-toggle__icon {
  background: #e5e7eb;
}

body.light-mode .theme-toggle__icon--moon {
  display: none;
}

body.light-mode .theme-toggle__icon--sun {
  display: flex;
}

/* Tagline déplacée sous la cover */
.tagline-left {
  margin-top: 1.4rem;
  max-width: 22rem;
  font-size: 1.3rem;
  line-height: 1.4;
  text-align: left;
}

.tagline-below{
  margin: 12px auto 0;
  max-width: 320px;
  text-align: center;
  font-size: 0.95rem;
  line-height: 1.5;
  color: #fbbf24;
}

/* Force l’élément tagline-below à être centré dans la colonne left */
.left .tagline-below {
  display: block;
  width: 100%;
  text-align: center !important;
  margin-left: auto;
  margin-right: auto;
}

/* Centrer la tagline sous la cover en mode desktop */
.left {
  display: flex;
  flex-direction: column;
  align-items: center;     /* centre horizontalement tout le contenu */
}

.left .tagline-below {
  text-align: center !important;
  max-width: 480px;        /* optionnel : un peu + large */
}

/* Titre d’album conservé à droite */
.tagline--album {
  margin: 0 0 1.2rem;
  font-size: 1.2rem;
  line-height: 1.2;
}

/* Mobile : recentrer la tagline sous la cover */
@media (max-width: 900px) {
  .tagline-left {
    text-align: center;
    max-width: 100%;
    margin-top: 1rem;
  }
}

/* ------------------------------ */
/* Typos landing page — Buzz Bomb */
/* ------------------------------ */

/* Titres : Montserrat Alternates */
.title,
.tagline em {
  font-family: "MontserratAlternates", sans-serif !important;
  font-weight: 700;
}

/* Sous-titre (album) */
.tagline em {
  font-weight: 600;
}

/* Texte général : Satoshi */
body,
.linkpanel,
.linklist,
.btn-wide,
.release-info,
.mini-footer,
.socials,
.tagline-below,
.tagline-suffix,
.tagline-strong {
  font-family: "Satoshi", sans-serif !important;
}

/* ========================== */
/* Mobile : cover plus grande */
/* ========================== */
@media (max-width: 768px) {
  .cover-wrap .cover {
    width: 90vw;           /* largeur adaptée à l’écran */
    max-width: 420px;      /* plafond raisonnable, tu peux augmenter */
    margin: 0 auto;        /* centrage horizontal */
    display: block;
  }

  /* Ajustement du container pour éviter un écrasement */
  .left {
    text-align: center;
  }
}

/* ========================== */
/* Mobile : agrandir cover    */
/* ========================== */
@media (max-width: 768px) {

  .cover {
    width: 100% !important;
    max-width: 500px !important; /* augmente ou diminue selon ton goût */
    height: auto !important;
    display: block;
    margin: 0 auto;
  }

  .cover-wrap {
    width: 100% !important;
    max-width: 500px !important;
    margin: 0 auto;
  }
}

/* ------------------------------------------------------ */
/* Sous-titre : "(Remastered 2025)"                       */
/* Style : MontserratAlternates Regular, discret, centré   */
/* ------------------------------------------------------ */
.album-note {
  display: block;
  margin-top: 4px;
  font-family: "MontserratAlternates", sans-serif;
  font-weight: 400;               /* Regular */
  font-size: 0.9rem;
  letter-spacing: 0.01em;
  opacity: 0.9;
  text-align: center;
  color: #e8e8e8;
}

/* Mobile : légère augmentation pour la lisibilité */
@media (max-width: 900px) {
  .album-note {
    font-size: 1.1rem;
    margin-top: 6px;
  }
}

/* Taille de la tagline sous la cover (desktop) */
@media (min-width: 901px) {
  .left .tagline-left {
    font-size: 1.3rem;  /* ajuste ici à ton goût */
  }
}


/* Tooltips "Maybe one day…" pour icônes inactives (sauf le globe) */
.socials a:not(.is-globe):hover::before {
  content: "Maybe one day…";
  position: absolute;
  left: 50%;
  top: -38px;
  transform: translateX(-50%);
  padding: 4px 10px;
  background: rgba(0, 0, 0, 0.75);
  color: #ffffff;
  font-size: 0.75rem;
  font-style: italic;
  font-weight: 400;
  border-radius: 6px;
  white-space: nowrap;
  opacity: 0;
  pointer-events: none;
  animation: tooltipFade 0.25s ease forwards;
}

/* Positionnement correct : les <a> doivent être en relative */
.socials a {
  position: relative;
}

/* -------------------------------------------------- */
/* Hover des morceaux (playlist)                      */
/* -------------------------------------------------- */

/* Transition douce sur chaque ligne */
.bb-track-row {
  transition:
    background-color 0.18s ease,
    transform 0.18s ease,
    box-shadow 0.18s ease;
}

/* Hover en mode clair : léger relief + fond un peu plus clair */
body.light-mode .bb-track-row:hover:not(.active) {
  background-color: #f4f3de;  /* un poil plus clair que #eeefd0 */
  transform: translateY(-2px);
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.12);
}

/* Hover en mode sombre : éclaircir un peu la carte */
body.dark-mode .bb-track-row:hover:not(.active) {
  background-color: rgba(255, 255, 255, 0.12);
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.5);
}

/* ---------- Header : desktop sticky, mobile normal ---------- */

/* Desktop & grands écrans : header fixé */
.site-header {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 1000;
  background: #000;
  padding: 12px 0 10px;
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.35);
}

/* Variante mode clair */
body.light-mode .site-header {
  background: #f2f2f2;
  box-shadow: 0 6px 18px rgba(0, 0, 0, 0.15);
}

/* Contenu centré comme avant */
.site-header .center {
  padding: 0 24px;
}

.site-header .site-title {
  margin: 0 0 0.5rem;
}

.site-header .center p {
  margin: 0;
}

/* Bouton mode sous le titre */
.site-header .theme-toggle {
  margin: 0.6rem 0 0.8rem;
}

/* --- Intro texte au-dessus du player (desktop) --- */

.site-intro {
  max-width: 830px;
  margin: 160px auto 58px;   /* place pour le header fixe */
  padding: 0 32px;
  line-height: 1.7;
  text-align: justify;
}

.site-intro p {
  margin: 0 0 1.3em;
}

.site-intro p.intro-tight-after {
  margin-bottom: 0.3em;
}

.small-gap {
  display: block;
  margin-bottom: 0;
  line-height: 0.15;
}

.site-intro p:last-child {
  text-align: left;
}

/* Dernière phrase au-dessus du player */
.site-intro-end {
  font-style: normal;
  font-weight: 700;
  opacity: .85;
  margin-top: 1.8em;
  margin-bottom: 0.8em;
  text-align: center;
}

/* ================== */
/* Mobile / tablette  */
/* ================== */

@media (max-width: 768px) {

  /* Sur mobile : header NON sticky, plus compact, pas de burger */
  .site-header {
    position: static;
    top: auto;
    left: auto;
    right: auto;
    box-shadow: none;
    padding: 10px 0 8px;
  }

  .site-header .center {
    padding: 0 14px;
  }

  .site-header .site-title {
    font-size: clamp(1.4rem, 5.2vw, 1.8rem);
    line-height: 1.2;
  }

  .site-header .theme-toggle {
    margin-top: 0.8rem;
    margin-bottom: 0.6rem;
  }

  .site-header .center p {
    font-size: 0.9rem;
    line-height: 1.4;
  }

  /* Intro : pas de super-marge, on voit bien le début du texte */
  .site-intro {
    margin: 2rem auto 2rem;
    padding: 0 1.1rem;
    line-height: 1.6;
  }
}

/* ----------------------------------------------------------- */
/* Discographie — Lisibilité du header en thème clair          */
/* ----------------------------------------------------------- */

body.light-mode .filters label {
  color: #020617; /* noir lisible */
}

body.light-mode .filters select,
body.light-mode .filters input {
  background: #ffffff;
  border-color: #cbd5e1;
  color: #020617; /* texte noir */
}

body.light-mode .filters input::placeholder {
  color: #475569; /* gris lisible */
}

/* Bouton Day/Night en thème clair */
body.light-mode .theme-toggle {
  background: #f9fafb;
  color: #0f172a;
  border-color: rgba(148, 163, 184, 0.6);
}

body.light-mode .theme-toggle__icon {
  background: #e5e7eb;
}