* {
    box-sizing: border-box;
}
html {
  scroll-behavior: smooth;
}
html,
body {
    overflow-x: hidden;
    /* no horizontal scroll ever */
}

html,
body {
    overflow-x: hidden;
    /* never allow side scroll */
}

body.nav-open {
    overflow: hidden;
    /* stop vertical + horizontal scroll */
}

::-webkit-scrollbar {
    display: none;
    /* Chrome, Safari, Edge */
}
video::-webkit-media-controls {
  display: none !important;
}

video::-webkit-media-controls-enclosure {
  display: none !important;
}


body {
    -ms-overflow-style: none;
    /* IE 10+ */
    scrollbar-width: none;
    /* Firefox */
}

@font-face {
    font-family: 'MyFont';
    src: url('fonts/Coolvetica Rg.otf') format('truetype');
    font-weight: normal;
    font-style: normal;
}



body {
    line-height: 1.6;
    margin: 0;
    padding: 0;
}

header {
    background: black;
    color: #fff;
    text-align: center;
    display: flex;
    justify-content: center;
    align-items: center;
    height: 109vh;
    /* full-screen hero section */
    flex-direction: column;
}

/*#bubbleCanvas { position: fixed; top: 0; left: 0; width: 100%; height: 100%; z-index: -1; /* behind everything match your site background } */
/* ================= NAVBAR STYLING ================= */
/* ================= NAVBAR FIX ================= */
nav {
  width: 100%;
  background-color: #fff;
  position: sticky;
  top: 0;
  z-index: 1000;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
}

/* Inner container keeps everything on one line */
.nav-container {
  display: flex;
  justify-content: space-between; /* logo left, links right */
  align-items: center; /* vertical centering */
  
}

/* Logo styling */
.logo img {
  height: 60px;
  object-fit: contain;
  margin-left: 0;
  
}

/* Navigation links */
.nav-links {
  list-style: none;
  display: flex;
  gap: 3rem;
  margin-right: 1%;
  padding: 0;
  font-family: 'Coolvetica', sans-serif;
}

.nav-links li a {
  color: #000;
  text-decoration: none;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  position: relative;
  transition: color 0.3s ease;
  
}

/* Hover underline */
.nav-links li a::after {
  content: "";
  position: absolute;
  bottom: -5px;
  left: 0;
  width: 0;
  height: 2px;
  background: #000;
  transition: width 0.3s ease;
}

.nav-links li a:hover::after {
  width: 100%;
}

/* Responsive navbar (for smaller screens) */
/* -------- MOBILE NAVBAR FIX -------- */
/* ===============================
   RESPONSIVE NAVBAR — SCROLLABLE LINKS ON MOBILE
   =============================== */
/* -------- CLEAN & ORGANIZED MOBILE NAVBAR -------- */
@media (max-width: 768px) {

  nav {
   padding: 0;
  }

  .nav-container {
    flex-direction: column;   /* stack logo + links */
    gap: 8px;
  }

  /* Logo */
  .logo img {
    height: 45px;
  }

  /* Links become centered and neat */
  .nav-links {
    width: 100%;
    display: flex;
    justify-content: center;
    gap: 1.8rem;
    overflow: hidden;   /* no scroll, clean */
    padding: 0;
    margin-right: 0%;
  }

  .nav-links li a {
    font-size: 14px;
  }

  /* Remove hover underline gap */
  .nav-links li a::after {
    bottom: -3px;
  }
}






/* ---------- PERFECT RESPONSIVE VIDEO FIX ---------- */

/* Default (PC) */
.video-wrapper {
    width: 100%;
    height: 100vh;
    overflow: hidden;
}

.video-wrapper video {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* Mobile (Make video smaller & fit properly) */
@media (max-width: 767px) {

    .video-wrapper {
        height: 55vh;         /* smaller height for phone */
    }

    .video-wrapper video {
        height: 55vh;         /* match wrapper */
        width: 100%;
        object-fit: cover;    /* clean fit */
        border-radius: 0;
    }
}

/* Popup styling */
#scrollPopup {
    position: absolute;
    bottom: 30px;
    font-size: 1.8rem;
    color: #ffffff;
    text-shadow: 0 0 10px #000;
    opacity: 0;
    animation: fadeInOut 4s ease forwards;
    pointer-events: none;
    display: none;
}

@keyframes fadeInOut {
    0% {
        opacity: 0;
        transform: translateY(10px);
    }

    20%,
    80% {
        opacity: 1;
        transform: translateY(0);
    }

    100% {
        opacity: 0;
        transform: translateY(-10px);
    }
}

/* About Section Styling */
/* 🔥 Scroll animation setup */
#about {
    opacity: 0;
    transform: translateY(50px);
    transition: opacity 0.8s ease-out, transform 0.8s ease-out;
}

#about.visible {
    opacity: 1;
    transform: translateY(0);
}

#about img {
    width: 1480px;
    height: auto;
    border-radius: 20px;
    margin-bottom: 1.9%;
    margin-top: 1.6%;
    margin-left: 5.5%;
    opacity: 0.85;
    transition: opacity 0.8s 
