* {
	box-sizing: border-box;
}

:root {
	--paper: #f7f1e7;
	--paper-deep: #efe4d3;
	--ink: #1f2937;
	--accent: #1c5d6b;
	--accent-warm: #c26b2a;
	--glow: #f5d28a;
}

body {
	margin: 0;
	font-family: 'Space Grotesk', sans-serif;
	color: var(--ink);
	background:
		radial-gradient(1000px circle at 10% -10%, rgba(28, 93, 107, 0.18), transparent 55%),
		radial-gradient(900px circle at 90% 0%, rgba(242, 165, 93, 0.25), transparent 50%),
		linear-gradient(160deg, var(--paper), var(--paper-deep));
	min-height: 100vh;
	overflow-x: hidden;
}

.font-display {
	font-family: 'Fraunces', serif;
	letter-spacing: -0.01em;
}

.bg-grid {
	position: fixed;
	inset: 0;
	background-image:
		linear-gradient(transparent 39px, rgba(28, 93, 107, 0.08) 40px),
		linear-gradient(90deg, transparent 39px, rgba(28, 93, 107, 0.08) 40px);
	background-size: 40px 40px;
	opacity: 0.35;
	pointer-events: none;
	z-index: 0;
}

.glow-orb {
	position: fixed;
	border-radius: 999px;
	opacity: 0.6;
	filter: blur(8px);
	mix-blend-mode: multiply;
	animation: float 18s ease-in-out infinite;
	pointer-events: none;
	z-index: 1;
}

.glow-orb.orb-a {
	width: 360px;
	height: 360px;
	top: -140px;
	right: 8%;
	background: radial-gradient(circle at 30% 30%, rgba(28, 93, 107, 0.55), rgba(28, 93, 107, 0));
	animation-delay: -4s;
}

.glow-orb.orb-b {
	width: 420px;
	height: 420px;
	bottom: -200px;
	left: -60px;
	background: radial-gradient(circle at 30% 30%, rgba(242, 165, 93, 0.6), rgba(242, 165, 93, 0));
	animation-delay: -10s;
}

.glow-orb.orb-c {
	width: 280px;
	height: 280px;
	top: 35%;
	left: 70%;
	background: radial-gradient(circle at 30% 30%, rgba(245, 210, 138, 0.55), rgba(245, 210, 138, 0));
	animation-delay: -7s;
}

.points-panel {
	border: 1px solid rgba(255, 255, 255, 0.7);
	background: linear-gradient(140deg, rgba(255, 255, 255, 0.85), rgba(255, 255, 255, 0.65));
}

.points-number,
.stat-value {
	font-variant-numeric: tabular-nums;
}

.warning {
	max-height: 0;
	opacity: 0;
	transform: translateY(-6px);
	transition: max-height 200ms ease, opacity 200ms ease, transform 200ms ease;
}

.warning.is-visible {
	max-height: 80px;
	opacity: 1;
	transform: translateY(0);
}

.fade-in {
	animation: fadeUp 600ms ease both;
}

.stat-bump {
	animation: statBump 200ms ease;
}

.points-bump {
	animation: pointsBump 260ms ease;
}

.btn:focus-visible {
	outline: 2px solid rgba(194, 107, 42, 0.6);
	outline-offset: 2px;
}

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

@keyframes float {
	0%,
	100% {
		transform: translate3d(0, 0, 0);
	}
	50% {
		transform: translate3d(-12px, 16px, 0);
	}
}

@keyframes statBump {
	0% {
		transform: scale(1);
	}
	40% {
		transform: scale(1.08);
	}
	100% {
		transform: scale(1);
	}
}

@keyframes pointsBump {
	0% {
		transform: scale(1);
	}
	30% {
		transform: scale(1.05);
	}
	100% {
		transform: scale(1);
	}
}
