:root{--bg1:#0f141b;--bg2:#1a2330;--accent:#e0577f;--accent2:#7fc7d9;--text:#f3f5f8;--muted:#f3f5f89e;--glass:#0e12188c;--glass-b:#ffffff14;font-family:Manrope,system-ui,-apple-system,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box}html,body{background:var(--bg1);height:100%;color:var(--text);margin:0;overflow:hidden}#bg{z-index:0;background:radial-gradient(120% 90% at 50% 20%, var(--bg2) 0%, var(--bg1) 70%);transition:background .4s;position:fixed;inset:0}#c{z-index:1;touch-action:none;width:100%;height:100%;display:block;position:fixed;inset:0}#loader{z-index:50;text-align:center;background:var(--bg1);pointer-events:none;place-content:center;gap:14px;transition:opacity .6s;display:grid;position:fixed;inset:0}#loader.done{opacity:0}#loader .ring{border:3px solid #ffffff1f;border-top-color:var(--accent);border-radius:50%;width:54px;height:54px;margin:0 auto;animation:.9s linear infinite spin}#loader .txt{letter-spacing:.02em;font-weight:600}#loader .sub{color:var(--muted);min-height:1em;font-size:13px}@keyframes spin{to{transform:rotate(360deg)}}#ui{z-index:10;pointer-events:none;position:fixed;inset:0}#ui>*{pointer-events:auto}body[data-mode=hidden] #ui,body[data-mode=hidden] #dev,body[data-mode=user] #dev{display:none}#dock{left:50%;bottom:max(28px, env(safe-area-inset-bottom));flex-direction:column;align-items:center;gap:12px;display:flex;position:absolute;transform:translate(-50%)}#status{color:var(--text);letter-spacing:.02em;text-align:center;background:var(--glass);border:1px solid var(--glass-b);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:999px;min-height:1.2em;padding:5px 12px;font-size:13px}.orb{cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:0;border-radius:50%;outline:none;place-items:center;width:84px;height:84px;padding:0;display:grid;position:relative}.orb-core{background:radial-gradient(circle at 35% 30%, #ff9ab8, var(--accent) 60%, #8d2a4b);border-radius:50%;transition:transform .25s,background .3s,box-shadow .3s;position:absolute;inset:10px;box-shadow:0 8px 30px #e0577f73,inset 0 -6px 12px #00000040}.orb-ring{opacity:0;border:2px solid #e0577f80;border-radius:50%;position:absolute;inset:0}.orb .ic{fill:#fff;filter:drop-shadow(0 2px 3px #00000059);width:30px;height:30px;position:relative}.orb .ic-off{display:none}.orb:hover .orb-core{transform:scale(1.04)}body[data-state=connecting] .orb-core{animation:1.1s ease-in-out infinite pulse}body[data-state=listening] .orb-ring{animation:1.6s ease-out infinite ripple}body[data-state=listening] .orb-ring.r2{animation-delay:.5s}body[data-state=thinking] .orb-core{background:radial-gradient(circle at 35% 30%, #bff0ff, var(--accent2) 60%, #2a6d80);animation:.9s ease-in-out infinite pulse;box-shadow:0 8px 30px #7fc7d973}body[data-state=speaking] .orb-core{background:radial-gradient(circle at 35% 30%, #bff0ff, var(--accent2) 60%, #2a6d80);box-shadow:0 8px 30px #7fc7d980}body[data-state=speaking] .orb-ring{border-color:#7fc7d999;animation:1s ease-out infinite ripple}body.muted .orb .ic-mic{display:none}body.muted .orb .ic-off{display:block}body.muted .orb-core{filter:grayscale(.7)}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.08)}}@keyframes ripple{0%{opacity:.8;transform:scale(.85)}to{opacity:0;transform:scale(1.5)}}#access[hidden],#toast[hidden]{display:none}#access{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#00000080;place-items:center;display:grid;position:absolute;inset:0}#access .card{border:1px solid var(--glass-b);background:#161c25;border-radius:18px;gap:12px;width:min(360px,90vw);padding:24px;display:grid}#access .t{font-weight:700}#access input{font:inherit;border:1px solid var(--glass-b);color:var(--text);background:#0e1218;border-radius:10px;padding:10px 12px}#access button{font:inherit;background:var(--accent);color:#fff;cursor:pointer;border:0;border-radius:10px;padding:10px;font-weight:600}#access .err{color:#ff8a8a;min-height:1em;font-size:13px}#toast{background:var(--glass);border:1px solid var(--glass-b);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:12px;max-width:90vw;padding:10px 16px;font-size:14px;position:absolute;top:18px;left:50%;transform:translate(-50%)}#dev{z-index:20;pointer-events:none;position:fixed;inset:0}#dev>*{pointer-events:auto}#pane{width:400px;max-height:calc(100vh - 24px);position:absolute;top:12px;right:12px;overflow:auto}#pane::-webkit-scrollbar{width:6px}#pane::-webkit-scrollbar-thumb{background:#ffffff26;border-radius:3px}#devlog{border:1px solid var(--glass-b);background:#0a0d12d1;border-radius:12px;flex-direction:column;width:min(560px,45vw);height:40vh;font:12px/1.45 ui-monospace,Consolas,monospace;display:flex;position:absolute;bottom:12px;left:12px;overflow:hidden}.pane-grip{z-index:40;background:0 0;position:fixed}.pane-grip.x{cursor:ew-resize;width:10px}.pane-grip:hover{background:linear-gradient(90deg,#0000,#00aab559)}.pane-grip.tirando{background:linear-gradient(90deg,#0000,#f46f6080)}#devlog .grip{cursor:nesw-resize;z-index:2;background:linear-gradient(45deg, transparent 45%, var(--inneva-turquesa) 45%, var(--inneva-turquesa) 55%, transparent 55%);opacity:.5;width:18px;height:18px;position:absolute;top:0;right:0}#devlog .grip:hover{opacity:1;background:linear-gradient(45deg, transparent 45%, var(--inneva-coral) 45%, var(--inneva-coral) 55%, transparent 55%)}#devlog .hdr{border-bottom:1px solid var(--glass-b);color:var(--muted);align-items:center;gap:10px;padding:6px 10px;display:flex}#devlog .hdr button.sel{border-color:var(--inneva-turquesa);color:var(--inneva-turquesa)}#log .l.auto{color:var(--inneva-turquesa)}#devlog .hdr button+button{margin-left:6px!important}#devlog .hdr button{font:inherit;border:1px solid var(--glass-b);color:var(--muted);cursor:pointer;background:0 0;border-radius:6px;margin-left:auto;padding:2px 8px}#metrics{color:var(--inneva-turquesa)}#log{white-space:pre-wrap;word-break:break-word;flex:1;padding:8px 10px;overflow:auto}#log .l{border-bottom:1px dashed #ffffff0d;padding:1px 0}#log .l.evt{color:#ffffff80}#log .l.user{color:#9fe0ff}#log .l.gina{color:#ffb3c9}#log .l.tool{color:#ffd68a}#log .l.err{color:#ff8a8a}#log .l.ok{color:#9ff5b0}#hist{flex-direction:column;flex:1;display:flex;overflow:auto}#hist[hidden]{display:none}#hist-info{color:var(--muted);border-bottom:1px solid var(--glass-b);padding:6px 10px}#hist-info b{color:var(--inneva-turquesa);font-weight:600}#hist-spark{border-bottom:1px solid var(--glass-b);width:100%;height:44px;display:block}#hist-list{flex:1;padding:4px 10px 8px;overflow:auto}#hist-list .h{border-bottom:1px dashed #ffffff0d;gap:8px;padding:2px 0;display:flex}#hist-list .h .q{color:#ffffff59;text-align:right;min-width:2.2em}#hist-list .h .t{word-break:break-word;flex:1}#hist-list .h.user .t{color:#9fe0ff}#hist-list .h.assistant .t{color:#ffb3c9}#hist-list .h.system .t{color:var(--inneva-turquesa)}#hist-list .h.tool .t{color:#ffd68a}#hist-list .vacio{color:var(--muted);padding:8px 0}#textform{border-top:1px solid var(--glass-b)}#textinput{width:100%;font:inherit;color:var(--text);background:0 0;border:0;outline:none;padding:8px 10px}#reticle{pointer-events:none;z-index:30;border:3px solid #ffd60a;border-radius:4px;width:36px;height:36px;margin:-18px 0 0 -18px;position:absolute;top:50%;left:50%;box-shadow:0 0 0 2px #0009,0 0 18px #ffd60acc}#reticle:before,#reticle:after{content:"";background:#ffd60a;position:absolute;box-shadow:0 0 4px #000000b3}#reticle:before{width:2px;height:calc(100% + 28px);margin-left:-1px;top:-14px;left:50%}#reticle:after{width:calc(100% + 28px);height:2px;margin-top:-1px;top:50%;left:-14px}#reticle .lbl{white-space:nowrap;color:#111;background:#ffd60a;border-radius:999px;padding:4px 8px;font:600 12px/1 Manrope,system-ui,sans-serif;position:absolute;top:calc(100% + 16px);left:50%;transform:translate(-50%)}#reticle.nadie{border-color:#7fc7d9;box-shadow:0 0 0 2px #0009,0 0 18px #7fc7d9cc}#reticle.nadie:before,#reticle.nadie:after,#reticle.nadie .lbl{background:#7fc7d9}#reticle.nadie .lbl:after{content:" si estás en el centro de la cámara"}#reticle[hidden]{display:none}#fpsmeter{top:max(36px, calc(env(safe-area-inset-top) + 18px));text-align:center;border:1px solid var(--glass-b);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:#9ff5b0;pointer-events:none;background:#0a0d12d1;border-radius:8px;min-width:62px;padding:3px 8px;font:600 12px/1.4 ui-monospace,Consolas,monospace;position:absolute;left:12px}#fpsmeter.medio{color:#ffd60a}#fpsmeter.malo{color:#ff8a8a}#campreview{top:max(64px, calc(env(safe-area-inset-top) + 46px));border:1px solid var(--glass-b);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#0a0d12d1;border-radius:12px;flex-direction:column;gap:6px;width:300px;padding:6px;font:12px/1.4 ui-monospace,Consolas,monospace;display:flex;position:absolute;left:12px}#campreview[hidden]{display:none}#campreview .hdr{color:var(--muted);justify-content:space-between;gap:8px;padding:0 4px;display:flex}#cam-status{color:var(--inneva-turquesa)}#cam-status.ok{color:#9ff5b0}#cam-status.err{color:#ff8a8a}#cam-canvas{background:#000;border-radius:8px;width:100%;height:auto;display:block}#cam-screen{aspect-ratio:16/9;background:linear-gradient(#ffffff14,#ffffff14) 50%/1px 100% no-repeat,linear-gradient(#ffffff14,#ffffff14) 50%/100% 1px no-repeat,#ffffff08;border:1px solid #ffffff40;border-radius:6px;width:100%;position:relative}#cam-screen .lbl{color:var(--muted);font-size:10px;position:absolute;top:3px;left:6px}#cam-dot{background:var(--accent);border-radius:50%;width:12px;height:12px;margin:-6px 0 0 -6px;transition:left 80ms linear,top 80ms linear;position:absolute;top:50%;left:50%;box-shadow:0 0 0 3px #e0577f40,0 0 12px #e0577fb3}#cam-dot.center{background:var(--accent2);box-shadow:0 0 0 3px #7fc7d940,0 0 12px #7fc7d9b3}#cam-info{color:var(--muted);white-space:pre-wrap;min-height:1.2em;padding:0 4px}:root{--inneva-turquesa:#00aab5;--inneva-coral:#f46f60;--inneva-oscuro:#053534;--tp-base-background-color:#053534e0;--tp-base-shadow-color:#00000059;--tp-button-background-color:#00aab5d9;--tp-button-background-color-active:#f46f60;--tp-button-background-color-focus:#f46f60e6;--tp-button-background-color-hover:#f46f60e6;--tp-button-foreground-color:#fff;--tp-container-background-color:#ffffff0f;--tp-container-background-color-active:#ffffff29;--tp-container-background-color-focus:#ffffff1f;--tp-container-background-color-hover:#ffffff1a;--tp-container-foreground-color:#f3f5f8f2;--tp-groove-foreground-color:#ffffff1a;--tp-input-background-color:#ffffff14;--tp-input-background-color-active:#fff3;--tp-input-background-color-focus:#ffffff29;--tp-input-background-color-hover:#ffffff1f;--tp-input-foreground-color:#fff;--tp-label-foreground-color:#f3f5f8e0;--tp-monitor-background-color:#0000004d;--tp-monitor-foreground-color:#f3f5f8e6}.tp-rotv{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid #ffffff17;font-size:12px;box-shadow:0 14px 36px #00000073;border-radius:12px!important;font-family:inherit!important}.tp-rotv_t{letter-spacing:.4px;font-weight:700}.tp-fldv_b{letter-spacing:.2px;color:#fff;background:#ffffff0d;font-weight:700}.tp-fldv_b:hover{background:#ffffff1a}.tp-fldv-expanded>.tp-fldv_b{box-shadow:inset 3px 0 0 var(--inneva-turquesa)}.tp-tbiv_b{opacity:.5;font-weight:600}.tp-tbiv-sel .tp-tbiv_b{opacity:1;color:#fff;box-shadow:inset 0 -2px 0 var(--inneva-turquesa);background:#00aab533}.tp-txtv_i,.tp-lstv_s,.tp-mllv_i,.tp-sglv_i{font-variant-numeric:tabular-nums}.tp-btnv_b{letter-spacing:.2px;font-weight:600}.tp-sldv_k:before,.tp-sldv_k:after{background-color:var(--inneva-coral)!important}.tp-ckbv_i:checked+.tp-ckbv_w{background-color:var(--inneva-coral)}.tp-lstv_s:focus,.tp-txtv_i:focus{box-shadow:0 0 0 1px var(--inneva-coral) inset}#ayuda-tip{z-index:30;pointer-events:none;color:#f3f5f8eb;white-space:normal;background:#0e1218f5;border:1px solid #ffffff24;border-radius:8px;padding:8px 10px;font:12px/1.4 system-ui,sans-serif;position:fixed;box-shadow:0 6px 20px #0006}.tp-lblv[data-ayuda]>.tp-lblv_l,.tp-fldv_b[data-ayuda]{cursor:help}@media (max-width:700px){#pane{width:min(400px,92vw)}#devlog{width:92vw;height:32vh}#campreview{width:44vw}}.animon{color:var(--muted);gap:5px;padding:2px 4px 4px;display:grid}.animon .cab{align-items:baseline;gap:6px;display:flex}.animon .cab .clip{color:var(--text);font-weight:700}.animon .cab .est{opacity:.75;margin-left:auto}.animon .kind{background:#ffffff14;border-radius:4px;padding:1px 5px;font-size:10px}.animon .kind.k-idle,.animon .tramo.k-idle{background:var(--inneva-turquesa)}.animon .kind.k-talk,.animon .tramo.k-talk{background:var(--accent)}.animon .kind.k-gesture,.animon .tramo.k-gesture{background:#ffd68a}.animon .kind.k-listen,.animon .tramo.k-listen{background:#9ad1ff}.animon .kind.k-x,.animon .tramo.k-x{background:#ffffff4d}.animon .kind.k-idle,.animon .kind.k-talk{color:#04191c}.animon .kind.k-gesture{color:#2a2008}.animon .barra{background:#ffffff17;border-radius:3px;height:22px;position:relative;overflow:hidden}.animon .barra>i{background:linear-gradient(90deg, #00aab573, var(--inneva-turquesa));border-radius:3px 0 0 3px;width:0;height:100%;display:block}.animon .barra>.txt{color:var(--text);text-shadow:0 1px 2px #0009;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.animon .carriles{gap:3px;display:grid;position:relative}.animon .carril{background:#ffffff0f;border-radius:3px;height:20px;position:relative;overflow:hidden}.animon .carril>.tramo{display:block;position:absolute;top:0;bottom:0}.animon .carril.sale>.tramo{width:70%;left:0;-webkit-mask-image:linear-gradient(90deg,#000 0 42.86%,#0000 100%);mask-image:linear-gradient(90deg,#000 0 42.86%,#0000 100%)}.animon .carril.entra>.tramo{width:70%;left:30%;-webkit-mask-image:linear-gradient(90deg,#0000 0,#000 57.14% 100%);mask-image:linear-gradient(90deg,#0000 0,#000 57.14% 100%)}.animon .carril>.et{color:var(--text);text-shadow:0 1px 2px #000000bf;white-space:nowrap;align-items:center;padding-left:6px;display:flex;position:absolute;inset:0;overflow:hidden}.animon .solape{pointer-events:none;z-index:3;background:#ffffff12;border-left:1px dashed #ffffff59;border-right:1px dashed #ffffff59;width:40%;position:absolute;top:0;bottom:0;left:30%}.animon .cabezal{background:var(--inneva-coral);pointer-events:none;z-index:4;width:2px;margin-left:-1px;position:absolute;top:-2px;bottom:-2px}.animon .pie{color:var(--text);opacity:.85}.animon .extra{opacity:.8}.animon .extra[hidden],.animon .dos[hidden],.animon .uno[hidden]{display:none}.animon .hist{opacity:.7;gap:1px;max-height:96px;font-size:10px;display:grid;overflow:auto}.animon .hist .h{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.animon .hist .h:first-child{color:var(--inneva-coral);opacity:1}#animeditor{z-index:22;pointer-events:none;font:13px/1.3 system-ui,sans-serif;position:fixed;inset:0}#animeditor[hidden]{display:none}#animeditor>*{pointer-events:auto}#animeditor .cab{border-bottom:1px solid var(--inneva-coral);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:var(--text);background:#053534eb;flex-wrap:wrap;align-items:center;gap:14px;padding:10px 14px;display:flex;position:absolute;top:0;left:0;right:0}#animeditor .cab b{letter-spacing:.04em}#animeditor .cab .nota{color:var(--inneva-coral)}#animeditor .cab label{color:var(--muted);align-items:center;gap:6px;display:flex}#animeditor .cab .salir{margin-left:auto}#animeditor .abajo{border-top:1px solid var(--glass-b);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:var(--text);background:#053534eb;padding:10px 14px 12px;position:absolute;bottom:0;left:0;right:0}#animeditor select,#animeditor input[type=number],#animeditor button{font:inherit;color:var(--text);border:1px solid var(--glass-b);background:#ffffff14;border-radius:7px;padding:4px 8px}#animeditor input[type=number]{width:68px}#animeditor button{cursor:pointer}#animeditor button:hover{border-color:var(--inneva-coral);color:#fff}#animeditor .salir,#animeditor .guardar{background:var(--inneva-coral);color:#1a0c09;border-color:#0000;font-weight:600}#animeditor .salir:hover,#animeditor .guardar:hover{color:#1a0c09;background:#ff8776}#animeditor .guardar.mal{color:#ffd9d3;background:#6b2018}#animeditor .guardar:disabled{opacity:.6;cursor:default}#animeditor .mandos{flex-wrap:wrap;align-items:center;gap:12px;margin-top:10px;display:flex}#animeditor .mandos label{color:var(--muted);align-items:center;gap:6px;display:flex}#animeditor .mandos .reloj{font-variant-numeric:tabular-nums;min-width:120px}#animeditor .desl input{width:110px}#animeditor .velv{font-variant-numeric:tabular-nums;color:var(--text);font-style:normal}#animeditor .dato{color:var(--muted);font-variant-numeric:tabular-nums}#animeditor .dato.bien{color:#9ff5b0}#animeditor .dato.mal{color:var(--inneva-coral)}#animeditor .chk{cursor:pointer}#animeditor .linea{touch-action:none;cursor:crosshair;padding-top:18px;position:relative}#animeditor .regla{height:18px;position:absolute;top:0;left:0;right:0}#animeditor .regla i{border-left:1px solid #ffffff2e;position:absolute;top:0;bottom:0}#animeditor .regla u{color:var(--muted);font-size:10px;text-decoration:none;position:absolute;top:0;left:3px}#animeditor .carril{background:#ffffff0d;border-radius:4px;height:34px;margin-bottom:4px;position:relative}#animeditor .carril .tramo{border-radius:4px;min-width:2px;position:absolute;top:0;bottom:0}#animeditor .carril .et{white-space:nowrap;color:#04191c;text-shadow:0 1px #ffffff40;align-items:center;padding-left:10px;font-weight:600;display:flex;position:absolute;inset:0;overflow:hidden}#animeditor .tramo.k-idle{background:var(--inneva-turquesa)}#animeditor .tramo.k-talk{background:var(--accent)}#animeditor .tramo.k-gesture{background:#ffd68a}#animeditor .tramo.k-x{background:#ffffff59}#animeditor .grip{cursor:ew-resize;z-index:3;width:10px;position:absolute;top:0;bottom:0}#animeditor .grip.mover{border-left:3px solid #00000073;border-radius:4px 0 0 4px;left:0}#animeditor .grip.mover:hover,#animeditor .grip.ancho:hover{background:#ffffff59}#animeditor .grip.ancho{right:-5px}#animeditor .carril.b .et{padding-left:18px}#animeditor .union{border-left:1px dashed var(--inneva-coral);border-right:1px dashed var(--inneva-coral);z-index:2;background:#f46f6024;position:absolute;top:18px;bottom:0}#animeditor .union .lbl{color:var(--inneva-coral);white-space:nowrap;background:#053534e6;border-radius:3px;padding:0 4px;font-size:10px;position:absolute;bottom:-1px;left:50%;transform:translate(-50%)}#animeditor .cabezal{z-index:4;pointer-events:none;background:#fff;width:2px;margin-left:-1px;position:absolute;top:12px;bottom:-2px;box-shadow:0 0 6px #0009}body[data-mode=anim] #ui,body[data-mode=anim] #dev,body:not([data-mode=anim]) #animeditor{display:none}
