/* ═══ SELF-HOSTED FONTS — no external requests (GDPR-friendly) ═══ */
@font-face { font-family:'Bebas Neue';   font-style:normal; font-weight:400; font-display:swap; src:url('/fonts/bebas-neue-400.woff2') format('woff2'); }
@font-face { font-family:'Space Mono';   font-style:normal; font-weight:400; font-display:swap; src:url('/fonts/space-mono-400.woff2') format('woff2'); }
@font-face { font-family:'Space Mono';   font-style:normal; font-weight:700; font-display:swap; src:url('/fonts/space-mono-700.woff2') format('woff2'); }
@font-face { font-family:'Space Grotesk';font-style:normal; font-weight:300 700; font-display:swap; src:url('/fonts/space-grotesk.woff2') format('woff2'); }
* { font-synthesis: none; -webkit-font-synthesis: none; }

@layer reset, tokens, base, layout, components, utilities;

/* ── RESET ──────────────────────────────────────────── */
@layer reset {
  *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
  html { scroll-behavior: smooth; }
  a    { color: inherit; }
  img  { display: block; max-width: 100%; height: auto; }
  button { font: inherit; cursor: pointer; background: none; border: none; color: inherit; }
}

/* ── TOKENS ─────────────────────────────────────────── */
@layer tokens {
  :root {
    --ref-neutral-10:  #14110e;
    --ref-neutral-15:  #1a1714;
    --ref-neutral-20:  #221d18;
    --ref-neutral-95:  #f5f1ec;

    --sys-bg:           var(--ref-neutral-10);
    --sys-surface:      var(--ref-neutral-15);
    --sys-surface-var:  var(--ref-neutral-20);
    --sys-on-bg:        var(--ref-neutral-95);
    --sys-on-surface-v: rgba(245,241,236,0.45);
    --sys-primary:      #F5A623;
    --sys-on-primary:   var(--ref-neutral-10);
    --sys-outline:      rgba(245,241,236,0.08);
    --sys-outline-var:  rgba(245,241,236,0.14);

    --sys-font-display: 'Bebas Neue', sans-serif;
    --sys-font-body:    'Space Grotesk', sans-serif;
    --sys-font-label:   'Space Mono', monospace;

    --sys-ease-std:   cubic-bezier(0.2, 0, 0, 1);
    --sys-ease-decel: cubic-bezier(0, 0, 0, 1);

    --sys-dur-1: 100ms;
    --sys-dur-2: 200ms;
    --sys-dur-3: 300ms;

    --sys-elev-2: 0 12px 40px rgba(0,0,0,0.50);
    --sys-elev-3: 0 24px 80px rgba(0,0,0,0.60);

    --sys-nav-h: 180px;
  }
}

/* ── BASE ───────────────────────────────────────────── */
@layer base {
  body {
    background: var(--sys-bg);
    color: var(--sys-on-bg);
    font-family: var(--sys-font-body);
    font-weight: 400;
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
    min-height: 100vh;
  }
}

/* ── LAYOUT ─────────────────────────────────────────── */
@layer layout {
  .wrap      { max-width: 1280px; margin: 0 auto; padding: 0 120px; }
}

/* ═══════════════════════════════════════════════════════
   COMPONENTS
═══════════════════════════════════════════════════════ */
@layer components {

/* ── Header: logo LEFT · nav+controls RIGHT ── */
#hdr {
  position: sticky; top: 0; z-index: 90;
  display: flex; align-items: flex-start;
  justify-content: space-between;
  height: var(--sys-nav-h);
  padding: 50px 48px 0;
  background: linear-gradient(to top, rgba(0,0,0,0) 0%, rgba(20,17,14,0.85) 100%);
}

#logo {
  justify-self: start;
  display: inline-flex; align-items: center;
  text-decoration: none;
}
#logo .logo-img {
  height: 130px; width: auto;
  transition: opacity var(--sys-dur-2) var(--sys-ease-std);
}
#logo:hover .logo-img { opacity: 0.78; }

.hdr-nav-group {
  display: flex; align-items: center; gap: 32px;
  margin-top: 30px;
}

#nav {
  display: flex; align-items: center; gap: 40px;
}
#nav a {
  font-family: var(--sys-font-body); font-size: 14px; font-weight: 400;
  color: rgba(245,241,236,0.85); text-decoration: none;
  white-space: nowrap;
  transition: color var(--sys-dur-2) var(--sys-ease-std);
}
#nav a:hover, #nav a:focus-visible { color: var(--sys-primary); }

.hdr-right {
  display: flex; align-items: center; gap: 20px;
}

.loops-chip {
  display: inline-flex; align-items: center;
  padding: 6px 12px;
  background: #fff; color: #0a0806;
  font-family: var(--sys-font-label); font-weight: 700; font-size: 10px;
  letter-spacing: 0.06em; text-transform: uppercase;
  border-radius: 9999px; text-decoration: none; white-space: nowrap;
  transition: background var(--sys-dur-2) var(--sys-ease-std);
}
.loops-chip:hover { background: rgba(255,255,255,0.85); }

