* {
  font-family: "Nunito", Helvetica, sans-serif;
}
* :focus {
  outline: none;
}

body {
  position: relative;
  margin: 0;
  color: #3F3F3F;
}
body p {
  margin: 0;
}

.button {
  position: relative;
  height: 30px;
  width: 150px;
  text-align: center;
  border-radius: 2px;
  background: #3F3F3F;
  cursor: pointer;
}
.button .button-label {
  position: relative;
  top: 7px;
  font-size: 12px;
  color: white;
}

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

.column {
  position: relative;
  height: 100vh;
}
.column.center {
  position: relative;
  width: 100%;
}
.column.left {
  position: absolute;
  width: 200px;
  top: 0;
  left: 0;
  padding: 36px 0 0 36px;
}
.column.right {
  position: absolute;
  width: 200px;
  top: 0;
  right: 0;
  padding: 91px 36px 0 0;
}

.pre-game-display {
  position: absolute;
  top: 0;
  width: 100vw;
  height: 100vh;
  background-color: #fff;
}
.pre-game-display .button {
  top: 40%;
}

.reference-text {
  top: 37%;
  width: 100%;
  text-align: center;
  font-size: 40pt;
  font-weight: 600;
  letter-spacing: 4px;
}
.reference-text span {
  display: inline-block;
}

form {
  position: absolute;
  bottom: 100vh;
  opacity: 0;
}

.typed-text-display {
  top: 52%;
  width: 100%;
  font-size: 30pt;
  letter-spacing: 2px;
  text-align: center;
}
.typed-text-display .spoofed-cursor {
  position: relative;
  display: inline-block;
  top: -0.07em;
  font-size: 35pt;
  font-weight: 100;
  color: #222;
  animation-name: blink;
  animation-duration: 1.2s;
  animation-iteration-count: infinite;
}

.toggle {
  position: relative;
  margin-bottom: 17px;
}
.toggle .slider {
  width: 44px;
  height: 23px;
  border-radius: 11.5px;
  cursor: pointer;
}
.toggle .slider.off {
  background-color: #C5C5C5;
}
.toggle .slider.on {
  background-color: #2FD251;
}
.toggle .knob {
  position: absolute;
  width: 21px;
  height: 21px;
  border-radius: 100%;
  top: 1px;
  background-color: white;
  cursor: pointer;
}
.toggle .knob.off {
  left: 1px;
}
.toggle .knob.on {
  left: 22px;
}
.toggle .toggle-label {
  position: absolute;
  top: 50%;
  left: 50px;
  transform: translate(0, -50%);
  font-size: 12px;
  cursor: pointer;
}

.divider {
  width: 80%;
  border-bottom: 1px solid #C5C5C5;
  margin: 25px 0 25px;
}

.restart-button {
  position: absolute;
  top: 36px;
  right: 36px;
  cursor: pointer;
}

.history-items {
  width: 100%;
}
.history-items .history-item {
  position: relative;
  width: 100%;
  height: 74px;
  border-radius: 2px;
  margin: 0 0 25px;
  background-color: white;
  box-shadow: 0 0 2px rgba(0, 0, 0, 0.37);
}
.history-items .history-item .header {
  position: absolute;
  width: 100%;
  height: 23px;
  background: #3F3F3F;
  border-radius: 2px 2px 0 0;
  color: white;
  font-size: 12px;
}
.history-items .history-item .header .heading {
  position: absolute;
  top: 4px;
}
.history-items .history-item .header .heading.time {
  left: 6px;
}
.history-items .history-item .header .heading.percent {
  right: 6px;
}
.history-items .history-item .result-table {
  position: absolute;
  width: 180px;
  height: 45px;
  left: 50%;
  bottom: 1px;
  transform: translate(-50%);
  text-align: center;
}
.history-items .history-item .result-table tr.characters {
  height: 25px;
  font-size: 16pt;
}
.history-items .history-item .result-table tr.characters .correct {
  color: #2FD251;
}
.history-items .history-item .result-table tr.characters .incorrect {
  color: #DC5454;
}
.history-items .history-item .result-table tr.errors {
  position: relative;
  height: 10px;
  font-size: 5pt;
}
.history-items .history-item .result-table tr.errors .error-circle {
  position: relative;
  top: 1px;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 10px;
  height: 10px;
  border-radius: 100%;
  background: #DC5454;
}
.history-items .history-item .result-table tr.errors .error-circle span {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  font-size: 5pt;
  text-align: center;
  color: white;
}
.history-items .history-item .result-table tr td {
  padding: 0;
}
.history-items .history-item .star-circle {
  position: absolute;
  left: 50%;
  bottom: 5px;
  transform: translate(-50%);
  width: 12px;
  height: 12px;
  background-color: #2FD251;
  border-radius: 100%;
  text-align: center;
}
.history-items .history-item .star-circle .star {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  font-size: 6pt;
  color: white;
}

