*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--bg:#07070e;--surface:#0f0e18;--card:#13111f;--border:#251f3d;--primary:#8b5cf6;--primary-2:#7c3aed;--primary-3:#6d28d9;--glow:#8b5cf633;--glow-lg:#8b5cf61a;--text:#f0eeff;--muted:#8b87a8;--tag-bg:#1a1630;--tag-color:#c4b5fd}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--text);cursor:none;font-family:Inter,sans-serif;line-height:1.6;overflow-x:hidden}a{color:inherit;text-decoration:none}strong.text-bright{color:var(--text)}strong.text-primary{color:var(--primary)}.mb-1{margin-bottom:1rem}::-webkit-scrollbar{width:5px}::-webkit-scrollbar-track{background:var(--bg)}::-webkit-scrollbar-thumb{background:linear-gradient(var(--primary), var(--primary-3));border-radius:3px}.cursor-ring{border:2px solid var(--primary);pointer-events:none;z-index:9999;mix-blend-mode:difference;border-radius:50%;width:36px;height:36px;transition:width .2s,height .2s,background .2s,opacity .2s;position:fixed;transform:translate(-50%,-50%)}.cursor-dot{background:var(--primary);pointer-events:none;z-index:9999;border-radius:50%;width:6px;height:6px;transition:transform .1s;position:fixed;transform:translate(-50%,-50%)}.cursor-grow{background:var(--glow);width:56px!important;height:56px!important}.bg-grid{z-index:0;pointer-events:none;background-image:linear-gradient(#8b5cf60a 1px,#0000 1px),linear-gradient(90deg,#8b5cf60a 1px,#0000 1px);background-size:48px 48px;position:fixed;inset:0;-webkit-mask-image:radial-gradient(#000 30%,#0000 80%);mask-image:radial-gradient(#000 30%,#0000 80%)}.bg-glow-1{pointer-events:none;z-index:0;background:radial-gradient(circle,#8b5cf61f 0%,#0000 70%);width:600px;height:600px;animation:8s ease-in-out infinite float1;position:fixed;top:-200px;right:-100px}.bg-glow-2{pointer-events:none;z-index:0;background:radial-gradient(circle,#6366f11a 0%,#0000 70%);width:500px;height:500px;animation:10s ease-in-out infinite float2;position:fixed;bottom:-150px;left:-100px}@keyframes float1{0%,to{transform:translateY(0)scale(1)}50%{transform:translateY(40px)scale(1.05)}}@keyframes float2{0%,to{transform:translateY(0)scale(1)}50%{transform:translateY(-30px)scale(1.03)}}.container{z-index:1;max-width:780px;margin:0 auto;padding:0 1.5rem;position:relative}nav{-webkit-backdrop-filter:blur(20px)saturate(180%);backdrop-filter:blur(20px)saturate(180%);z-index:999;background:#07070ebf;border-bottom:1px solid #8b5cf626;width:100%;padding:1rem 0;transition:background .3s;position:fixed;top:0;left:0}.nav-inner{justify-content:space-between;align-items:center;display:flex}.nav-logo{letter-spacing:-.5px;color:var(--muted);font-size:1.15rem;font-weight:800}.nav-logo span{color:var(--primary)}.nav-links{gap:1.8rem;list-style:none;display:flex}.nav-links a{color:var(--muted);text-transform:capitalize;font-size:.83rem;transition:color .25s;position:relative}.nav-links a:after{content:"";background:var(--primary);border-radius:2px;width:0;height:2px;transition:width .3s;position:absolute;bottom:-4px;left:0}.nav-links a:hover:after,.nav-links a:hover{color:var(--text)}.nav-links a:hover:after{width:100%}.hero{padding:8.5rem 0 3.5rem}.availability{color:var(--tag-color);background:#8b5cf614;border:1px solid #8b5cf64d;border-radius:100px;align-items:center;gap:.5rem;margin-bottom:2rem;padding:.35rem 1.1rem;font-size:.78rem;animation:.6s both fadeDown;display:inline-flex}@keyframes fadeDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.dot{background:#4ade80;border-radius:50%;width:7px;height:7px;animation:2s infinite pulse;box-shadow:0 0 8px #4ade80}@keyframes pulse{0%,to{opacity:1;box-shadow:0 0 8px #4ade80}50%{opacity:.5;box-shadow:0 0 2px #4ade80}}.hero-top{align-items:center;gap:1.8rem;margin-bottom:1.5rem;animation:.7s .1s both fadeUp;display:flex}.avatar-wrapper{flex-shrink:0;width:90px;height:90px;position:relative}.hero-avatar{object-fit:cover;z-index:2;border-radius:50%;width:90px;height:90px;position:relative}.avatar-ring{border:2px solid var(--primary);border-top-color:#0000;border-right-color:#0000;border-radius:50%;animation:4s linear infinite spinRing;position:absolute;inset:-4px}.avatar-ring-2{border:1px solid #8b5cf64d;border-bottom-color:#0000;border-radius:50%;animation:8s linear infinite reverse spinRing;position:absolute;inset:-8px}@keyframes spinRing{to{transform:rotate(360deg)}}.glitch{animation:.5s .3s both glitchEntry;display:inline-block;position:relative}@keyframes glitchEntry{0%{opacity:0;filter:blur(6px)}to{opacity:1;filter:blur()}}.glitch:before,.glitch:after{content:attr(data-text);width:100%;animation:4s infinite glitch;position:absolute;top:0;left:0;overflow:hidden}.glitch:before{color:#a78bfa;clip-path:polygon(0 0,100% 0,100% 35%,0 35%);animation:4s .1s infinite glitch}.glitch:after{color:#6366f1;clip-path:polygon(0 65%,100% 65%,100% 100%,0 100%);animation:4s .2s infinite reverse glitch}@keyframes glitch{0%,95%,to{opacity:0;transform:none}96%{opacity:.6;transform:translate(-2px)}97%{opacity:.6;transform:translate(2px)}98%{opacity:0;transform:none}}.hero-name{letter-spacing:-1.5px;font-size:2.8rem;font-weight:800;line-height:1.1}.hero-dot{color:var(--primary)}.hero-role{color:var(--muted);margin-top:.35rem;font-size:.95rem}.hero-location{color:var(--muted);opacity:.65;margin-top:.2rem;font-size:.8rem}.hero-desc{color:var(--muted);max-width:600px;margin-bottom:2rem;font-size:1rem;line-height:1.85;animation:.7s .2s both fadeUp}.hero-highlight{color:var(--primary);font-weight:500}@keyframes fadeUp{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}.hero-actions{flex-wrap:wrap;gap:.75rem;margin-bottom:3rem;animation:.7s .3s both fadeUp;display:flex}.btn{cursor:none;border:none;border-radius:10px;align-items:center;gap:.5rem;padding:.7rem 1.5rem;font-size:.88rem;font-weight:600;transition:all .3s;display:inline-flex;position:relative;overflow:hidden}.btn:after{content:"";background:#ffffff14;transition:transform .3s;position:absolute;inset:0;transform:translate(-100%)}.btn:hover:after{transform:translate(0)}.btn-primary{background:linear-gradient(135deg, var(--primary), var(--primary-3));color:#fff;box-shadow:0 4px 20px #8b5cf666}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 8px 28px #8b5cf68c}.btn-ghost{border:1px solid var(--border);color:var(--muted);background:#8b5cf612}.btn-ghost:hover{border-color:var(--primary);color:var(--text);background:#8b5cf61f;transform:translateY(-2px)}.counters{border:1px solid var(--border);background:var(--border);border-radius:14px;grid-template-columns:repeat(4,1fr);gap:1px;animation:.7s .4s both fadeUp;display:grid;overflow:hidden}.counter-item{background:var(--surface);text-align:center;padding:1.4rem 1rem;transition:background .25s}.counter-item:hover{background:var(--card)}.counter-num{background:linear-gradient(135deg, #c4b5fd, var(--primary));-webkit-text-fill-color:transparent;-webkit-background-clip:text;font-size:2.2rem;font-weight:800;line-height:1}.counter-label{color:var(--muted);margin-top:.3rem;font-size:.72rem}section{border-top:1px solid #8b5cf61a;padding:4.5rem 0}.section-label{text-transform:uppercase;letter-spacing:3px;color:var(--primary);margin-bottom:1.25rem;font-size:.7rem;font-weight:700}.section-title{letter-spacing:-.5px;margin-bottom:1rem;font-size:1.7rem;font-weight:800}.section-body{color:var(--muted);font-size:.95rem;line-height:1.85}.divider{background:linear-gradient(90deg, var(--primary), var(--primary-3));width:36px;height:3px;box-shadow:0 0 10px var(--glow);border-radius:2px;margin-bottom:1.75rem}.about-grid{grid-template-columns:1fr 200px;align-items:start;gap:2.5rem;display:grid}.about-badges{flex-direction:column;gap:.5rem;display:flex}.badge-item{background:var(--card);border:1px solid var(--border);color:var(--muted);cursor:default;border-radius:8px;padding:.6rem 1rem;font-size:.82rem;transition:all .25s}.badge-item:hover{border-color:var(--primary);color:var(--text);background:#8b5cf612;transform:translate(4px)}.services-grid{grid-template-columns:repeat(3,1fr);gap:1rem;display:grid}.service-card{background:var(--card);border:1px solid var(--border);cursor:default;border-radius:14px;padding:1.5rem;transition:all .3s;position:relative;overflow:hidden}.service-glow{opacity:0;background:radial-gradient(circle at 50% 0,#8b5cf626,#0000 70%);transition:opacity .3s;position:absolute;inset:0}.service-card:hover .service-glow{opacity:1}.service-card:hover{border-color:var(--primary);box-shadow:0 12px 32px var(--glow);transform:translateY(-4px)}.service-icon{margin-bottom:.8rem;font-size:1.6rem;display:block}.service-title{color:var(--text);margin-bottom:.4rem;font-size:.9rem;font-weight:700}.service-desc{color:var(--muted);font-size:.82rem;line-height:1.65}.skills-section{flex-direction:column;gap:1.75rem;display:flex}.skills-group-label{color:var(--muted);margin-bottom:.75rem;font-size:.82rem;font-weight:600}.skills-wrap{flex-wrap:wrap;gap:.55rem;display:flex}.skill-tag{background:var(--tag-bg);border:1px solid var(--border);color:var(--tag-color);cursor:default;border-radius:100px;padding:.35rem 1rem;font-size:.8rem;transition:all .25s;position:relative;overflow:hidden}.skill-tag:before{content:"";background:linear-gradient(90deg,#0000,#8b5cf61a,#0000);transition:transform .4s;position:absolute;inset:0;transform:translate(-100%)}.skill-tag:hover:before{transform:translate(100%)}.skill-tag:hover{border-color:var(--primary);color:var(--text);box-shadow:0 4px 14px var(--glow);transform:translateY(-2px)}.skill-primary{color:#c4b5fd;background:#8b5cf61f;border-color:#8b5cf680;font-weight:700}.projects-grid{flex-direction:column;gap:1rem;display:flex}.project-card{background:var(--card);border:1px solid var(--border);cursor:default;border-radius:14px;justify-content:space-between;align-items:flex-start;gap:1rem;padding:1.5rem 1.7rem;transition:all .3s;display:flex;position:relative;overflow:hidden}.project-accent{width:3px;height:100%;position:absolute;top:0;left:0}.project-shimmer{opacity:0;background:linear-gradient(105deg,#0000 40%,#8b5cf60f 50%,#0000 60%);transition:opacity .3s;position:absolute;inset:0}.project-card:hover{border-color:var(--primary);box-shadow:-4px 0 24px var(--glow);transform:translate(4px)}.project-card:hover .project-shimmer{opacity:1;animation:1s shimmer}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.project-info{flex:1;padding-left:.75rem}.project-name{margin-bottom:.4rem;font-size:.95rem;font-weight:700}.project-desc{color:var(--muted);margin-bottom:.8rem;font-size:.85rem;line-height:1.65}.project-tags{flex-wrap:wrap;gap:.4rem;display:flex}.project-tag{background:var(--tag-bg);color:var(--tag-color);border:1px solid var(--border);border-radius:100px;padding:.2rem .7rem;font-size:.75rem}.project-link{color:var(--muted);flex-shrink:0;padding-top:.2rem;font-size:1.2rem;transition:color .25s,transform .25s}.project-link:hover{color:var(--primary);transform:scale(1.2)}.edu-grid{grid-template-columns:1fr 1fr;gap:3rem;display:grid}.edu-subtitle{color:var(--text);margin-bottom:1.25rem;font-size:.88rem;font-weight:700}.timeline{flex-direction:column;gap:1.75rem;display:flex}.tl-item{grid-template-columns:90px 1fr;gap:1rem;display:grid}.tl-date{color:var(--muted);text-align:right;white-space:nowrap;padding-top:.2rem;font-size:.75rem}.tl-content{border-left:2px solid var(--border);padding-left:1.25rem;position:relative}.tl-content:before{content:"";background:var(--primary);width:8px;height:8px;box-shadow:0 0 10px var(--glow);border-radius:50%;position:absolute;top:6px;left:-5px}.tl-title{margin-bottom:.2rem;font-size:.9rem;font-weight:700}.tl-sub{color:var(--primary);margin-bottom:.4rem;font-size:.82rem}.tl-desc{color:var(--muted);font-size:.82rem;line-height:1.6}.certs-grid{flex-direction:column;gap:.5rem;display:flex}.cert-card{background:var(--card);border:1px solid var(--border);cursor:default;border-radius:8px;padding:.7rem 1rem;transition:all .25s}.cert-card:hover{border-color:var(--primary);background:#8b5cf60d;transform:translate(4px)}.cert-name{font-size:.83rem;font-weight:600}.cert-meta{color:var(--primary);margin-top:.1rem;font-size:.73rem}.testimonios-grid{grid-template-columns:repeat(3,1fr);gap:1rem;display:grid}.testimonio-card{background:var(--card);border:1px solid var(--border);cursor:default;border-radius:14px;padding:1.5rem;transition:all .3s}.testimonio-card:hover{border-color:var(--primary);box-shadow:0 0 24px var(--glow);transform:translateY(-3px)}.testimonio-quote{color:var(--primary);opacity:.35;margin-bottom:.75rem;font-family:Georgia,serif;font-size:3.5rem;line-height:.9}.testimonio-texto{color:var(--muted);margin-bottom:1.25rem;font-size:.87rem;font-style:italic;line-height:1.75}.testimonio-autor{align-items:center;gap:.75rem;display:flex}.testimonio-avatar{background:linear-gradient(135deg, var(--primary), var(--primary-3));color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;font-size:.9rem;font-weight:800;display:flex}.testimonio-name{font-size:.85rem;font-weight:700}.testimonio-rol{color:var(--muted);font-size:.73rem}.contact-grid{grid-template-columns:1fr 1fr;gap:.75rem;margin-top:1.5rem;display:grid}.contact-card{background:var(--card);border:1px solid var(--border);color:var(--muted);border-radius:12px;align-items:center;gap:.75rem;padding:1rem 1.25rem;font-size:.87rem;transition:all .3s;display:flex}.contact-card:hover{border-color:var(--primary);color:var(--text);box-shadow:0 8px 24px var(--glow);background:#8b5cf60f;transform:translateY(-3px)}footer{text-align:center;color:var(--muted);border-top:1px solid #8b5cf61a;padding:3rem 0;font-size:.82rem}.footer-logo{color:var(--muted);letter-spacing:-.5px;margin-bottom:.5rem;font-size:1.3rem;font-weight:800}.footer-logo span,footer span{color:var(--primary)}.footer-sub{opacity:.6;margin-top:.4rem;font-size:.78rem}.fade-up{opacity:0;transition:opacity .65s,transform .65s;transform:translateY(28px)}.fade-up.visible{opacity:1;transform:translateY(0)}@media (max-width:768px){.counters{grid-template-columns:repeat(2,1fr)}.about-grid{grid-template-columns:1fr}.services-grid{grid-template-columns:1fr 1fr}.edu-grid,.testimonios-grid{grid-template-columns:1fr}}@media (max-width:600px){.hero-name{font-size:2.1rem}.nav-links{display:none}.contact-grid,.services-grid,.tl-item{grid-template-columns:1fr}.tl-date{text-align:left}body{cursor:auto}.cursor-ring,.cursor-dot{display:none}}
