/*CLEAR FIX*/
.group:after {
    visibility: hidden;
    display: block;
    content: " ";
    clear: both;
}

* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

.left {
    float: left !important;
}

.right {
    float: right !important;
}

.textCenter {
    text-align: center;
}

/*MAIN*/
html, body {
    overflow: hidden;
    height: 100%;
}
body {
    font-family: 'Open Sans', Helvetica, Arial, sans-serif;
    font-size: 13px;
    font-weight: 300;
    line-height: 20px;
    color: #333;
    margin: 0;
    height: 100vh;
    background: #333;
    background: linear-gradient(180deg, rgba(51,51,51,1) 0%, rgba(102,102,102,1) 100%);
}

p {
    margin-bottom: 20px;
}

h1 {
    font-size: 3em;
    font-weight: 300;
    line-height: .9em;
    margin: 0 0 40px 0;
}

h2 {
    font-weight: 300;
    font-size: 2em;
    margin-top: 0;
    line-height: 1em;
}

button {
    padding: 20px 40px;
    background: #cc0000;
    color: #fff;
    border: none;
    font-size: 16px;
    font-family: 'Open Sans', Helvetica, Arial, sans-serif;
}

#startScreen {
    position: absolute;
    width: 100%;
    top: 0;
    z-index: 10;
    color: #fff;
    bottom: 0;
    background: rgba(0,0,0,.8);
    padding: 40px 20px;
    text-align: center;
}

#canvas {
    height: 100vh;
    width: 100vw;
    margin: 0 auto;
    /*background: #eee; */
    position: relative;
    overflow: hidden;
}

h1.score {
    z-index: 2;
    position: absolute;
    width: 100%;
    background: rgba(255,255,255,.9);
    padding: 5px;
    text-align: center;
    font-size: 20px;
    border-bottom: 1px solid #ccc;
}

#collide {
    position: absolute;
    top: 30%;
}

/*#gamePiece {
    position: absolute;
    bottom: 70%;
    width: 80px;
    height: 40px;
    left: 50%;
    -webkit-transform: translateX(-50%);
            transform: translateX(-50%);
    z-index: 1
}*/



/*.cubeWrap{
  position: relative;
  width: 40px;
  height: 40px;
  margin: 0px auto;
  margin-top:100px;
}*/

/*.cube {
    position: absolute;
    width: 100%;
    top: -73%;
    
}

.borderFade {
     border-style: solid;
    -webkit-border-image: 
      -webkit-gradient(linear, 0 0, 0 100%, from(rgba(132,225,132,1)), to(rgba(0, 0, 0, 0))) 1 100%;
    -webkit-border-image: 
      -webkit-linear-gradient(rgba(132,225,132,1), rgba(132,225,132, 0)) 1 100%;
    -moz-border-image:
      -moz-linear-gradient(rgba(132,225,132,1), rgba(132,225,132, 0)) 1 100%;    
    -o-border-image:
      -o-linear-gradient(rgba(132,225,132,1), rgba(132,225,132, 0)) 1 100%;
    border-image:
}

#guide {
    position: absolute;
    width: 100%;
    height: 100vh;
    margin-top: 50%;
    z-index: -1;
    border-width: 0 1px 0 1px;
   
}

#guideMid {
    width: 0px;
    height: 100%;
    z-index: -1;
    margin: 28% auto 0;
    border-width: 0 1px 0 0;
}*/

.diamond {
    width: 100px;
    margin: 0 auto;
    position: absolute;
    top: 100%;
    left: 50%;
    -webkit-transform: translateX(-50%);
            transform: translateX(-50%);
    z-index: 0;
}

.top {
    position: absolute;
    top: 0;
}

.bottom {
    position: absolute;
    bottom: 0;
}

.move {
    transition: top 3s linear;
    top: -172px;
}

.collision {
    fill: transparent;
    stroke-dasharray: 4;
    stroke: #fff;
    opacity: .8;
    display: block;
}

.success {
    stroke: green !important;
}

.noscale .collision {
    vector-effect: non-scaling-stroke;
}


.red {
    border-top: 1px solid red !important;
}

.green {
    border-top: 1px solid green !important;
}

#gameOver {
    display: none;
    position: absolute;
    top: 0;
    right: 0;
    left: 0;
    bottom: 0;
    /*background: rgba(0,0,0,.9);*/
    z-index: 9;
    color: #fff;
    text-align: center;
}

.centerMiddle {
        width: 100%;
    padding: 0 20px;
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
}

#gamePiece {
    /*-webkit-perspective: none;
    perspective: none;
    bottom: 70%;
    position: absolute;
    width: 84px;
    height: 84px;
    left: 50%;
    transform: translateX(-50%);*/
}

