.xleb-markdown {
  --xleb-markdown-readable-width: 70ch;
  --xleb-markdown-wide-width: 92ch;
  display: block;
  min-width: 0;
  max-width: 100%;
}

.xleb-markdown--v2 {
  overflow-wrap: anywhere;
}

.xleb-markdown--v2 > .xleb-markdown__block {
  display: flow-root;
  min-width: 0;
  margin: 0;
}

.xleb-markdown--v2 > :is(
  .xleb-markdown__heading,
  .xleb-markdown__paragraph,
  .xleb-markdown__list,
  .xleb-markdown__quote,
  .xleb-markdown__image,
  .xleb-markdown__code,
  .xleb-markdown__separator
) {
  width: 100%;
  max-width: var(--xleb-markdown-content-width, var(--xleb-markdown-readable-width));
}

.xleb-markdown--width-readable {
  --xleb-markdown-content-width: var(--xleb-markdown-readable-width);
}

.xleb-markdown--width-wide {
  --xleb-markdown-content-width: var(--xleb-markdown-wide-width);
}

.xleb-markdown--width-full {
  --xleb-markdown-content-width: 100%;
}

.xleb-markdown--v2.xleb-markdown--starts-with-heading {
  padding-block-start: var(--gapX2, 8px);
}

.xleb-markdown--space-before-x6 {
  margin-block-start: var(--gapX6, 24px);
}

.xleb-markdown--space-before-x12 {
  margin-block-start: var(--gapX12, 48px);
}

.xleb-markdown--space-before-x20 {
  margin-block-start: var(--gapX20, 84px);
}

.xleb-markdown--space-after-x6 {
  margin-block-end: var(--gapX6, 24px);
}

.xleb-markdown--space-after-x12 {
  margin-block-end: var(--gapX12, 48px);
}

.xleb-markdown--space-after-x20 {
  margin-block-end: var(--gapX20, 84px);
}

/* Block rhythm. These margins live on wrappers and do not collapse through title elements. */
.xleb-markdown--v2 > .xleb-markdown__block + .xleb-markdown__block {
  margin-block-start: var(--gapX6, 24px);
}

.xleb-markdown--v2 > :is(.xleb-markdown__list, .xleb-markdown__quote, .xleb-markdown__image, .xleb-markdown__table-wrap, .xleb-markdown__code, .xleb-markdown__separator) + .xleb-markdown__block,
.xleb-markdown--v2 > .xleb-markdown__block + :is(.xleb-markdown__list, .xleb-markdown__quote, .xleb-markdown__image, .xleb-markdown__table-wrap, .xleb-markdown__code, .xleb-markdown__separator) {
  margin-block-start: var(--gapX8, 32px);
}

.xleb-markdown--v2 > .xleb-markdown__block + .xleb-markdown__heading--1 {
  margin-block-start: var(--gapX20, 84px);
}

.xleb-markdown--v2 > .xleb-markdown__block + .xleb-markdown__heading--2 {
  margin-block-start: var(--gapX15, 60px);
}

.xleb-markdown--v2 > .xleb-markdown__block + :is(.xleb-markdown__heading--3, .xleb-markdown__heading--4, .xleb-markdown__heading--5, .xleb-markdown__heading--6) {
  margin-block-start: var(--gapX12, 48px);
}

.xleb-markdown--v2 > .xleb-markdown__heading + :is(.xleb-markdown__paragraph, .xleb-markdown__list, .xleb-markdown__quote) {
  margin-block-start: var(--gapX6, 24px);
}

.xleb-markdown--v2.xleb-markdown--density-tight > .xleb-markdown__block + .xleb-markdown__block {
  margin-block-start: var(--gapX4, 16px);
}

.xleb-markdown--v2.xleb-markdown--density-tight > .xleb-markdown__block + .xleb-markdown__heading {
  margin-block-start: var(--gapX10, 40px);
}

.xleb-markdown--v2 :is(h1, h2, h3, h4, h5, h6, p, li, a, th, td, code) {
  letter-spacing: 0 !important;
}

.xleb-markdown--v2 :is(h1, h2, h3, h4, h5, h6) {
  scroll-margin-block-start: var(--gapX20, 84px);
}

.xleb-markdown--v2 a {
  color: inherit;
  text-decoration-line: underline;
  text-decoration-thickness: 0.08em;
  text-underline-offset: 0.16em;
}

