/* Preloader Styles */
#preloader {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 9999;
    background: #000;
    overflow: hidden;
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: column;
}

#preloader-canvas {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 1;
}

.preloader-content {
    position: relative;
    z-index: 2;
    text-align: center;
    color: #fff;
    /* Default, will be overridden by JS */
}

/* Stream Text Styles */
.bst-text {
    display: inline-block;
    transition: opacity 0.8s ease, filter 0.8s ease;
    position: relative;
    font-family: 'Montserrat', sans-serif;
    /* Fallback */
}

.bst-word {
    display: inline-block;
    white-space: nowrap;
}

.bst-char {
    display: inline-block;
    transform-style: preserve-3d;
    opacity: 0;
    /* Init hidden */
    filter: blur(8px);
}

/* Animation: Gleam (Stream) */
.anim-gleam .bst-char {
    animation: bstGleam var(--anim-speed, 2s) ease-in-out infinite alternate;
    animation-delay: var(--char-delay, 0s);
}

@keyframes bstGleam {
    0% {
        opacity: 0;
        filter: blur(8px);
        transform: translateY(10px);
    }

    40% {
        opacity: 1;
        filter: blur(0);
        transform: translateY(0);
        text-shadow: var(--glow-shadow);
        color: var(--text-color);
    }

    100% {
        opacity: 0;
        filter: blur(4px);
        transform: translateY(-5px);
        color: var(--glow-color);
    }
}