html, body {
  font-family: monospace;
  font-size: 1.2em;
  height: 100%;
  margin: 0;
  overflow: hidden;
  padding: 0;
  width: 100%;
}

button {
  background: #444;
  color: white;
  font-size: 1em;
}

button:hover {
  transform: scale(1.05);
}

button::-moz-focus-inner { border: 0; }
button:focus { outline: none; }

.hidden {
  display: none !important;
}

.inactiveCover {
  filter: brightness(50%) !important;
}

.inactiveCover * {
  animation-play-state: paused !important;
}

.playScreen {
  width: 100%;
  height: 100%;
}

.playScreen, .titleScreen {
  user-select: none;
  -webkit-user-select: none;
}

.modal {
  position: fixed;
  z-index: 3;
  padding-top: 100px;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  overflow: auto;
  background-color: rgba(0,0,0,0.4);
}

.modal > div {
  color: #fff;
  background-color: #777;
  margin: auto;
  padding: 20px;
  width: 80%;
}

.manual > div {
  background-color: #fff;
  color: #000;
  overflow-y: auto;
  height: 70%;
}

.modal > div > textarea {
  display: block;
  margin: 5px;
  width: 95%;
}

.manual > div > button {
  display: block;
  margin-top: 20px;
}


/* CUSTOMER */

.customerContainer {
  width: 550px;
  height: calc(100% - 170px);
  position: relative;
  display: inline-block;
  background: radial-gradient(circle, rgba(238, 174, 202, 0.3) 0%, rgba(68, 37, 148, 0.9) 100%);
}

.customer {
  transition: filter 1s;
}

.customer > * {
  left: 50%;
  transform: translateX(-50%);
  position: absolute;
  --head-top: 130px;
}

.head {
  top: var(--head-top);
  width: 240px;
  height: 270px;
  background: var(--skin-color);
  border-radius: 40%;
  z-index: 1;
}

.hair {
  top: var(--head-top);
  width: 240px;
  background: var(--skin-color);
  filter: invert(80%);
  height: 260px;
  border-radius: 80px;
}

.hair.long {
  height: 400px;
  border-radius: 50px 50px 90% 90%;
}

.ears {
  top: 245px;
  display: inline-block;
  background: var(--skin-color);
  width: 290px;
  height: 75px;
  border-radius: 20px 20px 50px 50px;
}

.neck {
  top: calc(var(--head-top) + 225px);
  width: 90px;
  height: 115px;
  border-radius: 36px;
  background: var(--skin-color);
  animation: breath 2s infinite alternate;
}

.spot {
  display: inline-block;
  width: 25px;
  height: 25px;
}

.back {
  cursor: grabbing;
  top: calc(var(--head-top) + 300px);
  border-radius: 90px;
  background: var(--skin-color);
  width: 300px;
  height: 500px;
  animation: breath 2s infinite alternate;
  overflow: hidden;
}

.inactiveCover .back {
  cursor: default;
}

.break {
  background: #fcf59b;
  filter: brightness(90%);
  transform: rotate(-5deg);
  border-bottom-right-radius: 70px 20px;
  border-top-left-radius: 5px 30px;
  color: #667;
  font-size: 3em;
  margin-left: 50px;
  mix-blend-mode: soft-light;
  padding: 50px;
  position: absolute;
  top: 50%;
  z-index: 2;
}

.break > p {
  transform: scale(-1, 1);
}

.backToWork {
  font-size: 0.8em;
  height: 30px;
  cursor: pointer;
  color: #00f900;
  animation: pulsation 1s infinite alternate !important;
}

.backToWork:after {
  content: '\00a0\00a0\21A9';
}

.takeBreak {
  background-image: linear-gradient(315deg, #a55c1b 0%, #000000 74%);
  bottom: 0;
  color: white;
  outline: 5px solid #000;
  padding: 10px;
  position: absolute;
  text-align: center;
  transform: rotate(5deg);
}

.takeBreak:hover {
  height: +10%;
  cursor: pointer;
}


/* HUD */

.hud {
  border: 10px solid #333;
}

.hudBar {
  height: 150px;
  bottom: 0;
  position: absolute;
  width: calc(100% - 20px);
  background: linear-gradient(45deg, #c0c0c0 0%, #ffffff 50%, #808080 100%);
}

#progressBar {
  margin: 10px;
  text-align: center;
  border: 5px solid #686868;
  background-color: #000;
}

#satisfyBar {
  height: 30px;
  box-shadow: 0 0 5px 5px green;
  background: linear-gradient(0deg, rgba(60, 255, 0, 1) 0%, rgba(0, 255, 166, 1) 50%, rgba(60, 255, 0, 1) 100%);
}

.hudBar > div:not(#progressBar) {
  background: black;
  border: 5px solid #686868;
  color: #00f900;
  display: inline-block;
  font-size: 24px;
  margin: 10px;
  padding: 5px;
}

.cmd {
  display: inline;
  width: 9em;
}

.cmd > span {
  animation: blink 1s step-end infinite;
}

.money:before {
  content: '$';
}


/* -- MENU */

.menu {
  cursor: pointer;
  left: 10px;
  position: absolute;
  top: 10px;
  z-index: 2;
  border-radius: 5px;
  padding: 3px;
  background: #999;
}

