/* ==========================================================================
   GANITHALOKA - World of Mathematics
   Global Theme & Core Design System (No Frameworks)
   ========================================================================== */

:root {
	/* Color Palette: Cyber-Arcane Gamer Theme */
	--bg-dark: #090d16;
	--bg-surface: #121826;
	--bg-surface-elevated: #1a2337;
	--bg-surface-hover: #222e47;
	--border-color: #26334d;
	--border-glow: rgba(99, 102, 241, 0.35);

	/* Brand Accents */
	--primary: #6366f1; /* Arcane Indigo */
	--primary-hover: #4f46e5;
	--primary-glow: rgba(99, 102, 241, 0.4);
	--success: #10b981; /* Mana Green */
	--success-glow: rgba(16, 185, 129, 0.4);
	--accent-gold: #f59e0b; /* Boss / Legendary Gold */
	--accent-cyan: #06b6d4; /* Energy Cyan */
	--danger: #ef4444; /* HP / Hazard Red */
	--text-main: #f8fafc;
	--text-muted: #94a3b8;
	--text-dim: #64748b;

	/* Typography */
	--font-sans:
		system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen,
		Ubuntu, Cantarell, sans-serif;
	--font-mono: 'Consolas', 'Courier New', monospace;

	/* Spacing & Radius */
	--radius-sm: 6px;
	--radius-md: 12px;
	--radius-lg: 18px;
	--radius-full: 9999px;
	--shadow-sm: 0 2px 4px rgba(0, 0, 0, 0.3);
	--shadow-md: 0 8px 24px rgba(0, 0, 0, 0.45);
	--shadow-glow: 0 0 25px rgba(99, 102, 241, 0.25);

	--max-width: 1200px;
}

/* Reset & Box Sizing */
*,
*::before,
*::after {
	box-sizing: border-box;
	margin: 0;
	padding: 0;
}

html {
	font-size: 16px;
	scroll-behavior: smooth;
	overflow-x: clip;
	width: 100%;
	max-width: 100%;
}

body {
	font-family: var(--font-sans);
	background-color: var(--bg-dark);
	color: var(--text-main);
	line-height: 1.6;
	min-height: 100vh;
	display: flex;
	flex-direction: column;
	overflow-x: clip;
	width: 100%;
	max-width: 100%;
	position: relative;
	background-image:
		radial-gradient(
			circle at 15% 15%,
			rgba(99, 102, 241, 0.08) 0%,
			transparent 40%
		),
		radial-gradient(
			circle at 85% 85%,
			rgba(16, 185, 129, 0.06) 0%,
			transparent 45%
		);
}

a {
	color: var(--accent-cyan);
	text-decoration: none;
	transition: color 0.2s ease;
}

a:hover {
	color: var(--text-main);
}

/* Accessibility Focus States & Utilities */
:focus-visible {
	outline: 2px solid var(--accent-cyan) !important;
	outline-offset: 3px !important;
}

.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;
}

img {
	max-width: 100%;
	height: auto;
	display: block;
}

/* Container */
.container {
	width: 100%;
	max-width: var(--max-width);
	margin-left: auto;
	margin-right: auto;
	padding-left: 1.75rem;
	padding-right: 1.75rem;
	padding-bottom: 1.5rem;
}

/* ==========================================================================
   TOP NAVIGATION & PLAYER HUD
   ========================================================================== */
.site-header {
	background-color: rgba(18, 24, 38, 0.92);
	backdrop-filter: blur(12px);
	border-bottom: 1px solid var(--border-color);
	position: sticky;
	top: 0;
	z-index: 1000;
}

.nav-wrapper {
	display: grid;
	grid-template-columns: 1fr auto 1fr;
	grid-template-areas:
		'logo  logo logo'
		'audio nav  hud ';
	align-items: center;
	padding: 1rem 0 0.75rem;
	row-gap: 0.85rem;
}

.logo-link {
	grid-area: logo;
	display: flex;
	justify-content: center;
	align-items: center;
	text-decoration: none;
	margin: 0 auto;
}

.site-logo {
	height: 72px;
	padding-top: 0;
	width: auto;
	max-width: 90vw;
	display: block;
	object-fit: contain;
	transition:
		height 0.3s cubic-bezier(0.4, 0, 0.2, 1),
		max-height 0.3s cubic-bezier(0.4, 0, 0.2, 1),
		transform var(--transition-fast),
		filter var(--transition-fast);
}

.logo-link:hover .site-logo {
	transform: scale(1.02);
	filter: drop-shadow(0 0 12px rgba(56, 189, 248, 0.45));
}

/* Scrolled Compact Header Styles (Desktop) */
.site-header {
	transition:
		background-color 0.3s ease,
		border-color 0.3s ease,
		box-shadow 0.3s ease;
}

