/* ===== keyframe animations for slide art & mascot ===== */
.owl .eye{transform-box:fill-box; transform-origin:center; animation:kBlink 4.2s infinite}
@keyframes kBlink{0%,92%,100%{transform:scaleY(1)} 95%{transform:scaleY(.08)}}
.owl .wing{transform-box:fill-box; transform-origin:top center; animation:kWave 3s ease-in-out infinite}
@keyframes kWave{0%,100%{transform:rotate(0)} 50%{transform:rotate(-14deg)}}
.owl .body-bob{animation:kBob 2.6s ease-in-out infinite}
@keyframes kBob{0%,100%{transform:translateY(0)} 50%{transform:translateY(-2.5px)}}
.a-rock{transform-box:fill-box; transform-origin:50% 18%; animation:kRock 3.4s ease-in-out infinite}
@keyframes kRock{0%,100%{transform:rotate(-4deg)} 50%{transform:rotate(4deg)}}
.a-bob{animation:kBob 2s ease-in-out infinite}
.a-pulse{transform-box:fill-box; transform-origin:center; animation:kPulse 1.8s ease-in-out infinite}
@keyframes kPulse{0%,100%{transform:scale(1); opacity:1} 50%{transform:scale(1.12); opacity:.75}}
.a-moveR{animation:kMoveR 3s ease-in-out infinite}
@keyframes kMoveR{0%{transform:translateX(0)} 50%{transform:translateX(52px)} 100%{transform:translateX(0)}}
.a-moveL{animation:kMoveL 3s ease-in-out infinite}
@keyframes kMoveL{0%{transform:translateX(0)} 50%{transform:translateX(-52px)} 100%{transform:translateX(0)}}
.a-grow{transform-box:fill-box; transform-origin:bottom center; animation:kGrow 2.6s ease-in-out infinite}
@keyframes kGrow{0%,100%{transform:scaleY(.35)} 50%{transform:scaleY(1)}}
.a-draw{stroke-dasharray:600; stroke-dashoffset:600; animation:kDraw 3.2s ease-in-out infinite}
@keyframes kDraw{0%{stroke-dashoffset:600} 60%{stroke-dashoffset:0} 100%{stroke-dashoffset:0}}
.a-floaty{animation:kFloaty 3s ease-in-out infinite}
@keyframes kFloaty{0%,100%{transform:translateY(0) rotate(-6deg)} 50%{transform:translateY(-12px) rotate(8deg)}}
.a-fade1{animation:kFade 6s infinite}
.a-fade2{animation:kFade 6s infinite; animation-delay:1.5s}
.a-fade3{animation:kFade 6s infinite; animation-delay:3s}
.a-fade4{animation:kFade 6s infinite; animation-delay:4.5s}
@keyframes kFade{0%,8%{opacity:0} 18%,70%{opacity:1} 82%,100%{opacity:0}}
.a-swapA{animation:kSwapA 4s infinite}
.a-swapB{animation:kSwapB 4s infinite}
@keyframes kSwapA{0%,40%{opacity:1} 50%,90%{opacity:0} 100%{opacity:1}}
@keyframes kSwapB{0%,40%{opacity:0} 50%,90%{opacity:1} 100%{opacity:0}}
.a-spin{transform-box:fill-box; transform-origin:center; animation:kSpin 6s linear infinite}
@keyframes kSpin{to{transform:rotate(360deg)}}
.a-walk{animation:kWalk 4s ease-in-out infinite}
@keyframes kWalk{0%{transform:translateX(0)} 45%,55%{transform:translateX(96px)} 100%{transform:translateX(0)}}
.a-shake{animation:kShake .4s}
@keyframes kShake{0%,100%{transform:translateX(0)} 25%{transform:translateX(-8px)} 75%{transform:translateX(8px)}}
.a-pop{animation:kPop .45s}
@keyframes kPop{0%{transform:scale(.7)} 60%{transform:scale(1.12)} 100%{transform:scale(1)}}
.confetti{animation:kConfetti 2.6s ease-in forwards}
@keyframes kConfetti{to{transform:translateY(105vh) rotate(720deg); opacity:.6}}
@media(prefers-reduced-motion:reduce){
  *{animation-duration:.01s!important; animation-iteration-count:1!important}
}
