/* Character selection and the piste overview. */
.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}
html[data-phase='menu'] .arena{height:auto;min-height:0}
html[data-phase='menu'] #game{visibility:hidden}
.start-layer{position:relative;background:linear-gradient(115deg,#173252f5,#142744e8)}
.lobby-heading{padding:22px 28px 14px}.lobby-heading h1{font-size:28px}
.character-matchup{display:grid;grid-template-columns:minmax(0,1fr) 62px minmax(0,1fr);gap:12px;margin:0 28px 20px;align-items:center}
.selected-character{position:relative;overflow:hidden;min-width:0;min-height:190px;border:1px solid #ff968b90;border-bottom:4px solid var(--red);border-radius:12px;background:linear-gradient(120deg,#452e40,#182f51)}
.selected-character.cpu{border-color:#70ccfa80;border-bottom-color:var(--blue);background:linear-gradient(120deg,#182f51,#164565)}
.lobby-portrait{position:absolute;top:0;bottom:0;left:0;width:190px;background-repeat:no-repeat;background-color:#fff;mask-image:linear-gradient(90deg,#000 60%,transparent);opacity:.96}
.cpu .lobby-portrait{left:auto;right:0;mask-image:linear-gradient(270deg,#000 60%,transparent)}
.selected-copy{position:relative;margin-left:165px;padding:25px 18px 16px 0;z-index:1}.cpu .selected-copy{margin-left:0;margin-right:165px;padding:25px 0 16px 18px}
.selected-copy .side-label{display:block;color:var(--red);font-size:13px;font-weight:900;letter-spacing:.08em}.cpu .side-label{color:var(--blue)}
.selected-copy strong{display:block;font-size:clamp(19px,2vw,26px);line-height:1.5;margin:8px 0 3px;word-break:keep-all;overflow-wrap:anywhere;text-shadow:0 2px 6px #12223c}
.selected-copy>span:not(.side-label){font-size:14px;color:#e3d4a6}.selected-copy p{font-size:14px;line-height:1.6;color:#d1dfef;margin:9px 0 0}
.character-matchup .versus{font-size:42px}
.roster-panel{padding:0 28px 16px}.selection-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:13px}
.side-selector{display:flex;gap:8px}.side-selector button{padding:9px 16px;font-size:14px;font-weight:800;border:1px solid #6883a8;border-radius:6px;background:#112949;min-height:42px}
#choosePlayer[aria-pressed='true']{background:#703946;border-color:var(--red)}#chooseCpu[aria-pressed='true']{background:#194b6f;border-color:var(--blue)}
#selectionHint{font-size:14px;color:var(--muted)}.roster-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}
.roster-character{min-width:0;position:relative;padding:0 0 9px;overflow:hidden;border:2px solid #476086;background:#0c203c;border-radius:8px;text-align:center;box-shadow:0 3px 0 #07172b;transition:border-color .12s,transform .12s}
.roster-character:hover{transform:translateY(-3px);border-color:var(--character-accent)}.roster-character[aria-pressed='true']{border-color:var(--gold);box-shadow:0 0 0 2px #ffd34d44,0 3px 0 #846329}
.roster-portrait{display:block;width:100%;aspect-ratio:1.22;background-repeat:no-repeat;background-color:#e9edf0;border-bottom:3px solid var(--character-accent)}
.roster-character strong{display:block;font-size:16px;padding:7px 2px 2px;line-height:1.3}.roster-discipline{display:block;font-size:12px;color:#b7cce6;white-space:nowrap}
.roster-badges{position:absolute;top:4px;left:4px;font-size:11px;line-height:1.3;letter-spacing:.03em;font-weight:900;border-radius:3px;color:#112541;background:var(--red);padding:3px 5px;max-width:calc(100% - 8px)}
[data-selected-by='cpu'] .roster-badges{background:var(--blue)}[data-selected-by='both'] .roster-badges{background:var(--gold)}[data-selected-by=''] .roster-badges{display:none}
.variant-note{font-size:14px;color:#c8d8eb;line-height:1.6;margin:15px 0 0}.start-card{padding:17px 28px 20px;gap:30px}.start-footnote{font-size:13px;line-height:1.5;margin-top:10px}
.hud-portrait{width:36px;height:36px;border-radius:6px;background-repeat:no-repeat;border:1px solid #aac1df;flex:0 0 36px}.competitor strong{font-family:inherit;font-size:18px;letter-spacing:0;line-height:1.4;min-width:0}.competitor{gap:8px}.cpu .competitor{justify-content:flex-end}.competitor-note{font-size:12px}.contestant{padding:9px 15px}
.winner-portrait{width:84px;height:84px;margin:14px auto 0;border:3px solid var(--gold);border-radius:50%;background-repeat:no-repeat}.small-card h2{font-size:25px}
.movement-group[data-fixed='true'] .control{opacity:.38}.movement-group[data-fixed='true'] .group-label b{color:var(--gold)}
@media(max-width:1100px){.selected-copy{margin-left:130px}.cpu .selected-copy{margin-right:130px}.lobby-portrait{width:165px}.selected-copy p{font-size:13px}.roster-grid{gap:7px}.roster-character strong{font-size:14px}.roster-discipline{font-size:12px}.competitor strong{font-size:16px}.hud-portrait{width:30px;height:30px;flex-basis:30px}}
@media(max-width:800px){.selected-copy{margin-left:100px;padding-right:8px}.cpu .selected-copy{margin-right:100px;padding-left:8px}.lobby-portrait{width:135px}.selected-copy p{display:none}.selected-character{min-height:155px}.roster-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.roster-portrait{aspect-ratio:1.8}.character-matchup{gap:4px;grid-template-columns:minmax(0,1fr) 45px minmax(0,1fr)}.character-matchup .versus{font-size:32px}.hud-portrait{display:none}}
@media(max-width:600px){.lobby-heading{padding:18px 14px 12px}.lobby-heading h1{font-size:23px}.lobby-heading .rule-badges{max-width:96px}.rule-badges span{font-size:12px}.character-matchup{margin:0 14px 14px;grid-template-columns:minmax(0,1fr) 30px minmax(0,1fr)}.character-matchup .versus{font-size:26px}.selected-character{min-height:168px}.lobby-portrait{width:100%;height:142px;mask-image:linear-gradient(#000 35%,transparent)}.cpu .lobby-portrait{mask-image:linear-gradient(#000 35%,transparent)}.selected-copy,.cpu .selected-copy{margin:0;padding:85px 9px 12px}.selected-copy .side-label{font-size:12px;text-shadow:0 1px 5px #06132a}.selected-copy strong{font-size:16px;margin:4px 0 2px}.selected-copy>span:not(.side-label){font-size:12px}.roster-panel{padding:0 14px 15px}.selection-toolbar{display:block;margin-bottom:12px}.side-selector{gap:7px}.side-selector button{flex:1;padding:8px 5px;font-size:14px}#selectionHint{display:none}.roster-grid{gap:7px}.roster-portrait{aspect-ratio:1.2}.roster-character{padding-bottom:7px}.roster-character strong{font-size:14px;padding-top:6px}.roster-discipline{font-size:11px}.roster-badges{font-size:10px;left:2px;top:2px;padding:2px 3px}.variant-note{font-size:12px;margin:12px 0 0}.start-card{display:block;padding:15px}.start-card .difficulty{margin-bottom:16px}.start-footnote{font-size:12px}.scoreboard{grid-template-columns:minmax(0,1fr) 84px minmax(0,1fr);gap:5px;left:9px;right:9px}.contestant{padding:8px 6px}.competitor{gap:4px}.competitor strong{font-size:13px}.color-chip{width:4px;flex:0 0 4px;height:14px}.score{font-size:43px}.lights i{width:9px}.match-mode{font-size:10px}.small-card h2{font-size:22px}.winner-portrait{width:64px;height:64px}.selected-copy .side-label{color:#ffb2a9}.cpu .side-label{color:#a7e3ff}}
@media(prefers-reduced-motion:reduce){.roster-character:hover{transform:none}}

.piste-overview{margin:18px 3px 0;padding:13px 20px 10px;background:#0c2343;border:1px solid #46688e;border-radius:9px}
html[data-phase='menu'] .piste-overview{display:none}
.piste-caption{display:flex;justify-content:space-between;gap:12px;color:#c1d2e7;font-size:12px;margin-bottom:22px;line-height:1.6}
.piste-caption strong{font-size:14px;color:#f2f6ff}.piste-caption strong span{margin-left:10px;font-weight:500}
.piste-map{position:relative;height:13px;border:1px solid #c4d6e9;background:linear-gradient(90deg,#ac743f 14.286%,#365d79 14.286%,#365d79 85.714%,#ac743f 85.714%)}
.map-line{position:absolute;top:0;height:100%;border-left:2px solid #d1e2ef}.map-line.centre{border-left-style:dashed}
.map-player{position:absolute;bottom:18px;transform:translateX(-50%);font-size:12px;line-height:1;font-weight:900;color:var(--red)}.map-player.cpu{color:var(--blue)}
.map-player:after{content:'';position:absolute;width:8px;height:8px;border:2px solid #fff;background:currentColor;border-radius:50%;left:50%;top:18px;transform:translateX(-50%)}
.piste-measure{display:flex;justify-content:space-between;margin-top:8px;font-size:12px;color:#c1d2e7}.guard-span{color:#f0dc9a}
@media(max-width:600px){.piste-overview{padding:12px 12px 10px}.piste-caption{display:block}.piste-caption>span{display:block;margin-top:2px}}

/* Mascot guide */
.lobby-heading{display:flex;align-items:center;gap:14px}.lobby-heading>div:not(.rule-badges){flex:1}.mascot-guide{height:84px;width:auto;image-rendering:pixelated;flex:0 0 auto}
.result-mascot{display:block;height:96px;width:auto;margin:10px auto 0;image-rendering:pixelated}
@media(max-width:600px){.mascot-guide{height:56px}.result-mascot{height:70px}}
