/* ============================================================
   MUSIC — page-scoped styles for music.html and fr/music.html only.
   Loaded after the shared stylesheet; every selector is prefixed .mu-
   so nothing here reaches another page. No webfont, no remote asset,
   no image file: the sky is inline SVG drawn for this page.
   ============================================================ */

.mu-hero .lede { max-width: 640px; }
.mu-intro { max-width: 680px; margin-top: 18px; margin-bottom: 0; font-size: 1.03rem; }

.mu-sr {
  position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; border: 0;
}

/* ---- the night band ------------------------------------------------ */
.mu-stage {
  position: relative; overflow: hidden; isolation: isolate;
  background:
    radial-gradient(120% 70% at 50% 118%, rgba(2,149,162,.34) 0%, rgba(2,149,162,0) 62%),
    linear-gradient(180deg, #050f1f 0%, #0A2540 58%, #0d3150 100%);
  padding: clamp(56px, 8vw, 104px) 0 calc(clamp(56px, 8vw, 96px) + 44px);
}
/* lo-fi grain: faint static scanlines, no motion */
.mu-stage::after {
  content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none;
  background: repeating-linear-gradient(180deg, rgba(255,255,255,.018) 0 1px, transparent 1px 4px);
}
.mu-sky { position: absolute; inset: 0; width: 100%; height: 100%; z-index: -2; display: block; }
/* the planet's rim is its own layer, pinned to the bottom edge, so it never climbs into the content */
.mu-ground { position: absolute; left: 0; right: 0; bottom: 0; width: 100%; height: clamp(56px, 8vw, 96px); z-index: -1; display: block; }
.mu-sky .mu-star { fill: #fff; }
.mu-sky .mu-orbit-ring { fill: none; stroke: rgba(120,215,220,.32); stroke-width: 1; stroke-dasharray: 2 7; }
.mu-sky .mu-ring { fill: none; stroke: rgba(120,215,220,.55); stroke-width: 1.4; }
.mu-sky .mu-planet { fill: #12395a; stroke: rgba(120,215,220,.5); stroke-width: 1; }
.mu-sky .mu-moon { fill: #78d7dc; }
.mu-sky .mu-craft { fill: #e8f6f7; }
.mu-sky .mu-craft-trail { stroke: rgba(232,246,247,.35); stroke-width: 1; stroke-linecap: round; }
.mu-ground .mu-horizon { fill: #071a2e; stroke: rgba(120,215,220,.55); stroke-width: 1.2; vector-effect: non-scaling-stroke; }
.mu-ground .mu-eq rect { fill: rgba(120,215,220,.22); }

/* restrained motion: one slow orbit, a slow shimmer on a few stars */
@media (prefers-reduced-motion: no-preference) {
  .mu-sky .mu-moon-track { transform-box: view-box; transform-origin: 1010px 132px; animation: mu-orbit 64s linear infinite; }
  .mu-sky .mu-shimmer { animation: mu-shimmer 9s ease-in-out infinite; }
  .mu-sky .mu-s2 { animation-duration: 13s; animation-delay: -4s; }
  .mu-sky .mu-s3 { animation-duration: 11s; animation-delay: -7s; }
}
@keyframes mu-orbit { to { transform: rotate(360deg); } }
@keyframes mu-shimmer { 0%, 100% { opacity: .85; } 50% { opacity: .35; } }

/* ---- the card ----------------------------------------------------- */
.mu-card {
  position: relative; max-width: 680px; margin: 0 auto;
  background: rgba(6,24,48,.78); border: 1px solid rgba(120,215,220,.28);
  border-radius: 22px; padding: clamp(24px, 4vw, 40px);
  box-shadow: 0 24px 60px rgba(0,0,0,.35), inset 0 1px 0 rgba(255,255,255,.06);
  color: rgba(255,255,255,.86);
}
.mu-card-head { display: flex; align-items: center; gap: 16px; margin-bottom: 18px; }
.mu-icon {
  flex: 0 0 auto; width: 52px; height: 52px; border-radius: 50%;
  display: grid; place-items: center; color: #78d7dc;
  border: 1px solid rgba(120,215,220,.45); background: radial-gradient(circle at 35% 30%, rgba(120,215,220,.18), rgba(120,215,220,0) 70%);
}
.mu-icon svg { width: 26px; height: 26px; display: block; }
.mu-label { display: block; font-size: .76rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: #78d7dc; margin-bottom: 2px; }
.mu-card h2 { color: #fff; margin: 0; font-size: clamp(1.45rem, 3vw, 1.9rem); }
.mu-card p { color: rgba(255,255,255,.78); }
.mu-card .mu-lead { font-size: 1.05rem; margin-bottom: 22px; }

.mu-actions { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; margin-bottom: 16px; }
.mu-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 9px;
  min-height: 46px; padding: 11px 22px; border-radius: 999px;
  font: inherit; font-size: .97rem; font-weight: 650; line-height: 1.2; cursor: pointer;
  border: 1.5px solid transparent; text-decoration: none;
}
.mu-btn svg { width: 16px; height: 16px; flex: 0 0 auto; }
.mu-btn-open { background: #78d7dc; color: #061830 !important; }
.mu-btn-open:hover { background: #a6e8eb; color: #061830 !important; }
.mu-btn-here { background: transparent; color: #fff; border-color: rgba(255,255,255,.55); }
.mu-btn-here:hover { border-color: #fff; background: rgba(255,255,255,.08); color: #fff; }
.mu-btn-here[aria-expanded="true"] { border-color: rgba(120,215,220,.8); }
.mu-btn[hidden] { display: none; }
.mu-btn:focus-visible { outline: 3px solid #a6e8eb; outline-offset: 3px; }

.mu-note { font-size: .9rem; color: rgba(255,255,255,.68) !important; margin-bottom: 0; }
.mu-status { font-size: .9rem; color: #a6e8eb; min-height: 1.4em; margin: 10px 0 0; }
.mu-status:empty { margin: 0; min-height: 0; } /* stays in the accessibility tree so the first message is announced */

.mu-slot { margin-top: 22px; }
.mu-slot[hidden] { display: none; }
.mu-frame { display: block; width: 100%; height: 352px; border: 0; border-radius: 12px; background: #0b2238; }

.mu-credit { max-width: 680px; margin: 22px auto 0; text-align: center; font-size: .85rem; color: rgba(255,255,255,.78); }

@media (max-width: 640px) {
  .mu-card-head { gap: 12px; }
  .mu-icon { width: 44px; height: 44px; }
  .mu-actions { flex-direction: column; align-items: stretch; }
  .mu-btn { width: 100%; }
}