/* ── Hamburger button (mobile only) ───────────────── */
.hamburger-btn {
  display: none;
  align-items: center; gap: 8px;
  background: none; border: none; cursor: pointer; padding: 0;
}
.hamburger-label {
  font-family: var(--sys-font-body); font-size: 13px; font-weight: 500;
  color: rgba(245,241,236,0.85); letter-spacing: 0.02em;
}
.hamburger-circle {
  width: 36px; height: 36px;
  display: flex; align-items: center; justify-content: center;
  background: var(--sys-primary); color: var(--sys-on-primary);
  border-radius: 50%;
  transition: background var(--sys-dur-2) var(--sys-ease-std);
}
.hamburger-btn:hover .hamburger-circle { background: var(--ref-neutral-95); }
.hamburger-circle svg { width: 18px; height: 18px; }
.hamburger-btn .icon-close { display: none; }
.hamburger-btn[aria-expanded="true"] .icon-hamburger { display: none; }
.hamburger-btn[aria-expanded="true"] .icon-close     { display: block; }

/* ── Mobile nav dropdown ───────────────────────────── */
.mobile-nav {
  display: none;
  position: fixed; top: var(--sys-nav-h); left: 0; right: 0;
  background: rgba(10,8,6,0.97);
  z-index: 88;
  padding: 8px 24px 32px;
  border-top: 1px solid rgba(255,255,255,0.08);
}
.mobile-nav[aria-hidden="false"] { display: block; }
.mobile-nav-links {
  display: flex; flex-direction: column;
}
.mobile-nav-links a {
  font-family: var(--sys-font-body); font-size: 20px; font-weight: 400;
  color: var(--sys-on-bg); text-decoration: none;
  padding: 16px 0;
  border-bottom: 1px solid rgba(255,255,255,0.07);
  transition: color var(--sys-dur-2) var(--sys-ease-std);
}
.mobile-nav-links a:last-child { border-bottom: none; }
.mobile-nav-links a:hover,
.mobile-nav-links a:focus-visible { color: var(--sys-primary); }

