@import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:wght@400;500;700&display=swap');
@import url('https://fonts.cdnfonts.com/css/samarkan');

body {
font-family: "IBM Plex Sans", sans-serif;
background-color: #f5f5f5;
}

.name{
font-family: 'Samarkan', sans-serif;
}

.nav-back {
background-color: black;
}

/* Custom button styling */
.theme-toggle-btn {
--bs-btn-padding-y: 0.5rem;
--bs-btn-padding-x: 0.5rem;
width: 2rem;
height: 2rem;
display: inline-flex;
align-items: center;
justify-content: center;
background-color: var(--bs-body-bg);
border-color: var(--bs-border-color);
color: var(--bs-body-color);
transition: all 0.2s ease-in-out;

}

.theme-toggle-btn:hover {
background-color: var(--bs-tertiary-bg);
color: var(--bs-secondary-color);
}

.theme-toggle-btn:active {
transform: scale(0.96);
}

/* Icon visibility based on theme */
html[data-bs-theme="dark"] .moon-icon {
display: none !important;
}

html[data-bs-theme="dark"] .sun-icon {
display: block !important;
}

.form-control-dark {
border-radius: 50px;
padding-left: 1rem;
}

.navbar-toggler {
border: none;
}

.navbar-toggler-icon {
width: 1.2em;
height: 1.2em;
}

.navbar-brand img {
margin-right: 0.5rem;
}

.navbar-nav .nav-link {
padding: 0.5rem 1rem;
}

.dots {

    --dot-bg: black;
    --dot-color: #3d3d3da0;
    --dot-size: 1.5px;
    --dot-space: 11px;
    --cursor-x: -100px;
    --cursor-y: -100px;

    background:
      linear-gradient(90deg, var(--dot-bg) calc(var(--dot-space) - var(--dot-size)), transparent 1%) center / var(--dot-space) var(--dot-space),
      linear-gradient(var(--dot-bg) calc(var(--dot-space) - var(--dot-size)), transparent 1%) center / var(--dot-space) var(--dot-space),
      var(--dot-color);

    /* height: 20vh; */
    /* margin: 0; */
    /* position: relative;
    overflow: hidden; */
}

/* Default (desktop and up) */
.stripped {
  background: repeating-linear-gradient(
    135deg,
    black,
    black 5px,
    #444 4.6px,
    #444 5.885px
  );
}

/* Laptop (up to 1080px) */
@media (max-width: 1080px) {
  .stripped {
    background: repeating-linear-gradient(
      135deg,
      black,
      black 5px,
      #444 4.6px,
      #444 5.566px
    );
  }
}




.fixed-text {
  display: block;
  font-size: 1.2rem;
}
.typing {
  display: block;        /* puts it on the next line */
  text-align: center;    /* center under "I am" */
  overflow: hidden;
  position: relative;
  
}

.typing span {
  display: block;
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%) translateY(100%);
  opacity: 0;
  transition: all 0.6s ease;
}

.typing span.active {
  opacity: 1;
  transform: translateX(-50%) translateY(0);
  position: relative;
}

.typing span.exit {
  opacity: 0;
  transform: translateX(-50%) translateY(-100%);
}


.icon-box {
  width: 28px;
  height: 28px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 0.5rem;
  background-color: rgb(20, 19, 19);
}

.icon-box .material-symbols-outlined {
  font-size: 18px;   /* control icon size here */
  color: #6c757d;    /* muted color */
}

.text-muted-foreground {
  color: #6c757d;
}

.text-balance {
  line-height: 1.5;
}

.profile {
  display: flex;
  justify-content: center;
  align-items: center;
  
}
.tech-icon {
  width: 40px;   /* set desired width */
  height: 40px;  /* set desired height */
  object-fit: contain; /* keeps aspect ratio without stretching */
}


a[data-title] {
  position: relative;
  display: inline-block;
  margin: 0;
  padding: 0;
  text-decoration: none;
}

/* custom tooltip */
a[data-title]:hover::after {
  content: attr(data-title);
  position: absolute;
  top: -32px;
  left: 50%;
  transform: translateX(-50%);
  background: #333;
  color: #fff;
  padding: 4px 8px;
  border-radius: 4px;
  white-space: nowrap;
  font-size: 13px;
  z-index: 9999;
  opacity: 0;
  animation: fadeIn 0.3s forwards;
}

/* arrow */
a[data-title]:hover::before {
  content: "";
  position: absolute;
  top: -8px;
  left: 50%;
  transform: translateX(-50%);
  border-width: 10px;
  border-style: solid;
  border-color: #333 transparent transparent transparent;
  z-index: 9999;
  opacity: 0;
  animation: fadeIn 0.3s forwards;
}

@keyframes fadeIn {
  to { opacity: 1; }
}

.custom-card {
  background-color: #1a1d29;
  border: 1px solid rgba(0, 0, 0, 0.1);
  border-radius: 1rem;
  transition: transform 0.2s, background 0.2s;
  position: relative;
  overflow: hidden;
}
.custom-card:hover {
  background-color: #212534;
  transform: translateY(-4px);
}
.custom-card img {
  border-radius: 0.75rem;
  width: 100%;
  height: auto;
}
.card-title {
  font-size: 1rem;
  font-weight: 600;
}
.card-text {
  font-size: 0.85rem;
  color: #9ca3af;
}
/* Icon button */
.card-action {
  position: absolute;
  top: 10px;
  right: 10px;
  width: 28px;
  height: 28px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  border: 1px solid rgba(255,255,255,0.2);
  background: rgba(0,0,0,0.3);
  color: rgba(255,255,255,0.8);
  cursor: pointer;
  z-index: 20;
  transition: background 0.2s, color 0.2s;
}

