:root{color-scheme:dark;--bg:#090c0b;--panel:#111513;--line:#272d29;--text:#f1f4ef;--muted:#747d77;--lime:#d7ff3f;--red:#ff7161;--amber:#ffc95c}
.downloads{display:grid;gap:8px;margin-top:15px}.downloads .download{width:100%;margin-top:0;background:transparent}.downloads button.download{cursor:pointer}.downloads button.download:disabled{opacity:.35;cursor:not-allowed}.downloads button.download:not(:disabled):hover{border-color:var(--lime);color:var(--lime)}
*{box-sizing:border-box}html,body{height:100%;margin:0}body{overflow:hidden;background:var(--bg);color:var(--text);font:14px/1.4 Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif}button,input{font:inherit}button,label{user-select:none}header{height:68px;display:flex;align-items:center;gap:28px;padding:0 22px;border-bottom:1px solid var(--line);background:#0b0e0d}.brand{display:flex;align-items:center;gap:10px;color:var(--text);text-decoration:none}.brand strong{font-size:17px;letter-spacing:-.5px}.brand strong span{color:var(--lime)}.mark{width:29px;height:29px;display:flex;align-items:flex-end;justify-content:center;gap:3px;padding:6px;border-radius:7px;background:var(--lime)}.mark i{width:3px;border-radius:3px;background:#10140c}.mark i:nth-child(1){height:9px}.mark i:nth-child(2){height:17px}.mark i:nth-child(3){height:12px}.health{display:flex;align-items:center;gap:8px;color:#8f9892;font-size:11px}.health i{width:7px;height:7px;border-radius:50%;background:var(--amber);box-shadow:0 0 0 4px #ffc95c12}.health.ready i{background:#91e331}.health.error i{background:var(--red)}.live-badge{margin-left:auto;display:flex;align-items:center;gap:7px;padding:6px 9px;border:1px solid #3d4735;border-radius:5px;color:var(--lime);font-size:9px;font-weight:800;letter-spacing:1.2px}.live-badge i{width:6px;height:6px;border-radius:50%;background:var(--lime);animation:pulse 1.3s infinite}main{height:calc(100% - 68px);display:grid;grid-template-columns:310px minmax(0,1fr);gap:1px;background:var(--line)}.control-panel{padding:23px 19px;overflow:auto;background:var(--panel);scrollbar-width:thin}.eyebrow{color:#68716b;font-size:9px;font-weight:800;letter-spacing:1.7px;text-transform:uppercase}.control-panel h1{margin:4px 0 8px;font-size:19px;letter-spacing:-.6px}.intro{margin:0 0 17px;color:#7b847e;font-size:11px}.upload{display:grid;grid-template-columns:35px 1fr auto;align-items:center;gap:10px;padding:10px;border:1px dashed #424a3e;border-radius:9px;background:#0d110f;cursor:pointer;transition:.15s}.upload:hover,.upload.selected{border-color:#71814e;background:#151b12}.upload-icon{display:grid;place-items:center;width:35px;height:35px;border-radius:7px;background:var(--lime);color:#11150b;font-size:16px}.upload>span:nth-child(2){min-width:0}.upload strong,.upload small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.upload strong{font-size:11px}.upload small{margin-top:3px;color:#626b65;font-size:9px}.upload b{color:#778075;font-size:18px}.job-card{margin-top:13px;padding:12px;border:1px solid var(--line);border-radius:8px;background:#0d100f}.job-head{display:flex;justify-content:space-between;color:#aab1ad;font-size:10px}.job-head strong{color:var(--lime);font-variant-numeric:tabular-nums}.progress{height:4px;margin:8px 0;border-radius:4px;background:#282e2a;overflow:hidden}.progress i{display:block;width:0;height:100%;background:var(--lime);transition:width .35s}.job-card p{margin:0;color:#626b65;font-size:9px}.job-card.error .job-head strong,.job-card.error p{color:var(--red)}.job-card.error .progress i{background:var(--red)}.settings{margin-top:15px;padding:13px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.range{display:block;margin-top:13px}.range span{display:flex;justify-content:space-between;color:#7a837d;font-size:9px}.range output{color:#b5bcb7}.range input{width:100%;margin:7px 0 0;accent-color:var(--lime)}.download{display:flex;justify-content:center;margin-top:15px;padding:9px;border:1px solid #394137;border-radius:6px;color:#c9cfca;text-decoration:none;font-size:10px;font-weight:700}.download:not(.disabled):hover{border-color:var(--lime);color:var(--lime)}.download.disabled{opacity:.35;pointer-events:none}.viewer{display:grid;grid-template-rows:minmax(0,1fr) 62px;min-width:0;background:#101412}#viewport{position:relative;overflow:hidden;background:radial-gradient(circle at 50% 36%,#28302b,#141917 48%,#0b0e0d 100%)}#viewport canvas{display:block;width:100%;height:100%}.viewer-label{position:absolute;z-index:2;top:18px;left:19px;display:flex;align-items:center;gap:9px}.viewer-label span{padding:5px 8px;border:1px solid #414b37;border-radius:4px;background:#111613cc;color:var(--lime);font-size:9px;font-weight:800;letter-spacing:1.1px}.viewer-label small{color:#707974;font-size:9px}.viewer-tools{position:absolute;z-index:2;top:17px;right:18px;display:flex;gap:5px}.viewer-tools button{width:32px;height:32px;border:1px solid #353c38;border-radius:6px;background:#101411cc;color:#747d77;cursor:pointer}.viewer-tools button.active,.viewer-tools button:hover{color:#e0e4e1;background:#202622}.hero-copy{position:absolute;z-index:2;top:50%;left:50%;width:min(470px,80%);transform:translate(-50%,-50%);text-align:center;transition:.2s}.hero-copy.hidden{opacity:0;pointer-events:none}.hero-copy h2{margin:14px 0 7px;font-size:21px;letter-spacing:-.6px}.hero-copy p{margin:0 auto 17px;max-width:440px;color:#747e77;font-size:11px}.hero-copy label{display:inline-flex;padding:9px 16px;border-radius:6px;background:var(--lime);color:#11140d;font-size:11px;font-weight:800;cursor:pointer}.signal{height:37px;display:flex;align-items:center;justify-content:center;gap:5px}.signal i{display:block;width:4px;border-radius:5px;background:var(--lime);animation:wave 1s ease-in-out infinite}.signal i:nth-child(1){height:13px}.signal i:nth-child(2){height:27px;animation-delay:.1s}.signal i:nth-child(3){height:36px;animation-delay:.2s}.signal i:nth-child(4){height:22px;animation-delay:.3s}.signal i:nth-child(5){height:10px;animation-delay:.4s}.model-loader{position:absolute;z-index:4;inset:0;display:flex;align-items:center;justify-content:center;gap:10px;background:#101412dd;transition:.3s}.model-loader.hidden{opacity:0;pointer-events:none}.model-loader i{width:20px;height:20px;border:2px solid #323a35;border-top-color:var(--lime);border-radius:50%;animation:spin .7s linear infinite}.model-loader span{color:#8c958f;font-size:10px}.transport{display:flex;align-items:center;gap:12px;padding:0 17px;border-top:1px solid var(--line);background:#0e1210}.transport>button{width:35px;height:35px;border:0;border-radius:50%;background:var(--lime);color:#10140c;cursor:pointer}.transport>button:disabled{background:#303631;color:#626a64}.transport>span{font-size:9px;font-variant-numeric:tabular-nums}.timeline{position:relative;flex:1;height:4px;border-radius:4px;background:#282e2a;overflow:hidden}.timeline i,.timeline b{position:absolute;inset:0 auto 0 0;width:0;transition:width .2s}.timeline i{background:#657246}.timeline b{background:var(--lime)}.latency{padding:4px 7px;border-radius:4px;background:#272d29;color:#818a84;font-size:8px!important;font-weight:800;letter-spacing:.8px}.latency.live{background:#29321d;color:var(--lime)}.latency.wait{background:#352f1e;color:var(--amber)}.toast{position:fixed;z-index:20;right:20px;bottom:20px;max-width:360px;padding:10px 13px;border:1px solid #39403c;border-radius:7px;background:#1a201d;color:#d9deda;font-size:10px;opacity:0;transform:translateY(7px);transition:.2s;pointer-events:none}.toast.visible{opacity:1;transform:none}.toast.error{border-color:#693931;color:#ffb4aa}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.25}}@keyframes wave{50%{height:7px;opacity:.45}}@media(max-width:760px){body{overflow:auto}header{height:60px}.health{display:none}main{height:auto;grid-template-columns:1fr;grid-template-rows:62vh auto}.viewer{grid-row:1}.control-panel{grid-row:2}.live-badge{font-size:7px}}
.alignment-upload{margin-top:8px}
.submit-input{display:flex;align-items:center;justify-content:center;gap:9px;width:100%;min-height:42px;margin-top:10px;padding:9px 12px;border:1px solid #91aa38;border-radius:6px;background:var(--lime);color:#10140c;cursor:pointer}.submit-input span{font-size:12px}.submit-input strong{font-size:11px}.submit-input:not(:disabled):hover{background:#e4ff73}.submit-input:disabled{border-color:#313833;background:#202522;color:#68716b;cursor:not-allowed}.upload.invalid{border-color:var(--red);background:#1c1211}

/* StreamTalk controls, built on the local GestureStream viewer. */
.settings>label.retrieval-choice{display:grid;grid-template-columns:1fr;gap:7px;margin:0 0 8px;color:#aab1ad;font-size:11px}.retrieval-choice select{width:100%;padding:9px 10px;border:1px solid #424a3e;border-radius:7px;background:#131a14;color:var(--text);font:inherit;color-scheme:dark}.retrieval-choice select:focus-visible{outline:2px solid var(--lime);outline-offset:2px}
.sample-actions{display:flex;gap:8px;margin-bottom:12px}.sample-actions button{flex:1;padding:8px 4px;background:#192117;color:var(--lime);border:1px solid #3d4735;border-radius:7px;font-size:11px;cursor:pointer}.sample-actions button:disabled{opacity:.35;cursor:default}.input-note{font-size:10px;line-height:1.5;color:#959e97;margin:8px 0 12px}.cancel-input{width:100%;background:transparent;color:#9ea89f;border:0;cursor:pointer;padding:8px;margin-bottom:4px;font-size:11px}button:focus-visible,a:focus-visible,label.upload:focus-within{outline:2px solid var(--lime);outline-offset:3px}.control-panel h1{font-size:21px;line-height:1.25}.intro{line-height:1.6}
