*{box-sizing:border-box;margin:0;padding:0}html,body{width:100%;height:100vh}#submit,#speech-recognition{vertical-align:top}#speech-recognition{z-index:1;color:#fff;cursor:pointer;background:0 0;border:.05em solid #fff;border-radius:4rem;padding:.1em;font-size:4rem;transition:color .3s,border .3s;position:absolute;bottom:1em;left:50%;transform:translate(-50%)}#chat-history{z-index:1;color:#fff;pointer-events:none;width:100%;height:100%;padding:2rem;position:absolute}#chat-history .chat-message{--chat-bubble-color:white;--chat-text-color:#333;background:var(--chat-bubble-color);color:var(--chat-text-color);word-wrap:break-word;opacity:.8;border-radius:1em;width:-webkit-max-content;width:-moz-max-content;width:max-content;max-width:min(50%,20em);margin:1em 0;padding:1em;font-size:1.5rem;font-weight:700;position:relative}@media (orientation:portrait){#chat-history .chat-message{max-width:80%;font-size:1.25rem}}#chat-history .chat-message:before{content:"";border:.5em solid transparent;border-right-color:var(--chat-bubble-color);border-left:0;width:0;height:0;margin-left:-.5em;position:absolute;top:1em;left:0}#chat-history .chat-message.model{--chat-bubble-color:#e0a8a8}#chat-history .chat-message.system{--chat-bubble-color:#9db1d7}#chat-history .chat-message.user{--chat-bubble-color:white;--chat-text-color:#333;margin-left:auto}#chat-history .chat-message.user:before{--chat-bubble-color:white;left:unset;border:.5em solid transparent;border-left-color:var(--chat-bubble-color);border-right:0;margin-left:0;margin-right:-.5em;right:0}#speech-recognition.ready{color:#e86060;border-color:#e86060}#speech-recognition.listening{color:#60e8a8;border-color:#60e8a8}#audio-indicator{z-index:1;background:red;width:1rem;height:0;transition:height .1s;position:absolute;bottom:1em;left:1rem}#notice{z-index:1;color:#fff;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;max-width:30em;font-size:.8rem;font-weight:lighter;position:absolute;bottom:1em;right:1em}canvas{width:100%;height:100vh;position:absolute;top:0;bottom:0;left:0;right:0}