<div class="bm-pl">
	<div class="bm-pl__blob bm-pl__blob--r"></div>
	<div class="bm-pl__blob bm-pl__blob--g"></div>
	<div class="bm-pl__blob bm-pl__blob--b"></div>
</div>
* {
	border: 0;
	box-sizing: border-box;
	margin: 0;
	padding: 0;
}
:root {
	font-size: calc(16px + (24 - 16) * (100vw - 320px) / (1280 - 320));
}
body {
	background: hsl(223,10%,10%);
	font: 1em/1.5 sans-serif;
	height: 100vh;
	display: grid;
	place-items: center;
}
.bm-pl {
	position: relative;
	width: 12em;
	height: 12em;
}
.bm-pl__blob {
	animation: moveR 8s linear infinite;
	border-radius: 50%;
	mix-blend-mode: screen;
	position: absolute;
	top: 0;
	left: 0;
	width: 9em;
	height: 9em;
}
.bm-pl__blob--r {
	background: hsl(3,90%,55%);
}
.bm-pl__blob--g {
	animation-name: moveG;
	background: hsl(113,90%,55%);
}
.bm-pl__blob--b {
	animation-name: moveB;
	background: hsl(223,90%,55%);
}

/* Animation */
@keyframes moveR {
	from, to {
		border-radius: 54% 79% 75% 58% / 70% 66% 71% 47%;
		transform: translate(0,0) rotate(-35deg) scale(0.875,1);
	}
	33% {
		border-radius: 79% 43% 56% 67% / 58% 64% 61% 60%;
		transform: translate(2.75em,0) rotate(0) scale(0.75,0.875);
	}
	67% {
		border-radius: 55% 77% 56% 67% / 58% 64% 61% 60%;
		transform: translate(1.25em,-0.5em) rotate(0) scale(1.125,0.875);
	}
}
@keyframes moveG {
	from, to {
		border-radius: 60% 59% 51% 58% / 69% 64% 52% 55%;
		transform: translate(2.25em,1em) rotate(45deg) scale(1.125,0.875);
	}
	33% {
		border-radius: 51% 95% 72% 59% / 75% 98% 54% 75%;
		transform: translate(0,0.5em) rotate(0) scale(1,1);
	}
	67% {
		border-radius: 74% 85% 63% 87% / 81% 100% 62% 82%;
		transform: translate(1em,2em) rotate(0) scale(0.75,0.875);
	}
}
@keyframes moveB {
	from, to {
		border-radius: 52% 59% 50% 58% / 56% 80% 40% 59%;
		transform: translate(1.75em,3em) rotate(0) scale(1,1);
	}
	25% {
		border-radius: 71% 58% 100% 43% / 68% 53% 85% 68%;
		transform: translate(-0.75em,3em) rotate(10deg) scale(0.75,1);
	}
	50% {
		border-radius: 99% 62% 87% 69% / 93% 92% 79% 75%;
		transform: translate(2em,2em) rotate(0) scale(0.7,0.7);
	}
	75% {
		border-radius: 78% 98% 100% 73% / 75% 76% 100% 91%;
		transform: translate(3.5em,2em) rotate(0) scale(0.875,0.875);
	}
}

External CSS

This Pen doesn't use any external CSS resources.

External JavaScript

This Pen doesn't use any external JavaScript resources.