.prose :where(h2, h3, h4) > :where(a.lotus-heading-anchor) {
  position: absolute;
  inset-block-start: 0.2em;
  inset-inline-start: -1.45em;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  inline-size: 0.95em;
  block-size: 0.95em;
  border: 1px solid var(--lotus-border-subtle);
  border-radius: var(--lotus-radius-sm);
  color: var(--lotus-text-subtle);
  opacity: 0;
  text-decoration: none;
  transition:
    border-color 150ms ease,
    color 150ms ease,
    opacity 150ms ease;
}

.prose :where(h4) > :where(a.lotus-heading-anchor) {
  inset-block-start: 0.14em;
}

.prose :where(h2, h3, h4):hover > :where(a.lotus-heading-anchor),
.prose :where(h2, h3, h4) > :where(a.lotus-heading-anchor:focus-visible) {
  color: var(--lotus-text);
  opacity: 1;
}

.prose :where(a.lotus-heading-anchor:hover) {
  border-color: var(--lotus-border-hover);
  color: var(--lotus-accent);
  text-decoration: none;
}

.prose :where(a.lotus-heading-anchor) :where(svg) {
  inline-size: 0.58em;
  block-size: 0.58em;
}

@media (max-width: 1023px) {
  .prose :where(h2, h3, h4) > :where(a.lotus-heading-anchor) {
    display: none;
  }
}

.prose :where(a):not(:where([class~="not-prose"], [class~="not-prose"] *))  {
  text-decoration-color: color-mix(in oklab, var(--lotus-accent) 38%, transparent);
}

.prose :where(a:hover):not(:where([class~="not-prose"], [class~="not-prose"] *))  {
  text-decoration-color: var(--lotus-accent);
}

.prose code::before,
.prose code::after {
  content: "";
  display: none;
}

.prose :where(abbr[title]):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
  cursor: help;
  text-decoration: underline dotted var(--lotus-border-hover);
  text-decoration-thickness: 0.08em;
  text-underline-offset: 0.18em;
}

.prose :where(small):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
  color: var(--lotus-text-muted);
  font-size: 0.875em;
}

.prose :where(del, s):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
  color: var(--lotus-text-muted);
  text-decoration-color: var(--lotus-border-hover);
}

.prose :where(ins):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
  background: var(--lotus-accent-soft);
  border-radius: var(--lotus-radius-sm);
  color: var(--lotus-text-strong);
  padding: 0.075em 0.2em;
  text-decoration: underline;
  text-decoration-color: color-mix(in oklab, var(--lotus-accent) 48%, transparent);
  text-underline-offset: 0.18em;
}

.prose :where(mark):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
  background: color-mix(
    in oklab,
    var(--lotus-color-yellow-400, oklch(0.852 0.199 91.936)) 34%,
    transparent
  );
  border-radius: var(--lotus-radius-sm);
  color: var(--lotus-text-strong);
  padding: 0.075em 0.25em;
}

.prose :where(samp, var):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
  font-family: var(--lotus-prose-font-mono);
  font-size: 0.875em;
}

.prose :where(samp):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
  color: var(--lotus-text-strong);
}

.prose :where(var):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
  color: var(--lotus-accent);
  font-style: italic;
}

.prose :where(q):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
  color: var(--lotus-text-strong);
}

.prose :where(cite):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
  color: var(--lotus-text-muted);
  font-style: italic;
}

em:lang(zh) {
  font-style: normal;
  text-decoration-color: color-mix(in oklab, var(--lotus-accent) 62%, transparent);
  text-decoration-line: underline;
  text-decoration-skip-ink: auto;
  text-decoration-thickness: 0.1em;
  text-underline-offset: 0.2em;
}