/* ── Nav mini-player ───────────────────────────────── */
.nav-player {
  display: flex; align-items: center; gap: 10px;
  max-width: 220px;
}
.nav-player[hidden] { display: none; }
.nav-player-meta {
  display: flex; flex-direction: column; gap: 1px;
  min-width: 0; max-width: 140px;
}
.nav-player-title {
  font-family: var(--sys-font-body); font-weight: 500; font-size: 12px;
  color: var(--sys-on-bg);
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.nav-player-release {
  font-family: var(--sys-font-body); font-weight: 400; font-size: 11px;
  color: var(--sys-primary); text-decoration: none;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.nav-player-release:hover { opacity: 0.8; }
.nav-player-btn {
  width: 36px; height: 36px; flex-shrink: 0;
  display: flex; align-items: center; justify-content: center;
  background: var(--sys-primary); color: var(--sys-on-primary);
  border-radius: 50%;
  transition: background var(--sys-dur-2) var(--sys-ease-std);
}
.nav-player-btn:hover { background: var(--ref-neutral-95); }
.nav-player-btn svg   { width: 18px; height: 18px; }
/* M38: standalone-track-share button — deliberately smaller/outline, not a
   second solid-filled circle next to play/pause, so it reads as the
   secondary action it is. */
.nav-player-share {
  width: 28px; height: 28px;
  background: transparent; color: var(--sys-on-bg);
  border: 1px solid var(--ref-neutral-95);
}
.nav-player-share svg   { width: 14px; height: 14px; }
.nav-player-share:hover { background: var(--ref-neutral-95); color: var(--sys-primary); }

/* ── Pills (stream-on row) ─────────────────────────── */
.stream-row {
  display: flex; align-items: center; gap: 8px; flex-wrap: wrap;
}
.stream-label {
  font-family: var(--sys-font-label); font-size: 10px;
  letter-spacing: 0.08em; text-transform: uppercase;
  color: rgba(245,241,236,0.55); white-space: nowrap;
}
.pill {
  display: inline-flex; align-items: center; gap: 4px;
  padding: 4px 10px;
  font-family: var(--sys-font-label); font-size: 10px; font-weight: 400;
  border-radius: 9999px; border: 1px solid; white-space: nowrap;
  text-decoration: none; background: none;
  transition: opacity var(--sys-dur-1) var(--sys-ease-std), background var(--sys-dur-2);
}
.pill:hover { opacity: 0.85; }
.pill-muted   { background: rgba(255,255,255,0.06); border-color: rgba(255,255,255,0.30); color: rgba(255,255,255,0.78); }
.pill-primary { background: rgba(245,166,35,0.30); border-color: var(--sys-primary); color: #fff; cursor: pointer; }

/* ── Eyebrow badge ─────────────────────────────────── */
.badge-eyebrow {
  display: inline-flex; align-items: center; justify-content: center;
  padding: 5px 10px;
  background: rgba(245,166,35,0.18); border: 1px solid rgba(245,166,35,0.32);
  border-radius: 2px;
  font-family: var(--sys-font-label); font-weight: 700; font-size: 12px;
  letter-spacing: 0.05em; text-transform: uppercase; color: var(--sys-primary);
  white-space: nowrap; align-self: flex-start;
}

/* ── Featured hero (home) ──────────────────────────── */
.featured-hero {
  min-height: calc(100vh - var(--sys-nav-h));
  display: flex; align-items: center;
  border-bottom: 1px solid var(--sys-outline);
}
.featured-hero-inner {
  display: flex; gap: 64px; align-items: flex-start;
  padding-top: 120px; padding-bottom: 80px;
  width: 100%;
}
.hero-left  {
  flex: 0 0 460px;
  display: flex; flex-direction: column; gap: 24px;
}
.hero-cover {
  width: 460px; height: 460px;
  background: var(--sys-surface-var);
  border-radius: 4px; overflow: hidden;
  box-shadow: var(--sys-elev-3);
}
.hero-cover img { width: 100%; height: 100%; object-fit: cover; }

.hero-right {
  flex: 0 0 516px; min-width: 0;
  display: flex; flex-direction: column; gap: 20px;
}
.hero-info-group {
  display: flex; flex-direction: column; gap: 8px;
}
.hero-title {
  font-family: var(--sys-font-display); font-size: 100px; font-weight: 400;
  line-height: 1; color: var(--sys-on-bg);
}
.hero-meta {
  font-family: var(--sys-font-body); font-size: 16px;
  line-height: 1.5; color: var(--sys-on-bg);
}
.hero-desc {
  font-family: var(--sys-font-body); font-size: 15px;
  line-height: 1.6; color: var(--sys-on-bg);
}

/* ── Track list ────────────────────────────────────── */
.track-list { display: block; }
.track-row {
  position: relative;
  display: grid;
  grid-template-columns: 32px 32px 1fr auto 32px;
  gap: 14px;
  height: 46px;
  align-items: center;
  padding: 0 10px;
  border-bottom: 1px solid var(--sys-outline);
  cursor: pointer;
  overflow: hidden;
  user-select: none;
}
.track-row:last-child       { border-bottom: none; }
.track-row:hover            { background: rgba(245,241,236,0.04); }
.track-row > *:not(.track-row-fill) { position: relative; z-index: 1; }
.track-row-fill {
  position: absolute; left: 0; top: 0; bottom: 0;
  width: 0%; background: rgba(245,166,35,0.35);
  pointer-events: none; z-index: 0;
  will-change: width;
  transition: width 120ms ease-out;
}
.track-row.is-current .track-row-fill {
  transition: none;
}
.track-row.is-current { background: rgba(245,166,35,0.08); }
.track-row.is-current.is-paused { background: rgba(245,166,35,0.06); }
.track-row.is-current.is-paused .track-row-fill { background: rgba(245,166,35,0.08); }
.track-row.is-current::before {
  content: '';
  position: absolute; left: 0; top: 0;
  width: 3px; height: 100%;
  background: var(--sys-primary); z-index: 2;
}
.track-row.is-current .track-row-title,
.track-row.is-current .track-row-dur { color: var(--sys-primary); }
.track-row.is-current .track-row-num { color: var(--sys-primary); }
.track-row.is-current .track-row-play { color: var(--sys-primary); }
.track-row.is-current .track-row-play:hover {
  background: var(--sys-primary); color: var(--sys-on-primary);
}

.track-row-num {
  font-family: var(--sys-font-label); font-weight: 700; font-size: 13px;
  color: var(--sys-on-bg); text-align: right;
}
.track-row-play, .track-row-share {
  width: 32px; height: 32px;
  display: flex; align-items: center; justify-content: center;
  border-radius: 50%; padding: 0;
  transition: background var(--sys-dur-1) var(--sys-ease-std);
}
.track-row-play:hover  { background: var(--sys-primary); color: var(--sys-on-primary); }
.track-row-play svg    { width: 16px; height: 16px; display: block; }
.track-row-share svg   { width: 14px; height: 14px; opacity: 0.45; display: block;
                         transition: opacity var(--sys-dur-1); }
.track-row-share:hover svg { opacity: 0.95; }
.track-row-share:hover     { background: rgba(245,166,35,0.10); }

.track-row-title {
  font-family: var(--sys-font-body); font-weight: 500; font-size: 15px;
  color: var(--sys-on-bg);
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap; min-width: 0;
}
.track-row-dur {
  font-family: var(--sys-font-label); font-weight: 700; font-size: 13px;
  color: var(--sys-on-bg); white-space: nowrap;
}

.track-list-cta {
  height: 50px; width: 100%;
  display: flex; align-items: center; justify-content: center;
  background: rgba(0,0,0,0.45);
  font-family: var(--sys-font-label); font-weight: 700; font-size: 11px;
  letter-spacing: 0.08em; text-transform: uppercase; color: var(--sys-primary);
  text-decoration: none;
  transition: background var(--sys-dur-1) var(--sys-ease-std);
}
.track-list-cta:hover { background: rgba(0,0,0,0.65); }

/* ── Hero track rolling window ─────────────────────── */
#hero-track-list .track-row {
  overflow: hidden;
  max-height: 60px;
  opacity: 1;
  transition: max-height 220ms var(--sys-ease-std),
              opacity     180ms var(--sys-ease-std);
}
#hero-track-list .track-row.hero-row-hidden {
  max-height: 0;
  opacity: 0;
  pointer-events: none;
  border-bottom-color: transparent;
}

/* ── Release card ──────────────────────────────────── */
.release-card {
  width: 200px; flex-shrink: 0;
  display: flex; flex-direction: column;
  background: var(--sys-surface);
  border-radius: 6px; overflow: hidden;
  text-decoration: none; color: inherit;
  transition: transform var(--sys-dur-3) var(--sys-ease-decel);
}
.release-card:hover               { transform: translateY(-2px); }
.release-card:hover .rc-cover img { transform: scale(1.04); }

/* Now-playing state on release cards */
.release-card.is-now-playing {
  background: var(--sys-primary);
  box-shadow: 0 0 24px rgba(245,166,35,0.45);
}
.release-card.is-now-playing .rc-cover::after {
  content: 'NOW PLAYING';
  position: absolute; bottom: 0; left: 0; right: 0;
  padding: 5px 8px;
  background: rgba(0,0,0,0.55);
  font-family: var(--sys-font-label); font-weight: 700; font-size: 9px;
  letter-spacing: 0.08em; text-align: center;
  color: #fff;
  animation: np-pulse 2s ease-in-out infinite;
}
.release-card.is-now-playing .rc-title { color: rgba(0,0,0,0.85); }
.release-card.is-now-playing .rc-year  { color: rgba(0,0,0,0.55); }
.release-card.is-now-playing .plat-bc,
.release-card.is-now-playing .plat-secondary {
  background: rgba(0,0,0,0.12);
  border-color: rgba(0,0,0,0.30);
  color: rgba(0,0,0,0.75);
}
@keyframes np-pulse {
  0%, 100% { opacity: 1; }
  50%       { opacity: 0.6; }
}

.rc-cover {
  position: relative; height: 200px; width: 100%;
  background: var(--sys-surface-var); overflow: hidden;
}
.rc-cover img {
  width: 100%; height: 100%; object-fit: cover;
  transition: transform var(--sys-dur-3) var(--sys-ease-decel);
}
.rc-content {
  padding: 12px 12px 16px;
  display: flex; flex-direction: column; gap: 6px;
}
.rc-badge {
  position: absolute; bottom: 8px; left: 8px;
  padding: 4px 8px;
  background: rgba(0,0,0,0.62); border: 1px solid rgba(245,166,35,0.45);
  border-radius: 2px;
  font-family: var(--sys-font-label); font-weight: 700; font-size: 11px;
  letter-spacing: 0.05em; text-transform: uppercase; color: var(--sys-primary);
}
.rc-title {
  font-family: var(--sys-font-body); font-weight: 700; font-size: 15px;
  line-height: 1.3; text-transform: uppercase; color: var(--sys-on-bg);
  margin-top: 4px;
}
.rc-artist {
  font-family: var(--sys-font-body); font-size: 13px;
  color: rgba(245,241,236,0.50);
}
.rc-year {
  font-family: var(--sys-font-label); font-weight: 700; font-size: 10px;
  letter-spacing: 0.08em; text-transform: uppercase;
  color: rgba(245,241,236,0.32);
}
.rc-links { display: flex; gap: 5px; flex-wrap: wrap; margin-top: 4px; }
.plat-bc {
  display: inline-flex; padding: 3px 7px;
  background: rgba(245,166,35,0.12); border: 1px solid rgba(245,166,35,0.55);
  border-radius: 9999px;
  font-family: var(--sys-font-label); font-weight: 700; font-size: 9px;
  color: var(--sys-primary); white-space: nowrap; text-decoration: none;
}
.plat-secondary {
  display: inline-flex; padding: 3px 7px;
  background: rgba(245,241,236,0.06); border: 1px solid rgba(245,241,236,0.22);
  border-radius: 9999px;
  font-family: var(--sys-font-label); font-size: 9px;
  color: rgba(245,241,236,0.75); white-space: nowrap; text-decoration: none;
  opacity: 0.5;
  transition: opacity var(--sys-dur-2) var(--sys-ease-std);
}
.release-card:hover .plat-secondary { opacity: 1; }

/* ── Releases section ──────────────────────────────── */
.releases-section {
  padding: 80px 0;
  background: rgba(26,23,20,0.72);
  border-bottom: 1px solid var(--sys-outline);
}
.section-heading {
  font-family: var(--sys-font-display); font-size: 80px; font-weight: 400;
  color: var(--sys-on-bg); margin-bottom: 40px;
}
.releases-grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 12px;
}
.releases-grid .release-card { width: 100%; }
.releases-grid .rc-cover     { height: auto; aspect-ratio: 1/1; }

