/* LokiBots mascots (Elad's orange family) */
.lm { overflow: visible; }
.lm .lm-body { transform-box: view-box; transform-origin: 100px 170px; animation: lm-bounce 2.6s ease-in-out infinite; animation-delay: var(--d); }
.lm .lm-wob { transform-box: view-box; transform-origin: 100px 104px; animation: lm-wob 5.2s ease-in-out infinite; animation-delay: var(--d); }
.lm .lm-shadow { transform-box: fill-box; transform-origin: center; animation: lm-shadow 2.6s ease-in-out infinite; animation-delay: var(--d); }
.lm .lm-eyes { transform-box: fill-box; transform-origin: center; animation: lm-blink 4.4s infinite; animation-delay: var(--d); }
.lm .lm-look { animation: lm-look 7s ease-in-out infinite; animation-delay: var(--d); }
.lm .lm-look-up { transform: translate(5px, -6px); animation: lm-ponder 2.4s ease-in-out infinite; }
.lm .lm-heart { transform-box: fill-box; transform-origin: center; animation: lm-beat .9s ease-in-out infinite; }
.lm .lm-z { animation: lm-z 2.4s ease-in-out infinite; }
.lm.mood-happy .lm-body { animation: lm-hop 1.1s cubic-bezier(.3,.1,.3,1) infinite; animation-delay: var(--d); }
.lm.mood-sleepy .lm-body { animation: lm-breathe 3.6s ease-in-out infinite; }
.lm.mood-thinking .lm-wob { animation: lm-tilt 2.4s ease-in-out infinite; }
.lm.mood-surprised .lm-body { animation: lm-jolt .5s ease-out 1, lm-bounce 2.6s ease-in-out .5s infinite; }
.lm.k-star .lm-wob, .lm.k-puff .lm-wob { animation: lm-spin 9s ease-in-out infinite; }
.lm.k-tri .lm-wob { animation: lm-wob 3.4s ease-in-out infinite; }
:hover > .lm .lm-body, .lm:hover .lm-body { animation: lm-squish .6s ease-in-out infinite; }
@keyframes lm-bounce { 0%,100% { transform: translateY(0) scale(1,1); } 45% { transform: translateY(-9px) scale(.97,1.03); } 90% { transform: translateY(0) scale(1.05,.95); } }
@keyframes lm-hop { 0%,100% { transform: translateY(0) scale(1.06,.94); } 40% { transform: translateY(-22px) scale(.95,1.06); } 70% { transform: translateY(0) scale(1.08,.92); } }
@keyframes lm-breathe { 0%,100% { transform: scale(1,1); } 50% { transform: scale(1.04,.96); } }
@keyframes lm-jolt { 0% { transform: scale(1); } 30% { transform: translateY(-16px) scale(.9,1.12); } 100% { transform: scale(1); } }
@keyframes lm-squish { 0%,100% { transform: scale(1,1); } 30% { transform: scale(1.12,.88); } 60% { transform: translateY(-10px) scale(.92,1.08); } }
@keyframes lm-wob { 0%,100% { transform: rotate(0); } 25% { transform: rotate(-4deg); } 75% { transform: rotate(4deg); } }
@keyframes lm-tilt { 0%,100% { transform: rotate(-6deg); } 50% { transform: rotate(-10deg); } }
@keyframes lm-spin { 0%,100% { transform: rotate(-6deg); } 50% { transform: rotate(10deg); } }
@keyframes lm-shadow { 0%,100% { transform: scaleX(1); opacity: .3; } 45% { transform: scaleX(.82); opacity: .18; } }
@keyframes lm-blink { 0%,92%,100% { transform: scaleY(1); } 95% { transform: scaleY(.1); } }
@keyframes lm-look { 0%,30%,100% { transform: translate(0,0); } 40%,55% { transform: translate(-5px,1px); } 65%,85% { transform: translate(5px,-2px); } }
@keyframes lm-ponder { 0%,100% { transform: translate(5px,-6px); } 50% { transform: translate(-2px,-7px); } }
@keyframes lm-beat { 0%,100% { transform: scale(1); } 50% { transform: scale(1.25); } }
@keyframes lm-z { 0% { opacity: 0; transform: translate(0,6px); } 50% { opacity: 1; } 100% { opacity: 0; transform: translate(8px,-14px); } }
@media (prefers-reduced-motion: reduce) { .lm * { animation: none !important; } }
