* {
  margin: 0;
  padding: 0;
  font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
  transition: opacity 0.2s ease-in;
  vertical-align: top;
}

body {
  padding-left: max(2vw, 1rem);
  padding-right: max(2vw, 1rem);
  padding-top: max(1vw, 1rem);
  padding-bottom: max(5vw, 5rem);
  background-color: #f4f8ff;
}
h1 img {
  width: 2rem;
}
h1 {
  font-weight: normal;
}
h2,
h3 {
  margin-bottom: 0.5rem;
  font-weight: normal;
}
.underlined {
  text-decoration: underline;
}
a {
  text-decoration: none;
  color: #00f;
}
.muted {
  color: unset;
}
.vert2 {
  line-height: 1.5rem;
}
.vert4 {
  line-height: 4rem;
}

p {
  line-height: 1.5rem;
  margin-top: 0.5rem;
  margin-bottom: 0.5rem;
}
p + h1,
p + h2,
p + h3 {
  margin-top: 0.5rem;
}

verse,
opinion {
  display: block;
  line-height: 1.5rem;
  text-decoration: underline;
  text-decoration-color: transparent;
}
column {
  display: inline-block;
  margin: 1rem;
}
column.wide {
  display: block;
  max-width: unset;
}

opinions {
  display: flex;
  flex-direction: row;
  flex-flow: row wrap;
}
opinion {
  cursor: pointer;
}

opinion.dim,
verse.dim {
  opacity: 0.33;
}
.unselectable {
  user-select: none;
}

cite {
  font-size: 80%;
  display: inline-block;
  min-width: 1rem;
}

description {
  display: block;
  margin-top: 1rem;
  margin-bottom: 1rem;
  line-height: 1.5rem;
}

material {
  display: block;
  padding-top: 1rem;
  line-height: 1.5rem;
}

articles {
  display: flex;
  flex-flow: row wrap;
  gap: 1rem;
}

articles .article-link {
  width: 20rem;
}

select#contributor {
  font-size: 1.5rem;
  padding: 0.5rem;
  margin: 0.5rem 0;
  max-width: 15rem;
}

a.article-link {
  display: block;
  padding: 0.5rem;
  margin-bottom: 0.5rem;
  color: unset;
  border: 1px solid #000;
  border-radius: 0.5rem;
}

footnote {
  font-size: 80%;
  color: #888;
}

blockquote {
  border-left: 0.2rem solid #aaa;
  padding-left: 0.5rem;
  margin: 0.5rem;
}

ul li {
  margin-left: 1rem;
}

select#language-switcher {
  margin-top: 0.5rem;
  padding: 0.25rem;
}

@media (prefers-color-scheme: dark) {
  body {
    background-color: #000;
    color: #eee;
  }
  .underlined {
    text-decoration-color: #eee;
  }
  a {
    color: #ccf;
  }
  a.article-link {
    border: 1px solid #fff;
  }
}

@media only screen and (min-width: 1024px) {
  column {
    max-width: calc(100% - 4vw - 1rem - 24rem);
  }
  column.thin {
    max-width: 24rem;
  }
  opinion {
    width: 16rem;
    padding: 0.5rem;
  }
}
