@font-face {
    font-family: scoreboardFont;
    src: url(fonts/PressStart2P-vaV7.ttf);
}

#siteBody {
	position: relative;
	background-color: #FDFCF6;
}

#pageContainer {
	position: relative;
}


#pageHeader {
	max-width: 420px;
	margin: 1em auto 0.5em;
	text-align: center;
	position: relative;
}


#tetrisHeaderIcon {
	position: absolute;
	top: 11px;
	left: calc(50% + 42px);
}

#inDevelopmentIndicator {
	font-style: italic;
	position: absolute;
	right: calc(50% - 48px);
	bottom: -21px;
	text-transform: uppercase;
	font-size: 0.5em;
	color: #bb3a89;
}


#columnContainer {
	display: flex;
}

#columnContainer .column {
	padding: 18px;
	margin: 6px;
}

#columnContainer .column.left {
	flex: 1;
}

#columnContainer .column.center {
	flex: 1;
}

#columnContainer .column.right {
	flex: 1;
}


.puzzleActionsContainer {
	width: 360px;
	text-align: center;
}


#themeAudioControls {
	padding: 2em;
}

#themeAudioControls #audioVolumeSlider {
	vertical-align: text-bottom;
	accent-color: var(--lab-purple-alpha-point75); /* Changes the thumb and active track color */
}

#themeAudioControls label {
	margin-right: 1em;
	font-weight: bold;
}


#boardContainer {
	background-color: blue;
	/* PLUS 8px FOR BORDER = 50px */
	width: 360px;
	position: relative;
}

#boardContainer .tetrion {
	float: left;
	margin: 0;
	padding: 0;
	font-size: 0;
	line-height: 0;
}

#boardContainer .top,
#boardContainer .bottom {
	width: calc(30px * 12);
}

#boardContainer .left,
#boardContainer .right {
	width: 30px;
	height: calc(30px * 20);
}

#boardContainer .block {
	height: 30px;
	width: 30px;
	display: inline-block;
	margin: 0;
	padding: 0;

	border-width: 3px;
	border-style: solid;
}


#boardContainer .tetrion > .block {
	background-color: grey;

	border-top-color: #EEE;
	border-left-color: #BBB;
	border-right-color: #888;
	border-bottom-color: #555;
}

#gameBoard {
	background-color: #000;
}


#gameBoard > .block.empty,
#nextPieceDisplay .block.empty {
	background-color: #000;
	border: 1px dotted #111;
}

#tetrominoStatsDisplay {
	top: 0;
	left: 180px;
}

#tetrominoStatsDisplay > .statSet {
	margin: 0.5em;
    width: 74px;
    height: 23px;
}

#tetrominoStatsDisplay .pieceContainer {
	width: 32px;
	font-size: 0;
    line-height: 0;
	float: left;
}

#tetrominoStatsDisplay .statCount {
	width: 25px;
	float: right;
	margin-top: -1px;
}

#tetrominoStatsDisplay .pieceContainer .block {
	width: 8px;
	height: 8px;
	border-width: 1px;
}

#tetrominoStatsDisplay .pieceContainer .block.empty {
	border: 1px dotted #111;
}



#tetrominoStatsDisplay .statSet.O .tetromino {
	background-color: #eded00;
	border-top-color: #fafa8a;
	border-left-color: #c2c23d;
	border-right-color: #f2f273;
	border-bottom-color: #999900;
}

#tetrominoStatsDisplay .statSet.I .tetromino {
	background-color: #59b2f2;
	border-top-color: #c4f7fc;
	border-left-color: #3d7094;
	border-right-color: #8fc2eb;
	border-bottom-color: #295c85;
}

#tetrominoStatsDisplay .statSet.J .tetromino {
	background-color: #2659b2;
	border-top-color: #99ccff;
	border-left-color: #0f42a3;
	border-right-color: #6396db;
	border-bottom-color: #001166;
}

#tetrominoStatsDisplay .statSet.L .tetromino {
	background-color: #CC0000;
	border-top-color: #fac2c2;
	border-left-color: #bd4747;
	border-right-color: #db8585;
	border-bottom-color: #9e0a0a;
}

#tetrominoStatsDisplay .statSet.S .tetromino {
	background-color: #e98100;
	border-top-color: #ffdb85;
	border-left-color: #d6842e;
	border-right-color: #f0b252;
	border-bottom-color: #b54a00;
}

#tetrominoStatsDisplay .statSet.T .tetromino {
	background-color: #1f7d1f;
	border-top-color: #b8f0b8;
	border-left-color: #0a6e0a;
	border-right-color: #479c47;
	border-bottom-color: #003300;
}

