
/* Gaiha selectable full-width page template. This is intentionally scoped to
 * body.gbs-fullwidth-page so normal theme pages keep their original layout. */
body.gbs-fullwidth-page #gbs-fullwidth-main,
body.gbs-fullwidth-page .gbs-fullwidth-template,
body.gbs-fullwidth-page .gbs-fullwidth-article,
body.gbs-fullwidth-page .gbs-fullwidth-content {
	display: block !important;
	width: 100% !important;
	max-width: none !important;
	min-width: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	border-radius: 0 !important;
	outline: 0 !important;
	background: transparent !important;
	box-shadow: none !important;
}

body.gbs-fullwidth-page .gbs-fullwidth-template::before,
body.gbs-fullwidth-page .gbs-fullwidth-template::after,
body.gbs-fullwidth-page .gbs-fullwidth-article::before,
body.gbs-fullwidth-page .gbs-fullwidth-article::after,
body.gbs-fullwidth-page .gbs-fullwidth-content::before,
body.gbs-fullwidth-page .gbs-fullwidth-content::after {
	display: none !important;
	content: none !important;
}

body.gbs-fullwidth-page .gbs-fullwidth-content > :first-child {
	margin-top: 0 !important;
}

body.gbs-fullwidth-page .gbs-fullwidth-content > :last-child {
	margin-bottom: 0 !important;
}

.gbs-bookshelf-page .wp-block-post-title,
.gbs-bookshelf-page main .entry-title,
.gbs-bookshelf-page main .page-title,
.gbs-bookshelf-page main article.page > .entry-header,
.gbs-bookshelf-page main .page-header,
.gbs-bookshelf-page main .page-title-area,
.gbs-bookshelf-page main .page-title-wrap,
.gbs-bookshelf-page main .title-area,
.gbs-bookshelf-page main .entry-header,
.gbs-bookshelf-page main .post-header,
.gbs-bookshelf-page main .page-heading,
.gbs-bookshelf-page main .page-banner,
.gbs-bookshelf-page main .page-title-section,
.gbs-bookshelf-page main .page-header-wrapper,
.gbs-bookshelf-page .site-content > .page-header,
.gbs-bookshelf-page .site-content > .page-title-area,
.gbs-theme-page-panel-removed {
	display: none !important;
}

body.gbs-bookshelf-page #content,
body.gbs-bookshelf-page .site-content,
body.gbs-bookshelf-page #primary,
body.gbs-bookshelf-page .content-area,
body.gbs-bookshelf-page main,
body.gbs-bookshelf-page .site-main,
body.gbs-bookshelf-page article.page,
body.gbs-bookshelf-page .entry-content,
body.gbs-bookshelf-page .wp-block-post-content,
body.gbs-bookshelf-page .site-content > .container,
body.gbs-bookshelf-page #content > .container,
.gbs-theme-shell-reset {
	width: 100% !important;
	max-width: none !important;
	min-height: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	border-radius: 0 !important;
	outline: 0 !important;
	background: transparent !important;
	box-shadow: none !important;
}

body.gbs-bookshelf-page main::before,
body.gbs-bookshelf-page main::after,
body.gbs-bookshelf-page article.page::before,
body.gbs-bookshelf-page article.page::after,
.gbs-theme-shell-reset::before,
.gbs-theme-shell-reset::after {
	display: none !important;
	content: none !important;
}

.gbs-bookshelf-page .wp-block-post-content,
.gbs-bookshelf-page main .entry-content {
	margin-top: 0 !important;
	padding-top: 0 !important;
}

.gbs-bookshelf {
	--gbs-accent: #0a84ff;
	--gbs-glass-alpha: .62;
	--gbs-text: #162033;
	--gbs-muted: #687386;
	--gbs-line: rgba(255, 255, 255, .55);
	--gbs-fixed-header-offset: 0px;
	position: relative;
	isolation: isolate;
	width: 100%;
	min-height: 680px;
	margin-top: calc(var(--gbs-fixed-header-offset) + 36px);
	margin-bottom: 32px;
	padding: clamp(18px, 4vw, 54px);
	overflow: hidden;
	border-radius: clamp(22px, 3vw, 38px);
	color: var(--gbs-text);
	font-family: -apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", sans-serif;
	background:
		linear-gradient(135deg, rgba(224, 239, 255, .9), rgba(246, 241, 255, .76) 46%, rgba(224, 250, 245, .82)),
		var(--gbs-background-image, none) center / cover no-repeat;
	box-sizing: border-box;
}

.gbs-bookshelf.gbs-fullwidth {
	width: min(calc(100vw - 24px), 1600px);
	max-width: none !important;
	margin-left: calc(50% - min(calc(50vw - 12px), 800px));
}

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

.gbs-bookshelf button,
.gbs-bookshelf input,
.gbs-bookshelf select { font: inherit; }

.gbs-bookshelf button { cursor: pointer; }

