#grid-canvas[data-astro-cid-oz2goqlp]{position:absolute;top:0;left:0;z-index:0;pointer-events:none}:root{--bg: #030308;--surface: rgba(12, 12, 20, .8);--surface-solid: #0c0c14;--surface-hover: rgba(20, 20, 35, .9);--border: rgba(59, 130, 246, .08);--border-hover: rgba(59, 130, 246, .2);--border-strong: rgba(59, 130, 246, .15);--text: #e2e8f0;--text-muted: #64748b;--accent: #3b82f6;--accent-hover: #60a5fa;--accent-glow: rgba(59, 130, 246, .15);--purple: #8b5cf6;--cyan: #06b6d4;--font-sans: "Inter", system-ui, -apple-system, sans-serif;--font-mono: "JetBrains Mono", "Fira Code", monospace;--max-width: 900px;--glow-sm: 0 0 15px rgba(59,130,246,.1);--glow-md: 0 0 30px rgba(59,130,246,.12), 0 0 60px rgba(139,92,246,.06);--glow-lg: 0 4px 40px rgba(59,130,246,.15), 0 0 80px rgba(139,92,246,.08)}*{margin:0;padding:0;box-sizing:border-box}html{font-family:var(--font-sans);background:var(--bg);color:var(--text);scroll-behavior:smooth}body{min-height:100vh;line-height:1.6;background:var(--bg)}a{color:var(--accent);text-decoration:none;transition:color .2s}a:hover{color:var(--accent-hover)}.container{max-width:var(--max-width);margin:0 auto;padding:0 1.5rem}nav,main,footer{position:relative;z-index:1}nav{position:sticky;top:0;z-index:100;backdrop-filter:blur(20px) saturate(1.3);background:#03030899;border-bottom:1px solid var(--border);padding:.85rem 0}nav .container{display:flex;justify-content:space-between;align-items:center}nav .logo{font-weight:800;font-size:1.3rem;background:linear-gradient(135deg,var(--accent),var(--cyan));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}nav .links{display:flex;gap:1.5rem}nav .links a{color:var(--text-muted);font-size:.85rem;font-weight:500;transition:all .3s;position:relative;padding-bottom:2px}nav .links a:hover{color:var(--text)}nav .links a:after{content:"";position:absolute;bottom:-4px;left:0;width:0;height:2px;background:linear-gradient(90deg,var(--accent),var(--purple));transition:width .3s;border-radius:2px;box-shadow:0 0 8px #3b82f666}nav .links a:hover:after{width:100%}.hero{padding:9rem 0 5rem;text-align:center;position:relative}.hero .hero-greeting{font-family:var(--font-mono);font-size:.85rem;margin-bottom:1.25rem;display:inline-block;padding:.35rem 1rem;border:1px solid var(--border-strong);border-radius:50px;background:var(--surface);backdrop-filter:blur(10px);background:linear-gradient(90deg,var(--accent),var(--cyan));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;font-weight:600}.hero h1{font-size:4rem;font-weight:800;line-height:1.05;margin-bottom:1.25rem;background:linear-gradient(135deg,#fff 0%,#cbd5e1 40%,var(--accent) 80%,var(--cyan) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;letter-spacing:-.02em}.hero .subtitle{font-size:1.1rem;color:var(--text-muted);max-width:520px;margin:0 auto 1.5rem;line-height:1.7}.hero-badges{margin-bottom:2.5rem;text-align:center}.hero-badge{display:inline-block;background:var(--surface);backdrop-filter:blur(12px);border:1px solid var(--border-strong);color:var(--text-muted);padding:.6rem 3rem;border-radius:50px;font-size:.85rem;font-weight:500;letter-spacing:.02em;box-shadow:var(--glow-sm)}.hero .cta-row{display:flex;gap:1rem;flex-wrap:wrap;justify-content:center}.hero .cta-row a{padding:.8rem 2.2rem;border-radius:50px;font-weight:600;font-size:.9rem;transition:all .3s;letter-spacing:.01em}.hero .cta-primary{background:linear-gradient(135deg,var(--accent),var(--purple));color:#fff;box-shadow:0 4px 25px #3b82f659;border:1px solid transparent}.hero .cta-primary:hover{box-shadow:0 6px 35px #3b82f680;transform:translateY(-2px)}.hero .cta-secondary{border:1px solid var(--border-strong);color:var(--text-muted);background:var(--surface);backdrop-filter:blur(10px)}.hero .cta-secondary:hover{border-color:var(--accent);color:var(--text);box-shadow:var(--glow-sm)}section{padding:5rem 0}section h2{font-size:1.8rem;font-weight:700;margin-bottom:.4rem;letter-spacing:-.01em}section .section-sub{color:var(--text-muted);margin-bottom:2.5rem;font-size:.92rem}#skills,#experience,#projects,#contact{border-top:1px solid var(--border);position:relative}#skills:before,#experience:before,#projects:before,#contact:before{content:"";position:absolute;top:-1px;left:50%;transform:translate(-50%);width:120px;height:1px;background:linear-gradient(90deg,transparent,var(--accent),var(--purple),transparent)}.tooltip-wrap{position:relative;display:inline-flex}.tooltip-wrap .tooltip{position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%) translateY(4px);background:var(--surface-solid, #0c0c14);border:1px solid var(--border-strong);border-radius:10px;padding:.6rem .9rem;white-space:nowrap;pointer-events:none;opacity:0;transition:opacity .2s,transform .2s;z-index:50;box-shadow:var(--glow-sm)}.tooltip-wrap:hover .tooltip{opacity:1;transform:translate(-50%) translateY(0)}.tooltip-type{display:inline-flex;align-items:center;gap:.3rem;font-size:.7rem;font-weight:600;color:var(--accent);text-transform:uppercase;letter-spacing:.06em;margin-bottom:.15rem}.tooltip-title{font-size:.8rem;color:var(--text);font-weight:500}.query-section{background:var(--surface);backdrop-filter:blur(16px);border:1px solid var(--border-strong);border-radius:16px;padding:2.5rem;position:relative;overflow:hidden;box-shadow:var(--glow-sm)}.query-section:before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent 10%,var(--accent),var(--cyan),var(--purple),transparent 90%)}.skills-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1rem}.skill-group{background:var(--surface);backdrop-filter:blur(12px);border:1px solid var(--border-strong);border-radius:12px;padding:1.25rem;transition:all .35s cubic-bezier(.25,.46,.45,.94);position:relative;overflow:hidden}.skill-group:before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,var(--accent),var(--cyan));opacity:0;transition:opacity .35s}.skill-group:hover{transform:translateY(-4px);border-color:var(--border-hover);box-shadow:var(--glow-md);background:var(--surface-hover)}.skill-group:hover:before{opacity:1}.skill-group h3{font-size:.78rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.1em;margin-bottom:.75rem}.skill-tags{display:flex;flex-wrap:wrap;gap:.4rem}.skill-tag{background:#3b82f60f;border:1px solid var(--border-strong);color:var(--text);padding:.3rem .7rem;border-radius:6px;font-size:.78rem;font-weight:500;transition:all .3s}.skill-group:hover .skill-tag{border-color:var(--border-hover);background:#3b82f61a}.projects-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.25rem}.project-card{background:var(--surface);backdrop-filter:blur(12px);border:1px solid var(--border-strong);border-radius:14px;padding:1.5rem;transition:all .35s cubic-bezier(.25,.46,.45,.94);position:relative;overflow:hidden}.project-card:after{content:"";position:absolute;inset:0;border-radius:14px;background:linear-gradient(135deg,#3b82f60a,#8b5cf60a);opacity:0;transition:opacity .35s}.project-card:hover{border-color:var(--border-hover);transform:translateY(-4px);box-shadow:var(--glow-lg);background:var(--surface-hover)}.project-card:hover:after{opacity:1}.project-card h3{font-size:1.1rem;margin-bottom:.4rem;position:relative;z-index:1}.project-header{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.4rem;margin-bottom:.5rem;position:relative;z-index:1}.project-header h3{flex:1 1 auto;min-width:0}.status-tags{display:flex;gap:.4rem;flex-shrink:0;flex-wrap:wrap}.project-status{font-size:.68rem;color:#fff;background:linear-gradient(135deg,var(--accent),var(--purple));padding:.22rem .7rem;border-radius:20px;font-weight:600;white-space:nowrap;text-transform:uppercase;letter-spacing:.04em}.project-card p{color:var(--text-muted);font-size:.88rem;margin-bottom:1rem;position:relative;z-index:1;line-height:1.6}.project-card .tags{display:flex;flex-wrap:wrap;gap:.4rem;position:relative;z-index:1}.project-card .tag{background:#3b82f60f;color:var(--accent);padding:.22rem .6rem;border-radius:4px;font-size:.75rem;font-weight:500;border:1px solid var(--border-strong)}.timeline{border-left:2px solid var(--border-strong);padding-left:2rem;display:flex;flex-direction:column;gap:2rem}.timeline-item{position:relative;padding:1.5rem;background:var(--surface);backdrop-filter:blur(12px);border:1px solid var(--border-strong);border-radius:14px;transition:all .35s cubic-bezier(.25,.46,.45,.94)}.timeline-item:hover{border-color:var(--border-hover);box-shadow:var(--glow-md);background:var(--surface-hover);transform:translate(4px)}.timeline-item:before{content:"";position:absolute;left:-2.55rem;top:1.8rem;width:12px;height:12px;background:linear-gradient(135deg,var(--accent),var(--cyan));border-radius:50%;box-shadow:0 0 12px #3b82f666}.timeline-item:after{content:"";position:absolute;left:-1.5rem;top:2.1rem;width:14px;height:2px;background:linear-gradient(90deg,var(--accent),transparent)}.timeline-item h3{font-size:1.05rem}.timeline-item .meta{color:var(--text-muted);font-size:.85rem;margin-bottom:.6rem}.exp-tags{display:flex;flex-wrap:wrap;gap:.35rem;margin-bottom:.75rem}.exp-tags .tag,.exp-tags .skills{background:#3b82f60f;color:var(--accent);padding:.22rem .6rem;border-radius:4px;font-size:.75rem;font-weight:500;border:1px solid var(--border-strong)}.exp-bullets{list-style:none;padding:0}.exp-bullets li{color:var(--text-muted);font-size:.88rem;padding-left:1.2rem;position:relative;margin-bottom:.4rem;line-height:1.65}.exp-bullets li:before{content:"▹";position:absolute;left:0;color:var(--accent)}.paper-link{display:inline-block;margin-top:.6rem;font-size:.85rem;font-weight:600;background:linear-gradient(90deg,var(--accent),var(--cyan));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;transition:opacity .2s}.paper-link:hover{opacity:.75}#contact{text-align:center}.contact-links{display:flex;gap:1rem;flex-wrap:wrap;justify-content:center}.contact-link{padding:.7rem 1.5rem;border:1px solid var(--border-strong);border-radius:50px;color:var(--text-muted);font-size:.9rem;font-weight:500;transition:all .3s;background:var(--surface);backdrop-filter:blur(10px)}.contact-link:hover{border-color:var(--accent);color:var(--accent);box-shadow:var(--glow-md);transform:translateY(-2px)}footer{border-top:1px solid var(--border);padding:2rem 0;text-align:center;color:var(--text-muted);font-size:.85rem}section h2{display:flex;align-items:center;gap:.6rem}section h2 svg{color:var(--accent);flex-shrink:0}.skill-icon{display:inline-flex;color:var(--accent);margin-right:.3rem;vertical-align:middle}.skill-group h3{display:flex;align-items:center;gap:.4rem}.project-icon{color:var(--text-muted);flex-shrink:0;margin-right:.25rem;vertical-align:middle}.project-card h3{display:flex;align-items:center;gap:.35rem}.contact-link{display:inline-flex;align-items:center;gap:.5rem}.contact-link svg{flex-shrink:0}.paper-link{display:inline-flex;align-items:center;gap:.35rem}.hero .cta-row a{display:inline-flex;align-items:center;gap:.5rem}.greeting-icon{display:inline-flex;color:var(--accent);margin-right:.15rem}.hero-badge{display:inline-flex;align-items:center;gap:.5rem}.animate-in{opacity:0;transform:translateY(24px);transition:opacity .6s cubic-bezier(.16,1,.3,1),transform .6s cubic-bezier(.16,1,.3,1)}.animate-in.visible{opacity:1;transform:translateY(0)}.skills-grid .animate-in:nth-child(1){transition-delay:0s}.skills-grid .animate-in:nth-child(2){transition-delay:.08s}.skills-grid .animate-in:nth-child(3){transition-delay:.16s}.skills-grid .animate-in:nth-child(4){transition-delay:.24s}.skills-grid .animate-in:nth-child(5){transition-delay:.32s}.projects-grid .animate-in:nth-child(1){transition-delay:0s}.projects-grid .animate-in:nth-child(2){transition-delay:.1s}.projects-grid .animate-in:nth-child(3){transition-delay:.2s}.projects-grid .animate-in:nth-child(4){transition-delay:.3s}.timeline .animate-in:nth-child(1){transition-delay:0s}.timeline .animate-in:nth-child(2){transition-delay:.12s}.tilt-card{transform-style:preserve-3d;perspective:800px}@media(max-width:640px){.hero h1{font-size:2.5rem}.hero{padding:6rem 0 3rem}section{padding:3.5rem 0}.hero-badge{padding:.5rem 1.5rem}.timeline{padding-left:1.5rem}.timeline-item{padding:1.25rem}}
