.usm-wsfx-host {
	position: relative;
}

.usm-wsfx-root {
	position: absolute;
	inset: 0;
	z-index: 2147483000;
	pointer-events: none;
	overflow: hidden;
	border-radius: inherit;
	contain: layout paint;
	isolation: isolate;
}

.usm-wsfx-root::before,
.usm-wsfx-root::after {
	content: "";
	position: absolute;
	inset: 0;
	opacity: 0;
	pointer-events: none;
	transition: opacity .24s ease;
}

.usm-wsfx-root::before {
	background:
		radial-gradient(circle at 50% 42%, rgba(255,255,255,.40), transparent 24%),
		radial-gradient(circle at 16% 18%, rgba(34,211,238,.34), transparent 28%),
		radial-gradient(circle at 84% 16%, rgba(244,114,182,.30), transparent 30%),
		radial-gradient(circle at 50% 96%, rgba(250,204,21,.24), transparent 34%),
		linear-gradient(90deg, transparent, rgba(250,204,21,.20), transparent);
	mix-blend-mode: screen;
}

.usm-wsfx-root::after {
	inset: 6px;
	border-radius: 28px;
	border: 2px solid rgba(250,204,21,.68);
	box-shadow: 0 0 34px rgba(250,204,21,.46), 0 0 74px rgba(236,72,153,.16), inset 0 0 26px rgba(34,211,238,.23);
}

.usm-wsfx-root.usm-wsfx-active::before,
.usm-wsfx-root.usm-wsfx-active::after {
	opacity: 1;
	animation: usm-wsfx-overlay-flash 1.28s ease-out both;
}

.usm-wsfx-root.usm-wsfx-tier-mega::after,
.usm-wsfx-root.usm-wsfx-tier-jackpot::after,
.usm-wsfx-root.usm-wsfx-tier-super::after {
	border-color: rgba(255,255,255,.92);
	box-shadow: 0 0 58px rgba(250,204,21,.72), 0 0 96px rgba(236,72,153,.32), inset 0 0 38px rgba(34,211,238,.38);
}

.usm-wsfx-banner {
	position: absolute;
	left: 50%;
	top: 17%;
	min-width: min(580px, 82%);
	max-width: min(720px, 92%);
	transform: translate3d(-50%, -16px, 0) scale(.82) rotate(-1deg);
	opacity: 0;
	padding: clamp(14px, 2.1vw, 24px) clamp(18px, 4vw, 36px);
	border-radius: 28px;
	text-align: center;
	background:
		linear-gradient(135deg, rgba(15,23,42,.90), rgba(30,41,59,.76)),
		radial-gradient(circle at 50% 0%, rgba(250,204,21,.28), transparent 48%),
		radial-gradient(circle at 10% 100%, rgba(34,211,238,.18), transparent 44%);
	border: 1px solid rgba(255,255,255,.28);
	box-shadow: 0 20px 70px rgba(0,0,0,.52), inset 0 1px 0 rgba(255,255,255,.28), 0 0 48px rgba(250,204,21,.32);
	backdrop-filter: blur(10px);
	font-family: var(--usm-font-super-jackpot, var(--usm-font-prize-meter, Impact, fantasy));
	letter-spacing: .04em;
	color: #fff7ed;
	text-shadow: 0 3px 0 rgba(0,0,0,.38), 0 0 24px rgba(250,204,21,.58);
}

.usm-wsfx-banner::before {
	content: "";
	position: absolute;
	inset: 0;
	border-radius: inherit;
	background: linear-gradient(115deg, transparent 0 24%, rgba(255,255,255,.20) 39%, transparent 54% 100%);
	transform: translateX(-110%);
	animation: usm-wsfx-banner-sheen 2.2s .25s ease-in-out infinite;
	pointer-events: none;
	mix-blend-mode: screen;
}

.usm-wsfx-banner.show {
	opacity: 1;
	transform: translate3d(-50%, 0, 0) scale(1) rotate(-1deg);
	animation: usm-wsfx-banner-in .48s cubic-bezier(.18,1.4,.36,1) both, usm-wsfx-banner-float 1.6s .55s ease-in-out infinite alternate;
}

.usm-wsfx-banner.hide {
	animation: usm-wsfx-banner-out .34s ease-in forwards;
}

.usm-wsfx-logo {
	display: flex;
	justify-content: center;
	align-items: center;
	margin: -2px auto 8px;
	max-width: min(360px, 86%);
	pointer-events: none;
}

.usm-wsfx-logo[hidden] {
	display: none;
}

