/* Video library (videos.php + assets/videos.js). */
.videos-page{background:var(--brand-bg,#fff)}
.vl{--ink:var(--brand-text,#1d1a21);--muted:var(--brand-muted,#6b6570);--line:var(--brand-line,#e6e2ea);--soft:var(--brand-surface,#f4f1f7);--purple:var(--brand-primary,#241236);--gold:var(--brand-accent-ink,#b8902e);--live:#d42f2f;padding:0 max(20px,calc((100% - 1240px*var(--brand-width,1))/2)) 72px;color:var(--ink);font-family:var(--brand-font-body,"DM Sans",Raleway,Arial,sans-serif)}
.vl *{box-sizing:border-box}
.vl button{font:inherit;color:inherit}
.vl-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.vl :focus-visible{outline:3px solid var(--brand-accent,#d9b24c);outline-offset:2px}
.vl svg{fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.vl-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:18px}
.vl-eyebrow{display:block;margin-bottom:8px;color:var(--gold);font-size:12px;font-weight:700;letter-spacing:1.8px;text-transform:uppercase}
.vl-head h1{margin:0;font-family:inherit;font-size:clamp(30px,3.6vw,46px);font-weight:700;letter-spacing:-.6px;text-transform:none;color:var(--ink)}
.vl-head p{max-width:620px;margin:10px 0 0;color:var(--muted);font-size:17px;line-height:1.55}
.vl-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:0 16px;border:1px solid var(--line);border-radius:12px;background:var(--brand-bg,#fff);color:var(--ink)!important;font-size:14px;font-weight:600;text-decoration:none;white-space:nowrap;cursor:pointer;transition:background .2s}
.vl-btn:hover{background:var(--soft)}
.vl-btn svg{width:18px;height:18px}
.vl-btn--yt{background:#d42f2f;border-color:#d42f2f;color:#fff!important;flex:none}
.vl-btn--yt:hover{background:#b82222}
.vl-btn--yt svg{fill:currentColor;stroke:none}
.vl-btn--light{background:var(--brand-bg,#fff);color:var(--brand-text,#1d1a21)!important;border-color:#fff}
.vl-schedule{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:0 0 22px;color:var(--muted);font-size:14px}
.vl-schedule span:not(.vl-dot){color:var(--brand-muted,#8a8390)}
.vl-schedule a{color:var(--purple);font-weight:600}
.vl-dot{width:8px;height:8px;border-radius:50%;background:var(--live);margin-right:4px}

/* Live / upcoming banner */
.vl-live{display:flex;flex-wrap:wrap;align-items:center;gap:12px 16px;margin:0 0 20px;padding:14px 16px;border-radius:16px;background:var(--purple);color:#fff}
.vl-live[hidden]{display:none}
.vl-live.is-live{background:linear-gradient(90deg,#8e1f2a,#d42f2f)}
.vl-live strong{flex:1 1 240px;font-size:16px}
.vl-live-pill{display:inline-flex;align-items:center;height:26px;padding:0 10px;border-radius:13px;background:#ffffff26;font-size:12px;font-weight:700;letter-spacing:.8px;text-transform:uppercase;animation:vlBlink 1.6s ease-in-out infinite}
.vl-live-pill--soon{animation:none;color:var(--brand-accent-light,#f7df93)}
.vl-countdown{font-variant-numeric:tabular-nums;font-weight:700;font-size:18px}
@keyframes vlBlink{50%{opacity:.6}}

/* Theater */
.vl-theater{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:24px;align-items:start;margin-bottom:48px}
.vl-player{position:relative;aspect-ratio:16/9;border-radius:18px;overflow:hidden;background:#0d0a12;box-shadow:0 20px 50px color-mix(in srgb,var(--brand-dark,#12081d) 20%,transparent)}
/* 1px + min-100% keeps the embed exactly the player's size: iOS Safari otherwise lets an iframe grow to its
   content's width, which pushed the video off-centre and clipped its right side in the sideways fullscreen view. */
.vl-player iframe{position:absolute;inset:0;width:1px;min-width:100%;max-width:100%;height:1px;min-height:100%;max-height:100%;border:0}
/* Player sits right under the top nav, above the tabs. Desktop: keep the whole 16:9 player plus the tab bar
   visible below the sticky header (narrows on short screens instead of overflowing). */
.vl-hero{padding-top:24px;margin-bottom:28px}
.vl-hero[hidden]{display:none}
@media(min-width:768px){.vl-hero .vl-player{width:100%;max-width:max(520px,calc((100svh - var(--mm-chrome,125px) - 120px) * 16 / 9));margin-inline:auto}}
/* Phones: player is flush under the nav, edge to edge, and stays pinned while everything below scrolls beneath it. */
@media(max-width:767px){
.vl-hero{position:sticky;top:var(--mm-chrome,109px);z-index:7;margin:0 -20px;padding:0;background:#0d0a12}
.vl-hero .vl-player{border-radius:0;box-shadow:none}
.vl .vl-tabs{position:static}
}
/* Phone turned sideways: the player takes over the whole screen (over the header and tab bar), like a
   fullscreen video. Pure CSS, since browsers only allow real fullscreen from a tap and iPhones not for iframes. */
@media(orientation:landscape) and (max-height:540px) and (pointer:coarse){
html:has(.vl-hero:not([hidden])){overflow:hidden}
.vl-hero:not([hidden]){position:fixed;inset:0;z-index:100;margin:0;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);background:#000}
.vl-hero .vl-player{width:100%;max-width:none;height:100%;aspect-ratio:auto;border-radius:0;box-shadow:none;background:#000}
.vl-hero .vl-poster img{object-fit:contain}
}
.vl-poster{position:absolute;inset:0;padding:0;border:0;background:#0d0a12;cursor:pointer}
.vl-poster img{width:100%;height:100%;object-fit:cover;transition:transform .5s,filter .3s}
.vl-poster:hover img{transform:scale(1.02);filter:brightness(.85)}
.vl-play{position:absolute;left:50%;top:50%;display:grid;place-items:center;width:84px;height:84px;margin:-42px 0 0 -42px;border-radius:50%;background:#ffffffeb;color:var(--purple);box-shadow:0 10px 30px #0006;transition:transform .2s}
.vl-poster:hover .vl-play{transform:scale(1.08)}
.vl-play svg{width:34px;height:34px;margin-left:4px;fill:currentColor;stroke:none}
.vl-poster .vl-badge{right:16px;bottom:16px;font-size:13px;padding:4px 8px}
.vl-now{padding:18px 4px 0}
.vl-now-meta{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;color:var(--muted);font-size:14px}
.vl-tag{display:inline-flex;align-items:center;height:24px;padding:0 10px;border-radius:12px;background:#f1eafa;color:#6a3fa0;font-size:12px;font-weight:700}
.vl-now h2{margin:10px 0 14px;font-family:inherit;font-size:clamp(22px,2.2vw,28px);font-weight:700;letter-spacing:-.3px;line-height:1.25;text-transform:none;color:var(--ink)}
.vl-now-actions{display:flex;flex-wrap:wrap;gap:8px}
.vl-desc{margin-top:16px;padding:14px 16px;border-radius:14px;background:var(--soft)}
.vl-desc summary{font-weight:700;cursor:pointer}
.vl-desc p{margin:10px 0 0;color:#4a4450;font-size:15px;line-height:1.6;overflow-wrap:anywhere}
.vl-upnext h2{margin:0 0 12px;font-family:inherit;font-size:16px;font-weight:700;text-transform:none;color:var(--ink)}
.vl-upnext ol{display:grid;gap:4px;margin:0;padding:0;list-style:none}
.vl-mini{display:grid;grid-template-columns:150px minmax(0,1fr);gap:12px;width:100%;padding:6px;border:0;border-radius:12px;background:none;text-align:left;cursor:pointer;transition:background .2s}
.vl-mini:hover{background:var(--soft)}
.vl-mini-thumb{position:relative;aspect-ratio:16/9;border-radius:9px;overflow:hidden;background:#ddd}
.vl-mini-thumb img{width:100%;height:100%;object-fit:cover}
.vl-mini-text{display:grid;align-content:start;gap:4px}
.vl-mini-text strong{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-size:14px;line-height:1.3}
.vl-mini-text small{color:var(--muted);font-size:12px}
.vl-badge{position:absolute;right:6px;bottom:6px;padding:2px 6px;border-radius:5px;background:#000c;color:#fff;font-size:11px;font-weight:700;font-variant-numeric:tabular-nums;letter-spacing:.2px}
.vl-badge--live{background:var(--live)}
.vl-badge--soon{background:var(--purple)}

/* Browse */
.vl-browse-head{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:14px}
.vl-browse-head h2{margin:0;font-family:inherit;font-size:24px;font-weight:700;text-transform:none;color:var(--ink)}
.vl-browse-head h2 em{font-style:normal;font-size:15px;font-weight:600;color:var(--muted);margin-left:6px}
.vl-tools{display:flex;gap:10px;flex:1 1 360px;justify-content:flex-end}
.vl-search{flex:1;max-width:320px;display:flex;align-items:center;gap:8px;height:44px;padding:0 14px;border:1px solid var(--line);border-radius:12px;background:var(--soft);color:var(--muted)}
.vl-search svg{width:18px;height:18px;flex:none}
.vl-search input{flex:1;min-width:0;border:0;outline:0;background:none;font:inherit;font-size:16px;color:var(--ink)}
.vl-search:focus-within{background:var(--brand-bg,#fff);border-color:var(--ink)}
.vl-sort select{height:44px;padding:0 34px 0 12px;border:1px solid var(--line);border-radius:12px;background:var(--brand-bg,#fff) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236b6570' stroke-width='2.2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") right 10px center/16px no-repeat;font:inherit;font-size:15px;color:var(--ink);appearance:none;cursor:pointer}
.vl-chips{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;margin:0 -2px 20px;padding:2px}
.vl-chips::-webkit-scrollbar{display:none}
.vl-chip{flex:none;display:inline-flex;align-items:center;gap:6px;height:38px;padding:0 14px;border:1px solid var(--line);border-radius:19px;background:var(--brand-bg,#fff);font-size:14px;font-weight:600;cursor:pointer;white-space:nowrap}
.vl-chip em{font-style:normal;font-size:12px;color:var(--muted)}
.vl-chip[aria-pressed=true]{background:var(--purple);border-color:var(--purple);color:#fff}
.vl-chip[aria-pressed=true] em{color:#ffffffb3}
.vl-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:26px 20px;margin:0;padding:0;list-style:none}
.vl-card-btn{display:grid;gap:10px;width:100%;padding:0;border:0;background:none;text-align:left;cursor:pointer}
.vl-thumb{position:relative;display:block;aspect-ratio:16/9;border-radius:14px;overflow:hidden;background:#e9e5ee}
.vl-thumb img{width:100%;height:100%;object-fit:cover;transition:transform .4s}
.vl-card-btn:hover .vl-thumb img{transform:scale(1.04)}
.vl-thumb-play{position:absolute;left:50%;top:50%;display:grid;place-items:center;width:52px;height:52px;margin:-26px 0 0 -26px;border-radius:50%;background:#ffffffe6;color:var(--purple);opacity:0;transform:scale(.85);transition:opacity .2s,transform .2s}
.vl-thumb-play svg{width:22px;height:22px;margin-left:3px;fill:currentColor;stroke:none}
.vl-card-btn:hover .vl-thumb-play,.vl-card-btn:focus-visible .vl-thumb-play{opacity:1;transform:none}
.vl-playing-label{position:absolute;left:8px;top:8px;display:none;padding:3px 8px;border-radius:6px;background:var(--purple);color:#fff;font-size:11px;font-weight:700}
.vl-card.is-playing .vl-thumb{box-shadow:0 0 0 3px var(--purple)}
.vl-card.is-playing .vl-playing-label{display:block}
.vl-card-text{display:grid;gap:4px}
.vl-card-text strong{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-size:16px;line-height:1.3}
.vl-card-text small{color:var(--muted);font-size:13px}
.vl-more{display:block;min-width:220px;min-height:48px;margin:32px auto 0;padding:0 24px;border:1px solid var(--line);border-radius:12px;background:var(--brand-bg,#fff);font-weight:600;cursor:pointer}
.vl-more:hover{background:var(--soft)}
.vl-more[hidden],.vl-none[hidden]{display:none}
/* Videos tab pagination (20 per page). */
.vl-pager{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:8px;margin:36px 0 0}
.vl-pager[hidden]{display:none}
.vl-pages{display:flex;align-items:center;gap:6px;margin:0;padding:0;list-style:none}
.vl-page{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-width:44px;height:44px;padding:0 12px;border:1px solid var(--line);border-radius:12px;background:var(--brand-bg,#fff);color:var(--ink);font:inherit;font-size:15px;font-weight:600;font-variant-numeric:tabular-nums;cursor:pointer;transition:background .2s,border-color .2s,color .2s,transform .15s}
.vl-page:hover:not(:disabled):not([aria-current]){background:var(--soft);border-color:#d6cfde}
.vl-page:active:not(:disabled){transform:scale(.96)}
.vl-page[aria-current]{background:var(--purple);border-color:var(--purple);color:#fff;cursor:default}
.vl-page:disabled{opacity:.4;cursor:default}
.vl-page:focus-visible{outline:3px solid var(--gold);outline-offset:2px}
.vl-page svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.vl-page-gap{min-width:20px;text-align:center;color:var(--muted)}
.vl-page-info{flex-basis:100%;margin:6px 0 0;text-align:center;color:var(--muted);font-size:14px}
@media(max-width:620px){.vl-page--step span{display:none}.vl-page{min-width:40px;height:40px;padding:0 10px}.vl-pages{gap:4px}}
.vl-none,.vl-empty{padding:40px 20px;text-align:center;color:var(--muted)}
.vl-empty{border:1px dashed var(--line);border-radius:18px}
.vl-empty p{margin:0 0 6px;font-size:19px;font-weight:700;color:var(--ink)}
.vl-foot{margin:36px 0 0;text-align:center;color:var(--muted);font-size:14px}
.vl-foot a{color:var(--purple);font-weight:600}

@media(max-width:1060px){.vl-theater{grid-template-columns:minmax(0,1fr)}.vl-upnext ol{grid-auto-flow:column;grid-auto-columns:240px;overflow-x:auto;scrollbar-width:none;padding-bottom:4px}.vl-upnext ol::-webkit-scrollbar{display:none}.vl-mini{grid-template-columns:1fr}}
@media(max-width:640px){
.vl-head{flex-direction:column;align-items:flex-start}
.vl-head p{font-size:16px}
.vl-play{width:64px;height:64px;margin:-32px 0 0 -32px}
.vl-tools{flex-basis:100%}
.vl-search{max-width:none}
.vl-grid{grid-template-columns:1fr;gap:20px}
.vl-theater{margin-bottom:32px}
}
@media(prefers-reduced-motion:reduce){.vl *{transition:none!important;animation:none!important}}

/* Channel header + tabs */
.vl-channel{position:relative}
.vl-banner{height:clamp(120px,16vw,200px);margin:0 calc(-1 * max(20px,(100vw - 1240px)/2));background:radial-gradient(120% 140% at 85% 10%,#6b3d91 0%,transparent 55%),radial-gradient(90% 120% at 10% 100%,color-mix(in srgb,var(--brand-accent-ink,#b8902e) 33.3%,transparent) 0%,transparent 60%),linear-gradient(120deg,var(--brand-primary,#241236),var(--brand-dark,#12081d))}
.vl-channel-row{display:flex;align-items:flex-start;gap:20px;margin-top:22px;flex-wrap:wrap}
.vl-avatar{position:relative;width:112px;height:112px;margin-top:-62px;padding:10px;border-radius:50%;background:var(--purple);border:5px solid #fff;box-shadow:0 8px 24px color-mix(in srgb,var(--brand-dark,#12081d) 20%,transparent);flex:none}
.vl-channel-text{flex:1 1 360px;min-width:0;padding-bottom:4px}
.vl-channel-text h1{margin:0;font-family:inherit;font-size:clamp(26px,3vw,38px);font-weight:700;letter-spacing:-.5px;text-transform:none;color:var(--ink)}
.vl-channel-meta{display:flex;flex-wrap:wrap;gap:4px 14px;margin:6px 0 0;color:var(--muted);font-size:14px}
.vl-channel-meta span{display:inline-flex;align-items:center;gap:6px}
.vl-channel-tag{margin:6px 0 0;color:#4a4450;font-size:15px}
.vl-channel-actions{display:flex;gap:10px;padding-top:4px}
.vl-tabs{position:sticky;top:var(--mm-chrome,125px);z-index:6;display:flex;gap:4px;margin:0 0 28px;padding-top:12px;border-bottom:1px solid var(--line);background:var(--brand-bg,#fff);overflow-x:auto;scrollbar-width:none}
.vl-tabs::-webkit-scrollbar{display:none}
.vl-tabs a{display:inline-flex;align-items:center;gap:8px;flex:none;min-height:50px;padding:0 16px;border-bottom:3px solid transparent;color:var(--muted);font-size:16px;font-weight:600;text-decoration:none;white-space:nowrap}
.vl-tabs a:hover{color:var(--ink)}
.vl-tabs a[aria-current=page]{color:var(--ink);border-bottom-color:var(--ink)}
.vl-tab-live{padding:2px 8px;border-radius:10px;background:var(--live);color:#fff;font-size:11px;letter-spacing:.5px;text-transform:uppercase}
.vl-tab-live[hidden]{display:none}
.vl-panel[hidden]{display:none}
.vl-h2,.vl-row-head h2{margin:36px 0 14px;font-family:inherit;font-size:22px;font-weight:700;text-transform:none;color:var(--ink)}
/* Home rows */
.vl-row{margin-top:8px}
.vl-row-head{display:flex;align-items:center;justify-content:space-between;gap:12px}
.vl-link{padding:8px 4px;border:0;background:none;color:var(--purple);font-weight:700;cursor:pointer}
.vl-link:hover{text-decoration:underline;text-underline-offset:3px}
.vl-rail{display:grid;grid-auto-flow:column;grid-auto-columns:calc((100% - 3*18px)/4);gap:18px;margin:0;padding:0 0 8px;list-style:none;overflow-x:auto;scroll-snap-type:x proximity;scrollbar-width:thin}
.vl-rail .vl-card{scroll-snap-align:start}
/* Live panel */
.vl-live-now{display:grid;grid-template-columns:minmax(0,1.3fr) 1fr;gap:24px;align-items:center;margin-top:8px;padding:18px;border-radius:20px;background:linear-gradient(120deg,#2a0f14,#3b1320);color:#fff}
.vl-live-now h2{margin:12px 0 16px;font-family:inherit;font-size:24px;text-transform:none;color:#fff}
.vl-live-thumb{position:relative;aspect-ratio:16/9;border-radius:14px;overflow:hidden}
.vl-live-thumb img{width:100%;height:100%;object-fit:cover}
.vl-btn--red{background:var(--live);border-color:var(--live);color:#fff!important}
.vl-btn--red:hover{background:#b82222}
.vl-btn--red svg{fill:currentColor;stroke:none}
.vl-offline{display:flex;gap:16px;align-items:center;margin-top:8px;padding:22px;border:1px solid var(--line);border-radius:20px;background:var(--soft)}
.vl-offline h2{margin:0 0 4px;font-family:inherit;font-size:20px;text-transform:none;color:var(--ink)}
.vl-offline p{margin:0;color:var(--muted)}
.vl-offline-dot{width:14px;height:14px;border-radius:50%;background:#b3adb8;flex:none;box-shadow:0 0 0 6px #b3adb833}
.vl-upcoming{display:grid;gap:12px;margin:0;padding:0;list-style:none}
.vl-up{display:grid;grid-template-columns:220px minmax(0,1fr);gap:16px;align-items:center;width:100%;padding:10px;border:1px solid var(--line);border-radius:16px;background:var(--brand-bg,#fff);text-align:left;cursor:pointer}
.vl-up:hover{background:var(--soft)}
.vl-up-thumb{position:relative;aspect-ratio:16/9;border-radius:10px;overflow:hidden}
.vl-up-thumb img{width:100%;height:100%;object-fit:cover}
.vl-up-text{display:grid;gap:4px}
.vl-up-text strong{font-size:17px}
.vl-up-text small{color:var(--muted);font-size:14px}
.vl-countdown--sm{font-size:14px;color:var(--purple)}
.vl-schedule-card{display:flex;flex-wrap:wrap;align-items:center;gap:14px 24px;margin-top:24px;padding:20px 22px;border:1px solid var(--line);border-radius:18px}
.vl-schedule-card h2{margin:0;flex-basis:100%;font-family:inherit;font-size:18px;text-transform:none;color:var(--ink)}
.vl-schedule-card ul{display:flex;flex-wrap:wrap;gap:12px 28px;margin:0;padding:0;list-style:none;flex:1}
.vl-schedule-card li{display:grid}
.vl-schedule-card li span{color:var(--muted);font-size:14px}
.vl-poster-soon{position:absolute;inset:0;display:grid;place-content:center;gap:6px;background:color-mix(in srgb,var(--brand-dark,#12081d) 80%,transparent);color:#fff;text-align:center;font-size:18px}
.vl-poster-soon b{font-size:clamp(18px,2.4vw,28px)}
.vl-tag--live{background:var(--live);color:#fff}
@media(max-width:1060px){.vl-rail{grid-auto-columns:calc((100% - 2*18px)/2.4)}.vl-live-now{grid-template-columns:1fr}}
@media(max-width:980px){.vl-tabs{top:var(--mm-chrome,109px)}}
@media(max-width:640px){.vl-channel-row{margin-top:10px;gap:12px}.vl-avatar{width:84px;height:84px;margin-top:-50px;padding:7px;border-width:4px}.vl-channel-actions{width:100%}.vl-channel-actions .vl-btn{flex:1}.vl-rail{grid-auto-columns:78%}.vl-up{grid-template-columns:120px minmax(0,1fr);gap:12px}.vl-up-text strong{font-size:15px}.vl-tabs a{padding:0 12px;font-size:15px}}
