:root {
  color-scheme: light;
  --paper: #f5f3ef;
  --ink: #242722;
  --muted: #63675e;
  --rule: #d9dbd3;
  --accent: #475844;
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  color: var(--ink);
  background: var(--paper);
  font-synthesis: none;
  -webkit-font-smoothing: antialiased;
}

* { box-sizing: border-box; }
body { margin: 0; }
a { color: inherit; }
p { margin: 0; }
::selection { background: #d7dfce; }

.page {
  width: min(100% - 7rem, 80rem);
  margin-inline: auto;
  min-height: 100svh;
  display: flex;
  flex-direction: column;
}

.masthead {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 1.5rem;
  padding-block: 2.8rem;
}

.wordmark {
  font-family: Georgia, "Times New Roman", serif;
  font-size: 2.4rem;
  font-weight: 400;
  letter-spacing: -.09em;
  line-height: 1;
  text-decoration: none;
}
.wordmark span { color: var(--accent); }

main { padding-block: clamp(3.5rem, 7.2vh, 6rem) 5rem; }
h1 {
  font-family: Georgia, "Times New Roman", serif;
  font-weight: 400;
  font-size: clamp(3.4rem, 6.4vw, 6.25rem);
  line-height: 1.06;
  letter-spacing: -.06em;
  margin: 0 0 2.8rem;
}
h1 em { font-weight: 400; color: var(--accent); }
.introduction {
  max-width: 39.5rem;
  font-size: 1.1875rem;
  line-height: 1.6;
  letter-spacing: -.018em;
}
.introduction p + p { margin-top: 1.15rem; }
.lead { font-weight: 500; }
.introduction p:not(.lead) { color: #55594f; }
.project-note {
  margin-top: 3rem;
  font-size: .9375rem;
  line-height: 1.7;
}
.secondary { color: var(--muted); }

footer {
  margin-top: auto;
  padding-block: 1.5rem 1.8rem;
  border-top: 1px solid var(--rule);
  display: flex;
  flex-wrap: wrap;
  gap: .75rem 2rem;
  justify-content: space-between;
  font-size: .8125rem;
  line-height: 1.5;
  color: var(--muted);
}

:focus-visible { outline: 2px solid var(--accent); outline-offset: 6px; }
.skip-link {
  position: absolute;
  inset: .5rem auto auto 1rem;
  background: var(--ink);
  color: var(--paper);
  padding: .75rem 1rem;
  transform: translateY(-200%);
  z-index: 1;
}
.skip-link:focus { transform: translateY(0); }

@media (min-width: 110rem) {
  main { padding-left: 6rem; }
}

@media (max-width: 40rem) {
  .page { width: calc(100% - 3rem); }
  .masthead { padding-block: 2rem; }
  .wordmark { font-size: 2.1rem; }
  main { padding-block: 3rem 4rem; }
  h1 { font-size: clamp(2.6rem, 9vw, 3.6rem); margin-bottom: 2rem; }
  .introduction { font-size: 1.0625rem; line-height: 1.65; }
  .project-note { margin-top: 2.3rem; }
  footer { padding-bottom: 1.5rem; }
}

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