.toc[data-astro-cid-p33bl5ka]{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:14px 0}.toc[data-astro-cid-p33bl5ka] summary[data-astro-cid-p33bl5ka]{cursor:pointer;color:var(--muted);font:500 11px/1.5 var(--font-mono);letter-spacing:.08em;text-transform:uppercase;list-style:none}.toc[data-astro-cid-p33bl5ka] summary[data-astro-cid-p33bl5ka]::-webkit-details-marker{display:none}.toc[data-astro-cid-p33bl5ka] summary[data-astro-cid-p33bl5ka]:after{content:"+";float:right}.toc[data-astro-cid-p33bl5ka][open] summary[data-astro-cid-p33bl5ka]:after{content:"−"}.toc[data-astro-cid-p33bl5ka] ol[data-astro-cid-p33bl5ka]{margin:14px 0 0;padding:0;list-style:none}.toc[data-astro-cid-p33bl5ka] li[data-astro-cid-p33bl5ka]{margin:0 0 8px;font-size:13.5px;line-height:1.45}.toc[data-astro-cid-p33bl5ka] a[data-astro-cid-p33bl5ka]{color:var(--ink-soft);text-decoration:none}.toc[data-astro-cid-p33bl5ka] a[data-astro-cid-p33bl5ka]:hover{color:var(--ink);text-decoration:underline}@media (width>=1024px){.toc[data-astro-cid-p33bl5ka]{border-bottom:0}}.prose{max-width:72ch;color:var(--ink-soft);font-size:17px;line-height:1.75}.prose>:first-child{margin-top:0}.prose h2{color:var(--ink);letter-spacing:-.025em;margin:2.6em 0 .8em;scroll-margin-top:24px;font-size:clamp(24px,2.6vw,30px);font-weight:700;line-height:1.2}.prose h3{color:var(--ink);letter-spacing:-.015em;margin:2em 0 .6em;scroll-margin-top:24px;font-size:20px;font-weight:700;line-height:1.3}.prose h4{color:var(--ink);margin:1.6em 0 .5em;font-size:16px;font-weight:700;line-height:1.4}.prose p,.prose ul,.prose ol{margin:0 0 1.25em}.prose ul,.prose ol{padding-left:1.4em}.prose li{margin-bottom:.4em}.prose li::marker{color:var(--muted)}.prose strong{color:var(--ink);font-weight:700}.prose a{color:var(--ink);text-decoration-color:var(--line-strong)}.prose a:hover{text-decoration-color:var(--accent-deep)}.prose hr{border:0;border-top:1px solid var(--line);margin:3em 0}.prose blockquote{border-left:3px solid var(--accent);color:var(--ink);margin:1.75em 0;padding:4px 0 4px 20px;font-size:1.05em}.prose blockquote p:last-child{margin-bottom:0}.prose code{background:var(--paper-2);color:var(--ink);font:.85em var(--font-mono);border-radius:4px;padding:2px 6px}.prose pre{font:13px/1.65 var(--font-mono);border-radius:6px;margin:1.75em 0;padding:20px 22px;overflow-x:auto}.prose :not(pre)>code{overflow-wrap:anywhere}.prose pre code{color:inherit;font:inherit;background:0 0;padding:0}.prose pre[data-language=text]{font-size:12.5px}.prose img{border-radius:8px;max-width:100%;height:auto;margin:2em 0;display:block}.prose p:has(>img:only-child){margin:2em 0;overflow-x:auto}.prose p:has(>img:only-child) img{margin:0}.prose table{border-collapse:collapse;text-align:left;width:100%;margin:2em 0;font-size:14.5px;line-height:1.5}.prose th,.prose td{border-bottom:1px solid var(--line);vertical-align:top;padding:10px 16px 10px 0}.prose th{color:var(--muted);font:500 11px/1.5 var(--font-mono);letter-spacing:.06em;text-transform:uppercase}.prose td{color:var(--ink)}.prose td:first-child{color:var(--ink-soft)}.prose td strong{color:var(--ink)}@media (width<=640px){.prose{font-size:16px}.prose pre{padding:16px;font-size:12px}.prose pre[data-language=text]{font-size:11px}.prose table{display:block;overflow-x:auto}.prose p:has(>img:only-child) img{width:680px;max-width:none}.prose th,.prose td{padding-right:12px}}.article-page{padding:72px 0 120px}.article-header{border-bottom:1px solid var(--line);max-width:820px;margin-bottom:48px;padding-bottom:40px}.article-meta{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:20px 32px;margin:0;display:grid}.article-meta>div{min-width:0}.article-meta dt{color:var(--muted);font:500 11px/1.5 var(--font-mono);letter-spacing:.06em;text-transform:uppercase;margin-bottom:6px}.article-meta dd{color:var(--ink);margin:0;font-size:14px;line-height:1.55}.article-meta .chip-list{gap:5px}.article-links{flex-wrap:wrap;gap:6px 14px;display:flex}.article-layout{grid-template-columns:minmax(0,1fr);gap:40px;display:grid}@media (width>=1024px){.article-layout{grid-template-columns:minmax(0,1fr) 240px;align-items:start;gap:72px}.article-aside{order:2;position:sticky;top:32px}}@media (width<=640px){.article-page{padding:48px 0 88px}.article-meta{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:18px 20px}.article-header{margin-bottom:36px;padding-bottom:28px}}