.gbs-mongolian-text {
	display: inline-block;
	font-family: var(--gbs-ui-font, -apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", sans-serif) !important;
	line-height: 1.35;
	letter-spacing: .02em !important;
	white-space: normal;
	-webkit-text-orientation: sideways-right !important;
	text-orientation: sideways !important;
	-webkit-writing-mode: vertical-lr !important;
	writing-mode: vertical-lr !important;
}

.gbs-horizontal-text {
	-webkit-writing-mode: horizontal-tb !important;
	writing-mode: horizontal-tb !important;
}

.gbs-ambient {
	position: absolute;
	z-index: -1;
	width: 430px;
	height: 430px;
	border-radius: 50%;
	filter: blur(24px);
	opacity: .48;
	pointer-events: none;
}

.gbs-ambient-one {
	top: -210px;
	right: -120px;
	background: radial-gradient(circle, rgba(66, 165, 255, .92), rgba(66, 165, 255, 0) 70%);
}

.gbs-ambient-two {
	bottom: -280px;
	left: -170px;
	background: radial-gradient(circle, rgba(170, 112, 255, .6), rgba(170, 112, 255, 0) 70%);
}

.gbs-shell {
	position: relative;
	z-index: 1;
	max-width: 1380px;
	margin: 0 auto;
}

.gbs-glass,
.gbs-book-glass {
	border: 1px solid var(--gbs-line);
	background: rgba(255, 255, 255, var(--gbs-glass-alpha));
	box-shadow:
		inset 0 1px 0 rgba(255, 255, 255, .76),
		0 20px 55px rgba(47, 67, 104, .12);
	-webkit-backdrop-filter: blur(28px) saturate(150%);
	backdrop-filter: blur(28px) saturate(150%);
}

.gbs-hero {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: space-between;
	min-height: 176px;
	padding: clamp(26px, 5vw, 52px);
	border-radius: 32px;
	background:
		linear-gradient(135deg, rgba(255, 255, 255, .82), rgba(247, 249, 255, .7)),
		var(--gbs-hero-background-image, none) center / cover no-repeat;
}

.gbs-hero-vertical {
	min-height: 330px;
	align-items: flex-start;
}

.gbs-hero-copy {
	display: flex;
	width: 100%;
	min-width: 0;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	text-align: center;
}

.gbs-hero-copy-vertical {
	justify-content: flex-start;
}

.gbs-eyebrow {
	margin: 0 0 8px !important;
	color: var(--gbs-accent);
	font-size: 12px !important;
	font-weight: 720;
	line-height: 1.3;
	letter-spacing: .16em;
	text-transform: uppercase;
}

.gbs-library-title {
	margin: 0 !important;
	color: var(--gbs-title-color, var(--gbs-text));
	font-family: var(--gbs-title-font, -apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", sans-serif);
	font-size: clamp(28px, var(--gbs-title-size, 56px), 96px) !important;
	font-weight: 760;
	line-height: 1.08 !important;
	white-space: pre-wrap;
}

.gbs-title-horizontal {
	letter-spacing: -.045em;
}

.gbs-title-vertical {
	width: max-content;
	max-width: 100%;
	height: 220px;
	max-height: 45vh;
	margin-right: auto !important;
	margin-left: auto !important;
	line-height: 1.4 !important;
	letter-spacing: .02em;
	text-align: start;
	-webkit-text-orientation: sideways-right;
	text-orientation: sideways-right;
	text-orientation: sideways;
	writing-mode: vertical-lr;
}

.gbs-library-title-image-wrap {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: fit-content;
	max-width: 100%;
	margin: 0 auto;
	padding: 10px 14px;
	border-radius: 28px;
	text-align: center;
}

.gbs-library-title-image {
	display: block;
	width: min(100%, var(--gbs-title-image-width, 220px));
	max-width: 100%;
	height: auto;
	margin: 0 auto;
	object-fit: contain;
	object-position: center center;
}

.gbs-title-image-effect-none {
	background: transparent;
	box-shadow: none;
	backdrop-filter: none;
}

.gbs-title-image-effect-glow {
	background: rgba(255, 255, 255, .18);
	box-shadow: 0 18px 44px rgba(66, 98, 146, .18), inset 0 1px 0 rgba(255,255,255,.72);
	backdrop-filter: blur(10px) saturate(1.18);
}

.gbs-title-image-effect-float {
	background: rgba(255, 255, 255, .14);
	box-shadow: 0 22px 48px rgba(37, 64, 105, .18), inset 0 1px 0 rgba(255,255,255,.68);
	backdrop-filter: blur(12px) saturate(1.16);
	animation: gbsTitleFloat 4.8s ease-in-out infinite;
}

.gbs-title-image-effect-pulse {
	background: rgba(255, 255, 255, .16);
	box-shadow: 0 0 0 rgba(10, 132, 255, 0);
	backdrop-filter: blur(10px) saturate(1.16);
	animation: gbsTitlePulse 2.8s ease-in-out infinite;
}

.gbs-title-image-effect-glass {
	background: linear-gradient(145deg, rgba(255,255,255,.42), rgba(255,255,255,.14));
	border: 1px solid rgba(255,255,255,.5);
	box-shadow: inset 0 1px 0 rgba(255,255,255,.82), 0 24px 48px rgba(42, 67, 103, .18);
	backdrop-filter: blur(16px) saturate(1.2);
}

@keyframes gbsTitleFloat {
	0%, 100% { transform: translateY(0); }
	50% { transform: translateY(-6px); }
}

@keyframes gbsTitlePulse {
	0%, 100% { box-shadow: 0 12px 28px rgba(65, 93, 138, .12), 0 0 0 0 rgba(10,132,255,.14); }
	50% { box-shadow: 0 18px 40px rgba(65, 93, 138, .18), 0 0 0 12px rgba(10,132,255,0); }
}

.gbs-count {
	display: inline-flex;
	align-items: flex-start;
	gap: 4px;
	margin: 12px 0 0 !important;
	color: var(--gbs-muted);
	font-size: 14px !important;
	line-height: 1.4;
}

.gbs-hero-symbol {
	position: absolute;
	top: clamp(26px, 5vw, 52px);
	right: clamp(26px, 5vw, 52px);
	display: grid;
	align-items: center;
	justify-items: center;
	width: 90px;
	height: 90px;
	place-items: center;
	border: 1px solid rgba(255, 255, 255, .66);
	border-radius: 26px;
	background: linear-gradient(145deg, rgba(255, 255, 255, .86), rgba(255, 255, 255, .3));
	box-shadow: inset 0 1px 0 #fff, 0 15px 35px rgba(55, 92, 145, .14);
}

.gbs-hero-symbol svg {
	width: 54px;
	height: 54px;
	fill: none;
	stroke: var(--gbs-accent);
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-width: 2.8;
}

.gbs-toolbar {
	display: grid;
	grid-template-columns: minmax(220px, 1fr) auto auto;
	gap: 12px;
	margin: 18px 0 30px;
	padding: 12px;
	border-radius: 22px;
}

.gbs-search,
.gbs-select-wrap {
	position: relative;
	display: flex;
	align-items: center;
	height: 48px;
	margin: 0;
	border: 1px solid rgba(133, 148, 173, .14);
	border-radius: 15px;
	background: rgba(255, 255, 255, .54);
}

.gbs-search:focus-within,
.gbs-select-wrap:focus-within {
	border-color: color-mix(in srgb, var(--gbs-accent) 55%, transparent);
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--gbs-accent) 14%, transparent);
}

.gbs-search svg {
	width: 19px;
	height: 19px;
	margin-left: 16px;
	fill: none;
	stroke: #7a8495;
	stroke-linecap: round;
	stroke-width: 1.8;
}

.gbs-search input,
.gbs-select-wrap select {
	width: 100%;
	height: 100%;
	margin: 0;
	padding: 0 16px;
	border: 0 !important;
	border-radius: inherit;
	outline: 0 !important;
	color: var(--gbs-text);
	background: transparent !important;
	box-shadow: none !important;
	font-size: 14px !important;
}

.gbs-search input { padding-left: 11px; }
.gbs-search input::placeholder { color: #8e98a8; }
.gbs-select-wrap select { min-width: 138px; padding-right: 34px; cursor: pointer; }

.gbs-search.gbs-has-mongolian,
.gbs-select-wrap.gbs-has-mongolian {
	height: 132px;
	align-items: flex-start;
}

.gbs-search.gbs-has-mongolian svg {
	margin-top: 16px;
}

.gbs-search input.gbs-mongolian-text {
	height: 118px;
	padding: 10px 12px;
}

.gbs-select-wrap select.gbs-mongolian-text {
	height: 126px;
	min-width: 64px;
	padding: 10px 12px;
}

.gbs-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(210px, 1fr));
	gap: 28px 22px;
}

.gbs-book {
	position: relative;
	min-width: 0;
	margin: 0 !important;
	transition: opacity .22s ease, transform .22s ease;
}

.gbs-book[hidden] { display: none !important; }

.gbs-book-glass {
	position: relative;
	z-index: 2;
	height: 100%;
	padding: 14px;
	border-radius: 24px;
	transition: transform .3s cubic-bezier(.2, .8, .2, 1), box-shadow .3s ease, border-color .3s ease;
}

.gbs-book:hover .gbs-book-glass,
.gbs-book:focus-within .gbs-book-glass {
	transform: translateY(-7px);
	border-color: rgba(255, 255, 255, .88);
	box-shadow: inset 0 1px 0 #fff, 0 24px 62px rgba(49, 69, 105, .2);
}

.gbs-cover-wrap {
	position: relative;
	width: 100%;
	aspect-ratio: 3 / 4.15;
	overflow: hidden;
	border-radius: 16px;
	background: rgba(222, 228, 238, .7);
	box-shadow: 0 13px 28px rgba(31, 42, 65, .17);
}

.gbs-cover {
	display: block;
	width: 100% !important;
	height: 100% !important;
	margin: 0 !important;
	border: 0 !important;
	object-fit: cover;
	transition: transform .45s cubic-bezier(.2, .8, .2, 1);
}

.gbs-book:hover .gbs-cover { transform: scale(1.025); }

.gbs-cover-placeholder {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	padding: 22px;
	color: var(--gbs-muted);
	text-align: center;
	background:
		linear-gradient(145deg, rgba(255, 255, 255, .75), rgba(221, 229, 240, .88));
}