#gamePiece #cube {
    /*transform-style: preserve-3d;
    transform: rotateX(-35deg) rotateY(45deg) translateZ(0px) rotate(0deg);
    width: 60px; 
    height: 60px;
    left: 14%;
    top: 35%;
    position: absolute;*/
}

.animate {
  animation: cubespin .3s ease;
}

#cube .side::after {
    /*border-style: solid;*/
    border-width: 1px;
    /*width: 100%;*/
    box-sizing: border-box;
    /*filter: blur(1px);*/
    position: absolute;
    content: '';
}

#cube .front.side::after, #cube .back.side::after {
    width: 100%;
    height: 70vh;
    border-top: 0;
    border-bottom: 0;
}

#cube .left.side::after, #cube  .right.side::after {
    width: 70vh;
    height: 100%;
    border-left: 0px;
    border-right: 0px;
}

#cube .front.side::after {
    bottom: 100%;
    border-style: solid;
    -webkit-border-image: 
      -webkit-linear-gradient(rgba(132,225,132,0), rgba(132,225,132, 1)) 40;
    border-image: linear-gradient(rgba(132,225,132,0), rgba(132,225,132, 1)) 1;
}

#cube .back.side::after {
    top: 100%;
    border-style: solid;
    -webkit-border-image: 
      -webkit-linear-gradient(rgba(132,225,132,1), rgba(132,225,132, 0)) 40;
    border-image: linear-gradient(rgba(132,225,132,1), rgba(132,225,132, 0)) 1;
}

#cube .left.side::after {
    left: 100%;
    border-style: solid;
    -webkit-border-image: 
      -webkit-linear-gradient(0deg, rgba(132,225,132,1), rgba(132,225,132, 0)) 40;
    border-image: linear-gradient(90deg, rgba(132,225,132,1), rgba(132,225,132, 0)) 1;
}

#cube .right.side::after {
    right: 100%;
    border-style: solid;
    -webkit-border-image: 
      -webkit-linear-gradient(0deg, rgba(132,225,132,0), rgba(132,225,132, 1)) 40;
    border-image: linear-gradient(-90deg, rgba(132,225,132,1), rgba(132,225,132, 0) ) 1;
}

/*#gamePiece #cube .side.front{
  background: #F91858;
  transform: rotateX(180deg) translateZ(-30px);
  background-image: url(../images/face2.svg);
}

#gamePiece #cube .side.back{
  background: #F91858;
  transform: rotateX(180deg) translateZ(30px) rotate(180deg) rotateY(180deg);
  background-image: url(../images/face.svg);
}

#gamePiece #cube .side.right {
  background: #E31650;
  transform: rotateY(90deg) translateZ(30px) rotate(-90deg) rotateX(180deg);
  display: block;
}

#gamePiece #cube .side.left{
  background: #E31650;
  transform: rotateY(-90deg) translateZ(30px) rotateX(180deg) rotate(270deg);
}

#gamePiece #cube .side.top{
  background: #CC1449;
  transform: rotateX(90deg) translateZ(30px) rotate(-90deg) rotateY(180deg);
}

#gamePiece #cube .side.bottom{
  background: #CC1449;
  transform: rotateX(90deg) translateZ(-30px);
}*/

@keyframes cubespin {
  0% {
    transform: translateX(-50%) rotateY(0deg);
  }
  99.9% {
    transform: translateX(-50%) rotateY(-180deg);
  }
  100% {
    transform: translateX(-50%) rotateY(0deg);
  }
}
/*PARTIClES*/

.particleWrap {
    position:  absolute;
    width: 100%;
    height: 100%;
    /*background: #000;*/
    opacity: .1;
    overflow: hidden;
}

.particle {
    transform-style: preserve-3d;
    transform: rotateX(-35deg) rotateY(45deg) translateZ(0px) rotate(0deg);
    width: 60px; 
    height: 60px;
    position: absolute;
}

.particleMove {
    /*animation: particleSpin 6s linear;*/
}

.particle .side {
  width: 100%;
  height: 100%;
  position: absolute;
  display: block;
  box-sizing: border-box;
  /*overflow: hidden;*/
}

.particle .side.front {
  background: #ddd;
  transform: rotateX(180deg) translateZ(-30px);
}

.particle .side.back {
  background: #ddd;
  transform: rotateX(180deg) translateZ(30px) rotate(180deg) rotateY(180deg);
}

.particle .side.right {
  background: #aaa;
  transform: rotateY(90deg) translateZ(30px) rotate(-90deg) rotateX(180deg);
  display: block;
}

.particle .side.left {
  background: #aaa;
  transform: rotateY(-90deg) translateZ(30px) rotateX(180deg) rotate(270deg);
}

