[data-theme=dark]{--bg-primary: #0a0a1a;--bg-secondary: #12122a;--bg-tertiary: #1a1a3e;--bg-card: rgba(108, 92, 231, .05);--bg-card-hover: rgba(108, 92, 231, .1);--border-color: rgba(108, 92, 231, .15);--border-hover: rgba(108, 92, 231, .4);--text-primary: #ffffff;--text-secondary: #e0e0e0;--text-muted: #8888aa;--navbar-bg: rgba(10, 10, 26, .95);--shadow: rgba(0, 0, 0, .3);--toggle-bg: rgba(108, 92, 231, .2);--input-bg: #12122a}[data-theme=light]{--bg-primary: #f5f7ff;--bg-secondary: #ffffff;--bg-tertiary: #eef0f8;--bg-card: rgba(108, 92, 231, .06);--bg-card-hover: rgba(108, 92, 231, .12);--border-color: rgba(108, 92, 231, .18);--border-hover: rgba(108, 92, 231, .5);--text-primary: #1a1a2e;--text-secondary: #333355;--text-muted: #6b6b8d;--navbar-bg: rgba(255, 255, 255, .95);--shadow: rgba(108, 92, 231, .1);--toggle-bg: rgba(108, 92, 231, .15);--input-bg: #f0f0fa}:root{--primary: #6c5ce7;--primary-dark: #5a4bd1;--secondary: #00cec9;--accent: #fd79a8;--gradient-1: linear-gradient(135deg, #6c5ce7, #00cec9);--gradient-2: linear-gradient(135deg, #fd79a8, #6c5ce7)}*{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth}body{font-family:Poppins,sans-serif;background:var(--bg-primary);color:var(--text-secondary);overflow-x:hidden;transition:background .4s,color .4s}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:var(--bg-primary)}::-webkit-scrollbar-thumb{background:var(--primary);border-radius:10px}.navbar{position:fixed;top:0;width:100%;padding:18px 60px;display:flex;justify-content:space-between;align-items:center;z-index:1000;transition:all .4s}.navbar.scrolled{background:var(--navbar-bg);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);padding:12px 60px;box-shadow:0 4px 30px var(--shadow)}.nav-logo{font-size:1.6rem;font-weight:700;background:var(--gradient-1);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;cursor:pointer;text-decoration:none}.nav-right{display:flex;align-items:center;gap:25px}.nav-links{display:flex;list-style:none;gap:28px}.nav-links a{color:var(--text-secondary);text-decoration:none;font-weight:400;font-size:.88rem;position:relative;transition:color .3s}.nav-links a:after{content:"";position:absolute;bottom:-5px;left:0;width:0;height:2px;background:var(--gradient-1);transition:width .3s}.nav-links a:hover{color:var(--text-primary)}.nav-links a:hover:after{width:100%}.theme-toggle{width:52px;height:28px;background:var(--toggle-bg);border:2px solid var(--border-color);border-radius:50px;cursor:pointer;position:relative;transition:all .3s;display:flex;align-items:center;justify-content:space-between;padding:0 6px;flex-shrink:0}.theme-toggle:hover{border-color:var(--primary)}.theme-toggle i{font-size:.6rem}.theme-toggle .fa-moon{color:#a29bfe}.theme-toggle .fa-sun{color:#fdcb6e}.theme-toggle .toggle-ball{position:absolute;width:20px;height:20px;background:var(--primary);border-radius:50%;top:2px;left:2px;transition:transform .3s}[data-theme=light] .theme-toggle .toggle-ball{transform:translate(24px)}.menu-toggle{display:none;flex-direction:column;cursor:pointer;gap:5px;border:none;background:none;padding:0}.menu-toggle span{width:28px;height:3px;background:var(--text-primary);border-radius:3px;transition:.3s}.hero{min-height:100vh;display:flex;align-items:center;justify-content:center;position:relative;padding:0 60px;overflow:hidden}.particles{position:absolute;top:0;left:0;width:100%;height:100%;overflow:hidden;z-index:0}.particle{position:absolute;border-radius:50%;opacity:.3;animation:floatParticle linear infinite}[data-theme=light] .particle{opacity:.15}@keyframes floatParticle{0%{transform:translateY(100vh) rotate(0);opacity:0}10%{opacity:.3}90%{opacity:.3}to{transform:translateY(-10vh) rotate(720deg);opacity:0}}.hero-content{position:relative;z-index:2;max-width:800px}.hero-badge{display:inline-block;padding:8px 20px;border:1px solid var(--border-color);border-radius:50px;font-size:.85rem;color:var(--secondary);margin-bottom:25px;background:var(--bg-card);animation:fadeInUp .8s ease}.hero-badge .hero-badge-dot{font-size:6px;color:#00cec9;margin-right:6px}.hero h1{font-size:3.5rem;font-weight:800;line-height:1.15;margin-bottom:10px;color:var(--text-primary);animation:fadeInUp .8s ease .2s both}.gradient-text{background:var(--gradient-1);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.hero h2{font-size:1.5rem;font-weight:400;color:var(--text-muted);margin-bottom:25px;animation:fadeInUp .8s ease .4s both}.hero p{font-size:1.05rem;color:var(--text-muted);line-height:1.7;margin-bottom:35px;max-width:600px;animation:fadeInUp .8s ease .6s both}.hero-buttons{display:flex;gap:18px;animation:fadeInUp .8s ease .8s both}.btn{padding:14px 32px;border-radius:50px;font-family:Poppins,sans-serif;font-size:.95rem;font-weight:500;cursor:pointer;transition:all .3s;text-decoration:none;display:inline-flex;align-items:center;gap:8px}.btn-primary{background:var(--gradient-1);color:#fff;border:none;box-shadow:0 8px 25px #6c5ce759}.btn-primary:hover{transform:translateY(-3px);box-shadow:0 12px 35px #6c5ce780}.btn-outline{background:transparent;color:var(--text-primary);border:2px solid var(--border-hover)}.btn-outline:hover{background:var(--bg-card);border-color:var(--primary);transform:translateY(-3px)}a:focus-visible,button:focus-visible{outline:2px solid var(--secondary);outline-offset:3px}.hero-image{position:relative;z-index:2;margin-left:60px;animation:fadeInRight 1s ease .5s both}.hero-avatar{width:320px;height:320px;border-radius:30px;background:var(--gradient-1);display:flex;align-items:center;justify-content:center;font-size:8rem;position:relative;overflow:hidden}.hero-avatar:before{content:"";position:absolute;top:-50%;left:-50%;width:200%;height:200%;background:conic-gradient(transparent,rgba(255,255,255,.1),transparent 30%);animation:rotateGlow 4s linear infinite}@keyframes rotateGlow{to{transform:rotate(360deg)}}.hero-float-card{position:absolute;padding:12px 20px;background:var(--bg-secondary);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:15px;border:1px solid var(--border-color);font-size:.85rem;color:var(--text-secondary);animation:float 3s ease-in-out infinite;box-shadow:0 5px 20px var(--shadow)}.hero-float-card.card-1{top:-20px;right:-40px}.hero-float-card.card-2{bottom:-20px;left:-40px;animation-delay:1.5s}.hero-float-card i{color:var(--secondary);margin-right:8px}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-12px)}}section{padding:100px 60px}.section-header{text-align:center;margin-bottom:65px}.section-tag{display:inline-block;padding:6px 18px;background:var(--bg-card);border:1px solid var(--border-color);border-radius:50px;font-size:.8rem;color:var(--secondary);text-transform:uppercase;letter-spacing:2px;margin-bottom:15px}.section-header h2{font-size:2.5rem;font-weight:700;color:var(--text-primary)}.section-header h2 span{background:var(--gradient-1);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.section-line{width:60px;height:4px;background:var(--gradient-1);border-radius:2px;margin:18px auto 0}.bg-alt{background:var(--bg-secondary)}.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center;max-width:1100px;margin:0 auto}.about-text p{color:var(--text-muted);line-height:1.8;margin-bottom:20px}.about-text strong{color:var(--text-primary)}.about-text .hl{color:var(--secondary)}.about-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:30px}.stat-card{text-align:center;padding:25px 15px;background:var(--bg-card);border:1px solid var(--border-color);border-radius:15px;transition:all .3s}.stat-card:hover{transform:translateY(-5px);border-color:var(--primary);background:var(--bg-card-hover)}.stat-number{font-size:2rem;font-weight:700;background:var(--gradient-1);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.stat-label{font-size:.8rem;color:var(--text-muted);margin-top:5px}.about-info-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}.info-item{padding:18px;background:var(--bg-card);border-radius:12px;border:1px solid var(--border-color);transition:all .3s}.info-item:hover{border-color:var(--primary)}.info-item .label{font-size:.75rem;color:var(--secondary);text-transform:uppercase;letter-spacing:1px}.info-item .value{font-size:.95rem;color:var(--text-primary);margin-top:4px;font-weight:500}.skills-container{max-width:1150px;margin:0 auto}.skill-filters{display:flex;justify-content:center;gap:12px;margin-bottom:40px;flex-wrap:wrap}.filter-btn{padding:10px 22px;border:1px solid var(--border-color);border-radius:50px;background:transparent;color:var(--text-muted);font-family:Poppins,sans-serif;font-size:.84rem;cursor:pointer;transition:all .3s;display:flex;align-items:center;gap:7px}.filter-btn i{font-size:.8rem}.filter-btn:hover,.filter-btn.active{background:var(--primary);color:#fff;border-color:var(--primary);box-shadow:0 5px 20px #6c5ce74d}.skill-category{margin-bottom:50px;transition:all .5s}.skill-category.cat-hidden{display:none}.skill-category-header{display:flex;align-items:center;gap:14px;margin-bottom:25px;padding-bottom:12px;border-bottom:2px solid var(--border-color)}.skill-category-header .cat-icon{width:42px;height:42px;border-radius:10px;display:flex;align-items:center;justify-content:center;color:#fff;font-size:1rem;flex-shrink:0}.skill-category[data-cat=frontend] .cat-icon{background:linear-gradient(135deg,#6c5ce7,#a29bfe)}.skill-category[data-cat=backend] .cat-icon{background:linear-gradient(135deg,#00cec9,#0984e3)}.skill-category[data-cat=database] .cat-icon{background:linear-gradient(135deg,#fdcb6e,#e17055)}.skill-category[data-cat=devops] .cat-icon{background:linear-gradient(135deg,#fd79a8,#e84393)}.skill-category-header h3{font-size:1.3rem;font-weight:600;color:var(--text-primary)}.skill-category-header span{font-size:.8rem;color:var(--text-muted);display:block}.skills-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:22px}.skill-card{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:18px;padding:25px;transition:all .4s;position:relative;overflow:hidden}.skill-card:before{content:"";position:absolute;top:0;left:0;width:100%;height:3px;transform:scaleX(0);transition:transform .4s}.skill-card[data-level=experto]:before{background:linear-gradient(135deg,#fdcb6e,#e17055)}.skill-card[data-level=avanzado]:before{background:var(--gradient-1)}.skill-card[data-level=intermedio]:before{background:linear-gradient(135deg,#6c5ce7,#a29bfe)}.skill-card[data-level=basico]:before{background:linear-gradient(135deg,#fd79a8,#e84393)}.skill-card:hover:before{transform:scaleX(1)}.skill-card:hover{transform:translateY(-6px);border-color:var(--border-hover);box-shadow:0 15px 35px var(--shadow)}.skill-card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.skill-icon-wrapper{display:flex;align-items:center;gap:12px}.c-html5{--brand: #E44D26;--brand-bg: rgba(228, 77, 38, .15)}.c-css3{--brand: #1572B6;--brand-bg: rgba(21, 114, 182, .15)}.c-js{--brand: #F7DF1E;--brand-bg: rgba(247, 223, 30, .15)}.c-react{--brand: #61DAFB;--brand-bg: rgba(97, 218, 251, .15)}.c-bootstrap{--brand: #7952B3;--brand-bg: rgba(121, 82, 179, .15)}.c-java{--brand: #f4511e;--brand-bg: rgba(244, 81, 30, .15)}.c-python{--brand: #3776AB;--brand-bg: rgba(55, 118, 171, .15)}.c-php{--brand: #777BB4;--brand-bg: rgba(119, 123, 180, .15)}.c-node{--brand: #339933;--brand-bg: rgba(51, 153, 51, .15)}.c-cpp{--brand: #00599C;--brand-bg: rgba(0, 89, 156, .15)}.c-sql{--brand: #0083E0;--brand-bg: rgba(0, 131, 224, .15)}.c-postgres{--brand: #336791;--brand-bg: rgba(51, 103, 145, .15)}.c-mongodb{--brand: #4DB33D;--brand-bg: rgba(77, 171, 68, .15)}.c-firebase{--brand: #FF9800;--brand-bg: rgba(255, 152, 0, .15)}.c-git{--brand: #F05032;--brand-bg: rgba(240, 80, 50, .15)}.c-docker{--brand: #2496ED;--brand-bg: rgba(36, 150, 237, .15)}.c-linux{--brand: #FCC624;--brand-bg: rgba(252, 203, 0, .15)}.c-figma{--brand: #F24E1E;--brand-bg: rgba(242, 78, 30, .15)}.c-vscode{--brand: #0078D7;--brand-bg: rgba(0, 120, 215, .15)}.c-web{--brand: #f4511e;--brand-bg: rgba(244, 81, 30, .15)}.c-github{--brand: var(--text-primary);--brand-bg: rgba(255, 255, 255, .08)}.skill-icon{width:44px;height:44px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:1.3rem;background:var(--brand-bg);color:var(--brand)}.skill-name{font-size:1.05rem;font-weight:600;color:var(--text-primary)}.skill-level-badge{padding:4px 12px;border-radius:50px;font-size:.68rem;font-weight:600;text-transform:uppercase;letter-spacing:1px}.level-experto{background:#fdcb6e26;color:#fdcb6e;border:1px solid rgba(253,203,110,.3)}.level-avanzado{background:#00cec926;color:#00cec9;border:1px solid rgba(0,206,201,.3)}.level-intermedio{background:#6c5ce726;color:#a29bfe;border:1px solid rgba(108,92,231,.3)}.level-basico{background:#fd79a826;color:#fd79a8;border:1px solid rgba(253,121,168,.3)}.skill-description{font-size:.8rem;color:var(--text-muted);line-height:1.5}.tools-grid{display:flex;flex-wrap:wrap;justify-content:center;gap:18px;max-width:900px;margin:0 auto}.tool-item{display:flex;flex-direction:column;align-items:center;gap:8px;padding:20px 24px;background:var(--bg-card);border:1px solid var(--border-color);border-radius:15px;transition:all .3s;min-width:100px}.tool-item:hover{transform:translateY(-5px);border-color:var(--primary);background:var(--bg-card-hover);box-shadow:0 10px 25px var(--shadow)}.tool-item i{font-size:1.8rem;color:var(--brand)}.tool-item span{font-size:.78rem;color:var(--text-muted)}.projects-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:30px;max-width:1100px;margin:0 auto}.project-card{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:20px;overflow:hidden;transition:all .4s}.project-card:hover{transform:translateY(-10px);border-color:var(--border-hover);box-shadow:0 25px 50px var(--shadow)}.project-image{height:200px;position:relative;overflow:hidden}.project-image-bg{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:3.5rem}.project-image-bg--perfumes{background:linear-gradient(135deg,#6c5ce7,#00cec9)}.project-overlay{position:absolute;top:0;left:0;width:100%;height:100%;background:#0a0a1ad9;display:flex;align-items:center;justify-content:center;gap:15px;opacity:0;transition:opacity .3s}.project-card:hover .project-overlay{opacity:1}.project-overlay a{width:45px;height:45px;border-radius:50%;background:var(--primary);color:#fff;display:flex;align-items:center;justify-content:center;text-decoration:none;transition:all .3s}.project-overlay a:hover{transform:scale(1.15)}.project-info{padding:25px}.project-info h3{font-size:1.2rem;font-weight:600;color:var(--text-primary);margin-bottom:10px}.project-info p{font-size:.85rem;color:var(--text-muted);line-height:1.6;margin-bottom:16px}.project-tags{display:flex;flex-wrap:wrap;gap:8px}.project-tag{padding:4px 12px;background:var(--bg-card);border-radius:50px;font-size:.72rem;color:var(--secondary)}.edu-cert-grid{display:grid;grid-template-columns:1fr 1fr;gap:60px;max-width:1100px;margin:0 auto}.edu-cert-column h3{display:flex;align-items:center;gap:12px;font-size:1.3rem;color:var(--text-primary);margin-bottom:30px;padding-bottom:12px;border-bottom:2px solid var(--border-color)}.edu-cert-column h3 i{width:40px;height:40px;border-radius:10px;background:var(--gradient-1);display:flex;align-items:center;justify-content:center;color:#fff;font-size:.95rem}.timeline{position:relative;padding-left:35px}.timeline:before{content:"";position:absolute;left:7px;top:0;bottom:0;width:2px;background:linear-gradient(to bottom,var(--primary),var(--secondary))}.timeline-item{position:relative;margin-bottom:30px;padding:22px 25px;background:var(--bg-card);border:1px solid var(--border-color);border-radius:15px;transition:all .3s}.timeline-item:hover{border-color:var(--primary);transform:translate(5px)}.timeline-item:before{content:"";position:absolute;left:-31px;top:28px;width:12px;height:12px;border-radius:50%;background:var(--primary);border:3px solid var(--bg-secondary)}.timeline-date{font-size:.78rem;color:var(--secondary);font-weight:500}.timeline-item h4{font-size:1.05rem;color:var(--text-primary);margin:6px 0 4px}.timeline-item h5{font-size:.88rem;color:var(--primary);font-weight:400}.timeline-item p{font-size:.82rem;color:var(--text-muted);margin-top:8px;line-height:1.5}.cert-list{display:flex;flex-direction:column;gap:18px}.cert-card{display:flex;gap:16px;padding:20px;background:var(--bg-card);border:1px solid var(--border-color);border-radius:15px;transition:all .3s;align-items:flex-start}.cert-card:hover{border-color:var(--primary);transform:translate(5px);background:var(--bg-card-hover)}.cert-icon{min-width:48px;height:48px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:1.2rem;background:var(--brand-bg);color:var(--brand)}.cert-info{flex:1}.cert-info h4{font-size:.95rem;color:var(--text-primary);margin-bottom:3px;font-weight:600}.cert-meta{display:flex;flex-wrap:wrap;gap:10px;margin-top:6px}.cert-meta span{display:flex;align-items:center;gap:5px;font-size:.75rem;color:var(--text-muted)}.cert-meta span i{color:var(--secondary);font-size:.7rem}.cert-badge{display:inline-block;padding:3px 10px;margin-top:8px;background:#00cec91a;border:1px solid rgba(0,206,201,.2);border-radius:50px;font-size:.68rem;color:var(--secondary)}.cert-link{display:inline-flex;align-items:center;gap:4px;margin-top:8px;margin-left:10px;font-size:.72rem;color:var(--primary);text-decoration:none;transition:color .3s}.cert-link:hover{color:var(--secondary)}.contact-container{max-width:620px;margin:0 auto}.contact-info{display:flex;flex-direction:column;gap:20px}.contact-info>p{color:var(--text-muted);line-height:1.7}.contact-item{display:flex;align-items:center;gap:15px;padding:18px;background:var(--bg-card);border-radius:12px;border:1px solid var(--border-color);transition:all .3s}.contact-item:hover{border-color:var(--primary);transform:translate(5px)}.contact-item i{width:42px;height:42px;border-radius:10px;background:var(--gradient-1);display:flex;align-items:center;justify-content:center;color:#fff;font-size:1rem;flex-shrink:0}.contact-item-text .label{font-size:.75rem;color:var(--text-muted);text-transform:uppercase}.contact-item-text .value{color:var(--text-primary);font-size:.95rem}.contact-item-text .value a{color:var(--text-primary);text-decoration:none}.social-links{display:flex;gap:12px;margin-top:8px}.social-link{width:44px;height:44px;border-radius:12px;border:1px solid var(--border-color);display:flex;align-items:center;justify-content:center;color:var(--text-secondary);text-decoration:none;font-size:1.1rem;transition:all .3s}.social-link:hover{background:var(--primary);border-color:var(--primary);color:#fff;transform:translateY(-3px)}footer{text-align:center;padding:30px;background:var(--bg-secondary);border-top:1px solid var(--border-color)}footer p{color:var(--text-muted);font-size:.85rem}footer span{color:var(--primary)}@keyframes fadeInUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInRight{0%{opacity:0;transform:translate(50px)}to{opacity:1;transform:translate(0)}}.reveal{opacity:0;transform:translateY(40px);transition:all .8s ease}.reveal.active{opacity:1;transform:translateY(0)}@media(max-width:968px){section{padding:70px 25px}.navbar{padding:15px 25px}.nav-links{position:fixed;top:0;right:-100%;width:280px;height:100vh;background:var(--bg-secondary);flex-direction:column;justify-content:center;align-items:center;gap:28px;transition:right .4s;z-index:999;box-shadow:-5px 0 30px var(--shadow)}.nav-links.active{right:0}.menu-toggle{display:flex;z-index:1001}.hero{padding:120px 25px 60px;flex-direction:column;text-align:center}.hero h1{font-size:2.2rem}.hero h2{font-size:1.1rem}.hero-buttons{justify-content:center;flex-wrap:wrap}.hero-image{margin-left:0;margin-top:40px}.hero-avatar{width:220px;height:220px;font-size:5rem}.about-grid{grid-template-columns:1fr;gap:30px}.about-info-grid,.skills-grid,.projects-grid{grid-template-columns:1fr}.edu-cert-grid{grid-template-columns:1fr;gap:40px}.section-header h2{font-size:1.8rem}}@media(max-width:480px){.hero h1{font-size:1.7rem}.about-stats{grid-template-columns:1fr}.hero-float-card{display:none}.skill-filters{gap:8px}.filter-btn{padding:8px 14px;font-size:.76rem}}.skill-hidden{display:none}