.nav-wrapper {
	transition:
		padding 0.3s cubic-bezier(0.4, 0, 0.2, 1),
		row-gap 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.logo-link {
	transition: padding 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.site-header.scrolled {
	background-color: rgba(10, 14, 24, 0.97);
	box-shadow: 0 4px 20px rgba(0, 0, 0, 0.6);
	border-bottom-color: rgba(99, 102, 241, 0.25);
}

.site-header.scrolled .nav-wrapper {
	padding: 0.45rem 0 0.4rem;
	row-gap: 0.35rem;
}

.site-header.scrolled .site-logo {
	height: 42px !important;
	max-height: 42px !important;
}

.site-header.scrolled .nav-links {
	gap: 0.85rem;
}

.site-header.scrolled .nav-link {
	font-size: 0.84rem;
	padding: 0.25rem 0.48rem;
}

.site-header.scrolled .player-hud {
	padding: 0.22rem 0.65rem;
	gap: 0.5rem;
}

.site-header.scrolled .player-level-badge {
	font-size: 0.7rem;
	padding: 0.1rem 0.42rem;
}

.site-header.scrolled .player-xp-counter {
	font-size: 0.78rem;
}

.site-header.scrolled .audio-toggle-btn {
	width: 32px;
	height: 32px;
	font-size: 0.95rem;
}

.site-header nav {
	grid-area: nav;
	display: flex;
	justify-content: center;
}

.nav-links {
	display: flex;
	list-style: none;
	align-items: center;
	gap: 1.25rem;
	transition: gap 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.nav-link {
	color: var(--text-muted);
	font-weight: 600;
	font-size: 0.95rem;
	padding: 0.4rem 0.6rem;
	border-radius: var(--radius-sm);
	transition:
		font-size 0.3s cubic-bezier(0.4, 0, 0.2, 1),
		padding 0.3s cubic-bezier(0.4, 0, 0.2, 1),
		color 0.2s ease,
		background 0.2s ease;
}

.nav-link:hover,
.nav-link.active {
	color: var(--text-main);
	background: var(--bg-surface-elevated);
}

/* Header Player HUD */
.player-hud {
	grid-area: hud;
	justify-self: end;
	display: flex;
	align-items: center;
	gap: 0.75rem;
	background: var(--bg-surface-elevated);
	padding: 0.35rem 0.85rem;
	border-radius: var(--radius-full);
	border: 1px solid var(--border-color);
	transition:
		padding 0.3s cubic-bezier(0.4, 0, 0.2, 1),
		gap 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.player-hud.hud-hidden {
	display: none !important;
}

.player-level-badge {
	background: var(--accent-gold);
	color: #000;
	font-weight: 800;
	font-size: 0.75rem;
	padding: 0.15rem 0.5rem;
	border-radius: var(--radius-full);
	display: inline-flex;
	align-items: center;
	gap: 0.25rem;
	transition:
		font-size 0.3s cubic-bezier(0.4, 0, 0.2, 1),
		padding 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.player-xp-counter {
	font-size: 0.85rem;
	font-weight: 700;
	color: var(--text-main);
	font-family: var(--font-mono);
	transition: font-size 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.audio-toggle-btn {
	grid-area: audio;
	justify-self: start;
	background: var(--bg-surface-elevated);
	border: 1px solid var(--border-color);
	color: var(--text-muted);
	font-size: 1.15rem;
	width: 38px;
	height: 38px;
	border-radius: 50%;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	transition:
		width 0.3s cubic-bezier(0.4, 0, 0.2, 1),
		height 0.3s cubic-bezier(0.4, 0, 0.2, 1),
		font-size 0.3s cubic-bezier(0.4, 0, 0.2, 1),
		background 0.2s ease,
		border-color 0.2s ease,
		color 0.2s ease,
		transform 0.2s ease;
}

.audio-toggle-btn:hover {
	background: var(--bg-surface-hover);
	color: var(--text-main);
	border-color: var(--primary);
	transform: scale(1.08);
}

/* Mobile Nav Toggle */
.mobile-nav-toggle {
	display: none;
	background: transparent;
	border: none;
	color: var(--text-main);
	font-size: 1.5rem;
	cursor: pointer;
}

/* ==========================================================================
   BUTTONS & INTERACTIVE CONTROLS
   ========================================================================== */
.btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	font-family: var(--font-sans);
	font-weight: 700;
	font-size: 0.95rem;
	padding: 0.7rem 1.4rem;
	border-radius: var(--radius-md);
	border: 1px solid transparent;
	cursor: pointer;
	transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
	text-decoration: none;
	user-select: none;
}

.btn:active {
	transform: scale(0.97);
}

.btn-primary {
	background: linear-gradient(135deg, var(--primary), var(--primary-hover));
	color: #fff;
	box-shadow: 0 4px 14px var(--primary-glow);
}

.btn-primary:hover {
	filter: brightness(1.15);
	box-shadow: 0 6px 20px var(--primary-glow);
	color: #fff;
}

.btn-success {
	background: linear-gradient(135deg, #059669, var(--success));
	color: #fff;
	box-shadow: 0 4px 14px var(--success-glow);
}

.btn-success:hover {
	filter: brightness(1.15);
	color: #fff;
}

.btn-warning {
	background: linear-gradient(135deg, #d97706, #f59e0b);
	color: #111827;
	font-weight: 800;
	box-shadow: 0 4px 14px rgba(245, 158, 11, 0.4);
}

.btn-warning:hover {
	filter: brightness(1.15);
	box-shadow: 0 6px 20px rgba(245, 158, 11, 0.6);
	color: #000;
}

.btn-purple,
.btn-alchemy {
	background: linear-gradient(135deg, #7c3aed, #a855f7);
	color: #fff;
	font-weight: 800;
	box-shadow: 0 4px 14px rgba(168, 85, 247, 0.4);
}

.btn-purple:hover,
.btn-alchemy:hover {
	filter: brightness(1.15);
	box-shadow: 0 6px 20px rgba(168, 85, 247, 0.6);
	color: #fff;
}

.btn-cyan {
	background: linear-gradient(135deg, #0284c7, #38bdf8);
	color: #04101d;
	font-weight: 800;
	box-shadow: 0 4px 14px rgba(56, 189, 248, 0.4);
}

.btn-cyan:hover {
	filter: brightness(1.15);
	box-shadow: 0 6px 20px rgba(56, 189, 248, 0.6);
	color: #000;
}

.btn-outline {
	background: transparent;
	border-color: var(--border-color);
	color: var(--text-main);
}

.btn-outline:hover {
	background: var(--bg-surface-elevated);
	border-color: var(--primary);
}

.btn-lg {
	padding: 0.9rem 1.8rem;
	font-size: 1.05rem;
}

/* Reusable Animated Metallic Game Button */
.btn-metallic {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 2.5px;
	border-radius: var(--radius-full);
	background: transparent;
	overflow: hidden;
	text-decoration: none;
	cursor: pointer;
	box-shadow:
		0 0 22px rgba(245, 158, 11, 0.35),
		0 8px 24px rgba(0, 0, 0, 0.7);
	transition:
		transform 0.25s cubic-bezier(0.175, 0.885, 0.32, 1.275),
		box-shadow 0.3s ease;
}

.btn-metallic::before {
	content: '';
	position: absolute;
	top: -150%;
	left: -150%;
	width: 400%;
	height: 400%;
	background: conic-gradient(
		from 0deg,
		#f59e0b 0deg,
		#fffbeb 35deg,
		#d97706 70deg,
		#78350f 105deg,
		#fef08a 140deg,
		#ffffff 175deg,
		#38bdf8 210deg,
		#0284c7 245deg,
		#fef08a 280deg,
		#f59e0b 315deg,
		#fffbeb 340deg,
		#f59e0b 360deg
	);
	animation: metallicBorderSpinGlobal 3.5s linear infinite;
	z-index: 1;
}

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

.btn-metallic-inner {
	position: relative;
	z-index: 2;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.6rem;
	padding: 0.7rem 1.6rem;
	border-radius: var(--radius-full);
	background: linear-gradient(
		180deg,
		#1c263e 0%,
		#0d1424 47%,
		#070b14 51%,
		#0f172b 100%
	);
	color: #fff;
	font-weight: 800;
	box-shadow:
		inset 0 1.5px 1px rgba(255, 255, 255, 0.4),
		inset 0 -2px 4px rgba(0, 0, 0, 0.85);
	transition: background 0.25s ease;
}

.btn-metallic:hover {
	transform: translateY(-3px) scale(1.03);
	box-shadow:
		0 0 30px rgba(245, 158, 11, 0.6),
		0 12px 30px rgba(0, 0, 0, 0.9);
}

.btn-metallic:hover::before {
	animation-duration: 1.8s;
}

.btn-metallic:hover .btn-metallic-inner {
	background: linear-gradient(
		180deg,
		#242f4c 0%,
		#131b30 46%,
		#0a0e1a 50%,
		#16213b 100%
	);
}

.btn-metallic:active {
	transform: translateY(2px) scale(0.98);
}

/* ==========================================================================
   HERO & REALM PORTALS (MAIN HUB)
   ========================================================================== */
.hero-section-syllabus {
	text-align: center;
	padding: 1.5rem 0 0.5rem;
}

.hero-section {
	padding: 2.25rem 0 1.25rem;
	text-align: center;
}

.hero-tagline {
	display: inline-flex;
	align-items: center;
	gap: 0.65rem;
	background: linear-gradient(
		135deg,
		rgba(30, 58, 138, 0.4) 0%,
		rgba(15, 23, 42, 0.95) 100%
	);
	border: 1.5px solid rgba(59, 130, 246, 0.55);
	box-shadow:
		0 4px 20px rgba(59, 130, 246, 0.2),
		inset 0 1px 1px rgba(255, 255, 255, 0.12);
	color: #e2e8f0;
	padding: 0.4rem 1.1rem 0.4rem 0.8rem;
	border-radius: var(--radius-full);
	font-size: 0.82rem;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: 0.65px;
	text-decoration: none;
	margin-bottom: 0.85rem;
	cursor: pointer;
	transition:
		transform 0.25s cubic-bezier(0.4, 0, 0.2, 1),
		border-color 0.25s ease,
		box-shadow 0.25s ease;
}

.hero-tagline:hover {
	transform: translateY(-2px);
	border-color: #60a5fa;
	box-shadow:
		0 6px 25px rgba(59, 130, 246, 0.45),
		inset 0 1px 2px rgba(255, 255, 255, 0.2);
}

.hero-tagline .pulse-indicator {
	width: 8px;
	height: 8px;
	background-color: #60a5fa;
	border-radius: 50%;
	box-shadow: 0 0 8px #3b82f6;
	animation: livePulse 2.2s infinite ease-in-out;
}

@keyframes livePulse {
	0% {
		transform: scale(0.9);
		box-shadow: 0 0 4px #3b82f6;
		opacity: 0.8;
	}
	50% {
		transform: scale(1.35);
		box-shadow: 0 0 12px #60a5fa;
		opacity: 1;
	}
	100% {
		transform: scale(0.9);
		box-shadow: 0 0 4px #3b82f6;
		opacity: 0.8;
	}
}

.hero-tagline .tag-icon {
	font-size: 0.95rem;
	line-height: 1;
}

.hero-tagline .tag-text {
	background: linear-gradient(135deg, #ffffff 0%, #cbd5e1 100%);
	-webkit-background-clip: text;
	-webkit-text-fill-color: transparent;
	font-weight: 800;
}

.hero-tagline .tag-arrow {
	font-size: 0.8rem;
	color: #60a5fa;
	transition: transform 0.2s ease;
}

.hero-tagline:hover .tag-arrow {
	transform: translateX(3px);
}

.hero-title {
	font-size: clamp(2.2rem, 5vw, 3.6rem);
	font-weight: 900;
	line-height: 1.15;
	letter-spacing: -1px;
	margin-bottom: 0.75rem;
}

.hero-title .gradient-text {
	background: linear-gradient(135deg, #818cf8 0%, #38bdf8 50%, #34d399 100%);
	-webkit-background-clip: text;
	-webkit-text-fill-color: transparent;
}

.hero-subtitle {
	font-size: 1.15rem;
	color: #cbd5e1;
	max-width: 680px;
	margin: 0 auto 1.35rem;
	line-height: 1.6;
}

/* ==========================================================================
   MATHEMATICAL WISDOM QUOTES WIDGET
   ========================================================================== */
.home-learning-section {
	margin: 3rem 0;
}

.home-learning-heading {
	max-width: 74ch;
	margin-bottom: 1.5rem;
}

.home-learning-heading h2 {
	font-size: clamp(1.5rem, 3vw, 2rem);
	line-height: 1.3;
	margin: 0.6rem 0 0.8rem;
}

.home-learning-heading p,
.home-learning-card p,
.home-session-notes p {
	color: var(--text-muted);
	line-height: 1.75;
}

.home-paths-grid,
.home-topics-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 1.25rem;
}

.home-learning-card {
	min-width: 0;
	padding: 1.5rem;
	background: var(--bg-surface);
	border: 1px solid var(--border-color);
	border-radius: var(--radius-md);
}

.home-learning-card h3,
.home-session-grid h3 {
	font-size: 1.12rem;
	line-height: 1.45;
	margin-bottom: 0.8rem;
}

.home-learning-card p + p {
	margin-top: 1rem;
}

.home-learning-card ol {
	padding-left: 1.4rem;
	margin-top: 1rem;
	line-height: 1.65;
}

.home-learning-card li + li {
	margin-top: 0.6rem;
}

.home-learning-section a {
	text-decoration: underline;
	text-underline-offset: 0.2em;
	overflow-wrap: anywhere;
}

.home-learning-section a:focus-visible {
	outline: 2px solid var(--accent-cyan);
	outline-offset: 4px;
}

.home-session-notes {
	background: var(--bg-surface);
	border: 1px solid var(--border-color);
	border-radius: var(--radius-lg);
	padding: clamp(1.25rem, 4vw, 2.5rem);
}

.home-session-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 2rem;
}

.home-session-footer {
	margin-top: 1.5rem;
	padding-top: 1.25rem;
	border-top: 1px solid var(--border-color);
}

#approach {
	scroll-margin-top: 6rem;
}

@media (max-width: 1000px) {
	.home-topics-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 760px) {
	.home-paths-grid,
	.home-topics-grid,
	.home-session-grid {
		grid-template-columns: minmax(0, 1fr);
	}
}

.math-quote-section {
	margin: 1.5rem auto;
	max-width: 900px;
	width: 100%;
}

.math-quote-card {
	background: rgba(15, 23, 42, 0.65);
	border: 1px solid rgba(255, 255, 255, 0.08);
	border-left: 3px solid #f59e0b;
	border-radius: 14px;
	padding: 1.25rem 1.65rem;
	box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2);
	position: relative;
	transition: border-color 0.3s ease;
}

.math-quote-card:hover {
	border-color: rgba(245, 158, 11, 0.35);
}

.math-quote-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: 0.85rem;
}

.math-quote-kicker {
	font-size: 0.74rem;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color: var(--accent-gold, #fbbf24);
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
}

.math-quote-body {
	display: flex;
	align-items: center;
	gap: 1.35rem;
}

.quote-avatar {
	width: 68px;
	height: 68px;
	border-radius: 50%;
	object-fit: cover;
	border: 2px solid rgba(245, 158, 11, 0.45);
	box-shadow: 0 4px 14px rgba(0, 0, 0, 0.35);
	flex-shrink: 0;
	background: #1e293b;
	transition:
		opacity 0.25s ease,
		transform 0.25s ease;
}

.quote-content-col {
	display: flex;
	flex-direction: column;
	gap: 0.4rem;
	flex: 1;
}

.quote-shuffle-btn {
	background: rgba(255, 255, 255, 0.06);
	border: 1px solid rgba(255, 255, 255, 0.15);
	color: #cbd5e1;
	font-size: 0.82rem;
	font-weight: 600;
	border-radius: 20px;
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
	padding: 0.3rem 0.75rem;
	cursor: pointer;
	transition: all 0.2s ease;
	font-family: inherit;
}

.quote-shuffle-btn:hover {
	color: #ffffff;
	border-color: rgba(245, 158, 11, 0.5);
	background: rgba(245, 158, 11, 0.12);
}

.quote-refresh-icon {
	font-size: 1rem;
	line-height: 1;
}

.math-quote-text {
	font-size: 1.05rem;
	line-height: 1.55;
	color: #f1f5f9;
	font-style: normal;
	margin: 0;
	transition:
		opacity 0.25s ease,
		transform 0.25s ease;
}

.math-quote-author {
	font-size: 0.88rem;
	font-weight: 600;
	color: var(--accent-gold);
	transition: opacity 0.25s ease;
}

.quote-author-link {
	color: var(--accent-gold);
	text-decoration: none;
	border-bottom: 1px dotted var(--accent-gold);
}

.quote-author-role {
	opacity: 0.85;
	font-weight: 400;
	color: #cbd5e1;
}

.math-quote-footer {
	margin-top: 0.75rem;
	display: flex;
	justify-content: flex-end;
}

.btn-quote-meet {
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
	background: rgba(15, 23, 42, 0.8);
	border: 1px solid rgba(245, 158, 11, 0.4);
	color: #fbbf24 !important;
	font-weight: 700;
	font-size: 0.88rem;
	padding: 0.45rem 1.15rem;
	border-radius: 8px;
	text-decoration: none;
	transition: all 0.2s ease;
}

.btn-quote-meet:hover {
	background: rgba(245, 158, 11, 0.15);
	border-color: #f59e0b;
	color: #ffffff !important;
	transform: translateY(-1px);
	box-shadow: 0 4px 12px rgba(245, 158, 11, 0.15);
}

/* The Two Realms Dual Grid */
.realms-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 2rem;
	margin: 2.5rem 0;
}

.realm-card {
	background: #0b101b;
	border: 1px solid rgba(255, 255, 255, 0.09);
	border-radius: 14px;
	padding: 2rem 2.25rem 2.25rem;
	position: relative;
	transition: all 0.3s ease;
	display: flex;
	flex-direction: column;
	box-shadow: 0 10px 30px rgba(0, 0, 0, 0.45);
}

.realm-card::before {
	content: '';
	position: absolute;
	top: 0;
	left: 18px;
	right: 18px;
	height: 2.5px;
	border-radius: 9999px;
	z-index: 1;
}

.realm-basic::before {
	background: linear-gradient(90deg, #10b981 0%, #06b6d4 100%);
	box-shadow: 0 0 10px rgba(16, 185, 129, 0.5);
}

.realm-advanced::before {
	background: linear-gradient(90deg, #6366f1 0%, #a855f7 100%);
	box-shadow: 0 0 10px rgba(168, 85, 247, 0.5);
}

.realm-card:hover {
	transform: translateY(-5px);
	border-color: rgba(245, 158, 11, 0.35);
	box-shadow: 0 16px 40px rgba(0, 0, 0, 0.6);
}

.realm-badge {
	align-self: flex-start;
	font-size: 0.75rem;
	font-weight: 800;
	padding: 0.3rem 0.75rem;
	border-radius: var(--radius-full);
	letter-spacing: 0.6px;
	text-transform: uppercase;
	margin-bottom: 1rem;
}

.badge-basic {
	background: rgba(6, 78, 59, 0.65);
	color: #a7f3d0;
	border: 1px solid rgba(52, 211, 153, 0.45);
}

.badge-advanced {
	background: rgba(76, 29, 149, 0.6);
	color: #ddd6fe;
	border: 1px solid rgba(167, 139, 250, 0.45);
}

.realm-title {
	font-size: 1.85rem;
	font-weight: 800;
	margin-bottom: 0.75rem;
}

.realm-desc {
	color: var(--text-muted);
	font-size: 0.98rem;
	margin-bottom: 1.5rem;
	flex-grow: 1;
}

.realm-features {
	list-style: none;
	margin-bottom: 2rem;
	display: flex;
	flex-direction: column;
	gap: 0.65rem;
}

.realm-features li {
	display: flex;
	align-items: center;
	gap: 0.6rem;
	font-size: 0.92rem;
	color: var(--text-main);
}

.realm-features li span.icon {
	font-size: 1.1rem;
}

/* Game Card Grid inside category pages */
.games-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
	gap: 1.5rem;
	margin: 2rem 0;
}

.game-card {
	background: var(--bg-surface);
	border: 1px solid var(--border-color);
	border-radius: var(--radius-md);
	padding: 1.5rem;
	display: flex;
	flex-direction: column;
	transition: all 0.25s ease;
	position: relative;
}

.game-card:hover {
	border-color: var(--primary);
	transform: translateY(-4px);
	box-shadow: var(--shadow-glow);
}

.game-card-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: 1rem;
}

.game-icon-large {
	font-size: 2.2rem;
	background: var(--bg-surface-elevated);
	width: 54px;
	height: 54px;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: var(--radius-md);
	border: 1px solid var(--border-color);
}

.game-xp-tag {
	background: rgba(245, 158, 11, 0.15);
	color: var(--accent-gold);
	border: 1px solid rgba(245, 158, 11, 0.3);
	font-size: 0.75rem;
	font-weight: 800;
	padding: 0.2rem 0.5rem;
	border-radius: var(--radius-sm);
	font-family: var(--font-mono);
}

.game-tag-badge {
	background: rgba(99, 102, 241, 0.12);
	color: #a5b4fc;
	border: 1px solid rgba(99, 102, 241, 0.25);
	font-size: 0.72rem;
	font-weight: 700;
	padding: 0.18rem 0.45rem;
	border-radius: var(--radius-sm);
	white-space: nowrap;
	line-height: 1.2;
}

/* Game Snapshot Containers & Card Enhancements */
.snapshot-container {
	background: #0b1120;
	border: 1px solid rgba(255, 255, 255, 0.07);
	border-radius: 12px;
	height: 110px;
	width: 100%;
	display: flex;
	align-items: center;
	justify-content: center;
	margin-bottom: 1.15rem;
	position: relative;
	overflow: hidden;
	transition:
		border-color 0.25s ease,
		background 0.25s ease;
	box-sizing: border-box;
}

.game-card:hover .snapshot-container {
	border-color: rgba(56, 189, 248, 0.35);
	background: #0d1527;
}

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

.calculus-curve:before {
	content: '';
	position: absolute;
	width: 160px;
	height: 78px;
	border: 5px solid var(--accent-gold, #fbbf24);
	border-left-color: transparent;
	border-top-color: transparent;
	border-radius: 50%;
	transform: rotate(-8deg);
	box-sizing: border-box;
	pointer-events: none;
}

/* ==========================================================================
   REUSABLE SITE-WIDE CLASSES (ZERO INLINE CSS ARCHITECTURE)
   ========================================================================== */

/* Realm Card Corner Brackets */
.realm-corner {
	position: absolute;
	pointer-events: none;
	z-index: 2;
}
.corner-tl {
	top: -1px;
	left: -1px;
}
.corner-tr {
	top: -1px;
	right: -1px;
	transform: scaleX(-1);
}
.corner-bl {
	bottom: -1px;
	left: -1px;
	transform: scaleY(-1);
}
.corner-br {
	bottom: -1px;
	right: -1px;
	transform: scale(-1, -1);
}

/* Game Card Subtitles, Titles, and Tags */
.game-card-title {
	margin-bottom: 0.2rem;
}
.game-card-lore {
	font-size: 0.8rem;
	color: var(--accent-gold);
	font-weight: 600;
	display: block;
	margin-bottom: 0.5rem;
}
.game-card-tags {
	display: flex;
	gap: 0.4rem;
	flex-wrap: wrap;
	margin-bottom: 1.25rem;
}

/* Snapshot: Probability Dice */
.snapshot-dice-wrap {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
}
.snapshot-dice-pair {
	display: flex;
	align-items: center;
	gap: 0.65rem;
}
.snapshot-dice {
	width: 38px;
	height: 38px;
	border-radius: 8px;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 1.25rem;
	font-weight: 900;
	font-family: var(--font-sans);
	color: #0f172a;
	box-shadow: 0 4px 10px rgba(0, 0, 0, 0.3);
}
.snapshot-dice-white {
	background: #ffffff;
	transform: rotate(-8deg);
}
.snapshot-dice-gold {
	background: #fbbf24;
	transform: rotate(8deg);
}
.snapshot-caption {
	color: #cbd5e1;
	font-size: 0.82rem;
	font-weight: 600;
	letter-spacing: -0.01em;
}

/* Snapshot: Arithmetic Match */
.snapshot-arith-wrap {
	display: flex;
	align-items: center;
	gap: 0.75rem;
}
.snapshot-arith-box {
	background: #1e293b;
	border: 1px solid #334155;
	color: #ffffff;
	padding: 0.55rem 0.95rem;
	border-radius: 9px;
	font-weight: 800;
	font-size: 1.25rem;
	font-family: ui-monospace, monospace;
	box-shadow: 0 4px 10px rgba(0, 0, 0, 0.3);
}
.snapshot-arith-res {
	background: #10b981;
	color: #022c22;
	padding: 0.55rem 0.95rem;
	border-radius: 9px;
	font-weight: 900;
	font-size: 1.25rem;
	font-family: ui-monospace, monospace;
	box-shadow: 0 4px 14px rgba(16, 185, 129, 0.35);
}

/* Snapshot: Pizza */
.snapshot-pizza-wrap {
	display: flex;
	align-items: center;
	gap: 0.9rem;
}
.snapshot-pizza-wrap-lg {
	display: flex;
	align-items: center;
	gap: 1.15rem;
}
.snapshot-pizza-svg {
	transform: rotate(-90deg);
}
.snapshot-pizza-svg-shadow {
	transform: rotate(-90deg);
	filter: drop-shadow(0 4px 10px rgba(0, 0, 0, 0.3));
}
.snapshot-pizza-label {
	font-size: 0.95rem;
	font-weight: 700;
	color: #f1f5f9;
	letter-spacing: -0.01em;
}
.snapshot-pizza-badge {
	color: #fbbf24;
	display: block;
	font-size: 1.25rem;
	font-weight: 800;
}
.snapshot-pizza-sub {
	color: #cbd5e1;
	font-size: 0.85rem;
}
.snapshot-pizza-text-rotated {
	transform: rotate(90deg);
	transform-origin: 34px 34px;
}
.snapshot-pizza-text-rotated-lg {
	transform: rotate(90deg);
	transform-origin: 38px 38px;
}

/* Snapshot: Number Sequence */
.snapshot-seq-wrap {
	display: flex;
	align-items: center;
	gap: 0.5rem;
}
.snapshot-seq-tile {
	background: #1e293b;
	border: 1px solid #334155;
	color: #94a3b8;
	width: 32px;
	height: 32px;
	border-radius: 6px;
	display: flex;
	align-items: center;
	justify-content: center;
	font-weight: 800;
	font-size: 0.95rem;
	font-family: ui-monospace, monospace;
}
.snapshot-seq-missing {
	border-color: #38bdf8;
	color: #38bdf8;
	box-shadow: 0 0 10px rgba(56, 189, 248, 0.25);
}
.snapshot-seq-rule {
	color: #64748b;
	font-size: 0.75rem;
}

/* Snapshot: Linear Graph & Tangent Curve */
.snapshot-grid-wrap {
	position: relative;
	width: 100%;
	height: 100%;
}
.snapshot-grid-svg {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
}
.snapshot-line-glow {
	stroke: #22d3ee;
	stroke-width: 3;
	stroke-linecap: round;
	filter: drop-shadow(0 0 6px rgba(34, 211, 238, 0.4));
}
.snapshot-eq-badge {
	position: absolute;
	top: 10px;
	right: 14px;
	background: rgba(11, 17, 32, 0.9);
	border: 1px solid rgba(255, 255, 255, 0.15);
	border-radius: 6px;
	padding: 0.25rem 0.65rem;
	color: #ffffff;
	font-size: 0.82rem;
	font-weight: 700;
	font-family: ui-monospace, monospace;
}

/* Snapshot: Track / Scale on Homepage */
.snapshot-track-wrap {
	width: 86%;
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
}
.snapshot-track-bar {
	width: 100%;
	height: 4px;
	background: #334155;
	position: relative;
	border-radius: 2px;
}
.snapshot-track-tick {
	position: absolute;
	top: -6px;
	width: 2px;
	height: 16px;
	background: #64748b;
}
.snapshot-track-tick-left {
	left: 0%;
}
.snapshot-track-tick-mid {
	left: 50%;
}
.snapshot-track-tick-right {
	left: 100%;
}
.snapshot-track-marker {
	position: absolute;
	left: 75%;
	top: -9px;
	transform: translateX(-50%);
	width: 22px;
	height: 22px;
	background: #38bdf8;
	border-radius: 50%;
	border: 3px solid #0f172a;
	box-shadow: 0 0 14px rgba(56, 189, 248, 0.7);
	cursor: pointer;
}
.snapshot-track-labels {
	width: 100%;
	display: flex;
	justify-content: space-between;
	margin-top: 0.75rem;
	font-size: 0.78rem;
	font-family: ui-monospace, monospace;
	color: #94a3b8;
	font-weight: 700;
}
.snapshot-track-active {
	color: #38bdf8;
	font-weight: 900;
	transform: translateX(-35%);
}

/* Snapshot: Balance Beam on Homepage & Alchemist Card */
.snapshot-balance-wrap {
	width: 88%;
	display: flex;
	flex-direction: column;
	align-items: center;
}
.snapshot-beam-row {
	width: 100%;
	display: flex;
	justify-content: space-between;
	align-items: center;
	position: relative;
}
.snapshot-weight-blue {
	width: 42px;
	height: 42px;
	border-radius: 50%;
	background: #1e3a8a;
	border: 2px solid #3b82f6;
	display: flex;
	align-items: center;
	justify-content: center;
	font-weight: 800;
	color: #93c5fd;
	font-size: 1rem;
	box-shadow: 0 4px 12px rgba(59, 130, 246, 0.35);
}
.snapshot-weight-green {
	width: 42px;
	height: 42px;
	border-radius: 50%;
	background: #064e3b;
	border: 2px solid #10b981;
	display: flex;
	align-items: center;
	justify-content: center;
	font-weight: 800;
	color: #6ee7b7;
	font-size: 1rem;
	box-shadow: 0 4px 12px rgba(16, 185, 129, 0.35);
}
.snapshot-beam-bar {
	flex: 1;
	height: 4px;
	background: #475569;
	margin: 0 10px;
	border-radius: 2px;
}
.snapshot-fulcrum {
	width: 0;
	height: 0;
	border-left: 10px solid transparent;
	border-right: 10px solid transparent;
	border-bottom: 16px solid #94a3b8;
	margin-top: -1px;
}
.snapshot-cue-balanced {
	color: #6ee7b7;
}
.snapshot-center-stage {
	display: flex;
	align-items: center;
	justify-content: center;
	position: relative;
	width: 180px;
	height: 70px;
}

/* Realm Kickers */
.realm-kicker-green {
	color: #34d399;
	font-size: 0.8rem;
	font-weight: 800;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	margin-bottom: 0.45rem;
}
.realm-kicker-purple {
	color: #a78bfa;
	font-size: 0.8rem;
	font-weight: 800;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	margin-bottom: 0.45rem;
}

/* Dossier & Bio Global Classes */
.dossier-main-container {
	padding-top: 1.5rem;
	padding-bottom: 3rem;
}
.dossier-nav-wrap {
	margin: 2.5rem 0;
}
.portrait-caption {
	display: block;
	text-align: center;
	font-size: 0.68rem;
	color: var(--text-dim);
	margin-top: 0.25rem;
}

/* Additional Snapshot & Hero Syllabus Classes */
.hero-section-syllabus .realm-kicker {
	font-size: 0.8rem;
	font-weight: 800;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	margin-bottom: 0.45rem;
	display: block;
}
.hero-section-syllabus .hero-title {
	margin: 0 auto 0.65rem;
	text-align: center;
}
.hero-section-syllabus .hero-lead {
	font-size: 1.15rem;
	font-weight: 600;
	color: #f1f5f9;
	margin: 0 auto 0.85rem;
	text-align: center;
}
.hero-section-syllabus .hero-subtitle {
	margin: 0 auto 1rem;
	max-width: 820px;
	line-height: 1.65;
	color: var(--text-muted);
	text-align: center;
}
.snapshot-vector-row {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 1.25rem;
	width: 100%;
}
.snapshot-vector-val {
	color: #fbbf24;
	font-size: 1.15rem;
	font-weight: 800;
	font-family: var(--font-sans);
	letter-spacing: -0.01em;
}
.calculus-text {
	color: #38bdf8;
	font-size: 1.25rem;
	font-weight: 800;
	font-family: var(--font-sans);
	position: relative;
	z-index: 2;
}
.snapshot-seq-arrow {
	color: #64748b;
	font-size: 0.75rem;
}
.snapshot-seq-active {
	background: #10b981;
	color: #022c22;
	width: 36px;
	height: 36px;
	border-radius: 8px;
	display: flex;
	align-items: center;
	justify-content: center;
	font-weight: 900;
	font-size: 1.05rem;
	font-family: ui-monospace, monospace;
	box-shadow: 0 0 12px rgba(16, 185, 129, 0.4);
}

/* Hall of Fame Profile & Gauges */
.profile-card {
	background: var(--bg-surface);
	border: 1px solid var(--border-color);
	border-radius: var(--radius-lg);
	padding: 2rem;
	margin-bottom: 2.5rem;
}
.profile-header-row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 1.5rem;
	margin-bottom: 1.5rem;
}
.profile-identity {
	display: flex;
	align-items: center;
	gap: 1.25rem;
}
.profile-avatar {
	font-size: 3.5rem;
	background: var(--bg-surface-elevated);
	width: 80px;
	height: 80px;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: var(--radius-md);
	border: 1px solid var(--border-color);
}
.profile-name {
	font-size: 1.6rem;
	font-weight: 800;
	margin: 0 0 0.25rem;
}
.profile-rank {
	color: var(--text-muted);
	font-size: 0.9rem;
	margin: 0;
}
.profile-stats-row {
	display: flex;
	gap: 1.5rem;
}
.profile-stat-gold {
	color: var(--accent-gold);
}
.profile-stat-cyan {
	color: var(--accent-cyan);
}
.level-progress-header {
	display: flex;
	justify-content: space-between;
	font-size: 0.82rem;
	font-weight: 700;
	margin-bottom: 0.4rem;
}
.level-progress-pct {
	color: var(--accent-cyan);
}
.gauge-track-lg {
	height: 14px;
}
.gauge-fill {
	width: 0%;
}
.section-heading-lg {
	font-size: 1.5rem;
	font-weight: 800;
	margin-bottom: 1.25rem;
}
.danger-zone-card {
	background: var(--bg-surface);
	border: 1px solid var(--border-color);
	border-radius: var(--radius-md);
	padding: 1.5rem;
	margin: 3rem 0;
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 1rem;
}
.danger-zone-title {
	font-size: 1.1rem;
	font-weight: 700;
	margin: 0 0 0.25rem;
}
.danger-zone-desc {
	color: var(--text-muted);
	font-size: 0.85rem;
	margin: 0;
}
.btn-reset-data {
	border-color: var(--danger) !important;
	color: var(--danger) !important;
}
.contact-meta-link {
	color: var(--accent-gold);
	text-decoration: underline;
	font-weight: 600;
}
.legal-cyan-link {
	color: var(--accent-cyan);
	font-weight: 700;
	text-decoration: underline;
}
.legal-date-stamp {
	color: var(--text-dim);
	font-size: 0.85rem;
	margin-bottom: 1.5rem;
}

/* Additional Shared Pedagogical & Arena Classes (Zero Inline CSS) */
.codex-cyan {
	margin: 1.5rem 0 2rem;
	border-left: 5px solid var(--accent-cyan);
}
.codex-gold {
	margin: 1.5rem 0 2rem;
	border-left: 5px solid var(--accent-gold);
}
.codex-header-clean {
	border: none;
	padding-bottom: 0;
	margin-bottom: 1rem;
}
.codex-badge-cyan {
	background: var(--accent-cyan);
	color: #000;
}
.codex-badge-gold {
	background: var(--accent-gold);
	color: #1a202c;
}
.text-cyan {
	color: var(--accent-cyan);
}
.text-gold {
	color: var(--accent-gold);
}
.text-success {
	color: var(--success);
}
.text-dim {
	color: var(--text-dim);
}
.lab-bench-title {
	font-size: 1.4rem;
	font-weight: 800;
	margin-top: 0.25rem;
}
.lab-bench-desc {
	color: var(--text-muted);
	font-size: 0.88rem;
	margin: 0;
}
.lab-slider {
	width: 140px;
}
.canvas-responsive {
	display: block;
	width: 100%;
	max-width: 100%;
	height: auto;
}
.arena-wrapper {
	margin-top: 2rem;
}
.gauge-w-140 {
	width: 140px;
}
.gauge-w-120 {
	width: 120px;
}
.hud-hp-text {
	font-size: 0.72rem;
	color: var(--text-dim);
	font-family: var(--font-mono);
}
.hud-stat-cyan {
	color: var(--accent-cyan) !important;
}
.hud-stat-gold {
	color: var(--accent-gold) !important;
}
.hud-stat-success {
	color: var(--success) !important;
}
.question-box-md {
	max-width: 580px;
	width: 100%;
}
.question-box-lg {
	max-width: 620px;
	margin: 0 auto 1rem;
	width: 100%;
}
.arena-status-msg {
	font-size: 0.9rem;
	font-weight: 600;
	min-height: 24px;
	text-align: center;
}
.pedagogical-list {
	margin-left: 1.5rem;
	color: var(--text-muted);
	line-height: 1.8;
}
.hud-flex-gap-1 {
	display: flex;
	align-items: center;
	gap: 1rem;
}
.order-target-row {
	display: flex;
	justify-content: space-around;
	align-items: center;
	margin-top: 1rem;
	border-top: 1px solid var(--border-color);
	padding-top: 0.75rem;
}
.order-btn-row {
	display: flex;
	gap: 1rem;
	flex-wrap: wrap;
	justify-content: center;
	margin-bottom: 1rem;
}
.font-mono-lg {
	font-size: 2rem;
	font-weight: 900;
	color: var(--accent-cyan);
	font-family: var(--font-mono);
}
.font-mono-md {
	font-size: 1.6rem;
	font-weight: 800;
	color: var(--text-main);
	font-family: var(--font-mono);
}
.order-label-dim {
	font-size: 0.72rem;
	text-transform: uppercase;
	color: var(--text-dim);
}

/* Utility & State Classes */
.is-hidden {
	display: none !important;
}
.w-full {
	width: 100%;
}
.mt-1 {
	margin-top: 1rem;
}
.mt-2 {
	margin-top: 2rem;
}
.mb-1 {
	margin-bottom: 1rem;
}
.mb-2 {
	margin-bottom: 2rem;
}
.text-center {
	text-align: center;
}

/* Legal Page Components */
.legal-page-container {
	padding-top: 2rem;
	padding-bottom: 3rem;
}
.legal-hero-title {
	margin: 0 0 0.5rem;
	text-align: center;
	width: 100%;
}
.legal-hero-subtitle {
	font-size: 1.05rem;
	color: #94a3b8;
	font-weight: 500;
	margin: 0 auto 1.5rem;
	text-align: center;
	width: 100%;
	max-width: 580px;
	line-height: 1.5;
}
.legal-article {
	max-width: 840px;
	margin: 0 auto;
	padding: 2.5rem 2.5rem;
}
.legal-article-narrow {
	max-width: 640px;
	margin: 0 auto;
}
.legal-header {
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	border-bottom: 1px solid var(--border-color);
	padding-bottom: 1.5rem;
	margin-bottom: 1.5rem;
}
.legal-body-lead {
	font-size: 1.05rem;
	line-height: 1.8;
	color: var(--text-main);
	margin-bottom: 1.25rem;
}
.legal-body-text {
	line-height: 1.85;
	color: #cbd5e1;
	font-size: 1.02rem;
	margin-bottom: 1.25rem;
}
.legal-h2-gold {
	color: var(--accent-gold);
	font-size: 1.4rem;
	font-weight: 700;
	margin-top: 2.5rem;
	margin-bottom: 1.25rem;
}
.legal-card-panel {
	background: rgba(15, 23, 42, 0.65);
	border: 1px solid rgba(255, 255, 255, 0.09);
	border-radius: 12px;
	padding: 1.25rem 1.5rem;
}
.legal-card-title {
	font-size: 1.05rem;
	font-weight: 700;
	color: #f1f5f9;
	margin-bottom: 0.35rem;
}
.legal-card-desc {
	margin: 0;
	color: #94a3b8;
	line-height: 1.7;
	font-size: 0.98rem;
}
.legal-callout-box {
	background: var(--bg-surface-elevated);
	border-left: 4px solid var(--accent-cyan);
	padding: 1.25rem 1.5rem;
	border-radius: 0 var(--radius-sm) var(--radius-sm) 0;
	margin-top: 2rem;
}
.legal-callout-gradient {
	background: linear-gradient(
		135deg,
		rgba(56, 189, 248, 0.06) 0%,
		rgba(139, 92, 246, 0.06) 100%
	);
	border: 1px solid rgba(56, 189, 248, 0.25);
	border-left: 4px solid var(--accent-cyan);
	border-radius: 12px;
	padding: 1.5rem 1.75rem;
	margin-top: 2rem;
}
.legal-grid-gap {
	display: grid;
	gap: 1rem;
	margin-bottom: 2.25rem;
}
.legal-form {
	display: flex;
	flex-direction: column;
	gap: 1.25rem;
	margin-top: 1.5rem;
}
.legal-label {
	display: block;
	font-size: 0.85rem;
	font-weight: 700;
	margin-bottom: 0.4rem;
}
.legal-input,
.legal-textarea,
.legal-select {
	width: 100%;
	padding: 0.8rem;
	background: var(--bg-surface-elevated);
	border: 1px solid var(--border-color);
	border-radius: var(--radius-sm);
	color: #fff;
	font-family: var(--font-sans);
	box-sizing: border-box;
}
.legal-textarea {
	resize: vertical;
}
.legal-input-hint {
	display: block;
	font-size: 0.8rem;
	color: var(--text-muted);
	margin-top: 0.35rem;
}
.legal-status-box {
	display: none;
	padding: 1rem;
	margin-top: 1.25rem;
	border-radius: var(--radius-sm);
	font-size: 0.95rem;
	font-weight: 600;
	text-align: center;
}

/* Hub Redirect Page Components */
.hub-page-body {
	display: flex;
	justify-content: center;
	align-items: center;
	min-height: 100vh;
	text-align: center;
	background: #080b14;
	color: #f8fafc;
	font-family: var(--font-sans);
	padding: 2rem;
	box-sizing: border-box;
}
.hub-redirect-card {
	max-width: 480px;
	background: rgba(15, 23, 42, 0.85);
	border: 1px solid rgba(56, 189, 248, 0.3);
	border-radius: 1rem;
	padding: 2.5rem 2rem;
	box-shadow: 0 10px 30px rgba(0, 0, 0, 0.5);
}
.hub-redirect-logo {
	height: 48px;
	width: auto;
	margin-bottom: 1.5rem;
}
.hub-redirect-title {
	font-size: 1.35rem;
	font-weight: 700;
	margin-bottom: 0.75rem;
}
.hub-redirect-desc {
	color: #94a3b8;
	font-size: 0.95rem;
	margin-bottom: 1.5rem;
}
.hub-redirect-btn {
	display: inline-block;
	background: #38bdf8;
	color: #080b14;
	font-weight: 700;
	padding: 0.75rem 1.5rem;
	border-radius: 9999px;
	text-decoration: none;
	transition: transform 0.2s ease;
}

/* Hall of Mathematicians Header & Empty State */
.hall-main-container {
	padding-top: 1.75rem;
	padding-bottom: 3.5rem;
}
.hall-header {
	text-align: center;
	max-width: 800px;
	margin: 0 auto 2.25rem;
}
.hall-kicker {
	margin-bottom: 0.75rem;
	display: inline-block;
}
.hall-title {
	font-size: 2.6rem;
	font-weight: 800;
	margin-bottom: 0.75rem;
}
.hall-desc {
	color: var(--text-muted);
	font-size: 1.1rem;
	line-height: 1.7;
	max-width: 700px;
	margin: 0 auto;
}
.math-empty-state {
	display: none;
	text-align: center;
	padding: 3rem 1.5rem;
}
.math-empty-title {
	font-weight: 700;
	color: #f8fafc;
	margin-bottom: 0.5rem;
}
.math-empty-desc {
	font-size: 0.9rem;
}

.hub-redirect-btn:hover {
	transform: scale(1.04);
}

.game-category-label {
	color: #38bdf8;
	font-size: 0.72rem;
	font-weight: 800;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	margin-bottom: 0.35rem;
	display: block;
}

.game-category-label-purple {
	color: #818cf8;
	font-size: 0.72rem;
	font-weight: 800;
	letter-spacing: 0.07em;
	text-transform: uppercase;
	margin-bottom: 0.35rem;
	display: block;
}

/* Game Snapshots Header */
.game-snapshots-header {
	display: flex;
	justify-content: space-between;
	align-items: flex-end;
	flex-wrap: wrap;
	gap: 1.25rem;
	margin-bottom: 1.5rem;
}

.game-snapshots-lead {
	display: flex;
	flex-direction: column;
}

.game-snapshots-kicker {
	font-size: 0.78rem;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color: #38bdf8;
	margin-bottom: 0.35rem;
	display: block;
}

.game-snapshots-title {
	font-size: 1.75rem;
	font-weight: 800;
	margin: 0 0 0.35rem;
	color: #ffffff;
}

.game-snapshots-desc {
	color: #94a3b8;
	font-size: 0.95rem;
	margin: 0;
}

.topic-filters {
	display: flex;
	gap: 0.5rem;
	flex-wrap: wrap;
}

@media (max-width: 768px) {
	.game-snapshots-header {
		flex-direction: column;
		align-items: center;
		text-align: center;
		gap: 1.15rem;
	}
	.game-snapshots-lead {
		text-align: center;
		display: flex;
		flex-direction: column;
		align-items: center;
	}
	.game-snapshots-kicker,
	.game-snapshots-title,
	.game-snapshots-desc {
		text-align: center;
		margin-left: auto;
		margin-right: auto;
	}
	.topic-filters {
		justify-content: center;
	}
}

.topic-filter-btn {
	background: transparent;
	border: 1px solid rgba(255, 255, 255, 0.15);
	color: #94a3b8;
	border-radius: 20px;
	padding: 0.4rem 1rem;
	font-size: 0.85rem;
	font-weight: 600;
	cursor: pointer;
	transition: all 0.2s ease;
	font-family: inherit;
}

.topic-filter-btn:hover {
	background: rgba(56, 189, 248, 0.08);
	border-color: rgba(56, 189, 248, 0.4);
	color: #ffffff;
}

.topic-filter-btn.active {
	background: rgba(56, 189, 248, 0.15);
	border-color: #38bdf8;
	color: #ffffff;
}

.btn-card-play {
	background: #2563eb;
	color: #ffffff !important;
	border-radius: 8px;
	font-weight: 600;
	font-size: 0.92rem;
	padding: 0.65rem 1.1rem;
	text-decoration: none;
	display: flex;
	justify-content: space-between;
	align-items: center;
	width: 100%;
	margin-top: auto;
	transition:
		background 0.2s ease,
		transform 0.15s ease,
		box-shadow 0.2s ease;
	box-sizing: border-box;
}

.btn-card-play:hover {
	background: #1d4ed8;
	transform: translateY(-1px);
	box-shadow: 0 4px 12px rgba(37, 99, 235, 0.35);
}

/* ==========================================================================
   OUR APPROACH SPLIT SECTION (Ref: media_1789146958444.png)
   ========================================================================== */
.approach-split-section {
	padding: 2.75rem 0 3.25rem;
	border-bottom: 1px solid rgba(255, 255, 255, 0.08);
	margin-bottom: 2.75rem;
}

.approach-split-container {
	display: grid;
	grid-template-columns: 1.05fr 1.35fr;
	gap: 3.5rem;
	align-items: center;
}

.approach-kicker {
	color: #2dd4bf;
	font-size: 0.8rem;
	font-weight: 800;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	margin-bottom: 0.85rem;
	display: block;
}

.approach-kicker-purple {
	color: #a78bfa;
	font-size: 0.8rem;
	font-weight: 800;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	margin-bottom: 0.85rem;
	display: block;
}

.approach-title {
	font-size: clamp(2rem, 3.2vw, 2.65rem);
	font-weight: 800;
	line-height: 1.15;
	color: #ffffff;
	margin: 0 0 1.25rem 0;
	letter-spacing: -0.02em;
}

.approach-description {
	color: #94a3b8;
	font-size: 0.98rem;
	line-height: 1.65;
	margin: 0;
	max-width: 480px;
}

.approach-cards-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 1.15rem;
}

.approach-step-tile {
	background: #0d1527;
	border: 1px solid rgba(255, 255, 255, 0.08);
	border-radius: 14px;
	padding: 1.2rem 1.25rem;
	display: flex;
	gap: 0.85rem;
	align-items: flex-start;
	transition:
		border-color 0.2s ease,
		transform 0.2s ease,
		background 0.2s ease;
	box-sizing: border-box;
}

.approach-step-tile:hover {
	border-color: rgba(45, 212, 191, 0.35);
	background: #0f182d;
	transform: translateY(-2px);
}

.approach-tile-num {
	width: 26px;
	height: 26px;
	border-radius: 6px;
	background: rgba(45, 212, 191, 0.12);
	color: #2dd4bf;
	font-weight: 800;
	font-size: 0.85rem;
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	margin-top: 1px;
}

.approach-tile-body {
	display: flex;
	flex-direction: column;
	gap: 0.35rem;
}

.approach-tile-title {
	font-size: 1.05rem;
	font-weight: 700;
	color: #ffffff;
	line-height: 1.2;
}

.approach-tile-desc {
	font-size: 0.84rem;
	line-height: 1.45;
	color: #94a3b8;
}

@media (max-width: 960px) {
	.approach-split-container {
		grid-template-columns: 1fr;
		gap: 2.25rem;
	}
	.approach-lead {
		text-align: center;
		display: flex;
		flex-direction: column;
		align-items: center;
	}
	.approach-kicker,
	.approach-kicker-purple {
		text-align: center;
		margin-left: auto;
		margin-right: auto;
	}
	.approach-title {
		text-align: center;
	}
	.approach-description {
		max-width: 100%;
		text-align: center;
		margin-left: auto;
		margin-right: auto;
	}
	.approach-split-section {
		padding: 2rem 0 2.5rem;
		margin-bottom: 2rem;
	}
}

@media (max-width: 560px) {
	.approach-cards-grid {
		grid-template-columns: 1fr;
		gap: 0.85rem;
	}
	.approach-step-tile {
		padding: 1.1rem 1.15rem;
		align-items: center;
		text-align: center;
	}
	.approach-step-tile .approach-tile-num {
		margin: 0 auto;
	}
	.approach-step-tile .approach-tile-body {
		align-items: center;
		text-align: center;
	}
	.approach-step-tile .approach-tile-title,
	.approach-step-tile .approach-tile-desc {
		text-align: center;
	}
}

/* ==========================================================================
   HOW TO BEGIN (Compact Practical Flow for Realm Pages)
   ========================================================================== */
.how-to-begin-section {
	margin: 0.5rem 0 2rem;
}

.how-to-begin-card {
	background: #090f1e;
	border: 1px solid rgba(52, 211, 153, 0.22);
	border-left: 4px solid #10b981;
	border-radius: 14px;
	padding: 1.5rem 1.85rem;
	box-shadow: 0 6px 22px rgba(0, 0, 0, 0.25);
}

.how-to-begin-header {
	margin-bottom: 1.15rem;
}

.how-to-begin-title {
	font-size: clamp(1.25rem, 2.5vw, 1.5rem);
	font-weight: 800;
	color: #ffffff;
	margin: 0 0 0.35rem;
	letter-spacing: -0.01em;
}

.how-to-begin-desc {
	font-size: 0.94rem;
	color: #94a3b8;
	line-height: 1.55;
	margin: 0;
	max-width: 720px;
}

.begin-sequence-track {
	display: flex;
	align-items: center;
	justify-content: flex-start;
	gap: 0.85rem;
	flex-wrap: wrap;
	padding-top: 0.25rem;
}

.begin-step-pill {
	display: inline-flex;
	align-items: center;
	gap: 0.65rem;
	background: rgba(15, 23, 42, 0.85);
	border: 1px solid rgba(52, 211, 153, 0.25);
	border-radius: 8px;
	padding: 0.55rem 1rem;
	transition:
		border-color 0.2s ease,
		transform 0.2s ease,
		background 0.2s ease;
}

.begin-step-pill:hover {
	border-color: #34d399;
	background: rgba(16, 185, 129, 0.08);
	transform: translateY(-1px);
}

.begin-step-num {
	width: 22px;
	height: 22px;
	border-radius: 50%;
	background: rgba(16, 185, 129, 0.2);
	color: #34d399;
	font-weight: 800;
	font-size: 0.78rem;
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
}

.begin-step-text {
	color: #f1f5f9;
	font-size: 0.92rem;
	font-weight: 600;
	white-space: nowrap;
}

.begin-arrow {
	color: #64748b;
	font-size: 1.15rem;
	font-weight: 700;
	user-select: none;
	flex-shrink: 0;
}

/* Advanced Variant for Master Citadel */
.how-to-begin-card-advanced {
	border-color: rgba(129, 140, 248, 0.25);
	border-left: 4px solid #818cf8;
}

.how-to-begin-card-advanced .begin-step-pill {
	border-color: rgba(129, 140, 248, 0.25);
}

.how-to-begin-card-advanced .begin-step-pill:hover {
	border-color: #a78bfa;
	background: rgba(139, 92, 246, 0.08);
}

.how-to-begin-card-advanced .begin-step-num {
	background: rgba(139, 92, 246, 0.2);
	color: #a78bfa;
}

/* Learning Coverage Section (What You Can Learn) */
.learning-coverage-card {
	background: #0d1525;
	border: 1px solid rgba(255, 255, 255, 0.08);
	border-radius: 20px;
	padding: 3rem 3.5rem;
	margin-top: 3rem;
	margin-bottom: 3.5rem;
	display: grid;
	grid-template-columns: 1.1fr 1.9fr;
	gap: 3.5rem;
	align-items: center;
	box-sizing: border-box;
}

.learning-coverage-kicker {
	color: #38bdf8;
	font-size: 0.78rem;
	font-weight: 800;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	margin-bottom: 0.85rem;
	display: block;
}

.learning-coverage-title {
	font-size: clamp(2rem, 3.5vw, 2.75rem);
	font-weight: 800;
	color: #ffffff;
	line-height: 1.12;
	margin: 0 0 1.25rem 0;
	letter-spacing: -0.02em;
}

.learning-coverage-desc {
	color: #94a3b8;
	font-size: 1rem;
	line-height: 1.6;
	margin: 0;
	max-width: 320px;
}

.learning-coverage-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 1rem;
}

.learning-coverage-item {
	background: #0b1120;
	border: 1px solid rgba(255, 255, 255, 0.08);
	border-radius: 12px;
	padding: 1.1rem 1.35rem;
	display: flex;
	align-items: center;
	gap: 0.85rem;
	transition:
		border-color 0.2s ease,
		background 0.2s ease;
	box-sizing: border-box;
}

.learning-coverage-item:hover {
	border-color: rgba(56, 189, 248, 0.3);
	background: #0f182c;
}

.learning-coverage-item .check-icon {
	color: #10b981;
	font-weight: 800;
	font-size: 1.2rem;
	line-height: 1;
	flex-shrink: 0;
}

.learning-coverage-item .item-text {
	color: #f1f5f9;
	font-weight: 700;
	font-size: 0.98rem;
	line-height: 1.35;
}

@media (max-width: 900px) {
	.learning-coverage-card {
		grid-template-columns: 1fr;
		gap: 2rem;
		padding: 2rem 1.75rem;
		margin-top: 2.5rem;
		margin-bottom: 2.5rem;
	}
	.learning-coverage-lead,
	.learning-coverage-info {
		text-align: center;
		display: flex;
		flex-direction: column;
		align-items: center;
	}
	.learning-coverage-kicker {
		text-align: center;
		margin-left: auto;
		margin-right: auto;
	}
	.learning-coverage-title {
		text-align: center;
	}
	.learning-coverage-desc {
		max-width: 100%;
		text-align: center;
		margin-left: auto;
		margin-right: auto;
	}
}

@media (max-width: 580px) {
	.learning-coverage-grid {
		grid-template-columns: 1fr;
		gap: 0.75rem;
	}
	.learning-coverage-card {
		padding: 1.5rem 1.25rem;
		border-radius: 16px;
	}
	.learning-coverage-title {
		font-size: 1.85rem;
	}
}

.game-card-title {
	font-size: 1.3rem;
	font-weight: 700;
	margin-bottom: 0.5rem;
}

.game-card-desc {
	color: var(--text-muted);
	font-size: 0.9rem;
	margin-bottom: 1.25rem;
	flex-grow: 1;
}

/* ==========================================================================
   THE GAMER-TEACHER CODEX (RICH CONTENT FOR SEO & ADSENSE)
   ========================================================================== */
.codex-section {
	background: var(--bg-surface);
	border: 1px solid var(--border-color);
	border-radius: var(--radius-lg);
	padding: 2.5rem;
	margin: 3rem 0;
}

.codex-header {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 0.45rem;
	border-bottom: 1px solid var(--border-color);
	padding-bottom: 1.25rem;
	margin-bottom: 1.75rem;
}

.codex-header h2 {
	font-size: 1.6rem;
	font-weight: 800;
	color: var(--text-main);
}

.codex-badge {
	background: var(--primary);
	color: #fff;
	font-size: 0.7rem;
	font-weight: 800;
	text-transform: uppercase;
	padding: 0.2rem 0.5rem;
	border-radius: var(--radius-sm);
}

.codex-content h3 {
	font-size: 1.25rem;
	margin: 1.5rem 0 0.6rem;
	color: var(--accent-cyan);
}

.codex-content p {
	color: var(--text-muted);
	font-size: 0.98rem;
	margin-bottom: 1rem;
	line-height: 1.7;
}

#lesson-guide {
	scroll-margin-top: 6rem;
}

#lesson-guide .codex-content {
	max-width: 78ch;
	margin-inline: auto;
	overflow-wrap: anywhere;
}

#lesson-guide .codex-content h3 {
	line-height: 1.4;
}

#lesson-guide .faq-details {
	border: 1px solid var(--border-color);
	border-radius: var(--radius-sm);
	padding: 1rem;
	margin: 1rem 0 1.5rem;
}

