// Content h1 { max-width: var(--content-width); margin: 0 0 var(--space-4); color: var(--text-bright); } p { margin-top: 0; } main > article { max-width: var(--content-width); margin: 0 auto; } main > article > header { margin: 0; padding: 2.25rem 0 var(--space-6); } main > article > header :is(p, .inline-list) { margin: 0.2rem 0 0; color: var(--text-muted); font-size: 0.9rem; } .inline-list { display: flex; flex-wrap: wrap; gap: 0; margin: 0; padding: 0; list-style: none; > li:not(:last-child)::after { margin-right: 0.35em; content: " ยท"; } } // Style details as a link details.link-details { margin: 0; padding: 0; border: 0; display: inline; summary { display: inline; width: fit-content; list-style: none; color: var(--links); text-decoration-line: underline; text-decoration-color: color-mix(in srgb, currentColor 65%, transparent); text-decoration-thickness: var(--rule-width); text-underline-offset: 0.14em; transition: color var(--duration-normal) var(--ease-linear), text-decoration-color var(--duration-normal) var(--ease-linear), text-decoration-thickness var(--duration-normal) var(--ease-linear), text-underline-offset var(--duration-normal) var(--ease-out); &:hover, &:focus-visible { color: var(--primary); text-decoration-color: var(--primary); text-decoration-thickness: 2px; text-underline-offset: 0.2em; } } &[open] { display: contents; } } main > article > section > p { margin-bottom: 1.15rem; } main > article > section > :is(h2, h3) { color: var(--primary); } main > article > section > :is(h2, h3, h4) { font-weight: 700; } main > article > section > h2 { margin: 2.6rem 0 var(--space-4); padding-top: var(--space-4); border-top: var(--rule-width) solid var(--border); border-image: var(--starlight-rule); font-family: var(--font-body); font-size: 2rem; line-height: 1.2; &:first-of-type { margin-top: 0; padding-top: 0; border-top: 0; border-image: none; } } main > article > section > h3 { margin: 2rem 0 0.7rem; font-size: 1.4rem; line-height: 1.35; } main > article > section > h4 { margin: 1.6rem 0 0.55rem; color: var(--text-main); font-size: 1.05rem; line-height: 1.4; } main > article > section > ul { margin: var(--space-4) 0 var(--space-6); padding-left: 1.35rem; li + li { margin-top: 0.7rem; } } // Table of contents: delimited by starlight rules like the site's other // structural blocks, rather than as a filled panel (which here reads as code). .toc { margin: 0 0 var(--space-8); padding: var(--space-3) 0; border: 0; border-top: var(--rule-width) solid var(--border); border-bottom: var(--rule-width) solid var(--border); border-image: var(--starlight-rule); > summary { color: var(--text-muted); font-size: 0.9rem; line-height: 1.5; transition: color var(--duration-normal) var(--ease-linear); &:hover, &:focus-visible { color: var(--primary); } } &[open] > summary { margin-bottom: var(--space-3); } ol { margin: 0; padding-left: 0; counter-reset: toc; list-style: none; } ol ol { padding-left: var(--space-4); } li { margin: 0.15rem 0; counter-increment: toc; font-size: 0.95rem; line-height: 1.4; } // Flex keeps wrapped entries hanging-indented past their number. li > a { display: flex; gap: 0.5em; width: fit-content; color: var(--text-main); text-decoration: none; &::before { flex: none; min-width: 1.7em; color: var(--text-muted); content: counters(toc, ".") ". "; font-family: var(--font-mono); font-size: 0.85em; transition: color var(--duration-normal) var(--ease-linear); } &:hover, &:focus-visible { color: var(--primary); text-decoration: underline; &::before { color: var(--primary); } } } } // Keep ambient stars clear of article content while softly feathering the edges. article > section { // Wide children provide their own scrollers; don't let them widen the page. overflow-x: clip; overflow-clip-margin: var(--space-2); background: var(--background-body); box-shadow: 0 0 1.5rem 0.5rem var(--background-body); } .document > section { max-width: var(--document-width); margin-inline: auto; }