*,*::before,*::after{box-sizing:border-box}html{-moz-text-size-adjust:none;-webkit-text-size-adjust:none;text-size-adjust:none}body,h1,h2,h3,h4,p,figure,blockquote,dl,dd{margin:0}ul[role='list'],ol[role='list']{list-style:none}body{min-height:100vh;line-height:1.5}h1,h2,h3,h4,button,input,label{line-height:1.1}h1,h2,h3,h4{text-wrap:balance}a:not([class]){text-decoration-skip-ink:auto;color:currentColor}img,picture{max-width:100%;display:block}input,button,textarea,select{font:inherit}textarea:not([rows]){min-height:10em}:target{scroll-margin-block:5ex}

body {
	display: flex;
	flex-direction: column;
	min-height: 100vh;
	color: #222;
	font-size: .9rem;
	font-family: "Noto Sans JP", sans-serif;
	font-optical-sizing: auto;
	font-weight: 300;
	font-style: normal;
	line-height: 1.75;
}

.gototop {
	background-image: url("../img/bg_fa.png");
	background-position-x: right -50px;
	background-position-y: center;
	background-repeat: no-repeat;
	background-size: 320px;
	background-color: #e6e6fa;
}
.gototop > a {
	display: block;
	text-decoration: none;
}

article {
	width: 100%;
	max-width: 580px;
	margin-inline: auto;
	padding: 20px 10px;
}

h1 {
	color: #111;
	font-family: "Zen Old Mincho", serif;
	font-weight: 600;
	font-style: normal;
}
h2, h3 {
	color: #111;
	font-weight: 400;
}

p.detail {
	margin-top: 20px;
}

a {
	color: #222;
	text-decoration: none;
}

ol {
	margin: 0;
	padding: 0;
}
ol > li {
	list-style-type: none;
}

.update {
	margin-block: 20px 40px;
	list-style-type: none;
}
.update > li {
	display: flex;
	gap: 10px;
	line-height: 1.5;
}
.update li:not(:first-of-type) {
	margin-left: 20px;
	font-size: .8rem;
}

summary {
	list-style-type: none;
}

.shelf {
	margin-bottom: 10px;
}
.shelf h2 {
	padding: 20px 40px 20px 10px;
	background-color: #e6e6fa;
	border-bottom: solid 1px #222;
}
.shelf .book:last-of-type {
	padding-bottom: 20px;
}
.book {
	margin-top: 10px;
	padding-inline: 10px 0;
}
.book > h3 {
	padding: 20px 10px 10px 0;
}
.book .detail {
	font-size: 0.8rem;
	line-height: 1;
}
.book .title {
	margin-inline: 0;
}
.book .title > a {
	display: block;
	padding: 10px;
	border-bottom: solid 1px #ddd;
}
.book li:first-of-type > a {
	border-top: solid 1px #111;
}
.book .title > a:visited {
	color: #dc143c;
}
.book .title > a:hover {
	color: #6a5acd;
}
.book .title > a > span {
	display: block;
	padding-left: 0.9rem;
	font-size: 0.8rem;
	line-height: 1.2;
}


div#koibumi_wrap {
	margin-block: 20px 0;
}
textarea#koibumi_text {
	font-size: 1rem;
}
button#koibumi_btn {
	background-color: #222;
	font-size: .9rem;
	line-height: 19px;
}
div#koibumi_thanks p {
	text-align: center;
}


.footer {
	margin-top: auto;
	padding: 10px;
	border-top: solid 1px #ddd;
	text-align: center;
}