@font-face {
  font-family: "Libre Franklin Questory";
  src: url("./assets/fonts/LibreFranklin-Regular.ttf") format("truetype");
  font-style: normal;
  font-weight: 400;
  font-display: swap;
}

@font-face {
  font-family: "Libre Franklin Questory";
  src: url("./assets/fonts/LibreFranklin-SemiBold.ttf") format("truetype");
  font-style: normal;
  font-weight: 600;
  font-display: swap;
}

@font-face {
  font-family: "Libre Franklin Questory";
  src: url("./assets/fonts/LibreFranklin-Bold.ttf") format("truetype");
  font-style: normal;
  font-weight: 700;
  font-display: swap;
}

:root {
  --paper: #f3eee2;
  --paper-deep: #e8dfcf;
  --paper-light: #fbf8f0;
  --ink: #172724;
  --muted: #56615c;
  --forest: #214c43;
  --forest-dark: #15352f;
  --rust: #bd5a3b;
  --rust-ink: #8c3f2b;
  --rule: #b8b3a7;
  --rule-strong: #827f76;
  --success: #2f6458;
  --font-ui: "Libre Franklin Questory", "IBM Plex Sans JP", "Noto Sans JP", "Hiragino Sans", "Yu Gothic", system-ui, sans-serif;
  --font-editorial: var(--font-ui);
  color-scheme: light;
}

* { box-sizing: border-box; }

html {
  min-width: 320px;
  background: var(--paper);
  scroll-behavior: smooth;
}

body {
  margin: 0;
  color: var(--ink);
  background:
    linear-gradient(rgba(23, 39, 36, .025) 1px, transparent 1px) 0 0 / 100% 34px,
    var(--paper);
  font-family: var(--font-ui);
  font-size: 16px;
  line-height: 1.55;
}

button, input, select { font: inherit; }
button, a, select, input { -webkit-tap-highlight-color: transparent; }
a { color: inherit; }

button:focus-visible,
a:focus-visible,
select:focus-visible,
input:focus-visible,
[tabindex="0"]:focus-visible {
  outline: 3px solid var(--rust-ink);
  outline-offset: 3px;
}

.skip-link {
  position: fixed;
  top: 8px;
  left: 8px;
  z-index: 2000;
  transform: translateY(-160%);
  padding: 10px 14px;
  color: var(--paper-light);
  background: var(--ink);
  font-weight: 700;
}

.skip-link:focus { transform: translateY(0); }

.masthead {
  position: sticky;
  top: 0;
  z-index: 100;
  box-shadow: 0 2px 9px rgba(23, 39, 36, .18);
}

.masthead__brandband { border-top: 3px solid var(--forest-dark); background: var(--forest); }

.masthead__inner,
.masthead__navinner,
.workspace {
  width: min(100% - 48px, 1180px);
  margin-inline: auto;
}

.masthead__inner {
  display: flex;
  min-height: 68px;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
}

.brand {
  display: inline-flex;
  min-width: 0;
  align-items: center;
  gap: 13px;
  color: var(--paper-light);
  text-decoration: none;
}

.brand__mark { width: 50px; height: 50px; flex: 0 0 auto; }
.brand__text { display: grid; min-width: 0; }

.eyebrow {
  font-size: .66rem;
  font-weight: 700;
  letter-spacing: .11em;
  line-height: 1.2;
}

.brand strong {
  overflow-wrap: anywhere;
  font-family: var(--font-editorial);
  font-size: clamp(1.32rem, 3.1vw, 2rem);
  font-weight: 600;
  letter-spacing: -.025em;
  line-height: 1.08;
}

.masthead__navband { color: var(--paper-light); background: var(--ink); }

.masthead__navinner {
  width: min(100%, 1240px);
  min-height: 28px;
  padding: 0 28px;
}

.tabs {
  display: flex;
  min-height: 28px;
  align-items: stretch;
  justify-content: flex-start;
  gap: 18px;
  overflow-x: auto;
  scrollbar-width: none;
}

.tabs::-webkit-scrollbar { display: none; }

.tabs [data-tab] {
  display: flex;
  align-items: center;
  min-height: 0;
  padding: 0;
  border: 0;
  border-bottom: 2px solid transparent;
  color: var(--paper-deep);
  background: transparent;
  font-size: 9px;
  font-weight: 700;
  letter-spacing: .08em;
  text-decoration: none;
  white-space: nowrap;
  cursor: pointer;
}