.particle .side.top {
  background: #888;
  transform: rotateX(90deg) translateZ(30px) rotate(-90deg) rotateY(180deg);
}

.particle .side.bottom {
  background: #888;
  transform: rotateX(90deg) translateZ(-30px);
}

.particle .side::after {
    position: absolute;
    content: '';
}

.particle .front:after{
    width: 100%;
    height: 300%;
    background-image: linear-gradient(rgba(255,255,255,0), rgba(255,255,255,.25)) ;
    bottom: 100%;
}

.particle .back:after{
    width: 100%;
    height: 300%;
    background-image: linear-gradient(rgba(255,255,255,.25), rgba(255,255,255,0)) ;
    top: 100%;
}

.particle .left:after{
    width: 300%;
    height: 100%;
    background-image: linear-gradient(90deg, rgba(255,255,255,.25), rgba(255,255,255,0)) ;
    left: 100%;
}

.particle .right:after{
    width: 300%;
    height: 100%;
    background-image: linear-gradient(-90deg, rgba(255,255,255,.25), rgba(255,255,255,0)) ;
    right: 100%;
}

.particleFlat {
  width: 40px;
  height: 40px;
  background: #fff;
  position: absolute;
}

.particleFlat:after {
  width: 100%;
  height: 300%;
  background-image: linear-gradient(rgba(255,255,255,.25), rgba(255,255,255,0)) ;
  position: absolute;
  content: "";
  top: 100%;
}

@keyframes particleSpin {
  0% {
    transform: rotateX(-35deg) rotateY(45deg) translateZ(0px) rotate(0deg);
    top: 100%;
  }
  99.9% {
    transform: rotateX(-35deg) rotateY(-1035deg) translateZ(0px) rotate(0deg);
  }
  100% {
    transform: rotateX(-35deg) rotateY(45deg) translateZ(0px) rotate(0deg);
    top: -45%;
  }
}

@keyframes moveRing {
  0% {
    /*top: 50%;*/
    top: 145%;
    /*transform: translateX(-50%) rotateY(0deg);*/
  }
  100% {
    /*top: 50%;*/
    top: -45%;
    /*transform: translateX(-50%) rotateY(360deg);*/
  }
}

/*.ring {
  width: 100px;
  height: 100px;
  background: white;

}*/

/*.ringWrap {
    -webkit-perspective: none;
    perspective: none;
    bottom: 70%;
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
}

.ring {
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  display: none;
  opacity: 1;
  transition: opacity .3s;
}

.ringBottom {
  z-index: 1
}

.ringTop {
  z-index: -1
}*/

.moveRing {
  animation: moveRing 3.5s linear;
  /*top: 50%;*/
  position: absolute;
  /*border-bottom: 1px solid#fff;*/
  /*left: 50%;*/
  /*transform: translateX(-50%);*/
}

/*.ring {
    transform-style: preserve-3d;
    transform: rotateX(-35deg) rotateY(45deg) translateZ(0px) rotate(0deg);
    width: 60px; 
    height: 10px;
    left: 14%;
    top: 35%;
    position: absolute;
    background: white;
}

.ring .side {
  
  position: absolute;
  display: block;
  box-sizing: border-box;
}

.ring .side.front{
  width: 60px; 
  height: 10px;
  background: #ED1E79;
  transform: rotateX(180deg) translateZ(-30px);
}

.ring .side.back{
  width: 60px; 
  height: 10px;
  background: #ED1E79;
  transform: rotateX(180deg) translateZ(30px) rotate(180deg) rotateY(180deg);
}

.ring .side.right {
  width: 60px; 
  height: 10px;
  background: #D4145A;
  transform: rotateY(90deg) translateZ(30px) rotate(0deg) rotateX(180deg);
  display: block;
}

.ring .side.left{
  width: 60px; 
  height: 10px;
  background: #D4145A;
  transform: rotateY(-90deg) translateZ(30px) rotateX(180deg) rotate(0deg);
}

.ring .side.top1{
  width: 60px; 
  height: 10px;
  background: #9E005D;
  transform: rotateX(90deg) translateZ(5px) rotate(-90deg) rotateY(180deg) translateY(-25px);
}

.ring .side.top2{
  width: 60px; 
  height: 10px;
  background: #9E005D;
  transform: rotateX(90deg) translateZ(5px) rotateY(180deg) translateY(25px);
}

.ring .side.bottom{
  background: #9E005D;
  transform: rotateX(90deg) translateZ(-30px);
}*/


