@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800;900&display=swap";
:root{--bg-primary:#050508;--bg-secondary:#0a0a12;--bg-surface:#10101c;--bg-card:#10101c99;--bg-glass:#ffffff08;--border-glass:#ffffff0f;--border-glow:#2563eb4d;--accent-primary:#2563eb;--accent-secondary:#06b6d4;--accent-tertiary:#3b82f6;--accent-gradient:linear-gradient(135deg, #2563eb, #06b6d4, #3b82f6);--accent-gradient-2:linear-gradient(135deg, #1d4ed8, #2563eb, #60a5fa);--text-primary:#fafafa;--text-secondary:#a1a1aa;--text-muted:#52525b;--text-gradient:linear-gradient(135deg, #e4e4e7 0%, #2563eb 50%, #38bdf8 100%);--font-family:"Inter", -apple-system, BlinkMacSystemFont, sans-serif;--transition-fast:.2s cubic-bezier(.4, 0, .2, 1);--transition-smooth:.4s cubic-bezier(.4, 0, .2, 1);--transition-spring:.6s cubic-bezier(.34, 1.56, .64, 1);--radius-sm:8px;--radius-md:12px;--radius-lg:20px;--radius-xl:28px;--shadow-glow:0 0 40px #2563eb26;--shadow-card:0 4px 30px #0000004d}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;scrollbar-width:thin;scrollbar-color:var(--accent-primary) var(--bg-primary)}body{font-family:var(--font-family);background:var(--bg-primary);color:var(--text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.7;overflow-x:hidden}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:var(--bg-primary)}::-webkit-scrollbar-thumb{background:var(--accent-primary);border-radius:3px}a{color:inherit;text-decoration:none}button{cursor:pointer;font-family:inherit}img{max-width:100%;display:block}.section{max-width:1200px;margin:0 auto;padding:120px 24px;position:relative}.section-header{text-align:center;margin-bottom:80px}.section-title{background:var(--text-gradient);-webkit-text-fill-color:transparent;letter-spacing:-.02em;-webkit-background-clip:text;background-clip:text;margin-bottom:16px;font-size:clamp(2.5rem,5vw,4rem);font-weight:800}.section-subtitle{color:var(--text-secondary);font-size:1.1rem;font-weight:400}.glass{background:var(--bg-glass);-webkit-backdrop-filter:blur(20px);border:1px solid var(--border-glass);border-radius:var(--radius-lg)}.glass-card{background:var(--bg-card);-webkit-backdrop-filter:blur(16px);border:1px solid var(--border-glass);border-radius:var(--radius-lg);transition:border-color var(--transition-smooth), box-shadow var(--transition-smooth), transform var(--transition-smooth)}.glass-card:hover{border-color:var(--border-glow);box-shadow:var(--shadow-glow);transform:translateY(-4px)}.navbar{z-index:1000;transition:all var(--transition-smooth);padding:16px 32px;position:fixed;top:0;left:0;right:0}.navbar.scrolled{-webkit-backdrop-filter:blur(24px);border-bottom:1px solid var(--border-glass);background:#050508cc;padding:12px 32px}.navbar-inner{justify-content:space-between;align-items:center;max-width:1200px;margin:0 auto;display:flex}.navbar-logo{letter-spacing:-.02em;background:var(--accent-gradient);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-size:1.4rem;font-weight:700}.navbar-links{align-items:center;gap:32px;list-style:none;display:flex}.navbar-links a{color:var(--text-secondary);transition:color var(--transition-fast);font-size:.9rem;font-weight:500;position:relative}.navbar-links a:after{content:"";background:var(--accent-gradient);width:0;height:2px;transition:width var(--transition-smooth);border-radius:1px;position:absolute;bottom:-4px;left:0}.navbar-links a:hover{color:var(--text-primary)}.navbar-links a:hover:after{width:100%}.navbar-links a.active{color:var(--accent-primary)}.navbar-links a.active:after{width:100%}.lang-toggle{background:var(--bg-glass);border:1px solid var(--border-glass);color:var(--text-secondary);border-radius:var(--radius-sm);letter-spacing:.05em;transition:all var(--transition-fast);padding:6px 14px;font-size:.8rem;font-weight:600}.lang-toggle:hover{color:var(--accent-primary);border-color:var(--border-glow)}.hamburger{background:0 0;border:none;flex-direction:column;gap:5px;padding:4px;display:none}.hamburger span{background:var(--text-primary);width:24px;height:2px;transition:all var(--transition-fast);border-radius:1px;display:block}.hamburger.open span:first-child{transform:rotate(45deg)translate(5px,5px)}.hamburger.open span:nth-child(2){opacity:0}.hamburger.open span:nth-child(3){transform:rotate(-45deg)translate(5px,-5px)}.mobile-menu{-webkit-backdrop-filter:blur(30px);z-index:999;background:#050508f2;flex-direction:column;justify-content:center;align-items:center;gap:40px;display:none;position:fixed;inset:0}.mobile-menu.open{display:flex}.mobile-menu a{color:var(--text-secondary);transition:color var(--transition-fast);font-size:1.8rem;font-weight:600}.mobile-menu a:hover{color:var(--accent-primary)}.cursor-glow{pointer-events:none;z-index:9999;will-change:transform;background:radial-gradient(circle,#2563eb14 0%,#0000 70%);border-radius:50%;width:400px;height:400px;position:fixed;top:0;left:0}.cursor-trail{pointer-events:none;z-index:9998;will-change:transform;background:radial-gradient(circle,#38bdf80a 0%,#0000 70%);border-radius:50%;width:600px;height:600px;position:fixed;top:0;left:0}.scroll-progress-bar{background:var(--accent-gradient);transform-origin:0;z-index:1001;height:3px;position:fixed;top:0;left:0;right:0}.grid-bg-canvas{pointer-events:none;z-index:0;will-change:transform;width:100%;height:100%;position:fixed;top:0;left:0;transform:translate(0,0)}.section-divider{background:linear-gradient(90deg, transparent, var(--accent-primary), var(--accent-tertiary), transparent);opacity:.3;width:100%;max-width:200px;height:1px;margin:0 auto}.hero{justify-content:center;align-items:center;min-height:100vh;padding:0 24px;display:flex;position:relative;overflow:hidden}.hero-content{text-align:center;z-index:2;position:relative}.hero-badge{border-radius:var(--radius-xl);color:var(--accent-secondary);letter-spacing:.02em;background:#2563eb14;border:1px solid #2563eb33;align-items:center;gap:8px;margin-bottom:24px;padding:8px 20px;font-size:.9rem;font-weight:500;display:inline-flex}.hero-badge-dot{background:#22c55e;border-radius:50%;width:8px;height:8px;animation:2s ease-in-out infinite pulse-dot}.hero-name{letter-spacing:-.04em;perspective:500px;margin-bottom:20px;font-size:clamp(3.5rem,10vw,8rem);font-weight:900;line-height:1.05}.hero-name-line{display:block}.hero-letter{display:inline-block}.hero-name-gradient{background:var(--accent-gradient);-webkit-text-fill-color:transparent;background-size:200% 200%;-webkit-background-clip:text;background-clip:text;animation:6s infinite gradientShift}.hero-typing-wrapper{color:var(--text-secondary);justify-content:center;align-items:center;gap:2px;min-height:2em;margin-bottom:48px;font-size:clamp(1.1rem,2.5vw,1.5rem);font-weight:400;display:flex}.hero-typed-text{color:var(--text-secondary)}.hero-cursor{color:var(--accent-primary);font-weight:300;animation:1s step-end infinite blink}.btn-glow{box-shadow:0 0 20px #2563eb33}.btn-shine{background:linear-gradient(90deg,#0000,#ffffff26,#0000);width:100%;height:100%;animation:3s ease-in-out infinite shine;position:absolute;top:0;left:-100%}.hero-buttons{flex-wrap:wrap;justify-content:center;gap:16px;display:flex}.btn-primary{background:var(--accent-gradient-2);color:#fff;border-radius:var(--radius-xl);transition:all var(--transition-smooth);border:none;padding:14px 36px;font-size:1rem;font-weight:600;position:relative;overflow:hidden}.btn-primary:before{content:"";background:linear-gradient(135deg,#0000,#ffffff26,#0000);transition:transform .6s;position:absolute;inset:0;transform:translate(-100%)}.btn-primary:hover:before{transform:translate(100%)}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 8px 30px #2563eb66}.btn-secondary{color:var(--text-primary);border:1px solid var(--border-glass);border-radius:var(--radius-xl);transition:all var(--transition-smooth);background:0 0;padding:14px 36px;font-size:1rem;font-weight:600}.btn-secondary:hover{border-color:var(--accent-primary);background:#8b5cf614;transform:translateY(-2px)}.hero-scroll{z-index:2;position:absolute;bottom:40px;left:50%;transform:translate(-50%)}.scroll-indicator{border:2px solid var(--text-muted);border-radius:12px;justify-content:center;width:24px;height:40px;padding-top:8px;display:flex}.scroll-dot{background:var(--accent-primary);border-radius:2px;width:4px;height:8px;animation:1.8s ease-in-out infinite scrollDown}.orb-container{z-index:0;position:absolute;inset:0;overflow:hidden}.orb{filter:blur(100px);opacity:.25;border-radius:50%;animation:10s ease-in-out infinite float;position:absolute}.orb-1{background:var(--accent-primary);width:600px;height:600px;animation-delay:0s;top:-15%;right:-15%}.orb-2{background:var(--accent-tertiary);width:500px;height:500px;animation-delay:-3s;bottom:-15%;left:-15%}.orb-3{background:var(--accent-secondary);width:350px;height:350px;animation-delay:-5s;top:40%;left:25%}.orb-4{opacity:.15;background:#0ea5e9;width:250px;height:250px;animation-delay:-7s;bottom:30%;right:20%}.about-content{grid-template-columns:1fr 1fr;align-items:center;gap:60px;display:grid}.about-text p{color:var(--text-secondary);margin-bottom:32px;font-size:1.15rem;line-height:2}.about-word{transition:opacity .3s;display:inline}.about-stats{grid-template-columns:1fr 1fr;gap:20px;display:grid}.stat-card{text-align:center;padding:28px}.stat-number{background:var(--accent-gradient);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-size:2.5rem;font-weight:800;line-height:1.1}.stat-label{color:var(--text-secondary);margin-top:8px;font-size:.85rem;font-weight:500}.skills-grid{grid-template-columns:repeat(2,1fr);gap:24px;display:grid}.skill-category{padding:32px}.skill-category-header{align-items:center;gap:12px;margin-bottom:24px;display:flex}.skill-category-icon{font-size:1.5rem}.skill-category-title{color:var(--text-primary);font-size:1.2rem;font-weight:700}.skill-tags{flex-wrap:wrap;gap:10px;display:flex}.skill-tag{border-radius:var(--radius-sm);color:var(--text-secondary);transition:all var(--transition-fast);background:#2563eb14;border:1px solid #2563eb26;padding:8px 16px;font-size:.85rem;font-weight:500}.skill-tag:hover{color:var(--accent-secondary);border-color:var(--accent-primary);background:#2563eb26;transform:translateY(-2px)}.project-filters{flex-wrap:wrap;justify-content:center;gap:10px;margin-bottom:48px;display:flex}.filter-btn{border:1px solid var(--border-glass);color:var(--text-secondary);border-radius:var(--radius-xl);transition:all var(--transition-fast);background:0 0;padding:8px 20px;font-size:.85rem;font-weight:500}.filter-btn:hover,.filter-btn.active{background:var(--accent-primary);border-color:var(--accent-primary);color:#fff}.projects-grid{grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:24px;display:grid}.project-card{flex-direction:column;gap:16px;padding:28px;display:flex}.project-card-header{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.project-name{color:var(--text-primary);font-size:1.15rem;font-weight:700}.project-language{border-radius:var(--radius-sm);white-space:nowrap;padding:4px 12px;font-size:.75rem;font-weight:600}.project-description{color:var(--text-secondary);flex-grow:1;font-size:.9rem;line-height:1.6}.project-meta{color:var(--text-muted);align-items:center;gap:20px;font-size:.8rem;display:flex}.project-meta-item{align-items:center;gap:4px;display:flex}.project-link{color:var(--accent-primary);transition:color var(--transition-fast);align-items:center;gap:8px;margin-top:auto;font-size:.9rem;font-weight:500;display:inline-flex}.project-link:hover{color:var(--accent-secondary)}.project-link svg{transition:transform var(--transition-fast)}.project-link:hover svg{transform:translate(4px)}.projects-loading,.projects-error{text-align:center;color:var(--text-secondary);padding:60px 20px;font-size:1.1rem}.timeline-container{max-width:800px;margin:0 auto;position:relative}.timeline-line{background:linear-gradient(to bottom, var(--accent-primary), var(--accent-tertiary), transparent);width:2px;position:absolute;top:0;bottom:0;left:50%;transform:translate(-50%)}.timeline-item{align-items:flex-start;padding:0 0 60px;display:flex;position:relative}.timeline-item:nth-child(odd){text-align:right;flex-direction:row;padding-right:calc(50% + 40px)}.timeline-item:nth-child(2n){text-align:left;flex-direction:row-reverse;padding-left:calc(50% + 40px)}.timeline-dot{background:var(--accent-primary);border:3px solid var(--bg-primary);z-index:2;border-radius:50%;width:16px;height:16px;position:absolute;top:8px;left:50%;transform:translate(-50%);box-shadow:0 0 20px #2563eb66}.timeline-card{width:100%;padding:24px}.timeline-date{color:var(--accent-primary);letter-spacing:.05em;margin-bottom:8px;font-size:.8rem;font-weight:600}.timeline-title{color:var(--text-primary);margin-bottom:4px;font-size:1.15rem;font-weight:700}.timeline-subtitle{color:var(--accent-secondary);margin-bottom:12px;font-size:.9rem;font-weight:500}.timeline-desc{color:var(--text-secondary);font-size:.9rem;line-height:1.6}.contact-grid{grid-template-columns:1fr 1fr;align-items:start;gap:48px;display:grid}.contact-form{flex-direction:column;gap:20px;display:flex}.form-group{flex-direction:column;gap:8px;display:flex}.form-label{color:var(--text-secondary);font-size:.85rem;font-weight:600}.form-input,.form-textarea{background:var(--bg-glass);border:1px solid var(--border-glass);border-radius:var(--radius-md);color:var(--text-primary);transition:border-color var(--transition-fast), box-shadow var(--transition-fast);outline:none;padding:14px 18px;font-family:inherit;font-size:.95rem}.form-input:focus,.form-textarea:focus{border-color:var(--accent-primary);box-shadow:0 0 20px #2563eb1a}.form-textarea{resize:vertical;min-height:140px}.contact-info{flex-direction:column;gap:24px;display:flex}.contact-info-text{color:var(--text-secondary);font-size:1rem;line-height:1.7}.social-links{gap:16px;display:flex}.social-link{border-radius:var(--radius-md);background:var(--bg-glass);border:1px solid var(--border-glass);width:48px;height:48px;color:var(--text-secondary);transition:all var(--transition-fast);justify-content:center;align-items:center;display:flex}.social-link:hover{border-color:var(--accent-primary);color:var(--accent-primary);transform:translateY(-4px);box-shadow:0 8px 25px #2563eb33}.footer{border-top:1px solid var(--border-glass);text-align:center;padding:40px 24px}.footer-inner{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;max-width:1200px;margin:0 auto;display:flex}.footer-text{color:var(--text-muted);font-size:.85rem}.footer-heart{color:#ef4444}.lang-javascript{color:#f1e05a;background:#f1e05a26}.lang-typescript{color:#3178c6;background:#3178c626}.lang-python{color:#3572a5;background:#3572a526}.lang-java{color:#b07219;background:#b0721926}.lang-html{color:#e34c26;background:#e34c2626}.lang-css{color:#563d7c;background:#563d7c26}.lang-shell{color:#89e051;background:#89e05126}.lang-default{color:var(--accent-primary);background:#2563eb26}@keyframes float{0%,to{transform:translate(0)scale(1)}33%{transform:translate(30px,-30px)scale(1.05)}66%{transform:translate(-20px,20px)scale(.95)}}@keyframes scrollDown{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(12px)}}@keyframes gradientShift{0%{background-position:0%}50%{background-position:100%}to{background-position:0%}}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}@keyframes pulse-dot{0%,to{box-shadow:0 0 #22c55e66}50%{box-shadow:0 0 0 8px #22c55e00}}@keyframes shine{0%{left:-100%}50%,to{left:200%}}@media (max-width:1024px){.skills-grid{grid-template-columns:1fr 1fr}.about-content{gap:40px}}@media (max-width:768px){.section{padding:80px 20px}.section-header{margin-bottom:48px}.navbar-links{display:none}.hamburger{display:flex}.about-content,.skills-grid,.projects-grid,.contact-grid{grid-template-columns:1fr}.timeline-line{left:20px}.timeline-item:nth-child(odd),.timeline-item:nth-child(2n){text-align:left;flex-direction:row;padding-left:56px;padding-right:0}.timeline-dot{left:20px}.footer-inner{flex-direction:column;justify-content:center}.orb-container{display:none!important}}@media (max-width:480px){.hero-buttons{flex-direction:column;align-items:center}.btn-primary,.btn-secondary{text-align:center;width:100%;max-width:280px}.about-stats{grid-template-columns:1fr 1fr;gap:12px}}@media (hover:none){.cursor-glow,.cursor-trail{display:none}}
