/* Sitewide page loader — shown on every page load (markup printed via
   wp_body_open in functions.php), faded out by page-loader.js once the
   page has finished loading. Sits above everything, including the fixed
   header (z-index:9999). */

#mm-page-loader{
	position:fixed;
	inset:0;
	z-index:999999;
	display:flex;
	align-items:center;
	justify-content:center;
	background:rgba(18,24,31,0.35);
	-webkit-backdrop-filter:blur(10px);
	backdrop-filter:blur(10px);
	transition:opacity .4s ease;
}

#mm-page-loader.mm-loader-hidden{
	opacity:0;
	pointer-events:none;
}

#mm-page-loader .mm-sewing-loader{
	display:flex; flex-direction:column; align-items:center;
	gap:18px;
}

#mm-page-loader svg{
	width:min(70vw,260px);
	height:auto;
	overflow:visible;
}

#mm-page-loader .mm-loading-label{
	margin:0;
	color:#e7c766;
	font-style:italic;
	letter-spacing:.09em;
	text-transform:uppercase;
	font-size:13px;
	opacity:.9;
	font-family:'Outfit', sans-serif;
}

#mm-page-loader .mm-loading-dots span{ display:inline-block; animation:mm-pl-dot-blink 1.4s infinite; }
#mm-page-loader .mm-loading-dots span:nth-child(2){ animation-delay:.2s; }
#mm-page-loader .mm-loading-dots span:nth-child(3){ animation-delay:.4s; }

#mm-pl-handwheel-group{ transform-origin:270px 95px; animation:mm-pl-wheel-spin 1.6s linear infinite; }
#mm-pl-needle-group{ animation:mm-pl-needle-bob .7s cubic-bezier(.55,0,.45,1) infinite; }
#mm-pl-stitch-path{ animation:mm-pl-stitch-march 1.4s linear infinite; }
#mm-pl-stitch-dot{ transform-origin:154px 196px; animation:mm-pl-stitch-pop .7s cubic-bezier(.55,0,.45,1) infinite; }
#mm-pl-badge{ animation:mm-pl-badge-pulse 2s ease-in-out infinite; }
#mm-pl-thread-path{ animation:mm-pl-thread-sway 3s ease-in-out infinite; }

@keyframes mm-pl-wheel-spin  { to { transform:rotate(360deg); } }
@keyframes mm-pl-needle-bob  { 0%{transform:translateY(0);} 35%{transform:translateY(14px);} 100%{transform:translateY(0);} }
@keyframes mm-pl-stitch-march{ to { stroke-dashoffset:-44px; } }
@keyframes mm-pl-stitch-pop  { 0%,25%,100%{opacity:0; transform:scale(.3);} 35%{opacity:1; transform:scale(1);} 55%{opacity:.5; transform:scale(.7);} }
@keyframes mm-pl-badge-pulse { 0%,100%{opacity:.5;} 50%{opacity:1;} }
@keyframes mm-pl-thread-sway { 0%,100%{transform:translateX(0);} 50%{transform:translateX(1.5px);} }
@keyframes mm-pl-dot-blink   { 0%,80%,100%{opacity:.2;} 40%{opacity:1;} }

@media (prefers-reduced-motion: reduce){
	#mm-page-loader *{ animation:none !important; }
}
