@import"https://fonts.googleapis.com/css2?family=Syne:wght@400;700;800&family=Space+Grotesk:wght@300;400;500;600;700&family=Space+Mono:wght@400;700&display=swap";:root{--bg: #070711;--surface: #0c0c1e;--card: #111128;--card-hover: #161636;--border: rgba(255, 255, 255, .07);--border-glow: rgba(0, 212, 255, .3);--cyan: #00d4ff;--cyan-dim: rgba(0, 212, 255, .12);--purple: #7c3aed;--purple-dim: rgba(124, 58, 237, .15);--pink: #f472b6;--text: #e2e8f0;--text-muted: #64748b;--text-subtle: #94a3b8;--gradient: linear-gradient(135deg, var(--cyan) 0%, var(--purple) 100%);--gradient-rev: linear-gradient(135deg, var(--purple) 0%, var(--cyan) 100%);--font-head: "Syne", sans-serif;--font-body: "Space Grotesk", sans-serif;--font-mono: "Space Mono", monospace;--radius: 12px;--radius-lg: 20px;--transition: .3s cubic-bezier(.4, 0, .2, 1)}[data-theme=light]{--bg: #ffffff;--surface: #f4f6fb;--card: #ffffff;--card-hover: #f8f9ff;--border: rgba(0, 0, 0, .09);--border-glow: rgba(0, 100, 200, .25);--cyan: #0069b4;--cyan-dim: rgba(0, 105, 180, .1);--purple: #6d28d9;--purple-dim: rgba(109, 40, 217, .08);--pink: #db2777;--text: #0f172a;--text-muted: #475569;--text-subtle: #64748b;--gradient: linear-gradient(135deg, var(--cyan) 0%, var(--purple) 100%);--gradient-rev: linear-gradient(135deg, var(--purple) 0%, var(--cyan) 100%)}*:not(#bg-canvas):not(#cursor):not(#cursor-ring):not(svg):not(path):not(line):not(circle){transition-property:background-color,border-color,color,box-shadow,fill,stroke;transition-duration:.4s;transition-timing-function:cubic-bezier(.4,0,.2,1)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;scrollbar-width:thin;scrollbar-color:var(--purple) var(--surface)}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:var(--surface)}::-webkit-scrollbar-thumb{background:var(--gradient);border-radius:3px}body{font-family:var(--font-body);background-color:var(--bg);color:var(--text);line-height:1.7;overflow-x:hidden;cursor:none;background-image:radial-gradient(ellipse 70% 60% at 10% 40%,rgba(124,58,237,.12) 0%,transparent 60%),radial-gradient(ellipse 60% 50% at 90% 10%,rgba(0,212,255,.08) 0%,transparent 55%)}[data-theme=light] body,[data-theme=light]{background-image:radial-gradient(ellipse 70% 60% at 10% 40%,rgba(109,40,217,.03) 0%,transparent 60%),radial-gradient(ellipse 60% 50% at 90% 10%,rgba(0,105,180,.03) 0%,transparent 55%)}#cursor{position:fixed;width:10px;height:10px;background:var(--cyan);border-radius:50%;pointer-events:none;z-index:9999;transform:translate(-50%,-50%);transition:transform .05s,width .2s,height .2s,opacity .2s;mix-blend-mode:difference}#cursor-ring{position:fixed;width:36px;height:36px;border:1.5px solid var(--cyan);border-radius:50%;pointer-events:none;z-index:9998;transform:translate(-50%,-50%);transition:transform .12s cubic-bezier(.25,.46,.45,.94),width .25s,height .25s,border-color .25s,opacity .2s;opacity:.6}body:has(a:hover) #cursor-ring,body:has(button:hover) #cursor-ring{width:56px;height:56px;border-color:var(--purple);opacity:1}#bg-canvas{position:fixed;inset:0;width:100%;height:100%;z-index:0;pointer-events:none}#nav{position:fixed;top:0;left:0;right:0;z-index:100;padding:1.25rem 4rem;display:flex;align-items:center;justify-content:space-between;transition:background var(--transition),backdrop-filter var(--transition),border-bottom var(--transition)}#nav.scrolled{background:#070711d9;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-bottom:1px solid var(--border)}[data-theme=light] #nav.scrolled{background:#f0f4ffe0}#theme-toggle{display:flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:50%;border:1.5px solid var(--border);background:var(--card);color:var(--text);cursor:pointer;padding:0;flex-shrink:0;transition:border-color var(--transition),background var(--transition),transform .35s cubic-bezier(.34,1.56,.64,1),box-shadow var(--transition);position:relative;overflow:hidden}#theme-toggle:hover{border-color:var(--cyan);box-shadow:0 0 14px var(--cyan-dim);transform:rotate(20deg) scale(1.08)}#theme-toggle svg{width:18px;height:18px;position:absolute;transition:opacity .3s,transform .4s cubic-bezier(.34,1.56,.64,1)}#icon-sun{opacity:1;transform:scale(1) rotate(0)}#icon-moon{opacity:0;transform:scale(.5) rotate(-90deg)}[data-theme=light] #icon-sun{opacity:0;transform:scale(.5) rotate(90deg)}[data-theme=light] #icon-moon{opacity:1;transform:scale(1) rotate(0)}.nav-logo{font-family:var(--font-head);font-weight:800;font-size:1.25rem;background:var(--gradient);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;text-decoration:none;letter-spacing:-.02em}.nav-links{display:flex;gap:2.5rem;list-style:none}.nav-links a{font-family:var(--font-mono);font-size:.8rem;color:var(--text-muted);text-decoration:none;letter-spacing:.08em;text-transform:uppercase;transition:color var(--transition);position:relative}.nav-links a:after{content:"";position:absolute;bottom:-4px;left:0;width:0;height:1px;background:var(--gradient);transition:width var(--transition)}.nav-links a:hover{color:var(--cyan)}.nav-links a:hover:after{width:100%}.nav-link.active{color:var(--cyan)!important}.nav-link.active:after{width:100%!important}#hamburger{display:none;flex-direction:column;justify-content:center;gap:5px;width:36px;height:36px;background:transparent;border:none;cursor:pointer;padding:4px;z-index:200}#hamburger span{display:block;width:100%;height:2px;background:var(--text);border-radius:2px;transition:transform .35s cubic-bezier(.4,0,.2,1),opacity .25s,width .25s;transform-origin:center}#hamburger.open span:nth-child(1){transform:translateY(7px) rotate(45deg)}#hamburger.open span:nth-child(2){opacity:0;width:0}#hamburger.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}#mobile-menu{position:fixed;inset:0;background:#070711f7;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);z-index:150;display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity .35s cubic-bezier(.4,0,.2,1)}#mobile-menu.open{opacity:1;pointer-events:all}[data-theme=light] #mobile-menu{background:#f0f4fff7}#mobile-menu ul{list-style:none;display:flex;flex-direction:column;align-items:center;gap:.5rem}.mobile-link{font-family:var(--font-head);font-size:clamp(2rem,8vw,3rem);font-weight:800;color:var(--text-muted);text-decoration:none;letter-spacing:-.02em;transition:color var(--transition),transform var(--transition);display:block;padding:.4rem 1rem;transform:translateY(20px);opacity:0;transition:color .3s,transform .4s cubic-bezier(.34,1.56,.64,1),opacity .3s}#mobile-menu.open .mobile-link{transform:translateY(0);opacity:1}#mobile-menu.open li:nth-child(1) .mobile-link{transition-delay:.05s}#mobile-menu.open li:nth-child(2) .mobile-link{transition-delay:.1s}#mobile-menu.open li:nth-child(3) .mobile-link{transition-delay:.15s}#mobile-menu.open li:nth-child(4) .mobile-link{transition-delay:.2s}#mobile-menu.open li:nth-child(5) .mobile-link{transition-delay:.25s}#mobile-menu.open li:nth-child(6) .mobile-link{transition-delay:.3s}.mobile-link:hover{color:var(--cyan)}main{position:relative;z-index:1}#hero{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:0 2rem;position:relative}.hero-eyebrow{font-family:var(--font-mono);font-size:.8rem;color:var(--cyan);letter-spacing:.25em;text-transform:uppercase;margin-bottom:1.5rem}.hero-name{font-family:var(--font-head);font-size:clamp(3.5rem,10vw,9rem);font-weight:800;line-height:.9;letter-spacing:-.03em;background:linear-gradient(135deg,#fff 30%,var(--cyan) 60%,var(--purple) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin-bottom:1rem}[data-theme=light] .hero-name{background:linear-gradient(135deg,#0f172a 25%,var(--cyan) 55%,var(--purple) 100%);-webkit-background-clip:text;background-clip:text}.hero-role{font-size:clamp(1rem,2.5vw,1.4rem);color:var(--text-muted);margin-bottom:2.5rem;height:1.8em;overflow:hidden}.hero-role .typewriter{display:inline-block;position:relative}.hero-role .typewriter:after{content:"|";color:var(--cyan);animation:blink 1s step-end infinite;margin-left:2px}@keyframes blink{50%{opacity:0}}.hero-meta{font-family:var(--font-mono);font-size:.8rem;color:var(--text-muted);margin-bottom:3rem}.hero-meta span{color:var(--cyan)}.hero-cta{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap}.btn-primary{padding:.85rem 2.2rem;background:var(--gradient);color:#fff;border:none;border-radius:50px;font-family:var(--font-body);font-size:.95rem;font-weight:600;cursor:none;text-decoration:none;transition:transform var(--transition),box-shadow var(--transition),opacity var(--transition);box-shadow:0 0 30px #00d4ff40}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 0 50px #00d4ff66}.btn-secondary{padding:.85rem 2.2rem;background:transparent;color:var(--text);border:1px solid var(--border);border-radius:50px;font-family:var(--font-body);font-size:.95rem;font-weight:500;cursor:none;text-decoration:none;transition:border-color var(--transition),color var(--transition),background var(--transition);backdrop-filter:blur(8px)}.btn-secondary:hover{border-color:var(--cyan);color:var(--cyan);background:var(--cyan-dim)}.btn-download{display:flex;align-items:center;gap:.5rem;padding:.85rem 1.75rem;background:transparent;color:var(--text-muted);border:1px dashed rgba(255,255,255,.2);border-radius:50px;font-family:var(--font-body);font-size:.88rem;font-weight:500;cursor:none;text-decoration:none;transition:all var(--transition)}.btn-download:hover{border-color:var(--cyan);color:var(--cyan);border-style:solid}.btn-download svg{transition:transform var(--transition)}.btn-download:hover svg{transform:translateY(2px)}.hero-scroll-hint{position:absolute;bottom:2.5rem;left:50%;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:.5rem;opacity:0;animation:fadeInUp 1s 2s forwards}.scroll-line{width:1px;height:60px;background:linear-gradient(to bottom,var(--cyan),transparent);animation:scrollPulse 2s ease-in-out infinite}@keyframes scrollPulse{0%,to{opacity:.3;transform:scaleY(1)}50%{opacity:1;transform:scaleY(1.2)}}@keyframes fadeInUp{to{opacity:.5;transform:translate(-50%) translateY(0)}0%{opacity:0;transform:translate(-50%) translateY(20px)}}.section{padding:8rem 4rem;max-width:1200px;margin:0 auto}.section-label{font-family:var(--font-mono);font-size:.75rem;color:var(--cyan);letter-spacing:.2em;text-transform:uppercase;margin-bottom:.75rem;display:flex;align-items:center;gap:.75rem}.section-label:before{content:"";width:30px;height:1px;background:var(--cyan)}.section-title{font-family:var(--font-head);font-size:clamp(2rem,5vw,3.5rem);font-weight:800;line-height:1.05;letter-spacing:-.03em;margin-bottom:1rem}.section-title .accent{background:var(--gradient);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}#sobre-mi .about-grid{display:grid;grid-template-columns:1fr 1.5fr;gap:4rem;align-items:center;margin-top:3rem}.about-badge{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.5rem}.about-avatar{width:220px;height:220px;border-radius:50%;background:linear-gradient(135deg,var(--surface),var(--card));border:2px solid var(--border);display:flex;align-items:center;justify-content:center;font-family:var(--font-head);font-size:5rem;font-weight:800;background:var(--gradient);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;position:relative}.about-avatar:before{content:"";position:absolute;inset:-3px;border-radius:50%;background:var(--gradient);z-index:-1;opacity:.5;filter:blur(8px)}.about-stats{display:flex;gap:2rem}.stat{text-align:center}.stat-num{font-family:var(--font-head);font-size:2rem;font-weight:800;background:var(--gradient);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.stat-label{font-size:.75rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.1em;font-family:var(--font-mono)}.about-text p{color:var(--text-subtle);font-size:1.05rem;line-height:1.8;margin-bottom:1.25rem}.about-text p:last-child{margin-bottom:0}.about-text strong{color:var(--text);font-weight:600}#experiencia .timeline{position:relative;margin-top:3.5rem;padding-left:2rem}#experiencia .timeline:before{content:"";position:absolute;left:0;top:0;bottom:0;width:1px;background:linear-gradient(to bottom,var(--cyan),var(--purple),transparent)}.timeline-item{position:relative;padding:0 0 3.5rem 3rem}.timeline-item:last-child{padding-bottom:0}.timeline-dot{position:absolute;left:-6px;top:6px;width:13px;height:13px;border-radius:50%;background:var(--cyan);box-shadow:0 0 12px var(--cyan),0 0 25px #00d4ff66;border:2px solid var(--bg)}.timeline-dot.purple{background:var(--purple);box-shadow:0 0 12px var(--purple),0 0 25px #7c3aed66}.timeline-header{margin-bottom:1rem}.timeline-period{font-family:var(--font-mono);font-size:.75rem;color:var(--cyan);letter-spacing:.1em;margin-bottom:.4rem}.timeline-period.purple{color:var(--purple)}.timeline-role{font-family:var(--font-head);font-size:1.4rem;font-weight:700;color:var(--text);line-height:1.2;margin-bottom:.25rem}.timeline-company{font-size:.95rem;color:var(--text-muted);font-weight:500}.timeline-body{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.5rem 1.75rem;transition:border-color var(--transition),box-shadow var(--transition)}.timeline-body:hover{border-color:var(--border-glow);box-shadow:0 0 30px #00d4ff0f}.timeline-body ul{list-style:none;display:flex;flex-direction:column;gap:.6rem}.timeline-body li{font-size:.92rem;color:var(--text-subtle);padding-left:1.25rem;position:relative;line-height:1.6}.timeline-body li:before{content:"▸";position:absolute;left:0;color:var(--cyan);font-size:.7rem;top:.2rem}.timeline-body li strong{color:var(--text);font-weight:600}.timeline-tags{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1.25rem}.tag{font-family:var(--font-mono);font-size:.7rem;padding:.25rem .75rem;border-radius:50px;background:var(--cyan-dim);color:var(--cyan);border:1px solid rgba(0,212,255,.2);letter-spacing:.05em}.tag.purple{background:var(--purple-dim);color:#a78bfa;border-color:#7c3aed40}.timeline-metrics{display:flex;gap:1rem;margin-bottom:1.25rem;flex-wrap:wrap}.metric-chip{display:flex;flex-direction:column;align-items:center;padding:.75rem 1.25rem;background:linear-gradient(135deg,#00d4ff14,#7c3aed14);border:1px solid rgba(0,212,255,.2);border-radius:var(--radius);min-width:90px;text-align:center}.metric-val{font-family:var(--font-head);font-size:1.4rem;font-weight:800;background:var(--gradient);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;line-height:1.1}.metric-desc{font-family:var(--font-mono);font-size:.65rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em;margin-top:.2rem}.projects-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:1.5rem;margin-top:3rem}.project-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg);transition:all var(--transition);text-decoration:none;color:var(--text);overflow:hidden;position:relative}.project-card:before{content:"";position:absolute;inset:0;background:var(--gradient);opacity:0;transition:opacity var(--transition)}.project-card--github{border-color:#00d4ff33}.project-card--github:hover{border-color:var(--cyan);transform:translateY(-4px);box-shadow:0 12px 40px #00d4ff26}.project-card--github:hover:before{opacity:.04}.project-card--soon{border-style:dashed;opacity:.7;cursor:default}.project-card-inner{display:flex;align-items:center;gap:1.5rem;padding:1.75rem 2rem;position:relative;z-index:1}.project-card-icon{color:var(--cyan);flex-shrink:0}.project-card-icon--soon{color:var(--text-muted)}.project-card-content{flex:1}.project-card-content h3{font-family:var(--font-head);font-size:1.05rem;font-weight:700;margin-bottom:.4rem;display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.project-card-content p{font-size:.88rem;color:var(--text-muted);line-height:1.6}.project-card-arrow{font-size:1.25rem;color:var(--cyan);flex-shrink:0;transition:transform var(--transition)}.project-card--github:hover .project-card-arrow{transform:translate(4px)}.coming-soon-badge{font-family:var(--font-mono);font-size:.65rem;padding:.2rem .6rem;border-radius:50px;background:var(--purple-dim);color:#a78bfa;border:1px solid rgba(124,58,237,.25);letter-spacing:.06em;font-weight:400}#stack .stack-categories{margin-top:3rem;display:flex;flex-direction:column;gap:3rem}.stack-category h3{font-family:var(--font-mono);font-size:.75rem;color:var(--text-muted);letter-spacing:.15em;text-transform:uppercase;margin-bottom:1.25rem;display:flex;align-items:center;gap:.75rem}.stack-category h3:after{content:"";flex:1;height:1px;background:var(--border)}.tech-grid{display:flex;flex-wrap:wrap;gap:.75rem}.tech-badge{display:flex;align-items:center;gap:.5rem;padding:.6rem 1.1rem;background:var(--card);border:1px solid var(--border);border-radius:var(--radius);font-size:.88rem;font-weight:500;color:var(--text-subtle);transition:all var(--transition);cursor:none;position:relative;overflow:hidden}.tech-badge:before{content:"";position:absolute;inset:0;background:var(--gradient);opacity:0;transition:opacity var(--transition)}.tech-badge:hover{border-color:var(--border-glow);color:var(--text);transform:translateY(-3px);box-shadow:0 8px 25px #0000004d}.tech-badge:hover:before{opacity:.08}.tech-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}#educacion .edu-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.5rem;margin-top:3rem}.edu-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:2rem;transition:all var(--transition);position:relative;overflow:hidden}.edu-card:before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:var(--gradient)}.edu-card:hover{border-color:var(--border-glow);transform:translateY(-4px);box-shadow:0 12px 40px #0000004d}.edu-period{font-family:var(--font-mono);font-size:.75rem;color:var(--text-muted);margin-bottom:.5rem;letter-spacing:.08em}.edu-degree{font-family:var(--font-head);font-size:1.1rem;font-weight:700;color:var(--text);margin-bottom:.4rem}.edu-institution{font-size:.9rem;color:var(--text-muted)}.contact-layout{display:grid;grid-template-columns:1fr 1.1fr;gap:4rem;align-items:start;margin-top:2rem}.contact-left .section-title{margin-bottom:.75rem}.contact-subtitle{font-size:1rem;color:var(--text-muted);line-height:1.7;margin-bottom:2rem}.contact-links{display:flex;flex-direction:column;gap:.75rem;margin-bottom:1rem}.contact-link{display:flex;align-items:center;gap:.75rem;padding:1rem 1.75rem;background:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg);color:var(--text);text-decoration:none;font-size:.95rem;font-weight:500;transition:all var(--transition);cursor:none}.contact-link:hover{border-color:var(--cyan);color:var(--cyan);transform:translateY(-3px);box-shadow:0 8px 30px #00d4ff26}.contact-link svg{width:18px;height:18px;flex-shrink:0}.contact-form{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:2rem;display:flex;flex-direction:column;gap:1.25rem}.form-group{display:flex;flex-direction:column;gap:.4rem}.form-group label{font-family:var(--font-mono);font-size:.72rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.1em}.form-group input,.form-group textarea{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:.75rem 1rem;font-family:var(--font-body);font-size:.95rem;color:var(--text);outline:none;transition:border-color var(--transition),box-shadow var(--transition);resize:vertical;width:100%}.form-group input::placeholder,.form-group textarea::placeholder{color:var(--text-muted)}.form-group input:focus,.form-group textarea:focus{border-color:var(--cyan);box-shadow:0 0 0 3px #00d4ff1a}.form-submit{align-self:flex-start;display:flex;align-items:center;gap:.5rem}.form-success{font-size:.9rem;color:var(--cyan);font-family:var(--font-mono)}.form-error{font-size:.9rem;color:#f87171;font-family:var(--font-mono)}@keyframes spin{to{transform:rotate(360deg)}}@media (max-width: 900px){.contact-layout{grid-template-columns:1fr;gap:2.5rem}}.contact-copy-feedback{font-family:var(--font-mono);font-size:.75rem;color:var(--cyan);opacity:0;transition:opacity .3s;margin-top:.5rem}.contact-copy-feedback.visible{opacity:1}footer{text-align:center;padding:2rem;border-top:1px solid var(--border);font-family:var(--font-mono);font-size:.75rem;color:var(--text-muted);position:relative;z-index:1}footer span{background:var(--gradient);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}@media (max-width: 900px){#nav{padding:1rem 2rem}.nav-links{gap:1.5rem}.section{padding:5rem 2rem}#sobre-mi .about-grid{grid-template-columns:1fr;gap:2.5rem;text-align:center}.about-badge{order:-1}.about-stats{justify-content:center}}@media (max-width: 768px){.nav-links{display:none}#hamburger{display:flex}}@media (max-width: 600px){.hero-cta{flex-direction:column;align-items:center}#cursor,#cursor-ring{display:none}body{cursor:auto}.btn-primary,.btn-secondary,.contact-link{cursor:pointer}}
