2fdmoff2ytk / style.css
nkjoy's picture
๋””์ž์ธ์— ์ƒ๋ช…๋ ฅ์„ ๋ถˆ์–ด ๋„ฃ์–ด์ค˜
dfb2581 verified
body {
padding: 2rem;
font-family: -apple-system, BlinkMacSystemFont, "Arial", sans-serif;
}
h1 {
font-size: 16px;
margin-top: 0;
}
p {
color: rgb(107, 114, 128);
font-size: 15px;
margin-bottom: 10px;
margin-top: 5px;
}
.card {
max-width: 620px;
margin: 0 auto;
padding: 16px;
border: 1px solid lightgray;
border-radius: 16px;
}
.card p:last-child {
margin-bottom: 0;
}
/* Animated Background */
@keyframes gradientBG {
0% { background-position: 0% 50%; }
50% { background-position: 100% 50%; }
100% { background-position: 0% 50%; }
}
.animated-bg {
background: linear-gradient(-45deg, #0d0d0e, #1a1a2e, #16213e, #0d0d0e);
background-size: 400% 400%;
animation: gradientBG 15s ease infinite;
}
/* Floating Particles */
.particle {
position: absolute;
border-radius: 50%;
background: rgba(124, 58, 237, 0.3);
animation: float 20s infinite;
pointer-events: none;
}
@keyframes float {
0%, 100% {
transform: translateY(0) translateX(0) rotate(0deg);
opacity: 0;
}
10% {
opacity: 1;
}
90% {
opacity: 1;
}
100% {
transform: translateY(-100vh) translateX(100px) rotate(360deg);
opacity: 0;
}
}
/* Fade In Up Animation */
@keyframes fadeInUp {
from {
opacity: 0;
transform: translateY(30px);
}
to {
opacity: 1;
transform: translateY(0);
}
}
.fade-in-up {
animation: fadeInUp 0.6s ease-out forwards;
opacity: 0;
}
.delay-1 { animation-delay: 0.1s; }
.delay-2 { animation-delay: 0.2s; }
.delay-3 { animation-delay: 0.3s; }
.delay-4 { animation-delay: 0.4s; }
.delay-5 { animation-delay: 0.5s; }
/* Glowing Pulse */
@keyframes glowPulse {
0%, 100% {
box-shadow: 12px 12px 24px #050506, -12px -12px 24px #1f1f22;
}
50% {
box-shadow: 12px 12px 24px #050506, -12px -12px 24px #1f1f22, 0 0 30px rgba(124, 58, 237, 0.3);
}
}
.glow-hover:hover {
animation: glowPulse 2s ease-in-out infinite;
}
/* Shimmer Effect for Preview */
@keyframes shimmer {
0% {
background-position: -200% 0;
}
100% {
background-position: 200% 0;
}
}
.shimmer {
background: linear-gradient(90deg, #1a1a1a 25%, #2a2a2a 50%, #1a1a1a 75%);
background-size: 200% 100%;
animation: shimmer 2s infinite;
}
/* Typing Indicator */
@keyframes typing {
0%, 60%, 100% { transform: translateY(0); }
30% { transform: translateY(-10px); }
}
.typing-dot {
width: 8px;
height: 8px;
background: #06B6D4;
border-radius: 50%;
display: inline-block;
margin: 0 4px;
animation: typing 1.4s infinite ease-in-out;
}
.typing-dot:nth-child(2) { animation-delay: 0.2s; }
.typing-dot:nth-child(3) { animation-delay: 0.4s; }
/* Button Ripple Effect */
@keyframes ripple {
0% {
transform: scale(0);
opacity: 1;
}
100% {
transform: scale(4);
opacity: 0;
}
}
.ripple-effect {
position: relative;
overflow: hidden;
}
.ripple-effect::after {
content: '';
position: absolute;
top: 50%;
left: 50%;
width: 5px;
height: 5px;
background: rgba(255, 255, 255, 0.5);
border-radius: 50%;
transform: scale(0);
opacity: 0;
transition: all 0.3s;
}
.ripple-effect:active::after {
animation: ripple 0.6s ease-out;
}
/* Neon Glow Text */
@keyframes neonGlow {
0%, 100% {
text-shadow: 0 0 5px rgba(255, 77, 151, 0.5), 0 0 10px rgba(255, 77, 151, 0.3);
}
50% {
text-shadow: 0 0 10px rgba(255, 77, 151, 0.8), 0 0 20px rgba(255, 77, 151, 0.5), 0 0 30px rgba(255, 77, 151, 0.3);
}
}
.neon-text {
animation: neonGlow 2s ease-in-out infinite;
}
/* Card Hover Border Animation */
@keyframes borderGlow {
0%, 100% {
border-color: rgba(124, 58, 237, 0.2);
}
50% {
border-color: rgba(124, 58, 237, 0.6);
}
}
.card-animate {
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}
.card-animate:hover {
animation: borderGlow 1.5s ease-in-out infinite;
}