/* SPAKO web app (app.getspako.com) — round 1: top bar, three-column feed, hamburger drawer, login wall. */
:root{
  --navy:#0b0e28; --navy-2:#141838; --navy-3:#1b2050; --white:#fff;
  --muted:rgba(255,255,255,.66); --muted-strong:rgba(255,255,255,.86); --line:rgba(255,255,255,.14);
  --pink:#ff2fb8; --violet:#8b4bff; --blue:#3e7bff; --cyan:#22d3ee;
  --grad:linear-gradient(100deg,var(--pink) 0%,var(--violet) 38%,var(--blue) 68%,var(--cyan) 100%);
  --bar:60px;
}
*{box-sizing:border-box;}
html,body{margin:0;}
body{background:var(--navy);color:var(--white);font-family:'Source Sans 3',system-ui,sans-serif;font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased;}
a{color:var(--cyan);text-decoration:none;} a:hover{text-decoration:underline;}
button{font-family:inherit;}
.muted{color:var(--muted);}

/* top bar */
.topbar{position:fixed;top:0;left:0;right:0;height:var(--bar);z-index:60;background:rgba(11,14,40,.94);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:0 14px;gap:10px;}
.tb-left{display:flex;align-items:center;gap:10px;min-width:0;}
.logo img{height:22px;width:auto;display:block;}
.searchbox{display:flex;align-items:center;gap:8px;height:40px;border-radius:999px;border:none;background:var(--navy-3);color:var(--muted);padding:0 14px;cursor:pointer;min-width:0;}
.tb-tabs{display:flex;gap:4px;}
.tab{width:84px;height:var(--bar);background:none;border:none;border-bottom:3px solid transparent;color:var(--muted);cursor:pointer;display:flex;align-items:center;justify-content:center;}
.tab svg{width:26px;height:26px;}
.tab:hover{background:rgba(255,255,255,.05);}
.tab.active{color:var(--cyan);border-bottom-color:var(--cyan);}
.tb-right{display:flex;align-items:center;justify-content:flex-end;gap:8px;}
.beta-btn{background:var(--grad);color:#fff;font-weight:700;font-size:.9rem;padding:8px 16px;border-radius:999px;white-space:nowrap;}
.beta-btn:hover{text-decoration:none;filter:brightness(1.08);}
.login-btn{background:#fff;color:var(--navy);border:none;font-weight:700;font-size:.9rem;padding:9px 16px;border-radius:999px;cursor:pointer;white-space:nowrap;}
.icon-btn{width:40px;height:40px;border-radius:50%;border:none;background:var(--navy-3);color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:1rem;}
.me{position:relative;}
.me-btn{background:none;border:none;padding:0;cursor:pointer;}
.me-menu{display:none;position:absolute;right:0;top:48px;background:var(--navy-2);border:1px solid var(--line);border-radius:12px;min-width:170px;padding:8px;}
.me-menu.open{display:block;}
.me-name{padding:6px 10px;font-weight:700;border-bottom:1px solid var(--line);margin-bottom:6px;word-break:break-word;}
.me-menu button{width:100%;text-align:left;background:none;border:none;color:var(--muted-strong);padding:8px 10px;border-radius:8px;cursor:pointer;font-size:.95rem;}
.me-menu button:hover{background:var(--navy-3);}

/* layout */
.layout{display:grid;grid-template-columns:260px minmax(0,600px) 300px;gap:24px;justify-content:center;padding:calc(var(--bar) + 18px) 16px 60px;}
.left{position:sticky;top:calc(var(--bar) + 18px);align-self:start;display:flex;flex-direction:column;gap:2px;}
.side{background:none;border:none;color:var(--muted-strong);text-align:left;font-size:1.02rem;font-weight:600;padding:12px 14px;border-radius:10px;cursor:pointer;}
.side:hover{background:var(--navy-2);}
.side.active{background:var(--navy-2);color:var(--cyan);}
.right{position:sticky;top:calc(var(--bar) + 18px);align-self:start;display:flex;flex-direction:column;gap:14px;}
.rcard{background:var(--navy-2);border:1px solid var(--line);border-radius:14px;padding:14px;}
.rcard h4{margin:0 0 10px;font-family:'Sora',system-ui,sans-serif;font-size:1rem;}
.rfoot{color:var(--muted);font-size:.8rem;padding:0 6px;}
.rfoot a{color:var(--muted);}

/* posts */
.fpost{background:var(--navy-2);border:1px solid var(--line);border-radius:14px;margin:0 0 6px;overflow:hidden;border-bottom:6px solid #000;}
.fhead{display:flex;align-items:center;gap:10px;padding:10px 12px 4px;}
.favatar{width:36px;height:36px;border-radius:50%;background:var(--navy-3) center/cover;flex:0 0 36px;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.95rem;color:#fff;}
.fname{font-weight:700;font-size:.98rem;}
.ftick{color:var(--blue);margin-left:3px;font-size:.9rem;}
.fage{color:var(--muted);font-size:.85rem;}
.ffollow{border:none;border-radius:999px;background:var(--blue);color:#fff;font-weight:600;font-size:.8rem;padding:3px 12px;cursor:pointer;}
.ffollow.on{background:transparent;border:1px solid var(--line);color:var(--muted-strong);}
.fcap{padding:2px 12px 10px;color:var(--muted-strong);line-height:1.45;white-space:pre-wrap;word-wrap:break-word;}
.fmedia{position:relative;width:100%;aspect-ratio:1/1;max-height:calc(100vh - 230px);background:#000;overflow:hidden;}
.fmedia img,.fmedia video{width:100%;height:100%;object-fit:cover;display:block;}
.ftext{width:100%;height:100%;display:flex;align-items:center;justify-content:center;text-align:center;padding:28px;font-family:'Sora',system-ui,sans-serif;font-weight:700;font-size:1.5rem;line-height:1.35;color:#fff;background-size:cover;background-position:center;word-wrap:break-word;}
.fsound{position:absolute;right:10px;bottom:10px;border:none;border-radius:999px;background:rgba(0,0,0,.6);color:#fff;font-size:.8rem;padding:6px 12px;cursor:pointer;}
.fstrip{display:flex;align-items:center;gap:10px;height:76px;padding:6px 10px;background:#000;}
.fstrip .art{width:62px;height:62px;border-radius:8px;background:var(--navy-3) center/cover;flex:0 0 62px;}
.fstrip .txt{flex:1;min-width:0;}
.fstrip .nm{font-weight:700;color:#fff;font-size:.95rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.fstrip .sp{color:var(--muted);font-size:.78rem;}
.fstrip a.cta{flex:0 0 auto;background:var(--blue);color:#fff;font-weight:700;font-size:.82rem;padding:8px 14px;border-radius:999px;}
.factions{display:flex;border-top:1px solid var(--line);}
.factions button{flex:1;background:none;border:none;color:var(--muted-strong);font-weight:600;font-size:.92rem;padding:11px 4px;cursor:pointer;}
.factions button:hover{color:var(--cyan);}
.factions button.liked{color:var(--pink);}
#feedSentinel{height:2px;}
#feedStatus{text-align:center;color:var(--muted);padding:18px 0;min-height:1.4em;}
.sidead{display:flex;align-items:center;gap:10px;}
.sidead .art{width:64px;height:64px;border-radius:10px;background:var(--navy-3) center/cover;flex:0 0 64px;}
.sidead .nm{font-weight:700;}
.sidead a.cta{display:inline-block;margin-top:6px;background:var(--blue);color:#fff;font-weight:700;font-size:.8rem;padding:6px 12px;border-radius:999px;}

/* drawer */
.shade{position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:90;display:none;}
.shade.show{display:block;}
.drawer{position:fixed;top:0;right:0;bottom:0;width:300px;max-width:86vw;background:var(--navy-2);border-left:1px solid var(--line);z-index:100;transform:translateX(100%);transition:transform .2s;overflow:auto;padding:14px;}
.drawer.open{transform:none;}
.drawer-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;font-family:'Sora',sans-serif;font-size:1.2rem;}
.drawer a{display:block;padding:11px 10px;border-radius:8px;color:var(--muted-strong);font-weight:600;}
.drawer a:hover{background:var(--navy-3);text-decoration:none;}
.drawer a.drawer-main{background:var(--grad);color:#fff;margin-bottom:10px;text-align:center;}
.drawer hr{border:none;border-top:1px solid var(--line);margin:8px 0;}

/* bottom bar (phones) */
.bottombar{display:none;position:fixed;left:0;right:0;bottom:0;height:60px;background:rgba(11,14,40,.96);border-top:1px solid var(--line);z-index:60;}
.bb{flex:1;background:none;border:none;color:var(--muted);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;font-size:.75rem;cursor:pointer;}
.bb svg{width:24px;height:24px;}
.bb.active{color:var(--cyan);}

.toast{position:fixed;left:50%;bottom:76px;transform:translateX(-50%);background:#fff;color:var(--navy);font-weight:600;padding:10px 18px;border-radius:999px;z-index:150;display:none;max-width:90vw;text-align:center;}
.toast.show{display:block;}

/* login wall */
#loginWall{position:fixed;inset:0;z-index:200;background:rgba(5,7,24,.9);backdrop-filter:blur(8px);display:none;align-items:center;justify-content:center;padding:20px;overflow:auto;}
#loginWall.show{display:flex;}
#loginWall .card{position:relative;background:var(--navy-2);border:1px solid var(--line);border-radius:18px;max-width:420px;width:100%;padding:28px 24px;}
#loginWall h3{font-family:'Sora',sans-serif;font-size:1.35rem;margin:0 0 6px;}
#loginWall p{margin:0 0 14px;color:var(--muted);}
#loginWall label{display:block;font-weight:600;color:var(--muted-strong);margin-bottom:6px;font-size:.92rem;}
#loginWall input[type=text],#loginWall input[type=tel],#loginWall select{width:100%;padding:13px 14px;border-radius:10px;border:1px solid var(--line);background:var(--navy-3);color:#fff;font-size:1rem;}
#loginWall .prow{display:flex;gap:8px;margin-bottom:14px;}
#loginWall #wallCC{width:70px;flex:0 0 70px;text-align:center;}
#loginWall label.agree{display:flex;gap:10px;align-items:flex-start;font-weight:400;font-size:.88rem;color:var(--muted);margin-bottom:14px;}
#loginWall label.agree input{margin-top:3px;flex:0 0 auto;}
#loginWall .wbtn{width:100%;padding:14px;border-radius:999px;border:none;background:#fff;color:var(--navy);font-weight:700;font-size:1rem;cursor:pointer;}
#loginWall .wbtn:disabled{opacity:.55;cursor:not-allowed;}
#loginWall .wghost{background:transparent;color:var(--muted-strong);border:1px solid var(--line);margin-top:10px;}
#loginWall .werr{color:#ff6b6b;font-size:.88rem;min-height:1.2em;margin:10px 0 0;}
#loginWall .wclose{position:absolute;top:10px;right:10px;width:34px;height:34px;border-radius:50%;border:none;background:var(--navy-3);color:#fff;cursor:pointer;}

/* responsive */
@media (max-width:1180px){ .layout{grid-template-columns:220px minmax(0,600px);} .right{display:none;} }
@media (max-width:900px){
  .layout{grid-template-columns:minmax(0,600px);padding-top:calc(var(--bar) + 10px);padding-bottom:80px;}
  .left{display:none;}
  .tb-tabs{display:none;}
  .topbar{grid-template-columns:1fr auto;}
  .searchbox span{display:none;}
  .searchbox{width:40px;padding:0;justify-content:center;}
  .beta-btn{display:none;}
  .bottombar{display:flex;}
}

/* song on a photo, event ticket card, fundraiser card, info box */
.fsong{position:absolute;left:10px;bottom:10px;max-width:70%;background:rgba(0,0,0,.6);color:#fff;font-size:.8rem;padding:6px 12px;border-radius:999px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.evcard,.frcard{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:12px;border-top:1px solid var(--line);background:#0e1233;}
.evdate{flex:0 0 52px;height:56px;border-radius:10px;background:linear-gradient(135deg,#ff00b8,#7b2fe0,#2e6ef5);display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1.1;}
.evdate span{font-size:.7rem;font-weight:700;letter-spacing:.06em;} .evdate b{font-size:1.3rem;}
.evtxt{flex:1;min-width:140px;} .evtitle{font-weight:700;font-size:1.02rem;} .evmeta{color:var(--muted);font-size:.86rem;}
.evbtn{flex:0 0 auto;background:var(--grad);color:#fff;border:none;font-weight:700;font-size:.92rem;padding:10px 18px;border-radius:999px;cursor:pointer;}
.frcard{display:block;}
.frtop{display:flex;justify-content:space-between;font-weight:700;margin-bottom:8px;}
.frofficial{color:var(--cyan);font-size:.82rem;}
.frbar{height:8px;border-radius:999px;background:rgba(255,255,255,.14);overflow:hidden;}
.frbar i{display:block;height:100%;background:var(--grad);}
.frnums{color:var(--muted-strong);font-size:.88rem;margin:8px 0 10px;}
.frcard .evbtn{width:100%;}
.evstate{color:var(--muted);font-size:.88rem;}
.infobox{position:fixed;inset:0;z-index:180;background:rgba(5,7,24,.8);display:none;align-items:center;justify-content:center;padding:20px;}
.infobox.show{display:flex;}
.infocard{background:var(--navy-2);border:1px solid var(--line);border-radius:16px;max-width:380px;width:100%;padding:24px;text-align:center;}
.infocard h3{font-family:'Sora',sans-serif;margin:0 0 8px;font-size:1.15rem;} .infocard p{color:var(--muted);margin:0 0 16px;}
.wbtn2{background:#fff;color:var(--navy);border:none;font-weight:700;padding:9px 18px;border-radius:999px;cursor:pointer;margin-left:6px;}

.dbg{margin:0;padding:8px 12px;background:#000;color:#9fe;font-size:.72rem;white-space:pre-wrap;word-break:break-all;border-top:1px solid var(--line);}

/* New Song Release card */
.frel{background:#000;padding-bottom:12px;}
.relhead{font-family:'Sora',system-ui,sans-serif;font-weight:700;font-size:1.15rem;padding:12px 14px 8px;color:#fff;}
.relhead span{font-weight:400;font-size:.8rem;color:var(--muted);margin-left:6px;}
.relrow{display:flex;gap:14px;overflow-x:auto;scroll-snap-type:x mandatory;padding:0 14px;}
.relslide{flex:0 0 min(78%,300px);scroll-snap-align:start;}
.relart{position:relative;width:100%;aspect-ratio:1/1;border-radius:12px;background:var(--navy-3) center/cover;}
.relplay{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:58px;height:58px;border-radius:50%;border:none;background:rgba(0,0,0,.6);color:#fff;font-size:1.3rem;cursor:pointer;}
.reltitle{font-weight:700;color:#fff;margin-top:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.relartist{color:var(--muted-strong);font-size:.9rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
