.rpsv-wrap{
    position:relative;
    left:50%;
    width:100vw;
    max-width:none !important;
    margin-left:-50vw !important;
    height:var(--rpsv-scroll-height,500vh);
    background:#000;
}
.rpsv-sticky{
    position:absolute;
    top:0;
    left:0;
    width:100vw;
    height:100vh;
    overflow:hidden;
    background:#000;
    z-index:1;
}
.rpsv-sticky.is-top{
    position:absolute;
    top:0;
    bottom:auto;
}
.rpsv-sticky.is-fixed{
    position:fixed;
    top:0;
    left:0;
    bottom:auto;
}
.rpsv-sticky.is-bottom{
    position:absolute;
    top:auto;
    bottom:0;
    left:0;
}
.rpsv-video{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    display:block;
    background:#000;
}
.rpsv-gradient{
    position:absolute;
    inset:0;
    pointer-events:none;
    background:linear-gradient(90deg,rgba(0,0,0,.28),transparent 42%,transparent 60%,rgba(0,0,0,.12));
}
.rpsv-scenes,.rpsv-scene-layer{
    position:absolute;
    inset:0;
    pointer-events:none;
}

.rpsv-scene-layer{
    display:flex;
    align-items:center;
    justify-content:center;
    padding:24px;
    box-sizing:border-box;
    opacity:0;
    visibility:hidden;
    transform:translateY(10px) scale(.995);
    transition:
        opacity .8s cubic-bezier(.22,.61,.36,1),
        transform .8s cubic-bezier(.22,.61,.36,1),
        visibility 0s linear .8s;
}

.rpsv-scene-layer.is-active{
    opacity:1;
    visibility:visible;
    transform:translateY(0) scale(1);
    transition:
        opacity .8s cubic-bezier(.22,.61,.36,1),
        transform .8s cubic-bezier(.22,.61,.36,1),
        visibility 0s;
}

.rpsv-copy{
    width:min(760px,82vw);
    max-width:82vw;
    margin:0 auto;
    color:#fff;
    text-align:center;
    text-shadow:0 2px 18px rgba(0,0,0,.35);
}

.rpsv-copy h2{
    margin:0 0 14px;
    color:#fff;
    font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;
    font-weight:300;
    letter-spacing:.015em;
    line-height:1.08;
    font-size:clamp(40px,5.2vw,88px);
}

.rpsv-copy p{
    margin:0 auto;
    max-width:680px;
    color:rgba(255,255,255,.92);
    font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;
    font-weight:300;
    letter-spacing:.01em;
    line-height:1.55;
    font-size:clamp(16px,1.35vw,22px);
}

.pos-left,.pos-center,.pos-right,.pos-bottom-left,.pos-bottom-center,.pos-bottom-right,
.pos-top,.pos-bottom{
    align-items:center;
    justify-content:center;
}
.align-left,.align-center,.align-right{
    text-align:center;
}
.size-small h2,.size-medium h2,.size-large h2,.size-elegant h2{
    font-size:clamp(40px,5.2vw,88px);
}

@media(max-width:782px){
    .rpsv-sticky{
        height:100svh;
    }

    .rpsv-gradient{
        background:linear-gradient(
            0deg,
            rgba(0,0,0,.32),
            rgba(0,0,0,.06) 38%,
            rgba(0,0,0,.08) 62%,
            rgba(0,0,0,.24)
        );
    }

    .rpsv-scene-layer{
        padding:26px 20px;
        transform:translateY(8px) scale(.997);
    }

    .rpsv-copy{
        width:min(92vw,560px);
        max-width:92vw;
    }

    .rpsv-copy h2,
    .size-small h2,.size-medium h2,.size-large h2,.size-elegant h2{
        font-size:clamp(30px,9vw,48px);
        margin-bottom:10px;
        line-height:1.08;
    }

    .rpsv-copy p{
        max-width:88vw;
        font-size:clamp(15px,4.2vw,18px);
        line-height:1.5;
    }
}
    .rpsv-gradient{background:linear-gradient(0deg,rgba(0,0,0,.45),transparent 45%,rgba(0,0,0,.1))}
    .rpsv-scene-layer{padding:28px 22px 38px}
    .rpsv-copy{max-width:100%;width:100%}
    .pos-top{align-items:flex-start;justify-content:center}
    .pos-center{align-items:center;justify-content:center}
    .pos-bottom{align-items:flex-end;justify-content:center}
    .size-small h2{font-size:28px}
    .size-medium h2{font-size:38px}
    .size-large h2{font-size:50px}
    .rpsv-copy p{font-size:17px}
}

body.rpsv-standalone .rpsv-wrap{
    left:0;
    margin-left:0 !important;
    width:100%;
}
body.rpsv-standalone .rpsv-sticky{
    width:100%;
}
body.rpsv-standalone .rpsv-sticky.is-fixed{
    width:100%;
}


/* V0.4.4 text override */
.rpsv-scenes,.rpsv-scene-layer{position:absolute;inset:0;pointer-events:none}
.rpsv-scene-layer{
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    padding:24px!important;
    box-sizing:border-box!important;
    opacity:0!important;
    visibility:hidden!important;
    transform:translateY(10px) scale(.995)!important;
    transition:opacity .8s cubic-bezier(.22,.61,.36,1),transform .8s cubic-bezier(.22,.61,.36,1),visibility 0s linear .8s!important;
}
.rpsv-scene-layer.is-active{
    opacity:1!important;
    visibility:visible!important;
    transform:translateY(0) scale(1)!important;
    transition:opacity .8s cubic-bezier(.22,.61,.36,1),transform .8s cubic-bezier(.22,.61,.36,1),visibility 0s!important;
}
.rpsv-copy{
    width:min(760px,82vw)!important;
    max-width:82vw!important;
    margin:0 auto!important;
    text-align:center!important;
    color:#fff!important;
    text-shadow:0 2px 18px rgba(0,0,0,.35)!important;
}
.rpsv-copy h2{
    margin:0 0 14px!important;
    color:#fff!important;
    font-family:"Helvetica Neue",Helvetica,Arial,sans-serif!important;
    font-weight:300!important;
    letter-spacing:.015em!important;
    line-height:1.08!important;
    font-size:clamp(40px,5.2vw,88px)!important;
}
.rpsv-copy p{
    margin:0 auto!important;
    max-width:680px!important;
    color:rgba(255,255,255,.92)!important;
    font-family:"Helvetica Neue",Helvetica,Arial,sans-serif!important;
    font-weight:300!important;
    letter-spacing:.01em!important;
    line-height:1.55!important;
    font-size:clamp(16px,1.35vw,22px)!important;
}
.rpsv-scene-layer[class*="pos-"]{align-items:center!important;justify-content:center!important}
.rpsv-scene-layer[class*="align-"]{text-align:center!important}
@media(max-width:782px){
    .rpsv-scene-layer{padding:26px 20px!important}
    .rpsv-copy{width:min(92vw,560px)!important;max-width:92vw!important}
    .rpsv-copy h2{font-size:clamp(30px,9vw,48px)!important;margin-bottom:10px!important}
    .rpsv-copy p{max-width:88vw!important;font-size:clamp(15px,4.2vw,18px)!important;line-height:1.5!important}
}


