:root {
	--primary-50: #fe3d10;
	--primary-60: #fe5733;
	--neutral-0: #000000;
	--neutral-5: #030909;
	--neutral-10: #050e0e;
	--neutral-15: #071a15;
	--neutral-20: #0a211b;
	--neutral-30: #1a4c41;
	--neutral-40: #329880;
	--neutral-50: #49c2a4;
	--neutral-80: #b3e4da;
	--neutral-100: #ffffff;
	--gold-coins: #ffd900;
	--secondary-50: #0046d0;
}

* {
	margin: 0;
	padding: 0;
	box-sizing: border-box;
	font-family: "Urbanist", sans-serif;
}

a {
	text-decoration: none;
}

body {
	-webkit-tap-highlight-color: transparent;
	background-color: var(--neutral-5);
	color: var(--neutral-100);
	padding-top: 64px;
}

.auth-loader {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	background-color: var(--neutral-5);
	z-index: 9999;
	display: flex;
	align-items: center;
	justify-content: center;
	opacity: 0;
	pointer-events: none;
	transition: opacity 0.3s ease;
}

.auth-loader.visible {
	opacity: 1;
	pointer-events: all;
}

.auth-loader .spinner {
	width: 48px;
	height: 48px;
	border: 4px solid var(--neutral-30);
	border-top-color: var(--neutral-50);
	border-radius: 50%;
	animation: spin 0.8s linear infinite;
}

@keyframes spin {
	to {
		transform: rotate(360deg);
	}
}

header {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	height: 64px;
	background-color: var(--neutral-5);
	padding: 16px 24px;
	display: flex;
	justify-content: space-between;
	align-items: center;
	z-index: 1000;
}

main {
	max-width: 1376px;
	margin: 0 auto;
}

section {
	margin-bottom: 48px;
}

.navigation {
	display: flex;
	justify-content: space-between;
	align-items: center;
	width: 100%;
}

.navigation .logo {
	width: 109px;
	height: 24px;
	background: url("/nuxt-img/guest-page/logo.svg") no-repeat center center / contain;

	@media (max-width: 768px) {
		width: 36px;
		height: 36px;
		background-image: url("/nuxt-img/guest-page/logo-small.svg");
	}
}

.button {
	border: none;
	color: var(--neutral-100);
	padding: 8px 24px;
	font-size: 14px;
	font-weight: 700;
	text-transform: uppercase;
	border-radius: 99px;
	border: 1px solid var(--primary-50);
	cursor: pointer;
	transition: all 0.3s ease;
}

.auth-buttons {
	display: flex;
	align-items: center;
	gap: 4px;

	.button-google {
		display: flex;
		align-items: center;
		justify-content: center;
		width: 36px;
		height: 36px;
		background-color: var(--neutral-100);
		border-radius: 50%;
		cursor: pointer;
	}

	.sign-up {
		background: var(--primary-50);
		box-shadow: 0 4px 24px 0 rgba(254, 61, 16, 0.4);

		&:hover {
			background: var(--primary-60);
		}
	}

	.sign-in {
		background: transparent;

		&:hover {
			color: var(--primary-60);
		}
	}
}

.main-banner {
	background: url("/nuxt-img/guest-page/banner-desk.webp") no-repeat center top / cover;
	height: 376px;
	display: flex;
	align-items: center;
	border-radius: 24px;
	overflow: hidden;

	@media (max-width: 768px) {
		background-image: url("/nuxt-img/guest-page/banner-mob.webp");
		align-items: flex-end;
	}

	.banner-content {
		padding: 0 32px;

		@media (max-width: 768px) {
			padding: 0 0 24px 24px;
		}
	}

	.banner-subtitle {
		font-size: 36px;
		font-weight: 700;
		line-height: 44px;
		display: flex;
		align-items: center;
		gap: 4px;
		margin-top: 4px;

		.accent {
			color: var(--gold-coins);
		}

		.gold-coin {
			width: 44px;
			height: 44px;
		}

		@media (max-width: 768px) {
			font-size: 28px;
			line-height: 32px;

			.gold-coin {
				width: 32px;
				height: 32px;
			}
		}
	}

	.banner-title {
		font-size: 18px;
		font-weight: 500;
		line-height: 22px;

		@media (max-width: 768px) {
			font-size: 16px;
			font-weight: 400;
			line-height: 20px;
		}
	}

	.sign-up-banner {
		background: var(--primary-50);
		width: 240px;
		height: 44px;
		display: flex;
		align-items: center;
		justify-content: center;
		margin-top: 24px;
		font-size: 16px;

		&:hover {
			background: var(--primary-60);
		}
	}
}

