body {
    background-color: #000; /* Black background for contrast */
    color: #fff;  
    font-family: sans-serif;
    display: flex;
    flex-direction: column; 
    align-items: center;
    justify-content: center;
    min-height: 100vh; 
    margin: 0;
    cursor: none; /* Hide the default cursor */
}

html body { /* Increased specificity */
    cursor: none;
}

.bubble.cursor { /* Special style for cursor bubble */
    z-index: 1;      /* Cursor bubble remains below text */
    animation: none; /* Disable the bubble's animation */
    opacity: 1;      /* Always visible */
} 

.banner {
    position: relative; /* Allow for child positioning */
    text-align: center;
    margin-bottom: 30px;
    overflow: hidden;   /* Contains bubbles to the image area */
}

.layer { 
    position: absolute;
    top: 0;
    left: 0;
    width: 100%; 
    z-index: 3;      /* Cursor bubble remains below layer */
    mix-blend-mode: difference; 
} 

.buttons {
    position: absolute;
    bottom: 30px;         /* Distance from the bottom */
    left: 50%;
    transform: translateX(-50%); /* Centers horizontally */
    display: flex;           /* Keeps buttons inline */
    gap: 15px;               /* Button spacing */
}

.banner-text {
    position: absolute; /* Changed from relative */
    bottom: 20px; 
    left: 20px;  
    z-index: 2;         
    font-family: 'Futura', sans-serif;
    color: inherit;   /* Match surrounding text color */
    text-decoration: none;  /* Remove any underline */
    cursor: default;        /* Ensures normal cursor appearance */
}

.banner img {
    max-width: 100%;
    opacity: 1.0; /* Creates a slightly faded image for layering*/
}

.button {
    background-color: #663399; /* Vibrant purple */
    border: none;
    padding: 10px 25px;
    color: #fff;
    border-radius: 5px;
    text-decoration: none;
    transition: background-color 0.3s; /* Smooth color transition */
    z-index: 3; /* Ensures buttons are always on top */
}

.button:hover {
    background-color: #804dbe; /* Slightly darker on hover */
}

.inverse-button {
    background-color: transparent;
    border: 2px solid #663399;
    z-index: 3; /* Ensures buttons are always on top */
}

.inverse-button:hover {
    background-color: #663399;
    color: #fff;
}

.bubble {
    mix-blend-mode: hard-light; /* Try this initially */
    position: absolute;
    border-radius: 50%;
    background-image: radial-gradient(circle at center, rgba(102, 51, 153, 0.9) 0%, rgba(102, 51, 153, 0) 70%);
    opacity: 0; /* Initially hidden */
    animation: fadeAndFloat 2s linear forwards;
    pointer-events: none; /* Bubbles won't block mouse clicks */
}

@keyframes fadeAndFloat {
    0% { opacity: 0; }
    50% { opacity: 1; } 
    100% { 
        opacity: 0;
        transform: translateY(-50px) scale(1.5); /* Float upwards, grow, fade */
    }
}