.lang-switch[data-v-e6c743a2]{border:1px solid var(--border);background:#94a3b814;border-radius:10px;align-items:center;gap:2px;padding:3px;display:inline-flex}.lang-btn[data-v-e6c743a2]{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:7px;padding:4px 10px;font-family:inherit;font-size:13px;font-weight:600;transition:all .18s}.lang-btn[data-v-e6c743a2]:hover{color:var(--text)}.lang-btn.active[data-v-e6c743a2]{color:#fff;background:linear-gradient(135deg,#3b82f6,#2563eb);box-shadow:0 2px 10px #3b82f666}.navbar[data-v-8fbc4af8]{z-index:1000;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom:1px solid var(--border);background:#090e1ab8;position:fixed;top:0;left:0;right:0}.nav-inner[data-v-8fbc4af8]{justify-content:space-between;align-items:center;gap:24px;height:70px;display:flex}.logo[data-v-8fbc4af8]{letter-spacing:-.02em;color:var(--text);align-items:center;gap:10px;font-size:24px;font-weight:800;display:inline-flex}.logo[data-v-8fbc4af8]:hover{color:var(--text)}.logo-icon[data-v-8fbc4af8]{image-rendering:pixelated;border-radius:6px}.links[data-v-8fbc4af8]{align-items:center;gap:28px;display:flex}.links a[data-v-8fbc4af8]{color:var(--text-muted);padding:6px 2px;font-size:16px;position:relative}.links a[data-v-8fbc4af8]:hover,.links a.router-link-active[data-v-8fbc4af8]{color:var(--text)}.links a.router-link-active[data-v-8fbc4af8]:after{content:"";background:linear-gradient(90deg, var(--accent), var(--accent-mc));border-radius:2px;height:2px;position:absolute;bottom:-4px;left:0;right:0}.mobile-right[data-v-8fbc4af8]{align-items:center;gap:12px;display:none}.menu-toggle[data-v-8fbc4af8]{cursor:pointer;color:var(--text-muted);background:0 0;border:none;padding:8px;font-size:22px;line-height:1;transition:color .2s;display:none}.menu-toggle[data-v-8fbc4af8]:hover,.menu-toggle.open[data-v-8fbc4af8]{color:var(--text)}.mobile-menu[data-v-8fbc4af8]{display:none}.slide-enter-active[data-v-8fbc4af8]{transition:all .25s ease-out}.slide-leave-active[data-v-8fbc4af8]{transition:all .2s ease-in}.slide-enter-from[data-v-8fbc4af8]{opacity:0;transform:translateY(-10px)}.slide-leave-to[data-v-8fbc4af8]{opacity:0;transform:translateY(-8px)}@media (width<=768px){.desktop-links[data-v-8fbc4af8]{display:none}.mobile-right[data-v-8fbc4af8]{display:flex}.menu-toggle[data-v-8fbc4af8]{justify-content:center;align-items:center;display:flex}.mobile-menu[data-v-8fbc4af8]{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border:1px solid var(--border);background:#0a0f1cf5;border-radius:12px;flex-direction:column;gap:4px;min-width:170px;padding:8px;display:flex;position:absolute;top:70px;right:12px;box-shadow:0 8px 32px #00000080}.mobile-menu a[data-v-8fbc4af8]{color:var(--text-muted);border-radius:8px;padding:10px 16px;font-size:15px;display:block}.mobile-menu a.router-link-active[data-v-8fbc4af8]{color:var(--text);background:#3b82f61f}}.bottom-bar[data-v-6989d9e8]{z-index:100;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-top:1px solid var(--border);color:var(--text-muted);background:#090e1ad9;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding:22px 32px;font-size:14px;display:flex;position:relative}.bottom-bar a[data-v-6989d9e8]{color:var(--text-muted);transition:color .2s}.bottom-bar a[data-v-6989d9e8]:hover{color:var(--text)}.left[data-v-6989d9e8]{align-items:center;gap:20px;display:flex}.copyright[data-v-6989d9e8]{font-size:14px;font-weight:500}.powered[data-v-6989d9e8]{font-family:var(--font-mono);color:#94a3b899;font-size:12.5px}.right[data-v-6989d9e8]{align-items:center;gap:12px;display:flex}.top-btn[data-v-6989d9e8]{border:1px solid var(--border);color:var(--text-muted);cursor:pointer;background:0 0;border-radius:9px;padding:7px 16px;font-family:inherit;font-size:13.5px;transition:all .2s}.top-btn[data-v-6989d9e8]:hover{border-color:var(--border-strong);color:var(--text);background:#3b82f614}@media (width<=768px){.bottom-bar[data-v-6989d9e8]{text-align:center;flex-direction:column;gap:12px;padding:20px 24px}.left[data-v-6989d9e8],.right[data-v-6989d9e8]{justify-content:center}}.tips-container[data-v-8db2e7e0]{z-index:99999;pointer-events:none;position:fixed;top:84px;left:0;right:0}.tip[data-v-8db2e7e0]{--y:0px;transform:translateX(-50%) translateY(var(--y));will-change:transform;box-sizing:border-box;border:1px solid var(--border);-webkit-backdrop-filter:blur(12px);width:fit-content;max-width:min(768px,100vw - 32px);min-height:46px;color:var(--text);background:#0d1322f0;border-radius:12px;align-items:center;gap:10px;padding:11px 16px;transition:transform .35s cubic-bezier(.22,1,.36,1);animation:.3s tip-in-8db2e7e0;display:flex;position:absolute;top:0;left:50%;box-shadow:0 8px 32px #0006}@keyframes tip-in-8db2e7e0{0%{opacity:0;transform:translateX(-50%) translateY(calc(var(--y) - 16px))}to{opacity:1;transform:translateX(-50%) translateY(var(--y))}}.tip.leaving[data-v-8db2e7e0]{animation:.3s forwards tip-out-8db2e7e0}@keyframes tip-out-8db2e7e0{to{opacity:0;transform:translateX(-50%) translateY(calc(var(--y) + 12px)) scale(.95)}}.tip-icon[data-v-8db2e7e0]{flex-shrink:0}.tip.info .tip-icon[data-v-8db2e7e0]{color:var(--accent)}.tip.warning .tip-icon[data-v-8db2e7e0]{color:#f59e0b}.tip.error .tip-icon[data-v-8db2e7e0]{color:#f87171}.tip-content[data-v-8db2e7e0]{word-break:break-word;white-space:pre-wrap;font-size:14px;line-height:1.5}.project-card[data-v-417eabf1]{flex-direction:column;gap:12px;padding:22px;transition:transform .2s,border-color .2s,box-shadow .2s;display:flex;position:relative;overflow:hidden}.project-card[data-v-417eabf1]:before{content:"";background:linear-gradient(90deg, transparent, var(--accent), transparent);opacity:0;height:2px;transition:opacity .2s;position:absolute;inset:0 0 auto}.project-card.mc[data-v-417eabf1]:before{background:linear-gradient(90deg, transparent, var(--accent-mc), transparent)}.project-card[data-v-417eabf1]:hover{border-color:#94a3b859;transform:translateY(-4px);box-shadow:0 12px 32px #00000073}.project-card[data-v-417eabf1]:hover:before{opacity:1}.card-head[data-v-417eabf1]{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.card-title[data-v-417eabf1]{font-size:18px;font-weight:700;line-height:1.3}.card-sub[data-v-417eabf1]{font-family:var(--font-mono);color:var(--text-muted);word-break:break-all;margin-top:3px;font-size:12px}.featured[data-v-417eabf1]{color:var(--accent-mc);font-size:18px}.card-desc[data-v-417eabf1]{color:var(--text-muted);flex:1;font-size:14.5px;line-height:1.65}.card-tags[data-v-417eabf1]{flex-wrap:wrap;gap:6px;display:flex}.card-foot[data-v-417eabf1]{border-top:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:12px;padding-top:12px;display:flex}.meta[data-v-417eabf1]{font-family:var(--font-mono);color:var(--text-muted);align-items:center;gap:6px;font-size:12.5px;display:inline-flex}.meta.stars[data-v-417eabf1]{color:#fbbf24}.lang-dot[data-v-417eabf1]{border-radius:50%;width:10px;height:10px;display:inline-block}.card-link[data-v-417eabf1]{color:var(--accent-2);white-space:nowrap;margin-left:auto;font-size:13.5px;font-weight:600}.card-link[data-v-417eabf1]:hover{color:#bfdbfe}.hero[data-v-10133dc1]{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:14px;min-height:calc(100vh - 170px);padding:48px 0 72px;display:flex}.avatar-wrap[data-v-10133dc1]{cursor:default;-webkit-user-select:none;user-select:none;touch-action:manipulation;width:108px;height:108px;margin-bottom:12px;position:relative}.avatar[data-v-10133dc1]{object-fit:cover;border:2px solid #94a3b84d;border-radius:50%;width:108px;height:108px;box-shadow:0 0 0 6px #3b82f61f,0 0 42px #3b82f659}.avatar-placeholder[data-v-10133dc1]{border:2px solid var(--border-strong);color:var(--accent-2);background:var(--surface-2);border-radius:50%;justify-content:center;align-items:center;font-size:44px;font-weight:800;display:flex;box-shadow:0 0 42px #3b82f659}.hero-greeting[data-v-10133dc1]{color:var(--text-muted);font-size:20px}.hero-name[data-v-10133dc1]{letter-spacing:-.03em;font-size:clamp(44px,9vw,84px);font-weight:900;line-height:1.1}.hero-tagline[data-v-10133dc1]{color:var(--text);font-size:clamp(16px,2.4vw,21px)}.hero-skills[data-v-10133dc1]{font-family:var(--font-mono);color:var(--text-muted);border:1px solid var(--border);background:#94a3b80d;border-radius:999px;padding:8px 18px;font-size:14px}.hero-actions[data-v-10133dc1]{flex-wrap:wrap;justify-content:center;gap:14px;margin-top:14px;display:flex}.hero-notice[data-v-10133dc1]{justify-content:center;margin-top:18px;margin-bottom:0}.stats[data-v-10133dc1]{flex-wrap:wrap;justify-content:center;gap:18px;margin-top:36px;display:flex}.stat[data-v-10133dc1]{flex-direction:column;align-items:center;gap:2px;min-width:128px;padding:16px 24px;display:flex}.stat-num[data-v-10133dc1]{background:linear-gradient(120deg, var(--accent-2), var(--accent-mc));color:#0000;-webkit-background-clip:text;background-clip:text;font-size:26px;font-weight:800}.stat-label[data-v-10133dc1]{color:var(--text-muted);font-size:13px}.featured[data-v-10133dc1]{padding:24px 0 48px}.featured-grid[data-v-10133dc1]{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:20px;display:grid}.view-all[data-v-10133dc1]{justify-content:center;margin-top:28px;display:flex}.page-head[data-v-a12fb33e]{padding-top:8px}.state[data-v-a12fb33e]{color:var(--text-muted);flex-direction:column;align-items:center;gap:14px;padding:80px 0;font-size:15px;display:flex}.projects-grid[data-v-a12fb33e]{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:20px;padding-bottom:40px;display:grid}.page-head[data-v-88c18d2b]{margin-bottom:28px;padding-top:8px}.intro[data-v-88c18d2b]{flex-direction:column;gap:10px;max-width:760px;padding:28px;display:flex}.intro-text[data-v-88c18d2b]{font-size:16.5px;line-height:1.75}.intro-meta[data-v-88c18d2b]{flex-wrap:wrap;gap:10px;margin-top:14px;display:flex}.block[data-v-88c18d2b]{margin-top:44px}.skill-cloud[data-v-88c18d2b]{flex-wrap:wrap;gap:10px;display:flex}.ec-desc[data-v-88c18d2b]{max-width:760px;color:var(--text-muted);margin-bottom:18px;font-size:15.5px;line-height:1.75}.games-grid[data-v-88c18d2b]{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:18px;max-width:760px;display:grid}.game-card[data-v-88c18d2b]{flex-direction:column;align-items:center;gap:12px;padding:24px 16px 18px;transition:transform .2s,border-color .2s,box-shadow .2s;display:flex}.game-card[data-v-88c18d2b]:hover{border-color:#94a3b866;transform:translateY(-4px);box-shadow:0 12px 32px #00000073}.game-icon[data-v-88c18d2b]{object-fit:cover;border-radius:14px;width:72px;height:72px}.game-icon[src$=\.svg][data-v-88c18d2b]{border-radius:10px}.game-name[data-v-88c18d2b]{color:var(--text);font-size:14px;font-weight:600}.stack-desc[data-v-88c18d2b]{color:var(--text-muted);margin-bottom:16px;font-size:14.5px}.ec-links[data-v-88c18d2b]{flex-wrap:wrap;gap:12px;display:flex}.ec-link[data-v-88c18d2b]{border:1px solid var(--border);background:var(--surface-2);font-family:var(--font-mono);color:var(--text);border-radius:10px;padding:8px 18px;font-size:13.5px;transition:all .2s}.ec-link[data-v-88c18d2b]:hover{border-color:var(--border-strong);transform:translateY(-2px)}.link-grid[data-v-88c18d2b]{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:18px;display:grid}.link-card[data-v-88c18d2b]{flex-direction:column;gap:4px;padding:20px;transition:all .2s;display:flex;position:relative}.link-card[data-v-88c18d2b]:hover{border-color:#94a3b866;transform:translateY(-4px);box-shadow:0 12px 32px #00000073}.link-card.mc[data-v-88c18d2b]:hover{border-color:#4ade8073;box-shadow:0 12px 32px #4ade801a}.link-tag[data-v-88c18d2b]{font-family:var(--font-mono);color:var(--text-muted);font-size:12px}.link-title[data-v-88c18d2b]{font-size:18px;font-weight:700}.link-desc[data-v-88c18d2b]{color:var(--text-muted);font-size:14px}.link-arrow[data-v-88c18d2b]{color:var(--text-muted);font-size:18px;transition:all .2s;position:absolute;top:18px;right:18px}.link-card:hover .link-arrow[data-v-88c18d2b]{color:var(--text);transform:translate(2px,-2px)}.egg[data-v-2b4910bc]{text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:calc(100vh - 170px);display:flex}.egg-start[data-v-2b4910bc]{flex-direction:column;align-items:center;gap:16px;padding:32px 0;display:flex}.egg-badge[data-v-2b4910bc]{filter:drop-shadow(0 0 24px #4ade8059);font-size:56px}.egg-hint[data-v-2b4910bc]{color:var(--text-muted);margin-bottom:8px;font-size:15px}.egg-btn[data-v-2b4910bc]{border-radius:14px;padding:14px 40px;font-size:18px;animation:none}.egg-btn[data-v-2b4910bc]:hover{box-shadow:0 8px 40px #3b82f68c,inset 0 0 0 1px #3b82f666}.egg-video[data-v-2b4910bc]{flex-direction:column;align-items:center;gap:24px;width:100%;max-width:920px;display:flex}.player-wrap[data-v-2b4910bc]{aspect-ratio:16/9;border-radius:var(--radius);border:1px solid var(--border);background:#000;width:100%;overflow:hidden;box-shadow:0 0 60px #3b82f633}.player[data-v-2b4910bc]{border:none;width:100%;height:100%;display:block}.egg-back[data-v-2b4910bc]{align-self:center}.notfound[data-v-cb26bb8c]{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:12px;min-height:60vh;padding-top:10vh;display:flex}.code[data-v-cb26bb8c]{letter-spacing:-.04em;cursor:default;-webkit-user-select:none;user-select:none;touch-action:manipulation;font-size:clamp(72px,16vw,140px);font-weight:900;line-height:1}.title[data-v-cb26bb8c]{font-size:26px;font-weight:700}.desc[data-v-cb26bb8c]{color:var(--text-muted);margin-bottom:14px}:root{--bg:#070b14;--bg-soft:#0f172a;--surface:#11192db8;--surface-2:#1e293b8c;--border:#94a3b824;--border-strong:#3b82f673;--text:#e5edf7;--text-muted:#94a3b8;--accent:#3b82f6;--accent-2:#60a5fa;--accent-mc:#4ade80;--danger:#f87171;--radius:14px;--shadow-glow:0 0 24px #3b82f640;--font-sans:"Inter", "Segoe UI", system-ui, -apple-system, "PingFang SC", "Microsoft YaHei", sans-serif;--font-mono:"JetBrains Mono", "Cascadia Code", Consolas, "Courier New", monospace}*{box-sizing:border-box;margin:0;padding:0}html{scrollbar-color:#94a3b859 transparent}body{background:var(--bg);color:var(--text);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;line-height:1.6;overflow-x:hidden}#app{min-height:100vh}a{color:var(--accent-2);text-decoration:none;transition:color .2s}a:hover{color:#bfdbfe}img{max-width:100%;display:block}::selection{color:#fff;background:#3b82f659}::-webkit-scrollbar{width:10px}::-webkit-scrollbar-track{background:var(--bg)}::-webkit-scrollbar-thumb{border:2px solid var(--bg);background:#94a3b840;border-radius:6px}::-webkit-scrollbar-thumb:hover{background:#94a3b873}.bg-effects{z-index:-1;pointer-events:none;position:fixed;inset:0;overflow:hidden}.bg-grid{background-image:linear-gradient(#94a3b80d 1px,#0000 1px),linear-gradient(90deg,#94a3b80d 1px,#0000 1px);background-size:44px 44px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(90% 65% at 50% 0,#000 25%,#0000 78%);mask-image:radial-gradient(90% 65% at 50% 0,#000 25%,#0000 78%)}.glow{filter:blur(120px);border-radius:50%;position:absolute}.glow-blue{background:radial-gradient(circle,#3b82f673,#0000 70%);width:620px;height:620px;top:-180px;left:6%}.glow-green{background:radial-gradient(circle,#4ade8038,#0000 70%);width:520px;height:520px;top:32%;right:-160px}.glow-cursor{filter:none;opacity:0;will-change:transform;background:radial-gradient(circle,#3b82f657 0%,#3b82f61f 38%,#0000 70%);border-radius:50%;width:520px;height:520px;transition:opacity .35s;top:0;left:0}.container{width:100%;max-width:1080px;margin:0 auto;padding:0 24px}.page{min-height:100vh;padding-top:96px;padding-bottom:56px}.section-title{letter-spacing:-.02em;margin:0 0 8px;font-size:clamp(26px,4vw,36px);font-weight:800}.section-sub{color:var(--text-muted);margin:0 0 32px;font-size:16px}.text-gradient{background:linear-gradient(120deg, var(--accent-2), #93c5fd 45%, var(--accent-mc));color:#0000;-webkit-background-clip:text;background-clip:text}.btn{color:var(--text);cursor:pointer;border:1px solid #0000;border-radius:12px;justify-content:center;align-items:center;gap:8px;padding:12px 26px;font-family:inherit;font-size:16px;font-weight:600;transition:all .2s;display:inline-flex}.btn-primary{color:#fff;background:linear-gradient(135deg,#3b82f6,#2563eb);box-shadow:0 4px 18px #3b82f659}.btn-primary:hover{color:#fff;transform:translateY(-2px);box-shadow:0 8px 26px #3b82f680}.btn-ghost{background:#94a3b80f;border-color:#94a3b840}.btn-ghost:hover{color:var(--text);background:#94a3b81a;border-color:#94a3b88c}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.chip{color:#93c5fd;background:#3b82f61f;border:1px solid #3b82f640;border-radius:999px;align-items:center;padding:3px 12px;font-size:12.5px;font-weight:500;display:inline-flex}.chip-mc{color:#86efac;background:#4ade801a;border-color:#4ade8047}@keyframes fadeUp{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}.fade-up{animation:.5s both fadeUp}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.float{animation:5s ease-in-out infinite float}.page-enter-active,.page-leave-active{transition:opacity .18s,transform .18s}.page-enter-from{opacity:0;transform:translateY(10px)}.page-leave-to{opacity:0;transform:translateY(-6px)}.spinner{border:3px solid #94a3b833;border-top-color:var(--accent);border-radius:50%;width:28px;height:28px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.notice{color:#fde68a;background:#eab30814;border:1px solid #eab3084d;border-radius:10px;align-items:center;gap:10px;margin-bottom:24px;padding:10px 16px;font-size:14px;display:flex}@media (width<=640px){.page{padding-top:84px}}