#lesson-guide .faq-summary {
	cursor: pointer;
	font-weight: 700;
	color: var(--text-main);
	line-height: 1.5;
}

#lesson-guide .faq-summary:focus-visible {
	outline: 2px solid var(--accent-cyan);
	outline-offset: 4px;
}

#lesson-guide .faq-content {
	padding-top: 1rem;
}

#lesson-guide .faq-content p:last-child {
	margin-bottom: 0;
}

#lesson-guide a {
	text-decoration: underline;
	text-underline-offset: 0.2em;
}

.next-activity {
	margin: 1.5rem 0;
}

.next-activity .btn {
	white-space: normal;
	text-align: center;
}

.sources-reading {
	border: 1px solid var(--border-color);
	border-radius: var(--radius-sm);
	background: var(--bg-surface);
	padding: 1rem 1.25rem;
	margin: 1.5rem 0;
}

.sources-reading > summary {
	cursor: pointer;
	font-weight: 700;
	color: var(--text-main);
	line-height: 1.5;
}

.sources-reading > summary:focus-visible {
	outline: 2px solid var(--accent-cyan);
	outline-offset: 4px;
}

.sources-reading-content {
	padding-top: 1rem;
	color: var(--text-muted);
	line-height: 1.7;
	overflow-wrap: anywhere;
}

