/* Global Styles */
* {
    outline: none !important;
    font-family: 'Lato', sans-serif;
}

.lora {
    font-family: 'Lora', serif;
}

.space-grotesk {
    font-family: 'Space Grotesk', sans-serif;
}

/* Text Shadow Utilities */
.text-shadow {  
    text-shadow: 1px 1px 0px rgba(0, 0, 0, 0.5);
}

.text-shadow-2 {
    text-shadow: 2px 2px 0px rgba(0, 0, 0, 1), 1px 1px 0px rgba(0, 0, 0, 1);
}

.text-shadow-3 {
    text-shadow: 3px 3px 0px rgba(0, 0, 0, 1), 2px 2px 0px rgba(0, 0, 0, 1), 1px 1px 0px rgba(0, 0, 0, 1);
}

/* Background Gradients */
.radial-gradient-top {
    background: radial-gradient(ellipse at top, #1C2647 20%, transparent 140vh),
                radial-gradient(ellipse at bottom, #090D17, transparent);
}

.radial-bg-top {
    background-image: url('../bg/gradient-bg-top.svg');
    background-size: cover;
    background-position: center top;
}

.radial-bg-center {
    background-image: url('../bg/gradient-bg-center.svg');
    background-size: cover;
    background-position: center center;
}

.radial-bg-bottom {
    background-image: url('../bg/gradient-bg-bottom.svg');
    background-size: cover;
    background-position: center bottom;
}

/* Input and Textarea Placeholders */
input::placeholder, textarea::placeholder {
    text-shadow: none;
    font-weight: 300;
    letter-spacing: 0.2px;
}

/* Bubble Animation Styles */
#bubble-container {
    display: none;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    overflow: hidden;
    z-index: 9999;
    pointer-events: none;
}

.bubble {
    position: absolute;
    opacity: 0.7;
    pointer-events: auto;
    cursor: pointer;
    transition: transform 0.2s ease-out;
    animation: slowMove 30s infinite alternate ease-in-out;
    z-index: 100;
}

.bubble:hover {
    transform: scale(1.1);
}

/* Z-index Management */
button, a, [role="button"], input, select, textarea {
    position: relative;
    z-index: 10;
}

#hero, footer, #hero > *, footer > * {
    position: relative;
    z-index: 1;
}

/* Animations */
@keyframes slowMove {
    0% {
        transform: translate(0, 0) rotate(0deg);
    }
    25% {
        transform: translate(5px, 10px) rotate(5deg);
    }
    50% {
        transform: translate(-5px, -10px) rotate(-5deg);
    }
    75% {
        transform: translate(10px, -5px) rotate(3deg);
    }
    100% {
        transform: translate(0, 0) rotate(0deg);
    }
}

@keyframes fadeInSlideDown {
    from {
        opacity: 0;
        transform: translateY(-20px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* Chat Message Styles */
#chat-dialog-scrollable a {
    text-decoration: underline;
    color: inherit;
}

#chat-dialog-scrollable a:hover {
    text-decoration: underline;
    opacity: 0.8;
}

#chat-dialog-scrollable p {
    white-space: pre-wrap;
    word-wrap: break-word;
    overflow-wrap: break-word;
    line-height: 1.2;
    display: block;
}

#chat-dialog-scrollable .message-bubble {
    display: flex;
    align-items: center;
    min-height: auto;
}

#chat-dialog-scrollable strong {
    font-weight: bold;
}

#chat-dialog-scrollable em {
    font-style: italic;
}

/* Navigation Items */
.nav-item {
    pointer-events: auto !important;
    position: relative;
    z-index: 20;
}

/* Tab System */
.tab-button.active {
    background-color: transparent !important;
    border-color: rgba(96, 165, 250, 1);
}

.tab-content {
    transition: opacity 0.3s ease-in-out;
}

/* Accordion */
.rotate-180 {
    transform: rotate(180deg) !important;
}

.accordion-content * {
    transform: none !important;
}