.card-action:hover {
  background: rgba(255,255,255,0.15);
  color: #fff;
}
.a-action {
  color: inherit; display: flex; align-items: center; justify-content: center; width: 100%; height: 100%;
}


.vertical-line-thick {
  border-right: 1px solid #333;
}
.horizontal-line-thick {
  border-top: 1px solid #333;
}


/* ----------------------------------Carousel-------------------------------- */
  :root {
  --items: 8;
  --carousel-duration: 14s;
  --carousel-width: min(95vw, 1200px);
  --carousel-item-width: 10em;
  --carousel-item-height: 10.5em;
  --carousel-item-gap: 1.25rem;
}

/* Carousel container */
.carousel-container {
  position: relative;
  width: var(--carousel-width);
  height: var(--carousel-item-height);
  overflow: hidden;
  margin: 0 auto;
  /* Fade effect on sides */
  -webkit-mask-image: linear-gradient(to right, transparent, white 10%, white 90%, transparent);
  -webkit-mask-repeat: no-repeat;
  -webkit-mask-size: cover;
  mask-image: linear-gradient(to right, transparent, white 10%, white 90%, transparent);
  mask-repeat: no-repeat;
  mask-size: cover;
}

/* Hover pauses all animations */
.carousel-container:hover .carousel-card {
  animation-play-state: paused;
}

/* Individual carousel cards */
.carousel-card {
  position: absolute;
  top: 0;
  left: calc(100% + var(--carousel-item-gap)); /* Start off-screen right */
  width: var(--carousel-item-width);
  height: auto; /* Let content determine height */
  min-height: var(--carousel-item-height); /* Use as minimum */
  
  background-color: #1a1d29;
  border: 1px solid rgba(255,255,255,0.1);
  border-radius: 1rem;
  transition: transform 0.2s, background 0.2s;
  overflow: hidden;
  
  /* Animation properties */
  will-change: transform;
  animation-name: marquee;
  animation-duration: var(--carousel-duration);
  animation-timing-function: linear;
  animation-iteration-count: infinite;
  height: 10px !important;
}

.carousel-card:hover {
  background-color: #212534;
  /* transform: translateY(-4px); */
}

/* Individual card delays for staggered effect */
.carousel-card:nth-child(1) {
  animation-delay: calc(var(--carousel-duration) / var(--items) * 0 * -1);
}
.carousel-card:nth-child(2) {
  animation-delay: calc(var(--carousel-duration) / var(--items) * 1 * -1);
}
.carousel-card:nth-child(3) {
  animation-delay: calc(var(--carousel-duration) / var(--items) * 2 * -1);
}
.carousel-card:nth-child(4) {
  animation-delay: calc(var(--carousel-duration) / var(--items) * 3 * -1);
}
.carousel-card:nth-child(5) {
  animation-delay: calc(var(--carousel-duration) / var(--items) * 4 * -1);
}
.carousel-card:nth-child(6) {
  animation-delay: calc(var(--carousel-duration) / var(--items) * 5 * -1);
}
.carousel-card:nth-child(7) {
  animation-delay: calc(var(--carousel-duration) / var(--items) * 6 * -1);
}
.carousel-card:nth-child(8) {
  animation-delay: calc(var(--carousel-duration) / var(--items) * 7 * -1);
}

.carousel-card:nth-child(9) {
  animation-delay: calc(var(--carousel-duration) / var(--items) * 8 * -1);
}
.carousel-card:nth-child(10) {
  animation-delay: calc(var(--carousel-duration) / var(--items) * 9 * -1);
}

/* Animation keyframes */
@keyframes marquee {
  100% {
    transform: translateX(
      calc((var(--items) * (var(--carousel-item-width) + var(--carousel-item-gap))) * -1)
    );
  }
}

/* Card image responsive height */
.carousel-card img {
    border-radius: 0.75rem;
  width: 100%;
  height: auto;
}

/* Contact card */
    .contact-card {
      background-color: #272b3195;
      border-radius: 1rem;
      padding: 2rem;
      box-shadow: 0 8px 20px rgba(0,0,0,0.5);
      width: 100%;
      max-width: 600px;
    }
    .form-label {
      font-weight: 600;
      color: #e5e5e5;
    }
    .form-control {
      background-color: #080808;
      border: 1px solid #555;
      color: #fff;
    }
    .form-control:focus {
      background-color: #272b31;
      border-color: #777;
      box-shadow: 0 0 0 2px #888;
      color: #fff;
    }
      .form-control::placeholder {
    color: #bbb;   /* <-- softer white placeholder */
    opacity: 1;    /* ensures color applies fully */
  }
    .btn-custom {
      background: #000;
      border: 1px solid #666;
      color: #fff;
      font-weight: 600;
      padding: 0.6rem 2rem;
      border-radius: 0.5rem;
      transition: all 0.3s ease;
    }
    .btn-custom:hover {
      background: #272b31;
      border-color: #888;
      transform: translateY(-2px);
    }

.icon-border {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 35px;
  height: 35px;
  border-radius: 20%;
  border: 1px solid #444;
}