.prose{font-size:1.05rem;line-height:1.85;color:var(--ink);letter-spacing:.02em}.prose>*:first-child{margin-top:0}.prose>*:last-child{margin-bottom:0}.prose h1{margin:2.45rem 0 1rem;padding-bottom:.55rem;font-size:1.55rem;font-weight:750;letter-spacing:-.035em;line-height:1.25;color:var(--ink);border-bottom:1px solid var(--line-strong);scroll-margin-top:5.85rem;text-wrap:balance}.prose h2{margin:2.25rem 0 .85rem;padding-bottom:.45rem;font-size:1.35rem;font-weight:700;letter-spacing:-.03em;line-height:1.35;color:var(--ink);border-bottom:1px solid var(--line);scroll-margin-top:5.85rem;text-wrap:balance}.prose h3{margin:1.75rem 0 .65rem;font-size:1.15rem;font-weight:650;letter-spacing:-.02em;line-height:1.4;color:var(--ink-soft);scroll-margin-top:5.85rem;text-wrap:balance}.prose h4{margin:1.35rem 0 .5rem;font-size:1.02rem;font-weight:600;color:var(--ink-soft);scroll-margin-top:5.85rem}.prose h5{scroll-margin-top:5.85rem}.prose p{margin:.9rem 0;text-wrap:pretty}.prose strong{color:var(--ink);font-weight:650}.prose a{color:var(--link);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:5px;transition:color .15s ease}.prose a:hover{color:var(--link-hover)}.prose ul,.prose ol{margin:.85rem 0;padding-left:1.35rem}.prose li{margin:.4rem 0;padding-left:.2rem}.prose li::marker{color:var(--accent)}.prose blockquote{margin:1.25rem 0;padding:.9rem 1.15rem;border-radius:10px;background:var(--accent-soft);color:var(--ink-soft);font-style:normal}.prose blockquote p{margin:.35rem 0}.prose hr{margin:2rem 0;border:none;height:1px;background:linear-gradient(90deg,transparent,var(--line-strong),transparent)}.prose img{max-width:100%;height:auto;border-radius:14px;border:1px solid var(--line);box-shadow:0 8px 28px #00000059}.prose table{width:100%;border-collapse:collapse;margin:1.25rem 0;font-size:.95rem}.prose th,.prose td{border:1px solid var(--line);padding:.55rem .75rem;text-align:left}.prose th{background:var(--accent-soft);font-weight:600}.prose :not(pre)>code{font-family:var(--font-mono);font-size:.88em;font-weight:500;padding:.13em .45em;border-radius:6px;background:var(--code-inline-bg);border:1px solid var(--code-inline-border);color:var(--code-inline-fg);white-space:break-spaces}.prose pre{margin:1.35rem 0;padding:1rem 1.15rem;border-radius:12px;border:1px solid var(--code-border);overflow-x:auto;-webkit-overflow-scrolling:touch;font-family:var(--font-mono);font-size:.86rem;line-height:1.65;box-shadow:inset 0 1px #ffffff0a}.prose pre code{font-family:inherit;font-size:inherit;line-height:inherit;background:none;border:none;padding:0;color:inherit}.prose pre.astro-code{position:relative}.prose pre.astro-code:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.prose .katex{font-size:1.05em;color:var(--ink)}.prose .katex-display{margin:1.35rem 0;padding:.45rem 0;overflow-x:auto;overflow-y:hidden}.prose .katex-display>.katex{white-space:nowrap}.prose .mermaid-wrap{margin:1.35rem 0;padding:1rem 1.1rem;border-radius:12px;border:1px solid var(--code-border);background:var(--code-bg);overflow-x:auto;text-align:center}.prose .mermaid-wrap svg{max-width:100%;height:auto}.article-toc[data-astro-cid-u3rwxgrt]{font-size:var(--fs-sm);line-height:1.5}.article-toc__title[data-astro-cid-u3rwxgrt]{margin:0 0 var(--sp-3);font-family:var(--font-mono);font-weight:500;font-size:var(--fs-xs);color:var(--ink-mute)}.article-toc__list[data-astro-cid-u3rwxgrt]{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:2px}.article-toc__item[data-astro-cid-u3rwxgrt]{padding-left:calc(var(--toc-depth, 0) * .85rem)}.article-toc__item[data-astro-cid-u3rwxgrt] a[data-astro-cid-u3rwxgrt]{display:flex;gap:var(--sp-2);align-items:baseline;color:var(--ink-soft);text-decoration:none;padding:2px 0;transition:color .15s ease}.article-toc__item[data-astro-cid-u3rwxgrt] a[data-astro-cid-u3rwxgrt]:hover{color:var(--ink)}.article-toc__item[data-astro-cid-u3rwxgrt] a[data-astro-cid-u3rwxgrt].is-current{color:var(--accent)}.article-toc__marker[data-astro-cid-u3rwxgrt]{flex-shrink:0;font-family:var(--font-mono);color:var(--ink-mute);line-height:1}.article-toc__item[data-astro-cid-u3rwxgrt] a[data-astro-cid-u3rwxgrt].is-current .article-toc__marker[data-astro-cid-u3rwxgrt]{color:var(--accent)}.article-toc--sidebar[data-astro-cid-u3rwxgrt]{position:sticky;top:calc(56px + var(--sp-4));max-height:calc(100vh - 56px - var(--sp-6));overflow-y:auto;padding-right:var(--sp-2)}.article-toc--inline[data-astro-cid-u3rwxgrt]{margin:var(--sp-4) 0 var(--sp-5);padding:var(--sp-4);border:1px solid var(--line);border-radius:var(--radius);background:var(--bg-elevated)}.giscus-wrap[data-astro-cid-an2nl7ar]{margin-top:2rem;padding:1.15rem 1.2rem;border-radius:var(--radius-lg)}h3[data-astro-cid-an2nl7ar]{margin:0 0 .5rem}p[data-astro-cid-an2nl7ar]{margin-top:0}.scroll-jumps[data-astro-cid-uqjsyzim]{position:fixed;right:1.1rem;bottom:1.15rem;z-index:90;display:grid;gap:.5rem}.scroll-jumps__btn[data-astro-cid-uqjsyzim]{width:2.35rem;height:2.35rem;border:1px solid var(--line);border-radius:999px;background:var(--card);color:var(--text);font-size:1.05rem;font-weight:700;line-height:1;cursor:pointer;box-shadow:var(--shadow-sm);backdrop-filter:blur(8px) saturate(1.05);-webkit-backdrop-filter:blur(8px) saturate(1.05);transition:transform .16s ease,border-color .2s ease,background .2s ease}.scroll-jumps__btn[data-astro-cid-uqjsyzim]:hover{transform:translateY(-1px);border-color:var(--line-strong);background:var(--card-hover)}@media(max-width:960px){.scroll-jumps[data-astro-cid-uqjsyzim]{right:.8rem;bottom:.85rem}}.post[data-astro-cid-gjtny2mx]{padding:var(--sp-5) 0 var(--sp-6)}.post-header[data-astro-cid-gjtny2mx]{margin-bottom:var(--sp-6)}.post-header__meta[data-astro-cid-gjtny2mx]{margin:0 0 var(--sp-3);font-family:var(--font-mono);font-size:var(--fs-sm);color:var(--ink-mute)}.post-header__meta[data-astro-cid-gjtny2mx] time[data-astro-cid-gjtny2mx]{color:var(--ink)}.post-header__meta[data-astro-cid-gjtny2mx] .dot[data-astro-cid-gjtny2mx]{margin:0 var(--sp-2)}.stat-num[data-astro-cid-gjtny2mx]{color:var(--accent)}.post-header__rule[data-astro-cid-gjtny2mx]{width:8em;height:1px;background:var(--accent-line);margin-bottom:var(--sp-4)}.post-header__title[data-astro-cid-gjtny2mx]{margin:0 0 var(--sp-3);font-size:var(--fs-2xl);font-weight:700;letter-spacing:-.035em;line-height:1.2;color:var(--ink);text-wrap:balance}.post-header__desc[data-astro-cid-gjtny2mx]{margin:0 0 var(--sp-4);font-size:var(--fs-base);line-height:1.65;color:var(--ink-soft);max-width:54ch;text-wrap:pretty}.post-header__tags[data-astro-cid-gjtny2mx]{display:flex;flex-wrap:wrap;gap:var(--sp-2);margin-bottom:var(--sp-3)}.post-header__series[data-astro-cid-gjtny2mx]{margin:var(--sp-2) 0 0;font-size:var(--fs-sm);color:var(--ink-soft)}.post-header__series[data-astro-cid-gjtny2mx] a[data-astro-cid-gjtny2mx]{color:var(--link);text-decoration:none;transition:color .15s ease}.post-header__series[data-astro-cid-gjtny2mx] a[data-astro-cid-gjtny2mx]:hover{color:var(--link-hover)}.post-header__series[data-astro-cid-gjtny2mx] .mono-badge[data-astro-cid-gjtny2mx]{font-family:var(--font-mono);color:var(--ink-mute);margin-left:var(--sp-2)}.post-header__series[data-astro-cid-gjtny2mx] .dot-accent[data-astro-cid-gjtny2mx]{color:var(--accent);margin:0 1px}.post-body[data-astro-cid-gjtny2mx]{position:relative;display:grid;gap:var(--sp-5);align-items:start}.post-body--with-toc[data-astro-cid-gjtny2mx]{grid-template-columns:minmax(0,1fr)}@media(min-width:1080px){.post-body--with-toc[data-astro-cid-gjtny2mx]{grid-template-columns:minmax(11rem,13.5rem) minmax(0,1fr);gap:var(--sp-6)}}.post-main[data-astro-cid-gjtny2mx]{min-width:0}.series-nav[data-astro-cid-gjtny2mx]{margin-top:var(--sp-6);padding-top:var(--sp-5);border-top:1px solid var(--line)}.series-nav__meta[data-astro-cid-gjtny2mx]{margin:0 0 var(--sp-2);font-family:var(--font-mono);font-size:var(--fs-sm);color:var(--ink-mute)}.series-nav__meta[data-astro-cid-gjtny2mx] .dot[data-astro-cid-gjtny2mx]{margin:0 var(--sp-2)}.series-nav__title[data-astro-cid-gjtny2mx]{margin:0 0 var(--sp-4);font-size:var(--fs-lg);font-weight:600;color:var(--ink);letter-spacing:-.01em}.series-nav__list[data-astro-cid-gjtny2mx]{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:var(--sp-1)}.series-nav__list[data-astro-cid-gjtny2mx] a[data-astro-cid-gjtny2mx]{display:flex;gap:var(--sp-3);align-items:baseline;padding:var(--sp-2) var(--sp-3);border-radius:6px;color:var(--ink-soft);text-decoration:none;transition:color .15s ease,background .15s ease}.series-nav__list[data-astro-cid-gjtny2mx] a[data-astro-cid-gjtny2mx]:hover{color:var(--ink)}.series-nav__list[data-astro-cid-gjtny2mx] a[data-astro-cid-gjtny2mx].is-active{color:var(--ink);background:var(--accent-soft)}.series-nav__order[data-astro-cid-gjtny2mx]{flex-shrink:0;font-family:var(--font-mono);color:var(--ink-mute);font-variant-numeric:tabular-nums;font-size:var(--fs-sm)}.series-nav__list[data-astro-cid-gjtny2mx] a[data-astro-cid-gjtny2mx].is-active .series-nav__order[data-astro-cid-gjtny2mx]{color:var(--accent)}.series-nav__ptitle[data-astro-cid-gjtny2mx]{font-size:var(--fs-sm)}.series-pager[data-astro-cid-gjtny2mx]{margin-top:var(--sp-5);padding-top:var(--sp-5);border-top:1px solid var(--line);display:grid;grid-template-columns:1fr 1px 1fr;gap:var(--sp-4);align-items:stretch}.series-pager[data-astro-cid-gjtny2mx]:after{content:"";grid-column:2;background:var(--line)}.series-pager__cell[data-astro-cid-gjtny2mx]{display:flex;flex-direction:column;gap:var(--sp-2);min-width:0}.series-pager__cell--next[data-astro-cid-gjtny2mx]{text-align:right;align-items:flex-end}.series-pager__cell[data-astro-cid-gjtny2mx] a[data-astro-cid-gjtny2mx]{display:flex;flex-direction:column;gap:var(--sp-1);color:var(--ink);text-decoration:none;transition:color .15s ease}.series-pager__cell[data-astro-cid-gjtny2mx] a[data-astro-cid-gjtny2mx]:hover{color:var(--accent)}.series-pager__hint[data-astro-cid-gjtny2mx]{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--ink-mute)}.series-pager__cell[data-astro-cid-gjtny2mx] strong[data-astro-cid-gjtny2mx]{font-weight:600;letter-spacing:-.01em;font-size:var(--fs-sm);text-wrap:balance}@media(max-width:720px){.series-pager[data-astro-cid-gjtny2mx]{grid-template-columns:1fr}.series-pager[data-astro-cid-gjtny2mx]:after{display:none}.series-pager__cell--next[data-astro-cid-gjtny2mx]{text-align:left;align-items:flex-start}}