.providers {
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	gap: 12px;
	position: relative;

	@media (max-width: 1440px) {
		padding: 0 16px;
	}

	&::before {
		content: "";
		position: absolute;
		left: 0;
		top: 44px;
		bottom: 0;
		width: 40px;
		background: linear-gradient(270deg, rgba(3, 9, 9, 0) 0%, rgba(3, 9, 9, 1) 100%);
		pointer-events: none;
		z-index: 2;

		@media (max-width: 1440px) {
			left: 14px;
		}
	}

	&::after {
		content: "";
		position: absolute;
		right: 0;
		top: 44px;
		bottom: 0;
		width: 40px;
		background: linear-gradient(90deg, rgba(3, 9, 9, 0) 0%, rgba(3, 9, 9, 1) 100%);
		pointer-events: none;
		z-index: 2;

		@media (max-width: 1440px) {
			right: 14px;
		}
	}

	.providers-header {
		display: flex;
		align-items: center;
		justify-content: space-between;
		gap: 8px;
		width: 100%;
	}

	.providers-title {
		font-size: 22px;
		font-weight: 700;
		line-height: 28px;
	}

	.divide {
		width: 100%;
		height: 1px;
		background: var(--neutral-30);
		flex: 1;
	}

	.buttons {
		display: flex;
		justify-content: center;
		align-items: center;
		gap: 2px;
	}

	.view-all {
		border: none;
		color: var(--neutral-100);
		padding: 8px 24px;
		font-size: 14px;
		font-weight: 700;
		text-transform: uppercase;
		border-radius: 99px;
		background: var(--neutral-30);
		margin-left: 6px;
		cursor: pointer;
		transition: all 0.3s ease;

		&:hover {
			background: var(--neutral-40);
		}
	}

	.providers-grid {
		display: flex;
		gap: 12px;
		width: 100%;
		overflow-x: auto;
		overflow-y: hidden;
		scroll-behavior: smooth;
		padding-top: 8px;
		scrollbar-width: none;
		-ms-overflow-style: none;

		&::-webkit-scrollbar {
			display: none;
		}

		img {
			pointer-events: none;
			user-select: none;
		}
	}

	.provider {
		min-width: 100px;
		height: 68px;
		border-radius: 8px;
		overflow: hidden;
		display: flex;
		align-items: center;
		justify-content: center;
		background: #0a211b;
	}

	.game-logo {
		width: 92px;
		height: 52px;
		object-fit: contain;
	}

	.arrow {
		display: none;
	}

	a {
		-webkit-user-drag: none;
		user-drag: none;
	}
}

