/*lf green: 48a839*/
/*lf light grey: d8d4d3*/
/*lf dark grey: 434a54*/
* {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
}

html, body {
  width: 100%;
  height: 100%;
  padding: 0;
  margin: 0;
  font-family: "Lato", sans-serif;
}

.lfra-button {
  padding: 5px 10px;
  border: 1px solid #444;
  border-radius: 15px;
  font-size: 30px;
  text-align: center;
  color: #FFF;
  background-color: #f2b20b;
  cursor: pointer;
  -webkit-touch-callout: none;
  /* iOS Safari */
  -webkit-user-select: none;
  /* Safari */
  /* Konqueror HTML */
  -moz-user-select: none;
  /* Firefox */
  -ms-user-select: none;
  /* Internet Explorer/Edge */
  user-select: none;
}

.lfra-button:hover {
  background-color: #fcc63f;
}

.lfra-button.disabled {
  background-color: #CCC;
  color: #444;
}

.lfra-button:active {
  -webkit-transform: translateY(2px);
          transform: translateY(2px);
}

.lfra-button:active.disabled {
  -webkit-transform: none;
          transform: none;
}

.lfra-centerButtons {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}

.lfra-centerButtons > div:not(:first-child) {
  margin-left: 30px;
}

#lessonface-rhythm-app {
  width: 100%;
  height: 100%;
  position: relative;
}

.ani-loader {
  border: 16px solid #f3f3f3;
  border-radius: 50%;
  border-top: 16px solid blue;
  border-bottom: 16px solid blue;
  width: 120px;
  height: 120px;
  -webkit-animation: ani-spin 2s linear infinite;
  animation: ani-spin 2s linear infinite;
}

@-webkit-keyframes ani-spin {
  0% {
    -webkit-transform: rotate(0deg);
  }
  100% {
    -webkit-transform: rotate(360deg);
  }
}

@keyframes ani-spin {
  0% {
    -webkit-transform: rotate(0deg);
            transform: rotate(0deg);
  }
  100% {
    -webkit-transform: rotate(360deg);
            transform: rotate(360deg);
  }
}

#player {
  width: 100%;
  height: 100%;
}

#player #p-header {
  background-color: #CCC;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  padding: 5px 10px;
}

#player #p-header #p-instructions {
  margin-left: 20px;
  font-size: 16px;
}

#player #p-notation {
  width: 100%;
  height: calc(100% - 70px);
  background-color: #777;
  position: relative;
}

#player #p-notation #p-stageCanvas {
  width: 100%;
  height: 100%;
}

#player #p-notation #p-performBtn {
  position: absolute;
  top: 50%;
  left: 50%;
  -webkit-transform: translateX(-50%);
          transform: translateX(-50%);
}

#player #p-notation #p-performBtn.notUsed {
  display: none;
}

#player-overlay {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  width: 100%;
  height: 100%;
  background-color: rgba(216, 212, 211, 0.8);
  position: absolute;
  top: 0;
  left: 0;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  padding: 10px;
}

#player-overlay > .lfra-window {
  background-color: #48a839;
  padding: 20px;
  border-radius: 20px;
  -webkit-box-shadow: 5px 5px 5px #000;
          box-shadow: 5px 5px 5px #000;
  color: #FFF;
}

#player-overlay #introScreen {
  width: 100%;
  max-width: 500px;
}

#player-overlay #introScreen #is-title {
  text-align: center;
  font-size: 44px;
}

#player-overlay #introScreen #is-description {
  margin-top: 10px;
  font-size: 27px;
}

#player-overlay #introScreen #is-loadingInfo {
  margin-top: 20px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-direction: row;
          flex-direction: row;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}

#player-overlay #introScreen #is-loadingInfo #is-loadingAnimation {
  display: block;
}

