html {
  height: 100%;
  width: 100%;
  font-family: Verdana, sans-serif;
}

body {
  transition: background-color 300ms;
  margin: 0px;
}

img {
  image-rendering: pixelated;
}

#topBar {
  position: sticky;
  top: 0;
  left: 0;
  z-index: 3;
}

#levelBar {
  width: 100%;
  height: 13vh;
  background-color: #5cc;
  transition: background-color 500ms;
  z-index: 2;
  background-image: linear-gradient(to right, rgba(0,0,0,0.4), rgba(0,0,0,0) 35%, rgba(0,0,0,0) 65%, rgba(0,0,0,0.4) 100%);
}

/* This one thing above, if made it work properly, it breaks everything. Now it doesn't */
#levelBarText {
  text-align: center;
  color: white;
  margin: 0;
  font-size: 6vh;
  line-height: 8vh;
  z-index: 2;
}

#levelBarRankText {
  text-align: center;
  color: white;
  margin: 0;
  font-size: 3vh;
  line-height: 4vh;
  z-index: 2;
}

#XPBar {
  position: relative;
  width: 100%;
  height: 5vh;
  background-color: black;
  z-index: 2;
}

#XPBarBack {
  position: absolute;
  top: 0;
  left: 0;
  width: 0%;
  height: 100%;
  background-color: #0b0;
  transition: 500ms ease-out;
  z-index: 2;
}

#XPBarText {
  text-align: center;
  color: white;
  text-shadow: 0.3vh 0.3vh black;
  margin: 0;
  font-size: 3.5vh;
  line-height: 5vh;
  position: relative;
  z-index: 2;
}

#nextUnlockLevel {
  font-size: 2vh;
  line-height: 2vh;
  margin: 0;
  z-index: 2;
}

#selectedPetText {
  text-align: right;
  font-size: 2vh;
  line-height: 2.5vh;
  margin: 0;
  display: none;
  z-index: 2;
}

#mainContainer {
  display: flex;
  justify-content: space-between;
}

#tabsContainer {
  position: sticky;
  top: 19vh;
  left: 0;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  align-self: flex-start;
  gap: 10px;
  margin-left: 8px;
  flex-basis: 25%;
  z-index: 1;
}

#buttonsContainer {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 20px;
  margin-top: 40px;
  margin-bottom: 100px;
  z-index: 1;
}

#infosContainer {
  position: sticky;
  top: 18vh;
  left: 0;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  align-self: flex-start;
  flex-basis: 25%;
}

#footerContainer {
  display: flex;
  justify-content: space-between;
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
}

#leftFooterColumn {
  display: flex;
  flex-direction: column-reverse;
  align-items: flex-start;
  gap: 10px;
  margin-left: 8px;
  margin-bottom: 8px;
}

#rightFooterColumn {
  display: flex;
  flex-direction: column-reverse;
  align-items: flex-end;
  gap: 10px;
  margin-right: 8px;
  margin-bottom: 8px;
}

#settingsContainer {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 5px;
}

.button {
  min-width: 4vh;
  padding-left: 1vh;
  padding-right: 1vh;
  border-radius: 2vh;
  font-family: Verdana, sans-serif;
  font-size: 3vh;
  transition: background-color 300ms ease-out, color 300ms ease-out, border 300ms ease-out;
}

/* flickering animation is defined in each theme css file */
.button.flickering {
  animation-name: flickering;
  animation-iteration-count: infinite;
  animation-duration: 300ms;
  animation-direction: alternate;
}

.button:hover {
  cursor: pointer;
}

.button:disabled {
  cursor: default;
}

#dailyRewardButton {
  display: none;
  z-index: 2;
}

#dailyRewardDiv {
  position: fixed;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: 12;
  width: 60%;
  max-width: 60vh;
  height: 60vh;
  background-color: #444;
  display: none;
  border: 0.8vh outset #555;
  text-align: center;
}

.modalHeader {
  margin-bottom: 20px;
}

#dailyRewardRarities, #enemiesFightChances {
  position: fixed;
  text-align: right;
  top: 80px;
  right: 0.5vh;
  font-size: 2vh;
  line-height: 2.5vh;
  margin: 0;
  color: #ccc;
}

#claimDailyRewardButton {
  font-size: 2vh;
}

