:root{
	scroll-behavior: smooth;
	animation-duration: 600ms;
	font-size: 16px;
};


* { 
	box-sizing: border-box;
	scroll-behavior: smooth;
}

html, body {
	overflow-x: hidden;
	min-height: 100%;
	color: var(--color5);
	background-color: var(--color0);
	transition-duration: 600ms;
	transition-property: color;
}
	/* sets the body height of the browser, so that backgrounds and div heights work correctly. Color and background will almost certainly be altered; they are just placeholders */

a
{
	cursor: pointer;
}

iframe
{
	background-color: white;
}


br{
	user-select: none;
}

body {
	font-size: 1.2rem;
	font-family: Monaco, sans-serif;
	text-rendering: optimizeLegibility;
	overflow-x: hidden;
	margin-bottom: 0.5rem;

}
	/* sets the base font size for the document; turns on kerning pairs and ligatures */
	
body, ul, ol, dl {
	margin: 0;
}

li {
	margin-bottom: 0.2rem;
}

hr{
	border: 0px;
	border-top: 1px solid;
}

article, aside, audio, header, nav, section, video {
	display: block; 
	}
	
	/* ensures that older browsers will display HTML5 elements correctly */

div{
	flex-wrap: wrap;
}

footer {
	display: flex;
    flex-wrap: wrap;
    justify-content: center;
    text-align: center;
    padding: 3px;
    background-color: var(--color3);
    color: white;
    width: 100%;
    border-top: 1px solid black;
    box-shadow: inset black 0px 4px 6px -5px
}

footer div {
    display: flex;
    align-content: center;
    flex-wrap: wrap;
    margin-left: 0.5rem;
    margin-right: 0.5rem;
    width: 15rem;
    justify-content: center;
}

	
h1 {
	font-size: 5rem;
	margin: 2.5rem 0 1.25rem 0;
	
}
h2{
	font-size: 3rem;
	margin: 2.5rem 0 1.25rem 0;
	
}
h3{
	font-size: 2rem;
	margin: 2.5rem 0 1.25rem 0;
	
}
h4{
	font-size: 1rem;
	margin: 2.5rem 0 1.25rem 0;
	
}
	
p { 
	-ms-word-break: break-all;
	word-break: break-all;
	word-break: break-word;
	-moz-hyphens: auto;
	-webkit-hyphens: auto;
	-ms-hyphens: auto;
	hyphens: auto;
	line-height: 1.6rem;
} 
	/* sets hyphenation by default on paragraphs */
	
textarea { 
	resize: vertical;
}
	
img { 
	border: none;
}
	/* removes outlines from linked images (for older browsers and IE), sets up images for responsive design layout */
	
input[type="submit"]::-moz-focus-inner, 
	input[type="button"]::-moz-focus-inner {
		border : 0px;
	}
	/* removes the inner border effect from focused buttons for form elements in Firefox */
	
input[type="search"] { 
	-webkit-appearance: textfield;
} 
input[type="submit"] { 
	-webkit-appearance:none;
}
	/* removes the OS X appearance from HTML5 search inputs and submit buttons when viewed in Safari */
	
input:required:after {
	color: #f00;
	content: " *";
}
	/* sets up required form fields with the conventional following red asterix */
input[type="email"]:invalid { 
	background: #f00;
}
	/* causes a visual alert in browsers that do client-side checking of HTML5 email field – this may already be the default in some browsers. */
	
.right { 
	float: right;
	margin-left: 2rem;
	clear: right;
}
.left { 
	float: left;
	margin-right: 2rem;
	clear: left;
}
	/* allows a quick shortcut for floating elements left and right while avoiding the “float quirk” problem */

.clickable:hover
{
	filter: brightness(1.2);
	transform: scale(1.05);
}


.clickable:active{
    filter: brightness(0.8);
}
	
sub, sup { 
	line-height: 0;
}
    /* sets superscript and subscript text so that it doesn't throw off leading for elements in which they are included */

code
{
	background-color: var(--color4);
	color: var(--color2);
	text-shadow: none;
	font-size: 1.2em;
}


table
{
	border-collapse: collapse;
	text-align: center;
}

tr:nth-child(even)
{
  background-color: var(--color1);
}

tr:nth-child(odd)
{
  background-color: var(--color4);
}

th
{
	background-color: var(--color3);
}

td
{
	text-align: center;
	padding-top: 0.5rem;
	padding-bottom: 0.5rem;
}

td, th
{
	padding-left: 1rem;
	padding-right: 1rem;
	border: 1px solid black;
}


button {
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
	border-radius: 0.5rem;
	border: 1px solid;
	cursor: pointer; 
	cursor: hand;
}




.content-block{
	padding-left: 1rem;
	padding-right: 1rem;
	padding-top: 0;
	margin-top: 0;
	width: 80vw;
	max-width: min(70rem, calc(100% - 1rem) );
}


