/* ── 3D Text ─────────────────────────────────────────────────── */
.bkbg-3dt-app { font-family: inherit; }

.bkbg-3dt-wrap {
    overflow: hidden;
    position: relative;
}

/* idle animations */
.bkbg-3dt-text.bkbg-3dt-anim-float {
    animation: bkbg-3dt-float 3s ease-in-out infinite;
}
.bkbg-3dt-text.bkbg-3dt-anim-pulse {
    animation: bkbg-3dt-pulse 2s ease-in-out infinite;
}
.bkbg-3dt-text.bkbg-3dt-anim-shimmer {
    animation: bkbg-3dt-shimmer 2.5s linear infinite;
}

@keyframes bkbg-3dt-float {
    0%, 100% { transform: translateY(0px); }
    50%       { transform: translateY(-8px); }
}
@keyframes bkbg-3dt-pulse {
    0%, 100% { filter: brightness(1); }
    50%       { filter: brightness(1.3); }
}
@keyframes bkbg-3dt-shimmer {
    0%   { filter: hue-rotate(0deg); }
    100% { filter: hue-rotate(360deg); }
}

/* hover effects */
.bkbg-3dt-wrap.bkbg-3dt-hover-tilt {
    perspective: 600px;
    transform-style: preserve-3d;
}
/* hover-tilt and hover-press effects are handled by frontend.js */

.bkbg-3dt-wrap.bkbg-3dt-hover-lift:hover .bkbg-3dt-text {
    transform: translateY(-6px);
    transition: transform 0.2s ease;
}

/* reflection */
.bkbg-3dt-reflection {
    transform: scaleY(-1);
    opacity: 0.18;
    margin-top: 4px;
    pointer-events: none;
    display: block;
    -webkit-mask-image: linear-gradient(to bottom, rgba(0,0,0,0.5), transparent 70%);
    mask-image: linear-gradient(to bottom, rgba(0,0,0,0.5), transparent 70%);
}

/* transition on text */
.bkbg-3dt-text {
    transition: transform 0.15s ease, text-shadow 0.15s ease;
    will-change: transform;
    font-family:      var(--bk3dt-tx-font-family, inherit);
    font-size:        var(--bk3dt-tx-font-size-d, 72px);
    font-weight:      var(--bk3dt-tx-font-weight, 900);
    line-height:      var(--bk3dt-tx-line-height-d, 1.10);
    text-transform:   var(--bk3dt-tx-text-transform, uppercase);
    font-style:       var(--bk3dt-tx-font-style, normal);
    text-decoration:  var(--bk3dt-tx-text-decoration, none);
    letter-spacing:   var(--bk3dt-tx-letter-spacing-d, 4px);
    word-spacing:     var(--bk3dt-tx-word-spacing-d);
}

/* heading specificity (0,2,0) for user-selectable h1-h6 tags */
.bkbg-3dt-wrap h1.bkbg-3dt-text,
.bkbg-3dt-wrap h2.bkbg-3dt-text,
.bkbg-3dt-wrap h3.bkbg-3dt-text,
.bkbg-3dt-wrap h4.bkbg-3dt-text,
.bkbg-3dt-wrap h5.bkbg-3dt-text,
.bkbg-3dt-wrap h6.bkbg-3dt-text {
    font-family:      var(--bk3dt-tx-font-family, inherit);
    font-size:        var(--bk3dt-tx-font-size-d, 72px);
    font-weight:      var(--bk3dt-tx-font-weight, 900);
    line-height:      var(--bk3dt-tx-line-height-d, 1.10);
    text-transform:   var(--bk3dt-tx-text-transform, uppercase);
    font-style:       var(--bk3dt-tx-font-style, normal);
    text-decoration:  var(--bk3dt-tx-text-decoration, none);
    letter-spacing:   var(--bk3dt-tx-letter-spacing-d, 4px);
    word-spacing:     var(--bk3dt-tx-word-spacing-d);
}

/* ---- Typography responsive: Tablet ---- */
@media (max-width: 1024px) {
    .bkbg-3dt-text,
    .bkbg-3dt-wrap h1.bkbg-3dt-text,
    .bkbg-3dt-wrap h2.bkbg-3dt-text,
    .bkbg-3dt-wrap h3.bkbg-3dt-text,
    .bkbg-3dt-wrap h4.bkbg-3dt-text,
    .bkbg-3dt-wrap h5.bkbg-3dt-text,
    .bkbg-3dt-wrap h6.bkbg-3dt-text {
        font-size:       var(--bk3dt-tx-font-size-t, var(--bk3dt-tx-font-size-d, 72px));
        line-height:     var(--bk3dt-tx-line-height-t, var(--bk3dt-tx-line-height-d, 1.10));
        letter-spacing:  var(--bk3dt-tx-letter-spacing-t, var(--bk3dt-tx-letter-spacing-d, 4px));
        word-spacing:    var(--bk3dt-tx-word-spacing-t, var(--bk3dt-tx-word-spacing-d));
    }
}

/* ---- Typography responsive: Mobile ---- */
@media (max-width: 767px) {
    .bkbg-3dt-text,
    .bkbg-3dt-wrap h1.bkbg-3dt-text,
    .bkbg-3dt-wrap h2.bkbg-3dt-text,
    .bkbg-3dt-wrap h3.bkbg-3dt-text,
    .bkbg-3dt-wrap h4.bkbg-3dt-text,
    .bkbg-3dt-wrap h5.bkbg-3dt-text,
    .bkbg-3dt-wrap h6.bkbg-3dt-text {
        font-size:       var(--bk3dt-tx-font-size-m, var(--bk3dt-tx-font-size-t, var(--bk3dt-tx-font-size-d, 72px)));
        line-height:     var(--bk3dt-tx-line-height-m, var(--bk3dt-tx-line-height-t, var(--bk3dt-tx-line-height-d, 1.10)));
        letter-spacing:  var(--bk3dt-tx-letter-spacing-m, var(--bk3dt-tx-letter-spacing-t, var(--bk3dt-tx-letter-spacing-d, 4px)));
        word-spacing:    var(--bk3dt-tx-word-spacing-m, var(--bk3dt-tx-word-spacing-t, var(--bk3dt-tx-word-spacing-d)));
    }
}
