/* FairyGUI alone owns layout, clipping, hit regions, labels and scrolling.
   Legacy markup is an invisible controller/data source, never a visual layer. */
@font-face{font-family:WorldRun;src:local('Arial Rounded MT Bold');font-weight:800}
html,body{width:100%;height:100%;margin:0;overflow:hidden}
[hidden]{display:none!important}
#fairygui-stage{position:fixed!important;inset:0!important;width:100vw!important;height:100dvh!important;z-index:2147483000!important;pointer-events:auto!important;touch-action:none;outline:0;display:block!important;visibility:visible!important;margin:0!important}
html.fgui-native body>:not(#world):not(#fairygui-stage):not(#fairygui-ime):not(#render-diagnostics):not(script):not(style){pointer-events:none!important;filter:opacity(0)!important}
html.fgui-native #fairygui-ime{pointer-events:auto!important;filter:none!important;visibility:visible!important}
html.fgui-native dialog::backdrop{background:transparent!important;backdrop-filter:none!important}
#world{position:fixed;inset:0;touch-action:none}
#world canvas{display:block;width:100%;height:100%}
/* Controller focus must never scroll the page or displace the native stage,
   including when the legacy stylesheets are absent. */
html.fgui-native body>:not(#world):not(#fairygui-stage):not(#fairygui-ime):not(#render-diagnostics):not(script):not(style){position:fixed!important;left:-100000px!important;right:auto!important;top:0!important;bottom:auto!important;transform:none!important}

/* Keep the actual 3D camera, native UI and touch surface in one portrait frame. */
html.fgui-native body{background:#10283d}
html.fgui-native #fairygui-stage,html.fgui-native #world{inset:0 auto 0 50%!important;transform:translateX(-50%)!important;width:min(100vw,56.25dvh)!important;height:100dvh!important;overflow:hidden}
