*,*:before,*:after{box-sizing:border-box}body,html{margin:0;padding:0;width:100%;height:100%;overflow:hidden;background:#000;font-family:monospace}canvas{display:block;position:fixed;inset:0}#status{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);color:#aaf;font-size:1rem;font-family:monospace;background:#000000b3;padding:12px 24px;border-radius:8px;z-index:200;pointer-events:none}#joint-panel{position:fixed;top:16px;right:16px;background:#14285ae0;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);color:#d8e8ff;padding:16px 18px;border-radius:12px;width:250px;max-height:92vh;overflow-y:auto;z-index:100;font-size:12px;line-height:1.5;border:1px solid rgba(100,160,255,.35);box-shadow:0 8px 32px #0009,0 0 0 1px #508cff1a}#joint-panel b{display:block;margin-bottom:12px;font-size:13px;color:#6af;letter-spacing:.04em;text-transform:uppercase}.joint-row{margin-bottom:12px}.joint-label{display:flex;justify-content:space-between;margin-bottom:4px;color:#9be}.joint-val{color:#5cf;font-weight:700;font-variant-numeric:tabular-nums}#joint-panel input[type=range]{width:100%;cursor:pointer;accent-color:#55aaff;height:4px}.reset-btn{margin-top:14px;width:100%;padding:7px;background:#3264c873;color:#8cf;border:1px solid rgba(80,160,255,.5);border-radius:7px;cursor:pointer;font-family:monospace;font-size:12px;letter-spacing:.04em;transition:background .15s}.reset-btn:hover{background:#4682f0a6}
