.kapak-bug,
.kapak-fly {
    position: fixed;
    top: 0;
    left: 0;
    width: 16px;
    height: 16px;
    padding: 0;
    margin: 0;
    border: 0;
    background: transparent;
    z-index: 70;
    cursor: pointer;
    pointer-events: auto;
    transform-origin: 50% 50%;
    will-change: transform;
    -webkit-tap-highlight-color: transparent;
}

.kapak-bug.is-roach {
    width: 40px;
    height: 24px;
    overflow: visible;
}

.kapak-bug.is-worm {
    width: 36px;
    height: 14px;
}

.kapak-bug.is-silkworm {
    width: 40px;
    height: 16px;
}

.kapak-bug.is-snail {
    width: 28px;
    height: 18px;
    overflow: visible;
}

.kapak-bug.is-snail svg.kapak-snail {
    width: 100%;
    height: 100%;
    overflow: visible;
    display: block;
}

.kapak-snail-foot,
.kapak-snail-body,
.kapak-snail-shell,
.kapak-snail-stalk {
    transform-box: fill-box;
}

.kapak-snail-shell {
    transform-origin: 50% 60%;
}

.kapak-snail-stalk.is-l {
    transform-origin: 0% 100%;
}

.kapak-snail-stalk.is-r {
    transform-origin: 0% 100%;
}

.kapak-bug.is-snail.is-walking .kapak-snail-foot {
    animation: kapak-snail-foot var(--snail-crawl-ms, 720ms) ease-in-out infinite;
}

.kapak-bug.is-snail.is-walking .kapak-snail-body {
    animation: kapak-snail-body var(--snail-crawl-ms, 720ms) ease-in-out infinite;
}

.kapak-bug.is-snail.is-walking .kapak-snail-shell {
    animation: kapak-snail-shell var(--snail-crawl-ms, 720ms) ease-in-out infinite;
}

.kapak-bug.is-snail.is-walking .kapak-snail-stalk.is-l {
    animation: kapak-snail-stalk-l calc(var(--snail-crawl-ms, 720ms) * 1.35) ease-in-out infinite;
}

.kapak-bug.is-snail.is-walking .kapak-snail-stalk.is-r {
    animation: kapak-snail-stalk-r calc(var(--snail-crawl-ms, 720ms) * 1.5) ease-in-out infinite;
}

@keyframes kapak-snail-foot {
    0%, 100% { transform: scaleX(1) scaleY(1); }
    50% { transform: scaleX(1.08) scaleY(0.88); }
}

@keyframes kapak-snail-body {
    0%, 100% { transform: translateX(0); }
    50% { transform: translateX(0.6px); }
}

@keyframes kapak-snail-shell {
    0%, 100% { transform: translate(0, 0) rotate(0deg); }
    50% { transform: translate(0.4px, -0.35px) rotate(-2deg); }
}

@keyframes kapak-snail-stalk-l {
    0%, 100% { transform: rotate(-4deg); }
    50% { transform: rotate(6deg); }
}

@keyframes kapak-snail-stalk-r {
    0%, 100% { transform: rotate(5deg); }
    50% { transform: rotate(-5deg); }
}

.kapak-bug.is-ant {
    width: 16px;
    height: 16px;
}

.kapak-bug.is-termite {
    width: 16px;
    height: 18px;
    overflow: visible;
}

.kapak-bug.is-termite svg {
    width: 100%;
    height: 100%;
    display: block;
    overflow: visible;
}

.kapak-bug.is-lizard {
    width: 24px;
    height: 52px;
    overflow: visible;
}

.kapak-bug.is-spider {
    width: 22px;
    height: 22px;
}

.kapak-bug.is-centipede {
    width: 14px;
    height: 46px;
    overflow: visible;
}
.kapak-bug.is-centipede svg {
    width: 100%;
    height: 100%;
    margin: 0;
}
.kapak-bug.is-scorpion {
    width: 26px;
    height: 38px;
}
.kapak-bug.is-scorpion svg {
    width: 100%;
    height: 100%;
    margin: 0;
}
.kapak-bug.is-dragonfly {
    width: 30px;
    height: 22px;
}
.kapak-bug.is-dragonfly svg {
    width: 26px;
    height: 18px;
    margin: 2px;
}
.kapak-bug.is-crab {
    width: 26px;
    height: 20px;
}
.kapak-bug.is-crab svg {
    width: 100%;
    height: 100%;
    margin: 0;
}
.kapak-bug.is-tick {
    width: 12px;
    height: 12px;
}
.kapak-bug.is-tick svg {
    width: 10px;
    height: 10px;
    margin: 1px;
}
.kapak-bug.is-frog {
    width: 24px;
    height: 22px;
}
.kapak-bug.is-dung {
    width: 30px;
    height: 20px;
}
.kapak-bug.is-dung svg {
    width: 100%;
    height: 100%;
    margin: 0;
}

.kapak-bug.is-jellyfish {
    width: 22px;
    height: 36px;
    overflow: visible;
}
.kapak-bug.is-turtle {
    width: 28px;
    height: 28px;
    overflow: visible;
}
.kapak-bug.is-goldfish {
    width: 18px;
    height: 28px;
    overflow: visible;
}
.kapak-bug.is-sheep {
    width: 36px;
    height: 28px;
    overflow: visible;
}

.kapak-sheep-svg {
    display: block;
    width: 100%;
    height: 100%;
    overflow: visible;
    filter: drop-shadow(0 1px 1px rgba(0, 0, 0, 0.28));
}

.kapak-sheep-wool {
    animation: kapak-sheep-fluff 2.4s ease-in-out infinite;
    transform-origin: 30px 24px;
}

.kapak-sheep-head {
    transform-origin: 50px 22px;
}

.kapak-bug.is-crawling .kapak-sheep-head,
.kapak-bug.is-walking .kapak-sheep-head {
    animation: kapak-sheep-bob 0.55s ease-in-out infinite alternate;
}

.kapak-bug.is-crawling .kapak-sheep-leg.is-fl,
.kapak-bug.is-walking .kapak-sheep-leg.is-fl,
.kapak-bug.is-crawling .kapak-sheep-leg.is-br,
.kapak-bug.is-walking .kapak-sheep-leg.is-br {
    animation: kapak-sheep-step-a 0.32s ease-in-out infinite alternate;
    transform-origin: center top;
}

.kapak-bug.is-crawling .kapak-sheep-leg.is-fr,
.kapak-bug.is-walking .kapak-sheep-leg.is-fr,
.kapak-bug.is-crawling .kapak-sheep-leg.is-bl,
.kapak-bug.is-walking .kapak-sheep-leg.is-bl {
    animation: kapak-sheep-step-b 0.32s ease-in-out infinite alternate;
    transform-origin: center top;
}

@keyframes kapak-sheep-fluff {
    0%, 100% { transform: scale(1, 1); }
    50% { transform: scale(1.03, 0.97); }
}

@keyframes kapak-sheep-bob {
    from { transform: rotate(-4deg) translateY(0); }
    to { transform: rotate(3deg) translateY(1px); }
}

@keyframes kapak-sheep-step-a {
    from { transform: rotate(-18deg); }
    to { transform: rotate(16deg); }
}

@keyframes kapak-sheep-step-b {
    from { transform: rotate(16deg); }
    to { transform: rotate(-18deg); }
}
.kapak-bug.is-mouse {
    width: 16px;
    height: 24px;
    overflow: visible;
}
.kapak-bug.is-chick {
    width: 20px;
    height: 20px;
    overflow: visible;
}

/* ——— تم نظامی ——— */

.kapak-bug.is-military {
    overflow: visible;
}

.kapak-bug.is-soldier { width: 26px; height: 38px; }
.kapak-bug.is-army-car { width: 34px; height: 56px; }
.kapak-bug.is-tank { width: 42px; height: 62px; }
.kapak-bug.is-plane { width: 58px; height: 54px; }

/* ——— زامبی (اسپرایت راهرو) + اتوبوس ——— */
.kapak-bug.is-zombie { width: 44px; height: 58px; overflow: visible; z-index: 74; }
.kapak-bug.is-bus { width: 44px; height: 110px; overflow: visible; z-index: 66; }

.kapak-bug.is-zombie.is-biting {
    filter: brightness(1.15) saturate(1.2);
    transform-origin: center;
}

.kapak-bug.is-bus.is-bus-hurt {
    filter: brightness(1.25) saturate(1.4) drop-shadow(0 0 6px rgba(220, 40, 40, 0.55));
}

.kapak-bug.is-friendly {
    cursor: not-allowed;
}

.kapak-bug.is-military svg.kapak-mil {
    display: block;
    width: 100%;
    height: 100%;
    overflow: visible;
    filter: drop-shadow(0 2px 3px rgba(0, 0, 0, 0.35));
}

.kapak-mil-leg,
.kapak-mil-arm,
.kapak-mil-wheel,
.kapak-mil-tread,
.kapak-mil-burn {
    transform-box: fill-box;
}

.kapak-mil-leg,
.kapak-mil-arm {
    transform-origin: 50% 8%;
}

.kapak-bug.is-soldier.is-crawling .kapak-mil-leg.is-l,
.kapak-bug.is-soldier.is-crawling .kapak-mil-arm.is-r {
    animation: kapak-mil-step-a 0.3s ease-in-out infinite alternate;
}

.kapak-bug.is-soldier.is-crawling .kapak-mil-leg.is-r,
.kapak-bug.is-soldier.is-crawling .kapak-mil-arm.is-l {
    animation: kapak-mil-step-b 0.3s ease-in-out infinite alternate;
}

.kapak-bug.is-tank.is-crawling .kapak-mil-tread {
    animation: kapak-mil-tread 0.42s linear infinite;
}

.kapak-bug.is-army-car.is-crawling .kapak-mil-wheel {
    animation: kapak-mil-wheel 0.5s ease-in-out infinite alternate;
}

.kapak-mil-burn {
    transform-origin: 50% 0%;
    animation: kapak-mil-burn 0.22s ease-in-out infinite alternate;
}

@keyframes kapak-mil-step-a {
    from { transform: rotate(-11deg); }
    to { transform: rotate(13deg); }
}

