* {
	box-sizing: border-box;
}
html {
	background: #eee;
	color: #444;
	font-family: "Gentium Basic", serif;
	font-size: 16px;
	min-height: 100vh;
	display: grid;
	grid-template-rows: 1fr auto 3fr;
}
body {
	grid-row: 2;
	max-width: 34em;
	margin: auto;
	padding: 2em;
	line-height: 1.5em;
}
h1, p {
	margin: 0;
}
a {
	color: inherit;
	text-decoration: none;
	border-bottom: 1px solid #bbb;
}
a:hover {
	color: #08f;
	border-bottom-color: #08f;
}
h1 a.p-name {
	border-bottom: none;
}
h1 a.p-name:hover {
	color: inherit;
	cursor: default;
}
header {
	margin: 0 0 1em;
}
h1 {
	font-weight: normal;
	font-size: 2em;
}
h1, .ipa, .dfn {
	text-align: center;
}
ruby, rp, rt {
	display: inline;
	font: inherit;
	appearance: auto;
}
.ipa {
	display: block;
	font-size: 1rem;
	line-height: inherit;
	color: #888;
	margin: 0 1em;
	letter-spacing: 0.05em;
}
img.profile {
	display: block;
	margin: 0 auto 1em;
	width: 6em;
	max-width: 50%;
	height: auto;
	aspect-ratio: 1;
	border-radius: 50%;
	border: 1px solid #666;
	shape-outside: margin-box;
}

.icon {
	display: inline-block;
	width: 1em;
	height: 1em;
	stroke-width: 0;
	stroke: currentColor;
	fill: currentColor;
}

.contact {
	display: flex;
	flex-wrap: wrap;
	list-style-type: none;
	margin: 1em -1em;
	padding: 0;
}
.contact li {
	width: 50%;
	list-style-type: none;
	display: inline-block;
	padding: 0.5em 1em;
	margin: 0;
}
.contact a {
	display: inline-block;
	margin-left: 2.4em;
	height: 1.5em;
}
.contact a .icon {
	width: 1.7em;
	height: 1.7em;
	vertical-align: bottom;
	margin: 0 0.5em 0 -2.4em;
}
.contact a:hover {
	color: #08f;
}

#contact-section footer {
	font-size: 0.8em;
	line-height: 1.5em;
}

code {
	font-size: 0.8em;
}

@media (prefers-color-scheme: dark) {
	html {
		background: #333;
		color: #aaa;
	}
	img.profile {
		border-color: #999;
	}
	a {
		border-bottom: 1px solid #555;
	}
}

@media (min-width: 400px) {
	html {
		font-size: 18px;
	}
}

@media (min-width: 480px) {
	h1 {
		margin-right: 0.5em;
	}
	h1, .ipa, .dfn {
		text-align: left;
	}
	img.profile {
		float: right;
		margin: -0.5em 0em 0.5em 0.5em;
		max-width: 20%;
	}
	.ipa {
		display: inline;
	}
}
@media (min-width: 600px) {
	.contact li {
		width: 33.3%;
	}
}
@media (min-width: 800px) {
	html {
		font-size: 20px;
	}
}
