body {
display:flex;
align-items:center;
justify-content:center;
flex-direction:column;
height:100vh;
background:radial-gradient(#0a2a43 30%,#09243a);
font-family:'Asap',sans-serif;
}
body:after {
content:'';
display:block;
position:absolute;
top:1rem;
right:1rem;
bottom:1rem;
left:1rem;
border:4px solid #071c2d;
border-radius:2px;
background:none;
pointer-events:none;
}
.label {
flex:0;
color:#b8c5d0;
letter-spacing:.04em;
text-align:center;
margin-bottom:2rem;
font-size:3rem;
}
@media screen and (min-width:60rem) {
.label {
font-size:5vw;
}
}.checkbox-wrap {
flex:none;
position:relative;
width:10%;
min-width:8rem;
z-index:1;
}
.checkbox-wrap:after {
content:'';
display:block;
padding-top:50%;
}
.checkbox {
display:none;
}
.checkbox:checked ~ .firefly .abdomen {
background:#27231e;
box-shadow:inset 0 0 1.5rem rgba(150,0,0,0.75);
animation:flicker 4000ms ease infinite;
}
.checkbox:checked ~ .firefly .wing-a {
transform:rotate(30deg);
}
.checkbox:checked ~ .firefly .wing-b {
transform:rotate(-30deg);
}
.head {
position:absolute;
top:15%;
left:60%;
bottom:15%;
background:#27231e;
width:70%;
border-radius:40% 80% 80% 40%;
box-shadow:inset -0.1rem 0 0 0.3rem rgba(14,10,10,0.2);
}
.eyes {
position:absolute;
top:-5%;
right:10%;
bottom:-5%;
width:35%;
}
.eyes:before,.eyes:after {
content:'';
display:block;
position:absolute;
right:0;
width:100%;
box-sizing:border-box;
border-radius:100%;
background:#0e0a0a;
padding-top:100%;
}
.eyes:before {
top:0;
}
.eyes:after {
bottom:0;
}
.antennae {
position:absolute;
top:20%;
left:-150%;
bottom:20%;
width:400%;
z-index:-1;
}
.antennae:before,.antennae:after {
content:'';
display:block;
position:absolute;
right:0;
width:100%;
box-sizing:border-box;
border-color:#0e0a0a;
border-style:solid;
padding-top:65%;
border-width:.25rem .25rem .25rem 0;
}
.antennae:before {
top:80%;
border-radius:0 100% 100% 100%;
}
.antennae:after {
bottom:80%;
border-radius:100% 100% 100% 0;
}
.thorax {
position:absolute;
top:0;
left:100%;
bottom:0;
background:#d43b1f;
width:30%;
border-radius:20% 80% 80% 20%;
box-shadow:inset -0.1rem 0 0.1rem 0.3rem rgba(0,0,0,0.2);
}
.abdomen {
position:absolute;
top:10%;
right:20%;
bottom:10%;
background:#27231e;
width:100%;
transition:all 1000ms ease;
border-radius:100% 30% 30% 100%;
box-sizing:border-box;
}
.abdomen:after {
content:'';
display:block;
position:absolute;
top:0;
right:0;
bottom:0;
left:0;
background:repeating-linear-gradient(90deg,transparent 0,transparent 15%,rgba(0,0,20,0.1) 15%,rgba(0,0,20,0.1) 20%);
mix-blend-mode:multiply;
border-radius:100% 30% 30% 100%;
z-index:0;
box-shadow:inset -1rem 0 0.2rem 0.3rem rgba(0,0,0,0.1);
}
.wings {
position:absolute;
top:-20%;
right:0;
bottom:-20%;
left:-5%;
z-index:1;
}
.wings .wing {
position:absolute;
right:0;
background:repeating-linear-gradient(#27231e 0%,#27231e 40%,#191613 40%,#191613 60%);
width:100%;
height:50%;
transition:all 200ms ease-out;
border:1px solid #40341d;
box-sizing:border-box;
box-shadow:inset 0.2rem 0 0.1rem 0.5rem rgba(0,0,0,0.5);
}
.wings .wing.wing-a {
transform-origin:bottom right;
top:0;
border-radius:90% 30% 0 20%;
}
.wings .wing.wing-b {
transform-origin:top right;
top:50%;
border-radius:20% 0 30% 90%;
}
@keyframes flicker {
0%,100% {
background:#fefa01;
box-shadow:0 0 1rem #fefa01,inset -0.25rem 0 0 0.5rem rgba(14,10,10,0.1);
}
30%,70% {
background:#fffd99;
box-shadow:-1rem 0 8rem 1rem #fefa01,inset -0.25rem 0 0 0.5rem rgba(14,10,10,0.1);
}
50% {
box-shadow:-1rem 0 8rem 1rem rgba(254,250,1,0.8),inset -0.25rem 0 0 0.5rem rgba(14,10,10,0.1);
}
}