*,
*::before,
*::after {
	box-sizing: border-box;
}
* {
	margin: 0;
}
html:focus-within {
	scroll-behavior: smooth;
}
html,
body {
	min-height: 100%;
}
img,
picture,
svg {
	display: block;
	max-width: 100%;
}
button,
input,
select,
textarea {
	font: inherit;
	color: inherit;
}

:root {
	--bg: #0a0a0a;
	--surface-1: #101211;
	--surface-2: #141816;
	--surface-3: #0f0f0f;
	--text-1: #eafff6;
	--text-2: #b7e6d3;
	--muted: #9ad9c3;
	--accent: #00ff99;
	--accent-rgb: 0, 255, 153;
	--border: rgba(255, 255, 255, 0.06);
	--elev-1:
		0 6px 20px rgba(0, 0, 0, 0.35), 0 0 14px rgba(var(--accent-rgb), 0.1);
	--elev-2:
		0 10px 30px rgba(0, 0, 0, 0.45), 0 0 18px rgba(var(--accent-rgb), 0.12);
	--container: min(1120px, 92vw);
	--radius-1: 12px;
	--radius-2: 16px;
	--radius-3: 22px;
	--space-1: 4px;
	--space-2: 8px;
	--space-3: 12px;
	--space-4: 16px;
	--space-5: 24px;
	--space-6: 32px;
	--space-7: 48px;
	--font:
		"Inter", Arial, system-ui, -apple-system, Segoe UI, Roboto, sans-serif;
	--fs-1: clamp(0.9rem, 0.6vw + 0.7rem, 1.05rem);
	--fs-2: clamp(1.05rem, 0.8vw + 0.9rem, 1.25rem);
	--fs-3: clamp(1.25rem, 1.1vw + 1rem, 1.6rem);
	--fs-hero: clamp(1.6rem, 3.2vw + 1rem, 3rem);
}
.element::-webkit-scrollbar {
	display: none;
}

body {
	background: var(--bg);
	color: var(--text-1);
	font-family: var(--font);
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	line-height: 1.6;
	text-rendering: optimizeLegibility;
	position: relative;
	overflow-x: hidden;
	min-height: 100vh;
}

a {
	color: rgba(var(--accent-rgb), 0.85);
	text-decoration: none;
}
a:hover {
	text-shadow: 0 0 10px rgba(var(--accent-rgb), 0.55);
}

/* Контейнер казино */
.casino-container {
	width: var(--container);
	margin: var(--space-7) auto;
	background: rgba(16, 18, 17, 0.68);
	border: 1px solid var(--border);
	border-radius: var(--radius-2);
	box-shadow: var(--elev-1);
	padding: var(--space-6);
	backdrop-filter: blur(10px) saturate(1.08);
	-webkit-backdrop-filter: blur(10px) saturate(1.08);
	position: relative;
	z-index: 2;
}

/* Заголовок */
.casino-title {
	text-align: center;
	color: var(--accent);
	font-size: var(--fs-hero);
	margin-bottom: var(--space-5);
	font-weight: 800;
	text-shadow: 0 0 20px rgba(var(--accent-rgb), 0.5);
}

/* Слот-машина */
.slot-machine {
	background: var(--surface-2);
	border: 2px solid var(--border);
	border-radius: var(--radius-2);
	padding: var(--space-5);
	margin-bottom: var(--space-5);
	box-shadow: var(--elev-2);
	position: relative;
	overflow: hidden;
}

.slots-container {
	display: flex;
	justify-content: center;
	gap: var(--space-4);
	margin-bottom: var(--space-5);
	position: relative;
}

.slot-column {
	width: 140px;
	height: 360px;
	background: var(--surface-3);
	border: 2px solid var(--border);
	border-radius: var(--radius-1);
	overflow: hidden;
	position: relative;
	box-shadow: inset 0 0 30px rgba(0, 0, 0, 0.7);
}

.slot-reel {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	transition: transform 0.1s ease-out;
}

.slot-item {
	height: 120px;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 4.5rem;
	border-bottom: 1px solid rgba(255, 255, 255, 0.1);
	position: relative;
	transition: all 0.3s ease;
}

.slot-item.win-highlight {
	background: rgba(var(--accent-rgb), 0.2);
	box-shadow: 0 0 20px rgba(var(--accent-rgb), 0.5);
	z-index: 6;
}

/* Линии выигрыша */
.win-line {
	position: absolute;
	background: rgba(var(--accent-rgb), 0.1);
	z-index: 5;
	pointer-events: none;
	opacity: 0;
}

.win-line.horizontal {
	left: 0;
	right: 0;
	height: 4px;
	border-top: 2px solid var(--accent);
	border-bottom: 2px solid var(--accent);
}

.win-line.diagonal {
	height: 4px;
	border-top: 2px solid var(--accent);
	border-bottom: 2px solid var(--accent);
	transform-origin: 0 0;
}

