/* Global VIP butterflies — transparent vector artwork, no image background */
.global-butterfly-layer{
  position:fixed;
  inset:0;
  z-index:650;
  overflow:hidden;
  pointer-events:none;
  contain:layout paint;
}
.g-butterfly{
  position:absolute;
  left:0;
  top:0;
  width:58px;
  height:43px;
  opacity:0;
  filter:drop-shadow(0 7px 8px rgba(74,35,63,.18));
  will-change:transform,opacity;
  transform-origin:50% 50%;
}
.g-bf-art{display:block;width:100%;height:100%;overflow:visible}
.g-wing{transform-box:fill-box;transform-origin:center right;animation:gWingLeft .48s ease-in-out infinite alternate}
.g-wing-right{transform-origin:center left;animation-name:gWingRight}
.g-wing-main{fill:var(--wing);stroke:var(--wing-dark);stroke-width:2;stroke-linejoin:round}
.g-wing-inner{fill:var(--wing-soft);opacity:.78}
.g-vein{fill:none;stroke:var(--wing-dark);stroke-width:1.35;stroke-linecap:round;opacity:.34}
.g-body,.g-head{fill:#29222a}
.g-antenna{fill:none;stroke:#29222a;stroke-width:1.5;stroke-linecap:round}
@keyframes gWingLeft{from{transform:perspective(90px) rotateY(0deg)}to{transform:perspective(90px) rotateY(58deg)}}
@keyframes gWingRight{from{transform:perspective(90px) rotateY(0deg)}to{transform:perspective(90px) rotateY(-58deg)}}

.gb-2{width:49px;height:37px;animation:gFlyTwo 18s linear infinite -2s}
.gb-3{width:42px;height:32px;animation:gFlyThree 15.5s cubic-bezier(.42,0,.58,1) infinite -7s}
.gb-4{width:53px;height:40px;animation:gFlyFour 21s linear infinite -10s}
.gb-5{width:37px;height:28px;animation:gFlyFive 13.5s ease-in-out infinite -4s}
.gb-2 .g-wing{animation-duration:.42s}.gb-3 .g-wing{animation-duration:.52s}.gb-4 .g-wing{animation-duration:.46s}.gb-5 .g-wing{animation-duration:.58s}

@keyframes gFlyTwo{
  0%{transform:translate3d(-9vw,18vh,0) rotate(-12deg) scale(.78);opacity:0}
  7%{opacity:.92}
  22%{transform:translate3d(22vw,8vh,0) rotate(11deg) scale(.95)}
  42%{transform:translate3d(48vw,27vh,0) rotate(-8deg) scale(1.03)}
  63%{transform:translate3d(72vw,13vh,0) rotate(12deg) scale(.92)}
  84%{transform:translate3d(91vw,39vh,0) rotate(-5deg) scale(.82);opacity:.9}
  100%{transform:translate3d(109vw,23vh,0) rotate(16deg) scale(.72);opacity:0}
}
@keyframes gFlyThree{
  0%{transform:translate3d(108vw,69vh,0) rotate(12deg) scale(.72);opacity:0}
  9%{opacity:.88}
  28%{transform:translate3d(79vw,54vh,0) rotate(-13deg) scale(.95)}
  50%{transform:translate3d(55vw,76vh,0) rotate(9deg) scale(1)}
  72%{transform:translate3d(30vw,57vh,0) rotate(-11deg) scale(.88)}
  92%{opacity:.84}
  100%{transform:translate3d(-9vw,74vh,0) rotate(-18deg) scale(.68);opacity:0}
}
@keyframes gFlyFour{
  0%{transform:translate3d(15vw,108vh,0) rotate(-10deg) scale(.72);opacity:0}
  8%{opacity:.87}
  25%{transform:translate3d(29vw,78vh,0) rotate(14deg) scale(.9)}
  47%{transform:translate3d(13vw,48vh,0) rotate(-12deg) scale(1.02)}
  67%{transform:translate3d(37vw,29vh,0) rotate(10deg) scale(.91)}
  86%{transform:translate3d(25vw,7vh,0) rotate(-7deg) scale(.82);opacity:.85}
  100%{transform:translate3d(48vw,-10vh,0) rotate(16deg) scale(.68);opacity:0}
}
@keyframes gFlyFive{
  0%{transform:translate3d(106vw,8vh,0) rotate(8deg) scale(.65);opacity:0}
  10%{opacity:.78}
  29%{transform:translate3d(83vw,24vh,0) rotate(-14deg) scale(.88)}
  49%{transform:translate3d(92vw,44vh,0) rotate(13deg) scale(.78)}
  69%{transform:translate3d(70vw,59vh,0) rotate(-9deg) scale(.92)}
  90%{opacity:.75}
  100%{transform:translate3d(104vw,82vh,0) rotate(17deg) scale(.6);opacity:0}
}
.gb-land{width:61px;height:46px;z-index:2}
.gb-land.is-resting .g-wing{animation-duration:1.05s}
.gb-land.is-resting{filter:drop-shadow(0 4px 5px rgba(74,35,63,.22))}

@media(max-width:760px){
  .gb-4,.gb-5{display:none}
  .g-butterfly{transform:scale(.82)}
}
@media(max-width:480px){
  .gb-3{display:none}
  .gb-land{width:46px;height:35px}
  .gb-2{width:38px;height:29px}
}
@media(prefers-reduced-motion:reduce){.global-butterfly-layer{display:none!important}}

/* v2.6 visibility hardening — homepage + all public pages */
.global-butterfly-layer{
  display:block !important;
  visibility:visible !important;
  opacity:1 !important;
  z-index:2147483000 !important;
  contain:none !important;
}
.g-butterfly{
  display:block !important;
  visibility:visible !important;
  animation-play-state:running !important;
}
.gb-land{animation:gFlyOneFallback 17s cubic-bezier(.42,0,.35,1) infinite -3s}
.gb-land.js-controlled{animation:none !important}
@keyframes gFlyOneFallback{
  0%{transform:translate3d(-8vw,42vh,0) rotate(-12deg) scale(.72);opacity:0}
  8%{opacity:1}
  30%{transform:translate3d(28vw,24vh,0) rotate(10deg) scale(.96);opacity:1}
  52%{transform:translate3d(55vw,48vh,0) rotate(-8deg) scale(.86);opacity:1}
  72%{transform:translate3d(76vw,30vh,0) rotate(12deg) scale(1);opacity:1}
  92%{opacity:.96}
  100%{transform:translate3d(108vw,12vh,0) rotate(18deg) scale(.68);opacity:0}
}
/* Do not completely hide the decoration when OS motion reduction is enabled. */
@media(prefers-reduced-motion:reduce){
  .global-butterfly-layer{display:block !important}
  .g-butterfly{animation-duration:42s !important}
  .g-wing{animation-duration:1.25s !important}
}

/* v2.7 — varied butterfly silhouettes: swallowtail, monarch and longwing */
.g-mark{
  fill:none;
  stroke:var(--wing-dark);
  stroke-width:1.45;
  stroke-linecap:round;
  opacity:.38;
}
.g-spot{fill:var(--wing-soft);stroke:var(--wing-dark);stroke-width:.7;opacity:.95}
.bf-swallowtail .g-bf-art{aspect-ratio:120/92}
.bf-monarch .g-bf-art{aspect-ratio:120/88}
.bf-longwing .g-bf-art{aspect-ratio:120/86}
.bf-swallowtail{height:48px}
.bf-longwing{height:34px}
.bf-monarch{height:41px}
.bf-swallowtail .g-wing{animation-duration:.44s}
.bf-monarch .g-wing{animation-duration:.5s}
.bf-longwing .g-wing{animation-duration:.39s}
