#vz-root{--g:#c9a7ff;font-family:'IBM Plex Mono',monospace;color:#000}
#vz-launch{position:fixed;right:22px;bottom:22px;width:64px;height:64px;border:0;background:none;padding:0;cursor:pointer;z-index:9999;-webkit-tap-highlight-color:transparent}
.vz-blob{width:100%;height:100%;border-radius:42% 58% 63% 37%/45% 41% 59% 55%;
 background:radial-gradient(circle at 30% 26%,#fff 0%,rgba(255,255,255,.7) 14%,transparent 34%),conic-gradient(from 200deg,#b8d8ff,#d9c2ff,#ffc4e1,#ffe3b8,#c4f2d8,#b8d8ff);
 box-shadow:0 0 18px rgba(217,194,255,.55),0 0 40px rgba(255,196,225,.3),inset -6px -8px 14px rgba(160,140,220,.25);
 animation:vz-morph 6s ease-in-out infinite,vz-breathe 4s ease-in-out infinite;transition:transform .3s,filter .3s}
@keyframes vz-morph{0%,100%{border-radius:42% 58% 63% 37%/45% 41% 59% 55%}25%{border-radius:58% 42% 40% 60%/55% 60% 40% 45%}50%{border-radius:50% 50% 34% 66%/62% 38% 62% 38%}75%{border-radius:36% 64% 55% 45%/40% 55% 45% 60%}}
@keyframes vz-breathe{0%,100%{transform:scale(1)}50%{transform:scale(1.06)}}
@keyframes vz-wobble{0%,100%{transform:scale(1) rotate(0)}25%{transform:scale(1.12,.92) rotate(-8deg)}50%{transform:scale(.92,1.1) rotate(6deg)}75%{transform:scale(1.08) rotate(-4deg)}}
@keyframes vz-pulse{0%,100%{transform:scale(1);filter:brightness(1)}50%{transform:scale(1.15);filter:brightness(1.12)}}
#vz-launch:hover .vz-blob,#vz-root.listen .vz-blob{animation:vz-morph 2.5s ease-in-out infinite,vz-breathe 1.6s ease-in-out infinite;filter:brightness(1.08)}
#vz-root.think .vz-blob{animation:vz-morph 1.2s ease-in-out infinite,vz-wobble .9s ease-in-out infinite}
#vz-root.talk .vz-blob{animation:vz-morph 2s ease-in-out infinite,vz-pulse .45s ease-in-out infinite}
#vz-panel{position:fixed;right:18px;bottom:100px;width:360px;height:min(520px,calc(100vh - 130px));display:flex;flex-direction:column;
 background:rgba(255,255,255,.97);border-radius:28px;opacity:0;pointer-events:none;transform:translateY(12px);transition:opacity .25s,transform .25s;z-index:9999}
#vz-panel.open{opacity:1;pointer-events:auto;transform:none}
#vz-top{display:flex;flex-direction:column;align-items:center;padding:18px 0 6px;position:relative}
#vz-top .vz-blob{width:54px;height:54px}
#vz-top small{margin-top:10px;font-size:11px;letter-spacing:.3em}
#vz-x{position:absolute;right:16px;top:12px;background:none;border:0;font:18px 'IBM Plex Mono',monospace;cursor:pointer;color:#000}
#vz-log{flex:1;overflow-y:auto;padding:10px 22px;font-size:13px;line-height:1.6}
.vz-m{margin:0 0 14px;max-width:85%;white-space:pre-wrap}
.vz-u{margin-left:auto;text-align:right;color:#555}
#vz-form{display:flex;align-items:center;gap:10px;margin:8px 22px 20px}
#vz-in{flex:1;border:0;border-bottom:1px solid #ccc;padding:10px 0;font:13px 'IBM Plex Mono',monospace;outline:none;background:transparent}
#vz-in:focus{border-bottom-color:#000}
#vz-send{background:linear-gradient(90deg,#b8d8ff,#d9c2ff,#ffc4e1);color:#000;border:0;border-radius:999px;padding:9px 14px;font:600 12px 'IBM Plex Mono',monospace;cursor:pointer}
@media (max-width:520px){#vz-panel{right:0;left:0;bottom:0;width:auto;height:calc(100vh - 90px);border-radius:28px 28px 0 0}#vz-launch{right:16px;bottom:16px}#vz-panel.open~#vz-launch{display:none}}
@media (prefers-reduced-motion:reduce){.vz-blob,#vz-root .vz-blob{animation:none!important}#vz-panel{transition:none}}