/* Кнопка спин */
.spin-button {
	display: block;
	margin: 0 auto;
	padding: var(--space-4) var(--space-6);
	background: linear-gradient(
		180deg,
		rgba(var(--accent-rgb), 0.2) 0%,
		rgba(var(--accent-rgb), 0.1) 100%
	);
	border: 1px solid rgba(var(--accent-rgb), 0.4);
	border-radius: var(--radius-2);
	color: var(--accent);
	font-size: var(--fs-2);
	font-weight: 600;
	cursor: pointer;
	transition: all 0.3s ease;
	box-shadow: var(--elev-1);
	position: relative;
	overflow: hidden;
}

.spin-button:hover:not(:disabled) {
	background: linear-gradient(
		180deg,
		rgba(var(--accent-rgb), 0.3) 0%,
		rgba(var(--accent-rgb), 0.2) 100%
	);
	border-color: rgba(var(--accent-rgb), 0.6);
	transform: translateY(-2px);
	box-shadow:
		0 8px 25px rgba(0, 0, 0, 0.4),
		0 0 15px rgba(var(--accent-rgb), 0.3);
}

.spin-button:active {
	transform: translateY(0);
}

.spin-button:disabled {
	opacity: 0.6;
	cursor: not-allowed;
	transform: none;
}

/* Результат */
.result {
	text-align: center;
	margin-top: var(--space-5);
	min-height: 80px;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: var(--space-3);
}

.combination-name {
	color: var(--accent);
	font-size: var(--fs-2);
	font-weight: 600;
	text-shadow: 0 0 10px rgba(var(--accent-rgb), 0.5);
	min-height: 30px;
}

.win-message {
	color: var(--accent);
	font-size: var(--fs-3);
	font-weight: 800;
	text-shadow: 0 0 15px rgba(var(--accent-rgb), 0.7);
}

.lose-message {
	color: var(--muted);
	font-size: var(--fs-2);
}

/* Анимации */
@keyframes pulse {
	0% {
		transform: scale(1);
	}
	50% {
		transform: scale(1.05);
	}
	100% {
		transform: scale(1);
	}
}

@keyframes sparkle {
	0% {
		opacity: 0;
		transform: scale(0.5) rotate(0deg);
	}
	50% {
		opacity: 1;
		transform: scale(1.2) rotate(180deg);
	}
	100% {
		opacity: 0;
		transform: scale(1.5) rotate(360deg);
	}
}

@keyframes winFlash {
	0%,
	100% {
		opacity: 1;
	}
	50% {
		opacity: 0.3;
	}
}

@keyframes jackpot {
	0% {
		transform: scale(1) rotate(0deg);
	}
	25% {
		transform: scale(1.2) rotate(5deg);
	}
	50% {
		transform: scale(1.3) rotate(-5deg);
	}
	75% {
		transform: scale(1.2) rotate(3deg);
	}
	100% {
		transform: scale(1) rotate(0deg);
	}
}

@keyframes lineGlow {
	0%,
	100% {
		opacity: 0.7;
	}
	50% {
		opacity: 1;
	}
}

.sparkle {
	position: absolute;
	width: 30px;
	height: 30px;
	background: radial-gradient(
		circle,
		rgba(var(--accent-rgb), 0.9) 0%,
		rgba(var(--accent-rgb), 0) 70%
	);
	border-radius: 50%;
	pointer-events: none;
	animation: sparkle 1s ease-out forwards;
	z-index: 10;
}

.win-flash {
	animation: winFlash 0.3s ease 3;
}

.jackpot-animation {
	animation: jackpot 0.5s ease 3;
}

.line-glow {
	animation: lineGlow 1s ease infinite;
}

/* Футер */
.casino-footer {
	text-align: center;
	margin-top: var(--space-6);
	padding-top: var(--space-4);
	border-top: 1px solid var(--border);
	color: var(--text-2);
}

.emoji-names {
	margin-top: var(--space-4);
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
	gap: var(--space-3);
	text-align: left;
}

.emoji-name {
	display: flex;
	align-items: center;
	gap: var(--space-2);
}
.multiple-wins {
	display: flex;
	flex-direction: column;
	gap: var(--space-2);
	margin-top: var(--space-3);
}

.win-combination {
	color: var(--accent);
	font-size: var(--fs-1);
	text-shadow: 0 0 8px rgba(var(--accent-rgb), 0.5);
}
@media (max-width: 720px) {
	.casino-container {
		display: inline;
		margin: var(--space-1);
		padding: var(--space-1);
	}
	.slot-machine {
		display: block;
		padding: var(--space-1);
		margin-bottom: var(--space-1);
	}
	.slots-container {
		display: flex;
		justify-content: center;
		gap: var(--space-1);
		margin-bottom: var(--space-1);
	}
	.spin-button {
		display: block;
		padding: var(--space-3);
	}
	.slot-item {
		height: 120px;
		display: flex;
		align-items: center;
		justify-content: center;
		font-size: 3.5rem;
	}
}