/*.targetWrap {
  width: 100%;
  height: 100px;
  position: absolute;
  top: 50%;
}

.targetTop1 {
  width: 100px;
  height: 10px;
  background: #fff;
  position: absolute;
  transform: rotate(30deg) skew(35deg);
}

.topHitL {
  border-bottom: 20px solid red;
  border-left: 35px solid transparent;
  border-right: 10px solid transparent;
  height: 0;
  width: 150px;
  transform: rotate(30deg);
  position: absolute;
  right: 192px;
}

.topHitR {
  border-bottom: 20px solid red;
  border-left: 10px solid transparent;
  border-right: 35px solid transparent;
  height: 0;
  width: 150px;
  transform: rotate(-30deg);
  position: absolute;
  left: 192px;
}*/

#canvas3d {
    -webkit-perspective: none;
    perspective: none;
    /* bottom: 70%; */
    position: absolute;
    width: 100%;
    height: 100%;
    transform-style: preserve-3d;
    transform-origin: center;
    transform: rotateX(-35deg) rotateY(45deg) translateZ(0px) rotate(0deg);
     /*left: 50%; */
    /* transform: translateX(-50%); */
}

#cube {
    transform-style: preserve-3d;
    /*transform: rotateX(-35deg) rotateY(45deg) translateZ(0px) rotate(0deg) translateX(-50%);*/
    transform: translateX(-50%);
    width: 60px;
    height: 60px;
    left: 50%;
    bottom: 80%;
    position: absolute;
}

#cube .side {
  width: 60px; 
  height: 60px;
  position: absolute;
  display: block;
  box-sizing: border-box;
}

#cube .side.front{
  background: #F91858;
  transform: rotateX(180deg) translateZ(-30px);
  background-image: url(../images/face2.svg);
}

#cube .side.back{
  background: #F91858;
  transform: rotateX(180deg) translateZ(30px) rotate(180deg) rotateY(180deg);
  background-image: url(../images/face.svg);
}

#cube .side.right {
  background: #E31650;
  transform: rotateY(90deg) translateZ(30px) rotate(-90deg) rotateX(180deg);
  display: block;
}

#cube .side.left{
  background: #E31650;
  transform: rotateY(-90deg) translateZ(30px) rotateX(180deg) rotate(270deg);
}

#cube .side.top{
  background: #CC1449;
  transform: rotateX(90deg) translateZ(30px) rotate(-90deg) rotateY(180deg);
}

#cube .side.bottom{
  background: #CC1449;
  transform: rotateX(90deg) translateZ(-30px);
}

.ring.fadeOut .side, .ring.fadeOut .inner {
  opacity: 0;
   /*width: 100% !important;*/
}

.ring.fadeOut  {
  /*width: 200% !important;*/
}

.ring {
    left: 50%;
    transform: translateX(-50%) rotateY(0deg);
    transform-style: preserve-3d;
    /*transition: width .3s;*/
    
}

.ring, .ring .side {
  position: absolute;
  opacity: 1;
  transition: opacity .3s, width .3s;
  /*width: 200px;
  height: 40px;*/
}

.ring .side.front{
  background: #555;
  transform: rotateX(180deg) translateZ(-100px);
}

.ring .side.back{
  background: #555;
  transform: rotateX(180deg) translateZ(100px) rotate(180deg) rotateY(180deg);
}

.ring .side.right {
  background: #444;
  transform: rotateY(90deg) translateZ(100px)
}

.ring .side.left{
  background: #444;
  transform: rotateY(90deg) translateZ(-100px)
}

.ring .side.top{
  /*width: 200px;
  height: 200px;*/
  transform: rotateX(90deg) translateZ(100px);
}

/*.ring .side.bottom{
  width: 200px;
  height: 200px;
  transform: rotateX(-90deg) translateZ(100px);
}*/

.topRing {
  position: absolute;
  background: #333;
}

.topRing.front{
  width: 100%;
  /*height: 40px;*/
  bottom: 0;
}

.topRing.back{
  width: 100%;
  /*height: 40px;*/
  top: 0;
}

.topRing.left{
  /*width: 40px;*/
  height: 100%;
  left: 0;
}

.topRing.right{
  /*width: 40px;*/
  height: 100%;
  right: 0;
}

.ring .inner{
/*  width: 200px;
  height: 40px;*/
  position: absolute;
  opacity: 1;
  transition: opacity .3s, width .3s;
}

.inner.backInner {
  /*transform: translateZ(-60px);*/
  background: #555;
}

.inner.frontInner {
  /*transform: translateZ(60px) ;*/
  background: #555;
}

.inner.leftInner {
  /*transform: translateX(-60px) rotateY(90deg);*/
  background: #444;
}

.inner.rightInner {
  /*transform: translateX(60px) rotateY(90deg);*/
  background: #444;
}

.minHit {
  width: 100px;
  height: 100px;
  border: 3px solid rgb(132,225,132);;
  background-color: rgba(132,225,132,.2);
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
}

