﻿:root{--bg:#0f1117;--card:#1a1d27;--text:#e8eaed;--muted:#9ca3af;--accent:#34d399;--line:#2d3348}
*{box-sizing:border-box}
body{margin:0;font-family:Microsoft YaHei UI,Segoe UI,sans-serif;background:var(--bg);color:var(--text);line-height:1.5}
a{color:inherit;text-decoration:none}
header{position:sticky;top:0;z-index:10;background:rgba(15,17,23,.92);border-bottom:1px solid var(--line);padding:14px 20px;display:flex;gap:16px;align-items:center;flex-wrap:wrap}
header .brand{font-weight:700;font-size:18px;color:var(--accent)}
header .meta{color:var(--muted);font-size:13px}
main{padding:20px;max-width:1200px;margin:0 auto}
.grid{display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(180px,1fr))}
.card{background:var(--card);border:1px solid var(--line);border-radius:12px;overflow:hidden}
.card:hover{border-color:#3f465e}
.card img{width:100%;aspect-ratio:3/4;object-fit:cover;background:#111;display:block}
.card .body{padding:10px 12px 14px}
.card .title{font-size:14px;height:2.8em;overflow:hidden}
.card .id{color:var(--muted);font-size:12px;margin-top:6px}
.player-wrap{max-width:960px;margin:0 auto}
video{width:100%;max-height:75vh;background:#000;border-radius:12px}
.back{color:var(--accent);font-size:14px}
.desc{color:var(--muted);margin-top:12px;font-size:14px}
.empty{color:var(--muted);padding:40px 0}