:root{--bg:#06080c;--panel:#0e131b;--line:#1b2230;--txt:#eef1f5;--mut:#9aa6b6;--acc:#d8b24a;--acc2:#f0cf6a;--radius:14px}
*{box-sizing:border-box}html,body{margin:0;height:100%;background:radial-gradient(1200px 700px at 50% -10%,#101826,#06080c 60%);color:var(--txt);font-family:Inter,Segoe UI,system-ui,sans-serif}
.topbar{display:flex;justify-content:space-between;align-items:center;padding:14px 22px;border-bottom:1px solid var(--line);background:rgba(10,14,20,.7)}
.brand{font-weight:800;letter-spacing:.5px;font-size:20px}.brand .live{color:#46d17a;font-size:12px;font-weight:700;margin-left:8px}
.lang{background:var(--panel);color:var(--txt);border:1px solid var(--line);border-radius:10px;padding:8px 10px}
.stage{display:grid;grid-template-columns:minmax(320px,460px) 1fr;gap:26px;padding:26px;max-width:1100px;margin:0 auto}
.avatar-wrap{position:relative;background:linear-gradient(180deg,#0d1420,#0a0f17);border:1px solid var(--line);border-radius:18px;padding:16px;display:flex;flex-direction:column;align-items:center;box-shadow:0 18px 60px rgba(0,0,0,.5)}
.avatar-frame{position:relative;width:100%;max-width:420px;border-radius:14px;overflow:hidden;background:#0a0e15}
#face{display:block;width:100%;height:auto;border-radius:14px;animation:breathe 6s ease-in-out infinite}
@keyframes breathe{0%,100%{transform:scale(1)}50%{transform:scale(1.012)}}
.mouth{position:absolute;left:50%;top:62%;transform:translateX(-50%);width:60px;height:12px;border-radius:10px;background:var(--acc2);opacity:.001;box-shadow:0 0 18px var(--acc);transition:opacity .05s,height .05s}
.mouth.talk{opacity:.85}
.avatar-name{margin-top:12px;color:var(--mut);font-weight:700;letter-spacing:1px}
.gender-toggle{display:flex;gap:8px;margin-top:12px}
.gender-btn{background:#13202f;border:1px solid var(--line);color:var(--mut);border-radius:10px;padding:8px 16px;font-size:14px;font-weight:700;cursor:pointer}
.gender-btn.sel{border-color:var(--acc);color:var(--acc2);background:#1a2333}
.picker{margin-top:14px;width:100%;text-align:center}
.picker-label{color:var(--mut);font-size:13px;margin-bottom:8px}
.gallery{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-bottom:10px}
.gallery img{width:54px;height:54px;object-fit:cover;border-radius:10px;border:2px solid var(--line);cursor:pointer;transition:border-color .15s}
.gallery img:hover{border-color:var(--acc)}
.gallery img.sel{border-color:var(--acc2)}
.upload-btn{display:inline-block;background:#13202f;border:1px solid var(--line);color:var(--mut);border-radius:10px;padding:8px 14px;font-size:13px;cursor:pointer}
.upload-btn:hover{border-color:var(--acc);color:var(--txt)}
.chat{display:flex;flex-direction:column;background:var(--panel);border:1px solid var(--line);border-radius:18px;padding:16px}
.log{flex:1;overflow:auto;min-height:340px;display:flex;flex-direction:column;gap:12px;padding-right:6px}
.bubble{max-width:82%;padding:11px 14px;border-radius:14px;line-height:1.45;font-size:15px}
.bubble.user{align-self:flex-end;background:linear-gradient(135deg,#caa23e,#e7c95c);color:#1a1405;border-bottom-right-radius:4px}
.bubble.os{background:#121a25;border:1px solid var(--line);border-bottom-left-radius:4px}
.composer{display:flex;gap:8px;margin-top:12px}
.composer input{flex:1;background:#0b1018;border:1px solid var(--line);border-radius:12px;padding:12px 14px;color:var(--txt);font-size:15px}
.composer button{background:linear-gradient(135deg,#caa23e,#e7c95c);color:#1a1405;border:0;border-radius:12px;padding:0 16px;font-weight:700;cursor:pointer}
.composer button#mic{background:#13202f;border:1px solid var(--line);color:var(--mut)}
@media(max-width:820px){.stage{grid-template-columns:1fr}}
