*,
*:before,
*:after {
  box-sizing: border-box;
  font-family: 'Playfair Display', serif;
}

body {
  margin: 0;
  background: ghostwhite;
}

.hidden {
  display: none;
}

/* ~~~~~~~~~~~~~~ CONTROLS ~~~~~~~~~~~~~~~~ */
.controls {
  background: #7e5496;
  display: flex;
  justify-content: center;
  padding: 10px 0;
}

.controls > button {
  background: white;
  border: none;
  border-radius: 5px;
  color: purple;
  font-size: 16px;
  margin: 10px;
  padding: 10px 20px;
}

.controls > button:hover {
  background: #e07999;
  color: white;
}

/* ~~~~~~~~~~~~~~ HOME ~~~~~~~~~~~~~~~~ */
.main-cover {
  height: 80vh;
  margin: 4vh auto;
  position: relative;
  width: 26vw;
}

.cover-image,
.overlay {
  object-fit: cover;
  height: 100%;
  width: 100%;
}

.cover-title,
.tagline {
  text-align: center;
  color: #f4ebcd;
  position: absolute;
  width: 100%;
}

.cover-title {
  bottom: .9em;
  font-family: 'Playball', cursive;
  font-size: 4.5em;
  font-weight: normal;
  line-height: 90%;
  margin: 0;
  padding: 0.1em;
}

.cover-title::first-letter {
  font-size: 100px;
}

.tagline {
  background: rgba(126, 84, 150, .5);
  color: #fcf4dc;
  padding: 5px;
  bottom: 5px;
}

.price-tag {
  position: absolute;
  top: 10px;
  width: 22%;
  right: 15px;
  transform: rotate(10deg);
}

.overlay {
  position: absolute;
  top: 0;
  filter: opacity(65%);
  mix-blend-mode: screen;
}

/* ~~~~~~~~~~~~~ SAVED COVERS ~~~~~~~~~~~~~~~ */
.saved-view {
  padding: 30px;
}

.saved-covers-section {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  justify-content: space-around;
}

.mini-cover {
  height: 40vh;
  margin: 1.3vh auto;
  position: relative;
  width: 14vw;
}

.mini-cover > .cover-title {
  bottom: 45px;
  font-size: 40px;
}

.mini-cover > .cover-title::first-letter {
  font-size: 60px;
}

.mini-cover > .tagline {
  background: RGBA(126, 84, 150, .5);
  bottom: 5px;
  color: #fcf4dc;
  font-size: 10px;
  padding: 5px;
}

/* ~~~~~~~~~~~~~ NEW COVER FORM ~~~~~~~~~~~~~~~ */
form {
  display: flex;
  flex-direction: column;
  align-items: center;
  margin: 30px;
}

form > label,
form > input {
  width: 50%;
}

form > input {
  font-size: 16px;
  margin-bottom: 20px;
}

form > button {
  background: purple;
  border: none;
  border-radius: 5px;
  color: white;
  font-size: 16px;
  margin: 10px;
  padding: 10px 20px;
}

form > button:hover {
  background: #e07999;
  color: white;
}
