* {
  margin: 0;
  padding: 0;
}

html {
  background: #fff;
  height: 100%;
  font-size: 5vh;
}

body {
  margin: 0 auto;
  text-align: center;
  width: 100%;
  height: 100%;
  color: #ffffff;
  /*
  background-color: #eac634;
  background-image: url(../assets/bg-pattern.png);
  */
  background-color: #e44e35;
  background-image: url(../assets/main-bg.png);
  background-position: center;
}
body,
input {
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica,
    Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol';
}

::placeholder {
  color: rgba(0, 0, 0, 0.07);
  opacity: 1;
}
:-ms-input-placeholder {
  color: rgba(0, 0, 0, 0.07);
}
::-ms-input-placeholder {
  color: rgba(0, 0, 0, 0.07);
}

a {
  text-decoration: none;
}

li,
ul,
ol {
  list-style-type: none;
  padding: 0;
  margin: 0;
}

img {
  max-width: 100%;
  height: auto;
}

button,
input[type='submit'] {
  border: 0;
  outline: none;
}

.hide {
  display: none;
}

.clear {
  clear: both;
}

/* Content
   ------------------------------------------------------------------------- */
#canvas,
#sky {
  position: fixed;
  left: 0;
  top: 0;
  right: 0;
  bottom: 0;
  margin: auto;
}
#sky {
  z-index: 5;
}

main {
  height: 100vh;
  margin: 0 auto;
  position: relative;
}

/* Elements
   ------------------------------------------------------------------------- */

section.screen,
section.modal {
  width: 100%;
  height: 100%;
}

section.modal {
  position: absolute;
  top: 0;
  margin: 0 auto;
}

section.modal .inner {
  position: absolute;
  width: 100%;
  height: 100%;
  top: 0;
  bottom: 0;
  background-image: url(../assets/bg-pattern.png);
  background-size: cover;
  background-repeat: repeat;
  line-height: 1;
}

.bt-img {
  width: 70%;
  height: 2.5rem;
  background-color: transparent;
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  color: transparent;
  cursor: pointer;
}

form.disabled input {
  opacity: 0.5;
}

.controls {
  position: absolute;
  top: 0.2rem;
  right: 0.26rem;
  line-height: 1;
  font-size: initial;
  z-index: 55;
}
.controls .bt {
  padding: 0.1rem;
}
.controls .bt.mute {
  background-image: url(../assets/ic-mute-off.png);
  background-size: contain;
  width: 42px;
  height: 42px;
  color: transparent;
  background-color: transparent;
  border: 0;
  outline: 0;
}
.controls .bt.mute.mute-on {
  background-image: url(../assets/ic-mute.png);
}
.controls .bt.mute:hover {
  cursor: pointer;
}

/* Buttons
   ------------------------------------------------------------------------- */
button.start {
  background-image: url(../assets/bt-start.png);
}
button.start:hover {
  background-image: url(../assets/bt-start-h.png);
}

button.retry {
  background-image: url(../assets/bt-retry.png);
}
button.retry:hover {
  background-image: url(../assets/bt-retry-h.png);
}

form input.highscore-submit {
  background-image: url(../assets/bt-highscore.png);
}
form.enabled input.highscore-submit:hover {
  background-image: url(../assets/bt-highscore-h.png);
}

/* Screens
   ------------------------------------------------------------------------- */
/* Screen Loading
   ------------------------------------------------------------------------- */
.loading {
  background-image: url(../assets/bg-pattern.png);
  background-size: cover;
  background-repeat: repeat;
}

.loading .inner {
  width: 60%;
  margin: 0 auto;
}

.loading .vignette {
  width: 60%;
  margin: 3rem auto 1rem;
}

.loading .title {
  font-size: 2rem;
}

.loading .text {
  font-size: 0.7rem;
}

.loading .bar {
  box-sizing: border-box;
  width: 100%;
  border: 3px solid rgb(255, 255, 255);
  border-radius: 0.5rem;
  margin: 0.1rem 0;
}

.loading .bar .sub {
  height: 0.5rem;
  width: 100%;
  margin: auto 0;
}

.loading .bar .percent {
  height: 100%;
  width: 0;
  background-color: rgb(255, 255, 255);
  border-radius: 0.6rem;
}

/* Screen Landing
   ------------------------------------------------------------------------- */

.landing .title {
  width: 60%;
}

.landing .logo {
  width: 30%;
  position: absolute;
  right: 0.2rem;
  top: 0.2rem;
}

.landing .action-2 {
  position: absolute;
  bottom: 2vh;
  width: 100%;
}
.landing .action-3 {
  /*border: 1px solid #f00;*/
  position: absolute;
  display: block;
  bottom: 20vh;
  height: 30vh;
  width: 80%;
  margin: 0 10%;
  cursor: pointer;
}

/* Modals
   ------------------------------------------------------------------------- */
