:root{font-family:Inter,system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;--primary-gradient: linear-gradient(-45deg, #ee7752, #e73c7e, #23a6d5, #23d5ab);--glass-bg: rgba(255, 255, 255, .1);--glass-border: rgba(255, 255, 255, .2);--text-primary: rgba(255, 255, 255, .95);--text-secondary: rgba(255, 255, 255, .8);--error-color: #ff6b6b;--success-color: #51cf66;--warning-color: #feca57;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:var(--primary-gradient);background-size:400% 400%;animation:gradientShift 15s ease infinite;color:var(--text-primary);overflow-x:hidden}@keyframes gradientShift{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}#app{width:100%;min-height:100vh;display:flex;align-items:center;justify-content:center;padding:1rem}.screen{width:100%;max-width:1200px;animation:fadeIn .5s ease-in}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.landing-screen{text-align:center}.landing-container{background:var(--glass-bg);border-radius:24px;padding:3rem 2rem;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid var(--glass-border);box-shadow:0 8px 32px #0000001a}.hero-section{margin-bottom:3rem}.hero-title{font-size:clamp(2rem,5vw,3.5rem);font-weight:700;margin:0 0 1rem;background:linear-gradient(135deg,#fff,#f8f9fa);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.hero-subtitle{font-size:1.25rem;opacity:.9;margin:0;font-weight:500}.avatar-preview{margin:3rem 0}.preview-placeholder{background:#ffffff0d;border-radius:16px;padding:3rem;border:2px dashed var(--glass-border)}.avatar-icon{font-size:4rem;margin-bottom:1rem}.start-button{background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:16px;padding:1.25rem 2.5rem;font-size:1.1rem;font-weight:600;color:#fff;cursor:pointer;transition:all .3s ease;display:inline-flex;align-items:center;gap:.75rem;box-shadow:0 4px 15px #667eea66}.start-button:hover{transform:translateY(-2px);box-shadow:0 8px 25px #667eea80}.start-button:active{transform:translateY(0)}.embed-button{background:linear-gradient(135deg,#f093fb,#f5576c);border:none;border-radius:16px;padding:1rem 2rem;font-size:1rem;font-weight:600;color:#fff;cursor:pointer;transition:all .3s ease;display:inline-flex;align-items:center;gap:.5rem;margin:1rem 0;box-shadow:0 4px 15px #f5576c66}.embed-button:hover{transform:translateY(-2px);box-shadow:0 8px 25px #f5576c80}.embed-button:active{transform:translateY(0)}.plan-note{font-size:.9rem;opacity:.8;margin:1rem 0 0;line-height:1.4}.button-icon{font-size:1.25rem}.chat-screen{max-width:1000px}.chat-container{display:grid;grid-template-columns:1fr;gap:2rem;height:90vh}.video-section{background:var(--glass-bg);border-radius:20px;padding:1.5rem;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid var(--glass-border)}.video-container{position:relative;aspect-ratio:16/9;border-radius:12px;overflow:hidden;background:#000}.avatar-video{width:100%;height:100%;object-fit:cover;border-radius:12px}.avatar-video.speaking{box-shadow:0 0 20px #51cf6680;border:2px solid var(--success-color)}.video-overlay{position:absolute;top:1rem;right:1rem;z-index:10}.status-indicator{background:#000000b3;color:var(--success-color);padding:.5rem 1rem;border-radius:20px;font-size:.875rem;font-weight:600;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.controls-section{display:flex;flex-direction:column;gap:1.5rem}.voice-status{text-align:center;margin-bottom:1.5rem}.voice-indicator{background:var(--glass-bg);border-radius:16px;padding:1.5rem;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid var(--glass-border);display:flex;align-items:center;justify-content:center;gap:1rem}.voice-indicator.active{border-color:var(--success-color);box-shadow:0 0 20px #51cf664d}.voice-indicator.listening{border-color:var(--warning-color);box-shadow:0 0 20px #feca574d}.mic-animation{width:12px;height:12px;background:var(--success-color);border-radius:50%;opacity:.8}.voice-indicator.listening .mic-animation{background:var(--warning-color);animation:micPulse 1.5s infinite}@keyframes micPulse{0%,to{transform:scale(1);opacity:.8}50%{transform:scale(1.3);opacity:1}}#voice-status-text{margin:0;font-weight:500;color:var(--text-primary)}@keyframes pulse{0%,to{box-shadow:0 4px 15px #51cf664d}50%{box-shadow:0 4px 25px #51cf6699}}.text-controls{background:var(--glass-bg);border-radius:16px;padding:1.5rem;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid var(--glass-border)}.input-group{display:flex;gap:1rem;align-items:flex-end}.message-input{flex:1;background:#ffffff1a;border:1px solid var(--glass-border);border-radius:12px;padding:1rem;font-family:inherit;font-size:1rem;color:var(--text-primary);resize:vertical;min-height:3rem;max-height:8rem;transition:border-color .3s ease}.message-input:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.message-input::placeholder{color:var(--text-secondary)}.speak-button{background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:12px;padding:1rem 1.5rem;font-weight:600;color:#fff;cursor:pointer;transition:all .3s ease;white-space:nowrap}.speak-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 20px #667eea4d}.speak-button:disabled{opacity:.5;cursor:not-allowed;transform:none}.character-count{text-align:right;font-size:.875rem;color:var(--text-secondary);margin-top:.5rem}.status-section{text-align:center}.status-message{margin:0;font-weight:500;color:var(--text-secondary)}.loading-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:#000c;display:flex;align-items:center;justify-content:center;z-index:1000;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.loading-content{text-align:center;background:var(--glass-bg);border-radius:20px;padding:2rem;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid var(--glass-border)}.loading-spinner{width:40px;height:40px;border:4px solid rgba(255,255,255,.3);border-top:4px solid #667eea;border-radius:50%;animation:spin 1s linear infinite;margin:0 auto 1rem}@keyframes spin{to{transform:rotate(360deg)}}.loading-text{margin:0;font-weight:500}.error-container{position:fixed;top:2rem;right:2rem;z-index:1001;animation:slideIn .3s ease}@keyframes slideIn{0%{transform:translate(100%)}to{transform:translate(0)}}.error-message{background:#ff6b6b26;border:1px solid rgba(255,107,107,.3);border-radius:12px;padding:1rem 1.5rem;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);display:flex;align-items:center;gap:1rem;max-width:400px}.error-icon{font-size:1.25rem}.error-text{flex:1;color:var(--error-color);font-weight:500}.error-close{background:none;border:none;color:var(--error-color);font-size:1.5rem;cursor:pointer;padding:0;line-height:1;opacity:.7;transition:opacity .2s}.error-close:hover{opacity:1}.initialization-error{text-align:center;background:var(--glass-bg);border-radius:20px;padding:2rem;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid var(--glass-border);max-width:600px;margin:0 auto}.initialization-error h2{color:var(--error-color);margin-top:0}.initialization-error .error-details{text-align:left;background:#ffffff0d;border-radius:12px;padding:1.5rem;margin-top:1.5rem}.initialization-error ul{margin:.5rem 0;padding-left:1.5rem}.initialization-error li{margin:.25rem 0;font-family:Courier New,monospace;font-size:.9rem;background:#0003;padding:.25rem .5rem;border-radius:4px;display:inline-block}@media (max-width: 768px){#app{padding:.5rem}.landing-container{padding:2rem 1.5rem}.hero-title{font-size:2rem}.hero-subtitle{font-size:1.1rem}.chat-container{height:100vh;gap:1rem}.video-section{padding:1rem}.input-group{flex-direction:column;align-items:stretch}.speak-button{padding:1rem}.error-container{top:1rem;right:1rem;left:1rem}.error-message{max-width:none}}@media (max-width: 480px){.landing-container{padding:1.5rem 1rem;margin:.5rem}.start-button{padding:1rem 2rem;font-size:1rem}.listen-button{padding:.875rem 1.5rem;font-size:.9rem}}
