.gea-sw,
.gea-sw * {
	box-sizing: border-box;
}

.gea-sw {
	--gea-sw-gold: #d4af37;
	--gea-sw-red: #d71920;
	--gea-sw-bg: #070707;
	--gea-sw-panel: #151515;
	width: 100%;
	max-width: 1180px;
	margin: 28px auto;
	padding: 0 12px;
	font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
	color: #fff;
	line-height: 1.5;
	isolation: isolate;
}

.gea-sw button,
.gea-sw a {
	font: inherit;
}

.gea-sw-shell {
	position: relative;
	overflow: hidden;
	border: 2px solid color-mix(in srgb, var(--gea-sw-gold) 88%, #fff 12%);
	border-radius: 30px;
	background:
		radial-gradient(circle at 50% -15%, color-mix(in srgb, var(--gea-sw-red) 28%, transparent), transparent 42%),
		linear-gradient(135deg, #050505 0%, var(--gea-sw-bg) 50%, #0c0c0c 100%);
	box-shadow:
		0 26px 70px rgba(0, 0, 0, .45),
		0 0 0 6px rgba(0, 0, 0, .75),
		0 0 32px color-mix(in srgb, var(--gea-sw-gold) 24%, transparent),
		inset 0 0 60px rgba(0, 0, 0, .76);
}

.gea-sw-shell::before,
.gea-sw-shell::after {
	content: "";
	position: absolute;
	z-index: -1;
	border-radius: 50%;
	filter: blur(20px);
	pointer-events: none;
}

.gea-sw-shell::before {
	width: 380px;
	height: 380px;
	top: 80px;
	left: -190px;
	background: color-mix(in srgb, var(--gea-sw-red) 18%, transparent);
}

.gea-sw-shell::after {
	width: 430px;
	height: 430px;
	right: -230px;
	bottom: -160px;
	background: color-mix(in srgb, var(--gea-sw-gold) 15%, transparent);
}

.gea-sw-marquee {
	display: flex;
	align-items: center;
	justify-content: space-around;
	gap: 12px;
	min-height: 24px;
	padding: 7px 18px;
	border-bottom: 1px solid rgba(255, 255, 255, .08);
	background: linear-gradient(180deg, #262015, #0a0906);
}

.gea-sw-marquee span {
	width: 9px;
	height: 9px;
	border-radius: 50%;
	background: #fff5b2;
	box-shadow: 0 0 6px #fff, 0 0 14px var(--gea-sw-gold), 0 0 24px var(--gea-sw-gold);
	animation: gea-sw-marquee 1.35s ease-in-out infinite alternate;
}

.gea-sw-marquee span:nth-child(2n) { animation-delay: -.45s; }
.gea-sw-marquee span:nth-child(3n) { animation-delay: -.9s; }

.gea-sw-header {
	position: relative;
	padding: 24px 24px 10px;
	text-align: center;
}

.gea-sw-brand-mark {
	display: grid;
	place-items: center;
	width: 64px;
	height: 64px;
	margin: 0 auto 10px;
	border: 3px solid var(--gea-sw-gold);
	border-radius: 50%;
	background: radial-gradient(circle at 35% 30%, #fff6bf 0 5%, var(--gea-sw-gold) 7% 25%, #684a00 70%);
	box-shadow: 0 0 0 5px #111, 0 0 25px color-mix(in srgb, var(--gea-sw-gold) 55%, transparent);
	color: #0c0c0c;
	font-weight: 1000;
	font-size: 18px;
	letter-spacing: -.04em;
}

.gea-sw-kicker {
	margin: 0 0 4px !important;
	color: var(--gea-sw-gold) !important;
	font-size: clamp(11px, 1.5vw, 14px) !important;
	font-weight: 900 !important;
	letter-spacing: .2em !important;
	text-transform: uppercase;
}

.gea-sw-header h2 {
	margin: 0 !important;
	color: #fff !important;
	font-size: clamp(28px, 5vw, 54px) !important;
	font-weight: 1000 !important;
	line-height: 1.02 !important;
	letter-spacing: -.045em !important;
	text-shadow: 0 4px 0 #000, 0 0 24px rgba(255, 255, 255, .1);
}

.gea-sw-subtitle {
	max-width: 700px;
	margin: 10px auto 0 !important;
	color: #ddd !important;
	font-size: clamp(14px, 2vw, 18px) !important;
}

.gea-sw-cycle {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 30px;
	margin-top: 12px;
	padding: 5px 13px;
	border: 1px solid color-mix(in srgb, var(--gea-sw-gold) 72%, transparent);
	border-radius: 999px;
	background: rgba(0, 0, 0, .48);
	color: #f9e290;
	font-size: 12px;
	font-weight: 800;
	letter-spacing: .055em;
	text-transform: uppercase;
}

.gea-sw-layout {
	display: grid;
	grid-template-columns: minmax(0, 1.15fr) minmax(300px, .85fr);
	align-items: center;
	gap: clamp(18px, 4vw, 48px);
	padding: 20px clamp(16px, 4vw, 52px) 44px;
}

.gea-sw-wheel-column,
.gea-sw-control-column {
	min-width: 0;
}

.gea-sw-wheel-stage {
	position: relative;
	width: min(100%, 660px);
	margin: 0 auto;
	padding: 29px;
}

.gea-sw-wheel-frame {
	position: relative;
	width: 100%;
	aspect-ratio: 1;
	border: clamp(9px, 1.8vw, 18px) solid #090909;
	border-radius: 50%;
	background: #111;
	box-shadow:
		0 0 0 5px var(--gea-sw-gold),
		0 0 0 11px #3d2a00,
		0 0 0 15px #080808,
		0 20px 55px rgba(0, 0, 0, .75),
		0 0 40px color-mix(in srgb, var(--gea-sw-gold) 27%, transparent),
		inset 0 0 22px #000;
}

.gea-sw-canvas {
	display: block;
	width: 100%;
	height: 100%;
	border-radius: 50%;
	transform: rotate(0deg);
	will-change: transform;
}

.gea-sw-canvas.is-spinning {
	transition: transform 6.2s cubic-bezier(.08, .63, .13, 1);
}

.gea-sw-bulbs {
	position: absolute;
	inset: -21px;
	z-index: 4;
	border-radius: 50%;
	pointer-events: none;
}

.gea-sw-bulb {
	position: absolute;
	top: 50%;
	left: 50%;
	width: clamp(7px, 1.2vw, 12px);
	height: clamp(7px, 1.2vw, 12px);
	margin: calc(clamp(7px, 1.2vw, 12px) / -2);
	border-radius: 50%;
	background: #fff3a0;
	box-shadow: 0 0 5px #fff, 0 0 11px var(--gea-sw-gold), 0 0 18px var(--gea-sw-gold);
	animation: gea-sw-bulb-pulse 1.1s ease-in-out infinite alternate;
}

.gea-sw-bulb:nth-child(3n) { animation-delay: -.35s; }
.gea-sw-bulb:nth-child(3n+1) { animation-delay: -.7s; }

.gea-sw-pointer {
	position: absolute;
	z-index: 8;
	top: 0;
	left: 50%;
	width: 76px;
	height: 92px;
	transform: translateX(-50%);
	filter: drop-shadow(0 8px 6px rgba(0, 0, 0, .7));
	pointer-events: none;
}

.gea-sw-pointer::before {
	content: "";
	position: absolute;
	inset: 0 8px 20px;
	border: 4px solid #4d3300;
	border-radius: 50% 50% 42% 42%;
	background: radial-gradient(circle at 35% 25%, #fff8cc 0 7%, var(--gea-sw-gold) 9% 50%, #805d00 90%);
	box-shadow: 0 0 0 4px #111, 0 0 20px color-mix(in srgb, var(--gea-sw-gold) 50%, transparent);
}

.gea-sw-pointer span {
	position: absolute;
	bottom: 0;
	left: 50%;
	width: 0;
	height: 0;
	border-left: 24px solid transparent;
	border-right: 24px solid transparent;
	border-top: 42px solid var(--gea-sw-red);
	transform: translateX(-50%);
}

.gea-sw-pointer span::after {
	content: "";
	position: absolute;
	left: -15px;
	top: -36px;
	width: 0;
	height: 0;
	border-left: 15px solid transparent;
	border-right: 15px solid transparent;
	border-top: 27px solid #ff5b60;
}

.gea-sw-hub {
	position: absolute;
	z-index: 6;
	top: 50%;
	left: 50%;
	display: grid;
	place-items: center;
	width: clamp(74px, 18%, 126px);
	aspect-ratio: 1;
	transform: translate(-50%, -50%);
	border: clamp(5px, 1vw, 9px) solid #1c1300;
	border-radius: 50%;
	background: radial-gradient(circle at 35% 28%, #fff9d2 0 4%, #f2cc53 7%, var(--gea-sw-gold) 35%, #7a5600 92%);
	box-shadow: 0 0 0 4px #000, 0 0 24px rgba(0, 0, 0, .85), inset 0 0 10px rgba(255,255,255,.4);
	color: #070707;
	line-height: 1;
	text-align: center;
	pointer-events: none;
}

.gea-sw-hub span {
	align-self: end;
	font-size: clamp(19px, 4vw, 35px);
	font-weight: 1000;
	letter-spacing: -.06em;
}

.gea-sw-hub small {
	align-self: start;
	font-size: clamp(8px, 1.5vw, 12px);
	font-weight: 1000;
	letter-spacing: .16em;
}

.gea-sw-control-column {
	display: flex;
	flex-direction: column;
	gap: 14px;
}

.gea-sw-control-card {
	position: relative;
	overflow: hidden;
	padding: clamp(22px, 4vw, 38px);
	border: 1px solid color-mix(in srgb, var(--gea-sw-gold) 48%, transparent);
	border-radius: 24px;
	background:
		linear-gradient(160deg, rgba(255,255,255,.045), transparent 45%),
		var(--gea-sw-panel);
	box-shadow: 0 18px 40px rgba(0, 0, 0, .38), inset 0 1px rgba(255,255,255,.06);
	text-align: center;
}

.gea-sw-control-card::before {
	content: "";
	position: absolute;
	inset: 0;
	border-radius: inherit;
	background: linear-gradient(120deg, transparent 15%, rgba(255,255,255,.04) 42%, transparent 70%);
	pointer-events: none;
}

.gea-sw-control-card h3 {
	margin: 8px 0 !important;
	color: #fff !important;
	font-size: clamp(24px, 4vw, 34px) !important;
	font-weight: 950 !important;
	line-height: 1.08 !important;
}

.gea-sw-control-card p {
	color: #d7d7d7;
}

.gea-sw-state-icon {
	display: grid;
	place-items: center;
	width: 58px;
	height: 58px;
	margin: 0 auto;
	border: 2px solid var(--gea-sw-gold);
	border-radius: 50%;
	background: #080808;
	color: var(--gea-sw-gold);
	font-size: 24px;
	box-shadow: 0 0 22px color-mix(in srgb, var(--gea-sw-gold) 25%, transparent);
}

.gea-sw-ready {
	margin: 0 0 16px !important;
	color: #f7e7a8 !important;
	font-size: 18px;
	font-weight: 850;
}

.gea-sw-auth-buttons {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 12px;
	width: 100%;
	margin-top: 20px;
}

.gea-sw-spin-button,
.gea-sw-login-button,
.gea-sw-register-button {
	position: relative;
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	width: 100%;
	min-height: 66px;
	overflow: hidden;
	padding: 14px 22px !important;
	border: 2px solid #ffe58c !important;
	border-radius: 16px !important;
	background: linear-gradient(180deg, #f34b51 0%, var(--gea-sw-red) 46%, #8c090d 100%) !important;
	box-shadow:
		0 6px 0 #4d0003,
		0 12px 24px rgba(0,0,0,.4),
		0 0 24px color-mix(in srgb, var(--gea-sw-red) 35%, transparent),
		inset 0 1px rgba(255,255,255,.55) !important;
	color: #fff !important;
	font-size: clamp(17px, 2.3vw, 22px) !important;
	font-weight: 1000 !important;
	letter-spacing: .06em !important;
	line-height: 1.1 !important;
	text-align: center;
	text-decoration: none !important;
	text-shadow: 0 2px 0 rgba(0,0,0,.6);
	cursor: pointer;
	transition: transform .18s ease, filter .18s ease, box-shadow .18s ease;
}

.gea-sw-spin-button:hover,
.gea-sw-login-button:hover,
.gea-sw-register-button:hover {
	transform: translateY(-2px);
	filter: brightness(1.08);
	box-shadow:
		0 8px 0 #4d0003,
		0 15px 28px rgba(0,0,0,.48),
		0 0 32px color-mix(in srgb, var(--gea-sw-red) 46%, transparent) !important;
}

.gea-sw-spin-button:focus-visible,
.gea-sw-login-button:focus-visible,
.gea-sw-register-button:focus-visible {
	outline: 3px solid #fff !important;
	outline-offset: 4px;
}

.gea-sw-spin-button:disabled {
	opacity: .68;
	transform: none !important;
	cursor: wait;
}

.gea-sw-register-button {
	border-color: #fff0a6 !important;
	background: linear-gradient(180deg, #f8db70 0%, var(--gea-sw-gold) 55%, #8e6500 100%) !important;
	box-shadow:
		0 6px 0 #5c4100,
		0 12px 24px rgba(0,0,0,.4),
		0 0 24px color-mix(in srgb, var(--gea-sw-gold) 35%, transparent),
		inset 0 1px rgba(255,255,255,.65) !important;
	color: #111 !important;
	text-shadow: 0 1px 0 rgba(255,255,255,.45);
}

.gea-sw-register-button:hover {
	box-shadow:
		0 8px 0 #5c4100,
		0 15px 28px rgba(0,0,0,.48),
		0 0 32px color-mix(in srgb, var(--gea-sw-gold) 48%, transparent) !important;
}

.gea-sw-spin-button-shine {
	position: absolute;
	top: -100%;
	left: -40%;
	width: 25%;
	height: 300%;
	background: rgba(255,255,255,.3);
	transform: rotate(24deg);
	animation: gea-sw-shine 2.8s ease-in-out infinite;
}

.gea-sw-secure-note {
	margin: 18px 0 0 !important;
	color: #aaa !important;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .045em;
	text-transform: uppercase;
}

.gea-sw-secure-note span { color: var(--gea-sw-gold); }

.gea-sw-result[hidden] { display: none !important; }

.gea-sw-result {
	margin-top: 10px;
	padding: 22px;
	border: 1px solid rgba(255,255,255,.1);
	border-radius: 18px;
	background: rgba(0,0,0,.42);
	animation: gea-sw-result-in .55s ease both;
}

.gea-sw-result-existing { margin-top: 0; }

.gea-sw-result.is-win {
	border-color: color-mix(in srgb, var(--gea-sw-gold) 70%, transparent);
	box-shadow: 0 0 28px color-mix(in srgb, var(--gea-sw-gold) 16%, transparent);
}

.gea-sw-result.is-loss { border-color: rgba(255,255,255,.12); }

.gea-sw-result-overline {
	margin: 0 0 5px !important;
	color: var(--gea-sw-gold) !important;
	font-size: 11px !important;
	font-weight: 900 !important;
	letter-spacing: .18em !important;
}

.gea-sw-result h3 {
	margin: 0 0 9px !important;
	font-size: clamp(24px, 4vw, 34px) !important;
}

.gea-sw-result p { margin: 0 !important; }

.gea-sw-claim-code {
	display: flex;
	flex-direction: column;
	gap: 4px;
	margin-top: 18px;
	padding: 14px;
	border: 1px dashed var(--gea-sw-gold);
	border-radius: 12px;
	background: #050505;
}

.gea-sw-claim-code span {
	color: #aaa;
	font-size: 10px;
	font-weight: 850;
	letter-spacing: .14em;
	text-transform: uppercase;
}

.gea-sw-claim-code strong {
	color: #fff;
	font-size: clamp(20px, 4vw, 29px);
	letter-spacing: .09em;
	word-break: break-word;
}

.gea-sw-claim-note {
	margin-top: 12px !important;
	color: #f1d97d !important;
	font-size: 13px;
}

.gea-sw-error {
	margin-top: 14px;
	padding: 12px 14px;
	border: 1px solid #ff6b70;
	border-radius: 10px;
	background: rgba(215,25,32,.13);
	color: #fff;
	font-size: 14px;
}

.gea-sw-terms {
	margin: 0 !important;
	padding: 0 8px;
	color: #888 !important;
	font-size: 11px !important;
	line-height: 1.45;
	text-align: center;
}

.gea-sw-eligibility-disclaimer {
	display: flex;
	align-items: flex-start;
	gap: 11px;
	margin: 0 clamp(14px, 4vw, 52px) 30px;
	padding: 15px 17px;
	border: 1px solid color-mix(in srgb, var(--gea-sw-gold) 42%, transparent);
	border-radius: 14px;
	background: rgba(0, 0, 0, .55);
	box-shadow: inset 0 1px rgba(255,255,255,.04);
}

.gea-sw-eligibility-disclaimer p {
	margin: 0 !important;
	color: #c9c9c9 !important;
	font-size: clamp(11px, 1.4vw, 13px) !important;
	line-height: 1.55 !important;
}

.gea-sw-disclaimer-icon {
	display: grid;
	place-items: center;
	flex: 0 0 22px;
	width: 22px;
	height: 22px;
	margin-top: 1px;
	border: 1px solid var(--gea-sw-gold);
	border-radius: 50%;
	color: var(--gea-sw-gold);
	font-size: 13px;
	font-weight: 900;
	font-family: Georgia, serif;
}

.gea-sw-footer-glow {
	height: 8px;
	background: linear-gradient(90deg, transparent, var(--gea-sw-red), var(--gea-sw-gold), var(--gea-sw-red), transparent);
	box-shadow: 0 0 18px color-mix(in srgb, var(--gea-sw-gold) 42%, transparent);
}

.gea-sw-confetti {
	position: fixed;
	z-index: 999999;
	top: -20px;
	left: 0;
	width: 10px;
	height: 18px;
	border-radius: 2px;
	pointer-events: none;
	animation: gea-sw-confetti-fall var(--fall-duration, 2.8s) linear forwards;
}

@keyframes gea-sw-marquee {
	from { opacity: .5; transform: scale(.78); }
	to { opacity: 1; transform: scale(1.08); }
}

@keyframes gea-sw-bulb-pulse {
	from { opacity: .55; transform: translate(-50%, -50%) scale(.8); }
	to { opacity: 1; transform: translate(-50%, -50%) scale(1.15); }
}

@keyframes gea-sw-shine {
	0%, 50% { left: -40%; }
	75%, 100% { left: 130%; }
}

@keyframes gea-sw-result-in {
	from { opacity: 0; transform: translateY(12px) scale(.98); }
	to { opacity: 1; transform: translateY(0) scale(1); }
}

@keyframes gea-sw-confetti-fall {
	0% { transform: translate3d(var(--start-x), -20px, 0) rotate(0); opacity: 1; }
	100% { transform: translate3d(var(--end-x), 110vh, 0) rotate(var(--spin)); opacity: .9; }
}

@media (max-width: 900px) {
	.gea-sw-layout {
		grid-template-columns: minmax(0, 1fr);
		padding-top: 8px;
	}

	.gea-sw-wheel-stage { width: min(100%, 620px); }
	.gea-sw-control-column { width: min(100%, 680px); margin: 0 auto; }
}

@media (max-width: 600px) {
	.gea-sw { margin: 18px auto; padding: 0 7px; }
	.gea-sw-shell { border-radius: 20px; }
	.gea-sw-marquee { gap: 7px; padding-inline: 10px; }
	.gea-sw-marquee span { width: 7px; height: 7px; }
	.gea-sw-header { padding: 20px 14px 5px; }
	.gea-sw-brand-mark { width: 54px; height: 54px; }
	.gea-sw-layout { gap: 10px; padding: 13px 11px 28px; }
	.gea-sw-wheel-stage { padding: 24px 18px 22px; }
	.gea-sw-wheel-frame { border-width: 8px; box-shadow: 0 0 0 4px var(--gea-sw-gold), 0 0 0 8px #3d2a00, 0 0 0 11px #080808, 0 14px 35px rgba(0,0,0,.72); }
	.gea-sw-bulbs { inset: -16px; }
	.gea-sw-pointer { width: 62px; height: 77px; }
	.gea-sw-pointer::before { inset: 0 7px 18px; }
	.gea-sw-pointer span { border-left-width: 20px; border-right-width: 20px; border-top-width: 35px; }
	.gea-sw-pointer span::after { left: -12px; top: -30px; border-left-width: 12px; border-right-width: 12px; border-top-width: 22px; }
	.gea-sw-control-card { border-radius: 18px; }
	.gea-sw-auth-buttons { gap: 9px; }
	.gea-sw-eligibility-disclaimer { margin: 0 11px 22px; padding: 13px; }
	.gea-sw-spin-button, .gea-sw-login-button, .gea-sw-register-button { min-height: 58px; border-radius: 13px !important; }
}

@media (max-width: 380px) {
	.gea-sw-header h2 { font-size: 27px !important; }
	.gea-sw-subtitle { font-size: 13px !important; }
	.gea-sw-wheel-stage { padding-inline: 14px; }
	.gea-sw-control-card { padding: 19px 15px; }
	.gea-sw-auth-buttons { grid-template-columns: 1fr; }
	.gea-sw-spin-button, .gea-sw-login-button, .gea-sw-register-button { padding-inline: 12px !important; font-size: 16px !important; letter-spacing: .035em !important; }
	.gea-sw-claim-code strong { font-size: 20px; }
}

@media (prefers-reduced-motion: reduce) {
	.gea-sw *,
	.gea-sw *::before,
	.gea-sw *::after {
		animation-duration: .01ms !important;
		animation-iteration-count: 1 !important;
		scroll-behavior: auto !important;
	}
	.gea-sw-canvas.is-spinning { transition-duration: .6s; }
}