#player-overlay #introScreen #is-loadingInfo #is-loadingAnimation .ani-loader {
  border: 4px solid #f3f3f3;
  border-radius: 50%;
  border-top: 4px solid #cdcecf;
  border-bottom: 4px solid #cdcecf;
  width: 35px;
  height: 35px;
}

#player-overlay #introScreen #is-loadingInfo #is-loadingInfoText {
  font-size: 21px;
  margin-left: 10px;
  color: #ffde59;
}

#player-overlay #introScreen #is-buttonsDiv {
  margin-top: 20px;
}

#player-overlay #introScreen #is-pdfDownloadDiv {
  margin-top: 20px;
  text-align: center;
}

#player-overlay #introScreen #is-pdfDownloadDiv a {
  text-decoration: underline;
  color: #FFF;
  cursor: pointer;
  font-size: 16px;
}

#player-overlay #playerControlsScreen {
  display: none;
  width: 100%;
  max-width: 500px;
  position: relative;
}

#player-overlay #playerControlsScreen #pc-songTitleDiv {
  font-size: 44px;
  text-align: center;
}

#player-overlay #playerControlsScreen #playBtnAndTopScore {
  margin-top: 25px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-direction: row;
          flex-direction: row;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}

#player-overlay #playerControlsScreen #playBtnAndTopScore #pc-playBtn {
  padding: 10px 20px;
  font-size: 40px;
}

#player-overlay #playerControlsScreen #playBtnAndTopScore #pc-topScoreDiv {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  border: 2px dotted #ffde59;
  border-radius: 10px;
  padding: 5px;
  font-size: 21px;
  text-align: center;
}

#player-overlay #playerControlsScreen #pc-loadingInfo {
  margin-top: 20px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-direction: row;
          flex-direction: row;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}

#player-overlay #playerControlsScreen #pc-loadingInfo #pc-loadingAnimation {
  display: block;
}

#player-overlay #playerControlsScreen #pc-loadingInfo #pc-loadingAnimation .ani-loader {
  border: 4px solid #f3f3f3;
  border-radius: 50%;
  border-top: 4px solid #cdcecf;
  border-bottom: 4px solid #cdcecf;
  width: 35px;
  height: 35px;
}

#player-overlay #playerControlsScreen #pc-loadingInfo #pc-loadingInfoText {
  font-size: 21px;
  margin-left: 10px;
  color: #ffde59;
}

#player-overlay #playerControlsScreen #pc-scoreDiv {
  margin-top: 25px;
  font-size: 27px;
  color: #ffde59;
}

#player-overlay #playerControlsScreen #pc-hitModeAndInstructions {
  margin-top: 25px;
  padding: 10px 0;
  border-top: dotted 1px #CCC;
  border-bottom: dotted 1px #CCC;
}

#player-overlay #playerControlsScreen #pc-hitModeAndInstructions #pc-hitModeDiv {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-direction: row;
          flex-direction: row;
  -webkit-box-pack: start;
      -ms-flex-pack: start;
          justify-content: flex-start;
  width: 100%;
  font-size: 21px;
}

#player-overlay #playerControlsScreen #pc-hitModeAndInstructions #pc-hitModeDiv .pc-hitOption input {
  width: 20px;
  height: 20px;
}

#player-overlay #playerControlsScreen #pc-hitModeAndInstructions #pc-hitModeDiv .pc-hitOption:not(:first-child) {
  margin-left: 20px;
}

#player-overlay #playerControlsScreen #pc-hitModeAndInstructions #pc-instructionsDiv {
  margin-top: 5px;
  font-size: 21px;
}

#player-overlay #playerControlsScreen #pc-hitModeAndInstructions #pc-instructionsDiv span {
  color: black;
}

#player-overlay #playerControlsScreen #pc-navigationDiv {
  margin-top: 30px;
}

#player-overlay #rewardScreen {
  display: none;
  width: 100%;
  max-width: 500px;
  padding: 50px 20px;
}

#player-overlay #rewardScreen #rs-message {
  font-size: 44px;
}
