@layer reset,tokens,base,components,utilities,overrides;@layer tokens{:root{--color-brand: color-mix(in srgb, oklch(45.89% .2417 295.61), transparent);--color-accent: color-mix(in srgb, oklch(59.5% .2157 260.53), transparent);--color-brand-secondary: color-mix(in srgb, oklch(50.81% .1773 275.87), transparent);--color-brand-tertiary: color-mix(in srgb, oklch(70.69% .1492 279.75), transparent);--color-brand-blue: color-mix(in srgb, oklch(55.58% .2142 269.03), transparent);--color-spinner: color-mix(in srgb, oklch(65.31% .1348 242.71), transparent);--color-success: color-mix(in srgb, oklch(74.59% .1812 152.35), transparent);--color-warning: color-mix(in srgb, oklch(83.58% .1689 91.77), transparent);--color-error: color-mix(in srgb, oklch(63.07% .194 29.43), transparent);--color-warning-accent: color-mix(in srgb, oklch(77.03% .1741 64.05), transparent);--color-gray-900: color-mix(in srgb, oklch(17.7% .0307 282.81), transparent);--color-gray-800: color-mix(in srgb, oklch(26.6% .0371 283.59), transparent);--color-gray-100: color-mix(in srgb, oklch(97.3% .0133 286.15), transparent);--color-gray-50: color-mix(in srgb, oklch(98.65% .0066 286.28), transparent);--color-base-white: color-mix(in srgb, oklch(100% 0 0), transparent);--color-base-black: color-mix(in srgb, oklch(0% 0 0), transparent);--color-gray: color-mix(in srgb, oklch(89.75% 0 0), transparent);--color-border-light: color-mix(in srgb, oklch(92.49% 0 0), transparent);--color-subtle-bg: color-mix(in srgb, oklch(98.42% .0034 247.86), transparent);--color-subtle-bg-alt: color-mix(in srgb, oklch(98.76% .0017 247.84), transparent);--color-subtle-bg-hover: color-mix(in srgb, oklch(96.83% .0069 247.9), transparent);--color-text-muted: color-mix(in srgb, oklch(55.44% .0407 257.42), transparent);--color-text-darker: color-mix(in srgb, oklch(44.55% .0374 257.28), transparent);--color-text-deep: color-mix(in srgb, oklch(37.17% .0392 257.29), transparent);--color-border-muted: color-mix(in srgb, oklch(92.88% .0126 255.51), transparent);--color-border-soft: color-mix(in srgb, oklch(86.9% .0198 252.89), transparent);--color-gray-medium: color-mix(in srgb, oklch(71.07% .0351 256.79), transparent);--color-spinner-track: color-mix(in srgb, oklch(96.42% 0 0), transparent);--color-border-neutral: color-mix(in srgb, oklch(84.52% 0 0), transparent);--color-light-gray: color-mix(in srgb, oklch(98.51% 0 0), transparent);--color-dark-gray: color-mix(in srgb, oklch(17.76% 0 0), transparent);--color-dark-black: color-mix(in srgb, oklch(25.2% 0 0), transparent);--color-dark-surface: color-mix(in srgb, oklch(28.5% 0 0), transparent);--color-gray-700: color-mix(in srgb, oklch(38.67% 0 0), transparent);--color-md-bg: color-mix(in srgb, oklch(18.22% 0 0), transparent);--color-md-text: color-mix(in srgb, oklch(90.67% 0 0), transparent);--color-md-heading-border: color-mix(in srgb, oklch(36.44% .0582 283.13), transparent);--color-md-h1: color-mix(in srgb, oklch(95.95% .02 286.02), transparent);--color-md-h2: color-mix(in srgb, oklch(87.3% .0647 284.98), transparent);--color-md-h2-border: color-mix(in srgb, oklch(30.79% .0411 283.72), transparent);--color-md-h3: color-mix(in srgb, oklch(82.98% .0879 284.32), transparent);--color-md-h4: color-mix(in srgb, oklch(78.68% .1116 283.54), transparent);--color-md-strong: color-mix(in srgb, oklch(100% 0 0), transparent);--color-md-table-bg: color-mix(in srgb, oklch(24.23% .0285 284.07), transparent);--color-md-th-bg: color-mix(in srgb, oklch(29.49% .038 283.83), transparent);--color-md-th-color: color-mix(in srgb, oklch(91.63% .042 285.54), transparent);--color-md-td-color: color-mix(in srgb, oklch(88.68% .0341 285.68), transparent);--color-md-td-bg: color-mix(in srgb, oklch(26.54% .0353 283.74), transparent);--color-md-table-border: color-mix(in srgb, oklch(37.4% .0528 283.55), transparent);--color-md-zebra-bg: color-mix(in srgb, oklch(23.33% .0268 284.13), transparent);--color-md-pre-bg: color-mix(in srgb, oklch(20% 0 0), transparent);--color-md-code-bg: color-mix(in srgb, oklch(78.8% .1104 282.42), transparent);--color-md-code-color: color-mix(in srgb, oklch(14.33% .0059 41.04), transparent);--color-md-link: color-mix(in srgb, oklch(70.69% .1491 279.75), transparent);--color-md-link-hover: color-mix(in srgb, oklch(77.05% .1196 281.1), transparent);--color-md-blockquote: color-mix(in srgb, oklch(81.02% .0984 283.34), transparent);--color-md-blockquote-border: color-mix(in srgb, oklch(50.81% .1772 275.86), transparent);--color-md-blockquote-bg: color-mix(in srgb, oklch(23.5% .0325 283.62), transparent);--color-md-hr: color-mix(in srgb, oklch(33.77% .0592 282.77), transparent);--color-404-text: color-mix(in srgb, oklch(33.51% .0331 260.91), transparent);--color-404-primary: color-mix(in srgb, oklch(60.29% .1466 243.46), transparent);--color-404-primary-hover: color-mix(in srgb, oklch(55.08% .1393 245.43), transparent);--color-404-primary-dark: color-mix(in srgb, oklch(45.2% .1309 251.01), transparent);--color-404-primary-darker: color-mix(in srgb, oklch(37.71% .1062 250.07), transparent);--color-404-heading: color-mix(in srgb, oklch(32.07% .1509 270.29), transparent);--color-404-lead: color-mix(in srgb, oklch(45.41% .0304 228.62), transparent);--color-404-search-border: color-mix(in srgb, oklch(95.32% .0218 239.43), transparent);--color-404-signature: color-mix(in srgb, oklch(63.88% .0327 229.55), transparent);--color-404-btn-secondary-hover-bg: color-mix( in srgb, oklch(95.32% .0218 239.43), transparent );--color-404-bg-start: color-mix(in srgb, oklch(96.02% .0244 206.2), transparent);--color-404-bg-end: color-mix(in srgb, oklch(88.48% .0546 243.39), transparent);--color-404-circle1-start: color-mix(in srgb, oklch(83.08% .0969 229.09), transparent);--color-404-circle1-end: color-mix(in srgb, oklch(77.26% .1268 231.11), transparent);--color-404-circle2-start: color-mix(in srgb, oklch(89.47% .0604 227.77), transparent);--color-404-circle2-end: color-mix(in srgb, oklch(83.08% .0969 229.09), transparent);--color-404-circle3-start: color-mix(in srgb, oklch(95.81% .0243 226.47), transparent);--color-404-circle3-end: color-mix(in srgb, oklch(89.47% .0604 227.77), transparent);--color-404-signature-line: color-mix(in srgb, oklch(70.64% .0268 229.31), transparent);--color-50x-text: color-mix(in srgb, oklch(33.51% .0331 260.91), transparent);--color-50x-error-stroke: color-mix(in srgb, oklch(61.37% .2039 25.56), transparent);--color-50x-heading: color-mix(in srgb, oklch(24.33% .0247 263.95), transparent);--color-50x-lead: color-mix(in srgb, oklch(44.74% .0343 261.32), transparent);--color-50x-message-bg: color-mix(in srgb, oklch(98.22% .0041 271.37), transparent);--color-50x-signature: color-mix(in srgb, oklch(59.56% .0381 257.87), transparent);--color-50x-primary-btn: color-mix(in srgb, oklch(59.46% .1398 250.3), transparent);--color-50x-primary-btn-hover: color-mix(in srgb, oklch(52.41% .1259 252.32), transparent);--color-50x-secondary-text: color-mix(in srgb, oklch(44.74% .0343 261.32), transparent);--color-50x-secondary-border: color-mix(in srgb, oklch(92.88% .0126 255.51), transparent);--color-50x-secondary-bg-hover: color-mix(in srgb, oklch(98.34% .0042 236.5), transparent);--color-50x-secondary-border-hover: color-mix( in srgb, oklch(86.87% .0187 250.61), transparent );--color-50x-bg-start: color-mix(in srgb, oklch(97.55% .0045 258.32), transparent);--color-50x-bg-end: color-mix(in srgb, oklch(94.28% .0189 255.53), transparent);--color-50x-decor1-start: color-mix(in srgb, oklch(95.14% .025 236.82), transparent);--color-50x-decor1-end: color-mix(in srgb, oklch(93.19% .0316 255.59), transparent);--color-50x-decor2-start: color-mix(in srgb, oklch(94.33% .0284 294.59), transparent);--color-50x-decor2-end: color-mix(in srgb, oklch(97.71% .0125 236.62), transparent);--color-50x-icon-start: color-mix(in srgb, oklch(95.68% .0221 7.17), transparent);--color-50x-icon-end: color-mix(in srgb, oklch(89.31% .0569 11.54), transparent);--color-50x-signature-line: color-mix(in srgb, oklch(86.87% .0187 250.61), transparent);--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{--color-brand: oklch(45.89% .2417 295.61);--color-accent: oklch(59.5% .2157 260.53);--color-brand-secondary: oklch(50.81% .1773 275.87);--color-brand-tertiary: oklch(70.69% .1492 279.75);--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)}}}@layer tokens{: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 )}}@layer base{body{align-items:stretch;background-color:var(--color-bg);color:var(--color-text);display:flex;flex-direction:column;font-family:var(--font-body);justify-content:flex-start;margin:0;min-height:100vh;padding:var(--space-9) 0 0;width:100%}main.c-main-content{margin-left:auto;margin-right:auto;max-width:100%;text-align:left;width:100%}}@layer components{.c-nav-container{container-type:inline-size}nav{align-items:center;backdrop-filter:blur(var(--space-2));background-color:var(--color-nav-bg);box-shadow:var(--shadow-elevation-3);color:var(--color-nav-text);display:flex;flex-wrap:nowrap;justify-content:space-between;left:0;padding:var(--space-2) var(--space-4);position:fixed;right:0;text-align:center;top:0;width:100%;z-index:1000;.c-nav-left,.c-nav-right{align-items:center;display:flex;gap:var(--space-4)}.c-nav-logo{align-items:center;display:flex;font-weight:600;gap:var(--space-1);.c-nav-home-logged-in,.c-nav-home-logged-out{align-items:center;display:flex;gap:var(--space-1)}.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{align-items:center;border-radius:50%;display:flex;padding:var(--space-1);transition:transform var(--duration-fast) var(--easing-standard),filter var(--duration-fast) var(--easing-standard);&:hover{filter:brightness(1.1);transform:scale(1.05)}&: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){background:none;border-radius:var(--radius-s);box-shadow:none;color:var(--color-nav-text);padding:var(--space-2) var(--space-3);text-decoration:none;transition:background-color var(--duration-normal),color var(--duration-normal)}button:not(.c-theme-option){border:none;cursor:pointer}a:hover,button:not(.c-theme-option):hover{background-color:var(--color-subtle-bg);color:var(--color-text)}a:active,button:not(.c-theme-option):active{background-color:var(--color-subtle-bg-hover)}a:focus-visible,button:not(.c-theme-option):focus-visible{box-shadow:var(--focus-ring);outline:none}.c-hamburger-btn{span{background:var(--color-nav-text);border-radius:calc(var(--radius-xs) / 4);display:block;height:var(--space-1);margin:var(--space-1) 0;transition:transform var(--duration-normal),opacity var(--duration-normal);width:var(--space-6)}&.is-open{span:nth-child(1){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{align-items:center;background:none;border:none;border-radius:var(--radius-s);box-shadow:none;color:var(--color-nav-text);cursor:pointer;display:flex;font-size:var(--font-size-1);gap:var(--space-1);padding:var(--space-2) var(--space-3);position:relative;text-decoration:none;transition:background-color var(--duration-normal),color var(--duration-normal);&:hover{background-color:var(--color-subtle-bg);color:var(--color-text)}&:active{background-color:var(--color-subtle-bg-hover)}&:focus-visible{box-shadow:var(--focus-ring);outline:none}}.c-theme-options{background-color:var(--color-nav-bg);border-radius:var(--radius-s);box-shadow:var(--shadow-elevation-2);display:flex;gap:var(--space-1);left:50%;padding:var(--space-1);position:absolute;top:calc(100% + var(--space-1));transform:translate(-50%);z-index:1001}.c-theme-option{align-items:center;border:var(--border-3);border-radius:var(--radius-xs);cursor:pointer;display:flex;height:calc(var(--space-7) - var(--space-1));justify-content:center;padding:0;transition:background-color var(--duration-fast),box-shadow var(--duration-fast);width:calc(var(--space-7) - var(--space-1));&.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)}&:hover{box-shadow:var(--shadow-elevation-2)}&.is-active{border-color:var(--color-warning-accent)}&:focus-visible{box-shadow:var(--focus-ring);outline:none}}.c-language-selector-wrapper{display:inline-block;position:relative}.c-language-selector-main{align-items:center;background:none;border:none;border-radius:var(--radius-s);box-shadow:none;color:var(--color-nav-text);cursor:pointer;display:flex;font-size:var(--font-size-1);gap:var(--space-1);padding:var(--space-2) var(--space-3);position:relative;text-decoration:none;transition:background-color var(--duration-normal),color var(--duration-normal);&:hover{background-color:var(--color-subtle-bg);color:var(--color-text)}&:active{background-color:var(--color-subtle-bg-hover)}&:focus-visible{box-shadow:var(--focus-ring);outline:none}}.c-language-options{background-color:var(--color-nav-bg);border-radius:var(--radius-s);box-shadow:var(--shadow-elevation-2);display:flex;flex-direction:column;gap:var(--space-1);left:50%;padding:var(--space-1);position:absolute;top:calc(100% + var(--space-1));transform:translate(-50%);z-index:1001}.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);padding:var(--space-1) var(--space-2);transition:background-color var(--duration-fast),box-shadow var(--duration-fast);&:hover{box-shadow:var(--shadow-elevation-2)}&.is-active{border-color:var(--color-warning-accent)}&:focus-visible{box-shadow:var(--focus-ring);outline:none}}}@container (max-width: 48rem){nav{flex-wrap:nowrap;gap:var(--space-2);padding:var(--space-1) var(--space-3)}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 (max-width: 30rem){nav{flex-wrap:nowrap;gap:var(--space-2);padding:var(--space-1) var(--space-2)}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 (max-width: 22.5rem){nav{flex-wrap:wrap;gap:var(--space-1);padding:var(--space-1) var(--space-1)}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}}.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);inset:0;opacity:0;position:fixed;transition:opacity var(--duration-normal);visibility:hidden;z-index:1001;&.is-open{opacity:1;visibility:visible}}.c-side-menu{background:var(--color-nav-bg);box-sizing:border-box;display:flex;flex-direction:column;gap:var(--space-4);height:100vh;left:0;max-width:80%;overflow-y:auto;padding:var(--space-9) var(--space-5) var(--space-5);position:fixed;top:0;transform:translate(-100%);transition:transform var(--duration-normal);width:calc(var(--space-10) * 2.75);z-index:1002;&.is-open{transform:translate(0)}>.c-side-menu-link{background:none;border-radius:var(--radius-s);box-shadow:none;color:var(--color-nav-text);display:block;padding:var(--space-2) var(--space-3);text-decoration:none;transition:background-color var(--duration-normal),color var(--duration-normal);&:hover{background-color:var(--color-subtle-bg);color:var(--color-text)}&:active{background-color:var(--color-subtle-bg-hover)}&:focus-visible{box-shadow:var(--focus-ring);outline:none}}}}@layer components{.c-app-header{background:var(--gradient-primary);color:var(--color-white);padding:var(--space-5);position:relative;text-align:center}}@layer components{.c-btn-primary{background:var(--gradient-primary);border:none;border-radius:var(--radius-s);box-shadow:var(--shadow-elevation-2);color:var(--color-white);transition:filter var(--duration-normal) var(--easing-standard),transform var(--duration-normal) var(--easing-standard);&:hover{filter:brightness(1.1);transform:translateY(calc(var(--space-1) * -.5))}&:active{transform:translateY(0)}&:focus-visible{box-shadow:var(--shadow-elevation-2),var(--focus-ring);outline:none}&:disabled{box-shadow:none;cursor:not-allowed;opacity:.6}}.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);transition:filter var(--duration-normal) var(--easing-standard),transform var(--duration-normal) var(--easing-standard);&:hover{background:var(--color-subtle-bg-hover);color:var(--color-text-darker)}&:focus-visible{box-shadow:var(--shadow-elevation-1),var(--focus-ring);outline:none}&:disabled{box-shadow:none;cursor:not-allowed;opacity:.6}}.c-btn-chat{align-items:center;border-radius:var(--radius-l);display:flex;font-weight:600;justify-content:center;padding:var(--space-3) var(--space-6);transition:all var(--duration-normal) var(--easing-standard);&: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}}@layer components{.c-form-label{display:block;font-weight:600;margin-bottom:var(--space-1)}.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);display:block;padding:var(--space-2) var(--space-3);transition:border-color var(--duration-fast) var(--easing-standard),box-shadow var(--duration-fast) var(--easing-standard);width:100%;&:focus-visible{box-shadow:var(--focus-ring);outline:none}}.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{height:var(--space-4);width:var(--space-4)}.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);container-type:inline-size;margin:var(--space-5) auto;padding:var(--space-5);width:100%;@container (min-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{margin:0 auto;max-width:var(--size-auth-form);width:100%;@container (max-width: 64rem){width:70%}@container (max-width: 48rem){width:100%}}.c-login-title,.c-register-title{font-weight:600;margin-bottom:var(--space-4);text-align:center}.c-password-field{position:relative}.c-password-toggle{align-items:center;background:none;border:0;bottom:0;cursor:pointer;display:flex;padding:0;position:absolute;right:var(--space-2);top:0;&:focus-visible{border-radius:var(--radius-xs);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);overflow:hidden;width:100%}.c-progress-bar{background:var(--color-brand-blue);height:100%;transition:width var(--duration-normal) var(--easing-standard);width:0}.c-third-party{display:flex;gap:var(--space-4);justify-content:center;margin-top:var(--space-4);a,button{background:none;border:none;cursor:pointer;&:focus-visible{border-radius:var(--radius-xs);box-shadow:var(--focus-ring);outline:none}}}.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)}}@layer components{.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:"";inset:0;position:absolute;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}}}@layer components{.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-radius:50%;border-top:var(--space-1) solid var(--spinner-color);height:var(--spinner-size);width:var(--spinner-size)}.c-spinner-center{left:50%;position:absolute;top:50%;translate:-50% -50%}@keyframes spinner-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.c-loader,.c-doc-loader{align-items:center;display:flex;justify-content:center;margin:auto;padding:var(--space-5);text-align:center;.c-dot{animation:dot-bounce calc(var(--duration-fast) * 7) infinite both;background:var(--color-spinner);border-radius:50%;height:var(--space-2);margin:0 var(--space-1);width:var(--space-2);&:nth-child(1){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{align-items:center;background:var(--overlay-surface);border:var(--border-0);border-radius:var(--radius-l);box-shadow:var(--shadow-elevation-3);color:var(--color-text);display:flex;gap:var(--space-3);padding:var(--space-3) var(--space-5);transition:opacity var(--duration-normal) var(--easing-standard);z-index:1000}.c-pulse-container{height:var(--space-5);position:relative;width:calc(var(--space-8) - var(--space-2))}.c-pulse-dot{animation:pulse calc(var(--duration-slow) * 3) infinite;background:var(--color-brand);border-radius:50%;height:var(--space-2);position:absolute;width:var(--space-2)}.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{align-items:center;backdrop-filter:blur(2px);background:var(--overlay-surface);display:flex;inset:0;justify-content:center;opacity:0;pointer-events:none;position:fixed;transition:opacity var(--duration-normal) var(--easing-standard);z-index:1002}.c-auth-overlay.is-active{opacity:1;pointer-events:all}@media (prefers-reduced-motion: reduce){.c-spinner,.c-dot,.c-pulse-dot{animation:none}}}@layer components{.c-modal{align-items:center;background:var(--overlay-modal-bg);color:var(--color-base-white);display:flex;inset:0;justify-content:center;position:fixed;z-index:1003}.c-modal-content{display:flex;flex-direction:column;gap:var(--space-3);max-width:calc(100vw - var(--space-8));padding:var(--space-4);text-align:center}.c-modal-actions{display:flex;flex-wrap:wrap;gap:var(--space-4);justify-content:center}}@layer components{.c-example-fallback{color:var(--color-text)}.c-error-section{align-items:center;display:flex;flex-direction:column;gap:var(--space-4);justify-content:center;padding:var(--space-9) var(--space-4);text-align:center}.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);border:none;border-radius:50%;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));position:fixed;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}.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),var(--focus-ring);outline:none}.c-back-to-top svg{pointer-events:none}}@layer components{.c-about-section,.c-skills-section,.c-education-section,.c-experience-section,.c-blog-section,.c-contact-section{margin:0 auto;max-width:var(--measure);padding:var(--space-7) var(--space-4)}}@layer utilities{/*! Layout system extracted from theme.css */.u-container{margin:0 auto;max-width:var(--measure);width:100%}}@layer utilities{/*! Utility classes extracted from theme.css */.u-d-flex{display:flex}.u-d-block{display:block}.u-d-none{display:none}.u-flex-center{align-items:center;display:flex;justify-content:center}.u-absolute-fill{height:100%;left:0;position:absolute;top:0;width:100%}.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);position:fixed;right:var(--space-5)}.u-grid-row{container-type:inline-size;display:flex;flex-wrap:wrap;gap:var(--space-4)}.u-grid-col{flex:1 0 0%}@container (min-width: 36rem){.u-grid-col-sm-6{flex:0 0 calc(50% - var(--space-4))}}@container (min-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{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}@layer reset{html{box-sizing:border-box}*,*:before,*:after{box-sizing:inherit}pre{overflow-x:auto}}@layer tokens{:root{--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-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-scheme:dark}}@layer base{body{font-family:var(--font-body);font-size:var(--font-size-2);line-height:1.5}main,article{margin-inline:auto;max-width:var(--measure)}p{line-height:1.6;margin-block:0 var(--space-4);max-width:var(--measure)}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}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms;animation-iteration-count:1;transition-duration:.01ms}html{scroll-behavior:auto}}@layer overrides;
