.roxy-character{overflow:visible;--roxy-px:0px;--roxy-py:0px}.roxy-character *{transform-box:fill-box}.roxy-breathe{transform-origin:50% 100%;animation:roxy-breathe 3.4s ease-in-out infinite}.roxy-character .roxy-head,.roxy-character .roxy-head-look{transform-box:view-box;transform-origin:60px 86px}.roxy-head{transform:translate(var(--roxy-hx,0),var(--roxy-hy,0)) rotate(var(--roxy-turn,0deg));transition:transform .42s var(--ease-out-quint)}.roxy-head-look{animation:roxy-look 12s ease-in-out infinite}.roxy-pupil{transform:translate(var(--roxy-px),var(--roxy-py));transition:transform .18s ease-out}.roxy-eye{transform-origin:center;animation:roxy-blink 5.2s infinite}.roxy-eye+.roxy-eye{animation-delay:.02s}.roxy-blush{opacity:.32;transition:opacity .3s ease}.roxy-brows{transition:transform .3s var(--ease-out-quint)}.roxy-happy-eyes,.roxy-mouth,.roxy-thought{opacity:0;transition:opacity .16s ease}.roxy-mouth-smile{opacity:1}.roxy-arm{transform:translateY(60px);transition:transform .46s var(--ease-out-quint)}.roxy-character .roxy-hand{transform-box:view-box;transform-origin:100px 95px}.roxy-character[data-mood=thinking] .roxy-pupil{transform:translate(1.4px,-1.7px)}.roxy-character[data-mood=thinking] .roxy-mouth-smile{opacity:0}.roxy-character[data-mood=thinking] .roxy-mouth-hmm,.roxy-character[data-mood=thinking] .roxy-thought{opacity:1}.roxy-character[data-mood=thinking] .roxy-brows{transform:translateY(-1.2px)}.roxy-character[data-mood=thinking] .roxy-thought circle{animation:roxy-dot 1.2s ease-in-out infinite}.roxy-character[data-mood=thinking] .roxy-thought circle:nth-child(2){animation-delay:.18s}.roxy-character[data-mood=thinking] .roxy-thought circle:nth-child(3){animation-delay:.36s}.roxy-character[data-mood=talking] .roxy-mouth-smile{opacity:0}.roxy-character[data-mood=talking] .roxy-mouth-talk{opacity:1;transform-origin:center;animation:roxy-talk .32s ease-in-out infinite alternate}.roxy-character[data-mood=talking] .roxy-mic{animation:roxy-mic .6s ease-in-out infinite alternate}.roxy-character[data-mood=listening] .roxy-head-look{animation:none;transform:rotate(-5deg) translateY(-.4px);transition:transform .52s var(--ease-out-quint)}.roxy-character[data-mood=listening] .roxy-brows{transform:translateY(-1.3px)}.roxy-character[data-mood=listening] .roxy-blush{opacity:.45}.roxy-character[data-mood=speaking] .roxy-head-look{animation:none;transform:rotate(calc(1deg + var(--roxy-mouth, 0) * 2.4deg)) translateY(calc(var(--roxy-mouth, 0) * -.7px));transition:transform .11s linear}.roxy-character[data-mood=speaking] .roxy-mouth-smile{opacity:0}.roxy-character[data-mood=speaking] .roxy-mouth-talk{opacity:1;transform-box:fill-box;transform-origin:center top;transform:scale(calc(.8 + var(--roxy-mouth, 0) * .35),calc(.22 + var(--roxy-mouth, 0) * 1.3));transition:opacity .12s ease,transform 70ms linear}.roxy-character[data-mood=speaking] .roxy-brows{transform:translateY(calc(var(--roxy-mouth, 0) * -1px));transition:transform .11s linear}.roxy-character[data-mood=speaking] .roxy-mic{opacity:calc(.6 + var(--roxy-mouth, 0) * .4)}.roxy-character[data-mood=happy] .roxy-eyes{opacity:0}.roxy-character[data-mood=happy] .roxy-happy-eyes,.roxy-character[data-mood=happy] .roxy-mouth-open{opacity:1}.roxy-character[data-mood=happy] .roxy-mouth-smile{opacity:0}.roxy-character[data-mood=happy] .roxy-blush{opacity:.55}.roxy-character[data-mood=happy] .roxy-brows{transform:translateY(-1.6px)}.roxy-character[data-mood=wave] .roxy-arm{transform:translateY(0)}.roxy-character[data-mood=wave] .roxy-hand{animation:roxy-wave .62s ease-in-out .4s 5}.roxy-character[data-mood=wave] .roxy-head-look{animation:roxy-hey 3.6s ease-in-out both}.roxy-character[data-mood=wave] .roxy-breathe{animation:roxy-hop .62s ease-in-out .4s 2}.roxy-character[data-mood=wave] .roxy-mouth-smile{opacity:0}.roxy-character[data-mood=wave] .roxy-mouth-open{opacity:1}.roxy-character[data-mood=wave] .roxy-blush{opacity:.5}@keyframes roxy-breathe{0%,to{transform:translateY(0)}50%{transform:translateY(-1.4px)}}@keyframes roxy-blink{0%,40%,43%,88%,91%,94%,to{transform:scaleY(1)}41.5%,89.5%,92.5%{transform:scaleY(.08)}}@keyframes roxy-look{0%,58%,to{rotate:0deg}63%,71%{rotate:-6deg}76%,84%{rotate:5deg}89%{rotate:0deg}}@keyframes roxy-hey{0%{rotate:0deg}15%,80%{rotate:5deg}to{rotate:0deg}}@keyframes roxy-hop{0%,to{transform:translateY(0)}50%{transform:translateY(-2.5px)}}@keyframes roxy-talk{0%{transform:scale(.85,.45)}to{transform:scaleY(1.15)}}@keyframes roxy-mic{to{opacity:.55}}@keyframes roxy-dot{0%,to{opacity:.25;transform:scale(.8)}50%{opacity:1;transform:scale(1)}}@keyframes roxy-wave{0%,to{transform:rotate(0deg)}25%{transform:rotate(-22deg)}75%{transform:rotate(16deg)}}.roxy-dock{right:max(1rem,env(safe-area-inset-right));bottom:max(1rem,env(safe-area-inset-bottom))}@media (min-width:640px){.roxy-dock{right:2.25rem;bottom:1.5rem}}.roxy-launcher{position:relative;display:grid;place-items:center;width:64px;height:64px;border-radius:9999px;background:radial-gradient(circle at 50% 30%,color-mix(in oklab,var(--accent) 22%,var(--bg-elev)),var(--bg-elev) 72%);border:1px solid color-mix(in oklab,var(--accent) 38%,var(--line));box-shadow:var(--bevel-top),0 10px 30px -8px rgb(0 0 0/.45),0 0 0 0 color-mix(in oklab,var(--accent) 40%,transparent);transition:width .52s var(--ease-out-quint),height .52s var(--ease-out-quint),transform .42s var(--ease-out-quint),box-shadow .42s var(--ease-out-quint)}.roxy-launcher:hover{transform:translateY(-3px);box-shadow:var(--bevel-top),0 16px 36px -10px rgb(0 0 0/.5),0 0 0 6px color-mix(in oklab,var(--accent) 16%,transparent)}.roxy-launcher[data-peek=true]{width:88px;height:88px}.roxy-launcher-face{position:absolute;inset:0;display:grid;place-items:center;border-radius:inherit;overflow:hidden}.roxy-launcher .roxy-character{width:112%;height:112%;margin-top:14%}.roxy-status-dot{position:absolute;right:3px;bottom:5px;width:13px;height:13px;border-radius:9999px;background:#22c55e;border:2.5px solid var(--bg-elev);z-index:1}.roxy-enter{animation:roxy-pop .7s var(--ease-out-quint) both}@keyframes roxy-pop{0%{opacity:0;transform:translateY(24px) scale(.6)}to{opacity:1;transform:translateY(0) scale(1)}}.roxy-bubble{transform-origin:100% 100%;animation:roxy-bubble .52s var(--ease-out-quint) both}@keyframes roxy-bubble{0%{opacity:0;transform:translateY(10px) scale(.92)}to{opacity:1;transform:translateY(0) scale(1)}}.roxy-sheet{transition:transform .56s var(--ease-out-quint),opacity .4s var(--ease-out-quint);transform-origin:100% 100%}.roxy-sheet[data-open=false]{transform:translateX(104%);opacity:0}@media (min-width:640px){.roxy-sheet[data-open=false]{transform:translate(12px,24px) scale(.9)}}.roxy-typing span{display:inline-block;width:6px;height:6px;border-radius:9999px;background:var(--fg-subtle);animation:roxy-dot 1.1s ease-in-out infinite}.roxy-typing span:nth-child(2){animation-delay:.15s}.roxy-typing span:nth-child(3){animation-delay:.3s}.roxy-msg-in{animation:roxy-bubble .38s var(--ease-out-quint) both}.roxy-prose ol+p,.roxy-prose p+ol,.roxy-prose p+p,.roxy-prose p+ul,.roxy-prose ul+p{margin-top:.6em}.roxy-prose ol,.roxy-prose ul{margin:0;padding-left:1.15em}.roxy-prose ul{list-style:disc}.roxy-prose ol{list-style:decimal}.roxy-prose li+li{margin-top:.25em}.roxy-prose li::marker{color:var(--accent)}.roxy-prose a{color:var(--accent);text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px}.roxy-prose strong{font-weight:600;color:var(--fg)}@media (prefers-reduced-motion:reduce){.roxy-bubble,.roxy-character *,.roxy-enter,.roxy-msg-in,.roxy-typing span{animation:none!important}.roxy-launcher,.roxy-sheet{transition:opacity .2s ease}.roxy-character[data-mood=listening] .roxy-head-look,.roxy-character[data-mood=speaking] .roxy-head-look,.roxy-sheet[data-open=false]{transform:none}}