/* MARK: Fonts */

@font-face {
	font-family: "Montserrat";
	src: url("../Fonts/Montserrat-ExtraLight.ttf") format("truetype");
	font-weight: 200;
}

@font-face {
	font-family: "Montserrat";
	src: url("../Fonts/Montserrat-Light.ttf") format("truetype");
	font-weight: 300;
}

@font-face {
  font-family: "Montserrat";
  src: url("../Fonts/Montserrat-Regular.ttf") format("truetype");
  font-weight: 400;
}

@font-face {
  font-family: "Montserrat";
  src: url("../Fonts/Montserrat-Medium.ttf") format("truetype");
  font-weight: 500;
}

@font-face {
  font-family: "Montserrat";
  src: url("../Fonts/Montserrat-SemiBold.ttf") format("truetype");
  font-weight: 600;
}

@font-face {
  font-family: "TradeGothic";
  src: url("../Fonts/TradeGothic-Light.ttf") format("truetype");
  font-weight: 300;
}

@font-face {
  font-family: "TradeGothic";
  src: url("../Fonts/TradeGothic-Regular.ttf") format("truetype");
  font-weight: 400;
}

@font-face {
  font-family: "TradeGothic";
  src: url("../Fonts/TradeGothic-Bold.ttf") format("truetype");
  font-weight: 500;
}

/* MARK: CSS variables */

:root {
  /* Variables to manage the navigation bar height */
  /* On mobile displays, the navigation bar becomes compact */
  --regularNavBarHeight: 60px;
  --compactNavBarHeight: 45px;

  /* Variables to manage the height of the drop down navigation menu */
  --regularDropDownHeight: 0px; /* Don't display on regular width */
  --compactCollapsedDropDownHeight: 30px; /* Just show the expand button indicator */
  --compactExpandedDropDownHeight: 195px; /* Full menu height */

  /* The maximum width for content that stretches the width of the page */
  --maxContentWidth: 1200px;
  --compactContentMargin: 10px; /* Left/right margin when content is compact */

  /* Variables to manage the footer */
  --footerHeight: 135px;

	/* Dynamic colors */
	--systemBlue: #007AFF;
	--systemBackground: white;
	--labelColor: black;
	--secondaryLabelColor: #505050;
	--navigationHoverColor: #666666;
	--navigationHoverBackgroundColor: #DDDDDD;
	--navigationBarShadowColor: #EEEEEE;

	/* My site supports dark mode! */
	color-scheme: light dark;
}

/* MARK: General styles */

div.mainContent {
  /* Fills up to the max content width */
  max-width: var(--maxContentWidth);

  /* Centered */
  margin: 0px auto;
}

/* Remove the default margin on the body */
html, body {
  margin: 0;
  padding: 0;
  height: 100%;

	background-color: var(--systemBackground);
}

/* Container with navigation bar, main content container, footer */
/* Needed to make footer stick to bottom */
div#overallContentContainer {
  min-height: 100%;
  position: relative;
}

/* MARK: Navigation bar styles */

/* Container for the navigation bar to push all content underneath it */
div#navigationBarContainer {
  height: calc(var(--regularNavBarHeight) + var(--regularDropDownHeight))
}

/* Navigation bar at the top of each page */
div#navigationBar {
  /* Pins to the top and stretches to the edges */
  position: fixed;
  top: 0px;
  left: 0px;
  right: 0px;

  /* Sticks the navigation bar at the front */
  z-index: 500;

  /* Adds the white blur effect */
  background-color: rgba(255, 255, 255, 0.87);
  -webkit-backdrop-filter: blur(10px);
}

div#navigationBarContent {
  /* Adjusts automatically as width becomes compact */
  height: var(--regularNavBarHeight);

  /* Makes layout of header on left, navigation on right easier */
  display: flex;
  flex-flow: row nowrap;
}

div#navigationDropDownMenu {
  height: var(--regularDropDownHeight);
  overflow: hidden;

  position: relative;
}

/* Main container with the content for each website. */
/* Adds the padding for the footer automatically */
div#mainContentContainer {
  position: relative;
  padding-bottom: var(--footerHeight);
}

