JSFiddle - React, Tailwind, and code Playground

HTML

<div class="scene">
	<div class="toggler">
		<img alt="Lamp" class="lamp"/>
	</div>
	<div class="main-objects">
		<div class="lamp-light">
			<div class="witch-box">
				<img alt="Witch" class="witch"/>
			</div>
			<div class="hat-box">
				<img alt="Hat" class="hat"/>
				<img alt="Bird" class="bird"/>
			</div>
		</div>
	</div>
</div>

CSS

body{
	background:#000;
}

.scene{
	position:relative;
	text-align:center;
	color:#FFF;
}

.hat-box{
	position:relative;
}

.hat{
	position:relative;
	z-index:2;
}

.bird{
	position:absolute;
	top:0;
	left:0;
	right:0;
	margin:auto;
	transition:top ease 1s;
}

.bird.fly-out{
	top:-60px;
}

.lamp-light{
	display:flex;
	align-items:center;
	max-width:400px;
	margin:200px auto 0;
}

.lamp-light>*{
	flex-basis:50%;
	opacity:0.5;
}

.lamp-light:before{
	content:'';
	position:absolute;
	margin:auto;
	top:0;
	left:0;
	right:0;
	bottom:0;
	border:solid 295px transparent;
	border-bottom:solid 350px #FF9;
	border-top:none;
}
.witch{
	position:relative;
	z-index:2;
}




/* stubs */
.lamp{
	position:relative;
	z-index:2;
	background:#00F;
	height:60px;
	width:60px;
	display:inline-block;
}

.witch{
	background:#F90;
	display:inline-block;
	width:90px;
	height:150px;
}

.hat{
	width:90px;
	height:90px;
	display:inline-block;
	background:#0F0;
}

.bird{
	display:inline-block;
	background:#F00;
	width:40px;
	height:40px;
}

JavaScript

(function($scene){
	$scene.find('.toggler .lamp').click(function(){
		$scene.find('.main-objects').toggle();
	}).end().find('.witch').click(function(){
		$scene.find('.bird').toggleClass('fly-out');
	});
})($('.scene'));