.games {
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	gap: 12px;
	position: relative;

	@media (max-width: 1440px) {
		padding: 0 16px;
	}

	a {
		-webkit-user-drag: none;
		user-drag: none;
	}

	&::before {
		content: "";
		position: absolute;
		left: 0;
		top: 44px;
		bottom: 0;
		width: 40px;
		background: linear-gradient(270deg, rgba(3, 9, 9, 0) 0%, rgba(3, 9, 9, 1) 100%);
		pointer-events: none;
		z-index: 2;

		@media (max-width: 1440px) {
			left: 14px;
		}
	}

	&::after {
		content: "";
		position: absolute;
		right: 0;
		top: 44px;
		bottom: 0;
		width: 40px;
		background: linear-gradient(90deg, rgba(3, 9, 9, 0) 0%, rgba(3, 9, 9, 1) 100%);
		pointer-events: none;
		z-index: 2;

		@media (max-width: 1440px) {
			right: 14px;
		}
	}

	.games-header {
		display: flex;
		align-items: center;
		justify-content: space-between;
		gap: 8px;
		width: 100%;
	}

	.games-title {
		font-size: 22px;
		font-weight: 700;
		line-height: 28px;
	}

	.divide {
		width: 100%;
		height: 1px;
		background: var(--neutral-30);
		flex: 1;
	}

	.buttons {
		display: flex;
		justify-content: center;
		align-items: center;
		gap: 2px;
	}

	.button-back,
	.button-next {
		width: 36px;
		height: 36px;
		background-color: var(--neutral-30);
		border-radius: 50%;
		display: flex;
		align-items: center;
		justify-content: center;
		border: none;
		cursor: pointer;
		transition: all 0.3s ease;

		@media (max-width: 768px) {
			display: none;
		}

		&:hover {
			background: var(--neutral-40);
		}

		&:disabled {
			opacity: 0.5;
			cursor: not-allowed;
		}
	}

	.view-all {
		border: none;
		color: var(--neutral-100);
		padding: 8px 24px;
		font-size: 14px;
		font-weight: 700;
		text-transform: uppercase;
		border-radius: 99px;
		background: var(--neutral-30);
		margin-left: 6px;
		cursor: pointer;
		transition: all 0.3s ease;

		&:hover {
			background: var(--neutral-40);
		}
	}

	.game-card {
		background: url("/nuxt-img/guest-page/runway.webp") no-repeat center center / contain;
		width: 204px;
		height: 216px;
		display: flex;
		flex-direction: column;
		align-items: center;
		justify-content: flex-end;
		flex-shrink: 0;
	}

	.game-logo {
		width: 110px;
		height: 148px;

		pointer-events: none;
		animation: levitate 3s ease-in-out infinite;
	}

	.game-number {
		color: #ffe69c;
		text-shadow: 0 4px 4px rgba(0, 0, 0, 0.5);
		font-size: 40px;
		font-weight: 900;
		line-height: 48px;
		margin: 12px 0 4px;
	}

	.game-grid {
		display: flex;
		gap: 16px;
		width: 100%;
		overflow-x: auto;
		overflow-y: hidden;
		scroll-behavior: smooth;
		padding-top: 8px;
		scrollbar-width: none;
		-ms-overflow-style: none;

		&::-webkit-scrollbar {
			display: none;
		}

		img {
			pointer-events: none;
			border-radius: 16px;
			user-select: none;
		}

		&.category {
			display: grid;
			grid-auto-columns: 110px;
			grid-template-rows: repeat(2, 148px);
			grid-auto-flow: column;
			gap: 8px;
			overflow-x: auto;
			overflow-y: hidden;
			padding-top: 0;

			a {
				display: block;
				border-radius: 16px;
				overflow: hidden;
				&:first-child {
					grid-row: span 2;
					grid-column: span 2;
				}
			}

			.game-logo {
				animation: none;
				width: 110px;
				height: 148px;
				object-fit: cover;
			}

			a:first-child .game-logo {
				width: 100%;
				height: 100%;
				object-fit: cover;
			}
		}
	}
}

.why-choose {
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;

	.title {
		font-size: 24px;
		font-weight: 700;
		line-height: 32px;
		margin-bottom: 16px;
	}

	.features {
		display: flex;
		justify-content: space-around;

		@media (max-width: 900px) {
			flex-direction: column;
			gap: 16px;
		}
	}

	.feature-image {
		width: 100%;
		max-width: 360px;
		height: auto;
	}

	.feature-item {
		display: flex;
		flex-direction: column;
		align-items: center;
		gap: 4px;
		width: 100%;
		position: relative;
	}

	.feature-title {
		font-size: 18px;
		font-weight: 500;
		line-height: 22px;
	}

	.feature-text {
		font-size: 14px;
		font-weight: 300;
		line-height: 18px;
		padding: 0 24px;
		color: var(--neutral-80);
	}

	.feature-image-vip {
		position: absolute;
		width: 197px;
		height: 197px;
		top: 30px;
		left: 54%;
		transform: translateX(-50%);
		pointer-events: none;
	}

	.feature-image-rewards {
		position: absolute;
		width: 259px;
		height: 273px;
		top: -40px;
		left: 48%;
		transform: translateX(-50%);
		pointer-events: none;
	}

	.feature-image-free {
		position: absolute;
		width: 184px;
		height: 185px;
		top: 10px;
		left: 50%;
		transform: translateX(-50%);
		pointer-events: none;
	}

	.feature-image-vip img,
	.feature-image-rewards img,
	.feature-image-free img {
		width: 100%;
		height: 100%;
		object-fit: contain;
		animation: vipFloat 4s ease-in-out infinite;
		filter: drop-shadow(0 6px 12px rgba(255, 217, 0, 0.18));
		transition:
			transform 0.25s ease,
			filter 0.25s ease;
		will-change: transform, filter;
	}

	.feature-item:hover .feature-image-vip img,
	.feature-item:hover .feature-image-rewards img,
	.feature-item:hover .feature-image-free img {
		transform: translateY(-2px) rotate(-2deg) scale(1.03);
		filter: drop-shadow(0 12px 26px rgba(255, 217, 0, 0.35)) drop-shadow(0 0 18px rgba(255, 217, 0, 0.3))
			drop-shadow(0 0 2px rgba(255, 217, 0, 0.6));
	}
}

