/*-------------- RESETS --------------*/
*{
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    scroll-behavior: smooth;
}

/*-------------- COLORES --------------*/
:root{
    --color-fondo: #141a3a;
    --color-texto-blanco:#fff;
    --color-fondo-images:#0652CB;
    --color-rosa:#f12a8f;
    --color-morado:#9554ac;
    --color-azul:#778bcc;
    --color-gradient:#15abc8;

}

/*-------------- FONTS --------------*/
@font-face{
    font-family:'montserrat';
    src: url('/assets/fonts/Montserrat-VariableFont_wght.woff2');
}


/*-------------- ESTILOS GENERALES --------------*/

body{
    font-family: 'montserrat', sans-serif;
    background-color: var(--color-fondo);
    color: var(--color-texto-blanco);
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    min-height: 100vh;
}



/*-------------- IMG-HEADER --------------*/
.img-logo-header{
    margin-left: 30px;
}

.img-logo-header img{
    filter: invert(1);
    width: 60px;
}

/*-------------- HEADER --------------*/
.header{
    display: flex;
    justify-content: center;
    width: 100%;
    position: sticky;
    top: 0;
    z-index: 100;
}

.header-container{
    display: flex;
    justify-content: space-between;
    align-items: center;
    width: 70%;
    height: 60px;
    border-radius: 30px;
    box-shadow: 0 0 10px #343434;
    backdrop-filter: blur(4px);
    background-color: transparent;
    margin-top: 20px;
    position: relative;
}

/*-------------- NAV-HEADER --------------*/
.nav-header{
    margin-right: 30px;
}   

.ul-nav-header{
    display: flex;
    list-style: none;
    gap: 20px;
}

.contact-btn-header{
    filter: contrast(180%);
    background: linear-gradient(-50deg, var(--color-azul), var(--color-morado), var(--color-rosa));
}

/*-------------- LI-NAVBAR --------------*/

.li-nav-header{
    display: block;
    position: relative;
    cursor: pointer;
}

.li-nav-header::after{
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 2px;
    transform: scale(0);
    background-color: #fff;
    transition: transform .3s ease-in-out;
}

.li-nav-header:hover::after{
    transform: scale(1);
}

.li-nav-header a, .li-nav-header-contact-btn a{
    text-decoration: none;
    color: var(--color-texto-blanco);
    padding: 10px 20px;
    border-radius: 20px;
}

/*-------------- HERO --------------*/
.hero-section{
    display: flex;
    justify-content: center;
    align-items: center;
    min-height: 80vh;
    gap: 60px;
    width: 100%;
}

.hero-info-container{
    display: flex;
    
    max-width: 600px;
}

.hero-info-container p{
    font-weight: bold;
    font-size: 3.5rem;
}

.span-hero{
    font-size: 5rem;
    background: linear-gradient(45deg, var(--color-azul), var(--color-morado), var(--color-rosa));
    background-clip: text;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    animation: cambio-color 5s infinite;
    filter: contrast(300%);
}

.hero-img-container img{
    width: 300px;
}


/*-------------- MAIN --------------*/
.main{
    margin-top: 60px;
}

/*-------------- SKILLS --------------*/
.title, .skills-title-container{
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 10px;
    width: 100%;
}

.title h2{
    font-size: 3rem;
}

.skills-section{
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 100%;
    gap: 30px;
}

.info-container{
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 5px;
    min-width: 100px;
}

.skills-container-container{
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 80%;
}

.skills-container{
    display: flex;
    align-items: center;
    justify-content: center;
    width: 70%;
}

.skill-container-item{
    width: 100%;
    display: flex;
    justify-content: space-around;
    align-items: center;
    gap: 20px;
}

.knowledge-bar-container-container{
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 100%;
    gap: 90px;
}

.knowledge-bar-container{
    width: 100%;
    height: 10px;
    border-radius: 20px;
    background-color: #fff;
    timeline-scope: view();
    position: relative;
}