/* V0.4.5 — elegant rounded italic typography + stronger contrast */
@import url('https://fonts.googleapis.com/css2?family=Nunito:ital,wght@0,300;0,400;1,300;1,400&display=swap');

.rpsv-copy{
    text-shadow:
        0 1px 2px rgba(0,0,0,.95),
        0 3px 10px rgba(0,0,0,.75),
        0 8px 26px rgba(0,0,0,.55)!important;
}

.rpsv-copy h2{
    font-family:"Nunito","Trebuchet MS","Segoe UI",Arial,sans-serif!important;
    font-style:italic!important;
    font-weight:300!important;
    letter-spacing:.02em!important;
    -webkit-text-stroke:.55px rgba(0,0,0,.42);
    paint-order:stroke fill;
    text-shadow:
        0 1px 2px rgba(0,0,0,1),
        0 3px 9px rgba(0,0,0,.9),
        0 8px 24px rgba(0,0,0,.65)!important;
}

.rpsv-copy p{
    font-family:"Nunito","Trebuchet MS","Segoe UI",Arial,sans-serif!important;
    font-style:normal!important;
    font-weight:300!important;
    letter-spacing:.015em!important;
    -webkit-text-stroke:.3px rgba(0,0,0,.38);
    paint-order:stroke fill;
    text-shadow:
        0 1px 2px rgba(0,0,0,.95),
        0 3px 8px rgba(0,0,0,.82),
        0 6px 20px rgba(0,0,0,.55)!important;
}

@media(max-width:782px){
    .rpsv-copy h2{
        letter-spacing:.015em!important;
        -webkit-text-stroke:.45px rgba(0,0,0,.45);
    }
    .rpsv-copy p{
        -webkit-text-stroke:.25px rgba(0,0,0,.4);
    }
}


/* V0.4.6 — gesture discovery helper */
.rpsv-sticky{
    cursor:grab;
    user-select:none;
    -webkit-user-select:none;
}
.rpsv-sticky.is-dragging{cursor:grabbing}

.rpsv-gesture-hint{
    position:absolute;
    right:clamp(18px,2.5vw,34px);
    bottom:clamp(18px,3vw,34px);
    z-index:20;
    display:flex;
    align-items:center;
    gap:12px;
    max-width:310px;
    padding:11px 14px 11px 11px;
    border:1px solid rgba(255,255,255,.22);
    border-radius:999px;
    background:rgba(0,0,0,.30);
    backdrop-filter:blur(8px);
    -webkit-backdrop-filter:blur(8px);
    color:#fff;
    font-family:"Nunito","Trebuchet MS","Segoe UI",Arial,sans-serif;
    font-size:13px;
    font-weight:300;
    line-height:1.25;
    letter-spacing:.01em;
    opacity:0;
    transform:translateY(8px);
    visibility:hidden;
    transition:opacity .35s ease,transform .35s ease,visibility 0s linear .35s;
    pointer-events:none;
    text-shadow:0 1px 4px rgba(0,0,0,.8);
}

.rpsv-gesture-hint.is-visible{
    opacity:1;
    transform:translateY(0);
    visibility:visible;
    transition:opacity .35s ease,transform .35s ease,visibility 0s;
}

.rpsv-gesture-visual{
    position:relative;
    flex:0 0 44px;
    width:44px;
    height:44px;
    border-radius:50%;
    border:1px solid rgba(255,255,255,.24);
    background:rgba(255,255,255,.08);
}

.rpsv-gesture-dot{
    position:absolute;
    left:50%;
    top:50%;
    width:8px;
    height:8px;
    margin:-4px 0 0 -4px;
    border-radius:50%;
    background:#fff;
    box-shadow:0 0 10px rgba(255,255,255,.65),0 1px 4px rgba(0,0,0,.65);
    animation:rpsv-gesture-dot 2.6s ease-in-out infinite;
}

.rpsv-arrow{
    position:absolute;
    color:rgba(255,255,255,.86);
    font-size:12px;
    line-height:1;
    text-shadow:0 1px 4px rgba(0,0,0,.8);
    animation:rpsv-arrow-pulse 2.6s ease-in-out infinite;
}
.rpsv-arrow-up{top:3px;left:50%;transform:translateX(-50%)}
.rpsv-arrow-down{bottom:3px;left:50%;transform:translateX(-50%)}
.rpsv-arrow-left{left:4px;top:50%;transform:translateY(-50%)}
.rpsv-arrow-right{right:4px;top:50%;transform:translateY(-50%)}

@keyframes rpsv-gesture-dot{
    0%,100%{transform:translate(0,-10px)}
    25%{transform:translate(10px,0)}
    50%{transform:translate(0,10px)}
    75%{transform:translate(-10px,0)}
}
@keyframes rpsv-arrow-pulse{
    0%,100%{opacity:.45}
    50%{opacity:1}
}

@media(max-width:782px){
    .rpsv-sticky{cursor:default}
    .rpsv-gesture-hint{
        left:50%;
        right:auto;
        bottom:max(18px,env(safe-area-inset-bottom));
        transform:translate(-50%,8px);
        width:max-content;
        max-width:calc(100vw - 28px);
        padding:9px 13px 9px 9px;
        gap:10px;
        font-size:12px;
    }
    .rpsv-gesture-hint.is-visible{
        transform:translate(-50%,0);
    }
    .rpsv-gesture-visual{
        flex-basis:38px;
        width:38px;
        height:38px;
    }
    @keyframes rpsv-gesture-dot{
        0%,100%{transform:translate(0,-8px)}
        25%{transform:translate(8px,0)}
        50%{transform:translate(0,8px)}
        75%{transform:translate(-8px,0)}
    }
}

@media(prefers-reduced-motion:reduce){
    .rpsv-gesture-dot,.rpsv-arrow{animation:none!important}
}


/* V0.4.7 — separate desktop/mobile instructions + stable mobile viewport */
.rpsv-hint-desktop{display:flex}
.rpsv-hint-mobile{display:none}

