:root{font-family:system-ui,sans-serif;color:#fff;background:#000;--safe-area-top:env(safe-area-inset-top,0px);--safe-area-right:env(safe-area-inset-right,0px);--safe-area-bottom:env(safe-area-inset-bottom,0px);--safe-area-left:env(safe-area-inset-left,0px)}*{box-sizing:border-box}html,body,#app{margin:0;width:100%;height:100%;overflow:hidden}#app{position:absolute;left:0;top:0;display:flex;flex-direction:row;height:100dvh}#viewport{display:flex;flex:1;min-width:0;min-height:0;align-items:center;justify-content:center;overflow:hidden;background:#000}#viewport canvas{display:block;flex:none;outline:none;touch-action:none}pre{margin:24px;white-space:pre-wrap;overflow-wrap:anywhere}#app[data-layout=portrait]{flex-direction:column}#app[data-layout=portrait] #viewport{margin-bottom:var(--virtual-controls-height,0px);align-items:flex-start}.external-settings{font:14px/1.5 system-ui,sans-serif;color:#f2f6ff}.external-settings,.external-settings *{-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;user-select:none;-webkit-user-select:none}.external-settings [hidden]{display:none!important}.external-settings button,.external-settings select{font:inherit;color:inherit}.external-settings button{cursor:pointer}.settings-float{position:fixed;z-index:80;display:grid;place-items:center;box-sizing:border-box;border:1px solid #ffffffa0;border-radius:50%;background:#40516bbf;box-shadow:inset 0 1px 6px #ffffff50,0 2px 12px #0005;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);color:#fff;font-size:25px!important;padding:0;touch-action:none;opacity:.88}.settings-float:hover,.settings-float:focus-visible{opacity:1;outline:2px solid #fff9;outline-offset:-2px}.settings-float[data-dock]:not([data-dock=""]){border-radius:7px;opacity:.86;background:linear-gradient(110deg,#ffffffa0,#cbdfff78 50%,#e6f0ffb0);box-shadow:inset 0 0 4px #fffc,0 1px 6px #0005}.settings-shade{position:fixed;left:0;top:0;width:100vw;height:100dvh;z-index:100;display:flex;align-items:center;justify-content:center;padding:12px;background:#050b15a8;box-sizing:border-box;overscroll-behavior:contain}.settings-dialog{width:min(620px,100%);max-height:calc(100dvh - 24px);overflow:auto;overscroll-behavior:contain;border:1px solid #ffffff45;border-radius:14px;background:#172131f5;box-shadow:0 16px 70px #0008;padding:18px;box-sizing:border-box}.settings-header{display:flex;justify-content:space-between;align-items:center;gap:16px}.settings-header h2{font-size:18px;margin:0}.settings-dialog button,.settings-dialog select{border:1px solid #8195b766;border-radius:6px;background:#293950;padding:7px 12px;min-height:36px}.settings-dialog button:focus-visible,.settings-dialog select:focus-visible{outline:2px solid #a6c9ff;outline-offset:2px}.settings-tabs{display:flex;margin-top:18px;border-bottom:1px solid #ffffff30}.settings-tab[aria-selected=true]{border-radius:6px 6px 0 0;background:#405a7b;border-bottom-color:transparent}.settings-input-panel{padding-top:16px}.settings-mode{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.settings-mode select{max-width:100%}.settings-note{color:#b8c8df;font-size:12px}.settings-key-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 20px}.settings-key-row{display:flex;align-items:center;justify-content:space-between;gap:8px}.settings-key{min-width:90px}.settings-key.is-capturing{outline:2px solid #a6c9ff;background:#465f82}.settings-announcement{min-height:1.5em;color:#bfd8ff;font-size:12px}.settings-actions{display:flex;gap:10px;flex-wrap:wrap}.psp-controls{position:fixed;z-index:60;pointer-events:none;overflow:hidden;--psp-unit:34px}.psp-button,.psp-analog{position:absolute;pointer-events:auto;touch-action:none;box-sizing:border-box;border:1px solid #ffffff68;background:#19253655;box-shadow:inset 0 1px 5px #ffffff24,0 1px 6px #0003;color:#fff;opacity:.65}.psp-button{padding:0;font-size:calc(var(--psp-unit)*.63)!important;text-align:center;line-height:1}.psp-button.is-pressed{background:#cedeff75;opacity:1}.psp-face,.psp-dpad{width:var(--psp-unit);height:var(--psp-unit)}.psp-face{border-radius:50%}.psp-dpad{border-radius:20%}.psp-up{left:calc(var(--psp-unit)*1.4);bottom:calc(var(--psp-unit)*3.4)}.psp-down{left:calc(var(--psp-unit)*1.4);bottom:calc(var(--psp-unit)*1.4)}.psp-left{left:calc(var(--psp-unit)*.4);bottom:calc(var(--psp-unit)*2.4)}.psp-right{left:calc(var(--psp-unit)*2.4);bottom:calc(var(--psp-unit)*2.4)}.psp-triangle{right:calc(var(--psp-unit)*1.4);bottom:calc(var(--psp-unit)*3.4)}.psp-cross{right:calc(var(--psp-unit)*1.4);bottom:calc(var(--psp-unit)*1.4)}.psp-square{right:calc(var(--psp-unit)*2.4);bottom:calc(var(--psp-unit)*2.4)}.psp-circle{right:calc(var(--psp-unit)*.4);bottom:calc(var(--psp-unit)*2.4)}.psp-shoulder{bottom:calc(var(--psp-unit)*4.7);width:calc(var(--psp-unit)*2.4);height:calc(var(--psp-unit)*.8);border-radius:10px;font-size:calc(var(--psp-unit)*.45)!important}.psp-l{left:calc(var(--psp-unit)*.4)}.psp-r{right:calc(var(--psp-unit)*.4)}.psp-small{bottom:calc(var(--psp-unit)*.25);height:calc(var(--psp-unit)*.65);width:calc(var(--psp-unit)*1.7);border-radius:20px;font-size:calc(var(--psp-unit)*.26)!important}.psp-select{right:calc(var(--psp-unit)*2.4)}.psp-start{right:calc(var(--psp-unit)*.4)}.psp-analog{left:calc(var(--psp-unit)*1.3);bottom:calc(var(--psp-unit)*.1);width:calc(var(--psp-unit)*1.15);height:calc(var(--psp-unit)*1.15);border-radius:50%;display:grid;place-items:center}.psp-analog-thumb{width:70%;height:70%;border-radius:50%;background:repeating-radial-gradient(#b6c5d366 0 1px,#24324699 2px 3px);border:1px solid #ffffff65;pointer-events:none}@media(max-width:420px){.settings-key-list{grid-template-columns:1fr}.settings-dialog{padding:14px}}