.post-round-display {
  display: none;
  position: absolute;
  top: 0;
  width: 100%;
  height: 100vh;
  background-color: rgba(51, 51, 51, 0.06);
  pointer-events: none;
}
.post-round-display p {
  font-size: 14px;
  color: #A8A8A8;
  text-align: center;
}
.post-round-display p.checkbox-label {
  font-size: 11px;
  color: #3F3F3F;
}
.post-round-display .card {
  width: 625px;
  height: 566px;
  background: white;
  border-radius: 4px;
  box-shadow: 6px 6px 30px 10px rgba(0, 0, 0, 0.3);
  pointer-events: auto;
}
.post-round-display .card .header-stats {
  float: left;
  width: 420px;
  top: 160px;
  margin: 0 auto;
}
.post-round-display .card .header-stats .row {
  width: 100%;
  float: left;
  margin: 0 0 25px;
}
.post-round-display .card .header-stats .row .cell {
  float: left;
  width: 33.333%;
}
.post-round-display .card .header-stats .row .cell p {
  text-align: center;
  font-weight: 400;
}
.post-round-display .card .header-stats .row .cell h2 {
  text-align: center;
  font-size: 28px;
  font-weight: 600;
  margin: 5px 0 0;
}
.post-round-display .card .common-errors {
  position: relative;
  width: 100%;
  margin: 45px 0 0;
  top: 300px;
}
.post-round-display .card .common-errors .errors-container {
  position: relative;
  display: inline-block;
  left: 50%;
  transform: translate(-50%);
  margin: 20px 0 0;
}
.post-round-display .card .common-errors .errors-container .cell {
  position: relative;
  float: left;
  width: 50px;
  height: 57px;
}
.post-round-display .card .common-errors .errors-container .cell .character-container {
  position: absolute;
  left: 50%;
  transform: translate(-50%);
  width: 37px;
  height: 37px;
  border-radius: 4px;
  box-shadow: 2px 3px 8px rgba(0, 0, 0, 0.5);
}
.post-round-display .card .common-errors .errors-container .cell .character-container.c1 {
  background: #D84545;
}
.post-round-display .card .common-errors .errors-container .cell .character-container.c2 {
  background: #E16A6A;
}
.post-round-display .card .common-errors .errors-container .cell .character-container.c3 {
  background: #EA9292;
}
.post-round-display .card .common-errors .errors-container .cell .character-container.c4 {
  background: #F2B7B7;
}
.post-round-display .card .common-errors .errors-container .cell .character-container.c5 {
  background: #FCDFDF;
}
.post-round-display .card .common-errors .errors-container .cell .character-container.c6 {
  background: #CDFAD7;
}
.post-round-display .card .common-errors .errors-container .cell .character-container.c7 {
  background: #ABF1B9;
}
.post-round-display .card .common-errors .errors-container .cell .character-container.c8 {
  background: #88E99C;
}
.post-round-display .card .common-errors .errors-container .cell .character-container.c9 {
  background: #64DF7D;
}
.post-round-display .card .common-errors .errors-container .cell .character-container.c10 {
  background: #41D760;
}
.post-round-display .card .common-errors .errors-container .cell .character-container .character {
  font-size: 24px;
  font-weight: 400;
}
.post-round-display .card .common-errors .errors-container .cell .percent-container {
  position: absolute;
  width: 100%;
  top: 47px;
}
.post-round-display .card .common-errors .errors-container .cell .percent-container .percent {
  position: absolute;
  left: 50%;
  transform: translate(-40%);
  font-size: 12px;
  font-weight: 800;
}
.post-round-display .card .common-errors .present-common-errors-option {
  margin: 14px 0 0;
}
.post-round-display .card .common-errors .present-common-errors-option .checkbox-and-label {
  text-align: center;
  font-size: 11px;
  color: #3F3F3F;
  cursor: pointer;
}
.post-round-display .card .common-errors .present-common-errors-option .checkbox-and-label .checkbox {
  display: inline-block;
  position: relative;
  top: 4px;
  height: 14px;
  width: 14px;
  border: 1px solid #3F3F3F;
  border-radius: 1px;
  margin: 0 3px 0 0;
}
.post-round-display .card .play-again {
  top: auto;
  bottom: 50px;
  margin: 50px auto 0;
}

@keyframes blink {
  0% {
    opacity: 1;
  }
  50% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}