:root{--primary-bg: #0f0f23;--secondary-bg: #1a1a2e;--accent-color: #7c3aed;--highlight-color: #06b6d4;--text-color: #e2e8f0;--gradient-1: linear-gradient(135deg, #7c3aed, #06b6d4);--gradient-2: linear-gradient(135deg, #f59e0b, #ef4444);--neon-glow: 0 0 30px rgba(124, 58, 237, .4);--icon-size: 26px;--transition-speed: .3s}.claro{--primary-bg: #f5f5f5;--secondary-bg: #e5e7eb;--accent-color: #5b21b6;--highlight-color: #0e7490;--text-color: #0f172a;--gradient-1: linear-gradient(135deg, #5b21b6, #0e7490);--gradient-2: linear-gradient(135deg, #b45309, #b91c1c);--neon-glow: 0 0 25px rgba(91, 33, 182, .3);--icon-size: 26px}body{margin:0;font-family:Arial,sans-serif;background-color:var(--primary-bg);color:var(--text-color);overflow-x:hidden}h1,h2{font-family:Orbitron,sans-serif;letter-spacing:2px}body,p,span{font-family:"Exo 2"}body{font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;background-color:var(--primary-bg);color:var(--text-color);line-height:1.6;overflow-x:hidden;position:relative;min-height:100vh}#particles-canvas{position:fixed;top:0;left:0;width:100%;height:100%;z-index:-3;pointer-events:none}.animated-background{position:fixed;top:0;left:0;width:100%;height:100%;z-index:-4;background:linear-gradient(-45deg,#0f0f23,#1a1a2e,#0a0a1a,#2d1b69,#0f0f23);background-size:400% 400%;animation:gradientShift 15s ease infinite}.claro .animated-background{background:linear-gradient(-45deg,#f0f0f3,#e2e8f0,#d1d5db,#ded2f3,#f0f0f3)}@keyframes gradientShift{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}.stars{position:fixed;top:0;left:0;width:100%;height:100%;z-index:-2;pointer-events:none}.star{position:absolute;background:var(--text-color);border-radius:50%;animation:twinkle var(--duration) ease-in-out infinite;animation-delay:var(--delay)}@keyframes twinkle{0%,to{opacity:.1;transform:scale(.8)}50%{opacity:1;transform:scale(1.2)}}.nebula{position:fixed;border-radius:50%;filter:blur(80px);z-index:-1;opacity:.1}.nebula-1{width:500px;height:500px;background:var(--gradient-1);top:-100px;left:-100px;animation:nebulaFloat 25s ease-in-out infinite}.nebula-2{width:400px;height:400px;background:var(--gradient-2);bottom:-150px;right:-100px;animation:nebulaFloat 30s ease-in-out infinite reverse}.nebula-3{width:300px;height:300px;background:var(--highlight-color);top:50%;left:80%;animation:nebulaFloat 20s ease-in-out infinite;animation-delay:-10s}@keyframes nebulaFloat{0%,to{transform:translate(0) rotate(0)}25%{transform:translate(100px,-50px) rotate(90deg)}50%{transform:translate(50px,100px) rotate(180deg)}75%{transform:translate(-100px,50px) rotate(270deg)}}.connection-lines{position:fixed;top:0;left:0;width:100%;height:100%;z-index:-1;pointer-events:none}.line{position:absolute;background:linear-gradient(90deg,transparent,rgba(124,58,237,.1),transparent);height:1px;animation:lineFlow var(--line-duration) linear infinite;animation-delay:var(--line-delay)}.claro .line{background:linear-gradient(90deg,transparent,rgba(124,58,237,.1),transparent)}@keyframes lineFlow{0%{transform:translate(-100%);opacity:0}50%{opacity:.5}to{transform:translate(100vw);opacity:0}}.grid-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background-image:linear-gradient(rgba(124,58,237,.03) 1px,transparent 1px),linear-gradient(90deg,rgba(124,58,237,.03) 1px,transparent 1px);background-size:50px 50px;z-index:-1;pointer-events:none;animation:gridMove 40s linear infinite}.claro .grid-overlay{background-image:linear-gradient(rgba(30,41,59,.03) 1px,transparent 1px),linear-gradient(90deg,rgba(30,41,59,.03) 1px,transparent 1px)}@keyframes gridMove{0%{background-position:0 0}to{background-position:50px 50px}}.light-pulse{position:fixed;border-radius:50%;background:radial-gradient(circle,rgba(124,58,237,.1) 0%,transparent 70%);z-index:-1;animation:pulseExpand 8s ease-out infinite}.pulse-1{width:200px;height:200px;top:20%;left:10%;animation-delay:0s}.pulse-2{width:150px;height:150px;bottom:30%;right:15%;animation-delay:2s}.pulse-3{width:100px;height:100px;top:60%;left:20%;animation-delay:4s}@keyframes pulseExpand{0%{transform:scale(.8);opacity:0}50%{transform:scale(1.2);opacity:.3}to{transform:scale(1.5);opacity:0}}#header{position:fixed;background:var(--primary-bg);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);top:0;left:0;width:100%;display:flex;justify-content:space-between;align-items:center;padding:clamp(.5rem,5vw,1rem) 2rem;box-sizing:border-box;z-index:1000;transition:all .3s ease}#header.scrolled{backdrop-filter:blur(30px);box-shadow:0 4px 20px var(--primary-bg)}.logoPagina{position:relative}.logo-link{position:relative;display:block;transition:all .3s ease}.logoPagina img{width:clamp(60px,10vw,80px);height:auto;cursor:pointer;transition:all .3s ease;position:relative;z-index:2}.claro .logoPagina img{filter:invert(1)}.logo-glow{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:120%;height:120%;background:var(--gradient-1);border-radius:10px;filter:blur(15px);opacity:0;transition:opacity .3s ease;z-index:1}.logo-link:hover .logo-glow{opacity:.4}.logo-link:hover img{transform:scale(1.05)}.menu-btn{cursor:pointer;border:none;background:none;z-index:1001;display:flex;align-items:center;justify-content:center}.menu-icon{width:clamp(35px,7vw,40px);height:clamp(35px,7vw,40px);position:relative;transform:rotate(0);transition:.5s ease-in-out;color:var(--highlight-color)}.menu-icon span{display:block;position:absolute;height:3px;width:100%;background:var(--highlight-color);border-radius:3px;opacity:1;left:0;transform:rotate(0);transition:.25s ease-in-out}.menu-icon span:nth-child(1){top:0}.menu-icon span:nth-child(2){top:10px}.menu-icon span:nth-child(3){top:20px}.menu-btn.active .menu-icon span:nth-child(1){top:10px;transform:rotate(135deg)}.menu-btn.active .menu-icon span:nth-child(2){opacity:0;left:-60px}.menu-btn.active .menu-icon span:nth-child(3){top:10px;transform:rotate(-135deg)}#main-nav{display:none;position:fixed;top:0;left:0;width:100vw;height:100vh;background:var(--primary-bg);backdrop-filter:blur(30px);-webkit-backdrop-filter:blur(30px);z-index:1}#main-nav.open{display:block;animation:fadeIn .3s ease}#main-nav ul{height:100%;list-style:none;padding:0;margin:0;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:3rem}.nav-link{text-decoration:none;color:var(--text-color);font-size:clamp(1.2rem,4vw,1.5rem);font-weight:500;position:relative;padding:.5rem 1rem;transition:all .3s ease;display:flex;align-items:center;gap:.5rem}.nav-link span{color:var(--highlight-color);font-size:clamp(.8rem,2.5vw,1rem);font-weight:600}.nav-link:before{content:"";position:absolute;bottom:0;left:0;width:0;height:2px;background:var(--gradient-1);transition:width .3s ease}.nav-link:hover{color:var(--highlight-color)}.nav-link:hover:before{width:100%}.nav-decoration{position:absolute;bottom:2rem;left:50%;transform:translate(-50%);width:100px;height:2px;background:var(--gradient-1);border-radius:1px;filter:var(--neon-glow)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@media (min-width: 1200px){#header{padding:1.5rem 4rem}.menu-btn{display:none}#main-nav{display:block;position:static;width:auto;height:auto;background:none;backdrop-filter:none}#main-nav ul{flex-direction:row;gap:2.5rem;height:auto}.nav-link{padding:.5rem 0}.nav-decoration{display:none}.nav-link.active{color:var(--highlight-color)}.nav-link.active:before{width:100%}}@media (min-width: 1400px){#header{padding:1.5rem 6rem}#main-nav ul{gap:3rem}}html{scroll-behavior:smooth}#theme-toggle{cursor:pointer;border:none;background:none;display:flex;align-items:center;justify-content:center;padding:.5rem;border-radius:50%;transition:background-color var(--transition-speed),transform var(--transition-speed)}#theme-toggle:hover{background-color:#0000000d;transform:rotate(10deg)}.theme-icon{width:var(--icon-size);height:var(--icon-size);color:var(--text-color, #333);transition:opacity var(--transition-speed),transform var(--transition-speed);position:absolute}.theme-icon--light{color:#ffd600;display:none}.theme-icon--dark{color:#9fb6ff;display:none;transform:scale(1.5)}#header-buttons{display:flex;align-items:center;gap:2rem}main{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2rem}#about{height:100vh;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:1rem;width:100%}#about h2{font-size:clamp(1.5rem,5vw,2rem);margin:.5rem 0;color:var(--text-color)}#about #avatar{width:150px;height:150px;border-radius:50%;object-fit:contain;margin:1rem 0}#about p{max-width:600px;text-align:center;font-size:clamp(1.2rem,4vw,1.2rem);line-height:1.5;margin-top:0;color:var(--highlight-color)}#social-media{display:flex;align-items:center;justify-content:center;gap:1rem;margin-top:1rem}#social-media svg{cursor:pointer;text-decoration:none;color:var(--text-color)}#curriculum{position:fixed;bottom:clamp(.5rem,10vh,5rem);right:50%;transform:translate(50%)}#curriculum a{text-decoration:none;color:var(--accent-color);font-size:clamp(1.2rem,3vw,1.2rem);border:2px solid var(--accent-color);padding:.5rem 1rem;border-radius:8px;transition:background-color .3s,color .3s;text-wrap-mode:nowrap;white-space:nowrap}#curriculum a:hover{background-color:var(--accent-color);color:var(--primary-bg)}@media (min-width: 768px){#about{flex-direction:row;gap:2rem}#curriculum{bottom:clamp(1rem,10vh,10rem)}#about #avatar{width:200px;height:200px}#about p{text-align:left}#social-media{justify-content:left}}@media (min-width: 1200px){#about #avatar{width:250px;height:250px}}#logo{position:absolute;width:350%;height:auto;object-fit:cover;z-index:1;animation:logoAnimation 3s ease-in-out forwards}.floating-bg{position:absolute;border-radius:50%;filter:blur(60px);opacity:.1;z-index:-1}.bg-1{width:300px;height:300px;background:var(--gradient-1);top:10%;left:10%;animation:float 8s ease-in-out infinite}.bg-2{width:200px;height:200px;background:var(--gradient-2);bottom:20%;right:15%;animation:float 6s ease-in-out infinite reverse}.bg-3{width:150px;height:150px;background:var(--highlight-color);top:60%;left:20%;animation:float 10s ease-in-out infinite}#footer{background:linear-gradient(135deg,var(--primary-bg) 0%,#0a0a1a 100%);color:var(--text-color);padding:3rem 0 1.5rem;position:relative;overflow:hidden;border-top:1px solid rgba(124,58,237,.2)}.claro #footer{background:linear-gradient(135deg,var(--primary-bg) 0%,#f0f0f5 100%);color:var(--text-color);border-top:1px solid rgba(124,58,237,.2)}.footer-container{max-width:1200px;margin:0 auto;padding:0 1rem;position:relative;z-index:2}.footer-content{display:grid;grid-template-columns:1fr;gap:2.5rem;margin-bottom:2.5rem}.footer-section h4{color:var(--highlight-color);font-size:clamp(1.25rem,3vw,1.5rem);margin-bottom:1.2rem;font-weight:600;position:relative}.footer-section h4:after{content:"";position:absolute;bottom:-5px;left:0;width:30px;height:2px;background:var(--gradient-1);border-radius:1px}.footer-logo{position:relative;display:inline-block;margin-bottom:1rem}.footer-logo .logo{width:clamp(60px,10vw,80px);height:auto;filter:brightness(0) invert(1);opacity:.9}.claro .footer-logo .logo{filter:invert(1)}.logo-glow{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:140px;height:140px;background:var(--gradient-1);border-radius:10px;filter:blur(15px);opacity:.3;z-index:-1}.footer-tagline{color:var(--text-color);font-size:clamp(.9rem,2.5vw,1rem);line-height:1.5;margin-bottom:1.5rem;max-width:300px}.footer-social{display:flex;gap:.8rem}.social-link{width:40px;height:40px;background:#7c3aed1a;border:1px solid rgba(124,58,237,.3);border-radius:10px;display:flex;align-items:center;justify-content:center;color:var(--highlight-color);text-decoration:none;transition:all .3s ease}.social-link:hover{background:#7c3aed33;transform:translateY(-3px);box-shadow:var(--neon-glow);color:var(--accent-color)}.footer-links{list-style:none;padding:0;margin:0}.footer-links li{margin-bottom:.7rem}.footer-links a{color:var(--text-color);text-decoration:none;transition:all .3s ease;position:relative;padding-left:0}.footer-links a:before{content:"";position:absolute;bottom:-2px;left:0;width:0;height:1px;background:var(--gradient-1);transition:width .3s ease}.footer-links a:hover{color:var(--highlight-color);padding-left:10px}.footer-links a:hover:before{width:100%}.contact-info{display:flex;flex-direction:column;gap:.8rem}.contact-item{display:flex;align-items:center;gap:.7rem;color:var(--text-color);font-size:clamp(.9rem,2.5vw,1rem)}.contact-item svg{color:var(--highlight-color);flex-shrink:0}.footer-bottom{margin-top:2rem}.footer-divider{height:1px;background:linear-gradient(90deg,transparent 0%,rgba(124,58,237,.3) 50%,transparent 100%);margin-bottom:1.5rem}.bottom-content{display:flex;flex-direction:column;align-items:center;gap:1rem;text-align:center;place-self:center}.bottom-content p{color:var(--text-color);font-size:clamp(.8rem,2.5vw,.9rem);margin:0}.footer-legal{display:flex;gap:1.5rem}.footer-legal a{color:var(--text-color);text-decoration:none;font-size:clamp(.8rem,2.5vw,.9rem);transition:color .3s ease}.footer-legal a:hover{color:var(--highlight-color)}.footer-floating{position:absolute;border-radius:50%;filter:blur(40px);opacity:.05;z-index:1}.float-1{width:200px;height:200px;background:var(--gradient-1);bottom:-50px;left:10%;animation:float-footer 8s ease-in-out infinite}.float-2{width:150px;height:150px;background:var(--gradient-2);top:-30px;right:15%;animation:float-footer 6s ease-in-out infinite reverse}.float-3{width:100px;height:100px;background:var(--highlight-color);bottom:20%;right:5%;animation:float-footer 10s ease-in-out infinite}@keyframes float-footer{0%,to{transform:translateY(0) rotate(0)}50%{transform:translateY(-15px) rotate(180deg)}}@media (min-width: 768px){#footer{padding:4rem 0 2rem}.footer-content{grid-template-columns:2fr 1fr 1fr 1.5fr;gap:3rem}.bottom-content{flex-direction:row;justify-content:space-between}}@media (min-width: 1024px){.footer-container{padding:0 2rem}.footer-content{gap:4rem}}@media (min-width: 1200px){.footer-container{padding:0 4rem}}.footer-section{opacity:0;transform:translateY(30px)}.footer-divider{transform:scaleX(0);transform-origin:left center}.bottom-content{opacity:0;transform:translateY(20px)}#about-me{margin-top:2rem;min-height:100dvh;padding:2rem 1rem;display:flex;align-items:center;opacity:0;position:relative;overflow:hidden}.about-container{max-width:1400px;margin:0 auto;display:flex;flex-direction:column;gap:3rem;align-items:center;width:100%}.about-content{flex:1;text-align:center}.title-wrapper{position:relative;margin-bottom:2rem;display:inline-block}#about-me h2{font-size:clamp(2.5rem,5vw,3.5rem);margin-bottom:1rem;background:var(--gradient-1);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;position:relative;z-index:2;font-weight:700;letter-spacing:-.02em}.title-decoration{position:absolute;bottom:-10px;left:50%;transform:translate(-50%);width:80px;height:4px;background:var(--gradient-1);border-radius:2px;filter:var(--neon-glow)}.intro-text{font-size:clamp(1.2rem,3vw,1.5rem);line-height:1.6;color:var(--text-color);margin-bottom:1.5rem;font-weight:300}.description-text{font-size:clamp(1rem,2.5vw,1.2rem);line-height:1.7;color:var(--text-color);margin-bottom:2rem;max-width:600px;margin-left:auto;margin-right:auto}.highlight{color:var(--highlight-color);font-weight:600}.accent-text{background:var(--gradient-2);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;font-weight:600}.tech-stack{display:flex;justify-content:center;flex-wrap:wrap;gap:.8rem;margin-top:2rem}.tech-pill{background:var(--secondary-bg);border:1px solid var(--primary-bg);color:var(--highlight-color);padding:.5rem 1.2rem;border-radius:25px;font-size:clamp(.8rem,2.5vw,1rem);font-weight:500;transition:all .3s ease;backdrop-filter:blur(10px)}.tech-pill:hover{background:var(--primary-bg);border-color:var(--accent-color);transform:translateY(-2px);box-shadow:var(--neon-glow)}.image-container{flex:1;display:flex;justify-content:center;position:relative}.image-wrapper{position:relative;display:inline-block}#about-me img{width:100%;max-width:350px;height:auto;border-radius:20px;object-fit:cover;position:relative;z-index:3;border:2px solid rgba(124,58,237,.3);box-shadow:0 0 50px #7c3aed33,inset 0 0 50px #7c3aed1a;transition:all .3s ease}#about-me img:hover{transform:scale(1.02);border-color:var(--accent-color);box-shadow:0 0 80px #7c3aed66,inset 0 0 60px #7c3aed33}.image-glow{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:80%;height:80%;background:var(--gradient-1);border-radius:30px;filter:blur(40px);opacity:.3;z-index:1;animation:pulse-glow 4s ease-in-out infinite}.floating-elements{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:2}.floating-element{position:absolute;background:var(--gradient-1);border-radius:50%;filter:blur(20px);opacity:.4;animation:float 6s ease-in-out infinite}.element-1{width:60px;height:60px;top:-20px;left:-20px;animation-delay:0s}.element-2{width:40px;height:40px;bottom:-10px;right:-10px;animation-delay:2s}.element-3{width:30px;height:30px;top:50%;right:-15px;animation-delay:4s}@keyframes pulse-glow{0%,to{opacity:.3;transform:translate(-50%,-50%) scale(1)}50%{opacity:.5;transform:translate(-50%,-50%) scale(1.05)}}@keyframes float{0%,to{transform:translateY(0) rotate(0)}50%{transform:translateY(-20px) rotate(180deg)}}@media (min-width: 768px){#about-me{padding:3rem 2rem}.about-container{flex-direction:row;gap:4rem;text-align:left}.about-content{text-align:left}.title-wrapper{display:block}.title-decoration{left:0;transform:none}.description-text{margin-left:0;margin-right:0}.tech-stack{justify-content:flex-start}#about-me img{max-width:400px}}@media (min-width: 1200px){#about-me{padding:4rem 10rem}.about-container{gap:6rem}#about-me img{max-width:450px}}#experiencia{min-height:100dvh;padding:4rem 1rem;position:relative;overflow:hidden}.experience-header{text-align:center;margin-bottom:4rem;position:relative}#experiencia h2{font-size:clamp(2.5rem,5vw,4rem);background:var(--gradient-1);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin-bottom:1rem;font-weight:700}.header-decoration{width:100px;height:4px;background:var(--gradient-1);margin:0 auto;border-radius:2px;filter:var(--neon-glow)}.experience-timeline{position:relative;max-width:1200px;margin:0 auto}.timeline-line{position:absolute;left:50%;top:0;bottom:0;width:2px;background:var(--gradient-1);transform:translate(-50%);opacity:.3}.job{margin-bottom:4rem;position:relative}.job-card{display:flex;background:var(--secondary-bg);border:1px solid var(--primary-bg);border-radius:20px;padding:2rem;backdrop-filter:blur(10px);position:relative;transition:all .3s ease;box-shadow:0 8px 32px #0000001a}.job-card:hover{transform:translateY(-5px);border-color:var(--accent-color);box-shadow:0 12px 40px #7c3aed33,var(--neon-glow)}.job-content{flex:2;padding-right:2rem}.job-visual{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative}.job-header{margin-bottom:1.5rem}.job-header h3{font-size:clamp(1.5rem,3vw,2rem);color:var(--text-color);margin-bottom:.5rem;font-weight:600}.date-badge{background:var(--gradient-1);color:#fff;padding:.4rem 1rem;border-radius:20px;font-size:clamp(.8rem,2vw,1rem);font-weight:500;display:inline-block}.job-description{font-size:clamp(1rem,2.5vw,1.2rem);line-height:1.6;color:var(--text-color);margin-bottom:1.5rem}.tech-highlight{color:var(--highlight-color);font-weight:600}.tech-tags{display:flex;flex-wrap:wrap;gap:.5rem}.logo-container{position:relative;display:flex;justify-content:center;align-items:center;margin-bottom:1rem}.logo-glow{position:absolute;width:120%;height:120%;background:var(--gradient-1);border-radius:20px;filter:blur(20px);opacity:.3;z-index:1}.company-logo{width:120px;height:120px;border-radius:15px;object-fit:cover;position:relative;z-index:2;border:2px solid rgba(124,58,237,.3);transition:all .3s ease}.job-card:hover .company-logo{border-color:var(--accent-color);transform:scale(1.05)}.job-indicator{position:relative;width:20px;height:20px}.indicator-dot{width:12px;height:12px;background:var(--gradient-1);border-radius:50%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:3}.indicator-pulse{width:20px;height:20px;border:2px solid var(--accent-color);border-radius:50%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);animation:pulse 2s infinite}.reverse .date-badge{background:var(--gradient-2)}.reverse .tech-tag{background:#f59e0b1a;border-color:#f59e0b4d;color:#f59e0b}.reverse .logo-glow,.reverse .indicator-dot{background:var(--gradient-2)}.reverse .indicator-pulse{border-color:#f59e0b}@keyframes pulse{0%{transform:translate(-50%,-50%) scale(1);opacity:1}to{transform:translate(-50%,-50%) scale(2);opacity:0}}@media (max-width: 768px){#experiencia{padding:2rem 1rem}.job-card{flex-direction:column;padding:1.5rem}.job-content{padding-right:0;margin-bottom:1.5rem}.company-logo{width:200px;height:200px}.job-indicator{display:none}}@media (min-width: 1200px){#experiencia{padding:6rem 2rem}.job-card{padding:3rem}.job:nth-child(odd) .job-card{flex-direction:row}.job:nth-child(2n) .job-card{flex-direction:row-reverse}.job:nth-child(2n) .job-content{padding-right:0;padding-left:2rem}}#proyectos{min-height:100dvh;padding:4rem 1rem;position:relative}.projects-header{text-align:center;margin-bottom:4rem}#proyectos h2{font-size:clamp(2.5rem,5vw,4rem);background:var(--gradient-1);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin-bottom:1rem;font-weight:700}.projects-subtitle{font-size:clamp(1rem,2.5vw,1.25rem);color:var(--text-color);max-width:500px;margin:0 auto}.projects-grid{display:grid;grid-template-columns:1fr;gap:2rem;max-width:1400px;margin:0 auto}.project-card{background:#1a1a2e99;border:1px solid rgba(124,58,237,.2);border-radius:20px;overflow:hidden;position:relative;backdrop-filter:blur(10px);transition:all .3s ease;box-shadow:0 8px 32px #0000001a}.claro .project-card{background:#fff9;border:1px solid rgba(124,58,237,.2);box-shadow:0 8px 32px #0000000d}.project-card:hover{transform:translateY(-10px);border-color:var(--accent-color);box-shadow:0 20px 40px #7c3aed33,var(--neon-glow)}.project-glow{position:absolute;inset:0;background:var(--gradient-1);opacity:0;transition:opacity .3s ease;z-index:1;border-radius:20px}.project-card:hover .project-glow{opacity:.1}.project-image{position:relative;overflow:hidden;height:250px}.project-image img{width:100%;height:100%;object-fit:cover;transition:transform .3s ease}.project-card:hover .project-image img{transform:scale(1.05)}.image-overlay{position:absolute;inset:0;background:linear-gradient(to bottom,transparent 0%,rgba(15,15,35,.8) 100%);z-index:2;opacity:.7}.project-links{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:3;opacity:0;transition:all .3s ease}.project-card:hover .project-links{opacity:1}.project-link{display:inline-flex;align-items:center;gap:.5rem;background:var(--gradient-1);color:var(--text-color);padding:.8rem 1.5rem;border-radius:25px;text-decoration:none;font-weight:500;transition:all .3s ease;backdrop-filter:blur(10px)}.project-link:hover{transform:translateY(-2px);box-shadow:0 8px 20px #7c3aed66}.project-content{padding:1.5rem;position:relative;z-index:2}.project-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1rem}.project-header h3{font-size:clamp(1.25rem,3vw,1.75rem);color:var(--text-color);margin:0;font-weight:600}.project-badge{background:var(--gradient-2);color:#fff;padding:.3rem .8rem;border-radius:15px;font-size:clamp(.7rem,2vw,.9rem);font-weight:500}.project-description{font-size:clamp(.9rem,2.5vw,1rem);line-height:1.6;color:var(--text-color);margin-bottom:1.5rem}.project-tech{display:flex;flex-wrap:wrap;gap:.5rem}.tech-tag{background:#06b6d41a;border:1px solid rgba(6,182,212,.3);color:var(--highlight-color);padding:.3rem .8rem;border-radius:15px;font-size:clamp(.7rem,2vw,.9rem);font-weight:500;transition:all .3s ease}.tech-tag:hover{background:#06b6d433;transform:translateY(-2px)}@media (min-width: 768px){#proyectos{padding:4rem 2rem}.projects-grid{grid-template-columns:repeat(2,1fr);gap:2rem}.project-image{height:200px}}@media (min-width: 1200px){#proyectos{padding:6rem 4rem}.projects-grid{grid-template-columns:repeat(3,1fr);gap:2.5rem}.project-image{height:220px}.project-content{padding:2rem}}@media (min-width: 1400px){.projects-grid{gap:3rem}}#skills{min-height:100dvh;padding:4rem 1rem;position:relative}.skills-header{text-align:center;margin-bottom:4rem}#skills h2{font-size:clamp(2.5rem,5vw,4rem);background:var(--gradient-1);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin-bottom:1rem;font-weight:700}.skills-subtitle{font-size:clamp(1rem,2.5vw,1.25rem);color:var(--text-color);max-width:500px;margin:0 auto}.skills-grid{display:grid;grid-template-columns:1fr;gap:2rem;max-width:1200px;margin:0 auto}.skill-category{background:#1a1a2e99;border:1px solid rgba(124,58,237,.2);border-radius:20px;padding:2rem;backdrop-filter:blur(10px);transition:all .3s ease;position:relative}.claro .skill-category{background:#fff9;border:1px solid rgba(124,58,237,.2)}.skill-category:hover{transform:translateY(-5px);border-color:var(--accent-color);box-shadow:0 12px 40px #7c3aed33,var(--neon-glow)}.skill-category:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:var(--gradient-1);opacity:0;transition:opacity .3s ease}.skill-category:hover:before{opacity:1}.category-header{display:flex;align-items:center;gap:1rem;margin-bottom:2rem}.category-icon{width:60px;height:60px;background:var(--gradient-1);border-radius:15px;display:flex;align-items:center;justify-content:center;color:#fff}.skill-category h3{font-size:clamp(1.5rem,3vw,2rem);color:var(--text-color);margin:0;font-weight:600}.skills-list{display:flex;flex-wrap:wrap;gap:.8rem}.skill-tag{background:#7c3aed1a;border:1px solid rgba(124,58,237,.3);color:var(--highlight-color);padding:.6rem 1.2rem;border-radius:20px;font-size:clamp(.8rem,2.5vw,1rem);font-weight:500;transition:all .3s ease;backdrop-filter:blur(10px);position:relative;overflow:hidden}.skill-tag:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(124,58,237,.2),transparent);transition:left .5s ease}.skill-tag:hover{background:#7c3aed33;border-color:var(--accent-color);transform:translateY(-2px);box-shadow:0 8px 20px #7c3aed4d}.skill-tag:hover:before{left:100%}.skill-category:nth-child(2) .category-icon{background:var(--gradient-2)}.skill-category:nth-child(2):before{background:var(--gradient-2)}.skill-category:nth-child(2) .skill-tag{background:#f59e0b1a;border-color:#f59e0b4d;color:#f59e0b}.skill-category:nth-child(2) .skill-tag:hover{background:#f59e0b33;border-color:#f59e0b;box-shadow:0 8px 20px #f59e0b4d}.skill-category:nth-child(3) .category-icon{background:linear-gradient(135deg,#10b981,#3b82f6)}.skill-category:nth-child(3):before{background:linear-gradient(135deg,#10b981,#3b82f6)}.skill-category:nth-child(3) .skill-tag{background:#10b9811a;border-color:#10b9814d;color:#10b981}.skill-category:nth-child(3) .skill-tag:hover{background:#10b98133;border-color:#10b981;box-shadow:0 8px 20px #10b9814d}@media (min-width: 768px){#skills{padding:4rem 2rem}.skills-grid{grid-template-columns:repeat(2,1fr)}}@media (min-width: 1024px){.skills-grid{grid-template-columns:repeat(3,1fr)}.skill-category:nth-child(3){grid-column:span 1}}@media (min-width: 1200px){#skills{padding:6rem 4rem}.skill-category{padding:2.5rem}.skill-tag{padding:.7rem 1.4rem}}#contact{min-height:100dvh;padding:6rem 1rem;position:relative;display:flex;align-items:center;justify-content:center}.contact-container{max-width:1200px;width:100%;margin:0 auto}.contact-header{text-align:center;margin-bottom:4rem}#contact h2{font-size:clamp(2.5rem,5vw,4rem);background:var(--gradient-1);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin-bottom:1rem;font-weight:700}.header-decoration{width:100px;height:4px;background:var(--gradient-1);margin:0 auto 1.5rem;border-radius:2px;filter:var(--neon-glow)}.contact-subtitle{font-size:clamp(1rem,2.5vw,1.25rem);color:var(--text-color);max-width:500px;margin:0 auto}.contact-content{display:grid;grid-template-columns:1fr;gap:3rem}.contact-info{display:flex;flex-direction:column;gap:2rem}.contact-card{background:#1a1a2e99;border:1px solid rgba(124,58,237,.2);border-radius:20px;padding:2rem;backdrop-filter:blur(10px);transition:all .3s ease;position:relative;overflow:hidden}.claro .contact-card{background:#fff9;border:1px solid rgba(124,58,237,.2);box-shadow:0 8px 32px #0000000d}.contact-card:hover{transform:translateY(-5px);border-color:var(--accent-color);box-shadow:0 12px 40px #7c3aed33,var(--neon-glow)}.contact-card:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:var(--gradient-1);opacity:0;transition:opacity .3s ease}.contact-card:hover:before{opacity:1}.contact-icon{width:60px;height:60px;background:var(--gradient-1);border-radius:15px;display:flex;align-items:center;justify-content:center;margin-bottom:1.5rem;color:#fff}.contact-card h3{font-size:clamp(1.5rem,3vw,2rem);color:var(--text-color);margin-bottom:1rem;font-weight:600}.contact-card p{color:var(--text-color);margin-bottom:1rem;line-height:1.6}.contact-link{display:inline-flex;align-items:center;gap:.5rem;color:var(--highlight-color);text-decoration:none;font-weight:500;transition:all .3s ease}.contact-link:hover{color:var(--accent-color);transform:translate(5px)}.social-links{display:flex;gap:1rem;margin-top:1rem}.social-link{width:45px;height:45px;background:#7c3aed1a;border:1px solid rgba(124,58,237,.3);border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--highlight-color);text-decoration:none;transition:all .3s ease}.social-link:hover{background:#7c3aed33;transform:translateY(-3px);box-shadow:var(--neon-glow)}.contact-form-container{background:#1a1a2e99;border:1px solid rgba(124,58,237,.2);border-radius:20px;padding:2.5rem;backdrop-filter:blur(10px);position:relative;overflow:hidden}.claro .contact-form-container{background:#fff9;border:1px solid rgba(124,58,237,.2);box-shadow:0 8px 32px #0000000d}.contact-form-container:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:var(--gradient-1);opacity:.7}.form-header{margin-bottom:2rem;text-align:center}.form-header h3{font-size:clamp(1.75rem,4vw,2.5rem);color:var(--text-color);margin-bottom:.5rem;background:var(--gradient-1);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.form-header p{color:var(--text-color)}.contact-form{display:flex;flex-direction:column;gap:1.5rem}.form-group{position:relative}.form-input{width:100%;box-sizing:border-box;padding:1rem 1.5rem;background:#0f0f2399;border:1px solid rgba(124,58,237,.3);border-radius:15px;color:var(--text-color);font-size:clamp(1rem,2.5vw,1.1rem);transition:all .3s ease;backdrop-filter:blur(10px)}.claro .form-input{background:#fff9;border:1px solid rgba(124,58,237,.3);color:var(--text-color)}.form-input:focus{outline:none;border-color:var(--accent-color);box-shadow:0 0 0 2px #7c3aed33}.form-input::placeholder{color:#e2e8f080}.claro .form-input::placeholder{color:#37415180}textarea.form-input{resize:vertical;min-height:120px;font-family:inherit}.submit-btn{background:var(--gradient-1);color:#fff;border:none;padding:1rem 2rem;border-radius:25px;font-size:clamp(1rem,2.5vw,1.2rem);font-weight:600;cursor:pointer;transition:all .3s ease;position:relative;overflow:hidden}.submit-btn:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent);transition:left .5s ease}.submit-btn:hover{transform:translateY(-3px);box-shadow:0 10px 25px #7c3aed66}.submit-btn:hover:before{left:100%}.floating-contact{position:absolute;pointer-events:none;z-index:-1}.float-1{top:20%;left:5%;width:40px;height:40px;background:var(--gradient-1);border-radius:50%;filter:blur(15px);opacity:.3;animation:float-contact 8s ease-in-out infinite}.float-2{top:60%;right:5%;width:60px;height:60px;background:var(--gradient-2);border-radius:50%;filter:blur(20px);opacity:.2;animation:float-contact 6s ease-in-out infinite reverse}.float-3{bottom:20%;left:10%;width:30px;height:30px;background:var(--highlight-color);border-radius:50%;filter:blur(10px);opacity:.4;animation:float-contact 10s ease-in-out infinite}@keyframes float-contact{0%,to{transform:translateY(0) rotate(0)}50%{transform:translateY(-20px) rotate(180deg)}}@media (min-width: 768px){#contact{padding:6rem 2rem}.contact-content{grid-template-columns:1fr 1fr;gap:4rem}.contact-info{gap:2.5rem}}@media (min-width: 1200px){#contact{padding:8rem 4rem}.contact-card{padding:2.5rem}.contact-form-container{padding:3rem}}.success-message{background:#10b9811a;border:1px solid rgba(16,185,129,.3);border-radius:15px;padding:1.5rem;text-align:center;margin-top:1rem;color:#10b981;display:none}.success-message.show{display:block;animation:fadeIn .5s ease}@keyframes fadeIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}
