/*
	Pls Give — Magical Night Market meets Futuristic Crypto-Arcade
	- Dark theme with vibrant colors and animated effects
	- Interactive particle background and smooth animations
	- Modern typography and engaging micro-interactions
*/

/* 1) CSS Reset (modern minimal) */
*, *::before, *::after { box-sizing: border-box; }
* { margin: 0; }
html, body {
	height: 100%;
	scroll-behavior: smooth;
	position: relative;
}
body { line-height: 1.5; -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; scroll-snap-type: y proximity; }
img, picture, video, canvas, svg { display: block; max-width: 100%; height: auto; }
input, button, textarea, select { font: inherit; }
p, h1, h2, h3, h4, h5, h6 { overflow-wrap: anywhere; }

/* 2) Root Variables (magical night market palette) */
:root {
	/* MAGICAL NIGHT MARKET PALETTE */
	--color-primary: #8b5cf6;     /* Electric purple */
	--color-accent: #fbbf24;      /* Golden yellow */
	--color-accent-2: #06b6d4;    /* Cyan */
	--color-accent-3: #ec4899;    /* Magenta */
	--color-bg: #0a0a0f;          /* Deep space black */
	--color-surface: #1a1a2e;     /* Dark navy */
	--color-surface-2: #16213e;   /* Lighter navy */
	--color-muted: #94a3b8;       /* Muted text */
	--color-text: #f1f5f9;        /* Bright text */
	--color-glow: #3b82f6;        /* Blue glow */

	--radius: 16px;
	--radius-sm: 12px;
	--shadow-1: 0 8px 32px rgba(139, 92, 246, 0.15);
	--shadow-2: 0 16px 48px rgba(139, 92, 246, 0.25);
	--shadow-glow: 0 0 20px rgba(59, 130, 246, 0.4);
	--container: 1200px;
	--space-1: 8px;
	--space-2: 12px;
	--space-3: 16px;
	--space-4: 24px;
	--space-5: 32px;
	--space-6: 48px;
	--space-7: 72px;
	--space-8: 96px;
}

/* 3) Base Typography & Body */
body {
	font-family: 'Inter', system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
	color: var(--color-text);
	background: var(--color-bg);
	overflow-x: hidden;
	position: relative;
	min-height: 100vh;
}

/* Animated gradient background */
body::before {
	content: '';
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: 
		radial-gradient(circle at 20% 20%, rgba(139, 92, 246, 0.15) 0%, transparent 50%),
		radial-gradient(circle at 80% 80%, rgba(251, 191, 36, 0.1) 0%, transparent 50%),
		radial-gradient(circle at 40% 60%, rgba(6, 182, 212, 0.08) 0%, transparent 50%),
		radial-gradient(circle at 60% 40%, rgba(236, 72, 153, 0.08) 0%, transparent 50%);
	z-index: -2;
	animation: backgroundShift 20s ease-in-out infinite;
}

@keyframes backgroundShift {
	0%, 100% { transform: scale(1) rotate(0deg); }
	50% { transform: scale(1.1) rotate(1deg); }
}

/* Concept art background layer */
.page-bg { 
	position: fixed; 
	inset: 0; 
	z-index: -1; 
	background: url('../neoncheer16_9.png') center/cover no-repeat; 
	opacity: 0.08; 
	mix-blend-mode: screen;
	animation: backgroundFloat 30s ease-in-out infinite;
}

@keyframes backgroundFloat {
	0%, 100% { transform: translateY(0px) scale(1); }
	50% { transform: translateY(-20px) scale(1.02); }
}

/* Particle system container */
.particles-container {
	position: fixed;
	top: 0;
	left: 0;
	width: 100vw;
	height: 100vh;
	z-index: -1;
	pointer-events: none;
	overflow: hidden;
	will-change: transform;
}

.particle {
	position: absolute;
	border-radius: 50%;
	opacity: 0.6;
	pointer-events: none;
	will-change: transform;
	box-shadow: 0 0 8px currentColor;
	filter: blur(1px);
	backface-visibility: hidden;
	transform: translateZ(0);
}

/* Simplified particle styles for better performance */
.particle {
	width: 6px;
	height: 6px;
	background: var(--color-primary);
	color: var(--color-primary);
	opacity: 0.4;
	animation: gentleFloat 20s ease-in-out infinite;
	box-shadow: 0 0 6px var(--color-primary);
}

/* Subtle variations */
.particle:nth-child(3n) {
	background: var(--color-accent);
	color: var(--color-accent);
	box-shadow: 0 0 6px var(--color-accent);
	animation-duration: 25s;
}

.particle:nth-child(5n) {
	background: var(--color-accent-2);
	color: var(--color-accent-2);
	box-shadow: 0 0 6px var(--color-accent-2);
	animation-duration: 30s;
}

.particle:nth-child(7n) {
	width: 4px;
	height: 4px;
	background: var(--color-accent-3);
	color: var(--color-accent-3);
	box-shadow: 0 0 4px var(--color-accent-3);
	animation-duration: 15s;
}

/* Gentle floating animation */
@keyframes gentleFloat {
	0% {
		transform: translateY(calc(var(--start-y, 100) * 1vh)) translateX(0) scale(1);
		opacity: 0;
	}
	20% {
		opacity: 0.4;
		transform: translateY(calc(var(--start-y, 100) * 0.8vh)) translateX(30px) scale(1.1);
	}
	50% {
		transform: translateY(calc(var(--start-y, 100) * 0.5vh)) translateX(60px) scale(1.2);
		opacity: 0.6;
	}
	80% {
		opacity: 0.4;
		transform: translateY(calc(var(--start-y, 100) * 0.2vh)) translateX(90px) scale(1.1);
	}
	100% {
		transform: translateY(calc(var(--start-y, 100) * -0.2vh)) translateX(120px) scale(0.8);
		opacity: 0;
	}
}

/* Twinkling animation */
@keyframes particleTwinkle {
	0% {
		opacity: 0.2;
		transform: translateY(calc(var(--start-y, 100) * 1vh)) scale(0.3) rotate(0deg);
	}
	12.5% {
		opacity: 0.8;
		transform: translateY(calc(var(--start-y, 100) * 0.85vh)) scale(0.9) rotate(45deg);
	}
	25% {
		opacity: 1;
		transform: translateY(calc(var(--start-y, 100) * 0.75vh)) scale(1.2) rotate(90deg);
	}
	37.5% {
		opacity: 0.7;
		transform: translateY(calc(var(--start-y, 100) * 0.65vh)) scale(0.8) rotate(135deg);
	}
	50% {
		opacity: 0.4;
		transform: translateY(calc(var(--start-y, 100) * 0.5vh)) scale(0.6) rotate(180deg);
	}
	62.5% {
		opacity: 0.9;
		transform: translateY(calc(var(--start-y, 100) * 0.4vh)) scale(1.1) rotate(225deg);
	}
	75% {
		opacity: 1;
		transform: translateY(calc(var(--start-y, 100) * 0.25vh)) scale(1.3) rotate(270deg);
	}
	87.5% {
		opacity: 0.6;
		transform: translateY(calc(var(--start-y, 100) * 0.1vh)) scale(0.7) rotate(315deg);
	}
	100% {
		opacity: 0.3;
		transform: translateY(calc(var(--start-y, 100) * -0.05vh)) scale(0.4) rotate(360deg);
	}
}

/* Drifting animation with horizontal movement */
@keyframes particleDrift {
	0% {
		transform: translateY(calc(var(--start-y, 100) * 1vh)) translateX(-50px) rotate(0deg) scale(0.8);
		opacity: 0;
	}
	10% {
		opacity: 0.6;
		transform: translateY(calc(var(--start-y, 100) * 0.9vh)) translateX(-30px) rotate(30deg) scale(0.9);
	}
	20% {
		opacity: 0.8;
		transform: translateY(calc(var(--start-y, 100) * 0.8vh)) translateX(0px) rotate(60deg) scale(1);
	}
	30% {
		opacity: 0.9;
		transform: translateY(calc(var(--start-y, 100) * 0.7vh)) translateX(30px) rotate(90deg) scale(1.1);
	}
	40% {
		opacity: 0.85;
		transform: translateY(calc(var(--start-y, 100) * 0.6vh)) translateX(50px) rotate(120deg) scale(1);
	}
	50% {
		transform: translateY(calc(var(--start-y, 100) * 0.5vh)) translateX(100px) rotate(180deg) scale(1.2);
		opacity: 0.9;
	}
	60% {
		opacity: 0.85;
		transform: translateY(calc(var(--start-y, 100) * 0.4vh)) translateX(120px) rotate(210deg) scale(1.1);
	}
	70% {
		opacity: 0.9;
		transform: translateY(calc(var(--start-y, 100) * 0.3vh)) translateX(150px) rotate(240deg) scale(1);
	}
	80% {
		opacity: 0.8;
		transform: translateY(calc(var(--start-y, 100) * 0.2vh)) translateX(170px) rotate(270deg) scale(0.9);
	}
	90% {
		opacity: 0.7;
		transform: translateY(calc(var(--start-y, 100) * 0.1vh)) translateX(180px) rotate(300deg) scale(0.8);
	}
	100% {
		transform: translateY(calc(var(--start-y, 100) * -0.1vh)) translateX(200px) rotate(360deg) scale(0.7);
		opacity: 0;
	}
}

