:root {
	/* 사이트 테마(심야 작업실)와 맞춘 색 */
	--bg: #0A0A0F;
	--surface: #16161F;
	--accent: #C9781A;
	--lime: #FFB446;         /* 주 액센트 = 전등 앰버 */
	--pink: #C8F45C;         /* 보조 액센트 */
	--text: #EDEBE6;
	--text-muted: #9B99A3;
	--border: #22222E;
	/* 과녁 색은 게임의 정체성이라 그대로 둔다 */
	--target-red: #e94b3c;
	--target-cream: #fdf6e3;
	--target-gold: #ffc857;
	--target-black: #1a1a1a;
}

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

html, body {
	height: 100%;
	overflow: hidden;
	font-family: 'Pretendard Variable', Pretendard, -apple-system, sans-serif;
	background: var(--bg);
	color: var(--text);
	user-select: none;
}

.back-link {
	position: fixed;
	top: 1rem;
	left: 1.25rem;
	color: var(--text-muted);
	text-decoration: none;
	font-size: 0.9rem;
	font-weight: 500;
	z-index: 10;
	padding: 6px 12px;
	background: rgba(0, 0, 0, 0.3);
	border-radius: 999px;
	backdrop-filter: blur(8px);
	transition: color 0.15s;
}

.back-link:hover {
	color: var(--lime);
}

/* 헤더 */
.game-header {
	position: fixed;
	top: 1rem;
	right: 1.25rem;
	z-index: 10;
}

.stats {
	display: flex;
	gap: 1rem;
	background: rgba(0, 0, 0, 0.4);
	backdrop-filter: blur(8px);
	padding: 12px 20px;
	border-radius: 16px;
}

.stat {
	display: flex;
	flex-direction: column;
	align-items: center;
	min-width: 60px;
}

.stat-label {
	font-size: 0.7rem;
	color: var(--text-muted);
	font-weight: 700;
	letter-spacing: 0.1em;
}

.stat-value {
	font-size: 1.3rem;
	font-weight: 800;
	color: var(--text);
	font-variant-numeric: tabular-nums;
}

/* 게임 영역 */
.arena {
	position: relative;
	width: 100vw;
	height: 100vh;
	background: var(--bg);
	cursor: crosshair;
	overflow: hidden;
}

/* 다트 보드 과녁 */
.target {
	position: absolute;
	width: 80px;
	height: 80px;
	border-radius: 50%;
	cursor: pointer;
	transform: translate(-50%, -50%);
	background:
		radial-gradient(circle,
			var(--target-cream) 0%,
			var(--target-cream) 10%,
			var(--target-red) 10%,
			var(--target-red) 25%,
			var(--target-cream) 25%,
			var(--target-cream) 40%,
			var(--target-red) 40%,
			var(--target-red) 55%,
			var(--target-cream) 55%,
			var(--target-cream) 70%,
			var(--target-red) 70%,
			var(--target-red) 100%);
	box-shadow:
		0 0 0 3px var(--target-black),
		0 8px 24px rgba(0, 0, 0, 0.5);
	animation: appear 0.18s ease-out;
}

@keyframes appear {
	from {
		transform: translate(-50%, -50%) scale(0);
		opacity: 0;
	}
	to {
		transform: translate(-50%, -50%) scale(1);
		opacity: 1;
	}
}

/* 과녁 수명 표시 — 외곽 링 (점점 줄어듦) */
.target::before {
	content: '';
	position: absolute;
	top: -10px;
	left: -10px;
	right: -10px;
	bottom: -10px;
	border-radius: 50%;
	border: 3px solid var(--lime);
	animation: lifetime 2s linear forwards;
}

@keyframes lifetime {
	from {
		opacity: 1;
		transform: scale(1);
	}
	to {
		opacity: 0;
		transform: scale(0.5);
	}
}

/* 클릭 시 효과 */
.target.hit {
	animation: hit 0.2s ease-out forwards;
	pointer-events: none;
}

@keyframes hit {
	to {
		transform: translate(-50%, -50%) scale(1.5);
		opacity: 0;
	}
}

/* 놓침 효과 */
.target.missed {
	animation: missed 0.3s ease-out forwards;
	pointer-events: none;
}

@keyframes missed {
	0% { transform: translate(-50%, -50%) scale(1); }
	50% { transform: translate(-50%, -50%) scale(1.1); filter: hue-rotate(180deg); }
	100% { transform: translate(-50%, -50%) scale(0); opacity: 0; }
}

/* 오버레이 (시작/종료 화면) */
.overlay {
	position: absolute;
	inset: 0;
	background: rgba(26, 11, 46, 0.92);
	backdrop-filter: blur(12px);
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 1.5rem;
	z-index: 20;
}

.overlay.hidden {
	display: none;
}

.overlay h1 {
	font-size: 4rem;
	font-weight: 900;
	letter-spacing: -0.04em;
	background: linear-gradient(135deg, var(--lime), var(--pink));
	-webkit-background-clip: text;
	-webkit-text-fill-color: transparent;
	background-clip: text;
}

.overlay p {
	font-size: 1.1rem;
	color: var(--text-muted);
	text-align: center;
	line-height: 1.6;
}

.final-stats {
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
	background: var(--surface);
	padding: 1.5rem 2rem;
	border-radius: 16px;
	font-size: 1.2rem;
}

.final-stats span {
	color: var(--lime);
	font-weight: 800;
}

.start-btn {
	background: var(--lime);
	color: var(--bg);
	border: none;
	padding: 1rem 3rem;
	border-radius: 999px;
	font-size: 1.2rem;
	font-weight: 800;
	letter-spacing: 0.05em;
	cursor: pointer;
	font-family: inherit;
	transition: transform 0.15s;
}

.start-btn:hover {
	transform: translateY(-2px);
}

.start-btn:active {
	transform: translateY(0);
}

/* 모바일 */
@media (max-width: 640px) {
	.overlay h1 {
		font-size: 2.5rem;
	}

	.stats {
		gap: 0.5rem;
		padding: 8px 12px;
	}

	.stat-value {
		font-size: 1rem;
	}

	.stat {
		min-width: 50px;
	}
}