    :root {
      --bg: #12051c;
      --bg2: #1f0930;
      --panel: rgba(20, 20, 28, 0.82);
      --panel-2: rgba(36, 14, 48, 0.88);
      --text: #f6ecff;
      --muted: #d8bfe7;
      --accent: #ff2f92;
      --accent-2: #00d4ff;
      --accent-3: #ffd447;
      --accent-4: #7f5cff;
      --line: rgba(255,255,255,0.12);
      --shadow: 0 18px 60px rgba(0,0,0,0.35);
      --radius: 22px;
    }

    * { box-sizing: border-box; }
    html {
      font-size: 16px; /* taille de base fixe : 1rem = 16px dans TOUS les navigateurs, quel que soit le réglage par défaut (Edge, Firefox…) */
      scroll-behavior: smooth;
      scrollbar-color: var(--accent) #1c0a2b;
      scrollbar-width: thin;
    }

    /* Barre de défilement assortie (Chrome, Edge, Safari) */
    ::-webkit-scrollbar { width: 11px; }
    ::-webkit-scrollbar-track { background: #170723; }
    ::-webkit-scrollbar-thumb {
      background: linear-gradient(180deg, var(--accent), var(--accent-4), var(--accent-2));
      border-radius: 8px;
      border: 2px solid #170723;
    }
    ::-webkit-scrollbar-thumb:hover {
      background: linear-gradient(180deg, #ff5ca8, #22e0ff);
    }

    ::selection { background: rgba(255, 47, 146, 0.45); color: #ffffff; }
    body {
      margin: 0;
      font-family: Arial, Helvetica, sans-serif;
      color: var(--text);
      background:
        radial-gradient(circle at top left, rgba(255, 47, 146, 0.30), transparent 30%),
        radial-gradient(circle at top right, rgba(0, 212, 255, 0.26), transparent 28%),
        radial-gradient(circle at 85% 85%, rgba(255, 212, 71, 0.12), transparent 30%),
        linear-gradient(180deg, #09020f 0%, var(--bg) 38%, var(--bg2) 100%);
      line-height: 1.65;
    }

    /* Lumières disco animées : les couleurs du fond bougent doucement */
    body::before {
      content: "";
      position: fixed;
      inset: -20%;
      z-index: -1;
      pointer-events: none;
      background:
        radial-gradient(circle at 22% 28%, rgba(255, 47, 146, 0.15), transparent 34%),
        radial-gradient(circle at 78% 18%, rgba(0, 212, 255, 0.14), transparent 34%),
        radial-gradient(circle at 62% 78%, rgba(255, 212, 71, 0.09), transparent 36%),
        radial-gradient(circle at 18% 82%, rgba(127, 92, 255, 0.15), transparent 36%);
      animation: lumieres-disco 26s ease-in-out infinite alternate;
    }

    @keyframes lumieres-disco {
      0%   { transform: translate3d(0, 0, 0) rotate(0deg) scale(1); }
      50%  { transform: translate3d(2%, -2%, 0) rotate(6deg) scale(1.10); }
      100% { transform: translate3d(-2%, 2%, 0) rotate(-5deg) scale(1.06); }
    }

    a {
      color: var(--accent-2);
      text-decoration: none;
    }

    a:hover { text-decoration: underline; }

    .container {
      width: min(1180px, calc(100% - 32px));
      margin: 0 auto;
    }

    .hero {
      padding: 28px 0 18px;
    }

    .hero-image {
      width: 100%;
      min-height: 520px;
      border-radius: 28px;
      position: relative;
      overflow: hidden;
      box-shadow:
        var(--shadow),
        0 0 50px rgba(255, 47, 146, 0.28),
        0 0 90px rgba(0, 212, 255, 0.18);
      background: url('00scene-hero.png') center/cover no-repeat;
      border: 1px solid rgba(255, 255, 255, 0.14);
    }

    /* Photo vivante : léger zoom cinématique lent et continu */
    .hero-image::before {
      content: "";
      position: absolute;
      inset: 0;
      background: url('00scene-hero.png') center/cover no-repeat;
      animation: kenburns-hero 36s ease-in-out infinite alternate;
    }

    @keyframes kenburns-hero {
      from { transform: scale(1) translate3d(0, 0, 0); }
      to   { transform: scale(1.09) translate3d(0, -1.5%, 0); }
    }

    /* Reflet lumineux qui balaie la photo à l'entrée du visiteur */
    .hero-image::after {
      content: "";
      position: absolute;
      inset: 0;
      background: linear-gradient(115deg, transparent 42%, rgba(255, 255, 255, 0.20) 50%, transparent 58%);
      transform: translateX(-130%);
      animation: reflet-hero 9s ease-in-out infinite;
      pointer-events: none;
    }

    @keyframes reflet-hero {
      0%, 55%   { transform: translateX(-130%); }
      80%, 100% { transform: translateX(130%); }
    }

    .hero-overlay {
      position: absolute;
      inset: 0;
      display: flex;
      align-items: end;
      padding: 38px;
      background: linear-gradient(180deg, rgba(0,0,0,0) 52%, rgba(0,0,0,0.32) 100%);
    }

    /* Panneau de verre derrière le texte : la photo reste éclatante et le texte reste lisible */
    .hero-overlay > div {
      background: rgba(10, 4, 18, 0.50);
      backdrop-filter: brightness(25px);
      -webkit-backdrop-filter: brightness(25px);
      border: 1px solid rgba(255, 255, 255, 0.16);
      border-radius: 20px;
      padding: 22px 26px;
      max-width: 820px;
      box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
    }

    /* Titre d'accueil plus grand pour frapper dès l'entrée */
    .hero-overlay .section-title {
      font-size: clamp(2.4rem, 5.2vw, 4.2rem);
    }

    .hero-badge {
      display: inline-block;
      padding: 8px 14px;
      border-radius: 999px;
      background: rgba(255, 212, 71, 0.16);
      color: var(--accent-3);
      border: 1px solid rgba(255, 212, 71, 0.25);
      box-shadow: 0 0 22px rgba(255, 212, 71, 0.22);
      font-weight: bold;
      letter-spacing: 0.04em;
      margin-bottom: 14px;
    }

    h1, h2, h3, h4 {
      margin: 0 0 14px;
      line-height: 1.1;
    }

    h1 {
      font-size: clamp(2.2rem, 5vw, 4.6rem);
      text-transform: uppercase;
      letter-spacing: 0.04em;
      text-shadow: 0 4px 20px rgba(0,0,0,0.5);
    }

    .subtitle {
      max-width: 760px;
      color: #f7d8ef;
      font-size: 1.08rem;
    }

    .welcome {
      margin: 22px auto 8px;
      background: linear-gradient(135deg, rgba(255,47,146,0.12), rgba(0,212,255,0.10));
      border: 1px solid var(--line);
      border-radius: var(--radius);
      padding: 24px;
      box-shadow: var(--shadow);
      transition: border-color 0.25s ease, box-shadow 0.25s ease;
    }

    .welcome:hover {
      border-color: rgba(255, 47, 146, 0.40);
      box-shadow: var(--shadow), 0 0 34px rgba(255, 47, 146, 0.18);
    }

   .menu-trigger {
      position: fixed;
      top: 0;
      left: 0;
      width: 100%;
      height: 18px;
      z-index: 1001;
}

  .menu-trigger:hover ~ .topbar {
     top: 0;
}

    .topbar {
      position: fixed;
      top: -40px;
      left: 0;
      width: 100%;
      z-index: 1000;
      backdrop-filter: blur(14px);
      background: rgba(9, 2, 15, 0.88);
      border-bottom: 1px solid rgba(255,255,255,0.08);
      transition: top 0.3s ease;
}

   .topbar:hover {
      top: 0;
}

    .nav {
      display: flex;
      gap: 12px;
      flex-wrap: wrap;
      justify-content: center;
      padding: 14px 0;
    }

    .nav a {
      padding: 10px 16px;
      border-radius: 999px;
      background: rgba(255,255,255,0.05);
      border: 1px solid rgba(255,255,255,0.08);
      color: var(--text);
      font-weight: bold;
      font-size: 0.95rem;
    }

    .nav a:hover {
      background: rgba(255, 47, 146, 0.18);
      border-color: rgba(255, 47, 146, 0.45);
      box-shadow: 0 0 18px rgba(255, 47, 146, 0.30);
      text-decoration: none;
    }

    section {
      padding: 52px 0;
    }

    section[id],
    #futurescompositions {
      scroll-margin-top: 70px;
    }

    .section-card {
      background: var(--panel);
      border: 1px solid var(--line);
      border-radius: var(--radius);
      padding: 28px;
      box-shadow: var(--shadow);
      transition: border-color 0.25s ease, box-shadow 0.25s ease;
    }

    .section-card:hover {
      border-color: rgba(255, 47, 146, 0.40);
      box-shadow: var(--shadow), 0 0 34px rgba(255, 47, 146, 0.18);
    }

    .section-title {
      font-size: clamp(1.7rem, 2.4vw, 2.6rem);
      margin-bottom: 10px;
      color: #ffd447;
      background: linear-gradient(92deg, #ff2f92 0%, #ff6d2d 32%, #ffd447 58%, #00d4ff 100%);
      -webkit-background-clip: text;
      background-clip: text;
      -webkit-text-fill-color: transparent;
      filter: drop-shadow(0 3px 14px rgba(255, 47, 146, 0.30));
    }

    .section-kicker {
      color: var(--accent);
      text-transform: uppercase;
      font-weight: bold;
      letter-spacing: 0.08em;
      margin-bottom: 8px;
      font-size: 0.88rem;
      text-shadow: 0 0 16px rgba(255, 47, 146, 0.45);
    }

    .grid-2 {
      display: grid;
      grid-template-columns: 320px 1fr;
      gap: 28px;
      align-items: start;
    }

    .portrait, .album-art {
      width: 100%;
      border-radius: 20px;
      border: 1px solid rgba(255,255,255,0.10);
      box-shadow: var(--shadow);
      background: rgba(255,255,255,0.04);
    }

    .album-grid {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 18px;
      margin-top: 18px;
    }

    .album-grid figure,
    .comment-box,
    .link-box,
    .playlist-box,
    .lyrics-box,
    .other-box,
    .audio-box,
    .lyrics-card {
      margin: 0;
      background: var(--panel-2);
      border: 1px solid var(--line);
      border-radius: 20px;
      padding: 18px;
      transition: transform 0.25s ease, border-color 0.25s ease, box-shadow 0.25s ease;
    }

    /* Lueur disco au survol des cartes */
    .album-grid figure:hover,
    .comment-box:hover,
    .link-box:hover,
    .playlist-box:hover,
    .other-box:hover {
      transform: translateY(-3px);
      border-color: rgba(255, 47, 146, 0.45);
      box-shadow: 0 0 30px rgba(255, 47, 146, 0.22);
    }

    .audio-box:hover {
      transform: translateY(-3px);
      border-color: rgba(0, 212, 255, 0.45);
      box-shadow: 0 0 30px rgba(0, 212, 255, 0.20);
    }

    .lyrics-box:hover,
    .lyrics-card:hover {
      transform: translateY(-3px);
      border-color: rgba(255, 212, 71, 0.45);
      box-shadow: 0 0 30px rgba(255, 212, 71, 0.18);
    }

    figure figcaption {
      color: var(--muted);
      font-size: 0.95rem;
      margin-top: 10px;
    }

    .song-columns {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 18px;
      margin-top: 18px;
    }

    .song-list {
      list-style: none;
      padding: 0;
      margin: 0;
    }

    .song-list li {
      padding: 12px 0;
      border-bottom: 1px solid rgba(255,255,255,0.08);
    }

    .song-list li:last-child { border-bottom: none; }

    .links-grid {
      display: grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      gap: 18px;
      margin-top: 18px;
    }

    .button {
      display: inline-block;
      margin-top: 10px;
      padding: 12px 16px;
      border-radius: 12px;
      background: linear-gradient(135deg, var(--accent), #ff6d2d);
      color: white;
      font-weight: bold;
      box-shadow: 0 12px 24px rgba(255,47,146,0.25);
    }

    .button.alt {
      background: linear-gradient(135deg, var(--accent-2), #3259ff);
      box-shadow: 0 12px 24px rgba(0,212,255,0.20);
    }

    .button.gold {
      background: linear-gradient(135deg, #f0c14c, #ff9d00);
      color: #241100;
      box-shadow: 0 12px 24px rgba(255, 184, 28, 0.22);
    }

    .comment-box textarea,
    .comment-box input {
      width: 100%;
      border: 1px solid rgba(255,255,255,0.14);
      background: rgba(255,255,255,0.06);
      color: white;
      border-radius: 12px;
      padding: 12px 14px;
      margin-top: 10px;
      font: inherit;
    }

    .comment-box textarea {
      min-height: 140px;
      resize: vertical;
    }

    .comment-box .fake-button {
      margin-top: 14px;
      display: inline-block;
      padding: 12px 18px;
      border-radius: 12px;
      background: linear-gradient(135deg, #7f5cff, #00d4ff);
      font-weight: bold;
    }

    .audio-section,
    .lyrics-section {
      margin-top: 24px;
      display: grid;
      gap: 16px;
    }

    .track-card {
      background: rgba(255,255,255,0.05);
      border: 1px solid rgba(255,255,255,0.10);
      border-radius: 16px;
      padding: 16px;
      transition: transform 0.25s ease, border-color 0.25s ease, box-shadow 0.25s ease;
    }

    .track-card:hover {
      transform: translateY(-3px);
      border-color: rgba(0, 212, 255, 0.45);
      box-shadow: 0 0 28px rgba(0, 212, 255, 0.20);
    }

    .track-card h4,
    .lyrics-card h3 {
      margin: 0 0 8px;
      color: var(--accent-3);
      font-size: 1.08rem;
      text-shadow: 0 0 18px rgba(255, 212, 71, 0.30);
    }

    .track-card p,
    .lyrics-intro {
      margin: 0 0 12px;
      color: var(--muted);
      font-size: 0.95rem;
    }

    .track-card audio {
      width: 100%;
      display: block;
      color-scheme: dark;
      border: 1px solid rgba(0, 212, 255, 0.28);
      border-radius: 14px;
      background: linear-gradient(135deg, rgba(255, 47, 146, 0.10), rgba(0, 212, 255, 0.10));
    }

    .lyrics-text {
      white-space: pre-line;
      color: var(--text);
      line-height: 2;
      font-size: 1.22rem;
      text-align: center;
    }

    .song-jump,
    .lyrics-jump {
      cursor: pointer;
      transition: color 0.2s ease, transform 0.2s ease;
    }

    .song-jump:hover,
    .lyrics-jump:hover {
      color: var(--accent-2);
      transform: translateY(-1px);
    }

    /* Égaliseur animé : les barres dansent à côté du lecteur quand la musique joue */
    .eq {
      display: flex;
      align-items: flex-end;
      gap: 3px;
      height: 22px;
      margin: 0 0 10px;
    }

    .eq span {
      width: 5px;
      height: 30%;
      border-radius: 3px;
      background: linear-gradient(180deg, var(--accent-2), var(--accent));
      opacity: 0.55;
      transition: height 0.25s ease, opacity 0.25s ease;
    }

    .eq.on span {
      opacity: 1;
      animation: eq-danse 0.8s ease-in-out infinite alternate;
    }

    .eq.on span:nth-child(1) { animation-delay: 0s; }
    .eq.on span:nth-child(2) { animation-delay: 0.12s; }
    .eq.on span:nth-child(3) { animation-delay: 0.24s; }
    .eq.on span:nth-child(4) { animation-delay: 0.36s; }
    .eq.on span:nth-child(5) { animation-delay: 0.48s; }

    @keyframes eq-danse {
      from { height: 18%; }
      to   { height: 100%; }
    }

    /* Bouton retour en haut de page */
    #retour-haut {
      position: fixed;
      right: 18px;
      bottom: 18px;
      z-index: 1002;
      width: 52px;
      height: 52px;
      border: none;
      border-radius: 50%;
      cursor: pointer;
      font-size: 1.35rem;
      font-weight: bold;
      color: #ffffff;
      background: linear-gradient(135deg, var(--accent), var(--accent-2));
      box-shadow: 0 10px 26px rgba(255, 47, 146, 0.45);
      opacity: 0;
      pointer-events: none;
      transform: translateY(12px);
      transition: opacity 0.3s ease, transform 0.3s ease, box-shadow 0.3s ease;
    }

    #retour-haut.visible {
      opacity: 1;
      pointer-events: auto;
      transform: translateY(0);
    }

    #retour-haut:hover {
      box-shadow: 0 12px 34px rgba(0, 212, 255, 0.55);
    }

    /* Bouton de bascule de langue (coin supérieur droit) */
    .langue-switch {
      position: fixed;
      top: 10px;
      right: 14px;
      z-index: 1003;
      padding: 7px 14px;
      border-radius: 999px;
      background: rgba(9, 2, 15, 0.72);
      backdrop-filter: blur(8px);
      -webkit-backdrop-filter: blur(8px);
      border: 1px solid rgba(0, 212, 255, 0.35);
      color: var(--accent-2);
      font-weight: bold;
      font-size: 0.85rem;
      text-decoration: none;
      box-shadow: 0 6px 18px rgba(0, 0, 0, 0.35);
      transition: border-color 0.25s ease, color 0.25s ease, box-shadow 0.25s ease;
    }

    .langue-switch:hover {
      color: #ffffff;
      border-color: rgba(255, 47, 146, 0.50);
      text-decoration: none;
      box-shadow: 0 0 18px rgba(0, 212, 255, 0.35);
    }

    /* Respect des réglages « réduire les animations » du système */
    @media (prefers-reduced-motion: reduce) {
      html { scroll-behavior: auto; }
      body::before { animation: none; }
      .eq.on span { animation: none; height: 45%; }
      #retour-haut { transition: none; }
      .hero-image::before { animation: none; }
      .hero-image::after { display: none; }
      .compteur-cadre { animation: none; }
    }

    .footer {
      padding: 26px 0 44px;
      color: var(--muted);
      text-align: center;
    }

    @media (max-width: 900px) {
      .grid-2,
      .song-columns,
      .links-grid,
      .album-grid {
        grid-template-columns: 1fr;
      }

      .hero-image {
        min-height: 400px;
      }

      .hero-overlay {
        padding: 18px;
      }

      .hero-overlay > div {
        padding: 16px 18px;
      }

      .menu-trigger {
        height: 34px;
      }

      .topbar {
        top: -100vh;
        max-height: 75vh;
        overflow-y: auto;
      }

      .nav a {
        font-size: 0.88rem;
        padding: 8px 12px;
      }

      .lyrics-text {
        font-size: 1.05rem;
      }

      #retour-haut {
        width: 46px;
        height: 46px;
        right: 14px;
        bottom: 14px;
      }
    }

    /* Sondage éclair : étoiles + pouce en l'air (section Commentaires) */
    .sondage-box {
      margin-top: 18px;
      background: var(--panel-2);
      border: 1px solid var(--line);
      border-radius: 20px;
      padding: 22px;
      transition: transform 0.25s ease, border-color 0.25s ease, box-shadow 0.25s ease;
    }

    .sondage-box:hover {
      border-color: rgba(255, 212, 71, 0.45);
      box-shadow: 0 0 30px rgba(255, 212, 71, 0.18);
    }

    .sondage-texte {
      color: var(--muted);
      max-width: 760px;
    }

    .sondage-texte a {
      color: var(--accent-2);
      font-weight: bold;
    }

    .etoiles {
      display: flex;
      gap: 6px;
      margin: 4px 0 2px;
    }

    .etoile {
      background: transparent;
      border: none;
      padding: 6px 8px;
      font-size: 2.15rem;
      line-height: 1;
      cursor: pointer;
      color: #6b5a80;
      border-radius: 10px;
      transition: color 0.15s ease, text-shadow 0.15s ease, transform 0.15s ease;
    }

    .etoile:hover,
    .etoile.survol,
    .etoile.remplie {
      color: var(--accent-3);
      text-shadow: 0 0 18px rgba(255, 212, 71, 0.55);
    }

    .etoile:hover {
      transform: scale(1.15);
    }

    .etoile:focus-visible {
      outline: 2px solid var(--accent-2);
      outline-offset: 2px;
    }

    .pouce-btn {
      margin: 12px 0 0;
      padding: 10px 18px;
      border-radius: 999px;
      border: 1px solid rgba(0, 212, 255, 0.35);
      background: rgba(0, 212, 255, 0.10);
      color: var(--accent-2);
      font-weight: bold;
      font-size: 0.95rem;
      cursor: pointer;
      transition: background 0.2s ease, color 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
    }

    .pouce-btn:hover {
      border-color: rgba(0, 212, 255, 0.60);
      box-shadow: 0 0 18px rgba(0, 212, 255, 0.30);
    }

    .pouce-btn.actif {
      background: linear-gradient(135deg, var(--accent-2), var(--accent-4));
      border-color: rgba(0, 212, 255, 0.60);
      color: #ffffff;
      box-shadow: 0 0 22px rgba(0, 212, 255, 0.35);
    }

    .pouce-btn:focus-visible {
      outline: 2px solid var(--accent-3);
      outline-offset: 2px;
    }

    .sondage-merci {
      margin: 12px 0 0;
      color: var(--accent-3);
      font-weight: bold;
    }

    .sondage-total {
      margin: 8px 0 0;
      color: var(--muted);
    }

    .sondage-note-priv {
      margin: 12px 0 0;
      color: var(--muted);
      font-size: 0.85rem;
      opacity: 0.85;
    }

    @media (max-width: 900px) {
      .etoile {
        font-size: 1.9rem;
      }
    }
  

    /* Compteur de visites (pied de page, façon afficheur rétro) */
    .compteur-visites {
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: 8px;
      margin: 4px auto 26px;
    }

    .compteur-visites[hidden] {
      display: none;
    }

    .compteur-etiquette {
      font-size: 0.8rem;
      font-weight: bold;
      letter-spacing: 0.24em;
      text-transform: uppercase;
      color: var(--accent-2);
      text-shadow: 0 0 10px rgba(0, 212, 255, 0.55);
    }

    .compteur-cadre {
      display: inline-flex;
      gap: 6px;
      padding: 9px 12px;
      background: linear-gradient(180deg, rgba(18, 5, 28, 0.92), rgba(31, 9, 48, 0.92));
      border: 1px solid rgba(127, 92, 255, 0.5);
      border-radius: 12px;
      box-shadow: 0 0 22px rgba(127, 92, 255, 0.28), inset 0 0 14px rgba(0, 0, 0, 0.55);
      animation: compteur-lueur 3.4s ease-in-out infinite;
    }

    .compteur-chiffre {
      min-width: 1.7em;
      padding: 8px 5px;
      font-size: 1.4rem;
      font-weight: bold;
      line-height: 1;
      text-align: center;
      color: var(--accent-3);
      background: rgba(0, 0, 0, 0.5);
      border: 1px solid rgba(255, 212, 71, 0.22);
      border-radius: 8px;
      text-shadow: 0 0 10px rgba(255, 212, 71, 0.75);
      font-variant-numeric: tabular-nums;
    }

    .compteur-detail {
      font-size: 0.82rem;
      color: var(--muted);
    }

    @keyframes compteur-lueur {
      0%, 100% { box-shadow: 0 0 22px rgba(127, 92, 255, 0.28), inset 0 0 14px rgba(0, 0, 0, 0.55); }
      50% { box-shadow: 0 0 32px rgba(127, 92, 255, 0.5), inset 0 0 14px rgba(0, 0, 0, 0.55); }
    }

    @media (max-width: 900px) {
      .compteur-chiffre {
        font-size: 1.2rem;
        min-width: 1.6em;
        padding: 7px 4px;
      }
    }

    /* ============================================================
       Widget « Musique d'ambiance » (coin inférieur gauche)
       Panneau de contrôle du visiteur : volume + / −, arrêt, reprise.
       ============================================================ */
    #musique-fond-widget {
      position: fixed;
      left: 18px;
      bottom: 18px;
      z-index: 1004;
      width: 252px;
      padding: 12px 14px 14px;
      border-radius: 18px;
      background: rgba(9, 2, 15, 0.85);
      backdrop-filter: blur(12px);
      -webkit-backdrop-filter: blur(12px);
      border: 1px solid rgba(0, 212, 255, 0.32);
      box-shadow: 0 10px 30px rgba(0, 0, 0, 0.45), 0 0 24px rgba(0, 212, 255, 0.14);
      color: var(--text);
      font-family: Arial, Helvetica, sans-serif;
      opacity: 1;
      transition: opacity 0.4s ease, border-color 0.3s ease, box-shadow 0.3s ease;
    }

    #musique-fond-widget.dim {
      opacity: 0.45;
    }

    #musique-fond-widget:hover,
    #musique-fond-widget:focus-within {
      opacity: 1;
      border-color: rgba(255, 47, 146, 0.5);
      box-shadow: 0 10px 30px rgba(0, 0, 0, 0.45), 0 0 28px rgba(255, 47, 146, 0.18);
    }

    .mf-haut {
      display: flex;
      align-items: center;
      gap: 8px;
      margin-bottom: 6px;
    }

    .mf-eq {
      display: flex;
      align-items: flex-end;
      gap: 3px;
      height: 18px;
      flex: 0 0 auto;
    }

    .mf-eq span {
      width: 4px;
      height: 30%;
      border-radius: 2px;
      background: linear-gradient(180deg, var(--accent-2), var(--accent));
      opacity: 0.45;
    }

    .mf-eq.on span {
      opacity: 1;
      animation: mf-eq-danse 0.8s ease-in-out infinite alternate;
    }

    .mf-eq.on span:nth-child(1) { animation-delay: 0s; }
    .mf-eq.on span:nth-child(2) { animation-delay: 0.1s; }
    .mf-eq.on span:nth-child(3) { animation-delay: 0.2s; }
    .mf-eq.on span:nth-child(4) { animation-delay: 0.3s; }
    .mf-eq.on span:nth-child(5) { animation-delay: 0.4s; }

    @keyframes mf-eq-danse {
      from { height: 20%; }
      to   { height: 100%; }
    }

    .mf-titre {
      font-size: 0.76rem;
      font-weight: bold;
      letter-spacing: 0.06em;
      text-transform: uppercase;
      color: var(--accent-2);
      text-shadow: 0 0 10px rgba(0, 212, 255, 0.45);
      white-space: nowrap;
      overflow: hidden;
      text-overflow: ellipsis;
    }

    .mf-piste {
      margin: 0 0 10px;
      min-height: 1.25em;
      font-size: 0.86rem;
      color: var(--muted);
      white-space: nowrap;
      overflow: hidden;
      text-overflow: ellipsis;
    }

    .mf-controles {
      display: flex;
      align-items: center;
      gap: 8px;
    }

    .mf-btn {
      width: 36px;
      height: 36px;
      flex: 0 0 auto;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      padding: 0;
      border-radius: 50%;
      cursor: pointer;
      border: 1px solid rgba(0, 212, 255, 0.35);
      background: rgba(0, 212, 255, 0.08);
      color: var(--accent-2);
      transition: background 0.2s ease, color 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
    }

    .mf-btn:hover {
      border-color: rgba(0, 212, 255, 0.6);
      background: rgba(0, 212, 255, 0.16);
      box-shadow: 0 0 14px rgba(0, 212, 255, 0.3);
    }

    .mf-btn:focus-visible {
      outline: 2px solid var(--accent-3);
      outline-offset: 2px;
    }

    .mf-btn svg {
      width: 16px;
      height: 16px;
      display: block;
      fill: currentColor;
    }

    .mf-btn.mf-actif {
      background: linear-gradient(135deg, var(--accent-2), var(--accent-4));
      border-color: rgba(0, 212, 255, 0.6);
      color: #ffffff;
      box-shadow: 0 0 18px rgba(0, 212, 255, 0.35);
    }

    .mf-volume {
      flex: 1;
      height: 6px;
      border-radius: 999px;
      background: rgba(255, 255, 255, 0.12);
      overflow: hidden;
    }

    .mf-volume-niveau {
      height: 100%;
      width: 30%;
      border-radius: 999px;
      background: linear-gradient(90deg, var(--accent-2), var(--accent));
      transition: width 0.2s ease;
    }

    @media (max-width: 900px) {
      #musique-fond-widget {
        left: 12px;
        bottom: 12px;
        width: 218px;
        padding: 10px 12px 12px;
      }

      .mf-btn {
        width: 32px;
        height: 32px;
      }

      .mf-piste {
        font-size: 0.8rem;
      }
    }

    /* Respect des réglages « réduire les animations » du système */
    @media (prefers-reduced-motion: reduce) {
      .mf-eq.on span {
        animation: none;
        height: 45%;
      }

      #musique-fond-widget,
      .mf-btn,
      .mf-volume-niveau {
        transition: none;
      }
    }
