@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600&display=swap";*,:before,:after{box-sizing:border-box}:root{--font-sans:"Calibre", "Inter", "San Francisco", "SF Pro Text", -apple-system, system-ui, sans-serif;--font-mono:"SF Mono", "Fira Code", "Fira Mono", "Roboto Mono", monospace;--transition:all .25s cubic-bezier(.645, .045, .355, 1);--border-radius:4px;--nav-height:100px;--nav-scroll-height:70px;font-family:var(--font-sans);color:#f1f5f9;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#0a0f1e;font-size:16px;line-height:1.3}body{margin:0;padding:0;overflow-x:hidden}#root{min-height:100vh}h1,h2,h3,h4,h5,h6{color:#f1f5f9;margin:0;font-weight:600;line-height:1.1}p{margin:0}a{color:inherit;transition:var(--transition);text-decoration:none}button{cursor:pointer;font-family:var(--font-mono)}img{max-width:100%;display:block}ul{margin:0;padding:0;list-style:none}.sec-heading{align-items:center;gap:12px;margin:10px 0 48px;display:flex}.sec-heading-icon{color:#3b82f6;flex-shrink:0}.sec-heading-text{font-family:var(--font-mono);color:#f1f5f9;white-space:nowrap;margin:0;font-size:max(20px,min(3vw,28px));font-weight:700}.sec-hash,.sec-dollar{color:#94a3b8;margin-right:6px}.section-heading{white-space:nowrap;color:#f1f5f9;align-items:center;width:100%;margin:10px 0 40px;font-size:max(22px,min(5vw,32px));display:flex;position:relative}.section-heading:after{content:"";background-color:rgba(255,255,255,.08);flex-shrink:1;width:300px;min-width:40px;height:1px;margin-left:20px;display:block;position:relative;top:-5px}.section-num{color:#60a5fa;font-family:var(--font-mono);margin-right:10px;font-size:max(16px,min(3vw,20px));font-weight:400}::-webkit-scrollbar{width:12px}::-webkit-scrollbar-track{background:#0a0f1e}::-webkit-scrollbar-thumb{background-color:#475569;border:3px solid #0a0f1e;border-radius:10px}::-moz-selection{color:#f1f5f9;background-color:rgba(59,130,246,.3)}::selection{color:#f1f5f9;background-color:rgba(59,130,246,.3)}.scroll-nav{z-index:50;flex-direction:column;align-items:center;gap:16px;display:none;position:fixed;top:50%;right:32px;transform:translateY(-50%)}@media (min-width:769px){.scroll-nav{display:flex}}@media (max-width:768px){.scroll-nav{right:unset;top:unset;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);width:100%;padding:6px 4px;padding-bottom:calc(6px + env(safe-area-inset-bottom));background:rgba(29,29,29,.97);border-top:1px solid #262626;grid-template-columns:repeat(7,1fr);align-items:center;gap:0;display:grid;bottom:0;left:0;transform:none}.scroll-nav__line{display:none}.scroll-nav__btn{border-radius:8px;width:100%;height:44px;transition:background .2s}.scroll-nav__btn.active{background:rgba(254,110,0,.1)}.scroll-nav__tooltip,.scroll-nav__ring{display:none}.scroll-nav__dot{width:20px!important;height:20px!important;box-shadow:none!important;background:0 0!important;border:none!important}.scroll-nav__dot .nav-icon{color:#6b7280;opacity:1!important;width:20px!important;height:20px!important;transform:scale(1)!important}.scroll-nav__btn.active .scroll-nav__dot .nav-icon{color:#ff8b1a}}.scroll-nav__line{z-index:-1;pointer-events:none;background:linear-gradient(transparent,rgba(249,115,22,.2),transparent);width:1px;position:absolute;top:0;bottom:0;left:50%;transform:translate(-50%)}.scroll-nav__btn{cursor:pointer;background:0 0;border:none;outline:none;justify-content:center;align-items:center;width:48px;height:48px;padding:0;transition:all .3s;display:flex;position:relative}.scroll-nav__btn:focus{outline:none}.scroll-nav__tooltip{white-space:nowrap;opacity:0;pointer-events:none;background-color:#0d1117;border:1px solid rgba(249,115,22,.2);border-radius:6px;align-items:center;gap:8px;padding:6px 12px;font-family:SF Mono,Fira Code,Fira Mono,Roboto Mono,monospace;font-size:12px;transition:opacity .3s,transform .3s;display:flex;position:absolute;top:50%;right:56px;transform:translateY(-50%)translate(8px);box-shadow:0 0 15px rgba(6,182,212,.1)}.scroll-nav__btn:hover .scroll-nav__tooltip{opacity:1;transform:translateY(-50%)translate(0)}.scroll-nav__tooltip-arrow{color:#fb923c;font-weight:700}.scroll-nav__tooltip-label{color:#6b7280;font-weight:400}.scroll-nav__tooltip-label.active{color:#fb923c;font-weight:700}.scroll-nav__inner{justify-content:center;align-items:center;width:100%;height:100%;display:flex;position:relative}.scroll-nav__ring{opacity:0;border:1px dashed rgba(249,115,22,.5);border-radius:50%;width:16px;height:16px;margin:auto;transition:all .5s ease-out;position:absolute;top:0;bottom:0;left:0;right:0;transform:rotate(0)scale(0)}.scroll-nav__ring.active{opacity:1;width:100%;height:100%;animation:8s linear infinite spin-slow;transform:rotate(180deg)scale(1)}@keyframes spin-slow{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.scroll-nav__dot{z-index:10;background-color:#1a2035;border:1px solid #2a3550;border-radius:50%;justify-content:center;align-items:center;width:12px;height:12px;transition:all .3s ease-out;display:flex;position:relative}.scroll-nav__btn:hover .scroll-nav__dot{background-color:rgba(249,115,22,.2);border-color:rgba(251,146,60,.5);width:16px;height:16px}.scroll-nav__dot.active{background-color:#1a2035;border:1px solid #fb923c;width:32px;height:32px;box-shadow:0 0 20px rgba(34,211,238,.4)}.scroll-nav__dot .nav-icon{opacity:0;width:0;height:0;transition:all .3s;transform:scale(0)}.scroll-nav__dot.active .nav-icon{opacity:1;color:#fb923c;width:16px;height:16px;transform:scale(1)}.hero-section{opacity:0;flex-direction:column;justify-content:center;min-height:100vh;padding:140px 0 60px;transition:opacity .6s;display:flex;position:relative}.hero-section.visible{opacity:1}.hero-grid{grid-template-columns:1fr 1fr;align-items:center;gap:100px;width:100%;display:grid}.hero-left{flex-direction:column;gap:0;display:flex}.hero-badge{color:#60a5fa;font-family:var(--font-mono);background:rgba(59,130,246,.05);border:1px solid rgba(59,130,246,.3);border-radius:4px;align-items:center;gap:8px;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content;margin-bottom:20px;padding:4px 12px;font-size:11px;animation:.5s forwards slideUp;display:inline-flex}.hero-badge-dot{background:#3b82f6;border-radius:50%;flex-shrink:0;width:8px;height:8px;box-shadow:0 0 6px rgba(59,130,246,.6)}.hero-heading{margin:0 0 28px;font-size:max(46px,min(6.5vw,84px));font-weight:700;line-height:1.1;animation:.5s 50ms both slideUp}.hero-heading-plain{color:#f1f5f9}.hero-heading-gradient{background:linear-gradient(90deg,#60a5fa,#fff);-webkit-text-fill-color:transparent;-webkit-background-clip:text;-ms-background-clip:text;background-clip:text;display:inline-block;position:relative}.hero-heading-underline{-webkit-filter:blur(2px);filter:blur(2px);background:rgba(59,130,246,.5);border-radius:999px;width:100%;height:4px;position:absolute;bottom:-8px;left:0}.hero-sub{color:#94a3b8;max-width:560px;margin:0 0 36px;font-size:max(16px,min(1.6vw,20px));font-weight:300;line-height:1.7;animation:.5s .1s both slideUp}.hero-sub-tag{color:#60a5fa;font-family:var(--font-mono)}.hero-btns{flex-wrap:wrap;gap:16px;margin-bottom:32px;animation:.5s .15s both slideUp;display:flex}.hero-btn-primary{cursor:pointer;-webkit-clip-path:polygon(20px 0,100% 0,100% calc(100% - 20px),calc(100% - 20px) 100%,0 100%,0 20px);clip-path:polygon(20px 0,100% 0,100% calc(100% - 20px),calc(100% - 20px) 100%,0 100%,0 20px);flex:1;min-width:220px;text-decoration:none;display:inline-flex;position:relative}.hero-btn-glow{opacity:.3;-webkit-clip-path:polygon(20px 0,100% 0,100% calc(100% - 20px),calc(100% - 20px) 100%,0 100%,0 20px);clip-path:polygon(20px 0,100% 0,100% calc(100% - 20px),calc(100% - 20px) 100%,0 100%,0 20px);background:linear-gradient(90deg,#3b82f6,#60a5fa);transition:opacity .5s;position:absolute;top:-2px;bottom:-2px;left:-2px;right:-2px}.hero-btn-primary:hover .hero-btn-glow{opacity:.7}.hero-btn-inner{-webkit-clip-path:polygon(20px 0,100% 0,100% calc(100% - 20px),calc(100% - 20px) 100%,0 100%,0 20px);clip-path:polygon(20px 0,100% 0,100% calc(100% - 20px),calc(100% - 20px) 100%,0 100%,0 20px);background:#111827;border:1px solid rgba(59,130,246,.3);align-items:center;gap:14px;width:100%;padding:14px 16px;transition:background .25s;display:flex;position:relative}.hero-btn-primary:hover .hero-btn-inner{background:#1a2540}.hero-btn-icon{color:#60a5fa;background:rgba(59,130,246,.1);border:1px solid rgba(59,130,246,.2);border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;transition:border-color .25s,transform .25s;display:flex}.hero-btn-primary:hover .hero-btn-icon{border-color:rgba(59,130,246,.5);transform:scale(1.05)}.hero-btn-text{flex:1;min-width:0}.hero-btn-title-row{justify-content:space-between;align-items:center;margin-bottom:6px;display:flex}.hero-btn-title{color:#fff;white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:700;transition:color .25s;overflow:hidden}.hero-btn-primary:hover .hero-btn-title{color:#60a5fa}.hero-btn-title-row svg{color:#6b7280;flex-shrink:0;transition:color .25s}.hero-btn-primary:hover .hero-btn-title-row svg{color:#60a5fa}.hero-btn-bar-track{background:#1f2937;border-radius:999px;width:100%;height:4px;margin-bottom:6px;overflow:hidden}.hero-btn-bar-fill{background:#3b82f6;border-radius:999px;width:60%;height:100%;transition:width .7s ease-out;position:relative}.hero-btn-primary:hover .hero-btn-bar-fill{width:85%}.hero-btn-bar-pulse{background:rgba(255,255,255,.3);animation:1s ease-in-out infinite pulseFast;position:absolute;top:0;bottom:0;left:0;right:0}.hero-btn-meta{font-family:var(--font-mono);color:#6b7280;justify-content:space-between;font-size:9px;display:flex}.hero-btn-loading{color:#3b82f6;animation:1.5s ease-in-out infinite pulseFast}.hero-btn-github{cursor:pointer;-webkit-clip-path:polygon(20px 0,100% 0,100% calc(100% - 20px),calc(100% - 20px) 100%,0 100%,0 20px);clip-path:polygon(20px 0,100% 0,100% calc(100% - 20px),calc(100% - 20px) 100%,0 100%,0 20px);text-decoration:none;display:inline-flex;position:relative}.hero-btn-github-glow{opacity:.2;-webkit-clip-path:polygon(20px 0,100% 0,100% calc(100% - 20px),calc(100% - 20px) 100%,0 100%,0 20px);clip-path:polygon(20px 0,100% 0,100% calc(100% - 20px),calc(100% - 20px) 100%,0 100%,0 20px);background:linear-gradient(90deg,#3b82f6,#60a5fa);transition:opacity .5s;position:absolute;top:-2px;bottom:-2px;left:-2px;right:-2px}.hero-btn-github:hover .hero-btn-github-glow{opacity:.5}.hero-btn-github-inner{-webkit-clip-path:polygon(20px 0,100% 0,100% calc(100% - 20px),calc(100% - 20px) 100%,0 100%,0 20px);clip-path:polygon(20px 0,100% 0,100% calc(100% - 20px),calc(100% - 20px) 100%,0 100%,0 20px);color:#fff;background:#111827;border:1px solid rgba(59,130,246,.3);align-items:center;gap:10px;padding:14px 16px;transition:background .25s,border-color .25s;display:flex;position:relative}.hero-btn-github:hover .hero-btn-github-inner{background:#1a2540;border-color:rgba(59,130,246,.5)}.hero-btn-github-inner svg{transition:color .25s}.hero-btn-github:hover .hero-btn-github-inner svg{color:#60a5fa}.hero-btn-github-label{color:#94a3b8;font-size:10px;font-family:var(--font-mono);margin-bottom:2px;line-height:1}.hero-btn-github-name{font-size:14px;font-weight:700;line-height:1;transition:color .25s}.hero-btn-github:hover .hero-btn-github-name{color:#60a5fa}.hero-modules{opacity:.8;flex-wrap:wrap;align-items:center;gap:8px;animation:.5s .2s both slideUp;display:flex}.hero-modules-label{font-size:10px;font-family:var(--font-mono);color:#6b7280;margin-right:4px}.hero-module-tag{color:rgba(96,165,250,.8);font-size:10px;font-family:var(--font-mono);letter-spacing:.05em;cursor:default;background:rgba(59,130,246,.05);border:1px solid rgba(59,130,246,.2);border-radius:4px;padding:3px 8px;transition:background .2s,border-color .2s}.hero-module-tag:hover{background:rgba(59,130,246,.1);border-color:rgba(59,130,246,.4)}.hero-right{justify-content:flex-end;animation:.5s .1s both slideUp;display:flex;position:relative}.hero-terminal-glow{-webkit-filter:blur(40px);filter:blur(40px);z-index:-1;pointer-events:none;background:linear-gradient(90deg,rgba(59,130,246,.15),rgba(96,165,250,.1));border-radius:12px;position:absolute;top:-16px;bottom:-16px;left:-16px;right:-16px}.hero-terminal{width:100%;max-width:640px;font-family:var(--font-mono);background:#0d1526;border:1px solid rgba(59,130,246,.2);border-radius:12px;overflow:hidden;box-shadow:0 4px 20px rgba(0,0,0,.5)}.hero-terminal-bar{background:#111827;border-bottom:1px solid rgba(59,130,246,.1);justify-content:space-between;align-items:center;padding:10px 16px;display:flex}.hero-terminal-dots{gap:8px;display:flex}.hero-terminal-dots .dot{border-radius:50%;width:12px;height:12px}.dot.red{background:rgba(255,95,86,.8)}.dot.yellow{background:rgba(255,189,46,.8)}.dot.green{background:rgba(39,201,63,.8)}.hero-terminal-title{color:#7d8590;align-items:center;gap:8px;font-size:12px;display:flex}.hero-terminal-pulse{background:#3b82f6;border-radius:50%;width:8px;height:8px;animation:1.5s ease-in-out infinite pulseFast}.hero-terminal-body{padding:16px 20px 20px;overflow-x:auto}.hero-code-line{opacity:0;white-space:pre;align-items:baseline;min-height:1.7em;font-size:max(11px,min(1.1vw,14px));line-height:1.7;transition:opacity .15s,transform .15s;display:flex;transform:translateY(4px)}.hero-code-line.revealed{opacity:1;transform:translateY(0)}.hero-line-num{color:rgba(125,133,144,.3);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;text-align:right;min-width:28px;margin-right:12px;font-size:11px}.hero-cursor{vertical-align:middle;background:#3b82f6;width:10px;height:1.1em;animation:1s step-end infinite blink;display:inline-block}.tok-keyword{color:#a78bfa}.tok-orange{color:#60a5fa}.tok-fn{color:#34d399}.tok-blue{color:#93c5fd}.tok-string{color:#6ee7b7}.tok-tag{color:#7dd3fc}.tok-plain{color:#f1f5f9}.hero-terminal-actions{gap:12px;margin-top:24px;display:flex}.hero-action-run{color:#60a5fa;font-family:var(--font-mono);cursor:pointer;background:rgba(59,130,246,.1);border:1px solid rgba(59,130,246,.3);border-radius:8px;align-items:center;gap:8px;padding:10px 20px;font-size:13px;transition:background .25s,border-color .25s;display:flex}.hero-action-run:hover{background:rgba(59,130,246,.2);border-color:rgba(59,130,246,.5)}.hero-action-view{color:#94a3b8;font-family:var(--font-mono);cursor:pointer;background:0 0;border:1px solid rgba(255,255,255,.08);border-radius:8px;align-items:center;gap:8px;padding:10px 20px;font-size:13px;transition:border-color .25s,color .25s;display:flex}.hero-action-view:hover{color:#f1f5f9;border-color:rgba(59,130,246,.3)}.hero-scroll-btn{cursor:pointer;color:#7d8590;background:0 0;border:none;justify-content:center;align-items:center;padding:8px;transition:color .25s;animation:1s infinite bounce;display:flex;position:absolute;bottom:32px;left:50%;transform:translate(-50%)}.hero-scroll-btn svg{width:24px;height:24px;transform:rotate(90deg)}.hero-scroll-btn:hover{color:#60a5fa}.hero-scroll-btn:focus{outline:none}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes pulseFast{0%,to{opacity:1}50%{opacity:.3}}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}@keyframes bounce{0%,to{transform:translate(-50%)translateY(0)}50%{transform:translate(-50%)translateY(8px)}}@media (max-width:1080px){.hero-grid{gap:48px}}@media (max-width:768px){.hero-grid{flex-direction:column;gap:32px;display:flex}.hero-left{order:2}.hero-right{order:1;justify-content:center}.hero-section{padding-top:80px;padding-bottom:80px}.hero-heading{font-size:max(28px,min(8vw,48px))}.hero-sub{font-size:15px}.hero-badge{font-size:10px}}@media (max-width:480px){.hero-btns{flex-direction:column}.hero-btn-primary{min-width:unset;flex:unset;width:100%}.hero-btn-github{width:100%}.hero-btn-github-inner{justify-content:center;width:90vw}.hero-terminal-body{padding:12px}.hero-code-line{font-size:10px}}.about-section{width:100%;padding:140px 0 60px}.about-inner{grid-template-columns:1fr 1.6fr;align-items:start;gap:64px;display:grid}.about-card{position:relative}.about-card-glow{-webkit-filter:blur(12px);filter:blur(12px);opacity:.6;z-index:0;pointer-events:none;background:linear-gradient(90deg,rgba(59,130,246,.2),rgba(96,165,250,.2));border-radius:18px;position:absolute;top:-4px;bottom:-4px;left:-4px;right:-4px}.about-card-inner{z-index:1;background:#111827;border:1px solid rgba(59,130,246,.3);border-radius:16px;padding:32px 33px;position:relative;overflow:hidden}.about-avatar-wrap{width:192px;height:192px;margin:0 auto 28px;position:relative}.about-ring{border:2px solid transparent;border-radius:50%;position:absolute;top:0;bottom:0;left:0;right:0}.about-ring-outer{border-color:transparent rgba(59,130,246,.3);animation:4s linear infinite spinReverse}.about-ring-inner{border-color:rgba(96,165,250,.3) transparent;animation:3s linear infinite spinFwd;top:8px;bottom:8px;left:8px;right:8px}@keyframes spinFwd{to{transform:rotate(360deg)}}@keyframes spinReverse{to{transform:rotate(-360deg)}}.about-avatar-img{background:#0d1526;border:1px solid rgba(255,255,255,.08);border-radius:50%;position:absolute;top:16px;bottom:16px;left:16px;right:16px;overflow:hidden;box-shadow:inset 0 2px 4px rgba(0,0,0,.1)}.about-avatar-img img{object-fit:cover;opacity:.8;width:100%;height:100%;transition:opacity .3s,-webkit-filter .3s,filter .3s}.about-avatar-img:hover img{opacity:1;-webkit-filter:none;filter:none}.about-status-dot{background:#00c758;border:2px solid #111827;border-radius:50%;width:14px;height:14px;animation:2s ease-in-out infinite pulse;position:absolute;bottom:14px;right:14px}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}.about-info{font-family:var(--font-mono);flex-direction:column;gap:0;font-size:16px;display:flex}.about-row{border-bottom:1px solid rgba(255,255,255,.05);justify-content:space-between;align-items:center;padding:8px 0;display:flex}.about-row.no-border{border-bottom:none}.about-label{color:#6b7280}.about-val{font-weight:500}.about-val.orange{color:#60a5fa;letter-spacing:.08em;font-weight:700}.about-val.blue{color:#93c5fd}.about-val.white{color:#f1f5f9}.about-badge{color:#00c758;background:rgba(0,199,88,.1);border:1px solid rgba(0,199,88,.2);border-radius:4px;padding:2px 8px;font-size:14px}.about-scanline{pointer-events:none;z-index:10;background:rgba(59,130,246,.2);width:100%;height:3px;animation:3s linear infinite scanline;position:absolute;top:0;left:0;box-shadow:0 0 15px rgba(59,130,246,.4)}@keyframes scanline{0%{opacity:1;top:0}90%{opacity:1}to{opacity:0;top:100%}}.about-right{flex-direction:column;gap:20px;display:flex}.about-terminal{font-family:var(--font-mono);background:#111827;border:1px solid rgba(255,255,255,.08);border-radius:8px;font-size:16px;transition:border-color .3s;overflow:hidden}.about-terminal:hover{border-color:rgba(59,130,246,.3)}.about-terminal-bar{color:#6b7280;background:#0d1526;border-bottom:1px solid rgba(255,255,255,.05);align-items:center;gap:8px;padding:8px 16px;font-size:12px;display:flex}.about-terminal-bar svg{color:#6b7280;flex-shrink:0}.about-terminal-body{color:#d1d5dc;flex-direction:column;gap:8px;padding:20px;line-height:1.7;display:flex}.about-terminal-body p{margin:0}.t-indent{border-left:2px solid rgba(255,255,255,.08);padding-left:16px}.t-blue{color:#60a5fa}.t-purple{color:#a78bfa}.t-gray{color:#fff}.t-white{color:#f1f5f9}.about-stats{grid-template-columns:repeat(3,1fr);gap:12px;display:grid}.about-stat{background:#111827;border:1px solid rgba(255,255,255,.08);border-radius:8px;flex-direction:column;gap:6px;padding:14px;transition:border-color .3s;display:flex}.about-stat:first-child:hover,.about-stat:nth-child(3):hover{border-color:rgba(59,130,246,.3)}.about-stat:nth-child(2):hover{border-color:rgba(96,165,250,.3)}.about-stat-icon{align-items:center;width:16px;height:16px;display:flex}.about-stat-icon.orange{color:#60a5fa}.about-stat-icon.blue{color:#93c5fd}.about-stat-label{font-family:var(--font-mono);color:#6b7280;font-size:10px}.about-stat-val{font-family:var(--font-mono);color:#f1f5f9;font-size:22px;font-weight:700;line-height:1;transition:color .3s}.about-stat:first-child:hover .about-stat-val,.about-stat:nth-child(3):hover .about-stat-val{color:#60a5fa}.about-stat:nth-child(2):hover .about-stat-val{color:#93c5fd}.about-stat-unit{color:#4a5565;font-size:12px}@media (max-width:768px){.about-section{padding:80px 0}.about-inner{grid-template-columns:1fr;gap:32px}.about-card{max-width:100%}.about-avatar-wrap{width:160px;height:160px}.about-stats{grid-template-columns:repeat(3,1fr);gap:8px}.about-stat-val{font-size:18px}}@media (max-width:480px){.about-stats{grid-template-columns:repeat(3,1fr)}.about-stat{padding:10px 8px}.about-terminal-body{font-size:12px}}.skills-section{width:100%;padding:140px 0 60px}.skills-globe-wrap{flex-direction:column;align-items:center;width:100%;display:flex;position:relative}.skills-canvas-wrapper{cursor:grab;width:100%;height:750px;position:relative}.skills-canvas-wrapper:active{cursor:grabbing}.skills-legend{flex-wrap:wrap;justify-content:center;gap:16px;margin-top:8px;display:flex}.skills-legend-item{font-family:var(--font-mono);color:#94a3b8;align-items:center;gap:6px;font-size:11px;display:flex}.skills-legend-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.skills-hint{font-family:var(--font-mono);color:#94a3b8;pointer-events:none;background:rgba(13,21,38,.8);border:1px solid rgba(255,255,255,.05);border-radius:999px;align-items:center;gap:8px;margin-top:20px;padding:8px 16px;font-size:12px;display:flex}.skills-hint svg{flex-shrink:0;animation:8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media (max-width:768px){.skills-section{padding:80px 0}.skills-canvas-wrapper{height:460px}}@media (max-width:480px){.skills-canvas-wrapper{height:380px}.skills-legend{gap:10px}.skills-legend-item{font-size:10px}}.experience-section{padding:100px 0}.exp-max{z-index:10;margin:0 auto;position:relative}.exp-heading{align-items:center;gap:16px;margin-bottom:64px;display:flex}.exp-heading svg{color:#60a5fa;flex-shrink:0;width:24px;height:24px}.exp-title-cmd{font-family:var(--font-mono);color:#f1f5f9;margin:0;font-size:max(20px,min(4vw,28px));font-weight:700;line-height:1}.exp-dollar{color:#6b7280;margin-right:4px}.exp-timeline{padding-left:32px;position:relative}@media (min-width:1024px){.exp-timeline{padding-left:0}}.exp-center-line{background-color:rgba(59,130,246,.3);width:1px;display:none;position:absolute;top:0;bottom:0;left:50%;transform:translate(-50%)}@media (min-width:1024px){.exp-center-line{display:block}}.exp-left-line{background-color:rgba(59,130,246,.3);width:1px;position:absolute;top:0;bottom:0;left:32px}@media (min-width:1024px){.exp-left-line{display:none}}.exp-commits{flex-direction:column;gap:64px;display:flex}.exp-commit{flex-direction:column;align-items:center;gap:40px;display:flex;position:relative}@media (min-width:1024px){.exp-commit{flex-direction:row}.exp-commit.reverse{flex-direction:row-reverse}}.exp-date-col{display:none}@media (min-width:1024px){.exp-date-col{justify-content:flex-end;width:50%;display:flex}.exp-commit.reverse .exp-date-col{justify-content:flex-start}}.exp-date-badge{font-family:var(--font-mono);color:#94a3b8;background-color:#111827;border:1px solid rgba(59,130,246,.2);border-radius:999px;align-items:center;gap:8px;padding:8px 16px;font-size:12px;display:flex}.exp-date-badge svg{color:#60a5fa;flex-shrink:0;width:14px;height:14px}.exp-dot-wrapper{z-index:10;justify-content:center;align-items:center;display:flex;position:absolute;left:32px;transform:translate(-50%)}@media (min-width:1024px){.exp-dot-wrapper{left:50%}}.exp-dot{background-color:#0d1526;border:2px solid #3b82f6;border-radius:50%;width:16px;height:16px;position:relative;box-shadow:0 0 0 4px #0a0f1e}.exp-dot-glow{opacity:.2;background-color:#60a5fa;border-radius:50%;position:absolute;top:0;bottom:0;left:0;right:0}.exp-card-col{width:100%;padding-left:48px}@media (min-width:1024px){.exp-card-col{width:50%;padding-left:0}}.exp-card-group{position:relative}@media (min-width:1024px){.exp-card-group{margin-right:40px}.exp-card-group.reverse{margin-left:40px;margin-right:0}}.exp-connector{display:none}@media (min-width:1024px){.exp-connector{background-color:rgba(59,130,246,.3);width:40px;height:1px;display:block;position:absolute;top:24px;right:-40px}.exp-connector.reverse{left:-40px;right:auto}}.exp-card{background-color:#111827;border:1px solid rgba(255,255,255,.08);border-radius:8px;transition:border-color .3s,transform .3s,box-shadow .3s;overflow:hidden;box-shadow:0 20px 40px -15px rgba(0,0,0,.5)}.exp-card:hover{border-color:rgba(59,130,246,.3);transform:translateY(-4px);box-shadow:0 30px 50px -15px rgba(0,0,0,.5)}.exp-card-header{background-color:#0d1526;border-bottom:1px solid rgba(255,255,255,.05);justify-content:space-between;align-items:center;padding:8px 16px;display:flex}.exp-card-header-left{align-items:center;gap:12px;display:flex}.exp-commit-hash{font-family:var(--font-mono);color:#eab308;font-size:12px}.exp-branch-badge{color:#60a5fa;font-size:10px;font-family:var(--font-mono);background-color:rgba(59,130,246,.1);border:1px solid rgba(59,130,246,.2);border-radius:4px;padding:2px 6px;display:none}@media (min-width:640px){.exp-branch-badge{display:inline-block}}.exp-company-label{font-family:var(--font-mono);color:#6b7280;font-size:10px}.exp-card-body{padding:24px}.exp-date-mobile{font-family:var(--font-mono);color:#6b7280;align-items:center;gap:8px;margin-bottom:16px;font-size:12px;display:flex}.exp-date-mobile svg{width:12px;height:12px}@media (min-width:1024px){.exp-date-mobile{display:none}}.exp-role{color:#fff;margin:0 0 4px;font-size:18px;font-weight:700;line-height:1.3;transition:color .3s}.exp-card:hover .exp-role{color:#60a5fa}.exp-at{color:#6b7280;font-size:14px;font-weight:400}.exp-desc{font-family:var(--font-mono);color:#94a3b8;border-left:2px solid rgba(59,130,246,.2);margin:16px 0 0;padding-top:4px;padding-bottom:4px;padding-left:16px;font-size:14px;line-height:1.7}.exp-tags{flex-wrap:wrap;gap:8px;margin-top:24px;display:flex}.exp-tag{font-size:10px;font-family:var(--font-mono);color:#93c5fd;background-color:rgba(59,130,246,.05);border:1px solid rgba(59,130,246,.2);border-radius:4px;padding:4px 8px}.exp-card-footer{font-family:var(--font-mono);color:#475569;background-color:#0a0f1e;border-top:1px solid rgba(255,255,255,.05);align-items:center;gap:16px;padding:8px 16px;font-size:10px;display:flex}.exp-footer-item{align-items:center;gap:4px;display:flex}.exp-footer-item svg{width:12px;height:12px}.exp-insertions{color:rgba(34,197,94,.8)}.exp-deletions{color:rgba(239,68,68,.8)}.exp-initial-commit{text-align:center;z-index:10;margin-top:64px;position:relative}.exp-initial-badge{font-family:var(--font-mono);color:#475569;cursor:pointer;background-color:#111827;border:1px solid rgba(255,255,255,.08);border-radius:999px;align-items:center;gap:8px;padding:12px 24px;font-size:12px;transition:color .25s,border-color .25s;display:inline-flex}.exp-initial-badge:hover{color:#60a5fa;border-color:rgba(59,130,246,.5)}.exp-initial-badge svg{width:16px;height:16px}@media (max-width:768px){.experience-section{padding:80px 0}.exp-heading{margin-bottom:48px}}.exp-commit{justify-content:space-between;align-items:center;display:flex}.exp-commit.reverse{flex-direction:row-reverse}.projects-section{width:100%;padding:140px 0 60px}.proj-layout{flex-direction:column;align-items:flex-start;gap:32px;margin-top:10px;display:flex}@media (min-width:1024px){.proj-layout{flex-direction:row}}.proj-repos-col{width:100%}@media (min-width:1024px){.proj-repos-col{flex-shrink:0;width:33.333%}}.proj-repos-panel{border-radius:var(--border-radius);background-color:#111827;border:1px solid rgba(255,255,255,.08);overflow:hidden;box-shadow:0 10px 30px -15px rgba(0,0,0,.5)}.proj-repos-header{background-color:#0d1526;border-bottom:1px solid rgba(255,255,255,.05);justify-content:space-between;align-items:center;padding:12px 16px;display:flex}.proj-repos-title{color:#d4d4d4;align-items:center;gap:8px;font-size:14px;font-weight:600;display:flex}.proj-repos-title .proj-icon{width:16px;height:16px}.proj-repos-count{color:#94a3b8;font-size:11px;font-family:var(--font-mono);background-color:#0a0f1e;border:1px solid rgba(255,255,255,.08);border-radius:999px;padding:2px 8px}.proj-repos-list{background-color:#111827;max-height:500px;overflow-y:auto}.proj-repos-list::-webkit-scrollbar{width:6px}.proj-repos-list::-webkit-scrollbar-track{background:#111827}.proj-repos-list::-webkit-scrollbar-thumb{background:#1a2540;border-radius:3px}.proj-repo-item{border-bottom:1px solid rgba(255,255,255,.05);padding:16px;text-decoration:none;transition:background-color .2s;display:block}.proj-repo-item:last-child{border-bottom:none}.proj-repo-item:hover{background-color:#1a2540}.proj-repo-top{justify-content:space-between;align-items:center;margin-bottom:6px;display:flex}.proj-repo-name{color:#93c5fd;text-overflow:ellipsis;white-space:nowrap;max-width:180px;font-size:13px;font-weight:600;transition:-webkit-text-decoration .2s,text-decoration .2s;overflow:hidden}.proj-repo-item:hover .proj-repo-name{text-decoration:underline}.proj-repo-badge{color:#475569;white-space:nowrap;border:1px solid rgba(255,255,255,.08);border-radius:999px;padding:2px 8px;font-size:10px;transition:border-color .2s}.proj-repo-item:hover .proj-repo-badge{border-color:#6b7280}.proj-repo-meta{color:#6b7280;align-items:center;gap:16px;margin-top:8px;font-size:11px;display:flex}.proj-repo-lang{align-items:center;gap:6px;display:flex}.proj-repo-dot{border:1px solid rgba(255,255,255,.1);border-radius:50%;flex-shrink:0;width:10px;height:10px;display:inline-block}.proj-repo-updated{font-size:10px}.proj-pinned-col{width:100%}@media (min-width:1024px){.proj-pinned-col{flex:1}}.proj-pinned-header{align-items:center;gap:8px;margin-bottom:16px;display:flex}.proj-pinned-label{color:#9d9d9d;text-transform:uppercase;letter-spacing:.1em;white-space:nowrap;padding-left:4px;font-size:13px;font-weight:600}.proj-pinned-line{background-color:rgba(255,255,255,.08);flex:1;height:1px}.proj-pinned-grid{grid-template-columns:repeat(2,1fr);gap:16px;display:grid}@media (max-width:640px){.proj-pinned-grid{grid-template-columns:1fr}}.proj-card{border-radius:var(--border-radius);background-color:#111827;border:1px solid rgba(255,255,255,.08);flex-direction:column;justify-content:space-between;height:100%;padding:20px;transition:border-color .25s,box-shadow .25s;display:flex;position:relative;overflow:hidden}.proj-card:hover{border-color:rgba(59,130,246,.4);box-shadow:0 10px 30px -15px rgba(0,0,0,.5)}.proj-card-overlay{z-index:0;position:absolute;top:0;bottom:0;left:0;right:0}.proj-card-body{z-index:1;pointer-events:none;margin-bottom:16px;position:relative}.proj-card-title-row{pointer-events:auto;align-items:center;gap:8px;margin-bottom:12px;display:flex}.proj-card-title-row .proj-icon{color:#6b7280;flex-shrink:0;width:16px;height:16px}.proj-card-name{color:#93c5fd;text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:15px;font-weight:600;text-decoration:none;transition:-webkit-text-decoration .2s,text-decoration .2s;overflow:hidden}.proj-card-name:hover{text-decoration:underline}.proj-card-desc{color:#9d9d9d;-webkit-line-clamp:3;-webkit-box-orient:vertical;height:4.5em;margin:0 0 16px;font-size:12px;line-height:1.6;display:-webkit-box;overflow:hidden}.proj-card-tags{flex-wrap:wrap;gap:6px;display:flex}.proj-card-tag{color:rgba(147,197,253,.9);font-size:10px;font-family:var(--font-mono);background-color:rgba(59,130,246,.08);border:1px solid rgba(59,130,246,.15);border-radius:4px;padding:3px 8px}.proj-card-footer{color:#475569;z-index:1;pointer-events:none;border-top:1px solid rgba(255,255,255,.05);align-items:center;gap:16px;padding-top:16px;font-size:12px;display:flex;position:relative}.proj-card-lang{align-items:center;gap:6px;display:flex}.proj-card-lang .proj-repo-dot{width:12px;height:12px}.proj-card-stat{cursor:pointer;pointer-events:auto;align-items:center;gap:4px;transition:color .2s;display:flex}.proj-card-stat:hover{color:#93c5fd}.proj-card-stat svg{width:14px;height:14px}.proj-card-demo-link{pointer-events:auto;margin-left:auto}.proj-demo-btn{color:#94a3b8;border-radius:var(--border-radius);background-color:#111827;border:1px solid rgba(255,255,255,.08);align-items:center;gap:6px;padding:4px 8px;font-size:10px;font-weight:500;text-decoration:none;transition:color .2s,border-color .2s;display:flex}.proj-demo-btn:hover{color:#60a5fa;border-color:rgba(59,130,246,.5)}.proj-demo-btn svg{width:12px;height:12px}@media (max-width:768px){.projects-section{padding:80px 0}}.blogs-section{max-width:900px;margin:0 auto;padding:100px 0}.blogs-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;margin-top:10px;display:grid}.blog-card{border-radius:var(--border-radius);color:inherit;transition:var(--transition);background-color:#111827;border:1px solid rgba(255,255,255,.08);flex-direction:column;padding:28px;text-decoration:none;display:flex;box-shadow:0 10px 30px -15px rgba(0,0,0,.5)}.blog-card:hover{border-color:rgba(59,130,246,.3);transform:translateY(-5px);box-shadow:0 20px 30px -15px rgba(0,0,0,.5)}.blog-card__top{color:#94a3b8;justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.blog-card__meta{font-family:var(--font-mono);color:#94a3b8;align-items:center;gap:6px;font-size:12px;display:flex}.blog-card__dot{color:#3b82f6}.blog-card__top svg{color:#94a3b8;transition:var(--transition);flex-shrink:0}.blog-card:hover .blog-card__top svg{color:#60a5fa}.blog-card__title{color:#f1f5f9;transition:var(--transition);margin:0 0 12px;font-size:20px;font-weight:500;line-height:1.3}.blog-card:hover .blog-card__title{color:#60a5fa}.blog-card__excerpt{color:#94a3b8;flex-grow:1;margin:0 0 20px;font-size:15px;line-height:1.6}.blog-card__tags{flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none;display:flex}.blog-card__tag{color:#60a5fa;font-family:var(--font-mono);background-color:rgba(59,130,246,.1);border-radius:20px;padding:3px 10px;font-size:11px}@media (max-width:768px){.blogs-section{padding:80px 0}.blogs-grid{grid-template-columns:1fr}}.blog-card__image{border-radius:8px;width:100%;height:180px;margin-bottom:12px;overflow:hidden}.blog-card__image img{object-fit:cover;width:100%;height:100%}.contact-section{text-align:center;width:100%;padding:140px 0 60px}.contact-overline{color:#60a5fa;font-family:var(--font-mono);margin-bottom:20px;font-size:16px;font-weight:400;display:block}.contact-heading{color:#f1f5f9;margin:0 0 20px;font-size:max(40px,min(5vw,60px))}.contact-desc{color:#94a3b8;max-width:600px;margin:0 auto 50px;font-size:20px;line-height:1.5}.contact-btn{color:#60a5fa;border-radius:var(--border-radius);font-family:var(--font-mono);cursor:pointer;transition:var(--transition);background-color:transparent;border:1px solid #3b82f6;padding:1.25rem 1.75rem;font-size:max(13px,min(3.5vw,14px));line-height:1;text-decoration:none;display:inline-block}.contact-btn:hover,.contact-btn:focus{background-color:rgba(59,130,246,.1);outline:none}.contact-panels{text-align:left;flex-direction:column;gap:24px;margin-top:60px;display:flex}@media (min-width:1024px){.contact-panels{flex-direction:row;align-items:stretch}}.contact-code-panel{background-color:#111827;border:1px solid rgba(255,255,255,.08);border-radius:8px;flex:1;display:flex;overflow:hidden}.contact-code-lines{text-align:right;color:#374151;width:32px;font-family:var(--font-mono);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;border-right:1px solid rgba(255,255,255,.05);flex-shrink:0;padding:24px 12px 24px 0;font-size:12px;line-height:24px}.contact-code-body{font-family:var(--font-mono);flex:1;padding:24px;font-size:13px;line-height:24px;overflow-x:auto}.cc-indent1{padding-left:16px}.cc-indent2{padding-left:32px}.cc-brace{color:#eab308}.cc-key{color:#60a5fa}.cc-str-green{color:#34d399}.cc-str-orange{color:#93c5fd}.cc-link{color:#93c5fd;transition:var(--transition);text-decoration:none}.cc-link:hover{text-decoration:underline}.cc-spacer{height:16px}.cc-comment{color:#6b7280;font-style:italic}.cc-cursor{color:#60a5fa;animation:1s step-start infinite blink}.contact-form-panel{background-color:#0d1526;border:1px solid rgba(59,130,246,.2);border-radius:8px;flex-direction:column;flex:1;display:flex;overflow:hidden}.cf-header{background-color:#111827;border-bottom:1px solid rgba(59,130,246,.2);justify-content:space-between;align-items:center;padding:8px 16px;display:flex}.cf-header-left{font-family:var(--font-mono);color:#d1d5db;align-items:center;gap:8px;font-size:12px;display:flex}.cf-header-left svg{color:#60a5fa;flex-shrink:0;width:14px;height:14px}.cf-header-right{font-family:var(--font-mono);color:#6b7280;font-size:10px}.cf-meta{background-color:#0a0f1e;border-bottom:1px solid rgba(59,130,246,.1);grid-template-columns:1fr 1fr;gap:8px;padding:8px 16px;display:grid}.cf-meta-item{font-family:var(--font-mono);color:#6b7280;align-items:center;gap:4px;font-size:10px;display:flex}.cf-meta-right{justify-content:flex-end}.cf-meta-label{color:#9ca3af}.cf-meta-value{color:#93c5fd}.cf-meta-response{color:#6ee7b7}.cf-form{flex-direction:column;flex:1;gap:12px;padding:16px;display:flex}.cf-row-2{grid-template-columns:1fr 1fr;gap:12px;display:grid}@media (max-width:480px){.cf-row-2{grid-template-columns:1fr}}.cf-field{flex-direction:column;gap:4px;display:flex}.cf-label{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.08em;color:#6b7280;font-size:10px}.cf-input,.cf-textarea{color:#93c5fd;width:100%;font-size:13px;font-family:var(--font-sans);box-sizing:border-box;background-color:#111827;border:1px solid rgba(255,255,255,.08);border-radius:4px;outline:none;padding:8px 12px;transition:border-color .25s}.cf-input::-webkit-input-placeholder{color:#475569}.cf-input::-moz-placeholder{color:#475569}.cf-input::-ms-input-placeholder{color:#475569}.cf-input::placeholder{color:#475569}.cf-textarea::-webkit-input-placeholder{color:#475569}.cf-textarea::-moz-placeholder{color:#475569}.cf-textarea::-ms-input-placeholder{color:#475569}.cf-textarea::placeholder{color:#475569}.cf-input:focus,.cf-textarea:focus{border-color:rgba(59,130,246,.6)}.cf-textarea{resize:none;font-family:var(--font-sans)}.cf-spam-note{font-family:var(--font-mono);color:#6b7280;font-size:11px}.cf-submit-row{padding-top:8px}.cf-submit-btn{color:#93c5fd;text-transform:uppercase;letter-spacing:.08em;cursor:pointer;background-color:rgba(59,130,246,.2);border:1px solid rgba(59,130,246,.4);border-radius:4px;justify-content:center;align-items:center;gap:8px;width:100%;padding:10px 20px;font-size:12px;font-weight:700;transition:background-color .25s,color .25s,box-shadow .25s;display:flex}.cf-submit-btn svg{fill:currentColor;flex-shrink:0;width:14px;height:14px;transition:transform .25s}.cf-submit-btn:hover{color:#fff;background-color:rgba(59,130,246,.3);box-shadow:0 0 20px -8px rgba(59,130,246,.8)}.cf-submit-btn:hover svg{transform:scale(1.1)}.cf-submit-btn:disabled{opacity:.5;cursor:not-allowed}@media (min-width:1024px){.cf-submit-btn{width:auto}}@media (max-width:768px){.contact-section{padding:80px 0}}.footer{text-align:center;flex-direction:column;align-items:center;gap:8px;margin-top:48px;padding:40px 24px;display:flex}.footer-brand{justify-content:center;align-items:center;gap:8px;margin-bottom:8px;display:flex}.footer-brand svg{color:#60a5fa;flex-shrink:0;width:20px;height:20px}.footer-name{font-family:var(--font-mono);color:#f1f5f9;font-size:18px;font-weight:700}.footer-divider{color:#94a3b8;margin:0 4px}.footer-built{font-family:var(--font-mono);color:#94a3b8;margin:0;font-size:14px}.footer-heart{color:#60a5fa}.footer-copy{font-family:var(--font-mono);color:#94a3b8;margin:0;font-size:12px}main{counter-reset:section;width:100%;max-width:1600px;min-height:100vh;margin:0 auto;padding:0 150px}@media (max-width:1080px){main{padding:0 100px}}@media (max-width:768px){main{padding:0 24px 80px}}@media (max-width:480px){main{padding:0 16px 80px}}
