@charset "UTF-8";
/** 
 * 1. General HTML tags
 * 2. Sidebar -- Nav
 * 3. Main content
 * 4. Footer
 * 5. Media queries for responsive layout
 * 6. Accessibility helpers
 */

/* -------------------------------------------------------------------
   1. General HTML tags
------------------------------------------------------------------- */
:root{
  --standard-weight: 400;
  font-size: 17px;
}

* {
  box-sizing: border-box;
}

html {
  background-color: #efefef;
  scroll-behavior: smooth;
}

body {
  max-width: 1600px;
  margin: 0 auto;
  font-family: 'Red Hat Display', sans-serif;
  color: #333;
  font-size: 100%;
}

img {
  max-width: 100%;
}

h1 {
  text-align: center;
  margin: 0;
  padding-top: 1rem;
}

h2 {
  text-align: center;
  font-weight: normal;
  margin: 0;
  padding: 1.2rem 0 0 0;
  font-weight: 600;
}

h3 {
  padding-top: 1rem;
  color: #777;
}

button {
  padding: 0;
  font-family: 'Red Hat Display', sans-serif;
}

p {
  font-weight: var(--standard-weight);
}

a {
  font-weight: var(--standard-weight);
  color: #333;
  text-decoration: none;
  border-bottom: 1px solid #ccc;
}

a:hover,
a:focus {
  color: #000;
  border-color: #aaa;
}

h2 a{
  font-weight: 700;
  border: none;
}

blockquote {
  position: relative;
  padding-left: 1em;
  border-left: 0.2em solid #d5abff;
  line-height: 150%;
  margin-left: 1rem;
  /* font-style: normal; */
}

html.has-lightbox {
  overflow: hidden;
}

/* -------------------------------------------------------------------
   2. Sidebar -- Nav
------------------------------------------------------------------- */

#sidebar {
  width: 20%;
  max-width: 400px;
  height: 100%;
  position: fixed;
  top: 0;
  float: left;
  background-color: #d5abff;
  padding: 1.5rem 1rem 0 1rem;
  display: block;
}

nav,
nav ul,
nav li {
  list-style: none;
  padding: 0;
  line-height: 2rem;
}

nav a {
  padding-left: 2rem;
  text-decoration: none;
  display: block;
  border: none;
  color: #333;
}

nav .nav-lvl2 {
  padding-left: 1.5rem;
}

nav a:hover,
nav a:focus,
nav li.current > a {
  color: #000;
  font-weight: 600;
}

.current {
  position: relative;
}

/* Add star on hover */
nav a:hover:before,
nav a:focus:before,
.current:before {
  font-family: 'Font Awesome 5 Free';
  content: '\f005';
  padding-left: 0.5rem;
  position: absolute;
  line-height: 2rem;
  color: #9bf8e6;
  font-weight: 400;
}

nav a:hover:before,
nav a:focus:before {
  margin-left: -2rem;
  color: #ffd296;
}

#navButton {
  display: none;
  float: left;
  margin: 0.8rem;
  position: fixed;
  z-index: 15;
  border-bottom: none;
}

#navButton.active .navBlock {
  transition: text-shadow 0.2s ease-in-out;
  -webkit-transition: text-shadow 0.2s ease-in-out;
  -moz-transition: text-shadow 0.2s ease-in-out;
  text-shadow: none;
}

.navBlock {
  color: #d5abff;
  text-shadow: 2px 2px #333;
}

#navCover {
  transition: background-color 0.2s ease-in-out;
  -webkit-transition: background-color 0.2s ease-in-out;
  -moz-transition: background-color 0.2s ease-in-out;
  display: none;
  width: 100%;
  height: 100%;
  background-color: white;
  opacity: 0.7;
  z-index: 5;
}

#navCover.active {
  display: block;
  position: fixed;
}

#contactLinks a{
  display: inline-block;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  line-height: 2rem;
  color: #333;
  border: none;
  width: 45%;
  text-align: center;
}

#contactLinks a:hover{
  color: #000;
  font-size: 110%;
}

#icons {
  margin: 0 auto;
  width: 50%;
}

.contact-text{
  text-align: center;
}



/* -------------------------------------------------------------------
   3. Main content
------------------------------------------------------------------- */

