/* SoundVibe Homepage 2.0 — deliberately lightweight, no external fonts, no animation libraries */
.svh20{--bg:#05090b;--panel:#0a1115;--panel2:#0d151a;--line:rgba(255,255,255,.10);--text:#f7fafb;--muted:#9eabb2;--green:#44dd00;--blue:#00aaff;--shell:min(1380px,calc(100% - 48px));font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:var(--bg);color:var(--text);width:100vw;max-width:none;margin-left:calc(50% - 50vw);overflow:hidden;line-height:1.45}
.svh20 *{box-sizing:border-box}.svh20 img{display:block;max-width:100%}.svh20 a{color:inherit;text-decoration:none}.svh20 button,.svh20 input{font:inherit}.svh20-shell{width:var(--shell);margin-inline:auto}
.svh20-header{height:82px;border-bottom:1px solid var(--line);background:rgba(5,9,11,.96);position:relative;z-index:30}.svh20-header-inner{height:100%;display:flex;align-items:center;justify-content:space-between;gap:36px}.svh20-brand{display:flex;align-items:center;gap:10px;min-width:185px}.svh20-brand img{width:48px;height:48px;object-fit:contain}.svh20-brand span{display:flex;flex-direction:column;line-height:1}.svh20-brand strong{font-size:17px;letter-spacing:.04em}.svh20-brand small{font-size:10px;letter-spacing:.45em;color:var(--green);margin-top:5px}.svh20-nav{display:flex;align-items:center;gap:28px;font-size:14px;font-weight:700}.svh20-nav a{position:relative;color:#d7dfe3}.svh20-nav a:hover{color:#fff}.svh20-nav a:first-child{color:var(--green)}.svh20-nav a:first-child:after{content:"";position:absolute;left:0;right:0;bottom:-16px;height:2px;background:var(--green)}.svh20-menu-toggle{display:none;color:#fff;background:transparent;border:1px solid var(--line);padding:9px 12px;border-radius:8px}
.svh20-hero{position:relative;min-height:610px;border-bottom:1px solid var(--line);background:radial-gradient(circle at 77% 20%,rgba(0,170,255,.14),transparent 30%),radial-gradient(circle at 20% 70%,rgba(68,221,0,.10),transparent 34%),#060a0d}.svh20-hero.has-bg{background-image:linear-gradient(90deg,rgba(2,6,8,.97) 0%,rgba(2,6,8,.88) 45%,rgba(2,6,8,.30) 100%),var(--svh-hero);background-size:cover;background-position:center}.svh20-hero-overlay{position:absolute;inset:0;background:linear-gradient(180deg,transparent 60%,rgba(5,9,11,.8))}.svh20-hero-grid{position:relative;z-index:2;display:grid;grid-template-columns:minmax(0,1.08fr) minmax(390px,.92fr);gap:70px;align-items:center;min-height:610px;padding-block:72px}.svh20-eyebrow{font-size:13px;letter-spacing:.28em;color:#d4dde1;margin-bottom:18px}.svh20-hero h1{font-size:clamp(50px,6.2vw,92px);line-height:.91;letter-spacing:-.055em;margin:0;max-width:760px}.svh20-hero h1::first-line{color:#fff}.svh20-subtitle{font-size:20px;color:#cbd5da;margin:18px 0 30px}.svh20-now{display:flex;align-items:center;gap:18px;max-width:650px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:16px 0}.svh20-art-wrap{width:78px;height:78px;border-radius:8px;overflow:hidden;background:#0c1419;flex:0 0 auto}.svh20-art{width:100%;height:100%;object-fit:cover}.svh20-track-meta{min-width:0;display:flex;flex-direction:column}.svh20-track-meta span{font-size:11px;color:var(--green);font-weight:800;letter-spacing:.12em;margin-bottom:4px}.svh20-track-meta strong{font-size:20px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:500px}.svh20-track-meta small{font-size:12px;color:var(--muted);margin-top:4px}.svh20-player-actions{display:flex;align-items:center;gap:24px;margin-top:26px}.svh20-play{height:54px;min-width:210px;border:none;border-radius:8px;background:var(--green);color:#071007;font-weight:900;letter-spacing:.12em;display:inline-flex;align-items:center;justify-content:center;gap:12px;cursor:pointer;box-shadow:none;transition:transform .18s ease,filter .18s ease}.svh20-play:hover{transform:translateY(-1px);filter:brightness(1.08)}.svh20-play.is-playing{background:#fff;color:#071007}.svh20-play-icon{font-size:14px}.svh20-volume{display:flex;align-items:center;gap:9px;color:#a9b5ba;font-size:10px;font-weight:800;letter-spacing:.08em}.svh20-volume input{accent-color:var(--green);width:100px}
.svh20-live-card{position:relative;justify-self:end;width:min(520px,100%);aspect-ratio:1/1;border:1px solid var(--line);overflow:hidden;background:#0a1115}.svh20-live-art-bg{position:absolute;inset:-20px;background-size:cover;background-position:center;filter:blur(34px) saturate(1.2);opacity:.35;transform:scale(1.15)}.svh20-live-card:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(5,9,11,.1),rgba(5,9,11,.8))}.svh20-live-card-inner{position:absolute;z-index:2;inset:22px;display:flex;flex-direction:column}.svh20-live-badge{align-self:flex-start;padding:7px 10px;border:1px solid rgba(68,221,0,.35);background:rgba(5,9,11,.6);font-size:10px;letter-spacing:.16em;font-weight:900}.svh20-live-badge i{display:inline-block;width:6px;height:6px;border-radius:99px;background:var(--green);margin-right:6px}.svh20-live-art{width:72%;aspect-ratio:1/1;object-fit:cover;align-self:center;margin:auto;border:1px solid rgba(255,255,255,.14);box-shadow:0 30px 60px rgba(0,0,0,.35)}.svh20-live-title{font-size:18px;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border-top:1px solid var(--line);padding-top:14px}
.svh20-onair-wrap{background:#070d10;border-bottom:1px solid var(--line)}.svh20-onair-grid{display:grid;grid-template-columns:1fr 1fr}.svh20-onair-card{min-height:165px;padding:34px 38px;display:grid;grid-template-columns:54px 1fr;gap:20px;align-items:start;border-right:1px solid var(--line)}.svh20-onair-card:last-child{border-right:0}.svh20-onair-icon{width:46px;height:46px;border:1px solid rgba(68,221,0,.4);color:var(--green);display:grid;place-items:center;border-radius:50%;font-weight:900}.svh20-onair-card.next .svh20-onair-icon{border-color:rgba(0,170,255,.4);color:var(--blue)}.svh20-onair-card span{font-size:11px;font-weight:900;letter-spacing:.14em;color:var(--green)}.svh20-onair-card.next span{color:var(--blue)}.svh20-onair-card h2{font-size:25px;margin:4px 0 2px}.svh20-onair-card p{margin:0;color:#d4dde1}.svh20-onair-card small{display:block;color:var(--muted);margin-top:5px}
.svh20-section{padding:76px 0;border-bottom:1px solid var(--line)}.svh20-section-head{display:flex;justify-content:space-between;align-items:flex-end;gap:30px;margin-bottom:30px}.svh20-section-head span,.svh20-submit span,.svh20-guest-copy>span{font-size:11px;color:var(--green);font-weight:900;letter-spacing:.16em}.svh20-section-head h2,.svh20-submit h2{font-size:clamp(30px,4vw,46px);margin:5px 0 2px;letter-spacing:-.035em}.svh20-section-head p{margin:0;color:var(--muted)}.svh20-section-head>a{font-size:13px;color:var(--blue);font-weight:800;white-space:nowrap}.svh20-show-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.svh20-show-card{position:relative;min-height:390px;border:1px solid var(--line);overflow:hidden;background:linear-gradient(155deg,#121d23,#071014 70%)}.svh20-show-card.has-image{background-image:var(--svh-show);background-size:cover;background-position:center}.svh20-show-bg{position:absolute;inset:0;background:linear-gradient(180deg,rgba(4,8,10,.08) 15%,rgba(4,8,10,.92) 90%)}.svh20-show-index{position:absolute;right:18px;top:14px;font-size:42px;font-weight:900;color:rgba(255,255,255,.08)}.svh20-show-content{position:absolute;z-index:2;inset:auto 22px 24px}.svh20-show-content span{font-size:11px;color:var(--green);font-weight:900;letter-spacing:.12em}.svh20-show-content h3{font-size:27px;margin:5px 0 2px;letter-spacing:-.025em}.svh20-show-content p{margin:0;color:#c4cdd1;font-size:13px}.svh20-show-content small{display:block;margin-top:11px;color:#fff;font-weight:700}
.svh20-rotation{background:#070c0f}.svh20-track-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:12px}.svh20-track-card{min-height:190px;border:1px solid var(--line);padding:18px;display:flex;flex-direction:column;justify-content:flex-end;position:relative;background:linear-gradient(145deg,#0c151a,#090f12)}.svh20-track-card:before{content:"";position:absolute;left:0;top:0;width:100%;height:3px;background:linear-gradient(90deg,var(--green),var(--blue));opacity:.8}.svh20-track-number{position:absolute;top:16px;left:17px;font-size:11px;letter-spacing:.12em;color:#6f7b80}.svh20-track-card strong{font-size:15px;line-height:1.25}.svh20-track-card small{color:var(--muted);margin-top:6px}.svh20-track-card.skeleton{opacity:.55}
.svh20-guest{position:relative;min-height:460px;background:radial-gradient(circle at 18% 60%,rgba(0,170,255,.18),transparent 28%),linear-gradient(90deg,#071116,#0a0e11);border-bottom:1px solid var(--line)}.svh20-guest.has-image{background-image:linear-gradient(90deg,rgba(5,9,11,.18),rgba(5,9,11,.92) 62%),var(--svh-guest);background-size:cover;background-position:center}.svh20-guest-overlay{position:absolute;inset:0;background:linear-gradient(180deg,transparent,rgba(5,9,11,.26))}.svh20-guest-inner{position:relative;z-index:2;display:grid;grid-template-columns:1.05fr .95fr;min-height:460px;align-items:center}.svh20-guest-copy{padding:55px 0}.svh20-guest-copy h2{font-size:clamp(55px,7vw,96px);line-height:.9;margin:12px 0;letter-spacing:-.06em}.svh20-guest-copy p{color:#ccd5d9;font-size:16px;margin:0 0 14px}.svh20-guest-copy strong{display:block;font-size:18px;letter-spacing:.06em}.svh20-guest-copy a{display:inline-flex;margin-top:28px;padding:13px 18px;border:1px solid rgba(255,255,255,.38);font-size:12px;font-weight:900;letter-spacing:.1em}.svh20-guest-copy a:hover{border-color:var(--green);color:var(--green)}
.svh20-submit{padding:60px 0;background:#0b1114;border-bottom:1px solid var(--line)}.svh20-submit-inner{display:flex;align-items:center;justify-content:space-between;gap:50px}.svh20-submit-inner>div{max-width:850px}.svh20-submit h2{margin-bottom:8px}.svh20-submit p{color:var(--muted);margin:0}.svh20-submit a{flex:0 0 auto;background:var(--green);color:#071007;font-size:12px;font-weight:900;letter-spacing:.11em;padding:16px 20px;border-radius:6px}
.svh20-footer{background:#05090b;padding:55px 0 100px}.svh20-footer-grid{display:grid;grid-template-columns:1.7fr .7fr .7fr 1fr;gap:55px}.svh20-footer-brand{display:flex;gap:16px;align-items:flex-start}.svh20-footer-brand img{width:62px;height:62px;object-fit:contain}.svh20-footer strong{font-size:13px}.svh20-footer p{font-size:12px;color:var(--muted);margin:8px 0}.svh20-footer-grid>div:not(:first-child){display:flex;flex-direction:column;gap:8px}.svh20-footer-grid a{font-size:12px;color:#b9c4c9}.svh20-footer-grid a:hover{color:var(--green)}.svh20-socials{display:flex!important;flex-direction:row!important;gap:8px!important;margin-top:4px}.svh20-socials a{width:34px;height:34px;border:1px solid var(--line);display:grid;place-items:center;border-radius:50%;font-size:10px;font-weight:900}.svh20-footer-bottom{margin-top:42px;padding-top:20px;border-top:1px solid var(--line);display:flex;justify-content:space-between;color:#76838a;font-size:11px}
.svh20-mini{position:fixed;z-index:9998;left:50%;bottom:18px;transform:translate(-50%,130px);width:min(720px,calc(100% - 28px));height:64px;border:1px solid rgba(255,255,255,.15);background:rgba(6,11,14,.96);backdrop-filter:blur(16px);display:grid;grid-template-columns:44px 42px 1fr auto;gap:12px;align-items:center;padding:10px 14px;box-shadow:0 20px 70px rgba(0,0,0,.45);transition:transform .28s ease}.svh20-mini.is-visible{transform:translate(-50%,0)}.svh20-mini button{width:40px;height:40px;border:0;border-radius:50%;background:var(--green);font-weight:900;cursor:pointer}.svh20-mini img{width:42px;height:42px;object-fit:cover}.svh20-mini>div{min-width:0;display:flex;flex-direction:column}.svh20-mini small{font-size:9px;color:var(--green);font-weight:900;letter-spacing:.1em}.svh20-mini strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:13px}.svh20-mini-live{font-size:10px;font-weight:900;letter-spacing:.12em;color:#fff;border:1px solid rgba(68,221,0,.35);padding:6px 8px}
@media(max-width:1050px){.svh20{--shell:min(100% - 36px,1000px)}.svh20-nav{gap:17px;font-size:12px}.svh20-hero-grid{grid-template-columns:1fr .8fr;gap:38px}.svh20-track-grid{grid-template-columns:repeat(3,1fr)}.svh20-show-grid{grid-template-columns:repeat(2,1fr)}.svh20-show-card{min-height:350px}.svh20-footer-grid{grid-template-columns:1.4fr 1fr 1fr}.svh20-footer-grid>div:last-child{grid-column:2/4}}
@media(max-width:780px){.svh20{--shell:calc(100% - 28px)}.svh20-header{height:70px}.svh20-brand span{display:none}.svh20-menu-toggle{display:block}.svh20-nav{position:absolute;display:none;top:70px;left:14px;right:14px;flex-direction:column;align-items:stretch;gap:0;background:#071014;border:1px solid var(--line);padding:8px;box-shadow:0 24px 60px rgba(0,0,0,.55)}.svh20-nav.is-open{display:flex}.svh20-nav a{padding:13px 14px;border-bottom:1px solid rgba(255,255,255,.06)}.svh20-nav a:first-child:after{display:none}.svh20-hero{min-height:auto}.svh20-hero-grid{display:flex;flex-direction:column;align-items:stretch;gap:36px;min-height:auto;padding:58px 0 42px}.svh20-eyebrow{font-size:10px;line-height:1.8;letter-spacing:.18em}.svh20-hero h1{font-size:clamp(50px,17vw,74px);max-width:90%}.svh20-subtitle{font-size:17px}.svh20-track-meta strong{font-size:17px;max-width:60vw}.svh20-track-meta small{display:none}.svh20-player-actions{align-items:flex-start;flex-direction:column;gap:14px}.svh20-play{width:100%}.svh20-live-card{justify-self:stretch;width:100%;max-width:480px;align-self:center}.svh20-onair-grid{grid-template-columns:1fr}.svh20-onair-card{border-right:0;border-bottom:1px solid var(--line);padding:28px 18px}.svh20-onair-card:last-child{border-bottom:0}.svh20-section{padding:54px 0}.svh20-section-head{align-items:flex-start;flex-direction:column;gap:12px}.svh20-section-head h2{font-size:35px}.svh20-show-grid{grid-template-columns:1fr 1fr;gap:10px}.svh20-show-card{min-height:300px}.svh20-show-content{inset:auto 15px 17px}.svh20-show-content h3{font-size:21px}.svh20-show-content p{font-size:11px}.svh20-track-grid{grid-template-columns:1fr 1fr;gap:9px}.svh20-track-card{min-height:160px}.svh20-guest-inner{grid-template-columns:1fr;min-height:410px}.svh20-guest-spacer{display:none}.svh20-guest.has-image{background-image:linear-gradient(90deg,rgba(5,9,11,.82),rgba(5,9,11,.78)),var(--svh-guest);background-position:center}.svh20-guest-copy{padding:70px 0}.svh20-guest-copy h2{font-size:58px}.svh20-submit-inner{align-items:flex-start;flex-direction:column}.svh20-submit a{width:100%;text-align:center}.svh20-footer{padding-bottom:110px}.svh20-footer-grid{grid-template-columns:1fr 1fr;gap:34px}.svh20-footer-brand{grid-column:1/3}.svh20-footer-grid>div:last-child{grid-column:auto}.svh20-footer-bottom{flex-direction:column;gap:5px}.svh20-mini{height:60px;grid-template-columns:40px 1fr auto}.svh20-mini img{display:none}}
@media(max-width:480px){.svh20-show-grid{grid-template-columns:1fr}.svh20-show-card{min-height:320px}.svh20-track-grid{grid-template-columns:1fr 1fr}.svh20-track-card{padding:14px}.svh20-track-card strong{font-size:13px}.svh20-footer-grid{grid-template-columns:1fr}.svh20-footer-brand{grid-column:auto}.svh20-footer-grid>div:last-child{grid-column:auto}.svh20-now{gap:12px}.svh20-art-wrap{width:64px;height:64px}.svh20-track-meta strong{max-width:62vw}}
@media(prefers-reduced-motion:reduce){.svh20 *{scroll-behavior:auto!important;transition:none!important}}

/* v1.1 dynamic programming refinements */
.svh20-header-empty{height:82px;background:#05090b;border-bottom:1px solid var(--line);pointer-events:none}
.svh20-header-spacer{height:100%}
.svh20-onair-card{grid-template-columns:150px minmax(0,1fr);align-items:center;padding:20px 28px;min-height:178px;gap:24px}
.svh20-onair-image-wrap{width:150px;height:118px;overflow:hidden;background:#0d151a;border:1px solid var(--line)}
.svh20-onair-image-wrap img{width:100%;height:100%;object-fit:cover}
.svh20-onair-copy{min-width:0}.svh20-onair-copy h2{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.svh20-show-grid-dynamic{grid-template-columns:repeat(5,minmax(0,1fr))}
.svh20-show-grid-dynamic .svh20-show-card{min-height:360px;display:block}
.svh20-show-grid-dynamic .svh20-show-card:hover .svh20-show-bg{background:linear-gradient(180deg,rgba(4,8,10,.02) 10%,rgba(4,8,10,.88) 88%)}
.svh20-track-card{min-height:250px;padding:0 14px 16px;overflow:hidden;justify-content:flex-start;background:#091014}
.svh20-track-card:before{z-index:2}
.svh20-track-cover{aspect-ratio:1/1;margin:0 -14px 14px;overflow:hidden;background:#10191e}
.svh20-track-cover img{width:100%;height:100%;object-fit:cover}
.svh20-track-number{top:12px;left:12px;z-index:3;background:rgba(5,9,11,.82);padding:5px 7px;color:#fff;border:1px solid rgba(255,255,255,.12)}
.svh20-track-card strong{margin-top:auto}
.svh20-weekly{background:#05090b}
.svh20-day-tabs{display:grid;grid-template-columns:repeat(7,1fr);gap:8px;margin-bottom:22px}
.svh20-day-tab{border:1px solid var(--line);background:#0a1115;color:#aeb9be;height:48px;font-size:12px;font-weight:900;letter-spacing:.12em;cursor:pointer}
.svh20-day-tab:hover,.svh20-day-tab.is-active{border-color:rgba(68,221,0,.65);color:#071007;background:var(--green)}
.svh20-schedule-day{display:none;border:1px solid var(--line);background:#080e11}.svh20-schedule-day.is-active{display:block}
.svh20-schedule-day-head{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;border-bottom:1px solid var(--line)}
.svh20-schedule-day-head h3{font-size:28px;margin:0}.svh20-schedule-day-head span{font-size:11px;color:var(--green);font-weight:900;letter-spacing:.12em}
.svh20-schedule-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
.svh20-schedule-row{display:grid;grid-template-columns:125px minmax(0,1fr);gap:18px;padding:18px 24px;border-bottom:1px solid rgba(255,255,255,.07)}
.svh20-schedule-row:nth-child(odd){border-right:1px solid rgba(255,255,255,.07)}
.svh20-schedule-row time{font-size:12px;color:var(--blue);font-weight:900;letter-spacing:.04em}.svh20-schedule-row div{min-width:0;display:flex;flex-direction:column}.svh20-schedule-row strong{font-size:15px}.svh20-schedule-row small{color:var(--muted);margin-top:3px}
@media(max-width:1180px){.svh20-show-grid-dynamic{grid-template-columns:repeat(3,1fr)}.svh20-show-grid-dynamic .svh20-show-card{min-height:340px}}
@media(max-width:780px){.svh20-header-empty{height:64px}.svh20-onair-card{grid-template-columns:110px minmax(0,1fr);padding:18px 14px;gap:16px}.svh20-onair-image-wrap{width:110px;height:92px}.svh20-onair-copy h2{font-size:21px}.svh20-show-grid-dynamic{grid-template-columns:1fr 1fr}.svh20-track-card{min-height:220px}.svh20-day-tabs{display:flex;overflow-x:auto;gap:7px;padding-bottom:4px;scrollbar-width:none}.svh20-day-tabs::-webkit-scrollbar{display:none}.svh20-day-tab{flex:0 0 76px}.svh20-schedule-list{grid-template-columns:1fr}.svh20-schedule-row{grid-template-columns:102px minmax(0,1fr);padding:16px 18px;border-right:0!important}.svh20-schedule-day-head{padding:18px}.svh20-schedule-day-head h3{font-size:24px}}
@media(max-width:480px){.svh20-onair-card{grid-template-columns:86px minmax(0,1fr)}.svh20-onair-image-wrap{width:86px;height:76px}.svh20-onair-copy h2{font-size:18px}.svh20-show-grid-dynamic{grid-template-columns:1fr}.svh20-track-card{min-height:200px}.svh20-schedule-row{grid-template-columns:88px minmax(0,1fr);gap:12px}.svh20-schedule-row strong{font-size:14px}}

/* v1.2 visual schedule + editorial news */
.svh20-schedule-row{grid-template-columns:78px 118px minmax(0,1fr);align-items:center;gap:16px;color:inherit;transition:background .18s ease,border-color .18s ease}
.svh20-schedule-row:hover{background:#0c1519}
.svh20-schedule-thumb{width:78px;height:64px;overflow:hidden;background:#10191e;border:1px solid rgba(255,255,255,.08);border-radius:4px}
.svh20-schedule-thumb img{width:100%;height:100%;object-fit:cover}
.svh20-schedule-info{min-width:0;display:flex;flex-direction:column}
.svh20-schedule-info strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.svh20-news{background:#080d10;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.svh20-news-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.svh20-news-card{background:#0a1115;border:1px solid var(--line);min-width:0;overflow:hidden}
.svh20-news-media{display:block;aspect-ratio:16/9;overflow:hidden;background:#10191e}
.svh20-news-media img{width:100%;height:100%;object-fit:cover;transition:transform .28s ease}
.svh20-news-card:hover .svh20-news-media img{transform:scale(1.025)}
.svh20-news-body{padding:22px}
.svh20-news-meta{display:flex;justify-content:space-between;gap:16px;align-items:center;margin-bottom:14px;font-size:10px;font-weight:900;letter-spacing:.11em;text-transform:uppercase}
.svh20-news-meta span{color:var(--green)}.svh20-news-meta time{color:#7f8c92}
.svh20-news-card h3{font-size:23px;line-height:1.12;margin:0 0 10px;letter-spacing:-.025em}
.svh20-news-card h3 a:hover{color:var(--green)}
.svh20-news-card p{font-size:13px;line-height:1.65;color:var(--muted);margin:0 0 18px}
.svh20-news-read{font-size:10px;font-weight:900;letter-spacing:.12em;color:var(--blue)!important}
@media(max-width:900px){.svh20-news-grid{grid-template-columns:1fr 1fr}.svh20-news-card:last-child{grid-column:1/3}.svh20-schedule-row{grid-template-columns:68px 104px minmax(0,1fr)}.svh20-schedule-thumb{width:68px;height:58px}}
@media(max-width:600px){.svh20-news-grid{grid-template-columns:1fr}.svh20-news-card:last-child{grid-column:auto}.svh20-news-card h3{font-size:20px}.svh20-schedule-row{grid-template-columns:62px minmax(0,1fr);gap:12px}.svh20-schedule-thumb{width:62px;height:56px;grid-row:1/3}.svh20-schedule-row time{grid-column:2}.svh20-schedule-info{grid-column:2}.svh20-schedule-info strong{white-space:normal}.svh20-schedule-row{padding:14px}}

/* =========================================================
   SoundVibe Homepage 2.3 — premium hero + visual schedule
   ========================================================= */
.svh20-hero{min-height:560px;isolation:isolate;background:#05090b;overflow:hidden}
.svh20-hero.has-bg{background:#05090b}
.svh20-hero-bg-media{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;z-index:-3}
.svh20-hero-overlay{z-index:-2;background:linear-gradient(90deg,rgba(3,7,9,.98) 0%,rgba(3,7,9,.93) 38%,rgba(3,7,9,.62) 66%,rgba(3,7,9,.34) 100%),linear-gradient(180deg,rgba(5,9,11,.04) 58%,#05090b 100%)}
.svh20-hero-grid{min-height:560px;padding-block:54px;grid-template-columns:minmax(0,1.05fr) minmax(360px,.78fr);gap:64px}
.svh20-hero-copy{max-width:760px}
.svh20-eyebrow{margin-bottom:14px;font-size:11px;letter-spacing:.24em;color:#c8d2d7}
.svh20-hero h1{font-size:clamp(58px,6vw,90px);line-height:.88;max-width:720px;text-wrap:balance}
.svh20-subtitle{margin:17px 0 26px;font-size:18px;color:#b9c5cb}
.svh20-now{max-width:620px;padding:13px 14px;border:1px solid rgba(255,255,255,.1);background:rgba(7,13,16,.72);backdrop-filter:blur(4px);border-radius:12px}
.svh20-art-wrap{width:72px;height:72px;border-radius:9px;border:1px solid rgba(255,255,255,.08)}
.svh20-track-meta strong{font-size:18px;max-width:450px}
.svh20-player-actions{margin-top:20px}
.svh20-play{height:50px;min-width:190px;border-radius:9px}
.svh20-live-card{width:min(430px,100%);aspect-ratio:auto;border-radius:18px;background:linear-gradient(160deg,rgba(16,26,31,.96),rgba(5,10,13,.98));border:1px solid rgba(255,255,255,.13);box-shadow:0 28px 80px rgba(0,0,0,.38)}
.svh20-live-card:after{display:none}
.svh20-live-card-inner{position:relative;inset:auto;padding:18px;display:block}
.svh20-live-topline{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:14px}
.svh20-live-show{min-width:0;text-align:right;display:flex;flex-direction:column}
.svh20-live-show span{font-size:9px;letter-spacing:.15em;color:var(--blue);font-weight:900}
.svh20-live-show strong{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:190px;color:#dfe7ea}
.svh20-live-art-frame{position:relative;aspect-ratio:1/1;border-radius:13px;overflow:hidden;background:#0a1115;border:1px solid rgba(255,255,255,.1)}
.svh20-live-art-frame:after{content:"";position:absolute;inset:0;box-shadow:inset 0 0 0 1px rgba(255,255,255,.04);pointer-events:none}
.svh20-live-art{width:100%;height:100%;margin:0;object-fit:cover;box-shadow:none;border:0}
.svh20-live-footer{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;padding-top:14px}
.svh20-live-footer>div{min-width:0;flex:1}
.svh20-live-footer small{display:block;font-size:9px;color:var(--green);font-weight:900;letter-spacing:.14em;margin-bottom:3px}
.svh20-live-title{border:0;padding:0;font-size:15px;max-width:280px}
.svh20-live-footer time{font-size:10px;color:#829198;white-space:nowrap}

/* Weekly schedule is now a featured content block rather than a table-like list. */
.svh20-weekly{background:radial-gradient(circle at 8% 0%,rgba(0,170,255,.08),transparent 30%),radial-gradient(circle at 92% 100%,rgba(68,221,0,.06),transparent 32%),#060b0e}
.svh20-weekly .svh20-section-head{margin-bottom:24px}
.svh20-day-tabs{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px;margin-bottom:16px}
.svh20-day-tab{min-height:44px;border-radius:10px;border:1px solid rgba(255,255,255,.11);background:#0a1216;color:#91a0a7;font-size:11px;font-weight:900;letter-spacing:.12em;text-transform:uppercase;cursor:pointer;transition:background .18s ease,border-color .18s ease,color .18s ease,transform .18s ease}
.svh20-day-tab:hover{border-color:rgba(0,170,255,.45);color:#fff;transform:translateY(-1px)}
.svh20-day-tab.is-active{background:linear-gradient(90deg,var(--blue),var(--green));border-color:transparent;color:#071007;box-shadow:0 8px 24px rgba(0,170,255,.12)}
.svh20-schedule-day{border:1px solid rgba(255,255,255,.11);border-radius:16px;background:rgba(7,13,16,.88);overflow:hidden}
.svh20-schedule-day-head{padding:20px 22px;background:linear-gradient(90deg,rgba(0,170,255,.06),rgba(68,221,0,.035));border-bottom:1px solid rgba(255,255,255,.08)}
.svh20-schedule-day-head h3{font-size:30px;letter-spacing:-.03em}
.svh20-schedule-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding:14px}
.svh20-schedule-row,.svh20-schedule-row:nth-child(odd){display:grid;grid-template-columns:96px minmax(0,1fr);align-items:center;gap:14px;min-height:120px;padding:12px;border:1px solid rgba(255,255,255,.08);border-radius:12px;background:linear-gradient(145deg,#0b1418,#081014);color:inherit;transition:transform .18s ease,border-color .18s ease,background .18s ease;overflow:hidden}
.svh20-schedule-row:hover{transform:translateY(-2px);border-color:rgba(0,170,255,.32);background:#0c161b}
.svh20-schedule-row.is-live{border-color:rgba(68,221,0,.62);box-shadow:0 0 0 1px rgba(68,221,0,.08),0 12px 30px rgba(0,0,0,.16)}
.svh20-schedule-thumb{width:96px;height:96px;border-radius:10px;border:1px solid rgba(255,255,255,.09);overflow:hidden;background:#10191e}
.svh20-schedule-thumb img{width:100%;height:100%;object-fit:cover}
.svh20-schedule-card-copy{min-width:0;display:flex;flex-direction:column;gap:8px}
.svh20-schedule-timebar{display:flex;align-items:center;justify-content:space-between;gap:8px}
.svh20-schedule-timebar time{font-size:10px;color:var(--blue);font-weight:900;letter-spacing:.04em}
.svh20-schedule-timebar span{display:inline-flex;align-items:center;padding:4px 6px;border-radius:99px;background:rgba(68,221,0,.14);color:var(--green);font-size:8px;font-weight:900;letter-spacing:.12em}
.svh20-schedule-info{min-width:0;display:flex;flex-direction:column}
.svh20-schedule-info strong{font-size:15px;line-height:1.2;white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.svh20-schedule-info small{font-size:11px;color:var(--muted);margin-top:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

.svh20-guest-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:28px}
.svh20-guest-actions a{margin-top:0}
.svh20-guest-actions a.secondary{background:rgba(0,0,0,.18);border-color:rgba(0,170,255,.42);color:#dce7ec}
.svh20-guest-actions a.secondary:hover{border-color:var(--blue);color:var(--blue)}

@media(max-width:1180px){
  .svh20-hero-grid{grid-template-columns:minmax(0,1fr) 380px;gap:38px}
  .svh20-schedule-list{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:780px){
  .svh20-hero-grid{padding:42px 0 34px;gap:30px}
  .svh20-hero h1{font-size:clamp(50px,16vw,72px);max-width:100%}
  .svh20-now{max-width:none}
  .svh20-live-card{max-width:390px;margin-inline:auto}
  .svh20-live-show strong{max-width:150px}
  .svh20-day-tabs{display:flex;overflow-x:auto;gap:7px;padding-bottom:4px;scrollbar-width:none}
  .svh20-day-tabs::-webkit-scrollbar{display:none}
  .svh20-day-tab{flex:0 0 78px;min-height:42px}
  .svh20-schedule-list{grid-template-columns:1fr 1fr;padding:10px;gap:10px}
  .svh20-schedule-row,.svh20-schedule-row:nth-child(odd){grid-template-columns:76px minmax(0,1fr);min-height:100px;padding:10px;gap:11px}
  .svh20-schedule-thumb{width:76px;height:76px}
  .svh20-schedule-day-head{padding:17px 16px}
  .svh20-schedule-day-head h3{font-size:25px}
}
@media(max-width:600px){
  .svh20-hero-bg-media{object-position:64% center}
  .svh20-hero-overlay{background:linear-gradient(180deg,rgba(3,7,9,.72) 0%,rgba(3,7,9,.94) 47%,#05090b 100%)}
  .svh20-live-card{width:100%;max-width:340px}
  .svh20-live-card-inner{padding:13px}
  .svh20-live-footer time{display:none}
  .svh20-schedule-list{grid-template-columns:1fr}
  .svh20-schedule-row,.svh20-schedule-row:nth-child(odd){grid-template-columns:88px minmax(0,1fr);min-height:112px;padding:11px}
  .svh20-schedule-thumb{width:88px;height:88px}
  .svh20-schedule-info strong{font-size:15px}
}


/* =========================================================
   SoundVibe Homepage 2.4 — final polish before PageSpeed
   ========================================================= */
/* Hero: stronger first contact, less expensive rendering. */
.svh20-hero{min-height:535px}
.svh20-hero-grid{min-height:535px;padding-block:46px;grid-template-columns:minmax(0,1.08fr) minmax(350px,.72fr);gap:48px}
.svh20-hero-copy{max-width:790px}
.svh20-hero h1{font-size:clamp(60px,6.15vw,94px);line-height:.87;letter-spacing:-.058em}
.svh20-subtitle{margin:15px 0 24px}
.svh20-now{max-width:650px;padding:14px 15px;background:rgba(7,13,16,.9);backdrop-filter:none;-webkit-backdrop-filter:none;border-color:rgba(255,255,255,.12)}
.svh20-track-meta span{font-size:10px;letter-spacing:.15em}
.svh20-track-meta strong{font-size:19px}
.svh20-player-actions{margin-top:18px}
.svh20-play{height:54px;min-width:215px;padding-inline:24px;border-radius:10px;font-size:12px;box-shadow:0 10px 28px rgba(68,221,0,.08)}
.svh20-live-card{width:min(405px,100%);border-radius:16px;box-shadow:0 22px 60px rgba(0,0,0,.32)}
.svh20-live-card-inner{padding:16px}
.svh20-live-topline{margin-bottom:12px}
.svh20-live-art-frame{border-radius:11px}
.svh20-live-footer{padding-top:12px}

/* Weekly Schedule: larger, calmer cards that read like a real programme guide. */
.svh20-weekly .svh20-section-head{margin-bottom:26px}
.svh20-schedule-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;padding:16px}
.svh20-schedule-row,.svh20-schedule-row:nth-child(odd){grid-template-columns:116px minmax(0,1fr);min-height:142px;padding:13px;gap:16px;border-radius:13px}
.svh20-schedule-thumb{width:116px;height:116px;border-radius:11px}
.svh20-schedule-card-copy{gap:10px}
.svh20-schedule-timebar time{font-size:11px}
.svh20-schedule-timebar span{font-size:8px;padding:4px 7px}
.svh20-schedule-info strong{font-size:17px;line-height:1.18}
.svh20-schedule-info small{font-size:12px;margin-top:5px}
.svh20-schedule-day-head{padding:22px 24px}
.svh20-schedule-day-head h3{font-size:31px}

/* Guest Mix is dynamic; keep the artwork as the dominant visual. */
.svh20-guest{background-color:#05090b;background-size:cover;background-position:center}
.svh20-guest.has-image{background-position:center}
.svh20-guest-copy h2{max-width:760px}


@media(max-width:1180px){
  .svh20-hero-grid{grid-template-columns:minmax(0,1fr) 360px;gap:34px}
  .svh20-schedule-row,.svh20-schedule-row:nth-child(odd){grid-template-columns:96px minmax(0,1fr);min-height:122px}
  .svh20-schedule-thumb{width:96px;height:96px}
}
@media(max-width:780px){
  .svh20-hero-grid{padding:38px 0 32px;gap:28px}
  .svh20-hero h1{font-size:clamp(50px,16vw,72px)}
  .svh20-play{width:100%;min-width:0}
  .svh20-live-card{max-width:370px}
  .svh20-schedule-list{grid-template-columns:1fr;padding:11px;gap:10px}
  .svh20-schedule-row,.svh20-schedule-row:nth-child(odd){grid-template-columns:102px minmax(0,1fr);min-height:126px;padding:11px}
  .svh20-schedule-thumb{width:102px;height:102px}
  .svh20-schedule-info strong{font-size:16px}
}
@media(max-width:480px){
  .svh20-hero-grid{padding-top:34px}
  .svh20-now{padding:11px 12px}
  .svh20-live-card{max-width:330px}
  .svh20-schedule-row,.svh20-schedule-row:nth-child(odd){grid-template-columns:88px minmax(0,1fr);min-height:112px}
  .svh20-schedule-thumb{width:88px;height:88px}
  .svh20-schedule-info strong{font-size:15px}
}

/* v1.5 performance refinements: responsive media instead of full-size CSS backgrounds */
.svh20-show-card{background:linear-gradient(155deg,#121d23,#071014 70%)}
.svh20-show-card.has-image{background-image:none}
.svh20-show-media{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;z-index:0}
.svh20-show-bg{z-index:1}
.svh20-show-index,.svh20-show-content{z-index:2}
.svh20-news-image{width:100%;height:100%;object-fit:cover}
.svh20-onair-image,.svh20-next-image{width:100%;height:100%;object-fit:cover}
.svh20-schedule-image{width:100%;height:100%;object-fit:cover}
.svh20-footer-logo{width:72px;height:72px;object-fit:contain}
.svh20-guest{overflow:hidden}
.svh20-guest.has-image{background-image:none;background:#071116}
.svh20-guest-media{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;z-index:0}
.svh20-guest.has-image:after{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,rgba(5,9,11,.18),rgba(5,9,11,.92) 62%);pointer-events:none}
.svh20-guest-overlay{z-index:2}
.svh20-guest-inner{z-index:3}
@media(max-width:780px){
  .svh20-guest.has-image:after{background:linear-gradient(90deg,rgba(5,9,11,.82),rgba(5,9,11,.78))}
  .svh20-guest-media{object-position:center}
}

/* 2.6 Final: conservative rendering. No content-visibility deferral; live hero metadata/artwork is allowed to paint immediately for stable mobile LCP and Speed Index. */