.tabs [data-tab]:hover { color: var(--paper-light); background: rgba(251, 248, 240, .06); }
.tabs [data-tab][aria-selected="true"] { border-bottom-color: var(--rust); color: #fff; }
.tabs [data-tab]:focus-visible { outline-color: var(--paper-light); outline-offset: -4px; }

.game-strip {
  display: flex;
  min-height: 35px;
  align-items: center;
  justify-content: center;
  gap: 18px;
  padding: 5px 24px;
  color: var(--paper-light);
  background: var(--rust-ink);
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .04em;
}

.team-avatar {
  display: inline-block;
  width: 32px;
  height: 32px;
  flex: 0 0 auto;
  border: 1px solid rgba(23, 39, 36, .18);
  border-radius: 50%;
  object-fit: cover;
  vertical-align: middle;
}

.team-avatar--strip, .team-avatar--inline { width: 22px; height: 22px; }
.team-avatar--table { width: 30px; height: 30px; }
.team-avatar--heading { width: 1.05em; height: 1.05em; }
.team-avatar--hero { width: 1.15em; height: 1.15em; }

.game-strip strong { display: inline-flex; align-items: center; gap: 7px; }
.game-strip b { font-size: 1rem; }
.game-strip i { opacity: .65; font-style: normal; }

.workspace { min-height: 70vh; padding-block: 42px 80px; }

.page-intro {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(320px, .75fr);
  gap: 48px;
  align-items: end;
  padding: 0 0 27px;
  border-bottom: 1px solid var(--rule-strong);
}

.page-intro h1,
.section-title h2,
.player-index h2,
.player-sheet h2,
.source-proof h2,
.entry-section h2,
.note-status h2 {
  margin: 4px 0 0;
  font-family: var(--font-editorial);
  font-weight: 600;
  letter-spacing: -.035em;
  line-height: 1.05;
}

.page-intro h1 { font-size: clamp(2.8rem, 7vw, 5.4rem); }
.page-intro__summary { display: grid; gap: 12px; justify-items: start; }
.page-intro__summary p { max-width: 34rem; margin: 0; color: var(--muted); }

.status-flag {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  border-bottom: 2px solid var(--forest);
  color: var(--forest-dark);
  font-size: .75rem;
  font-weight: 700;
}

.status-flag::before { width: 7px; height: 7px; border-radius: 50%; background: var(--forest); content: ""; }
.status-flag--local { border-color: var(--rust); color: var(--rust-ink); }
.status-flag--local::before { background: var(--rust); }

.score-hero {
  display: grid;
  grid-template-columns: 360px minmax(0, 1fr);
  gap: 40px;
  align-items: end;
  padding: 44px 0;
  border-bottom: 1px solid var(--rule);
}

.score-hero__meta > span { color: var(--rust-ink); font-size: .67rem; font-weight: 700; letter-spacing: .11em; }
.score-hero__meta time { display: block; margin-top: 19px; color: var(--muted); font-size: .83rem; font-weight: 600; }

.score-hero__meta h2 {
  display: flex;
  align-items: baseline;
  gap: 12px;
  margin: 2px 0 8px;
  font-size: clamp(1.65rem, 3.2vw, 2.5rem);
  line-height: 1.1;
}

.score-hero__meta h2 span { display: inline-flex; align-items: baseline; gap: 8px; white-space: nowrap; }
.score-hero__meta h2 span { align-items: center; }
.score-hero__meta h2 b { color: var(--rust-ink); font-family: var(--font-editorial); font-size: 1.18em; }
.score-hero__meta h2 i { color: var(--rule-strong); font-style: normal; }
.score-hero__meta p { margin: 0; color: var(--muted); font-size: .84rem; }

.scoreboard-wrap,
.table-wrap { max-width: 100%; overflow-x: auto; overscroll-behavior-inline: contain; }

.scoreboard-wrap:focus-visible,
.table-wrap:focus-visible { outline-offset: 2px; }

table { border-collapse: collapse; font-variant-numeric: tabular-nums; }
caption { position: absolute; overflow: hidden; width: 1px; height: 1px; clip: rect(0 0 0 0); white-space: nowrap; }

.scoreboard { width: 100%; min-width: 650px; border-top: 3px solid var(--ink); border-bottom: 1px solid var(--ink); background: rgba(251, 248, 240, .32); }
.scoreboard th, .scoreboard td { width: 52px; padding: 12px 8px; border-right: 1px solid var(--rule); text-align: center; }
.scoreboard th:first-child { width: 120px; text-align: left; }
.scoreboard th:last-child, .scoreboard td:last-child { border-left: 2px solid var(--ink); border-right: 0; font-weight: 700; }
.scoreboard thead th { padding-block: 7px; color: var(--muted); font-size: .66rem; letter-spacing: .08em; }
.scoreboard tbody tr { border-top: 1px solid var(--rule); }
.scoreboard tbody th { font-size: .93rem; }
.scoreboard__winner th, .scoreboard__winner td:last-child { color: var(--rust-ink); }
.scoreboard--compact th, .scoreboard--compact td { padding-block: 9px; }

.stat-ledger,
.leaderboard-section,
.appearance-ledger,
.articles { padding-top: 48px; }

.section-title {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 32px;
  margin-bottom: 22px;
}

.section-title--rule { padding-bottom: 14px; border-bottom: 3px solid var(--ink); }
.section-title h2 { font-size: clamp(1.8rem, 4vw, 2.7rem); }
.heading-with-avatar, .icon-score { display: inline-flex; align-items: center; gap: .35em; }
.section-title p { max-width: 30rem; margin: 0; color: var(--muted); font-size: .82rem; text-align: right; }

.stat-line {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  margin: 0;
  border-top: 3px solid var(--ink);
  border-bottom: 1px solid var(--ink);
}

.stat-line div { padding: 18px 14px 14px; border-right: 1px solid var(--rule); }
.stat-line div:last-child { border-right: 0; }
.stat-line dt { color: var(--muted); font-size: .65rem; font-weight: 700; letter-spacing: .09em; }
.stat-line dd { margin: 4px 0 0; font-family: var(--font-editorial); font-size: clamp(2rem, 4vw, 3.4rem); font-weight: 600; line-height: 1; }
.stat-line small { color: var(--muted); font-size: .7rem; }

.text-action,
.external-action {
  border: 0;
  border-bottom: 2px solid var(--rust);
  padding: 5px 0;
  color: var(--rust-ink);
  background: transparent;
  font-size: .75rem;
  font-weight: 700;
  text-decoration: none;
  cursor: pointer;
}

.table-note { margin: 12px 0 0; color: var(--muted); font-size: .7rem; text-align: right; }

body[data-page="leaderboards"] .workspace {
  width: min(100% - 56px, 1080px);
  padding-block: 10px 20px;
}

.leaderboard-view {
  display: grid;
  gap: 9px;
  min-width: 0;
}

.leaderboard-results,
.leaderboard-table-wrap { min-width: 0; }

.leaderboard-intro {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 24px;
  padding-bottom: 8px;
  border-bottom: 2px solid var(--ink);
}

.leaderboard-intro h1 {
  margin: 2px 0 0;
  font-family: var(--font-ui);
  font-size: clamp(27px, 3vw, 34px);
  font-weight: 700;
  letter-spacing: -.025em;
  line-height: 1;
  text-transform: uppercase;
}

.leaderboard-category-tabs {
  display: flex;
  border-bottom: 1px solid var(--ink);
}

.leaderboard-category-tabs span {
  min-width: 122px;
  padding: 7px 15px 6px;
  border-right: 1px solid var(--rule);
  color: var(--muted);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .08em;
  text-align: center;
}

.leaderboard-category-tabs .is-active {
  color: var(--paper-light);
  background: var(--forest);
  box-shadow: inset 0 -3px 0 var(--rust);
}

.leaderboard-metric-tabs {
  display: flex;
  gap: 7px;
  align-items: center;
  margin-top: -3px;
  padding-bottom: 6px;
  border-bottom: 1px solid var(--rule);
  overflow-x: auto;
}

.leaderboard-metric-tabs button {
  flex: 0 0 auto;
  padding: 5px 10px 4px;
  border: 1px solid var(--rule);
  color: var(--muted);
  background: rgba(255, 255, 255, .28);
  font-size: 9px;
  font-weight: 700;
  letter-spacing: .08em;
  cursor: pointer;
}

.leaderboard-metric-tabs .is-active { border-color: var(--ink); color: var(--paper); background: var(--ink); }

.leaderboard-results__heading {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 20px;
  padding-bottom: 4px;
}

.leaderboard-results__heading span { color: var(--rust-ink); font-size: 9px; font-weight: 700; letter-spacing: .1em; }
.leaderboard-results__heading h2 { margin: 1px 0 0; font-size: 21px; line-height: 1; text-transform: uppercase; }
.leaderboard-results__heading p { margin: 0; color: var(--muted); font-size: 9px; font-weight: 700; letter-spacing: .03em; }

.leaderboard-table-wrap {
  width: 100%;
  max-height: 66vh;
  overflow: auto;
  border-top: 1px solid var(--ink);
  border-bottom: 1px solid var(--ink);
  scrollbar-width: thin;
  scrollbar-color: var(--rust) var(--paper-deep);
}

.leaderboard-table {
  width: 100%;
  min-width: 760px;
  border-collapse: separate;
  border-spacing: 0;
  font-size: 11px;
  table-layout: fixed;
  text-align: right;
  white-space: nowrap;
}

.leaderboard-table th {
  position: sticky;
  top: 0;
  z-index: 3;
  height: 42px;
  padding: 0 7px;
  border-bottom: 2px solid var(--forest);
  color: var(--muted);
  background: var(--paper);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0;
  text-align: center;
}

.leaderboard-table td {
  height: 38px;
  padding: 8px 7px;
  border-bottom: 1px solid var(--rule);
  font-variant-numeric: tabular-nums;
  font-weight: 600;
  text-align: center;
}

.leaderboard-table tbody tr:hover > * { box-shadow: inset 0 0 0 999px rgba(33, 76, 67, .035); }
.leaderboard-table .is-sorted { color: var(--forest-dark); font-weight: 700; }
.leaderboard-table__rank { width: 38px; min-width: 38px; color: var(--rust-ink); text-align: center !important; }
.leaderboard-table__player { width: 118px; min-width: 118px; max-width: 118px; text-align: left !important; }
.leaderboard-table thead .leaderboard-table__rank { left: 0; z-index: 5; }
.leaderboard-table thead .leaderboard-table__player { left: 38px; z-index: 5; box-shadow: 1px 0 var(--rule); }
.leaderboard-table tbody .leaderboard-table__rank,
.leaderboard-table tbody .leaderboard-table__player { position: sticky; z-index: 1; background: var(--paper); }
.leaderboard-table tbody .leaderboard-table__rank { left: 0; }
.leaderboard-table tbody .leaderboard-table__player { left: 38px; box-shadow: 1px 0 var(--rule); }
.leaderboard-player-name {
  display: block;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  font-family: var(--font-ui);
  font-size: 11px;
  font-style: normal;
  font-weight: 700;
  letter-spacing: 0;
  line-height: 1.2;
}

.leaderboard-table .table-player-link {
  appearance: none;
  font-family: var(--font-ui);
  font-size: 11px;
  font-style: normal;
  font-weight: 700;
  letter-spacing: 0;
  line-height: 1.2;
}

.leaderboard-sort {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 36px;
  border: 0;
  padding: 0;
  color: inherit;
  background: transparent;
  font: inherit;
  font-weight: 700;
  cursor: pointer;
  white-space: nowrap;
}

.leaderboard-sort:hover,
.leaderboard-sort:focus-visible,
.leaderboard-sort.is-active { color: var(--rust-ink); }

.leaderboard-table tfoot th,
.leaderboard-table tfoot td {
  position: sticky;
  bottom: 0;
  z-index: 2;
  height: 40px;
  border-top: 2px solid var(--forest);
  border-bottom: 0;
  color: var(--ink);
  background: color-mix(in srgb, var(--rust) 9%, var(--paper-light));
  font-weight: 800;
  text-align: center;
}

.leaderboard-table tfoot .leaderboard-table__rank { left: 0; }
.leaderboard-table tfoot .leaderboard-table__player { left: 38px; z-index: 3; padding-left: 9px; text-align: left; box-shadow: 1px 0 var(--rule); }

.data-table { width: 100%; min-width: 760px; background: rgba(251, 248, 240, .32); }
.data-table thead { color: var(--paper-light); background: var(--forest); }
.data-table th, .data-table td { padding: 12px 13px; border-bottom: 1px solid var(--rule); text-align: right; }
.data-table th:nth-child(2) { text-align: left; }
.data-table tbody tr:hover { background: rgba(189, 90, 59, .06); }
.data-table tbody th { max-width: 220px; overflow-wrap: anywhere; }
.data-table .rank { color: var(--muted); font-size: .72rem; }

.table-player-link {
  border: 0;
  border-bottom: 1px solid transparent;
  padding: 0;
  color: var(--ink);
  background: transparent;
  font-weight: 700;
  text-align: left;
  cursor: pointer;
}

.table-player-link:hover { border-bottom-color: var(--rust); color: var(--rust-ink); }

.method-note {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: 24px;
  align-items: center;
  margin-top: 48px;
  padding: 24px 0;
  border-top: 1px solid var(--rule-strong);
  border-bottom: 1px solid var(--rule-strong);
}

.method-note__number { color: var(--rust-ink); font-family: var(--font-editorial); font-size: 2.2rem; }
.method-note h2 { margin: 0; font-size: 1rem; }
.method-note p { max-width: 48rem; margin: 3px 0 0; color: var(--muted); font-size: .85rem; }
.page-count { color: var(--rust-ink); font-family: var(--font-editorial); font-size: 2.4rem; font-weight: 600; line-height: 1; }
.page-count small { font-family: var(--font-ui); font-size: .64rem; letter-spacing: .08em; }

.player-workspace {
  display: grid;
  grid-template-columns: minmax(230px, .36fr) minmax(0, 1fr);
  gap: 42px;
  padding-top: 38px;
}

.player-index { border-top: 3px solid var(--ink); }
.player-index__heading { display: flex; align-items: end; justify-content: space-between; padding: 18px 4px 13px; border-bottom: 1px solid var(--rule-strong); }
.player-index h2 { font-size: 2rem; }
.player-index ol { margin: 0; padding: 0; list-style: none; }
.player-index li { border-bottom: 1px solid var(--rule); }

.player-index button {
  display: grid;
  grid-template-columns: 54px minmax(0, 1fr) auto;
  width: 100%;
  min-height: 47px;
  align-items: center;
  gap: 10px;
  border: 0;
  border-left: 4px solid transparent;
  padding: 7px 8px;
  color: var(--ink);
  background: transparent;
  text-align: left;
  cursor: pointer;
}

.player-index button:hover { background: rgba(251, 248, 240, .5); }
.player-index button[aria-pressed="true"] { border-left-color: var(--rust); background: var(--paper-light); }
.player-index button span { color: var(--muted); font-size: .64rem; font-weight: 700; letter-spacing: .04em; }
.player-index button strong { min-width: 0; overflow-wrap: anywhere; font-size: .88rem; }
.player-index button small { color: var(--muted); font-size: .65rem; }

.player-sheet { width: 100%; min-width: 0; }
.player-sheet .table-wrap { width: 100%; min-width: 0; }
.player-sheet__header { display: flex; min-height: 134px; align-items: start; justify-content: space-between; gap: 32px; padding: 22px 26px; color: var(--paper-light); background: var(--forest); }
.player-sheet h2 { max-width: 18ch; overflow-wrap: anywhere; font-size: clamp(2.3rem, 6vw, 4.8rem); }
.player-sheet__header p { margin: 9px 0 0; color: var(--paper-deep); font-size: .78rem; }
.player-sheet__avg { display: grid; justify-items: end; flex: 0 0 auto; }
.player-sheet__avg span { font-size: .63rem; font-weight: 700; letter-spacing: .1em; }
.player-sheet__avg strong { font-family: var(--font-editorial); font-size: 3rem; font-weight: 600; line-height: 1.1; }

.player-stat-line { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); margin: 0 0 34px; border: 1px solid var(--rule); border-top: 0; }
.player-stat-line div { padding: 12px; border-right: 1px solid var(--rule); text-align: center; }
.player-stat-line div:last-child { border-right: 0; }
.player-stat-line dt { color: var(--muted); font-size: .61rem; font-weight: 700; }
.player-stat-line dd { margin: 2px 0 0; font-size: 1.15rem; font-weight: 700; }

