*{margin:0;padding:0;box-sizing:border-box}body{margin:0;padding:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow:hidden}#root{width:100vw;height:100vh;overflow:hidden}.wechat-login{width:100vw;height:100vh;display:flex;justify-content:center;align-items:center;background:linear-gradient(135deg,#667eea,#764ba2)}.wechat-login .login-container{background:#fff;border-radius:20px;padding:40px;box-shadow:0 10px 40px #0003;text-align:center;max-width:400px;width:90%}.wechat-login .login-container .login-icon{font-size:80px;margin-bottom:20px;animation:bounce 2s infinite}.wechat-login .login-container h1{color:#333;margin-bottom:10px;font-size:28px}.wechat-login .login-container .login-desc{color:#666;margin-bottom:30px;font-size:14px}.wechat-login .login-container .error-message{padding:12px;background:#fee;color:#c33;border-radius:8px;margin-bottom:20px;font-size:14px;border:1px solid #fcc}.wechat-login .login-container .login-btn{width:100%;padding:15px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:10px;font-size:16px;font-weight:700;cursor:pointer;transition:transform .2s}.wechat-login .login-container .login-btn:hover:not(:disabled){transform:translateY(-2px)}.wechat-login .login-container .login-btn:disabled{opacity:.6;cursor:not-allowed}.wechat-login .login-container .login-btn.mock-btn{background:linear-gradient(135deg,#f093fb,#f5576c);margin-top:10px}.wechat-login .login-container .not-in-wechat{width:100%}.wechat-login .login-container .not-in-wechat .warning{padding:10px;background:#fff3cd;color:#856404;border-radius:8px;margin-bottom:15px;font-size:14px;border:1px solid #ffeaa7}.wechat-login .login-container .login-tips{margin-top:30px;padding-top:20px;border-top:1px solid #eee;text-align:left}.wechat-login .login-container .login-tips p{margin:8px 0;color:#666;font-size:14px}.wechat-login .login-container .login-tips p:first-child{font-weight:700;color:#333;margin-bottom:12px}.wechat-login .login-container .config-warning{margin-top:20px;padding:12px;background:#fff3cd;color:#856404;border-radius:8px;font-size:13px;border:1px solid #ffeaa7;text-align:center}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.fu-game{width:100vw;height:100vh;display:flex;flex-direction:column;background:linear-gradient(180deg,#1e3c72,#2a5298);overflow:hidden;position:relative}.fu-game .game-header{display:flex;justify-content:space-between;align-items:center;padding:15px 20px;background:#ffffff1a;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 2px 10px #0000001a}.fu-game .game-header .user-info{display:flex;align-items:center;gap:10px}.fu-game .game-header .user-info .avatar{width:40px;height:40px;border-radius:50%;border:2px solid white}.fu-game .game-header .user-info .nickname{color:#fff;font-weight:700;font-size:16px}.fu-game .game-header .game-stats{display:flex;gap:20px}.fu-game .game-header .game-stats .stat{display:flex;flex-direction:column;align-items:center}.fu-game .game-header .game-stats .stat .label{color:#fffc;font-size:12px;margin-bottom:2px}.fu-game .game-header .game-stats .stat .value{color:#fff;font-size:20px;font-weight:700}.fu-game .game-header .header-actions{display:flex;gap:10px}.fu-game .game-header .header-actions .leaderboard-btn,.fu-game .game-header .header-actions .logout-btn{padding:8px 20px;background:#fff3;color:#fff;border:1px solid rgba(255,255,255,.3);border-radius:20px;cursor:pointer;transition:all .3s;font-size:14px}.fu-game .game-header .header-actions .leaderboard-btn:hover,.fu-game .game-header .header-actions .logout-btn:hover{background:#ffffff4d}.fu-game .game-header .header-actions .leaderboard-btn{background:linear-gradient(135deg,gold,#ffed4e);color:#333;border:none;font-weight:700}.fu-game .game-area{flex:1;position:relative;overflow:hidden}.fu-game .game-area .fu-character{position:absolute;font-size:60px;color:red;text-shadow:2px 2px 4px rgba(0,0,0,.3);animation:rotate 2s linear infinite;width:8%;height:auto;display:flex;justify-content:center;align-items:center;font-weight:700}.fu-game .game-area .bottle{position:absolute;bottom:5vh;font-size:80px;width:15%;display:flex;justify-content:center;align-items:center;filter:drop-shadow(0 4px 8px rgba(0,0,0,.3));user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;touch-action:none}.fu-game .game-area .bottle:active{cursor:grabbing!important;transform:scale(1.05)}.fu-game .game-area .game-overlay{position:absolute;top:0;left:0;width:100%;height:100%;background:#000000b3;display:flex;justify-content:center;align-items:center;z-index:10}.fu-game .game-area .game-overlay .overlay-content{background:#fff;padding:40px;border-radius:20px;text-align:center;max-width:400px;width:90%;box-shadow:0 10px 40px #0000004d}.fu-game .game-area .game-overlay .overlay-content h2{color:#333;margin-bottom:20px;font-size:28px}.fu-game .game-area .game-overlay .overlay-content p{color:#666;margin-bottom:30px;font-size:14px}.fu-game .game-area .game-overlay .overlay-content .final-score{margin:30px 0;padding:20px;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:15px}.fu-game .game-area .game-overlay .overlay-content .final-score .score-label{display:block;color:#ffffffe6;font-size:14px;margin-bottom:10px}.fu-game .game-area .game-overlay .overlay-content .final-score .score-value{display:block;color:#fff;font-size:48px;font-weight:700}.fu-game .game-area .game-overlay .overlay-content .start-btn{width:100%;padding:15px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:10px;font-size:16px;font-weight:700;cursor:pointer;transition:transform .2s}.fu-game .game-area .game-overlay .overlay-content .start-btn:hover{transform:translateY(-2px)}.fu-game .game-controls{display:flex;justify-content:center;gap:40px;padding:20px;background:#ffffff1a;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.fu-game .game-controls .control-btn{width:80px;height:80px;background:#fff3;border:2px solid rgba(255,255,255,.3);border-radius:50%;color:#fff;font-size:32px;cursor:pointer;transition:all .2s;-webkit-user-select:none;user-select:none}.fu-game .game-controls .control-btn:active{background:#fff6;transform:scale(.95)}.fu-game .game-controls .control-btn:hover{background:#ffffff4d}@keyframes rotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media(max-width:768px){.fu-game .game-header{padding:10px 15px}.fu-game .game-header .user-info .avatar{width:35px;height:35px}.fu-game .game-header .user-info .nickname{font-size:14px}.fu-game .game-header .game-stats{gap:15px}.fu-game .game-header .game-stats .stat .label{font-size:11px}.fu-game .game-header .game-stats .stat .value{font-size:18px}.fu-game .game-header .logout-btn{padding:6px 15px;font-size:14px}.fu-game .game-area .fu-character{font-size:50px}.fu-game .game-area .bottle{font-size:70px}.fu-game .game-controls{gap:30px;padding:15px}.fu-game .game-controls .control-btn{width:70px;height:70px;font-size:28px}}.leaderboard{width:100%;min-height:100vh;background:linear-gradient(135deg,#667eea,#764ba2);padding:20px;box-sizing:border-box}.leaderboard-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;padding:0 10px}.leaderboard-header .back-btn,.leaderboard-header .refresh-btn{background:#fff3;border:none;color:#fff;padding:10px 15px;border-radius:8px;font-size:16px;cursor:pointer;transition:all .3s}.leaderboard-header .back-btn:hover,.leaderboard-header .refresh-btn:hover{background:#ffffff4d}.leaderboard-header .back-btn:active,.leaderboard-header .refresh-btn:active{transform:scale(.95)}.leaderboard-header .title{color:#fff;font-size:24px;font-weight:700;margin:0;text-shadow:2px 2px 4px rgba(0,0,0,.2)}.loading,.empty{text-align:center;color:#fff;font-size:18px;padding:40px 20px}.leaderboard-list{max-width:600px;margin:0 auto}.leaderboard-item{display:flex;align-items:center;background:#fff;border-radius:12px;padding:15px;margin-bottom:10px;box-shadow:0 2px 8px #0000001a;transition:all .3s}.leaderboard-item:hover{transform:translateY(-2px);box-shadow:0 4px 12px #00000026}.leaderboard-item.current-user{background:linear-gradient(135deg,#ffeaa7,#fdcb6e);border:2px solid #fdcb6e}.leaderboard-item .rank{width:50px;display:flex;justify-content:center;align-items:center;font-size:24px}.leaderboard-item .rank .medal{font-size:32px}.leaderboard-item .rank .rank-number{font-size:20px;font-weight:700;color:#666}.leaderboard-item .avatar{width:50px;height:50px;border-radius:50%;margin:0 15px;object-fit:cover;border:2px solid #f0f0f0}.leaderboard-item .user-info{flex:1;display:flex;align-items:center;gap:10px}.leaderboard-item .user-info .nickname{font-size:16px;font-weight:500;color:#333;max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.leaderboard-item .user-info .badge{background:#ff6b6b;color:#fff;padding:2px 8px;border-radius:10px;font-size:12px;font-weight:700}.leaderboard-item .score{font-size:20px;font-weight:700;color:#667eea;min-width:80px;text-align:right}@media(max-width:768px){.leaderboard{padding:10px}.leaderboard-header .title{font-size:20px}.leaderboard-header .back-btn,.leaderboard-header .refresh-btn{padding:8px 12px;font-size:14px}.leaderboard-item{padding:12px}.leaderboard-item .rank{width:40px}.leaderboard-item .rank .medal{font-size:28px}.leaderboard-item .rank .rank-number{font-size:18px}.leaderboard-item .avatar{width:40px;height:40px;margin:0 10px}.leaderboard-item .user-info .nickname{font-size:14px;max-width:100px}.leaderboard-item .user-info .badge{font-size:11px;padding:2px 6px}.leaderboard-item .score{font-size:18px;min-width:70px}}.app{width:100vw;height:100vh;margin:0;padding:0;overflow:hidden}
