.avatar-chat-messages::-webkit-scrollbar{width:6px}.avatar-chat-messages::-webkit-scrollbar-track{background:transparent}.avatar-chat-messages::-webkit-scrollbar-thumb{background:rgba(93,64,55,.15);border-radius:3px}.avatar-chat-messages::-webkit-scrollbar-thumb:hover{background:rgba(93,64,55,.25)}.avatar-chat-messages-mobile::-webkit-scrollbar{width:4px}.avatar-chat-messages-mobile::-webkit-scrollbar-track{background:transparent}.avatar-chat-messages-mobile::-webkit-scrollbar-thumb{background:hsla(0,0%,100%,.15);border-radius:2px}.avatar-fadeIn{animation:avatarFadeIn .3s ease-out}.avatar-fadeInUp{animation:avatarFadeInUp .3s ease-out}@keyframes avatarFadeIn{0%{opacity:0}to{opacity:1}}@keyframes avatarFadeInUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.avatar-mobile-chat-overlay{position:absolute;bottom:0;left:0;right:0;z-index:15;display:flex;flex-direction:column;max-height:50%;height:120px;background:linear-gradient(180deg,rgba(30,25,20,.65) 0,rgba(30,25,20,.85));backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-top-left-radius:16px;border-top-right-radius:16px;transition:height .35s cubic-bezier(.4,0,.2,1);overflow:hidden}.avatar-mobile-chat-overlay--open{height:45%}.avatar-input-bar{width:100%}.avatar-input-bar--mobile input{font-size:14px;padding:10px 14px}.safe-area-bottom{padding-bottom:max(.5rem,env(safe-area-inset-bottom))}.voice-recorder{position:relative;display:flex;flex-direction:column;align-items:center;gap:.5rem}.voice-recorder--compact{flex-direction:row;gap:0}.voice-recorder__pulse-ring{position:absolute;width:72px;height:72px;border-radius:50%;background:rgba(220,53,69,.25);transition:transform .1s,opacity .1s;pointer-events:none;z-index:0}.voice-recorder--compact .voice-recorder__pulse-ring{width:48px;height:48px}.voice-recorder__btn{position:relative;z-index:1;width:64px;height:64px;border-radius:50%;border:3px solid #d4a84b;background:rgba(212,168,75,.08);color:#b8860b;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s;touch-action:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.voice-recorder__btn:hover:not(:disabled){background:rgba(212,168,75,.15);transform:scale(1.05);box-shadow:0 0 20px rgba(212,168,75,.3)}.voice-recorder__btn:active:not(:disabled){transform:scale(.95)}.voice-recorder__btn--recording{border-color:#dc3545;background:rgba(220,53,69,.1);color:#dc3545;animation:recordingPulse 1.5s infinite}.voice-recorder__btn--processing{border-color:#f59e0b;color:#f59e0b;cursor:wait}.voice-recorder__btn--disabled{opacity:.4;cursor:not-allowed}.voice-recorder__btn--compact{width:44px;height:44px;border-width:2px}.voice-recorder__icon{width:28px;height:28px}.voice-recorder__icon--spin{animation:spin 1.5s linear infinite}.voice-recorder__btn--compact .voice-recorder__icon{width:20px;height:20px}.voice-recorder__status{display:flex;align-items:center;gap:.5rem;font-size:.8rem;color:#dc3545}.voice-recorder--compact .voice-recorder__status{position:absolute;top:-20px;left:50%;transform:translateX(-50%);white-space:nowrap;font-size:.7rem;background:hsla(0,0%,100%,.9);padding:2px 8px;border-radius:999px;box-shadow:0 1px 4px rgba(0,0,0,.1)}.voice-recorder__dot{width:8px;height:8px;border-radius:50%;background:#dc3545;animation:blink 1s infinite}.voice-recorder--compact .voice-recorder__dot{width:6px;height:6px}.voice-recorder__time{font-family:monospace;font-size:.85rem}.voice-recorder--compact .voice-recorder__time{font-size:.7rem}.voice-recorder__hint{color:#8b7355;font-size:.75rem}.voice-recorder__hint-idle{font-size:.8rem;color:#8b7355;text-align:center}.voice-recorder__hint-idle--processing{color:#f59e0b}.voice-recorder--compact .voice-recorder__hint-idle{display:none}.avatar-scene{position:relative;width:100%;height:100%}.avatar-scene canvas{border-radius:0}.avatar-scene__loading{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;background:rgba(255,253,247,.8);z-index:5;color:#8b7355;backdrop-filter:blur(4px)}.avatar-scene__loading p{margin-top:1rem;font-size:.9rem}.avatar-scene__spinner{width:40px;height:40px;border:3px solid rgba(212,168,75,.2);border-top-color:#d4a84b;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}@keyframes blink{0%,to{opacity:1}50%{opacity:.3}}@keyframes recordingPulse{0%,to{box-shadow:0 0 0 0 rgba(220,53,69,.4)}50%{box-shadow:0 0 0 12px rgba(220,53,69,0)}}