body{
	margin:0;
}
/**/
div#wrapper{
	width:800px;
	margin:auto;
	position:relative;
	z-index:0;
}
div#wrapper div{
	float:left;
}
/**/
div#header{
	width:inherit;
	height:100px;
	border-bottom:2px solid #000;
	position:fixed;
	top:0px;
	background-color:#fff;
	z-index:1;
}
div#header > div#title{
	height:80px;
	margin-top:10px;
	margin-bottom:10px;
	
	font-family:"Courier New",Courier,monospace;
	font-size:72px;
	line-height:80px;
	user-select:none;
}
div#header > div#completed-counter{
	height:30px;
	margin-top:35px;
	margin-bottom:35px;
	margin-right:40px;
	
	padding-left:20px;
	padding-right:15px;
	
	border-radius:17px;
	border:solid #000 2px;
	border-color:#0c0;
	
	background-color:#0f0;
	
	color:#fff;
	line-height:32px;
	text-align:center;
	font-weight:bold;
	font-family:"Courier New",Courier,monospace;
	font-size:20px;
	user-select:none;
	
	float:right;
}
div#main{
	width:inherit;
	margin-top:102px;
	margin-bottom:42px;
}
div#footer{
	width:inherit;
	padding-top:10px;
	padding-bottom:10px;
	border-top:2px solid #000;
	height:20px;
	position:fixed;
	bottom:0px;
	background-color:#fff;
	z-index:1;
}
div#footer > div{
	font-family:"Courier New",Courier,monospace;
	font-size:12px;
	height:20px;
	line-height:20px;
	user-select:none;
}
/**/
div#loading{
	width:inherit;
	height:80px;
	
	font-family:"Courier New",Courier,monospace;
	font-size:24px;
	line-height:80px;
	text-align:center;
	user-select:none;
}
@keyframes loading_dots{
	0%{content:"";}
	10%{content:"";}
	40%{content:".";}
	70%{content:"..";}
	100%{content:"...";}
}
div#loading::after{
	content:"";
	animation-name:loading_dots;
	animation-duration:2s;
	animation-iteration-count:infinite;
}
/**/
div#main > div.puzzle_item{
	width:180px;
	height:260px;
	padding:10px;
	position:relative;
}
div#main > div.puzzle_item:hover{
	background-color:#e0e0e0;
}
div#main > div.puzzle_item > div.puzzle_image_wrapper{
	width:180px;
	height:180px;
}
div#main > div.puzzle_item > div.puzzle_image_wrapper > div{
	border:3px solid #000;
	padding:3px;
	background-color:#fff;
}
div#main > div.puzzle_item > div.puzzle_image_wrapper > div > canvas{
	display:block;
	image-rendering:pixelated;
}
div#main > div.puzzle_item > div.puzzle_title{
	width:180px;
	height:80px;
	line-height:20px;
	text-align:center;
	font-weight:bold;
	font-family:"Courier New",Courier,monospace;
	font-size:14px;
	user-select:none;
}
div#main > div.puzzle_item div.play_link{
	width:60px;
	height:60px;
	
	box-sizing: border-box;
	
	border:solid #000 4px;
	
	color:#000;
	padding-left:5px;
	line-height:56px;
	text-align:center;
	font-weight:bold;
	font-family:"Courier New",Courier,monospace;
	font-size:32px;
	user-select:none;
	
	border-radius:30px;
	
	background-color:#fff;
	position:absolute;
	left:70px;
	top:70px;
	visibility:hidden;
	
	opacity:0.8;
}
div#main > div.puzzle_item:hover div.play_link{
	visibility:visible;
}
div#main > div.puzzle_item div.state_icons{
	height:24px;
	position:absolute;
	right:10px;
	top:10px;
}
div#main > div.puzzle_item div.state_icons > div{
	width:20px;
	height:20px;
	line-height:20px;
	text-align:center;
	font-weight:bold;
	font-family:"Courier New",Courier,monospace;
	font-size:12px;
	user-select:none;
	border-radius:12px;
	float:left;
	margin-left:5px;
	border:solid #000 2px;
}
div#main > div.puzzle_item div.state_icons div.completed_check{
	color:#fff;
	background-color:#0f0;
	border-color:#0c0;
}
div#main > div.puzzle_item div.state_icons div.active_mark{
	color:#fff;
	background-color:#ccc;
	border-color:#888;
}