/* MASTER-J Android companion — cohesive 2.5D SVG body, not detached floating parts. */
.cursor-android {
  position:fixed !important; top:0 !important; left:0 !important; width:124px !important; height:154px !important;
  z-index:10030 !important; display:block; opacity:0; visibility:hidden; pointer-events:none !important; overflow:visible !important;
  perspective:900px !important; transform-style:preserve-3d !important;
  filter:drop-shadow(0 10px 13px rgba(0,0,0,.58)) drop-shadow(0 0 15px rgba(0,255,157,.28)) !important; will-change:transform;
  transition:opacity .18s ease,visibility .18s ease;
}
.cursor-android.is-visible { opacity:1; visibility:visible; }
.cursor-android::before { content:""; position:absolute; z-index:-2; inset:10px 6px 6px; border-radius:50%; background:radial-gradient(ellipse,rgba(0,255,163,.28),rgba(0,255,143,.11) 46%,transparent 74%); filter:blur(13px); opacity:.66; transform:scale(.88); transition:opacity .25s,transform .25s; }
.cursor-android.is-running::before { opacity:1; transform:scale(1.16); animation:mj-aura .45s ease-in-out infinite alternate; }
.android-facing { position:absolute !important; inset:0 !important; transform:perspective(760px) rotateY(var(--android-yaw,0deg)) !important; transform-origin:50% 83% !important; transform-style:preserve-3d !important; }
.mj-robot-svg { display:block; width:100%; height:100%; overflow:visible; transform-style:preserve-3d; }
.mj-ground-shadow { fill:rgba(0,0,0,.55); filter:blur(3px); }
.mj-robot-body { transform-box:fill-box; transform-origin:50% 87%; transform-style:preserve-3d; }
.mj-head { transform-box:fill-box; transform-origin:50% 78%; transform-style:preserve-3d; }
.mj-arm,.mj-leg { transform-box:fill-box; transform-origin:50% 8%; transform-style:preserve-3d; }
.mj-rear { display:none; }
.mj-face-oops { display:none; }
.cursor-android.is-facing-back .mj-face,.cursor-android.is-facing-back .mj-face-oops { display:none; }
.cursor-android.is-facing-back .mj-rear { display:block; }
.cursor-android.is-facing-side-left .mj-face rect:nth-child(1),.cursor-android.is-facing-side-right .mj-face rect:nth-child(2) { opacity:.12; }
.cursor-android.is-running .mj-robot-body { animation:mj-run-bob .34s ease-in-out infinite; }
.cursor-android.is-running .mj-head { animation:mj-run-head .34s ease-in-out infinite alternate; }
.cursor-android.is-running .mj-arm-left { animation:mj-run-arm-left .34s ease-in-out infinite alternate; }
.cursor-android.is-running .mj-arm-right { animation:mj-run-arm-right .34s ease-in-out infinite alternate; }
.cursor-android.is-running .mj-leg-left { animation:mj-run-leg-left .34s ease-in-out infinite alternate; }
.cursor-android.is-running .mj-leg-right { animation:mj-run-leg-right .34s ease-in-out infinite alternate; }
.cursor-android.is-running .mj-antenna { animation:mj-antenna-bounce .24s ease-in-out infinite alternate; }
.cursor-android.is-falling .mj-robot-body { animation:mj-fall-body .62s cubic-bezier(.15,.82,.28,1) forwards !important; }
.cursor-android.is-falling .mj-head { animation:mj-fall-head .62s ease-in-out forwards; }
.cursor-android.is-falling .mj-arm-left { animation:mj-fall-arm-left .62s ease-out forwards; }.cursor-android.is-falling .mj-arm-right { animation:mj-fall-arm-right .62s ease-out forwards; }
.cursor-android.is-falling .mj-leg-left { animation:mj-fall-leg-left .62s ease-out forwards; }.cursor-android.is-falling .mj-leg-right { animation:mj-fall-leg-right .62s ease-out forwards; }
.cursor-android.is-falling .mj-face { display:none; }.cursor-android.is-falling .mj-face-oops { display:block; }
.cursor-android.is-sitting .mj-robot-body { animation:mj-sit-body .42s ease-out forwards; }
.cursor-android.is-sitting .mj-arm-left { animation:mj-sit-arm-left .42s ease-out forwards; }.cursor-android.is-sitting .mj-arm-right { animation:mj-sit-arm-right .42s ease-out forwards; }
.cursor-android.is-sitting .mj-leg-left { animation:mj-sit-leg-left .42s ease-out forwards; }.cursor-android.is-sitting .mj-leg-right { animation:mj-sit-leg-right .42s ease-out forwards; }
.cursor-android.is-kneeling .mj-robot-body { animation:mj-kneel-body .42s ease-out forwards; }
.cursor-android.is-kneeling .mj-arm-left { animation:mj-kneel-arm-left .42s ease-out forwards; }.cursor-android.is-kneeling .mj-arm-right { animation:mj-kneel-arm-right .42s ease-out forwards; }
.cursor-android.is-kneeling .mj-leg-left { animation:mj-kneel-leg-left .42s ease-out forwards; }.cursor-android.is-kneeling .mj-leg-right { animation:mj-kneel-leg-right .42s ease-out forwards; }
.cursor-android.is-getting-up .mj-robot-body { animation:mj-getup-body .62s cubic-bezier(.2,.9,.25,1) forwards; }
.cursor-android.is-getting-up .mj-arm-left { animation:mj-getup-arm-left .62s ease-out forwards; }.cursor-android.is-getting-up .mj-arm-right { animation:mj-getup-arm-right .62s ease-out forwards; }
.cursor-android.is-getting-up .mj-leg-left,.cursor-android.is-getting-up .mj-leg-right { animation:mj-getup-legs .62s ease-out forwards; }
.android-oops,.android-emote { position:absolute; z-index:3; pointer-events:none; opacity:0; font-weight:900; text-shadow:0 0 10px currentColor; }
.android-oops { top:3px; right:-4px; color:#caffea; font-size:10px; letter-spacing:1px; }.android-emote { left:3px; top:4px; color:#8effd0; font-size:17px; }
.cursor-android.is-falling .android-oops { animation:mj-oops-pop .95s ease-out forwards; }.cursor-android.is-falling .android-emote { animation:mj-emote-pop .62s ease-out forwards; }
.android-shadow { position:absolute; z-index:-1; left:19px; right:19px; bottom:3px; height:12px; border-radius:50%; background:radial-gradient(ellipse,rgba(0,0,0,.72),transparent 72%); filter:blur(4px); transition:transform .3s,opacity .3s; }
.cursor-android.is-falling .android-shadow { transform:scaleX(1.5); opacity:.6; }
.android-dust { position:absolute; left:12px; right:12px; bottom:2px; height:28px; opacity:0; pointer-events:none; }
.android-dust::before,.android-dust::after,.android-dust i,.android-dust b { content:""; position:absolute; bottom:3px; width:7px; height:7px; border-radius:50%; background:rgba(145,255,205,.62); box-shadow:0 0 10px rgba(0,255,157,.55); }
.android-dust::before { left:12px; }.android-dust::after { left:37px; }.android-dust i { left:64px; }.android-dust b { left:86px; }
.cursor-android.is-running .android-dust { opacity:1; }
.cursor-android.is-running .android-dust::before { animation:mj-dust-puff .42s ease-out infinite; }.cursor-android.is-running .android-dust::after { animation:mj-dust-puff .42s .1s ease-out infinite; }
.cursor-android.is-running .android-dust i { animation:mj-dust-puff .42s .2s ease-out infinite; }.cursor-android.is-running .android-dust b { animation:mj-dust-puff .42s .3s ease-out infinite; }
.cursor-android.is-falling .android-dust { opacity:1; animation:mj-impact .62s ease-out forwards; }
@keyframes mj-aura { from{opacity:.55;transform:scale(.9)} to{opacity:1;transform:scale(1.22)} }
@keyframes mj-run-bob { 0%,100%{transform:translateY(1px) rotate(-2deg)} 50%{transform:translateY(-5px) rotate(2deg)} }
@keyframes mj-run-head { from{transform:rotate(-3deg)} to{transform:rotate(3deg) translateY(-1px)} }
@keyframes mj-run-arm-left { from{transform:rotate(38deg)} to{transform:rotate(-44deg)} }
@keyframes mj-run-arm-right { from{transform:rotate(-44deg)} to{transform:rotate(38deg)} }
@keyframes mj-run-leg-left { from{transform:rotate(30deg)} to{transform:rotate(-34deg)} }
@keyframes mj-run-leg-right { from{transform:rotate(-34deg)} to{transform:rotate(30deg)} }
@keyframes mj-antenna-bounce { from{transform:translateY(0) rotate(-7deg)} to{transform:translateY(-2px) rotate(8deg)} }
@keyframes mj-fall-body { 0%{transform:rotate(0) translateY(0)} 30%{transform:rotate(-12deg) translate(-3px,2px)} 67%{transform:rotate(72deg) translate(12px,17px)} 100%{transform:rotate(86deg) translate(13px,21px)} }
@keyframes mj-fall-head { 0%,100%{transform:rotate(0)} 40%{transform:rotate(-20deg)} 70%{transform:rotate(19deg)} }
@keyframes mj-fall-arm-left { from{transform:rotate(0)} to{transform:rotate(115deg)} }
@keyframes mj-fall-arm-right { from{transform:rotate(0)} to{transform:rotate(-120deg)} }
@keyframes mj-fall-leg-left { from{transform:rotate(0)} to{transform:rotate(66deg)} }
@keyframes mj-fall-leg-right { from{transform:rotate(0)} to{transform:rotate(-55deg)} }
@keyframes mj-sit-body { from{transform:rotate(86deg) translate(13px,21px)} to{transform:rotate(4deg) translateY(11px)} }
@keyframes mj-sit-arm-left { from{transform:rotate(115deg)} to{transform:rotate(98deg)} }
@keyframes mj-sit-arm-right { from{transform:rotate(-120deg)} to{transform:rotate(-96deg)} }
@keyframes mj-sit-leg-left { from{transform:rotate(66deg)} to{transform:rotate(80deg)} }
@keyframes mj-sit-leg-right { from{transform:rotate(-55deg)} to{transform:rotate(-76deg)} }
@keyframes mj-kneel-body { from{transform:rotate(4deg) translateY(11px)} to{transform:rotate(-8deg) translateY(8px) scale(.97)} }
@keyframes mj-kneel-arm-left { from{transform:rotate(98deg)} to{transform:rotate(65deg)} }
@keyframes mj-kneel-arm-right { from{transform:rotate(-96deg)} to{transform:rotate(-70deg)} }
@keyframes mj-kneel-leg-left { from{transform:rotate(80deg)} to{transform:rotate(118deg)} }
@keyframes mj-kneel-leg-right { from{transform:rotate(-76deg)} to{transform:rotate(-22deg)} }
@keyframes mj-getup-body { 0%{transform:rotate(-8deg) translateY(8px) scale(.97)} 35%{transform:rotate(-35deg) translateY(5px)} 70%{transform:rotate(7deg) translateY(-3px) scale(1.03)} 100%{transform:rotate(0) translateY(0) scale(1)} }
@keyframes mj-getup-arm-left { from{transform:rotate(65deg)} to{transform:rotate(0)} }
@keyframes mj-getup-arm-right { from{transform:rotate(-70deg)} to{transform:rotate(0)} }
@keyframes mj-getup-legs { from{transform:rotate(55deg)} to{transform:rotate(0)} }
@keyframes mj-dust-puff { 0%{opacity:0;transform:translate(0,0) scale(.4)} 35%{opacity:.86} 100%{opacity:0;transform:translate(-7px,-13px) scale(1.7)} }
@keyframes mj-impact { 0%{transform:scale(.45);opacity:0} 35%{transform:scale(1.35);opacity:1} 100%{transform:scale(1.8);opacity:0} }
@keyframes mj-oops-pop { 0%,100%{opacity:0;transform:translateY(7px) scale(.5)} 28%,65%{opacity:1;transform:translateY(-8px) scale(1.08)} }
@keyframes mj-emote-pop { 0%{opacity:0;transform:scale(.4) rotate(-25deg)} 40%{opacity:1;transform:scale(1.3) rotate(15deg)} 100%{opacity:0;transform:translateY(-18px) scale(.6)} }
@media(max-width:980px) { .cursor-android { display:none !important; } }
@media(prefers-reduced-motion:reduce) { .cursor-android,.cursor-android * { animation:none !important; transition:none !important; } }

/* Per-click reaction: the normal robot tumbles, greets the visitor, and sees orbiting stars. */
.android-stars {
  position:absolute; z-index:12; left:50%; top:-7px; width:94px; height:38px;
  transform:translateX(-50%); opacity:0; visibility:hidden; pointer-events:none;
  transform-origin:50% 50%;
}
.android-stars i {
  position:absolute; display:block; color:#d7fff0; font-style:normal; font-size:18px; line-height:1;
  font-weight:900; text-shadow:0 0 5px #fff,0 0 10px #00ffa3,0 0 18px #00ffa3;
}
.android-stars i:nth-child(1) { left:5px; top:12px; font-size:17px; }
.android-stars i:nth-child(2) { left:27px; top:0; color:#fff1a8; font-size:13px; }
.android-stars i:nth-child(3) { right:5px; top:12px; font-size:19px; }
.android-stars i:nth-child(4) { left:41px; bottom:0; color:#ffddf0; font-size:12px; }
.cursor-android.is-stumbling .android-stars {
  opacity:1; visibility:visible; animation:mj-stars-orbit 1.25s linear infinite;
}
.android-hello {
  position:absolute; z-index:13; left:50%; top:-30px; padding:5px 9px;
  border:1px solid rgba(157,255,218,.8); border-radius:12px;
  color:#eafff5; background:rgba(1,22,14,.88);
  font:900 10px/1.1 system-ui,sans-serif; letter-spacing:1px; white-space:nowrap;
  opacity:0; transform:translate(-50%,8px) scale(.65); pointer-events:none;
  box-shadow:0 0 9px rgba(0,255,163,.52),inset 0 0 8px rgba(0,255,163,.12);
}
.cursor-android.is-stumbling .android-hello { animation:mj-hello-pop 1.55s cubic-bezier(.16,.78,.25,1) both; }
.cursor-android.is-falling .mj-robot-body {
  transform-origin:50% 50% !important;
  animation:mj-tumble-body .82s cubic-bezier(.18,.72,.2,1) forwards !important;
}
@keyframes mj-tumble-body {
  0% { transform:rotate(0deg) translate(0,0) scale(1); }
  17% { transform:rotate(82deg) translate(5px,7px) scale(.99); }
  38% { transform:rotate(190deg) translate(-7px,13px) scale(.96); }
  59% { transform:rotate(292deg) translate(7px,15px) scale(.94); }
  80% { transform:rotate(388deg) translate(-4px,13px) scale(.96); }
  100% { transform:rotate(450deg) translate(9px,14px) scale(.94); }
}
@keyframes mj-stars-orbit {
  from { transform:translateX(-50%) rotate(0deg); }
  to { transform:translateX(-50%) rotate(360deg); }
}
@keyframes mj-hello-pop {
  0%,100% { opacity:0; transform:translate(-50%,8px) scale(.65); }
  16%,72% { opacity:1; transform:translate(-50%,0) scale(1); }
  85% { opacity:.8; transform:translate(-50%,-3px) scale(.98); }
}
@media(prefers-reduced-motion:reduce) {
  .cursor-android.is-stumbling .android-stars { animation:none !important; opacity:1; visibility:visible; }
  .cursor-android.is-falling .mj-robot-body { animation:none !important; transform:rotate(18deg) translateY(8px) !important; }
  .cursor-android.is-stumbling .android-hello { animation:none !important; opacity:1; transform:translateX(-50%) !important; }
}
