/* Lui hero animation — transform/opacity only. Layers: .lui-anim (pop/duck) > .lui-look (cursor) > .lui-idle (bob) > .lui-act (wave/happy/blink) > img */
.lui-anim{position:absolute;bottom:0;z-index:8;pointer-events:none;transform:translateY(105%);transition:transform .55s cubic-bezier(.34,1.56,.64,1)}
.lui-anim.in{animation:lui-pop .9s cubic-bezier(.34,1.56,.64,1) .35s both}
.lui-anim.ready{animation:none;transform:translateY(0)}
.lui-anim.ready.duck{transform:translateY(72%);transition-timing-function:cubic-bezier(.5,0,.75,0)}
@keyframes lui-pop{0%{transform:translateY(105%)}60%{transform:translateY(-10%)}80%{transform:translateY(3%)}100%{transform:translateY(0)}}
.lui-look{transform:translate(var(--lx,0px),0) rotate(var(--lr,0deg));transform-origin:50% 100%;transition:transform .35s ease-out}
.lui-idle{animation:lui-bob 3.4s ease-in-out infinite;transform-origin:50% 100%}
@keyframes lui-bob{0%,100%{transform:translateY(0) rotate(-1.2deg)}50%{transform:translateY(-5px) rotate(1.2deg)}}
.lui-act{transform-origin:50% 100%}
.lui-act img{display:block;width:100%;height:auto;transition:opacity .08s}
.lui-act .blink-img{position:absolute;inset:0;opacity:0}
.lui-act.wave{animation:lui-wave 1s ease-in-out}
@keyframes lui-wave{0%,100%{transform:rotate(0)}20%{transform:rotate(-7deg)}40%{transform:rotate(6deg)}60%{transform:rotate(-5deg)}80%{transform:rotate(3deg)}}
.lui-act.happy{animation:lui-happy .6s cubic-bezier(.34,1.56,.64,1)}
@keyframes lui-happy{0%{transform:translateY(0) scale(1)}35%{transform:translateY(-16%) scale(1.04,.97)}65%{transform:translateY(0) scale(.98,1.03)}100%{transform:translateY(0) scale(1)}}
.lui-act.blink{animation:lui-blink .16s ease-in-out}
@keyframes lui-blink{50%{transform:scaleY(.97)}}
.lui-act.blink.swap .blink-img{opacity:1}.lui-act.blink.swap .main-img{opacity:0}
.lui-anim .bubble{opacity:0;transform:scale(.6) translateY(8px);transform-origin:0 100%;transition:opacity .25s,transform .35s cubic-bezier(.34,1.56,.64,1)}
.lui-anim .bubble.show{opacity:1;transform:none}
.lui-anim .bubble .caret{display:inline-block;width:2px;height:1em;background:currentColor;margin-left:2px;vertical-align:-2px;animation:lui-caret .7s steps(1) infinite}
@keyframes lui-caret{50%{opacity:0}}
@media (prefers-reduced-motion:reduce){
 .lui-anim,.lui-anim.in{animation:none!important;transform:none!important;transition:none!important}
 .lui-idle,.lui-act,.lui-act.wave,.lui-act.happy,.lui-act.blink{animation:none!important}
 .lui-look{transform:none!important;transition:none}
 .lui-anim .bubble{opacity:1;transform:none;transition:none}.lui-anim .bubble .caret{display:none}
}
