html {
    scroll-behavior: smooth;
  }

  body {
            font-family: 'Inter', sans-serif;
            background-color: #000000;
            /* IMPORTANT: Replace with the path to YOUR background image */
            background: url('/images/black-screen_39.png') no-repeat center center fixed ;
            background-size: cover;
            color: #E5E7EB; /* Default light gray text */
            scroll-behavior: smooth;
            overflow-x: hidden;
        }

/* hobbie section  */
:root {
            --bg: #0b0b0f;
            --text: #e8e8ea;
            --muted: #a6a6ad;
            --card: rgba(255,255,255,0.04);
            --border: rgba(255,255,255,0.10);
            --ring1: #00e1ff;
            --ring2: #7cff6b;
            --glow: rgba(0, 225, 255, 0.25);
        }

        .hobbies-section {
            position: relative;
            isolation: isolate;
            background: var(--bg);
            color: var(--text);
            padding: 6rem min(6vw, 3rem);
            overflow: hidden;
        }

        /* Animated grid backdrop */
        .hobbies-section::before,
        .hobbies-section::after {
            content: "";
            position: absolute;
            inset: 0;
            z-index: -2;
        }
        
        /* Faint grid lines */
        .hobbies-section::before {
            background:
                repeating-linear-gradient(
                    to right,
                    rgba(255,255,255,0.05) 0px,
                    rgba(255,255,255,0.05) 1px,
                    transparent 1px,
                    transparent 32px
                ),
                repeating-linear-gradient(
                    to bottom,
                    rgba(255,255,255,0.05) 0px,
                    rgba(255,255,255,0.05) 1px,
                    transparent 1px,
                    transparent 32px
                );
            transform: perspective(600px) rotateX(40deg) translateY(-10%);
            transform-origin: top;
            filter: blur(0.2px);
            animation: gridFloat 18s linear infinite;
        }

        /* Soft radial glow */
        .hobbies-section::after {
            background:
                radial-gradient(600px 400px at 15% 20%, rgba(0,225,255,0.08), transparent 60%),
                radial-gradient(800px 500px at 85% 70%, rgba(124,255,107,0.08), transparent 65%);
            z-index: -1;
        }

        @keyframes gridFloat {
            0% { transform: perspective(600px) rotateX(40deg) translateY(-10%); }
            50% { transform: perspective(600px) rotateX(40deg) translateY(-6%); }
            100% { transform: perspective(600px) rotateX(40deg) translateY(-10%); }
        }

        .hobbies-header {
            max-width: 900px;
            margin: 0 auto 2.5rem auto;
            text-align: center;
        }
        
        .hobbies-header h2 {
            font-size: clamp(1.8rem, 2.5vw + 1rem, 3rem);
            font-weight: 700;
            letter-spacing: 0.6px;
            margin: 0 0 0.4rem 0;
            background: linear-gradient(90deg, var(--ring1), var(--ring2));
            -webkit-background-clip: text;
            background-clip: text;
            color: transparent;
        }
        
        .hobbies-subtitle {
            margin: 0;
            color: var(--muted);
            font-size: clamp(0.95rem, 0.7vw + 0.6rem, 1.1rem);
        }

        .hobby-grid {
            display: grid;
            grid-template-columns: repeat(12, 1fr);
            gap: clamp(1rem, 1.5vw, 1.4rem);
            max-width: 1100px;
            margin: 2rem auto 0 auto;
        }

        .hobby-card {
            position: relative;
            grid-column: span 12;
            background: var(--card);
            border: 1px solid var(--border);
            border-radius: 16px;
            padding: 1.25rem 1.25rem 1.4rem;
            overflow: hidden;
            transform: translateY(12px) scale(0.98);
            opacity: 0;
            transition: transform 600ms cubic-bezier(.2,.8,.2,1), opacity 600ms;
            will-change: transform, opacity;
        }
        
        /* Responsive spans */
        @media (min-width: 540px) {
            .hobby-card { grid-column: span 6; }
        }
        @media (min-width: 900px) {
            .hobby-card { grid-column: span 3; }
        }

        /* Animated gradient border */
        .card-border {
            pointer-events: none;
            position: absolute;
            inset: -1px;
            border-radius: 16px;
            padding: 1px;
            background: linear-gradient(120deg, var(--ring1), var(--ring2), var(--ring1));
            background-size: 200% 200%;
            -webkit-mask:
                linear-gradient(#000 0 0) content-box,
                linear-gradient(#000 0 0);
            -webkit-mask-composite: xor;
            mask-composite: exclude;
            animation: borderShift 6s linear infinite;
            opacity: 0.9;
        }
        
        @keyframes borderShift {
            0% { background-position: 0% 50%; }
            50% { background-position: 100% 50%; }
            100% { background-position: 0% 50%; }
        }

        /* Soft glow that follows hover */
        .card-glow {
            position: absolute;
            inset: -40% -40%;
            background: radial-gradient(400px 280px at var(--mx,50%) var(--my,50%), var(--glow), transparent 60%);
            opacity: 0;
            transition: opacity 300ms ease-out;
            pointer-events: none;
            filter: blur(18px);
        }

        .hobby-card:hover .card-glow { opacity: 1; }

        .hobby-card.in-view {
            opacity: 1;
            transform: translateY(0) scale(1);
            transition-delay: calc(var(--delay, 0) * 60ms);
        }

        .card-content {
            position: relative;
            z-index: 1;
        }

        .icon {
            width: 36px;
            height: 36px;
            display: block;
            margin-bottom: 0.75rem;
            fill: var(--ring1);
            filter: drop-shadow(0 0 8px rgba(0,225,255,0.15));
        }

        .hobby-card h3 {
            margin: 0 0 0.35rem 0;
            font-size: 1.05rem;
            font-weight: 700;
            letter-spacing: 0.4px;
        }
        
        .hobby-card p {
            margin: 0;
            color: var(--muted);
            line-height: 1.5;
            font-size: 0.95rem;
        }

        /* Hover lift & subtle tilt */
        .hobby-card:hover {
            transform: translateY(-2px) scale(1.01);
        }

        /* Reduced motion support */
        @media (prefers-reduced-motion: reduce) {
            .hobbies-section::before,
            .card-border,
            .hobby-card,
            .hobby-card:hover,
            .card-glow {
                animation: none !important;
                transition: none !important;
            }
        }

        /* Smooth hide by translating header out of view */
.header--hidden {
  transform: translateY(-100%);
}

        /* Horizontal scroll */
        /* The element that gets pinned to the top */
        .gallery-pinner {
            position: sticky;
            top: 0;
            height: 100vh;
            width: 100%;
            overflow: hidden;
           /* Crucial to hide the off-screen panels */
            
        }

        /* The track that moves horizontally */
        .gallery-track {
            display: flex;
            align-items: center; /* Vertically center the panels */
            height: 100%;
            /* Add a gap between the panels */
            gap: 1rem; /* 32px */
            /* Add padding so the first/last panels aren't flush against the viewport edges */
            padding: 0 1rem;
        }
        @media (min-width: 768px) { /* md breakpoint */
    .gallery-track {
        gap: 2rem; /* 32px */
        padding: 0 2rem; /* 32px */
    }
}

        /* Styling for individual panels */
        .gallery-panel {
   /* Adjust height for a pleasing aspect ratio */
            flex-shrink: 0; /* Prevents panels from shrinking */
            border-radius: 1rem; /* Rounded corners for the "box" */
            overflow: hidden; /* Ensures the image inside respects the rounded corners */
            background-color: #374151; /* A fallback background color */
        }



        /* --- KEY CHANGE HERE --- */
        /* We style the image directly to control its size and appearance */
        .gallery-image {
            height: 80vh; /* This defines the size of the certificate */
            width: auto;   /* Width will adjust to maintain aspect ratio */
            border-radius: 1rem; /* Rounded corners are applied directly to the image */
            display: block; /* Ensures proper block-level behavior */
        }
        /* Custom class for the semi-transparent "glass" cards */
        .glass-card {
            background-color: rgba(17, 24, 39, 0.5); /* bg-gray-900 with 50% opacity */
            backdrop-filter: blur(10px);
            border: 1px solid rgba(55, 65, 81, 0.7); /* border-gray-700 with 70% opacity */
        }

        /* Custom styles for the scroll animation */
        .scroll-reveal {
            opacity: 0;
            transform: translateY(40px);
            transition: opacity 0.8s ease-out, transform 0.8s ease-out;
        }
        .scroll-reveal.is-visible {
            opacity: 1;
            transform: translateY(0);
        }

  .scroll-reveal {
    opacity: 0;
    transform: translateY(50px);
    transition: all 0.8s ease-out;
  }

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

  .landing-effect {
    animation: landingFade 1.2s ease-out forwards;
  }

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

        /* Class to apply the animation. Duration increased for more items. */
        .animate-marquee {
            animation: scroll 75s linear infinite;
        }

  @keyframes landingFade {
    0% {
      opacity: 0;
      transform: translateY(30px);
    }
    100% {
      opacity: 1;
      transform: translateY(0);
    }
  }
      body {
        font-family: "Inter", sans-serif;
      }
      .hex-card {
        width: 120px;
        height: 104px;
        background-color: #f0f2f6; /* dark slate */
        color: rgb(0, 0, 0);
        clip-path: polygon(50% 0%, 93% 25%, 93% 75%, 50% 100%, 7% 75%, 7% 25%);
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        transition: transform 0.3s ease, box-shadow 0.3s ease;
        cursor: pointer;
      }

              .custom-role-line {
            background: linear-gradient(90deg, #8A2BE2, #FF1493);
            -webkit-background-clip: text;
            -webkit-text-fill-color: transparent;
            font-weight: bold;
        }

      .hex-card:hover {
        transform: scale(1.05);
        box-shadow: 0 10px 25px rgba(255, 0, 0, 0.993);
      }

      .hex-card .icon {
        font-size: 1.5rem;
        margin-bottom: 0.2rem;
      }

      .hex-card p {
        font-size: 0.75rem;
        font-weight: 600;
        letter-spacing: 0.05em;
      }

      @media (max-width: 640px) {
        .hex-card {
          width: 90px;
          height: 80px;
        }
        .hex-card .icon {
          font-size: 1.2rem;
        }
        .hex-card p {
          font-size: 0.65rem;
        }
      }

      .stroke-text {
        -webkit-text-stroke: 1px white;
      }

      .custom-role-line {
        font-family: "Raleway", sans-serif;
        font-weight: 800;
        font-size: 25px;
        color: #909090;
        letter-spacing: 0;
      }
      @keyframes fade-in {
        from {
          opacity: 0;
          transform: translateY(10px);
        }
        to {
          opacity: 1;
          transform: translateY(0);
        }
      }

      @keyframes bounce-slow {
        0%,
        100% {
          transform: translateY(0);
        }
        50% {
          transform: translateY(-4px);
        }
      }

      .animate-fade-in {
        animation: fade-in 0.6s ease-out forwards;
      }

      .hover\:animate-bounce-slow:hover {
        animation: bounce-slow 0.4s ease-out;
      }
      @keyframes slideIn {
        0% {
          transform: translateX(-100%);
          opacity: 0;
        }
        100% {
          transform: translateX(0);
          opacity: 1;
        }
      }

      .animate-slideIn {
        animation: slideIn 0.8s ease-out forwards;
      }
      /* marquie */
      @keyframes marquee {
        0% {
          transform: translateX(0%);
        }
        100% {
          transform: translateX(-50%);
        }
      }

      .animate-marquee {
        animation: scroll 75s linear infinite;
        display: flex;
      }
      .gradient-button {
    background-image: linear-gradient(30deg, #0400ff, #4ce3f7);
    background-size: 100% auto;
    background-repeat: no-repeat;
    display: inline-block;
  }

  .gradient-button:hover {
    background-position: right center;
    background-size: 200% auto;
    animation: pulse512 1.5s infinite;
  }

  @keyframes pulse512 {
    0% {
      box-shadow: 0 0 0 0 #05bada66;
    }
    70% {
      box-shadow: 0 0 0 10px rgba(218, 103, 68, 0);
    }
    100% {
      box-shadow: 0 0 0 0 rgba(218, 103, 68, 0);
    }
  }
  .wrapper {
    display : flex;
    justify-content: flex-start;
    list-style: none;
    height: 120px;
    width: 100%;
    padding-top: 40px;
  }

  .wrapper .icon {
    position: relative;
    background: #fff;
    border-radius: 50%;
    margin: 10px;
    width: 50px;
    height: 50px;
    font-size: 18px;
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: column;
    box-shadow: 0 10px 10px rgba(0, 0, 0, 0.1);
    cursor: pointer;
    transition: all 0.2s cubic-bezier(0.68, -0.55, 0.265, 1.55);
  }

  .wrapper .tooltip {
    position: absolute;
    top: 0;
    font-size: 14px;
    background: #fff;
    color: #fff;
    padding: 5px 8px;
    border-radius: 5px;
    box-shadow: 0 10px 10px rgba(0, 0, 0, 0.1);
    opacity: 0;
    pointer-events: none;
    transition: all 0.3s cubic-bezier(0.68, -0.55, 0.265, 1.55);
  }

  .wrapper .tooltip::before {
    position: absolute;
    content: "";
    height: 8px;
    width: 8px;
    background: #fff;
    bottom: -3px;
    left: 50%;
    transform: translate(-50%) rotate(45deg);
    transition: all 0.3s cubic-bezier(0.68, -0.55, 0.265, 1.55);
  }

  .wrapper .icon:hover .tooltip {
    top: -45px;
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
  }

  .wrapper .icon:hover span,
  .wrapper .icon:hover .tooltip {
    text-shadow: 0px -1px 0px rgba(0, 0, 0, 0.1);
  }

  /* Hover styles per icon */
  .wrapper .linkedin:hover,
  .wrapper .linkedin:hover .tooltip,
  .wrapper .linkedin:hover .tooltip::before {
    background: #0077b5;
    color: #fff;
  }

  .wrapper .github:hover,
  .wrapper .github:hover .tooltip,
  .wrapper .github:hover .tooltip::before {
    background: #333;
    color: #fff;
  }

  .wrapper .instagram:hover,
  .wrapper .instagram:hover .tooltip,
  .wrapper .instagram:hover .tooltip::before {
    background: #e4405f;
    color: #fff;
  }

  /* Optional: SVG transition */
  .wrapper .icon svg {
    transition: fill 0.3s ease;
  }

  .wrapper .linkedin:hover svg,
  .wrapper .github:hover svg,
  .wrapper .instagram:hover svg {
    fill: #fff;
  }

   .card {
            /* FIX: Added 'transform' to the transition to ensure smooth centering animation. */
            transition: top 0.4s ease-in-out, left 0.4s ease-in-out, width 0.4s ease-in-out, height 0.4s ease-in-out, transform 0.4s ease-in-out;
        }

        .card.selected {
            position: fixed;
            top: 50%;
            left: 50%;
            width: 90vw;
            height: 80vh;
            max-width: 600px;
            max-height: 700px;
            transform: translate(-50%, -50%) scale(1);
            z-index: 50;
            cursor: default;
            pointer-events: auto;
            overflow: hidden;
             transition: all 0.4s ease;
             border-radius: 1rem;
        }

        .selected-content {
            position: absolute;
            bottom: 0;
            left: 0;
            right: 0;
            padding: 2rem;
            color: white;
            z-index: 70;
            opacity: 0;
            transform: translateY(20px);
            transition: opacity 0.4s ease-out 0.2s, transform 0.4s ease-out 0.2s;
        }

        .card.selected .selected-content {
            opacity: 1;
            transform: translateY(0);
        }
        
        .overlay {
            position: fixed;
            inset: 0;
            width: 100%;
            height: 100%;
            background-color: black;
            opacity: 0;
            z-index: 40;
            pointer-events: none;
            transition: opacity 0.4s ease-in-out;
        }

        .overlay.active {
            opacity: 0.7;
            pointer-events: auto;
        }
        
        .selected-content-bg {
            position: absolute;
            inset: 0;
            width: 100%;
            height: 100%;
            background: linear-gradient(to top, rgba(0,0,0,0.8), transparent);
            z-index: 60;
            opacity: 0;
            transition: opacity 0.3s ease-in-out;
        }
        
        .card.selected .selected-content-bg {
            opacity: 1;
        }

            .glass-card {
            background-color: rgba(17, 24, 39, 0.6);
            backdrop-filter: blur(12px);
            border: 1px solid rgba(55, 65, 81, 0.7);
        }
        .scroll-reveal {
            opacity: 0;
            transform: translateY(40px);
            transition: opacity 0.8s ease-out, transform 0.8s ease-out;
        }
        .scroll-reveal.is-visible {
            opacity: 1;
            transform: translateY(0);
        }

        /* Ensure the Vanta canvas never triggers horizontal scroll */
#vanta-globe, #vanta-globe > canvas {
  width: 100% !important;
  max-width: 100% !important;
  display: block;
}

/* Optional: tone down default list styles if your .wrapper relies on custom visuals */
.wrapper { list-style: none; padding: 0; margin: 0; }

/* If your gradient-button is custom CSS, keep it responsive */
.gradient-button { background: linear-gradient(90deg, #7c3aed, #1a73e8); }

/* Make sure any absolutely positioned shapes don't overflow */
.landing-effect { position: relative; }
