:root{color-scheme:dark;--bg: #14161a;--panel: #1c1f26;--border: #2c3038;--text: #e8e8ea;--muted: #9aa0ab;--accent: #5b8cff;--accent-dim: #2c3f73;--accent-2: #7ee3ff;--ok: #4caf6d;--err: #e05a5a;font-family:system-ui,-apple-system,Segoe UI,sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text)}#app{display:grid;grid-template-rows:auto 1fr;height:100vh}header{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem 1rem;padding:.75rem 1.25rem;border-bottom:1px solid var(--border);background:var(--panel)}header button{white-space:nowrap}header h1{font-family:ui-monospace,Cascadia Code,Fira Code,Menlo,Consolas,monospace;font-size:1.4rem;font-weight:800;letter-spacing:-.01em;margin:0;flex:1 1 14rem;background:linear-gradient(90deg,var(--accent-2),var(--accent) 60%,var(--accent-2));-webkit-background-clip:text;background-clip:text;color:transparent;text-shadow:0 0 22px rgba(91,140,255,.35)}button{background:var(--accent-dim);color:var(--text);border:1px solid var(--border);border-radius:6px;padding:.5rem .9rem;cursor:pointer;font-size:.85rem}button:hover{background:var(--accent)}.header-link{background:var(--accent-dim);color:var(--text);border:1px solid var(--border);border-radius:6px;padding:.5rem .9rem;font-size:.85rem;text-decoration:none;white-space:nowrap}.header-link:hover{background:var(--accent)}button:disabled{opacity:.5;cursor:not-allowed}select,input[type=number],input[type=text]{background:var(--panel);color:var(--text);border:1px solid var(--border);border-radius:6px;padding:.35rem .5rem;font-size:.8rem}.status-dot{width:8px;height:8px;border-radius:50%;display:inline-block;background:var(--muted)}.status-dot.connected{background:var(--ok)}.status-dot.connecting{background:#d0a020}main{display:grid;grid-template-columns:minmax(260px,340px) 1fr;overflow:hidden}#library-pane{display:flex;flex-direction:column;min-height:0;border-right:1px solid var(--border)}#library-filter{margin:.6rem .75rem 0;padding:.4rem .6rem;background:var(--panel);color:var(--text);border:1px solid var(--border);border-radius:6px;font-size:.85rem}#library{overflow-y:auto;padding:.75rem;flex:1}.core-more{grid-column:1 / -1}.category-label{font-size:.7rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin:1rem 0 .4rem}.core-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(90px,1fr));gap:.5rem}.core-card{background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:.4rem;cursor:pointer;text-align:center;font-size:.7rem;color:var(--muted)}.core-card.selected{border-color:var(--accent);color:var(--text)}.core-card .thumb{width:100%;aspect-ratio:1;border-radius:50%;background:#000;background-size:contain;background-repeat:no-repeat;background-position:center;margin-bottom:.3rem;border:1px solid var(--border);display:flex;align-items:center;justify-content:center}.core-card .thumb-missing{color:var(--muted);font-size:.65rem;text-align:center;padding:0 .4rem}#editor-panel{padding:1.25rem;overflow-y:auto;display:flex;flex-direction:column;gap:1rem;align-items:center}#editor-panel .core-title{align-self:flex-start;font-size:1.1rem;font-weight:600}#editor-canvas{border-radius:50%;border:1px solid var(--border);touch-action:none;cursor:grab}.hint{color:var(--muted);font-size:.75rem;max-width:400px;text-align:center}.controls-row{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap;justify-content:center}.empty-state{color:var(--muted);margin:auto;text-align:center}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:10}.modal{background:var(--panel);border:1px solid var(--border);border-radius:10px;width:min(900px,92vw);height:min(720px,86vh);display:flex;flex-direction:column;padding:1rem;gap:.5rem}.modal-header{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.modal-header input{flex:1;background:var(--bg);border:1px solid var(--border);border-radius:6px;color:var(--text);padding:.5rem .7rem;font-size:.85rem}.modal-hint{max-width:none;text-align:left}.modal-grid{overflow-y:auto;display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:.6rem;align-content:start}.import-card{cursor:pointer;border:1px solid var(--border);border-radius:6px;padding:.3rem;text-align:center;background:var(--bg)}.import-card:hover{border-color:var(--accent)}.import-card img{width:100%;aspect-ratio:256 / 64;object-fit:contain;background:#000;image-rendering:pixelated}.import-name{font-size:.65rem;color:var(--muted);margin-top:.25rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.review-list{overflow-y:auto}.review-row+.review-row{margin-top:.3rem}.review-row{display:grid;grid-template-columns:auto 48px 1fr auto 1fr;align-items:center;gap:.6rem;padding:.35rem .5rem;border:1px solid var(--border);border-radius:6px;cursor:pointer;font-size:.8rem}.review-row:hover{border-color:var(--accent)}.review-row img{width:48px;aspect-ratio:256 / 64;object-fit:contain;background:#000;image-rendering:pixelated}.review-core{white-space:nowrap}.review-match{text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.command-list{overflow-y:auto;display:flex;flex-direction:column;gap:1rem}.command-category-label{font-size:.75rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.command-row{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;padding:.5rem;border:1px solid var(--border);border-radius:6px}.command-row.disabled{opacity:.55}.command-main{display:flex;flex-direction:column;gap:.15rem;flex:1 1 220px;min-width:0}.command-syntax{font-family:monospace;font-size:.8rem}.command-summary{color:var(--muted);font-size:.75rem}.command-params{display:flex;flex-wrap:wrap;gap:.4rem;align-items:center}.command-params label{display:flex;flex-direction:column;font-size:.7rem;color:var(--muted);gap:.15rem}.command-params input,.command-params select{background:var(--bg);border:1px solid var(--border);border-radius:4px;color:var(--text);padding:.25rem .4rem;font-size:.8rem;width:6rem}.command-params input[type=text]{width:9rem}.command-log{font-family:monospace;font-size:.75rem;background:var(--bg);border:1px solid var(--border);border-radius:6px;padding:.5rem;height:120px;overflow-y:auto;white-space:pre-wrap;word-break:break-all}.command-log .log-tx{color:var(--accent)}.command-log .log-rx{color:var(--muted)}.github-ribbon{position:fixed;bottom:0;right:0;z-index:20;width:170px;height:170px;overflow:hidden;pointer-events:none}.github-ribbon span{position:absolute;bottom:44px;right:-48px;transform:rotate(-45deg);width:230px;padding:.45rem 0;text-align:center;background:linear-gradient(135deg,var(--accent),var(--accent-dim));color:#fff;font-size:.75rem;font-weight:700;letter-spacing:.02em;border-top:1px solid rgba(255,255,255,.25);border-bottom:1px solid rgba(0,0,0,.25);box-shadow:0 3px 10px #00000080;pointer-events:auto}.github-ribbon span:hover{background:var(--accent)}.about-modal{width:min(640px,92vw);height:min(600px,84vh)}.about-title{display:flex;flex-direction:column;gap:.1rem}.about-title-main{font-size:1.1rem;font-weight:700;color:var(--text)}.about-title-sub{font-size:.7rem;text-transform:uppercase;letter-spacing:.08em;color:var(--accent)}.about-body{overflow-y:auto;font-size:.85rem;line-height:1.6;padding-right:.25rem}.about-lead{margin-top:0;color:var(--text)}.about-section{margin-top:1.5rem;padding-top:1.1rem;border-top:1px solid var(--border)}.about-section h3{margin:0 0 .7rem;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--accent)}.about-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.6rem}.about-list li{padding-left:.9rem;border-left:2px solid var(--accent-dim);color:var(--muted)}.about-list li strong{color:var(--text)}.about-links{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.45rem}.about-links a{display:flex;flex-direction:column;gap:.1rem;padding:.55rem .8rem;border:1px solid var(--border);border-radius:8px;background:var(--bg);text-decoration:none;transition:border-color .15s ease}.about-links a:hover{border-color:var(--accent)}.about-link-title{color:var(--text);font-weight:600;font-size:.85rem}.about-link-desc{color:var(--muted);font-size:.75rem}.about-link-url{color:var(--accent);font-family:monospace;font-size:.7rem;overflow-wrap:anywhere}
