/* STYLE SETTINGS — edit this file, save, then refresh localhost:4173.
 * Defaults reproduce the current design. No server restart is needed for CSS.
 * Use px for sizes, plain numbers for weights / line heights / opacity.
 * Start with scores-team-width, scores-quarter-width, scores-row-height,
 * scores-total-font-size, field-max-width, and the score-field colors.
 * Larger team widths keep full names longer but leave less room for the field.
 * Row height must fit both teams and the three completed-game stat lines.
 * field-max-width scales the whole field proportionally (including height).
 * field-logo-scale: 1 = current size; .85 = 15% smaller. Keep near 1 so the
 * logo stays clear of the scrimmage line. Yard lines and shadow share a color.
 * Desktop scores start at 800px, projections at 1000px, wide gaps at 1200px.
 * Breakpoints and SVG perspective are structural, not adjustable CSS variables.
 * Mobile rules keep their special narrow-screen adaptations.
 */
:root {

  /* PAGE, NAVIGATION & GENERAL CONTROLS */
  --font-family: -apple-system,BlinkMacSystemFont,system-ui,"Helvetica Neue",Arial,sans-serif;
  --page-width: 1120px;
  /* Horizontal page padding only — left and right. */
  --page-gutter: 16px;
  --page-gutter-mobile: 20px;
  /* Vertical page padding only — top and bottom, independent of gutters.
   * Device safe-area insets remain the minimum padding on each edge. */
  --page-padding-vertical: 0px;
  --page-padding-vertical-mobile: 0px;
  /* Shared shell and hierarchy (mobile values are grouped in style.css). */
  --shell-header-padding: 3px;
  /* Header switches to one row at 520px of available content width (style.css). */
  --header-column-gap: 12px;
  --header-row-height: 50px;
  --primary-indicator-color: var(--selection-line);
  --primary-indicator-width: 1px;
  --primary-row-height: 44px;
  --header-divider-width: 1px;
  --primary-nav-content-gap: 10px;
  --primary-nav-padding-wide: 12px;
  --primary-nav-padding-narrow: 2px;
  --primary-nav-padding-mobile: 6px;
  --header-column-gap-mobile: 4px;
  --secondary-nav-content-gap: 20px;
  --secondary-nav-background: transparent;
  --secondary-nav-top-gap: 10px;
  --secondary-filter-gap: 8px;
  --page-title-weight: 700;
  --section-title-weight: 600;
  --metadata-font-size: 14px;
  --poll-publication-font-size: 12px;
  --metadata-font-weight: 400;
  --table-heading-weight: 550;
  --secondary-nav-height: 35px;
  --secondary-nav-link-gap: 6px;
  --secondary-nav-link-gap-mobile: 2px;
  --section-heading-height: 44px;
  --section-heading-metadata-gap: 8px;
  --section-heading-content-gap: 16px;
  --ratings-source-gap: 12px;
  --ratings-source-label-width: 124px;
  --ratings-source-font-size: 11px;
  --team-history-opponent-logo-size: 24px;
  --team-history-opponent-logo-gap: 8px;
  --game-glow-height: 720px;
  --game-glow-opacity: .34;
  /* Game tables: original row shading and separate header/row dividers. */
  /* Shared data-table defaults. Existing per-table tokens remain override points. */
  --table-stripe-light: #fafafa;
  --table-stripe-dark: #131519;
  --table-row-background-dark: transparent;
  --table-row-hover-dark: rgb(255 255 255 / 4%);
  --table-border-light: #e5e7eb;
  /* Dark borders use white alpha so page glows remain visible beneath them. */
  --border-opacity-dark: 26%;
  --border-subtle-opacity-dark: 18%;
  --table-row-border-opacity-dark: 16%;
  --filter-border-opacity-dark: 26%;
  --pill-border-opacity-dark: 22%;
  --table-border-dark: rgb(255 255 255 / var(--border-opacity-dark));
  --table-row-border-light: #edf0f2;
  --table-row-border-dark: rgb(255 255 255 / var(--table-row-border-opacity-dark));
  /* Global dark-table dividers match; only the game linescore header is brighter. */
  --table-header-divider-dark: var(--table-border-dark);
  --table-body-divider-dark: var(--table-row-border-dark);
  --game-table-stripe-light: var(--table-stripe-light);
  --game-table-stripe-dark: var(--table-stripe-dark);
  --game-table-border-light: var(--table-border-light);
  --game-table-border-dark: var(--table-border-dark);
  --game-table-row-border-light: var(--table-row-border-light);
  --game-table-row-border-dark: var(--table-row-border-dark);
  --game-table-border-width: 1px;
  --game-browser-tint-strength: .15;
  --game-glow-light-opacity: 0;
  --game-glow-width: 70%;
  --game-glow-center-y: 180px;
  --dark-page-background: #000000;
  --team-page-title-size: 28px;
  --team-page-title-line-height: 1.08;
  --team-subnav-years-gap: 12px;
  --team-year-link-width: 40px;
  --team-year-row-height: 26px;
  --team-years-content-gap: 18px;
  --team-year-inactive-color: var(--text-muted);
  --team-year-active-color: var(--text);
  --team-year-caret-width: 32px;
  --team-year-caret-size: 8px;
  --team-year-caret-stroke: 1.5px;
  --ratings-category-font-size: 12px;
  --ratings-category-inactive-color: var(--text-muted);
  --ratings-heading-category-gap: 7px;
  --section-heading-category-gap: 2px;
  --statistics-heading-category-gap: 7px;
  --poll-heading-date-gap: 2px;
  --secondary-nav-alignment: center;
  --shell-header-height: 50px;
  --primary-navigation-alignment: flex-end;
  --primary-navigation-gap: 3px;
  --primary-navigation-gap-mobile: 3px;
  --primary-navigation-gap-narrow: 0px;
  --navigation-mobile-alignment: center;
  /* Navigation typography. Casing: uppercase | capitalize | lowercase | none.
   * Labels use natural title case, so none restores their original casing.
   * Font style: normal | italic. Decoration: none | underline | line-through.
   * Letter spacing accepts em or px (for example .04em or 1px).
   * Primary/subnav overrides apply on desktop and mobile. */
  --navigation-font-style: normal;
  --navigation-text-decoration: none;
  --navigation-text-transform: none;
  --navigation-letter-spacing: .025em;
  /* Navigation type sizes: primary, game/team tabs, Predict, years and paging. */
  --button-font-size: 11px;
  /* Main navigation size for desktop AND mobile. */
  --primary-nav-font-size: 11px;
  --primary-nav-font-style: var(--navigation-font-style);
  --primary-nav-text-decoration: var(--navigation-text-decoration);
  --primary-nav-text-transform: uppercase;
  --primary-nav-letter-spacing: 0em;
  /* Mobile: inherit above, or replace with a px value. */
  --primary-nav-font-size-mobile: 12px;
  --primary-nav-font-size-narrow: 10px;
  --game-nav-font-size: 11px;
  --navigation-toggle-font-size: 10px;
  --pagination-font-size: 10px;
  --predict-nav-font-size: 11px;
  --predict-nav-font-size-mobile: 10px;
  --year-navigation-font-size: 10px;
  --backtest-navigation-font-size-mobile: 12px;
  --team-nav-font-size: 11px;
  --statistics-ranking-link-font-size: 9px;
  --statistics-season-alignment: space-between;
  --statistics-season-margin: 0px 0 10px;
  --statistics-subnav-alignment: center;
  --statistics-subnav-padding-vertical: 0px;
  /* Pixels from the bottom of the Statistics subnav to the title/year row. */
  --statistics-subnav-content-gap: 25px;
  --statistics-pagination-font-size: 11px;
  /* Primary buttons: horizontal / vertical padding and responsive overrides. */
  --primary-navigation-padding: 11px;
  --primary-navigation-padding-vertical: 4px;
  --primary-nav-padding-x-mobile: 11px;
  --primary-nav-padding-x-compact: 10px; /* Below 400px. */
  --primary-nav-font-size-compact: var(--primary-nav-font-size-mobile);
  --rankings-subnav-padding-horizontal: 6px;
  --rankings-subnav-gap: 2px;
  --predict-subnav-alignment: center;
  --predict-subnav-content-gap: var(--statistics-subnav-content-gap);
  --predict-filter-row-margin: 8px 0 14px;
  --primary-navigation-touch-height: 44px;
  /* Primary pills and text-only subsection links. */
  --navigation-radius: 999px;
  --navigation-tab-top-inset: 8px;
  --subnav-gap: 3px;
  --subnav-padding-vertical: 0px;
  --subnav-touch-height: 35px;
  --subnav-padding-horizontal: 6px;
  /* Button padding (distinct from the spacing around the navigation row). */
  --subnav-button-padding-vertical: 0px;
  --subnav-button-padding: var(--subnav-button-padding-vertical) var(--subnav-padding-horizontal);
  --statistics-subnav-padding-horizontal: 8px;
  /*--subnav-active-border-color: var(--border);*/
  --subnav-active-border-color: #ddd;
  --subnav-active-border-width: 1px;
  --subnav-active-border-radius: 999px;
  --subnav-icon-size: 15px;
  --subnav-icon-gap: 5px;
  --subnav-icon-stroke: 1;
  --subnav-font-size: 13px;
  --subnav-font-weight: 400;
  --subnav-font-style: var(--navigation-font-style);
  --subnav-text-decoration: var(--navigation-text-decoration);
  --subnav-text-transform: none;
  --subnav-letter-spacing: var(--navigation-letter-spacing);
  --subnav-text-color: #85858B;
  --button-text-color: #000;
  --subnav-active-weight: var(--subnav-font-weight);
  /* Navigation button states. Active = selected page; pressed = pointer held down.
   * Hover applies to mouse/trackpad only. Focus is keyboard-visible.
   * Primary backgrounds stay inside the compact pill. */
  --primary-nav-default-color: var(--button-text-color);
  --primary-nav-default-background: transparent;
  --primary-nav-default-weight: 600;
  --primary-nav-default-decoration: var(--primary-nav-text-decoration);
  --primary-nav-hover-color: var(--button-text-color);
  --primary-nav-hover-background: transparent;
  --primary-nav-hover-weight: 600;
  --primary-nav-hover-decoration: var(--primary-nav-text-decoration);
  --primary-nav-active-color: var(--button-text-color);
  --primary-nav-active-background: var(--surface);
  --primary-nav-active-weight: 600;
  --primary-nav-active-decoration: var(--primary-nav-text-decoration);
  --primary-nav-pressed-color: var(--button-text-color);
  --primary-nav-pressed-background: var(--surface);
  --primary-nav-pressed-weight: 600;
  --primary-nav-pressed-decoration: var(--primary-nav-text-decoration);
  --primary-nav-disabled-color: var(--button-text-color);
  --primary-nav-disabled-background: transparent;
  --primary-nav-disabled-weight: 600;
  --primary-nav-disabled-decoration: var(--primary-nav-text-decoration);
  --primary-nav-focus-color: var(--focus);
  --primary-nav-focus-width: 2px;
  --primary-nav-focus-offset: -3px;
  --primary-nav-disabled-opacity: .4;
  --subnav-default-color: var(--subnav-text-color);
  --subnav-default-background: transparent;
  --subnav-default-weight: var(--subnav-font-weight);
  --subnav-default-decoration: var(--subnav-text-decoration);
  --subnav-hover-color: var(--subnav-text-color);
  --subnav-hover-background: transparent;
  --subnav-hover-weight: var(--subnav-font-weight);
  --subnav-hover-decoration: var(--subnav-text-decoration);
  --subnav-active-color: var(--button-text-color);
  --subnav-active-background: transparent;
  --subnav-active-decoration: var(--subnav-text-decoration);
  --subnav-pressed-color: var(--button-text-color);
  --subnav-pressed-background: transparent;
  --subnav-pressed-weight: var(--subnav-font-weight);
  --subnav-pressed-decoration: var(--subnav-text-decoration);
  --subnav-disabled-color: var(--subnav-text-color);
  --subnav-disabled-background: transparent;
  --subnav-disabled-weight: var(--subnav-font-weight);
  --subnav-disabled-decoration: var(--subnav-text-decoration);
  --subnav-focus-color: var(--focus);
  --subnav-focus-width: 2px;
  --subnav-focus-offset: -3px;
  --subnav-disabled-opacity: .4;
  --app-control-size: 44px;
  --app-control-icon-size: 18px;
  --app-control-icon-stroke: 1.7;
  --page-title-size-mobile: 30px;
  --section-title-size-mobile: 20px;
  --subsection-title-size-mobile: 12px;
  --navigation-content-gap: 14px;
  /* SHARED FILTER BUTTONS — Polls, Statistics, scores, conferences and ratings. */
  --filter-border-color: var(--border);
  --filter-border-width: 1px; /* Set to 0px to remove all trigger borders. */
  --filter-padding-vertical: 7px;
  --filter-line-height: 12px;
  --filter-focus-color: var(--focus);
  --filter-focus-width: 2px;
  --filter-focus-offset: 2px;
  --filter-touch-height: 44px;
  --filter-height: 28px;
  --filter-font-size: 11px;
  --filter-font-weight: 600;
  --filter-letter-spacing: .025em;
  --filter-padding-left: 10px;
  --filter-padding-right: calc(var(--filter-icon-right) + var(--filter-icon-size) + var(--filter-caret-gap));
  --filter-caret-gap: 7px;
  --filter-radius: 999px;
  --filter-background: transparent;
  --filter-text-color: var(--button-text-color);
  --filter-year-width: 64px;
  --filter-icon-size: 5px;
  --filter-native-caret-width: 7px;
  --filter-native-caret-height: 5px;
  --filter-icon-stroke: 0.5px;
  --filter-icon-right: 10px;
  /* Player portraits and complete, horizontally scrollable statistics tables. */
  /* Grouped team rosters. */
  --selection-group-heading-size: 10px;
  --selection-group-heading-padding: 8px 16px 6px;
  --selection-group-gap: 14px;
  --selection-group-menu-padding-top: 12px;
  --selection-group-row-height: 32px;
  --selection-group-row-padding: 5px 16px;
  --poll-column-min-width: 480px;
  --poll-column-gap: clamp(40px, 4vw, 88px);
  --leaders-column-gap: clamp(40px, 4vw, 88px);
  --projection-outcome-weight: 700;
  --projection-correct-color: #008a4e;
  --projection-wrong-color: #d71932;
  --leaders-row-gap: 40px;
  --roster-control-gap: 10px;
  --roster-search-height: 36px;
  --roster-search-icon-size: 13px;
  --roster-search-icon-gap: 8px;
  --team-subnav-gap: 10px;
  --team-subnav-border-width: 1px;
  --team-subnav-border-color: var(--surface-active);
  --active-pill-opacity-dark: 22%;
  --active-pill-background-dark: rgb(255 255 255 / var(--active-pill-opacity-dark));
  --team-subnav-padding-y: 5px;
  --team-subnav-min-height: 30px;
  --roster-unit-gap: 14px;
  --roster-unit-font-size: 11px;
  --roster-unit-heading-size: 12px;
  --roster-group-heading-size: 12px;
  --roster-group-gap: 20px;
  --roster-table-width: 820px;
  --roster-row-height: 36px;
  --roster-jersey-width: 40px;
  --roster-player-width: 190px;
  --roster-short-width: 50px;
  --roster-measure-width: 70px;
  --roster-hometown-width: 220px;
  --roster-id-width: 130px;
  --statistics-photo-size: 24px;
  --statistics-photo-gap: 6px;
  --statistics-photo-radius: 3px;
  --statistics-table-cell-padding: 8px 10px;
  --season-year-label-gap: 5px;
  --season-year-label-size: .85em;
  --statistics-player-rank-width: 20px;
  --statistics-player-team-width: 24px;
  --statistics-player-identity-padding: 3px;
  --player-sticky-category-padding: 8px 0;
  --table-sticky-header-top: 0px;
  --table-sticky-header-background: var(--page);
  --table-sticky-header-z-index: 25;
  --statistics-sticky-team-background: var(--page);
  --statistics-sticky-identity-background: var(--statistics-sticky-team-background);
  --statistics-category-font-size: 10px;
  --statistics-category-gap: 12px;
  /* Fixed position column in the currently sorted/filtered ratings list. */
  --ratings-row-number-width: 28px;
  /* TEAM SEASON RESULTS TABLE
   * Column order: team | score | VS/@ | score | opponent | result | date.
   * Widths INCLUDE cell padding. Keep score width large enough for the
   * number plus team-score-gap + score-badge-gap (currently 25px of padding).
   * "auto" columns share leftover table space; this can create extra gaps.
   * Mobile width settings apply below 800px. Save and refresh; no build.
   */
  --season-team-width: 75px;
  --season-team-width-mobile: 64px;
  --season-opponent-width: auto;
  --season-opponent-width-mobile: auto;
  --season-date-width: 65px;
  --season-date-width-mobile: 60px;
  --season-result-width: 64px;
  --season-result-width-mobile: 44px;
  /* Text alignment: left / center / right. Team alignment also moves logos. */
  --season-team-align: left;
  --season-opponent-align: left;
  --season-left-score-align: center;
  --season-right-score-align: center;
  --season-badge-align: center;
  --season-date-align: right;
  --season-result-align: right;
  /* Spacing and typography. Score spacing is mirrored on the two sides. */
  --season-date-padding-x: 4px;
  --season-result-padding-x: 0px;
  --season-score-weight: 700;
  --season-team-font-size-mobile: 11px;
  --season-meta-font-size-mobile: 9px;
  --season-divider-color: var(--border-subtle);
  /* Head-to-head keeps Year and shares the season score/result styles. */
  --history-team-width: 110px;
  --history-team-width-mobile: 54px;
  --history-score-width: 30px;
  --history-matchup-width: 30px;
  --season-score-size: 15px;
  --season-score-width: 48px;
  /* Symmetric space around the linked VS / @ badge between the scores. */
  --season-matchup-width: 23px;
  --season-team-score-gap: 5px;
  --season-score-badge-gap: 20px;
  --season-row-height: 36px;
  --season-loss-color: #e04452;
  --season-live-color: #2588df;
  /* Shared anchored selectors and mobile selection sheets. */
  --selection-radius: 8px;
  --selection-opacity: .95;
  --selection-shadow: 0 8px 32px rgb(0 0 0 / .025), 0 18px 64px rgb(0 0 0 / .06);
  --selection-option-height: 40px;
  --selection-font-size: 13px;
  /* Simple menus: plain divided rows, with only a checkmark for selection. */
  --selection-simple-radius: 10px;
  --selection-simple-padding-horizontal: 0px;
  --selection-simple-row-height: 48px;
  --selection-simple-font-size: 14px;
  /* Space between AP and Coaches tables on wide screens. */
  --poll-columns-gap: 40px;
  /* Games week strip: compact number spacing and shared label typography. */
  --scores-first-game-border-width: 1px;
  --scores-first-game-border-color: var(--border-subtle);
  --week-content-gap: 0px;
  --week-link-width: 20px;
  /* Fixed week-link width on larger screens; mobile distributes spare space. */
  --week-link-width-desktop: 32px;
  --week-link-padding: 2px;
  --week-font-size: 10px;
  /* Games / Conferences / Rankings links beside the mobile league logos. */
  --week-arrow-offset: 0px;
  --page-title-size: 30px;
  --nfl-division-title-size: 16px;
  --section-title-size: 20px;
  --subsection-title-size: 13px;
  --live-detail-font-size: 9px;
  /* Possession marker outside the team column; never changes row layout. */
  --home-possession-triangle-width: 10px;
  --home-possession-triangle-height: 6px;
  --home-row-divider-color: #dce0e5;
  --home-possession-triangle-color: #9aa2ad;
  --home-record-font-size: 7.5px;
  --home-record-gap: 2px;
  --home-possession-score-gap: 4px;
  --home-possession-size: 8px;
  --home-possession-edge: 6px;
  --stat-neutral-color: var(--border-subtle);
  --card-radius: 6px;
  --header-padding: 15px 0;
  --nav-gap: 12px;
  --nav-bottom-space: 22px;
  --button-radius: 999px;
  --button-padding: 9px 14px;

  /* GAME DETAIL — condensed system-font fallback, no external font download. */
  --detail-score-font: "Avenir Next Condensed", "Arial Narrow", var(--font-family);
  --detail-score-size: 96px;
  --detail-mobile-score-size: 80px;
  --detail-field-max-width: 680px;
  /* Field surface depth multiplier; labels/logos keep their natural proportions. */
  --detail-field-depth: 1.9;
  /* Possessing team's logo on the larger game-detail field only. */
  --detail-field-logo-scale: 1.4;
  /* Overall record beneath each game-detail team name. */
  --detail-team-record-size: 10px;
  /* Mobile player box scores: compact columns without a forced table width. */
  --box-score-font-size-mobile: 11px;
  --box-score-padding-x-mobile: 3px;
  /* Desktop leaders grow with stretched rows; mobile retains existing sizing. */
  --detail-leader-photo-max: 64px;
  --detail-leader-value-max: 32px;
  --detail-leader-name-max: 14px;
  --detail-leader-support-max: 11px;
  --detail-field-spacing: 32px 0 28px;
  /* Center metadata beneath the game clock. */
  --detail-meta-font-size: 10px;
  --detail-meta-line-height: 1.5;
  /* Quarter table: maximum width, side inset, cell height and text size. */
  /* At 800px and wider, quarters move below the clock between the scores. */
  --detail-center-width: 280px;
  --detail-center-quarter-gap: 16px;
  --detail-quarter-max-width: 460px;
  --detail-quarter-side-padding: 24px;
  --detail-quarter-cell-height: 28px;
  --detail-quarter-font-size: 9px;
  /* Space from quarters to buttons, buttons to content, and plays to stats. */
  --detail-tabs-space-above: 48px;
  --detail-tabs-space-below: 28px;
  --detail-recent-plays-space-below: 28px;
  /* Team statistics: larger values, row spacing and team-color proportion bars. */
  --detail-stat-font-size: 14px;
  --detail-stat-label-size: 12px;
  --detail-stat-row-padding: 8px 0;
  --detail-stat-bar-height: 4px;
  --detail-stat-bar-gap: 4px;
  --detail-stat-bar-radius: 3px;
  --detail-stat-bar-outline: none;
  --detail-stat-neutral-team-dark: #808894;

  /* MOBILE HOME SCORES — outer teams, inner scores, centered status.
     At widths >=1000px AND heights >=600px, the original desktop columns
     return. Short landscape phone screens retain the mobile field layout.
     Restore the previous layout with MIRRORED_HOME_SCORES=false in
     scoreboard-desktop.js. These settings only affect the experiment. */
  /* Portrait-phone side inset, plus safe-area protection. */
  --home-mobile-page-gutter: 8px;
  /* Portrait: tighter team identity beside the score; clock stays centered. */
  --home-portrait-team-font-size: 10px;
  --home-portrait-logo-name-gap: 3px;
  /* Narrower outer team tracks leave more width for the desktop field. */
  --home-field-team-width: 110px;
  /* Completed-game quarter summary in the center column. */
  /* Wide live-game center: single-line status and enlarged field. */
  --home-live-field-max-width: 560px;
  --home-live-status-font-size: 10px;
  --home-live-status-gap: 7px;
  --home-quarter-font-size: 10px;
  --home-quarter-row-height: 15px;
  --home-quarter-max-width: 210px;
  --home-quarter-team-width: 42px;
  --home-score-optical-offset: 2px; /* Visually center numerals within their line box. */
  --home-score-size: 35px;
  /* Neutral losses, winner green, thin pregame dash, and vertical row inset. */
  --home-losing-score-color: var(--text);
  --home-unplayed-score-weight: 300;
  --home-row-padding: 10px;
  --home-team-logo-size: 20px;
  --home-team-name-size: 11px;
  --home-center-width: 84px;
  /* Equal fixed score tracks keep the center aligned across every game. */
  --home-score-column-width: 40px;
  --home-wide-score-column-width: 60px;
  --home-row-height: 76px;
  --home-column-gap: 5px;
  --home-wide-score-size: 43px;
  --home-wide-team-width: 140px;
  --home-wide-row-height: 102px;
  --home-wide-column-gap: 18px;

  /* MOBILE SCOREBOARD */
  --mobile-status-width: 78px;
  --mobile-score-column-gap: 14px;
  --mobile-team-font-size: 13px;
  --mobile-status-font-size: 11px;
  --mobile-table-font-size: 13px;
  --mobile-row-height: 32px;
  --mobile-logo-size: 15px;

  /* SECTION HEADINGS */
  --section-margin: 24px 0 34px;
  --section-title-margin: 0 0 14px;
  --scores-section-title-size: 14px;

  /* DESKTOP SCORES — columns, spacing, typography */
  --scores-team-width: 160px;
  --scores-quarter-width: 26px;
  --scores-total-width: 30px;
  --scores-inner-gap: 6px;
  --scores-field-min-width: 210px;
  --scores-projected-field-min-width: 220px;
  --scores-status-width: 80px;
  --scores-projection-width: 110px;
  --scores-column-gap: 20px;
  --scores-wide-column-gap: 26px;
  --scores-row-padding: 7px 0;
  --scores-row-height: 76px;
  --scores-team-row-gap: 6px;
  --scores-team-row-height: 24px;
  --scores-quarter-font-size: 11px;
  --scores-team-logo-size: 20px;
  --scores-logo-gap: 7px;
  --scores-team-font-size: 14px;
  --scores-team-line-height: 1.15;
  --scores-team-weight: 550;
  --scores-record-font-size: 8px;
  --scores-total-font-size: 18px;
  --scores-total-weight: 650;
  --scores-total-line-height: 1;

  /* FIELD CAPTION & SUPPORTING SCORE CONTENT */
  --field-caption-font-size: 11px;
  --field-caption-weight: 400;
  --field-caption-line-height: 1.25;
  --scores-stats-row-gap: 4px;
  /* Completed-game leaders: narrower centered block keeps yards near names. */
  --scores-stats-max-width: 230px;
  --scores-stats-font-size: 10px;
  --scores-stats-line-height: 1.1;
  --scores-projection-font-size: 12px;
  --scores-projection-weight: 550;
  --scores-status-font-size: 12px;
  --scores-header-font-size: 9px;
  --scores-quarter-header-font-size: 8px;

  /* FIELD — colors stay the same in light and dark mode */
  --field-max-width: 360px;
  --score-field-surface: #fafafa;
  --score-field-endzone: #dfe2e5;
  /* Gap below the field before yard numbers and team abbreviations. */
  --field-label-offset: 2px;
  --detail-possession-size: 10px;
  --detail-possession-gap: 12px;
  --score-field-line: #cbd0d4;
  --score-field-first-down: #f2c318;
  --score-field-scrimmage: #73777e;
  --field-line-opacity: .6;
  --field-yard-line-width: 1px;
  --field-midfield-line-width: 1.8px;
  --field-first-down-width: 2.5px;
  --field-scrimmage-width: 2px;
  --field-logo-scale: 1;

  /* OTHER TABLES & CARDS */
  --table-cell-padding: 6px 7px;
  --table-font-size: 11px;
  --table-header-font-size: 9px;
  --table-row-height: 32px;
  --detail-cell-padding: 6px;
  --table-line-height: 1.4;
  --ratings-font-size: 10px;
  --roomy-table-cell-padding: 8px;
  --box-table-row-height: 25px;
  --box-table-cell-padding: 3px 5px;
  --box-table-font-size: 10px;
  --card-padding: 14px;

  /* SHARED LIGHT THEME — all pages; field-* here is the game-detail field. */
 --page:#fff;
 --text:#22252a;
 --text-secondary:#555b63;
 --text-muted:#73777e;
 --text-faint:#91959b;
 --surface:#f0f1f3;
 --surface-active:#e9ebee;
 --stripe:#fafafa;
 --border:#e5e7eb;
 --border-subtle:#edf0f2;
 --selection-line:#747b84;
 --sort-idle:#b5bac1;
 --focus:#0063d9;
 --score-text:#fff;
 --win-badge:#009B58;
 --loss-badge:#D71932;
 --win-soft-text:#20603b;
 --win-soft-bg:#e1efe5;
 --loss-soft-text:#963e3e;
 --loss-soft-bg:#f6e5e5;
 --positive:#07843e;
 --negative:#cc242c;
 --warning:#856421;
 --chart-home:#2467a8;
 --chart-away:#ad6333;
 --chart-midline:#bac1c8;
 --field-surface:#f5f6f7;
 --field-line:#d4d7da;
 --field-first-down:#c89a24;
 --select-arrow:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='m1 1 4 4 4-4' fill='none' stroke='%23717880' stroke-width='.5'/%3E%3C/svg%3E");
}