@keyframes kapak-mil-step-b {
    from { transform: rotate(12deg); }
    to { transform: rotate(-12deg); }
}

@keyframes kapak-mil-tread {
    from { transform: translateY(0); }
    to { transform: translateY(6px); }
}

@keyframes kapak-mil-wheel {
    0%, 100% { transform: translateY(-0.6px); }
    50% { transform: translateY(0.6px); }
}

@keyframes kapak-mil-burn {
    0% { transform: scaleY(0.75) scaleX(0.9); opacity: 0.6; }
    100% { transform: scaleY(1.45) scaleX(1.05); opacity: 0.95; }
}

/* ——— نوار جان هدف‌های چندضربه‌ای ——— */

/* مرکزِ نوار روی مرکز هدف می‌نشیند و با چرخش مخالف، همیشه بالای هدف و افقی می‌ماند */
.kapak-bug-hp {
    position: absolute;
    left: 50%;
    top: 50%;
    width: 34px;
    height: 5px;
    margin-left: -17px;
    margin-top: -3px;
    transform-origin: 50% 50%;
    border-radius: 999px;
    background: rgba(8, 12, 10, 0.72);
    border: 1px solid rgba(255, 255, 255, 0.22);
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.4);
    overflow: hidden;
    pointer-events: none;
    animation: kapak-bug-hp-in 0.18s ease-out;
}

