.site-header[data-astro-cid-3ef6ksr2]{position:sticky;top:0;z-index:40;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);background:var(--header-bg);border-bottom:1px solid transparent;transition:background var(--duration) var(--ease),border-color var(--duration) var(--ease)}.site-header[data-astro-cid-3ef6ksr2].is-scrolled{background:var(--header-bg-scrolled);border-bottom-color:var(--header-border-scrolled)}.header-inner[data-astro-cid-3ef6ksr2]{display:flex;align-items:center;justify-content:space-between;min-height:var(--header-height);gap:1rem}.brand[data-astro-cid-3ef6ksr2]{display:inline-flex;align-items:center;min-height:2.75rem}.brand-name[data-astro-cid-3ef6ksr2]{font-family:var(--font-display);font-weight:700;font-size:.9375rem;letter-spacing:-.02em;color:var(--text-primary)}.header-right[data-astro-cid-3ef6ksr2]{display:flex;align-items:center;gap:.75rem}.nav-desktop[data-astro-cid-3ef6ksr2]{display:none;align-items:center;gap:1.5rem}.nav-link[data-astro-cid-3ef6ksr2]{position:relative;display:inline-flex;align-items:center;min-height:2.75rem;color:var(--text-secondary);font-size:var(--fs-ui);font-weight:400}.nav-link[data-astro-cid-3ef6ksr2]:after{content:"";position:absolute;left:0;bottom:.3rem;width:100%;height:1.5px;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform var(--duration) var(--ease)}.nav-link[data-astro-cid-3ef6ksr2]:hover,.nav-link[data-astro-cid-3ef6ksr2].active{color:var(--text-primary)}.nav-link[data-astro-cid-3ef6ksr2].active:after,.nav-link[data-astro-cid-3ef6ksr2]:hover:after{transform:scaleX(1)}.github-link[data-astro-cid-3ef6ksr2],.theme-toggle[data-astro-cid-3ef6ksr2]{width:2.75rem;height:2.75rem;display:grid;place-items:center;border-radius:999px;color:var(--text-secondary);transition:color var(--duration) var(--ease),border-color var(--duration) var(--ease),background var(--duration) var(--ease)}.github-link[data-astro-cid-3ef6ksr2]:hover,.theme-toggle[data-astro-cid-3ef6ksr2]:hover{color:var(--accent);background:var(--surface-hover)}.theme-toggle[data-astro-cid-3ef6ksr2]{border:1px solid var(--border-default)}.theme-toggle[data-astro-cid-3ef6ksr2]:hover{border-color:var(--accent)}.theme-toggle[data-astro-cid-3ef6ksr2] .icon[data-astro-cid-3ef6ksr2]{display:none;line-height:0}html[data-theme-pref=system] .theme-toggle[data-astro-cid-3ef6ksr2] .icon-system[data-astro-cid-3ef6ksr2],html[data-theme-pref=light] .theme-toggle[data-astro-cid-3ef6ksr2] .icon-light[data-astro-cid-3ef6ksr2],html[data-theme-pref=dark] .theme-toggle[data-astro-cid-3ef6ksr2] .icon-dark[data-astro-cid-3ef6ksr2]{display:block}.nav-toggle[data-astro-cid-3ef6ksr2]{width:2.75rem;height:2.75rem;display:grid;place-content:center;gap:6px}.nav-toggle[data-astro-cid-3ef6ksr2] span[data-astro-cid-3ef6ksr2]{display:block;width:1.2rem;height:1.5px;background:var(--ink);transition:transform var(--duration) var(--ease)}.nav-toggle[data-astro-cid-3ef6ksr2][aria-expanded=true] span[data-astro-cid-3ef6ksr2]:first-of-type{transform:translateY(3.75px) rotate(45deg)}.nav-toggle[data-astro-cid-3ef6ksr2][aria-expanded=true] span[data-astro-cid-3ef6ksr2]:last-of-type{transform:translateY(-3.75px) rotate(-45deg)}.mobile-nav[data-astro-cid-3ef6ksr2]{border-top:1px solid var(--border-subtle);background:var(--mobile-nav-bg)}.mobile-nav-inner[data-astro-cid-3ef6ksr2]{display:grid;padding:.5rem 0 .75rem}.mobile-nav[data-astro-cid-3ef6ksr2] a[data-astro-cid-3ef6ksr2]{display:flex;align-items:center;min-height:2.75rem;padding:.5rem 0;font-size:var(--fs-ui);font-weight:400;color:var(--text-secondary);border-bottom:1px solid var(--border-subtle);transition:color var(--duration) var(--ease)}.mobile-nav[data-astro-cid-3ef6ksr2] a[data-astro-cid-3ef6ksr2]:hover,.mobile-nav[data-astro-cid-3ef6ksr2] a[data-astro-cid-3ef6ksr2].active{color:var(--accent)}.mobile-nav[data-astro-cid-3ef6ksr2] a[data-astro-cid-3ef6ksr2].active{box-shadow:inset 2px 0 0 var(--accent);padding-left:.75rem}.sr-only[data-astro-cid-3ef6ksr2]{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}@media(min-width:768px){.nav-desktop[data-astro-cid-3ef6ksr2]{display:flex}.nav-toggle[data-astro-cid-3ef6ksr2],.mobile-nav[data-astro-cid-3ef6ksr2]{display:none!important}.header-right[data-astro-cid-3ef6ksr2]{gap:1rem}}.site-footer[data-astro-cid-sz7xmlte]{border-top:1px solid var(--line-soft);background:var(--bg)}.footer-inner[data-astro-cid-sz7xmlte]{padding:3rem 0 2.5rem}.footer-top[data-astro-cid-sz7xmlte]{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:1rem 2rem;padding-bottom:2rem}.footer-signature[data-astro-cid-sz7xmlte]{margin:0;font-family:var(--font-mono);font-size:.875rem;font-weight:500;color:var(--ink-soft)}.footer-social[data-astro-cid-sz7xmlte]{display:flex;gap:1.5rem;margin:0;padding:0;list-style:none}.footer-social[data-astro-cid-sz7xmlte] a[data-astro-cid-sz7xmlte]{display:inline-flex;align-items:center;min-height:2.75rem;color:var(--ink-soft);font-size:.9375rem;font-weight:500;transition:color var(--duration) var(--ease)}.footer-social[data-astro-cid-sz7xmlte] a[data-astro-cid-sz7xmlte]:hover{color:var(--accent)}.footer-bottom[data-astro-cid-sz7xmlte]{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:.75rem 2rem;padding-top:1.5rem;border-top:1px solid var(--border-subtle)}.footer-nav[data-astro-cid-sz7xmlte]{display:flex;flex-wrap:wrap;gap:.25rem 1.25rem}.footer-nav[data-astro-cid-sz7xmlte] a[data-astro-cid-sz7xmlte]{display:inline-flex;align-items:center;min-height:2.75rem;color:var(--text-tertiary);font-size:var(--fs-small);font-weight:400;transition:color var(--duration) var(--ease)}.footer-nav[data-astro-cid-sz7xmlte] a[data-astro-cid-sz7xmlte]:hover{color:var(--accent)}.footer-meta[data-astro-cid-sz7xmlte]{display:flex;flex-wrap:wrap;align-items:baseline;gap:.4rem 1rem;text-align:right}.footer-meta[data-astro-cid-sz7xmlte] p[data-astro-cid-sz7xmlte]{margin:0;color:var(--text-tertiary);font-size:var(--fs-small);line-height:var(--lh-ui)}.footer-meta[data-astro-cid-sz7xmlte] a[data-astro-cid-sz7xmlte]{display:inline-flex;align-items:center;min-height:2.75rem;color:var(--text-tertiary);font-size:var(--fs-small);overflow-wrap:anywhere;transition:color var(--duration) var(--ease)}.footer-meta[data-astro-cid-sz7xmlte] a[data-astro-cid-sz7xmlte]:hover{color:var(--accent)}@media(max-width:720px){.footer-meta[data-astro-cid-sz7xmlte]{gap:.25rem .75rem;text-align:left}}@font-face{font-family:Manrope;src:url(/fonts/manrope-latin.woff2) format("woff2");font-weight:200 800;font-style:normal;font-display:swap}@font-face{font-family:Noto Sans SC;src:url(/fonts/noto-sans-sc.woff2) format("woff2");font-weight:100 900;font-style:normal;font-display:swap}@font-face{font-family:IBM Plex Mono;src:url(/fonts/ibm-plex-mono-400.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:IBM Plex Mono;src:url(/fonts/ibm-plex-mono-500.woff2) format("woff2");font-weight:500;font-style:normal;font-display:swap}:root,html[data-theme=light]{color-scheme:light;--bg: #fafaf9;--bg-elevated: #ffffff;--text-primary: #1c1c1f;--text-secondary: #454549;--text-tertiary: #656561;--ink: var(--text-primary);--ink-soft: var(--text-secondary);--muted: var(--text-tertiary);--border-default: #dededa;--border-subtle: #e9e9e6;--line: var(--border-default);--line-soft: var(--border-subtle);--accent: #0b665d;--accent-hover: #084f48;--accent-soft: rgba(11, 102, 93, .08);--code-bg: #f5f6f7;--code-head-bg: #efefec;--table-bg: #ffffff;--table-head-bg: #f2f2ef;--table-row-head-bg: #f8f8f6;--header-bg: rgba(250, 250, 249, .94);--header-bg-scrolled: rgba(250, 250, 249, .98);--header-border-scrolled: rgba(27, 27, 31, .1);--mobile-nav-bg: rgba(255, 255, 255, .98);--surface-hover: rgba(27, 27, 31, .035);--surface-muted: #f4f4f2;--btn-primary-fg: #ffffff;--shadow-sm: 0 1px 2px rgba(27, 27, 31, .04);--shadow-md: 0 1px 2px rgba(27, 27, 31, .04), 0 8px 24px rgba(27, 27, 31, .06);--font-display: "Manrope", "Noto Sans SC", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;--font-body: "Manrope", "Noto Sans SC", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;--font-mono: "IBM Plex Mono", ui-monospace, "SF Mono", "Cascadia Mono", monospace;--fs-hero: clamp(2.25rem, 5.5vw, 3.5rem);--fs-display: clamp(1.75rem, 3.5vw, 2.5rem);--fs-title: clamp(1.75rem, 4vw, 2.5rem);--fs-h2: 1.5rem;--fs-h3: 1.25rem;--fs-h4: 1.0625rem;--fs-body: 1rem;--fs-reading: 1.09375rem;--fs-summary: .9375rem;--fs-ui: .875rem;--fs-small: .8125rem;--fs-eyebrow: .75rem;--fs-code: .875rem;--fs-table: .9375rem;--fs-toc: .8125rem;--lh-body: 1.7;--lh-reading: 1.85;--lh-summary: 1.75;--lh-ui: 1.5;--radius: 10px;--radius-sm: 7px;--max: 1120px;--measure: 40rem;--header-height: 4rem;--space-section: 5.5rem;--ease: cubic-bezier(.2, 0, 0, 1);--duration: .2s}html[data-theme=dark]{color-scheme:dark;--bg: #101012;--bg-elevated: #17171a;--text-primary: #f0f0ed;--text-secondary: #c4c4c0;--text-tertiary: #a3a3a0;--border-default: #343438;--border-subtle: #252529;--accent: #87cfc1;--accent-hover: #a7ddd3;--accent-soft: rgba(135, 207, 193, .12);--code-bg: #151518;--code-head-bg: #1d1d21;--table-bg: #141417;--table-head-bg: #1c1c20;--table-row-head-bg: #1a1a1e;--header-bg: rgba(16, 16, 18, .94);--header-bg-scrolled: rgba(16, 16, 18, .98);--header-border-scrolled: rgba(242, 242, 240, .12);--mobile-nav-bg: rgba(23, 23, 26, .98);--surface-hover: rgba(255, 255, 255, .045);--surface-muted: #17171a;--btn-primary-fg: #101012;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .5);--shadow-md: 0 1px 2px rgba(0, 0, 0, .5), 0 8px 24px rgba(0, 0, 0, .4)}*,*:before,*:after{box-sizing:border-box}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}body{margin:0;min-height:100vh;color:var(--text-primary);background:var(--bg);font-family:var(--font-body);font-size:var(--fs-body);font-weight:400;line-height:var(--lh-body);text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}::selection{background:var(--accent-soft);color:var(--ink)}img{max-width:100%;height:auto;display:block}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:2px}.skip-link{position:absolute;top:.75rem;left:.75rem;z-index:100;padding:.55rem 1rem;border-radius:999px;background:var(--ink);color:var(--bg);font-size:.875rem;font-weight:600;transform:translateY(-300%)}.skip-link:focus-visible{transform:translateY(0);outline-offset:2px}.site-shell{min-height:100vh;display:flex;flex-direction:column}.site-main{flex:1}.container{width:min(100% - 2.5rem,var(--max));margin-inline:auto}.eyebrow{margin:0;font-family:var(--font-body);font-size:var(--fs-eyebrow);font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}.display{font-family:var(--font-display);font-weight:600;letter-spacing:-.03em;line-height:1.1}.muted{color:var(--muted)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;min-height:2.75rem;padding:.7rem 1.4rem;border-radius:999px;border:1px solid transparent;font-size:var(--fs-ui);font-weight:600;transition:background var(--duration) var(--ease),border-color var(--duration) var(--ease),color var(--duration) var(--ease)}.btn-primary{background:var(--ink);color:var(--btn-primary-fg)}.btn-primary:hover{background:var(--accent);color:#fff}html[data-theme=dark] .btn-primary:hover{color:#101012}.btn-ghost{border-color:var(--border-default);background:transparent;color:var(--text-primary)}.btn-ghost:hover{border-color:var(--accent);color:var(--accent);background:var(--surface-hover)}.section{padding:var(--space-section) 0}.page-title{margin:0;font-family:var(--font-display);font-size:var(--fs-display);font-weight:600;letter-spacing:-.03em;line-height:1.1}.page-intro{margin:1rem 0 0;max-width:36rem;color:var(--text-secondary);line-height:var(--lh-summary)}.back{display:inline-flex;margin-bottom:1.25rem;color:var(--text-tertiary);font-size:var(--fs-ui);transition:color var(--duration) var(--ease)}.back:hover{color:var(--accent)}.section-head{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;margin-bottom:2.5rem}.section-head h2{margin:0;font-family:var(--font-display);font-size:var(--fs-h2);font-weight:600;letter-spacing:-.01em;line-height:1.25}.link-more{color:var(--text-tertiary);font-weight:400;font-size:var(--fs-ui);white-space:nowrap;transition:color var(--duration) var(--ease)}.link-more:hover{color:var(--accent)}:where(h1,h2,h3){text-wrap:balance}:where(p,li,figcaption){text-wrap:pretty}:where(main [id]){scroll-margin-top:calc(var(--header-height) + 1rem)}[hidden]{display:none!important}@media(max-width:700px){:root,html[data-theme=light],html[data-theme=dark]{--fs-reading: 1rem;--fs-code: .8125rem;--space-section: 4rem}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}.astro-code,.astro-code span{color:var(--shiki-light);background-color:transparent!important}html[data-theme=dark] .astro-code,html[data-theme=dark] .astro-code span{color:var(--shiki-dark)}