/* Pulsing animation */
@keyframes particlePulse {
	0% {
		transform: translateY(calc(var(--start-y, 100) * 1vh)) scale(1) rotate(0deg);
		opacity: 0;
	}
	10% {
		opacity: 0.6;
		transform: translateY(calc(var(--start-y, 100) * 0.9vh)) scale(1.2) rotate(30deg);
	}
	20% {
		opacity: 0.8;
		transform: translateY(calc(var(--start-y, 100) * 0.8vh)) scale(1.5) rotate(60deg);
	}
	30% {
		opacity: 1;
		transform: translateY(calc(var(--start-y, 100) * 0.7vh)) scale(1.8) rotate(90deg);
	}
	40% {
		opacity: 0.9;
		transform: translateY(calc(var(--start-y, 100) * 0.6vh)) scale(1.6) rotate(120deg);
	}
	50% {
		opacity: 0.6;
		transform: translateY(calc(var(--start-y, 100) * 0.5vh)) scale(0.8) rotate(150deg);
	}
	60% {
		opacity: 0.8;
		transform: translateY(calc(var(--start-y, 100) * 0.4vh)) scale(1.3) rotate(180deg);
	}
	70% {
		opacity: 1;
		transform: translateY(calc(var(--start-y, 100) * 0.3vh)) scale(1.7) rotate(210deg);
	}
	80% {
		opacity: 0.7;
		transform: translateY(calc(var(--start-y, 100) * 0.2vh)) scale(1) rotate(240deg);
	}
	90% {
		opacity: 0.5;
		transform: translateY(calc(var(--start-y, 100) * 0.1vh)) scale(0.7) rotate(270deg);
	}
	100% {
		transform: translateY(calc(var(--start-y, 100) * -0.1vh)) scale(0.5) rotate(300deg);
		opacity: 0;
	}
}

/* Glowing animation for large particles */
@keyframes particleGlow {
	0% {
		transform: translateY(calc(var(--start-y, 100) * 1vh)) scale(1) rotate(0deg);
		opacity: 0;
	}
	12.5% {
		opacity: 0.3;
		transform: translateY(calc(var(--start-y, 100) * 0.85vh)) scale(1.1) rotate(45deg);
	}
	25% {
		opacity: 0.5;
		transform: translateY(calc(var(--start-y, 100) * 0.75vh)) scale(1.3) rotate(90deg);
	}
	37.5% {
		opacity: 0.7;
		transform: translateY(calc(var(--start-y, 100) * 0.6vh)) scale(1.5) rotate(135deg);
	}
	50% {
		opacity: 0.8;
		transform: translateY(calc(var(--start-y, 100) * 0.5vh)) scale(1.6) rotate(180deg);
	}
	62.5% {
		opacity: 0.7;
		transform: translateY(calc(var(--start-y, 100) * 0.4vh)) scale(1.4) rotate(225deg);
	}
	75% {
		opacity: 0.6;
		transform: translateY(calc(var(--start-y, 100) * 0.25vh)) scale(1.2) rotate(270deg);
	}
	87.5% {
		opacity: 0.4;
		transform: translateY(calc(var(--start-y, 100) * 0.1vh)) scale(1) rotate(315deg);
	}
	100% {
		transform: translateY(calc(var(--start-y, 100) * -0.1vh)) scale(0.8) rotate(360deg);
		opacity: 0;
	}
}

/* Sparkle animation */
@keyframes particleSparkle {
	0% {
		transform: translateY(calc(var(--start-y, 100) * 1vh)) scale(0) rotate(0deg);
		opacity: 0;
	}
	10% {
		opacity: 0.5;
		transform: translateY(calc(var(--start-y, 100) * 0.9vh)) scale(0.5) rotate(30deg);
	}
	20% {
		opacity: 0.8;
		transform: translateY(calc(var(--start-y, 100) * 0.8vh)) scale(0.8) rotate(60deg);
	}
	30% {
		opacity: 1;
		transform: translateY(calc(var(--start-y, 100) * 0.7vh)) scale(1.2) rotate(90deg);
	}
	40% {
		opacity: 0.9;
		transform: translateY(calc(var(--start-y, 100) * 0.6vh)) scale(1.5) rotate(120deg);
	}
	50% {
		transform: translateY(calc(var(--start-y, 100) * 0.5vh)) scale(1.8) rotate(180deg);
		opacity: 0.8;
	}
	60% {
		opacity: 0.9;
		transform: translateY(calc(var(--start-y, 100) * 0.4vh)) scale(1.5) rotate(210deg);
	}
	70% {
		opacity: 1;
		transform: translateY(calc(var(--start-y, 100) * 0.3vh)) scale(1.2) rotate(240deg);
	}
	80% {
		opacity: 0.8;
		transform: translateY(calc(var(--start-y, 100) * 0.2vh)) scale(0.8) rotate(270deg);
	}
	90% {
		opacity: 0.5;
		transform: translateY(calc(var(--start-y, 100) * 0.1vh)) scale(0.5) rotate(300deg);
	}
	100% {
		transform: translateY(calc(var(--start-y, 100) * -0.05vh)) scale(0) rotate(360deg);
		opacity: 0;
	}
}

/* Ambient particles for hero section */
@keyframes ambientFloat {
	0% {
		transform: translateY(0px) translateX(0px) scale(1) rotate(0deg);
		opacity: 0.3;
	}
	12.5% {
		transform: translateY(-10px) translateX(5px) scale(1.05) rotate(15deg);
		opacity: 0.5;
	}
	25% {
		transform: translateY(-15px) translateX(10px) scale(1.1) rotate(30deg);
		opacity: 0.8;
	}
	37.5% {
		transform: translateY(-20px) translateX(5px) scale(1.05) rotate(45deg);
		opacity: 0.9;
	}
	50% {
		transform: translateY(-25px) translateX(-5px) scale(0.9) rotate(60deg);
		opacity: 1;
	}
	62.5% {
		transform: translateY(-20px) translateX(-10px) scale(0.95) rotate(75deg);
		opacity: 0.9;
	}
	75% {
		transform: translateY(-10px) translateX(15px) scale(1.2) rotate(90deg);
		opacity: 0.6;
	}
	87.5% {
		transform: translateY(-5px) translateX(10px) scale(1.1) rotate(105deg);
		opacity: 0.4;
	}
	100% {
		transform: translateY(0px) translateX(0px) scale(1) rotate(120deg);
		opacity: 0.3;
	}
}

/* Ambient particles container */
.ambient-particles {
	overflow: hidden;
}

/* Performance optimizations */
.particle, .ambient-particle {
	backface-visibility: hidden;
	transform-style: preserve-3d;
}

/* Mouse particle styles */
.mouse-particles-container {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	pointer-events: none;
	z-index: 9999;
}

.mouse-particle {
	position: absolute;
	border-radius: 50%;
	pointer-events: none;
	will-change: transform, opacity;
	opacity: 0.8;
}

/* Animation for mouse particles */
.mouse-particle {
	animation: mouseParticleAnimation 0.5s ease-out forwards; /* Shortened from 1s to 0.5s */
}

@keyframes mouseParticleAnimation {
	0% {
		transform: translate(0, 0) scale(1);
		opacity: 0.8;
	}
	100% {
		transform: translate(var(--tx), var(--ty)) scale(0);
		opacity: 0;
	}
}

