<div class=wrapper>
	<div class=cloud>
		<div class=cloud_left></div>
		<div class=cloud_right></div>
	</div>
	<div class=rain>
		<div class=drop></div>
		<div class=drop></div>
		<div class=drop></div>
		<div class=drop></div>
		<div class=drop></div>
	</div>
	<div class=surface>
		<div class=hit></div>
		<div class=hit></div>
		<div class=hit></div>
		<div class=hit></div>
		<div class=hit></div>
	</div>
</div>
body {
	background: #bbb;
}

.wrapper {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	height: 200px;
}

.cloud {
	overflow: hidden;
	padding: 5px;
	height: 50px;
}

.cloud_left {
	position: relative;
	float: left;
	background-color: #234;
	width: 100px;
	height: 100px;
	border-radius: 50%;
	box-shadow: 1px 1px 1px 1px rgba(0, 0, 0, 0.75);
}

.cloud_right {
	position: relative;
	float: left;
	background-color: #203040;
	width: 70px;
	height: 70px;
	border-radius: 50%;
	top: 15px;
	left: -30px;
	box-shadow: 1px 1px 1px 1px rgba(0, 0, 0, 0.75);
}

.rain {
	width: 180px;
	height: 140px;
}

.drop {
	position: relative;
	float: left;
	width: 2px;
	margin: 10px;
	left: 20px;
	background: #789;
	box-shadow: 1px 0.5px 1px 0.5px rgba(0, 0, 0, 0.75);
	animation: rain 0.8s infinite ease-out;
}

.drop:nth-child(1) {
	height: 15px;
	top: 5px;
	animation-delay: -1.0s;
}

.drop:nth-child(2) {
	height: 20px;
	animation-delay: -1.4s;
}

.drop:nth-child(3) {
	height: 15px;
	top: 5px;
	animation-delay: -1.6s;
}

.drop:nth-child(4) {
	height: 10px;
	top: 10px;
	animation-delay: -1.2s;
}

.drop:nth-child(5) {
	height: 5px;
	top: 15px;
	animation-delay: -1.6s;
}

@keyframes rain {
	0% {
		opacity: 1;
		transform: translate(0, 0);
	}
	100% {
		opacity: 0.2;
		transform: translate(0, 100px);
	}
}

.surface {
	position: relative;
	width: 180px;
	height: 140px;
	top: -140px;
}

.hit {
	position: absolute;
	width: 3px;
	height: 1px;
	margin: 10px;
	bottom: -5px;
	border: 1px solid #456;
	border-radius: 50%;
	animation: hit 0.8s infinite ease;
}

.hit:nth-child(1) {
	left: 19px;
	animation-delay: -0.3s;
}

.hit:nth-child(2) {
	left: 41px;
	animation-delay: -0.7s;
}

.hit:nth-child(3) {
	left: 63px;
	animation-delay: -0.9s;
}

.hit:nth-child(4) {
	left: 85px;
	animation-delay: -0.5s;
}

.hit:nth-child(5) {
	left: 107px;
	animation-delay: -0.9s;
}

@keyframes hit {
	0% {
		opacity: 0.75;
		transform: scale(1);
	}
	100% {
		opacity: 0;
		transform: scale(2.5);
	}
}

External CSS

This Pen doesn't use any external CSS resources.

External JavaScript

This Pen doesn't use any external JavaScript resources.