/* Add a black background color to the top navigation */
.topnav {
    display: flex;
    flex-wrap: nowrap;
    justify-content: space-between;
    column-gap: 2rem;
    width: calc(100% - 2.5rem);
    height: 2.25rem;
    padding: 0.75rem 1.25rem;
    box-shadow: inset 0px -2px 4px 0 #00000077;
    background-color: #fffa;
    overflow: visible;
    position: fixed;
    z-index: 10;
    left: 0;
    top: 0;
    align-items: center;
}

/* Style the links inside the navigation bar */
.topnav a {
	display: inline-block;
	position: relative;
	height: 1.5rem;
	padding: 7px 12px 3px 12px;
	font-size: 1rem;
	text-align: center;
	color: var(--color2);
	background-color: var(--color1);
	margin: 1px;
	margin-right: 5px;
	text-decoration: none;
	box-shadow: 0px 0px 4px 2px #00000077;
	user-select: none;
	cursor: pointer;
	border-radius: 1rem;
	transform: scale(1);
	transition-property: transform;
	transition-duration: 100ms;
	transition-timing-function: linear;
}

.topnav a:hover{
	filter: brightness(1.2);
	transform: scale(1.05);
}


.topnav a:active{
	filter: brightness(0.8);
	transform: scale(1.05);
}








.dialogue-modal-background{
	display:none;
}

.dialogue-modal-background[open="true"]
{
	display: block;
	position:fixed;
	top: 0px;
	left: 0px;
	width: 100vw;
	height: 100vh;
	background-color: rgba(0,0,0,0.6); /* Black w/ opacity */
	z-index: 1111; /* Sit on top */
}

.dialogue-modal{
	display: grid;
	position:fixed;
	margin: auto auto;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	min-width: min(calc(100vw - 3.2rem), max(20%, 20rem));;
	max-width: calc(100vw - 3.2rem);
	min-height: 5rem;
	max-height: calc(100vh - 3.2rem);
	overflow: auto;
	text-align: center;
	justify-content: center;
	justify-items: center;
	padding: 1rem;
	padding-bottom: 0.5rem;

	border-radius: 1rem;
	background-color: var(--color2);
	box-shadow: 0px 0px 0px 7px var(--color0);
}


.dialogue-modal-message{
	min-height: 2rem;
	min-width: 5rem;
	margin: 1.5rem 0;
}
.dialogue-modal-button
{
	justify-self: center;
    padding: 0.5rem 1rem;
    min-width: 3rem;
}





@keyframes append-animate {
	from {
		transform-origin: top center;
		transform: scaleY(0.0);
		opacity: 0.2;
	}
	to {
		transform-origin: top center;
		transform: scaleX(1.0);
		opacity: 1;	
	}
}


@keyframes anim-shrink-horizontal{
	from{
		transform: scaleX(1.0);
		width: 85%;
		opacity: 1;
	}
	to{
		transform: scaleX(0.0);
		width: 0%;
		opacity: 0.2;
	}
}

@keyframes anim-grow-horizontal{
	from{
		transform: scaleX(0.0);
		width: 0%;
		opacity: 0.2;
	}
	to{
		transform: scaleX(1.0);
		width: 85%;
		opacity: 1;
	}
}


.dropdown-wrapper{
	position: absolute;
	right: -1.3rem;
	top: 3rem;
}

.dropdown-content{
	display:none;
	background-color: var(--color0);
}
.dropdown-wrapper[show="true"] .dropdown-content{
	display: block;
}

.dropdown-content a
{
	font-size: 1.5rem;
    text-align: center;
    color: var(--color5);
    background-color: var(--color0);
    user-select: none;
    cursor: pointer;
    border-bottom: 1px solid black;
    border-radius: 0;
    margin: 0;
    box-shadow: inset 0px 1px 5px -0px #00000077;
    padding: 1.5rem;
}

.index-section{
	padding: 1rem;
	color: var(--color5);
	background-color: var(--color0);
	margin-bottom: 1rem;
	border-top: 1px solid var(--color1);
}

.index-section button{
    display: flex;
    flex-wrap: wrap;
    align-content: center;
    justify-content: center;
    user-select: none;
    cursor: pointer;
    width: fit-content;
    padding: 0 1.6rem;
    height: 3.75rem;
    border-radius: 5rem;
    font-size: 1.5rem;
    margin-left: 10px;
    background-color: var(--color3);
    color: var(--color2);
    border: 2px solid var(--color2);
    padding-bottom: 5px;
	box-shadow: black 0px 1px 10px -1px;
}


@media only screen and (max-width: 1024px){
	.small-screen-hideable
	{
		display: none !important;
	}

}

@media only screen and (min-width: 1025px){
	.small-screen-only
	{
		display: none !important;
	}
	
}

@media screen and (max-width: 1024px)
{
	:root{
		font-size: 14px;
	}
}

@media screen and (max-width: 425px)
{
	:root{
		font-size: 11px;
	}
}

@media screen and (max-width: 375px)
{
	:root{
		font-size: 10px;
	}
}

@media screen and (max-width: 320px)
{
	:root{
		font-size: 9px;
	}
}