:root {
	--theme-color: #8EC2E8;
	--link-color: #2B8ED4;
}
html {
	box-sizing: border-box;
}

body {
	font: large/1.6 -apple-system, BlinkMacSystemFont, Helvetica, "Microsoft Yahei", ui-sans-serif, sans-serif;
	color: #333;
	hanging-punctuation: first allow-end;
}

*, *:before, *:after { 
	box-sizing: inherit;
	margin: 0;
	padding: 0;
}

img.logo {
	display: block;
	width: 6rem;
	height: 6rem;
	margin: auto;
}

header[role=banner] {
	margin: auto;
	background: var(--theme-color);
}

header[role=banner] .about {
	color: #fff;
	text-align: center;
	padding: .75rem 1.5rem;
	max-width: 35rem;
	margin: auto;
}

footer { font-size: .875em; }

footer[role=contentinfo] {
	color: #ccc;
	text-align: center;
	margin: 6rem 0 1.5rem;
}

footer[role=contentinfo] a {
	color: inherit;
}

nav {
	display: block;
	text-align: center;
	color: #fff;
	background: var(--theme-color);
	padding: .75rem;
	font-size: .875em;
}

nav a { color: inherit; border: solid 1px #fff; border-radius: .375rem; padding: .375rem; }
nav a:hover { text-decoration: none; background: #fff; color: var(--link-color); }
nav a+a { margin-left: 1em; }

main {
	margin: 0 auto;
	padding: env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);
}

main.home {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(22.5rem, 1fr));
}

.content { width: 100%; max-width: 50rem; margin: 0 auto; padding: 0 1.5rem; word-wrap: break-word; }
.content header { text-align: center; }
.content footer { text-align: center; color: #999; }
.content h1 { font-size: 1.5em; font-weight: bold; margin: 3rem 0 1.5rem; line-height: 1.2; color: var(--link-color); }
.content h1 span {
	display: inline-block;
	color: #fff;
	background-color: var(--link-color);
	border-radius: 0.5em;
	padding: 0 .25em;
	min-width: 2em;
	text-align: center;
}
.home .content h1 { text-align: start; }
.content h2 { font-size: 1.4em; font-weight: bold; margin: 3rem 0 1.5rem; }
.content h2 { border-left: .5rem solid var(--theme-color); padding-left: 1rem; margin-left: -1.5rem; }
.content h3 { font-size: 1.125em; font-weight: normal; margin: 1.5rem 0 1.5rem; }
.content p  { margin: 1rem 0; }

.content ul,
.content ol { padding-left: 2em; margin: 1.5rem 0; }
.content hr { border: none; border-top: dashed 1px #ccc; }

.content ul { list-style: disc; }
.content ul li::marker { color: var(--theme-color); }

a { text-decoration: none; color: var(--link-color); }
a:hover { text-decoration: underline; }
li small { line-height: 1; }

.player { text-align: right; }
.player audio { width: 100%; }

a.icon-button {
	font-size: .875em;
	border: solid 1px var(--link-color);
	border-radius: .375rem;
	padding: .1875rem .375rem;
	display: inline-flex;
	align-items: center;
	text-decoration: none;
}
a.icon-button:hover {
	color: #fff;
	background: var(--link-color);
}
a.icon-button svg {
	height: 1.2em;
	width: 1.2em;
}