
:root{
	--mge-color:#FFC107;
	--mge-grid-opacity:.045;
	--mge-orb-opacity:.075;
	--mge-glow-core:18%;
	--mge-glow-mid:9%;
	--mge-glow-outer:3%;
}

#mge-page-effects{
	position:fixed;
	inset:0;
	pointer-events:none!important;
	z-index:2147483000;
	overflow:hidden;
}

#mge-page-effects .mge-grid{
	position:absolute;
	inset:-10%;
	opacity:var(--mge-grid-opacity);
	background-image:
		linear-gradient(rgba(0,0,0,.18) 1px,transparent 1px),
		linear-gradient(90deg,rgba(0,0,0,.18) 1px,transparent 1px);
	background-size:42px 42px;
	transform:rotate(-2deg) scale(1.05);
	animation:mgeGrid 24s linear infinite;
	-webkit-mask-image:linear-gradient(to bottom,transparent 0%,#000 10%,#000 88%,transparent 100%);
	mask-image:linear-gradient(to bottom,transparent 0%,#000 10%,#000 88%,transparent 100%);
}

#mge-page-effects .mge-orb{
	position:absolute;
	border-radius:50%;
	filter:blur(90px);
	opacity:var(--mge-orb-opacity);
	will-change:transform;
}

#mge-page-effects .mge-orb.one{
	width:320px;height:320px;
	background:var(--mge-color);
	left:-100px;top:12%;
	animation:mgeOrb1 18s ease-in-out infinite;
}
#mge-page-effects .mge-orb.two{
	width:260px;height:260px;
	background:var(--mge-color);
	right:-90px;top:48%;
	animation:mgeOrb2 20s ease-in-out infinite;
}
#mge-page-effects .mge-orb.three{
	width:220px;height:220px;
	background:#111;
	left:38%;bottom:-90px;
	opacity:calc(var(--mge-orb-opacity) * .45);
	animation:mgeOrb3 22s ease-in-out infinite;
}

#mge-mouse-glow{
	position:fixed;
	width:520px;
	height:520px;
	left:0;
	top:0;
	border-radius:50%;
	pointer-events:none!important;
	z-index:2147483645;
	opacity:0;
	transform:translate(-50%,-50%);
	background:
		radial-gradient(circle,
			color-mix(in srgb,var(--mge-color) var(--mge-glow-core), transparent) 0%,
			color-mix(in srgb,var(--mge-color) var(--mge-glow-mid), transparent) 26%,
			color-mix(in srgb,var(--mge-color) var(--mge-glow-outer), transparent) 48%,
			transparent 72%);
	filter:blur(12px);
	transition:opacity .18s ease;
	mix-blend-mode:multiply;
}

#mge-cursor-dot,
#mge-cursor-ring{
	position:fixed;
	left:0;
	top:0;
	pointer-events:none!important;
	z-index:2147483647;
	opacity:0;
	transform:translate(-50%,-50%);
	will-change:left,top,width,height;
}

#mge-cursor-dot{
	width:8px;
	height:8px;
	border-radius:50%;
	background:var(--mge-color);
	box-shadow:
		0 0 0 4px color-mix(in srgb,var(--mge-color) 12%, transparent),
		0 0 14px color-mix(in srgb,var(--mge-color) 70%, transparent),
		0 0 28px color-mix(in srgb,var(--mge-color) 38%, transparent);
}

#mge-cursor-ring{
	width:36px;
	height:36px;
	border:1.5px solid rgba(17,17,17,.72);
	border-radius:50%;
	box-shadow:
		0 0 0 5px color-mix(in srgb,var(--mge-color) 8%, transparent),
		0 0 18px color-mix(in srgb,var(--mge-color) 28%, transparent);
	transition:
		width .18s ease,
		height .18s ease,
		border-color .18s ease,
		background .18s ease,
		opacity .2s ease;
}

body.mge-custom-cursor,
body.mge-custom-cursor a,
body.mge-custom-cursor button,
body.mge-custom-cursor input,
body.mge-custom-cursor textarea,
body.mge-custom-cursor select,
body.mge-custom-cursor [role="button"]{
	cursor:none!important;
}

body.mge-cursor-hover #mge-cursor-ring{
	width:54px;
	height:54px;
	border-color:var(--mge-color);
	background:color-mix(in srgb,var(--mge-color) 10%, transparent);
	box-shadow:
		0 0 0 8px color-mix(in srgb,var(--mge-color) 10%, transparent),
		0 0 28px color-mix(in srgb,var(--mge-color) 52%, transparent),
		0 0 48px color-mix(in srgb,var(--mge-color) 22%, transparent);
}

body.mge-cursor-down #mge-cursor-ring{
	width:25px;
	height:25px;
	background:color-mix(in srgb,var(--mge-color) 24%, transparent);
	box-shadow:
		0 0 0 10px color-mix(in srgb,var(--mge-color) 12%, transparent),
		0 0 34px color-mix(in srgb,var(--mge-color) 60%, transparent);
}

body.mge-intensity-soft{
	--mge-grid-opacity:.03;
	--mge-orb-opacity:.055;
	--mge-glow-core:14%;
	--mge-glow-mid:7%;
	--mge-glow-outer:2.5%;
}
body.mge-intensity-medium{
	--mge-grid-opacity:.055;
	--mge-orb-opacity:.09;
	--mge-glow-core:20%;
	--mge-glow-mid:10%;
	--mge-glow-outer:3.5%;
}
body.mge-intensity-high{
	--mge-grid-opacity:.075;
	--mge-orb-opacity:.13;
	--mge-glow-core:27%;
	--mge-glow-mid:14%;
	--mge-glow-outer:5%;
}

@keyframes mgeGrid{
	0%{transform:translate3d(0,0,0) rotate(-2deg) scale(1.05)}
	50%{transform:translate3d(-22px,14px,0) rotate(-2deg) scale(1.05)}
	100%{transform:translate3d(0,0,0) rotate(-2deg) scale(1.05)}
}
@keyframes mgeOrb1{
	0%,100%{transform:translate(0,0) scale(1)}
	50%{transform:translate(120px,90px) scale(1.12)}
}
@keyframes mgeOrb2{
	0%,100%{transform:translate(0,0) scale(1)}
	50%{transform:translate(-120px,-70px) scale(.9)}
}
@keyframes mgeOrb3{
	0%,100%{transform:translate(0,0)}
	50%{transform:translate(80px,-120px)}
}

@media(max-width:900px),(pointer:coarse){
	body.mge-disable-mobile #mge-page-effects,
	body.mge-disable-mobile #mge-mouse-glow,
	body.mge-disable-mobile #mge-cursor-dot,
	body.mge-disable-mobile #mge-cursor-ring{
		display:none!important;
	}
	body.mge-disable-mobile,
	body.mge-disable-mobile *{
		cursor:auto!important;
	}
}

@media(prefers-reduced-motion:reduce){
	#mge-page-effects *{animation:none!important}
	#mge-mouse-glow{display:none!important}
}
