Template:BibisiLauncher/style.css
From SNCApedia, the shit nobody cares about encyclopedia
/* ==============================
BIBISI LAUNCHER
Pure CSS — no JS required
Checkbox toggle trick
============================== */
/* Hide the actual checkbox */
#rocket-toggle {
display: none;
}
/* The visible button label */
.launcher-btn {
display: inline-block;
padding: 8px 16px;
background: #d33;
color: white;
font-weight: bold;
border-radius: 5px;
cursor: pointer;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
.launcher-btn:hover { background: #f44; }
/* Fixed frame anchored to bottom center */
.spawn-frame {
position: fixed;
bottom: -50px;
left: 50%;
margin-left: -25px;
width: 50px;
text-align: center;
font-size: 50px;
z-index: 9999;
}
/* All animation elements hidden by default */
.rocket-assembly,
.smoke,
.fire {
position: absolute;
left: 0;
visibility: hidden;
}
.fire {
top: 40px;
width: 100%;
font-size: 30px;
}
.f1 { animation-delay: 0s; }
.f2 { animation-delay: 0.1s; }
.f3 { animation-delay: 0.2s; }
.smoke {
top: 10px;
width: 100%;
z-index: -1;
}
.s1 { margin-left: -15px; animation-delay: 0s; }
.s2 { margin-left: 15px; animation-delay: 0.1s; }
.s3 { margin-top: 10px; animation-delay: 0.2s; }
/* ==============================
TRIGGERS — checkbox checked
============================== */
#rocket-toggle:checked ~ .spawn-frame .rocket-assembly {
visibility: visible;
animation: rocket-fly 2s linear forwards;
}
#rocket-toggle:checked ~ .spawn-frame .smoke {
visibility: visible;
animation: smoke-poof 0.8s ease-out forwards;
}
#rocket-toggle:checked ~ .spawn-frame .fire {
visibility: visible;
animation: fire-burn 0.4s linear infinite;
}
/* ==============================
ANIMATIONS
============================== */
@keyframes rocket-fly {
0% { transform: translateY(0); }
100% { transform: translateY(-120vh); }
}
@keyframes fire-burn {
0% { transform: translateY(0) scale(1); opacity: 1; }
100% { transform: translateY(40px) scale(0); opacity: 0; }
}
@keyframes smoke-poof {
0% { transform: scale(0.5); opacity: 1; }
100% { transform: scale(3); opacity: 0; }
}