.rpsv-scroll-icon{
    position:relative;
    flex:0 0 38px;
    width:38px;
    height:44px;
    border:1px solid rgba(255,255,255,.28);
    border-radius:18px;
    background:rgba(255,255,255,.07);
}
.rpsv-scroll-wheel{
    position:absolute;
    top:8px;
    left:50%;
    width:4px;
    height:9px;
    margin-left:-2px;
    border-radius:999px;
    background:#fff;
    animation:rpsv-wheel 1.5s ease-in-out infinite;
    box-shadow:0 0 7px rgba(255,255,255,.5);
}
.rpsv-scroll-up,.rpsv-scroll-down{
    position:absolute;
    left:50%;
    transform:translateX(-50%);
    font-size:10px;
    color:rgba(255,255,255,.8);
}
.rpsv-scroll-up{top:1px}
.rpsv-scroll-down{bottom:1px}
@keyframes rpsv-wheel{
    0%,100%{transform:translateY(0);opacity:.55}
    50%{transform:translateY(13px);opacity:1}
}

@media(max-width:782px),(pointer:coarse){
    .rpsv-hint-desktop{display:none!important}
    .rpsv-hint-mobile{display:flex!important}

    .rpsv-sticky,
    body.rpsv-standalone .rpsv-sticky,
    .rpsv-sticky.is-fixed,
    body.rpsv-standalone .rpsv-sticky.is-fixed{
        height:var(--rpsv-vh,100vh)!important;
        min-height:var(--rpsv-vh,100vh)!important;
        max-height:var(--rpsv-vh,100vh)!important;
    }

    .rpsv-video{
        width:100%!important;
        height:100%!important;
        min-height:100%!important;
    }
}

@media(prefers-reduced-motion:reduce){
    .rpsv-scroll-wheel{animation:none!important}
}


/* V0.4.8 — navigation instruction centered on screen */
.rpsv-gesture-hint,
.rpsv-hint-desktop,
.rpsv-hint-mobile{
    position:absolute!important;
    left:50%!important;
    right:auto!important;
    top:50%!important;
    bottom:auto!important;
    transform:translate(-50%,-50%) translateY(8px)!important;
    z-index:30!important;
    width:max-content!important;
    max-width:min(90vw,520px)!important;
    justify-content:center!important;
    text-align:center!important;
}

.rpsv-gesture-hint.is-visible,
.rpsv-hint-desktop.is-visible,
.rpsv-hint-mobile.is-visible{
    transform:translate(-50%,-50%) translateY(0)!important;
}

@media(max-width:782px),(pointer:coarse){
    .rpsv-gesture-hint,
    .rpsv-hint-mobile{
        left:50%!important;
        right:auto!important;
        top:50%!important;
        bottom:auto!important;
        transform:translate(-50%,-50%) translateY(8px)!important;
        width:max-content!important;
        max-width:calc(100vw - 32px)!important;
    }

    .rpsv-gesture-hint.is-visible,
    .rpsv-hint-mobile.is-visible{
        transform:translate(-50%,-50%) translateY(0)!important;
    }
}


/* V0.4.9 — mobile scrubber + zoom protection */
html, body, .rpsv-standalone, .rpsv-sticky, .rpsv-video{
    touch-action:pan-y pan-x;
}

.rpsv-mobile-scrubber{
    display:none;
}

@media(max-width:782px),(pointer:coarse){
    html, body.rpsv-standalone{
        overscroll-behavior:none;
    }

    .rpsv-sticky{
        touch-action:none;
    }

    .rpsv-mobile-scrubber{
        position:absolute;
        right:max(12px, env(safe-area-inset-right));
        top:50%;
        transform:translateY(-50%);
        z-index:26;
        display:block;
        width:32px;
        height:72%;
        pointer-events:none;
        opacity:.5;
        transition:opacity .2s ease;
    }

    .rpsv-mobile-scrubber.is-active{
        opacity:1;
    }

    .rpsv-scrubber-track{
        position:relative;
        width:4px;
        height:100%;
        margin:0 auto;
        border-radius:999px;
        background:rgba(255,255,255,.22);
        box-shadow:0 1px 8px rgba(0,0,0,.35);
    }

    .rpsv-scrubber-progress{
        position:absolute;
        left:0;
        top:0;
        width:100%;
        height:0%;
        border-radius:999px;
        background:rgba(255,255,255,.78);
        box-shadow:0 0 8px rgba(255,255,255,.35);
        pointer-events:none;
    }

    .rpsv-scrubber-thumb{
        position:absolute;
        left:50%;
        top:0%;
        width:22px;
        height:22px;
        margin:0;
        padding:0;
        border:2px solid rgba(0,0,0,.48);
        border-radius:50%;
        background:#fff;
        box-shadow:0 2px 10px rgba(0,0,0,.45),0 0 0 5px rgba(255,255,255,.12);
        transform:translate(-50%,-50%);
        pointer-events:auto;
        touch-action:none;
        cursor:grab;
        appearance:none;
        -webkit-appearance:none;
    }

    .rpsv-scrubber-thumb:active{
        cursor:grabbing;
        transform:translate(-50%,-50%) scale(1.08);
    }

    .rpsv-hint-mobile .rpsv-arrow-left,
    .rpsv-hint-mobile .rpsv-arrow-right{
        display:none!important;
    }
}


/* V0.5.0 — mobile scrubber starts at bottom; hint animates only vertically */
@media(max-width:782px),(pointer:coarse){
    .rpsv-scrubber-progress{
        top:auto!important;
        bottom:0!important;
        height:0%;
    }

    .rpsv-scrubber-thumb{
        top:100%;
    }

    .rpsv-hint-mobile .rpsv-gesture-visual{
        width:38px!important;
        height:52px!important;
        flex-basis:38px!important;
        border-radius:20px!important;
    }

    .rpsv-hint-mobile .rpsv-arrow-left,
    .rpsv-hint-mobile .rpsv-arrow-right{
        display:none!important;
    }

    .rpsv-hint-mobile .rpsv-gesture-dot{
        animation:rpsv-gesture-dot-vertical 1.8s ease-in-out infinite!important;
    }

    .rpsv-hint-mobile .rpsv-arrow-up,
    .rpsv-hint-mobile .rpsv-arrow-down{
        animation:rpsv-arrow-pulse-vertical 1.8s ease-in-out infinite!important;
    }
}

@keyframes rpsv-gesture-dot-vertical{
    0%,100%{transform:translateY(12px)}
    50%{transform:translateY(-12px)}
}

@keyframes rpsv-arrow-pulse-vertical{
    0%,100%{opacity:.45}
    50%{opacity:1}
}


