@import url("https://fonts.googleapis.com/css2?family=Bricolage+Grotesque:opsz,wght@12..96,200..800&family=Italiana&family=Libre+Baskerville:ital,wght@0,400;0,700;1,400&display=swap");

* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
  font-family: "gilroy";
}

html,
body {
  width: 100%;
  height: 100%;

}

/* --- CONTAINER SETUP --- */
.main {
  width: 100%;
  height: 85vh; /* Desktop default */
  position: relative;
}

.back {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100vh;
  z-index: -1;
  overflow: hidden;
  background-color: #000; /* Fallback color */
}
/* --- IMAGE VISIBILITY LOGIC --- */
.back img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block; /* VITAL: Visible by default! */
  opacity: 1;
}
.top {
  pointer-events: none;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100vh;
}
.workingArea {
  position: relative;
  width: 90%;
  margin: 0 auto;
  max-width: 1920px;
  height: 100vh;
}

.hero {
  position: absolute;
  /* changed from 50% or 27% to 25% to move it higher */
  top: 25%; 
  left: 0;
  /* This centers the block vertically based on its own height */
  transform: translate(0%, -20%); 
  display: flex;
  justify-content: space-between;
  width: 100%;
}
.hLeft .elem {
  position: relative;
  height: 5.5vw !important; /* Size needs !important */
  overflow: hidden;
  margin-bottom: 0;
}

.hLeft .elem h1 {
  position: absolute;
  /* NO !important here! This allows GSAP to animate it. */
  top: 100%; 
  left: 0;
  line-height: 0.9;
  font-family: "kajiro";
  color: #fff;
  font-weight: 100;
  
  /* Size needs !important to override defaults */
  font-size: 6.5vw !important; 
  letter-spacing: 0.3vw;
}

/* IMPORTANT: This makes the first line visible initially */
.hLeft .elem h1:nth-child(1) {
  top: 0;
}



/* --- MOBILE SPECIFIC FIXES --- */
@media screen and (max-width: 768px) {
  /* Fix container height on phone */
  .main, 
  .back, 
  .top, 
  .workingArea {
    height: 65vh !important;
    min-height: 500px;
  }
  
  /* Ensure images are absolutely forced to show on mobile */
  .back img {
    display: block !important;
    opacity: 1 !important;
    visibility: visible !important;
  }
  
  /* Hide the canvas if it accidentally loads */
  .back canvas {
    display: none !important;
  }
  
  /* Center the hero text */
/* Move text up on mobile */
  .hero {
    /* 35% places it nicely in the upper half of your 65vh container */
    top: 35% !important; 
    transform: translate(0, -50%) !important;
    width: 100%;
  }
  
  /* Optional: If the text is hitting the edges, give it some breathing room */
  .workingArea {
    width: 90%; /* Ensure this is set */
  }
}

@media screen and (max-width: 768px) {
  
  /* 1. Force the container to be TALL again on mobile */
  .hLeft .elem {
    height: 14vw !important; /* Matches the big font size below */
  }

  /* 2. Force the text to be BIG again on mobile */
  .hLeft .elem h1 {
    font-size: 14vw !important; /* Huge text for small screens */
  }


  
  /* 4. Ensure Hero is centered properly */
  .hero {
    top: 35% !important;
    transform: translate(0, -50%) !important;
  }
}

  /* 3. Fix the Text Sizing */
  /* Since width is small, we need to increase the vw multiplier so text is readable */
  .hLeft {
    width: 100%;
  }

  .hLeft .elem {
    height: 13vw; /* Increased from 8.1vw */
  }

  .hLeft .elem h1 {
    font-size: 14vw; /* Increased from 10vw */
  }
  


.duzyh {

  top: 100%;
  left: 0;
  line-height: 0.9;
  font-family: "kajiro";
  color: #fff;
  font-weight: 100;
  font-size: 10vw;
  letter-spacing: 0.3vw;
}

.hRight {
  display: flex;
  flex-direction: column;
  align-items: end;
  width: 20%;
  /* background-color: grey; */
  color: #fff;
}
.hLeft button {
  background-color: #fff;
  border: none;
  color: black;
  padding: 15px 32px;
  text-align: center;
  text-decoration: none;
  display: inline-block;
  font-size: 1.2vw;
  font-weight: 500;
  margin-top: 2vw;
  pointer-events: all;
  cursor: pointer;
}

