body {
	background-color: #2b2b2b;
	font-family: Oswald, sans-serif;
	user-select: none;
}

canvas {
	background-color: black;	/* margin: auto; */
	display: block;
	position: absolute;
}

.ui {
	width: 100%;
	height: 100%;
	position: absolute;
}

.ui .health {
	width: 370px;
	height: 20px;
	background-color: rgba(0, 0, 0, 0.4);
	/* background-color: red; */
	/* border-radius: 50%; */
	position: absolute;
	top: 5px;
	overflow: hidden;
	border: 7px solid;
	display: flex;
	flex-direction: column-reverse;
	/* bottom: -110px; */
	left: 5px;
}

.ui .health .fill {
	height: 20px;
	width: 100%;
	background-color: rgba(51, 247, 18, 0.8);
	/* bottom: 0px; */
	position: relative;
	transition: width 0.1s;
}

.sac-select {width: 1000px;height: 600px;background-color: #191919;z-index: 1;position: absolute;padding: 50px 60px;box-sizing: border-box;overflow: hidden;}

.sac-select .title {color: #fff;text-align: center;font-size: 43px;margin-bottom: 20px;}

.sac {
	/*background-image: url(../img/sacrifice.png);*/
	width: 217px;
	height: 204px;
	display: inline-block;
	/* background-position: 426px 508px; */
	position: relative;
	cursor: pointer;
	transform: scale(0.8);
	z-index: 0;
}

.sac .image {
	background-image: url(../img/sacrifice.png);
	width: 213px;
	height: 254px;
}

.sac:before {
	content:'';
	position: absolute;
	width: 200px;
	height: 100px;
	background-color: rgba(255, 255, 255, 0.2);
	border-radius: 50%;
	z-index: -1;
	bottom: -84px;
	left: 13px;
	/* transform: scale(1); */
}

.board {
	width: 1000px;
	height: 600px;
	margin: auto;
	position: relative;
	cursor: url(../img/cursor.png), auto;
	top: 20px;
}

.cover {
	width: 100%;
	height: 100%;
	position: absolute;
}

.main-menu {
	width: 100%;
	height: 100%;
	position: absolute;
	background-image: url('../img/cover.png');
	z-index: 1;
	cursor: pointer;
	background-color: #000;
}

.ui .level {
	font-size: 20px;
	color: #fff;
	position: relative;
	text-align: right;
	top: 11px;
	right: 17px;
}
.ui .level:before {
	content: 'Level: ';
}

.ui .goal {
	text-align: center;
	color: #fff;
	position: absolute;
	width: 100%;

	top: 200px;
	font-size: 48px;

	
	/*animation-timing-function: linear;*/
	animation-fill-mode: forwards;
	animation-delay: 1s;
	animation-duration: 1s;
}

.ui .goal.animate {
	animation-name: goal;
}

.ui .goal:before {
	content: 'Find the Key';
}

.ui .goal.exit:before {
	content: 'Get to the Exit';
}

@keyframes goal {
	from {
		top: 200px;
		font-size: 48px;
	}

	to {
		top: 11px;
		font-size: 20px;
	}

}

.ui .key {
	width: 64px;
	height: 64px;
	background-image: url(../img/key_outline.png);
	position: absolute;
	top: 40px;
	right: 13px;
	opacity: 0.4;
	background-size: contain;
}

.ui .key.hasKey {
	background-image: url(../img/key.png);
	opacity: 1;
}

.ui .skills {
	top: 42px;
	position: absolute;
	right: 10px;
	display: flex;
	counter-reset: skill;
	flex-direction: column;
	display: none;
}

.ui .skills .skill {
	display: block;
	width: 64px;
	height: 59px;
	margin: 2px;
	background-color: rgba(224, 224, 224, 0.4);
	border: 4px solid rgba(0, 0, 0, 0.7);
	border-radius: 11px;
	box-sizing: border-box;
	color: #fff;
	font-weight: bold;
	position: relative;
	overflow: hidden;
	background-repeat: no-repeat;
	background-size: contain;
}

.ui .skills .skill[data-name=RainOfArrows] {
	background-image: url(../img/skills/rain_arrow.png);
}

.ui .skills .skill[data-name=SlowMoBubble] {
	background-image: url(../img/skills/slow_buble.png);
}

.ui .skills .skill[data-name=HomingAttack] {
	background-image: url(../img/skills/tower.png);
}

.ui .skills .skill:after {
	counter-increment: skill;
	content: counter(skill);
	position: absolute;
	right: 5px;
	top: 2px;
}

.ui .skills .skill .fill {
	background-color: rgba(0, 0, 0, 0.8);
	width: 100%;
	height: 0;
	bottom: 0;
	position: absolute;	/* transition: height; */

	/* transition-duration: 10s; */

	/* transition-timing-function: linear; */
}

.ui .skills .skill.cooldown {
	background-color: rgba(244, 244, 244, 0.4);
}

.ui .skills .skill.cooldown .fill {
	animation-name: cooldown;
	animation-timing-function: linear;
	animation-fill-mode: backwards;
}

.ui .money {
	position: absolute;
	bottom: 10px;
	right: 10px;
	color: #fff;
	font-size: 24px;
	font-weight: bold;
}

.ui .money:before {
	content: '$';
}

@keyframes cooldown {
	from {
		height: 100%;
	}

	to {
		height: 0%;
	}

}

.modals {
	position: fixed;
	top: 0;
	left: 0;
}

.modal {
	width: 100vw;
	height: 100vh;
	background-color: rgba(0, 0, 0, 0.7);
	display: none;
}

.modal .panel {
	width: 1000px;
	height: 700px;
	background-color: #282933;
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	border: 5px solid #cacaca;
	color: #fff;
	box-sizing: border-box;
}

.weapon-select .panel {
	display: flex;
	height: 600px;
}

.weapon-select .panel .close {
	width: 48px;
	height: 48px;
	position: absolute;
	background-color: #eeeeee;
	top: 0;
	right: 0;
	color: #000;
	font-size: 68px;
	text-align: center;
	line-height: 48px;
	cursor: pointer;
	/* transform: rotate(45deg); */
} 

.weapon-select .panel .close:before {
	content: '+';
	transform: rotate(45deg);
	position: relative;
	display: inline-block;
}

.weapon-select .weapon {
	box-sizing: border-box;
	padding: 40px 95px;
	flex-grow: 1;
}

.weapon-select .weapon .image {
	width: 300px;
	height: 300px;
	background-color: #eee;
	margin: 10px auto;
	position: relative;
	border: 3px solid #000;
}

.weapon-select .weapon .title {
	font-size: 24px;
	font-weight: bold;
	margin: 10px;
	text-align: center;
}

.weapon.new:before,
.weapon.current:before {
	text-align: center;
	display: block;
	font-size: 36px;
	font-weight: bold;
}

.weapon.current:before {
	content: 'Current Weapon';

}

.weapon.new:before {
	content: 'New Weapon';	
}

/*.weapon-select .weapon.current .title:before {
	content: 'Current: ';
}*/

.weapon-select .button:before {
	content: 'Buy: $';
}

.weapon-select .current-label {
	position: absolute;
	bottom: 157px;
	color: #fff;
	left: 50%;
	transform: translateX(-50%);
	font-size: 30px;
}

.weapon-select .button {
	background-color: #900404;
	position: absolute;
	bottom: 20px;
	transform: translateX(-50%);
	left: 50%;
	padding: 10px 20px;
	font-size: 32px;
	border: 2px solid;
}

.weapon-select .button.enabled {
	background-color: green;
}

.weapon-select .bank {font-size: 34px;position: absolute;bottom: 110px;/* right: 20px; */left: 50%;transform: translateX(-50%);}

.weapon-select .bank:before {
	content: '$';
	/* width: 110px; */
}

.weapon-select .weapon .description {
	margin-bottom: 20px;
	height: 40px;
	overflow: hidden;
	text-align: center;
}

.weapon-select .weapon .dps {
	font-size: 30px;
	margin-bottom: 20px;
	text-align: center;
}

.weapon-select .weapon .dps:before {
	content: 'DPS: ';
}

.weapon-select .weapon .button {
	padding: 10px;
	border: 1px solid;
	width: 120px;
	margin: auto;
	text-align: center;
	font-size: 32px;
	cursor: pointer;
}

.weapon-select .weapon .lvl {
	position: absolute;
	bottom: 0;
	right: 0;
	/* width: 30px; */
	height: 30px;
	text-align: center;
	line-height: 30px;
	background-color: rgba(0, 0, 0, 0.8);
	color: #fff;
	font-size: 20px;
	font-weight: bold;
	padding: 0 7px;
}

.weapon-select .weapon .lvl:before {
	content: 'Lvl: ';
}

.weight {
	width: 224px;
	height: 336px;
	background-image: url(../img/weight.png);
	position: absolute;
	top: -340px;
	transition: top 0.2s ease-in;
	transform: scale(0.8);
}

.spirit {
	width: 174px;
	height: 236px;
	background-image: url(../img/spirit.png);
	background-size: contain;
	background-repeat: no-repeat;
	position: absolute;
	top: 80px;
	left: 30px;
	opacity: 0;
}

.spirit.start {
	animation-name: spirit;
	animation-fill-mode: forwards;
	animation-timing-function: ease-in-out;
	animation-delay: 0.3s;
	animation-duration: 3s;
}

@keyframes spirit {
	0% {
		top: 80px;
		opacity: 0;
	}

	45% {
		top: 80px;
		opacity: 1;
	}

	55% {
		top: 80px;
		opacity: 1;
	}

	100% {
		top: -600px;
		opacity: 1;
	}

}

.weapon-select .weapon .button:hover {
	background-color: #ccc;
}

.paused {

}

.gameover .text,
.paused .text {
	position: absolute;
	top: 290px;
	left: 50%;
	transform: translate(-50%, 0);
	color: #ffffff;
	font-size: 40px;
}

.gameover .text {
	top: 260px;
}

.gameover .sub-text {
	position: absolute;
	top: 310px;
	left: 50%;
	transform: translate(-50%, 0);
	color: #ffffff;
	font-size: 30px;
}

.gameover .button {
	position: absolute;
	top: 358px;
	left: 50%;
	transform: translate(-50%, 0);
	color: #ffffff;
	font-size: 40px;
	cursor: pointer;
}

.gameover .button:hover {
	color: #999;
}
