:root {
  --bg: hsl(21, 20%, 80%);
  --nav-bg: hsla(20, 20%, 80%, 0);
  --accent: hsl(203, 100%, 40%);
  --text: hsl(0, 0%, 0%);
  --hero-bg: url("./images/bloblight.svg");

  --bg-2: hsl(21, 20%, 90%);
  --bg-3: hsl(21, 20%, 85%);

  --sky-color: hsl(203, 100%, 50%);
} 
.dark {
  --bg: hsl(0, 0%, 20%);
  --nav-bg: hsla(0, 0%, 20%, 0);
  --accent: hsl(203, 100%, 50%);
  --text: hsl(0, 0%, 100%);
  --hero-bg: url("./images/blobdark.svg");

  --bg-2: hsl(0, 0%, 30%);
  --bg-3: hsl(0, 0%, 25%);
}

html {
  background-color: var(--bg);
  scroll-behavior: smooth;
  scroll-padding-top: var(--navigation-height, 21vh);
}

body {
	font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; /* https://www.cssfontstack.com/Helvetica */
	/*font-family: Garamond,TimesNewRoman,Times New Roman,Times,Baskerville,Georgia,serif; *//* https://www.cssfontstack.com/Times-New-Roman */
  color: var(--text);

  /* https://pocoloco.io/ */
  background: linear-gradient(90deg, var(--bg), var(--bg-2), var(--bg-3));
    background-size: 300% 300%;
    animation: gradient 5s alternate infinite;
}
  @keyframes gradient {
    0% {
      background-position: 0%;
    }
    100% {
      background-position: 100%;
    }
  }

a {
  color: inherit;
}

a, p, h1, h2, h3, h4, h5, h6 {
  text-decoration-color: var(--accent);
}
a:hover {
  color: var(--accent);
  transition: 0.3s;
}
#themetoggle:hover {
  color: var(--accent);
  transition: 0.3s;
}

.accent {
  color: var(--accent);
}

/* Loader */
.loader-wrapper {
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  background: var(--bg);
  display: flex;
  justify-content: center;
  align-items: center;
  z-index: 9999;
  opacity: 1;
  transition: opacity 0.3s;
}

.loader-wrapper.hidden {
  opacity: 0;
  pointer-events: none;
}

.loader {
  width: 48px;
  height: 48px;
  border: 5px solid var(--bg-2);
  border-bottom-color: var(--accent);
  border-radius: 50%;
  animation: rotation 1s linear infinite;
}
  @keyframes rotation {
    0% { transform: rotate(0deg) }
    100% { transform: rotate(360deg) }
  }

/* Navigation */
nav {
  position: fixed;
  z-index: 10;
  left: 0;
  top: 0;
  width: 100%;
  padding-top: 1em;
  padding-left: 4em;
  padding-right: 4em;
  background-color: var(--nav-bg);
  backdrop-filter: blur(3px);
}
  nav a {
    text-decoration-color: var(--accent);
  }

#navbanner {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 1em;
}
  #navbanner .branding {
    gap: 0;
    flex-direction: column;
    margin: 0;
  }
  #navbanner h1 {
    font-weight: normal;
    font-size: 2em;
    letter-spacing: 0.1em;
    filter: drop-shadow(0px 0px 5px rgba(0, 0, 0, .3));
    text-decoration: none;
  }
  #navbanner a {
    text-decoration: none;
  }
  #navbanner ul {
    flex-grow: 1;
    flex-basis: 0;
    display: flex;
    align-items: center;
    list-style-type: none;
    padding: 0;
    margin: 0;
    gap: 2em;
  }
  #navbanner ul:last-of-type {
    justify-content: end;
  }
    #navbanner ul > li > button {
      all: unset;
      cursor: pointer;
    }
    #navbanner ul > li > a {
      text-decoration: none;
      display: flex;
      flex-direction: column;
      gap: 0.5em;
      align-items: center;
    }
    #navbanner ul .icon {
      font-size: 2em;
      filter: drop-shadow(0px 0px 8px rgba(0, 0, 0, .3));
    }
#tagline {
  text-align: center;
  margin: 0;
  text-wrap: nowrap;
}
#navmenu {
  margin: 0;
  padding: 1em;
  gap: 2em;
  display: flex;
  align-items: center;
  justify-content: center;
  list-style-type: none;
}

/* Header */
header {
  height: 100vh;
  display: flex;
  flex-direction: row;
  justify-content: space-evenly;
  align-items: center;
  background-color: hsla(0, 0%, 0%, 0.05);
  border-bottom: var(--bg-2) 2px dashed;
  color: var(--hero-color);
}
  header #heroleft {
    text-align: center;
  }
    header #heroleft > h1 {
      font-size: 3rem;
      font-weight: normal;
      filter: drop-shadow(0px 0px 5px rgba(0, 0, 0, .3));
    }
    header #heroquote {
      font-family: ui-monospace, SFMono-Regular, Consolas, 'Liberation Mono', Menlo, monospace;
      font-style: italic;
      filter: drop-shadow(0px 0px 5px rgba(0, 0, 0, .3));
      padding-left: 4em;
      padding-right: 4em;
    }
      header #heroquote > p:last-of-type {
        font-style: normal;
      }

/* Main */
main {
  margin: 2em 15em 2em 15em;
  margin-top: 2em;
  margin-left: 15em;
  margin-right: 15em;
  letter-spacing: 0.03em;
  line-height: 1.8em;
}
  main p {
    font-size: 1.1em;
  }
  main h2 {
    text-decoration: underline;
    text-decoration-color: var(--accent);
  }
  main section {
    padding-bottom: 1em;
  }
  main #about {
    display: flex;
    justify-content: space-between;
    gap: 2em;
  }
    main #about > #aboutimg{
      display: flex;
      justify-content: center;
      align-items: center;
      flex-direction: column;
    }
    main #about > #aboutimg > img{
      border-radius: 50%;
      width: 150px;
      filter: drop-shadow(0px 0px 5px rgba(0, 0, 0, .3));
    }
  main #contact {

  }
    main #contact div {
      text-align: center;
    }
    main #contact ion-icon {
      font-size: 5em;
    }

/* Footer */
footer {
  text-align: center;
  padding: 1em;
  background-color: var(--bg-3);
  letter-spacing: 0.07em;
  border-top: var(--bg-2) 2px dashed;
}
  footer p:last-of-type {
    letter-spacing: 0.2em;
  }

/* Tablet */
@media screen and (max-width: 1024px) {
  main {
    margin-left: 5em;
    margin-right: 5em;
  }
  header {
    flex-direction: column;
    padding-top: var(--navigation-height, 21vh);
  }
    header > #heroleft {
      order: 1;
    }
}

/* Mobile */
@media screen and (max-width: 768px) {
  main {
    margin-left: 2em;
    margin-right: 2em;
  }
  #navbanner {
    flex-direction: column;
    gap: 0.3em;
  }
  #navbanner #menu1 {
    order: 1;
  }
  #navbanner #menu2 {
    order: 2;
  }
  #navbanner #brand {
    order: 3;
  }
  #navbanner ul .icon {
    font-size: 1em;
  }
  header {
    justify-content: center;
  }
  header > #heroleft > h1 {
    font-size: 2.5em;
  }
  header > #heroleft > #heroquote {
    font-size: 0.8em;
  }
  main #about {
    flex-direction: column;
  }
}
