body {
  margin: 0;             /* Removes default margin */
  padding: 0;            /* Removes default padding */
  box-sizing: border-box; /* Ensures padding and borders are included in the element's total width/height */
  line-height: 1.6;      /* Improves text readability */
  overflow-x: hidden;    /* Prevents horizontal scrolling */
  height: 100%;
  font-family: "Inter Tight", sans-serif;
  background-color: var(--bs-emphasis-color);
  animation: fadeInAnimation ease 3s;
	animation-iteration-count: 1;
	animation-fill-mode: forwards;
}

@keyframes fadeInAnimation {
	0% {
			opacity: 0;
	}
	
	100% {
			opacity: 1;
	}
}

.container {
  max-width: 1400px;
}

/* ---------- Header ---------- */

.hero {
  z-index: 0;
  min-height: 100dvh;
  position: relative;
}

header .container {
  min-height: 100dvh;
  max-width: 1920px;
}

.title {
  font-family: 'Fjalla One', sans-serif;
  color: var(--bs-white);
  font-size: 25vw;
  line-height: 17vw;
  -webkit-text-stroke-width: 1.5px;
  -webkit-text-stroke-color: white;
  --bs-body-font-weight: 500;
  color: rgba(255,255,255,0);
}

#bgvid {
  position: absolute;
  left: 50%;
  top: 50%;
  min-width: 100%;
  min-height: 100%;
  -webkit-transform: translate(-50%, -50%);
  -moz-transform: translate(-50%, -50%);
  -ms-transform: translate(-50%, -50%);
  transform: translate(-50%, -50%);
  z-index: 0;
}

@media (max-width: 576px) {
  #bgvid {
    min-width: -moz-fit-content;
    min-width: -webkit-fill-available;
    min-width: fit-content;  /* Allows video to scale properly */
    min-height: -moz-fit-content; /* Firefox */
    min-height: fit-content;  /* Ensures video scales properly on smaller screens */
    width: 100%;
    height: 100%;
  }
}

@media (max-width: 1400px) {
  #bgvid {
    min-width: -webkit-fill-available;
    min-width: -moz-fit-content;
    min-width: fit-content;  /* Allows video to scale properly */
    min-height: -moz-fit-content; /* Firefox */
    min-height: fit-content;  /* Ensures video scales properly on smaller screens */
    width: 100%;
    height: 100%;
  }
}

/* ---------- Details ---------- */

/* custom size container for animated background */
#details .custom-size-container {
  min-height: 720px;
}

@media (max-width: 1200px) {
  #details .custom-size-container {
    min-height: 600px;
  }
}

@media (max-width: 992px) {
  #details .custom-size-container {
    min-height: 500px;
  }
}

@media (max-width: 768px) {
  #details .custom-size-container {
    min-height: 400px;
  }
}

@media (max-width: 576px) {
  #details .custom-size-container {
    min-height: 300px;
  }
}

.sized {
  font-size: 118px;
  font-weight: 700;
  line-height: 100px;
}

@media (max-width: 1200px) {
  .sized {
    font-size: 100px;
    line-height: 90px;
  }
}

@media (max-width: 992px) {
  .sized {
    font-size: 80px;
    line-height: 75px;
  }
}

@media (max-width: 768px) {
  .sized {
    font-size: 60px;
    line-height: 65px;
  }
}

@media (max-width: 576px) {
  .sized {
    font-size: 50px;
    line-height: 60px;
  }
}

.numbering {
  width: 20px;
  height: 20px;
  border: 1px solid #fff;
  border-radius: 100px;
  justify-content: center;
  align-items: center;
  margin-right: 10px;
  display: flex;
}

.number {
  color: #e7e7e7;
  font-weight: 500;
  line-height: 18px;
}

.numbered-content {
  display: flex;
  align-items: center;
  justify-content: flex-start;
}

/* ---------- Details background animation ---------- */

@keyframes rotate {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}

