

body {
  font-family: 'Space Grotesk', 'Segoe UI', system-ui, sans-serif;
  font-weight: 400;
  font-size: clamp(1rem, 0.94rem + 0.3vw, 1.0625rem);
  line-height: 1.7;
}

h1, h2, h3, h4, h5, h6 {
  font-family: 'Space Grotesk', 'Segoe UI', system-ui, sans-serif;
  font-weight: 700;
  letter-spacing: -0.02em;
  line-height: 1.14;
  color: var(--c-ink);
  text-wrap: balance;
}

h1 { font-size: clamp(2.05rem, 1.35rem + 3.1vw, 3.25rem); }
h2 { font-size: clamp(1.6rem, 1.24rem + 1.6vw, 2.1rem); line-height: 1.18; }
h3 { font-size: clamp(1.18rem, 1.06rem + 0.5vw, 1.4rem); line-height: 1.28; }
h4 { font-size: 1.05rem; line-height: 1.35; }

p {
  font-size: 1rem;
  line-height: 1.7;
  color: var(--c-ink-2);
  margin-bottom: 1rem;
}

p:last-child { margin-bottom: 0; }

strong { font-weight: 700; color: var(--c-ink); }

small { font-size: 0.83rem; line-height: 1.55; }

code, kbd, samp {
  font-family: 'IBM Plex Mono', ui-monospace, 'Cascadia Mono', monospace;
  font-size: 0.9em;
}

hr {
  border: none;
  border-top: 1px solid var(--c-line);
  margin: 1.618rem 0;
}

input, textarea {
  border: 1px solid var(--c-line);
  border-radius: 10px;
  background: var(--c-page);
}

input::placeholder,
textarea::placeholder { color: var(--c-ink-3); }

label { display: block; }

fieldset { border: none; }

legend {
  font-family: 'IBM Plex Mono', ui-monospace, monospace;
  font-size: 0.76rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--c-ink-3);
}

blockquote {
  border-left: 3px solid var(--c-spray);
  padding-left: 1rem;
  color: var(--c-ink-2);
}
