.vibe-rp-shell{--vibe-cols:4;--vibe-gap:20px;box-sizing:border-box;width:100%}.vibe-rp-heading{font-weight:700;font-size:28px;line-height:1.2}.vibe-rp-wrap{position:relative}.vibe-rp{display:grid;gap:var(--vibe-gap);width:100%}.vibe-rp-grid{grid-template-columns:repeat(var(--vibe-cols),minmax(0,1fr))}.vibe-rp-list{grid-template-columns:1fr}.vibe-rp-card{box-sizing:border-box;min-width:0;overflow:hidden;transition:background .2s ease,transform .2s ease}.vibe-rp-grid .vibe-rp-card,.vibe-rp-carousel .vibe-rp-card{display:flex;flex-direction:column}.vibe-rp-list .vibe-rp-card{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:16px}.vibe-rp-art{display:block;max-width:100%;height:auto;background:#eee}.vibe-rp-list .vibe-rp-art{width:84px!important;aspect-ratio:1/1;margin:0!important}.vibe-rp-title{font-weight:700;line-height:1.2;overflow-wrap:anywhere}.vibe-rp-artist{line-height:1.3}.vibe-rp-time{display:block;margin-top:7px;font-size:12px;opacity:.7}.vibe-rp-status{grid-column:1/-1;padding:12px 0;opacity:.7}.vibe-rp-carousel{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;scrollbar-width:none;padding:2px}.vibe-rp-carousel::-webkit-scrollbar{display:none}.vibe-rp-carousel .vibe-rp-card{flex:0 0 calc((100% - (var(--vibe-gap) * (var(--vibe-cols) - 1))) / var(--vibe-cols));scroll-snap-align:start}.vibe-rp-arrow{position:absolute;z-index:3;top:50%;transform:translateY(-50%);border:0;border-radius:999px;display:grid;place-items:center;cursor:pointer;font-size:28px;line-height:1;box-shadow:0 4px 18px rgba(0,0,0,.2)}.vibe-rp-prev{left:-21px}.vibe-rp-next{right:-21px}@media(max-width:1024px){.vibe-rp-shell{--vibe-cols:2}}@media(max-width:767px){.vibe-rp-shell{--vibe-cols:1}.vibe-rp-prev{left:6px}.vibe-rp-next{right:6px}}
/* VIBE live widgets */
.vibe-current-art-shell{width:100%}.vibe-current-art{height:auto;display:inline-block;vertical-align:middle;transition:transform .25s ease,opacity .25s ease}.vibe-now-playing{--vibe-now-gap:5px}.vibe-now-playing.vibe-now-stacked .vibe-now-piece{display:block}.vibe-now-playing.vibe-now-stacked .vibe-now-piece+.vibe-now-piece{margin-top:var(--vibe-now-gap)}.vibe-now-playing.vibe-now-inline .vibe-now-piece,.vibe-now-playing.vibe-now-inline .vibe-now-separator{display:inline}.vibe-live-status{opacity:.65;font-size:.9em}
/* VIBE Announcements */
.vibe-announcements{box-sizing:border-box;width:100%;min-width:0;overflow:hidden}.vibe-ann-header{line-height:1.2}.vibe-ann-stage{position:relative;min-width:0}.vibe-ann-slide{display:none;width:100%;min-width:0;box-sizing:border-box;animation:vibeAnnFade .35s ease}.vibe-ann-slide.is-active{display:block}.vibe-ann-image{display:block;width:100%;max-width:100%;height:auto;box-sizing:border-box}.vibe-ann-details{overflow-wrap:anywhere}.vibe-ann-details>:first-child{margin-top:0}.vibe-ann-details>:last-child{margin-bottom:0}.vibe-ann-button{display:inline-block;text-decoration:none;transition:background .2s ease,color .2s ease,transform .2s ease}.vibe-ann-button:hover{transform:translateY(-1px)}.vibe-ann-dots{display:flex;justify-content:center;align-items:center;gap:16px;margin-top:16px}.vibe-ann-dot{border:0;padding:0;border-radius:999px;background:#111;cursor:pointer;opacity:.45;transition:opacity .2s ease,transform .2s ease}.vibe-ann-dot.is-active{opacity:1;transform:scale(1.08)}.vibe-ann-arrow{position:absolute;top:50%;transform:translateY(-50%);z-index:3;border:0;border-radius:999px;width:42px;height:42px;display:grid;place-items:center;cursor:pointer;font-size:30px;line-height:1}.vibe-ann-prev{left:10px}.vibe-ann-next{right:10px}@keyframes vibeAnnFade{from{opacity:.25;transform:translateX(8px)}to{opacity:1;transform:none}}@media(max-width:767px){.vibe-ann-dots{gap:12px}.vibe-ann-arrow{width:36px;height:36px;font-size:25px}}
/* VIBE Programming v1.5.1 */
.vibe-prog-card,.vibe-coming-up,.vibe-web-schedule{box-sizing:border-box;width:100%;min-width:0}.vibe-prog-loading{opacity:.65;padding:12px 0}.vibe-prog-kicker,.vibe-coming-header,.vibe-schedule-header{font-weight:900;letter-spacing:.04em;margin-bottom:16px}.vibe-prog-inner{display:grid;grid-template-columns:minmax(100px,220px) minmax(0,1fr);gap:24px;align-items:center}.vibe-prog-art{display:block;width:100%;max-width:100%;aspect-ratio:1/1;object-fit:cover}.vibe-prog-title{font-size:clamp(24px,3vw,42px);font-weight:900;line-height:1.05}.vibe-prog-time{font-weight:900;margin-top:8px}.vibe-prog-presenter{margin-top:7px}.vibe-prog-desc{margin-top:12px;line-height:1.5}.vibe-prog-button{display:inline-block;margin-top:16px;text-decoration:none;padding:10px 18px;border-radius:999px;background:#ff193b;color:#fff;font-weight:800}.vibe-coming-list{display:grid;gap:14px}.vibe-coming-up[data-layout="cards"] .vibe-coming-list{grid-template-columns:repeat(3,minmax(0,1fr))}.vibe-coming-item{display:grid;grid-template-columns:auto minmax(0,1fr);gap:14px;align-items:center;padding:12px;border:1px solid rgba(128,128,128,.2);border-radius:14px}.vibe-coming-art{width:74px;height:74px;object-fit:cover;border-radius:10px}.vibe-coming-time{font-weight:900}.vibe-coming-title{font-weight:900;font-size:18px;line-height:1.15}.vibe-coming-presenter{font-size:13px;opacity:.8;margin-top:3px}.vibe-coming-desc{font-size:13px;opacity:.8;margin-top:6px;line-height:1.35}.vibe-schedule-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:7px;margin-bottom:14px}.vibe-schedule-day{border:1px solid rgba(128,128,128,.22);border-radius:9px;padding:9px 4px;cursor:pointer;font-weight:800;transition:.18s ease}.vibe-schedule-day.is-active{background:#ff193b;color:#fff}.vibe-schedule-day:hover{transform:translateY(-1px)}.vibe-schedule-list{display:grid;gap:8px}.vibe-schedule-item{border:1px solid rgba(128,128,128,.18);border-radius:13px;overflow:hidden;transition:.18s ease}.vibe-schedule-item.can-expand:hover{transform:translateY(-1px);box-shadow:0 7px 18px rgba(0,0,0,.10)}.vibe-schedule-summary{display:grid;grid-template-columns:72px auto minmax(0,1fr) 38px;gap:12px;align-items:center;padding:10px 13px}.vibe-schedule-item.can-expand .vibe-schedule-summary{cursor:pointer}.vibe-schedule-row-art{width:52px;height:52px;object-fit:cover;border-radius:8px}.vibe-schedule-time{font-size:17px;font-weight:900}.vibe-schedule-title{font-size:17px;font-weight:900;line-height:1.15}.vibe-schedule-presenter{font-size:12px;opacity:.78;margin-top:3px}.vibe-schedule-info{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;border:2px solid currentColor;font-weight:900;font-family:serif;opacity:.75}.vibe-schedule-details{display:none;padding:5px 14px 18px;line-height:1.55}.vibe-schedule-item.is-open .vibe-schedule-details{display:block}.vibe-schedule-detail-grid{display:grid;grid-template-columns:minmax(160px,300px) minmax(0,1fr);gap:24px;align-items:start}.vibe-schedule-large-art,.vibe-schedule-presenter-photo{display:block;width:100%;aspect-ratio:1/1;object-fit:cover;border-radius:14px}.vibe-schedule-details h4{margin:0 0 8px;font-size:18px}.vibe-schedule-details p{margin:0 0 14px}.vibe-schedule-bio{display:grid;grid-template-columns:100px minmax(0,1fr);gap:15px;align-items:start;margin-top:18px}.vibe-schedule-bio .vibe-schedule-presenter-photo{width:100px}.vibe-schedule-link{display:inline-block;text-decoration:none;padding:9px 16px;border-radius:999px;background:#ff193b;color:#fff;font-weight:800}
@media(max-width:767px){.vibe-prog-inner{grid-template-columns:1fr}.vibe-prog-art{max-width:360px}.vibe-coming-up[data-layout="cards"] .vibe-coming-list{grid-template-columns:1fr}.vibe-schedule-days{gap:3px}.vibe-schedule-day{font-size:10px;padding:8px 1px}.vibe-schedule-summary{grid-template-columns:58px minmax(0,1fr) 34px;gap:8px;padding:10px}.vibe-schedule-row-art{display:none}.vibe-schedule-time{font-size:16px}.vibe-schedule-title{font-size:14px}.vibe-schedule-presenter{font-size:11px}.vibe-schedule-info{width:28px;height:28px}.vibe-schedule-detail-grid{grid-template-columns:1fr}.vibe-schedule-large-art{width:100%;max-width:440px}.vibe-schedule-details{padding:4px 10px 15px}.vibe-schedule-bio{grid-template-columns:80px minmax(0,1fr)}.vibe-schedule-bio .vibe-schedule-presenter-photo{width:80px}}

/* v1.5.1 programme media/layout fixes */
.vibe-schedule-detail-grid.no-art{grid-template-columns:1fr}.vibe-schedule-bio.no-photo{display:block}.vibe-schedule-bio.no-photo>div{width:100%;min-width:0}.vibe-schedule-bio.no-photo p{max-width:none}.vibe-schedule-large-art{height:auto;aspect-ratio:auto;object-fit:contain}.vibe-schedule-presenter-photo{height:auto;object-fit:cover}
