/* Respect reduced motion */
@media (prefers-reduced-motion: reduce) {
    * {
        animation: none !important;
        transition: none !important;
    }
}



@keyframes fadeDown {
    from {
        opacity: 0;
        transform: translateY(-50px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }

}

/* Subtle hero entrance */
@keyframes fadeSlideUp {
    from {
        opacity: 0;
        transform: translateY(30px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.hero {
    animation: fadeSlideUp 0.6s ease-out both;
}

/* Info icon hint */
@keyframes pulse {
    0% {
        transform: scale(1);
        opacity: 1;
    }

    50% {
        transform: scale(1.15);
        opacity: .7;
    }

    100% {
        transform: scale(1);
        opacity: 1;
    }
}

@media (prefers-reduced-motion: no-preference) {
    .infoBox i {
        animation: pulse 2.5s ease-in-out infinite;
        transform-origin: center;
    }
}

/* Card hover polish */
.projectCard, .hero {
    transition: transform .25s ease, box-shadow .25s ease;
}

.projectCard:hover, .avatar:hover {
    transform: translateY(-4px);
    box-shadow: 0 8px 20px rgba(0, 0, 0, .25);
}

/* Flip easing */
.flip-inner, .flip-card-inner {
    transition: transform 0.7s cubic-bezier(.4, .2, .2, 1);
}

/* Initial state helpers (optional hooks) */
.is-hidden-top {
    transform: translate3d(0, -100%, 0);
    opacity: 0;
}

.is-hidden-right {
    transform: translate3d(100%, 0, 0);
    opacity: 0;
}

.is-hidden-left {
    transform: translate3d(-100%, 0, 0);
    opacity: 0;
}

.is-hidden-faded {
    opacity: 0;
}