.sources-reading-content ol,
.sources-reading-content ul {
	padding-left: 1.5rem;
}

.sources-reading-content li + li {
	margin-top: 0.75rem;
}

.sources-reading-content a {
	text-decoration: underline;
	text-underline-offset: 0.2em;
}

.formula-card {
	background: var(--bg-surface-elevated);
	border-left: 4px solid var(--primary);
	padding: 1.25rem;
	border-radius: 0 var(--radius-md) var(--radius-md) 0;
	margin: 1.5rem 0;
	max-width: 100%;
	box-sizing: border-box;
	overflow: hidden;
}

.formula-title {
	font-weight: 700;
	font-size: 0.9rem;
	color: var(--text-main);
	margin-bottom: 0.4rem;
}

.formula-math {
	font-family: var(--font-mono);
	font-size: 1.1rem;
	color: var(--accent-gold);
	max-width: 100%;
	overflow-x: auto;
	overflow-y: hidden;
	-webkit-overflow-scrolling: touch;
	padding: 0.35rem 0;
	box-sizing: border-box;
}

/* KaTeX Responsive Overflow & Touch Scrolling */
.katex-display {
	max-width: 100%;
	overflow-x: auto !important;
	overflow-y: hidden !important;
	-webkit-overflow-scrolling: touch !important;
	padding: 0.4rem 0 !important;
	margin: 0.5rem 0 !important;
}

.katex-display > .katex {
	max-width: 100%;
	text-align: center;
}

/* ==========================================================================
   FOOTER (ADSENSE ESSENTIALS: ABOUT, PRIVACY, TERMS)
   ========================================================================== */
.site-footer {
	background-color: #060911;
	border-top: 1px solid rgba(56, 189, 248, 0.18);
	box-shadow:
		inset 0 1px 0 rgba(255, 255, 255, 0.04),
		0 -12px 32px rgba(0, 0, 0, 0.4);
	padding: 2.25rem 0 1.5rem;
	margin-top: auto;
}

.footer-grid {
	display: grid;
	grid-template-columns: 2fr 1fr 1fr 1.15fr;
	gap: 2rem;
	margin-bottom: 1.5rem;
}

.footer-logo-link {
	display: inline-block;
	text-decoration: none;
	margin-bottom: 0.75rem;
	transition:
		opacity 0.2s ease,
		transform 0.2s ease;
}

.footer-logo-link:hover {
	opacity: 0.9;
	transform: scale(1.02);
}

.footer-logo-img {
	height: 38px;
	width: auto;
	max-width: 240px;
	display: block;
	object-fit: contain;
}

.footer-brand h3 {
	font-size: 1.35rem;
	font-weight: 800;
	margin-bottom: 0.75rem;
	color: #ffffff;
}

.footer-brand p {
	color: #cbd5e1;
	font-size: 0.92rem;
	line-height: 1.6;
}

.footer-brand-note {
	color: #94a3b8;
	font-size: 0.82rem;
	line-height: 1.5;
	margin-top: 0.5rem;
}

.footer-cta-link {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	margin-top: 0.85rem;
	padding: 0.45rem 0.95rem;
	font-size: 0.82rem;
	font-weight: 700;
	color: #38bdf8;
	background: rgba(56, 189, 248, 0.08);
	border: 1px solid rgba(56, 189, 248, 0.28);
	border-radius: var(--radius-md);
	text-decoration: none;
	transition: all 0.25s ease;
}

.footer-cta-link:hover {
	background: rgba(56, 189, 248, 0.18);
	border-color: #38bdf8;
	color: #ffffff;
	transform: translateY(-2px);
	box-shadow: 0 4px 14px rgba(56, 189, 248, 0.25);
}

.footer-column h4 {
	font-size: 0.95rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.5px;
	margin-bottom: 0.85rem;
	color: #ffffff;
}

.footer-column ul {
	list-style: none;
	display: flex;
	flex-direction: column;
	gap: 0.45rem;
}

.footer-column a {
	color: #cbd5e1;
	font-size: 0.9rem;
	text-decoration: none;
	transition:
		color 0.2s ease,
		transform 0.2s ease;
}

.footer-column a:hover {
	color: #38bdf8;
	transform: translateX(2px);
}

.footer-bottom {
	border-top: 1px solid rgba(255, 255, 255, 0.07);
	padding-top: 1.25rem;
	display: flex;
	align-items: center;
	justify-content: center;
	text-align: center;
}

.footer-bottom-trust {
	display: flex;
	flex-direction: column;
	gap: 0.45rem;
	align-items: center;
	width: 100%;
}

.footer-trust-line1 {
	color: #cbd5e1;
	font-size: 0.85rem;
	line-height: 1.5;
}

.footer-trust-line1 a {
	color: var(--text-muted);
	text-decoration: underline;
	text-underline-offset: 3px;
	transition: color 0.2s ease;
}

.footer-trust-line1 a:hover {
	color: #38bdf8;
}

.footer-trust-line2 {
	color: #94a3b8;
	font-size: 0.84rem;
	line-height: 1.5;
}

.footer-trust-line2 a {
	color: #38bdf8;
	font-weight: 600;
	text-decoration: none;
	transition:
		color 0.2s ease,
		text-decoration 0.2s ease;
}

.footer-trust-line2 a:hover {
	color: #ffffff;
	text-decoration: underline;
}

.footer-sep {
	margin: 0 0.45rem;
	color: rgba(255, 255, 255, 0.22);
}

.footer-trust-copy {
	color: var(--text-dim);
	font-size: 0.82rem;
	line-height: 1.65;
}

.footer-trust-copy a {
	color: var(--text-muted);
	text-decoration: underline;
	text-underline-offset: 3px;
	transition: color 0.2s ease;
}

.footer-trust-copy a:hover {
	color: var(--accent-cyan);
}

/* ==========================================================================
   TOAST NOTIFICATION (XP & LEVEL UP FEEDBACK)
   ========================================================================== */
.toast-container {
	position: fixed;
	bottom: 1.5rem;
	right: 1.5rem;
	z-index: 9999;
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
	pointer-events: none;
}

.toast {
	background: var(--bg-surface-elevated);
	border: 1px solid var(--primary);
	box-shadow: var(--shadow-glow);
	color: var(--text-main);
	padding: 0.85rem 1.25rem;
	border-radius: var(--radius-md);
	font-size: 0.92rem;
	font-weight: 600;
	display: flex;
	align-items: center;
	gap: 0.65rem;
	animation: slideIn 0.3s ease forwards;
	pointer-events: auto;
}

@keyframes slideIn {
	from {
		transform: translateX(100%);
		opacity: 0;
	}
	to {
		transform: translateX(0);
		opacity: 1;
	}
}
/* ==========================================================================
   UNIVERSAL CANVAS & MEDIA RESPONSIVENESS
   ========================================================================== */
canvas,
.game-canvas {
	display: block;
	max-width: 100% !important;
	height: auto !important;
	box-sizing: border-box !important;
}

/* ==========================================================================
   RESPONSIVE DESIGN
   ========================================================================== */
@media (max-width: 900px) {
	.realms-grid {
		grid-template-columns: 1fr;
	}
	.footer-grid {
		grid-template-columns: 1fr 1fr;
	}
}

