
body, html {
  background: #eee;
  font-size: 20px;
  font-family: 'Changa One', cursive;
  padding: 0;
  margin: 0;
  overflow: hidden;
}

h1, h2, h3 {
  font-weight: bold;
}

header {
  text-align: center;
  margin-bottom: 10px;
}
header h1 {
  padding: 0;
  margin: 0;
}
footer {
  margin-top: 50px;
  padding: 10px 0;
  text-align: center;
  font-size: 0.6em;
  opacity: 0.4;
  border-top: 2px solid #999;
  color: #999;
  background: #eee;
}
footer a {
  color: #333;
}

.title {
  font-size: 1.2em;
}
.title em {
  opacity: 0.2;
  font-style: normal;
}
.title em:before {
  content: "(";
}
.title em:after {
  content: ")";
}

.intro {
  text-align: center;
}

.intro .title {
  margin-bottom: 20px;
  font-size: 2.4em;
}

#container {
  margin: 0 auto;
  width: 600px;
}

#game {
  width: 600px;
  height: 400px;
  z-index: 1;
}

.outro {
  text-align: center;
  padding-top: 60px;
}

.outro h1 {
  font-size: 2em;
}
.outro h2 {
  font-size: 2em;
  color: #F00;
}

#loading {
  font-size: 2.0em;
  padding-top: 50px;
  text-align: center;
}

button {
  font-size: 2em;
  font-weight: bold;
  padding: 0.1em 0.4em;
  background: hsl(120, 60%, 60%);
  color: #FFF;
  border: none;
  border-radius: 1em;
}
button:hover {
  cursor: pointer;
  background: hsl(120, 80%, 65%);
  color: #fff;
  transform: translate(0px, 2px);
  -moz-transform: translate(0px, 2px);
  -webkit-transform: translate(0px, 2px);
}
button:focus {
  outline: none;
}
button.red {
  background: hsl(0, 80%, 65%);
}
button[disabled] {
  background: hsl(0, 0%, 60%);
}
button.easy {
  background: hsl(120, 80%, 60%);
}
button.medium {
  background: hsl(180, 70%, 60%);
}
button.hard {
  background: hsl(0, 80%, 65%);
}

.menu button {
  margin: 0 10px;
}

#buttons {
  margin-top: 10px;
  font-size: 0.5em;
  text-align: center;
}

#help {
  text-align: center;
  z-index: 0;
  opacity: 0.8;
  font-style: italic;
}

#stats {
  position: relative;
  width: 600px;
  height: 16px;
  overflow: hidden;
}
#score {
  position: absolute;
  overflow: hidden;
  word-wrap: nowrap;
  right: 510px;
  font-size: 16px;
  text-align: right;
  color: #aaa;
}
#timebar {
  position: absolute;
  right: 0;
  top: 8px;
  width: 500px;
  height: 4px;
  background: #ddd;
  z-index: 0;
}
#time {
  background: #bbb;
  position: absolute;
  left: 0;
  top: 0;
  height: 100%;
  width: 0;
}

.g-cats {
  position: relative;
}
.cathouse {
  position: absolute;
  top: 0;
  left: 0;
  height: 400px;
  width: 600px;
}

.cathouse .house {
  position: absolute;
  left: 0;
  z-index: 3;
}
.cathouse .cat {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 2;
}

.cathouse .buttons {
  position: absolute;
  width: 100%;
  bottom: 20px;
  left: 0;
  text-align: center;
}
.cathouse .submit {
  z-index: 4;
  padding: 4px 8px;
  border: 0.1em solid #fff;
  font-size: 1.2em;
  word-wrap: nowrap;
}

.g-memo {
  position: relative;
}
.g-memo .card {
  opacity: 0.8;
  position: absolute;
  top: 0;
  left: 0;
  color: #fff;
  display: inline-block;
  text-align: center;
  font-size: 1em;
  line-height: 1.6em;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  user-select: none;
  -moz-user-select: none;
  -webkit-user-select: none;
  cursor: pointer;
}
.g-memo .card:hover {
  opacity: 1;
}

.g-calculation {
  text-align: center;
  position: relative;
  height: 400px;
  width: 600px;
}

.g-calculation .radio-group, 
.g-calculation .static-element {
  position: absolute;
  top: 0;
  left: 0;
}
.g-calculation .static-element {
  text-align: center;
  font-size: 2em;
  color: #555;
}
.g-calculation .radio-group .item {
  position: absolute;
  top: 0;
  left: 0;
}
.g-calculation .bull {
  position: absolute;
  top: 0;
  left: 0;
  background: #fff;
  border-radius: 100px;
}
.g-calculation .bull .item {
  border-radius: 100px;
  padding: .25em .5em;
  font-size: 1.2em;
  border: 4px solid transparent;
  color: #FFF;
  z-index: 2;
  opacity: 0.6;
  cursor: pointer;
  user-select: none;
  -webkit-user-select: none;
  -moz-user-select: none;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
}
.g-calculation .bull .item.selected {
  color: #000 !important;
  border-color: #000;
  z-index: 3;
  opacity: 1.0;
}
.g-calculation .bull .item:hover {
  background-color: #999;
  color: #FFF;
  z-index: 4;
  opacity: 0.8;
}
.g-calculation .bull .item.selected.failed {
  background: #F99;
  color: #C00 !important;
  border-color: #C00;
}
.g-calculation .equality {
  font-size: 3em;
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100%;
  text-align: center;
  color: #222;
}
.g-calculation .equality.invalid {
}
.g-calculation .equality.invalid:after {
  color: hsl(0, 50%, 50%);
  content: " ✘";
}
.g-calculation .equality.valid {
}
.g-calculation .equality.valid:after {
  color: hsl(120, 50%, 50%);
  content: " ✓";
}