.kapak-bug-hp-fill {
    display: block;
    height: 100%;
    width: calc(var(--hp, 1) * 100%);
    border-radius: 999px;
    background: linear-gradient(90deg, #7fe0a8, #4fd8a6);
    transition: width 0.16s ease-out;
}

.kapak-bug-hp.is-low .kapak-bug-hp-fill {
    background: linear-gradient(90deg, #ff9c5a, #ff5a4a);
}

@keyframes kapak-bug-hp-in {
    from { opacity: 0; }
    to { opacity: 1; }
}

.kapak-bug:has(> .kapak-bug-hp) {
    overflow: visible;
}

.kapak-bug.is-hurt {
    animation: kapak-bug-hurt 0.23s ease-out;
}

@keyframes kapak-bug-hurt {
    0% { filter: brightness(2.6) saturate(0.2); }
    40% { filter: brightness(1.5) saturate(0.7); }
    100% { filter: none; }
}

.kapak-bug.is-photo {
    overflow: hidden;
}

.kapak-bug.is-photo.is-jellyfish,
.kapak-bug.is-photo.is-turtle,
.kapak-bug.is-photo.is-goldfish,
.kapak-bug.is-photo.is-mouse,
.kapak-bug.is-photo.is-chick,
.kapak-bug.is-photo.is-lizard,
.kapak-bug.is-photo.is-scorpion,
.kapak-bug.is-photo.is-frog,
.kapak-bug.is-photo.is-zombie,
.kapak-bug.is-photo.is-bus {
    overflow: visible;
}

.kapak-photo,
.kapak-photo-gait {
    display: block;
    width: 100%;
    height: 100%;
    position: relative;
    pointer-events: none;
    overflow: visible;
}

.kapak-photo-part {
    position: absolute;
    inset: 0;
    overflow: visible;
    transform-origin: 50% 50%;
    will-change: transform;
}

.kapak-photo-part.is-body,
.kapak-photo-part.is-bell,
.kapak-photo-part.is-head {
    z-index: 3;
}

.kapak-photo-img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
    object-position: center;
    pointer-events: none;
    user-select: none;
    -webkit-user-drag: none;
}

.kapak-bug.is-chick .kapak-photo {
    filter: hue-rotate(var(--chick-hue, 0deg)) saturate(1.15);
}

/* ── Photo puppet: jellyfish (bell top, tentacles bottom) ── */
.kapak-photo--jellyfish .is-bell {
    clip-path: ellipse(48% 28% at 50% 22%);
    z-index: 4;
}
.kapak-photo--jellyfish .is-tent-l {
    clip-path: polygon(8% 38%, 38% 40%, 32% 98%, 2% 95%);
    transform-origin: 28% 40%;
    z-index: 1;
}
.kapak-photo--jellyfish .is-tent-m {
    clip-path: polygon(35% 40%, 65% 40%, 62% 100%, 38% 100%);
    transform-origin: 50% 40%;
    z-index: 2;
}
.kapak-photo--jellyfish .is-tent-r {
    clip-path: polygon(62% 40%, 92% 38%, 98% 95%, 68% 98%);
    transform-origin: 72% 40%;
    z-index: 1;
}
.kapak-bug.is-walking .kapak-photo--jellyfish .is-tent-l {
    animation: kapak-tent-sway-l var(--photo-walk-ms, 420ms) ease-in-out infinite alternate;
}
.kapak-bug.is-walking .kapak-photo--jellyfish .is-tent-m {
    animation: kapak-tent-sway-m var(--photo-walk-ms, 380ms) ease-in-out infinite alternate;
}
.kapak-bug.is-walking .kapak-photo--jellyfish .is-tent-r {
    animation: kapak-tent-sway-r var(--photo-walk-ms, 440ms) ease-in-out infinite alternate;
}
.kapak-bug.is-walking .kapak-photo--jellyfish .is-bell {
    animation: kapak-bell-pulse calc(var(--photo-walk-ms, 420ms) * 1.4) ease-in-out infinite alternate;
}

/* ── Turtle ── */
.kapak-photo--turtle .is-body {
    clip-path: ellipse(40% 36% at 50% 52%);
}
.kapak-photo--turtle .is-head {
    clip-path: ellipse(16% 12% at 50% 16%);
    transform-origin: 50% 28%;
    z-index: 4;
}
.kapak-photo--turtle .is-leg-fl {
    clip-path: polygon(2% 28%, 30% 34%, 28% 55%, 0% 52%);
    transform-origin: 28% 42%;
}
.kapak-photo--turtle .is-leg-fr {
    clip-path: polygon(70% 34%, 98% 28%, 100% 52%, 72% 55%);
    transform-origin: 72% 42%;
}
.kapak-photo--turtle .is-leg-bl {
    clip-path: polygon(4% 62%, 32% 60%, 30% 88%, 2% 90%);
    transform-origin: 30% 64%;
}
.kapak-photo--turtle .is-leg-br {
    clip-path: polygon(68% 60%, 96% 62%, 98% 90%, 70% 88%);
    transform-origin: 70% 64%;
}
.kapak-bug.is-walking .kapak-photo--turtle .is-leg-fl,
.kapak-bug.is-walking .kapak-photo--turtle .is-leg-br {
    animation: kapak-flipper-a var(--photo-walk-ms, 320ms) ease-in-out infinite alternate;
}
.kapak-bug.is-walking .kapak-photo--turtle .is-leg-fr,
.kapak-bug.is-walking .kapak-photo--turtle .is-leg-bl {
    animation: kapak-flipper-b var(--photo-walk-ms, 320ms) ease-in-out infinite alternate;
}
.kapak-bug.is-walking .kapak-photo--turtle .is-head {
    animation: kapak-head-bob calc(var(--photo-walk-ms, 320ms) * 1.2) ease-in-out infinite alternate;
}

/* ── Goldfish ── */
.kapak-photo--goldfish .is-body {
    clip-path: ellipse(36% 34% at 50% 38%);
}
.kapak-photo--goldfish .is-fin-l {
    clip-path: polygon(8% 30%, 38% 36%, 34% 58%, 6% 54%);
    transform-origin: 36% 42%;
}
.kapak-photo--goldfish .is-fin-r {
    clip-path: polygon(62% 36%, 92% 30%, 94% 54%, 66% 58%);
    transform-origin: 64% 42%;
}
.kapak-photo--goldfish .is-tail {
    clip-path: polygon(28% 62%, 72% 62%, 88% 98%, 12% 98%);
    transform-origin: 50% 62%;
    z-index: 2;
}
.kapak-bug.is-walking .kapak-photo--goldfish .is-fin-l {
    animation: kapak-fin-l var(--photo-walk-ms, 240ms) ease-in-out infinite alternate;
}
.kapak-bug.is-walking .kapak-photo--goldfish .is-fin-r {
    animation: kapak-fin-r var(--photo-walk-ms, 240ms) ease-in-out infinite alternate;
}
.kapak-bug.is-walking .kapak-photo--goldfish .is-tail {
    animation: kapak-tail-wag var(--photo-walk-ms, 220ms) ease-in-out infinite alternate;
}

/* ── Sheep (side-ish) ── */
.kapak-photo--sheep .is-body {
    clip-path: ellipse(42% 36% at 55% 48%);
}
.kapak-photo--sheep .is-head {
    clip-path: ellipse(22% 24% at 22% 42%);
    z-index: 4;
    transform-origin: 36% 48%;
}
.kapak-photo--sheep .is-leg-fl {
    clip-path: polygon(28% 68%, 40% 68%, 39% 96%, 29% 96%);
    transform-origin: 34% 68%;
}
.kapak-photo--sheep .is-leg-fr {
    clip-path: polygon(42% 70%, 52% 70%, 51% 98%, 43% 98%);
    transform-origin: 47% 70%;
}
.kapak-photo--sheep .is-leg-bl {
    clip-path: polygon(58% 68%, 68% 68%, 67% 96%, 59% 96%);
    transform-origin: 63% 68%;
}
.kapak-photo--sheep .is-leg-br {
    clip-path: polygon(70% 70%, 82% 70%, 81% 98%, 71% 98%);
    transform-origin: 76% 70%;
}
.kapak-bug.is-walking .kapak-photo--sheep .is-leg-fl,
.kapak-bug.is-walking .kapak-photo--sheep .is-leg-br {
    animation: kapak-leg-step-a var(--photo-walk-ms, 280ms) ease-in-out infinite alternate;
}
.kapak-bug.is-walking .kapak-photo--sheep .is-leg-fr,
.kapak-bug.is-walking .kapak-photo--sheep .is-leg-bl {
    animation: kapak-leg-step-b var(--photo-walk-ms, 280ms) ease-in-out infinite alternate;
}
.kapak-bug.is-walking .kapak-photo--sheep .is-head {
    animation: kapak-head-bob calc(var(--photo-walk-ms, 280ms) * 1.3) ease-in-out infinite alternate;
}

/* ── Mouse ── */
.kapak-photo--mouse .is-body {
    clip-path: ellipse(34% 30% at 48% 42%);
}
.kapak-photo--mouse .is-ear-l {
    clip-path: ellipse(14% 12% at 28% 18%);
    transform-origin: 34% 26%;
    z-index: 4;
}
.kapak-photo--mouse .is-ear-r {
    clip-path: ellipse(14% 12% at 55% 14%);
    transform-origin: 50% 24%;
    z-index: 4;
}
.kapak-photo--mouse .is-leg-l {
    clip-path: polygon(22% 58%, 40% 58%, 38% 82%, 20% 80%);
    transform-origin: 32% 58%;
}
.kapak-photo--mouse .is-leg-r {
    clip-path: polygon(48% 58%, 66% 58%, 68% 80%, 50% 82%);
    transform-origin: 56% 58%;
}
.kapak-photo--mouse .is-tail {
    clip-path: polygon(40% 70%, 62% 68%, 78% 98%, 52% 96%);
    transform-origin: 50% 70%;
    z-index: 1;
}
.kapak-bug.is-walking .kapak-photo--mouse .is-leg-l {
    animation: kapak-leg-step-a var(--photo-walk-ms, 200ms) ease-in-out infinite alternate;
}
.kapak-bug.is-walking .kapak-photo--mouse .is-leg-r {
    animation: kapak-leg-step-b var(--photo-walk-ms, 200ms) ease-in-out infinite alternate;
}
.kapak-bug.is-walking .kapak-photo--mouse .is-tail {
    animation: kapak-tail-wag var(--photo-walk-ms, 180ms) ease-in-out infinite alternate;
}
.kapak-bug.is-walking .kapak-photo--mouse .is-ear-l,
.kapak-bug.is-walking .kapak-photo--mouse .is-ear-r {
    animation: kapak-ear-twitch calc(var(--photo-walk-ms, 200ms) * 1.6) ease-in-out infinite alternate;
}

/* ── Chick ── */
.kapak-photo--chick .is-body {
    clip-path: ellipse(40% 38% at 50% 46%);
}
.kapak-photo--chick .is-wing-l {
    clip-path: polygon(8% 38%, 36% 42%, 34% 68%, 6% 62%);
    transform-origin: 34% 48%;
}
.kapak-photo--chick .is-wing-r {
    clip-path: polygon(64% 42%, 92% 38%, 94% 62%, 66% 68%);
    transform-origin: 66% 48%;
}
.kapak-photo--chick .is-leg-l {
    clip-path: polygon(32% 70%, 44% 70%, 43% 96%, 33% 96%);
    transform-origin: 38% 70%;
}
.kapak-photo--chick .is-leg-r {
    clip-path: polygon(56% 70%, 68% 70%, 67% 96%, 57% 96%);
    transform-origin: 62% 70%;
}
.kapak-bug.is-walking .kapak-photo--chick .is-wing-l {
    animation: kapak-wing-flap-l var(--photo-walk-ms, 220ms) ease-in-out infinite alternate;
}
.kapak-bug.is-walking .kapak-photo--chick .is-wing-r {
    animation: kapak-wing-flap-r var(--photo-walk-ms, 220ms) ease-in-out infinite alternate;
}
.kapak-bug.is-walking .kapak-photo--chick .is-leg-l {
    animation: kapak-leg-step-a var(--photo-walk-ms, 220ms) ease-in-out infinite alternate;
}
.kapak-bug.is-walking .kapak-photo--chick .is-leg-r {
    animation: kapak-leg-step-b var(--photo-walk-ms, 220ms) ease-in-out infinite alternate;
}

/* ── Existing photo bugs: limb clips + walk ── */
.kapak-photo--lizard .is-body { clip-path: ellipse(34% 28% at 50% 36%); }
.kapak-photo--lizard .is-tail { clip-path: polygon(40% 55%, 60% 55%, 55% 98%, 45% 98%); transform-origin: 50% 55%; }
.kapak-photo--lizard .is-leg-fl { clip-path: polygon(5% 28%, 32% 34%, 28% 52%, 2% 48%); transform-origin: 30% 38%; }
.kapak-photo--lizard .is-leg-fr { clip-path: polygon(68% 34%, 95% 28%, 98% 48%, 72% 52%); transform-origin: 70% 38%; }
.kapak-photo--lizard .is-leg-bl { clip-path: polygon(8% 48%, 34% 50%, 30% 72%, 4% 70%); transform-origin: 32% 52%; }
.kapak-photo--lizard .is-leg-br { clip-path: polygon(66% 50%, 92% 48%, 96% 70%, 70% 72%); transform-origin: 68% 52%; }
.kapak-bug.is-walking .kapak-photo--lizard .is-leg-fl,
.kapak-bug.is-walking .kapak-photo--lizard .is-leg-br {
    animation: kapak-leg-step-a var(--photo-walk-ms, var(--lizard-walk-ms, 280ms)) ease-in-out infinite alternate;
}
.kapak-bug.is-walking .kapak-photo--lizard .is-leg-fr,
.kapak-bug.is-walking .kapak-photo--lizard .is-leg-bl {
    animation: kapak-leg-step-b var(--photo-walk-ms, var(--lizard-walk-ms, 280ms)) ease-in-out infinite alternate;
}
.kapak-bug.is-walking .kapak-photo--lizard .is-tail {
    animation: kapak-tail-wag var(--photo-walk-ms, 300ms) ease-in-out infinite alternate;
}

.kapak-photo--frog .is-body { clip-path: ellipse(42% 36% at 50% 48%); }
.kapak-photo--frog .is-leg-fl { clip-path: polygon(4% 30%, 30% 36%, 26% 55%, 2% 50%); transform-origin: 28% 40%; }
.kapak-photo--frog .is-leg-fr { clip-path: polygon(70% 36%, 96% 30%, 98% 50%, 74% 55%); transform-origin: 72% 40%; }
.kapak-photo--frog .is-leg-bl { clip-path: polygon(6% 58%, 34% 56%, 28% 92%, 2% 90%); transform-origin: 30% 58%; }
.kapak-photo--frog .is-leg-br { clip-path: polygon(66% 56%, 94% 58%, 98% 90%, 72% 92%); transform-origin: 70% 58%; }

/* قورباغه: بدون راه رفتن ماشینی — فقط جمع‌شدن / پرش / فرود */
.kapak-bug.is-frog.is-walking .kapak-photo--frog .is-leg-fl,
.kapak-bug.is-frog.is-walking .kapak-photo--frog .is-leg-fr,
.kapak-bug.is-frog.is-walking .kapak-photo--frog .is-leg-bl,
.kapak-bug.is-frog.is-walking .kapak-photo--frog .is-leg-br {
    animation: none;
}
.kapak-bug.is-frog.is-crawling .kapak-bug-leg-l,
.kapak-bug.is-frog.is-crawling .kapak-bug-leg-r {
    animation: none;
}

.kapak-bug.is-frog.is-crouch .kapak-photo--frog .is-leg-bl,
.kapak-bug.is-frog.is-crouch .kapak-photo--frog .is-leg-br {
    transform: scaleY(0.72) translateY(-6%);
}
.kapak-bug.is-frog.is-crouch .kapak-photo--frog .is-leg-fl,
.kapak-bug.is-frog.is-crouch .kapak-photo--frog .is-leg-fr {
    transform: scaleY(0.85) translateY(4%);
}
.kapak-bug.is-frog.is-crouch .kapak-photo--frog .is-body {
    transform: scale(1.06, 0.9);
}

.kapak-bug.is-frog.is-air .kapak-photo--frog .is-leg-bl {
    transform: rotate(-28deg) translate(-4%, 8%) scaleY(1.15);
}
.kapak-bug.is-frog.is-air .kapak-photo--frog .is-leg-br {
    transform: rotate(28deg) translate(4%, 8%) scaleY(1.15);
}
.kapak-bug.is-frog.is-air .kapak-photo--frog .is-leg-fl {
    transform: rotate(12deg) translateY(-4%);
}
.kapak-bug.is-frog.is-air .kapak-photo--frog .is-leg-fr {
    transform: rotate(-12deg) translateY(-4%);
}
.kapak-bug.is-frog.is-air .kapak-photo--frog .is-body {
    transform: scale(0.94, 1.08);
}

.kapak-bug.is-frog.is-land .kapak-photo--frog .is-leg-bl,
.kapak-bug.is-frog.is-land .kapak-photo--frog .is-leg-br {
    transform: scaleY(0.65) translateY(-4%);
}
.kapak-bug.is-frog.is-land .kapak-photo--frog .is-body {
    transform: scale(1.1, 0.82);
}

.kapak-bug.is-frog.is-hopping {
    z-index: 74;
    filter:
        drop-shadow(0 0 1.2px rgba(255, 232, 186, 0.9))
        drop-shadow(0 calc(1px + var(--hop-shadow, 2px)) 3px rgba(0, 0, 0, 0.55));
}

.kapak-photo--scorpion .is-body { clip-path: ellipse(34% 22% at 50% 58%); }
.kapak-photo--scorpion .is-tail { clip-path: polygon(40% 2%, 60% 2%, 58% 48%, 42% 48%); transform-origin: 50% 48%; z-index: 4; }
.kapak-photo--scorpion .is-claw-l { clip-path: polygon(0% 40%, 28% 48%, 24% 68%, 0% 62%); transform-origin: 26% 52%; }
.kapak-photo--scorpion .is-claw-r { clip-path: polygon(72% 48%, 100% 40%, 100% 62%, 76% 68%); transform-origin: 74% 52%; }
.kapak-photo--scorpion .is-leg-l { clip-path: polygon(10% 62%, 40% 64%, 36% 88%, 8% 86%); transform-origin: 36% 64%; }
.kapak-photo--scorpion .is-leg-r { clip-path: polygon(60% 64%, 90% 62%, 92% 86%, 64% 88%); transform-origin: 64% 64%; }
.kapak-bug.is-walking .kapak-photo--scorpion .is-leg-l {
    animation: kapak-leg-step-a var(--photo-walk-ms, 240ms) ease-in-out infinite alternate;
}
.kapak-bug.is-walking .kapak-photo--scorpion .is-leg-r {
    animation: kapak-leg-step-b var(--photo-walk-ms, 240ms) ease-in-out infinite alternate;
}
.kapak-bug.is-walking .kapak-photo--scorpion .is-tail {
    animation: kapak-scorp-tail var(--photo-walk-ms, 360ms) ease-in-out infinite alternate;
}
.kapak-bug.is-walking .kapak-photo--scorpion .is-claw-l {
    animation: kapak-claw-l var(--photo-walk-ms, 300ms) ease-in-out infinite alternate;
}
.kapak-bug.is-walking .kapak-photo--scorpion .is-claw-r {
    animation: kapak-claw-r var(--photo-walk-ms, 300ms) ease-in-out infinite alternate;
}

.kapak-photo--crab .is-body { clip-path: ellipse(40% 32% at 50% 52%); }
.kapak-photo--crab .is-claw-l { clip-path: polygon(0% 18%, 30% 32%, 26% 55%, 0% 48%); transform-origin: 28% 40%; }
.kapak-photo--crab .is-claw-r { clip-path: polygon(70% 32%, 100% 18%, 100% 48%, 74% 55%); transform-origin: 72% 40%; }
.kapak-photo--crab .is-leg-l { clip-path: polygon(8% 58%, 40% 60%, 36% 90%, 6% 88%); transform-origin: 36% 60%; }
.kapak-photo--crab .is-leg-r { clip-path: polygon(60% 60%, 92% 58%, 94% 88%, 64% 90%); transform-origin: 64% 60%; }
.kapak-bug.is-walking .kapak-photo--crab .is-leg-l {
    animation: kapak-leg-step-a var(--photo-walk-ms, 220ms) ease-in-out infinite alternate;
}
.kapak-bug.is-walking .kapak-photo--crab .is-leg-r {
    animation: kapak-leg-step-b var(--photo-walk-ms, 220ms) ease-in-out infinite alternate;
}
.kapak-bug.is-walking .kapak-photo--crab .is-claw-l {
    animation: kapak-claw-l var(--photo-walk-ms, 280ms) ease-in-out infinite alternate;
}
.kapak-bug.is-walking .kapak-photo--crab .is-claw-r {
    animation: kapak-claw-r var(--photo-walk-ms, 280ms) ease-in-out infinite alternate;
}

.kapak-photo--spider .is-body { clip-path: ellipse(28% 30% at 50% 48%); }
.kapak-photo--spider .is-leg-l { clip-path: polygon(0% 20%, 42% 40%, 40% 70%, 0% 80%); transform-origin: 42% 50%; }
.kapak-photo--spider .is-leg-r { clip-path: polygon(58% 40%, 100% 20%, 100% 80%, 60% 70%); transform-origin: 58% 50%; }
.kapak-bug.is-walking .kapak-photo--spider .is-leg-l {
    animation: kapak-leg-step-a var(--photo-walk-ms, 180ms) ease-in-out infinite alternate;
}
.kapak-bug.is-walking .kapak-photo--spider .is-leg-r {
    animation: kapak-leg-step-b var(--photo-walk-ms, 180ms) ease-in-out infinite alternate;
}

.kapak-photo--dragonfly .is-body { clip-path: ellipse(18% 42% at 50% 55%); }
.kapak-photo--dragonfly .is-wing-fl { clip-path: polygon(0% 18%, 48% 28%, 46% 42%, 0% 36%); transform-origin: 48% 32%; }
.kapak-photo--dragonfly .is-wing-fr { clip-path: polygon(52% 28%, 100% 18%, 100% 36%, 54% 42%); transform-origin: 52% 32%; }
.kapak-photo--dragonfly .is-wing-bl { clip-path: polygon(0% 40%, 48% 44%, 46% 58%, 0% 56%); transform-origin: 48% 48%; }
.kapak-photo--dragonfly .is-wing-br { clip-path: polygon(52% 44%, 100% 40%, 100% 56%, 54% 58%); transform-origin: 52% 48%; }
.kapak-bug.is-walking .kapak-photo--dragonfly .is-wing-fl,
.kapak-bug.is-walking .kapak-photo--dragonfly .is-wing-bl {
    animation: kapak-wing-flap-l 90ms ease-in-out infinite alternate;
}
.kapak-bug.is-walking .kapak-photo--dragonfly .is-wing-fr,
.kapak-bug.is-walking .kapak-photo--dragonfly .is-wing-br {
    animation: kapak-wing-flap-r 90ms ease-in-out infinite alternate;
}

.kapak-photo--centipede .is-body { clip-path: inset(8% 28% 8% 28%); }
.kapak-photo--centipede .is-head { clip-path: ellipse(28% 12% at 50% 10%); z-index: 4; }
.kapak-photo--centipede .is-leg-l { clip-path: polygon(0% 10%, 32% 12%, 30% 90%, 0% 88%); transform-origin: 32% 50%; }
.kapak-photo--centipede .is-leg-r { clip-path: polygon(68% 12%, 100% 10%, 100% 88%, 70% 90%); transform-origin: 68% 50%; }
.kapak-bug.is-walking .kapak-photo--centipede .is-leg-l {
    animation: kapak-leg-step-a var(--photo-walk-ms, 160ms) ease-in-out infinite alternate;
}
.kapak-bug.is-walking .kapak-photo--centipede .is-leg-r {
    animation: kapak-leg-step-b var(--photo-walk-ms, 160ms) ease-in-out infinite alternate;
}

.kapak-photo--tick .is-body { clip-path: ellipse(42% 42% at 50% 52%); }
.kapak-photo--tick .is-leg-l { clip-path: polygon(0% 25%, 40% 40%, 38% 75%, 0% 70%); transform-origin: 40% 50%; }
.kapak-photo--tick .is-leg-r { clip-path: polygon(60% 40%, 100% 25%, 100% 70%, 62% 75%); transform-origin: 60% 50%; }
.kapak-bug.is-walking .kapak-photo--tick .is-leg-l {
    animation: kapak-leg-step-a var(--photo-walk-ms, 200ms) ease-in-out infinite alternate;
}
.kapak-bug.is-walking .kapak-photo--tick .is-leg-r {
    animation: kapak-leg-step-b var(--photo-walk-ms, 200ms) ease-in-out infinite alternate;
}

.kapak-photo--dung .is-body { clip-path: ellipse(36% 34% at 58% 50%); }
.kapak-photo--dung .is-ball { clip-path: circle(22% at 22% 55%); z-index: 4; }
.kapak-photo--dung .is-leg-l { clip-path: polygon(40% 20%, 62% 28%, 58% 48%, 38% 42%); transform-origin: 55% 35%; }
.kapak-photo--dung .is-leg-r { clip-path: polygon(40% 58%, 60% 55%, 62% 78%, 38% 80%); transform-origin: 55% 65%; }
.kapak-bug.is-walking .kapak-photo--dung .is-leg-l {
    animation: kapak-leg-step-a var(--photo-walk-ms, 240ms) ease-in-out infinite alternate;
}
.kapak-bug.is-walking .kapak-photo--dung .is-leg-r {
    animation: kapak-leg-step-b var(--photo-walk-ms, 240ms) ease-in-out infinite alternate;
}
.kapak-bug.is-walking .kapak-photo--dung .is-ball {
    animation: kapak-dung-roll var(--photo-walk-ms, 280ms) linear infinite;
}

.kapak-photo--roach .is-body { clip-path: ellipse(48% 36% at 55% 50%); }
.kapak-photo--roach .is-ant-l { clip-path: polygon(0% 20%, 22% 35%, 18% 48%, 0% 40%); transform-origin: 20% 40%; }
.kapak-photo--roach .is-ant-r { clip-path: polygon(0% 55%, 20% 52%, 22% 70%, 0% 75%); transform-origin: 20% 58%; }
.kapak-photo--roach .is-leg-lf { clip-path: polygon(30% 5%, 55% 18%, 50% 32%, 28% 22%); transform-origin: 48% 25%; }
.kapak-photo--roach .is-leg-lm { clip-path: polygon(45% 8%, 70% 5%, 72% 22%, 48% 28%); transform-origin: 58% 20%; }
.kapak-photo--roach .is-leg-lb { clip-path: polygon(60% 12%, 90% 8%, 92% 28%, 62% 32%); transform-origin: 68% 22%; }
.kapak-photo--roach .is-leg-rf { clip-path: polygon(30% 70%, 52% 68%, 55% 90%, 28% 92%); transform-origin: 48% 75%; }
.kapak-photo--roach .is-leg-rm { clip-path: polygon(48% 72%, 72% 78%, 70% 95%, 45% 90%); transform-origin: 58% 80%; }
.kapak-photo--roach .is-leg-rb { clip-path: polygon(62% 68%, 92% 72%, 90% 92%, 60% 88%); transform-origin: 68% 78%; }
.kapak-bug.is-walking .kapak-photo--roach .is-leg-lf,
.kapak-bug.is-walking .kapak-photo--roach .is-leg-lb,
.kapak-bug.is-walking .kapak-photo--roach .is-leg-rm {
    animation: kapak-leg-step-a var(--photo-walk-ms, 160ms) ease-in-out infinite alternate;
}
.kapak-bug.is-walking .kapak-photo--roach .is-leg-rf,
.kapak-bug.is-walking .kapak-photo--roach .is-leg-rb,
.kapak-bug.is-walking .kapak-photo--roach .is-leg-lm {
    animation: kapak-leg-step-b var(--photo-walk-ms, 160ms) ease-in-out infinite alternate;
}

/* ——— زامبی راهرو (نیم‌رخ روبه‌راست) ——— */
.kapak-photo--zombie {
    filter: drop-shadow(0 2px 3px rgba(0, 0, 0, 0.4));
}

.kapak-photo--zombie .is-leg-b {
    /* پای عقب (چپ تصویر) — استخوان ساق */
    clip-path: polygon(0% 48%, 38% 46%, 44% 58%, 42% 100%, 4% 100%, 0% 70%);
    transform-origin: 32% 50%;
    z-index: 1;
}
.kapak-photo--zombie .is-leg-f {
    /* پای جلو (قدم روبه‌راست) */
    clip-path: polygon(36% 46%, 82% 40%, 92% 56%, 84% 100%, 42% 100%, 34% 66%);
    transform-origin: 54% 48%;
    z-index: 4;
}
.kapak-photo--zombie .is-arm-b {
    /* دست دور با استخوان شانه — بالاتر */
    clip-path: polygon(40% 16%, 100% 0%, 100% 24%, 76% 36%, 46% 34%);
    transform-origin: 52% 28%;
    z-index: 1;
}
.kapak-photo--zombie .is-arm-f {
    /* دست نزدیک — کمی پایین‌تر */
    clip-path: polygon(36% 26%, 98% 20%, 100% 44%, 70% 50%, 40% 44%);
    transform-origin: 48% 34%;
    z-index: 5;
}
.kapak-photo--zombie .is-body {
    /* سر + تنه + مرکز شلوار */
    clip-path: polygon(16% 0%, 68% 0%, 76% 14%, 70% 40%, 64% 54%, 36% 56%, 26% 42%, 20% 20%);
    z-index: 3;
}

.kapak-bug.is-zombie.is-walking .kapak-photo--zombie .is-leg-b,
.kapak-bug.is-zombie.is-crawling .kapak-photo--zombie .is-leg-b,
.kapak-bug.is-zombie-walk .kapak-photo--zombie .is-leg-b {
    animation: kapak-zomb-leg-b var(--photo-walk-ms, 560ms) cubic-bezier(0.45, 0.05, 0.55, 0.95) infinite alternate;
}
.kapak-bug.is-zombie.is-walking .kapak-photo--zombie .is-leg-f,
.kapak-bug.is-zombie.is-crawling .kapak-photo--zombie .is-leg-f,
.kapak-bug.is-zombie-walk .kapak-photo--zombie .is-leg-f {
    animation: kapak-zomb-leg-f var(--photo-walk-ms, 560ms) cubic-bezier(0.45, 0.05, 0.55, 0.95) infinite alternate;
}
.kapak-bug.is-zombie.is-walking .kapak-photo--zombie .is-arm-b,
.kapak-bug.is-zombie.is-crawling .kapak-photo--zombie .is-arm-b,
.kapak-bug.is-zombie-walk .kapak-photo--zombie .is-arm-b {
    animation: kapak-zomb-arm-b calc(var(--photo-walk-ms, 560ms) * 1.2) ease-in-out infinite alternate;
}
.kapak-bug.is-zombie.is-walking .kapak-photo--zombie .is-arm-f,
.kapak-bug.is-zombie.is-crawling .kapak-photo--zombie .is-arm-f,
.kapak-bug.is-zombie-walk .kapak-photo--zombie .is-arm-f {
    animation: kapak-zomb-arm-f calc(var(--photo-walk-ms, 560ms) * 1.2) ease-in-out infinite alternate;
}
.kapak-bug.is-zombie.is-walking .kapak-photo--zombie .is-body,
.kapak-bug.is-zombie.is-crawling .kapak-photo--zombie .is-body,
.kapak-bug.is-zombie-walk .kapak-photo--zombie .is-body {
    animation: kapak-zomb-body-bob var(--photo-walk-ms, 560ms) ease-in-out infinite alternate;
}
.kapak-bug.is-zombie.is-walking .kapak-photo-gait,
.kapak-bug.is-zombie.is-crawling .kapak-photo-gait,
.kapak-bug.is-zombie-walk .kapak-photo-gait {
    animation: kapak-zomb-sway calc(var(--photo-walk-ms, 560ms) * 2) ease-in-out infinite;
}

.kapak-photo--bus .is-body {
    clip-path: none;
}

@keyframes kapak-leg-step-a {
    from { transform: rotate(-14deg) translateY(0); }
    to { transform: rotate(16deg) translateY(1px); }
}
@keyframes kapak-leg-step-b {
    from { transform: rotate(14deg) translateY(0); }
    to { transform: rotate(-16deg) translateY(1px); }
}
@keyframes kapak-zomb-leg-b {
    from { transform: rotate(14deg) translate(1px, 0); }
    to { transform: rotate(-18deg) translate(-1px, 2px); }
}
@keyframes kapak-zomb-leg-f {
    from { transform: rotate(-16deg) translate(-1px, 1px); }
    to { transform: rotate(20deg) translate(2px, 0); }
}
@keyframes kapak-zomb-arm-b {
    from { transform: rotate(-10deg) translateY(0); }
    to { transform: rotate(12deg) translateY(1px); }
}
@keyframes kapak-zomb-arm-f {
    from { transform: rotate(8deg) translateY(1px); }
    to { transform: rotate(-14deg) translateY(0); }
}
@keyframes kapak-zomb-body-bob {
    from { transform: translateY(0) rotate(-1deg); }
    to { transform: translateY(1.5px) rotate(1.5deg); }
}
@keyframes kapak-zomb-sway {
    0%, 100% { transform: translateX(0) rotate(0deg); }
    25% { transform: translateX(0.5px) rotate(1deg); }
    75% { transform: translateX(-0.5px) rotate(-1deg); }
}
@keyframes kapak-flipper-a {
    from { transform: rotate(-18deg) scaleX(1); }
    to { transform: rotate(20deg) scaleX(0.92); }
}
@keyframes kapak-flipper-b {
    from { transform: rotate(18deg) scaleX(1); }
    to { transform: rotate(-20deg) scaleX(0.92); }
}
@keyframes kapak-tent-sway-l {
    from { transform: rotate(-10deg) translateX(0); }
    to { transform: rotate(12deg) translateX(1px); }
}
@keyframes kapak-tent-sway-m {
    from { transform: rotate(6deg); }
    to { transform: rotate(-8deg); }
}
@keyframes kapak-tent-sway-r {
    from { transform: rotate(10deg) translateX(0); }
    to { transform: rotate(-12deg) translateX(-1px); }
}
@keyframes kapak-bell-pulse {
    from { transform: scale(1); }
    to { transform: scale(1.06, 0.94); }
}
@keyframes kapak-fin-l {
    from { transform: rotate(-8deg); }
    to { transform: rotate(18deg); }
}
@keyframes kapak-fin-r {
    from { transform: rotate(8deg); }
    to { transform: rotate(-18deg); }
}
@keyframes kapak-tail-wag {
    from { transform: rotate(-12deg) scaleY(1); }
    to { transform: rotate(12deg) scaleY(0.96); }
}
@keyframes kapak-head-bob {
    from { transform: translateY(0) rotate(-3deg); }
    to { transform: translateY(1px) rotate(3deg); }
}
@keyframes kapak-ear-twitch {
    from { transform: rotate(-6deg); }
    to { transform: rotate(8deg); }
}
@keyframes kapak-wing-flap-l {
    from { transform: rotate(-6deg) scaleY(1); }
    to { transform: rotate(-28deg) scaleY(0.75); }
}
@keyframes kapak-wing-flap-r {
    from { transform: rotate(6deg) scaleY(1); }
    to { transform: rotate(28deg) scaleY(0.75); }
}
@keyframes kapak-claw-l {
    from { transform: rotate(-8deg); }
    to { transform: rotate(14deg); }
}
@keyframes kapak-claw-r {
    from { transform: rotate(8deg); }
    to { transform: rotate(-14deg); }
}
@keyframes kapak-scorp-tail {
    from { transform: rotate(-8deg); }
    to { transform: rotate(10deg); }
}
@keyframes kapak-dung-roll {
    from { transform: rotate(0deg); }
    to { transform: rotate(360deg); }
}

.kapak-bug svg,
.kapak-fly svg {
    display: block;
    width: 16px;
    height: 16px;
    margin: 3px;
    overflow: visible;
    filter:
        drop-shadow(0 0 1.2px rgba(255, 232, 186, 0.9))
        drop-shadow(0 1px 2px rgba(0, 0, 0, 0.75));
}

.kapak-bug.is-roach svg,
.kapak-bug.is-lizard svg {
    display: block;
    width: 100%;
    height: 100%;
    margin: 0;
}

.kapak-roach,
.kapak-lizard {
    display: block;
    width: 100%;
    height: 100%;
    pointer-events: none;
    overflow: visible;
}

.kapak-bug.is-worm svg {
    width: 40px;
    height: 14px;
    overflow: visible;
}

.kapak-bug.is-silkworm svg {
    width: 44px;
    height: 16px;
    overflow: visible;
}

.kapak-bug.is-worm .kapak-worm-seg,
.kapak-bug.is-silkworm .kapak-worm-seg {
    fill: #d9899a;
    stroke: #b86a7a;
    stroke-width: 0.35;
    transform-box: fill-box;
    transform-origin: center;
}

.kapak-bug.is-silkworm .kapak-worm-seg {
    fill: #f0e0c4;
    stroke: #d2b892;
}

.kapak-bug.is-silkworm .kapak-worm-seg.is-s6 {
    fill: #f6ead2;
}

.kapak-bug.is-silkworm .kapak-silkworm-leg {
    fill: #cbb48e;
}

.kapak-bug.is-worm .kapak-worm-seg.is-s6 {
    fill: #e29aaa;
}

.kapak-bug.is-worm .kapak-worm-eye,
.kapak-bug.is-silkworm .kapak-worm-eye {
    pointer-events: none;
}

.kapak-bug.is-worm.is-crawling.is-walking .kapak-worm-seg,
.kapak-bug.is-silkworm.is-crawling.is-walking .kapak-worm-seg {
    animation: kapak-worm-peristalsis var(--worm-crawl-ms, 620ms) ease-in-out infinite;
}

.kapak-bug.is-worm.is-crawling.is-walking .kapak-worm-seg.is-s6,
.kapak-bug.is-silkworm.is-crawling.is-walking .kapak-worm-seg.is-s6 { animation-delay: 0ms; }
.kapak-bug.is-worm.is-crawling.is-walking .kapak-worm-seg.is-s5,
.kapak-bug.is-silkworm.is-crawling.is-walking .kapak-worm-seg.is-s5 { animation-delay: calc(var(--worm-crawl-ms, 620ms) * -0.12); }
.kapak-bug.is-worm.is-crawling.is-walking .kapak-worm-seg.is-s4,
.kapak-bug.is-silkworm.is-crawling.is-walking .kapak-worm-seg.is-s4 { animation-delay: calc(var(--worm-crawl-ms, 620ms) * -0.24); }
.kapak-bug.is-worm.is-crawling.is-walking .kapak-worm-seg.is-s3,
.kapak-bug.is-silkworm.is-crawling.is-walking .kapak-worm-seg.is-s3 { animation-delay: calc(var(--worm-crawl-ms, 620ms) * -0.36); }
.kapak-bug.is-worm.is-crawling.is-walking .kapak-worm-seg.is-s2,
.kapak-bug.is-silkworm.is-crawling.is-walking .kapak-worm-seg.is-s2 { animation-delay: calc(var(--worm-crawl-ms, 620ms) * -0.48); }
.kapak-bug.is-worm.is-crawling.is-walking .kapak-worm-seg.is-s1,
.kapak-bug.is-silkworm.is-crawling.is-walking .kapak-worm-seg.is-s1 { animation-delay: calc(var(--worm-crawl-ms, 620ms) * -0.60); }

.kapak-bug.is-worm.is-crawling:not(.is-walking) .kapak-worm-seg,
.kapak-bug.is-silkworm.is-crawling:not(.is-walking) .kapak-worm-seg {
    animation: none;
}

.kapak-bug.is-spider svg {
    width: 28px;
    height: 28px;
    margin: 3px;
}

.kapak-bug.is-frog svg {
    width: 34px;
    height: 30px;
    margin: 3px;
}

.kapak-fly-wing {
    transform-box: fill-box;
}

.kapak-fly-wing.is-left {
    transform-origin: 100% 70%;
    animation: kapak-fly-flap-l 0.07s ease-in-out infinite alternate;
}

.kapak-fly-wing.is-right {
    transform-origin: 0% 70%;
    animation: kapak-fly-flap-r 0.07s ease-in-out infinite alternate;
}

.kapak-bug.is-on-brain {
    pointer-events: none !important;
    cursor: default;
}

.kapak-bug.is-on-brain .kapak-fly-wing.is-left {
    animation: none;
    transform: rotate(18deg) scaleY(0.12) translate(1px, 3px);
}

.kapak-bug.is-on-brain .kapak-fly-wing.is-right {
    animation: none;
    transform: rotate(-18deg) scaleY(0.12) translate(-1px, 3px);
}

.kapak-bug.is-crawling .kapak-bug-leg-l {
    transform-box: fill-box;
    transform-origin: 100% 50%;
    animation: kapak-bug-step-l 0.16s ease-in-out infinite alternate;
}

.kapak-bug.is-crawling .kapak-bug-leg-r {
    transform-box: fill-box;
    transform-origin: 0% 50%;
    animation: kapak-bug-step-r 0.16s ease-in-out infinite alternate;
}

.kapak-bug.is-worm.is-crawling .kapak-worm-body,
.kapak-bug.is-silkworm.is-crawling .kapak-silkworm-body {
    transform-box: fill-box;
    transform-origin: 50% 50%;
}

@keyframes kapak-worm-peristalsis {
    /* لنگر: کوتاه و کلفت (longitudinal) */
    0%, 100% { transform: scale(0.86, 1.28); }
    /* کش‌آمدن روبه‌جلو: بلند و باریک (circular) */
    50% { transform: scale(1.14, 0.78); }
}

@keyframes kapak-fly-flap-l {
    from { transform: rotate(-8deg) scaleY(1); }
    to { transform: rotate(-50deg) scaleY(0.5); }
}

@keyframes kapak-fly-flap-r {
    from { transform: rotate(8deg) scaleY(1); }
    to { transform: rotate(50deg) scaleY(0.5); }
}

@keyframes kapak-bug-step-l {
    from { transform: rotate(-8deg); }
    to { transform: rotate(18deg); }
}

@keyframes kapak-bug-step-r {
    from { transform: rotate(8deg); }
    to { transform: rotate(-18deg); }
}

.kapak-fly-plus {
    position: fixed;
    z-index: 80;
    pointer-events: none;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 2px;
    min-width: 72px;
    padding: 6px 10px;
    border-radius: 12px;
    background: linear-gradient(160deg, rgba(42, 28, 12, 0.92), rgba(22, 14, 8, 0.88));
    border: 1px solid rgba(232, 165, 75, 0.45);
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.45);
    font-size: 0.72rem;
    font-weight: 800;
    color: #f0c878;
    text-shadow: 0 1px 3px rgba(0, 0, 0, 0.65);
    animation: kapak-fly-plus-up 1.35s ease-out forwards;
}

