/* Catalogue page only; the homepage keeps its existing presentation. */
.discography-main { padding:156px 7vw 80px; max-width:1920px; margin:auto; }
.discography-skip { position:fixed; z-index:110; top:12px; left:12px; padding:12px 18px; background:#fff; color:#050506; font-weight:800; transform:translateY(-200%); }
.discography-skip:focus { transform:none; }
.discography-back { display:inline-flex; align-items:center; gap:12px; margin-bottom:46px; color:#b8b8bd; font-size:16px; font-weight:800; letter-spacing:.06em; text-transform:uppercase; }
.discography-back:hover { color:#fff; }
.discography-intro h1 { display:block; margin:52px 0 0; font-size:clamp(3.4rem,6.3vw,6.7rem); font-weight:950; line-height:.82; letter-spacing:-.065em; transform:none; }
.discography-intro h1 em { display:block; color:var(--red); font-style:normal; }
.discography-intro-bottom { display:flex; align-items:end; justify-content:space-between; gap:30px; margin-top:32px; padding-bottom:46px; border-bottom:1px solid var(--line); }
.discography-intro-bottom p { margin:0; color:#b8b8bd; font-size:19px; line-height:1.6; }
.discography-intro-bottom .discography-total { display:flex; align-items:center; gap:16px; font-size:16px; font-weight:800; letter-spacing:.13em; }
.discography-total strong { font-size:50px; line-height:1; letter-spacing:-.05em; color:var(--white); }
.discography-toolbar { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:24px; margin-top:45px; }
.discography-toolbar h2 { margin:0; font-size:clamp(26px,2.8vw,40px); font-weight:900; letter-spacing:-.04em; }
.discography-toolbar h2 em { color:var(--red); font-style:normal; }
.discography-filter { display:flex; align-items:center; gap:12px; }
.discography-filter label { font-size:16px; font-weight:800; text-transform:uppercase; letter-spacing:.06em; color:#b8b8bd; }
.discography-filter select { min-height:48px; min-width:130px; padding:10px 14px; border:1px solid #55555c; border-radius:0; background:#151518; color:#fff; font:700 16px Arial,Helvetica,sans-serif; color-scheme:dark; cursor:pointer; }
.discography-filter button { min-height:48px; padding:10px 18px; border:1px solid var(--red); border-radius:0; background:var(--red); color:#fff; font:900 16px Arial,Helvetica,sans-serif; text-transform:uppercase; cursor:pointer; transition:background-color .2s,color .2s; }
.discography-filter button:hover { background:#fff; color:var(--red); border-color:#fff; }
.discography-results { margin:18px 0 0; color:#9999a2; font-size:16px; font-weight:700; letter-spacing:.07em; }
.discography-year { position:relative; isolation:isolate; margin-top:54px; padding-bottom:100px; }
.discography-year-ghost { position:sticky; top:120px; height:0; z-index:-1; color:rgba(255,255,255,.16); font-size:clamp(200px,28vw,510px); font-weight:900; line-height:1; letter-spacing:-.08em; text-align:center; pointer-events:none; }
.discography-year-label { display:flex; align-items:center; gap:16px; margin:0 0 34px; padding-left:14px; border-left:3px solid var(--red); font-size:30px; font-weight:900; letter-spacing:-.03em; }
.discography-year-label span { color:#9999a2; font-size:16px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; }
.discography-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); align-items:start; gap:66px clamp(30px,4.5vw,88px); }
.discography-card { min-width:0; }
.discography-card:nth-child(even) { transform:translateY(90px); }
.discography-card-link { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.1fr); align-items:center; gap:22px; height:100%; }
.discography-art { position:relative; aspect-ratio:1; overflow:hidden; background:#101012; border:1px solid rgba(255,255,255,.12); box-shadow:0 14px 38px rgba(0,0,0,.25); }
.discography-art img { display:block; width:100%; height:100%; object-fit:cover; object-position:center; transition:transform .35s; }
.discography-art-number {
  position:absolute; bottom:10px; left:10px; width:44px; height:44px; padding:0;
  display:grid; place-items:center; border:1px solid #ff5962; border-radius:8px;
  background:var(--red); color:#fff; font-size:18px; font-weight:900; line-height:1;
  letter-spacing:.03em; font-variant-numeric:tabular-nums;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.28),0 4px 0 #8d0e18,0 9px 22px rgba(240,43,52,.2);
  transition:background-color .22s ease,color .22s ease,border-color .22s ease,box-shadow .22s ease,transform .22s ease;
}
.discography-card-link:is(:hover,:focus-visible,:active) .discography-art-number {
  border-color:#fff; background:#fff; color:var(--red);
  box-shadow:inset 0 0 0 1px rgba(240,43,52,.12),0 4px 0 rgba(255,255,255,.48),0 0 24px rgba(240,43,52,.34);
  transform:translateY(-2px);
}
.discography-info { min-width:0; }
.discography-date { display:flex; flex-wrap:wrap; align-items:center; gap:8px; color:#b8b8bd; font-size:16px; line-height:1.5; }
.discography-new { padding:4px 6px; background:var(--red); color:#fff; font-size:14px; font-weight:900; text-transform:uppercase; letter-spacing:.03em; }
.discography-info h3 { margin:17px 0 9px; font-size:clamp(28px,2.2vw,34px); font-weight:900; line-height:1.12; letter-spacing:-.035em; text-transform:uppercase; overflow-wrap:anywhere; }
.discography-artist { margin:0; color:#b8b8bd; font-size:16px; line-height:1.5; }
.discography-artist::before { content:""; display:inline-block; width:18px; height:1px; margin-right:9px; vertical-align:middle; background:#77777d; }
.discography-watch { display:flex; align-items:center; gap:8px; margin-top:24px; font-size:16px; font-weight:900; line-height:1.4; text-transform:uppercase; }
.discography-watch>span:last-child { display:inline-block; color:currentColor; transition:color .22s,transform .22s; }
.discography-card-link:hover .discography-watch>span:last-child,.discography-card-link:focus-visible .discography-watch>span:last-child { color:var(--red); transform:translate(2px,-2px); }
.discography-play { width:34px; height:34px; flex:0 0 34px; display:grid; place-items:center; border:1px solid var(--red); background:var(--red); color:#fff; transition:background-color .25s,color .25s; }
.discography-card-link:hover .discography-play,.discography-card-link:focus-visible .discography-play { background:#fff; border-color:#fff; color:var(--red); }
.discography-card-link:hover .discography-art img { transform:scale(1.035); }
.discography-page a:focus-visible,.discography-filter select:focus-visible,.discography-filter button:focus-visible { outline:2px solid var(--red); outline-offset:5px; }
@media (max-width:1100px) and (min-width:701px) {
  .discography-main { padding-left:5vw; padding-right:5vw; }
  .discography-card-link { grid-template-columns:1fr; gap:18px; }
  .discography-art { max-width:100%; }
  .discography-info h3 { font-size:30px; }
  .discography-watch { margin-top:16px; }
  .discography-filter label { max-width:100px; line-height:1.5; }
}
@media (max-width:700px) {
  .discography-main { padding:108px 6vw 52px; }
  .discography-back { margin-bottom:28px; font-size:14px; }
  .discography-intro h1 { margin-top:22px; }
  .discography-intro-bottom { align-items:start; flex-direction:column; gap:20px; margin-top:12px; padding-bottom:28px; }
  .discography-intro-bottom p { font-size:17px; }
  .discography-intro-bottom .discography-total { font-size:16px; gap:12px; }
  .discography-total strong { font-size:38px; }
  .discography-toolbar { align-items:stretch; flex-direction:column; margin-top:28px; gap:20px; }
  .discography-toolbar h2 { font-size:30px; }
  .discography-filter { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:10px; }
  .discography-filter label { grid-column:1/-1; }
  .discography-filter select { min-width:0; width:100%; font-size:16px; }
  .discography-filter button { font-size:16px; }
  .discography-year { margin-top:34px; padding-bottom:0; }
  .discography-year-label { margin-bottom:26px; font-size:26px; }
  .discography-year-ghost { top:110px; font-size:31vw; }
  .discography-grid { grid-template-columns:1fr; gap:30px; }
  .discography-card:nth-child(even) { transform:none; }
  .discography-card-link { grid-template-columns:minmax(0,1fr) minmax(0,1.12fr); gap:16px; padding-bottom:26px; border-bottom:1px solid var(--line); }
  .discography-info h3 { margin:10px 0 7px; font-size:clamp(22px,5.8vw,28px); }
  .discography-date { font-size:16px; }
  .discography-artist { font-size:16px; }
  .discography-watch { flex-wrap:nowrap; gap:6px; margin-top:15px; font-size:16px; }
  .discography-play { width:34px; height:34px; flex-basis:34px; }
}
@media (max-width:380px) {
  .discography-card-link { gap:12px; }
  .discography-watch>span:last-child { display:none; }
}

/* The catalogue photograph fades before the release grid. */
.discography-main.has-section-scene { --scene-floor:#050506; --scene-position:right top; --scene-veil:linear-gradient(90deg,rgba(5,5,6,.93) 0%,rgba(5,5,6,.8) 40%,rgba(5,5,6,.24) 73%,rgba(5,5,6,.5) 100%); }
@media (max-width:700px) {
  .discography-main.has-section-scene { --scene-position:74% top; --scene-veil:linear-gradient(90deg,rgba(5,5,6,.9),rgba(5,5,6,.55)); }
}

/* Each year has a separate photo layer; cards keep their existing geometry. */
.discography-year { --year-gutter:7vw; --year-surface:#050506; --year-shade-edge:rgba(5,5,6,.82); --year-shade-middle:rgba(5,5,6,.76); }
.discography-year-backdrop { position:absolute; inset:0 calc(-1 * var(--year-gutter)); z-index:-2; pointer-events:none; background:var(--year-surface); }
.discography-year-backdrop-frame { position:sticky; top:0; height:100vh; height:100svh; max-height:100%; overflow:hidden; background:var(--year-surface); }
.discography-year-backdrop-frame img { display:block; width:100%; height:100%; object-fit:cover; object-position:var(--year-position,center); }
.discography-year-backdrop-frame::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,var(--year-surface) 0%,transparent 18%,transparent 80%,var(--year-surface) 100%),linear-gradient(90deg,var(--year-shade-edge),var(--year-shade-middle) 52%,var(--year-shade-edge)); }
.discography-year-backdrop-frame::before { content:""; position:absolute; z-index:1; inset:0; background:radial-gradient(ellipse at 70% 50%,hsl(var(--year-hue) 65% 32% / .07),transparent 65%); }
@media (max-width:1100px) and (min-width:701px) {
  .discography-year { --year-gutter:5vw; }
}
@media (max-width:700px) {
  .discography-year { --year-gutter:6vw; }
}

/* A lasting change in surface tone separates the archive from the current year. */
.discography-year[data-year="2025"] { --year-surface:#2c3038; --year-shade-edge:rgba(44,48,56,.92); --year-shade-middle:rgba(44,48,56,.88); }
.discography-year[data-year="2025"] .discography-year-ghost { color:rgba(255,255,255,.12); }
.discography-year[data-year="2025"] .discography-date,
.discography-year[data-year="2025"] .discography-artist,
.discography-year[data-year="2025"] .discography-year-label span { color:#d9dce2; }

/* Streaming platform chooser — one reusable dialog for the full catalogue. */
body.listen-dialog-open { overflow:hidden; }
.discography-listen-dialog { width:min(1040px,calc(100vw - 40px)); max-width:none; max-height:calc(100svh - 40px); margin:auto; padding:0; border:0; background:transparent; color:#fff; overflow:visible; }
.discography-listen-dialog::backdrop { background:rgba(2,2,4,.86); -webkit-backdrop-filter:blur(13px) saturate(.8); backdrop-filter:blur(13px) saturate(.8); animation:listen-backdrop-in .24s ease both; }
.listen-dialog-shell { position:relative; display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); align-items:center; max-height:calc(100svh - 40px); overflow:auto; overscroll-behavior:contain; background:radial-gradient(circle at 14% 12%,rgba(247,36,51,.17),transparent 34%),linear-gradient(145deg,#17171c 0%,#0a0a0d 48%,#141419 100%); border:1px solid rgba(255,255,255,.2); box-shadow:0 35px 100px rgba(0,0,0,.72),0 0 0 1px rgba(247,36,51,.14),0 0 46px rgba(247,36,51,.16); animation:listen-dialog-in .3s cubic-bezier(.2,.8,.2,1) both; }
.listen-dialog-shell::before { content:""; position:absolute; z-index:2; top:0; left:0; width:42%; height:4px; background:linear-gradient(90deg,var(--red),#ff7380,transparent); box-shadow:0 0 22px rgba(247,36,51,.85); pointer-events:none; }
.listen-dialog-close { position:absolute; z-index:5; top:18px; right:18px; width:48px; height:48px; padding:0; border:1px solid rgba(255,255,255,.3); background:linear-gradient(145deg,#f72a3d,#a70816); box-shadow:0 10px 28px rgba(247,36,51,.3),inset 0 1px 0 rgba(255,255,255,.3); color:#fff; cursor:pointer; transition:transform .25s,background .25s,box-shadow .25s; }
.listen-dialog-close span::before,.listen-dialog-close span::after { content:""; position:absolute; top:22px; left:12px; width:22px; height:3px; border-radius:2px; background:currentColor; }
.listen-dialog-close span::before { transform:rotate(45deg); }
.listen-dialog-close span::after { transform:rotate(-45deg); }
.listen-dialog-close:hover { background:#fff; color:var(--red); transform:rotate(90deg) scale(1.04); box-shadow:0 0 30px rgba(255,255,255,.28); }
.listen-dialog-close:focus-visible { outline:3px solid #fff; outline-offset:4px; }
.listen-dialog-art { position:relative; align-self:stretch; min-width:0; aspect-ratio:1; overflow:hidden; background:#09090b; }
.listen-dialog-art::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,transparent 42%,rgba(4,4,6,.28) 67%,rgba(4,4,6,.9) 100%),linear-gradient(90deg,rgba(247,36,51,.16),transparent 38%); pointer-events:none; }
.listen-dialog-art img { display:block; width:100%; height:100%; object-fit:cover; object-position:center; transform:scale(1.01); }
.listen-dialog-art-copy { position:absolute; z-index:1; right:24px; bottom:22px; left:24px; display:flex; align-items:end; justify-content:space-between; gap:18px; text-transform:uppercase; }
.listen-dialog-art-copy span { font-size:14px; font-weight:950; letter-spacing:.18em; }
.listen-dialog-art-copy strong { color:#d8d8dd; font-size:11px; letter-spacing:.13em; }
.listen-dialog-content { min-width:0; padding:70px clamp(28px,4vw,60px) 46px; }
.listen-dialog-kicker { margin:0 0 12px; color:var(--red); font-size:13px; font-weight:950; letter-spacing:.2em; text-transform:uppercase; }
.listen-dialog-content h2 { margin:0; font-size:clamp(42px,5vw,72px); font-weight:950; line-height:.88; letter-spacing:-.065em; }
.listen-dialog-content h2 em { display:block; color:var(--red); font-style:normal; }
.listen-dialog-release { display:flex; flex-direction:column; gap:7px; margin:26px 0 34px; padding-left:16px; border-left:3px solid var(--red); }
.listen-dialog-release strong { font-size:clamp(21px,2.2vw,31px); font-weight:950; line-height:1.06; letter-spacing:-.035em; text-transform:uppercase; overflow-wrap:anywhere; }
.listen-dialog-release span { color:#b7b7be; font-size:15px; font-weight:700; }
.listen-dialog-content>h3 { margin:0 0 14px; font-size:16px; font-weight:950; letter-spacing:.12em; }
.listen-platform-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); border-top:1px solid rgba(255,255,255,.28); border-left:1px solid rgba(255,255,255,.28); }
.listen-platform { position:relative; min-width:0; min-height:78px; display:grid; grid-template-columns:42px minmax(0,1fr) auto; align-items:center; gap:12px; padding:15px 14px; border-right:1px solid rgba(255,255,255,.28); border-bottom:1px solid rgba(255,255,255,.28); color:#fff; background:linear-gradient(145deg,#24242a 0%,#151519 48%,#09090c 100%); box-shadow:inset 0 1px 0 rgba(255,255,255,.13),inset 0 -9px 18px rgba(0,0,0,.42),0 8px 20px rgba(0,0,0,.28); transition:background .25s,color .22s,transform .25s,box-shadow .25s; }
.listen-platform::before { content:""; position:absolute; inset:0 auto 0 0; width:3px; background:var(--red); box-shadow:0 0 14px rgba(240,43,52,.72); transform:scaleY(0); transform-origin:top; transition:transform .25s ease; }
.listen-platform:hover,.listen-platform:focus-visible { z-index:1; background:linear-gradient(145deg,#fff 0%,#ededf0 56%,#cfcfd5 100%); color:#0b0b0d; transform:translateY(-2px); box-shadow:inset 0 1px 0 #fff,inset 0 -7px 14px rgba(40,40,48,.14),0 10px 30px rgba(0,0,0,.4),0 0 30px rgba(255,255,255,.12); }
.listen-platform:active { transform:translateY(1px); box-shadow:inset 0 5px 13px rgba(0,0,0,.3),0 3px 10px rgba(0,0,0,.3); }
.listen-platform:hover::before,.listen-platform:focus-visible::before { transform:scaleY(1); }
.listen-platform:focus-visible { outline:3px solid var(--red); outline-offset:-3px; }
.listen-platform>span:nth-child(2) { min-width:0; display:flex; flex-direction:column; gap:3px; }
.listen-platform strong { font-size:15px; font-weight:950; line-height:1.1; white-space:normal; }
.listen-platform small { color:#9d9da5; font-size:10px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.listen-platform[data-link-mode="direct"] small { color:#ff6b77; }
.listen-platform:hover small,.listen-platform:focus-visible small { color:#55555d; }
.listen-platform:hover[data-link-mode="direct"] small,.listen-platform:focus-visible[data-link-mode="direct"] small { color:#b50716; }
.listen-platform-arrow { font-size:18px; transition:transform .22s; }
.listen-platform:hover .listen-platform-arrow,.listen-platform:focus-visible .listen-platform-arrow { transform:translate(2px,-2px); color:var(--red); }
.listen-platform-icon { width:38px; height:38px; display:grid; place-items:center; }
.listen-platform-logo { display:block; width:34px; height:34px; object-fit:contain; object-position:center; filter:none; }
.listen-platform-logo-amazon { width:42px; height:30px; }
.listen-platform:hover .listen-platform-logo,.listen-platform:focus-visible .listen-platform-logo { filter:none; }
.listen-platform:hover .listen-platform-logo-tidal,.listen-platform:focus-visible .listen-platform-logo-tidal { filter:invert(1); }
.listen-dialog-note { margin:16px 0 0; color:#8f8f98; font-size:11px; font-weight:700; line-height:1.5; }
.listen-dialog-note span { margin-right:6px; color:var(--red); }
@keyframes listen-dialog-in { from { opacity:0; transform:translateY(22px) scale(.975); } to { opacity:1; transform:none; } }
@keyframes listen-backdrop-in { from { opacity:0; } to { opacity:1; } }
@media (max-width:760px) {
  .discography-listen-dialog { width:min(560px,calc(100vw - 16px)); max-height:calc(100svh - 16px); }
  .listen-dialog-shell { grid-template-columns:1fr; align-items:start; max-height:calc(100svh - 16px); }
  .listen-dialog-shell::before { width:72%; }
  .listen-dialog-close { position:fixed; top:calc(8px + env(safe-area-inset-top)); right:12px; width:46px; height:46px; }
  .listen-dialog-close span::before,.listen-dialog-close span::after { top:21px; left:11px; }
  .listen-dialog-art { align-self:auto; width:100%; }
  .listen-dialog-art-copy { right:18px; bottom:16px; left:18px; }
  .listen-dialog-content { padding:34px 20px 26px; }
  .listen-dialog-content h2 { font-size:clamp(42px,14vw,62px); }
  .listen-dialog-release { margin:20px 0 28px; }
  .listen-platform { min-height:74px; grid-template-columns:36px minmax(0,1fr); gap:9px; padding:13px 10px; }
  .listen-platform-icon { width:34px; height:34px; }
  .listen-platform-logo { width:31px; height:31px; }
  .listen-platform-logo-amazon { width:34px; height:26px; }
  .listen-platform-arrow { display:none; }
  .listen-platform strong { font-size:14px; }
  .listen-platform small { font-size:9px; }
}
@media (max-width:360px) {
  .listen-platform-grid { grid-template-columns:1fr; }
  .listen-dialog-art-copy strong { display:none; }
}
@media (prefers-reduced-motion:reduce) {
  .discography-listen-dialog::backdrop,.listen-dialog-shell { animation:none; }
  .listen-dialog-close,.listen-platform,.listen-platform::before,.listen-platform-arrow { transition:none; }
}

/* Desktop correction: fixed tracks prevent square artwork from resizing the grid. */
@media (min-width:761px) {
  .discography-listen-dialog { width:min(1120px,calc(100vw - 48px)); }
  .listen-dialog-shell { grid-template-columns:42% 58%; align-items:stretch; isolation:isolate; overflow:hidden; background:#0b0b0e; }
  .listen-dialog-art { z-index:1; align-self:center; width:100%; max-width:100%; height:auto; aspect-ratio:1/1; contain:layout paint; }
  .listen-dialog-content { position:relative; z-index:3; align-self:stretch; max-height:calc(100svh - 40px); overflow-y:auto; background:linear-gradient(145deg,#17171d 0%,#0b0b0f 58%,#111117 100%); box-shadow:-22px 0 46px rgba(0,0,0,.38); }
  .listen-platform-grid { background:#0d0d12; box-shadow:0 18px 45px rgba(0,0,0,.32); }
  .listen-platform { background:linear-gradient(145deg,#24242a 0%,#151519 48%,#09090c 100%); }
}

/* Generated Ryan Robyx festival scene for the LISTEN NOW panel. */
.listen-dialog-content {
  background-color:#0b0b0f;
  background-image:linear-gradient(180deg,rgba(7,7,10,.12) 0%,rgba(7,7,10,.46) 58%,rgba(7,7,10,.94) 100%),linear-gradient(90deg,rgba(9,9,13,.97) 0%,rgba(9,9,13,.88) 47%,rgba(9,9,13,.4) 100%),url("assets/listen-modal-dj-festival-v5.webp");
  background-position:center,center,center top;
  background-repeat:no-repeat;
  background-size:cover;
}
.listen-dialog-content h2,.listen-dialog-release { text-shadow:0 3px 18px rgba(0,0,0,.9); }

/* Keep Ryan visible above the opaque platform grid instead of cropping the square scene. */
.listen-dialog-content {
  background-position:center,center,center -110px;
  background-size:cover,cover,100% auto;
}
@media (max-width:760px) {
  .listen-dialog-content { background-position:center,center,center -70px; }
}