/* MARK: Header that contains my image and name in the navigation bar */

/* Contains my profile picture and name in the navigation bar */
div#headerDiv {
  height: 100%;

  /* Centers the header contents vertically */
  display: inline-flex;
  flex-flow: row nowrap;
  align-items: center;
}

/* Image with my profile picture in the navigation bar */
img#headerImg {
  height: 40px;
  width: 40px;
  border-radius: 20px;

  position: relative;
}

/* Big label in the navigation bar that has my name */
h1#headerLabel {
  display: inline;

  font-family: Montserrat;
  font-weight: 400;
  font-size: 20pt;

  margin: 0 0 0 10px; /* Adds some spacing between image and name */

  position: relative;
}

/* Link animations */
a#headerLink {
	text-decoration: none;
	color: var(--labelColor);

	-webkit-transition: color 0.2s;

  margin: 0;
  padding: 0;
}
a#headerLink img {
	opacity: 1.0;
	-webkit-transition: opacity 0.2s;
}
a#headerLink:hover {
	color: var(--navigationHoverColor);
	-webkit-transition: color 0.2s;
}
a#headerLink:hover img {
	opacity: 0.8;
	-webkit-transition: opacity 0.2s;
}
a#headerLink:visited {
	text-decoration: none;
	color: var(--labelColor);
}

/* MARK: Regular navigation on the right of the navigation bar */

div#regularNavigation {
  /* Vertically-centers the navigation items */
  display: inline-flex;
  align-items: center;

  /* Right-justifies the navigation */
  margin-left: auto;
}

h6.regularNavigationLabel {
  /* Side-by-side instead of on new lines */
  display: inline;

  font-family: Montserrat;
  font-weight: 400;
  font-size: 12pt;

  padding: 2px 5px 2px 5px; /* Spacing for highlight */
	margin: 0px 7px 0px 7px; /* Spacing between labels */
}

/* Link animations */
a.regularNavigationLink {
	text-decoration: none;
	color: var(--labelColor);
	border-radius: 3px;

	-webkit-transition: background-color 0.1s, color 0.1s;
}
a.regularNavigationLink:hover h6 {
	background-color: var(--navigationHoverBackgroundColor);
	color: var(--navigationHoverColor);
	border-radius: 3px;

	-webkit-transition: background-color 0.1s, color 0.1s;
}
a.regularNavigationLink:active h6 {
	background-color: var(--systemBlue);
	color: white;
	border-radius: 3px;

	-webkit-transition: background-color 0.1s, color 0.1s;
}
a.regularNavigationLink:visited h6 {
	color: var(--labelColor);
	border-radius: 3px;
}

a.regularNavigationLinkCurrent {
	text-decoration: none;
}
a.regularNavigationLinkCurrent h6 {
	text-decoration: none;
	color: white;
	border-radius: 3px;

	background-color: var(--systemBlue);
}
a.regularNavigationLinkCurrent:hover h6 {
	text-decoration: none;
}
a.regularNavigationLinkCurrent:active h6 {
	text-decoration: none;
}
a.regularNavigationLinkCurrent:visited h6 {
	text-decoration: none;
}

/* MARK: Compact navigation that appears when the expand button is pressed */

div#compactNavigationExpandButtonContainer {
  position: absolute;
  bottom: 6px;
  left: 0;
  right: 0;

  /* Horizontally centers the button */
  display: flex;
  flex-flow: row nowrap;
  justify-content: center;
}

input#compactNavigationDisplayButton {
  height: 11px;
}

div#compactNavigationLabelsContainer {
  /* Position above the drop down button */
  position: absolute;
  bottom: 30px;
  left: 0px;
  right: 0px;

  /* Lays out navigation labels vertically and horizontaly centered */
  display: flex;
  flex-flow: column nowrap;
  justify-content: center;
}

h6.compactNavigationLabel {
  font-family: Montserrat;
  font-weight: 400;
  font-size: 12pt;

  text-align: center;

  border-radius: 5px;

  padding: 10px 5px 10px 5px; /* Spacing for highlight */
	margin: 1px 0px 0px 0px; /* Spacing between labels */
}