.form-wrapper {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 827px;
	min-height: 500px;
	padding: 24px 0;
	margin: 0 auto 48px;
	border-radius: 24px;
	background: url("/nuxt-img/guest-page/form-desk.webp") no-repeat center center / cover;
	background-color: var(--neutral-15);

	@media (max-width: 768px) {
		width: 100%;
		background: url("/nuxt-img/guest-page/form-mob.webp") no-repeat center top / contain;
		background-color: var(--neutral-15);
		padding: 183px 0 24px;
	}

	.form {
		display: flex;
		flex-direction: column;
		align-items: center;
		gap: 12px;
		text-align: center;
		border-radius: 16px;
		background: var(--neutral-15);
		padding: 16px;
		width: 360px;
		position: relative;

		@media (max-width: 768px) {
			width: 100%;
			padding: 0 16px;
		}

		.form-link {
			display: block;
			position: absolute;
			top: 0;
			left: 0;
			width: 100%;
			height: 100%;
			z-index: 1;
			cursor: pointer;
		}
	}

	.form-title {
		font-size: 24px;
		font-weight: 700;
		line-height: 32px;
	}

	.form-subtitle {
		font-size: 16px;
		font-weight: 500;
		line-height: 24px;
		display: flex;
		align-items: center;
		gap: 4px;

		.accent {
			color: var(--gold-coins);
		}

		.gold-coin {
			width: 16px;
			height: 16px;
		}
	}

	.social-wrap {
		display: flex;
		gap: 8px;

		.social {
			display: flex;
			align-items: center;
			justify-content: center;
			width: 104px;
			height: 44px;
			border-radius: 999px;
			cursor: pointer;

			&.apple {
				background-color: var(--neutral-0);
			}

			&.google {
				background-color: var(--neutral-100);
			}

			&.facebook {
				background-color: var(--secondary-50);
			}
		}
	}

	.form-desc {
		font-size: 14px;
		font-weight: 300;
		line-height: 18px;
	}

	.fields {
		width: 100%;
		display: flex;
		flex-direction: column;
		gap: 12px;
		margin-top: 4px;
	}

	.field {
		position: relative;
		width: 100%;
	}

	.field .input {
		width: 100%;
		background: transparent;
		border: none;
		outline: none;
		color: var(--neutral-80);
		font-size: 14px;
		font-weight: 500;
		line-height: 18px;
		padding: 16px 40px 16px 12px;
	}

	.field .input::placeholder {
		color: var(--neutral-40);
	}

	.field .underline {
		content: "";
		display: block;
		position: absolute;
		left: 0;
		right: 0;
		bottom: 0;
		height: 1px;
		background: var(--neutral-40);
		border-radius: 1px;
	}

	.field .input:focus + .underline {
		background: var(--neutral-40);
	}

	.password-field .toggle-password {
		position: absolute;
		right: 0;
		top: 50%;
		transform: translateY(-50%);
		width: 32px;
		height: 32px;
		border: none;
		background: transparent;
		cursor: pointer;
		background-image: url("/nuxt-img/guest-page/visible-off.svg");
		background-repeat: no-repeat;
		background-position: center;
		opacity: 0.9;
	}

	.content-checkboxes {
		width: 100%;
		display: flex;
		flex-direction: column;
		gap: 12px;
		margin-top: 4px;
	}

	.checkbox {
		display: flex;
		align-items: center;
		gap: 8px;

		.text {
			font-size: 12px;
			font-weight: 300;
			line-height: 16px;
			text-align: left;

			.accent {
				color: var(--neutral-50);
				text-decoration: underline;
				cursor: pointer;

				&:hover {
					text-decoration: none;
				}
			}
		}
	}

	.promo {
		width: 100%;
		display: flex;
		justify-content: space-between;
		align-items: center;

		.promo-text {
			font-size: 14px;
			font-weight: 300;
			line-height: 22px;
			text-decoration-line: underline;
			color: var(--neutral-50);
		}
	}

	.form-button {
		font-size: 16px;
		pointer-events: none;
		opacity: 0.5;
		background: var(--primary-50);
		width: 100%;
		height: 44px;
	}

	.form-button.enabled {
		pointer-events: auto;
		opacity: 1;
	}

	.form-login {
		font-size: 16px;
		font-weight: 300;
		line-height: 24px;
		padding-top: 12px;
		border-top: 1px solid var(--neutral-20);
		width: 100%;

		.accent {
			color: var(--neutral-50);
			text-decoration: underline;
			cursor: pointer;

			&:hover {
				text-decoration: none;
			}
		}
	}
}

