.post-entries,.post-entry{display:flex;flex-direction:column}.post-entry{gap:6px;padding:18px 10px;margin:0 -10px;border-bottom:1px solid var(--rule-soft)}.post-entry:hover{background:var(--surface)}.post-entry-meta,.post-meta{display:flex;flex-wrap:wrap;gap:14px;color:var(--text-mute);font-size:12px}.post-entry-meta .draft,.post-meta .draft{color:var(--accent)}.post-entry-title{color:var(--text-strong);font-size:15px}.post-entry-desc{font-family:var(--font-sans);font-size:15px;line-height:1.6;color:var(--text-dim);max-width:var(--measure);text-wrap:pretty}.post-entry-tags{color:var(--text-mute);font-size:12px}.post{display:flex;flex-direction:column;gap:22px;max-width:70ch}.post-back{color:var(--text-mute);font-size:12px;width:fit-content}.post-back:hover{color:var(--accent)}.post-header{display:flex;flex-direction:column;gap:10px;border-bottom:1px solid var(--rule);padding-bottom:20px}.post-header h1{font-size:22px;line-height:1.3;color:var(--text-strong);text-wrap:pretty}.post-tags{color:var(--text-mute);font-size:12px}.post-cover img{width:100%;border:1px solid var(--img-border);filter:var(--img-filter)}.post-nav{display:flex;justify-content:space-between;gap:24px;border-top:1px solid var(--rule);padding-top:20px;margin-top:14px;color:var(--text-mute);font-size:12px}.post-nav-index,.post-nav-prev{color:var(--text-dim)}.post-nav-index:hover,.post-nav-prev:hover{color:var(--accent)}.post-nav-prev{min-width:0;overflow-wrap:anywhere}.post-aside{display:none}@media (min-width:1280px){.shell:has(.post-shell.has-toc){max-width:1300px}.shell:has(.post-shell.has-toc) .post-shell.has-toc{display:grid;grid-template-columns:minmax(0,1fr) 180px;gap:56px;align-items:start}.shell:has(.post-shell.has-toc) .post-aside{display:block;position:sticky;top:72px;max-height:calc(100vh - 120px);overflow-y:auto}}.toc-head{display:flex;gap:10px;color:var(--text-mute);font-size:12px;border-bottom:1px solid var(--rule);padding-bottom:10px;margin-bottom:12px}.toc-head .prompt{color:var(--accent)}.toc ul{list-style:none;margin:0;padding:0}.toc li.d3{padding-left:14px}.toc a{display:block;padding:4px 0;font-size:12px;line-height:1.5;color:var(--text-mute)}.toc a:hover{color:var(--text)}.toc a.active{color:var(--accent)}.prose{font-family:var(--font-sans);font-size:16px;line-height:1.8;color:var(--text-body);text-wrap:pretty}.prose>*+*{margin-top:22px}.prose strong{color:var(--text-strong);font-weight:500}.prose em{font-style:italic}.prose h2,.prose h3,.prose h4{font-family:var(--font-mono);font-weight:500;scroll-margin-top:24px}.prose h2{font-size:15px;color:var(--text-strong);margin-top:40px}.prose h3{font-size:14px;color:var(--text-body);margin-top:32px}.prose h4{font-size:14px;color:var(--text-dim);margin-top:28px}.prose h2:before,.prose h3:before,.prose h4:before{color:var(--text-ghost);margin-right:10px}.prose h2:before{content:"##"}.prose h3:before{content:"###"}.prose h4:before{content:"####"}.prose h2+*,.prose h3+*,.prose h4+*{margin-top:14px}.heading-anchor{margin-left:10px;color:var(--accent);opacity:0}.heading-anchor:focus-visible,.prose h2:hover .heading-anchor,.prose h3:hover .heading-anchor,.prose h4:hover .heading-anchor{opacity:1}.prose a{color:var(--link);border-bottom:1px solid var(--border-strong)}.prose a:hover{color:var(--accent);border-bottom-color:var(--accent)}.prose a.heading-anchor{border-bottom:0}.prose ol,.prose ul{margin:0;padding-left:20px}.prose ul{list-style:disc}.prose ol{list-style:decimal}.prose li>ul{list-style:circle}.prose li{margin-top:2px}.prose li::marker{color:var(--text-mute)}.prose ol>li::marker{font-family:var(--font-mono);font-size:.85em}.prose li>ol,.prose li>ul{margin-top:2px}.prose blockquote{margin:0;padding:2px 0 2px 18px;border-left:2px solid var(--border-strong);color:var(--text-dim)}.prose blockquote p+p{margin-top:14px}.prose :not(pre)>code{font-family:var(--font-mono);font-size:14px;background:var(--surface-2);border:1px solid var(--border);padding:1px 5px;color:var(--link)}.prose figure[data-rehype-pretty-code-figure]{border:1px solid var(--border);background:var(--surface)}.code-head{display:flex;justify-content:space-between;align-items:center;padding:7px 14px;border-bottom:1px solid var(--border);font-family:var(--font-mono);font-size:11px;color:var(--text-faint)}.code-copy{border:0;background:none;padding:0;font:inherit;color:inherit;cursor:pointer}.code-copy:hover{color:var(--accent)}.prose pre{margin:0;padding:14px;overflow-x:auto;font-family:var(--font-mono);font-size:13px;line-height:1.8;color:var(--text-body);tab-size:2}.prose pre code{font-family:inherit;background:none;border:0;padding:0}.prose pre code span{color:var(--shiki-dark)}html.light .prose pre code span{color:var(--shiki-light)}.table-scroll{overflow-x:auto}.prose table{border-collapse:collapse;width:100%;font-family:var(--font-mono);font-size:13px}.prose td,.prose th{text-align:left;padding:8px 12px}.prose th{color:var(--text-dim);font-weight:500;border-bottom:1px solid var(--border-strong)}.prose td{color:var(--text-body);border-bottom:1px solid var(--rule-soft)}.prose td:nth-child(2){color:var(--text-dim)}.prose tbody tr:last-child td{border-bottom:0}.post-figure{margin:0}.post-figure img{width:100%;border:1px solid var(--img-border);filter:var(--img-filter)}.post-figure figcaption{margin-top:10px;font-family:var(--font-mono);font-size:12px;color:var(--text-mute)}.prose-inline-img{display:inline-block;vertical-align:middle;max-height:1.5em;width:auto}.prose hr{border:0;border-top:1px solid var(--rule);margin:36px 0}@media (max-width:560px){.prose{font-size:15px}.prose pre{font-size:12px;padding:12px}.post-nav{flex-direction:column;gap:10px}}