/* HERO v2 Build 03 — compact MUSIC entry; approved North Sea image plane retained. */
#music.vestlys-music { display:block; padding:0 0 64px; border-top:0; }
.vestlys-music__intro { display:flex; align-items:center; gap:24px; margin-bottom:32px; }
.vestlys-music__intro h2 { flex:none; margin:0; color:#d8c3a5; font-size:15px; font-weight:400; line-height:1.5; letter-spacing:.36em; }
.vestlys-music__intro::after { content:''; height:1px; flex:1; background:linear-gradient(90deg,rgba(216,195,165,.32),rgba(216,195,165,.04)); }
.vestlys-music__signal { display:flex; align-items:center; gap:4px; height:22px; order:1; opacity:.5; }
.vestlys-music__signal i { width:1px; height:6px; background:#d8c3a5; }
.vestlys-music__signal i:nth-child(2), .vestlys-music__signal i:nth-child(4) { height:13px; }
.vestlys-music__signal i:nth-child(3) { height:21px; }
.vestlys-music__info, .vestlys-music__release { min-width:0; }
.vestlys-music__release--featured { display:grid; grid-template-columns:minmax(0,440px) minmax(0,1fr); gap:clamp(32px,5vw,80px); align-items:center; max-width:1130px; }
.vestlys-music__eyebrow { margin:0 0 16px; color:#d8c3a5; font:400 10px/1.6 Arial,Helvetica,sans-serif; letter-spacing:.22em; }
.vestlys-music__cover { aspect-ratio:1; overflow:hidden; background:#111615; }
.vestlys-music__artwork { display:block; width:100%; height:100%; aspect-ratio:1; object-fit:cover; }
.vestlys-music__title { margin:0 0 12px; color:#f4efe6; font-size:clamp(28px,2.7vw,42px); font-weight:400; line-height:1.12; letter-spacing:-.025em; overflow-wrap:anywhere; }
.vestlys-music__meta { margin:0; color:rgba(244,239,230,.6); font-size:11px; line-height:1.8; letter-spacing:.1em; }
.vestlys-music__meta span { margin:0 .5em; }
.vestlys-music__teaser { margin:22px 0 0; max-width:49ch; font-size:16px; line-height:1.75; color:rgba(244,239,230,.73); white-space:pre-line; overflow-wrap:anywhere; display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:3; line-clamp:3; overflow:hidden; max-height:5.25em; }
.vestlys-music__actions { display:flex; flex-wrap:wrap; align-items:center; gap:8px 24px; margin-top:20px; }
.vestlys-music__actions:not(:has(button:not([hidden]))) { display:none; }
.vestlys-music__action, .vestlys-music__close { appearance:none; cursor:pointer; font:400 10px/1.5 Arial,Helvetica,sans-serif; letter-spacing:.18em; color:#d8c3a5; background:transparent; border:0; padding:12px 0; min-height:44px; }
.vestlys-music__action { border-bottom:1px solid rgba(216,195,165,.5); }
.vestlys-music__action--listen { border:1px solid rgba(216,195,165,.5); padding:12px 24px; }
.vestlys-music__action:hover, .vestlys-music__close:hover { color:#fff; border-color:#d8c3a5; }
.vestlys-music button:focus-visible, .vestlys-music a:focus-visible, .vestlys-music summary:focus-visible { outline:2px solid #d8c3a5; outline-offset:5px; }
.vestlys-music [hidden] { display:none !important; }
.vestlys-music__preview { display:grid; grid-template-columns:minmax(100px,1fr) minmax(0,4fr); align-items:start; gap:32px; width:calc(100% - 80px); margin:40px 0 0 auto; padding:24px 0; border-top:1px solid rgba(216,195,165,.22); border-bottom:1px solid rgba(216,195,165,.12); }
.vestlys-music__preview-label { padding-top:6px; }
.vestlys-music__preview-label span { display:block; margin-top:8px; color:rgba(244,239,230,.42); font-size:9px; letter-spacing:.14em; }
.vestlys-music__release--upcoming { display:grid; grid-template-columns:112px minmax(0,1fr); gap:28px; align-items:start; }
.vestlys-music__release--upcoming .vestlys-music__title { font-size:24px; margin-bottom:8px; }
.vestlys-music__date { color:#d8c3a5; font-size:11px; }
.vestlys-music__release--upcoming .vestlys-music__teaser { font-size:14px; margin-top:12px; max-width:62ch; -webkit-line-clamp:2; line-clamp:2; max-height:3.5em; }
.vestlys-music__release--upcoming .vestlys-music__actions { margin-top:4px; }
.vestlys-music__archive { margin-top:44px; }
.vestlys-music__archive > h3 { display:flex; align-items:center; gap:24px; margin-bottom:22px; }
.vestlys-music__archive > h3::after { content:''; flex:1; height:1px; background:rgba(216,195,165,.12); }
.vestlys-music__recent { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:28px; }
.vestlys-music__release--recent { display:grid; grid-template-columns:72px minmax(0,1fr); gap:16px; align-items:start; }
.vestlys-music__release--recent .vestlys-music__title { font-size:16px; line-height:1.25; margin-bottom:6px; }
.vestlys-music__release--recent .vestlys-music__meta { font-size:10px; letter-spacing:.03em; }
.vestlys-music__release--recent .vestlys-music__actions { margin-top:8px; }
.vestlys-music__release--recent .vestlys-music__action--listen { border:0; border-bottom:1px solid rgba(216,195,165,.3); padding:6px 0; }
.vestlys-music__empty { padding:44px 0 56px; max-width:600px; }
.vestlys-music__empty > p:last-child { margin:0; color:#f4efe6; font-size:clamp(26px,3vw,40px); line-height:1.3; font-weight:400; }
.vestlys-music__dialog { box-sizing: border-box; width: min(640px,calc(100% - 32px)); max-width: calc(100% - 32px); max-height: calc(100dvh - 48px); margin: auto; padding: clamp(24px,5vw,48px); overflow: auto; overscroll-behavior: contain; color: #f4efe6; background: #111615; border: 1px solid rgba(216,195,165,.25); font-family: Arial,Helvetica,sans-serif; }
.vestlys-music__dialog::backdrop { background: rgba(3,8,8,.86); }
.vestlys-music__dialog h2 { margin: 16px 0 28px; font-size: clamp(26px,4vw,38px); font-weight: 400; line-height: 1.2; overflow-wrap: anywhere; }
.vestlys-music__close { display: block; margin: -10px 0 20px auto; }
.vestlys-music__close span { margin-left: 12px; font-size: 20px; vertical-align: middle; }
.vestlys-music__full-description, .vestlys-music__fallback p { white-space: pre-wrap; overflow-wrap: anywhere; font-size: 16px; line-height: 1.85; color: rgba(244,239,230,.8); }
.vestlys-music__platforms { list-style: none; margin: 24px 0 0; padding: 0; }
.vestlys-music__platforms li { border-top: 1px solid rgba(216,195,165,.18); }
.vestlys-music__platforms a { display: flex; align-items: center; gap: 18px; padding: 18px 0; min-height: 60px; color: #f4efe6; text-decoration: none; font-size: 16px; overflow-wrap: anywhere; }
.vestlys-music__platforms img { width: 24px; height: 24px; flex: 0 0 24px; filter: brightness(0) saturate(100%) invert(86%) sepia(15%) saturate(427%) hue-rotate(351deg) brightness(92%) contrast(87%); }
.vestlys-music__outbound { margin-left: auto; color: #d8c3a5; }
.vestlys-music__sr { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
.vestlys-music__fallback { margin-top: 20px; }
.vestlys-music__fallback summary { cursor: pointer; color: #d8c3a5; }

@media (max-width:1100px) {
 .vestlys-music__release--featured { grid-template-columns:minmax(0,.85fr) minmax(0,1fr); gap:36px; }
 .vestlys-music__recent { grid-template-columns:repeat(2,minmax(0,1fr)); row-gap:28px; }
 .vestlys-music__preview { width:100%; }
}
@media (max-width:768px) {
 #music.vestlys-music { padding:0 0 48px; }
 .vestlys-music__intro { margin-bottom:28px; gap:18px; }
 .vestlys-music__intro h2 { font-size:13px; }
 .vestlys-music__release--featured { grid-template-columns:minmax(0,1fr); gap:24px; }
 .vestlys-music__release--featured > .vestlys-music__cover { width:min(74%,300px); }
 .vestlys-music__release--featured > .vestlys-music__info { width:92%; margin-left:auto; }
 .vestlys-music__release--featured .vestlys-music__title { font-size:clamp(28px,6vw,36px); }
 .vestlys-music__eyebrow { margin-bottom:12px; }
 .vestlys-music__teaser { margin-top:18px; font-size:15px; }
 .vestlys-music__preview { grid-template-columns:minmax(0,1fr); gap:16px; margin-top:32px; padding:20px 0; }
 .vestlys-music__preview-label { padding:0; margin:0; display:flex; align-items:center; gap:16px; }
 .vestlys-music__preview-label span { margin:0; }
 .vestlys-music__release--upcoming { grid-template-columns:72px minmax(0,1fr); gap:18px; }
 .vestlys-music__release--upcoming .vestlys-music__title { font-size:21px; }
 .vestlys-music__release--upcoming .vestlys-music__teaser { font-size:13px; }
 .vestlys-music__archive { margin-top:32px; }
 .vestlys-music__recent { gap:24px; }
 .vestlys-music__release--recent { grid-template-columns:56px minmax(0,1fr); gap:12px; }
}
@media (max-width:540px) {
 .vestlys-music__recent { grid-template-columns:minmax(0,1fr); gap:0; }
 .vestlys-music__release--recent { grid-template-columns:60px minmax(0,1fr); gap:18px; padding:16px 0; border-top:1px solid rgba(216,195,165,.1); }
 .vestlys-music__release--recent .vestlys-music__info { display:grid; grid-template-columns:minmax(0,1fr) auto; column-gap:12px; }
 .vestlys-music__release--recent .vestlys-music__title, .vestlys-music__release--recent .vestlys-music__meta { grid-column:1; }
 .vestlys-music__release--recent .vestlys-music__actions { grid-column:2; grid-row:1/3; margin:0; align-self:center; }
}
@media (prefers-reduced-motion:no-preference) {
 .vestlys-music__artwork { transition:transform 1.2s ease; }
 .vestlys-music__signal { animation:vestlys-music-breathe 12s ease-in-out infinite; }
 @media (hover:hover) { .vestlys-music__cover:hover .vestlys-music__artwork { transform:scale(1.015); } }
}
@keyframes vestlys-music-breathe { 0%,100% { opacity:.3; } 50% { opacity:.65; } }

/* Atmosphere is painted by MUSIC only. Border-image outsets do not widen layout.
   The negative top equals the existing launch padding; no paint enters the hero. */
#music.vestlys-music { position:relative; isolation:auto; }
#music.vestlys-music::before {
 content:''; position:absolute; pointer-events:none; z-index:-2;
 inset:calc(-1 * var(--vestlys-music-entry-gap)) 0 0;
 border-image:linear-gradient(180deg,#08121b,#08121b) 1 fill / 0 / 0 100vw;
}
#music.vestlys-music::after {
 content:''; position:absolute; pointer-events:none; z-index:-1; inset:0;
 mask-image:radial-gradient(ellipse closest-side,#000 25%,transparent 100%);
 background:radial-gradient(ellipse 72% 48% at 29% 30%,rgba(196,158,104,.11),transparent 76%),radial-gradient(ellipse 85% 54% at 72% 35%,rgba(48,81,105,.12),transparent 80%);
}
.vestlys-music__intro::after { background:linear-gradient(90deg,rgba(216,195,165,.3),rgba(216,195,165,.035)); }
.vestlys-music__release--featured .vestlys-music__action--listen { color:#101922; background:#d8c3a5; border-color:#d8c3a5; border-radius:999px; }
.vestlys-music__release--featured .vestlys-music__action--listen:hover { color:#071019; background:#e5d3b7; border-color:#e5d3b7; }
.vestlys-music__action[data-music-description] { color:rgba(216,195,165,.78); border-bottom-color:rgba(216,195,165,.26); }
.vestlys-music__action[data-music-description]:hover { color:#f4efe6; border-bottom-color:#d8c3a5; }
.vestlys-music__archive { margin-top:52px; }
.vestlys-music__recent { column-gap:40px; }
.vestlys-music__archive > h3 { color:rgba(216,195,165,.7); }

/* Three editorial columns only where the existing 1280px content width allows it. */
@media (min-width:1500px) {
 #music.vestlys-music:has(> .vestlys-music__release--featured):has(> .vestlys-music__preview) { display:grid; grid-template-columns:minmax(0,1fr) 336px; column-gap:40px; }
 #music.vestlys-music > .vestlys-music__intro,
 #music.vestlys-music > .vestlys-music__archive { grid-column:1 / -1; }
 #music.vestlys-music:has(> .vestlys-music__preview) > .vestlys-music__release--featured { grid-template-columns:minmax(0,400px) minmax(0,1fr); gap:40px; }
 #music.vestlys-music:has(> .vestlys-music__release--featured) > .vestlys-music__preview {
  width:auto; margin:0; padding:12px 0 12px 32px; display:block; align-self:center;
  border-top:0; border-bottom:0; border-left:1px solid rgba(216,195,165,.18);
 }
 #music.vestlys-music:has(> .vestlys-music__release--featured) .vestlys-music__preview-label { padding:0; margin:0 0 20px; }
 #music.vestlys-music:has(> .vestlys-music__release--featured) .vestlys-music__release--upcoming { display:grid; grid-template-columns:112px minmax(0,1fr); gap:20px; }
 #music.vestlys-music:has(> .vestlys-music__release--featured) .vestlys-music__release--upcoming > .vestlys-music__cover { width:112px; margin-bottom:0; }
 #music.vestlys-music:has(> .vestlys-music__release--featured) .vestlys-music__release--upcoming .vestlys-music__title { font-size:20px; }
}
@media (max-width:768px) {
 #music.vestlys-music::after { background:radial-gradient(ellipse 100% 34% at 28% 22%,rgba(196,158,104,.05),transparent 78%),radial-gradient(ellipse 100% 44% at 75% 38%,rgba(48,81,105,.09),transparent 80%); }
 .vestlys-music__archive { margin-top:32px; }
 .vestlys-music__recent { column-gap:24px; }
}

/* One continuous, unmirrored image plane: H(hero) + 600px.
   The approved image plane and crop stay untouched; MUSIC enters earlier.
   One mask controls the photo. Existing MUSIC ambience paints beneath it. */
.site-main:has(> .vestlys-music-transition) {
 --vestlys-photo-tail:600px;
 --vestlys-music-entry-gap:clamp(32px,3vw,48px);
 --vestlys-music-intro-depth:54.5px;
 --vestlys-photo-hero:max(700px,100vh);
 --vestlys-photo-hero:max(700px,100svh);
 isolation:isolate;
}
.site-main:has(> .vestlys-music-transition) > .vestlys-hero > .vestlys-hero__background {
 height:calc(100% + var(--vestlys-photo-tail));
}
.vestlys-music-transition { position:relative; height:0; pointer-events:none; z-index:0; }
.vestlys-music-transition > span {
 display:block; position:absolute; top:0; left:0; right:0;
 height:var(--vestlys-photo-tail); overflow:hidden;
 -webkit-mask-image:linear-gradient(to bottom,#000 0px,rgba(0,0,0,.90) var(--vestlys-music-entry-gap),rgba(0,0,0,.72) var(--vestlys-fade-cover-top),rgba(0,0,0,.60) calc(var(--vestlys-fade-cover-top) + var(--vestlys-fade-cover-size) * .33),rgba(0,0,0,.50) calc(var(--vestlys-fade-cover-top) + var(--vestlys-fade-cover-size) * .50),rgba(0,0,0,.10) calc(var(--vestlys-fade-cover-top) + var(--vestlys-fade-cover-size) * .75),transparent min(600px,calc(var(--vestlys-fade-cover-top) + var(--vestlys-fade-cover-size) * .96)));
 mask-image:linear-gradient(to bottom,#000 0px,rgba(0,0,0,.90) var(--vestlys-music-entry-gap),rgba(0,0,0,.72) var(--vestlys-fade-cover-top),rgba(0,0,0,.60) calc(var(--vestlys-fade-cover-top) + var(--vestlys-fade-cover-size) * .33),rgba(0,0,0,.50) calc(var(--vestlys-fade-cover-top) + var(--vestlys-fade-cover-size) * .50),rgba(0,0,0,.10) calc(var(--vestlys-fade-cover-top) + var(--vestlys-fade-cover-size) * .75),transparent min(600px,calc(var(--vestlys-fade-cover-top) + var(--vestlys-fade-cover-size) * .96)));
}
.vestlys-music-transition > span::before {
 content:''; position:absolute; left:0; right:0; top:calc(-1 * var(--vestlys-photo-hero));
 height:calc(var(--vestlys-photo-hero) + var(--vestlys-photo-tail));
 /* Exactly the same full-plane overlay as the hero; the span owns the only fade. */
 background:var(--vestlys-coast-shade); z-index:2;
}
@media (max-width:768px) {
 .site-main:has(> .vestlys-music-transition) { --vestlys-photo-hero:max(600px,100vh); --vestlys-photo-hero:max(600px,100svh); }

}

/* With no featured release, retain space for the complete fixed transition
   instead of letting the photograph enter ABOUT. Release layouts are unchanged. */
#music.vestlys-music:has(> .vestlys-music__empty) {
 min-height:calc(var(--vestlys-photo-tail) - var(--vestlys-music-entry-gap) + 64px);
}

/* Fade landmarks follow the established featured grid, not MUSIC/Recent height.
   Container units measure only the existing full-width decorative layer.
   The 600px image plane and its crop remain exactly as in HERO v2 Build 02. */
.vestlys-music-transition { container-type:inline-size; }
.vestlys-music-transition > span {
 --vestlys-fade-cover-top:calc(var(--vestlys-music-entry-gap) + var(--vestlys-music-intro-depth));
 --vestlys-fade-cover-size:440px;
}
@media (min-width:1500px) {
 .vestlys-music-transition:has(+ .vestlys-launch .vestlys-music__preview) > span { --vestlys-fade-cover-size:400px; }
}
@media (768px < width <= 1100px) {
 .vestlys-music-transition > span { --vestlys-fade-cover-size:calc((90cqw - 36px) * .85 / 1.85); }
}
@media (max-width:768px) {
 .vestlys-music-transition > span { --vestlys-fade-cover-size:min(65.12cqw,300px); }
}
/* No cover exists in the empty state: retain the Build 04 fade unchanged. */
.vestlys-music-transition:has(+ .vestlys-launch .vestlys-music__empty) > span {
 -webkit-mask-image:linear-gradient(to bottom,#000 0%,rgba(0,0,0,.98) 12%,rgba(0,0,0,.88) 25%,rgba(0,0,0,.68) 45%,rgba(0,0,0,.35) 68%,rgba(0,0,0,.10) 86%,transparent 100%);
 mask-image:linear-gradient(to bottom,#000 0%,rgba(0,0,0,.98) 12%,rgba(0,0,0,.88) 25%,rgba(0,0,0,.68) 45%,rgba(0,0,0,.35) 68%,rgba(0,0,0,.10) 86%,transparent 100%);
}

/* HERO v2: identical image, crop and overlay on both sides of the hero boundary.
   Picture sources are shared in template-parts/hero-background.php.
   No geometric or functional changes to the foreground. */
.site-main:has(> .vestlys-music-transition) {
 --vestlys-coast-position:100% center;
 --vestlys-coast-shade:linear-gradient(90deg,rgba(4,13,22,.08) 0%,rgba(4,13,22,.04) 42%,rgba(4,13,22,0) 70%);
}
.vestlys-hero__background { display:block; }
.vestlys-coast-image { display:block; width:100%; height:100%; object-fit:cover; object-position:var(--vestlys-coast-position,100% center); }
.site-main:has(> .vestlys-music-transition) .vestlys-hero__shade {
 height:calc(100% + var(--vestlys-photo-tail)); background:var(--vestlys-coast-shade);
}
.vestlys-music-transition > span > .vestlys-hero__background {
 top:calc(-1 * var(--vestlys-photo-hero)); bottom:auto;
 height:calc(var(--vestlys-photo-hero) + var(--vestlys-photo-tail));
}
@media (max-width:768px) {
 .site-main:has(> .vestlys-music-transition) { --vestlys-coast-position:88% center; }
}

@media (max-width:480px) {
 .site-main:has(> .vestlys-music-transition) {
  --vestlys-coast-position:85% center;
  --vestlys-coast-shade:linear-gradient(90deg,rgba(4,13,22,.08) 0%,rgba(4,13,22,.04) 42%,rgba(4,13,22,0) 70%);
 }
}

/* One responsive entry gap owns layout and fade landmarks. No negative margins. */
.site-main > .vestlys-music-transition + .vestlys-launch { padding-top:var(--vestlys-music-entry-gap); }
@media (max-width:768px) {
 .site-main:has(> .vestlys-music-transition) {
  --vestlys-music-entry-gap:clamp(24px,4vw,32px);
  --vestlys-music-intro-depth:50px;
 }
}

/* Pre-release: one editorial stage, without a reserved Featured column. */
.vestlys-music--prerelease > .vestlys-music__preview { width:min(100%,1080px); margin:0 auto; padding:16px 0 32px; border:0; display:block; }
.vestlys-music--prerelease .vestlys-music__preview-label { margin:0 0 24px; padding:0; }
.vestlys-music--prerelease .vestlys-music__upcoming-items > .vestlys-music__release--upcoming:first-child { grid-template-columns:minmax(0,400px) minmax(0,1fr); gap:clamp(32px,5vw,72px); align-items:center; }
.vestlys-music--prerelease .vestlys-music__upcoming-items > .vestlys-music__release--upcoming:first-child .vestlys-music__title { font-size:clamp(30px,3.2vw,46px); }
.vestlys-music--prerelease .vestlys-music__upcoming-items > .vestlys-music__release--upcoming:first-child .vestlys-music__teaser { font-size:16px; line-height:1.8; -webkit-line-clamp:4; line-clamp:4; max-height:7.2em; margin-top:24px; }
.vestlys-music--prerelease .vestlys-music__upcoming-items > .vestlys-music__release--upcoming:first-child .vestlys-music__actions { margin-top:16px; }
@media(max-width:768px) {
 .vestlys-music--prerelease > .vestlys-music__preview { padding:0 0 16px; }
 .vestlys-music--prerelease .vestlys-music__upcoming-items > .vestlys-music__release--upcoming:first-child { grid-template-columns:minmax(0,1fr); gap:28px; max-width:540px; margin:auto; }
 .vestlys-music--prerelease .vestlys-music__upcoming-items > .vestlys-music__release--upcoming:first-child .vestlys-music__cover { width:min(86%,360px); margin:0 auto; }
 .vestlys-music--prerelease .vestlys-music__upcoming-items > .vestlys-music__release--upcoming:first-child .vestlys-music__teaser { font-size:15px; }
}

/* Upcoming 2 and 3 retain the existing compact presentation. */
.vestlys-music__upcoming-items { min-width:0; }
.vestlys-music__upcoming-items > .vestlys-music__release--upcoming + .vestlys-music__release--upcoming { margin-top:28px; padding-top:24px; border-top:1px solid rgba(216,195,165,.12); }
.vestlys-music--prerelease .vestlys-music__upcoming-items > .vestlys-music__release--upcoming + .vestlys-music__release--upcoming { max-width:720px; margin-left:auto; }