/* Add this to ensure mouse particles use the project color palette */
.mouse-particle:nth-child(4n+1) {
	--tx: -5px; /* Reduced from -10px */
	--ty: -5px; /* Reduced from -10px */
}

.mouse-particle:nth-child(4n+2) {
	--tx: 5px; /* Reduced from 10px */
	--ty: -5px; /* Reduced from -10px */
}

.mouse-particle:nth-child(4n+3) {
	--tx: -5px; /* Reduced from -10px */
	--ty: 5px; /* Reduced from 10px */
}

.mouse-particle:nth-child(4n) {
	--tx: 5px; /* Reduced from 10px */
	--ty: 5px; /* Reduced from 10px */
}

/* Responsive particle adjustments */
@media (max-width: 768px) {
	.particle {
		animation-duration: 15s !important;
		width: 4px;
		height: 4px;
	}
}

/* Accessibility: respect reduced motion preferences */
@media (prefers-reduced-motion: reduce) {
	.particle, .ambient-particle {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		opacity: 0.2 !important;
	}
}

/* Typography enhancements */
h1, h2, h3 {
	font-family: 'Inter', system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
	line-height: 1.15;
	font-weight: 800;
	background: linear-gradient(135deg, var(--color-text), var(--color-accent));
	-webkit-background-clip: text;
	-webkit-text-fill-color: transparent;
	background-clip: text;
}

h1 { 
	font-size: clamp(2.5rem, 4vw, 4rem); 
	letter-spacing: -0.02em;
	text-shadow: 0 0 30px rgba(251, 191, 36, 0.3);
}

h2 { 
	font-size: clamp(1.75rem, 2.8vw, 2.5rem); 
	letter-spacing: -0.01em;
}

h3 { 
	font-size: 1.25rem; 
	font-weight: 700; 
}

p { 
	color: var(--color-muted); 
	font-size: 1.1rem;
	line-height: 1.6;
}

/* 4) Layout helpers */
.container { 
	width: min(100% - 2rem, var(--container)); 
	margin-inline: auto; 
}

.section {
	padding: var(--space-7) 0;
	position: relative;
	scroll-snap-align: start;
}

.section-title { 
	text-align: center; 
	margin-bottom: var(--space-6);
	position: relative;
}

.section-title::after {
	content: '';
	position: absolute;
	bottom: -12px;
	left: 50%;
	transform: translateX(-50%);
	width: 60px;
	height: 3px;
	background: linear-gradient(90deg, var(--color-primary), var(--color-accent));
	border-radius: 2px;
}

.grid-2 { 
	display: grid; 
	gap: var(--space-6); 
}

@media (min-width: 860px) { 
	.grid-2 { 
		grid-template-columns: 1.1fr 0.9fr; 
		align-items: center; 
	} 
}

.sr-only { 
	position: absolute; 
	width: 1px; 
	height: 1px; 
	padding: 0; 
	margin: -1px; 
	overflow: hidden; 
	clip: rect(0,0,0,0); 
	white-space: nowrap; 
	border: 0; 
}

.skip-link { 
	position: absolute; 
	left: -999px; 
	top: -999px; 
}

.skip-link:focus { 
	left: 1rem; 
	top: 1rem; 
	background: var(--color-primary); 
	color: #fff; 
	padding: .5rem .75rem; 
	border-radius: var(--radius-sm); 
	z-index: 1000;
}

/* 5) Enhanced Header with Glassmorphism */
.site-header { 
	position: sticky; 
	top: 0; 
	z-index: 50; 
	backdrop-filter: saturate(180%) blur(20px); 
	background: rgba(26, 26, 46, 0.8); 
	border-bottom: 1px solid rgba(139, 92, 246, 0.2);
	transition: all 0.3s ease;
}

.site-header.scrolled {
	background: rgba(26, 26, 46, 0.95);
	border-bottom-color: rgba(139, 92, 246, 0.3);
	box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);
}

.site-header.scrolled .header-inner {
	padding: var(--space-2) 0;
}

.site-header.scrolled .brand-logo {
	width: 48px;
	height: 48px;
}

.header-inner { 
	display: flex; 
	align-items: center; 
	justify-content: space-between; 
	padding: var(--space-3) 0; 
}

.brand { 
	display: inline-flex; 
	align-items: center; 
	gap: .8rem; 
	color: #fff; 
	text-decoration: none; 
	font-weight: 800; 
	letter-spacing: .2px; 
	transition: transform 0.3s ease;
}

.brand:hover {
	transform: scale(1.05);
	will-change: transform;
}

.brand:focus {
	outline: 2px dashed var(--color-accent);
	outline-offset: 2px;
	transform: scale(1.08);
}

.brand:active {
	transform: scale(1.05);
	transition: all 0.2s ease;
}

.brand-logo {
	width: 64px;
	height: 64px;
	border-radius: 16px;
	box-shadow: 0 0 30px rgba(139, 92, 246, 0.6);
	transition: all 0.4s cubic-bezier(0.34, 1.56, 0.64, 1);
	will-change: transform, box-shadow;
}

.brand:hover .brand-logo {
	box-shadow: 0 0 30px rgba(139, 92, 246, 0.7), 0 0 15px rgba(251, 191, 36, 0.4);
	transform: scale(1.08);
}

.brand:focus .brand-logo {
	box-shadow: 0 0 40px rgba(139, 92, 246, 0.8), 0 0 20px rgba(251, 191, 36, 0.5);
	outline: 2px dashed var(--color-accent);
	outline-offset: 2px;
}

.brand:active .brand-logo {
	transform: scale(1.05);
	transition: all 0.2s ease;
	box-shadow: 0 0 25px rgba(139, 92, 246, 0.6), 0 0 15px rgba(251, 191, 36, 0.3);
}

.brand-text { 
	font-size: 1.25rem; 
	background: linear-gradient(135deg, var(--color-text), var(--color-accent));
	-webkit-background-clip: text;
	-webkit-text-fill-color: transparent;
	background-clip: text;
}

/* Enhanced logo burst animation */
.logo-burst { 
	position: relative; 
	display: inline-grid; 
	place-items: center; 
}

.logo-burst::before, .logo-burst::after {
	content: ""; 
	position: absolute; 
	inset: 0; 
	border-radius: 16px; 
	pointer-events: none; 
	opacity: 0;
}

.logo-burst::before { 
	background: radial-gradient(60% 60% at 50% 50%, color-mix(in oklab, var(--color-primary), white 20%), transparent); 
	filter: blur(20px); 
}

.logo-burst::after { 
	background: conic-gradient(from 0deg, var(--color-accent), transparent 30%, var(--color-primary) 50%, transparent 70%, var(--color-accent)); 
	border-radius: 50%; 
	filter: blur(15px); 
}

/* Enhanced keyframes */
@keyframes logo-pop {
	0% { transform: scale(.6) rotate(-30deg) skew(10deg); opacity: 0; }
	60% { transform: scale(1.25) rotate(10deg) skew(-5deg); opacity: 1; }
	100% { transform: scale(1) rotate(0deg) skew(0deg); opacity: 1; }
}

@keyframes rays {
	0% { opacity: 0; transform: scale(.3) rotate(0); }
	60% { opacity: 1; transform: scale(1.1) rotate(120deg); }
	100% { opacity: 0; transform: scale(1.3) rotate(240deg); }
}

@keyframes sparkles {
	0% { opacity: 0; transform: translateY(8px) scale(.8); }
	50% { opacity: 1; transform: translateY(-3px) scale(1.1); }
	100% { opacity: 0; transform: translateY(-15px) scale(.9); }
}

.logo-burst .brand-logo,
.logo-burst .hero-image { 
	animation: logo-pop 1.2s cubic-bezier(.16,1,.3,1) both; 
}

.logo-burst::before { 
	animation: rays 1.8s ease-out .1s both; 
}

.logo-burst::after { 
	animation: rays 2s ease-out .2s both; 
}

