.post-list{margin:0 0 var(--section-gap-s);gap:var(--space-lg);max-width:52rem;padding:0;list-style:none;display:grid}.post-list__item{gap:var(--space-sm);padding:var(--space-xl) 0;border-top:1px solid var(--color-rule);color:inherit;text-decoration:none;display:grid}.post-list__body{gap:var(--space-sm);align-content:start;display:grid}.post-list__item--cover{gap:var(--space-lg)}@media (width>=48rem){.post-list__item--cover{grid-template-columns:18rem minmax(0,1fr);align-items:start}}.post-list__cover{aspect-ratio:16/9;object-fit:cover;border-radius:var(--radius-card);outline:1px solid var(--color-rule);outline-offset:-1px;width:100%;height:auto;transition:transform var(--dur-short) var(--ease-out)}@media (prefers-reduced-motion:no-preference){.post-list__item:hover .post-list__cover{transform:translateY(-2px)}}.post-list__item h2{font-size:var(--text-2xl);max-width:32ch;transition:color var(--dur-short) var(--ease-out)}.post-list__item:hover h2{color:var(--color-accent-deep)}.post-list__item:focus-visible{outline:2px solid var(--color-focus);outline-offset:4px;border-radius:2px}.post{padding-bottom:var(--section-gap-s)}.post__head{max-width:52rem;padding-block:var(--space-3xl) var(--space-2xl)}.post__head h1{font-size:var(--text-display-s);max-width:22ch}.post__grid{gap:var(--space-2xl);display:grid}@media (width>=72rem){.post__grid{gap:var(--space-3xl);grid-template-columns:14rem minmax(0,46rem)}}.post__toc{font-size:var(--text-sm)}@media (width>=72rem){.post__toc{top:var(--space-xl);align-self:start;position:sticky}}.post__toc ol{margin:var(--space-sm) 0 0;gap:var(--space-xs);counter-reset:toc;padding:0;list-style:none;display:grid}.post__toc li{counter-increment:toc;gap:var(--space-xs);display:flex}.post__toc li:before{content:counter(toc, decimal-leading-zero);font-family:var(--font-outlier);color:var(--color-muted)}.post__toc a{color:var(--color-ink-2);text-decoration:none}.post__toc a:hover{color:var(--color-accent-deep);text-decoration:underline}.label-sm{font:500 var(--text-xs) / 1 var(--font-outlier);text-transform:uppercase;letter-spacing:.08em;color:var(--color-muted)}.prose{min-width:0;font-size:1.0625rem;line-height:1.7}.prose>*+*{margin-top:var(--space-lg)}.prose h2{font-size:var(--text-2xl);margin-top:var(--space-3xl);scroll-margin-top:var(--space-xl)}.prose h3{font-size:var(--text-xl);margin-top:var(--space-2xl)}.prose h2+*,.prose h3+*{margin-top:var(--space-md)}.prose p{max-width:68ch}.prose a{color:var(--color-accent-deep);text-decoration-color:color-mix(in oklab, var(--color-accent) 50%, transparent)}.prose a:hover{text-decoration-color:var(--color-accent)}.prose ul,.prose ol{max-width:66ch;padding-left:1.4em}.prose ul{list-style:outside}.prose ol{list-style:decimal}.prose ol>li::marker{font-family:var(--font-outlier);font-size:.9em}.prose li+li{margin-top:var(--space-xs)}.prose li::marker{color:var(--color-accent-deep)}.prose strong{color:var(--color-ink);font-weight:600}.prose hr{border:0;border-top:1px solid var(--color-rule);margin-block:var(--space-2xl)}.prose blockquote{padding:var(--space-md) var(--space-lg);border-left:3px solid var(--color-accent);background:color-mix(in oklab, var(--p-thu) 30%, var(--color-paper));border-radius:0 var(--radius-input) var(--radius-input) 0;margin-inline:0}.prose table{border-collapse:collapse;max-width:100%;font-size:.95em;display:block;overflow-x:auto}.prose th,.prose td{padding:var(--space-xs) var(--space-md);border-bottom:1px solid var(--color-rule);text-align:left;vertical-align:top}.prose th{color:var(--color-ink);border-bottom-width:2px;font-weight:600}.prose :not(pre)>code{font-family:var(--font-outlier);background:color-mix(in oklab, var(--color-ink) 7%, transparent);border-radius:6px;padding:.1em .35em;font-size:.88em}.prose pre{padding:var(--space-lg);border-radius:var(--radius-card);background:var(--color-ink);color:var(--color-paper);font:400 var(--text-sm) / 1.65 var(--font-outlier);tab-size:2;overflow-x:auto}.prose pre code{font:inherit}.prose table{border-collapse:collapse;width:100%;font-size:var(--text-sm)}@media (width<=48rem){.prose table{display:block;overflow-x:auto}}.prose th,.prose td{text-align:left;vertical-align:top;padding:var(--space-sm) var(--space-md) var(--space-sm) 0;border-bottom:1px solid var(--color-rule)}.prose thead th{font-family:var(--font-outlier);font-weight:500;font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.06em;color:var(--color-muted)}.diagram{margin:var(--space-2xl) 0}.diagram__frame{padding:var(--space-lg);border-radius:var(--radius-card);background:color-mix(in oklab, var(--color-paper) 70%, white);outline:1px solid var(--color-rule);outline-offset:-1px;overflow-x:auto}.diagram svg{width:100%;min-width:620px;height:auto;font-family:var(--font-body)}.diagram figcaption{margin-top:var(--space-sm);font-size:var(--text-sm);color:var(--color-ink-2);max-width:68ch}.diagram figcaption b{font-family:var(--font-outlier);color:var(--color-accent-deep);font-weight:500}.dg-box{fill:var(--color-paper);stroke:var(--color-ink-2);stroke-width:1.5px}.dg-box--accent{fill:color-mix(in oklab, var(--p-thu) 70%, white);stroke:var(--color-accent-deep)}.dg-box--cloud{fill:color-mix(in oklab, var(--p-fri) 60%, white)}.dg-box--relay{fill:color-mix(in oklab, var(--p-wed) 70%, white)}.dg-box--warn{fill:color-mix(in oklab, var(--p-mon) 60%, white)}.dg-box--ghost{fill:#0000;stroke:var(--color-rule);stroke-dasharray:5 5}.dg-zone{fill:color-mix(in oklab, var(--color-ink) 3%, transparent);stroke:var(--color-rule);stroke-dasharray:4 6}.dg-title{font:600 15px var(--font-body);fill:var(--color-ink)}.dg-text{font:400 13px var(--font-body);fill:var(--color-ink-2)}.dg-mono{font:400 12px var(--font-outlier);fill:var(--color-ink-2)}.dg-step{font:500 12px var(--font-outlier);fill:var(--color-accent-deep)}.dg-muted{fill:var(--color-muted)}.dg-mid{text-anchor:middle}.dg-end{text-anchor:end}.dg-line{fill:none;stroke:var(--color-ink-2);stroke-width:1.5px}.dg-line--p2p{stroke:var(--color-accent);stroke-width:3.5px}.dg-line--signal{stroke-dasharray:6 5}.dg-line--faint{stroke:var(--color-rule)}.dg-line--life{stroke:var(--color-rule);stroke-width:1.5px;stroke-dasharray:2 5}.dg-head{fill:var(--color-ink-2)}.dg-head--p2p,.dg-dot{fill:var(--color-accent)}.dg-badge{fill:var(--color-accent-deep)}.dg-badge-text{font:600 11px var(--font-outlier);fill:var(--color-accent-ink);text-anchor:middle}@media (width<=40rem){.diagram__frame{padding:var(--space-sm)}}.dg-halo{paint-order:stroke;stroke:color-mix(in oklab, var(--color-paper) 70%, white);stroke-width:6px;stroke-linejoin:round}
