*,*:before,*:after{box-sizing:border-box}*{margin:0}html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:calc(var(--header-height) + var(--space-lg));-moz-tab-size:2;tab-size:2}body{min-height:100svh;line-height:var(--lh-normal);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}img,picture,video,canvas,svg{display:block;max-width:100%}img,video{height:auto}input,button,textarea,select{font:inherit;color:inherit;letter-spacing:inherit}button{background:none;border:0;padding:0;cursor:pointer}p,h1,h2,h3,h4,h5,h6{overflow-wrap:break-word}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit;text-wrap:balance}ul[role=list],ol[role=list]{list-style:none;padding:0}a{color:inherit;text-decoration:none}table{border-collapse:collapse;border-spacing:0}dialog{border:0;padding:0;background:none;color:inherit;max-width:none;max-height:none}:where(:focus-visible){outline:2px solid var(--c-accent);outline-offset:2px;border-radius:var(--radius-xs)}:where(:focus:not(:focus-visible)){outline:none}::selection{background:var(--c-selection);color:var(--c-text)}[hidden]{display:none!important}:root{color-scheme:light;--hue-teal-100: #d7fbf3;--hue-teal-300: #6fe8d2;--hue-teal-500: #17b39d;--hue-teal-600: #0e8f80;--hue-teal-700: #0a6d62;--hue-amber-300: #ffd39a;--hue-amber-500: #f0921f;--hue-amber-600: #b4681a;--hue-violet-300: #c3b4ff;--hue-violet-500: #7a5cf0;--hue-violet-600: #5b41c8;--hue-navy-900: #070b12;--hue-navy-850: #0b111b;--hue-navy-800: #0e1622;--hue-navy-700: #131d2b;--hue-navy-600: #1b2839;--hue-navy-500: #27374d;--hue-paper-50: #fbfaf7;--hue-paper-100: #f5f2ec;--hue-paper-200: #ece7de;--hue-paper-300: #ded7ca;--hue-ink-900: #101a26;--hue-ink-700: #24354a;--hue-ink-500: #4d6377;--hue-ink-400: #6b7f93;--c-bg: var(--hue-paper-100);--c-bg-deep: var(--hue-paper-200);--c-surface: #ffffff;--c-surface-2: var(--hue-paper-50);--c-surface-3: var(--hue-paper-200);--c-surface-inset: #ffffff;--c-line: color-mix(in oklab, var(--hue-ink-900) 12%, transparent);--c-line-strong: color-mix(in oklab, var(--hue-ink-900) 22%, transparent);--c-line-faint: color-mix(in oklab, var(--hue-ink-900) 7%, transparent);--c-text: var(--hue-ink-900);--c-text-soft: var(--hue-ink-700);--c-text-muted: var(--hue-ink-500);--c-text-faint: var(--hue-ink-400);--c-text-invert: var(--hue-paper-50);--c-accent: var(--hue-teal-600);--c-accent-hover: var(--hue-teal-700);--c-accent-soft: color-mix(in oklab, var(--hue-teal-500) 14%, transparent);--c-accent-contrast: #ffffff;--c-warm: var(--hue-amber-600);--c-warm-soft: color-mix(in oklab, var(--hue-amber-500) 16%, transparent);--c-arcane: var(--hue-violet-600);--c-arcane-soft: color-mix(in oklab, var(--hue-violet-500) 14%, transparent);--c-rose: #c2427a;--c-rose-soft: color-mix(in oklab, #e0619a 16%, transparent);--c-green: #3f8f3a;--c-green-soft: color-mix(in oklab, #58ad52 16%, transparent);--c-azure: #2166c4;--c-azure-soft: color-mix(in oklab, #3d84e0 16%, transparent);--c-danger: #c0392f;--c-danger-soft: color-mix(in oklab, #c0392f 12%, transparent);--c-success: var(--hue-teal-600);--c-success-soft: var(--c-accent-soft);--c-caution: var(--hue-amber-600);--c-caution-soft: var(--c-warm-soft);--c-selection: color-mix(in oklab, var(--hue-teal-500) 26%, transparent);--glow-a: color-mix(in oklab, var(--hue-teal-500) 22%, transparent);--glow-b: color-mix(in oklab, var(--hue-violet-500) 16%, transparent);--glow-c: color-mix(in oklab, var(--hue-amber-500) 14%, transparent);--shadow-sm: 0 1px 2px rgb(16 26 38 / .06), 0 1px 3px rgb(16 26 38 / .05);--shadow-md: 0 4px 10px rgb(16 26 38 / .07), 0 12px 28px rgb(16 26 38 / .06);--shadow-lg: 0 10px 24px rgb(16 26 38 / .09), 0 30px 60px rgb(16 26 38 / .09);--shadow-glow: 0 0 0 1px var(--c-accent-soft), 0 10px 40px -12px var(--glow-a);--font-sans: "Inter var", "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI Variable Text", "Segoe UI", Roboto, "Helvetica Neue", Arial, "PingFang SC", "HarmonyOS Sans SC", "Source Han Sans SC", "Noto Sans SC", "Microsoft YaHei", sans-serif;--font-display: "Segoe UI Variable Display", "SF Pro Display", -apple-system, BlinkMacSystemFont, "Inter var", "Inter", "Segoe UI", Roboto, "PingFang SC", "HarmonyOS Sans SC", "Source Han Sans SC", "Noto Sans SC", "Microsoft YaHei", sans-serif;--font-mono: ui-monospace, "Cascadia Code", "JetBrains Mono", "SFMono-Regular", Menlo, Consolas, "Liberation Mono", "Noto Sans Mono CJK SC", monospace;--fs-2xs: .6875rem;--fs-xs: .78125rem;--fs-sm: .875rem;--fs-base: clamp(.9375rem, .9rem + .16vw, 1rem);--fs-md: clamp(1.0625rem, 1rem + .28vw, 1.1875rem);--fs-lg: clamp(1.1875rem, 1.08rem + .5vw, 1.4375rem);--fs-xl: clamp(1.4375rem, 1.24rem + .9vw, 1.9375rem);--fs-2xl: clamp(1.75rem, 1.4rem + 1.6vw, 2.625rem);--fs-3xl: clamp(2.125rem, 1.55rem + 2.6vw, 3.5rem);--fs-4xl: clamp(2.5rem, 1.5rem + 4.6vw, 5rem);--lh-tight: 1.12;--lh-snug: 1.28;--lh-normal: 1.6;--lh-relaxed: 1.75;--tracking-tight: -.022em;--tracking-snug: -.012em;--tracking-wide: .02em;--tracking-caps: .09em;--weight-normal: 400;--weight-medium: 500;--weight-semibold: 600;--weight-bold: 700;--space-3xs: .125rem;--space-2xs: .25rem;--space-xs: .5rem;--space-sm: .75rem;--space-md: 1rem;--space-lg: 1.5rem;--space-xl: 2rem;--space-2xl: 3rem;--space-3xl: clamp(3rem, 2rem + 4vw, 5rem);--space-4xl: clamp(4rem, 2.5rem + 6.5vw, 8rem);--radius-xs: 4px;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 18px;--radius-xl: 26px;--radius-full: 999px;--width-prose: 68ch;--width-content: 1140px;--width-wide: 1400px;--gutter: clamp(1rem, .4rem + 2.6vw, 2.5rem);--header-height: 4rem;--sidebar-width: 16.5rem;--toc-width: 15rem;--ease-out: cubic-bezier(.16, 1, .3, 1);--ease-in-out: cubic-bezier(.65, 0, .35, 1);--ease-spring: cubic-bezier(.34, 1.56, .64, 1);--dur-fast: .14s;--dur-base: .24s;--dur-slow: .42s;--dur-slower: .72s;--z-base: 0;--z-sticky: 20;--z-header: 40;--z-overlay: 60;--z-dialog: 70;--z-toast: 80}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){color-scheme:dark;--c-bg: var(--hue-navy-900);--c-bg-deep: #04070c;--c-surface: var(--hue-navy-800);--c-surface-2: var(--hue-navy-850);--c-surface-3: var(--hue-navy-700);--c-surface-inset: #060a11;--c-line: color-mix(in oklab, #9dc4d8 16%, transparent);--c-line-strong: color-mix(in oklab, #9dc4d8 28%, transparent);--c-line-faint: color-mix(in oklab, #9dc4d8 9%, transparent);--c-text: #e6edf5;--c-text-soft: #c2cfdd;--c-text-muted: #94a6ba;--c-text-faint: #6f8298;--c-text-invert: var(--hue-navy-900);--c-accent: var(--hue-teal-300);--c-accent-hover: #9df3e2;--c-accent-soft: color-mix(in oklab, var(--hue-teal-300) 16%, transparent);--c-accent-contrast: var(--hue-navy-900);--c-warm: var(--hue-amber-300);--c-warm-soft: color-mix(in oklab, var(--hue-amber-300) 16%, transparent);--c-arcane: var(--hue-violet-300);--c-arcane-soft: color-mix(in oklab, var(--hue-violet-300) 16%, transparent);--c-rose: #f7a0c4;--c-rose-soft: color-mix(in oklab, #f7a0c4 16%, transparent);--c-green: #96e08d;--c-green-soft: color-mix(in oklab, #96e08d 16%, transparent);--c-azure: #8fc2ff;--c-azure-soft: color-mix(in oklab, #8fc2ff 16%, transparent);--c-danger: #ff9a90;--c-danger-soft: color-mix(in oklab, #ff9a90 15%, transparent);--c-success: var(--hue-teal-300);--c-success-soft: var(--c-accent-soft);--c-caution: var(--hue-amber-300);--c-caution-soft: var(--c-warm-soft);--c-selection: color-mix(in oklab, var(--hue-teal-300) 30%, transparent);--glow-a: color-mix(in oklab, var(--hue-teal-300) 26%, transparent);--glow-b: color-mix(in oklab, var(--hue-violet-300) 20%, transparent);--glow-c: color-mix(in oklab, var(--hue-amber-300) 16%, transparent);--shadow-sm: 0 1px 2px rgb(0 0 0 / .4);--shadow-md: 0 6px 16px rgb(0 0 0 / .42), 0 2px 6px rgb(0 0 0 / .3);--shadow-lg: 0 18px 44px rgb(0 0 0 / .5), 0 6px 14px rgb(0 0 0 / .34);--shadow-glow: 0 0 0 1px var(--c-accent-soft), 0 14px 50px -14px var(--glow-a)}}:root[data-theme=dark]{color-scheme:dark;--c-bg: var(--hue-navy-900);--c-bg-deep: #04070c;--c-surface: var(--hue-navy-800);--c-surface-2: var(--hue-navy-850);--c-surface-3: var(--hue-navy-700);--c-surface-inset: #060a11;--c-line: color-mix(in oklab, #9dc4d8 16%, transparent);--c-line-strong: color-mix(in oklab, #9dc4d8 28%, transparent);--c-line-faint: color-mix(in oklab, #9dc4d8 9%, transparent);--c-text: #e6edf5;--c-text-soft: #c2cfdd;--c-text-muted: #94a6ba;--c-text-faint: #6f8298;--c-text-invert: var(--hue-navy-900);--c-accent: var(--hue-teal-300);--c-accent-hover: #9df3e2;--c-accent-soft: color-mix(in oklab, var(--hue-teal-300) 16%, transparent);--c-accent-contrast: var(--hue-navy-900);--c-warm: var(--hue-amber-300);--c-warm-soft: color-mix(in oklab, var(--hue-amber-300) 16%, transparent);--c-arcane: var(--hue-violet-300);--c-arcane-soft: color-mix(in oklab, var(--hue-violet-300) 16%, transparent);--c-danger: #ff9a90;--c-danger-soft: color-mix(in oklab, #ff9a90 15%, transparent);--c-success: var(--hue-teal-300);--c-success-soft: var(--c-accent-soft);--c-caution: var(--hue-amber-300);--c-caution-soft: var(--c-warm-soft);--c-selection: color-mix(in oklab, var(--hue-teal-300) 30%, transparent);--glow-a: color-mix(in oklab, var(--hue-teal-300) 26%, transparent);--glow-b: color-mix(in oklab, var(--hue-violet-300) 20%, transparent);--glow-c: color-mix(in oklab, var(--hue-amber-300) 16%, transparent);--shadow-sm: 0 1px 2px rgb(0 0 0 / .4);--shadow-md: 0 6px 16px rgb(0 0 0 / .42), 0 2px 6px rgb(0 0 0 / .3);--shadow-lg: 0 18px 44px rgb(0 0 0 / .5), 0 6px 14px rgb(0 0 0 / .34);--shadow-glow: 0 0 0 1px var(--c-accent-soft), 0 14px 50px -14px var(--glow-a)}:root:lang(zh-CN),[lang=zh-CN]{--lh-normal: 1.75;--lh-relaxed: 1.9;--tracking-tight: 0;--tracking-snug: 0;--width-prose: 40em}body{font-family:var(--font-sans);font-size:var(--fs-base);color:var(--c-text);background-color:var(--c-bg);background-image:radial-gradient(120vw 70vh at 80% -10%,var(--glow-b),transparent 60%),radial-gradient(90vw 60vh at 10% 0%,var(--glow-a),transparent 55%);background-attachment:fixed;background-repeat:no-repeat;display:flex;flex-direction:column;overflow-x:clip}body[data-scroll-locked]{overflow:hidden}main{flex:1 0 auto}.shell{width:100%;max-width:var(--width-content);margin-inline:auto;padding-inline:var(--gutter)}.shell--wide{max-width:var(--width-wide)}.shell--prose{max-width:calc(var(--width-prose) + var(--gutter) * 2)}.stack>*+*{margin-block-start:var(--stack-gap, var(--space-md))}.section{padding-block:var(--space-4xl)}.section--tight{padding-block:var(--space-3xl)}.section+.section{padding-block-start:0}.section__head{max-width:46rem;margin-block-end:var(--space-2xl)}.section__head--split{max-width:none;display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:var(--space-lg)}.eyebrow{display:inline-flex;align-items:center;gap:var(--space-xs);font-size:var(--fs-xs);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--c-accent)}.eyebrow:before{content:"";inline-size:1.5rem;block-size:1px;background:currentColor;opacity:.6}.eyebrow--plain:before{display:none}.section__title{font-family:var(--font-display);font-size:var(--fs-2xl);font-weight:var(--weight-bold);line-height:var(--lh-tight);letter-spacing:var(--tracking-tight);margin-block-start:var(--space-sm)}.section__lead{margin-block-start:var(--space-md);font-size:var(--fs-md);color:var(--c-text-muted);line-height:var(--lh-relaxed);max-width:52ch}.grid{display:grid;gap:var(--grid-gap, var(--space-lg))}.grid--2{grid-template-columns:repeat(auto-fit,minmax(min(26rem,100%),1fr))}.grid--3{grid-template-columns:repeat(auto-fit,minmax(min(21rem,100%),1fr))}.grid--4{grid-template-columns:repeat(auto-fit,minmax(min(15rem,100%),1fr))}.cluster{display:flex;flex-wrap:wrap;align-items:center;gap:var(--cluster-gap, var(--space-sm))}.divider{border:0;block-size:1px;background:linear-gradient(90deg,transparent,var(--c-line),transparent)}.text-muted{color:var(--c-text-muted)}.text-soft{color:var(--c-text-soft)}.text-mono{font-family:var(--font-mono);font-size:.92em;font-variant-ligatures:none}.text-balance{text-wrap:balance}.text-pretty{text-wrap:pretty}.sr-only{position:absolute;inline-size:1px;block-size:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}.skip-link{position:fixed;inset-block-start:var(--space-sm);inset-inline-start:var(--space-sm);z-index:calc(var(--z-toast) + 1);padding:var(--space-xs) var(--space-md);border-radius:var(--radius-sm);background:var(--c-accent);color:var(--c-accent-contrast);font-weight:var(--weight-semibold);transform:translateY(-150%);transition:transform var(--dur-base) var(--ease-out)}.skip-link:focus-visible{transform:translateY(0)}.link{color:var(--c-accent);text-decoration:underline;text-decoration-color:color-mix(in oklab,currentColor 35%,transparent);text-underline-offset:.22em;text-decoration-thickness:1px;transition:text-decoration-color var(--dur-fast) var(--ease-out),color var(--dur-fast)}.link:hover{text-decoration-color:currentColor}.link-slide{position:relative;display:inline-block}.link-slide:after{content:"";position:absolute;inset-inline:0;inset-block-end:-.14em;block-size:1px;background:currentColor;transform:scaleX(0);transform-origin:right;transition:transform var(--dur-base) var(--ease-out)}.link-slide:hover:after,a:hover .link-slide:after{transform:scaleX(1);transform-origin:left}.btn{--btn-bg: transparent;--btn-fg: var(--c-text);--btn-border: var(--c-line-strong);position:relative;display:inline-flex;align-items:center;justify-content:center;gap:var(--space-xs);padding:.7em 1.25em;border-radius:var(--radius-full);border:1px solid var(--btn-border);background:var(--btn-bg);color:var(--btn-fg);font-size:var(--fs-sm);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-snug);line-height:1.2;white-space:nowrap;cursor:pointer;overflow:hidden;isolation:isolate;transition:transform var(--dur-fast) var(--ease-out),border-color var(--dur-base) var(--ease-out),background-color var(--dur-base) var(--ease-out),color var(--dur-base) var(--ease-out),box-shadow var(--dur-base) var(--ease-out)}.btn:hover{transform:translateY(-1px)}.btn:active{transform:translateY(0) scale(.985)}.btn--primary{--btn-bg: var(--c-accent);--btn-fg: var(--c-accent-contrast);--btn-border: transparent;box-shadow:0 6px 22px -10px var(--glow-a)}.btn--primary:hover{--btn-bg: var(--c-accent-hover);box-shadow:0 10px 30px -10px var(--glow-a)}.btn--ghost:hover{--btn-border: var(--c-accent);color:var(--c-accent)}.btn--quiet{--btn-border: transparent;padding-inline:.85em}.btn--quiet:hover{background:var(--c-surface-3)}.btn--sm{padding:.5em .95em;font-size:var(--fs-xs)}.btn--lg{padding:.85em 1.6em;font-size:var(--fs-base)}.btn--primary:after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(115deg,transparent 30%,rgb(255 255 255 / .35) 50%,transparent 70%);transform:translate(-120%);transition:transform var(--dur-slower) var(--ease-out)}.btn--primary:hover:after{transform:translate(120%)}.icon{inline-size:1.15em;block-size:1.15em;flex:none;fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round}.icon--filled{fill:currentColor;stroke:none}.icon-btn{display:inline-grid;place-items:center;inline-size:2.25rem;block-size:2.25rem;border-radius:var(--radius-sm);color:var(--c-text-muted);transition:background-color var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out)}.icon-btn:hover{background:var(--c-surface-3);color:var(--c-text)}.badge{display:inline-flex;align-items:center;gap:.4em;padding:.28em .7em;border-radius:var(--radius-full);border:1px solid var(--c-line);background:var(--c-surface-2);color:var(--c-text-muted);font-size:var(--fs-2xs);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-wide);line-height:1.4;white-space:nowrap}.badge--accent{border-color:transparent;background:var(--c-accent-soft);color:var(--c-accent)}.badge--warm{border-color:transparent;background:var(--c-warm-soft);color:var(--c-warm)}.badge--arcane{border-color:transparent;background:var(--c-arcane-soft);color:var(--c-arcane)}.badge--dot:before{content:"";inline-size:.45em;block-size:.45em;border-radius:50%;background:currentColor}.card{position:relative;display:flex;flex-direction:column;padding:var(--card-pad, var(--space-lg));border-radius:var(--radius-lg);border:1px solid var(--c-line);background:var(--c-surface);overflow:hidden;transition:transform var(--dur-base) var(--ease-out),border-color var(--dur-base) var(--ease-out),box-shadow var(--dur-base) var(--ease-out)}.card--link:hover,.card--link:focus-within{transform:translateY(-3px);border-color:var(--c-line-strong);box-shadow:var(--shadow-md)}.card--spotlight:before{content:"";position:absolute;inset:-1px;border-radius:inherit;background:radial-gradient(16rem 16rem at var(--pointer-x, 50%) var(--pointer-y, 0%),var(--c-accent-soft),transparent 70%);opacity:0;transition:opacity var(--dur-base) var(--ease-out);pointer-events:none}.card--spotlight:hover:before,.card--spotlight:focus-within:before{opacity:1}.card__title{font-family:var(--font-display);font-size:var(--fs-lg);font-weight:var(--weight-semibold);line-height:var(--lh-snug);letter-spacing:var(--tracking-snug)}.card__body{margin-block-start:var(--space-sm);color:var(--c-text-muted);font-size:var(--fs-sm);line-height:var(--lh-relaxed);text-wrap:pretty}.card__foot{margin-block-start:auto;padding-block-start:var(--space-md)}.card__link:after{content:"";position:absolute;inset:0;border-radius:inherit}.panel{border-radius:var(--radius-lg);border:1px solid var(--c-line);background:var(--c-surface-2);padding:var(--space-lg)}.panel--inset{background:var(--c-surface-inset)}@supports selector(::-webkit-scrollbar){.scroll-thin::-webkit-scrollbar{inline-size:8px;block-size:8px}.scroll-thin::-webkit-scrollbar-thumb{background:var(--c-line-strong);border-radius:var(--radius-full)}.scroll-thin::-webkit-scrollbar-track{background:transparent}}.scroll-thin{scrollbar-width:thin;scrollbar-color:var(--c-line-strong) transparent}[data-accent]{--accent: var(--c-accent);--accent-soft: var(--c-accent-soft)}[data-accent=amber]{--accent: var(--c-warm);--accent-soft: var(--c-warm-soft)}[data-accent=violet]{--accent: var(--c-arcane);--accent-soft: var(--c-arcane-soft)}[data-accent=rose]{--accent: var(--c-rose);--accent-soft: var(--c-rose-soft)}[data-accent=green]{--accent: var(--c-green);--accent-soft: var(--c-green-soft)}[data-accent=azure]{--accent: var(--c-azure);--accent-soft: var(--c-azure-soft)}.prose{font-size:var(--fs-base);line-height:var(--lh-relaxed);color:var(--c-text-soft);max-inline-size:var(--width-prose)}.prose--wide{max-inline-size:none}.prose>*+*{margin-block-start:1.15em}.prose :is(h2,h3,h4,h5,h6){font-family:var(--font-display);color:var(--c-text);letter-spacing:var(--tracking-snug);line-height:var(--lh-snug);scroll-margin-block-start:calc(var(--header-height) + var(--space-lg))}.prose h2{font-size:var(--fs-xl);font-weight:var(--weight-bold);margin-block-start:2.2em;padding-block-end:.35em;border-block-end:1px solid var(--c-line-faint)}.prose h3{font-size:var(--fs-lg);font-weight:var(--weight-semibold);margin-block-start:1.9em}.prose h4{font-size:var(--fs-md);font-weight:var(--weight-semibold);margin-block-start:1.6em}.prose h5,.prose h6{font-size:var(--fs-base);font-weight:var(--weight-semibold);margin-block-start:1.5em;color:var(--c-text-muted)}.prose :is(h2,h3,h4)>.heading-anchor{position:absolute;margin-inline-start:-1.15em;inline-size:1em;color:var(--c-text-faint);opacity:0;text-decoration:none;transition:opacity var(--dur-fast) var(--ease-out),color var(--dur-fast)}.prose :is(h2,h3,h4){position:relative}.prose :is(h2,h3,h4):hover>.heading-anchor,.prose .heading-anchor:focus-visible{opacity:1}.prose .heading-anchor:hover{color:var(--c-accent)}@media(max-width:60rem){.prose .heading-anchor{display:none}}.prose a:not(.btn):not(.heading-anchor){color:var(--c-accent);text-decoration:underline;text-decoration-color:color-mix(in oklab,currentColor 32%,transparent);text-underline-offset:.2em;text-decoration-thickness:1px;transition:text-decoration-color var(--dur-fast) var(--ease-out)}.prose a:not(.btn):not(.heading-anchor):hover{text-decoration-color:currentColor}.prose strong{color:var(--c-text);font-weight:var(--weight-semibold)}.prose em{font-style:italic}.prose abbr[title]{text-decoration:underline dotted;cursor:help}.prose kbd{display:inline-block;padding:.15em .45em;border-radius:var(--radius-xs);border:1px solid var(--c-line-strong);border-block-end-width:2px;background:var(--c-surface-3);color:var(--c-text);font-family:var(--font-mono);font-size:.82em;line-height:1.4}.prose :not(pre)>code{padding:.15em .38em;border-radius:var(--radius-xs);border:1px solid var(--c-line-faint);background:var(--c-surface-3);color:var(--c-text);font-family:var(--font-mono);font-size:.85em;overflow-wrap:break-word}.prose :is(ul,ol){padding-inline-start:1.5em}.prose li+li{margin-block-start:.4em}.prose li>:is(ul,ol){margin-block-start:.4em}.prose ul{list-style:none;padding-inline-start:1.35em}.prose ul>li{position:relative}.prose ul>li:before{content:"";position:absolute;inset-inline-start:-1em;inset-block-start:.68em;inline-size:5px;block-size:5px;border-radius:50%;background:var(--c-accent);opacity:.75}.prose ol{list-style:decimal}.prose ol::marker,.prose ol>li::marker{color:var(--c-text-faint);font-variant-numeric:tabular-nums}.prose dl{display:grid;grid-template-columns:minmax(6rem,max-content) 1fr;gap:.35em 1.25em}.prose dt{font-weight:var(--weight-semibold);color:var(--c-text)}.prose blockquote{padding:var(--space-xs) 0 var(--space-xs) var(--space-lg);border-inline-start:2px solid var(--c-accent);color:var(--c-text-muted);font-style:normal}.prose blockquote>*+*{margin-block-start:.75em}.prose pre{padding:var(--space-md) var(--space-lg);border-radius:var(--radius-md);border:1px solid var(--c-line);background:var(--c-surface-inset)!important;overflow-x:auto;font-size:var(--fs-sm);line-height:1.65;tab-size:2}.prose pre code{font-family:var(--font-mono);background:none;border:0;padding:0;font-size:inherit}:root[data-theme=dark] .astro-code,:root[data-theme=dark] .astro-code span{color:var(--shiki-dark)!important;font-style:var(--shiki-dark-font-style)!important;font-weight:var(--shiki-dark-font-weight)!important;text-decoration:var(--shiki-dark-text-decoration)!important}@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .astro-code,:root:not([data-theme=light]) .astro-code span{color:var(--shiki-dark)!important;font-style:var(--shiki-dark-font-style)!important;font-weight:var(--shiki-dark-font-weight)!important;text-decoration:var(--shiki-dark-text-decoration)!important}}.prose .table-scroll{margin-block-start:1.5em;overflow-x:auto;border-radius:var(--radius-md);border:1px solid var(--c-line);background:var(--c-surface)}.prose table{inline-size:100%;font-size:var(--fs-sm);line-height:var(--lh-normal);text-align:start}.prose thead{background:var(--c-surface-3)}.prose :is(th,td){padding:.65em 1em;text-align:start;vertical-align:top;border-block-end:1px solid var(--c-line-faint)}.prose th{color:var(--c-text);font-weight:var(--weight-semibold);white-space:nowrap;letter-spacing:var(--tracking-snug)}.prose tbody tr:last-child :is(th,td){border-block-end:0}.prose tbody tr{transition:background-color var(--dur-fast) var(--ease-out)}.prose tbody tr:hover{background:var(--c-surface-2)}.prose td code{white-space:nowrap}.prose :is(img,video){border-radius:var(--radius-md);border:1px solid var(--c-line)}.prose figure{margin-block:1.75em}.prose figcaption{margin-block-start:var(--space-sm);font-size:var(--fs-xs);color:var(--c-text-faint);text-align:center}.prose hr{margin-block:2.5em;border:0;block-size:1px;background:linear-gradient(90deg,transparent,var(--c-line),transparent)}.prose .footnotes{margin-block-start:3em;padding-block-start:var(--space-lg);border-block-start:1px solid var(--c-line);font-size:var(--fs-sm);color:var(--c-text-muted)}.prose sup a{text-decoration:none;font-variant-numeric:tabular-nums}[data-reveal][data-reveal-ready]{opacity:0;transform:translate3d(0,var(--reveal-y, 14px),0) scale(var(--reveal-scale, 1));transition:opacity var(--dur-slow) var(--ease-out),transform var(--dur-slow) var(--ease-out);transition-delay:var(--reveal-delay, 0ms);will-change:opacity,transform}[data-reveal][data-reveal-ready][data-revealed]{opacity:1;transform:none;will-change:auto}[data-reveal=fade]{--reveal-y: 0px}[data-reveal=rise]{--reveal-y: 22px}[data-reveal=zoom]{--reveal-y: 8px;--reveal-scale: .97}[data-reveal-stagger]>*{--reveal-delay: calc(var(--reveal-index, 0) * var(--reveal-step, 70ms))}@keyframes rise-in{0%{opacity:0;transform:translate3d(0,1.2rem,0)}to{opacity:1;transform:none}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes sweep-in{0%{opacity:0;clip-path:inset(0 100% 0 0)}to{opacity:1;clip-path:inset(0 0 0 0)}}@keyframes drift{0%,to{transform:translateZ(0)}50%{transform:translate3d(0,-.6rem,0)}}@keyframes aurora-shift{0%{transform:translate3d(-4%,-2%,0) rotate(0) scale(1)}50%{transform:translate3d(4%,3%,0) rotate(6deg) scale(1.08)}to{transform:translate3d(-4%,-2%,0) rotate(0) scale(1)}}@keyframes twinkle{0%,to{opacity:.15}50%{opacity:.75}}@keyframes marquee-x{0%{transform:translateZ(0)}to{transform:translate3d(-50%,0,0)}}@keyframes pulse-ring{0%{opacity:.5;transform:scale(.9)}70%{opacity:0;transform:scale(1.6)}to{opacity:0;transform:scale(1.6)}}.anim-rise{animation:rise-in var(--dur-slow) var(--ease-out) both;animation-delay:var(--anim-delay, 0ms)}.anim-fade{animation:fade-in var(--dur-slow) var(--ease-out) both;animation-delay:var(--anim-delay, 0ms)}.anim-sweep{animation:sweep-in var(--dur-slower) var(--ease-out) both;animation-delay:var(--anim-delay, 0ms)}.anim-drift{animation:drift 7s var(--ease-in-out) infinite}@view-transition{navigation:auto}::view-transition-old(root){animation:fade-in var(--dur-base) var(--ease-out) reverse both}::view-transition-new(root){animation:rise-in var(--dur-base) var(--ease-out) both}::view-transition-group(site-header),::view-transition-group(site-footer){animation:none}::view-transition-group(*){animation-duration:var(--dur-slow);animation-timing-function:var(--ease-out)}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}[data-reveal][data-reveal-ready]{opacity:1;transform:none}@view-transition{navigation:none}}.brand-mark[data-astro-cid-n2zimx65]{display:block;flex:none;inline-size:var(--mark-size, 30px);block-size:var(--mark-size, 30px);border-radius:26%;object-fit:cover;transition:transform var(--dur-slow) var(--ease-spring)}a:hover>.brand-mark[data-astro-cid-n2zimx65]{transform:rotate(-8deg) scale(1.06)}
