/**
 * Animation layer for Xuanji Fortune.
 * All selectors are scoped to .xuanji-fortune so themes and other plugins stay untouched.
 */

/* Entrance */
.xuanji-fortune.xj-motion-ready.xj-motion-full:not(.xj-motion-reduced) .xjf-hero {
	animation: xj-hero-base-in 900ms cubic-bezier(0.22, 0.61, 0.36, 1) both;
}

.xuanji-fortune.xj-motion-ready:not(.xj-motion-reduced) .xjf-hero__stars,
.xuanji-fortune.xj-motion-ready:not(.xj-motion-reduced) .xjf-hero__glow,
.xuanji-fortune.xj-motion-ready:not(.xj-motion-reduced) .xjf-hero__ink,
.xuanji-fortune.xj-motion-ready:not(.xj-motion-reduced) .xjf-astrolabe,
.xuanji-fortune.xj-motion-ready:not(.xj-motion-reduced) .xjf-kicker,
.xuanji-fortune.xj-motion-ready:not(.xj-motion-reduced) .xjf-hero h1,
.xuanji-fortune.xj-motion-ready:not(.xj-motion-reduced) .xjf-hero__subtitle,
.xuanji-fortune.xj-motion-ready:not(.xj-motion-reduced) .xjf-hero__copy,
.xuanji-fortune.xj-motion-ready:not(.xj-motion-reduced) .xjf-button--hero {
	opacity: 0;
}

.xuanji-fortune.xj-enter:not(.xj-motion-reduced) .xjf-hero__stars {
	animation: xj-soft-appear 1200ms 180ms cubic-bezier(0.22, 0.61, 0.36, 1) both, xjf-star-drift 18s ease-in-out 1400ms infinite alternate;
}

.xuanji-fortune.xj-enter:not(.xj-motion-reduced) .xjf-hero__glow,
.xuanji-fortune.xj-enter:not(.xj-motion-reduced) .xjf-hero__ink {
	animation: xj-soft-appear 1300ms 360ms cubic-bezier(0.22, 0.61, 0.36, 1) both, xjf-light-flow 10s ease-in-out 1600ms infinite alternate;
}

.xuanji-fortune.xj-enter:not(.xj-motion-reduced) .xjf-astrolabe {
	animation: xj-astrolabe-in 1500ms 520ms cubic-bezier(0.22, 0.61, 0.36, 1) both, xjf-parallax-float 18s ease-in-out 2200ms infinite alternate;
	transform: translate3d(calc(var(--xj-pointer-x, 0px) * -1), calc(var(--xj-scroll-y, 0px) + var(--xj-pointer-y, 0px)), 0);
}

.xuanji-fortune.xj-enter:not(.xj-motion-reduced) .xjf-kicker {
	animation: xj-rise-in 700ms 760ms cubic-bezier(0.22, 0.61, 0.36, 1) both;
}

.xuanji-fortune.xj-enter:not(.xj-motion-reduced) .xjf-hero h1 {
	animation: xj-rise-in 820ms 940ms cubic-bezier(0.22, 0.61, 0.36, 1) both;
}

.xuanji-fortune.xj-enter:not(.xj-motion-reduced) .xjf-hero__subtitle {
	animation: xj-rise-in 760ms 1130ms cubic-bezier(0.22, 0.61, 0.36, 1) both;
}

.xuanji-fortune.xj-enter:not(.xj-motion-reduced) .xjf-hero__copy {
	animation: xj-rise-in 760ms 1320ms cubic-bezier(0.22, 0.61, 0.36, 1) both;
}

.xuanji-fortune.xj-enter:not(.xj-motion-reduced) .xjf-button--hero {
	animation: xj-cta-in 780ms 1540ms cubic-bezier(0.22, 0.61, 0.36, 1) both;
}

/* Scroll Reveal */
.xuanji-fortune.xj-motion-ready:not(.xj-motion-reduced) .xj-reveal {
	opacity: 0;
	transform: translate3d(0, 28px, 0);
	transition: opacity 720ms cubic-bezier(0.22, 0.61, 0.36, 1), transform 720ms cubic-bezier(0.22, 0.61, 0.36, 1);
	transition-delay: var(--xj-stagger, 0ms);
}