/* Enhanced sparkle elements */
.logo-burst .sparkle { 
	position: absolute; 
	width: 10px; 
	height: 10px; 
	border-radius: 50%; 
	background: #fff; 
	box-shadow: 0 0 0 3px color-mix(in oklab, #fff, var(--color-primary) 30% / 15%); 
	opacity: 0; 
	animation: sparkles 1.5s ease-out both; 
}

.logo-burst .s1 { 
	left: -10px; 
	top: -8px; 
	animation-delay: .2s; 
	background: var(--color-accent); 
}

.logo-burst .s2 { 
	right: -12px; 
	top: 6px; 
	animation-delay: .4s; 
	background: var(--color-primary); 
}

.logo-burst .s3 { 
	left: 50%; 
	bottom: -10px; 
	transform: translateX(-50%); 
	animation-delay: .6s; 
	background: var(--color-accent-2); 
}

.logo-large .sparkle { 
	width: 12px; 
	height: 12px; 
}

.logo-large .s1 { 
	left: -15px; 
	top: -15px; 
}

.logo-large .s2 { 
	right: -18px; 
	top: 3px; 
}

.logo-large .s3 { 
	bottom: -15px; 
}

/* Respect reduced-motion */
@media (prefers-reduced-motion: reduce) {
	.logo-burst::before,
	.logo-burst::after,
	.logo-burst .brand-logo,
	.logo-burst .hero-image,
	.logo-burst .sparkle,
	.particle,
	.page-bg,
	body::before { 
		animation: none !important; 
	}
}

/* Enhanced Navigation */
.site-nav ul { 
	list-style: none; 
	padding: 0; 
	display: grid; 
	gap: .25rem; 
}

.site-nav a {
	color: var(--color-text);
	text-decoration: none;
	padding: 1rem 1.5rem;
	border-radius: var(--radius-sm);
	border: 1px solid transparent;
	font-weight: 700;
	font-size: 1rem;
	transition: all 0.4s cubic-bezier(0.34, 1.56, 0.64, 1);
	position: relative;
	overflow: hidden;
	z-index: 1;
	will-change: transform, box-shadow;
}

.site-nav a:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 16px rgba(139, 92, 246, 0.35), 0 0 20px rgba(251, 191, 36, 0.25);
}

.site-nav a:focus {
	outline: 2px dashed var(--color-accent);
	outline-offset: 2px;
}

.site-nav a:active {
	transform: translateY(1px);
	transition: all 0.2s ease;
	box-shadow: 0 2px 10px rgba(139, 92, 246, 0.3), 0 0 15px rgba(251, 191, 36, 0.2);
}

/* Mobile nav */
.site-nav { 
	position: absolute; 
	inset: calc(100% + 4px) 1rem auto; 
	background: rgba(26, 26, 46, 0.95); 
	backdrop-filter: blur(20px);
	border: 1px solid rgba(139, 92, 246, 0.2); 
	padding: .75rem; 
	border-radius: var(--radius); 
	box-shadow: var(--shadow-2); 
	display: none; 
	transform: translateY(-10px);
	opacity: 0;
	transition: all 0.3s ease;
}

.site-nav.open { 
	display: block; 
	transform: translateY(0);
	opacity: 1;
}

.nav-toggle {
	background: transparent;
	border: 0;
	padding: .5rem;
	display: inline-grid;
	gap: 4px;
	cursor: pointer;
	transition: all 0.4s cubic-bezier(0.34, 1.56, 0.64, 1);
	will-change: transform;
}

.nav-toggle:hover {
	transform: scale(1.1);
}

.nav-toggle-bar {
	width: 28px;
	height: 3px;
	background: var(--color-text);
	border-radius: 2px;
	display: block;
	transition: all 0.4s cubic-bezier(0.34, 1.56, 0.64, 1);
}

.nav-toggle:hover .nav-toggle-bar {
	background: var(--color-accent);
	box-shadow: 0 0 8px rgba(251, 191, 36, 0.4);
}

.nav-toggle:focus {
	outline: 2px dashed var(--color-accent);
	outline-offset: 2px;
}

.nav-toggle:active {
	transform: scale(1.05);
}

@media (min-width: 860px) {
	.nav-toggle { display: none; }
	.site-nav { 
		position: static; 
		display: block; 
		background: transparent; 
		border: 0; 
		box-shadow: none; 
		padding: 0; 
		transform: none;
		opacity: 1;
	}
	.site-nav ul { display: flex; gap: .5rem; }
}

/* 6) Enhanced Buttons */
.btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: .6rem;
	padding: 1rem 1.5rem;
	border-radius: var(--radius-sm);
	border: 1px solid transparent;
	font-weight: 700;
	text-decoration: none;
	transition: all 0.4s cubic-bezier(0.34, 1.56, 0.64, 1);
	position: relative;
	overflow: hidden;
	font-size: 1rem;
	z-index: 1;
	will-change: transform, box-shadow;
}

.btn::before {
	content: '';
	position: absolute;
	top: 0;
	left: -100%;
	width: 100%;
	height: 100%;
	background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.3), rgba(139, 92, 246, 0.3), transparent);
	transition: left 0.6s cubic-bezier(0.34, 1.56, 0.64, 1);
	z-index: -1;
}

.btn:hover::before {
	left: 100%;
}

.btn:hover {
	transform: translateY(-2px);
	box-shadow: 0 6px 16px rgba(139, 92, 246, 0.35), 0 0 20px rgba(251, 191, 36, 0.25);
}

.btn:focus {
	outline: 2px dashed var(--color-accent);
	outline-offset: 2px;
	box-shadow: 0 0 0 3px rgba(139, 92, 246, 0.5), 0 0 20px rgba(251, 191, 36, 0.4);
}

.btn:active {
	transform: translateY(1px);
	transition: all 0.2s ease;
	box-shadow: 0 2px 10px rgba(139, 92, 246, 0.3), 0 0 15px rgba(251, 191, 36, 0.2);
}

.btn-primary {
	background: linear-gradient(135deg, var(--color-primary), color-mix(in oklab, var(--color-primary), white 15%));
	color: #fff;
	box-shadow: 0 8px 25px color-mix(in oklab, var(--color-primary), black 60% / 40%);
	border: 1px solid rgba(139, 92, 246, 0.3);
}

.btn-primary:hover {
	filter: brightness(1.12);
	transform: translateY(-3px);
	box-shadow: 0 12px 32px color-mix(in oklab, var(--color-primary), black 50% / 50%), 0 0 24px rgba(251, 191, 36, 0.35);
}

.btn-ghost {
	background: rgba(139, 92, 246, 0.1);
	color: var(--color-text);
	border-color: rgba(139, 92, 246, 0.3);
	backdrop-filter: blur(10px);
}

.btn-ghost:hover {
	background: rgba(139, 92, 246, 0.2);
	border-color: rgba(139, 92, 246, 0.5);
	transform: translateY(-2px);
	box-shadow: 0 6px 20px rgba(139, 92, 246, 0.25), 0 0 20px rgba(251, 191, 36, 0.15);
}

/* 7) Enhanced Hero Section */
.hero {
	padding-top: var(--space-5);
	padding-bottom: var(--space-5);
	position: relative;
	overflow: hidden;
	min-height: 100vh;
	display: flex;
	align-items: center;
}

/* Enhanced background with multiple gradient layers for more prominence */
.hero::before {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	background:
		radial-gradient(ellipse 120% 80% at 50% 20%, rgba(139, 92, 246, 0.25) 0%, rgba(6, 182, 212, 0.15) 25%, transparent 50%),
		radial-gradient(ellipse 100% 60% at 80% 80%, rgba(236, 72, 153, 0.12) 0%, transparent 40%),
		radial-gradient(circle at 30% 60%, rgba(251, 191, 36, 0.08) 0%, transparent 50%);
	z-index: -1;
	animation: heroBackgroundPulse 8s ease-in-out infinite;
}

/* Add subtle animated background pulse */
@keyframes heroBackgroundPulse {
	0%, 100% { opacity: 0.8; transform: scale(1); }
	50% { opacity: 1; transform: scale(1.05); }
}

/* Enhanced focus glow behind content */
.hero::after {
	content: '';
	position: absolute;
	top: 30%;
	left: 20%;
	width: 60%;
	height: 40%;
	background: radial-gradient(ellipse, rgba(139, 92, 246, 0.15) 0%, transparent 70%);
	border-radius: 50%;
	filter: blur(60px);
	z-index: 0;
	animation: focusGlow 6s ease-in-out infinite;
}

@keyframes focusGlow {
	0%, 100% { opacity: 0.4; transform: scale(1) translateY(0); }
	50% { opacity: 0.8; transform: scale(1.2) translateY(-10px); }
}

.hero-inner {
	display: flex;
	flex-direction: row;
	gap: var(--space-5);
	align-items: center;
	justify-content: space-between;
	padding: var(--space-4) 0;
	position: relative;
	z-index: 2;
}

