:root, html {
  height: 100%;
  margin: 0;
  --md-sys-surface: #1e1b29;
  --md-sys-on-surface: #e6e1e6;
  --md-sys-surface-container-low: #0f0e11;
  --md-sys-on-primary: #380094;
  --border-radius: 16px;
  --ion-padding: 12px;
  --ion-color-primary: #beb7e9;
  --ion-color-tertiary: #9891a8;
}

body {
  margin: 0;
  background: var(--md-sys-surface);
  color: var(--md-sys-on-surface);
  font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: var(--ion-padding);
  box-sizing: border-box;
}

@media (min-width: 768px) {
  body {
    padding-top: calc(15% - 114px + var(--ion-padding));
    padding-bottom: 10%;
  }
}

a:link, a:visited {
  color: inherit;
}

body.teaser {
  height: 100%;
  text-align: center;
  justify-content: center;
  padding-bottom: 0;
  padding-top: 0 !important;
  & img#logo {
    align-self: center;
    width: 200px;
    margin-bottom: 8vh;
  }
}

article {
  width: 100%;
  max-width: 600px;
  line-height: 1.5;
  color: var(--ion-color-tertiary);
  text-align: center;
  
  & img#logo {
    width: 80px;
    margin: 1rem auto 2rem auto;
    display: block;
  }
  & h1 {
    font-size: 1.35rem;
    font-weight: 600;
    margin: 0 0 .75rem;
    color: #fff;
  }
  & h2 {
    font-size: inherit;
    font-weight: normal;
    margin: 0 0 .5rem;
    color: #fff;
  }
  & section, & form {
    background: var(--md-sys-surface-container-low);
    padding: .95rem 1.4rem 1.05em;
    border-radius: var(--border-radius);
  }
  & section + section {
    margin-top: var(--ion-padding);
  }

  & p, ul, ol {
    opacity: .85;
    margin: 0 0 .5rem;
  }
  & p:last-child, ul:last-child, ol:last-child {
    margin-bottom: 0;
  }

  & ul {
    padding-left: 1rem;
  }
  & ul.space-between > li + li {
    margin-top: .5rem;
  }

  & ol {
    list-style: none;
    padding-left: 0;
    counter-reset: steps;

    & > li {
      clear: both;
    }

    & > li + li {
      margin-top: .5rem;
    }

    & > li:before {
      counter-increment: steps;
      content: counters(steps, '.') ' ';
      /* Whatever custom styles you want here */
      color: #fff;
      background: #9870b633;
      border-radius: 1rem;
      width: 1.5rem;
      margin-right: .5rem;
      text-align: center;
      display: inline-block;
      position: relative;
    }

    & ul {
      list-style: disc;
      width: calc(100% - 3rem);
      padding-left: 2rem;
      margin-top: .3rem;
    }
  }

  & blockquote {
    background: var(--md-sys-surface);
    margin: 0;
    padding: .6rem 1rem;
    border-radius: 8px;
    margin-bottom: .5rem;
  }

}

form.reset {
  margin-top: 1em;
  text-align: left;
  padding-top: 1.15rem;
  
  & label {
    display: block;
    margin: 0 0 0.25em;
  }
  input[autocomplete] + label {
    margin-top: .8em;
  }

  & input[type=email],
  & input[type=password] {
    width: 100%; box-sizing: border-box; padding: 0.6em;
    font-size: 1em; border: 1px solid #ccc; border-radius: 6px;
  }

  & button {
    margin-top: .6em;
    width: 100%;
    padding: 0.7em;
    font-size: 1em;
    border: 0;
    border-radius: 2em;
    cursor: pointer;
    background: var(--ion-color-primary);
    color: var(--md-sys-on-primary);
  }
}