/* Flow plush visual refinement. Existing chat layout and lifecycle remain intact. */
.flow-mascot.flow-mascot-v2{--flow-size:96px;line-height:0;overflow:visible}
.flow-mascot-v2.flow-mascot-presence{--flow-size:80px}
.flow-mascot-v2.flow-mascot-message{--flow-size:28px}
.flow-mascot-v2.flow-mascot-welcome{--flow-size:140px}
.flow-v2-float,.flow-v2-character{position:absolute;inset:0;transform-origin:52% 80%}
.flow-mascot-v2 .flow-v2-float{animation:flow-v2-float 5.2s ease-in-out infinite}
.flow-mascot-v2 .flow-v2-character{animation:flow-v2-breathe 6.5s ease-in-out infinite}
.flow-mascot-v2 .flow-v2-pose{position:absolute;inset:0;display:block;width:100%;height:100%;max-width:none;object-fit:contain;opacity:0;user-select:none;-webkit-user-drag:none;filter:drop-shadow(0 2px 2px #48107912)}
.flow-mascot-v2[data-pose=idle] .flow-v2-idle,.flow-mascot-v2[data-pose=wave] .flow-v2-wave,.flow-mascot-v2[data-pose=thinking] .flow-v2-thinking,.flow-mascot-v2[data-pose=speaking] .flow-v2-speaking,.flow-mascot-v2[data-pose=celebrating] .flow-v2-celebrating{opacity:1}
.flow-mascot-v2[data-state=idle] .flow-v2-idle{animation:flow-v2-eyes-open 6.8s step-end infinite}
.flow-mascot-v2[data-state=idle] .flow-v2-blink{animation:flow-v2-eyes-closed 6.8s step-end infinite}
.flow-v2-shadow{position:absolute;bottom:4%;left:27%;width:52%;height:6%;border-radius:50%;background:radial-gradient(ellipse,#6d28d921,transparent 72%);animation:flow-v2-shadow 5.2s ease-in-out infinite}
.flow-mascot-v2[data-state=hover] .flow-v2-character{animation:flow-v2-greet 1.8s ease-in-out infinite}
.flow-mascot-v2[data-state=thinking] .flow-v2-character{animation:flow-v2-ponder 3.8s ease-in-out infinite}
.flow-mascot-v2[data-state=listening] .flow-v2-character{animation:flow-v2-listen 3.2s ease-in-out infinite}
.flow-mascot-v2[data-state=speaking] .flow-v2-character{animation:flow-v2-speak 1.2s ease-in-out infinite}
.flow-mascot-v2[data-state=responding] .flow-v2-character{animation:flow-v2-greet 1.8s ease-in-out 2}
.flow-mascot-v2[data-state=celebrating] .flow-v2-character{animation:flow-v2-cheer .8s ease-in-out 3}
.flow-mascot-v2[data-state=error] .flow-v2-character{animation:none;transform:rotate(-4deg)}
.flow-mascot-v2 .flow-v2-thoughts{position:absolute;top:7%;right:6%;width:20%;height:24%}
.flow-v2-thoughts i{position:absolute;display:block;width:24%;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle at 32% 25%,#d8b9ff 0%,#b66cff 24%,#8b35ed 66%,#6420bc 100%);box-shadow:inset 0 0 2px #e9cdff80;animation:flow-v2-thought 1.8s ease-in-out infinite}
.flow-v2-thoughts i:nth-child(1){left:0;bottom:0;width:20%}.flow-v2-thoughts i:nth-child(2){left:34%;bottom:31%;width:29%;animation-delay:.2s}.flow-v2-thoughts i:nth-child(3){right:0;top:0;width:41%;animation-delay:.4s}
.flow-v2-listening{position:absolute;display:flex;align-items:center;gap:3px;right:0;top:46%;height:20%}
.flow-v2-listening i{width:3px;height:30%;border-radius:3px;background:#9660df;animation:flow-v2-audio .8s ease-in-out infinite alternate}.flow-v2-listening i:nth-child(2){height:75%;animation-delay:.2s}.flow-v2-listening i:nth-child(3){height:45%;animation-delay:.4s}
.flow-launcher.flow-launcher-mascot:has(.flow-mascot-v2){height:96px;gap:0}
.flow-presence:has(.flow-mascot-v2){gap:6px}
@keyframes flow-v2-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-3%)}}
@keyframes flow-v2-breathe{0%,100%{transform:rotate(-.5deg) scale(1)}50%{transform:rotate(.5deg) scale(1.012)}}
@keyframes flow-v2-shadow{50%{transform:scaleX(.88);opacity:.6}}
@keyframes flow-v2-eyes-open{0%,45%,48%,100%{opacity:1}46%{opacity:0}}
@keyframes flow-v2-eyes-closed{0%,45%,48%,100%{opacity:0}46%{opacity:1}}
@keyframes flow-v2-greet{0%,100%{transform:rotate(-2deg)}50%{transform:rotate(2deg) translateY(-1%)}}
@keyframes flow-v2-ponder{0%,100%{transform:rotate(2deg)}50%{transform:rotate(-1deg)}}
@keyframes flow-v2-listen{0%,100%{transform:rotate(-5deg)}50%{transform:rotate(-2deg)}}
@keyframes flow-v2-speak{0%,100%{transform:rotate(-1deg) translateY(0)}50%{transform:rotate(1deg) translateY(-1.5%)}}
@keyframes flow-v2-cheer{0%,100%{transform:translateY(0)}45%{transform:translateY(-6%) rotate(2deg)}}
@keyframes flow-v2-thought{0%,75%,100%{opacity:.45;transform:translateY(0)}35%{opacity:1;transform:translateY(-2px)}}
@keyframes flow-v2-audio{to{transform:scaleY(.4);opacity:.55}}
.flow-mascot-v2.flow-mascot-still *,.flow-mascot-v2.flow-mascot-message *{animation:none!important}
.flow-mascot-v2.flow-mascot-still .flow-v2-shadow,.flow-mascot-v2.flow-mascot-message .flow-v2-shadow{display:none}
@media(max-width:500px){.flow-mascot-v2.flow-mascot-launcher{--flow-size:72px}.flow-mascot-v2.flow-mascot-presence{--flow-size:68px}.flow-launcher.flow-launcher-mascot:has(.flow-mascot-v2){height:72px;gap:0}}
@media(prefers-reduced-motion:reduce){.flow-mascot.flow-mascot-v2 *{animation:none!important;transition:none!important}}
