*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--bg:#f8fafc;--bg-2:#f1f5f9;--bg-card:#fff;--bg-card-hover:#fff;--border:#00000014;--border-hover:#3b82f666;--text:#334155;--text-muted:#475569;--text-faint:#94a3b8;--accent:#3b82f6;--accent-2:#8b5cf6;--accent-green:#10b981;--accent-orange:#f59e0b;--glow:#3b82f626;--radius:12px;--radius-lg:20px;--font:"Inter", sans-serif;--font-mono:"Fira Code", monospace;--heading:#0f172a}html{scroll-behavior:smooth}body{font-family:var(--font);background:var(--bg);color:var(--text);line-height:1.7;overflow-x:hidden}a{color:inherit;text-decoration:none}strong{color:var(--heading);font-weight:600}ul{list-style:none}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:var(--bg)}::-webkit-scrollbar-thumb{background:#2d3748;border-radius:3px}.container{max-width:1100px;margin:0 auto;padding:0 24px}.gradient-text{background:linear-gradient(135deg, var(--accent) 0%, var(--accent-2) 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}section{padding:96px 0}.section-header{margin-bottom:56px}.section-header.centered{text-align:center}.section-tag{font-family:var(--font-mono);color:var(--accent);letter-spacing:.1em;margin-bottom:12px;font-size:.8rem;display:inline-block}.section-header h2{color:var(--heading);letter-spacing:-.02em;font-size:clamp(1.8rem,4vw,2.6rem);font-weight:800}.section-sub{color:var(--text-muted);margin-top:10px;font-size:.95rem}.section-sub a{color:var(--accent);transition:opacity .2s}.section-sub a:hover{opacity:.7}.btn{cursor:pointer;border:none;border-radius:50px;align-items:center;gap:8px;padding:12px 28px;font-size:.9rem;font-weight:600;transition:all .25s;display:inline-flex}.btn-primary{background:linear-gradient(135deg, var(--accent) 0%, var(--accent-2) 100%);color:#fff}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 8px 30px #63b3ed66}.btn-ghost{color:var(--text);border:1px solid var(--border);background:0 0}.btn-ghost:hover{border-color:var(--accent);color:var(--accent);transform:translateY(-2px)}#navbar{z-index:100;padding:16px 0;transition:all .3s;position:fixed;top:0;left:0;right:0}#navbar.scrolled{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-bottom:1px solid var(--border);background:#ffffffeb;padding:12px 0}.nav-inner{justify-content:space-between;align-items:center;max-width:1100px;margin:0 auto;padding:0 24px;display:flex}.nav-logo{color:var(--heading);letter-spacing:-.03em;font-size:1.4rem;font-weight:800}.dot{color:var(--accent)}.nav-links{align-items:center;gap:8px;display:flex}.nav-links a{color:var(--text-muted);border-radius:6px;padding:6px 14px;font-size:.85rem;font-weight:500;transition:all .2s}.nav-links a:hover,.nav-links a.active{color:var(--heading)}.nav-cta{background:linear-gradient(135deg, var(--accent), var(--accent-2))!important;color:#fff!important;font-weight:600!important}.mobile-menu-btn{cursor:pointer;background:0 0;border:none;flex-direction:column;gap:5px;padding:4px;display:none}.mobile-menu-btn span{background:var(--text);border-radius:2px;width:22px;height:2px;transition:all .3s;display:block}.mobile-menu{border-top:1px solid var(--border);background:#fffffffa;flex-direction:column;gap:4px;padding:12px 24px;display:none}.mobile-menu a{color:var(--text-muted);border-bottom:1px solid var(--border);padding:10px 0;font-weight:500;transition:color .2s}.mobile-menu a:hover{color:var(--heading)}.mobile-menu.open{display:flex}#hero{align-items:center;min-height:100vh;padding:120px 0 80px;display:flex;position:relative;overflow:hidden}.hero-bg{pointer-events:none;position:absolute;inset:0}.grid-overlay{background-image:linear-gradient(#00000008 1px,#0000 1px),linear-gradient(90deg,#00000008 1px,#0000 1px);background-size:60px 60px;position:absolute;inset:0}.glow{filter:blur(120px);pointer-events:none;border-radius:50%;position:absolute}.glow-1{background:#3b82f626;width:600px;height:600px;top:-200px;left:-100px}.glow-2{background:#8b5cf626;width:400px;height:400px;bottom:0;right:-100px}.hero-content{z-index:1;max-width:1100px;margin:0 auto;padding:0 24px;position:relative}.hero-badge{color:var(--accent-green);letter-spacing:.04em;background:#48bb781a;border:1px solid #48bb7840;border-radius:50px;align-items:center;gap:8px;margin-bottom:28px;padding:6px 16px;font-size:.78rem;font-weight:600;display:inline-flex}.badge-dot{background:var(--accent-green);border-radius:50%;width:6px;height:6px;animation:2s infinite pulse}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(1.4)}}.hero-name{letter-spacing:-.04em;color:var(--heading);margin-bottom:16px;font-size:clamp(3rem,8vw,6.5rem);font-weight:800;line-height:1}.hero-title{color:var(--text-muted);margin-bottom:4px;font-size:clamp(1rem,2.5vw,1.4rem);font-weight:600}.hero-subtitle{font-family:var(--font-mono);color:var(--accent);opacity:.8;margin-bottom:28px;font-size:.9rem}.hero-summary{max-width:580px;color:var(--text-muted);margin-bottom:36px;font-size:1.05rem;line-height:1.75}.hero-summary strong{color:var(--text)}.hero-cta{flex-wrap:wrap;gap:12px;margin-bottom:56px;display:flex}.hero-stats{flex-wrap:wrap;align-items:center;gap:32px;display:flex}.stat{flex-direction:column;display:flex}.stat-num{color:var(--heading);letter-spacing:-.03em;font-size:2rem;font-weight:800;line-height:1}.stat-label{color:var(--text-faint);text-transform:uppercase;letter-spacing:.08em;margin-top:4px;font-size:.72rem}.stat-divider{background:var(--border);width:1px;height:40px}.scroll-indicator{color:var(--text-faint);letter-spacing:.12em;text-transform:uppercase;flex-direction:column;align-items:center;gap:8px;font-size:.7rem;animation:1s 1s backwards fadeInUp;display:flex;position:absolute;bottom:32px;left:50%;transform:translate(-50%)}.scroll-line{background:linear-gradient(to bottom, var(--text-faint), transparent);width:1px;height:40px;animation:2s infinite scrollAnim}@keyframes scrollAnim{0%{opacity:1;transform:scaleY(1)translateY(0)}to{opacity:0;transform:scaleY(.5)translateY(20px)}}@keyframes fadeInUp{0%{opacity:0;transform:translate(-50%,20px)}to{opacity:1;transform:translate(-50%)}}#about{background:var(--bg-2)}.about-grid{grid-template-columns:1fr 380px;align-items:start;gap:48px;display:grid}.about-text p{color:var(--text-muted);margin-bottom:18px;font-size:1rem;line-height:1.8}.about-text p strong{color:var(--text)}.about-links{flex-wrap:wrap;gap:12px;margin-top:28px;display:flex}.social-link{border:1px solid var(--border);color:var(--text-muted);border-radius:8px;align-items:center;gap:8px;padding:8px 18px;font-size:.85rem;font-weight:500;transition:all .2s;display:inline-flex}.social-link svg{width:16px;height:16px}.social-link:hover{border-color:var(--accent);color:var(--accent);transform:translateY(-2px)}.about-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:28px;position:sticky;top:80px}.info-block{margin-bottom:24px}.info-item{border-bottom:1px solid var(--border);grid-template-columns:100px 1fr;align-items:baseline;gap:16px;padding:12px 0;display:grid}.info-item:last-child{border-bottom:none}.info-label{text-transform:uppercase;letter-spacing:.1em;color:var(--text-faint);font-size:.7rem;font-weight:600}.info-val{color:var(--text);font-size:.9rem}.info-val a{color:var(--accent)}.info-val a:hover{text-decoration:underline}#certifications{background:var(--bg)}.certs-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px;display:grid}.cert-badge{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;align-items:flex-start;gap:8px;padding:24px;text-decoration:none;transition:all .3s;display:flex}.cert-badge:hover{border-color:#3b82f64d;transform:translateY(-4px);box-shadow:0 12px 40px #0000000f}.cert-icon{font-size:1.8rem}.cert-arrow{color:var(--text-faint);font-size:1.2rem;transition:color .2s,transform .2s}.cert-badge:hover .cert-arrow{color:var(--accent);transform:translate(2px,-2px)}.cert-card-top{justify-content:space-between;align-items:center;width:100%;margin-bottom:4px;display:flex}.cert-name{color:var(--heading);margin-bottom:4px;font-size:.95rem;font-weight:700}.cert-sub{color:var(--text-muted);font-size:.72rem}#experience{background:var(--bg)}.timeline{padding-left:32px;position:relative}.timeline:before{content:"";background:linear-gradient(to bottom, var(--accent), var(--accent-2), transparent);width:2px;position:absolute;top:8px;bottom:0;left:0}.timeline-item{opacity:0;margin-bottom:48px;animation:.6s forwards slideIn;position:relative;transform:translate(-20px)}.timeline-item:first-child{animation-delay:.1s}.timeline-item:nth-child(2){animation-delay:.2s}.timeline-item:nth-child(3){animation-delay:.3s}@keyframes slideIn{to{opacity:1;transform:translate(0)}}.timeline-marker{background:var(--accent);border:2px solid #fff;border-radius:50%;width:12px;height:12px;position:absolute;top:20px;left:-37px;box-shadow:0 0 12px #63b3ed80}.timeline-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:32px;transition:border-color .3s,transform .3s}.timeline-card:hover{border-color:#63b3ed33;transform:translate(4px)}.job-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:16px;display:flex}.job-title{color:var(--heading);margin-bottom:4px;font-size:1.2rem;font-weight:700}.job-company{color:var(--accent);font-size:.95rem;font-weight:500}.job-meta{color:var(--text-faint);margin-top:4px;font-size:.8rem}.active-badge{background:linear-gradient(135deg, var(--accent-green), #38a169);color:#fff;white-space:nowrap;border-radius:50px;padding:4px 12px;font-size:.7rem;font-weight:700}.job-project{font-family:var(--font-mono);color:var(--text-faint);border-left:2px solid var(--accent);background:#00000008;border-radius:6px;margin-bottom:14px;padding:8px 14px;font-size:.78rem}.job-stack{flex-wrap:wrap;gap:6px;margin-bottom:24px;display:flex}.job-stack span{color:var(--accent);font-size:.7rem;font-weight:500;font-family:var(--font-mono);background:#63b3ed14;border:1px solid #63b3ed26;border-radius:4px;padding:3px 10px}.achievements{flex-direction:column;gap:20px;display:flex}.ach-label{text-transform:uppercase;letter-spacing:.12em;border-radius:4px;margin-bottom:10px;padding:3px 10px;font-size:.65rem;font-weight:700;display:inline-block}.ach-label.ai{color:var(--accent-2);background:#9f7aea26;border:1px solid #9f7aea33}.ach-label.arch{color:var(--accent);background:#63b3ed1a;border:1px solid #63b3ed33}.ach-label.perf{color:var(--accent-green);background:#48bb781a;border:1px solid #48bb7833}.ach-label.lead{color:var(--accent-orange);background:#ed89361a;border:1px solid #ed893633}.achievement-group ul{flex-direction:column;gap:8px;display:flex}.achievement-group li{color:var(--text-muted);padding-left:16px;font-size:.88rem;line-height:1.6;position:relative}.achievement-group li:before{content:"▸";color:var(--text-faint);font-size:.7rem;position:absolute;top:2px;left:0}.achievement-group li strong{color:var(--text)}.simple-achievements{flex-direction:column;gap:10px;display:flex}.simple-achievements li{color:var(--text-muted);padding-left:20px;font-size:.88rem;line-height:1.6;position:relative}.simple-achievements li:before{content:"▸";color:var(--text-faint);font-size:.7rem;position:absolute;top:2px;left:0}.simple-achievements li strong{color:var(--text)}#skills{background:var(--bg-2)}.skills-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px;display:grid}.skill-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:24px;transition:all .3s}.skill-card:hover{border-color:#63b3ed40;transform:translateY(-4px);box-shadow:0 12px 40px #0000000f}.skill-icon{margin-bottom:12px;font-size:1.8rem}.skill-card h3{color:var(--heading);margin-bottom:14px;font-size:.95rem;font-weight:700}.skill-tags{flex-wrap:wrap;gap:6px;display:flex}.skill-tags span{color:var(--text-muted);border:1px solid var(--border);background:#0000000a;border-radius:4px;padding:4px 10px;font-size:.72rem;transition:all .2s}.skill-card:hover .skill-tags span{color:var(--text);border-color:#63b3ed26}#oss{background:var(--bg)}.oss-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px;display:grid}.oss-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;padding:24px;transition:all .3s;display:flex}.oss-card:hover{border-color:#63b3ed4d;transform:translateY(-4px);box-shadow:0 12px 40px #0000000f}.oss-card-top{justify-content:space-between;align-items:center;margin-bottom:14px;display:flex}.oss-icon{font-size:1.8rem}.oss-arrow{color:var(--text-faint);font-size:1.2rem;transition:color .2s,transform .2s}.oss-card:hover .oss-arrow{color:var(--accent);transform:translate(2px,-2px)}.oss-card h3{color:var(--heading);margin-bottom:8px;font-size:1rem;font-weight:700}.oss-card p{color:var(--text-muted);flex:1;font-size:.85rem;line-height:1.6}.oss-lang{color:var(--text-faint);font-size:.75rem;font-family:var(--font-mono);align-items:center;gap:8px;margin-top:16px;display:flex}.lang-dot{border-radius:50%;flex-shrink:0;width:10px;height:10px}.lang-dot.python{background:#3572a5}.lang-dot.ts{background:#3178c6}.lang-dot.js{background:#f7df1e}.lang-dot.cs{background:#178600}.lang-dot.html{background:#e34c26}#writing{background:var(--bg-2)}.articles-list{flex-direction:column;gap:16px;display:flex}.article-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;gap:8px;padding:24px 28px;transition:all .3s;display:flex}.article-card:hover{border-color:#63b3ed40;transform:translate(6px)}.article-meta{align-items:center;gap:12px;display:flex}.article-tag{text-transform:uppercase;letter-spacing:.1em;color:var(--accent);background:#63b3ed1a;border:1px solid #63b3ed33;border-radius:4px;padding:3px 10px;font-size:.67rem;font-weight:700}.article-date{color:var(--text-faint);font-size:.8rem;font-family:var(--font-mono)}.article-card h3{color:var(--heading);font-size:1rem;font-weight:600;line-height:1.4}.article-card p{color:var(--text-muted);font-size:.85rem}.read-more{color:var(--text-faint);margin-top:4px;font-size:.8rem;transition:color .2s}.article-card:hover .read-more{color:var(--accent)}#contact{background:var(--bg);position:relative;overflow:hidden}.contact-inner{position:relative}.contact-glow{pointer-events:none;background:radial-gradient(circle,#63b3ed0d,#0000 70%);width:600px;height:600px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.contact-desc{color:var(--text-muted);max-width:500px;margin:16px auto 0;font-size:1rem;line-height:1.7}.contact-cards{flex-wrap:wrap;justify-content:center;gap:16px;margin-top:48px;display:flex}.contact-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);text-align:center;flex-direction:column;align-items:center;gap:8px;min-width:200px;padding:28px 32px;transition:all .3s;display:flex}.contact-card:hover{border-color:#63b3ed59;transform:translateY(-6px);box-shadow:0 20px 50px #00000014,0 0 0 1px #63b3ed1a}.contact-icon{font-size:2rem}.contact-label{text-transform:uppercase;letter-spacing:.1em;color:var(--text-faint);font-size:.72rem;font-weight:700}.contact-val{color:var(--text-muted);font-size:.85rem;font-family:var(--font-mono)}footer{border-top:1px solid var(--border);background:var(--bg);padding:32px 0}.footer-inner{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;display:flex}.footer-logo{color:var(--heading);font-size:1.2rem;font-weight:800}.footer-text{color:var(--text-faint);font-size:.8rem}.footer-links{gap:20px;display:flex}.footer-links a{color:var(--text-faint);font-size:.8rem;transition:color .2s}.footer-links a:hover{color:var(--accent)}.reveal{opacity:0;transition:opacity .7s,transform .7s;transform:translateY(24px)}.reveal.visible{opacity:1;transform:translateY(0)}@media (width<=768px){section{padding:64px 0}.nav-links{display:none}.mobile-menu-btn{display:flex}.about-grid{grid-template-columns:1fr}.about-card{position:static}.hero-stats{gap:20px}.stat-divider{height:30px}.skills-grid{grid-template-columns:1fr 1fr}.oss-grid{grid-template-columns:1fr}.footer-inner{text-align:center;flex-direction:column}.contact-cards{flex-direction:column;align-items:center}}@media (width<=480px){.skills-grid{grid-template-columns:1fr}.hero-stats{flex-direction:column;gap:12px}.stat-divider{display:none}}
