/* HBM Builder Studio 3.1 animation library: 64 presets */
.hbm-animating {
  animation-duration: var(--hbm-anim-duration, .8s);
  animation-delay: var(--hbm-anim-delay, 0s);
  animation-timing-function: var(--hbm-anim-easing, cubic-bezier(.2,.8,.2,1));
  animation-iteration-count: var(--hbm-anim-repeat, 1);
  animation-fill-mode: both;
  transform-origin: var(--hbm-anim-origin, center);
  will-change: transform, opacity, filter, clip-path;
}
@media (prefers-reduced-motion: reduce) {
  .hbm-animating { animation-duration: .001ms !important; animation-delay: 0s !important; animation-iteration-count: 1 !important; }
}

@keyframes hbm-fade-in { from{opacity:0} to{opacity:1} }
@keyframes hbm-fade-up { from{opacity:0;transform:translateY(36px)} to{opacity:1;transform:none} }
@keyframes hbm-fade-down { from{opacity:0;transform:translateY(-36px)} to{opacity:1;transform:none} }
@keyframes hbm-fade-left { from{opacity:0;transform:translateX(44px)} to{opacity:1;transform:none} }
@keyframes hbm-fade-right { from{opacity:0;transform:translateX(-44px)} to{opacity:1;transform:none} }
@keyframes hbm-zoom-in { from{opacity:0;transform:scale(.72)} to{opacity:1;transform:scale(1)} }
@keyframes hbm-zoom-soft { from{opacity:0;transform:scale(.94);filter:blur(8px)} to{opacity:1;transform:scale(1);filter:none} }
@keyframes hbm-pop-in { 0%{opacity:0;transform:scale(.35)} 68%{opacity:1;transform:scale(1.08)} 100%{transform:scale(1)} }
@keyframes hbm-bounce-in { 0%{opacity:0;transform:scale(.3)} 45%{transform:scale(1.12)} 70%{transform:scale(.94)} 100%{opacity:1;transform:scale(1)} }
@keyframes hbm-flip-x-in { from{opacity:0;transform:perspective(800px) rotateX(80deg)} to{opacity:1;transform:perspective(800px) rotateX(0)} }
@keyframes hbm-flip-y-in { from{opacity:0;transform:perspective(800px) rotateY(80deg)} to{opacity:1;transform:perspective(800px) rotateY(0)} }
@keyframes hbm-rotate-in { from{opacity:0;transform:rotate(-18deg) scale(.78)} to{opacity:1;transform:none} }
@keyframes hbm-slide-up { from{transform:translateY(110%)} to{transform:none} }
@keyframes hbm-slide-down { from{transform:translateY(-110%)} to{transform:none} }
@keyframes hbm-slide-left { from{transform:translateX(110%)} to{transform:none} }
@keyframes hbm-slide-right { from{transform:translateX(-110%)} to{transform:none} }
@keyframes hbm-blur-in { from{opacity:0;filter:blur(24px);transform:scale(1.08)} to{opacity:1;filter:none;transform:none} }
@keyframes hbm-focus-in { from{opacity:0;letter-spacing:.35em;filter:blur(10px)} to{opacity:1;letter-spacing:normal;filter:none} }
@keyframes hbm-swing-in { 0%{opacity:0;transform:rotateX(-70deg);transform-origin:top} 70%{transform:rotateX(12deg);transform-origin:top} 100%{opacity:1;transform:none} }
@keyframes hbm-roll-in { from{opacity:0;transform:translateX(-100%) rotate(-120deg)} to{opacity:1;transform:none} }
@keyframes hbm-elastic-in { 0%{opacity:0;transform:scale(.2)} 55%{opacity:1;transform:scale(1.18)} 72%{transform:scale(.9)} 86%{transform:scale(1.06)} 100%{transform:scale(1)} }

