/* color variables */
:root {
	--background: #0f0f0f;
	--foreground: #1c1c1c;
	--highlight: #ab73bf;
	--error: #e43f5a;
	--textbox: #121212;
	--text: #8c8c8c;
	--cells: #75daad;
}

* {
	/*wipe all page elements*/
	margin: 0;
	padding: 0;

	/*set up font*/
	font-family: 'Fira Code', monospace;
	font-size: calc(3.8vh);
}


body {
	background: var(--background);
	height: 100vh;

	display: flex;
	justify-content: center;
}

#container {
	padding: 5vw;
	height: 95em;
	width: 80vw;
	background: var(--foreground);

	display: flex;
	justify-content: space-between;
	align-items: center;
	flex-direction: column;
}

h1, p, .instruction, .instruction-description {
	color: var(--text);
	background: none;
}

h1 {
	color: var(--highlight);
	text-align: center;
	width: 100%;
	font-size: 1.5em;
	margin-top: 1em;
	margin-bottom: .5em;
}

.instruction-info {
	width: 100%;
	display: flex;
	justify-content: center;
}

.instruction {
	border-radius: 10px 0 0 10px;
	background: var(--highlight);
	color: var(--foreground);
	width: 2em;
	display: flex;
	justify-content: center;
	align-items: center;
	font-weight: bold;

}
.instruction-description {
	border-radius: 0 10px 10px 0;
	border: var(--highlight) 4px solid;
	color: var(--text);
	text-align: center;
	width: 30em;
}

#info {
	display: flex;
	justify-content: space-between;
	flex-direction: column;
	margin-bottom: 3em;
	height: 60em;
}
p {
	margin-bottom: 1em;
	text-align: center;
}

.center-children {
	display: flex;
	justify-content: center;
	align-items: center;
}
#buttons {
	width: 50vw;

	display: flex;
	justify-content: space-around;
}
.button {
	border-radius: 10px;
	width: 11em;
	height: 1.7em;
	font-size: 1em;
	margin: 0 10px;
	color: var(--foreground);
}


@media only screen and (max-width: 1000px) {
	#container {
		height: 140em;
	}
	#info {
		height: 110em;
	}
	.instruction {
		width: 2em;

	}
	.instruction-description {
		width: 10em;
	}
	.button {
		width: 2em;
		height: 2em;
	}
}

#play {
	background: var(--highlight);
}
#clear {
	background: var(--error);
}
#clear-code {
	background: var(--error);
}
#show-cells {
	font-weight: bold;
	background: var(--cells);
}
.cells.hidden {
	top: -15vh;
}

.cells {
	z-index: 100;
	position: fixed;
	top:0;
	height: 10vh;
	width: 95vw;
	padding: 0 1vw;
	background: var(--background);
	display: flex;
	justify-content: space-around;
	align-items: center;
	border-radius: 0 0 10px 10px;
	border: 5px solid var(--cells);
	border-top: 0px;
	transition: 0.3s;
}
.cells span {
	margin: 1em 0;
	height: 2em;
	width: 2em;
	font-size: 1em;
	border-radius: 10px;
	background: var(--foreground);
	display: flex;
	justify-content: center;
	align-items: center;
	color: var(--cells);
	transition: 0.2s;
}
.cells span.focused {
	transform: scale(1.1);
	background: var(--cells);
	color: var(--foreground);
}
.button:hover {
	cursor: grab;
	transform: scale(1.01);
}
.button:active {
	transform: scale(0.95);
}

.field {
	border-radius: 10px;
	user-select: none;
	resize:none;
	border:none;
	background: var(--textbox);
	height: 5em;
	width: 70vw;
	font-size: 2em;
	padding: 2vw;
	color: var(--text);
}
#code {
	margin-top: 0;
}
#error b {
	margin-right: .75vw;
}
#error {
	border-radius: 10px 10px 0 0;
	display: inline-flex;
	position: fixed;
	bottom: 0em;
	align-items: center;
	justify-content: center;
	background: var(--error);/*#ba4e5f;*/
	font-size: 1em;
	width: 100vw;
	height: 1.5em;
	color: var(--foreground);
	transition: 0.3s;
}
#error.hidden {
	bottom: -2em;
}
textarea:focus {
        outline: none;
    }

*::-webkit-scrollbar {
  width: .3vw
}
 
*::-webkit-scrollbar-track {
	background: var(--foreground);;
}
 
*::-webkit-scrollbar-thumb {
	background: var(--highlight);
}