.hRight p {
  text-align: right;
  font-size: 0.9vw;
  font-weight: 500;
}
.imgdiv {
  width: 100%;
  height: 10vw;
  margin-top: 1vw;
  margin-bottom: 2.5vw;
  background-image: url(/images/signature\ \(1\).png);
  background-size: cover;
  background-position: center;
}
.hRight :nth-child(3) {
  margin-bottom: 2.5vw;
  width: 97%;
}
.hRight :nth-child(4) {
  width: 94%;
}

/* navbar */
.header__logo .header__pic {
  width: 174px;
}

.header__img {
  position: absolute;
  top: 50%;
  left: 0;
  -webkit-transform: translateY(-50%);
  -ms-transform: translateY(-50%);
  transform: translateY(-50%);
  height: 100%;
  max-height: 100%;
  font-size: 0;
}

.header__img .header__pic {
  height: 100%;
  width: auto;
}

/* navbar end */

a {
  text-decoration: none;
  color: inherit;
  font-family: "Poppins", sans-serif;
}

h1 {
  font-size: 2.5rem;
  font-weight: 600;
  margin-bottom: 1rem;
}

.stage {
  position: relative;
  padding-left: 68px;
  font-size: 20px;
  line-height: 1.4;
  font-weight: 900;
}

.highlight-mask {
  position: absolute;
  top: 0;
  left: 0;
  height: 100%;
  width: 0%;
  background: white;
  mix-blend-mode: difference;
  pointer-events: none;
  transition: width 0.1s linear;
}

.text-reader {
  position: relative;
  color: gray;
  font-size: 1.25rem;
  line-height: 1.8;
}

.text-reader span {
  mix-blend-mode: difference;
}

.reader-container {
  position: relative;
  overflow: hidden;
}

/* reading text */
section {
  height: 100vh;
  padding: 0 clamp(4rem, 12vw, 20rem);
  display: grid;
  place-content: center;

  p {
    font-size: clamp(2rem, 5vw, 8rem);
  }
  &:nth-of-type(3) {
    background: #ffcd45;
  }

  &:nth-of-type(4) {
    background: rgb(29, 29, 29);
    color: white;
  }
}


.nig {
  height: 30vh;
  padding: 0 clamp(4rem, 12vw, 20rem);
  display: grid;
  place-content: center;

}

/* reading text end */

.headers {
   font-family: 'Modern No. 20', serif;

}

.poppins {
  font-family: "Poppins", sans-serif;
  font-weight: 600;

}

.paragraphs {

  color: #ffffff;
  font-family: "Poppins", sans-serif;

}

.ita {
  font-family: "Italiana", sans-serif;
  font-weight: 400;
  font-style: normal;
}

@font-face {
  font-family: "Modern No. 20";
  font-style: normal;
  font-weight: normal;
  src:
    local("Modern No. 20"),
    url("MOD20.woff") format("woff");
}

/* Animations */

.cursor {
  position: fixed;
  left: 0;
  top: 0;
  z-index: 11000;
  width: 10px;
  height: 10px;
  left: -5px;
  top: -5px;
  border-radius: 50%;
  background: #ffcd45;
  pointer-events: none;
  -webkit-transition: -webkit-transform 0.1s;
  transition: -webkit-transform 0.1s;
  -o-transition: transform 0.1s;
  transition: transform 0.1s;
  transition:
    transform 0.1s,
    -webkit-transform 0.1s;
}

#preloader {
  background: #f1f1f1 url("/images/preloader1.gif") no-repeat center center;
  height: 100vh;
  width: 100%;
  position: fixed;
  z-index: 100;
}

/* Animations end

/* circles */
.work__circles {
  position: absolute;
  top: 200;
  left: 0;
  width: 100%;
  height: 100%;
  overflow: hidden;
  pointer-events: none;
}

.work__circles:before,
.work__circles:after {
  content: "";
  position: absolute;
  top: 50%;
  -webkit-transform: translateY(-50%);
  -ms-transform: translateY(-50%);
  transform: translateY(-50%);
  border-radius: 50%;
  border: 1px solid rgba(255, 255, 255, 0.15);
}

.work__circles:before {
  width: 1024px;
  height: 1024px;
  right: calc(50% - 860px);
}

.work__circles:after {
  width: 1670px;
  height: 1670px;
  right: calc(50% - 1186px);
}
/* circles end */

.primary-yellow {
  color: #ffcd45;
  font-family: "Poppins", sans-serif;
  font-weight: 600;
}

.work__pic {
  max-width: 1500px;
  height: auto;
  transform: translateX(15%);
  /*-webkit-filter: grayscale(100%); 
  filter: grayscale(100%);*/
}

.gray__logos {
  -webkit-filter: grayscale(100%);
  filter: grayscale(100%);
}

@keyframes scroll {
  0% {
    transform: translateX(0);
  }
  100% {
    transform: translateX(-50%);
  }
}

