/* ==========================================================================
   Fantasy Theme — magical library, glowing dust, warm gold accent.
   ========================================================================== */

.theme-fantasy {
	--es-accent: #b9862f;
	--es-bg: #100c1c;
	--es-text: #f3ecd9;
	--es-text-muted: #b6a9d1;
	--es-font-display: 'Cormorant Garamond', Georgia, serif;
}

.theme-fantasy .es-bg {
	background:
		radial-gradient(ellipse at 30% 20%, rgba(185,134,47,0.14), transparent 55%),
		radial-gradient(ellipse at 75% 75%, rgba(90,60,150,0.18), transparent 55%),
		linear-gradient(#150f26, #0b0817);
}

/* Mystical fog drifting slowly */
.theme-fantasy .es-weather::before {
	content: '';
	position: absolute;
	inset: -10%;
	background: radial-gradient(ellipse at 40% 90%, rgba(160,130,220,0.08), transparent 60%);
	animation: es-fantasy-fog 22s ease-in-out infinite alternate;
	pointer-events: none;
}
@keyframes es-fantasy-fog {
	from { transform: translateX(-4%) translateY(2%) scale(1); }
	to   { transform: translateX(4%) translateY(-2%) scale(1.04); }
}

/* Fireflies: small glowing dots that drift and pulse, unlike horror's falling dust */
.theme-fantasy .es-particles::before,
.theme-fantasy .es-particles::after {
	content: '';
	position: absolute;
	inset: 0;
	background-image:
		radial-gradient(2px 2px at 15% 25%, rgba(255,222,140,0.8), transparent),
		radial-gradient(2px 2px at 55% 60%, rgba(255,222,140,0.6), transparent),
		radial-gradient(2px 2px at 80% 30%, rgba(200,170,255,0.7), transparent),
		radial-gradient(2px 2px at 35% 80%, rgba(255,222,140,0.5), transparent);
	animation: es-firefly-drift 9s ease-in-out infinite;
	filter: blur(0.3px);
}
.theme-fantasy .es-particles::after { animation-duration: 13s; opacity: 0.7; }
@keyframes es-firefly-drift {
	0%, 100% { transform: translate(0, 0) scale(1); opacity: 0.6; }
	50%      { transform: translate(6px, -10px) scale(1.3); opacity: 1; }
}

.theme-fantasy .es-book-cover {
	box-shadow: 0 20px 60px rgba(0,0,0,0.6), 0 0 50px 6px rgba(185,134,47,0.25);
}

.theme-fantasy .es-summary-point {
	background: rgba(20, 14, 34, 0.72);
	border-color: rgba(185,134,47,0.25);
}

.theme-fantasy .es-lock-panel {
	background: rgba(16, 11, 28, 0.85);
	border-color: rgba(185,134,47,0.3);
}

@media (prefers-reduced-motion: reduce) {
	.theme-fantasy .es-weather::before,
	.theme-fantasy .es-particles::before,
	.theme-fantasy .es-particles::after { animation: none !important; }
}
