/*
Theme Name: WLIT.FM
Author: NEO for Mainstream Entertainment Group
Description: WLIT.FM site theme (staging build from approved mockups, 2026-09-27)
Version: 0.1.0
*/

/* WLIT.FM homepage v3. Mockup C's yellow-and-black energy + B's news block + WLIT VIP.
   Yellow + black = the station. Gold = VIP only (brand rule). Red = LIVE only. */
@font-face{font-family:Danos;src:url(assets/Danos-ExtraBoldItalic.ttf);font-weight:800;font-style:italic}
@font-face{font-family:Montserrat;src:url(assets/Montserrat-Medium.ttf);font-weight:500}
@font-face{font-family:Montserrat;src:url(assets/Montserrat-SemiBold.ttf);font-weight:600}
@font-face{font-family:Montserrat;src:url(assets/Montserrat-Bold.ttf);font-weight:700}
@font-face{font-family:Montserrat;src:url(assets/Montserrat-ExtraBold.ttf);font-weight:800}
:root{--y:#FFE14D;--k:#0D0D0D;--gold:#C9A24B;--gold2:#E8C872;--red:#FD071E;--teal:#1AB2C8}
*{box-sizing:border-box;margin:0;padding:0}
body{background:var(--y);color:var(--k);font-family:Montserrat,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased;padding-bottom:72px}
a{color:inherit;text-decoration:none}img{display:block;max-width:100%}
.wrap{max-width:1280px;margin:0 auto;padding:0 40px}
.up{text-transform:uppercase;font-weight:800;letter-spacing:-.04em}
.btn{display:inline-flex;align-items:center;gap:10px;background:var(--k);color:var(--y);padding:15px 24px;font-weight:800;font-size:15px;text-transform:uppercase;border-radius:4px;border:3px solid var(--k)}
.btn.line{background:transparent;color:var(--k)}
.btn.y{background:var(--y);color:var(--k);border-color:var(--y)}
.btn.gold{background:var(--gold);color:var(--k);border-color:var(--gold)}
.kick{font-size:12px;font-weight:800;letter-spacing:.16em;text-transform:uppercase}
.onair{display:inline-flex;align-items:center;gap:6px;background:var(--red);color:#fff;font-size:11px;font-weight:800;padding:5px 9px;letter-spacing:.06em}
.onair i{width:6px;height:6px;border-radius:50%;background:#fff;animation:bl 1.2s infinite}@keyframes bl{50%{opacity:.2}}

/* nav */
.nav{display:flex;align-items:center;justify-content:space-between;height:88px}
.logo{display:flex;align-items:center;gap:10px;background:var(--k);padding:6px 16px 6px 6px;border-radius:40px;transform:rotate(-2deg)}
.logo .b{width:48px;height:48px;border-radius:50%}.logo .w{height:28px}
.nav ul{display:flex;gap:26px;list-style:none;font-weight:800;font-size:14px;text-transform:uppercase}
.nav ul .v{color:#8a6a1c}

/* hero */
.hero{padding:26px 0 34px}
h1{font-size:156px;line-height:.82;letter-spacing:-.06em}
h1 em{font-style:normal;-webkit-text-stroke:3px var(--k);color:transparent}
.hrow{display:flex;justify-content:space-between;align-items:end;gap:40px;margin-top:30px}
.hrow p{font-size:20px;max-width:560px;font-weight:600;line-height:1.45}
.np{display:flex;align-items:center;gap:14px;background:var(--k);color:#fff;border-radius:6px;padding:12px 14px 12px 12px;min-width:430px}
.np .play{width:58px;height:58px;border-radius:50%;background:var(--y);display:grid;place-items:center;flex:none}
.np .play svg{width:20px;margin-left:3px}
.np .cv{width:58px;height:58px;border-radius:4px;background:url(assets/cover_default.jpg) center/cover;flex:none}
.np small{display:block;font-size:10px;font-weight:800;letter-spacing:.14em;color:var(--y)}
.np b{display:block;font-size:17px;text-transform:uppercase;letter-spacing:-.02em}
.np span{font-size:12px;color:#aaa}
.hbtns{display:flex;gap:12px;margin-top:14px;justify-content:end}


/* v4 hero: the lighthouse is the hero image, its beam sweeps across the yellow */
.hero4{position:relative;overflow:hidden;border-bottom:3px solid var(--k)}
.hero4 .beam{position:absolute;right:calc(50% - 430px);top:120px;width:1800px;height:1800px;margin:-900px -900px 0 0;
 background:conic-gradient(from 250deg,rgba(255,255,255,0) 0deg,rgba(255,255,255,.55) 10deg,rgba(255,255,255,0) 22deg,rgba(255,255,255,0) 180deg,rgba(255,255,255,.35) 190deg,rgba(255,255,255,0) 202deg);
 animation:sweep 9s linear infinite;pointer-events:none}
@keyframes sweep{to{transform:rotate(360deg)}}
.h4{position:relative;display:grid;grid-template-columns:1.25fr .75fr;gap:30px;align-items:center;padding-top:18px;padding-bottom:46px}
.hero4 h1{font-size:132px;margin:18px 0 18px}
.hero4 .sub{font-size:20px;font-weight:600;line-height:1.45;max-width:560px}
.player{display:flex;align-items:center;gap:20px;background:var(--k);color:#fff;border-radius:999px;padding:12px 30px 12px 12px;margin-top:28px;max-width:620px;box-shadow:8px 8px 0 rgba(0,0,0,.18)}
.bigplay{width:92px;height:92px;border-radius:50%;background:var(--k);border:4px solid var(--y);display:grid;place-items:center;flex:none;box-shadow:0 0 0 0 rgba(255,225,77,.7);animation:ring 2s infinite}
.bigplay svg{width:30px;margin-left:6px}
@keyframes ring{70%{box-shadow:0 0 0 16px rgba(255,225,77,0)}100%{box-shadow:0 0 0 0 rgba(255,225,77,0)}}
.pi{flex:1;min-width:0}
.pi small{display:block;font-size:11px;font-weight:800;letter-spacing:.14em;color:var(--red)}
.pi b{display:block;font-size:24px;text-transform:uppercase;letter-spacing:-.03em;margin:2px 0}
.pi .trk{display:block;font-size:13px;color:#ddd}
.pi .nx{display:block;font-size:12px;color:var(--y);font-weight:700;margin-top:4px}
.eqz.big{height:34px;gap:4px}.eqz.big i{width:5px}
.sec{display:flex;gap:14px;align-items:center;margin-top:20px}
.vipchip{display:inline-flex;gap:8px;align-items:center;background:var(--k);color:#ddd;border-radius:999px;padding:13px 20px;font-size:14px;font-weight:700;border:2px solid var(--gold)}
.vipchip b{color:var(--gold2)}
.hr{display:flex;flex-direction:column;align-items:center}
.arch{position:relative;width:380px;height:520px;border-radius:190px 190px 24px 24px;border:6px solid var(--k);overflow:hidden;
 background:url(assets/keyart.jpg) 50% 30%/auto 118% no-repeat;box-shadow:12px 12px 0 var(--k)}
.arch .glow{position:absolute;left:50%;top:21%;width:90px;height:90px;margin-left:-45px;border-radius:50%;background:radial-gradient(rgba(255,225,77,.9),rgba(255,225,77,0) 70%);animation:gl 3s ease-in-out infinite}
@keyframes gl{50%{opacity:.35}}
.archcap{margin-top:22px;font-size:12px;font-weight:800;letter-spacing:.2em;text-transform:uppercase;background:var(--k);color:var(--y);padding:7px 14px;transform:rotate(-2deg)}
@media (max-width:760px){
 .h4{grid-template-columns:1fr;padding-top:6px}
 .hero4 .hr{position:absolute;right:18px;top:0}.arch{width:100px;height:136px;border-radius:50px 50px 10px 10px;border-width:4px;box-shadow:5px 5px 0 var(--k)}.arch .glow{width:40px;height:40px;margin-left:-20px}.archcap{display:none}
 .hero4 .beam{right:68px;top:40px}
 .hero4 h1{font-size:56px;margin:12px 0}
 .hero4 .sub{font-size:15px}
 .player{margin-top:18px}
 .player{border-radius:18px;padding:12px;gap:14px}.bigplay{width:70px;height:70px}.pi b{font-size:18px}.eqz.big{display:none}
 .sec{flex-wrap:wrap}
}


/* v5: no lighthouse image. Yellow / black / white, red used the way the logo uses it: as a hard drop shadow */
.h4{grid-template-columns:1fr;padding-top:26px}
.hero4 h1{font-size:170px;line-height:.84;text-shadow:7px 7px 0 var(--red)}
.hero4 h1 em{text-shadow:none;-webkit-text-stroke:3px var(--k);filter:drop-shadow(6px 6px 0 var(--red))}
.hero4 .l{display:grid;grid-template-columns:1fr 1fr;column-gap:40px;align-items:end}
.hero4 .l>.onair,.hero4 .l>h1{grid-column:1/-1}
.hero4 .l>.onair{justify-self:start}
.hero4 .sub{grid-column:1;align-self:start}
.player{grid-column:2;grid-row:3 / span 2;margin-top:0;box-shadow:8px 8px 0 var(--red)}
.sec{grid-column:1;grid-row:4}
.btn{box-shadow:4px 4px 0 var(--red)}
.btn.line{box-shadow:4px 4px 0 var(--red);background:#fff}
.logo{box-shadow:4px 4px 0 var(--red)}
.sh h2,.app h2{text-shadow:4px 4px 0 var(--red)}
.app h2 em{text-shadow:none;filter:drop-shadow(4px 4px 0 var(--red))}
.show-card .s{text-shadow:3px 3px 0 rgba(0,0,0,.35)}
.lead h3{text-shadow:3px 3px 0 var(--red)}
.box.w{box-shadow:8px 8px 0 var(--red)}
.events{box-shadow:8px 8px 0 var(--red)}
.card img{box-shadow:5px 5px 0 var(--red)}
.bar{border-top:3px solid var(--red)}
.vip h2{text-shadow:5px 5px 0 var(--red)}
@media (max-width:760px){
 .hero4 .l{grid-template-columns:1fr}
 .player,.sec,.hero4 .sub{grid-column:1;grid-row:auto}
 .hero4 h1{font-size:64px;text-shadow:4px 4px 0 var(--red)}
 .player{margin-top:18px}
}


.most{padding-bottom:30px}
.mpgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.mp{display:flex;align-items:center;gap:16px;background:#fff;border:3px solid var(--k);border-radius:6px;padding:12px 16px 12px 12px;box-shadow:6px 6px 0 var(--red)}
.mp .rk{font-size:54px;font-weight:800;letter-spacing:-.06em;width:44px;text-align:center;line-height:1}
.mp img{width:72px;height:72px;border-radius:4px;object-fit:cover;flex:none}
.mp .tt{flex:1;min-width:0}.mp .tt b{display:block;font-size:17px;font-weight:800;text-transform:uppercase;letter-spacing:-.02em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mp .tt span{display:block;font-size:13px;color:#555;margin-top:3px}
.mp .pl{width:38px;height:38px;border-radius:50%;background:var(--k);color:var(--y);display:grid;place-items:center;font-size:13px;flex:none}
.mpnote{margin-top:16px;font-size:13px;font-weight:600;opacity:.65}
@media (max-width:760px){.mpgrid{grid-template-columns:1fr;gap:12px}.mp .rk{font-size:40px;width:34px}.mp img{width:56px;height:56px}}


.boli{background:var(--k);color:#fff;border-bottom:3px solid var(--k)}
.boli .wrap{display:flex;align-items:center;gap:40px;padding-top:34px;padding-bottom:34px}
.boli img{width:230px;flex:none}
.boli .bt{flex:1}
.boli .kick{color:var(--y)}
.boli h2{font-size:40px;line-height:.95;margin:8px 0;text-shadow:4px 4px 0 var(--red)}
.boli h2 span{color:var(--y)}
.boli p{font-size:14px;color:#bbb;font-weight:600}
@media (max-width:760px){.boli .wrap{flex-direction:column;align-items:start;gap:18px}.boli img{width:180px}.boli h2{font-size:28px}}

/* DJ / show wall with Victor's live NEXT SHOW */
.cast{display:grid;grid-template-columns:repeat(5,1fr);border-top:3px solid var(--k);border-bottom:3px solid var(--k);background:var(--k);gap:3px}
.show-card{position:relative;height:320px;color:#fff;display:flex;flex-direction:column;justify-content:end;padding:18px;overflow:hidden;background:var(--c)}
.show-card:after{content:"";position:absolute;left:50%;top:44px;width:132px;height:166px;margin-left:-66px;border-radius:66px 66px 16px 16px;background:rgba(0,0,0,.22)}
.show-card .ph{position:absolute;left:50%;top:44px;margin-left:-66px;width:132px;font-size:10px;text-align:center;padding-top:72px;font-weight:700;opacity:.55;z-index:2;letter-spacing:.1em}
.show-card>*{position:relative;z-index:2}
.show-card .s{font-size:22px;line-height:1;font-weight:800;text-transform:uppercase;letter-spacing:-.03em}
.show-card .n{font-weight:700;font-size:13px;margin-top:6px}
.next-show{margin-top:8px;display:flex;gap:6px;align-items:baseline;font-size:12px;font-weight:800}
.next-show__label{opacity:.7;font-size:10px;letter-spacing:.1em}
.show-card.is-on-air{box-shadow:inset 0 0 0 4px var(--red)}
.show-card.is-on-air .next-show__label{display:none}
.show-card.is-on-air .next-show__time{background:var(--red);padding:3px 7px}

/* news & events (B, restyled) */
section{padding:70px 0}
.sh{display:flex;justify-content:space-between;align-items:end;margin-bottom:26px;border-bottom:3px solid var(--k);padding-bottom:14px}
.sh h2{font-size:64px;line-height:.88}
.sh a{font-weight:800;text-transform:uppercase;font-size:14px}
.news{display:grid;grid-template-columns:1.55fr 1fr;gap:24px}
.lead{position:relative;min-height:460px;border-radius:6px;overflow:hidden;display:flex;align-items:end;background:#000;color:#fff}
.lead img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.lead:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(0,0,0,.9) 10%,rgba(0,0,0,0) 60%)}
.lead .cap{position:relative;z-index:1;padding:28px}
.tag{display:inline-block;background:var(--y);color:var(--k);font-size:11px;font-weight:800;letter-spacing:.1em;padding:5px 9px;text-transform:uppercase}
.lead h3{font-size:36px;line-height:1.02;margin:12px 0 8px;text-transform:uppercase;letter-spacing:-.03em;font-weight:800}
.lead p{font-size:14px;opacity:.8}
.events{background:var(--k);color:#fff;border-radius:6px;padding:26px}
.events .kick{color:var(--y);margin-bottom:6px}
.ev{display:flex;gap:14px;align-items:center;padding:14px 0;border-bottom:1px solid #2a2a2a}
.ev .d{width:54px;height:58px;background:var(--y);color:var(--k);display:grid;place-items:center;text-align:center;flex:none;border-radius:4px}
.ev .d small{display:block;font-size:10px;font-weight:800}.ev .d b{font-size:22px;line-height:1}
.ev h5{font-size:15px;font-weight:800}.ev p{font-size:12px;color:#999;margin:2px 0 3px}
.ev a{font-size:12px;font-weight:800;color:var(--y)}
.row4{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;margin-top:30px}
.card img{width:100%;aspect-ratio:3/2;object-fit:cover;border-radius:6px;border:3px solid var(--k)}
.card .m{font-size:11px;font-weight:800;letter-spacing:.12em;margin:12px 0 4px;text-transform:uppercase;opacity:.65}
.card h3{font-size:17px;line-height:1.25;font-weight:800}

/* VIP: black + gold, its own sub-brand */
.vip{background:var(--k);color:#fff;padding:84px 0;position:relative;overflow:hidden}
.vip:before{content:"VIP";position:absolute;right:-30px;top:-60px;font-family:Danos,Montserrat;font-style:italic;font-weight:800;font-size:420px;color:rgba(201,162,75,.08);line-height:1}
.vip .wrap{position:relative}
.vip .g{display:grid;grid-template-columns:1.05fr .95fr;gap:60px;align-items:center}
.vip .kick{color:var(--gold2)}
.vip h2{font-size:84px;line-height:.86;margin:14px 0 18px}
.vip h2 span{color:var(--gold2)}
.vip p.lede{font-size:19px;line-height:1.5;color:#cfcfcf;max-width:540px}
.vip p.lede b{color:#fff}
.price{display:flex;align-items:end;gap:14px;margin:28px 0}
.price b{font-size:92px;line-height:.8;font-weight:800;letter-spacing:-.05em;color:var(--gold2)}
.price span{font-size:15px;font-weight:700;color:#bbb;line-height:1.3}
.vip .ctas{display:flex;gap:12px;align-items:center}
.vip .soon{font-size:13px;color:#999;font-weight:600}
.perks{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.perk{border:1px solid rgba(201,162,75,.45);border-radius:10px;padding:20px;background:linear-gradient(160deg,rgba(201,162,75,.14),rgba(201,162,75,0))}
.perk b{display:block;font-size:30px;font-weight:800;letter-spacing:-.03em;color:var(--gold2);line-height:1}
.perk span{display:block;font-size:14px;font-weight:600;margin-top:8px;color:#ddd}
.card3d{grid-column:1/-1;display:flex;align-items:center;gap:18px;border-radius:14px;padding:18px 20px;background:linear-gradient(120deg,#2b210a,#8a6a1c 60%,#C9A24B);color:#fff}
.card3d img{width:54px;height:54px;border-radius:50%}
.card3d .t{flex:1}.card3d .t small{display:block;font-size:10px;font-weight:800;letter-spacing:.16em;opacity:.8}.card3d .t b{font-size:20px}
.qr{width:56px;height:56px;background:#fff;border-radius:6px;padding:5px;display:grid;grid-template-columns:repeat(7,1fr);gap:1px}
.qr i{background:#111}.qr i:nth-child(3n){background:#fff}.qr i:nth-child(5n+1){background:#111}
.partners{margin-top:40px;border-top:1px solid #2a2a2a;padding-top:26px;display:flex;justify-content:space-between;align-items:center;gap:30px}
.partners p{font-size:15px;color:#ccc;max-width:720px;line-height:1.5}.partners p b{color:#fff}

/* app */
.app{padding:80px 0;overflow:hidden}
.app .wrap{display:grid;grid-template-columns:.95fr 1.05fr;gap:40px;align-items:center}
.app h2{font-size:84px;line-height:.86}
.app h2 em{font-style:normal;-webkit-text-stroke:3px var(--k);color:transparent}
.app ul{list-style:none;margin:24px 0 28px;display:grid;gap:12px}
.app li{font-size:17px;font-weight:600;padding-left:22px;position:relative}.app li:before{content:"";position:absolute;left:0;top:7px;width:10px;height:10px;background:var(--k)}
.phones{position:relative;height:600px}
.phone{position:absolute;width:262px;height:548px;border-radius:44px;background:#000;padding:9px;box-shadow:0 30px 60px rgba(0,0,0,.35)}
.phone .scr{width:100%;height:100%;border-radius:36px;overflow:hidden}.phone img{width:100%;height:100%;object-fit:cover;transform:scale(1.03)}
.p1{left:0;top:50px;transform:rotate(-7deg)}.p2{left:190px;top:0;z-index:2}.p3{left:380px;top:50px;transform:rotate(7deg)}

/* business + list */
.biz{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.box{background:var(--k);color:#fff;border-radius:6px;padding:30px;display:flex;flex-direction:column}
.box h3{font-size:34px;line-height:.92;margin:10px 0 12px}
.box p{font-size:14px;line-height:1.5;color:#bbb;flex:1}
.box .kick{color:var(--y)}
.box.w{background:#fff;color:var(--k);border:3px solid var(--k)}.box.w p{color:#444}.box.w .kick{color:var(--k);opacity:.6}
.field{display:flex;margin-top:16px;border:3px solid var(--k);border-radius:4px;overflow:hidden}
.field span{flex:1;padding:12px;color:#888;font-size:14px}.field b{background:var(--k);color:var(--y);padding:12px 18px;font-size:14px;text-transform:uppercase}
.box .go{margin-top:16px;font-weight:800;color:var(--y);text-transform:uppercase;font-size:14px}
.stub{background:#3b1e84}

footer{background:var(--k);color:#999;padding:44px 0;font-size:13px}
footer .wrap{display:flex;justify-content:space-between;align-items:center;gap:20px}
footer .cols{display:flex;gap:24px;font-weight:700;color:#ddd;text-transform:uppercase;font-size:12px}

/* sticky player */
.bar{position:fixed;left:0;right:0;bottom:0;height:72px;background:var(--k);color:#fff;z-index:30;border-top:3px solid var(--y)}
.bar .wrap{display:flex;align-items:center;gap:16px;height:100%}
.bar .pb{width:44px;height:44px;border-radius:50%;background:var(--y);display:grid;place-items:center;flex:none}.bar .pb svg{width:15px;margin-left:3px}
.bar b{display:block;font-size:14px;text-transform:uppercase}.bar span{font-size:12px;color:#aaa}
.bar .sp{flex:1}.bar .r{display:flex;gap:18px;align-items:center;font-size:12px;font-weight:800;text-transform:uppercase}
.bar .r .v{color:var(--gold2)}
.eqz{display:flex;gap:3px;align-items:end;height:18px}.eqz i{width:3px;background:var(--y);animation:eq 1s infinite}.eqz i:nth-child(2){animation-delay:.2s}.eqz i:nth-child(3){animation-delay:.4s}
@keyframes eq{0%,100%{height:5px}50%{height:18px}}
.label{position:fixed;top:0;left:0;z-index:99;background:#FFD166;color:#000;font-weight:800;font-size:11px;padding:4px 10px;border-bottom-right-radius:6px}

@media (max-width:760px){
 .wrap{padding:0 18px}
 .nav{height:72px}.nav ul,.nav .btn{display:none}.logo .w{height:22px}.logo .b{width:38px;height:38px}
 h1{font-size:64px;letter-spacing:-.05em}h1 em{-webkit-text-stroke:2px var(--k)}
 .hrow{flex-direction:column;align-items:stretch;gap:18px}.hrow p{font-size:16px}
 .np{min-width:0}.hbtns{justify-content:start;flex-wrap:wrap}
 .cast{grid-template-columns:1fr 1fr}.show-card{height:230px;padding:14px}.show-card:after,.show-card .ph{top:26px;width:96px;margin-left:-48px;height:120px}.show-card .ph{padding-top:52px}.show-card .s{font-size:17px}
 section,.vip,.app{padding:50px 0}
 .sh{flex-direction:column;align-items:start;gap:8px}.sh h2{font-size:40px}
 .news,.vip .g,.app .wrap,.biz{grid-template-columns:1fr}
 .lead{min-height:340px}.lead h3{font-size:24px}
 .row4{grid-template-columns:1fr 1fr;gap:14px}
 .vip h2{font-size:52px}.price b{font-size:68px}.vip:before{font-size:220px}
 .vip .ctas{flex-wrap:wrap}.partners{flex-direction:column;align-items:start}
 .perk b{font-size:24px}
 .app h2{font-size:52px}.phones{height:440px}
 .phone{width:190px;height:398px;border-radius:32px;padding:7px}.phone .scr{border-radius:26px}
 .p1{left:-40px;top:36px}.p2{left:calc(50% - 95px)}.p3{left:auto;right:-40px;top:36px}
 footer .wrap{flex-direction:column;align-items:start}footer .cols{flex-wrap:wrap}
 .bar .r{display:none}
}

/* 2026-09-28 Cory: header = wordmark only (badge already contains the name) */
.nav .logo{background:none;padding:0;border-radius:0;transform:none;box-shadow:none}
.nav .logo .b{display:none}
.nav .logo .w{height:46px;filter:drop-shadow(4px 4px 0 var(--k))}
@media (max-width:760px){.nav .logo .w{height:32px}}

/* 2026-09-28 Cory: footer = G breakout badge + H FourLeaf proof + link columns; no giant tagline */
footer.fx{background:var(--k);color:#fff;position:relative;margin-top:120px;padding:132px 0 0;border-top:4px solid var(--red);font-size:14px}
footer.fx .fbadge{position:absolute;left:50%;top:-104px;width:208px;height:208px;margin-left:-104px;border-radius:50%;border:6px solid var(--y);box-shadow:8px 8px 0 var(--red)}
footer.fx .fbol{display:flex;flex-direction:column;align-items:center;gap:6px;padding-bottom:34px;border-bottom:1px solid #2a2a2a}
footer.fx .fbol img{width:190px}
footer.fx .fbol small{font-size:11px;font-weight:800;letter-spacing:.16em;color:#bbb;text-align:center}
footer.fx .fcols{display:grid;grid-template-columns:repeat(4,1fr);gap:30px;padding:38px 0}
footer.fx h5{font-size:12px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;margin:0 0 14px;color:var(--y)}
footer.fx .fcols a{display:block;font-size:15px;font-weight:600;margin-bottom:9px;color:#ddd}
footer.fx .fcols a:hover{color:var(--y)}
footer.fx .fcols a.v{color:var(--gold2)}
footer.fx .soc{display:flex;gap:10px}
footer.fx .soc a{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;font-weight:800;font-size:12px;background:var(--y);color:var(--k);margin:0}
footer.fx .legal{font-size:12px;font-weight:600;color:#888;border-top:1px solid #2a2a2a;padding:18px 0 26px;display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap}
footer.fx .legal a{color:#888}
@media (max-width:760px){footer.fx{margin-top:90px;padding-top:98px}footer.fx .fbadge{width:150px;height:150px;margin-left:-75px;top:-75px}footer.fx .fcols{grid-template-columns:1fr 1fr;gap:22px}footer.fx .fbol img{width:150px}footer.fx .legal{flex-direction:column}}
footer.fx .wrap{display:block}

/* ---- Show photos, premiere badge, weekly "This week" block (2026-10-14) ---- */
.show-card.has-photo:after{display:none}
.show-card img.pic{position:absolute;left:50%;top:44px;width:132px;height:166px;margin-left:-66px;border-radius:66px 66px 16px 16px;object-fit:cover;object-position:50% 20%;border:3px solid var(--k);z-index:1;box-sizing:border-box}
.show-card.linked{cursor:pointer}
.prem{display:inline-block;background:var(--y);color:var(--k);border:2px solid var(--k);box-shadow:3px 3px 0 var(--red);font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;padding:4px 8px;line-height:1.1}
.show-card .prem{position:absolute;right:12px;top:12px;z-index:3}
.tw{background:#fff;border:3px solid var(--k);box-shadow:8px 8px 0 var(--red);border-radius:6px;padding:30px;display:grid;grid-template-columns:260px 1fr;gap:34px;align-items:start}
.tw .cv{border:3px solid var(--k);aspect-ratio:1/1;width:100%;object-fit:cover;display:block}
.tw .kick{opacity:.6}
.tw h2{font-size:48px;line-height:.9;text-shadow:4px 4px 0 var(--red);margin:8px 0 12px}
.tw .when{display:inline-block;background:var(--k);color:var(--y);font-size:13px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;padding:7px 12px;margin-bottom:16px}
.tw ol{list-style:none;display:grid;gap:0;margin:0;padding:0}
.tw li{display:flex;gap:14px;align-items:baseline;border-top:1px solid #ddd;padding:9px 0;font-size:15px;line-height:1.35}
.tw li:first-child{border-top:0}
.tw li .r{font-weight:800;font-size:20px;letter-spacing:-.03em;width:34px;flex:none}
.tw li b{font-weight:800}
.tw li span.a{opacity:.7;font-weight:600}
.tw .ex{display:inline-block;background:var(--red);color:#fff;font-size:10px;font-weight:800;letter-spacing:.08em;padding:2px 5px;margin-left:6px;vertical-align:2px}
.tw details{margin-top:12px}.tw summary{cursor:pointer;font-weight:800;text-transform:uppercase;font-size:13px}
.tw .note{font-size:13px;font-weight:600;opacity:.7;margin-top:14px;line-height:1.5}
.credit{font-size:11px;font-weight:600;opacity:.6;margin-top:10px}
@media (max-width:760px){
 .show-card img.pic{top:26px;width:96px;height:120px;margin-left:-48px;border-radius:48px 48px 12px 12px}
 .show-card .prem{right:8px;top:8px;font-size:9px;padding:3px 6px}
 .tw{grid-template-columns:1fr;padding:22px;gap:22px}.tw .cv{max-width:260px}.tw h2{font-size:36px}
}
.is-premiere .next-show__label,.is-premiere .nx small{display:none}

/* ---- Most Played links to Apple (buy), not an in-site player (2026-10-14) ---- */
.mp .pl.buy{width:auto;height:30px;border-radius:999px;padding:0 12px;font-size:11px;letter-spacing:.06em;text-transform:uppercase;font-weight:800;white-space:nowrap}
a.mp:hover{transform:translate(-2px,-2px);box-shadow:8px 8px 0 var(--red)}

/* ---- DJ cards: Sticker (Option B, picked by Cory 2026-10-14) ----
   Homepage .cast .show-card + Shows page .lineup .lc. DJ image = assets/shows/stickers/<slug>.webp with class "stk"
   (transparent cut-out + white die-cut outline, made by projects/automations/dj_card.py; see DJ_CARDS.md).
   Tilt, red hard shadow and halftone are all CSS, so a new sticker needs no CSS changes. */
.cast .show-card,.lineup .lc,.lineup .lc.dark{background:radial-gradient(rgba(13,13,13,.28) 1.6px,transparent 2px) 0 0/10px 10px,linear-gradient(180deg,transparent 40%,color-mix(in srgb,var(--c) 60%,#0D0D0D) 100%),var(--c)}
.cast .show-card:after{display:none}
.cast .show-card .s{text-shadow:3px 3px 0 #0D0D0D}
.cast .show-card:has(.prem){padding-top:46px}
/* the sticker / placeholder sits in the flex column ABOVE the text, so it can never run into a 1- or 2-line title */
.cast .show-card img.pic.stk{position:relative;left:auto;top:auto;flex:1 1 0;min-height:0;width:100%;height:auto;margin:0 0 14px;padding:0 8px;border:0;border-radius:0;
 object-fit:contain;object-position:50% 100%;transform:rotate(-3deg);filter:drop-shadow(6px 6px 0 #FD071E);box-sizing:border-box}
.cast .show-card .ph{position:relative;left:auto;top:auto;flex:1 1 0;min-height:0;max-height:178px;width:132px;margin:0 auto 14px;padding:0;display:grid;place-items:center;
 border:4px dashed rgba(255,255,255,.65);border-radius:66px 66px 14px 14px;background:rgba(13,13,13,.2);transform:rotate(-3deg);box-shadow:6px 6px 0 rgba(253,7,30,.45);
 opacity:1;color:rgba(255,255,255,.8);font-size:10px;font-weight:800;letter-spacing:.12em;box-sizing:border-box}
.lineup .lc img.ph.stk{right:22px;bottom:22px;top:auto;width:210px;height:270px;border:0;border-radius:0;background:none;object-fit:contain;object-position:50% 100%;
 transform:rotate(-3deg);filter:drop-shadow(6px 6px 0 #FD071E);z-index:1}
.lineup .lc div.ph{right:34px;bottom:26px;height:224px;border:4px dashed rgba(255,255,255,.65);border-radius:85px 85px 14px 14px;background:rgba(13,13,13,.2);
 transform:rotate(-3deg);box-shadow:6px 6px 0 rgba(253,7,30,.45);color:rgba(255,255,255,.8);font-weight:800;box-sizing:border-box}
.lineup .lc h3{text-shadow:3px 3px 0 #0D0D0D}
@media (max-width:760px){
 .cast .show-card:has(.prem){padding-top:34px}
 .cast .show-card img.pic.stk{margin-bottom:10px;padding:0 4px;filter:drop-shadow(4px 4px 0 #FD071E)}
 .cast .show-card .ph{width:96px;max-height:124px;margin-bottom:10px;border-width:3px;border-radius:48px 48px 10px 10px;box-shadow:4px 4px 0 rgba(253,7,30,.45);font-size:9px}
 .lineup .lc img.ph.stk{right:14px;top:14px;bottom:auto;width:130px;height:150px;filter:drop-shadow(4px 4px 0 #FD071E)}
 .lineup .lc div.ph{right:20px;top:20px;bottom:auto;height:136px;border-width:3px;border-radius:52px 52px 10px 10px}
}

/* ---- 2026-10-15 (Cory voice note): bigger DJ stickers, name overlaid on the photo, ON AIR NOW badge top-left, working player ----
   Sticker style kept (white die-cut, -3deg tilt, red hard shadow, halftone tile). The cut-out now fills the tile
   (absolute, bottom-anchored) and the show name / days / NEXT sit ON the photo over a dark fade.
   ON AIR NOW = .live-badge added by assets/next_show.js (top-left, red, pulsing dot) + red frame. */
.cast .show-card{height:400px;padding:18px 18px 16px;justify-content:flex-end}
.cast .show-card:has(.prem){padding-top:18px}
.cast .show-card>*{z-index:3}
.cast .show-card img.pic.stk{position:absolute;z-index:1;left:-4%;right:auto;top:22px;bottom:0;width:108%;height:auto;max-height:none;margin:0;padding:0 6px;flex:none;
 object-fit:contain;object-position:50% 100%;transform:rotate(-3deg);transform-origin:50% 100%;filter:drop-shadow(7px 7px 0 #FD071E)}
.cast .show-card .ph{position:absolute;z-index:1;left:50%;top:40px;width:60%;height:58%;max-height:none;margin:0 0 0 -30%;padding:0}
.cast .show-card:after{display:block;content:"";position:absolute;left:0;right:0;bottom:0;height:46%;z-index:2;pointer-events:none;border-radius:0;width:auto;margin:0;top:auto;
 background:linear-gradient(180deg,rgba(13,13,13,0) 0%,rgba(13,13,13,.62) 45%,rgba(13,13,13,.9) 100%)}
.cast .show-card .s{font-size:26px;line-height:.95;text-shadow:3px 3px 0 #FD071E}
.cast .show-card .n{font-size:13px;margin-top:6px;text-shadow:1px 1px 0 #0D0D0D}
.cast .show-card .next-show{margin-top:7px}
/* ON AIR NOW */
.live-badge,.cast .show-card .live-badge{position:absolute;z-index:6;left:14px;top:14px;display:inline-flex;align-items:center;gap:8px;background:#FD071E;color:#fff;border:2px solid #fff;
 font-size:14px;font-weight:800;letter-spacing:.09em;line-height:1;padding:8px 12px 8px 10px;box-shadow:4px 4px 0 #0D0D0D;transform:rotate(-3deg);text-transform:uppercase;white-space:nowrap}
.live-badge i{width:10px;height:10px;border-radius:50%;background:#fff;flex:none;animation:livepulse 1.4s ease-out infinite}
@keyframes livepulse{0%{box-shadow:0 0 0 0 rgba(255,255,255,.9)}70%{box-shadow:0 0 0 9px rgba(255,255,255,0)}100%{box-shadow:0 0 0 0 rgba(255,255,255,0)}}
.cast .show-card.is-on-air{box-shadow:none}
.cast .show-card.is-on-air:before{content:"";position:absolute;inset:0;border:5px solid #FD071E;z-index:5;pointer-events:none;animation:liveframe 2s ease-in-out infinite}
@keyframes liveframe{50%{border-color:#ff5a68}}
.cast .show-card.is-on-air .next-show__label{display:inline;opacity:1;background:#FD071E;color:#fff;padding:3px 6px}
.cast .show-card.is-on-air .next-show__time{background:none;padding:0}
/* player: eq bars only move while audio is actually playing; button shows pause while playing */
.eqz i{animation-name:none;height:40%}
.eqz i:nth-child(2){height:75%}.eqz i:nth-child(3){height:55%}.eqz i:nth-child(4){height:100%}.eqz i:nth-child(5){height:30%}
.wlit-playing .eqz i{animation-name:eq}
.bar .wrap>div:nth-child(2){min-width:0}
.bar [data-np-sub]{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wlit-loading .bigplay,.wlit-loading .bar .pb{opacity:.75}
.bigplay,.bar .pb,[data-wlit-play]{cursor:pointer}
.wlit-playing .bigplay svg,.wlit-loading .bigplay svg{margin-left:0}
.wlit-playing .bar .pb svg,.wlit-loading .bar .pb svg{margin-left:0}
@media (max-width:760px){
 .cast .show-card{height:300px;padding:12px 12px 12px}
 .cast .show-card img.pic.stk{top:30px;filter:drop-shadow(4px 4px 0 #FD071E)}
 .cast .show-card .ph{top:44px;width:64%;margin-left:-32%;height:52%}
 .cast .show-card .s{font-size:18px;text-shadow:2px 2px 0 #FD071E}
 .cast .show-card .n{font-size:11px}
 .cast .show-card .next-show{font-size:11px}
 .live-badge{left:8px;top:8px;font-size:11px;padding:6px 8px;gap:6px}
 .live-badge i{width:8px;height:8px}
 .cast .show-card.is-on-air:before{border-width:4px}
}

/* 2026-10-16 site forms (assets/forms.js) */
form[data-wlit-form] .hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}
.fm-msg{margin:.6em 0 0;font-weight:700;font-size:.95rem;min-height:1.2em}
.fm-msg.good{color:inherit}
.fm-msg.good::before{content:"✓ ";color:#FFE14D;text-shadow:1px 1px 0 #0D0D0D}
.fm-msg.bad{color:#ff6b6b}
form[data-wlit-form] button[disabled]{opacity:.6;cursor:wait}