#tetrominoStatsDisplay .statSet.Z .tetromino {
	background-color: #705285;
	border-top-color: #ccccff;
	border-left-color: #593366;
	border-right-color: #8770a3;
	border-bottom-color: #330033;
}







#gameBoard .block.tetGrid.empty {
	border-color: #555 !important;
	border-style: dashed !important;
}


#gameBoard .block.clearing {
	-webkit-transition: background-color 50ms linear;
    -moz-transition: background-color 50ms linear;
    -o-transition: background-color 50ms linear;
    transition: background-color 50ms linear;

	background-color: #FFF !important;
}


#gameBoard {
	width: calc(30px * 10);
	height: calc(30px * 20);

	float: left;

	font-size: 0;
	line-height: 0;
}

#boardContainer .display {
	border-top-color: #808080;
	border-right-color: #6a6a6a;
	border-left-color: #545454;
	border-bottom-color: #3d3d3d;
	border-width: 6px;
	border-style: solid;

	background-color: #111;
	padding: 1em 2em 1em 1em;
	color: #FFF;
	font-size: 1.25em;
	position: absolute;
}

#boardContainer #gameStateIndicator {
	display: none;
	position: absolute;

	top: calc(50% - 45px);
	left: calc(50% - 65px);
	z-index: 3;
	color: #FFF;
	text-align: center;
    font-size: 3em;
}

#boardContainer #gameStateIndicator.gameOver {
	left: calc(50% - 105px);
}


#boardContainer #gameStateIndicator .state,
#boardContainer #gameStateIndicator .icon {
	display: none;
}

#boardContainer #gameStateIndicator .state {
	opacity: 0;
	margin-top: 0.5em;
}

#boardContainer #gameStateIndicator.active {
	display: block;
}


#boardContainer #sideDisplays {
	position: absolute;
	top: 1px;
	left: 396px;
}



#levelDisplay {
	top: 152px;
    left: 0;
	width: 146px;
}

#scoreDisplay {
	top: 316px;
    left: 0;
	width: 200px;
}

#viewScoreboardButton {
	position: absolute;
	top: -67px;
    left: 5px;
	width: max-content;
}



#scoreboardModal .header,
#scoreboardModal .actions,
#gameOverModal > div,
#scoreboardEntryFormModal .header,
#scoreboardEntryFormModal .actions {
	text-align: center;
}


#scoreboardModal .content {
	font-family: scoreboardFont;
}


#scoreboardContainer {
	width: fit-content;
	margin: 0 auto;
}

#scoreboardTable th {
	text-align: center;
}

#scoreboardTable td {
	color: #555;
}

#scoreboardTable td.score,
#scoreboardTable td.lines {
	text-align: right;
}

#scoreboardTable tr > .timestamp {
	width: 264px;
}

#scoreboardTable tr._1st-place > td {
	color: #d4af37; /* #b59900; */
}

#scoreboardTable tr._2nd-place > td {
    color: #aaa9ad;  /* #8f8f8f; */
}

#scoreboardTable tr._3rd-place > td {
    color: #b08d57; /* #CD7F32;*/
}

#scoreboardTable tr.empty > td {
    color: #DDD; /* #CD7F32;*/
}



#linesDisplay {
	top: 234px;
    left: 0;
	width: 160px;
}

#otherStats {
	position: absolute;
	top: 426px;
    left: 0;
	width: 160px;
}

#otherStats > div {
	width: max-content;
}

.clearFloat {
	clear: both;
}


#gameOptionsContainer {
	border-top: 1px solid #DDD;
	padding: 1em 3em 1.5em;
}

#gameOptionsContainer > * {
	text-align: left;
}

#gameOptionsContainer > .optionSet {
	margin-bottom: 21px;
}

#gameOptionsContainer label.title {
	font-weight: bold;
}




#nextPieceDisplay.display {
	top: 0;
	left: 0;
	padding-right: 1em;
}

#nextPieceDisplay .pieceContainer {
	width: calc(30px * 4);
	margin-top: 0.5em;
}

#nextPieceDisplay .block {
	/*
	THIS REMOVES THE HORIZONTAL EMPTY SPACE BETWEEN THE 2 ROWS OF BLOCK ELEMENTS
	*/
	margin-top: -4px;
}

