/* ===================== */
/* PROSE / TYPOGRAPHY     */
/* Loaded separately to  */
/* bypass Tailwind CLI    */
/* ===================== */
.prose {
  color: #334155;
  max-width: 65ch;
}
.prose [class~="lead"] {
  color: #475569;
  font-size: 1.25em;
  line-height: 1.6;
  margin-top: 1.2em;
  margin-bottom: 1.2em;
}
.prose a {
  color: #4f46e5;
  text-decoration: underline;
  font-weight: 500;
}
.prose a:hover {
  color: #4338ca;
}
.prose strong {
  color: #0f172a;
  font-weight: 600;
}
.prose em {
  font-style: italic;
}
.prose blockquote {
  border-left: 3px solid #6366f1;
  padding-left: 1.25em;
  font-style: italic;
  color: #64748b;
  margin: 1.5em 0;
}
.prose h1 {
  color: #0f172a;
  font-size: 2.25em;
  font-weight: 800;
  line-height: 1.2;
  margin-top: 0;
  margin-bottom: 0.5em;
  letter-spacing: -0.025em;
}
.prose h2 {
  color: #0f172a;
  font-size: 1.5em;
  font-weight: 700;
  line-height: 1.3;
  margin-top: 2em;
  margin-bottom: 0.75em;
  padding-bottom: 0.5em;
  border-bottom: 1px solid #e2e8f0;
  letter-spacing: -0.02em;
}
.prose h3 {
  color: #0f172a;
  font-size: 1.25em;
  font-weight: 600;
  line-height: 1.4;
  margin-top: 1.6em;
  margin-bottom: 0.5em;
}
.prose h4 {
  color: #0f172a;
  font-size: 1em;
  font-weight: 600;
  line-height: 1.5;
  margin-top: 1.5em;
  margin-bottom: 0.5em;
}
.prose p {
  margin-top: 1.25em;
  margin-bottom: 1.25em;
  line-height: 1.75;
}
.prose ul {
  list-style-type: disc;
  padding-left: 1.625em;
  margin-top: 1.25em;
  margin-bottom: 1.25em;
}
.prose ol {
  list-style-type: decimal;
  padding-left: 1.625em;
  margin-top: 1.25em;
  margin-bottom: 1.25em;
}
.prose li {
  margin-top: 0.5em;
  margin-bottom: 0.5em;
  line-height: 1.75;
}
.prose li > p {
  margin-top: 0.5em;
  margin-bottom: 0.5em;
}
.prose figure {
  margin-top: 2em;
  margin-bottom: 2em;
}
.prose img {
  margin-top: 1.5em;
  margin-bottom: 1.5em;
  border-radius: 0.5rem;
}
.prose figure > img {
  margin-top: 0;
  margin-bottom: 0;
}
.prose video {
  margin-top: 1.5em;
  margin-bottom: 1.5em;
}
.prose hr {
  border: 0;
  border-top: 1px solid #e2e8f0;
  margin: 2.5em 0;
}
.prose pre {
  overflow-x: auto;
  font-size: 0.875em;
  line-height: 1.7;
  margin-top: 1.6em;
  margin-bottom: 1.6em;
  border-radius: 0.5rem;
  padding: 1em 1.25em;
}
.prose code {
  font-size: 0.875em;
  font-family: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace;
}
.prose :where(code):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
  background-color: #f1f5f9;
  padding: 0.2em 0.4em;
  border-radius: 0.25rem;
  font-weight: 500;
}
.prose :where(pre code):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
  background-color: transparent;
  padding: 0;
  border-radius: 0;
  font-weight: inherit;
}
.prose table {
  width: 100%;
  margin-top: 2em;
  margin-bottom: 2em;
  font-size: 0.875em;
}
.prose thead {
  border-bottom: 2px solid #e2e8f0;
}
.prose th {
  text-align: left;
  font-weight: 600;
  padding: 0.75em 1em;
}
.prose td {
  padding: 0.75em 1em;
  border-bottom: 1px solid #f1f5f9;
}
.prose thead th:first-child {
  padding-left: 0;
}
.prose thead th:last-child {
  padding-right: 0;
}
.prose tbody td:first-child {
  padding-left: 0;
}
.prose tbody td:last-child {
  padding-right: 0;
}
.prose > :first-child {
  margin-top: 0;
}
.prose > :last-child {
  margin-bottom: 0;
}

/* Dark mode prose */
.dark .prose {
  color: #cbd5e1;
}
.dark .prose [class~="lead"] {
  color: #94a3b8;
}
.dark .prose a {
  color: #818cf8;
}
.dark .prose a:hover {
  color: #a5b4fc;
}
.dark .prose strong {
  color: #f8fafc;
}
.dark .prose blockquote {
  color: #94a3b8;
  border-left-color: #6366f1;
}
.dark .prose h1,
.dark .prose h2,
.dark .prose h3,
.dark .prose h4 {
  color: #f1f5f9;
}
.dark .prose h2 {
  border-bottom-color: #334155;
}
.dark .prose code {
  color: #818cf8;
}
.dark .prose :where(code):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
  background-color: #1e293b;
  color: #e2e8f0;
}
.dark .prose pre {
  background-color: #0f172a;
}
.dark .prose hr {
  border-top-color: #334155;
}
.dark .prose thead {
  border-bottom-color: #334155;
}
.dark .prose th {
  color: #f1f5f9;
}
.dark .prose td {
  border-bottom-color: #1e293b;
}

