/* ============================================================
   Scene animations — lab beakers, factory, molecules
   (used on index page hero + industrial band)
   ============================================================ */

/* ---------- hero lab scene ---------- */
.lab-bg{fill:url(#labPaneGrad);filter:drop-shadow(0 30px 60px rgba(0,0,0,.5))}
.lab-glow{animation:labGlow 5s ease-in-out infinite}
@keyframes labGlow{0%,100%{opacity:.5}50%{opacity:.9}}

/* liquid surface wave */
.liq-wave{animation:liqWave 4.2s ease-in-out infinite;transform-origin:center}
@keyframes liqWave{0%,100%{transform:translateY(0) scaleY(1)}50%{transform:translateY(-5px) scaleY(1.06)}}

/* bubbles inside beakers */
.bub{animation:bubRise var(--d,4s) linear infinite;opacity:0}
@keyframes bubRise{
  0%{transform:translateY(0) scale(.4);opacity:0}
  12%{opacity:.85}
  85%{opacity:.5}
  100%{transform:translateY(var(--up,-120px)) scale(1);opacity:0}
}

/* pipette droplet */
.drop{animation:dropFall 2.6s ease-in infinite}
@keyframes dropFall{
  0%{transform:translateY(0);opacity:0}
  18%{opacity:1}
  92%{transform:translateY(var(--fall,150px));opacity:1}
  100%{transform:translateY(var(--fall,150px));opacity:0}
}

/* floating molecules */
.mol{animation:molFloat 7s ease-in-out infinite}
@keyframes molFloat{0%,100%{transform:translateY(0) rotate(0)}50%{transform:translateY(-14px) rotate(6deg)}}
.ring-spin{transform-origin:center;animation:ringSpin 26s linear infinite}
@keyframes ringSpin{to{transform:rotate(360deg)}}
.pulse-dot{animation:pulseDot 2.6s ease-in-out infinite;transform-origin:center}
@keyframes pulseDot{0%,100%{opacity:.35;transform:scale(.8)}50%{opacity:1;transform:scale(1.15)}}

/* steam / vapor from factory stacks */
.steam{animation:steamRise var(--d,6s) ease-out infinite;opacity:0}
@keyframes steamRise{
  0%{transform:translateY(0) scale(.5);opacity:0}
  22%{opacity:.5}
  100%{transform:translateY(var(--up,-70px)) scale(1.6);opacity:0}
}

/* product flow inside pipes */
.pipe-flow{stroke-dasharray:10 14;animation:dashFlow 3s linear infinite}
@keyframes dashFlow{to{stroke-dashoffset:-48}}
.pipe-flow.slow{animation-duration:6s}

/* factory scene ambient lift */
.plant-lift{animation:plantLift 9s ease-in-out infinite}
@keyframes plantLift{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}

/* beaker liquid shimmer sweep */
.shimmer{animation:shimmer 5.5s linear infinite}
@keyframes shimmer{0%{transform:translateX(-60px)}100%{transform:translateX(320px)}}

@media (prefers-reduced-motion: reduce){
  .bub,.drop,.steam,.liq-wave,.mol,.ring-spin{animation:none!important}
}
