html, body {
	font-size: 16px;
}

body {
	max-width: min(80ch, 100%);
	margin: 2rem auto;
	padding: 1rem;
	font-family: system-ui, sans-serif;
	width: fit-content;
    box-sizing: border-box;
}

p {
	line-height: 1.5;
}

li {
	line-height: 1.5;
}

.summary {
	padding: 1rem;
	margin: 1rem 0;
	background-color: #fafafa;	
}

.callout {
	font-size: 115%;
	font-weight: bold;
}

.table-wrapper {
	max-width: 100%;
	overflow: visible;
	overflow-x: scroll;
	border: 1px solid CanvasText;
}

.table-wrapper table {
	position: relative;
	width: 120ch;
}

table {
	border-collapse: collapse;
	border-spacing: 0;
}

th {
	background: #fafafa;
	padding: 1rem;
	text-align: left;
}

td {
	padding: 0 1rem;
	text-anchor: left;
	vertical-align: top;
}

figure {
	margin: 2rem;
}

figure img {
	max-width: 100%;
}

figure > p {
	margin: 0;
}

p img {
	max-width: 100%;
}

figcaption {
	font-size: .875rem;
	font-style: italic;
}

figcaption > p {
	margin-top: 0;
}

/* Counters */

body {
	counter-reset: section 1 subsection 0;
}

h2::before {
	counter-increment: section;
	content: counter(section) ". ";
}

h2 {
	counter-reset: subsection;
}

.preface h2::before {
	content: "";
}

h3::before {
	counter-increment: subsection;
	content: counter(section) "." counter(subsection) ". ";
}

.preface h3::before {
	content: "";
}

[data-reset="counters"] {
	counter-reset: section 0 subsection 0;
}