/* V0.5.1 — attention pulse on mobile scrubber */
@media(max-width:782px),(pointer:coarse){
    .rpsv-mobile-scrubber{
        opacity:.78;
    }

    .rpsv-scrubber-track{
        background:rgba(118,255,118,.24)!important;
        box-shadow:
            0 0 8px rgba(108,255,108,.28),
            0 0 16px rgba(108,255,108,.14)!important;
        animation:rpsv-track-pulse 1.55s ease-in-out infinite;
    }

    .rpsv-scrubber-progress{
        background:rgba(170,255,170,.88)!important;
        box-shadow:
            0 0 8px rgba(120,255,120,.55),
            0 0 16px rgba(120,255,120,.28)!important;
    }

    .rpsv-scrubber-thumb{
        width:24px!important;
        height:24px!important;
        background:#8dff8d!important;
        border:2px solid rgba(12,65,12,.62)!important;
        box-shadow:
            0 0 0 4px rgba(125,255,125,.16),
            0 0 10px rgba(104,255,104,.82),
            0 0 22px rgba(104,255,104,.52),
            0 3px 12px rgba(0,0,0,.42)!important;
        animation:rpsv-thumb-pulse 1.15s ease-in-out infinite;
        transition:
            width .18s ease,
            height .18s ease,
            background .18s ease,
            box-shadow .18s ease,
            transform .18s ease;
    }

    .rpsv-mobile-scrubber.is-interacting .rpsv-scrubber-track,
    .rpsv-mobile-scrubber.is-user-active .rpsv-scrubber-track,
    .rpsv-mobile-scrubber.is-interacting .rpsv-scrubber-thumb,
    .rpsv-mobile-scrubber.is-user-active .rpsv-scrubber-thumb{
        animation:none!important;
    }

    .rpsv-mobile-scrubber.is-interacting .rpsv-scrubber-track,
    .rpsv-mobile-scrubber.is-user-active .rpsv-scrubber-track{
        background:rgba(255,255,255,.24)!important;
        box-shadow:0 1px 8px rgba(0,0,0,.35)!important;
    }

    .rpsv-mobile-scrubber.is-interacting .rpsv-scrubber-thumb,
    .rpsv-mobile-scrubber.is-user-active .rpsv-scrubber-thumb{
        width:22px!important;
        height:22px!important;
        background:#fff!important;
        border:2px solid rgba(0,0,0,.48)!important;
        box-shadow:
            0 2px 10px rgba(0,0,0,.45),
            0 0 0 5px rgba(255,255,255,.12)!important;
    }
}

@keyframes rpsv-track-pulse{
    0%,100%{
        background:rgba(118,255,118,.18);
        box-shadow:
            0 0 6px rgba(108,255,108,.18),
            0 0 12px rgba(108,255,108,.08);
    }
    50%{
        background:rgba(138,255,138,.36);
        box-shadow:
            0 0 12px rgba(108,255,108,.42),
            0 0 24px rgba(108,255,108,.18);
    }
}

@keyframes rpsv-thumb-pulse{
    0%,100%{
        transform:translate(-50%,-50%) scale(1);
        background:#8dff8d;
        box-shadow:
            0 0 0 4px rgba(125,255,125,.12),
            0 0 10px rgba(104,255,104,.68),
            0 0 20px rgba(104,255,104,.40),
            0 3px 12px rgba(0,0,0,.42);
    }
    50%{
        transform:translate(-50%,-50%) scale(1.22);
        background:#b3ff9f;
        box-shadow:
            0 0 0 8px rgba(125,255,125,.22),
            0 0 16px rgba(104,255,104,.95),
            0 0 32px rgba(104,255,104,.62),
            0 3px 12px rgba(0,0,0,.42);
    }
}

@media(prefers-reduced-motion:reduce){
    .rpsv-scrubber-track,
    .rpsv-scrubber-thumb{
        animation:none!important;
    }
}


/* V0.5.2 — stronger mobile scrubber pulse + phone guidance illustration */
@media(max-width:782px),(pointer:coarse){

    /* Real scrubber: intentionally more obvious before interaction */
    .rpsv-mobile-scrubber:not(.is-interacting):not(.is-user-active){
        opacity:1!important;
    }

    .rpsv-mobile-scrubber:not(.is-interacting):not(.is-user-active) .rpsv-scrubber-track{
        width:5px!important;
        background:rgba(112,255,92,.46)!important;
        box-shadow:
            0 0 9px rgba(93,255,77,.72),
            0 0 19px rgba(93,255,77,.48),
            0 0 34px rgba(93,255,77,.24)!important;
        animation:rpsv-track-pulse-strong 1.05s ease-in-out infinite!important;
    }

    .rpsv-mobile-scrubber:not(.is-interacting):not(.is-user-active) .rpsv-scrubber-thumb{
        width:28px!important;
        height:28px!important;
        background:#7dff58!important;
        border:2px solid rgba(16,64,10,.72)!important;
        box-shadow:
            0 0 0 5px rgba(109,255,82,.22),
            0 0 14px rgba(94,255,73,.95),
            0 0 30px rgba(94,255,73,.76),
            0 0 48px rgba(94,255,73,.45),
            0 4px 12px rgba(0,0,0,.48)!important;
        animation:rpsv-thumb-pulse-strong 1.0s ease-in-out infinite!important;
    }

    @keyframes rpsv-track-pulse-strong{
        0%,100%{
            opacity:.62;
            box-shadow:
                0 0 7px rgba(93,255,77,.55),
                0 0 16px rgba(93,255,77,.32);
        }
        50%{
            opacity:1;
            box-shadow:
                0 0 14px rgba(93,255,77,.95),
                0 0 30px rgba(93,255,77,.62),
                0 0 42px rgba(93,255,77,.28);
        }
    }

    @keyframes rpsv-thumb-pulse-strong{
        0%,100%{
            transform:translate(-50%,-50%) scale(1);
            background:#72ff51;
            box-shadow:
                0 0 0 5px rgba(109,255,82,.18),
                0 0 13px rgba(94,255,73,.88),
                0 0 28px rgba(94,255,73,.58);
        }
        50%{
            transform:translate(-50%,-50%) scale(1.38);
            background:#b7ff77;
            box-shadow:
                0 0 0 10px rgba(109,255,82,.26),
                0 0 22px rgba(94,255,73,1),
                0 0 42px rgba(94,255,73,.78),
                0 0 62px rgba(94,255,73,.48);
        }
    }

    /* Central help: show where the lateral control actually is */
    .rpsv-hint-mobile{
        gap:15px!important;
        padding:13px 17px 13px 13px!important;
        border-radius:24px!important;
        background:rgba(0,0,0,.46)!important;
        border:1px solid rgba(255,255,255,.25)!important;
    }

    .rpsv-phone-guide{
        position:relative;
        width:50px;
        height:78px;
        flex:0 0 50px;
        border:2px solid rgba(255,255,255,.88);
        border-radius:11px;
        background:rgba(255,255,255,.06);
        box-shadow:0 2px 12px rgba(0,0,0,.38);
    }

    .rpsv-phone-guide:before{
        content:"";
        position:absolute;
        top:5px;
        left:50%;
        width:15px;
        height:2px;
        transform:translateX(-50%);
        border-radius:999px;
        background:rgba(255,255,255,.55);
    }

    .rpsv-phone-screen{
        position:absolute;
        inset:10px 5px 6px;
        border-radius:5px;
    }

    .rpsv-phone-track{
        position:absolute;
        top:8px;
        bottom:7px;
        right:1px;
        width:3px;
        border-radius:999px;
        background:rgba(112,255,92,.5);
        box-shadow:0 0 7px rgba(93,255,77,.62);
        animation:rpsv-guide-track 1.1s ease-in-out infinite;
    }

    .rpsv-phone-dot{
        position:absolute;
        right:-3px;
        bottom:4px;
        width:11px;
        height:11px;
        border-radius:50%;
        background:#7dff58;
        border:1px solid rgba(9,70,8,.7);
        box-shadow:
            0 0 8px rgba(94,255,73,.95),
            0 0 16px rgba(94,255,73,.65);
        animation:rpsv-guide-dot-up 1.6s ease-in-out infinite;
    }

    .rpsv-phone-arrow{
        position:absolute;
        right:12px;
        bottom:2px;
        color:#fff;
        font-size:16px;
        line-height:1;
        transform:rotate(0deg);
        text-shadow:0 1px 5px rgba(0,0,0,.8);
        animation:rpsv-guide-arrow 1.1s ease-in-out infinite;
    }

    @keyframes rpsv-guide-dot-up{
        0%,100%{transform:translateY(0) scale(1)}
        50%{transform:translateY(-36px) scale(1.12)}
    }

    @keyframes rpsv-guide-arrow{
        0%,100%{opacity:.35;transform:translateX(0)}
        50%{opacity:1;transform:translateX(5px)}
    }

    @keyframes rpsv-guide-track{
        0%,100%{opacity:.45}
        50%{opacity:1}
    }
}

