/* Released catalogue, original artwork, native click-to-load previews. */
.release-catalogue{margin:clamp(3rem,7vw,7rem) 0 0;padding-top:2rem;border-top:1px solid var(--line)}
.release-catalogue:first-child{margin-top:0;padding-top:0;border-top:0;margin-bottom:clamp(4rem,8vw,7rem)}
.release-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:1.5rem;margin-bottom:2rem}
.release-heading h2{font-size:clamp(1.8rem,3.5vw,3.1rem);max-width:24ch}
.release-count{font:400 .75rem var(--mono);color:var(--muted);white-space:nowrap;padding-bottom:.5rem}
.release-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(1rem,2.2vw,2rem)}
.release-card{min-width:0;display:flex;flex-direction:column;border:1px solid var(--line);background:var(--surface)}
.release-art{position:relative;aspect-ratio:1;background:#161616;overflow:hidden}
.release-art img{display:block;width:100%;height:100%;object-fit:contain;filter:none}
.release-index{position:absolute;top:.8rem;left:.8rem;display:grid;place-items:center;width:2rem;height:2rem;background:#000c;color:#fff;font:400 .7rem var(--mono);border:1px solid #ffffff40}
.release-body{padding:clamp(1rem,2vw,1.5rem);display:flex;flex-direction:column;flex:1}
.release-artist{font:500 .68rem var(--mono);text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:0 0 .65rem}
.release-body h3{font-family:var(--display);font-size:clamp(1.35rem,2vw,1.85rem);line-height:1.15;margin:0 0 .85rem;overflow-wrap:anywhere}
.release-meta{font:400 .63rem var(--mono);color:var(--muted);margin:0 0 1.2rem}
.release-player{margin-top:auto;margin-bottom:1rem}
.release-play{width:100%;display:flex;align-items:center;gap:.65rem;padding:.85rem 1rem;border:1px solid var(--line);background:var(--text);color:var(--bg);font:600 .85rem var(--sans);cursor:pointer;text-align:left}
.release-play small{margin-left:auto;font:400 .6rem var(--mono)}
.release-play:hover{opacity:.85}
.release-player audio{width:100%;max-width:100%;height:42px}
.release-remove{border:0;background:transparent;color:var(--muted);font:400 .7rem var(--sans);padding:.5rem 0;cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.release-links{display:flex;flex-wrap:wrap;gap:.35rem .45rem}
.release-links a{padding:.45rem .6rem;border:1px solid var(--line);font:500 .66rem var(--sans);text-decoration:none;line-height:1.25}
.release-links a:hover{background:var(--text);color:var(--bg)}
.release-more{margin-top:.8rem;color:var(--muted);font:400 .69rem var(--sans)}
.release-more summary{cursor:pointer;padding:.4rem 0;min-height:32px}
.release-more .release-links{margin-top:.4rem}
.release-privacy{font-size:.78rem;color:var(--muted);max-width:95ch;margin:1.4rem 0 0;line-height:1.6}
.release-error{font-size:.8rem;color:var(--text)}
.release-catalogue [hidden]{display:none!important}
.music-dock{position:fixed;z-index:900;left:16px;right:16px;bottom:calc(12px + env(safe-area-inset-bottom,0px));max-width:1320px;margin:auto;display:grid;grid-template-columns:minmax(180px,1fr) auto minmax(155px,.65fr);align-items:center;gap:8px 28px;padding:16px 54px 12px 18px;border:1px solid var(--line);border-radius:16px;background:var(--surface);color:var(--text);box-shadow:0 8px 45px #0008;animation:dock-enter .2s ease-out}
.music-dock[hidden]{display:none!important}
.music-dock-open{padding-bottom:190px}
.dock-track{display:flex;align-items:center;gap:12px;min-width:0}
.dock-cover{flex:none;width:48px;height:48px;object-fit:contain;border-radius:4px}
.dock-caption{min-width:0;display:grid;gap:3px}
.dock-caption strong{font:600 .88rem var(--sans);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}
.dock-caption>span{font:400 .69rem var(--sans);color:var(--muted);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}
.dock-caption small{font:400 .6rem var(--sans);color:var(--muted);line-height:1.35}
.dock-transport{display:flex;align-items:center;justify-content:center;gap:5px}
.dock-button{display:grid;place-items:center;position:relative;flex:none;width:44px;height:44px;border:1px solid transparent;border-radius:50%;padding:9px;background:transparent;color:inherit;cursor:pointer;font:500 1.8rem var(--sans);line-height:1}
.dock-button:hover{background:var(--bg-2);border-color:var(--line)}
.dock-button svg{width:21px;height:21px;display:block}
.dock-button span{position:relative;display:block;margin-top:-3px}
.dock-button small{position:absolute;font:500 .5rem var(--mono);left:50%;top:55%;transform:translate(-50%,-50%)}
.dock-main{width:50px;height:50px;background:var(--text);color:var(--bg)}
.dock-main:hover{background:var(--text);color:var(--bg);opacity:.85}
.dock-close{position:absolute;right:5px;top:5px}
.dock-volume{display:flex;align-items:center;justify-content:flex-end;gap:4px;min-width:0}
.dock-volume input{width:85px;min-width:55px;max-width:100%}
.dock-volume output{width:30px;font:400 .6rem var(--mono);color:var(--muted);text-align:right}
.dock-timeline{grid-column:1/-1;display:grid;grid-template-columns:35px minmax(0,1fr) 35px;gap:8px;align-items:center}
.dock-timeline output{font:400 .65rem var(--mono);color:var(--muted)}
.dock-timeline output:last-child{text-align:right}
.music-dock input[type=range]{accent-color:var(--signal);cursor:pointer;min-height:28px;padding:0;margin:0}
.music-dock input:disabled{cursor:wait}
.music-dock button:focus-visible,.music-dock input:focus-visible{outline:2px solid var(--signal);outline-offset:3px}
.release-playing{border-color:var(--signal)}
.release-playing .release-play>span{color:var(--signal)}
@keyframes dock-enter{from{transform:translateY(15px);opacity:0}to{transform:translateY(0);opacity:1}}
@media(max-width:950px){.music-dock{grid-template-columns:minmax(0,1fr) auto;gap:8px 15px}.dock-volume{grid-column:2;grid-row:2}.dock-timeline{grid-column:1;grid-row:2}}
@media(max-width:600px){.music-dock{left:8px;right:8px;bottom:calc(8px + env(safe-area-inset-bottom,0px));grid-template-columns:minmax(0,1fr);gap:4px;padding:12px 14px 8px;border-radius:12px}.music-dock-open{padding-bottom:280px}.dock-track{padding-right:30px;gap:10px}.dock-cover{width:42px;height:42px}.dock-caption strong{font-size:.88rem}.dock-transport{grid-column:1;grid-row:2;gap:10px}.dock-timeline{grid-column:1;grid-row:3}.dock-volume{grid-column:1;grid-row:4;justify-content:center;gap:8px}.dock-volume input{width:110px}.dock-volume .dock-button{width:36px;height:36px}.dock-close{right:4px;top:5px}.dock-caption small{font-size:.58rem}}
@media(prefers-reduced-motion:reduce){.music-dock{animation:none}}
@media(max-width:800px){.release-grid{grid-template-columns:1fr;gap:1.5rem}.release-card{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr)}.release-body h3{font-size:1.5rem}.release-play{flex-wrap:wrap}.release-play small{margin-left:0}.release-count{display:none}}
@media(max-width:540px){.release-card{display:flex}.release-art{width:100%}.release-body{padding:1.2rem}.release-body h3{font-size:1.75rem}.release-play{min-height:48px}.release-play small{margin-left:auto}.release-links a{padding:.65rem .7rem}.release-more summary{min-height:44px;display:flex;align-items:center;gap:.4rem}.release-more summary::before{content:'+'}.release-more[open] summary::before{content:'−'}}

/* Named music services: listening and purchasing clearly separated. */
.store-group{margin-top:1rem}
.store-group-title{margin:0 0 .55rem;font:500 .62rem var(--mono);letter-spacing:.07em;text-transform:uppercase;color:var(--muted)}
.release-links.store-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
.release-links a.store-link{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:5px;min-width:0;min-height:62px;padding:10px 11px;border:1px solid transparent;border-radius:3px;background:var(--store-bg);color:var(--store-text);transition:filter .15s ease,transform .15s ease;text-decoration:none}
.store-link strong{font:700 .78rem var(--sans);line-height:1.15;overflow-wrap:anywhere}
.store-link small{font:500 .59rem var(--sans);line-height:1.3}
.release-links a.store-link:hover{background:var(--store-bg);color:var(--store-text);filter:brightness(.94);transform:translateY(-1px)}
.release-links a.store-link:focus-visible{outline:2px solid var(--text);outline-offset:3px}
.store-spotify{--store-bg:#1ed760;--store-text:#07150b}
.store-apple{--store-bg:#c91f40;--store-text:#fff}
.store-amazon{--store-bg:#ff9900;--store-text:#171007}
.store-beatport{--store-bg:#01ff95;--store-text:#061810}
.release-links a.store-tidal{--store-bg:#101010;--store-text:#fff;border-color:#696969}
.store-itunes{--store-bg:#7431ac;--store-text:#fff}
.store-pandora{--store-bg:#2244d4;--store-text:#fff}
@media(prefers-reduced-motion:reduce){.release-links a.store-link{transition:none}.release-links a.store-link:hover{transform:none}}

/* Compact service tags and persistent minimized player. */
.release-links.store-grid{display:flex;flex-wrap:wrap;gap:5px}
.release-links a.store-link{display:inline-flex;flex-direction:row;align-items:center;gap:0;min-height:30px;padding:5px 8px;flex:none;border-radius:3px}
.store-link strong{font-size:.66rem;font-weight:600;line-height:1.2}
.store-link small{display:none}
.store-group{margin-top:.65rem}.store-group-title{margin-bottom:.35rem;font-size:.56rem}
.music-mini{position:fixed;z-index:900;right:16px;bottom:calc(16px + env(safe-area-inset-bottom,0px));display:grid;place-items:center;width:48px;height:48px;border:1px solid var(--line);border-radius:50%;background:var(--surface);color:var(--text);box-shadow:0 4px 24px #0007;cursor:pointer}
.music-mini[hidden],.music-route-frame[hidden]{display:none!important}
.music-mini:focus-visible{outline:2px solid var(--signal);outline-offset:3px}
.equalizer{display:flex;align-items:center;gap:3px;height:22px}.equalizer i{display:block;width:3px;height:8px;background:currentColor;border-radius:2px}.equalizer i:nth-child(2){height:20px}.equalizer i:nth-child(3){height:14px}.equalizer i:nth-child(4){height:10px}
.is-playing .equalizer i{animation:equalize .8s ease-in-out infinite alternate}.is-playing .equalizer i:nth-child(2){animation-delay:-.3s}.is-playing .equalizer i:nth-child(3){animation-delay:-.6s}.is-playing .equalizer i:nth-child(4){animation-delay:-.15s}
@keyframes equalize{to{transform:scaleY(.3)}}
.music-route-open>header,.music-route-open>main,.music-route-open>footer,.music-route-open>.consent-banner{display:none!important}
.music-route-frame{position:fixed;inset:0;width:100%;height:100dvh;border:0;background:var(--bg);z-index:850}
.music-route-open{overflow:hidden}
@media(prefers-reduced-motion:reduce){.is-playing .equalizer i{animation:none}}

/* Original platform artwork, compact and without button boxes. */
.release-links.store-grid{gap:4px 12px}
.release-links a.store-link,.release-links a.store-tidal{min-height:30px;padding:5px 0;border:0;border-radius:0;background:transparent;color:var(--text);transform:none;filter:none}
.release-links a.store-link:hover{background:transparent;color:var(--text);filter:none;transform:none;opacity:.7}
.store-logo{display:block;width:auto;height:18px;max-width:82px;object-fit:contain}
html[data-theme="light"] .store-logo{filter:brightness(0)}

.release-details{margin:12px 0 18px}.release-details>summary{display:inline-flex;align-items:center;gap:8px;min-height:38px;padding:8px 14px;border:1px solid var(--line);border-radius:4px;color:var(--text);font:500 12px/1.3 var(--sans);cursor:pointer;list-style:none}.release-details>summary::-webkit-details-marker{display:none}.release-details>summary::after{content:'+';font-size:17px}.release-details[open]>summary::after{content:'−'}.release-details>summary:hover{border-color:var(--text)}.release-details>summary:focus-visible{outline:2px solid var(--text);outline-offset:3px}.release-detail-content{margin-top:16px;padding-top:16px;border-top:1px solid var(--line)}.release-detail-content h4{font:600 17px/1.35 var(--sans);margin:0 0 12px}.release-detail-content p{font:400 13px/1.65 var(--sans);color:var(--muted);margin:0 0 16px}.release-facts{display:grid;grid-template-columns:1fr 1fr;gap:12px 16px;margin:18px 0}.release-facts div{min-width:0}.release-facts dt{font:400 10px/1.4 var(--mono);color:var(--muted);margin-bottom:3px}.release-facts dd{margin:0;font:500 13px/1.4 var(--sans);color:var(--text);overflow-wrap:anywhere}.release-detail-content a{color:var(--text);text-underline-offset:3px}.release-detail-content .release-data-source{font-size:11px;line-height:1.5}

.release-grid{align-items:start}

.catalogue-page{padding:28px 0 80px}.catalogue-page h1{font:700 clamp(2.4rem,6vw,5rem)/1.04 var(--display);max-width:950px;margin:16px 0 24px}.catalogue-intro{max-width:700px;color:var(--muted);line-height:1.7}.catalogue-back{display:inline-block;color:var(--text);margin:20px 0 32px}.catalogue-tools{margin:24px 0}.catalogue-filters{display:flex;flex-wrap:wrap;gap:8px}.catalogue-filters button{border:1px solid var(--line);background:var(--surface);color:var(--text);padding:10px 14px;border-radius:4px;font:500 12px/1.4 var(--sans);cursor:pointer}.catalogue-filters button[aria-pressed=true]{background:var(--text);color:var(--bg)}.catalogue-search{display:block;max-width:480px;font:400 12px/1.5 var(--sans);color:var(--muted);margin:22px 0 12px}.catalogue-search input{display:block;width:100%;margin-top:7px;min-height:44px;border:1px solid var(--line);background:var(--surface);color:var(--text);padding:10px 12px;border-radius:4px}.catalogue-count{font:400 12px var(--mono);color:var(--muted)}.catalogue-list{display:grid;gap:14px}.catalogue-release{border:1px solid var(--line);background:var(--surface);padding:20px;border-radius:5px}.catalogue-release[hidden],.catalogue-empty[hidden]{display:none!important}.catalogue-release-head{display:grid;grid-template-columns:80px minmax(0,1fr) auto;align-items:center;gap:20px}.catalogue-release-head img{width:80px;height:80px;object-fit:cover;border-radius:2px}.catalogue-release h2{font:600 clamp(1.15rem,2.3vw,1.65rem)/1.2 var(--sans);margin:5px 0 8px}.catalogue-artist{font:400 11px/1.4 var(--mono);color:var(--muted);margin:0}.catalogue-meta{font:400 12px/1.5 var(--sans);color:var(--muted);margin:0}.catalogue-listen{font:500 12px var(--sans);color:var(--text);padding:10px 0;text-underline-offset:4px}.catalogue-details{margin-top:14px}.catalogue-details>summary{font:500 12px var(--sans);color:var(--text);cursor:pointer;min-height:34px;display:list-item;list-style-position:inside;padding:8px 0}.catalogue-detail-body{max-width:900px;padding:16px 0 0;border-top:1px solid var(--line);font:400 14px/1.7 var(--sans)}.catalogue-detail-body h3{font:600 17px var(--sans);margin:24px 0 14px}.catalogue-credits{list-style:none;padding:0;display:flex;flex-wrap:wrap;gap:8px 24px;font-size:12px}.catalogue-credits span{color:var(--muted);margin-right:6px}.catalogue-tracklist{list-style:none;padding:0;margin:0}.catalogue-track{border-top:1px solid var(--line)}.catalogue-track>summary{display:grid;grid-template-columns:28px minmax(0,1fr) auto;gap:10px;align-items:start;padding:13px 0;cursor:pointer;font-size:13px}.catalogue-track>summary>span,.catalogue-track time{color:var(--muted);font:400 11px/1.8 var(--mono)}.catalogue-track>div{padding:0 0 16px 38px;color:var(--muted)}.catalogue-track .release-facts{margin:8px 0}.catalogue-more{margin:28px 0 12px}.catalogue-empty{padding:40px 0;color:var(--muted)}
@media(max-width:600px){.catalogue-page{padding:22px 0 48px}.catalogue-release{padding:16px}.catalogue-release-head{grid-template-columns:64px minmax(0,1fr);gap:14px}.catalogue-release-head img{width:64px;height:64px}.catalogue-listen{grid-column:2;justify-self:start;padding:0}.catalogue-release h2{font-size:18px}.catalogue-filters button{font-size:11px;padding:9px 10px}.catalogue-track>summary{grid-template-columns:22px minmax(0,1fr) auto;gap:6px}.catalogue-track>div{padding-left:28px}}
