feat(stats): Records section + format-48 debuts band (Stage D)

- New Records sub-nav section (always available): match-record cards plus the
  format-48 debuts band. Sub-nav now Overview / Teams / Records.
- Moved the biggest-win card out of Teams into Records (it is a match record);
  Teams keeps team-level cards (win streak, champion path). Records shows
  biggest win + highest-scoring match (both -> openMatchModal), with the
  high-score card deduped when it is the same match as the biggest win.
- computeRecords gains highestScoringMatch. New recordsSectionHTML /
  highScoreCardHTML / formatDebutsHTML.
- Format debuts band: 48 teams, 104 matches, 12 groups, Round of 32, 8 best
  thirds, and (post-final) first champion of the 48-team era. Counts derived
  from data, champion from the verdict.
- i18n recordsTitle/highScoreMatch/formatDebutsTitle/debut* (EN/PT); CSS for
  .stats-subhead and the .debut-band.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Lucas Kalil 2026-06-17 00:33:59 -03:00
parent ddfc656f5d
commit e69ea7bd4d
3 changed files with 135 additions and 4 deletions

View file

@ -159,6 +159,15 @@ const dicts = {
'stats.biggestWin': 'Biggest win',
'stats.winStreak': 'Longest win streak',
'stats.championPath': "Champion's path",
'stats.recordsTitle': 'Records',
'stats.highScoreMatch': 'Highest-scoring match',
'stats.formatDebutsTitle': 'Format debuts',
'stats.debutTeams': 'First 48-team World Cup',
'stats.debutMatches': 'Matches (up from 64)',
'stats.debutGroups': 'Groups',
'stats.debutR32': 'A new knockout round',
'stats.debutThird': 'Best third-placed teams advance',
'stats.debutChampion': 'First champion of the 48-team era',
'stats.prevPage': 'Previous page',
'stats.nextPage': 'Next page',
'stats.seeAllMatches': 'See all matches',
@ -317,6 +326,15 @@ const dicts = {
'stats.biggestWin': 'Maior goleada',
'stats.winStreak': 'Maior sequência de vitórias',
'stats.championPath': 'Caminho do campeão',
'stats.recordsTitle': 'Recordes',
'stats.highScoreMatch': 'Jogo com mais gols',
'stats.formatDebutsTitle': 'Estreias do formato',
'stats.debutTeams': 'Primeira Copa com 48 seleções',
'stats.debutMatches': 'Partidas (eram 64)',
'stats.debutGroups': 'Grupos',
'stats.debutR32': 'Uma nova fase eliminatória',
'stats.debutThird': 'Melhores terceiros avançam',
'stats.debutChampion': 'Primeiro campeão da era dos 48',
'stats.prevPage': 'Página anterior',
'stats.nextPage': 'Próxima página',
'stats.seeAllMatches': 'Ver todas as partidas',