.touch-pet-stage{touch-action:pan-y;overscroll-behavior-y:auto;user-select:none;-webkit-user-select:none}
#mascot3d{pointer-events:none!important;touch-action:pan-y!important}
#customPet3d{display:none;position:absolute;inset:0;width:100%;height:100%;z-index:3;pointer-events:none;filter:drop-shadow(0 18px 14px #344f6630)}
.pet-visual.custom-3d #customPet3d{display:block}.pet-visual.custom-3d #mascot,.pet-visual.custom-3d #mascot3d{display:none!important}.pet-visual.custom-3d{overflow:hidden}
.pet-game-hud{position:absolute;z-index:12;top:8px;left:12px;right:12px;display:flex;align-items:center;gap:7px;pointer-events:none;color:#fff;text-shadow:0 1px 4px #24164f}
.pet-game-hud span{font-size:.72rem;font-weight:900;white-space:nowrap;max-width:42%;overflow:hidden;text-overflow:ellipsis}.pet-game-hud>b{height:8px;flex:1;overflow:hidden;background:#30235933;border:1px solid #fff9;border-radius:20px}.pet-game-hud>b i{display:block;width:12%;height:100%;background:linear-gradient(90deg,#ffd93d,#ff7bb3);border-radius:inherit;transition:width .35s}.pet-game-hud em{font-size:.7rem;font-style:normal;font-weight:1000;background:#382365cc;padding:3px 7px;border-radius:20px}
.pet-visual{will-change:transform}.pet-visual.pet-idle{animation:livingIdle 2.4s ease-in-out infinite}.pet-visual.pet-listen{animation:livingListen .8s ease-in-out infinite alternate}.pet-visual.pet-excited{animation:livingExcited .62s cubic-bezier(.2,.8,.3,1) 2}.pet-visual.pet-chase{animation:livingChase 1.05s cubic-bezier(.18,.8,.25,1)}
.pet-toy-flight{position:fixed;z-index:999;font-size:3rem;pointer-events:none;filter:drop-shadow(0 8px 8px #24164f55);transition:transform .65s cubic-bezier(.15,.85,.25,1),opacity .15s}.pet-spark{position:absolute;z-index:20;pointer-events:none;font-size:1.35rem;animation:petSpark .9s ease-out forwards}
.pet-visual #petReactionVideo{object-fit:contain!important;border-radius:0!important}.pet-visual.reacting #mascot3d,.pet-visual.reacting #mascot{visibility:hidden!important}
@keyframes livingIdle{0%,100%{transform:translateY(0) scale(1)}50%{transform:translateY(-5px) scale(1.012)}}@keyframes livingListen{to{transform:rotate(2.5deg) translateY(-3px)}}@keyframes livingExcited{40%{transform:translateY(-20px) scale(1.06)}70%{transform:rotate(-3deg)}}@keyframes livingChase{35%{transform:translate(-44px,-22px) rotate(-6deg)}72%{transform:translate(48px,-13px) rotate(7deg)}}@keyframes petSpark{to{transform:translateY(-55px) scale(1.7) rotate(18deg);opacity:0}}
@media(max-width:390px){.pet-game-hud span{max-width:35%;font-size:.64rem}.pet-game-hud em{font-size:.62rem}.pet-supply-dock{z-index:15}}
@media(prefers-reduced-motion:reduce){.pet-visual.pet-idle,.pet-visual.pet-listen{animation:none}}
/* Every PASSAROO is alive: species-aware reactions for image-based pets. */
#petVisual:not(.buddy-3d).pet-idle #mascot{animation:passaroo-breathe 2.8s ease-in-out infinite}
#petVisual:not(.buddy-3d).pet-listen #mascot{animation:passaroo-listen .85s ease-in-out}
#petVisual:not(.buddy-3d).pet-excited #mascot{animation:passaroo-excited .48s cubic-bezier(.2,.8,.2,1) 3}
#petVisual:not(.buddy-3d).pet-chase #mascot{animation:passaroo-chase .9s cubic-bezier(.2,.8,.25,1)}
#petVisual:not(.buddy-3d).pet-eat #mascot{animation:passaroo-nibble .8s ease-in-out 2}
#petVisual:not(.buddy-3d).pet-drink #mascot{animation:passaroo-drink .85s ease-in-out 2}
#petVisual:not(.buddy-3d).pet-talk #mascot{animation:passaroo-talk .32s ease-in-out 4}
#petVisual[data-pet-group="bird"] #mascot{transform-origin:50% 70%}
#petVisual[data-pet-group="cat"] #mascot{transform-origin:50% 82%}
#petVisual[data-pet-group="farm"] #mascot{transform-origin:50% 88%}
#petVisual[data-pet-group="cat"].pet-chase #mascot{animation:passaroo-pounce .82s cubic-bezier(.18,.8,.2,1)}
#petVisual[data-pet-group="bird"].pet-excited #mascot,#petVisual[data-pet-group="bird"].pet-chase #mascot{animation:passaroo-flap .42s ease-in-out 4}
#petVisual[data-pet-group="farm"].pet-excited #mascot,#petVisual[data-pet-group="farm"].pet-chase #mascot{animation:passaroo-stomp .48s ease-in-out 3}
#petVisual[data-pet-group="exotic"].pet-excited #mascot,#petVisual[data-pet-group="exotic"].pet-chase #mascot{animation:passaroo-prowl .72s ease-in-out 2}
#petVisual[data-pet-group="roamie"] #mascot{filter:drop-shadow(0 0 14px #ff7bd0aa) drop-shadow(0 14px 13px #375b6b2c)}
#petVisual[data-pet-group="roamie"].pet-idle #mascot{animation:passaroo-float 2.2s ease-in-out infinite}
#petVisual[data-pet-group="roamie"].pet-excited #mascot,#petVisual[data-pet-group="roamie"].pet-chase #mascot{animation:passaroo-magic .55s ease-in-out 3}
@keyframes passaroo-breathe{0%,100%{transform:translateY(0) scale(1)}50%{transform:translateY(-7px) scale(1.015)}}
@keyframes passaroo-listen{0%,100%{transform:rotate(0)}35%{transform:rotate(-7deg) translateY(-7px)}70%{transform:rotate(5deg) translateY(-4px)}}
@keyframes passaroo-excited{0%,100%{transform:translateY(0) rotate(0) scale(1)}42%{transform:translateY(-42px) rotate(-7deg) scale(1.07)}72%{transform:translateY(-10px) rotate(6deg) scale(1.03)}}
@keyframes passaroo-chase{0%{transform:translateX(0) rotate(0)}25%{transform:translateX(-58px) translateY(-18px) rotate(-10deg)}58%{transform:translateX(64px) translateY(-30px) rotate(12deg) scale(1.08)}100%{transform:translateX(0) rotate(0)}}
@keyframes passaroo-nibble{0%,100%{transform:translateY(0)}45%{transform:translateY(12px) scale(.985) rotate(-2deg)}}
@keyframes passaroo-drink{0%,100%{transform:rotate(0) translateY(0)}45%{transform:rotate(5deg) translateY(14px)}}
@keyframes passaroo-talk{0%,100%{transform:scale(1)}50%{transform:scale(1.035) translateY(-4px)}}
@keyframes passaroo-pounce{0%,100%{transform:translate(0) scale(1)}28%{transform:translate(-35px,12px) scale(1.08,.9)}58%{transform:translate(48px,-35px) rotate(8deg) scale(.96,1.08)}}
@keyframes passaroo-flap{0%,100%{transform:translateY(0) rotate(0) scale(1)}50%{transform:translateY(-32px) rotate(-4deg) scale(1.08,.94)}}
@keyframes passaroo-stomp{0%,100%{transform:translateY(0) rotate(0)}40%{transform:translateY(-17px) rotate(-3deg)}65%{transform:translateY(6px) rotate(3deg) scale(1.03,.96)}}
@keyframes passaroo-prowl{0%,100%{transform:translateX(0) rotate(0)}30%{transform:translate(-45px,-10px) rotate(-5deg)}65%{transform:translate(50px,-22px) rotate(6deg) scale(1.05)}}
@keyframes passaroo-float{0%,100%{transform:translateY(0) rotate(-1deg)}50%{transform:translateY(-14px) rotate(2deg) scale(1.025)}}
@keyframes passaroo-magic{0%,100%{transform:translateY(0) rotate(0) scale(1)}35%{transform:translateY(-35px) rotate(-12deg) scale(1.08)}70%{transform:translateY(-14px) rotate(12deg) scale(.98)}}
.touch-pet-stage.action-hit{animation:passaroo-stage-hit .42s ease-out}
.pet-supply,.pet-mic{cursor:pointer;transition:transform .14s ease,filter .14s ease}
.pet-supply:active,.pet-mic:active{transform:scale(.86)!important;filter:drop-shadow(0 2px 0 #fff) drop-shadow(0 0 18px #ff4fc7)!important}
@keyframes passaroo-stage-hit{0%{filter:saturate(1)}45%{filter:saturate(1.35) brightness(1.08)}100%{filter:saturate(1)}}
@media (prefers-reduced-motion:reduce){#petVisual:not(.buddy-3d) #mascot{animation-duration:.01ms!important;animation-iteration-count:1!important}}
