:root{font-family:"Malgun Gothic","Apple SD Gothic Neo",system-ui,sans-serif;color:#eaf3ff;background:#071325;--cyan:#45dce8;--red:#ff7e74;--gold:#ffcf65;--muted:#92accb;--line:#284364;--panel:#10233c;--ink:#08182e;color-scheme:dark}
*{box-sizing:border-box}body{margin:0;min-width:320px}button,input,select{font:inherit}button{cursor:pointer}button:disabled{cursor:default;opacity:.4}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid var(--gold);outline-offset:3px}button{color:inherit;border:1px solid var(--line);border-radius:12px;background:#173352;padding:12px 18px;font-weight:700;min-height:44px;transition:background .18s,transform .18s}button:hover:not(:disabled){background:#245077;transform:translateY(-1px)}button.primary{background:linear-gradient(135deg,#ffdf85,#efa93c);color:#13233c;border-color:#ffce65;box-shadow:0 6px 22px #0003}button.primary:hover:not(:disabled){background:#ffe190}button.cyan{color:var(--cyan);border-color:#258792}button.danger{color:#ffada4;border-color:#8b4d57}button.subtle{background:transparent;border-color:transparent;color:var(--muted)}button.small{padding:6px 10px;font-size:12px;min-height:36px}input,select{background:#091a30;border:1px solid #375271;color:#edf6ff;border-radius:10px;padding:12px;width:100%;min-height:44px}label{display:block;font-size:13px;color:#adc2d9;margin-bottom:8px}h1,h2,h3,p{margin-top:0}h1{font-size:38px;line-height:1.25}h2{font-size:25px}h3{font-size:17px}p{line-height:1.7;color:#b8cce4}a{color:var(--cyan)}.muted{color:var(--muted)}.gold{color:var(--gold)}.cyan-text{color:var(--cyan)}.red-text{color:var(--red)}.ambience{position:fixed;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(ellipse at 15% 8%,#17426e70,transparent 50%),radial-gradient(ellipse at 95% 25%,#9f354b22,transparent 45%),linear-gradient(#08172b,#071325)}.shell{max-width:1240px;margin:auto;padding:22px}.topbar{display:flex;gap:16px;align-items:center;justify-content:space-between;padding:0 0 20px;flex-wrap:wrap}.brand{font-size:23px;font-weight:900;letter-spacing:-1px}.brand span{color:var(--gold);padding:0 5px}.brand small{font-size:10px;letter-spacing:2px;color:var(--muted);display:block;margin-top:3px}.profilebar{display:flex;align-items:center;gap:14px;flex-wrap:wrap;font-size:13px}.tag{display:inline-flex;gap:5px;align-items:center;padding:4px 8px;border-radius:6px;background:#173654;color:#b9d9f5;font-size:11px;white-space:nowrap}.row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.space{justify-content:space-between}.eyebrow{font-size:12px;color:var(--cyan);letter-spacing:3px;font-weight:800;margin-bottom:14px}.panel{background:linear-gradient(150deg,#152b46,#0c1d33);border:1px solid var(--line);border-radius:18px;padding:24px}.two-cols{display:grid;grid-template-columns:1.2fr 1fr;gap:22px}.section-head{margin-bottom:20px}.section-head p{margin-bottom:0;font-size:13px}.login{max-width:1200px;margin:40px auto;display:grid;grid-template-columns:1.6fr 1fr;min-height:650px;border:1px solid #345574;border-radius:24px;overflow:hidden;box-shadow:0 30px 100px #0006}.login-art{position:relative;background:linear-gradient(180deg,#09254322,#081526c9 80%),url('/assets/battlefield.png') center/cover;display:flex;flex-direction:column;justify-content:space-between;padding:48px}.login-art h1{font-size:62px;text-shadow:0 8px 30px #000a;letter-spacing:-4px}.login-art .vs{font-size:32px;color:var(--gold);display:block;letter-spacing:8px}.login-art .tag{align-self:flex-start;background:#0c254acc}.login-copy{max-width:420px;background:#071c368c;padding:16px;border-radius:12px}.login-form{background:#0c1c32;padding:44px 32px;display:flex;flex-direction:column;justify-content:center}.login-form .primary{width:100%;margin-top:16px;font-size:17px}.login-form .login-note{font-size:12px;margin-top:22px}.hero{position:relative;overflow:hidden;min-height:310px;display:flex;align-items:center;padding:36px;background:linear-gradient(90deg,#102742f2 18%,#10274270),url('/assets/battlefield.png') 55% 45%/cover}.hero h1{margin-bottom:12px}.hero p{max-width:520px;font-size:14px}.hero .hero-character{position:absolute;right:12%;bottom:-18px;width:215px;height:250px;filter:drop-shadow(0 12px 15px #0008)}.portrait{display:block;background-repeat:no-repeat;aspect-ratio:1;min-width:0;filter:drop-shadow(0 3px 2px #0003)}.base-sheet{background-image:url('/assets/members-base.png');background-size:400% 400%}.elite-sheet{background-image:url('/assets/members-elite.png');background-size:600% 300%}.game-modes{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin:20px 0}.mode-card{text-align:left;padding:24px;min-height:190px;background:linear-gradient(145deg,#193652,#10233b);border-radius:17px}.mode-card .icon{font-size:30px;display:block;margin-bottom:18px}.mode-card strong{display:block;font-size:19px;margin-bottom:8px}.mode-card span:last-child{font-size:12px;color:#a6bbd3;display:block;line-height:1.7}.mode-card.legend{background:linear-gradient(145deg,#3c2855,#15233c);border-color:#745aa1}.mode-card.ai{border-color:#287786}.mode-card.pvp{border-color:#8c5153}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.stats>div{border-left:2px solid #375371;padding:2px 16px}.stats b{font-size:27px;display:block;margin-top:8px}.stats small{font-size:12px;color:var(--muted)}.factions{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:18px 0}.faction{padding:20px;text-align:left;border:2px solid #294665;background:#10233b}.faction strong{font-size:24px;display:block;margin:5px 0}.faction span{font-size:12px;color:var(--muted)}.faction.ruling.active{border-color:var(--cyan);background:#154551}.faction.opposition.active{border-color:var(--red);background:#482b38}.setup-grid{display:grid;grid-template-columns:1.4fr 1fr;gap:20px}.roster-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.member-card{background:#0b1d33;border:1px solid #2b4868;border-radius:11px;position:relative;overflow:hidden;text-align:center}.member-card.selected{border-color:var(--gold);box-shadow:inset 0 0 0 1px var(--gold)}.member-card.placing{background:#264957}.member-card .pick{display:block;width:100%;padding:8px;border:0;border-radius:0;background:transparent}.member-card .portrait{height:90px;width:100%;background-color:transparent}.member-card .name{display:block;font-size:13px;color:#fff;margin-top:3px}.member-card .term{display:block;font-size:10px;color:var(--cyan);margin-top:3px}.member-card .remove{position:absolute;top:2px;right:2px;font-size:15px;padding:0;min-height:26px;width:26px;background:#102238e0;border-radius:5px}.member-card .info{position:absolute;top:2px;left:2px;font-size:11px;padding:0;min-height:26px;width:26px;background:#102238c0;border-radius:5px}.member-card.locked{opacity:.55}.member-card.tier3{border-color:#795aa3}.member-card.tier4{border-color:#c69a48}.placement-house{background:#0c1d31;border:3px solid #47758a;padding:10px;border-radius:12px;margin-top:20px}.house-sign{text-align:center;background:#2f95a6;color:#071b30;padding:10px;font-weight:900;border-radius:7px;margin-bottom:10px}.rooms{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}.room{position:relative;background:linear-gradient(#17394b,#102840);min-height:105px;border:1px solid #477284;border-radius:5px;padding:5px}.room .portrait{height:68px}.room small{font-size:10px;color:#c0d7e1}.room.empty{background:#071a2e;color:#60849c}.room.selected{border:2px solid var(--gold)}.supporting{font-size:12px;line-height:1.65;margin:15px 0;color:#99b3cd}.setup-footer{display:flex;gap:12px;justify-content:flex-end;margin-top:20px;align-items:center}.difficulty{max-width:150px}.queue{max-width:650px;margin:60px auto;text-align:center;padding:48px}.queue .orb{width:80px;height:80px;border:4px solid #1c3f5d;border-top-color:var(--cyan);border-radius:50%;margin:24px auto;animation:spin 1.7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.collection-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:12px}.legend-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:14px}.legend-card{text-align:center;background:linear-gradient(#33294b,#101d35);border:1px solid #776294;border-radius:15px;padding:16px}.legend-card .portrait{height:150px}.legend-card.tier4{border-color:#cfab62;background:linear-gradient(#493c2d,#172338)}.legend-card h3{margin:8px 0}.legend-card p{font-size:12px;margin-bottom:14px;min-height:42px}.legend-card .primary{width:100%;font-size:12px}.shop-top{display:flex;gap:20px;align-items:center;justify-content:space-between;flex-wrap:wrap;margin:20px 0}.fortify .room{min-height:130px}.fortify .room b{font-size:16px;display:block;padding:14px 0 7px}.match-intro{position:relative;background:linear-gradient(#071b38cf,#08182dde),url('/assets/battlefield.png') center/cover;padding:30px;border-radius:20px;border:1px solid #294d71}.match-intro h1{text-align:center;font-size:32px;color:var(--gold)}.versus-grid{display:grid;grid-template-columns:1fr 100px 1fr;gap:15px;align-items:center}.versus{font-size:72px;font-weight:1000;color:var(--gold);text-align:center;font-style:italic;text-shadow:0 0 30px #f7af3680}.contestant{border:2px solid #348fa4;border-radius:15px;background:#102f4acc;padding:16px}.contestant.opposition{border-color:#b85e61;background:#432635cb}.contestant h2{font-size:23px;margin-bottom:4px}.contestant .profile-avatar{width:90px;height:95px}.contestant .roster-grid{margin-top:16px}.contestant .member-card .portrait{height:78px}.intro-note{display:flex;justify-content:center;gap:24px;flex-wrap:wrap;margin-top:20px;color:#c6daec;font-size:13px}.intro-count{text-align:center;font-size:24px;font-weight:800;color:var(--gold);margin-top:20px}.battle{background:#0a1c32;border:1px solid #2d4d71;border-radius:18px;overflow:hidden}.battle-head{display:grid;grid-template-columns:1fr 150px 1fr;gap:18px;padding:17px;background:#0b213c}.battle-side{min-width:0}.battle-side.right{text-align:right}.battle-side strong{font-size:19px}.battle-side .name{display:inline-block;font-size:12px;color:#c6d7ec;margin-left:8px}.hp-track{height:14px;border-radius:5px;background:#122a43;overflow:hidden;margin:8px 0 4px}.hp-fill{height:100%;background:linear-gradient(90deg,#239dd2,#65e7e9);transition:width .3s}.right .hp-fill{background:linear-gradient(90deg,#ff765f,#e73c69)}.hp-text{display:flex;align-items:center;justify-content:space-between;font-size:11px;color:#bed4e8}.clock-panel{text-align:center;font-size:11px;color:var(--muted);padding-top:1px}.clock-panel b{font-size:31px;display:block;color:var(--gold)}.clock-panel.urgent b{color:#ff6d76;animation:pulse .6s alternate infinite}@keyframes pulse{to{opacity:.45}}.battle-field{position:relative;aspect-ratio:16/9;min-height:340px;overflow:hidden;background:#74bbed}.battle-field canvas{width:100%;height:100%;display:block}.field-status{position:absolute;top:14px;left:16px;background:#10243dde;border:1px solid #3d6a80;padding:8px 12px;border-radius:8px;font-size:12px;max-width:calc(100% - 90px);pointer-events:none}.wind{position:absolute;top:58px;left:16px;font-size:11px;color:#18324e;background:#e7f5f7ce;padding:5px 9px;border-radius:6px}.timing-meter{position:absolute;top:16px;right:12px;width:44px;background:#0e2543ed;border:1px solid #395a7c;border-radius:8px;padding:6px 5px 22px;font-size:11px;text-align:center}.timing-meter .band{height:25px;display:flex;align-items:center;justify-content:center;color:#e9fff4;background:#216c61;border-bottom:1px solid #153f53}.timing-meter .band.zero{background:#8690a0;color:#11253e}.timing-meter .band.neg{background:#8e443f;color:#ffe6d9}.timing-meter .needle{position:absolute;left:-9px;top:35px;color:#ffde5a;font-size:18px;line-height:18px;text-shadow:0 0 5px #ff0}.timing-meter strong{font-size:10px;margin-bottom:5px;display:block}.aim-wrap{position:absolute;bottom:17px;left:28px;width:190px;height:126px;border-radius:15px;background:#0d244499;border:1px solid #8fcbd95e;touch-action:none}.aim-wrap.right{left:auto;right:28px}.aim-label{font-size:11px;color:#c9dfe9;text-align:center;padding-top:5px}.aim-handle{position:absolute;left:74px;top:37px;width:47px;height:47px;border:2px solid #ffdb78;border-radius:50%;padding:0;background:#3a3159;color:#ffde7a;font-size:25px;touch-action:none;transform:none!important}.aim-rope{height:2px;position:absolute;background:#ffdc80;left:95px;top:60px;pointer-events:none;transform-origin:left center}.battle-controls{padding:18px;display:grid;grid-template-columns:1fr 2fr;gap:18px;background:linear-gradient(#132c49,#102239)}.attacker{display:flex;gap:12px;align-items:center}.attacker .portrait{width:94px;height:100px;flex:none;position:relative}.attacker .portrait.angry:after{content:'💢';position:absolute;top:8px;right:0;font-size:24px}.attacker h3{margin-bottom:6px}.attacker p{font-size:12px;margin-bottom:0}.readouts{display:flex;gap:25px;margin-top:10px;font-size:12px;color:#b8cce1}.readouts b{font-size:19px;color:var(--gold);display:block;margin-top:4px}.skills{display:flex;gap:7px;flex-wrap:wrap}.skill{font-size:12px;min-height:45px;padding:9px 12px}.skill.active{border-color:var(--gold);background:#594727;color:#ffdf89}.skill small{display:block;font-size:10px;color:#adc6e0;margin-top:3px}.squad-strip{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:8px;padding:0 18px 16px}.squad-strip .member-card .portrait{height:62px}.squad-strip .member-card .pick{padding:4px}.squad-strip .member-card.dead{opacity:.3}.member-hp{height:4px;background:#13343e;position:relative}.member-hp span{display:block;height:100%;background:#59d5bc}.battle-actions{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;padding:14px 18px;background:#07182e}.battle-actions .small{font-size:11px}.battle-actions .log{font-size:12px;color:#b9cbdf;flex:1;min-width:160px}.result{max-width:760px;margin:45px auto;text-align:center;padding:42px;background:radial-gradient(ellipse at top,#524b273d,transparent 70%),#10243c}.result h1{font-size:47px;color:var(--gold)}.result .rewards{display:flex;justify-content:center;gap:35px;margin:25px 0}.result .rewards b{display:block;font-size:30px;color:#f5dc8d}.result .rewards span{font-size:12px;color:#abc5dd}.modal-backdrop{position:fixed;inset:0;z-index:20;background:#020a16cc;display:grid;place-items:center;padding:16px}.modal{background:#132840;border:1px solid #4b7396;border-radius:18px;max-width:640px;width:100%;max-height:90vh;overflow:auto;padding:25px;box-shadow:0 20px 80px #0009}.modal .portrait{width:135px;height:145px}.skill-info{border-top:1px solid #2c4966;padding:13px 0}.skill-info strong{font-size:14px;color:#f2d58b}.skill-info p{font-size:12px;margin:5px 0}.settings{display:grid;gap:14px}.settings label{display:flex;align-items:center;gap:10px}.settings input{width:20px;min-height:20px}.loading{text-align:center;padding:100px 20px;color:var(--muted)}#toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:#234765;color:#edf7ff;border:1px solid #588cad;padding:12px 20px;border-radius:12px;max-width:calc(100% - 32px);z-index:50;font-size:13px;opacity:0;pointer-events:none;transition:opacity .15s}#toast.show{opacity:1}.offline{color:#ffab96;font-size:12px}footer{font-size:11px;color:#6c87a3;text-align:center;padding:30px 10px 14px}.empty-state{padding:35px;color:#9db6ce;text-align:center}
@media(max-width:1050px){.game-modes{grid-template-columns:repeat(2,1fr)}.setup-grid{grid-template-columns:1.2fr 1fr}.collection-grid{grid-template-columns:repeat(4,1fr)}.legend-grid{grid-template-columns:repeat(3,1fr)}.hero .hero-character{right:3%}.hero p{max-width:430px}.battle-controls{grid-template-columns:1fr 1.4fr}.versus-grid{grid-template-columns:1fr 65px 1fr;gap:8px}.versus{font-size:45px}.contestant{padding:10px}.contestant .roster-grid{gap:5px}}
@media(max-width:720px){.shell{padding:12px}.topbar{gap:10px;padding-bottom:14px}.brand{font-size:20px}.profilebar{gap:8px;font-size:11px}.profilebar .nickname{display:none}.login{margin:8px;grid-template-columns:1fr;min-height:0}.login-art{min-height:320px;padding:26px}.login-art h1{font-size:44px;letter-spacing:-2px}.login-form{padding:25px}.login-copy{display:none}.panel{padding:18px}.hero{padding:25px;min-height:290px}.hero h1{font-size:30px}.hero .hero-character{right:-13px;width:150px;height:170px;opacity:.65}.hero p{max-width:75%;font-size:12px}.mode-card{padding:18px;min-height:170px}.two-cols,.setup-grid{grid-template-columns:1fr}.stats{gap:7px}.stats>div{padding:3px 10px}.stats b{font-size:23px}.section-head h1{font-size:28px}.legend-grid{grid-template-columns:repeat(2,1fr)}.legend-card{padding:12px}.collection-grid{grid-template-columns:repeat(3,1fr)}.versus-grid{grid-template-columns:1fr;gap:12px}.versus{font-size:32px}.match-intro{padding:15px}.contestant .roster-grid{grid-template-columns:repeat(4,1fr)}.contestant .member-card .portrait{height:65px}.match-intro h1{font-size:23px}.battle-head{gap:8px;padding:12px;grid-template-columns:1fr 70px 1fr}.battle-side strong{font-size:15px}.battle-side .name{display:block;font-size:10px;margin:4px 0 0}.hp-text{font-size:10px}.clock-panel b{font-size:24px}.battle-field{min-height:300px;aspect-ratio:1.4}.field-status{font-size:10px;padding:6px 8px;top:8px;left:8px;max-width:calc(100% - 70px)}.wind{top:43px;left:8px;font-size:10px}.timing-meter{width:35px;right:7px;top:8px;font-size:10px}.timing-meter .band{height:20px}.aim-wrap{width:180px;height:116px;left:8px;bottom:12px}.aim-wrap.right{right:8px}.battle-controls{grid-template-columns:1fr;padding:12px;gap:12px}.attacker .portrait{width:72px;height:80px}.readouts{gap:20px}.readouts b{font-size:16px}.squad-strip{grid-template-columns:repeat(4,1fr);gap:5px;padding:0 12px 12px}.squad-strip .member-card .portrait{height:52px}.battle-actions{padding:12px}.result{padding:28px 16px}.result h1{font-size:35px}.result .rewards{gap:25px}.queue{padding:25px;margin:25px auto}.setup-footer{justify-content:stretch;flex-wrap:wrap}.setup-footer .primary{flex:1;font-size:13px}.legend-card .portrait{height:120px}.member-card .name{font-size:12px}.modal{padding:18px}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
/* Keep sprite cells at their original proportions, and size canvas independently of its backing bitmap. */
.member-card .portrait{width:min(100%,90px);margin:auto}
.squad-strip .member-card .portrait{width:62px;max-width:100%}
.contestant .member-card .portrait{width:78px;max-width:100%}
.room .portrait{width:68px;max-width:100%;margin:auto}
.legend-card .portrait{width:150px;max-width:100%;margin:auto}
.hero-character .portrait{height:100%;width:100%}
.battle-field{height:clamp(340px,34vw,480px);aspect-ratio:auto}
.battle-field canvas{position:absolute;inset:0}
@media(max-width:720px){.battle-field{height:300px}.squad-strip .member-card .portrait{width:52px}.contestant .member-card .portrait{width:65px}.legend-card .portrait{width:120px}}
@media(max-height:560px) and (orientation:landscape){.battle-field{height:250px;min-height:250px}.battle-controls{grid-template-columns:1fr 1.5fr}.squad-strip{grid-template-columns:repeat(8,minmax(0,1fr))}}
.attacker .portrait.angry:before{content:'';position:absolute;left:32%;top:35%;width:37%;height:9%;background:linear-gradient(25deg,transparent 42%,#633340 45% 62%,transparent 65%) left/50% 100% no-repeat,linear-gradient(-25deg,transparent 42%,#633340 45% 62%,transparent 65%) right/50% 100% no-repeat;pointer-events:none}
.readouts{gap:12px;flex-wrap:wrap}.readouts>span{white-space:nowrap}
/* QUALITY 2: architectural battlefield, rooftop drag input, and compact readable combat HUD. */
.battle-field{height:clamp(400px,38vw,560px);background:#102033}
.battle{box-shadow:0 20px 70px #0006;border-color:#4a5360}
.field-status{background:#0b1725de;border-color:#71829466;backdrop-filter:blur(8px)}
.wind{background:#101e32b8;border:1px solid #667f9340;color:#d7e2eb}
.aim-wrap,.aim-wrap.right{position:absolute;left:auto;right:auto;bottom:auto;top:auto;width:1px;height:1px;background:transparent;border:0;overflow:visible;z-index:3}
.aim-handle{left:-24px;top:-24px;width:48px;height:48px;font-size:0;background:transparent;border:1px solid #ffdf8588;box-shadow:0 0 0 6px #ffe3ac0a,0 0 24px #f2b84e22;border-radius:50%;outline-offset:5px}
.aim-handle:hover:not(:disabled){background:#ffe6ac16}
.aim-label{position:absolute;top:30px;left:-110px;width:220px;font-size:11px;text-shadow:0 2px 4px #000;color:#fff4d7;pointer-events:none}
.aim-rope{display:none}
.timing-meter{background:#101d2be8;border-color:#70695380;box-shadow:0 4px 15px #0006}
@media(max-width:720px){.battle-field{height:340px}.aim-label{width:135px;left:-67px;top:28px;font-size:9px}.aim-handle{width:44px;height:44px;left:-22px;top:-22px}}
@media(max-height:560px) and (orientation:landscape){.battle-field{height:290px;min-height:290px}.battle-head{padding:9px}.battle-controls{padding:10px}.topbar{padding-bottom:10px}}
.match-budget{display:block;margin-top:5px;font-size:11px;color:#aac9db}.match-budget strong{color:#d7e7ec;font-variant-numeric:tabular-nums}.match-budget strong.urgent{color:#ffab70}
.audio-volumes{display:grid;gap:7px;margin:18px 0}.audio-volumes label{display:flex;justify-content:space-between;font-size:13px}.audio-volumes output{color:var(--gold);font-variant-numeric:tabular-nums}.audio-volumes input[type=range]{min-height:22px;padding:0;margin:0 0 10px;accent-color:#ffcc65}
.decision-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:20px 0}.decision-grid>div{padding:16px;border:1px solid #45627c;border-radius:12px;background:#0c1d31}.decision-grid b{display:block;font-size:27px;color:var(--gold);margin:8px 0}.decision-grid small{color:#c4d5e0}.endgame-note{position:absolute;left:16px;top:94px;padding:6px 10px;border:1px solid #f9a45466;border-radius:6px;background:#502715de;color:#ffe1b0;font-size:11px;pointer-events:none}
/* arena-8: original versus presentation and synchronized round entrance. */
.arena-intro{isolation:isolate;overflow:hidden;padding:28px;background:radial-gradient(ellipse at 20% 40%,#107c9055,transparent 55%),radial-gradient(ellipse at 85% 40%,#b3273c55,transparent 55%),linear-gradient(#07101de8,#081323e8),url('/assets/battlefield-v2.png') center/cover;border-color:#75889980;box-shadow:0 24px 70px #0008}
.arena-intro:before,.arena-intro:after{content:'';position:absolute;inset:0;z-index:-1;pointer-events:none}.arena-intro:before{background:repeating-linear-gradient(125deg,transparent 0 66px,#ccecff07 67px 69px,transparent 70px 120px)}.arena-intro:after{background:linear-gradient(110deg,transparent 45%,#f4dfac25 49.5%,#fff2d94a 50%,transparent 50.5%);animation:arena-flare 1.1s ease-out both}
.arena-heading{text-align:center;margin-bottom:24px}.arena-heading .eyebrow{color:#c3d2dc;font-size:10px;letter-spacing:5px}.arena-heading h1{font-size:clamp(25px,3vw,38px);color:#ffe7b4;letter-spacing:1px;text-shadow:0 4px 15px #000;margin:12px 0 8px}.arena-heading p{font-size:12px;margin:0;color:#a8bacb}
.arena-versus{grid-template-columns:minmax(0,1fr) 120px minmax(0,1fr);gap:0;align-items:stretch}.arena-contestant{position:relative;overflow:hidden;border-radius:4px;border-width:1px;padding:0;box-shadow:inset 0 0 60px #18b8cc0d,0 18px 30px #0005;animation:arena-left .7s cubic-bezier(.15,.8,.3,1) both;background:linear-gradient(145deg,#194f68e8,#0b2034ed 65%)}.arena-contestant.opposition{animation-name:arena-right;background:linear-gradient(215deg,#63283ce8,#241b2ded 65%)}
.arena-team{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:15px 20px;border-bottom:1px solid #a2eafa44;background:linear-gradient(100deg,#1bd5df26,transparent)}.arena-team>span{width:100%;font-size:9px;letter-spacing:3px;color:#74dfe9}.opposition .arena-team>span{color:#ff9a8f}.arena-team strong{font-size:29px;line-height:1;color:#8eeff1}.opposition .arena-team strong{color:#ffa68c}.arena-team em{font-size:9px;letter-spacing:1px;font-style:normal;padding:5px 8px;border:1px solid #a9c2d055;color:#cedeea;margin-left:auto}
.arena-fighter{display:grid;grid-template-columns:42% minmax(0,1fr);align-items:center;min-height:215px;padding:12px 20px;background:radial-gradient(ellipse at 22% 80%,#72e4e627,transparent 65%)}.opposition .arena-fighter{background:radial-gradient(ellipse at 22% 80%,#ff946327,transparent 65%)}.arena-avatar{height:210px;position:relative}.arena-avatar:after{content:'';position:absolute;bottom:0;left:10%;width:80%;height:12%;background:radial-gradient(ellipse,#0009,transparent 70%);z-index:-1}.arena-avatar .portrait{width:100%;height:100%;filter:drop-shadow(0 8px 15px #0009)}.arena-profile h2{font-size:clamp(18px,2vw,28px);word-break:break-all;margin:12px 0;color:#fff3dc;line-height:1.3}.arena-level{font-size:10px;letter-spacing:2px;color:#c6ac77}.arena-record strong{font-size:25px;font-weight:900;display:block;color:#f5e1b4;white-space:nowrap}.arena-record small{font-size:11px;font-weight:400;color:#b4c9d9;margin:0 4px}.arena-record>span{font-size:11px;display:block;margin-top:8px;color:#b9d0df}
.arena-lineup{background:#06131f66;border-top:1px solid #aac9d322;padding:16px}.arena-lineup h3{font-size:12px;margin:0}.arena-lineup .row>span{font-size:8px;color:#9db4c9;letter-spacing:1px}.arena-lineup .roster-grid{gap:6px;margin-top:12px}.arena-lineup .member-card{border-radius:4px;background:#07152390;border-color:#62859c66}.arena-lineup .member-card .portrait{height:62px;width:62px}.arena-lineup .member-card .pick{padding:5px 2px}.arena-lineup .member-card .name{font-size:11px}.arena-lineup .member-card .term{font-size:9px;margin-top:4px}
.arena-vs{align-self:center;animation:arena-vs .85s .18s cubic-bezier(.12,.85,.25,1) both;position:relative;z-index:1;transform:rotate(-7deg)}.arena-vs b{font-size:88px;font-style:italic;line-height:1.4;font-weight:1000;display:block;color:#fff0bd;text-shadow:3px 3px 0 #86512d,0 0 30px #ffbc4b88}.arena-vs small,.arena-vs span{display:block;font-size:8px;color:#d9bf91;letter-spacing:2px;font-style:normal;white-space:nowrap}.arena-vs span{font-size:9px}
.arena-intro-footer{display:grid;grid-template-columns:1fr auto 1fr;gap:20px;align-items:center;margin-top:24px}.arena-lock{font-size:12px;color:#8edbdc;border-left:2px solid #6ee1df;padding-left:10px}.arena-intro-footer p{font-size:10px;margin:8px 0 0}.arena-rules{text-align:right;color:#b4cadb;font-size:12px;line-height:1.9}.arena-intro-footer .intro-count{margin:0;border:1px solid #b29b6d66;background:#b48b3010;min-width:170px;padding:10px 16px}.intro-count small{font-size:10px;display:block;font-weight:400;color:#cdd7df}.intro-count b{font-size:40px;line-height:1.3;display:inline-block;min-width:40px;font-variant-numeric:tabular-nums}.intro-count>span{display:block;letter-spacing:4px;font-size:10px;color:#ffe1a5}
.round-announcement{position:absolute;inset:0;z-index:8;display:flex;flex-direction:column;justify-content:center;align-items:center;overflow:hidden;text-align:center;background:linear-gradient(100deg,#041825c9,#07132169,#2b101bd1);pointer-events:auto;animation:round-sheet 1.8s both;animation-delay:var(--elapsed,0ms)}.round-announcement[hidden]{display:none}.round-announcement small{font-size:11px;letter-spacing:5px;color:#cddde7;z-index:1}.round-announcement h2{font-size:clamp(44px,7vw,94px);font-style:italic;letter-spacing:-3px;font-weight:1000;color:#fff0c7;text-shadow:4px 5px 0 #7d4f29,0 0 42px #ffb54788;margin:8px 0;z-index:1;animation:round-title 1.8s both;animation-delay:var(--elapsed,0ms)}.round-announcement h2 span{font-size:.64em;letter-spacing:3px}.round-announcement>b{font-size:clamp(20px,3vw,35px);letter-spacing:12px;color:#fff4db;z-index:1}.round-announcement p{font-size:12px;color:#d2dce3;margin:15px 0 0;z-index:1}.round-streak{position:absolute;left:-20%;width:140%;height:32%;transform:skewY(-5deg);background:linear-gradient(90deg,#13bfd12b,#111c2bdc,#ec57422b);border-block:1px solid #ffe3a566;box-shadow:0 0 50px #ffdd7922}.final-round .round-streak{background:linear-gradient(90deg,#6b173b99,#271324ee,#d9521399)}
.aim-label{top:32px;background:#071a2ad9;border:1px solid #d3c59b55;border-radius:4px;padding:4px 6px;width:180px;left:-90px;font-size:10px}.aim-handle:disabled{opacity:.25}.aim-handle{border-color:#fff1a4;box-shadow:0 0 0 4px #ffdf8522,0 0 14px #f2b84e66}
@keyframes arena-left{from{opacity:0;transform:translateX(-90px) skewX(6deg)}to{opacity:1;transform:none}}@keyframes arena-right{from{opacity:0;transform:translateX(90px) skewX(-6deg)}to{opacity:1;transform:none}}@keyframes arena-vs{from{opacity:0;transform:scale(2.6) rotate(-18deg)}to{opacity:1;transform:scale(1) rotate(-7deg)}}@keyframes arena-flare{0%{opacity:0;transform:translateX(-45%)}35%{opacity:1}100%{opacity:.35;transform:translateX(0)}}
@keyframes round-sheet{0%{opacity:0}12%,73%{opacity:1}100%{opacity:0;visibility:hidden}}@keyframes round-title{0%{transform:scale(1.7) translateX(-25px);opacity:0}18%,74%{transform:scale(1);opacity:1}100%{transform:scale(1.12) translateX(60px);opacity:0}}
@media(max-width:720px){.arena-intro{padding:16px 10px}.arena-heading{margin-bottom:18px}.arena-heading .eyebrow{letter-spacing:3px}.arena-versus{grid-template-columns:minmax(0,1fr) 38px minmax(0,1fr);gap:0}.arena-team{padding:12px 7px;gap:7px}.arena-team strong{font-size:23px}.arena-team>span{font-size:6px;letter-spacing:1px}.arena-team em{font-size:7px;margin:0;padding:3px}.arena-fighter{grid-template-columns:1fr;padding:7px;min-height:0;text-align:center}.arena-avatar{height:105px;width:105px;max-width:100%;margin:auto}.arena-profile h2{font-size:14px;margin:7px 0}.arena-level{font-size:8px;letter-spacing:1px}.arena-record strong{font-size:17px}.arena-record small{font-size:8px;margin:0 1px}.arena-record>span{font-size:9px;min-height:28px;margin-top:4px}.arena-lineup{padding:8px 4px}.arena-lineup .row>span{display:none}.arena-lineup h3{font-size:10px}.arena-lineup .roster-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:3px;margin-top:8px}.arena-lineup .member-card .portrait{width:42px;height:42px}.arena-lineup .member-card .name{font-size:9px}.arena-lineup .member-card .term{font-size:8px}.arena-vs b{font-size:35px}.arena-vs small,.arena-vs>span{display:none}.arena-intro-footer{grid-template-columns:1fr auto;gap:10px;margin-top:16px}.arena-intro-footer .intro-count{min-width:100px;padding:7px}.intro-count b{font-size:30px}.arena-intro-footer p{font-size:9px}.arena-rules{grid-column:1/-1;text-align:center;font-size:10px}.arena-rules br{display:none}.round-announcement small{font-size:9px;letter-spacing:3px}.round-announcement h2{letter-spacing:-2px}.round-announcement h2 span{letter-spacing:1px}.round-announcement>b{letter-spacing:7px}.round-announcement p{font-size:10px}.aim-label{width:125px;left:-62px;font-size:8px}}
@media(prefers-reduced-motion:reduce){.arena-intro:after{opacity:.35}.arena-vs{transform:rotate(-7deg)}.round-announcement{animation:none;background:#071321d9}.round-announcement h2{animation:none}}
.field-view-toggle{position:absolute;z-index:4;left:16px;top:92px;padding:5px 9px;min-height:30px;font-size:10px;background:#071e30dd;border-color:#94b7bf77;border-radius:5px}.endgame-note{top:130px}.aim-wrap.lower-floor .aim-label{top:auto;bottom:30px}
@media(max-width:720px){.field-view-toggle{left:8px;top:77px;min-height:28px;font-size:9px}.endgame-note{left:8px;top:111px;font-size:9px}.aim-wrap.lower-floor .aim-label{bottom:28px}}
.aim-wrap .aim-label{display:none}
.aim-wrap.pulling .aim-handle{background:transparent;border-color:#ffdf85;box-shadow:0 0 0 3px #ffdf8518,0 0 12px #f2b84e55}
