.prose-writing{--fg:var(--color-ink);--bg:var(--color-paper);--rule:var(--color-rule);--rule-strong:var(--color-rule-strong);--chart-red:#b0102f;--chart-green:#15803d;--chart-blue:#1d5fb4;--accent-crimson:var(--chart-red);--accent-emerald:var(--chart-green)}:root[data-theme=darkroom] .prose-writing{--chart-red:#ff8a9b;--chart-green:#5ad58a;--chart-blue:#7ab0ff}.prose-writing{color:var(--color-ink-muted);font-size:1.0625rem;line-height:1.7}.prose-writing>:is(p,ul,ol,blockquote,h2,h3,.callout-box,.post-refs),.prose-writing figcaption{max-width:34em}.prose-writing p{margin-bottom:1.6rem}.prose-writing h2{font-family:var(--font-serif);text-wrap:balance;border-bottom:1px solid var(--color-rule);color:var(--color-ink);margin:3.5rem 0 1rem;padding-bottom:.5rem;font-size:1.85rem;font-weight:400;line-height:1.2}.prose-writing h3{font-family:var(--font-serif);text-wrap:balance;color:var(--color-ink);margin:2.4rem 0 .7rem;font-size:1.35rem;font-weight:400;line-height:1.25}.prose-writing ul,.prose-writing ol{margin:0 0 1.8rem 1.8rem}.prose-writing li{margin-bottom:.5rem}.prose-writing blockquote{border-left:1px solid var(--color-ink);color:var(--color-ink-muted);margin:2rem 0;padding:.8rem 1.4rem;font-style:italic}.prose-writing .callout-box{border:1px solid var(--color-rule-strong);background:var(--color-surface);margin:2rem 0;padding:1.5rem}.prose-writing .callout-title{margin-bottom:.6rem;font-size:.875rem;font-weight:600}.prose-writing .code-block-wrap{color:#eaeaea;font-family:var(--font-mono);background:#0d0d0d;margin:2rem 0;padding:1.2rem 1.5rem;font-size:.85rem;line-height:1.6;position:relative;overflow-x:auto}.prose-writing .code-top-bar{color:#999;border-bottom:1px solid #222;justify-content:space-between;margin-bottom:.8rem;padding-bottom:.4rem;font-size:.75rem;display:flex}.prose-writing .copy-code-btn{color:#aaa;cursor:pointer;font-family:var(--font-mono);background:0 0;border:none;min-height:1.5rem;font-size:.75rem}@media (pointer:coarse){.prose-writing .copy-code-btn{min-width:2.75rem;min-height:2.75rem}}.prose-writing .copy-code-btn:hover{color:#fff}.prose-writing .essay-table{border-collapse:collapse;width:100%;margin:2rem 0;font-size:.88rem}.prose-writing .essay-table th,.prose-writing .essay-table td{border:1px solid var(--color-rule);text-align:left;padding:.8rem 1rem}.prose-writing .essay-table td{font-variant-numeric:tabular-nums}.prose-writing .essay-table :is(td,th).num{text-align:right;white-space:nowrap}.prose-writing .essay-table th{background:var(--color-surface);font-family:var(--font-sans);font-size:.8125rem;font-weight:500}.prose-writing .post-figure{max-width:520px;margin:2.5rem auto}.prose-writing .post-figure svg{width:100%;height:auto;display:block}.prose-writing .post-figure figcaption{color:var(--color-ink-muted);margin-top:.9rem;font-size:.8125rem;line-height:1.55}.prose-writing .post-figure .node{fill:var(--color-paper);stroke:var(--color-ink);stroke-width:1px}.prose-writing .post-figure .node-soft{fill:var(--color-surface);stroke:var(--color-rule-strong);stroke-width:1px}.prose-writing .post-figure .edge{stroke:var(--color-ink-muted);stroke-width:1.2px;fill:none}.prose-writing .post-figure .arrowhead{fill:var(--color-ink-muted)}.prose-writing .post-figure text{font-family:var(--font-sans);fill:var(--color-ink)}.prose-writing .post-figure .t{font-size:14px;font-weight:600}.prose-writing .post-figure .s{fill:var(--color-ink-muted);font-size:12px}.prose-writing .post-figure .n{font-family:var(--font-mono);fill:var(--color-ink-subtle);font-size:12px}.prose-writing .post-figure .hl{fill:none;stroke:var(--chart-red);stroke-width:2px;opacity:0;animation:8s infinite cb-step}.prose-writing .post-figure .token{stroke:var(--chart-red);stroke-width:2px;stroke-dasharray:4 4;animation:.8s linear infinite cb-flow}.prose-writing .post-figure .cut{stroke:var(--chart-red);stroke-width:1px;stroke-dasharray:5 4}.prose-writing .post-figure .crim{fill:var(--chart-red)}@keyframes cb-step{0%{opacity:0}3%{opacity:1}14%{opacity:1}20%{opacity:0}to{opacity:0}}@keyframes cb-flow{to{stroke-dashoffset:-8px}}.prose-writing .post-figure .hl2{fill:none;stroke:var(--color-ink);stroke-width:2px;opacity:0;animation:7.2s infinite cb-step}@media (prefers-reduced-motion:reduce){.prose-writing .post-figure .hl,.prose-writing .post-figure .hl2,.prose-writing .post-figure .token{animation:none}}.prose-writing sup.cite{margin-left:1px;font-size:.68em;line-height:0}.prose-writing sup.cite a{color:var(--color-ink-subtle);padding:.5em .3em;text-decoration:none}.prose-writing sup.cite a:hover{color:var(--color-ink)}.prose-writing .post-refs li.is-target{background:var(--color-surface)}.prose-writing .essay-table td.mono{font-family:var(--font-mono);white-space:nowrap;font-size:.78rem}.prose-writing .timeline-table td{padding:.6rem .9rem}.prose-writing .timeline-table td:first-child{white-space:nowrap}.prose-writing .essay-table tr.row-flag td{color:var(--chart-red)}.prose-writing .post-photo{margin:2.5rem 0}.prose-writing .post-photo img{border:1px solid var(--color-rule);width:100%;height:auto;display:block}.prose-writing .post-photo figcaption{color:var(--color-ink-muted);margin-top:.8rem;font-size:.8125rem;line-height:1.5}.prose-writing .post-video{margin:2.5rem 0}.prose-writing .post-video-frame{aspect-ratio:16/9;border:1px solid var(--color-rule);background:var(--color-surface);position:relative}.prose-writing .post-video-frame iframe{border:0;width:100%;height:100%;position:absolute;inset:0}.prose-writing .post-video figcaption{color:var(--color-ink-muted);margin-top:.8rem;font-size:.8125rem;line-height:1.5}.prose-writing h2,.prose-writing h3{scroll-margin-top:90px}.prose-writing .post-stats{border-top:1px solid var(--color-rule);border-left:1px solid var(--color-rule);grid-template-columns:repeat(3,1fr);margin:2rem 0;display:grid}.prose-writing .post-stats>div{border-right:1px solid var(--color-rule);border-bottom:1px solid var(--color-rule);padding:1rem 1.1rem}.prose-writing .post-stat-num{font-family:var(--font-serif);font-size:1.7rem;line-height:1.1;display:block}.prose-writing .post-stat-label{color:var(--color-ink-muted);margin-top:.3rem;font-size:.8125rem;display:block}.prose-writing .post-grid{grid-template-columns:1fr 1fr;align-items:start;gap:1.2rem;margin:2rem 0;display:grid}.prose-writing .post-grid .post-photo{margin:0}.prose-writing .post-photo--narrow{max-width:520px;margin-left:auto;margin-right:auto}.prose-writing .table-scroll{margin:2rem 0;overflow-x:auto}.prose-writing .table-scroll .essay-table{margin:0}.prose-writing .post-refs{font-size:.9rem;line-height:1.6}.prose-writing .post-refs li{margin-bottom:.7rem}.prose-writing .post-figure--wide{max-width:100%}.prose-writing .eq{font-family:var(--font-display);text-align:center;background:var(--color-surface);border:1px solid var(--color-rule);margin:1.6rem 0;padding:.9rem 1rem;font-size:1.3rem;overflow-x:auto}.prose-writing pre{white-space:pre;margin:0}.prose-writing p code,.prose-writing li code,.prose-writing .post-refs a{overflow-wrap:anywhere}.prose-writing .chart .tick{font-family:var(--font-mono);fill:var(--color-ink-subtle);font-size:12px}.prose-writing .chart .lab{fill:var(--color-ink-muted);font-size:12px}.prose-writing .chart .leg{fill:var(--color-ink);font-size:12px}.prose-writing .chart .note,.prose-writing .diagram .note{fill:var(--color-ink-muted);font-size:12px}.prose-writing .chart .grid{stroke:var(--color-rule);stroke-width:1px}.prose-writing .chart .dashg{stroke-dasharray:3 3}.prose-writing .chart .ax{stroke:var(--color-rule-strong)}.prose-writing .chart .ann{stroke:var(--color-ink-subtle);stroke-dasharray:2 3}.prose-writing .chart .band{fill:var(--color-surface)}.prose-writing .chart .line{fill:none;stroke-width:1.8px;stroke-linejoin:round}.prose-writing .chart line.c1,.prose-writing .chart line.c2,.prose-writing .chart line.c3{stroke-width:1.8px}.prose-writing .chart .c1{stroke:var(--color-ink)}.prose-writing .chart .c2{stroke:var(--chart-green)}.prose-writing .chart .c3{stroke:var(--chart-red)}.prose-writing .chart .dash{stroke-dasharray:6 4}.prose-writing .chart .c3t{fill:var(--chart-red)}.prose-writing .chart .dot,.prose-writing .chart .c1f{fill:var(--color-ink)}.prose-writing .chart .c3f{fill:var(--chart-red)}.prose-writing .chart .wave{stroke:var(--color-ink-muted);stroke-width:1px}.prose-writing .chart line.thr{stroke-width:1px;stroke-dasharray:4 4}.prose-writing .chart .bar{fill:var(--color-rule-strong)}.prose-writing .chart .bar.val{fill:var(--chart-blue);opacity:.65}.prose-writing .chart .bar.test{fill:var(--chart-red);opacity:.75}.prose-writing .chart .bar.hi{fill:var(--color-ink)}.prose-writing .chart .barsoft{fill:var(--color-rule)}.prose-writing .chart line.barsoftleg{stroke:var(--color-rule);stroke-width:8px}.prose-writing .chart .bar2{fill:var(--color-ink)}.prose-writing .chart .bar3{fill:var(--color-rule-strong)}.prose-writing .chart .scan{stroke:var(--chart-green);stroke-width:1.5px;opacity:0}.prose-writing .diagram .flow{stroke:var(--color-ink-muted);stroke-width:1.4px;fill:none;stroke-dasharray:4 5;animation:1s linear infinite fk-flow}.prose-writing .diagram .flow-back{stroke:var(--chart-green);stroke-width:1.4px;fill:none;stroke-dasharray:4 5;animation:1s linear infinite reverse fk-flow}.prose-writing .diagram .arrowhead-g{fill:var(--chart-green)}.prose-writing .diagram .arrowhead-r{fill:var(--chart-red)}.prose-writing .diagram .gtxt{fill:var(--chart-green)}.prose-writing .diagram .ground,.prose-writing .diagram .ax2{stroke:var(--color-ink-muted);stroke-width:1.2px}.prose-writing .diagram .hatch{stroke:var(--color-rule-strong);stroke-width:1px}.prose-writing .diagram .spring{fill:none;stroke:var(--color-ink);stroke-width:1.4px}.prose-writing .diagram .line{fill:none;stroke-width:1.8px}.prose-writing .diagram .c1{stroke:var(--color-ink)}.prose-writing .diagram .cell{fill:var(--color-surface);stroke:var(--color-rule-strong);stroke-width:1px}.prose-writing .diagram .lanes{fill:color-mix(in srgb, var(--chart-green) 14%, transparent);stroke:var(--chart-green);stroke-width:1.5px;animation:3.2s steps(4,end) infinite fk-lanes}.prose-writing .diagram .pt-train{fill:var(--color-rule-strong)}.prose-writing .diagram .pt-val{fill:var(--chart-blue)}.prose-writing .diagram .pt-test{fill:var(--chart-red)}.prose-writing .diagram .leak{fill:none;stroke:var(--chart-red);stroke-width:1.2px;stroke-dasharray:3 4;animation:1s linear infinite fk-flow,2.4s ease-in-out infinite fk-pulse;animation-delay:0s, var(--d,0s)}.prose-writing .diagram .cut{stroke:var(--color-ink);stroke-width:1.5px}.prose-writing .diagram .now{stroke:var(--chart-green);stroke-width:2px;animation:7s linear infinite fk-now}.prose-writing .diagram .ss-block,.prose-writing .diagram .ss-load,.prose-writing .diagram .ss-spring{transform-box:fill-box}.prose-writing .diagram .ss-load{animation:4s linear infinite fk-load}.prose-writing .diagram .ss-block{animation:4s infinite fk-block}.prose-writing .diagram .ss-spring{transform-origin:0;animation:4s infinite fk-spring}.prose-writing .diagram .ss-saw{stroke-dasharray:1;stroke-dashoffset:1px;animation:16s linear infinite fk-draw}@keyframes fk-flow{to{stroke-dashoffset:-18px}}@keyframes fk-pulse{0%,to{opacity:.15}50%{opacity:1}}@keyframes fk-lanes{to{transform:translate(688px)}}@keyframes fk-now{0%{transform:translate(0)}to{transform:translate(612px)}}@keyframes fk-load{0%{opacity:0;transform:translate(0)}5%{opacity:1}95%{opacity:1}to{opacity:0;transform:translate(60px)}}@keyframes fk-block{0%{opacity:0;transform:translate(0)}5%{opacity:1}72%{animation-timing-function:cubic-bezier(.2,.9,.3,1.2);transform:translate(0)}80%{transform:translate(60px)}95%{opacity:1}to{opacity:0;transform:translate(60px)}}@keyframes fk-spring{0%{transform:scaleX(1)}72%{animation-timing-function:cubic-bezier(.2,.9,.3,1.2);transform:scaleX(1.36)}80%{transform:scaleX(.9)}to{transform:scaleX(1)}}@keyframes fk-draw{to{stroke-dashoffset:0}}@keyframes fk-grow{to{transform:scaleY(1)}}@keyframes fk-scan{0%{opacity:.9;transform:translate(0)}to{opacity:.9;transform:translate(632px)}}.prose-writing .chart .draw{stroke-dasharray:1;stroke-dashoffset:1px}.prose-writing .chart .grow{transform-box:fill-box;transform-origin:bottom;transform:scaleY(0)}.prose-writing .chart.seen .draw{animation:fk-draw 2.2s var(--ease-editorial) forwards}.prose-writing .chart.seen .grow{animation:fk-grow .7s var(--ease-editorial) forwards;animation-delay:var(--d,0s)}.prose-writing .chart.seen .scan{animation:6s linear 2.2s infinite fk-scan}.prose-writing .post-figure:is(:not(.in-view),.is-paused) *{animation-play-state:paused!important}.prose-writing .fig-pause{min-height:2.75rem;color:var(--color-ink-muted);text-underline-offset:4px;cursor:pointer;background:0 0;border:0;align-items:center;margin-top:.25rem;padding:0;font-size:.8125rem;font-weight:500;text-decoration:underline;display:inline-flex;position:sticky;left:0}.prose-writing .fig-pause:hover{color:var(--color-ink)}@media (prefers-reduced-motion:reduce){.prose-writing .post-figure *{animation:none!important}.prose-writing .chart .draw,.prose-writing .diagram .ss-saw{stroke-dasharray:none;stroke-dashoffset:0}.prose-writing .chart .grow{transform:none}}@media (max-width:600px){.prose-writing .essay-table td:not(.num){min-width:9rem}.prose-writing .post-stats{grid-template-columns:repeat(2,1fr)}.prose-writing .post-grid{grid-template-columns:1fr}}.prose-writing ul{list-style:outside}.prose-writing ol{list-style:decimal}.prose-writing a{color:var(--color-ink);text-decoration:underline;text-decoration-thickness:1px;-webkit-text-decoration-color:var(--color-rule-strong);text-decoration-color:var(--color-rule-strong);text-underline-offset:4px;transition:color .2s,text-decoration-color .2s}.prose-writing a:hover{color:var(--color-signal);-webkit-text-decoration-color:var(--color-signal);text-decoration-color:var(--color-signal)}.prose-writing :not(pre)>code{font-size:.88em}.prose-writing .post-figure--wide{overflow-x:auto}.prose-writing .post-figure--wide svg{min-width:720px}.prose-writing :is(.table-scroll,.post-figure)[tabindex="0"]:before{content:"Scrolls sideways";color:var(--color-ink-subtle);margin-bottom:.5rem;font-size:.8125rem;font-weight:500;display:block;position:sticky;left:0}.prose-writing :is(.table-scroll,.post-figure)[tabindex="0"]:focus-visible{outline-offset:4px}@media (max-width:900px){.prose-writing .post-figure{overflow-x:auto}.prose-writing .post-figure--wide svg{min-width:864px}.prose-writing .post-figure:not(.post-figure--wide) svg{min-width:440px}}.prose-writing .post-refs .ref-back{white-space:nowrap;font-size:.8125rem;font-weight:500}
