  /* Hide default scrollbar for Chrome, Safari and Opera */
::-webkit-scrollbar {
    display: none;
}

/* Hide default scrollbar for IE, Edge and Firefox */
html {
    -ms-overflow-style: none;  /* IE and Edge */
    scrollbar-width: none;  /* Firefox */
    scroll-behavior: smooth;
}

 body {
      opacity: 0;
      transition: opacity 0.5s ease-in-out;
    }

.bg-aurora {
    background: linear-gradient(135deg, #020617 0%, #020617 60%, #1e3a8a 100%);
}

.bg-ice-glow {
    background-color: #020617;
    background-image: radial-gradient(circle at center, rgba(56, 189, 248, 0.1) 0%, #020617 70%);
}

/* Custom Floating Scrollbar */
#custom-scrollbar-thumb {
    position: fixed;
    right: 4px;
    width: 6px;
    background: linear-gradient(to bottom, #3b82f6, #22d3ee); /* Blue to Cyan gradient */
    border-radius: 20px;
    z-index: 9999;
    opacity: 0;
    transition: opacity 0.5s ease-in-out;
    pointer-events: none; /* User can't click it, it's just visual */
}


        body {
            scroll-behavior: smooth;
        }

        /* Custom Bounce Animation */
        @keyframes customBounce {
            0% { transform: translateY(-20px) scale(0.95); opacity: 0; }
            60% { transform: translateY(10px) scale(1.02); opacity: 1; }
            100% { transform: translateY(0) scale(1); opacity: 1; }
        }
        .animate-bounce-dropdown {
            animation: customBounce 0.5s cubic-bezier(0.34, 1.56, 0.64, 1) forwards;
        }

        @keyframes fadeInUp {
    from {
        opacity: 0;
        transform: translateY(30px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes slowZoom {
    from { transform: scale(1); }
    to { transform: scale(1.1); }
}

.animate-fade-in-up {
    opacity: 0;
    animation: fadeInUp 0.8s cubic-bezier(0.22, 1, 0.36, 1) forwards;
}

.animate-slow-zoom {
    animation: slowZoom 20s linear infinite alternate;
}

.reveal {
    opacity: 0;
    transform: translateY(30px);
    transition: all 0.8s cubic-bezier(0.22, 1, 0.36, 1);
}

.reveal.active {
    opacity: 1;
    transform: translateY(0);
}

/* Staggered delay for grid items */
.grid > .reveal:nth-child(2) { transition-delay: 100ms; }
.grid > .reveal:nth-child(3) { transition-delay: 200ms; }
.grid > .reveal:nth-child(4) { transition-delay: 300ms; }

/* Hide default cursor on desktop */
@media (min-width: 1024px) {
    body {
        cursor: none;
    }
    a, button, .group {
        cursor: none;
    }
}

/* Expansion effect when hovering over interactive elements */
.cursor-hover {
    transform: translate(-50%, -50%) scale(2);
    background-color: rgba(59, 130, 246, 0.1);
    border-color: rgba(59, 130, 246, 0.8);
}

@keyframes fade-in-up {
    from {
        opacity: 0;
        transform: translateY(20px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.animate-fade-up {
    animation: fade-in-up 0.8s ease-out forwards;
}

/* CHATBOT SECTION */
    .chatbot-toggler {
         position: fixed;
        right: 40px;
        bottom: 35px;
        height: 50px;
        width: 50px;
        border: none;
        outline: none;
        display: flex;
        align-items: center;
        justify-content: center;
        background: #e08c4e;
        color: #0a192f;
        z-index: 999;
        border-radius: 50%;
        transition: all 0.2s ease;
    }

    .show-chatbot .chatbot-toggler {
        transform: rotate(90deg);
    }

    .chatbot-toggler i {
        position: absolute;
        font-size: 1.7rem;
    }

    .show-chatbot .chatbot-toggler i:first-child,
    .chatbot-toggler i:last-child {
        opacity: 0;
    }

     .show-chatbot  .chatbot-toggler i:last-child {
        opacity: 1;
    }


    .chatbot {
        position: fixed;
        right: 40px;
        bottom: 100px;
        width: 420px;
        background: linear-gradient(135deg, #020617 0%, #1e3a8a 60%, #020617 100%);
        z-index: 99;
        transform: scale(0.5);
        opacity: 0;
        pointer-events: none;
        overflow: hidden;
        transform-origin: bottom right;
        transition: all 0.3s ease;
    }

    .show-chatbot .chatbot {
        transform: scale(1);
        opacity: 1;
        pointer-events: auto;
    }

   
    .chatbot .header {
        padding: 16px 0;
        text-align: center;
        border-bottom-right-radius: 5px;
        border-bottom-left-radius: 5px;
        position: relative;
    }

    .chatbot .header h2 {
        color: #e08c4e;
        font-size: 1.4rem;
        font-weight: 500;
    }

    .chatbot .header i {
        position: absolute;
        right: 20px;
        top: 50%;
        color: #e08c4e;
        cursor: pointer;
        transform: translateY(-50%);
        font-size: 1.4rem;
        display: none;
    }

    .chatbot .chatbox {
        height: 510px;
        overflow-y: auto;
        padding: 25px 20px 100px;
    }

    .chatbot .chat {
        display: flex;
    }

    .chatbot .incoming i {
        height: 32px;
        width: 32px;
        font-size: 1.8rem;
       color: #e08c4e;
       margin: 0 7px 7px 0;
        
    }

    .chatbot .outgoing {
        margin: 20px 0;
        justify-content: flex-end;
    }

    .chatbot .chat p {
        border-radius: 10px 10px 0 10px;
        max-width: 75%;
        white-space: pre-wrap;
        padding: 12px 16px;
        color: #e08c4e;
        font-size: 0.95rem;
    }

    .chatbot .chat p.error {
       color: #721c24;
       background: #f8d7da;
    }

    .chatbot .outgoing p {
        border: 1px solid #e08c4e;
        background: #181818;
    }

    .chatbot .incoming p {
        color: #1a1a1a;
        border-radius: 0px 10px 10px 10px;
        background: #e08c4e;
    }

    .chatbot .chat-input {
        position: absolute;
        bottom: 0;
        width: 100%;
        display: flex;
        gap: 5px;
        background: #f0f0f0;
        border-top: 1px solid #e08c4e;
        padding: 5px 20px;
    }

    .chat-input textarea {
        height: 55px;
        width: 100%;
        border: none;
        outline: none;
        font-size: 1rem;
        background: transparent;
        resize: none;
        padding: 15px 15px 16px 0;
        color: #0a192f;
        max-height: 180px;
    }

    .chat-input i {
        align-self: flex-end;
        height: 55px;
        line-height: 55px;
        color: #e08c4e;
        cursor: pointer;
        font-size: 1.25rem;
        padding-right: 5px;
        visibility: hidden;
    }

    .chat-input textarea:valid ~ i {
        visibility: visible;
    }
    

    @media (max-width: 500px) {
        .chatbot {
            right: 0;
            bottom: 0;
            width: 100%;
            height: 100%;
            border-radius: 0;
        }

           .chatbot .chatbox {
            height: 90%;
        }

        /* 1. When the chatbot is OPEN (show-chatbot class is active) */
        body.show-chatbot .chatbot-toggler {
            background: transparent !important; /* Removes the yellow circle */
            box-shadow: none !important;        /* Removes the circle shadow */
        }

        /* 2. Keep the first icon (comment) visible and hide the last icon (x-mark) */
        body.show-chatbot .chatbot-toggler i:first-child {
            display: block; /* Ensures the comment icon stays */
        }

        body.show-chatbot .chatbot-toggler i:last-child {
            display: none;  /* Specifically removes the X icon */
        }

        .chatbot .header i  {
            display: block;
        }
    }
