:root{color-scheme:dark;--bg:#0d1015;--panel:#151a22;--line:#2c3441;--text:#edf1f7;--muted:#9faec1;--accent:#c8ff62;--cyan:#63dcec;--loss:#ee8597}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:Inter,-apple-system,BlinkMacSystemFont,"Noto Sans JP","Hiragino Kaku Gothic ProN",sans-serif;font-size:16px;line-height:1.6}a{color:inherit;text-decoration:none}button,input,select{font:inherit}button,a,select,input{touch-action:manipulation}button{color:inherit;cursor:pointer}button:focus-visible,a:focus-visible,select:focus-visible,input:focus-visible,summary:focus-visible{outline:3px solid var(--accent);outline-offset:4px}header{min-height:94px;padding:20px 4%;display:flex;gap:30px;align-items:center;border-bottom:1px solid var(--line)}.brand{display:flex;gap:12px;align-items:center;line-height:1.15;font-size:25px;font-weight:850;letter-spacing:-1px}.brand b{color:var(--accent)}.brand small{display:block;font-size:12px;letter-spacing:1px;color:var(--muted);margin-top:7px;font-weight:500}.brandmark{font-size:34px;line-height:1;color:var(--bg);background:var(--accent);padding:4px 9px;border-radius:5px}nav{display:flex;gap:25px;margin-left:auto;font-size:14px;font-weight:650}nav a{padding:10px 0;border-bottom:2px solid transparent;color:var(--muted)}nav a.active{color:var(--text);border-color:var(--accent)}.edition{border-left:1px solid var(--line);padding-left:25px;font-size:12px;letter-spacing:2px;color:var(--muted)}main{max-width:1420px;margin:auto;padding:40px 4% 70px;min-height:80vh}h1,h2,h3,p{margin:0}h1{font-size:36px;line-height:1.3;letter-spacing:-1px;font-weight:800}h2{font-size:22px;line-height:1.4}h3{font-size:18px}.eyebrow{font-size:12px;letter-spacing:2px;color:var(--accent);font-weight:700;margin-bottom:12px}.muted{color:var(--muted)}.intro{display:flex;align-items:flex-end;justify-content:space-between;gap:25px;margin-bottom:30px}.intro p{color:var(--muted);margin-top:10px;font-size:14px}.intro-stats{display:flex;gap:32px}.intro-stat strong{display:block;font-size:38px;line-height:1.1;font-weight:750;font-variant-numeric:tabular-nums;letter-spacing:-2px}.intro-stat span{font-size:12px;color:var(--muted)}.season-rail{display:grid;grid-template-columns:repeat(5,1fr);border:1px solid var(--line);border-radius:8px;overflow:hidden;margin-bottom:14px}.season-button{appearance:none;text-align:left;background:var(--panel);border:0;border-right:1px solid var(--line);padding:18px 18px 15px;position:relative}.season-button:last-child{border-right:0}.season-button.active{background:#233029;box-shadow:inset 0 3px var(--accent)}.season-button small{display:block;color:var(--muted);font-size:12px;letter-spacing:1px}.season-button b{display:block;font-size:26px;line-height:1.3;letter-spacing:-1px;margin:6px 0}.season-button span{font-size:14px}.season-button:hover{background:#222b36}.season-note{font-size:12px;color:var(--muted);margin-bottom:28px}.toolbar{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin:24px 0}.toolbar label,.field label{display:block;font-size:12px;color:var(--muted);margin-bottom:6px}select,input{border:1px solid var(--line);border-radius:5px;background:#151a22;color:var(--text);padding:10px 12px;min-height:46px;max-width:100%}input{width:270px}select{cursor:pointer}.view-count{margin-left:auto;color:var(--muted);font-size:14px}.section-head{display:flex;justify-content:space-between;align-items:center;gap:16px;margin:30px 0 18px}.section-head a{font-size:14px;color:var(--accent)}.season-grid{display:grid;grid-template-columns:minmax(0,1fr) 290px;gap:28px}.match-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.match-card{background:var(--panel);border:1px solid var(--line);border-radius:7px;padding:17px;text-align:left;width:100%;transition:border-color .15s,transform .15s;min-width:0}.match-card:hover{border-color:#829477;transform:translateY(-2px)}.match-meta{display:flex;justify-content:space-between;gap:8px;color:var(--muted);font-size:12px;margin-bottom:13px}.match-meta b{color:#d3ddec;font-weight:550}.team-row{display:flex;align-items:center;gap:10px;margin-top:8px;font-size:14px;min-width:0}.team-row .team-name{flex:1;overflow-wrap:anywhere}.team-dot{display:inline-block;width:4px;height:19px;border-radius:1px;background:var(--team);flex:none}.score{font-family:ui-monospace,SFMono-Regular,monospace;font-size:24px;line-height:1.2;font-weight:700;letter-spacing:-1px}.win .score{color:var(--accent)}.result-symbol{font-size:12px;width:20px;color:var(--muted)}.win .result-symbol{color:var(--accent)}.match-card .hint{border-top:1px solid var(--line);margin-top:14px;padding-top:10px;font-size:12px;color:var(--muted);display:flex;justify-content:space-between;gap:8px}.panel{border:1px solid var(--line);border-radius:7px;background:var(--panel);padding:20px}.panel + .panel{margin-top:16px}.panel h3{margin-bottom:16px}.champ{padding:14px 0;border-bottom:1px solid var(--line)}.champ:last-child{border:0;padding-bottom:0}.champ small{font-size:12px;color:var(--muted)}.champ strong{display:block;font-size:18px}.bar{height:7px;border-radius:3px;background:#333c4a;display:flex;overflow:hidden;margin:8px 0}.bar .w{background:var(--accent)}.bar .d{background:#7e8ba0}.bar .l{background:var(--loss)}.mini-player{display:flex;gap:10px;padding:10px 0;border-bottom:1px solid var(--line);align-items:center;font-size:14px}.mini-player:last-child{border:0}.mini-player .rank{width:22px;color:var(--muted);font-family:monospace}.mini-player b{margin-left:auto;color:var(--accent);font-family:monospace}.small-note{font-size:12px;color:var(--muted);margin-top:14px;line-height:1.8}.players-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.player-card{padding:20px;border:1px solid var(--line);border-top:3px solid var(--team);border-radius:6px;background:var(--panel);min-width:0}.player-card:hover{background:#1d2430}.player-top{display:flex;gap:10px;justify-content:space-between;align-items:flex-start}.player-card h2{font-size:24px;overflow-wrap:anywhere}.player-card .reading{font-size:12px;color:var(--muted)}.badge{border:1px solid var(--line);border-radius:3px;padding:2px 6px;color:var(--muted);font-size:12px;white-space:nowrap}.player-card .affiliation{font-size:14px;margin:14px 0}.card-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;border-top:1px solid var(--line);padding-top:14px;margin-top:14px}.card-metrics strong{display:block;font-family:ui-monospace,monospace;font-size:23px;line-height:1.3}.card-metrics small{font-size:12px;color:var(--muted)}.crumb{color:var(--muted);font-size:14px;margin-bottom:24px}.crumb:hover{color:var(--accent)}.player-hero{display:flex;justify-content:space-between;gap:24px;align-items:center;padding:28px 0;border-top:4px solid var(--team);border-bottom:1px solid var(--line);margin:18px 0 28px}.player-hero h1{font-size:52px;overflow-wrap:anywhere}.player-hero .affiliation{margin-top:10px;font-size:16px}.metric-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:26px}.metric{border:1px solid var(--line);background:var(--panel);padding:20px;border-radius:5px}.metric strong{display:block;font-family:ui-monospace,monospace;font-size:32px;letter-spacing:-1px}.metric span{font-size:14px;color:var(--muted)}.split{display:grid;grid-template-columns:1fr 1fr;gap:24px}.table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:6px}table{border-collapse:collapse;width:100%;font-size:14px;text-align:left}th{font-size:12px;white-space:nowrap;color:var(--muted);font-weight:500;padding:12px 15px;background:#151a22}td{padding:15px;border-top:1px solid var(--line);font-variant-numeric:tabular-nums}td a:hover{text-decoration:underline;color:var(--accent)}.form-rows{display:grid;grid-template-columns:1fr auto 1fr;align-items:end;gap:22px;padding:25px;background:var(--panel);border:1px solid var(--line);border-radius:6px;margin:30px 0}.field select{width:100%}.versus-label{font-size:20px;color:var(--muted);padding-bottom:8px;font-weight:800}.versus-board{border-top:3px solid var(--accent);border-bottom:1px solid var(--line);padding:30px 20px;display:grid;grid-template-columns:1fr auto 1fr;text-align:center;align-items:center;gap:20px;margin-bottom:24px}.versus-board .name{font-size:28px;font-weight:750;overflow-wrap:anywhere}.versus-board strong{font-family:ui-monospace,monospace;font-size:66px;font-weight:800;line-height:1.2}.versus-board .middle{font-size:14px;color:var(--muted)}.versus-board small{display:block;color:var(--muted);font-size:14px}.chips{display:flex;gap:7px;flex-wrap:wrap;margin:16px 0}.chip{font-size:12px;background:#222b36;color:#cdd7e5;padding:3px 9px;border-radius:3px}.timeline-row{padding:18px 0;border-bottom:1px solid var(--line);display:grid;grid-template-columns:64px 1fr;gap:18px}.timeline-row .season-id{font-size:22px;font-weight:750}.timeline-row .details{font-size:14px;color:var(--muted)}.timeline-row .bar{max-width:400px}.outcomes{display:flex;gap:4px;flex-wrap:wrap;margin-top:12px}.outcome{min-width:24px;height:25px;display:inline-flex;justify-content:center;align-items:center;font-size:12px;border-radius:3px}.outcome.w{background:#c8ff6222;color:var(--accent)}.outcome.l{background:#ee859722;color:var(--loss)}.outcome.d{background:#9faec122;color:var(--muted)}.empty{padding:45px 20px;border:1px dashed var(--line);border-radius:6px;text-align:center;color:var(--muted);grid-column:1/-1}.button{display:inline-block;padding:9px 15px;border:1px solid var(--line);border-radius:4px;background:var(--panel);font-size:14px}.button:hover{border-color:var(--accent)}.button.primary{background:var(--accent);color:#121b09;border-color:var(--accent);font-weight:700}.source-list{padding-left:22px}.source-list li{margin:14px 0}.source-list a{color:var(--cyan);text-decoration:underline}.prose{max-width:880px}.prose h2{margin:30px 0 12px}.prose p{margin:12px 0;color:#c4cedd;line-height:1.9}.prose li{margin:9px 0;color:#c4cedd}footer{border-top:1px solid var(--line);padding:24px 4%;font-size:12px;color:var(--muted);display:flex;justify-content:space-between;gap:20px}footer b{font-size:10px;letter-spacing:1px;margin-left:10px;color:var(--accent)}dialog{background:var(--bg);color:var(--text);border:1px solid #455167;border-radius:10px;width:min(920px,95vw);max-height:90dvh;padding:32px;overscroll-behavior:contain}dialog::backdrop{background:#000b;backdrop-filter:blur(4px)}.close{position:absolute;top:10px;right:12px;border:0;background:#252e3c;width:38px;height:38px;border-radius:4px;font-size:27px;line-height:1}.dialog-meta{color:var(--muted);font-size:14px;margin:0 30px 18px 0}.dialog-score{display:grid;grid-template-columns:1fr auto 1fr;gap:20px;align-items:center;text-align:center;padding:20px 0 26px}.dialog-score h2{font-size:20px}.dialog-score strong{font-family:ui-monospace,monospace;font-size:38px;white-space:nowrap}.link-row{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:25px}.battle-detail{border-top:1px solid var(--line);padding:22px 0}.battle-heading{display:flex;gap:12px;align-items:center;margin-bottom:12px}.battle-heading b{font-size:18px}.battle-heading span{font-size:12px;color:var(--muted)}.lineup{display:grid;grid-template-columns:1fr 1fr;gap:18px;font-size:14px;margin:12px 0}.lineup a{color:var(--cyan)}.song{background:var(--panel);border:1px solid var(--line);border-radius:5px;padding:15px;margin-top:10px}.song-title{display:flex;gap:10px;justify-content:space-between}.song-title strong{font-size:16px;overflow-wrap:anywhere}.song-title small{font-size:12px;color:var(--muted);white-space:nowrap}.song-meta{font-size:12px;color:var(--muted);margin-top:4px}.song-score{display:grid;grid-template-columns:1fr auto 1fr;gap:20px;align-items:center;margin-top:12px;text-align:center}.song-score b{font-family:monospace;font-size:22px}.song-score small{display:block;font-size:12px;color:var(--muted)}.tag-scores{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:13px}.tag-score{border-top:2px solid var(--team);padding-top:8px;font-size:12px;min-width:0}.tag-score a{display:block;overflow-wrap:anywhere}.tag-score b{font-family:monospace;font-size:18px}.tag-score span{color:var(--muted);margin-left:8px}.coverage{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:25px 0}.coverage>div{background:var(--panel);border:1px solid var(--line);padding:18px;border-radius:5px}.coverage strong{display:block;font-size:27px;color:var(--accent)}.coverage small{color:var(--muted)}.skip{position:absolute;top:-100px;background:var(--accent);color:#000;padding:12px;z-index:10}.skip:focus{top:0}.loading{padding:80px 0;color:var(--muted)}
@media(min-width:1500px){header,footer{padding-left:max(4%,calc((100% - 1300px)/2));padding-right:max(4%,calc((100% - 1300px)/2))}}
@media(max-width:1050px){.edition{display:none}.season-grid{grid-template-columns:1fr}.side{display:grid;grid-template-columns:1fr 1fr;gap:20px}.panel + .panel{margin-top:0}.players-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.intro-stats{gap:18px}.split{grid-template-columns:1fr}}
@media(max-width:650px){header{padding:18px 5% 0;display:block}.brand{font-size:23px}nav{margin-top:18px;gap:0;justify-content:space-between}nav a{font-size:14px;padding:10px 0 14px}main{padding:28px 5% 45px}h1{font-size:29px}.intro{display:block;margin-bottom:22px}.intro-stats{margin-top:22px;gap:30px}.intro-stat strong{font-size:32px}.season-rail{grid-template-columns:repeat(5,minmax(0,1fr))}.season-button{padding:12px 7px}.season-button small{font-size:12px;letter-spacing:0}.season-button b{font-size:21px}.season-button span{font-size:12px}.season-note{line-height:1.8;margin-bottom:20px}.toolbar{gap:10px}.toolbar>div{flex:1;min-width:130px}.toolbar input,.toolbar select{width:100%}.toolbar .view-count{flex-basis:100%;font-size:12px;margin:0}.match-list{grid-template-columns:1fr}.side{display:block}.side .panel + .panel{margin-top:16px}.match-card{padding:16px}.players-grid{grid-template-columns:1fr}.player-card h2{font-size:27px}.player-hero{display:block}.player-hero h1{font-size:39px}.player-hero .button{margin-top:18px}.metric-grid{grid-template-columns:repeat(2,1fr);gap:10px}.metric{padding:15px}.metric strong{font-size:27px}.metric span{font-size:12px}.form-rows{padding:18px 14px;gap:10px;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr)}.form-rows select{font-size:14px;padding:10px 5px}.versus-label{font-size:14px}.versus-board{padding:25px 0;gap:10px}.versus-board .name{font-size:19px}.versus-board strong{font-size:46px}.versus-board .middle{font-size:12px}.coverage{grid-template-columns:repeat(2,1fr)}.dialog-score{gap:10px}.dialog-score h2{font-size:15px;overflow-wrap:anywhere}.dialog-score strong{font-size:26px}dialog{padding:24px 15px}.tag-scores{grid-template-columns:1fr 1fr;gap:15px}.song-title{display:block}.song-title small{display:block;margin-top:5px}.song-score{gap:10px}.song-score b{font-size:20px}.battle-heading{flex-wrap:wrap}.lineup{font-size:13px}.section-head h2{font-size:21px}td,th{padding:12px}.panel{padding:18px}footer{display:block;padding:24px 5%;line-height:2.2}footer>span{display:block}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
/* Official team identity. Original logos and photos are never recolored. */
.team-logo{display:inline-flex;align-items:center;justify-content:center;flex:none;background:#141a22;padding:6px;border-radius:5px;width:76px;height:50px;vertical-align:middle}.team-logo img{max-width:100%;max-height:100%;object-fit:contain}.team-logo[data-team="taitostation_tradz"],.team-logo[data-team="game_panic"],.team-logo[data-team="silkhat"]{background:#f6f7f9}.match-logo{width:62px;height:42px;padding:5px}.match-card .team-dot{display:none}.team-row{min-height:46px}.champ-logo{float:right;width:78px;height:52px;margin:5px 0 5px 8px}.champ{min-height:86px}.champ strong{font-size:16px}.team-strip{display:grid;grid-template-columns:repeat(8,1fr);gap:10px;padding:18px 0 24px;border-bottom:1px solid var(--line);margin-bottom:10px}.team-strip a{display:flex;align-items:center;flex-direction:column;gap:8px;min-width:0}.team-strip a:hover .team-logo{outline:1px solid var(--accent)}.team-strip .team-logo{width:94px;height:64px;max-width:100%}.team-strip a>span:last-child{font-size:12px;text-align:center;color:var(--muted)}.portrait{display:inline-block;width:76px;height:76px;position:relative;overflow:hidden;background:#e5e9ee;border-radius:5px;flex:none;vertical-align:middle}.portrait img{position:absolute;height:auto;max-width:none}.branded-player{padding:0;overflow:hidden;border-top-color:var(--team);display:block;height:100%}.player-visual{height:156px;position:relative;padding:18px;display:flex;align-items:flex-end;gap:14px;isolation:isolate;background:rgba(var(--team-rgb),.22)}.player-visual-art,.team-card-art,.hero-art{position:absolute;inset:0;background-image:linear-gradient(90deg,rgba(13,16,21,.58),rgba(13,16,21,.15)),var(--team-art);background-size:cover;background-position:center;z-index:-1;opacity:.68}.player-visual .portrait{width:116px;height:122px;box-shadow:0 8px 20px #0004}.player-visual>.team-logo{width:108px;height:70px;margin-bottom:2px}.player-visual .badge{position:absolute;right:12px;top:12px;background:#0d1015e0;color:#eee;border-color:#ffffff40}.player-copy{padding:18px 20px 20px}.player-catch{font-size:13px;color:var(--team-text);min-height:22px;margin-bottom:5px;font-weight:650}.player-card .affiliation{color:var(--team-text);margin-top:10px}.player-card:hover{border-color:var(--team)}.photo-credit{font-size:12px;color:var(--muted);margin-top:12px;line-height:1.7}.official-player-hero{position:relative;isolation:isolate;overflow:hidden;background:#171e28;display:grid;grid-template-columns:190px minmax(0,1fr);gap:22px;padding:28px;border-radius:6px;border-top:4px solid var(--team)}.official-player-hero .hero-art{opacity:.27}.hero-portrait{width:190px;height:200px;grid-row:1/4;box-shadow:0 10px 30px #0004}.hero-copy{grid-column:2}.hero-catch{color:var(--team-text);font-size:16px;margin-bottom:10px;font-weight:650}.official-player-hero h1{font-size:48px;line-height:1.15}.official-player-hero .photo-credit{margin:0;grid-column:2}.hero-links{display:flex;flex-wrap:wrap;gap:10px;grid-column:2}.official-player-hero .button{margin-top:0;background:#151a22d9}.team-name-link{display:inline-flex;align-items:center;gap:12px;color:var(--team-text)}.team-name-link .team-logo{width:64px;height:42px}.history-team{display:flex;align-items:center;gap:12px;margin-bottom:10px}.history-team .team-logo{width:72px;height:46px}.history-team:hover span:last-child{text-decoration:underline}.vs-identity{display:flex;align-items:center;flex-direction:column;gap:12px;margin-bottom:16px}.vs-identity .portrait{width:118px;height:124px}.vs-identity .team-logo{width:90px;height:54px}.vs-identity small{font-size:12px}.detail-logo{width:126px;height:86px;margin-bottom:14px}.lineup{gap:20px}.lineup>div{display:flex;gap:10px;flex-wrap:wrap}.lineup-player{display:flex;align-items:center;gap:8px;font-size:14px}.tiny-portrait{width:44px;height:46px}.teams-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.team-card{position:relative;isolation:isolate;border:1px solid var(--line);border-top:4px solid var(--team);border-radius:7px;overflow:hidden;background:var(--panel);display:flex;flex-direction:column;min-width:0}.team-card .team-card-art{bottom:auto;height:165px;opacity:.45}.team-card-heading{display:flex;align-items:flex-start;justify-content:space-between;padding:20px;gap:14px}.team-card-heading>.badge{background:#0d1015cc;color:#eee}.team-card-logo{width:160px;height:112px;max-width:75%;padding:12px}.team-card-copy{padding:5px 22px 22px;display:flex;flex-direction:column;flex:1}.team-slogan{font-size:14px;color:var(--team-text);font-weight:650;min-height:24px;margin-bottom:10px}.team-card h2{font-size:23px;overflow-wrap:anywhere}.team-card .chips{margin-bottom:auto;padding-bottom:20px}.team-card-record{display:flex;gap:12px;justify-content:space-between;align-items:center;padding-top:14px;border-top:1px solid var(--line);margin-top:12px}.team-card-record strong{font-family:monospace;font-size:25px}.team-card-record small{font-family:inherit;font-size:13px;margin-right:6px}.team-card-record>span{font-size:13px;color:var(--muted)}.team-card:hover{border-color:var(--team)}.zero-teams{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.zero-team{padding:20px;background:var(--panel);border:1px solid var(--line);border-radius:5px;display:flex;align-items:center;justify-content:space-between;gap:14px}.zero-team .team-logo{width:120px;height:74px}.zero-team>span:last-child{font-size:14px;color:var(--muted)}.team-hero{position:relative;isolation:isolate;overflow:hidden;display:flex;align-items:center;gap:35px;padding:35px;border-radius:6px;border-top:4px solid var(--team);margin:20px 0 28px;background:#171e28}.team-hero .hero-art{opacity:.28}.team-hero-logo{width:230px;height:164px;padding:20px}.team-hero h1{font-size:38px}.team-hero .team-slogan{margin-top:14px;font-size:18px}.team-hero .hero-links{margin-top:18px}.title-result{display:block;width:100%;border:0;border-bottom:1px solid var(--line);background:transparent;text-align:left;padding:20px 0}.title-result>span,.title-result>strong{display:block}.title-result>strong{font-size:35px;font-family:monospace}.title-result>span:last-child{font-size:14px;color:var(--muted)}.title-result:hover>strong{color:var(--accent)}.roster-member{min-width:0;display:flex;flex-direction:column}.roster-member .small-note{padding:0 8px 8px}.roster-member .player-card{height:auto;flex:1}.detail-source{margin-top:16px}
@media(max-width:1050px){.teams-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.team-strip .team-logo{height:53px}.team-strip{gap:8px}.team-strip a>span:last-child{font-size:12px}.zero-team{display:block}.zero-team>span:last-child{display:block;margin-top:10px}.official-player-hero{grid-template-columns:160px minmax(0,1fr)}.hero-portrait{width:160px;height:174px}}
@media(max-width:650px){.team-strip{grid-template-columns:repeat(4,1fr);gap:16px 10px;padding-top:12px}.team-strip .team-logo{width:76px;height:50px}.team-strip a>span:last-child{font-size:12px}.player-visual{height:166px}.player-visual .portrait{width:125px;height:132px}.player-visual>.team-logo{width:128px;height:76px}.official-player-hero{padding:20px 15px;display:grid;grid-template-columns:112px minmax(0,1fr);gap:16px 14px;align-items:start}.hero-portrait{width:112px;height:125px;grid-row:1;grid-column:1}.hero-copy{grid-column:2}.official-player-hero h1{font-size:29px;line-height:1.2}.hero-catch{font-size:13px;margin-bottom:8px}.official-player-hero .eyebrow{font-size:12px;letter-spacing:.7px}.official-player-hero .affiliation{font-size:13px}.team-name-link{display:flex;gap:8px;flex-wrap:wrap}.team-name-link .team-logo{width:66px;height:42px}.official-player-hero .photo-credit,.official-player-hero .hero-links{grid-column:1/-1}.hero-links .button{font-size:13px;padding:9px 10px}.vs-identity .portrait{width:87px;height:94px}.vs-identity{gap:9px}.vs-identity .team-logo{width:74px;height:46px}.detail-logo{width:100px;height:70px;padding:9px}.lineup>div{display:block}.lineup-player{font-size:13px;margin:8px 0;overflow-wrap:anywhere}.tiny-portrait{width:37px;height:40px}.teams-grid{grid-template-columns:1fr}.team-card-heading{padding:22px}.team-card-logo{width:172px;height:116px}.team-card .team-card-art{height:178px}.team-card h2{font-size:26px}.zero-teams{gap:9px}.zero-team{padding:12px}.zero-team .team-logo{width:100%;height:65px;padding:2px}.zero-team>span:last-child{text-align:center;font-size:12px}.team-hero{display:block;padding:24px 20px}.team-hero-logo{width:180px;height:130px;margin-bottom:20px;padding:16px}.team-hero h1{font-size:29px}.team-hero .team-slogan{font-size:15px}.team-hero .hero-links{margin-top:15px}.match-meta{flex-wrap:wrap}.match-card .hint{font-size:12px}nav{gap:8px}nav a{font-size:13px}.team-logo img{font-size:10px}}
.duo-partners{display:grid;grid-template-columns:1fr 1fr;gap:14px;background:var(--panel);border:1px solid var(--line);padding:20px;border-radius:6px;margin-bottom:24px}.duo-partners[hidden]{display:none}.duo-partners select{width:100%}.duo-partners>p{grid-column:1/-1;margin-top:0}.duel-breakdown{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:24px 0}.duel-breakdown .panel{margin:0;min-width:0}.duel-breakdown h3{font-size:16px;margin-bottom:12px}.duel-breakdown strong{display:block;font-family:ui-monospace,monospace;font-size:24px}.duel-breakdown small{display:block;color:var(--muted);font-size:12px;margin-top:8px;overflow-wrap:anywhere}.duo-badge{border-color:#448d98;color:var(--cyan);background:#63dcec12}.duel-song-name{margin:8px 0;font-weight:650}.duel-lineups{display:flex;gap:5px;flex-wrap:wrap;font-size:12px;color:var(--muted)}.duel-lineups a{color:var(--cyan)}.duel-table td>b{font-family:ui-monospace,monospace}.duel-table td>small{display:block;white-space:nowrap;color:var(--muted);font-size:12px;margin-top:6px}.zero-duels{display:grid;gap:14px}.zero-duels>.panel{margin:0}.zero-duel-pairs{display:flex;align-items:center;flex-wrap:wrap;gap:16px;margin:16px 0}.zero-duel-pairs b{color:var(--accent);margin-left:10px}.zero-duel-pairs a{color:var(--cyan)}
@media(max-width:650px){.duel-breakdown{grid-template-columns:1fr;gap:10px}.duel-breakdown .panel{padding:15px 18px}.duel-breakdown h3{font-size:14px;margin-bottom:6px}.duel-breakdown strong{font-size:23px}.duo-partners{padding:15px 12px;gap:12px}.duo-partners select{font-size:13px;padding:10px 5px}.duo-partners label{font-size:12px}.duel-table th,.duel-table td{padding:12px 9px}.duel-table th{max-width:130px;white-space:normal;overflow-wrap:anywhere}.duel-table td:first-child{min-width:170px}.duel-table .button{font-size:12px;padding:8px}.duel-lineups{display:block}.duel-lineups span,.duel-lineups small{display:block}.zero-duel-pairs{display:grid;gap:8px}.versus-board small{font-size:12px}}
/* Navigation lenses and official season identity */
.view-icon{width:24px;height:24px;display:inline-block;flex:none;vertical-align:middle}.view-kicker{display:flex;align-items:center;gap:10px}.view-kicker .view-icon{width:22px;height:22px}.view-kicker:has(svg){line-height:1.5}header{display:grid;grid-template-columns:1fr auto;padding-bottom:0;gap:20px}.brand{grid-column:1;grid-row:1;width:max-content}.edition{grid-column:2;grid-row:1}header nav{grid-column:1/-1;width:100%;margin:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr)) minmax(140px,.8fr);gap:8px}nav a{--lens:var(--accent);display:flex;align-items:center;gap:12px;padding:16px 18px 18px;background:#151a22;border:1px solid var(--line);border-bottom:3px solid transparent;border-radius:7px 7px 0 0;min-width:0}nav a[data-view="teams"]{--lens:#ff79b3}nav a[data-view="players"]{--lens:#6cd1fa}nav a[data-view="versus"]{--lens:#ffc767}nav a[data-view="about"]{--lens:#bec9d9}nav a>.view-icon{width:25px;height:25px;color:var(--lens)}.nav-copy{display:flex;flex-direction:column;gap:4px;min-width:0}.nav-copy b{font-size:15px;line-height:1.3;color:#c8d2e1}.nav-copy small{font-size:12px;font-weight:400;line-height:1.3;color:var(--muted)}nav a.active{background:color-mix(in srgb,var(--lens) 10%,#151a22);border-bottom-color:var(--lens);border-top-color:color-mix(in srgb,var(--lens) 45%,var(--line))}nav a.active .nav-copy b{color:var(--text)}nav a:hover{background:color-mix(in srgb,var(--lens) 8%,#151a22)}.selector-heading{display:flex;align-items:center;gap:10px;margin:22px 0 14px;color:#d4dfed}.selector-heading h2{font-size:17px}.selector-heading>.view-icon{width:21px;height:21px;color:var(--accent)}.selector-heading>span,.selector-heading>a{margin-left:auto;font-size:12px;color:var(--muted)}.team-selector-heading>.view-icon{color:#ff79b3}.selector-heading>a{color:var(--cyan);font-size:14px}.season-rail{gap:10px;background:none;border:0;border-radius:0;overflow:visible}.season-button{border:1px solid var(--line)!important;border-radius:7px;padding:15px 16px 12px;background:#161d28;display:flex;flex-direction:column;gap:8px;min-height:165px}.season-button.active{background:#273226;border-color:var(--accent)!important;box-shadow:inset 0 3px var(--accent)}.season-button>small{font-size:12px;letter-spacing:.5px}.season-art{height:75px;display:flex;align-items:center;justify-content:center;width:100%;margin:2px 0 5px}.season-logo{display:block;object-fit:contain;max-width:100%;height:auto}.season-art>.season-logo{max-height:75px;width:100%;object-fit:contain}.all-seasons-icon{width:40px;height:40px;color:var(--accent);stroke-width:1.4}.season-tab-caption{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%}.season-tab-caption>b{font-size:19px;margin:0;letter-spacing:0}.season-tab-caption>span{font-size:12px;color:#c8d3e1}.next-season-logo{width:210px;max-height:115px;object-fit:contain;margin:0 auto 22px}.next-season-panel{border-top:3px solid #ffb35e;background:linear-gradient(150deg,#ffb35e12,transparent 60%),var(--panel)}.match-season-logo{width:70px;height:30px;flex:none;object-fit:contain;align-self:center}.match-meta{align-items:center;flex-wrap:wrap;gap:7px 9px;min-height:30px;margin-bottom:13px}.match-meta>b{flex:1;min-width:90px}.match-meta>span{font-size:12px}.champ-season{display:flex;align-items:center;gap:8px}.champ-season-logo{width:58px;height:24px;object-fit:contain}.dialog-season .season-logo{width:170px;max-height:80px;object-fit:contain;margin-bottom:15px}.season-id .timeline-season-logo{width:75px;height:40px;object-fit:contain;margin-bottom:8px}.timeline-row{grid-template-columns:80px 1fr}.timeline-row .season-id{font-size:18px;text-align:center}.coverage-logo{width:115px;height:52px;object-fit:contain;margin:0 auto 12px}.coverage>div>small{display:block}.coverage>div{text-align:center}
/* Team color extends across the surface while score and body text remain neutral. */
.team-strip{border:0;padding:0;margin-bottom:22px;gap:10px}.team-strip a{background:linear-gradient(150deg,rgba(var(--team-rgb),.26),rgba(var(--team-rgb),.09)),#151a22;border:1px solid rgba(var(--team-rgb),.42);border-bottom:4px solid var(--team);border-radius:6px;padding:12px 5px 10px;min-width:0}.team-strip a>span:last-child{color:var(--team-text);font-weight:650}.team-strip a:hover{background:rgba(var(--team-rgb),.34);border-color:var(--team)}.team-strip .team-logo{width:90px;height:58px}.match-card .team-row{border-left:4px solid var(--team);border-radius:4px;background:linear-gradient(90deg,rgba(var(--team-rgb),.25),rgba(var(--team-rgb),.065));padding:8px 10px 8px 7px;min-height:62px;gap:10px}.match-card .team-name{font-weight:650;color:var(--text)}.match-card .team-row.win{background:linear-gradient(90deg,rgba(var(--team-rgb),.38),rgba(var(--team-rgb),.10))}.match-card .team-row .result-symbol{border:1px solid rgba(var(--team-rgb),.4);background:#0d10158c;width:21px;text-align:center;line-height:20px;border-radius:3px}.team-card{background:linear-gradient(160deg,rgba(var(--team-rgb),.2),rgba(var(--team-rgb),.06) 70%),#151a22;border-left:1px solid rgba(var(--team-rgb),.5);border-right:1px solid rgba(var(--team-rgb),.5);border-bottom:5px solid var(--team)}.team-card .team-card-art{height:182px;opacity:.66}.team-card-heading{background:linear-gradient(90deg,rgba(var(--team-rgb),.28),transparent)}.team-card-copy{border-top:1px solid rgba(var(--team-rgb),.5);padding-top:18px}.team-card .chip{background:rgba(var(--team-rgb),.22);border:1px solid rgba(var(--team-rgb),.4);color:var(--team-text)}.team-card-record{border-top-color:rgba(var(--team-rgb),.5)}.team-card-record>strong{color:var(--team-text)}.team-card .bar .w{background:var(--team-text)}.team-hero{background:linear-gradient(110deg,rgba(var(--team-rgb),.52),rgba(var(--team-rgb),.13)),#10151e;border-bottom:1px solid rgba(var(--team-rgb),.65)}.team-hero .hero-art{opacity:.38}.team-hero h1{color:#fff}.team-hero .eyebrow{color:var(--team-text)}.branded-player{background:linear-gradient(160deg,rgba(var(--team-rgb),.16),rgba(var(--team-rgb),.045)),#151a22;border-bottom:3px solid var(--team)}.branded-player:hover{background:linear-gradient(160deg,rgba(var(--team-rgb),.26),rgba(var(--team-rgb),.08)),#151a22}.player-visual{background:rgba(var(--team-rgb),.42);border-bottom:3px solid var(--team)}.player-visual-art{opacity:.8}.branded-player .player-copy{border-top:1px solid rgba(var(--team-rgb),.5)}.branded-player .card-metrics{border-color:rgba(var(--team-rgb),.5)}.official-player-hero{background:linear-gradient(110deg,rgba(var(--team-rgb),.47),rgba(var(--team-rgb),.12)),#111821;border-bottom:2px solid var(--team)}.official-player-hero .eyebrow{color:var(--team-text)}.champ{background:linear-gradient(90deg,rgba(var(--team-rgb),.19),transparent);border-left:3px solid var(--team);padding-left:10px;padding-right:8px;margin-bottom:9px;border-radius:3px}.champ:last-child{border-left:3px solid var(--team);padding-bottom:10px}.tag-score{background:rgba(var(--team-rgb),.13);padding:9px;border-radius:3px}
@media(max-width:1050px){header{gap:18px}.edition{display:block}nav a{padding:13px 12px;gap:10px}.nav-copy b{font-size:14px}.nav-copy small{font-size:12px}.season-button{padding:12px;min-height:151px}.season-art{height:65px}.team-strip .team-logo{height:49px}}
@media(max-width:650px){header{display:grid;grid-template-columns:1fr;padding:18px 5% 0;gap:20px}.edition{display:none}header nav{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:5px;margin:0;width:100%}nav a{display:flex;flex-direction:column;justify-content:center;gap:7px;padding:10px 2px 11px;min-height:79px;border-radius:5px 5px 0 0}nav a>.view-icon{width:23px;height:23px}.nav-copy{align-items:center;gap:0}.nav-copy b{font-size:12px;white-space:normal;text-align:center;line-height:1.35;letter-spacing:-.15px}.nav-copy small{display:none}.season-rail{display:flex;overflow-x:auto;scroll-snap-type:x proximity;padding:3px 1px 10px;margin:0 -2px 8px;gap:9px;-webkit-overflow-scrolling:touch}.season-button{flex:0 0 139px;min-height:155px;padding:12px;scroll-snap-align:start}.season-button>small{font-size:12px}.season-art{height:72px;margin:2px 0}.season-art>.season-logo{max-height:72px}.season-tab-caption>b{font-size:18px}.season-tab-caption>span{font-size:12px}.selector-heading{margin-top:22px;gap:8px;flex-wrap:wrap}.selector-heading h2{font-size:16px}.selector-heading>span{font-size:12px;width:100%;margin-left:29px}.selector-heading>a{font-size:13px}.team-strip{gap:10px 8px;padding:0}.team-strip a{padding:9px 3px 8px;border-bottom-width:4px}.team-strip .team-logo{width:65px;height:44px;padding:4px}.team-strip a>span:last-child{font-size:12px;line-height:1.3;overflow-wrap:anywhere}.match-card .team-row{padding:7px 8px 7px 6px;gap:8px}.match-logo{width:57px;height:39px}.match-card .team-name{font-size:13px}.match-card .team-row .score{font-size:23px}.match-season-logo{width:65px;height:28px}.match-meta>b{font-size:12px;min-width:85px}.match-meta>span{font-size:12px}.timeline-row{grid-template-columns:68px 1fr;gap:12px}.timeline-row .season-id{font-size:17px}.season-id .timeline-season-logo{width:66px;height:38px}.dialog-season .season-logo{width:145px;height:68px}.view-kicker .view-icon{width:21px;height:21px}.view-kicker{letter-spacing:1.1px;font-size:12px;gap:8px}.team-card .team-card-art{height:184px}.team-card-copy{padding-top:16px}.team-hero{border-bottom-width:3px}}
#team-filter{border-bottom:3px solid var(--team,var(--line));color:var(--team-text,var(--text))}#team-filter option{background:var(--panel);color:var(--text)}

.page-heading{display:flex;align-items:center;gap:12px}.page-heading>.view-icon{width:28px;height:28px;color:var(--accent);flex-shrink:0}

/* Song art and battle categories: text + shape keep color supplementary. */
.category-badges{display:inline-flex;align-items:center;flex-wrap:wrap;gap:5px;vertical-align:middle;max-width:100%}
.category-chip{display:inline-flex;align-items:center;gap:5px;padding:4px 8px;border:1px solid #576477;border-radius:4px;background:#242e3c;color:#e5edf9;font-size:14px;font-weight:750;line-height:1.4;white-space:nowrap;letter-spacing:.15px}
.category-chip svg{width:16px;height:16px;flex-shrink:0}
.category-chip.category-classic{background:#172f47;border-color:#5b95c5;color:#a9d8ff}
.category-chip.category-white{background:#e6ecf4;border-color:#fff;color:#202b3b}
.category-chip.category-gold{background:#3e3014;border-color:#b58d3c;color:#f7d77b}
.category-chip.category-tricky{background:#30213f;border-color:#9169b3;color:#e1baff}
.category-chip.category-popular{background:#412337;border-color:#b66a94;color:#ffbfe3}
.category-badges.compact .category-chip{font-size:12px;padding:3px 5px;gap:4px}
.category-badges.compact svg{width:14px;height:14px}
.battle-heading .category-chip,.battle-heading .category-chip span{font-size:14px;color:inherit}
.battle-heading>.category-badges{margin-left:auto}
.music-jacket{display:block;width:96px;height:96px;object-fit:contain;aspect-ratio:1;flex-shrink:0;border-radius:4px;background:#080b10;border:1px solid #ffffff20}
.jacket-missing{display:grid;place-items:center;color:var(--muted);font-size:28px;background:#222b39;border:1px dashed #657184}
.jacket-link{display:block;flex-shrink:0;border-radius:4px}
.song-heading{display:flex;align-items:center;gap:16px}.song-heading-copy{min-width:0;flex:1}.song-heading .song-title{display:block}.song-heading .song-title small{display:block;margin-top:6px;font-size:12px;letter-spacing:.6px}.song-artist{font-size:13px;color:var(--muted);margin-top:5px;overflow-wrap:anywhere}.song .song-meta{margin-top:12px}
.duel-song-heading{display:flex;align-items:center;gap:12px;margin:12px 0}.duel-song-heading>div{min-width:0}.duel-jacket{width:60px;height:60px}.duel-song-name{margin:0 0 7px;overflow-wrap:anywhere}
.match-battles{border-top:1px solid var(--line);padding-top:8px;margin-top:12px;display:grid;gap:6px}.match-battle-row{display:flex;align-items:center;gap:9px;min-height:38px}.battle-number{display:flex;align-items:center;gap:5px;font-size:14px;font-weight:700;color:var(--muted);min-width:61px}.battle-number small{font-size:12px;font-weight:500}.match-jackets{display:flex;gap:4px;margin-left:auto;flex-shrink:0}.mini-jacket{width:34px;height:34px;border-radius:3px;font-size:18px}.match-battle-row .category-badges{gap:4px}
.category-legend{display:grid;gap:12px;margin:20px 0}.category-legend>div{display:grid;grid-template-columns:160px 1fr;gap:16px;align-items:center}.category-legend>div>span:last-child{font-size:14px;color:var(--muted)}
@media(max-width:650px){.song-heading{gap:12px}.song-heading .music-jacket{width:76px;height:76px}.battle-heading>.category-badges{margin-left:0;width:100%}.duel-song-heading{align-items:flex-start;gap:8px}.duel-jacket{width:44px;height:44px}.duel-song-heading .category-badges{gap:3px}.match-battle-row{gap:6px}.battle-number{min-width:47px;gap:3px}.match-battle-row .category-chip svg{display:none}.match-battle-row .category-chip{letter-spacing:0;padding:3px 4px;font-size:12px}.mini-jacket{width:28px;height:28px}.match-jackets{gap:3px}.category-legend>div{grid-template-columns:1fr;gap:5px}}
@media(max-width:360px){.match-battle-row{flex-wrap:wrap}.match-battle-row .match-jackets{margin-left:53px}}
.jacket-window{position:relative;overflow:hidden}.jacket-window img{position:absolute;display:block;max-width:none;max-height:none;object-fit:fill}

.site-return{padding:8px 4%;border-bottom:1px solid var(--line);font-size:12px;font-weight:700;letter-spacing:1px}.site-return a{color:var(--muted)}.site-return a:hover{color:var(--accent)}