/* ── Email capture ─────────────────────────────────── */
.email-section {
  padding: 80px 0;
  border-bottom: 1px solid var(--sys-outline);
}
.email-inner {
  display: flex; flex-direction: column; align-items: center;
  max-width: 480px; margin: 0 auto; text-align: center;
}
.email-title {
  font-family: var(--sys-font-display); font-size: 80px; font-weight: 400;
  color: var(--sys-on-bg);
}
.email-subtitle {
  font-family: var(--sys-font-body); font-size: 15px;
  line-height: 1.55; color: var(--sys-on-bg);
  max-width: 440px; margin-top: 12px;
}
.email-form {
  display: flex; width: 440px; max-width: 100%; height: 50px;
  background: var(--sys-surface-var); border: 1px solid var(--sys-outline-var);
  border-radius: 6px; overflow: hidden; margin-top: 24px;
}
.email-form input[type="email"] {
  flex: 1; min-width: 0; padding: 0 16px;
  background: none; border: none; outline: none;
  font-family: var(--sys-font-body); font-size: 14px;
  color: var(--sys-on-bg);
}
.email-form input[type="email"]::placeholder { color: rgba(245,241,236,0.55); }
.email-form button {
  flex: 0 0 150px; padding: 0 16px;
  background: var(--sys-primary); color: var(--sys-on-primary);
  font-family: var(--sys-font-body); font-weight: 700; font-size: 11px;
  letter-spacing: 0.06em; text-transform: uppercase; white-space: nowrap;
  transition: background var(--sys-dur-2) var(--sys-ease-std);
}
.email-form button:hover { background: var(--ref-neutral-95); }
.email-note {
  font-family: var(--sys-font-label); font-size: 10px;
  color: rgba(245,241,236,0.55); margin-top: 14px;
}

