/* Vet's motion. 8-bit cadence: every animation uses steps(), nothing eases. Two to four frames each.
   Rules of the road: subtle, never loud, never blocks a tap, fully off with reduced motion. */
.vet-svg{overflow:visible;display:block;width:100%;height:100%}
.vet-svg .v-all,.vet-svg .v-tail,.vet-svg .v-ant,.vet-svg .v-ear,.vet-svg .v-eyes,.vet-svg .v-sp{transform-box:fill-box}
.vet-svg .v-all{transform-origin:50% 100%;animation:v-bob 1.2s steps(1,end) infinite}
.vet-svg .v-tail{transform-origin:0 100%;animation:v-wag .8s steps(1,end) infinite}
.vet-svg .v-ant{transform-origin:50% 100%;animation:v-sway 2.4s steps(1,end) infinite}
.vet-svg .v-ball{animation:v-ping 1.6s steps(1,end) infinite}
.vet-svg .v-ear{transform-origin:0 0;animation:v-flop 3.6s steps(1,end) infinite}
.vet-svg .v-eyes{transform-origin:50% 50%;animation:v-blink 4.4s steps(1,end) infinite}
.vet-svg[data-mood="cheer"] .v-eyes,.vet-svg[data-mood="wink"] .v-eyes{animation:none}
.vet-svg[data-mood="alert"] .v-tail{animation-duration:.4s}
.vet-svg.mo .m-o{opacity:1}
.vet-svg.mo .m-c{opacity:0}
.vet-svg.hop .v-all{animation:v-hop .4s steps(1,end) 1}
.vet-svg.shake .v-all{animation:v-shake .36s steps(1,end) 1}
.vet-svg.spark .v-sp{transform-origin:50% 50%;animation:v-sp .7s steps(1,end) 1 both}
.vet-svg.spark .v-sp:nth-of-type(2){animation-delay:.1s}
.vet-svg.spark .v-sp:nth-of-type(3){animation-delay:.2s}
.vet-svg.spark .v-sp:nth-of-type(4){animation-delay:.05s}
.vet-svg.spark .v-sp:nth-of-type(5){animation-delay:.15s}
@keyframes v-bob{0%{transform:translateY(0)}50%{transform:translateY(-3px)}100%{transform:translateY(0)}}
@keyframes v-wag{0%{transform:rotate(0)}34%{transform:rotate(9deg)}67%{transform:rotate(18deg)}100%{transform:rotate(0)}}
@keyframes v-sway{0%{transform:rotate(0)}60%{transform:rotate(-5deg)}80%{transform:rotate(4deg)}100%{transform:rotate(0)}}
@keyframes v-ping{0%{fill:#FF7A1A}50%{fill:#FFB067}100%{fill:#FF7A1A}}
@keyframes v-flop{0%{transform:rotate(0)}88%{transform:rotate(7deg)}94%{transform:rotate(-3deg)}100%{transform:rotate(0)}}
@keyframes v-blink{0%{transform:scaleY(1)}94%{transform:scaleY(.12)}97%{transform:scaleY(1)}100%{transform:scaleY(1)}}
@keyframes v-hop{0%{transform:translateY(0)}25%{transform:translateY(-9px)}50%{transform:translateY(-14px)}75%{transform:translateY(-5px)}100%{transform:translateY(0)}}
@keyframes v-shake{0%{transform:translateX(0)}20%{transform:translateX(-4px)}40%{transform:translateX(4px)}60%{transform:translateX(-3px)}80%{transform:translateX(3px)}100%{transform:translateX(0)}}
@keyframes v-sp{0%{opacity:0;transform:scale(0)}20%{opacity:1;transform:scale(1)}60%{opacity:1;transform:scale(1.5)}100%{opacity:0;transform:scale(0)}}
.vet-live{cursor:pointer;-webkit-tap-highlight-color:transparent}
.vet-live .vet-svg{max-width:100%}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
@media(prefers-reduced-motion:reduce){.vet-svg *,.vet-svg{animation:none!important}}
