@font-face{font-family:__JetBrains_Mono_e896d9;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/edc640959b0c7826-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:__JetBrains_Mono_e896d9;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/ac0e76ddaeeb7981-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:__JetBrains_Mono_e896d9;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/64d784ea54a4acde-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:__JetBrains_Mono_e896d9;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/ff71da380fbe67dd-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:__JetBrains_Mono_e896d9;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/6d831b18ae5b01dc-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:__JetBrains_Mono_e896d9;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/558ca1a6aa3cb55e-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:__JetBrains_Mono_e896d9;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/edc640959b0c7826-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:__JetBrains_Mono_e896d9;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/ac0e76ddaeeb7981-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:__JetBrains_Mono_e896d9;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/64d784ea54a4acde-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:__JetBrains_Mono_e896d9;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/ff71da380fbe67dd-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:__JetBrains_Mono_e896d9;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/6d831b18ae5b01dc-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:__JetBrains_Mono_e896d9;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/558ca1a6aa3cb55e-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:__JetBrains_Mono_e896d9;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/edc640959b0c7826-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:__JetBrains_Mono_e896d9;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/ac0e76ddaeeb7981-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:__JetBrains_Mono_e896d9;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/64d784ea54a4acde-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:__JetBrains_Mono_e896d9;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/ff71da380fbe67dd-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:__JetBrains_Mono_e896d9;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/6d831b18ae5b01dc-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:__JetBrains_Mono_e896d9;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/558ca1a6aa3cb55e-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:__JetBrains_Mono_Fallback_e896d9;src:local("Arial");ascent-override:75.79%;descent-override:22.29%;line-gap-override:0.00%;size-adjust:134.59%}.__className_e896d9{font-family:__JetBrains_Mono_e896d9,__JetBrains_Mono_Fallback_e896d9;font-style:normal}.__variable_e896d9{--font-jetbrains-mono:"__JetBrains_Mono_e896d9","__JetBrains_Mono_Fallback_e896d9"}:root{--color-primary:#7c3aed;--color-primary-dark:#6d28d9;--color-primary-light:#a78bfa;--color-secondary:#3b82f6;--gradient-primary:linear-gradient(135deg,#667eea,#764ba2);--gradient-hero:linear-gradient(135deg,#7c3aed,#a855f7 50%,#3b82f6);--bg-primary:#fff;--bg-secondary:#f8fafc;--bg-tertiary:#f1f5f9;--bg-card:#fff;--text-primary:#0c1322;--text-secondary:#374151;--text-muted:#94a3b8;--text-white:#fff;--border-light:#e2e8f0;--border-medium:#cbd5e1;--shadow-sm:0 1px 2px 0 rgba(0,0,0,.05);--shadow-md:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);--shadow-lg:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);--shadow-xl:0 20px 25px -5px rgba(0,0,0,.1),0 8px 10px -6px rgba(0,0,0,.1);--shadow-card:0 4px 20px rgba(0,0,0,.08);--space-xs:0.25rem;--space-sm:0.5rem;--space-md:1rem;--space-lg:1.5rem;--space-xl:2rem;--space-2xl:3rem;--space-3xl:4rem;--radius-sm:0.375rem;--radius-md:0.5rem;--radius-lg:0.75rem;--radius-xl:1rem;--radius-2xl:1.5rem;--radius-full:9999px;--font-sans:"Helvetica Neue","SF Pro Display",Arial,Roboto,system-ui,var(--font-noto-sans-sc),"Noto Sans SC","Source Han Sans SC","PingFang SC","Microsoft YaHei",sans-serif;--font-mono:var(--font-jetbrains-mono),"JetBrains Mono","Fira Code",Consolas,monospace;--text-xs:0.75rem;--text-sm:0.875rem;--text-base:1rem;--text-lg:1.125rem;--text-xl:1.25rem;--text-2xl:1.5rem;--text-3xl:1.875rem;--text-4xl:2.25rem;--text-5xl:3rem;--leading-tight:1.2;--leading-normal:1.75;--leading-relaxed:1.8;--transition-fast:150ms ease;--transition-normal:250ms ease;--transition-slow:350ms ease;--container-max:1200px;--sidebar-width:280px}*,:after,:before{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;scroll-behavior:smooth}body{font-family:var(--font-sans);font-size:var(--text-base);line-height:var(--leading-normal);color:var(--text-primary);background-color:var(--bg-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{color:inherit;text-decoration:none}img{max-width:100%;height:auto;display:block}button{font-family:inherit;cursor:pointer;border:none;background:none}ol,ul{list-style:none}.container{width:100%;max-width:var(--container-max);margin:0 auto;padding:0 var(--space-lg)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-sm{gap:var(--space-sm)}.gap-md{gap:var(--space-md)}.gap-lg{gap:var(--space-lg)}.gap-xl{gap:var(--space-xl)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-lg);font-size:var(--text-sm);font-weight:500;border-radius:var(--radius-md);transition:all var(--transition-fast);cursor:pointer}.btn-primary{background:var(--gradient-primary);color:var(--text-white);box-shadow:var(--shadow-md)}.btn-primary:hover{transform:translateY(-1px);box-shadow:var(--shadow-lg)}.btn-secondary{background:var(--bg-primary);color:var(--color-primary);border:1px solid var(--color-primary)}.btn-secondary:hover{background:var(--color-primary);color:var(--text-white)}.card{background:var(--bg-card);border-radius:var(--radius-xl);box-shadow:var(--shadow-card);overflow:hidden;transition:all var(--transition-normal)}.card:hover{transform:translateY(-4px);box-shadow:var(--shadow-xl)}.progress-bar{width:100%;height:6px;background:var(--bg-tertiary);border-radius:var(--radius-full);overflow:hidden}.progress-bar-fill{height:100%;background:var(--gradient-primary);border-radius:var(--radius-full);transition:width var(--transition-slow)}@media (max-width:768px){:root{--text-5xl:2.25rem;--text-4xl:1.875rem;--text-3xl:1.5rem}.container{padding:0 var(--space-md)}}code[class*=language-],pre[class*=language-]{color:#d4d4d4;background:none;font-family:var(--font-mono);font-size:14px;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.7;-moz-tab-size:4;tab-size:4;-webkit-hyphens:none;hyphens:none}pre[class*=language-]{padding:16px 20px;margin:1.5em 0;overflow:auto;border-radius:8px;background:#1e1e1e!important;border:1px solid #333;box-shadow:0 4px 16px rgba(0,0,0,.12)}:not(pre)>code[class*=language-]{padding:3px 7px;border-radius:5px;white-space:normal;background:#f3f4f6;color:#d63384;border:1px solid #e5e7eb}.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#6a9955;font-style:italic}.token.punctuation{color:grey}.token.namespace{opacity:.8}.token.boolean,.token.constant,.token.deleted,.token.number,.token.property,.token.symbol,.token.tag{color:#b5cea8}.token.attr-name,.token.char,.token.inserted,.token.selector,.token.string{color:#ce9178}.token.builtin{color:#569cd6}.language-css .token.string,.style .token.string,.token.entity,.token.operator,.token.url{color:#d4d4d4}.token.atrule,.token.attr-value,.token.keyword{color:#569cd6;font-weight:500}.token.function{color:#dcdcaa}.token.class-name{color:#4ec9b0}.token.important,.token.regex,.token.variable{color:#9cdcfe}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}.code-line{display:block;padding-left:1em;padding-right:1em;margin-left:-1em;margin-right:-1em;border-left:3px solid transparent}.code-line.line-number:before{content:attr(data-line-number);display:inline-block;width:1.5rem;margin-right:1rem;text-align:right;color:#5c6370;font-size:.85em}.code-line.highlight-line{background:rgba(97,175,239,.1);border-left-color:#61afef}.code-line.inserted{background:hsla(95,38%,62%,.15);border-left-color:#98c379}.code-line.deleted{background:rgba(224,108,117,.15);border-left-color:#e06c75}.code-block-wrapper{position:relative;margin:1.5em 0;border-radius:8px;overflow:hidden;background:#1e1e1e;border:1px solid #333;box-shadow:0 4px 16px rgba(0,0,0,.12)}.code-block-wrapper pre{margin:0!important;border:none!important;border-radius:0!important;box-shadow:none!important}.code-header{justify-content:space-between;padding:10px 16px;background:#2d2d2d;border-bottom:1px solid #404040}.code-header,.code-header-left{display:flex;align-items:center}.code-header-left{gap:8px}.code-icon{color:grey;font-size:12px;font-weight:600}.code-lang{font-size:11px;padding:2px 8px;border-radius:4px;letter-spacing:.5px}.code-lang,.copy-button{color:#a0a0a0;font-weight:500;background:hsla(0,0%,100%,.08)}.copy-button{display:flex;align-items:center;gap:6px;padding:6px 12px;border:1px solid hsla(0,0%,100%,.15);border-radius:5px;font-size:12px;cursor:pointer;transition:all .15s ease}.copy-button:hover{background:hsla(0,0%,100%,.15);border-color:hsla(0,0%,100%,.25);color:#fff}.copy-button.copied{background:rgba(34,197,94,.2);border-color:rgba(34,197,94,.4);color:#22c55e}.copy-button svg{flex-shrink:0}