body {
	width: 80%;
	margin: 0 auto;
	font-family: Helvetica, Arial, sans-serif;
	line-height: 1.6;
}

h2,
h3,
p {
	margin: 0 0 0.5em;
}

/* ---- */

header {
	margin-bottom: 1em;
}

header img {
	display: block;
	margin: 0 auto;
	width: 10em;
}
@media (min-width: 35em) { /* XXX: magic number */
	header img {
		float: right;
		margin-left: 2em;
	}
}

header h1,
header p:not(.tagline) {
	display: inline-block;
	font-variant: small-caps;
}

header h1 {
	margin: 0 0.4em 0 0;
}

header .tagline {
	margin-left: 1em;
	font-style: italic;
}

/* front page */

.front-page {
	text-align: center;
}

.front-page header img {
	height: 15em;
	max-height: 80vh;
	margin: 1em auto;
	/* neutralize defaults */
	float: none;
	width: auto;
}

.front-page header h1 {
	margin-bottom: -0.5em; /* account for lack of descenders due to `small-caps` */
	/* neutralize defaults */
	margin-right: 0;
}

.front-page header p:not(.tagline) {
	margin-bottom: 0; /* account for lack of descenders due to `small-caps` */
	/* neutralize defaults */
	display: block;
}

.front-page header .tagline {
	/* neutralize defaults */
	margin-left: 0;
}

.front-page main ul {
	display: flex;
	justify-content: center;
	margin: 3em 0;
	padding: 0;
	list-style-type: none;
}

.front-page main li {
	margin: 1em;
	white-space: nowrap;
}

.front-page main img {
	display: block;
	max-height: 5em;
	margin: 0 auto;
}

.front-page main a {
	text-decoration: none;
}

/* positions */

.pos-pt,
.pos-oc,
.pos-ic,
.pos-tl {
	border-radius: 5px;
	padding: 2px 5px 0;
}

.pos-pt {
	background-color: coral;
}

.pos-oc {
	background-color: lightblue;
}

.pos-ic {
	background-color: lightgray;
}

.pos-tl {
	background-color: yellow;
}

/* jump log */

.log,
.log ol {
	padding-left: 0;
	list-style-type: none;
}

.log li {
	margin: 0 0 0.5em;
}

/* jump log: groups */

.log > li {
	margin-bottom: 1em;
}
.log > li.summary {
	border: 1px solid #DDD;
	border-radius: 5px;
	padding: 0.2em 0.5em;
	background-color: #F5F5F5;
}

.log > li:before {
	content: "📆 ";
}
.log > li.summary:before {
	content: "☝️🗒️";
	display: block;
	font-size: 1.5em;
}

.log > li > .desc {
	margin-left: 1.5em;
}

.log > li time {
	display: inline-block;
	margin: 0 0 0.5em;
	font-size: 1.1em; /* corresponds to `h3`'s font size */
	color: #777;
}

.log > li.summary ul {
	padding-left: 1em;
	list-style-type: disc;
}

/* jump log: entries */

.log ol {
	margin-left: 1.5em;
}

.log ol > li {
	padding-left: 3em; /* corresponds to `:before`'s width */
}

.log ol > li:before { /* XXX: vertical alignment mismatch */
	content: "#" attr(value);
	float: left;
	width: 3em;
	margin-left: -3em; /* corresponds to width */
	font-size: 1.1em; /* corresponds to `h3`'s font size */
	color: #777;
}

.log ol h3 {
	margin: 0;
	font-size: 1.1em;
}

.log ol ul {
	padding-left: 1.5em;
	list-style-type: disc;
}

.log ol > li.is-favorite h3:after {
	content: " ⭐️";
}
