body {
  color: #fff;
  background-color: #020312;
  font-family: Roboto, sans-serif;
  font-size: 16px;
  margin: 0;
  padding: 0;
}

html {
  font-size: 80%;
}

h1,
h2,
h3,
h4,
h5 {
  font-weight: 400;
  line-height: 1.5em;
}
#my-work p {
  margin-bottom: 0;
}
#my-work p.casestudytitle {
  margin-bottom: 1em;
  line-height: 1em;
  opacity: 0.7;
  margin-top: 1em;
}

ul.inline {
  margin-top: 1em;
  margin-bottom: 1em;
}
#my-work ul {
  opacity: .5;
}

#my-work .ts-title {
 margin-bottom: 3em;
}

.divider {
  border-bottom: 1px solid #444;
  max-width: 300px;
  margin: 0 auto;
  padding-top: 20px;
}
#my-work .paragraphsection {
  margin-bottom: 2em;
  
}
#my-work .paragraphcontainer {
  background-color: rgba(255, 255, 255, .1);
  padding: 16px;
  border-radius: 8px;
}
.ts-h1,
h1 {
  font-size: 2rem;
}
.tagline {
  font-size: 0.9em;
  letter-spacing: 3px;
  margin-bottom: 3rem;
  color: #9e9e9e;
}
.casestudy {
  font-size: 0.9em;
  letter-spacing: 4px;
  margin-bottom: 3rem;
  color: #f26c4f;
      text-transform: uppercase;

}

#my-work .ts-h2,
#my-work h2 {
  letter-spacing: 4px;
  color: #9e9e9e;
}

.ts-h3,
h3 {
  font-size: 1.875rem;
  margin-bottom: 1.5625rem;
}

.ts-h4,
h4 {
  margin-bottom: 1.875rem;
}

.ts-h5,
h5 {
  font-size: 1.125rem;
}

.ts-h6, h6 {
  font-size: 1rem;
  padding: 16px 0;
}
#my-work .paragraphsection .ts-h6, #my-work .paragraphsection h6 {
  animation-fill-mode: forwards;
  animation-duration: 0.6s;
  animation-timing-function: ease;
    text-transform:uppercase;
  letter-spacing: 4px;

}
figure h6 {
  padding: 0;
}
@keyframes ts-fadeInUp {
  from {
    opacity: 0;
    transform: translate3d(0, 1.25rem, 0);
  }

  to {
    opacity: 1;
    transform: translate3d(0, 0, 0);
  }
}

@keyframes ts-fadeInDown {
  from {
    opacity: 0;
    transform: translate3d(0, -1.25rem, 0);
  }

  to {
    opacity: 1;
    transform: translate3d(0, 0, 0);
  }
}

@keyframes ts-fadeInLeft {
  from {
    opacity: 0;
    transform: translate3d(-1.25rem, 0, 0);
  }

  to {
    opacity: 1;
    transform: translate3d(0, 0, 0);
  }
}

@keyframes ts-fadeInRight {
  from {
    opacity: 0;
    transform: translate3d(1.25rem, 0, 0);
  }

  to {
    opacity: 1;
    transform: translate3d(0, 0, 0);
  }
}

@keyframes ts-zoomIn {
  from {
    opacity: 0;
    transform: scale(0.5);
  }

  to {
    opacity: 1;
    transform: scale(1);
  }
}

@keyframes ts-zoomOutIn {
  from {
    opacity: 0;
    transform: scale(1.1);
  }

  to {
    opacity: 1;
    transform: scale(1);
  }
}

@keyframes ts-zoomInShort {
  from {
    opacity: 0;
    transform: scale(0.9);
  }

  to {
    opacity: 1;
    transform: scale(1);
  }
}

.ts-align__vertical {
  display: flex;
  align-items: center;
}

.ts-border-light {
  border-color: rgba(255, 255, 255, 0.2) !important;
}

.ts-bg-primary {
  background-color: #f26c4f;
}

.bg-black {
  background-color: #000;
}

.ts-column-count-2 {
  column-count: 2;
}

.ts-column-count-3 {
  column-count: 3;
}

.ts-column-count-4 {
  column-count: 4;
}

[data-bg-image] {
  background-size: cover;
  background-position: 50%;
}

.mfp-fade.mfp-bg {
  opacity: 0;

  -webkit-transition: all 0.3s ease-out;
  -moz-transition: all 0.3s ease-out;
  transition: all 0.3s ease-out;
}

/* overlay animate in */
.mfp-fade.mfp-bg.mfp-ready {
  opacity: 0.8;
}

/* overlay animate out */
.mfp-fade.mfp-bg.mfp-removing {
  opacity: 0;
}

