:root{--bg-0:#0b0d10;--bg-1:#0f141a;--bg-2:#121821;--ink:#e6edf3;--muted:#9da8b3;--neon-green:#39FF14;--cyan:#00E5FF;--pink:#FF3CAC;--ring:0 0 0 1px rgba(0,0,0,.5),0 8px 24px rgba(0,0,0,.35);--safe-t:env(safe-area-inset-top, 0px);--safe-b:env(safe-area-inset-bottom, 0px);--footer-h:72px}*{box-sizing:border-box}html{height:100%;-webkit-text-size-adjust:100%;overflow-x:hidden;overscroll-behavior:contain;touch-action:manipulation}body{margin:0;height:100%;background:radial-gradient(1100px 700px at 70% -10%,rgba(0,229,255,.08),transparent 60%),var(--bg-0);color:var(--ink);font:400 16px/1.6 Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;letter-spacing:normal;word-spacing:normal;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;overflow-x:hidden}#chat-box,.footer-title,.greeting-msg,.inputbar,.panel.chat,body{color:var(--neon-green);text-shadow:0 0 6px rgba(57,255,20,.6),0 0 12px rgba(57,255,20,.35)}.footer-btn,.sub{color:var(--cyan);text-shadow:0 0 6px rgba(0,229,255,.5)}.greeting-msg .bubble,.row-bot .bubble{color:var(--pink);text-shadow:0 0 6px rgba(255,60,172,.45)}.panel.chat{position:relative;width:100%;max-width:1080px;margin:0 auto;padding:0;background:linear-gradient(180deg,rgba(255,255,255,.02),rgba(255,255,255,0)),var(--bg-1);border:1px solid #1f2a36;border-radius:18px;box-shadow:0 10px 40px rgba(0,0,0,.35);height:100dvh;min-height:100dvh;display:grid;grid-template-rows:auto 1fr auto;gap:0;padding-bottom:calc(var(--footer-h,72px) + var(--safe-b))}.panel.chat>.msg.header{position:sticky;top:0;z-index:6;display:flex;justify-content:space-between;align-items:center;gap:12px;padding:calc(12px + var(--safe-t)) 16px 12px;background:linear-gradient(180deg,#121821,rgba(18,24,33,.95));border-bottom:1px solid #1f2a36;color:var(--ink)}.brandwrap{display:flex;align-items:center;gap:12px}h1{font:700 20px/1.2 "Space Grotesk",Inter,sans-serif;margin:0}.sub{font-size:13px;color:var(--cyan);opacity:1;text-shadow:0 0 6px rgba(0,229,255,.5)}.header-controls{display:flex;flex-direction:column;align-items:center;gap:10px}.modebar{display:flex;gap:6px;justify-content:center;width:100%}.mode-btn{display:inline-flex;align-items:center;justify-content:center;height:38px;min-width:38px;padding:8px 10px;border-radius:10px;cursor:pointer;font:700 12px Inter,system-ui;background:#10151b;border:1px solid #1f2a36;color:#cfd6dd;transition:border-color .2s ease,box-shadow .2s ease,transform .08s ease,color .2s ease,opacity .2s ease}.mode-btn svg,.mode-btn svg *{stroke:currentColor!important;filter:drop-shadow(0 0 6px currentColor)}#safeBtn{color:var(--cyan);border-color:rgba(0,229,255,.45);box-shadow:0 0 6px rgba(0,229,255,.3),inset 0 0 8px rgba(0,229,255,.18)}#safeBtn:hover{border-color:rgba(0,229,255,.65);box-shadow:0 0 10px rgba(0,229,255,.55),inset 0 0 12px rgba(0,229,255,.3)}#safeBtn:active{transform:translateY(1px) scale(.98)}#darkBtn{color:var(--pink);border-color:rgba(255,60,172,.45);box-shadow:0 0 6px rgba(255,60,172,.3),inset 0 0 8px rgba(255,60,172,.18)}#darkBtn:hover{border-color:rgba(255,60,172,.65);box-shadow:0 0 10px rgba(255,60,172,.55),inset 0 0 12px rgba(255,60,172,.3)}#darkBtn:active{transform:translateY(1px) scale(.98)}.mode-btn.active#safeBtn{border-color:var(--cyan);box-shadow:0 0 12px rgba(0,229,255,.65),inset 0 0 14px rgba(0,229,255,.4)}.mode-btn.active#darkBtn{border-color:var(--pink);box-shadow:0 0 12px rgba(255,60,172,.65),inset 0 0 14px rgba(255,60,172,.4)}.audio-toggle{display:inline-flex;align-items:center;gap:8px;background:#10151b;border:1px solid #1f2a36;color:#cfd6dd;padding:8px 10px;border-radius:10px;cursor:pointer;font:600 12px Inter;transition:border-color .2s ease,box-shadow .2s ease}.audio-toggle:hover{border-color:#2a3947}.audio-toggle .dot{width:8px;height:8px;border-radius:50%;background:#9aa3aa}.audio-toggle.on .dot{background:var(--neon-green);box-shadow:0 0 8px rgba(57,255,20,.6)}#chat-box{position:relative;z-index:2;min-height:0;max-height:100%;overflow-y:auto;overscroll-behavior-y:contain;-webkit-overflow-scrolling:touch;padding:10px 14px 14px;display:flex;flex-direction:column;gap:.75rem;background:repeating-linear-gradient(180deg,rgba(255,60,172,.02) 0 2px,transparent 2px 6px),linear-gradient(180deg,var(--bg-2),transparent 120%);scroll-behavior:smooth;padding-bottom:calc(var(--footer-h,72px) + var(--safe-b))}greeting-row{width:100%}.greeting-row{position:-webkit-sticky;position:sticky;top:0;z-index:7;display:flex;gap:12px;align-items:center;flex-direction:column;padding:8px 10px 10px;border-bottom:1px solid #1f2a36;text-align:center}.greeting-row .avatar{position:relative;width:clamp(120px,40vw,220px);height:clamp(120px,40vw,220px);aspect-ratio:1/1;margin-left:auto;margin-right:auto;padding:6px;border-radius:20px;overflow:hidden;background:linear-gradient(180deg,rgba(15,20,26,.66),rgba(15,20,26,.5));backdrop-filter:blur(14px) saturate(1.15);-webkit-backdrop-filter:blur(14px) saturate(1.15);box-shadow:0 0 22px rgba(57,255,20,.35),0 0 40px rgba(0,229,255,.22),inset 0 0 16px rgba(255,60,172,.18);pointer-events:none;animation:rtc-float 4.2s cubic-bezier(.37,.01,.2,1) infinite;opacity:85%;display:flex;align-items:center;justify-content:center;contain:layout paint;isolation:isolate}.greeting-row .avatar:hover{opacity:100%;background:linear-gradient(180deg,rgba(15,20,26,.8),rgba(15,20,26,.62));box-shadow:0 0 28px rgba(57,255,20,.5),0 0 54px rgba(0,229,255,.32),inset 0 0 20px rgba(255,60,172,.26)}.greeting-row .avatar svg{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);max-width:calc(100% - 12px);max-height:calc(100% - 12px);width:auto;height:auto;display:block;filter:drop-shadow(0 0 12px rgba(57,255,20,.35));pointer-events:none}.greeting-row .avatar canvas{position:absolute;inset:6px;width:calc(100% - 12px)!important;height:calc(100% - 12px)!important;max-width:calc(100% - 12px);max-height:calc(100% - 12px);border-radius:14px;display:block;pointer-events:none}.greeting-row .avatar.rtc-3d-synced{animation:none!important;will-change:transform}@media (min-width:601px){.greeting-row .avatar{width:clamp(240px,36vw,440px);height:clamp(240px,36vw,440px)}}.eye{transform-box:fill-box;transform-origin:center;animation:rtc-blink 5.5s infinite}.ears path{transform-origin:center;animation:rtc-ear 6.5s ease-in-out infinite}.avatar.bounce-reply{animation:rtc-float 4.2s cubic-bezier(.37,.01,.2,1) infinite,rtc-reply .55s ease-out 1}.avatar.nod{animation:rtc-float 4.2s cubic-bezier(.37,.01,.2,1) infinite,rtc-nod .5s ease-out 1}.avatar.tilt{animation:rtc-float 4.2s cubic-bezier(.37,.01,.2,1) infinite,rtc-tilt .45s ease-out 1}.greeting-row .greeting-msg{flex:1}.bubble{position:relative;max-width:100%;padding:.75rem .9rem;border-radius:14px;font:500 15px/1.5 Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;letter-spacing:normal;word-spacing:normal;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;color:var(--ink);background:#121821;border:1px solid #22303d;box-shadow:0 6px 18px rgba(0,0,0,.25);transform:translateY(8px);opacity:0;animation:rtc-pop-in .28s cubic-bezier(.2,.8,.2,1) forwards;white-space:pre-wrap;overflow-wrap:anywhere}.bubble.small{font-size:inherit;line-height:inherit;padding:.75rem .9rem}.greeting-msg,.row-bot,.row-user{display:flex;gap:8px;align-items:flex-start}.row-user{justify-content:flex-end}.greeting-msg,.row-bot{justify-content:flex-start}.row-user .bubble{color:var(--cyan);text-shadow:0 0 6px rgba(0,229,255,.6);background:linear-gradient(180deg,rgba(0,229,255,.12),rgba(0,229,255,.06));border-color:rgba(0,229,255,.45);box-shadow:0 0 0 1px rgba(0,229,255,.25) inset,0 10px 22px rgba(0,229,255,.12);animation:rtc-in-user .34s cubic-bezier(.22,.9,.24,1) both,rtc-glint 1.6s linear .34s 1;transform-origin:100% 50%}.row-user .bubble:focus-within,.row-user .bubble:hover{box-shadow:0 0 0 1px rgba(0,229,255,.35) inset,0 0 20px rgba(0,229,255,.18),0 12px 26px rgba(0,229,255,.14)}.greeting-msg .bubble,.row-bot .bubble{background:linear-gradient(180deg,rgba(255,60,172,.1),rgba(255,60,172,.05));border-color:rgba(255,60,172,.45);box-shadow:0 0 0 1px rgba(255,60,172,.22) inset,0 10px 22px rgba(255,60,172,.1)}.inputbar{z-index:10;display:flex;gap:8px;align-items:center;flex-wrap:nowrap;padding:12px 16px calc(12px + var(--safe-b));background:#0f1418;border-top:1px solid #1f2a36;border-radius:0 0 18px 18px}#user-input{flex:1 1 auto;background:#0f141a;color:var(--cyan);text-shadow:0 0 6px rgba(0,229,255,.6);border:1px solid #22303d;border-radius:12px;padding:.7rem .9rem;width:100%;outline:0;transition:border-color .15s ease,box-shadow .15s ease,color .15s ease,text-shadow .15s ease}#user-input::placeholder{color:rgba(0,229,255,.6);text-shadow:0 0 5px rgba(0,229,255,.45);opacity:1}#user-input:focus{border-color:var(--cyan);box-shadow:0 0 10px rgba(0,229,255,.6),inset 0 0 8px rgba(0,229,255,.3)}#micBtn,#sendBtn{display:inline-flex;align-items:center;justify-content:center;height:38px;width:38px;border-radius:10px;background:#10151b;cursor:pointer;transition:border-color .2s ease,box-shadow .2s ease,transform .08s ease,color .2s ease;flex-shrink:0}#sendBtn{color:var(--cyan);border:1px solid var(--cyan);box-shadow:0 0 6px rgba(0,229,255,.35),inset 0 0 8px rgba(0,229,255,.25)}#sendBtn:hover{box-shadow:0 0 10px rgba(0,229,255,.55),inset 0 0 12px rgba(0,229,255,.35)}#sendBtn:active{transform:translateY(1px) scale(.96);box-shadow:0 0 14px rgba(0,229,255,.65),inset 0 0 14px rgba(0,229,255,.45)}#micBtn{color:var(--pink);border:1px solid var(--pink);box-shadow:0 0 6px rgba(255,60,172,.35),inset 0 0 8px rgba(255,60,172,.25)}#micBtn:hover{box-shadow:0 0 10px rgba(255,60,172,.55),inset 0 0 12px rgba(255,60,172,.35)}#micBtn:active{transform:translateY(1px) scale(.96);box-shadow:0 0 14px rgba(255,60,172,.65),inset 0 0 14px rgba(255,60,172,.45)}#micBtn.recording{color:#ff3b3b;border-color:#ff3b3b;box-shadow:0 0 12px rgba(255,59,59,.6),inset 0 0 16px rgba(255,59,59,.4);animation:micPulse 1.2s ease-in-out infinite}@keyframes micPulse{0%,100%{box-shadow:0 0 8px rgba(255,59,59,.4),inset 0 0 10px rgba(255,59,59,.3)}50%{box-shadow:0 0 18px rgba(255,59,59,.7),inset 0 0 20px rgba(255,59,59,.5)}}#micBtn svg,#micBtn svg *,#sendBtn svg,#sendBtn svg *{width:18px;height:18px;stroke:currentColor!important;filter:drop-shadow(0 0 6px currentColor);pointer-events:none}@keyframes rtc-pop-in{to{opacity:1;transform:translateY(0)}}@keyframes rtc-in-user{0%{opacity:0;transform:translateY(6px) translateX(10px) scale(.98);filter:saturate(1.2) brightness(1.05)}60%{opacity:1;transform:translateY(-2px) translateX(0) scale(1.02)}100%{opacity:1;transform:translateY(0) scale(1)}}@keyframes rtc-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-14px)}}@keyframes rtc-head{0%,100%{transform:translateY(0) scale(1)}50%{transform:translateY(-1.5px) scale(1.06)}}@keyframes rtc-reply{0%{transform:translateY(0) scale(1)}30%{transform:translateY(-10px) scale(1.06)}60%{transform:translateY(3px) scale(.995)}100%{transform:translateY(0) scale(1)}}@keyframes rtc-nod{0%{transform:translateY(0) rotate(0)}50%{transform:translateY(1px) rotate(4deg)}100%{transform:translateY(0) rotate(0)}}@keyframes rtc-tilt{0%{transform:rotate(0)}50%{transform:rotate(-5deg)}100%{transform:rotate(0)}}@keyframes rtc-blink{0%,100%,92%{transform:scaleY(1)}96%{transform:scaleY(.1)}}@keyframes rtc-ear{0%,100%,92%{transform:rotate(0)}45%{transform:rotate(2.2deg)}50%{transform:rotate(-2.2deg)}}body.mode-safe .panel.chat{border-color:#1f2a36}body.mode-dark .panel.chat{border-color:rgba(255,60,172,.45);background:radial-gradient(1100px 800px at 90% -10%,rgba(255,60,172,.08),transparent 60%),radial-gradient(900px 700px at -10% 10%,rgba(0,229,255,.06),transparent 60%),linear-gradient(180deg,#0b0d10,#090c10)}@media (prefers-reduced-motion:reduce){#chat-box{scroll-behavior:auto}}.visually-hidden{position:absolute!important;height:1px;width:1px;overflow:hidden;clip:rect(1px,1px,1px,1px);white-space:nowrap;clip-path:inset(50%)}.brandmark{--g:var(--neon-green);--c:var(--cyan);--p:var(--pink);width:44px;height:44px;border-radius:50%;position:relative;overflow:hidden;background:radial-gradient(40% 40% at 60% 40%,rgba(57,255,20,.85) 0,rgba(57,255,20,.35) 35%,transparent 70%),radial-gradient(120% 120% at 50% 50%,rgba(0,229,255,.12),transparent 60%),var(--bg-1);border:2px solid rgba(57,255,20,.55);box-shadow:0 0 10px rgba(57,255,20,.45),0 0 24px rgba(0,229,255,.18),inset 0 0 14px rgba(57,255,20,.28);transform:translateZ(0);will-change:transform,filter,box-shadow;transition:transform .25s ease,filter .25s ease,box-shadow .25s ease;animation:rtc-breath 3.8s ease-in-out infinite}.brandmark::before{content:"";position:absolute;inset:-30%;background:conic-gradient(from 210deg,transparent 0 12%,rgba(0,229,255,.28) 16% 22%,transparent 27% 50%,rgba(255,60,172,.22) 55% 60%,transparent 65% 100%);filter:blur(8px) saturate(1.1);animation:rtc-rotate 6.5s linear infinite;mix-blend-mode:screen}.brandmark::after{content:"";position:absolute;inset:0;background:linear-gradient(130deg,transparent 0,rgba(0,229,255,.14) 45%,rgba(255,60,172,.12) 55%,transparent 100%);mix-blend-mode:screen;animation:rtc-sheen 3.6s cubic-bezier(.32,.02,.15,1) infinite}.brandmark .spark,.brandmark .spark:before{content:"";position:absolute;left:50%;top:50%;border-radius:50%}.brandmark .spark{width:8px;height:8px;background:radial-gradient(circle,var(--c) 0,rgba(0,229,255,0) 70%);filter:drop-shadow(0 0 8px var(--c));transform:translate(-50%,-50%) rotate(0) translateX(22px);animation:rtc-orbit 2.4s linear infinite}.brandmark .spark:before{width:7px;height:7px;background:radial-gradient(circle,var(--p) 0,rgba(255,60,172,0) 70%);filter:drop-shadow(0 0 7px var(--p));transform:rotate(0) translateX(-18px);animation:rtc-orbit-rev 3.1s linear infinite}.brandmark.speaking{transform:scale(1.1);box-shadow:0 0 14px rgba(57,255,20,.8),0 0 38px rgba(0,229,255,.32),inset 0 0 20px rgba(57,255,20,.45);animation:rtc-breath-fast 2.2s ease-in-out infinite}.brandmark:hover{transform:scale(1.12) rotate(2deg)}@media (max-width:600px){.panel.chat{max-width:100%;border-radius:0;border-width:0;box-shadow:none;height:100svh;min-height:100svh}.greeting-row .greeting-msg{width:100%;margin-top:8px}.bubble.small{padding:.75rem .9rem}#chat-box{padding:10px 12px 12px}.greeting-row .avatar{width:clamp(150px,45vw,260px);height:clamp(150px,45vw,260px)}.greeting-row .avatar svg{width:100%;height:auto}}img,svg{max-width:100%;height:auto;display:block}#micStatus{font:600 13px/1.4 Inter,sans-serif;margin-left:8px;transition:color .2s ease,text-shadow .2s ease}#micStatus.listening{color:var(--cyan);text-shadow:0 0 6px rgba(0,229,255,.7),0 0 12px rgba(0,229,255,.5)}#micStatus.recording{color:var(--pink);text-shadow:0 0 6px rgba(255,60,172,.7),0 0 12px rgba(255,60,172,.5)}#micStatus.speaking{color:var(--neon-green);text-shadow:0 0 6px rgba(57,255,20,.7),0 0 12px rgba(57,255,20,.5)}.app-footer{position:fixed;bottom:0;left:0;right:0;background:#0f141a;border-top:1px solid #1f2a36;padding:12px 16px;text-align:center;z-index:5;box-shadow:0 -4px 16px rgba(0,0,0,.4);transition:transform .28s ease}.footer-content{display:flex;flex-direction:column;gap:8px;align-items:center;justify-content:center}.footer-title{font:700 14px "Space Grotesk",Inter,sans-serif;color:var(--neon-green);text-shadow:0 0 8px rgba(57,255,20,.6);margin:0}.footer-links{display:flex;flex-wrap:wrap;justify-content:center;gap:12px}.footer-btn{--bdr:#1f2a36;display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border:1px solid var(--bdr);border-radius:10px;background:#10151b;color:var(--cyan);font:600 13px Inter,sans-serif;text-decoration:none;transition:transform .08s ease,box-shadow .2s ease,border-color .2s ease,color .2s ease;text-shadow:0 0 6px rgba(0,229,255,.4)}.footer-btn:hover{border-color:var(--pink);color:var(--pink);text-shadow:0 0 8px rgba(255,60,172,.55);box-shadow:0 0 0 1px rgba(255,60,172,.25) inset,0 10px 24px rgba(255,60,172,.18);transform:translateY(-1px)}.footer-ico{width:18px;height:18px;display:inline-block;flex:0 0 18px;filter:drop-shadow(0 0 6px rgba(0,229,255,.45))}.footer-btn:hover .footer-ico{filter:drop-shadow(0 0 8px rgba(255,60,172,.55))}.app-footer.footer-hide{transform:translateY(calc(100% + var(--safe-b)))}@media (max-width:600px){.app-footer{padding:10px 12px}.footer-btn{padding:7px 10px}}.avatar svg .mouth,.avatar svg .smile{display:none!important}#audioToggle .icon-on{display:none}#audioToggle .icon-off{display:none}#audioToggle.on .icon-on{display:block}#audioToggle:not(.on) .icon-off{display:block}