.xuanji-fortune.xj-motion-ready:not(.xj-motion-reduced) .xj-reveal.xj-is-visible,
.xuanji-fortune.xj-motion-ready:not(.xj-motion-reduced) .xj-reveal.is-visible {
	opacity: 1;
	transform: translate3d(0, 0, 0);
}

.xuanji-fortune.xj-motion-ready:not(.xj-motion-reduced) .xjf-section-intro::after,
.xuanji-fortune.xj-motion-ready:not(.xj-motion-reduced) .xjf-card-head::after,
.xuanji-fortune.xj-motion-ready:not(.xj-motion-reduced) .xjf-report__cover::after {
	background: linear-gradient(90deg, transparent, rgba(201, 168, 102, 0.72), transparent);
	content: "";
	display: block;
	height: 1px;
	margin-top: 22px;
	transform: scaleX(0);
	transform-origin: center;
	transition: transform 900ms cubic-bezier(0.22, 0.61, 0.36, 1);
}

.xuanji-fortune.xj-motion-ready:not(.xj-motion-reduced) .xjf-section-intro.xj-is-visible::after,
.xuanji-fortune.xj-motion-ready:not(.xj-motion-reduced) .xjf-section-intro.is-visible::after,
.xuanji-fortune.xj-motion-ready:not(.xj-motion-reduced) .xjf-card-head.xj-is-visible::after,
.xuanji-fortune.xj-motion-ready:not(.xj-motion-reduced) .xjf-report__cover.xj-is-visible::after {
	transform: scaleX(1);
}

/* Hero Motion */
.xuanji-fortune.xj-motion-ready:not(.xj-motion-reduced) .xjf-hero {
	--xj-hero-progress: 0;
	--xj-scroll-y: 0px;
	--xj-pointer-bg-x: 0px;
	--xj-pointer-bg-y: 0px;
	--xj-pointer-chart-x: 0px;
	--xj-pointer-chart-y: 0px;
	--xj-pointer-logo-x: 0px;
	--xj-pointer-logo-y: 0px;
}

.xuanji-fortune.xj-motion-ready:not(.xj-motion-reduced) .xjf-hero::before {
	opacity: 0;
	transform: scaleX(0);
	transform-origin: 18% 70%;
}

.xuanji-fortune.xj-enter:not(.xj-motion-reduced) .xjf-hero::before {
	animation: xj-gold-grid-draw 1400ms 780ms cubic-bezier(0.22, 0.61, 0.36, 1) both;
}

.xuanji-fortune.xj-motion-ready:not(.xj-motion-reduced) .xjf-hero::after {
	animation: xj-quiet-meteor 18s 4s linear infinite;
	background: linear-gradient(90deg, transparent, rgba(241, 221, 176, 0.7), transparent);
	content: "";
	height: 1px;
	left: -22%;
	opacity: 0;
	position: absolute;
	top: 24%;
	transform: rotate(-18deg);
	width: 180px;
	z-index: -1;
}

.xuanji-fortune.xj-motion-ready:not(.xj-motion-reduced) .xjf-hero__stars {
	transform: translate3d(
		calc(var(--xj-pointer-bg-x, 0px) + var(--xj-scroll-y, 0px) * -0.12),
		calc(var(--xj-pointer-bg-y, 0px) + var(--xj-scroll-y, 0px) * 0.24),
		0
	);
}

.xuanji-fortune.xj-motion-ready:not(.xj-motion-reduced) .xjf-hero__glow {
	transform: translate3d(
		calc(var(--xj-pointer-bg-x, 0px) * 0.7),
		calc(var(--xj-pointer-bg-y, 0px) * 0.7 + var(--xj-scroll-y, 0px) * 0.18),
		0
	);
}

.xuanji-fortune.xj-motion-ready:not(.xj-motion-reduced) .xjf-hero__ink {
	transform: translate3d(
		calc(var(--xj-pointer-bg-x, 0px) * -0.55),
		calc(var(--xj-pointer-bg-y, 0px) * -0.35 + var(--xj-scroll-y, 0px) * 0.42),
		0
	);
}

