body {
  opacity: 0;
  transition: opacity 400ms ease-in-out;
  position: relative;
  z-index: 20;

  &.body-white-text {
		*,
		*::before,
		*::after { 
			color: $color-white;
		}
	}

  i,
  img,
  input,
  button,
  .icon {
    transition: all 0.3s ease-in-out;
  }

  a:focus,
  a:active,
  input:focus,
  button:focus,
  textarea:focus,
  select:focus,
  button:focus {
    outline: none;
    text-decoration: none;
  }

  a::-moz-focus-inner,
  input::-moz-focus-inner,
  button::-moz-focus-inner,
  textarea::-moz-focus-inner,
  select::-moz-focus-inner {
    border: 0;
  }

  ::selection {
    background: $color-light;
  }

  ::-moz-selection {
    background: $color-light;
  }

  input::placeholder {
    color: $color-light;
  }

  input:-moz-placeholder {
    color: $color-light;
  }

  input:-ms-input-placeholder {
    color: $color-light;
  }

  input::-moz-placeholder {
    color: $color-light;
  }

  input::-webkit-input-placeholder {
    color: $color-light;
  }

  input:placeholder-shown {
    color: $color-light;
  }

  a {
    font-weight: 700;

    &:hover,
    &:active,
    &:focus {
      text-decoration: none;
    }
  }

  p,
  li {
    line-height: 1.8;
  }

  p {
    margin: 1rem 0;
  }

  pre {
    background-color: rgba($color-black, 0.04);
    border: 1px solid rgba($color-black, 0.08);
    font-family: monospace;
    font-size: 1.2rem;
    margin: 1rem;
    padding: 1.5rem;
  }

  address {
    font-style: italic;
  }

  code {
    font-family: monospace;
    font-size: 1.2rem;
    white-space: pre;
    white-space: pre-wrap;
    word-wrap: break-word;
  }

  blockquote {
    border-left: 5px solid rgba($color-black, 0.08);
    margin-bottom: 2rem !important;
    padding: 2rem;
  }
}
