:root{--blog-measure:720px;--blog-rail:220px;--blog-gap:48px}.blog-shell{grid-template-columns:minmax(0, var(--blog-measure)) minmax(0, var(--blog-rail));gap:var(--blog-gap);justify-content:center;align-items:start;display:grid}.blog-article{min-width:0;max-width:var(--blog-measure)}.blog-toc-rail{align-self:start;position:sticky;top:88px}.blog-toc--inline{display:none}@media (max-width:768px){.blog-shell{grid-template-columns:1fr;gap:0}.blog-toc-rail{display:none}.blog-toc--inline{display:block}}.blog-prose{font-family:var(--sans);color:var(--ink);font-size:16px;line-height:1.8}.blog-prose>*+*{margin-top:1.1em}.blog-prose h2{font-family:var(--serif);color:var(--ink);border-top:1px solid var(--rule-3);margin-top:2em;padding-top:.4em;scroll-margin-top:88px;font-size:24px;font-weight:700;line-height:1.3}.blog-prose h3{font-family:var(--serif);color:var(--ink);margin-top:1.6em;scroll-margin-top:88px;font-size:18px;font-weight:700;line-height:1.4}.blog-prose p{color:var(--ink)}.blog-prose a{color:var(--a-accent);text-underline-offset:2px}.blog-prose strong{color:var(--ink);font-weight:700}.blog-prose ul,.blog-prose ol{padding-left:1.4em}.blog-prose li+li{margin-top:.4em}.blog-prose blockquote{border-left:2px solid var(--a-accent);background:var(--paper-2);color:var(--ink-2);margin-left:0;margin-right:0;padding:12px 18px;font-size:15px}.blog-prose blockquote>*+*{margin-top:.6em}.blog-prose code{font-family:var(--mono);background:var(--paper-2);border:1px solid var(--rule-3);padding:1px 5px;font-size:13px}.blog-prose pre{background:var(--paper-2);border:1px solid var(--rule-2);padding:14px;overflow-x:auto}.blog-prose pre code{background:0 0;border:none;padding:0}.blog-table-scroll{-webkit-overflow-scrolling:touch;border:1px solid var(--rule-2);overflow-x:auto}.blog-table-scroll table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;min-width:480px;font-size:14px}.blog-table-scroll th,.blog-table-scroll td{border-bottom:1px solid var(--rule-3);text-align:left;white-space:nowrap;padding:8px 12px}.blog-table-scroll thead th{font-family:var(--mono);color:var(--ink-3);border-bottom:1px solid var(--rule-2);background:var(--paper-2);font-size:11px}.blog-table-scroll tbody tr:last-child td{border-bottom:none}.blog-figure{margin:0}.blog-figure__title{font-family:var(--serif);color:var(--ink);margin:0 0 10px;font-size:17px;font-weight:700;line-height:1.4}.blog-figure img{border:1px solid var(--rule-2);max-width:100%;height:auto;display:block}.blog-figure figcaption{font-family:var(--mono);color:var(--ink-3);margin-top:8px;font-size:11px;line-height:1.5}.blog-summary{border:1px solid var(--rule);background:var(--paper);margin-bottom:28px;padding:18px 20px}.blog-summary__stats{flex-wrap:wrap;gap:20px 32px;display:flex}.blog-summary__stat{flex-direction:column;gap:2px;display:flex}.blog-summary__value{font-family:var(--serif);color:var(--ink);font-variant-numeric:tabular-nums;font-size:28px;font-weight:700;line-height:1.1}.blog-summary__label{font-family:var(--mono);color:var(--ink-3);font-size:11px}.blog-summary__asof{border-top:1px solid var(--rule-3);font-family:var(--mono);color:var(--ink-3);margin-top:14px;padding-top:12px;font-size:11px}.blog-post-title{font-family:var(--serif);color:var(--ink);margin:0 0 10px;font-size:30px;font-weight:700;line-height:1.25}.blog-post-meta{font-family:var(--mono);color:var(--ink-3);margin-bottom:22px;font-size:11px}.blog-post-draft-badge{border:1px solid var(--a-danger);color:var(--a-danger);font-family:var(--mono);margin-left:8px;padding:1px 6px;font-size:10px;display:inline-block}.blog-toc__title{font-family:var(--mono);color:var(--ink-3);margin:0 0 10px;font-size:11px}.blog-toc__list{border-left:1px solid var(--rule-2);flex-direction:column;gap:7px;margin:0;padding:0;list-style:none;display:flex}.blog-toc__link{color:var(--ink-2);padding-left:12px;font-size:13px;line-height:1.4;text-decoration:none;display:block}.blog-toc__link:hover{color:var(--a-accent)}.blog-toc__link--h3{color:var(--ink-3);padding-left:24px;font-size:12px}.blog-toc--inline{border:1px solid var(--rule-2);margin-bottom:24px;padding:12px 14px}.blog-toc--inline>summary{font-family:var(--mono);color:var(--ink-2);cursor:pointer;font-size:11px}.blog-toc--inline .blog-toc__list{margin-top:12px}.blog-footer{border-top:1px solid var(--rule);flex-direction:column;gap:18px;margin-top:48px;padding-top:20px;display:flex}.blog-footer__note{color:var(--ink-2);font-size:13px;line-height:1.7}.blog-footer__correction{color:var(--ink-2);border:1px dashed var(--rule-2);padding:12px 14px;font-size:13px;line-height:1.7}.blog-footer__actions{flex-wrap:wrap;gap:10px;display:flex}.blog-footer__cta{font-family:var(--mono);border:1px solid var(--rule);background:var(--paper);color:var(--ink);padding:7px 12px;font-size:12px;text-decoration:none}.blog-footer__cta:hover,.blog-footer__cta--primary{border-color:var(--a-accent);color:var(--a-accent)}.blog-footer__cta--primary:hover{background:var(--a-accent);color:var(--paper)}.blog-list-header{max-width:var(--blog-measure);margin-bottom:28px}.blog-list-header h1{font-family:var(--serif);margin:0 0 8px;font-size:28px;line-height:1.25}.blog-list-header p{color:var(--ink-2);margin:0;font-size:14px;line-height:1.7}.blog-card-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}@media (max-width:768px){.blog-card-grid{grid-template-columns:1fr}}.blog-card{border:1px solid var(--rule);background:var(--paper);color:inherit;flex-direction:column;gap:8px;padding:16px;text-decoration:none;display:flex}.blog-card:hover{border-color:var(--a-accent)}.blog-card__title{font-family:var(--serif);color:var(--ink);font-size:18px;font-weight:700;line-height:1.35}.blog-card__meta{font-family:var(--mono);color:var(--ink-3);font-size:11px}.blog-card__desc{color:var(--ink-2);font-size:13px;line-height:1.6}.blog-card__hook{font-family:var(--mono);color:var(--a-accent);margin-top:2px;font-size:11px}.blog-card__draft{border:1px solid var(--a-danger);color:var(--a-danger);font-family:var(--mono);padding:0 5px;font-size:10px;display:inline-block}.blog-empty{border:1px dashed var(--rule-2);font-family:var(--mono);color:var(--ink-3);padding:24px;font-size:12px}