.gradient-bg {
  --size: 720px;
  --speed: 50s;
  --easing: cubic-bezier(0.8, 0.2, 0.2, 0.8);

  width: var(--size);
  height: var(--size);
  filter: blur(calc(var(--size) / 5));
  background-image: linear-gradient(
    135deg,
    hsla(160, 15%, 85%, 1),  /* Light mint green */
    hsla(180, 20%, 75%, 1),  /* Soft teal */
    hsla(200, 25%, 65%, 1),  /* Light azure */
    hsla(220, 30%, 55%, 1),  /* Medium cyan */
    hsla(240, 35%, 45%, 1)   /* Deep teal */
  );
  animation: rotate var(--speed) var(--easing) alternate infinite;
  border-radius: 30% 70% 70% 30% / 30% 30% 70% 70%;
}

@media (max-width: 1200px) {
  .gradient-bg {
    --size: 800px;
  }
}

@media (max-width: 992px) {
  .gradient-bg {
    --size: 700px;
  }
}

@media (max-width: 768px) {
  .gradient-bg {
    --size: 600px;
  }
}

@media (max-width: 576px) {
  .gradient-bg {
    --size: 500px;
  }
}

/* ---------- Showcase ---------- */

/* outline animation */
.outline {
  color: black;
  text-shadow: -1px -1px 0 white,
    1px -1px 0 white, -1px 1px 0 white, 1px 1px 0 white;
}

.nav .nav-link.active {
  background: #f8f9fa;
  color: #343a40;
}

.nav-pills {
  position: relative;
  overflow: hidden;
}

.nav-pills .nav-item {
  position: relative;
}

.nav-pills .nav-link {
  color: white;
  padding: 1rem;
  position: relative;
  z-index: 1;
  overflow: hidden;
  transition: all 0.35s ease;
}

.nav-pills .nav-link.active {
  background-color: #fff;
  color: #2c3e50;
  border-radius: 5px;
  transition: all 0.35s ease;
}

.nav-pills .nav-link.active::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: #fff;
  z-index: -1;
  transition: transform 0.35s ease;
  transform: translateX(0); /* Ensures the active background covers the whole link */
}

.nav-pills .nav-link::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: transparent; /* The background color of non-active links */
  z-index: -1;
  transition: transform 0.35s ease;
  transform: translateX(-100%); /* Start off-screen */
}

/* Animation effect when moving between tabs */
.nav-pills .nav-link.active + .nav-link::before {
  transform: translateX(0); /* Brings the background in */
}

/* Smooth transition effect */
.tab-pane.fade {
  opacity: 0;
  transition: opacity 0.2s ease-in-out;
}

.tab-pane.fade.show.active {
  opacity: 1;
}

.tab-pane {
  padding: 1rem;
}

.carousel-item {
  transition: transform 0.8s cubic-bezier(0.4, 0, 0.2, 1);
}

#showcase button {
  margin: 100px 0 100px 0;
}

.videoWrapper {
  position: relative;
  padding-bottom: 56.25%; /* 16:9 */
  height: 0;
}

.youtube-video {
  background-color: #000000;
  border-radius: .5rem;
  position: relative;
  padding-top: 56.25%;
  overflow: hidden;
  cursor: pointer;
}

.youtube-video img {
  width: 100%;
  top: 0;
  bottom: 0;
  left: 0;
  opacity: 1;
}

.youtube-video img:before {
  content: "";
}

.youtube-video .play-button {
  width: 90px;
  height: 90px;
  /*background-color: rgba(0, 0, 0, 0.8);
  box-shadow: 0 0 30px rgba(0, 0, 0, 0.6);*/
  z-index: 1;
  border-radius: 100%;
}

.youtube-video .play-button:before {
  content: "";
  border-style: solid;
  border-width: 15px 0 15px 26px;
  border-color: transparent transparent transparent #fff;
}

.youtube-video img, .youtube-video .play-button {
  cursor: pointer;
}

.youtube-video img, .youtube-video iframe, .youtube-video .play-button, .youtube-video .play-button:before {
  position: absolute;
}

.youtube-video .play-button, .youtube-video .play-button:before {
  top: 50%;
  left: 50%;
  transform: translate3d(-50%, -50%, 0);
}

.youtube-video iframe {
  height: 100%;
  width: 100%;
  top: 0;
  left: 0;
}

