[hidden]{display:none!important}
.portrait{display:inline-block;flex-shrink:0;width:44px;aspect-ratio:1;background-image:url('./assets/arcade-roster.png');background-size:500% 300%;background-repeat:no-repeat;background-color:#291443;image-rendering:auto;vertical-align:middle;border:1px solid #7e629d}
#character-select{max-width:1280px;margin:0 auto;padding:34px 4vw 24px}
.select-heading{margin-bottom:26px}.select-heading h1{font-size:clamp(20px,3vw,32px);line-height:1.6;color:var(--gold);text-shadow:4px 4px #873b81;margin:12px 0}.select-heading p{color:#c5bedc;font-size:16px;margin:12px 0}
.fighter-layout{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:26px;align-items:start}
.fighter-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:9px}
.fighter-card{padding:0;position:relative;border:2px solid #5b4d7a;background:#171026;min-width:0;box-shadow:3px 3px #060410;text-align:left;transition:border-color .12s,transform .12s}
.fighter-card .portrait{width:100%;display:block;border:0}.fighter-name{display:block;padding:9px 5px;font-size:14px;line-height:1.25;text-align:center;color:#f9f4ff;font-weight:700;white-space:nowrap}.fighter-card:hover,.fighter-card:focus-visible{border-color:var(--cyan);transform:translateY(-3px)}
.fighter-card[aria-pressed="true"]{border-color:var(--gold);box-shadow:0 0 0 2px #ffe66b30,3px 3px #060410}.fighter-card[aria-pressed="true"] .fighter-name{color:var(--gold)}
.pick-marker{position:absolute;top:6px;left:6px;background:var(--gold);color:#20122f;font:700 11px ui-monospace,monospace;padding:4px 5px}.pick-marker:empty{display:none}
#fighter-detail{border:2px solid #77567f;background:#171226;box-shadow:5px 5px #070614}#fighter-detail .hero-portrait{width:100%;display:block;border:0;border-bottom:3px solid var(--pink)}#fighter-detail>div{padding:18px}#fighter-detail h2{font-size:24px;line-height:1.2;margin:10px 0;color:white}#fighter-detail p{font-size:15px;line-height:1.6;color:#c7bfdc}#fighter-detail .fighter-line{color:var(--gold);font-style:italic;border-top:1px solid var(--line);padding-top:12px}
.selection-bottom{margin-top:24px;border-top:2px solid var(--pink);padding:18px 0 0}#opponent-slots{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.opponent-slot{display:flex;align-items:center;gap:10px;border:1px dashed #665379;min-height:70px;padding:9px;background:#171226;color:#a99eba;font-size:14px;text-align:left;min-width:0}.opponent-slot span:not(.portrait){flex:1;min-width:0}.opponent-slot small{display:block;font:11px ui-monospace,monospace;letter-spacing:1px;color:var(--cyan);margin-bottom:6px}.opponent-slot.filled{border:1px solid var(--gold);color:#fff}.opponent-slot b{color:var(--pink);font-size:18px}.selection-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:18px}.selection-actions>div{display:flex;gap:10px}#selection-status{color:var(--cyan);font-size:14px}#start-match{font-size:16px;padding:14px 24px}.roster-note{font-size:12px;color:#a9a0be;margin-top:20px}
.opponent-face{display:inline-block}.opponent-face .portrait{width:38px;border:2px solid #caa7ec;box-shadow:2px 2px #110821}.opponent .player-title{font-size:13px;margin-bottom:5px;gap:5px}.north{top:12px}.north .opponent-face{float:left;margin-right:8px}.north .player-title{height:38px;margin-bottom:3px;justify-content:flex-start}.north .backs{clear:both}.west,.east{top:135px;max-width:110px}.center{top:135px}.score-portrait{width:36px}.score-name{min-width:0}.compact-scores>span{min-width:0;white-space:nowrap;font-size:12px}.river-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.banter{border-left:3px solid var(--pink);padding:10px 14px;background:#1c162e;margin-top:22px;color:#d5c8e9;font-size:14px;min-height:42px}.banter strong{color:var(--gold);margin-right:10px}.banter+.rack{margin-top:12px}
@media(max-width:1000px){.fighter-layout{grid-template-columns:minmax(0,1fr) 210px;gap:16px}.fighter-name{font-size:12px}.fighter-grid{gap:7px}.compact-scores{flex-wrap:wrap}}
@media(max-width:650px){#character-select{padding:24px 14px}.select-heading{margin-bottom:18px}.select-heading h1{font-size:20px}.fighter-layout{display:flex;flex-direction:column;gap:18px}.fighter-grid{width:100%;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.fighter-name{font-size:13px;padding:8px 3px}#fighter-detail{width:100%;display:flex;align-items:stretch}#fighter-detail .hero-portrait{width:110px;height:110px;border:0;align-self:center}#fighter-detail>div{padding:12px;min-width:0}#fighter-detail h2{font-size:19px}#fighter-detail p{font-size:13px;margin:8px 0}#fighter-detail .fighter-line{display:none}#opponent-slots{gap:6px}.opponent-slot{padding:7px;flex-direction:column;align-items:flex-start;gap:6px;font-size:12px;position:relative}.opponent-slot .portrait{width:34px}.opponent-slot b{position:absolute;right:7px;top:7px}.selection-actions{align-items:stretch;flex-direction:column}.selection-actions>div{justify-content:flex-end}#start-match{font-size:14px;padding:12px 18px}.north .opponent-face .portrait{width:30px}.north .player-title{height:30px}.opponent-face .portrait{width:32px}.west,.east{top:131px;max-width:75px}.opponent .player-title{font-size:11px}.opponent .wind-badge{width:19px;height:19px}.center{top:123px}.banter{font-size:13px}.self-label{bottom:12px}}

.portrait-second{background-image:url('./assets/arcade-roster-2.png')}
#fighter-detail{position:sticky;top:20px}.fighter-name{white-space:normal;min-height:38px}.selection-bottom{position:sticky;bottom:0;background:#100e23;z-index:5;padding:14px 12px;border:2px solid #59406e;border-top:2px solid var(--pink);box-shadow:0 -8px 25px #090614aa}@media(max-width:650px){#fighter-detail{position:static}.selection-bottom{position:static;padding:12px 0;border-left:0;border-right:0;box-shadow:none}}