/* ── About ─────────────────────────────────────────── */
.about-section {
  padding: 80px 0;
  border-bottom: 1px solid var(--sys-outline);
}
.about-inner { max-width: 680px; display: flex; flex-direction: column; gap: 16px; }
.about-title {
  font-family: var(--sys-font-display); font-size: 80px; font-weight: 400;
  color: var(--sys-on-bg);
}
.about-body {
  font-family: var(--sys-font-body); font-size: 15px;
  line-height: 1.7; color: var(--sys-on-bg);
}

/* ── Footer ────────────────────────────────────────── */
#ftr {
  background: rgba(14,11,9,0.92);
  border-top: 1px solid var(--sys-outline);
  padding: 24px 0;
}
.ftr-inner {
  display: flex; align-items: center; justify-content: space-between;
  gap: 20px; flex-wrap: wrap;
}
.ftr-copy {
  font-family: var(--sys-font-body); font-size: 13px;
  color: var(--sys-on-bg);
}
.ftr-links { display: flex; gap: 18px; flex-wrap: wrap; }
.ftr-links a {
  font-family: var(--sys-font-label); font-weight: 700; font-size: 11px;
  letter-spacing: 0.06em; text-transform: uppercase;
  color: rgba(245,241,236,0.45); text-decoration: none;
  transition: color var(--sys-dur-2) var(--sys-ease-std);
}
.ftr-links a:hover { color: var(--sys-primary); }

/* ── Release detail ────────────────────────────────── */
.detail-page    { padding: 0; }

.detail-hero-section {
  padding-top: 24px;
}
.detail-back {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 9px 14px;
  background: var(--sys-surface-var); border-radius: 17px;
  font-family: var(--sys-font-label); font-weight: 700; font-size: 11px;
  letter-spacing: 0.03em; color: rgba(245,241,236,0.78);
  text-decoration: none; white-space: nowrap;
  transition: background var(--sys-dur-2) var(--sys-ease-std), color var(--sys-dur-2);
}
.detail-back:hover { background: rgba(34,29,24,0.95); color: var(--sys-on-bg); }
.detail-back svg   { width: 14px; height: 14px; }

.detail-body {
  display: flex; gap: 64px; align-items: flex-start;
  padding-top: 24px; padding-bottom: 80px;
}
.detail-left {
  flex: 0 0 460px;
  display: flex; flex-direction: column; gap: 24px;
}
.detail-cover {
  width: 460px; height: 460px;
  background: var(--sys-surface-var);
  border-radius: 4px; overflow: hidden;
  box-shadow: var(--sys-elev-3);
}
.detail-cover img { width: 100%; height: 100%; object-fit: cover; }