ease-in-out, transform 0.8s 
ease-in-out;
}

#about img:hover {
    opacity: 1;
    transform: scale(1.05);
   
}
.gallery .image-box:hover img {
  transform: scale(1.2);
}

/* Overlay fade-in */
.overlay {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.4);
  display: flex;
  justify-content: center;
  align-items: center;
  opacity: 0;
  transition: opacity 0.4s ease;
}
.image-box:hover .overlay {
  opacity: 1;
}
.overlay-text {
  color: rgba(255, 255, 255, 0);
  font-size: 2rem;
  font-weight: 600;
  letter-spacing: 2px;
  text-transform: uppercase;
}



/* --- Responsive image sizes --- */
@media (max-width: 767px) {
    #about img {
        width: 100%;
        max-width: 100%;
        margin: 10px auto;
    }
}




.project {
    margin-bottom: 20px;
}



footer {
    text-align: center;
    padding: 10px 0;
    background: #333;
    color: #fff;
}
.cr7-slider {
  display: flex;
  height: 100vh;
  width: 100%;
  background: #000;
  color: #fff;
  font-family: 'Poppins', sans-serif;
  overflow-x: hidden;
}
.slide-link {
  display: block;
  height: 100%;
  text-decoration: none;
  color: inherit;
}

.slide-link .slide {
  height: 100%;
  width: 100%;
}
.slide-full-link {
  position: absolute;
  inset: 0;
  z-index: 3;
}



.slide {
  flex: 1;
  position: relative;
  background-size: cover;
  background-position: center;
  transition: flex 0.6s ease, filter 0.5s ease;
  cursor: pointer;
  overflow: hidden;
}

.slide::after {
  content: "";
  position: absolute;
  
  background: rgba(0, 0, 0, 0.4);
  transition: background 0.5s ease;
}

.slide:hover::after {
  background: rgba(0, 0, 0, 0.6);
}

.slide:hover {
  flex: 3;
  filter: brightness(1.1);
}
@media (max-width: 600px) {

  .cr7-slider {
    height: auto; /* smaller slider height */
    overflow-x: scroll;
  }

  .slide {
    min-width: 85vw;     /* wide horizontal cards */
    height: 45vh;        /* reduce height */
    border-radius:0; /* smoother rounding */
    background-size: cover;
    background-position: center; ;
  }

  /* Make overlay text smaller */
  .slide .overlay .link {
    font-size: 16px;
    margin-top:10px ;
  }
}


.overlay {
  position: absolute;
  
  opacity: 0;
  transform: translateY(20px);
  transition: all 0.5s ease;
}

.slide:hover .overlay {
  opacity: 1;
  transform: translateY(0);
}

#thankyou {
    opacity: 0;
    transform: translateY(50px);
    transition: opacity 0.8s ease-out, transform 0.8s ease-out;
}

#thankyou.visible {
    opacity: 1;
    transform: translateY(0);
}

#thankyou img {
    width: 1200px;
    height: auto;
    border-radius: 20px;
    margin-bottom: 1.9%;
    margin-top: 1.6%;
    margin-left: 15%;
    opacity: 0.85;
    transition: opacity 0.8s 
ease-in-out, transform 0.8s 
ease-in-out;

}

#thankyou img:hover {
    opacity: 1;
    transform: scale(1.05);
   
}
@media (max-width: 768px) {
    
    #thankyou img {
        width: 100%;
        max-width: 100%;
        margin: 10px auto;
    }
}




.overlay .link {
  color: #fff;
  text-decoration: none;
  margin-top: 100%;
  font-weight: 600;
  transition: 0.3s;
}

.overlay .link:hover {
  color: #ff3f3f;
  
}



        /* Responsive design */
        @media (max-width: 1200px) {
            .skills-container {
                flex-wrap: wrap;
            }
            
            .skill-box {
                width: 45%;
            }
        }

        @media (max-width: 768px) {
            .skill-box {
                width: 100%;
                max-width: 400px;
            }
        }
/* =============================== 📱 MEDIA QUERIES FOR RESPONSIVENESS =============================== */
/* --- Large desktops (≥1200px) --- */
@media (min-width: 1200px) {
    nav .logo img {
        height: 60px;
    }

    .nav-links ul {
        margin-left: 18rem;
        gap: 3rem;
    }

    .video-wrapper video {
        width: 110%;
        height: auto;
    }

    #scrollPopup {
        font-size: 2rem;
    }
}

/* --- Laptops (992px–1199px) --- */
@media (max-width: 1199px) and (min-width: 992px) {


    .video-wrapper video {
        width: 120%;
    }

    #scrollPopup {
        font-size: 1.6rem;
    }
}

/* --- Tablets (768px–991px) --- */
@media (max-width: 991px) and (min-width: 768px) {
    

    .video-wrapper {
        width: 100%;
    }

    .video-wrapper video {
        width: 110%;
        height: auto;
    }

    #scrollPopup {
        font-size: 1.4rem;
        bottom: 20px;
    }

    section {
        margin: 10px;
        padding: 10px;
    }

    .gallery {
        grid-template-columns: repeat(2, 1fr);
    }
}

