:root{--bg:#fdfdfc;--bg-subtle:#f6f5f3;--fg:#1a1a1a;--fg-muted:#6b6b6b;--fg-faint:#9e9e9e;--line:#e5e4e2;--line-strong:#d0cfcc;--accent:#1a1a1a;--code-bg:#f6f5f3;--code-border:#e8e7e4;--font-sans:-apple-system, BlinkMacSystemFont, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans SC", system-ui, sans-serif;--font-serif:"Noto Serif SC", "Songti SC", "SimSun", Georgia, serif;--font-mono:"JetBrains Mono", "Cascadia Code", "SF Mono", Consolas, "Liberation Mono", monospace;--text-xs:.75rem;--text-sm:.875rem;--text-base:1rem;--text-lg:1.25rem;--text-xl:1.5625rem;--text-2xl:1.9375rem;--text-3xl:2.4375rem;--leading-body:1.75;--leading-tight:1.3;--leading-heading:1.25;--space-1:.5rem;--space-2:1rem;--space-3:1.5rem;--space-4:2.5rem;--space-5:4rem;--space-6:6rem;--width-container:1080px;--width-prose:68ch;--width-aside:200px;--gap-aside:var(--space-4);--radius:4px;--radius-code:6px;--ease:cubic-bezier(.4, 0, .2, 1);--duration:.15s;--dot-color:#d8d6d2;--dot-size:24px;--dot-opacity:.55;color-scheme:light}[data-theme=dark]{--bg:#121212;--bg-subtle:#1a1a1a;--fg:#e8e6e3;--fg-muted:#9a9a9a;--fg-faint:#6a6a6a;--line:#2a2a2a;--line-strong:#3a3a3a;--accent:#e8e6e3;--code-bg:#1a1a1a;--code-border:#2a2a2a;--dot-color:#2f2f2f;color-scheme:dark}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#121212;--bg-subtle:#1a1a1a;--fg:#e8e6e3;--fg-muted:#9a9a9a;--fg-faint:#6a6a6a;--line:#2a2a2a;--line-strong:#3a3a3a;--accent:#e8e6e3;--code-bg:#1a1a1a;--code-border:#2a2a2a;--dot-color:#2f2f2f;color-scheme:dark}}*,:before,:after{box-sizing:border-box}*{margin:0}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scrollbar-gutter:stable}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}body{background:var(--bg);color:var(--fg);font-family:var(--font-sans);font-size:var(--text-base);line-height:var(--leading-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;min-height:100vh;transition:background-color var(--duration) var(--ease), color var(--duration) var(--ease);flex-direction:column;display:flex}body:before{content:"";z-index:0;pointer-events:none;background-image:radial-gradient(circle, var(--dot-color) 1px, transparent 1px);background-size:var(--dot-size) var(--dot-size);opacity:var(--dot-opacity);transition:opacity var(--duration) var(--ease);position:fixed;inset:0;-webkit-mask-image:radial-gradient(90% 65% at 50% 0,#000 35%,#0000 100%);mask-image:radial-gradient(90% 65% at 50% 0,#000 35%,#0000 100%)}.site-header,.site-main,.site-footer{z-index:1;position:relative}@media (prefers-reduced-motion:reduce){body:before{display:none}}img,picture,video,canvas,svg{max-width:100%;height:auto;display:block}input,button,textarea,select{font:inherit;color:inherit}a{color:inherit;text-decoration-line:underline;text-decoration-color:var(--line-strong);text-underline-offset:3px;transition:text-decoration-color var(--duration) var(--ease), color var(--duration) var(--ease);text-decoration-thickness:1px}a:hover{text-decoration-color:var(--fg)}a.plain{text-decoration:none}.container{width:100%;max-width:var(--width-container);padding-inline:var(--space-3);margin-inline:auto}@media (width>=768px){.container{padding-inline:var(--space-4)}}.prose-width{max-width:var(--width-prose)}h1,h2,h3,h4{font-family:var(--font-serif);font-weight:600;line-height:var(--leading-heading);letter-spacing:.01em;word-break:keep-all;text-wrap:pretty;overflow-wrap:anywhere}:focus-visible{outline:2px solid var(--fg);outline-offset:3px;border-radius:2px}::selection{background:var(--fg);color:var(--bg)}.prose{font-size:var(--text-base);line-height:var(--leading-body);color:var(--fg)}.prose>*+*{margin-top:1.5em}.prose h2,.prose h3,.prose h4{scroll-margin-top:calc(64px + var(--space-3));margin-top:2.2em;margin-bottom:.6em}.prose h2{font-size:var(--text-xl);border-bottom:1px solid var(--line);padding-bottom:.3em}.prose h3{font-size:var(--text-lg)}.prose h4{font-size:var(--text-base);font-family:var(--font-sans);font-weight:600}.prose>h2:first-child,.prose>h3:first-child{margin-top:0}.prose p{text-wrap:pretty}.prose ul,.prose ol{padding-left:1.5em}.prose li+li{margin-top:.4em}.prose li::marker{color:var(--fg-faint)}.prose blockquote{border-left:2px solid var(--line-strong);color:var(--fg-muted);padding-left:1.2em;font-style:normal}.prose blockquote>*+*{margin-top:1em}.prose hr{border:0;border-top:1px solid var(--line);margin-block:3em}.prose code{font-family:var(--font-mono);background:var(--code-bg);border:1px solid var(--code-border);word-break:break-word;border-radius:3px;padding:.15em .35em;font-size:.875em}.prose pre{border:1px solid var(--code-border);border-radius:var(--radius-code);padding:var(--space-3);font-size:var(--text-sm);tab-size:2;line-height:1.65;overflow-x:auto;background:var(--code-bg)!important}.prose pre code{font-size:inherit;background:0 0;border:0;border-radius:0;padding:0}@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;background-color:#0000!important}}[data-theme=dark] .astro-code,[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;background-color:#0000!important}.prose table{border-collapse:collapse;width:100%;font-size:var(--text-sm);display:block;overflow-x:auto}.prose thead{border-bottom:1px solid var(--line-strong)}.prose th{text-align:left;padding:.6em .8em;font-weight:600}.prose td{border-bottom:1px solid var(--line);vertical-align:top;padding:.6em .8em}.prose img{border-radius:var(--radius);max-width:min(100%,40rem);height:auto;margin-inline:auto}.prose figure{margin-inline:0}.prose figcaption{margin-top:var(--space-1);font-size:var(--text-sm);color:var(--fg-muted);text-align:center}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .prose img{filter:brightness(.9)}}[data-theme=dark] .prose img{filter:brightness(.9)}.muted{color:var(--fg-muted)}.faint{color:var(--fg-faint)}.mono{font-family:var(--font-mono);font-size:.9em}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media print{body{color:#000;background:#fff}header.site-header,footer.site-footer,.no-print{display:none}a{color:#000;text-decoration:none}}.site-header[data-astro-cid-nen7h5rs]{border-bottom:1px solid var(--line);z-index:40;background:var(--bg);position:sticky;top:0}.header-inner[data-astro-cid-nen7h5rs]{justify-content:space-between;align-items:center;gap:var(--space-3);height:64px;display:flex}.brand[data-astro-cid-nen7h5rs]{font-family:var(--font-serif);font-size:var(--text-lg);letter-spacing:.01em;flex-shrink:0;font-weight:600}.nav[data-astro-cid-nen7h5rs]{align-items:center;gap:var(--space-3);display:flex}.nav-link[data-astro-cid-nen7h5rs]{font-size:var(--text-sm);color:var(--fg-muted);transition:color var(--duration) var(--ease);padding-block:.25em}.nav-link[data-astro-cid-nen7h5rs]:hover{color:var(--fg)}.nav-link[data-astro-cid-nen7h5rs].active{color:var(--fg);font-weight:500}.theme-toggle[data-astro-cid-nen7h5rs]{cursor:pointer;color:var(--fg-muted);border-radius:var(--radius);transition:color var(--duration) var(--ease), background-color var(--duration) var(--ease);background:0 0;border:0;place-items:center;padding:.35em;display:grid}.theme-toggle[data-astro-cid-nen7h5rs]:hover{color:var(--fg);background:var(--bg-subtle)}.icon-sun[data-astro-cid-nen7h5rs],.icon-moon[data-astro-cid-nen7h5rs]{grid-area:1/1;place-items:center;display:grid}.icon-sun[data-astro-cid-nen7h5rs]{display:none}[data-theme=dark] .icon-sun[data-astro-cid-nen7h5rs]{display:grid}[data-theme=dark] .icon-moon[data-astro-cid-nen7h5rs]{display:none}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .icon-sun[data-astro-cid-nen7h5rs]{display:grid}:root:not([data-theme=light]) .icon-moon[data-astro-cid-nen7h5rs]{display:none}}@media (width<=720px){.nav[data-astro-cid-nen7h5rs]{gap:var(--space-2)}.nav-link[data-astro-cid-nen7h5rs]{font-size:var(--text-sm)}}@media (width<=520px){.header-inner[data-astro-cid-nen7h5rs]{height:56px}.nav[data-astro-cid-nen7h5rs]{gap:.75rem}.nav-link[data-astro-cid-nen7h5rs]{font-size:var(--text-sm)}}@media (width<=360px){.nav[data-astro-cid-nen7h5rs]{gap:.6rem}.nav-link[data-astro-cid-nen7h5rs]{font-size:var(--text-xs)}.theme-toggle[data-astro-cid-nen7h5rs]{padding:.3em}}.site-footer[data-astro-cid-jo6i4kqk]{border-top:1px solid var(--line);padding-block:var(--space-3);font-size:var(--text-sm);margin-top:auto}.footer-inner[data-astro-cid-jo6i4kqk]{justify-content:space-between;align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.footer-right[data-astro-cid-jo6i4kqk]{align-items:center;gap:var(--space-2);display:flex}.social-link[data-astro-cid-jo6i4kqk]{color:var(--fg-muted);transition:color var(--duration) var(--ease);place-items:center;padding:.25em;display:grid}.social-link[data-astro-cid-jo6i4kqk]:hover{color:var(--fg)}.site-main[data-astro-cid-hkbrpulz]{padding-block:var(--space-4) var(--space-5);flex:1}@media (width<=640px){.site-main[data-astro-cid-hkbrpulz]{padding-block:var(--space-3) var(--space-4)}}
