:root {
  --font-serif: Georgia, serif;
  --background: oklch(0.997 0 0);
  --text-primary: oklch(0.173 0 0);
  --brand-color-primary: oklch(0.5635 0.2408 260.82);
  --brand-color-accent: oklch(0.6489 0.237 26.97);
}

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

html {
  height: 100%;
}

body {
  display: grid;
  grid-template-rows: auto 1fr auto;
  grid-template-columns:
    [full-start] minmax(1rem, 1fr) [content-start] min(65ch, 100% - 2rem) [content-end] minmax(1rem, 1fr) [full-end];
  row-gap: 1.25rem;
  min-height: 100dvh;
  font-family: var(--font-serif);
  line-height: 1.5;
  color: var(--text-primary);
  background: var(--background);
}

body>* {
  grid-column: content;
}

header {
  display: flex;
  justify-content: space-between;
  padding-block: .5rem;
  border-bottom: 1px solid var(--brand-color-accent);
}

footer {
  display: flex;
  justify-content: flex-end;
  padding-block: .5rem;
  border-top: 1px solid var(--brand-color-accent);

  span {
    font-size: .75rem;
  }
}

h1 {
  font-weight: 500;
  font-style: italic;
  letter-spacing: 1.3px;
}

a {
  text-decoration: none;
  color: var(--brand-color-primary);
  font-weight: bold;
}

p {
  font-size: 1.125rem;
}