.detail-right {
  flex: 0 0 516px; min-width: 0;
  display: flex; flex-direction: column; gap: 20px;
}
.detail-info-group { display: flex; flex-direction: column; gap: 8px; }
.detail-title {
  font-family: var(--sys-font-display); font-size: 100px; font-weight: 400;
  line-height: 1; color: var(--sys-on-bg);
}
.detail-meta {
  font-family: var(--sys-font-body); font-size: 16px;
  line-height: 1.5; color: var(--sys-on-bg);
}
.detail-desc {
  font-family: var(--sys-font-body); font-size: 15px;
  line-height: 1.6; color: var(--sys-on-bg);
}

/* ── "Mehr von L.B.O." ─────────────────────────────── */
.mehr-von {
  border-top: 1px solid var(--sys-outline);
  padding: 60px 0 80px;
  background: rgba(0,0,0,0.48);
}
.mehr-von-title {
  font-family: var(--sys-font-display); font-size: 30px; font-weight: 400;
  color: var(--sys-primary); margin-bottom: 40px;
}
.mehr-von-cols {
  display: flex; gap: 48px; align-items: flex-start; flex-wrap: wrap;
}
.mehr-von-col { display: flex; flex-direction: column; gap: 16px; }
.mehr-von-col-title {
  font-family: var(--sys-font-display); font-size: 36px; font-weight: 400;
  line-height: 1; color: rgba(245,241,236,0.32);
}
.mehr-von-cards { display: flex; gap: 12px; flex-wrap: wrap; }

/* ── Press & Licensing (two-column) ────────────────── */
.press-page { padding: 60px 0 80px; }
.press-layout {
  display: grid;
  grid-template-columns: 440px 1fr;
  gap: 80px;
  align-items: start;
}
.press-left, .press-right {
  display: flex; flex-direction: column;
}
.press-left  { gap: 48px; }
.press-right { gap: 24px; }

.press-head {
  display: flex; flex-direction: column; gap: 12px;
}
.press-title {
  font-family: var(--sys-font-display); font-size: 72px; font-weight: 400;
  line-height: 1; color: var(--sys-on-bg);
}
.press-section { display: flex; flex-direction: column; gap: 12px; }
.legal-page .press-left { max-width: 720px; }
.legal-page .press-bio-long a { color: var(--sys-primary); }
.press-section h2 {
  font-family: var(--sys-font-label); font-weight: 700; font-size: 11px;
  letter-spacing: 0.08em; text-transform: uppercase;
  color: var(--sys-primary);
}
.press-bio-short {
  font-family: var(--sys-font-body); font-size: 15px;
  line-height: 1.65; color: var(--sys-on-bg);
}
.press-bio-long {
  font-family: var(--sys-font-body); font-size: 14px;
  line-height: 1.7; color: var(--sys-on-bg);
}
.press-contact {
  font-family: var(--sys-font-body); font-size: 15px; color: var(--sys-on-bg);
}
.press-platforms { display: flex; gap: 8px; flex-wrap: wrap; }
.press-platform-link {
  padding: 6px 12px;
  background: var(--sys-surface-var); border: 1px solid var(--sys-outline-var);
  border-radius: 6px;
  font-family: var(--sys-font-label); font-weight: 700; font-size: 11px;
  letter-spacing: 0.05em; text-transform: uppercase;
  color: rgba(245,241,236,0.78); text-decoration: none;
  transition: color var(--sys-dur-2) var(--sys-ease-std), border-color var(--sys-dur-2);
}
.press-platform-link:hover { color: var(--sys-primary); border-color: var(--sys-primary); }

/* Licensing form heading + note */
.press-form-heading {
  font-family: var(--sys-font-label); font-weight: 700; font-size: 11px;
  letter-spacing: 0.08em; text-transform: uppercase;
  color: var(--sys-primary);
}
.licensing-note {
  position: relative;
  padding: 12px 16px 12px 24px;
  background: rgba(245,166,35,0.06);
  border-radius: 4px;
  font-family: var(--sys-font-body); font-size: 14px; line-height: 1.5;
  color: var(--sys-on-bg);
}
.licensing-note::before {
  content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 4px;
  background: var(--sys-primary); border-radius: 4px 0 0 4px;
}

/* Underline-style form fields (matching Figma) */
.press-form {
  display: flex; flex-direction: column; gap: 8px;
}
.form-field {
  display: flex; flex-direction: column; gap: 4px;
  padding: 8px 14px 10px;
  border-bottom: 1px solid var(--sys-outline-var);
  transition: border-color var(--sys-dur-2) var(--sys-ease-std);
}
.form-field:focus-within { border-bottom-color: var(--sys-primary); }
.form-field label {
  font-family: var(--sys-font-label); font-weight: 700; font-size: 10px;
  letter-spacing: 0.08em; text-transform: uppercase;
  color: rgba(245,241,236,0.50);
}
.form-field input,
.form-field select,
.form-field textarea {
  background: none; border: none; outline: none;
  font-family: var(--sys-font-body); font-size: 15px;
  color: var(--sys-on-bg);
  width: 100%; padding: 0;
}
.form-field input::placeholder,
.form-field textarea::placeholder { color: rgba(245,241,236,0.32); }
.form-field textarea { min-height: 80px; resize: vertical; }
.form-field select   { appearance: none; cursor: pointer; }

