/*
 * A — Tessera · base: reset, document defaults, accessibility helpers, type scale.
 * Requires tokens.css (and fonts.css for the brand typefaces).
 */

/* Base */
*, *::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: 400 17px/1.6 var(--font-sans);
  -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility;
  font-feature-settings: "kern", "liga";
}
img, svg { display: block; max-width: 100%; }
h1, h2, h3, h4, p, ul, ol, dl, dd, figure { margin: 0; }
ul, ol { padding: 0; }
a { color: inherit; }
:focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; }
::selection { background: var(--smalto); color: var(--on-smalto); }

.t-sr { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.t-skip { position: absolute; left: 16px; top: -100px; z-index: 100; padding: 10px 14px; background: var(--ink); color: var(--ink-inverse); font-weight: 600; text-decoration: none; }
.t-skip:focus { top: 12px; }

/* Type scale */
.t-display { font-weight: 600; font-size: clamp(42px, 6.4vw, 88px); line-height: .98; letter-spacing: -0.045em; text-wrap: balance; }
.t-h1 { font-weight: 600; font-size: clamp(36px, 4.6vw, 56px); line-height: 1.04; letter-spacing: -0.03em; text-wrap: balance; }
.t-h2 { font-weight: 600; font-size: clamp(30px, 3.4vw, 44px); line-height: 1.08; letter-spacing: -0.028em; text-wrap: balance; }
.t-h3 { font-weight: 600; font-size: 22px; line-height: 1.22; letter-spacing: -0.018em; }
.t-h4 { font-weight: 600; font-size: 18px; line-height: 1.3; letter-spacing: -0.01em; }
.t-lead { font-size: clamp(18px, 1.6vw, 21px); line-height: 1.55; color: var(--ink); max-width: 62ch; }
.t-body { font-size: 17px; line-height: 1.6; max-width: 68ch; }
.t-small { font-size: 15px; line-height: 1.55; }
.t-muted { color: var(--muted); }
.t-label { font: 400 12px/1.4 var(--font-mono); letter-spacing: 0.08em; text-transform: uppercase; }
.t-data { font-family: var(--font-mono); font-variant-numeric: tabular-nums; }

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