.xuanji-fortune.xj-motion-ready:not(.xj-motion-reduced) .xjf-astrolabe {
	opacity: calc(0.42 - var(--xj-hero-progress, 0) * 0.26);
	transform: translate3d(
		var(--xj-pointer-chart-x, 0px),
		calc(var(--xj-pointer-chart-y, 0px) + var(--xj-scroll-y, 0px) * 0.72),
		0
	) scale(calc(1 - var(--xj-hero-progress, 0) * 0.05));
}

.xuanji-fortune.xj-motion-ready:not(.xj-motion-reduced) .xjf-astrolabe::before,
.xuanji-fortune.xj-motion-ready:not(.xj-motion-reduced) .xjf-astrolabe::after {
	animation: xj-orbit-clockwise 140s linear infinite;
}

.xuanji-fortune.xj-motion-ready:not(.xj-motion-reduced) .xjf-astrolabe span:nth-child(1),
.xuanji-fortune.xj-motion-ready:not(.xj-motion-reduced) .xjf-astrolabe span:nth-child(2) {
	animation: xj-orbit-counter 170s linear infinite;
}

.xuanji-fortune.xj-motion-ready:not(.xj-motion-reduced) .xjf-astrolabe span:nth-child(3) {
	animation: xj-orbit-clockwise 120s linear infinite, xj-gold-breathe 8s ease-in-out infinite;
}

.xuanji-fortune.xj-motion-ready:not(.xj-motion-reduced) .xjf-hero__inner {
	opacity: max(0, calc(1 - var(--xj-hero-progress, 0) * 1.18));
	transform: translate3d(
		var(--xj-pointer-logo-x, 0px),
		calc(var(--xj-pointer-logo-y, 0px) + var(--xj-scroll-y, 0px) * -1.12),
		0
	);
}

.xuanji-fortune.xj-motion-ready:not(.xj-motion-reduced) .xjf-button--hero {
	opacity: max(0, calc(1 - var(--xj-hero-progress, 0) * 0.78));
}

.xuanji-fortune.xj-motion-ready:not(.xj-motion-reduced) .xjf-hero__copy {
	opacity: 1;
}

.xuanji-fortune.xj-motion-ready:not(.xj-motion-reduced) .xjf-hero__copy span {
	display: inline-block;
	opacity: 0;
	transform: translate3d(0, 16px, 0);
}

.xuanji-fortune.xj-enter:not(.xj-motion-reduced) .xjf-hero__copy {
	animation: none;
}

.xuanji-fortune.xj-enter:not(.xj-motion-reduced) .xjf-hero__copy span:nth-child(1) {
	animation: xj-rise-in 720ms 1440ms cubic-bezier(0.22, 0.61, 0.36, 1) both;
}

.xuanji-fortune.xj-enter:not(.xj-motion-reduced) .xjf-hero__copy span:nth-child(2) {
	animation: xj-rise-in 720ms 1580ms cubic-bezier(0.22, 0.61, 0.36, 1) both;
}

.xuanji-fortune.xj-enter:not(.xj-motion-reduced) .xjf-hero__copy span:nth-child(3) {
	animation: xj-rise-in 720ms 1720ms cubic-bezier(0.22, 0.61, 0.36, 1) both;
}

.xuanji-fortune.xj-motion-ready .xjf-button--hero::before {
	animation: xj-ceremony-sweep 7.4s 3.1s cubic-bezier(0.22, 0.61, 0.36, 1) infinite;
	background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.46), rgba(241, 221, 176, 0.55), transparent);
	content: "";
	inset: -20% auto -20% -70%;
	position: absolute;
	transform: skewX(-18deg);
	width: 44%;
}

.xuanji-fortune.xj-motion-ready:not(.xj-motion-reduced) .xjf-experience::before {
	animation: xj-book-open 1100ms cubic-bezier(0.22, 0.61, 0.36, 1) both;
	background:
		linear-gradient(90deg, transparent, rgba(241, 221, 176, 0.12), transparent),
		linear-gradient(180deg, rgba(244, 239, 229, 0.09), transparent 62%);
	content: "";
	height: 120px;
	inset: 0 0 auto;
	pointer-events: none;
	position: absolute;
	transform-origin: top center;
}

