:root{--scene:#dfe3e6;--slate:#1c2733;--slate-raised:#283646;--slate-line:#3a4a5c;--chalk:#eef1f3;--chalk-dim:#a9b4bf;--tape:#f2c230;--tape-ink:#211a02;--alarm:#ff8a7a;--alarm-solid:#c83a2b;--font:"Bahnschrift", "DIN Alternate", "Roboto Condensed", "Segoe UI", system-ui, sans-serif;--radius:6px;--gap:16px}*{box-sizing:border-box}html,body{height:100%;margin:0}body{background:var(--scene);color:var(--chalk);font-family:var(--font);font-size:15px;line-height:1.45;overflow:hidden}[hidden]{display:none!important}#viewport{position:fixed;inset:0}#viewport canvas{touch-action:none;display:block}h1,h2,p{margin:0}kbd{font:inherit;opacity:.6;border:1px solid;border-radius:3px;padding:1px 5px;font-size:.8em}:focus-visible{outline:2px solid var(--tape);outline-offset:2px}.button{font:inherit;color:var(--chalk);background:var(--slate-raised);border:1px solid var(--slate-line);border-radius:var(--radius);cursor:pointer;padding:10px 14px;font-weight:600}.button:hover:not(:disabled){border-color:var(--chalk-dim)}.button:disabled{cursor:not-allowed;color:var(--chalk-dim)}.button.primary{background:var(--tape);border-color:var(--tape);color:var(--tape-ink)}.button.primary:hover:not(:disabled){filter:brightness(1.07)}.button.small{padding:6px 10px;font-size:.9em}.button.ghost{background:0 0}#panel{top:var(--gap);left:var(--gap);bottom:var(--gap);background:var(--slate);border-radius:10px;flex-direction:column;gap:12px;width:300px;padding:18px 16px 12px;display:flex;position:fixed;box-shadow:0 12px 32px #1c273347}.panel-head h1{letter-spacing:.01em;font-size:1.6rem;font-weight:700;font-stretch:85%;line-height:1.1}.scale-note{color:var(--chalk-dim);align-items:center;gap:8px;margin-top:6px;font-size:.87rem;display:flex}.ruler{border:solid var(--tape);background:linear-gradient(to right, transparent calc(50% - 1px), var(--tape) calc(50% - 1px), var(--tape) calc(50% + 1px), transparent calc(50% + 1px)) bottom / 100% 5px no-repeat;border-width:0 2px 2px;width:44px;height:9px}.hint{color:var(--chalk-dim);font-size:.85rem}.upload{background:var(--slate-raised);border-radius:var(--radius);padding:10px 12px}.upload-label{overflow-wrap:anywhere;font-size:.9rem}.upload.failed .upload-label{color:var(--alarm)}.bar{background:var(--slate-line);border-radius:3px;height:6px;margin-top:8px;overflow:hidden}.bar-fill{background:var(--tape);width:0;height:100%;transition:width .12s linear}.upload.failed .bar{display:none}.upload-actions{gap:8px;margin-top:10px;display:flex}.loading{color:var(--chalk-dim);font-size:.9rem}.list-title{border-top:1px solid var(--slate-line);color:var(--chalk-dim);margin-top:4px;padding-top:12px;font-size:.87rem;font-weight:600}.object-list{flex:1;min-height:0;margin:0 -8px;padding:0;list-style:none;overflow-y:auto}.object-row{border-radius:0 var(--radius) var(--radius) 0;border-left:3px solid #0000;align-items:center;gap:2px;padding:2px 4px 2px 0;display:flex}.object-row.selected{background:var(--slate-raised);border-left-color:var(--tape)}.object-row.is-hidden .object-name{color:var(--chalk-dim)}.object-row.has-error .object-name{color:var(--alarm)}.object-name{min-width:0;font:inherit;color:var(--chalk);text-align:left;border-radius:var(--radius);cursor:pointer;text-overflow:ellipsis;white-space:nowrap;background:0 0;border:0;flex:1;padding:8px;overflow:hidden}.object-rename{min-width:0;font:inherit;color:var(--chalk);background:var(--slate);border:1px solid var(--tape);border-radius:var(--radius);flex:1;padding:7px}.icon-button{width:30px;height:30px;color:var(--chalk-dim);border-radius:var(--radius);cursor:pointer;background:0 0;border:0;flex:none;place-items:center;padding:0;display:grid}.icon-button:hover{color:var(--chalk);background:var(--slate-line)}.icon-button.danger:hover{color:#fff;background:var(--alarm-solid)}.icon-button svg{width:17px;height:17px}.toolbar{left:calc(50% + 158px);bottom:var(--gap);background:var(--slate);border-radius:8px;gap:4px;padding:4px;display:flex;position:fixed;transform:translate(-50%);box-shadow:0 8px 24px #1c273340}.toolbar button{font:inherit;color:var(--chalk-dim);cursor:pointer;white-space:nowrap;background:0 0;border:0;border-radius:5px;padding:8px 14px;font-weight:600}.toolbar button:hover{color:var(--chalk)}.toolbar button[aria-pressed=true]{color:var(--tape-ink);background:var(--tape)}.button.vr{top:var(--gap);right:var(--gap);background:var(--slate);border-color:var(--slate);padding:12px 18px;position:fixed;box-shadow:0 8px 24px #1c273340}.button.vr:not(:disabled){background:var(--tape);border-color:var(--tape);color:var(--tape-ink);font-size:1.05rem}.save-status{top:var(--gap);color:#fff;background:var(--alarm-solid);border-radius:var(--radius);padding:8px 14px;font-weight:600;position:fixed;left:calc(50% + 158px);transform:translate(-50%)}.empty{text-align:center;color:#45525f;pointer-events:none;max-width:36ch;position:fixed;top:34%;left:calc(50% + 158px);transform:translate(-50%)}.empty-title{color:var(--slate);margin-bottom:4px;font-size:1.7rem;font-weight:700;font-stretch:85%}.notices{right:var(--gap);max-height:calc(100vh - 160px);width:min(380px, calc(100vw - 2 * var(--gap)));flex-direction:column;gap:8px;display:flex;position:fixed;top:76px;overflow-y:auto}.notice{background:var(--slate);border-left:4px solid var(--chalk-dim);border-radius:var(--radius);overflow-wrap:anywhere;align-items:flex-start;gap:8px;padding:10px 8px 10px 12px;display:flex;box-shadow:0 8px 24px #1c273340}.notice p{flex:1;min-width:0}.notice.warn{border-left-color:var(--tape)}.notice.error{border-left-color:var(--alarm-solid)}.drop-overlay{border:4px dashed var(--tape);pointer-events:none;background:#1c2733b8;place-items:center;font-size:1.5rem;font-weight:700;display:grid;position:fixed;inset:0}.login{width:min(340px, calc(100vw - 2 * var(--gap)));background:var(--slate);border-radius:10px;flex-direction:column;gap:10px;height:fit-content;margin:auto;padding:28px 24px 24px;display:flex;position:fixed;inset:0;box-shadow:0 12px 32px #1c273347}.login h1{margin-bottom:8px;font-size:1.9rem;font-weight:700;font-stretch:85%}.login label{color:var(--chalk-dim);font-size:.9rem}.login input{font:inherit;color:var(--chalk);background:var(--slate-raised);border:1px solid var(--slate-line);border-radius:var(--radius);padding:10px 12px}.login-error{color:var(--alarm);font-weight:600}.login .button{margin-top:6px}body.in-vr #panel,body.in-vr .toolbar,body.in-vr .empty{display:none}@media (width<=760px){#panel{top:auto;right:var(--gap);width:auto;max-height:46vh}.toolbar{top:72px;bottom:auto;left:50%}.save-status,.empty{left:50%}.empty{width:calc(100vw - 2 * var(--gap));top:22%}.notices{top:124px;bottom:auto}}@media (prefers-reduced-motion:reduce){.bar-fill{transition:none}}
