* {
  --B: #000;
  --b: #202020;

  --W: #fff;
  --w: #d0d0d0;

  --ld: #6200ff;
  --ll: #ee0;
  --lvd: #9200b7;
  --lvl: #07e800;

  --cd: #2d2d2d;
  --cl: #ccc;

  --c: var(--cl);
  --cbg: var(--cd);
  --bg: var(--W);
  --hd: var(--B);
  --t: var(--b);
  --l: var(--ld);
  --lv: var(--lvd);
}

@media (prefers-color-scheme: dark) {
  * {
    --c: var(--cl);
    --cbg: var(--cd);
    --bg: var(--B);
    --hd: var(--W);
    --t: var(--w);
    --l: var(--ll);
    --lv: var(--lvl);
  }
}

body {
  background: var(--bg);
  color: var(--t);
  font: 1rem/1.5 sans-serif;
  margin: auto;
  max-width: 40rem;
  padding: 1rem;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  color: var(--hd);
  margin: 2em 0 1em;
}

h1 {
  font-size: 2rem;
  margin-top: 1em;
}

a {
  color: var(--l);
}
a:visited {
  color: var(--lv);
  text-decoration-color: var(--l);
}
a[target="_blank"]::after {
  content: "\2197";
  font-size: 0.66em;
  vertical-align: super;
}

blockquote {
  border-left: 1px solid currentColor;
  font-style: italic;
  padding-left: 0.5rem;
}

pre {
  background: var(--cbg);
  border: 0.125rem solid var(--t);
  padding: 1em;
  margin: 0.5em 0;
  white-space: pre-wrap;
}
pre code {
  padding: 0;
}

code {
  background: var(--cbg);
  color: var(--c);
  padding: 0 0.25rem;
}

table {
  border-collapse: collapse;
}
tr,
th,
td {
  border: 1px solid var(--t);
}
th,
td {
  padding: 0.5rem;
  text-align: left;
}

footer {
  border-top: 0.125rem solid var(--t);
  margin-top: 1rem;
}

nav {
  margin-top: 1rem;
}
nav > * {
  margin: 0.3rem 0.5rem 0.3rem 0;
}

nav > ul {
  list-style-type: none;
  padding: 0;
}

nav > ul > li {
  display: inline-block;
}
nav > ul > li + li {
  margin-left: 0.5rem;
}

/* Spoilers */

spoiler {
  display: block;
  position: relative;
}
spoiler::after {
  background: #000;
  bottom: -0.1rem;
  content: " ";
  left: -0.25rem;
  opacity: 1;
  position: absolute;
  right: -0.25rem;
  top: -0.1rem;
  visibility: visible;
}
spoiler:hover::after,
spoiler:focus::after {
  opacity: 0;
  visibility: hidden;
}