.xuanji-fortune.xj-motion-ready:not(.xj-motion-reduced) .xjf-experience::after {
	animation: xj-page-mist 22s ease-in-out infinite alternate;
	background:
		radial-gradient(ellipse at 16% 20%, rgba(241, 221, 176, 0.08), transparent 30%),
		radial-gradient(ellipse at 84% 54%, rgba(180, 202, 238, 0.07), transparent 32%);
	content: "";
	inset: 0;
	pointer-events: none;
	position: absolute;
	z-index: 0;
}

.xuanji-fortune.xj-enter:not(.xj-motion-reduced) .xjf-hero__stars {
	animation: xj-soft-appear 1200ms 180ms cubic-bezier(0.22, 0.61, 0.36, 1) both, xj-star-field-drift 28s ease-in-out 1500ms infinite alternate;
}

.xuanji-fortune.xj-enter:not(.xj-motion-reduced) .xjf-hero__glow,
.xuanji-fortune.xj-enter:not(.xj-motion-reduced) .xjf-hero__ink {
	animation: xj-soft-appear 1300ms 360ms cubic-bezier(0.22, 0.61, 0.36, 1) both, xj-mist-breathe 12s ease-in-out 1500ms infinite alternate;
}

.xuanji-fortune.xj-enter:not(.xj-motion-reduced) .xjf-astrolabe {
	animation: none;
	opacity: calc(0.42 - var(--xj-hero-progress, 0) * 0.26);
	transition: opacity 1500ms 520ms cubic-bezier(0.22, 0.61, 0.36, 1), transform 180ms linear;
}

.xuanji-fortune.xj-motion-ready:not(.xj-motion-reduced) .xjf-section-intro,
.xuanji-fortune.xj-motion-ready:not(.xj-motion-reduced) .xjf-workspace {
	position: relative;
	z-index: 1;
}

/* Form Transition */
.xuanji-fortune.xj-motion-ready:not(.xj-motion-reduced) .xjf-form {
	transition: min-height 420ms cubic-bezier(0.22, 0.61, 0.36, 1), box-shadow 220ms ease;
}

.xuanji-fortune.xj-motion-ready:not(.xj-motion-reduced) .xjf-form.xj-is-transitioning {
	pointer-events: none;
}

.xuanji-fortune.xj-motion-ready:not(.xj-motion-reduced) .xjf-form__page.xj-form-enter-right {
	animation: xj-form-enter-right 430ms cubic-bezier(0.22, 0.61, 0.36, 1) both;
}

.xuanji-fortune.xj-motion-ready:not(.xj-motion-reduced) .xjf-form__page.xj-form-enter-left {
	animation: xj-form-enter-left 430ms cubic-bezier(0.22, 0.61, 0.36, 1) both;
}

.xuanji-fortune.xj-motion-ready:not(.xj-motion-reduced) .xjf-form__page.xj-form-exit-left {
	animation: xj-form-exit-left 260ms cubic-bezier(0.22, 0.61, 0.36, 1) both;
}

.xuanji-fortune.xj-motion-ready:not(.xj-motion-reduced) .xjf-form__page.xj-form-exit-right {
	animation: xj-form-exit-right 260ms cubic-bezier(0.22, 0.61, 0.36, 1) both;
}

.xuanji-fortune.xj-motion-ready .xjf-step.xj-is-complete::before {
	background: rgba(143, 210, 173, 0.18);
	border: 1px solid rgba(143, 210, 173, 0.54);
	border-radius: 999px;
	color: var(--xjf-color-success);
	content: "✓";
	font-size: 12px;
	height: 20px;
	line-height: 18px;
	position: absolute;
	right: 12px;
	text-align: center;
	top: 12px;
	width: 20px;
}

.xuanji-fortune.xj-motion-ready .xj-field-invalid input,
.xuanji-fortune.xj-motion-ready .xj-field-invalid select,
.xuanji-fortune.xj-motion-ready .xj-field-invalid textarea {
	border-color: var(--xjf-color-danger);
	box-shadow: 0 0 0 3px rgba(223, 140, 134, 0.18);
}

