
.site-footer-with-fireflies {
  position: relative;
  isolation: isolate;
  overflow: hidden;
}

.site-footer-with-fireflies .footer-inner {
  position: relative;
  z-index: 2;
}

.footer-firefly-field {
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  overflow: hidden;
}

.footer-firefly {
  position: absolute;
  width: 4px;
  height: 4px;
  border-radius: 50%;
  opacity: 0;
  filter: blur(0.2px);
}

.footer-ff-gold { background: radial-gradient(circle, rgba(255,215,0,0.95) 0%, rgba(255,215,0,0) 70%); box-shadow: 0 0 8px rgba(255,215,0,0.6), 0 0 16px rgba(255,215,0,0.3); }
.footer-ff-jade { background: radial-gradient(circle, rgba(0,255,136,0.95) 0%, rgba(0,255,136,0) 70%); box-shadow: 0 0 8px rgba(0,255,136,0.5), 0 0 16px rgba(0,255,136,0.25); }
.footer-ff-azure { background: radial-gradient(circle, rgba(0,180,255,0.95) 0%, rgba(0,180,255,0) 70%); box-shadow: 0 0 8px rgba(0,180,255,0.5), 0 0 16px rgba(0,180,255,0.25); }
.footer-ff-violet { background: radial-gradient(circle, rgba(155,89,254,0.95) 0%, rgba(155,89,254,0) 70%); box-shadow: 0 0 8px rgba(155,89,254,0.55), 0 0 16px rgba(155,89,254,0.28); }
.footer-ff-teal { background: radial-gradient(circle, rgba(0,212,170,0.95) 0%, rgba(0,212,170,0) 70%); box-shadow: 0 0 8px rgba(0,212,170,0.55), 0 0 16px rgba(0,212,170,0.28); }
.footer-ff-magenta { background: radial-gradient(circle, rgba(224,64,251,0.95) 0%, rgba(224,64,251,0) 70%); box-shadow: 0 0 8px rgba(224,64,251,0.5), 0 0 16px rgba(224,64,251,0.25); }
.footer-ff-amber { background: radial-gradient(circle, rgba(255,179,0,0.95) 0%, rgba(255,179,0,0) 70%); box-shadow: 0 0 8px rgba(255,179,0,0.55), 0 0 16px rgba(255,179,0,0.28); }
.footer-ff-rose { background: radial-gradient(circle, rgba(255,105,180,0.95) 0%, rgba(255,105,180,0) 70%); box-shadow: 0 0 8px rgba(255,105,180,0.5), 0 0 16px rgba(255,105,180,0.25); }