@media(prefers-reduced-motion:reduce){
    .rpsv-phone-track,
    .rpsv-phone-dot,
    .rpsv-phone-arrow{
        animation:none!important;
    }
}


/* V0.5.3 — thumb-zone scrubber: bottom half of mobile screen only */
@media(max-width:782px),(pointer:coarse){
    .rpsv-mobile-scrubber{
        top:auto!important;
        bottom:max(28px, env(safe-area-inset-bottom))!important;
        transform:none!important;
        height:calc(50% - 42px)!important;
        min-height:180px;
        max-height:360px;
    }

    /* The guide phone mirrors the real control: lower half only. */
    .rpsv-phone-track{
        top:50%!important;
        bottom:7px!important;
    }

    @keyframes rpsv-guide-dot-up{
        0%,100%{transform:translateY(0) scale(1)}
        50%{transform:translateY(-20px) scale(1.12)}
    }
}


/* V0.5.4 — mobile scrubber uses ~75% of screen height for finer control */
@media(max-width:782px),(pointer:coarse){
    .rpsv-mobile-scrubber{
        top:auto!important;
        bottom:max(28px, env(safe-area-inset-bottom))!important;
        transform:none!important;
        height:calc(75% - 42px)!important;
        min-height:260px!important;
        max-height:none!important;
    }

    /* Guide phone mirrors the real 3/4-height control. */
    .rpsv-phone-track{
        top:25%!important;
        bottom:7px!important;
    }

    @keyframes rpsv-guide-dot-up{
        0%,100%{transform:translateY(0) scale(1)}
        50%{transform:translateY(-34px) scale(1.12)}
    }
}


/* V0.5.5 — refined mobile typography; desktop unchanged */
@media(max-width:782px),(pointer:coarse){
    .rpsv-copy{
        width:min(90vw,600px)!important;
        max-width:90vw!important;
        padding:0 8px!important;
        box-sizing:border-box!important;
    }
    .rpsv-copy h2{
        font-family:"Nunito","Trebuchet MS","Segoe UI",Arial,sans-serif!important;
        font-style:italic!important;
        font-weight:400!important;
        font-size:clamp(34px,9.8vw,52px)!important;
        line-height:1.03!important;
        letter-spacing:.005em!important;
        margin:0 0 12px!important;
        color:#fff!important;
        -webkit-text-stroke:.7px rgba(0,0,0,.62)!important;
        paint-order:stroke fill!important;
        text-shadow:
            0 2px 2px rgba(0,0,0,.95),
            0 4px 10px rgba(0,0,0,.88),
            0 8px 24px rgba(0,0,0,.62)!important;
    }
    .rpsv-copy p{
        font-family:"Nunito","Trebuchet MS","Segoe UI",Arial,sans-serif!important;
        font-style:normal!important;
        font-weight:400!important;
        font-size:clamp(16px,4.45vw,20px)!important;
        line-height:1.42!important;
        letter-spacing:.005em!important;
        max-width:86vw!important;
        color:rgba(255,255,255,.96)!important;
        -webkit-text-stroke:.38px rgba(0,0,0,.54)!important;
        paint-order:stroke fill!important;
        text-shadow:
            0 1px 2px rgba(0,0,0,1),
            0 3px 8px rgba(0,0,0,.88),
            0 6px 18px rgba(0,0,0,.62)!important;
    }
}


/* V0.5.6 — mobile TITLE only: rounder, fuller, softer geometry */
@import url('https://fonts.googleapis.com/css2?family=Quicksand:wght@600;700&display=swap');

@media(max-width:782px),(pointer:coarse){
    .rpsv-copy h2{
        font-family:"Quicksand","Arial Rounded MT Bold","Trebuchet MS",sans-serif!important;
        font-style:normal!important;
        font-weight:700!important;
        font-size:clamp(35px,10.2vw,54px)!important;
        line-height:1.04!important;
        letter-spacing:-.025em!important;
        color:#fff!important;
        -webkit-text-stroke:.55px rgba(0,0,0,.58)!important;
        paint-order:stroke fill!important;
        text-shadow:
            0 2px 2px rgba(0,0,0,.95),
            0 4px 11px rgba(0,0,0,.82),
            0 9px 26px rgba(0,0,0,.58)!important;
    }

    /* Description intentionally unchanged from previous version. */
}


/* V0.5.7 FINAL OVERRIDE — intentionally unmistakable mobile title */
@media(max-width:782px),(pointer:coarse){
    .rpsv-copy h2{
        font-family:"Baloo 2","Arial Rounded MT Bold","Trebuchet MS",sans-serif!important;
        font-style:normal!important;
        font-weight:800!important;
        font-size:clamp(38px,11vw,58px)!important;
        line-height:.98!important;
        letter-spacing:-.025em!important;
    }
}