.xuanji-fortune.xj-motion-ready:not(.xj-motion-reduced) .xj-field-invalid {
	animation: xj-soft-invalid 420ms cubic-bezier(0.22, 0.61, 0.36, 1);
}

.xuanji-fortune.xj-motion-ready .xj-count-updated {
	color: var(--xjf-color-primary-gold-light);
	transition: color 180ms ease;
}

/* Card Interaction */
.xuanji-fortune.xj-motion-ready:not(.xj-motion-reduced) .xjf-question-card,
.xuanji-fortune.xj-motion-ready:not(.xj-motion-reduced) .xjf-form,
.xuanji-fortune.xj-motion-ready:not(.xj-motion-reduced) .xjf-report {
	transition: border-color 260ms ease, box-shadow 260ms ease, transform 260ms ease, background 260ms ease;
}

.xuanji-fortune.xj-motion-ready:not(.xj-motion-reduced) .xjf-question-card:hover,
.xuanji-fortune.xj-motion-ready:not(.xj-motion-reduced) .xjf-report-section:hover {
	border-color: rgba(201, 168, 102, 0.42);
	transform: translateY(-4px);
}

.xuanji-fortune.xj-motion-ready .xjf-button,
.xuanji-fortune.xj-motion-ready .xjf-lock button {
	overflow: hidden;
	position: relative;
}

.xuanji-fortune.xj-motion-ready .xjf-button::after,
.xuanji-fortune.xj-motion-ready .xjf-lock button::after {
	background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.42), transparent);
	content: "";
	inset: 0 auto 0 -70%;
	position: absolute;
	transform: skewX(-18deg);
	transition: left 520ms cubic-bezier(0.22, 0.61, 0.36, 1);
	width: 54%;
}

.xuanji-fortune.xj-motion-ready .xjf-button:hover::after,
.xuanji-fortune.xj-motion-ready .xjf-lock button:hover::after {
	left: 118%;
}

.xuanji-fortune.xj-motion-ready .xjf-button:active,
.xuanji-fortune.xj-motion-ready .xjf-lock button:active {
	transform: scale(0.98);
}

.xuanji-fortune.xj-motion-ready .xjf-button:focus-visible,
.xuanji-fortune.xj-motion-ready .xjf-step:focus-visible,
.xuanji-fortune.xj-motion-ready .xjf-lock button:focus-visible {
	outline: 2px solid var(--xjf-color-primary-gold-light);
	outline-offset: 3px;
}

/* Loading */
.xuanji-fortune.xj-motion-ready:not(.xj-motion-reduced) .xjf-loading__chart {
	animation: xj-loading-outer 34s linear infinite, xj-gold-breathe 3.8s ease-in-out infinite;
}

.xuanji-fortune.xj-motion-ready:not(.xj-motion-reduced) .xjf-loading__chart::before {
	animation: xj-loading-inner 46s linear infinite reverse;
}

.xuanji-fortune.xj-motion-ready:not(.xj-motion-reduced) .xjf-loading__row.xj-is-loading {
	background: linear-gradient(90deg, rgba(201, 168, 102, 0.13), rgba(255, 255, 255, 0.05));
	box-shadow: inset 0 0 0 1px rgba(201, 168, 102, 0.18), 0 10px 30px rgba(201, 168, 102, 0.08);
}

.xuanji-fortune.xj-motion-ready .xjf-loading__row.xj-is-complete i::after {
	color: #06101c;
	content: "✓";
	font-size: 8px;
	font-style: normal;
	left: 2px;
	position: relative;
	top: -4px;
}

/* Report */
.xuanji-fortune.xj-motion-ready:not(.xj-motion-reduced) .xj-report-ready .xjf-report__cover {
	animation: xj-report-cover-in 780ms cubic-bezier(0.22, 0.61, 0.36, 1) both;
}

.xuanji-fortune.xj-motion-ready:not(.xj-motion-reduced) .xj-report-ready .xjf-report-section {
	animation: xj-report-section-in 760ms cubic-bezier(0.22, 0.61, 0.36, 1) both;
	animation-delay: var(--xj-stagger, 0ms);
}

