/* TubeVieu homepage + PureSoul radio bar (added 2026-11-15) */
.tvh, .tvr { --tvh-bg:#0f1a2e; --tvh-surface:#1e2f48; --tvh-surface-2:#26395a; --tvh-line:#3a4d6b; --tvh-fg:#f2f5fa; --tvh-muted:#b4c0d3; --tvh-red:#e5534b; --tvh-red-hover:#f0645c; --tvh-amber:#f4b740; --tvh-live:#ff4d4d; font-family:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif; }
.tvh *, .tvr * { box-sizing:border-box; }
.tvh [hidden], .tvr [hidden] { display:none !important; }
.tvh { background:var(--tvh-bg); color:var(--tvh-fg); padding:18px 0 34px; margin-bottom:28px; }
.tvh a { color:inherit; text-decoration:none; }
.tvh-wrap { max-width:1240px; margin:0 auto; padding:0 16px; display:flex; flex-direction:column; gap:28px; }
.tvh-pills { display:flex; gap:12px; overflow-x:auto; scrollbar-width:none; padding-bottom:2px; }
.tvh-pills::-webkit-scrollbar { display:none; }
.tvh-pill { flex:none; padding:7px 17px; border-radius:12px; background:var(--tvh-surface); font-size:15px; font-weight:500; white-space:nowrap; color:var(--tvh-fg) !important; border:0; cursor:pointer; }
.tvh-pill:hover, .tvh-pill.is-on { background:var(--tvh-surface-2); }
.tvh-dot { display:inline-block; width:7px; height:7px; border-radius:50%; background:var(--tvh-live); margin-right:7px; vertical-align:2px; animation:tvh-pulse 1.6s ease-in-out infinite; }
@keyframes tvh-pulse { 50% { opacity:.35; } }
.tvh-feat { background:var(--tvh-surface-2); border-radius:22px; padding:28px; display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.05fr); gap:28px; align-items:center; }
.tvh-eyebrow { margin:0 0 14px; color:var(--tvh-amber); font-size:14px; font-weight:500; letter-spacing:.06em; text-transform:uppercase; }
.tvh-feat h1 { margin:0 0 14px; font-size:clamp(26px,3.2vw,38px); line-height:1.15; font-weight:700; color:var(--tvh-fg); }
.tvh-lede { margin:0 0 24px; color:var(--tvh-muted); font-size:17px; max-width:46ch; }
.tvh-ctas { display:flex; flex-wrap:wrap; gap:14px; }
.tvh-btn { display:inline-flex; align-items:center; gap:10px; padding:12px 22px; border-radius:10px; font-size:17px; font-weight:500; cursor:pointer; }
.tvh-btn svg { width:20px; height:20px; }
.tvh-btn-red { background:var(--tvh-red); border:1px solid var(--tvh-red); color:#fff !important; }
.tvh-btn-red:hover { background:var(--tvh-red-hover); }
.tvh-btn-line { border:1px solid var(--tvh-muted); color:var(--tvh-fg) !important; }
.tvh-btn-line:hover { background:var(--tvh-surface); }
.tvh-live { display:flex; flex-direction:column; gap:12px; min-width:0; }
.tvh-screen { position:relative; aspect-ratio:16/9; max-width:100%; border-radius:14px; overflow:hidden; background:#050a14; }
.tvh-screen video { width:100%; height:100%; display:block; object-fit:cover; background:#050a14; }
.tvh-badge { position:absolute; top:12px; left:12px; display:inline-flex; align-items:center; gap:6px; padding:4px 10px; border-radius:6px; background:var(--tvh-live); color:#fff; font-size:12px; font-weight:700; letter-spacing:.08em; z-index:2; }
.tvh-badge::before { content:""; width:7px; height:7px; border-radius:50%; background:#fff; animation:tvh-pulse 1.6s ease-in-out infinite; }
.tvh-cover { position:absolute; inset:0; display:grid; place-items:center; text-align:center; padding:20px; background:linear-gradient(180deg,rgba(5,10,20,.15),rgba(5,10,20,.75)); border:0; width:100%; cursor:pointer; color:var(--tvh-fg); }
.tvh-play { width:64px; height:64px; border-radius:50%; background:rgba(255,255,255,.14); display:grid; place-items:center; margin:0 auto 10px; }
.tvh-play svg { width:30px; height:30px; }
.tvh-cover strong { display:block; font-size:18px; }
.tvh-cover small { color:var(--tvh-muted); font-size:13px; }
.tvh-note { position:absolute; left:12px; right:12px; bottom:12px; margin:0; padding:8px 12px; border-radius:8px; background:rgba(5,10,20,.8); color:var(--tvh-muted); font-size:13px; }
.tvh-chans { display:flex; flex-wrap:wrap; gap:10px; }
.tvh-chan { flex:1 1 140px; display:flex; align-items:center; gap:10px; padding:10px 14px; border-radius:10px; border:1px solid var(--tvh-line); background:var(--tvh-surface); cursor:pointer; text-align:left; color:var(--tvh-fg); }
.tvh-chan[aria-pressed="true"] { border-color:var(--tvh-red); background:rgba(229,83,75,.12); }
.tvh-chan b { display:block; font-size:14px; font-weight:600; }
.tvh-chan span span { display:block; font-size:12px; color:var(--tvh-muted); }
.tvh-chan i { flex:none; width:8px; height:8px; border-radius:50%; background:var(--tvh-live); }
.tvh-head { display:flex; align-items:baseline; justify-content:space-between; gap:12px; margin-bottom:18px; }
.tvh-head h2 { margin:0; font-size:26px; font-weight:600; color:var(--tvh-fg); }
.tvh-head a { color:var(--tvh-muted) !important; font-size:16px; }
.tvh-head a:hover { color:var(--tvh-fg) !important; }
.tvh-progs { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
.tvh-prog { display:flex; flex-direction:column; gap:4px; }
.tvh-thumb { aspect-ratio:16/9; max-width:100%; border-radius:14px; overflow:hidden; background:var(--tvh-surface); }
.tvh-thumb img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .35s ease; }
.tvh-prog:hover img { transform:scale(1.03); }
.tvh-prog h3 { margin:14px 0 0; font-size:19px; font-weight:500; color:var(--tvh-fg); }
.tvh-prog p { margin:0; color:var(--tvh-muted); font-size:18px; }
@media (max-width:820px) { .tvh-feat { grid-template-columns:minmax(0,1fr); padding:22px; } .tvh-live { order:-1; } }
@media (max-width:560px) { .tvh-progs { grid-template-columns:minmax(0,1fr); } }

/* PureSoul radio bar, docked on every page */
body.has-tvr { padding-bottom:84px; }
.tvr { position:fixed; left:12px; right:12px; bottom:max(12px, env(safe-area-inset-bottom,0px)); z-index:1040; max-width:1240px; margin:0 auto; background:var(--tvh-surface); color:var(--tvh-fg); border:1px solid var(--tvh-line); border-radius:18px; padding:10px 18px; display:grid; grid-template-columns:auto minmax(0,1fr) auto auto; gap:14px; align-items:center; box-shadow:0 -10px 30px rgba(5,10,20,.45); }
.tvr-ico { color:var(--tvh-amber); width:26px; height:26px; }
.tvr-txt { min-width:0; line-height:1.3; }
.tvr-txt b { display:block; font-size:16px; font-weight:600; }
.tvr-now { display:block; color:var(--tvh-muted); font-size:13px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.tvr-play { width:46px; height:46px; border-radius:50%; border:0; background:var(--tvh-surface-2); display:grid; place-items:center; cursor:pointer; color:var(--tvh-fg); }
.tvr-play:hover { background:var(--tvh-line); }
.tvr-play svg { width:26px; height:26px; }
.tvr-vol { display:flex; align-items:center; gap:6px; }
.tvr-vol button { border:0; background:transparent; cursor:pointer; width:32px; height:32px; display:grid; place-items:center; color:var(--tvh-fg); }
.tvr-vol svg { width:22px; height:22px; }
.tvr-vol input { width:90px; accent-color:var(--tvh-amber); }
.tvr.on { border-color:var(--tvh-amber); }
@media (max-width:560px) { .tvr { grid-template-columns:auto minmax(0,1fr) auto; padding:8px 12px; } .tvr-vol { display:none; } }
@media (prefers-reduced-motion:reduce) { .tvh *, .tvr * { animation:none !important; transition:none !important; } }
/* App install button in the radio bar */
.tvr { grid-template-columns:auto minmax(0,1fr) auto auto auto; }
.tvr-install { border:1px solid var(--tvh-line); background:transparent; color:var(--tvh-fg); border-radius:999px; padding:7px 14px; font-size:13px; font-weight:600; cursor:pointer; white-space:nowrap; }
.tvr-install:hover { background:var(--tvh-surface-2); }
.tvr-tip { position:absolute; right:12px; bottom:calc(100% + 10px); max-width:280px; margin:0; padding:12px 14px; border-radius:12px; background:var(--tvh-surface-2); border:1px solid var(--tvh-line); color:var(--tvh-fg); font-size:14px; line-height:1.4; box-shadow:0 10px 30px rgba(5,10,20,.45); }
@media (max-width:560px) { .tvr { grid-template-columns:auto minmax(0,1fr) auto auto; } .tvr-install { padding:6px 10px; } }
/* Soulfood and Lemonade audiogram on episode pages (added 2026-11-15) */
.tvag{position:relative;container-type:inline-size;aspect-ratio:16/9;width:100%;border-radius:18px;overflow:hidden;margin-bottom:24px;background:#06204a;color:#fff;font-family:Inter,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif}
.tvag *{box-sizing:border-box}
.tvag:not([data-podcast="1"]){display:none}
.tvag-photo{position:absolute;inset:0;background:url(../img/home/sal-host.webp) 30% 50%/cover no-repeat}
.tvag-tint{position:absolute;inset:0;background:linear-gradient(90deg,rgba(6,32,74,0) 38%,rgba(6,32,74,.55) 62%,rgba(4,22,54,.82) 100%),linear-gradient(180deg,rgba(4,22,54,0) 55%,rgba(4,18,46,.78) 78%,rgba(3,14,38,.96) 100%)}
.tvag-glow{position:absolute;right:-11cqw;top:-13cqw;width:57cqw;height:57cqw;border-radius:50%;background:radial-gradient(circle,rgba(244,183,64,.2),rgba(244,183,64,0) 60%)}
.tvag-copy{position:absolute;right:5.7cqw;top:6.2cqw;width:39.5cqw;display:flex;flex-direction:column;align-items:flex-start;gap:1.35cqw}
.tvag-logo{width:29cqw;height:auto;filter:drop-shadow(0 .3cqw 1cqw rgba(0,0,0,.35))}
.tvag-ep{display:inline-flex;align-items:center;gap:.75cqw;font-weight:700;letter-spacing:.14em;text-transform:uppercase;font-size:1.25cqw;color:#ffd166;margin-top:.5cqw}
.tvag-ep::before{content:"";width:2.4cqw;height:.16cqw;min-height:2px;background:#ffd166;border-radius:2px}
.tvag-title{margin:0;text-wrap:balance;max-width:37.5cqw;font-weight:800;font-size:3.1cqw;line-height:1.08;letter-spacing:-.01em;color:#fff;text-shadow:0 .2cqw 1.25cqw rgba(0,20,60,.45)}
.tvag-host{font-size:1.35cqw;font-weight:500;color:#dbe8ff}
.tvag-wave{position:absolute;left:0;right:0;bottom:3.6cqw;width:100%;height:9.9cqw;display:block}
.tvag-foot{position:absolute;left:3.3cqw;bottom:1.35cqw;font-size:1.15cqw;font-weight:600;color:#cfe0ff;letter-spacing:.04em}
.tvag-foot b{color:#ffd166}
.tvag-play{position:absolute;left:3.3cqw;top:3.3cqw;width:6.4cqw;height:6.4cqw;min-width:44px;min-height:44px;border-radius:50%;border:0;background:#ffc845;color:#1a1306;display:grid;place-items:center;cursor:pointer;box-shadow:0 .5cqw 1.5cqw rgba(0,0,0,.35)}
.tvag-play svg{width:45%;height:45%}
.tvag-play .tvag-pause,.tvag-play.is-playing .tvag-tri{display:none}
.tvag-play.is-playing .tvag-pause{display:block}
.tvag-play:focus-visible{outline:3px solid #fff;outline-offset:3px}
@media (max-width:575px){.tvag{border-radius:12px}}