:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#fff7ed;background:#120b08;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{min-height:100vh;background:radial-gradient(circle at 50% -8%,rgba(251,191,36,.28),transparent 32rem),radial-gradient(circle at 100% 24%,rgba(239,68,68,.16),transparent 26rem),radial-gradient(circle at 0 100%,rgba(20,184,166,.16),transparent 26rem),linear-gradient(180deg,#1f130d,#080604)}button,input{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed}.auth-shell{min-height:100dvh;display:grid;place-items:center;padding:22px}.auth-card{width:min(100%,430px);display:grid;gap:16px;border:1px solid rgba(251,191,36,.18);border-radius:34px;padding:24px;background:#080604a8;box-shadow:0 24px 90px #00000075,inset 0 1px #ffffff1f;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.auth-card h1{max-width:none}.auth-field{display:grid;gap:8px;color:#f7d7b0;font-weight:850}.auth-field input{width:100%;border:1px solid rgba(251,191,36,.28);border-radius:18px;padding:15px 16px;color:#fff7ed;background:#ffffff14;outline:none}.auth-field input:focus{border-color:#fbbf24;box-shadow:0 0 0 3px #fbbf2429}.shell{width:min(100%,520px);min-height:100dvh;margin:0 auto;padding:max(16px,env(safe-area-inset-top)) 14px max(20px,env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:12px}.hero-copy{display:grid;gap:8px;padding:4px 4px 0}.compact-hero{text-align:center}.compact-hero h1{margin-inline:auto;max-width:13ch;font-size:clamp(32px,9vw,54px)}.eyebrow{margin:0;color:#fbbf24;text-transform:uppercase;letter-spacing:.16em;font-size:11px;font-weight:900}h1{margin:0;max-width:11ch;font-size:clamp(38px,11vw,66px);line-height:.86;letter-spacing:-.065em}.lede{margin:0;color:#f7d7b0;line-height:1.38;font-size:15px}h2{margin:0 0 8px;font-size:16px}.meta-row{display:flex;gap:8px;flex-wrap:wrap}.pill{border:1px solid rgba(251,191,36,.24);border-radius:999px;padding:8px 11px;color:#ffe8bd;background:#fbbf2414;font-size:12px;white-space:nowrap;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.picker-shell,.shell{--character-accent: #f59e0b;--character-bg: radial-gradient(circle at 50% 16%, rgba(251,191,36,.32), transparent 24rem), linear-gradient(180deg, #24130a, #080604)}.picker-shell{width:100%;min-height:100dvh;padding:max(18px,env(safe-area-inset-top)) 0 max(20px,env(safe-area-inset-bottom));background:var(--character-bg);overflow:hidden}.picker-stage{min-height:calc(100dvh - max(18px,env(safe-area-inset-top)) - max(20px,env(safe-area-inset-bottom)));display:grid;grid-template-rows:auto 1fr auto;gap:10px}.picker-copy{width:min(100%,560px);margin:0 auto;padding:0 18px;display:grid;gap:8px;text-align:center}.picker-copy h1{max-width:none;color:#fff7ed;margin-inline:auto}.route-notice{margin:0;border:1px solid rgba(251,191,36,.26);border-radius:16px;padding:10px 12px;color:#fde68a;background:#0000002e}.picker-rail-wrap{position:relative;min-width:0;display:grid;align-items:center}.character-rail{display:grid;grid-auto-flow:column;grid-auto-columns:min(78vw,400px);gap:16px;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scroll-padding-inline:calc((100vw - min(78vw,400px))/2);padding:8px calc((100vw - min(78vw,400px))/2) 18px;scrollbar-width:none;touch-action:pan-x}.character-rail::-webkit-scrollbar{display:none}.character-card{position:relative;min-height:min(58dvh,540px);border:1px solid rgba(255,255,255,.14);border-radius:38px;overflow:hidden;scroll-snap-align:center;background:var(--card-bg);box-shadow:0 24px 80px #0000006b,inset 0 1px #ffffff24;isolation:isolate;transform:scale(.94);opacity:.66;transition:transform .22s ease,opacity .22s ease,border-color .22s ease;-webkit-user-select:none;user-select:none}.character-card.selected{transform:scale(1);opacity:1;border-color:color-mix(in srgb,var(--card-accent) 62%,white 10%)}.character-card-glow{position:absolute;inset:12% 9% auto;height:56%;border-radius:999px;background:var(--card-accent);filter:blur(76px);opacity:.34;z-index:-1}.character-card-portrait{display:block;width:min(92%,420px);aspect-ratio:1;height:auto;margin:24px auto 0;border-radius:32px;object-fit:cover;box-shadow:0 24px 70px #0000005c,0 0 0 1px #ffffff21;background:#0000002e}.character-card-copy{position:absolute;left:16px;right:16px;bottom:16px;border:1px solid rgba(255,255,255,.14);border-radius:24px;padding:14px;background:#060504a3;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.character-card-copy h2{margin:0 0 8px;color:#fff7ed;font-size:34px;line-height:.9;letter-spacing:-.06em}.character-card-copy p{margin:0;color:#f7d7b0;line-height:1.35;font-size:14px}.picker-arrow{position:absolute;z-index:3;top:50%;width:46px;height:76px;border:1px solid rgba(255,255,255,.16);border-radius:999px;color:#fff7ed;background:#00000057;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);font-size:52px;line-height:0;display:none;align-items:center;justify-content:center}.picker-arrow-left{left:18px}.picker-arrow-right{right:18px}.picker-actions{width:min(100%,560px);margin:0 auto;padding:0 18px;display:grid;gap:10px}.picker-error{margin:0 18px}.face-card{position:relative;display:grid;place-items:center;min-height:min(70dvh,610px);border:1px solid rgba(251,191,36,.18);border-radius:38px;overflow:hidden;background:linear-gradient(180deg,#ffffff17,#ffffff06),var(--character-bg),#160d09;box-shadow:0 24px 90px #00000075,inset 0 1px #ffffff1f;isolation:isolate}.face-card:before{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(180deg,rgba(255,255,255,.03) 1px,transparent 1px);background-size:34px 34px;-webkit-mask-image:radial-gradient(circle at 50% 44%,black,transparent 74%);mask-image:radial-gradient(circle at 50% 44%,black,transparent 74%);opacity:.5}.pub-glow{position:absolute;width:calc(260px + var(--audio-level, 0) * 160px);height:calc(260px + var(--audio-level, 0) * 160px);border-radius:999px;background:var(--character-accent);filter:blur(70px);opacity:calc(.2 + var(--audio-level, 0) * .36);animation:breathe 3.2s ease-in-out infinite}.portrait-shell{position:relative;width:min(86vw,430px);aspect-ratio:1;border-radius:34px;overflow:hidden;transform:translateY(-10px);box-shadow:0 28px 70px #0000006b,0 0 0 1px #ffffff21,0 0 0 calc(8px + var(--audio-level, 0) * 18px) color-mix(in srgb,var(--character-accent) calc(10% + var(--audio-level, 0) * 22%),transparent);animation:float 4.4s ease-in-out infinite;background:#2a160e}.klaus-portrait{display:block;width:100%;height:100%;object-fit:cover;transform:scale(1.02);filter:saturate(1.08) contrast(1.04)}.klaus-portrait-frame{animation:portrait-frame-in .12s ease-out}.frame-preload{position:absolute;width:1px;height:1px;overflow:hidden;opacity:0;pointer-events:none}.frame-preload img{width:1px;height:1px}.portrait-vignette{position:absolute;inset:0;z-index:4;background:radial-gradient(circle at 50% 32%,transparent 46%,rgba(0,0,0,.32) 100%),linear-gradient(180deg,transparent 58%,rgba(0,0,0,.46));pointer-events:none}.voice-ring{position:absolute;z-index:5;inset:14px;border-radius:28px;border:2px solid color-mix(in srgb,var(--character-accent) calc(42% + var(--audio-level, 0) * 38%),transparent);box-shadow:0 0 calc(24px + var(--audio-level, 0) * 36px) color-mix(in srgb,var(--character-accent) calc(24% + var(--audio-level, 0) * 26%),transparent);pointer-events:none}.state-badge{position:absolute;z-index:7;left:16px;bottom:16px;display:inline-flex;align-items:center;gap:8px;border:1px solid rgba(255,255,255,.18);border-radius:999px;padding:9px 13px;background:#0c08069e;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);box-shadow:0 14px 40px #00000047}.state-badge:before{content:"";width:9px;height:9px;border-radius:999px;background:var(--character-accent);box-shadow:0 0 18px var(--character-accent)}.state-badge span{color:#fff5df;font-size:15px;font-weight:950;letter-spacing:-.02em}.state-requesting-mic .pub-glow,.state-connecting .pub-glow{opacity:.42;animation-duration:1.3s}.state-listening .pub-glow,.state-speaking .pub-glow{opacity:.62;animation-duration:.92s}.state-speaking .portrait-shell{animation-duration:1.6s}.state-error .pub-glow{background:#fb7185;opacity:.42}.state-error .voice-ring{border-color:#fb7185a6;box-shadow:0 0 38px #fb718540}.state-simulator .pub-glow{background:#22d3ee}.controls{display:flex;flex-direction:column;gap:10px}.connect-primary,.mic-toggle{width:100%;min-height:76px;border:0;border-radius:24px;color:#211006;background:linear-gradient(135deg,#fbbf24,#fb923c 56%,#f97316);box-shadow:0 18px 46px #fb923c40;display:flex;flex-direction:row;align-items:center;justify-content:center;gap:10px;touch-action:manipulation;-webkit-user-select:none;user-select:none}.connect-primary span,.mic-toggle span{font-weight:950;font-size:24px;letter-spacing:-.03em}.mic-icon{width:34px;height:34px;border-radius:999px;display:inline-grid;place-items:center;background:#ffffff57;box-shadow:inset 0 1px #ffffff3d,0 0 calc(10px + var(--local-speech-level, 0) * 38px) #ffffff75}.connect-primary:active,.mic-toggle:active{transform:scale(.99)}.mic-toggle.live{background:linear-gradient(135deg,#34d399,#fbbf24);box-shadow:0 18px 46px rgba(52,211,153,calc(.18 + var(--local-speech-level, 0) * .32))}.mic-toggle.armed{background:linear-gradient(135deg,#67e8f9,#fbbf24)}.mic-toggle.muted{background:linear-gradient(135deg,#f87171,#fb7185);color:#fff7ed}.mic-toggle.muted small{color:#fff7edc7}.connect-primary:disabled,.mic-toggle:disabled{opacity:.52;box-shadow:none}.live-controls{display:grid;grid-template-columns:1fr auto;align-items:stretch}.live-controls .mic-toggle{min-height:74px}.secondary-controls{display:grid;grid-template-columns:1fr;gap:10px}.secondary-controls button,.debug-toggle{border:1px solid rgba(251,191,36,.18);border-radius:18px;color:#fff4dc;background:#ffffff12;padding:13px 10px}.secondary-controls button:disabled{opacity:.5}.status-grid{display:grid;gap:12px}.status-card,.error,.debug-panel,.harness-task-inline{border:1px solid rgba(251,191,36,.14);border-radius:24px;padding:15px;background:#ffffff0e;color:#efd3ad;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.status-card p{margin:0;line-height:1.5}.muted-copy{color:#b99064}.harness-card{display:grid;gap:10px}.harness-task-inline{display:grid;gap:6px;font-size:13px}.harness-task-inline span{color:#ffe9c7}.harness-task{display:grid;gap:6px;border:1px solid rgba(251,191,36,.28);border-radius:14px;padding:10px;background:#fbbf2414;overflow-wrap:anywhere}.harness-task span{color:#ffe9c7;font-size:13px}.harness-task pre{margin:0;max-height:140px;overflow:auto;white-space:pre-wrap;color:#fde68a}.harness-failed{border-color:#fb71856b;background:#fb71851a}.error{border-color:#fb718580;background:#fb71851f;color:#ffd7df;overflow-wrap:anywhere}.debug{margin-top:auto}.debug-toggle{width:100%}.debug-panel{margin-top:10px;max-height:52dvh;overflow:auto}.debug-panel pre{white-space:pre-wrap;overflow-wrap:anywhere;color:#fde68a;background:#00000042;border-radius:12px;padding:10px}.debug-panel ol{padding-left:22px}.debug-panel li{margin-bottom:12px}.transcript{color:#fff}@keyframes breathe{50%{transform:scale(1.13)}}@keyframes float{50%{transform:translateY(-18px) rotate(.5deg)}}@keyframes portrait-frame-in{0%{opacity:.82;transform:scale(1.018)}to{opacity:1;transform:scale(1.02)}}@media(min-width:760px){.shell{padding-top:34px}.status-grid{grid-template-columns:1fr 1fr}.face-card{min-height:600px}.picker-stage{gap:22px}.character-rail{grid-auto-columns:min(48vw,430px);scroll-padding-inline:calc((100vw - min(48vw,430px))/2);padding-inline:calc((100vw - min(48vw,430px))/2)}.picker-arrow{display:flex}}@media(prefers-reduced-motion:reduce){.character-card,.portrait-shell,.pub-glow,.klaus-portrait-frame{animation:none;transition:none}}.call-screen{--character-accent: #f59e0b;--character-bg: radial-gradient(circle at 50% 18%, rgba(251,191,36,.3), transparent 24rem), linear-gradient(180deg, #18100b, #050403);position:relative;min-height:100dvh;width:100%;max-width:480px;margin:0 auto;padding:max(20px,env(safe-area-inset-top)) 20px max(28px,env(safe-area-inset-bottom));display:grid;grid-template-rows:auto minmax(0,1fr) auto auto;gap:14px;color:#fff7ed;background:radial-gradient(circle at 50% 8%,color-mix(in srgb,var(--character-accent) 26%,transparent),transparent 22rem),radial-gradient(circle at 90% 92%,rgba(255,255,255,.05),transparent 18rem),var(--character-bg),#050403;overflow:hidden}.call-identity{display:grid;gap:6px;justify-items:center;text-align:center;padding-top:6px}.call-identity .call-kicker{margin:0;color:color-mix(in srgb,var(--character-accent) 78%,white 22%);text-transform:uppercase;letter-spacing:.22em;font-size:10px;font-weight:900}.call-name{margin:0;max-width:none;color:#fff;font-size:38px;font-weight:350;letter-spacing:0;line-height:1}.call-state-line{margin:4px 0 2px;display:inline-flex;align-items:center;gap:8px;color:#fff7edc7;font-size:15px;font-weight:500;letter-spacing:0}.call-state-dot{width:8px;height:8px;border-radius:999px;background:var(--character-accent);box-shadow:0 0 16px var(--character-accent);animation:call-dot 1.6s ease-in-out infinite}.call-state-dot.error,.state-error .call-state-dot{background:#fb7185;box-shadow:0 0 16px #fb7185b3;animation:none}.state-idle .call-state-dot{animation:none;opacity:.5}.call-mic-chip{display:inline-flex;align-items:center;gap:6px;border:1px solid rgba(255,255,255,.18);border-radius:999px;padding:6px 12px;background:#00000052;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);color:#fff7eddb;font-size:12px;font-weight:600;letter-spacing:0}.call-mic-chip.muted{color:#1a1208;border-color:#ffffffb3;background:#fffffff0}.call-mic-chip.live{color:#fff;border-color:color-mix(in srgb,var(--character-accent) 62%,white 8%);background:color-mix(in srgb,var(--character-accent) 22%,rgba(0,0,0,.32));box-shadow:0 0 22px color-mix(in srgb,var(--character-accent) 28%,transparent)}.call-stage{min-height:0;display:grid;place-items:center;padding:4px 0}.call-stage .face-card{width:100%;height:100%;min-height:0;border:0;border-radius:999px;background:transparent;box-shadow:none;overflow:visible;display:grid;place-items:center}.call-stage .face-card:before{display:none}.call-stage .pub-glow{width:calc(260px + var(--audio-level, 0) * 180px);height:calc(260px + var(--audio-level, 0) * 180px);opacity:calc(.24 + var(--audio-level, 0) * .36)}.call-stage .portrait-shell{width:min(72vw,320px);border-radius:999px;transform:none;background:#18100b;box-shadow:0 28px 82px #00000080,0 0 0 1px #ffffff24,0 0 0 calc(10px + var(--audio-level, 0) * 22px) color-mix(in srgb,var(--character-accent) calc(14% + var(--audio-level, 0) * 26%),transparent),0 0 calc(54px + var(--audio-level, 0) * 80px) color-mix(in srgb,var(--character-accent) calc(28% + var(--audio-level, 0) * 22%),transparent)}.call-stage .klaus-portrait,.call-stage .portrait-vignette{border-radius:999px}.call-stage .voice-ring{inset:-8px;border-radius:999px;border-width:3px}.call-stage .state-badge{display:none}.call-activity{display:grid;gap:8px;justify-items:center;text-align:center;min-height:24px;padding:0 6px}.call-activity-copy{margin:0;color:#fff7edb8;font-size:14px;line-height:1.4;max-width:28ch}.call-error{width:100%;border:1px solid rgba(251,113,133,.45);border-radius:18px;padding:10px 14px;background:#fb718524;color:#ffd7df;font-size:13px;line-height:1.4;overflow-wrap:anywhere;text-align:left}.call-task-pill{display:inline-flex;align-items:center;gap:8px;max-width:100%;border:1px solid rgba(255,255,255,.16);border-radius:999px;padding:7px 12px 7px 10px;background:#00000057;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);color:#fff5df;font-size:12px;font-weight:600;letter-spacing:0;overflow:hidden}.call-task-dot{width:7px;height:7px;border-radius:999px;background:var(--character-accent);box-shadow:0 0 12px var(--character-accent);flex:0 0 auto}.call-task-pill.tone-live .call-task-dot{animation:call-dot 1.2s ease-in-out infinite}.call-task-pill.tone-error{border-color:#fb718573;background:#fb718529;color:#ffd7df}.call-task-pill.tone-error .call-task-dot{background:#fb7185;box-shadow:0 0 12px #fb7185cc;animation:none}.call-task-pill.tone-done .call-task-dot{background:#6ee7b7;box-shadow:0 0 12px #6ee7b799;animation:none}.call-task-label{font-weight:800;flex:0 0 auto}.call-task-detail{display:inline-block;min-width:0;max-width:22ch;font-weight:500;color:#fff7edbd;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.call-dock{display:flex;justify-content:center;align-items:flex-end;gap:56px;padding:6px 6px 0}.call-dock-slot{display:grid;justify-items:center;gap:8px}.call-dock-label{color:#fff7edd1;font-size:13px;font-weight:600;letter-spacing:0}.call-control{position:relative;width:76px;height:76px;border-radius:999px;border:0;padding:0;display:grid;place-items:center;color:#fff;background:#ffffff24;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);box-shadow:inset 0 1px #ffffff29;touch-action:manipulation;transition:background .15s ease,transform .1s ease,box-shadow .15s ease,color .15s ease}.call-control:active{transform:scale(.95)}.call-control:disabled{opacity:.45;cursor:not-allowed}.call-control:focus-visible{outline:2px solid #fff;outline-offset:3px}.control-icon{width:30px;height:30px;display:block}.call-control-ring{position:absolute;inset:-4px;border-radius:999px;pointer-events:none;border:2px solid transparent;transition:border-color .15s ease}.mic-control.idle{opacity:.6}.mic-control.armed{background:#ffffff29}.mic-control.live{background:#ffffff38;box-shadow:inset 0 1px #ffffff2e,0 0 calc(8px + var(--local-speech-level, 0) * 36px) color-mix(in srgb,var(--character-accent) calc(22% + var(--local-speech-level, 0) * 42%),transparent)}.mic-control.live .call-control-ring{border-color:color-mix(in srgb,var(--character-accent) calc(38% + var(--local-speech-level, 0) * 42%),transparent)}.mic-control.muted{background:#fff;color:#18100b;box-shadow:0 12px 30px #00000052,inset 0 1px #ffffff80}.end-control{background:linear-gradient(160deg,#ef4444,#dc2626 58%,#991b1b);box-shadow:0 16px 40px #dc26266b,inset 0 1px #ffffff2e}.end-control .control-icon{transform:rotate(135deg)}@keyframes call-dot{0%,to{opacity:1;transform:scale(1)}50%{opacity:.42;transform:scale(.78)}}@media(min-width:760px){.call-screen{max-width:420px;min-height:min(880px,calc(100dvh - 48px));margin:max(24px,env(safe-area-inset-top)) auto max(28px,env(safe-area-inset-bottom));border-radius:44px;box-shadow:0 30px 90px #00000080,inset 0 1px #ffffff14}}@media(max-height:720px){.call-screen{gap:10px;padding-top:max(14px,env(safe-area-inset-top));padding-bottom:max(18px,env(safe-area-inset-bottom))}.call-identity{gap:4px}.call-name{font-size:32px}.call-state-line{font-size:14px}.call-stage .portrait-shell{width:min(58vw,240px)}.call-stage .pub-glow{width:calc(200px + var(--audio-level, 0) * 130px);height:calc(200px + var(--audio-level, 0) * 130px)}.call-control{width:64px;height:64px}.control-icon{width:26px;height:26px}.call-dock{gap:40px}.call-activity-copy{font-size:13px}}@media(prefers-reduced-motion:reduce){.call-state-dot,.call-task-pill .call-task-dot,.call-control{animation:none;transition:none}}
