@charset "utf-8";

body.public-site--book-home,
body.public-site--error {
	--home-motion: 220ms cubic-bezier(.22, 1, .36, 1);
	--home-focus: 0 0 0 3px rgba(49, 95, 66, .2);
	background: #e9ede8;
	color: #243126;
}

body.public-site--book-home .public-site__page,
body.public-site--error .public-site__page {
	width: min(100%, 760px);
	min-height: 100vh;
	margin: 0 auto;
	background: #fbfaf6;
}

.book-home {
	width: min(100% - 40px, 720px);
	margin-right: auto;
	margin-left: auto;
}

.book-home--index {
	position: relative;
	z-index: 0;
	isolation: isolate;
}

.book-home--index::before {
	position: fixed;
	top: 0;
	left: 50%;
	z-index: -1;
	width: min(100vw, 760px);
	height: 100vh;
	height: 100dvh;
	background-image: url('../imgs/dahaeshelf_main_background.png');
	background-repeat: no-repeat;
	background-position: center center;
	background-size: cover;
	filter: blur(2px);
	opacity: .7;
	pointer-events: none;
	transform: translateX(-50%) scale(1.01);
	content: '';
}

.book-home--index > * {
	position: relative;
	z-index: 1;
}

.book-home__header {
	position: sticky;
	top: 0;
	z-index: 20;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 20px;
	width: 100%;
	min-height: 72px;
	padding: 0 20px;
	background: rgba(251, 250, 246, .9);
	backdrop-filter: blur(14px);
}

.book-home__header-start {
	display: flex;
	align-items: center;
	min-width: 0;
	gap: 8px;
}

.book-home__back {
	display: grid;
	flex: 0 0 44px;
	place-items: center;
	width: 44px;
	height: 44px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: #eef2ec;
	color: #3c5142;
	cursor: pointer;
	font: inherit;
	font-size: 18px;
	text-decoration: none;
	transition: background-color var(--home-motion), color var(--home-motion), transform var(--home-motion);
}

.book-home__back:hover,
.book-home__back:focus-visible {
	background: #e2ebe2;
	color: #245c39;
	transform: translateX(-2px);
}

.book-home__back:focus-visible {
	outline: 0;
	box-shadow: var(--home-focus);
}

.book-home__page-title {
	overflow: hidden;
	color: #243126;
	font-size: 18px;
	font-weight: 900;
	letter-spacing: -.025em;
	line-height: 1.35;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.book-home__brand,
.book-home__nav a {
	color: inherit;
	text-decoration: none;
}

.book-home__brand {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	font-size: 20px;
	font-weight: 900;
	transition: color var(--home-motion), transform var(--home-motion);
}

.book-home__brand-mark {
	display: block;
	overflow: hidden;
	width: 38px;
	height: 38px;
	border-radius: 12px;
	transition: background-color var(--home-motion), transform var(--home-motion);
}

.book-home__brand-mark img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.book-home__nav-cta {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 44px;
	padding: 0 17px;
	border-radius: 999px;
	background: #315f42;
	color: #fff !important;
	font-size: 14px;
	font-weight: 900;
	transition: background-color var(--home-motion), box-shadow var(--home-motion), transform var(--home-motion);
}

.book-home__account {
	position: relative;
}

.book-home__avatar {
	display: grid;
	place-items: center;
	width: 44px;
	height: 44px;
	border: 1px solid rgba(49, 95, 66, .18);
	border-radius: 50%;
	background: #e4eee2;
	color: #315f42;
	cursor: pointer;
	font-size: 20px;
	list-style: none;
	transition: background-color var(--home-motion), box-shadow var(--home-motion), transform var(--home-motion);
}

.book-home__avatar::-webkit-details-marker {
	display: none;
}

.book-home__avatar:hover,
.book-home__avatar:focus-visible,
.book-home__account[open] .book-home__avatar {
	background: #d5e5d2;
	box-shadow: var(--home-focus);
	transform: translateY(-1px);
}

.book-home__avatar:focus-visible {
	outline: 0;
}

.book-home__account-menu {
	position: absolute;
	top: calc(100% + 10px);
	right: 0;
	z-index: 30;
	width: 156px;
	overflow: hidden;
	padding: 6px;
	border: 1px solid rgba(49, 70, 54, .12);
	border-radius: 14px;
	background: rgba(255, 255, 255, .98);
	box-shadow: 0 16px 36px rgba(36, 49, 38, .14);
}

.book-home__account-menu a,
.book-home__account-menu button {
	display: flex;
	align-items: center;
	gap: 10px;
	width: 100%;
	min-height: 44px;
	padding: 0 12px;
	border: 0;
	border-radius: 9px;
	background: transparent;
	color: #34483a;
	font: inherit;
	font-size: 14px;
	font-weight: 800;
	text-align: left;
	text-decoration: none;
	transition: background-color var(--home-motion), color var(--home-motion);
}

.book-home__account-menu a {
	margin-left: 0;
}

.book-home__account-menu i {
	display: inline-grid;
	flex: 0 0 18px;
	place-items: center;
	width: 18px;
	font-size: 16px;
	line-height: 1;
}

.book-home__account-menu span {
	min-width: 0;
}

.book-home__account-menu a:hover,
.book-home__account-menu a:focus-visible,
.book-home__account-menu button:hover,
.book-home__account-menu button:focus-visible {
	outline: 0;
	background: #edf3eb;
	color: #244c33;
}

.book-home__logout {
	margin: 0;
}

.book-home__nav-cta:hover,
.book-home__nav-cta:focus-visible {
	background: #244c33;
	box-shadow: 0 10px 24px rgba(36, 76, 51, .2);
	transform: translateY(-2px);
}

.member-home {
	min-height: calc(100vh - 72px);
	padding-bottom: calc(92px + env(safe-area-inset-bottom));
}

.member-home__header {
	padding: 54px 0 36px;
}

.member-home__header > p:first-child {
	margin: 0 0 8px;
	color: #52715d;
	font-size: 13px;
	font-weight: 900;
}

.member-home__header h1 {
	margin: 0;
	color: #1f2c22;
	font-size: 34px;
	font-weight: 900;
	line-height: 1.3;
}

.member-home__header > p:last-child {
	margin: 12px 0 0;
	color: #687269;
	font-size: 15px;
	line-height: 1.7;
}

.achievement-page {
	overflow: hidden;
}

.achievement-page .member-home__header {
	padding-bottom: 28px;
}

.achievement-page__content {
	display: grid;
	gap: 42px;
}

.achievement-loading {
	padding-bottom: 56px;
}

.achievement-loading__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 24px 16px;
}

.achievement-loading__book {
	width: 100%;
	aspect-ratio: 2 / 3;
	border-radius: 9px;
}

.achievement-loading > p {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 9px;
	margin: 26px 0 0;
	color: #737f76;
	font-size: 12px;
	font-weight: 750;
}

.achievement-books > header p {
	margin: 0 0 5px;
	color: #52715d;
	font-size: 9px;
	font-weight: 900;
	letter-spacing: .11em;
}

.achievement-books > header h2 {
	margin: 0;
	color: #243129;
	font-size: 21px;
	font-weight: 900;
	line-height: 1.4;
}

.achievement-books {
	padding-bottom: 48px;
}

.achievement-books > header {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 16px;
	margin-bottom: 22px;
}

.achievement-books > header > span {
	color: #78837b;
	font-size: 12px;
}