.press-submit {
  margin-top: 16px;
  height: 46px; width: 100%;
  background: var(--sys-primary); color: var(--sys-on-primary);
  font-family: var(--sys-font-body); font-weight: 700; font-size: 12px;
  letter-spacing: 0.08em; text-transform: uppercase;
  border-radius: 4px;
  transition: background var(--sys-dur-2) var(--sys-ease-std);
}
.press-submit:hover { background: var(--ref-neutral-95); }

/* ── Loading / error ───────────────────────────────── */
.loading, .error-state {
  padding: 80px 24px; text-align: center;
  color: rgba(245,241,236,0.55);
  font-family: var(--sys-font-label); font-weight: 700; font-size: 13px;
  letter-spacing: 0.08em; text-transform: uppercase;
}
.error-state a { color: var(--sys-primary); }

/* ── Toast ─────────────────────────────────────────── */
.toast {
  position: fixed; left: 50%; bottom: 32px;
  bottom: max(32px, calc(env(safe-area-inset-bottom) + 16px));
  transform: translateX(-50%) translateY(20px);
  /* M44/notices: width follows the text but never exceeds the screen (before: ~half the screen width on a phone → 3-4 lines) */
  width: max-content; max-width: calc(100vw - 32px); box-sizing: border-box; text-align: center; line-height: 1.4;
  padding: 12px 20px;
  background: var(--sys-on-bg); color: var(--sys-on-primary);
  font-family: var(--sys-font-body); font-weight: 700; font-size: 13px;
  border-radius: 6px; box-shadow: var(--sys-elev-2);
  opacity: 0; pointer-events: none; z-index: 200;
  transition: opacity var(--sys-dur-2) var(--sys-ease-std), transform var(--sys-dur-2) var(--sys-ease-decel);
}
.toast.is-visible { opacity: 1; transform: translateX(-50%) translateY(0); }
.toast.is-visible.is-timed { pointer-events: auto; }      /* only notices that fade by themselves can be hovered (pause); a standing one never blocks a tap */

} /* end @layer components */

/* ═══════════════════════════════════════════════════════
   UTILITIES (responsive)
═══════════════════════════════════════════════════════ */
@layer utilities {

@media (max-width: 1100px) {
  .wrap            { padding: 0 60px; }
  .hero-right      { flex: 0 0 440px; }
  .hero-title      { font-size: 64px; }
  .detail-right    { flex: 0 0 440px; }
  .detail-title    { font-size: 64px; }
  .press-layout    { grid-template-columns: 360px 1fr; gap: 60px; }
  .press-title     { font-size: 56px; }
}

@media (max-width: 900px) {
  .wrap                { padding: 0 40px; }

  .featured-hero-inner { gap: 40px; }
  .hero-left           { flex: 0 0 300px; }
  .hero-cover          { width: 300px; height: 300px; }
  .hero-right          { flex: 1; }
  .hero-title          { font-size: 56px; }

  .detail-body         { gap: 40px; }
  .detail-left         { flex: 0 0 300px; }
  .detail-cover        { width: 300px; height: 300px; }
  .detail-right        { flex: 1; }
  .detail-title        { font-size: 56px; }

  .section-heading     { font-size: 60px; }
  .email-title         { font-size: 60px; }
  .about-title         { font-size: 60px; }

  .press-layout        { grid-template-columns: 280px 1fr; gap: 48px; }
  .press-title         { font-size: 48px; }
}

@media (max-width: 768px) {
  :root            { --sys-nav-h: 80px; }
  #hdr             { padding: 0 20px; align-items: center; }
  .hdr-nav-group   { margin-top: 0; }
  #nav             { display: none; }
  #logo .logo-img  { height: 50px; }
  .hdr-right       { gap: 12px; }
  .loops-chip      { padding: 5px 9px; font-size: 9px; }
  .hamburger-btn   { display: flex; }

  .nav-player-meta { display: none; }
  .nav-player      { max-width: none; }

  .wrap            { padding: 0 24px; }

  .featured-hero-inner {
    flex-direction: column; gap: 32px;
    padding-top: 56px; padding-bottom: 40px;
  }
  .hero-left, .hero-right { flex: none; width: 100%; }
  .hero-cover      { width: 100%; height: auto; aspect-ratio: 1/1; }
  .hero-title      { font-size: 52px; }

  .detail-body     { flex-direction: column; gap: 28px; padding-top: 20px; }
  .detail-left, .detail-right { flex: none; width: 100%; }
  .detail-cover    { width: 100%; height: auto; aspect-ratio: 1/1; }
  .detail-title    { font-size: 52px; }

  .releases-grid   { grid-template-columns: repeat(2, 1fr); gap: 8px; }
  .rc-cover        { height: auto; aspect-ratio: 1/1; }

  .mehr-von-cols   { gap: 32px; }

  .press-layout    { grid-template-columns: 1fr; gap: 56px; }
  .press-title     { font-size: 48px; }
}

@media (max-width: 480px) {
  .hero-title, .detail-title { font-size: 42px; }
  .releases-grid   { grid-template-columns: 1fr; }
  .releases-grid .release-card { max-width: 320px; }

  .track-row       { grid-template-columns: 28px 28px 1fr auto; gap: 10px; padding: 0 4px; }
  .track-row-share { display: none; }

  .mehr-von-cols   { flex-direction: column; }
  .mehr-von-col-title { font-size: 30px; }

  .email-form {
    width: 100%; flex-direction: column; height: auto; border: none;
    background: transparent;
  }
  .email-form input[type="email"] {
    border: 1px solid var(--sys-outline-var); border-radius: 6px;
    height: 50px; background: var(--sys-surface-var); padding: 0 16px;
  }
  .email-form button { border-radius: 6px; height: 46px; width: 100%; }
}

:focus-visible { outline: 2px solid var(--sys-primary); outline-offset: 2px; }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    transition-duration: 0.01ms !important;
  }
}

} /* end @layer utilities */