@media (max-width: 768px) {
	.site-header {
		position: relative !important;
		top: auto !important;
	}
	.container {
		padding-left: 1rem;
		padding-right: 1rem;
	}
	.nav-wrapper {
		display: flex !important;
		flex-direction: row !important;
		align-items: center !important;
		justify-content: space-between !important;
		gap: 0.5rem !important;
		padding: 0.5rem 0.25rem !important;
		row-gap: 0 !important;
		flex-wrap: nowrap !important;
	}
	.audio-toggle-btn {
		order: 1 !important;
		flex-shrink: 0 !important;
		width: 36px !important;
		height: 36px !important;
		min-width: 36px !important;
		font-size: 1.05rem !important;
		margin: 0 !important;
		display: inline-flex !important;
		align-items: center !important;
		justify-content: center !important;
	}
	.logo-link {
		order: 2 !important;
		flex: 1 1 auto !important;
		display: flex !important;
		justify-content: center !important;
		align-items: center !important;
		padding: 0 !important;
		margin: 0 auto !important;
		text-align: center !important;
		min-width: 0 !important;
	}
	.site-logo {
		height: 28px !important;
		max-height: 28px !important;
		width: auto !important;
		max-width: 100% !important;
		object-fit: contain !important;
		display: block !important;
		margin: 0 auto !important;
		padding-top: 0 !important;
	}
	.site-header nav {
		position: static !important;
		width: 0 !important;
		height: 0 !important;
		margin: 0 !important;
		padding: 0 !important;
		border: none !important;
		order: 4 !important;
	}
	.player-hud {
		display: none !important;
	}
	.mobile-nav-toggle {
		order: 3 !important;
		display: inline-flex !important;
		align-items: center !important;
		justify-content: center !important;
		flex-shrink: 0 !important;
		width: 38px !important;
		height: 38px !important;
		min-width: 38px !important;
		font-size: 1.55rem !important;
		line-height: 1 !important;
		margin: 0 !important;
		padding: 0 !important;
		color: var(--text-main);
		background: rgba(255, 255, 255, 0.05);
		border: 1px solid var(--border-color);
		border-radius: var(--radius-sm);
		cursor: pointer;
		transition: all 0.2s ease;
	}
	.site-header.scrolled .nav-wrapper {
		padding: 0.35rem 0.25rem !important;
		row-gap: 0 !important;
	}
	.site-header.scrolled .logo-link {
		padding-top: 0 !important;
	}
	.site-header.scrolled .site-logo {
		height: 24px !important;
		max-height: 24px !important;
		max-width: 100% !important;
	}
	.site-header.scrolled .mobile-nav-toggle {
		width: 36px !important;
		height: 36px !important;
		min-width: 36px !important;
		font-size: 1.45rem !important;
	}
	.site-header.scrolled .audio-toggle-btn {
		width: 32px !important;
		height: 32px !important;
		min-width: 32px !important;
		font-size: 0.95rem !important;
	}
	.mobile-nav-toggle:hover {
		background: var(--bg-surface-hover);
		border-color: var(--primary);
		color: var(--accent-gold);
	}
	.nav-links {
		display: none;
	}
	.site-header.nav-open .nav-links,
	.nav-links.is-open {
		display: flex !important;
		flex-direction: column !important;
		position: absolute !important;
		top: 100% !important;
		left: 0 !important;
		right: 0 !important;
		width: 100% !important;
		background: var(--bg-surface) !important;
		padding: 0.75rem 1rem 1.25rem !important;
		border-bottom: 1px solid var(--border-color) !important;
		box-shadow: 0 16px 36px rgba(0, 0, 0, 0.75) !important;
		z-index: 1001 !important;
		gap: 0.35rem !important;
		margin: 0 !important;
		list-style: none !important;
	}
	.site-header.nav-open .nav-links li,
	.nav-links.is-open li {
		width: 100% !important;
		display: block !important;
		margin: 0 !important;
		padding: 0 !important;
	}
	.site-header.nav-open .nav-link,
	.nav-links.is-open .nav-link {
		display: flex !important;
		align-items: center !important;
		width: 100% !important;
		padding: 0.75rem 1rem !important;
		font-size: 1rem !important;
		font-weight: 600 !important;
		color: var(--text-main) !important;
		border-radius: var(--radius-sm) !important;
		border: 1px solid transparent !important;
		background: transparent !important;
		text-align: left !important;
		transition:
			background 0.15s ease,
			color 0.15s ease,
			border-color 0.15s ease !important;
	}
	.site-header.nav-open .nav-link:hover,
	.nav-links.is-open .nav-link:hover {
		background: var(--bg-surface-hover) !important;
		color: var(--accent-gold) !important;
		border-color: rgba(245, 158, 11, 0.25) !important;
	}
	.site-header.nav-open .nav-link.active,
	.nav-links.is-open .nav-link.active {
		background: rgba(99, 102, 241, 0.12) !important;
		color: var(--primary) !important;
		border-color: rgba(99, 102, 241, 0.3) !important;
	}
	.site-header.nav-open .mobile-nav-toggle {
		background: var(--bg-surface-hover) !important;
		border-color: var(--primary) !important;
		color: var(--accent-gold) !important;
	}
	.footer-grid {
		grid-template-columns: 1fr;
	}
	.footer-brand {
		display: flex !important;
		flex-direction: column !important;
		align-items: center !important;
		text-align: center !important;
	}
	.footer-cta-link {
		margin: 1.1rem auto 0 !important;
		align-self: center !important;
	}
	.footer-bottom {
		flex-direction: column;
		gap: 0.75rem;
		text-align: center;
	}

	/* ==========================================================================
	   MOBILE CENTERING: HEADINGS, LABELS, BADGES & ICONS (max-width: 768px)
	   ========================================================================== */

	/* 1. All Headings & Titles Centered with Responsive Word Wrapping */
	h1,
	h2,
	h3,
	h4,
	h5,
	h6,
	.hero-title,
	.hero-subtitle,
	.realm-title,
	.realm-desc,
	.game-card-title,
	.game-card-desc,
	.codex-header h1,
	.codex-header h2,
	.codex-content h3,
	.formula-title,
	.footer-brand h3,
	.footer-brand p,
	.footer-brand-note,
	.footer-column h4,
	.dossier-name,
	.dossier-subtitle,
	.dossier-content-block h2,
	.contribution-card h3,
	.contribution-card p,
	.lore-callout h3,
	.lore-callout p,
	.quest-bridge-info h3,
	.quest-bridge-info p,
	.mathematician-card h3,
	.mathematician-card .card-desc,
	.mathematician-card .card-quote,
	.section-header,
	.section-header h2,
	.section-title,
	.arcade-title,
	.overlay-title,
	.overlay-subtitle {
		text-align: center !important;
		overflow-wrap: break-word !important;
		word-wrap: break-word !important;
		hyphens: auto;
	}

	h1,
	.hero-title {
		font-size: clamp(1.75rem, 6vw, 2.4rem) !important;
		line-height: 1.2 !important;
	}
	h2,
	.section-title,
	.realm-title {
		font-size: clamp(1.35rem, 5vw, 1.85rem) !important;
		line-height: 1.25 !important;
	}
	h3,
	.game-card-title {
		font-size: clamp(1.1rem, 4vw, 1.35rem) !important;
		line-height: 1.3 !important;
	}
	.dossier-name {
		font-size: clamp(1.6rem, 6vw, 2.2rem) !important;
		line-height: 1.2 !important;
	}
	.hero-subtitle {
		font-size: 0.98rem !important;
		line-height: 1.6 !important;
	}

	.hero-section {
		text-align: center !important;
	}
	.realm-kicker,
	.realm-kicker-advanced,
	.math-kicker {
		display: block !important;
		text-align: center !important;
		margin-left: auto !important;
		margin-right: auto !important;
		margin-bottom: 0.5rem !important;
		width: 100% !important;
	}
	.hero-section-syllabus {
		text-align: center !important;
	}
	.hero-section-syllabus p {
		text-align: center !important;
		margin-left: auto !important;
		margin-right: auto !important;
	}

	.hero-subtitle {
		margin-left: auto !important;
		margin-right: auto !important;
	}

	.codex-header {
		flex-direction: column !important;
		align-items: center !important;
		justify-content: center !important;
		text-align: center !important;
		gap: 0.5rem !important;
	}

	.dossier-content-block h2,
	.contribution-card h3,
	.lore-callout h3,
	.quest-bridge-info h3 {
		justify-content: center !important;
		text-align: center !important;
	}

	/* 2. All Labels, Kickers & Badges Centered */
	.realm-kicker,
	.realm-kicker-advanced,
	.math-kicker,
	.section-kicker,
	.hero-kicker,
	.hero-section-syllabus,
	.hero-lead,
	label,
	.control-label,
	.realm-badge,
	.badge-basic,
	.badge-advanced,
	.badge-status,
	.codex-badge,
	.math-quote-badge,
	.dossier-era-badge,
	.card-era,
	.game-xp-tag,
	.hero-tagline,
	.player-level-badge,
	.difficulty-label,
	.hud-stat-label,
	.combo-badge,
	.concept-debrief-badge,
	.target-label,
	.bounty-badge {
		text-align: center !important;
		margin-left: auto !important;
		margin-right: auto !important;
	}

	label {
		display: block !important;
		width: 100% !important;
	}

	.control-label {
		display: flex !important;
		justify-content: center !important;
		text-align: center !important;
		width: 100% !important;
	}


	.realm-badge,
	.badge-basic,
	.badge-advanced {
		align-self: center !important;
		margin-bottom: 0.75rem !important;
		display: inline-flex !important;
		justify-content: center !important;
		align-items: center !important;
	}

	.codex-badge,
	.dossier-era-badge,
	.math-quote-badge,
	.player-level-badge,
	.game-xp-tag,
	.combo-badge,
	.concept-debrief-badge {
		display: inline-flex !important;
		justify-content: center !important;
		align-items: center !important;
	}

	.hero-tagline {
		display: inline-flex !important;
		justify-content: center !important;
		align-items: center !important;
	}

	.math-quote-header {
		flex-direction: column !important;
		align-items: center !important;
		justify-content: center !important;
		gap: 0.6rem !important;
		text-align: center !important;
	}

	.math-quote-badge {
		margin: 0 auto !important;
	}

	.quote-shuffle-btn {
		margin: 0 auto !important;
		display: inline-flex !important;
		align-items: center !important;
		justify-content: center !important;
	}

	.math-quote-text {
		text-align: center !important;
	}

	.math-quote-author {
		text-align: center !important;
		justify-content: center !important;
		display: flex !important;
		flex-wrap: wrap !important;
		align-items: center !important;
		gap: 0.35rem !important;
	}

	.dossier-tags {
		justify-content: center !important;
		text-align: center !important;
	}

	.dossier-tag {
		text-align: center !important;
	}

	.card-era {
		text-align: center !important;
		margin-left: auto !important;
		margin-right: auto !important;
	}

	/* 3. All Icons, Avatars & Features Centered */
	.icon,
	span.icon,
	.game-icon-large,
	.card-avatar,
	.dossier-portrait,
	.vial-icon {
		margin-left: auto !important;
		margin-right: auto !important;
	}

	.icon,
	span.icon {
		display: inline-flex !important;
		align-items: center !important;
		justify-content: center !important;
		text-align: center !important;
	}

	.game-card-header {
		flex-direction: column !important;
		align-items: center !important;
		justify-content: center !important;
		gap: 0.65rem !important;
		text-align: center !important;
	}

	.game-icon-large {
		display: flex !important;
		align-items: center !important;
		justify-content: center !important;
	}

	.realm-features {
		padding: 0 !important;
		gap: 0.65rem !important;
		width: 100% !important;
	}

	.realm-features li {
		flex-direction: row !important;
		align-items: flex-start !important;
		text-align: left !important;
		gap: 0.6rem !important;
		width: 100% !important;
		font-size: 0.9rem !important;
		line-height: 1.5 !important;
		overflow-wrap: break-word !important;
		word-wrap: break-word !important;
	}

	.realm-features li span.icon {
		font-size: 1.05rem !important;
		margin: 0.1rem 0 0 0 !important;
		display: inline-block !important;
		flex-shrink: 0 !important;
	}

	.btn {
		white-space: normal !important;
		text-align: center !important;
		max-width: 100% !important;
		word-break: normal !important;
		overflow-wrap: break-word !important;
	}

	.breadcrumb-nav {
		justify-content: flex-start;
		text-align: left;
	}

	.dossier-portrait-wrap {
		margin: 0 auto !important;
		display: flex !important;
		justify-content: center !important;
	}

	.footer-column ul {
		align-items: center !important;
		text-align: center !important;
	}

	.footer-column li {
		text-align: center !important;
	}

	/* 4. Card & Container Layout Adjustments on Mobile */
	.game-card {
		text-align: center !important;
		align-items: center !important;
	}

	.mathematician-card {
		text-align: center !important;
		align-items: center !important;
	}

	.mathematician-card .card-avatar {
		margin: 0 auto 1.1rem auto !important;
		display: block !important;
	}

	.daily-bounty-card {
		flex-direction: column !important;
		text-align: center !important;
		justify-content: center !important;
		align-items: center !important;
	}

	.daily-bounty-card h3,
	.daily-bounty-card p {
		text-align: center !important;
	}

	.bounty-badge {
		margin: 0 auto 0.25rem auto !important;
		text-align: center !important;
		display: block !important;
	}

	.bounty-actions {
		justify-content: center !important;
		width: 100% !important;
	}

	.hero-stats-pill {
		flex-direction: column !important;
		gap: 0.4rem !important;
		text-align: center !important;
		justify-content: center !important;
		margin-left: auto !important;
		margin-right: auto !important;
	}

	.profile-header-row,
	.profile-identity {
		flex-direction: column !important;
		align-items: center !important;
		justify-content: center !important;
		text-align: center !important;
	}

	.profile-avatar {
		margin: 0 auto !important;
	}

	.profile-details h2,
	.profile-details p {
		text-align: center !important;
	}

	.profile-stats-row {
		justify-content: center !important;
	}

	/* 5. Mobile Codex & Formula Math Overflow Protection */
	.codex-section {
		padding: 1.25rem 1rem !important;
		margin: 2rem 0 !important;
		max-width: 100% !important;
		box-sizing: border-box !important;
		overflow-x: hidden !important;
	}

	.codex-content {
		max-width: 100% !important;
		box-sizing: border-box !important;
		overflow-x: hidden !important;
	}

	.formula-card {
		padding: 1rem 0.75rem !important;
		margin: 1.25rem 0 !important;
		border-radius: var(--radius-md) !important;
		max-width: 100% !important;
		box-sizing: border-box !important;
		overflow-x: auto !important;
		-webkit-overflow-scrolling: touch !important;
	}

	.formula-math {
		font-size: 0.95rem !important;
		padding: 0.35rem 0 !important;
		max-width: 100% !important;
		overflow-x: auto !important;
		-webkit-overflow-scrolling: touch !important;
	}

	.formula-math .katex {
		font-size: 0.95em !important;
		max-width: 100% !important;
	}

	.formula-math .katex-display {
		margin: 0.35rem 0 !important;
		padding: 0.25rem 0 !important;
		overflow-x: auto !important;
		-webkit-overflow-scrolling: touch !important;
	}
}

@media (max-width: 480px) {
	.container {
		padding-left: 0.75rem !important;
		padding-right: 0.75rem !important;
	}
	.nav-wrapper {
		padding: 0.4rem 0 !important;
		gap: 0.35rem !important;
	}
	.logo-link {
		padding-top: 0 !important;
	}
	.site-logo {
		height: 24px !important;
		max-height: 24px !important;
		max-width: 100% !important;
	}
	.audio-toggle-btn {
		width: 32px !important;
		height: 32px !important;
		min-width: 32px !important;
		font-size: 0.92rem !important;
	}
	.mobile-nav-toggle {
		width: 34px !important;
		height: 34px !important;
		min-width: 34px !important;
		font-size: 1.35rem !important;
	}
	.site-header.scrolled .nav-wrapper {
		padding: 0.3rem 0 !important;
	}
	.site-header.scrolled .logo-link {
		padding-top: 0 !important;
	}
	.site-header.scrolled .site-logo {
		height: 20px !important;
		max-height: 20px !important;
		max-width: 100% !important;
	}
	.site-header.scrolled .mobile-nav-toggle {
		width: 32px !important;
		height: 32px !important;
		min-width: 32px !important;
		font-size: 1.3rem !important;
	}
	.site-header.scrolled .audio-toggle-btn {
		width: 28px !important;
		height: 28px !important;
		min-width: 28px !important;
		font-size: 0.85rem !important;
	}
	h1,
	.hero-title {
		font-size: clamp(1.45rem, 6.8vw, 1.85rem) !important;
		overflow-wrap: break-word !important;
	}
	h2,
	.section-title,
	.realm-title {
		font-size: clamp(1.2rem, 5.2vw, 1.45rem) !important;
		overflow-wrap: break-word !important;
	}
	h3,
	.game-card-title {
		font-size: clamp(1rem, 4.2vw, 1.18rem) !important;
		overflow-wrap: break-word !important;
	}
	.dossier-name {
		font-size: clamp(1.4rem, 6vw, 1.8rem) !important;
		overflow-wrap: break-word !important;
	}
	.hero-subtitle {
		font-size: 0.9rem !important;
	}
	/* Use icons only where necessary - hide decorative tagline icon on small screens to prevent line splitting */
	.hero-tagline span:first-child {
		display: none;
	}
	.hero-tagline {
		font-size: 0.76rem !important;
		padding: 0.3rem 0.75rem !important;
		white-space: normal !important;
		text-align: center !important;
	}
	.formula-card {
		padding: 0.85rem 0.6rem !important;
	}
	.formula-math {
		font-size: 0.84rem !important;
	}
	.formula-math .katex {
		font-size: 0.88em !important;
	}
}

/* ==========================================================================
   MATHEMATICIAN CODEX & DOSSIER STYLES
   ========================================================================== */

/* Breadcrumb Navigation */
.breadcrumb-nav {
	margin: 0.75rem 0 1.35rem;
	font-size: 0.88rem;
	font-family: var(--font-sans);
	color: #64748b;
	display: flex;
	align-items: center;
	gap: 0.45rem;
	flex-wrap: wrap;
}

.breadcrumb-nav a {
	color: var(--accent-cyan);
	text-decoration: none;
	font-weight: 500;
	transition:
		color 0.2s ease,
		text-decoration 0.2s ease;
}

.breadcrumb-nav a:hover {
	color: #38bdf8;
	text-decoration: underline;
}

.breadcrumb-nav span.sep {
	color: #475569;
	user-select: none;
}

.breadcrumb-nav .current,
.breadcrumb-nav span:last-child:not(.sep) {
	color: #f1f5f9;
	font-weight: 600;
}

/* Dossier Hero Card */
.dossier-hero {
	background: #0b101c;
	border: 1px solid rgba(245, 158, 11, 0.45);
	border-radius: 16px;
	padding: 2.25rem 2.5rem;
	margin-bottom: 1.5rem;
	display: flex;
	gap: 2.5rem;
	align-items: center;
	position: relative;
	overflow: hidden;
	box-shadow: 0 12px 36px rgba(0, 0, 0, 0.5);
}

/* Blueprint watermark in background */
.dossier-watermark {
	position: absolute;
	right: 0;
	top: 0;
	bottom: 0;
	width: 250px;
	height: 100%;
	pointer-events: none;
	opacity: 0.7;
	z-index: 0;
}

.dossier-portrait-wrap {
	flex-shrink: 0;
	display: flex;
	flex-direction: column;
	align-items: center;
	z-index: 1;
}

.dossier-portrait {
	width: 140px;
	height: 140px;
	border-radius: 50%;
	object-fit: cover;
	border: 2px solid #f59e0b;
	box-shadow:
		0 0 0 4px #0b101c,
		0 0 0 5.5px rgba(245, 158, 11, 0.65);
	background: var(--bg-surface-elevated);
	display: block;
}

.dossier-era-text {
	color: #94a3b8;
	font-family: var(--font-sans);
	font-size: 0.88rem;
	font-weight: 500;
	margin-top: 0.85rem;
	text-align: center;
	white-space: nowrap;
}

.dossier-meta {
	flex-grow: 1;
	z-index: 1;
}

.dossier-kicker-row {
	display: flex;
	align-items: center;
	gap: 0.85rem;
	margin-bottom: 0.45rem;
}

.dossier-kicker {
	color: #f59e0b;
	font-family: var(--font-sans);
	font-size: 0.78rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	white-space: nowrap;
	flex-shrink: 0;
}

.dossier-kicker-line {
	flex: 1;
	max-width: 280px;
	height: 1px;
	background: rgba(245, 158, 11, 0.35);
}

.dossier-name {
	font-family: var(--font-sans);
	font-size: clamp(2rem, 3.5vw, 2.5rem);
	font-weight: 800;
	color: #ffffff;
	line-height: 1.18;
	margin: 0 0 0.35rem 0;
	letter-spacing: -0.02em;
}

.dossier-subtitle {
	color: #06b6d4;
	font-family: var(--font-sans);
	font-size: 1.15rem;
	font-weight: 600;
	margin-bottom: 0.2rem;
	line-height: 1.35;
}

.dossier-subtitle-orig {
	color: #94a3b8;
	font-family: var(--font-sans);
	font-size: 0.96rem;
	font-style: italic;
	margin-bottom: 1.15rem;
}

.dossier-known-row {
	display: flex;
	align-items: center;
	gap: 0.65rem;
	margin-bottom: 0.65rem;
}

.dossier-known-label {
	color: #94a3b8;
	font-family: var(--font-sans);
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	white-space: nowrap;
}

.dossier-known-line {
	width: 50px;
	height: 1px;
	background: rgba(255, 255, 255, 0.15);
}

.dossier-tags {
	display: flex;
	flex-wrap: wrap;
	gap: 0.55rem;
}

.dossier-tag {
	display: inline-flex;
	align-items: center;
	background: rgba(15, 23, 42, 0.6);
	border: 1px solid rgba(255, 255, 255, 0.16);
	border-radius: 6px;
	padding: 0.32rem 0.85rem;
	font-family: var(--font-sans);
	font-size: 0.82rem;
	font-weight: 500;
	color: #f1f5f9;
	white-space: nowrap;
	transition:
		border-color 0.2s ease,
		background 0.2s ease;
}

.dossier-tag:hover {
	border-color: rgba(56, 189, 248, 0.5);
	background: rgba(56, 189, 248, 0.08);
	color: #ffffff;
}

/* Quote Callout */
.dossier-quote-card {
	background: linear-gradient(
		90deg,
		rgba(139, 92, 246, 0.08) 0%,
		rgba(15, 23, 42, 0.85) 100%
	);
	border: 1px solid rgba(139, 92, 246, 0.25);
	border-left: 4px solid #8b5cf6;
	border-radius: 8px;
	padding: 1.15rem 1.65rem;
	margin-bottom: 2rem;
	font-family: var(--font-sans);
	box-shadow: 0 6px 20px rgba(0, 0, 0, 0.25);
}

.dossier-quote-text {
	font-family: var(--font-sans);
	font-size: 1.05rem;
	font-style: italic;
	color: #f1f5f9;
	line-height: 1.6;
	margin: 0;
}

.dossier-quote-cite {
	display: block;
	margin-top: 0.55rem;
	font-family: var(--font-sans);
	font-size: 0.92rem;
	font-style: normal;
	font-weight: 700;
	color: #f59e0b;
}

/* Content Blocks */
.dossier-content-block {
	background: var(--bg-surface);
	border: 1px solid var(--border-color);
	border-radius: var(--radius-lg);
	padding: 2rem;
	margin-bottom: 2rem;
}

.dossier-content-block h2 {
	font-size: 1.45rem;
	color: #fff;
	margin-bottom: 1.2rem;
	display: flex;
	align-items: center;
	gap: 0.6rem;
	border-bottom: 1px solid var(--border-color);
	padding-bottom: 0.75rem;
}

.dossier-content-block p {
	color: var(--text-main);
	line-height: 1.8;
	margin-bottom: 1rem;
	font-size: 1rem;
}

.dossier-content-block p:last-child {
	margin-bottom: 0;
}

/* Contributions Grid */
.contributions-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
	gap: 1.25rem;
	margin-top: 1.25rem;
}

.contribution-card {
	background: var(--bg-surface-elevated);
	border: 1px solid var(--border-color);
	border-radius: var(--radius-md);
	padding: 1.25rem;
	transition:
		transform 0.2s ease,
		border-color 0.2s ease;
}

.contribution-card:hover {
	transform: translateY(-2px);
	border-color: var(--primary);
}

.contribution-card h3 {
	font-size: 1.08rem;
	color: var(--accent-gold);
	margin-bottom: 0.5rem;
	display: flex;
	align-items: center;
	gap: 0.4rem;
}

