body {
  font-family: sans-serif;
  margin: 0;
  padding: 0;
  overflow-x: hidden;
}

html {
  scroll-behavior: smooth;
}

main {
  font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;
  padding: 0;
}

h1 {
  align-items: center;
  animation: slideInFromLeft 3.5s ease-in-out forwards; 
}

h2 {
  color: rgb(0, 0, 0);
}

@keyframes slideUp {
  0% {
    opacity: 0;
    transform: translateY(100%);
  }
  50% {
    opacity: 0.25;
    transform: translateY(-50%);
  }
  100% {
    opacity: 1;
    transform: translateY(0);
  }
}

h2:hover {
  color: aqua;
  transition: color 0.5s ease-in-out;
}

h3:hover {
  color: #111;
  transform: scale(1.02);
}

p {
  font-size: 24px;
  font-weight: 400;
  color: rgb(0, 0, 0);
  letter-spacing: 7.5px;
  line-height: 2;
  margin-top: 5rem;
  margin-left: 5rem;
  margin-right: 15rem;
}

nav {
  display: flex;
  justify-content: space-between; 
  align-items: center;
  padding: 1rem;
  background: linear-gradient(30deg, #eeedf1, #0b3f10, rgb(7, 8, 7));
  position: fixed;
  top: 0;
  left:0;
  right:0;
  z-index: 1;
}

nav a {
  color: rgb(0, 0, 0);
  margin-right: 50px;
  text-decoration: none; 
}

.svg-blinking-cursor {
  display: inline-block;
  margin-left: -1.5px;
  vertical-align:-4px;
  animation: blink 1s steps(2, start) infinite;
}

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

.highlight-text-phrase {
  color: rgb(0, 0, 0);
  text-shadow: 0 1px 2px #ffffff, 0 0 8px rgb(181, 243, 252);
}

.highlight-text-phrase-moe {
  font-weight: 300;
  font-style: italic;
  background: linear-gradient(45deg, #ffffff, #e2d7ff, #00f7ff, #ffe5e5, #ffffff);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  
}

.highlight-text-phrase-core {
  color: rgb(140, 138, 138);
  text-shadow: 0 .5px 1px #fffefe, 0 0 2px rgb(252, 255, 50);
}

.menu-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1rem;
  background: transparent;
  z-index: 19;
}

.menu-bar a:hover {
  animation: wiggle 0.25s ease-in-out;
  transform: scale(1.1);
  color: rgb(0, 0, 0);
}

@keyframes wiggle {
  0%   { transform: rotate(0deg); }
  25%  { transform: rotate(5deg); }
  50%  { transform: rotate(-5deg); }
  75%  { transform: rotate(3deg); }
  100% { transform: rotate(5deg); }
}

.video-background {
  position: relative;
  width: 100vw;
  height: 100dvh; 
}

.video-bg {
  position: fixed;
  width: 100%;
  height: 100%;
  object-fit: cover;
  top: 0;
  left: 0;
  z-index: -9;     
  animation: intro 1.5s ease-out forwards;
}

@keyframes intro {
  0% {
    transform: translateY(-5%);
  }
  50% {
    transform: translateY(5px);
  }
  100% {
    transform: translateY(0);
  }
}

.video-bg-moe {
  position: fixed;
  width: 100%;
  height: 100%;
  object-fit: cover;
  top: 0;
  left: 0;
  z-index: -9;
  opacity: 0.85;
  animation: intro 1.5s ease-in-out forwards;
}

footer {
  display: none;
  background: #ece5e5;
  padding: 1rem;
  text-align: center;
  margin-top: 4.5rem;
}

footer p {
  margin: 0;
}

.contact-sidebar {
    position: fixed; 
    right: 1.5%; 
    top: 40%; 
    transform: translateY(-60%);
    display: flex;
    flex-direction: column; 
    gap: 12.5px; 
    z-index: 14; 
    background: rgba(255, 255, 255, 0.15);
    border-radius: 12px;
    padding: 0;
    width: fit-content;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.25);
    animation: fadeIn 4.5s ease-in-out;
}

.contact-sidebar .contact-item {
    display: flex;
    justify-content: center;
    align-items: center;
    width:50px;
    height:50px;
    background-color: transparent; 
}

.contact-sidebar .contact-item svg {
    width: 70%;
    height: 70%; 
}

.contact-sidebar .music-bars {
  pointer-events: auto;
  cursor: pointer;
}

.contact-sidebar .music-bars svg {
  transform: rotate(90deg);
}

.contact-item:hover svg {
  transform: rotate(-360deg) scale(1.25);
  transition: transform 0.3s ease-in-out;
}

.contact-sidebar .music-bars:hover svg {
  transform: rotate(-90deg);
  transition: transform 0.3s ease-in-out;
}

.icon-bar {
  width: 15px;           
  height: 1px;        
  background-color: rgba(0, 0, 0, 0.25);
  margin: -7.5px auto;    
  border-left: .5px dotted black; 
  border-right: .5px dotted black;
}

.pre-hidden,
.hidden {
  opacity: 0 !important;
  visibility: hidden !important;
}

.logo-banner {
  display: flex;
  margin: 0 auto;
  width: 150px;
  height: auto;
  margin-left: 25px;
  margin-top: 5px;
  animation: slideInFromLeft 3.5s ease-in-out forwards;
  z-index: 99;
}

@keyframes dropDown {
  0% {
    opacity: 0;
    visibility: hidden;
    transform: translateY(-200%);
  }
  100% {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
  }
}

.logo-content {
  width: 150px;
  height: auto;
  display: flex;
  object-fit: contain;
}

.sub-text {
  display: inline;
  justify-content: left;
  font-family: 'Press Start 2P';
  font-style: normal;
  font-size: clamp(32px, 2.5vw, 42px);
  font-weight: 400;
  text-shadow:
    1px 1px 0 yellow,       /* hard shadow base */
    2px 2px 3px rgba(255, 255, 255, 0.6), /* soft shadow offset */
    -1.25px -1.25px 0 rgb(127, 127, 127); /* slight highlight */
  transform: perspective(500px) rotateX(1deg) rotateY(-1deg);
}

.cursive-default {
  font-family: 'Playfair Display', serif;
  font-weight: 600;
  font-style: italic;
  font-size: clamp(30px, 2.5vw, 40px);
  background: linear-gradient(to left, #000000, #1010bd, rgb(45, 73, 4), rgb(174, 15, 15));
  -webkit-background-clip: text;
  word-spacing: 1vw;
  background-clip: text;
  margin:7.5% 25% -4.5% 3%;
  text-shadow:
    .25px .25px 0 #9be1ff,       /* hard shadow base */
    1px 1px 1.5px rgba(255, 255, 255, 0.6), /* soft shadow offset */
    -.25px -.25px 0 rgb(253, 253, 253); /* slight highlight */
  transform: perspective(500px) rotateX(1deg) rotateY(-1deg);
  line-height: 1.8;
}

.slam-container {
  max-width: fit-content;
  perspective: 1200px;
  overflow: visible;
  text-align: center;
  margin-left: .75rem;
  margin-top: 5.5%;
}

.slam-text {
  font-size: 2.5rem;
  font-weight: 900;
  transform-style: preserve-3d;
  z-index: 2;
}

.slam-dust {
  position: absolute;
  bottom: 0;
  left: 8.5%;
  width: 220px;
  height: 20px;
  background: radial-gradient(ellipse at center, rgba(255, 255, 255, 0.4) 0%, transparent 80%);
  border-radius: 50%;
  transform: translateX(-50%);
  opacity: 0;
  z-index: 1;
  pointer-events: none;
}

.lets-talk:hover{
  background: transparent;
  text-shadow: 1px 4px 18px rgba(0, 217, 255, 0.5);
  border-radius: 50px; 
  transition: all 0.3s ease;
}

.lets-talk {
  white-space: nowrap;
  font-family: 'Playfair Display';
  margin: 7.5% 1.5% 2.5% 1.5%;
  font-size: 28px;
  text-decoration: underline;
  text-shadow:
    1px 1px 0 #000000,       /* hard shadow base */
    2px 2px 3px rgba(255, 255, 255, 0.6), /* soft shadow offset */
    -1.25px -1.25px 0 rgb(127, 127, 127); /* slight highlight */
  transform: perspective(500px) rotateX(1deg) rotateY(-1deg);
}

.lets-talk a{
  color: #00f7ff;
}

#homeSliderText {
  background: rgba(236, 236, 236, 0.2); 
  backdrop-filter: blur(5px); 
  -webkit-backdrop-filter: blur(5px);  /* Safari 15.6.1 or lower */
  border-radius: 15px;
  padding: 1rem 2rem;
  box-shadow: 0 8px 32px rgba(255, 255, 255, 0.37);
  border: 1px solid rgba(255, 255, 255, 0.18);
  animation: slideUp 4.5s ease-in-out; 
  cursor: pointer;
  pointer-events: all;
}

