/* ---- realistic Pacific flag butterflies ---- */
@keyframes vbP1{0%,100%{left:6%;top:17%;transform:rotate(-8deg) scale(.9)}50%{left:76%;top:28%;transform:rotate(8deg) scale(.95)}}
@keyframes vbP2{0%,100%{left:75%;top:62%;transform:rotate(10deg) scale(.86)}50%{left:8%;top:72%;transform:rotate(-10deg) scale(.9)}}
@keyframes vbP3{0%,100%{left:18%;top:82%;transform:rotate(-12deg) scale(.82)}50%{left:68%;top:48%;transform:rotate(9deg) scale(.88)}}
@keyframes vbP4{0%,100%{left:4%;top:43%;transform:rotate(12deg) scale(.76)}50%{left:38%;top:12%;transform:rotate(-10deg) scale(.82)}}
@keyframes vbDrift{0%,100%{translate:0 0}50%{translate:0 -10px}}
@keyframes vbLeftWing{0%,100%{transform:rotateY(0deg) rotateZ(-1deg)}45%{transform:rotateY(54deg) rotateZ(4deg)}60%{transform:rotateY(14deg) rotateZ(0)}}
@keyframes vbRightWing{0%,100%{transform:rotateY(0deg) rotateZ(1deg)}45%{transform:rotateY(-54deg) rotateZ(-4deg)}60%{transform:rotateY(-14deg) rotateZ(0)}}
@keyframes vbLeftWingAlt{0%,100%{transform:rotateY(0deg) rotateZ(-1deg)}40%{transform:rotateY(58deg) rotateZ(5deg)}55%{transform:rotateY(16deg) rotateZ(0)}}
@keyframes vbRightWingAlt{0%,100%{transform:rotateY(0deg) rotateZ(1deg)}40%{transform:rotateY(-58deg) rotateZ(-5deg)}55%{transform:rotateY(-16deg) rotateZ(0)}}
.page-bf{position:fixed;inset:0;z-index:40;pointer-events:none;overflow:hidden;perspective:1000px}
.page-bf .vbf{position:absolute;will-change:left,top,transform;transform-origin:center center;animation-timing-function:cubic-bezier(.45,0,.35,1)}
.page-bf .bfly{position:relative;width:var(--bf-w,84px);height:calc(var(--bf-w,84px) * .615);transform-style:preserve-3d;animation:vbDrift 3.8s ease-in-out infinite;filter:drop-shadow(0 8px 10px rgba(6,40,58,.25));opacity:.94}
.page-bf .bfly::after{content:"";position:absolute;left:48%;top:20%;width:4%;height:58%;border-radius:50%;background:linear-gradient(#111,#050505);box-shadow:0 0 0 1px rgba(255,255,255,.08);z-index:3}
.page-bf .wing{position:absolute;top:0;width:50.6%;height:100%;background-image:var(--bf-img);background-size:200% 100%;background-repeat:no-repeat;backface-visibility:visible;will-change:transform;transform-style:preserve-3d}
.page-bf .wing.left{left:0;background-position:left center;transform-origin:100% 52%;animation:vbLeftWing var(--flap,1.05s) ease-in-out infinite}
.page-bf .wing.right{right:0;background-position:right center;transform-origin:0% 52%;animation:vbRightWing var(--flap,1.05s) ease-in-out infinite}
.page-bf .vbf.alt .wing.left{animation-name:vbLeftWingAlt}.page-bf .vbf.alt .wing.right{animation-name:vbRightWingAlt}
@media (max-width:560px){.page-bf .vbf{opacity:.88}.page-bf .bfly{width:min(var(--bf-w,76px),64px)}.page-bf .vbf:nth-child(n+4){display:none}}
.page-bf .vbf:nth-child(1){left:6%;top:17%}.page-bf .vbf:nth-child(2){left:75%;top:62%}.page-bf .vbf:nth-child(3){left:18%;top:82%}.page-bf .vbf:nth-child(4){left:4%;top:43%}
@media (prefers-reduced-motion:reduce){.page-bf *, .page-bf *::after{animation:none!important;transition:none!important}}

