:root{--color-primary:#3b82f6;--color-primary-dark:#2563eb;--color-primary-light:#60a5fa;--color-accent:#8b5cf6;--color-accent-dark:#7c3aed;--color-brand:#00dc82;--color-brand-rgb:0,220,130;--color-brand-light:rgba(0,220,130,.15);--color-brand-lighter:rgba(0,220,130,.08);--color-brand-medium:rgba(0,220,130,.3);--color-brand-dark:rgba(0,220,130,.5);--color-brand-text:#a7f3d0;--color-brand-text-bright:#b3ffe0;--color-brand-hover:#1fe696;--color-text-heading:#e2f0ff;--color-text-link:#b8d6ff;--color-text-muted-blue:#9ab3d0;--color-border-brand:rgba(0,220,130,.15);--color-border-brand-hover:rgba(0,220,130,.35);--color-badge-success-border:#10b981;--color-badge-success-text:#a7f3d0;--color-badge-success-bg:rgba(16,185,129,.15);--color-badge-info-border:#38bdf8;--color-badge-info-text:#bae6fd;--color-badge-info-bg:rgba(56,189,248,.12);--color-bg-nav:rgba(10,20,28,.45);--color-bg-nav-scrolled:rgba(10,20,28,.85);--color-bg-sidebar:rgba(10,18,26,.85);--color-bg-dark-item:rgba(15,28,38,.45);--color-bg-dark-item-hover:rgba(20,45,55,.6);--color-bg-announcement:rgba(0,40,30,.3);--color-gradient-logo:linear-gradient(135deg,#e0f2fe,#a7f3d0);--color-gradient-cover:linear-gradient(145deg,#0e2a2a,#173e3e);--color-close-icon:#f87171;--color-wechat-green:#07c160;--glass-bg-dark:rgba(20,30,40,.5);--glass-bg-dark-hover:rgba(25,40,55,.6);--color-success:#10b981;--color-warning:#f59e0b;--color-error:#ef4444;--color-info:#3b82f6;--color-text-primary:hsla(0,0%,100%,.9);--color-text-secondary:hsla(0,0%,100%,.7);--color-text-tertiary:hsla(0,0%,100%,.5);--color-text-muted:hsla(0,0%,100%,.4);--color-bg-primary:hsla(0,0%,100%,.05);--color-bg-secondary:hsla(0,0%,100%,.1);--color-bg-tertiary:hsla(0,0%,100%,.15);--color-bg-overlay:rgba(0,0,0,.5);--color-border-primary:hsla(0,0%,100%,.1);--color-border-secondary:hsla(0,0%,100%,.2);--color-border-focus:rgba(59,130,246,.5);--spacing-xs:.25rem;--spacing-sm:.5rem;--spacing-md:1rem;--spacing-lg:1.5rem;--spacing-xl:2rem;--spacing-2xl:3rem;--spacing-3xl:4rem;--font-size-xs:.75rem;--font-size-sm:.875rem;--font-size-base:1rem;--font-size-lg:1.125rem;--font-size-xl:1.25rem;--font-size-2xl:1.5rem;--font-size-3xl:1.875rem;--font-size-4xl:2.25rem;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--line-height-tight:1.25;--line-height-normal:1.5;--line-height-relaxed:1.75;--radius-sm:.375rem;--radius-md:.5rem;--radius-lg:.75rem;--radius-xl:1rem;--radius-2xl:1.5rem;--radius-full:9999px;--shadow-sm:0 1px 2px 0 rgba(0,0,0,.05);--shadow-md:0 4px 6px -1px rgba(0,0,0,.1);--shadow-lg:0 10px 15px -3px rgba(0,0,0,.1);--shadow-xl:0 20px 25px -5px rgba(0,0,0,.1);--shadow-glass:0 8px 32px 0 rgba(31,38,135,.37);--glass-bg:hsla(0,0%,100%,.05);--glass-border:hsla(0,0%,100%,.1);--glass-blur:16px;--transition-fast:.15s;--transition-base:.3s;--transition-slow:.5s;--transition-ease:cubic-bezier(.4,0,.2,1);--transition-ease-in:cubic-bezier(.4,0,1,1);--transition-ease-out:cubic-bezier(0,0,.2,1);--z-index-dropdown:1000;--z-index-sticky:1020;--z-index-fixed:1030;--z-index-modal-backdrop:1040;--z-index-modal:1050;--z-index-popover:1060;--z-index-tooltip:1070;--container-sm:640px;--container-md:768px;--container-lg:1024px;--container-xl:1280px;--container-2xl:1536px}@media(prefers-color-scheme:dark){:root{--color-bg-primary:rgba(0,0,0,.2);--color-bg-secondary:rgba(0,0,0,.3)}}*,:after,:before{box-sizing:border-box}*{margin:0;padding:0}html{font-size:16px;-webkit-text-size-adjust:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{background-color:#0f172a;color:var(--color-text-primary);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:var(--font-size-base);line-height:var(--line-height-normal)}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:var(--font-weight-semibold);line-height:var(--line-height-tight)}ol,ul{list-style:none}a{color:inherit;text-decoration:none}img,video{display:block;height:auto;max-width:100%}button{background:none;cursor:pointer}button,input,select,textarea{border:none;color:inherit;font-family:inherit;font-size:inherit}input,select,textarea{background:transparent;outline:none}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield}textarea{resize:vertical}table{border-collapse:collapse;border-spacing:0}::-moz-selection{background-color:var(--color-primary);color:#fff}::selection{background-color:var(--color-primary);color:#fff}:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.navbar{align-items:center;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);background:var(--color-bg-nav);border:1px solid var(--color-border-brand);border-radius:60px;box-shadow:0 20px 35px -10px #00000060;display:flex;justify-content:space-between;left:50%;margin-bottom:28px;max-width:1440px;padding:10px 28px;position:fixed;top:0;transform:translate(-50%);transition:all .3s ease;width:calc(100% - 48px);z-index:100}.navbar-scrolled{background:var(--color-bg-nav-scrolled);box-shadow:0 20px 35px -10px #00000080,0 0 20px rgba(var(--color-brand-rgb),.08)}.logo{align-items:center;background:var(--color-gradient-logo);-webkit-background-clip:text;background-clip:text;color:transparent;display:flex;font-size:1.7rem;font-weight:700;gap:8px;letter-spacing:-.02em}.logo i{color:var(--color-brand);text-shadow:0 0 15px var(--color-brand)}.nav-links{display:flex;flex-wrap:wrap;gap:30px}.nav-links a{border-bottom:2px solid transparent;color:var(--color-text-secondary);font-size:1rem;font-weight:500;padding:6px 2px;text-decoration:none;transition:.2s}.nav-links a:hover{border-bottom-color:var(--color-brand);color:#fff}@media(max-width:768px){.navbar{border-radius:40px;margin-bottom:16px;padding:8px 16px;width:calc(100% - 24px)}.logo{font-size:1.3rem}.nav-links{gap:16px}.nav-links a{font-size:.85rem;padding:4px 2px}}@media(max-width:480px){.nav-links{gap:12px}.nav-links a{font-size:.8rem}}.btn-nuxt{align-items:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:rgba(var(--color-brand-rgb),.08);border:1px solid rgba(var(--color-brand-rgb),.3);border-radius:40px;box-shadow:0 4px 12px #0000001a;color:#d0f0e0;cursor:pointer;display:inline-flex;font-size:.9rem;font-weight:500;gap:8px;letter-spacing:.2px;padding:10px 20px;transition:all .2s}.btn-nuxt i{font-size:1rem}.btn-nuxt:hover{background:rgba(var(--color-brand-rgb),.2);border-color:var(--color-brand);box-shadow:0 8px 18px -6px rgba(var(--color-brand-rgb),.25);color:#fff;transform:translateY(-1px)}.btn-nuxt-primary{background:var(--color-brand);border-color:var(--color-brand);box-shadow:0 8px 20px -8px var(--color-brand);color:#0a1a1a;font-weight:600}.btn-nuxt-primary:hover{background:var(--color-brand-hover);border-color:var(--color-brand-hover);color:#0a1a1a}.btn-nuxt-outline-blue{background:rgba(var(--color-primary-rgb,59,130,246),.05);border-color:var(--color-primary);color:var(--color-text-link)}.btn-nuxt-outline-blue:hover{background:rgba(var(--color-primary-rgb,59,130,246),.2);border-color:var(--color-primary-light);color:#fff}.badge{align-items:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0003;border:1px solid;border-radius:40px;display:inline-flex;font-size:.75rem;font-weight:600;letter-spacing:.3px;padding:4px 14px;white-space:nowrap}.badge-success{background:var(--color-badge-success-bg);border-color:var(--color-badge-success-border);color:var(--color-badge-success-text)}.badge-info{background:var(--color-badge-info-bg);border-color:var(--color-badge-info-border);color:var(--color-badge-info-text)}.announcement{align-items:center;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:var(--color-bg-announcement);border:1px solid rgba(var(--color-brand-rgb),.2);border-left:6px solid var(--color-brand);border-radius:0 30px 30px 0;display:flex;justify-content:space-between;margin-bottom:30px;margin-left:296px;margin-right:336px;padding:14px 28px;position:relative;z-index:60}.announce-close{color:var(--color-close-icon);cursor:pointer;font-size:1.6rem;transition:.2s}@media(max-width:850px){.announcement{border-radius:0 16px 16px 0;margin-left:0;margin-right:0;padding:12px 16px}.announcement-content{font-size:.9rem;gap:10px!important}.announcement-icon{font-size:1.2rem!important}.announce-close{font-size:1.3rem}}.dashboard-grid{align-items:start;display:grid;gap:26px;grid-template-columns:270px 1fr 310px}.sidebar-title{align-items:center;color:var(--color-brand-text);display:flex;font-size:1.5rem;font-weight:600;gap:10px;letter-spacing:-.02em;margin-bottom:22px}.project-list{display:flex;flex-direction:column;gap:12px}.project-item{align-items:center;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:var(--color-bg-dark-item);border:1px solid rgba(var(--color-brand-rgb),.2);border-radius:20px;cursor:pointer;display:flex;gap:8px;justify-content:space-between;padding:14px 20px;transition:all .2s}.project-item:hover{background:var(--color-bg-dark-item-hover);border-color:var(--color-brand)}.project-item .project-name{align-items:center;display:flex;flex:1;font-weight:500;gap:8px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.project-item .badge{flex-shrink:0}.main-content{display:flex;flex-direction:column;gap:32px}.section-header{align-items:baseline;display:flex;gap:16px;margin-bottom:8px}.section-header h2{color:var(--color-text-heading);font-size:1.8rem;font-weight:600}.section-badge{background:rgba(var(--color-brand-rgb),.08);border:1px solid rgba(var(--color-brand-rgb),.3);border-radius:40px;color:var(--color-brand-text);font-size:.85rem;padding:2px 16px}.project-card{margin-bottom:8px;padding:28px}.card-header{display:flex;gap:24px;margin-bottom:20px}.card-cover{background:var(--color-gradient-cover);border:1.5px solid rgba(var(--color-brand-rgb),.4);border-radius:22px;box-shadow:0 20px 30px -10px #00000080,0 0 0 1px rgba(var(--color-brand-rgb),.2) inset;color:var(--color-brand-text);font-size:2.8rem;height:110px;justify-content:center;width:130px}.card-cover,.card-title{align-items:center;display:flex}.card-title{flex-wrap:wrap;font-size:1.8rem;font-weight:700;gap:16px;margin-bottom:6px}.project-stats{color:var(--color-text-link);display:flex;font-size:.95rem;gap:24px}.tech-stack{display:flex;flex-wrap:wrap;gap:10px 14px;margin:20px 0 8px}.tech-tag{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#ffffff08;border:1px solid #334155;border-radius:40px;color:#cbd5e1;font-size:.75rem;padding:5px 16px}.action-buttons{display:flex;flex-wrap:wrap;gap:14px;margin-top:24px}.qr-card{padding:26px 20px;position:relative;text-align:center}.qr-close{color:var(--color-close-icon);cursor:pointer;font-size:1.8rem;opacity:.8;position:absolute;right:20px;top:16px;transition:.2s}.qr-title{font-size:1.6rem;font-weight:600;margin-bottom:6px}.qr-sub{color:var(--color-text-muted-blue);margin-bottom:20px}.feature-list{list-style:none;margin:24px 0;text-align:left}.feature-list li{align-items:center;border-bottom:1px dashed #334155;display:flex;gap:14px;padding:8px 0}.bottom-link{color:#86efac;font-weight:500;text-decoration:none}.glass-card{backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);background:var(--glass-bg-dark);border:1px solid var(--color-border-brand);border-radius:24px;box-shadow:0 20px 35px -8px #0006,0 0 0 1px rgba(var(--color-brand-rgb),.05) inset;transition:all .25s ease}.glass-card:hover{background:var(--glass-bg-dark-hover);border-color:var(--color-border-brand-hover);box-shadow:0 28px 40px -12px #00000080,0 0 0 1px rgba(var(--color-brand-rgb),.2) inset}@media(max-width:1000px){.dashboard-grid{grid-template-columns:230px 1fr 270px}}@media(max-width:850px){.dashboard-grid{grid-template-columns:1fr}}@media(max-width:600px){.nav-links{gap:16px}.project-item .project-name{white-space:normal}}@media(max-width:850px){.project-card{padding:20px}.card-header{align-items:flex-start;flex-direction:column;gap:16px}.card-cover{border-radius:16px;font-size:1.8rem;height:60px;width:60px}.card-title{font-size:1.3rem}.section-header{flex-wrap:wrap}.section-header h2{font-size:1.4rem}.action-buttons{gap:10px}.qr-card{padding:20px 16px}.qr-title{font-size:1.3rem}}@media(max-width:480px){.project-card{border-radius:16px;padding:16px}.card-cover{font-size:1.5rem;height:50px;width:50px}.card-title{font-size:1.15rem;gap:10px}.tech-tag{font-size:.7rem;padding:4px 12px}}.markdown-body{color:#dde5f0;font-size:.95rem;line-height:1.8}.markdown-body h1{border-bottom:2px solid rgba(var(--color-brand-rgb),.2);color:var(--color-text-heading);font-size:1.9rem;font-weight:700;margin:0 0 24px;padding-bottom:12px}.markdown-body h2{border-left:4px solid var(--color-brand);color:var(--color-brand-text);font-size:1.45rem;font-weight:600;margin:32px 0 16px;padding-left:14px}.markdown-body h3{color:var(--color-text-link);font-size:1.15rem;font-weight:600;margin:24px 0 12px}.markdown-body h4{color:#a7c4e0;font-size:1rem;font-weight:600;margin:20px 0 10px}.markdown-body p{margin:12px 0}.markdown-body strong{color:var(--color-brand);font-weight:600}.markdown-body em{color:#fbbf24}.markdown-body a{border-bottom:1px dashed #38bdf8;color:#38bdf8;text-decoration:none}.markdown-body a:hover{color:#7dd3fc}.markdown-body code{background:rgba(var(--color-brand-rgb),.08);border:1px solid rgba(var(--color-brand-rgb),.15);border-radius:4px;color:var(--color-brand-text);font-family:Fira Code,Consolas,monospace;font-size:.88em;padding:2px 6px}.markdown-body pre{background:var(--color-bg-sidebar);border:1px solid rgba(var(--color-brand-rgb),.15);border-radius:12px;margin:16px 0;overflow-x:auto;padding:20px;position:relative}.markdown-body pre code{background:none;border:none;color:var(--color-text-heading);font-size:.88em;line-height:1.7;padding:0}.markdown-body table{border-collapse:collapse;font-size:.9rem;margin:16px 0;width:100%}.markdown-body th{background:rgba(var(--color-brand-rgb),.08);border:1px solid rgba(var(--color-brand-rgb),.2);color:var(--color-brand-text);font-weight:600;padding:10px 14px;text-align:left}.markdown-body td{border:1px solid rgba(var(--color-brand-rgb),.12);color:var(--color-text-secondary);padding:10px 14px}.markdown-body tr:hover td{background:rgba(var(--color-brand-rgb),.03)}.markdown-body ol,.markdown-body ul{margin:12px 0;padding-left:24px}.markdown-body li{color:var(--color-text-secondary);margin:6px 0}.markdown-body li::marker{color:var(--color-brand)}.markdown-body blockquote{background:#fbbf240f;border-left:4px solid #fbbf24;border-radius:0 8px 8px 0;color:#fde68a;margin:16px 0;padding:12px 20px}.markdown-body blockquote p{margin:4px 0}.markdown-body hr{border:none;border-top:1px solid rgba(var(--color-brand-rgb),.15);margin:28px 0}@media(max-width:768px){.markdown-body{font-size:.9rem;line-height:1.75;overflow-wrap:break-word;word-break:break-word}.markdown-body h1{font-size:1.5rem;margin:0 0 16px;padding-bottom:8px}.markdown-body h2{font-size:1.25rem;margin:24px 0 12px}.markdown-body h3{font-size:1.05rem;margin:20px 0 10px}.markdown-body pre{border-radius:8px;font-size:.82rem;padding:14px;-webkit-overflow-scrolling:touch}.markdown-body table{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch;font-size:.85rem}.markdown-body td,.markdown-body th{padding:8px 10px}.markdown-body blockquote{padding:10px 14px}.markdown-body ol,.markdown-body ul{padding-left:20px}}.mobile-drawer{backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);background:var(--color-bg-sidebar);border:1px solid var(--color-border-brand);bottom:0;display:flex;flex-direction:column;max-width:340px;overflow:hidden;position:fixed;top:0;width:85vw;z-index:100}.mobile-drawer.left{animation:drawer-slide-in-left .3s ease;border-left:none;border-radius:0 16px 16px 0;left:0}.mobile-drawer.right{animation:drawer-slide-in-right .3s ease;border-radius:16px 0 0 16px;border-right:none;right:0}@keyframes drawer-slide-in-left{0%{opacity:.5;transform:translate(-100%)}to{opacity:1;transform:translate(0)}}@keyframes drawer-slide-in-right{0%{opacity:.5;transform:translate(100%)}to{opacity:1;transform:translate(0)}}.mobile-drawer__header{align-items:center;border-bottom:1px solid var(--color-border-brand);display:flex;flex-shrink:0;justify-content:space-between;padding:16px 20px}.mobile-drawer__title{align-items:center;color:var(--color-brand-text);display:flex;font-size:1.1rem;font-weight:700;gap:10px}.mobile-drawer__title i{color:var(--color-brand);text-shadow:0 0 10px rgba(var(--color-brand-rgb),.4)}.mobile-drawer__close{align-items:center;background:#ffffff0d;border:1px solid var(--color-border-brand);border-radius:50%;color:var(--color-text-muted-blue);cursor:pointer;display:flex;font-size:.9rem;height:32px;justify-content:center;transition:all .2s;width:32px}.mobile-drawer__close:hover{background:#ffffff1a;color:#fff}.mobile-drawer__body{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:16px 16px env(safe-area-inset-bottom,0)}.mobile-drawer__body::-webkit-scrollbar{width:4px}.mobile-drawer__body::-webkit-scrollbar-thumb{background:rgba(var(--color-brand-rgb),.2);border-radius:4px}.mobile-fab-group{bottom:24px;display:flex;flex-direction:column;gap:12px;position:fixed;right:20px;z-index:80}.mobile-fab-btn{align-items:center;background:#0a121aeb;border:1px solid var(--color-border-brand);border-radius:50%;box-shadow:0 4px 16px #0006;color:var(--color-brand);cursor:pointer;display:flex;font-size:1.1rem;height:48px;justify-content:center;transition:all .2s;width:48px}.mobile-fab-btn:hover{background:#00dc8226;box-shadow:0 0 20px #00dc8240}.mobile-fab-btn--muted{color:var(--color-text-muted-blue)}.mobile-fab-btn--muted:hover{color:var(--color-brand)}body{background:radial-gradient(ellipse at 30% 20%,#14212b 0,#0a0f14);background-attachment:fixed;color:#eef5ff;font-family:Inter,system-ui,-apple-system,Microsoft YaHei,sans-serif;line-height:1.5;min-height:100vh;padding:20px 24px;position:relative}body:before{background-image:linear-gradient(rgba(var(--color-brand-rgb),.02) 1px,transparent 1px),linear-gradient(90deg,rgba(var(--color-brand-rgb),.02) 1px,transparent 1px);background-size:50px 50px;content:"";height:100%;left:0;pointer-events:none;position:fixed;top:0;width:100%;z-index:0}.app-wrapper{margin:0 auto;max-width:1440px;padding-top:68px;position:relative}h1,h2,h3,h4{font-weight:600;letter-spacing:-.02em}@media(max-width:600px){body{padding:12px}}@media(max-width:768px){.app-wrapper{padding-top:60px}}
