html,body{margin:0;padding:0;width:100%;height:100%;overflow-x:hidden;transition:background-color .5s ease}body{background:#0d1117;position:relative;transition:background-color .5s ease}body.light-mode{background:#f8fafc}#app{margin:0;padding:0;width:100%;min-height:100vh}::-webkit-scrollbar{width:12px;height:12px}::-webkit-scrollbar-track{background:#0d111780;border-radius:6px}::-webkit-scrollbar-thumb{background:linear-gradient(135deg,#6366f1,#8b5cf6);border-radius:6px;border:2px solid transparent;background-clip:padding-box;transition:all .3s ease}::-webkit-scrollbar-thumb:hover{background:linear-gradient(135deg,#8b5cf6,#a78bfa);border:2px solid transparent;background-clip:padding-box}::-webkit-scrollbar-corner{background:#0d111780;border-radius:6px}*{scrollbar-width:thin;scrollbar-color:#6366f1 rgba(13,17,23,.5)}body.light-mode ::-webkit-scrollbar-track{background:#f1f5f9cc}body.light-mode ::-webkit-scrollbar-thumb{background:linear-gradient(135deg,#3b82f6,#60a5fa);border-color:#f1f5f9cc}body.light-mode ::-webkit-scrollbar-thumb:hover{background:linear-gradient(135deg,#60a5fa,#93c5fd)}body.light-mode ::-webkit-scrollbar-corner{background:#f1f5f9cc}body.light-mode{scrollbar-color:#3b82f6 rgba(241,245,249,.8)}.language-selector[data-v-97bfec57]{position:fixed;top:2rem;right:2rem;z-index:1000}.lang-toggle[data-v-97bfec57]{background:#0d1117cc;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid rgba(48,54,61,.5);border-radius:8px;padding:.75rem 1rem;color:#e6edf3;font-size:.9rem;cursor:pointer;display:flex;align-items:center;gap:.5rem;transition:all .2s ease;min-width:120px;justify-content:space-between}.lang-toggle[data-v-97bfec57]:hover{background:#161b22e6;border-color:#22c55e4d;transform:translateY(-1px)}.lang-icon[data-v-97bfec57]{font-size:1rem;opacity:.8}.dropdown-arrow[data-v-97bfec57]{font-size:.75rem;transition:transform .2s ease}.dropdown-arrow.dropdown-open[data-v-97bfec57]{transform:rotate(180deg)}.language-dropdown[data-v-97bfec57]{position:absolute;top:100%;right:0;margin-top:.5rem;background:#0d1117f2;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid rgba(48,54,61,.5);border-radius:8px;box-shadow:0 10px 25px #00000080;min-width:150px;max-height:300px;overflow-y:auto;opacity:0;transform:translateY(-10px);transition:all .2s ease;visibility:hidden}.language-dropdown.dropdown-open[data-v-97bfec57]{opacity:1;transform:translateY(0);visibility:visible}.language-option[data-v-97bfec57]{padding:.75rem 1rem;cursor:pointer;display:flex;align-items:center;justify-content:space-between;transition:all .2s ease;color:#e6edf3;border-bottom:1px solid rgba(48,54,61,.2)}.language-option[data-v-97bfec57]:last-child{border-bottom:none}.language-option[data-v-97bfec57]:hover{background:#22c55e1a;color:#10b981}.language-option.active[data-v-97bfec57]{background:#22c55e33;color:#10b981}.check-mark[data-v-97bfec57]{font-size:.9rem;color:#10b981}[data-v-97bfec57] .app.light-mode .lang-toggle{background:#fffffff2;color:#1f2937;border-color:#0000001a;box-shadow:0 4px 12px #0000000d}[data-v-97bfec57] .app.light-mode .lang-toggle:hover{border-color:#3b82f64d;background:#fff}[data-v-97bfec57] .app.light-mode .language-dropdown{background:#fffffff2;border-color:#0000001a;box-shadow:0 10px 25px #0000001a}[data-v-97bfec57] .app.light-mode .language-option{color:#1f2937;border-bottom-color:#0000000d}[data-v-97bfec57] .app.light-mode .language-option:hover{background:#3b82f61a;color:#3b82f6}[data-v-97bfec57] .app.light-mode .language-option.active{background:#3b82f633;color:#3b82f6}@media(max-width:768px){.language-selector[data-v-97bfec57]{top:1rem;right:1rem}.lang-toggle[data-v-97bfec57]{padding:.5rem .75rem;font-size:.8rem;min-width:100px}.language-dropdown[data-v-97bfec57]{min-width:120px}.language-option[data-v-97bfec57]{padding:.5rem .75rem;font-size:.8rem}}.language-dropdown[data-v-97bfec57]::-webkit-scrollbar{width:6px}.language-dropdown[data-v-97bfec57]::-webkit-scrollbar-track{background:transparent}.language-dropdown[data-v-97bfec57]::-webkit-scrollbar-thumb{background:#22c55e4d;border-radius:3px}.language-dropdown[data-v-97bfec57]::-webkit-scrollbar-thumb:hover{background:#22c55e80}.social-links[data-v-b9238e66]{display:flex;align-items:center;justify-content:center;gap:1rem;margin-top:1rem}.github-link[data-v-b9238e66],.bilibili-link[data-v-b9238e66],.email-link[data-v-b9238e66],.blog-link[data-v-b9238e66]{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;transition:all .2s ease}.github-link[data-v-b9238e66]:hover,.bilibili-link[data-v-b9238e66]:hover,.email-link[data-v-b9238e66]:hover,.blog-link[data-v-b9238e66]:hover{transform:translateY(-1px)}.github-logo[data-v-b9238e66]{width:24px;height:24px;transition:all .2s ease;opacity:.8}.bilibili-logo[data-v-b9238e66],.email-logo[data-v-b9238e66]{width:30px;height:30px;transition:all .2s ease;opacity:.8}.blog-logo[data-v-b9238e66]{width:20px;height:20px;transition:all .2s ease;opacity:.8}.github-link:hover .github-logo[data-v-b9238e66],.bilibili-link:hover .bilibili-logo[data-v-b9238e66],.email-link:hover .email-logo[data-v-b9238e66],.blog-link:hover .blog-logo[data-v-b9238e66]{opacity:1;transform:scale(1.05)}[data-v-b9238e66] .app.light-mode .github-logo{filter:invert(1)}.hero[data-v-eb6f2c0e]{text-align:center;display:flex;flex-direction:column;align-items:center;gap:1rem;padding:1rem}.text-content[data-v-eb6f2c0e]{max-width:600px;text-align:center}.greeting[data-v-eb6f2c0e]{font-size:1.2rem;color:#a1a1aa;margin-bottom:.5rem}.name[data-v-eb6f2c0e]{font-size:clamp(2.5rem,7vw,3.5rem);font-weight:800;line-height:1.1;margin-bottom:.75rem;background:linear-gradient(135deg,#fafafa,#a1a1aa);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.phonetic[data-v-eb6f2c0e]{display:block;font-size:1rem;font-weight:400;color:#71717a;font-family:SF Mono,Monaco,Cascadia Code,monospace;margin-top:.5rem;margin-bottom:1rem}.quote[data-v-eb6f2c0e]{font-size:1.3rem;font-style:italic;color:#e4e4e7;margin:1rem 0;line-height:1.5;position:relative;display:inline-block}.quote-mark[data-v-eb6f2c0e]{font-size:1.6rem;color:#6366f1;font-weight:600;font-style:normal}.typewriter-text[data-v-eb6f2c0e]{display:inline}.cursor[data-v-eb6f2c0e]{display:inline;color:#6366f1;font-weight:600;animation:blink-eb6f2c0e 1s infinite}@keyframes blink-eb6f2c0e{0%,50%{opacity:1}51%,to{opacity:0}}[data-v-eb6f2c0e] .app.light-mode .cursor{color:#3b82f6}[data-v-eb6f2c0e] .app.light-mode .quote{color:#374151}[data-v-eb6f2c0e] .app.light-mode .quote-mark{color:#3b82f6}@media(max-width:768px){.name[data-v-eb6f2c0e]{font-size:clamp(1.5rem,8vw,2rem)}}@media(max-width:480px){.greeting[data-v-eb6f2c0e]{font-size:1rem}.quote[data-v-eb6f2c0e]{font-size:1.1rem;margin:.8rem 0}.quote-mark[data-v-eb6f2c0e]{font-size:1.4rem}}.project-card[data-v-411858d8]{background:#0d1117b3;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(48,54,61,.5);border-radius:12px;padding:2rem;transition:all .3s ease;position:relative;overflow:hidden}.project-card[data-v-411858d8]:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(135deg,#22c55e,#16a34a);transform:translateY(-100%);transition:transform .3s ease}.project-card[data-v-411858d8]:hover{transform:translateY(-5px);box-shadow:0 10px 30px #00000026}.project-card[data-v-411858d8]:hover:before{transform:translateY(0)}.project-header[data-v-411858d8]{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;gap:1rem}.project-name[data-v-411858d8]{font-size:1.5rem;font-weight:700;color:var(--color-heading);margin:0;flex:1}.project-name-link[data-v-411858d8]{color:inherit;text-decoration:none;transition:color .2s ease}.project-name-link[data-v-411858d8]:hover{color:#22c55e}.github-link[data-v-411858d8]{color:var(--color-text);transition:all .3s ease;display:flex;align-items:center;opacity:.7}.project-actions[data-v-411858d8]{display:flex;align-items:center;gap:.5rem}.demo-link[data-v-411858d8]{color:var(--color-text);opacity:.7;transition:all .2s ease;display:flex;align-items:center}.demo-link[data-v-411858d8]:hover{color:#22c55e;opacity:1;transform:translateY(-1px)}.external-icon[data-v-411858d8]{width:22px;height:22px}.github-link[data-v-411858d8]:hover{color:#22c55e;opacity:1;transform:scale(1.1)}.github-icon[data-v-411858d8]{width:24px;height:24px}.project-description[data-v-411858d8]{color:var(--color-text);line-height:1.6;margin-bottom:1.5rem;opacity:.9}.project-description a[data-v-411858d8]{text-decoration:underline}.project-tags[data-v-411858d8]{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1.5rem}.project-tag[data-v-411858d8]{background:#22c55e1f;color:#22c55e;padding:.25rem .75rem;border-radius:20px;font-size:.85rem;font-weight:500;border:1px solid rgba(34,197,94,.25)}.project-highlights[data-v-411858d8]{margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid var(--color-border)}.highlights-title[data-v-411858d8]{font-size:1rem;font-weight:600;color:var(--color-heading);margin:0 0 .75rem}.highlights-list[data-v-411858d8]{margin:0;padding-left:1.5rem;color:var(--color-text);opacity:.9}.highlights-list li[data-v-411858d8]{line-height:1.8;margin-bottom:.5rem}.highlights-list li[data-v-411858d8]::marker{color:#22c55e}.highlights-list a[data-v-411858d8]{text-decoration:underline}.project-description a.link-chip[data-v-411858d8]:after,.highlights-list a.link-chip[data-v-411858d8]:after{content:"u2197";font-size:.85em;opacity:.85}[dir=rtl]{flex-direction:row-reverse}[dir=rtl]{direction:rtl}[dir=rtl]{padding-left:0;padding-right:1.5rem}@media(max-width:768px){.project-card[data-v-411858d8]{padding:1.5rem}.project-name[data-v-411858d8]{font-size:1.25rem}.github-icon[data-v-411858d8]{width:20px;height:20px}.project-tags[data-v-411858d8]{gap:.4rem}.project-tag[data-v-411858d8]{font-size:.75rem;padding:.2rem .6rem}}.portfolio-section[data-v-a7a9d6d4]{width:100%;display:flex;justify-content:center}.portfolio-container[data-v-a7a9d6d4]{max-width:1200px;width:100%}.portfolio-title[data-v-a7a9d6d4]{font-size:3rem;font-weight:700;color:var(--color-heading);text-align:center;margin-bottom:1rem;background:linear-gradient(135deg,var(--color-heading),#42b883);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.portfolio-subtitle[data-v-a7a9d6d4]{font-size:1.25rem;color:var(--color-text);text-align:center;margin-bottom:3rem;opacity:.8;max-width:600px;margin-left:auto;margin-right:auto}.projects-grid[data-v-a7a9d6d4]{display:grid;grid-template-columns:repeat(auto-fit,minmax(350px,1fr));gap:2rem}@keyframes fadeInUp-a7a9d6d4{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@media(max-width:768px){.portfolio-title[data-v-a7a9d6d4]{font-size:2rem}.portfolio-subtitle[data-v-a7a9d6d4]{font-size:1rem}.projects-grid[data-v-a7a9d6d4]{grid-template-columns:1fr;gap:1.5rem}}.dynamic-background[data-v-52ff670a]{position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:0}.background-canvas[data-v-52ff670a]{width:100%;height:100%;display:block}.github-corner[data-v-826b08ef]{position:fixed;top:2rem;z-index:1000;color:#e6edf3;opacity:.8;transition:transform .2s ease,opacity .2s ease;--corner-offset: 2rem}.github-corner[data-v-826b08ef]:hover{opacity:1;transform:translateY(-1px) scale(1.05)}.github-icon[data-v-826b08ef]{width:28px;height:28px}.app.light-mode{color:#1f2937}.app.light-mode{filter:invert(1)}@media(max-width:768px){.github-corner[data-v-826b08ef]{top:1rem;--corner-offset: 1rem}}.app[dir=rtl]{left:auto;right:var(--corner-offset)}.app:not([dir=rtl]){left:var(--corner-offset);right:auto}.friend-links[data-v-a39441e3]{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem}.friend-card[data-v-a39441e3]{background:var(--color-background-soft);border:1px solid var(--color-border);border-radius:12px;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}.friend-link[data-v-a39441e3]{display:flex;align-items:center;gap:.75rem;padding:.9rem 1rem;color:var(--color-text);text-decoration:none}.friend-content[data-v-a39441e3]{display:flex;flex-direction:column;min-width:0}.friend-card[data-v-a39441e3]:hover{transform:translateY(-3px);border-color:#22c55e59;box-shadow:0 8px 20px #00000014}.favicon-wrap[data-v-a39441e3]{width:28px;height:28px;display:grid;place-items:center;border-radius:6px;background:var(--color-background-mute);border:1px solid var(--color-border)}.favicon[data-v-a39441e3]{width:20px;height:20px}.friend-title[data-v-a39441e3]{font-weight:600;color:var(--color-heading)}.friend-desc[data-v-a39441e3]{font-size:.85rem;color:var(--color-text);opacity:.75;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.friend-links-empty[data-v-a39441e3]{text-align:center;color:var(--color-text);opacity:.7}@media(max-width:768px){.friend-links[data-v-a39441e3]{grid-template-columns:1fr}}.site-footer[data-v-7c45afc9]{position:relative;border-top:1px solid rgba(34,197,94,.25);background:#0d1117d9;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 -8px 24px #00000040;color:#e6edf3}.site-footer[data-v-7c45afc9]:before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,#22c55e,#3b82f6);opacity:.8}.container[data-v-7c45afc9]{max-width:1000px;margin:0 auto;width:100%;padding:0 1rem}.footer-inner[data-v-7c45afc9]{display:flex;align-items:center;justify-content:space-between;padding:1.1rem 0;gap:1rem}.footer-left[data-v-7c45afc9]{color:inherit;opacity:.8;font-size:.95rem}.owner-link[data-v-7c45afc9]{color:inherit;text-decoration:none}.owner-link[data-v-7c45afc9]:hover{color:#22c55e}.footer-right[data-v-7c45afc9]{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.footer-link[data-v-7c45afc9]{color:inherit;text-decoration:none;opacity:.8}.footer-link[data-v-7c45afc9]:hover{opacity:1;color:#22c55e}.sep[data-v-7c45afc9]{opacity:.4}@media(max-width:640px){.footer-inner[data-v-7c45afc9]{flex-direction:column;align-items:center;text-align:center;padding:1rem}.footer-left[data-v-7c45afc9]{width:100%;text-align:center}.footer-right[data-v-7c45afc9]{justify-content:center;gap:.35rem .6rem}}.app.light-mode{background:#ffffffeb;border-top-color:#0000000f;box-shadow:0 -6px 20px #00000014;color:#1f2937}.app.light-mode{background:linear-gradient(90deg,#3b82f6,#22c55e);opacity:.6}[data-v-29f03b0a]{margin:0;padding:0;box-sizing:border-box}.app[data-v-29f03b0a]{min-height:100vh;font-family:SF Mono,Monaco,Cascadia Code,Fira Code,monospace;position:relative;overflow:hidden;background:transparent;color:#e4e4e7;opacity:0;transform:translateY(20px);transition:all .8s cubic-bezier(.4,0,.2,1)}.section[data-v-29f03b0a]{min-height:100vh;display:flex;align-items:center;justify-content:center;position:relative;z-index:1}.hero-container[data-v-29f03b0a]{padding:2rem 1.5rem}.portfolio-section[data-v-29f03b0a]{padding:4rem 2rem}.friends-section[data-v-29f03b0a]{max-width:1200px;margin:3rem auto 0}.friends-title[data-v-29f03b0a]{font-size:1.5rem;font-weight:700;color:var(--color-heading);margin:0 0 1rem}.scroll-indicator[data-v-29f03b0a]{margin-top:4rem;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:.5rem;opacity:.7;transition:all .3s ease}.scroll-indicator[data-v-29f03b0a]:hover{opacity:1;transform:translateY(5px)}.scroll-text[data-v-29f03b0a]{font-size:.9rem;color:#e6edf3;text-transform:uppercase;letter-spacing:1px}.scroll-arrow[data-v-29f03b0a]{font-size:1.5rem;color:#22c55e;animation:bounce-29f03b0a 2s infinite}@keyframes bounce-29f03b0a{0%,20%,50%,80%,to{transform:translateY(0)}40%{transform:translateY(-10px)}60%{transform:translateY(-5px)}}.app[data-v-29f03b0a]:not(.light-mode){color:#e6edf3}.app:not(.light-mode) .bg-pattern[data-v-29f03b0a]{background-color:#0d1117;background-image:radial-gradient(circle at 1px 1px,rgba(34,197,94,.15) 1px,transparent 1px),repeating-linear-gradient(0deg,transparent,transparent 24px,rgba(34,197,94,.03) 24px,rgba(34,197,94,.03) 25px),repeating-linear-gradient(90deg,transparent,transparent 24px,rgba(34,197,94,.03) 24px,rgba(34,197,94,.03) 25px);background-size:50px 50px,100% 100%,100% 100%;animation:matrix-rain-29f03b0a 20s linear infinite}.app.light-mode[data-v-29f03b0a]{color:#1f2937}.app.light-mode .bg-pattern[data-v-29f03b0a]{background-color:#f8fafc!important;background-image:radial-gradient(circle at 1px 1px,rgba(0,0,0,.03) 1px,transparent 1px);background-size:30px 30px;animation:none!important}.app.light-mode .scroll-text[data-v-29f03b0a]{color:#1f2937}@keyframes matrix-rain-29f03b0a{0%{background-position:0 0,0 0,0 0}to{background-position:50px 0,0 0,0 0}}.app.loaded[data-v-29f03b0a]{opacity:1;transform:translateY(0)}.bg-pattern[data-v-29f03b0a]{position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:0;transition:all .5s ease}.container[data-v-29f03b0a]{max-width:1000px;margin:0 auto;width:100%}.app.rtl[data-v-29f03b0a]{direction:rtl}.app.rtl .text-content[data-v-29f03b0a]{text-align:center}.app.rtl .social-links[data-v-29f03b0a]{flex-direction:row-reverse}.app.rtl[data-v-29f03b0a]{font-family:SF Mono,Monaco,Cascadia Code,Fira Code,Noto Sans Arabic,sans-serif}.app.rtl .greeting[data-v-29f03b0a],.app.rtl .name[data-v-29f03b0a],.app.rtl .quote[data-v-29f03b0a]{font-family:Noto Sans Arabic,Arial,sans-serif}@media(max-width:768px){.hero-container[data-v-29f03b0a],.portfolio-section[data-v-29f03b0a]{padding:2rem 1rem}.scroll-indicator[data-v-29f03b0a]{margin-top:2rem}}@media(max-width:768px){.app:not(.light-mode) .bg-pattern[data-v-29f03b0a]{animation:none!important}}
