/* Reset, fonts and element defaults (HCK-U02). No component classes here. */

@font-face {
  font-family: 'Public Sans';
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url('/fonts/public-sans-latin-wght-normal.woff2') format('woff2');
}
@font-face {
  font-family: 'Public Sans';
  font-style: italic;
  font-weight: 100 900;
  font-display: swap;
  src: url('/fonts/public-sans-latin-wght-italic.woff2') format('woff2');
}

*, *::before, *::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }

body {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font-family: var(--font);
  font-size: var(--text-md);
  line-height: 1.55;
  font-variant-numeric: tabular-nums;
  -webkit-font-smoothing: antialiased;
}

h1, h2, h3, h4, p, ul, ol, dl, dd, figure, blockquote { margin: 0; }
ul, ol { padding: 0; list-style: none; }
img, svg { max-width: 100%; }
hr { border: 0; border-top: 1px solid var(--rule); margin: var(--s-5) 0; }

h1 { font-size: var(--text-2xl); line-height: 1; font-weight: 800; letter-spacing: -0.04em; text-wrap: balance; }
h2 { font-size: var(--text-xl); line-height: 1.1; font-weight: 800; letter-spacing: -0.03em; text-wrap: balance; }
h3 { font-size: var(--text-lg); line-height: 1.2; font-weight: 700; letter-spacing: -0.015em; }

a { color: var(--accent); text-underline-offset: 3px; }
a:hover { text-decoration-thickness: 2px; }

strong, b { font-weight: 800; }
code, kbd, samp { font-family: ui-monospace, 'SF Mono', Menlo, Consolas, monospace; font-size: 0.92em; }
code { background: var(--paper-2); padding: 1px 6px; border-radius: var(--radius); }

:focus-visible { outline: var(--focus); outline-offset: 2px; }

::selection { background: var(--gold); color: var(--on-gold); }

.skip-link {
  position: absolute; left: var(--s-4); top: -100px; z-index: 100;
  background: var(--ink); color: var(--paper); padding: var(--s-3) var(--s-4);
  font-weight: 800; text-decoration: none;
}
.skip-link:focus { top: var(--s-3); }

.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;
}

[hidden] { display: none !important; }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}

@media print {
  body { background: #fff; color: #000; }
  .sidenav, .skip-link, .no-print { display: none !important; }
}
