* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
}

body {
    font-family: "Outfit", sans-serif;
    background: #050505;
    color: white;
    overflow-x: hidden;
}

/* --------------------------------- Inicio -------------------------------------*/
/* Fondo */
.fondo {
    position: fixed;
    inset: 0;
    background-image: url("../img/fondo.png");
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    z-index: -10;
}

.capa-color {
    position: fixed;
    inset: 0;
    background: linear-gradient(to bottom, rgba(0, 0, 0, 0.479) 0%, rgba(0, 0, 0, 0.685));
    z-index: -9;
}

/* NavBar */
.barra-navegacion {
    position: fixed;
    top: 25px;
    left: 50%;
    transform: translateX(-50%);
    width: 90%;
    max-width: 1400px;
    z-index: 1000;
}

/* Contenido del Navbar */
.contenedor-navegacion {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 18px 35px;
    border-radius: 25px;
    background: rgba(2, 2, 2, 0.575);
    border: 1px solid rgba(155, 5, 255, 0.432);
    backdrop-filter: blur(20px);
    box-shadow: 0 10px 20px rgb(68, 0, 100);
    animation: aparecerHero 1s ease forwards;
}

.boton-menu {
    display: none;
    background: none;
    border: none;
    color: white;
    font-size: 1.8rem;
    cursor: pointer;
}

/*idioma*/
.selector-idioma {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-left: 35px;
}

.idioma {
    background: none;
    border: none;
    color: #8f8f8f;
    font-size: .95rem;
    font-weight: 600;
    cursor: pointer;
    transition: .3s;
}

.idioma:hover {
    color: white;
}

.idioma.activo {
    color: white;
}

.separador-idioma {
    color: #666;
}

/* Logo */
.logo {
    display: flex;
    align-items: center;
    gap: 12px;
    font-size: 1.3rem;
    font-weight: 700;
    color: white;
}

.logo i {
    color: #ffffff;
    text-shadow:
        0 0 10px #0084ff,
        0 0 20px #0084ff,
        0 0 35px #00a2ff;
}

.logo span {
    color: #ffffff;
    text-shadow:
        0 0 10px #6e0099,
        0 0 20px #ed3af3,
        0 0 35px #4d006b;
}

/* Menu */
.menu {
    list-style: none;
    display: flex;
    gap: 35px;
}

.menu a {
    position: relative;
    color: white;
    text-decoration: none;
    font-size: .95rem;
    transition: .3s;
    font-weight: 600;
}

/* línea inferior */
.menu a::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: -6px;
    width: 0;
    height: 2px;
    border-radius: 20px;
    background: linear-gradient(90deg, #3c005f, #9000ad);
    transition: .35s;
}

.menu a:hover {
    color: #ae00c5;
}

.menu a:hover::after {
    width: 100%;
}

/* Hero */
.inicio {
    min-height: 100vh;
    position: relative;
}

.hero {
    position: relative;
    width: min(1500px, 92%);
    min-height: 100vh;
    margin: 0 auto;
    display: flex;
    justify-content: flex-end;
    align-items: center;
}

.columna-izquierda {
    position: absolute;
    inset: 0;
    pointer-events: none;
}

.columna-derecha {
    width: 46%;
    display: flex;
    justify-content: flex-start;
    align-items: center;
    z-index: 5;
}

/* Luna */
.contenedor-luna {
    position: absolute;
    left: -180px;
    top: calc(50% + 20px);
    width: 900px;
    aspect-ratio: 1/1;
    transform: translateY(-50%);
    animation: flotar 8s ease-in-out infinite;
}

.luna {
    display: block;
    width: 100%;
    height: 100%;
    animation: girarLuna 200s linear infinite;
}

/* halo detrás */
.contenedor-luna::before {
    content: "";
    position: absolute;
    left: 50%;
    top: 50%;
    width: 1200px;
    height: 1200px;
    transform: translate(-50%, -50%);
    border-radius: 50%;
    background: radial-gradient(circle,
            rgb(255, 255, 255) 0%,
            rgb(253, 252, 253) 28%,
            rgba(255, 254, 255, 0.116) 48%,
            transparent 72%);
    filter: blur(80px);
    z-index: -1;
}

/* imagen */
.luna {
    display: block;
    width: 100%;
}

/* Info */
.informacion {
    max-width: 620px;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    gap: 18px;
    animation: aparecerHero 1s ease forwards;
}

.saludo {
    font-size: 1rem;
    color: white;
    font-weight: 700;
    letter-spacing: 3px;
    text-transform: uppercase;
}

