/* MyTheme Studio mascot rig animations (paired with mascots.js) */
.tsm { overflow: visible; display: block; }
.tsm .tsm-body { transform-box: view-box; transform-origin: 60px 108px; animation: tsm-idle 2.6s ease-in-out infinite; }
.tsm .tsm-eyes { transform-box: view-box; transform-origin: 60px 60px; animation: tsm-blink 4.2s infinite; }
.tsm .tsm-arm { transform-box: fill-box; }
.tsm .tsm-arm-l { transform-origin: 100% 20%; }
.tsm .tsm-arm-r { transform-origin: 0% 20%; }
.tsm .tsm-mouth-sad, .tsm .tsm-mouth-talk, .tsm .tsm-tear { opacity: 0; }
.tsm .tsm-shadow { transform-box: fill-box; transform-origin: center; animation: tsm-shadow 2.6s ease-in-out infinite; }
.tsm .tsm-thread { opacity: 0; }
.tsm .tsm-blink { animation: tsm-led 1.4s steps(2) infinite; }

.tsm[data-mood="happy"] .tsm-body { animation: tsm-jump .55s cubic-bezier(.34, 1.56, .64, 1) 3; }
.tsm[data-mood="happy"] .tsm-arm-l { animation: tsm-wave-l .28s ease-in-out infinite alternate; }
.tsm[data-mood="happy"] .tsm-arm-r { animation: tsm-wave-r .28s ease-in-out infinite alternate; }
.tsm[data-mood="happy"] .tsm-eyes { animation: tsm-squint .55s ease 3; }

.tsm[data-mood="sad"] .tsm-body { animation: tsm-sad 1.2s ease-in-out infinite; }
.tsm[data-mood="sad"] .tsm-mouth-happy { opacity: 0; }
.tsm[data-mood="sad"] .tsm-mouth-sad { opacity: 1; }
.tsm[data-mood="sad"] .tsm-tear { animation: tsm-tear 1.1s ease-in infinite; }
.tsm[data-mood="sad"] .tsm-arm-l { transform: rotate(-20deg); }
.tsm[data-mood="sad"] .tsm-arm-r { transform: rotate(20deg); }

.tsm[data-mood="talk"] .tsm-mouth-happy { opacity: 0; }
.tsm[data-mood="talk"] .tsm-mouth-talk { opacity: 1; transform-box: fill-box; transform-origin: center; animation: tsm-talk .15s ease-in-out infinite alternate; }
.tsm[data-mood="talk"] .tsm-arm-r { animation: tsm-wave-r .35s ease-in-out infinite alternate; }

.tsm[data-mood="wave"] .tsm-arm-r { animation: tsm-wave-r .25s ease-in-out 6 alternate; }
.tsm[data-mood="wave"] .tsm-body { animation: tsm-tilt .5s ease-in-out 3 alternate; }

.tsm[data-mood="drop"] .tsm-thread { opacity: .7; }
.tsm[data-mood="drop"] .tsm-body, .tsm[data-mood="drop"] .tsm-thread { animation: tsm-drop .9s cubic-bezier(.34, 1.56, .64, 1) both; }

.tsm[data-mood="spin"] .tsm-body { animation: tsm-spin .7s cubic-bezier(.34, 1.56, .64, 1); }

@keyframes tsm-idle { 0%, 100% { transform: translateY(0) scale(1, 1); } 50% { transform: translateY(-4px) scale(1.02, .98); } }
@keyframes tsm-shadow { 0%, 100% { transform: scaleX(1); opacity: .25; } 50% { transform: scaleX(.85); opacity: .18; } }
@keyframes tsm-blink { 0%, 92%, 100% { transform: scaleY(1); } 95% { transform: scaleY(.1); } }
@keyframes tsm-squint { 50% { transform: scaleY(.45); } }
@keyframes tsm-jump {
  0% { transform: translateY(0) scale(1.15, .85); }
  40% { transform: translateY(-26px) scale(.92, 1.1); }
  70% { transform: translateY(0) scale(1.12, .88); }
  100% { transform: translateY(0) scale(1); }
}
@keyframes tsm-wave-l { from { transform: rotate(10deg); } to { transform: rotate(-55deg); } }
@keyframes tsm-wave-r { from { transform: rotate(-10deg); } to { transform: rotate(55deg); } }
@keyframes tsm-sad { 0%, 100% { transform: translateY(4px) scale(1.03, .95); } 50% { transform: translateY(6px) scale(1.05, .93) rotate(-2deg); } }
@keyframes tsm-tear { 0% { opacity: 0; transform: translateY(0); } 20% { opacity: 1; } 100% { opacity: 0; transform: translateY(16px); } }
@keyframes tsm-talk { from { transform: scaleY(.35); } to { transform: scaleY(1.1); } }
@keyframes tsm-tilt { from { transform: rotate(-6deg); } to { transform: rotate(6deg); } }
@keyframes tsm-drop { 0% { transform: translateY(-140px); } 100% { transform: translateY(0); } }
@keyframes tsm-spin { 0% { transform: rotate(0) scale(1); } 50% { transform: rotate(200deg) scale(1.15); } 100% { transform: rotate(360deg) scale(1); } }
@keyframes tsm-led { 50% { opacity: .3; } }

@media (prefers-reduced-motion: reduce) {
  .tsm *, .tsm { animation: none !important; }
}
