@import url(font-awesome.min.css);
@keyframes type-in {
  0% {
    width: 0.54em;
    max-width: 0.54em; }
  100% {
    width: calc(16 * 0.54em);
    max-width: calc(16 * 0.54em); } }
@keyframes type-in-2 {
  0% {
    width: 0.54em;
    max-width: 0.54em; }
  100% {
    width: calc(29 * 0.54em);
    max-width: calc(29 * 0.54em); } }
@keyframes cursor-blink {
  0%, 49% {
    opacity: 1;
    filter: blur(0); }
  70%,100% {
    opacity: 0;
    filter: blur(2px); } }
* {
  box-sizing: border-box; }

body {
  margin: 0;
  padding: 0;
  color: black;
  background: #eee;
  font-family: 'Source Sans Pro', sans-serif;
  font-weight: 300;
  line-height: 1.8; }

.center {
  text-align: center; }

@supports (-ms-ime-align: auto) {
  #hero h1, #hero h2 {
    animation: none !important;
    width: auto !important; }
    #hero h1 span, #hero h2 span {
      width: auto !important; } }
#hero {
  width: 100%;
  position: relative; }
  #hero h1, #hero h2 {
    line-height: 1.2;
    font-family: Share Tech Mono, monospace;
    color: #fff;
    text-shadow: 0 1px 3px rgba(0, 0, 0, 0.8), 0 2px 3px rgba(0, 0, 0, 0.8), 0 -1px 3px rgba(0, 0, 0, 0.8), 0 -2px 3px rgba(0, 0, 0, 0.8); }
  #hero h1 {
    position: absolute;
    display: inline-block; }
    @media (min-width: 1250px) {
      #hero h1 {
        font-size: 70px;
        left: 180px;
        bottom: 200px; } }
    @media (min-width: 790px) and (max-width: 1250px) {
      #hero h1 {
        font-size: 50px;
        left: 90px;
        bottom: 250px; } }
    @media (max-width: 790px) {
      #hero h1 {
        font-size: 30px;
        left: 40px;
        bottom: 300px; } }
    #hero h1 > span {
      width: 0;
      white-space: nowrap;
      overflow: hidden;
      display: inline-block;
      animation: 1.5s 1s steps(15) type-in forwards; }
    #hero h1::after {
      content: " ";
      position: absolute;
      opacity: 0;
      left: 100%;
      top: 0;
      width: 0.04em;
      height: 1em;
      background: #c5e6e8;
      animation: 0.5s cursor-blink 6; }
  #hero h2 {
    position: absolute;
    display: inline-block; }
    @media (min-width: 1250px) {
      #hero h2 {
        font-size: 50px;
        left: 180px;
        bottom: 160px; } }
    @media (min-width: 790px) and (max-width: 1250px) {
      #hero h2 {
        font-size: 30px;
        left: 90px;
        bottom: 230px; } }
    @media (max-width: 790px) {
      #hero h2 {
        font-size: 17px;
        left: 40px;
        bottom: 287px; } }
    #hero h2 > span {
      width: 0;
      white-space: nowrap;
      overflow: hidden;
      display: inline-block;
      animation: 3s 3s steps(28) type-in-2 forwards; }
    #hero h2::after {
      content: " ";
      position: absolute;
      left: 100%;
      top: 0;
      width: 0.04em;
      height: 1em;
      opacity: 0;
      background: #c5e6e8;
      animation: 0.5s 3s cursor-blink 9; }

@media (min-width: 1250px) {
  #hero, #hero_low, #hero_back, #hero_front {
    height: 800px; } }
@media (min-width: 790px) and (max-width: 1250px) {
  #hero, #hero_low, #hero_back, #hero_front {
    height: 600px; } }
@media (max-width: 790px) {
  #hero, #hero_low, #hero_back, #hero_front {
    height: 600px; } }

#hero_low {
  width: 100%;
  position: absolute;
  left: 0;
  top: 0;
  object-fit: cover;
  object-position: top center;
  transition: 300ms all linear; }

#hero_back {
  width: 100%;
  background: url(../images/hero_bg.jpg) top center/cover no-repeat; }

#hero_front {
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  background: url(../images/hero_fg.png) top center/cover no-repeat; }

