/* ─────────────────────────────────────────────────────
   base.css
   Default look of individual HTML elements.
   No layout, no positioning — that belongs in layout.css.
   All values reference tokens from tokens.css.
───────────────────────────────────────────────────── */

/* ─── Reset ──────────────────────────────────────── */

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

/* ─── Root ───────────────────────────────────────── */

body {
  background-color: var(--color-surface-bg);
  color: var(--color-text-body);
  font-family: var(--font-mono);
  font-size: 1rem;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}

/* ─── Headings ───────────────────────────────────── */

h1,
h2,
h3 {
  color: var(--color-text-primary);
  font-weight: 500;
  line-height: 1.2;
}

h3 { font-size: 1rem; }

/* ─── Text ───────────────────────────────────────── */

small {
  color: var(--color-text-label);
  font-size: 0.75rem;
}

/* ─── Links ──────────────────────────────────────── */

a {
  color: var(--color-text-body);
  text-decoration: none;
  transition: color var(--transition-speed) var(--transition-ease);
}

a:hover {
  color: var(--color-text-primary);
}

/* ─── Lists ──────────────────────────────────────── */

ul {
  list-style: none;
}

/* ─── Buttons ────────────────────────────────────── */

button {
  background: none;
  border: none;
  cursor: pointer;
  font-family: var(--font-mono);
  color: inherit;
}

/* ─── Inputs ─────────────────────────────────────── */

input {
  font-family: var(--font-mono);
  color: var(--color-text-body);
  background: none;
  border: none;
  outline: none;
}

input::placeholder {
  color: var(--color-text-label);
}

/* ─── Images ─────────────────────────────────────── */

img {
  display: block;
  max-width: 100%;
}

/* ─── Figure ─────────────────────────────────────── */

figure {
  margin: 0;
}
