/* Image Loading Effect */
.loading-image {
    position: relative;
    overflow: hidden;
    background-color: var(--snip-background);
    background-image: linear-gradient(
        90deg,
        rgba(255, 255, 255, 0) 25%,
        rgba(255, 255, 255, 0.15) 50%,
        rgba(255, 255, 255, 0) 75%
    );
    background-size: 200% 100%;
    animation: image-wave 2s infinite linear;
}

/* Title Loading Effect */
.title-loading {
    position: relative;
    overflow: hidden;
    color: transparent !important;
    background-color: var(--snip-background);
    min-height: 1.2em;
    width: 80%;
    margin: 0 auto;
    top: 2px;
    border-radius: 6px;
}

.title-loading::after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(
        90deg,
        transparent 25%,
        rgba(255, 255, 255, 0.25) 50%,
        transparent 75%
    );
    background-size: 200% 100%;
    animation: title-wave 2.5s infinite linear;
}

/* Animations */
@keyframes image-wave {
    0% {
        background-position: -100% 0; /* Start off-screen left */
    }
    100% {
        background-position: 100% 0; /* End off-screen right */
    }
}

@keyframes title-wave {
    0% {
        background-position: -100% 0; /* Start off-screen left */
    }
    100% {
        background-position: 100% 0; /* End off-screen right */
    }
}