.grace-orb .scene{position:relative;width:260px;height:260px;margin:auto}.grace-orb .body{position:absolute;inset:26px;border-radius:50%;border:1px solid #aa9caa;background:radial-gradient(ellipse at 47% 58%,#d0c0c1 0%,#a896a8 27%,#665e6b 53%,#292b28 79%);box-shadow:inset -6px 8px 19px #c0acb730}.grace-orb .face{position:absolute;left:50%;top:43%;width:70px;height:36px;transform:translate(-50%,-50%);display:flex;align-items:center;justify-content:space-between;z-index:3}.grace-orb .eye{width:18px;height:28px;border-radius:50%;background:#EEEADF;transform-origin:center}.grace-orb .ring{position:absolute;inset:4px;border:3px dotted #b8b4ab;border-radius:50%;opacity:.5}.grace-orb .ripple{position:absolute;inset:22px;border:2px solid #EEEADF;border-radius:50%;opacity:0}.grace-orb.idle .body{animation:grace-breath 4s ease-in-out infinite}.grace-orb.idle .ring{opacity:.2}.grace-orb.idle .eye{height:19px;animation:grace-blink 5s infinite}.grace-orb.listen .body{animation:grace-listen .85s ease-in-out infinite}.grace-orb.listen .eye{width:23px;height:39px}.grace-orb.listen .face{animation:grace-nod .85s infinite}.grace-orb.listen .ring{border-width:5px;animation:grace-lights .85s infinite}.grace-orb.think .body{opacity:.75}.grace-orb.think .ring{border:3px solid transparent;border-top-color:#EEEADF;border-right-color:#aaa0aa;animation:grace-spin 1.8s linear infinite}.grace-orb.think .face{animation:grace-look 3.6s ease-in-out infinite}.grace-orb.think .eye:first-child{height:10px;width:25px}.grace-orb.think .eye:last-child{height:23px;width:17px}.grace-orb.speak .body{animation:grace-speak 1.6s ease-in-out infinite}.grace-orb.speak .eye{background:transparent;width:24px;height:20px;border:5px solid #EEEADF;border-bottom:0;border-radius:22px 22px 0 0;transform:translateY(5px)}.grace-orb.speak .face{animation:grace-nod 1.6s infinite}.grace-orb.speak .ring{opacity:.1}.grace-orb.speak .ripple{animation:grace-ripple 1.6s infinite}.grace-orb.speak .ripple.second{animation-delay:.8s}.grace-orb.interrupt .body{animation:grace-interrupt 4s infinite}.grace-orb.interrupt .eye{width:28px;height:28px;animation:grace-surprise 4s infinite}.grace-orb.interrupt .ring{animation:grace-halt 4s infinite}.grace-orb.offline .body{opacity:.18;transform:scale(.9) translateY(8px)}.grace-orb.offline .ring{opacity:.07}.grace-orb.offline .face{top:51%;opacity:.3}.grace-orb.offline .eye{width:23px;height:3px}@keyframes grace-breath{0%,100%{transform:scale(.94)}50%{transform:scale(1)}}@keyframes grace-blink{0%,43%,48%,100%{transform:scaleY(1)}45%{transform:scaleY(.08)}}@keyframes grace-listen{0%,100%{transform:scale(1.02,1.02)}35%{transform:scale(1.12,.96)}70%{transform:scale(.98,1.07)}}@keyframes grace-nod{0%,100%{transform:translate(-50%,-50%)}40%{transform:translate(-50%,calc(-50% - 7px))}}@keyframes grace-lights{0%,100%{opacity:.35;transform:scale(.98)}40%{opacity:1;transform:scale(1.03)}}@keyframes grace-spin{to{transform:rotate(360deg)}}@keyframes grace-look{0%,100%{transform:translate(calc(-50% - 13px),calc(-50% - 11px))}50%{transform:translate(calc(-50% + 13px),calc(-50% - 11px))}}@keyframes grace-speak{0%,100%{transform:scale(1)}20%{transform:scale(1.08,.95)}45%{transform:scale(1.02)}60%{transform:scale(1.09,.94)}80%{transform:scale(1)}}@keyframes grace-ripple{0%{transform:scale(.92);opacity:.7}100%{transform:scale(1.2);opacity:0}}@keyframes grace-interrupt{0%,20%{transform:scale(1.05,.96)}25%{transform:scale(1.07,.95)}28%{transform:scale(.88,1.1)}33%,100%{transform:scale(1)}}@keyframes grace-surprise{0%,24%{transform:scaleY(.55)}28%{transform:scaleY(1.45)}36%,100%{transform:scaleY(1)}}@keyframes grace-halt{0%,24%{opacity:.8}28%{opacity:0}36%,100%{opacity:.2}}@keyframes grace-label{0%,24%{content:'正在回答'}25%,32%{content:'已打断 · 停止回答'}33%,100%{content:'你说，我在听'}}
@media(prefers-reduced-motion:reduce){.grace-orb *{animation:none!important}}
