.about-page .about-grid[data-v-a8b14f9f]{display:grid;grid-template-columns:1fr 1fr;gap:36px;align-items:start}.about-page .about-text p[data-v-a8b14f9f]{color:var(--text2);margin-bottom:14px;font-size:.95rem;line-height:1.75}.about-page .accent-text[data-v-a8b14f9f]{color:var(--accent)}.about-page .about-stats[data-v-a8b14f9f]{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.about-page .stat-card[data-v-a8b14f9f]{background:var(--card);border:1px solid var(--border);border-radius:14px;padding:24px 18px;text-align:center;transition:all .3s}.about-page .stat-card[data-v-a8b14f9f]:hover{border-color:#6c63ff59;transform:translateY(-4px);box-shadow:0 12px 40px #6c63ff1f}.about-page .stat-card .stat-num[data-v-a8b14f9f]{font-size:2rem;font-weight:800;background:linear-gradient(135deg,#6c63ff,#00d4aa);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.about-page .stat-card .stat-label[data-v-a8b14f9f]{color:var(--text2);font-size:.82rem;margin-top:2px}@media (max-width: 768px){.about-page .about-grid[data-v-a8b14f9f]{grid-template-columns:1fr;gap:24px}.about-page .stat-card[data-v-a8b14f9f]{padding:20px 14px}.about-page .stat-card .stat-num[data-v-a8b14f9f]{font-size:1.6rem}}.skills-page .skills-container[data-v-08d51cf0]{display:flex;flex-direction:column;gap:20px}.skills-page .skill-category[data-v-08d51cf0]{background:var(--card);border:1px solid var(--border);border-radius:14px;padding:24px 26px;transition:all .3s}.skills-page .skill-category[data-v-08d51cf0]:hover{border-color:#6c63ff59;box-shadow:0 6px 24px #6c63ff14}.skills-page .skill-cat-name[data-v-08d51cf0]{font-size:1rem;font-weight:600;margin-bottom:16px;display:flex;align-items:center;gap:8px}.skills-page .skill-tags[data-v-08d51cf0]{display:flex;flex-wrap:wrap;gap:8px}.skills-page .skill-tag[data-v-08d51cf0]{padding:6px 14px;border-radius:7px;font-size:.8rem;background:var(--card2);border:1px solid var(--border);transition:all .25s;cursor:default}.skills-page .skill-tag[data-v-08d51cf0]:hover{border-color:var(--accent);background:#6c63ff1a;color:var(--accent)}.skills-page .skill-tag.highlight[data-v-08d51cf0]{border-color:var(--accent2);background:#00d4aa14;color:var(--accent2)}@media (max-width: 768px){.skills-page .skill-category[data-v-08d51cf0]{padding:18px}.skills-page .skill-cat-name[data-v-08d51cf0]{font-size:.92rem}.skills-page .skill-tag[data-v-08d51cf0]{padding:5px 11px;font-size:.74rem}}.experience-page .timeline[data-v-87965c1f]{position:relative;padding-left:34px}.experience-page .timeline[data-v-87965c1f]:before{content:"";position:absolute;left:12px;top:0;width:2px;height:100%;background:linear-gradient(var(--accent),var(--accent2))}.experience-page .timeline-item[data-v-87965c1f]{position:relative;margin-bottom:36px;animation:slideInLeft-87965c1f .6s both}.experience-page .timeline-item[data-v-87965c1f]:before{content:"";position:absolute;left:-29px;top:8px;width:12px;height:12px;border-radius:50%;border:3px solid var(--accent);background:var(--bg);z-index:2}.experience-page .timeline-item[data-v-87965c1f]:nth-child(2n):before{border-color:var(--accent2)}.experience-page .job-card[data-v-87965c1f]{background:var(--card);border:1px solid var(--border);border-radius:14px;padding:26px;transition:all .3s}.experience-page .job-card[data-v-87965c1f]:hover{border-color:#6c63ff59;transform:translate(5px);box-shadow:0 8px 28px #6c63ff14}.experience-page .job-header[data-v-87965c1f]{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;margin-bottom:14px;gap:10px}.experience-page .job-company[data-v-87965c1f]{font-size:1.1rem;font-weight:700}.experience-page .job-role[data-v-87965c1f]{font-size:.92rem;color:var(--accent);font-weight:500;margin-top:3px}.experience-page .job-period[data-v-87965c1f]{white-space:nowrap;color:var(--text2);font-size:.84rem;padding:3px 12px;border-radius:16px;background:var(--card2);font-family:Inter,monospace}.experience-page .job-duties li[data-v-87965c1f]{padding:5px 0 5px 20px;color:var(--text2);font-size:.87rem;position:relative;line-height:1.62}.experience-page .job-duties li[data-v-87965c1f]:before{content:"▹";position:absolute;left:0;color:var(--accent);font-weight:700}@media (max-width: 768px){.experience-page .timeline[data-v-87965c1f]{padding-left:26px}.experience-page .timeline-item[data-v-87965c1f]:before{left:-23px;width:10px;height:10px}.experience-page .job-card[data-v-87965c1f]{padding:20px}.experience-page .job-header[data-v-87965c1f]{flex-direction:column;gap:6px}.experience-page .job-period[data-v-87965c1f]{align-self:flex-start}.experience-page .job-duties li[data-v-87965c1f]{font-size:.82rem}}@keyframes slideInLeft-87965c1f{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}.projects-page .sub-desc[data-v-8161dddc]{color:var(--text2);margin-bottom:24px;font-size:.9rem}.projects-page .sub-desc .accent[data-v-8161dddc]{color:var(--accent)}.projects-page .projects-grid[data-v-8161dddc]{display:grid;grid-template-columns:repeat(auto-fill,minmax(310px,1fr));gap:18px}.projects-page .project-card[data-v-8161dddc]{background:var(--card);border:1px solid var(--border);border-radius:14px;padding:24px;transition:all .35s;cursor:default;overflow:hidden;position:relative}.projects-page .project-card[data-v-8161dddc]:before{content:"";position:absolute;top:0;left:0;width:4px;height:100%;background:linear-gradient(135deg,#6c63ff,#00d4aa);opacity:0;transition:opacity .3s}.projects-page .project-card[data-v-8161dddc]:hover{border-color:#6c63ff59;transform:translateY(-5px);box-shadow:0 14px 40px #6c63ff1a}.projects-page .project-card[data-v-8161dddc]:hover:before{opacity:1}.projects-page .project-name[data-v-8161dddc]{font-size:1rem;font-weight:600;margin-bottom:6px}.projects-page .project-desc[data-v-8161dddc]{color:var(--text2);font-size:.83rem;margin-bottom:12px;line-height:1.55}.projects-page .project-techs[data-v-8161dddc]{display:flex;flex-wrap:wrap;gap:5px;margin-bottom:12px}.projects-page .ptag[data-v-8161dddc]{padding:2px 10px;border-radius:5px;font-size:.72rem;background:var(--card2);border:1px solid var(--border);color:var(--text2)}.projects-page .project-type[data-v-8161dddc]{display:inline-block;padding:2px 10px;border-radius:5px;font-size:.7rem;font-weight:500}.projects-page .project-type.type-pc[data-v-8161dddc]{background:#6c63ff21;color:var(--accent)}.projects-page .project-type.type-wx[data-v-8161dddc]{background:#00d4aa21;color:var(--accent2)}.projects-page .project-type.type-app[data-v-8161dddc]{background:#ffaa0021;color:#fa0}.projects-page .project-type.type-desktop[data-v-8161dddc]{background:#ff6b8121;color:#ff6b81}@media (max-width: 768px){.projects-page .projects-grid[data-v-8161dddc]{grid-template-columns:1fr;gap:14px}.projects-page .project-card[data-v-8161dddc]{padding:20px}}.contact-page .contact-box[data-v-6d588342]{background:var(--card);border:1px solid var(--border);border-radius:18px;padding:48px 36px;text-align:center}.contact-page .contact-box h3[data-v-6d588342]{font-size:1.5rem;margin-bottom:10px}.contact-page .contact-box .contact-sub[data-v-6d588342]{color:var(--text2);font-size:.9rem;margin-bottom:36px}.contact-page .contact-grid[data-v-6d588342]{display:flex;justify-content:center;gap:32px;flex-wrap:wrap}.contact-page .contact-item[data-v-6d588342]{display:flex;align-items:center;gap:14px;padding:18px 24px;background:var(--card2);border:1px solid var(--border);border-radius:14px;transition:all .3s;min-width:200px}.contact-page .contact-item[data-v-6d588342]:hover{border-color:var(--accent);transform:translateY(-4px);box-shadow:0 8px 24px #6c63ff1f}.contact-page .ci-icon[data-v-6d588342]{width:44px;height:44px;border-radius:10px;background:#6c63ff1a;display:flex;align-items:center;justify-content:center;font-size:1.3rem;flex-shrink:0}.contact-page .ci-label[data-v-6d588342]{font-size:.78rem;color:var(--text2);margin-bottom:2px}.contact-page .ci-value[data-v-6d588342]{font-size:.95rem;font-weight:500}@media (max-width: 768px){.contact-page .contact-box[data-v-6d588342]{padding:30px 20px}.contact-page .contact-grid[data-v-6d588342]{flex-direction:column;align-items:stretch;gap:12px}.contact-page .contact-item[data-v-6d588342]{min-width:unset}}.knowledge-page .sub-tabs-wrapper[data-v-c441375e]{margin-bottom:28px;overflow-x:auto;scrollbar-width:thin}.knowledge-page .sub-tabs-wrapper[data-v-c441375e]::-webkit-scrollbar{height:4px}.knowledge-page .sub-tabs-wrapper[data-v-c441375e]::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px}.knowledge-page .sub-tabs[data-v-c441375e]{display:flex;gap:8px;min-width:max-content;padding-bottom:4px}.knowledge-page .sub-tab[data-v-c441375e]{display:flex;align-items:center;gap:7px;padding:10px 18px;border-radius:40px;border:1px solid var(--border);background:var(--card);color:var(--text2);font-size:.85rem;font-weight:500;transition:all .25s;white-space:nowrap}.knowledge-page .sub-tab[data-v-c441375e]:hover{border-color:#6c63ff66;color:var(--text);background:#6c63ff0f}.knowledge-page .sub-tab.active[data-v-c441375e]{background:var(--gradient);border-color:transparent;color:#fff;box-shadow:0 4px 16px #6c63ff4d}.knowledge-page .sub-tab.active .sub-tab-count[data-v-c441375e]{background:#ffffff40;color:#fff}.knowledge-page .sub-tab .sub-tab-icon[data-v-c441375e]{font-size:1rem}.knowledge-page .sub-tab .sub-tab-count[data-v-c441375e]{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:50%;font-size:.7rem;background:var(--card2);color:var(--text2)}.knowledge-page .sub-content[data-v-c441375e]{min-height:400px}@media (max-width: 768px){.knowledge-page .sub-tab[data-v-c441375e]{padding:9px 14px;font-size:.8rem}.knowledge-page .sub-tab .sub-tab-name[data-v-c441375e]{display:none}}@media (max-width: 360px){.knowledge-page .sub-tab .sub-tab-count[data-v-c441375e]{display:none}}.fade-slide-enter-active[data-v-c441375e],.fade-slide-leave-active[data-v-c441375e]{transition:all .25s ease}.fade-slide-enter-from[data-v-c441375e]{opacity:0;transform:translate(12px)}.fade-slide-leave-to[data-v-c441375e]{opacity:0;transform:translate(-8px)}.knowledge-sub-page .cat-header[data-v-feb60349]{display:flex;align-items:center;gap:16px;padding:20px 24px;background:var(--card);border:1px solid var(--border);border-radius:14px;margin-bottom:20px}.knowledge-sub-page .cat-header .cat-icon[data-v-feb60349]{width:52px;height:52px;border-radius:14px;background:linear-gradient(135deg,#6c63ff,#00d4aa);display:flex;align-items:center;justify-content:center;font-size:1.4rem;flex-shrink:0}.knowledge-sub-page .cat-header .cat-info[data-v-feb60349]{flex:1}.knowledge-sub-page .cat-header .cat-info .cat-name[data-v-feb60349]{font-size:1.1rem;font-weight:700}.knowledge-sub-page .cat-header .cat-info .cat-brief[data-v-feb60349]{font-size:.83rem;color:var(--text2);margin-top:3px}.knowledge-sub-page .cat-header .cat-badge[data-v-feb60349]{padding:4px 12px;border-radius:20px;background:#6c63ff1a;border:1px solid rgba(108,99,255,.2);color:var(--accent);font-size:.8rem;font-weight:500;flex-shrink:0}.knowledge-sub-page .knowledge-list[data-v-feb60349]{display:flex;flex-direction:column;gap:12px}.knowledge-sub-page .knowledge-item[data-v-feb60349]{background:var(--card);border:1px solid var(--border);border-radius:14px;overflow:hidden;transition:border-color .3s,box-shadow .3s;cursor:pointer}.knowledge-sub-page .knowledge-item[data-v-feb60349]:hover,.knowledge-sub-page .knowledge-item.expanded[data-v-feb60349]{border-color:#6c63ff66;box-shadow:0 6px 24px #6c63ff14}.knowledge-sub-page .k-header[data-v-feb60349]{padding:18px 22px;display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:12px;-webkit-user-select:none;user-select:none}.knowledge-sub-page .k-title[data-v-feb60349]{font-size:.97rem;font-weight:600;color:var(--text);grid-column:1;grid-row:1}.knowledge-sub-page .k-brief[data-v-feb60349]{font-size:.78rem;color:var(--text2);grid-column:1;grid-row:2;margin-top:-6px}.knowledge-sub-page .k-arrow[data-v-feb60349]{grid-column:3;grid-row:1 / 3;font-size:1.1rem;color:var(--text2);transition:transform .3s}.knowledge-sub-page .k-arrow.expanded[data-v-feb60349]{transform:rotate(90deg);color:var(--accent)}.knowledge-sub-page .k-detail[data-v-feb60349]{max-height:0;overflow:hidden;transition:max-height .4s ease}.knowledge-sub-page .k-content[data-v-feb60349]{padding:16px 22px 22px;border-top:1px solid var(--border);font-size:.87rem;color:var(--text2);line-height:1.75}.knowledge-sub-page .k-content[data-v-feb60349] p{margin-bottom:10px}.knowledge-sub-page .k-content[data-v-feb60349] .num{color:var(--accent);font-weight:700;margin-right:2px}@media (max-width: 768px){.knowledge-sub-page .cat-header[data-v-feb60349]{padding:16px 18px;gap:12px}.knowledge-sub-page .cat-header .cat-icon[data-v-feb60349]{width:44px;height:44px;font-size:1.2rem}.knowledge-sub-page .cat-header .cat-name[data-v-feb60349]{font-size:1rem}.knowledge-sub-page .k-header[data-v-feb60349]{padding:16px 18px}.knowledge-sub-page .k-content[data-v-feb60349]{padding:14px 18px 18px}}.app-wrapper[data-v-7dfb7bef]{min-height:100vh;display:flex;flex-direction:column}.hero[data-v-7dfb7bef]{position:relative;z-index:1;padding:60px 20px 50px;text-align:center;background:linear-gradient(180deg,rgba(108,99,255,.05) 0%,transparent 100%);border-bottom:1px solid var(--border)}.hero .hero-inner[data-v-7dfb7bef]{max-width:900px;margin:0 auto;display:flex;flex-direction:column;align-items:center;gap:20px}.hero .hero-avatar[data-v-7dfb7bef]{width:120px;height:120px;border-radius:50%;object-fit:cover;border:4px solid rgba(108,99,255,.4);box-shadow:0 8px 32px #6c63ff40;transition:transform .4s}.hero .hero-avatar[data-v-7dfb7bef]:hover{transform:scale(1.06)}.hero .hero-content h1[data-v-7dfb7bef]{font-size:clamp(2rem,5vw,3rem);font-weight:800;margin-bottom:8px;background:linear-gradient(135deg,#6c63ff,#00d4aa);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.hero .hero-content .subtitle[data-v-7dfb7bef]{font-size:clamp(1rem,2.2vw,1.3rem);color:var(--accent2);margin-bottom:14px;font-weight:600}.hero .hero-content .meta[data-v-7dfb7bef]{display:flex;justify-content:center;gap:20px;flex-wrap:wrap;color:var(--text2);font-size:.88rem}.hero .badges[data-v-7dfb7bef]{margin-top:20px;display:flex;justify-content:center;gap:8px;flex-wrap:wrap}.hero .badge[data-v-7dfb7bef]{padding:5px 14px;border-radius:20px;font-size:.78rem;font-weight:500;border:1px solid var(--border);background:#6c63ff14;transition:all .3s}.hero .badge[data-v-7dfb7bef]:hover{border-color:var(--accent);background:#6c63ff26;transform:translateY(-2px)}.main-nav[data-v-7dfb7bef]{position:sticky;top:0;z-index:100;background:#0a0a1aeb;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-bottom:1px solid rgba(108,99,255,.15)}.main-nav .nav-inner[data-v-7dfb7bef]{max-width:1050px;margin:0 auto;display:flex;align-items:center;padding:0 20px}.main-nav .nav-toggle[data-v-7dfb7bef]{display:none;background:none;border:none;color:var(--text);font-size:1.3rem;cursor:pointer;padding:14px 8px;margin-right:8px;flex-shrink:0}.main-nav .nav-tabs[data-v-7dfb7bef]{display:flex;gap:2px;width:100%}.main-nav .nav-tab[data-v-7dfb7bef]{display:flex;align-items:center;gap:6px;padding:16px 18px;color:var(--text2);font-size:.88rem;font-weight:500;transition:all .25s;position:relative;white-space:nowrap;border-bottom:2px solid transparent}.main-nav .nav-tab[data-v-7dfb7bef]:after{content:"";position:absolute;bottom:-2px;left:0;width:0;height:2px;background:linear-gradient(135deg,#6c63ff,#00d4aa);transition:width .3s}.main-nav .nav-tab[data-v-7dfb7bef]:hover{color:var(--accent)}.main-nav .nav-tab[data-v-7dfb7bef]:hover:after{width:100%}.main-nav .nav-tab.active[data-v-7dfb7bef]{color:var(--accent)}.main-nav .nav-tab.active[data-v-7dfb7bef]:after{width:100%}.main-nav .nav-tab .tab-icon[data-v-7dfb7bef]{font-size:1rem}.content[data-v-7dfb7bef]{flex:1;position:relative;z-index:1}.footer[data-v-7dfb7bef]{text-align:center;padding:28px 20px;color:var(--text2);font-size:.8rem;border-top:1px solid var(--border);position:relative;z-index:1}.fade-slide-enter-active[data-v-7dfb7bef],.fade-slide-leave-active[data-v-7dfb7bef]{transition:all .3s ease}.fade-slide-enter-from[data-v-7dfb7bef]{opacity:0;transform:translateY(16px)}.fade-slide-leave-to[data-v-7dfb7bef]{opacity:0;transform:translateY(-8px)}@media (max-width: 768px){.hero[data-v-7dfb7bef]{padding:40px 16px 36px}.hero .hero-avatar[data-v-7dfb7bef]{width:95px;height:95px}.hero .hero-content h1[data-v-7dfb7bef]{font-size:1.7rem}.hero .hero-content .subtitle[data-v-7dfb7bef]{font-size:.95rem}.hero .hero-content .meta[data-v-7dfb7bef]{gap:12px;font-size:.8rem}.hero .badge[data-v-7dfb7bef]{padding:4px 10px;font-size:.72rem}.main-nav .nav-toggle[data-v-7dfb7bef]{display:block}.main-nav .nav-inner[data-v-7dfb7bef]{flex-direction:column;align-items:flex-start;padding:0 16px}.main-nav .nav-tabs[data-v-7dfb7bef]{display:none;flex-direction:column;width:100%;padding-bottom:12px}.main-nav .nav-tabs.open[data-v-7dfb7bef]{display:flex}.main-nav .nav-tab[data-v-7dfb7bef]{padding:12px 8px;font-size:.9rem;border-bottom:none;border-left:2px solid transparent}.main-nav .nav-tab[data-v-7dfb7bef]:after{display:none}.main-nav .nav-tab.active[data-v-7dfb7bef]{border-left-color:var(--accent);background:#6c63ff0f}}*{margin:0;padding:0;box-sizing:border-box}:root{--bg: #0a0a1a;--card: #12122a;--card2: #1a1a3e;--accent: #6c63ff;--accent2: #00d4aa;--text: #e8e8f0;--text2: #a0a0c0;--border: #2a2a5a;--gradient: linear-gradient(135deg, #6c63ff, #00d4aa);--radius: 14px}body{font-family:Noto Sans SC,Inter,sans-serif;background:var(--bg);color:var(--text);line-height:1.7;overflow-x:hidden;font-size:15px}a{text-decoration:none;color:inherit}ul{list-style:none;padding:0}.bg-particles{position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:0;overflow:hidden}.particle{position:absolute;border-radius:50%;opacity:.12;background:var(--accent);animation:float 20s infinite ease-in-out}@keyframes float{0%,to{transform:translateY(0) rotate(0)}50%{transform:translateY(-80px) rotate(180deg)}}.page-view{max-width:1050px;margin:0 auto;padding:48px 24px 60px}@media (max-width: 768px){.page-view{padding:32px 16px 48px}}.section-header{display:flex;align-items:center;gap:14px;margin-bottom:32px}.section-header .section-icon{width:40px;height:40px;border-radius:11px;background:var(--gradient);display:flex;align-items:center;justify-content:center;font-size:1.1rem;flex-shrink:0}.section-header h2{font-size:1.7rem;font-weight:700;flex:1}@media (max-width: 768px){.section-header h2{font-size:1.35rem}}.section-header:after{content:"";flex:1;height:1px;background:linear-gradient(90deg,var(--border),transparent);margin-left:12px}.fade-in{opacity:0;transform:translateY(20px);transition:all .55s cubic-bezier(.4,0,.2,1)}.fade-in{opacity:0;transform:translateY(25px);transition:all .65s cubic-bezier(.4,0,.2,1)}.fade-in.visible{opacity:1;transform:translateY(0)}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:var(--bg)}::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--accent)}
