|
|
|
|
|
@keyframes fade-in { |
|
|
from { |
|
|
opacity: 0; |
|
|
transform: translateY(20px); |
|
|
} |
|
|
to { |
|
|
opacity: 1; |
|
|
transform: translateY(0); |
|
|
} |
|
|
} |
|
|
|
|
|
@keyframes slide-up { |
|
|
from { |
|
|
opacity: 0; |
|
|
transform: translateY(40px); |
|
|
} |
|
|
to { |
|
|
opacity: 1; |
|
|
transform: translateY(0); |
|
|
} |
|
|
} |
|
|
|
|
|
@keyframes gradient-shift { |
|
|
0%, 100% { |
|
|
background-position: 0% 50%; |
|
|
} |
|
|
50% { |
|
|
background-position: 100% 50%; |
|
|
} |
|
|
} |
|
|
|
|
|
.animate-fade-in { |
|
|
animation: fade-in 1s ease-out; |
|
|
} |
|
|
|
|
|
.animate-slide-up { |
|
|
animation: slide-up 1s ease-out 0.3s both; |
|
|
} |
|
|
|
|
|
.animate-slide-up-delay { |
|
|
animation: slide-up 1s ease-out 0.6s both; |
|
|
} |
|
|
|
|
|
.animate-gradient { |
|
|
background-size: 200% 200%; |
|
|
animation: gradient-shift 3s ease infinite; |
|
|
} |
|
|
|
|
|
|
|
|
::-webkit-scrollbar { |
|
|
width: 10px; |
|
|
} |
|
|
|
|
|
::-webkit-scrollbar-track { |
|
|
background: #1f2937; |
|
|
} |
|
|
|
|
|
::-webkit-scrollbar-thumb { |
|
|
background: linear-gradient(180deg, #f43f5e, #eab308); |
|
|
border-radius: 5px; |
|
|
} |
|
|
|
|
|
::-webkit-scrollbar-thumb:hover { |
|
|
background: linear-gradient(180deg, #e11d48, #ca8a04); |
|
|
} |
|
|
|
|
|
|
|
|
html { |
|
|
scroll-behavior: smooth; |
|
|
} |
|
|
|
|
|
|
|
|
.glass { |
|
|
background: rgba(31, 41, 55, 0.7); |
|
|
backdrop-filter: blur(10px); |
|
|
border: 1px solid rgba(255, 255, 255, 0.1); |
|
|
} |
|
|
|
|
|
|
|
|
.glow-rose { |
|
|
box-shadow: 0 0 20px rgba(244, 63, 94, 0.5); |
|
|
} |
|
|
|
|
|
.glow-yellow { |
|
|
box-shadow: 0 0 20px rgba(234, 179, 8, 0.5); |
|
|
} |
|
|
|
|
|
|
|
|
.text-gradient { |
|
|
background: linear-gradient(135deg, #f43f5e, #eab308); |
|
|
-webkit-background-clip: text; |
|
|
-webkit-text-fill-color: transparent; |
|
|
background-clip: text; |
|
|
} |
|
|
|
|
|
|
|
|
.btn-hover { |
|
|
position: relative; |
|
|
overflow: hidden; |
|
|
transition: all 0.3s ease; |
|
|
} |
|
|
|
|
|
.btn-hover::before { |
|
|
content: ''; |
|
|
position: absolute; |
|
|
top: 50%; |
|
|
left: 50%; |
|
|
width: 0; |
|
|
height: 0; |
|
|
border-radius: 50%; |
|
|
background: rgba(255, 255, 255, 0.2); |
|
|
transform: translate(-50%, -50%); |
|
|
transition: width 0.6s, height 0.6s; |
|
|
} |
|
|
|
|
|
.btn-hover:hover::before { |
|
|
width: 300px; |
|
|
height: 300px; |
|
|
} |
|
|
|
|
|
|
|
|
.card-hover { |
|
|
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); |
|
|
} |
|
|
|
|
|
.card-hover:hover { |
|
|
transform: translateY(-10px) scale(1.02); |
|
|
} |
|
|
|
|
|
|
|
|
.loading-dots::after { |
|
|
content: ''; |
|
|
animation: dots 1.5s steps(4, end) infinite; |
|
|
} |
|
|
|
|
|
@keyframes dots { |
|
|
0%, 20% { content: ''; } |
|
|
40% { content: '.'; } |
|
|
60% { content: '..'; } |
|
|
80%, 100% { content: '...'; } |
|
|
} |
|
|
|
|
|
|
|
|
.neon-text { |
|
|
text-shadow: 0 0 10px rgba(244, 63, 94, 0.8), |
|
|
0 0 20px rgba(244, 63, 94, 0.6), |
|
|
0 0 30px rgba(244, 63, 94, 0.4); |
|
|
} |
|
|
|
|
|
|
|
|
.pulse-glow { |
|
|
animation: pulse-glow 2s infinite; |
|
|
} |
|
|
|
|
|
@keyframes pulse-glow { |
|
|
0%, 100% { |
|
|
box-shadow: 0 0 20px rgba(244, 63, 94, 0.5); |
|
|
} |
|
|
50% { |
|
|
box-shadow: 0 0 40px rgba(244, 63, 94, 0.8); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
@media (max-width: 768px) { |
|
|
.grid-responsive { |
|
|
grid-template-columns: 1fr; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
.floating { |
|
|
animation: floating 3s ease-in-out infinite; |
|
|
} |
|
|
|
|
|
@keyframes floating { |
|
|
0%, 100% { transform: translateY(0px); } |
|
|
50% { transform: translateY(-10px); } |
|
|
} |
|
|
|
|
|
|
|
|
.border-animation { |
|
|
position: relative; |
|
|
} |
|
|
|
|
|
.border-animation::before { |
|
|
content: ''; |
|
|
position: absolute; |
|
|
inset: -2px; |
|
|
padding: 2px; |
|
|
background: linear-gradient(45deg, #f43f5e, #eab308, #f43f5e); |
|
|
border-radius: inherit; |
|
|
mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0); |
|
|
mask-composite: exclude; |
|
|
animation: border-rotate 3s linear infinite; |
|
|
} |
|
|
|
|
|
@keyframes border-rotate { |
|
|
0% { transform: rotate(0deg); } |
|
|
100% { transform: rotate(360deg); } |
|
|
} |