:root{color-scheme:dark;font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,system-ui,sans-serif;-webkit-tap-highlight-color:transparent}*{box-sizing:border-box}html,body,#root{margin:0;padding:0;height:100%;overflow:hidden}body{background:radial-gradient(circle at 50% 30%,#15151c,#050507 70%);color:#f5f5f5}.app{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;gap:1.5rem;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}.halo{width:180px;height:180px;border-radius:50%;background:radial-gradient(circle,rgba(120,140,200,.45) 0%,rgba(60,80,140,.15) 60%,transparent 100%);filter:blur(8px);transition:all .6s ease;margin-bottom:1rem}.halo[data-state=wake-listening]{background:radial-gradient(circle,rgba(140,200,180,.6) 0%,rgba(70,130,120,.2) 60%,transparent 100%);animation:breathe 3s ease-in-out infinite}.halo[data-state=speaking]{background:radial-gradient(circle,rgba(220,160,100,.85) 0%,rgba(180,100,60,.3) 60%,transparent 100%);animation:breathe 1s ease-in-out infinite}.halo[data-state=processing]{background:radial-gradient(circle,rgba(180,140,220,.8) 0%,rgba(120,90,180,.3) 60%,transparent 100%);animation:breathe .8s ease-in-out infinite}.halo[data-state=responding]{background:radial-gradient(circle,rgba(240,200,130,.85) 0%,rgba(180,140,80,.3) 60%,transparent 100%);animation:breathe 1.4s ease-in-out infinite}.halo[data-state=error]{background:radial-gradient(circle,rgba(220,100,100,.7) 0%,rgba(140,50,50,.25) 60%,transparent 100%)}@keyframes breathe{0%,to{transform:scale(1);opacity:.8}50%{transform:scale(1.08);opacity:1}}h1{font-size:2rem;font-weight:200;letter-spacing:.4em;margin:0;opacity:.85}.status{opacity:.45;font-size:.75rem;text-transform:uppercase;letter-spacing:.2em;margin:0}button{padding:1.1rem 2.5rem;font-size:1rem;font-weight:400;letter-spacing:.05em;background:#ffffff0f;color:#f5f5f5;border:1px solid rgba(255,255,255,.15);border-radius:999px;cursor:pointer;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transition:all .15s ease;min-width:220px}button:hover:not(:disabled){background:#ffffff1a}button:disabled{opacity:.4;cursor:default}button.recording{background:#dca0644d;border-color:#dca06499;animation:breathe 1s ease-in-out infinite}.conversation{width:100%;max-width:600px;padding:0 1.5rem;display:flex;flex-direction:column;gap:1rem;align-items:center;text-align:center;min-height:6rem}.user-text{font-size:.95rem;opacity:.55;font-style:italic;margin:0}.response-text{font-size:1.4rem;font-weight:300;line-height:1.5;margin:0;color:#f5f5f5}.status-message{position:fixed;bottom:1.5rem;font-size:.7rem;opacity:.35;text-align:center;max-width:80%;letter-spacing:.05em}.settings-btn{position:fixed;top:1rem;right:1rem;min-width:unset;width:2.5rem;height:2.5rem;padding:0;border-radius:50%;background:#ffffff0a;border:1px solid rgba(255,255,255,.1);font-size:1rem;opacity:.5;z-index:10}.settings-btn:hover{opacity:.85}.ptt-hint{font-size:.8rem;opacity:.5;text-align:center;margin:-.5rem 0 0;max-width:320px}.ghost-btn{background:transparent;border:none;color:#ffffff80;font-size:.85rem;letter-spacing:.02em;padding:.5rem 1rem;margin-top:.5rem;min-width:unset}.ghost-btn:hover:not(:disabled){color:#ffffffd9;background:transparent}.training{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;gap:1.25rem;padding:2rem 1.5rem;max-width:480px;margin:0 auto}.training h1{margin-bottom:.5rem}.training-intro{text-align:center;font-size:.95rem;line-height:1.5;opacity:.7;margin:0 0 1rem;max-width:380px}.sample-block{width:100%;display:flex;flex-direction:column;gap:.5rem;padding:1rem;border:1px solid rgba(255,255,255,.08);border-radius:16px;background:#ffffff05}.sample-header{display:flex;justify-content:space-between;align-items:center;font-size:.85rem;opacity:.7}.sample-label{letter-spacing:.05em}.sample-counter{font-variant-numeric:tabular-nums;opacity:.6}.sample-btn{min-width:unset;width:100%;padding:.85rem 1rem;font-size:.9rem}.train-btn{margin-top:.5rem;background:#8cc8b42e;border-color:#8cc8b480}.train-btn:hover:not(:disabled){background:#8cc8b447}.reset-btn{background:transparent;border-color:#ffffff1a;font-size:.8rem;opacity:.6;padding:.6rem 1.2rem;min-width:unset}