/* content at start */
.mfp-fade.mfp-wrap .mfp-content {
  opacity: 0;

  -webkit-transition: all 0.15s ease-out;
  -moz-transition: all 0.15s ease-out;
  transition: all 0.15s ease-out;
}

/* content animate it */
.mfp-fade.mfp-wrap.mfp-ready .mfp-content {
  opacity: 1;
}

/* content animate out */
.mfp-fade.mfp-wrap.mfp-removing .mfp-content {
  opacity: 0;
}

.mfp-zoom-out-cur,
.mfp-zoom-out-cur .mfp-image-holder .mfp-close {
  cursor: -moz-pointer;
  cursor: -webkit-pointer;
  cursor: pointer;
}

.mfp-thumbnails {
  display: flex;
  justify-content: center;

  margin-top: 10px;
  padding: 10px 0;
  background: rgba(0, 0, 0, 0.8);
  position: absolute;
  bottom: 10px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 1050;
  padding: 10px;
  border-radius: 8px;
}

.mfp-close-btn-in .mfp-close {
  color: #fff;
}

/* Center the popup and make it responsive */
#passport,
#innovationshort,
#innovationnew,
#theindoor,
#superhack {
  width: 90vw;
  /* Default to 90% of the viewport width */
  max-width: 50vw;
  /* Limit to 50% of screen width on large screens */
  max-height: 50vh;
  /* Limit to 50% of screen height */
  margin: auto;
  position: relative;
}

.custom-play-btn {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 80px;
  height: 80px;
  background: rgba(255, 255, 255, 0.5);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 10;
  transition: background 0.3s ease;
}

.custom-play-btn:hover {
  background: rgba(0, 0, 0, 0.5);
}

.play-icon {
  width: 0;
  height: 0;
  border-left: 24px solid white;
  border-top: 14px solid transparent;
  border-bottom: 14px solid transparent;
}
/* Ensure the video is fully responsive inside the popup */
#passport video,
#innovationshort video,
#innovationnew video,
#theindoor video,
#superhack video {
  width: 100%;
  /* Scale to fit the popup width */
  height: auto;
  /* Maintain aspect ratio */
  display: block;
  max-height: 50vh;
  /* Prevent the video from exceeding half of the screen height */
}

/* Adjust for smaller screens (mobile) */
@media (max-width: 768px) {

  #passport,
  #innovationshort,
  #innovationnew,
  #theindoor,
  #superhack {
    width: 95vw;
    /* Allow more space on smaller screens */
    max-width: 90vw;
    max-height: 90vh;
    /* Allow up to 90% of screen height */
  }

  #passport video,
  #innovationshort video,
  #innovationnew video,
  #theindoor video,
  #superhack video {
    max-height: 80vh;
    /* Make sure the video doesn't overflow */
  }
}

.mfp-thumb {
  width: 60px;
  /* Set a fixed width */
  height: 40px;
  /* Set a fixed height */
  margin: 5px;
  cursor: pointer;
  opacity: 0.7;
  transition: opacity 0.3s ease-in-out;
  border-radius: 5px;
  border: 2px solid transparent;
  overflow: hidden;
  /* Ensure the image doesn't overflow */
  display: block;
}

.mfp-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  /* Crop and fill the container */
  object-position: top;
  /* Keep the focus centered */
}

.mfp-thumb:hover {
  opacity: 1;
}

/* Highlight the active thumbnail */
.mfp-thumb.active {
  border: 2px solid #fff;
  opacity: 1;
}

.ts-background {
  bottom: 0;
  left: 0;
  height: 100%;
  overflow: hidden;
  position: absolute;
  width: 100%;
  z-index: -2;
}

.ts-background .ts-background {
  height: 100%;
  width: 100%;
}

.ts-background-image,
.ts-img-into-bg {
  background-repeat: no-repeat;
  background-size: cover;
  background-position: 50%;
  height: 100%;
  overflow: hidden;
  width: 100%;
}



.ts-background-position-top {
  background-position: top;
}

.ts-background-position-center {
  background-position: center;
}

.ts-background-position-right {
  background-position-x: right !important;
}

.ts-background-is-dark {
  color: #fff;
}

.ts-background-is-dark .form-control {
  box-shadow: 0 0 0 0.125rem rgba(255, 255, 255, 0.2);
}

.ts-background-is-dark .form-control:focus {
  box-shadow: 0 0 0 0.125rem rgba(255, 255, 255, 0.4);
}

.ts-video-bg {
  height: 100%;
}

.ts-video-bg .fluid-width-video-wrapper {
  height: 100%;
}

.ts-mt__0 {
  margin-top: 0 !important;
}

.ts-mr__0 {
  margin-right: 0 !important;
}

