body {
  background: #000;
  font-family: sans-serif;
  margin: 0;
  position: relative;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  text-shadow: 0 0 1.25vmin black; }

body, button {
  color: white;
  font-weight: bolder;
  font-size: 3vmin;
  line-height: 4vmin; }

div, table {
  box-sizing: content-box; }

p {
  margin: 2vmin 1vmin; }

canvas {
  display: block;
  width: 100%;
  height: 100vh;
  position: relative;
  background-color: #111;
  outline: none;
  -webkit-touch-callout: none;
  -webkit-tap-highlight-color: none; }

button {
  background: linear-gradient(to bottom, white 0, #a4a4ff 50%, #2020c0 51%, #8080ff 100%);
  opacity: 0.8;
  padding: 0 2vmin;
  height: 7vmin;
  line-height: 6.4vmin;
  border-radius: 1.5vmin;
  border: 0.3vmin solid #338;
  cursor: pointer;
  transition: opacity 0.5s, box-shadow 0.5s; }
  button:hover {
    opacity: 1;
    box-shadow: 0 0 1vmin 0 rgba(255, 255, 255, 0.5); }
  button:disabled {
    background: #999; }
  button:focus {
    outline: 0 !important; }
  button::-moz-focus-inner {
    border: 0; }

.title {
  margin: 0 auto 5vmin;
  line-height: 10vmin;
  font-size: 9vmin;
  width: 70vmin;
  text-align: center;
  text-decoration: overline; }

.view {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  display: none; }
  .view.active {
    display: block; }

.content {
  position: absolute;
  float: left;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%); }
  .content > button {
    margin: 0 auto 5vmin;
    display: block;
    width: 130px; }

#help .title {
  font-size: 4.5vmin;
  width: 35vmin;
  line-height: 5vmin; }

#transition {
  opacity: 0;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: black;
  transition: 1s; }

#transition.visible {
  opacity: 1; }

#transition.off {
  display: none; }

.invisible {
  display: none; }