/* V0.5.8 FINAL MOBILE TITLE — rounded but lighter/more elegant */
@media(max-width:782px),(pointer:coarse){
    .rpsv-copy h2{
        font-family:"Baloo 2","Arial Rounded MT Bold","Trebuchet MS",sans-serif!important;
        font-style:normal!important;
        font-weight:600!important;
        font-size:clamp(35px,9.8vw,52px)!important;
        line-height:1.02!important;
        letter-spacing:-.012em!important;
        -webkit-text-stroke:.45px rgba(0,0,0,.55)!important;
        text-shadow:
            0 2px 2px rgba(0,0,0,.92),
            0 4px 10px rgba(0,0,0,.78),
            0 8px 22px rgba(0,0,0,.52)!important;
    }
}


/* V0.5.9 — mobile title: slightly thinner + italic */
@media(max-width:782px),(pointer:coarse){
    .rpsv-copy h2{
        font-family:"Baloo 2","Arial Rounded MT Bold","Trebuchet MS",sans-serif!important;
        font-weight:500!important;
        font-style:italic!important;
    }
}


/* V0.6.0 — navigation hint moved to top so it never overlaps project text */
.rpsv-gesture-hint,
.rpsv-hint-desktop,
.rpsv-hint-mobile{
    left:50%!important;
    right:auto!important;
    top:max(18px, env(safe-area-inset-top))!important;
    bottom:auto!important;
    transform:translateX(-50%) translateY(-8px)!important;
    z-index:40!important;
    max-width:min(92vw,560px)!important;
}

.rpsv-gesture-hint.is-visible,
.rpsv-hint-desktop.is-visible,
.rpsv-hint-mobile.is-visible{
    transform:translateX(-50%) translateY(0)!important;
}

@media(max-width:782px),(pointer:coarse){
    .rpsv-gesture-hint,
    .rpsv-hint-mobile{
        left:50%!important;
        right:auto!important;
        top:max(12px, env(safe-area-inset-top))!important;
        bottom:auto!important;
        transform:translateX(-50%) translateY(-8px)!important;
        max-width:calc(100vw - 24px)!important;
    }

    .rpsv-gesture-hint.is-visible,
    .rpsv-hint-mobile.is-visible{
        transform:translateX(-50%) translateY(0)!important;
    }
}


/* V0.6.1 FINAL OVERRIDE — hint pinned at top */
.rpsv-gesture-hint,
.rpsv-hint-desktop,
.rpsv-hint-mobile{
    position:absolute!important;
    left:50%!important;
    right:auto!important;
    top:max(14px,env(safe-area-inset-top))!important;
    bottom:auto!important;
    transform:translateX(-50%) translateY(-8px)!important;
    z-index:60!important;
}
.rpsv-gesture-hint.is-visible,
.rpsv-hint-desktop.is-visible,
.rpsv-hint-mobile.is-visible{
    transform:translateX(-50%) translateY(0)!important;
}
@media(max-width:782px),(pointer:coarse){
    .rpsv-hint-mobile{
        top:max(10px,env(safe-area-inset-top))!important;
        bottom:auto!important;
        max-width:calc(100vw - 20px)!important;
    }
}


