:root{--bg:#07080c;--card:#14161d;--txt:#f2f3f7;--mut:#9aa0ae;--acc:#5b8cff;--r:14px}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;background:var(--bg);color:var(--txt);font:15px/1.5 -apple-system,BlinkMacSystemFont,"SF Pro Text","PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;-webkit-font-smoothing:antialiased}
button{font:inherit;color:inherit;cursor:pointer;border:0;background:none}
header{position:fixed;inset:0 0 auto;z-index:20;display:flex;align-items:center;gap:24px;padding:calc(14px + env(safe-area-inset-top)) 4vw 14px;background:linear-gradient(#07080ce6,#07080c00);transition:background .3s,backdrop-filter .3s}
header.solid{background:#07080ccc;backdrop-filter:saturate(1.6) blur(20px);-webkit-backdrop-filter:saturate(1.6) blur(20px);box-shadow:0 1px 0 #ffffff10}
.brand{font-weight:700;font-size:19px;letter-spacing:.5px;display:flex;align-items:center;gap:10px;white-space:nowrap}
.logo{display:grid;place-items:center;width:30px;height:30px;border-radius:9px;background:linear-gradient(135deg,#ff8a3d,#ff3d7f 50%,#5b8cff);font-size:12px}
nav{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;flex:1}nav::-webkit-scrollbar{display:none}
nav button{padding:6px 14px;border-radius:99px;color:var(--mut);white-space:nowrap;transition:.2s}
nav button:hover{color:var(--txt)}nav button.on{background:#ffffff1f;color:var(--txt)}
.search{display:flex;align-items:center;gap:8px;background:#ffffff14;border:1px solid #ffffff14;border-radius:99px;padding:7px 14px;width:240px;transition:.25s}
.search:focus-within{background:#ffffff22;border-color:#ffffff33;width:300px}
.search svg{width:16px;height:16px;fill:none;stroke:var(--mut);stroke-width:2.2;stroke-linecap:round}
.search input{all:unset;flex:1;min-width:0;color:var(--txt)}
#hero{position:relative;height:min(78vh,720px);min-height:440px;overflow:hidden}
.hero-bg{position:absolute;inset:-60px;background-size:cover;background-position:center;filter:blur(36px) saturate(1.4) brightness(.75);transform:scale(1.1);transition:background-image .6s}
.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,#07080cf0 0%,#07080c99 45%,#07080c20 100%),linear-gradient(0deg,var(--bg) 0%,#07080c00 45%)}
.hero-body{position:absolute;left:4vw;right:4vw;bottom:15%;max-width:720px;animation:up .7s ease both}
.eyebrow{color:var(--acc);font-weight:600;font-size:13px;letter-spacing:2px;text-transform:uppercase}
#hero h1{font-size:clamp(28px,4.6vw,56px);line-height:1.12;margin:10px 0 12px;font-weight:800;letter-spacing:-.5px;text-shadow:0 4px 30px #0008}
#hero p{color:#c9cdd7;margin:0 0 24px;font-size:clamp(14px,1.4vw,17px)}
.hero-btns{display:flex;gap:12px;flex-wrap:wrap}
.btn{padding:12px 26px;border-radius:12px;font-weight:600;transition:transform .15s,background .2s}
.btn:active{transform:scale(.96)}.btn.primary{background:#fff;color:#000}.btn.primary:hover{background:#e6e8ee}
.btn.ghost{background:#ffffff1f;backdrop-filter:blur(10px)}.btn.ghost:hover{background:#ffffff33}.btn.sm{padding:8px 14px;font-size:14px}
.btn:disabled{opacity:.3;pointer-events:none}
main{position:relative;margin-top:-80px;padding-bottom:60px;z-index:2}
.row{margin:0 0 34px}.row h2{font-size:clamp(16px,1.6vw,21px);margin:0 4vw 12px;font-weight:700;display:flex;align-items:baseline;gap:10px}
.row h2 small{color:var(--mut);font-weight:500;font-size:13px}.row h2 .col{color:var(--mut);font-weight:500;font-size:13px}
.strip{display:flex;gap:16px;overflow-x:auto;padding:12px 4vw 18px;scroll-snap-type:x proximity;scroll-padding:4vw;scrollbar-width:none}.strip::-webkit-scrollbar{display:none}
.card{flex:0 0 clamp(200px,21vw,320px);scroll-snap-align:start;cursor:pointer;transition:transform .3s cubic-bezier(.2,.8,.2,1)}
.card:hover{transform:scale(1.06);z-index:3}
.thumb{position:relative;aspect-ratio:16/9;border-radius:var(--r);overflow:hidden;background:var(--card);box-shadow:0 8px 24px #0007;transition:box-shadow .3s}
.card:hover .thumb{box-shadow:0 18px 40px #000b,0 0 0 2px #ffffff40}
.thumb img{width:100%;height:100%;object-fit:cover;display:block;opacity:0;transition:opacity .4s}.thumb img.ok{opacity:1}
.ph{position:absolute;inset:0;display:flex;align-items:flex-end;padding:14px;font-weight:700;font-size:15px;line-height:1.3;text-shadow:0 2px 8px #0006}
.ph b{position:absolute;right:12px;top:6px;font-size:52px;opacity:.22;font-weight:900}
.dur{position:absolute;right:8px;bottom:8px;background:#000a;backdrop-filter:blur(6px);padding:2px 7px;border-radius:6px;font-size:12px}
.prog{position:absolute;left:0;right:0;bottom:0;height:4px;background:#ffffff30}.prog i{display:block;height:100%;background:var(--acc)}
.play{position:absolute;inset:0;display:grid;place-items:center;opacity:0;transition:.25s;background:#0004}
.play span{width:52px;height:52px;border-radius:50%;background:#fffe;color:#000;display:grid;place-items:center;font-size:18px;padding-left:3px;transform:scale(.8);transition:.25s}
.card:hover .play{opacity:1}.card:hover .play span{transform:none}
.cap{margin-top:9px;font-size:14px;color:#dfe2ea;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.cap small{display:block;color:var(--mut);font-size:12px}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:22px 16px;padding:12px 4vw}.grid .card{flex:none}
#empty{text-align:center;color:var(--mut);padding:80px 0}
#player{position:fixed;inset:0;z-index:50;overflow-y:auto;animation:fade .3s}
.pl-bg{position:fixed;inset:-80px;background-size:cover;background-position:center;filter:blur(60px) brightness(.35) saturate(1.4)}
#player::before{content:"";position:fixed;inset:0;background:#07080cb0}
.pl-wrap{position:relative;max-width:1180px;margin:0 auto;padding:calc(16px + env(safe-area-inset-top)) 4vw 40px}
.pl-head{display:flex;align-items:center;gap:14px;margin-bottom:14px}
.icon{width:40px;height:40px;border-radius:50%;background:#ffffff1f;display:grid;place-items:center;flex:none}.icon:hover{background:#ffffff33}
.pl-eye{color:var(--mut);font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pl-title{font-size:clamp(16px,2vw,22px);font-weight:700}
.pl-titles{min-width:0}
.artbox{width:100%;aspect-ratio:16/9;background:#000;border-radius:16px;box-shadow:0 30px 80px #000c;overflow:hidden;position:relative}
.artbox .art-video-player{border-radius:16px}
@media(max-width:760px){.artbox,.artbox .art-video-player{border-radius:10px}}
.pl-bar{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:14px 0 22px;color:var(--mut);font-size:13px}
.pl-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:14px}
.pl-list .card{flex:none}.pl-list .card.cur .thumb{box-shadow:0 0 0 3px var(--acc)}
#toast{position:fixed;left:50%;bottom:30px;transform:translateX(-50%);background:#22252ee6;backdrop-filter:blur(10px);padding:10px 18px;border-radius:12px;z-index:60}
@keyframes up{from{opacity:0;transform:translateY(20px)}}@keyframes fade{from{opacity:0}}
@media(max-width:760px){header{flex-wrap:wrap;gap:10px 14px}.search,.search:focus-within{width:auto;flex:1;order:2}nav{order:3;flex-basis:100%}
#hero{height:62vh;min-height:400px}.hero-body{bottom:16%}main{margin-top:-50px}.card{flex-basis:62vw}.strip{gap:12px}.grid{grid-template-columns:repeat(2,1fr);gap:16px 10px}
.pl-list{grid-template-columns:repeat(2,1fr)}.card:hover{transform:none}.play{display:none}}

.emptyst{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:0 8vw;background:radial-gradient(circle at 50% 35%,#1d2340,var(--bg) 60%)}.emptyst .ei{font-size:64px;margin-bottom:8px}.emptyst h2{font-size:28px;margin:0 0 10px}.emptyst p{color:#c9cdd7;margin:4px 0}.emptyst b{color:#fff;background:#ffffff1a;padding:2px 8px;border-radius:6px}.emptyst .mut{color:var(--mut);font-size:13px}

/* 手机横屏：播放器铺满视口 */
@media (orientation: landscape) and (max-height: 500px){
  #player:not([hidden]){position:fixed;inset:0;z-index:9999;background:#000;width:100vw;height:100vh;height:100dvh;padding:0;overflow:hidden}
  #player .pl-bg,#player .pl-head,#player .pl-bar,#player .pl-list{display:none!important}
  #player .pl-wrap{width:100vw;height:100vh;height:100dvh;max-width:none;margin:0;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);box-sizing:border-box;background:#000}
  #player .artbox{width:100%!important;height:100%!important;aspect-ratio:auto!important;max-height:none!important;border-radius:0!important;margin:0!important}
  body:has(#player:not([hidden])) #top,body:has(#player:not([hidden])) #hero,body:has(#player:not([hidden])) #rows{display:none}
}

/* 删除功能 */
.btn.danger{background:#e5484d;color:#fff;border:0}
.pl-head #plDel{margin-left:auto;flex:none}
.card .thumb{position:relative}
.card .more{position:absolute;top:6px;right:6px;z-index:3;width:32px;height:32px;border-radius:50%;border:0;background:rgba(0,0,0,.55);color:#fff;font-size:18px;line-height:32px;padding:0;cursor:pointer}
.sheet{position:fixed;inset:0;z-index:10000;background:rgba(0,0,0,.5);display:flex;align-items:flex-end;justify-content:center}
.sheet-box{width:100%;max-width:480px;background:#15171e;border-radius:16px 16px 0 0;padding:16px 16px calc(16px + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:10px}
.sheet-t{color:#aaa;font-size:14px;text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sheet-box .btn{width:100%;padding:12px;font-size:16px}

/* 收藏功能 */
.card .fav{position:absolute;top:6px;left:6px;z-index:3;width:32px;height:32px;border-radius:50%;border:0;background:rgba(0,0,0,.55);color:#fff;font-size:18px;line-height:32px;padding:0;cursor:pointer}
.card .fav.on{color:#ff4d6d}
.pl-head #plPeople{margin-left:auto;flex:none}.pl-head #plFav{margin-left:0;flex:none}.pl-head #plDel{margin-left:0}
.pl-head #plFav.on{color:#ff4d6d}


/* 人名标签 */
.cap .ppl{display:block;color:#9eb6ff;font-size:12px;margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pl-head #plPeople{flex:none}
.people-box .pchips{display:flex;flex-wrap:wrap;gap:8px;min-height:36px;align-items:center}
.people-box .pchip{background:#ffffff1f;border:0;border-radius:99px;color:#fff;padding:6px 12px;font-size:14px;cursor:pointer}
.people-box .pchip:hover{background:#e5484d}
.people-box .pmut{color:#9aa0ae;font-size:13px}
.people-box .pinput{width:100%;padding:12px 14px;border-radius:12px;border:1px solid #ffffff22;background:#ffffff14;color:#fff;font:inherit;outline:none}
.people-box .pinput:focus{border-color:#5b8cff}
.people-box .prow{display:flex;gap:10px}
.people-box .prow .btn{flex:1}


/* ========== 登录 / 用户栏 ========== */
#auth{position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 50% 30%,#1d2340,var(--bg) 65%)}
#auth[hidden]{display:none!important}
.auth-card{width:min(400px,100%);background:#12141c;border:1px solid #ffffff14;border-radius:20px;padding:28px 24px 22px;box-shadow:0 30px 80px #000a}
.auth-brand{display:flex;align-items:center;gap:10px;font-size:22px;font-weight:800;margin-bottom:18px}
.auth-tabs{display:flex;gap:8px;margin-bottom:18px}
.auth-tabs button{flex:1;padding:10px;border-radius:10px;background:#ffffff10;color:#c9cdd7;font-weight:600}
.auth-tabs button.on{background:#fff;color:#000}
#authForm{display:flex;flex-direction:column;gap:12px}
#authForm label{display:flex;flex-direction:column;gap:6px;font-size:13px;color:var(--mut)}
#authForm input{padding:12px 14px;border-radius:12px;border:1px solid #ffffff22;background:#ffffff14;color:#fff;font:inherit;outline:none}
#authForm input:focus{border-color:var(--acc)}
.auth-err{color:#ff7b82;font-size:13px;margin:0}
.auth-hint{color:var(--mut);font-size:12px;margin:14px 0 0;text-align:center;line-height:1.5}
#authForm .btn.primary{width:100%;margin-top:4px}
.userbox{display:flex;align-items:center;gap:10px;margin-left:auto;flex:none}
.userbox .uname{color:#c9cdd7;font-size:13px;max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* 搜索旁麦克风 */
.search{position:relative}
.search input{padding-right:42px}
.mic{position:absolute;right:6px;top:50%;transform:translateY(-50%);width:34px;height:34px;border-radius:50%;border:0;background:transparent;color:#fff;font-size:16px;cursor:pointer;display:grid;place-items:center}
.mic:hover,.mic.on{background:#ffffff22}
.mic.listening{background:#e5484d;animation:pulse 1.2s ease infinite}
@keyframes pulse{0%,100%{box-shadow:0 0 0 0 #e5484d66}50%{box-shadow:0 0 0 10px #e5484d00}}
#micPanel{position:fixed;left:50%;bottom:90px;transform:translateX(-50%);z-index:70}
#micPanel[hidden]{display:none!important}
.mic-card{background:#1a1d27f0;backdrop-filter:blur(12px);border:1px solid #ffffff18;border-radius:16px;padding:16px 20px;min-width:220px;text-align:center;box-shadow:0 16px 40px #0009}
.mic-level{height:8px;background:#ffffff18;border-radius:99px;overflow:hidden;margin-bottom:10px}
.mic-level i{display:block;height:100%;width:0;background:linear-gradient(90deg,#5b8cff,#7d5cff);transition:width .08s linear}
#micStatus{margin:0 0 10px;font-size:14px;color:#dfe2ea}

@media(max-width:760px){
  .userbox{order:1;margin-left:0}
  .userbox .uname{max-width:72px}
  header .brand{flex:1}
}

#authForm select{padding:12px 14px;border-radius:12px;border:1px solid #ffffff22;background:#ffffff14;color:#fff;font:inherit;outline:none;appearance:none}
#authForm select:focus{border-color:var(--acc)}
#authForm select option{color:#000}
.auth-extra{display:flex;flex-direction:column;gap:12px}
#regOnly[hidden]{display:none!important}
#authForm label .opt{margin-left:6px;font-size:12px;color:var(--mut);font-weight:500}

/* 观看语音认证遮罩 */
#voiceAuth{position:fixed;inset:0;z-index:12000;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,.72);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);padding:24px}
#voiceAuth[hidden]{display:none!important}
.voice-auth-card{width:min(420px,92vw);background:#141821;border:1px solid rgba(255,255,255,.08);border-radius:18px;padding:28px 24px;text-align:center;box-shadow:0 20px 60px rgba(0,0,0,.45);color:#e8ecf5}
.voice-auth-title{font-size:1.25rem;font-weight:700;margin-bottom:8px}
.voice-auth-tip{opacity:.75;margin:0 0 6px;font-size:.95rem}
.voice-auth-phrase{font-size:1.35rem;font-weight:700;color:#7eb6ff;margin:0 0 18px;letter-spacing:.04em}
.voice-auth-level{height:8px;border-radius:999px;background:rgba(255,255,255,.08);overflow:hidden;margin:0 auto 14px;width:80%}
.voice-auth-level i{display:block;height:100%;width:0;background:linear-gradient(90deg,#5b8cff,#7ef0c0);transition:width .08s linear}
#vaStatus{min-height:1.4em;margin:0 0 16px;opacity:.85;font-size:.92rem}
.voice-auth-actions{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}
