.post-article:where(.astro-4sn4zg3r){padding:var(--sp-8) 0}.post-layout:where(.astro-4sn4zg3r){max-width:var(--max-w-prose);margin:0 auto;padding:0 var(--sp-6)}.post-layout:where(.astro-4sn4zg3r).has-toc{display:grid;grid-template-columns:1fr 240px;gap:var(--sp-6);align-items:start;max-width:var(--max-w-narrow)}.post-main:where(.astro-4sn4zg3r){min-width:0}.post-sidebar:where(.astro-4sn4zg3r){display:none;align-self:start}.post-layout:where(.astro-4sn4zg3r).has-toc .post-sidebar:where(.astro-4sn4zg3r){display:block}.toc-sticky:where(.astro-4sn4zg3r){position:sticky;top:calc(var(--nav-h) + var(--sp-6));max-height:calc(100vh - var(--nav-h) - var(--sp-8));overflow-y:auto}.mobile-toc:where(.astro-4sn4zg3r){background:var(--s-raised);border:1px solid var(--b-subtle);border-radius:var(--r-sm);padding:var(--sp-3);margin-bottom:var(--sp-6)}.mobile-toc-summary:where(.astro-4sn4zg3r){font-family:var(--f-ui);font-size:var(--fs-xs);font-weight:700;color:var(--t-dim);text-transform:uppercase;letter-spacing:.08em;cursor:pointer;list-style:none}.mobile-toc-summary:where(.astro-4sn4zg3r)::-webkit-details-marker{display:none}.back-link:where(.astro-4sn4zg3r){font-family:var(--f-ui);font-size:var(--fs-xs);color:var(--t-dim);text-decoration:none;display:inline-block;margin-bottom:var(--sp-4)}.back-link:where(.astro-4sn4zg3r):hover{color:var(--accent)}.post-meta:where(.astro-4sn4zg3r){display:flex;align-items:center;gap:var(--sp-3);margin-bottom:var(--sp-3)}.meta-date:where(.astro-4sn4zg3r){font-family:var(--f-mono);font-size:var(--fs-xs);color:var(--t-dim)}.post-title:where(.astro-4sn4zg3r){font-family:var(--f-ui);font-size:var(--fs-h1);font-weight:800;color:var(--t-primary);margin:0 0 var(--sp-4);line-height:1.15;letter-spacing:-.02em}.post-description:where(.astro-4sn4zg3r){font-family:var(--f-ui);font-size:var(--fs-lg);color:var(--t-muted);line-height:1.6;margin:0 0 var(--sp-4)}.post-tags:where(.astro-4sn4zg3r){display:flex;gap:var(--sp-1-5);flex-wrap:wrap;margin-bottom:var(--sp-4)}.tag-link:where(.astro-4sn4zg3r){text-decoration:none}.prose:where(.astro-4sn4zg3r){font-family:var(--f-ui);font-size:var(--fs-body);color:var(--t-body);line-height:1.85;padding-top:var(--sp-6);border-top:1px solid var(--b-subtle)}.prose:where(.astro-4sn4zg3r) h2{font-size:var(--fs-h3);font-weight:700;color:var(--t-primary);margin:var(--sp-8) 0 var(--sp-4);line-height:1.25}.prose:where(.astro-4sn4zg3r) h3{font-size:var(--fs-h4);font-weight:700;color:var(--t-primary);margin:var(--sp-6) 0 var(--sp-3)}.prose:where(.astro-4sn4zg3r) p{margin:0 0 var(--sp-4)}.prose:where(.astro-4sn4zg3r) a{color:var(--accent);text-decoration:underline;text-underline-offset:3px}.prose:where(.astro-4sn4zg3r) a:hover{color:var(--accent-text)}.prose:where(.astro-4sn4zg3r) strong{color:var(--t-primary);font-weight:600}.prose:where(.astro-4sn4zg3r) em{font-style:italic}.prose:where(.astro-4sn4zg3r) code{font-family:var(--f-mono);font-size:.85em;background:var(--accent-bg);color:var(--accent-text);padding:2px var(--sp-1);border-radius:4px}.prose:where(.astro-4sn4zg3r) pre{background:var(--s-sunken);border:1px solid var(--b-subtle);border-radius:var(--r-sm);padding:var(--sp-4);overflow-x:auto;margin:var(--sp-5) 0}.prose:where(.astro-4sn4zg3r) pre code{background:none;padding:0;font-size:var(--fs-sm);color:var(--t-body)}.prose:where(.astro-4sn4zg3r) blockquote{border-left:3px solid var(--accent);padding-left:var(--sp-4);margin:var(--sp-5) 0;color:var(--t-muted);font-style:italic}.prose:where(.astro-4sn4zg3r) ul,.prose:where(.astro-4sn4zg3r) ol{padding-left:var(--sp-5);margin:var(--sp-4) 0}.prose:where(.astro-4sn4zg3r) li{margin-bottom:var(--sp-2)}.prose:where(.astro-4sn4zg3r) img{max-width:100%;height:auto;border-radius:var(--r-md);border:1px solid var(--b-subtle);box-shadow:var(--shadow-sm);margin:var(--sp-5) 0}.prose:where(.astro-4sn4zg3r) hr{border:none;border-top:1px solid var(--b-subtle);margin:var(--sp-8) 0}.prose:where(.astro-4sn4zg3r) table{width:100%;border-collapse:collapse;font-size:var(--fs-sm);margin:var(--sp-5) 0}.prose:where(.astro-4sn4zg3r) th{text-align:left;padding:var(--sp-2) var(--sp-3);border-bottom:2px solid var(--b-default);font-weight:600;color:var(--t-primary)}.prose:where(.astro-4sn4zg3r) td{padding:var(--sp-2) var(--sp-3);border-bottom:1px solid var(--b-hairline);color:var(--t-body)}.post-footer:where(.astro-4sn4zg3r){margin-top:var(--sp-8);padding-top:var(--sp-6);border-top:1px solid var(--b-subtle)}.related-section:where(.astro-4sn4zg3r){margin-top:var(--sp-8);padding:var(--sp-8) var(--sp-6) 0;border-top:1px solid var(--b-subtle)}.related-title:where(.astro-4sn4zg3r){font-family:var(--f-ui);font-size:var(--fs-h4);font-weight:700;color:var(--t-primary);margin:0 0 var(--sp-5)}.related-grid:where(.astro-4sn4zg3r){display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-4)}@media(max-width:900px){.post-layout:where(.astro-4sn4zg3r).has-toc{grid-template-columns:1fr}.post-sidebar:where(.astro-4sn4zg3r){display:none!important}.related-grid:where(.astro-4sn4zg3r){grid-template-columns:1fr}}@media(max-width:768px){.post-title:where(.astro-4sn4zg3r){font-size:var(--fs-h2)}}@media(min-width:901px){.mobile-toc:where(.astro-4sn4zg3r){display:none}}
