.hero{height:100vh;justify-content:center;background:linear-gradient(135deg,var(--hero-col1) 0,var(--hero-col2) 40%,var(--hero-col3) 75%,var(--hero-col4) 100%);overflow:hidden}.hero,.hero-content{position:relative;display:flex;align-items:center}.hero-content{z-index:1;flex-direction:column;gap:var(--space-xs);max-width:600px;width:90%;padding:var(--space-l) var(--space-m);background:rgba(0,0,0,.5);border-radius:var(--radius);text-align:center;animation:fadeInScale .8s ease-out both}.hero-content:after,.hero-content:before{content:"";position:absolute;border-radius:50%;background:rgba(255,255,255,.08)}.hero-content:before{width:200px;height:200px;top:-80px;left:-80px;animation:float 6s ease-in-out infinite}.hero-content:after{width:100px;height:100px;bottom:-50px;right:-50px;animation:float 4s ease-in-out infinite reverse}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(10px)}}@keyframes fadeInScale{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.hero-content h1{font-size:3.75rem;line-height:1.1;margin-bottom:var(--space-xxs)}.hero-content h1 .highlight{background:linear-gradient(90deg,var(--hero-col4),var(--hero-col3));-webkit-background-clip:text;-webkit-text-fill-color:transparent}.hero-subtitle{font-size:var(--font-size-xl);color:#e0e0e0;margin-bottom:var(--space-s);opacity:.9}.btn-hero{padding:.75rem 2rem;background:var(--btn-hero-bg);color:var(--btn-hero-text);font-weight:600;border:2px solid var(--btn-hero-bg-hover);border-radius:2rem;transition:background var(--transition),transform var(--transition),box-shadow var(--transition),color var(--transition)}.btn-hero:hover{background:var(--btn-hero-bg-hover);color:var(--btn-hero-hover-text);transform:translateY(-3px);box-shadow:0 6px 12px var(--color-shadow)}@media (max-width:768px){.hero-content{padding:var(--space-m)}.hero-content h1{font-size:2.75rem}.hero-subtitle{font-size:var(--font-size-lg)}.btn-hero{padding:.6rem 1.5rem;font-size:.9rem}}#about{background:var(--color-surface-alt);padding:var(--space-m)}#about h2{margin-bottom:var(--space-m)}.about-grid{display:flex;align-items:center;gap:var(--space-m);flex-wrap:wrap}.about-grid img{flex-shrink:0;width:180px;height:180px;border-radius:50%;object-fit:cover;border:4px solid var(--color-primary);box-shadow:0 4px 12px var(--color-shadow)}.about-text{flex:1}.about-text p{margin-bottom:var(--space-s);font-size:var(--font-size-lg);line-height:1.5;text-align:justify;text-justify:inter-word}.about-text ul{list-style:none}.about-text li{margin-bottom:var(--space-xxs)}@media (max-width:768px){.about-grid{flex-direction:column;align-items:center}.about-grid,.about-text{text-align:center}.about-text p{text-align:justify}}.btn-primario{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.75rem 2rem;background:var(--color-primary);color:var(--color-bg);font-weight:600;border:2px solid var(--btn-hero-bg-hover);border-radius:2rem;font-size:1rem;line-height:1.5;text-align:center;transition:background var(--transition),transform var(--transition),box-shadow var(--transition),color var(--transition);cursor:pointer}.btn-primario svg{font-size:1.2rem;margin-right:.5rem;flex-shrink:0;transition:transform var(--transition)}.btn-primario:hover{background:var(--color-primary-hover);color:var(--color-bg);transform:translateY(-3px);box-shadow:0 6px 12px var(--color-shadow)}.btn-primario:hover svg{transform:scale(1.2)}.seccion-lista{grid-template-columns:repeat(auto-fit,minmax(100px,1fr));list-style:none;font-weight:600}.seccion-lista,.skills-grid{display:grid;gap:var(--space-m)}.skills-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));justify-content:center}.grupo-habilidades{padding:var(--space-s);border:2px dashed var(--color-secondary);border-radius:var(--radius);transition:border-color var(--transition);max-width:340px;width:100%;display:flex;flex-direction:column}.grupo-habilidades:hover{border-color:var(--color-primary)}.grupo-titulo{font-size:1.2rem;font-weight:600;color:var(--color-primary);margin-bottom:var(--space-xs);border-left:3px solid var(--color-primary);padding-left:var(--space-xs)}.grupo-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:var(--space-s);list-style:none;padding:0;margin:0}.skill-item{background-color:var(--color-surface-alt);border-radius:var(--radius);padding:var(--space-s);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;transition:transform var(--transition),box-shadow var(--transition)}.skill-item:hover{transform:translateY(-4px);box-shadow:0 8px 20px var(--color-shadow)}.skill-icon{font-size:2.5rem;color:var(--color-primary)}.skill-nombre{margin-top:var(--space-xxs);font-size:.85rem;color:var(--color-text);font-weight:500}@media (max-width:480px){.skills-grid{gap:var(--space-s)}.grupo-habilidades{margin-bottom:var(--space-s)}.grupo-grid{grid-template-columns:repeat(auto-fit,minmax(100px,1fr))}.skill-icon{font-size:2.2rem}.skill-nombre{font-size:.75rem}.grupo-titulo{font-size:1rem}}.license-icon{font-size:2.5rem;color:var(--color-primary);margin-bottom:var(--space-s);justify-content:center}.license-icon,.license-item{display:flex;align-items:center}.license-item{text-align:center;flex-direction:column;height:100%;justify-content:space-evenly;padding:var(--space-n)}.license-item p{font-size:1rem;margin-bottom:var(--space-xs)}.license-item a{color:var(--color-primary);font-weight:500;text-decoration:underline}.licenses-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:var(--space-m);list-style:none;padding:0;margin:0;justify-content:center}.education-item{text-align:center;display:flex;flex-direction:column;align-items:center;height:100%;justify-content:space-around;padding:var(--space-s);border-radius:var(--radius);color:var(--color-text);box-shadow:0 4px 12px var(--color-shadow);transition:transform var(--transition),box-shadow var(--transition)}.education-item:hover{transform:scale(1.02);box-shadow:0 6px 18px var(--color-shadow)}.education-item h3{font-size:var(--font-size-lg);color:var(--color-primary);margin-bottom:var(--space-xs)}.education-item .institucion{color:var(--color-text);font-size:.95rem}.education-item .especialidad{font-style:italic;color:var(--color-text-light);margin:var(--space-xxs) 0;font-size:.9rem}.education-item .periodo{color:var(--color-text);font-size:.85rem}@media (max-width:768px){.education-item{padding:var(--space-s)}.education-item h3{font-size:1.1rem}.education-item .especialidad,.education-item .institucion,.education-item .periodo{font-size:.9rem}}@media (max-width:480px){.education-item{padding:var(--space-xs)}.education-item h3{font-size:1rem}.education-item .especialidad,.education-item .institucion,.education-item .periodo{font-size:.8rem}}.education-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));justify-content:center;gap:var(--space-m);padding:var(--space-m);max-width:1200px;margin:0 auto;width:100%}#contact{background:var(--color-surface);padding:var(--space-m)}.contact-info{flex-direction:column;gap:var(--space-xs);margin:var(--space-s) auto;max-width:300px;text-align:center}.contact-info,.contact-info p{display:flex;align-items:center}.contact-info p{margin:var(--space-xxs)}.contact-info i,.contact-info svg{font-size:1.5rem;margin-right:var(--space-xs);color:var(--color-primary)}.contact-form{display:grid;gap:var(--space-s);max-width:600px;margin:var(--space-xxs) auto;padding:var(--space-m);background:var(--color-surface);text-align:center}.contact-form input,.contact-form textarea{width:100%;padding:var(--space-xs);border:1px solid var(--color-secondary);border-radius:var(--radius);transition:border-color var(--transition),box-shadow var(--transition);text-align:center;background:var(--color-text-light);color:var(--color-bg)}.contact-form input:focus,.contact-form textarea:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px rgba(100,255,218,.3)}@media (max-width:768px){.contact-info{max-width:100%;padding:0 var(--space-s);margin-top:var(--space-s)}.contact-form{padding:var(--space-s);margin:var(--space-s) auto;width:100%}.contact-form input,.contact-form textarea{text-align:left;font-size:.95rem}#contact h2{text-align:center}}.status-message{margin-top:var(--space-xs);font-size:.9rem;font-weight:500;transition:opacity .3s ease}.status-success{color:var(--color-success);animation:pulse 1.5s infinite}.status-error{color:var(--color-error);animation:shake 3s ease-in-out}@keyframes pulse{0%,to{opacity:1}50%{opacity:.6}}.icon-flip-horizontal{transform:scaleX(-1)}