:root {
  --ink: #181916;
  --paper: #f0ede4;
  --paper-deep: #e1dccf;
  --brass: #c58a3a;
  --brass-light: #e5bd77;
  --rust: #9f4f32;
  --muted: #77756d;
  --line: rgba(24, 25, 22, 0.18);
  --serif: "Newsreader", Georgia, serif;
  --sans: "DM Sans", "Segoe UI", sans-serif;
}

* { box-sizing: border-box; }

html { scroll-behavior: smooth; }

body {
  margin: 0;
  padding-bottom: 88px;
  background: var(--paper);
  color: var(--ink);
  font-family: var(--sans);
  font-size: 16px;
  line-height: 1.55;
}

button, input { font: inherit; }
button { color: inherit; }
a { color: inherit; }

.site-header {
  position: absolute;
  top: 0;
  right: 0;
  left: 0;
  z-index: 5;
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 28px;
  max-width: 1440px;
  height: 92px;
  margin: 0 auto;
  padding: 0 5vw;
  color: var(--paper);
}

.brand {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  width: max-content;
  text-decoration: none;
  text-transform: uppercase;
  line-height: 1;
}

.brand strong { display: block; font-size: 1rem; letter-spacing: .12em; }
.brand small { display: block; margin-top: 5px; color: var(--brass-light); font-size: .58rem; letter-spacing: .25em; }

.brand-mark {
  display: grid;
  place-items: center;
  width: 38px;
  height: 38px;
  border: 1px solid rgba(240, 237, 228, .7);
  border-radius: 50%;
}

.brand-mark::before,
.brand-mark::after,
.brand-mark i {
  content: "";
  display: block;
  width: 3px;
  border-radius: 4px;
  background: var(--brass-light);
}

.brand-mark { grid-template-columns: repeat(3, 3px); gap: 3px; }
.brand-mark::before { height: 11px; }
.brand-mark i { height: 22px; }
.brand-mark::after { height: 15px; }

.site-nav { display: flex; gap: 34px; }
.site-nav a { color: rgba(240, 237, 228, .72); font-size: .76rem; font-weight: 600; letter-spacing: .12em; text-decoration: none; text-transform: uppercase; }
.site-nav a:hover { color: var(--paper); }

.header-listen {
  justify-self: end;
  display: inline-flex;
  align-items: center;
  gap: 9px;
  padding: 10px 16px;
  border: 1px solid rgba(240, 237, 228, .38);
  border-radius: 999px;
  background: transparent;
  color: var(--paper);
  font-size: .75rem;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  cursor: pointer;
}

.mini-live-dot, .live-dot {
  display: inline-block;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #de7250;
  box-shadow: 0 0 0 4px rgba(222, 114, 80, .14);
}

.hero {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(380px, .95fr);
  min-height: 780px;
  overflow: hidden;
  background:
    radial-gradient(circle at 73% 43%, rgba(197, 138, 58, .13), transparent 28%),
    linear-gradient(118deg, #171815 0%, #21221e 54%, #11120f 100%);
  color: var(--paper);
}

.hero::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  opacity: .08;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 160 160' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.7'/%3E%3C/svg%3E");
}

.hero-copy {
  position: relative;
  z-index: 2;
  align-self: center;
  max-width: 750px;
  padding: 146px 5vw 90px;
}

.eyebrow, .section-number {
  display: flex;
  align-items: center;
  gap: 11px;
  margin: 0 0 28px;
  font-size: .7rem;
  font-weight: 700;
  letter-spacing: .18em;
  text-transform: uppercase;
}

.eyebrow { color: var(--brass-light); }

.hero h1 {
  max-width: 760px;
  margin: 0;
  font-family: var(--serif);
  font-size: clamp(4.3rem, 7.6vw, 8.1rem);
  font-weight: 400;
  letter-spacing: -.055em;
  line-height: .8;
}

