html, body {
    padding: 0px;
	margin: 0px;
	border: 0px; 
    
    height: 100%;

	touch-action-delay: none;
	touch-action: none;
	-ms-touch-action: none;
	-webkit-touch-callout: none;
	-webkit-user-select: none;
	-khtml-user-select: none;
	-moz-user-select: none;
	-ms-user-select: none;
	user-select: none;

	overflow: hidden;
}

#viewport {
	position: absolute;  	

	background: rgb(35,32,32); 

	width: 100%;
	height: 100%;
}

#canvas {  
	position: absolute;	
    width: 100%;
    height: 100%;
	cursor: default;
}

/* artificially increase pixel density x2 on hidpi screen */
/* https://www.mydevice.io/ */
/* https://ymatuhin.ru/front-end/retina_media_quires/ */
@media only screen and (min-resolution: 2dppx), (-webkit-min-device-pixel-ratio: 2) and (orientation: portrait) and (max-width: 360px) {
    #canvas {
        width: 200%;
        height: 200%;
        transform-origin: 0 0;    
        transform: scale(0.5);
    }
}
@media only screen and (min-resolution: 2dppx), (-webkit-min-device-pixel-ratio: 2) and (orientation: landscape) and (max-height: 360px) {
    #canvas {
        width: 200%;
        height: 200%;
        transform-origin: 0 0;    
        transform: scale(0.5);        
    }
}


#canvas:focus {
	outline:none;
}

#preloader {
	display: block;    
    position: absolute;
    
    background-image: url('preloader.jpg');
    background-size: cover;
    background-position: center;

	width: 100%;
	height: 100%;
}

/*#share_container {
    display: flex;
    position: absolute;
    width: 100%;
    height: 100%;
    background-color: #cdcc;
}

#share_background {
    display: block;
    position: absolute;
    width: 100%;
    height: 100%;
    background-image: linear-gradient(#e66465CC, #9198e5CC);
    background-color: #cdcc; 
}

#share_buttons {
    margin: auto;
    transform: scale(2);
}*/

		
/* --- Progress Bar --- */		

.meter { 
	position: relative;
    margin-top: 82vh;
    height: 5vh;  /* Can be anything */
    width: 80vw;
    
    left: 0; right:0; margin-left: auto; margin-right: auto;
	    
	background-color: darkorange;
	-moz-border-radius: 25px;
	-webkit-border-radius: 25px;
	border-radius: 25px;
    
	padding: 10px;
    
	-webkit-box-shadow: inset 0 -4px 1px rgba(255,255,255,0.3);
	-moz-box-shadow   : inset 0 -4px 1px rgba(255,255,255,0.3);
	box-shadow        : inset 0 -4px 1px rgba(255,255,255,0.3);
}

.meter > span {
	display: block;
	height: 100%;
	   -webkit-border-top-right-radius: 8px;
	-webkit-border-bottom-right-radius: 8px;
		   -moz-border-radius-topright: 8px;
		-moz-border-radius-bottomright: 8px;
			   border-top-right-radius: 8px;
			border-bottom-right-radius: 8px;
		-webkit-border-top-left-radius: 20px;
	 -webkit-border-bottom-left-radius: 20px;
			-moz-border-radius-topleft: 20px;
		 -moz-border-radius-bottomleft: 20px;
				border-top-left-radius: 20px;
			 border-bottom-left-radius: 20px;
	background-color: rgb(43,194,83);
	background-image: -webkit-gradient(
	  linear,
	  left bottom,
	  left top,
	  color-stop(0, rgb(43,194,83)),
	  color-stop(1, rgb(24,255,24))
	 );
	background-image: -moz-linear-gradient(
	  center bottom,
	  rgb(43,194,83) 37%,
	  rgb(84,240,84) 69%
	 );
	-webkit-box-shadow: 
	  inset 0 2px 9px  rgba(255,255,255,0.3),
	  inset 0 -2px 6px rgba(0,0,0,0.4);
	-moz-box-shadow: 
	  inset 0 2px 9px  rgba(255,255,255,0.3),
	  inset 0 -2px 6px rgba(0,0,0,0.4);
	box-shadow: 
	  inset 0 2px 9px  rgba(255,255,255,0.3),
	  inset 0 -2px 6px rgba(0,0,0,0.4);
	position: relative;
	overflow: hidden;
}

.meter > span:after, .animate > span > span {
	content: "";
	position: absolute;
	top: 0; left: 0; bottom: 0; right: 0;
	background-image: 
	   -webkit-gradient(linear, 0 0, 100% 100%, 
		  color-stop(.25, rgba(255, 255, 255, .2)), 
		  color-stop(.25, transparent), color-stop(.5, transparent), 
		  color-stop(.5, rgba(255, 255, 255, .2)), 
		  color-stop(.75, rgba(255, 255, 255, .2)), 
		  color-stop(.75, transparent), to(transparent)
	   );
	background-image: 
		-moz-linear-gradient(
		  -45deg, 
		  rgba(255, 255, 255, .2) 25%, 
		  transparent 28%, 
		  transparent 40%, 
		  rgba(255, 255, 255, .2) 50%, 
		  rgba(255, 255, 255, .2) 75%, 
		  transparent 75%, 
		  transparent
	   );
	z-index: 1;
	-webkit-background-size: 50px 50px;
	-moz-background-size: 50px 50px;
	-webkit-animation: move 2s linear infinite;
	   -webkit-border-top-right-radius: 8px;
	-webkit-border-bottom-right-radius: 8px;
		   -moz-border-radius-topright: 8px;
		-moz-border-radius-bottomright: 8px;
			   border-top-right-radius: 8px;
			border-bottom-right-radius: 8px;
		-webkit-border-top-left-radius: 20px;
	 -webkit-border-bottom-left-radius: 20px;
			-moz-border-radius-topleft: 20px;
		 -moz-border-radius-bottomleft: 20px;
				border-top-left-radius: 20px;
			 border-bottom-left-radius: 20px;
	overflow: hidden;
}

.animate > span:after {
	display: none;
}

@-webkit-keyframes move {
	0% {
	   background-position: 0 0;
	}
	100% {
	   background-position: 200px 50px;
	}
}