footer {
	background-color: var(--neutral-10);
	padding: 24px 48px;

	@media (max-width: 768px) {
		padding: 24px 16px;
	}
}

.footer-content {
	width: 100%;
	display: flex;
	justify-content: space-between;
	flex-wrap: wrap;

	@media (max-width: 768px) {
		flex-direction: column;
	}

	.help {
		display: flex;
		flex-direction: column;
		gap: 16px;

		@media (max-width: 1024px) {
			margin-bottom: 24px;
		}
	}

	.help-title {
		font-size: 20px;
		font-weight: 700;
		line-height: 28px;
	}

	.support {
		display: flex;
		gap: 16px;

		a {
			font-size: 14px;
			font-weight: 300;
			line-height: 22px;
			color: var(--neutral-50);
			text-decoration: underline;

			&:hover {
				text-decoration: none;
			}
		}
	}

	.rating {
		display: flex;
		align-items: center;
		gap: 24px;

		.age {
			width: 40px;
			height: 40px;
		}

		.trust {
			width: 109px;
			height: 40px;
		}
	}

	.legal {
		width: 100%;
		display: flex;
		justify-content: center;
		gap: 32px;
		margin: 24px 0;

		@media (max-width: 768px) {
			flex-direction: column;
			justify-content: flex-start;
			gap: 12px;
		}

		a {
			font-size: 12px;
			font-weight: 300;
			line-height: 18px;
			color: var(--neutral-50);
			text-decoration: underline;

			&:hover {
				text-decoration: none;
			}
		}
	}

	.copyright {
		width: 100%;
		text-align: center;
		font-size: 10px;
		font-weight: 300;
		line-height: 14px;
	}

	.about {
		width: 70%;
		display: flex;
		flex-direction: column;
		gap: 16px;

		@media (max-width: 1024px) {
			width: 100%;
		}

		.about-item {
			border-radius: 8px;
			border: 1px solid var(--neutral-15);
			padding: 12px 16px;
			display: flex;
			flex-direction: column;
			gap: 8px;
			position: relative;
			background-color: var(--neutral-15);
			height: 48px;
			overflow: hidden;
			transition: all 0.3s ease;
			cursor: pointer;

			&.open {
				background-color: var(--neutral-10);
				height: auto;
			}
		}

		.about-title {
			font-size: 16px;
			font-weight: 500;
			line-height: 24px;
		}

		.about-text {
			font-size: 12px;
			font-weight: 300;
			line-height: 16px;
			color: var(--neutral-80);
		}

		.plus {
			position: absolute;
			top: 12px;
			right: 12px;
			width: 24px;
			height: 24px;
			cursor: pointer;
			transform: rotate(45deg);
			transition: transform 0.3s ease;

			&.open {
				transform: rotate(0deg);
			}
		}
	}
}

@keyframes levitate {
	0%,
	100% {
		transform: translateY(0);
	}
	50% {
		transform: translateY(-8px);
	}
}

@keyframes vipFloat {
	0%,
	100% {
		transform: translateY(0) rotate(0);
	}
	50% {
		transform: translateY(-6px) rotate(-2deg);
	}
}

@media (prefers-reduced-motion: reduce) {
	.why-choose .feature-image-vip img,
	.why-choose .feature-image-rewards img,
	.why-choose .feature-image-free img {
		animation: none !important;
		transition: none !important;
	}
}
