:root{--r1:20px;--r2:12px;--r3:8px;--r4:6px;--ink:#171e27;--ink-2:#4a5567;--muted:#7b8794;--line:#10182817;--panel:#ffffffd1;--panel-solid:#fff;--accent:#2f6bff;--accent-soft:#2f6bff1f;--shadow:0 10px 34px #1018281a, 0 2px 8px #1018280f;--font:-apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Source Han Sans SC", sans-serif;--mono:ui-monospace, SFMono-Regular, Menlo, Consolas, monospace}*{box-sizing:border-box}html,body{height:100%;color:var(--ink);font-family:var(--font);-webkit-font-smoothing:antialiased;background:#eef1f5;margin:0;overflow:hidden}#stage{touch-action:none;width:100%;height:100%;display:block;position:fixed;top:0;bottom:0;left:0;right:0}body.walking #stage{cursor:none}.topbar{border-radius:var(--r2);background:var(--panel);border:1px solid var(--line);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(20px)saturate(1.6);z-index:10;align-items:center;gap:10px;padding:10px 16px;display:flex;position:fixed;top:16px;left:16px}.topbar h1{letter-spacing:.01em;margin:0;font-size:14px;font-weight:600}.topbar .dot{background:var(--accent);width:8px;height:8px;box-shadow:0 0 0 4px var(--accent-soft);border-radius:50%}.topbar .meta{color:var(--muted);font-variant-numeric:tabular-nums;font-size:12px}.panel{border-radius:var(--r1);background:var(--panel);border:1px solid var(--line);width:272px;max-height:calc(100vh - 132px);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(20px)saturate(1.6);z-index:10;flex-direction:column;transition:transform .28s cubic-bezier(.22,.61,.36,1),opacity .2s;display:flex;position:fixed;top:72px;left:16px;overflow:hidden}.panel.hidden{opacity:0;pointer-events:none;transform:translate(-292px)}.panel-head{color:var(--ink-2);letter-spacing:.04em;justify-content:space-between;align-items:center;padding:14px 16px 10px;font-size:12px;font-weight:600;display:flex}.head-actions{gap:6px;display:flex}.head-actions button{border:1px solid var(--line);color:var(--ink-2);font:inherit;border-radius:var(--r4);cursor:pointer;background:#ffffffb3;padding:5px 8px;font-size:11px;line-height:1;transition:background .15s,color .15s,border-color .15s}.head-actions button:hover{color:var(--ink);background:#fff;border-color:#1018282e}.panel-body{overscroll-behavior:contain;padding:0 8px 8px;overflow-y:auto}.panel-body::-webkit-scrollbar{width:8px}.panel-body::-webkit-scrollbar-thumb{background:#10182824 padding-box content-box;border:2px solid #0000;border-radius:4px}.layer{border-radius:var(--r3);cursor:default;-webkit-user-select:none;user-select:none;align-items:center;gap:8px;padding:7px 8px;display:flex}.layer:hover{background:#1018280b}.layer.off .layer-name{color:var(--muted);text-decoration:line-through;text-decoration-thickness:1px}.layer.off .swatch{opacity:.25}.eye{cursor:pointer;border-radius:var(--r4);width:22px;height:22px;color:var(--ink-2);background:0 0;border:0;flex:none;place-items:center;padding:0;display:grid}.eye:hover{background:#10182812}.eye svg{width:15px;height:15px}.layer.off .eye{color:#b6bec9}.swatch{background:var(--accent);opacity:.85;border-radius:2px;flex:none;width:3px;height:16px}.layer-name{white-space:nowrap;text-overflow:ellipsis;cursor:pointer;flex:1;font-size:13px;overflow:hidden}.layer-cnt{color:var(--muted);font-variant-numeric:tabular-nums;flex:none;font-size:11px}.panel-foot{border-top:1px solid var(--line);padding:8px 12px 14px}.panel-foot input{border:1px solid var(--line);border-radius:var(--r3);width:100%;font:inherit;color:var(--ink);background:#ffffffbf;outline:none;padding:7px 10px;font-size:12px}.panel-foot input:focus{border-color:var(--accent);background:#fff}.rail{border-radius:var(--r1);background:var(--panel);border:1px solid var(--line);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(20px)saturate(1.6);z-index:10;flex-direction:column;gap:6px;padding:8px;display:flex;position:fixed;top:50%;right:16px;transform:translateY(-50%)}.rail button{border-radius:var(--r2);width:38px;height:38px;color:var(--ink-2);cursor:pointer;background:0 0;border:0;place-items:center;font-size:16px;line-height:1;transition:background .15s,color .15s;display:grid}.rail button:hover{color:var(--ink);background:#1018280f}.rail button.on{background:var(--accent-soft);color:var(--accent)}.rail button.busy{background:#1018280f}.rail button.wide{letter-spacing:.02em;width:38px;font-size:11px;font-weight:600}.rail button.wide:hover{background:#1018280f}.rail button.bg{font-size:17px}.hud{border-radius:var(--r3);background:var(--panel);border:1px solid var(--line);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(16px);font-family:var(--mono);color:var(--ink-2);font-variant-numeric:tabular-nums;z-index:10;white-space:pre;padding:8px 12px;font-size:11px;line-height:1.7;position:fixed;bottom:16px;right:16px}.hint{color:var(--muted);background:var(--panel);border:1px solid var(--line);-webkit-backdrop-filter:blur(16px);box-shadow:var(--shadow);z-index:10;border-radius:999px;padding:7px 14px;font-size:12px;transition:opacity .3s;position:fixed;bottom:18px;left:50%;transform:translate(-50%)}.hint.gone{opacity:0}.loading{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:50;background:#eef1f5eb;place-items:center;transition:opacity .45s;display:grid;position:fixed;top:0;bottom:0;left:0;right:0}.loading.done{opacity:0;pointer-events:none}.loading-inner{text-align:center;width:min(320px,70vw)}.bar{background:#1018281a;border-radius:999px;height:4px;overflow:hidden}.bar i{background:var(--accent);border-radius:999px;width:0%;height:100%;transition:width .25s ease-out;display:block}.loading p{color:var(--ink-2);margin:14px 0 0;font-size:13px}.crosshair{z-index:12;background:#171e2780;border-radius:50%;width:6px;height:6px;margin:-3px 0 0 -3px;display:none;position:fixed;top:50%;left:50%;box-shadow:0 0 0 1.5px #fffc}body.walking .crosshair{display:block}.toast{border-radius:var(--r2);border:1px solid var(--line);max-width:min(520px,80vw);color:var(--ink);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(16px);z-index:30;background:#fffffff0;padding:10px 18px;font-size:13px;transition:opacity .45s;position:fixed;top:16px;left:50%;transform:translate(-50%)}.toast.gone{opacity:0}@media (max-width:720px){.panel{width:calc(100vw - 32px)}.hud{display:none}}
