/* Prose styles for article content */
.prose {
  color: var(--color-zinc-600);
  line-height: 1.75;
  transition: color 0.3s ease;
}

.prose h1,
.prose h2,
.prose h3,
.prose h4,
.prose h5,
.prose h6 {
  color: var(--color-zinc-800);
  font-weight: 600;
  transition: color 0.3s ease;
}

.prose h1 {
  font-size: 2.25rem;
  line-height: 2.5rem;
  margin-top: 0;
  margin-bottom: 2rem;
}

.prose h2 {
  font-size: 1.875rem;
  line-height: 2.25rem;
  margin-top: 2rem;
  margin-bottom: 1rem;
}

.prose h3 {
  font-size: 1.5rem;
  line-height: 2rem;
  margin-top: 1.5rem;
  margin-bottom: 0.75rem;
}

.prose p {
  margin-top: 1.25rem;
  margin-bottom: 1.25rem;
}

.prose p:first-child {
  margin-top: 0;
}

.prose p:last-child {
  margin-bottom: 0;
}

.prose a {
  color: var(--color-zinc-800);
  text-decoration: underline;
  text-decoration-color: var(--color-zinc-400);
  text-underline-offset: 0.25rem;
  transition:
    color 0.3s ease,
    text-decoration-color 0.3s ease;
}

.prose a:hover {
  color: var(--color-link-hover);
  text-decoration-color: var(--color-link-hover);
}

.prose strong {
  color: var(--color-zinc-800);
  font-weight: 600;
  transition: color 0.3s ease;
}

.dark .prose strong {
  color: var(--color-zinc-100);
}

.prose em {
  color: var(--color-zinc-700);
  font-style: italic;
  transition: color 0.3s ease;
}

.prose code {
  color: var(--color-zinc-800);
  background-color: var(--color-zinc-100);
  padding: 0.125rem 0.25rem;
  border-radius: 0.25rem;
  font-size: 0.875em;
  font-weight: 500;
  transition:
    color 0.3s ease,
    background-color 0.3s ease;
}

.prose pre {
  background-color: var(--color-zinc-100);
  border-radius: 0.5rem;
  padding: 1rem;
  overflow-x: auto;
  margin-top: 1.5rem;
  margin-bottom: 1.5rem;
  transition: background-color 0.3s ease;
}

.prose pre code {
  background-color: transparent;
  padding: 0;
  border-radius: 0;
  color: inherit;
}

.prose ul,
.prose ol {
  margin-top: 1.25rem;
  margin-bottom: 1.25rem;
  padding-left: 1.625rem;
}

.prose li {
  margin-top: 0.5rem;
  margin-bottom: 0.5rem;
}

.prose li p {
  margin-top: 0.75rem;
  margin-bottom: 0.75rem;
}

.prose blockquote {
  font-style: italic;
  border-left: 4px solid var(--color-zinc-200);
  padding-left: 1rem;
  margin-top: 1.5rem;
  margin-bottom: 1.5rem;
  color: var(--color-zinc-600);
  transition:
    border-color 0.3s ease,
    color 0.3s ease;
}

.prose hr {
  border: none;
  height: 1px;
  background-color: var(--color-zinc-200);
  margin-top: 3rem;
  margin-bottom: 3rem;
  transition: background-color 0.3s ease;
}


.prose img { display: block; border-radius: .75rem; width: auto; max-width: 100%; height: auto; margin: 2rem 0; }
.prose figure { margin: 2rem 0; }
.prose figure picture { display: block; max-width: 100%; margin: 0 auto; }
.prose figure picture img { width: 100%; margin: 0; }
.prose figure > img { margin: 0 auto; }

.prose ul { list-style: disc; }
.prose ol { list-style: decimal; }
.prose ul ul { list-style: circle; }
.prose figure { max-width: 100%; }
.prose figcaption { color: var(--color-zinc-500); font-size: .875rem; margin-top: .5rem; text-align: center; }
.prose .callout { margin: 1.5rem 0; padding: 1rem; border: 1px solid var(--color-zinc-200); border-radius: .5rem; background: var(--color-zinc-100); }
.prose .interactive-demo { margin: 2rem 0; padding: 1rem; border: 1px solid var(--color-zinc-200); border-radius: .5rem; }

