/* Shared music catalogue and homepage selection. */
.music-library { --music-line: #373329; --music-muted: #c0bbb1; width: min(1240px, calc(100% - 48px)); margin: 0 auto; padding: 48px 0 70px; color: #f6f0df; }
.music-library * { box-sizing: border-box; }
.music-library [hidden] { display: none !important; }
.music-library button, .music-library input { font: inherit; }
.music-library button, .music-library a { -webkit-tap-highlight-color: transparent; }
.music-library :is(button, a, input):focus-visible { outline: 3px solid #f2d675; outline-offset: 4px; }
.music-library h1, .music-library h2, .music-library h3, .music-library p { margin: 0; }
.music-library h2 { color: #f6f0df; font: 500 clamp(1.8rem, 3.4vw, 2.7rem)/1.15 Georgia, serif; }
.music-eyebrow { display: block; margin-bottom: 13px; color: #e4c86e; font: 650 .7rem/1.5 'Segoe UI', sans-serif; letter-spacing: .17em; text-transform: uppercase; }
.music-primary { display: inline-flex; align-items: center; justify-content: center; gap: 14px; min-height: 48px; padding: 13px 23px; border: 1px solid #f2d675; border-radius: 6px; background: #efd071; color: #16130b !important; text-decoration: none; font-size: .88rem; font-weight: 700; transition: background .2s, transform .2s; }
.music-primary:hover { background: #ffe39a; transform: translateY(-2px); }
.music-hero { display: grid; grid-template-columns: 1.1fr 1fr; align-items: center; gap: 54px; padding: 36px 46px 54px; background: radial-gradient(ellipse at 80% 45%, #5c48242e, transparent 65%); border-bottom: 1px solid var(--music-line); }
.music-hero h1 { font: 500 clamp(3rem, 6vw, 5.5rem)/.99 Georgia, serif; letter-spacing: -.045em; color: #f6f0df; text-transform: none; }
.music-hero h1 em { color: #efd071; font-weight: 400; }
.music-hero-copy > p { max-width: 380px; margin: 25px 0 27px; color: var(--music-muted); line-height: 1.8; font-size: .98rem; }
.music-hero-art { position: relative; width: 100%; max-width: 420px; margin: auto; padding: 25px 65px 38px 10px; }
.music-hero-art > img { position: relative; display: block; width: 100%; height: auto; aspect-ratio: 1; object-fit: cover; border: 1px solid #817044; box-shadow: 0 25px 40px #0009; transform: rotate(-7deg); border-radius: 4px; }
.music-hero-art > span { display: block; position: relative; margin: 30px -60px 0 0; color: #c5bb9d; font-size: .6rem; letter-spacing: .22em; text-align: center; }
.music-hero-art > span b { margin: 0 12px; color: #efd071; }
.music-vinyl { position: absolute; width: 76%; aspect-ratio: 1; right: 0; top: 28px; border-radius: 50%; background: radial-gradient(circle, #0a0a0a 0 3%, #e6c363 3.2% 6%, #a48232 6.2% 21%, transparent 21.4%), repeating-radial-gradient(circle, #121212 0 2px, #232321 3px, #151515 4px); box-shadow: 10px 24px 40px #0009; border: 1px solid #444039; }
.music-stats { display: grid; grid-template-columns: repeat(4, 1fr); margin: 0 0 55px; padding: 24px 0; border-bottom: 1px solid var(--music-line); }
.music-stats > div { display: flex; justify-content: center; gap: 13px; align-items: baseline; padding: 0 12px; border-right: 1px solid var(--music-line); }
.music-stats > div:last-child { border: 0; }
.music-stats dt { order: 2; font-size: .8rem; color: var(--music-muted); }
.music-stats dd { margin: 0; color: #efd071; font-size: 1.65rem; font-weight: 600; }
.music-catalog { scroll-margin-top: 120px; }
.music-section-head { display: flex; justify-content: space-between; align-items: end; gap: 24px; margin-bottom: 26px; }
.music-section-head .music-eyebrow { margin-bottom: 7px; }
.music-search { display: flex; gap: 12px; align-items: center; width: min(320px, 100%); padding: 0 15px; color: #c8c0ab; background: #181816; border: 1px solid #514b3d; border-radius: 7px; }
.music-search:focus-within { border-color: #efd071; }
.music-search input { min-width: 0; width: 100%; min-height: 46px; border: 0; color: #f6f0df; background: transparent; font-size: .85rem; }
.music-search input::placeholder { color: #b9b2a4; }
.music-toolbar, .music-result-line, .music-rail-footer { display: flex; gap: 18px; align-items: center; justify-content: space-between; }
.music-filters { display: flex; flex-wrap: wrap; gap: 7px; }
.music-filters button { padding: 9px 17px; min-height: 42px; border: 1px solid #494438; border-radius: 999px; color: #ddd7ca; background: #171714; font-size: .8rem; cursor: pointer; transition: background .2s; }
.music-filters button:hover { background: #353023; }
.music-filters button[aria-pressed="true"] { color: #17130b; background: #efd071; border-color: #efd071; font-weight: 700; }
.music-volume { display: flex; align-items: center; gap: 12px; color: #d6c797; padding: 9px 0; }
.music-volume input { width: 95px; accent-color: #efd071; }
.music-result-line { padding: 21px 0 13px; color: var(--music-muted); font-size: .75rem; }
.music-result-line > span { letter-spacing: .12em; font-size: .65rem; text-transform: uppercase; }
.music-rail { display: flex; align-items: stretch; gap: 24px; overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x mandatory; scrollbar-width: thin; scrollbar-color: #6d5b2e #171714; padding: 4px 1px 18px; }
.release-card { flex: 0 0 calc((100% - 48px) / 3); min-width: 0; display: flex; flex-direction: column; border: 1px solid #3f392e; background: #191916; border-radius: 12px; overflow: hidden; scroll-snap-align: start; transition: border-color .2s, box-shadow .2s; }
.release-card:hover, .release-card.is-playing { border-color: #b89d54; box-shadow: 0 8px 25px #0005; }
.release-art { position: relative; aspect-ratio: 1; overflow: hidden; background: #201d16; }
.release-art img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .35s; }
.release-card:hover .release-art img { transform: scale(1.025); }
.release-fallback .release-art { background: radial-gradient(circle at 50% 40%, #6c512b, #1b1711 75%); }
.release-fallback:nth-child(3n+2) .release-art { background: radial-gradient(circle at 50% 40%, #5d353c, #1a1115 75%); }
.release-fallback:nth-child(3n+3) .release-art { background: radial-gradient(circle at 50% 40%, #345957, #111c1b 75%); }
.release-fallback .release-art img { object-fit: contain; padding: 42px; mix-blend-mode: screen; }
.release-number, .release-featured { position: absolute; top: 14px; padding: 5px 9px; border: 1px solid #817554; border-radius: 5px; background: #11110fef; color: #f4dc8c; font-size: .65rem; font-weight: 600; }
.release-number { left: 14px; }
.release-featured { right: 14px; }
.release-featured i { margin-right: 4px; }
.release-body { padding: 21px; display: flex; flex: 1; flex-direction: column; min-width: 0; }
.release-meta { display: flex; justify-content: space-between; gap: 12px; color: #e5c773; font-size: .69rem; letter-spacing: .08em; text-transform: uppercase; }
.release-body h3 { margin-top: 8px; color: #fff5df; font: 500 clamp(1.25rem, 1.9vw, 1.65rem)/1.25 Georgia, serif; overflow-wrap: anywhere; }
.release-body .release-artist { margin: 5px 0 12px; color: #bfb9ae; font-size: .75rem; }
.release-description { margin-bottom: 14px !important; font-size: .85rem; color: #d1cabd; overflow-wrap: anywhere; }
.release-details { display: flex; flex-wrap: wrap; gap: 12px; color: #bbb5a8; font-size: .67rem; margin-bottom: 16px; }
.release-player { margin-top: auto; border-top: 1px solid #3b3529; padding-top: 14px; }
.release-player audio { display: block; width: 100%; height: 42px; }
.release-player.is-enhanced audio { display: none; }
.release-control-row { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.release-control-row button { display: inline-flex; align-items: center; justify-content: center; gap: 6px; min-width: 40px; min-height: 42px; padding: 8px; color: #d2c6aa; border: 1px solid transparent; background: transparent; border-radius: 6px; cursor: pointer; }
.release-control-row button:hover { background: #3a3425; }
.release-control-row .release-play { min-width: 140px; padding: 10px 17px; background: #ebce77; color: #1c160b; font-size: .78rem; font-weight: 700; gap: 10px; }
.release-control-row .release-play:hover { background: #ffe29a; }
.release-control-row button small { font-size: .62rem; }
.release-seek { width: 100%; height: 18px; margin: 13px 0 0; accent-color: #efd071; cursor: pointer; }
.release-seek:disabled { cursor: default; }
.release-times { display: flex; justify-content: space-between; color: #bfb7a5; font: .65rem/1.4 'Segoe UI', sans-serif; font-variant-numeric: tabular-nums; }
.release-status { color: #f1c786; font-size: .76rem; }
.release-status:empty { display: none; }
.release-unavailable { margin-top: auto !important; padding-top: 16px; border-top: 1px solid #3b3529; color: #cfbd8f; font-size: .8rem; }
.music-rail-footer { padding: 8px 0 34px; color: #b9b2a3; font-size: .78rem; }
.music-arrows { display: flex; align-items: center; gap: 16px; white-space: nowrap; }
.music-arrows button { display: grid; place-items: center; width: 44px; height: 44px; color: #e5ce86; border: 1px solid #6b5c35; background: #1c1b16; border-radius: 50%; cursor: pointer; }
.music-arrows button:hover { background: #3a3220; }
.music-arrows button:disabled { opacity: .35; cursor: default; }
.music-empty { padding: 55px 20px; border: 1px dashed #675632; border-radius: 12px; color: #d0c6b0; text-align: center; }
.music-empty h3 { margin: 14px 0 8px; }
.music-streaming { display: grid; grid-template-columns: 1fr 1.3fr; gap: 45px; align-items: center; margin-top: 30px; padding: 35px; border: 1px solid #3f392b; background: #151613; border-radius: 12px; }
.music-streaming .music-eyebrow i { color: #73e195; margin-right: 6px; font-size: 1rem; }
.music-streaming p, .music-booking p { margin-top: 15px; color: #c3bcad; font-size: .9rem; line-height: 1.8; }
.music-streaming iframe { display: block; width: 100%; min-width: 0; border: 0; border-radius: 12px; }
.music-booking { display: flex; align-items: center; justify-content: space-between; gap: 30px; margin-top: 40px; padding: 35px 0; border-block: 1px solid var(--music-line); }
.music-booking .music-primary { flex-shrink: 0; }
.music-sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.music-home { padding-top: 55px; padding-bottom: 30px; }
.music-home .music-section-head { align-items: center; }
.music-home .music-section-head p { max-width: 420px; margin-top: 12px; color: #c3bcad; font-size: .95rem; }
.music-home .music-rail-footer > a { color: #efd071; text-underline-offset: 5px; }
@media (max-width: 1000px) {
    .music-hero { gap: 25px; padding-inline: 10px; }
    .release-card { flex-basis: calc((100% - 24px) / 2); }
    .music-stats > div { flex-direction: column; align-items: center; gap: 0; }
    .music-stats dt { order: 1; }
    .music-streaming { gap: 24px; padding: 24px; }
}
@media (max-width: 650px) {
    .music-library { width: calc(100% - 32px); padding-top: 26px; }
    .music-hero { grid-template-columns: 1fr; gap: 20px; padding: 16px 8px 24px; }
    .music-hero h1 { font-size: clamp(3.1rem, 14vw, 4.5rem); }
    .music-hero-copy > p { margin: 20px 0; }
    .music-hero-art { max-width: 300px; padding-top: 10px; padding-bottom: 0; }
    .music-vinyl { top: 12px; }
    .music-stats { margin-bottom: 32px; padding: 18px 0; }
    .music-stats > div { padding: 0 4px; }
    .music-stats dt { font-size: .61rem; }
    .music-stats dd { font-size: 1.3rem; }
    .music-section-head { flex-direction: column; align-items: stretch; gap: 18px; }
    .music-search { width: 100%; }
    .music-toolbar { align-items: flex-start; flex-direction: column; gap: 8px; }
    .music-filters { gap: 6px; }
    .music-filters button { padding: 8px 13px; font-size: .75rem; }
    .music-volume { align-self: flex-end; }
    .music-result-line > span { display: none; }
    .release-card { flex-basis: 92%; }
    .music-rail { gap: 14px; }
    .release-body h3 { font-size: 1.55rem; }
    .music-rail-footer > p { max-width: 130px; }
    .music-streaming { grid-template-columns: 1fr; padding: 22px 16px; }
    .music-booking { flex-direction: column; align-items: flex-start; padding-inline: 5px; }
    .music-home .music-section-head { align-items: flex-start; }
}
@media (prefers-reduced-motion: reduce) {
    .music-library *, .music-library *::before, .music-library *::after { transition: none !important; animation: none !important; scroll-behavior: auto !important; }
}
