Files
2025-02-11 21:47:24 +07:00

205 lines
3.0 KiB
CSS

@keyframes shake {
0%,
100% {
transform: translateX(0);
}
25% {
transform: translateX(-5px) rotate(-5deg);
}
75% {
transform: translateX(5px) rotate(5deg);
}
}
@keyframes float {
0%,
100% {
transform: translateY(0);
}
50% {
transform: translateY(-10px);
}
}
@keyframes fadeIn {
from {
opacity: 0;
transform: translateY(20px);
}
to {
opacity: 1;
transform: translateY(0);
}
}
@keyframes pulse {
0%,
100% {
opacity: 1;
transform: scale(1);
}
50% {
opacity: .8;
transform: scale(1.1);
}
}
@keyframes floating-hearts {
0% {
transform: translateY(0) translateX(0) rotate(0);
opacity: 1;
}
100% {
transform: translateY(-100px) translateX(var(--translate-x)) rotate(var(--rotate));
opacity: 0;
}
}
.shake {
animation: shake 0.5s cubic-bezier(.36, .07, .19, .97) both;
}
.animate-float {
animation: float 2s ease-in-out infinite;
}
.animate-fade-in {
animation: fadeIn 1s ease-in;
}
.animate-pulse {
animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
}
.hearts-animation {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
pointer-events: none;
}
.hearts-animation::before,
.hearts-animation::after {
content: '❤️';
position: absolute;
font-size: 1.5rem;
animation: floating-hearts 2s ease-in-out infinite;
opacity: 0;
}
.hearts-animation::before {
--translate-x: -20px;
--rotate: -30deg;
left: 40%;
}
.hearts-animation::after {
--translate-x: 20px;
--rotate: 30deg;
right: 40%;
animation-delay: 1s;
}
.music-controls {
position: fixed;
bottom: 20px;
right: 20px;
z-index: 1000;
background: rgba(255, 255, 255, 0.9);
padding: 8px;
width: 50px;
height: 50px;
border-radius: 50%;
box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
backdrop-filter: blur(5px);
}
.music-controls button {
background: none;
border: none;
font-size: 1.5rem;
color: #ff4081;
cursor: pointer;
width: 100%;
height: 100%;
display: flex;
align-items: center;
justify-content: center;
}
.music-controls button:hover {
color: #e91e63;
}
.success-screen {
display: none;
}
.watermark {
position: fixed;
bottom: 10px;
width: 100%;
text-align: center;
font-size: 0.75rem;
color: #888;
}
.button-container {
display: flex;
justify-content: center;
align-items: center;
gap: 1rem;
margin-top: 1rem;
}
#message {
margin-top: 2rem;
/* Ensure message moves down when buttons scale up */
}
@media (max-width: 640px) {
.music-controls {
bottom: 10px;
padding: 6px 12px;
width: calc(100% - 32px);
max-width: 300px;
}
.music-controls button {
width: 100%;
}
.hearts-animation::before,
.hearts-animation::after {
font-size: 1rem;
}
}
@media (max-height: 500px) and (orientation: landscape) {
.music-controls {
bottom: 5px;
}
.main-screen,
.success-screen {
padding: 1rem;
}
}
@media (prefers-color-scheme: dark) {
.music-controls {
background: rgba(0, 0, 0, 0.7);
}
}