:root {
  --darkAccent900: #000000;
  --darkAccent800: #262626;
  --darkAccent700: #434343;

  --lightAccent000: #ffffff;
  --lightAccent100: #e9e9e9;
  --lightAccent400: #9d9d9d;

  --opacityFactor: 0.2;
}

html {
  scroll-behavior: smooth;
}

body {
  background-color: var(--darkAccent900);
  color: var(--lightAccent000);
  margin: 0px;
  font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif;
}

h1 {
  font-weight: 400;
  cursor: default;
}

h3 {
  font-weight: 400;
  cursor: default;
}

hr {
  opacity: 0.125;
  width: 80%;
  border-style: solid;
  margin-bottom: 15px;
}

footer {
  background-color: var(--darkAccent800);
  padding: 10px;
  opacity: 0.5;
  float: right;
  border-radius: 5px 0px 0px 0px;
  margin-top: 20px;
  cursor: default;
}

.centered {
  margin-left: auto;
  margin-right: auto;
}

.middle {
  margin-top: auto;
  margin-bottom: auto;
}

div.portfolioSections {
  padding-top: 1px;
  padding-left: 10px;
  padding-right: 10px;
  padding-bottom: 10px;
  border-radius: 10px;
  background-color: var(--darkAccent800);
}

div.welcomeSection {
  background-size: cover;
  background-repeat: no-repeat;
  height: 400px;
  border-radius: 10px;
  margin-bottom: 20px;
}

#mainContent {
  margin-left: 210px;
  margin-right: 20px;
  padding-top: 25px;
}

/* Styles for the site's navigation */
.navigationLinks {
  background-color: transparent;
  border: none;
  color: var(--lightAccent000);
  padding-left: 4px;
  padding-right: 0px;
  letter-spacing: 4px;
  cursor: default;
}

.navigationLinks:hover {
  animation-name: navigationFade;
  animation-duration: 0.25s;
  animation-fill-mode: forwards;
}

button.toggleNavigationButtons {
  background-color: transparent;
  border: none;
  color: var(--lightAccent000);
  padding-left: 4px;
  padding-right: 0px;
  letter-spacing: 4px;
}

button.toggleNavigationButtons:hover {
  animation-name: navigationFade;
  animation-duration: 0.25s;
  animation-fill-mode: forwards;
}

button.currentSection {
  background-color: var(--darkAccent700);
}

span.navigationTitle {
  color: dimgray;
  cursor: default;
}

div.placeholderDiv {
  margin: 5px;
  padding: 20px;
  border-radius: 10px;
  width: 50%;
}

#openPanel {
  position: fixed;
  padding-left: 10px;
}

#siteNavigation {
  height: 100%;
  position: fixed;
  padding: 30px;
  background-color: var(--darkAccent800);
}

#navigationLinksContainer {
  padding-top: 50%;
  padding-bottom: 50%;
}

/* Styles for the Home page */
#Home {
  animation-name: revealSections;
  animation-duration: 1s;
  animation-fill-mode: forwards;
}

#webpageName:hover {
  text-decoration-line: underline;
  text-decoration-color: red;
  text-decoration-style: wavy;
}

h1.greeting {
  text-align: center;
}

h1.greeting {
  font-weight: 300;
}

div.showcaseContainer {
  display: flex;
}

div.projectShowcase {
  margin: 5px;
  padding: 20px;
  border-radius: 10px;
  width: 50%;
}

div.projectShowcase:hover {
  animation-name: projectShowcaseLift;
  animation-duration: 0.5s;
  animation-fill-mode: forwards;
}

p.projectShowcase {
  opacity: 0.5;
  cursor: default;
}

img.projectPreview {
  width: 100%;
  border-radius: 5px;
}

img.projectIcon {
  margin-top: -25px;
  margin-bottom: -10px;
  width: 56px;
  height: 56px;
}

.projectLink {
  opacity: 0.75;
}

a.projectLink {
  border-radius: 5px;
  padding: 5px;
  text-decoration-line: none;
  color: cornflowerblue;
}

