*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--blue:#00A1D6;--blue-d:#0091C0;--pink:#FB7299;--bg:#0d0f14;--card:#161922;--card2:#1d2130;--hover:#232840;--txt:#e8ecf4;--txt2:#8892a8;--muted:#4a5270;--border:rgba(255,255,255,.06);--red:#ff4757;--orange:#ff6b35;--gold:#ffd700;--qc:#00e5ff}html,body{height:100%;background:var(--bg);color:var(--txt);font-family:Noto Sans SC,sans-serif;overflow-x:hidden}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:var(--bg)}::-webkit-scrollbar-thumb{background:var(--card2);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--blue)}#danmaku-layer{position:fixed;top:0;left:0;right:0;bottom:0;pointer-events:none;overflow:hidden;z-index:11}.dm{position:absolute;white-space:nowrap;font-weight:900;opacity:0;animation:dmfly linear forwards;letter-spacing:2px}@keyframes dmfly{0%{opacity:0;transform:translate(0)}5%{opacity:.7}95%{opacity:.7}to{opacity:0;transform:translate(-120vw)}}.floatq{position:fixed;pointer-events:none;z-index:11;font-weight:900;animation:fup linear infinite;opacity:0;color:var(--blue)}@keyframes fup{0%{transform:translateY(0) rotate(0);opacity:0}10%{opacity:.1}90%{opacity:.04}to{transform:translateY(-100vh) rotate(30deg);opacity:0}}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.6;transform:scale(.85)}}@keyframes shimmer{0%{background-position:-200% center}to{background-position:200% center}}@keyframes floatY{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInCard{0%{opacity:0;transform:translateY(40px)}to{opacity:1;transform:translateY(0)}}@keyframes goldGlow{0%,to{box-shadow:0 0 20px #ffd7004d}50%{box-shadow:0 0 40px #ffd700b3,0 0 80px #ffd7004d}}@keyframes counterTick{0%{transform:translateY(0)}50%{transform:translateY(-2px)}to{transform:translateY(0)}}@keyframes qExplode{0%{transform:scale(1);opacity:1}50%{transform:scale(1.4);opacity:.8}to{transform:scale(1);opacity:1}}@keyframes battleResult{0%{opacity:0;transform:scale(.5) translateY(-20px)}to{opacity:1;transform:scale(1) translateY(0)}}@keyframes scanLine{0%{top:0}to{top:100%}}
