body {
	display: grid;
	grid-template-areas:
		"sidebar header"
		"sidebar main"
		"footer footer";
	grid-gap: 0 1em;
	max-width: 112ch;
	margin: 10px auto;
	padding: 0 1ch;
	grid-template-columns: 250px 1fr;
	grid-template-rows: min-content 1fr;
	background: white;
	font-family: "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro",Osaka, "メイリオ", Meiryo, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
}
body > main { grid-area: main }
body > header { grid-area: header; border-bottom: 1px solid; padding-bottom: 1em }
body > footer { grid-area: footer; }

body > aside {
	grid-area: sidebar;
	border-right: 1px solid; }
header h1 { margin: 0 }

h1, h2, h3, h4, h5, h6, header .name {
	font-family: "Palatino Linotype", "Book Antiqua", Palatino, serif;
	font-weight: lighter;
}

article h2, article h3, article h4, article h5, article h6 {
	border-bottom: 1px solid;
}

main article {
	text-align: justify;
	hyphens: auto;
	-moz-hyphens: auto }
main article p + p { text-indent: 30px }
main artcle li { margin-top: 0; margin-bottom: 0 }
main img, main video { max-width: 100% ; border: 1px solid }
h1 { text-align: left }
figure {
	margin: 1rem
	hyphens: none;
	-moz-hyphens: none }
main figure {
	display: block;
	text-align: center;
	margin: auto }
figure img, figure video {
	max-width: calc(100% - 2px);
	display: block;
	border: 1px solid;
	margin: auto;
	height: auto }

.avatar img {
	max-width: 50%;
	border: 1px solid;
	border-radius: 10px;
	float: right;
	height: auto;
	margin: 0 0 10px 10px }
main { max-width: 100%; overflow: hidden }
article { max-width: 100%; line-height: 1.5 }

main article.post > p:first-of-type:first-letter {
	font-size: 3.9rem;
	margin: 0;
	float: left;
	margin-top: .15rem;
	margin-right: .25rem;
	line-height: 1 }

ul#article-data {
	float: right;
	text-align: right;
	margin-left: 5px }

ul .name { font-size: 2rem }

.rss {
	display: inline-block;
	width: 1.2rem;
	color: #6a737d;
}

ul .title:before {
	content: url('/static/icon/wakaba.svg');
	margin: 0 10px 0 0;
	display: inline-block;
	width: 1rem;
	color: #6a737d;
}
ul .jp-name:before {
	content: url('/static/icon/japan.svg');
	margin: 0 10px 0 0;
	display: inline-block;
	width: 1rem;
	color: #6a737d;
}
ul .location:before {
	content: url('/static/icon/nc.svg');
	margin: 0 10px 0 0;
	display: inline-block;
	width: 1rem;
	color: #6a737d;
}
ul .email:before {
	content: url('/static/icon/email.svg');
	margin: 0 10px 0 0;
	display: inline-block;
	width: 1rem;
	color: #6a737d;
}
ul .gpg:before {
	content: url('/static/icon/padlock.svg');
	margin: 0 10px 0 0;
	display: inline-block;
	width: 1rem;
	color: #6a737d;
}

ul .profiles img { width: 1.5rem }
ul .profiles li { padding-left: 5px }
ul .profiles li:first-child { padding-left: 0 }

ul ul.flat { display: inline; list-style: none; padding: 0; margin: 0; }

ul .twitter, ul .linkedin, ul .github {
	list-style: none;
}
ul .linkedin:before {
	content: url('/static/icon/work.svg');
	margin: 0 10px 0 0;
	display: inline-block;
	width: 1rem;
	color: #6a737d;
}
ul .github:before {
	content: url('/static/icon/github.svg');
	margin: 0 10px 0 0;
	display: inline-block;
	width: 1rem;
	color: #6a737d;
}
ul .twitter:before {
	content: url('/static/icon/twitter.svg');
	margin: 0 10px 0 0;
	display: inline-block;
	width: 1rem;
	color: #6a737d;
}

dl.posts dt:before {
	content: url('/static/icon/article.svg');
	margin: 0 10px 0 0;
	display: inline-block;
	width: 1rem;
	color: #61737d;
}

aside ul { list-style: upper-roman }

.subtext { color: #6c6c6c; font-size: 0.8rem }

pre {
	display: block;
	padding: 5px;
	background-color: cornsilk;
	border-radius: 5px;
	border: 2px solid cornflowerblue;
	padding: 15px 10px;
	max-width: 100%;
	tab-size: 2;
	-moz-tab-size: 2;
	overflow-x: auto;
	line-height: initial;
	font-family: "Andale Mono", Hack, "Lucida Console", Monaco, monospace;
	font-size: 0.9rem;
}

a,
a:visited { outline: none; color: inherit }
a:hover { text-decoration: none }

ul.flat li { display: inline }

ul.plain { list-style: none; padding: 0; margin: 0 }

.flat-nav {
	text-align: right;
}
.flat-nav a {
	padding: 0 5px;
	background-color: white;
	border-style: solid;
	border-width: 1px 1px 1px 0;
	text-decoration: none;
}
.flat-nav a:first-child {
	border-width: 1px;
}

#flair {
	float: right;
	width: 100px;

	/* Copensation for margins + hovering height */
	margin: 10px;

	animation: hover 3s ease-in-out infinite;
}

#flair {
	transition: opacity 4s;
}

@media only screen and (max-width: 800px) {
	body {
		display: block;
	}
	main article {
		text-align: left;
	}
	.sidebar { border-left: 0 }
}

/* Animations */
	@keyframes hover {
		50% { transform: translateY(10px) }
	}