a.projectLink:hover {
  border-radius: 5px;
  background-color: rgba(0, 0, 0, var(--opacityFactor));
}

img.projectLink {
  margin-right: 5px;
  width: 16px;
  height: 16px;
}

span.projectStatus {
  padding-left: 5px;
  padding-right: 5px;
  padding-top: 2px;
  padding-bottom: 2px;
  background-color: rgba(0, 0, 0, var(--opacityFactor));
  font-size: 10px;
  cursor: default;
}

#calcyoulus {
  background-color: rgba(170, 242, 85, var(--opacityFactor));
}

#emotionDetector {
  background-color: rgba(0, 0, 0, var(--opacityFactor));
}

#escapeXavier {
  background-color: rgba(89, 133, 255, var(--opacityFactor));
}

#expandCalculator {
  background-color: rgba(33, 150, 243, var(--opacityFactor));
}

#howOldIsMyPlant {
  background-color: rgba(184, 134, 11, var(--opacityFactor));
}

#josephSays,
#josephSaysOffline {
  background-color: rgba(220, 20, 60, var(--opacityFactor));
}

#powerMaster {
  background-color: rgba(234, 196, 82, var(--opacityFactor));
}

#noteMaster {
  background-color: rgba(0, 142, 255, var(--opacityFactor));
}

/* Styles for the Experience page */
img.languageIcon {
  width: 56px;
  height: 56px;
  filter: invert(100%);
  margin-right: 5px;
  margin-bottom: 2px;
}

#python {
  background-color: rgba(55, 118, 171, var(--opacityFactor));
}

#htmlCSSJS {
  background-image: conic-gradient(
    rgba(227, 79, 38, var(--opacityFactor)),
    rgba(102, 51, 153, var(--opacityFactor)),
    rgba(247, 223, 30, var(--opacityFactor))
  );
}

#cSharpXAML {
  background-image: linear-gradient(
    rgba(66, 165, 245, var(--opacityFactor)),
    rgba(87, 48, 214, var(--opacityFactor))
  );
}

#kotlin {
  background-color: rgba(127, 82, 255, var(--opacityFactor));
}

#dotNet {
  background-color: rgba(81, 43, 212, var(--opacityFactor));
}

#git {
  background-color: rgba(240, 80, 50, var(--opacityFactor));
}

#roboflow {
  background-color: rgba(103, 6, 206, var(--opacityFactor));
}

#visualStudio {
  background-color: rgba(91, 66, 145, var(--opacityFactor));
}

#vscode {
  background-color: rgba(4, 107, 177, var(--opacityFactor));
}

/* Styles for the Contact page */
.profileLink {
  cursor: pointer;
}

a.profileLink {
  color: cornflowerblue;
  text-decoration-line: none;
}

a.profileLink:hover {
  text-decoration-line: underline;
  text-decoration-style: wavy;
}

#gitHubContact {
  background-color: rgba(0, 0, 0, var(--opacityFactor));
}

#dmojContact {
  background-color: rgb(247, 216, 4, var(--opacityFactor));
}

#microsoftDeveloperAccount {
  background-color: rgba(0, 0, 255, var(--opacityFactor));
}

#email {
  background-color: rgba(0, 0, 0, var(--opacityFactor));
}

/* ANIMATIONS */
@keyframes navigationFade {
  to {
    background-color: var(--lightAccent100);
    color: var(--darkAccent800);
  }
}

@keyframes projectShowcaseLift {
  to {
    box-shadow: 5px 5px 20px var(--darkAccent900);
  }
}

@keyframes revealSections {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
    box-shadow: 10px 7.5px 0px var(--darkAccent700);
  }
}

@keyframes toggleMenuAnimation {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}

/* Accommodates webpage for mobile devices */
@media only screen and (max-width: 600px) {
  #siteNavigation {
    position: sticky;
    height: 300px;
  }

  #mainContent {
    margin-left: 10px;
  }

  #navigationLinksContainer {
    padding-top: 5%;
    padding-bottom: 0px;
  }

  div.showcaseContainer {
    display: block;
  }

  div.projectShowcase {
    width: 90%;
  }
}