.hero-copy {
	flex: 1;
	text-align: left;
	max-width: 650px;
	position: relative;
	padding: var(--space-3);
}

/* Add subtle content backdrop for enhanced focus */
.hero-copy::before {
	content: '';
	position: absolute;
	top: -var(--space-4);
	left: -var(--space-4);
	right: -var(--space-4);
	bottom: -var(--space-4);
	background: rgba(139, 92, 246, 0.05);
	border: 1px solid rgba(139, 92, 246, 0.15);
	border-radius: var(--radius);
	backdrop-filter: blur(20px);
	z-index: -1;
}

.hero-visual {
	flex: 0 0 auto;
	display: flex;
	align-items: center;
	justify-content: center;
}

.hero-title {
	font-size: clamp(2.5rem, 5vw, 4rem);
	font-weight: 900;
	letter-spacing: -0.04em;
	line-height: 1.1;
	margin-bottom: var(--space-4);
	background: linear-gradient(135deg,
		var(--color-primary) 0%,
		var(--color-accent-2) 30%,
		var(--color-accent) 60%,
		var(--color-accent-3) 100%);
	-webkit-background-clip: text;
	-webkit-text-fill-color: transparent;
	background-clip: text;
	text-shadow: 0 0 40px rgba(139, 92, 246, 0.4);
	animation: heroTitleSlide 1s ease-out 0.5s both;
	position: relative;
}

/* Enhanced glow effect for title */
.hero-title::after {
	content: attr(data-text);
	position: absolute;
	top: 0;
	left: 0;
	background: linear-gradient(135deg,
		var(--color-primary) 0%,
		var(--color-accent-2) 30%,
		var(--color-accent) 60%,
		var(--color-accent-3) 100%);
	-webkit-background-clip: text;
	-webkit-text-fill-color: transparent;
	background-clip: text;
	filter: blur(3px);
	opacity: 0.5;
	z-index: -1;
}

@keyframes heroTitleSlide {
	0% {
		opacity: 0;
		transform: translateY(30px);
	}
	100% {
		opacity: 1;
		transform: translateY(0);
	}
}

.hero-subtitle {
	margin-top: var(--space-5);
	margin-bottom: var(--space-6);
	font-size: clamp(1rem, 1.2vw, 1.2rem);
	color: rgba(241, 245, 249, 0.95);
	line-height: 1.7;
	font-weight: 400;
	max-width: 90%;
	animation: heroSubtitleSlide 1s ease-out 0.8s both;
}

@keyframes heroSubtitleSlide {
	0% {
		opacity: 0;
		transform: translateY(20px);
	}
	100% {
		opacity: 1;
		transform: translateY(0);
	}
}

.hero-cta {
	display: flex;
	gap: 1.2rem;
	margin-top: var(--space-6);
	flex-wrap: nowrap;
	animation: heroCTASlide 1s ease-out 1.1s both;
	justify-content: flex-start;
	align-items: center;
}

/* Enhanced button styling for hero */
.hero-cta .btn {
	padding: 0.8rem 1.8rem;
	font-size: 1rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.5px;
	min-width: 160px;
	max-width: 200px;
	height: fit-content;
	position: relative;
	overflow: hidden;
	z-index: 1;
}

/* Make Join Waitlist button wider for longer text */
.hero-cta .btn-primary {
	min-width: 180px;
	max-width: 240px;
}

/* Media query to handle button wrapping when screen is too narrow for larger hero */
@media (max-width: 1400px) {
	.hero-cta {
		flex-wrap: wrap;
		justify-content: center;
		gap: 0.8rem;
	}
	
	.hero-cta .btn {
		flex: 1;
		min-width: 140px;
		max-width: 180px;
		padding: 0.7rem 1.5rem;
		font-size: 0.95rem;
	}
	
	/* Keep Join Waitlist button wider even on medium screens */
	.hero-cta .btn-primary {
		min-width: 160px;
		max-width: 200px;
	}
}

.hero-cta .btn::before {
	content: '';
	position: absolute;
	top: 0;
	left: -100%;
	width: 100%;
	height: 100%;
	background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.3), rgba(139, 92, 246, 0.3), transparent);
	transition: left 0.6s cubic-bezier(0.34, 1.56, 0.64, 1);
	z-index: -1;
}

.hero-cta .btn:hover::before {
	left: 100%;
}

.hero-cta .btn-primary {
	background: linear-gradient(135deg, var(--color-primary) 0%, var(--color-accent-2) 100%);
	box-shadow:
		0 12px 30px rgba(139, 92, 246, 0.5),
		0 0 25px rgba(139, 92, 246, 0.3),
		inset 0 1px 0 rgba(255, 255, 255, 0.1);
	height: fit-content;
	align-self: flex-start;
	min-width: 180px;
	max-width: 240px;
}