.ts-mb__0 {
  margin-bottom: 0 !important;
}

.ts-ml__0 {
  margin-left: 0 !important;
}

.ts-opacity__5 {
  opacity: 0.05;
}

.ts-opacity__10 {
  opacity: 0.1;
}

.ts-opacity__20 {
  opacity: 0.2;
}

.ts-opacity__30 {
  opacity: 0.3;
}

.ts-opacity__40 {
  opacity: 0.4;
}

.ts-opacity__50 {
  opacity: 0.5;
}

.ts-opacity__60 {
  opacity: 0.6;
}

.ts-opacity__70 {
  opacity: 0.7;
}

.ts-opacity__80 {
  opacity: 0.8;
}

.ts-opacity__90 {
  opacity: 0.9;
}

.ts-pt__0 {
  padding-top: 0 !important;
}

.ts-pb__0 {
  padding-bottom: 0 !important;
}

.ts-top__0 {
  top: 0;
}

.ts-top__50 {
  top: 50%;
}

.ts-top__100 {
  top: 100%;
}

.ts-right__0 {
  right: 0;
}

.ts-right__50 {
  right: 50%;
}

.ts-right__100 {
  right: 100%;
}

.ts-push-down__50 {
  transform: translateY(50%);
}

.ts-push-up__50 {
  transform: translateY(-50%);
}

a {
  color: #f26c4f;
  transition: 0.3s ease;
}

a:hover {
  color: #ed3a12;
  text-decoration: none;
}

p {
  line-height: 1.6875rem;
  margin-bottom: 1.875rem;
  opacity: 0.5;
}

.ts-title {
  margin-bottom: 5rem;
}

.ts-title h5 {
  font-weight: 400;
  opacity: 0.5;
}

.ts-element {
  position: relative;
}

.navbar-dark .navbar-toggler {
  border: none;
  padding: 0;
}

.navbar {
  font-weight: 100;
}

.navbar-collapse {
  margin-bottom: 20px;
}

.ts-video-bg {
  height: 100%;
}

.ts-video-bg .fluid-width-video-wrapper {
  height: 100%;
}

.ts-width__10px {
  width: 0.625rem;
}

.ts-width__20px {
  width: 1.25rem;
}

.ts-width__30px {
  width: 1.875rem;
}

.ts-width__40px {
  width: 2.5rem;
}

.ts-width__50px {
  width: 3.125rem;
}

.ts-width__100px {
  width: 6.25rem;
}

.ts-width__200px {
  width: 12.5rem;
}

.ts-width__300px {
  width: 18.75rem;
}

.ts-width__400px {
  width: 25rem;
}

.ts-width__500px {
  width: 31.25rem;
}

.ts-width__auto {
  width: auto !important;
}

.ts-block {
  padding-bottom: 5rem;
  padding-top: 5rem;
  position: relative;
}

section {
  position: relative;
}

.btn {
  border-radius: 0;
  display: inline-block;
  font-weight: 100;

  position: relative;
  text-transform: uppercase;
}

.filter-options .btn {
  background-color: transparent;
  color: rgba(255, 255, 255, 0.5);
}
.btnstyle {
  padding: 10px 30px;

  font-size: 17px;
  line-height: 1.4;
  font-weight: normal;
  width: 100%;
  text-decoration: none;
  -webkit-transition: all .2s ease-out;
  -o-transition: all .2s ease-out;
  transition: all .2s ease-out;
}
.filter-options .btn:focus {
  box-shadow: none;
}

.filter-options {
  padding-bottom: 20px;
}

.btn.active {
  border-bottom: 1px solid #f26c4f;
  transition: 0.3s ease;
}

.margin-20 {
  margin: 20px 0;
}

.padding-100 {
  padding: 100px 0;
}

.contactinfo {
  padding-bottom: 20px;
}

.btn:hover .fa-arrow-right {
  transform: translateX(0.5rem);
}

#about-me .btn,
#about-me a,
#my-skills .btn,
#my-skills a {
  margin: 5px 0;
}

.btn.ts-btn-arrow:after {
  content: "\f061";
  font-family: "Font Awesome 5 Free";
  font-weight: 900;
  font-size: 0.625rem;
  margin-left: 0.75rem;
  position: relative;
  top: -0.0625rem;
  vertical-align: middle;
}

.btn span {
  transition: 0.3s ease;
}

.btn .status {
  bottom: 0;
  height: 1.375rem;
  left: 0;
  margin: auto;
  position: absolute;
  top: 0;
  right: 0;
  width: 1.5rem;
}

.btn .status .status-icon {
  border-radius: 50%;
  opacity: 0;
  font-size: 0.625rem;
  padding: 0.25rem 0.4375rem;
  position: relative;
  transition: 0.3s ease;
  z-index: 1;
  transform: scale(0);
}

