/* Picknick 2.1: same optical weight for all real pencil-drawn foods. */
#app .zw107 .zw107-food-button img.zw231-food{
 position:absolute!important;inset:12%!important;
 width:76%!important;height:76%!important;max-width:76%!important;max-height:76%!important;
 object-fit:contain!important;object-position:center!important;
 filter:drop-shadow(0 2px 1px #644c3770)!important;
 pointer-events:none!important;user-select:none!important;-webkit-user-select:none!important;
 transform-origin:50% 50%!important;
 animation:zw231-food-breathe 3.2s calc(-1.6s + var(--zw231-stagger,0s)) ease-in-out infinite;
}
#app .zw107 .zw107-goal-piece img.zw231-food,
#app .zw107 .zw107-collected img.zw231-food,
#app .zw107 .zw117-reward-food img.zw231-food{
 position:static!important;inset:auto!important;display:block!important;
 width:100%!important;height:100%!important;max-width:100%!important;max-height:100%!important;
 object-fit:contain!important;object-position:center!important;animation:none!important;
 transform:none!important;filter:drop-shadow(0 1px 1px #72543b66)!important;
}
#app .zw107 .zw107-food-button.zw231-popped img.zw231-food{
 animation:zw231-pick .39s ease-out 1!important;
}
@keyframes zw231-food-breathe{
 0%,100%{transform:translate3d(0,1px,0) rotate(-2.5deg) scale(.95)}
 50%{transform:translate3d(0,-3px,0) rotate(2.5deg) scale(1.035)}
}
@keyframes zw231-pick{
 0%{transform:scale(1) rotate(0)}
 32%{transform:scale(.87) rotate(-10deg)}
 68%{transform:scale(1.18) rotate(8deg)}
 100%{transform:scale(1)}
}
/* Correct icon scale and crop across paper order board and the draggable deck. */
#app .zw107 .zw107-goal-food{overflow:visible!important}
#app .zw107 .zw107-goal-piece{display:flex!important;align-items:center!important;justify-content:center!important}
#app .zw107 .zw107-food-button{overflow:visible!important}
#app .zw107 .zw107-food-button.zw107-lift img.zw231-food{animation:none!important}
/* Extra ambient character motion, but only on the raster character paintings. */
#app .zw107:not(.zw117-arrived) .zw107-friend:not(.zw109-joy):not(.zw229-friend-happy) .zw229-friend-rest{
 animation:zw231-friend-breathe 3.6s ease-in-out infinite alternate;
 transform-origin:50% 88%;
}
#app .zw107 .zw107-igor .zw229-friend-rest{animation-delay:-2.1s!important}
@keyframes zw231-friend-breathe{
 from{transform:translateY(3px) rotate(-2.5deg) scale(.96)}
 to{transform:translateY(-5px) rotate(2.5deg) scale(1.04)}
}
/* More expressive accepted basket bounce without moving the drop target while fingers drag. */
#app .zw107 .zw107-basket-target.zw107-accepted:not(.zw107-hover){
 animation:zw231-basket-cheer .52s cubic-bezier(.19,.75,.3,1)!important;
}
@keyframes zw231-basket-cheer{
 0%,100%{transform:scale(1) rotate(0)}
 32%{transform:scale(1.055) translateY(-7px) rotate(-2.7deg)}
 58%{transform:scale(.98) translateY(1px) rotate(2.2deg)}
}
/* Meal takes place inside the actual reward image, not a new overlay or mockup. */
#app .zw107 .zw231-eating-food{
 position:absolute;z-index:155!important;object-fit:contain!important;
 transform:translate(-50%,-50%);
 filter:drop-shadow(0 3px 2px #6c4c3677)!important;
 pointer-events:none;user-select:none;
}
#app .zw107 .zw231-joy{
 position:absolute;z-index:150!important;display:block;object-fit:contain;
 pointer-events:none;user-select:none;
}
#app .zw107 .zw117-reward-food.zw231-eaten{
 opacity:.12!important;transition:opacity .24s ease!important;
 animation:none!important;
}
#app .zw107.zw231-feasting .zw117-reward-food:not(.zw231-eaten){
 animation:zw231-food-on-plate 1.3s ease-in-out infinite alternate!important;
}
@keyframes zw231-food-on-plate{
 from{transform:translateY(0) rotate(-2deg)}
 to{transform:translateY(-4px) rotate(2deg)}
}
#app .zw107.zw231-feasting .zw117-reward-friend.zw231-reaching,
#app .zw107.zw231-feasting .zw117-reward-friend.zw231-chewing{
 animation:zw231-real-eating .31s ease-in-out infinite alternate!important;
 transform-origin:50% 72%!important;
}
#app .zw107.zw231-feasting .zw117-reward-friend.zw231-reaching{
 animation:zw231-reaching .65s ease-in-out infinite alternate!important;
}
@keyframes zw231-real-eating{
 0%{transform:translateY(0) rotate(-4deg) scale(1)}
 100%{transform:translateY(5px) rotate(4deg) scale(1.025,.97)}
}
@keyframes zw231-reaching{
 0%{transform:translateY(1px) rotate(-1deg)}
 100%{transform:translateY(-9px) rotate(4deg) scale(1.025)}
}
#app .zw107.zw231-feasting .zw229-reward-plate{
 animation:zw231-plate-shiver 1.7s ease-in-out infinite alternate!important
}
@keyframes zw231-plate-shiver{
 0%,100%{transform:rotate(-3deg)}
 50%{transform:rotate(3deg)}
}
#app .zw107.zw231-meal-finale .zw117-reward-friend{
 animation:zw231-after-meal .8s ease-in-out 3 alternate!important;
}
#app .zw107.zw231-meal-finale .zw117-reward-igor{animation-delay:.17s!important}
@keyframes zw231-after-meal{
 0%{transform:translateY(0) rotate(-2deg)}
 50%{transform:translateY(-15px) rotate(8deg) scale(1.05)}
 100%{transform:translateY(-4px) rotate(-4deg) scale(1)}
}
@media (prefers-reduced-motion:reduce){
 #app .zw107 .zw107-food-button img.zw231-food,
 #app .zw107 .zw229-friend-rest,
 #app .zw107 .zw117-reward-friend,
 #app .zw107 .zw229-reward-plate,
 #app .zw107 .zw117-reward-food{animation:none!important;transition:none!important}
}