#homeTextSlider:active {
  transform: scale(0.9);
  transition: transform 1.5s ease;
}

.home-text-slider {
  display: flex;
  justify-content: center;
  line-height: 1.5;
  align-items: center;
  height: 120px;
  padding: 2.5rem;
  margin-bottom: 2rem;
  text-align: center;
  z-index: 3;
  transition: all .5s ease;
  pointer-events: all;
  user-select: none;
}

.home-text-slider:hover {
  transform: scale(1.05);
}

.slider-text {
  text-align: center;
  color: rgb(44, 44, 44);
  max-width: 80%;
  margin-top: auto;
  pointer-events: all;
}

.highlight-text {
  font-family: 'Roboto', cursive ;
  font-size: 21px;
  font-style: normal;
  font-weight: 250;
  visibility: visible; 
  line-height: 2;
  opacity: 1;          
  transition: opacity 0.5s ease-in-out;
  pointer-events: none; 
}

#sliderDots {
  margin-top: -1rem;
}

.slider-dots {
  display: flex;
  position: relative;
  align-items: center;
  justify-content: center;
  gap: 14px;
  z-index: 1;
}

.dot {
  width: 16px;
  height: 16px;
  background-color: #9e9d9d;
  border-radius: 50%;
  cursor: pointer;
  transition: background-color 0.3s ease;
  z-index: 1;
}

.dot:hover {
  background-color: yellow;
}

.dot.active {
  width: 36px;
  height: 12px;
  border-radius: 12px;
  background-color: yellowgreen;
}

.dot.active {
  animation: slide-progress .75s linear forwards; 
}

@keyframes slide-progress {
  from {
    width: 0%;
  }
  to {
    width: 2.5%;
  }
}

.fade-In {
  animation: fadeIn 2s ease-in-out forwards;
}

.fade-Out {
  animation: FadeOut 2s ease-in-out forwards;
}

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

.shutter-top {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(106, 106, 106, 0.7); 
  transform-origin: top;
  animation: shutterOpen 3.5s ease-in-out infinite;
  animation-delay: 0.25s;
}

@keyframes shutterOpen {
  0% {
    opacity: 1;
    transform: scaleY(0); 
  }
  100% {
    opacity: 0;
    transform: scaleY(1); 
  }
}

.shutter-bottom {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(106, 106, 106, 0.7); 
  transform-origin: bottom;
  animation: shutterClose 3.5s ease-in-out infinite;
  animation-delay: 0.25s;
}

@keyframes shutterClose {
  0% {
    opacity: 1;
    transform: scaleY(0); 
  }
  100% {
    opacity: 0;
    transform: scaleY(1); 
  }
}

@keyframes fadeIn {
  0% {
    opacity: 0;
    visibility: hidden;
  }
  50% {
    opacity: .25;
  }
  100% {
    opacity: 1;
    visibility: visible;
  }
}

.moe-container .text-container + .profile-photo {
  margin-left: clamp(-7.5rem, -2.5vw, -0.25rem); 
}

.moe-card{
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(380px, 1fr));
    gap: 1.5rem;
    padding: 2rem;
    max-width: 1200px;
    margin: 0 auto;
   
  }

.image-container {
  position: absolute;
  top: 55%;
  left: 0;
  transform: translate(9.5vw, -17.5vh);
  width: 280px;
  height: 374px;
  border-radius: 350px;
  overflow: hidden;
  box-shadow: 0px 4px 12px rgba(255, 255, 255, 1);
}

.profile-photo {
  width: 100%;
  height: 100%;
  border-radius: 150px;
  object-fit: cover;
  transition: transform 0.3s ease;
  z-index: 5;
}
.profile-photo:hover {
  transform: scale(1.1);
}

#profile-text {
  background: rgba(255, 255, 255, 0.1); 
  backdrop-filter: blur(27.5px);          /* frosted glass blur */
  -webkit-backdrop-filter: blur(27.5px);  /* Safari 15.6.1 or lower */
  border: 1px solid rgba(255, 255, 255, 0.2);
  border-radius: 12px;  
  padding: 15px;                
  box-shadow: 0 4px 30px rgba(0, 0, 0, 0.1);
}

.text-container {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 50%;
  max-width: 650px;
  transform: translate(-45%, -30.5%);
  padding: 0px;
  border-radius: 20px;
  box-shadow: 0px 4px 12px rgba(255, 255, 255, 1);
}

.montserrat-aboutUs {
  font-family: 'Montserrat', sans-serif;
  font-size: 24px;
  color: black;
  font-optical-sizing: auto;
  font-weight: 100; 
  text-shadow: none;
  line-height: 1.5;
  word-spacing: 2px;
}

.montserrat-pepple {
  font-family: 'Montserrat', sans-serif;
  font-size: clamp(12px, 2.5vw, 18px);
  line-height: 2;
  color: #131313;
  justify-content: center;
  text-align: center;
}

