@charset "UTF-8";
/* CSS Document */
*{
	margin:0 auto;
	box-sizing: border-box;
	font-family: 'Roboto Mono', monospace;
	font-weight:500;
}

a[x-apple-data-detectors] {
  color: inherit !important;
  text-decoration: none !important;
  font-size: inherit !important;
  font-family: inherit !important;
  font-weight: inherit !important;
  line-height: inherit !important;
}

html,body{
	width:100%;
	height:100%;
	overflow: hidden;
	position: fixed;
	left:0px;
	top:0px;
}

/*---BODY--*/
/*--NIGHT--*/
body{
	display: table;
	text-align: center;
	position: relative;
  background-color:#f1f5f8;
}

#board{
	width:240px;
	height:240px;
	position: absolute;
	top: 50%;
  margin-top: -150px;
  margin-left: auto;
  margin-right: auto;
  right: 0px;
  left: 0px;
  -webkit-transform: rotateX(45deg) rotateZ(45deg) translateZ(10px);
  z-index:8;
	box-shadow: 0px 0px 50px 0px rgba(45, 43, 83, 0.25);
}

/*--GAMEFIELDS--*/
tr td{
	width:60px;
	height:60px;
	visibility: hidden;
	position: relative;
	background-color: #f1f5f8;
}

tr td.hole{
	visibility:visible!important;
	background-color:#ffffff;
	background-image:url(img/hole.png);
	background-position: center center;
	border:none;
}

tr td.hole::after{
	border:none;
}

tr td::after{
	content:"";
	width:58px;
	height:58px;
	position: absolute;
	left: -1px;
	top:-1px;
	border:2px solid #2d2b53;
}

tr td.marker{
	background-color:#fff;
	visibility: visible;
	-webkit-box-shadow: 0px 0px 25px 0px rgba(25,87,239,.25);
  -moz-box-shadow: 0px 0px 25px 0px rgba(25,87,239,.25);
	box-shadow: 0px 0px 25px 0px rgba(25,87,239,.25);
}

tr td.marker::after{
	top:-1px;
	left:-1px;
	width:58px;
	height:58px;
	border:2px solid #1957ef;
	z-index:10;
}

tr td.marker.highlighted::after{
	left:-1px;
	top:-1px;
	width:58px;
	height:58px;
	border:2px solid #ffffff;
	background-color:#1957ef;
	z-index:10;
	transform: rotateX(0deg) rotateY(0deg) rotateZ(0deg) translateZ(10px) translateX(00px) translateY(0px);
}

tr td.highlighted{
	visibility: visible;
	background-color:#1957ef;
	-webkit-box-shadow: 0px 0px 25px 0px rgba(25,87,239,.25);
  -moz-box-shadow: 0px 0px 25px 0px rgba(25,87,239,.25);
	box-shadow: 0px 0px 25px 0px rgba(25,87,239,.25);
}

tr td.highlighted::after{
	left:-1px;
	top:-1px;
	width:58px;
	height:58px;
	z-index:5;
}

tr td.border{
	visibility: visible;
}

tr td[data-pass*="2"]{
	visibility: visible;
}

tr td[data-pass*="2"][data-passed*="0"]::before{
	content: "02";
  font-size: 24px;
  font-weight: bold;
  color: #1957ef;
  left:0px!important;
  top:16px!important;
  z-index:5;
  position: relative;
  transform: none!important;
  background: none!important;
  pointer-events: none;
}

tr td[data-pass*="2"][data-passed*="0"]::after,tr td[data-pass*="2"][data-passed*="1"]::after{
	background-image: none;
}

tr td[data-pass*="2"][data-passed*="1"]::before{
	content: "01";
    font-size: 24px;
    font-weight: bold;
    color: #fff;
    top: 16px;
    left:0px!important;
    top:16px!important;
    z-index:5;
    position: relative;
    transform: none!important;
    background: none!important;
    pointer-events: none;
}

tr td[data-pass*="2"][data-passed*="2"]::before{
	content:"";
    pointer-events: none;
}


/*--NIGHT--*/


/*--TIMER--*/
#timer{
	position: fixed;
	width: 100%;
	height: 75px;
	z-index: 10;
	background-color: #fff;
	bottom: 0px;
	box-shadow: 0px 0px 50px 0px rgba(45, 43, 83, 0.25);
}

#timer .counter{
	font-size:18px;
	font-weight:bold;
	color:#1957ef;
	position: absolute;
	right:25px;
	top:24px;
}

#timer .counter.blink{
	color: #ff445e;
	animation: blink-animation 1s steps(4, start) infinite;
	-webkit-animation: blink-animation 1s steps(4, start) infinite;
}

