mirror of
https://github.com/tiennm99/valentine-2025.git
synced 2026-10-11 12:28:58 +00:00
205 lines
3.0 KiB
CSS
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);
|
|
}
|
|
}
|