:root{
	--paper:#faf7f1;
	--ink:#201d1a;
	--ink-soft:#3a352d;
	--mute:#6b6559;
	--line:#e4ddd0;
	--oxblood:#6e2a2a;
	--oxblood-dark:#5c2222;
	--slate:#38495b;
	--slate-soft:#9aa7b4;
	--cream-cover:#f3ece2;
}

*, *::before, *::after{ box-sizing:border-box; }

body{
	margin:0;
	background:var(--paper);
	color:var(--ink);
	font-family:"Work Sans", Arial, Helvetica, sans-serif;
	font-size:1rem;
	line-height:1.5;
}

h1,h2,h3,p{ margin:0; }
img{ display:block; max-width:100%; }
a{ color:inherit; }

/* ---------- nav ---------- */
.nav{
	display:flex;
	justify-content:space-between;
	align-items:center;
	flex-wrap:wrap;
	gap:0.8em;
	max-width:66em;
	margin:0 auto;
	padding:1.6em 1.5em;
	border-bottom:1px solid var(--line);
}
.nav-word{
	font-family:"Fraunces", Georgia, serif;
	font-size:1.4rem;
	font-weight:600;
	text-decoration:none;
}
.nav nav ul{
	list-style:none;
	display:flex;
	gap:1.6em;
	margin:0;
	padding:0;
	font-size:0.95rem;
}
.nav nav a{
	text-decoration:none;
}
.nav nav a:hover{ text-decoration:underline; }

/* ---------- shelf ---------- */
.shelf{
	max-width:66em;
	margin:0 auto;
	padding:3.5em 1.5em 2em;
	display:grid;
	grid-template-columns:1fr 1fr;
	gap:2.5em;
}
.book{ display:flex; flex-direction:column; }

.book-cover{
	aspect-ratio:5/8;
	margin-bottom:1.1em;
	background:linear-gradient(160deg,var(--oxblood),var(--oxblood-dark));
	overflow:hidden;
}
.book-cover img{
	width:100%;
	height:100%;
	object-fit:cover;
}
.book-cover--pending{
	background:transparent;
	border:1.5px dashed var(--slate-soft);
	display:flex;
	align-items:center;
	justify-content:center;
	text-align:center;
}
.book-cover--pending span{
	font-family:"IBM Plex Mono", monospace;
	font-size:0.78rem;
	letter-spacing:0.04em;
	color:var(--slate);
}

.book-status{
	font-family:"IBM Plex Mono", monospace;
	font-size:0.78rem;
	letter-spacing:0.03em;
	margin-bottom:0.5em;
	padding-left:1.1em;
	position:relative;
	color:var(--mute);
}
.book-status::before{
	content:"";
	position:absolute;
	left:0;
	top:0.45em;
	width:0.5em;
	height:0.5em;
	border-radius:50%;
}
.book-status.is-ready{ color:var(--oxblood); }
.book-status.is-ready::before{ background:var(--oxblood); }
.book-status.is-pending{ color:var(--slate); }
.book-status.is-pending::before{ background:var(--slate-soft); }

.book-title{
	font-family:"Fraunces", Georgia, serif;
	font-size:1.6rem;
	font-weight:600;
	line-height:1.15;
	margin-bottom:0.25em;
}
.book-genre{
	font-size:0.9rem;
	color:var(--mute);
	margin-bottom:0.9em;
}
.book-desc{
	font-size:0.98rem;
	line-height:1.6;
	color:var(--ink-soft);
	margin-bottom:1.1em;
	max-width:30em;
}
.book-buy{
	display:flex;
	gap:1.4em;
	flex-wrap:wrap;
}
.book-buy a{
	font-size:0.92rem;
	text-decoration:underline;
	text-underline-offset:3px;
}

/* ---------- reviews ---------- */
.reviews{
	max-width:44em;
	margin:0 auto;
	padding:1.6em 1.5em 0.5em;
}
.reviews h3{
	font-family:"Fraunces", Georgia, serif;
	font-size:1.1rem;
	font-weight:600;
	margin-bottom:0.6em;
}
.reviews .quote{
	padding:1.4em 0;
	border-top:1px solid var(--line);
	font-size:1.02rem;
	line-height:1.55;
	font-style:italic;
	color:var(--ink-soft);
}
.reviews:not(.reviews--pending) .quote:last-of-type{
	border-bottom:1px solid var(--line);
	margin-bottom:0.5em;
}
.reviews .quote b{
	display:block;
	font-style:normal;
	font-size:0.82rem;
	margin-top:0.6em;
	color:var(--mute);
}
.reviews--pending{
	margin-bottom:2em;
	padding-top:0.4em;
}
.reviews-empty{
	padding:1.2em 0;
	border-top:1px solid var(--line);
	font-size:0.94rem;
	font-style:italic;
	color:var(--mute);
}

/* ---------- footer ---------- */
footer{
	max-width:66em;
	margin:0 auto;
	padding:1.6em 1.5em 3em;
	font-size:0.88rem;
	color:var(--mute);
	display:flex;
	gap:1.6em;
	flex-wrap:wrap;
}
footer a{ color:var(--ink); }

@media (max-width:40em){
	.shelf{ grid-template-columns:1fr; }
}