.kapak-fly-plus-val {
    font-size: 0.95rem;
    font-weight: 900;
    color: #ffd48a;
    letter-spacing: 0.02em;
    white-space: nowrap;
}

.kapak-fly-plus-kind {
    font-size: 0.68rem;
    font-weight: 700;
    color: rgba(255, 236, 200, 0.85);
}

.kapak-fly-plus-note {
    font-size: 0.62rem;
    font-weight: 600;
    color: rgba(255, 210, 180, 0.9);
}

.kapak-fly-plus.is-hint {
    border-color: rgba(255, 180, 150, 0.4);
    color: #ffe1d8;
}

.kapak-fly-plus.is-zero .kapak-fly-plus-val {
    color: rgba(220, 200, 170, 0.75);
}

.kapak-fly-plus.is-penalty .kapak-fly-plus-val {
    color: #ff7a6a;
    text-shadow: 0 1px 0 rgba(60, 10, 8, 0.45);
}

@keyframes kapak-fly-plus-up {
    0% { opacity: 0; transform: translateY(6px) scale(0.85); }
    12% { opacity: 1; transform: translateY(0) scale(1); }
    70% { opacity: 1; transform: translateY(-18px) scale(1); }
    100% { opacity: 0; transform: translateY(-36px) scale(0.96); }
}

