.mode-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.mode-fight-art{overflow:hidden}.mode-fight-art .fight-arena{width:100%;max-width:420px}.fight-preview .fight-scene{height:225px}.fight-arena{position:relative;overflow:hidden;background:radial-gradient(ellipse at 50% 78%,#2c2c3855,transparent 65%)}
.fight-scene{display:block;width:100%;height:auto;overflow:visible}.fighter-face,.fighter-face .avatar{width:72px;height:72px;border-radius:0;font-size:22px}.fighter-face .avatar{position:relative;display:flex}.face-unmirror{transform:scaleX(-1)}.fight-winner-face{outline:2px solid #70de99;outline-offset:-2px}
.fight-identities{display:flex;justify-content:space-between;padding:0 10% 14px;gap:20px}.fight-identities>div{display:grid;text-align:center;gap:5px;min-width:0;max-width:46%;flex:1}.fight-identities small{color:#9191a2;font-size:11px}.fight-identities strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fight-hit-label{font-size:12px;color:#b7b7c9;visibility:hidden}.fight-finished .fight-hit-label{visibility:visible}
.fighting-now .fighter-0{animation:fighter-step-left 8s both;animation-delay:var(--fight-elapsed)}.fighting-now .fighter-1{animation:fighter-step-right 8s both;animation-delay:var(--fight-elapsed)}.fighting-now .fight-hit-label{animation:hit-label 8s steps(1) both;animation-delay:var(--fight-elapsed)}
.fight-blood circle{fill:#d92e44;opacity:0}.fighting-now .fight-blood circle{animation:blood-speck 8s both;animation-delay:calc(var(--fight-elapsed) + var(--blood-delay))}
@keyframes fighter-step-left{0%,12%{transform:translateX(0)}30%{transform:translateX(38px)}42%{transform:translateX(18px)}58%,72%{transform:translateX(38px)}100%{transform:translateX(0)}}
@keyframes fighter-step-right{0%,12%{transform:translateX(0)}30%{transform:translateX(-38px)}42%{transform:translateX(-18px)}58%,72%{transform:translateX(-38px)}100%{transform:translateX(0)}}
@keyframes blood-speck{0%,62%{opacity:0;transform:translate(0,0)}63%{opacity:1}70%{opacity:.85;transform:translate(var(--blood-x),var(--blood-y))}78%,100%{opacity:0;transform:translate(var(--blood-x),calc(var(--blood-y) + 12px))}}
@keyframes hit-label{0%,62%{visibility:hidden}63%,100%{visibility:visible}}
.fight-toolbar{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:24px}.fight-toolbar>span{font-weight:700;font-size:20px}.fight-toolbar small{display:block;font-size:12px;font-weight:400;color:#a1a1b0;margin-top:4px}.fight-rooms{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.fight-room{padding:22px}.fight-room-players{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:12px}.fight-room-player{display:grid;justify-items:center;gap:9px;min-width:0}.fight-room-player>.avatar{width:60px;height:60px;border-radius:0}.fight-room-player>strong{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fight-room-stake{text-align:center;display:grid;gap:3px}.fight-room-stake>strong{font-size:28px}.fight-room-stake>small{font-size:11px;color:#9999a9}.fight-room .coin-room-footer{margin-top:20px}.fight-room .coin-room-footer>span{font-size:11px}.fight-dialog{width:680px;max-width:calc(100vw - 32px)}.fight-result{text-align:center;margin:8px 0 24px}.fight-result h3{font-size:24px;margin:0 0 12px}.fight-result>strong{font-size:34px}.fight-result small{font-size:13px}.fight-result p{font-size:12px;color:#a9a9b9;margin-top:8px}
@media(max-width:900px){.mode-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.mode-grid,.fight-rooms{grid-template-columns:1fr}.mode-fight-art .fight-arena{max-width:300px}.fight-preview .fight-scene{height:160px}.minimal-shell .mobile-nav .nav-item{width:25%}.fight-toolbar .button{padding:12px 15px}.fight-toolbar>span{font-size:18px}.fight-room{padding:18px 15px}.fight-room-player>.avatar{width:52px;height:52px}.fight-dialog{width:100%;max-width:700px}.fight-identities{padding:0 8% 8px;gap:8px}.fight-identities small{font-size:10px}.fight-identities strong{font-size:14px}.fight-result>strong{font-size:30px}.fight-room .coin-room-footer{gap:5px}.fight-room .coin-room-footer>div{gap:12px}}
@media(prefers-reduced-motion:reduce){.fighting-now .fighter-travel,.fighting-now .fight-upper-arm,.fighting-now .fight-forearm{animation:none}.fight-blood{display:none}}

.fighter-face .avatar img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;image-rendering:auto}.fight-pending{text-align:center;color:#aaaabd;font-size:13px}

.fight-upper-arm,.fight-forearm{transform-box:view-box;transform-origin:0 0}.fight-upper-arm{transform:rotate(55deg)}.fight-forearm{transform:rotate(-110deg)}
.fighting-now .fight-upper-arm{animation:upper-arm-strike 8s both;animation-delay:var(--fight-elapsed)}.fighting-now .fight-forearm{animation:forearm-strike 8s both;animation-delay:var(--fight-elapsed)}
@keyframes upper-arm-strike{0%,12%{transform:rotate(55deg)}30%{transform:rotate(-10deg)}39%,53%{transform:rotate(-85deg)}63%,73%{transform:rotate(var(--strike))}100%{transform:rotate(55deg)}}
@keyframes forearm-strike{0%,12%{transform:rotate(-110deg)}30%{transform:rotate(-25deg)}39%,53%{transform:rotate(-90deg)}63%,73%{transform:rotate(0deg)}100%{transform:rotate(-110deg)}}
@media(prefers-reduced-motion:reduce){.fighting-now .fight-upper-arm,.fighting-now .fight-forearm{animation:none}}
/* The participant's avatar is the face; only its outline is clipped. */
.fighter-face{position:relative;clip-path:polygon(13% 0,87% 0,92% 12%,91% 67%,81% 83%,62% 96%,38% 96%,19% 83%,9% 67%,8% 12%)}.fighter-face .avatar img{object-position:50% 43%}.fight-winner-face{outline:0}.fight-replay-note{text-align:center;color:#a6a6b6;font-size:12px}

/* Shared room geometry with Coinflip. */
.fight-rooms{grid-template-columns:1fr;gap:13px}.fight-toolbar{height:70px;min-height:70px;margin-bottom:25px}.fight-toolbar>.button,.coin-toolbar>.button{min-width:148px}.fight-toolbar-art{width:175px;height:70px;overflow:hidden}.fight-toolbar-art .fight-arena{width:100%;height:100%;background:none;overflow:visible}.fight-toolbar-art .fight-scene{width:175px;height:70px}.fight-room.coin-room{padding:22px 25px 13px}.fight-room-glyph{display:grid;place-items:center;color:#b6bfc1}.fight-room .coin-room-footer{margin-top:19px}.fight-room .coin-room-footer>span{font-size:9px}
.fighter-outcome{transform-box:view-box;transform-origin:0 216px}
.fighting-now .fight-defeated .fighter-outcome{animation:fighter-fall 8s both;animation-delay:var(--fight-elapsed)}
.fight-finished .fight-defeated .fighter-outcome{transform:translate(110px,-30px) rotate(-88deg)}
.fighting-now .fight-victor .fight-upper-arm{animation-name:victor-strike-upper}.fighting-now .fight-victor .fight-forearm{animation-name:victor-strike-forearm}
.fight-finished .fight-victor .fight-upper-arm{animation:victory-upper 2.2s ease-in-out infinite}.fight-finished .fight-victor .fight-forearm{animation:victory-forearm 2.2s ease-in-out infinite}
.fight-finished .fight-defeated .fight-upper-arm{transform:rotate(74deg)}.fight-finished .fight-defeated .fight-forearm{transform:rotate(-30deg)}
.defeat-drips ellipse{fill:#b93446;opacity:0}.fight-finished .defeat-drips ellipse{animation:defeat-drip 1.1s ease-in 5;animation-delay:var(--drip-delay)}
@keyframes fighter-fall{0%,70%{transform:translate(0,0) rotate(0)}83%{transform:translate(22px,-8px) rotate(-22deg)}100%{transform:translate(110px,-30px) rotate(-88deg)}}
@keyframes victor-strike-upper{0%,12%{transform:rotate(55deg)}30%{transform:rotate(-10deg)}39%,53%{transform:rotate(-85deg)}63%,73%{transform:rotate(var(--strike))}86%,100%{transform:rotate(60deg)}}
@keyframes victor-strike-forearm{0%,12%{transform:rotate(-110deg)}30%{transform:rotate(-25deg)}39%,53%{transform:rotate(-90deg)}63%,73%{transform:rotate(0deg)}86%,100%{transform:rotate(-125deg)}}
@keyframes victory-upper{0%,100%{transform:rotate(60deg)}50%{transform:rotate(68deg)}}
@keyframes victory-forearm{0%,100%{transform:rotate(-125deg)}50%{transform:rotate(-127deg)}}
@keyframes defeat-drip{0%{opacity:0;transform:translateY(0)}15%{opacity:.8}90%{opacity:.6}100%{opacity:0;transform:translateY(var(--drip-distance,28px))}}
@media(max-width:700px){.fight-toolbar{height:48px;min-height:48px;margin-bottom:20px}.fight-toolbar-art,.fight-toolbar-art .fight-scene{width:120px;height:48px}.fight-toolbar>.button,.coin-toolbar>.button{min-width:140px;padding:12px;gap:6px;font-size:12px}.fight-room.coin-room{padding:16px 15px 10px}.fight-room .coin-room-footer{margin-top:15px}.fight-room .coin-room-footer>span{font-size:10px}}
@media(prefers-reduced-motion:reduce){.fighting-now .fighter-outcome,.fight-finished .fight-victor .fight-upper-arm,.fight-finished .fight-victor .fight-forearm{animation:none}.fight-finished .fight-victor .fight-upper-arm{transform:rotate(60deg)}.fight-finished .fight-victor .fight-forearm{transform:rotate(-125deg)}.defeat-drips{display:none}}
.coin-rooms>.coin-room,.fight-rooms>.coin-room{display:flex;flex-direction:column;min-height:204px}.coin-room>.coin-match{flex:1}.coin-room>.coin-room-footer{flex-shrink:0}
@media(max-width:700px){.coin-rooms>.coin-room,.fight-rooms>.coin-room{min-height:235px}}

.fight-result h3{overflow-wrap:anywhere;text-wrap:balance;line-height:1.25}.fight-room .coin-room-footer>span{min-width:0;overflow-wrap:anywhere}.fight-room .coin-room-footer>div{flex-shrink:0}.quote-box>div>span{min-width:0}.quote-box>div>b{flex-shrink:0}
