*, *::before, *::after {
	margin: 0;
	padding: 0;
	box-sizing: border-box;
	font-family: 'Ubuntu Mono', monospace;
}

body, html {
	width: 100%;
	height: 100%;
}

body {
	background-color:  hsl(243, 68%, 77%);
}

.wrap {
	width: 100%;
	height: 100%;
	display: flex;
	align-items: center;
	justify-content: center;
}

.wrap .shooting-container {
	position: relative;
	width: 600px;
	height: calc(100% - 20px);
	background-color: rgba(0,0,0,0.8);
	background-color: hsl(231, 16%, 42%);
	border: 2px solid hsl(231, 16%, 40%);
	border-radius: 7px;
}

.wrap .shooting-container .shooting-wrap {
	position: absolute;
	width: calc(100% - 30px);
	height: calc(100% - 30px);
	top: 15px;
	left: 15px;
	background: hsl(215, 28%, 8%);
	border-radius: 5px;
	overflow: hidden;
	display: flex;
	flex-direction: column;
	isolation: isolate;
}

.wrap .shooting-container .shooting-wrap .enemy-container {
	width: calc(100% - 50px);
	aspect-ratio: 2/2;
	display: grid;
	grid-template-columns: repeat(18, 1fr);
	grid-template-rows: repeat(18, 1fr);
	grid-gap: 10px;
	margin-left: 25px;
	padding: 5px;
}

.wrap .shooting-container .shooting-wrap .level {
	position: absolute;
	top: 50%;
	left: 50%;
	translate: -50% -50%;
	width: max-content;
	height: auto;
	padding: 20px;
	border-radius: 7px;
	z-index: -1;
	color: #ccc;
}

.wrap .shooting-container .shooting-wrap .scoreboard {
	width: 100%;
	height: auto;
	padding: 5px 10px;
	background-color: hsl(218, 27%, 18%);
	z-index: 20;
	position: relative;
	border-top: 2px solid hsl(218, 27%, 28%);

}

.wrap .shooting-container .shooting-wrap .scoreboard .score,
.wrap .shooting-container .shooting-wrap .scoreboard .highscore {
	display: grid;
	grid-template-columns: 140px 1fr;
	align-items: center;
}

.wrap .shooting-container .shooting-wrap .scoreboard .score h4,
.wrap .shooting-container .shooting-wrap .scoreboard .highscore h4 {
	font-size: 18px;
	color: #cacaca;
}

.wrap .shooting-container .shooting-wrap .scoreboard .score span {
	color: hsl(36, 100%, 70%);
	font-size: 18px;
}

.wrap .shooting-container .shooting-wrap .scoreboard .highscore span {
	color: hsl(156, 37%, 63%);
	font-size: 18px;
}

.wrap .shooting-container .shooting-wrap .scoreboard .newhigh {
	width: max-content;
	max-width: 200px;
	padding: 10px;
	border-radius: 7px;
	background-color: hsl(156, 37%, 23%);
	font-size: 18px;
	display: flex;
	align-items: center;
	position: absolute;
	top: 50%;
	right: 5px;
	translate: 0 -50%;
	color: #eee;
	display: none;
}

.wrap .shooting-container .shooting-wrap .scoreboard .newhigh img {
	width: 20px;
}

.wrap .shooting-container .shooting-wrap .enemy-container .enemy {
	width: 100%	;
	height: 100%;
	background-color: hsl(36, 100%, 50%);
	border-radius: 30px;
	box-shadow: 0 0 0 2px rgba(255,255,255,0.8);
	animation: attack var(--duration) ease-in-out infinite;
	translate: 0 -300px;
	z-index: 10
}

.wrap .shooting-container .shooting-wrap .player {
	position: relative;
    width: 40px;
    left: calc(50% - 20px);
    height: 50px;
    border-radius: 10px 10px 0 0;
    background-color: hsl(191, 61%, 42%);
    margin-top: auto;
    transition: .05s linear;
}

.wrap .shooting-container .shooting-wrap .player .bottom {
	width: calc(100% + 30px);
    position: absolute;
    bottom: 0;
    left: 50%;
    translate: -50% 0;
    border-radius: 10px 10px 0 0;
    height: 8px;
    background-color: hsl(192, 61%, 28%);
}

.wrap .shooting-container .shooting-wrap .player .body {
	position: absolute;
    width: calc(100% - 0px);
    height: calc(100% - 0px);
    top: 0px;
    left: 0px;
    background-color: hsl(192deg 50% 39%);
    border-radius: 7px 7px 0 0;
    background-size: calc(100% / 1) calc(100% / 1);
    border-top: 8px solid hsl(192, 24%, 76%);
    background-image: linear-gradient(to right, hsl(218deg 27% 28%) 0% 25%, transparent 25% 75%, hsl(218deg 27% 28%) 75% 100%);
}

