* { scroll-behavior: smooth; }
body { font-family: 'Inter', 'Nunito', sans-serif; }
h1, h2, h3, h4, h5, h6 { font-family: 'Nunito', sans-serif; }

::-webkit-scrollbar { width: 8px; }
::-webkit-scrollbar-track { background: #1a1a2e; }
::-webkit-scrollbar-thumb { background: #333; border-radius: 4px; }
::-webkit-scrollbar-thumb:hover { background: #9d4edd; }

::selection { background: rgba(157, 78, 221, 0.4); color: white; }

@keyframes float {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-10px); }
}
@keyframes pulse-glow {
    0%, 100% { box-shadow: 0 0 20px rgba(157, 78, 221, 0.4); }
    50% { box-shadow: 0 0 40px rgba(157, 78, 221, 0.7); }
}
.animate-float { animation: float 3s ease-in-out infinite; }
.animate-pulse-glow { animation: pulse-glow 2s ease-in-out infinite; }

.gradient-purple {
    background: linear-gradient(135deg, #9d4edd 0%, #7b2cbf 100%);
}
.gradient-rainbow {
    background: linear-gradient(135deg, #9d4edd 0%, #ff006e 50%, #fb5607 100%);
}

.reveal {
    opacity: 0;
    transform: translateY(30px);
    transition: all 0.6s cubic-bezier(0.16, 1, 0.3, 1);
}
.reveal.active {
    opacity: 1;
    transform: translateY(0);
}

.line-clamp-3 {
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
