:root{--bg:#111119;--panel:#1a1826;--panel-2:#221f33;--line:#2f2b45;--text:#ece9f7;--muted:#9a94b8;--p1:#fde979;--p2:#c8f181;--cyan:#76e7ff;--font:Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--text);font:15px/1.5 var(--font);margin:0}button{font:inherit;color:inherit;background:var(--panel-2);border:1px solid var(--line);cursor:pointer;border-radius:8px;padding:.45em .9em}button:hover{border-color:var(--muted)}button.active{background:var(--p1);color:#14140c;border-color:var(--p1);font-weight:700}button[hidden]{display:none}kbd{border:1px solid var(--line);background:#0d0c14;border-radius:5px;padding:.35em .5em;font:700 13px/1 monospace}header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:10px 22px;display:flex}.brand{color:inherit;letter-spacing:.06em;align-items:center;gap:10px;font-weight:800;text-decoration:none;display:flex}.brand small{color:var(--muted);letter-spacing:0;font-weight:400;display:block}.brand-icon{background:var(--p1);color:#14140c;border-radius:8px;place-items:center;width:34px;height:34px;font-size:20px;display:grid}nav{gap:8px;display:flex}main{max-width:1080px;margin:0 auto;padding:18px 22px 40px}footer{color:var(--muted);flex-wrap:wrap;justify-content:space-between;gap:16px;margin-top:26px;font-size:13px;display:flex}.sectionline{justify-content:space-between;align-items:baseline;margin:6px 0 12px;font-weight:700;display:flex}.sectionline i{color:var(--p1);margin-right:.5em;font-style:normal}.muted{color:var(--muted);font-size:13px;font-weight:400}.select-stage{border:1px solid var(--line);background:#17131f bottom no-repeat;border-radius:14px;grid-template-columns:1fr auto 1fr;align-items:end;gap:14px;padding:18px;display:grid;position:relative;overflow:hidden}.select-stage:before{content:"";pointer-events:none;background:#0006;position:absolute;inset:0}.select-stage>*{z-index:1;position:relative}.select-stage.team{grid-template-columns:1fr 1fr auto 1fr 1fr}.fighter-preview{cursor:pointer;justify-items:center;gap:2px;display:grid}.fighter-preview[hidden]{display:none}.fighter-preview h1{margin:0;font-size:18px;font-weight:800}.slot-head{align-content:start;justify-items:center;gap:16px;min-height:72px;display:grid}.side-label{letter-spacing:.14em;color:var(--p1);font-size:15px;font-weight:800}.side-label.p2{color:var(--p2)}.fighter-preview.active .side-label{text-underline-offset:4px;text-decoration:underline;text-decoration-thickness:3px}.slot-control{border:1px solid var(--line);background:#0d0c14;border-radius:999px;gap:2px;padding:2px;display:flex}.slot-control[hidden]{display:none}.slot-control button{color:var(--text);background:0 0;border:0;border-radius:999px;padding:.12em .7em;font-size:12px;font-weight:700}#preview-left .slot-control button.active,#preview-ally .slot-control button.active{background:var(--p1);color:#14140c;border-color:var(--p1)}#preview-right .slot-control button.active,#preview-enemy2 .slot-control button.active{background:var(--p2);color:#14140c;border-color:var(--p2)}.fighter-preview canvas{object-fit:contain;object-position:center bottom;width:min(240px,100%);height:290px;image-rendering:pixelated}.versus{align-content:center;justify-items:center;padding-bottom:28px;display:grid;top:-20%}.versus span{color:var(--p2);font:italic 900 48px Impact,sans-serif}.versus small{color:var(--muted);font-size:12px}.rules-row{z-index:2;justify-content:center;margin:14px 0 16px;display:flex;position:relative}.rules-summary{border:1px dashed var(--line);color:var(--text);white-space:nowrap;background:0 0;align-items:center;gap:8px;display:flex}.rules-summary.fresh{border-style:solid;border-color:var(--p1);color:var(--p1)}.rules-summary em{letter-spacing:.08em;font-size:11px;font-style:normal;font-weight:800}.rules-summary:not(.fresh) em{display:none}.rules-panel{background:var(--panel);border:1px solid var(--line);border-radius:12px;align-items:center;gap:14px;width:max-content;padding:10px;display:flex;position:absolute;top:calc(100% + 8px);left:50%;transform:translate(-50%);box-shadow:0 16px 40px #000a}.rules-panel[hidden]{display:none}.rules-panel .modes{gap:6px;display:flex}.difficulty{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.difficulty span{color:var(--muted);font-size:13px}.rules-panel.dim-diff .difficulty{opacity:.45}.roster{grid-template-columns:repeat(auto-fill,minmax(104px,1fr));gap:10px;display:grid}.character{background:var(--panel);justify-items:center;padding:8px 6px;display:grid;position:relative}.character canvas{width:96px;height:96px}.character.p1{box-shadow:inset 0 0 0 2px var(--p1)}.character.p2{box-shadow:inset 0 0 0 2px var(--p2)}.character.ally{box-shadow:inset 0 0 0 2px var(--cyan)}.character.p1.p2{box-shadow:inset 0 0 0 2px var(--p1), inset 0 0 0 4px var(--p2)}.character.p1.ally{box-shadow:inset 0 0 0 2px var(--p1), inset 0 0 0 4px var(--cyan)}.character.p2.ally{box-shadow:inset 0 0 0 2px var(--p2), inset 0 0 0 4px var(--cyan)}.character.p1.p2.ally{box-shadow:inset 0 0 0 2px var(--p1), inset 0 0 0 4px var(--cyan), inset 0 0 0 6px var(--p2)}.slot-tag{background:#0d0c14;border-radius:5px;padding:1px 6px;font-size:11px;font-weight:800;position:absolute;top:6px;left:6px}.char-name{font-weight:700}.bottom-grid{grid-template-columns:1fr 260px;align-items:start;gap:18px;margin-top:22px;display:grid}.movelist{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:14px}.skill{border-top:1px solid var(--line);grid-template-columns:auto 1fr;align-items:start;gap:10px;padding:8px 0;display:grid;position:relative}.skill:first-child{border-top:0}.flavor{color:var(--muted);margin:0 0 4px;font-size:13px}.skill b{display:block}.skill p{color:var(--muted);margin:0;font-size:13px}.skill.super kbd{background:var(--p1);color:#14140c;border-color:var(--p1)}.skill .cooldown{color:var(--cyan);font:700 13px monospace;position:absolute;top:8px;right:0}.start-box{gap:8px;display:grid}.start{background:var(--p1);color:#14140c;border-color:var(--p1);padding:.8em 1em;font-size:18px;font-weight:800}.start:disabled{opacity:.6;cursor:wait}#round-rules{color:var(--muted);text-align:center;margin:0;font-size:13px}body.in-battle{overflow-x:hidden}.battle-top{justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px;display:flex}.prop-tune{z-index:30;background:var(--panel);border:1px solid var(--line);border-radius:12px;gap:6px;width:280px;padding:12px;font-size:13px;display:grid;position:fixed;bottom:16px;right:16px}.prop-tune[hidden]{display:none}.prop-tune p,.prop-tune small{color:var(--muted);margin:0}.prop-tune label{grid-template-columns:36px 28px 1fr 28px;align-items:center;gap:4px;display:grid}:is(.prop-tune label:has(select),.prop-tune label:has([data-step])){grid-template-columns:36px 1fr}.prop-tune input,.prop-tune select{width:100%;color:inherit;border:1px solid var(--line);background:#0d0c14;border-radius:6px;padding:4px 6px}.prop-tune button{padding:.2em 0}.arena{aspect-ratio:960/540;border:1px solid var(--line);background:#000;border-radius:12px;width:100%;position:relative;overflow:hidden;container-type:inline-size}.arena canvas{width:100%;height:100%;image-rendering:pixelated;outline:none;display:block}.hud{pointer-events:none;grid-template-columns:1fr auto 1fr;align-items:start;gap:14px;display:grid;position:absolute;inset:10px 14px auto}.hud-side{gap:8px;display:grid}.hud-player{gap:3px;display:grid}.hud-player[hidden]{display:none}.hud-player.sub .health{height:10px}.hud-player.second.sub>div:first-child{justify-content:flex-end}.hud-player>div:first-child{letter-spacing:.04em;text-shadow:0 1px #000;justify-content:space-between;font-weight:800;display:flex}.hud-player.second{text-align:right}.health,.energy{background:#0c0b12cc;border:1px solid #fff3;border-radius:4px;height:14px;overflow:hidden}.energy{height:6px}.health span,.energy span{background:linear-gradient(#fff6c4, var(--p1));width:100%;height:100%;transition:width 80ms linear;display:block}.hud-player.second .health span,.hud-player.second .energy span{margin-left:auto}.hud-player.second .health span{background:linear-gradient(#eaffc8, var(--p2))}.hud-player small{color:#ddd9ee;text-shadow:0 1px #000;font-size:11px}.hud.team .hud-side{grid-template-columns:1fr 1fr}.hud.team .hud-side:last-child{direction:rtl}.hud.team .hud-side:last-child .hud-player{direction:ltr}.hud.team .hud-player{min-width:0}.hud.team .hud-player.sub .health{height:14px}.hud.team .hud-player>div:first-child,.hud.team .hud-player small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.timer{text-align:center;min-width:88px}.timer small{letter-spacing:.2em;color:var(--muted);font-size:11px;display:block}.timer b{text-shadow:0 2px #000;font:900 40px/1 Impact,sans-serif;display:block}.game-banner{text-align:center;pointer-events:none;place-content:center;display:grid;position:absolute;inset:0}.game-banner.super-call{transform:translateY(-16%)}.game-banner small{-webkit-text-stroke:1px #000;paint-order:stroke fill;text-shadow:0 4px #000;font:900 clamp(12px,2.1cqw,20px) Noto Sans SC,Noto Sans CJK SC,Source Han Sans SC,PingFang SC,Microsoft YaHei,sans-serif}.end-overlay small{color:#fff;font:700 20px/1.3 var(--font);letter-spacing:.14em;-webkit-text-stroke:5px #000;paint-order:stroke fill;text-shadow:0 2px #000,2px 0 #000,-2px 0 #000,0 -2px #000}.game-banner strong{text-shadow:0 4px #000;font:italic 900 clamp(22px,6.7cqw,64px) Impact,sans-serif}.game-banner.super-call strong{font:900 clamp(22px,6.7cqw,64px) Noto Sans SC,Noto Sans CJK SC,Source Han Sans SC,PingFang SC,Microsoft YaHei,sans-serif}.game-banner strong:empty,.game-banner small:empty{display:none}.game-banner button{pointer-events:auto;margin:12px auto 0}.end-overlay{text-align:center;background:#0b0a12cc;place-content:center;gap:6px;display:grid;position:absolute;inset:0}.end-overlay[hidden]{display:none}.end-overlay h2{margin:0;font-size:40px}.end-overlay p{color:var(--muted);margin:0}.end-overlay>div{justify-content:center;gap:10px;margin-top:12px;display:flex}#battle-skills{grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;margin-top:12px;display:grid}#battle-skills .skill{border:1px solid var(--line);background:var(--panel-2);border-radius:8px;row-gap:4px;padding:8px 10px}#battle-skills .skill>div{display:contents}#battle-skills .skill kbd{grid-row:1;align-self:center}#battle-skills .skill b{grid-column:2;align-self:center}#battle-skills .skill p{grid-area:2/1/auto/-1}#battle-skills .skill:first-child{border-top:1px solid var(--line)}#battle-skills .skill kbd{color:var(--p1)}#battle-skills .skill b{font-size:14px}#battle-skills .skill p,#battle-skills .skill kbd,#battle-skills .skill .cooldown{font-size:12px}#battle-skills .skill.super kbd{color:#14140c}#battle-skills .skill.super{padding-right:18px}#battle-skills .skill.super .charge{border:1px solid var(--line);background:#0d0c14;border-radius:4px;width:6px;position:absolute;top:8px;bottom:8px;right:6px;overflow:hidden}#battle-skills .skill.super .charge i{background:var(--p1);height:0;display:block;position:absolute;bottom:0;left:0;right:0}dialog{background:var(--panel);color:var(--text);border:1px solid var(--line);border-radius:14px;max-width:560px;padding:18px 22px}dialog::backdrop{background:#000a}.dialog-head{justify-content:space-between;align-items:center;display:flex}.dialog-head h2{margin:0}.key-table h3{color:var(--p1);margin:12px 0 4px}.key-table p{color:var(--muted);margin:2px 0}.touch-only{display:none}body.touch .touch-only{display:block}.touchpad{--atk:9cqw;--sk:5.4cqw;--ring:14.6cqw;pointer-events:none;touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;display:none;position:absolute;inset:0}.touchpad button{pointer-events:auto;touch-action:none;color:#fff;text-shadow:0 1px #000;background:#ffffff2e;border:2px solid #ffffff73;border-radius:50%;place-items:center;padding:0;font-weight:800;display:grid}.touchpad button img{object-fit:contain;pointer-events:none;filter:drop-shadow(0 1px #000);width:58%;height:58%}.touchpad button.held{background:#ffffff80}.touchpad button[data-cd]{opacity:.55}.touchpad button[data-cd]:after{content:attr(data-cd);color:var(--cyan);text-shadow:0 1px #000;font:700 10px monospace;position:absolute;inset:auto 0 1px}.touchpad [data-pad]{left:var(--x);top:var(--y);position:absolute;transform:translate(-50%,-50%)}.tp-stick{--x:16%;--y:74%;width:calc(var(--ring) * 1.7);height:calc(var(--ring) * 1.7);pointer-events:auto;touch-action:none}.tp-ring{width:var(--ring);height:var(--ring);pointer-events:none;background:#ffffff1c;border:2px solid #fff6;border-radius:50%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.tp-knob-move{width:0;height:0;position:absolute;top:50%;left:50%}.tp-knob{width:calc(var(--ring) * .4);height:calc(var(--ring) * .4);margin-left:calc(var(--ring) * -.2);margin-top:calc(var(--ring) * -.2);background:#ffffff8c;border:2px solid #fff;border-radius:50%;display:block;position:absolute;top:0;left:0}body.touch.in-battle .timer{pointer-events:auto;margin:-6px -12px;padding:6px 12px}.touchpad .tp-tune{z-index:6;top:max(8px, env(safe-area-inset-top));left:max(8px, env(safe-area-inset-left));pointer-events:auto;border-radius:8px;width:auto;height:32px;padding:0 10px;font-size:12px;position:absolute}body.pad-tune .touchpad [data-pad]{outline:2px dashed var(--p1);outline-offset:3px}body.pad-tune .tp-tune{background:var(--p1);color:#14140c}.tp-actions{display:contents}.tp-actions .atk{--x:89.8%;--y:88.1%;width:var(--atk);height:var(--atk);background:#ffffff59;border-color:#fff;font-size:18px}.tp-actions .sk{width:var(--sk);height:var(--sk);font-size:12px}.tp-actions .guard{--x:81%;--y:92.1%}.tp-actions .s1{--x:75.2%;--y:77.2%}.tp-actions .s2{--x:84.9%;--y:75.2%}.tp-actions .s3{--x:86.3%;--y:56.4%}.tp-actions .jump{--x:92.6%;--y:54%}.tp-actions .ult{--x:94.5%;--y:57.4%;--p:0;width:calc(var(--sk) + 10px);height:calc(var(--sk) + 10px)}.tp-actions .ult img{filter:none}.tp-actions .ult:after{content:"";background:var(--p1);pointer-events:none;width:58%;height:58%;-webkit-mask:var(--ico) center / contain no-repeat;-webkit-mask:var(--ico) center / contain no-repeat;mask:var(--ico) center / contain no-repeat;clip-path:inset(calc((1 - var(--p)) * 100%) 0 0 0);position:absolute;top:21%;left:21%}.tp-actions .ult.ready{border-color:var(--p1);box-shadow:0 0 0 1px var(--p1), 0 0 8px 1px #fde979aa;background:#fde97973}body.touch.in-battle #battle{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;touch-action:manipulation}.rotate-hint{background:#0b0a12dd;place-content:center;font-size:20px;font-weight:800;display:none;position:absolute;inset:0}@media (orientation:landscape){body.touch.in-battle{height:100svh;position:fixed;inset:0;overflow:hidden}:-webkit-any(body.touch.in-battle:fullscreen,body.touch.in-battle:-webkit-full-screen){height:auto}:is(body.touch.in-battle:fullscreen,body.touch.in-battle:fullscreen){height:auto}body.touch.in-battle header,body.touch.in-battle .battle-top,body.touch.in-battle #battle-skills,body.touch.in-battle #battle footer{display:none}body.touch.in-battle #battle{box-sizing:border-box;width:100%;max-width:none;height:100%;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);place-items:center;margin:0;display:grid;container-type:size}body.touch.in-battle .arena{aspect-ratio:960/540;border:0;border-radius:0;width:min(100cqw,177.778cqh);min-width:0;min-height:0;max-height:100cqh}body.touch.in-battle .arena canvas{width:100%;min-width:0;height:100%;min-height:0}body.touch.in-battle .touchpad{display:block}}@media (orientation:portrait){body.touch.in-battle .rotate-hint{display:grid}body.touch.in-battle .end-overlay:not([hidden])~.rotate-hint{display:none}}@media (width<=760px) and (orientation:portrait),(width<=760px) and (hover:hover){header{gap:8px;padding:8px 12px}.brand{letter-spacing:.02em;gap:8px;min-width:0}.brand small{display:none}.brand>span:last-child{white-space:nowrap}nav{flex:none;gap:6px}nav button{white-space:nowrap;padding:.3em .55em;font-size:13px;line-height:1.2}main{padding:14px 12px 32px}.select-stage{grid-template-columns:1fr auto 1fr;align-items:center;gap:6px;padding:10px 8px}.versus{order:0;grid-column:auto;padding:0;top:0}.versus span{font-size:28px}#preview-left,#preview-right,#preview-ally,#preview-enemy2{order:0}.select-stage.team{grid-template-columns:1fr 1fr}.select-stage.team .versus{order:2;grid-column:1/-1;padding:2px 0}.select-stage.team #preview-left,.select-stage.team #preview-ally{order:1}.select-stage.team #preview-right,.select-stage.team #preview-enemy2{order:3}.fighter-preview canvas{aspect-ratio:240/290;width:min(112px,100%);height:auto}.fighter-preview h1{font-size:14px}.slot-head{gap:6px;min-height:0}.rules-summary{white-space:normal}.rules-panel{flex-wrap:wrap;justify-content:center;width:min(100vw - 48px,420px)}.bottom-grid{grid-template-columns:1fr}#battle-skills{grid-template-columns:repeat(3,minmax(0,1fr))}.start-box{background:var(--bg);padding:8px 0;position:sticky;bottom:0}}@media (orientation:landscape){body.touch:not(.in-battle) .select-stage{max-width:546px;margin-inline:auto}body.touch:not(.in-battle) .fighter-preview canvas{aspect-ratio:240/290;width:min(120px,100%);height:auto}}