.modalBoxes {
  display: flex;
  width: 100%;
  position: absolute;
  bottom: 0;
}

.dayBox {
  width: 25%;
  height: auto;
  aspect-ratio: 1 / 1;
  background-color: #666;
  border: 1vh outset #777;
  text-align: center;
  color: white;
  font-size: 3vmin;
  z-index: 2;
}

.crateName {
  font-size: 1.5vmin;
}

#petsDiv {
  position: fixed;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: 10;
  width: 70%;
  height: 70%;
  background-color: #444;
  display: none;
  border: 0.8vh outset #555;
}

#petsUnboxDiv {
  position: fixed;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: 10;
  width: 70%;
  height: 70%;
  background-color: #444;
  display: none;
  border: 0.8vh outset #555;
}

.closeButton {
  position: fixed;
  top: 4px;
  right: 4px;
  height: 30px;
  font-size: 16px;
  background-color: #ccc;
  border: 2px solid #222;
  border-radius: 15px;
  padding-left: 6px;
  padding-right: 6px;
  z-index: 20;
}

#petsCloseButton:hover {
  cursor: pointer;
}

#petsList {
  position: relative;
  margin: 0;
  width: 60%;
  height: 60vh;
  overflow-y: scroll;
}

#petsListInner {
  position: absolute;
  top: 0;
  left: 0;
}

#petInfo {
  position: fixed;
  top: 0;
  right: 0;
  width: 40%;
  height: 100%;
  background-color: #666;
  background-image: url('img/halftoneDots.png')
}

#petsUnboxCloseButton:hover {
  cursor: pointer;
}

#petsUnboxList {
  position: relative;
  margin: 0;
  width: 60%;
  height: 60vh;
  overflow-y: scroll;
}

#petsUnboxListInner {
  position: absolute;
  top: 0;
  left: 0;
}

#petUnboxInfo {
  position: fixed;
  top: 0;
  right: 0;
  width: 40%;
  height: 100%;
  background-color: #666;
  background-image: url('img/halftoneDots.png')
}

#themeDiv {
  z-index: 2;
}

.themeButton {
  height: 2.5vh;
  font-size: 1.5vh;
  z-index: 2;
}

#versionText {
  margin: 0;
  line-height: 2vh;
  font-size: 2vh;
  z-index: 2;
}

.settingsButton {
  height: 2.2vh;
  font-size: 1.5vh;
  line-height: 1.5vh;
  background-color: #bbb;
  border: 3px solid #666;
  z-index: 2;
}

.settingsButton:hover {
  cursor: pointer;
}

#enemiesDiv {
  position: fixed;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: 10;
  width: 70%;
  height: 70%;
  background-color: #444;
  display: none;
  border: 0.8vh outset #555;
}

#enemiesCloseButton:hover {
  cursor: pointer;
}

#enemiesList {
  position: relative;
  margin: 0;
  width: 60%;
  height: 60vh;
  overflow-y: scroll;
}

#enemiesListInner {
  position: absolute;
  top: 0;
  left: 0;
}

#enemiesInfo {
  position: fixed;
  top: 0;
  right: 0;
  width: 40%;
  height: 100%;
  background-color: #666;
  background-image: url('img/halftoneDots.png')
}

#artifactsDiv {
  position: fixed;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: 10;
  width: 70%;
  height: 70%;
  background-color: #444;
  display: none;
  border: 0.8vh outset #555;
}

#artifactsCloseButton:hover {
  cursor: pointer;
}

#artifactsList {
  position: relative;
  margin: 0;
  width: 60%;
  height: 60vh;
  overflow-y: scroll;
}

#artifactsListInner {
  position: absolute;
  top: 0;
  left: 0;
}

#artifactsInfo {
  position: fixed;
  top: 0;
  right: 0;
  width: 40%;
  height: 100%;
  background-color: #666;
  background-image: url('img/halftoneDots.png')
}

#fightingDiv {
  position: fixed;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: 12;
  width: 60%;
  max-width: 60vh;
  height: 80vh;
  background-color: #444;
  display: none;
  border: 0.8vh outset #555;
  text-align: center;
}

