:root{--bg:#01040b;--panel:rgba(4,15,29,.68);--line:rgba(79,218,255,.17);--cyan:#53eaff;--text:#eafcff;--muted:#7896aa;--ok:#51ffb0;--led:var(--ok)}
body[data-state=listening]{--led:#53eaff}body[data-state=thinking]{--led:#a78bfa}body[data-state=speaking]{--led:#6cecff}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:var(--bg);color:var(--text);font-family:Inter,"Segoe UI",system-ui,sans-serif;-webkit-font-smoothing:antialiased}
body{overflow-x:hidden;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);background:radial-gradient(circle at 50% 38%,rgba(0,139,225,.16),transparent 30%),radial-gradient(circle at 85% 78%,rgba(70,60,255,.09),transparent 35%),linear-gradient(180deg,#01040b,#020a15 55%,#01040b)}
body:before{content:"";position:fixed;inset:0;z-index:-3;pointer-events:none;background-image:linear-gradient(rgba(45,180,255,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(45,180,255,.05) 1px,transparent 1px);background-size:56px 56px;mask-image:linear-gradient(to bottom,transparent,#000 15%,#000 85%,transparent)}
body:after{content:"";position:fixed;inset:0;z-index:-2;pointer-events:none;background:radial-gradient(circle,transparent 35%,rgba(0,0,0,.55) 100%)}
button,input{font:inherit}button{color:var(--text)}button:focus-visible,input:focus-visible{outline:2px solid var(--cyan);outline-offset:2px}
.top{height:72px;padding:0 28px;display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:40;background:rgba(1,5,14,.66);border-bottom:1px solid var(--line);backdrop-filter:blur(20px)}
.brand{display:flex;align-items:center;gap:11px;font-size:14px;font-weight:800;letter-spacing:.34em}.dot{width:8px;height:8px;border-radius:50%;background:var(--cyan);box-shadow:0 0 13px var(--cyan),0 0 28px rgba(0,180,255,.5);animation:pulse 2s infinite}@keyframes pulse{50%{opacity:.45}}
.topright{display:flex;align-items:center;gap:10px}.state{display:flex;align-items:center;gap:8px;color:#78def5;font-size:9px;letter-spacing:.18em}.led{width:7px;height:7px;border-radius:50%;background:var(--led);box-shadow:0 0 12px var(--led);transition:.3s}
.icon{width:38px;height:38px;border-radius:11px;border:1px solid var(--line);background:rgba(8,25,43,.58);cursor:pointer}
.layout{width:min(1500px,100%);margin:auto;min-height:calc(100vh - 72px);display:grid;grid-template-columns:minmax(480px,1fr) minmax(370px,500px);gap:40px;padding:30px 34px 18px}
.stage{min-height:750px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}
.eyebrow{font-size:9px;letter-spacing:.48em;color:#63dffb;margin-bottom:12px}h1{font-size:clamp(40px,5.5vw,72px);letter-spacing:.22em;line-height:1;margin:0 0 0 .22em;font-weight:760;background:linear-gradient(180deg,#fff,#7fe9ff 70%,#2aa8ff);-webkit-background-clip:text;background-clip:text;color:transparent}
.sub{max-width:630px;color:var(--muted);font-size:13px;line-height:1.7;margin:15px 0 0}
.orbwrap{width:max(300px,min(66vw,730px,calc(100vh - 340px)));aspect-ratio:1;min-width:300px;margin:-6px 0 0;cursor:pointer;-webkit-tap-highlight-color:transparent}.orbwrap canvas{width:100%;height:100%;display:block;outline:none;touch-action:manipulation}.orbwrap canvas:focus-visible{outline:2px solid rgba(83,234,255,.5);outline-offset:-30%;border-radius:50%}.caption{min-height:18px;margin:-14px 0 16px;font-size:10px;letter-spacing:.26em;text-transform:uppercase;color:#63dffb;opacity:.8;max-width:80%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.controls{display:flex;justify-content:center;flex-wrap:wrap;gap:9px}
.btn{border:1px solid rgba(79,215,255,.28);background:rgba(7,26,44,.63);border-radius:12px;padding:11px 15px;cursor:pointer;backdrop-filter:blur(12px);transition:.2s}.btn:hover{border-color:#66e9ff;box-shadow:0 0 25px rgba(52,205,255,.16);transform:translateY(-1px)}
.primary{border-color:rgba(80,228,255,.62);background:linear-gradient(135deg,rgba(0,151,255,.32),rgba(42,62,255,.13))}.mic{width:45px;padding:0}.mic.active{border-color:#59edff;background:rgba(0,145,255,.2);box-shadow:0 0 26px rgba(50,226,255,.3)}
.panel{align-self:center;background:var(--panel);border:1px solid var(--line);border-radius:22px;overflow:hidden;backdrop-filter:blur(22px);box-shadow:0 28px 100px rgba(0,0,0,.42),inset 0 0 55px rgba(0,145,255,.025)}
.head{height:58px;padding:0 18px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.title{font-size:10px;letter-spacing:.2em;color:#91ecff}.mode{font-size:9px;color:#557b90;letter-spacing:.14em}
.chat{height:450px;overflow:auto;padding:18px;display:flex;flex-direction:column;gap:12px;scroll-behavior:smooth}.chat::-webkit-scrollbar{width:5px}.chat::-webkit-scrollbar-thumb{background:rgba(76,210,255,.18);border-radius:20px}
.msg{max-width:90%;padding:12px 14px;border-radius:14px;line-height:1.55;font-size:14px;white-space:pre-wrap;overflow-wrap:anywhere;animation:in .25s ease}@keyframes in{from{opacity:0;transform:translateY(6px)}}
.ai{align-self:flex-start;background:rgba(7,34,56,.72);border:1px solid rgba(67,191,255,.11)}.user{align-self:flex-end;background:rgba(21,72,108,.46);border:1px solid rgba(67,191,255,.12)}.meta{align-self:center;color:#466b80;font-size:11px;background:none;border:0;text-align:center}.think{animation:pulse 1.2s infinite}
.composer{padding:13px;border-top:1px solid var(--line);display:flex;gap:8px}.input{flex:1;min-width:0;border:1px solid rgba(75,207,255,.16);background:rgba(0,0,0,.24);border-radius:11px;padding:12px;color:#fff;outline:none}.input:focus{border-color:rgba(79,224,255,.55);box-shadow:0 0 0 3px rgba(0,170,255,.06)}
.bottom{display:flex;justify-content:space-between;gap:12px;padding:9px 15px;border-top:1px solid rgba(74,205,255,.08);color:#46677c;font-size:9px}.small{border:0;background:none;color:#5e8499;cursor:pointer;font-size:10px}.small:hover{color:var(--cyan)}.panelbuttons{display:flex;gap:7px}
.overlay{position:fixed;inset:0;background:rgba(0,4,10,.64);backdrop-filter:blur(9px);z-index:100;display:none;align-items:center;justify-content:center;padding:18px}.overlay.show{display:flex}
.modal{width:min(570px,100%);background:#061321;border:1px solid var(--line);border-radius:20px;box-shadow:0 30px 120px rgba(0,0,0,.65);overflow:hidden}.modalhead{padding:17px 19px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between}.modalbody{padding:18px}
.setting{padding:14px 0;border-bottom:1px solid rgba(70,190,255,.08);display:flex;align-items:center;justify-content:space-between;gap:15px}.setting:last-child{border:0}.setting span{color:#b6d2df;font-size:13px}.setting small{display:block;color:#587589;margin-top:4px;font-size:10px}
.toggle{width:44px;height:24px;border-radius:20px;border:1px solid rgba(80,210,255,.2);background:#0b1d2d;padding:2px;cursor:pointer;flex:none}.toggle i{display:block;width:18px;height:18px;border-radius:50%;background:#648096;transition:.2s}.toggle.on{background:rgba(0,151,255,.25);border-color:rgba(75,222,255,.55)}.toggle.on i{transform:translateX(19px);background:#6cecff;box-shadow:0 0 10px #35dcff}.range{width:150px;accent-color:#43dfff}
footer{text-align:center;color:#395466;font-size:9px;letter-spacing:.2em;padding:0 20px 20px}
@media(max-width:920px){.layout{grid-template-columns:1fr;padding:23px 15px;gap:25px}.stage{min-height:auto}.orbwrap{width:min(94vw,570px)}.panel{width:100%;max-width:590px;margin:auto}}
@media(max-width:520px){.top{height:62px;padding:0 15px}.brand{font-size:12px}.state{font-size:8px}h1{font-size:35px}.sub{font-size:12px}.orbwrap{min-width:280px}.chat{height:370px}.bottom{flex-direction:column}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition:none!important}}
