/* Long-form article prose. Apply .fm-prose to the article body (or to .fm-article-grid). */
.fm-prose{counter-reset:fm-section;color:var(--text-2);font-family:var(--font-reading);font-size:var(--fs-body);line-height:var(--lh-body)}
.fm-prose>*+*{margin-top:var(--space-flow)}
.fm-prose p{max-width:var(--measure)}
.fm-prose>h2{counter-increment:fm-section;font-size:var(--fs-h2);font-weight:var(--fw-bold);letter-spacing:var(--tracking-heading);margin-top:var(--space-section);padding-top:var(--space-6);border-top:var(--border-width-strong) solid var(--border-strong);scroll-margin-top:calc(var(--header-h) + var(--space-6))}
.fm-prose>h2::before{content:counter(fm-section,decimal-leading-zero);display:block;font-family:var(--font-display);font-size:var(--fs-sm);font-weight:var(--fw-heavy);font-variant-numeric:tabular-nums;letter-spacing:0.02em;color:var(--text-accent);margin-bottom:var(--space-4)}
.fm-prose>h2+*{margin-top:var(--space-6)}
.fm-prose>h3{font-size:var(--fs-h3);margin-top:var(--space-block)}
.fm-prose>h3+*{margin-top:var(--space-3)}
.fm-prose>h4{font-size:var(--fs-h4);margin-top:var(--space-7)}
.fm-prose>h4+*{margin-top:var(--space-2)}
.fm-prose strong{color:var(--text-1);font-weight:var(--fw-semibold)}
.fm-prose em{font-style:italic}
.fm-prose mark{background:var(--marker);color:var(--marker-fg);padding:0.05em 0.2em;border-radius:2px}
.fm-prose>ul,.fm-prose>ol{padding-left:1.4em;max-width:var(--measure)}
.fm-prose>ul>li+li,.fm-prose>ol>li+li{margin-top:0.4em}
.fm-prose>ul li>ul,.fm-prose>ol li>ol{margin-top:0.4em}
.fm-prose>ul{list-style:none}
.fm-prose>ul>li{position:relative}
.fm-prose>ul>li::before{content:"";position:absolute;left:-1.1em;top:0.78em;width:0.5em;height:2px;background:var(--accent)}
.fm-prose>ol>li::marker{font-family:var(--font-mono);font-size:0.8em;color:var(--text-accent);font-weight:var(--fw-medium)}
.fm-prose :not(pre)>code{font-family:var(--font-mono);font-size:0.84em;background:var(--accent-softer);color:var(--text-1);border:var(--border-width) solid var(--border-1);border-radius:var(--radius-sm);padding:0.08em 0.36em;overflow-wrap:anywhere}
.fm-prose kbd{font-family:var(--font-mono);font-size:0.78em;background:var(--surface-card);color:var(--text-1);border:var(--border-width) solid var(--border-2);border-bottom-width:3px;border-radius:var(--radius-sm);padding:0.05em 0.4em}
.fm-prose blockquote{margin:var(--space-block) 0;padding:0 0 0 var(--space-6);border-left:var(--border-width-strong) solid var(--accent);font-style:italic;color:var(--text-1)}
.fm-prose table{width:100%;border-collapse:collapse;font-family:var(--font-ui);font-size:var(--fs-sm);line-height:var(--lh-ui)}
.fm-prose th{text-align:left;font-weight:var(--fw-semibold);color:var(--text-1);border-bottom:var(--border-width-strong) solid var(--border-strong);padding:var(--space-3) var(--space-4) var(--space-3) 0}
.fm-prose td{border-bottom:var(--border-width) solid var(--border-1);padding:var(--space-3) var(--space-4) var(--space-3) 0;vertical-align:top}
.fm-prose td code{font-size:0.9em}
.fm-prose hr{width:4rem;margin:var(--space-section) auto;border-top:var(--border-width-strong) solid var(--accent)}
.fm-prose .fm-dropcap::first-letter{float:left;font-family:var(--font-display);font-weight:var(--fw-black);font-size:5.1em;line-height:0.8;margin:0.06em 0.1em 0 -0.04em;color:var(--text-accent)}
.fm-prose>.fm-code,.fm-prose>.fm-prompt,.fm-prose>.fm-callout,.fm-prose>.fm-figure,.fm-prose>.fm-steps,.fm-prose>.fm-skill,.fm-prose>.fm-pullquote,.fm-prose>.fm-prereq{margin-top:var(--space-block);margin-bottom:var(--space-block)}