.informacion h1 {
    font-size: 6.2rem;
    font-weight: 700;
    line-height: 1;
    letter-spacing: 2px;
    text-shadow:
        0 0 15px rgb(0, 0, 0),
        0 0 45px rgba(0, 0, 0, 0),
        0 0 90px rgb(0, 0, 0);
    animation: aparecerHero 1s ease forwards;
}

.informacion h2 {
    font-size: 2.5rem;
    font-weight: 500;
    color: rgb(255, 255, 255);
    animation: aparecerHero 1s ease forwards;
}

.descripcion {
    max-width: 650px;
    color: white;
    line-height: 1.9;
    font-size: 1.5rem;
    animation: aparecerHero 1s ease forwards;
}

/* Botones */
.botones {
    display: flex;
    flex-direction: row;
    gap: 20px;
    margin-top: 35px;
}

.boton {
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 16px 34px;
    border-radius: 50px;
    text-decoration: none;
    font-weight: 600;
    transition: .35s;
    position: relative;
    overflow: hidden;
}

/* brillo */
.boton::before {
    content: "";
    position: absolute;
    left: -120%;
    top: 0;
    width: 70%;
    height: 100%;
    background: linear-gradient(90deg, transparent, rgb(255, 255, 255), transparent);
    transition: .8s;
}

.boton:hover::before {
    left: 140%;
}

/* principal */
.boton-principal {
    color: rgb(255, 255, 255);
    background: #410047;
    box-shadow: 0 5px 20px rgb(255, 255, 255);
}

.boton-principal:hover {
    transform: translateY(-5px);
    box-shadow: 0 5px 30px rgb(68, 0, 100);
    background: rgb(0, 0, 0);
    color: white;
}

/* secundario */
.boton-secundario {
    color: rgb(255, 255, 255);
    background: #410047;
    box-shadow: 0 5px 20px rgb(255, 255, 255);
}

.boton-secundario:hover {
    transform: translateY(-5px);
    box-shadow: 0 5px 30px rgb(68, 0, 100);
    background: rgb(0, 0, 0);
    color: white;
}

/* Redes sociales */
.redes-sociales {
    position: static;
    margin-top: 45px;
    display: flex;
    gap: 20px;
    transition: .35s;
}

.redes-sociales a {
    width: 52px;
    height: 52px;
    border-radius: 50%;
    display: flex;
    justify-content: center;
    align-items: center;
    text-decoration: none;
    color: rgb(0, 0, 0);
    font-size: 1.15rem;
    background: rgb(255, 255, 255);
    border: 1px solid rgba(255, 255, 255, .15);
    backdrop-filter: blur(15px);
    transition: .35s;
}

.redes-sociales a:hover {
    transform: translateY(-6px);
    background: #410047;
    box-shadow: 0 0 25px rgba(0, 207, 255, .35);
    color: white;
}

.redes-sociales span {
    font-weight: 700;
    font-size: 18px;
}

/* Indicador de scroll */
.indicador-scroll {
    position: absolute;
    bottom: 30px;
    left: 50%;
    transform: translateX(-50%);
}

.indicador-scroll span {
    width: 2px;
    height: 55px;
    display: block;
    border-radius: 20px;
    background: linear-gradient(transparent, rgba(255, 255, 255, .9), transparent);
    animation: bajar 2s infinite;
}