.player-game-label { display: flex; align-items: center; gap: 14px; margin-bottom: 10px; }
.player-game-label > span { display: grid; width: 38px; height: 38px; place-items: center; color: var(--paper-light); background: var(--rust-ink); font-size: .74rem; font-weight: 700; }
.player-game-label div { display: grid; }
.player-game-label small { color: var(--muted); font-size: .7rem; }
.player-game-label .icon-score { margin-top: 3px; }
.player-log th:nth-child(3), .player-log td:nth-child(3), .player-log th:last-child, .player-log td:last-child { text-align: left; }

.scorebook-overview { display: grid; grid-template-columns: minmax(210px, .34fr) minmax(0, 1fr); gap: 36px; align-items: end; padding: 38px 0; }
.scorebook-overview h2 { margin: 4px 0; font-family: var(--font-editorial); font-size: clamp(1.8rem, 4vw, 3rem); }
.scorebook-overview .icon-score--large { display: flex; gap: .3em; }
.scorebook-overview p,
.scorebook-overview time { margin: 0; color: var(--muted); font-size: .8rem; }

.lineup-rule { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 26px; align-items: center; padding: 25px 28px; color: var(--paper-light); background: var(--ink); }
.lineup-rule__mark { display: grid; width: 54px; height: 54px; place-items: center; border: 1px solid rgba(251, 248, 240, .5); color: var(--rust); font-family: var(--font-editorial); font-size: 2rem; }
.lineup-rule h2 { margin: 3px 0; font-family: var(--font-editorial); font-size: 2rem; }
.lineup-rule p { max-width: 42rem; margin: 0; color: var(--paper-deep); font-size: .83rem; }
.lineup-rule ol { display: flex; gap: 12px; margin: 0; padding: 0; list-style: none; font-size: .74rem; }
.lineup-rule li { display: grid; }
.lineup-rule b { color: var(--rust); font-size: .63rem; }