/* Shared dark theme. Edit these separately when using system dark mode. */
@media all {
 :root[data-theme="dark"] {
  --button-text-color: #fff;
  --page:var(--dark-page-background);
  --text:#e6e9ee;
  --text-secondary:#bdc4ce;
  --text-muted:#a0a8b4;
  --text-faint:#959eac;
  --surface:#282e37;
  --surface-active:#353d49;
  --stripe:#1d2229;
  --border:rgb(255 255 255 / var(--border-opacity-dark));
  --border-subtle:rgb(255 255 255 / var(--border-subtle-opacity-dark));
  --selection-line:#bdc4ce;
  --sort-idle:#858f9e;
  --focus:#80b7ff;
  --win-soft-text:#88dfab;
  --win-soft-bg:#1d3a2b;
  --loss-soft-text:#ffacb0;
  --loss-soft-bg:#49282d;
  --positive:#72d99e;
  --negative:#ff969c;
  --warning:#e3c16f;
  --chart-home:#80b7ff;
  --chart-away:#f1ad78;
  --chart-midline:#667180;
  --field-surface:#222933;
  --field-line:#485463;
  --field-first-down:#e9bc4a;
  --select-arrow:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='m1 1 4 4 4-4' fill='none' stroke='%23bdc4ce' stroke-width='.5'/%3E%3C/svg%3E");
 }
}

