/* Custom CSS for Advanced Animations */

/* Bubble Background Animation */
.bubble {
    position: absolute;
    border-radius: 50%;
    background: radial-gradient(circle at 30% 30%, rgba(212, 175, 55, 0.2), rgba(212, 175, 55, 0.05));
    backdrop-filter: blur(5px);
    pointer-events: none;
    animation: bubble-float 15s infinite linear;
    z-index: 0;
}

@keyframes bubble-float {
    0% {
        transform: translateY(100vh) scale(0);
        opacity: 0;
    }

    10% {
        opacity: 0.5;
    }

    90% {
        opacity: 0.5;
    }

    100% {
        transform: translateY(-20vh) scale(1.5);
        opacity: 0;
    }
}

/* Scroll Driven Background Color Change */
.bg-transition {
    transition: background-color 1s cubic-bezier(0.4, 0, 0.2, 1);
}

/* Image Hover & Spread Effects */
.image-spread-container {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1rem;
    padding: 2rem;
}

@media (min-width: 768px) {
    .image-spread-container {
        grid-template-columns: repeat(3, 1fr);
    }
}

.image-spread-item {
    transition: all 0.7s cubic-bezier(0.25, 1, 0.5, 1);
    cursor: pointer;
    overflow: hidden;
    position: relative;
}

.image-spread-item:hover {
    flex-grow: 1.5;
    transform: scale(1.05);
    z-index: 10;
}

/* Profile hover effect */
.profile-card {
    position: relative;
    overflow: hidden;
    transition: all 0.5s ease;
}

.profile-card:hover .profile-overlay {
    height: 100%;
}

/* 3D Text Marquee Perspective */
.marquee-3d-wrap {
    perspective: 1000px;
    transform-style: preserve-3d;
}

/* Scroll-driven zoom */
.scroll-zoom {
    transition: transform 0.1s ease-out;
}

/* Tourist Style Card */
.tourist-card {
    height: 400px;
    transition: transform 0.5s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}

.tourist-card:hover {
    transform: translateY(-20px);
}

/* Modal Animations */
.modal-active {
    opacity: 1 !important;
    pointer-events: auto !important;
}

.modal-active #modal-card {
    transform: scale(1);
}