/*
 * Generic Styles
 */

html {
  background-color: #000;
  color: #fff;
}

html, body {
  font-family: maiola, Times, serif;
  font-size: 20px;
  line-height: 1.5;
}

body {
  margin: 0;
  padding: 20px;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

body.js-enabled {
  box-sizing: border-box;
}

@media screen and (min-width: 1400px) {

  body {
    max-width: 1440px;
    margin-left: auto;
    margin-right: auto;
  }
}

@supports(padding: max(0px)) {

  body {
    padding: max(20px, env(safe-area-inset-left));
  }
}

/*
 * Helpers
 */

.visually-hidden {
  position: absolute;
  height: 1px;
  width: 1px;
  overflow: hidden;
  clip: rect(1px 1px 1px 1px); /* IE6, IE7 */
  clip: rect(1px, 1px, 1px, 1px);
  white-space: nowrap; /* added line */
}


/*
 * Elements
 */

img {
  display: block;
  width: 100%;
}

video {
  width: 100%;
}

ul,
ol {
  list-style-type: none;
  margin: 0;
  padding: 0;
}

li {
  margin: 0;
  padding: 0;
}

figure {
  margin: 0;
}

figcaption {
  margin-top: 10px;
  font-size: 0.9em;
  line-height: 1.38;
}

/*
 * Typography
 */

body {
  font-size: 1em;
  font-style: normal;
}

h1, h2, h3, h4, h5, h6 {
  margin-top: 0;
  font-style: normal;
  font-weight: 500;
}

h1, h2, h3 {
  line-height: 1.1;
  margin-bottom: 20px;
}

h4, h5, h6 {
  line-height: 1.2;
  margin-bottom: 15px;
}

h1 {
  font-size: 3em;
}

h2 {
  font-size: 2.25em;
}

h3 {
  font-size: 2em;
}

h4 {
  font-size: 1.5em;
}

h5 {
  font-size: 1.125em;
}

h6 {
  font-size: 1em;
}

p {
  margin-top: 0;
  margin-bottom: 20px;
  font-size: 1em;
  line-height: 1.5;
}

p:last-child {
  margin-bottom: 0;
}

a {
  color: #fff;
  font-size: 1em;
  transition: color 0.1s linear;
  transition-delay: 0s;
}

strong {
  font-weight: 500;
}

::selection {
  color: #000;
  background: #fff; /* WebKit/Blink Browsers */
}

::-moz-selection {
  color: #000;
  background: #fff; /* Gecko Browsers */
}

.section-heading {
  font-size: 1em;
  line-height: 1.5;
}


/*
 * Layout
 */

header {
  margin-bottom: 20px;
}

header h1 {
  margin-bottom: 0;
  font-size: 1em;
  line-height: 1.5;
}

header a {
  text-decoration: none;
}

header a:hover,
header a:focus {
  text-decoration: underline;
}

header .email {
  display: block;
  font-size: 1em;
  font-weight: 500;
}

footer {
  padding-top: 40px;
  padding-bottom: 20px;
}

footer p {
  font-size: 0.8em;
  line-height: 1.5625;
  color: #999;
}

@media screen and (min-width: 600px) {

  body {
    padding-left: 40px;
    padding-right: 40px;
  }
}

@media screen and (min-width: 768px) {

  @supports (display: grid) {

    header {
      display: grid;
      grid-template-columns: repeat(2, 1fr);
      grid-column-gap: 40px;
    }

    header .email {
      text-align: right;
      font-size: 0.9em;
      line-height: 1.6;
    }
  }
}

@media screen and (min-width: 1024px) {

  @supports (display: grid) {

    header {
      margin-bottom: 0;
    }

    header h1 {
      margin-bottom: 0;
    }

    footer {
      display: grid;
      grid-template-columns: repeat(4, 1fr);
      grid-column-gap: 40px;
    }

    footer p {
      grid-column: 3/5;
    }
  }
}

@media screen and (min-width: 1280px) {

  @supports (display: grid) {

    header {
      margin-bottom: 0;
    }
  }
}


/*
 * Animations
 */

/* Fade in entire page */
html {
  animation-name: fade-in;
  animation-duration: 1.5s;
  transition-timing-function: linear;
  animation-fill-mode: both;
}

@keyframes fade-in {

  0% {
    opacity: 0;
    background-color: #000;
  }

  100% {
    opacity: 1;
  }
}
