img {
  width: 100%; }

body {
  font-family: "Comfortaa", Helvetica, Arial, sans-serif;
  line-height: 1.4;
  /* background-color: #0080ff; */
  background: url("../images/web_bg_1280.png") no-repeat center center fixed; 
  -webkit-background-size: cover;
  -moz-background-size: cover;
  -o-background-size: cover;
  /* Preserve aspet ratio */
  min-width: 100%; 
  min-height: 100%;
  background-size: cover;
  background-position:50% 50%;
  
  image-rendering: crisp-edges;
  image-rendering: -moz-crisp-edges;          /* Firefox */
  image-rendering: -o-crisp-edges;            /* Opera */
  image-rendering: -webkit-optimize-contrast; /* Webkit (non-standard naming)*/
  -ms-interpolation-mode: nearest-neighbor; 
  }

#bg {
  position: fixed; 
  top: -50%; 
  left: -50%; 
  width: 200%; 
  height: 200%;
}
#bg img {
  position: absolute; 
  top: 0; 
  left: 0; 
  right: 0; 
  bottom: 0; 
  margin: auto; 
  min-width: 50%;
  min-height: 50%;
}
  
h1, .h1,
h2, .h2,
h3, .h3,
h4, .h4,
h5, .h5,
h6, .h6 {
  font-family: "Comfortaa", Helvetica, Arial, sans-serif;
  line-height: 1.4;
  color: #222222; }
h1, .h1 {font-size: 64px;}
h2, .h2 {font-size: 42px;}
h4, .h4 {font-weight: bolder;}

p {
  font-family: "Comfortaa", sans-serif;
  color: #ffffff;
  margin: 0 0 30px; }

a, .btn {
  -webkit-transition: color .2s ease 0s, border-color .2s ease 0s, background-color .2s ease 0s;
  -moz-transition: color .2s ease 0s, border-color .2s ease 0s, background-color .2s ease 0s;
  -o-transition: color .2s ease 0s, border-color .2s ease 0s, background-color .2s ease 0s;
  transition: color .2s ease 0s, border-color .2s ease 0s, background-color .2s ease 0s;
}

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

body > .container-fluid {
  padding: 0; }

#portfolio > .container {
  padding-left: 30px;
  padding-right: 30px;
}
#portfolio > div > div > div {padding-right: 0;padding-left: 0}

#family-lt > .container {
  padding-left: 30px;
  padding-right: 30px;
  font-size: 18px;
}
#family-lt > div > div > div {padding-right: 0;padding-left: 0}

.row,
.container-fluid>.navbar-collapse,
.container-fluid>.navbar-header,
.container>.navbar-collapse,
.container>.navbar-header {
  margin:auto;
}

.container-fluid .text-muted {
  margin: 20px 0; }

.btn:focus, a:focus {
  outline: none !important; }

.navbar {
  height: 70px;
  background-color: transparent;
  background: transparent;
  border: none;
  color: #ffffff;
  z-index: 100;
  margin-bottom: 0;
  padding-left: 30px;
  padding-right: 30px;
  border-radius: 0;
  -webkit-transition: background-color .2s ease 0s;
  -moz-transition: background-color .2s ease 0s;
  -o-transition: background-color .2s ease 0s;
  transition: background-color .2s ease 0s;  }
.navbar > .container {padding: 4px 0 0 0;width: 100%;margin-top:2px;}
.navbar-brand {
  opacity: 0;
  margin-top: 5px;
  padding: 15px 0;
  color: #ffffff;
  font-weight: 400; }

.navbar-default .navbar-nav > li > a {
  color: #ffffff;
  font-weight: 500;
  font-size: 1em;
  text-transform: lowercase;
  margin: 3px 5px;
  border: 1px solid transparent;
  border-radius: 5px;
  -webkit-transition: color .2s ease 0s, border-color .2s ease 0s;
  -moz-transition: color .2s ease 0s, border-color .2s ease 0s;
  -o-transition: color .2s ease 0s, border-color .2s ease 0s;
  transition: color .2s ease 0s, border-color .2s ease 0s; }
  .navbar-default .navbar-nav > li:last-child > a {margin-right: 0}