.hero h1 em { color: var(--brass-light); font-weight: 400; }

.hero-intro {
  max-width: 590px;
  margin: 34px 0 38px;
  color: rgba(240, 237, 228, .67);
  font-size: 1.03rem;
}

.now-playing-card {
  width: min(590px, 100%);
  padding: 19px 20px 14px;
  border: 1px solid rgba(240, 237, 228, .18);
  background: rgba(255, 255, 255, .045);
  box-shadow: 0 22px 55px rgba(0, 0, 0, .17);
  backdrop-filter: blur(9px);
}

.now-label { display: flex; justify-content: space-between; color: rgba(240, 237, 228, .48); font-size: .65rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; }
.track-line { display: flex; align-items: center; gap: 16px; margin-top: 15px; }

.hero-play, .player-main-button {
  position: relative;
  flex: 0 0 auto;
  display: grid;
  place-items: center;
  border: 0;
  border-radius: 50%;
  background: var(--brass-light);
  cursor: pointer;
}

.hero-play { width: 54px; height: 54px; }
.player-main-button { width: 49px; height: 49px; }
.hero-play:hover, .player-main-button:hover { background: #f1cf91; }

.play-symbol {
  width: 0;
  height: 0;
  margin-left: 4px;
  border-top: 7px solid transparent;
  border-bottom: 7px solid transparent;
  border-left: 11px solid var(--ink);
}

.is-playing .play-symbol {
  width: 10px;
  height: 14px;
  margin-left: 0;
  border: 0;
  border-right: 3px solid var(--ink);
  border-left: 3px solid var(--ink);
}

.track-copy { min-width: 0; }
.track-copy strong, .player-track strong { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.track-copy strong { font-family: var(--serif); font-size: 1.5rem; font-weight: 500; line-height: 1.15; }
.track-copy span { display: block; margin-top: 3px; color: rgba(240, 237, 228, .59); font-size: .85rem; }

.signal-line { display: flex; align-items: end; gap: 4px; height: 19px; margin-top: 13px; }
.signal-line span { width: 3px; height: 3px; background: rgba(229, 189, 119, .42); }
.is-playing .signal-line span { animation: level 1.05s ease-in-out infinite alternate; }
.signal-line span:nth-child(2n) { animation-delay: -.4s; }
.signal-line span:nth-child(3n) { animation-delay: -.75s; }
.signal-line span:nth-child(4n) { animation-delay: -.2s; }

@keyframes level { from { height: 3px; } to { height: 18px; } }

.hero-art { position: relative; display: grid; place-items: center; min-width: 0; }
.sun-glow { position: absolute; width: 65%; aspect-ratio: 1; border-radius: 50%; background: radial-gradient(circle, rgba(197, 138, 58, .25), rgba(159, 79, 50, .1) 45%, transparent 70%); filter: blur(4px); }

.record {
  position: relative;
  z-index: 1;
  display: grid;
  place-items: center;
  width: min(38vw, 540px);
  aspect-ratio: 1;
  border-radius: 50%;
  background:
    repeating-radial-gradient(circle, transparent 0 5px, rgba(255,255,255,.035) 6px, transparent 7px 10px),
    radial-gradient(circle at 38% 32%, #393b34, #090a08 43%, #1f201d 60%, #080907 78%);
  box-shadow: 0 42px 80px rgba(0, 0, 0, .48), inset -20px -15px 45px rgba(0, 0, 0, .72);
  transform: rotate(-8deg);
}

.record::after { content: ""; position: absolute; inset: 4%; border: 1px solid rgba(255,255,255,.06); border-radius: 50%; }
.record-label { display: grid; place-items: center; width: 35%; aspect-ratio: 1; border-radius: 50%; background: radial-gradient(circle at 35% 30%, #d8a759, #a85c35 68%, #713822); color: #211910; text-align: center; box-shadow: inset 0 0 0 2px rgba(35,25,16,.22); }
.record-label::after { content: ""; position: absolute; width: 11px; height: 11px; border-radius: 50%; background: #080907; }
.record-label span { align-self: end; font-size: clamp(.45rem, .8vw, .7rem); font-weight: 700; letter-spacing: .2em; }
.record-label b { font-family: var(--serif); font-size: clamp(.8rem, 1.5vw, 1.3rem); line-height: .85; }
.record-label small { align-self: start; font-size: .42rem; letter-spacing: .16em; }

.side-note { position: absolute; right: 4.3vw; bottom: 76px; margin: 0; color: rgba(240, 237, 228, .38); font-size: .65rem; letter-spacing: .14em; line-height: 1.6; text-align: right; text-transform: uppercase; }

.manifesto, .quality-section, .about-section { padding: 100px 7vw; }
.manifesto { display: grid; grid-template-columns: .52fr 1.25fr .75fr; gap: 5vw; align-items: start; border-bottom: 1px solid var(--line); }
.section-number { color: var(--rust); }
.manifesto blockquote { margin: 0; font-family: var(--serif); font-size: clamp(2.8rem, 4.6vw, 5rem); letter-spacing: -.045em; line-height: .94; }
.manifesto blockquote em { color: var(--rust); font-weight: 400; }
.manifesto-copy { padding-top: 52px; color: #51514b; }
.manifesto-copy p { margin-top: 0; }
.era-list { display: grid; margin-top: 32px; border-top: 1px solid var(--line); }
.era-list span { padding: 10px 0; border-bottom: 1px solid var(--line); color: var(--ink); font-size: .72rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }

.quality-section { display: grid; grid-template-columns: .72fr 1.28fr; gap: 7vw; background: var(--paper-deep); }
.quality-section h2, .about-heading h2 { margin: 0 0 24px; font-family: var(--serif); font-size: clamp(2.8rem, 4.2vw, 4.5rem); font-weight: 400; letter-spacing: -.045em; line-height: .95; }
.quality-section > div > p:last-child { max-width: 470px; color: #66645d; }
.quality-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; align-self: center; }
.quality-option { position: relative; min-height: 210px; padding: 22px; border: 1px solid rgba(24,25,22,.2); background: transparent; text-align: left; cursor: pointer; transition: transform .2s ease, background .2s ease; }
.quality-option:hover { transform: translateY(-3px); }
.quality-option.is-selected { background: var(--ink); color: var(--paper); }
.quality-option span { display: block; min-height: 52px; color: var(--rust); font-size: .68rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.quality-option.is-selected span { color: var(--brass-light); }
.quality-option strong { display: block; font-family: var(--serif); font-size: 4.2rem; font-weight: 400; line-height: .9; }
.quality-option small { display: block; margin-top: 8px; color: var(--muted); font-size: .72rem; letter-spacing: .08em; text-transform: uppercase; }
.quality-option.is-selected small { color: rgba(240,237,228,.54); }

.about-section { display: grid; grid-template-columns: 1fr 1fr; gap: 10vw; }
.about-copy { max-width: 610px; padding-top: 48px; color: #5c5b54; font-size: 1.05rem; }
.about-copy p:first-child { margin-top: 0; color: var(--ink); font-size: 1.32rem; }
.text-link { display: inline-flex; gap: 13px; margin-top: 28px; padding-bottom: 5px; border-bottom: 1px solid var(--ink); font-size: .76rem; font-weight: 700; letter-spacing: .1em; text-decoration: none; text-transform: uppercase; }

.site-footer { display: grid; grid-template-columns: 1fr auto auto; gap: 40px; align-items: end; padding: 64px 7vw; background: #141512; color: rgba(240,237,228,.5); font-size: .72rem; }
.footer-brand { color: var(--paper); font-family: var(--serif); font-size: 2.1rem; }
.footer-brand span { color: var(--brass-light); }

.player-bar { position: fixed; right: 0; bottom: 0; left: 0; z-index: 20; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; min-height: 88px; padding: 12px 3.5vw; border-top: 1px solid rgba(240,237,228,.12); background: rgba(20, 21, 18, .96); color: var(--paper); box-shadow: 0 -10px 32px rgba(0,0,0,.2); backdrop-filter: blur(14px); }
.player-track { display: flex; align-items: center; gap: 14px; min-width: 0; }
.player-live { padding: 5px 7px; border: 1px solid rgba(222,114,80,.6); color: #ed9478; font-size: .56rem; font-weight: 700; letter-spacing: .1em; }
.player-track > div { min-width: 0; }
.player-track strong { max-width: 32vw; font-size: .9rem; }
.player-track span:not(.player-live) { display: block; max-width: 32vw; overflow: hidden; color: rgba(240,237,228,.5); font-size: .72rem; text-overflow: ellipsis; white-space: nowrap; }
.player-controls { justify-self: end; display: flex; align-items: center; gap: 10px; }
.player-controls label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); }
.player-controls input { width: 110px; accent-color: var(--brass-light); }
.mute-button { padding: 6px 8px; border: 0; background: transparent; color: rgba(240,237,228,.65); font-size: .67rem; cursor: pointer; }
.quality-label { min-width: 62px; color: var(--brass-light); font-size: .62rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }

button:focus-visible, a:focus-visible, input:focus-visible { outline: 2px solid var(--brass-light); outline-offset: 3px; }

@media (max-width: 900px) {
  .site-header { grid-template-columns: 1fr auto; }
  .site-nav { display: none; }
  .hero { grid-template-columns: 1fr; min-height: auto; }
  .hero-copy { padding-top: 142px; padding-bottom: 64px; }
  .hero-art { min-height: 490px; padding-bottom: 70px; }
  .record { width: min(74vw, 480px); }
  .manifesto { grid-template-columns: 1fr; gap: 24px; }
  .manifesto-copy { padding-top: 12px; }
  .quality-section { grid-template-columns: 1fr; }
  .about-section { gap: 5vw; }
}

@media (max-width: 650px) {
  body { padding-bottom: 128px; }
  .site-header { height: 78px; padding: 0 20px; }
  .header-listen { padding: 9px 12px; font-size: .66rem; }
  .hero-copy { padding: 118px 20px 52px; }
  .hero h1 { font-size: clamp(4rem, 19vw, 6rem); }
  .hero-intro { font-size: .95rem; }
  .now-playing-card { padding: 16px 15px 12px; }
  .now-label { font-size: .56rem; }
  .track-copy strong { font-size: 1.18rem; }
  .hero-art { min-height: 390px; }
  .record { width: 82vw; }
  .side-note { display: none; }
  .manifesto, .quality-section, .about-section { padding: 72px 20px; }
  .manifesto blockquote { font-size: 3rem; }
  .quality-grid { grid-template-columns: 1fr; }
  .quality-option { display: grid; grid-template-columns: 1fr auto; align-items: center; min-height: 105px; }
  .quality-option span { min-height: 0; }
  .quality-option strong { grid-row: span 2; font-size: 3.2rem; }
  .about-section { grid-template-columns: 1fr; }
  .about-copy { padding-top: 0; }
  .site-footer { grid-template-columns: 1fr; gap: 10px; padding: 50px 20px; }
  .player-bar { grid-template-columns: 1fr auto; grid-template-rows: auto auto; min-height: 124px; padding: 12px 16px; }
  .player-main-button { grid-column: 2; grid-row: 1; }
  .player-controls { grid-column: 1 / -1; justify-self: stretch; }
  .player-controls input { flex: 1; width: auto; }
  .player-track strong, .player-track span:not(.player-live) { max-width: 58vw; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .signal-line span { animation: none !important; }
  .quality-option { transition: none; }
}
