:root{--ui-bg:#1e18148c;--ui-fg:#f6efe4;--ui-muted:#f6efe4bf;--ui-line:#f6efe440;--font:"Noto Sans TC", "PingFang TC", "Microsoft JhengHei", system-ui, sans-serif}*{box-sizing:border-box}html,body{height:100%;font-family:var(--font);color:var(--ui-fg);-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;overscroll-behavior:none;background:#2a211b;margin:0;overflow:hidden}#scene{width:100vw;height:100vh;touch-action:none;outline:none;height:100dvh;display:block;position:fixed;inset:0}#ui{pointer-events:none;position:fixed;inset:0}#ui>*{pointer-events:auto}.badge{top:calc(12px + env(safe-area-inset-top));left:calc(12px + env(safe-area-inset-left));background:var(--ui-bg);border-radius:10px;flex-direction:column;gap:2px;max-width:calc(100vw - 90px);padding:8px 12px;font-size:13px;line-height:1.4;display:flex;position:absolute;pointer-events:none!important}.badge strong{font-size:15px;font-weight:600}.badge span{color:var(--ui-muted);font-size:12px}.help-button{top:calc(12px + env(safe-area-inset-top));right:calc(12px + env(safe-area-inset-right));border:1px solid var(--ui-line);background:var(--ui-bg);width:40px;height:40px;color:var(--ui-fg);font:600 18px var(--font);cursor:pointer;border-radius:50%;position:absolute}.hint{left:50%;bottom:calc(24px + env(safe-area-inset-bottom));background:var(--ui-bg);text-align:center;word-break:keep-all;overflow-wrap:anywhere;opacity:0;border-radius:12px;width:max-content;max-width:min(92vw,640px);padding:10px 16px;font-size:14px;line-height:1.6;transition:opacity .6s;position:absolute;transform:translate(-50%);pointer-events:none!important}.hint.visible{opacity:1}.message{background:var(--ui-bg);text-align:center;border-radius:12px;max-width:min(88vw,420px);padding:14px 20px;font-size:16px;line-height:1.6;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.joystick{left:calc(28px + env(safe-area-inset-left));bottom:calc(28px + env(safe-area-inset-bottom));border:1px solid var(--ui-line);touch-action:none;background:#1e181447;border-radius:50%;justify-content:center;align-items:center;width:120px;height:120px;display:flex;position:absolute}.joystick[hidden]{display:none}.joystick-knob{pointer-events:none;background:#f6efe48c;border-radius:50%;width:52px;height:52px}.joystick.active .joystick-knob{background:#f6efe4cc}@media (any-pointer:coarse){.hint{bottom:calc(168px + env(safe-area-inset-bottom))}}.fps-meter{right:calc(16px + env(safe-area-inset-right));bottom:calc(16px + env(safe-area-inset-bottom));background:var(--ui-bg);color:var(--ui-muted);font-variant-numeric:tabular-nums;border-radius:8px;padding:4px 10px;font-size:12px;position:absolute;pointer-events:none!important}
