/* ── split-flap-display block ──────────────────────────────────── */

.bkbg-sfd-wrap {
    width: 100%;
    text-align: center;
    overflow: hidden;
}

.bkbg-sfd-board {
    display: inline-block;
    max-width: 100%;
    overflow-x: auto;
}

/* ── Label ────────────────────────────────────────────────────── */
.bkbg-sfd-label {
    font-family: var(--bksfd-lb-font-family, inherit);
    font-size: var(--bksfd-lb-font-size-d, 11px);
    font-weight: var(--bksfd-lb-font-weight, 600);
    font-style: var(--bksfd-lb-font-style);
    text-decoration: var(--bksfd-lb-text-decoration);
    text-transform: var(--bksfd-lb-text-transform, uppercase);
    letter-spacing: var(--bksfd-lb-letter-spacing-d, 0.15em);
    line-height: var(--bksfd-lb-line-height-d);
    word-spacing: var(--bksfd-lb-word-spacing-d);
    margin-bottom: 12px;
    user-select: none;
}

/* ── Board rows (multiple messages = single visible row) ────────── */
.bkbg-sfd-rows {
    display: flex;
    flex-direction: column;
}

.bkbg-sfd-row {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
}

/* ── Single character tile ────────────────────────────────────── */
.bkbg-sfd-char {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    flex-shrink: 0;
    /* background, size, radius, color set via inline style */
}

/* Divider line at midpoint */
.bkbg-sfd-divider {
    position: absolute;
    left: 0;
    top: 50%;
    width: 100%;
    height: 1px;
    z-index: 2;
    /* background set inline */
}

/* ── Flap halves ───────────────────────────────────────────────── */
/* Top half — static top of current char */
.bkbg-sfd-top {
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 50%;
    overflow: hidden;
    display: flex;
    align-items: flex-end;
    justify-content: center;
    transform-origin: bottom center;
    z-index: 1;
    backface-visibility: hidden;
}

/* Bottom half - static bottom of current char */
.bkbg-sfd-bottom {
    position: absolute;
    bottom: 0; left: 0; right: 0;
    height: 50%;
    overflow: hidden;
    display: flex;
    align-items: flex-start;
    justify-content: center;
    transform-origin: top center;
    z-index: 1;
    backface-visibility: hidden;
}

/* Flipping top flap (shows previous char top, rotates down) */
.bkbg-sfd-flip-top {
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 50%;
    overflow: hidden;
    display: flex;
    align-items: flex-end;
    justify-content: center;
    transform-origin: bottom center;
    z-index: 3;
    backface-visibility: hidden;
    animation: bkbg-sfd-flip-top-anim var(--sfd-speed) ease-in forwards;
}

/* Flipping bottom flap (shows next char bottom, rotates from up) */
.bkbg-sfd-flip-bottom {
    position: absolute;
    bottom: 0; left: 0; right: 0;
    height: 50%;
    overflow: hidden;
    display: flex;
    align-items: flex-start;
    justify-content: center;
    transform-origin: top center;
    z-index: 3;
    backface-visibility: hidden;
    animation: bkbg-sfd-flip-bottom-anim var(--sfd-speed) ease-out forwards;
}

@keyframes bkbg-sfd-flip-top-anim {
    0%   { transform: rotateX(0deg); }
    100% { transform: rotateX(-90deg); }
}

@keyframes bkbg-sfd-flip-bottom-anim {
    0%   { transform: rotateX(90deg); box-shadow: 0 -4px 8px rgba(0,0,0,0.5) inset; }
    100% { transform: rotateX(0deg);  box-shadow: none; }
}

.bkbg-sfd-char-text {
    position: relative;
    z-index: 1;
    user-select: none;
    font-family: var(--bksfd-ch-font-family, monospace);
    font-size: var(--bksfd-ch-font-size-d, 28px);
    font-weight: var(--bksfd-ch-font-weight, 700);
    font-style: var(--bksfd-ch-font-style);
    text-decoration: var(--bksfd-ch-text-decoration);
    text-transform: var(--bksfd-ch-text-transform);
}

/* ── Responsive typography ─────────────────────────────────────── */
@media (max-width: 1024px) {
    .bkbg-sfd-label {
        font-size: var(--bksfd-lb-font-size-t, var(--bksfd-lb-font-size-d, 11px));
        line-height: var(--bksfd-lb-line-height-t, var(--bksfd-lb-line-height-d));
        letter-spacing: var(--bksfd-lb-letter-spacing-t, var(--bksfd-lb-letter-spacing-d, 0.15em));
        word-spacing: var(--bksfd-lb-word-spacing-t, var(--bksfd-lb-word-spacing-d));
    }
    .bkbg-sfd-char-text {
        font-size: var(--bksfd-ch-font-size-t, var(--bksfd-ch-font-size-d, 28px));
    }
}
@media (max-width: 767px) {
    .bkbg-sfd-label {
        font-size: var(--bksfd-lb-font-size-m, var(--bksfd-lb-font-size-t, var(--bksfd-lb-font-size-d, 11px)));
        line-height: var(--bksfd-lb-line-height-m, var(--bksfd-lb-line-height-t, var(--bksfd-lb-line-height-d)));
        letter-spacing: var(--bksfd-lb-letter-spacing-m, var(--bksfd-lb-letter-spacing-t, var(--bksfd-lb-letter-spacing-d, 0.15em)));
        word-spacing: var(--bksfd-lb-word-spacing-m, var(--bksfd-lb-word-spacing-t, var(--bksfd-lb-word-spacing-d)));
    }
    .bkbg-sfd-char-text {
        font-size: var(--bksfd-ch-font-size-m, var(--bksfd-ch-font-size-t, var(--bksfd-ch-font-size-d, 28px)));
    }
}

/* ── Ticker dots ───────────────────────────────────────────────── */
.bkbg-sfd-dots {
    display: flex;
    justify-content: center;
    gap: 6px;
    margin-top: 12px;
}

.bkbg-sfd-dot {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    transition: opacity 0.3s;
}

.bkbg-sfd-dot.bkbg-sfd-dot-active {
    opacity: 1;
}

.bkbg-sfd-dot:not(.bkbg-sfd-dot-active) {
    opacity: 0.3;
}