.source-proof { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(280px, .9fr); gap: 42px; align-items: center; padding: 54px 0; border-bottom: 1px solid var(--rule-strong); }
.source-proof figure { margin: 0; }
.source-proof figure a { display: block; border: 8px solid var(--paper-light); box-shadow: 0 7px 18px rgba(23, 39, 36, .16); }
.source-proof img { display: block; width: 100%; height: auto; filter: saturate(.9) contrast(1.03); }
.source-proof figcaption { display: flex; justify-content: space-between; gap: 18px; margin-top: 11px; color: var(--muted); font-size: .7rem; }
.source-proof figcaption span { color: var(--rust-ink); font-weight: 700; }
.source-proof h2 { max-width: 12ch; margin-top: 7px; font-size: clamp(2rem, 5vw, 3.8rem); }
.source-proof p { color: var(--muted); }
.source-proof dl { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 25px 0 0; border-top: 1px solid var(--rule-strong); border-bottom: 1px solid var(--rule-strong); }
.source-proof dl div { padding: 12px; border-right: 1px solid var(--rule); }
.source-proof dl div:last-child { border-right: 0; }
.source-proof dt { color: var(--muted); font-size: .65rem; }
.source-proof dd { margin: 1px 0 0; font-family: var(--font-editorial); font-size: 1.8rem; }

