:root{--bg: #0e0f1a;--bg-soft: #171a2b;--panel: #1d2036;--line: #2b2f4a;--text: #eef0ff;--muted: #9aa0c3;--accent: #7c5cff;--accent-2: #35e0c8;--danger: #ff6b6b;--radius: 18px}*{box-sizing:border-box}html,body,#app{height:100%;margin:0}body{font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color:var(--text);background:radial-gradient(1200px 600px at 15% -10%,#241a52 0%,transparent 55%),radial-gradient(900px 500px at 110% 10%,#0f3b3a 0%,transparent 50%),var(--bg)}.app{max-width:1200px;margin:0 auto;padding:24px;min-height:100%;display:flex;flex-direction:column;gap:18px}.topbar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:14px}.brand{display:flex;align-items:center;gap:14px}.brand-mark{font-size:30px;color:var(--accent);filter:drop-shadow(0 0 12px rgba(124,92,255,.7))}.brand h1{margin:0;font-size:22px;letter-spacing:.3px}.brand p{margin:2px 0 0;color:var(--muted);font-size:13px}.topbar-right{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.statusbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.pill{font-size:12px;font-weight:600;padding:6px 12px;border-radius:999px;background:var(--panel);border:1px solid var(--line)}.pill--running{background:#35e0c826;border-color:var(--accent-2);color:var(--accent-2)}.pill--loading{background:#7c5cff26;border-color:var(--accent);color:#c3b6ff}.pill--error{background:#ff6b6b26;border-color:var(--danger);color:var(--danger)}.chip{font-size:12px;padding:6px 10px;border-radius:999px;background:var(--bg-soft);border:1px solid var(--line);color:var(--muted)}.split{flex:1;display:grid;grid-template-columns:1fr 1fr;gap:18px}@media(max-width:820px){.split{grid-template-columns:1fr}}.pane{background:linear-gradient(180deg,var(--bg-soft),var(--panel));border:1px solid var(--line);border-radius:var(--radius);padding:16px;display:flex;flex-direction:column;gap:14px}.stage{position:relative;aspect-ratio:4 / 3;border-radius:14px;overflow:hidden;background:#05060d;display:flex;align-items:center;justify-content:center}.mirror{position:absolute;top:0;right:0;bottom:0;left:0;transform:scaleX(-1)}.cam{width:100%;height:100%;object-fit:cover}.overlay{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;pointer-events:none}.cam-placeholder{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;gap:10px;color:var(--muted);font-size:14px}.cam-dot{width:10px;height:10px;border-radius:50%;background:var(--muted);opacity:.6}.live-badge{position:absolute;top:12px;left:12px;display:flex;align-items:center;gap:8px;padding:7px 12px;border-radius:999px;background:#060814b8;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border:1px solid var(--line);font-size:13px;font-weight:600}.live-dot{width:9px;height:9px;border-radius:50%;background:var(--accent-2);box-shadow:0 0 10px var(--accent-2);animation:pulse 1.4s infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.35}}.controls{display:flex;flex-direction:column;gap:10px;align-items:flex-start}.controls-row{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.toggle{display:flex;align-items:center;gap:7px;font-size:13px;color:var(--muted);cursor:pointer;-webkit-user-select:none;user-select:none}.toggle input{accent-color:var(--accent-2);width:15px;height:15px;cursor:pointer}.hint{margin:0;color:var(--muted);font-size:13px}.btn{font:inherit;font-weight:600;padding:11px 20px;border-radius:12px;border:1px solid var(--line);background:var(--panel);color:var(--text);cursor:pointer;transition:transform .08s ease,filter .15s ease}.btn:hover{filter:brightness(1.12)}.btn:active{transform:translateY(1px)}.btn--primary{background:linear-gradient(135deg,var(--accent),#a17bff);border-color:transparent;box-shadow:0 8px 22px #7c5cff59}.btn--ghost{padding:8px 14px;font-size:13px}.btn--calib{background:#35e0c824;border-color:var(--accent-2);color:var(--accent-2);padding:9px 16px}.calib-ok{color:var(--accent-2);font-size:13px;font-weight:600}.debug{background:linear-gradient(180deg,var(--bg-soft),var(--panel));border:1px solid var(--line);border-radius:var(--radius);padding:16px;font-size:13px}.debug-head{display:flex;align-items:center;gap:12px;margin-bottom:12px;flex-wrap:wrap}.debug-winner{color:var(--accent-2);font-weight:700}.debug-gesture{color:#ffd166;font-weight:700}.debug-noface{color:var(--muted)}.debug-cols{display:grid;grid-template-columns:1fr 1fr;gap:22px}@media(max-width:720px){.debug-cols{grid-template-columns:1fr}}.debug-title{color:var(--muted);font-size:12px;margin-bottom:8px;text-transform:uppercase;letter-spacing:.4px}.bar-row{display:grid;grid-template-columns:130px 1fr 34px;align-items:center;gap:8px;margin-bottom:5px}.bar-label{color:var(--muted);font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bar-track{height:9px;border-radius:999px;background:#05060d;overflow:hidden}.bar-fill{display:block;height:100%;background:linear-gradient(90deg,var(--accent),#a17bff);border-radius:999px;transition:width .08s linear}.bar-fill--score{background:linear-gradient(90deg,#3a3f63,var(--accent-2))}.bar-num{font-variant-numeric:tabular-nums;text-align:right;font-size:12px;color:var(--text)}.bar-row.is-winner .bar-label{color:var(--accent-2);font-weight:700}.bar-row.is-winner .bar-fill--score{background:linear-gradient(90deg,var(--accent-2),#7bffb0)}.import-panel{background:linear-gradient(180deg,var(--bg-soft),var(--panel));border:1px solid var(--line);border-radius:var(--radius);padding:16px}.import-hint{margin:0 0 12px;color:var(--muted);font-size:13px}.import-error{margin:0 0 12px;padding:8px 12px;border-radius:10px;background:#ff6b6b1f;border:1px solid var(--danger);color:#ffc6c6;font-size:13px}.import-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px}.import-slot{display:flex;align-items:center;gap:10px;padding:8px;border-radius:12px;background:var(--bg-soft);border:1px solid var(--line);cursor:pointer;transition:border-color .15s ease,transform .08s ease}.import-slot:hover{border-color:var(--accent)}.import-slot:active{transform:translateY(1px)}.import-slot.is-busy{opacity:.6;pointer-events:none}.import-thumb{position:relative;flex:0 0 auto;width:52px;height:52px;border-radius:10px;overflow:hidden;background:#05060d;display:flex;align-items:center;justify-content:center}.import-thumb img{width:100%;height:100%;object-fit:cover}.import-plus,.import-spinner{position:absolute;right:3px;bottom:1px;font-size:14px;line-height:1;background:#060814b3;border-radius:6px;padding:1px 4px}.import-meta{display:flex;flex-direction:column;min-width:0}.import-meta strong{font-size:13px}.import-meta small{color:var(--muted);font-size:11px}.meme-panel{flex:1;display:flex}.meme-card{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;background:#05060d;border-radius:14px;padding:18px}.meme-img{max-width:100%;max-height:46vh;border-radius:12px;object-fit:contain}.meme-label{font-size:18px;font-weight:700;letter-spacing:.3px}.meme-missing{text-align:center;color:var(--muted)}.meme-missing-emoji{font-size:46px}.meme-missing code,.footer code,.banner code{background:var(--bg-soft);padding:2px 6px;border-radius:6px;font-size:.85em}.pop-enter-active,.pop-leave-active{transition:opacity .18s ease,transform .18s ease}.pop-enter-from{opacity:0;transform:scale(.92)}.pop-leave-to{opacity:0;transform:scale(1.05)}.footer{color:var(--muted);font-size:13px;text-align:center}.banner{margin:0;padding:12px 16px;border-radius:12px;font-size:14px}.banner--error{background:#ff6b6b1f;border:1px solid var(--danger);color:#ffc6c6}.debug-hands-title{margin-top:18px}.debug-chips{display:flex;flex-wrap:wrap;gap:6px}.chip{font-size:12px;padding:3px 9px;border-radius:999px;border:1px solid rgba(255,255,255,.12);color:var(--muted);white-space:nowrap}.chip--on{border-color:var(--accent-2);color:#06210f;background:var(--accent-2);font-weight:700}.import-token{display:flex;align-items:center;gap:8px;margin-bottom:12px}.import-token span{color:var(--muted);font-size:12px;white-space:nowrap}.import-token input{flex:1;max-width:280px;padding:5px 9px;border-radius:7px;border:1px solid rgba(255,255,255,.14);background:#00000040;color:inherit;font:inherit;font-size:13px}
