/* 花鳥風月 Lightbox */
:root{
	--kcfglb-backdrop: rgba(10,10,12,.92);
	--kcfglb-ink: #F5F4F0;
	--kcfglb-control-bg: rgba(255,255,255,.12);
	--kcfglb-control-bg-hover: rgba(255,255,255,.22);
	--kcfglb-accent: #8FB4DB;
}

html.kcfglb-lock{
	overflow: hidden;
}

.kcfglb-overlay{
	position: fixed;
	inset: 0;
	z-index: 100000;
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--kcfglb-backdrop);
	padding: 56px;
	box-sizing: border-box;
}
.kcfglb-overlay[hidden]{
	display: none;
}

.kcfglb-stage{
	position: relative;
	max-width: 100%;
	max-height: 100%;
	display: flex;
	align-items: center;
	justify-content: center;
}

.kcfglb-image{
	display: block;
	max-width: 100%;
	max-height: calc(100vh - 160px);
	object-fit: contain;
	opacity: 0;
	box-shadow: 0 10px 40px rgba(0,0,0,.5);
	transition: opacity .2s ease;
}
.kcfglb-image.is-loaded{
	opacity: 1;
}

.kcfglb-spinner{
	display: none;
	position: absolute;
	width: 36px;
	height: 36px;
	border-radius: 50%;
	border: 3px solid rgba(255,255,255,.25);
	border-top-color: var(--kcfglb-ink);
	animation: kcfglb-spin .8s linear infinite;
}
.kcfglb-spinner.is-active{
	display: block;
}
@keyframes kcfglb-spin{
	to{ transform: rotate(360deg); }
}

.kcfglb-caption{
	position: absolute;
	left: 50%;
	bottom: 20px;
	transform: translateX(-50%);
	max-width: min(80vw, 640px);
	color: var(--kcfglb-ink);
	font-size: 13px;
	line-height: 1.5;
	text-align: center;
	background: rgba(0,0,0,.5);
	padding: 6px 14px;
	border-radius: 3px;
}
.kcfglb-caption[hidden]{
	display: none;
}

.kcfglb-counter{
	position: absolute;
	top: 20px;
	left: 50%;
	transform: translateX(-50%);
	color: var(--kcfglb-ink);
	font-size: 12.5px;
	opacity: .75;
}
.kcfglb-counter[hidden]{
	display: none;
}

.kcfglb-close,
.kcfglb-nav{
	position: absolute;
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--kcfglb-control-bg);
	color: var(--kcfglb-ink);
	border: 0;
	border-radius: 50%;
	cursor: pointer;
	transition: background .15s ease;
}
.kcfglb-close:hover,
.kcfglb-nav:hover{
	background: var(--kcfglb-control-bg-hover);
}
.kcfglb-close:focus-visible,
.kcfglb-nav:focus-visible{
	outline: 2px solid var(--kcfglb-accent);
	outline-offset: 2px;
}

.kcfglb-close{
	top: 18px;
	right: 18px;
	width: 40px;
	height: 40px;
	font-size: 24px;
	line-height: 1;
}

.kcfglb-nav{
	top: 50%;
	transform: translateY(-50%);
	width: 48px;
	height: 48px;
	font-size: 18px;
}
.kcfglb-nav[hidden]{
	display: none;
}
.kcfglb-prev{ left: 12px; }
.kcfglb-next{ right: 12px; }

@media (max-width: 640px){
	.kcfglb-overlay{ padding: 24px 16px; }
	.kcfglb-nav{ width: 40px; height: 40px; }
	.kcfglb-prev{ left: 4px; }
	.kcfglb-next{ right: 4px; }
}