.kapak-bug.is-trapped {
    filter: brightness(0.72) saturate(0.85);
    cursor: pointer;
    animation: kapak-trapped-struggle 0.55s ease-in-out infinite;
    z-index: 66;
}

.kapak-bug.is-trapped::after {
    content: "";
    position: absolute;
    inset: -4px;
    border-radius: 50%;
    pointer-events: none;
    background:
        radial-gradient(circle at 30% 35%, transparent 40%, rgba(230, 230, 235, 0.22) 41%, transparent 42%),
        radial-gradient(circle at 70% 60%, transparent 38%, rgba(230, 230, 235, 0.18) 39%, transparent 41%);
    box-shadow: inset 0 0 0 1px rgba(230, 230, 235, 0.2);
}

@keyframes kapak-trapped-struggle {
    0%, 100% { transform: scale(1) rotate(0deg); }
    25% { transform: scale(1.03, 0.96) rotate(-2deg); }
    50% { transform: scale(0.97, 1.04) rotate(2deg); }
    75% { transform: scale(1.02, 0.98) rotate(-1deg); }
}

.kapak-spider-web {
    position: fixed;
    z-index: 65;
    pointer-events: none;
    opacity: 0.85;
    animation: kapak-web-in 0.45s ease-out;
}

.kapak-spider-web svg {
    width: 100%;
    height: 100%;
    display: block;
    filter: drop-shadow(0 0 1px rgba(255, 255, 255, 0.25));
}

