@keyframes fadeIn {
    from { opacity: 0; transform: translateY(20px); }
    to { opacity: 1; transform: translateY(0); }
}

@keyframes bounce {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-10px); }
}

@keyframes pulse {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.5; }
}

.animate-fadeIn {
    animation: fadeIn 1s ease-out forwards;
}

.delay-100 {
    animation-delay: 0.1s;
}

.delay-200 {
    animation-delay: 0.2s;
}

.animate-bounce {
    animation: bounce 2s infinite;
}

.hero {
    height: 500px;
    background-image: url('http://static.photos/technology/1200x630/5');
    background-size: cover;
    background-position: center;
}

.ai-particles {
    pointer-events: none;
}

.loader-dots {
    display: inline-block;
    position: relative;
    width: 80px;
    height: 20px;
}

.loader-dots div {
    position: absolute;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: #8b5cf6;
    animation-timing-function: cubic-bezier(0, 1, 1, 0);
}

.loader-dots div:nth-child(1) {
    left: 8px;
    animation: loader-dots1 0.6s infinite;
}

.loader-dots div:nth-child(2) {
    left: 8px;
    animation: loader-dots2 0.6s infinite;
}

.loader-dots div:nth-child(3) {
    left: 32px;
    animation: loader-dots2 0.6s infinite;
}

.loader-dots div:nth-child(4) {
    left: 56px;
    animation: loader-dots3 0.6s infinite;
}

@keyframes loader-dots1 {
    0% { transform: scale(0); }
    100% { transform: scale(1); }
}

@keyframes loader-dots3 {
    0% { transform: scale(1); }
    100% { transform: scale(0); }
}

@keyframes loader-dots2 {
    0% { transform: translate(0, 0); }
    100% { transform: translate(24px, 0); }
}

.category-card:hover i {
    transform: scale(1.2);
    transition: transform 0.3s ease;
}

.category-card i {
    transition: transform 0.3s ease;
}