.contribution-card p {
	font-size: 0.92rem;
	color: var(--text-muted);
	line-height: 1.6;
	margin-bottom: 0;
}

/* Legendary Lore Box */
.lore-callout {
	background: linear-gradient(
		135deg,
		rgba(245, 158, 11, 0.06),
		rgba(99, 102, 241, 0.06)
	);
	border: 1px dashed rgba(245, 158, 11, 0.4);
	border-radius: var(--radius-md);
	padding: 1.4rem;
	margin: 1.5rem 0;
}

.lore-callout h3 {
	font-size: 1.05rem;
	color: var(--accent-gold);
	margin-bottom: 0.5rem;
	display: flex;
	align-items: center;
	gap: 0.4rem;
}

.lore-callout p {
	font-size: 0.94rem;
	color: var(--text-main);
	line-height: 1.65;
	margin-bottom: 0;
}

/* Quest Connection Banner */
.quest-bridge-card {
	background: linear-gradient(
		135deg,
		rgba(16, 185, 129, 0.1),
		rgba(56, 189, 248, 0.1)
	);
	border: 1px solid rgba(52, 211, 153, 0.3);
	border-radius: var(--radius-lg);
	padding: 1.75rem;
	margin-top: 2rem;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1.5rem;
	flex-wrap: wrap;
}

.quest-bridge-info h3 {
	font-size: 1.2rem;
	color: #34d399;
	margin-bottom: 0.35rem;
	display: flex;
	align-items: center;
	gap: 0.5rem;
}

.quest-bridge-info p {
	font-size: 0.95rem;
	color: var(--text-muted);
	margin-bottom: 0;
}

/* Dossier Pagination */
.dossier-pagination {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 1rem;
	margin-top: 3rem;
	padding-top: 1.5rem;
	border-top: 1px solid var(--border-color);
	flex-wrap: wrap;
}

.dossier-page-btn {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	padding: 0.65rem 1.25rem;
	background: var(--bg-surface-elevated);
	border: 1px solid var(--border-color);
	border-radius: var(--radius-md);
	color: var(--text-main);
	font-size: 0.92rem;
	font-weight: 600;
	text-decoration: none;
	transition: all 0.2s ease;
}

.dossier-page-btn:hover {
	background: var(--bg-surface-hover);
	border-color: var(--primary);
	color: #fff;
}

/* Hall of Mathematicians Directory Gallery & Filter System */
.math-filter-strip {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 0.5rem 0.6rem;
	margin: 0 auto 1rem;
	max-width: 980px;
}

.math-filter-btn {
	background: #111827;
	border: 1px solid rgba(255, 255, 255, 0.1);
	border-radius: 9999px;
	color: #94a3b8;
	padding: 0.45rem 1.05rem;
	font-size: 0.85rem;
	font-weight: 600;
	cursor: pointer;
	transition: all 0.2s ease;
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
}

.math-filter-btn:hover {
	color: #f8fafc;
	background: #1e293b;
	border-color: rgba(56, 189, 248, 0.4);
}

.math-filter-btn.active {
	background: #38bdf8;
	color: #0f172a;
	border-color: #38bdf8;
	font-weight: 700;
	box-shadow: 0 0 14px rgba(56, 189, 248, 0.35);
}

.filter-results-status {
	text-align: center;
	font-size: 0.88rem;
	color: #94a3b8;
	margin-bottom: 2rem;
	font-weight: 500;
}

.mathematicians-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(310px, 1fr));
	gap: 1.75rem;
	justify-content: center;
}

.mathematician-card {
	background: var(--bg-surface);
	border: 1px solid var(--border-color);
	border-radius: var(--radius-lg);
	padding: 1.6rem 1.4rem;
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	position: relative;
	transition:
		transform 0.25s ease,
		border-color 0.25s ease,
		box-shadow 0.25s ease;
}

.mathematician-card:hover {
	transform: translateY(-5px);
	border-color: rgba(56, 189, 248, 0.4);
	box-shadow: 0 14px 30px rgba(0, 0, 0, 0.45);
}

.mathematician-card.card-hidden {
	display: none !important;
}

.mathematician-card .card-avatar {
	width: 96px;
	height: 96px;
	border-radius: 50%;
	object-fit: cover;
	border: 2px solid rgba(56, 189, 248, 0.3);
	box-shadow: 0 4px 14px rgba(0, 0, 0, 0.35);
	margin-bottom: 0.9rem;
	background: var(--bg-surface-elevated);
}

.mathematician-card h3.card-name {
	font-size: 1.22rem;
	font-weight: 700;
	color: #f8fafc;
	margin-bottom: 0.25rem;
}

.mathematician-card .card-era {
	font-size: 0.82rem;
	color: #38bdf8;
	font-weight: 600;
	margin-bottom: 0.6rem;
}

.mathematician-card .card-fields {
	font-size: 0.8rem;
	color: #cbd5e1;
	margin-bottom: 0.95rem;
	line-height: 1.4;
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 0.35rem;
}

.mathematician-card .field-tag {
	background: rgba(255, 255, 255, 0.05);
	border: 1px solid rgba(255, 255, 255, 0.08);
	border-radius: 4px;
	padding: 0.15rem 0.5rem;
	font-size: 0.76rem;
	color: #cbd5e1;
	font-weight: 600;
}

.mathematician-card .card-quote {
	font-size: 0.85rem;
	line-height: 1.5;
	font-style: italic;
	color: #cbd5e1;
	margin-bottom: 1.25rem;
	padding: 0.75rem 0.9rem;
	background: rgba(15, 23, 42, 0.6);
	border-radius: 6px;
	border-left: 2px solid #38bdf8;
	text-align: left;
	width: 100%;
	flex-grow: 1;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
}

.mathematician-card .card-quote-source {
	font-size: 0.72rem;
	font-style: normal;
	color: #64748b;
	margin-top: 0.5rem;
	text-align: right;
}

.mathematician-card .btn-card-meet {
	width: 100%;
	margin-top: auto;
	padding: 0.65rem 1rem;
	background: rgba(56, 189, 248, 0.08);
	border: 1px solid rgba(56, 189, 248, 0.3);
	border-radius: 6px;
	color: #38bdf8;
	font-size: 0.88rem;
	font-weight: 700;
	text-decoration: none;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.4rem;
	transition: all 0.2s ease;
}

.mathematician-card .btn-card-meet:hover {
	background: #38bdf8;
	color: #0f172a;
	border-color: #38bdf8;
	box-shadow: 0 0 14px rgba(56, 189, 248, 0.35);
	transform: translateY(-2px);
}

/* Euclid Featured Card Styling */
.mathematician-card.card-featured-euclid {
	border-color: rgba(245, 158, 11, 0.3);
}

.mathematician-card.card-featured-euclid:hover {
	border-color: #f59e0b;
	box-shadow: 0 14px 30px rgba(245, 158, 11, 0.15);
}

.mathematician-card.card-featured-euclid .card-avatar {
	border-color: #f59e0b;
}

.mathematician-card.card-featured-euclid .card-quote {
	border-left-color: #f59e0b;
}

.mathematician-card.card-featured-euclid .btn-card-meet {
	background: rgba(245, 158, 11, 0.1);
	border-color: rgba(245, 158, 11, 0.35);
	color: #fbbf24;
}

.mathematician-card.card-featured-euclid .btn-card-meet:hover {
	background: #f59e0b;
	color: #0f172a;
	border-color: #f59e0b;
	box-shadow: 0 0 14px rgba(245, 158, 11, 0.35);
}

/* Empty filter results state */
.math-empty-state {
	text-align: center;
	padding: 3rem 1.5rem;
	background: var(--bg-surface);
	border: 1px dashed var(--border-color);
	border-radius: var(--radius-lg);
	max-width: 500px;
	margin: 2rem auto;
	color: var(--text-muted);
}

/* Mobile responsive for dossier */
@media (max-width: 768px) {
	.dossier-hero {
		flex-direction: column;
		text-align: center;
		padding: 1.5rem;
		gap: 1.25rem;
	}
	.dossier-portrait {
		width: 110px;
		height: 110px;
	}
	.dossier-name {
		font-size: 1.65rem;
	}
	.dossier-tags {
		justify-content: center;
	}
	.quest-bridge-card {
		flex-direction: column;
		text-align: center;
	}
	.dossier-pagination {
		flex-direction: column;
		align-items: stretch;
	}
	.dossier-page-btn {
		justify-content: center;
	}
}

/* ==========================================================================
   HOMEPAGE UX REFINEMENTS (SCREENSHOT ALIGNMENT)
   ========================================================================== */

/* Hero CTA Button & Subtext */
/* Hero CTA Button */
.hero-cta-wrap {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0.5rem;
	margin: 1.15rem 0 1.5rem;
}

.btn-hero-cta {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	background: #3b82f6;
	color: #ffffff;
	font-weight: 700;
	font-size: 1.05rem;
	padding: 0.85rem 2rem;
	border-radius: var(--radius-full);
	text-decoration: none;
	box-shadow: 0 4px 20px rgba(59, 130, 246, 0.4);
	transition:
		transform 0.2s ease,
		background-color 0.2s ease,
		box-shadow 0.2s ease;
}

.btn-hero-cta:hover {
	background: #2563eb;
	transform: translateY(-2px);
	box-shadow: 0 6px 25px rgba(59, 130, 246, 0.5);
}

/* 4-Item Compact Trust Strip */
.trust-strip {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 0.75rem 1.25rem;
	background: rgba(15, 23, 42, 0.65);
	border: 1px solid rgba(255, 255, 255, 0.08);
	border-radius: 12px;
	padding: 0.9rem 1.25rem;
	margin: 0 auto 2.25rem;
	max-width: 860px;
	text-align: center;
	box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2);
}

.trust-item {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 0.55rem;
	font-size: 0.88rem;
	font-weight: 600;
	color: #f1f5f9;
	white-space: nowrap;
}

.trust-check-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 18px;
	height: 18px;
	border-radius: 50%;
	background: rgba(16, 185, 129, 0.15);
	color: #10b981;
	font-weight: 800;
	font-size: 0.78rem;
	line-height: 1;
	flex-shrink: 0;
}

/* Four Corner Flourishes */
.realm-corner {
	position: absolute !important;
	width: 20px;
	height: 20px;
	pointer-events: none;
	z-index: 2;
}

.corner-tl {
	top: -1px !important;
	left: -1px !important;
}

.corner-tr {
	top: -1px !important;
	right: -1px !important;
	transform: scaleX(-1);
}

.corner-bl {
	bottom: -1px !important;
	left: -1px !important;
	transform: scaleY(-1);
}

.corner-br {
	bottom: -1px !important;
	right: -1px !important;
	transform: scale(-1, -1);
}

@media (max-width: 768px) {
	/* Hide corner bracket flourishes on mobile so they never clutter or stack on small screens */
	.realm-corner {
		display: none !important;
	}
}

.realm-header-row {
	display: flex;
	align-items: center;
	gap: 0.85rem;
	margin-bottom: 1.15rem;
	width: 100%;
}

.realm-kicker {
	font-size: 0.78rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	white-space: nowrap;
	flex-shrink: 0;
}

.realm-basic .realm-kicker {
	color: #10b981;
}

.realm-advanced .realm-kicker {
	color: #818cf8;
}

.realm-header-line {
	flex: 1;
	height: 1px;
	background: rgba(217, 119, 6, 0.45);
	min-width: 12px;
}

.realm-guild-badge {
	font-family: var(--font-sans);
	font-size: 0.82rem;
	font-weight: 700;
	color: #fef08a;
	padding: 0.26rem 0.85rem;
	border: 1px solid rgba(217, 119, 6, 0.7);
	border-radius: 6px;
	background: rgba(245, 158, 11, 0.03);
	white-space: nowrap;
	flex-shrink: 0;
	letter-spacing: 0.02em;
}

.realm-title {
	font-family: var(--font-sans);
	font-size: clamp(1.65rem, 2.3vw, 2.05rem);
	font-weight: 800;
	color: #ffffff;
	line-height: 1.22;
	margin: 0 0 0.85rem 0;
	letter-spacing: -0.02em;
}

.realm-desc {
	color: #94a3b8;
	font-size: 0.94rem;
	line-height: 1.55;
	margin: 0 0 1.4rem 0;
	min-height: 2.85rem;
}

/* Realm Topic Tags */
.realm-tags {
	display: flex;
	flex-wrap: wrap;
	gap: 0.55rem;
	margin: 0 0 1.55rem 0;
}

.realm-tag {
	display: inline-flex;
	align-items: center;
	background: rgba(15, 23, 42, 0.6);
	border: 1px solid rgba(217, 119, 6, 0.55);
	color: #f1f5f9;
	font-family: var(--font-sans);
	font-size: 0.84rem;
	font-weight: 600;
	padding: 0.35rem 0.95rem;
	border-radius: 9999px;
	letter-spacing: 0.01em;
	transition: all 0.2s ease;
}

.realm-tag:hover {
	background: rgba(245, 158, 11, 0.12);
	border-color: rgba(245, 158, 11, 0.85);
	color: #ffffff;
	transform: translateY(-1px);
}

.realm-recommend {
	font-size: 0.94rem;
	color: #cbd5e1;
	margin: 0 0 1.65rem 0;
	display: flex;
	align-items: baseline;
	flex-wrap: wrap;
	gap: 0.35rem;
}

.recommend-link {
	font-weight: 600;
	text-decoration: underline;
	text-underline-offset: 4px;
	text-decoration-thickness: 1.5px;
	display: inline-flex;
	align-items: baseline;
	gap: 0.2rem;
	transition: opacity 0.2s ease;
}

.recommend-link-basic {
	color: #10b981;
	text-decoration-color: #10b981;
}

.recommend-link-basic:hover {
	color: #34d399;
	text-decoration-color: #34d399;
}

.recommend-link-advanced {
	color: #818cf8;
	text-decoration-color: #818cf8;
}

.recommend-link-advanced:hover {
	color: #a78bfa;
	text-decoration-color: #a78bfa;
}

/* Explore Buttons */
.btn-realm-explore {
	display: block;
	width: 100%;
	text-align: center;
	font-family: var(--font-sans);
	font-size: 0.96rem;
	font-weight: 700;
	letter-spacing: 0.02em;
	padding: 0.85rem 1.5rem;
	border-radius: 8px;
	text-decoration: none;
	border: 1px solid rgba(217, 119, 6, 0.75);
	transition:
		transform 0.2s ease,
		box-shadow 0.2s ease,
		border-color 0.2s ease,
		background 0.2s ease;
	margin-top: auto;
}

