.chat-interface{position:absolute;bottom:20px;left:20px;width:350px;background:#fffffff2;border-radius:10px;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 0 20px #0003;z-index:99999!important;transition:height .3s ease;cursor:move}.chat-header{padding:12px 20px;background:#2c3e50;color:#fff;font-weight:500;cursor:default;display:flex;justify-content:space-between;align-items:center;-webkit-user-select:none;user-select:none;border-bottom:1px solid rgba(255,255,255,.1);transition:background .2s}.drag-handle{display:none}.chat-messages{flex-grow:1;overflow-y:auto;display:flex;flex-direction:column;gap:10px;background:#fff}.message{max-width:80%;padding:10px 15px;border-radius:15px;margin:5px 0;font-size:.95rem;line-height:1.4;word-wrap:break-word}.message.user{background-color:#007bff;color:#fff;align-self:flex-end;border-bottom-right-radius:5px;margin-left:auto;text-align:right}.message.bot{background-color:#e9ecef;color:#2c3e50;align-self:flex-start;border-bottom-left-radius:5px;margin-right:auto;text-align:left}.message.error{background-color:#dc3545;color:#fff}.chat-controls{display:flex;padding:15px;gap:15px;background:#fff;border-top:1px solid #dee2e6}.chat-input-form{flex-grow:1;display:flex;align-items:center;gap:8px;width:100%}.chat-input{flex-grow:1;padding:12px 15px;border:1px solid #dee2e6;border-radius:20px;outline:none;font-size:.95rem;transition:border-color .2s;min-width:0;cursor:auto!important}.chat-input:focus{border-color:#007bff}.chat-send-button{padding:10px;background-color:#007bff;color:#fff;border:none;border-radius:50%;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center;width:40px;height:40px;font-size:1.2rem;cursor:auto!important}.chat-send-button:hover{background-color:#0056b3;transform:scale(1.1)}.typing-indicator{display:flex;gap:4px;padding:5px 10px;align-self:flex-start}.typing-indicator span{width:8px;height:8px;background-color:#90949c;border-radius:50%;animation:typing 1s infinite ease-in-out}.typing-indicator span:nth-child(1){animation-delay:.2s}.typing-indicator span:nth-child(2){animation-delay:.3s}.typing-indicator span:nth-child(3){animation-delay:.4s}@keyframes typing{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}.chat-messages::-webkit-scrollbar{width:6px}.chat-messages::-webkit-scrollbar-track{background:transparent}.chat-messages::-webkit-scrollbar-thumb{background:#888;border-radius:3px}.chat-messages::-webkit-scrollbar-thumb:hover{background:#555}.chat-starter{padding:10px;display:flex;justify-content:center;background:#fffffff2;border-bottom:1px solid #dee2e6}.starter-button{padding:8px 16px;background-color:#007bff;color:#fff;border:none;border-radius:20px;cursor:pointer;font-size:1rem;transition:all .2s}.starter-button:hover{background-color:#0056b3;transform:scale(1.05)}.mic-container{display:flex;align-items:center;justify-content:center;position:relative}.mic-button{background:none;border:none;padding:8px;cursor:pointer;color:#666;transition:color .3s ease}.mic-button.recording{color:#f44}.mic-button:hover{color:#007bff}.mic-error{position:absolute;bottom:100%;left:50%;transform:translate(-50%);background-color:#dc3545;color:#fff;padding:8px 12px;border-radius:4px;font-size:.8rem;white-space:nowrap;margin-bottom:8px;z-index:1000;box-shadow:0 2px 4px #0003;max-width:250px;text-align:center}.mic-error:after{content:"";position:absolute;top:100%;left:50%;transform:translate(-50%);border:6px solid transparent;border-top-color:#dc3545}.mic-button.error{color:#dc3545}.mic-button.error:hover{color:#bd2130}.header-controls{display:flex;gap:10px;align-items:center}.refresh-button{background:none;border:none;color:#fff;cursor:pointer;padding:4px;display:flex;align-items:center;justify-content:center;opacity:.7;transition:all .2s;cursor:auto!important}.refresh-button:hover{opacity:1;transform:rotate(180deg)}.mic-button.speaking{background-color:#4caf50;animation:pulse 1.5s infinite}@keyframes pulse{0%{transform:scale(1)}50%{transform:scale(1.1)}to{transform:scale(1)}}.voice-button.listening{background-color:#f44;box-shadow:0 0 10px #ff444480}.voice-button.listening:hover{background-color:#c00}.expand-icon{margin-left:10px;transition:transform .2s}@media (max-width: 768px){.chat-interface{width:300px;height:400px!important}}.expand-icon-container{cursor:pointer;display:flex;align-items:center;justify-content:center;padding:5px;margin-left:8px}.expand-icon-container:hover{background-color:#ffffff1a;border-radius:4px}.speech-preview{opacity:.7;position:relative;animation:fade-pulse 1.5s infinite}.voice-wave{height:4px;background:linear-gradient(90deg,#007bff,#00bfff,#007bff);margin-top:8px;border-radius:2px;animation:wave 1s infinite linear}@keyframes wave{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes fade-pulse{0%,to{opacity:.7;transform:scale(1)}50%{opacity:.9;transform:scale(1.02)}}.mic-error-message{display:flex;align-items:center;gap:8px;font-size:.9em}.mic-error-icon{font-size:1.2em}.mic-button.recording{animation:mic-pulse 1.5s infinite}@keyframes mic-pulse{0%{box-shadow:0 0 #f006}70%{box-shadow:0 0 0 10px #f000}to{box-shadow:0 0 #f000}}.fast-response-button{background:none;border:none;color:#fff;font-size:18px;cursor:pointer;padding:5px;margin-right:5px;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:all .2s ease}.fast-response-button:hover{background-color:#fff3;transform:scale(1.1)}.fast-response-button.active{color:#4caf50;background-color:#4caf5033}@media (max-width: 600px){.chat-interface{width:98vw!important;max-width:98vw!important;height:40vh!important;left:0!important;bottom:0!important;border-radius:0!important;min-width:0!important;max-width:100vw!important;font-weight:300;overflow-y:auto!important;box-sizing:border-box!important}}*{margin:0;padding:0;box-sizing:border-box}body,#root{width:100%;height:100vh;overflow:hidden;background:#fff!important;box-shadow:none!important;filter:none!important}#root{max-width:1280px;margin:0 auto;padding:2rem;text-align:center;background:#fff!important;box-shadow:none!important;filter:none!important}div.scene-container{position:fixed;top:0;left:0;width:100vw;height:100vh;background:#fff!important;box-shadow:none!important;filter:none!important}.logo{height:6em;padding:1.5em;will-change:filter;transition:filter .3s}.logo:hover{filter:drop-shadow(0 0 2em #646cffaa)}.logo.react:hover{filter:drop-shadow(0 0 2em #61dafbaa)}@keyframes logo-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media (prefers-reduced-motion: no-preference){a:nth-of-type(2) .logo{animation:logo-spin infinite 20s linear}}.card{padding:2em}.read-the-docs{color:#888}.loading-overlay{position:fixed;top:0;left:0;right:0;bottom:0;display:flex;justify-content:center;align-items:center;background-color:gray;z-index:1000}.avatar-transition{transition:opacity .3s ease,visibility .3s ease}.avatar-hidden{opacity:0;visibility:hidden;pointer-events:none}.avatar-visible{opacity:1;visibility:visible;pointer-events:all}.language-buttons{position:absolute;top:20px;right:20px;z-index:1000;display:flex;gap:10px;padding:10px;background-color:#00000080;border-radius:8px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.language-button{display:flex;align-items:center;gap:8px;padding:12px 24px;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:16px;transition:all .3s cubic-bezier(.4,0,.2,1);box-shadow:0 2px 4px #0003;position:relative;overflow:hidden}.language-button:before{content:"";position:absolute;top:0;left:0;width:100%;height:100%;background:linear-gradient(45deg,#ffffff1a,#fff0);transition:all .3s ease}.language-button:hover:before{background:linear-gradient(45deg,#fff3,#ffffff1a)}.language-button:hover{transform:translateY(-2px);box-shadow:0 4px 8px #0000004d}.language-button:active{transform:translateY(0);box-shadow:0 2px 4px #0003}.language-button.active{background-color:#2196f3}.language-button:not(.active){background-color:#666}.language-button .flag-icon{font-size:18px;transition:transform .3s ease}.language-button:hover .flag-icon{transform:scale(1.1)}@media (max-width: 768px){.language-buttons{top:10px;right:10px;padding:5px;gap:5px}.language-button{padding:8px 16px;font-size:14px}}.avatar-language-info{position:absolute;top:10px;right:20px;z-index:1000;background-color:#000000b3;padding:10px 15px;border-radius:8px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);box-shadow:0 4px 6px #0000001a;transition:all .3s ease}.language-text{color:#fff;font-size:22px;font-weight:500;text-align:center;margin:0;padding:0}@media (max-width: 768px){.avatar-language-info{top:10px;right:10px;padding:8px 12px}.language-text{font-size:12px}}.avatar-buttons{display:flex;gap:15px;margin-bottom:20px;padding:20px;background:#0009;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:15px;box-shadow:0 8px 32px #0000004d;border:1px solid rgba(255,255,255,.1);position:absolute;bottom:30px;left:50%;transform:translate(-50%);z-index:1000}.avatar-button{padding:12px 24px;border:none;border-radius:12px;background:linear-gradient(145deg,#2a2a2a,#3a3a3a);color:#fff;font-size:16px;font-weight:500;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);box-shadow:0 4px 15px #0003;position:relative;overflow:hidden;min-width:120px;text-align:center}.avatar-button:before{content:"";position:absolute;top:0;left:0;width:100%;height:100%;background:linear-gradient(45deg,#ffffff1a,#fff0);transition:all .3s ease}.avatar-button:hover{transform:translateY(-3px);box-shadow:0 6px 20px #0000004d;background:linear-gradient(145deg,#3a3a3a,#4a4a4a)}.avatar-button:hover:before{background:linear-gradient(45deg,#fff3,#ffffff1a)}.avatar-button.active{background:linear-gradient(145deg,#1976d2,#2196f3);box-shadow:0 4px 15px #2196f34d}.avatar-button.active:hover{background:linear-gradient(145deg,#2196f3,#42a5f5);box-shadow:0 6px 20px #2196f366}.avatar-button:disabled{opacity:.5;cursor:not-allowed;transform:none;box-shadow:none}@media (max-width: 768px){.avatar-buttons{flex-wrap:wrap;justify-content:center;padding:15px;bottom:20px;width:90%;max-width:500px}.avatar-button{padding:10px 20px;font-size:14px;min-width:100px}}.app-container{height:100vh;width:100vw;position:fixed;top:0;left:0;background-color:#fff!important}.btn-donate{--clr-font-main: hsla(0 0% 20% / 100);background-image: linear-gradient(325deg,#01a903 0%,#34e27d 55%,#01a903 80%);background-size: 280% auto;--radii: .5em;cursor:pointer;padding:.9em 1.4em;margin:0!important;min-width:120px;min-height:44px;font-size:16px;font-weight:500;transition:.8s;background-size:280% auto;border:none;border-radius:var(--radii);color:#fff;}.btn-donate:hover{background-image: url('https://hubai.org/wp-content/uploads/2025/07/carbon-fiber.webp');background-size: cover;box-shadow: inset 0 0 0 100px rgba(0,0,0,0.3);}.btn-donate:is(:focus,:focus-visible,:active){outline:none;box-shadow:0 0 0 3px var(--btn-bg-color),0 0 0 6px var(--btn-bg-2)}@media (prefers-reduced-motion: reduce){.btn-donate{transition:linear}}@media (max-width: 600px){.scene-container,.app-container{width:100%!important;height:100vh!important;padding:0!important}.chat-interface{width:100vw!important;left:0!important;bottom:0!important;border-radius:0!important;height:60vh!important;min-width:0!important;max-width:100vw!important}.avatar-buttons{flex-direction:column;gap:8px;width:100vw!important;left:0!important;transform:none!important;bottom:0!important;position:fixed!important;background:#fff!important;box-shadow:0 -2px 8px #0000000d;border-radius:0!important;padding:10px 0!important}.btn-donate,.avatar-button{min-width:0!important;font-size:13px!important;margin:0!important;}body,#root{font-size:12px!important}.logo{height:3em!important;padding:.5em!important}}.loading-container{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);text-align:center;background:#000000d9;padding:30px;border-radius:15px;box-shadow:0 0 20px #00000080;color:#fff}.spinner{width:60px;height:60px;border:6px solid #f3f3f3;border-top:6px solid #3498db;border-radius:50%;margin:0 auto 15px;animation:spin 1s linear infinite}.progress-bar{width:200px;height:10px;background-color:#444;border-radius:5px;margin:1rem auto;overflow:hidden}.progress-fill{height:100%;background-color:#3498db;transition:width .3s ease-out}.loading-text{color:#fff;font-size:18px;font-weight:700;text-shadow:1px 1px 2px rgba(0,0,0,.5)}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media (max-width: 500px){ div:has(.btn-donate){flex-wrap:wrap;}}
