.lucy-hybrid-center,.lucy-ball-center{position:relative;width:180px;height:180px;margin:0 auto}.lucy-ball-halo{animation:lucyGlow 2.2s ease-in-out infinite}@keyframes lucyGlow{0%,to{opacity:.7;transform:scale(1)}50%{opacity:1;transform:scale(1.12)}}.lucy-ball{position:relative;border-radius:50%;background:linear-gradient(135deg,#4f8cff 60%,#6ad1ff);box-shadow:0 2px 24px #4f8cff44}.lucy-hybrid-bubble{animation:lucyBubbleAppear .3s}@keyframes lucyBubbleAppear{0%{opacity:0;transform:translateY(-12px) scale(.9)}to{opacity:1;transform:translateY(0) scale(1)}}.lucy-bubble-dots{display:flex;gap:4px}.lucy-bubble-dots .dot{width:8px;height:8px;border-radius:50%;background:#4f8cff;opacity:.6;animation:lucyDotPulse 1.2s infinite}.lucy-bubble-dots .dot:nth-child(2){animation-delay:.2s}.lucy-bubble-dots .dot:nth-child(3){animation-delay:.4s}@keyframes lucyDotPulse{0%,to{opacity:.6}50%{opacity:1}}.lucy-pulse-ended{width:100%;display:flex;justify-content:center;align-items:center}.action-bar{box-shadow:0 -2px 16px #4f8cff22;background:#fffffff7;padding:8px;display:flex;gap:8px;align-items:center;width:100%;left:0;right:0;transform:none;min-height:80px;height:80px}.action-bar .stop-btn{flex:1;min-width:0;height:80px;border-radius:16px;font-size:1.15rem;font-weight:700;background:#4f8cff;color:#fff;box-shadow:0 2px 16px #4f8cff33;border:none;transition:background .2s,color .2s;display:flex;align-items:center;justify-content:center;padding:0 8px}.action-bar .stop-btn:active{background:#fff;color:#4f8cff;border:2px solid #4f8cff}.action-bar .talk-btn{width:72px;height:72px;border-radius:16px;font-size:1.5rem;background:#fff;color:#4f8cff;box-shadow:0 2px 8px #0002;border:2px solid #4f8cff;display:flex;align-items:center;justify-content:center;transition:all .18s cubic-bezier(.4,2,.3,1);margin-right:0}.lucy-pulse.ended .lucy-pulse-circle{background:radial-gradient(circle,#a259ff33 0%,#a259ff11 80%,transparent 100%);animation:lucy-pulse-anim-ended 1.6s infinite}@keyframes lucy-pulse-anim-ended{0%,to{opacity:.7;transform:translate(-50%,-50%) scale(1)}50%{opacity:1;transform:translate(-50%,-50%) scale(1.12)}}.action-bar .talk-btn.listening{background:linear-gradient(90deg,#4f8cff 60%,#6ad1ff);color:#fff;border:none;box-shadow:0 0 24px 8px #4f8cff88}:root{--gap: 16px}*{box-sizing:border-box}html,body{height:100%}body{margin:0;font-family:ui-sans-serif,system-ui,-apple-system;background:linear-gradient(135deg,#eaf3ff,#f6f7f9);color:#111}.app{min-height:100svh;display:grid;grid-template-rows:auto 1fr auto;padding:var(--gap);margin:0 auto;width:100%;max-width:480px;border-radius:24px;box-shadow:0 4px 32px #4f8cff22}.header{position:sticky;top:0;background:transparent;padding-bottom:8px;display:flex;align-items:center;justify-content:space-between;gap:12px}.title{font-size:1.35rem;font-weight:700;letter-spacing:.02em}.hint{font-size:1rem;opacity:.7}.btn{width:100%;padding:16px;border:0;border-radius:2em;font-size:1.08rem;font-weight:500;background:#f6f7f9;color:#222;box-shadow:0 2px 8px #0001;transition:box-shadow .2s,background .2s}.btn.primary{background:linear-gradient(90deg,#4f8cff,#6ad1ff);color:#fff;box-shadow:0 2px 16px #4f8cff33;border-radius:2em;font-weight:700;border:none;transition:background .2s,box-shadow .2s}.btn.primary:hover{background:linear-gradient(90deg,#6ad1ff,#a259ff);box-shadow:0 4px 24px #6ad1ff44}.btn:active{box-shadow:0 0 24px #4f8cff44}.card{background:#fff;border:1px solid #e8e8e8;border-radius:18px;padding:18px;box-shadow:0 2px 12px #0001}.card{position:relative}.btn{position:relative;z-index:1}audio.audio{display:block}.log{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;white-space:pre-wrap;font-size:.95rem;max-height:40vh;overflow:auto;word-break:break-word;overflow-wrap:anywhere;background:#f6f7f9;border-radius:12px;box-shadow:0 1px 8px #0001}.audio{width:100%;margin-top:8px}.footer{font-size:.9rem;opacity:.6;text-align:center;padding:12px 0}.lucy-pulse{position:relative;width:120px;height:120px;display:flex;align-items:center;justify-content:center;margin:0 auto}.lucy-pulse-circle{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:120px;height:120px;border-radius:50%;background:radial-gradient(circle,#4f8cff33 0%,#6ad1ff11 80%,transparent 100%);animation:lucy-pulse-anim 1.6s infinite}.lucy-pulse.listening .lucy-pulse-circle{animation:lucy-pulse-anim-listen 1.2s infinite}@keyframes lucy-pulse-anim{0%,to{opacity:.7;transform:translate(-50%,-50%) scale(1)}50%{opacity:1;transform:translate(-50%,-50%) scale(1.12)}}@keyframes lucy-pulse-anim-listen{0%,to{opacity:1;transform:translate(-50%,-50%) scale(1.08)}50%{opacity:.8;transform:translate(-50%,-50%) scale(1.22)}}.lucy-pulse-micro{position:relative;z-index:2;display:flex;align-items:center;justify-content:center;width:56px;height:56px;background:linear-gradient(135deg,#4f8cff 60%,#6ad1ff);border-radius:50%;box-shadow:0 0 24px #4f8cff44}.stop-btn{background:linear-gradient(90deg,#4f8cff,#6ad1ff);color:#fff;border:none;border-radius:14px;font-weight:700;box-shadow:0 2px 16px #4f8cff33;transition:background .2s,box-shadow .2s}.stop-btn:active{background:linear-gradient(90deg,#6ad1ff,#a259ff);color:#fff;box-shadow:0 4px 24px #6ad1ff44}@media (max-width: 640px){.lucy-pulse,.lucy-pulse-circle{width:80px;height:80px}.lucy-pulse-micro{width:40px;height:40px}.talk-btn{width:56px;height:56px;font-size:1.2rem}.stop-btn{width:36px;height:36px;font-size:1rem}}.talk-btn{width:64px;height:64px;border-radius:50%;font-size:1.5rem;padding:0;background:linear-gradient(135deg,#4f8cff 60%,#6ad1ff);color:#fff;box-shadow:0 2px 16px #4f8cff33;border:none;display:flex;align-items:center;justify-content:center;transition:box-shadow .2s,transform .2s,background .2s}.talk-btn.listening{background:linear-gradient(135deg,#6ad1ff,#a259ff);color:#fff;box-shadow:0 0 32px 8px #6ad1ff88;animation:talk-pulse 1.2s infinite}@keyframes talk-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.12)}}@media (max-width: 640px){.app{padding:8px;max-width:100%;border-radius:0;box-shadow:none}.title{font-size:1.15rem}.lucy-animation{height:80px}.lucy-dot{width:18px;height:18px}.talk-btn{width:56px;height:56px;font-size:1.2rem}}