.hero-cta .btn-primary:hover {
	filter: brightness(1.15);
	transform: translateY(-5px);
	box-shadow:
		0 25px 50px rgba(139, 92, 246, 0.8),
		0 0 40px rgba(251, 191, 36, 0.5),
		inset 0 1px 0 rgba(255, 255, 255, 0.2);
	background: linear-gradient(135deg, #9d6df7 0%, #14c7e6 100%);
}

.hero-cta .btn-ghost {
	background: rgba(139, 92, 246, 0.15);
	border: 2px solid rgba(139, 92, 246, 0.4);
	box-shadow:
		0 10px 25px rgba(139, 92, 246, 0.3),
		inset 0 1px 0 rgba(255, 255, 255, 0.1);
	backdrop-filter: blur(15px);
	height: fit-content;
	align-self: flex-start;
}

.hero-cta .btn-ghost:hover {
	background: rgba(139, 92, 246, 0.3);
	border-color: rgba(139, 92, 246, 0.8);
	transform: translateY(-5px);
	box-shadow:
		0 20px 40px rgba(139, 92, 246, 0.5),
		0 0 30px rgba(251, 191, 36, 0.3),
		inset 0 1px 0 rgba(255, 255, 255, 0.2);
	color: #a374f9;
}

@keyframes heroCTASlide {
	0% {
		opacity: 0;
		transform: translateY(20px);
	}
	100% {
		opacity: 1;
		transform: translateY(0);
	}
}

/* Enhanced Logo Container */
.enhanced-logo-container {
	position: relative;
	width: 420px;
	height: 420px;
	display: flex;
	align-items: center;
	justify-content: center;
}

.enhanced-burst {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
}

.hero-image {
	width: 330px;
	height: 330px;
	border-radius: 32px;
	box-shadow: var(--shadow-2), 0 0 80px rgba(139, 92, 246, 0.6);
	animation: enhancedHeroImageFloat 3s ease-in-out infinite;
	position: relative;
	z-index: 10;
}

@keyframes enhancedHeroImageFloat {
	0%, 100% {
		transform: translateY(0px) rotate(0deg) scale(1);
	}
	33% {
		transform: translateY(-8px) rotate(1deg) scale(1.02);
	}
	66% {
		transform: translateY(-4px) rotate(-1deg) scale(1.01);
	}
}

/* Enhanced Burst Rings */
.burst-rings {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	width: 100%;
	height: 100%;
	pointer-events: none;
}

.burst-ring {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	border: 3px solid;
	border-radius: 50%;
	opacity: 0;
}

.ring-1 {
	width: 240px;
	height: 240px;
	border-color: #8b5cf6;
	animation: enhancedBurstRing1 4s ease-out infinite;
	box-shadow: 0 0 25px rgba(139, 92, 246, 0.5);
}

.ring-2 {
	width: 330px;
	height: 330px;
	border-color: #fbbf24;
	animation: enhancedBurstRing2 4s ease-out infinite 1s;
	box-shadow: 0 0 30px rgba(251, 191, 36, 0.5);
}

.ring-3 {
	width: 420px;
	height: 420px;
	border-color: #06b6d4;
	animation: enhancedBurstRing3 4s ease-out infinite 2s;
	box-shadow: 0 0 35px rgba(6, 182, 212, 0.5);
}

.ring-4 {
	width: 510px;
	height: 510px;
	border-color: #ec4899;
	animation: enhancedBurstRing4 4s ease-out infinite 3s;
	box-shadow: 0 0 40px rgba(236, 72, 153, 0.5);
}

@keyframes enhancedBurstRing1 {
	0% {
		width: 75px;
		height: 75px;
		opacity: 1;
		transform: translate(-50%, -50%) rotate(0deg) scale(1);
		border-width: 6px;
	}
	50% {
		opacity: 0.8;
		transform: translate(-50%, -50%) rotate(180deg) scale(1.1);
		border-width: 4px;
	}
	100% {
		width: 300px;
		height: 300px;
		opacity: 0;
		transform: translate(-50%, -50%) rotate(360deg) scale(1.2);
		border-width: 1px;
	}
}

@keyframes enhancedBurstRing2 {
	0% {
		width: 75px;
		height: 75px;
		opacity: 1;
		transform: translate(-50%, -50%) rotate(0deg) scale(1);
		border-width: 6px;
	}
	40% {
		opacity: 0.9;
		transform: translate(-50%, -50%) rotate(-150deg) scale(1.05);
		border-width: 4px;
	}
	100% {
		width: 420px;
		height: 420px;
		opacity: 0;
		transform: translate(-50%, -50%) rotate(-300deg) scale(1.15);
		border-width: 1px;
	}
}

@keyframes enhancedBurstRing3 {
	0% {
		width: 75px;
		height: 75px;
		opacity: 1;
		transform: translate(-50%, -50%) rotate(0deg) scale(1);
		border-width: 6px;
	}
	30% {
		opacity: 1;
		transform: translate(-50%, -50%) rotate(120deg) scale(1.02);
		border-width: 5px;
	}
	100% {
		width: 540px;
		height: 540px;
		opacity: 0;
		transform: translate(-50%, -50%) rotate(240deg) scale(1.1);
		border-width: 1px;
	}
}

@keyframes enhancedBurstRing4 {
	0% {
		width: 75px;
		height: 75px;
		opacity: 1;
		transform: translate(-50%, -50%) rotate(0deg) scale(1);
		border-width: 6px;
	}
	25% {
		opacity: 1;
		transform: translate(-50%, -50%) rotate(-90deg) scale(1.01);
		border-width: 5px;
	}
	100% {
		width: 660px;
		height: 660px;
		opacity: 0;
		transform: translate(-50%, -50%) rotate(-180deg) scale(1.08);
		border-width: 1px;
	}
}

/* Enhanced Sparkles */
.enhanced-sparkles {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	pointer-events: none;
}

.enhanced-sparkles .sparkle {
	position: absolute;
	background: #fbbf24;
	border-radius: 50%;
	opacity: 0;
	box-shadow: 0 0 15px #fbbf24;
}

.enhanced-s1 {
	top: 10%;
	left: 10%;
	width: 12px;
	height: 12px;
	animation: enhancedSparkleAnim 3.5s ease-in-out infinite 0.3s;
}
.enhanced-s2 {
	top: 10%;
	right: 10%;
	width: 8px;
	height: 8px;
	animation: enhancedSparkleAnim 3.5s ease-in-out infinite 0.7s;
}
.enhanced-s3 {
	bottom: 10%;
	left: 10%;
	width: 14px;
	height: 14px;
	animation: enhancedSparkleAnim 3.5s ease-in-out infinite 1.1s;
}
.enhanced-s4 {
	bottom: 10%;
	right: 10%;
	width: 10px;
	height: 10px;
	animation: enhancedSparkleAnim 3.5s ease-in-out infinite 1.5s;
}
.enhanced-s5 {
	top: 50%;
	left: 3%;
	width: 7px;
	height: 7px;
	animation: enhancedSparkleAnim 3.5s ease-in-out infinite 1.9s;
}
.enhanced-s6 {
	top: 50%;
	right: 3%;
	width: 11px;
	height: 11px;
	animation: enhancedSparkleAnim 3.5s ease-in-out infinite 2.3s;
}
.enhanced-s7 {
	top: 3%;
	left: 50%;
	width: 9px;
	height: 9px;
	animation: enhancedSparkleAnim 3.5s ease-in-out infinite 2.7s;
}
.enhanced-s8 {
	bottom: 3%;
	left: 50%;
	width: 13px;
	height: 13px;
	animation: enhancedSparkleAnim 3.5s ease-in-out infinite 3.1s;
}

@keyframes enhancedSparkleAnim {
	0%, 100% {
		opacity: 0;
		transform: scale(0) rotate(0deg);
	}
	20% {
		opacity: 0.4;
		transform: scale(0.6) rotate(72deg);
	}
	50% {
		opacity: 1;
		transform: scale(1.3) rotate(180deg);
	}
	80% {
		opacity: 0.6;
		transform: scale(0.9) rotate(288deg);
	}
}

/* Responsive Design */
@media (max-width: 1024px) {
	.hero-inner {
		flex-direction: column;
		gap: var(--space-6);
		text-align: center;
	}
	
	.hero-copy {
		text-align: center;
		max-width: 100%;
	}
	
	.enhanced-logo-container {
		width: 350px;
		height: 350px;
	}
	
	.hero-image {
		width: 280px;
		height: 280px;
	}
	
	.ring-1 { width: 200px; height: 200px; }
	.ring-2 { width: 280px; height: 280px; }
	.ring-3 { width: 360px; height: 360px; }
	.ring-4 { width: 440px; height: 440px; }
	
	.hero-cta {
		flex-wrap: wrap;
		justify-content: center;
		gap: 0.8rem;
	}
	
	.hero-cta .btn {
		flex: 1;
		min-width: 140px;
		max-width: 180px;
		padding: 0.7rem 1.5rem;
		font-size: 0.95rem;
	}
	
	/* Keep Join Waitlist button wider even on tablet */
	.hero-cta .btn-primary {
		min-width: 160px;
		max-width: 200px;
	}
}

@media (max-width: 768px) {
	.enhanced-logo-container {
		width: 300px;
		height: 300px;
	}
	
	.hero-image {
		width: 240px;
		height: 240px;
	}
	
	.ring-1 { width: 170px; height: 170px; }
	.ring-2 { width: 240px; height: 240px; }
	.ring-3 { width: 310px; height: 310px; }
	.ring-4 { width: 380px; height: 380px; }
	
	.hero-cta {
		flex-direction: column;
		align-items: center;
		gap: 0.6rem;
	}
	
	.btn {
		width: 100%;
		max-width: 280px;
		padding: 0.8rem 1.8rem;
		font-size: 1rem;
	}
}

@media (max-width: 480px) {
	.hero {
		padding-top: var(--space-6);
		padding-bottom: var(--space-5);
	}
	
	.hero-title {
		font-size: clamp(2rem, 10vw, 3rem);
		margin-bottom: var(--space-3);
	}
	
	.hero-subtitle {
		font-size: 1rem;
		margin-top: var(--space-4);
		margin-bottom: var(--space-5);
	}
	
	.hero-cta {
		flex-direction: column;
		align-items: center;
		gap: 1rem;
	}
	
	.hero-cta .btn {
		width: 100%;
		max-width: 280px;
		padding: 0.7rem 1.5rem;
		font-size: 0.95rem;
	}
	
	.enhanced-logo-container {
		width: 240px;
		height: 240px;
	}
	
	.hero-image {
		width: 192px;
		height: 192px;
	}
	
	.ring-1 { width: 132px; height: 132px; }
	.ring-2 { width: 192px; height: 192px; }
	.ring-3 { width: 252px; height: 252px; }
	.ring-4 { width: 312px; height: 312px; }
	
	.enhanced-sparkles .sparkle {
		width: 6px !important;
		height: 6px !important;
	}
}

/* 8) Enhanced About Section */
.about { 
	position: relative;
}

.about::before {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	background: radial-gradient(circle at 30% 70%, rgba(251, 191, 36, 0.08) 0%, transparent 60%);
	z-index: -1;
}

.about img { 
	border-radius: var(--radius); 
	border: 1px solid rgba(139, 92, 246, 0.2);
	box-shadow: var(--shadow-1);
	transition: all 0.3s ease;
	animation: aboutImageSlide 1s ease-out both;
}

@keyframes aboutImageSlide {
	0% {
		opacity: 0;
		transform: translateX(30px) scale(0.95);
	}
	100% {
		opacity: 1;
		transform: translateX(0) scale(1);
	}
}

.about img:hover {
	transform: scale(1.02);
	box-shadow: var(--shadow-2);
	border-color: rgba(139, 92, 246, 0.4);
}

.about p + p { 
	margin-top: 1rem; 
}

/* 9) Enhanced Features Section */
.features {
	position: relative;
}

.features::before {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	background: radial-gradient(circle at 70% 30%, rgba(6, 182, 212, 0.08) 0%, transparent 60%);
	z-index: -1;
}

.feature-grid { 
	display: grid; 
	gap: var(--space-5); 
	grid-template-columns: 1fr; 
}

@media (min-width: 700px) { 
	.feature-grid { 
		grid-template-columns: repeat(2, 1fr); 
	} 
}

@media (min-width: 1000px) { 
	.feature-grid { 
		grid-template-columns: repeat(4, 1fr); 
	} 
}

.card { 
	background: linear-gradient(135deg, rgba(255,255,255,0.05), rgba(255,255,255,0.02)); 
	border: 1px solid rgba(139, 92, 246, 0.15); 
	border-radius: var(--radius); 
	padding: var(--space-5); 
	box-shadow: var(--shadow-1); 
	height: 100%; 
	transition: all 0.3s ease;
	position: relative;
	overflow: hidden;
	backdrop-filter: blur(10px);
}

.card::before {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: 2px;
	background: linear-gradient(90deg, var(--color-primary), var(--color-accent));
	transform: scaleX(0);
	transition: transform 0.3s ease;
}

.card:hover::before {
	transform: scaleX(1);
}

.card:hover { 
	transform: translateY(-8px);
	border-color: rgba(139, 92, 246, 0.3);
	box-shadow: var(--shadow-2), 0 0 30px rgba(139, 92, 246, 0.2);
}

.card-icon { 
	font-size: 2rem; 
	margin-bottom: 1rem; 
	display: inline-block;
	animation: cardIconFloat 3s ease-in-out infinite;
}

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

.card-title { 
	margin-bottom: .5rem; 
	color: var(--color-text);
}

.card-body { 
	color: var(--color-muted); 
	line-height: 1.6;
}

/* 10) Enhanced Signup Section */
.signup {
	background: radial-gradient(800px 400px at 20% 30%, rgba(139, 92, 246, 0.25), transparent 60%),
		radial-gradient(700px 380px at 85% 20%, rgba(251, 191, 36, 0.2), transparent 60%),
		radial-gradient(600px 300px at 50% 70%, rgba(6, 182, 212, 0.15), transparent 70%);
	position: relative;
	border: 1px solid rgba(139, 92, 246, 0.3);
	border-radius: var(--radius);
	padding: var(--space-6);
	box-shadow: 0 20px 50px rgba(0, 0, 0, 0.3), 0 0 0 1px rgba(139, 92, 246, 0.2);
	backdrop-filter: blur(15px);
	margin: var(--space-7) 0;
}

.signup::before {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	background: linear-gradient(135deg, rgba(139, 92, 246, 0.1) 0%, rgba(251, 191, 36, 0.1) 100%);
	z-index: -1;
	border-radius: var(--radius);
}

.signup-inner {
	display: grid;
	gap: var(--space-5);
	align-items: center;
	max-width: 1000px;
	margin: 0 auto;
}

@media (min-width: 820px) {
	.signup-inner {
		grid-template-columns: 1fr 1.5fr;
	}
}

.signup-form {
	display: grid;
	gap: 0.4rem;
	grid-template-columns: 1fr;
	max-width: 650px;
	width: 100%;
	margin: 0 auto;
}

@media (min-width: 640px) {
	.signup-form {
		grid-template-columns: 1fr 1fr auto;
	}
}

.signup-form input {
	background: rgba(26, 26, 46, 0.8);
	color: var(--color-text);
	border: 1px solid rgba(139, 92, 246, 0.3);
	border-radius: var(--radius-sm);
	padding: 1.2rem 1.5rem;
	outline: none;
	transition: all 0.3s ease;
	backdrop-filter: blur(10px);
	font-size: 1rem;
	width: 100%;
}

.signup-form input:focus {
	border-color: var(--color-primary);
	box-shadow: 0 0 0 4px rgba(139, 92, 246, 0.3), 0 0 20px rgba(139, 92, 246, 0.2);
	transform: translateY(-2px);
}

.signup-form input::placeholder {
	color: var(--color-muted);
}

.form-note {
	font-size: .9rem;
	color: var(--color-muted);
	grid-column: 1 / -1;
	text-align: center;
	margin-top: 0.5rem;
	margin-bottom: 0;
}

.form-status {
	grid-column: 1 / -1;
	color: var(--color-accent);
	font-weight: 600;
	text-align: center;
	min-height: 1.5rem;
	transition: all 0.3s ease;
}

/* Enhanced button styles for signup form */
.signup-form .btn-primary {
	height: fit-content;
	align-self: center;
	padding: 1.2rem 1.5rem;
	font-weight: 700;
	letter-spacing: 0.5px;
	box-shadow: 0 8px 25px rgba(139, 92, 246, 0.4);
	position: relative;
	overflow: hidden;
	z-index: 1;
}

.signup-form .btn-primary::before {
	content: '';
	position: absolute;
	top: 0;
	left: -100%;
	width: 100%;
	height: 100%;
	background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.3), rgba(139, 92, 246, 0.3), transparent);
	transition: left 0.6s cubic-bezier(0.34, 1.56, 0.64, 1);
	z-index: -1;
}

