@import url('https://fonts.googleapis.com/css2?family=Fira+Code:wght@400;700&display=swap');

body {
    font-family: 'Fira Code', monospace;
    margin: 0;
    padding: 0;
    background-color: #1e1e1e;
    color: #dcdcdc;
    overflow-x: hidden;
    padding-top: 60px; /* Ajusta este valor al alto de tu header */
}

header {
    background: #333;
    padding: 10px 0;
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2);
    position: fixed;
    top: 0;
    width: 100%;
    z-index: 1000; /* Asegura que el header esté por encima de otros elementos */
}

nav ul {
    list-style: none;
    padding: 0;
    display: flex;
    justify-content: center;
}

nav ul li {
    margin: 0 15px;
}

nav ul li a {
    text-decoration: none;
    color: #fff;
    font-weight: bold;
    text-transform: uppercase;
    transition: color 0.3s;
}

nav ul li a:hover {
    color: #f0fd3d;
}

.hero {
    background: url('imagenes/hero-bg.jpg') no-repeat center center/cover;
    height: 100vh;
    display: flex;
    justify-content: center;
    align-items: center;
    text-align: center;
    color: #f0fd3d;
}

.hero-content h1 {
    font-size: 3.5rem;
    margin: 0;
    color: #fff;
}

.hero-content p {
    font-size: 1.5rem;
    margin-top: 10px;
}

section {
    padding: 50px 20px;
    text-align: center;
    border-bottom: 1px solid #333;
}

.skills ul {
    list-style: none;
    padding: 0;
    display: inline-block;
    text-align: left;
}

.skills ul li {
    margin-bottom: 10px;
    font-size: 1.1rem;
}

.skills h3 {
    margin-bottom: 0px;
}

.timeline {
    position: relative;
    max-width: 800px;
    margin: 0 auto;
    padding: 20px;
}

.timeline-item {
    margin-bottom: 20px;
    background: #333;
    padding: 15px;
    border-radius: 5px;
    text-align: left;
}

.timeline-item h3 {
    font-size: 1.4rem;
    color: #0bc2f9;
}

.timeline-item span {
    display: block;
    font-size: 0.9rem;
    color: #bbb;
    margin-bottom: 10px;
}

.projects {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
}

.project-item {
    flex: 0 1 calc(33.333% - 20px); /* Aseguramos que cada elemento ocupe un tercio del contenedor */
    max-width: calc(33.333% - 20px); /* Evita que los elementos se agranden más de un tercio del ancho */
    box-sizing: border-box; /* Asegura que el padding y border estén incluidos en el tamaño */
    margin: 10px;
    text-align: center;
    background: #333;
    padding: 15px;
    border-radius: 5px;
    transition: transform 0.3s;
}

.project-item:hover {
    transform: scale(1.05);
}

.project-item img {
    width: 168px; /* Tamaño fijo para el ancho */
    height: 168px; /* Tamaño fijo para la altura */
    background-size: contain; /* Ajusta la imagen dentro del contenedor sin recortarla */
    background-position: center;
    background-repeat: no-repeat;
    border-radius: 8px;
    margin-bottom: 15px;
}

img {
    max-width: 100%;
    height: auto;
}

form input, form textarea {
    width: 100%;
    padding: 10px;
    margin-bottom: 10px;
    border: 1px solid #555;
    border-radius: 4px;
    background: #2e2e2e;
    color: #dcdcdc;
}

form button {
    padding: 10px 20px;
    background: #0bc2f9;
    color: #fff;
    border: none;
    border-radius: 4px;
    cursor: pointer;
    transition: background 0.3s;
}

button {
    padding: 10px 20px;
    background: #0bc2f9;
    color: #fff;
    border: none;
    border-radius: 4px;
    cursor: pointer;
    transition: background 0.3s;
}

form button:hover {
    background: #09a6d3;
}

footer {
    background: #333;
    color: #fff;
    padding: 20px 0;
    text-align: center;
    border-top: 1px solid #444;
}

.game {
    background-color: #1e1e1e;
    padding: 20px;
    text-align: center;
}

.game h2 {
    font-size: 1.5rem;
    color: #0bc2f9;
    margin-bottom: 20px;
}

