*,
*::before,
*::after {
	box-sizing: border-box;
	margin: 0;
	padding: 0;
}

:root {
	--cyan: #2dd4bf;
	--cyan-d: #0e6b62;
	--bg: #0d0d0d;
	--border2: #333;
	--text: #f0f0f0;
	--muted: #707070;
	--red: #f87171;
}

html,
body {
	background: var(--bg);
	color: var(--text);
	font-family: 'DM Sans', sans-serif;
	min-height: 100vh;
	overflow: hidden;
}


#chess-canvas {
	position: fixed;
	inset: 0;
	width: 100%;
	height: 100%;
	pointer-events: none;
	z-index: 0;
}


.bg-glow {
	position: fixed;
	inset: 0;
	background:
		radial-gradient(ellipse 65% 65% at 50% 55%, rgba(45, 212, 191, 0.07) 0%, transparent 70%),
		radial-gradient(ellipse 40% 40% at 15% 85%, rgba(45, 212, 191, 0.03) 0%, transparent 60%),
		radial-gradient(ellipse 30% 30% at 85% 15%, rgba(96, 165, 250, 0.025) 0%, transparent 60%);
	pointer-events: none;
	z-index: 0;
}


.center {
	position: relative;
	z-index: 1;
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 100vh;
	padding: 24px;
}


.login-box {
	text-align: center;
	padding: 52px 44px 44px;
	background: rgba(18, 18, 18, 0.90);
	border: 1px solid var(--border2);
	border-radius: 28px;
	max-width: 420px;
	width: 100%;
	backdrop-filter: blur(24px);
	-webkit-backdrop-filter: blur(24px);
	box-shadow:
		0 0 0 1px rgba(45, 212, 191, 0.07),
		0 24px 80px rgba(0, 0, 0, 0.65),
		0 0 60px rgba(45, 212, 191, 0.05);
	animation: boxEntrada 0.65s cubic-bezier(0.22, 1, 0.36, 1) both;
}

@keyframes boxEntrada {
	from {
		opacity: 0;
		transform: translateY(28px) scale(0.95);
	}

	to {
		opacity: 1;
		transform: translateY(0) scale(1);
	}
}


.logo {
	font-family: 'Cormorant Garamond', serif;
	font-style: italic;
	font-size: 54px;
	font-weight: 600;
	color: var(--cyan);
	text-shadow: 0 0 48px rgba(45, 212, 191, 0.45), 0 0 80px rgba(45, 212, 191, 0.15);
	line-height: 1;
	animation: itemEntrada 0.7s 0.05s cubic-bezier(0.22, 1, 0.36, 1) both;
}

@keyframes itemEntrada {
	from {
		opacity: 0;
		transform: translateY(14px);
	}

	to {
		opacity: 1;
		transform: translateY(0);
	}
}


.logo-line {
	width: 52px;
	height: 2px;
	background: linear-gradient(90deg, transparent, var(--cyan), transparent);
	margin: 14px auto 18px;
	border-radius: 1px;
	opacity: 0.55;
	animation: itemEntrada 0.7s 0.10s cubic-bezier(0.22, 1, 0.36, 1) both;
}

.subtitle {
	color: var(--muted);
	font-size: 13px;
	font-weight: 400;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	margin-bottom: 38px;
	animation: itemEntrada 0.7s 0.14s cubic-bezier(0.22, 1, 0.36, 1) both;
}


.btn-google {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 12px;
	background: #ffffff;
	color: #111;
	border: none;
	border-radius: 14px;
	padding: 16px 28px;
	font-size: 15px;
	font-weight: 600;
	font-family: 'DM Sans', sans-serif;
	cursor: pointer;
	width: 100%;
	transition: opacity 0.15s, transform 0.18s cubic-bezier(0.22, 1, 0.36, 1), box-shadow 0.18s;
	box-shadow: 0 4px 20px rgba(0, 0, 0, 0.35);
	animation: itemEntrada 0.7s 0.20s cubic-bezier(0.22, 1, 0.36, 1) both;
}

.btn-google:hover {
	opacity: 0.94;
	transform: translateY(-2px);
	box-shadow: 0 10px 32px rgba(0, 0, 0, 0.45);
}

.btn-google:active {
	transform: scale(0.97) translateY(0);
	opacity: 1;
}

.btn-google img {
	width: 22px;
	height: 22px;
	flex-shrink: 0;
}


.erro {
	color: var(--red);
	margin-top: 18px;
	font-size: 13px;
	display: none;
	line-height: 1.55;
}

#loading-msg {
	display: none;
	align-items: center;
	justify-content: center;
	gap: 6px;
	margin-top: 20px;
	color: var(--muted);
	font-size: 13px;
}

.loading-dot {
	width: 6px;
	height: 6px;
	background: var(--cyan);
	border-radius: 50%;
	animation: dotPulse 1.3s ease-in-out infinite;
}

.loading-dot:nth-child(2) {
	animation-delay: 0.18s;
}

.loading-dot:nth-child(3) {
	animation-delay: 0.36s;
}

@keyframes dotPulse {

	0%,
	80%,
	100% {
		opacity: 0.18;
		transform: scale(0.7);
	}

	40% {
		opacity: 1;
		transform: scale(1);
	}
}


.footer-text {
	margin-top: 32px;
	font-size: 10px;
	color: #2a2a2a;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	animation: itemEntrada 0.7s 0.28s cubic-bezier(0.22, 1, 0.36, 1) both;
}