.animate-scroll {
  display: flex;
  animation: scroll 20s linear infinite;
}


/* Add to your existing CSS */
.no-scrollbar::-webkit-scrollbar {
    width: 6px;
}

.no-scrollbar::-webkit-scrollbar-track {
    background: transparent;
}

.no-scrollbar::-webkit-scrollbar-thumb {
    background-color: rgba(156, 163, 175, 0.5);
    border-radius: 3px;
}

.no-scrollbar::-webkit-scrollbar-thumb:hover {
    background-color: rgba(156, 163, 175, 0.7);
}

/* Add to your existing CSS */
.overflow-y-auto {
    -webkit-overflow-scrolling: touch;
}

.modal-container {
    -webkit-overflow-scrolling: touch;
    scrollbar-width: thin;
    scrollbar-color: rgba(156, 163, 175, 0.5) transparent;
    scroll-behavior: smooth;
    overscroll-behavior: contain;
}

.modal-container::-webkit-scrollbar {
    width: 6px;
}

.modal-container::-webkit-scrollbar-track {
    background: transparent;
}

.modal-container::-webkit-scrollbar-thumb {
    background-color: rgba(156, 163, 175, 0.5);
    border-radius: 3px;
}

body.modal-open {
    overflow: hidden;
}

#imageModal {
    -webkit-overflow-scrolling: touch;
}

#imageModal::-webkit-scrollbar {
    width: 6px;
}

#imageModal::-webkit-scrollbar-track {
    background: transparent;
}

#imageModal::-webkit-scrollbar-thumb {
    background-color: rgba(156, 163, 175, 0.5);
    border-radius: 3px;
}

#parallaxContainer {
    position: relative;
    overflow: hidden;
    will-change: transform;
}

#parallaxImage {
    will-change: transform;
    backface-visibility: hidden;
    -webkit-backface-visibility: hidden;
}


/* Hide scrollbar for Chrome, Safari and Opera */
    .no-scrollbar::-webkit-scrollbar { display: none; }
    
    /* Hide scrollbar for IE, Edge and Firefox */
    .no-scrollbar { -ms-overflow-style: none; scrollbar-width: none; }

    /* Animation Classes */
    .reveal-on-scroll {
        opacity: 0;
        transform: translateY(40px);
        transition: all 1s cubic-bezier(0.16, 1, 0.3, 1);
        will-change: transform, opacity;
    }

    .reveal-on-scroll.is-visible {
        opacity: 1;
        transform: translateY(0);
    }

    /* Staggered delays for items appearing one by one */
    .delay-200 { transition-delay: 200ms; }
    .delay-300 { transition-delay: 300ms; }

            /* By default, hide elements slightly */
        .reveal-on-scroll {
            opacity: 0;
            transform: translateY(30px);
            transition: all 0.8s ease-out;
        }
        /* This class is added by JS to show them */
        .reveal-on-scroll.is-visible {
            opacity: 1;
            transform: translateY(0);
        }
        
        .delay-100 { transition-delay: 100ms; }
        .delay-200 { transition-delay: 200ms; }
        .delay-300 { transition-delay: 300ms; }

        input[type=range] {
            -webkit-appearance: none;
            width: 100%;
            background: transparent;
        }
        input[type=range]::-webkit-slider-thumb {
            -webkit-appearance: none;
            height: 20px;
            width: 20px;
            border-radius: 50%;
            background: #171717;
            border: 2px solid #ffffff;
            cursor: pointer;
            margin-top: -9px; 
            box-shadow: 0 0 0 1px rgba(0,0,0,0); 
        }
        input[type=range]::-webkit-slider-runnable-track {
            width: 100%;
            height: 2px;
            cursor: pointer;
            background: #ffffff;
            border-radius: 1px;
        }
        input[type=range]::-moz-range-thumb {
            height: 20px;
            width: 20px;
            border: 2px solid #ffffff;
            border-radius: 50%;
            background: #171717;
            cursor: pointer;
        }
        input[type=range]::-moz-range-track {
            width: 100%;
            height: 2px;
            cursor: pointer;
            background: #ffffff;
        }

        /* --- CUSTOM CHECKBOX STYLING (The Fix) --- */
        /* This hides the ugly default box and uses the div next to it */
        .service-checkbox input:checked + div {
            background-color: white;
            border-color: white;
        }
        /* Add a checkmark visual when selected */
        .service-checkbox input:checked + div::after {
            content: '';
            display: block;
            width: 100%;
            height: 100%;
            /* Optional: You can stick an SVG checkmark here if you want */
        }