@charset "UTF-8";
:root{color-scheme:dark;--bg:#11171a;--panel:#192125;--panel2:#1e292d;--line:#344044;--muted:#97a3a2;--text:#e9ece3;--gold:#d9bc80;--gold2:#f0d69e;--serif:Georgia,'Times New Roman',serif;--sans:'Trebuchet MS',Arial,sans-serif}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--sans);font-size:14px;line-height:1.5;background-image:radial-gradient(ellipse at 45% -20%,#b7975430,transparent 55%)}button,input{font:inherit}button{cursor:pointer;color:inherit}button:disabled{cursor:default;opacity:.38}button:focus-visible,a:focus-visible,canvas:focus-visible{outline:2px solid var(--gold2);outline-offset:4px}button{touch-action:manipulation}button,article,a{-webkit-tap-highlight-color:transparent}svg{display:block}a{color:var(--gold)}h1,h2,h3,p{margin:0}h1,h2,h3{font-weight:400}h1{font:400 clamp(32px,3.4vw,46px)/1.13 var(--serif);letter-spacing:-1px}h2{font:400 30px/1.2 var(--serif)}h3{font:400 23px/1.2 var(--serif)}.muted{color:var(--muted)}.eyebrow{font-size:10px;letter-spacing:2.4px;font-weight:700;color:var(--gold);text-transform:uppercase}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.topbar{height:88px;max-width:1440px;margin:auto;padding:0 48px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #b1b99c16;gap:20px}.brand{border:0;background:none;display:flex;gap:14px;align-items:center;padding:0;color:var(--gold);text-align:left}.brand svg{width:37px;height:37px}.brand-name{font:21px var(--serif);letter-spacing:4px;color:#f1e8d5}.brand-sub{font-size:8px;letter-spacing:3.1px;color:#999e91;margin-top:3px}.top-actions{display:flex;align-items:center;gap:24px}.quiet-button{background:none;border:0;padding:10px 4px;color:#b0b9b6;font-size:11px;letter-spacing:.9px;text-transform:uppercase}.quiet-button:hover{color:var(--gold2)}.rank{border-left:1px solid var(--line);padding-left:24px;display:flex;gap:10px;align-items:center}.rank-icon{color:var(--gold);font-size:25px}.rank strong{display:block;font-size:12px;font-weight:400;color:#e2d8bd}.rank small{display:block;color:var(--muted);font-size:10px}
.shell{max-width:1344px;padding:34px 48px 22px;margin:auto}.journey{display:flex;align-items:center;gap:14px;font-size:10px;text-transform:uppercase;letter-spacing:1.4px;color:#677575;margin-bottom:33px}.journey span{display:flex;align-items:center;gap:8px}.journey i{width:19px;height:19px;border:1px solid #3b4545;border-radius:50%;display:grid;place-items:center;font-size:9px;font-style:normal}.journey .active{color:var(--gold)}.journey .active i{border-color:var(--gold);background:#c7a76115}.journey .line{height:1px;background:var(--line);width:36px;display:block}.intro{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:27px;gap:20px}.intro h1{margin:9px 0 11px}.intro p{font-size:13px;color:var(--muted)}.step-note{font-size:12px;color:var(--muted);white-space:nowrap;padding-bottom:5px}.step-note b{font-size:22px;font-weight:400;color:var(--gold);margin-right:7px}.main-layout{display:grid;grid-template-columns:minmax(0,1fr) 265px;gap:26px}.offer-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}.hero-card{position:relative;border:1px solid var(--line);border-radius:9px;overflow:hidden;background:linear-gradient(160deg,#27332f50,#172125 64%);display:flex;flex-direction:column;transition:transform .18s,border-color .18s,box-shadow .18s}.hero-card:hover{transform:translateY(-4px);border-color:var(--hero);box-shadow:0 14px 35px #0003}.card-role{position:absolute;top:17px;left:17px;font-size:9px;letter-spacing:1.3px;text-transform:uppercase;color:var(--hero);display:flex;align-items:center;gap:6px;z-index:1}.hero-art{width:100%;height:auto;max-height:249px;display:block}.hero-card>.hero-art{margin-top:10px}.hero-card-copy{padding:2px 18px 18px;flex:1;display:flex;flex-direction:column}.hero-card h2{font-size:28px;letter-spacing:-.5px}.hero-title{color:var(--hero);font-size:10px;margin-top:4px}.hero-description{font-size:11px;line-height:1.65;color:#a7b3b1;margin-top:14px;min-height:57px}.stats{display:flex;justify-content:space-between;border-top:1px solid #b5c0ac19;border-bottom:1px solid #b5c0ac19;margin-top:18px;padding:11px 0;gap:5px}.stats span{display:block;font-size:8px;letter-spacing:.7px;color:#849390;text-transform:uppercase}.stats b{font-size:13px;font-weight:400;color:#d5ddcf;display:block;margin-top:1px}.card-passive{font-size:10px;color:#bec8bb;margin:13px 0 18px;display:flex;align-items:center;gap:6px;flex:1}.card-passive svg{color:var(--hero);flex:none}.recruit{border:1px solid #64705c;background:#c9cbb609;color:#dedcc2;border-radius:4px;min-height:42px;font-size:11px;letter-spacing:.35px;width:100%;transition:.15s}.recruit:hover{background:var(--hero);color:#192124;border-color:var(--hero)}.panel{border:1px solid var(--line);border-radius:8px;background:#172024}.squad-panel{padding:21px 18px;align-self:start}.panel-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:19px}.panel-heading h2{font:18px var(--serif)}.small-count{font-size:10px;color:var(--muted)}.squad-slot{min-height:89px;border:1px solid #3b4947;border-radius:5px;position:relative;display:flex;align-items:center;gap:10px;padding:10px;margin:10px 0;background:#22302d55}.squad-slot.empty{border-style:dashed;background:transparent;color:#657571}.slot-number{border:1px solid #4d5b55;border-radius:50%;width:23px;height:23px;display:grid;place-items:center;font-size:10px;color:#b0bda5;flex:none}.slot-portrait{width:52px;height:66px;overflow:hidden;flex:none}.slot-portrait svg{width:72px;margin:-8px 0 0 -10px}.slot-name{font-size:13px}.slot-sub{font-size:9px;color:var(--hero);margin-top:3px}.empty-name{font-size:11px;color:#83928b}.empty-name small{font-size:9px;display:block;color:#596964;margin-top:3px}.squad-note{margin-top:21px;padding-top:17px;border-top:1px solid var(--line);font-size:11px;color:#8e9e96;line-height:1.7}.squad-note b{display:block;color:#c3cbb9;font-size:10px;text-transform:uppercase;letter-spacing:1px;margin-bottom:6px;font-weight:400}.tipline{display:flex;gap:8px;align-items:center;margin-top:20px;font-size:11px;color:#7f908a}.tipline span{color:var(--gold)}.footer{display:flex;justify-content:space-between;gap:16px;margin-top:29px;padding-top:17px;border-top:1px solid #9caa9815;font-size:9px;letter-spacing:.7px;color:#6c7d75}.footer strong{font-weight:400;color:#9aa990}.primary{background:var(--gold);color:#202723;border:1px solid var(--gold);padding:13px 24px;min-height:46px;border-radius:4px;font-size:12px;letter-spacing:.5px;font-weight:700}.primary:hover:not(:disabled){background:var(--gold2);border-color:var(--gold2);box-shadow:0 3px 18px #d3b97522}.secondary{border:1px solid #53615a;background:#26332e66;color:#d0d9c9;padding:11px 17px;border-radius:4px;min-height:44px;font-size:11px}.secondary:hover{border-color:var(--gold);color:var(--gold)}.round-track{display:flex;gap:7px;align-items:center;font-size:10px;color:var(--muted)}.round-track span{width:25px;height:25px;display:grid;place-items:center;border:1px solid #40504b;border-radius:50%}.round-track .current{background:var(--gold);color:#182520;border-color:var(--gold)}.round-track .done{color:var(--gold)}
.map-banner{display:flex;position:relative;overflow:hidden;align-items:center;gap:24px;padding:21px 24px;background:radial-gradient(ellipse at 85% 50%,#8b95651c,transparent),#1d2928;border:1px solid #475447;border-radius:7px;margin-bottom:22px;min-height:141px}.map-banner h2{font-size:27px;margin:5px 0}.map-banner p{font-size:11px;color:#99a79c}.map-tags{display:flex;gap:8px;margin-top:10px}.map-tags span{font-size:9px;color:#bdc4a8;border:1px solid #53604a;border-radius:3px;padding:3px 7px}.map-mini{width:105px;height:105px;flex:none;transform:rotate(-12deg)}.map-mini .ground{fill:#516052;stroke:#b0b494;stroke-width:2}.section-title{display:flex;justify-content:space-between;gap:15px;align-items:center;margin:22px 0 13px}.section-title h2{font:20px var(--serif)}.section-title small{color:var(--muted);font-size:10px}.tactic-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.choice{background:#1b2527;border:1px solid #344440;border-radius:5px;text-align:left;padding:13px 12px;min-height:96px}.choice:hover{border-color:#8a946f}.choice.active{border-color:var(--gold);background:#92835416;box-shadow:inset 0 0 0 1px #b3a06d14}.choice-head{display:flex;justify-content:space-between;gap:8px;align-items:center;font-size:11px}.choice-symbol{font-size:18px;color:var(--gold);line-height:1}.choice p{font-size:10px;line-height:1.5;color:#99a89e;margin-top:6px}.selected-dot{height:10px;width:10px;border-radius:50%;border:1px solid #677362;flex:none}.active .selected-dot{border-color:var(--gold);background:var(--gold);box-shadow:inset 0 0 0 2px #343b2b}.formation-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:9px}.formation-choice{padding:12px;min-height:91px}.formation-choice svg{margin:0 auto 8px;width:64px;height:31px}.formation-choice .choice-head{font-size:10px}.prepare-bottom{display:flex;justify-content:space-between;align-items:center;margin-top:25px;gap:20px}.prepare-bottom p{font-size:10px;color:var(--muted)}.prepare-bottom .primary{min-width:210px}.slot-order{margin-left:auto;display:flex;flex-direction:column;gap:1px}.slot-order button{border:0;background:none;color:#a6b291;padding:2px 5px;min-height:26px;min-width:26px;font-size:12px}.prep-squad .squad-slot{gap:6px;padding:7px}.prep-squad .slot-portrait{width:43px}.synergy{border:1px solid #4b5a42;background:#7d925210;border-radius:4px;padding:8px;margin-top:8px;font-size:10px;color:#c8d0b2}.synergy small{display:block;color:#8d9f88;font-size:9px;margin-top:3px}
.upgrade-tabs{display:flex;gap:8px;margin-bottom:15px}.upgrade-tab{flex:1;border:1px solid #3a4744;background:#1c2728;border-radius:4px;padding:10px;color:#a5b1aa;text-align:left;font-size:11px;display:flex;justify-content:space-between;align-items:center}.upgrade-tab.active{border-color:var(--gold);color:#e5d4ab}.upgrade-tab .check{color:#a6c68f}.perk-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.perk-card{display:flex;flex-direction:column;align-items:flex-start;min-height:220px;border:1px solid #4a554a;border-radius:6px;background:linear-gradient(150deg,#27332d,#1a2425);text-align:left;padding:18px 15px;position:relative}.perk-card.rare{border-color:#55708b;background:linear-gradient(150deg,#263341,#1a2428)}.perk-card.legendary{border-color:#a08953;background:linear-gradient(150deg,#41392a,#1f2826)}.perk-card.active{outline:2px solid var(--gold);outline-offset:3px}.perk-card:hover{transform:translateY(-2px)}.rarity{font-size:8px;letter-spacing:1.5px;text-transform:uppercase;color:#afbf9c}.rare .rarity{color:#a9c4e1}.legendary .rarity{color:#e4c885}.perk-icon{margin:18px 0;color:#c5cca9}.rare .perk-icon{color:#acc8df}.legendary .perk-icon{color:#e3c484}.perk-card h3{font:19px/1.2 var(--serif);margin-bottom:9px}.perk-card p{font-size:10px;line-height:1.6;color:#a9b5ac}.perk-chosen{margin-top:auto;padding-top:13px;font-size:10px;color:#d8c287}.upgrade-summary{padding:13px 15px;border:1px solid #55664c;border-radius:5px;background:#7b985115;color:#c3d4b0;font-size:11px;margin-bottom:17px;display:flex;align-items:center;justify-content:space-between}
.battle-shell{max-width:1440px;padding-top:24px}.battle-top{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:20px}.battle-title h1{font-size:31px;margin:4px 0}.battle-title .eyebrow{font-size:9px}.battle-meta{display:flex;gap:26px;align-items:center}.timer{font:31px var(--serif);color:#e2d8bb;font-variant-numeric:tabular-nums}.timer small{display:block;font:9px var(--sans);letter-spacing:1.5px;color:#8f9d95;text-align:center;margin-top:2px}.alive-count{font-size:12px;color:#d1dac8}.alive-count b{color:var(--gold);font-size:22px;font-weight:400}.battle-layout{display:grid;grid-template-columns:minmax(0,1fr) 245px;gap:20px}.arena-wrap{position:relative;border:1px solid #66715b;border-radius:8px;overflow:hidden;background:#283d38;min-height:460px;height:min(63vh,660px)}.arena-wrap canvas{width:100%;height:100%;display:block;touch-action:manipulation}.arena-label{position:absolute;top:16px;left:17px;background:#17211cd9;border:1px solid #586346;padding:6px 9px;font-size:9px;color:#dccb97;letter-spacing:1px;pointer-events:none}.arena-legend{position:absolute;bottom:14px;left:17px;color:#adbc9b;font-size:9px;display:flex;gap:13px;pointer-events:none}.arena-legend span:first-child{color:#e7cf91}.pause-overlay{position:absolute;inset:0;background:#101b1bd1;display:grid;place-content:center;text-align:center;backdrop-filter:blur(3px)}.pause-overlay h2{font-size:39px;margin-bottom:8px}.pause-overlay p{color:#a9b7a8;font-size:12px;margin-bottom:22px}.battle-controls{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-top:12px}.control-group{display:flex;gap:5px}.control-group button{min-width:44px;min-height:38px;border:1px solid #3e4b44;border-radius:3px;background:#1c2825;font-size:11px;color:#a2b19f}.control-group button.active{border-color:#a89a66;color:#e5d29b;background:#bba57012}.battle-controls p{font-size:10px;color:#859886}.live-board{padding:16px 15px}.live-board h2{font:18px var(--serif);margin-bottom:13px}.board-head{display:flex;justify-content:space-between;font-size:8px;color:#7c8e82;text-transform:uppercase;letter-spacing:1px;margin-bottom:7px}.live-row{display:flex;justify-content:space-between;align-items:center;padding:8px 4px;border-top:1px solid #93ad7c10;font-size:10px;color:#a9b7a5}.live-row.you{color:#e7d4a0;background:#af9a5b14;padding-left:7px;padding-right:7px;border-radius:3px}.live-row.dead{opacity:.38}.live-row b{font-size:11px;font-weight:400;font-variant-numeric:tabular-nums}.live-feed{margin-top:15px;padding-top:15px;border-top:1px solid #495440}.live-feed .eyebrow{font-size:8px;letter-spacing:1.5px}.feed-item{font-size:9px;color:#8da08e;margin-top:8px;line-height:1.4}.your-champions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:19px}.champion-bar{display:flex;align-items:center;gap:10px;padding:9px 11px;border:1px solid #3e4e42;background:#1c2826;border-radius:5px;text-align:left;min-width:0}.champion-bar.dead{opacity:.4}.champion-bar.active{border-color:var(--gold)}.champion-bar .mini-icon{color:var(--hero);flex:none}.champion-info{flex:1;min-width:0}.champion-info b{font-weight:400;font-size:11px}.champion-info small{float:right;font-size:8px;color:#8ca38e;margin-top:3px}.health-track{height:3px;background:#394738;margin-top:6px;border-radius:2px;overflow:hidden}.health-track span{display:block;height:100%;background:#b1bf81;transition:width .1s}.inspect{margin-top:14px;padding:15px;font-size:10px;color:#a6b79f}.inspect h3{font-size:18px;color:#dadcc6;margin-bottom:5px}.inspect p{margin-top:7px}.inspect .eyebrow{font-size:8px}.hazard-note{color:#dfb47e!important}.toast{position:absolute;left:50%;top:30%;transform:translateX(-50%);padding:12px 22px;border:1px solid #b99f5c;background:#19241ef0;border-radius:5px;pointer-events:none;box-shadow:0 12px 32px #0005;color:#f0d99c;font:24px var(--serif);white-space:nowrap;animation:toast 2.5s forwards}@keyframes toast{0%{opacity:0;transform:translate(-50%,8px)}15%,75%{opacity:1;transform:translate(-50%,0)}100%{opacity:0;transform:translate(-50%,-8px)}}
.results-layout{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:25px}.results-table{width:100%;border-collapse:collapse;font-size:12px}.results-table th{text-align:right;color:#8f9c90;font-size:9px;font-weight:400;text-transform:uppercase;letter-spacing:1px;padding:13px 14px;border-bottom:1px solid #46533f}.results-table th:first-child,.results-table th:nth-child(2){text-align:left}.results-table td{text-align:right;padding:12px 14px;border-bottom:1px solid #52614324;color:#b7c2b0}.results-table td:first-child{text-align:left;color:#8c9b83;width:40px}.results-table td:nth-child(2){text-align:left;color:#d7dcc9}.results-table tr.you{background:#c7aa6714}.results-table tr.you td{color:#e1c98e}.results-table .total{font-size:16px;color:#e4ddbb}.results-table small{font-size:8px;color:#71856f;margin-left:7px}.score-panel{padding:26px 23px;align-self:start;background:radial-gradient(ellipse at top,#82744422,transparent),#1a2424;text-align:center}.place-medallion{width:95px;height:95px;border:1px solid #ac945a;border-radius:50%;display:grid;place-items:center;margin:14px auto 20px;box-shadow:0 0 0 7px #bba56c0a,inset 0 0 0 6px #bba56c0a;font:46px var(--serif);color:#e1c68b}.score-panel h2{font-size:25px;margin-bottom:8px}.score-panel p{font-size:11px;color:#9caa96}.score-breakdown{margin:23px 0;text-align:left}.score-breakdown div{display:flex;justify-content:space-between;font-size:11px;color:#a5b49d;padding:8px 0;border-bottom:1px solid #829b6a16}.score-breakdown strong{color:#d9d5b4;font-weight:400}.score-breakdown .score-total{font-size:15px;color:#e4d5a6;border:0;padding-top:14px}.score-panel .primary{width:100%}.mmr-change{font-size:13px;color:#b5d39f;padding:12px;background:#839b5410;border:1px solid #5f6b42;border-radius:4px;margin:17px 0}.final-champions{display:flex;justify-content:center;margin:9px 0 18px}.final-champions .hero-art{width:83px;height:89px}.table-wrap{overflow-x:auto}.recap-strip{display:flex;gap:12px;margin-top:20px}.recap-round{flex:1;border:1px solid #3d4c40;border-radius:5px;padding:13px}.recap-round small{font-size:8px;color:#91a081;text-transform:uppercase;letter-spacing:1px}.recap-round b{display:block;font:20px var(--serif);color:#dfd6b5;margin:5px 0}.recap-round span{font-size:10px;color:#a6b593}
dialog{max-width:570px;width:calc(100% - 40px);border:1px solid #667154;border-radius:10px;background:#1c2827;color:var(--text);padding:30px;box-shadow:0 25px 100px #0008}dialog::backdrop{background:#081011bb;backdrop-filter:blur(6px)}.dialog-heading{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:22px}.dialog-heading h2{font-size:29px}.dialog-close{background:none;border:1px solid #4d5d4a;border-radius:4px;font-size:18px;width:34px;height:34px}.help-steps{display:grid;gap:17px}.help-step{display:flex;gap:13px;font-size:12px;color:#a5b7a1}.help-step b{display:block;color:#d8ddc6;font-size:13px;margin-bottom:4px;font-weight:400}.help-step .slot-number{margin-top:2px}.help-score{margin:22px 0 0;border-top:1px solid #445840;padding-top:17px;font-size:11px;color:#b4c1a2;line-height:1.8}.boot{min-height:80vh;display:grid;place-content:center;gap:15px;text-align:center}.error-box{border:1px solid #ad8467;border-radius:5px;background:#61372c50;padding:16px;margin:15px 0;color:#e4ba9f;font-size:12px}.local-note{font-size:9px;color:#8d9c82;margin-top:13px}.fade-in{animation:appear .28s ease-out}@keyframes appear{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:translateY(0)}}
@media(min-width:1500px){.shell{padding-top:42px}.hero-card>.hero-art{max-height:290px}.hero-card-copy{padding:3px 22px 22px}.hero-description{font-size:12px}.main-layout{grid-template-columns:minmax(0,1fr) 280px;gap:30px}.hero-card h2{font-size:31px}}
@media(max-width:1150px){.topbar{padding:0 28px;height:77px}.shell{padding:26px 28px 20px}.main-layout{grid-template-columns:minmax(0,1fr) 228px;gap:18px}.offer-grid{gap:10px}.hero-card-copy{padding:0 12px 14px}.hero-card h2{font-size:24px}.hero-description{min-height:76px}.hero-card>.hero-art{max-height:211px}.card-role{left:13px;font-size:8px}.squad-panel{padding:18px 13px}.slot-portrait{width:43px}.slot-name{font-size:11px}.squad-slot{padding:8px;gap:7px}.tactic-grid{grid-template-columns:repeat(2,1fr)}.battle-layout{grid-template-columns:minmax(0,1fr) 210px;gap:14px}.arena-wrap{height:57vh;min-height:410px}.battle-shell{padding:20px}.top-actions{gap:15px}.perk-card{padding:14px 11px}.perk-card h3{font-size:17px}.results-layout{grid-template-columns:minmax(0,1fr) 270px}.results-table td,.results-table th{padding:11px 9px}}
@media(max-width:850px){.topbar{padding:0 20px}.brand-name{font-size:17px;letter-spacing:3px}.brand-sub{font-size:7px;letter-spacing:2.3px}.brand svg{width:31px}.top-actions{gap:12px}.rank{padding-left:14px}.quiet-button{font-size:9px}.shell{padding:24px 20px 20px}.main-layout{grid-template-columns:1fr}.squad-panel{display:block}.draft-squad .squad-slots{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.draft-squad .squad-note{display:none}.draft-squad .panel-heading{margin-bottom:7px}.draft-squad .squad-slot{margin:0}.draft-squad{margin-top:2px;order:2}.hero-card>.hero-art{max-height:239px}.hero-description{min-height:60px}.intro{margin-bottom:21px}.journey{margin-bottom:23px}.prep-squad{display:none}.prep-layout{grid-template-columns:1fr}.tactic-grid{grid-template-columns:repeat(3,1fr)}.battle-layout{grid-template-columns:1fr}.battle-aside{display:grid;grid-template-columns:1fr 1fr;gap:15px}.live-board{max-height:180px;overflow:auto}.inspect{margin-top:0;align-self:start}.live-feed{display:none}.arena-wrap{height:59vh;min-height:430px}.battle-title h1{font-size:27px}.battle-meta{gap:18px}.battle-aside .board-head{position:sticky;top:0;background:#172024}.results-layout{grid-template-columns:1fr 240px;gap:15px}.results-table{font-size:10px}.score-panel{padding:21px 15px}.hero-card h2{font-size:25px}}
@media(max-width:620px){.topbar{height:70px;padding:0 15px}.rank{display:none}.brand{gap:9px}.brand-name{font-size:16px;letter-spacing:2px}.brand-sub{letter-spacing:1.9px}.top-actions{gap:8px}.shell{padding:22px 15px}.intro{align-items:start}.intro h1{font-size:31px}.intro p{font-size:11px}.step-note{font-size:9px}.step-note b{font-size:19px}.offer-grid{grid-template-columns:1fr}.hero-card{display:grid;grid-template-columns:120px 1fr;min-height:230px}.hero-card>.hero-art{align-self:center;height:160px;margin-top:0}.card-role{top:15px;left:12px}.hero-card-copy{padding:17px 14px 15px 0}.hero-description{min-height:0;margin-top:9px;font-size:10px}.hero-card h2{font-size:25px}.hero-title{font-size:9px}.stats{padding:7px 0;margin-top:10px}.card-passive{font-size:9px;margin:9px 0}.recruit{min-height:40px}.draft-squad .squad-slots{grid-template-columns:1fr}.draft-squad .squad-slot{min-height:65px}.draft-squad .slot-portrait{height:44px}.footer{font-size:8px;flex-wrap:wrap}.journey{gap:8px;font-size:8px;letter-spacing:1px}.journey .line{width:18px}.map-banner{padding:16px;gap:14px}.map-mini{width:75px;height:75px}.map-banner h2{font-size:23px}.map-banner p{font-size:10px}.map-tags{gap:4px}.map-tags span{font-size:8px;padding:2px 5px}.tactic-grid{grid-template-columns:repeat(2,1fr)}.formation-grid{gap:6px}.formation-choice{padding:9px 6px}.formation-choice .choice-head{font-size:9px}.formation-choice svg{width:47px}.perk-grid{grid-template-columns:1fr}.perk-card{min-height:135px;padding:15px 15px 15px 65px}.perk-icon{position:absolute;top:22px;left:17px}.perk-card h3{font-size:21px;margin-top:7px}.perk-card p{font-size:11px}.perk-chosen{padding-top:8px}.upgrade-tab{font-size:10px;padding:10px 7px}.prepare-bottom{flex-direction:column-reverse;align-items:stretch}.prepare-bottom .primary{width:100%}.prepare-bottom p{text-align:center}.battle-title h1{font-size:24px}.battle-top{align-items:flex-start;gap:10px}.battle-meta{gap:12px}.timer{font-size:25px}.alive-count{font-size:10px}.alive-count b{font-size:19px}.arena-wrap{height:63vh;min-height:370px}.arena-label{font-size:8px;top:10px;left:10px}.arena-legend{font-size:8px;left:10px;bottom:10px}.battle-controls p{font-size:9px;text-align:right}.champion-bar{padding:8px 7px;gap:6px}.champion-bar .mini-icon svg{width:16px}.champion-info b{font-size:9px}.champion-info small{display:none}.your-champions{gap:7px}.battle-aside{grid-template-columns:1fr}.live-board{display:none}.inspect{padding:13px}.results-layout{grid-template-columns:1fr}.score-panel{order:-1}.place-medallion{width:67px;height:67px;font-size:32px;margin:11px auto 15px}.score-panel h2{font-size:25px}.score-breakdown{margin:13px 0}.results-table td,.results-table th{padding:10px 8px}.results-table th{font-size:8px}.recap-strip{gap:7px}.recap-round{padding:10px}.recap-round b{font-size:18px}.recap-round span{font-size:9px}.round-track{font-size:9px}.round-track span{width:22px;height:22px}.battle-shell{padding:20px 12px}.toast{font-size:20px}.top-actions .quiet-button{min-height:44px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.001ms!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}
/* Keep choices within reach on laptop screens; portrait tablets keep all controls. */
@media(min-width:621px) and (max-height:900px){
  body[data-screen="draft"] .topbar{height:72px}
  body[data-screen="draft"] .shell{padding-top:22px}
  body[data-screen="draft"] .journey{margin-bottom:20px}
  body[data-screen="draft"] .intro{margin-bottom:20px}
  body[data-screen="draft"] h1{font-size:37px}
  body[data-screen="draft"] .hero-card>.hero-art{max-height:178px}
  body[data-screen="draft"] .hero-description{font-size:10px;min-height:49px;margin-top:10px}
  body[data-screen="draft"] .stats{padding:8px 0;margin-top:11px}
  body[data-screen="draft"] .card-passive{margin:10px 0 13px;font-size:9px}
  body[data-screen="draft"] .tipline{margin-top:13px}
  body[data-screen="draft"] .footer{margin-top:18px}
}
@media(max-width:850px){.prep-squad{display:block;grid-row:1;padding:13px}.prep-squad .squad-slots{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.prep-squad .squad-slot{margin:0;min-height:80px}.prep-squad .panel-heading{margin-bottom:8px}.prep-squad .slot-portrait{width:34px}.prep-squad .slot-name{font-size:10px}.prep-squad .slot-sub{font-size:8px}.prep-squad .slot-order button{min-width:44px;min-height:44px}.prep-squad .squad-note{margin-top:10px;padding-top:10px;font-size:9px}.prep-squad .squad-note b{display:inline;font-size:9px;margin-right:7px}.prep-squad .synergy{display:inline-block;font-size:9px;margin-right:6px}.prep-squad .synergy small{display:none}.control-group button{min-height:44px}.upgrade-tab{min-height:44px}.quiet-button{min-height:44px}}
@media(max-width:620px){.prep-squad .squad-slots{grid-template-columns:1fr}.prep-squad .squad-slot{min-height:60px}.prep-squad .slot-portrait{height:45px;width:45px}.prep-squad .slot-name{font-size:12px}.prep-squad .slot-sub{font-size:9px}.prep-squad .slot-order{flex-direction:row}.prep-squad .slot-order button{min-width:44px;min-height:44px}}
/* Tactical workbench: roster / decisions / tactics remain on one screen. */
body[data-screen="prepare"] .topbar,body[data-screen="battle"] .topbar{height:64px}
body[data-screen="prepare"] .shell{max-width:1500px;padding:16px 24px}
body[data-screen="prepare"] .journey{margin-bottom:12px}
body[data-screen="prepare"] .intro{margin-bottom:16px}
body[data-screen="prepare"] .intro h1{font-size:31px;margin:5px 0}
body[data-screen="prepare"] .intro p{font-size:11px}
.prep-layout{grid-template-columns:220px minmax(0,1fr) 260px;gap:18px;align-items:start}
.prep-layout>.prep-squad{grid-column:1;grid-row:1;display:block;padding:13px}
.prep-workbench{grid-column:2;grid-row:1;min-width:0}
.tactics-rail{grid-column:3;padding:14px}
.tactics-rail .section-title{margin:0 0 12px;display:block}
.tactics-rail .section-title small{display:block;margin-top:5px}
.tactics-rail .tactic-grid{grid-template-columns:1fr;gap:7px}
.tactics-rail .choice{min-height:58px;padding:9px 10px}
.tactics-rail .choice p{font-size:10px;line-height:1.35;margin-top:4px}
.tactics-rail .prepare-bottom{display:flex;flex-direction:column;margin-top:12px;gap:9px;align-items:stretch}
.tactics-rail .prepare-bottom p{font-size:10px;line-height:1.4}
.tactics-rail .primary{min-width:0;width:100%;padding:12px}
.prep-layout .map-banner{padding:13px;gap:12px;min-height:125px;margin-bottom:14px}
.prep-layout .map-banner h2{font-size:24px}.prep-layout .map-mini{width:91px;height:91px}
.prep-layout .map-tags{flex-wrap:wrap;gap:4px;margin-top:7px}
.prep-layout .section-title{margin:14px 0 10px}.tactics-rail .section-title{margin-top:0}
.prep-layout .section-title h2{font-size:18px}
.prep-layout .section-title small{max-width:60%;text-align:right}
.tactics-rail .section-title small{max-width:none;text-align:left}
.prep-layout .formation-choice{min-height:74px;padding:8px}
.prep-layout .formation-choice svg{margin-bottom:4px}
.prep-layout .perk-card{min-height:214px;padding:13px 10px}
.prep-layout .perk-icon{margin:10px 0}.prep-layout .perk-card h3{font-size:18px}
.prep-layout .perk-card p{line-height:1.45}.prep-layout .upgrade-tabs{gap:5px;margin-bottom:10px}
.prep-layout .upgrade-tab{font-size:10px;min-height:44px;padding:8px}
.prep-layout .upgrade-summary{padding:8px;font-size:9px;margin-bottom:0;gap:5px}
.prep-layout .squad-slots{display:block}.prep-layout .squad-slot{min-height:93px;margin:8px 0}
.prep-layout .slot-number{width:18px;height:18px}.prep-layout .slot-portrait{width:36px}
.prep-layout .slot-name{font-size:11px}.prep-layout .slot-order button{min-width:30px;min-height:40px}
.prep-layout .squad-note{margin-top:12px;padding-top:12px;font-size:10px}
body[data-screen="prepare"] .footer{margin-top:14px;padding-top:10px}
/* Persistent, keyed live champion reports. */
.battle-shell{max-width:1500px;padding:16px 24px}
.battle-top{margin-bottom:14px}.battle-title h1{font-size:29px}
.battle-layout{grid-template-columns:minmax(0,1fr) 330px;gap:18px;align-items:start}
.arena-wrap{height:calc(100vh - 230px);min-height:440px;max-height:780px}
.battle-aside{display:block}.fighter-monitor{display:grid;gap:9px}
.monitor-heading{display:flex;justify-content:space-between;align-items:center}.monitor-heading small{font-size:9px;color:var(--muted)}
.fighter-report{padding:9px 12px;background:linear-gradient(110deg,#25312f,#172125);border:1px solid #40504b;border-left:3px solid var(--hero);border-radius:6px}
.fighter-report.selected{border-color:var(--gold)}.fighter-report.fallen{opacity:.56}
.report-awareness .attack-state{color:#ffcf9c;font-size:11px;line-height:1.3;overflow-wrap:anywhere}
.fighter-report-head:focus-visible{outline:2px solid var(--gold);outline-offset:3px;border-radius:3px}
.fighter-report-head{display:flex;align-items:center;gap:10px;width:100%;background:none;border:0;padding:0;text-align:left;min-height:44px}
.report-portrait{display:block;width:40px;height:44px;overflow:hidden;flex:none}.report-portrait svg{width:52px;max-height:none;margin:-7px 0 0 -6px}
.fighter-report-head b{font:17px Georgia}.fighter-report-head small{display:block;color:var(--hero);font-size:9px;margin-top:3px}
.fighter-status{font-size:9px;color:#d8d6b3;margin-left:auto}
.report-hp,.report-cooldown{display:flex;justify-content:space-between;font-size:10px;margin:7px 0 4px;color:#b5c1b8;gap:5px}
.report-hp b,.report-cooldown b{font-weight:400;color:#e1e6d9;font-variant-numeric:tabular-nums}
.fighter-report .health-track{height:5px;display:block;background:#0d1518}.fighter-report .health-track span{display:block;height:100%;background:var(--hero)}
.cooldown-track{height:3px;background:#0d1518}.cooldown-track span{height:100%;display:block;background:#8eaec5}
.report-numbers{display:flex;gap:22px;margin-top:8px;font-size:10px;color:#96a69f}.report-numbers b{color:#e8e4cf;font-variant-numeric:tabular-nums;margin-left:5px}
.report-secondary{display:flex;flex-wrap:wrap;gap:5px 12px;font-size:9px;color:#a7b8b0;margin-top:6px}.report-secondary b{font-weight:400;color:#d6ded6}
.report-perks{border-top:1px solid #92a78820;margin-top:7px;padding-top:6px;display:flex;gap:5px;flex-wrap:wrap;font-size:9px;color:#d4bf87}.report-perks span{line-height:1.4}.report-perks .muted{color:#87958d}
.battle-aside .inspect{margin-top:10px;padding:10px 12px}.battle-aside .inspect p{font-size:10px;margin-top:6px}
.battle-standings summary{cursor:pointer;min-height:36px;color:#acbaa9;font-size:11px;padding:10px 0}
.battle-standings .live-board{padding:14px;max-height:none;overflow:visible;display:block}.battle-standings .live-feed{display:block}
.battle-standings #live-rows{display:grid;grid-template-columns:1fr 1fr;gap:0 25px}
@media(min-width:701px) and (max-width:1100px){
.prep-layout{grid-template-columns:185px minmax(0,1fr) 225px;gap:12px}
.prep-layout>.prep-squad{padding:9px}.prep-layout .slot-portrait{width:28px}.prep-layout .slot-number{display:none}
.prep-layout .slot-order button{min-width:44px;min-height:44px}
.prep-layout .map-mini{width:65px;height:65px}.prep-layout .map-banner h2{font-size:20px}
.prep-layout .map-banner p{font-size:10px}.prep-layout .map-tags span{font-size:8px}
.prep-layout .perk-grid{gap:7px}.prep-layout .perk-card{padding:10px 8px;min-height:222px}.prep-layout .perk-card h3{font-size:16px}
.prep-layout .formation-grid{gap:5px}.prep-layout .formation-choice .choice-head{font-size:9px}
.battle-layout{grid-template-columns:minmax(0,1fr) 290px;gap:12px}.battle-shell{padding:14px}
.fighter-report{padding:8px 10px}.arena-wrap{min-height:425px}
}
@media(min-width:701px) and (max-width:900px){
.prep-layout{grid-template-columns:minmax(0,1fr) 235px}
.prep-layout>.prep-squad{grid-column:1;grid-row:1}.prep-workbench{grid-column:1;grid-row:2}.tactics-rail{grid-column:2;grid-row:1 / span 2}
.prep-layout .squad-slots{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}
.prep-layout .squad-slot{flex-wrap:wrap;min-height:90px;margin:0;gap:3px}.prep-layout .slot-order{flex-direction:row;margin-left:0}.prep-layout .slot-order button{min-height:30px}
.prep-layout .squad-note{display:none}.prep-layout .slot-portrait{display:none}
.prep-layout .perk-card{min-height:225px}.prep-layout .panel-heading{margin-bottom:7px}
.battle-layout{grid-template-columns:minmax(0,1fr) 270px}.battle-shell{padding:12px}
}
@media(max-width:700px){.prep-layout{display:flex;flex-direction:column}.prep-layout>*{width:100%}.prep-layout>.prep-squad{order:0}.prep-workbench{order:1}.tactics-rail{order:2}.prep-layout .squad-slots{display:block}.battle-layout{grid-template-columns:1fr}.arena-wrap{height:65vh}.battle-aside{display:block}}
body[data-screen="prepare"] .intro p{display:none}
body[data-screen="prepare"] .intro{margin-bottom:12px}
body[data-screen="prepare"] .journey{margin-bottom:7px}
body[data-screen="prepare"] .footer{display:none}
.tactics-rail .choice{padding:7px 9px;min-height:55px}
.tactics-rail .choice-head{line-height:1.3}.tactics-rail .choice p{line-height:1.3;font-size:10px}
.tactics-rail .prepare-bottom p{display:none}
.tactics-rail .section-title{margin-bottom:10px}
.formation-preview{margin-top:18px;border:1px solid #41534a;border-radius:6px;overflow:hidden;background:#1c2929}
.preview-caption{padding:10px 12px;display:flex;justify-content:space-between;gap:8px;border-bottom:1px solid #41534a}
.preview-caption small{font-size:9px;color:#9faa94}
.formation-preview canvas{width:100%;height:200px;object-fit:contain;display:block}
.formation-preview p{font-size:10px;color:#9daa98;padding:9px 12px;border-top:1px solid #41534a}
.fighter-report{line-height:1.25}.fighter-report-head{line-height:1.25}
.report-hp,.report-cooldown,.report-numbers,.report-secondary,.report-perks{line-height:1.25}
.report-perks span{line-height:1.25}.fighter-report .health-track{margin-top:0}
.battle-standings+.battle-standings{border-top:1px solid #35453b}
@media(min-width:701px) and (max-height:800px){
body[data-screen="prepare"] .shell{padding-top:12px}.prep-layout .perk-card{min-height:205px}
.formation-preview canvas{height:175px}.formation-preview{margin-top:12px}
body[data-screen="battle"] .battle-top{margin-bottom:10px}.fighter-monitor{gap:8px}
}
/* Keep paused combat visible for tactical inspection. */
.pause-overlay{inset:auto 12px 12px auto;display:flex;align-items:center;gap:12px;padding:10px 14px;border:1px solid #ac9864;border-radius:5px;background:#122020f2;backdrop-filter:none}
.pause-overlay h2{font-size:17px;margin:0}.pause-overlay p{display:none}.pause-overlay .primary{min-height:38px;padding:8px 12px;font-size:10px}
@media(max-width:900px){.pause-overlay h2{display:none}}
@media(min-width:901px) and (max-width:1100px){
.prep-layout .squad-note{font-size:9px;line-height:1.45;margin-top:8px;padding-top:8px}
.prep-layout .synergy{padding:6px;margin-top:6px;font-size:9px}.prep-layout .synergy small{font-size:8px;line-height:1.3}
}
@media(min-width:701px){
body[data-screen="battle"] .battle-shell{padding-top:12px}
body[data-screen="battle"] .footer{margin-top:12px;padding-top:10px}
}
.prep-layout .upgrade-summary{display:none}
@media(min-width:901px) and (max-width:1100px){.prep-layout .squad-slot{min-height:89px}.prep-layout .squad-note{margin-top:7px;padding-top:7px}.prep-layout .synergy small{display:none}}
.squad-picker{margin-top:12px;padding:10px 12px;border:1px solid #455349;border-radius:5px;background:#172225}
.squad-picker-label{font-size:10px;letter-spacing:1px;color:#d1d8c5;display:flex;justify-content:space-between;gap:8px}.squad-picker-label span{letter-spacing:0;color:#97a79d;font-size:10px}
#squad-buttons{display:flex;gap:5px;margin-top:8px;flex-wrap:wrap}
#squad-buttons button{min-height:44px;min-width:44px;flex:1;border:1px solid var(--team);color:var(--team);background:#101a20;border-radius:4px;font-size:11px;font-weight:bold}
#squad-buttons button[aria-pressed="true"]{background:var(--team);color:#152024;box-shadow:0 0 0 2px #f5efce55}
#squad-buttons button.eliminated{opacity:.4;text-decoration:line-through}
#squad-composition{font-size:10px;line-height:1.6;display:flex;gap:10px;margin-top:8px;flex-wrap:wrap}#squad-composition small{color:#9eaea5}#squad-composition .fallen{opacity:.5;text-decoration:line-through}
.team-badge{display:inline-grid;place-items:center;min-width:18px;height:18px;background:var(--team);color:#111d20;border-radius:3px;font-size:9px;font-style:normal;margin-right:4px}
.arena-legend{max-width:calc(100% - 24px);flex-wrap:wrap;gap:4px 12px;font-size:8px;text-shadow:0 1px 2px #000}
.battle-orders{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:12px;padding:10px 12px;border:1px solid #5d654f;background:#212c28;border-radius:6px}
.order-buttons{display:flex;gap:7px}.order-buttons button{min-height:44px;padding:8px 16px;border:1px solid #b8a475;background:#2d3930;border-radius:4px;color:#ecd5a0;font-weight:bold;font-size:12px}.order-buttons button.active{background:#d9bc80;color:#192420}.order-buttons button:disabled{opacity:.45}.order-buttons button.active:disabled{opacity:1}
.battle-orders b{display:block;font-size:11px;color:#e7d8ae}.battle-orders small{display:block;font-size:10px;color:#a8b7a3;margin-top:4px}
.report-awareness{display:grid;gap:3px;font-size:9px;color:#bfcfc8;margin-top:7px}.report-awareness span:empty{display:none}.report-awareness [data-stat="danger"]{color:#ffc086;font-weight:bold}.report-awareness [data-stat="effects"]{color:#b9d5f1}
@media(min-width:701px){body[data-screen="battle"] .arena-wrap{height:calc(100vh - 310px);min-height:420px}.fighter-report{padding-top:7px;padding-bottom:7px}}
@media(max-width:700px){.battle-orders{gap:8px}.order-buttons{width:100%}.order-buttons button{flex:1;padding:8px}}
.battle-orders{position:sticky;top:8px;z-index:4;box-shadow:0 4px 16px #0003}
@media(min-width:701px){.fighter-report-head{min-height:36px}.report-portrait{height:36px}.report-hp,.report-cooldown{margin-top:5px}.report-numbers{margin-top:5px}.report-secondary{margin-top:4px}.report-awareness{margin-top:5px}.report-perks{margin-top:5px;padding-top:4px}}
.battle-orders>div:last-child{flex:1;min-width:220px}.order-meter{height:4px;margin-top:7px;background:#101c1c;border-radius:3px;overflow:hidden;max-width:420px}.order-meter span{display:block;height:100%;background:#d9bc80}.order-meter[data-phase="cooling"] span{background:#95b6c6}.order-meter[data-phase="ready"] span{background:#b6cd99}#order-feedback{font-size:10px;color:#c5d9ba;display:block;min-height:13px;margin-top:4px}
@media(prefers-reduced-motion:reduce){.toast{animation:none}.hero-card,.health-track span{transition:none}}
/* Upgrade cards are the primary decision: compact, vivid, and clearly selectable. */
.prep-layout .perk-workshop{padding:12px;border:1px solid #8b8256;border-radius:8px;background:radial-gradient(ellipse at top,#72633224,transparent 80%),#202a29;box-shadow:0 6px 20px #0002;margin:12px 0}
.prep-layout .perk-workshop>.section-title{margin:0 0 10px}.prep-layout .perk-workshop>.section-title h2{color:#f6dc9d;font-size:21px}.prep-layout .perk-workshop>.section-title small{color:#e0d1ac}
.prep-layout .perk-grid{gap:10px}
.prep-layout .perk-card{--perk:#91e2b1;--perk-bg:#294c40;display:grid;grid-template-columns:34px minmax(0,1fr);grid-template-rows:auto auto 1fr auto;gap:7px 8px;align-content:start;align-items:start;min-height:164px;padding:11px 12px;border:1px solid var(--perk);border-top:3px solid var(--perk);background:linear-gradient(145deg,var(--perk-bg),#1c292b 85%);border-radius:7px;box-shadow:0 3px 10px #0003;transition:border-color .15s,box-shadow .15s,transform .15s}
.prep-layout .perk-card.rare{--perk:#87cbff;--perk-bg:#284b6d}
.prep-layout .perk-card.legendary{--perk:#ffce74;--perk-bg:#67502b}
.prep-layout .perk-card .perk-icon{grid-column:1;grid-row:1;position:static;margin:0;color:var(--perk);width:32px;height:32px;display:grid;place-items:center;border:1px solid var(--perk);border-radius:7px;background:#ffffff0b;box-shadow:inset 0 0 12px #ffffff0b}
.prep-layout .perk-card .perk-icon svg{width:24px;height:24px}
.prep-layout .perk-card .rarity{grid-column:2;grid-row:1;align-self:center;justify-self:end;color:var(--perk);font-size:8px;letter-spacing:1px;font-weight:bold;padding:3px 5px;border-radius:3px;background:#07161b66;line-height:1.3}
.prep-layout .perk-card h3{grid-column:1 / -1;grid-row:2;font-size:18px;line-height:1.15;color:#f6f2df;margin:1px 0 0;text-wrap:balance}
.prep-layout .perk-card p{grid-column:1 / -1;grid-row:3;font-size:11px;line-height:1.4;color:#d3e1da;margin:0}
.prep-layout .perk-card .perk-chosen{grid-column:1 / -1;grid-row:4;align-self:end;width:100%;margin:2px 0 0;padding:6px 8px;text-align:center;border:1px solid var(--perk);border-radius:4px;font-size:10px;font-weight:bold;color:var(--perk);background:#ffffff08;line-height:1.3}
.prep-layout .perk-card:hover{transform:translateY(-2px);box-shadow:0 5px 16px #0005,inset 0 0 22px #ffffff0c}
.prep-layout .perk-card.active{outline:2px solid #ffe4a0;outline-offset:2px;box-shadow:0 0 18px #e1be692b,inset 0 0 22px #ffffff0e}
.prep-layout .perk-card.active .perk-chosen{background:#f0d18f;border-color:#f0d18f;color:#252d26}
.prep-layout .perk-card:focus-visible{outline:3px solid #fff1c8;outline-offset:3px}
@media(min-width:701px) and (max-width:1100px){.prep-layout .perk-workshop{padding:10px}.prep-layout .perk-grid{gap:8px}.prep-layout .perk-card{padding:9px;min-height:158px;grid-template-columns:28px minmax(0,1fr);column-gap:4px}.prep-layout .perk-card h3{font-size:16px}.prep-layout .perk-card .perk-icon{width:28px;height:28px}.prep-layout .perk-card .rarity{font-size:7px;padding:3px;letter-spacing:.6px}}
@media(max-width:700px){.prep-layout .perk-card{min-height:0;grid-template-columns:36px minmax(0,1fr);grid-template-rows:auto auto auto}.prep-layout .perk-card .perk-icon{grid-row:1 / 3}.prep-layout .perk-card .rarity{grid-row:1;grid-column:2;justify-self:start}.prep-layout .perk-card h3{grid-row:2;grid-column:2}.prep-layout .perk-card p{grid-row:3;grid-column:2}.prep-layout .perk-card .perk-chosen{grid-row:4;grid-column:2}}
@media(prefers-reduced-motion:reduce){.prep-layout .perk-card{transition:none}.prep-layout .perk-card:hover{transform:none}}
/* Round report puts the three champions beside the next-round decision. */
.champion-recap{padding:16px;border:1px solid #736d4c;border-radius:8px;background:#1c2929}.champion-recap .section-title{margin:0 0 14px}.recap-fighters{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.recap-fighter{padding:14px;background:linear-gradient(145deg,#2a3938,#182326);border:1px solid #49594f;border-radius:7px;min-width:0}.recap-fighter-head{display:flex;align-items:center;gap:8px;margin-bottom:18px}.recap-fighter-head>svg{width:44px;height:58px;flex-shrink:0}.recap-fighter h3{font-size:19px;margin:0 0 4px;color:#f0dfb2}.recap-fighter small{font-size:10px;color:#bac9be}.recap-metric{display:grid;grid-template-columns:1fr auto;gap:6px;font-size:12px;margin:12px 0;color:#cfdbd2}.recap-metric strong{color:#f2dfb0}.recap-bar{grid-column:1/-1;height:5px;background:#101b1f;border-radius:3px;overflow:hidden}.recap-bar i{display:block;height:100%;background:#e7b576}.healing .recap-bar i{background:#82d9b3}.recap-fighter dl{border-top:1px solid #49594f;margin:16px 0 0;padding-top:10px;font-size:11px}.recap-fighter dl>div{display:flex;justify-content:space-between;gap:5px;margin:8px 0}.recap-fighter dt{color:#b8c5bc}.recap-fighter dd{margin:0;color:#ece8d7;font-weight:bold}.recap-note{font-size:10px;color:#adbbb2;line-height:1.5;margin:12px 0 0}.round-standings{margin-top:16px}.round-standings>summary{cursor:pointer;padding:14px;color:#e1cd9a;background:#202b2b;border:1px solid #46544b;border-radius:5px;font-size:12px}.round-standings[open]>summary{margin-bottom:10px}
@media(max-width:1100px){.recap-fighters{gap:8px}.recap-fighter{padding:10px}.recap-fighter-head{flex-wrap:wrap}.recap-fighter h3{font-size:17px}}
@media(max-width:700px){.recap-fighters{grid-template-columns:1fr}.recap-fighter-head{flex-wrap:nowrap;margin-bottom:8px}.recap-fighter-head>svg{height:44px}.champion-recap{padding:12px}}

/* Persistent build identity; does not intercept game controls. */
.version-badge{position:fixed;left:max(8px,env(safe-area-inset-left));bottom:max(5px,env(safe-area-inset-bottom));z-index:20;padding:3px 6px;border-radius:4px;background:#111b1de6;color:#b5bfae;font:10px/1.3 monospace;pointer-events:none;user-select:none;}

/* Local direct-control experiment: pointer capture supports tablet steering. */
.direct-controls{display:flex;align-items:center;gap:16px;flex-wrap:wrap;padding:12px 18px;margin-bottom:12px;background:#20302e;border:1px solid #a28e56;border-radius:10px}
.direct-controls p{margin:5px 0}.direct-controls small{color:#c2cbbb}.direct-state{font-size:12px;color:#f8d788}.direct-rally{min-width:150px;min-height:54px}
.direct-stick{width:100px;height:100px;border:2px solid #b8a16c;border-radius:50%;background:#0f201e;display:grid;place-items:center;touch-action:none;flex-shrink:0;user-select:none}
.direct-stick span{width:34px;height:34px;border-radius:50%;background:#e5c77e;box-shadow:0 0 14px #e5c77e55;pointer-events:none}

.direct-tutorial{width:min(860px,94vw);max-height:95dvh;overflow:auto;background:#142522;color:#f4e6bd;border:1px solid #bfa56d;border-radius:16px;padding:20px}.direct-tutorial::backdrop{background:#061211df}.direct-tutorial canvas{width:100%;height:auto;border-radius:12px}.direct-tutorial .lesson{min-height:36px;font-size:18px}.direct-tutorial .skip{margin-top:12px}.direct-controls .direct-rally:not(:disabled){box-shadow:0 0 18px #edc66c45;border:2px solid #ffe6a0}.direct-controls .direct-rally:disabled{opacity:.75}

.rally-charge{width:110px;height:16px;accent-color:#f2ce7d}.match-finish,.score-panel{animation:triad-result-in .45s ease-out}@keyframes triad-result-in{from{opacity:0;transform:translateY(18px) scale(.97)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){.match-finish,.score-panel{animation:none}}@media(max-width:900px){.direct-controls{gap:10px;padding:8px}.direct-controls p{font-size:12px}.direct-controls small{font-size:11px}.direct-stick{width:82px;height:82px}.direct-rally{min-width:120px}.rally-charge{width:80px}}

/* Release identity stays visible in the header on every game screen. */
.brand-version{display:block;color:var(--gold);font:600 11px/1.4 var(--sans, sans-serif);letter-spacing:1px;margin-top:2px}
.topbar .brand{flex-shrink:0}.topbar .top-actions{gap:clamp(8px,1.5vw,20px);flex-wrap:wrap;justify-content:flex-end}
@media(max-width:1000px){.topbar,body[data-screen] .topbar{height:auto;min-height:80px;padding-top:10px;padding-bottom:10px;flex-wrap:wrap;gap:8px}.topbar .top-actions{flex:1;min-width:300px}.topbar .quiet-button{min-height:36px}.topbar .brand-sub{display:none!important}}
@media(max-width:620px){.topbar .top-actions{justify-content:flex-start;min-width:0;flex-basis:100%;gap:8px 14px}}

/* Battle controls occupy the unused margins around the circular arena. */
.direct-movement,.direct-ability{display:contents}
.arena-wrap:has(.arena-controls){container-type:size}
.arena-controls{position:absolute;inset:58px 14px 36px;pointer-events:none}
.arena-controls .direct-controls{height:100%;padding:0;margin:0;border:0;background:none;display:flex;justify-content:space-between;align-items:center;flex-wrap:nowrap;gap:0}
.arena-controls .direct-movement,.arena-controls .direct-ability{display:flex;flex-direction:column;gap:10px;align-items:center;text-align:center;width:calc((100cqw - 100cqh)/2 - 24px);max-width:220px;pointer-events:auto}
.arena-controls .direct-controls strong{font-size:11px;letter-spacing:1px}.arena-controls .direct-controls p{font-size:12px;line-height:1.5}.arena-controls .direct-controls small{font-size:10px;line-height:1.5;display:block}
.arena-controls .direct-rally{min-width:0;width:100%;min-height:44px;padding:10px;font-size:12px}.arena-controls .direct-state{font-size:11px}.arena-controls .rally-charge{width:100%;max-width:120px}
.arena-controls .direct-stick{width:76px;height:76px;flex:none}
@container (max-aspect-ratio: 17/10){
 .arena-controls{inset:auto 10px 30px;height:94px}.arena-controls .direct-controls{gap:12px;background:#142522eb;border-radius:6px;padding:6px}
 .arena-controls .direct-movement{width:auto;max-width:none;flex:1;flex-direction:row;text-align:left;gap:10px}.arena-controls .direct-ability{width:120px;gap:3px}
 .arena-controls .direct-controls small{display:none}.arena-controls .direct-stick{width:64px;height:64px}
 .arena-wrap>canvas,body.online-game .arena-wrap>canvas{height:calc(100% - 125px)}
}
@media(min-width:1001px){
 body[data-screen="battle"] .topbar{height:68px;min-height:0}
 body[data-screen="battle"] .battle-shell,body.online-game[data-screen="battle"] #online{padding:8px 20px 10px;max-width:1800px}
 body[data-screen="battle"] .battle-top,body.online-game[data-screen="battle"] .intro{margin:0 0 8px}
 body[data-screen="battle"] .battle-title h1,body.online-game[data-screen="battle"] .intro h1{font-size:26px;margin:3px 0}
 body.online-game[data-screen="battle"] .intro p,body[data-screen="battle"] .footer{display:none}
 body[data-screen="battle"] .arena-wrap,body.online-game[data-screen="battle"] .arena-wrap{height:calc(100dvh - 304px);min-height:280px;max-height:780px}
 body[data-screen="battle"] .battle-controls{margin-top:4px}
 body[data-screen="battle"] .squad-picker{padding:6px;margin:4px 0}
 body[data-screen="battle"] #squad-buttons{margin-top:4px}
 body[data-screen="battle"] #squad-composition{margin-top:4px}
 body[data-screen="battle"] .battle-standings{display:inline-block;vertical-align:top;margin-right:18px}
 body[data-screen="battle"] .fighter-report{padding:6px 9px}
 body[data-screen="battle"] .fighter-report-head{min-height:36px}body[data-screen="battle"] .fighter-report-head .report-portrait{height:36px}
 body[data-screen="battle"] .report-hp,body[data-screen="battle"] .report-cooldown{margin:4px 0 3px}
 body[data-screen="battle"] .report-numbers,body[data-screen="battle"] .report-secondary,body[data-screen="battle"] .report-awareness{margin-top:4px}
 body[data-screen="battle"] .report-perks{margin-top:4px;padding-top:4px}
 body[data-screen="battle"] .battle-standings[open]{display:block}
}

.battle-controls[hidden]{display:none}
.arena-controls .control-group button{min-height:36px}

.arena-wrap .pause-overlay{z-index:3}
@media(min-width:1001px){body[data-screen="battle"] .fighter-monitor{max-height:calc(100dvh - 150px);overflow-y:auto}}

/* Notices sit above Rally without changing the height of either control or hero panels. */
.arena-controls .direct-ability{position:relative}
.arena-controls #battle-toast{position:absolute;bottom:calc(100% + 12px);left:0;right:0;pointer-events:none}
#battle-toast .toast{position:static;transform:none;white-space:normal;overflow-wrap:anywhere;padding:10px 12px;font:16px/1.35 var(--serif);box-shadow:none;animation:battle-notice 2.5s forwards}
@keyframes battle-notice{0%,100%{opacity:0}12%,82%{opacity:1}}
@media(prefers-reduced-motion:reduce){#battle-toast .toast{animation:none}}

/* Battle uses remaining viewport height, rather than a fixed subtraction. */
@media(min-width:768px){
 body[data-screen="battle"]{height:100dvh;overflow:hidden;display:flex;flex-direction:column}
 body[data-screen="battle"] #app{height:100%;display:flex;flex-direction:column;min-height:0}
 body[data-screen="battle"] .topbar{flex:none;height:64px;min-height:64px;padding-top:8px;padding-bottom:8px}
 body[data-screen="battle"] .brand-sub{display:none}
 body[data-screen="battle"] .battle-shell,body.online-game[data-screen="battle"] #online{display:flex;flex-direction:column;flex:1;min-height:0;width:100%;max-width:1920px;padding:6px 16px 8px}
 body[data-screen="battle"] .battle-layout{flex:1;min-height:0;align-items:stretch;grid-template-columns:minmax(0,1fr) 260px;grid-template-rows:minmax(0,1fr);gap:12px}
 body[data-screen="battle"] .battle-layout>section:first-child{min-height:0;display:flex;flex-direction:column}
 body[data-screen="battle"] .arena-wrap,body.online-game[data-screen="battle"] .arena-wrap{flex:1;height:auto;min-height:180px;max-height:none}
 body[data-screen="battle"] .fighter-monitor{min-height:0;max-height:100%;overflow:auto}
 body[data-screen="battle"] .battle-top,body.online-game[data-screen="battle"] .intro{flex:none;margin:0 0 6px}
 body[data-screen="battle"] .battle-title h1,body.online-game[data-screen="battle"] .intro h1{font-size:24px;margin:2px 0}
 body[data-screen="battle"] .footer,body.online-game[data-screen="battle"] .intro p{display:none}
 body[data-screen="battle"] .squad-picker{flex:none;padding:4px;margin:3px 0}
 body[data-screen="battle"] .battle-standings{margin:0}.battle-standings[open]{position:absolute;z-index:5;bottom:8px;background:#172628;max-height:70vh;overflow:auto}
 body.online-game[data-screen="battle"] #connection:empty{display:none}
 body.online-game[data-screen="battle"] .online-inspect{padding:5px 10px;margin-top:4px;font-size:10px}
}
@media(min-width:768px) and (max-width:1100px){body[data-screen="battle"] .battle-layout{grid-template-columns:minmax(0,1fr) 218px}body[data-screen="battle"] .top-actions{gap:8px}body[data-screen="battle"] .brand-name{font-size:20px}}

/* Short desktop embeds keep the battlefield and controls inside the viewport. */
@media(min-width:768px) and (max-height:600px){
 body[data-screen="battle"] .topbar{height:48px;min-height:48px;padding-top:4px;padding-bottom:4px}
 body[data-screen="battle"] .brand svg{width:28px;height:28px}
 body[data-screen="battle"] .brand-name{font-size:18px}
 body[data-screen="battle"] .topbar .quiet-button{min-height:28px;font-size:10px}
 body[data-screen="battle"] .battle-top,body.online-game[data-screen="battle"] .intro{margin-bottom:4px}
 body[data-screen="battle"] .battle-title h1,body.online-game[data-screen="battle"] .intro h1{font-size:20px}
 body[data-screen="battle"] .arena-wrap,body.online-game[data-screen="battle"] .arena-wrap{min-height:120px}
 body[data-screen="battle"] .squad-picker>div:first-child,body[data-screen="battle"] #squad-composition{display:none}
 body[data-screen="battle"] #squad-buttons{margin:0}
 body[data-screen="battle"] .squad-select{padding:4px;min-height:36px}
 body[data-screen="battle"] .battle-standings,body[data-screen="battle"] .inspect-details{font-size:10px;padding:2px 0;margin:0}
 body[data-screen="battle"] .arena-controls{inset:30px 10px 25px}
 body[data-screen="battle"] .arena-controls .direct-stick{width:48px;height:48px}
 body[data-screen="battle"] .arena-controls .direct-controls strong,body[data-screen="battle"] .arena-controls .direct-controls small{display:none}
 body[data-screen="battle"] .arena-controls .direct-controls p{font-size:10px;line-height:1.2}
 body[data-screen="battle"] .arena-controls .direct-movement,body[data-screen="battle"] .arena-controls .direct-ability{gap:5px}
}
.match-score-breakdown{margin-top:12px;padding:12px}
.match-score-breakdown h2{font-size:20px;margin-bottom:8px}
.match-score-breakdown table{width:100%;font-size:13px;border-collapse:collapse;table-layout:fixed}
.match-score-breakdown th,.match-score-breakdown td{padding:7px 4px;text-align:right;border-bottom:1px solid #38483e;overflow-wrap:anywhere}
.match-score-breakdown th:first-child{text-align:left}
.match-score-breakdown tfoot{color:var(--gold);font-weight:bold}
.rank-change{white-space:nowrap;font-variant-numeric:tabular-nums}
.ranked-progress{padding:12px;margin:12px 0}
.ranked-progress h2{font-size:20px;margin-bottom:8px}
.ranked-progress p{margin:8px 0}
.ranked-progress small{display:block;line-height:1.5;color:var(--muted)}
.results-table .round-points{font-variant-numeric:tabular-nums;white-space:nowrap}
@media(min-width:621px){.results-table th,.results-table td{padding-left:8px;padding-right:8px}}
@media(max-width:600px){.match-score-breakdown{padding:8px}.match-score-breakdown table{font-size:11px}.match-score-breakdown th,.match-score-breakdown td{padding:6px 2px}.prep-standings th,.prep-standings td{padding:5px 3px}}

.profile-link{display:inline-flex;align-items:center;gap:9px;padding:9px 10px;border:1px solid #d9bc8033;border-radius:6px;color:#e2d8bd;text-decoration:none;line-height:1.4;overflow-wrap:anywhere}.profile-link:hover{background:#d9bc8010;border-color:#d9bc8077;color:#f1d9a4}.profile-link:focus-visible{outline:3px solid #eac67f;outline-offset:3px}.profile-settings-icon{font-size:20px;line-height:1;flex-shrink:0;color:#d9bc80}.profile-link span:first-child{min-width:0}
.topbar .sound-toggle{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;padding:8px;color:var(--gold,#d9bf80)}
.sound-toggle svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.sound-toggle[aria-pressed="false"] .sound-waves,.sound-toggle[aria-pressed="true"] .sound-muted{display:none}
.sound-toggle[aria-pressed="false"]{color:var(--muted,#9aafb0)}
.sound-toggle:focus-visible{outline:2px solid var(--gold,#d9bf80);outline-offset:3px}
/* Compact final report shared by Online and Practice. */
.match-results-layout{display:grid;grid-template-columns:minmax(240px,310px) minmax(0,1fr);gap:20px;align-items:start}
.match-result-summary,.match-result-details{min-width:0}
.match-result-summary .score-panel{padding:20px}
.online-game .match-result-summary .match-finish{padding:20px}
.match-result-summary .placement{font-size:64px;line-height:1.1}
.match-result-summary .rating-result{font-size:18px;margin:16px 0}
.match-result-summary .primary{width:100%;margin:8px 0}
.match-result-summary .ranked-progress{padding:16px;margin-top:12px}
.match-result-summary .ranked-progress h2{font-size:21px}
.match-result-summary .ranked-progress p{font-size:13px}
.result-tabs{display:flex;gap:8px;margin-bottom:12px}
.result-tabs button{padding:12px 18px;background:#182326;border:1px solid #3b4d50;border-radius:5px;color:#adc4cc;font:inherit;cursor:pointer}
.result-tabs button[aria-selected=true]{color:#f0d99f;background:#d9bc801a;border-color:#d9bc80}
.result-tabs button:focus-visible{outline:2px solid #f0d99f;outline-offset:3px}
.match-result-details [hidden]{display:none!important}
.match-result-details [role=tabpanel]{min-width:0}
.match-result-details .prep-standings{overflow-x:auto}
.match-result-details .prep-standings td,.match-result-details .prep-standings th{padding:10px 12px}
.rival-statistics{margin-top:12px}
.rival-statistics>.hero-contribution{margin:12px 0}
@media(max-width:760px){.match-results-layout{grid-template-columns:1fr;gap:16px}.match-result-summary .final-champions{display:none}.result-tabs button{flex:1;padding:12px 8px}.match-result-summary .placement{font-size:48px}}
.round-result-tabs button{min-width:64px}
.champions-round-title{font-size:22px;margin:12px 0}
.round-rival-champions{margin-top:12px}
.round-rival-champions>.hero-contribution{margin:12px 0}
.leaderboard-page .intro { margin-bottom:28px; }
.leaderboard-controls { display:grid; grid-template-columns:minmax(140px,200px) minmax(200px,360px); gap:18px 24px; padding:22px; margin-bottom:24px; background:linear-gradient(135deg,#24312e,#172024); }
.leaderboard-controls label { display:flex; flex-direction:column; gap:9px; color:var(--muted); font-size:12px; letter-spacing:.4px; min-width:0; }
.leaderboard-controls select { width:100%; min-width:0; min-height:46px; padding:11px 14px; background:#111c20; color:#eed99c; border:1px solid #52605d; border-radius:6px; font:14px var(--sans,sans-serif); }
.leaderboard-controls select:focus-visible,.leaderboard-page #leaderboard-retry:focus-visible { outline:2px solid var(--gold); outline-offset:3px; }
.leaderboard-page #leaderboard { display:grid; gap:16px; }
.leaderboard-page #leaderboard>.panel { padding:20px 22px; overflow:hidden; }
.leaderboard-page #leaderboard h2 { margin:0 0 18px; font-size:23px; }
.leaderboard-page #leaderboard p { margin:0; font-size:13px; line-height:1.75; color:var(--muted); max-width:90ch; }
.leaderboard-page #leaderboard>.panel>p { padding:12px 0; }
.leaderboard-page .results-table { font-size:14px; font-variant-numeric:tabular-nums; }
.leaderboard-page .results-table th { padding:14px 16px; font-size:10px; line-height:1.5; }
.leaderboard-page .results-table td { padding:17px 16px; line-height:1.5; }
.leaderboard-page .results-table tbody tr:last-child td { border-bottom:0; }
.leaderboard-page .results-table tbody tr:not(.you):hover { background:#ffffff04; }
.leaderboard-page #leaderboard-retry { margin-top:24px; padding:12px 18px; border:1px solid var(--line); border-radius:6px; min-height:44px; }
@media(max-width:620px){
 .leaderboard-controls { grid-template-columns:1fr; padding:18px; gap:16px; margin-bottom:18px; }
 .leaderboard-page #leaderboard>.panel { padding:12px; }
 .leaderboard-page .results-table th { padding:12px 10px; letter-spacing:.4px; }
 .leaderboard-page .results-table td { padding:14px 10px; }
 .leaderboard-page .results-table { font-size:12px; }
 .leaderboard-page #leaderboard { gap:14px; }
}
