:root {
	--accent-color: #6d3f06;
	--game-result-box-w: 15rem;

	--shadow-inset: inset 4px 4px 6px -1px rgba(0,0,0,0.2),
	inset -4px -4px 6px -1px rgba(255,255,255,0.7),
	-0.5px -0.5px 0px rgba(255,255,255,1),
	0.5px 0.5px 0px rgba(0,0,0,0.15),
	0px 12px 10px -10px rgba(0,0,0,0.05);
}

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

body {
	background-color: #e9e9e9;
	font-family: 'Nunito', sans-serif;
}

button {
	font-family: inherit;
	padding: 1rem;
	border: none;
	cursor: pointer;
}

.app-container {
	display: flex;
	justify-content: center;
	align-items: flex-start;
}

.header {
	padding: 2rem;
	color: var(--accent-color);
}

.board-wrapper {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 3rem;
}

.board__actions {
	display: flex;
}

.step {
	width: var(--game-result-box-w);
	color: var(--accent-color);
	font-size: 2rem;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	margin-left: 3rem;
}

.step-icon {
	position: relative;
	width: 5rem;
	text-align: center;
	font-size: 5rem;
}

.reset-btn {
	font-size: 1.5rem;
	border-radius: 1rem;
	align-self: flex-end;
  box-shadow: 6px 6px 10px -1px rgba(0,0,0,0.15), -6px -6px 10px -1px rgba(255,255,255,0.7);
  border: 1px solid rgba(0,0,0,0);
	color: var(--accent-color);
	user-select: none;

	&:active {
		box-shadow: var(--shadow-inset);
		border: 1px solid rgba(0,0,0,0.1);
	}
}

.reset-icon {
	font-size: 1.8rem;
}

.board {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 0.5rem;
}

.board.non-interactive {
	pointer-events: none;
}

.cell {
	display: flex;
	justify-content: center;
	align-items: center;
	font-size: 5rem;
	width: 10rem;
	height: 10rem;
	cursor: pointer;
	user-select: none;
  border-radius: 1rem;
  box-shadow: 6px 6px 10px -1px rgba(0,0,0,0.15), -6px -6px 10px -1px rgba(255,255,255,0.7);
  border: 1px solid rgba(0,0,0,0);
}

.cell.occupied {
	box-shadow: var(--shadow-inset);
  border: 1px solid rgba(0,0,0,0);
	pointer-events: none;
}

.cell.winning {
	background-color: lightgreen;
}

@media screen and (width <= 48rem) {
	.app-container {
		flex-direction: column-reverse;
		align-items: center;
	}

	.step {
		margin-left: 0;
	}
}

@media screen and (width <= 33rem) {

	.board {
		width: 20rem;
		height: 20rem;
		padding: 1rem;
	}

	.cell {
		width: 6rem;
		height: 6rem;
		font-size: 3rem;
	}

	.reset-btn {
		padding: 0.5rem;
		font-size: 1.3rem;
	}

	.step {
		font-size: 1.3rem;
	}

	.step-icon {
		font-size: 3rem;
	}
}