@import "https://fonts.googleapis.com/css2?family=Fira+Code:wght@400;500;600;700&family=Inter:wght@400;500;600;700;800&display=swap";.navbar{z-index:1000;-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px);background:#0d1117de;border-bottom:1px solid #30363db3;width:100%;position:fixed;top:0}.navbar-inner{justify-content:space-between;align-items:center;width:min(1100px,100% - 40px);height:68px;margin:auto;display:flex}.navbar-logo{font-family:Fira Code,monospace;font-weight:700}.navbar-symbol{color:var(--text)}.navbar-links{gap:25px;display:flex}.navbar-links a{color:var(--muted);font-family:Fira Code,monospace;font-size:.85rem}.navbar-links a:hover{color:var(--green)}@media (width<=800px){.navbar-links{display:none}}.footer{border-top:1px solid var(--border);text-align:center;padding:35px 20px;font-family:Fira Code,monospace;font-size:.85rem}.footer .comment{margin-bottom:8px}.hero{align-items:flex-start;min-height:auto;padding:150px 20px 35px;display:flex}.hero-container{width:min(1100px,100%);margin:0 auto}.hero-terminal{color:var(--muted);margin-bottom:30px;font-family:Fira Code,monospace;font-size:.9rem}.terminal-user{color:var(--green)}.terminal-path{color:var(--blue)}.terminal-symbol{color:var(--text)}.hero-code .comment{margin-bottom:8px;font-family:Fira Code,monospace}.hero h1{letter-spacing:-5px;margin-bottom:38px;font-size:clamp(3.4rem,10vw,7rem);font-weight:800;line-height:.93}.hero-object{font-family:Fira Code,monospace;font-size:clamp(.9rem,2vw,1.05rem);line-height:1.8}.hero-indent{padding-left:30px}.hero-description{max-width:640px;color:var(--muted);margin:34px 0 28px;font-size:1.1rem;line-height:1.7}.hero-buttons{flex-direction:column;align-items:flex-start;gap:12px;display:flex}.hero-buttons-main{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.hero-classic{display:flex}.hero .btn-primary,.hero .btn-secondary,.hero .btn-classic{border:1px solid var(--border);width:170px;min-height:46px;color:var(--text);opacity:1;cursor:pointer;background:0 0;border-radius:8px;justify-content:center;align-items:center;padding:11px 18px;font-family:Fira Code,monospace;font-size:.82rem;font-weight:600;text-decoration:none;transition:transform .2s,border-color .2s,color .2s,background .2s,box-shadow .2s;display:inline-flex}.hero .btn-primary:before{content:">";color:var(--green);margin-right:7px}.hero .btn-secondary:before{content:"@";color:var(--blue);margin-right:7px}.hero .btn-classic:before{content:"./";color:var(--green);margin-right:7px}.hero .btn-primary:hover,.hero .btn-secondary:hover,.hero .btn-classic:hover{border-color:var(--green);color:var(--green);background:#98c3790d;transform:translateY(-3px);box-shadow:0 8px 22px #00000026}@media (width<=900px){.hero{align-items:flex-start;min-height:auto;padding:135px 20px 30px}.hero h1{letter-spacing:-4px;font-size:clamp(3.2rem,11vw,5.5rem)}}@media (width<=600px){.hero{align-items:flex-start;min-height:auto;padding:120px 18px 25px}.hero-terminal{margin-bottom:25px;font-size:.78rem}.hero h1{letter-spacing:-3px;overflow-wrap:anywhere;margin-bottom:30px;font-size:clamp(2.8rem,14vw,4rem);line-height:.98}.hero-object{font-size:.84rem;line-height:1.75}.hero-indent{padding-left:15px}.hero-description{margin:28px 0 24px;font-size:1rem}.hero-buttons{width:100%}.hero-buttons-main{flex-direction:column;align-items:stretch;width:100%}.hero-classic{width:100%}.hero .btn-primary,.hero .btn-secondary,.hero .btn-classic{width:100%;min-height:48px}}@media (width<=400px){.hero{min-height:auto;padding:115px 15px 20px}.hero h1{letter-spacing:-2px;font-size:clamp(2.5rem,13vw,3.3rem)}.hero-object{font-size:.78rem}}.btn-download-cv{color:#2d7a5b;background:0 0;border:1px solid #2d7a5b;border-radius:6px;justify-content:center;align-items:center;padding:10px 16px;font-family:inherit;font-size:.9rem;text-decoration:none;transition:all .2s;display:inline-flex}.btn-download-cv:hover{color:#fff;background:#2d7a5b;transform:translateY(-2px)}.hero-classic{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.skills-code-intro,.skills-code-close{color:var(--text);font-family:Fira Code,monospace;font-size:1rem}.skills-code-intro{margin-bottom:22px}.skills-code-close{margin-top:22px}.skills-groups{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;display:grid}.skill-group{background:var(--surface);border:1px solid var(--border);border-radius:12px;min-width:0;padding:25px;transition:transform .25s,border-color .25s,box-shadow .25s}.skill-group:hover{border-color:#61afef80;transform:translateY(-4px);box-shadow:0 15px 35px #00000026}.skill-group .comment{margin-bottom:12px;font-family:Fira Code,monospace;font-size:.8rem;display:block}.skill-group-title{margin-bottom:20px;font-family:Fira Code,monospace;font-size:.95rem}.skill-close{margin-top:18px;font-family:Fira Code,monospace;font-size:.95rem}.skills-logos{grid-template-columns:repeat(auto-fit,minmax(100px,1fr));gap:12px;display:grid}.skill-tool{background:var(--bg);border:1px solid var(--border);border-radius:10px;flex-direction:column;justify-content:center;align-items:center;gap:12px;min-width:0;min-height:125px;padding:15px 10px;transition:transform .2s,border-color .2s,background .2s;display:flex}.skill-tool:hover{border-color:var(--green);background:var(--surface-hover);transform:translateY(-4px)}.skill-logo-container{flex-shrink:0;justify-content:center;align-items:center;width:60px;height:60px;display:flex}.skill-logo{object-fit:contain;width:100%;max-width:60px;height:100%;max-height:60px;transition:transform .25s,filter .25s;display:block}.skill-tool:hover .skill-logo{transform:scale(1.08)}.skill-name{color:var(--green);text-align:center;overflow-wrap:anywhere;font-family:Fira Code,monospace;font-size:.72rem;line-height:1.3}@media (width<=850px){.skills-groups{grid-template-columns:1fr}}@media (width<=600px){.skills-code-intro,.skills-code-close{font-size:.8rem}.skill-group{padding:18px}.skill-group-title,.skill-close{font-size:.8rem}.skills-logos{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.skill-tool{min-height:110px;padding:12px 8px}.skill-logo-container{width:50px;height:50px}.skill-logo{max-width:50px;max-height:50px}.skill-name{font-size:.65rem}}@media (width<=350px){.skills-logos{grid-template-columns:1fr}}.projects-grid{grid-template-columns:repeat(3,1fr);gap:20px;display:grid}.project-card{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:25px}.project-card:hover{border-color:#98c37980;transform:translateY(-5px)}.project-card h3{margin:15px 0;font-family:Fira Code,monospace;font-size:1rem}.project-description{color:var(--muted);margin-bottom:22px}.project-stack{flex-wrap:wrap;gap:8px;font-family:Fira Code,monospace;font-size:.82rem;display:flex}.project-stack span:not(.property){color:var(--green);background:var(--bg);border-radius:5px;padding:5px 9px}.project-status{margin-top:20px;font-family:Fira Code,monospace;font-size:.85rem}@media (width<=900px){.projects-grid{grid-template-columns:1fr}}.experience-list{border-left:1px solid var(--border)}.experience-item{border-bottom:1px solid var(--border);gap:25px;padding:25px;font-family:Fira Code,monospace;display:flex}.experience-item:hover{background:var(--surface)}.line-number{color:#484f58}.experience-item p{margin:5px 0}.education-block{margin-bottom:70px}.education-code-title,.education-code-close{font-family:Fira Code,monospace;font-size:.95rem}.education-code-title{margin-bottom:22px}.education-code-close{margin-top:20px}.diplomas-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;display:grid}.diploma-card{background:var(--surface);border:1px solid var(--border);border-radius:14px;min-width:0;transition:transform .25s,border-color .25s,box-shadow .25s;overflow:hidden}.diploma-card:hover{border-color:#98c37980;transform:translateY(-5px);box-shadow:0 15px 40px #0003}.diploma-image-container{aspect-ratio:16/10;background:var(--bg);cursor:pointer;width:100%;position:relative;overflow:hidden}.diploma-image{object-fit:cover;width:100%;height:100%;transition:transform .35s,opacity .35s;display:block}.diploma-image-container:hover .diploma-image{opacity:.6;transform:scale(1.03)}.diploma-overlay{opacity:0;background:#0d111733;justify-content:center;align-items:center;transition:opacity .25s,background .25s;display:flex;position:absolute;inset:0}.diploma-overlay span{background:var(--bg);border:1px solid var(--green);color:var(--green);border-radius:7px;padding:9px 15px;font-family:Fira Code,monospace;font-size:.8rem}.diploma-image-container:hover .diploma-overlay{opacity:1;background:#0d111759}.diploma-info{padding:20px;font-family:Fira Code,monospace;font-size:.8rem}.diploma-info p{overflow-wrap:anywhere;margin:6px 0}.other-education{margin-top:20px}.other-education-list{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:25px;font-family:Fira Code,monospace;font-size:.82rem}.other-education-item{border-bottom:1px solid var(--border);overflow-wrap:anywhere;padding:13px 0;line-height:1.8}.other-education-item:last-child{border-bottom:none}.diploma-modal{z-index:5000;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#05080ceb;justify-content:center;align-items:center;padding:30px;display:flex;position:fixed;inset:0}.diploma-modal-content{background:var(--surface);border:1px solid var(--border);border-radius:14px;width:min(1000px,100%);max-height:90vh;animation:.25s diplomaOpen;overflow:auto;box-shadow:0 30px 80px #00000080}@keyframes diplomaOpen{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}.diploma-modal-header{border-bottom:1px solid var(--border);padding:18px 22px;font-family:Fira Code,monospace;font-size:.85rem}.diploma-modal-header .comment{margin-bottom:5px;display:block}.diploma-modal-image{object-fit:contain;background:var(--bg);width:100%;height:auto;max-height:75vh;display:block}.diploma-modal-close{background:var(--surface);border:1px solid var(--border);width:42px;height:42px;color:var(--text);cursor:pointer;z-index:5100;border-radius:50%;justify-content:center;align-items:center;font-family:Fira Code,monospace;font-size:1.8rem;line-height:1;transition:transform .25s,color .25s,border-color .25s;display:flex;position:fixed;top:22px;right:28px}.diploma-modal-close:hover{color:var(--green);border-color:var(--green);transform:rotate(90deg)}@media (width<=850px){.diplomas-grid{grid-template-columns:1fr}}@media (width<=600px){.education-block{margin-bottom:50px}.education-code-title,.education-code-close{font-size:.75rem}.diplomas-grid{gap:14px}.diploma-card{border-radius:10px}.diploma-image-container{aspect-ratio:16/10}.diploma-info{padding:16px;font-size:.7rem}.diploma-overlay{opacity:1;background:0 0;justify-content:flex-end;align-items:flex-end;padding:10px}.diploma-overlay span{background:#0d1117e6;padding:6px 9px;font-size:.62rem}.other-education-list{padding:16px;font-size:.7rem}.other-education-item{padding:11px 0;line-height:1.7}.diploma-modal{padding:12px}.diploma-modal-content{border-radius:10px;max-height:85vh}.diploma-modal-header{padding:14px;font-size:.68rem}.diploma-modal-image{max-height:70vh}.diploma-modal-close{width:36px;height:36px;font-size:1.5rem;top:12px;right:12px}}@media (width<=360px){.diploma-info,.other-education-list{font-size:.65rem}.diploma-modal-header{font-size:.62rem}}.contact{text-align:center;padding-top:120px;padding-bottom:140px}.contact h2{margin:15px 0 25px;font-family:Fira Code,monospace;font-size:clamp(2rem,5vw,3.5rem)}.contact-text{color:var(--muted);max-width:580px;margin:0 auto 40px;font-size:1.05rem}.contact-code{text-align:left;background:var(--surface);border:1px solid var(--border);border-radius:12px;max-width:630px;margin:auto;padding:25px;font-family:Fira Code,monospace}.contact-code p{margin:8px 0}.contact-code a:hover{text-decoration:underline}.cv-normal .portada{text-align:center;background:linear-gradient(135deg,#020617,#0a2540);flex-direction:column;justify-content:center;align-items:center;min-height:80vh;padding:80px 20px 60px;display:flex;position:relative;overflow:hidden}.cv-normal .portada:before{content:"";filter:blur(30px);background:#29dba01a;border-radius:50%;width:500px;height:500px;position:absolute;top:-250px;right:-180px}.cv-normal .portada:after{content:"";filter:blur(30px);background:#278cba24;border-radius:50%;width:450px;height:450px;position:absolute;bottom:-250px;left:-180px}.cv-top-actions{z-index:10;justify-content:space-between;gap:15px;width:min(1100px,100% - 40px);display:flex;position:absolute;top:25px;left:50%;transform:translate(-50%)}.cv-volver,.cv-imprimir{cursor:pointer;border-radius:30px;padding:9px 15px;font-size:.8rem;font-weight:600;transition:all .25s}.cv-volver{color:#fff;background:#ffffff14;border:1px solid #fff6;text-decoration:none}.cv-imprimir{color:#fff;background:0 0;border:1px solid #fff6}.cv-volver:hover,.cv-imprimir:hover{color:#0a2540;background:#fff}.cv-normal .tituloh1{z-index:1;color:#fff;margin:0;font-size:clamp(2.8rem,8vw,5rem);font-weight:700;line-height:1.05;position:relative}.cv-normal .tituloh2{z-index:1;color:#fff;margin-top:18px;font-size:clamp(1.3rem,3vw,1.8rem);font-weight:500;position:relative}.cv-role-extra{z-index:1;color:#29dba0;margin-top:8px;font-size:.95rem;font-weight:500;position:relative}.cv-normal .slogan{z-index:1;color:#dbeafe;max-width:700px;margin-top:20px;font-size:1rem;line-height:1.7;position:relative}.cv-normal .botonagil{z-index:2;flex-wrap:wrap;justify-content:center;gap:20px;margin-top:30px;display:flex;position:relative}.cv-normal .botonagil a{border-radius:50px;padding:12px 28px;font-size:.95rem;font-weight:600;text-decoration:none;transition:all .3s;display:inline-block}.cv-normal .botonproyectos{color:#fff;background:linear-gradient(135deg,#0e7871,#199098);box-shadow:0 6px 18px #29dba059}.cv-normal .botoncontacto{color:#fff;border:2px solid #fff}.cv-normal .botonagil a:hover{transform:translateY(-3px)scale(1.03)}.cv-normal .profesional,.cv-normal .sobre-mi{padding:10px 20px 30px}.cv-normal .profesional p,.cv-normal .sobre-mi p{text-align:center;color:#374151;max-width:800px;margin:0 auto 18px;font-size:1.05rem;line-height:1.8}.cv-proyectos-section{padding:20px 20px 60px}.cv-normal .cv-project-grid{grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch;gap:24px;width:min(1200px,100%);margin:0 auto;display:grid}.cv-normal .cv-project-card{background:#ffffffe0;border:1px solid #ffffffb3;border-radius:22px;flex-direction:column;min-width:0;padding:28px;transition:transform .3s,box-shadow .3s,border-color .3s;display:flex;position:relative;overflow:hidden;box-shadow:0 10px 25px #0000000f,0 2px 10px #00000008}.cv-normal .cv-project-card:before{content:"";background:linear-gradient(90deg,#278cba,#22c55e);width:100%;height:4px;position:absolute;top:0;left:0}@media (hover:hover){.cv-normal .cv-project-card:hover{border-color:#0e787133;transform:translateY(-6px);box-shadow:0 22px 45px #0000001a}}.cv-project-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:18px;display:flex}.cv-project-type{color:#0e7871;text-transform:uppercase;letter-spacing:.08em;font-size:.75rem;font-weight:700}.cv-project-status{white-space:nowrap;border-radius:50px;align-items:center;gap:7px;padding:6px 11px;font-size:.7rem;font-weight:700;display:inline-flex}.cv-project-status:before{content:"";background:currentColor;border-radius:50%;width:7px;height:7px}.cv-project-status--online{color:#15803d;background:#dcfce7}.cv-project-status--building{color:#a16207;background:#fef3c7}.cv-normal .cv-project-card h3{color:#111827;margin:0 0 14px;font-size:1.45rem;font-weight:750;line-height:1.3}.cv-normal .cv-project-card p{color:#4b5563;margin:0 0 20px;font-size:.92rem;line-height:1.7}.cv-tech-list{flex-wrap:wrap;align-content:flex-start;gap:8px;margin:0 0 24px;display:flex}.cv-tech-list span{color:#0e7871;background:#edf7f5;border:1px solid #0e787114;border-radius:50px;align-items:center;padding:6px 11px;font-size:.72rem;font-weight:600;display:inline-flex}.cv-normal .boton-proyectos{color:#fff;background:linear-gradient(135deg,#0e7871,#199098);border-radius:50px;justify-content:center;align-self:flex-start;align-items:center;margin-top:auto;padding:11px 22px;font-size:.85rem;font-weight:650;text-decoration:none;transition:transform .25s,box-shadow .25s;display:inline-flex}.cv-normal .boton-proyectos:hover{transform:translateY(-2px);box-shadow:0 8px 18px #0e787147}.cv-normal .boton-proyectos:focus-visible{outline-offset:4px;outline:3px solid #278cba}@media (width<=1050px){.cv-normal .cv-project-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=680px){.cv-proyectos-section{padding:15px 16px 45px}.cv-normal .cv-project-grid{grid-template-columns:1fr;gap:18px}.cv-normal .cv-project-card{border-radius:18px;padding:24px}.cv-normal .cv-project-card h3{font-size:1.35rem}.cv-project-header{margin-bottom:15px}}@media (prefers-reduced-motion:reduce){.cv-normal .cv-project-card,.cv-normal .boton-proyectos{transition:none}.cv-normal .cv-project-card:hover,.cv-normal .boton-proyectos:hover{transform:none}}.cv-normal .experiencia-titulo{text-align:center;padding:10px 20px 50px}.cv-normal .experiencia{background:#ffffffd1;border:1px solid #fff9;border-radius:20px;max-width:1100px;margin:30px auto 0;padding:38px 30px;transition:all .3s;position:relative;overflow:hidden;box-shadow:0 10px 25px #0000000d}.cv-normal .experiencia:before{content:"";background:linear-gradient(90deg,#278cba,#22c55e);width:100%;height:4px;position:absolute;top:0;left:0}.cv-normal .experiencia:hover{transform:translateY(-6px);box-shadow:0 20px 45px #00000017}.cv-normal .experiencia h3{color:#111827;margin-bottom:10px;font-size:1.4rem;text-decoration:underline}.cv-normal .experiencia p{color:#4b5563;max-width:750px;margin:0 auto 15px;font-size:1rem;line-height:1.7}.cv-periodo{font-weight:600;color:#0e7871!important;font-size:.85rem!important}.cv-experience-tools{flex-direction:column;align-items:center;gap:15px;max-width:750px;margin:25px auto;display:flex}.cv-normal .herramientas-logos{flex-wrap:wrap;justify-content:center;align-items:center;gap:12px;display:flex}.cv-normal .herramientas-logos img{object-fit:contain;width:52px;height:52px}.cv-normal .contactoreferencia{flex-wrap:wrap;justify-content:center;align-items:center;gap:10px;margin-top:20px;display:flex}.cv-normal .referencialaboral{color:#4b5563;font-size:.78rem}.cv-normal .boton-referencia{color:#fff;background:#179e71;border-radius:6px;padding:5px 11px;font-size:.75rem;text-decoration:none;transition:all .2s}.cv-normal .boton-referencia:hover{background:#4f46e5}.cv-skills-grid{grid-template-columns:repeat(6,minmax(0,1fr));gap:15px;display:grid}.cv-skill{background:#f8fafc;border:1px solid #e5e7eb;border-radius:12px;flex-direction:column;justify-content:center;align-items:center;gap:8px;min-width:0;min-height:100px;padding:12px 8px;transition:all .25s;display:flex}.cv-skill:hover{border-color:#22c55e;transform:translateY(-4px)}.cv-skill img{object-fit:contain;width:44px;height:44px}.cv-skill span{text-align:center;color:#374151;font-size:.72rem;font-weight:600}.cv-services-list p{color:#374151;text-align:center;margin:10px 0;font-size:1rem}.cv-normal .formacion{padding:10px 20px 60px}.cv-formacion-group{max-width:1100px;margin:30px auto 50px}.cv-formacion-group h3{text-align:center;color:#374151;margin-bottom:20px}.cv-diplomas-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;display:grid}.cv-diploma-card{background:#fff;border:1px solid #e5e7eb;border-radius:18px;transition:all .25s;overflow:hidden;box-shadow:0 8px 20px #0000000d}.cv-diploma-card:hover{transform:translateY(-5px)}.cv-diploma-card img{aspect-ratio:16/10;object-fit:cover;width:100%;display:block}.cv-diploma-card>div{flex-direction:column;gap:3px;padding:16px;display:flex}.cv-normal .card-formacion{flex-direction:column;gap:15px;max-width:1100px;margin:auto;display:flex}.cv-normal .item-formacion{background:#ffffffd1;border:1px solid #fff9;border-radius:18px;flex-direction:column;padding:22px 25px;transition:all .25s;display:flex;position:relative;overflow:hidden;box-shadow:0 8px 20px #0000000d}.cv-normal .item-formacion:before{content:"";background:linear-gradient(#4f46e5,#22c55e);border-radius:4px;width:4px;position:absolute;top:8px;bottom:8px;left:0}.cv-normal .item-formacion:hover{transform:translate(5px)}.cv-normal .item-formacion .titulo{color:#111827;font-size:1.1rem;font-weight:600}.cv-normal .item-formacion .detalle{color:#6b7280;margin-top:4px;font-size:.9rem}.cv-normal .contacto{flex-direction:column;align-items:center;padding:10px 20px 80px;display:flex}.cv-normal .contacto>p{text-align:center;color:#4b5563;margin-bottom:25px}.cv-normal .cardinfo{background:#ffffffd1;border:1px solid #fff9;border-radius:20px;flex-direction:column;align-items:center;gap:10px;width:100%;max-width:1080px;padding:30px;display:flex;position:relative;overflow:hidden;box-shadow:0 10px 25px #0000000d}.cv-normal .cardinfo:before{content:"";background:linear-gradient(90deg,#4f46e5,#22c55e);width:100%;height:4px;position:absolute;top:0;left:0}.cv-normal .cardinfo p{color:#374151;margin:4px 0}.cv-normal .botones-contacto{flex-wrap:wrap;justify-content:center;gap:10px;margin-top:15px;display:flex}.cv-normal .btn-contacto{color:#111827;background:#fff;border:1px solid #d1d5db;border-radius:10px;padding:8px 14px;font-size:.8rem;text-decoration:none;transition:all .25s}.cv-normal .btn-contacto:first-child:hover{color:#fff;background:#25d366}.cv-normal .btn-contacto:nth-child(2):hover{color:#fff;background:#ea4335}.cv-normal .btn-contacto:nth-child(3):hover{color:#fff;background:#0a66c2}.cv-normal footer{color:#9ca3af;text-align:center;background:#111827;padding:40px 20px 25px}.cv-normal .footer-links{flex-wrap:wrap;justify-content:center;gap:15px;margin-bottom:20px;display:flex}.cv-normal .footer-links a{color:#e5e7eb;background:#1f2937;border-radius:999px;padding:8px 16px;text-decoration:none;transition:all .25s}.cv-normal .footer-links a:hover{color:#fff;background:linear-gradient(135deg,#0e7871,#199098)}.cv-normal{color:#111827;background:linear-gradient(#f8fafc 0%,#eef2f7 100%);min-height:100vh;margin:0;padding:0;font-family:Poppins,sans-serif}.cv-normal *{box-sizing:border-box}.cv-normal .profesional h2,.cv-normal .sobre-mi h2,.cv-normal .servicios h2,.cv-normal .formacion h2,.cv-normal .experiencia-titulo h2,.cv-section-title,.cv-normal .contacto h2{text-align:center;color:#111827;text-underline-offset:6px;margin:60px auto 30px;font-size:2rem;-webkit-text-decoration:underline #105d2c;text-decoration:underline #105d2c;text-decoration-thickness:3px}.cv-normal .servicios{padding:10px 20px 50px}.cv-normal .servicios>p{text-align:center;color:#4b5563}.cv-normal .cards-servicios{background:#ffffffd1;border:1px solid #fff9;border-radius:20px;max-width:1100px;margin:30px auto 0;padding:30px;position:relative;overflow:hidden;box-shadow:0 10px 25px #0000000d}.cv-normal .cards-servicios:before{content:"";background:linear-gradient(90deg,#278cba,#22c55e);width:100%;height:4px;position:absolute;top:0;left:0}@media (width<=900px){.cv-skills-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (width<=768px){.cv-normal .portada{min-height:auto;padding:100px 15px 55px}.cv-top-actions{width:calc(100% - 24px);top:18px}.cv-volver,.cv-imprimir{padding:7px 10px;font-size:.68rem}.cv-normal .tituloh1{font-size:2.4rem}.cv-normal .tituloh2{font-size:1.2rem}.cv-role-extra{font-size:.78rem}.cv-normal .slogan{font-size:.9rem}.cv-normal .botonagil{flex-direction:column;width:100%}.cv-normal .botonagil a{width:100%}.cv-normal .profesional h2,.cv-normal .sobre-mi h2,.cv-normal .servicios h2,.cv-normal .formacion h2,.cv-normal .experiencia-titulo h2,.cv-section-title,.cv-normal .contacto h2{margin-top:40px;font-size:1.6rem}.cv-normal .profesional p,.cv-normal .sobre-mi p{font-size:.95rem}.cv-normal .cards{grid-template-columns:1fr}.cv-normal .cardproyectos{padding:20px}.cv-normal .cardproyectos h3{font-size:1.35rem}.cv-normal .experiencia{padding:25px 18px}.cv-normal .experiencia h3{font-size:1.15rem}.cv-normal .experiencia p{font-size:.92rem}.cv-skills-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.cv-skill{min-height:90px}.cv-skill img{width:38px;height:38px}.cv-diplomas-grid{grid-template-columns:1fr}.cv-normal .cardinfo{padding:22px 15px}}@media (width<=480px){.cv-top-actions{flex-direction:column;align-items:stretch}.cv-volver,.cv-imprimir{text-align:center}.cv-normal .portada{padding-top:130px}.cv-skills-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media print{.cv-top-actions,.botonagil,.botones-contacto,.footer-links,.boton-referencia,.boton-proyectos{display:none!important}.cv-normal{background:#fff}.cv-normal .portada{-webkit-print-color-adjust:exact;print-color-adjust:exact;min-height:auto;padding:35px 20px}.cv-normal .cardproyectos,.cv-normal .experiencia,.cv-normal .cards-servicios,.cv-normal .item-formacion,.cv-diploma-card,.cv-normal .cardinfo{box-shadow:none;break-inside:avoid}.cv-normal .profesional h2,.cv-normal .sobre-mi h2,.cv-normal .servicios h2,.cv-normal .formacion h2,.cv-normal .experiencia-titulo h2,.cv-section-title,.cv-normal .contacto h2{margin-top:30px}}:root{--bg:#0d1117;--bg-soft:#11161d;--surface:#161b22;--surface-hover:#1c2129;--border:#30363d;--text:#e6edf3;--muted:#8b949e;--purple:#c678dd;--blue:#61afef;--green:#98c379;--yellow:#e5c07b;--red:#e06c75;--cyan:#56b6c2}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;scroll-padding-top:80px}body{background:radial-gradient(circle at top right, #61afef12, transparent 30%), var(--bg);min-width:320px;color:var(--text);font-family:Inter,sans-serif;line-height:1.6;overflow-x:hidden}body::-webkit-scrollbar{width:10px}body::-webkit-scrollbar-track{background:var(--bg)}body::-webkit-scrollbar-thumb{background:var(--border);border-radius:20px}a{color:inherit;text-decoration:none}button,a{transition:all .2s}img{max-width:100%;display:block}main{overflow:hidden}.section{width:min(1100px,100% - 40px);margin:0 auto;padding:100px 0}.section-heading{margin-bottom:45px}.section-comment{color:var(--muted);margin-bottom:8px;font-family:Fira Code,monospace;display:block}.section-title{overflow-wrap:anywhere;font-family:Fira Code,monospace;font-size:clamp(1.8rem,4vw,2.7rem)}.keyword{color:var(--purple)}.variable{color:var(--blue)}.string{color:var(--green)}.boolean{color:var(--yellow)}.property{color:var(--cyan)}.comment{color:var(--muted)}.code-card{border:1px solid var(--border);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#161b22d1;border-radius:14px;width:100%;overflow:hidden}.code-header{border-bottom:1px solid var(--border);align-items:center;gap:8px;min-height:42px;padding:0 15px;display:flex}.dot{border-radius:50%;width:11px;min-width:11px;height:11px}.dot.red{background:#ff5f56}.dot.yellow{background:#ffbd2e}.dot.green{background:#27c93f}.file-name{color:var(--muted);margin-left:12px;font-family:Fira Code,monospace;font-size:.8rem}.code-content{padding:28px;font-family:Fira Code,monospace;font-size:.95rem;overflow-x:auto}.code-line{white-space:pre-wrap;overflow-wrap:anywhere;margin:7px 0}.indent{padding-left:25px}.indent-2{padding-left:50px}.btn-primary,.btn-secondary{text-align:center;border-radius:8px;justify-content:center;align-items:center;min-height:46px;padding:13px 22px;font-weight:600;display:inline-flex}.btn-primary{background:var(--green);color:#0d1117}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 10px 30px #98c37929}.btn-secondary{border:1px solid var(--border);color:var(--text)}.btn-secondary:hover{border-color:var(--blue);color:var(--blue)}@media (width<=900px){.section{width:min(100% - 32px,1100px);padding:80px 0}.section-heading{margin-bottom:32px}.code-content{padding:24px}}@media (width<=600px){html{scroll-padding-top:70px}.section{width:min(100% - 24px,1100px);padding:68px 0}.section-heading{margin-bottom:26px}.section-comment{font-size:.78rem}.section-title{font-size:1.45rem;line-height:1.3}.code-card{border-radius:10px}.code-header{padding:0 12px}.file-name{font-size:.7rem}.code-content{padding:18px 14px;font-size:.75rem}.indent{padding-left:16px}.indent-2{padding-left:30px}.btn-primary,.btn-secondary{width:100%}}
