.elementor-element:is(.bmfe-border-motion, .bmfe-border-motion-yes) {
	--bmfe-border-width: 2px;
	--bmfe-radius: 12px;
	--bmfe-color: #5f6bff;
	--bmfe-color-alt: #18d2ff;
	--bmfe-duration: 4s;
	--bmfe-opacity: 0.95;
	--bmfe-offset: 0px;
}

.elementor-element:is(.bmfe-border-motion, .bmfe-border-motion-yes):not(.elementor-absolute):not(.elementor-fixed) {
	position: relative;
}

.elementor-element:is(.bmfe-border-motion, .bmfe-border-motion-yes)::before,
.elementor-element:is(.bmfe-border-motion, .bmfe-border-motion-yes)::after {
	box-sizing: border-box;
	content: "";
	inset: calc(0px - var(--bmfe-offset));
	opacity: var(--bmfe-opacity);
	pointer-events: none;
	position: absolute;
	transform-origin: center;
	z-index: 10;
}

.elementor-element:is(.bmfe-border-motion, .bmfe-border-motion-yes).bmfe-trigger-hover::before,
.elementor-element:is(.bmfe-border-motion, .bmfe-border-motion-yes).bmfe-trigger-hover::after {
	animation-play-state: paused;
	opacity: 0;
	transition: opacity 180ms ease;
}

.elementor-element:is(.bmfe-border-motion, .bmfe-border-motion-yes).bmfe-trigger-hover:hover::before,
.elementor-element:is(.bmfe-border-motion, .bmfe-border-motion-yes).bmfe-trigger-hover:hover::after {
	animation-play-state: running;
	opacity: var(--bmfe-opacity);
}