:root[data-theme="dark"]{
  --projection-correct-color: #42d58c;
  --projection-wrong-color: #ff5268;
}

:root[data-theme="dark"]{--home-row-divider-color:rgb(255 255 255 / 28%);--home-possession-triangle-color:#7b8593}

:root[data-theme="dark"]{
  --filter-border-color: rgb(255 255 255 / var(--filter-border-opacity-dark));
  --team-subnav-border-color: rgb(255 255 255 / var(--pill-border-opacity-dark));
}

/* Dark field uses white alpha, retaining full-strength logos and markers. */
:root[data-theme="dark"]{
  --score-field-surface-opacity: 18%;
  --score-field-endzone-opacity: 12%;
  --score-field-line-opacity: 30%;
  /* Slightly darker than the field strokes. */
  --score-field-shadow-opacity-dark: 22%;
  --score-field-surface: rgb(255 255 255 / var(--score-field-surface-opacity));
  --score-field-endzone: rgb(255 255 255 / var(--score-field-endzone-opacity));
  --score-field-line: rgb(255 255 255 / var(--score-field-line-opacity));
  --score-field-scrimmage: #b8bec7;
}



/* Original light field palette; dark experiments must not change these. */
:root:not([data-theme="dark"]){
  --score-field-surface: #fafafa;
  --score-field-endzone: #dfe2e5;
  --score-field-line: #cbd0d4;
  --score-field-scrimmage: #73777e;
  --field-line-opacity: .6;
  --field-endzone-opacity-light: .6;
}

/* PLAYER PROFILES */
:root {
 --player-team-logo-size: 24px;
 --player-profile-gap: 24px;
 --player-profile-padding: 28px;
 --player-title-size: clamp(30px, 5.3vw, 49px);
 --player-photo-offset-x: 8px;
 --player-photo-scale: 1.04;
 --player-name-team-gap: 12px;
 --player-career-heading-size: 11px;
 --player-rank-info-gap: 6px;
 --player-rank-info-size: 11px;
 --player-rank-info-weight: 300;
 --player-rank-info-stroke: 1.1;
 --player-rank-tooltip-width: 260px;
 --player-rank-tooltip-padding: 18px;
 --player-rank-tooltip-size: 12px;
 --player-career-heading-tracking: .08em;
 --player-photo-width: 36%;
 --player-header-height: 260px;
 --player-card-gap: 12px;
 --player-card-row-gap: 18px;
 --player-career-rank-gap: 8px;
 --player-table-rank-gap: 5px;
 --player-table-rank-size: .7em;
 --player-table-rank-opacity: .6;
 --player-career-rank-size: 9px;
 --player-career-rank-text-opacity: .7;
 --player-career-rank-border-emphasis: 12%;
 --player-career-rank-padding: 3px 7px;
 --player-career-rank-radius: 999px;
 --player-career-rank-reserve: 48px;
 --player-season-heading-top-gap: 40px;
 --player-season-content-gap: 14px;
 --player-card-padding: 0px;
 --player-card-label-gap: 4px;
 --player-card-label-size: 12px;
 --player-heading-gap: 10px;
 --player-bio-gap: 18px;
 --player-bio-line-height: 1.15;
 --player-bio-row-padding: 2px;
 --player-bio-column-gap: 12px;
 --player-bio-dark-color: #fff;
 --player-card-radius: 10px;
 --player-card-value-size: 38px;
 --player-section-gap: 18px;
 --player-season-column-gap: 48px;
 --player-season-desktop-row-gap: 40px;
 --player-table-season-width: 86px;
 --player-table-team-width: 190px;
 --player-eyebrow-size: 11px;
 --player-bio-size: 12px;
 --player-table-cell-padding: 12px;
}

@media(max-width:600px){:root{--player-photo-width:66%;--player-header-height:190px;--player-name-team-gap:4px;--player-bio-size:11px;--player-bio-gap:16px;--player-profile-padding:16px;--player-mobile-text-width:66%;--player-title-size:clamp(25px,6.4vw,34px);--player-card-padding:0px;--player-card-value-size:32px;--player-profile-gap:16px;--player-table-season-width:56px;--player-table-team-width:76px;--player-table-identity-padding:6px;--player-table-cell-padding:10px;}}

@media(min-width:601px) and (max-width:999px){:root{--player-photo-width:48%;--player-header-height:230px;--player-profile-padding:18px;--player-title-size:clamp(30px,4.5vw,40px);--player-profile-gap:16px;}}

/* Season leader rows */
:root {
 --statistics-leader-row-height: 54px;
 --statistics-leader-font-size: 13px;
 --statistics-leader-photo-width: 66px;
 --statistics-leader-rank-width: 18px;
 --statistics-leader-photo-cell-padding: 0px;
 --statistics-leader-photo-gap: 6px;
}
:root {
 --statistics-leader-team-font-size: 11px;
}

/* Mobile NFL standings readability */
:root {
 --nfl-standings-mobile-logo-size: 16px;
 --nfl-standings-mobile-font-size: 12px;
 --nfl-standings-mobile-header-size: 10px;
 --nfl-standings-mobile-cell-padding-x: 1px;
 --nfl-standings-mobile-rank-width: 24px;
 --nfl-standings-mobile-team-padding-right: 9px;
}

/* Game box-score separation */
:root{--box-score-table-gap:36px;--detail-possession-record-gap:10px}

:root{--detail-team-logo-size:48px;--detail-team-logo-size-mobile:32px;--detail-team-identity-gap:3px}

:root{--game-standings-font-size:13px;--game-standings-logo-size:18px;--game-standings-team-gap:6px}

:root{--game-leader-photo-width:76px;--game-leader-row-height:68px;--game-leader-copy-gap:3px;--game-leader-category-gap:10px}

/* Mobile game-leader portraits extend into the page edges. */
:root{--game-leader-mobile-photo-width:112px;--game-leader-mobile-photo-offset:44px;--game-leader-mobile-row-height:94px;--game-leader-mobile-text-top:12px;--game-leader-mobile-name-gap:3px}

:root{--game-leader-mobile-copy-gap:-3px}

:root{--game-leader-divider-offset:1px}

:root{--game-mobile-section-logo-space:36px;--game-mobile-section-heading-height:26px}

:root{--game-mobile-section-gap:50px}

/* Conference identity above game standings. */
:root{--game-conference-title-size:15px;--game-conference-logo-size:28px;--game-conference-title-gap:9px}

:root{--home-possession-logo-gap:11px}

:root{--leaders-desktop-columns:2}

:root{--nfl-standings-wide-columns:2;--nfl-standings-wide-column-gap:48px;--nfl-standings-wide-row-gap:36px}

:root{--player-season-desktop-columns:2}

:root{--player-summary-toggle-gap:20px}

:root{--player-summary-inactive-opacity:0.5}

:root{--player-rank-tooltip-radius:8px;--player-rank-tooltip-background-opacity:90%;--player-rank-info-rise:4px}

:root{--player-rank-tooltip-border-width:0.5px;--player-rank-tooltip-border-color:color-mix(in srgb,var(--page) 88%,white);--player-rank-tooltip-border-opacity:90%}

:root{--player-rank-tooltip-weight:300}

:root{--league-menu-opacity:92%;--league-menu-logo-width:24px;--league-menu-logo-height:32px}

:root{--league-menu-nfl-logo-width:24px;--league-menu-label-gap:10px}

:root{--league-menu-width:130px}

/* Shared dark filter popovers. */
:root{--filter-menu-dark-background:#151515;--filter-menu-dark-opacity:95%;--filter-menu-dark-border:#383838}

:root{--game-desktop-heading-gap:16px;--game-section-logo-height:26px}

:root{--schedule-desktop-font-size:12px;--schedule-desktop-team-width:160px;--schedule-desktop-opponent-width:240px;--schedule-desktop-location-padding:24px}

:root{--schedule-location-font-size:12px;--schedule-location-font-weight:400;--schedule-matchup-center-width:70px}

:root{--schedule-desktop-score-size:18px;--schedule-desktop-result-width:90px;--schedule-desktop-date-width:90px;--schedule-desktop-meta-padding:12px;--schedule-location-line-height:1.4}

:root{--schedule-desktop-team-score-gap:10px}

:root{--schedule-desktop-score-badge-gap:15px;--schedule-team-text-color:var(--text-muted);--schedule-score-placeholder-color:var(--text-muted)}

:root{--team-detail-column-count:2;--team-detail-column-gap:48px;--team-detail-section-gap:36px}

:root{--player-stat-search-width:260px;--player-stat-search-height:36px;--player-stat-controls-gap:16px}

:root{--statistics-empty-padding-y:24px}

:root{--conference-mobile-rank-width:28px;--conference-mobile-header-padding-x:4px}

/* Mobile ratings: larger values with less unused team-column space. */
:root{--ratings-mobile-font-size:12px;--ratings-mobile-team-width:36%;--ratings-mobile-cell-padding-x:4px}

/* Calm, flowing motion with a soft landing. Durations are milliseconds. */
:root{
 --motion-scores:420ms;
 --motion-scores-distance:8px;
 --motion-scores-stagger:35ms;
 --motion-scores-max-delay:450ms;
 --motion-score:500ms;
 --motion-score-highlight:color-mix(in srgb,var(--text) 14%,var(--page));
 --motion-indicator:320ms;
 --motion-control:180ms;
 --motion-menu:340ms;
 --motion-menu-scale:.96;
 --motion-menu-easing:cubic-bezier(.16,1,.3,1);
 --motion-menu-distance:6px;
 --motion-section:420ms;
 --motion-section-distance:12px;
 --motion-section-stagger:55ms;
 --motion-section-max-delay:165ms;
 --motion-page:280ms;
 --motion-load:360ms;
 --motion-accordion:340ms;
 --motion-accordion-close:280ms;
 --motion-standard:cubic-bezier(.4,0,.2,1);
 --motion-enter:cubic-bezier(.22,.61,.36,1);
}

/* Branded loading state: delayed appearance, quiet blue-gray skeleton. */
:root{
 --loading-skeleton-delay:180ms;
 --loading-delay:1000ms;
 --loading-enter:240ms;
 --loading-breathe:1800ms;
 --loading-height:300px;
 --loading-row-height:44px;
 --loading-row-gap:6px;
 --loading-bar-height:10px;
 --loading-radius:6px;
 --loading-logo-width:96px;
 --loading-label-size:12px;
 --loading-label-gap:14px;
 --loading-bar-color:color-mix(in srgb,#8ba6c4 15%,var(--page));
 --loading-logo-color:var(--text);
 --loading-outline-width:4px;
 --loading-outline-color:#cbd0d7;
 --loading-draw-duration:2200ms;
 --loading-fill-duration:8000ms;
 --loading-reveal-duration:650ms;
 --loading-reveal-easing:cubic-bezier(.22,.61,.36,1);
 --loading-label-color:var(--text-muted);
 --loading-pulse-low:.42;
}

/* Preserve the same loading treatment against each theme's page surface. */
:root[data-theme="light"]{
 --loading-logo-color:#000000;
 --loading-bar-color:color-mix(in srgb,#8ba6c4 15%,var(--page));
}
:root[data-theme="dark"]{
 --loading-logo-color:#ffffff;
 --loading-outline-color:#626b78;
 --loading-bar-color:rgba(255,255,255,.08);
}

:root{--footer-updated-font-size:10px;--footer-updated-color:var(--text-muted);--footer-content-gap:16px}

:root{--footer-meta-height:44px;--footer-meta-width:70%;--footer-status-line-height:14px}

:root{--motion-number-duration:240ms;--motion-number-interval:32ms}

/* Overlapping title/category entrances on Season Leaders. */
:root{--motion-leaders:380ms;--motion-leaders-distance:10px;--motion-leaders-stagger:70ms;--motion-leaders-max-delay:350ms}

:root{--leaders-mobile-section-gap:40px}

:root{--motion-pill:240ms;--motion-pill-easing:cubic-bezier(.22,.61,.36,1)}

:root{--team-record-min-height:1.5em}

:root{--predict-title-weeks-gap:6px}

:root{--forecast-list-caption-size:10px}
@media(max-width:799px){:root{--forecast-list-caption-size:9px}}

:root{--forecast-summary-gap:28px;--forecast-summary-value-size:30px;--forecast-summary-label-size:11px;--forecast-summary-mobile-gap:16px}
:root{--forecast-summary-gap:40px;--forecast-summary-mobile-gap:22px}
:root{--predict-week-link-width:28px;--predict-weeks-content-gap:16px}
:root{--conference-menu-gutter:16px;--conference-menu-gap:16px;--conference-menu-label-gap:10px;--conference-menu-logo-size:24px;--conference-menu-team-logo-size:20px}

:root{--conference-menu-bottom-padding:24px;--conference-menu-row-gap:4px;--selection-search-space:12px}

:root{--sticky-navigation-z:40;--sticky-primary-height:0px}

:root{--forecast-summary-top-offset:4px}
:root{--conference-menu-padding:20px}
@media(max-width:599px){:root{--conference-menu-padding:14px}}
:root{--selection-search-icon-size:17px;--selection-search-font-size:14px}

:root{--forecast-team-content-gap:40px}

:root{--forecast-average-background:rgba(0,0,0,.04)}
:root[data-theme="dark"]{--forecast-average-background:rgba(255,255,255,.06)}

:root{--forecast-model-heading-size:13px;--forecast-model-heading-gap:14px}

:root{--forecast-model-body-gap:10px;--forecast-model-notes-opacity:.65;--forecast-model-divider:rgba(0,0,0,.12)}
:root[data-theme="dark"]{--forecast-model-divider:rgba(255,255,255,.12)}

/* Expanded forecast focus, shared across leagues. */
:root{--forecast-active-background:rgba(0,0,0,.025);--forecast-active-duration:var(--motion-accordion);--forecast-active-easing:cubic-bezier(.22,1,.36,1);--forecast-active-team-weight:600}
:root[data-theme="dark"]{--forecast-active-background:rgba(255,255,255,.05)}

:root{--forecast-model-padding-x:24px}
@media(max-width:799px){:root{--forecast-model-padding-x:16px}}

:root{--forecast-table-top-gap:24px}

:root{--forecast-check-size:16px;--forecast-check-scale:1.125;--forecast-check-name-gap:3px;--forecast-check-font-size:11px;--forecast-check-ink:#fff;--forecast-check-high:#27805b;--forecast-check-medium:#97691e;--forecast-check-low:#626873}

:root{--conference-mobile-option-padding:4px;--conference-mobile-team-size:12px}

:root{--forecast-mobile-weeks-stats-gap:24px;--forecast-summary-mobile-value-size:clamp(20px,5.6vw,32px)}

:root{--team-rank-card-gap:24px;--team-rank-card-bottom-gap:32px;--team-rank-card-value-size:32px;--team-rank-card-mobile-gap:20px;--team-rank-card-loading-height:70px}
@media(max-width:799px){:root{--team-rank-card-loading-height:140px}}

:root{--forecast-check-plain-size:13px}

:root{--forecast-mobile-matchup-width:132px;--forecast-mobile-confidence-width:62px;--forecast-mobile-result-width:100px;--forecast-mobile-pick-width:62px;--forecast-mobile-column-gap:10px;--forecast-mobile-row-padding:16px;--forecast-mobile-record-size:9px}

:root{--forecast-mobile-context-width:72px;--forecast-mobile-projection-width:132px;--forecast-mobile-table-width:454px}

:root{--forecast-mobile-info-width:60px;--forecast-mobile-tight-gap:6px;--forecast-mobile-header-padding:10px;--forecast-mobile-secondary-size:8px}

:root{--forecast-mobile-info-line-height:1.65}

:root{--forecast-mobile-chevron-width:28px;--forecast-mobile-primary-size:10px;--forecast-mobile-detail-size:clamp(7px,2.1vw,9px);--forecast-mobile-primary-line-height:16px;--forecast-mobile-secondary-line-height:14px;--forecast-mobile-lines-gap:3px;--forecast-mobile-result-logo-size:15px}

:root{--forecast-mobile-uniform-gap:10px}

:root{--forecast-mobile-matchup-fraction:1.35fr;--forecast-mobile-middle-fraction:.9fr;--forecast-mobile-result-fraction:1.1fr}

:root{--forecast-guide-top-gap:22px;--forecast-guide-line-height:1.45;--forecast-guide-heading-weight:700}

:root{--forecast-mobile-team-inset:4px;--forecast-mobile-expanded-gap:16px;--forecast-mobile-model-cell-padding:6px;--forecast-mobile-model-font-size:10px}

:root{--forecast-mobile-expanded-top-gap:16px;--forecast-mobile-model-title-gap:20px}

/* Forecast spacing controls: outer rows, expanded details, and model table. */
:root{
 --forecast-model-first-column-inset:0px;
 --forecast-model-bottom-padding:12px;
 --forecast-model-notes-margin:12px;
 --forecast-summary-label-gap:6px;
 --forecast-mobile-team-stack-gap:12px;
 --forecast-mobile-team-label-gap:4px;
 --forecast-mobile-projection-logo-gap:4px;
 --forecast-mobile-sort-header-padding:4px;
 --forecast-mobile-header-line-height:1.4;
 --forecast-mobile-expansion-padding-top:13px;
}

:root{--forecast-guide-body-size:10px;--forecast-guide-heading-color:color-mix(in srgb,var(--text-muted) 75%,var(--text) 25%)}

:root{--forecast-desktop-chevron-width:28px;--forecast-desktop-right-padding:12px}

:root{--snapshot-button-background:#000;--snapshot-button-color:#fff;--snapshot-button-disabled-opacity:.5;--snapshot-schedule-margin:18px 0 0}

:root[data-theme="dark"]{--snapshot-button-background:#fff;--snapshot-button-color:#000}

/* Stronger forecast verdict red without changing other negative values. */
:root{--forecast-wrong-color:#c91c2b}
:root[data-theme="dark"]{--forecast-wrong-color:#ff5264}

:root{--backtest-view-gap:18px;--backtest-view-font-size:12px;--snapshot-action-margin:10px}

:root{--snapshot-action-height:36px}

:root{--snapshot-action-background:#fff;--snapshot-action-color:#000;--snapshot-action-text-transform:uppercase}

:root{--snapshot-mobile-option-font-size:12px;--snapshot-mobile-option-gap:8px;--snapshot-mobile-option-padding:12px}

:root{--predict-comparison-title-gap:6px}

:root{--record-pill-padding:6px 14px;--record-pill-gap:10px;--record-disclosure-gap:18px;--record-result-weight:700}

:root{--predict-section-background-opacity:8%;--predict-section-background:rgb(255 255 255 / var(--predict-section-background-opacity))}

:root{--record-table-cell-padding:8px 10px;--record-table-mobile-size:10px;--record-table-matchup-width:100px;--record-table-result-width:70px}

:root{--record-disclaimer-button-gap:10px;--record-section-bottom-padding:16px}

:root{--predict-section-radius:12px}

:root{--shadow-table-cell-padding:7px 8px;--shadow-table-mobile-size:10px}

:root{--historical-evidence-section-gap:24px}

:root{--historical-metric-description-gap:1px;--historical-metric-row-gap:28px}

:root{--historical-chart-section-gap:24px;--historical-chart-bottom-padding:24px;--historical-chart-readout-gap:8px}

:root{--historical-metric-label-gap:2px}

:root{--historical-metric-number-size-increase:2px}

:root{--chart-bucket-label-width:72px;--chart-bucket-percent-width:48px;--chart-bucket-column-gap:10px;--chart-bucket-description-gap:4px;--chart-bucket-description-size:10px}

:root{--historical-benchmark-top-gap:24px;--historical-benchmark-text-gap:6px}

:root{--historical-chart-heading-size:16px}

:root{--historical-section-gap:28px;--historical-table-gap:20px;--historical-table-cell-padding:7px 6px;--historical-mobile-table-size:10px;--historical-subtitle-gap:6px}

:root{--ratings-source-panel-padding:16px;--ratings-source-section-gap:18px;--ratings-source-heading-size:14px;--ratings-source-attributes-gap:12px;--ratings-source-attribute-padding:3px 0;--ratings-source-panel-gap:12px}

:root{--ratings-source-attributes-width:48%;--ratings-source-attributes-float-gap:24px}

:root{--ratings-source-table-cell-padding:3px 4px;--ratings-source-table-divider:var(--border-subtle)}

:root{--poll-source-row-gap:12px;--poll-source-bottom-gap:16px;--poll-published-size:10px}

:root{--poll-table-heading-gap:16px}

:root{--poll-title-links-gap:4px}

:root{--standings-source-row-gap:12px;--standings-conference-grid-gap:32px;--standings-source-links-gap:14px}

:root{--standings-link-logo-size:16px;--standings-link-logo-gap:5px}

:root{--standings-group-control-gap:12px}

:root{--standings-conference-heading-gap:12px}

:root{--source-link-line-height:1px;--source-link-line-offset:0px}

:root{--source-link-inactive-opacity:.75;--source-link-animation-duration:300ms}

:root{--backtest-view-inactive-color:var(--text-muted);--backtest-view-line-duration:300ms}

:root{--score-filter-logo-width:34px;--score-filter-logo-height:18px;--score-filter-logo-gap:8px}

:root{--score-filter-dark-logo-filter:brightness(0) invert(1)}

:root{--score-filter-sec-big12-logo-scale:1.2}

:root{--score-filter-big12-logo-scale:1.4}

:root{--score-filter-big10-logo-scale:.9}

:root{--big-ten-dark-logo-filter:url(#big-ten-dark-logo)}

:root{--ratings-mobile-year-size:8px;--ratings-mobile-year-gap:1px;--ratings-mobile-identity-gap:3px;--ratings-mobile-team-min-width:96px}

:root{--table-selection-duration:700ms;--table-selection-blur:3px}

:root{--conference-menu-check-gap:4px}

:root{--forecast-mobile-model-cell-padding-y:10px}

:root{--motion-forecast-background-close:140ms}

:root{--source-link-font-weight:400}

:root{--motion-team-record:420ms;--motion-team-record-distance:8px}

:root{--history-matchup-logo-size:84px;--history-matchup-team-size:18px;--history-matchup-vs-size:42px;--history-matchup-column-gap:16px;--history-matchup-title-gap:20px;--history-matchup-name-gap:3px;--history-matchup-summary-gap:8px;--history-matchup-content-gap:24px}
@media(min-width:800px){:root{--history-matchup-logo-size:124px;--history-matchup-team-size:24px;--history-matchup-vs-size:60px;--history-matchup-title-gap:28px}}

:root{--history-matchup-top-gap:24px;--history-matchup-vs-filter:brightness(0)}
:root[data-theme="dark"]{--history-matchup-vs-filter:brightness(0) invert(1)}

:root{--history-metric-number-size:30px;--history-metric-label-size:11px;--history-metric-gap:6px;--history-metric-top-gap:14px;--history-metric-label-gap:4px;--history-metric-scope-size:10px}
@media(min-width:800px){:root{--history-metric-number-size:32px;--history-metric-label-size:11px;--history-metric-gap:12px}}

:root{--history-metric-row-gap:24px;--history-metric-note-size:11px}

:root{--history-metric-columns:3}


/* Crisp dark-mode outline for selected low-contrast team logos. */
:root{--team-logo-outline-width:1px;--team-logo-outline-color:#fff}

:root{--scores-live-green:#16804a;--scores-live-text:#fff;--scores-live-dot-size:6px;--scores-filter-gap:8px;--scores-live-padding:7px 12px;--scores-live-font-size:11px}

:root{--scores-live-blink-duration:1.4s}

:root{--scores-live-count-opacity:.6}
