html,body{margin:0;min-width:320px;width:100%;height:100%;min-height:100%;background:#10131a;color:#fff1f8;font-family:Avenir Next,PingFang SC,Hiragino Sans GB,Microsoft YaHei,Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;overscroll-behavior:none;touch-action:none;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}body{overflow:hidden}#game-shell{position:fixed;top:0;right:0;bottom:0;left:0;width:100vw;width:100dvw;min-height:100vh;min-height:100svh;height:100vh;height:100dvh;display:flex;align-items:center;justify-content:center;overflow:hidden;padding:env(safe-area-inset-top,0) env(safe-area-inset-right,0) env(safe-area-inset-bottom,0) env(safe-area-inset-left,0);box-sizing:border-box;background:linear-gradient(180deg,#121b2ae6,#0b0d13f5),#10131a;touch-action:none;-webkit-touch-callout:none;-webkit-user-select:none}#game-root{position:relative;width:100%;height:100%;overflow:hidden;touch-action:none;-webkit-touch-callout:none;-webkit-user-select:none}.boot-loading{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;padding:32px;box-sizing:border-box;background:radial-gradient(circle at 50% 42%,rgba(112,235,255,.18),transparent 32%),linear-gradient(180deg,#121b2ad1,#0b0d13f0);color:#fff1f8;text-align:center;pointer-events:none;transition:opacity .18s ease}.boot-loading.is-hidden{opacity:0}.boot-loading__title{color:#ffd7f4;font:800 32px/1.1 Avenir Next,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif;text-shadow:0 2px 18px rgba(112,235,255,.3)}.boot-loading__text{color:#dbe8ff;font:700 15px/1.4 Avenir Next,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif}.boot-loading__bar{width:min(300px,72vw);height:8px;overflow:hidden;border:1px solid rgba(112,235,255,.38);border-radius:999px;background:#08111eb8}.boot-loading__bar-fill{width:42%;height:100%;border-radius:inherit;background:linear-gradient(90deg,#70ebff,#ffe66d);animation:boot-loading-pulse 1.18s ease-in-out infinite}canvas{display:block;image-rendering:pixelated;touch-action:none;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}@keyframes boot-loading-pulse{0%{transform:translate(-115%)}to{transform:translate(245%)}}.touch-controls{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10;pointer-events:none;touch-action:none;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}.touch-controls[hidden]{display:none}.touch-controls:not(.is-visible) .touch-controls__cluster{display:none}.touch-controls__cluster{position:absolute;bottom:calc(12px + env(safe-area-inset-bottom,0));display:flex;gap:18px;pointer-events:none}.touch-controls__cluster--left{left:calc(12px + env(safe-area-inset-left,0))}.touch-controls__cluster--right{right:calc(12px + env(safe-area-inset-right,0));flex-direction:column;align-items:flex-end}.touch-joystick{position:relative;width:150px;height:150px;border:2px solid rgba(243,247,255,.58);border-radius:999px;background:radial-gradient(circle at center,rgba(112,235,255,.22) 0 30%,transparent 31%),radial-gradient(circle at center,#0f1e34b8,#0f1e34e6);box-shadow:0 0 0 4px #70ebff1f,0 12px 34px #00000073;pointer-events:auto;touch-action:none;-webkit-touch-callout:none;-webkit-user-drag:none;-webkit-user-select:none;user-select:none}.touch-joystick:before,.touch-joystick:after{content:"";position:absolute;left:50%;top:50%;border-radius:999px;background:#f3f7ff4d;transform:translate(-50%,-50%)}.touch-joystick:before{width:72%;height:2px}.touch-joystick:after{width:2px;height:72%}.touch-joystick.is-active{border-color:#d8fff0e0;background:radial-gradient(circle at center,rgba(61,220,151,.3) 0 30%,transparent 31%),radial-gradient(circle at center,#184052c7,#0f1e34eb)}.touch-joystick__knob{position:absolute;left:50%;top:50%;z-index:1;width:66px;height:66px;border:2px solid rgba(255,230,109,.88);border-radius:999px;background:#4373b3f0;box-shadow:0 0 16px #70ebff3d,0 10px 24px #00000073;transform:translate(-50%,-50%)}.touch-joystick:not(.is-active) .touch-joystick__knob{transition:transform .1s ease-out}.touch-button{position:relative;box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;width:96px;height:96px;min-width:96px;min-height:96px;padding:0;border:2px solid rgba(243,247,255,.64);border-radius:999px;background:#0f1e34c7;color:#fff1f8;font:800 14px/1 Avenir Next,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif;letter-spacing:0;text-align:center;text-shadow:0 2px 4px rgba(0,0,0,.46);box-shadow:inset 0 2px #ffffff38,inset 0 -9px 14px #0208147a,0 10px #02081485,0 0 0 3px #f3f7ff14,0 16px 30px #0000006b;pointer-events:auto;touch-action:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;-webkit-touch-callout:none;-webkit-user-drag:none;-webkit-user-select:none;user-select:none;overflow:hidden;transform:translateY(0);transition:transform 80ms ease-out,box-shadow 80ms ease-out,filter 80ms ease-out}.touch-button:before{position:absolute;inset:8px 12px auto 12px;height:32%;border-radius:999px;background:linear-gradient(180deg,#ffffff75,#ffffff0d);content:"";pointer-events:none}.touch-button:after{position:absolute;inset:auto 14px 7px 14px;height:5px;border-radius:999px;background:#ffffff2e;content:"";pointer-events:none}.touch-button:active{background:#3ddc97ad;border-color:#d8fff0e6;box-shadow:inset 0 1px #ffffff2e,inset 0 -4px 8px #02081466,0 4px #02081461,0 8px 18px #00000047;filter:brightness(1.08);transform:translateY(4px)}.touch-button--action{width:96px;height:96px;min-width:96px;min-height:96px}.touch-button--primary{border-color:#95dcffc7;background:radial-gradient(circle at 30% 24%,rgba(255,255,255,.38),transparent 24%),linear-gradient(145deg,#5baaeef5,#2c59a6e6 54%,#182e60f0);box-shadow:inset 0 2px #ffffff47,inset 0 -9px 14px #08174280,0 9px #0e1f48ad,0 0 20px #70ebff2e,0 14px 26px #00000052}.touch-button--primary:active{background:radial-gradient(circle at 30% 24%,rgba(255,255,255,.48),transparent 24%),linear-gradient(145deg,#70cafff0,#3973c2d6 54%,#1c366ce6);box-shadow:inset 0 1px #ffffff38,inset 0 -5px 10px #0817428a,0 4px #0e1f48ad,0 0 24px #70ebff40,0 8px 18px #00000047}.touch-button--jump{width:96px;height:96px;min-width:96px;min-height:96px;border-color:#c3ffdfd1;background:radial-gradient(circle at 30% 24%,rgba(255,255,255,.42),transparent 24%),linear-gradient(145deg,#56e6b2f5,#2b999be6 56%,#174874f0);color:#f3fff8;box-shadow:inset 0 2px #ffffff47,inset 0 -9px 14px #08384a7a,0 9px #0c384cad,0 0 22px #72ffd138,0 14px 26px #00000052}.touch-button--jump:active{background:radial-gradient(circle at 30% 24%,rgba(255,255,255,.5),transparent 24%),linear-gradient(145deg,#70f5c6f5,#35aeaedb 56%,#1b5380eb);box-shadow:inset 0 1px #ffffff38,inset 0 -5px 10px #08384a85,0 4px #0c384cad,0 0 26px #72ffd147,0 8px 18px #00000047}.touch-button--special{width:96px;height:96px;min-width:96px;min-height:96px;border-color:#ffe66ddb;background:radial-gradient(circle at 28% 24%,rgba(255,255,255,.48),transparent 25%),linear-gradient(145deg,#ff69a6f2,#ffbd48d6 58%,#a14397e0);color:#fff8d8;box-shadow:inset 0 2px #ffffff4d,inset 0 -9px 14px #56164e7a,0 9px #5e2559ad,0 0 26px #ffb95c47,0 14px 26px #00000052}.touch-button--special:active{background:radial-gradient(circle at 28% 24%,rgba(255,255,255,.54),transparent 25%),linear-gradient(145deg,#ff7db2fa,#ffda6ee6 58%,#b84ea5eb);box-shadow:inset 0 1px #ffffff38,inset 0 -5px 10px #56164e8a,0 4px #5e2559ad,0 0 30px #ffb95c57,0 8px 18px #00000047}.touch-button--special.is-disabled{border-color:#cdd7e661;background:radial-gradient(circle at 30% 24%,rgba(255,255,255,.18),transparent 25%),linear-gradient(145deg,#2b384ea3,#0f1e3480);color:#f3f7ff8f;box-shadow:inset 0 1px #ffffff1f,inset 0 -7px 12px #02081447,0 7px #02081442,0 10px 18px #00000038}.touch-button--pause{position:absolute;top:calc(14px + env(safe-area-inset-top,0));right:calc(14px + env(safe-area-inset-right,0));width:96px;height:56px;min-width:96px;min-height:56px;padding:0 16px;border-radius:14px}.orientation-hint{position:absolute;top:calc(18px + env(safe-area-inset-top,0));left:50%;z-index:3;max-width:min(88vw,380px);padding:10px 14px;border:1px solid rgba(255,230,109,.48);border-radius:10px;background:#0d1725c7;color:#ffe66d;font:700 14px/1.3 Avenir Next,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif;text-align:center;pointer-events:none;transform:translate(-50%)}.orientation-hint[hidden]{display:none}.orientation-hint--global{position:fixed;z-index:30;display:none;top:calc(10px + env(safe-area-inset-top,0))}.pwa-update{position:fixed;right:calc(16px + env(safe-area-inset-right,0));bottom:calc(16px + env(safe-area-inset-bottom,0));z-index:20;display:flex;align-items:center;gap:12px;max-width:min(420px,calc(100vw - 32px));padding:12px 14px;border:1px solid rgba(112,235,255,.45);border-radius:10px;background:#0d1725eb;color:#fff1f8;font:700 13px/1.35 Avenir Next,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif;box-shadow:0 10px 32px #00000059;pointer-events:auto}@media(orientation:portrait){#game-shell{align-items:center;justify-content:center}}@media(orientation:portrait)and (pointer:coarse),(orientation:portrait)and (hover:none),(orientation:portrait)and (max-width:900px){.orientation-hint--global{display:block}}.pwa-update button{min-width:84px;min-height:36px;border:1px solid rgba(255,230,109,.68);border-radius:8px;background:#ffe66d29;color:#ffe66d;font:inherit;letter-spacing:0;touch-action:manipulation}.pwa-update button:disabled{opacity:.58}@media(max-width:720px){.touch-joystick{width:150px;height:150px}.touch-joystick__knob{width:66px;height:66px}.touch-button{min-width:96px;min-height:96px;font-size:13px}.touch-button--action,.touch-button--jump{min-width:96px;min-height:96px}.touch-controls__cluster{bottom:calc(10px + env(safe-area-inset-bottom,0));gap:16px}.touch-controls__cluster--left{left:calc(10px + env(safe-area-inset-left,0))}.touch-controls__cluster--right{right:calc(10px + env(safe-area-inset-right,0))}.pwa-update{right:calc(10px + env(safe-area-inset-right,0));bottom:calc(10px + env(safe-area-inset-bottom,0));left:calc(10px + env(safe-area-inset-left,0));max-width:none;justify-content:space-between}}@media(orientation:landscape)and (pointer:coarse){.touch-controls__cluster{bottom:calc(8px + env(safe-area-inset-bottom,0));gap:14px}.touch-controls__cluster--left{left:calc(8px + env(safe-area-inset-left,0))}.touch-controls__cluster--right{right:calc(8px + env(safe-area-inset-right,0))}.touch-joystick{width:clamp(140px,34vmin,150px);height:clamp(140px,34vmin,150px)}.touch-joystick__knob{width:clamp(60px,15vmin,66px);height:clamp(60px,15vmin,66px)}.touch-button{width:clamp(92px,22vmin,96px);height:clamp(92px,22vmin,96px);min-width:clamp(92px,22vmin,96px);min-height:clamp(92px,22vmin,96px);font-size:12px}.touch-button--action,.touch-button--jump{width:clamp(92px,22vmin,96px);height:clamp(92px,22vmin,96px);min-width:clamp(92px,22vmin,96px);min-height:clamp(92px,22vmin,96px)}.touch-button--pause{top:calc(8px + env(safe-area-inset-top,0));right:calc(8px + env(safe-area-inset-right,0))}}