.elementor-element:is(.bmfe-border-motion, .bmfe-border-motion-yes).bmfe-preset-orbit::before,
.elementor-element:is(.bmfe-border-motion, .bmfe-border-motion-yes).bmfe-preset-scan::before,
.elementor-element:is(.bmfe-border-motion, .bmfe-border-motion-yes).bmfe-preset-marching::before,
.elementor-element:is(.bmfe-border-motion, .bmfe-border-motion-yes).bmfe-preset-glow::before,
.elementor-element:is(.bmfe-border-motion, .bmfe-border-motion-yes).bmfe-preset-double::before,
.elementor-element:is(.bmfe-border-motion, .bmfe-border-motion-yes).bmfe-preset-double::after,
.elementor-element:is(.bmfe-border-motion, .bmfe-border-motion-yes).bmfe-preset-spotlight::before,
.elementor-element:is(.bmfe-border-motion, .bmfe-border-motion-yes).bmfe-preset-shimmer::before,
.elementor-element:is(.bmfe-border-motion, .bmfe-border-motion-yes).bmfe-preset-comet::before,
.elementor-element:is(.bmfe-border-motion, .bmfe-border-motion-yes).bmfe-preset-laser::before,
.elementor-element:is(.bmfe-border-motion, .bmfe-border-motion-yes).bmfe-preset-dots::before,
.elementor-element:is(.bmfe-border-motion, .bmfe-border-motion-yes).bmfe-preset-fade::before,
.elementor-element:is(.bmfe-border-motion, .bmfe-border-motion-yes).bmfe-preset-ribbon::before {
	border-radius: var(--bmfe-radius);
	padding: var(--bmfe-border-width);
	-webkit-mask:
		linear-gradient(#000 0 0) content-box,
		linear-gradient(#000 0 0);
	-webkit-mask-composite: xor;
	mask:
		linear-gradient(#000 0 0) content-box,
		linear-gradient(#000 0 0);
	mask-composite: exclude;
}

.elementor-element:is(.bmfe-border-motion, .bmfe-border-motion-yes).bmfe-preset-orbit::before {
	animation: bmfe-orbit var(--bmfe-duration) linear infinite;
	background: conic-gradient(
		from 0deg,
		var(--bmfe-color),
		var(--bmfe-color-alt),
		transparent 38%,
		var(--bmfe-color)
	);
}

.elementor-element:is(.bmfe-border-motion, .bmfe-border-motion-yes).bmfe-preset-scan::before {
	animation: bmfe-scan var(--bmfe-duration) linear infinite;
	background:
		linear-gradient(90deg, transparent, var(--bmfe-color), var(--bmfe-color-alt), transparent),
		linear-gradient(180deg, var(--bmfe-color-alt), transparent 45%, var(--bmfe-color));
	background-size: 220% 100%, 100% 100%;
}

.elementor-element:is(.bmfe-border-motion, .bmfe-border-motion-yes).bmfe-preset-pulse::before {
	animation: bmfe-pulse var(--bmfe-duration) ease-in-out infinite;
	border: var(--bmfe-border-width) solid var(--bmfe-color);
	border-radius: var(--bmfe-radius);
	box-shadow: 0 0 0 0 rgba(95, 107, 255, 0.25);
	box-shadow: 0 0 0 0 color-mix(in srgb, var(--bmfe-color) 45%, transparent);
}

.elementor-element:is(.bmfe-border-motion, .bmfe-border-motion-yes).bmfe-preset-marching::before {
	animation: bmfe-marching var(--bmfe-duration) linear infinite;
	background:
		repeating-linear-gradient(
			90deg,
			var(--bmfe-color) 0 12px,
			transparent 12px 22px,
			var(--bmfe-color-alt) 22px 34px,
			transparent 34px 44px
		);
	background-size: 88px 88px;
}

.elementor-element:is(.bmfe-border-motion, .bmfe-border-motion-yes).bmfe-preset-corner::before {
	animation: bmfe-corner-a var(--bmfe-duration) ease-in-out infinite;
	background:
		linear-gradient(var(--bmfe-color), var(--bmfe-color)) top left / 42% var(--bmfe-border-width) no-repeat,
		linear-gradient(var(--bmfe-color), var(--bmfe-color)) top left / var(--bmfe-border-width) 42% no-repeat,
		linear-gradient(var(--bmfe-color-alt), var(--bmfe-color-alt)) bottom right / 42% var(--bmfe-border-width) no-repeat,
		linear-gradient(var(--bmfe-color-alt), var(--bmfe-color-alt)) bottom right / var(--bmfe-border-width) 42% no-repeat;
	border-radius: var(--bmfe-radius);
}

.elementor-element:is(.bmfe-border-motion, .bmfe-border-motion-yes).bmfe-preset-corner::after {
	animation: bmfe-corner-b var(--bmfe-duration) ease-in-out infinite;
	background:
		linear-gradient(var(--bmfe-color-alt), var(--bmfe-color-alt)) top right / 28% var(--bmfe-border-width) no-repeat,
		linear-gradient(var(--bmfe-color-alt), var(--bmfe-color-alt)) top right / var(--bmfe-border-width) 28% no-repeat,
		linear-gradient(var(--bmfe-color), var(--bmfe-color)) bottom left / 28% var(--bmfe-border-width) no-repeat,
		linear-gradient(var(--bmfe-color), var(--bmfe-color)) bottom left / var(--bmfe-border-width) 28% no-repeat;
	border-radius: var(--bmfe-radius);
}

.elementor-element:is(.bmfe-border-motion, .bmfe-border-motion-yes).bmfe-preset-glow::before {
	animation: bmfe-glow var(--bmfe-duration) ease-in-out infinite;
	background: linear-gradient(120deg, var(--bmfe-color), var(--bmfe-color-alt), var(--bmfe-color));
	background-size: 240% 100%;
	filter: drop-shadow(0 0 8px var(--bmfe-color));
}

.elementor-element:is(.bmfe-border-motion, .bmfe-border-motion-yes).bmfe-preset-double::before {
	animation: bmfe-orbit var(--bmfe-duration) linear infinite;
	background: conic-gradient(from 0deg, var(--bmfe-color), transparent 32%, var(--bmfe-color-alt), transparent 72%, var(--bmfe-color));
}

.elementor-element:is(.bmfe-border-motion, .bmfe-border-motion-yes).bmfe-preset-double::after {
	animation: bmfe-double var(--bmfe-duration) linear infinite reverse;
	background: conic-gradient(from 180deg, var(--bmfe-color-alt), transparent 35%, var(--bmfe-color), transparent 75%, var(--bmfe-color-alt));
	inset: calc(6px - var(--bmfe-offset));
}

.elementor-element:is(.bmfe-border-motion, .bmfe-border-motion-yes).bmfe-preset-spotlight::before {
	animation: bmfe-orbit var(--bmfe-duration) linear infinite;
	background: conic-gradient(from 0deg, transparent 0deg 235deg, var(--bmfe-color) 260deg, var(--bmfe-color-alt) 285deg, transparent 320deg 360deg);
}

.elementor-element:is(.bmfe-border-motion, .bmfe-border-motion-yes).bmfe-preset-breathe::before {
	animation: bmfe-breathe var(--bmfe-duration) ease-in-out infinite;
	border: var(--bmfe-border-width) solid var(--bmfe-color);
	border-radius: var(--bmfe-radius);
	box-shadow: 0 0 0 0 rgba(95, 107, 255, 0.2);
	box-shadow: 0 0 0 0 color-mix(in srgb, var(--bmfe-color) 28%, transparent);
}

.elementor-element:is(.bmfe-border-motion, .bmfe-border-motion-yes).bmfe-preset-shimmer::before {
	animation: bmfe-shimmer var(--bmfe-duration) linear infinite;
	background: linear-gradient(90deg, var(--bmfe-color), var(--bmfe-color-alt), #fff, var(--bmfe-color-alt), var(--bmfe-color));
	background-size: 320% 100%;
}

.elementor-element:is(.bmfe-border-motion, .bmfe-border-motion-yes).bmfe-preset-brackets::before {
	animation: bmfe-brackets-a var(--bmfe-duration) ease-in-out infinite;
	background:
		linear-gradient(var(--bmfe-color), var(--bmfe-color)) left top / var(--bmfe-border-width) 58% no-repeat,
		linear-gradient(var(--bmfe-color), var(--bmfe-color)) left top / 28% var(--bmfe-border-width) no-repeat,
		linear-gradient(var(--bmfe-color), var(--bmfe-color)) left bottom / 28% var(--bmfe-border-width) no-repeat,
		linear-gradient(var(--bmfe-color-alt), var(--bmfe-color-alt)) right top / var(--bmfe-border-width) 58% no-repeat,
		linear-gradient(var(--bmfe-color-alt), var(--bmfe-color-alt)) right top / 28% var(--bmfe-border-width) no-repeat,
		linear-gradient(var(--bmfe-color-alt), var(--bmfe-color-alt)) right bottom / 28% var(--bmfe-border-width) no-repeat;
	border-radius: var(--bmfe-radius);
}

.elementor-element:is(.bmfe-border-motion, .bmfe-border-motion-yes).bmfe-preset-brackets::after {
	animation: bmfe-brackets-b var(--bmfe-duration) ease-in-out infinite;
	background:
		linear-gradient(var(--bmfe-color-alt), var(--bmfe-color-alt)) top center / 48% var(--bmfe-border-width) no-repeat,
		linear-gradient(var(--bmfe-color), var(--bmfe-color)) bottom center / 48% var(--bmfe-border-width) no-repeat;
	border-radius: var(--bmfe-radius);
}

.elementor-element:is(.bmfe-border-motion, .bmfe-border-motion-yes).bmfe-preset-comet::before {
	animation: bmfe-comet var(--bmfe-duration) linear infinite;
	background: conic-gradient(from 0deg, transparent 0deg 245deg, var(--bmfe-color) 270deg, var(--bmfe-color-alt) 298deg, transparent 330deg 360deg);
	filter: drop-shadow(0 0 7px var(--bmfe-color));
}

.elementor-element:is(.bmfe-border-motion, .bmfe-border-motion-yes).bmfe-preset-laser::before {
	animation: bmfe-laser var(--bmfe-duration) linear infinite;
	background: linear-gradient(90deg, transparent 0 22%, var(--bmfe-color) 43%, #fff 50%, var(--bmfe-color-alt) 57%, transparent 78% 100%);
	background-size: 260% 100%;
}

.elementor-element:is(.bmfe-border-motion, .bmfe-border-motion-yes).bmfe-preset-rails::before {
	animation: bmfe-rails var(--bmfe-duration) ease-in-out infinite;
	background:
		linear-gradient(var(--bmfe-color), var(--bmfe-color)) top left / 36% var(--bmfe-border-width) no-repeat,
		linear-gradient(var(--bmfe-color-alt), var(--bmfe-color-alt)) bottom right / 36% var(--bmfe-border-width) no-repeat,
		linear-gradient(var(--bmfe-color), var(--bmfe-color)) left bottom / var(--bmfe-border-width) 36% no-repeat,
		linear-gradient(var(--bmfe-color-alt), var(--bmfe-color-alt)) right top / var(--bmfe-border-width) 36% no-repeat;
	border-radius: var(--bmfe-radius);
}

.elementor-element:is(.bmfe-border-motion, .bmfe-border-motion-yes).bmfe-preset-draw::before {
	animation: bmfe-draw var(--bmfe-duration) ease-in-out infinite;
	background:
		linear-gradient(var(--bmfe-color), var(--bmfe-color)) top left / 0 var(--bmfe-border-width) no-repeat,
		linear-gradient(var(--bmfe-color-alt), var(--bmfe-color-alt)) top right / var(--bmfe-border-width) 0 no-repeat,
		linear-gradient(var(--bmfe-color), var(--bmfe-color)) bottom right / 0 var(--bmfe-border-width) no-repeat,
		linear-gradient(var(--bmfe-color-alt), var(--bmfe-color-alt)) bottom left / var(--bmfe-border-width) 0 no-repeat;
	border-radius: var(--bmfe-radius);
}

.elementor-element:is(.bmfe-border-motion, .bmfe-border-motion-yes).bmfe-preset-dots::before {
	animation: bmfe-orbit var(--bmfe-duration) linear infinite;
	background: repeating-conic-gradient(from 0deg, var(--bmfe-color) 0deg 8deg, transparent 8deg 18deg, var(--bmfe-color-alt) 18deg 26deg, transparent 26deg 38deg);
}

.elementor-element:is(.bmfe-border-motion, .bmfe-border-motion-yes).bmfe-preset-steps::before {
	animation: bmfe-steps var(--bmfe-duration) linear infinite;
	background:
		repeating-linear-gradient(90deg, var(--bmfe-color) 0 10px, transparent 10px 20px) top left / 40px var(--bmfe-border-width) repeat-x,
		repeating-linear-gradient(90deg, var(--bmfe-color-alt) 0 10px, transparent 10px 20px) bottom right / 40px var(--bmfe-border-width) repeat-x,
		repeating-linear-gradient(0deg, var(--bmfe-color) 0 10px, transparent 10px 20px) left bottom / var(--bmfe-border-width) 40px repeat-y,
		repeating-linear-gradient(0deg, var(--bmfe-color-alt) 0 10px, transparent 10px 20px) right top / var(--bmfe-border-width) 40px repeat-y;
	border-radius: var(--bmfe-radius);
}

.elementor-element:is(.bmfe-border-motion, .bmfe-border-motion-yes).bmfe-preset-spark::before {
	animation: bmfe-spark var(--bmfe-duration) ease-in-out infinite;
	background:
		radial-gradient(circle at top left, var(--bmfe-color) 0 9%, transparent 18%) top left / 44% 44% no-repeat,
		radial-gradient(circle at top right, var(--bmfe-color-alt) 0 9%, transparent 18%) top right / 44% 44% no-repeat,
		radial-gradient(circle at bottom right, var(--bmfe-color) 0 9%, transparent 18%) bottom right / 44% 44% no-repeat,
		radial-gradient(circle at bottom left, var(--bmfe-color-alt) 0 9%, transparent 18%) bottom left / 44% 44% no-repeat,
		linear-gradient(var(--bmfe-color), var(--bmfe-color)) top center / 42% var(--bmfe-border-width) no-repeat,
		linear-gradient(var(--bmfe-color-alt), var(--bmfe-color-alt)) bottom center / 42% var(--bmfe-border-width) no-repeat;
	border-radius: var(--bmfe-radius);
	filter: drop-shadow(0 0 6px var(--bmfe-color));
}

.elementor-element:is(.bmfe-border-motion, .bmfe-border-motion-yes).bmfe-preset-fade::before {
	animation: bmfe-fade var(--bmfe-duration) ease-in-out infinite;
	background: linear-gradient(135deg, var(--bmfe-color), var(--bmfe-color-alt), var(--bmfe-color));
	background-size: 300% 100%;
}

.elementor-element:is(.bmfe-border-motion, .bmfe-border-motion-yes).bmfe-preset-frame::before {
	animation: bmfe-frame-a var(--bmfe-duration) ease-in-out infinite;
	background:
		linear-gradient(var(--bmfe-color), var(--bmfe-color)) top left / 100% var(--bmfe-border-width) no-repeat,
		linear-gradient(var(--bmfe-color-alt), var(--bmfe-color-alt)) bottom right / 100% var(--bmfe-border-width) no-repeat,
		linear-gradient(var(--bmfe-color), var(--bmfe-color)) left top / var(--bmfe-border-width) 100% no-repeat,
		linear-gradient(var(--bmfe-color-alt), var(--bmfe-color-alt)) right bottom / var(--bmfe-border-width) 100% no-repeat;
	border-radius: var(--bmfe-radius);
}

.elementor-element:is(.bmfe-border-motion, .bmfe-border-motion-yes).bmfe-preset-frame::after {
	animation: bmfe-frame-b var(--bmfe-duration) ease-in-out infinite;
	background:
		linear-gradient(var(--bmfe-color-alt), var(--bmfe-color-alt)) top right / 54% var(--bmfe-border-width) no-repeat,
		linear-gradient(var(--bmfe-color), var(--bmfe-color)) bottom left / 54% var(--bmfe-border-width) no-repeat,
		linear-gradient(var(--bmfe-color-alt), var(--bmfe-color-alt)) left bottom / var(--bmfe-border-width) 54% no-repeat,
		linear-gradient(var(--bmfe-color), var(--bmfe-color)) right top / var(--bmfe-border-width) 54% no-repeat;
	border-radius: var(--bmfe-radius);
}

.elementor-element:is(.bmfe-border-motion, .bmfe-border-motion-yes).bmfe-preset-ribbon::before {
	animation: bmfe-ribbon var(--bmfe-duration) linear infinite;
	background: repeating-conic-gradient(from 0deg, var(--bmfe-color) 0deg 16deg, var(--bmfe-color-alt) 16deg 32deg, transparent 32deg 54deg);
}

@keyframes bmfe-orbit {
	to {
		transform: rotate(1turn);
	}
}

@keyframes bmfe-scan {
	to {
		background-position: -220% 0, 0 0;
	}
}

@keyframes bmfe-pulse {
	0%,
	100% {
		box-shadow: 0 0 0 0 rgba(95, 107, 255, 0.25);
		box-shadow: 0 0 0 0 color-mix(in srgb, var(--bmfe-color) 45%, transparent);
	}

	50% {
		box-shadow: 0 0 0 8px rgba(24, 210, 255, 0.12);
		box-shadow: 0 0 0 8px color-mix(in srgb, var(--bmfe-color-alt) 20%, transparent);
	}
}

@keyframes bmfe-marching {
	to {
		background-position: 88px 0;
	}
}

@keyframes bmfe-corner-a {
	0%,
	100% {
		background-size:
			24% var(--bmfe-border-width),
			var(--bmfe-border-width) 24%,
			24% var(--bmfe-border-width),
			var(--bmfe-border-width) 24%;
	}

	50% {
		background-size:
			58% var(--bmfe-border-width),
			var(--bmfe-border-width) 58%,
			58% var(--bmfe-border-width),
			var(--bmfe-border-width) 58%;
	}
}

@keyframes bmfe-corner-b {
	0%,
	100% {
		background-size:
			18% var(--bmfe-border-width),
			var(--bmfe-border-width) 18%,
			18% var(--bmfe-border-width),
			var(--bmfe-border-width) 18%;
	}

	50% {
		background-size:
			44% var(--bmfe-border-width),
			var(--bmfe-border-width) 44%,
			44% var(--bmfe-border-width),
			var(--bmfe-border-width) 44%;
	}
}

@keyframes bmfe-glow {
	0%,
	100% {
		background-position: 0% 50%;
		filter: drop-shadow(0 0 6px var(--bmfe-color));
	}

	50% {
		background-position: 100% 50%;
		filter: drop-shadow(0 0 12px var(--bmfe-color-alt));
	}
}

@keyframes bmfe-double {
	to {
		transform: rotate(1turn) scale(0.985);
	}
}

@keyframes bmfe-breathe {
	0%,
	100% {
		transform: scale(1);
		box-shadow: 0 0 0 0 rgba(95, 107, 255, 0.2);
		box-shadow: 0 0 0 0 color-mix(in srgb, var(--bmfe-color) 28%, transparent);
	}

	50% {
		transform: scale(1.01);
		box-shadow: 0 0 0 6px rgba(24, 210, 255, 0.1);
		box-shadow: 0 0 0 6px color-mix(in srgb, var(--bmfe-color-alt) 16%, transparent);
	}
}

@keyframes bmfe-shimmer {
	to {
		background-position: -320% 0;
	}
}

@keyframes bmfe-brackets-a {
	0%,
	100% {
		background-position:
			left top,
			left top,
			left bottom,
			right bottom,
			right top,
			right bottom;
	}

	50% {
		background-position:
			left bottom,
			left top,
			left bottom,
			right top,
			right top,
			right bottom;
	}
}

@keyframes bmfe-brackets-b {
	0%,
	100% {
		transform: scaleX(0.72);
	}

	50% {
		transform: scaleX(1);
	}
}

@keyframes bmfe-comet {
	to {
		transform: rotate(1turn);
	}
}

@keyframes bmfe-laser {
	to {
		background-position: -260% 0;
	}
}

@keyframes bmfe-rails {
	0%,
	100% {
		background-position:
			left top,
			right bottom,
			left bottom,
			right top;
	}

	50% {
		background-position:
			right top,
			left bottom,
			left top,
			right bottom;
	}
}

@keyframes bmfe-draw {
	0% {
		background-size:
			0 var(--bmfe-border-width),
			var(--bmfe-border-width) 0,
			0 var(--bmfe-border-width),
			var(--bmfe-border-width) 0;
	}

	35% {
		background-size:
			100% var(--bmfe-border-width),
			var(--bmfe-border-width) 0,
			0 var(--bmfe-border-width),
			var(--bmfe-border-width) 0;
	}

	65% {
		background-size:
			100% var(--bmfe-border-width),
			var(--bmfe-border-width) 100%,
			100% var(--bmfe-border-width),
			var(--bmfe-border-width) 0;
	}

	100% {
		background-size:
			100% var(--bmfe-border-width),
			var(--bmfe-border-width) 100%,
			100% var(--bmfe-border-width),
			var(--bmfe-border-width) 100%;
	}
}

@keyframes bmfe-steps {
	to {
		background-position:
			40px 0,
			-40px 100%,
			0 -40px,
			100% 40px;
	}
}

@keyframes bmfe-spark {
	0%,
	100% {
		filter: drop-shadow(0 0 4px var(--bmfe-color));
		transform: scale(1);
	}

	50% {
		filter: drop-shadow(0 0 12px var(--bmfe-color-alt));
		transform: scale(1.01);
	}
}

@keyframes bmfe-fade {
	0%,
	100% {
		background-position: 0% 50%;
	}

	50% {
		background-position: 100% 50%;
	}
}

@keyframes bmfe-frame-a {
	0%,
	100% {
		filter: saturate(1) brightness(1);
	}

	50% {
		filter: saturate(1.25) brightness(1.12);
	}
}

@keyframes bmfe-frame-b {
	0%,
	100% {
		transform: scale(0.985);
	}

	50% {
		transform: scale(1);
	}
}

@keyframes bmfe-ribbon {
	to {
		transform: rotate(1turn);
	}
}

@media (prefers-reduced-motion: reduce) {
	.elementor-element:is(.bmfe-border-motion, .bmfe-border-motion-yes)::before,
	.elementor-element:is(.bmfe-border-motion, .bmfe-border-motion-yes)::after {
		animation-duration: 1ms;
		animation-iteration-count: 1;
	}
}
