*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent;touch-action:none;-webkit-user-select:none;user-select:none}html,body{width:100%;height:100%;overflow:hidden;background:#0a0c10;font-family:Noto Sans SC,Microsoft YaHei UI,sans-serif}#app{position:relative;width:100%;height:100%;display:flex;align-items:center;justify-content:center}#game-canvas{display:block;background:#000;cursor:none}#touch-layer{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:10}.touch-joystick,.touch-btn{position:absolute;pointer-events:auto}.touch-joystick{width:120px;height:120px;border-radius:50%;background:#ffffff14;border:2px solid rgba(255,255,255,.18)}.touch-joystick .stick{position:absolute;width:52px;height:52px;left:50%;top:50%;transform:translate(-50%,-50%);border-radius:50%;background:#ffffff47;border:2px solid rgba(255,255,255,.45)}.touch-btn{min-width:56px;height:56px;padding:0 10px;border-radius:28px;border:2px solid rgba(255,255,255,.25);background:#141c24b8;color:#eef4f8;font-size:13px;font-weight:700;display:flex;align-items:center;justify-content:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.touch-btn.primary{background:#deb248d9;color:#231c10;border-color:#4c3214cc;min-width:72px;height:72px;border-radius:36px;font-size:15px}.touch-btn:active{transform:scale(.94)}#loading{position:absolute;top:0;right:0;bottom:0;left:0;z-index:100;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;background:radial-gradient(circle at 50% 30%,#1a2430,#0a0c10 70%);color:#e8eef3;transition:opacity .4s ease}#loading.hidden{opacity:0;pointer-events:none}.loading-title{font-size:36px;font-weight:700;letter-spacing:.08em}.loading-bar{width:min(320px,70vw);height:8px;border-radius:4px;background:#ffffff1a;overflow:hidden}#loading-progress{width:0%;height:100%;background:linear-gradient(90deg,#7ce596,#debf48);transition:width .2s ease}#loading-text{font-size:14px;color:#9fb0bd}@media(pointer:fine){#touch-layer{display:none}}@media(pointer:coarse){#game-canvas{cursor:default}}
