@layer reset{html{box-sizing:border-box}*,:before,:after{box-sizing:inherit}pre{overflow-x:auto}}@layer tokens{:root{--palette-default-brand:#6a11cb80;--palette-default-accent:#2575fc80;--palette-default-secondary:#4e54c880;--palette-default-tertiary:#8f94fb80;--palette-aurora-brand:#91009280;--palette-aurora-accent:#0071c580;--palette-aurora-secondary:#773ac180;--palette-aurora-tertiary:#7f79d180;--palette-forest-brand:#005d3a80;--palette-forest-accent:#00797980;--palette-forest-secondary:#006e5f80;--palette-forest-tertiary:#57976680;--color-brand:var(--palette-default-brand);--color-accent:var(--palette-default-accent);--color-brand-secondary:var(--palette-default-secondary);--color-brand-tertiary:var(--palette-default-tertiary);--color-brand-blue:#4361ee80;--color-spinner:#3498db80;--color-success:#2ecc7180;--color-warning:#f1c40f80;--color-error:#e74c3c80;--color-warning-accent:#ff980080;--color-gray-900:#0f0f1e80;--color-gray-800:#23233780;--color-gray-100:#f5f5ff80;--color-gray-50:#fafaff80;--color-base-white:#ffffff80;--color-base-black:#00000080;--color-gray:#dddddd80;--color-border-light:#e6e6e680;--color-subtle-bg:#f8fafc80;--color-subtle-bg-alt:#fafbfc80;--color-subtle-bg-hover:#f1f5f980;--color-text-muted:#64748b80;--color-text-darker:#47556980;--color-text-deep:#33415580;--color-border-muted:#e2e8f080;--color-border-soft:#cbd5e180;--color-gray-medium:#94a3b880;--color-spinner-track:#f3f3f380;--color-border-neutral:#cccccc80;--color-light-gray:#fafafa80;--color-dark-gray:#11111180;--color-dark-black:#22222280;--color-dark-surface:#2a2a2a80;--color-gray-700:#44444480;--color-md-bg:#12121280;--color-md-text:#e0e0e080;--color-md-heading-border:#3a3a5c80;--color-md-h1:#f0f0ff80;--color-md-h2:#d0d0ff80;--color-md-h2-border:#2d2d4480;--color-md-h3:#c0c0ff80;--color-md-h4:#b0b0ff80;--color-md-strong:#ffffff80;--color-md-table-bg:#1e1e2d80;--color-md-th-bg:#2a2a3f80;--color-md-th-color:#e0e0ff80;--color-md-td-color:#d7d7f080;--color-md-td-bg:#23233680;--color-md-table-border:#3d3d5c80;--color-md-zebra-bg:#1c1c2a80;--color-md-pre-bg:#16161680;--color-md-code-bg:#afb1ff80;--color-md-code-color:#0c090880;--color-md-link:#8f94fb80;--color-md-link-hover:#a7abff80;--color-md-blockquote:#b8b9ff80;--color-md-blockquote-border:#4e54c880;--color-md-blockquote-bg:#1c1c2d80;--color-md-hr:#33335580;--color-404-text:#2d374880;--color-404-primary:#0288d180;--color-404-primary-hover:#0277bd80;--color-404-primary-dark:#01579b80;--color-404-primary-darker:#01437780;--color-404-heading:#1a237e80;--color-404-lead:#455a6480;--color-404-search-border:#e3f2fd80;--color-404-signature:#78909c80;--color-404-btn-secondary-hover-bg:#e3f2fd80;--color-404-bg-start:#e0f7fa80;--color-404-bg-end:#bbdefb80;--color-404-circle1-start:#81d4fa80;--color-404-circle1-end:#4fc3f780;--color-404-circle2-start:#b3e5fc80;--color-404-circle2-end:#81d4fa80;--color-404-circle3-start:#e1f5fe80;--color-404-circle3-end:#b3e5fc80;--color-404-signature-line:#90a4ae80;--color-50x-text:#2d374880;--color-50x-error-stroke:#e53e3e80;--color-50x-heading:#1a202c80;--color-50x-lead:#4a556880;--color-50x-message-bg:#f8f9fc80;--color-50x-signature:#71809680;--color-50x-primary-btn:#3182ce80;--color-50x-primary-btn-hover:#2b6cb080;--color-50x-secondary-text:#4a556880;--color-50x-secondary-border:#e2e8f080;--color-50x-secondary-bg-hover:#f7fafc80;--color-50x-secondary-border-hover:#cbd5e080;--color-50x-bg-start:#f5f7fa80;--color-50x-bg-end:#e4edf980;--color-50x-decor1-start:#e0f2fe80;--color-50x-decor1-end:#dbeafe80;--color-50x-decor2-start:#ede9fe80;--color-50x-decor2-end:#f0f9ff80;--color-50x-icon-start:#ffebee80;--color-50x-icon-end:#ffcdd280;--color-50x-signature-line:#cbd5e080;--color-text-heading:var(--color-brand);--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-7:2rem;--space-8:3rem;--space-9:4rem;--space-10:5rem;--bp-xs:22.5rem;--bp-sm:30rem;--bp-sm-2:36rem;--bp-md:48rem;--bp-lg:64rem;--header-height:calc(var(--space-5) * 5);--container-sm:37.5rem;--size-auth-form:28.125rem;--size-cert-card:calc(var(--space-10) * 4);--size-credly-badge:calc(var(--space-10) * 3.375);--radius-xs:var(--space-1);--radius-s:var(--space-2);--radius-m:var(--space-3);--radius-l:var(--space-6);--border-width-hairline:1px;--border-0:1px solid var(--color-border-light);--border-1:1px solid var(--color-border-muted);--border-2:1px solid var(--color-border-soft);--border-3:1px solid var(--color-border-neutral);--font-body:"Open Sans", "Segoe UI", "Microsoft YaHei", sans-serif;--font-size-0:clamp(.75rem, .75rem + .2vw, .875rem);--font-size-1:clamp(.875rem, .875rem + .2vw, 1rem);--font-size-2:clamp(1rem, 1rem + .5vw, 1.25rem);--font-size-3:clamp(1.25rem, 1.25rem + .5vw, 1.5rem);--font-size-4:clamp(1.5rem, 1.5rem + 1vw, 2rem);--font-size-5:clamp(2rem, 2rem + 1vw, 3rem);--font-size-6:clamp(3rem, 3rem + 1vw, 4rem);--font-size-7:clamp(4rem, 4rem + 1vw, 6rem);--measure:75ch;--line-height-0:1.1;--line-height-1:1.2;--line-height-2:1.3;--line-height-3:1.4;--line-height-4:1.5;--line-height-5:1.6;--line-height-6:1.8;--line-height-7:2;--duration-fast:.12s;--duration-normal:.18s;--duration-slow:.24s;--easing-standard:cubic-bezier(.4, 0, .2, 1);--easing-entrance:cubic-bezier(0, 0, .2, 1);--easing-exit:cubic-bezier(.4, 0, 1, 1);--focus-ring:0 0 0 3px color-mix(in srgb, var(--color-brand) 40%, transparent);--shadow-elevation-1:0 1px 2px color-mix(in srgb, var(--color-base-black) 10%, transparent);--shadow-elevation-2:0 2px 4px color-mix(in srgb, var(--color-base-black) 15%, transparent);--shadow-elevation-3:0 4px 6px color-mix(in srgb, var(--color-base-black) 20%, transparent);--shadow-elevated:0 4px 6px color-mix(in srgb, var(--color-base-black) 10%, transparent);--overlay-bg:color-mix(in srgb, var(--color-base-black) 40%, transparent);--shadow-medium:0 2px 8px color-mix(in srgb, var(--color-base-black) 20%, transparent);--shadow-soft:0 0 4px color-mix(in srgb, var(--color-base-black) 30%, transparent);--shadow-large:0 8px 30px color-mix(in srgb, var(--color-base-black) 8%, transparent);--shadow-dialog:0 4px 20px color-mix(in srgb, var(--color-base-black) 15%, transparent);--shadow-focus-brand:0 0 0 3px color-mix(in srgb, var(--color-brand) 20%, transparent);--overlay-light-bg:color-mix(in srgb, var(--color-base-white) 95%, transparent);--overlay-dark-bg:color-mix(in srgb, var(--color-base-black) 75%, transparent);--overlay-dark-surface:color-mix(in srgb, var(--color-dark-black) 95%, transparent);--shadow-dark:0 4px 10px color-mix(in srgb, var(--color-base-black) 50%, transparent);--shadow-login-light:0 4px 12px color-mix(in srgb, var(--color-base-black) 10%, transparent);--shadow-login-dark:0 4px 12px color-mix(in srgb, var(--color-base-black) 50%, transparent);--shadow-message:0 2px 8px color-mix(in srgb, var(--color-base-black) 5%, transparent);--shadow-focus-blue:0 0 0 3px color-mix(in srgb, var(--color-brand-tertiary) 40%, transparent);--shadow-nav-mobile:0 2px 10px color-mix(in srgb, var(--color-base-black) 10%, transparent);--shadow-cert-card:0 2px 6px color-mix(in srgb, var(--color-base-black) 5%, transparent);--shadow-cert-card-hover:0 4px 6px color-mix(in srgb, var(--color-base-black) 10%, transparent);--shadow-md-table:0 2px 4px color-mix(in srgb, var(--color-base-black) 20%, transparent);--overlay-modal-bg:color-mix(in srgb, var(--color-base-black) 88%, transparent)}@media (prefers-reduced-motion:reduce){:root{--duration-fast:.01ms;--duration-normal:.01ms;--duration-slow:.01ms}}@supports (color:oklch(0% 0 0)){:root{--palette-default-brand:oklch(45.89% .2417 295.61);--palette-default-accent:oklch(59.5% .2157 260.53);--palette-default-secondary:oklch(50.81% .1773 275.87);--palette-default-tertiary:oklch(70.69% .1492 279.75);--palette-aurora-brand:oklch(46% .22 328);--palette-aurora-accent:oklch(54% .18 250);--palette-aurora-secondary:oklch(50% .2 300);--palette-aurora-tertiary:oklch(62% .13 285);--palette-forest-brand:oklch(42% .13 160);--palette-forest-accent:oklch(52% .12 195);--palette-forest-secondary:oklch(48% .12 180);--palette-forest-tertiary:oklch(62% .1 150);--color-brand:var(--palette-default-brand);--color-accent:var(--palette-default-accent);--color-brand-secondary:var(--palette-default-secondary);--color-brand-tertiary:var(--palette-default-tertiary);--color-brand-blue:oklch(55.58% .2142 269.03);--color-spinner:oklch(65.31% .1348 242.71);--color-success:oklch(74.59% .1812 152.35);--color-warning:oklch(83.58% .1689 91.77);--color-error:oklch(63.07% .194 29.43);--color-warning-accent:oklch(77.03% .1741 64.05);--color-gray-900:oklch(17.7% .0307 282.81);--color-gray-800:oklch(26.6% .0371 283.59);--color-gray-100:oklch(97.3% .0133 286.15);--color-gray-50:oklch(98.65% .0066 286.28);--color-base-white:oklch(100% 0 0);--color-base-black:oklch(0% 0 0);--color-gray:oklch(89.75% 0 0);--color-border-light:oklch(92.49% 0 0);--color-subtle-bg:oklch(98.42% .0034 247.86);--color-subtle-bg-alt:oklch(98.76% .0017 247.84);--color-subtle-bg-hover:oklch(96.83% .0069 247.9);--color-text-muted:oklch(55.44% .0407 257.42);--color-text-darker:oklch(44.55% .0374 257.28);--color-text-deep:oklch(37.17% .0392 257.29);--color-border-muted:oklch(92.88% .0126 255.51);--color-border-soft:oklch(86.9% .0198 252.89);--color-gray-medium:oklch(71.07% .0351 256.79);--color-spinner-track:oklch(96.42% 0 0);--color-border-neutral:oklch(84.52% 0 0);--color-light-gray:oklch(98.51% 0 0);--color-dark-gray:oklch(17.76% 0 0);--color-dark-black:oklch(25.2% 0 0);--color-dark-surface:oklch(28.5% 0 0);--color-gray-700:oklch(38.67% 0 0);--color-404-text:oklch(33.51% .0331 260.91);--color-404-primary:oklch(60.29% .1466 243.46);--color-404-primary-hover:oklch(55.08% .1393 245.43);--color-404-primary-dark:oklch(45.2% .1309 251.01);--color-404-primary-darker:oklch(37.71% .1062 250.07);--color-404-heading:oklch(32.07% .1509 270.29);--color-404-lead:oklch(45.41% .0304 228.62);--color-404-search-border:oklch(95.32% .0218 239.43);--color-404-signature:oklch(63.88% .0327 229.55);--color-404-btn-secondary-hover-bg:oklch(95.32% .0218 239.43);--color-404-bg-start:oklch(96.02% .0244 206.2);--color-404-bg-end:oklch(88.48% .0546 243.39);--color-404-circle1-start:oklch(83.08% .0969 229.09);--color-404-circle1-end:oklch(77.26% .1268 231.11);--color-404-circle2-start:oklch(89.47% .0604 227.77);--color-404-circle2-end:oklch(83.08% .0969 229.09);--color-404-circle3-start:oklch(95.81% .0243 226.47);--color-404-circle3-end:oklch(89.47% .0604 227.77);--color-404-signature-line:oklch(70.64% .0268 229.31);--color-50x-text:oklch(33.51% .0331 260.91);--color-50x-error-stroke:oklch(61.37% .2039 25.56);--color-50x-heading:oklch(24.33% .0247 263.95);--color-50x-lead:oklch(44.74% .0343 261.32);--color-50x-message-bg:oklch(98.22% .0041 271.37);--color-50x-signature:oklch(59.56% .0381 257.87);--color-50x-primary-btn:oklch(59.46% .1398 250.3);--color-50x-primary-btn-hover:oklch(52.41% .1259 252.32);--color-50x-secondary-text:oklch(44.74% .0343 261.32);--color-50x-secondary-border:oklch(92.88% .0126 255.51);--color-50x-secondary-bg-hover:oklch(98.34% .0042 236.5);--color-50x-secondary-border-hover:oklch(86.87% .0187 250.61);--color-50x-bg-start:oklch(97.55% .0045 258.32);--color-50x-bg-end:oklch(94.28% .0189 255.53);--color-50x-decor1-start:oklch(95.14% .025 236.82);--color-50x-decor1-end:oklch(93.19% .0316 255.59);--color-50x-decor2-start:oklch(94.33% .0284 294.59);--color-50x-decor2-end:oklch(97.71% .0125 236.62);--color-50x-icon-start:oklch(95.68% .0221 7.17);--color-50x-icon-end:oklch(89.31% .0569 11.54);--color-50x-signature-line:oklch(86.87% .0187 250.61);--color-text-heading:var(--color-brand)}}:root{--gradient-direction:to right;--gradient-primary:linear-gradient(var(--gradient-direction), var(--color-brand), var(--color-brand-secondary));--gradient-dark:linear-gradient(135deg, var(--color-brand-secondary) 0%, var(--color-brand-tertiary) 100%);--gradient-404-bg:linear-gradient(135deg, var(--color-404-bg-start) 0%, var(--color-404-bg-end) 100%);--gradient-404-circle-1:linear-gradient(135deg, var(--color-404-circle1-start) 0%, var(--color-404-circle1-end) 100%);--gradient-404-circle-2:linear-gradient(135deg, var(--color-404-circle2-start) 0%, var(--color-404-circle2-end) 100%);--gradient-404-circle-3:linear-gradient(135deg, var(--color-404-circle3-start) 0%, var(--color-404-circle3-end) 100%);--gradient-404-signature-line:linear-gradient(to right, transparent, var(--color-404-signature-line), transparent);--gradient-404-btn-primary:linear-gradient(135deg, var(--color-404-primary) 0%, var(--color-404-primary-dark) 100%);--gradient-404-btn-primary-hover:linear-gradient(135deg, var(--color-404-primary-hover) 0%, var(--color-404-primary-darker) 100%);--gradient-50x-bg:linear-gradient(135deg, var(--color-50x-bg-start) 0%, var(--color-50x-bg-end) 100%);--gradient-50x-decor-1:linear-gradient(120deg, var(--color-50x-decor1-start) 0%, var(--color-50x-decor1-end) 100%);--gradient-50x-decor-2:linear-gradient(300deg, var(--color-50x-decor2-start) 0%, var(--color-50x-decor2-end) 100%);--gradient-50x-icon:linear-gradient(135deg, var(--color-50x-icon-start) 0%, var(--color-50x-icon-end) 100%);--gradient-50x-signature-line:linear-gradient(to right, transparent, var(--color-50x-signature-line), transparent);--color-bg:var(--color-gray-50);--color-text:var(--color-gray-900);--color-nav-bg:var(--color-gray-50);--color-nav-text:var(--color-gray-900);--color-surface:var(--color-gray-100);--color-white:var(--color-base-white);--color-black:var(--color-base-black);--shadow-login:var(--shadow-login-light);--md-bg:var(--color-md-bg);--md-text:var(--color-md-text);--md-heading-border:var(--color-md-heading-border);--md-h1-color:var(--color-md-h1);--md-h2-color:var(--color-md-h2);--md-h2-border:var(--color-md-h2-border);--md-h3-color:var(--color-md-h3);--md-h4-color:var(--color-md-h4);--md-strong-color:var(--color-md-strong);--md-table-bg:var(--color-md-table-bg);--md-th-bg:var(--color-md-th-bg);--md-th-color:var(--color-md-th-color);--md-td-color:var(--color-md-td-color);--md-td-bg:var(--color-md-td-bg);--md-table-border:var(--color-md-table-border);--md-zebra-bg:var(--color-md-zebra-bg);--md-code-bg:var(--color-md-code-bg);--md-code-color:var(--color-md-code-color);--md-link-color:var(--color-md-link);--md-link-hover:var(--color-md-link-hover);--md-blockquote-color:var(--color-md-blockquote);--md-blockquote-border:var(--color-md-blockquote-border);--md-blockquote-bg:var(--color-md-blockquote-bg);--md-hr-bg:var(--color-md-hr);--social-icon-filter:none;--overlay-surface:var(--overlay-light-bg);--color-palette-surface:color-mix(in srgb, var(--color-brand) 10%, var(--color-surface));--color-palette-surface-strong:color-mix(in srgb, var(--color-brand) 18%, var(--color-surface));--color-palette-border:color-mix(in srgb, var(--color-brand) 38%, var(--color-border-soft));--color-hero-accent:color-mix(in srgb, var(--color-accent) 72%, var(--color-base-white));--color-hero-scrim:color-mix(in srgb, var(--color-base-black) 52%, var(--color-brand));--color-hero-scrim-strong:color-mix(in srgb, var(--color-base-black) 74%, var(--color-brand));color-scheme:light dark}html[data-theme=dark]{--color-bg:var(--color-gray-900);--color-text:var(--color-gray-50);--color-nav-bg:var(--color-gray-800);--color-nav-text:var(--color-gray-50);--gradient-primary:var(--gradient-dark);--color-surface:var(--color-gray-800);--color-gray:var(--color-gray-700);--color-white:var(--color-base-white);--color-border-light:var(--color-gray-700);--color-subtle-bg:var(--color-gray-700);--color-subtle-bg-alt:var(--color-dark-black);--color-subtle-bg-hover:var(--color-gray-700);--color-border-muted:var(--color-gray-700);--color-border-soft:var(--color-gray-700);--color-spinner-track:var(--color-gray-700);--shadow-login:var(--shadow-login-dark);--md-bg:var(--color-md-bg);--md-text:var(--color-md-text);--md-heading-border:var(--color-md-heading-border);--md-h1-color:var(--color-md-h1);--md-h2-color:var(--color-md-h2);--md-h2-border:var(--color-md-h2-border);--md-h3-color:var(--color-md-h3);--md-h4-color:var(--color-md-h4);--md-strong-color:var(--color-md-strong);--md-table-bg:var(--color-md-table-bg);--md-th-bg:var(--color-md-th-bg);--md-th-color:var(--color-md-th-color);--md-td-color:var(--color-md-td-color);--md-td-bg:var(--color-md-td-bg);--md-table-border:var(--color-md-table-border);--md-zebra-bg:var(--color-md-zebra-bg);--md-code-bg:var(--color-md-code-bg);--md-code-color:var(--color-md-code-color);--md-link-color:var(--color-md-link);--md-link-hover:var(--color-md-link-hover);--md-blockquote-color:var(--color-md-blockquote);--md-blockquote-border:var(--color-md-blockquote-border);--md-blockquote-bg:var(--color-md-blockquote-bg);--md-hr-bg:var(--color-md-hr);--social-icon-filter:brightness(0) invert(1);--overlay-surface:var(--overlay-dark-surface);--color-palette-surface:color-mix(in srgb, var(--color-brand) 16%, var(--color-surface));--color-palette-surface-strong:color-mix(in srgb, var(--color-brand) 26%, var(--color-surface));--color-palette-border:color-mix(in srgb, var(--color-brand) 52%, var(--color-border-soft));--color-hero-accent:color-mix(in srgb, var(--color-accent) 78%, var(--color-base-white));--color-hero-scrim:color-mix(in srgb, var(--color-base-black) 60%, var(--color-brand));--color-hero-scrim-strong:color-mix(in srgb, var(--color-base-black) 80%, var(--color-brand));color-scheme:dark}html[data-palette=aurora]{--color-brand:var(--palette-aurora-brand);--color-accent:var(--palette-aurora-accent);--color-brand-secondary:var(--palette-aurora-secondary);--color-brand-tertiary:var(--palette-aurora-tertiary);--color-brand-blue:var(--palette-aurora-accent);--gradient-dark:linear-gradient(135deg, var(--palette-aurora-brand) 0%, var(--palette-aurora-secondary) 100%)}html[data-palette=forest]{--color-brand:var(--palette-forest-brand);--color-accent:var(--palette-forest-accent);--color-brand-secondary:var(--palette-forest-secondary);--color-brand-tertiary:var(--palette-forest-tertiary);--color-brand-blue:var(--palette-forest-accent);--gradient-dark:linear-gradient(135deg, var(--palette-forest-brand) 0%, var(--palette-forest-secondary) 100%)}}@layer base{body{background-color:var(--color-bg);color:var(--color-text);font-family:var(--font-body);min-height:100vh;padding:var(--space-9) 0 0;flex-direction:column;justify-content:flex-start;align-items:stretch;width:100%;margin:0;display:flex}main.c-main-content{text-align:left;width:100%;max-width:100%;margin-left:auto;margin-right:auto}body{font-family:var(--font-body);font-size:var(--font-size-2);line-height:1.5}main,article{max-width:var(--measure);margin-inline:auto}p{margin-block:0 var(--space-4);max-width:var(--measure);line-height:1.6}h1{font-size:var(--font-size-5);line-height:1.2}h2{font-size:var(--font-size-4);line-height:1.3}h3{font-size:var(--font-size-3);line-height:1.4}h4{font-size:var(--font-size-2);line-height:1.5}html[lang^=en] .is-lang-zh,html[lang^=zh] .is-lang-en{display:none}}@layer components{.c-nav-container{container-type:inline-size}.c-nav-container>nav{backdrop-filter:blur(var(--space-2));background-color:var(--color-nav-bg);box-shadow:var(--shadow-elevation-3);color:var(--color-nav-text);padding:var(--space-2) var(--space-4);text-align:center;z-index:1000;flex-wrap:nowrap;justify-content:space-between;align-items:center;width:100%;display:flex;position:fixed;top:0;left:0;right:0;& .c-nav-left,& .c-nav-right{align-items:center;gap:var(--space-4);display:flex}& .c-nav-logo{align-items:center;gap:var(--space-1);font-weight:600;display:flex;& .c-nav-home-logged-in,& .c-nav-home-logged-out{align-items:center;gap:var(--space-1);display:flex}& .c-nav-home-logged-in{display:none}& .c-nav-logo-icon{block-size:var(--space-6);inline-size:var(--space-6)}html[data-logged-in=true] &{& .c-nav-home-logged-out{display:none}& .c-nav-home-logged-in{display:flex}}}& .c-avatar-link{padding:var(--space-1);transition:transform var(--duration-fast) var(--easing-standard), filter var(--duration-fast) var(--easing-standard);border-radius:50%;align-items:center;display:flex;&:disabled{cursor:not-allowed;filter:none;opacity:.6;transform:none}&:not(:disabled):hover{filter:brightness(1.1);transform:scale(1.05)}&:not(:disabled):active{transform:scale(.95)}}& .c-logout-link{display:none}html[data-logged-in=true] &{& .c-login-link{display:none}& .c-logout-link{display:flex}}& a,& button:not(.c-theme-option){border-radius:var(--radius-s);box-shadow:none;color:var(--color-nav-text);min-height:calc(var(--space-8) - var(--space-1));padding:var(--space-2) var(--space-3);transition:background-color var(--duration-normal), box-shadow var(--duration-normal), color var(--duration-normal);background:0 0;text-decoration:none}& button:not(.c-theme-option){cursor:pointer;border:none}& button:not(.c-theme-option):disabled{cursor:not-allowed;opacity:.6}& a:focus-visible,& button:not(.c-theme-option):focus-visible{box-shadow:var(--focus-ring);outline:none}& a:hover,& button:not(.c-theme-option):not(:disabled):hover{background-color:var(--color-palette-surface);color:var(--color-text)}& a:active,& button:not(.c-theme-option):not(:disabled):active{background-color:var(--color-palette-surface-strong)}& a:hover:focus-visible,& button:not(.c-theme-option):not(:disabled):hover:focus-visible{box-shadow:var(--focus-ring)}& .c-hamburger-btn{& span{background:var(--color-nav-text);border-radius:calc(var(--radius-xs) / 4);height:var(--space-1);margin:var(--space-1) 0;transition:transform var(--duration-normal), opacity var(--duration-normal);width:var(--space-6);display:block}&.is-open{& span:first-child{transform:translateY(var(--space-1)) rotate(45deg)}& span:nth-child(2){opacity:0}& span:nth-child(3){transform:translateY(calc(var(--space-1) * -1)) rotate(-45deg)}}}& .c-theme-toggle-wrapper{display:inline-block;position:relative}& .c-theme-toggle-main{border-radius:var(--radius-s);box-shadow:none;color:var(--color-nav-text);cursor:pointer;font-size:var(--font-size-1);align-items:center;gap:var(--space-1);min-height:calc(var(--space-8) - var(--space-1));padding:var(--space-2) var(--space-3);transition:background-color var(--duration-normal), color var(--duration-normal);background:0 0;border:none;text-decoration:none;display:flex;position:relative;&:hover{background-color:var(--color-palette-surface);color:var(--color-text)}&:active{background-color:var(--color-palette-surface-strong)}&:focus-visible{box-shadow:var(--focus-ring);outline:none}}& .c-theme-options{background-color:var(--color-nav-bg);border:1px solid var(--color-palette-border);border-radius:var(--radius-s);box-shadow:var(--shadow-elevation-2);gap:var(--space-1);padding:var(--space-1);left:50%;top:calc(100% + var(--space-1));z-index:1001;flex-direction:column;display:flex;position:absolute;transform:translate(-50%)}& .c-theme-mode-options,& .c-theme-palette-options{gap:var(--space-1);display:flex}& .c-theme-palette-options{border-top:var(--border-2);padding-top:var(--space-1)}& .c-theme-option{border:var(--border-3);border-radius:var(--radius-xs);cursor:pointer;height:calc(var(--space-8) - var(--space-1));transition:background-color var(--duration-fast), border-color var(--duration-fast), box-shadow var(--duration-fast), transform var(--duration-fast);width:calc(var(--space-8) - var(--space-1));justify-content:center;align-items:center;padding:0;display:flex;&.is-light{background-color:var(--color-light-gray);color:var(--color-dark-gray)}&.is-dark{background-color:var(--color-dark-gray);color:var(--color-white)}&.c-theme-palette-option{background:linear-gradient(135deg, var(--palette-swatch-start), var(--palette-swatch-end));color:var(--color-base-white)}&.is-palette-default{--palette-swatch-start:var(--palette-default-brand);--palette-swatch-end:var(--palette-default-secondary)}&.is-palette-aurora{--palette-swatch-start:var(--palette-aurora-brand);--palette-swatch-end:var(--palette-aurora-accent)}&.is-palette-forest{--palette-swatch-start:var(--palette-forest-brand);--palette-swatch-end:var(--palette-forest-accent)}&:hover{box-shadow:var(--shadow-elevation-2), 0 0 0 2px var(--color-palette-surface);transform:translateY(calc(var(--space-1) * -.5))}&:active{box-shadow:var(--shadow-elevation-1);transform:translateY(0)}&.is-active{border-color:var(--color-brand);box-shadow:var(--shadow-elevation-1), 0 0 0 2px var(--color-palette-surface-strong)}&:focus-visible{box-shadow:var(--focus-ring);outline:none}&.is-active:focus-visible{box-shadow:var(--shadow-elevation-1), 0 0 0 2px var(--color-palette-surface-strong), var(--focus-ring)}}& .c-language-selector-wrapper{display:inline-block;position:relative}& .c-language-selector-main{border-radius:var(--radius-s);box-shadow:none;color:var(--color-nav-text);cursor:pointer;font-size:var(--font-size-1);align-items:center;gap:var(--space-1);min-height:calc(var(--space-8) - var(--space-1));padding:var(--space-2) var(--space-3);transition:background-color var(--duration-normal), color var(--duration-normal);background:0 0;border:none;text-decoration:none;display:flex;position:relative;&:hover{background-color:var(--color-palette-surface);color:var(--color-text)}&:active{background-color:var(--color-palette-surface-strong)}&:focus-visible{box-shadow:var(--focus-ring);outline:none}}& .c-language-options{background-color:var(--color-nav-bg);border:1px solid var(--color-palette-border);border-radius:var(--radius-s);box-shadow:var(--shadow-elevation-2);gap:var(--space-1);padding:var(--space-1);left:50%;top:calc(100% + var(--space-1));z-index:1001;flex-direction:column;display:flex;position:absolute;transform:translate(-50%)}& .c-language-option{background-color:var(--color-nav-bg);border:var(--border-3);border-radius:var(--radius-xs);color:var(--color-nav-text);cursor:pointer;font-size:var(--font-size-1);min-height:calc(var(--space-8) - var(--space-1));padding:var(--space-1) var(--space-2);transition:background-color var(--duration-fast), border-color var(--duration-fast), box-shadow var(--duration-fast), color var(--duration-fast), transform var(--duration-fast);&:hover{background-color:var(--color-palette-surface);box-shadow:var(--shadow-elevation-2);color:var(--color-text);transform:translateY(calc(var(--space-1) * -.5))}&:active{box-shadow:var(--shadow-elevation-1);transform:translateY(0)}&.is-active{border-color:var(--color-brand);box-shadow:var(--shadow-elevation-1), 0 0 0 2px var(--color-palette-surface-strong)}&:focus-visible{box-shadow:var(--focus-ring);outline:none}&.is-active:focus-visible{box-shadow:var(--shadow-elevation-1), 0 0 0 2px var(--color-palette-surface-strong), var(--focus-ring)}}}@container (width<=48rem){nav{gap:var(--space-2);padding:var(--space-1) var(--space-3);flex-wrap:nowrap}nav a,nav button:not(.c-theme-option){border-radius:var(--radius-s);font-size:var(--font-size-1);margin:var(--space-1) var(--space-1);min-width:0;padding:var(--space-2) var(--space-1)}nav .c-nav-logo,nav .c-language-selector-main,nav .c-theme-toggle-main{padding:var(--space-2)}nav .c-nav-logo-icon{block-size:var(--space-5);inline-size:var(--space-5)}}@container (width<=30rem){nav{gap:var(--space-2);padding:var(--space-1) var(--space-2);flex-wrap:nowrap}nav a,nav button:not(.c-theme-option){border-radius:var(--radius-s);font-size:var(--font-size-1);margin:var(--space-1) var(--space-1);min-width:0;padding:var(--space-2) var(--space-1)}nav .c-nav-logo,nav .c-language-selector-main,nav .c-theme-toggle-main{padding:var(--space-2)}nav .c-nav-logo-icon{block-size:var(--space-5);inline-size:var(--space-5)}nav .is-lang-zh,nav .is-lang-en{display:none}}@container (width<=22.5rem){nav{gap:var(--space-1);padding:var(--space-1) var(--space-1);flex-wrap:wrap}nav a,nav button:not(.c-theme-option){border-radius:var(--radius-xs);font-size:var(--font-size-0);margin:var(--space-1) var(--space-1);min-width:0;padding:var(--space-1) var(--space-1)}nav .c-nav-logo,nav .c-language-selector-main,nav .c-theme-toggle-main{padding:var(--space-1)}nav .c-nav-logo-icon{block-size:var(--space-4);inline-size:var(--space-4)}nav .is-lang-zh,nav .is-lang-en{display:none}}.c-nav-container nav .c-theme-option:focus-visible,.c-nav-container nav .c-language-option:focus-visible{box-shadow:var(--focus-ring);outline:none}.c-nav-container nav .c-theme-option.is-active:focus-visible,.c-nav-container nav .c-language-option.is-active:focus-visible{box-shadow:var(--shadow-elevation-1), 0 0 0 2px var(--color-palette-surface-strong), var(--focus-ring)}.is-theme-light{display:inline-flex}.is-theme-dark,[data-theme=dark] .is-theme-light{display:none}[data-theme=dark] .is-theme-dark{display:inline-flex}.c-side-menu-overlay{background:var(--overlay-bg);opacity:0;transition:opacity var(--duration-normal);visibility:hidden;z-index:1001;position:fixed;inset:0;&.is-open{opacity:1;visibility:visible}}.c-side-menu{background:var(--color-nav-bg);box-sizing:border-box;gap:var(--space-4);max-width:80%;height:100vh;padding:var(--space-9) var(--space-5) var(--space-5);transition:transform var(--duration-normal);width:calc(var(--space-10) * 2.75);z-index:1002;flex-direction:column;display:flex;position:fixed;top:0;left:0;overflow-y:auto;transform:translate(-100%);&.is-open{transform:translate(0)}&>.c-side-menu-link{border-radius:var(--radius-s);box-shadow:none;color:var(--color-nav-text);min-height:calc(var(--space-8) - var(--space-1));padding:var(--space-2) var(--space-3);transition:background-color var(--duration-normal), box-shadow var(--duration-normal), color var(--duration-normal);background:0 0;text-decoration:none;display:block;&:hover{background-color:var(--color-palette-surface);color:var(--color-text)}&:active{background-color:var(--color-palette-surface-strong)}&:focus-visible{box-shadow:var(--focus-ring);outline:none}}}.c-app-header{background:var(--gradient-primary);color:var(--color-white);padding:var(--space-5);text-align:center;position:relative}.c-btn-primary{background:var(--gradient-primary);border-radius:var(--radius-s);box-shadow:var(--shadow-elevation-2);color:var(--color-white);cursor:pointer;align-items:center;gap:var(--space-2);min-height:calc(var(--space-8) - var(--space-1));padding:var(--space-2) var(--space-4);transition:filter var(--duration-normal) var(--easing-standard), box-shadow var(--duration-normal) var(--easing-standard), transform var(--duration-normal) var(--easing-standard);border:none;justify-content:center;text-decoration:none;display:inline-flex;&:focus-visible{box-shadow:var(--shadow-elevation-2), var(--focus-ring);outline:none}&:disabled,&[aria-disabled=true]{box-shadow:none;cursor:not-allowed;opacity:.6;transform:none}&:not(:disabled):hover{box-shadow:var(--shadow-elevation-3);filter:brightness(1.1);transform:translateY(calc(var(--space-1) * -.5))}&:not(:disabled):active{box-shadow:var(--shadow-elevation-1);transform:translateY(0)}&:not(:disabled):hover:focus-visible{box-shadow:var(--shadow-elevation-3), var(--focus-ring)}}.c-btn-secondary{background:var(--color-subtle-bg);border:var(--border-0);border-radius:var(--radius-s);box-shadow:var(--shadow-elevation-1);color:var(--color-text-muted);cursor:pointer;align-items:center;gap:var(--space-2);min-height:calc(var(--space-8) - var(--space-1));padding:var(--space-2) var(--space-4);transition:background-color var(--duration-normal) var(--easing-standard), color var(--duration-normal) var(--easing-standard), filter var(--duration-normal) var(--easing-standard), box-shadow var(--duration-normal) var(--easing-standard), transform var(--duration-normal) var(--easing-standard);justify-content:center;text-decoration:none;display:inline-flex;&:focus-visible{box-shadow:var(--shadow-elevation-1), var(--focus-ring);outline:none}&:disabled,&[aria-disabled=true]{box-shadow:none;cursor:not-allowed;opacity:.6;transform:none}&:not(:disabled):hover{background:var(--color-subtle-bg-hover);box-shadow:var(--shadow-elevation-2);color:var(--color-text-darker);transform:translateY(calc(var(--space-1) * -.5))}&:not(:disabled):active{box-shadow:var(--shadow-elevation-1);transform:translateY(0)}&:not(:disabled):hover:focus-visible{box-shadow:var(--shadow-elevation-2), var(--focus-ring)}}.c-btn-chat{border-radius:var(--radius-l);padding:var(--space-3) var(--space-6);transition:background-color var(--duration-normal) var(--easing-standard), color var(--duration-normal) var(--easing-standard), filter var(--duration-normal) var(--easing-standard), box-shadow var(--duration-normal) var(--easing-standard), transform var(--duration-normal) var(--easing-standard);justify-content:center;align-items:center;font-weight:600;display:flex;&:disabled{cursor:not-allowed;opacity:.6}}.c-verify-btn{border-radius:var(--radius-xs);margin:var(--space-1);padding:var(--space-2) var(--space-3);text-decoration:none}.c-form-label{margin-bottom:var(--space-1);font-weight:600;display:block}.c-form-group{margin-bottom:var(--space-4)}.c-form-control{background-color:var(--color-surface);border:var(--border-0);border-radius:var(--radius-xs);color:var(--color-text);padding:var(--space-2) var(--space-3);transition:border-color var(--duration-fast) var(--easing-standard), background-color var(--duration-fast) var(--easing-standard), box-shadow var(--duration-fast) var(--easing-standard);width:100%;display:block;&:focus-visible{border-color:var(--color-brand);box-shadow:var(--focus-ring);outline:none}&.is-invalid,&[aria-invalid=true]{border-color:var(--color-error)}&.is-valid{border-color:var(--color-success)}&:disabled{background-color:var(--color-subtle-bg);color:var(--color-text-muted);cursor:not-allowed;opacity:.72}&:not(:disabled):hover{border-color:var(--color-palette-border)}&.is-invalid:not(:disabled):hover,&[aria-invalid=true]:not(:disabled):hover{border-color:var(--color-error)}&.is-valid:not(:disabled):hover{border-color:var(--color-success)}&:not(:disabled):hover:focus-visible{border-color:var(--color-brand);box-shadow:var(--focus-ring)}}.c-invalid-feedback,.c-valid-feedback{font-size:var(--font-size-1);margin-top:var(--space-1)}.c-invalid-feedback{color:var(--color-error)}.c-valid-feedback{color:var(--color-success)}.c-form-check{align-items:center;display:flex}.c-form-check--spaced{margin-top:var(--space-4)}.c-form-check-input{accent-color:var(--color-brand);height:var(--space-4);width:var(--space-4);&:focus-visible{border-radius:calc(var(--radius-xs) / 2);box-shadow:var(--focus-ring);outline:none}}.c-form-check-label{margin-inline-start:var(--space-2)}.c-login-container,.c-register-container{background:var(--color-surface);border-radius:var(--radius-s);box-shadow:var(--shadow-login);margin:var(--space-5) auto;padding:var(--space-5);width:100%;container-type:inline-size;@container (width>=30rem){margin:var(--space-10) auto}}.c-login-container{animation:fade-in-up var(--duration-normal) var(--easing-standard)}@keyframes fade-in-up{0%{opacity:0;transform:translateY(var(--space-4))}to{opacity:1;transform:translateY(0)}}.c-login-form,.c-register-form{max-width:var(--size-auth-form);width:100%;margin:0 auto;@container (width<=64rem){width:70%}@container (width<=48rem){width:100%}}.c-login-title,.c-register-title{margin-bottom:var(--space-4);text-align:center;font-weight:600}.c-password-field{position:relative}.c-password-toggle{border-radius:var(--radius-xs);color:var(--color-text-muted);cursor:pointer;min-width:calc(var(--space-8) - var(--space-1));bottom:0;right:var(--space-2);transition:background-color var(--duration-fast) var(--easing-standard), color var(--duration-fast) var(--easing-standard), box-shadow var(--duration-fast) var(--easing-standard), transform var(--duration-fast) var(--easing-standard);background:0 0;border:0;justify-content:center;align-items:center;padding:0;display:flex;position:absolute;top:0;&:hover{background-color:var(--color-palette-surface);color:var(--color-text)}&:active{transform:scale(.96)}&:focus-visible{box-shadow:var(--focus-ring);outline:none}}.c-password-strength{background:var(--color-gray);border-radius:calc(var(--radius-xs) / 2);height:var(--space-1);margin-top:var(--space-1);&.is-weak{background:var(--color-error)}&.is-medium{background:var(--color-warning)}&.is-strong{background:var(--color-success)}}.c-password-strength-label{font-size:var(--font-size-1);margin-top:var(--space-1)}.c-progress-container{background:var(--color-gray);border-radius:var(--radius-xs);height:var(--space-2);margin-top:var(--space-4);width:100%;overflow:hidden}.c-progress-bar{background:var(--color-brand-blue);height:100%;transition:width var(--duration-normal) var(--easing-standard);width:0}.c-third-party{gap:var(--space-4);margin-top:var(--space-4);justify-content:center;display:flex;& a,& button{border-radius:var(--radius-s);color:var(--color-text-muted);cursor:pointer;min-height:calc(var(--space-8) - var(--space-1));padding:var(--space-2) var(--space-3);transition:background-color var(--duration-fast) var(--easing-standard), color var(--duration-fast) var(--easing-standard), box-shadow var(--duration-fast) var(--easing-standard);background:0 0;border:none;&:focus-visible{box-shadow:var(--focus-ring);outline:none}&:disabled{cursor:not-allowed;opacity:.6}&:not(:disabled):hover{background-color:var(--color-palette-surface);color:var(--color-text)}&:not(:disabled):hover:focus-visible{box-shadow:var(--focus-ring)}}}.c-global-error{color:var(--color-error);margin-bottom:var(--space-4);text-align:center}.c-form-message,.c-form-text{margin-top:var(--space-2)}.c-form-submit,.c-form-alt{margin-top:var(--space-4)}.u-text-success{color:var(--color-success)}.u-text-error{color:var(--color-error)}.u-text-warning{color:var(--color-warning)}.c-skeleton-shimmer:before,.u-skeleton-shimmer:before{animation:c-skeleton-shimmer calc(var(--duration-slow) * 2) infinite;background:linear-gradient(90deg, var(--color-surface) 0%, var(--color-subtle-bg) 50%, var(--color-surface) 100%);content:"";position:absolute;inset:0;transform:translate(-100%)}@keyframes c-skeleton-shimmer{to{transform:translate(100%)}}@media (prefers-reduced-motion:reduce){.c-skeleton-shimmer:before,.u-skeleton-shimmer:before{animation:none}}.c-spinner{--spinner-size:var(--space-7);--spinner-color:var(--color-brand);animation:spinner-spin calc(var(--duration-slow) * 2) linear infinite;border:var(--space-1) solid var(--color-spinner-track);border-top:var(--space-1) solid var(--spinner-color);height:var(--spinner-size);width:var(--spinner-size);border-radius:50%}.c-spinner-center{position:absolute;top:50%;left:50%;translate:-50% -50%}@keyframes spinner-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.c-loader,.c-doc-loader{padding:var(--space-5);text-align:center;justify-content:center;align-items:center;margin:auto;display:flex;& .c-dot{animation:dot-bounce calc(var(--duration-fast) * 7) infinite both;background:var(--color-spinner);height:var(--space-2);margin:0 var(--space-1);width:var(--space-2);border-radius:50%;&:first-child{animation-delay:calc(var(--duration-fast) * -1.6)}&:nth-child(2){animation-delay:calc(var(--duration-fast) * -.8)}}}@keyframes dot-bounce{0%,80%,to{transform:scale(0)}40%{transform:scale(1)}}.c-enhancement-progress{background:var(--overlay-surface);border:var(--border-0);border-radius:var(--radius-l);box-shadow:var(--shadow-elevation-3);color:var(--color-text);align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-5);transition:opacity var(--duration-normal) var(--easing-standard);z-index:1000;display:flex}.c-pulse-container{height:var(--space-5);width:calc(var(--space-8) - var(--space-2));position:relative}.c-pulse-dot{animation:pulse calc(var(--duration-slow) * 3) infinite;background:var(--color-brand);height:var(--space-2);width:var(--space-2);border-radius:50%;position:absolute}.c-pulse-dot-1{left:0}.c-pulse-dot-2{animation-delay:var(--duration-fast);left:var(--space-4)}.c-pulse-dot-3{animation-delay:calc(var(--duration-fast) * 2);left:var(--space-7)}@keyframes pulse{0%,to{opacity:.7;transform:scale(.8)}50%{opacity:1;transform:scale(1.2)}}.c-auth-overlay{backdrop-filter:blur(2px);background:var(--overlay-surface);opacity:0;pointer-events:none;transition:opacity var(--duration-normal) var(--easing-standard);z-index:1002;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.c-auth-overlay.is-active{opacity:1;pointer-events:all}@media (prefers-reduced-motion:reduce){.c-spinner,.c-dot,.c-pulse-dot{animation:none}}.c-modal{background:var(--overlay-modal-bg);color:var(--color-base-white);z-index:1003;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.c-modal-content{gap:var(--space-3);max-width:calc(100vw - var(--space-8));padding:var(--space-4);text-align:center;flex-direction:column;display:flex}.c-modal-actions{gap:var(--space-4);flex-wrap:wrap;justify-content:center;display:flex}.c-example-fallback{color:var(--color-text)}.c-error-section{align-items:center;gap:var(--space-4);padding:var(--space-9) var(--space-4);text-align:center;flex-direction:column;justify-content:center;display:flex}.c-error-emoji{font-size:var(--font-size-6)}.c-error-code{font-size:var(--font-size-7);font-weight:800;line-height:1}.c-error-title{font-size:var(--font-size-4);margin:0}.c-error-description{max-width:var(--measure)}.c-back-to-top{background:var(--gradient-primary);bottom:calc(var(--space-10) + var(--space-2));box-shadow:var(--shadow-elevation-2);color:var(--color-white);cursor:pointer;height:calc(var(--space-8) - var(--space-2));right:var(--space-5);transition:filter var(--duration-normal) var(--easing-standard), transform var(--duration-normal) var(--easing-standard), box-shadow var(--duration-normal) var(--easing-standard);width:calc(var(--space-8) - var(--space-2));z-index:9999;border:none;border-radius:50%;position:fixed}.c-back-to-top:hover{box-shadow:var(--shadow-elevation-3);filter:brightness(1.1)}.c-back-to-top:active{transform:scale(.96)}.c-back-to-top:focus-visible{box-shadow:var(--shadow-elevation-2), 0 0 0 1px var(--color-palette-border), var(--focus-ring);outline:none}.c-back-to-top svg{pointer-events:none}@media (prefers-reduced-motion:reduce){.c-back-to-top{transition:none}}.c-about-section,.c-skills-section,.c-education-section,.c-experience-section,.c-blog-section,.c-contact-section{max-width:var(--measure);padding:var(--space-7) var(--space-4);margin:0 auto}}@layer utilities{.u-container{max-width:var(--measure);width:100%;margin:0 auto}.u-d-flex{display:flex}.u-d-block{display:block}.u-d-none{display:none}.u-flex-center{justify-content:center;align-items:center;display:flex}.u-absolute-fill{width:100%;height:100%;position:absolute;top:0;left:0}.u-w-100{width:100%}.u-text-center{text-align:center}.u-justify-content-between{justify-content:space-between}.u-fixed-bottom-right{bottom:var(--space-5);right:var(--space-5);position:fixed}.u-grid-row{gap:var(--space-4);flex-wrap:wrap;display:flex;container-type:inline-size}.u-grid-col{flex:1 0}@container (width>=36rem){.u-grid-col-sm-6{flex:0 0 calc(50% - var(--space-4))}}@container (width>=48rem){.u-grid-col-md-4{flex:0 0 calc(33.333% - var(--space-4))}.u-grid-col-md-8{flex:0 0 calc(66.667% - var(--space-4))}}.u-text-truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}}@layer overrides;@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms;animation-duration:.01ms;animation-iteration-count:1}html{scroll-behavior:auto}}