.xuanji-fortune.xj-motion-ready:not(.xj-motion-reduced) .xj-report-ready .xjf-lock > div {
	animation: xj-lock-in 920ms 360ms cubic-bezier(0.22, 0.61, 0.36, 1) both;
}

.xuanji-fortune.xj-motion-ready:not(.xj-motion-reduced) .xjf-lock strong {
	animation: xj-price-glow 3.4s ease-in-out infinite;
}

/* Animation modes */
.xuanji-fortune.xj-motion-simple .xjf-hero__stars,
.xuanji-fortune.xj-motion-simple .xjf-hero__glow,
.xuanji-fortune.xj-motion-simple .xjf-hero__ink,
.xuanji-fortune.xj-motion-simple .xjf-astrolabe,
.xuanji-fortune.xj-motion-simple .xjf-loading__chart,
.xuanji-fortune.xj-motion-simple .xjf-lock strong {
	animation-duration: 0.01ms !important;
	animation-iteration-count: 1 !important;
}

.xuanji-fortune.xj-motion-off *,
.xuanji-fortune.xj-motion-off *::before,
.xuanji-fortune.xj-motion-off *::after,
.xuanji-fortune.xj-motion-reduced *,
.xuanji-fortune.xj-motion-reduced *::before,
.xuanji-fortune.xj-motion-reduced *::after {
	animation-duration: 0.01ms !important;
	animation-iteration-count: 1 !important;
	scroll-behavior: auto !important;
	transition-duration: 0.01ms !important;
}

.xuanji-fortune.xj-motion-off .xj-reveal,
.xuanji-fortune.xj-motion-reduced .xj-reveal {
	opacity: 1 !important;
	transform: none !important;
}

.xuanji-fortune.xj-motion-paused *,
.xuanji-fortune.xj-motion-paused *::before,
.xuanji-fortune.xj-motion-paused *::after {
	animation-play-state: paused !important;
}

/* Responsive Motion */
@media (max-width: 767px) {
	.xuanji-fortune.xj-motion-ready .xjf-hero__stars {
		background-size: 180px 180px, 280px 280px, 360px 360px;
		opacity: 0.28;
	}

	.xuanji-fortune.xj-motion-ready .xjf-astrolabe,
	.xuanji-fortune.xj-motion-ready .xjf-hero__glow,
	.xuanji-fortune.xj-motion-ready .xjf-hero__ink {
		transform: none !important;
	}
}

@media (prefers-reduced-motion: reduce) {
	.xuanji-fortune *,
	.xuanji-fortune *::before,
	.xuanji-fortune *::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		scroll-behavior: auto !important;
		transition-duration: 0.01ms !important;
	}

	.xuanji-fortune .xj-reveal,
	.xuanji-fortune .xjf-reveal {
		opacity: 1 !important;
		transform: none !important;
	}
}

@keyframes xj-hero-base-in {
	from {
		background-color: #02050b;
	}
	to {
		background-color: transparent;
	}
}

@keyframes xj-soft-appear {
	from {
		opacity: 0;
	}
	to {
		opacity: 1;
	}
}

@keyframes xj-star-field-drift {
	from {
		background-position: 0 0, 58px 92px, 140px 30px;
	}
	to {
		background-position: -22px 18px, 44px 112px, 128px 48px;
	}
}

@keyframes xj-mist-breathe {
	from {
		opacity: 0.42;
		filter: blur(2px);
	}
	to {
		opacity: 0.72;
		filter: blur(3px);
	}
}

@keyframes xj-gold-grid-draw {
	from {
		opacity: 0;
		transform: scaleX(0);
	}
	to {
		opacity: 0.6;
		transform: scaleX(1);
	}
}

@keyframes xj-orbit-clockwise {
	to {
		transform: rotate(360deg);
	}
}

@keyframes xj-orbit-counter {
	to {
		transform: rotate(-360deg);
	}
}

@keyframes xj-ceremony-sweep {
	0%,
	72% {
		left: -70%;
		opacity: 0;
	}
	78% {
		opacity: 0.9;
	}
	88% {
		left: 128%;
		opacity: 0;
	}
	100% {
		left: 128%;
		opacity: 0;
	}
}

