:root{--bg:#14110fb8;--fg:#f3ece4;--accent:#e0803a;--accent-2:#f2a15c;--radius:14px;color:var(--fg);font-family:PingFang SC,Noto Sans SC,Helvetica Neue,system-ui,sans-serif}*{box-sizing:border-box}html,body{touch-action:none;background:#1a1613;height:100%;margin:0;overflow:hidden}canvas#c{width:100%;height:100%;display:block;position:fixed;inset:0}.hud{z-index:5;-webkit-backdrop-filter:blur(14px);position:fixed}.hidden{display:none!important}.top{padding:max(10px, env(safe-area-inset-top)) 14px 10px;-webkit-backdrop-filter:none;pointer-events:none;background:linear-gradient(#0000008c,#0000);justify-content:space-between;align-items:center;gap:12px;display:flex;top:0;left:0;right:0}.top>*{pointer-events:auto}.brand h1{letter-spacing:.02em;text-shadow:0 1px 6px #0009;margin:0;font-size:17px;font-weight:600}.brand span{opacity:.8;font-size:12px}.tools{align-items:center;gap:8px;display:flex}.btn{white-space:nowrap;appearance:none;background:var(--bg);color:var(--fg);cursor:pointer;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border:1px solid #ffffff2e;border-radius:999px;min-height:40px;padding:9px 16px;font-size:14px;transition:background .15s,transform .1s}.btn:hover{background:#28221ed9}.btn:active{transform:scale(.97)}.btn.primary{background:var(--accent);color:#1a1210;border-color:#0000;font-weight:600}.btn.primary:hover{background:var(--accent-2)}.btn.primary:disabled{opacity:.5;cursor:default}.btn.icon{text-align:center;width:40px;padding:0;font-weight:600}.btn.big{padding:14px 28px;font-size:16px}.btn.round{border-radius:50%;width:64px;height:64px;padding:0;font-size:22px}select#goto{appearance:none;background:var(--bg) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23f3ece4' stroke-width='1.6' fill='none'/%3E%3C/svg%3E") no-repeat right 12px center;color:var(--fg);border:1px solid #ffffff2e;border-radius:999px;min-height:40px;padding:9px 32px 9px 14px;font-size:14px}.fps{right:14px;bottom:max(10px, env(safe-area-inset-bottom));opacity:.55;font-variant-numeric:tabular-nums;font-size:11px}.hint{background:var(--bg);border-radius:999px;padding:8px 16px;font-size:13px;bottom:40px;left:50%;transform:translate(-50%)}.stick{z-index:6;pointer-events:none;background:#ffffff14;border:2px solid #ffffff59;border-radius:50%;width:128px;height:128px;margin:-64px 0 0 -64px;display:none;position:fixed}.stick.on{display:block}.knob{background:#ffffffbf;border-radius:50%;width:56px;height:56px;margin:-28px 0 0 -28px;position:absolute;top:50%;left:50%;box-shadow:0 2px 10px #0006}.altitude{right:18px;bottom:calc(40px + env(safe-area-inset-bottom));-webkit-backdrop-filter:none;backdrop-filter:none;flex-direction:column;gap:14px;display:flex}.panel{background:var(--bg);border-radius:var(--radius);border:1px solid #ffffff24;width:min(560px,100vw - 32px);max-height:80vh;padding:20px 22px;font-size:14px;line-height:1.6;top:50%;left:50%;overflow:auto;transform:translate(-50%,-50%)}.panel h2{text-transform:uppercase;letter-spacing:.12em;opacity:.7;margin:12px 0 4px;font-size:13px}.panel h2:first-child{margin-top:0}.panel p{margin:4px 0}kbd{text-align:center;background:#ffffff1f;border:1px solid #fff3;border-radius:6px;min-width:22px;margin:0 1px;padding:1px 6px;font:12px ui-monospace,monospace;display:inline-block}.dim{opacity:.6}.small{font-size:12px}.overlay{z-index:10;background:radial-gradient(at 50% 30%,#7846288c,#14110feb 70%);place-items:center;display:grid;position:fixed;inset:0}.card{text-align:center;background:var(--bg);border:1px solid #ffffff24;border-radius:20px;width:min(440px,100vw - 32px);padding:32px 28px;box-shadow:0 20px 60px #00000080}.card h1{margin:0 0 4px;font-size:24px;font-weight:600}.card p{margin:6px 0}.progress{background:#ffffff1f;border-radius:3px;height:6px;margin:18px 0 8px;overflow:hidden}#bar{background:linear-gradient(90deg, var(--accent), var(--accent-2));width:0;height:100%;transition:width .2s}.card .btn.big{width:100%;margin:14px 0 6px}.touch-only{display:none}body.touch .touch-only{display:flex}body.touch .panel .touch-only{display:block}body.touch .desktop-only,body:not(.touch) .altitude{display:none}.drone-only{visibility:hidden}body[data-mode=drone] .drone-only{visibility:visible}@media (max-width:640px){.top{gap:8px;padding-left:10px;padding-right:10px}.brand{display:none}.tools{flex:1;justify-content:space-between}.btn{padding:8px 12px;font-size:13px}select#goto{flex:1;min-width:0;max-width:150px}}
