<3/products/personal-site/components/

GhostEssay.module.css

.page {
  max-width: var(--page-width);
  margin: 0 auto;
  padding: var(--page-top) var(--page-gutter) var(--page-bottom);
  overflow-wrap: break-word;
}
.body {
  display: flex;
  flex-direction: column;
  gap: var(--space-related);
}
.body > * { margin-block: 0; }
.body :is(h1, h2, h3, h4, h5, h6) {
  font-weight: 560;
  color: var(--ink-strong);
}
/* The shared 16px gap plus 16px margin gives every divider 32px per side. */
.body hr { margin: calc(var(--space-section) - var(--space-related)) 0; border: 0; border-top: 1px solid var(--hairline); }
.body ul, .body ol { padding: 0 0 0 1.25rem; }
.body ul { list-style: disc; }
.body ol { list-style: decimal; }
.body ol > li::marker { content: counter(list-item) ") "; }
.body li { padding-left: 0.75rem; }
.body li::marker { color: var(--caption); }
.body li + li { margin-top: var(--space-detail); }
.body blockquote {
  margin: 0;
  border-left: 2px solid var(--hairline);
  padding-left: 1rem;
  color: var(--accent);
}
.body img { max-width: 100%; height: auto; }
/* Text has space inside its line box; give media edges the same optical space. */
.body > p:has(> video) {
  padding-block: var(--space-media-edge);
}
.video {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: auto 1 / 1;
}
.body pre { overflow-x: auto; padding: 1rem; background: var(--code-bg); }
.files { list-style: none; padding: 0; margin: 0; }
.files li { margin: 0; padding: 0; }
.breadcrumb { margin: 0 0 var(--space-section); color: var(--caption); }
.body { min-width: 0; }
.body table { display: block; max-width: 100%; overflow-x: auto; }
.body audio { max-width: 100%; }