* {
  box-sizing: border-box;
}

:root {
  --font-family: "Noto Serif", serif;
  --font-weight: 400;
  --font-family-mono: "Noto Sans Mono", monospace;
  --bg: white;
  --fg: black;
  --pre-bg: #f2f2f2;
  --code-fg: darkred;
  --base-padding: 0.7rem 1rem;

  font-family: var(--font-family);
  font-size: 100%;
  font-weight: var(--font-weight);
}

body {
  max-width: 50rem;
  min-height: 100vh;
  margin: auto;
  padding: var(--base-padding);
}

body {
  background-color: var(--bg);
  color: var(--fg);
}

pre,
code {
  font-family: var(--font-family-mono);
  font-size: 0.95rem;
}

pre {
  padding: var(--base-padding);
  background-color: var(--pre-bg);
  max-width: 100%;
  overflow-x: auto;
}

p code,
ul code {
  color: var(--code-fg);
}

p,
ul {
  line-height: 1.5;
  margin: 1.5rem 0;
}

p + ul {
  margin-top: -1rem;
}

footer {
  margin-top: 3rem;
  text-align: right;
  border-top: 2px solid var(--fg);
}

a[target="_blank"]:after {
  content: "↗";
}

@media (prefers-color-scheme: dark) {
  :root {
    --font-family: "Noto Sans", sans-serif;
    --font-weight: 400;
    --bg: black;
    --fg: cornsilk;
    --pre-bg: #333;
    --code-fg: burlywood;
  }

  a {
    color: cornflowerblue;
  }
  a:visited {
    color: violet;
  }
}

@media screen and (max-width: 600px) {
  :root {
    --base-padding: 0.5rem 0.7rem;
  }
}

time.relative {
  white-space: nowrap;
}

.home--post-published-at {
  opacity: 0.5;
  font-variant-caps: small-caps;
}

.post--published-at {
  float: right;
}

.post--title {
  line-height: 1.2;
}