/* Link animations */
a.compactNavigationLink {
	text-decoration: none;
	color: var(--labelColor);

	-webkit-transition: background-color 0.1s, color 0.1s;
}
a.compactNavigationLink:hover h6 {
	background-color: var(--navigationHoverBackgroundColor);
	color: var(--navigationHoverColor);

	-webkit-transition: background-color 0.1s, color 0.1s;
}
a.compactNavigationLink:active h6 {
	background-color: var(--systemBlue);
	color: white;

	-webkit-transition: background-color 0.1s, color 0.1s;
}
a.compactNavigationLink:visited h6 {
	color: var(--labelColor);
}

a.compactNavigationLinkCurrent {
	text-decoration: none;
}
a.compactNavigationLinkCurrent h6 {
	text-decoration: none;
	color: white;

	background-color: var(--systemBlue);
}
a.compactNavigationLinkCurrent:hover h6 {
	text-decoration: none;
}
a.compactNavigationLinkCurrent:active h6 {
	text-decoration: none;
}
a.compactNavigationLinkCurrent:visited h6 {
	text-decoration: none;
}

/* MARK: Footer */

/* Container for the footer, needed to pin to the bottom of the screen */
div#footerContainer {
  /* Stick to bottom */
  position: absolute;
  bottom: 0px;
  width: 100%;

  height: var(--footerHeight);

  padding: 0;
  margin: 0;
}

/* Contains all the content of the footer and lays out footer rows vertically */
div#footerContent {
  height: calc(100% - 10px);
  background-color: black;

  display: flex;
  flex-flow: column nowrap;
  justify-content: center;
}

div.footerRow {
  margin: 6px auto;
	width: 100%;
}

div.footerLinksContainer {
  display: flex;
  flex-flow: row nowrap;
	justify-content: center;
}

a.footerLink {
  margin: 0px 4px;
}

img.footerLinkImg {
  display: inline;

  height: 40px;
  width: 40px;
}

div.footerCreditsContainer {
  display: flex;
  flex-flow: row nowrap;
	justify-content: center;
}

p.footerCreditsText {
  display: inline;

  color: white;
	font-size: 12pt;
	font-family: "Montserrat", sans-serif;
	font-weight: 300;

	margin: 0;
}

img.footerCreditsIcon {
  height: 17px;
  width: auto;

  display: inline;

	position: relative;
	top: 2px;
}

div.footerCreditsContainer *:not(:first-child) {
	margin-left: 5px;
}

/* MARK: Link styling */
a.textLink {
	text-decoration: none;

	/* Blue links */
	color: var(--systemBlue);
	opacity: 1.0;

	-webkit-transition: color 0.2s;
	-webkit-transition: opacity 0.2s;
}
a.textLink:hover {
	/* Blue links */
	color: var(--systemBlue);
	opacity: 1.0;

	-webkit-transition: color 0.2s;
	-webkit-transition: opacity 0.2s;
}
a.textLink:visited {
	text-decoration: none;

	/* Blue links */
	color: var(--systemBlue);
	opacity: 1.0;
}
a.textLink:active {
	/* Transparent blue links */
	color: var(--systemBlue);
	opacity: 0.4;

	-webkit-transition: color 0.2s;
	-webkit-transition: opacity 0.2s;
}

a.imageLink {
	opacity: 1.0;
	-webkit-transition: opacity 0.2s;
}
a.imageLink:hover {
	opacity: 1.0;
	-webkit-transition: opacity 0.2s;
}
a.imageLink:visited {
	opacity: 1.0;
}
a.imageLink:active {
	opacity: 0.4;
	-webkit-transition: opacity 0.2s;
}

/* MARK: Card UI */

div.card {
	--section-border-radius: 15px;
  border-radius: var(--section-border-radius);
  box-shadow: 0px 3px 15px rgba(0, 0, 0, 0.30);
  overflow: hidden;
  position: relative;
  background-color: lightGray;

	-webkit-backdrop-filter: blur(0px);
}