.achievement-books > header > span strong { color: #315f42; font-size: 15px; font-variant-numeric: tabular-nums; }

.achievement-book-list {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 30px 18px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.achievement-book { min-width: 0; }

.achievement-book__link {
	display: block;
	color: inherit;
	text-decoration: none;
}

.achievement-book__cover {
	display: grid;
	place-items: center;
	overflow: hidden;
	width: 100%;
	aspect-ratio: 2 / 3;
	border: 1px solid rgba(49, 70, 54, .1);
	border-radius: 8px 13px 13px 8px;
	background: linear-gradient(145deg, #e5ede2, #d5e2d2);
	box-shadow: 7px 10px 20px rgba(36, 49, 38, .13);
	color: #52715d;
	font-size: 28px;
	transition: border-color var(--home-motion), box-shadow var(--home-motion), transform var(--home-motion);
}

.achievement-book__cover img { display: block; width: 100%; height: 100%; object-fit: cover; }
.achievement-book__link:hover .achievement-book__cover,
.achievement-book__link:focus-visible .achievement-book__cover { border-color: rgba(49, 95, 66, .3); box-shadow: 9px 14px 26px rgba(36, 49, 38, .18); transform: translateY(-3px); }
.achievement-book__link:focus-visible { border-radius: 10px; outline: 0; box-shadow: var(--home-focus); }

.achievement-book__body {
	display: grid;
	gap: 4px;
	min-width: 0;
	padding: 13px 3px 0;
}

.achievement-book__status-row { display: flex; align-items: center; justify-content: space-between; gap: 7px; min-width: 0; margin-bottom: 2px; }
.achievement-book__badges { display: flex; flex-wrap: wrap; gap: 5px; margin-bottom: 2px; }
.achievement-book__badges span { padding: 4px 7px; border-radius: 999px; background: #e7f0e4; color: #315f42; font-size: 9px; font-weight: 900; line-height: 1; }
.achievement-book__badges span + span { background: #f0ece0; color: #77673e; }
.achievement-book__rating { display: inline-flex; flex: 0 0 auto; align-items: center; gap: 2px; color: #d19b35; font-size: 10px; line-height: 1; }
.achievement-book__rating .bi-star { color: #b9bdb8; }
.achievement-book__title { display: -webkit-box; overflow: hidden; color: #29362d; font-size: 14px; font-weight: 900; line-height: 1.45; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.achievement-book__author { overflow: hidden; color: #737e76; font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.achievement-book__date { margin-top: 2px; color: #929a94; font-size: 10px; }

.achievement-empty,
.achievement-error {
	display: grid;
	justify-items: center;
	padding: 64px 20px;
	text-align: center;
}

.achievement-empty {
	padding: 24px 0 40px;
}

.achievement-empty__image {
	display: block;
	width: min(100%, 380px);
	height: auto;
}

.achievement-empty > i,
.achievement-error > i { display: grid; place-items: center; width: 54px; height: 54px; margin-bottom: 16px; border-radius: 18px; background: #e8f0e5; color: #52715d; font-size: 23px; }
.achievement-empty h3,
.achievement-error h2 { margin: 0; color: #29362d; font-size: 19px; font-weight: 900; }
.achievement-empty p,
.achievement-error p { max-width: 330px; margin: 8px 0 0; color: #78837b; font-size: 13px; line-height: 1.65; word-break: keep-all; }
.achievement-empty a,
.achievement-error button,
.achievement-books__more { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; margin-top: 20px; padding: 0 18px; border: 1px solid #315f42; border-radius: 11px; background: #315f42; color: #fff; cursor: pointer; font: inherit; font-size: 13px; font-weight: 900; text-decoration: none; }
.achievement-books__more { width: 100%; margin-top: 30px; background: transparent; color: #315f42; }
.achievement-empty a:hover,
.achievement-empty a:focus-visible,
.achievement-error button:hover,
.achievement-error button:focus-visible { background: #244c33; }
.achievement-books__more:hover,
.achievement-books__more:focus-visible { background: #e8f0e5; }
.achievement-empty a:focus-visible,
.achievement-error button:focus-visible,
.achievement-books__more:focus-visible { outline: 0; box-shadow: var(--home-focus); }
.achievement-books__more:disabled { opacity: .55; cursor: wait; }

.achievement-error {
	padding-top: 72px;
}

.achievement-error > i { background: #f4e8e5; color: #a74d43; }

.settings-page .member-home__header {
	padding-bottom: 28px;
}

.settings-page__content {
	display: grid;
	gap: 34px;
	padding-bottom: 28px;
}

.settings-profile {
	display: grid;
	grid-template-columns: 64px minmax(0, 1fr);
	align-items: center;
	gap: 16px;
	padding: 24px;
	border: 1px solid rgba(49, 95, 66, .1);
	border-radius: 22px;
	background: linear-gradient(135deg, #eef4eb 0%, #f6f5ed 100%);
}

.settings-profile__avatar {
	display: grid;
	place-items: center;
	width: 64px;
	height: 64px;
	border-radius: 50%;
	background: #315f42;
	box-shadow: 0 10px 24px rgba(49, 95, 66, .16);
	color: #fff;
	font-size: 29px;
}

.settings-profile__identity {
	min-width: 0;
}

.settings-profile__identity p {
	margin: 0 0 3px;
	color: #66806e;
	font-size: 11px;
	font-weight: 850;
}

.settings-profile__identity h2 {
	overflow: hidden;
	margin: 0;
	color: #243129;
	font-size: 21px;
	font-weight: 900;
	line-height: 1.35;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.settings-profile__identity > span {
	display: block;
	overflow: hidden;
	margin-top: 3px;
	color: #778179;
	font-size: 12px;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.settings-profile__details {
	grid-column: 1 / -1;
	display: grid;
	gap: 10px;
	margin: 3px 0 0;
	padding: 17px 0 0;
	border-top: 1px solid rgba(49, 95, 66, .11);
}

.settings-profile__details > div {
	display: grid;
	grid-template-columns: 68px minmax(0, 1fr);
	gap: 12px;
	font-size: 12px;
	line-height: 1.5;
}

.settings-profile__details dt {
	color: #7b867e;
	font-weight: 750;
}

.settings-profile__details dd {
	overflow: hidden;
	margin: 0;
	color: #3d4a41;
	font-weight: 750;
	text-align: right;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.settings-menu nav {
	overflow: hidden;
	border: 1px solid rgba(49, 70, 54, .1);
	border-radius: 17px;
	background: rgba(255, 255, 255, .62);
}

.settings-menu nav a {
	display: grid;
	width: 100%;
	margin: 0;
	grid-template-columns: minmax(0, 1fr) 18px;
	align-items: center;
	gap: 13px;
	min-height: 78px;
	padding: 13px 17px;
	color: #29362d;
	text-decoration: none;
	transition: background-color var(--home-motion), color var(--home-motion);
}

.settings-menu nav a + a {
	border-top: 1px solid rgba(49, 70, 54, .09);
}

.settings-menu nav a:hover,
.settings-menu nav a:focus-visible {
	outline: 0;
	background: #edf3eb;
	color: #244c33;
}

.settings-menu nav a:focus-visible {
	box-shadow: inset var(--home-focus);
}

.settings-menu nav a > span:first-child {
	display: grid;
	gap: 3px;
	min-width: 0;
}

.settings-menu nav strong {
	font-size: 14px;
	font-weight: 900;
}

.settings-menu nav small {
	overflow: hidden;
	color: #7a847c;
	font-size: 11px;
	line-height: 1.4;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.settings-menu nav a > .bi-chevron-right {
	color: #9ba39d;
	font-size: 14px;
}

.settings-menu__version {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 13px;
	min-height: 78px;
	padding: 13px 17px;
	border-top: 1px solid rgba(49, 70, 54, .09);
	color: #29362d;
}

.settings-menu__version > span {
	color: #7a847c;
	font-size: 13px;
}

.settings-menu__version-info {
	display: grid;
	gap: 4px;
	text-align: right;
}

.settings-logout {
	margin: 4px 0 0;
}

.settings-logout button {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	width: 100%;
	min-height: 52px;
	border: 1px solid rgba(165, 76, 67, .22);
	border-radius: 15px;
	background: #fbf4f1;
	color: #9a4942;
	cursor: pointer;
	font: inherit;
	font-size: 14px;
	font-weight: 900;
	transition: background-color var(--home-motion), border-color var(--home-motion), box-shadow var(--home-motion), transform var(--home-motion);
}

.settings-logout button:hover,
.settings-logout button:focus-visible {
	border-color: rgba(165, 76, 67, .36);
	outline: 0;
	background: #f7eae6;
	box-shadow: 0 10px 24px rgba(133, 63, 56, .1);
	transform: translateY(-1px);
}

.settings-logout button:focus-visible {
	box-shadow: 0 0 0 3px rgba(165, 76, 67, .16);
}

.settings-logout button:disabled {
	opacity: .55;
	cursor: wait;
	transform: none;
}

.record-home {
	overflow: hidden;
}

.record-welcome {
	padding: 52px 0 44px;
}

.record-welcome__eyebrow,
.record-section__eyebrow {
	margin: 0 0 8px;
	color: #52715d;
	font-size: 12px;
	font-weight: 900;
	letter-spacing: .05em;
}

.record-welcome h1 {
	margin: 0;
	color: #1f2c22;
	font-size: clamp(34px, 8vw, 46px);
	font-weight: 900;
	line-height: 1.2;
	letter-spacing: -.04em;
}

.record-welcome__description {
	margin: 16px 0 0;
	color: #687269;
	font-size: 15px;
	line-height: 1.7;
}

.record-home__content {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 0;
	width: 100%;
	min-width: 0;
	max-width: 100%;
}

.record-section {
	padding: 38px 0 44px;
	border-top: 1px solid rgba(49, 70, 54, .1);
}

.record-section--calendar {
	width: 100%;
	min-width: 0;
	max-width: 100%;
}

.record-section__header {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 18px;
	margin-bottom: 22px;
}

.record-section__header h2 {
	margin: 0;
	color: #243126;
	font-size: 24px;
	font-weight: 900;
	line-height: 1.3;
	letter-spacing: -.025em;
}

.record-section__more {
	display: inline-flex;
	align-items: center;
	gap: 2px;
	min-height: 44px;
	margin: 0;
	color: #657068;
	font-size: 13px;
	font-weight: 800;
	white-space: nowrap;
}

.record-section__more:hover,
.record-section__more:focus-visible {
	color: #315f42;
}

.record-section__more:focus-visible {
	border-radius: 8px;
	outline: 0;
	box-shadow: var(--home-focus);
}

.reading-card-list {
	display: flex;
	gap: 14px;
	overflow-x: auto;
	margin: 0 -20px;
	padding: 2px 20px 14px;
	scroll-padding-inline: 20px;
	scroll-snap-type: x mandatory;
	scrollbar-width: none;
	cursor: grab;
	user-select: none;
}

.reading-card-list::-webkit-scrollbar {
	display: none;
}

.reading-card-list.is-dragging {
	scroll-snap-type: none;
	cursor: grabbing;
}

.reading-card-list__actions {
	display: flex;
	align-items: center;
	gap: 8px;
	margin-left: auto;
}

.reading-card-list__controls {
	display: flex;
	align-items: center;
	gap: 4px;
}

.reading-card-list__controls button {
	display: grid;
	place-items: center;
	width: 44px;
	height: 44px;
	padding: 0;
	border: 1px solid rgba(49, 70, 54, .13);
	border-radius: 50%;
	background: #fff;
	color: #405348;
	cursor: pointer;
	transition: background-color var(--home-motion), border-color var(--home-motion), color var(--home-motion), transform var(--home-motion);
}

.reading-card-list__controls button:hover,
.reading-card-list__controls button:focus-visible {
	border-color: rgba(49, 95, 66, .3);
	background: #e8eee5;
	color: #315f42;
	transform: translateY(-1px);
}

.reading-card-list__controls button:focus-visible {
	outline: 0;
	box-shadow: var(--home-focus);
}

.reading-card-list__controls button:disabled {
	opacity: .35;
	cursor: default;
	transform: none;
}

.reading-card {
	flex: 0 0 min(86%, 430px);
	min-width: 0;
	scroll-snap-align: start;
}

.reading-card-add {
	display: grid;
	place-items: center;
	flex: 0 0 132px;
	min-height: 196px;
	padding: 0;
	border: 1px dashed rgba(49, 95, 66, .32);
	border-radius: 22px;
	background: #eef3eb;
	color: #315f42;
	cursor: pointer;
	font: inherit;
	font-size: 30px;
	scroll-snap-align: start;
	text-decoration: none;
	transition: background-color var(--home-motion), border-color var(--home-motion), color var(--home-motion), transform var(--home-motion);
}

.reading-card-add:hover,
.reading-card-add:focus-visible {
	border-color: #52715d;
	background: #e2ecdf;
	color: #244c33;
	transform: translateY(-2px);
}

.reading-card-add:focus-visible {
	outline: 0;
	box-shadow: var(--home-focus);
}

body.has-open-sheet {
	overflow: hidden;
}

.book-add-sheet {
	width: min(100%, 760px);
	max-width: none;
	max-height: 90dvh;
	overflow: hidden;
	margin: auto auto 0;
	padding: 0;
	border: 0;
	background: transparent;
	color: #243126;
}

.book-add-sheet::backdrop {
	background: rgba(24, 34, 27, .46);
	backdrop-filter: blur(3px);
}

.book-add-sheet__panel {
	max-height: 90dvh;
	overflow-x: hidden;
	overflow-y: auto;
	overscroll-behavior: contain;
	padding: 10px 20px calc(24px + env(safe-area-inset-bottom));
	border-radius: 26px 26px 0 0;
	background: #fbfaf6;
	box-shadow: 0 -18px 50px rgba(28, 42, 31, .18);
	animation: book-sheet-enter 160ms ease-out;
}

.book-add-sheet__handle {
	width: 42px;
	height: 4px;
	margin: 0 auto 20px;
	border-radius: 999px;
	background: #d2d8d0;
}

.book-add-sheet__header {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 20px;
}

.book-add-sheet__header p {
	margin: 0 0 5px;
	color: #52715d;
	font-size: 12px;
	font-weight: 900;
}

.book-add-sheet__header h2 {
	margin: 0;
	font-size: 22px;
	font-weight: 900;
	line-height: 1.35;
}

.book-add-sheet__close {
	display: grid;
	place-items: center;
	width: 44px;
	height: 44px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: #eef1eb;
	color: #536157;
	cursor: pointer;
}

.book-add-sheet__actions {
	display: grid;
	gap: 10px;
	margin-top: 24px;
}

.book-add-sheet__actions a {
	display: grid;
	grid-template-columns: 46px minmax(0, 1fr) 20px;
	align-items: center;
	gap: 14px;
	min-height: 70px;
	padding: 11px 15px;
	border-radius: 17px;
	background: #f0f2ec;
	color: #344238;
	text-decoration: none;
	transition: background-color var(--home-motion), color var(--home-motion), transform var(--home-motion);
}

.book-add-sheet__actions a > span {
	display: grid;
	place-items: center;
	width: 46px;
	height: 46px;
	border-radius: 14px;
	background: #dce8d9;
	color: #315f42;
	font-size: 19px;
}

.book-add-sheet__actions a > strong {
	font-size: 15px;
	font-weight: 900;
}

.book-add-sheet__actions a > i {
	color: #929b94;
}

.book-add-sheet__actions a:hover,
.book-add-sheet__actions a:focus-visible {
	background: #e7ede4;
	color: #244c33;
	transform: translateY(-1px);
}

.book-add-sheet__actions a:focus-visible,
.book-add-sheet__close:focus-visible {
	outline: 0;
	box-shadow: var(--home-focus);
}

.reading-day-sheet {
	overflow: hidden;
}

.reading-day-sheet__panel {
	display: flex;
	flex-direction: column;
	overflow: hidden;
	max-height: 90vh;
	max-height: 90dvh;
}

.reading-day-sheet__header {
	flex: 0 0 auto;
	padding-bottom: 18px;
	border-bottom: 1px solid rgba(49, 70, 54, .1);
}

.reading-day-sheet__body {
	min-height: 0;
	overflow-y: auto;
	padding: 18px 2px 4px;
	overscroll-behavior: contain;
	-webkit-overflow-scrolling: touch;
}

.reading-day-sheet__loading,
.reading-day-sheet__empty,
.reading-day-sheet__error {
	display: grid;
	justify-items: center;
	padding: 48px 18px;
	color: #718078;
	text-align: center;
}

.reading-day-sheet__loading { gap: 10px; }
.reading-day-sheet__loading p,
.reading-day-sheet__empty p,
.reading-day-sheet__error p { margin: 0; font-size: 13px; line-height: 1.6; }
.reading-day-sheet__empty > i,
.reading-day-sheet__error > i { margin-bottom: 13px; color: #66806d; font-size: 28px; }
.reading-day-sheet__empty strong { margin-bottom: 6px; color: #344238; font-size: 16px; }
.reading-day-sheet__error { color: #8f4a43; }

.reading-day-sheet__error button {
	min-height: 42px;
	margin-top: 16px;
	padding: 0 16px;
	border: 0;
	border-radius: 10px;
	background: #315f42;
	color: #fff;
	cursor: pointer;
	font: inherit;
	font-size: 12px;
	font-weight: 850;
}

.reading-day-sheet__list {
	display: grid;
	gap: 0;
	margin: 0;
	padding: 0;
	list-style: none;
}

.reading-day-book {
	display: grid;
	grid-template-columns: 54px minmax(0, 1fr) auto;
	align-items: center;
	gap: 13px;
	padding: 14px 4px;
	border-bottom: 1px solid rgba(49, 70, 54, .1);
}

.reading-day-book:last-child { border-bottom: 0; }

.reading-day-book__cover {
	display: grid;
	place-items: center;
	overflow: hidden;
	width: 54px;
	height: 76px;
	border-radius: 5px;
	background: #e6eee3;
	box-shadow: 0 5px 12px rgba(36, 49, 38, .12);
	color: #52715d;
}

.reading-day-book__cover img { display: block; width: 100%; height: 100%; object-fit: cover; }
.reading-day-book__cover > span { display: grid; place-items: center; width: 100%; height: 100%; }
.reading-day-book__body { min-width: 0; }
.reading-day-book__body h3 { margin: 0; color: #29362d; font-size: 14px; font-weight: 900; line-height: 1.45; overflow-wrap: anywhere; }
.reading-day-book__subtitle { overflow: hidden; margin: 3px 0 0; color: #7a857d; font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.reading-day-book__meta { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-top: 10px; color: #78837b; font-size: 10px; }
.reading-day-book__meta strong { color: #39704b; font-size: 11px; }
.reading-day-book__body progress { display: block; overflow: hidden; width: 100%; height: 5px; margin-top: 5px; border: 0; border-radius: 999px; background: #e4eae3; appearance: none; }
.reading-day-book__body progress::-webkit-progress-bar { background: #e4eae3; }
.reading-day-book__body progress::-webkit-progress-value { background: #4f7b5d; }
.reading-day-book__body progress::-moz-progress-bar { background: #4f7b5d; }
.reading-day-book__time { align-self: start; padding-top: 2px; color: #8a938c; font-size: 10px; font-weight: 750; white-space: nowrap; }

@keyframes book-sheet-enter {
	from { opacity: 0; }
	to { opacity: 1; }
}

.reading-card__link {
	display: grid;
	grid-template-columns: 106px minmax(0, 1fr);
	gap: 18px;
	height: 100%;
	min-height: 196px;
	padding: 18px;
	border: 1px solid rgba(49, 70, 54, .1);
	border-radius: 22px;
	background: #fff;
	box-shadow: 0 12px 30px rgba(36, 49, 38, .08);
	text-decoration: none;
	transition: border-color var(--home-motion), box-shadow var(--home-motion), transform var(--home-motion);
}

.reading-card__link:hover,
.reading-card__link:focus-visible {
	border-color: rgba(49, 95, 66, .22);
	box-shadow: 0 17px 38px rgba(36, 49, 38, .12);
	transform: translateY(-2px);
}

.reading-card__link:focus-visible {
	outline: 0;
	box-shadow: var(--home-focus);
}

.reading-card__cover,
.upcoming-book__cover {
	display: grid;
	place-items: center;
	overflow: hidden;
	background: linear-gradient(145deg, #e5ede2, #d5e2d2);
	color: #52715d;
}

.reading-card__cover {
	width: 106px;
	height: 160px;
	border-radius: 8px 13px 13px 8px;
	box-shadow: 7px 9px 18px rgba(36, 49, 38, .14);
}

.reading-card__cover img,
.upcoming-book__cover img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.reading-card__cover i {
	font-size: 30px;
}

.reading-card__body {
	display: flex;
	align-items: flex-start;
	flex-direction: column;
	min-width: 0;
}

.reading-card__status {
	display: inline-flex;
	align-items: center;
	min-height: 24px;
	padding: 0 9px;
	border-radius: 999px;
	background: #e7f0e4;
	color: #315f42;
	font-size: 11px;
	font-weight: 900;
}

.reading-card__body h3,
.upcoming-book__body h3 {
	overflow: hidden;
	margin: 10px 0 0;
	color: #243126;
	font-size: 17px;
	font-weight: 900;
	line-height: 1.4;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.reading-card__body h3 {
	display: -webkit-box;
	width: 100%;
	max-height: 2.8em;
	text-overflow: clip;
	white-space: normal;
	overflow-wrap: anywhere;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
}

.reading-card__body > p,
.upcoming-book__body p {
	overflow: hidden;
	width: 100%;
	margin: 4px 0 0;
	color: #7a847c;
	font-size: 12px;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.reading-card__progress {
	width: 100%;
	margin-top: auto;
}

.reading-card__progress > div,
.reading-card__progress > p {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
}

.reading-card__progress > div {
	margin-bottom: 7px;
	color: #687269;
	font-size: 11px;
}

.reading-card__progress strong {
	color: #315f42;
	font-size: 13px;
}

.reading-card__progress progress {
	display: block;
	width: 100%;
	height: 7px;
	overflow: hidden;
	border: 0;
	border-radius: 999px;
	background: #e5e9e2;
}

.reading-card__progress progress::-webkit-progress-bar {
	background: #e5e9e2;
}

.reading-card__progress progress::-webkit-progress-value {
	border-radius: 999px;
	background: #4f7b5d;
}

.reading-card__progress progress::-moz-progress-bar {
	border-radius: 999px;
	background: #4f7b5d;
}

.reading-card__progress > p {
	margin: 7px 0 0;
	color: #879088;
	font-size: 10px;
}

.upcoming-book-list {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 20px 12px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.upcoming-book {
	min-width: 0;
}

.upcoming-book__link {
	display: flex;
	align-items: center;
	flex-direction: column;
	gap: 10px;
	min-height: 164px;
	padding: 10px 6px;
	border-radius: 18px;
	text-align: center;
	text-decoration: none;
	transition: background-color var(--home-motion), box-shadow var(--home-motion), transform var(--home-motion);
}

.upcoming-book__link:hover,
.upcoming-book__link:focus-visible {
	background: #f1f3ed;
	box-shadow: 0 10px 24px rgba(36, 49, 38, .07);
	transform: translateY(-2px);
}

.upcoming-book__link:focus-visible {
	outline: 0;
	box-shadow: var(--home-focus);
}

.upcoming-book__cover {
	width: min(100%, 96px);
	height: auto;
	aspect-ratio: 1;
	border: 3px solid #fff;
	border-radius: 50%;
	box-shadow: 0 0 0 1px rgba(49, 70, 54, .12), 0 8px 20px rgba(36, 49, 38, .12);
}

.upcoming-book__body {
	width: 100%;
	min-width: 0;
}

.upcoming-book__body h3 {
	display: -webkit-box;
	overflow: hidden;
	margin-top: 0;
	font-size: 14px;
	line-height: 1.4;
	white-space: normal;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
	line-clamp: 2;
	text-overflow: ellipsis;
}

.upcoming-book__body p {
	margin-top: 5px;
	font-size: 11px;
}

.upcoming-book__arrow {
	display: none;
}

.upcoming-book-add {
	width: 100%;
	border: 0;
	background: transparent;
	color: #52715d;
	cursor: pointer;
	font: inherit;
}

.upcoming-book-add__circle {
	display: grid;
	place-items: center;
	width: min(100%, 96px);
	aspect-ratio: 1;
	border: 1px dashed rgba(49, 95, 66, .4);
	border-radius: 50%;
	background: #edf3eb;
	color: #315f42;
	font-size: 25px;
	transition: background-color var(--home-motion), border-color var(--home-motion), transform var(--home-motion);
}

.upcoming-book-add__label {
	font-size: 13px;
	font-weight: 850;
}

.upcoming-book-add:hover .upcoming-book-add__circle,
.upcoming-book-add:focus-visible .upcoming-book-add__circle {
	border-color: #52715d;
	background: #dfeade;
	transform: scale(1.04);
}

.upcoming-book-list__empty {
	grid-column: 1 / -1;
	list-style: none;
}

.upcoming-book-list__empty .record-empty {
	width: 100%;
	min-width: 0;
}

.record-empty {
	display: grid;
	grid-template-columns: 44px minmax(0, 1fr) auto;
	align-items: center;
	gap: 14px;
	min-width: min(82vw, 400px);
	padding: 20px;
	border-radius: 18px;
	background: #f0f2ec;
}

.record-empty__icon {
	display: grid;
	place-items: center;
	width: 44px;
	height: 44px;
	border-radius: 14px;
	background: #dce8d9;
	color: #3c674a;
	font-size: 19px;
}

.record-empty h3 {
	margin: 0;
	color: #344238;
	font-size: 14px;
	font-weight: 900;
}

.record-empty p {
	margin: 5px 0 0;
	color: #727c74;
	font-size: 12px;
	line-height: 1.55;
}

.record-empty > a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 40px;
	padding: 0 13px;
	border-radius: 12px;
	background: #315f42;
	color: #fff;
	font-size: 12px;
	font-weight: 900;
	white-space: nowrap;
}

.record-section__header--calendar {
	align-items: center;
}

.reading-calendar__controls {
	display: grid;
	grid-template-columns: 38px minmax(86px, auto) 38px;
	align-items: center;
	justify-items: center;
}

.reading-calendar__controls button {
	display: grid;
	place-items: center;
	width: 38px;
	height: 38px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: transparent;
	color: #536157;
}

.reading-calendar__controls button:hover,
.reading-calendar__controls button:focus-visible {
	background: #e8eee5;
	color: #315f42;
}

.reading-calendar__controls button:focus-visible {
	outline: 0;
	box-shadow: var(--home-focus);
}

.reading-calendar__controls button:disabled {
	opacity: .3;
	cursor: default;
}

.reading-calendar__controls strong {
	color: #344238;
	font-size: 13px;
	font-weight: 900;
}

.reading-calendar {
	position: relative;
	padding: 14px;
	border: 1px solid rgba(49, 70, 54, .1);
	border-radius: 20px;
	background: #fff;
	transition: opacity var(--home-motion);
}

.reading-calendar,
.reading-calendar * {
	box-sizing: border-box;
}

.reading-calendar.is-loading { opacity: .58; }

.reading-calendar table {
	width: 100%;
	border-collapse: separate;
	border-spacing: 4px;
	table-layout: fixed;
}

.reading-calendar th {
	height: 28px;
	color: #8b938c;
	font-size: 11px;
	font-weight: 800;
	text-align: center;
}

.reading-calendar th:first-child {
	color: #b16b67;
}

.reading-calendar td {
	height: 70px;
	padding: 0;
	text-align: center;
}

.reading-calendar td button {
	position: relative;
	display: flex;
	align-items: center;
	flex-direction: column;
	width: 100%;
	height: 66px;
	padding: 7px 2px 5px;
	border: 0;
	border-radius: 12px;
	background: transparent;
	color: #48544b;
	cursor: pointer;
	font-size: 12px;
}

.reading-calendar__day {
	display: block;
	line-height: 1;
}

.reading-calendar td button:hover,
.reading-calendar td button:focus-visible {
	background: #eef2eb;
}

.reading-calendar td button:focus-visible {
	outline: 0;
	box-shadow: var(--home-focus);
}

.reading-calendar td.is-today button {
	box-shadow: inset 0 0 0 1px #66856e;
	color: #315f42;
	font-weight: 900;
}

.reading-calendar td button.has-record {
	background: #edf3ea;
	color: #315f42;
	font-weight: 900;
}

.reading-calendar__covers {
	position: relative;
	display: flex;
	align-items: flex-end;
	justify-content: center;
	min-height: 36px;
	margin-top: 5px;
}

.reading-calendar__cover {
	display: grid;
	place-items: center;
	overflow: hidden;
	width: 25px;
	height: 36px;
	border: 1px solid rgba(255, 255, 255, .9);
	border-radius: 3px;
	background: #dbe7d8;
	box-shadow: 0 2px 5px rgba(34, 50, 39, .18);
	color: #52715d;
	font-size: 9px;
}

.reading-calendar__cover + .reading-calendar__cover {
	margin-left: -11px;
}

.reading-calendar__cover:nth-child(1) { z-index: 3; }
.reading-calendar__cover:nth-child(2) { z-index: 2; }
.reading-calendar__cover:nth-child(3) { z-index: 1; }

.reading-calendar__cover img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.reading-calendar__more {
	position: absolute;
	right: -5px;
	bottom: -2px;
	z-index: 4;
	display: grid;
	place-items: center;
	align-self: flex-end;
	min-width: 20px;
	height: 20px;
	border: 1px solid #fff;
	border-radius: 50%;
	background: #315f42;
	color: #fff;
	font-size: 8px;
	font-weight: 900;
	line-height: 1;
}

.reading-calendar__legend {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 14px;
	margin-top: 13px;
	color: #7d867f;
	font-size: 11px;
}

.reading-calendar__legend span {
	display: inline-flex;
	align-items: center;
	gap: 6px;
}

.reading-calendar__legend span i {
	display: block;
	width: 7px;
	height: 7px;
	border-radius: 50%;
	background: #4f7b5d;
}

.reading-calendar__legend a {
	min-height: 32px;
	color: #52715d;
	font-weight: 800;
}

.bookshelf-shortcuts {
	display: grid;
	gap: 12px;
	padding: 8px 0 48px;
}

.bookshelf-shortcuts a {
	margin: 0;
}

.bookshelf-shortcuts__secondary {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 12px;
}

.bookshelf-shortcuts__secondary > a {
	position: relative;
	display: flex;
	min-width: 0;
	min-height: 126px;
	padding: 18px;
	border-radius: 18px;
	background: #f0f3ed;
	color: #344139;
	flex-direction: column;
	align-items: flex-start;
	justify-content: space-between;
	transition: background-color 160ms ease, color 160ms ease, transform 160ms ease;
}

.bookshelf-shortcuts__secondary > a > .bi-chevron-right {
	position: absolute;
	top: 18px;
	right: 17px;
	color: #879087;
	font-size: 13px;
}

.bookshelf-shortcuts__icon {
	display: block;
	width: auto;
	height: auto;
	color: #41684c;
	font-size: 34px;
	line-height: 1;
	transform: rotate(-10deg);
	transform-origin: center;
	transition: color 160ms ease, transform 160ms ease;
}

.bookshelf-shortcuts__icon--pause { color: #8a7845; }
.bookshelf-shortcuts__icon--stop { color: #9b625a; transform: rotate(9deg); }
.bookshelf-shortcuts__secondary span:not(.bookshelf-shortcuts__icon),
.bookshelf-shortcuts__all > span:nth-child(2) { display: grid; gap: 4px; min-width: 0; }
.bookshelf-shortcuts small { color: #7b857e; font-size: 10px; font-weight: 750; }
.bookshelf-shortcuts__secondary strong { font-size: 15px; font-weight: 900; line-height: 1.35; word-break: keep-all; }
.bookshelf-shortcuts__secondary > a:hover { background: #e7ede5; color: #244f33; transform: translateY(-2px); }
.bookshelf-shortcuts__secondary > a:hover .bookshelf-shortcuts__icon { transform: rotate(-4deg) translateY(-2px); }
.bookshelf-shortcuts__secondary > a:hover .bookshelf-shortcuts__icon--stop { transform: rotate(4deg) translateY(-2px); }

.bookshelf-shortcuts__all {
	display: grid;
	grid-template-columns: 52px minmax(0, 1fr) 24px;
	align-items: center;
	gap: 16px;
	min-height: 92px;
	padding: 17px 20px;
	border-radius: 19px;
	background: #315f42;
	box-shadow: 0 12px 26px rgba(37, 75, 50, .14);
	color: #fff;
	transition: background-color 160ms ease, transform 160ms ease, box-shadow 160ms ease;
}

.bookshelf-shortcuts__all-icon {
	display: block;
	width: 52px;
	height: auto;
	color: rgba(255, 255, 255, .82);
	font-size: 34px;
	line-height: 1;
	text-align: center;
	transform: rotate(-8deg);
	transition: color 160ms ease, transform 160ms ease;
}

.bookshelf-shortcuts__all small { color: rgba(255, 255, 255, .68); font-size: 9px; font-weight: 850; letter-spacing: .12em; }
.bookshelf-shortcuts__all strong { color: #fff; font-size: 21px; font-weight: 900; }
.bookshelf-shortcuts__all > .bi-arrow-right { justify-self: end; font-size: 20px; }
.bookshelf-shortcuts__all:hover { background: #254e34; color: #fff; transform: translateY(-2px); box-shadow: 0 15px 30px rgba(37, 75, 50, .2); }
.bookshelf-shortcuts__all:hover .bookshelf-shortcuts__all-icon { color: #fff; transform: rotate(-3deg) scale(1.04); }
.bookshelf-shortcuts a:focus-visible { outline: 3px solid rgba(49, 95, 66, .22); outline-offset: 3px; }
.bookshelf-shortcuts__all:focus-visible { outline-color: rgba(49, 95, 66, .34); }

@media (max-width: 360px) {
	.bookshelf-shortcuts__secondary { gap: 8px; }
	.bookshelf-shortcuts__secondary > a { min-height: 118px; padding: 15px; border-radius: 16px; }
	.bookshelf-shortcuts__secondary > a > .bi-chevron-right { top: 16px; right: 14px; }
	.bookshelf-shortcuts__icon { font-size: 30px; }
	.bookshelf-shortcuts__secondary strong { font-size: 14px; }
	.bookshelf-shortcuts__all { grid-template-columns: 46px minmax(0, 1fr) 20px; gap: 13px; min-height: 86px; padding: 15px 17px; }
	.bookshelf-shortcuts__all-icon { width: 46px; font-size: 30px; }
	.bookshelf-shortcuts__all strong { font-size: 19px; }
}

@media (prefers-reduced-motion: reduce) {
	.bookshelf-shortcuts__secondary > a,
	.bookshelf-shortcuts__all,
	.bookshelf-shortcuts__icon,
	.bookshelf-shortcuts__all-icon { transition: none; }
}

.record-loading {
	padding: 38px 0 80px;
	border-top: 1px solid rgba(49, 70, 54, .1);
}

.record-loading__head {
	display: grid;
	gap: 9px;
	margin-bottom: 22px;
}

.record-loading__cards {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 14px;
}

.record-loading__card {
	display: grid;
	grid-template-columns: 92px minmax(0, 1fr);
	gap: 16px;
	min-height: 178px;
	padding: 18px;
	border-radius: 22px;
	background: #fff;
	box-shadow: 0 12px 30px rgba(36, 49, 38, .06);
}

.record-loading__card > div {
	display: flex;
	align-items: flex-start;
	flex-direction: column;
	gap: 10px;
	padding-top: 12px;
}

.record-skeleton {
	display: block;
	border-radius: 8px;
	background: linear-gradient(100deg, #e9ece6 30%, #f5f6f2 48%, #e9ece6 66%);
	background-size: 240% 100%;
	animation: record-skeleton-wave 1.35s ease-in-out infinite;
}

.record-skeleton--eyebrow { width: 84px; height: 12px; }
.record-skeleton--title { width: 152px; height: 25px; }
.record-skeleton--cover { width: 92px; height: 142px; border-radius: 8px 12px 12px 8px; }
.record-skeleton--line-lg { width: 90%; height: 18px; }
.record-skeleton--line { width: 58%; height: 12px; }
.record-skeleton--progress { width: 100%; height: 7px; margin-top: auto; }

.record-loading__message {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 9px;
	margin: 28px 0 0;
	color: #6f7971;
	font-size: 13px;
	font-weight: 700;
}

.record-loading__spinner {
	width: 16px;
	height: 16px;
	border: 2px solid #d7ded4;
	border-top-color: #52715d;
	border-radius: 50%;
	animation: record-spinner 700ms linear infinite;
}

.record-load-error {
	display: grid;
	justify-items: center;
	padding: 76px 20px;
	text-align: center;
}

.record-load-error > span {
	display: grid;
	place-items: center;
	width: 54px;
	height: 54px;
	border-radius: 18px;
	background: #f4e8e5;
	color: #a74d43;
	font-size: 23px;
}

.record-load-error h2 {
	margin: 18px 0 0;
	font-size: 20px;
}

.record-load-error p {
	margin: 8px 0 0;
	color: #747d76;
	font-size: 13px;
}

.record-load-error button {
	min-height: 44px;
	margin-top: 20px;
	padding: 0 18px;
	border: 0;
	border-radius: 12px;
	background: #315f42;
	color: #fff;
	font-weight: 900;
}

@keyframes record-skeleton-wave {
	0% { background-position: 100% 0; }
	100% { background-position: -100% 0; }
}

@keyframes record-spinner {
	to { transform: rotate(360deg); }
}

.book-bottom-nav {
	position: fixed;
	right: 0;
	bottom: 0;
	left: 0;
	z-index: 40;
	width: min(100%, 760px);
	margin: 0 auto;
	padding: 8px 12px calc(8px + env(safe-area-inset-bottom));
	border-top: 1px solid rgba(49, 70, 54, .1);
	background: rgba(251, 250, 246, .94);
	box-shadow: 0 -10px 28px rgba(36, 49, 38, .07);
	backdrop-filter: blur(18px);
}

.book-bottom-nav__inner {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	align-items: center;
}

.book-bottom-nav__item {
	display: flex;
	align-items: center;
	justify-content: center;
	flex-direction: column;
	gap: 3px;
	min-width: 0;
	min-height: 52px;
	margin-left: 0;
	border-radius: 12px;
	color: #7a857c;
	font-size: 11px;
	font-weight: 800;
	line-height: 1.2;
	text-decoration: none;
	transition: background-color var(--home-motion), color var(--home-motion), transform var(--home-motion);
}

.book-bottom-nav__item i {
	font-size: 20px;
	line-height: 1;
}

.book-bottom-nav__item:hover,
.book-bottom-nav__item:focus-visible {
	background: #edf3eb;
	color: #315f42;
	transform: translateY(-1px);
}

.book-bottom-nav__item:focus-visible {
	outline: 0;
	box-shadow: inset var(--home-focus);
}

.book-bottom-nav__item.is-active {
	color: #315f42;
}

.book-bottom-nav__item.is-active i {
	display: grid;
	place-items: center;
	width: 34px;
	height: 26px;
	border-radius: 999px;
	background: #dce9d9;
}

.book-home__brand:hover,
.book-home__brand:focus-visible {
	color: #315f42;
	transform: translateY(-1px);
}

.book-home__brand:hover .book-home__brand-mark,
.book-home__brand:focus-visible .book-home__brand-mark {
	transform: rotate(-4deg) scale(1.04);
}

.book-home__brand:focus-visible,
.book-home__nav-cta:focus-visible,
.join-callout__actions a:focus-visible {
	outline: 0;
	box-shadow: var(--home-focus);
}

.book-home__hero {
	display: grid;
	justify-items: center;
	gap: 34px;
	padding: 72px 0 82px;
	text-align: center;
}

.book-home__eyebrow,
.join-callout > p:first-child {
	margin: 0 0 12px;
	color: #52715d;
	font-size: 13px;
	font-weight: 900;
	letter-spacing: .06em;
}

.book-home__hero h1 {
	margin: 0;
	color: #1f2c22;
	font-size: clamp(44px, 10vw, 62px);
	font-weight: 900;
	line-height: 1.12;
	letter-spacing: -.05em;
}

.book-home__lead {
	margin: 24px 0 0;
	color: #687269;
	font-size: 17px;
	line-height: 1.8;
}

.book-home__shelf {
	position: relative;
	display: flex;
	align-items: flex-end;
	justify-content: center;
	width: min(100%, 400px);
	min-height: 230px;
	padding-bottom: 38px;
}

.book-home__book {
	display: flex;
	align-items: flex-end;
	justify-content: center;
	width: 70px;
	padding: 0 8px 20px;
	border-radius: 6px 14px 8px 5px;
	box-shadow: 8px 14px 22px rgba(38, 55, 42, .14);
	transform-origin: bottom center;
}

.book-home__book span {
	color: rgba(255, 255, 255, .92);
	font-size: 12px;
	font-weight: 900;
	writing-mode: vertical-rl;
}

.book-home__book--one { height: 150px; background: #c37b56; transform: rotate(-6deg); }
.book-home__book--two { height: 190px; background: #315f42; transform: translateY(3px); }
.book-home__book--three { height: 168px; background: #d1a344; transform: rotate(5deg); }

.book-home__shelf-line {
	position: absolute;
	right: 0;
	bottom: 26px;
	left: 0;
	height: 16px;
	border-radius: 4px 4px 10px 10px;
	background: #755b3f;
	box-shadow: 0 14px 20px rgba(69, 54, 36, .16);
}

.member-preview {
	padding: 80px 0;
}

.member-preview__heading {
	margin-bottom: 30px;
	text-align: center;
}

.member-preview__heading h2,
.join-callout h2 {
	margin: 0;
	color: #202c23;
	font-size: clamp(31px, 7vw, 42px);
	font-weight: 900;
	line-height: 1.3;
	letter-spacing: -.035em;
}

.reading-preview-stage {
	width: min(100%, 520px);
	margin: 0 auto 20px;
}

.reading-preview {
	position: relative;
	isolation: isolate;
	overflow: hidden;
	box-sizing: border-box;
	width: 100%;
	margin: 0;
	padding: 24px;
	border: 1px solid #e1e7df;
	border-radius: 20px;
	background: #fbfaf6;
	color: #26332a;
	box-shadow: 0 16px 40px rgba(39, 58, 44, .07);
	animation: reading-card-enter .6s cubic-bezier(.22, 1, .36, 1);
	transition: box-shadow var(--home-motion);
}

.reading-preview__header { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 20px; }
.reading-preview__eyebrow { color: #344c3b; font-size: var(--font-size-caption); font-weight: 800; }
.reading-preview__example { color: #7a847d; font-size: var(--font-size-meta); }
.reading-preview__hero {
	position: relative;
	isolation: isolate;
	display: grid;
	grid-template-columns: 100px minmax(0, 1fr) 38px;
	align-items: center;
	gap: 14px 18px;
	margin: 0 -24px;
	padding: 18px 24px 24px;
	overflow: hidden;
	border-bottom: 1px solid #e7ece8;
	background: linear-gradient(135deg, rgba(238, 244, 237, .8), rgba(251, 250, 246, .2) 62%);
}
.reading-preview__hero::before,
.reading-preview__hero::after { position: absolute; z-index: -1; border-radius: 50%; pointer-events: none; content: ''; }
.reading-preview__hero::before { top: -160px; right: -100px; width: 300px; height: 300px; border: 1px solid rgba(49, 95, 66, .1); background: rgba(219, 231, 220, .24); box-shadow: inset 0 0 0 36px rgba(49, 95, 66, .018), inset 0 0 0 72px rgba(49, 95, 66, .014); }
.reading-preview__hero::after { bottom: -190px; left: -90px; width: 260px; height: 260px; background: rgba(224, 214, 190, .18); }
.reading-preview__cover {
	grid-column: 1;
	grid-row: 1 / span 2;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	box-sizing: border-box;
	width: 100%;
	aspect-ratio: 2 / 3;
	padding: 20px 12px 12px;
	border: 1px solid rgba(64, 79, 68, .18);
	border-radius: 5px 8px 8px 5px;
	background: linear-gradient(90deg, #e0e5d7 0 5px, #eef0e5 5px);
	box-shadow: 0 12px 24px rgba(39, 58, 44, .13), 0 3px 6px rgba(39, 58, 44, .08);
}
.reading-preview__cover > span { color: #3e5945; font-size: 16px; font-weight: 800; line-height: 1.6; letter-spacing: -.03em; }
.reading-preview__cover > small { color: #74836d; font-size: 7px; letter-spacing: .05em; }
.reading-preview__book-info { min-width: 0; }
.reading-preview__status { display: inline-flex; align-items: center; min-height: 26px; padding: 0 8px; border-radius: 6px; background: #e5f0e8; color: #2f6741; font-size: var(--font-size-meta-sm); font-weight: 800; }
.reading-preview__book-info h3 { margin: 10px 0 0; color: #1d2b22; font-size: var(--font-size-page-title); font-weight: 850; letter-spacing: -.035em; line-height: 1.35; word-break: keep-all; overflow-wrap: anywhere; }
.reading-preview__book-info p { margin: 9px 0 0; color: #738078; font-size: var(--font-size-meta); line-height: 1.55; }
.reading-preview__rating { display: grid; align-self: center; justify-items: center; gap: 6px; color: #8b9087; font-size: var(--font-size-meta-xs); }
.reading-preview__stars { display: flex; flex-direction: column; gap: 3px; color: #c1b391; font-size: 13px; }
.reading-preview__rating small { font-size: inherit; white-space: nowrap; }
.reading-preview__state-actions { grid-column: 2 / -1; display: flex; justify-content: flex-end; gap: 18px; margin: 0; padding: 0; list-style: none; }
.reading-preview__state-actions li { display: grid; justify-items: center; gap: 5px; color: #6f7e73; font-size: var(--font-size-meta-xs); white-space: nowrap; }
.reading-preview__state-actions i { display: grid; place-items: center; width: 29px; height: 29px; border: 1px solid #dbe4da; border-radius: 50%; background: rgba(255, 255, 255, .6); color: #54725d; font-size: 16px; }
.reading-preview__metrics { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1px; margin-top: 20px; overflow: hidden; border: 1px solid #dfe6e0; border-radius: 12px; background: #dfe6e0; }
.reading-preview__metrics > div { display: grid; gap: 6px; padding: 16px; background: #f6f8f4; }
.reading-preview__metrics span { color: #738078; font-size: var(--font-size-meta-sm); font-weight: 750; }
.reading-preview__metrics strong { display: flex; align-items: center; justify-content: space-between; color: #285e3c; font-size: var(--font-size-card-title-lg); font-weight: 850; font-variant-numeric: tabular-nums; }
.reading-preview__metrics strong i { color: #74917b; font-size: 12px; }
.reading-preview__progress-area { padding: 24px 0; border-bottom: 1px solid #e4eae5; }
.reading-preview__progress-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 12px; }
.reading-preview__progress-head span { display: block; margin-bottom: 4px; color: #66806d; font-size: 9px; font-weight: 800; letter-spacing: .1em; }
.reading-preview__progress-head h4 { margin: 0; color: #243129; font-size: var(--font-size-card-title); font-weight: 850; }
.reading-preview__progress-head > strong { color: #28633d; font-size: var(--font-size-title-lg); font-weight: 900; font-variant-numeric: tabular-nums; }
.reading-preview__progress { display: block; box-sizing: border-box; width: 100%; height: 9px; margin-top: 18px; overflow: hidden; border: 0; border-radius: 5px; background: #e5ebe7; appearance: none; }
.reading-preview__progress::-webkit-progress-bar { border-radius: 5px; background: #e5ebe7; }
.reading-preview__progress::-webkit-progress-value { border-radius: 5px; background: #39704b; }
.reading-preview__progress::-moz-progress-bar { border-radius: 5px; background: #39704b; }
.reading-preview__pages { display: flex; justify-content: space-between; gap: 12px; margin-top: 10px; color: #7a847d; font-size: var(--font-size-meta); }
.reading-preview__pages strong { color: #344239; font-weight: 800; }
.reading-preview__notes { padding-top: 22px; }
.reading-preview__notes-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 12px; }
.reading-preview__notes-heading h4 { margin: 0; color: #243129; font-size: var(--font-size-card-title); font-weight: 850; }
.reading-preview__notes-heading h4 small { margin-left: 3px; color: #7c8a7f; font-size: var(--font-size-caption); font-weight: 600; }
.reading-preview__notes-heading > span { display: inline-flex; align-items: center; gap: 5px; color: #54725d; font-size: var(--font-size-meta); }
.reading-preview__note { padding: 15px 16px; border: 1px solid #e3e7dc; border-radius: 12px; background: #f6f5ee; }
.reading-preview__note > span { color: #6b7b6d; font-size: var(--font-size-meta-sm); font-weight: 750; }
.reading-preview__note p { margin: 8px 0 12px; color: #384b3d; font-size: var(--font-size-body-sm); line-height: 1.65; word-break: keep-all; overflow-wrap: anywhere; }
.reading-preview__note > small { color: #8a938a; font-size: var(--font-size-meta-xs); }

@keyframes reading-card-enter {
	from { transform: translateY(10px); opacity: 0; }
	to { transform: translateY(0); opacity: 1; }
}

@media (max-width: 480px) {
	.reading-preview__hero { margin-inline: -20px; padding-inline: 20px; }
}

@media (max-width: 420px) {
	.reading-preview__hero { grid-template-columns: 78px minmax(0, 1fr) 30px; gap: 12px; margin-inline: -20px; padding-inline: 20px; }
	.reading-preview__cover { padding: 14px 9px 10px; }
	.reading-preview__cover > span { font-size: 14px; }
	.reading-preview__cover > small { font-size: 6px; }
	.reading-preview__book-info h3 { font-size: var(--font-size-card-title-lg); }
	.reading-preview__state-actions { gap: 13px; }
	.reading-preview__metrics > div { padding: 14px; }
}

@media (prefers-reduced-motion: reduce) {
	.reading-preview { animation: none; }
}

.book-features__grid {
	display: grid;
	gap: 12px;
	width: min(100%, 520px);
	margin: 0 auto;
}

.book-feature {
	display: grid;
	grid-template-columns: 46px minmax(0, 1fr);
	align-items: center;
	gap: 16px;
	padding: 20px;
	border-radius: 18px;
	background: #f0f1ec;
	transition: background-color var(--home-motion), box-shadow var(--home-motion), transform var(--home-motion);
}

.book-feature > span {
	display: grid;
	place-items: center;
	width: 46px;
	height: 46px;
	border-radius: 14px;
	background: #dfe9dc;
	color: #315f42;
	font-size: 20px;
	transition: background-color var(--home-motion), transform var(--home-motion);
}

.book-feature h3 {
	margin: 0 0 5px;
	font-size: 17px;
	font-weight: 900;
}

.book-feature p {
	margin: 0;
	color: #6a736c;
	font-size: 14px;
	line-height: 1.6;
}

.join-callout {
	margin: 18px 0 70px;
	padding: 68px 28px;
	border-radius: 28px;
	background: #edf2e9;
	text-align: center;
}

.join-callout__description {
	max-width: 440px;
	margin: 18px auto 0;
	color: #69736b;
	font-size: 15px;
	line-height: 1.7;
}

.join-callout__actions {
	display: grid;
	gap: 10px;
	width: min(100%, 360px);
	margin: 30px auto 0;
}

.join-callout__actions a {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 54px;
	padding: 0 18px;
	border-radius: 14px;
	font-weight: 900;
	text-decoration: none;
	transition: background-color var(--home-motion), box-shadow var(--home-motion), color var(--home-motion), transform var(--home-motion);
}

.join-callout__primary {
	background: #315f42;
	color: #fff;
}

.join-callout__primary:visited {
	color: #fff;
}

.join-callout__primary:hover,
.join-callout__primary:focus-visible {
	background: #244c33;
	color: #fff;
	box-shadow: 0 12px 26px rgba(36, 76, 51, .2);
	transform: translateY(-2px);
}

.join-callout__secondary {
	background: rgba(255, 255, 255, .72);
	color: #315f42;
}

.join-callout__secondary:visited {
	color: #315f42;
}

.join-callout__secondary:hover,
.join-callout__secondary:focus-visible {
	background: #fff;
	color: #244c33;
	box-shadow: 0 10px 22px rgba(49, 95, 66, .1);
	transform: translateY(-2px);
}

.book-home__nav-cta:active,
.join-callout__actions a:active {
	box-shadow: none;
	transform: translateY(0) scale(.98);
}

.join-callout__primary:active {
	color: #fff;
}

.join-callout__secondary:active {
	color: #315f42;
}

@media (hover: hover) and (pointer: fine) {
	.reading-preview:hover {
		box-shadow: 0 20px 44px rgba(39, 58, 44, .1);
	}


	.book-feature:hover {
		background: #e9eee7;
		box-shadow: 0 14px 28px rgba(49, 70, 54, .09);
		transform: translateY(-3px);
	}

	.book-feature:hover > span {
		background: #d5e5d2;
		transform: rotate(-4deg) scale(1.06);
	}
}

.book-home__footer {
	position: relative;
	z-index: 2;
	width: 100%;
	margin-top: 12px;
	background: #f0f3ec;
	color: #707b72;
	font-size: 12px;
}

.book-home__footer-inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 20px;
	width: min(100% - 40px, 720px);
	margin: 0 auto;
	padding: 30px 0 42px;
}

.book-home__footer-brand {
	display: flex;
	align-items: center;
	gap: 11px;
}

.book-home__footer-brand img {
	display: block;
	width: 32px;
	height: 32px;
	border-radius: 10px;
	object-fit: cover;
}

.book-home__footer-brand strong {
	display: block;
	color: #344238;
	font-size: 15px;
}

.book-home__footer-brand p,
.book-home__footer-note {
	margin: 0;
}

.book-home__footer-brand p {
	margin-top: 2px;
}

.book-home__footer-note {
	text-align: right;
}

.book-home__footer-meta {
	display: grid;
	justify-items: end;
	gap: 7px;
}

.book-home__footer-links {
	display: flex;
	align-items: center;
}

.book-home__footer-links a {
	color: #4d5e51;
	font-weight: 800;
	text-decoration: none;
	text-underline-offset: 3px;
	transition: color var(--home-motion), text-decoration-color var(--home-motion);
}

.book-home__footer-links a:hover,
.book-home__footer-links a:focus-visible {
	color: #244c33;
	text-decoration: underline;
}

.book-home__footer-links a:focus-visible {
	outline: 2px solid rgba(49, 95, 66, .45);
	outline-offset: 4px;
}

.error-page {
	display: grid;
	justify-items: center;
	align-content: center;
	min-height: calc(100vh - 256px);
	padding-top: 72px;
	padding-bottom: 88px;
	text-align: center;
}

.error-page__visual {
	width: min(100%, 640px);
	margin-bottom: 36px;
}

.error-page__image {
	display: block;
	width: 100%;
	height: auto;
	mix-blend-mode: multiply;
}

.error-page__content {
	width: min(100%, 520px);
}

.error-page__eyebrow {
	margin: 0 0 12px;
	color: #52715d;
	font-size: 13px;
	font-weight: 900;
	letter-spacing: .06em;
}

.error-page h1 {
	margin: 0;
	color: #1f2c22;
	font-size: 36px;
	font-weight: 900;
	line-height: 1.3;
	letter-spacing: -.035em;
	overflow-wrap: anywhere;
}

.error-page__lead {
	margin: 18px 0 0;
	color: #687269;
	font-size: 16px;
	line-height: 1.8;
}

.error-page__message {
	display: flex;
	align-items: flex-start;
	gap: 8px;
	margin: 20px 0 0;
	padding: 13px 14px;
	border-radius: 10px;
	background: #f0f1ec;
	color: #5f6961;
	font-size: 14px;
	line-height: 1.6;
	text-align: left;
	overflow-wrap: anywhere;
}

.error-page__message i {
	flex: 0 0 auto;
	margin-top: 2px;
	color: #52715d;
}

.error-page__actions {
	display: flex;
	justify-content: center;
	margin-top: 30px;
}

.error-page__home {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-height: 54px;
	padding: 0 22px;
	border-radius: 14px;
	background: #315f42;
	color: #fff;
	font-size: 15px;
	font-weight: 900;
	text-decoration: none;
	transition: background-color var(--home-motion), box-shadow var(--home-motion), color var(--home-motion), transform var(--home-motion);
}

.error-page__home:visited {
	color: #fff;
}

.error-page__home:hover,
.error-page__home:focus-visible {
	background: #244c33;
	color: #fff;
	box-shadow: 0 12px 26px rgba(36, 76, 51, .2);
	transform: translateY(-2px);
}

.error-page__home:focus-visible {
	outline: 0;
	box-shadow: var(--home-focus);
}

@media (max-width: 720px) {
	main.book-home.record-home {
		width: calc(100% - 32px);
		min-width: 0;
		max-width: none;
	}

	.book-home__header {
		min-height: 64px;
		padding-right: 16px;
		padding-left: 16px;
	}

	.member-home {
		min-height: calc(100vh - 64px);
	}

	main.book-home.settings-page {
		width: calc(100% - 32px);
		min-width: 0;
		max-width: none;
	}

	.settings-page .member-home__header {
		padding-top: 40px;
		padding-bottom: 24px;
	}

	.settings-page__content {
		gap: 28px;
	}

	.settings-profile {
		grid-template-columns: 56px minmax(0, 1fr);
		gap: 14px;
		padding: 20px;
		border-radius: 19px;
	}

	.settings-profile__avatar {
		width: 56px;
		height: 56px;
		font-size: 25px;
	}

	.settings-profile__details {
		margin-top: 0;
	}

	.settings-menu nav a {
		padding-right: 14px;
		padding-left: 14px;
	}

	.achievement-page .member-home__header {
		padding-top: 40px;
		padding-bottom: 24px;
	}

	.achievement-page__content {
		gap: 32px;
	}

	.achievement-loading__grid,
	.achievement-book-list {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.achievement-loading__grid {
		gap: 20px 13px;
	}

	.achievement-book-list {
		gap: 26px 13px;
	}

	.record-welcome {
		padding: 38px 0 34px;
	}

	.record-welcome h1 {
		font-size: clamp(32px, 9vw, 40px);
	}

	.record-section {
		padding: 32px 0 38px;
	}

	.record-home__content,
	.record-section--calendar,
	.reading-calendar {
		width: 100%;
		min-width: 0;
		max-width: 100%;
	}

	.record-section__header {
		margin-bottom: 18px;
	}

	.record-section__header h2 {
		font-size: 21px;
	}

	.record-section--reading .record-section__header {
		align-items: flex-start;
		flex-direction: column;
		gap: 10px;
	}

	.reading-card-list__actions {
		justify-content: flex-end;
		width: 100%;
	}

	.reading-card-list {
		margin-right: -16px;
		margin-left: -16px;
		padding-right: 16px;
		padding-left: 16px;
		scroll-padding-inline: 16px;
	}

	.reading-card {
		flex-basis: min(91%, 390px);
	}

	.reading-card-add {
		flex-basis: 116px;
		min-height: 176px;
		border-radius: 19px;
	}

	.reading-card__link {
		grid-template-columns: 90px minmax(0, 1fr);
		gap: 15px;
		min-height: 176px;
		padding: 16px;
		border-radius: 19px;
	}

	.reading-card__cover {
		width: 90px;
		height: 140px;
	}

	.upcoming-book-list {
		grid-template-columns: repeat(3, minmax(0, 1fr));
		gap: 18px 8px;
	}

	.upcoming-book__link {
		min-height: 154px;
		padding-right: 4px;
		padding-left: 4px;
	}

	.upcoming-book__cover {
		width: min(100%, 88px);
	}

	.upcoming-book-add__circle {
		width: min(100%, 88px);
	}

	.record-empty {
		grid-template-columns: 42px minmax(0, 1fr);
		min-width: min(88vw, 380px);
		padding: 17px;
	}

	.record-empty > a {
		grid-column: 1 / -1;
		width: 100%;
	}

	.record-section__header--calendar {
		align-items: flex-start;
		flex-direction: column;
		width: 100%;
		min-width: 0;
		max-width: 100%;
	}

	.reading-calendar__controls {
		align-self: stretch;
		width: 100%;
		min-width: 0;
		max-width: 100%;
		grid-template-columns: 44px 1fr 44px;
	}

	.reading-calendar {
		box-sizing: border-box;
		width: 100%;
		max-width: 100%;
		margin-right: 0;
		margin-left: 0;
		padding: 8px 4px;
		border-radius: 16px;
	}

	.reading-calendar table {
		display: block;
		box-sizing: border-box;
		width: 100%;
		max-width: 100%;
		min-width: 0;
		border-spacing: 0;
	}

	.reading-calendar thead,
	.reading-calendar tbody {
		display: block;
		width: 100%;
		min-width: 0;
		max-width: 100%;
	}

	.reading-calendar tr {
		display: grid;
		grid-template-columns: repeat(7, minmax(0, 1fr));
		width: 100%;
		min-width: 0;
		max-width: 100%;
	}

	.reading-calendar th,
	.reading-calendar td {
		width: auto;
		min-width: 0;
	}

	.reading-calendar td {
		height: 66px;
		margin: 1px 0;
	}

	.reading-calendar td button {
		min-width: 0;
		height: 62px;
		border-radius: 10px;
	}

	.reading-calendar__covers {
		position: relative;
		width: min(32px, 100%);
		min-height: 32px;
		margin-right: auto;
		margin-left: auto;
	}

	.reading-calendar__cover {
		position: absolute;
		bottom: 0;
		left: 0;
		width: 22px;
		height: 32px;
	}

	.reading-calendar__cover + .reading-calendar__cover {
		margin-left: 0;
	}

	.reading-calendar__cover:nth-child(2) { left: 5px; }
	.reading-calendar__cover:nth-child(3) { left: 10px; }

	.reading-calendar__more {
		right: 0;
		min-width: 17px;
		height: 17px;
	}

	.reading-calendar__legend {
		flex-wrap: wrap;
	}

	.record-loading__cards {
		grid-template-columns: 1fr;
	}

	.record-loading__card:nth-child(2) {
		display: none;
	}

	.book-home__hero {
		padding: 52px 0 64px;
	}

	.book-home__hero h1 {
		font-size: clamp(42px, 13vw, 56px);
	}

	.book-home__lead {
		font-size: 15px;
	}

	.book-home__lead br {
		display: none;
	}

	.book-home__shelf {
		min-height: 190px;
	}

	.book-home__book {
		width: 58px;
	}

	.book-home__book--one { height: 120px; }
	.book-home__book--two { height: 155px; }
	.book-home__book--three { height: 138px; }

	.member-preview {
		padding: 64px 0;
	}

	.reading-preview {
		padding: 20px;
		border-radius: 20px;
	}

	.reading-preview__hero { margin-inline: -20px; padding-inline: 20px; }

	.join-callout {
		margin-bottom: 52px;
		padding: 54px 20px;
		border-radius: 22px;
	}

	.book-home__footer-inner {
		align-items: flex-start;
		flex-direction: column;
		gap: 6px;
		width: calc(100% - 32px);
		padding: 26px 0 calc(30px + env(safe-area-inset-bottom));
	}

	.book-home__footer-note {
		text-align: left;
	}

	.book-home__footer-meta {
		justify-items: start;
		padding-left: 43px;
	}

	.error-page {
		min-height: calc(100vh - 254px);
		padding-top: 52px;
		padding-bottom: 64px;
	}

	.error-page__visual {
		margin-bottom: 28px;
	}

	.error-page h1 {
		font-size: 30px;
	}

	.error-page__lead {
		font-size: 15px;
	}

	.error-page__lead br {
		display: none;
	}

}

@media (prefers-reduced-motion: reduce) {
	.record-skeleton,
	.record-loading__spinner,
	.book-add-sheet__panel {
		animation: none;
	}
}

body.public-site--privacy {
	--home-motion: 220ms cubic-bezier(.22, 1, .36, 1);
	--home-focus: 0 0 0 3px rgba(49, 95, 66, .2);
	background: #e9ede8;
	color: #243126;
}

body.public-site--privacy .public-site__page {
	width: min(100%, 760px);
	min-height: 100vh;
	margin: 0 auto;
	background: #fbfaf6;
}

.privacy-page {
	width: min(100% - 40px, 680px);
	margin: 0 auto;
	padding: 64px 0 80px;
}

.privacy-page__header {
	margin-bottom: 48px;
}

.privacy-page__header > p:first-child {
	margin: 0 0 10px;
	color: #52715d;
	font-size: 13px;
	font-weight: 900;
}

.privacy-page__header h1 {
	margin: 0 0 18px;
	color: #243126;
	font-size: clamp(34px, 8vw, 48px);
	line-height: 1.15;
}

.privacy-page__header > p:last-child,
.privacy-page__content p {
	margin: 0;
	color: #657068;
	font-size: 15px;
	line-height: 1.8;
}

.privacy-page__content {
	display: grid;
	gap: 36px;
}

.privacy-page__content section {
	padding-bottom: 36px;
	border-bottom: 1px solid rgba(49, 70, 54, .12);
}

.privacy-page__content section:last-child {
	padding-bottom: 0;
	border-bottom: 0;
}

.privacy-page__content h2 {
	margin: 0 0 12px;
	color: #344238;
	font-size: 20px;
	line-height: 1.4;
}

@media (max-width: 720px) {
	.privacy-page {
		width: calc(100% - 32px);
		padding: 44px 0 64px;
	}

	.privacy-page__header {
		margin-bottom: 38px;
	}
}