.gbs-cover-placeholder::before {
	position: absolute;
	inset: 10px;
	border: 1px dashed rgba(104, 115, 134, .3);
	border-radius: 11px;
	content: "";
}

.gbs-cover-placeholder span {
	font-family: ui-serif, Georgia, serif;
	font-size: 64px;
	font-weight: 700;
	line-height: 1;
}

.gbs-cover-placeholder small {
	position: relative;
	margin-top: 0;
	font-size: 14px;
	font-weight: 650;
	line-height: 1.45;
}

.gbs-cover-placeholder small.gbs-mongolian-text {
	max-height: calc(100% - 44px);
	font-family: var(--gbs-ui-font, inherit) !important;
}

.gbs-access-badge {
	position: absolute;
	top: 10px;
	right: 10px;
	z-index: 2;
	max-width: calc(100% - 20px);
	overflow: hidden;
	padding: 5px 8px;
	border: 1px solid rgba(255, 255, 255, .68);
	border-radius: 999px;
	color: #fff;
	font-size: 9px;
	font-weight: 800;
	line-height: 1;
	letter-spacing: .06em;
	text-overflow: ellipsis;
	white-space: nowrap;
	-webkit-backdrop-filter: blur(12px);
	backdrop-filter: blur(12px);
}

.gbs-access-badge.is-free { background: rgba(52, 146, 83, .82); }
.gbs-access-badge.is-registered { background: rgba(214, 91, 55, .9); }
.gbs-access-badge.gbs-mongolian-text {
	max-width: none;
	max-height: calc(100% - 20px);
	overflow: visible;
	padding: 8px 6px;
	line-height: 1.25;
	letter-spacing: 0 !important;
	text-overflow: clip;
	white-space: normal;
}
.gbs-login-required { background: #d65b37 !important; }
.gbs-button-disabled { cursor: not-allowed; opacity: .72; }

.gbs-registered-gate {
	max-width: 620px;
	margin: 36px auto;
	padding: 34px;
	border: 1px solid rgba(255, 255, 255, .76);
	border-radius: 24px;
	box-shadow: 0 20px 55px rgba(30, 52, 88, .12);
	color: #172033;
	text-align: center;
	background: rgba(244, 248, 255, .82);
	-webkit-backdrop-filter: blur(24px) saturate(145%);
	backdrop-filter: blur(24px) saturate(145%);
}

.gbs-registered-gate h3 { margin: 0 0 10px !important; font-size: 24px !important; }
.gbs-registered-gate p { margin: 0 0 22px !important; color: #667085; }
.gbs-registered-gate-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 44px;
	padding: 0 22px;
	border-radius: 14px;
	color: #fff !important;
	font-weight: 700;
	text-decoration: none !important;
	background: #0a84ff;
}

.gbs-book-info { padding: 16px 3px 2px; }

.gbs-book-info h3 {
	display: -webkit-box;
	min-height: 2.8em;
	margin: 0 !important;
	overflow: hidden;
	color: var(--gbs-text);
	font-size: 16px !important;
	font-weight: 720;
	line-height: 1.4 !important;
	letter-spacing: -.015em;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
}

.gbs-book-title-wrap {
	min-height: 2.8em;
}

.gbs-book-title-wrap.is-mongolian-title {
	height: 45px;
	min-height: 45px;
	overflow: hidden;
}

.gbs-book-info h3.gbs-card-title-mongolian {
	display: flex;
	align-items: flex-start;
	gap: .1em;
	width: 100%;
	max-width: 100%;
	height: 45px;
	min-height: 45px;
	max-height: 45px;
	margin: 0 !important;
	overflow: hidden;
	font-family: var(--gbs-ui-font, -apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", sans-serif) !important;
	font-size: 9px !important;
	line-height: 1.1 !important;
	letter-spacing: -.04em;
	white-space: normal;
	direction: ltr;
	unicode-bidi: isolate;
	-webkit-text-orientation: mixed !important;
	text-orientation: mixed !important;
	-webkit-writing-mode: horizontal-tb !important;
	writing-mode: horizontal-tb !important;
	transform: none !important;
}

.gbs-mongolian-title-column {
	position: relative;
	display: block;
	flex: 0 0 1.2em;
	height: 100%;
	overflow: hidden;
}

.gbs-mongolian-title-word {
	position: absolute;
	top: 5px;
	left: 1.1em;
	display: block;
	font-family: inherit;
	line-height: 1.1;
	letter-spacing: -.04em;
	white-space: nowrap;
	-webkit-text-orientation: mixed !important;
	text-orientation: mixed !important;
	-webkit-writing-mode: horizontal-tb !important;
	writing-mode: horizontal-tb !important;
	transform: rotate(90deg);
	transform-origin: top left;
}

.gbs-content-type {
	margin: 7px 0 0 !important;
	color: var(--gbs-accent);
	font-size: 11px !important;
	font-weight: 800;
	line-height: 1.35 !important;
	letter-spacing: .08em;
	text-transform: uppercase;
}

.gbs-content-type.gbs-mongolian-text {
	max-height: 6.5em;
	text-transform: none;
}

.gbs-author,
.gbs-meta {
	overflow: hidden;
	margin: 7px 0 0 !important;
	color: var(--gbs-muted);
	font-size: 12px !important;
	line-height: 1.45 !important;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.gbs-meta { margin-top: 3px !important; color: #8a94a4; font-size: 11px !important; }

.gbs-author.gbs-has-mongolian,
.gbs-meta.gbs-has-mongolian {
	display: flex;
	align-items: flex-start;
	gap: 3px;
	min-height: 5.8em;
	overflow: visible;
	text-overflow: clip;
	white-space: normal;
}

.gbs-meta-separator { white-space: pre; }

.gbs-actions {
	display: flex;
	gap: 8px;
	margin-top: 14px;
}

.gbs-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 38px;
	margin: 0 !important;
	padding: 0 14px;
	border: 0 !important;
	border-radius: 12px;
	text-decoration: none !important;
	box-shadow: none;
	transition: transform .18s ease, opacity .18s ease, box-shadow .18s ease;
}

.gbs-button:hover { transform: translateY(-1px); opacity: .92; }
.gbs-button svg { width: 17px; height: 17px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.8; }
.gbs-button-primary { flex: 1; gap: 7px; color: #fff !important; background: var(--gbs-accent) !important; font-size: 13px; font-weight: 680; box-shadow: 0 7px 16px color-mix(in srgb, var(--gbs-accent) 24%, transparent); }
.gbs-button-icon { width: 38px; padding: 0; color: var(--gbs-text) !important; background: rgba(255, 255, 255, .7) !important; }

.gbs-button.gbs-has-mongolian {
	min-height: 82px;
	padding-top: 8px;
	padding-bottom: 8px;
}

.gbs-actions-mongolian {
	display: grid;
	grid-template-columns: 54px minmax(0, 1fr);
	grid-template-rows: auto auto;
	align-items: start;
	justify-items: start;
	gap: 8px;
}

.gbs-actions-mongolian .gbs-button-primary {
	grid-column: 1;
	grid-row: 1;
	width: 54px;
	min-height: 116px;
	flex: none;
	flex-direction: column;
	padding: 10px 7px;
}

.gbs-actions-mongolian .gbs-button-icon {
	grid-column: 1;
	grid-row: 2;
	width: 54px;
	min-height: 40px;
}

.gbs-vertical-details {
	display: flex;
	grid-column: 2;
	grid-row: 1 / span 2;
	flex-flow: row wrap;
	align-items: center;
	align-self: start;
	gap: 4px 7px;
	min-height: 0;
	padding: 7px 0 0 2px;
}

.gbs-vertical-detail {
	display: inline-block;
	max-width: 100%;
	color: #8a94a4;
	font-size: 11px;
	line-height: 1.35;
	letter-spacing: .03em;
	white-space: nowrap;
}

.gbs-vertical-detail:not(.gbs-mongolian-text) {
	-webkit-text-orientation: mixed !important;
	text-orientation: mixed !important;
	-webkit-writing-mode: horizontal-tb !important;
	writing-mode: horizontal-tb !important;
}

.gbs-vertical-format {
	color: var(--gbs-accent);
	font-weight: 800;
	letter-spacing: .08em;
}

.gbs-vertical-size::before {
	margin-right: 7px;
	color: #a1a9b7;
	content: "·";
}

.gbs-shelf-edge {
	position: relative;
	z-index: 1;
	width: calc(100% - 12px);
	height: 13px;
	margin: -5px auto 0;
	border: 1px solid rgba(255, 255, 255, .62);
	border-radius: 0 0 14px 14px;
	background: linear-gradient(180deg, rgba(255, 255, 255, .76), rgba(192, 209, 232, .32));
	box-shadow: 0 13px 22px rgba(55, 74, 110, .17), inset 0 1px 0 #fff;
	-webkit-backdrop-filter: blur(16px);
	backdrop-filter: blur(16px);
}

.gbs-empty {
	padding: 70px 24px;
	border-radius: 24px;
	color: var(--gbs-muted);
	text-align: center;
}

.gbs-empty .gbs-mongolian-text {
	max-height: 12em;
}

.gbs-reader[hidden] { display: none !important; }

.gbs-reader {
	position: fixed;
	z-index: 2147483646;
	inset: 0;
	display: grid;
	place-items: center;
	padding: 18px;
	color: #172033;
	font-family: -apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", sans-serif;
}

.gbs-reader-backdrop {
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(178,194,214,.55), rgba(144,169,195,.66));
	-webkit-backdrop-filter: blur(34px) saturate(138%);
	backdrop-filter: blur(34px) saturate(138%);
}

.gbs-reader-panel {
	position: relative;
	display: grid;
	grid-template-rows: auto 1fr;
	width: min(1180px, 96vw);
	height: min(880px, 94vh);
	overflow: hidden;
	border: 1px solid rgba(255,255,255,.84);
	border-radius: 28px;
	background: linear-gradient(180deg, rgba(229,239,249,.91), rgba(196,215,234,.86));
	box-shadow: 0 42px 120px rgba(49,65,87,.30), 0 14px 42px rgba(76,100,132,.18), inset 0 1px 0 rgba(255,255,255,.96);
	-webkit-backdrop-filter: blur(38px) saturate(145%);
	backdrop-filter: blur(38px) saturate(145%);
	animation: gbs-reader-in .25s cubic-bezier(.2, .8, .2, 1);
}

@keyframes gbs-reader-in {
	from { opacity: 0; transform: translateY(14px) scale(.985); }
	to { opacity: 1; transform: none; }
}

.gbs-reader-fullscreen-fallback {
	padding: 0;
}

.gbs-reader-fullscreen-fallback .gbs-reader-backdrop {
	display: none;
}

.gbs-reader-fullscreen-fallback .gbs-reader-panel,
.gbs-reader-panel:fullscreen,
.gbs-reader-panel:-webkit-full-screen {
	width: 100vw;
	height: 100vh;
	height: 100dvh;
	max-width: none;
	max-height: none;
	border: 0;
	border-radius: 0;
	box-shadow: none;
}

.gbs-reader-bar {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 44px;
	padding: 6px 8px;
	border-bottom: 1px solid rgba(34, 47, 70, .08);
	background: linear-gradient(180deg, rgba(244,249,253,.78), rgba(222,234,246,.62));
	-webkit-backdrop-filter: blur(30px) saturate(135%);
	backdrop-filter: blur(30px) saturate(135%);
}

.gbs-reader-navigation {
	display: none !important;
	position: absolute;
	left: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 7px;
	transform: translateX(-50%);
}

.gbs-reader-navigation[hidden] { display: none !important; }

.gbs-reader-navigation button {
	display: inline-grid;
	width: 34px;
	height: 34px;
	padding: 0;
	place-items: center;
	border: 1px solid rgba(30, 42, 61, .08) !important;
	border-radius: 10px;
	color: #344054;
	background: rgba(229, 234, 242, .76) !important;
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, .9);
}

.gbs-reader-navigation button { font-size: 23px; line-height: 1; }
.gbs-reader-navigation button:disabled { opacity: .35; cursor: default; }
.gbs-reader-navigation select { width: min(260px, 28vw); height: 34px; margin: 0; padding: 0 28px 0 10px; border: 1px solid rgba(30, 42, 61, .08); border-radius: 10px; background-color: rgba(229, 234, 242, .76); font-size: 12px; }
.gbs-reader-navigation span { min-width: 42px; color: #788397; font-size: 11px; text-align: center; }

.gbs-reader-actions {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 7px;
	justify-self: center;
}

.gbs-reader-icon {
	display: inline-grid;
	width: 30px;
	height: 30px;
	padding: 0 !important;
	place-items: center;
	border: 1px solid rgba(105,125,151,.12) !important;
	border-radius: 10px;
	color: #64758a;
	background: linear-gradient(180deg, rgba(248,251,254,.91), rgba(215,228,241,.66)) !important;
	box-shadow: inset 0 1px 0 rgba(255,255,255,.98), 0 8px 20px rgba(72,93,121,.12);
	opacity: .88;
	transition: background .16s ease, color .16s ease, opacity .16s ease;
}

.gbs-reader-icon:hover,
.gbs-reader-icon:focus-visible {
	color: #475569;
	background: rgba(226, 232, 240, .88) !important;
	opacity: 1;
}

.gbs-reader-icon svg {
	width: 15px;
	height: 15px;
	fill: none;
	stroke: currentColor;
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-width: 1.65;
}


.gbs-reader-font span { font-size: 11px; font-weight: 760; line-height: 1; }
.gbs-reader-turn[hidden] { display:none !important; }
.gbs-reader-turn { position:absolute; z-index:12; top:52%; display:grid; place-items:center; width:44px; height:44px; padding:0!important; border:1px solid rgba(255,255,255,.72)!important; border-radius:50%; color:#708197; background:rgba(245,250,253,.52)!important; box-shadow:0 10px 28px rgba(62,82,105,.10), inset 0 1px 0 rgba(255,255,255,.96); -webkit-backdrop-filter:blur(18px); backdrop-filter:blur(18px); transform:translateY(-50%); }
.gbs-reader-turn-prev{left:18px}.gbs-reader-turn-next{right:18px}.gbs-reader-turn svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.gbs-reader-fullscreen .gbs-icon-exit-fullscreen { display: none; }
.gbs-reader-fullscreen.is-fullscreen .gbs-icon-enter-fullscreen { display: none; }
.gbs-reader-fullscreen.is-fullscreen .gbs-icon-exit-fullscreen { display: block; }

.gbs-reader-body {
	position: relative;
	min-height: 0;
	overflow: hidden;
	/* v1.5.37: use a pure solid reader background instead of a gradient. */
	background: var(--gbs-reader-bg-start,#efe5b8);
	box-shadow: inset 0 1px 0 rgba(255,255,255,.72);
}

.gbs-reader-frame { width: 100%; height: 100%; border: 0; background: var(--gbs-reader-bg-start,#efe5b8); }

.gbs-reader-ad[hidden] { display: none !important; }
.gbs-reader-ad {
	position: absolute;
	z-index: 40;
	inset: 0;
	display: grid;
	place-items: center;
	padding: 22px;
	opacity: 0;
	transition: opacity .22s ease;
}
.gbs-reader-ad.is-visible { opacity: 1; }
.gbs-reader-ad-backdrop {
	position: absolute;
	inset: 0;
	background: rgba(26,38,57,.34);
	-webkit-backdrop-filter: blur(12px) saturate(118%);
	backdrop-filter: blur(12px) saturate(118%);
}
.gbs-reader-ad-card {
	position: relative;
	z-index: 1;
	display: grid;
	grid-template-columns: minmax(0,1.08fr) minmax(220px,.92fr);
	width: min(760px,92%);
	max-height: min(580px,90%);
	overflow: hidden;
	border: 1px solid rgba(255,255,255,.88);
	border-radius: 24px;
	background: rgba(247,250,253,.92);
	box-shadow: 0 30px 90px rgba(19,31,48,.34), inset 0 1px 0 rgba(255,255,255,.96);
	-webkit-backdrop-filter: blur(30px) saturate(140%);
	backdrop-filter: blur(30px) saturate(140%);
	transform: translateY(10px) scale(.985);
	transition: transform .22s ease;
}
.gbs-reader-ad.is-visible .gbs-reader-ad-card { transform: none; }
.gbs-reader-ad-link { display: contents; color: inherit; text-decoration: none !important; }
.gbs-reader-ad-image {
	display: block;
	width: 100%;
	height: 100%;
	min-height: 280px;
	object-fit: cover;
	background: #e9eef5;
}
.gbs-reader-ad-copy {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	justify-content: center;
	padding: 34px 30px;
	text-align: left;
	min-width: 0;
}
.gbs-reader-ad-copy h3 { margin: 0 0 10px; color:#172033; font-size:clamp(23px,3vw,34px); line-height:1.18; }
.gbs-reader-ad-copy p { margin:0 0 22px; color:#536176; font-size:14px; line-height:1.8; }

.gbs-reader-ad-mark {
	position: absolute;
	z-index: 4;
	top: 12px;
	left: 12px;
	padding: 5px 9px;
	border-radius: 999px;
	background: rgba(20,25,33,.62);
	color: #fff;
	font-size: 10px;
	font-weight: 700;
	letter-spacing: .08em;
	pointer-events: none;
}
.gbs-reader-ad-close {
	position: absolute;
	z-index: 5;
	top: 12px;
	right: 12px;
	width: 40px;
	height: 40px;
	border: 1px solid rgba(255,255,255,.5);
	border-radius: 999px;
	background: rgba(20,25,33,.7);
	color: #fff;
	font-size: 15px;
	font-weight: 750;
	line-height: 1;
	cursor: pointer;
	box-shadow: 0 8px 24px rgba(0,0,0,.16);
}
.gbs-reader-ad-close:disabled { cursor: default; opacity: .84; }
.gbs-reader-ad-card.no-image { grid-template-columns: 1fr; width:min(540px,90%); }
.gbs-reader-ad-card.no-image .gbs-reader-ad-copy { min-height:250px; padding-top:58px; }
.gbs-reader-ad-mongolian {
	writing-mode: vertical-lr;
	text-orientation: sideways-right;
	font-family: var(--gbs-ui-font,var(--gbs-reader-font),sans-serif);
	max-height: 250px;
	width: auto;
}
.gbs-reader-ad-copy h3.gbs-reader-ad-mongolian { margin:0 0 0 14px; min-height:120px; }
.gbs-reader-ad-copy p.gbs-reader-ad-mongolian { margin:0 0 0 14px; min-height:120px; }

/* v2.0.6 — desktop reader ad matches mobile logic: big hero image with
 * centered Mongolian copy directly on the image, using white glow/shadow. */
.gbs-reader-ad-card:not(.no-image) {
	display: block;
	width: min(760px,92%);
	height: min(580px,90vh);
	max-height: min(580px,90vh);
	background: #e9eef5;
}
.gbs-reader-ad-card:not(.no-image) .gbs-reader-ad-link {
	display: block;
	position: relative;
	width: 100%;
	height: 100%;
}
.gbs-reader-ad-card:not(.no-image) .gbs-reader-ad-image {
	position: absolute;
	inset: 0;
	display: block;
	width: 100%;
	height: 100%;
	min-height: 0;
	object-fit: cover;
	object-position: center center;
	background: #e9eef5;
}
.gbs-reader-ad-card:not(.no-image) .gbs-reader-ad-copy {
	position: absolute;
	z-index: 3;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	width: auto;
	max-width: 58%;
	height: min(58%, 440px);
	min-width: 120px;
	min-height: 220px;
	padding: 0;
	display: flex;
	flex-direction: row;
	align-items: center;
	justify-content: center;
	gap: 16px;
	overflow: visible;
	text-align: left;
}
.gbs-reader-ad-card:not(.no-image) .gbs-reader-ad-copy h3,
.gbs-reader-ad-card:not(.no-image) .gbs-reader-ad-copy p {
	margin: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	max-height: 100%;
	overflow: hidden;
	filter: drop-shadow(0 0 10px rgba(255,255,255,.88)) drop-shadow(0 0 20px rgba(255,255,255,.72));
	text-shadow: 0 0 10px rgba(255,255,255,.96), 0 0 18px rgba(255,255,255,.85), 0 2px 12px rgba(255,255,255,.68), 0 4px 14px rgba(15,28,46,.16);
}
.gbs-reader-ad-card:not(.no-image) .gbs-reader-ad-copy h3.gbs-reader-ad-mongolian,
.gbs-reader-ad-card:not(.no-image) .gbs-reader-ad-copy p.gbs-reader-ad-mongolian {
	-webkit-writing-mode: vertical-lr !important;
	writing-mode: vertical-lr !important;
	-webkit-text-orientation: sideways-right !important;
	text-orientation: sideways !important;
	direction: ltr !important;
	width: auto;
	height: 100%;
	max-height: 100%;
	white-space: normal;
	font-family: var(--gbs-reader-font, var(--gbs-ui-font, sans-serif)) !important;
	line-height: 1.5;
	display: flex;
	align-items: center;
	justify-content: center;
}
.gbs-reader-ad-card:not(.no-image) .gbs-reader-ad-copy h3.gbs-reader-ad-mongolian {
	font-size: clamp(32px, 4.2vw, 42px);
	font-weight: 700;
	color: #172033;
}
.gbs-reader-ad-card:not(.no-image) .gbs-reader-ad-copy p.gbs-reader-ad-mongolian {
	font-size: clamp(18px, 2vw, 22px);
	color: #27364c;
}
.gbs-reader-ad-card:not(.no-image) .gbs-reader-ad-copy h3:not(.gbs-reader-ad-mongolian),
.gbs-reader-ad-card:not(.no-image) .gbs-reader-ad-copy p:not(.gbs-reader-ad-mongolian) {
	writing-mode: horizontal-tb;
	text-orientation: mixed;
}
.gbs-reader-ad-card:not(.no-image) .gbs-reader-ad-copy:empty {
	display: none;
}

.gbs-reader-loading,
.gbs-reader-message {
	position: absolute;
	inset: 0;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	padding: 30px;
	color: #6c7789;
	text-align: center;
	background: #f4f6f9;
}

.gbs-reader-loading[hidden],
.gbs-reader-message[hidden] { display: none !important; }
.gbs-reader-loading p { margin: 14px 0 0; font-size: 13px; }

.gbs-spinner {
	width: 30px;
	height: 30px;
	border: 3px solid rgba(10, 132, 255, .18);
	border-top-color: var(--gbs-accent);
	border-radius: 50%;
	animation: gbs-spin .75s linear infinite;
}

@keyframes gbs-spin { to { transform: rotate(360deg); } }

.gbs-reader-message h3 { margin: 0 0 8px; color: #273246; font-size: 20px; }
.gbs-reader-message p { max-width: 560px; margin: 0 0 18px; font-size: 14px; line-height: 1.7; }
.gbs-reader-message a { display: inline-flex; min-height: 42px; align-items: center; padding: 0 18px; border-radius: 12px; color: white; background: var(--gbs-accent); font-size: 13px; font-weight: 650; text-decoration: none; }

.gbs-docx-view {
	height: 100%;
	max-width: none;
	margin: 0 !important;
	padding: clamp(30px, 6vw, 72px) max(24px, calc((100% - 820px) / 2));
	overflow: auto;
	color: #222b3a;
	background: transparent;
	font-family: ui-serif, Georgia, "Times New Roman", serif;
	font-size: var(--gbs-reader-font-size, 26px);
	line-height: 1.75;
}

.gbs-docx-view[hidden] { display: none !important; }
.gbs-docx-view h1, .gbs-docx-view h2, .gbs-docx-view h3 { margin: 1.4em 0 .65em; color: #121926; line-height: 1.25; }
.gbs-docx-view p { margin: 0 0 1em; }
.gbs-docx-view img { max-width: 100%; height: auto; }
.gbs-docx-view table { width: 100%; margin: 1.5em 0; border-collapse: collapse; }
.gbs-docx-view td { padding: 7px 10px; border: 1px solid #cdd4df; }


/* DOCX: preserve Word vertical text direction, including Traditional Mongolian. */
.gbs-docx-view.gbs-docx-vertical {
	-webkit-writing-mode: vertical-lr !important;
	writing-mode: vertical-lr !important;
	width: 100%;
	height: 100%;
	max-width: none;
	padding: 34px 38px;
	overflow-x: auto;
	overflow-y: hidden;
	overscroll-behavior-inline: contain;
	text-align: start;
	line-height: 1.75;
}

.gbs-docx-view.gbs-docx-vertical-mongolian {
	-webkit-writing-mode: vertical-lr !important;
	writing-mode: vertical-lr !important;
	-webkit-text-orientation: sideways-right !important;
	text-orientation: sideways !important;
	direction: ltr;
	font-family: inherit;
}

.gbs-docx-view.gbs-docx-vertical-rl {
	-webkit-writing-mode: vertical-rl !important;
	writing-mode: vertical-rl !important;
	-webkit-text-orientation: mixed !important;
	text-orientation: mixed !important;
}

.gbs-docx-view.gbs-docx-vertical p,
.gbs-docx-view.gbs-docx-vertical h1,
.gbs-docx-view.gbs-docx-vertical h2,
.gbs-docx-view.gbs-docx-vertical h3 {
	margin: 0;
	margin-block-end: 1.3em;
	line-height: 1.75;
}

.gbs-docx-view.gbs-docx-vertical p {
	text-indent: 2em;
	white-space: pre-wrap;
}

.gbs-docx-view.gbs-docx-vertical .gbs-docx-empty-paragraph {
	min-width: 1em;
	text-indent: 0;
	margin-block-end: .8em;
}

.gbs-docx-view.gbs-docx-vertical table {
	width: auto;
	height: auto;
	margin: 0;
	margin-block-end: 1.5em;
}

.gbs-docx-view.gbs-docx-vertical img {
	max-width: min(70vw, 720px);
	max-height: 82vh;
}


/* v1.5.36: isolated server-cached DOCX reader.
 * IMPORTANT: the scroll viewport stays horizontal-tb. Only the inner content
 * uses vertical writing, so iOS WebKit cannot move the scroll origin to the
 * physical bottom of the reader. */
.gbs-docx-view.gbs-docx-cached,
.gbs-docx-view.gbs-docx-cache-viewport {
	position: absolute !important;
	inset: 0 !important;
	box-sizing: border-box !important;
	width: 100% !important;
	height: 100% !important;
	max-width: none !important;
	margin: 0 !important;
	padding: 0 !important;
	overflow-x: auto !important;
	overflow-y: hidden !important;
	-webkit-overflow-scrolling: touch !important;
	overscroll-behavior-x: contain !important;
	background: var(--gbs-reader-bg-start,#efe5b8) !important;
	-webkit-writing-mode: horizontal-tb !important;
	writing-mode: horizontal-tb !important;
	-webkit-text-orientation: mixed !important;
	text-orientation: mixed !important;
	direction: ltr !important;
	text-align: left !important;
	touch-action: pan-x !important;
}

.gbs-docx-cache-content {
	position: absolute !important;
	top: 18px !important;
	left: 18px !important;
	box-sizing: border-box !important;
	max-width: none !important;
	margin: 0 !important;
	padding: 0 18px 0 0 !important;
	color: #222b3a !important;
	background: var(--gbs-reader-bg-start,#efe5b8) !important;
	font-family: var(--gbs-reader-font, ui-serif, Georgia, "Times New Roman", serif) !important;
	font-size: var(--gbs-reader-font-size, 26px) !important;
	font-weight: 400 !important;
	font-style: normal !important;
	font-synthesis: none !important;
	font-variant-ligatures: common-ligatures contextual !important;
	line-height: 1.75 !important;
	text-align: start !important;
}

.gbs-docx-cache-content.is-vertical {
	height: calc(100% - 36px) !important;
	min-height: 0 !important;
	width: max-content !important;
	min-width: max-content !important;
	-webkit-writing-mode: vertical-lr !important;
	writing-mode: vertical-lr !important;
	-webkit-text-orientation: mixed !important;
	text-orientation: mixed !important;
	direction: ltr !important;
	white-space: pre-wrap !important;
	word-break: normal !important;
	overflow-wrap: normal !important;
	text-combine-upright: none !important;
	font-feature-settings: "vert" 1, "vrt2" 1 !important;
	-webkit-font-feature-settings: "vert" 1, "vrt2" 1 !important;
}

.gbs-docx-cache-content.is-vertical.is-mongolian {
	-webkit-text-orientation: sideways-right !important;
	text-orientation: sideways !important;
}

.gbs-docx-cache-content.is-vertical > *,
.gbs-docx-cache-content.is-vertical p,
.gbs-docx-cache-content.is-vertical h1,
.gbs-docx-cache-content.is-vertical h2,
.gbs-docx-cache-content.is-vertical h3,
.gbs-docx-cache-content.is-vertical h4,
.gbs-docx-cache-content.is-vertical h5,
.gbs-docx-cache-content.is-vertical h6 {
	position: static !important;
	display: block !important;
	-webkit-writing-mode: inherit !important;
	writing-mode: inherit !important;
	-webkit-text-orientation: inherit !important;
	text-orientation: inherit !important;
	direction: inherit !important;
	height: auto !important;
	min-height: 0 !important;
	max-height: none !important;
	padding: 0 !important;
	margin: 0 !important;
	margin-block-end: 1.3em !important;
	text-align: start !important;
	vertical-align: top !important;
	background: transparent !important;
}

.gbs-docx-cache-content.is-vertical p:not(.gbs-docx-empty-paragraph) {
	text-indent: 2em !important;
	white-space: pre-wrap !important;
}

.gbs-docx-cache-content.is-vertical .gbs-docx-empty-paragraph {
	min-width: 1em !important;
	text-indent: 0 !important;
	margin-block-end: .8em !important;
	white-space: pre-wrap !important;
}

.gbs-docx-cache-content.is-vertical h1,
.gbs-docx-cache-content.is-vertical h2,
.gbs-docx-cache-content.is-vertical h3,
.gbs-docx-cache-content.is-vertical h4,
.gbs-docx-cache-content.is-vertical h5,
.gbs-docx-cache-content.is-vertical h6 {
	text-indent: 0 !important;
}

.gbs-docx-cache-content .gbs-docx-table-text {
	display: block !important;
	margin: 0 !important;
	padding: 0 !important;
}

/* v1.5.52: Word-faithful single-axis punctuation.
 * Punctuation is no longer wrapped or repositioned. All characters stay in
 * the same inline flow so the active reader font controls glyph placement. */
.gbs-docx-cache-content.is-vertical.is-mongolian,
.gbs-docx-view.is-mongolian {
	font-kerning: normal !important;
	font-variant-position: normal !important;
}

.gbs-docx-cache-content.is-vertical.is-mongolian span,
.gbs-docx-view.is-mongolian span {
	-webkit-writing-mode: inherit !important;
	writing-mode: inherit !important;
	-webkit-text-orientation: inherit !important;
	text-orientation: inherit !important;
	vertical-align: baseline !important;
	position: static !important;
	transform: none !important;
	margin: 0 !important;
	padding: 0 !important;
	letter-spacing: inherit !important;
	line-height: inherit !important;
}

body.gbs-no-scroll { overflow: hidden !important; }

@media (max-width: 760px) {
	.gbs-bookshelf { min-height: 560px; margin-top: calc(var(--gbs-fixed-header-offset) + 24px); margin-bottom: 24px; padding: 14px; border-radius: 22px; }
	.gbs-bookshelf.gbs-fullwidth { width: 100vw; margin-left: calc(50% - 50vw); border-radius: 0; }
	.gbs-hero { min-height: 135px; padding: 24px; border-radius: 24px; }
	.gbs-hero-vertical { min-height: 270px; }
	.gbs-title-vertical { height: 180px; max-height: none; }
	.gbs-hero-symbol { top: 24px; right: 24px; width: 62px; height: 62px; border-radius: 19px; }
	.gbs-hero-symbol svg { width: 38px; height: 38px; }
	.gbs-toolbar { grid-template-columns: 1fr 1fr; margin: 12px 0 22px; gap: 8px; border-radius: 19px; }
	.gbs-search { grid-column: 1 / -1; }
	.gbs-select-wrap select { min-width: 0; }
	.gbs-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 17px 10px; }
	.gbs-book-glass { padding: 9px; border-radius: 19px; }
	.gbs-cover-wrap { border-radius: 12px; }
	.gbs-book-info { padding: 11px 1px 1px; }
	.gbs-book-info h3 { min-height: 2.7em; font-size: 14px !important; }
	.gbs-book-title-wrap.is-mongolian-title { height: 45px; min-height: 45px; }
	.gbs-book-info h3.gbs-card-title-mongolian { height: 45px; min-height: 45px; max-height: 45px; font-size: 8px !important; }
	.gbs-content-type { font-size: 10px !important; }
	.gbs-author { font-size: 11px !important; }
	.gbs-meta { display: none; }
	.gbs-actions { margin-top: 10px; }
	.gbs-button-primary { min-height: 36px; padding: 0 9px; }
	.gbs-button-icon { width: 36px; min-height: 36px; }
	.gbs-shelf-edge { height: 10px; }
	.gbs-reader { inset: var(--gbs-fixed-header-offset, 0px) 0 0; padding: 10px 5px 5px; place-items: stretch; }
	.gbs-reader-panel { width: 100%; height: 100%; border-radius: 22px; }
	.gbs-reader-bar { min-height: 42px; padding: 6px 7px; }
	.gbs-reader-actions { gap: 6px; justify-content:center; justify-self:center; }
	.gbs-reader-icon { width: 29px; height: 29px; border-radius: 9px; }
	.gbs-reader-font span { font-size:10px; }
	.gbs-reader-turn { width:38px; height:38px; }
	.gbs-reader-turn-prev{left:10px}.gbs-reader-turn-next{right:10px}
	.gbs-reader-navigation { gap: 3px; }
	.gbs-reader-navigation select { width: 30vw; }
	.gbs-reader-navigation span { display: none; }
	.gbs-docx-view { padding: 30px 20px; font-size: 16px; }
	.gbs-docx-view.gbs-docx-vertical { padding: 22px 18px; }
	.gbs-docx-cache-content { top: 14px !important; left: 14px !important; padding-right: 14px !important; }
	.gbs-docx-cache-content.is-vertical { height: calc(100% - 28px) !important; }

	/* v1.5.53: mobile uses the exact same single-axis Mongolian text flow as desktop. */
	.gbs-docx-cache-content.is-vertical.is-mongolian {
		-webkit-writing-mode: vertical-lr !important;
		writing-mode: vertical-lr !important;
		-webkit-text-orientation: sideways-right !important;
		text-orientation: sideways !important;
		direction: ltr !important;
		text-combine-upright: none !important;
		font-family: var(--gbs-reader-font, ui-serif, Georgia, "Times New Roman", serif) !important;
		font-size: var(--gbs-reader-font-size, 26px) !important;
		line-height: 1.75 !important;
	}

	.gbs-docx-cache-content.is-vertical.is-mongolian *,
	.gbs-docx-cache-content.is-vertical.is-mongolian *::before,
	.gbs-docx-cache-content.is-vertical.is-mongolian *::after {
		-webkit-writing-mode: inherit !important;
		writing-mode: inherit !important;
		-webkit-text-orientation: inherit !important;
		text-orientation: inherit !important;
		font-family: inherit !important;
		font-size: inherit !important;
		font-weight: inherit !important;
		font-style: inherit !important;
		line-height: inherit !important;
		letter-spacing: inherit !important;
		vertical-align: baseline !important;
		transform: none !important;
		translate: none !important;
		rotate: none !important;
		scale: none !important;
		text-combine-upright: none !important;
	}
}

@media (max-width: 390px) {
	.gbs-hero-symbol { display: none; }
	.gbs-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.gbs-button-icon { display: none; }
}

@media (prefers-reduced-motion: reduce) {
	.gbs-bookshelf *, .gbs-bookshelf *::before, .gbs-bookshelf *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; transition-duration: .01ms !important; }
}


/* v1.5.39: isolate Gaiha Bookshelf reader from Gaiha Radio / Media overlays.
 * Radio's video reader uses a very high fixed z-index, so the bookshelf reader
 * must sit above it and temporarily suppress radio/media UI while open. */
html.gbs-reader-open,
body.gbs-reader-open {
	overflow: hidden !important;
}

body.gbs-reader-open .gaiha-media-library,
body.gbs-reader-open .gaiha-radio-sticky,
body.gbs-reader-open .gaiha-media-reader,
body.gbs-reader-open > .gaiha-media-reader,
body.gbs-reader-open .gaiha-radio-component,
body.gbs-reader-open .gaiha-radio-page__player {
	opacity: 0 !important;
	visibility: hidden !important;
	pointer-events: none !important;
}

body.gbs-reader-open .gbs-reader,
body.gbs-reader-open .gbs-reader * {
	visibility: visible;
}

body.gbs-reader-open .gbs-reader {
	opacity: 1 !important;
	z-index: 2147483646 !important;
}

@media (max-width: 760px) {
	.gbs-library-title-image-wrap { padding: 8px 10px; border-radius: 22px; }
	.gbs-library-title-image { width: min(100%, var(--gbs-title-image-width, 220px)); }
}

/* v1.5.50: Word-match reader font enforcement. */
.gbs-reader-body .gbs-docx-view,
.gbs-reader-body .gbs-docx-view *,
.gbs-reader-body .gbs-docx-cache-content,
.gbs-reader-body .gbs-docx-cache-content * {
	font-family: var(--gbs-reader-font, ui-serif, Georgia, "Times New Roman", serif) !important;
	font-synthesis: none !important;
}

.gbs-reader-body .gbs-docx-view,
.gbs-reader-body .gbs-docx-cache-content {
	font-size: var(--gbs-reader-font-size, 26px) !important;
}

.gbs-docx-cache-content.is-vertical.is-mongolian,
.gbs-docx-view.gbs-docx-vertical-mongolian {
	font-variant-ligatures: common-ligatures contextual !important;
	font-feature-settings: "ccmp" 1, "locl" 1, "rlig" 1, "calt" 1, "liga" 1 !important;
	-webkit-font-feature-settings: "ccmp" 1, "locl" 1, "rlig" 1, "calt" 1, "liga" 1 !important;
}

/* v1.5.55 Performance Core: reduce mobile GPU cost without changing layout */
.gbs-reader-panel {
    contain: layout paint;
}
.gbs-reader-body,
.gbs-docx-cache-content,
.gbs-reader-frame {
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}
.gbs-reader-backdrop {
    -webkit-backdrop-filter: blur(12px) saturate(120%);
    backdrop-filter: blur(12px) saturate(120%);
}
.gbs-reader-panel {
    -webkit-backdrop-filter: blur(16px) saturate(125%);
    backdrop-filter: blur(16px) saturate(125%);
}
@media (max-width:760px) {
    .gbs-reader-backdrop {
        -webkit-backdrop-filter: blur(6px) saturate(110%);
        backdrop-filter: blur(6px) saturate(110%);
    }
    .gbs-reader-panel {
        -webkit-backdrop-filter: blur(10px) saturate(115%);
        backdrop-filter: blur(10px) saturate(115%);
    }
}

.gbs-reader-ad-link[href]{cursor:pointer;}
.gbs-reader-ad-link[href] .gbs-reader-ad-copy{cursor:pointer;}


/* v2.0.4 — mobile reader ad: keep the original big-image feel and place
 * the Mongolian copy directly over the image with a soft white glow/shadow.
 * No translucent glass text panel on mobile. Desktop layout is unchanged. */
@media (max-width: 760px) {
    .gbs-reader-ad {
        padding: 20px 12px 24px;
        place-items: center;
    }
    .gbs-reader-ad-card:not(.no-image) {
        display: block;
        position: relative;
        width: min(88vw, 430px);
        height: min(72vh, 720px);
        max-height: 72vh;
        overflow: hidden;
        border-radius: 28px;
        background: #e9eef5;
        box-shadow: 0 28px 78px rgba(19,31,48,.34), inset 0 1px 0 rgba(255,255,255,.9);
    }
    .gbs-reader-ad-card:not(.no-image) .gbs-reader-ad-link {
        display: block;
        position: relative;
        width: 100%;
        height: 100%;
    }
    .gbs-reader-ad-card:not(.no-image) .gbs-reader-ad-image {
        position: absolute;
        inset: 0;
        display: block;
        width: 100%;
        height: 100%;
        min-height: 0;
        object-fit: cover;
        object-position: center center;
        background: #e9eef5;
    }
    .gbs-reader-ad-card:not(.no-image) .gbs-reader-ad-copy {
        position: absolute;
        z-index: 3;
        top: 50%;
        left: 50%;
        right: auto;
        bottom: auto;
        transform: translate(-50%, -50%);
        width: auto;
        max-width: 62%;
        height: min(56%, 420px);
        min-width: 88px;
        min-height: 180px;
        padding: 0;
        display: flex;
        flex-direction: row;
        align-items: center;
        justify-content: center;
        gap: 12px;
        overflow: visible;
        border: 0;
        border-radius: 0;
        background: transparent;
        box-shadow: none;
        -webkit-backdrop-filter: none;
        backdrop-filter: none;
        text-align: left;
    }
    .gbs-reader-ad-card:not(.no-image) .gbs-reader-ad-copy h3,
    .gbs-reader-ad-card:not(.no-image) .gbs-reader-ad-copy p {
        min-width: 0;
        max-width: none;
        max-height: 100%;
        min-height: 0;
        margin: 0;
        overflow: hidden;
        display: flex;
        align-items: center;
        justify-content: center;
        filter: drop-shadow(0 0 8px rgba(255,255,255,.86)) drop-shadow(0 0 18px rgba(255,255,255,.68));
        text-shadow: 0 0 10px rgba(255,255,255,.95), 0 0 18px rgba(255,255,255,.82), 0 2px 12px rgba(255,255,255,.65), 0 3px 12px rgba(15,28,46,.16);
    }
    .gbs-reader-ad-card:not(.no-image) .gbs-reader-ad-copy h3.gbs-reader-ad-mongolian,
    .gbs-reader-ad-card:not(.no-image) .gbs-reader-ad-copy p.gbs-reader-ad-mongolian {
        -webkit-writing-mode: vertical-lr !important;
        writing-mode: vertical-lr !important;
        -webkit-text-orientation: sideways-right !important;
        text-orientation: sideways !important;
        direction: ltr !important;
        width: auto;
        height: 100%;
        max-height: 100%;
        display: flex;
        align-items: center;
        justify-content: center;
        white-space: normal;
        font-family: var(--gbs-reader-font, var(--gbs-ui-font, sans-serif)) !important;
        line-height: 1.5;
    }
    .gbs-reader-ad-card:not(.no-image) .gbs-reader-ad-copy h3.gbs-reader-ad-mongolian {
        font-size: clamp(24px, 6.5vw, 32px);
        font-weight: 700;
        color: #172033;
    }
    .gbs-reader-ad-card:not(.no-image) .gbs-reader-ad-copy p.gbs-reader-ad-mongolian {
        font-size: clamp(15px, 3.9vw, 18px);
        color: #27364c;
    }
    .gbs-reader-ad-card:not(.no-image) .gbs-reader-ad-copy h3:not(.gbs-reader-ad-mongolian),
    .gbs-reader-ad-card:not(.no-image) .gbs-reader-ad-copy p:not(.gbs-reader-ad-mongolian) {
        writing-mode: horizontal-tb;
        text-orientation: mixed;
    }
    .gbs-reader-ad-card:not(.no-image) .gbs-reader-ad-copy:empty {
        display: none;
    }
    .gbs-reader-ad-mark {
        top: 14px;
        left: 14px;
    }
    .gbs-reader-ad-close {
        top: 14px;
        right: 14px;
        width: 44px;
        height: 44px;
    }
}

@media (max-width: 390px) {
    .gbs-reader-ad-card:not(.no-image) {
        width: min(90vw, 390px);
        height: min(70vh, 650px);
    }
    .gbs-reader-ad-card:not(.no-image) .gbs-reader-ad-copy {
        top: 50%;
        left: 50%;
        right: auto;
        bottom: auto;
        transform: translate(-50%, -50%);
        width: auto;
        max-width: 66%;
        height: min(52%, 360px);
        min-width: 78px;
        min-height: 160px;
        gap: 8px;
    }
    .gbs-reader-ad-card:not(.no-image) .gbs-reader-ad-copy h3.gbs-reader-ad-mongolian {
        font-size: clamp(22px, 6.2vw, 28px);
    }
    .gbs-reader-ad-card:not(.no-image) .gbs-reader-ad-copy p.gbs-reader-ad-mongolian {
        font-size: clamp(14px, 3.8vw, 16px);
    }
}
