/* Twenty-five distinct effects, one for each Bingalo Lab feature. */
@keyframes fxAurora{0%{opacity:0;transform:translateY(14px);filter:hue-rotate(-20deg)}100%{opacity:1;transform:none;filter:none}}
@keyframes fxPulseRing{0%,100%{box-shadow:0 0 0 0 #0a8dcc00}50%{box-shadow:0 0 0 6px #0a8dcc20}}
@keyframes fxChipFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-4px)}}
@keyframes fxShuffleTilt{0%{transform:rotate(-3deg) scale(.96)}70%{transform:rotate(1deg) scale(1.01)}100%{transform:none}}
@keyframes fxClusterRise{0%{clip-path:inset(100% 0 0 round 18px)}100%{clip-path:inset(0 round 18px)}}
@keyframes fxQuietDim{0%{filter:brightness(.72)}100%{filter:brightness(1)}}
@keyframes fxCompassTurn{0%{transform:rotate(-12deg);opacity:0}100%{transform:rotate(0);opacity:1}}
@keyframes fxPriceBreathe{0%,100%{background:#fff}50%{background:#eef9ff}}
@keyframes fxConditionSlide{0%{transform:translateX(-18px);opacity:0}100%{transform:none;opacity:1}}
@keyframes fxLadderClimb{0%{transform:translateY(18px);opacity:0}100%{transform:none;opacity:1}}
@keyframes fxTotalCount{0%{font-variation-settings:'wght' 500;transform:scale(.94)}100%{font-variation-settings:'wght' 750;transform:none}}
@keyframes fxNoteUnfold{0%{transform:scaleY(.25);transform-origin:top;opacity:0}100%{transform:scaleY(1);opacity:1}}
@keyframes fxTimelineDraw{0%{background-size:0 2px}100%{background-size:100% 2px}}
@keyframes fxVenueBounce{0%,100%{transform:translateY(0)}60%{transform:translateY(-5px)}}
@keyframes fxShieldGlow{0%,100%{filter:drop-shadow(0 0 0 #39a9e000)}50%{filter:drop-shadow(0 0 6px #39a9e066)}}
@keyframes fxCheckinWave{0%{border-color:#d9e7ed}50%{border-color:#55b5e7}100%{border-color:#d9e7ed}}
@keyframes fxStarsTwinkle{0%,100%{opacity:.82}50%{opacity:1;text-shadow:0 0 10px #f6bd4d}}
@keyframes fxThemeWash{0%{background-position:0 0}100%{background-position:120% 0}}
@keyframes fxStoryReveal{0%{letter-spacing:2px;opacity:0}100%{letter-spacing:0;opacity:1}}
@keyframes fxShelfGlide{0%{transform:translateX(20px);opacity:0}100%{transform:none;opacity:1}}
@keyframes fxFaqFold{0%{transform:perspective(300px) rotateX(-18deg);opacity:.2}100%{transform:perspective(300px) rotateX(0);opacity:1}}
@keyframes fxCardFlip{0%{transform:rotateY(18deg);opacity:.3}100%{transform:rotateY(0);opacity:1}}
@keyframes fxFreeSpark{0%,100%{outline-color:#43bb8c00}50%{outline:3px solid #43bb8c33}}
@keyframes fxWishDrift{0%{transform:translate(8px,-5px);opacity:0}100%{transform:none;opacity:1}}
@keyframes fxReuseBloom{0%{border-radius:50%;transform:scale(.9)}100%{border-radius:18px;transform:none}}
.fx-aurora-in{animation:fxAurora .55s ease both}.fx-pulse-ring{animation:fxPulseRing 2.6s ease-in-out infinite}.fx-chip-float{animation:fxChipFloat 3s ease-in-out infinite}.fx-shuffle-tilt{animation:fxShuffleTilt .7s ease both}.fx-cluster-rise{animation:fxClusterRise .7s ease both}.fx-quiet-dim{animation:fxQuietDim .8s ease both}.fx-compass-turn{animation:fxCompassTurn .65s cubic-bezier(.2,.7,.2,1) both}.fx-price-breathe{animation:fxPriceBreathe 3.2s ease infinite}.fx-condition-slide{animation:fxConditionSlide .55s ease both}.fx-ladder-climb{animation:fxLadderClimb .6s ease both}.fx-total-count{animation:fxTotalCount .65s ease both}.fx-note-unfold{animation:fxNoteUnfold .6s ease both}.fx-timeline-draw{background-image:linear-gradient(#138ec9,#138ec9);background-repeat:no-repeat;background-position:left bottom;animation:fxTimelineDraw .75s ease both}.fx-venue-bounce{animation:fxVenueBounce 2.8s ease-in-out infinite}.fx-shield-glow{animation:fxShieldGlow 2.6s ease-in-out infinite}.fx-checkin-wave{animation:fxCheckinWave 2.2s ease-in-out infinite}.fx-stars-twinkle{animation:fxStarsTwinkle 2.3s ease-in-out infinite}.fx-theme-wash{background-image:linear-gradient(110deg,#fff 15%,#eaf8ff 45%,#fff 75%);background-size:220% 100%;animation:fxThemeWash 3.5s linear infinite}.fx-story-reveal{animation:fxStoryReveal .7s ease both}.fx-shelf-glide{animation:fxShelfGlide .65s ease both}.fx-faq-fold{animation:fxFaqFold .65s ease both}.fx-card-flip{animation:fxCardFlip .7s ease both}.fx-free-spark{animation:fxFreeSpark 2.7s ease-in-out infinite}.fx-wish-drift{animation:fxWishDrift .7s ease both}.fx-reuse-bloom{animation:fxReuseBloom .75s ease both}.lab-feature-strip article{transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}.lab-feature-strip article:hover{transform:translateY(-4px);border-color:#8bcbea;box-shadow:0 10px 25px #163e5518}.lab-feature-strip article:focus-within{outline:3px solid #087aba33}
@media(prefers-reduced-motion:reduce){.lab-feature-strip article,.lab-shop-preview:before,.compass-dial span:after{animation:none!important;transition:none!important}.lab-feature-strip article:hover{transform:none}}