#main {
  width: 80%;
  float: right;
  padding-right: 5%;
  padding-left: 5%;
  padding-top: 1rem;
  background-color: white;
}

.project {
  padding: 2rem;
  padding-top: 0;
  border-bottom: 3px solid #eee;
}

.media-container {
  margin-bottom: 1rem;
}

.iframe-container {
  position: relative;
  width: 100%;
  padding-bottom: 56.25%;
  height: 0;
}

.iframe-container iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

.game-container {
  position: relative;
  width: 100%;
  padding-bottom: 56.2%;
}

.game-container iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

.image-container {
  display: flex;
  justify-content: center;
  margin: 0.5rem 0;
}

.image-container a {
  border: none;
  margin: 0 0.5rem;
}

.image-container img {
  max-height: 200px;
}

.image-container.manyImg {
  flex-wrap: wrap;
}

.image-container.manyImg a {
  margin: 0.4rem 0.5rem;
  max-width: 20%;
}

.image-container img:hover {
  transition: .2s;
  opacity: 0.7;
  transform: scale(1.05);
}

/* Splide Gallery      ------------------- */

.splide-container {
  width: 100%;
}

.splide__slide {
  text-align: center;
}

.splide__slide img {
  max-height: 100%;
}

.thumbnails {
  display: flex;
  margin: 1rem auto 0;
  padding: 0;
  justify-content: center;
  flex-wrap: wrap;
}

.thumbnail {
  max-width: 25%;
  max-height: 100px;
  overflow: hidden;
  list-style: none;
  margin: 0.3rem 0.4rem;
  cursor: pointer;
  opacity: 0.5;
  border-radius: 10px;
}

.thumbnail.is-active {
  opacity: 1;
  border: 3px solid #d5abff;
}

.thumbnail img {
  width: 100%;
  max-height: 100px;
  display: block;
}

.thumbnail:hover {
  transition: .2s;
  opacity: 1;
  transform: scale(1.05);
}

/* -------------------------------------------------------------------
   4. Footer
------------------------------------------------------------------- */

#footer {
  width: 80%;
  float: right;
  padding: 1rem 5%;
  font-size: 80%;
  text-align: center;
  background-color: white;
}

/* -------------------------------------------------------------------
   5. Media queries for responsive layout
------------------------------------------------------------------- */

@media only screen and (max-width: 1200px) {
  #sidebar {
    padding: 1rem 0.5rem 0 0.5rem;
  }
}

/* tablet layout */
@media only screen and (max-width: 1000px) {
  body {
    font-size: 100%;
  }

  #main {
    width: 100%;
  }

  #sidebar {
    height: auto;
    width: 100%;
    max-width: 100%;
    padding: 1rem 1rem 0 1rem;
    z-index: 10;
    display: none;
  }

  #sidebar nav {
    margin: 0 auto;
    width: 80%;
  }

  .navli a {
    border-bottom: 1px solid #777;
  }

  #navButton {
    display: block;
  }

  .project {
    padding: 0.5rem;
    padding-top: 0;
  }

  .image-container {
    flex-wrap: wrap;
  }

  .image-container img {
    max-height: 120px;
  }

  #footer {
    width: 100%;
  }
}

/* mobile layout */
@media only screen and (max-width: 550px) {
  body {
    font-size: 90%;
  }

  #sidebar nav {
    width: 100%;
  }

  .image-container {
    margin: 0;
  }

  .image-container a,
  .image-container.manyImg a {
    margin: 0.3rem 0.3rem;
    max-width: 50%;
  }

  .image-container img {
    max-height: 100px;
  }
}

/* extra-wide desktop layout */
@media only screen and (min-width: 1600px) {
  body {
    font-size: 105%;
  }
}

/* -------------------------------------------------------------------
   6. Accessibility helpers
------------------------------------------------------------------- */

/* Hide visually, but remain approachable for screenreader */

.visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  white-space: nowrap;
  overflow: hidden;
  clip: rect(1px, 1px, 1px, 1px);
  border: 0;
}

/* Show bypass link on hover */

.element-focusable:focus {
  clip: auto;
  overflow: visible;
  height: auto;
}

/* Sample styling for bypass link */

.bypass-to-main:focus {
  top: 0;
  left: 0;
  width: 100%;
  height: 40px;
  line-height: 40px;
  text-align: center;
  background: #333;
  color: #fff;
}
