* {
  margin: 0;
  padding: 0;
}

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

html {
  font-size: 16px;
  scroll-behavior: smooth;
}

:root {
  --s1: 0.618em;
  --s2: 1em;
  --s3: 1.618em;
  --s4: 2.618em;
  --s5: 4.236em;

  --fluid-lede: clamp(1em, 0.94em + 0.4vw, 1.18em);
  --fluid-band: clamp(2.618em, 1.4em + 4vw, 4.236em);
  --fluid-gap: clamp(1em, 0.5em + 2vw, 2.618em);
  --shell: clamp(18em, 92%, 71em);

  --ink: #0d0d0d;
  --ink-2: #141414;
  --ink-3: #1a1a1a;
  --slab: #16181c;
  --line: #2b2f36;
  --paper: #ffffff;
  --mute: #b3b3b3;
  --dim: #808080;
  --ember: #e0552f;
  --ember-hi: #ff8a5c;
  --ember-dark: #2a120b;
}

body {
  font-family: Archivo, "Segoe UI", Helvetica, Arial, sans-serif;
  line-height: 1.6;
  color: var(--paper);
  background: var(--ink);
  -webkit-font-smoothing: antialiased;
}

h1,
h2,
h3,
h4 {
  font-family: Bitter, Georgia, "Times New Roman", serif;
  line-height: 1.2;
  letter-spacing: -0.01em;
}

h1 {
  font-size: 1.9em;
  font-weight: 700;
}

h2 {
  font-size: 1.6em;
  font-weight: 600;
}

h3 {
  font-size: 1.3em;
  font-weight: 600;
}

h4 {
  font-size: 1.15em;
  font-weight: 500;
}

p {
  font-size: 1em;
  line-height: 1.7;
}

a {
  color: var(--ember-hi);
  text-decoration: none;
}

a:hover {
  text-decoration: underline;
}

button {
  cursor: pointer;
  border: none;
  background: none;
  font: inherit;
}

img,
svg {
  max-width: 100%;
}

ul,
ol {
  padding-left: 1.2em;
}

table {
  border-collapse: collapse;
  width: 100%;
}

strong {
  font-weight: 600;
}

@media (min-width: 48em) {
  h1 {
    font-size: 2.5em;
    font-weight: 700;
  }

  h2 {
    font-size: 2em;
    font-weight: 600;
  }

  h3 {
    font-size: 1.5em;
    font-weight: 600;
  }

  h4 {
    font-size: 1.25em;
    font-weight: 500;
  }
}
