body,
html {
  height: 100%;
}
.viewport {
  position: relative;
}
.viewport > * {
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
}
.viewport > *:not(.active) {
  display: none;
}
body.stage > header {
  position: absolute;
  left: 0;
  top: 0;
  right: 0;
}
body.stage > article {
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
}
body.stage > footer {
  position: absolute;
  left: 0;
  bottom: 0;
  right: 0;
}
.panel {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-box-align: stretch;
  display: -moz-box;
  -moz-box-orient: vertical;
  -moz-box-align: stretch;
}
.panel > article {
  -webkit-box-flex: 1;
  -moz-box-flex: 1;
  box-flex: 1;
  overflow: auto;
  -webkit-overflow-scrolling: touch;
}
body {
  font-family: Montserrat, Helvetica Neue, Helvetica, Arial, sans-serif;
  overflow: hidden;
  -webkit-user-select: none;
  margin: 0;
  padding: 0;
  color: #fff;
}
* {
  -webkit-tap-highlight-color: rgba(0,0,0,0);
}
body.stage > header {
  display: none;
}
body.stage > article {
  bottom: 0em;
}
body.stage > footer {
  height: 5em;
  background: #00796b;
  display: none;
}
.panel > header {
  height: 40px;
  line-height: 40px;
}
.panel.startup > header {
  background: url("assets/logo.png") no-repeat;
  z-index: 3;
  height: 10em;
  position: absolute;
  left: 0;
  top: 0;
  right: 0;
  background-size: 23em;
}
.panel.startup > header h2 {
  margin: 0;
  padding: 0;
  text-align: center;
  color: #fffeff;
  text-shadow: 0 -1px 0 rgba(0,0,0,0.5);
  font-weight: normal;
}
.panel.startup > header button {
  position: absolute;
  left: 0;
  top: 0;
  color: #fff;
  text-shadow: 0 -1px 0 rgba(0,0,0,0.5);
  font-size: 13px;
  background: -webkit-gradient(linear, left top, left bottom, from(rgba(255,255,255,0.3)), color-stop(0.5, rgba(255,255,255,0.1)), color-stop(0.5, rgba(255,255,255,0))), #476b9d;
  -webkit-box-shadow: inset 0 -1px 1px rgba(0,0,0,0.3), inset 0 1px 1px 0 rgba(0,0,0,0.6), 0 1px 0 rgba(255,255,255,0.4);
  margin: 7px;
  padding: 5px 12px;
  border: 0;
  -moz-border-radius: 5px;
  -webkit-border-radius: 5px;
  border-radius: 5px;
}
.panel.startup > header button:active {
  -webkit-box-shadow: inset 0 -1px 1px rgba(0,0,0,0.3), inset 0 1px 1px 0 rgba(0,0,0,0.6), 0 1px 0 rgba(255,255,255,0.4), inset 0 0 20px rgba(255,255,255,0.2);
}
body {
  background: #000;
}
.startup article {
  background: #000 url("assets/animals-intro.png");
  background-repeat: no-repeat;
  background-size: 100%;
  background-position: 0 0;
}
.startup h1 {
  font-size: 3.9em;
  font-family: "Montserrat";
  font-weight: bold;
  text-align: center;
  margin: auto;
  margin-top: 3.9em;
  line-height: 1em;
  margin-bottom: 1.9em;
}
.startup .button {
  -moz-border-radius: 5px;
  -webkit-border-radius: 5px;
  border-radius: 5px;
  background-color: #dc611e;
  -moz-box-shadow: 0 0.23em #ba541c;
  -webkit-box-shadow: 0 0.23em #ba541c;
  box-shadow: 0 0.23em #ba541c;
  margin-top: 1em;
  font-family: "Montserrat";
  font-size: 2em;
  text-transform: uppercase;
  width: 8.2em;
  margin: 0 auto;
  text-align: center;
  font-weight: bold;
  line-height: 2.6em;
}
.animals ul {
  width: 55em;
  margin: 8em auto 0;
  padding: 0;
  font-size: 1.3em;
  font-weight: lighter;
}
.animals ul li {
  display: inline-block;
  background: url("assets/animals.png") no-repeat;
  background-size: 53em;
  width: 10.6em;
/* height: 12em; */
  font-size: 1em;
  text-align: center;
  padding-top: 11em;
}
.animals ul li:nth-child(1) {
  background-position-x: 0em;
}
.animals ul li:nth-child(2) {
  background-position-x: -10.7em;
}
.animals ul li:nth-child(3) {
  background-position-x: -21.4em;
}
.animals ul li:nth-child(4) {
  background-position-x: -32.1em;
}
.animals ul li:nth-child(5) {
  background-position-x: -42.9em;
}
.animals h2 {
  font-size: 1.23em;
  color: #dbdbdb;
  font-weight: lighter;
  text-align: center;
  margin-top: 3em;
}
.vision article {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  overflow: hidden;
}
.vision footer {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 7em;
  font-size: 1.26em;
  text-transform: uppercase;
  background: #000;
  height: 6em;
}
.vision footer nav {
  margin-top: -2.7em;
}
.vision footer nav .info {
  text-align: center;
  padding-left: 19.7em;
  padding-top: 4em;
  background: url("assets/info.png") no-repeat;
  background-position-x: 45%;
  background-size: 5em;
}
.vision footer nav .back {
  float: right;
  margin-right: 4.8em;
  display: block;
  margin-top: 4.1em;
}
.vision footer nav .restart {
  float: left;
  margin-left: 4.8em;
  display: block;
  margin-top: 4.1em;
}
.vision video,
.vision canvas,
.vision div.extra {
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  right: 0;
}
.vision header {
  z-index: 9;
  position: relative;
}
.vision header.camera >h2 {
  background-image: url("assets/camera.png");
  width: 4em;
  height: 4em;
  float: right;
  margin-right: 2em;
  background-size: 4em;
  margin-right: 5em;
  display: none;
}
.vision section {
  width: 24em;
  margin: 1em auto;
  background: #000;
  z-index: 26;
  display: block;
  position: relative;
  padding: 3em 10em 3em 18em;
  font-size: 1.2em;
  display: none;
  -moz-box-shadow: 0em 0.4em #333;
  -webkit-box-shadow: 0em 0.4em #333;
  box-shadow: 0em 0.4em #333;
  -moz-border-radius: 0.5em;
  -webkit-border-radius: 0.5em;
  border-radius: 0.5em;
}
.vision section .image {
  background: url("assets/animals.png") no-repeat;
  background-size: 53em;
  width: 10.6em;
  height: 10.6em;
  font-size: 1em;
  float: left;
  margin-left: -13.6em;
}
.vision section .image.image-0 {
  background-position-x: 0em;
}
.vision section .image.image-1 {
  background-position-x: -10.7em;
}
.vision section .image.image-2 {
  background-position-x: -21.4em;
}
.vision section .image.image-3 {
  background-position-x: -32.1em;
}
.vision section .image.image-4 {
  background-position-x: -42.9em;
}
.final.snake {
  -webkit-filter: hue-rotate(235deg) invert() grayscale(30%);
}
.final.dog {
  -webkit-filter: brightness(117%) hue-rotate(-91deg) contrast(86%) grayscale(80%);
}
.final.fish {
  -webkit-filter: contrast(182%) grayscale(100%);
}
.final.bird {
  -webkit-filter: brightness(107%) hue-rotate(-40deg) contrast(143%);
}
.final.bee {
  -webkit-filter: blur(0.5em) hue-rotate(235deg);
}
.extra.bee {
  background: url("assets/honeycomb.png");
  background-size: 12em;
  opacity: 0.04;
}
@media only screen and (min-width: 128px) {
  body {
    font-size: 0.1em;
  }
}
@media only screen and (min-width: 256px) {
  body {
    font-size: 0.2em;
  }
}
@media only screen and (min-width: 384px) {
  body {
    font-size: 0.3em;
  }
}
@media only screen and (min-width: 512px) {
  body {
    font-size: 0.4em;
  }
}
@media only screen and (min-width: 640px) {
  body {
    font-size: 0.5em;
  }
}
@media only screen and (min-width: 768px) {
  body {
    font-size: 0.6em;
  }
}
@media only screen and (min-width: 896px) {
  body {
    font-size: 0.7em;
  }
}
@media only screen and (min-width: 1024px) {
  body {
    font-size: 0.8em;
  }
}
@media only screen and (min-width: 1152px) {
  body {
    font-size: 0.9em;
  }
}
@media only screen and (min-width: 1280px) {
  body {
    font-size: 1em;
  }
}
@media only screen and (min-width: 1408px) {
  body {
    font-size: 1.1em;
  }
}
@media only screen and (min-width: 1536px) {
  body {
    font-size: 1.2em;
  }
}
@media (-webkit-min-device-pixel-ratio: 1.5), (min-resolution: 144dpi) {
  .panelx.startup > header {
    background-size: 19.15em 8.15em;
  }
}
