:root{--font-sans:-apple-system, BlinkMacSystemFont, "SF Pro Text", "SF Pro Display", "Helvetica Neue", "Segoe UI", system-ui, sans-serif;--font-rounded:"SF Pro Rounded", -apple-system, "Nunito", system-ui, sans-serif;--font-serif:"New York", ui-serif, Georgia, "Times New Roman", serif;--font-mono:"SF Mono", ui-monospace, "JetBrains Mono", Menlo, monospace;--text-large-title:2.125rem;--text-title-1:1.75rem;--text-title-2:1.375rem;--text-title-3:1.25rem;--text-headline:1.0625rem;--text-body:1.0625rem;--text-callout:1rem;--text-subhead:.9375rem;--text-footnote:.8125rem;--text-caption-1:.75rem;--text-caption-2:.6875rem;--tracking-tight:-.022em;--tracking-snug:-.014em;--tracking-normal:0em;--tracking-wide:.01em;--leading-tight:1.05;--leading-snug:1.2;--leading-normal:1.35;--leading-relaxed:1.5;--weight-regular:400;--weight-medium:500;--weight-semibold:600;--weight-bold:700;--space-1:.125rem;--space-2:.25rem;--space-3:.5rem;--space-4:.75rem;--space-5:1rem;--space-6:1.25rem;--space-7:1.5rem;--space-8:2rem;--space-9:2.5rem;--space-10:3rem;--space-12:4rem;--radius-xs:6px;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:22px;--radius-2xl:28px;--radius-capsule:999px;--shadow-1:0 1px 2px #0000000a, 0 1px 1px #0000000f;--shadow-2:0 2px 8px #0000000f, 0 1px 2px #00000014;--shadow-3:0 8px 24px #0000001a, 0 2px 6px #00000014;--shadow-4:0 16px 48px #00000024, 0 4px 12px #0000001a;--shadow-glass:0 8px 32px #0000002e;--ease-out:cubic-bezier(.23, 1, .32, 1);--ease-in-out:cubic-bezier(.77, 0, .175, 1);--ease-ios:cubic-bezier(.32, .72, 0, 1);--ease-snappy:cubic-bezier(.4, 0, .2, 1);--duration-instant:.1s;--duration-fast:.2s;--duration-base:.3s;--duration-slow:.45s;--blue:#007aff;--green:#34c759;--indigo:#5856d6;--orange:#ff9500;--pink:#ff2d55;--purple:#af52de;--red:#ff3b30;--teal:#30b0c7;--cyan:#32ade6;--yellow:#fc0;--mint:#00c7be;--brown:#a2845e;--accent:var(--blue);--gray-1:#8e8e93;--gray-2:#aeaeb2;--gray-3:#c7c7cc;--gray-4:#d1d1d6;--gray-5:#e5e5ea;--gray-6:#f2f2f7;--bg:#fff;--bg-secondary:#f2f2f7;--bg-tertiary:#fff;--bg-grouped:#f2f2f7;--label:#000;--label-secondary:#3c3c4399;--label-tertiary:#3c3c434d;--label-quaternary:#3c3c432e;--separator:#3c3c434a;--separator-opaque:#c6c6c8;--fill-1:#78788033;--fill-2:#78788029;--fill-3:#7878801f;--fill-4:#78788014;--material-ultrathin-tint:#ffffff70;--material-thin-tint:#fff9;--material-regular-tint:#ffffffb8;--material-thick-tint:#ffffffd6;--material-blur:20px;--material-blur-thin:12px;--material-saturate:180%;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}:root:not([data-theme=light]){--blue:#0a84ff;--green:#30d158;--indigo:#5e5ce6;--orange:#ff9f0a;--pink:#ff375f;--purple:#bf5af2;--red:#ff453a;--teal:#40c8e0;--cyan:#64d2ff;--yellow:#ffd60a;--mint:#63e6e2;--brown:#ac8e68;--gray-1:#8e8e93;--gray-2:#636366;--gray-3:#48484a;--gray-4:#3a3a3c;--gray-5:#2c2c2e;--gray-6:#1c1c1e;--bg:#000;--bg-secondary:#1c1c1e;--bg-tertiary:#2c2c2e;--bg-grouped:#000;--label:#fff;--label-secondary:#ebebf599;--label-tertiary:#ebebf54d;--label-quaternary:#ebebf529;--separator:#54545899;--separator-opaque:#38383a;--fill-1:#7878805c;--fill-2:#78788052;--fill-3:#7878803d;--fill-4:#7878802e;--material-ultrathin-tint:#1e1e2070;--material-thin-tint:#1e1e209e;--material-regular-tint:#1e1e20bd;--material-thick-tint:#1e1e20db;--shadow-1:0 1px 2px #0000004d;--shadow-2:0 2px 8px #0000005c;--shadow-3:0 8px 24px #00000070;--shadow-4:0 16px 48px #00000085;--shadow-glass:0 8px 32px #00000080}}[data-theme=dark]{--blue:#0a84ff;--green:#30d158;--indigo:#5e5ce6;--orange:#ff9f0a;--pink:#ff375f;--purple:#bf5af2;--red:#ff453a;--teal:#40c8e0;--cyan:#64d2ff;--yellow:#ffd60a;--mint:#63e6e2;--brown:#ac8e68;--gray-1:#8e8e93;--gray-2:#636366;--gray-3:#48484a;--gray-4:#3a3a3c;--gray-5:#2c2c2e;--gray-6:#1c1c1e;--bg:#000;--bg-secondary:#1c1c1e;--bg-tertiary:#2c2c2e;--bg-grouped:#000;--label:#fff;--label-secondary:#ebebf599;--label-tertiary:#ebebf54d;--label-quaternary:#ebebf529;--separator:#54545899;--separator-opaque:#38383a;--fill-1:#7878805c;--fill-2:#78788052;--fill-3:#7878803d;--fill-4:#7878802e;--material-ultrathin-tint:#1e1e2070;--material-thin-tint:#1e1e209e;--material-regular-tint:#1e1e20bd;--material-thick-tint:#1e1e20db}html{-webkit-text-size-adjust:100%}body{font-family:var(--font-sans);font-optical-sizing:auto;-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;font-size:var(--text-body);line-height:var(--leading-normal);letter-spacing:var(--tracking-normal);color:var(--label);background:var(--bg);margin:0}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}:root{--font-sans:-apple-system, BlinkMacSystemFont, "SF Pro Text", "PingFang TC", "Noto Sans TC", "Microsoft JhengHei", "Helvetica Neue", system-ui, sans-serif;--brand-fill:#2b7f7a;--brand-ink:#226a66;--brand-soft:#4d9d9724;--accent:var(--brand-fill);--bg-a:#fff;--bg-b:#f5f5f7;--blob-1:#4d9d971f;--blob-2:#f3a19c1a;--blob-3:#fff0;--bubble-bot:#e9e9eb;--field-bg:#f2f2f7;--glass-hi:#ffffffe6;--glass-glow:#fff6;--glass-rim:#0000000f;--shadow-glass:0 12px 40px #00000014, 0 2px 8px #0000000a;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--brand-ink:#74d0c7;--brand-soft:#74d0c724;--bg-a:#0b1a1a;--bg-b:#141617;--blob-1:#4d9d9752;--blob-2:#f3a19c1f;--blob-3:#4d9d971a;--bubble-bot:#ffffff17;--field-bg:#ffffff14;--glass-hi:#ffffff1f;--glass-glow:#ffffff0d;--glass-rim:#0006}}:root[data-theme=dark]{--brand-ink:#74d0c7;--brand-soft:#74d0c724;--bg-a:#0b1a1a;--bg-b:#141617;--blob-1:#4d9d9752;--blob-2:#f3a19c1f;--blob-3:#4d9d971a;--bubble-bot:#ffffff17;--field-bg:#ffffff14;--glass-hi:#ffffff1f;--glass-glow:#ffffff0d;--glass-rim:#0006}html,body,#root{height:100%}body{background:linear-gradient(160deg, var(--bg-a), var(--bg-b));overflow:hidden}.glass{background:var(--material-thick-tint);-webkit-backdrop-filter:blur(28px)saturate(180%);backdrop-filter:blur(28px)saturate(180%);box-shadow:inset 0 1px 0 var(--glass-hi), inset 0 0 0 .5px var(--glass-glow), 0 0 0 .5px var(--glass-rim), var(--shadow-glass)}.glass-thin{background:var(--material-thin-tint);-webkit-backdrop-filter:blur(14px)saturate(170%);backdrop-filter:blur(14px)saturate(170%);box-shadow:inset 0 1px 0 var(--glass-hi), 0 0 0 .5px var(--glass-rim), var(--shadow-2)}@media (prefers-reduced-transparency:reduce){.glass,.glass-thin{background:var(--bg-secondary);-webkit-backdrop-filter:none;backdrop-filter:none}}@media (prefers-contrast:more){.glass,.glass-thin{border:1px solid var(--separator-opaque)}}.app{gap:var(--space-7);height:100dvh;padding:var(--space-7);box-sizing:border-box;grid-template-columns:minmax(0,1fr) minmax(360px,440px);display:grid;position:relative}.backdrop{z-index:-1;background:radial-gradient(40% 45% at 28% 42%, var(--blob-3), transparent 70%), radial-gradient(35% 40% at 18% 78%, var(--blob-1), transparent 70%), radial-gradient(30% 35% at 82% 18%, var(--blob-1), transparent 70%), radial-gradient(30% 30% at 70% 85%, var(--blob-2), transparent 70%);filter:blur(40px);position:fixed;inset:-10%}.stage{min-width:0;min-height:0;position:relative}.stage canvas{display:block}.stage-fallback{object-fit:contain;width:100%;height:100%}.brand{top:var(--space-3);left:var(--space-3);z-index:1;gap:var(--space-1);pointer-events:none;flex-direction:column;display:flex;position:absolute}.brand-mark{font-size:var(--text-title-3);font-weight:var(--weight-bold);letter-spacing:var(--tracking-snug);line-height:var(--leading-tight);color:var(--brand-ink)}.brand-sub{font-size:var(--text-footnote);letter-spacing:var(--tracking-wide);color:var(--label-secondary)}.stage-hint{left:50%;bottom:var(--space-5);padding:var(--space-3) var(--space-5);border-radius:var(--radius-capsule);font-size:var(--text-footnote);letter-spacing:var(--tracking-wide);color:var(--label-secondary);white-space:nowrap;pointer-events:none;background:var(--material-thin-tint);-webkit-backdrop-filter:blur(14px)saturate(170%);backdrop-filter:blur(14px)saturate(170%);box-shadow:inset 0 1px 0 var(--glass-hi), 0 0 0 .5px var(--glass-rim);margin:0;position:absolute;transform:translate(-50%)}.start-session{left:50%;bottom:calc(var(--space-5) + 3.2rem);border-radius:var(--radius-capsule);font:inherit;font-size:var(--text-callout);font-weight:var(--weight-semibold);color:#fff;cursor:pointer;background:var(--brand,#0a7a5a);border:0;margin:0;padding:.75rem 1.35rem;position:absolute;transform:translate(-50%);box-shadow:0 8px 24px #0000002e}.conn-status,.conn-error{left:50%;bottom:calc(var(--space-5) + .1rem);padding:var(--space-2) var(--space-4);border-radius:var(--radius-capsule);font-size:var(--text-footnote);white-space:nowrap;background:var(--material-thin-tint);-webkit-backdrop-filter:blur(14px)saturate(170%);backdrop-filter:blur(14px)saturate(170%);margin:0;position:absolute;transform:translate(-50%)}.conn-error{color:#b42318;bottom:calc(var(--space-5) + 3.2rem);white-space:normal;text-align:center;max-width:min(90%,28rem)}.chat{border-radius:var(--radius-2xl);flex-direction:column;min-height:0;display:flex;overflow:hidden}.chat-head{align-items:center;gap:var(--space-4);padding:var(--space-5) var(--space-6);border-bottom:.5px solid var(--separator);display:flex}.chat-title{flex:1;min-width:0}.mic-toggle{border:.5px solid var(--separator);border-radius:var(--radius-capsule);font:inherit;font-size:var(--text-footnote);color:var(--label-secondary);cursor:pointer;background:0 0;flex:none;margin-left:auto;padding:.4rem .75rem}.mic-toggle:disabled{opacity:.45;cursor:not-allowed}.mic-toggle--on{color:var(--brand,#0a7a5a);border-color:color-mix(in srgb, var(--brand,#0a7a5a) 40%, transparent);background:color-mix(in srgb, var(--brand,#0a7a5a) 12%, transparent)}.chat-avatar{width:44px;height:44px;box-shadow:0 0 0 2px var(--brand-soft);background:#000;border-radius:50%;flex:none;overflow:hidden}.chat-avatar img{object-fit:cover;object-position:50% 30%;width:100%;height:100%;transform:scale(1.35)}.chat-title h1{font-size:var(--text-headline);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-normal);line-height:var(--leading-snug);margin:0}.status{align-items:center;gap:var(--space-2);font-size:var(--text-footnote);letter-spacing:var(--tracking-wide);color:var(--label-secondary);margin:0;display:flex}.status-dot{background:var(--green);border-radius:50%;width:7px;height:7px}.status--thinking .status-dot,.status--speaking .status-dot,.status--listening .status-dot{background:var(--brand-ink);animation:pulse 1.1s var(--ease-in-out) infinite}.messages{overscroll-behavior:contain;gap:var(--space-3);min-height:0;padding:var(--space-6) var(--space-5);scrollbar-width:thin;flex-direction:column;flex:1;display:flex;overflow-y:auto}.msg{display:flex}.msg--user{justify-content:flex-end}.bubble{max-width:82%;padding:var(--space-3) var(--space-5);font-size:var(--text-callout);line-height:var(--leading-relaxed);white-space:pre-wrap;overflow-wrap:anywhere;border-radius:20px}.msg--assistant .bubble{background:var(--bubble-bot);color:var(--label);border-bottom-left-radius:6px}.msg--user .bubble{background:var(--brand-fill);color:#fff;border-bottom-right-radius:6px}.caret{vertical-align:-.15em;background:var(--brand-ink);border-radius:1px;width:2px;height:1.05em;margin-left:2px;animation:.9s step-end infinite blink;display:inline-block}.bubble--typing{padding:var(--space-4) var(--space-5);gap:5px;display:flex}.bubble--typing span{background:var(--label-tertiary);width:7px;height:7px;animation:dot 1.2s var(--ease-in-out) infinite;border-radius:50%}.bubble--typing span:nth-child(2){animation-delay:.15s}.bubble--typing span:nth-child(3){animation-delay:.3s}.voice-hint{padding:var(--space-8) var(--space-4);text-align:center;font-size:var(--text-subhead);line-height:var(--leading-relaxed);color:var(--label-secondary);margin:auto 0}.footnote{padding:var(--space-3) var(--space-6) var(--space-5);font-size:var(--text-caption-2);letter-spacing:var(--tracking-wide);line-height:var(--leading-normal);color:var(--label-secondary);text-align:center;margin:0}:focus-visible{outline:3px solid color-mix(in srgb, var(--brand-ink) 60%, transparent);outline-offset:2px}@media (width<=860px){.app{gap:var(--space-3);padding:0 16px max(16px, env(safe-area-inset-bottom));grid-template-rows:minmax(240px,40dvh) minmax(0,1fr);grid-template-columns:1fr}.brand{top:max(var(--space-4), env(safe-area-inset-top));left:0}.brand-mark{font-size:var(--text-headline)}.stage-hint{display:none}.chat{border-radius:var(--radius-xl)}}@keyframes pulse{50%{opacity:.35}}@keyframes blink{50%{opacity:0}}@keyframes dot{0%,60%,to{opacity:.5;transform:translateY(0)}30%{opacity:1;transform:translateY(-4px)}}