.modal .modal-title {
  width: 80%;
  margin: auto 0;
  margin-top: 0.85rem;
}
.modal .tip {
  font-size: 0.7rem;
  line-height: 1.2;
  width: 92%;
  margin: 0 auto;
  margin-bottom: 0.4rem;
}

.modal button {
  width: 70%;
  margin: 0.1rem auto 0;
}
.modal input {
  display: block;
  margin: 0 auto;
}

/* Modal Game Over
   ------------------------------------------------------------------------- */
.gameover .modal-title {
  margin-bottom: 0.65rem;
}
.gameover .panel-retry,
.gameover .panel-set-highscore {
  margin-bottom: 0.4rem;
}

.gameover .score-title {
  font-size: 1rem;
  margin-bottom: 0.1rem;
}
.gameover .score {
  font-size: 2.75rem;
  margin-bottom: 0.4rem;
}

.gameover .highscore-name {
  width: 60%;
  font-size: 1.5rem;
  font-weight: bold;
  text-transform: uppercase;
  text-align: center;
  background: rgba(255, 255, 255, 0.5);
  border: 0;
  border-radius: 0.3rem;
  outline: 0;
  margin-bottom: 0.25rem;
}
.gameover .highscore-name:focus {
  background: rgba(255, 255, 255, 0.8);
}

.gameover .panel-greetings {
  position: absolute;
  bottom: 0;
  width: 100%;
  height: 5.3rem;
  background-image: url(../assets/greetings.png);
  background-repeat: no-repeat;
  background-position: center bottom;
  background-size: contain;
}

/* Modal Highscores
   ------------------------------------------------------------------------- */

.highscores table {
  width: 80%;
  margin: 0 auto;
  border-collapse: collapse;
  font-size: 0.8rem;
  box-sizing: border-box;
}
.highscores table th {
  font-family: sans-serif;
  font-size: 0.3rem;
  text-transform: uppercase;
  letter-spacing: 0.15em;
  padding: 0.15rem;
  border-bottom: 1px solid rgb(255, 255, 255);
}

.highscores table td {
  font-family: 'Lato Black', sans-serif;
  line-height: 1.05;
  font-size: 0.75rem;
  padding: 0.1rem;
}
.highscores table tbody tr:first-child td {
  padding-top: 0.25rem;
}

.panel-highscores {
  margin-bottom: 0.15rem;
}
.panel-highscores .buttons {
  margin-bottom: 0.4rem;
}
.panel-highscores button {
  font-family: 'Lato', sans-serif;
  text-transform: uppercase;
  width: auto;
  border-radius: 2rem;
  font-size: 0.4rem;
  font-weight: 700;
  padding: 0.2rem 0.6rem;
  margin: 0 0.05rem;
  color: rgb(255, 255, 255);
  background-color: transparent;
  border: 1px solid rgb(255, 255, 255);
}

.panel-highscores button.disabled {
  color: rgb(33, 37, 41);
  background-color: rgb(255, 255, 255);
  border: 1px solid rgb(255, 255, 255);
}

/* Effect Slide
   ------------------------------------------------------------------------- */

.slideTop {
  -webkit-animation: st 1s ease-in-out;
  animation: st 1s ease-in-out;
}

@-webkit-keyframes st {
  0% {
    transform: translateZ(0);
  }
  100% {
    transform: translate3d(0, -100%, 0);
  }
}

@keyframes st {
  0% {
    transform: translateZ(0);
  }
  100% {
    transform: translate3d(0, -100%, 0);
  }
}

.slideBottom {
  -webkit-animation: sb 1s ease-in-out;
  animation: sb 1s ease-in-out;
}

@-webkit-keyframes sb {
  0% {
    transform: translateZ(0);
  }
  100% {
    transform: translate3d(0, 200%, 0);
  }
}

@keyframes sb {
  0% {
    transform: translateZ(0);
  }
  100% {
    transform: translate3d(0, 200%, 0);
  }
}

.slideRight {
  -webkit-animation: sr 1s ease-in-out;
  animation: sr 1s ease-in-out;
}

@-webkit-keyframes sr {
  0% {
    transform: translateZ(0);
  }
  100% {
    transform: translate3d(100%, 0, 0);
  }
}

@keyframes sr {
  0% {
    transform: translateZ(0);
  }
  100% {
    transform: translate3d(0, 200%, 0);
  }
}

.swing {
  -webkit-animation: sw 2s ease-in-out alternate infinite;
  animation: sw 2s ease-in-out alternate infinite;
}

@-webkit-keyframes sw {
  0% {
    transform: rotate(5deg);
    transform-origin: top center;
  }
  100% {
    transform: rotate(-5deg);
    transform-origin: top center;
  }
}

@keyframes sw {
  0% {
    transform: rotate(5deg);
    transform-origin: top center;
  }
  100% {
    transform: rotate(-5deg);
    transform-origin: top center;
  }
}
