*{margin:0;padding:0;box-sizing:border-box}html,body{width:100%;height:100%;overflow:hidden;background:#1a1a22}#app{position:fixed;inset:0}canvas{display:block}#hud{position:fixed;inset:0;pointer-events:none;font-family:Segoe UI,PingFang SC,system-ui,sans-serif;color:#fff;user-select:none}#hud .top-right{position:absolute;top:18px;right:18px;text-align:right}.combo{font-size:34px;font-weight:800;color:#ffd24a;text-shadow:0 2px 8px #000a}.combo small{font-size:14px;color:#fff;font-weight:400}.move{font-size:22px;font-weight:700;color:#fff;letter-spacing:3px;text-shadow:0 2px 8px #000a;min-height:26px}.score{font-size:16px;margin-top:2px;opacity:.9}.enemies{font-size:14px;margin-top:4px;opacity:.8}#hud .hint{position:absolute;bottom:16px;left:50%;transform:translate(-50%);font-size:13px;opacity:.55;letter-spacing:1px}.screen{position:fixed;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;background:radial-gradient(circle at 50% 40%,#2a2a3aee,#11111aee);font-family:Segoe UI,PingFang SC,system-ui,sans-serif;color:#fff;text-align:center;z-index:10}.screen.hidden{display:none}.screen h1{font-size:52px;letter-spacing:4px;text-shadow:0 4px 20px #000a}.screen h1 .accent{color:#ffd24a}.screen p{font-size:15px;opacity:.8;line-height:1.9;max-width:460px}.screen .stat{font-size:20px;opacity:.95}.screen button{pointer-events:auto;cursor:pointer;margin-top:8px;padding:12px 38px;font-size:18px;border:none;border-radius:30px;background:linear-gradient(90deg,#ff7a3c,#ffd24a);color:#1a1a22;font-weight:700;letter-spacing:2px;transition:transform .1s ease}.screen button:hover{transform:scale(1.06)}.screen button.ghost{background:transparent;color:#fff;border:1px solid #fff4;font-size:15px;padding:10px 30px;font-weight:500}.fight{position:absolute;top:18px;left:50%;transform:translate(-50%);width:min(780px,94%);display:flex;gap:28px;font-family:Segoe UI,PingFang SC,system-ui,sans-serif}.fight.hidden{display:none}.fight-side{flex:1}.fight-side.hidden{display:none}.fight-side.right{text-align:right}.fname{font-size:14px;font-weight:700;letter-spacing:2px;margin-bottom:4px;opacity:.9}.fbar{height:22px;border:2px solid #fff3;border-radius:11px;background:#0007;overflow:hidden}.fight-side.right .fbar{display:flex;justify-content:flex-end}.ffill{height:100%;width:100%;transition:width .12s linear}.ffill.p{background:linear-gradient(90deg,#37d67a,#a8ff5a)}.ffill.e{background:linear-gradient(90deg,#ffd24a,#ff5a5a)}.keys{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;opacity:.85}.keys span{background:#fff2;border:1px solid #fff3;border-radius:8px;padding:6px 12px;font-size:13px}.modes{display:flex;gap:16px;margin-bottom:4px}.screen .pick{display:flex;flex-direction:column;gap:8px;align-items:center}.screen .pick-label{font-size:14px;letter-spacing:2px;opacity:.85}.screen .cards{display:flex;gap:12px;flex-wrap:wrap;justify-content:center;max-width:580px}.screen .card{pointer-events:auto;cursor:pointer;width:104px;padding:12px 10px;margin:0;display:flex;flex-direction:column;align-items:center;gap:6px;background:#ffffff14;border:2px solid #ffffff22;border-radius:14px;color:#fff;font-size:14px;transition:transform .1s ease,border-color .1s ease,background .1s ease}.screen .card:hover{transform:translateY(-3px);border-color:#fff4;background:#ffffff1f}.screen .card.selected{border-color:#ffd24a;background:#ffd24a1f;box-shadow:0 0 0 2px #ffd24a55,0 6px 20px #0006}.screen .card .swatch{width:36px;height:36px;border-radius:50%;border:2px solid #ffffff33;box-shadow:inset 0 -6px 10px #0004}.screen .card .cname{font-size:14px;font-weight:700;letter-spacing:1px}.screen .card .cdesc{font-size:11px;opacity:.7;line-height:1.4}#hud .versus{position:absolute;top:14px;left:0;right:0;display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:0 22px;font-family:Segoe UI,PingFang SC,system-ui,sans-serif}#hud .versus.hidden{display:none}#hud .vside{flex:1;max-width:42%}#hud .vside.right{text-align:right}#hud .vname{font-size:16px;font-weight:800;letter-spacing:2px;margin-bottom:5px;text-shadow:0 2px 6px #000a;color:#fff}#hud .vside.left .vname{color:#a8ff5a}#hud .vside.right .vname{color:#ff7a5a}#hud .vpips{display:flex;gap:6px;margin-bottom:4px}#hud .vside.right .vpips{justify-content:flex-end}#hud .pip{width:13px;height:13px;transform:rotate(45deg);border:2px solid #ffd24a;background:transparent;box-shadow:0 0 6px #000a}#hud .pip.on{background:#ffd24a;box-shadow:0 0 8px #ffd24a}#hud .vbar{position:relative;height:22px;border:2px solid #ffd24a;border-radius:4px;background:#000a;overflow:hidden;box-shadow:0 2px 10px #000a,inset 0 0 6px #000}#hud .vbar-delay{position:absolute;top:0;bottom:0;width:100%;background:linear-gradient(90deg,#ffe08a,#fff);opacity:.9}#hud .vbar-fill{position:absolute;top:0;bottom:0;width:100%;transition:width .08s linear}#hud .vside.left .vbar-delay,#hud .vside.left .vbar-fill{left:0}#hud .vside.right .vbar-delay,#hud .vside.right .vbar-fill{right:0}#hud .vbar-fill.p{background:linear-gradient(90deg,#37d67a,#a8ff5a)}#hud .vbar-fill.e{background:linear-gradient(90deg,#ffd24a,#ff5a5a)}#hud .vcenter{display:flex;flex-direction:column;align-items:center;gap:2px;padding-top:2px}#hud .vround{font-size:13px;font-weight:700;letter-spacing:2px;color:#ffd24a;opacity:.9}#hud .vtime{font-size:30px;font-weight:900;color:#fff;text-align:center;background:radial-gradient(circle at 50% 50%,#2a2030,#120c16);border:2px solid #ffd24a;border-radius:50%;width:56px;height:56px;line-height:52px;box-shadow:0 0 12px #000a}#hud .vtime.low{color:#ff5a5a;border-color:#ff5a5a;animation:vpulse .6s infinite alternate}@keyframes vpulse{0%{transform:scale(1)}to{transform:scale(1.08)}}#hud .vcombo{font-size:22px;font-weight:800;color:#ffd24a;text-shadow:0 2px 8px #000a;min-height:26px}#hud .vcombo small{font-size:12px;color:#fff;font-weight:400}#hud .vmove{font-size:14px;font-weight:700;letter-spacing:3px;color:#fff;opacity:.85;min-height:16px}#hud .announce{position:absolute;top:40%;left:50%;transform:translate(-50%,-50%) scale(.6);font-size:64px;font-weight:900;color:#ffd24a;letter-spacing:4px;text-shadow:0 4px 0 #b00020,0 6px 18px #000;opacity:0;pointer-events:none;transition:opacity .15s ease,transform .15s ease;white-space:nowrap}#hud .announce.show{opacity:1;transform:translate(-50%,-50%) scale(1)}#hud .announce.hidden{display:none}