/* Prose size variants */
.prose-lg {
  font-size: 1.125rem;
  line-height: 1.75;
}
.prose-lg p {
  margin-top: 1.333em;
  margin-bottom: 1.333em;
}
.prose-lg h1 {
  font-size: 2.5em;
}
.prose-lg h2 {
  font-size: 1.667em;
}
.prose-lg h3 {
  font-size: 1.333em;
}
.prose-lg img {
  margin-top: 1.777em;
  margin-bottom: 1.777em;
}
.prose-lg figure > img {
  margin-top: 0;
  margin-bottom: 0;
}
.prose-lg li {
  margin-top: 0.667em;
  margin-bottom: 0.667em;
}
.prose-lg pre {
  font-size: 0.8333333em;
}
.prose-lg code {
  font-size: 0.8333333em;
}
.prose-lg h2:first-child {
  margin-top: 0;
}
.prose-lg h3:first-child {
  margin-top: 0;
}
.prose-lg > :first-child {
  margin-top: 0;
}
.prose-lg > :last-child {
  margin-bottom: 0;
}

.prose-zinc {
  --tw-prose-body: #3f3f46;
  --tw-prose-headings: #18181b;
  --tw-prose-lead: #52525b;
  --tw-prose-links: #4f46e5;
  --tw-prose-bold: #18181b;
  --tw-prose-counters: #71717a;
  --tw-prose-bullets: #a1a1aa;
  --tw-prose-hr: #e4e4e7;
  --tw-prose-quotes: #18181b;
  --tw-prose-quote-borders: #6366f1;
  --tw-prose-captions: #71717a;
  --tw-prose-code: #18181b;
  --tw-prose-pre-code: #e4e4e7;
  --tw-prose-pre-bg: #18181b;
  --tw-prose-th-borders: #d4d4d8;
  --tw-prose-td-borders: #e4e4e7;
}
.dark .prose-zinc {
  --tw-prose-body: #d4d4d8;
  --tw-prose-headings: #f4f4f5;
  --tw-prose-lead: #a1a1aa;
  --tw-prose-links: #818cf8;
  --tw-prose-bold: #f4f4f5;
  --tw-prose-counters: #a1a1aa;
  --tw-prose-bullets: #71717a;
  --tw-prose-hr: #27272a;
  --tw-prose-quotes: #f4f4f5;
  --tw-prose-quote-borders: #6366f1;
  --tw-prose-captions: #a1a1aa;
  --tw-prose-code: #f4f4f5;
  --tw-prose-pre-code: #d4d4d8;
  --tw-prose-pre-bg: #09090b;
  --tw-prose-th-borders: #3f3f46;
  --tw-prose-td-borders: #27272a;
}
.prose-invert {
  --tw-prose-body: var(--tw-prose-invert-body, #d4d4d8);
  --tw-prose-headings: var(--tw-prose-invert-headings, #f4f4f5);
  --tw-prose-lead: var(--tw-prose-invert-lead, #a1a1aa);
  --tw-prose-links: var(--tw-prose-invert-links, #818cf8);
  --tw-prose-bold: var(--tw-prose-invert-bold, #f4f4f5);
  --tw-prose-counters: var(--tw-prose-invert-counters, #a1a1aa);
  --tw-prose-bullets: var(--tw-prose-invert-bullets, #71717a);
  --tw-prose-hr: var(--tw-prose-invert-hr, #27272a);
  --tw-prose-quotes: var(--tw-prose-invert-quotes, #f4f4f5);
  --tw-prose-quote-borders: var(--tw-prose-invert-quote-borders, #6366f1);
  --tw-prose-captions: var(--tw-prose-invert-captions, #a1a1aa);
  --tw-prose-code: var(--tw-prose-invert-code, #f4f4f5);
  --tw-prose-pre-code: var(--tw-prose-invert-pre-code, #d4d4d8);
  --tw-prose-pre-bg: var(--tw-prose-invert-pre-bg, #09090b);
  --tw-prose-th-borders: var(--tw-prose-invert-th-borders, #3f3f46);
  --tw-prose-td-borders: var(--tw-prose-invert-td-borders, #27272a);
}
.prose-invert a {
  color: var(--tw-prose-links);
}
.prose-invert strong {
  color: var(--tw-prose-bold);
}
.prose-invert blockquote {
  color: var(--tw-prose-quotes);
  border-left-color: var(--tw-prose-quote-borders);
}
.prose-invert h1,
.prose-invert h2,
.prose-invert h3,
.prose-invert h4 {
  color: var(--tw-prose-headings);
}
.prose-invert h2 {
  border-bottom-color: var(--tw-prose-hr);
}
.prose-invert code {
  color: var(--tw-prose-code);
}
.prose-invert :where(code):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
  background-color: var(--tw-prose-pre-bg);
  color: var(--tw-prose-pre-code);
}
.prose-invert hr {
  border-top-color: var(--tw-prose-hr);
}
.prose-invert thead {
  border-bottom-color: var(--tw-prose-th-borders);
}
.prose-invert th {
  color: var(--tw-prose-headings);
}
.prose-invert td {
  border-bottom-color: var(--tw-prose-td-borders);
}
