@import"https://fonts.googleapis.com/css2?family=ZCOOL+XiaoWei&family=ZCOOL+QingKe+HuangYou&display=swap";:root{--bg: #0F0808;--surface: #1F1010;--primary: #C13030;--primary-dark: #9A2424;--accent: #D4AF37;--text: #F5E6D3;--text-muted: #C4A574;--border: #2A1818;--success: #5C8A4B;--warning: #D4AF37;--danger: #C13030;--radius: 12px;--shadow: 0 1px 3px rgba(0,0,0,.08), 0 1px 2px rgba(0,0,0,.04)}body{margin:0;padding:0;background:radial-gradient(ellipse at 30% 20%,#C1303011 0%,transparent 50%),radial-gradient(ellipse at 70% 80%,#D4AF3711 0%,transparent 50%),var(--bg);color:var(--text);font-family:ZCOOL XiaoWei,ZCOOL QingKe HuangYou,KaiTi,楷体,STKaiti,STZhongsong,serif;display:flex;justify-content:center;align-items:center;min-height:100vh;overflow:hidden;font-size:16px}.app-container{width:100vw;height:100vh;display:flex;flex-direction:column;justify-content:center;align-items:center;position:relative;background-size:cover;background-position:center;background-repeat:no-repeat;transition:background-image .5s ease-in-out}.cloud-status-bar{position:absolute;top:10px;right:10px;z-index:100}.cloud-message{display:flex;align-items:center;gap:5px;background:rgba(var(--surface),.8);color:var(--text-muted);padding:8px 12px;border-radius:var(--radius);font-size:.85em;box-shadow:var(--shadow)}.loading-screen{display:flex;flex-direction:column;justify-content:center;align-items:center;height:100vh;width:100vw;background:var(--bg);color:var(--text);font-size:1.2em}.loading-icon{animation:pulse 1.5s infinite ease-in-out;color:var(--accent);margin-bottom:20px;width:50px;height:50px}@keyframes pulse{0%{transform:scale(.9);opacity:.7}50%{transform:scale(1);opacity:1}to{transform:scale(.9);opacity:.7}}.start-screen,.game-over-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px;background:var(--surface);border-radius:var(--radius);box-shadow:0 10px 30px #0006;text-align:center;position:relative;border:1px solid var(--border)}.title-sparkles{position:absolute;top:15px;right:15px;color:var(--accent);animation:sparkle-rotate 5s infinite linear}@keyframes sparkle-rotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}h1{font-family:ZCOOL QingKe HuangYou,STZhongsong,华文中宋,serif;font-size:3.5em;color:var(--accent);margin-bottom:10px;text-shadow:0 0 10px rgba(var(--accent),.5)}.subtitle{font-size:1.2em;color:var(--text-muted);margin-bottom:30px}.start-button{background:var(--primary);color:var(--text);border:none;padding:15px 30px;border-radius:var(--radius);font-size:1.2em;cursor:pointer;display:flex;align-items:center;gap:10px;transition:background .3s ease,transform .3s ease;font-family:ZCOOL XiaoWei,KaiTi,serif;box-shadow:var(--shadow)}.start-button:hover{background:var(--primary-dark)}.high-score-display{margin-top:20px;font-size:1em;color:var(--text-muted);display:flex;align-items:center;gap:8px}.game-over-screen h2{font-family:ZCOOL QingKe HuangYou,STZhongsong,华文中宋,serif;font-size:2.5em;color:var(--primary);margin-bottom:15px}.final-score{font-size:1.5em;color:var(--accent);margin-bottom:10px}.new-high-score{font-size:1.3em;color:var(--success);font-weight:700;margin-bottom:20px}.game-board{display:grid;grid-template-rows:1fr 2fr 1.5fr;width:95%;max-width:1200px;height:95%;max-height:800px;background:#00320099;border:5px solid var(--accent);border-radius:var(--radius);box-shadow:0 0 20px #000000b3;padding:15px;position:relative;overflow:hidden;background-image:radial-gradient(circle,rgba(255,255,255,.02) 1px,transparent 1px),radial-gradient(ellipse at center,rgba(0,100,0,.4) 0%,transparent 70%);background-size:3px 3px,cover}.opponent-area,.player-area{display:flex;justify-content:center;align-items:center;padding:10px;position:relative}.opponent-area{flex-direction:column}.opponent-hand{display:flex;gap:-15px;margin-bottom:10px}.opponent-info{display:flex;align-items:center;gap:8px;color:var(--text-muted);font-size:.9em}.opponent-info .player-avatar{width:30px;height:30px;border-radius:50%;object-fit:cover;border:1px solid var(--border)}.opponent-info .active-turn{color:var(--accent);animation:pulse-color 1.5s infinite ease-in-out}@keyframes pulse-color{0%{color:var(--accent)}50%{color:var(--text)}to{color:var(--accent)}}.table-center{display:flex;justify-content:center;align-items:center;gap:20px;padding:10px;position:relative}.discard-pile{display:flex;flex-wrap:wrap;gap:5px;width:60%;max-height:100%;overflow-y:auto;padding:10px;background:rgba(var(--surface),.2);border-radius:var(--radius);border:1px solid var(--border)}.game-info-panel{display:flex;flex-direction:column;gap:10px;background:rgba(var(--surface),.5);padding:15px;border-radius:var(--radius);border:1px solid var(--border);box-shadow:var(--shadow);width:30%;max-height:100%;overflow-y:auto}.game-message{font-size:1em;color:var(--text);display:flex;align-items:center;gap:5px;margin-bottom:5px}.score-board,.deck-info{display:flex;justify-content:space-between;font-size:.9em;color:var(--text-muted);gap:10px}.score-board span,.deck-info span{display:flex;align-items:center;gap:5px}.player-area{flex-direction:column;justify-content:flex-end}.player-melds{display:flex;gap:10px;margin-bottom:10px;min-height:50px}.meld-group{display:flex;align-items:center;gap:2px;background:rgba(var(--surface),.3);padding:5px 8px;border-radius:var(--radius);border:1px solid var(--border)}.meld-type{font-size:.8em;color:var(--accent);margin-right:5px}.player-hand{display:flex;flex-wrap:nowrap;gap:5px;margin-bottom:15px;min-height:80px;position:relative}.mahjong-tile{width:50px;height:70px;background:beige;border-radius:5px;display:flex;justify-content:center;align-items:center;font-family:KaiTi,楷体,serif;font-size:1.5em;color:#333;cursor:pointer;box-shadow:2px 2px 5px #0000004d;transition:transform .1s ease-out,box-shadow .1s ease-out;flex-shrink:0;position:relative;overflow:hidden;background-color:beige;border:1px solid #666;box-shadow:inset 0 0 5px #0000001a,2px 2px 5px #0000004d}.mahjong-tile .tile-image{width:100%;height:100%;object-fit:contain;padding:2px}.mahjong-tile.back-tile{background:var(--surface);border:1px solid var(--border);color:transparent;box-shadow:inset 0 0 5px #0003,2px 2px 5px #0000004d}.mahjong-tile.back-tile .tile-image{padding:0}.mahjong-tile:hover:not(.selected):not(.discarded){transform:translateY(-5px);box-shadow:2px 7px 10px #0006}.mahjong-tile.selected{transform:translateY(-10px) scale(1.05);box-shadow:0 0 15px var(--accent),0 0 20px var(--accent);border-color:var(--accent)}.mahjong-tile.discarded{cursor:default;opacity:.8;box-shadow:1px 1px 3px #0003}.player-actions{display:flex;gap:10px;margin-bottom:15px}.action-button{background:var(--primary);color:var(--text);border:none;padding:10px 15px;border-radius:var(--radius);font-size:1em;cursor:pointer;display:flex;align-items:center;gap:8px;transition:background .3s ease,transform .3s ease;font-family:ZCOOL XiaoWei,KaiTi,serif;box-shadow:var(--shadow)}.action-button.small-action{padding:8px 12px;font-size:.9em}.action-button.hu-button{background:var(--success)}.action-button:hover:not(:disabled){background:var(--primary-dark)}.action-button.hu-button:hover:not(:disabled){background:#4b7a3b}.action-button:disabled{background:#444;color:#888;cursor:not-allowed;opacity:.6}.ai-helper-buttons{display:flex;gap:10px;margin-top:10px}.ai-button{background:var(--accent);color:var(--bg);border:none;padding:10px 15px;border-radius:var(--radius);font-size:.9em;cursor:pointer;display:flex;align-items:center;gap:8px;transition:background .3s ease,transform .3s ease;font-family:ZCOOL XiaoWei,KaiTi,serif;box-shadow:var(--shadow)}.ai-button:hover:not(:disabled){background:#c49f27}.ai-button:disabled{background:#666;color:#aaa;cursor:not-allowed;opacity:.6}.ai-advice-panel{background:rgba(var(--surface),.7);border:1px solid var(--border);border-radius:var(--radius);padding:15px;margin-top:15px;font-size:.95em;color:var(--text);box-shadow:var(--shadow);max-width:400px;text-align:left}.ai-advice-panel p{margin:0;line-height:1.4}