.usm-wsfx-logo img {
	display: block;
	width: auto;
	max-width: 100%;
	max-height: clamp(42px, 9vw, 92px);
	object-fit: contain;
	border-radius: 14px;
	filter: drop-shadow(0 8px 18px rgba(0,0,0,.46)) drop-shadow(0 0 22px rgba(250,204,21,.38));
}

.usm-wsfx-banner-has-logo {
	padding-top: clamp(12px, 1.8vw, 18px);
}

.usm-wsfx-kicker {
	font-family: var(--usm-font-loading-status, system-ui, sans-serif);
	font-size: clamp(9px, 1.2vw, 12px);
	font-weight: 900;
	letter-spacing: .34em;
	text-transform: uppercase;
	color: #a7f3d0;
	margin-bottom: 3px;
	text-shadow: 0 0 12px rgba(45,212,191,.78);
}

.usm-wsfx-kicker:empty,
.usm-wsfx-kicker[hidden] {
	display: none;
}

.usm-wsfx-title {
	font-size: clamp(34px, 7.9vw, 88px);
	font-weight: 950;
	line-height: .88;
	text-transform: uppercase;
	-webkit-text-stroke: 1px rgba(0,0,0,.22);
}

.usm-wsfx-banner-big,
.usm-wsfx-banner-mega,
.usm-wsfx-banner-jackpot,
.usm-wsfx-banner-super {
	background:
		linear-gradient(135deg, rgba(76,29,149,.88), rgba(12,74,110,.74)),
		radial-gradient(circle at 50% -20%, rgba(253,224,71,.50), transparent 54%),
		radial-gradient(circle at 90% 80%, rgba(236,72,153,.24), transparent 50%);
	border-color: rgba(250,204,21,.68);
}

.usm-wsfx-banner-mega,
.usm-wsfx-banner-jackpot,
.usm-wsfx-banner-super {
	top: 12%;
	border-width: 2px;
	box-shadow: 0 24px 84px rgba(0,0,0,.60), 0 0 86px rgba(250,204,21,.50), 0 0 130px rgba(236,72,153,.28), inset 0 1px 0 rgba(255,255,255,.38);
}

