.home-screen{min-height:100vh;display:flex;flex-direction:column;align-items:center;padding:20px;background:linear-gradient(180deg,#1a1a2e,#16213e,#0f3460);position:relative;overflow:hidden}.stars-bg{position:absolute;width:100%;height:100%;overflow:hidden}.star{position:absolute;background:#fff;border-radius:50%;animation:twinkle 2s infinite}.game-title{margin-top:30px;text-align:center;z-index:10}.game-title h1{font-size:2.5rem;color:#ffe66d;text-shadow:0 0 20px rgba(255,230,109,.5);animation:float 3s ease-in-out infinite}.game-title .subtitle{font-size:1rem;color:#4ecdc4;margin-top:10px}.mascot{font-size:100px;animation:bounce 2s ease-in-out infinite;z-index:10;margin:20px 0}.player-info{background:#ffffff1a;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:20px;padding:15px 25px;display:flex;align-items:center;gap:15px;z-index:10;border:2px solid rgba(255,255,255,.2)}.player-avatar{width:50px;height:50px;border-radius:50%;background:linear-gradient(135deg,#ff6b6b,#ffe66d);display:flex;align-items:center;justify-content:center;font-size:30px}.player-stats{color:#fff}.player-stats .level{font-size:.9rem;color:#ffe66d}.player-stats .coins{display:flex;align-items:center;gap:5px;font-size:1.1rem}.mode-selection{display:grid;grid-template-columns:repeat(1,1fr);gap:30px;margin-top:30px;z-index:10;max-width:900px;width:100%}.mode-card{background:#ffffff1a;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:20px;padding:30px;border:2px solid rgba(255,255,255,.2);transition:all .3s;display:flex;flex-direction:column;align-items:center;text-align:center}.mode-card:hover{transform:translateY(-10px);border-color:#fff6;box-shadow:0 15px 40px #0000004d}.mode-icon{font-size:64px;margin-bottom:20px;animation:bounce 2s ease-in-out infinite}.mode-card h3{color:#ffe66d;font-size:24px;margin:0 0 15px;text-shadow:0 2px 10px rgba(255,230,109,.5)}.mode-card p{color:#fffc;font-size:14px;line-height:1.6;margin-bottom:20px;min-height:50px}.rpg-player-preview{display:flex;align-items:center;gap:10px;background:#0003;padding:10px 20px;border-radius:20px;margin-bottom:20px}.rpg-player-preview span:first-child{font-size:32px}.rpg-player-name{color:#4ecdc4;font-weight:700}.mode-btn{padding:15px 40px;font-size:18px;font-weight:700;color:#fff;background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:30px;cursor:pointer;box-shadow:0 8px 20px #667eea66;transition:all .3s}.mode-btn:hover{transform:translateY(-3px);box-shadow:0 12px 25px #667eea99}.mode-btn.rpg-btn{background:linear-gradient(135deg,#ff6b6b,#ee5a5a);box-shadow:0 8px 20px #ff6b6b66;animation:pulse 2s infinite}.mode-btn.rpg-btn:hover{box-shadow:0 12px 25px #ff6b6b99}.start-btn{margin-top:30px;padding:20px 60px;font-size:1.5rem;font-weight:700;color:#fff;background:linear-gradient(135deg,#ff6b6b,#ee5a5a);border:none;border-radius:50px;cursor:pointer;z-index:10;box-shadow:0 10px 30px #ff6b6b66;transition:all .3s;animation:pulse 2s infinite}.sublevel-modal{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:100;padding:20px}.sublevel-content{background:#fff;border-radius:30px;padding:30px;max-width:350px;width:100%;animation:popIn .5s}.sublevel-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.sublevel-title{font-size:1.3rem;color:#2d3436}.close-btn{width:40px;height:40px;border-radius:50%;background:#eee;font-size:20px}.sublevel-list{display:flex;flex-direction:column;gap:12px}.sublevel-item{display:flex;align-items:center;gap:15px;padding:15px;background:#f8f9fa;border-radius:15px;cursor:pointer;transition:all .3s}.sublevel-item:active{background:#e8f8f5}.sublevel-item.completed{background:#d5f4e6}.sublevel-icon{width:45px;height:45px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:22px;background:#eee}.sublevel-icon.completed{background:#27ae60;color:#fff}.sublevel-info{flex:1}.sublevel-info h4{font-size:1rem;color:#2d3436}.sublevel-info p{font-size:.8rem;color:#636e72}.check-mark{font-size:20px}.map-screen{min-height:100vh;padding:20px;background:linear-gradient(180deg,#87ceeb,#98fb98)}.map-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.back-btn{width:50px;height:50px;border-radius:50%;background:#fff;font-size:24px;box-shadow:var(--card-shadow)}.total-stars{background:#fff;padding:10px 20px;border-radius:30px;display:flex;align-items:center;gap:8px;font-weight:700;box-shadow:var(--card-shadow)}.map-title{text-align:center;font-size:1.8rem;color:#2d3436;margin-bottom:30px;text-shadow:2px 2px 0 white}.levels-container{display:flex;flex-direction:column;gap:25px;max-width:400px;margin:0 auto;position:relative}.level-path{position:absolute;left:50%;top:0;bottom:0;width:8px;background:repeating-linear-gradient(to bottom,#ddd 0px,#ddd 10px,transparent 10px,transparent 20px);transform:translate(-50%);z-index:0}.level-card{background:#fff;border-radius:20px;padding:20px;display:flex;align-items:center;gap:15px;cursor:pointer;transition:all .3s;box-shadow:var(--card-shadow);position:relative;z-index:1}.level-card.odd{margin-left:30px}.level-card.even{margin-right:30px}.level-card:active{transform:scale(.98)}.level-icon{width:60px;height:60px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:30px;flex-shrink:0}.level-info{flex:1}.level-info h3{font-size:1.1rem;color:#2d3436;margin-bottom:5px}.level-info p{font-size:.85rem;color:#636e72}.level-stars{display:flex;gap:3px}.level-stars span{font-size:18px}.choice-game,.match-game{width:100%;height:100%}.match-container{display:flex;justify-content:space-between;gap:20px;width:100%;max-width:400px}.match-column{flex:1;display:flex;flex-direction:column;gap:10px}.match-item{padding:12px 15px;background:#fff;border:3px solid #ddd;border-radius:12px;text-align:center;cursor:pointer;transition:all .3s;font-size:1rem;display:flex;align-items:center;justify-content:center;gap:8px}.match-item.selected{border-color:#ff6b6b;background:#ffe8e8}.match-item.matched{border-color:#27ae60;background:#d5f4e6;pointer-events:none}.match-item .speak-btn{width:28px;height:28px;font-size:14px}.listen-game{width:100%;height:100%}.listen-hint{color:#636e72;font-size:1rem;margin-bottom:20px}.big-listen-btn{width:120px;height:120px;border-radius:50%;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;font-size:60px;margin:20px 0 30px;box-shadow:0 10px 40px #667eea80;transition:all .3s;display:flex;align-items:center;justify-content:center}.big-listen-btn:active{transform:scale(.95)}.big-listen-btn.speaking{animation:bigSpeakPulse .8s infinite}@keyframes bigSpeakPulse{0%,to{transform:scale(1);box-shadow:0 10px 40px #667eea80}50%{transform:scale(1.05);box-shadow:0 15px 50px #667eeacc}}.speaking-game{width:100%;height:100%}.listen-btn{width:100px;height:100px;border-radius:50%;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;font-size:50px;margin-bottom:30px;box-shadow:0 10px 30px #667eea66;transition:all .3s}.listen-btn:active{transform:scale(.95)}.listen-btn.speaking{animation:pulse .5s infinite}.target-text{font-size:1.8rem;font-weight:700;color:#667eea;margin:20px 0;padding:15px 30px;background:#667eea1a;border-radius:15px}.record-btn{padding:20px 40px;font-size:1.3rem;font-weight:700;color:#fff;background:linear-gradient(135deg,#ff6b6b,#ee5a5a);border-radius:30px;margin:20px 0;box-shadow:0 5px 20px #ff6b6b66;transition:all .3s}.record-btn.recording{background:linear-gradient(135deg,#e74c3c,#c0392b);animation:pulse 1s infinite}.record-btn:disabled{background:#ccc;box-shadow:none}.transcript{margin:20px 0;padding:15px;background:#4ecdc41a;border-radius:10px;font-size:1.1rem}.feedback{padding:15px 25px;border-radius:15px;font-size:1.1rem;font-weight:700;margin:20px 0}.feedback.success{background:#d5f4e6;color:#27ae60}.feedback.partial{background:#fff3cd;color:#f39c12}.feedback.error{background:#fadbd8;color:#e74c3c}.speaking-hint{margin-top:30px;padding:15px;background:#ffe66d33;border-radius:10px;font-size:.9rem;color:#636e72}.error-message{padding:30px;background:#fadbd8;border-radius:15px;color:#e74c3c;font-size:1.1rem;text-align:center}.skip-btn{margin-top:20px;padding:15px 30px;font-size:1.1rem;font-weight:700;color:#fff;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:25px;box-shadow:0 5px 15px #667eea4d;transition:all .3s;cursor:pointer}.skip-btn:hover{transform:translateY(-2px);box-shadow:0 8px 20px #667eea66}.skip-btn:active{transform:translateY(0)}.dialogue-game{width:100%;height:100%;@keyframes slideIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}}.dialogue-game .scenario-title{font-size:1.5rem;font-weight:700;color:#2d3436;margin-bottom:30px}.dialogue-game .dialogue-container{width:100%;max-width:500px;margin:0 auto 30px;display:flex;flex-direction:column;gap:15px;max-height:400px;overflow-y:auto;padding:20px;background:#ffffff80;border-radius:20px}.dialogue-game .dialogue-line{display:flex;flex-direction:column;align-items:flex-start;animation:slideIn .3s}.dialogue-game .dialogue-line.user{align-items:flex-end}.dialogue-game .speaker{font-size:.8rem;color:#636e72;margin-bottom:5px;font-weight:700}.dialogue-game .bubble{max-width:80%;padding:15px 20px;border-radius:20px;background:#fff;box-shadow:0 2px 10px #0000001a}.dialogue-game .dialogue-line.user .bubble{background:linear-gradient(135deg,#4ecdc4,#44bd32);color:#fff}.dialogue-game .text{font-size:1.1rem;margin-bottom:5px}.dialogue-game .translation{font-size:.9rem;opacity:.8;font-style:italic}.dialogue-game .dialogue-controls{display:flex;gap:15px;justify-content:center;margin-top:20px}.dialogue-game .dialogue-controls button{padding:15px 30px;font-size:1.1rem;border-radius:15px;transition:all .3s}.dialogue-game .next-btn,.dialogue-game .skip-btn{background:linear-gradient(135deg,#4ecdc4,#44bd32);color:#fff}.dialogue-game .dialogue-progress{margin-top:20px;font-size:.9rem;color:#636e72}.result-modal{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:100;padding:20px}.result-content{background:#fff;border-radius:30px;padding:40px 30px;text-align:center;max-width:350px;width:100%;animation:popIn .5s}.result-emoji{font-size:100px;animation:celebrate 1s ease-in-out infinite}@keyframes celebrate{0%,to{transform:rotate(-10deg) scale(1)}50%{transform:rotate(10deg) scale(1.1)}}.result-title{font-size:2rem;color:#2d3436;margin:20px 0 10px}.result-stars{font-size:40px;margin:20px 0}.result-stats{display:flex;justify-content:center;gap:30px;margin:20px 0}.stat-item{text-align:center}.stat-value{font-size:1.5rem;font-weight:700;color:var(--primary-color)}.stat-label{font-size:.9rem;color:#636e72}.result-btns{display:flex;gap:15px;margin-top:20px}.result-btn{flex:1;padding:15px;font-size:1.1rem;border-radius:15px;transition:all .3s}.result-btn.retry{background:#ddd;color:#2d3436}.result-btn.next{background:linear-gradient(135deg,#4ecdc4,#44bd32);color:#fff}.result-btn:active{transform:scale(.95)}.game-screen{min-height:100vh;display:flex;flex-direction:column;background:var(--bg-gradient)}.game-header{background:#fff;padding:15px 20px;display:flex;justify-content:space-between;align-items:center;box-shadow:0 5px 20px #0000001a;position:relative;z-index:100}.game-header .back-btn{width:40px;height:40px;font-size:20px;border-radius:50%;background:#eee;cursor:pointer;transition:all .2s}.game-header .back-btn:hover{background:#ddd}.game-header .back-btn:active{transform:scale(.9);background:#ccc}.progress-bar{flex:1;margin:0 15px;height:20px;background:#eee;border-radius:10px;overflow:hidden}.progress-fill{height:100%;background:linear-gradient(90deg,#4ecdc4,#44bd32);border-radius:10px;transition:width .5s}.hearts{display:flex;gap:5px;font-size:24px}.game-content{flex:1;padding:20px;display:flex;flex-direction:column}.question-area{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.question-type{background:var(--accent-color);padding:8px 20px;border-radius:20px;font-size:.9rem;font-weight:700;margin-bottom:20px}.question-emoji{font-size:80px;margin-bottom:20px;animation:wiggle 1s ease-in-out infinite}.question-text{font-size:1.5rem;color:#2d3436;margin-bottom:30px;line-height:1.6}.options-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:15px;width:100%;max-width:400px}.option-btn{padding:15px;font-size:1rem;background:#fff;border:3px solid #ddd;border-radius:15px;transition:all .3s;display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:10px}.option-btn:active{transform:scale(.95)}.option-btn.correct{border-color:#27ae60;background:#d5f4e6;animation:correctPop .5s}.option-btn.wrong{border-color:#e74c3c;background:#fadbd8;animation:shake .5s}.option-text{flex:1;text-align:left}.speak-btn{width:36px;height:36px;border-radius:50%;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;font-size:18px;display:inline-flex;align-items:center;justify-content:center;transition:all .3s;flex-shrink:0}.speak-btn:active{transform:scale(.9)}.speak-btn.speaking{animation:speakPulse .5s infinite}@keyframes speakPulse{0%,to{transform:scale(1);background:linear-gradient(135deg,#667eea,#764ba2)}50%{transform:scale(1.1);background:linear-gradient(135deg,#764ba2,#667eea)}}.map-explorer{max-width:1000px;margin:0 auto;animation:fadeIn .5s ease-out;padding:0 10px}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.map-header{background:linear-gradient(135deg,#667eea,#764ba2);border-radius:12px;padding:15px 20px;margin-bottom:15px;box-shadow:0 4px 16px #667eea40;position:relative;overflow:hidden}@keyframes shimmer{0%,to{transform:translate(0)}50%{transform:translate(-20px,-20px)}}.map-header h2{margin:0 0 6px;color:#fff;font-size:22px;text-shadow:0 2px 8px rgba(0,0,0,.3);position:relative;z-index:1}.map-description{margin:0;color:#fffffff2;font-size:14px;line-height:1.5;position:relative;z-index:1;text-shadow:0 1px 3px rgba(0,0,0,.2)}.map-view{background:linear-gradient(135deg,#f5f7fa,#c3cfe2);border-radius:12px;padding:20px;margin-bottom:15px;box-shadow:0 6px 24px #0000001f;overflow:auto;position:relative;max-height:70vh}.map-view:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,#667eea,#764ba2,#667eea);background-size:200% 100%;animation:gradientShift 3s ease infinite}@keyframes gradientShift{0%,to{background-position:0% 50%}50%{background-position:100% 50%}}.map-grid{max-width:100%;margin:0 auto;background:linear-gradient(90deg,rgba(102,126,234,.08) 1px,transparent 1px),linear-gradient(rgba(102,126,234,.08) 1px,transparent 1px);background-color:#fff;border:4px solid transparent;border-radius:16px;position:relative;box-shadow:inset 0 0 40px #667eea1a,0 4px 20px #0000001a;background-clip:padding-box;overflow:hidden}.map-grid:before{content:"";position:absolute;top:-4px;left:-4px;right:-4px;bottom:-4px;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:16px;z-index:-1}.map-entity{position:absolute;display:flex;align-items:center;justify-content:center;font-size:28px;transition:all .3s ease;z-index:1}.player-entity{animation:playerFloat 2s ease-in-out infinite;filter:drop-shadow(0 2px 4px rgba(0,0,0,.2));z-index:10}@keyframes playerFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}.npc-entity{cursor:pointer;position:relative;filter:drop-shadow(0 2px 4px rgba(0,0,0,.2))}.npc-entity:hover{transform:scale(1.2);z-index:5}.npc-name-tag{position:absolute;bottom:-25px;left:50%;transform:translate(-50%);background:#000c;color:#fff;padding:4px 8px;border-radius:8px;font-size:10px;white-space:nowrap;opacity:0;transition:opacity .2s;pointer-events:none}.npc-entity:hover .npc-name-tag{opacity:1}.map-controls{background:linear-gradient(135deg,#fff,#f8f9fa);border-radius:12px;padding:15px 20px;margin-bottom:15px;box-shadow:0 4px 16px #0000001a;border:1px solid rgba(102,126,234,.1)}.control-hint{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:10px;color:#667eea;font-size:12px;font-weight:500;margin-bottom:12px;padding:8px 15px;background:linear-gradient(135deg,#e8eaf6,#f3e5f5);border-radius:16px;border:1px solid rgba(102,126,234,.2);box-shadow:0 1px 4px #667eea1a}.vocab-practice-btn{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;background:linear-gradient(135deg,#51cf66,#37b24d);border:none;border-radius:20px;color:#fff;font-size:12px;font-weight:600;cursor:pointer;transition:all .3s;box-shadow:0 2px 8px #51cf664d}.vocab-practice-btn:hover{transform:scale(1.05);box-shadow:0 4px 12px #51cf6666}.direction-pad{display:flex;flex-direction:column;align-items:center;gap:6px;max-width:220px;margin:0 auto}.dir-middle{display:flex;gap:6px;align-items:center}.dir-btn,.interact-btn{width:48px;height:48px;background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:12px;cursor:pointer;font-size:20px;color:#fff;transition:all .3s cubic-bezier(.4,0,.2,1);box-shadow:0 4px #5a67d8,0 6px 16px #667eea4d;position:relative;overflow:hidden}.dir-btn:before,.interact-btn:before{content:"";position:absolute;top:50%;left:50%;width:0;height:0;border-radius:50%;background:#ffffff4d;transform:translate(-50%,-50%);transition:width .6s,height .6s}.dir-btn:hover:before,.interact-btn:hover:before{width:100%;height:100%}.dir-btn:hover,.interact-btn:hover{background:linear-gradient(135deg,#5a67d8,#6a4ba2);transform:translateY(-3px) scale(1.05);box-shadow:0 6px #4c51bf,0 8px 20px #667eea66}.dir-btn:active,.interact-btn:active{transform:translateY(1px) scale(.95);box-shadow:0 1px #4c51bf,0 3px 10px #667eea4d}.interact-btn{width:68px;font-size:12px;font-weight:700;background:linear-gradient(135deg,#51cf66,#37b24d);box-shadow:0 4px #37b24d,0 6px 16px #51cf664d}.interact-btn:hover{background:linear-gradient(135deg,#37b24d,#2b8a3e);box-shadow:0 6px #2b8a3e,0 8px 20px #51cf6666}.interact-btn:active{box-shadow:0 1px #2b8a3e,0 3px 10px #51cf664d}.location-fab{position:fixed;bottom:20px;right:20px;width:56px;height:56px;border-radius:50%;background:linear-gradient(135deg,#667eea,#764ba2);border:none;cursor:pointer;font-size:26px;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 12px #667eea66,0 2px 4px #0003;transition:all .3s cubic-bezier(.4,0,.2,1);z-index:50;animation:fabPulse 2s ease-in-out infinite}@keyframes fabPulse{0%,to{box-shadow:0 4px 12px #667eea66,0 2px 4px #0003}50%{box-shadow:0 6px 20px #667eea99,0 4px 8px #0000004d}}.location-fab:hover{transform:scale(1.1);box-shadow:0 8px 24px #667eea80,0 4px 8px #0000004d}.location-fab:active{transform:scale(.95)}.location-popup-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:200;animation:overlayFadeIn .2s ease-out;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.location-popup{background:#fff;border-radius:16px;width:90%;max-width:320px;max-height:80vh;overflow:hidden;box-shadow:0 20px 60px #0000004d;animation:popupSlideIn .3s cubic-bezier(.34,1.56,.64,1)}@keyframes popupSlideIn{0%{opacity:0;transform:scale(.9) translateY(20px)}to{opacity:1;transform:scale(1) translateY(0)}}.popup-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.popup-header h3{margin:0;font-size:18px;font-weight:700}.popup-close{width:32px;height:32px;border-radius:50%;background:#fff3;border:none;color:#fff;font-size:20px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s}.popup-close:hover{background:#ffffff4d;transform:rotate(90deg)}.popup-content{padding:12px;max-height:50vh;overflow-y:auto}.popup-location-btn{display:flex;align-items:center;gap:12px;width:100%;padding:14px 16px;margin-bottom:8px;background:#f8f9fa;border:2px solid transparent;border-radius:12px;cursor:pointer;transition:all .2s;text-align:left}.popup-location-btn:last-child{margin-bottom:0}.popup-location-btn:hover:not(:disabled){background:#e8eaf6;border-color:#667eea;transform:translate(4px)}.popup-location-btn.current{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.popup-location-btn:disabled{cursor:not-allowed;opacity:.8}.location-icon{font-size:24px}.location-name{flex:1;font-size:15px;font-weight:600}.current-badge{font-size:11px;padding:3px 8px;background:#ffffff4d;border-radius:10px}.loading{display:flex;align-items:center;justify-content:center;height:400px;font-size:18px;color:#666}@media (max-width: 768px){.map-view{padding:20px 15px}.map-controls{padding:20px}.dir-btn,.interact-btn{width:56px;height:56px;font-size:22px}.interact-btn{width:80px;font-size:13px}.location-fab{bottom:16px;right:16px;width:50px;height:50px;font-size:22px}}@media (max-width: 480px){.map-view{padding:15px 10px}.direction-pad{max-width:250px}.dir-btn,.interact-btn{width:50px;height:50px;font-size:20px}.interact-btn{width:70px;font-size:12px}.location-fab{bottom:12px;right:12px;width:46px;height:46px;font-size:20px}.location-popup{width:95%;max-width:280px}.popup-location-btn{padding:12px 14px;gap:10px}.location-icon{font-size:20px}.location-name{font-size:14px}}.npc-dialogue{max-width:800px;margin:0 auto;height:calc(100vh - 140px);display:flex;flex-direction:column;animation:slideInUp .4s cubic-bezier(.4,0,.2,1)}.dialogue-container{background:#fff;border-radius:20px;box-shadow:0 10px 40px #00000026,0 0 0 1px #667eea1a;display:flex;flex-direction:column;height:100%;overflow:hidden}.dialogue-header{display:flex;align-items:center;gap:15px;padding:25px 30px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;position:relative}.dialogue-header:before{content:"";position:absolute;top:-50%;left:-50%;width:200%;height:200%;background:radial-gradient(circle,rgba(255,255,255,.1) 0%,transparent 70%);animation:headerShimmer 4s ease-in-out infinite}@keyframes headerShimmer{0%,to{transform:translate(0) rotate(0)}50%{transform:translate(-10px,-10px) rotate(180deg)}}.npc-avatar-large{font-size:64px;line-height:1;position:relative;z-index:1;filter:drop-shadow(0 4px 8px rgba(0,0,0,.2));animation:avatarBounce 2s ease-in-out infinite}@keyframes avatarBounce{0%,to{transform:translateY(0) scale(1)}50%{transform:translateY(-5px) scale(1.05)}}.npc-info{flex:1;position:relative;z-index:1}.npc-info h2{margin:0 0 5px;font-size:28px;text-shadow:0 2px 8px rgba(0,0,0,.3);font-weight:700}.npc-name-cn{margin:0;font-size:15px;opacity:.95;text-shadow:0 1px 3px rgba(0,0,0,.2)}.close-dialogue-btn{background:#ffffff40;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:2px solid rgba(255,255,255,.3);width:40px;height:40px;border-radius:50%;font-size:28px;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .3s cubic-bezier(.4,0,.2,1);position:relative;z-index:1}.close-dialogue-btn:hover{background:#ffffff59;transform:rotate(90deg) scale(1.1);box-shadow:0 4px 12px #0003}.quest-btn{background:#ffd700e6;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:2px solid rgba(255,255,255,.3);width:50px;height:40px;border-radius:12px;font-size:16px;color:#333;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:4px;transition:all .3s;position:relative;z-index:1;animation:questPulse 2s ease-in-out infinite}@keyframes questPulse{0%,to{box-shadow:0 0 #ffd70080}50%{box-shadow:0 0 0 8px #ffd70000}}.quest-btn:hover{background:gold;transform:scale(1.1)}.quest-panel{position:absolute;top:100%;left:0;right:0;background:#fff;border-radius:0 0 20px 20px;box-shadow:0 10px 30px #0003;z-index:100;animation:slideDown .3s ease-out;max-height:300px;overflow:hidden}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.quest-panel-header{display:flex;justify-content:space-between;align-items:center;padding:12px 20px;background:linear-gradient(135deg,gold,#ffb300);color:#333}.quest-panel-header h3{margin:0;font-size:16px}.close-quest-panel{width:28px;height:28px;border-radius:50%;background:#0000001a;border:none;font-size:18px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s}.close-quest-panel:hover{background:#0003}.quest-panel-content{padding:15px;max-height:220px;overflow-y:auto}.quest-item{background:#f8f9fa;border-radius:12px;padding:15px;margin-bottom:10px;border:2px solid #e9ecef}.quest-item:last-child{margin-bottom:0}.quest-item-header{margin-bottom:8px}.quest-item-title{display:block;font-size:16px;font-weight:700;color:#333}.quest-item-title-en{display:block;font-size:13px;color:#667eea;margin-top:2px}.quest-item-desc{font-size:13px;color:#666;margin-bottom:10px;line-height:1.4}.quest-item-objectives{font-size:12px;color:#495057;margin-bottom:8px}.objective-tag{display:inline-block;background:#e8eaf6;padding:2px 8px;border-radius:10px;margin-left:6px;font-size:11px}.quest-item-reward{font-size:12px;color:#495057;margin-bottom:12px}.quest-item-reward span{margin-left:8px;color:#667eea;font-weight:500}.accept-quest-btn{width:100%;padding:10px;background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:8px;color:#fff;font-size:14px;font-weight:700;cursor:pointer;transition:all .3s}.accept-quest-btn:hover{transform:translateY(-2px);box-shadow:0 4px 12px #667eea66}.messages-container{flex:1;overflow-y:auto;padding:25px;background:linear-gradient(135deg,#f5f7fa,#e8eaf6);display:flex;flex-direction:column;gap:18px;position:relative}.messages-container:before{content:"";position:fixed;top:0;left:0;right:0;bottom:0;background-image:radial-gradient(circle at 20% 50%,rgba(102,126,234,.03) 0%,transparent 50%),radial-gradient(circle at 80% 80%,rgba(118,75,162,.03) 0%,transparent 50%);pointer-events:none;z-index:0}.message{display:flex;align-items:flex-start;gap:10px;animation:messageSlideIn .4s cubic-bezier(.4,0,.2,1);position:relative;z-index:1;max-width:85%}@keyframes messageSlideIn{0%{opacity:0;transform:translateY(15px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.message.npc{justify-content:flex-start;align-self:flex-start}.message.player{justify-content:flex-end;align-self:flex-end;margin-left:auto}.message-avatar{width:44px;height:44px;border-radius:50%;background:linear-gradient(135deg,#667eea,#764ba2);display:flex;align-items:center;justify-content:center;font-size:24px;flex-shrink:0;box-shadow:0 2px 8px #00000026}.message-avatar.player-avatar{background:linear-gradient(135deg,#51cf66,#37b24d)}.message-content{display:flex;flex-direction:column;gap:6px;max-width:calc(100% - 54px)}.message-bubble{padding:12px 16px;border-radius:18px;position:relative;box-shadow:0 2px 8px #00000014;transition:all .3s ease}.message-bubble:hover{transform:translateY(-1px);box-shadow:0 4px 12px #0000001f}.message.npc .message-bubble{background:#fff;border:1px solid rgba(102,126,234,.15);border-top-left-radius:4px}.message.player .message-bubble{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border-top-right-radius:4px}.voice-tag{display:inline-block;font-size:12px;margin-right:6px;opacity:.8}.message-english{font-size:16px;line-height:1.5;margin-bottom:8px}.message.player .message-english{margin-bottom:0}.message-chinese{font-size:14px;opacity:.8;color:#666;border-top:1px solid #e9ecef;padding-top:8px;margin-top:8px}.play-voice-btn{background:linear-gradient(135deg,#667eea,#764ba2);border:none;width:28px;height:28px;border-radius:50%;cursor:pointer;font-size:14px;display:flex;align-items:center;justify-content:center;transition:all .2s;box-shadow:0 2px 6px #667eea4d;align-self:flex-start}.play-voice-btn:hover:not(:disabled){background:#5a67d8;transform:scale(1.1)}.play-voice-btn:disabled{opacity:.5;cursor:not-allowed}.typing-indicator{display:flex;gap:4px;padding:20px}.typing-indicator span{width:8px;height:8px;background:#667eea;border-radius:50%;animation:typingBounce 1.4s infinite ease-in-out}.typing-indicator span:nth-child(1){animation-delay:-.32s}.typing-indicator span:nth-child(2){animation-delay:-.16s}@keyframes typingBounce{0%,80%,to{transform:scale(0);opacity:.5}40%{transform:scale(1);opacity:1}}.quick-replies{display:flex;gap:10px;padding:18px 25px;background:linear-gradient(135deg,#fff,#f8f9fa);border-top:2px solid rgba(102,126,234,.1);overflow-x:auto;white-space:nowrap}.quick-reply-btn{padding:10px 18px;background:linear-gradient(135deg,#e8eaf6,#f3e5f5);border:2px solid rgba(102,126,234,.2);border-radius:20px;cursor:pointer;font-size:14px;font-weight:500;color:#667eea;transition:all .3s cubic-bezier(.4,0,.2,1);flex-shrink:0;position:relative;overflow:hidden}.quick-reply-btn:before{content:"";position:absolute;top:50%;left:50%;width:0;height:0;border-radius:50%;background:#667eea26;transform:translate(-50%,-50%);transition:width .6s,height .6s}.quick-reply-btn:hover:before{width:200%;height:200%}.quick-reply-btn:hover{background:linear-gradient(135deg,#667eea,#764ba2);border-color:transparent;color:#fff;transform:translateY(-2px);box-shadow:0 4px 12px #667eea4d}.input-area{display:flex;gap:12px;padding:20px 25px;background:#fff;border-top:2px solid rgba(102,126,234,.1);box-shadow:0 -4px 12px #0000000d}.dialogue-input{flex:1;padding:14px 20px;border:2px solid #e9ecef;border-radius:28px;font-size:15px;outline:none;transition:all .3s cubic-bezier(.4,0,.2,1);background:#f8f9fa}.dialogue-input:focus{border-color:#667eea;background:#fff;box-shadow:0 0 0 4px #667eea1a;transform:translateY(-1px)}.dialogue-input:disabled{background:#f1f3f5;cursor:not-allowed;opacity:.6}.send-btn{width:52px;height:52px;background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:50%;cursor:pointer;font-size:22px;display:flex;align-items:center;justify-content:center;transition:all .3s cubic-bezier(.4,0,.2,1);box-shadow:0 4px 12px #667eea4d;position:relative;overflow:hidden}.send-btn:before{content:"";position:absolute;top:50%;left:50%;width:0;height:0;border-radius:50%;background:#ffffff4d;transform:translate(-50%,-50%);transition:width .6s,height .6s}.send-btn:hover:before{width:100%;height:100%}.send-btn:hover:not(:disabled){transform:scale(1.1) rotate(15deg);box-shadow:0 6px 20px #667eea66}.send-btn:disabled{background:#dee2e6;cursor:not-allowed;box-shadow:none}.voice-input-btn{width:52px;height:52px;background:linear-gradient(135deg,#51cf66,#37b24d);border:none;border-radius:50%;cursor:pointer;font-size:22px;display:flex;align-items:center;justify-content:center;transition:all .3s cubic-bezier(.4,0,.2,1);box-shadow:0 4px 12px #51cf664d;user-select:none;-webkit-user-select:none;touch-action:none}.voice-input-btn:hover:not(:disabled){transform:scale(1.1);box-shadow:0 6px 20px #51cf6666}.voice-input-btn.pressing{transform:scale(.95);background:linear-gradient(135deg,#fcc419,#fab005);box-shadow:0 2px 8px #fcc41966}.voice-input-btn.listening{background:linear-gradient(135deg,#ff6b6b,#ee5a5a);box-shadow:0 4px 12px #ff6b6b66;animation:listeningPulse 1s ease-in-out infinite;transform:scale(1.05)}@keyframes listeningPulse{0%,to{transform:scale(1);box-shadow:0 4px 12px #ff6b6b66}50%{transform:scale(1.1);box-shadow:0 6px 24px #ff6b6b99}}.voice-input-btn:disabled{background:#dee2e6;cursor:not-allowed;box-shadow:none}.dialogue-hint{padding:12px 20px;background:#fff3cd;text-align:center;color:#856404;font-size:14px;border-top:1px solid #ffeaa7}.voice-recording-overlay{position:absolute;top:0;left:0;right:0;bottom:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:100;animation:fadeIn .2s ease-out}.voice-recording-modal{background:#000000e6;border-radius:20px;padding:30px 50px;text-align:center;color:#fff}.voice-wave{display:flex;align-items:center;justify-content:center;gap:6px;height:50px;margin-bottom:15px}.voice-wave span{width:6px;height:20px;background:#51cf66;border-radius:3px;animation:voiceWave .8s ease-in-out infinite}.voice-wave span:nth-child(1){animation-delay:0s}.voice-wave span:nth-child(2){animation-delay:.1s}.voice-wave span:nth-child(3){animation-delay:.2s}.voice-wave span:nth-child(4){animation-delay:.3s}.voice-wave span:nth-child(5){animation-delay:.4s}@keyframes voiceWave{0%,to{height:20px}50%{height:40px}}.voice-recording-text{font-size:18px;font-weight:600;margin-bottom:10px;color:#51cf66}.voice-transcript{font-size:16px;color:#adb5bd;max-width:250px;word-wrap:break-word}@media (max-width: 768px){.npc-dialogue{height:calc(100vh - 80px)}.dialogue-header{padding:15px}.npc-avatar-large{font-size:40px}.npc-info h2{font-size:20px}.message-bubble{max-width:85%}.quick-replies{padding:10px 15px}.input-area{padding:12px 15px}}.header-actions{display:flex;gap:8px;position:relative;z-index:1}.shop-btn{background:#4caf50e6;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:2px solid rgba(255,255,255,.3);padding:8px 12px;border-radius:12px;font-size:14px;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:4px;transition:all .3s;font-weight:600}.shop-btn:hover{background:#4caf50;transform:scale(1.05)}.shop-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .3s ease-out;padding:20px}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.shop-modal{background:#fff;border-radius:20px;box-shadow:0 20px 60px #0000004d;width:100%;max-width:500px;max-height:80vh;overflow:hidden;display:flex;flex-direction:column;animation:slideUp .3s ease-out}@keyframes slideUp{0%{opacity:0;transform:translateY(30px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.shop-modal-header{display:flex;align-items:center;gap:12px;padding:20px 25px;background:linear-gradient(135deg,#4caf50,#2e7d32);color:#fff}.shop-title{display:flex;align-items:center;gap:10px;flex:1}.shop-icon{font-size:28px}.shop-title h3{margin:0;font-size:20px;font-weight:600}.shop-modal-header .player-coins{font-size:16px;font-weight:600;background:#fff3;padding:8px 16px;border-radius:20px}.close-shop-btn{width:36px;height:36px;border-radius:50%;background:#fff3;border:none;font-size:24px;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s}.close-shop-btn:hover{background:#ffffff4d;transform:rotate(90deg)}.shop-modal-content{padding:20px;overflow-y:auto;flex:1;display:flex;flex-direction:column;gap:12px}.shop-item{display:flex;align-items:center;gap:15px;padding:15px;background:#f8f9fa;border-radius:16px;border:2px solid #e9ecef;transition:all .2s}.shop-item:hover{border-color:#4caf50;background:#f1f8e9;transform:translate(5px)}.shop-item-icon{font-size:40px;width:60px;height:60px;display:flex;align-items:center;justify-content:center;background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a}.shop-item-info{flex:1}.shop-item-name{font-size:16px;font-weight:600;color:#333}.shop-item-name-en{font-size:13px;color:#4caf50;margin-top:2px}.shop-item-effect{font-size:12px;color:#666;margin-top:6px;padding:4px 8px;background:#e8f5e9;border-radius:8px;display:inline-block}.shop-item-price{display:flex;flex-direction:column;align-items:center;gap:8px}.price-amount{font-size:16px;font-weight:700;color:#f9a825}.buy-btn{padding:10px 20px;background:linear-gradient(135deg,#4caf50,#2e7d32);border:none;border-radius:20px;color:#fff;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s}.buy-btn:hover:not(:disabled){transform:scale(1.05);box-shadow:0 4px 12px #4caf5066}.buy-btn.disabled,.buy-btn:disabled{background:#bdbdbd;cursor:not-allowed;opacity:.7}.purchase-message{margin:0 20px 20px;padding:12px 20px;border-radius:12px;font-size:14px;font-weight:600;text-align:center;animation:bounceIn .3s ease-out}@keyframes bounceIn{0%{transform:scale(.8);opacity:0}50%{transform:scale(1.05)}to{transform:scale(1);opacity:1}}.purchase-message.success{background:#c8e6c9;color:#2e7d32}.purchase-message.error{background:#ffcdd2;color:#c62828}.battle-screen{max-width:1000px;margin:0 auto;min-height:calc(100vh - 140px);display:flex;flex-direction:column;gap:20px;animation:battleEnter .5s cubic-bezier(.4,0,.2,1);padding-bottom:20px}@keyframes battleEnter{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.battle-background{background:linear-gradient(135deg,#667eea,#764ba2);border-radius:20px;padding:35px;display:flex;justify-content:space-between;align-items:flex-start;box-shadow:0 10px 40px #667eea66,inset 0 0 60px #ffffff1a;position:relative;overflow:hidden}.battle-background:before{content:"";position:absolute;top:-50%;left:-50%;width:200%;height:200%;background:radial-gradient(circle at 30% 50%,rgba(255,255,255,.15) 0%,transparent 50%),radial-gradient(circle at 70% 50%,rgba(255,255,255,.1) 0%,transparent 50%);animation:backgroundPulse 4s ease-in-out infinite}@keyframes backgroundPulse{0%,to{transform:translate(0) scale(1)}50%{transform:translate(-10px,-10px) scale(1.05)}}.monster-section{flex:1;text-align:center;position:relative;z-index:1}.monster-avatar{font-size:96px;margin-bottom:20px;animation:monsterBounce 2s ease-in-out infinite;filter:drop-shadow(0 8px 16px rgba(0,0,0,.3));display:inline-block;transition:all .3s ease}.monster-avatar:hover{transform:scale(1.1) rotate(5deg)}@keyframes monsterBounce{0%,to{transform:translateY(0) rotate(0)}25%{transform:translateY(-15px) rotate(-3deg)}75%{transform:translateY(-15px) rotate(3deg)}}.monster-info h2{color:#fff;margin:0 0 18px;font-size:28px;text-shadow:0 2px 10px rgba(0,0,0,.5),0 0 20px rgba(255,255,255,.3);font-weight:700;letter-spacing:1px}.monster-hp-bar{background:#0006;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:16px;height:32px;position:relative;overflow:hidden;margin:0 auto;max-width:280px;border:2px solid rgba(255,255,255,.3);box-shadow:inset 0 2px 8px #0000004d,0 4px 12px #0003}.monster-hp-fill{height:100%;background:linear-gradient(90deg,#51cf66,#37b24d,#2b8a3e);border-radius:14px;transition:width .6s cubic-bezier(.4,0,.2,1);box-shadow:inset 0 -2px 4px #0003;position:relative;overflow:hidden}.monster-hp-fill:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.4),transparent);animation:hpShine 2s ease infinite}@keyframes hpShine{0%{left:-100%}to{left:200%}}.hp-text{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);color:#fff;font-weight:700;font-size:14px;text-shadow:0 1px 2px rgba(0,0,0,.5)}.player-battle-section{flex:1;text-align:center}.player-battle-avatar{font-size:64px;margin-bottom:15px}.player-battle-info h3{color:#fff;margin:0 0 10px;font-size:20px;text-shadow:0 2px 4px rgba(0,0,0,.3)}.player-battle-hp{color:#fff;font-size:16px;font-weight:700;text-shadow:0 1px 2px rgba(0,0,0,.3)}.battle-question-area{background:linear-gradient(135deg,#fff,#f8f9fa);border-radius:20px;padding:25px;box-shadow:0 10px 40px #00000026,inset 0 0 0 1px #667eea1a;display:flex;flex-direction:column;position:relative;flex:1}.battle-question-area:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,#667eea,#764ba2,#667eea);background-size:200% 100%;animation:gradientMove 3s ease infinite}@keyframes gradientMove{0%,to{background-position:0% 50%}50%{background-position:100% 50%}}.loading-question{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;gap:20px}.loading-question p{color:#666;font-size:16px}.question-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.question-type-badge{background:#667eea;color:#fff;padding:8px 16px;border-radius:20px;font-size:14px;font-weight:700}.turn-counter{background:#f8f9fa;color:#495057;padding:8px 16px;border-radius:20px;font-size:14px;font-weight:700}.battle-question{margin-bottom:25px;text-align:center}.battle-question h3{color:#333;margin:0 0 10px;font-size:22px}.question-english{color:#667eea;font-size:18px;font-weight:500;margin:0}.battle-options{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;margin-bottom:20px}.battle-option{padding:16px 20px;background:linear-gradient(135deg,#f8f9fa,#fff);border:3px solid #dee2e6;border-radius:16px;cursor:pointer;font-size:17px;font-weight:600;color:#333;transition:all .3s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden;display:flex;align-items:center;justify-content:space-between;gap:12px}.option-content{display:flex;flex-direction:column;align-items:flex-start;gap:4px;flex:1}.option-en{font-size:18px;font-weight:700;color:#333}.option-cn{font-size:14px;color:#868e96;font-weight:500}.option-speak-btn{width:36px;height:36px;border-radius:50%;background:linear-gradient(135deg,#667eea,#764ba2);border:none;cursor:pointer;font-size:16px;display:flex;align-items:center;justify-content:center;transition:all .2s ease;flex-shrink:0}.option-speak-btn:disabled{opacity:.5;cursor:not-allowed}.battle-option:before{content:"";position:absolute;top:50%;left:50%;width:0;height:0;border-radius:50%;background:#667eea1a;transform:translate(-50%,-50%);transition:width .6s,height .6s}.battle-option:hover:not(:disabled):before{width:300%;height:300%}.battle-option:hover:not(:disabled){background:linear-gradient(135deg,#e8eaf6,#f3e5f5);border-color:#667eea;transform:translateY(-4px) scale(1.02);box-shadow:0 8px 24px #667eea40}.battle-option:disabled{cursor:not-allowed}.battle-option.correct{background:linear-gradient(135deg,#d3f9d8,#b2f2bb);border-color:#51cf66;color:#2b8a3e;animation:correctPulse .6s cubic-bezier(.4,0,.2,1);box-shadow:0 0 30px #51cf6680}.battle-option.wrong{background:linear-gradient(135deg,#ffe3e3,#ffc9c9);border-color:#ff6b6b;color:#c92a2a;animation:wrongShake .6s cubic-bezier(.4,0,.2,1);box-shadow:0 0 30px #ff6b6b80}@keyframes correctPulse{0%,to{transform:scale(1)}50%{transform:scale(1.08)}}@keyframes wrongShake{0%,to{transform:translate(0)}25%{transform:translate(-12px) rotate(-2deg)}75%{transform:translate(12px) rotate(2deg)}}.battle-feedback{padding:15px 20px;border-radius:12px;text-align:center;animation:fadeIn .3s ease-out}.feedback-message{font-size:16px;font-weight:700;margin-bottom:8px}.feedback-explanation{font-size:14px;font-weight:400;opacity:.9;padding-top:8px;border-top:1px solid rgba(0,0,0,.1)}@keyframes fadeIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.battle-feedback.correct{background:#d3f9d8;color:#2b8a3e;border:2px solid #51cf66}.battle-feedback.wrong{background:#ffe3e3;color:#c92a2a;border:2px solid #ff6b6b}.log-toggle-btn{position:absolute;bottom:15px;right:15px;background:#ffffffe6;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:none;border-radius:20px;padding:8px 16px;font-size:14px;font-weight:700;color:#667eea;cursor:pointer;box-shadow:0 4px 12px #0003;transition:all .3s ease;z-index:10}.log-toggle-btn:hover{background:#fff;transform:scale(1.05);box-shadow:0 6px 16px #00000040}.battle-log-popup{position:absolute;bottom:60px;right:15px;width:280px;max-height:250px;background:#fff;border-radius:16px;box-shadow:0 10px 40px #0000004d;z-index:20;animation:logPopupIn .3s cubic-bezier(.34,1.56,.64,1);overflow:hidden}@keyframes logPopupIn{0%{opacity:0;transform:scale(.9) translateY(10px)}to{opacity:1;transform:scale(1) translateY(0)}}.log-popup-header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.log-popup-header h4{margin:0;font-size:14px;font-weight:600}.log-close-btn{width:24px;height:24px;border-radius:50%;background:#fff3;border:none;color:#fff;font-size:16px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s}.log-close-btn:hover{background:#ffffff4d}.log-popup-content{padding:10px;max-height:180px;overflow-y:auto}.log-entry{padding:8px 12px;margin:5px 0;border-radius:6px;font-size:13px;animation:logSlideIn .3s ease-out}@keyframes logSlideIn{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}.log-entry.system{background:#e9ecef;color:#495057}.log-entry.battle{background:#fff3cd;color:#856404}.log-entry.player{background:#d3f9d8;color:#2b8a3e}.log-entry.enemy{background:#ffe3e3;color:#c92a2a}.log-entry.victory{background:#d0ebff;color:#1864ab;font-weight:700}.log-entry.defeat{background:#f8f0fc;color:#862e9c;font-weight:700}.explanation-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .3s ease-out}.explanation-modal{background:#fff;border-radius:20px;width:90%;max-width:400px;box-shadow:0 20px 60px #0000004d;animation:modalSlideIn .4s cubic-bezier(.34,1.56,.64,1);overflow:hidden}@keyframes modalSlideIn{0%{opacity:0;transform:scale(.8) translateY(20px)}to{opacity:1;transform:scale(1) translateY(0)}}.explanation-modal-header{background:linear-gradient(135deg,#ff6b6b,#ee5a5a);color:#fff;padding:20px;text-align:center;display:flex;align-items:center;justify-content:center;gap:10px}.explanation-modal-header .wrong-icon{font-size:32px}.explanation-modal-header h3{margin:0;font-size:24px;font-weight:700}.damage-info{display:flex;align-items:center;justify-content:center;gap:8px;padding:12px;background:#fff5f5;border-radius:12px;margin-bottom:20px;color:#c92a2a;font-weight:600;font-size:16px}.damage-info .damage-icon{font-size:20px}.correct-answer-section{text-align:center;margin-bottom:20px}.correct-label{font-size:14px;color:#868e96;margin-bottom:8px}.correct-answer{font-size:24px;font-weight:700;color:#37b24d;padding:15px;background:linear-gradient(135deg,#d3f9d8,#b2f2bb);border-radius:12px;border:2px solid #51cf66;display:flex;flex-direction:column;align-items:center;gap:8px;position:relative}.correct-answer .answer-en{font-size:28px;font-weight:700}.correct-answer .answer-cn{font-size:16px;color:#2b8a3e;font-weight:500}.answer-speak-btn{position:absolute;right:12px;top:50%;transform:translateY(-50%);width:40px;height:40px;border-radius:50%;background:linear-gradient(135deg,#667eea,#764ba2);border:none;cursor:pointer;font-size:18px;display:flex;align-items:center;justify-content:center;transition:all .2s ease;box-shadow:0 2px 8px #667eea4d}.answer-speak-btn:hover{transform:translateY(-50%) scale(1.1);box-shadow:0 4px 12px #667eea80}.explanation-section{background:#f8f9fa;border-radius:12px;padding:15px;border-left:4px solid #667eea}.explanation-label{font-size:14px;color:#667eea;font-weight:600;margin-bottom:8px}.explanation-text{font-size:15px;color:#495057;line-height:1.6}.explanation-modal .confirm-btn{width:100%;padding:18px;background:linear-gradient(135deg,#667eea,#764ba2);border:none;color:#fff;font-size:18px;font-weight:700;cursor:pointer;transition:all .3s ease}.explanation-modal .confirm-btn:hover{background:linear-gradient(135deg,#5a67d8,#6b46a1)}.explanation-modal .confirm-btn:active{transform:scale(.98)}@media (max-width: 768px){.battle-screen{min-height:calc(100vh - 80px);gap:15px}.monster-avatar{font-size:60px}.player-battle-avatar{font-size:48px}.battle-question-area{padding:20px}.battle-options{grid-template-columns:1fr}.battle-question h3{font-size:18px}.question-english{font-size:16px}.battle-log-popup{width:240px;bottom:50px;right:10px}.log-toggle-btn{bottom:10px;right:10px;padding:6px 12px;font-size:12px}}.vocab-practice{max-width:600px;margin:0 auto;height:calc(100vh - 140px);display:flex;flex-direction:column;animation:slideInUp .4s cubic-bezier(.4,0,.2,1)}.vocab-container{background:#fff;border-radius:20px;box-shadow:0 10px 40px #00000026;display:flex;flex-direction:column;height:100%;overflow:auto}.vocab-header{display:flex;align-items:center;justify-content:space-between;padding:20px 25px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.vocab-theme{display:flex;align-items:center;gap:15px}.theme-icon{font-size:48px;filter:drop-shadow(0 2px 4px rgba(0,0,0,.2))}.theme-info h2{margin:0 0 4px;font-size:24px}.theme-info p{margin:0;font-size:14px;opacity:.9}.close-vocab-btn{background:#fff3;border:none;width:40px;height:40px;border-radius:50%;font-size:24px;color:#fff;cursor:pointer;transition:all .3s}.close-vocab-btn:hover{background:#ffffff4d;transform:rotate(90deg)}.vocab-menu{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:30px;gap:25px}.menu-title{font-size:20px;font-weight:600;color:#333}.menu-options{display:flex;flex-direction:column;gap:15px;width:100%;max-width:350px}.menu-option{display:flex;align-items:center;gap:15px;padding:20px;border:none;border-radius:16px;cursor:pointer;transition:all .3s;text-align:left}.menu-option.learn-mode{background:linear-gradient(135deg,#51cf66,#37b24d);color:#fff}.menu-option.quiz-mode{background:linear-gradient(135deg,#fcc419,#fab005);color:#333}.menu-option:hover{transform:translateY(-3px);box-shadow:0 8px 20px #00000026}.option-icon{font-size:36px}.option-text{display:flex;flex-direction:column;gap:4px}.option-title{font-size:18px;font-weight:600}.option-desc{font-size:13px;opacity:.9}.word-count{font-size:14px;color:#666}.learn-mode-content{flex:1;display:flex;flex-direction:column;padding:20px;gap:20px}.word-progress{text-align:center;font-size:14px;color:#666}.word-card{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;background:linear-gradient(135deg,#f5f7fa,#e8eaf6);border-radius:20px;padding:30px;cursor:pointer;transition:all .3s;gap:20px}.word-card:hover{transform:scale(1.02);box-shadow:0 8px 25px #0000001a}.word-english{font-size:42px;font-weight:700;color:#667eea;display:flex;align-items:center;gap:15px}.play-word-btn,.play-example-btn,.play-quiz-btn{width:40px;height:40px;border-radius:50%;border:none;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;cursor:pointer;font-size:18px;transition:all .2s;display:flex;align-items:center;justify-content:center}.play-word-btn:hover,.play-example-btn:hover,.play-quiz-btn:hover{transform:scale(1.1)}.play-word-btn:disabled,.play-example-btn:disabled,.play-quiz-btn:disabled{opacity:.6;animation:pulse 1s infinite}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}.word-chinese{font-size:32px;color:#333;animation:fadeIn .3s ease-out}.tap-hint{font-size:16px;color:#999}.word-example{display:flex;align-items:center;gap:10px;background:#fff;padding:15px 20px;border-radius:12px;box-shadow:0 2px 8px #00000014;max-width:100%}.example-label{font-size:12px;color:#999;white-space:nowrap}.example-text{font-size:15px;color:#333;flex:1}.play-example-btn{width:32px;height:32px;font-size:14px}.learn-controls{display:flex;justify-content:space-between;gap:10px}.nav-btn{flex:1;padding:14px;border:none;border-radius:12px;font-size:15px;font-weight:600;cursor:pointer;transition:all .3s}.nav-btn.prev{background:#e9ecef;color:#495057}.nav-btn.next{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.nav-btn:hover{transform:translateY(-2px)}.back-menu-btn{padding:14px 20px;background:#f8f9fa;border:2px solid #e9ecef;border-radius:12px;font-size:14px;color:#666;cursor:pointer;transition:all .2s}.back-menu-btn:hover{background:#e9ecef}.quiz-mode-content{flex:1;display:flex;flex-direction:column;padding:20px;gap:20px;overflow:auto}.loading-question{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px}.spinner{width:50px;height:50px;border:4px solid #f3f3f3;border-top:4px solid #667eea;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.loading-question p{font-size:18px;font-weight:600;color:#667eea;margin:0}.loading-hint{font-size:14px!important;color:#999!important;font-weight:400!important}.quiz-progress{display:flex;justify-content:space-between;align-items:center}.quiz-score{font-size:18px;font-weight:600;color:#51cf66}.quiz-index{font-size:14px;color:#666}.quiz-question{text-align:center;padding:30px;background:linear-gradient(135deg,#f5f7fa,#e8eaf6);border-radius:20px}.question-text{font-size:16px;color:#666;margin-bottom:15px}.question-word{font-size:24px;font-weight:700;color:#667eea;margin-bottom:15px;display:flex;align-items:center;justify-content:center;gap:15px}.question-hint{font-size:16px;color:#666}.quiz-options{display:flex;flex-direction:column;gap:12px;max-height:400px;overflow-y:auto;padding-right:5px}.quiz-option{padding:18px 20px;border:3px solid #e9ecef;border-radius:14px;background:#fff;font-size:18px;font-weight:600;color:#333;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:space-between;gap:15px;text-align:left;min-height:60px}.option-content{flex:1;display:flex;align-items:center;gap:10px}.option-en{font-size:18px;font-weight:600;color:#333}.option-speak-btn{width:36px;height:36px;border-radius:50%;border:none;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;cursor:pointer;font-size:16px;transition:all .2s;display:flex;align-items:center;justify-content:center;flex-shrink:0}.option-speak-btn:hover:not(:disabled){transform:scale(1.1);box-shadow:0 4px 12px #667eea66}.option-speak-btn:disabled{opacity:.5;cursor:default}.quiz-option:hover:not(:disabled){border-color:#667eea;background:#f5f7fa;transform:translateY(-2px)}.quiz-option.correct,.quiz-option.show-correct{border-color:#51cf66;background:#d3f9d8;color:#2f9e44}.quiz-option.wrong{border-color:#ff6b6b;background:#ffe3e3;color:#e03131}.quiz-option:disabled{cursor:default}.answer-feedback{text-align:center;padding:15px;border-radius:12px;font-size:16px;font-weight:600;animation:fadeIn .3s ease-out}.answer-feedback.correct{background:#d3f9d8;color:#2f9e44}.answer-feedback.wrong{background:#ffe3e3;color:#e03131}.explanation-text{margin-top:8px;font-size:14px;font-weight:400;color:#666;line-height:1.5}.explanation-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .3s ease-out}.explanation-modal{background:#fff;border-radius:20px;box-shadow:0 10px 40px #0000004d;max-width:500px;width:90%;max-height:80vh;overflow-y:auto;animation:slideUp .3s ease-out}@keyframes slideUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.explanation-modal-header{padding:25px;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:20px 20px 0 0;color:#fff;display:flex;align-items:center;gap:15px}.result-icon{font-size:36px;filter:drop-shadow(0 2px 4px rgba(0,0,0,.2))}.explanation-modal-header h3{margin:0;font-size:22px}.explanation-modal-content{padding:25px}.correct-answer-section{background:#f8f9fa;padding:20px;border-radius:12px;margin-bottom:20px}.correct-label{font-size:14px;color:#666;margin-bottom:10px}.correct-answer{display:flex;align-items:center;gap:15px;background:#fff;padding:15px;border-radius:10px;border:2px solid #51cf66}.answer-en{flex:1;font-size:20px;font-weight:600;color:#2f9e44}.answer-speak-btn{width:40px;height:40px;border-radius:50%;border:none;background:linear-gradient(135deg,#51cf66,#37b24d);color:#fff;cursor:pointer;font-size:18px;transition:all .2s;display:flex;align-items:center;justify-content:center;flex-shrink:0}.answer-speak-btn:hover{transform:scale(1.1);box-shadow:0 4px 12px #51cf6666}.explanation-section{background:#fff9db;padding:20px;border-radius:12px;border-left:4px solid #fab005}.explanation-label{font-size:16px;font-weight:600;color:#e67700;margin-bottom:10px}.explanation-text{font-size:15px;color:#333;line-height:1.6}.confirm-btn{width:100%;padding:16px;background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:12px;color:#fff;font-size:16px;font-weight:600;cursor:pointer;transition:all .2s;margin-top:20px}.confirm-btn:hover{transform:translateY(-2px);box-shadow:0 6px 20px #667eea66}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.quiz-complete{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:30px;text-align:center;gap:20px}.complete-icon{font-size:64px;animation:bounce 1s ease-in-out infinite}.quiz-complete h3{font-size:28px;color:#333;margin:0}.final-score{font-size:24px;font-weight:700;color:#667eea}.rewards{display:flex;flex-wrap:wrap;justify-content:center;gap:15px}.reward-item{background:linear-gradient(135deg,#fff3bf,#ffd43b);padding:10px 20px;border-radius:20px;font-size:15px;font-weight:600;color:#e67700}.complete-actions{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-top:10px}.retry-btn,.back-btn,.exit-btn{padding:12px 24px;border:none;border-radius:12px;font-size:15px;font-weight:600;cursor:pointer;transition:all .2s}.retry-btn{background:linear-gradient(135deg,#51cf66,#37b24d);color:#fff}.back-btn{background:#e9ecef;color:#495057}.exit-btn{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.retry-btn:hover,.back-btn:hover,.exit-btn:hover{transform:translateY(-2px);box-shadow:0 4px 12px #00000026}.vocab-error{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px;color:#666}.vocab-error button{padding:12px 30px;background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:12px;color:#fff;font-size:15px;cursor:pointer}@media (max-width: 480px){.vocab-practice{height:calc(100vh - 100px)}.word-english{font-size:18px}.word-chinese{font-size:26px}.question-word{font-size:32px}.quiz-option{padding:15px;min-height:50px}.option-en{font-size:16px}.option-speak-btn{width:32px;height:32px;font-size:14px}.explanation-modal{width:95%;max-height:90vh}.explanation-modal-header,.explanation-modal-content{padding:20px}.complete-actions{flex-direction:column;width:100%}.retry-btn,.back-btn,.exit-btn{width:100%}}.player-status{padding:20px;max-width:800px;margin:0 auto;animation:fadeInUp .5s cubic-bezier(.4,0,.2,1)}@keyframes fadeInUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.status-header{display:flex;align-items:center;gap:20px;padding:25px 30px;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:16px;margin-bottom:20px;color:#fff;box-shadow:0 8px 24px #667eea59;position:relative;overflow:hidden}.status-header:before{content:"";position:absolute;top:-50%;left:-50%;width:200%;height:200%;background:radial-gradient(circle,rgba(255,255,255,.15) 0%,transparent 70%);animation:headerFlow 4s ease-in-out infinite}@keyframes headerFlow{0%,to{transform:translate(0) scale(1)}50%{transform:translate(-15px,-15px) scale(1.05)}}.player-avatar-large{font-size:64px;line-height:1;position:relative;z-index:1;filter:drop-shadow(0 4px 12px rgba(0,0,0,.25));animation:avatarFloat 3s ease-in-out infinite}@keyframes avatarFloat{0%,to{transform:translateY(0) rotate(0)}50%{transform:translateY(-8px) rotate(-2deg)}}.player-title{position:relative;z-index:1}.player-title h2{margin:0;font-size:28px;text-shadow:0 2px 10px rgba(0,0,0,.3);font-weight:700}.player-level{font-size:16px;opacity:.95;margin-top:5px;text-shadow:0 1px 3px rgba(0,0,0,.2)}.stats-section{background:linear-gradient(135deg,#fff,#f8f9fa);border-radius:16px;padding:25px 30px;margin-bottom:20px;box-shadow:0 4px 16px #0000001f;border:1px solid rgba(102,126,234,.1);position:relative;overflow:hidden}.stats-section:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,#667eea,#764ba2,#667eea);background-size:200% 100%;animation:sectionGlow 3s ease infinite}@keyframes sectionGlow{0%,to{background-position:0% 50%}50%{background-position:100% 50%}}.stats-section h3{margin:0 0 20px;color:#667eea;font-size:20px;font-weight:700;border-bottom:3px solid transparent;background:linear-gradient(90deg,#667eea,#764ba2) left bottom no-repeat;background-size:80px 3px;padding-bottom:12px}.stats-grid{display:flex;flex-direction:column;gap:12px}.stat-item{display:flex;align-items:center;gap:10px}.stat-label{width:50px;font-weight:700;color:#555}.stat-bar{flex:1;height:28px;background:#00000014;border-radius:14px;position:relative;overflow:hidden;box-shadow:inset 0 2px 6px #0000001a;border:2px solid rgba(255,255,255,.5)}.stat-fill{height:100%;border-radius:12px;transition:width .6s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden}.stat-fill:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.5),transparent);animation:statShine 2.5s ease-in-out infinite}@keyframes statShine{0%{left:-100%}to{left:200%}}.stat-text{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font-size:12px;font-weight:700;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.3)}.combat-stats{display:grid;grid-template-columns:repeat(2,1fr);gap:15px}.combat-stat{display:flex;align-items:center;gap:10px;padding:15px;background:linear-gradient(135deg,#f8f9fa,#fff);border-radius:12px;border:2px solid transparent;transition:all .3s cubic-bezier(.4,0,.2,1);cursor:pointer;position:relative;overflow:hidden}.combat-stat:before{content:"";position:absolute;top:50%;left:50%;width:0;height:0;border-radius:50%;background:#667eea14;transform:translate(-50%,-50%);transition:width .6s,height .6s}.combat-stat:hover:before{width:200%;height:200%}.combat-stat:hover{border-color:#667eea4d;transform:translateY(-3px);box-shadow:0 6px 16px #667eea33}.combat-stat-icon{font-size:24px}.combat-stat-label{flex:1;color:#555;font-size:14px}.combat-stat-value{font-size:20px;font-weight:700;color:#667eea}.skills-grid{display:flex;flex-direction:column;gap:15px}.skill-item{padding:18px;background:linear-gradient(135deg,#f8f9fa,#fff);border-radius:12px;border:2px solid #e9ecef;transition:all .3s cubic-bezier(.4,0,.2,1)}.skill-item:hover{border-color:#667eea4d;transform:translate(5px);box-shadow:0 4px 12px #667eea26}.skill-header{display:flex;align-items:center;gap:10px;margin-bottom:10px}.skill-icon{font-size:24px}.skill-name{font-size:16px;font-weight:500;color:#333}.skill-level{display:flex;align-items:center;gap:10px}.level-badge{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:6px 14px;border-radius:14px;font-size:14px;font-weight:700;min-width:55px;text-align:center;box-shadow:0 2px 8px #667eea4d;position:relative;overflow:hidden}.level-badge:before{content:"";position:absolute;top:-50%;left:-50%;width:200%;height:200%;background:radial-gradient(circle,rgba(255,255,255,.2) 0%,transparent 70%);animation:badgeGlow 3s ease-in-out infinite}@keyframes badgeGlow{0%,to{transform:translate(0)}50%{transform:translate(-20px,-20px)}}.skill-bar{flex:1;height:14px;background:#e9ecef;border-radius:7px;overflow:hidden;box-shadow:inset 0 1px 3px #0000001a;position:relative}.skill-fill{height:100%;background:linear-gradient(90deg,#667eea,#764ba2,#667eea);background-size:200% 100%;border-radius:7px;transition:width .6s cubic-bezier(.4,0,.2,1);animation:skillPulse 3s ease-in-out infinite;position:relative;overflow:hidden}.skill-fill:after{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.4),transparent);animation:skillShine 2s ease-in-out infinite}@keyframes skillPulse{0%,to{background-position:0% 50%}50%{background-position:100% 50%}}@keyframes skillShine{0%{left:-100%}to{left:200%}}.statistics-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:15px}.stat-box{text-align:center;padding:20px;background:linear-gradient(135deg,#fff,#f8f9fa);border-radius:12px;border:2px solid #e9ecef;transition:all .3s cubic-bezier(.4,0,.2,1);cursor:pointer;position:relative;overflow:hidden}.stat-box:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(102,126,234,.1),transparent);transition:left .5s}.stat-box:hover:before{left:100%}.stat-box:hover{border-color:#667eea;transform:translateY(-5px) scale(1.02);box-shadow:0 8px 20px #667eea40}.stat-box-value{font-size:36px;font-weight:800;color:#667eea;margin-bottom:8px;text-shadow:0 2px 4px rgba(102,126,234,.2);animation:valueGlow 2s ease-in-out infinite}@keyframes valueGlow{0%,to{text-shadow:0 2px 4px rgba(102,126,234,.2)}50%{text-shadow:0 2px 8px rgba(102,126,234,.4)}}.stat-box-label{font-size:14px;color:#666}.equipment-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.equipment-slot{text-align:center;padding:18px;background:linear-gradient(135deg,#f8f9fa,#fff);border-radius:12px;border:2px dashed #dee2e6;transition:all .3s cubic-bezier(.4,0,.2,1);cursor:pointer;position:relative;overflow:hidden}.equipment-slot:before{content:"";position:absolute;top:50%;left:50%;width:0;height:0;border-radius:50%;background:#667eea1a;transform:translate(-50%,-50%);transition:width .6s,height .6s}.equipment-slot:hover:before{width:200%;height:200%}.equipment-slot:hover{border-color:#667eea;border-style:solid;transform:translateY(-4px);box-shadow:0 6px 16px #667eea33}.slot-label{font-size:14px;color:#666;margin-bottom:10px;display:block}.slot-icon{font-size:32px;margin:10px 0;display:block}.slot-name{font-size:12px;color:#555}@media (max-width: 768px){.combat-stats,.statistics-grid,.equipment-grid{grid-template-columns:1fr}}.quest-log{padding:20px;max-width:900px;margin:0 auto;animation:slideInUp .5s cubic-bezier(.4,0,.2,1)}@keyframes slideInUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.quest-section{margin-bottom:30px}.section-title{display:flex;align-items:center;gap:12px;font-size:24px;color:#667eea;margin-bottom:20px;padding-bottom:12px;border-bottom:3px solid transparent;background:linear-gradient(90deg,#667eea,#764ba2) left bottom no-repeat;background-size:100px 3px;font-weight:700;position:relative}.section-title:after{content:"";position:absolute;bottom:-3px;left:0;width:100px;height:3px;background:linear-gradient(90deg,#667eea,#764ba2);animation:titleGlow 2s ease-in-out infinite}@keyframes titleGlow{0%,to{box-shadow:0 0 8px #667eea4d}50%{box-shadow:0 0 16px #667eea99}}.section-icon{font-size:28px}.quest-list{display:flex;flex-direction:column;gap:15px}.quest-card{background:linear-gradient(135deg,#fff,#f8f9fa);border-radius:16px;padding:25px;box-shadow:0 4px 16px #0000001f;transition:all .3s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden;border:1px solid rgba(102,126,234,.1)}.quest-card:before{content:"";position:absolute;top:-50%;right:-50%;width:200%;height:200%;background:radial-gradient(circle,rgba(102,126,234,.05) 0%,transparent 70%);animation:cardShimmer 4s ease-in-out infinite}@keyframes cardShimmer{0%,to{transform:translate(0)}50%{transform:translate(-20px,-20px)}}.quest-card:hover{transform:translateY(-5px) scale(1.01);box-shadow:0 8px 24px #667eea40;border-color:#667eea4d}.daily-quest{border-left:5px solid #ffd43b;box-shadow:0 4px 16px #ffd43b33}.active-quest{border-left:5px solid #667eea;box-shadow:0 4px 16px #667eea33}.completed-quest{border-left:5px solid #51cf66;opacity:.85;box-shadow:0 4px 16px #51cf6633}.quest-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:12px}.quest-title{font-size:18px;font-weight:700;color:#333;flex:1}.quest-type-badge{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:6px 14px;border-radius:14px;font-size:12px;font-weight:700;box-shadow:0 2px 8px #667eea4d;position:relative;overflow:hidden}.quest-type-badge:before{content:"";position:absolute;top:-50%;left:-50%;width:200%;height:200%;background:radial-gradient(circle,rgba(255,255,255,.2) 0%,transparent 70%);animation:badgePulse 3s ease-in-out infinite}@keyframes badgePulse{0%,to{opacity:.5}50%{opacity:1}}.daily-quest .quest-type-badge{background:linear-gradient(135deg,#ffd43b,#ffa94d);color:#333;box-shadow:0 2px 8px #ffd43b66}.completed-badge{background:linear-gradient(135deg,#51cf66,#37b24d);color:#fff;padding:6px 14px;border-radius:14px;font-size:12px;font-weight:700;box-shadow:0 2px 8px #51cf664d}.quest-description{color:#666;margin-bottom:15px;line-height:1.6}.quest-objectives{background:linear-gradient(135deg,#f8f9fa,#e9ecef);padding:18px;border-radius:12px;margin-bottom:15px;border:2px solid rgba(102,126,234,.1);box-shadow:inset 0 2px 8px #0000000d}.objectives-title{font-weight:700;color:#555;margin-bottom:10px}.objective-item{display:flex;align-items:center;gap:10px;margin:8px 0;padding:10px 12px;background:#fff;border-radius:10px;transition:all .3s cubic-bezier(.4,0,.2,1);border:2px solid transparent}.objective-item:hover{border-color:#667eea33;transform:translate(5px);box-shadow:0 2px 8px #667eea1a}.objective-item input[type=checkbox]{width:18px;height:18px;cursor:default}.objective-item span{color:#555}.objective-item span.completed{color:#51cf66;text-decoration:line-through}.quest-rewards{display:flex;flex-wrap:wrap;gap:10px;align-items:center;padding:15px;background:linear-gradient(135deg,#fff3cd,#ffe69c);border-radius:12px;margin-bottom:10px;border:2px solid #ffd43b;box-shadow:0 2px 8px #ffd43b4d;position:relative;overflow:hidden}.quest-rewards:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.3),transparent);animation:rewardShine 3s ease-in-out infinite}@keyframes rewardShine{0%{left:-100%}to{left:200%}}.reward-label{font-weight:700;color:#856404}.reward-item{background:#fff;padding:8px 14px;border-radius:18px;font-size:14px;font-weight:600;color:#333;box-shadow:0 2px 6px #00000026;border:2px solid rgba(255,212,59,.3);transition:all .3s cubic-bezier(.4,0,.2,1);position:relative;z-index:1}.reward-item:hover{transform:translateY(-2px) scale(1.05);box-shadow:0 4px 12px #ffd43b66;border-color:#ffd43b}.quest-timer{color:#ff6b6b;font-size:14px;font-weight:700;margin-top:10px;padding:8px;background:#fff5f5;border-radius:6px;text-align:center}.quest-giver{color:#666;font-size:14px;margin-top:10px;padding-top:10px;border-top:1px solid #e9ecef}.completion-time{color:#999;font-size:12px;margin-top:10px}.completed-list .quest-card{background:#f8f9fa}.no-quests{text-align:center;padding:80px 20px;background:linear-gradient(135deg,#fff,#f8f9fa);border-radius:20px;box-shadow:0 4px 16px #0000001f;border:2px dashed #dee2e6}.no-quests-icon{font-size:80px;margin-bottom:25px;opacity:.4;filter:grayscale(.5);animation:floatIcon 3s ease-in-out infinite}@keyframes floatIcon{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.no-quests-text{font-size:18px;color:#666;margin-bottom:15px}.no-quests-hint{color:#999;font-size:14px;padding:12px;background:#f8f9fa;border-radius:8px;display:inline-block}@media (max-width: 768px){.quest-log{padding:10px}.quest-card{padding:15px}.quest-title{font-size:16px}.quest-rewards{flex-direction:column;align-items:flex-start}}.inventory{padding:20px;max-width:900px;margin:0 auto;animation:fadeInScale .5s cubic-bezier(.4,0,.2,1)}@keyframes fadeInScale{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.inventory-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;padding:20px 25px;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:16px;color:#fff;box-shadow:0 8px 24px #667eea59;position:relative;overflow:hidden}.inventory-header:before{content:"";position:absolute;top:-50%;right:-50%;width:200%;height:200%;background:radial-gradient(circle,rgba(255,255,255,.15) 0%,transparent 70%);animation:headerGlow 4s ease-in-out infinite}@keyframes headerGlow{0%,to{transform:translate(0) rotate(0)}50%{transform:translate(-15px,-15px) rotate(180deg)}}.inventory-header h3{margin:0;font-size:26px;position:relative;z-index:1;text-shadow:0 2px 8px rgba(0,0,0,.3);font-weight:700}.capacity-info{display:flex;align-items:center;gap:10px;font-size:20px;font-weight:700;position:relative;z-index:1;text-shadow:0 2px 6px rgba(0,0,0,.2)}.capacity-icon{font-size:28px;animation:bagBounce 2s ease-in-out infinite}@keyframes bagBounce{0%,to{transform:translateY(0) rotate(0)}50%{transform:translateY(-5px) rotate(-5deg)}}.item-filters{display:flex;gap:12px;margin-bottom:20px;flex-wrap:wrap}.filter-btn{padding:12px 22px;background:linear-gradient(135deg,#fff,#f8f9fa);border:2px solid #dee2e6;border-radius:24px;cursor:pointer;font-size:14px;font-weight:600;color:#666;transition:all .3s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden}.filter-btn:before{content:"";position:absolute;top:50%;left:50%;width:0;height:0;border-radius:50%;background:#667eea1a;transform:translate(-50%,-50%);transition:width .6s,height .6s}.filter-btn:hover:before{width:200%;height:200%}.filter-btn:hover{border-color:#667eea;color:#667eea;transform:translateY(-2px);box-shadow:0 4px 12px #667eea33}.filter-btn.active{background:linear-gradient(135deg,#667eea,#764ba2);border-color:transparent;color:#fff;box-shadow:0 4px 16px #667eea66}.equipment-section{background:linear-gradient(135deg,#fff,#f8f9fa);border-radius:16px;padding:25px;margin-bottom:20px;box-shadow:0 4px 16px #0000001f;border:1px solid rgba(102,126,234,.1);position:relative;overflow:hidden}.equipment-section:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,#667eea,#764ba2,#667eea);background-size:200% 100%;animation:equipmentGlow 3s ease infinite}@keyframes equipmentGlow{0%,to{background-position:0% 50%}50%{background-position:100% 50%}}.equipment-section h4{margin:0 0 20px;color:#667eea;font-size:20px;font-weight:700;border-bottom:3px solid transparent;background:linear-gradient(90deg,#667eea,#764ba2) left bottom no-repeat;background-size:80px 3px;padding-bottom:12px}.equipment-slots{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.equipment-slot-item{background:linear-gradient(135deg,#f8f9fa,#fff);border-radius:12px;padding:18px;border:2px solid #e9ecef;transition:all .3s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden}.equipment-slot-item:before{content:"";position:absolute;top:50%;left:50%;width:0;height:0;border-radius:50%;background:#667eea14;transform:translate(-50%,-50%);transition:width .6s,height .6s}.equipment-slot-item:hover:before{width:200%;height:200%}.equipment-slot-item:hover{border-color:#667eea4d;transform:translateY(-3px);box-shadow:0 6px 16px #667eea33}.slot-header{display:flex;align-items:center;gap:8px;margin-bottom:12px;color:#555;font-weight:700}.slot-icon{font-size:20px}.slot-name{font-size:14px}.equipped-item{text-align:center}.item-icon{font-size:36px;margin:12px 0;filter:drop-shadow(0 2px 6px rgba(0,0,0,.15));transition:transform .3s ease}.equipped-item:hover .item-icon{transform:scale(1.15) rotate(5deg)}.item-name{font-size:14px;color:#333;margin-bottom:10px}.unequip-btn{padding:8px 18px;background:linear-gradient(135deg,#ff6b6b,#ee5a6f);color:#fff;border:none;border-radius:8px;cursor:pointer;font-size:12px;font-weight:600;transition:all .3s cubic-bezier(.4,0,.2,1);box-shadow:0 2px 8px #ff6b6b4d}.unequip-btn:hover{background:linear-gradient(135deg,#ee5a6f,#fa5252);transform:translateY(-2px);box-shadow:0 4px 12px #ff6b6b66}.empty-slot{text-align:center;color:#999;font-size:14px;padding:20px 0}.items-section{background:linear-gradient(135deg,#fff,#f8f9fa);border-radius:16px;padding:25px;box-shadow:0 4px 16px #0000001f;border:1px solid rgba(102,126,234,.1);position:relative;overflow:hidden}.items-section:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,#667eea,#764ba2,#667eea);background-size:200% 100%;animation:itemsGlow 3s ease infinite}@keyframes itemsGlow{0%,to{background-position:0% 50%}50%{background-position:100% 50%}}.items-section h4{margin:0 0 20px;color:#667eea;font-size:20px;font-weight:700;border-bottom:3px solid transparent;background:linear-gradient(90deg,#667eea,#764ba2) left bottom no-repeat;background-size:80px 3px;padding-bottom:12px}.items-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:15px}.item-card{background:linear-gradient(135deg,#f8f9fa,#fff);border:2px solid #dee2e6;border-radius:12px;padding:18px;text-align:center;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden}.item-card:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(102,126,234,.1),transparent);transition:left .5s}.item-card:hover:before{left:100%}.item-card:hover{transform:translateY(-5px) scale(1.05);border-color:#667eea;box-shadow:0 6px 20px #667eea4d}.item-card.selected{border-color:#667eea;background:linear-gradient(135deg,#e8eaf6,#f3e5f5);box-shadow:0 4px 16px #667eea4d}.item-icon-large{font-size:48px;margin-bottom:10px;filter:drop-shadow(0 3px 8px rgba(0,0,0,.2));transition:all .3s ease}.item-card:hover .item-icon-large{transform:scale(1.2) rotate(10deg)}.item-name{font-size:13px;color:#333;margin-bottom:8px;word-wrap:break-word}.item-quantity{position:absolute;top:10px;right:10px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:4px 10px;border-radius:12px;font-size:12px;font-weight:700;box-shadow:0 2px 6px #667eea66;animation:quantityPulse 2s ease-in-out infinite}@keyframes quantityPulse{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}.item-type-badge{background:#e9ecef;color:#666;padding:3px 8px;border-radius:8px;font-size:11px}.empty-inventory{text-align:center;padding:80px 20px;grid-column:1 / -1}.empty-icon{font-size:80px;opacity:.25;margin-bottom:20px;filter:grayscale(.8);animation:emptyFloat 3s ease-in-out infinite}@keyframes emptyFloat{0%,to{transform:translateY(0) rotate(0)}50%{transform:translateY(-10px) rotate(-5deg)}}.empty-text{color:#999;font-size:16px}.item-detail-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px;animation:overlayFadeIn .3s ease-out}.item-detail-panel{background:linear-gradient(135deg,#fff,#f8f9fa);border-radius:20px;padding:35px;max-width:550px;width:100%;box-shadow:0 20px 60px #0006;position:relative;max-height:80vh;overflow-y:auto;animation:panelSlideIn .3s cubic-bezier(.4,0,.2,1);border:2px solid rgba(102,126,234,.2)}@keyframes panelSlideIn{0%{opacity:0;transform:scale(.9) translateY(20px)}to{opacity:1;transform:scale(1) translateY(0)}}.close-detail-btn{position:absolute;top:18px;right:18px;background:linear-gradient(135deg,#f8f9fa,#e9ecef);border:2px solid #dee2e6;width:36px;height:36px;border-radius:50%;font-size:24px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .3s cubic-bezier(.4,0,.2,1);box-shadow:0 2px 8px #0000001a}.close-detail-btn:hover{background:linear-gradient(135deg,#ff6b6b,#ee5a6f);border-color:transparent;color:#fff;transform:rotate(90deg) scale(1.1);box-shadow:0 4px 12px #ff6b6b66}.detail-header{display:flex;gap:20px;margin-bottom:20px;padding-bottom:20px;border-bottom:2px solid #e9ecef}.detail-icon{font-size:80px;filter:drop-shadow(0 4px 16px rgba(0,0,0,.2));animation:detailIconSpin 3s ease-in-out infinite}@keyframes detailIconSpin{0%,to{transform:rotate(0) scale(1)}50%{transform:rotate(-10deg) scale(1.1)}}.detail-title h3{margin:0 0 5px;color:#333;font-size:24px}.detail-name-en{color:#666;margin:0;font-size:14px}.detail-description{color:#555;line-height:1.6;margin-bottom:20px}.detail-stats,.detail-effect{background:#f8f9fa;padding:15px;border-radius:8px;margin-bottom:15px}.detail-stats h4,.detail-effect h4{margin:0 0 10px;color:#333;font-size:16px}.detail-stats ul{margin:0;padding-left:20px}.detail-stats li{color:#555;margin:5px 0}.detail-effect p{margin:0;color:#555}.detail-price{display:flex;justify-content:space-between;align-items:center;padding:12px;background:#fff3cd;border-radius:8px;margin-bottom:20px}.price-label{font-weight:700;color:#856404}.price-value{font-size:18px;font-weight:700;color:#856404}.detail-actions{display:flex;gap:10px}.use-item-btn,.equip-item-btn{flex:1;padding:14px;border:none;border-radius:12px;font-size:16px;font-weight:700;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden}.use-item-btn:before,.equip-item-btn:before{content:"";position:absolute;top:50%;left:50%;width:0;height:0;border-radius:50%;background:#ffffff4d;transform:translate(-50%,-50%);transition:width .6s,height .6s}.use-item-btn:hover:before,.equip-item-btn:hover:before{width:200%;height:200%}.use-item-btn{background:linear-gradient(135deg,#51cf66,#37b24d);color:#fff;box-shadow:0 4px 12px #51cf664d}.use-item-btn:hover{background:linear-gradient(135deg,#37b24d,#2b8a3e);transform:translateY(-2px);box-shadow:0 6px 20px #51cf6666}.equip-item-btn{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;box-shadow:0 4px 12px #667eea4d}.equip-item-btn:hover{background:linear-gradient(135deg,#5a67d8,#6a4ba2);transform:translateY(-2px);box-shadow:0 6px 20px #667eea66}@media (max-width: 768px){.equipment-slots{grid-template-columns:1fr}.items-grid{grid-template-columns:repeat(auto-fill,minmax(100px,1fr))}.item-detail-panel{padding:20px}.detail-header{flex-direction:column;align-items:center;text-align:center}}.rpg-game{width:100%;min-height:100vh;background:linear-gradient(135deg,#e0e7ff,#f0f4f8);display:flex;flex-direction:column;position:relative;overflow:hidden}.rpg-game:before{content:"";position:fixed;top:0;left:0;right:0;bottom:0;background-image:radial-gradient(circle at 20% 50%,rgba(102,126,234,.05) 0%,transparent 50%),radial-gradient(circle at 80% 80%,rgba(118,75,162,.05) 0%,transparent 50%);pointer-events:none;z-index:0}.rpg-header{background:linear-gradient(135deg,#fff,#f8f9fa);box-shadow:0 2px 12px #0000001a;padding:12px 20px;display:flex;justify-content:space-between;align-items:center;gap:15px;position:sticky;top:0;z-index:100;border-bottom:2px solid transparent;background-clip:padding-box;position:relative;overflow:hidden}.rpg-header:before{content:"";position:absolute;bottom:-2px;left:0;right:0;height:2px;background:linear-gradient(90deg,#667eea,#764ba2,#667eea);background-size:200% 100%;animation:headerBorderFlow 3s ease infinite}@keyframes headerBorderFlow{0%,to{background-position:0% 50%}50%{background-position:100% 50%}}.player-info-bar{display:flex;align-items:center;gap:12px;flex:1}.player-avatar{font-size:42px;line-height:1;filter:drop-shadow(0 2px 8px rgba(0,0,0,.15));animation:playerAvatarBounce 3s ease-in-out infinite;position:relative;z-index:1}@keyframes playerAvatarBounce{0%,to{transform:translateY(0) scale(1)}50%{transform:translateY(-4px) scale(1.05)}}.player-stats-bar{flex:1;min-width:250px;width:100%}.player-name{font-size:16px;font-weight:800;color:#667eea;margin-bottom:6px;text-shadow:0 1px 3px rgba(102,126,234,.2);letter-spacing:.3px}.bars{display:flex;flex-direction:column;gap:4px}.bar-container{display:flex;align-items:center;gap:6px}.bar-label{font-size:11px;font-weight:700;color:#666;min-width:30px}.bar{flex:1;height:16px;background:#00000014;border-radius:8px;position:relative;overflow:hidden;min-width:120px;box-shadow:inset 0 1px 4px #0000001a;border:1px solid rgba(255,255,255,.5)}.bar-fill{height:100%;border-radius:9px;transition:width .6s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden}.bar-fill:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.5),transparent);animation:barShine 2s ease-in-out infinite}@keyframes barShine{0%{left:-100%}to{left:200%}}.hp-fill{background:linear-gradient(90deg,#ff6b6b,#ee5a6f,#fa5252);box-shadow:inset 0 -2px 4px #00000026}.mp-fill{background:linear-gradient(90deg,#4dabf7,#339af0,#228be6);box-shadow:inset 0 -2px 4px #00000026}.exp-fill{background:linear-gradient(90deg,#51cf66,#37b24d,#2b8a3e);box-shadow:inset 0 -2px 4px #00000026}.bar-text{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font-size:10px;font-weight:700;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.5)}.player-currency{display:flex;align-items:center;gap:6px;background:linear-gradient(135deg,#fff3cd,#ffe69c);padding:6px 12px;border-radius:16px;border:2px solid #ffd43b;box-shadow:0 2px 8px #ffd43b4d;position:relative;overflow:hidden}.player-currency:before{content:"";position:absolute;top:-50%;left:-50%;width:200%;height:200%;background:radial-gradient(circle,rgba(255,255,255,.3) 0%,transparent 70%);animation:coinGlow 3s ease-in-out infinite}@keyframes coinGlow{0%,to{transform:translate(0)}50%{transform:translate(-20px,-20px)}}.coins{font-size:15px;font-weight:800;color:#f59f00;text-shadow:0 1px 3px rgba(245,159,0,.3);position:relative;z-index:1;animation:coinBounce 2s ease-in-out infinite}@keyframes coinBounce{0%,to{transform:translateY(0)}50%{transform:translateY(-2px)}}.header-buttons{display:flex;gap:8px}.header-btn{padding:8px 16px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:12px;cursor:pointer;font-size:13px;font-weight:700;transition:all .3s cubic-bezier(.4,0,.2,1);box-shadow:0 2px 8px #667eea40;position:relative;overflow:hidden}.header-btn:before{content:"";position:absolute;top:50%;left:50%;width:0;height:0;border-radius:50%;background:#ffffff4d;transform:translate(-50%,-50%);transition:width .6s,height .6s}.header-btn:hover:before{width:200%;height:200%}.header-btn:hover{background:linear-gradient(135deg,#5a67d8,#6a4ba2);transform:translateY(-3px);box-shadow:0 6px 20px #667eea66}.header-btn:active{transform:translateY(-1px);box-shadow:0 3px 10px #667eea4d}.rpg-main{flex:1;padding:12px 8px;overflow-y:auto;position:relative;z-index:1;animation:mainFadeIn .5s ease-out}@keyframes mainFadeIn{0%{opacity:0}to{opacity:1}}.rpg-menu-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000a6;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px;animation:overlayFadeIn .3s ease-out}@keyframes overlayFadeIn{0%{opacity:0}to{opacity:1}}.rpg-menu{background:linear-gradient(135deg,#fff,#f8f9fa);border-radius:20px;width:100%;max-width:950px;max-height:85vh;display:flex;flex-direction:column;box-shadow:0 20px 60px #0006;animation:menuSlideIn .3s cubic-bezier(.4,0,.2,1);border:2px solid rgba(102,126,234,.2);overflow:hidden}@keyframes menuSlideIn{0%{opacity:0;transform:scale(.9) translateY(30px)}to{opacity:1;transform:scale(1) translateY(0)}}.menu-header{display:flex;justify-content:space-between;align-items:center;padding:25px 30px;border-bottom:3px solid transparent;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;position:relative;overflow:hidden}.menu-header:before{content:"";position:absolute;top:-50%;left:-50%;width:200%;height:200%;background:radial-gradient(circle,rgba(255,255,255,.15) 0%,transparent 70%);animation:menuHeaderGlow 4s ease-in-out infinite}@keyframes menuHeaderGlow{0%,to{transform:translate(0)}50%{transform:translate(-15px,-15px)}}.menu-header h2{margin:0;color:#fff;font-size:28px;font-weight:800;text-shadow:0 2px 8px rgba(0,0,0,.3);position:relative;z-index:1}.close-btn{background:#ffffff40;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:2px solid rgba(255,255,255,.3);width:40px;height:40px;border-radius:50%;font-size:28px;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .3s cubic-bezier(.4,0,.2,1);position:relative;z-index:1}.close-btn:hover{background:#ffffff59;transform:rotate(90deg) scale(1.1);box-shadow:0 4px 12px #0000004d}.menu-tabs{display:flex;gap:8px;padding:20px 20px 0;background:linear-gradient(135deg,#f8f9fa,#e9ecef);border-bottom:3px solid #e0e0e0}.menu-tab{padding:14px 28px;background:transparent;border:none;border-radius:12px 12px 0 0;cursor:pointer;font-size:16px;font-weight:600;color:#666;transition:all .3s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden}.menu-tab:before{content:"";position:absolute;bottom:0;left:50%;width:0;height:3px;background:linear-gradient(90deg,#667eea,#764ba2);transform:translate(-50%);transition:width .3s ease}.menu-tab:hover{background:linear-gradient(135deg,#fff,#f8f9fa);color:#667eea;transform:translateY(-2px)}.menu-tab:hover:before{width:60%}.menu-tab.active{background:#fff;color:#667eea;font-weight:800;box-shadow:0 -4px 12px #00000014;transform:translateY(-2px)}.menu-tab.active:before{width:100%}.menu-content{flex:1;overflow-y:auto;padding:0;background:linear-gradient(135deg,#f8f9fa,#e9ecef);animation:contentFadeIn .3s ease-out}@keyframes contentFadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media (max-width: 768px){.rpg-header{flex-direction:column;align-items:stretch}.player-info-bar{flex-direction:column}.player-stats-bar,.bar{min-width:auto}.header-buttons{justify-content:stretch}.header-btn{flex:1}.menu-tabs{flex-wrap:wrap}.menu-tab{flex:1;min-width:100px}}@media (max-width: 480px){.rpg-main{padding:10px}.player-avatar{font-size:36px}.player-name{font-size:16px}}.error-boundary{position:fixed;top:0;left:0;right:0;bottom:0;background:linear-gradient(135deg,#667eea,#764ba2);display:flex;align-items:center;justify-content:center;z-index:9999;padding:20px}.error-container{background:#fff;border-radius:20px;padding:40px;max-width:600px;width:100%;box-shadow:0 20px 60px #0000004d;text-align:center;animation:slideIn .5s ease-out}@keyframes slideIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.error-icon{font-size:80px;margin-bottom:20px;animation:bounce 1s ease-in-out infinite}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.error-title{font-size:32px;color:#333;margin-bottom:16px;font-weight:700}.error-message{font-size:18px;color:#666;margin-bottom:30px;line-height:1.6}.error-details{background:#f5f5f5;border-radius:10px;padding:15px;margin:20px 0;text-align:left;max-height:200px;overflow-y:auto}.error-details summary{cursor:pointer;font-weight:700;color:#667eea;margin-bottom:10px;-webkit-user-select:none;user-select:none}.error-details summary:hover{text-decoration:underline}.error-stack{font-family:Courier New,monospace;font-size:12px;color:#d32f2f;white-space:pre-wrap;word-wrap:break-word;margin:0;padding:10px;background:#fff;border-radius:5px}.error-actions{display:flex;gap:15px;justify-content:center;margin-bottom:20px;flex-wrap:wrap}.error-btn{padding:15px 30px;font-size:16px;border:none;border-radius:10px;cursor:pointer;font-weight:700;transition:all .3s ease;box-shadow:0 4px 15px #0000001a}.error-btn:hover{transform:translateY(-2px);box-shadow:0 6px 20px #00000026}.error-btn:active{transform:translateY(0)}.error-btn.primary{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.error-btn.secondary{background:#f5f5f5;color:#333}.error-btn.secondary:hover{background:#e0e0e0}.error-hint{font-size:14px;color:#999;margin-top:20px;line-height:1.5}@media (max-width: 600px){.error-container{padding:30px 20px}.error-icon{font-size:60px}.error-title{font-size:24px}.error-message{font-size:16px}.error-actions{flex-direction:column;width:100%}.error-btn{width:100%}}*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}:root{--primary-color: #FF6B6B;--secondary-color: #4ECDC4;--accent-color: #FFE66D;--bg-gradient: linear-gradient(135deg, #667eea 0%, #764ba2 100%);--card-shadow: 0 10px 30px rgba(0,0,0,.2)}body{font-family:PingFang SC,Microsoft YaHei,sans-serif;background:var(--bg-gradient);min-height:100vh;overflow-x:hidden}#root,.app{min-height:100vh}button{cursor:pointer;border:none;outline:none;font-family:inherit}button:active{transform:scale(.95)}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes bounce{0%,to{transform:translateY(0) rotate(-5deg)}50%{transform:translateY(-20px) rotate(5deg)}}@keyframes pulse{0%,to{box-shadow:0 10px 30px #ff6b6b66}50%{box-shadow:0 10px 50px #ff6b6bcc}}@keyframes twinkle{0%,to{opacity:.3;transform:scale(1)}50%{opacity:1;transform:scale(1.2)}}@keyframes wiggle{0%,to{transform:rotate(-3deg)}50%{transform:rotate(3deg)}}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-10px)}75%{transform:translate(10px)}}@keyframes correctPop{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}@keyframes popIn{0%{transform:scale(0);opacity:0}to{transform:scale(1);opacity:1}}@keyframes slideUp{0%{transform:translate(-50%) translateY(20px);opacity:0}to{transform:translate(-50%) translateY(0);opacity:1}}
