@font-face {
	font-family: 'Dinkie';
	src: url('/assets/DinkieBitmap-9px.woff2') format('woff2');
}

@font-face {
	font-family: 'Dinkie';
	font-style: italic;
	src: url('/assets/DinkieBitmap-9pxItalic.woff2') format('woff2');
}

@font-face {
	font-family: 'Dinkie Code';
	src: url('/assets/DinkieBitmap-9pxCode.woff2') format('woff2');
}

:root {
	--theme-color: #FF7E00;
	--heading-font: 'Dinkie', ui-monospace, Menlo, Consolas, monospace, -apple-system, BlinkMacSystemFont, "Microsoft Yahei";
	--font: ui-sans-serif, -apple-system, BlinkMacSystemFont, Helvetica, "Microsoft Yahei", sans-serif;
}

html {
	box-sizing: border-box;
	font-size: 16px;
}

body {
	font-family: var(--font);
	line-height: 1.75rem;
	color: #333;
	hanging-punctuation: first allow-end;
}

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

pre,
code { font-family: ui-monospace, Menlo, Consolas, monospace; }
blockquote, pre { background-color: #ffe; padding: 0 0.5em; }

ul { list-style-type: square; }

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

img.banner {
	display: block;
	margin: auto;
	max-width: 100%;
	max-height: 7.5rem;
}

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

footer { font-size: 0.75rem; }

footer[role=contentinfo] {
	color: #CCC;
	text-align: center;
	padding: 6rem 0 1.5rem;
}
footer[role=contentinfo] a { color: inherit; }

nav {
	text-align: center;
	color: #FFF;
	background: var(--theme-color);
	padding: .75rem;
}

nav a { color: inherit; border: solid 1px #fff; padding: 5px; }
nav a:hover { text-decoration: none; background: #fff; color: var(--theme-color); }

main {
	margin: 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));
}

@media (max-width: 600px) { 
	main.home { display: block; }
}

.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; font-size: 0.875rem; }
.content h1 { font-size: 1.375rem; font-weight: normal; margin: 3rem 0 1.5rem; }
.content h2 { font-size: 1.250rem; font-weight: normal; margin: 3rem 0 1.5rem; }
.content h3 { font-size: 1.125rem; font-weight: normal; margin: 1.5rem 0 1.5rem; }
.content h1,
.content h2,
.content h3 {
	font-family: var(--heading-font);
}
.content h2 {
	border-inline-start: solid .5rem var(--theme-color);
	padding-inline-start: 1rem;
	margin-inline-start: -1.5rem;
}
.content p  { margin: 1.5rem 0; }
.content ul,
.content ol { padding-inline-start: 2em; margin: 1.5rem 0; }
.content hr { border: none; border-top: dashed 1px #CCC; }

.content ul ul { margin: 0; }
.content img { max-width: 100%; }

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

a { text-decoration: none; color: var(--theme-color); }
a:hover { text-decoration: underline; }
figure { text-align: center; }

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

a.icon-button {
	border: solid 1px var(--theme-color);
	padding: .2rem .4rem;
	text-decoration: none;
}
a.icon-button:hover {
	color: #fff;
	background: var(--theme-color);
}
a.icon-button svg {
	height: 1em;
	width: 1em;
}