#content {
  margin: 0 auto;
  box-shadow: 10px 0 20px rgba(0, 0, 0, 0.2), -10px 0 20px rgba(0, 0, 0, 0.2);
  display: flex;
  flex-direction: column;
  align-items: center; }
  @media (min-width: 1350px) {
    #content {
      width: 1300px;
      font-size: 13pt; } }
  @media (min-width: 790px) and (max-width: 1250px) {
    #content {
      font-size: 13pt;
      width: 98%; } }
  @media (max-width: 790px) {
    #content {
      font-size: 14pt;
      width: 100%; } }
  #content #photos-block {
    background: linear-gradient(to bottom, #040b1c 0%, rgba(4, 11, 28, 0) 100%); }
    #content #photos-block::before {
      z-index: 1;
      content: " ";
      position: absolute;
      top: -12em;
      left: 0;
      width: 100%;
      height: 12em;
      background: linear-gradient(to bottom, #040b1c 0%, rgba(4, 11, 28, 0.7) 50%, rgba(4, 11, 28, 0) 100%); }
  #content .block {
    background: rgba(195, 195, 195, 0.4);
    width: 100%;
    position: relative;
    display: flex;
    flex-direction: column; }
    #content .block h1 {
      color: white;
      text-shadow: 1px 1px 3px rgba(0, 0, 0, 0.7); }
    #content .block.after-intro {
      color: white;
      background: #040b1c; }
      #content .block.after-intro::before {
        z-index: 1;
        content: " ";
        position: absolute;
        top: -12em;
        left: 0;
        width: 100%;
        height: 12em;
        background: linear-gradient(to bottom, rgba(4, 11, 28, 0) 0%, rgba(4, 11, 28, 0.7) 50%, #040b1c 100%); }
      #content .block.after-intro > .block-inner {
        margin-top: -12em;
        padding-bottom: 0; }
      @media (max-width: 790px) {
        #content .block.after-intro .cols > .col {
          width: 100%;
          flex-grow: 2; } }
      @media (min-width: 790px) {
        #content .block.after-intro .cols > .col {
          width: 50%; }
          #content .block.after-intro .cols > .col:first-child {
            margin-right: 3em; }
          #content .block.after-intro .cols > .col:last-child {
            margin-left: 3em; } }
      #content .block.after-intro a {
        font-family: Share Tech Mono, monospace;
        color: #c5e6e8;
        letter-spacing: -0.05em; }
    #content .block.contact {
      color: white;
      background: rgba(37, 37, 75, 0.6); }
      #content .block.contact .cols {
        flex-flow: wrap; }
        #content .block.contact .cols .col {
          cursor: hand;
          height: 8em;
          background: red;
          margin: 0.5em;
          display: flex;
          justify-content: center;
          align-items: center;
          flex-direction: column;
          background: #040b1c;
          transition: 200ms all ease-in;
          border-radius: 13px; }
          @media (max-width: 1250px) {
            #content .block.contact .cols .col {
              min-width: 40%; } }
          @media (min-width: 1250px) {
            #content .block.contact .cols .col {
              min-width: 8em; } }
          #content .block.contact .cols .col:hover {
            color: #040b1c;
            background: white;
            transition: 200ms all ease-in; }
          #content .block.contact .cols .col > span {
            font-weight: 400; }
          #content .block.contact .cols .col > i {
            font-size: 3em;
            margin-bottom: 0.3em; }
    #content .block .photos {
      display: flex;
      flex-wrap: wrap; }
      #content .block .photos img {
        border: 1px solid #040b1c;
        height: 20em;
        display: inline-block;
        object-fit: cover;
        flex-grow: 1;
        max-width: 100%; }
        @media (min-width: 790px) {
          #content .block .photos img {
            margin: 1em; } }
        @media (max-width: 790px) {
          #content .block .photos img {
            margin: 0 1em 1em 0; } }
        @media (min-width: 1350px) {
          #content .block .photos img {
            width: 16em; } }
    #content .block > .block-inner {
      z-index: 2;
      position: relative;
      background: rgba(205, 205, 205, 0.2); }
      @media (min-width: 1250px) {
        #content .block > .block-inner {
          padding: 60px;
          left: 120px;
          width: calc(100% - 240px); } }
      @media (min-width: 790px) and (max-width: 1250px) {
        #content .block > .block-inner {
          padding: 30px;
          left: 60px;
          width: calc(100% - 120px); } }
      @media (max-width: 790px) {
        #content .block > .block-inner {
          padding: 30px;
          left: 0;
          width: 100%; } }
  #content .cols {
    display: flex;
    flex-direction: row;
    align-content: stretch;
    align-items: stretch;
    justify-content: space-around; }
    @media (max-width: 790px) {
      #content .cols {
        flex-flow: row wrap; } }
  #content .footer {
    width: 100%;
    background: #040b1c;
    color: white;
    padding: 3em;
    text-align: center;
    position: relative; }
    #content .footer::before {
      z-index: 1;
      content: " ";
      position: absolute;
      top: -12em;
      left: 0;
      width: 100%;
      height: 12em;
      background: linear-gradient(to bottom, rgba(4, 11, 28, 0) 0%, rgba(4, 11, 28, 0.7) 50%, #040b1c 100%); }
    #content .footer img {
      width: 12em;
      object-fit: contain; }

/*# sourceMappingURL=main.css.map */
