:root {
@media screen and (min-width: 430px) {
  --cover-width: 200px;
  --cover-height: 300px;
}
@media screen and (max-width: 430px) {
  --cover-width: 150px;
  --cover-height: 225px;
}
}

.bookshelf {
  display: flex;
  align-content: flex-start;
@media screen and (min-width: 430px) {
  justify-content: space-around;
}
@media screen and (max-width: 430px) {
  justify-content: space-evenly;
}
  flex-wrap: wrap;
  font-size: small;
  column-gap: 10px;
  row-gap: 15px;
}

.dirty-hack {
  width: var(--cover-width);
  height: 0;
}

.book {
  color: var(--white);
  font-weight: normal;
  width: var(--cover-width);
}

.book .title {
  font-weight: bold;
  width: var(--cover-width);
}

.book .authors {
  font-style: italic;
  width: var(--cover-width);
}

.review, .tags, .links {
  display: none;
}

.cover-container {
  position: relative;
  width: var(--cover-width);
  height: var(--cover-height);
  display: flex;
  margin-bottom: 5px;
}

.book .cover {
  margin: auto;
  width: var(--cover-width);
  height: var(--cover-height);
  overflow: hidden;
  background: var(--black);
  outline: 3px solid var(--black);
  cursor: pointer;
}

.book .cover img {
  margin: auto;
  height: var(--cover-height);
  position: relative;
  left: 50%;
  transform: translateX(-50%);
}

.subcontainer-l {
  position: absolute;
  top: 0px;
  left: 0px;
  display: flex;
  font-size: 125%;
  background: var(--black);
}

.subcontainer-r {
  position: absolute;
  top: 0px;
  right: 0px;
  display: flex;
  font-size: 125%;
  background: var(--black);
}

h2 {
  padding-bottom: 15px;
}

#controls {
  text-align: center;
  display: flex;
  justify-content: center;
  gap: 15px;
  flex-wrap: wrap;
}

#details-panel {
  position: fixed;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
  background-color: hsla(240, 10%, 5%, 0.95);
  color: var(--white);
  z-index: 1;
  padding: 25px;
  overflow-y: scroll;
  overflow-x: hidden;
}

#details-info {
  color: gray;
}
#details-info div {
  display: inline;
}
#details-info div + div::before{
  content: " · ";
  font-weight: bold;
}

@media screen and (min-width: 651px) {
  #details-flex {
    margin-top: 50px;
    align-items: stretch;
    display: flex;
    justify-content: center;
  }

  #details-cover-info {
    padding: 20px;
    height: 300px;
    width: 400px;
    padding-left: 40px;
  }

  #details-review {
    padding: 20px;
    text-align: justify;
    flex: 2;
  }
}
@media screen and (max-width: 650px) {
  #details-flex {
    align-items: center;
    display: flex;
    flex-direction: column;
    justify-content: center;
  }

  #details-cover {
    padding: 20px;
    height: 50%;
  }

  #details-review {
    padding: 20px;
    text-align: center;
    width: 80%;
  }
}
