/*Bootstrap Breakpoints*/
body {
  font-family: "Roboto Mono", monospace;
  color: #000;
  max-width: 100vw;
  overflow-x: hidden; }

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

button,
button:focus {
  outline: none;
  box-shadow: none;
  background: none;
  border: none; }

/*Loading*/
.loader {
  height: 100vh;
  width: 100vw;
  overflow: hidden;
  position: relative;
  background: #FFF;
  z-index: 9999; }
  .loader img, .loader object {
    height: 100%;
    position: absolute;
    left: 50%;
    -webkit-transform: translatex(-50%);
    -moz-transform: translatex(-50%);
    -ms-transform: translatex(-50%);
    -o-transform: translatex(-50%);
    transform: translatex(-50%); }

@keyframes progress {
  from {
    width: 0; }
  to {
    width: 100%; } }

.mainContainer {
  animation: 1s appear forwards; }

@keyframes appear {
  from {
    opacity: 0; }
  to {
    opacity: 1; } }

/* Header & navigation */
.navbar {
  background: rgba(255, 255, 255, 0.5); }
  .navbar .navbar-brand {
    position: relative; }
    .navbar .navbar-brand h1 {
      position: absolute;
      top: 50%;
      left: 0;
      -webkit-transform: translatey(-50%);
      -moz-transform: translatey(-50%);
      transform: translatey(-50%);
      font-size: 1.4em;
      font-weight: normal;
      line-height: 1;
      color: #000;
      font-family: "Kaushan Script", cursive;
      opacity: 0;
      z-index: -1;
      -webkit-transition: all 0.8s cubic-bezier(0.2, 1, 0.3, 1);
      -moz-transition: all 0.8s cubic-bezier(0.2, 1, 0.3, 1);
      transition: all 0.8s cubic-bezier(0.2, 1, 0.3, 1); }
    .navbar .navbar-brand img {
      height: 8vw;
      max-height: 42px;
      margin-right: 1vw; }
    .navbar .navbar-brand:hover h1 {
      left: 100%;
      opacity: 1; }

