:root{--bg-principal:#0f172a;--bg-tarjetas:#1e293b;--texto-blanco:#f8fafc;--texto-gris:#94a3b8;--acento:#10b981;--acento-hover:#059669;--fuente-ui:"Inter", sans-serif;--fuente-codigo:"Fira Code", monospace}*{box-sizing:border-box;margin:0;padding:0}body{background-color:var(--bg-principal);color:var(--texto-blanco);font-family:var(--fuente-ui);-webkit-font-smoothing:antialiased;line-height:1.6}.portfolio-container{max-width:1300px;margin:0 auto;padding:0 1.5rem}.seccion{max-width:1250px;margin:0 auto;padding:5rem 0}.titulo-seccion{color:var(--texto-blanco);align-items:center;margin-bottom:3rem;font-size:2rem;display:flex}.titulo-seccion:after{content:"";background-color:#233554;width:300px;height:1px;margin-left:20px;display:block}.hero{flex-direction:column;justify-content:center;align-items:flex-start;min-height:100vh;display:flex}.saludo{color:var(--acento);font-family:var(--fuente-codigo);margin-bottom:1.2rem;font-size:1.1rem}.nombre{margin-bottom:.5rem;font-size:clamp(2.5rem,6vw,5rem);font-weight:800;line-height:1.1}.puesto{color:var(--texto-gris);margin-bottom:1.5rem;font-size:clamp(2rem,5vw,4rem);font-weight:600;line-height:1.1}.descripcion{max-width:550px;color:var(--texto-gris);margin-bottom:3rem;font-size:1.1rem}.descripcion strong{color:var(--texto-blanco)}.botones-hero{gap:1.5rem;display:flex}.btn-primario,.btn-secundario{font-family:var(--fuente-codigo);border-radius:4px;padding:.9rem 1.5rem;font-size:.95rem;text-decoration:none;transition:all .25s}.btn-primario{color:var(--acento);border:1px solid var(--acento);background-color:#0000}.btn-primario:hover{background-color:#10b9811a;transform:translateY(-3px)}.btn-secundario{color:var(--texto-blanco);border:1px solid var(--texto-gris)}.btn-secundario:hover{border-color:var(--texto-blanco);transform:translateY(-3px)}.seccion{width:100%}.sobre-mi-layout{grid-template-columns:3fr 2fr;gap:3rem;display:grid}.sobre-mi-texto p{color:var(--texto-gris);margin-bottom:1rem;font-size:1.05rem}.grid-habilidades{grid-template-columns:repeat(2,1fr);gap:10px;padding:0;list-style:none;display:grid}.grid-habilidades li{font-family:var(--fuente-codigo);color:var(--texto-gris);font-size:.9rem}.grid-habilidades li:first-letter{color:var(--acento)}@media (width<=768px){.sobre-mi-layout{grid-template-columns:1fr}}.proyecto-tarjeta{background-color:var(--bg-tarjetas);border:1px solid #ffffff0d;border-radius:8px;padding:2rem;transition:all .3s;box-shadow:0 10px 30px -15px #020c1bb3}.proyecto-tarjeta .proyecto-tarjeta:hover{transform:translateY(-5px);box-shadow:0 20px 30px -15px #020c1be6}.proyecto-tarjeta .proyecto-destacado{color:var(--acento);font-family:var(--fuente-codigo);margin-bottom:.5rem;font-size:.9rem}.proyecto-tarjeta .proyecto-titulo{color:var(--texto-blanco);margin-bottom:1.5rem;font-size:1.7rem}.proyecto-tarjeta .proyecto-descripcion{color:var(--texto-gris);margin-bottom:2rem;font-size:1.05rem}.proyecto-tarjeta .proyecto-descripcion ul{margin-top:1rem;padding-left:1.5rem}.proyecto-tarjeta .proyecto-descripcion li{margin-bottom:.5rem}.proyecto-tarjeta .proyecto-descripcion strong{color:var(--texto-blanco)}.proyecto-tarjeta .proyecto-tecnologias{flex-wrap:wrap;gap:1rem;margin-bottom:2rem;padding:0;list-style:none;display:flex}.proyecto-tarjeta .proyecto-tecnologias li{font-family:var(--fuente-codigo);color:var(--acento);background-color:#10b9811a;border-radius:20px;padding:.3rem .8rem;font-size:.85rem}.proyecto-tarjeta .proyecto-enlaces{gap:1.5rem;display:flex}.proyecto-tarjeta .enlace-icono{color:var(--texto-blanco);font-weight:600;text-decoration:none;transition:color .2s}.proyecto-tarjeta .enlace-icono:hover{color:var(--acento)}.proyecto-tarjeta .footer{text-align:center;margin-top:5rem;padding:2rem 0 4rem}.proyecto-tarjeta .footer a,.proyecto-tarjeta .footer a:visited{color:var(--texto-gris);font-family:var(--fuente-codigo);letter-spacing:.5px;font-size:.9rem;text-decoration:none;transition:color .3s}.proyecto-tarjeta .footer a:hover{color:var(--acento)}.proyecto-tarjeta .proyecto-layout{grid-template-columns:1fr 1.2fr;align-items:center;gap:2.5rem;display:grid}.proyecto-tarjeta .proyecto-imagen img{filter:brightness(.85)contrast(1.1);border:1px solid #ffffff1a;border-radius:6px;width:100%;height:auto;transition:transform .3s,filter .3s}.proyecto-tarjeta .proyecto-imagen:hover img{filter:brightness()contrast(1.1);transform:scale(1.02)}@media (width<=850px){.proyecto-tarjeta .proyecto-layout{grid-template-columns:1fr}.proyecto-tarjeta .proyecto-imagen img{margin-bottom:1.5rem}}
