@import url('https://fonts.googleapis.com/css2?family=Poppins&display=swap');

*{
    margin: 0;
    padding: 0;
    box-sizing: border-box;    
}

html {
    scroll-behavior: smooth;
}

body{
    font-family: 'Poppins', sans-serif;
}

h1, h2, h3{
    color:#1d273b;
    font-weight: 300;
}

.contenedor{
    width: 90%;
    max-width: 1000px;
    margin: auto;
    overflow: hidden;
}

.contenedor1{
    width: 90%;
    max-width: 1000px;
    margin: auto;
    /*overflow: hidden;*/
    padding: 60px 0;
}

.titulo{
    color: white;
    font-size: 50px;
    text-align: center;
    margin-bottom: 60px;
}

/* Header */

header{
    width: 100%;
    height: 600px;
    background-image: url(../img/inicio/codigo.png);
    background-size: cover;
    background-attachment: fixed;
    position: relative;
}

nav {
    width: 100%;
    height: 80px;
    background: transparent; /* Se vuelve sólido con la clase .nav2 vía JS */
    position: fixed;
    top: 0;
    z-index: 1000; /* Aumentamos un poco por si AOS usa valores altos */
    transition: background 0.5s ease-in-out, height 0.5s;   
}

.nav {
    display: flex;
    justify-content: space-between;
    height: 100%; /* Toma los 80px del padre */
    width: 100%;
    max-width: 1200px; /* Opcional: para que no se estire infinito en monitores 4K */
    margin: 0 auto; /* Centra el contenido si usás max-width */
    align-items: center;
    padding: 0 40px;
}
.enlaces-header{
    font-weight: 300;
    text-decoration: none;
    margin-left: auto;
    display: flex;
    transition: ease-in-out 0.5s;
}

.nav .enlaces-header a{
    color: #ffffff;
    font-weight: 500;
    text-decoration: none;
    margin-right: 20px;
}

/* Clase para que las letras cambien a negro al bajar */
.negro {
    color: #000000 !important;
}

.hamburger{
    display: none;
    text-align: center;
    background: rgba(230, 230, 230, 0.5);
    z-index: 100;
    cursor: pointer;
    transition: color 0.5s ease-in;
}

.hamburger > i{
   font-size: 40px;
   line-height: 80px;
}

/* Ícono blanco cuando nav es transparente */
.hamburger > i {
    color: #ffffff;
}

/* Ícono negro cuando nav se vuelve blanco al hacer scroll */
.nav2 .hamburger > i {
    color: #000000;
}

header .textos-header{
    display: flex;
    height: 430px;
    width: 100%;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    text-align: center;
}

.textos-header h1{
    font-size: 55px;
    text-align: center;
    color: white;
    font-weight: 500;
}

.textos-header h2{
    font-size: 22px;
    color: #ddd;
    letter-spacing: 1px;
}

.wave{
    position: absolute;
    bottom: 0;
    width: 100%;
}

/*Proyecto*/