.navbar-nav {
  position: relative;
  z-index: 10; }
  .navbar-nav .nav-item {
    position: relative;
    display: block;
    outline: none;
    margin: 0 5px; }
    .navbar-nav .nav-item a.nav-link {
      display: block;
      position: relative;
      padding: 0.5rem 1rem !important;
      color: #000;
      font-size: 1em;
      font-weight: 300;
      transition: color 0.5s;
      transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1); }
      .navbar-nav .nav-item a.nav-link:focus {
        background: none; }
      .navbar-nav .nav-item a.nav-link:before {
        content: "";
        position: absolute;
        width: 100%;
        height: 8%;
        bottom: 10%;
        left: 0;
        background-color: #f9298e;
        visibility: hidden;
        z-index: -1;
        opacity: 0.8;
        -webkit-transform: scaleX(0);
        transform: scaleX(0);
        -webkit-transition: all 0.3s ease-in-out 0s;
        transform-origin: 0 50%;
        transition: transform 0.5s;
        transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1); }
      .navbar-nav .nav-item a.nav-link.active {
        font-weight: normal; }
      .navbar-nav .nav-item a.nav-link.active:before, .navbar-nav .nav-item a.nav-link:hover:before {
        visibility: visible;
        -webkit-transform: scaleX(1);
        transform: scaleX(1); }
  .navbar-nav .language button {
    cursor: pointer;
    padding: 8px 15px;
    transition: all 0.3s ease; }
    .navbar-nav .language button:hover {
      background: #f9298e;
      color: #FFF; }
  .navbar-nav .language.show button {
    background: #f9298e;
    color: #FFF; }
  .navbar-nav .dropdown .dropdown-menu {
    margin: 0;
    border-color: #f9298e;
    border-radius: 0;
    border-width: 2px;
    padding: 0;
    text-align: center;
    -webkit-transition: max-height 0.3s, opacity 0.2s 0.1s, visibility 0s 0.3s;
    -moz-transition: max-height 0.3s, opacity 0.2s 0.1s, visibility 0s 0.3s;
    -ms-transition: max-height 0.3s, opacity 0.2s 0.1s, visibility 0s 0.3s;
    -o-transition: max-height 0.3s, opacity 0.2s 0.1s, visibility 0s 0.3s;
    transition: max-height 0.3s, opacity 0.2s 0.1s, visibility 0s 0.3s;
    max-height: 0;
    display: block;
    overflow: hidden;
    opacity: 0;
    visibility: hidden; }
    .navbar-nav .dropdown .dropdown-menu.show {
      -webkit-transition: max-height 0.3s, opacity 0.2s, visibility 0s;
      -moz-transition: max-height 0.3s, opacity 0.2s, visibility 0s;
      -ms-transition: max-height 0.3s, opacity 0.2s, visibility 0s;
      -o-transition: max-height 0.3s, opacity 0.2s, visibility 0s;
      transition: max-height 0.3s, opacity 0.2s, visibility 0s;
      max-height: 190px;
      opacity: 1;
      visibility: visible; }
    .navbar-nav .dropdown .dropdown-menu a {
      font-weight: lighter;
      cursor: pointer; }
      .navbar-nav .dropdown .dropdown-menu a:hover {
        font-weight: normal; }
      .navbar-nav .dropdown .dropdown-menu a.active {
        background: #e6e6e6;
        font-weight: normal;
        cursor: default; }

section {
  height: 100vh; }

.page,
.page .container {
  height: 100%; }

footer {
  position: fixed;
  width: 100%;
  background-color: #24bbcc;
  bottom: -3.8rem;
  transition: all 0.2s ease-in-out;
  cursor: pointer; }
  footer h4 {
    position: absolute;
    right: 0;
    bottom: 80%;
    background: #24bbcc;
    padding: 0.3rem 1rem;
    font-size: 1.2em;
    font-weight: normal;
    color: #FFF; }
    footer h4:after {
      content: "";
      display: block;
      position: absolute;
      top: 0;
      right: 100%;
      border: 1.5rem solid #24bbcc;
      border-top-color: transparent;
      border-left-color: transparent; }
  footer a {
    color: #FFF;
    font-weight: 300;
    white-space: nowrap; }
    footer a:hover {
      color: #555; }
  footer.active {
    bottom: 0; }

@media screen and (max-width: 768px) {
  .navbar-collapse {
    position: absolute;
    top: 0;
    left: 100vw;
    height: 100vh;
    width: 100vw;
    background-color: #24bbcc;
    transition: all 0.5s ease-in-out;
    text-align: center;
    padding-top: 20vh;
    font-size: 1.3rem; }
    .navbar-collapse.active {
      left: 0; }
    .navbar-collapse a.nav-link {
      font-weight: normal;
      font-size: 1.5rem;
      color: #FFF; }
      .navbar-collapse a.nav-link:before {
        display: none; }
      .navbar-collapse a.nav-link.active, .navbar-collapse a.nav-link:hover {
        text-decoration: underline; }
    .navbar-collapse .contacto a {
      font-size: 1rem;
      color: #FFF; } }

.home {
  height: 100%;
  color: #555; }
  .home:before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: -1;
    opacity: .5;
    background: url(img/background.jpg);
    background-size: cover;
    filter: grayscale(100);
    -webkit-transition: all 1s ease-in-out;
    -moz-transition: all 1s ease-in-out;
    -o-transition: all 1s ease-in-out;
    transition: all 1s ease-in-out; }
  .home .titulo {
    width: 100%;
    padding: 0 2rem;
    text-align: center;
    -webkit-transform: translate3d(0, 100px, 0);
    transform: translate3d(0, 80px, 0);
    -webkit-animation: fadeIn 1.5s ease-out forwards;
    animation: fadeIn 1.5s ease-out forwards; }
    .home .titulo h3 {
      position: relative;
      font-family: 'Kaushan Script', cursive;
      font-size: 8vw;
      color: #000;
      width: 60vw;
      margin: 0 auto;
      white-space: nowrap; }
      .home .titulo h3:before {
        content: "";
        height: 12%;
        background: #f9298e;
        width: 100%;
        position: absolute;
        left: 0;
        bottom: 20%;
        transform-origin: 0 50% 0;
        z-index: -1;
        mix-blend-mode: multiply;
        -webkit-transform: scalex(0);
        transform: scalex(0);
        -webkit-animation: highlight .5s ease-out forwards;
        animation: highlight .5s ease-out forwards;
        animation-delay: 1000ms; }
    .home .titulo p {
      font-size: 1.5rem;
      min-height: 36px; }
    .home .titulo .tagString {
      color: #f9298e; }
  .home .typed-cursor {
    color: #f9298e;
    opacity: 1;
    -webkit-animation: blink 0.7s infinite;
    -moz-animation: blink 0.7s infinite;
    -ms-animation: blink 0.7s infinite;
    -o-animation: blink 0.7s infinite;
    animation: blink 0.7s infinite; }

@media screen and (max-width: 768px) {
  .home .titulo h3 {
    font-size: 12vw;
    width: 85vw; }
  .home .titulo p {
    font-size: 1.2rem; } }

@keyframes highlight {
  to {
    transform: scalex(1); } }

@keyframes blink {
  0% {
    opacity: 1; }
  50% {
    opacity: 0; }
  100% {
    opacity: 1; } }

@-webkit-keyframes fadeIn {
  0%, 40% {
    opacity: 0; }
  85%, 100% {
    opacity: 1;
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0); } }

@keyframes fadeIn {
  0%, 40% {
    opacity: 0; }
  85%, 100% {
    opacity: 1;
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0); } }

.about {
  height: 100%;
  background: #999 url(img/perfil.jpg) left center no-repeat;
  background-size: auto 100vh;
  background-blend-mode: screen;
  padding: 50px 3rem; }
  .about article {
    background: rgba(255, 255, 255, 0.5); }
  .about .bio {
    margin-bottom: 40px; }
    .about .bio h3 {
      font-size: 2.6rem;
      color: #f9298e;
      font-family: 'Kaushan script', cursive;
      margin-bottom: 20px; }
  .about .contact-cols div {
    margin-bottom: 25px; }
  .about h4 {
    color: #24bbcc;
    font-size: 1.2rem;
    margin-bottom: 25px; }
  .about a {
    color: #555; }
    .about a:hover {
      color: #24bbcc; }

/* Portafolio */
.trabajos {
  height: 100%;
  width: 100%;
  padding: 50px 3rem; }
  .trabajos .categorias {
    list-style: none;
    padding: 15px 0;
    border-bottom: 1px solid #ccc;
    margin: 50px auto 30px auto; }
    .trabajos .categorias li {
      text-align: center;
      padding: 0; }
    .trabajos .categorias a {
      color: #555;
      font-size: 1.2em;
      display: block;
      width: 100%;
      transition: all 0.2s ease;
      font-weight: lighter; }
      .trabajos .categorias a:hover {
        color: #f9298e;
        text-decoration: none;
        cursor: pointer; }
      .trabajos .categorias a.active {
        color: #f9298e; }
    .trabajos .categorias .fa {
      margin-bottom: 10px; }
    .trabajos .categorias .fa-exclamation {
      float: left;
      padding: 5px; }
    .trabajos .categorias p {
      text-align: center;
      float: left;
      width: 90%; }
  .trabajos .trabajos-grid {
    margin-bottom: 50px; }
  .trabajos .project-detail {
    display: block;
    min-width: 180px;
    height: auto;
    overflow: hidden;
    position: relative;
    border: 8px solid #fff;
    flex: 0 0 16.6%; }
    .trabajos .project-detail:before {
      content: '';
      float: left;
      padding-top: 100%; }
    .trabajos .project-detail img {
      width: 160%;
      position: absolute;
      top: 50%;
      left: 50%;
      transform: translate(-50%, -50%); }
      .trabajos .project-detail img:hover {
        width: 200%;
        transition: all .5s ease;
        -moz-transition: all .5s ease;
        -webkit-transition: all .5s ease;
        cursor: pointer; }

@media screen and (max-width: 768px) {
  .trabajos {
    padding: 0; }
    .trabajos .categorias {
      padding: 0;
      padding-bottom: 10px;
      margin: 100px 0 10px; } }

.modal .modal-dialog {
  min-width: 80%;
  min-height: 90vh; }
  .modal .modal-dialog div.carousel-container {
    padding-left: 0 !important; }

.modal button.close-btn {
  cursor: pointer;
  display: block;
  position: relative;
  color: #555;
  transition: all .3s ease; }
  .modal button.close-btn:focus {
    background: none; }
  .modal button.close-btn:before {
    content: "";
    position: absolute;
    width: 100%;
    height: 2px;
    bottom: 44%;
    left: 0;
    background-color: #f9298e;
    visibility: hidden;
    -webkit-transform: scaleX(0);
    transform: scaleX(0);
    -webkit-transition: all 0.3s ease-in-out 0s;
    transition: all 0.3s ease-in-out 0s; }
  .modal button.close-btn:hover:before {
    visibility: visible;
    -webkit-transform: scaleX(1);
    transform: scaleX(1); }

.modal h4 {
  margin-bottom: 10px; }

.modal p.cliente {
  font-size: 1rem;
  color: #24bbcc;
  margin-bottom: 5px; }

.modal a.ver-proyecto {
  color: #24bbcc;
  display: block;
  text-align: right; }
  .modal a.ver-proyecto:hover {
    text-decoration: underline; }

.carousel {
  height: 75vh;
  overflow: hidden; }
  .carousel .carousel-inner {
    height: 100%;
    margin: auto; }
  .carousel .carousel-item {
    height: 100%;
    overflow: hidden; }
    .carousel .carousel-item img {
      height: 100%;
      width: auto !important;
      max-width: unset !important;
      min-height: 100%;
      position: absolute;
      top: 0;
      left: 50%;
      margin: auto;
      -webkit-transform: translatex(-50%);
      -moz-transform: translatex(-50%);
      -ms-transform: translatex(-50%);
      -o-transform: translatex(-50%);
      transform: translatex(-50%); }
  .carousel .carousel-control-prev,
  .carousel .carousel-control-next {
    cursor: pointer; }
    .carousel .carousel-control-prev span,
    .carousel .carousel-control-next span {
      background: none; }
      .carousel .carousel-control-prev span:before,
      .carousel .carousel-control-next span:before {
        font-size: 2rem;
        font-family: FontAwesome;
        text-shadow: 0 0 10px #555; }
      .carousel .carousel-control-prev span.carousel-control-prev-icon:before,
      .carousel .carousel-control-next span.carousel-control-prev-icon:before {
        content: "\F053"; }
      .carousel .carousel-control-prev span.carousel-control-next-icon:before,
      .carousel .carousel-control-next span.carousel-control-next-icon:before {
        content: "\F054"; }

/* Transition */
.FadeIn-appear {
  opacity: 0; }

.FadeIn-appear.FadeIn-appear-active {
  opacity: 1;
  transition: all 0.3s linear; }

.FadeIn-enter {
  opacity: 0; }

.FadeIn-enter.FadeIn-enter-active {
  opacity: 1;
  transition: all 0.2s linear 0.3s; }

.FadeIn-leave {
  opacity: 1.0; }

.FadeIn-leave.FadeIn-leave-active {
  opacity: 0;
  width: 100%;
  transition: all 0.2s linear; }