.menu > p, .showShop {
  display: inline-block;
  filter: drop-shadow(0px 0px 3px #000);
  font-size: 50px;
  margin: 5px;
}

.showShop {
  display: none;
}

.menu > .unwindMenu {
  display: none;
}

.menu > *:hover {
  transform: scale(1.05);
}

.backToTitle {
  filter: none !important;
}

.backToTitleConfirm > div {
  width: min-content;
  white-space: nowrap;
}

.backToTitleConfirm > div > button {
  display: initial !important;
}


/* -- MANAGEMENT */

.management {
  width: calc(100% - 560px);
  display: inline-block;
  height: calc(100% - 170px);
  float: right;
  border-left: 10px solid #333;
}

.tabs {
  background: #222;
}

.tabs > button {
  border: 10px solid #333;
  color: black;
  cursor: pointer;
  display: table-cell;
  height: 70px;
  font-size: 24px;
  font-weight: bold;
  letter-spacing: 3px;
  margin-bottom: -10px;
}

.tabs > button:hover {
  transform: initial;
}

.tabs > .current {
  border-bottom: 10px solid transparent;
}

.tabs > .close {
  display: none;
}

.management > div:not(.tabs) {
  border-top: 10px solid #333;
  overflow-y: auto;
  height: calc(100% - 70px);
  border-right: 10px solid #333;
}

.management > div:not(.tabs):not(.current) {
  display: none;
}

.management .powerUps {
  background: #f55;
}

.management .equipment {
  background: #7474ff;
}

.management .personnel {
  background: #4f8;
}

.item {
  width: 400px;
  position: relative;
  margin: 10px;
  height: 200px;
  display: inline-table;
  background-image: linear-gradient(315deg, #a38560 0%, #e0d4ae 74%);
}

.item > h1 {
  margin: 5px;
  text-decoration: underline;
}

.item > p {
  margin: 5px;
}

.item > .bottomRow {
  position: absolute;
  bottom: 0;
  margin: 20px;
}

.item > .bottomRow > * {
  display: inline;
  margin: 5px;
}

.price, :not(.personnel) > div > div > .amount {
  border: 3px solid #555;
  background: black;
  padding: 5px;
  color: #00f900;
}

.powerUps :not(#hands) > div > .amount:after {
  content: ' [+'attr(data-worth) ']';
}

.equipment .amount:after {
  content: ' (+ $'attr(data-worth) ')';
}

.price:before {
  content: '$';
}

.personnel .price:before {
  content: 'Wage: $';
}


/* TITLE SCREEN */

.titleScreen {
  text-align: center;
  overflow-x: hidden;
  overflow-y: auto;
  width: 100%;
  height: 100%;
  background-image: repeating-linear-gradient(45deg, #FFF 0 35px, #EEE 35px 70px);
}

.titleScreen button {
  background: none;
  text-shadow: 0px 0px 5px #b4e3ff;
  border: none;
  display: block;
  font-size: 3em;
  margin: 10px 15%;
  padding: 10px;
  animation: bri 3s infinite alternate;
  color: #000;
}

.titleScreen .menu {
  all: initial;
}

.titleScreen > .customer {
  --skin-color: #ffcb3a;
  position: absolute;
  right: 25%;
  top: 30%;
}

.newGameWarning {
  padding-top: 40vh;
}

.newGameWarning button {
  background: #444;
  color: white;
  display: inline;
  font-size: 1em;
}

#title {
  animation: pulsation 10s infinite alternate;
  filter: drop-shadow(0px 0px 10px #b4e3ff);
  font-size: 6em;
  margin: 100px;
}

#title > p {
  font-size: 0.3em;
}

#title a {
  color: #444;
}

#version {
  left: 10px;
  bottom: 0px;
  position: absolute
}


/* SETTINGS WINDOW */

.settingsWin label {
  display: block;
}

.settingsWin button {
  margin-top: 20px;
  padding: 10px;
  background: #555;
}


/* KEYFRAMES */

@keyframes breath {
  to {
    transform: translateX(-50%) scale(1.05);
  }
}

@keyframes pulsation {
  to {
    transform: scale(1.1);
  }
}

@keyframes blink {

  67% { opacity: 0 }

}

@keyframes bri {
  50% {
    text-shadow: 0px 0px 15px #005182;
  }
}


/* MOBILE */

@media (max-device-width: 1200px), (max-device-height: 890px) {

  * {
    animation: initial !important;
  }

  .hudBar > div {
    margin: 2px !important;
    font-size: 1em !important;
  }

  .cmd {
    width: initial;
  }

  .customer {
    transform: scale(.5);
  }

  .customerContainer {
    width: 100%;
  }

  .showShop {
    position: absolute;
    display: initial;
    right: 10px;
    background: #DDD;
    top: 5px;
    border-radius: 5px;
    padding: 3px;
  }

  .menu > p {
    font-size: 40px;
  }

  .menu > p:not(.unwindMenu) {
    display: none;
  }

  .menu > .unwindMenu {
    font-size: 45px;
    display: initial !important;
  }

  .break {
    top: 20%;
    font-size: 2em;
  }

  .backToTitleConfirm > div {
    width: initial;
    white-space: initial;
    text-align: center;
  }

  .backToTitleConfirm > div > button {
    margin: 5px;
  }

  .management {
    float: left;
    width: calc(100% - 10px);
  }

  .tabs > button {
    display: block;
    height: 50px;
    margin-bottom: -10px;
    width: 100%;
    border-left: none;
  }

  .tabs > button.current:before {
    content: '>';
  }

  .tabs > .close {
    color: #999;
    display: initial;
  }

  .management > div:not(.tabs) {
    height: calc(100% - 170px);
  }

  .management .item {
    width: calc(100% - 40px);
  }

  .titleScreen button {
    font-size: 1em;
  }

  .titleScreen > .customer {
    transform: scale(0.5);
    top: 50%;
  }

  #title {
    text-align: center;
    word-spacing: 100vw;
    font-size: 3em;
    margin: 40px auto;
  }

  #title > p {
    word-spacing: initial;
  }

}
