#fbContainer {
	position: relative;
	width: 100%;
	height: 100%;
	display: flex;
	align-items: center;
	justify-content: center;
	overflow: hidden;
	background-color: #003557;
}

.fb-stage {
	position: relative;
	transform-style: preserve-3d;
}

.fb-book {
	position: relative;
	width: 100%;
	height: 100%;
	box-shadow: 0 25px 60px rgba(0, 0, 0, 0.55);
}

.fb-page-slot {
	position: absolute;
	top: 0;
	width: 50%;
	height: 100%;
	background-color: #003557;
	overflow: hidden;
}
.fb-page-slot.left { left: 0; }
.fb-page-slot.right { left: 50%; }
.fb-page-slot img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.fb-page-slot.clickable { cursor: pointer; }
.fb-page-slot.clickable:hover img { filter: brightness(1.04); }

.fb-spine {
	position: absolute;
	top: 0;
	left: 50%;
	width: 14px;
	height: 100%;
	margin-left: -7px;
	pointer-events: none;
	z-index: 15;
	background: linear-gradient(to right,
		rgba(0,0,0,0) 0%,
		rgba(0,0,0,0.25) 45%,
		rgba(0,0,0,0.25) 55%,
		rgba(0,0,0,0) 100%);
}

.fb-flip {
	position: absolute;
	top: 0;
	width: 50%;
	height: 100%;
	z-index: 20;
	transform-style: preserve-3d;
	pointer-events: none;
	display: none;
}
.fb-flip.right-flip { left: 50%; transform-origin: left center; }
.fb-flip.left-flip { left: 0; transform-origin: right center; }

.fb-flip-face {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	backface-visibility: hidden;
	overflow: hidden;
	background-color: #003557;
}
.fb-flip-face img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.fb-flip-back { transform: rotateY(180deg); }

.fb-flip-shade {
	position: absolute;
	inset: 0;
	pointer-events: none;
	opacity: 0;
	background: linear-gradient(to right, rgba(0,0,0,0.45), rgba(0,0,0,0));
}
.right-flip .fb-flip-shade { background: linear-gradient(to left, rgba(0,0,0,0.45), rgba(0,0,0,0)); }

@keyframes fbFlipRight { from { transform: rotateY(0deg); } to { transform: rotateY(-180deg); } }
@keyframes fbFlipLeft { from { transform: rotateY(0deg); } to { transform: rotateY(180deg); } }
@keyframes fbShadePulse { 0% { opacity: 0; } 45% { opacity: 1; } 55% { opacity: 1; } 100% { opacity: 0; } }

.fb-flip.animating { display: block; }
.fb-flip.animating.right-flip { animation: fbFlipRight 0.7s ease-in-out forwards; }
.fb-flip.animating.left-flip { animation: fbFlipLeft 0.7s ease-in-out forwards; }
.fb-flip.animating .fb-flip-shade { animation: fbShadePulse 0.7s ease-in-out forwards; }

.fb-hint {
	position: absolute;
	top: 12px;
	right: 12px;
	background: rgba(0,0,0,0.55);
	color: #fff;
	font: bold 12px/1.4 Arial, Helvetica, sans-serif;
	padding: 6px 10px;
	border-radius: 3px;
	z-index: 30;
	opacity: 0;
	pointer-events: none;
	transition: opacity 0.6s ease;
}
.fb-hint.show { opacity: 1; }

#fbMenu img { cursor: pointer; transition: opacity 0.15s ease; }
#fbMenu img:hover { opacity: 0.75; }
#fbMenu img.disabled { opacity: 0.35; cursor: default; pointer-events: none; }
#fbContentsMenu { cursor: pointer; }

.fb-zoom-overlay {
	position: fixed;
	inset: 0;
	background: rgba(0, 0, 0, 0.88);
	z-index: 1000;
	display: flex;
	align-items: center;
	justify-content: center;
	opacity: 0;
	pointer-events: none;
	transition: opacity 0.25s ease;
}
.fb-zoom-overlay.open { opacity: 1; pointer-events: auto; }

.fb-zoom-content {
	display: flex;
	gap: 4px;
	max-width: 94vw;
	max-height: 88vh;
}
.fb-zoom-content img {
	max-width: 46vw;
	max-height: 88vh;
	object-fit: contain;
	box-shadow: 0 10px 40px rgba(0,0,0,0.6);
	background: #003557;
}

.fb-zoom-close,
.fb-zoom-nav {
	position: absolute;
	background: rgba(255,255,255,0.08);
	border: 1px solid rgba(255,255,255,0.4);
	color: #fff;
	font: bold 18px/1 Arial, Helvetica, sans-serif;
	cursor: pointer;
	border-radius: 50%;
	width: 40px;
	height: 40px;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: background 0.15s ease;
}
.fb-zoom-close:hover,
.fb-zoom-nav:hover { background: rgba(255,255,255,0.25); }

.fb-zoom-close { top: 20px; right: 24px; }
.fb-zoom-nav.prev { left: 24px; top: 50%; margin-top: -20px; }
.fb-zoom-nav.next { right: 24px; top: 50%; margin-top: -20px; }