@keyframes blink-animation {
  to {
    visibility: hidden;
  }
}
@-webkit-keyframes blink-animation {
  to {
    visibility: hidden;
  }
}

#timer .loader{
	position: absolute;
	left:0px;
	top:0px;
	margin-left:0px;
	width:100%;
	height:4px;
	background-color: #1957ef;
	-webkit-box-shadow: 0px 0px 25px 0px rgba(25,87,239,.25);
  -moz-box-shadow: 0px 0px 25px 0px rgba(25,87,239,.25);
	box-shadow: 0px 0px 25px 0px rgba(25,87,239,.25);
	z-index:12;
}

#timer.start .loader{
	width:0%;
	-webkit-transition: width 30s linear;
  	transition:         width 30s linear;
 }

 #timer .close{
	 width:75px;
	 height:75px;
	 background-color:#fff;
	 position:absolute;
	 left:0px;
	 top:0px;
	 box-shadow: 0px 0px 50px 0px rgba(45, 43, 83, 0.25);
 }

 #timer .close img{
	 display:block;
	 height:75px;
	 width:75px;
 }

 /*--PRELOADER--*/
 .preloaderContainer{
 	width:100%;
 	height:100%;
 	background-color: #f1f5f8;
 	left:0px;
 	top:0px;
 	opacity: 1;
 	position: fixed;
 	z-index:25;
 	-webkit-transition: all 600ms cubic-bezier(0.165, 0.84, 0.44, 1);
	transition:         all 600ms cubic-bezier(0.165, 0.84, 0.44, 1);
  pointer-events: none;
 }

 .preloaderContainer .content{
 	width:100%;
 	height:100%;
 }

 .preloaderContainer.invisible{
 	width:100%;
 	height:100%;
 	opacity:0;
 	-webkit-transition: all 600ms cubic-bezier(0.165, 0.84, 0.44, 1);
	transition:         all 600ms cubic-bezier(0.165, 0.84, 0.44, 1);
 }

 .preloaderContainer .content h1{
 	font-size: 36px;
  color: #1957ef;
  margin:0px;
  padding:0px;
  position: fixed;
  z-index:10;
  left:50%;
  margin-left:-25px;
  top:50%;
  margin-top:36px;
  opacity:0;
  -webkit-transition: all 400ms cubic-bezier(0.6, -0.28, 0.735, 0.045);
	transition:         all 400ms cubic-bezier(0.6, -0.28, 0.735, 0.045);
 }

 .preloaderContainer .content.visible h1{
 	margin-top:-36px;
 	opacity:1;
 	-webkit-transition: all 400ms cubic-bezier(0.175, 0.885, 0.32, 1.275);
 	transition:         all 400ms cubic-bezier(0.175, 0.885, 0.32, 1.275);
 }

 .preloaderContainer.invisible .content h1{
 	margin-top:36px;
 	opacity:0;
 	-webkit-transition: all 400ms cubic-bezier(0.6, -0.28, 0.735, 0.045);
  	transition:         all 400ms cubic-bezier(0.6, -0.28, 0.735, 0.045);
 }

 /*--INTRO--*/
 .introContainer{
 	background-color: #f1f5f8;
	width:100%;
	height:calc(100% - 60px);
	display:table;
	position: relative;
	z-index: 25;
 }

 .introContainer .intro{
 	padding:25px;
 	font-weight: 500;
 	font-size: 36px;
 	color:#2d2b53;
 	text-align: left;
 	line-height: 1.05em;
 	letter-spacing: -1px;
 	display:table-cell;
 	vertical-align: middle;
 	position: relative;
 	z-index:2;
 }


 .introContainer .intro b{
 	color:#1957ef;
	font-weight: 500;
 }

.introContainer .introButtons{
 	position: fixed;
 	bottom:0px;
 	left:0px;
 	width:100%;
 	height:75px;
 	text-align: left;
 	z-index: 2;
	box-shadow: 0px 0px 50px 0px rgba(45, 43, 83, 0.25);
}

.introContainer #yes{
 	width:100%;
 	display:block;
 	height:75px;
 	background-color:#fff;
 	font-size:18px;
	color:#2d2b53;
 	letter-spacing: 1px;
 	padding-left:25px;
	line-height: 75px;
 }


 .introContainer .arrow{
 	float:right;
 	width:75px;
	height:75px;
 }

 /*-----ERROR------*/
 #error.introContainer{
	 background: rgb(255,100,124);
	 background: -moz-linear-gradient(top,  rgba(255,100,124,1) 0%, rgba(255,68,94,1) 100%);
	 background: -webkit-linear-gradient(top,  rgba(255,100,124,1) 0%,rgba(255,68,94,1) 100%);
	 background: linear-gradient(to bottom,  rgba(255,100,124,1) 0%,rgba(255,68,94,1) 100%);
 }

 #error .intro b{
	 color:#fff;
 }

 /*--PROGRESSCONTAINER--*/
 .progressContainer{
 	position: fixed;
  top: 25px;
  left: 0px;
  width: 100%;
  z-index: 10;
 }

 .progressContainer .progress{
 	width:100%;
 	padding-left: 25px;
  padding-right: 25px;
 }

 .progressContainer .progress span{
 	display:inline-block;
 	width:17%;
 	text-align: center;
 	color:#2d2b53;
 	font-weight:bold;
 	font-size:18px;
 	opacity:.25;
 	position: relative;
 }

 .progressContainer .progress span.done{
	 opacity:1;
 }

 .progressContainer .progress span.active{
 	opacity:1;
	color:#1957ef;
 }