@keyframes hbm-pulse { 0%,100%{transform:scale(1)} 50%{transform:scale(1.06)} }
@keyframes hbm-heartbeat { 0%,100%{transform:scale(1)} 14%{transform:scale(1.12)} 28%{transform:scale(1)} 42%{transform:scale(1.08)} 70%{transform:scale(1)} }
@keyframes hbm-rubber-band { 0%,100%{transform:scale(1)} 30%{transform:scaleX(1.24) scaleY(.76)} 40%{transform:scaleX(.76) scaleY(1.24)} 60%{transform:scaleX(1.12) scaleY(.88)} 75%{transform:scaleX(.96) scaleY(1.04)} }
@keyframes hbm-wobble { 0%,100%{transform:none} 15%{transform:translateX(-22px) rotate(-4deg)} 30%{transform:translateX(16px) rotate(3deg)} 45%{transform:translateX(-10px) rotate(-2deg)} 60%{transform:translateX(6px) rotate(1deg)} 75%{transform:translateX(-3px)} }
@keyframes hbm-shake-x { 0%,100%{transform:none} 20%,60%{transform:translateX(-9px)} 40%,80%{transform:translateX(9px)} }
@keyframes hbm-shake-y { 0%,100%{transform:none} 20%,60%{transform:translateY(-9px)} 40%,80%{transform:translateY(9px)} }
@keyframes hbm-jello { 0%,100%{transform:none} 22%{transform:skewX(-12deg) skewY(-12deg)} 33%{transform:skewX(7deg) skewY(7deg)} 44%{transform:skewX(-4deg) skewY(-4deg)} 55%{transform:skewX(2deg) skewY(2deg)} }
@keyframes hbm-tada { 0%,100%{transform:scale(1)} 10%,20%{transform:scale(.92) rotate(-3deg)} 30%,50%,70%,90%{transform:scale(1.08) rotate(3deg)} 40%,60%,80%{transform:scale(1.08) rotate(-3deg)} }
@keyframes hbm-flash { 0%,50%,100%{opacity:1} 25%,75%{opacity:.2} }
@keyframes hbm-glow-pulse { 0%,100%{filter:drop-shadow(0 0 0 rgba(56,248,108,0))} 50%{filter:drop-shadow(0 0 18px var(--hbm-studio-accent,#38f86c))} }
@keyframes hbm-float { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-14px)} }
@keyframes hbm-bob { 0%,100%{transform:translateY(0) rotate(0)} 50%{transform:translateY(-8px) rotate(1.5deg)} }
@keyframes hbm-swing { 0%,100%{transform:rotate(0)} 20%{transform:rotate(11deg)} 40%{transform:rotate(-8deg)} 60%{transform:rotate(5deg)} 80%{transform:rotate(-3deg)} }
@keyframes hbm-tilt { 0%,100%{transform:perspective(700px) rotateX(0) rotateY(0)} 25%{transform:perspective(700px) rotateX(5deg) rotateY(-5deg)} 75%{transform:perspective(700px) rotateX(-5deg) rotateY(5deg)} }
@keyframes hbm-breathe { 0%,100%{transform:scale(1);opacity:.92} 50%{transform:scale(1.035);opacity:1} }
@keyframes hbm-neon-flicker { 0%,18%,22%,25%,53%,57%,100%{opacity:1;filter:drop-shadow(0 0 10px var(--hbm-studio-accent,#38f86c))} 20%,24%,55%{opacity:.35;filter:none} }

@keyframes hbm-fade-out { from{opacity:1} to{opacity:0} }
@keyframes hbm-fade-up-out { from{opacity:1;transform:none} to{opacity:0;transform:translateY(-38px)} }
@keyframes hbm-fade-down-out { from{opacity:1;transform:none} to{opacity:0;transform:translateY(38px)} }
@keyframes hbm-zoom-out { from{opacity:1;transform:scale(1)} to{opacity:0;transform:scale(.65)} }
@keyframes hbm-pop-out { 0%{opacity:1;transform:scale(1)} 30%{transform:scale(1.08)} 100%{opacity:0;transform:scale(.2)} }
@keyframes hbm-slide-up-out { from{transform:none} to{transform:translateY(-115%)} }
@keyframes hbm-slide-down-out { from{transform:none} to{transform:translateY(115%)} }
@keyframes hbm-slide-left-out { from{transform:none} to{transform:translateX(-115%)} }
@keyframes hbm-slide-right-out { from{transform:none} to{transform:translateX(115%)} }
@keyframes hbm-blur-out { from{opacity:1;filter:none} to{opacity:0;filter:blur(22px);transform:scale(.9)} }
@keyframes hbm-flip-x-out { from{opacity:1;transform:perspective(800px) rotateX(0)} to{opacity:0;transform:perspective(800px) rotateX(82deg)} }
@keyframes hbm-rotate-out { from{opacity:1;transform:none} to{opacity:0;transform:rotate(24deg) scale(.7)} }

@keyframes hbm-type-reveal { from{clip-path:inset(0 100% 0 0)} to{clip-path:inset(0 0 0 0)} }
@keyframes hbm-clip-wipe-left { from{clip-path:inset(0 0 0 100%)} to{clip-path:inset(0 0 0 0)} }
@keyframes hbm-clip-wipe-right { from{clip-path:inset(0 100% 0 0)} to{clip-path:inset(0 0 0 0)} }
@keyframes hbm-clip-wipe-up { from{clip-path:inset(100% 0 0 0)} to{clip-path:inset(0 0 0 0)} }
@keyframes hbm-gradient-shift { 0%{background-position:0% 50%} 50%{background-position:100% 50%} 100%{background-position:0% 50%} }
@keyframes hbm-shimmer { from{background-position:200% 0} to{background-position:-200% 0} }
@keyframes hbm-hue-spin { from{filter:hue-rotate(0)} to{filter:hue-rotate(360deg)} }
@keyframes hbm-border-draw { 0%{box-shadow:inset 0 0 0 0 var(--hbm-studio-accent,#38f86c)} 50%{box-shadow:inset 0 0 0 4px var(--hbm-studio-accent,#38f86c)} 100%{box-shadow:inset 0 0 0 1px var(--hbm-studio-accent,#38f86c)} }
@keyframes hbm-scanline { from{background-position:0 -120px} to{background-position:0 120px} }
@keyframes hbm-glitch { 0%,100%{transform:none;filter:none} 20%{transform:translate(-3px,2px);filter:hue-rotate(35deg)} 40%{transform:translate(3px,-2px);clip-path:inset(15% 0 55%)} 60%{transform:translate(-2px,1px);clip-path:inset(60% 0 10%)} 80%{transform:translate(2px,0);filter:saturate(1.8)} }
@keyframes hbm-orbit { from{transform:rotate(0) translateX(8px) rotate(0)} to{transform:rotate(360deg) translateX(8px) rotate(-360deg)} }
@keyframes hbm-ripple { 0%{box-shadow:0 0 0 0 color-mix(in srgb,var(--hbm-studio-accent,#38f86c) 55%,transparent)} 100%{box-shadow:0 0 0 24px transparent} }
@keyframes hbm-card-lift { 0%,100%{transform:translateY(0);box-shadow:0 10px 24px rgba(0,0,0,.25)} 50%{transform:translateY(-12px);box-shadow:0 24px 42px rgba(0,0,0,.36)} }
@keyframes hbm-card-tilt { 0%,100%{transform:perspective(900px) rotateX(0) rotateY(0)} 25%{transform:perspective(900px) rotateX(4deg) rotateY(-7deg)} 75%{transform:perspective(900px) rotateX(-4deg) rotateY(7deg)} }
@keyframes hbm-magnetic-pulse { 0%,100%{transform:scale(1);filter:saturate(1)} 40%{transform:scale(1.05);filter:saturate(1.5)} 70%{transform:scale(.985);filter:saturate(1.15)} }
