body, html {
    margin: 0;
    padding: 0;
    height: 100%;
    overflow: hidden;
    background-color: #000;
}
.full-screen-image, .flowing-colors {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    z-index: 1;
    filter: url(#warp); /* Warp effect applied here */
    border-top: 5px solid red;
    border-left: 5px solid red;
    background-image: linear-gradient(to bottom, white, white);
    background-size: 100% 1px;
    background-repeat: no-repeat;
    background-position: center;
}
.full-screen-image::after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    background: radial-gradient(circle at var(--x) var(--y), transparent, black 25%);
    mix-blend-mode: overlay;
    pointer-events: none;
    animation: ripple 5s linear infinite;
    object-fit: cover;
    z-index: 1;
    filter: url(#warp); /* Warp effect applied here */
}
.header {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    text-align: center;
    z-index: 3;
    font-size: 8em;
    font-weight: bolder;
    background: #fff0;
    color: #030;
    text-shadow: 4px 4px 8px rgb(0 0 0 / .7);
}
.letter {
    display: inline-block;
    animation: dropDown 3s infinite;
    margin: 12px;
    z-index: 4;
}
@keyframes dropDown {
    0% { transform: translateY(0); opacity: 1; }
    50% { transform: translateY(100vh); opacity: .8; }
    100% { transform: translateY(0); opacity: 1; }
}
@keyframes swing {
    0%, 100% { transform: rotate(0deg); }
    25% { transform: rotate(10deg); }
    50% { transform: rotate(-10deg); }
    75% { transform: rotate(10deg); }
}
@keyframes sway {
    0%, 100% { transform: translateX(0); }
    25% { transform: translateX(10px); }
    50% { transform: translateX(-10px); }
    75% { transform: translateX(10px); }
}
@keyframes zoom {
    0%, 100% { transform: scale(1); }
    25% { transform: scale(1.2); }
    50% { transform: scale(.8); }
    75% { transform: scale(1.2); }
}
@keyframes fade {
    0%, 100% { opacity: 1; }
    50% { opacity: .5; }
}
@keyframes rubberband {
    0%, 100% { transform: scale(1); }
    25% { transform: scale(1.5); }
    50% { transform: scale(.5); }
    75% { transform: scale(1.5); }
}
@keyframes rotate {
    0% { transform: rotate(0deg); }
    50% { transform: rotate(360deg); }
    100% { transform: rotate(0deg); }
}
@keyframes bounce {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-20px); }
}
@keyframes slide {
    0% { transform: translateX(-100%); }
    100% { transform: translateX(0); }
}
@keyframes flip {
    0% { transform: rotateY(0deg); }
    50% { transform: rotateY(180deg); }
    100% { transform: rotateY(360deg); }
}
@keyframes spin {
    0% { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
}
@keyframes pulse {
    0% { transform: scale(1); opacity: 1; }
    50% { transform: scale(1.5); opacity: .5; }
    100% { transform: scale(1); opacity: 1; }
}
@keyframes flash {
    0%, 50%, 100% { opacity: 1; }
    25%, 75% { opacity: 0; }
}
@keyframes shake {
    0%, 100% { transform: translateX(0); }
    10%, 30%, 50%, 70%, 90% { transform: translateX(-10px); }
    20%, 40%, 60%, 80% { transform: translateX(10px); }
}
.letter:nth-child(1) { color: #ff0000; animation: dropDown 3s infinite, swing 5s infinite; }
.letter:nth-child(2) { color: #ff4500; animation: dropDown 3s infinite, sway 4s infinite; }
.letter:nth-child(3) { color: #ff8c00; animation: dropDown 3s infinite, zoom 6s infinite; }
.letter:nth-child(4) { color: #ffd700; animation: dropDown 3s infinite, shake 7s infinite; }
.letter:nth-child(5) { color: #adff2f; animation: dropDown 3s infinite, rubberband 5s infinite; }
.letter:nth-child(6) { color: #32cd32; animation: dropDown 3s infinite, rotate 4s infinite; }
.letter:nth-child(7) { color: #00ff00; animation: dropDown 3s infinite, bounce 6s infinite; }
.letter:nth-child(8) { color: #00fa9a; animation: dropDown 3s infinite, flash 7s infinite; }
.letter:nth-child(9) { color: #00ffff; animation: dropDown 3s infinite, shake 5s infinite; }
.letter:nth-child(10) { color: #1e90ff; animation: dropDown 3s infinite, slide 4s infinite; }
.letter:nth-child(11) { color: #0000ff; animation: dropDown 3s infinite, pulse 6s infinite; }
.letter:nth-child(12) { color: #8a2be2; animation: dropDown 3s infinite, spin 7s infinite; }
.letter:nth-child(13) { color: #ff00ff; animation: dropDown 3s infinite, flip 5s infinite; }
.flowing-colors {
    background: linear-gradient(270deg,
        rgba(255, 140, 0, 0.5) 0%,
        rgba(255, 99, 71, 0.5) 8%,
        rgba(255, 69, 0, 0.5) 16%,
        rgba(255, 0, 0, 0.5) 24%,
        rgba(255, 69, 0, 0.5) 32%,
        rgba(255, 99, 71, 0.5) 40%,
        rgba(255, 140, 0, 0.5) 48%,
        rgba(255, 99, 71, 0.5) 56%,
        rgba(255, 69, 0, 0.5) 64%,
        rgba(255, 99, 71, 0.5) 72%,
        rgba(255, 140, 0, 0.5) 80%,
        rgba(255, 99, 71, 0.5) 88%,
        rgba(255, 69, 0, 0.5) 96%,
        rgba(255, 140, 0, 0.5) 100%);
    background-size: 800% 800%;
    animation: flowingColors 1600s ease infinite, colorLine 10s ease infinite; /* Slowed down animation */
    width: 100vw;
    height: 100vh;
    transition: transform 0.3s ease;
    z-index: 2;
    position: absolute;
    mix-blend-mode: overlay;
}
.bubble {
    position: absolute;
    width: 80px; /* Adjusted size to make the bubbles smaller */
    height: 80px; /* Adjusted size to make the bubbles smaller */
    border-radius: 50%;
    background: linear-gradient(45deg, rgba(255, 182, 193, 0.5), rgba(135, 206, 250, 0.5)); /* Gradient colors for the bubble */
    backdrop-filter: blur(10px);
    z-index: 2;
    opacity: 0.7; /* Adjust opacity here */
}
.bubble:nth-child(2) {
    background: linear-gradient(45deg, rgba(255, 105, 180, 0.5), rgba(255, 255, 0, 0.5)); /* Gradient colors for the second bubble */
}
.bubble:nth-child(3) {
    background: linear-gradient(45deg, rgba(173, 216, 230, 0.5), rgba(144, 238, 144, 0.5)); /* Gradient colors for the third bubble */
}
.bubble:nth-child(4) {
    background: linear-gradient(45deg, rgba(255, 160, 122, 0.5), rgba(255, 218, 185, 0.5)); /* Gradient colors for the fourth bubble */
}
.bubble:nth-child(5) {
    background: linear-gradient(45deg, rgba(221, 160, 221, 0.5), rgba(255, 182, 193, 0.5)); /* Gradient colors for the fifth bubble */
}
.bubble:nth-child(6) {
    background: linear-gradient(45deg, rgba(135, 206, 250, 0.5), rgba(255, 105, 180, 0.5)); /* Gradient colors for the sixth bubble */
}
@keyframes flowingColors {
    0% { background-position: 0% 50%; }
    25% { background-position: 100% 50%; }
    50% { background-position: 200% 50%; }
    75% { background-position: 300% 50%; }
    100% { background-position: 400% 50%; }
}
@keyframes colorLine {
    0% { background-position: 0% 50%; }
    100% { background-position: 100% 50%; }
}
.gradient-text {
    background: linear-gradient(90deg, #ff0000, #ff4500, #ff8c00, #ffd700, #adff2f, #32cd32, #00ff00, #00fa9a, #00ffff, #1e90ff, #0000ff, #8a2be2, #ff00ff);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    animation: gradientFlow 5s infinite;
}
@keyframes gradientFlow {
    0% { background-position: 0% 50%; }
    100% { background-position: 100% 50%; }
}

/* Floating Glass Button */
.glass-button {
    position: fixed;
    top: 50%;
    left: 30px;
    transform: translateY(-50%);
    width: 64px;
    height: 64px;
    border-radius: 50%;
    border: 2px solid rgba(255, 255, 255, 0.3);
    background: rgba(255, 255, 255, 0.1);
    backdrop-filter: blur(20px);
    cursor: pointer;
    z-index: 999;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.3),
                inset 0 1px 0 rgba(255, 255, 255, 0.2);
    animation: glassFloat 3s ease-in-out infinite;
}

.glass-button:hover {
    background: rgba(255, 255, 255, 0.2);
    border-color: rgba(255, 255, 255, 0.5);
    box-shadow: 0 12px 48px rgba(0, 0, 0, 0.4),
                inset 0 1px 0 rgba(255, 255, 255, 0.3);
    transform: translateY(-50%) scale(1.1);
}

.glass-button:active {
    transform: translateY(-50%) scale(0.95);
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.2),
                inset 0 1px 0 rgba(255, 255, 255, 0.2);
}

.glass-button.refreshing {
    animation: glassFloat 3s ease-in-out infinite, spinRefresh 1s linear infinite;
}

.refresh-icon {
    width: 32px;
    height: 32px;
    color: rgba(255, 255, 255, 0.9);
    transition: transform 0.3s ease;
}

.glass-button:hover .refresh-icon {
    color: rgba(255, 255, 255, 1);
}

@keyframes glassFloat {
    0%, 100% {
        transform: translateY(-50%);
        box-shadow: 0 8px 32px rgba(0, 0, 0, 0.3),
                    inset 0 1px 0 rgba(255, 255, 255, 0.2);
    }
    50% {
        transform: translateY(calc(-50% - 8px));
        box-shadow: 0 12px 40px rgba(0, 0, 0, 0.4),
                    inset 0 1px 0 rgba(255, 255, 255, 0.3);
    }
}

@keyframes spinRefresh {
    0% {
        transform: translateY(-50%) rotate(0deg);
    }
    100% {
        transform: translateY(-50%) rotate(360deg);
    }
}

/* Mobile Responsive */
@media (max-width: 768px) {
    .glass-button {
        width: 56px;
        height: 56px;
        left: 20px;
    }

    .refresh-icon {
        width: 28px;
        height: 28px;
    }
}