:root{--ink: #1d2330;--ink-soft: #5b6475;--paper: #eef0f3;--card: rgba(255, 255, 255, .82);--line: rgba(29, 35, 48, .12);--accent: #1d2330;--radius: 14px;font-family:ui-rounded,SF Pro Rounded,Nunito,system-ui,-apple-system,sans-serif}*{box-sizing:border-box}html,body{margin:0;height:100%;overflow:hidden;background:var(--paper);color:var(--ink);overscroll-behavior:none}#scene{position:fixed;inset:0}#scene canvas{display:block;touch-action:none;cursor:grab}#scene canvas:active{cursor:grabbing}#labels{position:fixed;inset:0;pointer-events:none;overflow:hidden}.label{position:absolute;top:0;left:0;padding:4px 10px 5px;border-radius:999px;background:#fffffff0;color:var(--ink);font-size:15px;font-weight:700;line-height:1;letter-spacing:.01em;box-shadow:0 1px 2px #14192329,0 6px 18px #14192314;border:1.5px solid rgba(29,35,48,.14);white-space:nowrap;will-change:transform}.label--big{border-width:3px;border-color:#1d23308c}.label--ghost{background:#1d2330e6;color:#fff;border-color:#ffffff40}.label--ghost.label--invalid{background:#e5342b}.label--pulse{animation:label-pulse .42s ease-out}@keyframes label-pulse{0%{scale:1}40%{scale:1.28}to{scale:1}}.hud{position:fixed;top:max(16px,env(safe-area-inset-top));left:16px;right:16px;display:flex;align-items:center;justify-content:space-between;gap:12px;pointer-events:none}.brand{font-size:15px;font-weight:800;letter-spacing:.16em;text-transform:lowercase;color:var(--ink-soft);padding-left:4px}.actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end;pointer-events:auto}.btn{appearance:none;border:1px solid var(--line);background:var(--card);color:var(--ink);font:inherit;font-size:13px;font-weight:650;padding:9px 14px;border-radius:999px;cursor:pointer;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);box-shadow:0 1px 2px #1419230f;-webkit-user-select:none;user-select:none;touch-action:manipulation;transition:transform .12s ease,background .12s ease,box-shadow .12s ease}.btn:hover{background:#fff;box-shadow:0 4px 14px #1419231a}.btn:active{transform:translateY(1px) scale(.985)}.btn--primary{background:var(--accent);color:#fff;border-color:transparent}.btn--primary:hover{background:#2b3344}.btn--icon{display:inline-grid;place-items:center;padding:7px 10px}.modal{width:min(460px,calc(100vw - 32px));max-height:calc(100dvh - 48px);overflow:auto;padding:18px 20px 20px;border:1px solid var(--line);border-radius:18px;background:#fff;color:var(--ink);box-shadow:0 24px 60px #14192338}.modal::backdrop{background:#1d233052;backdrop-filter:blur(2px)}.modal__head{display:flex;align-items:center;justify-content:space-between}.modal h2{margin:0;font-size:18px;font-weight:800}.modal h3{margin:18px 0 8px;font-size:12px;font-weight:750;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft)}.modal__close{appearance:none;border:0;background:none;color:var(--ink-soft);font-size:24px;line-height:1;width:32px;height:32px;border-radius:999px;cursor:pointer;-webkit-user-select:none;user-select:none;touch-action:manipulation}.modal__close:hover{background:#1d23300f;color:var(--ink)}.keys{display:grid;grid-template-columns:minmax(0,auto) minmax(0,1fr);gap:8px 16px;margin:0;font-size:14px}.keys dt{font-weight:650}.keys dd{margin:0;color:var(--ink-soft)}kbd{display:inline-block;min-width:1.6em;padding:1px 6px;border:1px solid var(--line);border-bottom-width:2px;border-radius:6px;background:var(--paper);font:650 12px/1.5 inherit;text-align:center}.perf{position:fixed;bottom:max(14px,env(safe-area-inset-bottom));left:16px;display:flex;gap:12px;padding:7px 12px;border-radius:999px;background:#1d2330c7;color:#ffffffdb;font:500 11px/1 ui-monospace,SF Mono,Menlo,monospace;letter-spacing:.03em;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);pointer-events:none}.perf span{white-space:nowrap}.perf--hidden{display:none}.hint{position:fixed;left:50%;bottom:max(22px,env(safe-area-inset-bottom));transform:translate(-50%);padding:10px 18px;border-radius:999px;background:#ffffffe6;border:1px solid var(--line);box-shadow:0 8px 24px #14192314;font-size:13px;font-weight:600;color:var(--ink);white-space:nowrap;pointer-events:none;transition:opacity .5s ease,transform .5s ease;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}.hint__sub{color:var(--ink-soft);font-weight:500}.hint--gone{opacity:0;transform:translate(-50%) translateY(8px)}@media(max-width:640px){.hud{flex-direction:column;align-items:flex-start}.actions{justify-content:flex-start}.hint{font-size:12px;white-space:normal;text-align:center;max-width:calc(100vw - 32px)}}
