/* ===== SECTION - BLUE BASED COLOR PALETTE ===== */
.clean-banner {
    position: relative;
    text-align: center;
    padding: 35px 20px;
    overflow: hidden;
    background: linear-gradient(270deg, #0a1628, #0f2a4a, #1a3a6a, #0f2a4a, #0a1628);
    background-size: 400% 400%;
    animation: bgMove 12s ease infinite;
    border-radius: 24px;
    width: 1000px;
    max-width: 90%;
    min-height: 100px;
    box-shadow: 0 20px 40px rgba(0,0,0,0.4), 0 0 0 1px rgba(70,130,200,0.3) inset;
    transition: all 0.3s ease;
    margin: 0 auto;
}

@keyframes bgMove {
    0% { background-position: 0% 50%; }
    50% { background-position: 100% 50%; }
    100% { background-position: 0% 50%; }
}

.clean-banner:hover {
    transform: scale(1.02);
    box-shadow: 0 25px 50px rgba(0,0,0,0.5),
                0 0 0 2px rgba(100,180,255,0.6) inset,
                0 0 30px rgba(30,100,200,0.4);
}

/* WAVES */
.clean-banner::before,
.clean-banner::after {
    content: "";
    position: absolute;
    width: 200%;
    height: 200%;
    top: -50%;
    left: -50%;
    background: radial-gradient(circle, rgba(100,180,255,0.12), transparent 70%);
    animation: wave 14s linear infinite;
    z-index: 0;
}

.clean-banner::after {
    animation: wave 18s linear infinite reverse;
}

@keyframes wave {
    0% { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
}

/* TEXT */
.banner-text {
    position: relative;
    z-index: 15;
    font-size: 1.2rem;
    font-weight: 600;
    max-width: 1000px;
    margin: auto;
    color: #ffffff;
    line-height: 1.4;
    text-shadow: 3px 3px 12px rgba(0,0,0,0.6),
                 0 0 25px rgba(0,0,0,0.5),
                 0 0 5px rgba(70,150,255,0.8);
}

/* HOVER TEXT */
.clean-banner:hover .banner-text,
.clean-banner:hover .word {
    color: #ffffff !important;
    text-shadow: 5px 5px 20px rgba(0,0,0,0.9),
                 0 0 35px rgba(100,180,255,1),
                 0 0 15px white !important;
}

/* WORD STYLE (NO ANIMATION) */
.word {
    display: inline-block;
    opacity: 1;
    transform: none;
    animation: none;
    transition: all 0.2s ease;
    color: #ffffff;
    font-weight: 600;
}

/* OPTIONAL HOVER EFFECT */
.banner-text:hover .word {
    transform: translateY(-3px);
}

/* SPARKLE */
.sparkle {
    position: absolute;
    width: 6px;
    height: 6px;
    background: radial-gradient(circle, #ffffff, #88ccff, #3a8cff);
    border-radius: 50%;
    animation: sparkleAnim 0.8s ease-out forwards;
    z-index: 100;
}

@keyframes sparkleAnim {
    0% { opacity: 1; transform: scale(1); }
    100% { opacity: 0; transform: scale(0); }
}

#typing {
    white-space: normal;     /* allow wrapping */
    word-break: keep-all;    /* prevent word cutting */
    overflow-wrap: normal;
}

.word {
    display: inline;         /* 🔥 NOT inline-block */
    white-space: nowrap;     /* keep each word intact */
}