.signup-form .btn-primary:hover {
	filter: brightness(1.15);
	transform: translateY(-4px);
	box-shadow: 0 15px 40px rgba(139, 92, 246, 0.7), 0 0 30px rgba(251, 191, 36, 0.4);
}

.signup-form .btn-primary:hover::before {
	left: 100%;
}

.signup-form .btn-primary:focus {
	outline: 2px dashed var(--color-accent);
	outline-offset: 2px;
	box-shadow: 0 0 0 3px rgba(139, 92, 246, 0.5), 0 15px 40px rgba(139, 92, 246, 0.7), 0 0 30px rgba(251, 191, 36, 0.4);
}

.signup-form .btn-primary:active {
	transform: translateY(1px);
	transition: all 0.2s ease;
	box-shadow: 0 4px 15px rgba(139, 92, 246, 0.5), 0 0 20px rgba(251, 191, 36, 0.3);
}

/* Animation for form elements */
.signup-inner > * {
	animation: fadeInUp 0.6s ease-out both;
}

.signup-inner > *:nth-child(2) {
	animation-delay: 0.2s;
}

@keyframes fadeInUp {
	from {
		opacity: 0;
		transform: translateY(20px);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}

/* 11) Enhanced Links Section */
.links {
	position: relative;
}

.links::before {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	background: radial-gradient(circle at 50% 50%, rgba(236, 72, 153, 0.08) 0%, transparent 60%);
	z-index: -1;
}

.link-row { 
	display: flex; 
	gap: 1rem; 
	justify-content: center; 
	flex-wrap: wrap;
}

.link-icon {
	width: 56px;
	height: 56px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	color: var(--color-text);
	border: 1px solid rgba(139, 92, 246, 0.2);
	border-radius: var(--radius-sm);
	background: rgba(139, 92, 246, 0.05);
	transition: all 0.4s cubic-bezier(0.34, 1.56, 0.64, 1);
	backdrop-filter: blur(10px);
	position: relative;
	overflow: hidden;
	z-index: 1;
	will-change: transform, box-shadow;
}

.link-icon::before {
	content: '';
	position: absolute;
	top: 0;
	left: -100%;
	width: 100%;
	height: 100%;
	background: linear-gradient(90deg, transparent, rgba(139, 92, 246, 0.3), rgba(251, 191, 36, 0.3), transparent);
	transition: left 0.6s cubic-bezier(0.34, 1.56, 0.64, 1);
	z-index: -1;
}

.link-icon:hover::before {
	left: 100%;
}

.link-icon:hover {
	background: rgba(139, 92, 246, 0.2);
	border-color: var(--color-primary);
	transform: translateY(-5px) scale(1.08);
	box-shadow: 0 10px 30px rgba(139, 92, 246, 0.4), 0 0 25px rgba(251, 191, 36, 0.3);
	color: var(--color-accent);
}

.link-icon:focus {
	outline: 2px dashed var(--color-accent);
	outline-offset: 2px;
	box-shadow: 0 0 0 3px rgba(139, 92, 246, 0.5), 0 10px 30px rgba(139, 92, 246, 0.4), 0 0 25px rgba(251, 191, 36, 0.3);
}

.link-icon:active {
	transform: translateY(0) scale(1.02);
	transition: all 0.2s ease;
	box-shadow: 0 4px 15px rgba(139, 92, 246, 0.3), 0 0 15px rgba(251, 191, 36, 0.2);
}

/* 12) Enhanced Footer */
.site-footer { 
	padding: var(--space-6) 0; 
	border-top: 1px solid rgba(139, 92, 246, 0.2); 
	margin-top: var(--space-7); 
	background: rgba(26, 26, 46, 0.5);
	backdrop-filter: blur(20px);
}

.footer-inner { 
	display: flex; 
	align-items: center; 
	justify-content: space-between; 
	gap: 1rem; 
	flex-wrap: wrap; 
}

.footer-nav { 
	display: flex; 
	gap: .5rem; 
	list-style: none; 
	padding: 0; 
}

.footer-nav a {
	color: var(--color-muted);
	text-decoration: none;
	padding: .5rem .75rem;
	border-radius: var(--radius-sm);
	transition: all 0.4s cubic-bezier(0.34, 1.56, 0.64, 1);
	position: relative;
	overflow: hidden;
	z-index: 1;
	will-change: transform, box-shadow;
}

.footer-nav a:hover {
	color: var(--color-accent);
	transform: translateY(-2px);
	background: rgba(139, 92, 246, 0.1);
	filter: brightness(1.12);
}

.footer-nav a:focus {
	outline: 2px dashed var(--color-accent);
	outline-offset: 2px;
	background: rgba(139, 92, 246, 0.2);
}

.footer-nav a:active {
	transform: translateY(0);
	transition: all 0.2s ease;
	box-shadow: 0 2px 8px rgba(139, 92, 246, 0.2), 0 0 10px rgba(251, 191, 36, 0.1);
}

/* 13) Scroll animations */
.fade-in {
	opacity: 0;
	transform: translateY(30px);
	transition: all 0.8s ease;
}

.fade-in.visible {
	opacity: 1;
	transform: translateY(0);
}

.slide-in-left {
	opacity: 0;
	transform: translateX(-50px);
	transition: all 0.8s ease;
}

.slide-in-left.visible {
	opacity: 1;
	transform: translateX(0);
}

.slide-in-right {
	opacity: 0;
	transform: translateX(50px);
	transition: all 0.8s ease;
}

.slide-in-right.visible {
	opacity: 1;
	transform: translateX(0);
}

/* Additional scroll animations */
.slide-in-top {
	opacity: 0;
	transform: translateY(-50px);
	transition: all 0.8s ease;
}

.slide-in-top.visible {
	opacity: 1;
	transform: translateY(0);
}

.slide-in-bottom {
	opacity: 0;
	transform: translateY(50px);
	transition: all 0.8s ease;
}

.slide-in-bottom.visible {
	opacity: 1;
	transform: translateY(0);
}

.scale-in {
	opacity: 0;
	transform: scale(0.8);
	transition: all 0.8s ease;
}

.scale-in.visible {
	opacity: 1;
	transform: scale(1);
}

.rotate-in {
	opacity: 0;
	transform: rotateY(90deg);
	transition: all 0.8s ease;
}

.rotate-in.visible {
	opacity: 1;
	transform: rotateY(0);
}

/* Staggered animations for child elements */
.staggered-children > * {
	opacity: 0;
	transform: translateY(20px);
	transition: all 0.6s ease;
}

.staggered-children > .visible {
	opacity: 1;
	transform: translateY(0);
}

/* Animation delays for staggered elements */
.staggered-children > *:nth-child(1) { transition-delay: 0.1s; }
.staggered-children > *:nth-child(2) { transition-delay: 0.2s; }
.staggered-children > *:nth-child(3) { transition-delay: 0.3s; }
.staggered-children > *:nth-child(4) { transition-delay: 0.4s; }
.staggered-children > *:nth-child(5) { transition-delay: 0.5s; }
.staggered-children > *:nth-child(6) { transition-delay: 0.6s; }
.staggered-children > *:nth-child(7) { transition-delay: 0.7s; }
.staggered-children > *:nth-child(8) { transition-delay: 0.8s; }
.staggered-children > *:nth-child(9) { transition-delay: 0.9s; }
.staggered-children > *:nth-child(10) { transition-delay: 1s; }

/* 14) Utilities */
.text-center { text-align: center; }

/* 15) Loading animation */
.loading {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: var(--color-bg);
	display: flex;
	align-items: center;
	justify-content: center;
	z-index: 9999;
	transition: opacity 0.5s ease;
}

.loading.hidden {
	opacity: 0;
	pointer-events: none;
}

.loading-spinner {
	width: 50px;
	height: 50px;
	border: 3px solid rgba(139, 92, 246, 0.3);
	border-top: 3px solid var(--color-primary);
	border-radius: 50%;
	animation: spin 1s linear infinite;
}

@keyframes spin {
	0% { transform: rotate(0deg); }
	100% { transform: rotate(360deg); }
}





/* 10) YouTube Video Section */
.video {
	padding-bottom: var(--space-8);
}

.video-wrapper {
	position: relative;
	padding-bottom: 56.25%; /* 16:9 aspect ratio */
	height: 0;
	overflow: hidden;
	border-radius: var(--radius);
	border: 1px solid rgba(139, 92, 246, 0.2);
	box-shadow: var(--shadow-2);
}

.video-wrapper iframe {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
}

/* 10) YouTube Video Section */
.video {
	padding-bottom: var(--space-8);
}

.video-wrapper {
	position: relative;
	padding-bottom: 56.25%; /* 16:9 aspect ratio */
	height: 0;
	overflow: hidden;
	border-radius: var(--radius);
	border: 1px solid rgba(139, 92, 246, 0.2);
	box-shadow: var(--shadow-2);
}

.video-wrapper iframe {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
}


/* 9) Celebration Overlay */
.celebration-overlay {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: rgba(10, 10, 15, 0.9); /* Match --color-bg with 90% opacity */
	backdrop-filter: blur(10px);
	display: flex;
	align-items: center;
	justify-content: center;
	z-index: 10000;
	opacity: 0;
	pointer-events: none;
	transition: opacity 0.3s ease;
}

.celebration-overlay.active {
	opacity: 1;
	pointer-events: all;
}

.celebration-content {
	position: relative;
	width: 90%;
	max-width: 800px;
	max-height: 90vh;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	padding: 2rem;
	background: rgba(26, 26, 46, 0.9); /* Match --color-surface with 90% opacity */
	border-radius: var(--radius);
	box-shadow: var(--shadow-2);
	text-align: center;
	transform: scale(0.9);
	transition: transform 0.3s ease;
}

.celebration-overlay.active .celebration-content {
	transform: scale(1);
}

.celebration-content video {
	width: 100%;
	height: auto;
	max-height: 60vh;
	border-radius: var(--radius-sm);
	object-fit: cover;
	margin-bottom: 1.5rem;
}

.celebration-text {
	margin-bottom: 1.5rem;
}

.celebration-text h2 {
	font-size: 2.5rem;
	margin-bottom: 0.5rem;
	animation: textPopIn 0.5s ease-out 0.3s both;
}

.celebration-text p {
	font-size: 1.25rem;
	color: var(--color-muted);
	animation: textPopIn 0.5s ease-out 0.5s both;
}

@keyframes textPopIn {
	0% {
		opacity: 0;
		transform: translateY(20px);
	}
	100% {
		opacity: 1;
		transform: translateY(0);
	}
}

.celebration-close {
	position: absolute;
	top: 1rem;
	right: 1rem;
	background: none;
	border: none;
	color: var(--color-text);
	font-size: 2rem;
	cursor: pointer;
	width: 40px;
	height: 40px;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	transition: background-color 0.2s ease;
}

.celebration-close:hover,
.celebration-close:focus {
	background: rgba(255, 255, 255, 0.1);
	outline: none;
}

/* Blur effect for page content when overlay is active */
.celebration-overlay.active ~ *:not(.celebration-overlay) {
	filter: blur(5px);
}

/* Responsive adjustments */
@media (max-width: 768px) {
	.celebration-content {
		width: 95%;
		padding: 1.5rem;
	}
	
	.celebration-content video {
		max-height: 50vh;
	}
	
	.celebration-text h2 {
		font-size: 2rem;
	}
	
	.celebration-text p {
		font-size: 1.1rem;
	}
}