/* Animaciones */
@keyframes aparecerHero {
    from {
        opacity: 0;
        transform: translateY(60px);
    }

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

@keyframes flotar {
    0% {
        transform: translateY(-50%);
    }

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

    100% {
        transform: translateY(-50%);
    }

}


@keyframes bajar {
    0% {
        opacity: 0;
        transform: translateY(-10px);
    }

    50% {
        opacity: 1;
    }

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

@keyframes girarLuna {
    from {
        transform: rotate(0deg);
    }

    to {
        transform: rotate(360deg);
    }
}

/* Responsive */
@media(max-width:1400px) {
    .contenedor-luna {
        width: 820px;
        left: -220px;
    }
}

@media(max-width:1200px) {
    .contenedor-luna {
        width: 740px;
        left: -260px;
    }

    .columna-derecha {
        width: 50%;
    }
}

@media (max-width:992px) {
    .boton-menu {
        display: block;
    }

    .menu {
        position: absolute;
        top: 90px;
        left: 0;
        width: 100%;
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: 30px;
        padding: 30px 0;
        background: rgba(20, 20, 20, .95);
        backdrop-filter: blur(20px);
        border-radius: 25px;
        opacity: 0;
        visibility: hidden;
        transform: translateY(-20px);
        transition: .35s;
    }

    .menu.menu-abierto {
        opacity: 1;
        visibility: visible;
        transform: translateY(0);
    }

    .barra-navegacion {
        width: 95%;
    }

    .contenedor-navegacion {
        position: relative;
        justify-content: center;
        padding: 18px 25px;
    }

    .boton-menu {
        position: absolute;
        left: 25px;
        top: 50%;
        transform: translateY(-50%);
    }

    .logo {
        font-size: 1.5rem;
    }
}


@media(max-width:768px) {

    .hero {
        justify-content: center;
    }

    .columna-derecha {
        width: 100%;
        justify-content: center;
        text-align: center;
        z-index: 5;
    }

    .informacion {
        align-items: center;
    }

    .contenedor-luna {
        width: 640px;
        left: -340px;
        top: 48%;
    }
}

/* --------------------------------- Sobre mi ------------------------------------- */
.sobre-mi {
    padding: 150px 0;
    position: relative;
}

.contenedor-sobre-mi {
    width: min(1400px, 90%);
    margin: auto;
    display: grid;
    grid-template-columns: 45% 55%;
    align-items: center;
    gap: 80px;
}

.imagen-sobre-mi {
    position: relative;
    display: inline-flex;
    width: fit-content;
    margin: 200px auto 0;
    transform: translateX(-20px);
    top: 90px;
}

/*Etiqueta img*/
.imagen-sobre-mi .etiqueta-mascota {
    position: absolute;
    bottom: 100px;
    left: 38%;
    transform: translateX(-50%) translateY(10px);
    opacity: 0;
    visibility: hidden;
    transition: .35s;
}

.imagen-sobre-mi img:hover+.etiqueta-mascota {
    opacity: 1;
    visibility: visible;
    transform: translateX(-38%) translateY(0px);
}

.imagen-sobre-mi img {
    width: 90%;
    max-width: 520px;
    animation: flotar 5s ease-in-out infinite;
    filter: drop-shadow(0 0 70px #fdfcfd8c);
    border-radius: 100%;
    display: block;
}

.titulo-seccion {
    color: #ffffff;
    letter-spacing: 4px;
    font-weight: 600;
    font-size: 1.10rem;
    text-shadow:
        0 0 10px #410047,
        0 0 20px #ac01d6,
        0 0 35px #c300ff;
}

.contenido-sobre-mi h2 {
    margin-top: 15px;
    font-size: 3.3rem;
}

.contenido-sobre-mi p {
    margin-top: 28px;
    color: #ffffff;
    font-size: 1.18rem;
    line-height: 2;
}

.frase-sobre-mi {
    margin-top: 50px;
    padding-left: 25px;
    border-left: 4px solid #7d0188;
    font-size: 1.45rem;
    font-style: italic;
    color: white;
}

@media (max-width:992px) {
    .contenedor-sobre-mi {
        grid-template-columns: 1fr;
        text-align: center;
        gap: 60px;
    }

    .imagen-sobre-mi {
        transform: translateY(0);
        transform: translateX(20px);
    }

    .frase-sobre-mi {
        border: none;
        padding: 0;
    }

    @media (max-width:992px) {
        .imagen-sobre-mi .etiqueta-mascota {
            display: none;
        }
    }
}

/*--------------------------------- CV -------------------------------------*/
.recorrido {
    padding: 170px 0;
    position: relative;
}

.contenedor-recorrido {
    width: min(1400px, 90%);
    margin: auto;
}

/*Encabezado*/
.encabezado-recorrido {
    text-align: center;
    max-width: 900px;
    margin: auto;
}

.encabezado-recorrido h2 {
    margin-top: 18px;
    font-size: 3.3rem;
}

.descripcion-recorrido {
    margin-top: 30px;
    color: white;
    font-size: 1.18rem;
    line-height: 2;
}

/*Timeline*/
.timeline {
    position: relative;
    margin-top: 120px;
    padding: 20px 0;
}

.timeline::before {
    content: "";
    position: absolute;
    left: 50%;
    top: 0;
    width: 4px;
    height: 100%;
    transform: translateX(-50%);
    background: linear-gradient(to bottom,
            #410047,
            #914100f3);
    border-radius: 10px;
    box-shadow:
        0 0 18px #ffffff,
        0 0 25px #01002e;
}

/*Items*/
.timeline-item {
    position: relative;
    width: 50%;
    margin-bottom: 90px;
}

.timeline-item.izquierda {
    left: 0;
    padding-right: 70px;
}

.timeline-item.derecha {
    left: 50%;
    padding-left: 70px;
}

/*Puntos*/
.timeline-punto {
    position: absolute;
    top: 38px;
    width: 24px;
    height: 24px;
    background: white;
    border: 5px solid #410047;
    border-radius: 50%;
    box-shadow:
        0 0 15px #fcfcfc,
        0 0 35px #410047;
    z-index: 20;
}

.izquierda .timeline-punto {
    right: -12px;
}

.derecha .timeline-punto {
    left: -12px;
}

/*Tarjetas*/
.timeline-card {
    padding: 35px;
    border-radius: 28px;
    background: rgba(16, 16, 28, .78);
    border: 1px solid rgba(255, 255, 255, .08);
    backdrop-filter: blur(18px);
    transition: .4s;
    position: relative;
    overflow: hidden;
}

.timeline-card::before {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(135deg,
            rgba(0, 149, 255, .06),
            rgba(153, 0, 255, .06));
    opacity: 0;
    transition: .4s;
}

.timeline-card:hover {
    transform: translateY(-8px);
    box-shadow:
        0 15px 35px rgb(60, 0, 100),
        0 0 35px rgb(5, 5, 5);
}

.timeline-card:hover::before {
    opacity: 1;
}

.timeline-card>* {
    position: relative;
    z-index: 5;
}

/*Texto*/
.numero-paso {
    display: inline-block;
    margin-bottom: 18px;
    color: #9400d8;
    font-weight: 700;
    letter-spacing: 2px;
    font-size: .95rem;
}

.timeline-card h3 {
    font-size: 2rem;
    margin-bottom: 10px;
}

.institucion {
    display: block;
    color: #b8b8b8;
    margin-bottom: 18px;
}

.timeline-card p {
    color: white;
    line-height: 1.9;
}

.timeline-card ul {
    margin-top: 12px;
    padding-left: 22px;
}

.timeline-card li {
    margin-bottom: 12px;
    color: white;
}

.estado {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin: 18px 0;
    padding: 8px 18px;
    border-radius: 30px;
    background: rgba(52, 199, 89, .15);
    border: 1px solid rgba(52, 199, 89, .45);
    color: #7CFF9B;
    font-size: .88rem;
    font-weight: 600;
}

/* Estado */
.estado-actual {
    margin-top: 120px;
    text-align: center;
}

.estado-actual h2 {
    font-size: 3.2rem;
    margin: 25px 0;
}

.decoracion-titulo {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 18px;
    margin-top: 18px;
}

.decoracion-titulo span {
    width: 80px;
    height: 2px;
    background: linear-gradient(90deg, #ffffff, #410047);
}

.decoracion-titulo i {
    color: #ffffff;
    font-size: 1rem;
}

.descripcion-panel {
    max-width: 800px;
    margin: 35px auto 70px;
    color: #d9d9d9;
    line-height: 1.8;
    font-size: 1.15rem;
}

.estado-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 35px;
}

.estado-card {
    position: relative;
    padding: 45px 30px;
    border-radius: 30px;
    background: rgba(15, 15, 25, .75);
    backdrop-filter: blur(18px);
    transition: .35s;
    overflow: hidden;
}

.estado-card::before {
    content: "";
    position: absolute;
    inset: 0;
    background: radial-gradient(circle at top, rgba(255, 255, 255, .06),
            transparent 60%);
    pointer-events: none;
}

.stack {
    border: 1px solid rgba(255, 255, 255, 0.45);
    box-shadow: 0 0 25px rgba(255, 255, 255, 0.39);
}

.especialidad {
    border: 1px solid #410047;
    box-shadow: 0 0 25px #410047;
}

.habilidades {
    border: 1px solid rgba(255, 136, 0, 0.45);
    box-shadow: 0 0 25px rgba(255, 174, 0, 0.308);
}

.estado-card:hover {
    transform: translateY(-10px);
}

.stack:hover {
    box-shadow: 0 0 45px rgba(255, 255, 255, 0.45);
}

.especialidad:hover {
    box-shadow: 0 0 45px #410047;
}

.habilidades:hover {
    box-shadow: 0 0 45px rgba(255, 174, 0, 0.308);

}

.icono-card {
    font-size: 3.2rem;
    margin-bottom: 25px;
}

.stack .icono-card {
    color: #ffffff;
}

.especialidad .icono-card {
    color: #65016e;
}

.habilidades .icono-card {
    color: #c06d0094;
}

.estado-card h3 {
    font-size: 2rem;
    margin-bottom: 18px;
}

.linea-card {
    width: 70px;
    height: 4px;
    margin: 0 auto 35px;
    border-radius: 50px;
}

.stack .linea-card {
    background: #ffffff;
}

.especialidad .linea-card {
    background: #410047;
}

.habilidades .linea-card {
    background: #ff880085;
}

.estado-tags {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 16px;
}

.estado-tags span {
    padding: 12px 22px;
    border-radius: 50px;
    background: rgba(255, 255, 255, .05);
    border: 1px solid rgba(255, 255, 255, .08);
    transition: .30s;
    color: white;
    font-size: .95rem;
}

.stack .estado-tags span {
    border-color: #ffffff;
}

.especialidad .estado-tags span {
    border-color: #410047;
}

.habilidades .estado-tags span {
    border-color: rgba(255, 136, 0, 0.25);
}

.estado-tags span:hover {
    transform: translateY(-4px);
}

.stack .estado-tags span:hover {
    background: #8a8a8a;
}

.especialidad .estado-tags span:hover {
    background: #410047;
}

.habilidades .estado-tags span:hover {
    background: #ffa60080;
}

.estado-footer {
    margin-top: 55px;
    padding-top: 40px;
    border-top: 1px solid rgba(252, 252, 252, 0.644);
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 20px;
}

.estado-footer i {
    font-size: 2rem;
    color: #fafafa;
}

.estado-footer p {
    max-width: 700px;
    color: #fcfcfc;
    line-height: 1.9;
    font-size: 1.05rem;
}

.icono-card {
    transition: .35s;
}

.estado-card:hover .icono-card {
    transform: scale(1.15);
}

.stack:hover .icono-card {
    text-shadow: 0 0 15px #ffffff, 0 0 35px #410047;
}

.especialidad:hover .icono-card {
    text-shadow: 0 0 15px #ffffff, 0 0 35px #410047;
}

.habilidades:hover .icono-card {
    text-shadow: 0 0 15px #ffffff, 0 0 35px #410047;
}

.estado-card {
    isolation: isolate;
}

.estado-card::after {
    content: "";
    position: absolute;
    width: 220px;
    height: 220px;
    border-radius: 50%;
    top: -120px;
    right: -120px;
    opacity: .15;
    filter: blur(35px);
    transition: .4s;
    z-index: -1;
}

.stack::after {
    background: #ffffff;
}

.especialidad::after {
    background: #64016d;
}

.habilidades::after {
    background: #ff8800a1;
}

.estado-card:hover::after {
    transform: scale(1.3);
    opacity: .35;
}

.estado-tags span {
    position: relative;
    overflow: hidden;
}

.estado-tags span::before {
    content: "";
    position: absolute;
    inset: 0;
    transform: translateX(-120%);
    background: linear-gradient(120deg, transparent,
            rgba(255, 255, 255, .22), transparent);
    transition: .45s;
}

.estado-tags span:hover::before {
    transform: translateX(120%);
}

.estado-footer {
    opacity: .9;
}

.estado-footer i {
    animation: coheteFlotar 3s ease-in-out infinite;
}

@keyframes coheteFlotar {

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

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

/*Responsive*/
@media(max-width:1100px) {
    .estado-grid {
        grid-template-columns: 1fr;
    }
}

@media(max-width:768px) {
    .estado-actual h2 {
        font-size: 2.4rem;
    }

    .estado-card {
        padding: 35px 25px;
    }

    .estado-footer {
        flex-direction: column;
    }

    .decoracion-titulo span {
        width: 50px;
    }

    .timeline::before {
        left: 20px;
        transform: none;
    }

    .timeline-item,
    .timeline-item.izquierda,
    .timeline-item.derecha {
        width: 100%;
        left: 0;
        padding-left: 55px;
        padding-right: 0;
    }

    .izquierda .timeline-punto,
    .derecha .timeline-punto {
        left: 8px;
        right: auto;
    }

    .timeline-card {
        padding: 25px 22px;
    }

    .timeline-card h3 {
        font-size: 1.6rem;
    }

}

/*-------------------------------- PROYECTOS -------------------------------*/
.seccion-proyectos {
    padding: 170px 0;
    position: relative;
}

.contenedor-proyectos {
    width: min(1500px, 92%);
    margin: auto;
}

/* Encabezado */
.encabezado-proyectos {
    max-width: 900px;
    margin: auto;
    text-align: center;
}

.encabezado-proyectos h2 {
    font-size: 3.2rem;
    margin: 20px 0;
}

.texto-proyectos {
    max-width: 850px;
    margin: auto;
    color: #ffffff;
    line-height: 2;
    font-size: 1.1rem;
}

/*Gid*/
.proyectos-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 35px;
    margin-top: 80px;
    align-items: stretch;
}

/*Tarjeta*/
.proyecto-card {
    display: flex;
    flex-direction: column;
    background: rgba(18, 18, 28, .90);
    border: 1px solid #410047;
    border-radius: 26px;
    overflow: hidden;
    transition: .35s;
}

.proyecto-card:hover {
    transform: translateY(-10px);
    border-color: #770181;
    box-shadow: 0 15px 35px rgba(0, 0, 0, .40), 0 0 30px rgba(252, 251, 252, 0.521);
}

/* Imagen */
.proyecto-imagen {
    width: 100%;
    height: 310px;
    object-fit: cover;
    display: block;
    filter: grayscale(100%) contrast(.95) brightness(.8);
    transition: transform .45s ease, filter .45s ease;
}

.proyecto-card:hover .proyecto-imagen {
    transform: scale(1.05);
    filter: grayscale(0%) contrast(1) brightness(1);
}

/*Contenido*/
.proyecto-info {
    display: flex;
    flex-direction: column;
    flex: 1;
    padding: 25px;
}

/*Cabecera*/
.proyecto-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 18px;
    margin-bottom: 18px;
}

.proyecto-log {
    color: #fcfbfc;
    font-size: .82rem;
    font-weight: 700;
    letter-spacing: 2px;
}

.proyecto-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 8px 16px;
    border-radius: 999px;
    white-space: nowrap;
    background: #410047;
    border: 1px solid rgba(255, 255, 255, .08);
    font-size: .78rem;
    color: white;
}

/*Texto*/
.proyecto-info h3 {
    font-size: 1.8rem;
    margin-bottom: 15px;
}

.proyecto-info p {
    color: #ffffff;
    line-height: 1.8;
    margin-bottom: 22px;
    flex: 1;
}

/*Tecnologias etiquetas*/
.proyecto-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: auto;
    margin-bottom: 22px;
}

.proyecto-tag {
    padding: 8px 14px;
    border-radius: 999px;
    background: #000000;
    border: 1px solid rgba(255, 255, 255, 0.226);
    font-size: .82rem;
    color: #f8f7f7;
    transition: .3s;
}

.proyecto-tag:hover {
    background: #410047;
    border-color: #410047;
}

/*Botones*/
.proyecto-botones {
    display: flex;
    gap: 14px;
    margin-top: auto;
}

.proyecto-botones a {
    flex: 1;
    text-align: center;
    padding: 13px 18px;
    border-radius: 30px;
    text-decoration: none;
    font-weight: 600;
    transition: .3s;
    box-shadow: 0 0 10px #ffffff;
}

.btn-demo {
    background: #410047;
    color: #fff;
}

.btn-demo:hover {
    transform: translateY(-3px);
    box-shadow: 0 0 15px #410047;
    background: black;
}

.btn-github {
    color: #fff;
    background: #410047;
}

.btn-github:hover {
    background: #030303;
    transform: translateY(-3px);
    box-shadow: 0 0 15px #410047;
}

/*Responsive*/

@media(max-width:1200px) {
    .proyectos-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media(max-width:768px) {
    .proyectos-grid {
        grid-template-columns: 1fr;
        gap: 28px;
    }

    .proyecto-info {
        padding: 22px;
    }

    .proyecto-header {
        flex-wrap: wrap;
        gap: 12px;
    }

    .proyecto-botones {
        flex-direction: column;
    }

    .proyecto-imagen {
        height: 210px;
    }
}

/* --------------------------------- tecnologias -------------------------------------*/
.tecnologias {
    position: relative;
    padding: 100px 0;
    overflow: hidden;
}

.contenedor-tecnologias {
    width: min(1400px, 90%);
    margin: auto;
}

.encabezado-tecnologias {
    text-align: center;
    max-width: 850px;
    margin: 0 auto -50px;
}

.encabezado-tecnologias h2 {
    margin-top: 18px;
    font-size: 3.4rem;
}

.descripcion-tecnologias {
    margin-top: 30px;
    font-size: 1.18rem;
    line-height: 2;
    color: white;
}

.orbita-tecnologias {
    position: relative;
    width: 950px;
    height: 950px;
    margin: auto;
    animation: flotarOrbita 10s ease-in-out infinite
}

/* Luna */
.luna-tecnologias {
    position: absolute;
    width: 620px;
    left: 50%;
    top: 52%;
    transform: translate(-50%, -50%);
    filter: drop-shadow(0 0 80px rgba(255, 255, 255, 0.664));
}

/* Tecnologías */
.tecnologia {
    position: absolute;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 15px;
}

.tecnologia img {
    width: 82px;
    transition: .35s;
}

.tecnologia span {
    color: white;
    font-size: 1rem;
    font-weight: 600;
    transition: .35s;
}

/*logos*/
.java {
    top: 110px;
    left: calc(50% - 41px);
}

.html {
    top: 220px;
    left: 185px;
}

.spring {
    top: 220px;
    right: 185px;
}

.css {
    top: 435px;
    left: 115px;
}

.mysql {
    top: 440px;
    right: 115px;
}

.php {
    bottom: 185px;
    left: 190px;
}

.bootstrap {
    bottom: 195px;
    right: 190px;
}

.javascript {
    bottom: 110px;
    left: calc(50% - 41px);
}

/*Hover*/
.tecnologia:hover img {
    transform: scale(1.22);
}

.tecnologia:hover span {
    transform: translateY(-2px);
}

.html:hover img {
    filter: drop-shadow(0 0 20px #ff6600);
}

.css:hover img {
    filter: drop-shadow(0 0 20px #2196f3);
}

.javascript:hover img {
    filter: drop-shadow(0 0 20px #ffd600);
}

.java:hover img {
    filter: drop-shadow(0 0 20px #ff9800);
}

.php:hover img {
    filter: drop-shadow(0 0 20px #777bb4);
}

.bootstrap:hover img {
    filter: drop-shadow(0 0 20px #8b3dff);
}

.mysql:hover img {
    filter: drop-shadow(0 0 20px #00bcd4);
}

.spring:hover img {
    filter: drop-shadow(0 0 20px #6db33f);
}

/* Nombres hover */
.html:hover span {
    color: #ff6600;
}

.css:hover span {
    color: #2196f3;
}

.javascript:hover span {
    color: #ffd600;
}

.java:hover span {
    color: #ff9800;
}

.php:hover span {
    color: #777bb4;
}

.bootstrap:hover span {
    color: #8b3dff;
}

.mysql:hover span {
    color: #00bcd4;
}

.spring:hover span {
    color: #6db33f;
}

/*Animaciones*/
@keyframes flotarOrbita {
    0% {
        transform: translateY(0) rotate(-1deg);
    }

    50% {
        transform: translateY(-35px) rotate(1deg);
    }

    100% {
        transform: translateY(0) rotate(-1deg);
    }

}

/*Responsive*/
@media(max-width:992px) {
    .orbita-tecnologias {
        width: 100%;
        height: 700px;
    }

    .luna-tecnologias {
        width: 400px;
    }

    .tecnologia img {
        width: 58px;
    }

    .tecnologia span {
        font-size: .85rem;
    }

    .tecnologia img {
        width: 60px;
    }

    .encabezado-tecnologias h2 {
        font-size: 2.6rem;
    }
}

@media(max-width:992px) {
    .tecnologias {
        padding: 120px 0;
    }

    .orbita-tecnologias {
        width: 100%;
        height: auto;
        display: flex;
        flex-direction: column;
        align-items: center;
        animation: none;
    }

    .luna-tecnologias {
        position: static;
        width: 340px;
        transform: none;
        margin-bottom: 30px;
        margin-top: 50px;
    }

    .tecnologia {
        position: static;
    }

    .contenedor-iconos {
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        gap: 35px 25px;
        justify-items: center;
        width: 100%;
        max-width: 420px;
    }

    .tecnologia img {
        width: 60px;
    }

    .tecnologia span {
        font-size: .9rem;
    }
}

/*Gatos astronautas*/
.mascota {
    position: absolute;
    z-index: 2;
    animation: flotarMascota 6s ease-in-out infinite;
}

.mascota img {
    display: block;
    width: 100%;
    transition: .4s;
    filter: drop-shadow(0 0 20px rgba(170, 90, 255, .35));
}

.mascota:hover img {
    transform: scale(1.12) rotate(-3deg);
    filter: drop-shadow(0 0 18px #5b0080) drop-shadow(0 0 35px rgba(49, 48, 48, 0.575));
}

.etiqueta-mascota {
    position: absolute;
    left: 50%;
    bottom: -75px;
    transform: translateX(-50%) translateY(10px);
    width: max-content;
    padding: 10px 18px;
    border-radius: 15px;
    background: rgba(22, 15, 40, .82);
    backdrop-filter: blur(10px);
    border: 1px solid rgba(153, 0, 255, 0.534);
    text-align: center;
    opacity: 0;
    visibility: hidden;
    transition: .35s;
}

.etiqueta-mascota h4 {
    color: #ffffff;
    font-size: 1rem;
    margin-bottom: 4px;
}

.etiqueta-mascota p {
    color: #ffffff;
    font-size: .82rem;
    white-space: nowrap;
}

.mascota:hover .etiqueta-mascota {
    opacity: 1;
    visibility: visible;
    transform: translateX(-50%) translateY(0);
    box-shadow: 0 0 15px rgba(55, 0, 100, 0.45), 0 0 35px rgba(134, 0, 243, 0.534);
}

/*Posiciones gatos*/
.mascota-kiara {
    width: 220px;
    top: 530px;
    left: 150px;
}

.mascota-nami {
    width: 230px;
    bottom: 180px;
    left: 150px;
    animation-delay: 1s;
}

.mascota-luffy {
    width: 220px;
    top: 580px;
    right: 150px;
    animation-delay: 2s;
}

.mascota-sanji {
    width: 250px;
    bottom: 150px;
    right: 150px;
    animation-delay: 3s;
}

/*Animacion gatos*/
@keyframes flotarMascota {
    0% {
        transform: translateY(0px) rotate(-2deg);
    }

    50% {
        transform: translateY(-12px) rotate(2deg);
    }

    100% {
        transform: translateY(0px) rotate(-2deg);
    }
}

/*Responsive*/
@media (max-width:992px) {

    .mascota-kiara,
    .mascota-nami,
    .mascota-luffy,
    .mascota-sanji {
        display: none;
    }
}

/* --------------------------------- Contacto -------------------------------------*/
.contacto {
    padding: 170px 0;
}

.contenedor-contacto {
    width: min(900px, 90%);
    margin: auto;
    text-align: center;
}

.contenedor-contacto h2 {
    margin-top: 18px;
    font-size: 3.3rem;
}

.descripcion-contacto {
    max-width: 760px;
    margin: 20px auto 30px;
    line-height: 2;
    font-size: 1.15rem;
}

#formulario-contacto {
    display: flex;
    flex-direction: column;
    gap: 22px;
}

.fila {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 22px;
}

#formulario-contacto input,
#formulario-contacto textarea {
    width: 100%;
    padding: 18px 22px;
    border-radius: 18px;
    border: 1px solid rgba(255, 255, 255, 0.507);
    background: #410047;
    backdrop-filter: blur(15px);
    color: white;
    outline: none;
    font-family: inherit;
    transition: .35s;
}

#formulario-contacto input:focus,
#formulario-contacto textarea:focus {
    border-color: #410047;
    box-shadow: 0 0 20px rgba(153, 0, 255, .35);
    background-color: #000000fd;
}

#formulario-contacto input::placeholder,
#formulario-contacto textarea::placeholder {
    color: white;
}

#formulario-contacto textarea {
    resize: none;
}

#btnEnviar {
    position: relative;
    overflow: hidden;
    align-self: center;
    padding: 18px 45px;
    border: none;
    border-radius: 50px;
    background: #410047;
    color: white;
    font-size: 1rem;
    font-weight: 700;
    cursor: pointer;
    transition: .35s;
    top: 20px;
}

#btnEnviar::before {
    content: "";
    position: absolute;
    top: 0;
    left: -120%;
    width: 60%;
    height: 100%;
    background: linear-gradient(120deg, transparent, rgb(255, 255, 255), transparent);
    transition: .8s;
}

#btnEnviar:hover {
    transform: translateY(-5px);
    box-shadow: 0 0 40px rgba(153, 0, 255, 0.699);
    background: black;
    color: white;
}

#btnEnviar:hover::before {
    left: 140%;
}

#mensajeFormulario {
    margin-top: 55px;
    font-weight: 600;
}

.redes-contacto {
    margin-top: 60px;
    display: flex;
    justify-content: center;
    gap: 35px;
}

.redes-contacto a {
    color: white;
    font-size: 2.5rem;
    transition: .35s;
}

.redes-contacto a:hover {
    color: #7b0286;
    transform: translateY(-4px);
}

/*Responsive*/
@media(max-width:992px) {
    .fila {
        grid-template-columns: 1fr;
    }

    .contenedor-contacto h2 {
        font-size: 2.6rem;
    }

    .descripcion-contacto {
        font-size: 1rem;
    }
}

.frase-final {
    margin: 20px auto 0;
    max-width: 700px;
    text-align: center;
    color: #cfcfcf;
    font-size: 1.05rem;
    line-height: 1.8;
    font-style: italic;
}