.usm-wsfx-banner-mega .usm-wsfx-title,
.usm-wsfx-banner-jackpot .usm-wsfx-title,
.usm-wsfx-banner-super .usm-wsfx-title {
	font-size: clamp(42px, 9vw, 106px);
	background: linear-gradient(180deg, #fff 0%, #fef3c7 30%, #f59e0b 68%, #fff7ed 100%);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
	filter: drop-shadow(0 4px 0 rgba(0,0,0,.34)) drop-shadow(0 0 26px rgba(250,204,21,.68));
}

.usm-wsfx-banner-super .usm-wsfx-title {
	background: linear-gradient(180deg, #fff 0%, #cffafe 26%, #f0abfc 52%, #fef08a 82%, #fff 100%);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
}

.usm-wsfx-subtitle {
	font-family: var(--usm-font-prize-meter, system-ui, sans-serif);
	font-size: clamp(13px, 2vw, 19px);
	font-weight: 850;
	letter-spacing: .06em;
	text-transform: uppercase;
	color: #e0f2fe;
	margin-top: 8px;
}

.usm-wsfx-countup {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 8px;
	flex-wrap: wrap;
	margin-top: 12px;
}

.usm-wsfx-chip {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 6px 10px;
	border-radius: 999px;
	background: rgba(15,23,42,.66);
	border: 1px solid rgba(255,255,255,.30);
	box-shadow: inset 0 1px 0 rgba(255,255,255,.17), 0 8px 24px rgba(0,0,0,.22);
	font-family: var(--usm-font-prize-meter, system-ui, sans-serif);
}

.usm-wsfx-chip img {
	width: 22px;
	height: 22px;
	object-fit: contain;
	filter: drop-shadow(0 2px 4px rgba(0,0,0,.3));
}

.usm-wsfx-chip-coin {
	width: 22px;
	height: 22px;
	border-radius: 999px;
	display: grid;
	place-items: center;
	font-size: 14px;
	font-weight: 950;
	color: #422006;
	background: radial-gradient(circle at 32% 24%, #fff7ad, #facc15 44%, #b45309 100%);
}

.usm-wsfx-chip strong {
	font-size: 22px;
	line-height: 1;
	color: #fef08a;
}

.usm-wsfx-chip em {
	font-size: 12px;
	font-style: normal;
	font-weight: 850;
	text-transform: uppercase;
	color: #dbeafe;
}

.usm-wsfx-particle,
.usm-wsfx-line-spark,
.usm-wsfx-fizzle {
	position: absolute;
	z-index: 6;
	font-size: var(--wsfx-size, 20px);
	line-height: 1;
	transform: translate3d(0,0,0);
	filter: drop-shadow(0 8px 8px rgba(0,0,0,.35)) drop-shadow(0 0 12px rgba(250,204,21,.42));
	will-change: transform, opacity;
}

.usm-wsfx-particle {
	animation: usm-wsfx-coin-flight 1450ms cubic-bezier(.18,.8,.28,1) forwards;
}

.usm-wsfx-particle-jackpot,
.usm-wsfx-particle-mega,
.usm-wsfx-particle-super {
	filter: drop-shadow(0 10px 10px rgba(0,0,0,.42)) drop-shadow(0 0 20px rgba(250,204,21,.78));
}

.usm-wsfx-burst {
	position: absolute;
	z-index: 4;
	width: 16px;
	height: 16px;
	border-radius: 999px;
	background: radial-gradient(circle, rgba(255,255,255,1) 0 16%, rgba(250,204,21,.95) 17% 28%, rgba(34,211,238,.52) 29% 42%, transparent 43% 100%);
	box-shadow: 0 0 16px rgba(250,204,21,.72), 0 0 30px rgba(34,211,238,.38);
	animation: usm-wsfx-burst .95s ease-out forwards;
}

.usm-wsfx-burst::before,
.usm-wsfx-burst::after {
	content: "";
	position: absolute;
	inset: -15px;
	background: conic-gradient(from 0deg, transparent 0 9%, rgba(255,255,255,.92) 10% 12%, transparent 13% 24%, rgba(250,204,21,.85) 25% 27%, transparent 28% 42%, rgba(34,211,238,.78) 43% 45%, transparent 46% 65%, rgba(244,114,182,.78) 66% 68%, transparent 69% 100%);
	border-radius: 999px;
}

.usm-wsfx-burst::after {
	transform: rotate(22deg) scale(.72);
}

.usm-wsfx-line-sweep {
	position: absolute;
	z-index: 5;
	pointer-events: none;
	border-radius: 28px;
	overflow: hidden;
	opacity: 0;
	transform: scaleX(.96);
	box-shadow: 0 0 0 2px rgba(255,255,255,.18) inset, 0 0 34px rgba(253,224,71,.38), 0 0 90px rgba(34,211,238,.18);
	animation: usm-wsfx-line-band 1.35s ease-out forwards;
}

.usm-wsfx-line-sweep::before {
	content: "";
	position: absolute;
	inset: -10% 0;
	background: linear-gradient(90deg, transparent 0%, rgba(255,255,255,.14) 27%, rgba(255,255,255,.95) 49%, rgba(254,240,138,.66) 55%, rgba(255,255,255,.15) 70%, transparent 100%);
	transform: translateX(-135%);
	animation: usm-wsfx-line-shimmer .86s ease-in-out 1;
}

.usm-wsfx-line-sweep::after {
	content: "";
	position: absolute;
	inset: 0;
	background: repeating-linear-gradient(90deg, transparent 0 22px, rgba(255,255,255,.22) 23px 25px, transparent 26px 42px), linear-gradient(180deg, rgba(255,255,255,.14), transparent 42%, rgba(255,255,255,.10));
	mix-blend-mode: screen;
	opacity: .65;
	animation: usm-wsfx-line-glitter .76s linear infinite;
}

.usm-wsfx-line-sweep-top {
	background: linear-gradient(90deg, rgba(34,211,238,.10), rgba(34,211,238,.46), rgba(34,211,238,.10));
	box-shadow: 0 0 0 3px rgba(34,211,238,.86) inset, 0 0 38px rgba(34,211,238,.62), 0 0 90px rgba(34,211,238,.24);
}

.usm-wsfx-line-sweep-center {
	background: linear-gradient(90deg, rgba(253,224,71,.12), rgba(253,224,71,.52), rgba(253,224,71,.12));
	box-shadow: 0 0 0 3px rgba(253,224,71,.92) inset, 0 0 40px rgba(253,224,71,.66), 0 0 95px rgba(253,224,71,.24);
}

.usm-wsfx-line-sweep-bottom {
	background: linear-gradient(90deg, rgba(167,139,250,.10), rgba(167,139,250,.46), rgba(167,139,250,.10));
	box-shadow: 0 0 0 3px rgba(167,139,250,.86) inset, 0 0 38px rgba(167,139,250,.60), 0 0 90px rgba(167,139,250,.24);
}

.usm-wsfx-line-label {
	position: absolute;
	z-index: 8;
	transform: translate3d(-50%, -50%, 0) scale(.84);
	opacity: 0;
	padding: 6px 12px;
	border-radius: 999px;
	background: rgba(15,23,42,.88);
	border: 1px solid rgba(255,255,255,.36);
	box-shadow: 0 10px 28px rgba(0,0,0,.35), 0 0 24px rgba(250,204,21,.30);
	font-family: var(--usm-font-prize-meter, system-ui, sans-serif);
	font-size: clamp(11px, 1.35vw, 18px);
	font-weight: 950;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: #fff;
	animation: usm-wsfx-line-label 1.08s cubic-bezier(.18,1.3,.36,1) forwards;
}

.usm-wsfx-line-label-top { color: #a5f3fc; }
.usm-wsfx-line-label-center { color: #fef08a; }
.usm-wsfx-line-label-bottom { color: #ddd6fe; }

.usm-wsfx-line-spark {
	pointer-events: none;
	font-size: clamp(15px, 2vw, 27px);
	font-weight: 950;
	color: #fef08a;
	text-shadow: 0 0 12px rgba(250,204,21,.78), 0 5px 14px rgba(0,0,0,.35);
	animation: usm-wsfx-line-spark 1.12s ease-out forwards;
}

.usm-wsfx-line-spark-top {
	color: #a5f3fc;
	text-shadow: 0 0 12px rgba(34,211,238,.82), 0 5px 14px rgba(0,0,0,.35);
}

.usm-wsfx-line-spark-bottom {
	color: #ddd6fe;
	text-shadow: 0 0 12px rgba(167,139,250,.82), 0 5px 14px rgba(0,0,0,.35);
}

.slot-card.usm-wsfx-symbol-pop img,
.final-window-card.usm-wsfx-symbol-pop img,
.row-window.usm-wsfx-symbol-pop {
	animation: usm-wsfx-symbol-pop .86s ease-in-out 1;
	animation-delay: var(--wsfx-pop-delay, 0s);
	filter: drop-shadow(0 0 20px rgba(255,255,255,.38)) drop-shadow(0 8px 20px rgba(0,0,0,.24));
}

.usm-wsfx-shockwave {
	position: absolute;
	left: 50%;
	top: 52%;
	z-index: 3;
	width: 44px;
	height: 44px;
	border-radius: 999px;
	border: 3px solid rgba(255,255,255,.88);
	box-shadow: 0 0 24px rgba(250,204,21,.55), inset 0 0 18px rgba(34,211,238,.28);
	transform: translate(-50%, -50%) scale(.2);
	opacity: 0;
	animation: usm-wsfx-shockwave 1.15s ease-out forwards;
}

.usm-wsfx-shockwave-jackpot,
.usm-wsfx-shockwave-super {
	border-color: rgba(250,204,21,.96);
	box-shadow: 0 0 30px rgba(250,204,21,.75), 0 0 80px rgba(236,72,153,.32), inset 0 0 22px rgba(34,211,238,.32);
}

.usm-wsfx-spotlight {
	position: absolute;
	z-index: 2;
	left: 50%;
	top: -12%;
	width: 18%;
	height: 130%;
	transform-origin: 50% 0;
	background: linear-gradient(180deg, rgba(255,255,255,.24), rgba(250,204,21,.10) 46%, transparent 100%);
	filter: blur(4px);
	opacity: 0;
	mix-blend-mode: screen;
	animation: usm-wsfx-spotlight 2.4s ease-in-out forwards;
}
.usm-wsfx-spotlight-0 { transform: rotate(-24deg); }
.usm-wsfx-spotlight-1 { transform: rotate(24deg); animation-delay: .12s; }

.usm-wsfx-confetti {
	position: absolute;
	top: -12px;
	z-index: 7;
	width: 8px;
	height: 14px;
	border-radius: 2px;
	background: #facc15;
	transform: translate3d(0,0,0) rotate(0deg);
	animation: usm-wsfx-confetti-fall 1.8s linear forwards;
}
.usm-wsfx-confetti-0 { background:#facc15; }
.usm-wsfx-confetti-1 { background:#22d3ee; }
.usm-wsfx-confetti-2 { background:#f472b6; }
.usm-wsfx-confetti-3 { background:#a78bfa; }
.usm-wsfx-confetti-4 { background:#34d399; }
.usm-wsfx-confetti-5 { background:#fb923c; }

.usm-wsfx-firework {
	position: absolute;
	z-index: 5;
	width: 10px;
	height: 10px;
	border-radius: 999px;
	background: #fff;
	box-shadow: 0 0 0 0 rgba(250,204,21,.9), 0 0 12px rgba(255,255,255,.85);
	animation: usm-wsfx-firework 1.25s ease-out forwards;
}

.usm-wsfx-firework::before,
.usm-wsfx-firework::after {
	content:"";
	position:absolute;
	inset:-34px;
	border-radius:999px;
	background: conic-gradient(from 0deg, transparent 0 8%, rgba(255,255,255,.95) 9% 11%, transparent 12% 22%, rgba(250,204,21,.9) 23% 25%, transparent 26% 38%, rgba(34,211,238,.9) 39% 41%, transparent 42% 56%, rgba(236,72,153,.9) 57% 59%, transparent 60% 100%);
	opacity:.9;
}
.usm-wsfx-firework::after { transform: rotate(18deg) scale(.66); }

.usm-wsfx-near-miss {
	position: absolute;
	left: 50%;
	top: 36%;
	z-index: 9;
	transform: translate(-50%, -50%) scale(.82);
	opacity: 0;
	padding: 10px 18px;
	border-radius: 999px;
	background: rgba(15,23,42,.86);
	border: 1px solid rgba(148,163,184,.48);
	box-shadow: 0 12px 34px rgba(0,0,0,.36), 0 0 22px rgba(148,163,184,.20);
	font-family: var(--usm-font-prize-meter, system-ui, sans-serif);
	font-size: clamp(22px, 5vw, 48px);
	font-weight: 950;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: #e5e7eb;
	text-shadow: 0 0 18px rgba(148,163,184,.38);
}
.usm-wsfx-near-miss.show { animation: usm-wsfx-near-miss-in .28s cubic-bezier(.18,1.3,.36,1) forwards; }
.usm-wsfx-near-miss.hide { animation: usm-wsfx-near-miss-out .3s ease-in forwards; }
.usm-wsfx-fizzle {
	color: #cbd5e1;
	font-size: 20px;
	animation: usm-wsfx-fizzle .9s ease-out forwards;
}

.usm-wsfx-hot-meter {
	position: absolute;
	top: 14px;
	right: 14px;
	z-index: 10;
	display: inline-flex;
	align-items: center;
	gap: 7px;
	padding: 8px 12px;
	border-radius: 999px;
	background: rgba(15,23,42,.84);
	border: 1px solid rgba(251,146,60,.58);
	box-shadow: 0 12px 34px rgba(0,0,0,.35), 0 0 30px rgba(249,115,22,.20);
	font-family: var(--usm-font-prize-meter, system-ui, sans-serif);
	font-size: 13px;
	font-weight: 950;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: #fed7aa;
	opacity: 0;
	transform: translate3d(16px, -8px, 0) scale(.92);
	transition: opacity .22s ease, transform .28s cubic-bezier(.2,1.25,.36,1);
}
.usm-wsfx-hot-meter.show { opacity: 1; transform: translate3d(0,0,0) scale(1); }
.usm-wsfx-hot-meter.hot { color:#fef08a; border-color:rgba(250,204,21,.72); box-shadow:0 12px 34px rgba(0,0,0,.35),0 0 36px rgba(250,204,21,.36); }
.usm-wsfx-hot-meter.fire { color:#fff; border-color:rgba(255,255,255,.8); background:linear-gradient(135deg,rgba(127,29,29,.88),rgba(67,56,202,.76)); animation:usm-wsfx-hot-fire .7s ease-in-out infinite alternate; }
.usm-wsfx-hot-flame { font-size:18px; filter:drop-shadow(0 0 12px rgba(251,146,60,.72)); }
.usm-wsfx-hot-count { padding:2px 6px; border-radius:999px; background:rgba(255,255,255,.16); color:#fff; }

.usm-wsfx-special-callout {
	top: 22%;
	min-width: min(520px, 80%);
}
.usm-wsfx-special-free .usm-wsfx-title,
.usm-wsfx-special-bonus .usm-wsfx-title,
.usm-wsfx-special-wheel .usm-wsfx-title {
	font-size: clamp(34px, 7vw, 84px);
}

.reel-area.usm-wsfx-reel-pulse-nice,
.machine.usm-wsfx-reel-pulse-nice { animation: usm-wsfx-pulse-nice .9s ease-out both; }
.reel-area.usm-wsfx-reel-pulse-big,
.machine.usm-wsfx-reel-pulse-big { animation: usm-wsfx-pulse-big 1.18s ease-out both; }
.reel-area.usm-wsfx-reel-pulse-mega,
.machine.usm-wsfx-reel-pulse-mega,
.reel-area.usm-wsfx-reel-pulse-jackpot,
.machine.usm-wsfx-reel-pulse-jackpot,
.reel-area.usm-wsfx-reel-pulse-super,
.machine.usm-wsfx-reel-pulse-super { animation: usm-wsfx-pulse-mega 1.42s ease-out both; }

.machine.usm-wsfx-screen-shake-big,
.app.usm-wsfx-screen-shake-big { animation: usm-wsfx-screen-shake .58s ease-in-out both; }
.machine.usm-wsfx-screen-shake-mega,
.machine.usm-wsfx-screen-shake-jackpot,
.machine.usm-wsfx-screen-shake-super,
.app.usm-wsfx-screen-shake-mega,
.app.usm-wsfx-screen-shake-jackpot,
.app.usm-wsfx-screen-shake-super { animation: usm-wsfx-screen-shake-strong .82s ease-in-out both; }

body.usm-wsfx-suppress-native .jazz-badge,
body.usm-wsfx-suppress-native .jazz-emoji,
body.usm-wsfx-suppress-native .jazz-row-spark,
body.usm-wsfx-suppress-native .jackpot-spark {
	display: none !important;
}

body.usm-wsfx-suppress-native .machine.jazz-shake,
body.usm-wsfx-suppress-native .machine.jazz-super-shake,
body.usm-wsfx-suppress-native .machine.jazz-bonus-glow,
body.usm-wsfx-suppress-native .machine.jazz-wipe-sweep,
body.usm-wsfx-suppress-native .inline-winbox.jazz-punch {
	animation: none !important;
}

@keyframes usm-wsfx-overlay-flash {
	0% { opacity: 0; transform: scale(.98); }
	12% { opacity: 1; transform: scale(1); }
	100% { opacity: 0; transform: scale(1.04); }
}
@keyframes usm-wsfx-banner-in {
	0% { opacity: 0; transform: translate3d(-50%, -20px, 0) scale(.74) rotate(-3deg); filter: blur(3px); }
	64% { opacity: 1; transform: translate3d(-50%, 5px, 0) scale(1.075) rotate(1deg); filter: blur(0); }
	100% { opacity: 1; transform: translate3d(-50%, 0, 0) scale(1) rotate(-1deg); filter: blur(0); }
}
@keyframes usm-wsfx-banner-float {
	from { transform: translate3d(-50%, 0, 0) scale(1) rotate(-1deg); }
	to { transform: translate3d(-50%, -6px, 0) scale(1.018) rotate(1deg); }
}
@keyframes usm-wsfx-banner-out {
	to { opacity: 0; transform: translate3d(-50%, -18px, 0) scale(.92) rotate(2deg); filter: blur(2px); }
}
@keyframes usm-wsfx-banner-sheen {
	0% { transform: translateX(-120%); }
	45%, 100% { transform: translateX(120%); }
}
@keyframes usm-wsfx-coin-flight {
	0% { opacity: 0; transform: translate3d(0, 14px, 0) scale(.45) rotate(0deg); }
	10% { opacity: 1; }
	72% { opacity: 1; }
	100% { opacity: 0; transform: translate3d(var(--wsfx-x), var(--wsfx-y), 0) scale(var(--wsfx-s)) rotate(var(--wsfx-r)); }
}
@keyframes usm-wsfx-burst {
	0% { opacity: 0; transform: scale(.2) rotate(0deg); }
	18% { opacity: 1; }
	100% { opacity: 0; transform: scale(2.8) rotate(80deg); }
}
@keyframes usm-wsfx-line-band {
	0% { opacity: 0; transform: scaleX(.955); filter: brightness(.95); }
	14% { opacity: 1; transform: scaleX(1.012); filter: brightness(1.42); }
	62% { opacity: 1; transform: scaleX(1); filter: brightness(1.15); }
	100% { opacity: 0; transform: scaleX(1.025); filter: brightness(.9); }
}
@keyframes usm-wsfx-line-shimmer {
	0% { transform: translateX(-135%); }
	100% { transform: translateX(135%); }
}
@keyframes usm-wsfx-line-glitter {
	0% { transform: translateX(-24px); }
	100% { transform: translateX(24px); }
}
@keyframes usm-wsfx-line-label {
	0% { opacity: 0; transform: translate3d(-50%, -50%, 0) scale(.82); }
	18% { opacity: 1; transform: translate3d(-50%, -50%, 0) scale(1.06); }
	72% { opacity: 1; transform: translate3d(-50%, -50%, 0) scale(1); }
	100% { opacity: 0; transform: translate3d(-50%, -62%, 0) scale(.94); }
}
@keyframes usm-wsfx-line-spark {
	0% { opacity: 0; transform: translate3d(0, 0, 0) scale(.48) rotate(-8deg); }
	18% { opacity: 1; }
	100% { opacity: 0; transform: translate3d(0, var(--wsfx-y, -62px), 0) scale(1.22) rotate(16deg); }
}
@keyframes usm-wsfx-symbol-pop {
	0%, 100% { transform: scale(1); }
	38% { transform: scale(1.09); }
	52% { transform: scale(1.04); }
}
@keyframes usm-wsfx-shockwave {
	0% { opacity: 0; transform: translate(-50%, -50%) scale(.2); }
	14% { opacity: 1; }
	100% { opacity: 0; transform: translate(-50%, -50%) scale(16); }
}
@keyframes usm-wsfx-spotlight {
	0% { opacity: 0; transform: rotate(-30deg) translateX(-30%); }
	20% { opacity: .75; }
	100% { opacity: 0; transform: rotate(30deg) translateX(30%); }
}
@keyframes usm-wsfx-confetti-fall {
	0% { opacity: 0; transform: translate3d(0,-20px,0) rotate(0deg); }
	8% { opacity: 1; }
	100% { opacity: 0; transform: translate3d(var(--wsfx-x), 105vh,0) rotate(var(--wsfx-r)); }
}
@keyframes usm-wsfx-firework {
	0% { opacity: 0; transform: scale(.4); box-shadow: 0 0 0 0 rgba(250,204,21,.9), 0 0 12px rgba(255,255,255,.85); }
	18% { opacity: 1; }
	100% { opacity: 0; transform: scale(1.8); box-shadow: 0 0 0 62px rgba(250,204,21,0), 0 0 80px rgba(255,255,255,0); }
}
@keyframes usm-wsfx-near-miss-in {
	from { opacity: 0; transform: translate(-50%, -50%) scale(.82); }
	to { opacity: 1; transform: translate(-50%, -50%) scale(1); }
}
@keyframes usm-wsfx-near-miss-out {
	to { opacity: 0; transform: translate(-50%, -62%) scale(.92); filter: blur(2px); }
}
@keyframes usm-wsfx-fizzle {
	0% { opacity: 0; transform: translate3d(0,0,0) scale(.5); }
	20% { opacity: 1; }
	100% { opacity: 0; transform: translate3d(var(--wsfx-x), var(--wsfx-y), 0) scale(.85); }
}
@keyframes usm-wsfx-hot-fire {
	from { transform: translate3d(0,0,0) scale(1); filter: saturate(1); }
	to { transform: translate3d(0,-2px,0) scale(1.035); filter: saturate(1.25); }
}
@keyframes usm-wsfx-pulse-nice {
	0%, 100% { filter: none; }
	35% { filter: drop-shadow(0 0 20px rgba(250,204,21,.28)); }
}
@keyframes usm-wsfx-pulse-big {
	0%, 100% { filter: none; transform: translate3d(0,0,0); }
	18% { filter: drop-shadow(0 0 32px rgba(250,204,21,.48)); transform: translate3d(-1px,0,0); }
	32% { transform: translate3d(2px,0,0); }
	46% { transform: translate3d(-1px,0,0); }
}
@keyframes usm-wsfx-pulse-mega {
	0%, 100% { filter: none; transform: translate3d(0,0,0); }
	10% { filter: drop-shadow(0 0 44px rgba(250,204,21,.68)); transform: translate3d(-3px,0,0); }
	18% { transform: translate3d(3px,0,0); }
	26% { transform: translate3d(-2px,0,0); }
	34% { transform: translate3d(2px,0,0); }
	50% { filter: drop-shadow(0 0 64px rgba(236,72,153,.36)); transform: translate3d(0,0,0); }
}
@keyframes usm-wsfx-screen-shake {
	0%,100% { transform: translate3d(0,0,0); }
	15% { transform: translate3d(-2px,1px,0); }
	30% { transform: translate3d(3px,-1px,0); }
	45% { transform: translate3d(-2px,2px,0); }
	60% { transform: translate3d(2px,-1px,0); }
	75% { transform: translate3d(-1px,1px,0); }
}
@keyframes usm-wsfx-screen-shake-strong {
	0%,100% { transform: translate3d(0,0,0); }
	10% { transform: translate3d(-4px,2px,0); }
	20% { transform: translate3d(5px,-2px,0); }
	30% { transform: translate3d(-4px,3px,0); }
	40% { transform: translate3d(4px,-2px,0); }
	50% { transform: translate3d(-3px,2px,0); }
	60% { transform: translate3d(3px,-1px,0); }
	75% { transform: translate3d(-2px,1px,0); }
}

@media (max-width: 680px) {
	.usm-wsfx-banner {
		top: 13%;
		min-width: 88%;
		padding: 13px 14px;
		border-radius: 20px;
	}
	.usm-wsfx-banner-mega,
	.usm-wsfx-banner-jackpot,
	.usm-wsfx-banner-super {
		top: 9%;
	}
	.usm-wsfx-title {
		font-size: clamp(28px, 10vw, 56px);
	}
	.usm-wsfx-subtitle { font-size: 12px; }
	.usm-wsfx-logo { max-width: 82%; margin-bottom: 6px; }
	.usm-wsfx-logo img { max-height: 52px; border-radius: 10px; }
	.usm-wsfx-chip { padding: 5px 8px; }
	.usm-wsfx-chip strong { font-size: 18px; }
	.usm-wsfx-chip em { font-size: 10px; }
	.usm-wsfx-hot-meter {
		top: 8px;
		right: 8px;
		font-size: 11px;
		padding: 6px 8px;
		gap: 5px;
	}
	.usm-wsfx-line-label { font-size: 11px; padding: 5px 9px; }
}

@media (hover:none),(pointer:coarse),(max-width:900px) {
	.usm-wsfx-particle,
	.usm-wsfx-burst,
	.usm-wsfx-line-sweep,
	.usm-wsfx-line-spark,
	.usm-wsfx-firework,
	.usm-wsfx-spotlight {
		filter: none !important;
		box-shadow: none !important;
	}
	.usm-wsfx-root { mix-blend-mode: normal; }
}

@media (prefers-reduced-motion: reduce) {
	.usm-wsfx-root::before,
	.usm-wsfx-root::after,
	.usm-wsfx-banner,
	.usm-wsfx-banner::before,
	.usm-wsfx-particle,
	.usm-wsfx-burst,
	.usm-wsfx-line-sweep,
	.usm-wsfx-line-spark,
	.usm-wsfx-confetti,
	.usm-wsfx-firework,
	.usm-wsfx-spotlight,
	.usm-wsfx-shockwave,
	.usm-wsfx-hot-meter,
	.reel-area[class*="usm-wsfx-reel-pulse"],
	.machine[class*="usm-wsfx-reel-pulse"],
	.machine[class*="usm-wsfx-screen-shake"],
	.app[class*="usm-wsfx-screen-shake"] {
		animation: none !important;
		transition: none !important;
	}
	.usm-wsfx-banner.show { opacity: 1; transform: translate3d(-50%, 0, 0) scale(1); }
}


/* Win Storm FX 3.0.2: do not compete with event video playback. */
html.usm-video-active .usm-wsfx-root,
body.usm-video-active .usm-wsfx-root,
.app.has-video-active .usm-wsfx-root{display:none !important;animation:none !important;filter:none !important;}
html.usm-video-active .usm-wsfx-root *,
body.usm-video-active .usm-wsfx-root *,
.app.has-video-active .usm-wsfx-root *{animation:none !important;transition:none !important;}


/* v3.0.3: true video quiet mode. */
html.usm-video-active .usm-wsfx-root,
body.usm-video-active .usm-wsfx-root,
.usm-wsfx-root.usm-wsfx-video-quiet{display:none !important;visibility:hidden !important;animation:none !important;transition:none !important;z-index:-1 !important;}


/* Phase 4: Win Storm FX owns dramatic presentation when enabled. */
body.usm-wsfx-suppress-native .jackpot-overlay,
body.usm-wsfx-suppress-native .tease-banner,
body.usm-wsfx-suppress-native .line-win-banner,
html.usm-wsfx-suppress-native .jackpot-overlay,
html.usm-wsfx-suppress-native .tease-banner,
html.usm-wsfx-suppress-native .line-win-banner {
	display: none !important;
	visibility: hidden !important;
	opacity: 0 !important;
	animation: none !important;
}
