html, body {
    padding: 0px;
    margin: 0px;
}

html {
	height: 100%;
}

body {
	min-height: 100%;
    display: flex;
    flex-direction: column;
    background: rgb(70,36,60);
    background: linear-gradient(90deg, rgba(70,36,60,1) 0%, rgba(113,43,117,1) 35%, rgba(199,75,80,1) 100%);
}

/* Navbar */

.navbar-container {
    display: flex;
    justify-content: center;
    background: rgba(255, 255, 255, .5);
    -webkit-backdrop-filter: blur(10px);
    backdrop-filter: blur(10px);
    padding: 5px;
    box-shadow: 0 2px 4px 0 rgba(70, 36, 60, 0.5);
    z-index: 5;
}

.navbar-centering-container {
    position: relative;
    width: 1000px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    /* border: red 1px solid; */
}

.hamburger-menu-container, .navbar-logo-container, .social-icons-container {
    color: white;
    cursor: pointer;
    padding-left: 5px;
    padding-right: 5px;
}

.hamburger-menu {
    position: fixed;
    background-color: rgba(255, 255, 255, .2);
    z-index: 4;
    left: 0;
    top: 0;
    right: 0;
    bottom: 0;
    /* transform: translateX(-100%); */
    /* transform: translateY(-100%) 1s ease-in-out; */
    /* animation: fadeIn 200ms ease-in-out; */
    /* visibility: hidden; */
    /* transition: visibility 0s 2000ms; */
    /* transition-duration: 200ms; */
}

.menu-options-container {
    height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    z-index: 5;
}

.menu-options-container a {
    color: inherit;
    text-decoration: none;
}

.menu-options-left-align {
    display: flex;
    flex-direction: column;
    align-items: start;
    row-gap: 15px;
    /* transform: translateY(-100%); */
    /* transition: transform 200ms; */
}

.visible {
    visibility: visible;
    opacity: 1;
    transition: opacity 200ms ease-in-out;
}

.hidden {
    visibility: hidden;
    opacity: 0;
    transition: visibility 0s 200ms, opacity 200ms ease-in-out;
}

.menu-option {
    font-family: 'Gill Sans', 'Gill Sans MT', Calibri, 'Trebuchet MS', sans-serif;
    font-size: xx-large;
    /* font-weight: 600; */
    color: white;
    cursor: pointer;
    transition-duration: 200ms;
}

.menu-option:hover {
    transform: scale(1.02);
}

.navbar-logo-container {
    font-family:'Consolas', 'Ubuntu Mono', 'monospace';
    font-size: xx-large;
    font-weight: 600;
}

.navbar-logo-container a, .social-icons-container a {
    color: inherit;
    text-decoration: none;
}

/* Cards */

.main-container {
	flex: 1;
    /* height: 100%; */
    /* display: flex; */
    /* padding-top: 20px;
    padding-bottom: 20px; */
    display: contents;
}

.cards-grid {
    display: flex;
    flex-direction: column;
    align-items: center;
    row-gap: 20px;
    padding: 20px;
}

.single-card {
    grid-template-columns: 1fr;   
}

.card-container, .shrinking-card-container {
    max-width: 400px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    background: rgba(255, 255, 255, .5);
    -webkit-backdrop-filter: blur(10px);
    backdrop-filter: blur(10px);
    padding: 20px;
    margin-top: 10px;
    border-radius: 5px;
    box-shadow: 0 4px 8px 0 rgba(70, 36, 60, 0.5);
    color: white;
    cursor: pointer;
    transition-duration: 200ms;
}

.card-container:hover {
    transform: scale(1.02);
}

.card-container h2, .shrinking-card-container h2 {
    font-family:'Consolas', 'Ubuntu Mono', 'monospace';
    font-size: xx-large;
    font-weight: 600;
}

.card-container p, .shrinking-card-container p {
    font-family: 'Gill Sans', 'Gill Sans MT', Calibri, 'Trebuchet MS', sans-serif;
    font-size: large;
    font-weight: 500;
    text-align: center;
}