.btn .status .spinner {
  left: .3125rem;
  transition: .3s ease;
  top: .1875rem;
  position: absolute;
  opacity: 0;
}

.btn .status .status-icon.valid {
  background-color: var(--green);
}

.btn .status .status-icon.invalid {
  background-color: var(--red);
}

.btn.processing span {
  opacity: 0.2;
}

.btn.processing .spinner {
  opacity: 1;
}

.btn.done .ts-spinner {
  opacity: 0;
}

.btn.done .status-icon {
  transform: scale(1);
  opacity: 1;
}

.btn.done {
  background-color: transparent;
  border-color: transparent;
  color: transparent;
}

.valid {
  color: #fff;
}

.ts-btn-effect {
  display: inline-block;
  position: relative;
  overflow: hidden;
  vertical-align: middle;
}

.ts-btn-effect:hover .ts-hidden {
  transform: translateX(0);
}

.ts-btn-effect .ts-hidden {
  position: absolute;
  top: 0;
  left: 0;
  transform: translateX(-100%);
  transition: 0.3s ease;
}

.btn-primary1:active,
.btn-primary1:focus,
.btn-primary1:hover {
  background-color: #9e9e9e;
  color: #fff;
}

.btn-primary1 {
  background-color: #fff;
  color: #000;
  transition: 0.6s ease;
}

.btn-secondary1.fill:active,
.btn-secondary1.fill:focus,
.btn-secondary1.fill:hover,
.btn-secondary1:active,
.btn-secondary1:focus,
.btn-secondary1:hover {
  background-color: #9e9e9e;
  border-color: transparent;
  color: #fff;
}

.btn-secondary1 {
  background-color: transparent;
  border-color: #fff;
  color: #fff;
}

.btn-secondary1.fill {
  background-color: #000;
}

.btn-lg {
  padding: 0.75rem 1.5rem;
  font-size: 1.125rem;
}

.btn-sm {
  font-size: 0.8125rem;
  padding: 0.375rem 1rem;
}

.btn-xs {
  font-size: 0.75rem;
  font-weight: 600;
  padding: 0.125rem 0.6875rem;
  text-transform: uppercase;
}

[class*="btn-outline-"] {
  box-shadow: none;
}

.ts-link-arrow-effect {
  overflow: hidden;
  display: inline-block;
  font-size: 0.75rem;
  text-transform: uppercase;
  font-weight: 700;
  color: #fff;
  position: relative;
  padding-right: 2rem;
}

.ts-link-arrow-effect:before {
  animation: ts-link-arrow-effect-animation-out;
  animation-fill-mode: forwards;
  animation-duration: 0.4s;
  animation-timing-function: cubic-bezier(0.6, 0.01, 0, 1);
  background-color: #f26c4f;
  bottom: 0;
  height: 0.125rem;
  margin: auto;
  left: 0;
  content: "";
  position: absolute;
  top: 0;
  width: 100%;
  transform: scaleX(0.2);
  transform-origin: left center;
  z-index: -1;
}

.ts-link-arrow-effect span {
  position: relative;
  transform: translateX(-200%);
  display: inline-block;
  transition: 0.6s cubic-bezier(0.6, 0.01, 0, 1);
}

@keyframes ts-link-arrow-effect-animation-in {
  0% {
    transform-origin: left center;
    transform: scaleX(0.2);
  }

  70% {
    transform-origin: left center;
    transform: scaleX(1);
  }

  71% {
    transform-origin: right center;
  }

  100% {
    transform-origin: right center;
    transform: scaleX(0.2);
  }
}

@keyframes ts-link-arrow-effect-animation-out {
  0% {
    transform-origin: right center;
    transform: scaleX(0.2);
  }

  70% {
    transform-origin: right center;
  }

  71% {
    transform-origin: left center;
    transform: scaleX(1);
  }

  100% {
    transform-origin: left center;
    transform: scaleX(0.2);
  }
}

.card {
  backface-visibility: hidden;
  border: none;
  margin-bottom: 1.875rem;
  overflow: hidden;
  background-color: transparent;
}

.card-columns .card {
  margin-bottom: 1.25rem;
}

.card-body,
.card-footer,
.card-header {
  padding: 1.5625rem;
}

.ts-circle__xs {
  border-radius: 50%;
  display: inline-block;
  height: 3rem;
  flex: 0 0 3rem;
  overflow: hidden;
  text-align: center;
  line-height: 3rem;
  width: 3rem;
}

.ts-circle__sm {
  border-radius: 50%;
  display: inline-block;
  height: 4.375rem;
  flex: 0 0 4.375rem;
  overflow: hidden;
  text-align: center;
  line-height: 4.375rem;
  width: 4.375rem;
}

