/* ============ orb-char — the AIOOS mascot in the Telefonie demo (2026-07-21) ============
   Iman: replace the sphere orb with the living-mark character from lab-pick3d —
   the EXACT six-wave logo breathing, with blinking light-bar eyes that follow
   the pointer. Scoped .morb.mchar inside .v-tel; the old sphere rules in
   tel-theater.css go inert (their elements no longer exist). */

.v-tel .call-ui .morb.mchar{position:relative; width:118px; height:100px; margin-top:10px;
  border-radius:0; background:none; box-shadow:none}
.morb.mchar::before{content:""; position:absolute; inset:-30px; border-radius:50%; pointer-events:none;
  background:radial-gradient(circle, rgba(45,108,246,.38) 0%, rgba(34,211,238,.14) 50%, transparent 72%);
  filter:blur(10px)}
.morb.mchar .mcSvg{position:absolute; inset:0; overflow:visible;
  filter:drop-shadow(0 0 10px rgba(45,108,246,.55)) drop-shadow(0 10px 20px rgba(4,10,26,.7));
  transition:filter .4s}
.v-tel.talk .morb.mchar .mcSvg{filter:drop-shadow(0 0 16px rgba(34,211,238,.8)) drop-shadow(0 10px 20px rgba(4,10,26,.7))}

/* eyes ride the rising swoosh */
.morb.mchar .eyes{position:absolute; left:53%; top:30%; display:flex; gap:15px; z-index:2;
  transform:translateX(-50%) rotate(-8deg)}
.morb.mchar .eyes i{width:6.5px; height:20px; border-radius:5px; background:#fff;
  box-shadow:0 0 10px rgba(210,240,255,.95), 0 0 26px rgba(120,200,255,.55)}

@media (prefers-reduced-motion:no-preference){
  .morb.mchar{animation:mcTilt 7.5s ease-in-out infinite}
  .morb.mchar .eyes i{animation:mcBlink 4.6s ease-in-out infinite, mcJoy 9.2s ease-in-out infinite;
    transform-origin:center}
  .morb.mchar .eyes i:nth-child(2){animation-delay:.05s, 0s}
  .morb.mchar .eyes{animation:mcGaze 7s ease-in-out infinite}
  .morb.mchar .eyes.is-tracking{animation:none !important}
}
@keyframes mcBlink{0%,91%,100%{transform:scaleY(1)}94%{transform:scaleY(.08)}97%{transform:scaleY(1)}}
/* the نمکی beat: bars squash into happy ^ ^ caps */
@keyframes mcJoy{0%,84%,100%{height:20px; border-radius:5px; margin-top:0}
  88%,94%{height:8px; border-radius:7px 7px 2px 2px; margin-top:6px}}
@keyframes mcGaze{0%,100%{transform:translateX(-50%) rotate(-8deg)}
  30%{transform:translateX(calc(-50% + 7px)) rotate(-8deg)}
  60%{transform:translateX(calc(-50% - 6px)) rotate(-8deg)}}
@keyframes mcTilt{0%,100%{transform:rotate(-1.6deg)}50%{transform:rotate(1.8deg)}}

@media (max-width:720px){
  .v-tel .call-ui .morb.mchar{width:104px; height:88px}
  .morb.mchar .eyes{gap:13px}
  .morb.mchar .eyes i{width:6px; height:18px}
}

/* ---------- zux variant (Sie sprechen. AIOOS baut) — LIGHT context ---------- */
.zux-stage .zorb.mchar{width:96px; height:80px}
.zorb.mchar::before{content:""; position:absolute; inset:-24px; border-radius:50%; pointer-events:none;
  background:radial-gradient(circle, rgba(45,108,246,.20), rgba(34,211,238,.10) 50%, transparent 72%);
  filter:blur(9px)}
.zorb.mchar .mcSvg{position:absolute; inset:0; overflow:visible;
  filter:drop-shadow(0 6px 14px rgba(20,50,110,.35)); transition:filter .4s}
.zux-new.talk .zorb.mchar .mcSvg{filter:drop-shadow(0 0 12px rgba(34,211,238,.5)) drop-shadow(0 6px 14px rgba(20,50,110,.35))}
/* white eyes (Iman 2026-07-29) — thin ink rim keeps them readable on the light card */
.zorb.mchar .eyes{position:absolute; left:53%; top:30%; display:flex; gap:12px; z-index:2;
  transform:translateX(-50%) rotate(-8deg)}
.zorb.mchar .eyes i{width:5.5px; height:16px; border-radius:4px; background:#fff;
  box-shadow:0 0 0 1px rgba(15,27,51,.32), 0 1px 6px rgba(20,50,110,.35)}
@media (prefers-reduced-motion:no-preference){
  .zorb.mchar{animation:mcTilt 7.5s ease-in-out infinite}
  .zorb.mchar .eyes i{animation:mcBlink 4.6s ease-in-out infinite, mcJoyZ 9.2s ease-in-out infinite;
    transform-origin:center}
  .zorb.mchar .eyes i:nth-child(2){animation-delay:.05s, 0s}
  .zorb.mchar .eyes{animation:mcGaze 7s ease-in-out infinite}
  .zorb.mchar .eyes.is-tracking{animation:none !important}
}
@keyframes mcJoyZ{0%,84%,100%{height:16px; border-radius:4px; margin-top:0}
  88%,94%{height:7px; border-radius:6px 6px 2px 2px; margin-top:5px}}

/* ---------- cta-night variant — DARK closing band, bigger presence ---------- */
.cn-orb.mchar{width:150px; height:128px; margin-top:-64px}
.cn-orb.mchar::before{content:""; position:absolute; inset:-30px; border-radius:50%; pointer-events:none;
  background:radial-gradient(circle, rgba(45,108,246,.40), rgba(34,211,238,.15) 48%, transparent 72%);
  filter:blur(12px)}
.cn-orb.mchar .mcSvg{position:absolute; inset:0; overflow:visible;
  filter:drop-shadow(0 0 14px rgba(45,108,246,.55)) drop-shadow(0 14px 28px rgba(4,10,26,.7))}
.cn-orb.mchar .eyes{position:absolute; left:53%; top:30%; display:flex; gap:19px; z-index:2;
  transform:translateX(-50%) rotate(-8deg)}
.cn-orb.mchar .eyes i{width:8px; height:24px; border-radius:6px; background:#fff;
  box-shadow:0 0 12px rgba(210,240,255,.95), 0 0 32px rgba(120,200,255,.55)}
@media (prefers-reduced-motion:no-preference){
  .cn-orb.mchar{animation:mcTilt 7.5s ease-in-out infinite}
  .cn-orb.mchar .eyes i{animation:mcBlink 4.6s ease-in-out infinite, mcJoyN 9.2s ease-in-out infinite;
    transform-origin:center}
  .cn-orb.mchar .eyes i:nth-child(2){animation-delay:.05s, 0s}
  .cn-orb.mchar .eyes{animation:mcGaze 7s ease-in-out infinite}
  .cn-orb.mchar .eyes.is-tracking{animation:none !important}
}
@keyframes mcJoyN{0%,84%,100%{height:24px; border-radius:6px; margin-top:0}
  88%,94%{height:10px; border-radius:8px 8px 3px 3px; margin-top:7px}}
