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); } }