@keyframes footer-ff-1 { 0%{transform:translate(0,0) scale(1);} 25%{transform:translate(8vw,-12vh) scale(1.1);} 50%{transform:translate(20vw,-28vh) scale(0.9);} 75%{transform:translate(35vw,-18vh) scale(1.05);} 100%{transform:translate(50vw,-38vh) scale(1);} }
@keyframes footer-ff-2 { 0%{transform:translate(0,0) scale(1);} 25%{transform:translate(-10vw,14vh) scale(1.15);} 50%{transform:translate(-22vw,8vh) scale(0.85);} 75%{transform:translate(-32vw,22vh) scale(1.05);} 100%{transform:translate(-44vw,36vh) scale(1);} }
@keyframes footer-ff-3 { 0%{transform:translate(0,0) scale(1);} 25%{transform:translate(12vw,-10vh) scale(1.05);} 50%{transform:translate(-8vw,-22vh) scale(1.1);} 75%{transform:translate(18vw,-35vh) scale(0.95);} 100%{transform:translate(-12vw,-52vh) scale(1);} }
@keyframes footer-ff-4 { 0%{transform:translate(0,0) scale(1);} 20%{transform:translate(-15vw,-8vh) scale(1.08);} 45%{transform:translate(6vw,-30vh) scale(0.92);} 70%{transform:translate(-28vw,-16vh) scale(1.12);} 100%{transform:translate(10vw,-44vh) scale(1);} }
@keyframes footer-ff-5 { 0%{transform:translate(0,0) scale(1);} 30%{transform:translate(22vw,10vh) scale(0.9);} 55%{transform:translate(38vw,-5vh) scale(1.06);} 80%{transform:translate(18vw,20vh) scale(0.95);} 100%{transform:translate(42vw,8vh) scale(1);} }
@keyframes footer-ff-6 { 0%{transform:translate(0,0) scale(1);} 20%{transform:translate(-6vw,-18vh) scale(1.12);} 40%{transform:translate(14vw,-32vh) scale(0.88);} 70%{transform:translate(-4vw,-46vh) scale(1.08);} 100%{transform:translate(20vw,-58vh) scale(1);} }
@keyframes footer-ff-7 { 0%{transform:translate(0,0) scale(1);} 25%{transform:translate(16vw,8vh) scale(0.93);} 50%{transform:translate(-5vw,22vh) scale(1.07);} 75%{transform:translate(28vw,14vh) scale(0.96);} 100%{transform:translate(10vw,38vh) scale(1);} }
@keyframes footer-ff-8 { 0%{transform:translate(0,0) scale(1);} 30%{transform:translate(-20vw,6vh) scale(1.1);} 60%{transform:translate(-38vw,-10vh) scale(0.9);} 80%{transform:translate(-22vw,-28vh) scale(1.04);} 100%{transform:translate(-45vw,-18vh) scale(1);} }
@keyframes footer-ff-9 { 0%{transform:translate(0,0) scale(1);} 20%{transform:translate(5vw,-20vh) scale(1.06);} 50%{transform:translate(25vw,-8vh) scale(0.87);} 75%{transform:translate(40vw,-26vh) scale(1.1);} 100%{transform:translate(55vw,-14vh) scale(1);} }
@keyframes footer-ff-10 { 0%{transform:translate(0,0) scale(1);} 25%{transform:translate(-12vw,-14vh) scale(0.94);} 50%{transform:translate(4vw,-36vh) scale(1.09);} 75%{transform:translate(-18vw,-22vh) scale(0.91);} 100%{transform:translate(8vw,-48vh) scale(1);} }
@keyframes footer-ff-blink-a { 0%,100%{opacity:0.10;} 20%{opacity:0.92;} 40%{opacity:0.30;} 60%{opacity:0.88;} 80%{opacity:0.48;} }
@keyframes footer-ff-blink-b { 0%,100%{opacity:0.08;} 15%{opacity:0.78;} 35%{opacity:0.22;} 58%{opacity:0.95;} 78%{opacity:0.38;} }
@keyframes footer-ff-blink-c { 0%,100%{opacity:0.12;} 25%{opacity:0.85;} 45%{opacity:0.40;} 65%{opacity:0.72;} 85%{opacity:0.18;} }

.footer-f-1 { left: 8%; top: 62%; animation: footer-ff-1 38s ease-in-out infinite, footer-ff-blink-a 5.0s ease-in-out infinite; }
.footer-f-2 { left: 84%; top: 22%; animation: footer-ff-2 46s ease-in-out infinite, footer-ff-blink-b 6.0s ease-in-out infinite; animation-delay:-12s,-2s; }
.footer-f-3 { left: 48%; top: 82%; animation: footer-ff-3 52s ease-in-out infinite, footer-ff-blink-c 7.0s ease-in-out infinite; animation-delay:-28s,-4s; }
.footer-f-4 { left: 28%; top: 36%; animation: footer-ff-4 44s ease-in-out infinite, footer-ff-blink-a 5.5s ease-in-out infinite; animation-delay:-7s,-1s; }
.footer-f-5 { left: 63%; top: 55%; animation: footer-ff-5 58s ease-in-out infinite, footer-ff-blink-b 8.0s ease-in-out infinite; animation-delay:-34s,-3s; }
.footer-f-6 { left: 91%; top: 74%; animation: footer-ff-6 41s ease-in-out infinite, footer-ff-blink-c 4.8s ease-in-out infinite; animation-delay:-5s,-1.5s; }
.footer-f-7 { left: 14%; top: 18%; animation: footer-ff-7 49s ease-in-out infinite, footer-ff-blink-a 6.5s ease-in-out infinite; animation-delay:-19s,-3.5s; }
.footer-f-8 { left: 42%; top: 42%; animation: footer-ff-8 36s ease-in-out infinite, footer-ff-blink-b 5.2s ease-in-out infinite; animation-delay:-9s,-0.8s; }
.footer-f-9 { left: 24%; top: 86%; animation: footer-ff-9 55s ease-in-out infinite, footer-ff-blink-c 7.8s ease-in-out infinite; animation-delay:-40s,-2.2s; }
.footer-f-10 { left: 70%; top: 12%; animation: footer-ff-10 43s ease-in-out infinite, footer-ff-blink-a 5.8s ease-in-out infinite; animation-delay:-15s,-4.5s; }
