/* Variables */
:root {
	--primary: #7a7cff;
	--secondary: #ff7eb3;
	--accent: #6ecbf5;
	--glass-bg: rgba(255, 255, 255, 0.1);
	--glass-border: rgba(255, 255, 255, 0.2);
	--text-light: rgba(255, 255, 255, 0.9);
	--shadow: 0 8px 32px rgba(0, 0, 0, 0.1);
	--transition: all 0.3s ease;
}

/* Base styles */
* {
	margin: 0;
	padding: 0;
	box-sizing: border-box;
}

body {
	font-family: "Segoe UI", system-ui, -apple-system, sans-serif;
	min-height: 100vh;
	display: flex;
	justify-content: center;
	align-items: center;
	background: linear-gradient(135deg, #667eea, #764ba2, #6b8dd6, #8e37d7);
	background-size: 300% 300%;
	animation: gradient 15s ease infinite;
	color: var(--text-light);
	padding: 2rem;
	overflow-x: hidden;
}

/* Keyframes */
@keyframes gradient {
	0% {
		background-position: 0% 50%;
	}
	50% {
		background-position: 100% 50%;
	}
	100% {
		background-position: 0% 50%;
	}
}

@keyframes float {
	0% {
		transform: translateY(0) translateX(0) rotate(0deg);
	}
	25% {
		transform: translateY(-20px) translateX(15px) rotate(5deg);
	}
	50% {
		transform: translateY(-40px) translateX(0) rotate(0deg);
	}
	75% {
		transform: translateY(-20px) translateX(-15px) rotate(-5deg);
	}
	100% {
		transform: translateY(0) translateX(0) rotate(0deg);
	}
}

@keyframes logo-spin {
	from {
		transform: rotate(0deg);
	}
	to {
		transform: rotate(360deg);
	}
}

/* Main container */
.glass-container {
	width: 100%;
	max-width: 1200px;
	display: flex;
	flex-direction: column;
	gap: 2rem;
	position: relative;
	z-index: 1;
}

.glass-container .glass-background {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	z-index: -1;
	overflow: hidden;
}

.glass-container .glass-background .bubble {
	position: absolute;
	border-radius: 50%;
	background: radial-gradient(
		circle,
		rgba(255, 255, 255, 0.2) 0%,
		rgba(255, 255, 255, 0) 70%
	);
	filter: blur(5px);
	animation: float 15s infinite linear;
}

.glass-container .glass-background .bubble.bubble-1 {
	width: 300px;
	height: 300px;
	top: 10%;
	left: 5%;
	animation-duration: 25s;
}

.glass-container .glass-background .bubble.bubble-2 {
	width: 200px;
	height: 200px;
	bottom: 15%;
	right: 10%;
	animation-duration: 20s;
}

.glass-container .glass-background .bubble.bubble-3 {
	width: 150px;
	height: 150px;
	top: 40%;
	right: 20%;
	animation-duration: 15s;
}

.glass-container .glass-background .bubble.bubble-4 {
	width: 250px;
	height: 250px;
	bottom: 30%;
	left: 20%;
	animation-duration: 30s;
}

/* Card styles */
.glass-container .glass-card {
	backdrop-filter: blur(12px);
	-webkit-backdrop-filter: blur(12px);
	background: var(--glass-bg);
	border: 1px solid var(--glass-border);
	border-radius: 24px;
	padding: 2.5rem;
	box-shadow: var(--shadow);
	transition: var(--transition);
}

.glass-container .glass-card:hover {
	transform: translateY(-5px);
	box-shadow: 0 12px 40px rgba(0, 0, 0, 0.15);
}

/* Hero card */
.glass-container .glass-card.hero-card {
	text-align: center;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 1.5rem;
}

.glass-container .glass-card.hero-card .logo-group {
	display: flex;
	gap: 2rem;
	justify-content: center;
	align-items: center;
}

.glass-container .glass-card.hero-card .logo-group .logo {
	height: 120px;
	transition: var(--transition);
	filter: drop-shadow(0 5px 15px rgba(0, 0, 0, 0.2));
}

.glass-container .glass-card.hero-card .logo-group .logo:hover {
	transform: scale(1.1);
	filter: drop-shadow(0 0 2em #646cffaa);
}

.glass-container .glass-card.hero-card .logo-group .logo.react {
	animation: logo-spin 20s linear infinite;
}

.glass-container .glass-card.hero-card .logo-group .logo.react:hover {
	filter: drop-shadow(0 0 2em #61dafbaa);
}

.glass-container .glass-card.hero-card .gradient-heading {
	font-size: 3.5rem;
	background: linear-gradient(
		to right,
		var(--primary),
		var(--accent),
		var(--secondary)
	);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
	margin: 0.5rem 0;
	font-weight: 700;
	letter-spacing: -0.5px;
}

.glass-container .glass-card.hero-card .subtitle {
	font-size: 1.25rem;
	opacity: 0.85;
	max-width: 500px;
	line-height: 1.6;
}

/* Content card */
.glass-container .glass-card.content-card {
	display: flex;
	flex-wrap: wrap;
	gap: 2.5rem;
	justify-content: space-between;
	align-items: center;
}

.glass-container .glass-card.content-card .counter-card {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 1rem;
	min-width: 200px;
}

.glass-container .glass-card.content-card .counter-card .glass-button {
	backdrop-filter: blur(10px);
	-webkit-backdrop-filter: blur(10px);
	background: rgba(255, 255, 255, 0.15);
	border: 1px solid var(--glass-border);
	border-radius: 18px;
	padding: 1.5rem;
	width: 160px;
	height: 160px;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	cursor: pointer;
	transition: var(--transition);
	box-shadow: var(--shadow);
}

.glass-container .glass-card.content-card .counter-card .glass-button:hover {
	background: rgba(255, 255, 255, 0.25);
	transform: scale(1.05);
}

.glass-container
	.glass-card.content-card
	.counter-card
	.glass-button
	.count-number {
	font-size: 3.5rem;
	font-weight: 700;
	line-height: 1;
	color: white;
}

.glass-container
	.glass-card.content-card
	.counter-card
	.glass-button
	.count-label {
	font-size: 1.1rem;
	color: white;
	margin-top: 0.5rem;
	opacity: 0.8;
}

.glass-container .glass-card.content-card .counter-card .counter-hint {
	font-size: 0.9rem;
	opacity: 0.7;
}

.glass-container .glass-card.content-card .info-section {
	flex: 1;
	min-width: 300px;
}

.glass-container .glass-card.content-card .info-section .info-text {
	font-size: 1.25rem;
	margin-bottom: 1.5rem;
	line-height: 1.6;
}

.glass-container .glass-card.content-card .info-section .info-text code {
	background: rgba(255, 255, 255, 0.1);
	padding: 0.2rem 0.5rem;
	border-radius: 6px;
	font-family: monospace;
}

.glass-container .glass-card.content-card .info-section .features {
	display: flex;
	gap: 1.5rem;
	flex-wrap: wrap;
}

.glass-container .glass-card.content-card .info-section .features .feature {
	flex: 1;
	min-width: 140px;
	background: rgba(255, 255, 255, 0.08);
	border: 1px solid var(--glass-border);
	border-radius: 16px;
	padding: 1.5rem 1rem;
	text-align: center;
	transition: var(--transition);
}

.glass-container
	.glass-card.content-card
	.info-section
	.features
	.feature:hover {
	background: rgba(255, 255, 255, 0.15);
	transform: translateY(-3px);
}

.glass-container
	.glass-card.content-card
	.info-section
	.features
	.feature
	.feature-icon {
	font-size: 2.5rem;
	margin-bottom: 0.8rem;
}

.glass-container
	.glass-card.content-card
	.info-section
	.features
	.feature
	.feature-text {
	font-weight: 600;
	font-size: 1.1rem;
}

/* Footer card */
.glass-container .glass-card.footer-card {
	text-align: center;
	padding: 1.5rem 2.5rem;
}

.glass-container .glass-card.footer-card .footer-text {
	font-size: 1.1rem;
	margin-bottom: 1.5rem;
}

.glass-container .glass-card.footer-card .social-links {
	display: flex;
	justify-content: center;
	gap: 2rem;
	flex-wrap: wrap;
}

.glass-container .glass-card.footer-card .social-links .social-link {
	color: var(--text-light);
	text-decoration: none;
	padding: 0.6rem 1.2rem;
	border-radius: 12px;
	background: rgba(255, 255, 255, 0.08);
	border: 1px solid var(--glass-border);
	transition: var(--transition);
}

.glass-container .glass-card.footer-card .social-links .social-link:hover {
	background: rgba(255, 255, 255, 0.2);
	transform: translateY(-2px);
}

.connection-subtitle {
	color: rgb(0, 255, 0);
	animation: fadeIn 1s ease-in-out infinite;
}

@keyframes fadeIn {
	from {
		opacity: 0;
	}
	to {
		opacity: 1;
	}
}

/* Responsive styles */
@media (max-width: 768px) {
	.glass-card {
		padding: 1.8rem !important;
	}

	.content-card {
		flex-direction: column;
		align-items: center;
		text-align: center;
	}

	.gradient-heading {
		font-size: 2.8rem;
	}

	.logo {
		height: 100px;
	}

	.features {
		justify-content: center;
	}
}

/* Loading Spinner */
.spinner {
	width: 20px;
	height: 20px;
	border: 3px solid rgba(255, 255, 255, 0.3);
	border-radius: 50%;
	border-top-color: #fff;
	animation: spin 1s ease-in-out infinite;
	margin-right: 8px;
	display: inline-block;
	vertical-align: middle;
}

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

/* Connection Status Styles */
.connection-status {
	margin-top: 1rem;
	padding: 0.5rem 1rem;
	border-radius: 20px;
	font-size: 0.9rem;
	display: flex;
	align-items: center;
	justify-content: center;
	animation: fadeIn 0.5s ease-out;
}

.connection-status.loading {
	background: rgba(255, 255, 255, 0.1);
	color: #aaa;
}

.connection-status.success {
	background: rgba(46, 204, 113, 0.2);
	color: #2ecc71;
	animation: pulse 2s infinite;
}

.connection-status.error {
	background: rgba(231, 76, 60, 0.2);
	color: #e74c3c;
}

/* Animations */
@keyframes fadeIn {
	from {
		opacity: 0;
		transform: translateY(10px);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}

@keyframes pulse {
	0% {
		opacity: 0.8;
	}
	50% {
		opacity: 1;
	}
	100% {
		opacity: 0.8;
	}
}

/* Button click animation */
.glass-button:active {
	transform: scale(0.98);
	transition: transform 0.1s ease;
}

/* Bubble animations */
.bubble {
	position: absolute;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.1);
	animation: float 15s infinite ease-in-out;
}

.bubble-1 {
	width: 100px;
	height: 100px;
	top: 10%;
	left: 10%;
	animation-delay: 0s;
}

.bubble-2 {
	width: 150px;
	height: 150px;
	bottom: 15%;
	right: 10%;
	animation-delay: 2s;
}

.bubble-3 {
	width: 70px;
	height: 70px;
	top: 60%;
	left: 30%;
	animation-delay: 4s;
}

.bubble-4 {
	width: 120px;
	height: 120px;
	top: 30%;
	right: 25%;
	animation-delay: 6s;
}

@keyframes float {
	0%,
	100% {
		transform: translateY(0) translateX(0);
	}
	25% {
		transform: translateY(-20px) translateX(10px);
	}
	50% {
		transform: translateY(10px) translateX(-10px);
	}
	75% {
		transform: translateY(-10px) translateX(20px);
	}
}
