#app-main {
  font-family: 'Hack', monospace;
  max-width: 1280px;
  margin: 0 auto;
  padding: 1rem 1rem 1rem 1rem;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-content: center;
  align-items: center;
  flex-grow: 1;
}

#app {
  margin: 0 auto;
  text-align: center;
  align-content: center;
  justify-content: center;
  min-height: 100% !important;
  display: flex;
  flex-direction: column;
}

.logo {
  height: 6em;
  padding: 1.5em;
}
.logo:hover {
  filter: drop-shadow(0 0 2em #646cffaa);
}
.logo.preact:hover {
  filter: drop-shadow(0 0 2em #673ab8aa);
}

.ascii-art {
  font-family: 'Hack', monospace;
  text-align: center;
  background-color: #161f30;
  padding: 2px;
  margin: 8px;
  font-family: Hack, monospace;
  font-size: 10pt;
  overflow-x: auto;
  white-space: pre
}

@media (max-width: 480px) {
  #app-main {
    max-width: 100%;
    padding: 0;
  }
  .main-info {
      max-width: 90%;
  }
}

@media (max-width: 1150px) and (min-width: 480px) {
  #app-main {
    max-width: 100%;
    padding: 0;
  }
  .main-info {
      max-width: 80%;
  }
}

@media (min-width: 1150px) {
  .main-info {
      max-width: 1280px;
      margin-top: 72px;
  }
}

.main-info-image {
  width: 128px;
  height: 128px;
  border-radius: 100%;
  margin: 6px 6px 6px 6px;
}

.main-info-title {
  font-size: 42pt;
}

.main-info-subtitle {
  font-size: 26pt;
  font-style: italic;
  color: #5c6370;
}

.quiet {
  color: var(--color-gray);
  font-style: italic;
}

.section {
  font-size: 22pt;
}

.highlight {
    color: #e5c07b;
}

.back-shadows {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: -1;
  background: linear-gradient(to right, rgba(0, 0, 0, 0) 0%, var(--color-bg) 10%, var(--color-bg) 90%, rgba(0, 0, 0, 0) 100%);
}

#animated-bg {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: -10;
}


@media (max-width: 480px) {
  .back-shadows {
      margin: auto;
      max-width: 80%;
  }
  .main-info-title {
    font-size: 32pt;
  }

  .main-info-subtitle {
    font-size: 18pt;
  }
}

@media (max-width: 1150px) and (min-width: 480px) {
  .back-shadows {
      margin: auto;
      max-width: 60%;
  }
  .main-info-title {
    font-size: 42pt;
  }

  .main-info-subtitle {
    font-size: 26pt;
  }
}

@media (min-width: 1150px) {
  .back-shadows {
      margin: auto;
      max-width: 50%;
  }
  .main-info-title {
    font-size: 42pt;
  }

  .main-info-subtitle {
    font-size: 26pt;
  }
}


@media (max-width: 480px) {
  .about-paragraph {
      margin: auto;
      font-size: 16pt;
      max-width: 90%;
  }
}

@media (max-width: 1150px) and (min-width: 480px) {
  .about-paragraph {
      margin: auto;
      font-size: 18pt;
      max-width: 80%;
  }
}

@media (min-width: 1150px) {
  .about-paragraph {
      margin: auto;
      font-size: 18pt;
      max-width: 60%;
  }
}

/* footer */
/* if #app-main is taller than the viewport, push the footer to the bottom of the page */
.footer-container {
  position: fixed;
  bottom: 0;
  width: 100%;
  z-index: 9999;
  margin: auto;
}

.footer-container {
  position: static;
}

.footer {
  max-width: 1280px;
  margin-top: 2em;
  margin-left: auto;
  margin-right: auto;
  padding-top: 20pt;
  padding-bottom: 12pt;
  align-items: center;
  justify-content: center;
  align-self: center;
  border-top: 2px solid #3e4451;
  display: flex;
  flex-direction: row;
}

@media (max-width: 480px) {
  .footer {
      max-width: 90%;
  }
}

@media (max-width: 1300px) and (min-width: 480px) {
  .footer {
      max-width: 80%;
  }
}

@media (min-width: 1300px) {
  .footer {
    max-width: 1280px;
  }
}

.footer-begin {
  align-self: left;
  align-items: flex-start;
  align-content: flex-start;
}

.footer-middle {
  align-self: center;
  align-items: center;
  align-content: center;
  flex-grow: 1;
}

.footer-end {
  align-self: right;
  align-items: flex-end;
  align-content: flex-end;
}

.footer-item {
  font-family: Hack, monospace;
  font-size: 12pt;
  color: #647089;
  text-align: center;
  float: none;
  clear: left;
  display: inline-block;
  margin: 0 0.25em;
  transition: all 0.2s ease-in-out;
}

.footer-link:link {
  color: #647089;
  text-decoration: underline;
}

.footer-link:visited {
  color: #647089;
  text-decoration: underline;
}

.footer-icon {
  transition: all 0.2s ease-in-out;
  width: 1.5em;
  height: 1.5em;
  filter: brightness(50%);
}

.footer-icon:hover {
  transition: all 0.2s ease-in-out;
  filter: brightness(100%) drop-shadow(0 0 0.5em #647089);
}