/* ---------- Gallery ---------- */

.hover-grayscale img {
	-webkit-filter: grayscale(100%);
	filter: grayscale(100%);
	-webkit-transition: .3s ease-in-out;
	transition: .3s ease-in-out;
}

.hover-grayscale:hover img {
	-webkit-filter: grayscale(0);
	filter: grayscale(0);
}

/* ---------- Numbers ---------- */

.counter-text {
  font-family: "Inter", sans-serif;
  line-height: .9;
  letter-spacing: -.05rem;
}

/* italic animation */
@keyframes italic {
  0% {
    font-style: normal;
  }
  100% {
    font-style: italic;
  }
}

.italic-animation {
  animation: italic 1.5s infinite;
}

/* hover underline animation */
.hover-text-underline {
  --s: 0.1em;   /* the thickness of the line */
  --c: #ffffff; /* the color */
  
  color: #0000;
  padding-bottom: var(--s);
  background: 
    linear-gradient(90deg,var(--c) 50%,#ffffff 0) calc(100% - var(--_p,0%))/200% 100%,
    linear-gradient(var(--c) 0 0) 0% 100%/var(--_p,0%) var(--s) no-repeat;
  -webkit-background-clip: text,padding-box;
          background-clip: text,padding-box;
  transition: 0.5s;
}

.hover-text-underline:hover {--_p: 100%}

.hover-text-shadow {
  display: inline-block;
  position: relative;
  transition:.6s;
}

.hover-text-shadow:before,
.hover-text-shadow:after {
  content:attr(data-text);
  transition:.6s;
}

.hover-text-shadow:before {
  left: 0;
  top: 0;
  position: absolute;
  z-index:-1;
  text-shadow:
   0px 0px,
   0px 0px,
   0px 0px,
   0px 0px,
   0px 0px,
   0px 0px,
   0px 0px,
   0px 0px,
   0px 0px,
   0px 0px;
  -webkit-mask:repeating-linear-gradient(45deg, transparent 0 3px, rgba(0,0,0,0.5) 0 6px);
          mask:repeating-linear-gradient(45deg, transparent 0 3px, rgba(0,0,0,0.5) 0 6px);
}

.hover-text-shadow:hover {
  transform:translate(-10px,-10px);
}

.hover-text-shadow:hover:before {
  text-shadow:
   1px 1px,
   2px 2px,
   3px 3px,
   4px 4px,
   5px 5px,
   6px 6px,
   7px 7px,
   8px 8px,
   9px 9px,
   10px 10px;
}

/* typing animation */
.typing-text::after {
  content: "|";
  animation: blink ease 1s infinite;
}

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

/* ---------- Team ---------- */

/* Card Styling */
.profile {
  position: relative;
  overflow: hidden;
  height: 300px; /* Adjust height as needed */
}

/* Image Styling */
.card-img {
  width: 100%;
  height: 100%;
  transition: transform 0.3s ease;
  border: none;
  border-radius: 0;
}

/* Overlay Styling */
.overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.5); /* Dark overlay for readability */
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  color: white;
  opacity: 0;
  transition: opacity 0.3s ease;
  z-index: 1;
}

/* Profile Name Styling */
.profile_name {
  font-size: 1.7rem;
  font-weight: 900;
  margin: 0;
}

/* Job Title Styling */
.job-title {
  font-size: 1.2rem;
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 0.3s ease, transform 0.3s ease;
}

/* Hover Effects */
.profile:hover .card-img {
  transform: scale(1.05);
}

.profile:hover .overlay,
.profile:focus .overlay {
  opacity: 1;
}

.profile:hover .job-title,
.profile:focus .job-title {
  opacity: 1;
  transform: translateY(0);
}

/* ---------- Contact  ---------- */

/* overlay text for wave animation */
.borders {
  position:absolute;
	color: black;  
  text-shadow:
    -1px -1px 0 white, 
    1px -1px 0 white,
    -1px 1px 0 white,
    1px 1px 0 white; 
}

.wave {
	color: white;
	animation: wave 3s ease-in-out infinite;
}

