@keyframes orb-rotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes orb-pulse{0%,to{opacity:.6;transform:scale(1)}50%{opacity:.95;transform:scale(1.08)}}@keyframes orb-pulse-fast{0%,to{opacity:.7;transform:scale(1)}50%{opacity:1;transform:scale(1.15)}}@keyframes ring-expand{0%{opacity:1;transform:scale(.8)}to{opacity:0;transform:scale(2)}}@keyframes scan-line{0%{opacity:0;transform:translateY(-100%)}10%{opacity:1}90%{opacity:1}to{opacity:0;transform:translateY(100%)}}@keyframes bar-bounce{0%,to{transform:scaleY(.3)}50%{transform:scaleY(1)}}@keyframes phone-ring{0%,to{transform:rotate(0)}10%,30%{transform:rotate(-12deg)}20%,40%{transform:rotate(12deg)}}.jarvis-orb{width:220px;height:220px;position:relative}.jarvis-orb-core{background:radial-gradient(circle at 30% 30%,#8b5cf6e6,#ec4899b3 40%,#0f172af2 80%);border-radius:50%;position:absolute;inset:30px;box-shadow:0 0 60px 10px #8b5cf680,0 0 100px 20px #ec48994d,inset 0 0 40px #a855f799}.jarvis-orb-core.speaking{animation:.6s ease-in-out infinite orb-pulse-fast}.jarvis-orb-core:not(.speaking){animation:3s ease-in-out infinite orb-pulse}.jarvis-orb-ring{-webkit-mask-composite:xor;background:conic-gradient(#0000 0deg,#8b5cf6cc 60deg,#ec4899e6 120deg,#a855f7cc 180deg,#0000 240deg 360deg);border:2px solid #0000;border-radius:50%;padding:2px;animation:4s linear infinite orb-rotate;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#fff 0 0),linear-gradient(#fff 0 0);mask-image:linear-gradient(#fff 0 0),linear-gradient(#fff 0 0);-webkit-mask-position:0 0,0 0;mask-position:0 0,0 0;-webkit-mask-size:auto,auto;mask-size:auto,auto;-webkit-mask-repeat:repeat,repeat;mask-repeat:repeat,repeat;-webkit-mask-clip:padding-box,border-box;mask-clip:padding-box,border-box;-webkit-mask-origin:padding-box,border-box;mask-origin:padding-box,border-box;-webkit-mask-composite:xor;mask-composite:exclude;-webkit-mask-source-type:auto,auto;mask-mode:match-source,match-source}.jarvis-orb-ring-outer{border:1px solid #8b5cf64d;border-radius:50%;animation:2.5s ease-out infinite ring-expand;position:absolute;inset:-15px}.jarvis-orb-ring-outer.delay-1{animation-delay:.8s}.jarvis-orb-ring-outer.delay-2{animation-delay:1.6s}.voice-waveform{align-items:center;gap:3px;height:32px;display:flex}.voice-waveform-bar{transform-origin:50%;background:linear-gradient(#a855f7,#ec4899);border-radius:2px;width:3px;height:100%;animation:.8s ease-in-out infinite bar-bounce}.voice-waveform-bar:first-child{animation-delay:0s}.voice-waveform-bar:nth-child(2){animation-delay:.1s}.voice-waveform-bar:nth-child(3){animation-delay:.2s}.voice-waveform-bar:nth-child(4){animation-delay:.3s}.voice-waveform-bar:nth-child(5){animation-delay:.2s}.voice-waveform-bar:nth-child(6){animation-delay:.1s}.voice-waveform-bar:nth-child(7){animation-delay:0s}.phone-shake{transform-origin:bottom;animation:.5s ease-in-out infinite phone-ring}.holo-scan{position:relative;overflow:hidden}.holo-scan:before{content:"";pointer-events:none;background:linear-gradient(#0000,#8b5cf626,#0000);animation:4s linear infinite scan-line;position:absolute;inset:0}@keyframes status-blink{0%,to{opacity:1}50%{opacity:.4}}.connection-dot{background:#10b981;border-radius:50%;width:6px;height:6px;animation:1.5s ease-in-out infinite status-blink;display:inline-block;box-shadow:0 0 8px #10b981}