@keyframes kapak-web-in {
    from { opacity: 0; transform: scale(0.35); }
    to { opacity: 0.85; transform: scale(1); }
}

.kapak-bug-gore {
    position: fixed;
    z-index: 72;
    width: 0;
    height: 0;
    pointer-events: none;
    overflow: visible;
}

.kapak-bug-gore-body {
    position: absolute;
    left: 0;
    top: 0;
    width: var(--gore-w, 20px);
    height: var(--gore-h, 16px);
    max-width: 48px;
    max-height: 48px;
    overflow: hidden;
    transform: translate(-50%, -50%) rotate(var(--smash-rot, 16deg)) scaleY(0.38) scaleX(1.18);
    transform-origin: 50% 50%;
    pointer-events: none;
    filter: saturate(0.75) contrast(1.05) brightness(0.92);
}

.kapak-bug-gore.is-blast-mine .kapak-bug-gore-body {
    max-width: 56px;
    max-height: 56px;
    filter: saturate(0.45) contrast(1.35) brightness(0.72) sepia(0.12);
    animation: kapak-blast-body-fling 0.62s cubic-bezier(0.12, 0.7, 0.2, 1) forwards;
}

.kapak-bug-gore.is-blast-mine .kapak-bug-gore-body.is-blast-torn {
    transform: translate(-50%, -50%) rotate(var(--smash-rot, 40deg)) scaleY(0.22) scaleX(1.42);
    clip-path: polygon(8% 18%, 42% 0%, 92% 12%, 100% 48%, 78% 100%, 22% 92%, 0% 55%);
}

.kapak-bug-gore.is-wreck.is-blast-mine .kapak-bug-gore-body.is-wreck-hull {
    max-width: 88px;
    max-height: 88px;
    filter: grayscale(0.7) contrast(1.4) brightness(0.5) sepia(0.25);
    animation: kapak-blast-wreck-fling 0.7s cubic-bezier(0.12, 0.7, 0.2, 1) forwards;
}

.kapak-bug-gore.is-wreck .kapak-bug-gore-body.is-wreck-hull {
    max-width: 72px;
    max-height: 72px;
    overflow: visible;
    transform: translate(-50%, -50%) rotate(var(--smash-rot, 16deg)) scale(0.82) scaleY(0.72);
    filter: grayscale(0.55) contrast(1.25) brightness(0.62) sepia(0.15);
    opacity: 0.92;
    animation: kapak-wreck-hull 0.55s cubic-bezier(0.2, 0.7, 0.25, 1) forwards;
}

.kapak-bug-gore-body .kapak-photo,
.kapak-bug-gore-body .kapak-photo-gait,
.kapak-bug-gore-body svg {
    display: block;
    width: 100%;
    height: 100%;
    margin: 0;
}

.kapak-bug-gore img,
.kapak-bug-gore-photo {
    display: block;
    width: 100%;
    height: 100%;
    max-width: 48px;
    max-height: 48px;
    object-fit: contain;
    object-position: center;
}

