:root{--bg: #05070c;--bg-raised: #0b1018;--fg: #dff3ff;--muted: #5d7a90;--grid: #101a26;--idle: #1f6b7d;--listening: #00e5ff;--thinking: #ff2e97;--speaking: #7cff6b;--error: #ff3b3b;--font-ui: ui-monospace, "Cascadia Mono", "SF Mono", Consolas, monospace;--pad-top: max(1.5rem, env(safe-area-inset-top));--pad-right: max(1.5rem, env(safe-area-inset-right));--pad-bottom: max(1.5rem, env(safe-area-inset-bottom));--pad-left: max(1.5rem, env(safe-area-inset-left))}*{box-sizing:border-box}html{overscroll-behavior:none}body{margin:0;background:var(--bg);color:var(--fg);font-family:var(--font-ui);-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none;background-image:linear-gradient(var(--grid) 1px,transparent 1px),linear-gradient(90deg,var(--grid) 1px,transparent 1px);background-size:2.5rem 2.5rem;mask-image:linear-gradient(to top,rgba(0,0,0,.55),transparent 65%);-webkit-mask-image:linear-gradient(to top,rgba(0,0,0,.55),transparent 65%)}body:after{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;pointer-events:none;background:repeating-linear-gradient(to bottom,rgba(0,0,0,.22) 0 1px,transparent 1px 3px);opacity:.4}.igor,.gate,.fatal,.settings{position:relative;z-index:1}input,textarea{-webkit-user-select:text;user-select:text}.igor,.gate,.fatal{min-height:100vh;min-height:100dvh;padding:var(--pad-top) var(--pad-right) var(--pad-bottom) var(--pad-left);display:flex;flex-direction:column}.igor{align-items:center;justify-content:center;gap:clamp(.75rem,2.5vmin,1.5rem);text-align:center}.readout{display:flex;flex-direction:column;align-items:center;gap:clamp(.4rem,1.5vmin,.9rem);min-width:0}.orb{--tint: var(--idle);--spin: 42s;--voice: 0;width:clamp(4.5rem,22vmin,11rem);aspect-ratio:1;flex-shrink:0;perspective:62rem}.orb-stage{width:100%;height:100%;position:relative;transform-style:preserve-3d;transform:rotateX(-23.5deg)}.orb-ring{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;border:1px solid var(--tint);transform-style:preserve-3d;transition:border-color .5s ease,opacity .5s ease,box-shadow .5s ease;box-shadow:0 0 .7rem color-mix(in srgb,var(--tint) 55%,transparent),inset 0 0 .7rem color-mix(in srgb,var(--tint) 35%,transparent)}.orb-ring--equator{animation:spin-equator var(--spin) linear infinite}.orb-ring--meridian{opacity:.75;animation:spin-meridian calc(var(--spin) * 1.6) linear infinite}.orb-ring--colure{opacity:.5;animation:spin-colure calc(var(--spin) * 2.3) linear infinite reverse}.orb-core{position:absolute;top:38%;right:38%;bottom:38%;left:38%;border-radius:50%;background:var(--tint);opacity:.85;transition:background .5s ease,opacity .4s ease,transform .22s ease;box-shadow:0 0 1.6rem color-mix(in srgb,var(--tint) 80%,transparent),0 0 4rem color-mix(in srgb,var(--tint) 40%,transparent)}@keyframes spin-equator{0%{transform:rotateY(0) rotateX(78deg)}to{transform:rotateY(360deg) rotateX(78deg)}}@keyframes spin-meridian{0%{transform:rotateX(0) rotateY(66deg)}to{transform:rotateX(360deg) rotateY(66deg)}}@keyframes spin-colure{0%{transform:rotate(0) rotateX(34deg)}to{transform:rotate(360deg) rotateX(34deg)}}.igor--listening .orb{--tint: var(--listening);--spin: 26s}.igor--listening .orb-stage{transform:rotateX(-23.5deg) scale(calc(1 + var(--voice) * .09));transition:transform 90ms ease-out}.igor--listening .orb-core{transform:scale(calc(.7 + var(--voice) * .55));opacity:calc(.55 + var(--voice) * .45)}.igor--thinking .orb{--tint: var(--thinking);--spin: 9s}.igor--thinking .orb-core{animation:core-work 1.9s ease-in-out infinite}.igor--speaking .orb{--tint: var(--speaking);--spin: 34s}.igor--speaking .orb-core{animation:core-speak 2.6s ease-in-out infinite}.igor--error .orb{--tint: var(--error)}.igor--error .orb-ring{animation-play-state:paused}@keyframes core-work{0%,to{transform:scale(.72);opacity:.55}50%{transform:scale(1.05);opacity:1}}@keyframes core-speak{0%,to{transform:scale(.9);opacity:.7}50%{transform:scale(1.12);opacity:1}}.state{margin:0;font-size:clamp(.75rem,1.8vmin,.95rem);letter-spacing:.3em;text-transform:uppercase;color:var(--tint, var(--muted));text-shadow:0 0 .8rem currentColor}.state:before{content:"[ ";opacity:.5}.state:after{content:" ]";opacity:.5}.igor--listening{--tint: var(--listening)}.igor--thinking{--tint: var(--thinking)}.igor--speaking{--tint: var(--speaking)}.igor--error{--tint: var(--error)}.transcript{margin:0;font-size:clamp(1rem,3vmin,1.5rem);color:var(--muted);max-width:34ch}.subtitle{margin:0;font-size:clamp(1.15rem,4.5vmin,2.25rem);line-height:1.4;max-width:30ch;text-shadow:0 0 1.4rem color-mix(in srgb,var(--speaking) 30%,transparent)}.tool{margin:0;font-size:clamp(.75rem,1.7vmin,.9rem);font-family:ui-monospace,monospace;color:var(--muted)}.error{margin:0;font-size:clamp(.9rem,2vmin,1rem);color:var(--error)}.ptt{margin-top:clamp(.25rem,1.5vmin,1rem);min-height:3rem;padding:.85rem clamp(1.5rem,6vmin,2.5rem);font-family:var(--font-ui);font-size:clamp(.95rem,2.2vmin,1.05rem);letter-spacing:.18em;text-transform:uppercase;color:var(--listening);background:color-mix(in srgb,var(--listening) 8%,transparent);border:1px solid var(--listening);border-radius:2px;clip-path:polygon(0 0,calc(100% - .6rem) 0,100% .6rem,100% 100%,.6rem 100%,0 calc(100% - .6rem));box-shadow:0 0 1rem color-mix(in srgb,var(--listening) 30%,transparent);cursor:pointer;touch-action:none}.ptt:active{background:color-mix(in srgb,var(--listening) 22%,transparent)}.controls{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:.6rem}.switch{display:inline-flex;align-items:center;gap:.6rem;cursor:pointer;font-size:clamp(.75rem,1.7vmin,.85rem);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);transition:color .25s ease}.switch--on{color:var(--listening)}.switch input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.switch-track{position:relative;width:2.6rem;height:1.35rem;flex-shrink:0;border:1px solid var(--idle);border-radius:2px;background:color-mix(in srgb,var(--idle) 12%,transparent);transition:border-color .25s ease,background .25s ease,box-shadow .25s ease}.switch--on .switch-track{border-color:var(--listening);background:color-mix(in srgb,var(--listening) 18%,transparent);box-shadow:0 0 .8rem color-mix(in srgb,var(--listening) 35%,transparent)}.switch-thumb{position:absolute;top:2px;left:2px;width:calc(1.35rem - 6px);height:calc(1.35rem - 6px);background:var(--idle);transition:transform .22s cubic-bezier(.4,0,.2,1),background .25s ease}.switch--on .switch-thumb{background:var(--listening);transform:translate(1.25rem)}.switch input:focus-visible+.switch-track{outline:2px solid var(--listening);outline-offset:2px}.switch-text em{font-style:normal;color:var(--muted);text-transform:none;letter-spacing:normal}.wake-toggle{min-height:2.25rem;padding:.4rem 1rem;font-size:clamp(.75rem,1.7vmin,.85rem);color:var(--muted);background:transparent;border:1px solid var(--idle);border-radius:2px;letter-spacing:.12em;text-transform:uppercase;cursor:pointer}.wake-toggle:active{color:var(--fg)}.wake-toggle--on{color:var(--listening);border-color:var(--listening);box-shadow:0 0 .9rem color-mix(in srgb,var(--listening) 25%,transparent)}.wake-heard{margin:0;max-width:34ch;font-size:clamp(.7rem,1.6vmin,.8rem);font-family:ui-monospace,monospace;color:var(--idle);overflow-wrap:anywhere}.gate{align-items:center;justify-content:center;gap:1rem}.gate h1{margin:0;font-size:clamp(1.5rem,5vmin,2rem);letter-spacing:.45em;text-transform:uppercase;color:var(--listening);text-shadow:0 0 1.6rem color-mix(in srgb,var(--listening) 55%,transparent)}.gate-hint{margin:0;max-width:42ch;font-size:clamp(.9rem,2vmin,1rem);color:var(--muted);text-align:center;line-height:1.5}.gate form{display:flex;flex-direction:column;gap:.75rem;width:min(22rem,100%);margin-top:.5rem}.gate input{padding:.85rem 1rem;font-size:1rem;min-height:3rem;color:var(--fg);background:var(--bg-raised);border:1px solid var(--idle);border-radius:2px}.gate input:focus{outline:none;border-color:var(--listening);box-shadow:0 0 .8rem color-mix(in srgb,var(--listening) 25%,transparent)}.gate button{margin-top:.5rem;padding:.85rem 1rem;min-height:3rem;font-size:1rem;color:var(--bg);background:var(--listening);border:none;border-radius:2px;font-family:var(--font-ui);letter-spacing:.12em;text-transform:uppercase;cursor:pointer}.gate button:disabled{opacity:.5}.settings{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10;overflow-y:auto;padding:var(--pad-top) var(--pad-right) var(--pad-bottom) var(--pad-left);background:color-mix(in srgb,var(--bg) 96%,transparent);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:flex;flex-direction:column;gap:1.75rem}.settings-head{display:flex;align-items:center;justify-content:space-between;gap:1rem}.settings h2{margin:0;font-size:1.25rem;letter-spacing:.25em;text-transform:uppercase;color:var(--listening)}.settings section{border-left:2px solid var(--idle);padding-left:1rem}.settings h3{margin:0 0 .75rem;font-size:.8rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}.settings section{width:min(34rem,100%);margin:0 auto}.settings label{display:flex;flex-direction:column;gap:.4rem;margin-bottom:1.1rem;font-size:.9rem;color:var(--muted)}.settings input[type=url],.settings input[type=text],.settings select{padding:.7rem .9rem;font-size:1rem;color:var(--fg);background:var(--bg-raised);border:1px solid var(--idle);border-radius:2px}.settings input:focus,.settings select:focus{outline:none;border-color:var(--listening);box-shadow:0 0 .8rem color-mix(in srgb,var(--listening) 25%,transparent)}.settings input[type=range]{height:2rem;accent-color:var(--listening)}.range-value{font-size:.8rem;font-family:ui-monospace,monospace;color:var(--idle)}.probe{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem;margin:-.6rem 0 1.1rem;font-size:.8rem;color:var(--speaking)}.probe--bad{color:var(--error)}.hint{margin:0;font-size:.8rem;line-height:1.5;color:var(--idle)}.saved{margin:0 auto;font-size:.8rem;color:var(--speaking)}.link{padding:0;font-size:inherit;color:var(--muted);background:none;border:none;text-decoration:underline;text-underline-offset:3px;cursor:pointer}.link:disabled{opacity:.5}.settings-open{margin-top:.5rem;font-size:clamp(.7rem,1.6vmin,.8rem)}.fatal{justify-content:center;gap:1rem;max-width:60ch;margin:0 auto;line-height:1.6}.fatal h1{font-size:clamp(1.4rem,5vmin,2rem)}.fatal code{font-family:ui-monospace,monospace;background:#1a1d21;padding:.15em .4em;border-radius:4px;font-size:.9em;overflow-wrap:anywhere}@media(orientation:landscape)and (max-height:30rem){.igor{flex-direction:row;gap:clamp(1rem,4vw,2.5rem);text-align:left}.orb{width:clamp(4rem,26vmin,7rem)}.readout{flex:1;align-items:flex-start}.subtitle{font-size:clamp(1.05rem,5.5vmin,1.5rem);max-width:none}.transcript{font-size:clamp(.9rem,4vmin,1.1rem);max-width:none}.ptt{margin-top:0;flex-shrink:0}.fatal{justify-content:flex-start}}@media(max-width:22rem){:root{--pad-right: max(1rem, env(safe-area-inset-right));--pad-left: max(1rem, env(safe-area-inset-left))}}@media(min-width:64rem)and (min-height:40rem){.subtitle{font-size:2.5rem;max-width:26ch}.transcript{font-size:1.6rem}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.mcp-row{padding:.8rem 0;border-bottom:1px solid color-mix(in srgb,var(--idle) 35%,transparent)}.mcp-row-head{display:flex;align-items:center;gap:.55rem;font-size:.9rem}.mcp-dot{width:.5rem;height:.5rem;flex-shrink:0;background:var(--idle);border-radius:50%}.mcp-dot--on{background:var(--speaking);box-shadow:0 0 .6rem var(--speaking)}.mcp-count{margin-left:auto;font-size:.75rem;color:var(--muted)}.mcp-url,.mcp-tools{margin:.3rem 0 0;font-size:.75rem;color:var(--muted);overflow-wrap:anywhere}.mcp-tools{color:var(--idle)}.mcp-actions{display:flex;flex-wrap:wrap;gap:1rem;margin-top:.5rem;font-size:.75rem}.mcp-add{margin-top:1.2rem}.mcp-add summary{font-size:.8rem;color:var(--listening);cursor:pointer;letter-spacing:.1em;text-transform:uppercase}.mcp-add>*{margin-top:.9rem}.mcp-header-pair{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:.5rem}.mcp-add code{color:var(--listening)}.prompt-editor{min-height:18rem;padding:.7rem .9rem;font-family:var(--font-ui);font-size:.8rem;line-height:1.6;color:var(--fg);background:var(--bg-raised);border:1px solid var(--idle);border-radius:2px;resize:vertical}.prompt-editor:focus{outline:none;border-color:var(--listening);box-shadow:0 0 .8rem color-mix(in srgb,var(--listening) 25%,transparent)}
