:root{--bg:#121830;--bg2:#0c1124;--panel:#1c2342;--panel2:#26305a;--panel3:#303b6e;--line:#3a4680;--line2:#4c5a9c;--ink:#f5f2ea;--muted:#a9b0cc;--dim:#6f78a3;--amp:#ffb020;--amp2:#ff6a2a;--cyan:#33d1ff;--green:#4ade80;--red:#e44;--blue:#48f;--purple:#a78bfa;--pink:#f472b6;--outline:#1a1f3a;--font:"Gothic A1", "Apple SD Gothic Neo", "Malgun Gothic", sans-serif;--display:"Black Han Sans", "Apple SD Gothic Neo", "Malgun Gothic", sans-serif}*{box-sizing:border-box}html,body{background:var(--bg);height:100%;color:var(--ink);font-family:var(--font);margin:0;font-size:14px;overflow:hidden}#app{position:fixed;inset:0}#app.rotated{transform-origin:0 0;inset:0 auto auto 0;transform:rotate(90deg)translateY(-100%)}button{font-family:var(--font);cursor:pointer}input,select{font-family:var(--font)}.display{font-family:var(--display);letter-spacing:.01em;font-weight:400}.num{font-variant-numeric:tabular-nums}.screen{flex-direction:column;justify-content:flex-start;align-items:center;gap:16px;padding:24px;display:flex;position:absolute;inset:0;overflow:hidden auto}.screen>.col{flex:none;margin-top:auto;margin-bottom:auto}.panel{background:var(--panel);border:2px solid var(--line2);box-shadow:0 4px 0 var(--bg2);border-radius:12px;padding:16px}.btn{border:2px solid var(--line2);background:var(--panel3);height:46px;color:var(--ink);box-shadow:0 4px 0 var(--bg2);white-space:nowrap;border-radius:10px;justify-content:center;align-items:center;gap:8px;padding:0 22px;font-size:15px;font-weight:800;display:inline-flex}.btn:active{box-shadow:0 2px 0 var(--bg2);transform:translateY(2px)}.btn.primary{background:var(--amp);border-color:var(--amp);color:var(--outline);box-shadow:0 4px #b8760a}.btn.ghost{background:0 0}.btn.danger{background:var(--red);border-color:var(--red)}.btn:disabled{opacity:.45;cursor:not-allowed}.field{background:var(--bg2);border:2px solid var(--line2);height:46px;color:var(--ink);border-radius:10px;outline:none;padding:0 14px;font-size:16px}.field:focus{border-color:var(--amp)}.label{color:var(--muted);letter-spacing:.06em;text-transform:uppercase;font-size:12px;font-weight:700}.chip{background:var(--panel3);height:24px;color:var(--ink);white-space:nowrap;border-radius:12px;align-items:center;padding:0 10px;font-size:12px;font-weight:800;display:inline-flex}.chip.amp{background:var(--amp);color:var(--outline)}.chip.green{background:var(--green);color:var(--outline)}.chip.red{background:var(--red)}.chip.blue{background:var(--blue)}.row{flex-direction:row;align-items:center;gap:10px;display:flex}.col{flex-direction:column;gap:10px;display:flex}.key{background:var(--ink);min-width:28px;height:26px;color:var(--outline);border:2px solid var(--outline);border-bottom-width:5px;border-radius:7px;justify-content:center;align-items:center;padding:0 8px;font-size:12px;font-weight:800;display:inline-flex}.muted{color:var(--muted)}.bar{background:var(--bg2);border:2px solid var(--outline);border-radius:6px;height:12px;overflow:hidden}.bar>i{background:var(--green);height:100%;transition:width .12s linear;display:block}.title-bg{background:linear-gradient(180deg, var(--bg) 0 58%, var(--bg2) 58% 100%);position:absolute;inset:0}.title-bg:after{content:"";background:var(--amp2);opacity:.8;height:3px;position:absolute;top:58%;left:0;right:0}.logo{align-items:center;gap:14px;font-size:clamp(56px,9vw,120px);line-height:1;display:flex}.logo .amp{color:var(--amp)}.logo .arena{color:var(--ink)}.logo .bolt{width:.9em;height:.9em}.logo .amp,.logo .arena{text-shadow:.045em .045em 0 var(--outline), -2px -2px 0 var(--outline), 2px -2px 0 var(--outline), -2px 2px 0 var(--outline), 2px 2px 0 var(--outline)}.tagline{color:var(--muted);letter-spacing:.08em;font-size:18px;font-weight:700}.title-form{flex-direction:column;gap:8px;width:min(520px,92%);display:flex}.title-form .tf-a,.title-form .tf-b{gap:8px;min-width:0}.version{position:absolute;bottom:16px;left:20px}.hints{color:var(--muted);gap:14px;font-size:13px;display:flex;position:absolute;bottom:16px;right:20px}.topbar{background:var(--bg2);border-bottom:2px solid var(--line);z-index:2;justify-content:space-between;align-items:center;height:56px;padding:0 20px;display:flex;position:absolute;top:0;left:0;right:0}.topbar .logo{gap:6px;font-size:30px}.lobby{grid-template-columns:220px minmax(0,1fr) 240px;gap:16px;display:grid;position:absolute;inset:70px 20px 20px}.lobby>*{min-height:0;overflow-y:auto}.lobby .center{flex-direction:column;gap:16px;min-height:0;display:flex}.rooms{flex-direction:column;flex:1;gap:2px;min-height:0;display:flex;overflow:auto}.room-row{cursor:pointer;border:2px solid #0000;border-radius:8px;grid-template-columns:64px 1fr 120px 100px 60px 80px;align-items:center;gap:8px;height:40px;padding:0 12px;display:grid}.room-row:hover{background:var(--panel2)}.room-row.head{cursor:default;color:var(--dim);height:28px;font-size:11px;font-weight:700}.room-row.head:hover{background:0 0}.chat{flex-direction:column;gap:6px;display:flex}.chat .log{flex-direction:column;flex:1;gap:3px;min-height:60px;max-height:160px;font-size:13px;display:flex;overflow:auto}.chat .log b{color:var(--amp)}.chat .log .sys b{color:var(--dim)}.users{flex-direction:column;gap:6px;font-size:13px;display:flex;overflow:auto}.room{grid-template-rows:minmax(0,1fr) 110px;gap:14px;display:grid;position:absolute;inset:70px 20px 20px}.room .top{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);align-items:start;gap:16px;min-height:0;display:grid;overflow:auto}.slots{grid-template-rows:repeat(2,minmax(0,1fr));grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;height:100%;max-height:520px;display:grid}.slot{background:var(--panel);border:2px solid var(--line2);box-shadow:0 4px 0 var(--bg2);border-radius:12px;flex-direction:column;justify-content:center;align-items:center;gap:6px;min-height:120px;padding:10px;display:flex;position:relative}.slot.red{border-color:var(--red)}.slot.blue{border-color:var(--blue)}.slot.empty{color:var(--dim);box-shadow:none;background:0 0;border-style:dashed}.slot .tag{font-size:11px;font-weight:800;position:absolute;top:8px;left:10px}.slot .crown{color:var(--amp);position:absolute;top:6px;right:8px}.slot .avatar{width:84px;height:84px}.side{grid-template-rows:auto auto;align-content:start;gap:12px;display:grid}.side .panel{padding:12px}.settings .kv{justify-content:space-between;align-items:center;gap:8px;padding:1px 0;display:flex}.settings select,.settings .field{height:30px;padding:0 6px;font-size:12px}.accs{grid-template-columns:repeat(auto-fit,minmax(88px,1fr));gap:8px;display:grid}.acc{background:var(--panel2);border:2px solid var(--line2);color:var(--ink);border-radius:10px;flex-direction:column;align-items:center;gap:4px;padding:10px 6px;font-size:12px;font-weight:800;display:flex}.acc.on{background:var(--amp);border-color:var(--amp);color:var(--outline)}.styles{grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;display:grid}.stylebtn{white-space:nowrap;flex-direction:row;gap:5px;padding:8px 3px;font-size:11px}.stylebtn .swatch{border:2px solid var(--outline);border-radius:4px;flex:none;width:14px;min-width:0;height:14px;padding:0}.acc svg{width:28px;height:28px}.room .acc{gap:2px;padding:6px 4px;font-size:11px}.room .acc svg{width:22px;height:22px}.room .bottom{grid-template-columns:minmax(0,1fr) 150px 300px;gap:12px;display:grid}.bigbtn{height:100%;font-size:20px}.match{position:absolute;inset:0}.match canvas{display:block;position:absolute;inset:0}.hud{pointer-events:none;position:absolute;inset:0;overflow:hidden}.hud .plate{border:2px solid var(--line2);background:#1c2342eb;border-radius:12px;flex-direction:column;gap:8px;width:300px;padding:12px;display:flex;position:absolute;top:16px;left:20px}.hud .plate .name{color:var(--amp);font-size:24px}.hud .timer{flex-direction:column;align-items:center;gap:6px;display:flex;position:absolute;top:14px;left:0;right:0}.hud .timer .box{border:2px solid var(--line2);background:#0c1124e6;border-radius:14px;align-items:center;gap:14px;padding:6px 18px;display:flex}.hud .timer .t{color:var(--amp);font-size:40px;line-height:1}.hud .timer .t.urgent{color:var(--red)}.hud .timer .s{font-size:30px}.hud .roster{border:2px solid var(--line2);background:#1c2342eb;border-radius:12px;flex-direction:column;gap:2px;width:232px;padding:10px;display:flex;position:absolute;top:16px;right:20px}.hud .roster .r{border-radius:6px;grid-template-columns:8px 92px 60px 24px;align-items:center;gap:8px;height:22px;padding:0 6px;font-size:12px;display:grid}.hud .roster .r.me{background:var(--panel3);color:var(--amp);font-weight:800}.hud .roster .r.dead{color:var(--dim)}.hud .roster .r i{border-radius:2px;width:8px;height:14px;display:block}.hud .roster .bar{border-width:1px;border-radius:4px;height:8px}.hud .skill{border:2px solid var(--line2);background:#1c2342eb;border-radius:12px;align-items:center;gap:12px;width:232px;padding:12px;display:flex;position:absolute;bottom:20px;right:20px}.hud .skill .ring{flex:none;width:64px;height:64px;position:relative}.hud .skill .ring .key{position:absolute;top:-6px;left:-6px}.hud .feed{border:2px solid var(--line2);background:#1c2342d9;border-radius:12px;flex-direction:column;gap:4px;width:320px;padding:10px;font-size:12px;display:flex;position:absolute;bottom:20px;left:20px}.hud .feed b{color:var(--amp)}.hud .hints{opacity:.9;justify-content:center;gap:14px;transition:opacity 1s;display:flex;position:absolute;bottom:8px;left:0;right:0}.hud .hints.off{opacity:0}.hud .hints span{text-shadow:0 1px 0 var(--outline);font-size:12px;font-weight:700}.hud .nameplate{flex-direction:column;align-items:center;gap:2px;width:90px;margin-left:-45px;display:flex;position:absolute;transform:translateY(-100%)}.hud .nameplate .n{white-space:nowrap;text-shadow:0 1px 0 var(--outline), 1px 0 0 var(--outline), -1px 0 0 var(--outline), 0 -1px 0 var(--outline);font-size:12px;font-weight:800}.hud .nameplate .n.me{color:var(--amp)}.hud .nameplate .hp{background:var(--bg2);border:2px solid var(--line2);border-radius:4px;width:70px;height:7px;overflow:hidden}.hud .nameplate .hp i{background:var(--green);height:100%;display:block}.hud .nameplate.red .hp{border-color:var(--red)}.hud .nameplate.blue .hp{border-color:var(--blue)}.hud .dmg{font-family:var(--display);color:var(--amp);text-shadow:3px 3px 0 var(--outline), -2px -2px 0 var(--outline), 2px -2px 0 var(--outline), -2px 2px 0 var(--outline);pointer-events:none;font-size:36px;animation:.8s ease-out forwards dmg;position:absolute}.hud .dmg.guard{color:var(--cyan);font-size:22px}.hud .dmg.ko{color:var(--red);font-size:44px}@keyframes dmg{0%{opacity:0;transform:translate(-50%)scale(.6)}15%{opacity:1;transform:translate(-50%,-14px)scale(1.15)}to{opacity:0;transform:translate(-50%,-60px)scale(1)}}.hud .combo{font-family:var(--display);color:var(--ink);text-shadow:2px 2px 0 var(--outline), -1px -1px 0 var(--outline);opacity:0;font-size:28px;transition:opacity .2s;position:absolute;top:32%;left:50%;transform:translate(-50%)}.hud .combo.on{opacity:1}.hud .center{font-family:var(--display);color:var(--amp);text-shadow:4px 4px 0 var(--outline), -2px -2px 0 var(--outline), 2px -2px 0 var(--outline), -2px 2px 0 var(--outline);flex-direction:column;align-items:center;gap:8px;font-size:64px;display:flex;position:absolute;top:40%;left:0;right:0}.hud .center small{font-family:var(--font);color:var(--ink);text-shadow:none;font-size:16px;font-weight:700}.hud .netinfo{color:var(--dim);text-align:right;font-size:11px;position:absolute;top:260px;right:20px}.touchpad{touch-action:none;-webkit-user-select:none;user-select:none;position:absolute;inset:0}.touchpad .stick{background:#1c234259;border:3px solid #f5f2ea73;border-radius:60px;width:120px;height:120px;display:none;position:absolute}.touchpad .stick.on{display:block}.touchpad .knob{border:3px solid var(--outline);background:#ffb020d9;border-radius:27px;width:54px;height:54px;position:absolute;top:30px;left:30px}.touchpad .tbtn{color:var(--ink);text-shadow:0 1px 0 var(--outline);background:#1c23428c;border:3px solid #f5f2ea80;border-radius:50%;justify-content:center;align-items:center;font-size:14px;font-weight:800;display:flex;position:absolute}.touchpad .tbtn.on{color:var(--outline);border-color:var(--amp);background:#ffb020d9}.touchpad .tbtn.atk{background:#ff6a2a8c}.result{pointer-events:auto;background:#0c1124db;flex-direction:column;justify-content:center;align-items:center;gap:16px;padding:24px;display:flex;position:absolute;inset:0}.result .headline{font-size:44px}.result .headline.red{color:var(--red)}.result .headline.blue{color:var(--blue)}.result table{border-collapse:collapse;width:min(760px,92%)}.result th{text-align:left;color:var(--dim);border-bottom:2px solid var(--line);padding:6px 10px;font-size:11px}.result td{border-bottom:1px solid var(--line);padding:8px 10px;font-size:14px}.result tr.me td{background:var(--panel3)}.result tr.me td:first-child{border-left:3px solid var(--amp)}.result .rank{font-family:var(--display);color:var(--muted);font-size:20px}.result tr:first-child .rank{color:var(--amp)}.toast{background:var(--red);color:var(--ink);z-index:5;border-radius:10px;padding:10px 16px;font-weight:800;position:absolute;top:70px;left:50%;transform:translate(-50%)}.match.touch .hud .skill{width:200px;padding:8px;top:14px;bottom:auto;right:16px}.match.touch .hud .skill .ring,.match.touch .hud .skill .ring svg{width:48px;height:48px}.match.touch .hud .hints,.match.touch .hud .roster,.match.touch .hud .feed,.match.touch .hud .netinfo{display:none}.match.touch .hud .plate{gap:4px;width:210px;padding:8px 10px}.match.touch .hud .plate .name{font-size:18px}.match.touch .hud .timer .t{font-size:30px}@media (max-width:900px){.lobby{grid-template-columns:minmax(0,1fr)}.lobby .me,.lobby .users{display:none}.room .top{grid-template-columns:minmax(0,1fr)}.room .bottom{grid-template-columns:minmax(0,1fr) 120px}.room .bottom .chat,.hud .roster,.hud .feed,.hud .hints{display:none}.hud .plate{width:220px}}@media (max-height:620px){.screen{justify-content:flex-start;padding:12px 16px;overflow-y:auto}.logo{font-size:clamp(36px,7vw,64px)!important}.tagline{font-size:14px}.title-form{gap:6px;padding:12px}.version,.hints{display:none}.accs .acc{padding:6px 4px;font-size:11px}.accs .acc svg{width:20px;height:20px}}#app.short .screen{justify-content:center;gap:6px;padding:8px 12px;overflow-y:auto}#app.short .screen>.col{margin:auto 0;gap:6px!important}#app.short .logo{font-size:30px!important}#app.short .tagline,#app.short .version,#app.short .hints{display:none}#app.short .panel{padding:10px 12px}#app.short .title-form{flex-direction:row;align-items:flex-start;gap:12px;width:min(880px,97%)}#app.short .title-form .tf-a,#app.short .title-form .tf-b{flex:1 1 0;gap:5px}#app.short .style-desc,#app.short .acc-desc{font-size:11px;line-height:1.35;min-height:0!important}#app.short .label{font-size:11px}#app.short .field{height:32px!important}#app.short .accs .acc{padding:4px 3px;font-size:10px}#app.short .accs .acc svg{width:18px;height:18px}#app.short .stylebtn{padding:5px 3px;font-size:10px}#app.short .btn{height:38px;font-size:13px}#app.short .room{grid-template-rows:minmax(0,1fr) 62px;gap:8px;inset:52px 10px 10px}#app.short .room .top{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);align-items:stretch;gap:10px;overflow:hidden}#app.short .room .side{overflow-y:auto}#app.short .topbar{gap:8px;height:44px;padding:0 8px}#app.short .topbar .logo{font-size:20px!important}#app.short .topbar .row{min-width:0;gap:6px!important}#app.short .topbar .chip{text-overflow:ellipsis;white-space:nowrap;padding:2px 6px;font-size:10px;overflow:hidden}#app.short .topbar .btn{padding:0 8px;height:28px!important;font-size:11px!important}#app.short .slots{gap:6px;max-height:none}#app.short .slot{gap:2px;min-height:0;padding:4px 4px 6px;font-size:11px}#app.short .slot svg{width:42px!important;height:42px!important}#app.short .slot .tag{font-size:9px;top:3px;left:5px}#app.short .slot .chip{padding:1px 5px;font-size:9px!important}#app.short .room .side{gap:8px}#app.short .room .side .panel{padding:8px}#app.short .room .bottom{grid-template-columns:minmax(0,1fr) 104px 168px;gap:8px}#app.short .room .bottom .chat{display:none}#app.short .bigbtn{height:100%;font-size:13px}#app.short .practice-set{grid-template-columns:1fr 1fr;gap:6px;display:grid}#app.short .practice-set .field{flex:none;width:auto!important}.slot.empty.pick{cursor:pointer}.slot.empty.pick:hover{border-color:var(--amp)}.slot.empty.bot{border-color:var(--amp2);background:#ffb02014}.hud .prompt{border:2px solid var(--amp);color:var(--amp);pointer-events:none;background:#0c1124c7;border-radius:999px;padding:6px 14px;font-size:14px;font-weight:800;position:absolute;bottom:64px;left:50%;transform:translate(-50%)}.match.touch .hud .prompt{bottom:150px}.match .fsbtn{opacity:.8;z-index:5;height:30px;padding:0 10px;font-size:12px;position:absolute;top:232px;right:16px}.match.touch .fsbtn{top:auto;bottom:270px;right:16px}.match.spectator .hud .plate,.match.spectator .hud .skill{display:none}.modal{z-index:30;background:#0a0d1eb8;justify-content:center;align-items:center;padding:16px;display:flex;position:absolute;inset:0}.modal-box{width:min(640px,96%);max-height:92%;overflow-y:auto}.stats-table{border-collapse:collapse;width:100%}.stats-table th,.stats-table td{border-bottom:1px solid var(--line2);text-align:left;padding:6px 8px;font-size:13px}.stats-table .num{text-align:center;font-variant-numeric:tabular-nums}.swatches{flex-wrap:wrap;gap:8px;display:flex}.swatch{background:var(--panel);border:2px solid var(--line2);color:var(--ink);cursor:pointer;border-radius:10px;flex-direction:column;align-items:center;gap:4px;min-width:64px;padding:6px;display:flex}.swatch span{border:2px solid var(--outline);border-radius:8px;width:36px;height:36px;display:block}.swatch small{color:var(--muted);font-size:11px}.swatch.owned small{color:var(--ink)}.swatch.on{border-color:var(--amp);box-shadow:0 0 0 2px #ffb02059}.swatch.on small{color:var(--amp);font-weight:800}.hud .scoreboard{border:2px solid var(--line2);background:#0c1124f0;border-radius:12px;min-width:380px;max-width:94%;padding:10px 12px;position:absolute;top:112px;left:50%;transform:translate(-50%)}.hud .scoreboard tr.dead td{color:var(--dim)}.hud .scoreboard tr.me td{background:#ffb02014}.match .chatbox{z-index:6;width:min(420px,80%);position:absolute;bottom:64px;left:20px}.match .chatbox input{width:100%;height:38px}.match.touch .chatbox{width:min(360px,60%);top:60px;bottom:auto;left:12px}.match .chatbtn{opacity:.8;z-index:5;height:30px;padding:0 10px;font-size:12px;position:absolute;top:268px;right:16px}.match.touch .chatbtn{top:auto;bottom:306px;right:16px}
