/* Zählwiese Memory v213: hand-painted pair celebrations and faster cuddling. */
#app .memory127-page .zw195-cuddle.zw212-cuddle,
#app .memory127-page .zw212-cuddle .zw195-cuddle-animal,
#app .memory127-page .zw212-cuddle .zw195-cuddle-heart {
  animation-duration:2.6s!important;
}
/* Entire celebration is outside the clipped memory grid, without stealing touches. */
.zw213-pair-fx {
  position:fixed!important;inset:0!important;width:100vw!important;height:100dvh!important;
  z-index:999997!important;pointer-events:none!important;overflow:hidden!important;
  contain:layout style paint!important;isolation:isolate!important;
}
.zw213-pair-fx img{position:absolute!important;display:block!important;object-fit:contain!important;pointer-events:none!important;user-select:none!important;-webkit-user-drag:none!important;}
.zw213-pair-fx .zw213-confetti{
  opacity:0;width:clamp(11px,3.5vw,17px)!important;height:clamp(15px,4.5vw,23px)!important;
  filter:drop-shadow(0 1px 1px #6f593843)!important;
  animation:zw213-confetti-flight var(--duration,2300ms) cubic-bezier(.19,.57,.41,1) var(--delay,0ms) both!important;
  will-change:transform,opacity!important;
}
.zw213-pair-fx .zw213-balloon {
  opacity:0;width:clamp(34px,9vw,54px)!important;height:clamp(62px,17vw,92px)!important;
  transform-origin:50% 90%!important;
  filter:drop-shadow(0 2px 2px #6f593848)!important;
  animation:zw213-balloon-flight var(--duration,2550ms) cubic-bezier(.3,.05,.27,1) var(--delay,0ms) both!important;
  will-change:transform,opacity!important;
}
@keyframes zw213-confetti-flight{
  0%{opacity:0;transform:translate3d(0,6px,0) rotate(0deg) scale(.5)}
  12%{opacity:1}
  38%{opacity:1;transform:translate3d(var(--mid-x),var(--mid-y),0) rotate(var(--mid-rot)) scale(1.08)}
  77%{opacity:1}
  100%{opacity:0;transform:translate3d(var(--end-x),var(--end-y),0) rotate(var(--end-rot)) scale(.78)}
}
@keyframes zw213-balloon-flight{
  0%{opacity:0;transform:translate3d(0,28px,0) rotate(-5deg) scale(.62)}
  17%{opacity:1}
  55%{opacity:1;transform:translate3d(var(--sway),-105px,0) rotate(var(--tilt)) scale(.9)}
  80%{opacity:.96}
  100%{opacity:0;transform:translate3d(var(--end-x),-232px,0) rotate(-7deg) scale(1)}
}
/* Keep simple success feedback accessible for children with reduced motion. */
@media(prefers-reduced-motion:reduce){
  .zw213-pair-fx .zw213-confetti{animation-duration:450ms!important;}
  .zw213-pair-fx .zw213-balloon{animation-duration:900ms!important;}
  #app .memory127-page .zw212-cuddle .zw195-cuddle-animal{animation-duration:.01ms!important;}
  #app .memory127-page .zw195-cuddle.zw212-cuddle{animation:none!important;opacity:1!important;}
}
