/* Final launch: catalog below the approved Featured/Upcoming composition. */
.vestlys-catalog { grid-column:1/-1; margin-top:56px; position:relative; isolation:isolate; }
.vestlys-catalog::before { content:""; position:absolute; inset:0 0 -64px; z-index:-1; pointer-events:none; border-image:linear-gradient(180deg,transparent,#08121b 75%) 1 fill / 0 / 0 100vw; }
.vestlys-catalog__group { margin:0 0 48px; }
.vestlys-catalog__group>h3 { display:flex; align-items:center; gap:28px; margin:0 0 28px; font:400 12px/1.5 Arial,sans-serif; letter-spacing:.24em; color:#d8c3a5; }
.vestlys-catalog__group>h3::after { content:''; flex:1; height:1px; background:linear-gradient(90deg,#d8c3a530,transparent); }
.vestlys-catalog__grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:30px; }
.vestlys-catalog__card { min-width:0; }
.vestlys-catalog__open { appearance:none; width:100%; display:grid; grid-template-columns:88px minmax(0,1fr); gap:18px; align-items:center; padding:0; text-align:left; border:0; background:transparent; color:#f4efe6; cursor:pointer; font:inherit; }
.vestlys-catalog__open img { display:block; width:100%; height:auto; aspect-ratio:1; object-fit:cover; }
.vestlys-catalog__name { font-size:16px; line-height:1.4; overflow-wrap:anywhere; }
.vestlys-catalog__meta { margin:8px 0; font:400 11px/1.7 Arial,sans-serif; letter-spacing:.05em; color:#c2bcb3; }
.vestlys-catalog__card>.vestlys-music__action { min-height:44px; margin:0; }
.vestlys-catalog__explore { display:flex; justify-content:center; padding:12px 0 20px; }
.vestlys-catalog__explore button { min-height:48px; border:1px solid #d8c3a559; padding:18px 30px; background:transparent; color:#d8c3a5; font:400 11px/1.5 Arial,sans-serif; letter-spacing:.2em; cursor:pointer; }
.vestlys-catalog__explore span { margin-left:24px; }
.vestlys-library { box-sizing:border-box; position:fixed; inset:0; width:100%; max-width:none; height:100%; height:100dvh; max-height:none; margin:0; border:0; padding:clamp(20px,4vw,64px) max(24px,calc((100vw - 1280px)/2)); background:radial-gradient(ellipse at 15% 0%,#1a2c35,transparent 65%),#08121b; color:#f4efe6; font-family:Arial,Helvetica,sans-serif; overflow:auto; overscroll-behavior:contain; }
.vestlys-library *, .vestlys-catalog * { box-sizing:border-box; }
.vestlys-library::backdrop { background:#050a10; }
.vestlys-library [hidden] { display:none!important; }
.vestlys-library__header { display:flex; justify-content:space-between; align-items:center; gap:16px; margin-bottom:40px; }
.vestlys-library__header h2 { margin:0; font-size:18px; font-weight:400; letter-spacing:.24em; }
.vestlys-library__header h2 span { display:block; font-size:10px; letter-spacing:.32em; color:#d8c3a5; margin-top:10px; }
.vestlys-library button { appearance:none; min-width:44px; min-height:44px; border:0; background:transparent; color:#d8c3a5; font:400 11px/1.5 Arial,sans-serif; letter-spacing:.12em; cursor:pointer; }
.vestlys-library a { color:#f4efe6; }
.vestlys-library button:disabled { opacity:.5; cursor:wait; }
.vestlys-library button:hover,.vestlys-catalog button:hover { color:#fff; }
.vestlys-library :focus-visible,.vestlys-catalog :focus-visible,.vestlys-contact-links a:focus-visible { outline:2px solid #d8c3a5; outline-offset:4px; }
.vestlys-library__search { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:10px 20px; max-width:660px; margin-bottom:24px; }
.vestlys-library__search label { grid-column:1/-1; font-size:10px; letter-spacing:.18em; color:#d8c3a5; }
.vestlys-library__search input { width:100%; min-width:0; min-height:48px; border:0; border-bottom:1px solid #d8c3a559; background:transparent; color:#fff; border-radius:0; font:400 16px/1.5 Arial,sans-serif; }
.vestlys-library__filters { display:flex; flex-wrap:wrap; gap:8px 20px; padding-bottom:20px; border-bottom:1px solid #d8c3a526; }
.vestlys-library__filters button { padding:10px 6px; border-bottom:1px solid transparent; }
.vestlys-library__filters button[aria-pressed=true] { color:#fff; border-color:#d8c3a5; }
.vestlys-library__status { min-height:22px; margin:24px 0; color:#d8c3a5; font-size:12px; letter-spacing:.12em; }
.vestlys-library__grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:32px; }
.vestlys-library .vestlys-catalog__open { display:block; letter-spacing:normal; }
.vestlys-library .vestlys-catalog__open img { max-width:200px; margin:0 0 16px; }
.vestlys-library .vestlys-catalog__name { display:block; color:#f4efe6; }
.vestlys-library__more { display:block; margin:40px auto 0; padding:12px 32px; border:1px solid #d8c3a55c!important; }
.vestlys-library__back { margin-bottom:24px; }
.vestlys-library__detail { display:grid; grid-template-columns:minmax(0,300px) minmax(0,1fr); gap:48px; }
.vestlys-library__art img { width:100%; height:auto; aspect-ratio:1; object-fit:cover; }
.vestlys-library__detail h3 { font-size:clamp(26px,4vw,44px); line-height:1.15; font-weight:400; margin:12px 0 20px; overflow-wrap:anywhere; }
.vestlys-library__detail h4 { margin:32px 0 16px; font-size:11px; font-weight:400; letter-spacing:.18em; color:#d8c3a5; }
.vestlys-library__description { white-space:pre-wrap; overflow-wrap:anywhere; line-height:1.8; font-size:16px; color:#d4d1cb; max-width:65ch; }
.vestlys-library__listen { padding:12px 28px; background:#d8c3a5!important; color:#08121b!important; border-radius:30px; margin-top:20px; }
.vestlys-library__tracks { list-style:none; padding:0; }
.vestlys-library__tracks li { display:grid; grid-template-columns:50px minmax(0,1fr); gap:12px; padding:14px 0; border-top:1px solid #d8c3a526; line-height:1.5; overflow-wrap:anywhere; }
.vestlys-library__tracks li>span:first-child { color:#a69782; }
.vestlys-library__empty { padding:40px 0; letter-spacing:.18em; }
/* Lower-page paint remains below MUSIC. */
#about { position:relative; border-top:0; padding-top:clamp(56px,7vw,96px); background:linear-gradient(#08121b,#071017); border-image:linear-gradient(#08121b,#071017) 1 fill / 0 / 0 100vw; }
#about .vestlys-launch__copy { max-width:760px; padding-left:clamp(20px,3vw,48px); border-left:1px solid #d8c3a54a; }
#about .vestlys-launch__copy>p:first-child { color:#e8dfd2; font-size:clamp(25px,3vw,38px); line-height:1.45; }
#contact { background:linear-gradient(#071017,#05090d); border-image:linear-gradient(#071017,#05090d) 1 fill / 0 / 0 100vw; border-top-color:#d8c3a51a; }
.vestlys-contact-links { display:flex; flex-wrap:wrap; gap:8px 24px; margin-top:24px; }
.vestlys-contact-links a { display:inline-flex; align-items:center; min-height:44px; color:#d8c3a5; font-size:13px; text-decoration:none; border-bottom:1px solid #d8c3a540; }
.vestlys-footer { background:#05090d; border-image:linear-gradient(#05090d,#050607) 1 fill / 0 / 0 100vw; border-top-color:#d8c3a526; }
.vestlys-footer__legal a { display:inline-flex; align-items:center; min-height:44px; }
@media(max-width:1100px) {
 .vestlys-catalog__grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:28px; }
 .vestlys-catalog__open { grid-template-columns:72px minmax(0,1fr); gap:14px; }
 .vestlys-catalog__group--single .vestlys-catalog__card:nth-child(n+9),.vestlys-catalog__group--albums .vestlys-catalog__card:nth-child(n+4),.vestlys-catalog__group--playlist .vestlys-catalog__card:nth-child(n+5) { display:none; }
 .vestlys-library__grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
}
@media(max-width:768px) {
 .vestlys-catalog { margin-top:40px; }
 .vestlys-catalog::before { bottom:-48px; }
 .vestlys-catalog__grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; }
 .vestlys-catalog__open { display:block; }
 .vestlys-catalog__open img { width:96px; margin-bottom:12px; }
 .vestlys-catalog__name { display:block; }
 .vestlys-library { padding:24px; }
 .vestlys-library__grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; }
 .vestlys-library__detail { grid-template-columns:minmax(0,1fr); gap:20px; }
 .vestlys-library__art { width:min(60%,240px); }
 #about .vestlys-launch__copy { padding-left:20px; }
}
@media(max-width:540px) {
 .vestlys-catalog__group--single .vestlys-catalog__card:nth-child(n+7),.vestlys-catalog__group--albums .vestlys-catalog__card:nth-child(n+3),.vestlys-catalog__group--playlist .vestlys-catalog__card:nth-child(n+4) { display:none; }
 .vestlys-catalog__grid { gap:24px 18px; }
 .vestlys-library { padding:20px 18px; }
 .vestlys-library__filters { gap:4px 14px; }
 .vestlys-library__header { margin-bottom:28px; }
 .vestlys-library__grid { gap:26px 18px; }
 .vestlys-library .vestlys-catalog__name { font-size:14px; }
 .vestlys-library__header h2 { font-size:16px; }
}

/* Build 02: homepage-only composition; shared Library card rules stay intact. */
.vestlys-catalog { --catalog-cover:clamp(120px,12vw,168px); display:grid; grid-template-columns:minmax(0,2fr) repeat(2,minmax(0,1fr)); gap:0 32px; }
.vestlys-catalog:not(:has(.vestlys-catalog__group--single)) { grid-template-columns:repeat(2,minmax(0,1fr)); }
.vestlys-catalog:has(.vestlys-catalog__group--single):not(:has(.vestlys-catalog__group--albums)):has(.vestlys-catalog__group--playlist),
.vestlys-catalog:has(.vestlys-catalog__group--single):has(.vestlys-catalog__group--albums):not(:has(.vestlys-catalog__group--playlist)) { grid-template-columns:minmax(0,2fr) minmax(0,1fr); }
.vestlys-catalog:not(:has(.vestlys-catalog__group ~ .vestlys-catalog__group)) { grid-template-columns:minmax(0,1fr); }
.vestlys-catalog > .vestlys-catalog__group { min-width:0; margin-bottom:36px; }
.vestlys-catalog .vestlys-catalog__group > h3 { gap:16px; font-size:11px; }
.vestlys-catalog .vestlys-catalog__grid { grid-template-columns:minmax(0,1fr); gap:28px; }
.vestlys-catalog .vestlys-catalog__group--single .vestlys-catalog__grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
.vestlys-catalog .vestlys-catalog__card { display:block; }
.vestlys-catalog .vestlys-catalog__open { display:block; }
.vestlys-catalog .vestlys-catalog__open img { width:var(--catalog-cover); max-width:100%; height:auto; margin:0 0 14px; }
.vestlys-catalog .vestlys-catalog__name { display:block; min-height:2.8em; }
.vestlys-catalog .vestlys-catalog__card { min-height:calc(var(--catalog-cover) + 132px); }
.vestlys-catalog__view-all { appearance:none; display:inline-flex; align-items:center; gap:14px; min-height:44px; max-width:100%; margin-top:24px; padding:10px 0; border:0; border-bottom:1px solid #d8c3a540; background:transparent; color:#d8c3a5; font:400 10px/1.6 Arial,sans-serif; letter-spacing:.12em; text-align:left; cursor:pointer; }
.vestlys-catalog__explore { grid-column:1/-1; }
@media(max-width:1100px) {
 .vestlys-catalog, .vestlys-catalog:has(.vestlys-catalog__group--single):not(:has(.vestlys-catalog__group--albums)):has(.vestlys-catalog__group--playlist), .vestlys-catalog:has(.vestlys-catalog__group--single):has(.vestlys-catalog__group--albums):not(:has(.vestlys-catalog__group--playlist)) { grid-template-columns:repeat(2,minmax(0,1fr)); --catalog-cover:160px; }
 .vestlys-catalog > .vestlys-catalog__group--single { grid-column:1/-1; }
 .vestlys-catalog:not(:has(.vestlys-catalog__group ~ .vestlys-catalog__group)) { grid-template-columns:minmax(0,1fr); }
}
@media(max-width:600px) {
 .vestlys-catalog, .vestlys-catalog:not(:has(.vestlys-catalog__group--single)), .vestlys-catalog:has(.vestlys-catalog__group--single):not(:has(.vestlys-catalog__group--albums)):has(.vestlys-catalog__group--playlist), .vestlys-catalog:has(.vestlys-catalog__group--single):has(.vestlys-catalog__group--albums):not(:has(.vestlys-catalog__group--playlist)) { grid-template-columns:minmax(0,1fr); --catalog-cover:clamp(96px,28vw,132px); }
 .vestlys-catalog .vestlys-catalog__grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px 18px; }
 .vestlys-catalog .vestlys-catalog__group .vestlys-catalog__card { display:block; }
}

/* Mobile rhythm only; the desktop 50/25/25 grid is unchanged. */
@media(max-width:600px) {
 .vestlys-catalog { margin-top:32px; }
 .vestlys-catalog > .vestlys-catalog__group { margin-bottom:28px; }
 .vestlys-catalog .vestlys-catalog__grid { row-gap:20px; }
 .vestlys-catalog .vestlys-catalog__card { min-height:0; }
 .vestlys-catalog__view-all { margin-top:16px; }
}

/* Keep a singles-only homepage catalog compact; mixed groups and mobile stay unchanged. */
@media (min-width:601px) {
 .vestlys-catalog:not(:has(.vestlys-catalog__group ~ .vestlys-catalog__group)) .vestlys-catalog__group--single .vestlys-catalog__grid {
  grid-template-columns:repeat(auto-fill,minmax(0,var(--catalog-cover)));
 }
}
