.article-typography {
  color: var(--cg2);
  font-size: var(--fs3);
  line-height: 1.8;
}

.article-typography > *:first-child {
  margin-top: 0;
}

.article-typography :where(h1, h2, h3, h4, h5, h6) {
  margin: 2.2em 0 0.8em;
  color: var(--cg1);
  font-weight: 700;
  line-height: 1.35;
  letter-spacing: -0.01em;
}

.article-typography :where(h1) {
  font-size: var(--fs7);
}

.article-typography :where(h2) {
  font-size: var(--fs6);
}

.article-typography :where(h3) {
  font-size: var(--fs5);
}

.article-typography :where(h4) {
  font-size: var(--fs4);
}

.article-typography :where(h5, h6) {
  font-size: var(--fs3);
}

.article-typography :where(p, ul, ol, blockquote, pre, figure, table, hr) {
  margin: 1.2em 0;
}

.article-typography :where(ul, ol) {
  padding-left: 1.2em;
}

.article-typography :where(li + li) {
  margin-top: 0.35em;
}

.article-typography :where(a) {
  color: inherit;
  text-decoration: underline;
  text-underline-offset: 0.14em;
}

.article-typography :where(strong, b) {
  font-weight: 700;
  color: var(--cg1);
}

.article-typography :where(em, i) {
  font-style: italic;
}

.article-typography :where(blockquote) {
  padding: 0.1em 0 0.1em 1em;
  border-left: 2px solid var(--line);
  color: var(--cg4);
}

.article-typography :where(img) {
  display: block;
  max-width: 100%;
  height: auto;
  border-radius: 4px;
}

.article-typography :where(figure) {
  margin-left: 0;
  margin-right: 0;
}

.article-typography :where(figcaption) {
  margin-top: 0.6em;
  font-size: var(--fs2);
  color: var(--cg5);
}

.article-typography :where(pre, code) {
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
}

.article-typography :where(pre) {
  padding: 1em 1.1em;
  border-radius: 4px;
  background: var(--cp4);
  overflow-x: auto;
}

.article-typography :where(table) {
  width: 100%;
  border-collapse: collapse;
  border-spacing: 0;
}

.article-typography :where(th, td) {
  padding: 0.75em 0.8em;
  border: 1px solid var(--line);
  text-align: left;
  vertical-align: top;
}

.article-typography :where(hr) {
  border: 0;
  border-top: 1px solid var(--line);
}