.game-container {
    display: flex; /* Alinea los elementos en una fila */
    justify-content: center; /* Centra los elementos en el contenedor */
    align-items: flex-start; /* Alinea los elementos al inicio del contenedor */
    max-width: 1000px;
    margin: 0 auto;
    padding: 20px;
    padding-bottom: 10px;
    flex-direction: row; /* Asegura que los elementos se alineen en fila */
}


#gameArea {
    flex: 3; /* El área del juego ocupa más espacio */
    position: relative;
    width: 100%; /* Ocupa el ancho disponible */
    padding-bottom: 60px; /* Espacio adicional en la parte inferior para el botón de reinicio */
}

#rankingDisplay {
    flex: 1; /* El ranking ocupa menos espacio comparado con el juego */
    width: 300px; /* Ancho fijo para el ranking */
    padding: 20px;
    border-radius: 5px;
    color: #fff;
    text-align: center;
    margin-left: 20px; /* Espacio entre el juego y el ranking */
    background: #333; /* Fondo oscuro */
}

#rankingDisplay h2 {
    color: #0bc2f9;
}

#rankingDisplay p {
    margin: 5px 0;
}

#gameCanvas {
    border: 2px solid #0bc2f9;
    background-color: #333;
}

#playButton, #retryButton {
    position: absolute;
    bottom: 180px; /* Ajusta la posición vertical de los botones */
    left: 50%;
    transform: translateX(-50%);
    padding: 10px 20px;
    font-size: 18px;
    background-color: #0bc2f9;
    color: #fff;
    border: none;
    cursor: pointer;
    border-radius: 5px;
    transition: background-color 0.3s;
    z-index: 10; /* Asegura que el botón esté encima de otros elementos */
}

#playButton:hover, #retryButton:hover {
    background-color: #08a2d1;
}

#playButton:focus, #retryButton:focus {
    outline: none;
}

#playButton {
    display: block; /* Asegúrate de que el botón de Play se muestra */
}

#retryButton {
    display: none; /* Oculta el botón de Reiniciar inicialmente */
}

#nameInput, #submitNameButton {
    position: absolute;
    top: 50%; /* Centra verticalmente respecto al área del juego */
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 15; /* Asegura que el campo y el botón estén encima del juego */
    padding: 10px;
    font-size: 16px;
}

#nameInput {
    display: none; /* Oculta el campo de nombre por defecto */
}

#submitNameButton {
    display: none; /* Oculta el botón de enviar nombre por defecto */
}

#nameInput {
    margin-top: 20px; /* Espacio entre el campo de texto y el botón */
}

#submitNameButton {
    margin-top: 70px; /* Espacio entre el campo de texto y el botón */
}

@media (max-width: 768px) {
    .hero-content h1 {
        font-size: 2.5rem;
    }

    .hero-content p {
        font-size: 1rem;
    }

    .timeline-item {
        padding: 10px;
    }

    .project-item {
        flex: 1 1 100%; /* En pantallas pequeñas, cada proyecto ocupa el ancho completo */
        max-width: 100%;
        margin: 10px 0;
    }

    .game-container {
        flex-direction: column; /* Alinea los elementos verticalmente en lugar de horizontalmente */
    }

    #gameCanvas {
        width: 100%; /* Asegura que el canvas ocupe todo el ancho disponible */
        height: auto;
    }

    #playButton, #retryButton {
        bottom: 120px; /* Ajusta la posición del botón en pantallas pequeñas */
    }
}

nav ul {
    flex-wrap: wrap; /* Permite que los elementos del menú se ajusten en varias líneas si es necesario */
}

.projects {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 20px; /* Espacio entre los elementos */
}

/* Juego */
.game-container {
    display: flex; /* Alinea los elementos en una fila */
    justify-content: center; /* Centra los elementos en el contenedor */
    align-items: flex-start; /* Alinea los elementos al inicio del contenedor */
    max-width: 1000px;
    margin: 0 auto;
    padding: 20px;
    padding-bottom: 10px;
    flex-direction: row; /* Asegura que los elementos se alineen en fila */
}

#rankingDisplay {
    width: 100%; /* Asegura que el ranking ocupe todo el ancho disponible */
    margin-left: 0; /* Elimina el margen lateral */
    margin-top: 20px; /* Añade espacio arriba para separar del juego */
}

