@font-face { font-family: 'Crimson Pro'; font-style: normal; font-weight: 200 900; font-display: swap; src: url('/fonts/crimson-pro-latin-wght-normal.woff2') format('woff2'); }
@font-face { font-family: 'Crimson Pro'; font-style: italic; font-weight: 200 900; font-display: swap; src: url('/fonts/crimson-pro-latin-wght-italic.woff2') format('woff2'); }
body::before, body::after { display: none; }
.editorial { max-width: 1200px; }
.head { max-width: 1000px; padding-top: 82px; margin: 0 auto; text-align: center; }
.head .title { font-family: 'Crimson Pro', Georgia, serif; font-size: clamp(48px, 7.5vw, 92px); line-height: .98; font-weight: 400; letter-spacing: -.035em; margin: 0 auto; text-wrap: balance; }
.head .subtitle { font-family: 'Crimson Pro', Georgia, serif; font-style: italic; font-size: 26px; line-height: 1.25; max-width: 720px; margin: 24px auto 0; color: #464646; }
.head .byline { font-size: 13px; line-height: 20px; margin-top: 24px; }
.page { display: block; max-width: 688px; margin: 64px auto 80px; }
.weather-post { font-family: 'Crimson Pro', Georgia, serif; font-size: 22px; line-height: 1.45; }
.editorial-figure { max-width: 1000px; margin: 58px auto 0; }
.editorial-figure img { width: 100%; height: auto; }
.race-browser { max-width: 1100px; margin-left: auto; margin-right: auto; }
.weather-post .equation { margin: 24px 0; padding: 8px 0; }
.weather-post math { font-size: 1.2em; }
.race-browser { margin-top: 48px; border-top: 1px solid var(--rule); padding-top: 24px; }
.table-heading { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.table-heading h2 { margin: 0; font-size: 22px; line-height: 28px; }
.snapshot { font-size: 12px; color: var(--gray); white-space: nowrap; }
.table-intro, .table-notes, .table-downloads, .table-status { font-size: 14px; line-height: 20px; }
.table-intro { margin-top: 12px; }
.table-controls { display: flex; gap: 16px; margin-top: 24px; max-width: 640px; }
.table-controls label { display: grid; gap: 6px; font-size: 13px; line-height: 18px; }
.table-controls label:first-child { flex: 1; }
.table-controls input, .table-controls select { font: inherit; font-size: 16px; color: var(--ink); background: white; border: 1px solid #bbb; border-radius: 5px; padding: 10px 12px; min-width: 0; width: 100%; }
.table-status { margin: 14px 0 12px; color: var(--gray); }
.table-scroll { overflow-x: auto; border: 1px solid var(--rule); border-radius: 6px; }
#race-table { border-collapse: collapse; width: 100%; font-size: 14px; line-height: 19px; font-variant-numeric: tabular-nums; }
#race-table th { text-align: right; background: #f8f9fa; border-bottom: 1px solid var(--rule); }
#race-table th button { font: inherit; font-weight: 600; color: var(--ink); border: 0; background: transparent; cursor: pointer; padding: 14px; text-align: inherit; white-space: nowrap; width: 100%; }
#race-table td { padding: 16px 14px; text-align: right; border-bottom: 1px solid #eee; vertical-align: top; white-space: nowrap; }
#race-table tr:last-child td { border-bottom: 0; }
#race-table small { display: block; margin-top: 5px; font-size: 12px; line-height: 17px; color: var(--gray); font-weight: 400; }
#race-table th:nth-child(2), #race-table .race-cell { text-align: left; }
#race-table .race-cell, #race-table .exposure-cell { font-weight: 600; }
#race-table .rank-cell { color: var(--gray); }
.table-notes { color: var(--gray); margin-top: 14px; }
.table-downloads { margin-top: 12px; }
.visually-hidden { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
@media (max-width: 520px) {
  .head { padding-top: 54px; }
  .head .title { font-size: 52px; line-height: .98; }
  .head .subtitle { font-size: 23px; margin-top: 20px; }
  .editorial-figure { margin-top: 40px; }
  .weather-post { font-size: 20px; }
  .table-controls { flex-direction: column; }
  .table-heading { align-items: baseline; }
  .table-scroll { margin-left: -8px; margin-right: -8px; }
}
.table-scroll { max-height: 600px; }
#race-table th { position: sticky; top: 0; z-index: 1; }
