:root{--ink:#0b1222;--ink2:#121b31;--card:#16203a;--line:rgba(255,255,255,.09);--tx:#eef1f7;--sub:#9aa6bf;--gold:#c9a86a;--gold2:#f0d696;--cream:#f6f1e4;--ease:cubic-bezier(.32,.72,0,1)}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--ink);color:var(--tx);font:400 15px/1.6 -apple-system,BlinkMacSystemFont,"PingFang SC","Hiragino Sans GB","Helvetica Neue",Arial,sans-serif;-webkit-font-smoothing:antialiased;padding-bottom:calc(150px + env(safe-area-inset-bottom,0px))}
a{color:inherit}
button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer;-webkit-tap-highlight-color:transparent}
button:focus-visible,a:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
.gk{color:var(--gold)}
.wrap{max-width:1080px;margin:0 auto;padding:0 16px}
.top{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 0;border-bottom:1px solid var(--line)}
.brand{display:flex;align-items:baseline;gap:10px;text-decoration:none;font-weight:600;letter-spacing:.02em}
.brand small{font-weight:400;color:var(--sub);font-size:12px;letter-spacing:.12em;text-transform:uppercase}
.lang{display:inline-flex;border:1px solid var(--line);border-radius:16px;overflow:hidden}
.lang button{padding:5px 12px;font-size:13px;color:var(--sub)}
.lang button[aria-pressed=true]{background:rgba(201,168,106,.16);color:var(--gold2)}
.hero{display:grid;grid-template-columns:1.1fr .9fr;gap:28px;align-items:center;padding:30px 0 26px}
.kick{margin:0;color:var(--gold);font-size:12px;letter-spacing:.24em;text-transform:uppercase}
h1{margin:6px 0 10px;font:600 34px/1.2 "Songti SC","Noto Serif SC","STSong",Georgia,serif;letter-spacing:.02em}
.lede{margin:0;color:var(--sub);max-width:34em}
.how{margin:14px 0 0;padding:0;list-style:none;display:flex;flex-wrap:wrap;gap:6px 18px;color:var(--sub);font-size:13px}
.how b{color:var(--tx);font-weight:500}
/* 导览器 */
.dev{justify-self:end;width:min(340px,100%);padding:18px;border-radius:30px;background:linear-gradient(160deg,#1b2643,#0e1528);border:1px solid var(--line);box-shadow:0 20px 50px rgba(0,0,0,.45),inset 0 1px 0 rgba(255,255,255,.06)}
@supports (corner-shape:squircle){.dev{corner-shape:squircle;border-radius:44px}}
.scr{height:86px;padding:12px 14px;border-radius:16px;background:#e9e1cc;color:#2a2416;box-shadow:inset 0 2px 6px rgba(0,0,0,.25);display:flex;flex-direction:column;justify-content:space-between}
.scr .n{font:600 34px/1 ui-monospace,"SF Mono",Menlo,monospace;letter-spacing:.12em}
.scr .n i{opacity:.28;font-style:normal}
.scr .t{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;opacity:.8}
.keys{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:14px}
.keys button{height:54px;border-radius:27px;background:rgba(255,255,255,.06);font:500 22px/1 -apple-system,"SF Pro Display",sans-serif;transition:background .15s,transform .1s}
.keys button:active{transform:scale(.96);background:rgba(255,255,255,.12)}
.keys .ok{background:rgba(201,168,106,.22);color:var(--gold2);font-size:16px}
.keys .bk{font-size:18px;color:var(--sub)}
/* 城区与列表 */
.dist{margin:30px 0 10px;display:flex;align-items:baseline;gap:12px;border-top:1px solid var(--line);padding-top:18px}
.dist .rn{font:600 14px Georgia,serif;color:var(--gold);min-width:2em}
.dist h2{margin:0;font:600 18px/1.3 "Songti SC","Noto Serif SC",Georgia,serif}
.dist small{color:var(--sub);font-size:12px;letter-spacing:.08em}
.list{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px;margin:0;padding:0;list-style:none}
.st{position:relative;border-radius:16px;overflow:hidden;background:var(--card);border:1px solid var(--line);transition:border-color .2s,transform .2s}
.st:hover{border-color:rgba(201,168,106,.5)}
.st.cur{border-color:var(--gold);box-shadow:0 0 0 1px var(--gold) inset}
.st .play{display:block;width:100%;text-align:left}
.st img{display:block;width:100%;aspect-ratio:16/10;object-fit:cover;background:#1d2742}
.st .meta{display:flex;align-items:baseline;gap:10px;padding:10px 12px 12px}
.st .no{font:600 15px ui-monospace,"SF Mono",Menlo,monospace;color:var(--gold)}
.st .tt{flex:1;font-weight:500}
.st .du{color:var(--sub);font-size:12px;font-variant-numeric:tabular-nums}
.st .go{position:absolute;top:8px;right:8px;padding:3px 10px;border-radius:12px;background:rgba(11,18,34,.72);font-size:12px;text-decoration:none;color:var(--cream);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
.st .go:hover{color:var(--gold2)}
.foot{margin:40px 0 20px;padding-top:16px;border-top:1px solid var(--line);color:var(--sub);font-size:12.5px;display:flex;flex-wrap:wrap;gap:6px 18px;justify-content:space-between}
.foot a{color:var(--gold2);text-decoration:none;border-bottom:1px solid rgba(201,168,106,.45)}
/* 播放条 */
.bar{position:fixed;left:50%;bottom:calc(12px + env(safe-area-inset-bottom,0px));transform:translate(-50%,140%);width:min(760px,calc(100vw - 24px));z-index:50;border-radius:24px;background:rgba(9,15,31,.9);-webkit-backdrop-filter:blur(22px) saturate(1.4);backdrop-filter:blur(22px) saturate(1.4);border:1px solid var(--line);box-shadow:0 16px 44px rgba(0,0,0,.5);transition:transform .55s var(--ease);overflow:hidden}
@supports (corner-shape:squircle){.bar{corner-shape:squircle;border-radius:34px}}
.bar.on{transform:translate(-50%,0)}
.bar::before{content:"";position:absolute;left:20px;right:20px;top:0;height:1px;background:linear-gradient(90deg,transparent,rgba(240,214,150,.7),transparent)}
.row1{display:flex;align-items:center;gap:12px;padding:10px 12px 6px}
.row1 img{width:52px;height:34px;border-radius:7px;object-fit:cover;flex:none}
.now{flex:1;min-width:0}
.now b{display:block;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.now small{color:var(--sub);font-size:12px;font-variant-numeric:tabular-nums}
.ctl{display:flex;align-items:center;gap:4px}
.ctl button{width:40px;height:40px;border-radius:20px;display:inline-flex;align-items:center;justify-content:center}
.ctl button:hover{background:rgba(255,255,255,.06)}
.ctl svg{width:22px;height:22px}
.ctl .pp{width:46px;height:46px;border-radius:23px;background:rgba(240,214,150,.16);color:var(--gold2)}
.seek .rt{width:auto;padding:0 10px;height:30px;color:var(--tx);border:1px solid var(--line);border-radius:15px;font-size:12.5px;font-variant-numeric:tabular-nums}
.seek{display:flex;align-items:center;gap:10px;padding:0 14px 8px;color:var(--sub);font-size:11px;font-variant-numeric:tabular-nums}
.seek input{flex:1;accent-color:#c9a86a;height:16px}
.txt{max-height:0;overflow:auto;transition:max-height .5s var(--ease);padding:0 16px;border-top:1px solid transparent}
.bar.open .txt{max-height:min(38vh,300px);border-top-color:var(--line);padding:12px 16px 14px}
.txt p{margin:0;line-height:1.85;color:var(--sub)}
.txt span{transition:color .3s}
.txt span.on{color:var(--tx)}
.tbtn{font-size:12.5px;color:var(--sub);padding:0 8px;height:30px}
.tbtn[aria-expanded=true]{color:var(--gold2)}
@media (max-width:760px){
 .hero{grid-template-columns:1fr;gap:20px;padding:20px 0}
 h1{font-size:28px}
 .dev{justify-self:stretch;width:100%}
 .keys button{height:58px}
 .list{grid-template-columns:1fr 1fr;gap:10px}
 .st .meta{flex-wrap:wrap;gap:2px 8px;padding:8px 10px 10px}
 .st .tt{flex-basis:100%;order:3;font-size:14px}
 .ctl .bk15,.ctl .fw15{display:none}
 .row1 img{display:none}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