.btn-novice-explore {
	background: linear-gradient(180deg, #092e2b 0%, #051a18 100%);
	color: #ffffff;
}

.btn-novice-explore:hover {
	background: linear-gradient(180deg, #0d3d39 0%, #082623 100%);
	border-color: rgba(245, 158, 11, 0.95);
	box-shadow: 0 0 20px rgba(16, 185, 129, 0.35);
	transform: translateY(-2px);
	color: #ffffff;
}

.btn-master-explore {
	background: linear-gradient(180deg, #181538 0%, #0e0d24 100%);
	color: #ffffff;
}

.btn-master-explore:hover {
	background: linear-gradient(180deg, #221e4e 0%, #141234 100%);
	border-color: rgba(245, 158, 11, 0.95);
	box-shadow: 0 0 20px rgba(129, 140, 248, 0.35);
	transform: translateY(-2px);
	color: #ffffff;
}

/* Today's Challenge Section */
.bounty-card-v2 {
	background: linear-gradient(
		135deg,
		rgba(245, 158, 11, 0.12) 0%,
		rgba(15, 23, 42, 0.85) 100%
	);
	border: 1px solid rgba(245, 158, 11, 0.35);
	border-left: 4px solid #f59e0b;
	border-radius: 14px;
	padding: 1.25rem 1.75rem;
	margin: 2rem auto;
	max-width: 900px;
	box-shadow: 0 6px 25px rgba(245, 158, 11, 0.12);
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 1.25rem;
}

.bounty-info-v2 {
	display: flex;
	flex-direction: column;
	gap: 0.25rem;
}

.bounty-tag-v2 {
	font-size: 0.76rem;
	font-weight: 800;
	color: #f59e0b;
	letter-spacing: 0.75px;
	text-transform: uppercase;
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
}

.bounty-title-v2 {
	font-size: 1.35rem;
	font-weight: 800;
	color: #f8fafc;
	margin: 0;
}

.bounty-desc-v2 {
	font-size: 0.92rem;
	color: #cbd5e1;
	margin: 0;
}

.btn-bounty-v2 {
	display: inline-block;
	background: linear-gradient(135deg, #fbbf24, #f59e0b);
	color: #451a03;
	font-weight: 700;
	font-size: 0.92rem;
	padding: 0.65rem 1.35rem;
	border-radius: 8px;
	text-decoration: none;
	transition:
		transform 0.2s ease,
		box-shadow 0.2s ease;
	box-shadow: 0 4px 15px rgba(245, 158, 11, 0.3);
}

.btn-bounty-v2:hover {
	background: #fbbf24;
	transform: translateY(-2px);
	box-shadow: 0 6px 20px rgba(245, 158, 11, 0.45);
}

/* Homepage Game Snapshots Section */
.homepage-snapshots-section {
	margin: 3rem auto;
	max-width: 1200px;
}

.homepage-snapshots-header {
	text-align: center;
	margin-bottom: 2rem;
}

.homepage-snapshots-kicker {
	font-size: 0.8rem;
	font-weight: 800;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: #38bdf8;
	display: block;
	margin-bottom: 0.35rem;
}

.homepage-snapshots-title {
	font-size: clamp(1.85rem, 3vw, 2.35rem);
	font-weight: 800;
	color: #ffffff;
	margin: 0 0 0.5rem;
}

.homepage-snapshots-desc {
	color: #cbd5e1;
	font-size: 1rem;
	margin: 0 auto;
	max-width: 560px;
}

.homepage-snapshots-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 1.5rem;
	margin-bottom: 2rem;
}

.homepage-snapshot-card {
	background: var(--bg-surface);
	border: 1px solid rgba(255, 255, 255, 0.08);
	border-radius: var(--radius-lg);
	padding: 1.35rem;
	display: flex;
	flex-direction: column;
	transition:
		transform 0.2s ease,
		border-color 0.2s ease,
		box-shadow 0.2s ease;
}

.homepage-snapshot-card:hover {
	transform: translateY(-3px);
}

.homepage-snapshot-card.snapshot-accent-amber:hover {
	border-color: rgba(245, 158, 11, 0.5);
	box-shadow: 0 8px 24px rgba(245, 158, 11, 0.15);
}

.homepage-snapshot-card.snapshot-accent-cyan:hover {
	border-color: rgba(56, 189, 248, 0.5);
	box-shadow: 0 8px 24px rgba(56, 189, 248, 0.15);
}

.homepage-snapshot-card.snapshot-accent-indigo:hover {
	border-color: rgba(129, 140, 248, 0.5);
	box-shadow: 0 8px 24px rgba(129, 140, 248, 0.15);
}

.snapshot-container {
	height: 135px;
	background: rgba(15, 23, 42, 0.75);
	border: 1px solid rgba(255, 255, 255, 0.06);
	border-radius: 10px;
	margin-bottom: 1.15rem;
	display: flex;
	align-items: center;
	justify-content: center;
	position: relative;
	overflow: hidden;
}

.snapshot-micro-cue {
	font-size: 0.76rem;
	font-weight: 700;
	padding: 0.2rem 0.6rem;
	border-radius: 4px;
	background: rgba(15, 23, 42, 0.9);
	border: 1px solid rgba(255, 255, 255, 0.1);
	margin-top: 0.6rem;
	display: inline-block;
	color: #94a3b8;
}

.homepage-snapshots-footer {
	text-align: center;
	margin-top: 1.5rem;
}

.btn-view-all-games {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	background: transparent;
	border: 1px solid rgba(56, 189, 248, 0.4);
	color: #38bdf8;
	font-weight: 700;
	font-size: 0.98rem;
	padding: 0.75rem 2rem;
	border-radius: var(--radius-full);
	text-decoration: none;
	transition: all 0.2s ease;
}

.btn-view-all-games:hover {
	background: rgba(56, 189, 248, 0.12);
	border-color: #38bdf8;
	color: #ffffff;
	transform: translateY(-1px);
}

/* ==========================================================================
   HOW YOU LEARN (Connected Visual Progression Timeline)
   ========================================================================== */
.how-you-learn-card {
	background: #090f1e;
	border: 1px solid rgba(56, 189, 248, 0.18);
	border-radius: 20px;
	padding: 3.5rem 3rem;
	margin: 3.5rem auto;
	max-width: 1120px;
	position: relative;
	overflow: hidden;
	box-shadow: 0 14px 40px rgba(0, 0, 0, 0.35);
}

/* Subtle Corner Dot Matrix Patterns */
.dot-matrix {
	position: absolute;
	width: 80px;
	height: 60px;
	background-image: radial-gradient(
		rgba(56, 189, 248, 0.22) 1.5px,
		transparent 1.5px
	);
	background-size: 16px 16px;
	pointer-events: none;
	z-index: 1;
}

.dot-matrix-tl {
	top: 2rem;
	left: 2rem;
}

.dot-matrix-tr {
	top: 2rem;
	right: 2rem;
}

.dot-matrix-story {
	bottom: 1.5rem;
	right: 2rem;
	width: 96px;
	height: 52px;
	background-image: radial-gradient(
		rgba(245, 158, 11, 0.2) 1.5px,
		transparent 1.5px
	);
	background-size: 16px 16px;
}

.how-you-learn-header-group {
	text-align: center;
	position: relative;
	z-index: 2;
	margin-bottom: 3.5rem;
}

.how-you-learn-kicker {
	font-size: 0.8rem;
	font-weight: 800;
	letter-spacing: 0.12em;
	color: #38bdf8;
	text-transform: uppercase;
	margin-bottom: 0.5rem;
	display: block;
}

.how-you-learn-title-main {
	font-size: clamp(2rem, 3.5vw, 2.5rem);
	font-weight: 800;
	color: #ffffff;
	margin: 0 0 0.6rem;
}

.how-you-learn-subtext {
	color: #94a3b8;
	font-size: 1.05rem;
	max-width: 620px;
	margin: 0 auto;
	line-height: 1.6;
}

/* Connected Step Timeline Flow */
.timeline-flow-track {
	position: relative;
	width: 100%;
}

/* Horizontal Track Bar with Colored Segments & Midpoint Dots */
.timeline-track-bar {
	position: absolute;
	top: 26px;
	left: 12.5%;
	right: 12.5%;
	height: 2px;
	display: flex;
	z-index: 1;
	pointer-events: none;
}

.track-segment {
	flex: 1;
	position: relative;
	height: 2px;
}

.track-seg-1 {
	background: linear-gradient(90deg, #06b6d4, #0284c7);
}

.track-seg-2 {
	background: linear-gradient(90deg, #0284c7, #8b5cf6);
}

.track-seg-3 {
	background: linear-gradient(90deg, #8b5cf6, #10b981);
}

.track-mid-dot {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	width: 8px;
	height: 8px;
	border-radius: 50%;
}

.track-seg-1 .track-mid-dot {
	background: #38bdf8;
	box-shadow: 0 0 8px rgba(56, 189, 248, 0.9);
}

.track-seg-2 .track-mid-dot {
	background: #60a5fa;
	box-shadow: 0 0 8px rgba(96, 165, 250, 0.9);
}

.track-seg-3 .track-mid-dot {
	background: #a78bfa;
	box-shadow: 0 0 8px rgba(167, 139, 250, 0.9);
}

.timeline-steps-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 1.5rem;
	position: relative;
	z-index: 2;
}

.timeline-step {
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
}

.timeline-node-wrap {
	display: flex;
	flex-direction: column;
	align-items: center;
	position: relative;
}

.timeline-v-line {
	display: none;
}

.timeline-step-info {
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
}

.timeline-node-circle {
	width: 52px;
	height: 52px;
	border-radius: 50%;
	background: #090f1e;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 1.25rem;
	font-weight: 800;
	color: #ffffff;
	margin-bottom: 1.25rem;
	position: relative;
	z-index: 3;
	transition:
		transform 0.25s ease,
		box-shadow 0.25s ease;
}

.timeline-step:hover .timeline-node-circle {
	transform: scale(1.1);
}

/* Glowing Node Variants */
.step-node-cyan {
	border: 2.5px solid #06b6d4;
	box-shadow: 0 0 20px rgba(6, 182, 212, 0.55);
}

.step-node-blue {
	border: 2.5px solid #0284c7;
	box-shadow: 0 0 20px rgba(2, 132, 199, 0.55);
}

.step-node-purple {
	border: 2.5px solid #8b5cf6;
	box-shadow: 0 0 20px rgba(139, 92, 246, 0.55);
}

.step-node-green {
	border: 2.5px solid #10b981;
	box-shadow: 0 0 20px rgba(16, 185, 129, 0.55);
}

.timeline-step-title {
	font-size: 1.25rem;
	font-weight: 700;
	color: #ffffff;
	margin: 0 0 0.55rem;
}

.timeline-step-desc {
	font-size: 0.92rem;
	color: #94a3b8;
	line-height: 1.55;
	margin: 0;
	max-width: 220px;
}

/* ==========================================================================
   WHY GANITHA LOKA EXISTS (2-Column Origin Story & Philosophy Panel)
   ========================================================================== */
.origin-split-card {
	background: #090f1e;
	border: 1px solid rgba(245, 158, 11, 0.25);
	border-left: 4px solid #f59e0b;
	border-radius: 16px;
	padding: 2.5rem 2.75rem;
	margin: 3.5rem auto;
	max-width: 1120px;
	display: grid;
	grid-template-columns: 1.08fr 1fr;
	gap: 2.5rem;
	align-items: stretch;
	box-shadow: 0 12px 35px rgba(0, 0, 0, 0.35);
	position: relative;
}

.origin-story-col {
	display: flex;
	flex-direction: column;
	justify-content: center;
	position: relative;
	padding-right: 1rem;
}

.origin-kicker {
	color: #f59e0b;
	font-size: 0.78rem;
	font-weight: 800;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	margin-bottom: 0.75rem;
	display: block;
}

.origin-title {
	color: #ffffff;
	font-size: clamp(1.65rem, 2.6vw, 2.05rem);
	font-weight: 800;
	line-height: 1.25;
	margin: 0 0 1rem;
}

.origin-desc {
	color: #cbd5e1;
	font-size: 0.96rem;
	line-height: 1.65;
	margin: 0 0 1.75rem;
	max-width: 480px;
}

.origin-actions {
	position: relative;
	z-index: 2;
}

.origin-actions-desktop {
	display: block;
}

.origin-actions-mobile {
	display: none;
}

.dot-matrix-amber {
	background-image: radial-gradient(
		rgba(245, 158, 11, 0.32) 1.5px,
		transparent 1.5px
	);
}

.btn-origin-story {
	background: rgba(245, 158, 11, 0.08);
	border: 1.5px solid #d97706;
	color: #fbbf24;
	padding: 0.7rem 1.45rem;
	border-radius: 8px;
	font-weight: 700;
	font-size: 0.92rem;
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	text-decoration: none;
	transition: all 0.2s ease;
	width: fit-content;
}

.btn-origin-story:hover {
	background: #f59e0b;
	color: #090d16;
	box-shadow: 0 4px 16px rgba(245, 158, 11, 0.35);
	transform: translateY(-2px);
}

/* Right Column: Embedded Philosophy Quote Panel */
.origin-quote-panel {
	background: rgba(13, 22, 38, 0.55);
	border: 1px solid rgba(255, 255, 255, 0.06);
	border-radius: 12px;
	padding: 2.25rem 2rem;
	position: relative;
	overflow: hidden;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
}

.quote-orbit-svg {
	position: absolute;
	right: -25px;
	top: 0;
	bottom: 0;
	height: 100%;
	width: auto;
	pointer-events: none;
	opacity: 0.9;
}

.quote-content-wrap {
	position: relative;
	z-index: 2;
	display: flex;
	flex-direction: column;
	height: 100%;
	justify-content: space-between;
}

.quote-glyph {
	color: #f59e0b;
	font-size: 2.8rem;
	line-height: 1;
	font-family: Georgia, serif;
	font-weight: 900;
	margin-bottom: 0.65rem;
	user-select: none;
}

.origin-quote-text {
	font-family: Georgia, 'Times New Roman', serif;
	font-style: italic;
	font-size: 1.22rem;
	line-height: 1.65;
	color: #f1f5f9;
	margin: 0 0 1.5rem;
}

.origin-quote-footer {
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
}

.quote-divider-dash {
	width: 32px;
	height: 2.5px;
	background: #f59e0b;
	border-radius: 2px;
	display: block;
}

.origin-quote-source {
	color: #94a3b8;
	font-size: 0.86rem;
	font-style: normal;
	font-weight: 500;
}

@media (max-width: 900px) {
	.homepage-snapshots-grid {
		grid-template-columns: repeat(2, 1fr);
	}
	.origin-split-card {
		grid-template-columns: 1fr;
		gap: 2rem;
		padding: 2.25rem 2rem;
	}
	.origin-story-col {
		padding-right: 0;
	}
	.how-you-learn-card {
		padding: 3rem 2rem;
	}
}

@media (max-width: 768px) {
	.trust-strip {
		grid-template-columns: repeat(2, 1fr);
		gap: 0.75rem 0.65rem;
		padding: 0.85rem 0.9rem;
	}
	.trust-item {
		white-space: normal;
		justify-content: flex-start;
		font-size: 0.84rem;
		line-height: 1.35;
		padding-left: 0.35rem;
	}
	.trust-item span:not(.trust-check-icon) {
		text-align: left;
	}
	.trust-check-icon {
		flex-shrink: 0;
	}
	/* Realm cards layout on smaller devices - Fully Centered */
	.realm-card {
		padding: 1.65rem 1.25rem 1.75rem;
		text-align: center !important;
		align-items: center !important;
	}
	.realm-header-row {
		flex-direction: column !important;
		align-items: center !important;
		justify-content: center !important;
		gap: 0.45rem !important;
		text-align: center !important;
		width: 100% !important;
	}
	.realm-header-line {
		display: none !important;
	}
	.realm-kicker {
		text-align: center !important;
		margin: 0 auto !important;
		font-size: clamp(0.7rem, 2.3vw, 0.78rem) !important;
	}
	.realm-guild-badge {
		font-size: clamp(0.72rem, 2.2vw, 0.78rem) !important;
		padding: 0.22rem 0.65rem !important;
		margin: 0 auto !important;
	}
	.realm-title {
		text-align: center !important;
		font-size: clamp(1.4rem, 4.8vw, 1.75rem) !important;
	}
	.realm-desc {
		text-align: center !important;
		font-size: clamp(0.88rem, 2.6vw, 0.94rem) !important;
		min-height: auto !important;
		margin-left: auto !important;
		margin-right: auto !important;
	}
	.realm-tags {
		justify-content: center !important;
	}
	.realm-recommend {
		text-align: center !important;
		display: flex !important;
		flex-direction: row !important;
		align-items: center !important;
		justify-content: center !important;
		flex-wrap: wrap !important;
		gap: 0.35rem !important;
	}
	.recommend-link {
		justify-content: center !important;
		text-align: center !important;
	}

	/* How You Learn: Headings & Labels Centered with CSS clamp */
	.how-you-learn-card {
		padding: 2.5rem 1.75rem;
		position: relative;
	}
	.dot-matrix-tl,
	.dot-matrix-tr {
		display: block;
		width: 44px;
		height: 44px;
		top: 18px;
		opacity: 0.85;
	}
	.dot-matrix-tl {
		left: 18px;
	}
	.dot-matrix-tr {
		right: 18px;
	}
	.how-you-learn-header-group {
		text-align: center;
		margin-bottom: 2.25rem;
	}
	.how-you-learn-kicker {
		text-align: center;
		margin: 0 auto 0.5rem;
		font-size: clamp(0.72rem, 2vw, 0.78rem);
	}
	.how-you-learn-title-main {
		text-align: center;
		margin: 0 auto 0.65rem;
		font-size: clamp(1.4rem, 4.2vw, 1.8rem);
	}
	.how-you-learn-subtext {
		text-align: center;
		max-width: 320px;
		margin: 0 auto;
		line-height: 1.5;
		font-size: clamp(0.85rem, 2.4vw, 0.94rem);
	}
	.timeline-track-bar {
		display: none;
	}
	.timeline-steps-grid {
		display: flex;
		flex-direction: column;
		gap: 2.25rem;
		max-width: 420px;
		margin: 0 auto;
		width: 100%;
	}
	.timeline-step {
		display: flex;
		flex-direction: row;
		align-items: flex-start;
		text-align: left;
		gap: 1.25rem;
		position: relative;
	}
	.timeline-node-wrap {
		position: relative;
		display: flex;
		flex-direction: column;
		align-items: center;
		flex-shrink: 0;
		width: 52px;
	}
	.timeline-node-circle {
		width: 52px;
		height: 52px;
		font-size: 1.25rem;
		font-weight: 800;
		margin-bottom: 0;
		flex-shrink: 0;
	}
	.timeline-v-line {
		display: block;
		position: absolute;
		top: 52px;
		bottom: -2.25rem;
		width: 2px;
		left: 50%;
		transform: translateX(-50%);
		z-index: 1;
	}
	.vline-1 {
		background: linear-gradient(180deg, #06b6d4, #0284c7);
	}
	.vline-2 {
		background: linear-gradient(180deg, #0284c7, #8b5cf6);
	}
	.vline-3 {
		background: linear-gradient(180deg, #8b5cf6, #10b981);
	}
	.v-mid-dot {
		position: absolute;
		top: 50%;
		left: 50%;
		transform: translate(-50%, -50%);
		width: 8px;
		height: 8px;
		border-radius: 50%;
	}
	.v-mid-dot-cyan {
		background: #38bdf8;
		box-shadow: 0 0 8px rgba(56, 189, 248, 0.9);
	}
	.v-mid-dot-blue {
		background: #60a5fa;
		box-shadow: 0 0 8px rgba(96, 165, 250, 0.9);
	}
	.v-mid-dot-purple {
		background: #a78bfa;
		box-shadow: 0 0 8px rgba(167, 139, 250, 0.9);
	}
	.timeline-step-info {
		display: flex;
		flex-direction: column;
		align-items: flex-start;
		text-align: left;
		flex: 1;
		padding-top: 0.15rem;
	}
	.timeline-step-title {
		font-size: clamp(1.1rem, 3.2vw, 1.22rem);
		font-weight: 800;
		color: #ffffff;
		margin: 0 0 0.35rem;
		text-align: left;
	}
	.timeline-step-desc {
		font-size: clamp(0.84rem, 2.2vw, 0.9rem);
		color: #94a3b8;
		line-height: 1.5;
		margin: 0;
		text-align: left;
		max-width: 100%;
	}

	/* Why Ganitha Loka Exists: Headings & Labels Centered with CSS clamp */
	.origin-split-card {
		display: flex;
		flex-direction: column;
		gap: 1.35rem;
		padding: 2.25rem 1.75rem;
		border-left: 4px solid #f59e0b;
		position: relative;
	}
	.dot-matrix-story-tr {
		display: block;
		position: absolute;
		top: 18px;
		right: 18px;
		width: 44px;
		height: 44px;
		opacity: 0.45;
		pointer-events: none;
	}
	.origin-story-col {
		padding-right: 0;
		display: flex;
		flex-direction: column;
		align-items: center;
		text-align: center;
	}
	.origin-kicker {
		text-align: center;
		margin: 0 auto 0.55rem;
		display: block;
		width: 100%;
		font-size: clamp(0.72rem, 2vw, 0.78rem);
	}
	.origin-title {
		text-align: center;
		font-size: clamp(1.35rem, 4vw, 1.65rem);
		line-height: 1.25;
		margin: 0 auto 0.75rem;
		width: 100%;
		max-width: 100%;
	}
	.origin-desc {
		text-align: center;
		font-size: clamp(0.88rem, 2.4vw, 0.94rem);
		line-height: 1.6;
		color: #cbd5e1;
		margin: 0 auto 1.25rem;
		max-width: 480px;
	}
	.origin-actions-desktop {
		display: none;
	}
	.origin-quote-panel {
		width: 100%;
		padding: 1.75rem 1.35rem;
		border-radius: 12px;
		margin: 0.35rem 0;
	}
	.origin-quote-text {
		font-size: clamp(1.02rem, 3vw, 1.15rem);
		line-height: 1.6;
		margin: 0 0 1.25rem;
	}
	.quote-orbit-svg {
		right: -15px;
		width: 150px;
		height: 100%;
		opacity: 0.9;
	}
	.origin-quote-footer {
		align-items: center;
		text-align: center;
	}
	.quote-divider-dash {
		margin: 0 auto;
	}
	.origin-quote-source {
		text-align: center;
		font-size: clamp(0.78rem, 2vw, 0.84rem);
	}
	.origin-actions-mobile {
		display: block;
		width: 100%;
	}
	.origin-actions-mobile .btn-origin-story {
		width: 100%;
		justify-content: center;
		text-align: center;
		padding: 0.82rem 1.25rem;
		font-size: 0.96rem;
		font-weight: 700;
		border-radius: 8px;
	}

	.how-you-learn-grid {
		grid-template-columns: repeat(2, 1fr);
		gap: 1rem;
	}
	.math-quote-body {
		flex-direction: column;
		text-align: center;
	}
	.quote-content-col {
		align-items: center;
	}
	.math-quote-footer {
		justify-content: center;
	}

	/* How to Begin: Responsive flow */
	.how-to-begin-card {
		padding: 1.35rem 1.25rem;
		text-align: center;
	}
	.how-to-begin-header {
		text-align: center;
		margin-bottom: 1.15rem;
	}
	.how-to-begin-title {
		text-align: center;
		margin: 0 auto 0.35rem;
		font-size: clamp(1.18rem, 3.8vw, 1.35rem);
	}
	.how-to-begin-desc {
		text-align: center;
		margin: 0 auto;
		font-size: clamp(0.85rem, 2.4vw, 0.92rem);
	}
	.begin-sequence-track {
		display: grid;
		grid-template-columns: repeat(2, 1fr);
		gap: 0.75rem;
		justify-content: center;
	}
	.begin-arrow {
		display: none;
	}
	.begin-step-pill {
		justify-content: flex-start;
		width: 100%;
		box-sizing: border-box;
		padding: 0.55rem 0.85rem;
	}
	.begin-step-text {
		font-size: 0.86rem;
		white-space: normal;
		text-align: left;
	}
}

@media (max-width: 600px) {
	/* How to Begin: Full-width stacked step pills on mobile */
	.how-to-begin-card {
		padding: 1.25rem 1rem !important;
		text-align: center !important;
	}
	.how-to-begin-header {
		text-align: center !important;
		margin-bottom: 1rem !important;
	}
	.how-to-begin-title {
		text-align: center !important;
		margin: 0 auto 0.35rem !important;
		font-size: clamp(1.18rem, 3.8vw, 1.35rem) !important;
	}
	.how-to-begin-desc {
		text-align: center !important;
		margin: 0 auto !important;
		font-size: clamp(0.85rem, 2.4vw, 0.92rem) !important;
	}
	.begin-sequence-track {
		display: flex !important;
		flex-direction: column !important;
		gap: 0.65rem !important;
		width: 100% !important;
	}
	.begin-arrow {
		display: none !important;
	}
	.begin-step-pill {
		display: flex !important;
		align-items: center !important;
		justify-content: flex-start !important;
		gap: 0.75rem !important;
		width: 100% !important;
		padding: 0.65rem 1rem !important;
		border-radius: 8px !important;
		box-sizing: border-box !important;
	}
	.begin-step-num {
		flex-shrink: 0 !important;
	}
	.begin-step-text {
		font-size: 0.92rem !important;
		text-align: left !important;
		white-space: normal !important;
	}

	.homepage-snapshots-section .homepage-snapshots-header {
		text-align: center;
	}
	.homepage-snapshots-kicker {
		text-align: center;
		margin: 0 auto 0.4rem;
		font-size: clamp(0.72rem, 2vw, 0.78rem);
	}
	.homepage-snapshots-title {
		text-align: center;
		font-size: clamp(1.4rem, 4.2vw, 1.8rem);
	}
	.homepage-snapshots-desc {
		text-align: center;
		font-size: clamp(0.86rem, 2.4vw, 0.94rem);
	}
	.homepage-snapshots-grid {
		grid-template-columns: 1fr;
	}
	.homepage-snapshot-card {
		text-align: center;
		align-items: center;
	}
	.game-category-label,
	.game-category-label-purple {
		margin: 0 auto 0.4rem;
		text-align: center;
		font-size: clamp(0.7rem, 2vw, 0.75rem);
	}
	.game-card-title {
		text-align: center;
		font-size: clamp(1.1rem, 3.2vw, 1.25rem);
	}
	.game-card-desc {
		text-align: center;
		font-size: clamp(0.84rem, 2.2vw, 0.9rem);
	}
	.btn-card-play {
		width: 100%;
		justify-content: center;
		text-align: center;
	}
	/* Center How You Learn cards */
	.how-you-learn-item {
		align-items: center;
		text-align: center;
	}
	.approach-tile-num {
		margin: 0 auto;
	}
	.how-you-learn-body {
		align-items: center;
		text-align: center;
	}
	.how-you-learn-title,
	.how-you-learn-desc {
		text-align: center;
	}
	.bounty-card-v2 {
		flex-direction: column;
		text-align: center;
		padding: 1.25rem 1.15rem;
		align-items: center;
	}
	.bounty-info-v2 {
		align-items: center;
		text-align: center;
	}
	.bounty-tag-v2 {
		margin: 0 auto 0.4rem;
		text-align: center;
		font-size: clamp(0.7rem, 2vw, 0.75rem);
	}
	.bounty-title-v2 {
		text-align: center;
		font-size: clamp(1.2rem, 3.6vw, 1.45rem);
	}
	.bounty-desc-v2 {
		text-align: center;
		font-size: clamp(0.84rem, 2.2vw, 0.92rem);
	}
	.btn-bounty-v2 {
		width: 100%;
		text-align: center;
	}
	.btn-origin-story {
		width: 100%;
		justify-content: center;
		text-align: center;
	}
	.btn-story-read {
		width: 100%;
		justify-content: center;
	}
}

@media (max-width: 480px) {
	/* Keep compact 2-column grid on mobile! */
	.trust-strip {
		grid-template-columns: repeat(2, 1fr);
		gap: 0.6rem 0.35rem;
		padding: 0.75rem 0.55rem;
		margin-bottom: 1.75rem;
	}
	.trust-item {
		font-size: 0.75rem;
		gap: 0.35rem;
		white-space: normal;
		justify-content: flex-start;
		padding-left: 0.25rem;
		line-height: 1.25;
	}
	.trust-item span:not(.trust-check-icon) {
		text-align: left;
	}
	.trust-check-icon {
		width: 16px;
		height: 16px;
		font-size: 0.7rem;
		flex-shrink: 0;
	}
	.realm-card {
		padding: 1.5rem 1.15rem;
	}
	/* Timeline Progression Mobile Refinements with clamp */
	.how-you-learn-card {
		padding: 2.25rem 1.15rem;
		margin: 2.25rem auto;
	}
	.how-you-learn-kicker {
		font-size: clamp(0.68rem, 2.2vw, 0.74rem);
	}
	.how-you-learn-title-main {
		font-size: clamp(1.25rem, 4.8vw, 1.48rem);
	}
	.how-you-learn-subtext {
		font-size: clamp(0.8rem, 2.6vw, 0.88rem);
	}
	.origin-split-card {
		padding: 1.85rem 1.15rem;
		margin: 2.25rem auto;
	}
	.origin-kicker {
		font-size: clamp(0.68rem, 2.2vw, 0.74rem);
	}
	.origin-title {
		font-size: clamp(1.22rem, 4.6vw, 1.42rem);
	}
	.origin-desc {
		font-size: clamp(0.82rem, 2.6vw, 0.88rem);
	}
	.timeline-steps-grid {
		max-width: 100%;
	}
	.timeline-step {
		gap: 1rem;
	}
	.timeline-node-circle {
		width: 48px;
		height: 48px;
		font-size: 1.15rem;
	}
	.timeline-node-wrap {
		width: 48px;
	}
	.timeline-v-line {
		top: 48px;
		bottom: -2.25rem;
	}
	.timeline-step-title {
		font-size: clamp(1.02rem, 3.4vw, 1.12rem);
	}
	.timeline-step-desc {
		font-size: clamp(0.78rem, 2.4vw, 0.84rem);
		line-height: 1.48;
	}
	.origin-quote-panel {
		padding: 1.5rem 1.15rem;
	}
	.origin-quote-text {
		font-size: clamp(0.98rem, 3.2vw, 1.06rem);
	}
	.how-you-learn-grid {
		grid-template-columns: 1fr;
		gap: 0.85rem;
	}
	.math-quote-card {
		padding: 1.15rem 1rem;
	}
	.how-to-begin-card {
		padding: 1.25rem 1rem;
	}
	.begin-sequence-track {
		grid-template-columns: 1fr;
		gap: 0.55rem;
	}
}

/* ==========================================================================
   PHASE 4: SHARED PEDAGOGICAL, CONTROL & ARENA UTILITIES
   ========================================================================== */
.codex-section {
	margin: 1.5rem 0 2rem;
	border-left: 5px solid var(--primary);
}
.codex-badge-primary {
	background: var(--primary);
	color: #fff;
}
.codex-badge-gold {
	background: var(--accent-gold);
	color: #000;
}
.codex-badge-cyan {
	background: var(--accent-cyan);
	color: #050711;
}

.strong-gold {
	color: var(--accent-gold);
	font-size: 1.1rem;
}
.strong-gold-lg {
	color: var(--accent-gold);
	font-size: 1.15rem;
}
.strong-cyan {
	color: var(--accent-cyan);
	font-size: 1.1rem;
}
.strong-cyan-lg {
	color: var(--accent-cyan);
	font-size: 1.15rem;
}
.strong-success {
	color: var(--success);
	font-size: 1.1rem;
}
.strong-danger {
	color: var(--danger);
	font-size: 1.1rem;
}
.strong-primary {
	color: var(--primary);
	font-size: 1.1rem;
}
.strong-coral {
	color: #f87171;
	font-size: 1.1rem;
}

.control-label-dim {
	font-size: 0.8rem;
	font-weight: 700;
	color: var(--text-dim);
}
.control-label-dim-md {
	font-size: 0.85rem;
	font-weight: 700;
	color: var(--text-dim);
}
.control-label-cyan {
	font-size: 0.8rem;
	font-weight: 700;
	color: var(--accent-cyan);
}
.control-label-gold {
	font-size: 0.8rem;
	font-weight: 700;
	color: var(--accent-gold);
}
.control-val-mono {
	font-family: var(--font-mono);
	font-size: 0.85rem;
	color: #fff;
}

.slider-w-80 {
	width: 80px;
}
.slider-w-90 {
	width: 90px;
}
.slider-w-100 {
	width: 100px;
}
.slider-w-110 {
	width: 110px;
}
.slider-w-150 {
	width: 150px;
}
.slider-w-160 {
	width: 160px;
}

.game-select {
	padding: 0.4rem 0.8rem;
	background: var(--bg-surface-elevated);
	color: #fff;
	border: 1px solid var(--border-color);
	border-radius: var(--radius-sm);
	font-family: var(--font-sans);
}
.game-select-sm {
	background: var(--bg-surface-elevated);
	color: #fff;
	border: 1px solid var(--border-color);
	padding: 0.35rem 0.6rem;
	border-radius: var(--radius-sm);
	font-size: 0.85rem;
}

.stat-label-dim-sm {
	font-size: 0.72rem;
	text-transform: uppercase;
	color: var(--text-dim);
}
.stat-label-dim-b {
	font-size: 0.72rem;
	text-transform: uppercase;
	font-weight: 800;
	color: var(--text-dim);
}
.stat-label-gold-b {
	font-size: 0.72rem;
	text-transform: uppercase;
	font-weight: 800;
	color: var(--accent-gold);
}
.stat-label-cyan-b {
	font-size: 0.72rem;
	text-transform: uppercase;
	font-weight: 800;
	color: var(--accent-cyan);
}
.stat-label-primary-b {
	font-size: 0.72rem;
	text-transform: uppercase;
	font-weight: 800;
	color: var(--primary);
}
.stat-label-danger-b {
	font-size: 0.72rem;
	text-transform: uppercase;
	font-weight: 800;
	color: #f87171;
}
.stat-mono-dim {
	font-size: 0.72rem;
	color: var(--text-dim);
	font-family: var(--font-mono);
}

.metric-val-12 {
	font-size: 1.2rem;
	font-weight: 800;
	color: #fff;
	font-family: var(--font-mono);
}
.metric-val-gold-12 {
	font-size: 1.2rem;
	font-weight: 800;
	color: var(--accent-gold);
	font-family: var(--font-mono);
}
.metric-val-14 {
	font-size: 1.4rem;
	font-weight: 900;
	color: #fff;
	font-family: var(--font-mono);
}
.metric-val-danger-14 {
	font-size: 1.4rem;
	font-weight: 900;
	color: var(--danger);
	font-family: var(--font-mono);
}
.metric-val-gold-14 {
	font-size: 1.4rem;
	font-weight: 900;
	color: var(--accent-gold);
	font-family: var(--font-mono);
}
.metric-val-16 {
	font-size: 1.6rem;
	font-weight: 900;
	color: #fff;
	font-family: var(--font-mono);
}
.metric-val-cyan-18 {
	font-size: 1.8rem;
	font-weight: 900;
	color: var(--accent-cyan);
	font-family: var(--font-mono);
}
.metric-val-gold-18 {
	font-size: 1.8rem;
	font-weight: 900;
	color: var(--accent-gold);
	font-family: var(--font-mono);
}
.metric-val-cyan-20 {
	font-size: 2rem;
	font-weight: 900;
	color: var(--accent-cyan);
	font-family: var(--font-mono);
}
.metric-val-gold-20 {
	font-size: 2rem;
	font-weight: 900;
	color: var(--accent-gold);
	font-family: var(--font-mono);
}
.metric-val-gold-22 {
	font-size: 2.2rem;
	font-weight: 900;
	color: var(--accent-gold);
	font-family: var(--font-mono);
}
.metric-val-cyan-22 {
	font-size: 2.2rem;
	font-weight: 900;
	color: var(--accent-cyan);
	font-family: var(--font-mono);
}
.metric-val-white-22 {
	font-size: 2.2rem;
	font-weight: 900;
	color: #fff;
	font-family: var(--font-mono);
}
.metric-val-white-24 {
	font-size: 2.4rem;
	font-weight: 900;
	color: #fff;
	font-family: var(--font-mono);
	letter-spacing: 2px;
}
.metric-val-white-28 {
	font-size: 2.8rem;
	font-weight: 900;
	color: #fff;
	font-family: var(--font-mono);
	margin: 0.2rem 0;
}

.stat-divider-top {
	border-top: 1px solid var(--border-color);
	padding-top: 0.75rem;
}
.stat-divider-top-1 {
	border-top: 1px solid var(--border-color);
	padding-top: 1rem;
}

.text-accent-cyan {
	color: var(--accent-cyan);
}
.text-accent-gold {
	color: var(--accent-gold);
}
.text-success {
	color: var(--success);
}
.text-danger {
	color: var(--danger);
}
.text-coral {
	color: #f87171;
}
.text-indigo {
	color: #a5b4fc;
}
.text-sky {
	color: #38bdf8;
}
.text-dim {
	color: var(--text-dim);
}
.text-muted {
	color: var(--text-muted);
}
.text-white {
	color: #fff;
}
.text-base {
	font-size: 1rem;
}
.font-bold {
	font-weight: 700;
}
.font-extrabold {
	font-weight: 800;
}
.text-right {
	text-align: right;
}

.arena-telemetry-bar {
	background: var(--bg-surface-elevated);
	padding: 0.75rem 1.5rem;
	border-top: 1px solid var(--border-color);
	font-size: 0.9rem;
	font-weight: 600;
}
.canvas-telemetry-strip {
	background: rgba(13, 17, 23, 0.95);
	padding: 0.5rem 1rem;
	border-top: 1px solid var(--border-color);
	font-size: 0.82rem;
	color: #94a3b8;
	font-family: var(--font-mono);
	text-align: center;
}
.canvas-telemetry-strip-lg {
	background: rgba(13, 17, 23, 0.95);
	padding: 0.6rem 1rem;
	border-top: 1px solid var(--border-color);
	font-size: 0.86rem;
	color: #94a3b8;
	text-align: center;
}
.canvas-touch-none {
	touch-action: none;
	cursor: default;
}
.canvas-interactive-crosshair {
	display: block;
	width: 100%;
	max-width: 100%;
	height: auto;
	touch-action: none;
	cursor: crosshair;
}

.prompt-text-lg {
	font-size: 1.15rem;
	font-weight: 700;
	color: #fff;
	line-height: 1.6;
}
.game-feedback-msg {
	font-size: 0.9rem;
	font-weight: 600;
	min-height: 24px;
	text-align: center;
	margin-top: 1rem;
}

.max-w-480 {
	max-width: 480px;
}
.max-w-500 {
	max-width: 500px;
}
.max-w-520 {
	max-width: 520px;
}
.max-w-600 {
	max-width: 600px;
	width: 100%;
}
.max-w-620 {
	max-width: 620px;
	width: 100%;
}
.mt-05 {
	margin-top: 0.5rem;
}
.mt-075 {
	margin-top: 0.75rem;
}
.mt-15 {
	margin-top: 1.5rem;
}
.mb-05 {
	margin-bottom: 0.5rem;
}
.mb-15 {
	margin-bottom: 1.5rem;
}
.mb-25 {
	margin-bottom: 2.5rem;
}

.callout-banner-cyan {
	background: var(--bg-surface-elevated);
	border: 2px solid var(--accent-cyan);
	border-radius: var(--radius-sm);
	padding: 1rem 1.5rem;
	margin: 1.25rem 0;
	text-align: center;
}
.callout-banner-gold {
	background: var(--bg-surface-elevated);
	border: 2px solid var(--accent-gold);
	border-radius: var(--radius-sm);
	padding: 1rem 1.5rem;
	margin: 1.25rem 0;
	text-align: center;
}
.callout-banner-title-cyan {
	font-size: 1.25rem;
	font-weight: 900;
	color: var(--accent-cyan);
}
.callout-banner-title-gold {
	font-size: 1.25rem;
	font-weight: 900;
	color: var(--accent-gold);
}

.flex-row-gap-04 {
	display: flex;
	align-items: center;
	gap: 0.4rem;
}
.flex-gap-04 {
	display: flex;
	gap: 0.4rem;
}
.flex-row-gap-75 {
	display: flex;
	align-items: center;
	gap: 0.75rem;
}
.flex-row-wrap-gap-10 {
	display: flex;
	align-items: center;
	gap: 1rem;
	flex-wrap: wrap;
}
.flex-row-wrap-gap-125 {
	display: flex;
	align-items: center;
	gap: 1.25rem;
	flex-wrap: wrap;
}
.flex-space-around {
	display: flex;
	justify-content: space-around;
	align-items: center;
}
.flex-space-around-wrap {
	display: flex;
	justify-content: space-around;
	align-items: center;
	flex-wrap: wrap;
	gap: 1rem;
}
.flex-center-wrap-gap-1 {
	display: flex;
	gap: 1rem;
	justify-content: center;
	flex-wrap: wrap;
}

/* Additional Helpers for Complete Inline Style Elimination */
.my-15 {
	margin: 1.5rem 0 1.25rem;
}
.my-125 {
	margin: 1.25rem 0;
}
.mb-125 {
	margin-bottom: 1.25rem;
}
.my-025 {
	margin: 0.25rem 0;
}
.mb-025 {
	margin-bottom: 0.25rem;
}
.mt-015 {
	margin-top: 0.15rem;
}
.text-sm-md {
	font-size: 0.95rem;
}
.text-sm {
	font-size: 0.85rem;
}
.block {
	display: block;
}
.stat-help-sm {
	font-size: 0.8rem;
}
.expanded-readout-bold {
	margin: 0.75rem 0;
	font-size: 1rem;
	font-weight: 700;
}
.coord-arrow {
	font-size: 1.5rem;
	color: var(--text-dim);
}
.toy-cuts-readout {
	font-family: var(--font-mono);
	font-weight: 800;
	color: var(--accent-cyan);
	min-width: 70px;
}
.simplified-val-text {
	font-size: 1.1rem;
	font-weight: 700;
	color: var(--text-main);
	margin-top: 0.25rem;
}
.angles-val-readout {
	font-size: 0.9rem;
	font-weight: 700;
	color: var(--text-main);
	margin-top: 0.2rem;
}
.practice-options-col-1 {
	display: grid;
	grid-template-columns: 1fr;
	gap: 0.75rem;
	max-width: 620px;
	margin-top: 1rem;
}
.codex-text-relaxed {
	font-size: 1rem;
	line-height: 1.7;
	color: var(--text-muted);
}
.euclid-subhead-text {
	color: var(--text-muted);
	font-size: 0.9rem;
	text-align: center;
	margin-bottom: 0.75rem;
	max-width: 600px;
}
.practice-intro-text {
	color: var(--text-muted);
	font-size: 0.95rem;
	margin-bottom: 1.25rem;
}
.practice-prompt-bold {
	font-size: 1.05rem;
	font-weight: 700;
	color: #fff;
	line-height: 1.5;
}
.arena-head-block {
	text-align: center;
	margin-bottom: 0.75rem;
	max-width: 600px;
	width: 100%;
}
.proof-status-sub {
	font-size: 0.85rem;
	color: #cbd5e1;
	margin-bottom: 0.5rem;
	text-align: center;
}