/* V0.6.2 — full-video preload cover */
.rpsv-preloader{
    position:absolute!important;
    inset:0!important;
    z-index:999!important;
    display:flex!important;
    flex-direction:column!important;
    align-items:center!important;
    justify-content:center!important;
    gap:14px!important;
    width:100%!important;
    height:100%!important;
    background:
        radial-gradient(circle at 50% 42%, rgba(44,37,29,.36), rgba(8,8,9,.92) 58%, #050506 100%)!important;
    color:#fff!important;
    opacity:1;
    visibility:visible;
    transition:opacity .65s ease, visibility .65s ease;
    pointer-events:auto!important;
    box-sizing:border-box;
    padding:28px;
    text-align:center;
}
.rpsv-preloader.is-finished{
    opacity:0!important;
    visibility:hidden!important;
    pointer-events:none!important;
}
.rpsv-load-ring{
    --rpsv-load:0deg;
    position:relative;
    width:180px;
    height:180px;
    border-radius:50%;
    display:grid;
    place-items:center;
    background:conic-gradient(
        from 0deg,
        #e8c47f 0deg,
        #ffd98d var(--rpsv-load),
        rgba(255,255,255,.13) var(--rpsv-load),
        rgba(255,255,255,.13) 360deg
    );
    box-shadow:0 0 34px rgba(231,190,111,.13);
}
.rpsv-load-ring::after{
    content:"";
    position:absolute;
    inset:5px;
    border-radius:50%;
    background:rgba(7,8,9,.96);
    box-shadow:inset 0 0 22px rgba(255,255,255,.025);
}
.rpsv-load-ring-inner{
    position:relative;
    z-index:2;
    width:100%;
    height:100%;
    display:grid;
    place-items:center;
}
.rpsv-load-percent{
    font-family:"Helvetica Neue",Arial,sans-serif;
    font-size:48px;
    line-height:1;
    font-weight:300;
    letter-spacing:-.04em;
    color:#f5d59a;
    text-shadow:0 2px 18px rgba(229,189,112,.18);
}
.rpsv-load-title{
    margin-top:10px;
    font-family:"Helvetica Neue",Arial,sans-serif;
    font-size:clamp(22px,2.1vw,34px);
    line-height:1.15;
    font-weight:300;
    letter-spacing:.01em;
    color:rgba(255,255,255,.96);
}
.rpsv-load-subtitle{
    font-family:"Helvetica Neue",Arial,sans-serif;
    font-size:clamp(14px,1.2vw,18px);
    font-weight:300;
    color:rgba(255,255,255,.55);
}
.rpsv-wrap.is-preloading{
    overflow:hidden;
}
.rpsv-wrap.is-preloading .rpsv-scenes,
.rpsv-wrap.is-preloading .rpsv-gesture-hint,
.rpsv-wrap.is-preloading .rpsv-mobile-scrubber{
    opacity:0!important;
    pointer-events:none!important;
}

@media(max-width:782px),(pointer:coarse){
    .rpsv-load-ring{
        width:148px;
        height:148px;
    }
    .rpsv-load-percent{
        font-size:40px;
    }
    .rpsv-load-title{
        font-size:23px;
    }
    .rpsv-load-subtitle{
        font-size:14px;
    }
}


/* V0.6.6 — opaque loading wallpaper: hidden warm-up video must never be visible */
.rpsv-preloader{
    background:
        radial-gradient(circle at 50% 34%, rgba(70,58,40,.30) 0%, rgba(22,21,20,.97) 38%, #08090a 76%, #050506 100%)!important;
    backdrop-filter:none!important;
    -webkit-backdrop-filter:none!important;
    overflow:hidden!important;
}
.rpsv-preloader::before{
    content:"";
    position:absolute;
    inset:0;
    z-index:0;
    background:
        linear-gradient(115deg, transparent 0 46%, rgba(231,196,127,.035) 46.2% 46.5%, transparent 46.7%),
        radial-gradient(ellipse at 50% 100%, rgba(231,196,127,.06), transparent 48%);
    pointer-events:none;
}
.rpsv-preloader > *{
    position:relative;
    z-index:2;
}
.rpsv-wrap.is-preloading .rpsv-stage video,
.rpsv-wrap.is-preloading video.rpsv-video{
    visibility:hidden!important;
    opacity:0!important;
}


/* V0.7.1 — abstract premium loader artwork */
.rpsv-preloader{
    background-color:#07111a!important;
    background-image:
        linear-gradient(rgba(4,9,14,.16), rgba(4,9,14,.16)),
        url("../img/loading-abstract.png")!important;
    background-position:center center!important;
    background-repeat:no-repeat!important;
    background-size:cover!important;
}
.rpsv-preloader::before,
.rpsv-preloader::after{
    content:none!important;
    display:none!important;
}
.rpsv-preloader > *{
    position:relative!important;
    z-index:3!important;
}


/* V0.7.2 — clean loader background, no baked-in ring/text */
.rpsv-preloader{
    background-color:#071019!important;
    background-image:
        radial-gradient(circle at 50% 45%, rgba(188,151,89,.11), transparent 34%),
        linear-gradient(rgba(3,8,13,.22), rgba(3,8,13,.48)),
        url("../img/loading-abstract-clean.jpg")!important;
    background-position:center!important;
    background-repeat:no-repeat!important;
    background-size:cover!important;
}


/* V0.7.5 — final WhatsApp CTA */
.rpsv-final-cta{
    position:absolute;
    inset:0;
    z-index:80;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:24px;
    box-sizing:border-box;
    background:rgba(4,7,10,.52);
    backdrop-filter:blur(12px);
    -webkit-backdrop-filter:blur(12px);
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    transition:opacity .55s ease, visibility 0s linear .55s;
}
.rpsv-final-cta.is-visible{
    opacity:1;
    visibility:visible;
    pointer-events:auto;
    transition:opacity .55s ease, visibility 0s;
}
.rpsv-final-cta-card{
    position:relative;
    width:min(620px,90vw);
    padding:clamp(28px,4vw,48px);
    border:1px solid rgba(255,255,255,.16);
    border-radius:28px;
    background:
        radial-gradient(circle at 50% 0%, rgba(214,177,108,.14), transparent 40%),
        rgba(10,13,17,.9);
    box-shadow:0 24px 70px rgba(0,0,0,.48), inset 0 1px 0 rgba(255,255,255,.05);
    color:#fff;
    text-align:center;
    transform:translateY(16px) scale(.985);
    transition:transform .55s cubic-bezier(.22,.61,.36,1);
}
.rpsv-final-cta.is-visible .rpsv-final-cta-card{transform:translateY(0) scale(1)}
.rpsv-final-cta-close{
    position:absolute;
    top:12px;
    right:14px;
    width:40px;
    height:40px;
    border:0;
    border-radius:50%;
    background:rgba(255,255,255,.08);
    color:#fff;
    font-size:27px;
    line-height:1;
    cursor:pointer;
}
.rpsv-final-cta-kicker{
    margin-bottom:10px;
    font-family:"Helvetica Neue",Arial,sans-serif;
    font-size:12px;
    font-weight:500;
    letter-spacing:.18em;
    text-transform:uppercase;
    color:#e8c47f;
}
.rpsv-final-cta h2{
    margin:0 0 14px;
    font-family:"Nunito","Helvetica Neue",Arial,sans-serif;
    font-size:clamp(34px,4.8vw,64px);
    line-height:1.03;
    font-weight:500;
    font-style:italic;
    color:#fff;
}
.rpsv-final-cta p{
    margin:0 auto 24px;
    max-width:520px;
    font-family:"Nunito","Helvetica Neue",Arial,sans-serif;
    font-size:clamp(16px,1.5vw,20px);
    line-height:1.5;
    font-weight:300;
    color:rgba(255,255,255,.84);
}
.rpsv-final-cta-button{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:52px;
    padding:0 26px;
    border-radius:999px;
    background:#25D366;
    color:#07150c!important;
    font-family:"Nunito","Helvetica Neue",Arial,sans-serif;
    font-size:16px;
    font-weight:700;
    text-decoration:none!important;
    box-shadow:0 10px 30px rgba(37,211,102,.24);
    transition:transform .2s ease, box-shadow .2s ease;
}
@media(hover:hover) and (pointer:fine){
    .rpsv-final-cta-button:hover{
        transform:translateY(-2px);
        box-shadow:0 14px 34px rgba(37,211,102,.32);
    }
}
@media(max-width:782px),(pointer:coarse){
    .rpsv-final-cta{padding:18px}
    .rpsv-final-cta-card{
        width:min(92vw,520px);
        padding:32px 22px 26px;
        border-radius:24px;
    }
    .rpsv-final-cta h2{font-size:clamp(32px,9.3vw,48px)}
    .rpsv-final-cta p{font-size:16px;line-height:1.45}
    .rpsv-final-cta-button{width:100%;min-height:54px}
}


/* V0.7.7 — mobile CTA responsiveness fix */
@media(max-width:782px),(pointer:coarse){
    .rpsv-final-cta{
        padding:14px!important;
        align-items:center!important;
        justify-content:center!important;
        overflow:hidden!important;
    }

    .rpsv-final-cta-card{
        width:100%!important;
        max-width:calc(100vw - 28px)!important;
        box-sizing:border-box!important;
        padding:28px 18px 22px!important;
        margin:0 auto!important;
        overflow:hidden!important;
    }

    .rpsv-final-cta-button{
        display:flex!important;
        width:100%!important;
        max-width:100%!important;
        min-width:0!important;
        box-sizing:border-box!important;
        padding:0 16px!important;
        min-height:50px!important;
        font-size:15px!important;
        line-height:1.2!important;
        white-space:normal!important;
        text-align:center!important;
        overflow-wrap:anywhere!important;
    }
}

@media(max-width:390px){
    .rpsv-final-cta-card{
        max-width:calc(100vw - 20px)!important;
        padding:26px 14px 20px!important;
    }

    .rpsv-final-cta-button{
        padding:0 12px!important;
        font-size:14px!important;
        min-height:48px!important;
    }
}


/* V0.7.7.1 — Planta humanizada (branch direto da V0.7.7 estável) */
.rpsv-floorplan-open{
    position:absolute;
    left:clamp(16px,2.2vw,28px);
    bottom:clamp(18px,2.6vw,30px);
    z-index:55;
    display:inline-flex;
    align-items:center;
    gap:9px;
    min-height:44px;
    padding:0 16px;
    border:1px solid rgba(255,255,255,.20);
    border-radius:999px;
    background:rgba(7,11,15,.62);
    -webkit-backdrop-filter:blur(10px);
    backdrop-filter:blur(10px);
    color:#fff;
    font-family:"Nunito","Helvetica Neue",Arial,sans-serif;
    font-size:13px;
    font-weight:600;
    cursor:pointer;
    box-shadow:0 12px 30px rgba(0,0,0,.18);
    transition:transform .2s ease,background .2s ease;
}
.rpsv-floorplan-open-icon{
    display:grid;
    place-items:center;
    width:24px;
    height:24px;
    border-radius:7px;
    background:rgba(232,196,127,.16);
    color:#f2cf8a;
    font-size:17px;
    line-height:1;
}
@media(hover:hover) and (pointer:fine){
    .rpsv-floorplan-open:hover{
        transform:translateY(-2px);
        background:rgba(11,17,23,.82);
    }
}

.rpsv-floorplan-modal{
    position:absolute;
    inset:0;
    z-index:95;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:18px;
    box-sizing:border-box;
    background:rgba(3,6,9,.76);
    -webkit-backdrop-filter:blur(14px);
    backdrop-filter:blur(14px);
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    transition:opacity .3s ease,visibility 0s linear .3s;
}
.rpsv-floorplan-modal.is-visible{
    opacity:1;
    visibility:visible;
    pointer-events:auto;
    transition:opacity .3s ease,visibility 0s;
}
.rpsv-floorplan-shell{
    position:relative;
    width:min(1380px,96vw);
    height:min(92vh,940px);
    display:flex;
    flex-direction:column;
    box-sizing:border-box;
    padding:18px;
    border:1px solid rgba(255,255,255,.14);
    border-radius:28px;
    background:rgba(8,12,17,.96);
    box-shadow:0 30px 90px rgba(0,0,0,.42);
    overflow:hidden;
}
.rpsv-floorplan-close{
    position:absolute;
    right:14px;
    top:14px;
    z-index:5;
    width:42px;
    height:42px;
    border:0;
    border-radius:50%;
    background:rgba(255,255,255,.08);
    color:#fff;
    font-size:28px;
    line-height:1;
    cursor:pointer;
}
.rpsv-floorplan-toolbar{
    display:flex;
    align-items:center;
    gap:14px;
    min-height:48px;
    padding:0 54px 14px 4px;
}
.rpsv-floorplan-heading{
    flex:0 0 auto;
    color:#fff;
    font-family:"Nunito","Helvetica Neue",Arial,sans-serif;
    font-size:22px;
    font-weight:500;
    font-style:italic;
}
.rpsv-floorplan-tabs{
    display:flex;
    align-items:center;
    gap:7px;
    margin-left:auto;
}
.rpsv-floorplan-tab,
.rpsv-floorplan-controls button{
    height:38px;
    padding:0 13px;
    border:1px solid rgba(255,255,255,.14);
    border-radius:999px;
    background:rgba(255,255,255,.07);
    color:#fff;
    font-family:"Nunito","Helvetica Neue",Arial,sans-serif;
    font-size:12px;
    font-weight:600;
    cursor:pointer;
}
.rpsv-floorplan-tab.is-active{
    background:#e8c47f;
    border-color:#e8c47f;
    color:#111820;
}
.rpsv-floorplan-controls{
    display:flex;
    align-items:center;
    gap:7px;
}
.rpsv-floorplan-controls button{
    min-width:42px;
    font-size:15px;
}
.rpsv-floorplan-stage{
    position:relative;
    flex:1;
    min-height:0;
    overflow:hidden;
    border-radius:22px;
    background:#f2f2f0;
    touch-action:none;
    cursor:grab;
}
.rpsv-floorplan-stage.is-dragging{cursor:grabbing}
.rpsv-floorplan-image{
    position:absolute;
    left:50%;
    top:50%;
    max-width:100%;
    max-height:100%;
    display:none;
    transform:
        translate(
            calc(-50% + var(--rpsv-fp-x,0px)),
            calc(-50% + var(--rpsv-fp-y,0px))
        )
        scale(var(--rpsv-fp-scale,1));
    transform-origin:center center;
    user-select:none;
    -webkit-user-select:none;
    -webkit-user-drag:none;
    transition:transform .12s ease-out;
}
.rpsv-floorplan-image.is-active{display:block}
.rpsv-floorplan-stage.is-dragging .rpsv-floorplan-image{transition:none}
.rpsv-floorplan-tip{
    padding:11px 4px 0;
    color:rgba(255,255,255,.56);
    font-family:"Nunito","Helvetica Neue",Arial,sans-serif;
    font-size:12px;
    line-height:1.4;
    text-align:center;
}

@media(max-width:782px),(pointer:coarse){
    .rpsv-floorplan-open{
        left:max(12px,env(safe-area-inset-left));
        bottom:max(16px,env(safe-area-inset-bottom));
        min-height:40px;
        padding:0 12px;
        font-size:11px;
        gap:7px;
    }
    .rpsv-floorplan-open-icon{
        width:21px;
        height:21px;
        font-size:15px;
    }
    .rpsv-floorplan-modal{
        padding:8px;
    }
    .rpsv-floorplan-shell{
        width:100%;
        height:100%;
        max-height:none;
        padding:10px;
        border-radius:20px;
    }
    .rpsv-floorplan-close{
        right:10px;
        top:10px;
        width:38px;
        height:38px;
        font-size:25px;
    }
    .rpsv-floorplan-toolbar{
        flex-wrap:wrap;
        align-items:flex-start;
        gap:8px;
        padding:3px 44px 10px 2px;
    }
    .rpsv-floorplan-heading{
        width:100%;
        font-size:18px;
    }
    .rpsv-floorplan-tabs{
        order:2;
        margin-left:0;
        max-width:100%;
        overflow-x:auto;
    }
    .rpsv-floorplan-controls{
        order:3;
        margin-left:auto;
    }
    .rpsv-floorplan-tab,
    .rpsv-floorplan-controls button{
        height:34px;
        padding:0 10px;
        white-space:nowrap;
    }
    .rpsv-floorplan-stage{
        border-radius:15px;
    }
    .rpsv-floorplan-tip{
        padding-top:8px;
        font-size:10px;
    }
}

/* Quando a planta está aberta, ela deve ficar acima do tour e bloquear os elementos de navegação. */
.rpsv-floorplan-modal.is-visible ~ .rpsv-gesture-hint,
.rpsv-floorplan-modal.is-visible ~ .rpsv-mobile-scrubber{
    pointer-events:none!important;
}
