:root{--bg-0:#070b14;--bg-1:#0d1526;--bg-2:#141d31;--surface:#0f17289e;--surface-strong:#111a2ce6;--surface-hover:#ffffff0f;--line:#ffffff17;--line-strong:#ffffff2e;--text:#eef2f8;--text-dim:#aeb9cc;--text-faint:#8291a8;--amber:#f6b84b;--amber-soft:#f6b84b29;--amber-ink:#231602;--teal:#38d6c4;--teal-soft:#38d6c429;--rose:#f3788b;--user-bubble:#23324f;--radius-l:22px;--radius-m:14px;--radius-s:10px;--shadow:0 24px 64px #00000073;--shadow-soft:0 8px 24px #0000004d;--blur:blur(18px) saturate(1.2);--font:"Plus Jakarta Sans", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--gutter:16px;--tap:44px;--ease:cubic-bezier(.22, 1, .36, 1);--teal-ink:#04201d;--teal-text:var(--teal);--teal-line:#38d6c459;--amber-text:var(--amber);--amber-line:#f6b84b73;--amber-hover:#ffc766;--warn:#f2c27b;--idle-dot:#7c8db0;--wash-03:#ffffff08;--wash-05:#ffffff0d;--wash-06:#ffffff0f;--wash-08:#ffffff14;--wash-10:#ffffff1a;--panel-bg:linear-gradient(180deg, #111a2cc7, #0a101ee6);--stage-bg:radial-gradient(circle at 50% 45%, #1a2744 0%, #0e1729 48%, #070b14 100%);--vignette:radial-gradient(ellipse 85% 75% at 50% 45%, transparent 55%, #03060c8c 100%);--loading-bg:radial-gradient(ellipse at 50% 40%, #16223b, var(--bg-0) 70%);--overlay-dim:#05080f61;--title-grad:linear-gradient(92deg, #fff 30%, #ffd896);--brand-glow:#f0812c59;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root[data-theme=light]{--bg-0:#f3eee8;--bg-1:#fff;--bg-2:#f6f1eb;--surface:#ffffffb3;--surface-strong:#fffcf8f2;--surface-hover:#2a20180f;--line:#2a20181a;--line-strong:#2a20182e;--text:#2a2420;--text-dim:#5d544c;--text-faint:#8a7f75;--amber-soft:#f0812c1f;--amber-text:#9a5208;--amber-line:#c86e1466;--teal-soft:#0e968c1f;--teal-text:#0b6f69;--teal-line:#0e968c66;--user-bubble:#f0ddc8;--warn:#9a5208;--idle-dot:#b8a898;--wash-03:#2a201806;--wash-05:#2a20180a;--wash-06:#ffffffd9;--wash-08:#2a201814;--wash-10:#2a201814;--panel-bg:linear-gradient(180deg, #fffdfad1, #faf5efeb);--stage-bg:radial-gradient(circle at 50% 45%, #f3eee8 0%, #efe5d9 100%);--vignette:none;--loading-bg:radial-gradient(ellipse at 50% 40%, #fbf7f2, #efe5d9 70%);--overlay-dim:#f3eee859;--title-grad:linear-gradient(92deg, #2a2420 35%, #c2621a);--shadow:0 24px 64px #50371e2e;--shadow-soft:0 8px 24px #50371e24;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*,:before,:after{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg-0);color:var(--text);font-family:var(--font);-webkit-font-smoothing:antialiased;font-size:15px;line-height:1.5;overflow:hidden}button,input,textarea,select{font:inherit;color:inherit}button{cursor:pointer}:focus-visible{outline:2px solid var(--teal);outline-offset:2px}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.app{--panel-w:clamp(340px, 38vw, 480px);grid-template-columns:minmax(0, 1fr) var(--panel-w);background:var(--bg-0);display:grid;position:fixed;inset:0}.stage-wrap{background:var(--stage-bg);min-width:0;position:relative;overflow:hidden}.stage{touch-action:pan-y;position:absolute;inset:0}.stage canvas{display:block}.stage-vignette{pointer-events:none;background:var(--vignette);position:absolute;inset:0}.no-stage{padding:72px var(--gutter) var(--gutter);text-align:center;color:var(--text-dim);flex-direction:column;justify-content:center;align-items:center;gap:14px;display:flex;position:absolute;inset:0}.no-stage p{max-width:34ch;margin:0}.app-header{top:0;left:0;right:var(--panel-w);z-index:50;pointer-events:none;justify-content:space-between;align-items:center;gap:12px;padding:16px 20px;display:flex;position:fixed}.app-header>*{pointer-events:auto}.brand{align-items:center;gap:10px;display:flex}.brand-mark{width:36px;height:36px;filter:drop-shadow(0 4px 10px var(--brand-glow));border-radius:50%;place-items:center;display:inline-grid}.brand-mark.big{width:64px;height:64px}.brand-text{flex-direction:column;line-height:1.15;display:flex}.brand-text strong{letter-spacing:-.01em;font-size:16px;font-weight:800}.brand-text span{color:var(--text-dim);font-size:12.5px}.header-actions{align-items:center;gap:8px;display:flex}.lang-toggle,.segmented{background:var(--surface);border:1px solid var(--line-strong);-webkit-backdrop-filter:var(--blur);border-radius:999px;gap:2px;padding:3px;display:inline-flex}.lang-toggle button,.segmented button{min-width:44px;min-height:38px;color:var(--text-dim);letter-spacing:.02em;background:0 0;border:0;border-radius:999px;padding:0 12px;font-size:13.5px;font-weight:700;transition:background .2s,color .2s}.lang-toggle button.on,.segmented button.on{background:var(--text);color:var(--bg-1)}.segmented{width:100%}.segmented button{flex:1;font-weight:600}.icon-btn{width:var(--tap);height:var(--tap);border:1px solid var(--line-strong);background:var(--surface);color:var(--text);-webkit-backdrop-filter:var(--blur);border-radius:999px;flex:none;place-items:center;transition:background .2s,transform .15s;display:inline-grid}.icon-btn:hover:not(:disabled){background:var(--wash-10)}.icon-btn:active:not(:disabled){transform:scale(.96)}.icon-btn:disabled{opacity:.4;cursor:default}.chat-panel{z-index:25;background:var(--panel-bg);border-left:1px solid var(--line);min-height:0;-webkit-backdrop-filter:var(--blur);flex-direction:column;display:flex;position:relative}.sheet-handle{display:none}.chat-head{justify-content:space-between;align-items:center;gap:12px;padding:22px 20px 12px;display:flex}.chat-head h2{letter-spacing:-.01em;margin:0;font-size:17px;font-weight:700}.status-pill{color:var(--text-dim);background:var(--wash-05);border:1px solid var(--line);white-space:nowrap;border-radius:999px;align-items:center;gap:8px;padding:6px 12px;font-size:13px;font-weight:600;display:inline-flex}.status-pill .dot{background:var(--idle-dot);border-radius:50%;width:8px;height:8px}.status-listening{color:var(--teal-text);border-color:var(--teal-line);background:var(--teal-soft)}.status-listening .dot{background:var(--teal);animation:1.1s ease-in-out infinite pulse}.status-thinking{color:var(--amber-text);border-color:var(--amber-line);background:var(--amber-soft)}.status-thinking .dot{background:var(--amber);animation:.9s ease-in-out infinite pulse}.status-speaking{color:var(--amber-text);border-color:var(--amber-line);background:var(--amber-soft)}.status-speaking .dot{background:var(--amber)}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.35;transform:scale(.7)}}.messages{scrollbar-width:thin;scrollbar-color:var(--line-strong) transparent;flex-direction:column;flex:1;gap:10px;min-height:0;padding:8px 20px 12px;display:flex;overflow-y:auto}.messages-empty{text-align:center;color:var(--text-faint);margin:auto 0;font-size:14px}.msg{max-width:88%;animation:rise .28s var(--ease);display:flex}.msg p{overflow-wrap:anywhere;white-space:pre-wrap;border-radius:18px;margin:0;padding:10px 14px;font-size:15px}.msg-user{align-self:flex-end}.msg-user p{background:var(--user-bubble);border-bottom-right-radius:6px}.msg-orka{align-self:flex-start}.msg-orka p{background:var(--wash-06);border:1px solid var(--line);border-bottom-left-radius:6px}.msg-note{color:var(--text-faint);font-size:13px}@keyframes rise{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.typing{background:var(--wash-06);border:1px solid var(--line);border-radius:18px 18px 18px 6px;gap:5px;padding:14px 16px;display:inline-flex}.typing i{background:var(--text-dim);border-radius:50%;width:7px;height:7px;animation:1s ease-in-out infinite bob}.typing i:nth-child(2){animation-delay:.15s}.typing i:nth-child(3){animation-delay:.3s}@keyframes bob{0%,60%,to{opacity:.5;transform:translateY(0)}30%{opacity:1;transform:translateY(-4px)}}.chips{flex-wrap:wrap;gap:8px;padding:6px 20px 10px;display:flex}.chip{min-height:var(--tap);border:1px solid var(--line-strong);background:var(--wash-03);color:var(--text);white-space:nowrap;border-radius:999px;padding:0 16px;font-size:14px;font-weight:500;transition:background .2s,border-color .2s,transform .15s}.chip:hover:not(:disabled){background:var(--amber-soft);border-color:var(--amber-line)}.chip:active:not(:disabled){transform:scale(.97)}.chip:disabled{opacity:.45;cursor:default}.composer{border-top:1px solid var(--line);align-items:flex-end;gap:8px;padding:12px 16px 16px;display:flex}.composer textarea{min-width:0;min-height:var(--tap);resize:none;border:1px solid var(--line-strong);background:var(--wash-05);border-radius:22px;flex:1;max-height:120px;padding:11px 16px;line-height:1.4}.composer textarea::placeholder{color:var(--text-faint)}.composer textarea:focus{border-color:var(--teal);box-shadow:0 0 0 3px var(--teal-soft);outline:none}.send-btn{background:var(--amber);color:var(--amber-ink);border-color:#0000}.send-btn:hover:not(:disabled){background:var(--amber-hover)}.stop-btn{background:var(--rose);color:#2a070d;border-color:#0000}.mic-btn.live{background:var(--teal);color:var(--teal-ink);border-color:#0000;animation:1.3s ease-out infinite mic-pulse;box-shadow:0 0 #38d6c499}@keyframes mic-pulse{0%{box-shadow:0 0 #38d6c48c}to{box-shadow:0 0 0 14px #38d6c400}}.mic-btn{touch-action:none;-webkit-user-select:none;user-select:none}.bubble-anchor{z-index:5;pointer-events:none;will-change:transform;position:absolute;top:0;left:0}.bubble-anchor .speech-bubble{position:absolute;bottom:0;left:0;transform:translate(-50%)}.bubble-anchor.bottom .speech-bubble{background:#f8fafde6;max-width:calc(100vw - 32px)}.bubble-anchor.bottom .speech-bubble:after{display:none}.speech-bubble{color:#0d1526;text-align:center;width:max-content;max-width:min(320px,62vw);animation:pop .25s var(--ease);background:#f8fafdf2;border-radius:16px;padding:10px 15px;font-size:15px;font-weight:600;line-height:1.4;position:relative;box-shadow:0 12px 34px #00000059}.speech-bubble:after{content:"";background:inherit;border-radius:0 0 4px;width:14px;height:14px;margin-left:-7px;position:absolute;bottom:-7px;left:50%;transform:rotate(45deg)}@keyframes pop{0%{opacity:0;transform:translate(-50%,6px)scale(.96)}to{opacity:1;transform:translate(-50%)}}.start-overlay{z-index:40;padding:var(--gutter);background:var(--overlay-dim);-webkit-backdrop-filter:blur(9px);place-items:center;animation:.4s fade;display:grid;position:fixed;inset:0}.start-card{text-align:center;background:var(--surface-strong);border:1px solid var(--line-strong);width:min(440px,100%);box-shadow:var(--shadow);border-radius:28px;padding:34px 30px 26px}.eyebrow{color:var(--amber-text);align-items:center;gap:6px;margin:0;font-size:13.5px;font-weight:600;display:inline-flex}.start-card h1{letter-spacing:-.025em;background:var(--title-grad);color:#0000;-webkit-background-clip:text;background-clip:text;margin:8px 0 10px;font-size:clamp(30px,7vw,42px);font-weight:800;line-height:1.08}.start-body{max-width:34ch;color:var(--text-dim);margin:0 auto 24px;font-size:15.5px}.start-note{color:var(--text-faint);margin:16px 0 0;font-size:13px}.primary-btn{letter-spacing:.01em;background:linear-gradient(135deg, #ffc65e, var(--amber) 45%, #ee9437);min-height:52px;color:var(--amber-ink);border:0;border-radius:999px;padding:0 30px;font-size:16px;font-weight:800;transition:transform .15s,box-shadow .2s;box-shadow:0 10px 30px #f6b84b52}.primary-btn:hover{transform:translateY(-1px);box-shadow:0 14px 36px #f6b84b6b}.primary-btn.small{min-height:40px;box-shadow:none;padding:0 18px;font-size:14px}.loading-screen{z-index:60;background:var(--loading-bg);color:var(--text-dim);text-align:center;padding:var(--gutter);flex-direction:column;justify-content:center;align-items:center;gap:14px;display:flex;position:fixed;inset:0}.loading-screen p{margin:0}.loading-screen .bar{background:var(--wash-08);border-radius:99px;width:min(260px,70vw);height:6px;overflow:hidden}.loading-screen .bar span{border-radius:inherit;background:linear-gradient(90deg, var(--amber), var(--teal));height:100%;transition:width .3s;display:block}.loading-screen .pct{font-variant-numeric:tabular-nums;color:var(--text-faint);font-size:13px}.loading-error{color:var(--rose);max-width:36ch}@keyframes fade{0%{opacity:0}to{opacity:1}}.coach-layer{z-index:70;pointer-events:none;position:fixed;inset:0}.coach-ring{border:2px solid var(--teal);transition:all .3s var(--ease);border-radius:20px;position:fixed;box-shadow:0 0 0 9999px #03060c80,0 0 24px #38d6c480}.coach-card{pointer-events:auto;background:var(--surface-strong);border:1px solid var(--line-strong);width:280px;box-shadow:var(--shadow);animation:rise .3s var(--ease);border-radius:18px;padding:16px;position:fixed}.coach-card p{margin:0 0 12px;font-size:15px}.coach-actions{align-items:center;gap:8px;display:flex}.coach-step{color:var(--text-faint);margin-right:auto;font-size:13px}.text-btn{min-height:40px;color:var(--text-dim);background:0 0;border:0;padding:0 10px;font-weight:600}.drawer-backdrop{z-index:80;background:#02040980;animation:.2s fade;position:fixed;inset:0}.drawer{background:var(--surface-strong);border-left:1px solid var(--line-strong);width:min(400px,100vw);-webkit-backdrop-filter:var(--blur);box-shadow:var(--shadow);animation:slide .3s var(--ease);padding:20px 20px 28px;position:absolute;top:0;bottom:0;right:0;overflow-y:auto}@keyframes slide{0%{opacity:0;transform:translate(24px)}to{opacity:1;transform:none}}.drawer-head{justify-content:space-between;align-items:center;margin-bottom:14px;display:flex}.drawer-head h2{margin:0;font-size:19px;font-weight:800}.field{border-bottom:1px solid var(--line);flex-direction:column;gap:8px;padding:12px 0;display:flex}.field label,.field .label{justify-content:space-between;font-size:14px;font-weight:600;display:flex}.field output{color:var(--amber);font-variant-numeric:tabular-nums}.field select{min-height:var(--tap);border:1px solid var(--line-strong);background:var(--wash-05);border-radius:12px;padding:0 12px}.field select option{background:var(--bg-1)}.field input[type=range]{accent-color:var(--amber);min-height:32px}.hint{color:var(--text-faint);margin:0;font-size:13px}.switch-row{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;min-height:52px;font-size:14px;font-weight:600;display:flex}.switch-row input{width:22px;height:22px;accent-color:var(--teal)}.drawer-actions{flex-wrap:wrap;gap:10px;padding:18px 0 12px;display:flex}.ghost-btn{min-height:var(--tap);border:1px solid var(--line-strong);background:0 0;border-radius:999px;padding:0 16px;font-weight:600}.ghost-btn:hover{background:var(--surface-hover)}.ghost-btn.danger{color:var(--rose);border-color:#f3788b66}.privacy{padding-top:4px}.about{border-top:1px solid var(--line);flex-direction:column;gap:4px;margin-top:18px;padding-top:14px;display:flex}.about h3{margin:0 0 2px;font-size:14px;font-weight:700}.about a{color:var(--teal-text);text-underline-offset:2px;font-weight:600}.about a:focus-visible{outline:2px solid var(--teal);outline-offset:2px;border-radius:4px}.chat-title{flex-direction:column;gap:2px;min-width:0;display:flex}.engine-badge{color:var(--text-faint);flex-direction:column;gap:4px;font-size:12.5px;display:flex}.engine-name:before{content:"";background:var(--teal);vertical-align:1px;border-radius:50%;width:6px;height:6px;margin-right:6px;display:inline-block}.engine-dl{color:var(--amber);font-variant-numeric:tabular-nums;padding-bottom:5px;display:block;position:relative}.engine-dl i{background:linear-gradient(90deg, var(--amber), var(--teal));border-radius:3px;height:3px;transition:width .3s;position:absolute;bottom:0;left:0}.modal-backdrop{z-index:85;padding:var(--gutter);background:#0204098c;place-items:center;animation:.2s fade;display:grid;position:fixed;inset:0}.consent-card{text-align:left}.consent-card h2{letter-spacing:-.01em;margin:0 0 10px;font-size:22px;font-weight:800}.consent-card .start-body{max-width:none;margin:0 0 10px}.consent-actions{flex-wrap:wrap;justify-content:flex-end;gap:10px;margin-top:18px;display:flex}.row-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.row-actions input{flex:1;min-width:0}.field input[type=text],.field input[type=password]{min-height:var(--tap);border:1px solid var(--line-strong);background:var(--wash-05);border-radius:12px;padding:0 12px}.field input:focus{border-color:var(--teal);box-shadow:0 0 0 3px var(--teal-soft);outline:none}.hint.warn{color:var(--warn)}.segmented button{white-space:normal;padding:6px 10px;line-height:1.2}.toast-region{z-index:90;pointer-events:none;padding:0 var(--gutter);justify-content:center;display:flex;position:fixed;bottom:96px;left:0;right:0}.toast{color:#0d1526;max-width:420px;box-shadow:var(--shadow-soft);animation:rise .25s var(--ease);background:#f8fafdf5;border-radius:14px;padding:12px 18px;font-size:14px;font-weight:600}@media (max-width:860px){.app{display:block}.stage-wrap{height:58dvh;position:fixed;top:0;left:0;right:0}.app-header{padding:12px var(--gutter);right:0}.brand-text span{display:none}.chat-panel{border-left:0;border-top:1px solid var(--line-strong);height:44dvh;transition:height .35s var(--ease);padding-bottom:env(safe-area-inset-bottom);border-radius:24px 24px 0 0;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -16px 40px #00000059}.chat-panel.open{height:88dvh}.sheet-handle{width:100%;height:30px;color:var(--text-faint);touch-action:none;background:0 0;border:0;flex-direction:column;flex:none;justify-content:center;align-items:center;gap:2px;display:flex}.sheet-handle .grip{background:var(--line-strong);border-radius:4px;width:40px;height:4px}.sheet-handle svg{height:14px;transition:transform .3s}.chat-panel.open .sheet-handle svg{transform:rotate(180deg)}.chat-head{padding:0 var(--gutter) 6px}.messages{padding:4px var(--gutter) 8px}.chips{padding:4px var(--gutter) 8px;scrollbar-width:none;flex-wrap:nowrap;overflow-x:auto}.chips::-webkit-scrollbar{display:none}.composer{padding:10px var(--gutter) 12px}.toast-region{bottom:calc(44dvh + 12px)}.speech-bubble{max-width:70vw;font-size:14px}}.app[data-reduced=true] *,.app[data-reduced=true] :before,.app[data-reduced=true] :after{transition:none!important;animation:none!important}.dev-model-note{z-index:5;background:var(--warn-bg,#fff4d6);color:var(--warn-ink,#6b4a00);pointer-events:none;border-radius:8px;padding:4px 10px;font:600 12px/1.4 system-ui,sans-serif;position:absolute;bottom:12px;left:12px}
