:root {
	--bg: #14110c;
	--panel: #1f1a12;
	--text: #f2ede3;
	--muted: #a89b84;
	--accent: #e74c3c;
}

* {
	box-sizing: border-box;
}

body {
	margin: 0;
	background: var(--bg);
	color: var(--text);
	font-family:
		system-ui,
		-apple-system,
		"Apple SD Gothic Neo",
		"Malgun Gothic",
		sans-serif;
	display: flex;
	justify-content: center;
	padding: 16px;
}

#app {
	width: 100%;
	max-width: 480px;
}

.viewer-message {
	text-align: center;
	color: var(--muted);
	padding: 48px 16px;
}

.players {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	margin-bottom: 12px;
}

.player {
	flex: 1;
	text-align: center;
	background: var(--panel);
	border-radius: 12px;
	padding: 12px 8px;
}

.player.is-winner {
	outline: 2px solid var(--accent);
}

.player-stone {
	font-size: 20px;
}

.player-name {
	font-weight: 700;
	margin-top: 4px;
	overflow-wrap: anywhere;
}

.player-result {
	font-size: 12px;
	color: var(--muted);
	margin-top: 2px;
}

.versus {
	color: var(--muted);
	font-size: 13px;
}

.match-meta {
	text-align: center;
	font-size: 13px;
	color: var(--muted);
	margin-bottom: 12px;
}

#board-canvas {
	width: 100%;
	aspect-ratio: 1 / 1;
	display: block;
	border-radius: 12px;
}

.move-info {
	text-align: center;
	margin: 12px 0 8px;
	font-variant-numeric: tabular-nums;
}

.controls {
	display: flex;
	gap: 8px;
}

.controls button {
	flex: 1;
	padding: 14px 0;
	font-size: 18px;
	background: var(--panel);
	color: var(--text);
	border: none;
	border-radius: 10px;
	cursor: pointer;
}

.controls button:disabled {
	opacity: 0.35;
	cursor: default;
}

.footer {
	margin-top: 20px;
	text-align: center;
	font-size: 13px;
}

.footer a {
	color: var(--accent);
}
