.hero-gradient {
    background: linear-gradient(135deg, #1E3A5F 0%, #0c2340 50%, #162d50 100%);
}

.hero-pattern {
    background-image: radial-gradient(rgba(255,255,255,0.1) 1px, transparent 1px);
    background-size: 30px 30px;
}

.card-hover {
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.card-hover:hover {
    transform: translateY(-4px);
    box-shadow: 0 20px 40px rgba(0,0,0,0.1);
}

.section-fade {
    opacity: 1;
    transform: translateY(0);
    transition: opacity 0.6s ease, transform 0.6s ease;
}

.section-fade.animate {
    opacity: 0;
    transform: translateY(20px);
}

.section-fade.animate.visible {
    opacity: 1;
    transform: translateY(0);
}

.step-connector {
    position: relative;
}

.step-connector::after {
    content: '';
    position: absolute;
    top: 50%;
    right: -1rem;
    width: 2rem;
    height: 2px;
    background: #0EA5E9;
}

@media (max-width: 768px) {
    .step-connector::after {
        display: none;
    }
}

.portfolio-card img {
    transition: transform 0.5s ease;
}

.portfolio-card:hover img {
    transform: scale(1.05);
}

.animate-float {
    animation: float 3s ease-in-out infinite;
}

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