.ts-circle__md {
  border-radius: 50%;
  display: inline-block;
  height: 6.25rem;
  flex: 0 0 6.25rem;
  overflow: hidden;
  text-align: center;
  line-height: 6.25rem;
  width: 6.25rem;
}

.ts-circle__lg {
  border-radius: 50%;
  display: inline-block;
  height: 8.125rem;
  flex: 0 0 8.125rem;
  overflow: hidden;
  text-align: center;
  line-height: 8.125rem;
  width: 8.125rem;
}

.form-control {
  font-size: 16px;
}

.form-control {
  background-color: rgba(255, 255, 255, 0.1);
  border: 0;
  box-shadow: none;
  border-radius: 0;
  color: #fff;
  padding: 0.5625rem 0.75rem;
  transition: 0.3s ease;
}

.form-control:hover {
  background-color: rgba(255, 255, 255, 0.2);
}

.form-control:focus {
  background-color: rgba(255, 255, 255, 0.3);
  box-shadow: none;
  color: #fff;
}

.form-group {
  margin-bottom: 1.5625rem;
}

.form-group label {
  font-size: 0.8125rem;
}

.ts-gallery {
  position: relative;
}

.ts-gallery .ts-gallery__item {
  border-radius: 0;
  background-color: transparent;
}

.imgcontainer {
  position: relative;
  overflow: hidden;
  background-color: rgba(255, 255, 255, 0);

}

.ts-gallery .ts-gallery__item .ts-gallery__item-description {
  padding: 10px 0;
  color: #fff;
  position: relative;
  text-align: left;
  display: flex;
  flex-direction: column;
  justify-content: center;
  z-index: 1;
  transition: 0.6s ease;
  opacity: 1;
}

#grid .ts-gallery__item-description {
  background-color: #000;
  padding: 10px 0;
  color: rgba(255, 255, 255, 0.5);
}

.ts-gallery__item-description h4,
.ts-gallery__item-description h6 {
  margin-bottom: 0;
}

.ts-gallery__item-description h6 {
  color: #fff;
  font-size: 12px;
}

.ts-gallery__item-description h6 span {
  float: right;
  font-weight: 400;
  font-size: 0.8125rem;
  color: #f26c4f;
}

.ts-gallery__item-description h4 {
  font-size: 14px;
}

.ts-gallery .ts-gallery__item:hover .ts-gallery__item-description {
  transform: scale(1);
  opacity: 1;
}

.card-img:hover {
  transform: scale(1.3) rotate(-9deg);
}


.img-caption-overlay {
  position: absolute;
  bottom: 0;
  width: 100%;
  background: rgba(0, 0, 0, 0.7); /* semi-transparent black */
  color: #fff;
  text-align: center;
  padding: 0.5rem;
  font-size: 0.9rem;

}

.popup-gallery img {
  display: block;
  width: 100%;
  height: auto;

}
.img-caption-overlay {
  opacity: .8;
  transition: opacity 0.5s ease;
  padding: 12px;
}
.img-caption-overlay p {
  color: #fff;
  opacity: .6;
  
}

figure:hover .img-caption-overlay {
  opacity: 1;
}
figure {
    transition: opacity 0.5s ease;
    margin-bottom: 2em;

}
/* figure:hover {
  opacity: .8;
} */
.ts-gallery .ts-gallery__item h4 {
  margin-bottom: 0;
}

.card-img {
  border-radius: 0;
  transform: scale(1) rotate(0);
  backface-visibility: hidden;
  transition: 0.8s ease;
}

.ts-hr-light {
  border-color: #444;
}

.ts-item {
  height: 100%;
  padding-bottom: 4rem;
}

.ts-item:hover .icon,
.ts-item:hover h4,
.ts-item:hover p {
  transform: translateY(-0.625rem);
}

.ts-item:hover .ts-link-arrow-effect {
  color: #fff;
}

.ts-item:hover .ts-link-arrow-effect:before {
  animation: ts-link-arrow-effect-animation-in;
  animation-fill-mode: forwards;
  animation-duration: 0.4s;
  animation-timing-function: cubic-bezier(0.6, 0.01, 0, 1);
}

.ts-item:hover .ts-link-arrow-effect span {
  transform: translateX(0);
}

.ts-item .icon,
.ts-item h4,
.ts-item p {
  transition: 0.3s ease;
  transform: translateY(0);
}

.ts-item h4 {
  transition-delay: 0.05s;
}

.ts-item p {
  transition-delay: 0.1s;
}

.ts-item-content {
  display: flex;
  flex-direction: column;
  height: 100%;
}

.ts-item-header {
  margin-bottom: 1.5rem;
  position: relative;
}

