/* Floating Stage2 — unique prefix: fts2- (WordPress-safe) */

.fts2-banner {
    --fts2-w: 273px;
    --fts2-h: 378px;
    --fts2-mini: 92px;
    --fts2-lag: 0px;

    position: fixed;
    left: 0;
    top: 50%;
    transform: translate3d(0, calc(-50% + var(--fts2-lag)), 0);
    z-index: 99999;
    line-height: 0;
    font-size: 0;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    will-change: transform, opacity;
}

.fts2-banner.fts2-is-ready {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transition: opacity 0.28s ease;
}

.fts2-banner.fts2-is-animating-out,
.fts2-banner.fts2-is-animating-in {
    pointer-events: none;
}

.fts2-inner {
    position: relative;
    transform-origin: left center;
    will-change: transform, opacity;
}

.fts2-banner.fts2-is-animating-out .fts2-inner {
    animation: fts2-out 0.18s cubic-bezier(0.55, 0, 1, 0.45) forwards;
}

.fts2-banner.fts2-is-animating-in .fts2-inner {
    animation: fts2-in 0.26s cubic-bezier(0.34, 1.45, 0.64, 1) forwards;
}

@keyframes fts2-out {
    0% {
        transform: translateX(0) scale(1);
        opacity: 1;
    }

    100% {
        transform: translateX(-18px) scale(0.55);
        opacity: 0;
    }
}

@keyframes fts2-in {
    0% {
        transform: translateX(-18px) scale(0.55);
        opacity: 0;
    }

    60% {
        transform: translateX(4px) scale(1.05);
        opacity: 1;
    }

    100% {
        transform: translateX(0) scale(1);
        opacity: 1;
    }
}

/* —— Open panel —— */
.fts2-panel {
    position: relative;
    width: var(--fts2-w);
    height: var(--fts2-h);
}

.fts2-bg {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
    pointer-events: none;
    user-select: none;
}

.fts2-effect {
    position: absolute;
    width: 84.25%;
    height: 17.46%;
    left: 7.69%;
    top: 8.47%;
    border-radius: 31px;
    mix-blend-mode: screen;
    pointer-events: none;
    object-fit: cover;
    z-index: 1;
}

.fts2-btn-download {
    position: absolute;
    width: 84.25%;
    height: 17.46%;
    left: 7.69%;
    top: 8.47%;
    border-radius: 31px;
    z-index: 2;
    display: block;
    line-height: 0;
    text-decoration: none;
    cursor: pointer;
    background: transparent;
}

.fts2-download-img {
    display: block;
    width: 100%;
    height: 100%;
    opacity: 0;
    border-radius: 31px;
}

.fts2-effect-mini {
    position: absolute;
    width: calc(var(--fts2-mini) * 75 / 92);
    height: calc(var(--fts2-mini) * 75 / 92);
    left: calc(var(--fts2-mini) * 8 / 92);
    top: calc(var(--fts2-mini) * 8 / 92);
    border-radius: 50%;
    mix-blend-mode: screen;
    pointer-events: none;
    object-fit: cover;
    z-index: 1;
}

.fts2-actions {
    position: absolute;
    left: 9%;
    right: 9%;
    top: 27%;
    bottom: 7%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 10px;
}

.fts2-btn {
    display: block;
    width: 100%;
    max-width: 200px;
    line-height: 0;
    text-decoration: none;
    transition: transform 0.15s ease, filter 0.15s ease;
}

.fts2-btn:hover {
    transform: translateY(-1px) scale(1.03);
    filter: brightness(1.08);
}

.fts2-btn:active {
    transform: scale(0.98);
}

.fts2-btn img {
    display: block;
    width: 100%;
    height: auto;
}

.fts2-close {
    position: absolute;
    top: 1.5%;
    right: 1%;
    width: 14%;
    height: 11%;
    min-width: 28px;
    min-height: 28px;
    max-width: 42px;
    max-height: 42px;
    padding: 0;
    border: 0;
    background: transparent;
    cursor: pointer;
    z-index: 2;
    transition: opacity 0.12s ease;
}

.fts2-banner.fts2-is-animating-out .fts2-close {
    opacity: 0;
}

/* —— Closed mini —— */
.fts2-mini {
    display: none;
    position: relative;
    width: var(--fts2-mini);
    height: var(--fts2-mini);
    padding: 0;
    border: 0;
    background: transparent;
    cursor: pointer;
    line-height: 0;
}

.fts2-mini-img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
    transition: transform 0.18s ease, filter 0.18s ease;
}

.fts2-mini:hover .fts2-mini-img {
    transform: scale(1.06);
    filter: brightness(1.1);
}

.fts2-banner.fts2-is-closed .fts2-panel {
    display: none;
}

.fts2-banner.fts2-is-closed .fts2-mini {
    display: block;
}

@media (max-width: 480px) {
    .fts2-banner {
        --fts2-w: min(220px, 72vw);
        --fts2-h: calc(var(--fts2-w) * 378 / 273);
        --fts2-mini: 72px;
    }

    .fts2-actions {
        gap: 4px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .fts2-banner.fts2-is-ready {
        transition: none;
    }

    .fts2-banner.fts2-is-animating-out .fts2-inner,
    .fts2-banner.fts2-is-animating-in .fts2-inner {
        animation: none;
    }

    .fts2-btn,
    .fts2-mini img {
        transition: none;
    }

    .fts2-effect {
        display: none;
    }

    .fts2-effect-mini {
        display: none;
    }
}
