@keyframes blob1 {

    0%,
    100% {
        transform: translate(0px, 0px) scale(1);
    }

    33% {
        transform: translate(40vw, -30vh) scale(1.2);
    }

    66% {
        transform: translate(20vw, 40vh) scale(0.8);
    }
}

@keyframes blob2 {

    0%,
    100% {
        transform: translate(0px, 0px) scale(1);
    }

    33% {
        transform: translate(-30vw, 40vh) scale(1.1);
    }

    66% {
        transform: translate(30vw, -20vh) scale(0.9);
    }
}

@keyframes blob3 {

    0%,
    100% {
        transform: translate(0px, 0px) scale(1);
    }

    33% {
        transform: translate(50vw, 30vh) scale(0.9);
    }

    66% {
        transform: translate(-40vw, -10vh) scale(1.3);
    }
}

.animate-blob-1 {
    animation: blob1 25s infinite alternate ease-in-out;
}

.animate-blob-2 {
    animation: blob2 28s infinite alternate ease-in-out;
}

.animate-blob-3 {
    animation: blob3 32s infinite alternate ease-in-out;
}

/* Hero Cards 3D Transforms */
.hero-card-1 {
    transform: perspective(1000px) rotateY(12deg) rotateZ(6deg) translateZ(-50px);
    transform-style: preserve-3d;
}

.group:hover .hero-card-1 {
    transform: perspective(1000px) translateZ(0px) rotateY(0deg) rotateZ(0deg);
}

.hero-card-2 {
    transform: perspective(1000px) rotateY(-12deg) rotateZ(-3deg) translateZ(0px);
    transform-style: preserve-3d;
}

.group:hover .hero-card-2 {
    transform: perspective(1000px) translateZ(50px) rotateY(0deg) rotateZ(0deg);
}

.hero-card-3 {
    transform: perspective(1000px) rotateY(6deg) rotateZ(2deg) translateZ(50px);
    transform-style: preserve-3d;
}

.group:hover .hero-card-3 {
    transform: perspective(1000px) translateZ(100px) rotateY(0deg) rotateZ(0deg);
}

/* Animaciones para las tarjetas de aptitudes */
.skill-card:hover .skill-details {
    opacity: 1;
    transform: translateY(0);
}

.skill-details {
    opacity: 0;
    transform: translateY(15px);
    transition: all 0.3s ease-in-out;
}

/* Ocultar barra de scroll para la línea de tiempo horizontal */
.no-scrollbar::-webkit-scrollbar {
    display: none;
}

.no-scrollbar {
    -ms-overflow-style: none;
    scrollbar-width: none;
}

@keyframes flow-gradient {
    0% {
        transform: translateX(-100%);
    }

    100% {
        transform: translateX(100%);
    }
}

.timeline-glow-line {
    animation: flow-gradient 3s linear infinite;
}


.perspective-1000 {
    perspective: 1000px;
}

.aptitude-card {
    will-change: transform, opacity, z-index;
    transform-origin: center center;
    cursor: pointer;
}

@keyframes fadeInUp {
    from {
        opacity: 0;
        transform: translateY(20px);
    }

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

@keyframes fadeIn {
    from {
        opacity: 0;
    }

    to {
        opacity: 1;
    }
}


@keyframes floating-card {
    0% {
        transform: translateY(0px);
    }

    50% {
        transform: translateY(-10px);
    }

    100% {
        transform: translateY(0px);
    }
}

.animate-float {
    animation: floating-card 6s ease-in-out infinite;
}

.animate-float-delayed {
    animation: floating-card 6s ease-in-out 2s infinite;
}

.animate-float-delayed-2 {
    animation: floating-card 6s ease-in-out 4s infinite;
}

@media print {
    @page {
        size: A4;
        margin: 1.5cm;
    }

    body>*:not(#cv-printable),
    nav,
    #downloadPdfBtn {
        display: none !important;
    }

    #cv-printable {
        display: block !important;
        visibility: visible !important;
        position: static !important;
        width: 100% !important;
        max-width: 100% !important;
        min-height: auto !important;
        z-index: auto !important;
        padding: 0 !important;
        margin: 0 !important;
        background: white !important;
        color: black !important;
        font-size: 10pt !important;
    }

    #cv-printable * {
        -webkit-print-color-adjust: exact;
        print-color-adjust: exact;
    }
}