/* Articulated actors use a fixed stage coordinate system; all paint is tokenized. */
:root{--tito-fur:#ae6840;--tito-light:#ffce99;--tito-line:#68412e;--bia-fur:#fff8ed;--bia-pink:#f6afbd;--leo-shell:#398b69;--leo-skin:#a5d77c;--actor-eye:#302d38;--actor-shine:#fff;--water:#66cce7;--water-light:#d7faff;--prop-leaf:#6bb868;--prop-blue:#659bd8;--prop-yellow:#ffe066;--prop-red:#ee8a83;--actor-shadow:rgba(38,74,47,.18)}
#palco.cartoon #personagens{inset:0;padding:0;height:100%;display:block;pointer-events:none}
#palco.cartoon #fundo img{animation:none}
.cartoon-actor{position:absolute;width:25%;max-width:300px;aspect-ratio:1;bottom:6%;transition:left 2.4s ease-in-out,bottom 1.8s ease-in-out;transform-origin:50% 90%;filter:drop-shadow(0 8px 4px var(--actor-shadow))}
.cartoon-actor svg{width:100%;height:100%;overflow:visible}
.actor-body{transform-origin:100px 160px;animation:actor-breathe 3.6s ease-in-out infinite}
.actor-head{transform-origin:100px 95px;animation:actor-look 6s ease-in-out infinite}
.actor-eye{fill:var(--actor-eye);transform-box:fill-box;transform-origin:center;animation:actor-blink 5.1s infinite}
.actor-mouth{fill:none;stroke:var(--actor-eye);stroke-width:3;stroke-linecap:round}
.actor-arm-left{transform-origin:68px 117px}.actor-arm-right{transform-origin:132px 117px}
.actor-foot-left{transform-origin:78px 158px}.actor-foot-right{transform-origin:120px 158px}
.actor-ear{transform-origin:100px 70px}
.actor-tail{transform-origin:61px 145px;animation:tail-curl 4s ease-in-out infinite}
.cartoon-actor[data-action=walk] .actor-foot-left{animation:actor-step .65s infinite alternate}
.cartoon-actor[data-action=walk] .actor-foot-right{animation:actor-step .65s infinite alternate-reverse}
.cartoon-actor[data-action=walk] .actor-arm-left,.cartoon-actor[data-action=walk] .actor-arm-right{animation:actor-swing .65s infinite alternate}
.cartoon-actor[data-action=hop]{animation:actor-hop 1.1s infinite}
.cartoon-actor[data-action=wave] .actor-arm-right,.cartoon-actor[data-action=ask] .actor-arm-right{animation:actor-wave 1.6s ease-in-out infinite}
.cartoon-actor[data-action=stretch] .actor-arm-left{transform:rotate(140deg)}
.cartoon-actor[data-action=stretch] .actor-arm-right{transform:rotate(-140deg)}
.cartoon-actor[data-action=stretch] .actor-body{animation:actor-stretch 4s ease-in-out infinite}
.cartoon-actor[data-action=clap] .actor-arm-left{animation:actor-clap-left .7s infinite alternate}
.cartoon-actor[data-action=clap] .actor-arm-right{animation:actor-clap-right .7s infinite alternate}
.cartoon-actor[data-action=look] .actor-head{animation:actor-curious 4s infinite alternate}
.cartoon-actor[data-action=sniff] .actor-body{transform:rotate(13deg) translateY(9px);animation:none}
.cartoon-actor[data-action=tired] .actor-body{transform:translateY(23px) scaleY(.86);animation:none}
.cartoon-actor[data-action=tired] .actor-head{transform:rotate(12deg);animation:none}
.cartoon-actor[data-action=hug] .actor-arm-left{transform:rotate(-65deg)}
.cartoon-actor[data-action=hug] .actor-arm-right{transform:rotate(65deg)}
.cartoon-actor[data-action=drink] .actor-arm-right{transform:rotate(-130deg)}
.actor-cup{display:none;fill:var(--prop-blue);stroke:var(--water-light);stroke-width:2}
.cartoon-actor[data-action=drink] .actor-cup{display:block}
.cartoon-actor[data-action=drink] .actor-head{animation:actor-sip 3s infinite}
.cartoon-actor[data-action=listen] .actor-head{transform:rotate(-14deg);animation:none}
.cartoon-actor[data-action=sing] .actor-mouth{animation:actor-talk .45s infinite alternate;transform-origin:100px 83px}
.cartoon-props{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.cartoon-props .butterfly{transform-box:fill-box;transform-origin:center;animation:butterfly-travel 12s ease-in-out infinite alternate}
.butterfly-wing{transform-box:fill-box;transform-origin:center;animation:butterfly-wing .3s infinite alternate}
.cartoon-props .fish{animation:fish-swim 12s linear infinite}
.cartoon-props .ripple{stroke:var(--water-light);stroke-width:3;fill:none;animation:stream-flow 2s linear infinite}
#palco.cartoon.paused *,#palco.cartoon.paused *::before{animation-play-state:paused!important;transition:none!important}
@keyframes actor-breathe{50%{transform:scaleY(1.015)}}
@keyframes actor-look{0%,35%,100%{transform:rotate(0)}50%,75%{transform:rotate(-5deg)}}
@keyframes actor-blink{0%,43%,47%,100%{transform:scaleY(1)}45%{transform:scaleY(.08)}}
@keyframes actor-step{from{transform:rotate(-24deg)}to{transform:rotate(24deg)}}
@keyframes actor-swing{from{transform:rotate(-18deg)}to{transform:rotate(18deg)}}
@keyframes actor-wave{0%,100%{transform:rotate(-125deg)}50%{transform:rotate(-155deg)}}
@keyframes actor-hop{0%,70%,100%{transform:translateY(0)}35%{transform:translateY(-25px) rotate(-3deg)}}
@keyframes actor-clap-left{to{transform:rotate(-60deg)}}
@keyframes actor-clap-right{to{transform:rotate(60deg)}}
@keyframes actor-curious{to{transform:rotate(15deg) translateY(-4px)}}
@keyframes actor-stretch{50%{transform:scaleY(1.08)}}
@keyframes actor-sip{50%{transform:rotate(-12deg)}}
@keyframes actor-talk{to{transform:scaleY(1.8)}}
@keyframes tail-curl{50%{transform:rotate(9deg)}}
@keyframes butterfly-travel{from{transform:translate(-170px,30px)}50%{transform:translate(30px,-50px)}to{transform:translate(240px,20px)}}
@keyframes butterfly-wing{to{transform:scaleX(.3)}}
@keyframes fish-swim{from{transform:translateX(-250px)}to{transform:translateX(1100px)}}
@keyframes stream-flow{to{stroke-dashoffset:-80}}
@media(max-width:640px){.cartoon-actor{width:31%;bottom:8%}}
@media(prefers-reduced-motion:reduce){.cartoon-actor{transition:none}.cartoon-actor *,.cartoon-props *{animation:none!important}}