/* Reset & base typography */

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

html, body {
  margin: 0;
  padding: 0;
  font-family: var(--font-sans);
  font-size: var(--fs-14);
  line-height: var(--lh-base);
  color: var(--color-text);
  background: var(--color-bg);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

h1, h2, h3, h4, h5, h6 { margin: 0; line-height: var(--lh-tight); font-weight: 600; }
h1 { font-size: var(--fs-30); letter-spacing: -0.01em; font-weight: 700; }
h2 { font-size: var(--fs-24); }
h3 { font-size: var(--fs-20); }
h4 { font-size: var(--fs-18); }
h5 { font-size: var(--fs-16); }

p { margin: 0; }
a { color: var(--color-primary); text-decoration: none; }
a:hover { text-decoration: underline; }

button, input, select, textarea { font: inherit; color: inherit; }
button { cursor: pointer; }

:focus-visible {
  outline: none;
  box-shadow: var(--focus-ring);
  border-radius: var(--radius-sm);
}

code, .mono { font-family: var(--font-mono); }
.muted { color: var(--color-text-muted); }
.soft { color: var(--color-text-soft); }
.small { font-size: var(--fs-12); }
.num { font-variant-numeric: tabular-nums; }