.intro-people {
  display: inline;
  font-size: clamp(24px, 2.5vw, 40px);
  font-weight: bold;
  letter-spacing: .5px; 
  line-height: 1.2;
  justify-content: center;
  transform: translateX(2.5%);
  background: linear-gradient(-90deg, #d3c6c6, #767e38, #55bac0, #767e38);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

.arrow-button {
  position: fixed;
  display: flex;
  top: 55%;
  width: 65px;
  height: 65px;
  justify-content: center;
  align-items: center;
  background: transparent; 
  border-radius: 50%;              
  box-shadow: none;            
  cursor: pointer;
  transition: all 1.5s ease-in-out;
  font-size: clamp(1.5rem, 2.5vw, 2.5rem);
  z-index: 1;
}

.fill-bright-blue {fill: #63D3FD;}
.fill-blue {fill: #3DB9F9;}
.fill-white {fill: #FFFFFF;}
.fill-dark {fill: #111;}

.arrow-button:hover .fill-bright-blue,
.arrow-button:hover .fill-blue,
.arrow-button:hover .fill-white,
.arrow-button:hover .fill-dark {
  fill: #ffbc41;
}

.arrow-button:hover svg {
  transform: scale(1.2) rotateX(180deg);
}

.arrow-button:active svg {
  transform: rotateY(180deg) scale(1.1);
}

.arrow-button svg {
  transition: all 0.3s ease-in-out;
}

.arrow-button:active .fill-bright-blue,
.arrow-button:active .fill-blue,
.arrow-button:active .fill-white,
.arrow-button:active .fill-dark {
  fill: #41ff51;
}

.arrow-button svg {
  width:90%;
  height:90%;
}

.left-arrow {
  left: 2.5rem;
}

.right-arrow {
  right: 9.5rem;
}

.language-switcher {
  position: fixed;
  top: 1.75%;
  right: 5.5%;
  display: flex;
  gap: 9px;
  z-index: 22;
  animation: slideInFromRight 4.5s ease-in-out forwards;
}

.flag-link {
  display: flex;
  width: 44px;
  height: 44px;
  background-color: #ffffff; 
  justify-content: center;
  align-items: center;
  border-radius: 25px;
  cursor: pointer;
  transition: transform 0.75s;
}

.flag-link:hover {
  transform: scale(1.05);
}

.flag-icon {
  display: inline-block;
  background-size: cover;
  width: 42px;
  height: 42px;
  border-radius: 50%; 
  box-shadow: 2px 4px 12px #fff;
}

.flag-icon:hover{
  animation: wiggle .25s ease-in-out;
}

.menu-toggle {
  position: absolute;
  left: 50%;
  cursor: pointer;
  z-index: 9;
  animation: dropDown 2.5s ease-in-out forwards;
}

#menuIcon rect { /* Selects all <rect> elements inside the SVG with id="menuIcon" */
    transition: transform 0.5s ease, opacity 0.3s ease; 
    transform-origin: center; /* Crucial: Ensures rotations happen from the center of each bar */
    fill: #000000; /* Sets the default color of the bars to black */
}

#menuIcon.is-open #top-bar {
    /* Translate it down to roughly the center of the icon, then rotate 45deg */
    transform: translateY(0px) rotate(-47.5deg);
}

#menuIcon.is-open #middle-bar {
    opacity: 0; 
}

#menuIcon.is-open #bottom-bar {
    transform: translateY(-5.5px) rotate(47.5deg);
}

.drawer-menu {
  position: fixed;
  top: 0;
  left: 0;
  height: 100vh;
  width: 320px;
  background: transparent;
  display: flex;
  flex-direction: column;
  padding: 12.5rem 2.5rem;
  transform: translateX(-100%);
  transition: all 0.5s ease-in-out;
  z-index: 5;
  box-shadow: 4px -2px 12px rgba(255, 255, 255, 1);
}

.drawer-blur-overlay {
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at 85% 10%, rgba(255,255,255,0.16), #000 60%);
  backdrop-filter: blur(35px);
  -webkit-backdrop-filter: blur(35px);
  pointer-events: none; 
  z-index: -2;
}

.drawer-menu a {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  animation: none !important;
  color: #ffffff;
  padding: 1rem 0;
  font-size: clamp(1rem, 3.5vh, 1.35rem);
  text-decoration: none;
  border-left: 5px solid transparent;
  transition: all .75s ease, border-color 0.2s ease;
}

.drawer-menu a:hover {
  transform: translateX(40px);
  background-color: #f3f8ff;
  border-left: 12.5px solid #737373;
  padding-left: .5rem;
  color: #000;
  box-shadow: -4px -6px 8px rgba(255, 255, 255, 1);
}

.drawer-menu a.active {
  font-weight: bold;
  background-color: #dfdfdf;
  border-left: 2.5px solid rgb(254, 254, 254);
}

.drawer-menu.open {
  transform: translateX(0px); 
}

.has-submenu {
  cursor: pointer;
  padding: 0;
  color: #ffffff;
  display: block;
}

.has-submenu::after {
  margin-left: 0.5rem;
  transition: transform .3s ease;
}

.submenu.open ~ .has-submenu::after {
  transform: rotate(180deg);
}

.submenu {
  transform: translateX(-100%) translateY(0);
  opacity: 0;
  transition: all .3s ease;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  padding-left: 1.5rem;
  pointer-events: none; 
}

.submenu.open {
  transform: translateX(15px) translateY(0); 
  opacity: 1;
  pointer-events: auto;
}

.submenu.closing {
  transform: translateX(0) translateY(50px);
  opacity: 0;
  pointer-events: none;
}

.drawer-menu .submenu a {
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.2rem;
  text-decoration: underline;
  color: #ffffff;
  padding-top: 0.75rem;
  padding-left: 0.75rem;
  position: relative;
  transition: all .3s ease;
}

.drawer-menu .moe-subMenu:hover {
  text-decoration: none;
  font-style: bold;
  background-color: rgba(255, 255, 255, 0.1);
  color: #ffff03;
}

.drawer-menu .core-subMenu:hover {
  text-decoration: none;
  font-style: bold;
  background-color: rgba(255, 255, 255, 0.1);
  color: #9afc93;
}

.contact-link {
  background: conic-gradient(
    from 180deg at 50% 50%,
    #333 0deg,
    #666 45deg,
    #111 90deg,
    #000 135deg,
    #222 180deg,
    #444 225deg,
    #111 270deg,
    #000 315deg,
    #333 360deg
  );
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  font-size: 28px;
  margin-left: auto;
  margin-right: 16%;
  text-decoration: none;
  font-weight: bold;
  z-index: 25;
}

.contact-link.animate {
  animation: dropDown 3.5s ease-out forwards;
}

@keyframes slideInFromRight {
  0% {
    transform: translateX(100%);
    opacity: 0;
    visibility: hidden;
  }
  100% {
    transform: translateX(0);
    opacity: 1;
    visibility: visible;
  }
}

.corePageContainer{
  position: relative;
  height: 100vh;
  margin: 1% 2.5%;
}

.image-container-coreTeam {
  position: relative;
  width: 325px;
  height: 433px;
  overflow: hidden;
  transform: translate(62.5vw, -70vh);
  background: transparent;
  border-radius: 450px;
  z-index: 2;
  margin-left:1rem;
  box-shadow: 0px 4px 12px rgba(0, 0, 0, 1);
}

.profile-photo-coreTeam {
  position: absolute;
  width: 335px;
  height: auto;
  z-index: 3;
}

#text-slider-coreTeam{
  transform: translate(14.5vw, -117.5vh);
}

.text-container-coreTeam {
  position: relative;
  top:10%;
  width: 50%;
  max-width: 625px;
  padding: 25px;
  background: transparent; 
  backdrop-filter: blur(15px);          
  -webkit-backdrop-filter: blur(15px);
  z-index: 2;
  box-shadow: 2px 4px 12px #6d6d6d;
  border-radius: 24px;
}

.intro-core {
  letter-spacing: 1.5px; 
  display: flex;
  justify-content: center;
  font-size: 45px;
  font-weight: bold;
  background: linear-gradient(to left, #000000, #742222, #a09b0e, rgb(148, 246, 1));
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

.core-team-text {
  font-family: 'Montserrat', sans-serif;
  font-size: clamp(1rem, 1.5vw, 2rem);
  font-weight: 400;
  line-height: 26px;
  letter-spacing: 0px;
  text-align: left;
  color: rgb(51, 51, 51);
  z-index: 1;
}

.arrow-container {
  position: absolute;
  display: flex;
  flex-direction: row;
  top: 50%;
  left: 50%;
  background-color:transparent;
  z-index: 1;
}

.arrow-symbol {
  position: absolute;
  display: flex;
  width: 65px;
  height: 65px;
  border-radius: 50%;
  box-shadow: 0 4px 12px rgb(0, 0, 0);
  cursor: pointer;
  transition: all 0.3s ease;  
  background-color: transparent;
  cursor: pointer;
  transition: all 0.3s ease-in-out;
}

.arrow-symbol:hover svg {
  transform: scale(1.2) rotateX(180deg);
}

.arrow-symbol:active svg {
  transform: rotateY(180deg) scale(1.1);
}

.arrow-symbol svg {
  will-change: transform, fill; 
  transition: all 0.3s ease-in-out;
  width:100%;
  height:100%;
}

.left-arrow-symbol {
  transform: translateX(-41.5vw);
}

.right-arrow-symbol {
  transform: translateX(38.5vw);
}

/* Base fills */
.fill-yellow { fill: #FFE100; }
.fill-orange { fill: #FFA800; }
.fill-white  { fill: #FFFFFF; }
.fill-dark   { fill: #111; }

.arrow-symbol:hover {
  background-color: rgb(109, 109, 109);
}

.arrow-symbol:hover .fill-yellow,
.arrow-symbol:hover .fill-orange {
  fill: rgb(5, 249, 22);
}

.arrow-symbol:active .fill-yellow,
.arrow-symbol:active .fill-orange {
  fill: #0b3f10;
}

.model-home {
  position: absolute;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40%;
  height: 325px;
  top: 5%;
  right: -4.5rem;
  z-index: 11;
  animation: slideInFromRight 3.5s ease-in-out;
}

.model-crane{
  position: absolute;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap; /* Optional: stack on small screens */
  top: 0;
  left: 25%;
  animation: slideDownFromTop 3s ease-in-out;
  z-index: 11;
}

.model-butterfly {
  position: absolute;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap; /* Optional: stack on small screens */
  top: 9rem;
  right: -16.5rem;
}

.model-description {
  font-family: 'Montserrat', sans-serif;
  font-size: 16px;
  font-weight: 400;
  line-height: 26px;
  letter-spacing: 0px;
  text-align: left;
}

#landing-page {
  position: fixed;
  inset: 0;
  background: radial-gradient(circle at center, #000 40%, #111);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  z-index: 999;
  color: #00ffcc;
  font-family: 'Audiowide', 'Courier New', monospace;
  
}

.loading-text {
  display: flex;
  flex-direction: column;
  font-family: 'Audiowide', sans-serif;
  font-size: 2rem;
  color: whitesmoke;
  justify-content: center;
  align-items: center;
  margin-top: clamp(2.5rem, 2.5vw, 3.75rem);
  margin-left: 6.5rem;
  text-shadow: 0 0 8px #00ffcc;
  animation: pulse 1.5s ease-in-out infinite;
}

@keyframes pulse {
  0%, 100% { opacity: 0.4 }
  50% { opacity: 1 }
}

body.loading nav,
body.loading main,
body.loading footer,
body.loading .slider,
body.loading .dot,
body.loading .language-switcher,
body.loading .menu-toggle,
body.loading .drawer-menu,
body.loading .content,
body.loading .video-bg {
  visibility: hidden;
  pointer-events: none;
}

.content-wrapper {
  margin-top: 0rem;
}

.progress-container {
  position: relative;
  width: 200px;
  height: 200px;
  margin-top: clamp(-27rem, -27.5rem, -30rem);
  margin-left: 7.5rem;
}

.progress-bg {
  stroke: #333;
}

.progress-bar {
  stroke: #00f7ff;
  transition: stroke-dashoffset 0.5s ease;
}

.progress-text {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  font-size: 2rem;
  color: #00f7ff;
  font-family: 'Audiowide', sans-serif;
}

/* Prevent flash of unstyled content */
body.preload #app {
  visibility: hidden;
  opacity: 0;
  transition: opacity 0.3s ease;
}

body.loaded #app {
  visibility: visible;
  opacity: 1;
}
/*
.cursor-symbol {
  cursor: url('public/cursors/sushi.cur'), auto;
}*/


.cursor-trail {
  position: fixed;
  width: 25px;
  height: 1.5px;
  pointer-events: none;
  border-radius: 0%;
  background: radial-gradient(circle, rgb(255, 255, 0), transparent 70%);
  opacity: 0.9;
  transform: translate(-50%, -50%);
  z-index: 9;
  animation: fadeTrail 0.5s ease-out forwards;
}

@keyframes fadeTrail {
  to {
    opacity: 0;
    transform: scale(0.3);
  }
}

.workPageContainer {
  margin: 7.5% 5%;
}

#thankYouMessage {
  text-align: center;
  font-size: 1.2rem;
  font-style: italic;
  margin: 1.5rem auto;
  color: green; /* Optional for emphasis */
}

.fill-colour {
  fill:grey; 
}

/* work-carousel */
#work-prev{
  color: black;
}

#work-next{
  color: black;
}

.work-carousel{
    height: 100vh;
    width: 100vw;
    overflow: hidden;
    position: relative;
}
.work-carousel:not([data-loaded="true"]) {
  visibility: hidden;
  opacity: 0;
}
.work-carousel[data-loaded="true"] {
  visibility: visible;
  opacity: 1;
  transition: opacity 0.3s ease;
}
.work-carousel .work-list .work-item{
    width: 100%;
    height: 100%;
    position: absolute;
    inset: 0;
}
.work-carousel .work-list .work-item img{
    width: 100%;
    height: 100%;
    object-fit: cover;
    opacity: 1;
}
.work-carousel .work-list .work-item .work-content{
    position: absolute;
    top: 20%;
    width: 1140px;
    max-width: 80%;
    left: 50%;
    transform: translateX(-50%);
    padding-right: 30%;
    box-sizing: border-box;
    color: #000000;
}
.work-carousel .work-list .work-item .work-author{
    font-weight: bold;
    letter-spacing: 2.5px;
}
.work-carousel .work-list .work-item .work-title,
.work-carousel .work-list .work-item .work-topic{
    font-size: clamp(2.5rem, 4.5vw, 3rem);
    font-weight: bold;
    line-height: 1em;
}
.work-carousel .work-list .work-item .work-topic{
    color: #f1683a;
    margin: 8px auto;
}
/* Container for the buttons (Grid setup) */
.work-carousel .work-list .work-item .work-buttons {
    display: grid;
    grid-template-columns: repeat(2, 120px);
    grid-template-rows: 25px;
    gap: 5px;
    margin-top: 20px;
}
/* Styles for the individual buttons */
.work-carousel .work-list .work-item .work-buttons button {
    border: none;
    letter-spacing: 3px;
    font-size: 12px;
    font-family: Poppins;
    font-weight: 500;
    color: white; /* Assuming your default text color is white for contrast with the general button gradient */
    cursor: pointer; /* Ensure pointer cursor */
    padding: 1.5px;

    /* --- Essential for the hover wipe animation on EACH BUTTON --- */
    position: relative; /* Make sure pseudo-element positions relative to the button */
    overflow: hidden; /* Hides the ::before element until it slides in */
    z-index: 1; /* Ensures text is above the pseudo-element background */

    /* Default button background (from your global button style, but you might want to specify here for clarity) */
    /* Example if it needs to be specific: background: linear-gradient(to bottom, #5d82c6, #0a1a3a); */

    /* Smooth transition for the button's own properties */
    transition: transform 0.3s ease, box-shadow 0.3s ease, color 0.3s ease;
}

/* Pseudo-element for the sliding background animation */
.work-carousel .work-list .work-item .work-buttons button::before { /* Target the button's ::before */
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  /* This is the vibrant multi-color gradient that will slide in on hover */
  background: linear-gradient(to right, #1d9ae7, #0077c2, #004b8d, #0a1a3a);
  z-index: -1; /* Puts this layer behind the button's text */
  transform: translateX(-100%); /* Starts off-screen to the left */
  transition: transform 0.4s ease-out; /* Smooth animation for the slide-in */
}

/* Hover state for the button's pseudo-element (to trigger the wipe) */
.work-carousel .work-list .work-item .work-buttons button:hover::before { /* Corrected selector */
  transform: translateX(0%); /* Slides the pseudo-element to cover the button */
}

/* Hover effects for the button itself (scale, shadow, text color) */
.work-carousel .work-list .work-item .work-buttons button:hover { /* Target the individual button on hover */
    transform: scale(1.1); /* Scales the individual button */
    box-shadow: 0 6px 20px rgba(0, 0, 0, 0.3); /* Changes shadow on the individual button */
    color: #fff; /* Changes text color to black on hover for contrast with new background */
}
.work-carousel .work-list .work-item .work-buttons button:nth-child(2){
    background-color: transparent;
    border: 1px solid #fff;
    color: #eee;
}
/* thumbail */
.work-thumbnail{
    position: absolute;
    bottom: 50px;
    left: 50%;
    width: max-content;
    z-index: 3;
    display: flex;
    gap: 20px;
    pointer-events: auto;
}
.work-thumbnail .work-item{
    width: 130px;
    height: 190px;
    flex-shrink: 0;
    position: relative;
    transition: all 0.5s ease-in;
}
.work-thumbnail .work-item img{
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 20px;
    cursor: pointer;
    filter: grayscale(1); /* 👈 move it here */
    opacity: 0.7;
}
.work-thumbnail .work-item img:hover{
  transform: scale(1.1);
  filter: grayscale(0);
  opacity: 1;
}

.work-thumbnail .work-item .work-content{
    color: #5e5e5e;
    position: absolute;
    bottom: 10px;
    left: 10px;
    right: 10px;
}
.work-thumbnail .work-item .work-content .work-title{
    font-weight: 500;
}
.work-thumbnail .work-item .work-content .work-des{
    font-weight: 300;
}

/* arrows */
.work-arrows{
    position: absolute;
    top: 75%;
    right: 52%;
    z-index: 2;
    width: 300px;
    max-width: 30%;
    display: flex;
    gap: 12.5px;
    align-items: center;
}
.work-arrows button{
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.5);
    box-shadow: 2px 4px 8px rgb(115, 115, 115);
    transition: .3s;
}
.work-arrows button:hover{
    transform: scale(1.1);
    background: #b9ff80;
    color: #000;
}

/* animation */
.work-carousel .work-list .work-item:nth-child(1){
    z-index: 1;
}

/* animation text in first item */

.work-carousel .work-list .work-item:nth-child(1) .work-content .work-author,
.work-carousel .work-list .work-item:nth-child(1) .work-content .work-title,
.work-carousel .work-list .work-item:nth-child(1) .work-content .work-topic,
.work-carousel .work-list .work-item:nth-child(1) .work-content .work-des,
.work-carousel .work-list .work-item:nth-child(1) .work-content .work-buttons
{
    transform: translateY(50px);
    filter: blur(20px);
    opacity: 0;
    animation: showContent .5s 1s linear 1 forwards;
}
@keyframes showContent{
    to{
        transform: translateY(0px);
        filter: blur(0px);
        opacity: 1;
    }
}
.work-carousel .work-list .work-item:nth-child(1) .work-content .work-title{
    animation-delay: 1.2s!important;
}
.work-carousel .work-list .work-item:nth-child(1) .work-content .work-topic{
    animation-delay: 1.4s!important;
}
.work-carousel .work-list .work-item:nth-child(1) .work-content .work-des{
    animation-delay: 1.6s!important;
}
.work-carousel .work-list .work-item:nth-child(1) .work-content .work-buttons{
    animation-delay: 1.8s!important;
}
/* create animation when next click */
.work-carousel.work-next .work-list .work-item:nth-child(1) img{
    width: 150px;
    height: 220px;
    position: absolute;
    bottom: 50px;
    left: 50%;
    border-radius: 30px;
    animation: showImage .5s linear 1 forwards;
}
@keyframes showImage{
    to{
        bottom: 0;
        left: 0;
        width: 100%;
        height: 100%;
        border-radius: 0;
    }
}

.work-carousel.work-next .work-thumbnail .work-item:nth-last-child(1){
    overflow: hidden;
    animation: showThumbnail .5s linear 1 forwards;
}
.work-carousel.work-prev .work-list .work-item img{
    z-index: 4;
}
@keyframes showThumbnail{
    from{
        width: 0;
        opacity: 0;
    }
}
.work-carousel.work-next .work-thumbnail{
    animation: effectNext .5s linear 1 forwards;
}

@keyframes effectNext{
    from{
        transform: translateX(150px);
    }
}

/* running time */
.work-carousel .work-time{
    position: fixed;
    z-index: 5;
    width: 0%;
    height: 2.5px;
    background-color: #f1683a;
    top: 0;
    right:0;
}

.work-carousel.work-next .work-time,
.work-carousel.work-prev .work-time{
    animation: runningTime 3s linear 1 forwards;
}
@keyframes runningTime{
    from{ width: 100%}
    to{width: 0}
}
/* prev click */

.work-carousel.work-prev .work-list .work-item:nth-child(2){
    z-index: 2;
}

.work-carousel.work-prev .work-list .work-item:nth-child(2) img{
    animation: outFrame 0.5s linear 1 forwards;
    position: absolute;
    bottom: 0;
    left: 0;
}
@keyframes outFrame{
    to{
        width: 150px;
        height: 220px;
        bottom: 50px;
        left: 50%;
        border-radius: 20px;
    }
}

.work-carousel.work-prev .work-thumbnail .work-item:nth-child(1){
    overflow: hidden;
    opacity: 0;
    animation: showThumbnail .5s linear 1 forwards;
}
.work-carousel.work-next .work-arrows button,
.work-carousel.work-prev .work-arrows button{
    pointer-events: none;
}
.work-carousel.work-prev .work-list .work-item:nth-child(2) .work-content .work-author,
.work-carousel.work-prev .work-list .work-item:nth-child(2) .work-content .work-title,
.work-carousel.work-prev .work-list .work-item:nth-child(2) .work-content .work-topic,
.work-carousel.work-prev .work-list .work-item:nth-child(2) .work-content .work-des,
.work-carousel.work-prev .work-list .work-item:nth-child(2) .work-content .work-buttons
{
    animation: contentOut 1.5s linear 1 forwards!important;
}

@keyframes contentOut{
    to{
        transform: translateY(-150px);
        filter: blur(20px);
        opacity: 0;
    }
}
@media (min-width: 1367px) {
  .contact-info p{
    font-size: 20px;
  }
}

@media (max-width: 1440px) {
  .drawer-menu {
    position: fixed;
    top: 0;
    left: 0;
    height: 100dvh;
    width: 100vw;
    gap: 0.25rem;
    align-items: center;
    justify-content: center;
    overflow: auto;
    background: transparent;
    display: flex;
    flex-direction: column;
    padding: 3.5rem 0.5rem;
    transform: translateY(-100%); 
    transition: transform 0.5s ease-in-out;
    contain: layout;
    z-index: 5;
  }
  .sub-menu {
    position: relative;
    margin: 2rem auto; 
  } 
  .submenu.open {
    transform: translateX(0px) translateY(0); 
  }
  a.moe-subMenu svg {
    display: none;
  }
  a.core-subMenu svg {
    display: none;
  }
  .drawer-menu a {
    padding: 1rem;
    margin-left: 0.5rem;
    font-size: clamp(1.15rem, 3vw, 1.75rem);
    text-decoration: none;
    border-left: 5px solid transparent;
    transition: all 0.3s;
  }
  .drawer-menu .submenu a {
    font-size: clamp(0.95rem, 2.5vw, 1.25rem);
    padding: 0.5rem 1rem;
    padding-top: 0.15rem;
    left: 0rem;
    position: relative;
    transition: all 1.5s ease;
  }
}

@media only screen and (min-width: 1025px) and (max-width: 1366px) {
  .svg-blinking-cursor {
    height: 1.35em; /* optional scaling */
    width: auto;
  }

  @keyframes slide-progress {
    from {
      width: 0%;
    }
    to {
      width: 3.5%;
    }
  }

  .submit-button {
      font-size: 22px;
  }

  .contact-info h2 {
    font-size: 20px;
  }

  .contact-info p {
      font-size: 16px;
  }

  .contact-sidebar .contact-item {
    width:44px;
    height:44px;
  }
  
  .contact-sidebar .contact-item svg{
    width:60%;
    height:60%;
  }

  .menu-toggle svg{
    width: 58px;
    height: 58px;
  }

  .cursive-default {
    font-size: clamp(16px, 4.2vw, 28px);
    margin: 8.5rem 0 auto;
  }

  .sub-text{
    font-size: clamp(22px, 5vw, 32px);
  } 

  .lets-talk {
    margin: 1rem auto auto 2rem;
  }

  .home-text-slider {
    margin: 3.5rem auto;
  }

  .highlight-text{
    font-size: clamp(14px, 1.8vw, 18px);
  }

  .slider-dots {
    margin: 1.75rem 0 auto;
  }

  .model-home{
    top: 15%;
    right: -7.5%;
    z-index:2;
    height: 250px;
    animation: slideInFromRight 3.5s ease-in-out;
  }

  .workPageContainer {
    margin: 12.5% auto auto 2.5%;
  }

  .image-container {
    width: 250px;
    height: 333px;
    top: 52.5%;
    left: 2.5%;
  }

  .text-container {
    top:50%;
    left:50%;
    max-width: 40vw;
    margin-left: clamp(2.5rem, 1.75vw, 4.5rem)
  }

  .montserrat-pepple{
    font-size: clamp(14px, 1.25vw, 18px);
  }

  .arrow-button{
    top:45%;
    width: 50px;
    height: 50px;
    display: none;
    pointer-events: none;
  }

  .left-arrow {
    left: 5%;
  }

  .right-arrow {
    right: 12.5%;
  }

  .image-container-coreTeam {
    position: relative;
    top:5rem;
    right:2.5rem;
    width: 200px;
    height: 266px;
  }

  .profile-photo-coreTeam {
    position: absolute;
    transform: translateX(-5px);
    width: 200px;
    height: auto;
    z-index: 3;
  }

  .text-container-coreTeam {
    top:25vh;
    left:-.5rem;
    min-width: 300px;      /* Always has room for decent content */
    max-width: 40vw;       /* Responsive limit based on screen width */
    width: 100%;   
  }

  .core-team-text {
    font-size: 14px;
  }

  .intro-core {
    letter-spacing: 1.5px; 
    font-size: 32px
  }

  .arrow-container {
    top: 47.5%;
    left: 50%;
    transform: translateY(5vh);
    display: none;
    pointer-events: none;
  }

  .arrow-symbol {
    display: none;
    pointer-events: none;
    width: 50px;
    height: 50px;
  }

  .arrow-symbol svg {
    width:100%;
    height:100%;
  }

  .left-arrow-symbol {
    transform: translateX(-45vw);
  }

  .right-arrow-symbol {
    transform: translateX(32.5vw);
  }
 
}

@media (max-width: 1024px) {
  /* Adjust main layout padding */
  main {
    padding: 0;
  }

  nav {
    margin-top: .25%;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
  }

  nav a {
    font-size: 0.85rem;
    margin: 0.3rem 0.8rem;
    justify-content: center;
    text-align: center;
  }

  /* Shrink big headers */
  h1 {
    font-size: clamp(1.5rem, 6vw, 2.5rem);
    justify-content: left;
  }

  h2 {
    color: rgb(0, 0, 0);
    font-size: clamp(1.2rem, 5vw, 1.8rem);
  }

  p {
    font-size: clamp(1rem, 4vw, 1.4rem);
    margin: 2rem 1rem;
    margin-right: 2rem;
    justify-content: center;
    line-height: 2;
    letter-spacing: normal;
  }

  footer {
    display: none;
  }

  .svg-blinking-cursor {
    height: 1.25em; /* optional scaling */
    width: auto;
  }

  @keyframes slide-progress {
    from {
      width: 0%;
    }
    to {
      width: 5.5%;
    }
  }

  .contact-container {
      max-width:325px;
      width:75%;
  }

  .contact-sidebar {
    top:37.5%;
    right:1.75%;
  }

  .contact-sidebar .contact-item {
    width:38px;
    height:38px;
  }

  .contact-sidebar .contact-item svg{
    width:55%;
    height:55%;
  }

  .submenu {
    margin-top: 1rem;
    margin-left: -1rem;
  }

  .loading-logo {
    width: 150px;
    height: auto;
    transform: translateX(.5px);
  }

  .progress-container {
    width:120px;
    height:120px;
    margin-left: 15%;
  }

  .progress-container svg {
    width:120px;
    height:120px;
  }

  .progress-text {
    font-size: 1.5rem;
  }

  .loading-text {
    font-size: 1.5rem;
    margin-left: 1.5rem;
  }

  .logo-banner {
    display: flex;
    margin: 0 auto;
    margin-left: 1px;
    margin-top: -.05rem;
    z-index: 7;
  }

  .logo-banner img {
    width:auto;
    height:25px;
  }

  .sub-text {
    font-size: clamp(14px, 2.5vw, 16px);
    z-index: 2;
  } 
  
  .cursive-default {
    margin: 16.5rem 0 0 0;
    font-size: clamp(12px, 2vw, 14px);
    letter-spacing: 1.75px;
  }

  .lets-talk {
    display: flex;
    margin-top:1.5rem;
    margin-bottom: 2.5rem;
    font-size: small;
  }

  .home-text-slider {
    text-align: left;
    margin-top: -3rem;
    z-index: 3;
  }

  .highlight-text {
    color:rgb(44, 44, 44);
    font-family: 'Roboto', cursive ;
    font-size: 12px;
    font-weight: 400;
    visibility: visible; /* Ensure it's visible */
    opacity: 1;          /* Ensure it's not transparent */
    transition: opacity 0.5s ease-in-out; /* Smooth fade-in */
  }

  .slider-dots {
    gap: 10px;
  }

  .dot {
    width: 12px;
    height: 12px;
    background-color: #ccc;
    border-radius: 50%;
    cursor: pointer;
    transition: background-color 0.3s ease;
    z-index: 1;
  }

  .image-container {
    position: absolute;
    top: 45%;
    left: 50%;
    width: 150px;
    height: 200px;
    transform: translate(-50%, -75%);
  }

  .text-container {
    position: absolute;
    top: 45%;
    left: 50%;
    width: 100%;
    max-width: 90vw;
    transform: translate(-50%, 12.5%);
    padding: 15px;
    margin-top: clamp(1.5rem, 1.4vw, 3.5rem);
    box-shadow: none;
  }

  .montserrat-pepple {
    font-size: clamp(12px, 3vw, 15px);
    margin: 1rem 0;
    line-height: 1.8;
    text-align: center;
  }

  .intro-people {
    font-size: 22px;
    margin-right: 20px;
    margin-bottom: 20px;
  }

  .arrow-button {
    top:40%;
    width:36px;
    height:36px;
    background: transparent;
    box-shadow: 2px 4px 8px;
    display: none;
    pointer-events: none;
  }  

  .arrow-button svg {
    width:24px;
    height:24px;
  }

  .left-arrow {
    left: 20%;
  }

  .right-arrow {
    right: 20%;
  }

  .language-switcher {
    position: fixed;
    top: 1.75;
    left: 87.5%;
    margin: 0;
    z-index: 20;
  }
  
  .flag-link {
    display: flex;
    width: 30px;
    height: 30px;
    background-color: #ffffff; 
    justify-content: center;
    align-items: center;
    border-radius: 25px;
    cursor: pointer;
  }
  
  .flag-icon {
    width: 28px;
    height: 28px;
  }

  .contact-link {
    margin-top: 0;
    margin-right: 10.5%;
    font-size: 16px;
    font-weight: bold;
    padding: 0.5rem 1.5rem;
    text-decoration: none;
    transition: transform 0.3s ease, background-color 0.3s ease;
    z-index: 11;
  }

  .menu-toggle {
    position: absolute;
    left: 49s.5%;
    cursor: pointer;
    z-index: 17;
  }

  .menu-toggle svg{
    width:38px;
    height:38px;
  }

  .menu-bar .contact-link:hover {
    transform: none;
    color: rgb(2, 2, 2);
  }

  .middle-text {
    font-size: 20px !important;
    transform: translateX(-15px) !important;
    margin-left: 60px;
  }

  .model-home {
    top: 7.5%;
    right: 25%;
    height: 200px;
    animation: slideInFromRight 7.5s ease-in-out;
    z-index: 1;
  }

  .model-crane{
    display:none;
  }

  .model-butterfly {
    top: .5rem;
    right: .25rem;
    animation: slideDownFromTop 3s ease-in-out;
  }

  @keyframes slideDownFromTop {
    0% {
      transform: translateY(-100%);
    }
    100% {
      transform: translateY(0);
    }
  }
}

@media (max-width: 1024px) {
  
    /* Prevent horizontal scroll globally */
    body, html {
      height:100%;
      padding:0;
      margin: 0;
      overflow-x: hidden !important;
    }

    .submit-button {
      font-size: 16px;
    }

    .contact-info p {
      font-size: 14px;
    }

    .image-container-coreTeam {
      position: absolute;
      width: 140px;
      height: 198.5px;
      left: 50%;
      top: 15%; /* or adjust as needed */
      transform: translateX(-50%);
    }
  
    .profile-photo-coreTeam {
      width: 150px;
    }
  
    .text-container-coreTeam {
      width:70%;
      top:70.5%;
      left:5%;
      padding:15px;
    }
    
    .intro-core {
      text-align: left;
      margin: 0 auto;
      font-size: clamp(20px, 2vh, 22px);
      text-align: center;
    }
  
    .core-team-text {
      text-align: left;
      font-size: clamp(14px, 1.5vh, 16.5px);
      line-height: 22px;
    }

    .arrow-container {
      top: 30%;
      left: 50%;
      transform: translate(-1.5rem, -2rem);
      display: none;
      pointer-events: none;
    }

    .arrow-symbol {
      display: none;
      pointer-events: none;
      width: 43px;
      height: 43px;
    }

    .arrow-symbol svg {
      width: 95%; /* shrink SVG to fit nicely */
      height: 95%;
      transform: none !important;
    }

    .left-arrow-symbol {
      transform: translateX(-35vw); /* or smaller */
    }
  
    .right-arrow-symbol {
      transform: translateX(30vw); /* or smaller */
    } 
}

/* Sliding animations */
.slide-exit-left {
  animation: slideOutLeft 0.5s ease forwards;
}

.slide-exit-right {
  animation: slideOutRight 0.5s ease forwards;
}

.slide-enter-left {
  animation: slideInLeft 0.5s ease forwards;
}

.slide-enter-right {
  animation: slideInRight 0.5s ease forwards;
}

@keyframes slideOutLeft {
  0% {
    transform: translateX(0);
    opacity: 1;
  }
  100% {
    transform: translateX(-100%);
    opacity: 0;
  }
}

@keyframes slideOutRight {
  0% {
    transform: translateX(0);
    opacity: 1;
  }
  100% {
    transform: translateX(100%);
    opacity: 0;
  }
}

@keyframes slideInLeft {
  0% {
    transform: translateX(100%);
    opacity: 0;
  }
  100% {
    transform: translateX(0);
    opacity: 1;
  }
}

@keyframes slideInRight {
  0% {
    transform: translateX(-100%);
    opacity: 0;
  }
  100% {
    transform: translateX(0);
    opacity: 1;
  }
}

@keyframes slideInFromLeft {
  0% {
    opacity: 0;
    transform: translateX(-100%);
  }
  50% {
    opacity: .25;
    transform: translateX(25%);
  }
  100% {
    opacity: 1;
    transform: translateX(0%);
  }
}

/* Photo hover effects */
.photo-hover-effect {
  transition: all 0.3s ease;
  position: relative;
  overflow: hidden;
}

.photo-hover-effect::before {
  content: '';
  position: absolute;
  top: 0;
  left: -100%;
  width: 100%;
  height: 100%;
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent);
  transition: left 0.5s;
}

.photo-hover-effect:hover img {
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(3, 74, 228, 0.15);
  transition: all 0.3s ease;
}

.photo-hover-effect:hover::before {
  left: 100%;
}

.profile-photo,
.montserrat-pepple {
  will-change: transform, opacity;
}

.middle-text {
    position: relative;
    display: inline-block;
    margin-left: 75px;
    margin-top: 45px;
    font-family: 'IMB Plex Sans', sans-serif;
    font-size: 36px;
    font-weight: bold;
    color: #333;
    text-align: center;
    text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.3);
    transform: translateX(75px);
}

