/* ==========================================================================
   Ganapati Bappa - hollow line-drawn Ganapati intro loader
   Fixed full-viewport splash shown once per session (see loader.js inline
   script in template-parts/loader.php), then removed from the DOM.
   ========================================================================== */

#page-loader{
	position:fixed;
	inset:0;
	display:flex;
	align-items:center;
	justify-content:center;
	background:radial-gradient(circle,#29152f 0%,#120b18 45%,#050308 100%);
	z-index:9999;
	transition:opacity .8s ease;
}
#page-loader.loader-hidden{
	opacity:0;
	pointer-events:none;
}
.ganapati-loader-scene{
	position:relative;
	width:min(90vw,520px);
	height:min(90vh,620px);
	display:flex;
	align-items:center;
	justify-content:center;
}
.ganapati-loader-aura{
	position:absolute;
	width:75%;
	aspect-ratio:1;
	border-radius:50%;
	background:radial-gradient(circle,
		rgba(255,184,77,.28) 0%,
		rgba(255,111,0,.12) 35%,
		transparent 70%);
	filter:blur(10px);
	animation:ganapatiAuraPulse 3s ease-in-out infinite;
}
@keyframes ganapatiAuraPulse{
	0%,100%{transform:scale(.92);opacity:.6}
	50%{transform:scale(1.08);opacity:1}
}
.ganapati-loader-figure{
	position:relative;
	width:100%;
	height:100%;
	z-index:2;
	animation:ganapatiFloat 5s ease-in-out infinite;
}
.ganapati-loader-svg{
	width:100%;
	height:100%;
	overflow:visible;
}
.ganapati-loader-line{
	fill:none;
	stroke:url(#ganapatiLoaderGoldGradient);
	stroke-width:2.6;
	stroke-linecap:round;
	stroke-linejoin:round;
	vector-effect:non-scaling-stroke;
	stroke-dasharray:18000;
	stroke-dashoffset:18000;
	filter:url(#ganapatiLoaderSoftGlow);
	animation:ganapatiDraw 7s cubic-bezier(.4,0,.2,1) forwards,
	          ganapatiDivineGlow 2.5s ease-in-out 7s infinite alternate;
}
@keyframes ganapatiDraw{to{stroke-dashoffset:0}}
@keyframes ganapatiDivineGlow{
	from{
		filter:drop-shadow(0 0 2px rgba(255,194,80,.5))
		       drop-shadow(0 0 6px rgba(255,120,0,.25));
	}
	to{
		filter:drop-shadow(0 0 6px rgba(255,210,100,.95))
		       drop-shadow(0 0 18px rgba(255,110,0,.65));
	}
}
@keyframes ganapatiFloat{
	0%,100%{transform:translateY(0)}
	50%{transform:translateY(-8px)}
}
.ganapati-loader-particle{
	position:absolute;
	width:4px;height:4px;border-radius:50%;
	background:#ffd477;
	box-shadow:0 0 8px #ff9d00;
	opacity:0;
	animation:ganapatiParticleFloat 5s linear infinite;
}
.ganapati-loader-particle:nth-child(1){left:12%;top:65%}
.ganapati-loader-particle:nth-child(2){left:20%;top:35%;animation-delay:1s}
.ganapati-loader-particle:nth-child(3){left:80%;top:70%;animation-delay:2s}
.ganapati-loader-particle:nth-child(4){left:75%;top:30%;animation-delay:3s}
.ganapati-loader-particle:nth-child(5){left:50%;top:80%;animation-delay:1.5s}
.ganapati-loader-particle:nth-child(6){left:35%;top:20%;animation-delay:2.5s}
@keyframes ganapatiParticleFloat{
	0%{transform:translateY(40px) scale(.4);opacity:0}
	25%{opacity:1}
	75%{opacity:.7}
	100%{transform:translateY(-100px) scale(1);opacity:0}
}
.ganapati-loader-ground{
	position:absolute;
	bottom:8%;
	width:55%;height:25px;border-radius:50%;
	background:rgba(255,140,20,.25);
	filter:blur(18px);
	animation:ganapatiGroundPulse 3s ease-in-out infinite;
}
@keyframes ganapatiGroundPulse{
	0%,100%{transform:scaleX(.8);opacity:.5}
	50%{transform:scaleX(1);opacity:1}
}
@media(max-width:600px){
	.ganapati-loader-scene{width:96vw;height:90vh}
	.ganapati-loader-line{stroke-width:2.2}
}
@media(prefers-reduced-motion:reduce){
	.ganapati-loader-aura,
	.ganapati-loader-figure,
	.ganapati-loader-particle,
	.ganapati-loader-ground{animation:none}
	.ganapati-loader-line{
		animation:none;
		stroke-dashoffset:0;
		filter:drop-shadow(0 0 6px rgba(255,210,100,.95)) drop-shadow(0 0 18px rgba(255,110,0,.65));
	}
}