.modalActionButtons {
  position: absolute;
  bottom: 16vh;
  z-index: 2;
  display: flex;
  flex-direction: column-reverse;
  align-items: center;
  gap: 5px;
  text-align: center;
  width: 100%;
  font-size: 2vh;
}

#fight2Button {
  display: none;
}

#fight3Button {
  display: none;
}

#fight4Button {
  display: none;
}

#fight5Button {
  display: none;
}

#statsDisplay {
  text-align: left;
  font-size: 20px;
  font-weight: bold;
}

.dropBox {
  width: 25%;
  height: auto;
  aspect-ratio: 1 / 1;
  background-color: #666;
  border: 1vh outset #777;
  text-align: center;
  color: white;
  font-size: 3vmin;
  z-index: 2;
}

#shopDiv {
  position: fixed;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: 10;
  width: 70%;
  height: 70%;
  background-color: #444;
  display: none;
  border: 0.8vh outset #555;
}

#shopCloseButton:hover {
  cursor: pointer;
}

#shopList {
  position: relative;
  margin: 0;
  width: 60%;
  height: 60vh;
  overflow-y: scroll;
}

#shopListInner {
  position: absolute;
  top: 0;
  left: 0;
}

#shopInfo {
  position: fixed;
  top: 0;
  right: 0;
  width: 40%;
  height: 100%;
  background-color: #666;
  background-image: url('img/halftoneDots.png')
}

#dailyMessagesDiv {
  position: fixed;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: 100;
  width: 40%;
  background-color: #444;
  display: none;
  border: 0.8vh outset #555;
  background-image: url('img/halftoneDots.png');
  padding-bottom: 20px;
}

.closeDailyMessage {
  position: absolute;
  top: 0px;
  right: 0px;
  width: 36px;
  height: 36px;
  color: red;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 32px;
  padding: 0px;
  border-radius: 0px;
  background-color: #2e2e2e;
  z-index: 5;
}

.modalContent {
  display: flex;
  align-items: center;
  justify-content: space-around;
  flex-direction: column;
}

.equipPet {
  position: relative;
  top: 87%;
  height: 42px;
  color: green;
  font-size: 35px;
  border-radius: 0px;
  background-color: #2e2e2e;
  z-index: 5;
  display: none;
}

#messageInfo {
  z-index: 3;
}

/* Responsive stuff */
@media (width <= 1120px) {
  #tabsContainer .button {
    font-size: 26px;
  }
}

@media (width <= 960px) {
  #tabsContainer .button {
    font-size: 18px;
  }
}

@media (width <= 780px) {
  #tabsContainer .button {
    font-size: 16px;
  }
}

@media (width <= 720px) {
  #tabsContainer {
    flex-basis: 65%;
  }

  #buttonsContainer .button {
    font-size: 18px;
  }

  #selectedPetText {
    font-size: 10px;
  }

  #nextUnlockLevel {
    font-size: 12px;
    line-height: normal;
  }

  #versionText {
    line-height: 1vh;
    font-size: 1vh;
  }

  #buttonsContainer {
    margin-bottom: 200px;
  }

  .modalBoxes {
    flex-wrap: wrap;
    justify-content: center;
  }

  .dayBox, .dropBox {
    width: 35%;
    font-size: 3vh;
  }

  .modalActionButtons {
    bottom: 49vw;
  }

  .modalActionButtons .button {
    font-size: 14px;
  }

  #statsDisplay {
    font-size: 14px;
  }

  .crateName {
    font-size: 1.5vh;
  }

  #dailyRewardRarities, #enemiesFightChances {
    font-size: 14px;
    line-height: normal;
  }
}

@media (width <= 610px) {
  #selectedPetUpperText {
    display: none;
  }

  #selectedPetImg {
    margin-top: 8px;
  }
}

@media (width <= 550px) {
  .dayBox, .dropBox {
    width: 40%;
  }

  #XPBarText {
    font-size: 2vh;
    text-shadow: 0.15vh 0.15vh black;
  }

  .modalActionButtons {
    bottom: 59vw;
  }

  @media (height >= 760px) {
    .dayBox, .dropBox {
      font-size: 2vh;
    }

    .crateName {
      font-size: 1.2vh;
    }
  }
}

@media (width <= 400px) {
  #tabsContainer .button {
    font-size: 14px;
  }
}