@keyframes xj-book-open {
	from {
		opacity: 0;
		transform: perspective(900px) rotateX(12deg) scaleY(0.74);
	}
	to {
		opacity: 1;
		transform: perspective(900px) rotateX(0deg) scaleY(1);
	}
}

@keyframes xj-page-mist {
	from {
		opacity: 0.36;
		transform: translate3d(-12px, 0, 0);
	}
	to {
		opacity: 0.62;
		transform: translate3d(12px, 18px, 0);
	}
}

@keyframes xj-quiet-meteor {
	0%,
	86% {
		left: -22%;
		opacity: 0;
	}
	88% {
		opacity: 0.32;
	}
	94% {
		left: 112%;
		opacity: 0;
	}
	100% {
		left: 112%;
		opacity: 0;
	}
}

@keyframes xj-astrolabe-in {
	from {
		opacity: 0;
		transform: scale(0.97) rotate(-4deg);
	}
	to {
		opacity: 0.42;
		transform: scale(1) rotate(0deg);
	}
}

@keyframes xj-rise-in {
	from {
		opacity: 0;
		transform: translate3d(0, 28px, 0);
	}
	to {
		opacity: 1;
		transform: translate3d(0, 0, 0);
	}
}

@keyframes xj-cta-in {
	from {
		box-shadow: 0 0 0 rgba(201, 168, 102, 0);
		opacity: 0;
		transform: translate3d(0, 18px, 0);
	}
	to {
		box-shadow: 0 14px 34px rgba(201, 168, 102, 0.18);
		opacity: 1;
		transform: translate3d(0, 0, 0);
	}
}

@keyframes xj-form-enter-right {
	from {
		opacity: 0;
		transform: translate3d(28px, 0, 0);
	}
	to {
		opacity: 1;
		transform: translate3d(0, 0, 0);
	}
}

@keyframes xj-form-enter-left {
	from {
		opacity: 0;
		transform: translate3d(-28px, 0, 0);
	}
	to {
		opacity: 1;
		transform: translate3d(0, 0, 0);
	}
}

@keyframes xj-form-exit-left {
	from {
		opacity: 1;
		transform: translate3d(0, 0, 0);
	}
	to {
		opacity: 0;
		transform: translate3d(-18px, 0, 0);
	}
}

@keyframes xj-form-exit-right {
	from {
		opacity: 1;
		transform: translate3d(0, 0, 0);
	}
	to {
		opacity: 0;
		transform: translate3d(18px, 0, 0);
	}
}

@keyframes xj-soft-invalid {
	0%,
	100% {
		transform: translateX(0);
	}
	38% {
		transform: translateX(-3px);
	}
	68% {
		transform: translateX(3px);
	}
}

@keyframes xj-loading-outer {
	to {
		transform: rotate(360deg);
	}
}

@keyframes xj-loading-inner {
	to {
		transform: rotate(360deg);
	}
}

@keyframes xj-gold-breathe {
	0%,
	100% {
		box-shadow: 0 0 0 rgba(201, 168, 102, 0);
	}
	50% {
		box-shadow: 0 0 34px rgba(201, 168, 102, 0.16);
	}
}

@keyframes xj-report-cover-in {
	from {
		opacity: 0;
		transform: translate3d(0, 20px, 0);
	}
	to {
		opacity: 1;
		transform: translate3d(0, 0, 0);
	}
}

@keyframes xj-report-section-in {
	from {
		opacity: 0;
		transform: translate3d(0, 18px, 0) scale(0.985);
	}
	to {
		opacity: 1;
		transform: translate3d(0, 0, 0) scale(1);
	}
}

@keyframes xj-lock-in {
	from {
		filter: blur(8px);
		opacity: 0;
		transform: translate3d(0, 24px, 0);
	}
	to {
		filter: blur(0);
		opacity: 1;
		transform: translate3d(0, 0, 0);
	}
}

@keyframes xj-price-glow {
	0%,
	100% {
		text-shadow: 0 0 0 rgba(201, 168, 102, 0);
	}
	50% {
		text-shadow: 0 0 18px rgba(201, 168, 102, 0.28);
	}
}
