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

:root {
	--color-gameboard: #b4dea8;
	--color-gameboard-darker: #a3c998;
	--color-dark-green: #34401a;
	--color-background: #3f9ba6;
	--color-light: #f5f5f5;
	--color-highlight: #d96c6c;
}

body {
	background-color: var(--color-background);
	font-family: 'Gloria Hallelujah', cursive;
	font-weight: 400;
	font-style: normal;
}

.page-container {
	display: grid;
	gap: 50px;
}

.page-container-top {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 100px;
}

.player-container {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 20px;
	font-size: 1.75em;
}

.player-container.inactive {
	filter: opacity(50%);
}

.game-container {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 10px;
}

.title {
	font-size: 3em;
	color: var(--color-light);
}

.game-btn {
	border: none;
	margin-top: 20px;
	border-radius: 50px;
	font: inherit;
	font-size: 1.75em;
	color: var(--color-highlight);
	width: 175px;
}

.game-btn:hover {
	background-color: var(--color-highlight);
	color: var(--color-light);
}

.player-one,
.player-two,
.tie {
	background-size: cover;
	width: 60px;
	height: 60px;
}

.player-one {
	background-image: url(./images/frog.png);
}

.player-two {
	background-image: url(./images/lotus.png);
}

.tie {
	background-image: url(./images/pond.png);
}

.gameboard-container {
	background-color: var(--color-gameboard);
	height: 500px;
	width: 500px;
	border-radius: 50%;
	display: grid;
	place-items: center;
	overflow: hidden;
	position: relative;
}

/* This creates the effect of inner borders, without external ones */
/* Essentially Defines the color of the grid lines */
.container-for-lines {
	background-color: var(--color-light);
}

.gameboard {
	display: grid;
	gap: 1px;
	grid-template-columns: repeat(3, 1fr);
	height: 400px;
	width: 400px;
}

.cell {
	background-color: var(--color-gameboard);
	display: grid;
	place-items: center;
	/* Setting specific H/W prevents cells from widening when content is placed */
	height: 134px;
	width: 134px;
}

.empty:hover::before {
	content: '';
	background-color: var(--color-gameboard-darker);
	height: 90px;
	width: 90px;
	border-radius: 50%;
	position: absolute;
}

/* Modal styling */
.modal {
	/* When user scrolls, this follows them */
	position: fixed;
	/* centers top-left corner of modal in center of screen */
	top: 50%;
	left: 50%;
	/* Center entire modal. Scale(0) hides the modal. */
	transform: translate(-50%, -50%) scale(0);
	/* A high number makes it be above everything else */
	z-index: 10;
	background-color: var(--color-dark-green);
	color: var(--color-gameboard);
	font-size: 1.5em;
	line-height: 150%;
	border-radius: 10%;
	height: 230px;
	width: 230px;
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
}

.modal-icon {
	height: 70px;
	width: 70px;
}

.modal-message {
	margin: 10px 40px;
}

/* tie message is one-liner & needs more space between icon and text */
.modal-message-tie {
	margin-top: 25px;
}

.modal.active {
	/* Scale(1) to make it visible */
	transform: translate(-50%, -50%) scale(1);
}

.modal-close-btn {
	align-self: flex-end;
	margin-top: 20px;
	margin-right: 20px;
	background: none;
	border: none;
	cursor: pointer;
	border-radius: 20px;
	font-size: 25px;
	color: var(--color-gameboard);
}

.overlay {
	position: fixed;
	opacity: 0;
	/* Apply overlay to the entire screen */
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	/* Apply 50% opacity */
	background-color: rgba(0, 0, 0, 0.5);
	/* Allows user to click buttons when inactive */
	pointer-events: none;
}

.overlay.active {
	opacity: 1;
	/* Prevent user from clicking buttons */
	pointer-events: all;
}

.page-container-bottom {
	text-align: center;
	font-family: 'Courier New', Courier, monospace;
	font-size: 0.75em;
	color: var(--color-dark-green);
	margin-bottom: 20px;

	display: flex;
	justify-content: center;
	gap: 10px;
}

.page-container-bottom a {
	text-decoration: none;
}

.link-me {
	color: var(--color-gameboard);
}

.link-attribution {
	color: black;
}
