: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{font:inherit;cursor:pointer}button:disabled{cursor:not-allowed}.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}}
