:root {
  font-size: 12px;

  --page-bg-color: #eee;
  --page-txt-color: #222;
  --header-bg-color: #222;
  --header-txt-color: #eee;
  --dt-bg-color: #ddd;
  --highlight-bg-color: gold;
  --highlight-txt-color: #222;
  --link-color: gold;
}

@media (prefers-color-scheme: dark) {
  :root {
    --page-bg-color: #222;
    --page-txt-color: #eee;
    --header-bg-color: #444;
    --header-txt-color: #eee;
    --dt-bg-color: #444;
    --highlight-bg-color: darkslateblue;
    --highlight-txt-color: #eee;
    --link-color: mediumslateblue;
  }
}

body {
  background: var(--page-bg-color);
  color: var(--page-txt-color);
  font-family: "Hanken Grotesk", sans-serif;
  font-size: 1.5rem;
}

section {
  margin: 3rem auto 5rem;
  max-width: 980px;
  padding: 0 2rem;
}

header.main {
  background: var(--header-bg-color);
  color: var(--header-txt-color);
  padding: 3rem 2rem;
}

h1 {
  font-family: Georgia, "Times New Roman", Times, serif;
  font-size: 3.5rem;
  font-weight: bold;
  margin: 0 auto;
  max-width: 980px;
  padding: 1rem 0;
}

h2 {
  font-size: 1.75rem;
  font-weight: bold;
}

h3 {
  font-size: 1.5rem;
  font-weight: bold;
}

li h3 {
  font-size: 1.25rem;
}

.super-header {
  display: inline-block;
  font-family: "Hanken Grotesk", sans-serif;
  font-size: 1.25rem;
  font-weight: normal;
  width: 100%;
}

.sub-header {
  font-style: italic;
  font-weight: normal;
}

p {
  margin: 2rem 0;
  line-height: 1.5em;
}

em {
  font-style: italic;
}

ul {
  margin: 2rem 1rem;
}

li {
  font-size: 1.25rem;
  margin: 3rem 1rem;
  line-height: 1.5em;
  overflow: hidden;
}

.text-list {
  list-style: circle;
}

.text-list li {
  margin: 2rem 1.5rem;
  overflow: visible;
}

.word-list {
  margin: 0;
}

.word-list li {
  font-size: 1.5rem;
  display: inline-block;
  margin: 0;
}

.word-list li::after {
  content: ", ";
}

.word-list li:last-child::after {
  content: ".";
}

.icon-list li {
  align-items: flex-start;
  display: flex;
  gap: 2rem;
}

.icon-list p {
  margin: 0;
}

a {
  font-weight: bold;
  color: var(--page-txt-color);
  text-decoration-color: var(--link-color);
  text-decoration-thickness: 3px;
  text-underline-offset: 4px;
}

a:hover {
  text-decoration-thickness: 5px;
}

.thumbnail {
  width: 100%;
  border: 1px solid rgba(255, 255, 255, 0.5);
  border-radius: 7px;
  margin: 0 0 2rem 0;
}

.app-icon {
  border-radius: 15px;
  width: 100px;
}

dl {
  margin: 1rem 0;
}

dt {
  background: var(--dt-bg-color);
  display: inline-block;
  font-weight: bold;
  margin: 2rem 0 0;
  padding: 0.5rem;
}

dd {
  line-height: 1.5em;
  padding: 0.5rem;
}

/* Media queries */

@media (min-width: 400px) {
  :root {
    font-size: 14px;
  }

  .thumbnail-list > li {
    margin-bottom: 4rem;
  }
}

@media (min-width: 600px) {
  .thumbnail {
    width: 200px;
    float: left;
    margin: 0 2rem 0 0;
  }
}

@media (min-width: 800px) {
  :root {
    font-size: 16px;
  }

  .thumbnail-list > li {
    margin-bottom: 3rem;
  }
}

/* Highlight */

.highlight {
  animation: hilite 1s ease-in-out 0s forwards;
  background-position: 100%;
  background-size: 200% 200%;
  background-image: linear-gradient(90deg, var(--highlight-bg-color) 49.99%, var(--page-bg-color) 50%);
  font-weight: bold;
  padding: 0 0.5rem;
}

.highlight--1 {
  animation-delay: 0.5s;
  animation-duration: 0.5s;
}

.highlight--2 {
  animation-delay: 0.75s;
  animation-duration: 1s;
}

.highlight--3 {
  animation-delay: 1.25s;
  animation-duration: 0.5s;
}

.highlight--4 {
  animation-delay: 1.5s;
  animation-duration: 0.5s;
}

.highlight--5 {
  animation-delay: 1.75s;
  animation-duration: 0.5s;
}

.highlight--6 {
  animation-delay: 2s;
  animation-duration: 0.5s;
}

@keyframes hilite {
  0% {
    background-position: 100%;
    color: var(--page-txt-color);
  }

  100% {
    background-position: 0%;
    color: var(--highlight-txt-color);
  }
}
