@import "https://fonts.googleapis.com/css2?family=Outfit:wght@300;400;500;600;700;800&family=JetBrains+Mono:wght@400;500&display=swap";:root{--font-sans:"Outfit", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono:"JetBrains Mono", monospace;--bg-deep:#f8fafc;--bg-card:#ffffffbf;--bg-card-hover:#fffffff2;--border-glow:#4f46e51f;--border-glow-hover:#0891b280;--primary:#4f46e5;--primary-glow:#4f46e526;--secondary:#0891b2;--secondary-glow:#0891b226;--accent:#c026d3;--accent-glow:#c026d326;--text-primary:#0f172a;--text-secondary:#475569;--text-muted:#64748b;--shadow-sm:0 2px 10px #0000000a;--shadow-md:0 10px 40px #0000000f;--shadow-glow:0 0 25px #4f46e50f;--shadow-glow-active:0 0 30px #0891b226;--glass-bg:#f8fafccc;--glass-border:#0000000d;--glass-blur:blur(16px);--transition-fast:.2s cubic-bezier(.4, 0, .2, 1);--transition-normal:.3s cubic-bezier(.4, 0, .2, 1);--transition-slow:.5s cubic-bezier(.4, 0, .2, 1);background-color:var(--bg-deep);color:var(--text-primary);font-size:16px;font-family:var(--font-sans);scroll-behavior:smooth;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden}*{box-sizing:border-box;margin:0;padding:0}body{background-color:var(--bg-deep);color:var(--text-primary);min-height:100vh;line-height:1.6;position:relative}body:before{content:"";z-index:-1;pointer-events:none;background-image:radial-gradient(circle at 10% 20%,#4f46e50a 0%,#0000 40%),radial-gradient(circle at 90% 80%,#0891b20a 0%,#0000 40%),radial-gradient(circle,#c026d305 0%,#0000 50%),linear-gradient(#00000004 1px,#0000 1px),linear-gradient(90deg,#00000004 1px,#0000 1px);background-size:100% 100%,100% 100%,100% 100%,40px 40px,40px 40px;width:100%;height:100%;position:absolute;top:0;left:0}a{color:inherit;transition:var(--transition-fast);text-decoration:none}#root{flex-direction:column;min-height:100vh;display:flex}.container{width:100%;max-width:1200px;margin:0 auto;padding:0 1.5rem}.header{z-index:100;background:var(--glass-bg);width:100%;-webkit-backdrop-filter:var(--glass-blur);border-bottom:1px solid var(--glass-border);transition:var(--transition-normal);position:fixed;top:0;left:0}.header-scrolled{box-shadow:var(--shadow-sm);border-bottom-color:#4f46e514;padding:.5rem 0}.nav-container{height:4.5rem;transition:var(--transition-normal);justify-content:space-between;align-items:center;display:flex}.header-scrolled .nav-container{height:3.5rem}.logo{letter-spacing:-.05em;background:linear-gradient(135deg, var(--primary) 0%, var(--secondary) 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;align-items:center;gap:.5rem;font-size:1.5rem;font-weight:800;display:flex}.nav-links{align-items:center;gap:2rem;list-style:none;display:flex}.nav-links a{color:var(--text-secondary);padding:.5rem 0;font-size:.95rem;font-weight:600;position:relative}.nav-links a:hover,.nav-links a.active{color:var(--primary)}.nav-links a:after{content:"";background:linear-gradient(90deg, var(--primary) 0%, var(--secondary) 100%);width:0;height:2px;transition:var(--transition-normal);position:absolute;bottom:0;left:0}.nav-links a:hover:after,.nav-links a.active:after{width:100%}.menu-btn{color:var(--text-primary);cursor:pointer;z-index:101;background:0 0;border:none;display:none}.hero-section{align-items:center;min-height:100vh;padding-top:9rem;padding-bottom:6rem;display:flex;position:relative}.hero-grid{grid-template-columns:1.2fr .8fr;align-items:center;gap:4rem;display:grid}.hero-content{flex-direction:column;gap:1.5rem;display:flex}.hero-badge{color:var(--primary);text-transform:uppercase;letter-spacing:.05em;background:#4f46e512;border:1px solid #4f46e526;border-radius:50px;align-self:flex-start;align-items:center;gap:.5rem;padding:.35rem 1rem;font-size:.85rem;font-weight:600;animation:3s infinite pulse-border;display:flex}.hero-title{letter-spacing:-.02em;color:var(--text-primary);font-size:4rem;font-weight:800;line-height:1.1}.hero-title span{background:linear-gradient(135deg, var(--primary) 0%, var(--secondary) 50%, var(--accent) 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;display:block}.hero-description{color:var(--text-secondary);max-width:35rem;font-size:1.2rem}.hero-cta{gap:1rem;margin-top:1rem;display:flex}.btn{cursor:pointer;transition:var(--transition-normal);border-radius:8px;align-items:center;gap:.5rem;padding:.8rem 1.8rem;font-size:.95rem;font-weight:600;display:inline-flex}.btn-primary{background:linear-gradient(135deg, var(--primary) 0%, var(--secondary) 100%);color:#fff;border:none;box-shadow:0 4px 15px #4f46e540}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 6px 20px #4f46e559}.btn-secondary{color:var(--text-primary);background:#00000008;border:1px solid #00000014}.btn-secondary:hover{background:#0000000f;border-color:#00000026;transform:translateY(-2px)}.hero-visual{justify-content:center;align-items:center;display:flex;position:relative}.avatar-wrapper{background:linear-gradient(135deg, var(--primary) 0%, var(--secondary) 100%);border-radius:24px;width:320px;height:320px;padding:8px;animation:6s ease-in-out infinite float-avatar;position:relative;box-shadow:0 10px 30px #4f46e526}.avatar-img{object-fit:cover;border:4px solid #fff;border-radius:18px;width:100%;height:100%}.avatar-glow{background:linear-gradient(135deg, var(--primary) 0%, var(--secondary) 100%);filter:blur(25px);opacity:.15;z-index:-1;border-radius:40px;position:absolute;inset:-15px}.section-header{text-align:center;flex-direction:column;align-items:center;gap:.5rem;margin-bottom:4rem;display:flex}.section-subtitle{color:var(--primary);text-transform:uppercase;letter-spacing:.15em;font-size:.9rem;font-weight:700}.section-title{letter-spacing:-.02em;color:var(--text-primary);font-size:2.5rem;font-weight:800}.section-divider{background:linear-gradient(90deg, var(--primary) 0%, var(--secondary) 100%);border-radius:2px;width:4rem;height:4px;margin-top:.5rem}.terminal-container{box-shadow:var(--shadow-md);font-family:var(--font-mono);text-align:left;background:#fff;border:1px solid #00000014;border-radius:12px;margin-top:3rem;overflow:hidden}.terminal-header{background:#f1f5f9;border-bottom:1px solid #00000014;justify-content:space-between;align-items:center;padding:.75rem 1rem;display:flex}.terminal-dots{gap:.5rem;display:flex}.dot{border-radius:50%;width:12px;height:12px}.dot-red{background:#ef4444}.dot-yellow{background:#f59e0b}.dot-green{background:#10b981}.terminal-title{color:var(--text-secondary);font-size:.8rem;font-weight:600}.terminal-body{background:#f8fafc;flex-direction:column;gap:.75rem;height:320px;padding:1.5rem;font-size:.9rem;display:flex;overflow-y:auto}.terminal-line{line-height:1.5}.terminal-prompt{color:var(--primary);font-weight:700}.terminal-command{color:var(--text-primary);margin-left:.5rem;font-weight:500}.terminal-output{color:var(--text-secondary);white-space:pre-wrap;margin-top:.25rem}.terminal-input-line{align-items:center;display:flex}.terminal-input{color:var(--text-primary);font-family:var(--font-mono);background:0 0;border:none;outline:none;flex-grow:1;margin-left:.5rem;font-size:.9rem}.about-section{background:#ffffff4d;border-top:1px solid #00000005;padding:6rem 0}.about-grid{grid-template-columns:1fr 1.2fr;align-items:center;gap:4rem;display:grid}.about-visual{position:relative}.tech-wheel{aspect-ratio:1;justify-content:center;align-items:center;width:100%;max-width:400px;margin:0 auto;display:flex;position:relative}.tech-icon-node{width:64px;height:64px;color:var(--primary);box-shadow:var(--shadow-sm);transition:var(--transition-normal);cursor:pointer;background:#fff;border:1px solid #0000000f;border-radius:50%;justify-content:center;align-items:center;display:flex;position:absolute}.tech-icon-node:hover{color:var(--primary);border-color:#4f46e54d;transform:scale(1.15);box-shadow:0 4px 15px #4f46e526}.tech-center{background:radial-gradient(circle, var(--primary-glow) 0%, transparent 70%);width:100px;height:100px;color:var(--primary);border:2px dashed #4f46e533;border-radius:50%;justify-content:center;align-items:center;font-weight:700;animation:20s linear infinite spin-dashed;display:flex}.about-content{flex-direction:column;gap:1.5rem;display:flex}.about-text{color:var(--text-secondary);font-size:1.1rem}.about-stats{grid-template-columns:repeat(3,1fr);gap:2rem;margin-top:1rem;display:grid}.stat-item{background:var(--bg-card);text-align:center;transition:var(--transition-normal);box-shadow:var(--shadow-sm);border:1px solid #0000000d;border-radius:12px;padding:1.5rem}.stat-item:hover{box-shadow:var(--shadow-md);border-color:#4f46e533;transform:translateY(-5px)}.stat-number{background:linear-gradient(135deg, var(--primary) 0%, var(--secondary) 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;font-size:2.25rem;font-weight:800}.stat-label{color:var(--text-secondary);margin-top:.25rem;font-size:.85rem;font-weight:500}.skills-section{padding:6rem 0}.skills-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:2rem;display:grid}.skill-card{background:var(--bg-card);transition:var(--transition-normal);cursor:pointer;box-shadow:var(--shadow-sm);border:1px solid #0000000a;border-radius:16px;padding:2rem;position:relative;overflow:hidden}.skill-card:before{content:"";background:linear-gradient(90deg, var(--primary) 0%, var(--secondary) 100%);opacity:0;width:100%;height:4px;transition:var(--transition-normal);position:absolute;top:0;left:0}.skill-card:hover{background:var(--bg-card-hover);box-shadow:var(--shadow-md);border-color:#4f46e533;transform:translateY(-8px)}.skill-card:hover:before{opacity:1}.skill-icon-box{width:48px;height:48px;color:var(--primary);transition:var(--transition-normal);background:#4f46e512;border-radius:12px;justify-content:center;align-items:center;margin-bottom:1.5rem;display:flex}.skill-card:hover .skill-icon-box{color:var(--secondary);background:#0891b21f}.skill-title{color:var(--text-primary);margin-bottom:.75rem;font-size:1.25rem;font-weight:700}.skill-desc{color:var(--text-secondary);margin-bottom:1.5rem;font-size:.95rem}.skill-meter{background:#0000000d;border-radius:10px;height:6px;position:relative;overflow:hidden}.skill-progress{background:linear-gradient(90deg, var(--primary) 0%, var(--secondary) 100%);border-radius:10px;height:100%;transition:width 1.5s cubic-bezier(.1,1,.1,1)}.projects-section{background:#fff6;padding:6rem 0}.project-filters{flex-wrap:wrap;justify-content:center;gap:1rem;margin-bottom:3rem;display:flex}.filter-btn{color:var(--text-secondary);cursor:pointer;transition:var(--transition-normal);background:#00000008;border:1px solid #00000014;border-radius:30px;padding:.6rem 1.4rem;font-weight:600}.filter-btn:hover,.filter-btn.active{background:var(--primary);color:#fff;border-color:var(--primary);box-shadow:0 4px 12px #4f46e533}.projects-grid{grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:2rem;display:grid}.project-card{background:var(--bg-card);transition:var(--transition-normal);box-shadow:var(--shadow-sm);border:1px solid #0000000a;border-radius:16px;flex-direction:column;display:flex;overflow:hidden}.project-card:hover{box-shadow:var(--shadow-md);border-color:#0891b24d;transform:translateY(-8px)}.project-image-container{background:#f1f5f9;height:200px;position:relative;overflow:hidden}.project-image-placeholder{width:100%;height:100%;color:var(--primary);transition:var(--transition-slow);background:linear-gradient(135deg,#4f46e50a 0%,#0891b20a 100%);justify-content:center;align-items:center;display:flex}.project-card:hover .project-image-placeholder{color:var(--secondary);transform:scale(1.08)}.project-links-overlay{opacity:0;transition:var(--transition-normal);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#f8fafce6;justify-content:center;align-items:center;gap:1.5rem;display:flex;position:absolute;inset:0}.project-image-container:hover .project-links-overlay{opacity:1}.project-overlay-link{background:var(--primary);color:#fff;width:48px;height:48px;transition:var(--transition-normal);box-shadow:var(--shadow-sm);border-radius:50%;justify-content:center;align-items:center;display:flex}.project-overlay-link:hover{background:var(--secondary);transform:scale(1.1);box-shadow:0 4px 12px #0891b24d}.project-body{flex-direction:column;flex-grow:1;gap:.75rem;padding:1.5rem;display:flex}.project-tags{flex-wrap:wrap;gap:.5rem;display:flex}.project-tag{color:var(--secondary);background:#00000008;border:1px solid #0000000d;border-radius:50px;padding:.2rem .6rem;font-size:.75rem;font-weight:600}.project-title{color:var(--text-primary);font-size:1.25rem;font-weight:700}.project-desc{color:var(--text-secondary);flex-grow:1;font-size:.9rem;line-height:1.5}.journey-section{padding:6rem 0}.timeline{max-width:800px;margin:0 auto;position:relative}.timeline:before{content:"";background:linear-gradient(180deg, var(--primary) 0%, var(--secondary) 100%);width:2px;position:absolute;top:0;bottom:0;left:50%;transform:translate(-50%)}.timeline-item{box-sizing:border-box;width:50%;padding:1rem 3rem;position:relative}.timeline-item-left{text-align:right;left:0}.timeline-item-right{text-align:left;left:50%}.timeline-badge{background:var(--bg-deep);border:3px solid var(--primary);z-index:1;width:16px;height:16px;transition:var(--transition-normal);border-radius:50%;position:absolute;top:1.5rem}.timeline-item-left .timeline-badge{right:-8px}.timeline-item-right .timeline-badge{left:-8px}.timeline-item:hover .timeline-badge{border-color:var(--secondary);transform:scale(1.3);box-shadow:0 0 15px #0891b24d}.timeline-content{background:var(--bg-card);transition:var(--transition-normal);cursor:pointer;box-shadow:var(--shadow-sm);border:1px solid #0000000a;border-radius:12px;padding:1.5rem}.timeline-content:hover{box-shadow:var(--shadow-md);border-color:#4f46e533;transform:translateY(-3px)}.timeline-date{color:var(--primary);margin-bottom:.5rem;font-size:.85rem;font-weight:700}.timeline-role{color:var(--text-primary);font-size:1.15rem;font-weight:700}.timeline-company{color:var(--secondary);margin-bottom:.5rem;font-size:.95rem;font-weight:600}.timeline-desc{color:var(--text-secondary);font-size:.9rem}.contact-section{background:#fff6;padding:6rem 0}.contact-grid{grid-template-columns:.9fr 1.1fr;align-items:flex-start;gap:4rem;display:grid}.contact-info{flex-direction:column;gap:2rem;display:flex}.contact-info-card{background:var(--bg-card);box-shadow:var(--shadow-sm);border:1px solid #0000000a;border-radius:16px;flex-direction:column;gap:1.5rem;padding:2rem;display:flex}.contact-item{align-items:flex-start;gap:1rem;display:flex}.contact-icon-box{width:44px;height:44px;color:var(--primary);background:#4f46e512;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.contact-item-details h4{color:var(--text-primary);margin-bottom:.25rem;font-size:1rem;font-weight:600}.contact-item-details p{color:var(--text-secondary);font-size:.9rem}.social-links{gap:1rem;margin-top:1rem;display:flex}.social-icon-btn{width:40px;height:40px;transition:var(--transition-normal);color:var(--text-secondary);background:#00000005;border:1px solid #00000014;border-radius:50%;justify-content:center;align-items:center;display:flex}.social-icon-btn:hover{background:var(--primary);color:#fff;border-color:var(--primary);transform:translateY(-3px);box-shadow:0 4px 10px #4f46e533}.contact-form-container{background:var(--bg-card);box-shadow:var(--shadow-md);border:1px solid #0000000a;border-radius:16px;padding:2.5rem}.contact-form{flex-direction:column;gap:1.5rem;display:flex}.form-group{flex-direction:column;gap:.5rem;display:flex}.form-label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;font-size:.85rem;font-weight:600}.form-input{color:var(--text-primary);font-family:var(--font-sans);transition:var(--transition-fast);background:#fff;border:1px solid #0000001a;border-radius:8px;padding:.8rem 1rem;font-size:.95rem}.form-input:focus{border-color:var(--primary);outline:none;box-shadow:0 0 10px #4f46e51a}textarea.form-input{resize:vertical;min-height:120px}.form-status{border-radius:6px;padding:.75rem 1rem;font-size:.9rem;font-weight:500}.form-status-success{color:#059669;background:#10b98114;border:1px solid #10b98133}.form-status-error{color:#dc2626;background:#ef444414;border:1px solid #ef444433}.footer{text-align:center;color:var(--text-secondary);background:#f1f5f9;border-top:1px solid #0000000d;padding:3rem 0;font-size:.9rem}.footer-content{flex-direction:column;align-items:center;gap:1.5rem;display:flex}.footer-logo{background:linear-gradient(135deg, var(--primary) 0%, var(--secondary) 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;font-size:1.25rem;font-weight:800}.modal-overlay{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:1000;background:#0f172a4d;justify-content:center;align-items:center;padding:1.5rem;animation:.3s ease-out fade-in;display:flex;position:fixed;inset:0}.modal-content{background:#fff;border:1px solid #00000014;border-radius:20px;width:100%;max-width:600px;padding:2.5rem;animation:.3s cubic-bezier(.34,1.56,.64,1) slide-up;position:relative;box-shadow:0 20px 50px #00000026}.modal-close{width:36px;height:36px;color:var(--text-secondary);cursor:pointer;transition:var(--transition-fast);background:#00000008;border:1px solid #00000014;border-radius:50%;justify-content:center;align-items:center;display:flex;position:absolute;top:1.25rem;right:1.25rem}.modal-close:hover{color:#dc2626;background:#ef444414;border-color:#ef444433}@keyframes float-avatar{0%{transform:translateY(0)rotate(0)}50%{transform:translateY(-15px)rotate(1deg)}to{transform:translateY(0)rotate(0)}}@keyframes pulse-border{0%{box-shadow:0 0 #4f46e533}70%{box-shadow:0 0 0 10px #4f46e500}to{box-shadow:0 0 #4f46e500}}@keyframes spin-dashed{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes slide-up{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@media (width<=968px){.hero-grid{text-align:center;grid-template-columns:1fr;gap:3rem}.hero-badge{align-self:center}.hero-cta{justify-content:center}.about-grid{grid-template-columns:1fr;gap:3rem}.timeline:before{left:1.5rem}.timeline-item{width:100%;padding-left:3.5rem;padding-right:0}.timeline-item-left{text-align:left}.timeline-item-right{left:0}.timeline-badge{left:1rem!important}.contact-grid{grid-template-columns:1fr}.nav-links{display:none}.menu-btn{display:block}}