/* --- Mobile phones (≤767px) --- */
@media (max-width: 767px) {
    

    header {
        height: 100vh;
    }

    .video-wrapper {
        width: 100%;
        overflow: hidden;
    }

    .video-wrapper video {
        width: 100%;
        height: auto;
        border-radius: 0;
    }

    #scrollPopup {
        font-size: 1.2rem;
        bottom: 15px;
    }

    section {
        margin: 5px;
        padding: 10px;
    }

    h3 {
        font-size: 1.3rem;
    }

    p,
    li {
        font-size: 0.9rem;
    }

    .gallery {
        grid-template-columns: repeat(2, 1fr);
    }

    footer {
        font-size: 0.9rem;
    }
}

/* --- Small phones (≤480px) --- */
@media (max-width: 480px) {
    

    #scrollPopup {
        font-size: 1rem;
    }

    .gallery {
        grid-template-columns: repeat(1, 1fr);
    }

    footer {
        padding: 8px 0;
    }
}

/* --- Large desktops (≥1200px) --- */
@media (min-width: 1200px) {
    header {
        height: 100vh;
    }

    .video-wrapper {
        height: 100vh;
    }

    .video-wrapper video {
        width: 100%;
        height: 100%;
        object-fit: cover;
    }
}

/* --- Laptops (992px–1199px) --- */
@media (max-width: 1199px) and (min-width: 992px) {
    header {
        height: 100vh;
    }

    .video-wrapper {
        height: 100vh;
    }

    .video-wrapper video {
        width: 100%;
        height: 100%;
        object-fit: cover;
    }
}

/* --- Tablets (768px–991px) --- */
@media (max-width: 991px) and (min-width: 768px) {
    header {
        height: 90vh;
    }

    .video-wrapper {
        height: 90vh;
    }

    .video-wrapper video {
        width: 100%;
        height: 100%;
        object-fit: cover;
    }
}

/* --- Mobile phones (≤767px) --- */
@media (max-width: 767px) {
    header {
        height: 80vh;
    }

    .video-wrapper {
        height: 80vh;
    }

    .video-wrapper video {
        width: 100%;
        height: 100%;
        object-fit: cover;
    }

    #scrollPopup {
        font-size: 1.2rem;
        bottom: 20px;
    }
}

/* --- Small phones (≤480px) --- */
@media (max-width: 480px) {
    header {
        height: 75vh;
    }

    .video-wrapper {
        height: 75vh;
    }

    .video-wrapper video {
        width: 100%;
        height: 100%;
        object-fit: cover;
    }

    #scrollPopup {
        font-size: 1rem;
        bottom: 15px;
    }
}
/* =========================================================
   📱 CLEAN RESPONSIVE MEDIA QUERIES (NO DUPLICATES)
   ========================================================= */

/* ====== Large Desktops (≥1200px) ====== */
@media (min-width: 1200px) {
    nav .logo img {
        height: 60px;
    }

    .video-wrapper {
        height: 100vh;
    }

    .video-wrapper video {
        width: 100%;
        height: 100%;
        object-fit: cover;
    }

    #scrollPopup {
        font-size: 2rem;
    }
}


/* ====== Laptops (992px–1199px) ====== */
@media (max-width: 1199px) and (min-width: 992px) {

    .video-wrapper {
        height: 100vh;
    }

    .video-wrapper video {
        width: 100%;
        height: 100%;
        object-fit: cover;
    }

    #scrollPopup {
        font-size: 1.6rem;
    }
}


/* ====== Tablets (768px–991px) ====== */
@media (max-width: 991px) and (min-width: 768px) {

    .video-wrapper {
        width: 100%;
        height: 90vh;
    }

    .video-wrapper video {
        width: 100%;
        height: 100%;
        object-fit: cover;
    }

    #scrollPopup {
        font-size: 1.4rem;
        bottom: 20px;
    }

    section {
        margin: 10px;
        padding: 10px;
    }

    .gallery {
        grid-template-columns: repeat(2, 1fr);
    }
}


/* ====== Mobile Phones (≤767px) ====== */
@media (max-width: 767px) {

    header {
        height: 80vh;
    }

    .video-wrapper {
        height: 80vh;
        width: 100%;
        overflow: hidden;
    }

    .video-wrapper video {
        width: 100%;
        height: 100%;
        object-fit: cover;
        border-radius: 0;
    }

    #scrollPopup {
        font-size: 1.2rem;
        bottom: 20px;
    }

    .nav-container {
        flex-direction: column;
        gap: 1rem;
    }

    .gallery {
        grid-template-columns: repeat(2, 1fr);
    }

    footer {
        font-size: 0.9rem;
    }
}


/* ====== Small Phones (≤480px) ====== */
@media (max-width: 480px) {

    header {
        height: 75vh;
    }

    .video-wrapper {
        height: 75vh;
    }

    #scrollPopup {
        font-size: 1rem;
        bottom: 15px;
    }

    .gallery {
        grid-template-columns: repeat(1, 1fr);
    }

    footer {
        padding: 8px 0;
    }
}