.navbar-default .navbar-nav > li > a:hover {
  color: #ffffff;
  border: 1px solid #ffffff; }
.navbar-default .navbar-nav > li > a:active,
.navbar-default .navbar-nav > li > a:focus,
.navbar.solid .navbar-nav > li > a:active, .navbar.solid .navbar-nav > li > a:focus {
  color: rgba(255,255,255,0.8);
  border: 1px solid rgba(255,255,255,0.8); }
.navbar-default .navbar-nav > li > a:visited {
  color: #ffffff;
  text-decoration: none; }
.navbar-default .navbar-nav > .active > a, .navbar-default .navbar-nav > .active > a:hover {
  background-color: transparent;
  color: #ffffff; }
.navbar-default .navbar-nav > .active > a:focus,
.navbar.solid .navbar-nav > li > a:active,
.navbar.solid .navbar-nav > li > a:focus {
  background-color: transparent;
  color: rgba(255,255,255,0.8); }
.navbar-toggle {margin-right:0;padding:15px;}
.navbar-default .navbar-toggle {
  border-color: #ffffff; }
  .navbar-default .navbar-toggle:hover, .navbar-default .navbar-toggle:focus {
    background-color: #222222;
  }
  .navbar-default .navbar-toggle .icon-bar {
    color: #ffffff;
    background-color: #ffffff; }
.navbar-default .navbar-collapse.collapse.in ul {
  background-color: #222222;
}
.navbar-collapse.collapsing {
  background-color: #222222;
}
.navbar-default .navbar-toggle .icon-bar {
    color: #ffffff;
    background-color: #ffffff; }
.navbar-default .navbar-collapse.collapse.in ul {
  background-color: #222222;
}
.navbar-collapse.collapse.collapsing {
  background-color: #222222;
}

.navbar-collapse.collapse.show {
  background-color: #222222;
  -webkit-transition: background-color .2s ease 0s;
  -moz-transition: background-color .2s ease 0s;
  -o-transition: background-color .2s ease 0s;
  transition: background-color .2s ease 0s;
  -webkit-border-bottom-left-radius: 4px;
  -webkit-border-bottom-right-radius: 4px;
  border-bottom-left-radius: 4px;
  border-bottom-right-radius: 4px;
}

.navbar-collapse .navbar-nav > li > a,
.navbar-collapse .navbar-nav > li > a:hover,
.navbar-collapse .navbar-nav > li > a:focus,
.navbar-collapse .navbar-nav > li > a:active {
  border-color: transparent !important;
}

/* Solid class attached on scroll past first section */
.navbar.solid {
  background-color: #222222;
  top: 0;
  width: 100%;
  margin: 0;
  box-shadow: 0 7px 8px 0 rgba(0,0,0,0.3);
  -webkit-transition: background-color .2s ease 0s, box-shadow .2s ease 0s;
  -moz-transition: background-color .2s ease 0s, box-shadow .2s ease 0s;
  -o-transition: background-color .2s ease 0s, box-shadow .2s ease 0s;
  transition: background-color .2s ease 0s, box-shadow .2s ease 0s;
  }
  .navbar.solid .navbar-brand {
    opacity: 1;
    display: inline-block;
    color: #ffffff;
    -webkit-transition: color .2s ease 0s, border-color .2s ease 0s, opacity .2s ease 0s;
    -moz-transition: color .2s ease 0s, border-color .2s ease 0s, opacity .2s ease 0s;
    -o-transition: color .2s ease 0s, border-color .2s ease 0s, opacity .2s ease 0s;
    transition: color .2s ease 0s, border-color .2s ease 0s, opacity .2s ease 0s; }
  .navbar.solid .navbar-nav > li > a {
    color: #ffffff;
    -webkit-transition: color .2s ease 0s, border-color .2s ease 0s;
    -moz-transition: color .2s ease 0s, border-color .2s ease 0s;
    -o-transition: color .2s ease 0s, border-color .2s ease 0s;
    transition: color .2s ease 0s, border-color .2s ease 0s; }

.cover {
  padding: 6% 0 8% 0; }
  .cover.top {
    padding: 10vh 0 15vh 0;
    height: 100vh;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    /* background-color: #0080ff;*/
	background: url(images/web_bg_1280.png) no-repeat center center fixed; 
	-webkit-background-size: cover;
	-moz-background-size: cover;
	-o-background-size: cover;
	background-size: cover;
	}
  .cover.bottom {
    padding: 6% 0 5.5% 0; }
  body > .cover.bottom:nth-child(4) {padding: 6% 0 5.5% 0 !important}
  @media (max-width: 550px) {
    .cover, .cover.bottom {padding: 17.5% 30px 17.5% 30px; } }

.headline {
  padding-top: 6.25em; }
  body > div.container-fluid > div.row.cover.top > div > .row > .headline > img {
    max-width: 1600px;
    width: 100%;
    margin: 0 auto;
    padding-right: 30px;
    padding-left: 30px;
    display: block; }
  @media screen and (min-width: 768px) {
    .headline {
      padding-top: 3.75em; } }
  @media screen and (min-width: 992px) {
    .headline {
      padding-top: 1.5625em; } }
  @media screen and (min-width: 1200px) {
    .headline {
      padding-top: 0; } }

#about {
  background-color: #222222; }
  #about h2 {
    color: #0080ff; }
  #about > div > div.row.break > div > p {margin-bottom: 15px}

.profile-img {
  margin-bottom: 15px;
  width: 120px; }

.about, .about-info, .about-tools, .about-last {
  padding: 4% 30px 1% 30px;
  font-size: 18px; }
  .about-tools {
    padding-top: 4.375em;
    font-size: 18px; }
    @media screen and (min-width: 992px) {
      .about-tools {
        padding-top: 5.625em; } }
    .about-tools ul:first-child {
      padding-left: 0; }
    .about-tools ul {
      color: #0080ff;
      list-style: none; }
      .about-tools ul li {
        padding-top: 0.75em; }
  .about-last {
    padding-top: 3.125em;
    padding-bottom: 0;
    font-size: 1.125em; }
    @media screen and (min-width: 992px) {
      .about-last {
        padding-top: 0; } }
    .about-last p {
      color: #0080ff; }

#portfolio {
  background-color: #0080ff; }

.portfolio-projects--btn {
  background: transparent;
  color: #222222;
  border: 1px solid #222222;
  border-radius: 5px;
  margin-bottom: 1.25em;
  font-size: 18px;
  margin: 8px; }
  .portfolio-projects--btn:hover {
    background: #222222;
    color: #ffffff; }
  .portfolio-projects--btn:focus,
  .portfolio-projects--btn:active {
    background: #111111;
    color: #ffffff; }
@media (max-width:650px) {
  .portfolio-projects--btn {font-size:16px;}
}
.portfolio-projects--image {
  margin-bottom: 1.875em;
  padding-top: 5%; }

.about-tools ul li, .contact-social-icons ul a li {
  text-align: center; }

.centered {
  float: none;
  margin-left: auto;
  margin-right: auto; }


.vcenter {
  display: inline-block;
  vertical-align: middle;
  float: none; }

.break {
  clear: both;
  margin-top: 10px; }

@media (min-width: 360px) {
  #team > .container .row > div {width: 100%;margin: 0;}
}

@media (min-width: 768px) {
  .pull-right-sm {
    float: right !important; }
  .pull-left-sm {
    float: left !important; }
  .container {width: 768px}
  .navbar-right {margin-right: 0;}
  .navbar>.container .navbar-brand, .navbar>.container-fluid .navbar-brand {margin-left: 0;padding-left: 15px}
}
@media (min-width: 992px) {
  .pull-right-md {
    float: right !important; }
  .pull-left-md {
    float: left !important; }
  .container {width: 94%;}
}
@media (min-width: 1200px) {
  .pull-right-lg {
    float: right !important; }
  .pull-left-lg {
    float: left !important; }
  .container {width: 1170px;}
  .portfolio-projects .col-lg-6 {width: 100%}
  .navbar > .container {max-width: 1170px}
}
@media (min-width: 1366px) {
  #portfolio > .container, #about > .row {width: 90%;max-width: 1600px;margin-left:auto;margin-right: auto;}
  .navbar > .container {max-width: 1170px}
}

@media (max-width:768px) {
  .portfolio-projects--desc {
      margin-top: 30px;
      margin-bottom: 30px;
      font-size: 16px; }
}
@media (min-width: 768px) {
  .portfolio-projects {
    margin-top: 0.625em; } }
.portfolio-projects--title {
  margin-top: 0.9375em;
  font-size: 20px; }
@media (min-width: 768px) {
    .portfolio-projects .col-lg-6:first-child .portfolio-projects--title {font-size: 21px;margin-top:0rem;}
    .portfolio-projects .col-lg-6:nth-child(2) .portfolio-projects--title {font-size: 21px;margin-top:-2.5rem;}
    .portfolio-projects--desc {
      margin-top: 30px;
      margin-bottom: 30px;
      font-size: 16px; }
      .portfolio-projects--btn {font-size: 14px;margin:0 4px 16px 4px;}
      #portfolio > div > div > div:nth-child(1) > div > div.col-sm-5.text-center,
      #portfolio > div > div > div:nth-child(2) > div > div.col-sm-7.text-center.pull-right-sm {padding-left:0;}
      #portfolio > div > div > div:nth-child(1) > div > div.col-sm-7.text-center,
      #portfolio > div > div > div:nth-child(2) > div > div.col-sm-5.text-center.pull-right-sm {padding-right: 0;} }
  @media screen and (min-width: 992px) {
    .portfolio-projects .col-lg-6:first-child .portfolio-projects--title {font-size: 21px;margin-top:0rem;}
    .portfolio-projects .col-lg-6:nth-child(2) .portfolio-projects--title {font-size: 21px;margin-top:-1.5rem;}
    #portfolio > div > div > div:nth-child(2) > div > div.col-sm-5.text-center.pull-right-sm > a:nth-child(4) {margin-left:-8px;}
    #portfolio > div > div > div:nth-child(2) > div > div.col-sm-5.text-center.pull-right-sm > a:nth-child(5) {margin-right:-8px;} }
  @media screen and (min-width: 1080px) {
    .portfolio-projects .col-lg-6:first-child .portfolio-projects--title {font-size: 21px;margin-top:3.75rem;}
    .portfolio-projects .col-lg-6:nth-child(2) .portfolio-projects--title {font-size: 21px;margin-top:1.125rem;}
    }
  @media screen and (min-width: 1200px) {
    .portfolio-projects .col-lg-6:first-child .portfolio-projects--title {font-size: 24px;margin-top:2.5rem;}
    .portfolio-projects .col-lg-6:nth-child(2) .portfolio-projects--title {font-size: 24px;margin-top:1.25rem;}
      .portfolio-projects--desc {
      margin-top: 24px;
      margin-bottom: 24px;
      font-size: 18px; }
    .portfolio-projects .col-lg-6 + .col-lg-6 + .col-lg-6 {margin-top:40px}
    .portfolio-projects--btn {font-size: 18px;margin:8px;} }
  @media screen and (min-width: 1366px) {
    .portfolio-projects .col-lg-6:first-child .portfolio-projects--title {margin-top:7.5rem;}
    .portfolio-projects .col-lg-6:nth-child(2) .portfolio-projects--title {margin-top:6rem;}
  }
  @media (min-width: 1500px) {
    .portfolio-projects .col-lg-6:first-child .portfolio-projects--title {font-size: 28px;margin-top:11rem;}
    .portfolio-projects .col-lg-6:nth-child(2) .portfolio-projects--title {font-size: 28px;margin-top:9.5rem;}
    .portfolio-projects--btn {font-size: 18px;}
  }
  .portfolio-projects--image-title {margin-top:-3rem;margin-bottom:6rem;}
    @media (max-width: 768px) {
      .portfolio-projects--image-title {margin-top:-3rem;margin-bottom:3rem;}
    }

#contact {
  background-color: #222222;
  padding-left: 15px;
  padding-right: 15px }
  #contact h2 {
    color: #0080ff; }

.contact-social-icons p {
  color: #0080ff; }
.contact-social-icons > ul {padding:0;margin:0 auto;}
.contact-social-icons ul a {
  color: #0080ff;
  list-style: none; }
  .contact-social-icons ul a:hover,
  .team-links-list a:hover,
  .family-links-list a:hover {
    color: #ffffff; }
  .contact-social-icons ul a:focus,
  .contact-social-icons ul a:active,
  .team-links-list a:focus,
  .team-links-list a:active,
  .family-links-list a:focus,
  .family-links-list a:active {
    color: rgba(255,255,255,0.8); }
  .contact-social-icons ul a li {
    display: inline-block;
    padding: 1.25%;
    font-size: 16px }
  @media (max-width: 1200px) {
    #family > div > div.row > div.center > div {margin:1.5em 4% 3em 4%;width:42%;float:left;}
    #family > div > div.row > div.center > div:last-child {margin-bottom: 0}
  }
  @media (max-width: 720px) {
    #family > div > div.row > div.center > div {margin:1.5em 4% 3em 4%;width:92%;}
  }

.footer {
  padding-top: 1em;
  bottom: 0;
  width: 100%;
  /* Set the fixed height of the footer here */
  background-color: #111111;

  color: #ffffff; }
.footer-role, .footer-name, .footer-description {
    color: #FFFFFF;
}
.footer-description {
    color: #fff;
    font-size: 18px;
}
.footer-role h4, .footer-links-list a {
    color: #0080ff;
}
.footer-header h4 {
    color: #0080ff;
}
#scrollIcon, #scrollTopIcon {
  margin-top: 4vh;
  padding: 10px;
  font-size: 1.5em;
  color: #222222;
  border: solid 2px #222222;
  border-radius: 50%; }

#scrollTopIcon {
  margin-top: 10px;
  font-size: 1em;
  color: #ffffff;
  border-color: #ffffff; }

.back-to-top {
  display: none; }
  .back-to-top.visible {
    display: block; }

/* our team section */
#team, #family {
  background-color: #0080ff;
  /*font-weight: 700;
  font-size: 21px; */
}
.hr.invisible_hr {
    height: 0;
    padding: 0;
}
.hr.big_size_hr {
    margin: 30px 0;
}
.hr {
    clear: both;
    display: block;
    font-size: 0;
    height: 24px;
    margin: 20px 0;
    overflow: hidden;
    padding: 2px 0;
    position: relative;
    text-align: center;
    width: 100%;
}
.highlight_secondary {
    color: #FFFFFF;
}
.team-role, .team-name, .team-links-list a {
    color: #222222;
    text-align: center;
    white-space: normal;
    width: 100%;
}
.team-name, .family-name {
    font-size: 21px;
    text-align: center;
    white-space: nowrap;
}
.team-links, .family-links {
  padding-top: .75em;
  color: #222222;
  text-align: center;
}
.team-image img, .family-image img {
  max-width:150px;
  max-height: 150px;
  margin:0 auto;
}
#team > .container .row > div {
  min-height: 0;
  padding-left: 0;
  padding-right: 0;
  /* display: flex; */
  /* flex-wrap: wrap; */
  /* justify-content: flex-start; */
}
  @media (min-width: 768px) {
    #team > .container .row > div {min-height: 0;}
    #team .col-sm-4 {
      width: 100%;
      margin: 0;
    }
  }
  @media (min-width: 992px) {
    #team .col-md-2 {
      width: 100%;
      margin: 0;
    }
  }
  @media (min-width: 1200px) {
    #team > .container .row > div {min-height: 0;}
  }
  @media (max-width: 700px) {
    #team > .container .row > div {min-height: 0;}
    #team .col-xs-6 {width: 42%;margin:4%;}
  }
  @media (max-width: 500px) {
    #team > .container .row > div {min-height: 250px;}
    #team .col-xs-6 {width: 92%;margin:4%;}
  }
#team > .container .row > .row, #team > .container {padding-left:0;padding-right: 0}

/* Bliss family section */
#family {
  background-color: #222222;
}
#family > div > div.row > div {font-size: 18px}
.family-role, .family-name, .family-description {
    color: #FFFFFF;
}
.family-description {
    color: #fff;
    font-size: 18px;
}
.family-role h4, .family-links-list a {
    color: #0080ff;
}
.family-header h2 {
    color: #0080ff;
}
#family .about-tools {
  font-size: 20px;
}
.family-image img {
  max-width:150px;
  max-height: 150px;
  margin:0 auto;
}
.family-projects--btn {
  background: transparent;
  color: #0080ff;
  border: 1px solid #0080ff;
  border-radius: 5px;
  margin-bottom: 1.25em;
  font-weight: 700;
  font-size: 21px; }
  .family-projects--btn:hover {
    background: #0080ff;
    color: #ffffff; }
  .family-projects--btn:focus,
  .family-projects--btn:active {
    background: #0080ff;
    color: #ffffff; }


@media (min-height: 880px) {
  #scrollIcon, #scrollTopIcon {margin-top: 4vh;}
}
@media (min-height: 900px) {
  #scrollIcon, #scrollTopIcon {margin-top: 6vh;}
}
@media (min-height: 960px) {
  #scrollIcon, #scrollTopIcon {margin-top: 10vh;}
}
@media (min-height: 980px) {
  #scrollIcon, #scrollTopIcon {margin-top: 12vh;}
}
@media (min-height: 1020px) {
  #scrollIcon, #scrollTopIcon {margin-top: 14vh;}
}
@media (min-height: 1090px) {
  #scrollIcon, #scrollTopIcon {margin-top: 16vh;}
}
@media (max-height: 880px) {
  #scrollIcon, #scrollTopIcon {margin-top: 2vh;}
}
@media (max-height: 850px) {
  #scrollIcon, #scrollTopIcon {margin-top: 0vh;}
}
@media (max-height: 820px) {
  #scrollIcon, #scrollTopIcon {margin-top: -2vh;}
  .cover.top {padding: 7.5vh 0 12.5vh 0;}
}
@media (max-height: 750px) {
  #scrollIcon, #scrollTopIcon {margin-top: -8vh;}
}
@media (max-height: 720px) {
  #scrollIcon, #scrollTopIcon {margin-top: -8vh;}
}
@media (max-height: 690px) {
  #scrollIcon, #scrollTopIcon {margin-top: -10vh;}
  .animation {margin-top:-6vh !important;}
}
@media (max-height: 670px) {
  #scrollIcon, #scrollTopIcon {margin-top: -14vh;}
  .animation {margin-top:-7vh !important;}
}
@media (max-height: 650px) {
  #scrollIcon, #scrollTopIcon {margin-top: -14vh;}
  .animation {margin-top:-8vh !important;}
  .cover.top {padding: 6vh 0 5vh 0;}
  body > div.container-fluid > div.row.cover.top > div > .row > .headline > img {max-height: 42vh;}
}
@media (max-height: 630px) {
  #scrollIcon, #scrollTopIcon {margin-top: -19vh;}
  .animation {margin-top:-10vh !important;}
  .cover.top {padding: 6vh 0 5vh 0;}
}
@media (max-height: 600px) {
  #scrollIcon, #scrollTopIcon {margin-top: -20vh;}
  .animation {margin-top:-13vh !important;}
  .cover.top {padding: 6vh 0 5vh 0;}
}
@media (max-height: 600px) and (orientation:landscape) {
    #scrollIcon, #scrollTopIcon {margin-top: -20vh;display: none;}
}
@media (max-height: 550px) {
  #scrollIcon, #scrollTopIcon {display:none}
  .cover.top {padding: 6vh 0 3vh 0;}
  .headline {padding-top:3vh;}
  body > div.container-fluid > div.row.cover.top > div > .row > .headline > img {max-height: 32vh;}
}
@media (max-height: 480px) {
  #scrollIcon, #scrollTopIcon {margin-top: 0}
  .cover.top {padding: 3vh 0 3vh 0;}
  .headline {padding-top:1.5vh;}
  body > div.container-fluid > div.row.cover.top > div > .row > .headline > img {max-height: 32vh;}
}
@media (max-height: 320px) {
  .cover.top {padding: 1vh 0 3vh 0;}
  .headline {padding-top:1vh;}
  body > div.container-fluid > div.row.cover.top > div > .row > .headline > img {max-height: 25vh;}
}
@media (max-width: 768px) {
  .container-fluid {padding:30px 0 !important;}
  .h1, .h2, .h3, h1, h2, h3 {
    margin-top: 10px;
    margin-bottom: 10px;
  }
  .lead, .about, .about-info, .about-tools, .about-last {font-size: 16px}
  .row.cover.top .lead {
    max-width: 350px;
    margin-left:auto;
    margin-right: auto
  }
  .h4, h4 {font-size: 20px}
  #portfolio h2 {padding-bottom: 0}
  #portfolio > .container {padding-right: 0;padding-left: 0}
  .portfolio-projects--btn {margin-top:0;margin-left: 4px;margin-right: 4px}
  #portfolio > div > div > div:nth-child(2) > div > div.col-sm-5.text-center.pull-right-sm > a:nth-child(4) {margin-right: 4px}
  #portfolio > div > div > div:nth-child(2) > div > div.col-sm-5.text-center.pull-right-sm > a:nth-child(5) {margin-left: 4px}
  #scrollIcon, #scrollTopIcon {font-size: 1em;}
}
@media (max-width:480px) {.row.cover.top .lead {max-width:180px}}
@media (max-device-height: 480px) and (orientation: landscape) {
  .navbar-fixed-bottom .navbar-collapse, .navbar-fixed-top .navbar-collapse {
    max-height: 240px;
  }
  .navbar-nav>li>a {
    padding-top: 6px;
    padding-bottom: 6px;
  }
}
@media (max-width: 360px) {
  .h1, h1 {font-size: 32px;}
  .cover, .cover.bottom {
    padding-left: 15px;
    padding-right: 15px;
  }
}

h1 {
  color: #fff;
  cursor: default;
}

h1 span:nth-of-type(1) {
  font-size: 1em;
  line-height: 0.5em;
}
h1 span:nth-of-type(2) {
  font-size: .4em;
  font-weight: 400;
  line-height: 3.65em;
  color: #0080ff;
  background-color: #282828;
  padding: 3px 10px;
  box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.6);
}
h1 span:nth-of-type(3) {
  font-size: 1.5em;
  line-height: .85em;
}

.space {
  will-change: transform;
  position: relative;
  left:-25;
  top:auto;
  bottom:auto;
  margin-top:15%;
  margin-bottom:25%;
  margin-left: 35%;
  margin-right: auto;
  -webkit-transform: perspective(1000px) rotateX(65deg) rotateY(0deg) rotateZ(-45deg) scale(0.90);
     -moz-transform: perspective(1000px) rotateX(65deg) rotateY(0deg) rotateZ(-45deg) scale(0.90);
       -o-transform: perspective(1000px) rotateX(65deg) rotateY(0deg) rotateZ(-45deg) scale(0.90);
          transform: perspective(1000px) rotateX(65deg) rotateY(0deg) rotateZ(-45deg) scale(0.90);
  -webkit-transition: all 600ms;
  -moz-transition: all 600ms;
  -o-transition: all 600ms;
  transition: all 600ms;
}

.space-hover {
  position: relative;
  left:-25;
  top:auto;
  bottom:auto;
  margin-top:30%;
  margin-bottom:25%;
  margin-left: 45%;
  margin-right: auto;
  -webkit-transform: perspective(1000px) rotateX(0deg) rotateY(0deg) rotateZ(0deg) scale(0.90);
     -moz-transform: perspective(1000px) rotateX(0deg) rotateY(0deg) rotateZ(0deg) scale(0.90);
       -o-transform: perspective(1000px) rotateX(0deg) rotateY(0deg) rotateZ(0deg) scale(0.90);
          transform: perspective(1000px) rotateX(0deg) rotateY(0deg) rotateZ(0deg) scale(0.90);
}

.phone-container {
  width: 11.2em;
  height: 23.33em;
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  margin: auto;
  -webkit-transform-style: preserve-3d;
     -moz-transform-style: preserve-3d;
       -o-transform-style: preserve-3d;
          transform-style: preserve-3d;
  -webkit-transform: translateX(-80%);
     -moz-transform: translateX(-80%);
       -o-transform: translateX(-80%);
          transform: translateX(-80%);
  border-radius: 2.0em;
}

.phone-front {
  will-change: transform;
  width: 11.2em;
  height: 23.33em;
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  margin: auto;
  background-image: url("../images/phone_front.svg");
  background-repeat: no-repeat;
  background-position: -.53em 0;
  background-size: 12.3em 23.36em;
  border-radius: 2.0em;
  box-shadow: -20px 27px 13px 10px rgba(0, 0, 0, 0.5);
  -webkit-transition: -webkit-transform 600ms, box-shadow 450ms;
  -moz-transition: transform 600ms, box-shadow 450ms;
  -o-transition: transform 600ms, box-shadow 450ms;
  transition: transform 600ms, box-shadow 450ms;
}

.just-phone-front {
  will-change: transform;
  width: 11.2em;
  height: 23.33em;
  position: absolute;
  right: 0;
  margin: auto;
  left:-25;
  top:0;
  bottom:auto;
  margin-top:10%;
  margin-bottom:15%;
  margin-left: 35%;
  margin-right: auto;
  background-image: url("../images/phone_front.svg");
  background-repeat: no-repeat;
  background-position: -.53em 0;
  background-size: 12.3em 23.36em;
  border-radius: 2.0em;
  box-shadow: -10px 13px 7px 5px rgba(0, 0, 0, 0.5);
  -webkit-transform: scale(0.90);
     -moz-transform: scale(0.90);
       -o-transform: scale(0.90);
          transform: scale(0.90);
  -webkit-transition: -webkit-transform 600ms, box-shadow 450ms;
  -moz-transition: transform 600ms, box-shadow 450ms;
  -o-transition: transform 600ms, box-shadow 450ms;
  transition: transform 600ms, box-shadow 450ms;
}

.phone-front-hover {
  box-shadow: 0 12px 13px 10px rgba(0, 0, 0, 0.5);
  -webkit-transition: -webkit-transform 600ms, box-shadow 450ms;
  -moz-transition: transform 600ms, box-shadow 450ms;
  -o-transition: transform 600ms, box-shadow 450ms;
  transition: transform 600ms, box-shadow 450ms;
}

.phone-screen {
  width: 10.5em;
  height: 19.3em;
  position: relative;
  left: 0;
  right: 0;
  top: 2.283em;
  margin: auto;
  background-color: #000;
  overflow: hidden;
}
.phone-screen::before {
  content: "";
  position: absolute;
  width: 100%;
  height: 100%;
  box-shadow: inset 13px 0 10px -5px rgba(250, 250, 250, 0.17), inset -13px 0 10px -5px rgba(250, 250, 250, 0.17);
  background-image: url("../images/bliss_screens.gif");
  background-repeat: no-repeat;
  background-position: 50% 0;
  background-size: cover;
  -webkit-transform: scale(1);
     -moz-transform: scale(1);
       -o-transform: scale(1);
          transform: scale(1);
}
.phone-screen::after {
  content: "";
  position: absolute;
  width: 100%;
  height: 100%;
  background-color: rgba(250, 250, 250, 0.1);
}

.phone-side {
  will-change: transform;
  width: 13.33em;
  height: 25em;
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  margin: auto;
  border-radius: 1.66em;
  background-repeat: no-repeat;
  background-position: 2.2em .5em;
  background-size: 13.33em 24.73em;
  -webkit-transform-style: preserve-3d;
     -moz-transform-style: preserve-3d;
       -o-transform-style: preserve-3d;
          transform-style: preserve-3d;
  -webkit-transform: skew(-1deg) translateX(-15.5%) translateY(1.2%) scaleX(0.95) scaleY(0.96) rotate(-1deg);
     -moz-transform: skew(-1deg) translateX(-15.5%) translateY(1.2%) scaleX(0.95) scaleY(0.96) rotate(-1deg);
       -o-transform: skew(-1deg) translateX(-15.5%) translateY(1.2%) scaleX(0.95) scaleY(0.96) rotate(-1deg);
          transform: skew(-1deg) translateX(-15.5%) translateY(1.2%) scaleX(0.95) scaleY(0.96) rotate(-1deg);
  -webkit-transition: all 350ms;
  -moz-transition: all 350ms;
  -o-transition: all 350ms;
  transition: all 350ms;
}

.phone-side-hover {
  -webkit-transform: skew(-1deg) translateX(-13.4%) translateY(1.05%) scaleX(0.83) scaleY(0.83) rotate(-1deg);
     -moz-transform: skew(-1deg) translateX(-13.4%) translateY(1.05%) scaleX(0.83) scaleY(0.83) rotate(-1deg);
       -o-transform: skew(-1deg) translateX(-13.4%) translateY(1.05%) scaleX(0.83) scaleY(0.83) rotate(-1deg);
          transform: skew(-1deg) translateX(-13.4%) translateY(1.05%) scaleX(0.83) scaleY(0.83) rotate(-1deg);
  -webkit-transition: all 350ms;
  -moz-transition: all 350ms;
  -o-transition: all 350ms;
}

@-webkit-keyframes figure-anim {
  from {
    border-radius: 50%;
    -webkit-transform: rotate(0deg) scale(1);
       -moz-transform: rotate(0deg) scale(1);
         -o-transform: rotate(0deg) scale(1);
            transform: rotate(0deg) scale(1);
  }
  to {
    border-radius: 30%;
    -webkit-transform: rotate(360deg) scale(0.5);
       -moz-transform: rotate(360deg) scale(0.5);
         -o-transform: rotate(360deg) scale(0.5);
            transform: rotate(360deg) scale(0.5);
  }
}

@keyframes figure-anim {
  from {
    border-radius: 50%;
    -webkit-transform: rotate(0deg) scale(1);
       -moz-transform: rotate(0deg) scale(1);
         -o-transform: rotate(0deg) scale(1);
            transform: rotate(0deg) scale(1);
  }
  to {
    border-radius: 30%;
    -webkit-transform: rotate(360deg) scale(0.5);
       -moz-transform: rotate(360deg) scale(0.5);
         -o-transform: rotate(360deg) scale(0.5);
            transform: rotate(360deg) scale(0.5);
  }
}
@-webkit-keyframes figure-container-anim {
  from {
    -webkit-transform: rotate(0deg);
       -moz-transform: rotate(0deg);
         -o-transform: rotate(0deg);
            transform: rotate(0deg);
  }
  to {
    -webkit-transform: rotate(360deg);
       -moz-transform: rotate(360deg);
         -o-transform: rotate(360deg);
            transform: rotate(360deg);
  }
}
@keyframes figure-container-anim {
  from {
    -webkit-transform: rotate(0deg);
       -moz-transform: rotate(0deg);
         -o-transform: rotate(0deg);
            transform: rotate(0deg);
  }
  to {
    -webkit-transform: rotate(360deg);
       -moz-transform: rotate(360deg);
         -o-transform: rotate(360deg);
            transform: rotate(360deg);
  }
}

@media (min-width: 1200px) {
  .pull-right-lg {
    float: right !important; }
  .pull-left-lg {
    float: left !important; }
  .pull-left-md {
    float: left !important; }
  .container {max-width: 1170px;}
  .portfolio-projects .col-lg-6 {width: 100%}
  .navbar > .container {max-width: 1170px}
}
@media (min-width: 1366px) {
  #portfolio > .container, #about > .row {width: 90%;max-width: 1600px;margin-left:auto;margin-right: auto;}
  .navbar > .container {max-width: 1170px}
}

 /* The alert message box */
.alert {
    padding: 20px;
    background-color: #f44336; /* Red */
    color: white;
    margin-bottom: 15px;
}
.alert a {color: #fff;font-weight:bolder;padding-bottom:2px;margin-bottom:-2px;box-shadow: 0 2px}
@media (max-width:768px) {.alert {width:90%;margin: 0 auto;}}
@media (max-width:1200px) {.alert {margin-top:3rem}}
/* The close button */
.closebtn {
    margin-left: 15px;
    color: white;
    font-weight: bold;
    float: right;
    font-size: 22px;
    line-height: 20px;
    cursor: pointer;
    transition: 0.3s;
}

/* The alert message box */
.alert2 {
   padding: 20px;
   background-color: #17c13f; /* green */
   color: white;
   margin-bottom: 15px;
}
.alert2 a {color: #fff;font-weight:bolder;padding-bottom:2px;margin-bottom:-2px;box-shadow: 0 2px}
@media (max-width:768px) {.alert {width:90%;margin: 0 auto;}}
@media (max-width:1200px) {.alert {margin-top:3rem}}
/* The close button */
.closebtn {
   margin-left: 15px;
   color: white;
   font-weight: bold;
   float: right;
   font-size: 22px;
   line-height: 20px;
   cursor: pointer;
   transition: 0.3s;
}

/* When moving the mouse over the close button */
.closebtn:hover {
    color: black;
}

.vcenter {
  display: inline-block;
  position: absolute;
  left: 50%;
  top: 50%;
  -webkit-transform: translate(-50%, -50%);
  transform: translate(-50%, -50%);
}

/* Anim
width: 378px;
  height: 290px;
 */
.animation {
  display: inline-block;
  position: relative;
  width: 64rem;
  height: 42rem;
  margin: -2vh auto 0 auto;
  vertical-align: middle;
}
@media (max-width:720px) {
  .animation {margin-left:-30rem;margin-right:-30rem;}
}
@media (max-width:450px) {
  .animation {width:58rem;height:38rem;}
}
@media (max-width:450px) {
  .animation {width:58rem;height:38rem;}
}
@media (max-width:400px) {
  .animation {width:55rem;height:36rem;}
}
@media (max-width:380px) {
  .animation {width:50rem;height:33rem;}
}
@media (max-width:340px) {
  .animation {width:47rem;height:31rem;}
}
@media (max-width:320px) {
  .animation {width:42rem;height:28rem;}
}
@media (max-height:650px) {
  .animation {margin-top: -7vh !important;margin-bottom: 10vh !important;}
}
@media (min-height:651px) {
  .animation {margin-top: -8vh !important;margin-bottom: 10vh !important;}
}
@media (min-height:670px) {
  .animation {margin-top: -6.5vh !important;margin-bottom: 10vh !important;}
}
@media (min-height:720px) {
  .animation {margin-top: -2vh !important;margin-bottom: 10vh !important;overflow-y:visible}
}
@media (min-height:800px) {
  .animation {margin-top: 0 !important;margin-bottom: 10vh !important;overflow-y:visible}
}
.animation .device {
  position: absolute;
  width: 100%;
  height: 100%;
  left: 50%;
  top: 50%;
  background: #111;
  -webkit-transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
  -moz-transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
  -ms-transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
  transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
  -moz-transform: translate(-50%, -50%);
  -ms-transform: translate(-50%, -50%);
  -webkit-transform: translate(-50%, -50%);
  transform: translate(-50%, -50%);
}
.animation .device .phone-home-button,
.animation .device .tablet-home-button {
  position: absolute;
  border-radius: 50%;
  background: #444;
  opacity: 0;
  z-index: 1;
  -webkit-transition: all 0.4s ease;
  -moz-transition: all 0.4s ease;
  -ms-transition: all 0.4s ease;
  transition: all 0.4s ease;
}
.animation .device .phone-home-button {
  width: 16px;
  height: 16px;
  margin-top: -8px;
  right: 11px;
  top: 50%;
}
.animation .device .tablet-home-button {
  width: 12px;
  height: 12px;
  margin-left: -6px;
  bottom: 7px;
  left: 50%;
}
.animation .device .screen-stand {
  position: absolute;
  width: 100%;
  margin-left: -10px;
  margin-top: -1px;
  top: 60%;
  opacity: 0;
  z-index: 1;
  -webkit-transition: all 0.4s ease-out;
  -moz-transition: all 0.4s ease-out;
  -ms-transition: all 0.4s ease-out;
  transition: all 0.4s ease-out;
}
.animation .device .screen-stand .leg {
  position: absolute;
  width: 12px;
  height: 16px;
  left: 50%;
  top: 0;
  margin-left: -6px;
  background: #111;
}
.animation .device .screen-stand .foot {
  position: absolute;
  width: 120px;
  height: 4px;
  left: 50%;
  top: 15px;
  margin-left: -60px;
  border-top-left-radius: 2px;
  border-top-right-radius: 2px;
  background: #111;
}
.animation .device .display {
  position: relative;
  width: 100%;
  height: 100%;
  overflow: hidden;
  background: #34495e;
  z-index: 3;
}
.animation .device .display div {
  position: absolute;
  width: 100%;
  height: 100%;
  left: 100%;
  white-space: nowrap;
  -webkit-transition: all 0.4s ease;
  -moz-transition: all 0.4s ease;
  -ms-transition: all 0.4s ease;
  transition: all 0.4s ease;
}
.animation .device .display div div {
  position: absolute;
  width: 100%;
  left: 0;
  top: 50%;
  margin-top: -14px;
  font-size: 20px;
  text-align: center;
 /* color: #0080ff;*/
}
@media (max-width:450px) {
  .animation .device .display div div {width:100%;max-width:100%;font-size:12px !important;}
}
  .animation .device .display .slide1 div {margin-top:0px;}
.animation .device .display div div em {
  font-weight: bold;
}
.animation .device .display .slide1 {
  /* background: #000; */
  background: url("https://i.imgur.com/wCp0xpe.jpg");
  background-size: cover;
  background-repeat: no-repeat;
  background-position: center center;
  text-shadow:  1px 1px 2px #1f1f1f, -1px -1px 2px #1f1f1f, -1px 0 2px #1f1f1f, 0 -1px 2px #1f1f1f, 1px 0 2px #1f1f1f, 0 1px 2px #1f1f1f, 1px -1px 2px #1f1f1f, -1px 1px 2px #1f1f1f,
                2px 2px 2px #1f1f1f, -2px -2px 2px #1f1f1f, -2px 0 2px #1f1f1f, 0 -2px 2px #1f1f1f, 2px 0 2px #1f1f1f, 0 2px 2px #1f1f1f, 2px -2px 2px #1f1f1f, -2px 2px 2px #1f1f1f,
                3px 3px 2px #1f1f1f, -3px -3px 2px #1f1f1f, -3px 0 2px #1f1f1f, 0 -3px 2px #1f1f1f, 3px 0 2px #1f1f1f, 0 3px 2px #1f1f1f, 3px -3px 2px #1f1f1f, -3px 3px 2px #1f1f1f,
                4px 4px 4px #1f1f1f, -4px -4px 4px #1f1f1f, -4px 0 4px #1f1f1f, 0 -4px 4px #1f1f1f, 4px 0 4px #1f1f1f, 0 4px 4px #1f1f1f, 4px -4px 4px #1f1f1f, -4px 4px 4px #1f1f1f;
    color:white;
}
.animation .device .display .slide2 {
  /* background: #000; */
  background: url("https://i.imgur.com/KfArkPZ.jpg");
  background-size: cover;
  background-repeat: no-repeat;
  background-position: center center;
  text-shadow:  1px 1px 2px #fff, -1px -1px 2px #fff, -1px 0 2px #fff, 0 -1px 2px #fff, 1px 0 2px #fff, 0 1px 2px #fff, 1px -1px 2px #fff, -1px 1px 2px #fff,
                2px 2px 2px #fff, -2px -2px 2px #fff, -2px 0 2px #fff, 0 -2px 2px #fff, 2px 0 2px #fff, 0 2px 2px #fff, 2px -2px 2px #fff, -2px 2px 2px #fff,
                3px 3px 2px #fff, -3px -3px 2px #fff, -3px 0 2px #fff, 0 -3px 2px #fff, 3px 0 2px #fff, 0 3px 2px #fff, 3px -3px 2px #fff, -3px 3px 2px #fff,
                4px 4px 4px #fff, -4px -4px 4px #fff, -4px 0 4px #fff, 0 -4px 4px #fff, 4px 0 4px #fff, 0 4px 4px #fff, 4px -4px 4px #fff, -4px 4px 4px #fff;
  color:#0080ff;
}
.animation .device .display .slide3 {
  /* background: #000; */
  background: url("https://i.imgur.com/c55mey7.jpg");
  background-size: cover;
  background-repeat: no-repeat;
  background-position: center center;
  text-shadow:  1px 1px 2px #000, -1px -1px 2px #000, -1px 0 2px #000, 0 -1px 2px #000, 1px 0 2px #000, 0 1px 2px #000, 1px -1px 2px #000, -1px 1px 2px #000,
                2px 2px 2px #000, -2px -2px 2px #000, -2px 0 2px #000, 0 -2px 2px #000, 2px 0 2px #000, 0 2px 2px #000, 2px -2px 2px #000, -2px 2px 2px #000,
                3px 3px 2px #000, -3px -3px 2px #000, -3px 0 2px #000, 0 -3px 2px #000, 3px 0 2px #000, 0 3px 2px #000, 3px -3px 2px #000, -3px 3px 2px #000,
                4px 4px 4px #000, -4px -4px 4px #000, -4px 0 4px #000, 0 -4px 4px #000, 4px 0 4px #000, 0 4px 4px #000, 4px -4px 4px #000, -4px 4px 4px #000;
  color:white;
}
.animation[data-animation-step="1"] .device {
  width: 87%;
  height: 90%;
  padding: 10px;
  border-radius: 4px;
}
.animation[data-animation-step="1"] .device .slide1 {
  left: 0%;
}
.animation[data-animation-step="1"] .device .screen-stand {
  opacity: 1;
  top: 100%;
}
.animation[data-animation-step="2"] .device {
  width: 74%;
  height: 75%;
  padding: 16px;
  border-radius: 10px;
}
.animation[data-animation-step="2"] .device .slide1 {
  left: -100%;
}
.animation[data-animation-step="2"] .device .slide2 {
  left: 0%;
}
.animation[data-animation-step="2"] .device .tablet-home-button {
  opacity: 1;
}
.animation[data-animation-step="3"] .device {
  width: 27%;
  height: 75%;
  padding: 16px 4px;
  border-radius: 6px;
}
.animation[data-animation-step="3"] .device .slide1,
.animation[data-animation-step="3"] .device .slide2 {
  left: -100%;
}
.animation[data-animation-step="3"] .device .slide3 {
  left: 0%;
}
.animation[data-animation-step="3"] .device .phone-home-button {
  opacity: 1;
}
  @media (min-height:800px) {
    .animation[data-animation-step="1"] .device {width:87%; height:90%;}
    .animation[data-animation-step="2"] .device {width:80%; height:80%;}
    .animation[data-animation-step="3"] .device {width:28%; height:80%;}
  }
  @media (max-height:720px) {
    .animation[data-animation-step="1"] .device {width:72%; height:75%;}
    .animation[data-animation-step="2"] .device {width:59%; height:60%;}
    .animation[data-animation-step="3"] .device {width:22%; height:63%;}
    .animation .device .display div div {font-size:16px;}
  }
  @media (max-height:650px) {
    .animation[data-animation-step="1"] .device {width:62%; height:65%;}
    .animation[data-animation-step="2"] .device {width:54%; height:55%;}
    .animation[data-animation-step="3"] .device {width:22%; height:63%;}
    .animation .device .display div div {font-size:15px;}
  }
  @media (max-width:560px) {
    .animation[data-animation-step="1"] .device {margin-top:1%;width:72%; height:75%;}
    .animation[data-animation-step="2"] .device {margin-top:1%;width:65%; height:66%;}
    .animation[data-animation-step="3"] .device {margin-top:1%;width:28%; height:80%;}
    .animation .device .display div div {font-size:15px;}
  }
  @media (max-width:520px) {
    .animation[data-animation-step="1"] .device {margin-top:0%;width:66%; height:69%;}
    .animation[data-animation-step="2"] .device {margin-top:0%;width:62%; height:63%;}
    .animation[data-animation-step="3"] .device {margin-top:0%;width:28%; height:80%;}
    .animation .device .display div div {font-size:15px;}
  }
  @media (max-width:460px) {
    .animation[data-animation-step="1"] .device {margin-top:0%;width:58%; height:61%;}
    .animation[data-animation-step="2"] .device {margin-top:0%;width:54%; height:55%;}
    .animation[data-animation-step="3"] .device {margin-top:0%;width:25%; height:72%;}
    .animation .device .display div div {font-size:15px;}
  }
  @media (max-width:350px) {
    .animation[data-animation-step="1"] .device {margin-top:3%;width:62%; height:65%;}
    .animation[data-animation-step="2"] .device {margin-top:3%;width:58%; height:60%;}
    .animation[data-animation-step="3"] .device {margin-top:9%;width:30%; height:80%;}
    .animation .device .display div div {font-size:15px;}
  }
  @media (max-width:320px) {
    .animation[data-animation-step="1"] .device {margin-top:6%;width:62%; height:65%;}
    .animation[data-animation-step="2"] .device {margin-top:6%;width:58%; height:60%;}
    .animation[data-animation-step="3"] .device {margin-top:12%;width:30%; height:80%;}
    .animation .device .display div div {font-size:15px;}
  }

/* More media queries */
@media (max-width: 430px) {
  h2, .h2 {font-size: 30px;}
}