.inline-filter { display: flex; align-items: center; gap: 8px; color: var(--muted); font-size: .7rem; font-weight: 700; }
.inline-filter select, .entry-form select, .entry-form input { min-height: 42px; border: 1px solid var(--rule-strong); border-radius: 0; padding: 8px 10px; color: var(--ink); background: var(--paper-light); }
.appearance-table th:nth-child(3), .appearance-table td:nth-child(3), .appearance-table th:nth-child(5), .appearance-table td:nth-child(5), .appearance-table th:last-child, .appearance-table td:last-child { text-align: left; }
.appearance-table tbody th { overflow-wrap: anywhere; }
.appearance-table tr.is-uncertain { background: rgba(189, 90, 59, .08); }

.result-mark { display: inline-grid; min-width: 34px; min-height: 27px; place-items: center; border: 1px solid var(--rule-strong); font-size: .68rem; font-weight: 700; }
.result-mark--1b { color: var(--paper-light); border-color: var(--forest); background: var(--forest); }
.result-mark--bb, .result-mark--e { color: var(--rust-ink); border-color: var(--rust); background: var(--paper-light); }
.confidence { color: var(--success); font-size: .69rem; font-weight: 700; }
.confidence--check, .confidence--local { color: var(--rust-ink); }

.entry-section { display: grid; grid-template-columns: minmax(220px, .38fr) minmax(0, 1fr); gap: 42px; margin-top: 54px; padding: 32px; border: 1px solid var(--rule-strong); background: rgba(251, 248, 240, .55); }
.entry-section h2 { margin: 6px 0 12px; font-size: 2.6rem; }
.entry-section__intro p { color: var(--muted); font-size: .83rem; }
.reset-button { margin-top: 12px; border: 0; border-bottom: 1px solid var(--rust); padding: 4px 0; color: var(--rust-ink); background: transparent; font-size: .72rem; font-weight: 700; cursor: pointer; }
.entry-form { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 14px; }
.entry-form label { display: grid; align-content: start; gap: 5px; color: var(--muted); font-size: .7rem; font-weight: 700; }
.entry-form__note { grid-column: 1 / -1; }
.entry-form button { grid-column: 1 / -1; justify-self: start; min-height: 44px; border: 0; padding: 10px 18px; color: var(--paper-light); background: var(--forest); font-weight: 700; cursor: pointer; }
.entry-form button:hover { background: var(--forest-dark); }
.form-status { grid-column: 2; margin: -16px 0 0; color: var(--success); font-size: .78rem; font-weight: 700; }