/* ── Detail page colour tint (fixed, fades below hero) ── */
#detail-bg-tint {
  position: fixed; inset: 0;
  z-index: -1; pointer-events: none;
  opacity: 0;
  transition: opacity 1.4s ease;
  -webkit-mask-image: linear-gradient(to bottom, black 0%, black 72%, transparent 96%);
  mask-image: linear-gradient(to bottom, black 0%, black 72%, transparent 96%);
}

/* ── Background video (unlayered, highest cascade) ─── */
#page-bg {
  position: fixed; inset: 0; z-index: -1;
  overflow: hidden;
}
#page-bg-video {
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  object-fit: cover;
}
#page-bg-overlay {
  position: absolute; inset: 0;
  background: rgba(0,0,0,0.33);
}
#page-bg-fallback {
  position: absolute; inset: 0;
  background: url('/assets/main_bg.jpg') center / cover no-repeat;
  opacity: 0;
  pointer-events: none;
}
#page-bg.bg-fallback #page-bg-video  { display: none; }
#page-bg.bg-fallback #page-bg-fallback { opacity: 1; }

/* Hide background video entirely on release detail pages */
.detail-active #page-bg { display: none; }

/* ── Random-play (shuffle) button ──────────────────── */
.shuffle-row { display: flex; }
.shuffle-btn {
  display: inline-flex; align-items: center; gap: 9px;
  padding: 9px 18px;
  font-family: var(--sys-font-label); font-size: 12px; font-weight: 700;
  letter-spacing: 0.06em; text-transform: uppercase;
  color: #fff;
  background: rgba(255,255,255,0.14);
  border: 1px solid rgba(255,255,255,0.40);
  border-radius: 9999px;
  cursor: pointer;
  transition: background var(--sys-dur-2) var(--sys-ease-std),
              color var(--sys-dur-2) var(--sys-ease-std),
              border-color var(--sys-dur-2) var(--sys-ease-std);
}
.shuffle-btn:hover { background: rgba(255,255,255,0.24); }
.shuffle-btn svg { width: 16px; height: 16px; display: block; }
.shuffle-icon { display: inline-flex; align-items: center; }

/* Idle shows the single "Random Play" button; the active loop shows the
   [Prev | Stop | Next] pill. */
.shuffle-pill { display: none; }
.shuffle-row.is-on .shuffle-single { display: none; }
.shuffle-row.is-on .shuffle-pill { display: inline-flex; }

.shuffle-pill {
  align-items: stretch;
  border: 1px solid #fff;
  border-radius: 9999px;
  background: #fff;                /* solid white — active state */
  overflow: hidden;
}
.sp-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  padding: 9px 16px;
  background: none; border: none; cursor: pointer;
  color: var(--sys-on-primary);   /* black icons + label on white */
  font-family: var(--sys-font-label); font-size: 12px; font-weight: 700;
  letter-spacing: 0.06em; text-transform: uppercase;
  transition: background var(--sys-dur-2) var(--sys-ease-std);
}
.sp-btn:hover { background: #ececec; }
.sp-btn + .sp-btn { border-left: 1px solid var(--sys-on-primary); }  /* black vertical dividers */
.sp-prev, .sp-next { padding: 9px 15px; }
.sp-btn svg { width: 16px; height: 16px; display: block; }
.sp-icon { display: inline-flex; align-items: center; }
