:root {
	--accent: #71b79c;
	--reader-top: 100px;
	--reader-bottom: 72px;
	font-family: "a-otf-ud-shin-go-pr6n", "Hiragino Kaku Gothic ProN", "Yu Gothic", sans-serif;
	font-weight: 300;
	color: #333;
}
html, body {
	margin: 0;
	width: 100%;
	height: 100%;
	overflow: hidden;
	background: #fff;
}
button, input, a { -webkit-tap-highlight-color: transparent; }
button { font: inherit; }
button:focus-visible, a:focus-visible, input:focus-visible {
	outline: 2px solid var(--accent);
	outline-offset: 3px;
}
.contentIframeClass, .dummyIFrameClass {
	position: absolute;
	top: var(--reader-top);
	left: 0;
	width: 100%;
	height: calc(100% - var(--reader-top) - var(--reader-bottom));
	border: none;
}
.contentIframeClass { opacity: 1; z-index: 1; }
.dummyIFrameClass, .reader-pending {
	opacity: 0;
	pointer-events: none;
	z-index: 0;
}
main[aria-busy="true"] .prev, main[aria-busy="true"] .next { cursor: progress; }
.prev, .next {
	cursor: pointer;
	position: absolute;
	top: var(--reader-top);
	bottom: var(--reader-bottom);
	width: 44px;
	padding: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	border: 0;
	background: transparent;
	color: rgba(0, 0, 0, 0.4);
	font-weight: bold;
	font-size: 30px;
	visibility: hidden;
	transition: background-color 0.2s ease, color 0.2s ease;
	user-select: none;
	z-index: 10;
}
.prev { left: 0; }
.next { right: 0; }
.prev:hover, .next:hover {
	background-color: rgba(0, 0, 0, 0.05);
	color: rgba(0, 0, 0, 0.8);
}
#readerHeader {
	position: absolute;
	top: max(16px, env(safe-area-inset-top));
	left: 0;
	width: 100%;
	z-index: 100;
	user-select: none;
}
.section-nav-container {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 6px 16px;
	padding: 0 10px;
}
.section-nav-button {
	cursor: pointer;
	font-size: 13px;
	color: #666;
	font-weight: 300;
	letter-spacing: 0.05em;
	line-height: 1.7;
	padding: 4px 10px;
	border: 0;
	border-bottom: 2px solid transparent;
	border-radius: 4px;
	background: transparent;
	text-decoration: none;
	white-space: nowrap;
	transition: background-color 0.2s ease, color 0.2s ease;
}
.section-nav-button:hover {
	background-color: rgba(0, 0, 0, 0.04);
	color: var(--accent);
}
.section-nav-button.active {
	color: var(--accent);
	background-color: rgba(113, 183, 156, 0.06);
	border-bottom-color: var(--accent);
	border-radius: 4px 4px 0 0;
}
.section-nav-button.survey-button {
	color: #fff;
	background-color: var(--accent);
	padding: 4px 12px;
}
.section-nav-button.survey-button:hover { background-color: #5aa185; color: #fff; }
.survey-button:active, .mutual-link-btn:active { opacity: 0.7; }
.mutual-links {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 8px;
	margin: 10px 12px 0;
	min-height: 28px;
	height: var(--related-links-height, 60px);
}
.mutual-link-container {
	display: flex;
	flex-wrap: wrap;
	align-content: flex-start;
	justify-content: center;
	gap: 6px 8px;
	min-width: 0;
}
.mutual-link-btn {
	cursor: pointer;
	background-color: rgba(113, 183, 156, 0.05);
	color: #4c8b73;
	border: 1px solid rgba(113, 183, 156, 0.3);
	padding: 4px 10px;
	border-radius: 4px;
	font-size: 11px;
	font-weight: 300;
	letter-spacing: 0.05em;
	line-height: 1.5;
	transition: background-color 0.2s ease, opacity 0.15s ease;
}
.mutual-link-btn:hover { background-color: rgba(113, 183, 156, 0.12); }
.progressbar-container {
	position: absolute;
	bottom: max(20px, env(safe-area-inset-bottom));
	left: 50%;
	transform: translateX(-50%);
	width: 90%;
	max-width: 800px;
	display: flex;
	flex-direction: column;
	align-items: center;
	z-index: 100;
	user-select: none;
}
#pageSlider {
	width: 100%;
	-webkit-appearance: none;
	appearance: none;
	background: rgba(0, 0, 0, 0.15);
	height: 4px;
	border-radius: 2px;
	cursor: pointer;
	margin: 0;
	padding: 0;
}
#pageSlider::-webkit-slider-thumb {
	-webkit-appearance: none;
	appearance: none;
	width: 16px;
	height: 16px;
	border-radius: 50%;
	background: var(--accent);
	cursor: pointer;
}
#pageSlider::-moz-range-thumb {
	width: 16px;
	height: 16px;
	border: none;
	border-radius: 50%;
	background: var(--accent);
	cursor: pointer;
}
#pageNumberDisplay {
	margin-top: 10px;
	font-size: 16px;
	line-height: 1.5;
	letter-spacing: 0.05em;
}
@media (orientation: portrait) {
	.mutual-links { grid-template-columns: 1fr; }
	.mutual-link-container:empty { display: none; }
}
@media (max-width: 600px) {
	#readerHeader { top: max(12px, env(safe-area-inset-top)); }
	.section-nav-container { gap: 4px; padding: 0 6px; }
	.section-nav-button { font-size: 12px; padding: 4px 6px; }
	.section-nav-button.survey-button { padding: 4px 8px; }
	.mutual-links { margin: 8px 8px 0; }
	.mutual-link-btn { font-size: 11px; padding: 4px 8px; }
	.prev, .next { width: 30px; font-size: 24px; }
	.progressbar-container { bottom: max(15px, env(safe-area-inset-bottom)); width: 92%; }
	#pageNumberDisplay { font-size: 16px; }
	#pageSlider::-webkit-slider-thumb { width: 22px; height: 22px; }
	#pageSlider::-moz-range-thumb { width: 22px; height: 22px; }
}