.knowledge-bar{
    width: 100%;
    height: 10px;
    border-radius: 20px;
    background:linear-gradient(to right, var(--color-morado), var(--color-gradient));
    box-shadow:
    0 0 5px var(--color-morado),
    0 0 5px var(--color-gradient);
    position: absolute;
}

.skills-svg{
    width: 35px;
}

.svg-html{
    fill:#e5532d ;
}

.svg-css{
    fill:#6b399c;
}

.svg-js{
    fill:#f1d12d;
}

.svg-react{
    fill:#61dbfb;
}

.knowledge-level{
    min-width: 80px;
    display: flex;
    justify-content: center;
}

@keyframes fillBar {
    from { 
        width: 0; 
    }
    to { 
        width: var(--target-width, 80%); 
    }
}

.knowledge-bar.animate {
    animation: fillBar 1.5s ease-out forwards;
}

.knowledge-bar-html { --target-width: 80%; }
.knowledge-bar-css { --target-width: 90%; }
.knowledge-bar-js { --target-width: 25%; }
.knowledge-bar-react { --target-width: 20%; }
.knowledge-bar-tailwind { --target-width: 60%; }

/*-------------- PROYECTS --------------*/

.proyect-section{
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    margin-top: 100px;
    scroll-margin-top: 100px;
}

.proyects-container{
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 100%;
}

.proyect-btn{
    text-decoration: none;
    color: var(--color-texto-blanco);
    background: #141a3a;
    padding: 10px 20px;
    border-radius: 20px;
    transition: .3s;
}

.proyect-btn:hover{
    background: #fff;
    color: var(--color-fondo);
    font-weight: 500;
}

/*---------- FLIP CARDS ----------*/

.flip-card {
    height: 220px;
    perspective: 1000px; 
}

.flip-card-inner {
    position: relative;
    width: 100%;
    height: 100%;
    text-align: center;
    transition: transform 0.6s; 
    transform-style: preserve-3d; 
}

.flip-card-front, .flip-card-back {
    position: absolute;
    width: 100%;
    height: 100%;
    backface-visibility: hidden; 
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 8px;
}

.flip-card-front {
    overflow: hidden;
    border-radius: 5px;
    height: 220px;
}

.flip-card-back {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 20px;
    background:linear-gradient(to left, var(--color-gradient), var(--color-morado));
    transform: rotateY(180deg);
}

.flip-card-back h3{
    font-size: 1.5rem;
}

.flip-card:hover .flip-card-inner {
    transform: rotateY(180deg); 
}

.proyect-img{
    width: 100%;
}

/*---------- GRID CARDS ----------*/

.grid{
    display: grid;
    justify-self: center;
    width: 90%;
    max-width: 1280px;
    gap: 10px;
    margin-top: 50px;
    grid-template-columns: repeat(auto-fit, minmax(350px, 1fr));
}

/*-------------- TRAYECTORY --------------*/

.trayectory-section{
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    margin-top: 100px;
}

.trayectory-container{
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 100%;
    gap: 50px;
    margin-top: 50px;
}

.trayectory-img{
    width: 350px;
    box-shadow:-10px 10px 5px var(--color-gradient);
    border-radius: 5px;
}

.trayectory-item-container{
    display: flex;
    justify-content: space-around;
    align-items: center;
    gap: 20px;
    width: 70%;
}

.trayectory-1, .trayectory-3{
    flex-direction: row-reverse;
}

.trayectory-info-container{
    display: flex;
    flex-direction: column;
    text-wrap: pretty;
}

.trayectory-title{
    font-size: 1.4rem;
    margin: 20px 0;
}

/*-------------- FOOTER --------------*/

.footer{
    width: 100%;
    min-height: 40px;
    margin-top: 100px;
    display: flex;
    flex-direction: column;
    align-items: center;
    background-color: var(--color-azul);
    padding: 20px 0;
}

.svg-footer{
    width: 37px;
    fill: #fff;
}

.footer-container{
    display: flex;
    justify-content: space-between;
    align-items: center;
    width: 100%;

}

.footer-social-media-container{
    display: flex;
    gap: 20px;
    align-items: center;
    justify-content: center;
}

