/* Котик на профиле (набросок 2026-10-01) — всё в .axcat, ничего не трогает на странице */
.axcat{ position:absolute; left:0; top:0; width:128px; height:128px; z-index:50; pointer-events:auto; cursor:pointer;
  transform:translate(var(--x,0px), var(--y,0px)); will-change:transform; -webkit-tap-highlight-color:transparent; }
.axcat .pose{ position:absolute; inset:0; display:none; overflow:visible; }
.axcat.p-stand .stand, .axcat.p-sit .sit, .axcat.p-sleep .sleep, .axcat.p-jump .stand{ display:block; }
.axcat .flip{ transform-origin:36px 27px; }
.axcat.left .flip{ transform:scaleX(-1); }
.axcat svg{ width:88px; height:66px; overflow:visible; filter:drop-shadow(0 3px 4px rgba(0,0,0,.45)); }

/* цвета */
.axcat .fur{ fill:#c7d2dc; } .axcat .fur2{ fill:#9eacb9; } .axcat .belly{ fill:#eef3f7; }
.axcat .line{ stroke:#1b2533; stroke-width:1.6; fill:none; stroke-linecap:round; stroke-linejoin:round; }
.axcat .ol{ stroke:#1b2533; stroke-width:1.6; stroke-linejoin:round; }
.axcat .pink{ fill:#ff9eb5; } .axcat .eye{ fill:#14202c; } .axcat .shine{ fill:#fff; }
.axcat .collar{ fill:#29a3ab; } .axcat .tag{ fill:#f4ca80; stroke:#1b2533; stroke-width:.8; }
.axcat .tagtxt{ font:700 4.2px Inter,system-ui,sans-serif; fill:#1b2533; }

/* ходьба / бег */
.axcat .leg{ transform-box:fill-box; transform-origin:50% 0%; }
.axcat.p-stand.moving .leg.a{ animation:axcat-leg .36s ease-in-out infinite; }
.axcat.p-stand.moving .leg.b{ animation:axcat-leg .36s ease-in-out infinite reverse; }
.axcat.p-stand.moving.run .leg.a,.axcat.p-stand.moving.run .leg.b{ animation-duration:.2s; }
.axcat.p-stand.moving .bodyg{ animation:axcat-bob .36s ease-in-out infinite; }
.axcat.p-stand.moving.run .bodyg{ animation-duration:.2s; }
@keyframes axcat-leg{ 0%,100%{ transform:rotate(26deg); } 50%{ transform:rotate(-26deg); } }
@keyframes axcat-bob{ 0%,100%{ transform:translateY(0); } 50%{ transform:translateY(-1.2px); } }

/* хвост */
.axcat .tail{ transform-box:view-box; }
.axcat .stand .tail{ transform-origin:16px 25px; animation:axcat-tail 2.4s ease-in-out infinite; }
.axcat .sit .tail{ transform-origin:22px 46px; animation:axcat-tail2 3s ease-in-out infinite; }
@keyframes axcat-tail{ 0%,100%{ transform:rotate(-6deg); } 50%{ transform:rotate(10deg); } }
@keyframes axcat-tail2{ 0%,100%{ transform:rotate(0); } 50%{ transform:rotate(-12deg); } }

/* моргание */
.axcat .eyes{ transform-box:fill-box; transform-origin:50% 50%; animation:axcat-blink 4.5s infinite; }
@keyframes axcat-blink{ 0%,93%,100%{ transform:scaleY(1); } 95%{ transform:scaleY(.1); } }

/* умывание: лапа к мордочке */
.axcat .paw{ transform-box:fill-box; transform-origin:50% 100%; }
.axcat.groom .sit .paw{ animation:axcat-groom .5s ease-in-out infinite; }
.axcat.groom .sit .headg{ animation:axcat-nod .5s ease-in-out infinite; }
@keyframes axcat-groom{ 0%,100%{ transform:translate(0,0) rotate(0); } 50%{ transform:translate(2px,-9px) rotate(-30deg); } }
@keyframes axcat-nod{ 0%,100%{ transform:translate(0,0); } 50%{ transform:translate(-1px,1.5px); } }

/* удар лапой по значку */
.axcat.swipe .sit .paw{ animation:axcat-swipe .45s ease-out 2; }
@keyframes axcat-swipe{ 0%,100%{ transform:rotate(0); } 40%{ transform:translate(6px,-6px) rotate(-70deg); } }

/* сон: дыхание и Zzz */
.axcat .sleep .breath{ transform-box:fill-box; transform-origin:50% 100%; animation:axcat-breath 2.6s ease-in-out infinite; }
@keyframes axcat-breath{ 0%,100%{ transform:scaleY(1); } 50%{ transform:scaleY(1.06); } }
.axcat .z{ position:absolute; font:800 13px Unbounded,system-ui,sans-serif; color:#8fd7ff; opacity:0; pointer-events:none; text-shadow:0 0 6px rgba(43,127,255,.6); }
.axcat.p-sleep .z{ animation:axcat-z 3s ease-in-out infinite; }
.axcat.p-sleep .z.z2{ animation-delay:1s; } .axcat.p-sleep .z.z3{ animation-delay:2s; }
@keyframes axcat-z{ 0%{ opacity:0; transform:translate(58px,14px) scale(.6); } 20%{ opacity:1; } 100%{ opacity:0; transform:translate(80px,-24px) scale(1.25); } }

/* прыжок — дуга задаётся JS, тут только вытягивание */
.axcat.p-jump .bodyg{ transform:rotate(-14deg); transform-box:view-box; transform-origin:36px 30px; }

/* сердечки и «мяу» */
.axcat-fx{ position:absolute; z-index:51; pointer-events:none; font:700 16px Inter,system-ui,sans-serif; animation:axcat-fx 1.3s ease-out forwards; }
.axcat-fx.meow{ font:800 13px Unbounded,system-ui,sans-serif; color:#fff; background:linear-gradient(120deg,#29a3ab,#2b7fff); padding:3px 9px; border-radius:999px; box-shadow:0 6px 18px rgba(43,127,255,.35); }
@keyframes axcat-fx{ 0%{ opacity:0; transform:translate(0,0) scale(.6); } 15%{ opacity:1; transform:translate(0,-6px) scale(1); } 100%{ opacity:0; transform:translate(var(--dx,0px),-46px) scale(1.1); } }

/* значок, по которому ударили */
.axcat-knock{ animation:axcat-knock .9s cubic-bezier(.3,1.6,.5,1); }
@keyframes axcat-knock{ 0%{ transform:translate(0,0) rotate(0); } 25%{ transform:translate(14px,-10px) rotate(28deg); } 60%{ transform:translate(-4px,2px) rotate(-8deg); } 100%{ transform:translate(0,0) rotate(0); } }

/* счётчик «погладили» */
.axcat-pets{ position:absolute; z-index:51; pointer-events:none; font:700 11px Inter,system-ui,sans-serif; color:#cfe9ff; background:rgba(13,19,32,.92); border:1px solid rgba(41,163,171,.45); padding:3px 8px; border-radius:999px; white-space:nowrap; opacity:0; transition:opacity .25s; }
.axcat-pets.on{ opacity:1; }

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

/* ── шкоды ── */
.axcat.scratch .sit .paw{ animation:axcat-scr .18s linear infinite; }
@keyframes axcat-scr{ 0%,100%{ transform:translate(0,0) rotate(0); } 50%{ transform:translate(3px,-7px) rotate(-40deg); } }
.axcat.scared .bodyg{ transform:scale(1.12,1.18); transform-box:view-box; transform-origin:36px 40px; }
.axcat-scratch{ position:absolute; width:22px; height:26px; pointer-events:none; z-index:2; animation:axcat-fade 9s ease-in forwards; }
.axcat-scratch i{ position:absolute; top:0; width:2px; height:24px; border-radius:2px; background:rgba(255,255,255,.55); transform:rotate(18deg); box-shadow:0 0 4px rgba(255,255,255,.25); }
.axcat-scratch i:nth-child(1){ left:2px; } .axcat-scratch i:nth-child(2){ left:9px; top:-2px; } .axcat-scratch i:nth-child(3){ left:16px; }
.axcat-print{ position:absolute; z-index:49; width:12px; height:12px; pointer-events:none; opacity:.5; animation:axcat-fade 7s ease-in forwards;
  background:radial-gradient(circle at 50% 70%, #9fb2c0 0 3.4px, transparent 3.6px), radial-gradient(circle at 18% 28%, #9fb2c0 0 1.6px, transparent 1.8px),
             radial-gradient(circle at 50% 12%, #9fb2c0 0 1.6px, transparent 1.8px), radial-gradient(circle at 82% 28%, #9fb2c0 0 1.6px, transparent 1.8px); }
.axcat-print.r{ transform:rotate(90deg) scaleX(-1); } .axcat-print{ transform:rotate(90deg); }
@keyframes axcat-fade{ 0%,70%{ opacity:.55; } 100%{ opacity:0; } }
.axcat-fall{ animation:axcat-fall 3.1s cubic-bezier(.4,0,.2,1); }
@keyframes axcat-fall{ 0%{ transform:none; } 12%{ transform:translate(12px,-12px) rotate(30deg); } 30%{ transform:translate(30px,90px) rotate(160deg); opacity:.2; }
  70%{ transform:translate(30px,90px) rotate(160deg); opacity:0; } 71%{ transform:translateY(-20px); opacity:0; } 100%{ transform:none; opacity:1; } }
.axcat-nudge{ display:inline-block; animation:axcat-nudge 1.1s cubic-bezier(.3,1.6,.5,1); }
@keyframes axcat-nudge{ 0%{ transform:none; } 30%{ transform:translateX(18px) rotate(4deg); } 65%{ transform:translateX(-4px) rotate(-1deg); } 100%{ transform:none; } }

/* спрайт (cat-sprite.png, лист 8×10 кадров 32×32, ×3) */
.axcat .spr{ position:absolute; inset:0; background-repeat:no-repeat; image-rendering:pixelated; image-rendering:crisp-edges;
  filter:drop-shadow(0 3px 2px rgba(0,0,0,.55)); }
.axcat.left .spr{ transform:scaleX(-1); }
.axcat .z{ top:52px; }
@keyframes axcat-z{ 0%{ opacity:0; transform:translate(84px,30px) scale(.6); } 20%{ opacity:1; } 100%{ opacity:0; transform:translate(108px,-4px) scale(1.25); } }

/* ── v3: предметы, коробка, миска, облачко, сезоны ── */
.axcat-item{ position:absolute; z-index:49; pointer-events:none; background-size:100% 100%; image-rendering:pixelated; image-rendering:crisp-edges; filter:drop-shadow(0 3px 2px rgba(0,0,0,.5)); }
.axcat-mug.fall{ animation:axcat-mugfall .7s cubic-bezier(.5,0,.9,.6) forwards; }
@keyframes axcat-mugfall{ 0%{ transform:none; } 25%{ transform:translate(10px,-6px) rotate(25deg); } 100%{ transform:translate(34px,150px) rotate(200deg); opacity:.9; } }
.axcat-shard{ position:absolute; z-index:49; width:6px; height:6px; pointer-events:none; animation:axcat-shard 1.5s ease-out forwards; }
@keyframes axcat-shard{ 0%{ transform:translate(0,0); opacity:1; } 40%{ transform:translate(calc(var(--dx)*.6),var(--dy)); } 100%{ transform:translate(var(--dx),18px); opacity:0; } }
.axcat-boxback{ z-index:48; } .axcat-boxfront{ z-index:52; pointer-events:auto; cursor:pointer; }
.axcat-boxback,.axcat-boxfront{ animation:axcat-pop .35s cubic-bezier(.3,1.6,.5,1); }
.axcat-boxback.gone,.axcat-boxfront.gone{ transition:opacity .5s, transform .5s; opacity:0; transform:translateY(10px); }
@keyframes axcat-pop{ 0%{ transform:scale(.4) translateY(20px); opacity:0; } 100%{ transform:none; opacity:1; } }
.axcat-mouse{ z-index:51; } .axcat-mouse.carried{ transform:rotate(-20deg) scale(.8); }
.axcat-mouse.trophy{ transition:opacity 1s; animation:axcat-pop .3s; }
.axcat-bowl{ z-index:49; animation:axcat-pop .35s cubic-bezier(.3,1.6,.5,1); }
.axcat-hat{ position:absolute; z-index:2; filter:none; transform-origin:50% 100%; }
.axcat-deco{ z-index:49; }
.axcat-snow{ position:fixed; top:-20px; z-index:3; color:#cfe9ff; opacity:.75; font-size:14px; pointer-events:none; animation:axcat-snow linear infinite; }
@keyframes axcat-snow{ 0%{ transform:translate(0,0) rotate(0); } 100%{ transform:translate(40px,110vh) rotate(360deg); } }
.axcat-spark{ position:absolute; z-index:53; width:6px; height:6px; border-radius:1px; pointer-events:none; animation:axcat-spark 1.1s ease-out forwards; }
@keyframes axcat-spark{ 0%{ transform:translate(0,0); opacity:1; } 100%{ transform:translate(var(--dx),calc(var(--dy) + 20px)); opacity:0; } }
.axcat-bubble{ position:absolute; z-index:54; pointer-events:none; max-width:220px; padding:6px 11px; border-radius:12px; background:#f4f8fb; color:#14202c;
  font:700 12px Inter,system-ui,sans-serif; box-shadow:0 6px 18px rgba(0,0,0,.35); opacity:0; transform:translateY(6px); transition:opacity .2s, transform .2s; white-space:nowrap; }
.axcat-bubble::after{ content:''; position:absolute; left:50%; bottom:-6px; margin-left:-6px; border:6px solid transparent; border-top-color:#f4f8fb; border-bottom:0; }
.axcat-bubble.on{ opacity:1; transform:none; }
.axcat-feedbtn{ position:absolute; z-index:49; padding:3px 9px; border-radius:999px; border:1px solid rgba(41,163,171,.4); background:rgba(13,19,32,.88);
  color:#9fd6e6; font:600 10.5px/1.4 Inter,system-ui,sans-serif; cursor:pointer; white-space:nowrap; }
.axcat-feedbtn:hover{ border-color:#29a3ab; color:#fff; } .axcat-feedbtn:disabled{ opacity:.6; }
.axcat.inbox{ z-index:50; }