.kapak-bug-gore-name {
    position: absolute;
    left: 0;
    top: 0;
    transform: translate(-50%, calc(var(--gore-h, 16px) * 0.42 + 7px));
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0;
    pointer-events: none;
    white-space: nowrap;
    line-height: 1.15;
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.85);
}

.kapak-bug-gore-name .is-fa {
    font-size: 9px;
    font-weight: 600;
    color: rgba(245, 238, 220, 0.92);
}

.kapak-bug-gore-name .is-en {
    font-size: 8px;
    font-weight: 500;
    letter-spacing: 0.02em;
    color: rgba(210, 204, 188, 0.78);
    font-family: "Segoe UI", Tahoma, sans-serif;
    direction: ltr;
    unicode-bidi: isolate;
}

.kapak-bug-pool {
    position: absolute;
    left: 0;
    top: 0;
    width: var(--pool-w, 34px);
    height: var(--pool-h, 22px);
    transform: translate(-50%, -50%) rotate(var(--pool-rot, -12deg)) scale(0.35);
    border-radius: 68% 32% 58% 42% / 48% 62% 38% 52%;
    background:
        radial-gradient(ellipse at 42% 38%, rgba(130, 16, 20, 0.92) 0%, rgba(78, 8, 12, 0.82) 38%, rgba(42, 4, 8, 0.45) 68%, transparent 78%),
        radial-gradient(ellipse at 68% 62%, rgba(95, 10, 14, 0.7) 0%, transparent 55%);
    box-shadow:
        0 1px 3px rgba(0, 0, 0, 0.35),
        inset 0 -2px 4px rgba(20, 0, 0, 0.35),
        inset 1px 1px 2px rgba(160, 40, 40, 0.18);
    filter: blur(0.35px);
    animation:
        kapak-pool-settle 0.55s cubic-bezier(0.2, 0.8, 0.3, 1) forwards,
        kapak-smear-fade 5s ease-out forwards;
}

.kapak-bug-pool.is-secondary {
    opacity: 0.85;
    transform: translate(calc(-50% + var(--dx, 8px)), calc(-50% + var(--dy, 6px))) rotate(var(--pool-rot, 20deg)) scale(0.25);
    border-radius: 42% 58% 48% 52% / 60% 40% 55% 45%;
    filter: blur(0.55px);
}

.kapak-bug-pool.is-blast {
    animation-duration: 0.7s, 5.5s;
}

.kapak-bug-pool.is-secondary.is-blast {
    animation:
        kapak-pool-settle-offset 0.65s cubic-bezier(0.2, 0.8, 0.3, 1) forwards,
        kapak-smear-fade 5.5s ease-out forwards;
}

.kapak-bug-gore.is-roach .kapak-bug-pool {
    background:
        radial-gradient(ellipse at 42% 38%, rgba(255, 252, 245, 0.96) 0%, rgba(242, 232, 205, 0.9) 36%, rgba(210, 200, 170, 0.5) 68%, transparent 80%),
        radial-gradient(ellipse at 68% 62%, rgba(235, 225, 195, 0.75) 0%, transparent 55%);
    box-shadow:
        0 1px 3px rgba(40, 35, 20, 0.28),
        inset 0 -2px 4px rgba(120, 110, 80, 0.22),
        inset 1px 1px 2px rgba(255, 255, 255, 0.35);
}

.kapak-bug-gore.is-roach .kapak-bug-blood {
    box-shadow: 0 0.5px 1.5px rgba(90, 80, 50, 0.28);
}

.kapak-bug-blood {
    position: absolute;
    left: 0;
    top: 0;
    width: var(--sz, 6px);
    height: var(--sz, 6px);
    border-radius: var(--br, 50% 40% 55% 45%);
    transform: translate(-50%, -50%);
    animation: kapak-blood-spatter 0.42s cubic-bezier(0.15, 0.75, 0.25, 1) forwards;
    animation-delay: var(--delay, 0s);
    opacity: 0.9;
    filter: blur(0.25px);
    box-shadow: 0 0.5px 1.5px rgba(20, 0, 0, 0.35);
}

.kapak-bug-blood.is-blast {
    animation-duration: 0.58s;
    animation-timing-function: cubic-bezier(0.1, 0.75, 0.2, 1);
}

.kapak-bug-blood.is-streak {
    width: calc(var(--sz, 6px) * 0.7);
    height: calc(var(--sz, 6px) * 2.4);
    border-radius: 40% 60% 55% 45% / 20% 25% 75% 80%;
    filter: blur(0.4px);
}

.kapak-bug-blood.is-blast.is-streak {
    height: calc(var(--sz, 6px) * 3.4);
}

.kapak-bug-blood.is-drip {
    width: calc(var(--sz, 6px) * 0.85);
    height: calc(var(--sz, 6px) * 1.7);
    border-radius: 45% 55% 50% 50% / 30% 30% 70% 70%;
    animation-name: kapak-blood-drip;
    animation-duration: 0.55s;
}

.kapak-bug-blood.is-blast.is-drip {
    animation-duration: 0.72s;
}

.kapak-bug-blood.is-mist {
    filter: blur(1.1px);
    opacity: 0.55;
    width: calc(var(--sz, 6px) * 1.4);
    height: calc(var(--sz, 6px) * 1.1);
}

.kapak-bug-blood.is-blast.is-mist {
    filter: blur(1.6px);
    width: calc(var(--sz, 6px) * 2.1);
    height: calc(var(--sz, 6px) * 1.6);
}

.kapak-bug-part {
    position: absolute;
    left: 0;
    top: 0;
    width: var(--pw, 9px);
    height: var(--ph, 6px);
    transform: translate(-50%, -50%);
    animation: kapak-part-fling 0.48s ease-out forwards;
    animation-delay: var(--delay, 0s);
    overflow: hidden;
    pointer-events: none;
}

.kapak-bug-part.is-blast {
    animation-name: kapak-part-fling-blast;
    animation-duration: 0.72s;
    animation-timing-function: cubic-bezier(0.12, 0.7, 0.2, 1);
    z-index: 2;
}

.kapak-bug-part i {
    display: block;
    width: 100%;
    height: 100%;
    border-radius: 55% 35% 60% 40% / 45% 55% 40% 60%;
    background: #4a2814;
    transform: rotate(var(--rot, 0deg));
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.45);
    filter: blur(0.15px);
}

.kapak-bug-part i.is-sprite-shard {
    background: transparent;
    border-radius: 0;
    overflow: hidden;
    filter: contrast(1.2) brightness(0.78) saturate(0.55);
    clip-path: polygon(12% 8%, 88% 0%, 100% 55%, 70% 100%, 0% 78%);
}

.kapak-bug-part i.is-sprite-shard > * {
    display: block;
    width: 180%;
    height: 180%;
    margin-left: var(--shard-x, -30%);
    margin-top: var(--shard-y, -25%);
    max-width: none;
    max-height: none;
}

