/* Scroll Reveal Animations */
.reveal {
    opacity: 0;
    transform: translateY(30px);
    transition: all 0.8s cubic-bezier(0.2, 0.8, 0.2, 1);
}

.reveal.active {
    opacity: 1;
    transform: translateY(0);
}

.reveal-scroll {
    opacity: 0;
    transform: scale(0.9);
    transition: all 0.8s cubic-bezier(0.2, 0.8, 0.2, 1);
}

.reveal-scroll.active {
    opacity: 1;
    transform: scale(1);
}

/* Delay Helpers */
.delay-1 { transition-delay: 0.2s; }
.delay-2 { transition-delay: 0.4s; }
.delay-3 { transition-delay: 0.6s; }

/* Micro-animations */
@keyframes pulse {
    0% { transform: translate(-50%, -50%) scale(1); opacity: 1; box-shadow: 0 0 20px rgba(6, 182, 212, 0.5); }
    100% { transform: translate(-50%, -50%) scale(1.1); opacity: 0.8; box-shadow: 0 0 40px rgba(6, 182, 212, 0.8); }
}

@keyframes float {
    0% { transform: translateY(0px); }
    50% { transform: translateY(-20px); }
    100% { transform: translateY(0px); }
}

@keyframes orbit {
    0% { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
}

/* Neural Network Visual */
.neural-sphere {
    animation: float 6s infinite ease-in-out;
}

.orbits::before, .orbits::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    width: 250px;
    height: 100px;
    border: 1px dashed var(--clr-accent-1);
    border-radius: 50%;
    transform: translate(-50%, -50%);
    animation: orbit 10s infinite linear;
    opacity: 0.3;
}

.orbits::after {
    width: 100px;
    height: 250px;
    border-color: var(--clr-accent-2);
    animation: orbit 15s infinite linear reverse;
}

/* Hover effects for services */
.service-card:hover .icon {
    transform: scale(1.2);
    transition: transform 0.3s ease;
}

/* Gradient Text shine effect (Optional) */
@keyframes text-shine {
    0% { background-position: 0% 50%; }
    50% { background-position: 100% 50%; }
    100% { background-position: 0% 50%; }
}

.gradient-text {
    background-size: 200% auto;
    animation: text-shine 5s linear infinite;
}