.note-status { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 27px; align-items: start; padding: 38px 0 44px; border-bottom: 1px solid var(--rule-strong); }
.note-status__index { padding-top: 8px; color: var(--rust-ink); font-family: var(--font-editorial); font-size: 1.4rem; }
.note-status h2 { max-width: 21ch; font-size: clamp(2rem, 5vw, 3.8rem); }
.note-status p { max-width: 46rem; color: var(--muted); }
.article-list { margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--rule); }
.article-list li { border-bottom: 1px solid var(--rule); }
.article-list a { display: grid; grid-template-columns: 52px minmax(0, 1fr) auto; gap: 22px; align-items: center; padding: 22px 8px; text-decoration: none; }
.article-list a:hover { background: var(--paper-light); }
.article-list__index { color: var(--rust-ink); font-family: var(--font-editorial); font-size: 1.25rem; }
.article-list__body { display: grid; gap: 4px; min-width: 0; }
.article-list time, .article-list small { color: var(--muted); font-size: .68rem; font-weight: 600; letter-spacing: .04em; }
.article-list strong { overflow-wrap: anywhere; font-size: clamp(1rem, 2.4vw, 1.35rem); line-height: 1.35; }
.article-list__arrow { color: var(--rust-ink); font-size: 1.35rem; }
.source-note { display: flex; gap: 25px; margin-top: 36px; padding: 18px 0; border-top: 3px solid var(--ink); border-bottom: 1px solid var(--ink); font-size: .74rem; }
.source-note strong { flex: 0 0 auto; color: var(--rust-ink); }
.source-note p { margin: 0; color: var(--muted); }

