.pac-man {
	border-radius: 50%;
	margin: 0 auto;
	margin-top: 4em;
	margin-bottom: 4em;
	border-radius: 100em 100em 0 0;
	background: #f00;
	transform-origin: bottom;
	animation: eating-top .5s infinite;
}
.pac-man, .pac-man::before {
	width: 70px;
	height: calc(35px);
	background: #fed75a;
}
.pac-man::before {
	content: '';
	display: block;
	margin-top: calc(35px);
	position: absolute;
	transform-origin: top;
	border-radius: 0 0 100em 100em;
	transform: rotate(80deg);
	animation: eating-bottom .5s infinite;
}
.pac-man::after {
	position: absolute;
	border-radius: 100em;
	content: '';
	display: block;
	height: 20px;
	width: 20px;
	margin-top: calc(25px);
	margin-left: calc(25px);
	transform-origin: center;
	animation: pac-man-center .5s infinite, pac-man-ball .5s -0.33s infinite linear;
}
@keyframes eating-top {
	0% {
		transform: rotate(-40deg);
	}
	50% {
		transform: rotate(0deg);
	}
	100% {
		transform: rotate(-40deg);
	}
}
@keyframes eating-bottom {
	0% {
		transform: rotate(80deg);
	}
	50% {
		transform: rotate(0deg);
	}
	100% {
		transform: rotate(80deg);
	}
}
@keyframes pac-man-center {
	0% {
		transform: rotate(40deg);
	}
	50% {
		transform: rotate(0deg);
	}
	100% {
		transform: rotate(40deg);
	}
}
@keyframes pac-man-ball {
	0% {
		opacity: .7;
		box-shadow: 70px 0 0 0 #fed75a, 120px 0 0 0 #fed75a, 170px 0 0 0 #fed75a, 220px 0 0 0 #fed75a;
	}
	100% {
		box-shadow: 20px 0 0 0 #fed75a, 70px 0 0 0 #fed75a, 120px 0 0 0 #fed75a, 170px 0 0 0 #fed75a;
	}
}
