/* Broadcast: static map image, one dynamic canvas, compact spectator controls. */
.replay-broadcast{max-width:1640px;margin:auto;color:#e9f4ee}.replay-top{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 0}.replay-top h1{font-size:1.05rem;letter-spacing:.1em;margin:6px 0}.replay-top h1 span{font-size:.66rem;color:#82dcad;padding:3px 6px;border:1px solid #436951;border-radius:3px;vertical-align:middle}.replay-controls{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.replay-controls button{font-size:.78rem;padding:9px 11px;min-height:36px}.replay-speeds{display:flex;background:#18251f;border-radius:5px;overflow:hidden}.replay-speeds button{border:0;border-radius:0}.replay-speeds .selected{background:#80dba8;color:#102018}.replay-scoreboard{display:grid;grid-template-columns:1fr 55px 185px 55px 1fr;gap:16px;align-items:center;background:#17231e;border-block:1px solid #374c40;padding:13px 24px}.replay-scoreboard>div:first-child,.replay-scoreboard>div:last-child{display:flex;align-items:center;gap:12px}.replay-scoreboard>div:last-child{flex-direction:row-reverse}.replay-scoreboard .team-logo{width:44px;height:44px;object-fit:contain}.replay-scoreboard>div>strong{font-size:1.4rem}.replay-scoreboard>div>span{font-size:.77rem;color:#aec5b7}.replay-scoreboard>b{font:700 2.5rem ui-monospace,monospace;text-align:center;color:#8ae7b7}.replay-scoreboard>b:nth-of-type(2){color:#ffa2a6}.replay-clock{text-align:center;border-inline:1px solid #3c5044}.replay-clock>span,.replay-clock>small{display:block!important;font-size:.68rem;letter-spacing:.06em;color:#a8c0b2}.replay-clock>strong{display:block;font:600 1.8rem ui-monospace,monospace;margin:3px}.replay-layout{display:grid;grid-template-columns:210px minmax(300px,1fr) 210px;gap:16px;margin:14px 0;align-items:start}.replay-arena{position:relative;aspect-ratio:1;max-width:calc(100vh - 245px);width:100%;margin:auto;isolation:isolate;background:#101c17;background-image:var(--replay-map);background-size:contain;background-position:center;background-repeat:no-repeat;border:1px solid #354b3d;border-radius:8px;overflow:hidden}.replay-map-image{position:absolute;width:100%;height:100%;object-fit:fill;inset:0;opacity:.85;pointer-events:none}.replay-arena canvas{position:absolute;inset:0;width:100%;height:100%}.replay-roster{border-top:3px solid #79e4b5}.replay-roster.side-1{border-color:#ff9298}.replay-roster>header{display:flex;align-items:center;gap:8px;padding:12px 0;font-size:.8rem}.replay-roster>header .team-logo{width:26px;height:26px;object-fit:contain}.replay-roster>header>span{margin-left:auto;font-size:.62rem;color:#b8cabf;letter-spacing:.04em}.replay-player{display:grid;grid-template-columns:32px 1fr 30px;align-items:center;gap:6px;padding:9px 0;border-bottom:1px solid #2c4034;transition:opacity .12s}.replay-player.dead{opacity:.35}.replay-player>.agent-icon{width:32px;height:32px;border-radius:5px}.replay-player-name{min-width:0}.replay-player-name>b{display:block;font-size:.85rem;overflow:hidden;text-overflow:ellipsis}.replay-player-name>small{display:block;font-size:.66rem;color:#a3bbad}.replay-player>strong{font:600 .75rem ui-monospace,monospace;text-align:right}.replay-hp-track{grid-column:1/-1;height:2px;background:#2b3d32}.replay-hp-track>i{display:block;height:100%;background:#79e4b5}.side-1 .replay-hp-track>i{background:#ff9298}.replay-loadout{grid-column:1/-1;display:flex;gap:6px;align-items:center;color:#cad9cf;font-size:.67rem}.replay-weapon{width:40px;height:16px}.replay-loadout>small{margin-left:auto;font-size:.59rem;color:#88ba9c}.replay-abilities{grid-column:1/-1;display:flex;gap:4px}.replay-abilities>span{display:flex;align-items:center;gap:3px;padding:3px 5px;background:#1c3026;border:1px solid #41624d;border-radius:3px;color:#c9eed6;font-size:.62rem}.replay-abilities>span.spent{background:#17201a;border-color:#2d3a30;color:#788b7f}.replay-abilities small{font-size:.59rem}.replay-abilities .ult.ready{color:#f2da8b;border-color:#91805a}.replay-roster>footer{display:grid;grid-template-columns:1fr auto;font-size:.7rem;color:#9bb5a5;padding-top:12px;gap:5px}.replay-roster>footer>span{grid-column:1/-1;font-size:.65rem}.replay-killfeed{position:absolute;right:10px;top:10px;display:grid;gap:5px;pointer-events:none;max-width:85%}.replay-killfeed>div{background:#102018ec;display:flex;gap:7px;align-items:center;padding:5px 8px;border-right:3px solid #79e4b5;font-size:.7rem;box-shadow:0 3px 12px #0004}.replay-killfeed>.side-1{border-color:#ff9298}.replay-killfeed .agent-icon{width:21px;height:21px}.replay-round-banner{position:absolute;left:50%;top:42%;transform:translate(-50%,-50%);min-width:260px;max-width:90%;padding:18px 25px;background:#11281cf2;text-align:center;border:1px solid #7fe3b0;box-shadow:0 10px 35px #0005;animation:replay-reveal .24s ease-out}.replay-round-banner.side-1{border-color:#f6929c;background:#2b1d20f2}.replay-round-banner[hidden],.replay-spike[hidden]{display:none}.replay-round-banner>span{font-size:.75rem;letter-spacing:.22em;color:#b6d8c2}.replay-round-banner>strong{display:block;font-size:2rem;margin:8px}.replay-round-banner>small{color:#b8ccbf;font-size:.75rem}.replay-spike{position:absolute;bottom:15px;left:50%;transform:translateX(-50%);background:#352d16df;border:1px solid #d8bb6c;padding:7px 13px;color:#ffe59b;font:600 .8rem ui-monospace,monospace;border-radius:4px}.replay-bottom{padding:0 0 15px}.replay-map-list{display:flex;gap:8px;flex-wrap:wrap}.replay-map-list>span{padding:7px 12px;font-size:.75rem;background:#142219;color:#8da696;border-bottom:2px solid transparent}.replay-map-list>.selected{color:#d3f7df;border-color:#78dda7;background:#1b3325}.replay-progress{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:12px;font-size:.75rem}.replay-progress>small{color:#8ea798;font-size:.7rem}.replay-progress>div{display:flex;gap:3px;flex-wrap:wrap}.replay-progress i{font:600 .6rem ui-monospace,monospace;padding:3px;color:#16291e;background:#7ddbaf;border-radius:2px}.replay-progress .side-1{background:#ec969c}.replay-progress .current{background:#31483a;color:#fff}.replay-loading{text-align:center;padding:15vh 20px}.replay-loading>p{color:#a2b6a9}.replay-loading button{margin:10px 6px}.quick-sim-progress .sim-spinner{border-color:#2a4936;border-top-color:#80e3ac}.quick-sim-progress p{color:#b2cab9}.match-mode-choice>p{color:#afc9b8}.match-mode-options>button{min-height:100px}.match-mode-options small{font-size:.8rem}.result-reveal{animation:replay-reveal .28s ease-out}.result-reveal.victory{--result-accent:#8fe7b2}.result-reveal.defeat{--result-accent:#ee9c9c}.result-reveal .match-verdict{border-top:4px solid var(--result-accent,#becfc1);background:radial-gradient(ellipse at top,#254f364d,transparent 70%),#14231a;text-align:center;padding:22px}.result-reveal.defeat .match-verdict{background:radial-gradient(ellipse at top,#733c3c33,transparent 70%),#1e211c}.result-reveal .match-verdict>h2{font-size:2rem;letter-spacing:.08em;margin:12px;color:var(--result-accent)}.result-stakes{display:inline-block;border:1px solid #7e7147;color:#f0d587;background:#38321a;padding:5px 10px;font-size:.75rem;letter-spacing:.08em;margin-bottom:8px}.result-podium{display:grid;grid-template-columns:1.4fr 1fr;gap:20px;margin:20px 0}.result-star{display:flex;align-items:center;gap:18px;background:#192b20;padding:18px;border:1px solid #3b5140}.result-star img{width:90px;height:100px;object-fit:contain;object-position:bottom}.result-star strong{display:block;font-size:1.4rem}.result-star span{color:#a1bba9;font-size:.7rem;letter-spacing:.08em}.result-star b{font:700 2rem ui-monospace,monospace;color:#a4ecc3}.result-highlights{display:flex;flex-direction:column;justify-content:center;gap:12px}.result-highlights>div{display:flex;justify-content:space-between;border-bottom:1px solid #304436;padding-bottom:8px;font-size:.8rem}.result-analysis>summary,.result-reveal .match-stats>summary{padding:15px 0;cursor:pointer;font-weight:600}.result-analysis .after-body{display:block}.result-audio{display:flex;justify-content:flex-end;margin:10px 0}.result-audio button{font-size:.75rem;padding:6px 10px}.result-reveal .after-score .team-logo{width:74px;height:74px;object-fit:contain}.result-reveal .after-score>b{font:700 3.5rem ui-monospace,monospace}.result-reveal .after-map-scores{justify-content:center}.result-reveal .after-actions{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap;margin-top:18px}
@keyframes replay-reveal{from{opacity:0;translate:0 6px}to{opacity:1;translate:0 0}}
@media(min-width:1600px){.replay-layout{grid-template-columns:240px minmax(350px,1fr) 240px}.replay-player{padding:14px 0}.replay-player-name>b{font-size:.95rem}}
@media(max-width:1150px){.replay-layout{grid-template-columns:175px minmax(300px,1fr) 175px;gap:10px}.replay-top{align-items:flex-start}.replay-controls{max-width:65%;justify-content:flex-end}.replay-roster>header .team-logo{display:none}.replay-player{padding:6px 0}.replay-abilities>span{padding:2px 3px}.replay-controls button{font-size:.7rem;padding:7px 9px}.replay-progress>small{display:none}.replay-arena{max-width:none}}
@media(max-width:800px){.replay-top{display:block}.replay-controls{max-width:none;justify-content:flex-start;margin-top:10px}.replay-layout{grid-template-columns:1fr 1fr}.replay-arena{grid-column:1/-1;grid-row:1}.replay-scoreboard{grid-template-columns:1fr 32px 120px 32px 1fr;padding:10px;gap:5px}.replay-scoreboard .team-logo{width:24px;height:24px}.replay-scoreboard>div>span:not(.replay-clock span){display:none}.replay-scoreboard>div>strong{font-size:1rem}.replay-scoreboard>b{font-size:1.6rem}.result-podium{grid-template-columns:1fr}.replay-roster>header .team-logo{display:block}}
@media(prefers-reduced-motion:reduce){.result-reveal,.replay-round-banner{animation:none}.replay-player{transition:none}}