.update-workspace {
  max-width: 1120px;
  margin: 0 auto;
  padding: 0 24px 54px;
}

body[data-page="update-log"] .workspace { width: 100%; padding-block: 0; }

.update-page-title {
  margin: 26px 0 8px;
  padding-left: 10px;
  border-left: 5px solid var(--rust);
  color: var(--forest);
  font-size: 24px;
  line-height: 1.45;
}

.updates { display: grid; gap: 24px; }
.update-day { border-top: 2px solid var(--forest); }

.update-day > h2 {
  margin: 0;
  padding: 10px;
  color: var(--forest);
  background: rgba(33, 76, 67, .07);
  font-size: 18px;
}

.update-entry {
  display: grid;
  grid-template-columns: 90px minmax(0, 1fr);
  gap: 24px;
  padding: 16px 10px;
  border-bottom: 1px solid var(--rule);
  background: rgba(251, 248, 240, .45);
}

.update-entry time {
  color: var(--rust-ink);
  font-size: 13px;
  font-variant-numeric: tabular-nums;
  font-weight: 700;
  white-space: nowrap;
}

.update-entry h3 {
  margin: 0;
  color: var(--forest);
  font-size: 17px;
  line-height: 1.45;
}

@media (max-width: 900px) {
  .score-hero, .scorebook-overview, .source-proof, .entry-section { grid-template-columns: 1fr; }
  .stat-line { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .stat-line div:nth-child(3) { border-right: 0; }
  .stat-line div:nth-child(-n + 3) { border-bottom: 1px solid var(--rule); }
  .player-workspace { grid-template-columns: 220px minmax(0, 1fr); gap: 24px; }
  .lineup-rule { grid-template-columns: auto 1fr; }
  .lineup-rule ol { grid-column: 2; }
  .form-status { grid-column: 1; }
}

@media (max-width: 760px) {
  .masthead { position: static; }
  .masthead__inner, .workspace { width: min(100% - 28px, 1180px); }
  body[data-page="leaderboards"] .workspace { width: 100%; padding: 14px 16px 30px; }
  .masthead__inner { min-height: 65px; }
  .brand__mark { width: 43px; height: 43px; }
  .brand strong { max-width: 15ch; font-family: var(--font-ui); font-size: 1.1rem; font-weight: 700; }
  .masthead__navinner { width: 100%; min-height: 29px; padding: 0 16px; }
  .tabs { min-height: 29px; }
  .tabs [data-tab] { font-size: 9px; }
  .game-strip { justify-content: space-between; gap: 7px; padding-inline: 14px; font-size: .61rem; }
  .workspace { padding-block: 28px 56px; }
  body[data-page="update-log"] .workspace { width: 100%; padding: 0; }
  .update-workspace { padding: 0 15px 48px; }
  .update-page-title { font-size: 20px; }
  .update-entry { grid-template-columns: 1fr; gap: 7px; padding: 15px 8px; }
  .update-entry h3 { font-size: 16px; }
  .leaderboard-intro { display: block; }
  .leaderboard-category-tabs span { min-width: 0; flex: 1; }
  .leaderboard-results__heading { align-items: flex-start; flex-direction: column; gap: 5px; }
  .leaderboard-table-wrap {
    max-height: none;
    overflow-x: auto;
    overflow-y: hidden;
    overscroll-behavior-x: contain;
    -webkit-overflow-scrolling: touch;
  }
  .leaderboard-table { width: 900px; min-width: 900px; }
  .leaderboard-table thead th,
  .leaderboard-table tfoot th,
  .leaderboard-table tfoot td { position: static; }
  .leaderboard-table__rank { display: none; }
  .leaderboard-table__player { width: 96px; min-width: 96px; max-width: 96px; }
  .leaderboard-table thead .leaderboard-table__player,
  .leaderboard-table tbody .leaderboard-table__player {
    position: sticky;
    left: 0;
    z-index: 2;
    background: var(--paper);
    box-shadow: 1px 0 var(--rule);
  }
  .leaderboard-table thead .leaderboard-table__player { z-index: 3; }
  .leaderboard-table tfoot .leaderboard-table__player { left: auto; box-shadow: none; }
  .leaderboard-table th,
  .leaderboard-table td { padding-inline: 5px; }
  .page-intro { grid-template-columns: 1fr; gap: 16px; padding-bottom: 20px; }
  .page-intro h1 { font-family: var(--font-ui); font-size: 2.55rem; font-weight: 700; }
  .page-intro__summary { gap: 8px; }
  .score-hero { gap: 24px; padding: 30px 0; }
  .section-title { display: grid; gap: 12px; align-items: start; }
  .section-title h2 { font-family: var(--font-ui); font-size: 1.7rem; font-weight: 700; }
  .section-title p { text-align: left; }
  .stat-line { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .stat-line div, .stat-line div:nth-child(3) { border-right: 1px solid var(--rule); border-bottom: 1px solid var(--rule); }
  .stat-line div:nth-child(even) { border-right: 0; }
  .stat-line div:nth-last-child(-n + 2) { border-bottom: 0; }
  .method-note { grid-template-columns: auto 1fr; }
  .method-note .text-action { grid-column: 2; justify-self: start; }
  .player-workspace { grid-template-columns: 1fr; padding-top: 28px; }
  .player-workspace > * { min-width: 0; }
  .player-sheet { max-width: calc(100vw - 22px); overflow: hidden; }
  .player-sheet .table-wrap { overflow-x: auto; }
  .player-index ol { display: flex; overflow-x: auto; scroll-snap-type: x proximity; }
  .player-index li { min-width: 156px; flex: 0 0 43%; border-right: 1px solid var(--rule); scroll-snap-align: start; }
  .player-index button { grid-template-columns: 38px minmax(0, 1fr); min-height: 64px; }
  .player-index button small { grid-column: 2; }
  .player-sheet__header { min-height: 118px; padding: 20px; }
  .player-sheet h2 { font-family: var(--font-ui); font-size: 2.2rem; font-weight: 700; }
  .player-sheet__avg strong { font-size: 2.25rem; }
  .player-stat-line { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .player-stat-line div:nth-child(4) { border-right: 0; }
  .player-stat-line div:nth-child(-n + 4) { border-bottom: 1px solid var(--rule); }
  .scorebook-overview { gap: 20px; padding: 28px 0; }
  .lineup-rule { grid-template-columns: 1fr; padding: 24px 20px; }
  .lineup-rule__mark { width: 46px; height: 46px; }
  .lineup-rule ol { grid-column: 1; flex-wrap: wrap; }
  .source-proof { gap: 30px; padding: 40px 0; }
  .source-proof h2, .note-status h2 { font-family: var(--font-ui); font-size: 2rem; font-weight: 700; }
  .entry-section { gap: 22px; margin-top: 40px; padding: 22px 18px; }
  .entry-form { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .entry-form__note, .entry-form button { grid-column: 1 / -1; }
  .article-list a { grid-template-columns: 38px minmax(0, 1fr) auto; gap: 11px; padding-block: 18px; }
  .source-note { display: grid; }
}

@media (max-width: 410px) {
  .masthead__inner, .workspace { width: min(100% - 22px, 1180px); }
  .brand { gap: 8px; }
  .brand__mark { width: 38px; height: 38px; }
  .brand strong { max-width: 13ch; font-size: 1rem; }
  .tabs [data-tab] { font-size: 9px; }
  .game-strip { padding-inline: 11px; }
  .score-hero__meta h2 { gap: 7px; font-size: 1.55rem; }
  .player-index li { flex-basis: 54%; }
  .player-sheet__header { gap: 12px; }
  .player-sheet h2 { font-size: 1.75rem; }
  .player-sheet__avg strong { font-size: 1.85rem; }
}

@media (forced-colors: active) {
  .tabs [data-tab][aria-selected="true"] { border-bottom-width: 6px; }
  .status-flag::before { border: 1px solid currentColor; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
}
