* {
  box-sizing: inherit;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

::selection {
  background-color: hsl(0, 0%, 90%);
}
@media (prefers-color-scheme: dark) {
  ::selection {
    background-color: hsl(0, 0%, 12%);
  }
}

@keyframes fadein {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
body {
  background-color: hsl(0, 0%, 95%);
  font-size: 22px;
  font-family: source-code-pro, monospace;
  font-weight: 400;
  color: hsl(0, 0%, 8%);
  box-sizing: border-box;
  opacity: 0;
  animation: fadein 1s ease 0.2s forwards;
  min-height: 100vh;
}
@media (prefers-color-scheme: dark) {
  body {
    background-color: hsl(0, 0%, 8%);
    color: hsl(0, 0%, 95%);
  }
}
body.layout-index {
  display: flex;
  align-items: center;
  justify-content: center;
}

h1, h2, h3, p, blockquote {
  margin: 0;
}
h1 + h1, h1 + h2, h1 + h3, h1 + p, h1 + blockquote, h2 + h1, h2 + h2, h2 + h3, h2 + p, h2 + blockquote, h3 + h1, h3 + h2, h3 + h3, h3 + p, h3 + blockquote, p + h1, p + h2, p + h3, p + p, p + blockquote, blockquote + h1, blockquote + h2, blockquote + h3, blockquote + p, blockquote + blockquote {
  margin-top: 1em;
}

blockquote + h1, blockquote + h2, blockquote + h3, blockquote + p {
  margin-top: 1.25em;
}

h1 {
  font-size: 48px;
  line-height: 1.1;
  font-weight: 900;
}

h2 {
  font-size: 32px;
  font-weight: 400;
}

h3 {
  font-size: 24px;
  font-weight: bold;
}
h3.subtitle {
  font-weight: 400;
  margin-bottom: 1.5em;
  color: hsl(0, 0%, 60%);
}
@media (prefers-color-scheme: dark) {
  h3.subtitle {
    color: hsl(0, 0%, 40%);
  }
}

p {
  line-height: 1.5em;
}

time {
  display: block;
  color: hsl(0, 0%, 60%);
  font-size: 18px;
  margin-top: -16px;
}
@media (prefers-color-scheme: dark) {
  time {
    color: hsl(0, 0%, 40%);
  }
}

blockquote {
  padding: 2px 0 2px 24px;
  box-shadow: inset 2px 0 hsl(0, 0%, 60%);
}
blockquote > p {
  font-style: italic;
}
@media (prefers-color-scheme: dark) {
  blockquote {
    box-shadow: inset 2px 0 hsl(0, 0%, 40%);
  }
}

a {
  color: inherit;
  text-decoration: underline;
  text-decoration-thickness: 2px;
  text-underline-offset: 2px;
  text-decoration-color: hsl(0, 0%, 80%);
}
@media (prefers-color-scheme: dark) {
  a {
    text-decoration-color: hsl(0, 0%, 40%);
  }
}
a.back {
  text-decoration: none;
  color: hsl(0, 0%, 80%);
}
@media (prefers-color-scheme: dark) {
  a.back {
    color: hsl(0, 0%, 40%);
  }
}
a:hover {
  color: hsl(0, 0%, 4%);
  text-decoration-color: hsl(0, 0%, 60%);
}
a:hover.back {
  color: hsl(0, 0%, 4%);
}
@media (prefers-color-scheme: dark) {
  a:hover {
    color: hsl(0, 0%, 100%);
  }
  a:hover.back {
    color: hsl(0, 0%, 100%);
  }
}

nav {
  width: 100vw;
  max-width: 688px;
  margin: 64px auto;
  font-size: 20px;
  font-family: major-mono-display;
  cursor: default;
  line-height: 1.85;
  letter-spacing: 14px;
  word-wrap: break-word;
  word-break: break-all;
  text-transform: lowercase;
  padding: 0 10px 0 24px;
}
.layout-index nav {
  margin: 0 0 24px;
}
nav a {
  text-decoration: none;
}
nav a:hover {
  text-transform: uppercase;
}
nav a.current {
  background-color: hsl(0, 0%, 8%);
  color: hsl(0, 0%, 95%);
}
nav a.current:not(:first-child) {
  text-transform: uppercase;
}
@media (prefers-color-scheme: dark) {
  nav a.current {
    background-color: hsl(0, 0%, 95%);
    color: hsl(0, 0%, 8%);
  }
}

main {
  max-width: 688px;
  margin: 80px auto 104px;
  padding: 0 24px;
}

article + article {
  margin-top: 48px;
}

footer {
  margin-top: 64px;
  font-size: 16px;
  color: hsl(0, 0%, 60%);
}
@media (prefers-color-scheme: dark) {
  footer {
    color: hsl(0, 0%, 40%);
  }
}