.ts-item-header .icon {
  position: relative;
  display: inline-block;
}

.ts-item-body {
  flex: 1 1 auto;
}

.ts-item-footer {
  padding-top: 1rem;
  padding-bottom: 1rem;
}
/* Fullscreen loader */
#loader {
      position: fixed;
      top: 0;
      left: 0;
      height: 100%;
      width: 100%;
      background: black;
      color: white;
      display: flex;
      flex-direction: column;
      justify-content: center;
      align-items: center;
      z-index: 9999;
      transition: opacity 0.5s ease, visibility 0.5s ease;
    }

    #loader.hidden {
      opacity: 0;
      visibility: hidden;
      pointer-events: none;
    }

    #loader h1 {
      font-size: 2em;
      margin-bottom: 0.5em;
      font-family: sans-serif;
    }

    #loader p {
      font-size: 1.2em;
      font-family: monospace;
    }

    body.loaded #main-content {
      opacity: 1;
    }

    #main-content {
      opacity: 0;
      transition: opacity 0.5s ease;
    }

    body.loaded {
      overflow: auto;
    }

    body:not(.loaded) {
      overflow: hidden;
    }
    /* Start with body hidden */
body.has-loading-screen:before {
  background-color: #000;
  content: "";
  height: 100%;
  width: 100%;
  position: fixed;
  top: 0;
  left: 0;
  z-index: 9999;
  opacity: 1;
  transition: opacity 1s ease;
}

body.has-loading-screen:after {
  content: url(https://portfolio.stevenmonroe.com/images/loading.svg);
  width: 2.5rem;
  height: 2.5rem;
  position: fixed;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  margin: auto;
  z-index: 10000;
  opacity: 1;
  transition: opacity 1s ease;
}

/* When loading is done */
body.has-loading-screen.loading-done:before,
body.has-loading-screen.loading-done:after {
  opacity: 0;
  pointer-events: none;
}

/* Optional: smooth content fade-in */
body.has-loading-screen main,
body.has-loading-screen .ts-page-wrapper {
  opacity: 0;
  transition: opacity 1s ease;
}

body.has-loading-screen.loading-done main,
body.has-loading-screen.loading-done .ts-page-wrapper {
  opacity: 1;
}


#ts-hero {
  display: flex;
  height: 100vh;
  position: relative;
  overflow: hidden;
}

#ts-hero .ts-background-image {
  background-position: top center;
}

#ts-hero.ts-animate-hero-items h1:not(.ts-bubble-border) {
  opacity: 0;
  transition: 0.5s cubic-bezier(0.03, 0.18, 0.05, 1.01);
  transition-duration: 1s;
  transform: translateY(1.25rem);
}



#ts-hero.ts-animate-hero-items .ts-social-icons {
  opacity: 0;
  transition: .3s ease;
  transform: translateX(.3125rem) rotate(0.002deg);
  transition-delay: 1.2s;
  transition-duration: 1s;
}



body.loading-done #ts-hero.ts-animate-hero-items h1:not(.ts-bubble-border) {
  opacity: 1;
  transform: translateY(0);
}

body.loading-done #ts-hero.ts-animate-hero-items .ts-social-icons {
  opacity: 1;
  transform: translateX(0) rotate(0.002deg);
}

.navbar {
  font-weight: 100;
  transition: 0.3s ease;
  text-transform: uppercase;
  padding-top: 12px;
  padding-bottom: 12px;
}


.nav-link.active:after {
  opacity: 1;
}

.nav-link {
  position: relative;
}

.navbar-toggler {
  margin-left: auto;
  margin-top: 0.5rem;
  margin-bottom: 0.5rem;
}

[class*="navbar-expand"] .navbar-nav .nav-link {
  padding: 8px 0;
  border-bottom: 0.0625rem solid rgba(0, 0, 0, 0.1);
}

.ts-page-wrapper {
  overflow: hidden;
}
.hp1 {
  opacity: 0;
  position: absolute;
  top: 0;
  left: 0;
  height: 0;
  width: 0;
  z-index: -1;
}
.progress {
  background-color: transparent;
  border-radius: 0;
  height: 3rem;
  margin-bottom: 2rem;
  position: relative;
  overflow: visible;
  line-height: 1em;
}

.progress .value {
  text-align: right;
  padding: 8px 0;
}

.progress-bar {
  justify-content: end;
  overflow: visible;
}

.progress .ts-progress-value {
  border: 0.125rem solid #fff;
  bottom: 0;
  padding: 0.125rem 0.375rem;
  position: absolute;
  display: none;
  left: 0;
  transform: translateX(-1rem);
}

