/* Sixy stickers: how each one moves (js/sixy/draw.js draws them). */
  /* ================= Sixy moves ================= */
  .sx .fx { opacity: 0; }
  .sx .eyes { animation: sx-blink 4.4s infinite; }
  .sx .crl { animation: sx-sway 2.8s ease-in-out infinite; }
  .sx .hand { animation: sx-wiggle 1.6s ease-in-out infinite; }
  .sx .bod { animation: sx-breathe 2.8s ease-in-out infinite; }

  @keyframes sx-blink { 0%, 90%, 100% { transform: scaleY(1); } 93% { transform: scaleY(.1); } }
  @keyframes sx-sway { 0%, 100% { transform: rotate(-4deg); } 50% { transform: rotate(4deg); } }
  @keyframes sx-wiggle { 0%, 100% { transform: rotate(-8deg); } 50% { transform: rotate(10deg); } }
  @keyframes sx-breathe { 0%, 100% { transform: scale(1, 1); } 50% { transform: scale(1.025, .975); } }
  @keyframes sx-bigWave { from { transform: rotate(-8deg); } to { transform: rotate(8deg); } }
  @keyframes sx-slowWave { from { transform: rotate(-3deg); } to { transform: rotate(12deg); } }
  @keyframes sx-pop { 0% { opacity: 0; transform: scale(.3); } 25% { opacity: 1; transform: scale(1.15); } 40%, 80% { opacity: 1; transform: scale(1); } 100% { opacity: 0; transform: scale(1); } }
  @keyframes sx-float { 0% { opacity: 0; transform: translateY(8px) scale(.6); } 25% { opacity: 1; } 100% { opacity: 0; transform: translateY(-28px) scale(1.1); } }
  @keyframes sx-beat { 0%, 100% { transform: scale(1); } 15% { transform: scale(1.4); } 30% { transform: scale(1); } 45% { transform: scale(1.25); } }
  @keyframes sx-glow { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.3); } }
  @keyframes sx-waddle { 0%, 100% { transform: rotate(-5deg); } 50% { transform: rotate(5deg); } }
  @keyframes sx-lift { 0%, 50%, 100% { transform: translateY(0); } 25% { transform: translateY(-6px); } }
  @keyframes sx-lag { 0%, 100% { transform: rotate(-9deg); } 50% { transform: rotate(9deg); } }
  @keyframes sx-jump { 0%, 100% { transform: translateY(0) scale(1, 1); } 10% { transform: translateY(0) scale(1.08, .9); } 45% { transform: translateY(-20px) scale(.96, 1.05); } 72% { transform: translateY(0) scale(1.05, .94); } 84% { transform: translateY(0) scale(1, 1); } }
  @keyframes sx-shrink { 0%, 100% { transform: scale(1); opacity: .1; } 45% { transform: scale(.6); opacity: .04; } }
  @keyframes sx-spark { 0%, 30% { opacity: 0; transform: scale(.4); } 50% { opacity: 1; transform: scale(1); } 85%, 100% { opacity: 0; transform: scale(1.3); } }
  @keyframes sx-flop { 0%, 100% { transform: rotate(5deg); } 45% { transform: rotate(-14deg); } 70% { transform: rotate(14deg); } }
  @keyframes sx-droop { 0%, 100% { transform: rotate(22deg); } 50% { transform: rotate(28deg); } }
  @keyframes sx-zzz { 0% { opacity: 0; transform: translate(0, 0); } 30% { opacity: 1; } 100% { opacity: 0; transform: translate(12px, -22px); } }
  @keyframes sx-slowBreathe { 0%, 100% { transform: scale(1, 1); } 50% { transform: scale(1.035, .965); } }

  /* say */
  .sx.m-hi .crl { animation: sx-bigWave .45s ease-in-out infinite alternate; }
  .sx.m-hi .hand { animation: sx-wiggle .3s ease-in-out infinite; }
  .sx.m-bye .crl { animation: sx-slowWave 1s ease-in-out infinite alternate; }
  .sx.m-bye .all { rotate: -4deg; }
  @keyframes sx-nod { 0%, 100% { transform: translateY(0) scale(1, 1); } 50% { transform: translateY(3px) scale(1.03, .93); } }
  .sx.m-yes .bod { animation: sx-nod .55s ease-in-out infinite; }
  @keyframes sx-shake { 0%, 100% { transform: rotate(-7deg); } 50% { transform: rotate(7deg); } }
  .sx.m-no .bod { animation: sx-shake .5s ease-in-out infinite; }
  @keyframes sx-bow { 0%, 100% { transform: translateY(0) scale(1, 1); } 35%, 70% { transform: translateY(5px) scale(1.04, .86); } }
  .sx.m-thanks .bod, .sx.m-sorry .bod { animation: sx-bow 1.8s ease-in-out infinite; }
  .sx.m-thanks .fx-h1 { animation: sx-float 1.8s ease-out infinite; }
  .sx.m-sorry .fx-sweat { animation: sx-drip 1.8s ease-in infinite; }
  @keyframes sx-drip { 0% { opacity: 0; transform: translateY(-4px); } 25% { opacity: 1; } 100% { opacity: 0; transform: translateY(10px); } }
  .sx.m-ok .fx-check { animation: sx-pop 1.6s ease-out infinite; }
  .sx.m-ok .bod { animation: sx-nod 1.6s ease-in-out infinite; }

  /* feel */
  @keyframes sx-loveSway { 0%, 100% { transform: rotate(-3deg); } 50% { transform: rotate(3deg); } }
  .sx.m-love .bod { animation: sx-loveSway 1.8s ease-in-out infinite; }
  .sx.m-love .hrt { animation: sx-beat .9s ease-in-out infinite; }
  .sx.m-love .chk, .sx.m-shy .chk { animation: sx-glow 1.8s ease-in-out infinite; }
  .sx.m-love .fx-h1, .sx.m-hug .fx-h1 { animation: sx-float 1.8s ease-out infinite; }
  .sx.m-love .fx-h2 { animation: sx-float 1.8s ease-out infinite -.9s; }
  @keyframes sx-squeeze { 0%, 100% { transform: scale(1, 1); } 40%, 60% { transform: scale(1.07, .93); } }
  .sx.m-hug .bod { animation: sx-squeeze 1.4s ease-in-out infinite; }
  .sx.m-hug .crl { animation: none; transform: rotate(32deg); }
  .sx.m-hug .armR { transform: rotate(-58deg); }
  @keyframes sx-giggle { 0%, 100% { transform: translateY(0) rotate(-3deg); } 50% { transform: translateY(-4px) rotate(3deg); } }
  .sx.m-lol .all { animation: sx-giggle .32s ease-in-out infinite; }
  .sx.m-lol .fx-joy { opacity: 1; }
  .sx.m-lol .fx-joyL { animation: sx-joyL .64s ease-out infinite; }
  .sx.m-lol .fx-joyR { animation: sx-joyR .64s ease-out infinite; }
  @keyframes sx-joyL { 0% { opacity: 1; transform: translate(0, 0); } 100% { opacity: 0; transform: translate(-10px, 6px); } }
  @keyframes sx-joyR { 0% { opacity: 1; transform: translate(0, 0); } 100% { opacity: 0; transform: translate(10px, 6px); } }
  @keyframes sx-hopSmall { 0%, 60%, 100% { transform: translateY(0); } 20% { transform: translateY(-10px); } }
  .sx.m-wow .all { animation: sx-hopSmall 1.4s ease-out infinite; }
  .sx.m-wow .fx-bang { animation: sx-pop 1.4s ease-out infinite; }
  @keyframes sx-shy { 0%, 100% { transform: scale(1) rotate(0); } 40%, 70% { transform: scale(1.06, .9) rotate(-6deg); } }
  .sx.m-shy .bod { animation: sx-shy 2.2s ease-in-out infinite; }
  .sx.m-shy .crl { animation: none; transform: rotate(26deg); }
  @keyframes sx-sag { 0%, 100% { transform: scale(1, 1); } 50% { transform: scale(1.02, .95); } }
  .sx.m-sad .bod { animation: sx-sag 2.6s ease-in-out infinite; }
  .sx.m-sad .crl, .sx.m-sleepy .crl { animation: sx-droop 3s ease-in-out infinite; }
  .sx.m-sad .fx-tear { animation: sx-tear 1.6s ease-in infinite; }
  @keyframes sx-tear { 0% { opacity: 0; transform: translateY(0); } 20% { opacity: 1; } 100% { opacity: 0; transform: translateY(16px); } }
  @keyframes sx-rage { 0%, 100% { transform: translateX(-1.5px); } 50% { transform: translateX(1.5px); } }
  .sx.m-angry .bod { animation: sx-rage .12s linear infinite; }
  .sx.m-angry .fx-mad { animation: sx-glow .6s ease-in-out infinite; opacity: 1; }
  .sx.m-think .all { rotate: -6deg; }
  .sx.m-think .armR { transform: rotate(-145deg); }
  .sx.m-think .fx-q { opacity: 1; animation: sx-bobQ 1.6s ease-in-out infinite; }
  @keyframes sx-bobQ { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-4px); } }
  .sx.m-sleepy .bod { animation: sx-slowBreathe 3s ease-in-out infinite; }
  .sx.m-sleepy .fx-z { animation: sx-zzz 3s ease-in-out infinite; }
  .sx.m-sleepy .fx-z2 { animation-delay: -1.5s; }

  /* move */
  .sx.m-yay .all { animation: sx-jump .9s cubic-bezier(.3, .7, .4, 1) infinite; }
  .sx.m-yay .shadow { animation: sx-shrink .9s cubic-bezier(.3, .7, .4, 1) infinite; }
  .sx.m-yay .crl { animation: sx-flop .9s ease-in-out infinite; }
  .sx.m-yay .armR, .sx.m-cheer .armR { transform: rotate(-150deg); }
  .sx.m-yay .fx-spark { animation: sx-spark .9s ease-out infinite; }
  @keyframes sx-pump { 0%, 100% { transform: rotate(-150deg); } 50% { transform: rotate(-120deg); } }
  @keyframes sx-pumpL { 0%, 100% { transform: rotate(-6deg); } 50% { transform: rotate(10deg); } }
  @keyframes sx-bounce { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-5px); } }
  .sx.m-cheer .armR { animation: sx-pump .4s ease-in-out infinite; }
  .sx.m-cheer .crl { animation: sx-pumpL .4s ease-in-out infinite -.2s; }
  .sx.m-cheer .all { animation: sx-bounce .4s ease-in-out infinite; }
  .sx.m-cheer .fx-conf { opacity: 1; }
  .sx.m-cheer .fx-conf rect { animation: sx-fall 1.4s linear infinite; }
  .sx.m-cheer .fx-conf rect:nth-child(2) { animation-delay: -.35s; }
  .sx.m-cheer .fx-conf rect:nth-child(3) { animation-delay: -.7s; }
  .sx.m-cheer .fx-conf rect:nth-child(4) { animation-delay: -1.05s; }
  .sx.m-cheer .fx-conf rect:nth-child(5) { animation-delay: -.5s; }
  @keyframes sx-fall { 0% { opacity: 0; transform: translateY(-6px) rotate(0); } 20% { opacity: 1; } 100% { opacity: 0; transform: translateY(34px) rotate(200deg); } }
  @keyframes sx-swayDance { from { transform: rotate(-10deg); } to { transform: rotate(10deg); } }
  @keyframes sx-kick { 0%, 60%, 100% { transform: rotate(0); } 30% { transform: rotate(-35deg); } }
  .sx.m-dance .bod { animation: sx-swayDance .5s ease-in-out infinite alternate; }
  .sx.m-dance .legL { animation: sx-kick 1s ease-in-out infinite; }
  .sx.m-dance .legR { animation: sx-kick 1s ease-in-out infinite -.5s; }
  .sx.m-dance .fx-n1 { animation: sx-float 1.6s ease-out infinite; }
  .sx.m-dance .fx-n2 { animation: sx-float 1.6s ease-out infinite -.8s; }
  .sx.m-walk .all, .sx.m-onway .all { animation: sx-waddle .8s ease-in-out infinite; }
  .sx.m-walk .legL, .sx.m-onway .legL { animation: sx-lift .8s ease-in-out infinite; }
  .sx.m-walk .legR, .sx.m-onway .legR { animation: sx-lift .8s ease-in-out infinite -.4s; }
  .sx.m-walk .crl { animation: sx-lag .8s ease-in-out infinite -.1s; }
  .sx.m-onway .crl { animation: sx-lag .8s ease-in-out infinite -.1s; }
  .sx.m-onway .fx-lines { opacity: 1; animation: sx-lines .8s linear infinite; }
  @keyframes sx-lines { from { transform: translateX(6px); opacity: 1; } to { transform: translateX(-10px); opacity: 0; } }
  @keyframes sx-waddleFast { 0%, 100% { transform: rotate(4deg); } 50% { transform: rotate(12deg); } }
  .sx.m-run .all { animation: sx-waddleFast .36s ease-in-out infinite; }
  .sx.m-run .legL { animation: sx-lift .36s ease-in-out infinite; }
  .sx.m-run .legR { animation: sx-lift .36s ease-in-out infinite -.18s; }
  .sx.m-run .crl { animation: none; transform: rotate(-16deg); }
  .sx.m-run .fx-lines { opacity: 1; animation: sx-lines .36s linear infinite; }
  .sx.m-run .fx-sweat { animation: sx-drip .7s ease-in infinite; }
  @keyframes sx-tap { 0%, 100% { transform: rotate(0); } 50% { transform: rotate(-16deg); } }
  .sx.m-waiting .legR { animation: sx-tap .48s ease-in-out infinite; }
  .sx.m-waiting .fx-dots { opacity: 1; }
  .sx.m-waiting .fx-dots circle { animation: sx-dot 1.2s ease-in-out infinite; }
  .sx.m-waiting .fx-dots circle:nth-of-type(2) { animation-delay: .2s; }
  .sx.m-waiting .fx-dots circle:nth-of-type(3) { animation-delay: .4s; }
  @keyframes sx-dot { 0%, 60%, 100% { opacity: .25; } 30% { opacity: 1; } }
  .sx.m-coffee .armR { transform: rotate(-62deg); }
  .sx.m-coffee .fx-cup { opacity: 1; transform: rotate(0); }
  .sx.m-coffee .fx-steam path { animation: sx-steam 1.6s ease-out infinite; }
  .sx.m-coffee .fx-steam path:nth-child(2) { animation-delay: -.8s; }
  .sx.m-coffee .fx-steam { opacity: 1; }
  @keyframes sx-steam { 0% { opacity: 0; transform: translateY(2px); } 30% { opacity: .9; } 100% { opacity: 0; transform: translateY(-8px); } }

  /* ============ Bean, Hoodie, Peek, Mochi, Stroll (.pk) ============
     Their curl is hair, not an arm, so they wave, cheer and hold a cup with their own arms. */
  @keyframes sx-waveUp { from { transform: rotate(-60deg); } to { transform: rotate(-112deg); } }
  @keyframes sx-waveSide { from { transform: rotate(-30deg); } to { transform: rotate(-78deg); } }
  @keyframes sx-waveF { from { transform: rotate(-150deg); } to { transform: rotate(-185deg); } }
  @keyframes sx-pumpPk { 0%, 100% { transform: rotate(-112deg); } 50% { transform: rotate(-85deg); } }
  @keyframes sx-pumpPkL { 0%, 100% { transform: rotate(112deg); } 50% { transform: rotate(85deg); } }
  @keyframes sx-stepA { 0%, 100% { transform: rotate(26deg); } 50% { transform: rotate(-26deg); } }
  @keyframes sx-stepB { 0%, 100% { transform: rotate(-26deg); } 50% { transform: rotate(26deg); } }
  @keyframes sx-bob { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }
  @keyframes sx-look { 0%, 30%, 100% { transform: translate(0, 0); } 40%, 55% { transform: translate(-4px, 1px); } 65%, 80% { transform: translate(4px, -1px); } }
  .sx.pk.m-hi .armR { animation: sx-waveUp .38s ease-in-out infinite alternate; }
  .sx.pk.m-bye .armR { animation: sx-waveUp 1s ease-in-out infinite alternate; }
  .sx.pk-hoodie.m-hi .armR, .sx.pk-hoodie.m-bye .armR { animation-name: sx-waveSide; }
  .sx.pk-stroll.m-hi .armR, .sx.pk-stroll.m-bye .armR { animation-name: sx-waveF; }
  .sx.pk.m-yay .armR { transform: rotate(-112deg); }
  .sx.pk.m-yay .armL { transform: rotate(112deg); }
  .sx.pk.m-cheer .armR { animation: sx-pumpPk .4s ease-in-out infinite; }
  .sx.pk.m-cheer .armL { animation: sx-pumpPkL .4s ease-in-out infinite -.2s; }
  .sx.pk-hoodie.m-yay .armR { transform: rotate(-70deg); }
  .sx.pk-hoodie.m-yay .armL { transform: rotate(70deg); }
  .sx.pk-stroll.m-yay .armR, .sx.pk-stroll.m-cheer .armR { animation: none; transform: rotate(-170deg); }
  .sx.pk.m-think .armR { transform: rotate(-100deg); }
  .sx.pk.m-hug .armR { transform: rotate(-60deg); }
  .sx.pk.m-hug .armL { transform: rotate(60deg); }
  .sx.pk.m-coffee .armR { transform: rotate(-35deg); }
  .sx.pk-stroll.m-coffee .armR { transform: rotate(-100deg); }
  /* Stroll walks side-on, like a person. */
  .sx.pk-stroll.m-walk .all, .sx.pk-stroll.m-onway .all, .sx.pk-stroll.m-run .all { animation: none; }
  .sx.pk-stroll.m-run .all { transform: rotate(8deg); }
  .sx.pk-stroll.m-walk .legL, .sx.pk-stroll.m-onway .legL { animation: sx-stepA .8s ease-in-out infinite; }
  .sx.pk-stroll.m-walk .legR, .sx.pk-stroll.m-onway .legR { animation: sx-stepB .8s ease-in-out infinite; }
  .sx.pk-stroll.m-run .legL { animation: sx-stepA .4s ease-in-out infinite; }
  .sx.pk-stroll.m-run .legR { animation: sx-stepB .4s ease-in-out infinite; }
  .sx.pk-stroll.m-walk .bod, .sx.pk-stroll.m-onway .bod, .sx.pk-stroll.m-run .bod { animation: sx-bob .4s ease-in-out infinite; }
  .sx.pk-stroll.m-walk .armR, .sx.pk-stroll.m-onway .armR, .sx.pk-stroll.m-run .armR { animation: sx-stepA .8s ease-in-out infinite; }
  /* Peek's eye looks around; love turns it into a heart. */
  .sx.pk-peek .iris { animation: sx-look 5s ease-in-out infinite; }
  .sx.pk-peek .iheart { opacity: 0; }
  .sx.pk-peek.m-love .iris { opacity: 0; }
  .sx.pk-peek.m-love .iheart { opacity: 1; animation: sx-beat .9s ease-in-out infinite; }
  /* Sixy hugs and hides with its arm (the curl); for the others the curl is hair, so it stays. */
  .sx.pk.m-hug .crl, .sx.pk.m-shy .crl { transform: none; animation: sx-sway 2.8s ease-in-out infinite; }

  /* The speech bubble: it springs out of the head, then rides along and bobs a little, like talking. */
  @keyframes sx-sayIn { 0% { transform: scale(.2) translateY(10px); opacity: 0; } 70% { transform: scale(1.08); opacity: 1; } 100% { transform: scale(1); } }
  @keyframes sx-sayBob { 0%, 100% { transform: translateY(0) rotate(-2.5deg); } 50% { transform: translateY(-2.5px) rotate(2.5deg); } }
  .sx .say { animation: sx-sayBob 2.4s ease-in-out .5s infinite; }
  .sx .say-in { transform-origin: inherit; transform-box: view-box; animation: sx-sayIn .5s cubic-bezier(.3, 1.5, .5, 1) both; }
  .sx.m-lol .say, .sx.m-angry .say, .sx.m-cheer .say { animation-duration: .5s; }
  .sx.has-say .fx-dots { display: none; }

  /* ============ Every day: the 12 things friends say most ============ */
  @keyframes sx-stretch { 0%, 100% { transform: scale(1, 1) translateY(0); } 40%, 60% { transform: scale(.95, 1.08) translateY(-4px); } }
  @keyframes sx-sunUp { 0% { opacity: 0; transform: translateY(10px) rotate(0); } 30%, 100% { opacity: 1; } 100% { transform: translateY(0) rotate(90deg); } }
  @keyframes sx-flame { 0%, 100% { transform: scale(1, 1); } 50% { transform: scale(.85, 1.15); } }
  @keyframes sx-lean { 0%, 100% { transform: rotate(6deg); } 50% { transform: rotate(10deg); } }
  @keyframes sx-oops { 0%, 100% { transform: translateX(0) rotate(0); } 20% { transform: translateX(-3px) rotate(-6deg); } 40% { transform: translateX(2px) rotate(3deg); } }
  /* miss you: holds itself, a heart drifts off */
  .sx.m-missyou .bod { animation: sx-loveSway 2.4s ease-in-out infinite; }
  .sx.m-missyou .crl { animation: none; transform: rotate(32deg); }
  .sx.m-missyou .armR { transform: rotate(-58deg); }
  .sx.m-missyou .fx-h1 { animation: sx-float 2.4s ease-out infinite; }
  .sx.m-missyou .fx-tear { animation: sx-tear 2.4s ease-in infinite; }
  /* good morning: a big stretch, the sun comes up */
  .sx.m-goodmorning .bod { animation: sx-stretch 2.2s ease-in-out infinite; }
  .sx.m-goodmorning .armR { transform: rotate(-150deg); }
  .sx.m-goodmorning .fx-sun { animation: sx-sunUp 2.2s ease-out infinite; }
  /* see you: waves while walking off */
  .sx.m-seeyou .all { animation: sx-waddle .8s ease-in-out infinite; }
  .sx.m-seeyou .legL { animation: sx-lift .8s ease-in-out infinite; }
  .sx.m-seeyou .legR { animation: sx-lift .8s ease-in-out infinite -.4s; }
  .sx.m-seeyou .crl { animation: sx-bigWave .45s ease-in-out infinite alternate; }
  /* let's eat / happy birthday / coffee: holds it */
  .sx.m-letseat .armR, .sx.m-birthday .armR { transform: rotate(-62deg); }
  .sx.m-letseat .fx-cup, .sx.m-birthday .fx-cup, .sx.m-letseat .fx-steam { opacity: 1; }
  .sx.m-letseat .fx-steam path { animation: sx-steam 1.6s ease-out infinite; }
  .sx.m-letseat .fx-steam path:nth-child(2) { animation-delay: -.8s; }
  .sx.m-letseat .bod { animation: sx-nod .7s ease-in-out infinite; }
  .sx.m-birthday .all { animation: sx-bounce .5s ease-in-out infinite; }
  .sx.m-birthday .fx-flame { animation: sx-flame .4s ease-in-out infinite; }
  .sx.m-birthday .fx-conf { opacity: 1; }
  .sx.m-birthday .fx-conf rect { animation: sx-fall 1.4s linear infinite; }
  .sx.m-birthday .fx-conf rect:nth-child(2) { animation-delay: -.35s; }
  .sx.m-birthday .fx-conf rect:nth-child(3) { animation-delay: -.7s; }
  .sx.m-birthday .fx-conf rect:nth-child(4) { animation-delay: -1.05s; }
  /* I'm here!: pops up with arms up */
  .sx.m-imhere .all { animation: sx-hopSmall .9s ease-out infinite; }
  .sx.m-imhere .armR { animation: sx-pump .45s ease-in-out infinite; }
  .sx.m-imhere .fx-spark { animation: sx-spark .9s ease-out infinite; }
  /* me too: nods along */
  .sx.m-metoo .bod { animation: sx-nod .5s ease-in-out infinite; }
  .sx.m-metoo .fx-h1 { animation: sx-float 1.6s ease-out infinite; }
  /* really?: leans in */
  .sx.m-really .all { animation: sx-lean 1.6s ease-in-out infinite; }
  .sx.m-really .fx-q { opacity: 1; animation: sx-bobQ 1.6s ease-in-out infinite; }
  /* oops: a little jolt and a drop of sweat */
  .sx.m-oops .bod { animation: sx-oops 1.4s ease-in-out infinite; }
  .sx.m-oops .fx-sweat { animation: sx-drip 1.4s ease-in infinite; }
  /* good luck: fists up, sparkles */
  .sx.m-goodluck .armR { animation: sx-pump .4s ease-in-out infinite; }
  .sx.m-goodluck .crl { animation: sx-pumpL .4s ease-in-out infinite -.2s; }
  .sx.m-goodluck .fx-spark { animation: sx-spark .9s ease-out infinite; }
  /* take care: a slow wave and a heart */
  .sx.m-takecare .crl { animation: sx-slowWave 1s ease-in-out infinite alternate; }
  .sx.m-takecare .fx-h1 { animation: sx-float 2s ease-out infinite; }
  /* busy: rushing, sweating */
  .sx.m-busy .all { animation: sx-waddleFast .36s ease-in-out infinite; }
  .sx.m-busy .legL { animation: sx-lift .36s ease-in-out infinite; }
  .sx.m-busy .legR { animation: sx-lift .36s ease-in-out infinite -.18s; }
  .sx.m-busy .fx-lines { opacity: 1; animation: sx-lines .36s linear infinite; }
  .sx.m-busy .fx-sweat { animation: sx-drip .7s ease-in infinite; }
  /* The others use their own arms; their curl is hair. */
  .sx.pk.m-missyou .crl { transform: none; animation: sx-sway 2.8s ease-in-out infinite; }
  .sx.pk.m-missyou .armR { transform: rotate(-60deg); }
  .sx.pk.m-missyou .armL { transform: rotate(60deg); }
  .sx.pk.m-goodmorning .armR { transform: rotate(-112deg); }
  .sx.pk.m-goodmorning .armL { transform: rotate(112deg); }
  .sx.pk.m-seeyou .armR, .sx.pk.m-takecare .armR { animation: sx-waveUp .5s ease-in-out infinite alternate; }
  .sx.pk.m-letseat .armR, .sx.pk.m-birthday .armR { transform: rotate(-35deg); }
  .sx.pk-stroll.m-letseat .armR, .sx.pk-stroll.m-birthday .armR { transform: rotate(-100deg); }
  .sx.pk.m-imhere .armR, .sx.pk.m-goodluck .armR { animation: sx-pumpPk .4s ease-in-out infinite; }
  .sx.pk.m-imhere .armL, .sx.pk.m-goodluck .armL { animation: sx-pumpPkL .4s ease-in-out infinite -.2s; }
  .sx.pk-stroll.m-seeyou .all, .sx.pk-stroll.m-busy .all { animation: none; }
  .sx.pk-stroll.m-seeyou .legL, .sx.pk-stroll.m-busy .legL { animation: sx-stepA .8s ease-in-out infinite; }
  .sx.pk-stroll.m-seeyou .legR, .sx.pk-stroll.m-busy .legR { animation: sx-stepB .8s ease-in-out infinite; }
  .sx.pk-stroll.m-busy .legL, .sx.pk-stroll.m-busy .legR { animation-duration: .4s; }
  /* In the panel and the typing pop-up the bubble is just there (it springs in only in the chat). */
  .sticker-grid .say-in, .sticker-suggest .say-in, .sticker-suggest-cell .say-in { animation: none; }
