html,body{overscroll-behavior:none;touch-action:none;width:100%;height:100%;overflow:hidden}#gameShell{position:absolute;left:0;top:0;transform-origin:0 0;overflow:hidden;isolation:isolate}#gameShell #game{position:absolute;width:100%;height:100%;inset:0;touch-action:none}#fullscreen{font:inherit;font-size:12px;min-width:48px;height:44px;border:1px solid #c5d3c6;border-radius:14px;background:#ffffffb8;color:#304e3f;cursor:pointer}#touchControls,#mobileMenuButton,#mobileMenu{display:none}#mobileControls{display:none!important}.touch-ui{--safe-l:env(safe-area-inset-left);--safe-r:env(safe-area-inset-right);--safe-t:env(safe-area-inset-top);--safe-b:env(safe-area-inset-bottom)}.touch-ui.rotated{--safe-l:env(safe-area-inset-top);--safe-r:env(safe-area-inset-bottom);--safe-t:env(safe-area-inset-right);--safe-b:env(safe-area-inset-left)}.touch-ui header{position:absolute;inset:calc(8px + var(--safe-t)) calc(14px + var(--safe-r)) auto calc(14px + var(--safe-l));height:44px;padding:0;border:0;background:none;z-index:30}.touch-ui .brand{gap:8px}.touch-ui .brand-icon{width:36px;height:36px;font-size:28px}.touch-ui .brand div{font-size:14px}.touch-ui .brand small{font-size:8px}.touch-ui header nav,.touch-ui .live,.touch-ui #sound,.touch-ui footer,.touch-ui .mission,.touch-ui .character-tag,.touch-ui .hands-hud{display:none}.touch-ui .header-right{gap:8px}.touch-ui .icon-button{width:44px;height:44px}.touch-ui #mobileMenuButton{display:block;width:44px;height:44px;background:#fff9;border:1px solid #c5d3c6;border-radius:14px;color:#304e3f;font-size:22px}.touch-ui #touchControls{display:block;position:absolute;inset:0;z-index:15;pointer-events:none}.touch-ui #moveZone,.touch-ui #lookZone{position:absolute;top:64px;bottom:0;pointer-events:auto;touch-action:none}.touch-ui #moveZone{left:0;width:43%}.touch-ui #lookZone{left:43%;right:0}.touch-ui #stick{position:absolute;left:calc(105px + var(--safe-l));top:calc(100% - 100px - var(--safe-b));width:112px;height:112px;border:2px solid #ffffff91;border-radius:50%;background:#3654461c;transform:translate(-50%,-50%);box-shadow:0 2px 18px #233a2d0d;display:grid;place-items:center}.touch-ui #stick:after{content:'移动 · 推满跑';position:absolute;bottom:-26px;white-space:nowrap;font-size:11px;color:#395746}.touch-ui #stickKnob{width:44px;height:44px;border-radius:50%;background:#fff9;border:1px solid #fff;box-shadow:0 3px 8px #233a2d24}.touch-ui #stick.engaged{border-color:#e7b967}.touch-ui .touch-action{position:absolute;pointer-events:auto;touch-action:none;user-select:none;-webkit-user-select:none;width:76px;height:76px;border-radius:50%;background:#ffffffa8;border:2px solid #fff;color:#344e42;font-size:18px;box-shadow:0 4px 18px #193b2820;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:2px}.touch-ui .touch-action small{font-size:10px;font-weight:500}.touch-ui #touchLeft{right:calc(158px + var(--safe-r));bottom:calc(72px + var(--safe-b))}.touch-ui #touchRight{right:calc(70px + var(--safe-r));bottom:calc(122px + var(--safe-b))}.touch-ui #touchJump{right:calc(34px + var(--safe-r));bottom:calc(28px + var(--safe-b));width:78px;height:78px;background:#f6db9acb}.touch-ui .touch-action[data-state=reaching]{background:#f4d69ce8;border-color:#ffefc5}.touch-ui .touch-action[data-state=grabbed]{background:#386e59ed;color:#fff;border-color:#bde6ba;box-shadow:0 0 0 5px #3a805d26}.touch-ui .touch-action.pressed{scale:.95}.touch-ui .look-hint{position:absolute;right:calc(50px + var(--safe-r));top:68px;font-size:11px;color:#476353;background:#ffffff66;padding:7px 11px;border-radius:20px}.touch-ui .toast{bottom:14px;max-width:44%;font-size:12px;padding:10px 14px;left:50%;z-index:50}.touch-ui .tuning{display:none}.touch-ui.menu-open .tuning{display:block;position:absolute;right:calc(20px + var(--safe-r));top:66px;bottom:16px;width:270px;overflow:auto;z-index:61;background:#f8faf4}.touch-ui.menu-open .tuning-head{display:none}.touch-ui.menu-open .tuning-body{display:block!important}.touch-ui #mobileMenu:not([hidden]){display:block;position:absolute;inset:0;background:#e9efe8ed;z-index:60;padding:26px calc(310px + var(--safe-r)) 20px calc(30px + var(--safe-l));overflow:auto}.touch-ui #mobileMenu h2{font-size:22px;margin:0 0 12px}.touch-ui #mobileMenu p{font-size:13px;line-height:1.7}.touch-ui #mobileMenu label{display:block;font-size:12px;margin:12px 0 5px}.touch-ui #mobileMenu select{width:100%;padding:9px;border-radius:10px;border:1px solid #bacbbc;background:#fff}.touch-ui #mobileMenu button{min-height:44px;padding:10px 16px;border-radius:12px;border:1px solid #b7c8b9;background:white;color:#35543f;margin:8px 5px 0 0}.touch-ui #lookSensitivity{width:100%}.touch-ui .screen{position:absolute}.touch-ui dialog{position:absolute;inset:50% auto auto 50%;transform:translate(-50%,-50%);width:min(600px,85%);max-height:85%;margin:0;z-index:90;overflow:auto;font-size:13px}.touch-ui:has(dialog[open]):after{content:'';position:absolute;inset:0;background:#213b3066;z-index:80}.touch-ui dialog h2{font-size:22px}.touch-ui dialog p,.touch-ui dialog dd{font-size:12px}.touch-ui.compact #touchLeft{bottom:54px}.touch-ui.compact #touchRight{bottom:110px}.touch-ui.compact .touch-action{width:68px;height:68px}.touch-ui.compact #mobileMenu{padding-top:16px}.touch-ui.compact #mobileMenu p{margin:4px 0}.touch-ui.compact .look-hint{top:58px}

.touch-ui .toast{top:auto;white-space:normal;text-align:center}.touch-ui.menu-open .overlay{z-index:61}.touch-ui.menu-open .tuning-body{max-height:none}.touch-ui.menu-open .tuning.collapsed{width:270px}

html,body{position:fixed;inset:0;}

.touch-ui{--safe-l:max(env(safe-area-inset-left),var(--sdk-l,0px));--safe-r:max(env(safe-area-inset-right),var(--sdk-r,0px));--safe-t:max(env(safe-area-inset-top),var(--sdk-t,0px));--safe-b:max(env(safe-area-inset-bottom),var(--sdk-b,0px));}.touch-ui.rotated{--safe-l:max(env(safe-area-inset-top),var(--sdk-l,0px));--safe-r:max(env(safe-area-inset-bottom),var(--sdk-r,0px));--safe-t:max(env(safe-area-inset-right),var(--sdk-t,0px));--safe-b:max(env(safe-area-inset-left),var(--sdk-b,0px));}
@media (orientation:portrait) and (pointer:coarse){#gameShell{width:100vh;height:100vw;transform:translateX(100vw) rotate(90deg)}}
