@import url('/assets/css/viby-rig.css?v=2');
:root{--viby-size:210px;--viby-accent:#7c4dff;--viby-cyan:#20d9ff;--viby-panel:#11101c;--viby-text:#f8f7ff}
.viby{position:fixed;left:calc(100vw - 190px);top:calc(100vh - 260px);z-index:2147483000;width:var(--viby-size);height:var(--viby-size);touch-action:none;user-select:none;filter:drop-shadow(0 18px 28px rgba(0,0,0,.46));transition:filter .25s ease;--look-x:0deg;--look-y:0deg}
.viby:hover{filter:drop-shadow(0 22px 34px rgba(54,217,255,.23))}
.viby__character{position:absolute;inset:0;border:0;padding:0;background:none;cursor:grab;transform-origin:50% 82%;animation:viby-float 3.8s ease-in-out infinite;outline:none}
.viby__character:active{cursor:grabbing}.viby__character:focus-visible{border-radius:46%;box-shadow:0 0 0 3px var(--viby-cyan)}
.viby__image{display:block;width:100%;height:100%;object-fit:contain;pointer-events:none;transform:perspective(500px) rotateY(var(--look-x)) rotateX(var(--look-y));transition:transform .16s ease}
.viby.is-hovering .viby__character{animation:viby-greet .75s cubic-bezier(.2,.8,.2,1) both,viby-float 3.8s .75s ease-in-out infinite}
.viby.is-dragging{transition:none}.viby.is-dragging .viby__character{animation:none;transform:scale(1.06) rotate(-3deg)}
.viby.is-playing .viby__character{animation:viby-dance .72s cubic-bezier(.45,.05,.55,.95) infinite}
.viby.is-thinking .viby__character{animation:viby-think 1.2s ease-in-out infinite}
.viby__pulse{position:absolute;left:50%;bottom:12%;width:58%;aspect-ratio:1;border:2px solid rgba(32,217,255,.5);border-radius:50%;transform:translate(-50%,50%) scale(.4);opacity:0;pointer-events:none}
.viby.is-playing .viby__pulse{animation:viby-pulse 1.15s ease-out infinite}
.viby__bubble{position:absolute;right:calc(100% - 18px);bottom:68%;width:min(350px,calc(100vw - 42px));padding:16px 16px 14px;border:1px solid rgba(149,115,255,.42);border-radius:20px 20px 5px 20px;background:linear-gradient(145deg,rgba(25,23,41,.98),rgba(10,10,19,.98));color:var(--viby-text);box-shadow:0 22px 55px rgba(0,0,0,.44),inset 0 1px rgba(255,255,255,.07);backdrop-filter:blur(18px);touch-action:auto;user-select:text;transform-origin:100% 100%;animation:viby-bubble-in .32s cubic-bezier(.2,.9,.2,1);font-family:"DM Sans",sans-serif}
.viby__bubble[hidden]{display:none}.viby__bubble-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px}
.viby__name{font-size:11px;font-weight:800;letter-spacing:.13em;text-transform:uppercase;color:#bca8ff}
.viby__close{width:28px;height:28px;border:1px solid rgba(255,255,255,.12);border-radius:50%;background:rgba(255,255,255,.05);color:#ddd8ef;cursor:pointer;font-size:18px;line-height:1}
.viby__close:hover{background:rgba(255,255,255,.12);color:#fff}.viby__message{margin:0 0 12px;font-size:14px;line-height:1.45;color:#f5f2ff}
.viby__quick,.viby__results{display:flex;flex-wrap:wrap;gap:7px;margin-top:10px}.viby__chip,.viby__result{border:1px solid rgba(124,77,255,.42);border-radius:999px;background:rgba(124,77,255,.12);color:#eee9ff;padding:8px 11px;font:700 11px/1.15 "DM Sans",sans-serif;cursor:pointer;text-decoration:none;transition:background .18s,transform .18s,border-color .18s}
.viby__chip:hover,.viby__result:hover{background:rgba(124,77,255,.3);border-color:#9e7cff;transform:translateY(-1px)}
.viby__result--primary{background:linear-gradient(135deg,#7442ff,#4c74ff);border-color:transparent;color:#fff}
.viby__form{display:flex;gap:7px;margin-top:11px}.viby__input{min-width:0;flex:1;height:38px;padding:0 12px;border:1px solid rgba(255,255,255,.14);border-radius:12px;background:#090912;color:#fff;font:500 12px "DM Sans",sans-serif;outline:none}
.viby__input:focus{border-color:var(--viby-cyan);box-shadow:0 0 0 2px rgba(32,217,255,.12)}.viby__submit{height:38px;padding:0 13px;border:0;border-radius:12px;background:linear-gradient(135deg,#7b45ff,#405eff);color:#fff;font:800 11px "DM Sans",sans-serif;cursor:pointer}
.viby__hint{display:block;margin-top:8px;color:#8d889f;font-size:9px}.viby.is-minimized{--viby-size:160px}.viby.is-minimized .viby__bubble{display:none}
@keyframes viby-float{0%,100%{transform:translateY(0) rotate(-1deg)}50%{transform:translateY(-9px) rotate(1.5deg)}}
@keyframes viby-greet{0%{transform:translateY(0) rotate(0)}35%{transform:translateY(-12px) rotate(-7deg) scale(1.04)}70%{transform:translateY(-3px) rotate(5deg)}100%{transform:translateY(0) rotate(0)}}
@keyframes viby-dance{0%,100%{transform:translateY(0) rotate(-5deg) scaleY(1)}25%{transform:translateY(-11px) rotate(4deg) scaleY(.98)}50%{transform:translateY(-2px) rotate(7deg) scaleY(1.02)}75%{transform:translateY(-13px) rotate(-3deg) scaleY(.97)}}
@keyframes viby-think{0%,100%{transform:rotate(-2deg) translateY(0)}50%{transform:rotate(4deg) translateY(-5px)}}
@keyframes viby-pulse{0%{opacity:.65;transform:translate(-50%,50%) scale(.35)}100%{opacity:0;transform:translate(-50%,50%) scale(1.65)}}
@keyframes viby-bubble-in{from{opacity:0;transform:scale(.82) translateY(8px)}to{opacity:1;transform:scale(1) translateY(0)}}
@media(max-width:720px){:root{--viby-size:145px}.viby{left:calc(100vw - 132px);top:calc(100vh - 225px)}.viby__bubble{right:calc(100% - 48px);bottom:78%;width:min(320px,calc(100vw - 24px));padding:14px}.viby__message{font-size:13px}.viby.is-minimized{--viby-size:110px}}
@media(prefers-reduced-motion:reduce){.viby__character,.viby.is-playing .viby__character,.viby.is-thinking .viby__character{animation:none!important}.viby__image{transition:none}.viby__pulse{display:none}}
