/* Mo 的专家团队：场景、徽章、徽章排。需要先引入 mole.css（外圈样式）。 */
.crew { display: block; width: 100%; height: auto; overflow: visible; }
.crew .up { transform-origin: 512px 700px; }
.crew.enter { animation: cr-enter .32s cubic-bezier(.2, .9, .3, 1.2) both; }
@keyframes cr-enter { from { opacity: 0; transform: scale(.94) translateY(6px); } }

/* 眨眼：底稿里有 .eyes 的都眨 */
.crew .eyes { animation: cr-blink 4.4s infinite; }
@keyframes cr-blink { 0%, 93%, 100% { transform: scaleY(1); } 96% { transform: scaleY(.1); } }

/* ---------- 在做：身体很安静，动的是道具 ---------- */
.ca-breathe .up { animation: cr-breathe 3.6s ease-in-out infinite; }
@keyframes cr-breathe { 50% { transform: scale(1.005, 1.016); } }

.ca-read .up { animation: cr-read 2.4s ease-in-out infinite; }
@keyframes cr-read { 0%, 100% { transform: skewX(0); } 30% { transform: skewX(1.4deg) scaleY(.99); } 70% { transform: skewX(-1.4deg) scaleY(.99); } }

.ca-listen .up { animation: cr-listen 2.2s ease-in-out infinite; }
@keyframes cr-listen { 0%, 100% { transform: skewX(0); } 35% { transform: skewX(-1.8deg) scaleY(1.01); } 70% { transform: skewX(1.2deg); } }

.ca-dig .up { animation: cr-dig 1.2s cubic-bezier(.5, 0, .5, 1) infinite; }
@keyframes cr-dig { 0%, 100% { transform: none; } 40% { transform: scale(1.008, .985) skewX(-.8deg); } }

.ca-shout .up { animation: cr-shout 1.6s ease-in-out infinite; }
@keyframes cr-shout { 0%, 100% { transform: none; } 30% { transform: scale(.996, 1.014) skewX(-1deg); } }

/* 放大镜来回扫 */
.pa-scan { animation: cr-scan 3.2s ease-in-out infinite; }
@keyframes cr-scan { 0%, 100% { transform: translate(-10px, 2px) rotate(-2deg); } 50% { transform: translate(10px, -3px) rotate(2deg); } }

/* 画笔在调色板上点 */
.pa-dab { animation: cr-dab 1.8s cubic-bezier(.4, 0, .3, 1) infinite; }
@keyframes cr-dab { 0%, 100% { transform: rotate(0); } 25% { transform: rotate(-3deg); } 55% { transform: rotate(2.5deg); } }

/* 铅笔记笔记 */
.pa-write { animation: cr-write 1.4s ease-in-out infinite; }
@keyframes cr-write { 0%, 100% { transform: translate(-14px, -6px); } 25% { transform: translate(-4px, -10px); } 50% { transform: translate(6px, -6px); } 75% { transform: translate(14px, -10px); } }

/* 铲子一下一下 */
.pa-shovel { animation: cr-shovel 1.2s cubic-bezier(.5, 0, .5, 1) infinite; transform-origin: 0 -330px; }
@keyframes cr-shovel { 0%, 100% { transform: none; } 40% { transform: translateY(10px) rotate(-3deg); } }
.crew .fx-speck { animation: cr-speck 1.2s ease-out infinite; opacity: 0; }
@keyframes cr-speck { 0% { opacity: 0; transform: none; } 15% { opacity: 1; } 100% { opacity: 0; transform: translate(var(--dx), -60px); } }

/* 喇叭的声波 */
.pa-waves path { animation: cr-wave 1.6s ease-out infinite; opacity: 0; }
.pa-waves .pw1 { animation-delay: .25s; }
@keyframes cr-wave { 0% { opacity: 0; transform: translateX(-8px); } 30% { opacity: 1; } 100% { opacity: 0; transform: translateX(12px); } }

/* 柱子慢慢长 */
.ca-bars .pbar { animation: cr-bar 3s cubic-bezier(.2, .8, .2, 1) infinite; }
@keyframes cr-bar { 0% { transform: scaleY(.35); } 45%, 100% { transform: scaleY(1); } }

/* ---------- 做完了：弹一下，勾画出来 ---------- */
.ca-done .up { animation: cr-done 2.8s cubic-bezier(.3, 0, .2, 1) infinite; }
@keyframes cr-done { 0%, 62%, 100% { transform: none; } 12% { transform: scale(1.012, .975); } 26% { transform: scale(.992, 1.03); } 40% { transform: scale(1.004, .994); } }
.cs-done .cbub .pk { stroke-dasharray: 110; animation: cr-tick .7s .3s cubic-bezier(.3, .6, .2, 1) both; }
@keyframes cr-tick { from { stroke-dashoffset: 110; } to { stroke-dashoffset: 0; } }

/* ---------- 需要你：隔一会儿探一下身，问号弹一下 ---------- */
.ca-needs .up { animation: cr-needs 2.8s cubic-bezier(.3, 0, .2, 1) infinite; }
@keyframes cr-needs { 0%, 55%, 100% { transform: none; } 66% { transform: scale(.992, 1.036); } 76% { transform: scale(1.004, .992); } 84% { transform: none; } }

/* ---------- 徽章：沿用 Mo 徽章的外圈，裁到上半身 ---------- */
.crb .mob-scene .nose path { stroke: #3A3734; }
.mbs.crb .mob-scene .ink path.q { stroke: #E8853A; }
.crb .crew .pl, .crb .crew .pk { stroke-width: 12; }
.crb .crew .pg { stroke-width: 10; }
.crb .crew .cemb .pl { stroke-width: 10; }
.crb .crew .pd, .crb .crew .ptint, .crb .crew .cfx { display: none; }
.crb .crew .pa-waves path { stroke-width: 16; }
.crb.crb-still .mob-ring .r0 { stroke: #E9E9E7; }
.crb.crb-still .crew *, .crb.crb-still .crew { animation: none !important; }

/* 叠在一起的一排 */
.crow { display: inline-flex; align-items: center; vertical-align: middle; }
.crow .mob { width: var(--s, 24px); height: var(--s, 24px); border-radius: 50%; box-shadow: 0 0 0 2px #fff; background: #fff; }
.crow .mob + .mob { margin-left: calc(var(--s, 24px) * -.28); }

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