.wrap .shooting-container .shooting-wrap .player .shooter {
	position: absolute;
    background-color: hsl(243deg 100% 84%);
    width: 6px;
    height: 20px;
    translate: 0 -100%;
    left: 8px;
}

.wrap .shooting-container .shooting-wrap .player .shooter::before {
	position: absolute;
	content: '';
	width: calc(50% + 6px);
	height: 10px;
	background-color: white;
	top: 0;
	left: 50%;
	translate: -50% 0;
}

.wrap .shooting-container .shooting-wrap .player .shooter.two {
	left: unset;
	right: 8px;
}

.wrap .shooting-container .shooting-wrap .bullet {
	position: absolute;
	width:  6px;
	height: 14px;
	border-radius: 30px;
	background-color: hsl(159, 60%, 54%);
	z-index: -1;
	animation: fire 1.5s linear forwards,
			   colorRotate .5s linear infinite alternate;
}

.deleted {
	animation: unset!important;
	animation: wrecked .5s linear infinite alternate,
			   disappear .9s linear forwards !important;
}

.wrap .shooting-container .shooting-wrap .enemy.wildcard-deleted {
	animation: unset!important;
	background-color: transparent!important;
	box-shadow: none;
}

.wrap .shooting-container .shooting-wrap .enemy.wildcard-deleted::after {
	position: absolute;
	content: '';
	top:  0;
	left: 0;
	width: 100%;
	border-radius: 50%;
	height: 100%;
	background-color: hsl(170, 60%, 82%);
	animation: wildcard-wrecked .5s linear infinite alternate,
			   disappear .9s linear forwards !important;
}

.wrap .shooting-container .shooting-wrap .enemy.wildcard {
	position: relative;
	background-color: green;
	scale: 1.1;
	animation: 	colorRotate 1s linear infinite alternate,
				rotate 2s linear infinite alternate,
				radius 1s linear infinite,
				attack var(--duration) ease-in-out infinite;
}

.wrap .shooting-container .shooting-wrap .enemy.wildcard h4 {
	position: absolute;
	color: hsl(156, 37%, 73%);
	font-size: 16px;
	font-weight: bold;
	display: none;
	left: 100%;
	top: 0%;
	z-index: 25;
}

.appear {
	display: block!important;
	animation: appear 1s ease-in-out forwards!important;
}

/****************************/
/*Animation Keyframes*/
/****************************/

@keyframes rotate {
	0% {
		rotate: 0deg;
	}
	20%, 25% {
		rotate: 360deg;
	}
	50%, 100% {
		rotate: calc(360deg * 2);
	}
}

@keyframes radius {
	0%, 100% {
		border-radius: 5%;
	}
	50% {
		border-radius: 50%;
	}
}

@keyframes attack {
	0% {
		opacity: 1;
		translate: 0 -300px;
	}
	4%, 60% {
		opacity: 1;
		translate: 0 0;
	}
	100% {
		opacity: 1;
		translate: 0 700px;
	}
}

@keyframes moveEnemy {
	from {
		margin-left: 20px;
	}
	to {
		margin-left: -20px;
	}
}

@keyframes wrecked {
	0%, 50%, 100% {
		box-shadow: 0 0 0 0px transparent;
		background-color: white;
		filter: blur(2px);
	}
	25%, 75% {
		background-color: white;
		filter: blur(2px);
		box-shadow: 0 0 0 4px rgba(255,255,255,.12),
					0 0 0 8px rgba(255,255,255,.12),
					0 0 0 12px rgba(255,255,255,.12),
					0 0 0 16px rgba(255,255,255,.12),
					0 0 0 24px rgba(255,255,255,.12),
					0 0 0 32px rgba(255,255,255,.12);
	}
}

@keyframes wildcard-wrecked {
	0%, 50%, 100% {
		box-shadow: 0 0 0 0px transparent;
		filter: blur(2px);
	}
	25%, 75% {
		filter: blur(2px);
		box-shadow: 0 0 0 4px hsla(170, 60%, 62%, 12%),
					0 0 0 8px hsla(170, 60%, 62%, 12%),
					0 0 0 12px hsla(170, 60%, 62%, 12%),
					0 0 0 16px hsla(170, 60%, 62%, 12%),
					0 0 0 24px hsla(170, 60%, 62%, 12%),
					0 0 0 32px hsla(170, 60%, 62%, 12%);
	}
}

@keyframes appear {
	0% {
		translate: 0 0;
		scale: 1;
		opacity: 1;
		filter: blur(0px);
	}
	100% {
		opacity: 0;
		scale: 2;
		translate: 0 -150%;
		filter: blur(0px);
	}
}


@keyframes disappear {
	0%, 90% {
		opacity: 1;
		
	}
	100% {
		opacity: 0;
		
	}
}

@keyframes fire {
	100% {
		bottom: 700px;
	}
}

@keyframes colorRotate {
	to {
		filter: hue-rotate(360deg);
	}
}

/***********************************/
/*Animation Keyframes*/
/***********************************/