body {
  font-family: 'Bai Jamjuree', sans-serif;
    height: 100vh;
    background-color: #98B2D1;
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -webkit-align-items: center;
    -ms-flex-align: center;
    align-items: center;
    -webkit-box-pack: center;
    -webkit-justify-content: center;
    -ms-flex-pack: center;
    justify-content: center;
  }
  
  #pin {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
    -webkit-justify-content: center;
    -ms-flex-pack: center;
    justify-content: center;
    -webkit-box-align: center;
    -webkit-align-items: center;
    -ms-flex-align: center;
    align-items: center;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -webkit-flex-direction: column;
    -ms-flex-direction: column;
    flex-direction: column;
    padding: 1em;
    border-radius: .3em;
    margin: auto;
    color: rgba(255, 255, 255, 1);
  }
  
  .dots {
    width: 50%;
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-justify-content: space-around;
    -ms-flex-pack: distribute;
    justify-content: space-around;
    padding: 1em;
    padding-top: 3em;
    
  }
  
  .dot {
    position: relative;
    background: rgba(255, 255, 255, 0.2);
    border-radius: 0.8em;
    width: 1rem;
    height: 1rem;
    -webkit-transform: scale3d(0.7, 0.7, 0.7);
    transform: scale3d(0.7, 0.7, 0.7);
  }
  
  .dot.active {
    -webkit-animation: growDot .5s ease;
    animation: growDot .5s ease;
    -webkit-animation-fill-mode: forwards;
    animation-fill-mode: forwards;
  }
  
  .dot.wrong {
    -webkit-animation: wrong .9s ease;
    animation: wrong .9s ease;
  }
  
  .dot.correct {
    -webkit-animation: correct .9s ease;
    animation: correct .9s ease;
  }
  
  #pin p { font-size: .8em; }
  
  
  .number {
    position: relative;
    width: 2.5em;
    height: 2.5em;
    margin: 1rem;
    border-radius: 2.5em;
    border: 2px solid rgba(255, 255, 255, 0);
    text-align: center;
    line-height: 2.5em;
    font-weight: 400;
    font-size: 1.8em;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
    -webkit-transition: all .2s ease;
    transition: all .2s ease;
  }
  .pin-btn {
    position: relative;
    width: 2.5em;
    height: 2.5em;
    margin: 1rem;
    border-radius: 2.5em;
    border: 2px solid rgba(243, 41, 41, 0);
    text-align: center;
    line-height: 2.5em;
    font-weight: 400;
    font-size: 1.8em;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
    -webkit-transition: all .2s ease;
    transition: all .2s ease;
    background-color: #b1c8e6;
  }
  .pin-btn:hover{
    background-color: rgba(255, 255, 255,0.5);
  }
  .pin-btn:before {
    content: "";
    position: absolute;
    left: -2px;
    width: 2.5em;
    height: 2.5em;
    border-radius: 2.5em;
    -webkit-transition: all .2s ease;
    transition: all .2s ease;
  }

  
  .number:hover:before { 
    border: 2px solid rgba(255, 255, 255, 0.8);
    background-color: rgba(255, 255, 255,0.5);
  }
  
  .number:before {
    content: "";
    position: absolute;
    left: -2px;
    width: 2.5em;
    height: 2.5em;
    border: 2px solid rgba(255, 255, 255, 0.2);
    border-radius: 2.5em;
    -webkit-transition: all .2s ease;
    transition: all .2s ease;
    z-index: -2;
  }
  
  .number.grow:before {
    -webkit-animation: grow .2s ease;
    animation: grow .2s ease;
  }
   @-webkit-keyframes 
  growDot {  100% {
   background: white;
   -webkit-transform: scale3d(0.9, 0.9, 0.9);
   transform: scale3d(0.9, 0.9, 0.9);
  }
  }
   @keyframes 
  growDot {  100% {
   background: white;
   -webkit-transform: scale3d(0.9, 0.9, 0.9);
   transform: scale3d(0.9, 0.9, 0.9);
  }
  }
  @-webkit-keyframes 
  grow {  50% {
   -webkit-transform: scale3d(1.5, 1.5, 1.5);
   transform: scale3d(1.5, 1.5, 1.5);
  }
   100% {
   -webkit-transform: scale3d(1, 1, 1);
   transform: scale3d(1, 1, 1);
  }
  }
  @keyframes 
  grow {  50% {
   -webkit-transform: scale3d(1.5, 1.5, 1.5);
   transform: scale3d(1.5, 1.5, 1.5);
  }
   100% {
   -webkit-transform: scale3d(1, 1, 1);
   transform: scale3d(1, 1, 1);
  }
  }
  @-webkit-keyframes 
  wrong {  20% {
   background: crimson;
  }
   40% {
   -webkit-transform: translate(-15px, 0);
   transform: translate(-15px, 0);
  }
   60% {
   -webkit-transform: translate(10px, 0);
   transform: translate(10px, 0);
  }
   80% {
   -webkit-transform: translate(-5px, 0);
   transform: translate(-5px, 0);
  }
  }
  @keyframes 
  wrong {  20% {
   background: crimson;
  }
   40% {
   -webkit-transform: translate(-15px, 0);
   transform: translate(-15px, 0);
  }
   60% {
   -webkit-transform: translate(10px, 0);
   transform: translate(10px, 0);
  }
   80% {
   -webkit-transform: translate(-5px, 0);
   transform: translate(-5px, 0);
  }
  }
  @-webkit-keyframes 
  correct {  20% {
   background: limegreen;
  }
   40% {
   -webkit-transform: translate(0, -15px);
   transform: translate(0, -15px);
  }
   60% {
   -webkit-transform: translate(0, 10px);
   transform: translate(0, 10px);
  }
   80% {
   -webkit-transform: translate(0, -5px);
   transform: translate(0, -5px);
  }
  }
  @keyframes 
  correct {  20% {
   background: limegreen;
  }
   40% {
   -webkit-transform: translate(0, -15px);
   transform: translate(0, -15px);
  }
   60% {
   -webkit-transform: translate(0, 10px);
   transform: translate(0, 10px);
  }
   80% {
   -webkit-transform: translate(0, -5px);
   transform: translate(0, -5px);
  }
  }
  @-webkit-keyframes 
  bg-red {  50% {
   background: crimson;
  }
  }
  @keyframes 
  bg-red {  50% {
   background: crimson;
  }
  }
  @-webkit-keyframes 
  bg-green {  50% {
   background: limegreen;
  }
  }
  @keyframes 
  bg-green {  50% {
   background: limegreen;
  }
  }