@font-face {
  font-family: 'Exo 2';
  src: url('./fonts/Exo2-ExtraLight.ttf');
  font-weight: 200;
}

@font-face {
  font-family: 'Exo 2';
  src: url('./fonts/Exo2-Regular.ttf');
  font-weight: 400;
}

@font-face {
  font-family: 'Exo 2';
  src: url('./fonts/Exo2-SemiBold.ttf');
  font-weight: 600;
}

@font-face {
  font-family: 'Exo 2';
  src: url('./fonts/Exo2-ExtraBold.ttf');
  font-weight: 800;
}

body {
  font-family: 'Exo 2', sans-serif;
  background-color: #222;
  margin: 0;
  padding: 0;
  overflow: hidden;
  user-select: none;
  -moz-user-select: none;
}

#game-wrapper {
  overflow: hidden;
  background-color: #444;
}

#game {
  background-color: #444;
  width: 100%;
}

#player-canvas {
  height: 100%;
  z-index: 4;
}

#text {
  width: 400px;
  height: 360px;
  padding: 20px;
  text-align: center;
  color: white;
  z-index: 4;
}

#title {
  font-size: 72px;
  margin-top: 10px;
  animation-name: glow;
  animation-duration: 2s;
  animation-direction: alternate;
  animation-iteration-count: infinite;
  animation-timing-function: ease-in-out;
}

@keyframes glow {
  from {text-shadow: 0 0 20px rgba(255,255,255,1)}
  to {text-shadow: 0 0 20px rgba(255,255,255,.5)}
}

#tagline {
  font-size: 30px;
  font-weight: 100;
  text-shadow: 1px 1px 3px #333;
  margin-top: 10px;
  width: 400px;
}

#buttons {
  margin-top: 50px;
  width: 100%;
}

#buttons div {
  background-color: rgb(57,57,57);
  box-shadow: inset 1px 1px 5px rgba(0,0,0,0.6);
  text-shadow: 1px 1px 2px rgba(0,0,0,.7);
  border: 2px solid white;
  border-image: linear-gradient(90deg,
                                tomato,
                                yellow,
                                limegreen,
                                cyan,
                                blueviolet) 1;
  margin: 12px auto 12px auto;
  width: 280px;
  height: 38px;
  line-height: 38px;
  font-size: 24px;
}

#buttons .active {
  background-color: white;
  color: #333;
  text-shadow: none;
}

#stats {
  color: white;
  background-color: rgba(150,150,150,0.4);
  position: absolute;
  padding: 10px 20px 5px 12px;
  margin: 15px;
  border-radius: 10px;
  display: none;
  z-index: 6;
}

#stats h3 {
  font-size: 22px;
  text-shadow: 0 0 10px white;
  margin: 0 0 8px 0;
  font-weight: 400;
}

#heart {
  display: none;
  width: 21px;
  height: 21px;
}

#start {
  position: absolute;
  bottom: 30px;
  left: 50%;
  transform: translate(-50%,0);
}

#credit {
  color: white;
  font-size: 20px;
  font-weight: 100;
  position: absolute;
  right: 0;
  bottom: 0;
  margin: 10px;
  text-shadow: 1px 1px 1px black;
  opacity: 0.5;
}

#gameover {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  text-align: center;
  width: 600px;
  height: 350px;
  background-color: rgba(30,30,30,0.9);
  border-radius: 10px;
  border: 4px solid white;
  color: white;
  padding: 20px;
  z-index: 5;
}

#gameover div:nth-child(1) {
  font-size: 36px;
  font-weight: 100;
  line-height: 44px;
}

#gameover div:nth-child(2) {
  font-size: 45px;
  margin-top: 30px;
  text-shadow: 2px 2px 4px black;
}

#gameover div:nth-child(3) {
  font-size: 36px;
  background-color: #eee;
  color: #222;
  border-radius: 16px;
  padding: 2px 0 5px 0;
  margin-top: 12px;
  margin-bottom: 30px;
  width: 350px;
}

#gameover div:nth-child(4) {
  background: linear-gradient(90deg,
                              tomato,
                              tomato,
                              yellow,
                              limegreen,
                              cyan,
                              blueviolet,
                              blueviolet);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  font-size: 60px;
  font-weight: 600;
}

.overlay {
  display: none;
}

.centered, .centered-full, .centered-earth {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%,-50%);
}

#matte {
  background-color: #333;
  z-index: 2;
}

#gradient {
  z-index: 3;
  overflow: hidden;
}

#gradient div {
  width: 100%;
  height: 100%;
  background: radial-gradient(#aaa, #333);
  filter: blur(5px);
}

#howto {
  z-index: 4;
  height: 768px;
  width: 1365px;
}

#howto-title {
  color: white;
  font-size: 66px;
  font-weight: 600;
  text-shadow: 0 0 15px #ccc;
  text-align: center;
  padding-top: 12px;
}

.footer {
  color: #111;
  text-shadow: 0 0 5px #ddd;
  font-size: 28px;
  font-weight: 400;
  position: absolute;
  left: 50%;
  bottom: 20px;
  transform: translate(-50%,0);
}

#screenshots {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  width: 1200px;
  position: absolute;
  top: 53%;
  left: 50%;
  transform: translate(-50%, -50%);
}

.screenshot {
  width: 360px;
  height: 270px;
  margin: 15px;
  border-radius: 15px;
  box-shadow: 3px 3px 0 black;
  overflow: hidden;
  background-color: #444;
  position: relative;
}

.screenshot img {
  width: 100%;
  height: 100%;
}

.screenshot .caption {
  background: linear-gradient(
    90deg,
    rgba(120,120,120,0.9),
    rgba(50,50,50,0.5)
    );
  box-shadow: 0 -2px 8px rgba(0,0,0,0.5);
  color: white;
  width: 95%;
  position: absolute;
  left: 0;
  bottom: 0;
  padding: 10px;
  font-size: 18px;
}

.screenshot .number {
  color: white;
  text-shadow: 2px 2px 0 rgba(0,0,0,.75);
  width: 45px;
  height: 45px;
  position: absolute;
  top: 0;
  left: 0;
  text-align: center;
  font-size: 36px;
  font-weight: 600;
}
.screenshot:nth-child(1) .number {
  background-color: tomato;
}
.screenshot:nth-child(2) .number {
  background-color: yellow;
}
.screenshot:nth-child(3) .number {
  background-color: limegreen;
}
.screenshot:nth-child(4) .number {
  background-color: cyan;
}
.screenshot:nth-child(5) .number {
  background-color: blueviolet;
}
.screenshot:nth-child(6) .number {
  background-color: tomato;
}

.indicator {
  color: black;
  font-weight: 600;
  animation-name: indicate;
  animation-duration: .8s;
  animation-direction: alternate;
  animation-iteration-count: infinite;
  animation-timing-function: ease-in-out;
  padding: 0 10px 0 10px;
}

@keyframes indicate {
  from {margin: 0;}
  to {margin: 0 8px 0 8px;}
}

#debug {
  display: none;
  position: absolute;
  top: 0;
  right: 0;
  width: 250px;
  background: rgba(10,10,10,0.5);
  color: #ddd;
  font-size: 16px;
  font-family: Courier;
  padding: 15px;
  z-index: 10;
}

/* font-size, padding, bottom, border-radius
   are set in alignElements */
#help {
  font-weight: 100;
  text-align: center;
  background-color: rgba(28,28,28,0.8);
  color: white;
  position: absolute;
  left: 50%;
  transform: translate(-50%, 0);
  z-index: 10;
  opacity: 0;
}
