/* R46: user-controlled cover carousel. Existing Apollo colors and player chrome preserved. */
.swl-library { --swl-ink:#edf5ff; --swl-muted:#a9bdd0; --swl-line:#77dce337; --swl-accent:#f1cf83; min-width:0; color:var(--swl-ink); }
.swl-library [hidden], .swl-floating[hidden] { display:none!important; }
.swl-stage { display:grid; grid-template-columns:minmax(0,1.12fr) minmax(0,.88fr); align-items:center; gap:clamp(24px,4vw,52px); }
.swl-carousel { min-width:0; }
.swl-carousel-toolbar { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:0 4px 8px; }
.swl-carousel-controls { display:flex; align-items:center; gap:10px; }
.swl-carousel-controls button { display:inline-grid; place-items:center; width:44px; height:44px; flex-shrink:0; padding:0; border:1px solid #d9eff433; border-radius:50%; background:#0a1826b8; color:var(--swl-ink); font:400 1.2rem/1 system-ui,sans-serif; cursor:pointer; }
.swl-carousel-controls button[aria-disabled="true"] { opacity:.4; cursor:default; }
.swl-count { color:var(--swl-muted); white-space:nowrap; font:700 .7rem/1.4 Montserrat,system-ui,sans-serif; font-variant-numeric:tabular-nums; }
.swl-selectors { --swl-card-width:clamp(210px,72%,340px); --swl-gap:18px; position:relative; display:flex; align-items:flex-start; gap:var(--swl-gap); overflow-x:auto; overscroll-behavior-x:contain; scroll-snap-type:x mandatory; scrollbar-width:thin; scrollbar-color:#77dce355 transparent; padding:12px 0 16px; margin:0; touch-action:auto; }
.swl-selectors::before, .swl-selectors::after { content:""; flex:0 0 max(0px,calc((100% - var(--swl-card-width))/2 - var(--swl-gap))); }
.swl-selector { flex:0 0 var(--swl-card-width); min-width:0; display:block; scroll-snap-align:center; scroll-snap-stop:always; border:0; border-radius:18px; padding:0 0 8px; background:transparent; color:var(--swl-ink); text-align:left; font:inherit; cursor:pointer; }
.swl-art { position:relative; display:block; overflow:hidden; margin:0; border-radius:18px; padding:6px; background:linear-gradient(135deg,#bd8aff66,#70e3df33 55%,#f1cf8344); border:1px solid var(--swl-line); box-shadow:0 18px 32px #0005; isolation:isolate; }
.swl-art img { display:block; width:100%; height:auto; aspect-ratio:1; object-fit:contain; border-radius:12px; background:#070d19; }
.swl-selector[aria-pressed="true"] .swl-art { border-color:#e5c376; }
.swl-card-caption { display:flex; align-items:baseline; justify-content:space-between; gap:12px; padding:13px 3px 0; }
.swl-card-caption strong { font:800 .92rem/1.4 Montserrat,system-ui,sans-serif; }
.swl-card-caption small { color:var(--swl-muted); font-size:.67rem; line-height:1.5; text-align:right; }
.swl-eyebrow { display:block; font:800 .68rem/1.4 Montserrat,system-ui,sans-serif; letter-spacing:.16em; text-transform:uppercase; color:var(--swl-accent); }
.swl-details { min-width:0; }
.swl-library .swl-title { font:800 clamp(1.65rem,3.2vw,2.7rem)/1.08 Montserrat,system-ui,sans-serif; letter-spacing:-.04em; margin:.7rem 0; color:var(--swl-ink); overflow-wrap:anywhere; }
.swl-library .swl-credit { margin:0; font-size:.95rem; color:var(--swl-muted); line-height:1.5; }
.swl-library .swl-status { min-height:2.9em; margin:1rem 0; font-size:.8rem; line-height:1.5; color:var(--swl-muted); }
.swl-play, .swl-watch { min-height:48px; border:1px solid #f8df9e; border-radius:11px; padding:12px 22px; background:linear-gradient(120deg,#f9e3a5,#dbb564); color:#102232; font:800 .86rem/1.4 Montserrat,system-ui,sans-serif; cursor:pointer; }
.swl-library audio { display:block; width:100%; min-width:0; height:46px; margin:0; color-scheme:dark; }
.swl-transport { height:46px; margin-top:16px; display:flex; align-items:center; }
.swl-duration { display:flex; align-items:center; min-height:46px; color:var(--swl-muted); font:700 .8rem/1.4 Montserrat,system-ui,sans-serif; letter-spacing:.02em; }
.swl-library button:focus-visible, .swl-library a:focus-visible, .swl-floating :focus-visible { outline:3px solid #80e4f2; outline-offset:3px; }
.swl-selector:focus-visible { outline-offset:-2px; }
.swl-library button:hover { border-color:#f1cf83; }
.soundworks-feature-layout:has(.swl-library) { grid-template-columns:1fr; gap:28px; }
.soundworks-feature-layout:has(.swl-library) .soundworks-feature-copy { max-width:760px; }
.soundworks-feature-layout:has(.swl-library) .soundworks-feature-copy h2 { max-width:20ch; }
.creative-services-bridge-inner:has(.swl-library) { grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); }
.creative-services-bridge-inner:has(.swl-library) .creative-services-bridge-actions { grid-column:1/-1; display:flex; flex-wrap:wrap; align-items:center; gap:18px 28px; }
.creative-services-bridge .swl-stage { gap:20px; grid-template-columns:1fr; }
.creative-services-bridge .swl-selectors { --swl-card-width:clamp(205px,65%,270px); }
.creative-services-bridge .swl-details { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:4px 16px; align-items:center; }
.creative-services-bridge .swl-details > .swl-eyebrow, .creative-services-bridge .swl-details > .swl-title { position:absolute; width:1px; height:1px; padding:0; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
.creative-services-bridge .swl-credit { grid-column:1; grid-row:1; font-size:.86rem; }
.creative-services-bridge .swl-play { grid-column:2; grid-row:1; }
.creative-services-bridge .swl-status { grid-column:1/-1; grid-row:2; min-height:0; margin:6px 0; }
.creative-services-bridge .swl-transport { grid-column:1/-1; grid-row:3; margin-top:0; }
.swl-fallback-art { max-width:300px; margin:0 0 18px; }
.swl-fallback-art img { display:block; width:100%; height:auto; border-radius:16px; }
/* Each static illustration gets a restrained, separately paced light treatment. */
.swl-art::after { content:""; position:absolute; pointer-events:none; inset:6px; border-radius:12px; opacity:.08; transform:translate3d(0,0,0); animation-play-state:paused; }
.swl-art[data-cover="nightcrawler"]::after { background:linear-gradient(115deg,transparent 35%,#f1cf8340 49%,transparent 61%); animation:swl-night-light 9s ease-in-out infinite paused; }
.swl-art[data-cover="undertaker"]::after { background:radial-gradient(ellipse at 50% 46%,transparent 28%,#77dce344 37%,transparent 55%); animation:swl-orbit-light 7.5s ease-in-out infinite paused; }
.swl-art[data-cover="sip-no-wine"]::after { background:linear-gradient(135deg,transparent 34%,#edf5ff40 48%,transparent 62%); animation:swl-sleeve-light 10.5s ease-in-out infinite paused; }
.swl-library[data-cover-motion="running"] .swl-selector[data-cover-visible="true"] .swl-art::after { animation-play-state:running; }
.swl-library[data-cover-motion="off"] .swl-art::after { animation:none; opacity:0; }
@keyframes swl-night-light { 0%,100% { transform:translate3d(-12%,0,0); opacity:.05; } 50% { transform:translate3d(12%,0,0); opacity:.24; } }
@keyframes swl-orbit-light { 0%,100% { transform:scale(.97); opacity:.08; } 50% { transform:scale(1.04); opacity:.25; } }
@keyframes swl-sleeve-light { 0%,100% { transform:translate3d(-10%,4%,0); opacity:.04; } 50% { transform:translate3d(10%,-4%,0); opacity:.2; } }
.swl-floating { position:fixed; z-index:90; left:50%; bottom:max(14px,env(safe-area-inset-bottom)); transform:translateX(-50%); width:max-content; max-width:calc(100% - 24px); display:flex; align-items:center; gap:14px; border:1px solid #e4c27b66; border-radius:14px; padding:10px 14px; background:#081626fa; color:#eff6ff; box-shadow:0 12px 35px #0007; }
.swl-floating strong { font-size:.85rem; overflow-wrap:anywhere; }
.swl-floating button, .swl-floating a { min-height:44px; display:inline-flex; align-items:center; justify-content:center; padding:8px 12px; border:1px solid #edf6ff44; border-radius:8px; background:transparent; color:#edf6ff; font:700 .76rem/1.35 Montserrat,system-ui,sans-serif; cursor:pointer; text-decoration:none; }
.swl-has-floating { padding-bottom:88px; }
.swl-confirm { width:min(460px,calc(100% - 32px)); max-height:calc(100dvh - 48px); box-sizing:border-box; overflow:auto; border:1px solid #e4c27b88; border-radius:20px; padding:clamp(22px,5vw,36px); background:#0c1a29; color:#edf5ff; box-shadow:0 30px 90px #0008; }
.swl-confirm::backdrop { background:#030712b8; backdrop-filter:blur(5px); }
.swl-confirm h3 { color:#edf5ff; font:800 1.6rem/1.15 Montserrat,system-ui,sans-serif; margin:.65rem 0 1rem; }
.swl-confirm p { font-size:.93rem; line-height:1.6; color:#b8cadb; }
.swl-confirm-actions { display:flex; gap:12px; flex-wrap:wrap; margin-top:24px; }
.swl-confirm-actions button, .swl-confirm-actions a { min-height:44px; padding:11px 16px; border:1px solid #e4c27b88; border-radius:9px; background:transparent; color:#edf5ff; font:700 .8rem/1.4 Montserrat,system-ui,sans-serif; text-decoration:none; cursor:pointer; }
.swl-confirm-actions a { background:#ecd08e; color:#112233; }
.swl-confirming { overflow:hidden; }
.swl-press { margin-top:44px; display:flex; justify-content:space-between; align-items:center; gap:24px; padding:24px 28px; border:1px solid #accbdd22; border-radius:16px; background:#0b1a2866; }
.swl-press h3 { margin:.55rem 0; color:#edf5ff; font-size:1.15rem; }
.swl-press p { margin:0; max-width:660px; color:#a9bdd0; font-size:.88rem; line-height:1.6; }
.swl-press a { color:#f1cf83; white-space:nowrap; text-decoration:underline; text-underline-offset:5px; }

@media (max-width:1040px) { .creative-services-bridge-inner:has(.swl-library) { grid-template-columns:1fr; } .creative-services-bridge .swl-library { width:100%; max-width:760px; } .creative-services-bridge .swl-stage { grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr); gap:24px; } .swl-selectors { --swl-card-width:clamp(210px,76%,300px); } }
@media (max-width:760px) { .swl-stage { gap:22px; grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr); } .swl-carousel-toolbar { flex-wrap:wrap; gap:6px; } .swl-carousel-controls { gap:7px; } .swl-press { align-items:flex-start; flex-direction:column; padding:22px; } }
@media (max-width:600px) {
  .swl-stage, .creative-services-bridge .swl-stage { grid-template-columns:1fr; gap:16px; }
  .swl-selectors, .creative-services-bridge .swl-selectors { --swl-card-width:clamp(200px,64%,250px); --swl-gap:14px; padding-bottom:10px; }
  .swl-carousel-toolbar { flex-wrap:nowrap; }
  .swl-carousel-toolbar > .swl-eyebrow { font-size:.58rem; letter-spacing:.12em; }
  .swl-carousel-controls { gap:6px; }
  .swl-count { font-size:.63rem; }
  .swl-carousel-controls button { width:44px; height:44px; }
  .swl-card-caption { display:block; padding-top:10px; }
  .swl-card-caption strong { font-size:.86rem; }
  .swl-card-caption small { display:block; text-align:left; margin-top:2px; }
  .swl-library.is-ready .swl-details { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:4px 12px; align-items:center; }
  .swl-library.is-ready .swl-details > .swl-eyebrow, .swl-library.is-ready .swl-title { position:absolute; width:1px; height:1px; padding:0; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
  .swl-library.is-ready .swl-credit { grid-column:1; grid-row:1; font-size:.83rem; }
  .swl-library.is-ready .swl-play, .swl-library.is-ready .swl-watch { grid-column:2; grid-row:1; padding:11px 16px; font-size:.77rem; }
  .swl-library.is-ready .swl-watch { max-width:155px; }
  .swl-library.is-ready .swl-status { grid-column:1/-1; grid-row:2; min-height:0; margin:6px 0; font-size:.75rem; }
  .swl-library.is-ready .swl-transport { grid-column:1/-1; grid-row:3; margin-top:0; }
  .swl-floating { gap:8px; padding:8px; } .swl-floating strong { max-width:92px; font-size:.75rem; } .swl-floating a, .swl-floating button { padding:8px; font-size:.67rem; }
}
@media (prefers-reduced-motion:reduce) { .swl-library *, .swl-library *::after { animation:none!important; transition:none!important; scroll-behavior:auto!important; } .swl-art::after { opacity:0; } }
[data-motion="off"] .swl-library *, [data-motion="off"] .swl-library *::after, [data-academy-motion="off"] .swl-library *, [data-academy-motion="off"] .swl-library *::after { animation:none!important; transition:none!important; }

.swl-visually-hidden { position:absolute; width:1px; height:1px; padding:0; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }

/* R47 continuous listening and consent-gated, visible YouTube player. */
.swl-auto-next { display:flex; flex-wrap:wrap; align-items:center; gap:8px; min-height:44px; margin-top:12px; color:var(--swl-ink); font-size:.78rem; cursor:pointer; }
.swl-auto-next input { width:18px; height:18px; margin:0; accent-color:var(--swl-accent); }
.swl-auto-next small { color:var(--swl-muted); font-size:.72rem; }
.swl-auto-next:focus-within { outline:3px solid #80e4f2; outline-offset:3px; border-radius:4px; }
.swl-explicit { display:inline-flex; width:max-content; border:1px solid #e4c27b88; border-radius:5px; padding:4px 7px; color:var(--swl-accent); font:800 .65rem/1.4 Montserrat,system-ui,sans-serif; letter-spacing:.06em; }
.swl-details > .swl-explicit { margin-top:12px; }
.swl-video { width:100%; max-width:880px; margin:28px auto 0; padding:16px; box-sizing:border-box; border:1px solid var(--swl-line); border-radius:16px; background:#0c1a29; }
.swl-video-heading { display:flex; justify-content:space-between; align-items:center; gap:12px; margin-bottom:14px; }
.swl-video-heading strong { display:flex; flex-wrap:wrap; align-items:center; gap:9px; font-size:.9rem; }
.swl-video-frame { width:100%; min-height:200px; aspect-ratio:16/9; background:#070d19; }
.swl-video-frame iframe { display:block; border:0; width:100%; height:100%; min-width:200px; min-height:200px; aspect-ratio:16/9; }
.swl-video-message { color:var(--swl-muted); font-size:.8rem; line-height:1.5; margin:12px 0; }
.swl-video-heading button, .swl-video-actions button, .swl-video-actions a { display:inline-flex; align-items:center; justify-content:center; min-height:44px; padding:8px 12px; border:1px solid #edf6ff44; border-radius:8px; background:transparent; color:var(--swl-ink); font:700 .75rem/1.4 Montserrat,system-ui,sans-serif; text-decoration:none; cursor:pointer; }
.swl-video-actions { display:flex; flex-wrap:wrap; gap:12px; }
.swl-video-terms { font-size:.75rem!important; }
.swl-video-terms a { color:#f1cf83; text-decoration:underline; }
.swl-confirm-actions [data-swl-continue] { background:#ecd08e; color:#112233; }
.creative-services-bridge .swl-auto-next { grid-column:1/-1; grid-row:4; margin-top:0; }
@media(max-width:600px) {
 .swl-library.is-ready .swl-auto-next { grid-column:1/-1; grid-row:4; margin-top:0; }
 .swl-library.is-ready .swl-details > .swl-explicit { grid-column:1/-1; grid-row:3; margin-top:0; }
 .swl-video { padding:10px; }
 .swl-video-heading { flex-wrap:wrap; gap:8px; }
}