#gameBoard .tetromino.O,
#nextPieceDisplay  .tetromino.O {
	background-color: #eded00;
	border-top-color: #fafa8a;
	border-left-color: #c2c23d;
	border-right-color: #f2f273;
	border-bottom-color: #999900;
}

#gameBoard .tetromino.I,
#nextPieceDisplay  .tetromino.I {
	background-color: #59b2f2;
	border-top-color: #c4f7fc;
	border-left-color: #3d7094;
	border-right-color: #8fc2eb;
	border-bottom-color: #295c85;
}

#gameBoard .tetromino.J,
#nextPieceDisplay  .tetromino.J {
	background-color: #2659b2;
	border-top-color: #99ccff;
	border-left-color: #0f42a3;
	border-right-color: #6396db;
	border-bottom-color: #001166;
}

#gameBoard .tetromino.L,
#nextPieceDisplay  .tetromino.L {
	background-color: #CC0000;
	border-top-color: #fac2c2;
	border-left-color: #bd4747;
	border-right-color: #db8585;
	border-bottom-color: #9e0a0a;
}

#gameBoard .tetromino.S,
#nextPieceDisplay  .tetromino.S {
	background-color: #e98100;
	border-top-color: #ffdb85;
	border-left-color: #d6842e;
	border-right-color: #f0b252;
	border-bottom-color: #b54a00;
}

#gameBoard .tetromino.T,
#nextPieceDisplay  .tetromino.T {
	background-color: #1f7d1f;
	border-top-color: #b8f0b8;
	border-left-color: #0a6e0a;
	border-right-color: #479c47;
	border-bottom-color: #003300;
}

#gameBoard .tetromino.Z,
#nextPieceDisplay  .tetromino.Z {
	background-color: #705285;
	border-top-color: #ccccff;
	border-left-color: #593366;
	border-right-color: #8770a3;
	border-bottom-color: #330033;
}



/*

	GHOST PIECE 

	filter: grayscale(80%);
	opacity: 0.7;

*/
#gameBoard .tetromino.ghost {
	filter: grayscale(80%);
	opacity: 0.7;
}


#extraGameContent {
	margin-top: 2em;
}

#extraGameContent .title > h2 {
	display: inline-block;
	margin: 0;
}



#keyboardInstructions {
	border-top: 2px solid #DDD;
	padding-left: 3em;
}

#keyboardInstructions > * {
	text-align: left;
}

#keyboardInstructions > .optionSet {
	margin-bottom: 1.5em;
}

#keyboardInstructions #keyboardArrowKeys {
	width: 100px;
	display: inline-block;
}

#keyboardInstructions #keyboardArrowKeys > .icon {
	float: left;
	margin: 0;
	color: #555;
	font-size: 2em;
}

#keyboardInstructions #keyboardArrowKeys > .icon.invisible {
	visibility: hidden; /* still takes space */
}


#keyboardInstructions .arrowKeyInstructions .text {
	display: inline-block;
	height: 42px;
	vertical-align: middle;
}

#keyboardInstructions .key {
	position: relative;
}


#keyboardInstructions .emptyKeyInstructions .key:hover {
	color: #FFF;
	background-color: #555;
}

#keyboardInstructions .backspaceKey,
#keyboardInstructions .deleteKey,
#keyboardInstructions .zeroKey,
#keyboardInstructions .spacebarKey {

	border: 2px solid #555;
	color: #555;

	border-top-left-radius: 10px 5px;
	border-bottom-right-radius: 10px 5px;

	border-top-right-radius: 5px;
	border-bottom-left-radius: 5px;
	position: relative;

	display: inline-block;

	padding: 3px 12px;
}

#keyboardInstructions .deleteKey,
#keyboardInstructions .zeroKey,
#keyboardInstructions .spacebarKey {
	vertical-align: bottom;
	height: 33.64px;
}

#keyboardInstructions .zeroKey {
	padding: 5px 10px 3px 10px;
}

#keyboardInstructions .spacebarKey {
	padding: 5px 3em 3px 3em;
}

#keyboardInstructions .keySubtext {
	position: absolute;
	top: 2px;
	left: calc(50% - 22px);
	font-size: 0.85em;
}


#keyboardInstructions .backspaceKey .backArrow {
	position: absolute;
	bottom: -1px;
	left: 15px;
}

#keyboardInstructions .backspaceKey .icon {
	transform: scale(2, 1);
}

#keyboardInstructions .backspaceKey span {
	font-size: 0.65em;
	vertical-align: super;
}

#keyboardInstructions .deleteKey span {
	font-size: 0.65em;
}


.strikethrough {
	text-decoration: line-through;
}