*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body { margin: 0; background: var(--bg); color: var(--text); font-family: var(--font); font-size: 15px; line-height: 1.55; text-wrap: pretty; }
h1, h2, h3, h4 { margin: 0; line-height: 1.12; font-weight: 800; letter-spacing: -0.015em; }
p { margin: 0 0 var(--space-3); }
a { color: var(--accent); text-decoration: none; text-underline-offset: 3px; }
a:hover { color: var(--accent-hover); text-decoration: underline; }
:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
::selection { background: color-mix(in srgb, var(--accent) 30%, transparent); }
.tnum { font-variant-numeric: tabular-nums lining-nums; }
.hr { height: 2px; border: 0; margin: 0; background: var(--color-divider); }
.rowlink { color: inherit; text-decoration: none; }
.rowlink:hover { color: var(--accent); text-decoration: none; }
img, svg { max-width: 100%; }
table { border-collapse: collapse; }
button, input { font: inherit; color: inherit; }
.visually-hidden { position: absolute !important; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.skip-link { position: absolute; left: var(--space-4); top: -60px; background: var(--surface); color: var(--text); padding: var(--space-2) var(--space-4); border: 1px solid var(--border-strong); border-radius: var(--radius-sm); z-index: 100; }
.skip-link:focus { top: var(--space-4); }
.muted { color: var(--text-muted); }
.small { font-size: 14px; }
.num, .stat-card__value, .record-hero__mark, .col-rank, .col-mark, .col-wind, .col-age, .col-score, .col-date, .record-card__mark, .stat-mini__value { font-variant-numeric: tabular-nums lining-nums; }
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}
