.prose {
  --prose-measure: var(--measure);
  font-size: var(--type-body);
  line-height: var(--leading-body);
  letter-spacing: var(--track-body);
  color: var(--label);
}
.prose > * + * { margin-block-start: var(--space-m); }
.prose > :is(h2, h3, h4) { margin-block-start: var(--space-xl); }
.prose > :is(h2, h3, h4) + :is(p, ul, ol) { margin-block-start: var(--space-xs); }
.prose > :is(h2, h3, h4) + :not(p, ul, ol) { margin-block-start: var(--space-m); }
.prose > :first-child { margin-block-start: 0; }
.prose > :is(h2, h3, h4)[id] { scroll-margin-block-start: var(--space-3xl); }
.prose > :is(h2, h3, h4) {
  color: var(--label);
  text-wrap: balance;
  max-inline-size: var(--prose-measure);
}
.prose > h2 { font-size: var(--type-title-2); }
.prose > h3 { font-size: var(--type-title-3); }
.prose > h4 { font-size: var(--type-headline); }
.prose > p, .prose li { max-inline-size: var(--prose-measure); }
.prose > p:first-child {
  font-size: var(--type-callout);
  line-height: var(--leading-snug);
  color: var(--label-secondary);
}
.prose a:not([class]) {
  color: var(--accent);
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-decoration-color: color-mix(in srgb, var(--accent) 40%, transparent);
  text-underline-offset: 3px;
  transition: text-decoration-color var(--dur-fast) var(--ease);
}
.prose a:not([class]):hover { text-decoration-color: var(--accent); }
.prose :is(ul, ol) {
  padding-inline-start: 0;
  list-style-position: outside;
  margin-inline-start: 1.15em;
}
.prose li + li { margin-block-start: var(--space-2xs); }
.prose li::marker { color: var(--label-tertiary); }
.prose ol > li::marker { font-variant-numeric: tabular-nums; font-weight: var(--weight-medium); }
.prose :is(ul, ol) :is(ul, ol) { margin-block-start: var(--space-2xs); }
.prose blockquote {
  margin-inline: 0;
  padding-block-start: var(--space-s);
  font-size: var(--type-title-3);
  line-height: var(--leading-snug);
  font-weight: var(--weight-medium);
  color: var(--label);
  max-inline-size: var(--prose-measure);
  position: relative;
}
.prose blockquote::before {
  content: "";
  position: absolute; inset-block-start: 0; inset-inline-start: 0;
  inline-size: 2.5rem; block-size: 3px;
  border-radius: 2px;
  background: var(--accent);
}
.prose blockquote p { font-size: inherit; line-height: inherit; max-inline-size: none; }
.prose blockquote cite {
  display: block;
  margin-block-start: var(--space-xs);
  font-size: var(--type-footnote);
  font-style: normal;
  font-weight: var(--weight-regular);
  color: var(--label-secondary);
}
.prose figure { margin: 0; }
.prose figure img {
  inline-size: 100%;
  aspect-ratio: var(--figure-ratio, 4 / 3);
  object-fit: cover;
  object-position: center;
  max-block-size: 62svh;
  border-radius: var(--radius-m);
  display: block;
}
.prose figcaption {
  margin-block-start: var(--space-xs);
  font-size: var(--type-footnote);
  line-height: var(--leading-snug);
  color: var(--label-secondary);
  max-inline-size: var(--prose-measure);
}
.prose hr {
  border: 0;
  block-size: 1px;
  background: var(--separator);
  margin-block: var(--space-xl);
}
.prose .table-wrap { max-inline-size: none; }
.prose small,
.prose .prose__note {
  display: block;
  font-size: var(--type-footnote);
  color: var(--label-secondary);
  max-inline-size: var(--prose-measure);
}
.prose > :is(figure, .callout, .imgbreak, .dtable, .table-wrap, .inlinecta,
              .card-row, .steps, .faq, .carousel, .photogrid, .pair, .ctaband) {
  max-inline-size: none;
}
