html,
body {
  margin: 0;
  font-family: serif;
  height: 100%;
  display: flex;
  width: 100%;
  overflow: hidden;
}

figure {
  width: 100%;
  margin: 0;
  text-align: center;

  img {
    width: 400px;
  }

  figcaption {
    margin-bottom: 0.5rem;
    font-size: x-large;
  }
}

aside {
  div {
    height: calc(100% - 4em);
    overflow-y: scroll;
    padding: 2em;
    display: block;
    align-items: center;

    &#tracklist.active {
      height: 100%;
      padding: 0 2em;
      display: flex;
      flex-direction: column;
      justify-content: center;
    }

    &:not(.active) {
      display: none;
    }
  }

  position: sticky;
  top: 0;
  height: 100%;
  min-width: 600px;
  width: min-content;
  border-right: 1px lightgray solid;
}

ol {
  width: 400px;
  list-style-type: decimal-leading-zero;
}

ol li {
  cursor: pointer;

  &.playing {
    font-style: italic;
  }

  heb {
    display: none;
  }

  &:hover {
    heb {
      display: unset;
    }

    eng {
      display: none;
    }
  }

  &:nth-child(odd) {
    position: relative;

    &::before {
      position: absolute;
      content: '';
      display: block;
      width: 2rem;
      background-color: #f0f0f0;
      top: 0;
      left: -2rem;
      height: 1lh;
      z-index: -10;
    }

    background-color: #f0f0f0;
  }
}

footer {
  background-color: white;
  position: sticky;
  bottom: 0;
  border-top: 1px solid lightgray;
  padding: 0.5rem;
  text-align: center;
}

main {
  overflow: none;
  display: flex;
  flex-direction: column;
  overflow-y: scroll;
  flex-grow: 1;
  height: 100%;
}

audio {
  margin-top: 1rem;
}

a {
  color: inherit;
  text-decoration: underline;

  &:hover {
    font-style: oblique;
    cursor: pointer;
  }
}

#lyrics {
  flex-grow: 1;

  section:not(.playing) {
    display: none;
  }

  section {
    display: grid;
    grid-template-columns: 1fr 1fr;
    grid-template-rows: 1fr;
    grid-column-gap: 0;
    height: 100%;
  }

  eng,
  heb {
    display: block;
    height: calc(100% - 4rem);
    padding: 2rem 4rem;

    pre {
      font-size: large;
      white-space: pre-line;
    }
  }

  eng {
    border-right: 1px lightgray solid;
  }

  p {
    font-family: monospace;
    font-size: large;
    margin: 0;
    word-break: keep-all;

    &::before {
      content: '';
      margin-left: 4ch;
    }
  }
}

h3 {
  margin-top: 0;
}

p {
  text-align: justify;
}