.svg-github{
    margin-right: 20px;
    scale: 1.4;
}

.footer-rights{
    margin-left: 20px;
    width: 50%;
}

/*-------------- CONTACT --------------*/

.contact-section{
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
}

.contact-container-container{
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;
    margin-top: 50px;  
}
.contact-container{
    display: flex;
    justify-content: center;
    gap: 100px;
    border-radius: 20px;
    padding: 30px;
    border: 1px solid #fff;
    background: linear-gradient(-180deg, var(--color-azul), var(--color-morado), var(--color-rosa));
    box-shadow: 0 0 10px #fff;
}

.contact-form-container form{
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 400px;
    gap: 20px;
}

.contact-form-container form input, .contact-form-container form textarea{
    width: 100%;
    padding: 10px;
    border-radius: 5px;
    border: none;
    outline: none;
    background-color: transparent;
    border-bottom: 1px solid #fff;
    color: #fff;
    font-family: 'montserrat', sans-serif;
}

.contact-form-container form input:focus, .contact-form-container form textarea:focus{
    border-bottom: 1px solid #fff;
    outline: none;
    border: 1px solid #fff;
}

.contact-form-container form textarea{
    height: 100px;
    resize: none;
}

input::placeholder, textarea::placeholder{
    color: #fff;
}

.contact-form-container form label{
    display: flex;
    justify-content: start;
    width: 100%;
}

.contact-form-container-item{
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 5px;
    width: 100%;
}

.contact-info-container{
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    align-items: center;
    gap: 50px;
    height: 150px;
}

.contact-info-container div{
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.contact-info-container h2{
    font-size: 2rem;
    
}

.btn-container{
    display: flex;
    justify-content: start;
    align-items: center;
    width: 100%;

}

.btn-container button{
    background-color: var(--color-fondo);
    color: var(--color-texto-blanco);
    padding: 10px 20px;
    border-radius: 20px;
    border: none;
    cursor: pointer;
    font-family: 'montserrat', sans-serif;
}


.nav-btn{
    width: 25px;
    fill: #fff;
    position: absolute;
    right: 20px;
    z-index: 40;
}

.close-menu{
    display: none;
    z-index: 20;
}

/*-------------- MEDIA QUERIES --------------*/

@media (max-width: 768px) {

    .header-container{
        width: 100%;
    }
    
    .nav-header{
        width: 0%;
        position: fixed;
        top: 0;
        height: 100vh;
        z-index: 10;
        background-color: var(--color-fondo);
        display: block;
        transition: all .5s ease-in-out;
        overflow: hidden;
    }
    
    .ul-nav-header{
        flex-direction: column;
        gap: 40px;
        align-items: center;
        justify-content: center;
        margin-top:10vh;
        width: 100%;
    }

    .ul-nav-header li{
        z-index: 20;
    }

    .contact-container-container{
        width: 100%;
    }

    .contact-container{
        flex-direction: column;
        width: 90%;
    }

    .contact-form-container form input, .contact-form-container form textarea{
        width: 100%;
    }

    .contact-form-container-item{
        width: 100%;
        align-items: start;
    }

    .contact-form-container form{
        width: 100%;
    }

    .trayectory-item-container{
        flex-direction: column;
        gap: 20px;
    }

    .grid{
        grid-template-areas: 
        "proyect-1"
        "proyect-2"
        "proyect-3"
        "proyect-4"
        "proyect-5"
        "proyect-6"
        "proyect-7"
        "proyect-8";
    }

    .hero-section{
        flex-direction: column-reverse;
        align-items: center;
        justify-content: center;
    }

    .hero-info-container{
        display: flex;
        text-align: center;
        width: 90%;
    }

    .hero-info-container p{
        font-size: 2.5rem;
    }

    .hero-info-container span{
        font-size: 4rem;
    }

    .skills-container-container{
        width: 100%;
    }

    .skills-container{
        width: 90%;
    }

    .skills-title-container{
        width: 90%;
    }

    .info-container{
        min-width: none;
    }
}

@media screen and (min-width: 800px){

    .nav-btn{
        display: none !important;
    }
    
}