/*--CHARACTER--*/
#character{
	width: 60px;
    height: auto;
    position: absolute;
    top: 0px;
    left: 0px;
    transform: rotateX(-405deg) rotateY(-35deg) rotateZ(300deg) translateZ(50px) translateX(95px) translateY(-45px);
    z-index:10;
    pointer-events: none;
}

#character img{
	display:block;
	image-rendering: auto;
  image-rendering: crisp-edges;
  image-rendering: pixelated;
}

/*--STARS--*/
.starContainer{
	width:100%;
	height:calc(100% - 75px);
	position: absolute;
	z-index:25;
	pointer-events: none;
	top:0px;
}

.starContainer li{
	width:100%;
	height:100%;
}

.starContainer .star{
	width:8px;
	height:8px;
	position: absolute;
	border:2px solid #2d2b53;
	box-shadow: 0px 0px 50px 0px rgba(45, 43, 83, 0.25);
}

.starContainer .star:nth-of-type(2n){
	background-color: #2d2b53;
}

/*----LINECONTAINER--*/
.lineContainer{
	width:100%;
	height:100%;
	position: absolute;
	z-index:2;
}

.lineContainer .line{
	width:25%;
	height:100%;
	float:left;
	border-right:1px solid #2d2b53;
	opacity:.15;
	position: relative;
}

.lineContainer .line::after{
	content:"";
	width:4px;
	height:50px;
	background-color:#2d2b53;
	position: absolute;
	top:0px;
	right:-2px;
	opacity:0;
}

#error .lineContainer .line{
	width:25%;
	height:100%;
	float:left;
	border-right:1px solid #fff;
	opacity:.25;
}

#error .lineContainer .line::after{
		background-color: #fff;
}

.lineContainer .line:last-of-type{
	border-right:none;
}

.lineContainer .line:nth-of-type(1n)::after{
	animation: lineAnim 2s infinite 250ms;
	-moz-animation: lineAnim 2s infinite 250ms;
	-webkit-animation: lineAnim 2s infinite 250ms;
	-o-animation: lineAnim 2s infinite 250ms;
}

.lineContainer .line:nth-of-type(2n)::after{
	animation: lineAnim 2s infinite 500ms;
	-moz-animation: lineAnim 2s infinite 500ms;
	-webkit-animation: lineAnim 2s infinite 500ms;
	-o-animation: lineAnim 2s infinite 500ms;
}

.lineContainer .line:nth-of-type(3n)::after{
	animation: lineAnim 2s infinite 850ms;
	-moz-animation: lineAnim 2s infinite 850ms;
	-webkit-animation: lineAnim 2s infinite 850ms;
	-o-animation: lineAnim 2s infinite 850ms;
}

.lineContainer .line:last-of-type::after{
	display:none;
}

/*LINE ANIMATION*/
/* Animation Keyframes*/
@keyframes lineAnim {
    0% { opacity: 0; top:0px;}
		20% { opacity: 1;}
    50% { opacity: 1; top:calc(50% - 25px);}
		80% { opacity: 1;}
    100% { opacity: 0; top:calc(100% - 50px);}
}

@-moz-keyframes lineAnim {
		0% { opacity: 0; top:0px;}
		20% { opacity: 1;}
		50% { opacity: 1; top:calc(50% - 25px);}
		80% { opacity: 1;}
		100% { opacity: 0; top:calc(100% - 50px);}
}

@-webkit-keyframes lineAnim {
		0% { opacity: 0; top:0px;}
		20% { opacity: 1;}
		50% { opacity: 1; top:calc(50% - 25px);}
		80% { opacity: 1;}
		100% { opacity: 0; top:calc(100% - 50px);}
}

@-o-keyframes lineAnim {
		0% { opacity: 0; top:0px;}
		20% { opacity: 1;}
		50% { opacity: 1; top:calc(50% - 25px);}
		80% { opacity: 1;}
		100% { opacity: 0; top:calc(100% - 50px);}
}