.xleb-markdown--v2 a:hover,
.xleb-markdown--v2 a:focus-visible {
  color: var(--accentColor, #d3422f);
}

.xleb-markdown--v2 :not(pre) > code {
  padding: 0.12em 0.34em;
  border: 1px solid color-mix(in srgb, currentColor 18%, transparent);
  border-radius: 3px;
  background: color-mix(in srgb, currentColor 6%, transparent);
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;
  font-size: 0.88em;
}

.xleb-markdown__list > :is(ul, ol),
.xleb-markdown__quote blockquote,
.xleb-markdown__quote p,
.xleb-markdown__code pre {
  margin: 0;
}

.xleb-markdown__list > :is(ul, ol) {
  padding-inline-start: 1.35em;
}

.xleb-markdown__list :is(ul, ol) {
  margin-block: 0.45em 0;
  padding-inline-start: 1.35em;
}

.xleb-markdown__list li + li {
  margin-block-start: 0.42em;
}

.xleb-markdown__list li::marker {
  color: var(--accentColor, currentColor);
}

.xleb-markdown__quote blockquote {
  padding-inline-start: var(--gapX5, 20px);
  border-inline-start: 2px solid var(--accentColor, currentColor);
}

.xleb-markdown__quote p {
  max-width: none;
}

.xleb-markdown__image {
  margin-inline: 0;
}

.xleb-markdown--v2 > :is(
  .xleb-markdown__image--ratio-1-1,
  .xleb-markdown__image--ratio-4-3,
  .xleb-markdown__image--ratio-5-4,
  .xleb-markdown__image--ratio-3-2,
  .xleb-markdown__image--ratio-16-10,
  .xleb-markdown__image--ratio-16-9,
  .xleb-markdown__image--ratio-21-9,
  .xleb-markdown__image--ratio-2-3,
  .xleb-markdown__image--ratio-3-4,
  .xleb-markdown__image--ratio-4-5,
  .xleb-markdown__image--ratio-9-16
) {
  width: 100% !important;
}

.xleb-markdown--v2 > .xleb-markdown__image--ratio-original {
  width: fit-content !important;
}

.xleb-markdown--v2 > .xleb-markdown__image--align-center {
  margin-inline: auto;
}

.xleb-markdown--v2 > .xleb-markdown__image--align-right {
  margin-inline-start: auto;
  margin-inline-end: 0;
}

.xleb-markdown__image-media {
  display: block;
  width: 100%;
  max-width: 100%;
  overflow: hidden;
}

.xleb-markdown__image--ratio-original .xleb-markdown__image-media {
  width: fit-content;
}

.xleb-markdown__image--ratio-1-1 .xleb-markdown__image-media {
  aspect-ratio: 1 / 1;
}

.xleb-markdown__image--ratio-4-3 .xleb-markdown__image-media {
  aspect-ratio: 4 / 3;
}

.xleb-markdown__image--ratio-5-4 .xleb-markdown__image-media {
  aspect-ratio: 5 / 4;
}

.xleb-markdown__image--ratio-3-2 .xleb-markdown__image-media {
  aspect-ratio: 3 / 2;
}

.xleb-markdown__image--ratio-16-10 .xleb-markdown__image-media {
  aspect-ratio: 16 / 10;
}

.xleb-markdown__image--ratio-16-9 .xleb-markdown__image-media {
  aspect-ratio: 16 / 9;
}

.xleb-markdown__image--ratio-21-9 .xleb-markdown__image-media {
  aspect-ratio: 21 / 9;
}

.xleb-markdown__image--ratio-2-3 .xleb-markdown__image-media {
  aspect-ratio: 2 / 3;
}

.xleb-markdown__image--ratio-3-4 .xleb-markdown__image-media {
  aspect-ratio: 3 / 4;
}

.xleb-markdown__image--ratio-4-5 .xleb-markdown__image-media {
  aspect-ratio: 4 / 5;
}

.xleb-markdown__image--ratio-9-16 .xleb-markdown__image-media {
  aspect-ratio: 9 / 16;
}

.xleb-markdown__image-element {
  display: block;
  width: 100%;
  max-width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.xleb-markdown__image--ratio-original .xleb-markdown__image-element {
  width: auto;
  max-height: min(70vh, 720px);
  height: auto;
  object-fit: contain;
}

.xleb-markdown__image figcaption {
  max-width: 70ch;
  margin-block-start: var(--gapX3, 12px);
  color: color-mix(in srgb, currentColor 68%, transparent);
  font-size: var(--textSsize, 16px);
  line-height: var(--textSheightS, 24px);
}

.xleb-markdown__table-wrap {
  width: 100%;
  min-width: 0;
  max-width: 100%;
  overflow-x: auto;
  overscroll-behavior-inline: contain;
  -webkit-overflow-scrolling: touch;
  contain: inline-size;
}

.xleb-markdown__table-wrap table {
  width: max-content;
  min-width: 100%;
  border-collapse: collapse;
  border-spacing: 0;
}

.xleb-markdown__table-wrap :is(th, td) {
  min-width: 10rem;
  padding: var(--gapX3, 12px) var(--gapX4, 16px);
  border: 1px solid color-mix(in srgb, currentColor 18%, transparent);
  vertical-align: top;
  text-align: start;
}

.xleb-markdown__table-wrap th {
  background: color-mix(in srgb, currentColor 6%, transparent);
  font-weight: 600;
}

.xleb-markdown__table-wrap .is-align-center {
  text-align: center;
}

.xleb-markdown__table-wrap .is-align-right {
  text-align: right;
}

.xleb-markdown__code pre {
  max-width: 100%;
  overflow: auto;
  padding: var(--gapX5, 20px) var(--gapX6, 24px);
  border: 1px solid color-mix(in srgb, currentColor 16%, transparent);
  border-radius: 4px;
  background: color-mix(in srgb, currentColor 5%, transparent);
  tab-size: 2;
}

.xleb-markdown__code code {
  display: block;
  min-width: max-content;
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;
  white-space: pre;
}

.xleb-markdown__separator hr {
  height: 1px;
  margin: 0;
  border: 0;
  background: color-mix(in srgb, currentColor 20%, transparent);
}

/* Text classes normally target direct p/li children; these blocks need inheritance. */
:is(.xleb-markdown__list, .xleb-markdown__quote, .xleb-markdown__table-wrap, .xleb-markdown__code).textXXL {
  font-size: var(--textXXLsize, 38px);
  line-height: var(--textXXLheightS, 48px);
}

:is(.xleb-markdown__list, .xleb-markdown__quote, .xleb-markdown__table-wrap, .xleb-markdown__code).textXL {
  font-size: var(--textXLsize, 30px);
  line-height: var(--textXLheightS, 36px);
}

:is(.xleb-markdown__list, .xleb-markdown__quote, .xleb-markdown__table-wrap, .xleb-markdown__code).textL {
  font-size: var(--textLsize, 24px);
  line-height: var(--textLheightS, 32px);
}

:is(.xleb-markdown__list, .xleb-markdown__quote, .xleb-markdown__table-wrap, .xleb-markdown__code).textM {
  font-size: var(--textMsize, 19px);
  line-height: var(--textMheightS, 28px);
}

:is(.xleb-markdown__list, .xleb-markdown__quote, .xleb-markdown__table-wrap, .xleb-markdown__code).textS {
  font-size: var(--textSsize, 16px);
  line-height: var(--textSheightS, 24px);
}

:is(.xleb-markdown__list, .xleb-markdown__quote, .xleb-markdown__table-wrap, .xleb-markdown__code).textXS {
  font-size: var(--textXSsize, 14px);
  line-height: var(--textXSheightS, 20px);
}

:is(.xleb-markdown__list, .xleb-markdown__quote, .xleb-markdown__table-wrap, .xleb-markdown__code).textXXS {
  font-size: var(--textXXSsize, 12px);
  line-height: var(--textXXSheightS, 16px);
}

:is(.xleb-markdown__list, .xleb-markdown__quote).tight.textXXL {
  line-height: var(--textXXLheightT, 40px);
}

:is(.xleb-markdown__list, .xleb-markdown__quote).tight.textXL {
  line-height: var(--textXLheightT, 32px);
}

:is(.xleb-markdown__list, .xleb-markdown__quote).tight.textL {
  line-height: var(--textLheightT, 28px);
}

:is(.xleb-markdown__list, .xleb-markdown__quote).tight.textM {
  line-height: var(--textMheightT, 24px);
}

:is(.xleb-markdown__list, .xleb-markdown__quote).tight.textS {
  line-height: var(--textSheightT, 20px);
}

:is(.xleb-markdown__list, .xleb-markdown__quote).tight.textXS {
  line-height: var(--textXSheightT, 16px);
}

:is(.xleb-markdown__list, .xleb-markdown__quote).tight.textXXS {
  line-height: var(--textXXSheightT, 16px);
}

@media (max-width: 767px) {
  .xleb-markdown {
    --xleb-markdown-readable-width: 100%;
    --xleb-markdown-wide-width: 100%;
  }

  .xleb-markdown--v2 > .xleb-markdown__block + .xleb-markdown__heading--1 {
    margin-block-start: var(--gapX15, 60px);
  }

  .xleb-markdown--v2 > .xleb-markdown__block + .xleb-markdown__heading--2,
  .xleb-markdown--v2 > .xleb-markdown__block + :is(.xleb-markdown__heading--3, .xleb-markdown__heading--4, .xleb-markdown__heading--5, .xleb-markdown__heading--6) {
    margin-block-start: var(--gapX10, 40px);
  }

  .xleb-markdown__table-wrap :is(th, td) {
    min-width: 8.5rem;
    padding: var(--gapX2, 8px) var(--gapX3, 12px);
  }

  .xleb-markdown__code pre {
    padding: var(--gapX4, 16px);
  }
}