*, *::before, *::after {
    box-sizing: border-box;
}

.contact {
    width: 50%; /* La sección ocupará la mitad del ancho de la página */
    margin: 0 auto; /* Centra la sección horizontalmente en la página */
    padding: 20px; /* Añade un padding para darle espacio interior */
    border-radius: 8px; /* Opcional: redondea las esquinas */
}

.education-section {
    padding: 50px 20px; /* Espacio interno */
    color: #dcdcdc; /* Color del texto */
    text-align: center; /* Alineación del texto */
    border-bottom: 1px solid #333; /* Línea divisoria */
    margin: 0 auto;
}

.education-item {
    margin-bottom: 20px; /* Espacio entre los elementos */
    text-align: left; /* Alineación a la izquierda para los detalles */
    max-width: 800px; /* Anchura máxima para las entradas */
    margin: 0 auto 20px auto; /* Ajusta la propiedad margin para el espacio entre elementos */
    background: #333; /* Fondo para destacar cada entrada */
    padding: 15px; /* Espacio interno de cada entrada */
    border-radius: 5px; /* Esquinas redondeadas */
}

.education-item h3 {
    color: #f0fd3d; /* Color para los títulos */
    margin-bottom: 10px;
}

.education-item p {
    color: #bbb; /* Color para los detalles */
}

.experience-section h2 {
    margin-bottom: 40px;
}

.education-section h2 {
    margin-bottom: 40px;
}

.about-content {
    max-width: 50%;
    margin: 0 auto;
}

.notification {
    background-color: #4CAF50; /* Color de fondo del aviso */
    color: white; /* Color del texto */
    padding: 15px; /* Espaciado interno */
    position: fixed; /* Posición fija */
    bottom: 10px; /* Distancia desde la parte inferior */
    right: 10px; /* Distancia desde la parte derecha */
    z-index: 1000; /* Asegurarse de que esté por encima de otros elementos */
    border-radius: 5px; /* Bordes redondeados */
    opacity: 0; /* Inicialmente invisible */
    transition: opacity 1s ease-in-out; /* Transición para desvanecerse */
    pointer-events: none; /* Evitar que el aviso interfiera con otros elementos */
}

/* Animaciones sutiles */
.project-item:hover, .timeline-item:hover, .education-item:hover {
    transform: scale(1.05);
    transition: transform 0.3s;
}

/* Iconos tecnológicos */
nav ul li a::before {
    content: '>';
    margin-right: 5px;
    color: #61dafb;
}

button:hover {
    background: #21a1f1;
}

.timeline-item span, .project-item p, .education-item p {
    color: #abb2bf;
}

#scoreDisplay {
    position: absolute;
    top: 10px;
    right: 290px;
    background-color: rgba(0, 0, 0, 0.5);
    color: #fff;
    padding: 10px;
    border-radius: 5px;
    font-size: 18px;
    z-index: 10;
}

/* Estilo para el ranking */
#ranking {
    background: #333;
    padding: 0px; /* Espaciado interno */
    border-radius: 5px; /* Bordes redondeados */
    color: #dcdcdc; /* Color del texto */
    text-align: center; /* Alineación del texto */
    margin-right: 0px; /* Espacio a la izquierda */
    width: 0px; /* Ancho fijo */
}

#ranking h3 {
    color: #f0fd3d; /* Color del título */
    font-size: 1.5rem; /* Tamaño de fuente */
    margin-bottom: 20px; /* Espacio inferior */
}

#ranking ul {
    list-style: none; /* Sin viñetas */
    padding: 0px; /* Sin padding */
}

#ranking ul li {
    margin-bottom: 10px; /* Espacio inferior entre elementos */
    font-size: 1.1rem; /* Tamaño de fuente */
    color: #bbb; /* Color del texto */
    white-space: nowrap; /* Evita que el texto se divida en varias líneas */
}

/* Ajustes para pantallas pequeñas */
@media (max-width: 768px) {
    .game-container {
        flex-direction: column; /* Alinea los elementos verticalmente en lugar de horizontalmente */
    }

    #ranking {
        width: 100%; /* Asegura que el ranking ocupe todo el ancho disponible */
        margin-left: 0; /* Elimina el margen lateral */
        margin-top: 20px; /* Añade espacio arriba para separar del juego */
    }
}