@keyframes wave {
	0%, 100% {
		clip-path: polygon(0% 47%, 10% 48%, 33% 54%, 54% 60%, 70% 61%, 84% 59%, 100% 52%, 100% 100%, 0% 100%);
	}

	50% {
		clip-path: polygon(0% 60%, 15% 65%, 34% 66%, 51% 62%, 67% 50%, 84% 45%, 100% 46%, 100% 100%, 0% 100%);
	}
}

.contact-form .form-group input[type="name"]::-webkit-input-placeholder,
.contact-form .form-group input[type="text"]::-webkit-input-placeholder,
.contact-form .form-group input[type="email"]::-webkit-input-placeholder,
.contact-form .form-group textarea::-webkit-input-placeholder {
  color: rgba(255, 255, 255, 0.5);
}

.contact-form .form-group input[type="name"]:-moz-placeholder,
.contact-form .form-group input[type="text"]:-moz-placeholder,
.contact-form .form-group input[type="email"]:-moz-placeholder,
.contact-form .form-group textarea:-moz-placeholder {
  /* Firefox 18- */
  color: rgba(255, 255, 255, 0.5);
}

.contact-form .form-group input[type="name"]::-moz-placeholder,
.contact-form .form-group input[type="text"]::-moz-placeholder,
.contact-form .form-group input[type="email"]::-moz-placeholder,
.contact-form .form-group textarea::-moz-placeholder {
  /* Firefox 19+ */
  color: rgba(255, 255, 255, 0.5);
}

.contact-form .form-group input[type="name"]:-ms-input-placeholder,
.contact-form .form-group input[type="text"]:-ms-input-placeholder,
.contact-form .form-group input[type="email"]:-ms-input-placeholder,
.contact-form .form-group textarea:-ms-input-placeholder {
  color: rgba(255, 255, 255, 0.5);
}

.contact-form .form-floating input {
  color: #fff;
  border: none;
  background: rgba(255, 255, 255, 0.1);
  box-shadow: none;
}

.contact-form .form-floating textarea {
  color: #fff;
  border: none;
  background: rgba(255, 255, 255, 0.1);
  box-shadow: none;
  height: 200px;
}

*, *:before, *:after {
  box-sizing: border-box;
  outline: none;
}

/* Add transition to the floating label */
.form-floating label {
  transition: all 0.2s ease-in-out;
  background-color: transparent;
}

.form-floating > .form-control:focus ~ label::after {
  background-color: transparent;
}

/* Ensure the transition applies when the input is focused or filled */
.form-floating input:focus ~ label,
.form-floating input:not(:placeholder-shown) ~ label,
.form-floating textarea:focus ~ label,
.form-floating textarea:not(:placeholder-shown) ~ label {
  transform: translateY(-100%) scale(0.85); /* Adjust if necessary */
}

.form-floating > .form-control:not(:placeholder-shown) ~ label::after {
  background-color: transparent;
}

/* ---------- Footer ---------- */

.logo-footer {
  width: auto;
  height: 4rem;
}

/* ---------- text styles ---------- */

.p {
  font-family: Inter, sans-serif;
  line-height: .9;
  letter-spacing: -.05rem;
}

.h-5 {
  text-align: center;
  font-family: 'Fjalla One', sans-serif;
  color: var(--bs-white);
  font-size: 1rem;
}

.h-6 {
  text-align: justify;
  font-family: 'Fjalla One', sans-serif;
  color: var(--bs-white);
  font-size: 3vw;
}

.section-titles {
  font-family: 'Inter Tight', sans-serif;
  font-size: 9rem;
}

@media (max-width: 1200px) {
  .section-titles {
    font-size: 7rem;
  }
}

@media (max-width: 992px) {
  .section-titles {
    font-size: 6rem;
  }
}

@media (max-width: 768px) {
  .section-titles {
    font-size: 5rem;
  }
}

@media (max-width: 576px) {
  .section-titles {
    font-size: 4rem;
  }
}

/* ---------- Gallery Page ---------- */

.navbar-toggler:focus,
.navbar-toggler:active,
.navbar-toggler-icon:focus {
    outline: none;
    box-shadow: none;
}