@font-face {
  font-family: "Bodoni Moda";
  src: url("fonts/bodoni-moda.ttf") format("truetype");
  font-style: normal;
  font-weight: 400;
  font-display: swap;
}

:root {
  color-scheme: light dark;
  color: #000;
  background-color: #fff;
  font-family: Georgia, "Times New Roman", serif;
}

a:link,
a:visited {
  color: #00f;
}

@media (prefers-color-scheme: dark) {
  :root {
    color: #fff;
    background-color: #000;
  }

  a:link,
  a:visited {
    color: #80c0ff;
  }
}

* {
  box-sizing: border-box;
}

body {
  min-height: 100vh;
  min-height: 100svh;
  margin: 0;
  padding: 64px 24px;
  display: grid;
  place-items: center;
}

.page {
  width: 100%;
  max-width: 40em;
  display: flex;
  flex-direction: column;
  gap: 3em;
}

header {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}

h1,
h2,
p {
  margin: 0;
}

h1 {
  margin-top: 0.3em;
  padding-left: 0.25em;
  font: 400 clamp(1.75em, 7vw, 2.5em) "Bodoni Moda", Didot, "Times New Roman", serif;
  font-kerning: normal;
  letter-spacing: 0.25em;
}

/* Optically tighten the spaces beside the A's sloping strokes. */
h1 .kern-a {
  margin-inline: -0.1em;
}

.subtitle {
  margin-top: 0.5em;
}

h2 + p {
  margin-top: 0.5em;
}

p + p {
  margin-top: 0.5em;
}

footer {
  font-size: 0.85em;
  text-align: left;
}

.invitation {
  margin-top: 3em;
}

h2 {
  font-size: 1em;
}