img.cardBackgroundImage {
	height: 100%;
	width: 100%;
	object-fit: cover;
}

div.cardContent {
	--sectionContent-padding: 15px;

	position: absolute;
	top: 0px;
	left: 0px;
	right: 0px;
	bottom: 0px;

	display: flex;
	flex-flow: column nowrap;

	padding: var(--sectionContent-padding);
}

div.canFillWidth {

}

/* MARK: Dividers */

hr.sectionDivider {
	margin: 35px 5px;

	border: none;
  height: 0.5px;
  /* Set the hr color */
  color: #777; /* old IE */
  background-color: #777; /* Modern Browsers */
}

/* MARK: Section titles */

h1.pageTitle {
  font-family: "Montserrat", sans-serif;
	font-weight: 300;

	letter-spacing: 4px;
	font-size: 30pt;

	margin-top: 10px;
	margin-bottom: 20px;

	color: var(--labelColor);
}

h2.pageSubtitle {
	font-family: "Montserrat", sans-serif;
	font-weight: 300;

	letter-spacing: 4px;
	font-size: 25pt;

	margin-top: 0px;

	color: var(--labelColor);
}

h2.centered {
	width: 100%;
	text-align: center;
}

p.pageText {
	margin: 0;
  padding: 0;

  font-size: 11pt;
  font-family: "Montserrat", sans-serif;
  font-weight: 300;
  line-height: 1.4;

	color: var(--labelColor);
}

p.pageText strong {
	font-weight: 400;
}

p.paragraph {
	margin-bottom: 20px;
}

/* MARK: Resizing the window */

/* Attributes for compact width (mobile site) */
@media only screen and (max-width: 650px) {
  /* Adjust navigation bar container height to push content down appropriately */
  div#navigationBarContainer {
    height: calc(var(--compactNavBarHeight) + var(--compactCollapsedDropDownHeight))
  }

  div#navigationBarContent {
    /* Shrink the nav bar */
    height: var(--compactNavBarHeight);
  }

  img#headerImg {
    /* Shrink the header image */
    height: 35px;
    width: 35px;
    border-radius: 17.5px;

    /* Move the image down a bit */
    top: 2px;
  }

  h1#headerLabel {
    /* Shrink the header label */
    font-size: 18pt;
    /* Move the image down a bit */
    top: 2px;
  }

  div#navigationDropDownMenu {
    /* Show expansion indicator */
    height: var(--compactCollapsedDropDownHeight);
  }

  div#regularNavigation {
    /* Hide the regular navigation system when compact layout occurs */
    display: none;
  }

	div.canFillWidth {
		/* max-width: none;
		margin-left: 0px;
		margin-right: 0px; */

		box-shadow: initial;
		border-radius: initial;

		--compactContentMargin: 0xp
	}

	hr.sectionDivider {
		margin-top: 25px;
		margin-bottom: 25px;
	}

	h1.pageTitle {
  	font-size: 22pt;
		margin-top: 0px;
  }

	h2.pageSubtitle {
		font-size: 18pt;
	}
}

/* Attributes for beyond max main content width */
/* Max content width + 2 * compactContentMargin (since left and right) */
@media only screen and (max-width: 1220px) {
  div.mainContent {
    /* Add some extra margins to the edges */
    margin: 0px var(--compactContentMargin);
  }
}

/* Attributes for dark mode */
@media (prefers-color-scheme: dark) {
	:root {
		/* Dynamic colors */
		--systemBlue: #0A84FF;
		--systemBackground: #1E1E1E;
		--labelColor: white;
		--secondaryLabelColor: #AFAFAF;
		--navigationHoverColor: #AAAAAA;
		--navigationHoverBackgroundColor: #444444;
		--navigationBarShadowColor: #666666;
	}
	/* Navigation bar at the top of each page */
	div#navigationBar {
	  /* Changes the white blur to a dark blur */
	  background-color: rgba(30, 30, 30, 0.7);
	  -webkit-backdrop-filter: blur(10px);
	}

	a#headerLink:hover {
		color: #AAAAAA;
	}

	div.card {
	  background-color: black;
	}
}
