/* Format all elements */
html {
  box-sizing: border-box;
}
*, *:before, *:after {
  box-sizing: inherit;
}

* {
  -webkit-user-select: none;  
  -moz-user-select: none;    
  -ms-user-select: none;      
  user-select: none;
}

/* Format the webpage background */
body {
  color: #09449c;
  background: #fff;
  font-family: Inter, Helvetica, Arial, sans-serif;
}


/* Format basic elements */
h1 {
  font-size: 2rem;
  font-family: Inter, Helvetica, Arial, sans-serif;
  font-weight: 700;
  margin-top: 1.5rem;
  margin-bottom: 0.2rem;
  text-align: center;
}

h2 {
  font-size: 1.7rem;
  font-family: Inter, Helvetica, Arial, sans-serif;
  font-weight: 700;
  margin-top: 0.2rem;
  margin-bottom: 0.2rem;
  text-align: center;
}

a {
  color: #09449c;
}

hr {
  width: 100%;
  color: #09449c;
}

:focus {
  outline: none;
}
::-moz-focus-inner {
  border: 0;
}

/* Special formatting tools */
.fullScreen {
  position: fixed;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
}

.centerFlex {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}

.hidden {
  display: none;
}

/* Specific animations */
@keyframes fadeIn {
  from {opacity: 0;}
  to {opacity: 1;}
}

@keyframes openLeft {
  from {top: 0;}
  to {top: -80vh;}
}

@keyframes openRight {
  from {top: 0;}
  to {top: 80vh;}
}

@keyframes closeLeft {
  from {top: -80vh;}
  to {top: 0;}
}

@keyframes closeRight {
  from {top: 80vh;}
  to {top: 0;}
}

/* Format the doorway */
.doorway {
  overflow: hidden;
  z-index: 1;
}

.doorway.blocked {
  z-index: 100;
}

.door {
  position: absolute;
  height: 100vh;
  width: 200vw;
  z-index: 100;
}

.doorLeft {
  top: 0;
  left: -150vw;
}

.doorRight {
  top: 0;
  left: 50vw;
}

.door.blue {
  background: #09449c;
  z-index: 2;
}

.door.orange {
  background: #ff781e;
  z-index: 1;
}

.doorLeft.orange {
  margin-top: 5vh;
}

.doorRight.orange {
  margin-top: -5vh;
}

.open .doorLeft {
  top: -80vh;
  animation: openLeft 1s;
}

.open .doorRight {
  top: 80vh;
  animation: openRight 1s;
}

.close .doorLeft {
  top: 0;
  animation: closeLeft 1s;
}

.close .doorRight {
  top: 0;
  animation: closeRight 1s;
}

/* Format content items */
.content {
  z-index: 10;
}

.chooser {
  width: calc(100vw - 20px);
  margin: 10px;
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
}

.chooser.bottom {
  position: absolute;
  bottom: 10px;
}

.selection {
  padding: 10px 20px;
  margin: 10px;
  font-size: 1.3rem;
  border: 5px solid #09449c;
  transform: skew(-10deg);
  text-align: center;
}

.challenge {
  margin: 10px;
  margin-bottom: 20px;
  font-size: 1.3rem;
  text-align: center;
}

.timerButton {
  padding: 40px 40px;
  margin: 10px;
  font-size: 1.5rem;
  font-weight: 700;
  color: #4caf50;
  background-color: #d9eed9;
  border: 5px solid #4caf50;
}

.timerButton.running {
  color: #ff2200;
  background-color: #ffd3cc;
  border: 5px solid #ff2200;
}

.timerDisplay, .scoreDisplay {
  margin-top: 10px;
  margin-left: 25vw;
  width: 75vw;
  font-size: 2rem;
  font-weight: 700;
  text-align: start;
}

.timerDisplay.final, .scoreDisplay.final {
  color: #4caf50;
}

.scoreTable {
  width: 80vw;
  margin: 10px 10vw;
  border: 3px solid #09449c;
  border-spacing: 0;
  font-size: 1.2rem;
}

.tableHeader td {
  font-weight: 700;
}

.scoreTable td {
  padding: 5px;
  border: 2px solid #09449c;
}

.scoreTable td.final {
  color: #4caf50;
}

