:root{--bg: #0b1220;--bg-elevated: #131c2e;--bg-card: #1a2438;--border: #243047;--border-strong: #34425e;--text: #e6edf7;--text-muted: #8898b3;--text-dim: #5a6a85;--accent: #5eb4ff;--accent-strong: #3a9cff;--success: #5cd494;--danger: #ff6b6b;--warning: #ffc861;--purple: #b48bff;--radius: 14px;--radius-sm: 8px;--shadow: 0 4px 16px rgba(0, 0, 0, .25)}*{margin:0;padding:0;box-sizing:border-box}html,body{height:100%}body{font-family:-apple-system,BlinkMacSystemFont,Inter,Segoe UI,Roboto,sans-serif;background:radial-gradient(ellipse at top,#16213a 0%,var(--bg) 60%);color:var(--text);min-height:100vh;-webkit-font-smoothing:antialiased}.app{max-width:1320px;margin:0 auto;padding:1.25rem 1.5rem;display:flex;flex-direction:column;min-height:100vh}header{display:grid;grid-template-columns:auto 1fr auto;align-items:center;padding:.5rem 0 1.25rem;margin-bottom:1.25rem;border-bottom:1px solid var(--border);gap:1.5rem}@media (max-width: 920px){header{grid-template-columns:1fr}}.brand{display:flex;align-items:center;gap:.75rem}.logo-dot{width:12px;height:12px;border-radius:50%;background:var(--accent);box-shadow:0 0 14px var(--accent)}.brand h1{font-size:1.25rem;font-weight:700;letter-spacing:-.01em}.view-tabs{display:inline-flex;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-sm);padding:4px;justify-self:center;gap:2px}.view-tabs .tab{background:transparent;border:none;color:var(--text-muted);padding:.55rem 1rem;font-size:.85rem;font-family:inherit;font-weight:600;border-radius:6px;cursor:pointer;display:inline-flex;align-items:center;gap:.5rem;transition:all .15s}.view-tabs .tab:hover{color:var(--text)}.view-tabs .tab.active{background:var(--bg-card);color:var(--accent);box-shadow:0 1px 4px #0003}.tab-icon{font-size:1.05em}.status-pill{font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;padding:.25rem .6rem;border-radius:999px;border:1px solid;display:inline-flex;align-items:center;gap:.4rem}.status-pill:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}.status-pill.idle{color:var(--text-dim);border-color:var(--border-strong)}.status-pill.loading{color:var(--warning);border-color:#ffc86166;background:#ffc86114}.status-pill.running{color:var(--success);border-color:#5cd49466;background:#5cd49414}.status-pill.running:before{animation:pulse 1.4s ease-in-out infinite}.status-pill.error{color:var(--danger);border-color:#ff6b6b66;background:#ff6b6b14}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.7)}}.controls{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;justify-self:end}#cameraSelect{padding:.55rem .75rem;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg-elevated);color:var(--text);font-size:.85rem;max-width:240px;font-family:inherit}#cameraSelect:focus{outline:none;border-color:var(--accent)}.btn{padding:.6rem 1.1rem;border-radius:var(--radius-sm);border:1px solid transparent;font-size:.85rem;font-weight:600;cursor:pointer;transition:all .15s;font-family:inherit;display:inline-flex;align-items:center;gap:.4rem}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-icon{font-size:.7em}.btn-primary{background:var(--accent);color:#0a1525}.btn-primary:hover:not(:disabled){background:var(--accent-strong);transform:translateY(-1px)}.btn-primary.stop{background:var(--danger);color:#fff}.btn-primary.stop:hover:not(:disabled){background:#ff5252}.btn-ghost{background:transparent;color:var(--text-muted);border-color:var(--border)}.btn-ghost:hover:not(:disabled){background:var(--bg-elevated);color:var(--text);border-color:var(--border-strong)}main{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:1.5rem;align-items:start;flex:1}@media (max-width: 920px){main{grid-template-columns:1fr}}.video-container{position:relative;background:#000;border-radius:var(--radius);overflow:hidden;aspect-ratio:16/9;cursor:crosshair;border:1px solid var(--border);box-shadow:var(--shadow)}.video-container video,.video-container canvas{position:absolute;inset:0;width:100%;height:100%}.video-container video{object-fit:cover}.video-container.mirrored video,.video-container.mirrored canvas{transform:scaleX(-1)}.video-container canvas{pointer-events:none}body[data-view=feedback] .video-container{cursor:default}.placeholder{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:2rem;color:var(--text-muted);background:linear-gradient(180deg,transparent 0%,rgba(11,18,32,.4) 100%)}.placeholder[hidden]{display:none}.placeholder h2{font-size:1.2rem;font-weight:600;color:var(--text);margin-bottom:.4rem}.placeholder p{font-size:.9rem;max-width:460px;margin-bottom:.3rem}.placeholder .hint{font-size:.8rem;color:var(--text-dim);margin-top:1rem}.placeholder-icon{font-size:3rem;margin-bottom:1rem;opacity:.8}.loader{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#0b1220d9;backdrop-filter:blur(6px);z-index:10}.loader[hidden]{display:none}.loader p{margin-top:1rem;color:var(--text-muted);font-size:.9rem}.spinner{width:42px;height:42px;border:3px solid var(--border-strong);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.counters-overlay{position:absolute;top:1rem;right:1rem;display:flex;gap:.5rem;z-index:5}.counters-overlay[hidden]{display:none}.overlay-stat{background:#0b1220b3;backdrop-filter:blur(8px);border:1px solid var(--border);border-radius:var(--radius-sm);padding:.35rem .75rem;text-align:center;min-width:60px}.overlay-label{display:block;font-size:.65rem;letter-spacing:.1em;color:var(--text-muted);font-weight:600}.overlay-value{display:block;font-size:1.4rem;font-weight:700;font-variant-numeric:tabular-nums;line-height:1.1}.overlay-value.bump{animation:bump .4s ease-out}.counters-overlay .overlay-stat:first-child .overlay-value{color:var(--success)}.counters-overlay .overlay-stat:last-child .overlay-value{color:var(--danger)}.reactions-overlay{position:absolute;top:1rem;right:1rem;display:flex;gap:.5rem;z-index:5}.reactions-overlay[hidden]{display:none}.reactions-overlay .overlay-stat.pos{border-color:#5cd49466;background:#5cd4941f}.reactions-overlay .overlay-stat.pos .overlay-value{color:var(--success)}.reactions-overlay .overlay-stat.pos .overlay-label{color:var(--success);opacity:.85}.reactions-overlay .overlay-stat.neg{border-color:#ff6b6b66;background:#ff6b6b1f}.reactions-overlay .overlay-stat.neg .overlay-value{color:var(--danger)}.reactions-overlay .overlay-stat.neg .overlay-label{color:var(--danger);opacity:.85}.gesture-pill{position:absolute;top:1rem;left:1rem;display:inline-flex;align-items:center;gap:.6rem;background:#0b1220bf;backdrop-filter:blur(8px);border:1px solid var(--border);border-radius:999px;padding:.5rem 1rem;font-size:.9rem;font-weight:600;color:var(--text-muted);z-index:5;transition:all .2s}.gesture-pill[hidden]{display:none}.gesture-pill.active{color:var(--success);border-color:#5cd49466;background:#5cd4941f}.gesture-pill span:first-child{font-size:1.4em}.flash-badge{position:absolute;font-size:1.4rem;font-weight:700;pointer-events:none;animation:floatUp 1.1s ease-out forwards;text-shadow:0 2px 8px rgba(0,0,0,.6);z-index:6}.flash-badge.enter{color:var(--success)}.flash-badge.exit{color:var(--danger)}@keyframes floatUp{0%{opacity:0;transform:translate(-50%,10px) scale(.6)}20%{opacity:1;transform:translate(-50%) scale(1.15)}to{opacity:0;transform:translate(-50%,-60px) scale(1)}}.reaction-burst{position:absolute;pointer-events:none;animation:burstUp 1.6s cubic-bezier(.2,.7,.2,1) forwards;text-shadow:0 4px 12px rgba(0,0,0,.6);z-index:6;transform-origin:center}.reaction-burst.pos{filter:drop-shadow(0 0 8px rgba(92,212,148,.7))}.reaction-burst.neg{filter:drop-shadow(0 0 8px rgba(255,107,107,.7))}.reaction-burst.neu{filter:drop-shadow(0 0 8px rgba(255,200,97,.6))}@keyframes burstUp{0%{opacity:0;transform:translate(-50%,20px) scale(.4) rotate(-10deg)}15%{opacity:1;transform:translate(-50%) scale(1.4) rotate(5deg)}60%{opacity:1;transform:translate(-50%,-60px) scale(1.1) rotate(-3deg)}to{opacity:0;transform:translate(-50%,-140px) scale(.8) rotate(0)}}.stats-panel{display:flex;flex-direction:column;gap:.85rem}.stats-panel[hidden]{display:none}.stat-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:1.1rem 1.25rem;display:flex;flex-direction:column;gap:.25rem}.stat-card.primary{background:linear-gradient(135deg,#5eb4ff1f,#5eb4ff08);border-color:#5eb4ff40;padding:1.4rem 1.4rem 1.5rem}.stat-card.primary .stat-value{font-size:3.6rem;color:var(--accent);line-height:1;font-weight:700}.stat-label{font-size:.7rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.1em;font-weight:600}.stat-value{font-size:1.8rem;font-weight:700;font-variant-numeric:tabular-nums;letter-spacing:-.02em}.stat-value.bump{animation:bump .4s ease-out}@keyframes bump{0%{transform:scale(1)}40%{transform:scale(1.18)}to{transform:scale(1)}}.stat-row{display:grid;grid-template-columns:1fr 1fr;gap:.85rem}.stat-row.small .stat-card{padding:.75rem 1rem}.stat-card.entered .stat-value{color:var(--success)}.stat-card.exited .stat-value{color:var(--danger)}.stat-card.mini .stat-value{font-size:1.3rem;color:var(--text)}.stat-card.mini{padding:.8rem 1rem}.settings{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.settings summary{padding:.9rem 1.1rem;cursor:pointer;font-size:.85rem;font-weight:600;color:var(--text);display:flex;justify-content:space-between;align-items:center;list-style:none;user-select:none}.settings summary::-webkit-details-marker{display:none}.settings .chevron{transition:transform .2s;color:var(--text-muted);font-size:1.1rem}.settings[open] .chevron{transform:rotate(180deg)}.settings .setting{padding:.85rem 1.1rem;border-top:1px solid var(--border)}.settings .setting label{display:flex;align-items:center;justify-content:space-between;font-size:.78rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;font-weight:600;margin-bottom:.6rem}.value-badge{background:var(--bg-elevated);color:var(--accent);padding:.15rem .5rem;border-radius:4px;font-size:.75rem;font-variant-numeric:tabular-nums;text-transform:none;letter-spacing:0}.settings input[type=range]{width:100%;accent-color:var(--accent)}.hint{font-size:.7rem;color:var(--text-dim);margin-top:.5rem}.segmented{display:grid;grid-template-columns:1fr 1fr;gap:0;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-sm);padding:3px}.seg-btn{background:transparent;border:none;color:var(--text-muted);padding:.5rem;font-size:.8rem;cursor:pointer;border-radius:5px;font-family:inherit;font-weight:500;transition:all .15s;display:inline-flex;align-items:center;justify-content:center;gap:.4rem}.seg-btn:hover{color:var(--text)}.seg-btn.active{background:var(--bg-card);color:var(--accent);box-shadow:0 1px 4px #0003}.full-btn{width:100%;background:var(--bg-elevated);border:1px solid var(--border);color:var(--text);padding:.6rem .75rem;font-size:.85rem;border-radius:var(--radius-sm);cursor:pointer;font-family:inherit;transition:all .15s}.full-btn:hover{background:var(--bg-card);border-color:var(--accent);color:var(--accent)}.kbd-hints{display:flex;justify-content:center;gap:1.25rem;padding:.5rem;font-size:.75rem;color:var(--text-dim)}kbd{background:var(--bg-elevated);border:1px solid var(--border);border-bottom-width:2px;border-radius:4px;padding:.1rem .4rem;font-size:.7rem;font-family:inherit;color:var(--text);margin-right:.3rem}.sentiment-bar{height:6px;background:var(--bg-elevated);border-radius:999px;margin-top:.75rem;overflow:hidden}.sentiment-fill{height:100%;background:var(--warning);border-radius:999px;transition:width .4s ease-out,background .3s}.reaction-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:.6rem}.reaction-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:.85rem .5rem .6rem;text-align:center;transition:all .15s;position:relative}.reaction-card.pos{border-color:#5cd49440}.reaction-card.neg{border-color:#ff6b6b40}.reaction-card.neu{border-color:#ffc86140}.reaction-emoji{font-size:1.7rem;line-height:1}.reaction-label{font-size:.7rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;margin-top:.3rem;font-weight:600}.reaction-count{font-size:1.3rem;font-weight:700;font-variant-numeric:tabular-nums;margin-top:.2rem;color:var(--text)}.reaction-card.pos .reaction-count{color:var(--success)}.reaction-card.neg .reaction-count{color:var(--danger)}.reaction-count.bump{animation:bump .4s ease-out}.feed-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.feed-header{padding:.85rem 1.1rem;font-size:.78rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;font-weight:600;border-bottom:1px solid var(--border)}.feed-list{list-style:none;max-height:220px;overflow-y:auto}.feed-empty{padding:1.2rem;text-align:center;color:var(--text-dim);font-size:.85rem}.feed-item{display:grid;grid-template-columns:auto 1fr auto auto;align-items:center;gap:.6rem;padding:.55rem 1.1rem;border-bottom:1px solid rgba(36,48,71,.5);font-size:.85rem}.feed-item:last-child{border-bottom:none}.feed-item.new{animation:slideIn .4s ease-out}@keyframes slideIn{0%{opacity:0;transform:translate(-10px)}to{opacity:1;transform:translate(0)}}.feed-emoji{font-size:1.3rem}.feed-label{color:var(--text);font-weight:500}.feed-hand{color:var(--text-dim);font-size:.75rem}.feed-time{color:var(--text-dim);font-size:.75rem;font-variant-numeric:tabular-nums}body[data-view=counter] .view-only-feedback,body[data-view=feedback] .view-only-counter{display:none!important}.toast{position:fixed;bottom:2rem;left:50%;transform:translate(-50%);background:var(--bg-card);border:1px solid var(--border-strong);color:var(--text);padding:.75rem 1.25rem;border-radius:var(--radius-sm);font-size:.85rem;box-shadow:var(--shadow);z-index:100;animation:toastIn .3s ease-out}.toast[hidden]{display:none}.toast.error{border-color:var(--danger);color:var(--danger)}@keyframes toastIn{0%{transform:translate(-50%,20px);opacity:0}to{transform:translate(-50%);opacity:1}}footer{text-align:center;padding:1.5rem 0 .5rem;color:var(--text-dim);font-size:.75rem}