.kapak-bug-part.is-metal i {
    border-radius: 18% 40% 22% 48%;
    background: linear-gradient(135deg, #8a9098, #3a3e44 55%, #6a7078);
}

@keyframes kapak-pool-settle {
    from { transform: translate(-50%, -50%) rotate(var(--pool-rot, -12deg)) scale(0.2); opacity: 0.4; }
    to { transform: translate(-50%, -50%) rotate(var(--pool-rot, -12deg)) scale(1); opacity: 0.95; }
}

@keyframes kapak-pool-settle-offset {
    from {
        transform: translate(calc(-50% + var(--dx, 8px) * 0.2), calc(-50% + var(--dy, 6px) * 0.2)) rotate(var(--pool-rot, 20deg)) scale(0.15);
        opacity: 0.35;
    }
    to {
        transform: translate(calc(-50% + var(--dx, 8px)), calc(-50% + var(--dy, 6px))) rotate(var(--pool-rot, 20deg)) scale(1);
        opacity: 0.9;
    }
}

@keyframes kapak-blood-spatter {
    from {
        transform: translate(-50%, -50%) scale(0.15);
        opacity: 1;
    }
    70% {
        opacity: 0.92;
    }
    to {
        transform: translate(calc(-50% + var(--dx)), calc(-50% + var(--dy))) scale(1);
        opacity: 0.82;
    }
}

@keyframes kapak-blood-drip {
    from {
        transform: translate(-50%, -50%) scale(0.2, 0.4);
        opacity: 1;
    }
    to {
        transform: translate(calc(-50% + var(--dx)), calc(-50% + var(--dy) + 8px)) scale(0.85, 1.35);
        opacity: 0.8;
    }
}

@keyframes kapak-part-fling {
    from { transform: translate(-50%, -50%) scale(0.35); opacity: 1; }
    to { transform: translate(calc(-50% + var(--dx)), calc(-50% + var(--dy))) rotate(var(--rot, 40deg)); opacity: 0.75; }
}

@keyframes kapak-part-fling-blast {
    from {
        transform: translate(-50%, -50%) scale(0.25) rotate(0deg);
        opacity: 1;
    }
    55% {
        opacity: 0.95;
    }
    to {
        transform: translate(calc(-50% + var(--dx)), calc(-50% + var(--dy))) rotate(var(--rot, 80deg)) scale(1);
        opacity: 0.78;
    }
}

@keyframes kapak-blast-body-fling {
    from {
        transform: translate(-50%, -50%) rotate(var(--smash-rot, 40deg)) scaleY(0.55) scaleX(1.1);
        opacity: 1;
    }
    to {
        transform: translate(calc(-50% + var(--blast-dx, 0px)), calc(-50% + var(--blast-dy, 0px))) rotate(calc(var(--smash-rot, 40deg) + 28deg)) scaleY(0.2) scaleX(1.45);
        opacity: 0.82;
    }
}

@keyframes kapak-blast-wreck-fling {
    from {
        transform: translate(-50%, -50%) rotate(var(--smash-rot, 20deg)) scale(0.9) scaleY(0.85);
        opacity: 1;
    }
    to {
        transform: translate(calc(-50% + var(--blast-dx, 0px)), calc(-50% + var(--blast-dy, 0px))) rotate(calc(var(--smash-rot, 20deg) + 42deg)) scale(0.72) scaleY(0.55);
        opacity: 0.78;
    }
}

@keyframes kapak-smear-fade {
    0%, 65% { opacity: 0.92; }
    100% { opacity: 0; }
}

/* —— لاشهٔ وسایل جنگی: روغن، دود، خرده‌آهن —— */
.kapak-wreck-stain {
    position: absolute;
    left: 0;
    top: 0;
    width: var(--pool-w, 40px);
    height: var(--pool-h, 28px);
    transform: translate(-50%, -50%) rotate(var(--pool-rot, -8deg)) scale(0.3);
    border-radius: 58% 42% 62% 38% / 48% 55% 45% 52%;
    background:
        radial-gradient(ellipse at 40% 40%, rgba(28, 30, 34, 0.88) 0%, rgba(18, 20, 22, 0.72) 42%, rgba(10, 12, 14, 0.35) 70%, transparent 82%),
        radial-gradient(ellipse at 70% 60%, rgba(55, 48, 28, 0.45) 0%, transparent 55%),
        radial-gradient(ellipse at 30% 70%, rgba(40, 70, 50, 0.22) 0%, transparent 50%);
    box-shadow:
        0 1px 4px rgba(0, 0, 0, 0.4),
        inset 0 0 8px rgba(0, 0, 0, 0.35),
        inset 1px 1px 2px rgba(90, 95, 100, 0.12);
    filter: blur(0.4px);
    animation:
        kapak-pool-settle 0.5s cubic-bezier(0.2, 0.8, 0.3, 1) forwards,
        kapak-smear-fade 5s ease-out forwards;
}

.kapak-wreck-stain.is-secondary {
    opacity: 0.8;
    transform: translate(calc(-50% + var(--dx, 10px)), calc(-50% + var(--dy, 8px))) rotate(var(--pool-rot, 18deg)) scale(0.22);
    animation:
        kapak-pool-settle-offset 0.6s cubic-bezier(0.2, 0.8, 0.3, 1) forwards,
        kapak-smear-fade 5.5s ease-out forwards;
}

.kapak-wreck-stain.is-blast {
    animation-duration: 0.65s, 5.5s;
}

.kapak-wreck-smoke.is-blast {
    animation-duration: 1.35s;
}

.kapak-wreck-scrap.is-blast {
    animation-duration: 0.75s;
}

.kapak-wreck-spark.is-blast {
    animation-duration: 0.52s;
}

.kapak-wreck-fire {
    position: absolute;
    left: 0;
    top: 0;
    width: var(--sz, 14px);
    height: var(--sz, 14px);
    border-radius: 50% 45% 55% 40%;
    pointer-events: none;
    transform: translate(-50%, -50%);
    background:
        radial-gradient(circle at 40% 60%, rgba(255, 240, 160, 0.95) 0%, rgba(255, 120, 30, 0.8) 40%, rgba(180, 30, 10, 0.35) 70%, transparent 82%);
    box-shadow: 0 0 12px rgba(255, 100, 20, 0.55);
    animation: kapak-wreck-fire 0.85s ease-out forwards;
    animation-delay: var(--delay, 0s);
}

@keyframes kapak-wreck-fire {
    from {
        transform: translate(-50%, -50%) scale(0.3);
        opacity: 1;
    }
    to {
        transform: translate(calc(-50% + var(--dx)), calc(-50% + var(--dy) - 18px)) scale(1.4);
        opacity: 0;
    }
}

.kapak-wreck-smoke {
    position: absolute;
    left: 0;
    top: 0;
    width: var(--sz, 18px);
    height: var(--sz, 18px);
    border-radius: 50%;
    background: radial-gradient(circle at 40% 40%, rgba(90, 92, 96, 0.55) 0%, rgba(50, 52, 56, 0.28) 45%, transparent 72%);
    transform: translate(-50%, -50%) scale(0.35);
    filter: blur(2.2px);
    opacity: 0.7;
    animation: kapak-wreck-smoke 1.1s ease-out forwards;
    animation-delay: var(--delay, 0s);
}

.kapak-wreck-scrap {
    position: absolute;
    left: 0;
    top: 0;
    width: var(--sz, 7px);
    height: var(--sz, 7px);
    background: var(--metal, #6a7078);
    transform: translate(-50%, -50%) rotate(var(--rot, 0deg)) scale(0.2);
    box-shadow:
        0 1px 2px rgba(0, 0, 0, 0.45),
        inset 0 1px 1px rgba(255, 255, 255, 0.22),
        inset 0 -1px 1px rgba(0, 0, 0, 0.35);
    animation: kapak-wreck-fling 0.55s cubic-bezier(0.12, 0.7, 0.2, 1) forwards;
    animation-delay: var(--delay, 0s);
}

.kapak-wreck-scrap.is-plate {
    border-radius: 1px 3px 2px 1px;
    clip-path: polygon(8% 12%, 92% 2%, 98% 78%, 18% 96%, 2% 48%);
}

.kapak-wreck-scrap.is-bolt {
    width: calc(var(--sz, 7px) * 0.7);
    height: calc(var(--sz, 7px) * 0.7);
    border-radius: 50%;
    box-shadow:
        0 1px 1px rgba(0, 0, 0, 0.4),
        inset 0 0 0 1.2px rgba(30, 32, 36, 0.55),
        inset 0 1px 1px rgba(255, 255, 255, 0.3);
}

.kapak-wreck-scrap.is-rod {
    width: calc(var(--sz, 7px) * 0.35);
    height: calc(var(--sz, 7px) * 2.1);
    border-radius: 1px;
}

.kapak-wreck-scrap.is-shard {
    clip-path: polygon(50% 0%, 100% 38%, 78% 100%, 20% 92%, 0% 40%);
    border-radius: 0;
}

.kapak-wreck-scrap.is-gear {
    border-radius: 20%;
    background:
        radial-gradient(circle at 50% 50%, rgba(20, 22, 26, 0.85) 0 28%, transparent 30%),
        var(--metal, #6a7078);
    box-shadow:
        0 1px 2px rgba(0, 0, 0, 0.4),
        inset 0 0 0 1px rgba(255, 255, 255, 0.12);
}

.kapak-wreck-spark {
    position: absolute;
    left: 0;
    top: 0;
    width: 3px;
    height: 3px;
    border-radius: 50%;
    background: #ffe9a0;
    box-shadow: 0 0 4px 1px rgba(255, 180, 60, 0.85);
    transform: translate(-50%, -50%) scale(0.4);
    animation: kapak-wreck-spark 0.38s ease-out forwards;
    animation-delay: var(--delay, 0s);
}

@keyframes kapak-wreck-hull {
    from {
        transform: translate(-50%, -50%) rotate(var(--smash-rot, 16deg)) scale(1.05);
        filter: grayscale(0.2) contrast(1.1) brightness(1.1) sepia(0.05);
        opacity: 1;
    }
    to {
        transform: translate(-50%, -50%) rotate(var(--smash-rot, 16deg)) scale(0.82) scaleY(0.72);
        filter: grayscale(0.55) contrast(1.25) brightness(0.62) sepia(0.15);
        opacity: 0.9;
    }
}

@keyframes kapak-wreck-fling {
    from {
        transform: translate(-50%, -50%) rotate(calc(var(--rot, 0deg) * 0.2)) scale(0.25);
        opacity: 1;
    }
    65% {
        opacity: 0.95;
    }
    to {
        transform: translate(calc(-50% + var(--dx)), calc(-50% + var(--dy))) rotate(var(--rot, 40deg)) scale(1);
        opacity: 0.88;
    }
}

@keyframes kapak-wreck-smoke {
    from {
        transform: translate(-50%, -50%) scale(0.3);
        opacity: 0.65;
    }
    to {
        transform: translate(calc(-50% + var(--dx)), calc(-50% + var(--dy))) scale(1.45);
        opacity: 0;
    }
}

@keyframes kapak-wreck-spark {
    from {
        transform: translate(-50%, -50%) scale(0.5);
        opacity: 1;
    }
    to {
        transform: translate(calc(-50% + var(--dx)), calc(-50% + var(--dy))) scale(0.15);
        opacity: 0;
    }
}

/* ——— حالت سبک موبایل / دستگاه ضعیف ——— */
html.is-perf-lite .kapak-bug,
html.is-perf-lite .kapak-fly {
    will-change: auto;
    contain: layout style;
}

html.is-perf-lite .kapak-bug,
html.is-perf-lite .kapak-bug.is-hopping,
html.is-perf-lite .kapak-bug.is-zombie,
html.is-perf-lite .kapak-bug.is-military,
html.is-perf-lite .kapak-bug.is-sheep {
    filter: none !important;
}

html.is-perf-lite .kapak-photo.is-lite {
    display: block;
    width: 100%;
    height: 100%;
}

html.is-perf-lite .kapak-photo.is-lite > .kapak-photo-img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
    pointer-events: none;
}

html.is-perf-lite .kapak-bug.is-walking .kapak-photo-part,
html.is-perf-lite .kapak-bug.is-walking .kapak-snail-foot,
html.is-perf-lite .kapak-bug.is-walking .kapak-snail-body,
html.is-perf-lite .kapak-bug.is-walking .kapak-snail-shell,
html.is-perf-lite .kapak-bug.is-walking .kapak-snail-stalk,
html.is-perf-lite .kapak-bug.is-walking .kapak-bug-leg-l,
html.is-perf-lite .kapak-bug.is-walking .kapak-bug-leg-r,
html.is-perf-lite .kapak-bug.is-walking .kapak-fly-wing,
html.is-perf-lite .kapak-bug.is-crawling .kapak-photo-part,
html.is-perf-lite .kapak-bug.is-zombie-walk .kapak-photo-part,
html.is-perf-lite .kapak-bug.is-military .kapak-mil-leg,
html.is-perf-lite .kapak-bug.is-sheep .kapak-sheep-leg {
    animation: none !important;
}

html.is-perf-lite .kapak-bug.is-chick .kapak-photo,
html.is-perf-lite .kapak-bug.is-chick {
    filter: none !important;
}

html.is-perf-low .kapak-mine-flash,
html.is-perf-low .kapak-blast-ring,
html.is-perf-low .kapak-blast-dirt {
    box-shadow: none !important;
    filter: none !important;
}

html.is-perf-lite .kapak-bug-gore {
    filter: none !important;
}
