@keyframes wave {
    0%,
    100% {
      transform: rotate(0);
    }
  
    20%,
    60% {
      transform: rotate(-25deg);
    }
  
    40%,
    80% {
      transform: rotate(10deg);
    }
  }
  
  body {
    overflow: hidden;
    margin: 0;
    position: relative;
    height: 100vh;
    width: 100%;
    background-color: #fff;
    -moz-user-select: none;
    -khtml-user-select: none;
    -webkit-user-select: none;
    user-select: none;
    font-family: "Open Sans", sans-serif;
    font-size: 14px;
    background: url(./ss.jpg) center center/ cover;
  }
  
  header,
  footer {
    position: absolute;
    text-align: center;
    width: calc(100% - 20px);
    padding: 10px;
    z-index: 500;
  }
  
  header a,
  footer a {
    color: #000;
    text-decoration: none;
  }
  
  footer {
    bottom: 0;
  }
  
  footer span {
    margin: 0 7px;
  }
  
  hr {
    position: relative;
    display: block;
    width: 200%;
    height: 5px;
    background: #000;
    margin: 140px 0 0 -50%;
    border: none;
    transform: rotate(13.5deg);
    z-index: 10;
  }
  
  select#select-instrument {
    position: relative;
    width: 240px;
    height: 60px;
    margin: 5px 2px;
    padding: 0 15px;
    font-size: 30px;
    color: inherit;
    text-align-last: center;
    background: rgba(0, 0, 0, 0.2);
    box-shadow: inset 0 0 0 4px rgba(0, 0, 0, 0.1);
    border: 0;
    border-radius: 5px;
    transition: all 0.2s ease-out;
    outline: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    z-index: 1000;
  }
  
  select#select-instrument option {
    color: inherit;
    background: #fff;
    border: 0;
    outline: none;
  }
  
  #container {
    position: absolute;
    top: 58%;
    right: 0%;
    transform: translate(-20%, -50%);
    width: 800px;
    height: 450px;
  }
  
  #container div {
    position: absolute;
    display: inline-block;
    top: 0;
    height: 100%;
    width: 100%;
    background-repeat: no-repeat;
  }
  
  #touch {
    display: none;
  }
  
  #keys > div {
    display: inline-block;
    padding: 0 8px;
  }
  
  #keys > div span {
    display: block;
    margin: 0 4px 8px;
  }
  
  #taps,
  #layers {
    position: absolute;
    width: 100%;
    font-size: 30px;
    text-align: center;
    color: #fff;
    z-index: 1000;
  }
  
  #layers {
    top: 0;
  }
  
  #taps {
    bottom: 0;
    margin-bottom: 50px;
  }
  
  #taps .tap {
    position: relative;
    display: inline-block;
    width: 60px;
    height: 60px;
    margin: 5px 2px;
  }
  
  #tap-left,
  #tap-right {
    width: calc(2.5 * 60px + 18px) !important;
    height: calc(2 * 60px + 10px) !important;
  }
  
  #tap-space {
    width: calc(300px + 45px) !important;
    height: calc(2 * 60px + 10px) !important;
  }
  
  .highlight {
    background: rgba(119, 158, 203, 0.6) !important;
    transition: none !important;
    transform: scale(0.95);
    transform-origin: 50% 50%;
  }
  
  .key {
    display: inline-block !important;
    min-width: 35px;
    height: 35px;
    padding: 4px 0 0 6px;
    background: #f5f5f5;
    border: 2px solid #b3b3b3;
    border-radius: 6px;
    box-shadow: inset -6px -4px 0 0 #ccc;
    text-align: left;
    font-size: 15px;
  }
  
  .tap {
    background: rgba(0, 0, 0, 0.2);
    box-shadow: inset 0 0 0 4px rgba(0, 0, 0, 0.1);
    width: 60px;
    height: 135px;
    border-radius: 5px;
    text-align: center;
    transition: all 0.2s ease-out;
    z-index: 1000;
  }
  
  .tap span {
    display: block;
    position: relative;
    font-size: 30px;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    color: #fff;
    text-shadow: 1px 1px 1px rgba(0, 0, 0, 0.2);
    pointer-events: none;
  }
  
  .shinchan div {
    background-position-y: 0;
    background-position-x: 0;
  }
  
  .shinchan > #head {
    background-image: url(./images/shinchan.png);
    z-index: 10;
  }
  
  .shinchan > #mouth {
    background-image: url(./images/mouth.png);
    z-index: 20;
  }
  
  .shinchan > #paw-left {
    background-image: url(./images/paw-left.png);
    z-index: 30;
  }
  
  .shinchan > #paw-right {
    background-image: url(./images/paw-right.png);
    z-index: 30;
  }
  
  .instruments {
    z-index: 20;
    /* animation: add 30s linear infinite; */
  }
  /* @keyframes add {
    0% {
      transform: rotateX(1deg) rotateZ(10deg) perspective(100px);
    }
    50% {
      transform: rotateX(90deg) rotateZ(10deg) perspective(100px);
    }
    100% {
      transform: rotateX(1deg) rotateZ(10deg) perspective(100px);
    }
  } */
  
  .instruments > #bongo,
  #layer-bongo {
    background-image: url(./images/bongo.png);
  }
  
  .instruments > #keyboard,
  #layer-keyboard {
    transform: rotateX(50deg) rotateZ(10deg) perspective(100px);
    background-image: url(./images/keyboard.png);
  }
  
  .instruments > #cymbal,
  #layer-cymbal {
    background-image: url(./images/cymbal.png);
  }
  
  .instruments > #marimba,
  #layer-marimba {
    background-image: url(./images/marimba.png);
  }
  
  .instruments > #tambourine,
  #layer-tambourine {
    background-image: url(./images/tambourine.png);
  }
  
  .instruments > #cowbell,
  #layer-cowbell {
    background-image: url(./images/cowbell.png);
  }
  
  .instruments > #keyboard,
  .instruments > #cymbal,
  .instruments > #marimba,
  .instruments > #tambourine,
  .instruments > #cowbell {
    visibility: hidden;
  }
  
  @media (prefers-color-scheme: dark) {
    body {
      background-color: #000;
      color: #fff !important;
      background: url(ss.jpg) center center / cover;
    }
  
    header a,
    footer a {
      color: #fff !important;
    }
  
    hr {
      background: #fff !important;
    }
  
    .key {
      background: #333;
      border: 2px solid #252525;
      box-shadow: inset -6px -4px 0 0 #1b1b1b;
    }
  
    select#select-instrument,
    .tap {
      background: rgba(255, 255, 255, 0.2);
      box-shadow: inset 0 0 0 4px rgba(255, 255, 255, 0.1);
    }
  
    select#select-instrument option {
      background: #000;
    }
  
    .tap span {
      text-shadow: none;
    }
  
    .shinchan div {
      background-position-y: -450px;
    }
  
    .cc-window {
      border: 1px solid rgba(255, 255, 255, 0.2) !important;
    }
  }
  
  @media (prefers-reduced-motion: reduce) {
    select#select-instrument,
    .tap {
      transition: none !important;
    }
  
    .highlight {
      transform: scale(1) !important;
    }
  }
  
  @media only screen and (max-width: 769px) {
    body {
      font-size: 13px;
    }
  
    /* header {
      visibility: hidden;
    } */
  
    #touch {
      display: block;
    }
  
    #container {
      transform: scale(0.6, 0.6) translate(0%, -50%);
      transform-origin: top right;
    }
  }
  
  #touch1 * {
    box-sizing: border-box;
  }
  #touch1 {
    display: none;
    flex-direction: column;
    position: fixed;
    padding: 10px;
    bottom: 0;
    width: 100%;
    background-color: transparent;
    z-index: 9999;
  }
  .row {
    display: flex;
    justify-content: center;
    position: relative;
    width: calc(100% - 20px);
    /* height: 20px; */
    margin: 5px 0;
    text-transform: uppercase;
  }
  .keytap {
    width: 30px;
    height: 7vw;
    max-height: 8vh;
    margin-right: 10px;
    border-radius: 5px;
    text-align: center;
    line-height: 7vw;
    background-color: #aaa4;
  }
  .keytap:active {
    background-color: #aaa;
  }
  .keytap.space {
    width: 270px;
    /* width: 350px; */
  }
  .keytap.inact {
    background-color: #a0a0a017;
    color: #fff6;
  }
  .keyboard {
    position: fixed;
    top: 20px;
    right: 20px;
    width: 30px;
    height: 30px;
    background: #f00;
  }
  @media only screen and (max-width: 769px) {
    #touch1 {
      display: flex;
    }
  }
  
  #info {
    position: absolute;
    top: 20px;
    right: 20px;
    font-size: 30px;
    line-height: 30px;
    z-index: 10000;
  }
  
  .shinchan .active#paw-right {
    background-position: -800px 0;
  }
  .shinchan .active#paw-left {
    background-position: -800px 0;
  }
  .shinchan > .active#mouth {
    background-position: -785px 0;
  }

/* loading page */
#loader { 
  border: 12px solid #f3f3f3; 
  border-radius: 50%; 
  border-top: 12px solid #444444; 
  width: 70px; 
  height: 70px; 
  animation: spin 1s linear infinite; 
} 

@keyframes spin { 
  100% { 
      transform: rotate(360deg); 
  } 
} 

.loadercenter { 
  position: absolute; 
  top: 0; 
  bottom: 0; 
  left: 0; 
  right: 0; 
  margin: auto; 
}