.contact-text {
    font-family: 'IMB Plex Sans', sans-serif;
    font-size: 1em;
    color: #333;
    margin: 30px 0;
    line-height: 1.8;
    text-align: justify;
    max-width: 800px;
    margin-left: auto;
    margin-right: auto;
}

.postcard-image {
    transform: rotate(-10deg);
    transition: transform 0.3s ease;
    width: 350px;
    height: auto;
}

.postcard-image:hover {
    transform: rotate(-10deg) scale(1.05);
}

.balloon-button {
    position: relative;
    bottom: 20px;
    left: 50%;
    transform: translateX(-50%);
    padding: 12px 24px;
    font-size: 1.2em;
    background: linear-gradient(45deg, #ff6b6b, #4ecdc4, #45b7d1, #96ceb4, #ffeead, #d4a5a5, #9b5de5);
    color: white;
    border: none;
    border-radius: 30px;
    cursor: pointer;
    box-shadow: 2px 4px 8px rgba(0, 0, 0, 0.2);
    z-index: 10;
    overflow: hidden;
}

.balloon-button::before {
  content: ''; /* Essential for pseudo-elements */
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: linear-gradient(45deg, #ff6b6b, #4ecdc4, #45b7d1, #96ceb4, #ffeead, #d4a5a5, #9b5de5);
  z-index: -1; /* Puts the pseudo-element behind the button's text */
  transform: translateX(-100%); /* Starts completely off to the left, outside the button */
  transition: transform 0.5s ease, box-shadow 0.5s ease;
}
.balloon-button:hover::before {
  transform: translateX(0%); /* Slides the pseudo-element to cover the button */
}

.balloon-button:hover {
    color: #000000;
    transform: translateX(-50%) scale(1.05);
    box-shadow: 0 6px 20px rgba(0, 0, 0, 0.3);
}

.balloon {
    position: fixed;
    bottom: 0;
    width: 40px;
    height: 50px;
    border-radius: 50%;
    animation: floatUp 4s ease-in forwards;
    z-index: 999;
}

.balloon::before {
    content: '';
    position: absolute;
    bottom: -10px;
    left: 50%;
    transform: translateX(-50%);
    width: 2px;
    height: 20px;
    background: rgba(0, 0, 0, 0.2);
}

@keyframes floatUp {
    0% {
        transform: translateY(0) rotate(0deg);
        opacity: 1;
    }
    100% {
        transform: translateY(-100vh) rotate(360deg);
        opacity: 0;
    }
}

/* Balloon colors */
.balloon:nth-child(1) { background-color: #ff6b6b; left: 10%; }
.balloon:nth-child(2) { background-color: #4ecdc4; left: 20%; }
.balloon:nth-child(3) { background-color: #45b7d1; left: 30%; }
.balloon:nth-child(4) { background-color: #96ceb4; left: 40%; }
.balloon:nth-child(5) { background-color: #ffeead; left: 50%; }
.balloon:nth-child(6) { background-color: #d4a5a5; left: 60%; }
.balloon:nth-child(7) { background-color: #9b5de5; left: 70%; }
.balloon:nth-child(8) { background-color: #ff6b6b; left: 80%; }
.balloon:nth-child(9) { background-color: #4ecdc4; left: 90%; }
.balloon:nth-child(10) { background-color: #45b7d1; left: 15%; }
.balloon:nth-child(11) { background-color: #96ceb4; left: 25%; }
.balloon:nth-child(12) { background-color: #ffeead; left: 35%; }
.balloon:nth-child(13) { background-color: #d4a5a5; left: 45%; }
.balloon:nth-child(14) { background-color: #9b5de5; left: 55%; }
.balloon:nth-child(15) { background-color: #ff6b6b; left: 65%; }

body.contact-page {
  font-family: 'Montserrat', sans-serif; /* Use Montserrat font */
  background-color: #f4f4f4; /* Light background color */
  margin: 0;
  padding: 0;
}

/* Contact Container */
.contact-container {
  max-width: 600px; /* Limit the width of the contact form */
  margin: 150px auto; /* Center the container */
  padding: 20px; /* Add padding */
  background: white; /* White background for the form */
  border-radius: 8px; /* Rounded corners */
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1); /* Subtle shadow */
}

/* Headings */
h1 {
  text-align: center; /* Center the heading */
  color: #333; /* Dark text color */
  margin-bottom: 20px; /* Space below the heading */
}

/* Form Styles */
.contact-form {
  display: flex; /* Use flexbox for layout */
  flex-direction: column; /* Stack elements vertically */
}

.form-group {
  margin-bottom: 15px; /* Space between form groups */
  margin-right: 12px;
}

label {
  margin-bottom: 5px; /* Space below labels */
  color: #555; /* Slightly lighter text color */
}

input[type="text"],
input[type="email"],
textarea {
  padding: 10px; /* Padding inside input fields */
  border: 1px solid #ccc; /* Light border */
  border-radius: 4px; /* Rounded corners */
  font-size: 14px; /* Font size */
  width: 100%; /* Full width */
}

textarea {
  resize: vertical; /* Allow vertical resizing */
}

/* Button Styles */
button {
  padding: 10px; /* Padding inside button */
  background: linear-gradient(to bottom, #5d82c6, #0a1a3a);
  color: rgb(255, 255, 255); /* White text */
  border: none; /* No border */
  border-radius: 4px; /* Rounded corners */
  cursor: pointer; /* Pointer cursor on hover */
  font-size: 16px; /* Font size */
  transition: background-color 0.3s; /* Smooth background transition */
}

/* Contact Info Styles */
.contact-info {
  letter-spacing: 1px;
  margin-top: 15px; /* Space above contact info */
  text-align: center; /* Center the text */
}

.contact-info h1{
  font-size: x-large;
}

.contact-info h2 {
  justify-content: center;
  margin-bottom: 7.5px; /* Space below the heading */
  color: #333; /* Dark text color */
}

.contact-info p {
  font-family: 'Roboto';
  letter-spacing: normal;
  margin: 5px 0; /* Space above and below paragraphs */
  color: #6f6f6f; /* Lighter text color */
}

.submit-button {
  display: block;
  margin: 0 auto;
  box-shadow: 2px 4px 6px rgba(0, 0, 0, 0.55);
  position: relative; /* Crucial: Needed to position the ::before pseudo-element */
  overflow: hidden; /* Hides the ::before pseudo-element until it slides in */
  z-index: 1; /* Ensures the button's content is above the pseudo-element */
  transition: color 0.4s ease-out;
}
.submit-button::before {
  content: ''; /* Essential for pseudo-elements */
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: linear-gradient(to bottom, #1d9ae7, #0a1a3a);
  z-index: -1; /* Puts the pseudo-element behind the button's text */
  transform: translateX(-100%); /* Starts completely off to the left, outside the button */
  transition: transform 0.4s ease-out; /* Smooth animation for the slide-in */
}
.submit-button:hover::before {
  transform: translateX(0%); /* Slides the pseudo-element to cover the button */
}

/* Optional: Adjust text color slightly on hover for better contrast or effect */
.submit-button:hover {
  color: #fff; /* Darker text color on hover */
}
@media (max-width: 399px) {
  .sub-text {
    font-size: 12px;
  }
  .cursive-default{
    font-size: 10px;
  }
}

@media (max-width: 1024px) and (min-aspect-ratio: 1.8/1)  {
  .image-container{
    margin-top: 17.5%;
  }
  .text-container{
    margin-top: 18.5%;
  }
  .text-container-coreTeam{
    margin-top: 5.5rem;
  }
}

@media (max-width: 1024px) and (min-aspect-ratio: .78/1) {
  .home-text-slider{
    margin-top:-3.5rem;
  }
  .slider-dots{
    margin-top: -3rem;
  }
  .image-container{
    left:47.5%;
    width:150px;
    height:210px;
  }
  .text-container{
    left:45%;
    margin-top: 2rem;
    width: 70%;
  }
  .intro-people{
    font-size: 28px;
  }
  .montserrat-pepple{
    font-size: 15px;
  }
  .image-container-coreTeam{
    width: 140px;
    height: 198.5px;
    left:45%;
  }
  .profile-photo-coreTeam {
      width: 150px;
    }
  .text-container-coreTeam{
    max-width:700px;
    width:65%;
    top:70.5%;
    left:-1.5%;
  }
}

@media (max-width: 449px) and (max-aspect-ratio: .7299/1) {
  .image-container-coreTeam{
    left:46.5%;
  }
  .text-container-coreTeam{
    max-width:550px;
    width:70%;
    top:70%;
    left:-5%;
  }
}

@media (min-width: 450px) and (max-aspect-ratio: .7799/1) {
  .image-container-coreTeam{
    left:45%;
  }
  .text-container-coreTeam{
    max-width:550px;
    width:70%;
    top:60%;
    left:-5%;
  }
}

@media (max-width: 720px) and (min-aspect-ratio: .79/1) {
  .home-text-slider{
    margin-top: -4rem;
  }
  .image-container{
    left:50%;
    width:120px;
    height:168px;
  }
  .text-container{
    margin-top: .5rem;
    margin-left: 2rem;
    width: 70%;
  }
  .intro-people{
    font-size: 20px;
  }
  .montserrat-pepple{
    font-size: 12px;
  }
  .image-container-coreTeam{
    top:25%;
    left:45%;
  }
  .text-container-coreTeam{
    top:72.5%;
    left: -1.5%;
  }
  .arrow-container{
    transform: translateY(5rem);
  }
}

@media (min-width: 1025px) and (min-aspect-ratio: 1.35) {
  #text-slider-coreTeam {
    transform: translate(14.5vw, -125vh); /* adjust as needed */
  }
}

@media (min-width: 1025px) and (min-aspect-ratio: 2.05) {
  #text-slider-coreTeam {
    transform: translate(14.5vw, -145vh); /* adjust as needed */
  }
}


@media (min-width: 1025px) and (max-aspect-ratio: 1.81) {
  #text-slider {
    transform: translate(-36%, -39.5%); /* adjust as needed */
    margin-left: 1rem;
  }
  .arrow-button{
    top:50%;
  }
}

@media (min-aspect-ratio:1.8101) and (max-aspect-ratio: 2.0499) {
  #text-slider {
    transform: translate(-39.5%, -30.5%); /* adjust as needed */
    margin-left: 1rem;
  }
  .arrow-button{
    top:60%;
  }
}

@media (min-width: 1025px) and (min-aspect-ratio: 2.05) {
  #text-slider {
    transform: translate(-40.5%, -20.5%); /* adjust as needed */
    margin-left: 1rem;
  }
  .arrow-button{
    top:60%;
  }
}

@media (min-width: 1025px) and (min-aspect-ratio: 2.5) {
  #text-slider {
    transform: translate(-37.5%, -30.5%); /* adjust as needed */
  }
  .arrow-button{
    top:60%;
  }
}

@media (min-width: 1025px) and (min-aspect-ratio: 3.5) {
  #text-slider {
    transform: translate(-37.5%, -15%); /* adjust as needed */
  }
  .arrow-button{
    top:60%;
  }
}

@media (max-width: 1024px) and (min-aspect-ratio: 1.65) {
  .image-container{
    transform: translate(-50%, -105%);
  }
  #text-slider {
    transform: translate(-45%, 32.5%); /* adjust as needed */
    margin-left: 1rem;
  }
  .arrow-button{
    top:50%;
  }
}