.card-container i, .shrinking-card-container i {
    color: white;
}

.no-animation, .static {
    cursor: auto;
    max-width: 1000px;
}

.no-animation:hover, .static:hover {
    transform: none;
}

.static, .shrinking-card-container {
    align-items: stretch;
}

.shrinking-card-container {
    cursor: auto;
    max-width: 1000px;
}

@media only screen and (min-width: 1200px) {
    .cards-grid {
        display: grid;
        grid-template-columns: 1fr 1fr;
        grid-template-rows: 1fr 1fr;
        row-gap: 10px;
        column-gap: 20px;
    }

    .single-card {
        grid-template-columns: 1fr;   
    }

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

/* Code */

.main-code-coontainer {
    display: contents;
}

.code-header-container {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding-bottom: 15px;
}

.taskbar-container {
    display: flex;
    align-items: center;
    padding-top: 5px;
    padding-bottom: 5px;
}

.taskbar-option-container {
    padding-right: 5px;
    font-family: 'Gill Sans', 'Gill Sans MT', Calibri, 'Trebuchet MS', sans-serif;
    display: flex;
    align-items: center;
    padding: 5px;
    border-radius: 5px;
    transition-duration: 200ms;
    cursor: pointer;
}

.taskbar-option-container:hover {
    background: rgba(255, 255, 255, .1);
}

.button-container {
    padding-right: 5px;
}

.prudens-button {
    display: flex;
    align-items: center;
    column-gap: 10px;
    padding: 5px 10px 5px 10px;
    border-radius: 5px;
    background: rgba(255, 255, 255, .2);
    font-family: 'Consolas', 'Ubuntu Mono', 'monospace';
    font-size: x-large;
    font-weight: 500;
    cursor: pointer;
    box-shadow: 0 2px 4px 0 rgba(70, 36, 60, 0.5);
    border: 1px solid rgba(255, 255, 255, .1);
    transition-duration: 200ms;
}

.prudens-button:hover {
    background:rgba(255, 255, 255, .3);
}

/* Code Grid */

.code-header-label-container {
	padding-top: 5px;
	padding-left: 5px;
	display: flex;
	justify-content: start;
}

.code-header-label {
	font-family: 'Gill Sans', 'Gill Sans MT', Calibri, 'Trebuchet MS', sans-serif;
	font-weight: 500;
	font-size: large;
	color: white;
}

.code-grid-container {
	display: flex;
	flex-direction: column;
	align-items: stretch;
    padding-top: 5px;
    border-top: rgba(255, 255, 255, .3) 1px solid;
}

.policy-editor-container {
	display: contents;
}

.context-editor-container {
	display: contents;
}

.console-container {
	display: contents;
}

@media only screen and (min-width: 1200px) {
	.code-grid-container {
		display: grid;
		row-gap: 0px;
		column-gap: 15px;
		grid-template-columns: repeat(2, 1fr);
		grid-template-rows: repeat(2, 1fr);
		grid-template-areas: 
		    "policy context"
		    "policy console";
	}
	.policy-editor-container {
		display: block;
		grid-area: policy;
	}

	.context-editor-container {
		display: block;
		grid-area: context;
	}

	.console-container {
		display: block;
		grid-area: console;
	}
}

.card-container-padding {
	display: flex;
	flex-direction: column;
	align-items: center;
    justify-content: center;
	padding: 20px;
    transition-duration: 200ms;
}

.codemirror-container {
    padding-left: 5px;
    padding-right: 5px;
    padding-top: 5px;
    padding-bottom: 5px;
}

/* Taskbar Options */

.mode-select-container {
    padding-left: 5px;
}

.mode-select {
    background: rgba(255, 255, 255, .2);
    border: none;
    border-radius: 5px;
    color: white;
    font-family: inherit;
}

/* CodeMirror Specifications */

.CodeMirror {
    border-radius: 5px;
    width: 400px;
}

/* Documentation */

.main-docs-container {
	display: flex;
	padding: 20px;
	justify-content: center;
	align-items: center;
}

.docs-grid-container {
	display: flex;
	flex-direction: column;
	row-gap: 15px;
}

.toc-container {
    /* position: relative; */
	display: flex;
	flex-direction: column;
	justify-content: start;
	align-items: start;
    border-bottom: 1px solid rgba(255, 255, 255, .3);
    padding-top: 10px;
    /* border: 1px solid red; */
}

.toc-container ul {
    /* position: absolute; */
    /* top: 0;
    right: 5px; */
	font-family: 'Gill Sans', 'Gill Sans MT', Calibri, 'Trebuchet MS', sans-serif;
	color: white;
	font-size: 16pt;
	text-align: left;
	list-style-type: none;
    padding: 0;
}

.toc-container a {
    color: inherit;
    text-decoration: none;
}

.toc-container li {
	padding: 5px;
	border-radius: 5px;
	cursor: pointer;
}

.toc-container li:hover {
	background: rgba(255, 255, 255, .1);
}

.toc-container-h3 {
    font-size: 12pt;
}

.toc-entry-hidden {
    display: none;
}

.toc-active {
    background: rgba(255, 255, 255, .3);
}

.docs-text-container {
	padding: 10px;
}

.docs-text-container p {
	text-align: left;
    font-size: 14pt;
}

.docs-text-container a {
	color: white;
}

.docs-text-container h3, h4, ul, ol {
	font-family: 'Gill Sans', 'Gill Sans MT', Calibri, 'Trebuchet MS', sans-serif;
}

.docs-text-container h3 {
    font-size: 20pt;
}

.docs-text-container ul, ol {
    font-size: 14pt;
}

.docs-text-container code {
	font-size: 10pt;
	background: rgba(255, 255, 255, .3);
	color: rgba(199, 75, 80, 1);
	border-radius: 5px;
	padding: 2pt;
}

.docs-text-container li {
	padding-bottom: 5px;
}

.docs-text-container math {
    font-family: 'Cambria', 'Cochin', Georgia, Times, 'Times New Roman', serif;
    font-size: 14pt;
}

pre > code {
	font-size: 600;
	background: rgba(255, 255, 255, .3);
	color: rgba(199, 75, 80, 1);
	border-radius: 5px;
    border-left: 4px white solid;
	display: block;
	text-align: left;
	white-space: pre-line;
    /* border: 1px solid red; */
}

.quote-text {
    padding-left: 20px;
    border-left: 4px white solid;
}

@media only screen and (min-width: 1200px) {
	.docs-grid-container {
		display: grid;
		grid-template-columns: 1fr 3fr;
		grid-template-areas: "toc body body body";
	}
	
	.toc-container {
        padding-right: 10px;
		border-right: 1px solid rgba(255, 255, 255, .3);
        border-bottom: none;
		grid-area: "toc";
        align-items: end;
	}

    .toc-container ul {
        text-align: right;
    }
	
	.docs-text-container {
		grid-area: "body";
	}
}

/* Minesweeper */

.minsweeper-grid-container {
    display: flex;
	flex-direction: column;
	/* align-items: stretch; */
    padding-top: 5px;
}

.minesweeper-label {
    justify-content: center;
}

.minesweeper-label-container {
    padding-top: 5px;
	padding-left: 5px;
}

.gameboard-container {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding-left: 10px;
}

@media only screen and (min-width: 1200px) {
	.minesweeper-grid-container {
        display: flex;
		flex-direction: row;
        gap: 10px;
	}

    .minesweeper-label {
        justify-content: start;
    }

    .minesweeper-label-container {
        align-self: stretch;
        padding-top: 5px;
        padding-left: 5px;
    }
    .gameboard-container {
        border-left: rgba(255, 255, 255, .3) 1px solid;
    }
}

.center-board-container {
    display: flex;
    flex-direction: column;
    max-width: fit-content;
}

.minesweeper-board-container {
    display: grid;
    gap: 0px;
    padding: 5px;
}

.minesweeper-cell {
    background-color: #c6c6c6;
    border-bottom: solid 4px #808080;
    border-right: solid 4px #808080;
    border-top: solid 4px white;
    border-left: solid 4px white;
    width: 20px;
    height: 20px;
    /* cursor: pointer; */
    font-family: 'monospace';
    font-weight: 600;
    align-content: center;
    text-align: center;
    line-height: 26px;
}

.minesweeper-cell.clicked {
    border-top: 1px solid #808080;
    border-right: 1px solid #808080;
    border-left: 1px solid #c6c6c6;
    border-bottom: 1px solid #c6c6c6;
    cursor: default;
    width: 26px;
    height: 26px;
}

.minesweeper-cell.last-move {
	border: 4px solid red;
    width: 20px;
    height: 20px;
    line-height: 20px;
}

.minesweeper-cell.bottom {
    border-bottom: 1px solid #808080;
}

.minesweeper-cell.left {
    border-left: 1px solid #808080;
}

.minesweeper-cell.bottom-left {
    border-bottom: 1px solid #808080;
    border-left: 1px solid #808080;
}

.minesweeper-taskbar-container {
    display: flex;
    gap: 10px;
}

.taskbar-icon-container {
    border-radius: 5px;
    padding: 5px 10px 5px 10px;
    cursor: pointer;
}

.taskbar-icon-container:hover {
    background-color: rgba(255, 255, 255, .1);
}

/* Minesweeper help */

.minesweeper-help-header-container{
    display: flex;
    justify-content: end;
}

.minesweeper-help-text-container {
    display: flex;
    flex-direction: column;
    padding: 10px;
    align-items: flex-start;
}

.minesweeper-help-text-container p {
    text-align: left;
}

.minesweeper-help-text-container code {
	font-size: 600;
	background: rgba(255, 255, 255, .3);
	color: rgba(199, 75, 80, 1);
	border-radius: 5px;
	padding: 2pt;
}

.minesweeper-help-text-container li {
	padding-bottom: 5px;
}

.minesweeper-help-text-container a {
	color: white;
}

.shrink-to-center {
    transform: scale(0);
    transition-duration: 600ms;
    transition-timing-function: cubic-bezier(.3, -.5, 1, 1);
}

.no-display {
    display: none;
}

.invisible {
	scale: 0%;
}

.unsrhink-from-center {
    transition-duration: 600ms;
    transition-timing-function: cubic-bezier(0, 0, .7, 1.5);
}

/* Othello */

.othello-board-padding-container {
    padding: 6px;
}

.othello-score-board-container {
    display: flex;
    justify-content: space-around;
    padding: 10px 0px 20px 0px;
}

.othello-point-container {
    display: flex;
    gap: 20px;
    align-items: center;
}

.othello-point-color {
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background-color: red;
}

.othello-point-color.black {
    background-color: black;
}

.othello-point-color.white {
    background-color: white;
}

.othello-score-text-container {
    font-family: 'Courier New', Courier, monospace;
    font-size: 16pt;
    font-weight: 600;
}

.othello-board-container {
    background-color: white;
    display: grid;
    gap: 1px;
    padding: 1px;
}

.othello-cell {
    background-color: #4f8a8b;
    width: 50px;
    height: 50px;
    position: relative;
}

.othello-piece-white {
    position: absolute;
    left: 5px;
    top: 5px;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background-color: white;
}

.othello-piece-black {
    position: absolute;
    left: 5px;
    top: 5px;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background-color: black;
}

.legal-moves-black {
    position: absolute;
    left: 5px;
    top: 5px;
    width: 38px;
    height: 38px;
    border-radius: 50%;
    background-color: rgba(0, 0, 0, .1);
    border: 1px dashed black;
}

.othello-last-move {
    position: absolute;
    left: 18px;
    top: 18px;
    width: 4px;
    height: 4px;
    border-radius: 50%;
    background-color: rgba(199, 75, 80, 1);
}

/* Chess */

.chess-board-container {
    width: 400px; 
    padding: 5px;
}