.progress .ts-progress-value:after {
  border-style: solid;
  border-width: 0.3125rem 0.3125rem 0 0;
  border-color: #fff transparent transparent transparent;
  bottom: -0.4375rem;
  content: "";
  left: 0.375rem;
  position: absolute;
}

.progress .progress-bar {
  background-color: #f26c4f;
  bottom: 0;
  height: 0.1875rem;
  position: absolute;
  width: 0%;
}

.progress .progress-bar,
.progress .ts-progress-value {
  transition: 1s ease;
}

.client1,
.client10,
.client11,
.client12,
.client2,
.client3,
.client4,
.client5,
.client6,
.client7,
.client8,
.client9 {
  width: 100%;
  height: 65px;
  background-position: center;
  background-size: contain;
  background-repeat: no-repeat;
  margin: 20px 0;
}
.progress {
  vertical-align: baseline;
}

.client1 {
  background-image: url(https://portfolio.stevenmonroe.com/images/logo1.png);
}

.client2 {
  background-image: url(https://portfolio.stevenmonroe.com/images/logo2.png);
}

.client3 {
  background-image: url(https://portfolio.stevenmonroe.com/images/logo5.png);
}

.client4 {
  background-image: url(https://portfolio.stevenmonroe.com/images/logo4.png);
}

.client5 {
  background-image: url(https://portfolio.stevenmonroe.com/images/logo6.png);
}

.client6 {
  background-image: url(https://portfolio.stevenmonroe.com/images/logo3.png);
}

.owl-carousel .owl-item {
  height: 100%;
}

.owl-carousel .owl-dots {
  text-align: center;
}

.owl-carousel .owl-nav {
  position: absolute;
  top: -1.25rem;
  bottom: 0;
  height: 0;
  margin: auto;
  width: 100%;
}

.ts-bubble-border {
  display: inline-block;
  position: relative;
  transition: 0.6s ease;
  /*min-height: 2em;*/
}

.ts-bubble-border i {
  background-color: #fff;
  position: absolute;
  transition: 0.2s ease-in;
}

.ts-bubble-border i:nth-child(1) {
  top: 0;
  left: 0;
  height: 0.1875rem;
  width: 0%;
}

.ts-bubble-border i:nth-child(2) {
  height: 0%;
  right: 0;
  top: 0;
  width: 0.1875rem;
  transition-delay: 0.2s;
}

.ts-bubble-border i:nth-child(3) {
  bottom: 0;
  right: 0;
  height: 0.1875rem;
  width: 0%;
  transition-delay: 0.4s;
}

.ts-bubble-border i:nth-child(4) {
  height: 0%;
  left: 0;
  bottom: 0;
  width: 0.1875rem;
  transition-delay: 0.6s;
}

.ts-bubble-border i:nth-child(5) {
  bottom: 0;
  opacity: 0;
  transition-delay: 0.6s;
  left: 2rem;
}

.ts-bubble-border i:nth-child(5):after {
  border-style: solid;
  border-width: 0.625rem 0.625rem 0 0;
  border-color: #fff transparent transparent transparent;
  content: "";
  position: absolute;
}

.ts-bubble-border .ts-title-rotate {
  left: 0;
  position: absolute;
  top: 0;
}

.ts-title-rotate {
  transition: none;
  /* Prevents unwanted animation */
}


.ts-bubble-border .ts-title-rotate span {
  padding: 1.5rem 2.25rem;
  display: inline-block;
  position: absolute;
  transition: 0.8s ease;
  transition-delay: 0.3s;
  transform: translateY(-0.3125rem) rotate(0.02deg);
  opacity: 0;
  white-space: nowrap;
  width: auto;
}

.ts-bubble-border .ts-title-rotate span.active {
  opacity: 0;
  transform: translateY(-0.3125rem) rotate(0.02deg);
}

.ts-bubble-border.in .ts-title-rotate span.active {
  opacity: 1;
  transform: translateY(0) rotate(0.02deg);
}

.ts-bubble-border.in .ts-title-rotate span.out {
  opacity: 0;
  transform: translateY(0.3125rem) rotate(0.02deg);
}

.ts-bubble-border.in i:nth-child(1),
.ts-bubble-border.in i:nth-child(3) {
  width: 100%;
}

.ts-bubble-border.in i:nth-child(2),
.ts-bubble-border.in i:nth-child(4) {
  height: 100%;
}

.ts-bubble-border.in i:nth-child(5) {
  opacity: 1;
}

#ts-content .ts-bubble-border,
#ts-footer .ts-bubble-border {
  padding: 1.5rem 2.25rem;
}

.ts-carousel-centered .slide {
  margin-bottom: 1rem;
  margin-top: 1rem;
  padding: 1rem;
}

.ts-carousel-centered .owl-item {
  perspective: 1000;
}

.ts-carousel-centered .owl-item .slide {
  opacity: 0.5;
  transition: 0.3s ease;
  transform: scale(0.95);
}

.ts-carousel-centered .owl-item.active.center .slide {
  opacity: 1;
  transform: scale(1);
}

@media (min-width: 36rem) and (max-width: 47.9375rem) {
  html {
    font-size: 85%;
  }

  .ts-h1,
  h1 {
    font-size: 2.5rem;
  }

  .ts-h3,
  h3 {
    font-size: 1.875rem;
  }

  .ts-column-count-sm-1 {
    column-count: 1;
  }

  .ts-column-count-sm-2 {
    column-count: 2;
  }

  .ts-column-count-sm-3 {
    column-count: 3;
  }

  .ts-column-count-sm-4 {
    column-count: 4;
  }
}

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

  #about-me .btn,
  #about-me a,
  #my-skills .btn,
  #my-skills a {
    width: 100%;
  }
}

@media (min-width: 48rem) and (max-width: 61.9375rem) {
  html {
    font-size: 90%;
  }

  .tagline {
    font-size: 120%;
    letter-spacing: 4px;
    margin-bottom: 3rem;
  }

  .ts-h1,
  h1 {
    font-size: 3rem;
  }

  .ts-h3,
  h3 {
    font-size: 1.875rem;
  }

  .ts-column-count-md-1 {
    column-count: 1;
  }

  .ts-column-count-md-2 {
    column-count: 2;
  }

  .ts-column-count-md-3 {
    column-count: 3;
  }

  .ts-column-count-md-4 {
    column-count: 4;
  }
}

@media (min-width: 62rem) and (max-width: 74.9375rem) {
  html {
    font-size: 95%;
  }

  .ts-h1,
  h1 {
    font-size: 3.125rem;
  }

  .ts-h3,
  h3 {
    font-size: 1.875rem;
  }

  .ts-column-count-lg-1 {
    column-count: 1;
  }

  .ts-column-count-lg-2 {
    column-count: 2;
  }

  .ts-column-count-lg-3 {
    column-count: 3;
  }

  .ts-column-count-lg-4 {
    column-count: 4;
  }

  .ts-block {
    padding-bottom: 6.25rem;
    padding-top: 6.25rem;
  }

  .ts-card__image {
    height: 12.5rem;
  }
}

@media (min-width: 75rem) {
  html {
    font-size: 100%;
  }

  .ts-h1,
  h1 {
    font-size: 3.5rem;
  }

  .ts-gallery__item-description h6 {
    font-size: 16px;
  }

  .ts-gallery__item-description h4 {
    font-size: 18px;
  }

  .ts-h3,
  h3 {
    font-size: 1.875rem;
  }

  .ts-block {
    padding-bottom: 8.125rem;
    padding-top: 8.125rem;
  }

  .ts-card__image {
    height: 15.625rem;
  }
}

@media (max-width: 35.9375rem) {
  .ts-gallery__item-description h6 {
    font-size: 16px;
  }

  .ts-gallery__item-description h4 {
    font-size: 18px;
  }

  [class*="ts-column-count-"] {
    column-count: 1;
  }

  .ts-xs-text-center {
    text-align: center !important;
  }
}

@media (min-width: 62rem) {
  .ts-gallery__item-description h6 {
    font-size: 16px;
  }

  .ts-gallery__item-description h4 {
    font-size: 18px;
  }

  .navbar.navbar-expand-lg .navbar-nav {
    align-items: center;
  }

  .navbar-expand-lg .navbar-collapse {
    margin-bottom: 0;
  }

  .navbar.navbar-expand-lg .navbar-nav .nav-link {
    padding: 20px;
    border-bottom: none;
  }

}

@media (max-width: 47.9375rem) {

  .ts-h4,
  h4 {
    font-size: 1.125rem;
  }
}

@media (min-width: 48rem) {

  .ts-h4,
  h4 {
    font-size: 1.5rem;
  }

  .tagline {
    font-size: 120%;
    letter-spacing: 4px;
    margin-bottom: 3rem;
  }

  .navbar.navbar-expand-md .navbar-nav {
    align-items: center;
  }

  .navbar.navbar-expand-md .navbar-nav .nav-link {
    border-bottom: none;
  }


}

@media (max-width: 61.9375rem) {
  .ts-card__image {
    height: 15.625rem;
  }
}

@media (min-width: 36rem) {
  .navbar.navbar-expand-sm .navbar-nav {
    align-items: center;
  }

  .navbar.navbar-expand-sm .navbar-nav .nav-link {
    padding-top: 1rem;
    padding-bottom: 1rem;
    border-bottom: none;
  }

}