.contenido-proyecto{
    width: 100%;
    height: 600px;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.contenido-proyecto > img{
    width:550px;
    animation: ease-in animat 1s;
}

@keyframes animat{
    0%{
        transform: scale(0);
    }100%{
        transform: scale(1);
    }
}

.textos-proyecto{
    margin: 0 0 0 30px;
}

.contenido-proyecto{
    font-weight: 100;
    margin-top: 14px;
    color: #5d6678;
}

.contenido-proyecto a{
    margin: 28px 0 0 0;
    width: 130px;
    display: inline-block;
    background: #4d44df;
    text-align: center;
    color: #ffffff;
    padding: 12px 0;
    text-decoration: none;
    font-weight: 400;
    font-size: 14px;
    border-radius: 5px;
    box-shadow: 0 8px 32px rgba(32, 23, 168, .46);
}

/*Conocenos*/ 

.conocenos{
    background: #f2f2f2;
}
.conocenos .titulo {
    color: #1d273b;
}

.contenedor-integrante{
    display: flex;
    flex-wrap: wrap;
    margin-top: 60px;
    justify-content: space-around;

}

.conocenos{
    background: #f2f2f2;
}

.conocenos .titulo {
    color: #1d273b;
    text-align: center; 
}

.contenedor-integrante{
    display: flex;
    flex-wrap: wrap;
    margin-top: 60px;
    justify-content: space-around;
}

.integrante{
    width: 29%;
    background: #ffffff;
    margin-bottom: 30px;
    border-radius: 10px;
    padding: 45px 30px 40px 30px; 
    transition: 0.5s;

    /* --- AJUSTES PARA ALINEAR EL LINK --- */
    display: flex;
    flex-direction: column; 
    align-items: center;    
}

.integrante:hover{
    box-shadow: 0 4px 10px rgba(17, 29, 48, .26);
}

.integrante > img {
    
    width: 100%;
    max-width: 250px;
    height: 180px;              
    object-fit: cover;          
    border-radius: 8px;
}

.integrante > h3{
    font-size: 24px;
    margin-top: 30px;
    text-align: center;
    color: #1d273b;
}

.integrante > p{
    font-weight: 100;
    color: #5d6678;
    margin-top: 15px;
    padding-bottom: 20px;
    text-align: center; 
}

.integrante > a{
    color: #5d6678;
    font-weight: 400;
    text-decoration: none;
    margin-top: auto; 
    padding-top: 20px; 
}

.integrante > a:hover{
    color: #4d44df;
    transition: color .5s;
}

.conocenos img{
    width: 100%;
    max-width: 250px;
    height: 180px;              
    object-fit: cover;          
    border-radius: 8px;
}


/*Footer*/

footer{
    background: #f2f2f2;
    padding: 20px;
    overflow: hidden;
    display: flex;
    flex-wrap: wrap;
    justify-content: space-evenly;
    margin: auto;
    font-size: 14px;
}



/* ============================================================
   BITÁCORA - DISEÑO BASE (ESCRITORIO)
   ============================================================ */
/* Contenedor principal */
.bitacora-page .timeline-container {
    padding: 3rem 2rem;
    margin: 0 auto;
    max-width: 1100px;
}

/* La línea central con final suavizado */
.bitacora-page .timeline {
    position: relative;
    list-style: none;
    padding: 0;
    display: flex;
    flex-direction: column;
}

.bitacora-page .timeline::before {
    content: "";
    position: absolute;
    left: 50%;
    width: 4px;
    height: 100%;
    /* Degradado que termina en transparente */
    background: linear-gradient(to bottom, #667db6 0%, #0082c8 80%, transparent 100%); 
    transform: translateX(-50%);
    z-index: 0;
}

/* Ítems de la bitácora */
.bitacora-page .timeline-item {
    position: relative;
    margin-bottom: 4rem;
    width: 50%;
    display: flex;
    transition: all 0.5s ease;
}

/* Círculo en la línea */
.bitacora-page .timeline-item::after {
    content: "";
    position: absolute;
    width: 20px;
    height: 20px;
    background: #0082c8;
    border: 4px solid #fff;
    border-radius: 50%;
    top: 15px;
    z-index: 2;
}

/* Alternancia: Izquierda (Impares) */
.bitacora-page .timeline-item:nth-child(odd) {
    align-self: flex-start;
    justify-content: flex-start;
    text-align: right;
    padding-right: 50px;
}
.bitacora-page .timeline-item:nth-child(odd)::after { right: -12px; }

/* Alternancia: Derecha (Pares) */
.bitacora-page .timeline-item:nth-child(even) {
    align-self: flex-end;
    justify-content: flex-end;
    padding-left: 50px;
    text-align: left;
}
.bitacora-page .timeline-item:nth-child(even)::after { left: -12px; }

/* Tarjetas de contenido */
.bitacora-page .timeline-content {
    background: #fff;
    padding: 1.5rem;
    border-radius: 15px;
    box-shadow: 0 10px 30px rgba(0,0,0,0.1);
    width: 100%;
}

/* Color inicial del icono (Blanco para que combine con el header) */
.bitacora-page .hamburger i {
    font-size: 40px;
    line-height: 80px;
}

.bitacora-page .hamburger {
    background: transparent;
}

.bitacora-page .hamburger > i {
    font-size: 24px;
    line-height: 80px;
    color: #ffffff;
}

.nav2.bitacora-page .hamburger > i,
.bitacora-page.nav2 .hamburger > i {
    color: #000000;
}

/* Esto le da el "escudo" sólido al menú al bajar */
.nav2 {
    background-color: #ffffff !important; /* Fondo blanco sólido */
    box-shadow: 0px 2px 10px rgba(0, 0, 0, 0.1); /* Sombra para separarlo del contenido */
    height: 70px; /* Un poco más fino que el original para que quede elegante */
}

/* Forzamos que los enlaces también sean negros sobre el fondo blanco */
.nav2 .enlaces-header a {
    color: #000000 !important;
}
   /* -------------------------------------------------------
   SECCIÓN: PRESENTACIÓN PERSONAL
   ------------------------------------------------------- */
.presentacion h2,
.contenedor1-habilidades h2,
.canciones .titulo,
.peliculas .titulo {
    font-size: 50px;
    color: #1d273b;
    text-align: center;
    margin-bottom: 60px;
    font-weight: 400;
    width: 100%;
}



   .presentacion {
    width: 100%;
    padding: 60px 0;
    background: #ffffff;
    margin: 0;
    overflow: hidden; 
}
 
.contenido-presentacion {
    width: 90%;
    max-width: 1000px;
    margin: auto;
    display: flex;
    flex-wrap: wrap; 
    justify-content: space-between;
    align-items: center;
    gap: 40px;

}
 
.textos-presentacion h2 {
    font-size: 50px; 
    color: #1d273b;
    font-weight: 400;
    margin-bottom: 20px;
}
 
.textos-presentacion p {
    font-weight: 300;
    color: #5d6678;
    margin-bottom: 10px;
    font-size: 16px;
    line-height: 1.7;
}
 
.contenido-presentacion > img {
    width: 320px;
    height: 320px;
    object-fit: cover;
    border-radius: 50%;
    box-shadow: 0 8px 32px rgba(0, 130, 200, 0.2);
    flex-shrink: 0;
}

.foto-presentacion {
    float: right;
    margin-left: 20px;
    margin-bottom: 20px;
    /* Ancho y alto IGUALES para asegurar el círculo */
    width: 250px; 
    height: 250px; 
}

.foto-presentacion img {
    width: 100%;
    height: 100%; /* Forzamos que llene el contenedor cuadrado */
    object-fit: cover; /* Evita que la imagen se estire o se aplaste */
    border-radius: 50%; /* La hace redonda */
    display: block;
}

.contenedor::after {
    content: "";
    display: table;
    clear: both;
}
 
/* -------------------------------------------------------
   SECCIÓN: HABILIDADES
   ------------------------------------------------------- */
.habilidades-seccion-total {
    width: 100%;
    background-color: #f2f2f2; 
    padding: 60px 0;
}


.contenedor1-habilidades {
    width: 90%;
    max-width: 1100px;
    margin: 0 auto;
}

.contenedor1-habilidades h2 {
    font-size: 50px; 
    color: #1d273b;
    margin-bottom: 40px;
    font-weight: 400;
    text-align: center;
}

.flex-habilidades {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.flex-habilidades img {
    width: 450px;
    height: auto;
}

.box-skills {
    width: 50%;
    text-align: left; 
}

.box-skills h4 {
    font-size: 20px;
    background: #ffffff;
    width: 100%;
    max-width: 420px;
    border-radius: 6px;
    padding: 15px;
    margin-bottom: 15px;
    display: flex;
    align-items: center;
    box-shadow: 0 4px 6px rgba(0,0,0,0.05);
    color: #5d6678;
}

.box-skills i {
    color: #4d44df;
    margin-right: 15px;
}


/* -------------------------------------------------------
   SECCIÓN: PELÍCULAS FAVORITAS
   ------------------------------------------------------- */
.peliculas {
    background: #ffffff;
    padding: 60px 0;
}
 
.contenedor1-peliculas {
    width: 90%;
    max-width: 1000px;
    margin: auto;
}
 
.peliculas .titulo {
    color: #1d273b;
    font-size: 50px;
    text-align: center;
    margin-bottom: 60px;
}
 
.contenedor-peliculas {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-around;
    gap: 30px;
}
 
.pelicula {
    width: 29%;
    background: #ffffff;
    border-radius: 10px;
    padding: 0 0 30px 0;
    box-shadow: 0 4px 16px rgba(17, 29, 48, 0.10);
    overflow: hidden;
    transition: box-shadow 0.4s ease, transform 0.3s ease;
}
 
.pelicula:hover {
    box-shadow: 0 10px 30px rgba(77, 68, 223, 0.22);
    transform: translateY(-4px);
}
 
.pelicula img {
    width: 100%;
    height: 350px;
    object-fit: cover;
    object-position: top; 
    display: block;
}
 
.pelicula h3 {
    font-size: 20px;
    font-weight: 400;
    color: #1d273b;
    margin: 20px 20px 10px 20px;
}
 
.pelicula p {
    font-weight: 300;
    color: #5d6678;
    font-size: 14px;
    line-height: 1.6;
    margin: 0 20px;
}
 
/* -------------------------------------------------------
   SECCIÓN: CANCIONES FAVORITAS
   ------------------------------------------------------- */
.canciones {
    background: #f2f2f2;
    padding: 60px 0;
}
 
.contenedor1-canciones {
    width: 90%;
    max-width: 1000px;
    margin: auto;
}
 
.canciones .titulo {
    color: #1d273b;
    font-size: 50px;
    text-align: center;
    margin-bottom: 60px;
}
 
.contenedor-canciones {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-around;
    gap: 30px;
}
 
.cancion {
    width: 29%;
    background: #ffffff;
    border-radius: 10px;
    padding: 0 0 30px 0;
    box-shadow: 0 4px 16px rgba(17, 29, 48, 0.10);
    overflow: hidden;
    transition: box-shadow 0.4s ease, transform 0.3s ease;
    display: flex;
    flex-direction: column;
    align-items: center;
}
 
.cancion:hover {
    box-shadow: 0 10px 30px rgba(77, 68, 223, 0.22);
    transform: translateY(-4px);
}
 

.cancion img {
    width: 100%;           
    height: 350px;         
    object-fit: cover;     
    object-position: top; 
    display: block;
}
 
.cancion h3 {
    font-size: 18px;
    font-weight: 400;
    color: #1d273b;
    margin: 20px 20px 12px 20px;
    text-align: center;
}
 
.cancion a {
    display: inline-block;
    background: #4d44df;
    color: #ffffff;
    text-decoration: none;
    padding: 10px 28px;
    border-radius: 5px;
    font-size: 14px;
    font-weight: 400;
    box-shadow: 0 8px 24px rgba(32, 23, 168, 0.30);
    transition: background 0.3s ease, box-shadow 0.3s ease;
    margin-top: auto;
}
 
.cancion a:hover {
    background: #3a32c0;
    box-shadow: 0 12px 30px rgba(32, 23, 168, 0.45);
}
 

/*Breakpoints responsive*/

/* =======================================================
   BREAKPOINTS OBLIGATORIOS (Sustituyen a los anteriores)
   ======================================================= */

/* 1. Pantallas de escritorio grandes (1200px) */
@media screen and (max-width: 1200px) {
    .contenedor, .contenedor1, .contenedor1-habilidades, .contenedor1-peliculas, .contenedor1-canciones {
        width: 95%; /* Más aire a los costados */
    }

    /* --- PROYECTO --- */
    .contenido-proyecto > img {
        width: 45%; /* La imagen deja de tener px fijos para ser elástica */
        max-width: 500px;
    }

    .textos-proyecto {
        margin-left: 20px;
    }

    /* --- INTEGRANTES --- */
    .integrante {
        width: 30%; /* Ajuste leve para que entren cómodos los 3 */
        padding: 30px 20px;
    }

    /* --- HABILIDADES --- */
    .flex-habilidades img {
        width: 40%; /* Achicamos la imagen para que no empuje el texto */
        max-width: 400px;
    }

    .box-skills {
        width: 55%; /* Le damos más espacio a los cuadros de habilidades */
    }

    /* --- BITÁCORA --- */
    .bitacora-page .timeline-container { 
        max-width: 95%; 
    }
    .bitacora-page .timeline-item { 
        margin-bottom: 3rem; 
    }
}

/* 2. Tablets o pantallas medianas (900px) */
@media screen and (max-width: 900px) {
    .titulo {
        font-size: 45px;
    }

    .contenido-proyecto {
        flex-direction: column; 
        justify-content: center;
        height: auto;
        padding: 50px 0;
    }

    .contenido-proyecto > img {
        width: 80%; 
        margin-bottom: 30px;
    }

   .contenedor-integrante {
        justify-content: center;
        gap: 20px;
    }

    .integrante {
        width: 45%; /* Mantenemos tus dos columnas */
        padding: 30px 20px; /* Un poco más compacto */
        display: flex; /* Asegura que el margin-top: auto del link funcione */
        flex-direction: column;
        align-items: center;
    }

    .conocenos img {
        width: 100%;       
        height: 200px; /* Tu medida original */
        object-fit: cover; 
        border-radius: 8px; 
    }
    .nav {
        padding: 0 20px;
    }

    .enlaces-header {
        position: fixed;
        background: linear-gradient(to right, #667db6, #0082c8, #0082c8, #667db6);
        top: 0;
        right: 0;
        width: 100%;
        height: 100vh;
        display: flex;
        align-items: center;
        flex-direction: column;
        justify-content: space-evenly;
        clip-path: circle(0.0% at 100% 0);
        z-index: 2000;
    }

    .hamburger {
        display: block; 
        z-index: 1001;
        margin-left: auto;
    }

    /* Clase que activa el JS al hacer clic */
    .nav .menudos {
        clip-path: circle(150% at 100% 0);
    }

    .nav .enlaces-header a,
    .nav .enlaces-header a.negro,
    body .nav .enlaces-header a {
        color: #ffffff !important;
    }


    /* BITACORA */

    /* Adaptación Tablet: Todo a una columna */
    .bitacora-page .timeline::before { left: 20px; }
    
    .bitacora-page .timeline-item {
        width: 100% !important;
        padding-left: 45px !important;
        padding-right: 0 !important;
        text-align: left !important;
        justify-content: flex-start !important;
        align-self: flex-start !important;
    }

    .bitacora-page .timeline-item::after { left: 8px !important; }

    /* Cambio de color cuando el nav se vuelve blanco al bajar (clase .abajo) */
    .nav2 .hamburger i {
        color: #000000 !important;
    }

    /* PRESENTACIÓN INTEGRANTES */

    .textos-presentacion h2,
    .contenedor1-habilidades h2,
    .peliculas .titulo,
    .canciones .titulo {
        font-size: 35px;
        margin-bottom: 40px;
    }

    /* Presentación en una sola columna */
    .contenido-presentacion {
        flex-direction: column;
        text-align: center;
    }

    .textos-presentacion {
        width: 100%;
    }

    .contenido-presentacion > img {
        width: 250px;
        height: 250px;
    }

}

@media screen and (max-width: 900px) {

    .foto-presentacion {
        float: none !important; /* Forzamos que deje de flotar */
        display: block; 
        margin: 0 auto 30px auto;  
        width: 250px;              
        height: 250px;
    }

    .foto-presentacion img {
        width: 100%;
        height: 100%;
        object-fit: cover;
        border-radius: 50%;        
    }

    .contenedor p {
        text-align: center;
        margin-bottom: 15px;
    }

    .flex-habilidades {
        display: flex; /* Aseguramos que sea flex para que tome la dirección */
        flex-direction: column;
        gap: 30px;
        align-items: center;
    }

    .flex-habilidades img {
        width: 90%;
        max-width: 350px;
    }

    .box-skills {
        width: 100%;
        display: flex;
        flex-direction: column;
        align-items: center;
    }

    /* Películas y Canciones: Ajuste a 2 columnas */
    .pelicula, .cancion {
        width: 45% !important;
        display: inline-block; 
    }

    .contenedor-canciones {
        display: flex;
        flex-wrap: wrap;
        justify-content: center;
        gap: 10px;
    }

    .cancion {
        width: 45%;
        margin-bottom: 20px;
    }

}

/* 3. Dispositivos móviles pequeños (400px) */
@media screen and (max-width: 400px) {
    .textos-header h1 {
        font-size: 30px; 
    }
        
    .integrante {
        width: 95%; 
    }

    .footer p {
        font-size: 10px; 
    }

    /* BITACORA */
    .bitacora-page .timeline-container { 
        padding: 10px; 
    }
    .bitacora-page .timeline-content h3 { 
        font-size: 1.1rem; 
    }


    /* PRESENTACIÓN INTEGRANTES*/
    .textos-presentacion h2 {
    font-size: 26px;
    text-align: center; 
    }


    .foto-presentacion {
        float: none !important;       
        display: block;              
        margin: 0 auto 20px auto;    
        width: 200px !important;     
        height: 200px !important;    
    }

    .foto-presentacion img {
        width: 100%;
        height: 100%;
        object-fit: cover;           
        border-radius: 50%;          
    }

    .contenedor p {
        text-align: center;          
        width: 100%;                
        clear: both;                 
    }
 
    /* Habilidades */
    .box-skills h4 {
        font-size: 15px;
        padding: 12px 16px;
    }
 
    /* Películas */
    .pelicula {
        width: 95%;
    }
 
    .peliculas .titulo,
    .canciones .titulo {
        font-size: 36px;
    }
 
    /* Canciones */
    .cancion {
        width: 95%;
    }
}