:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;display:flex;place-items:center;min-width:320px;min-height:100vh}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media(prefers-color-scheme:light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}.login-container{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:1rem}.login-card{width:100%;max-width:400px;background:var(--bg-secondary);border:1px solid var(--border);border-radius:16px;padding:2rem;text-align:center}.login-card h1{font-size:2rem;margin-bottom:.5rem;color:var(--accent)}.login-card .tagline{color:var(--text-secondary);margin-bottom:2rem}.form-group{margin-bottom:1rem;text-align:left}.form-group label{display:block;margin-bottom:.5rem;color:var(--text-secondary);font-size:.9rem}.error-message{background:#ef44441a;border:1px solid var(--danger);color:var(--danger);padding:.75rem;border-radius:8px;margin-bottom:1rem;font-size:.9rem}.toggle-mode{margin-top:1.5rem;color:var(--text-secondary)}.toggle-mode button{background:none;border:none;color:var(--accent);cursor:pointer;font-size:1rem}.toggle-mode button:hover{text-decoration:underline}.character-create{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:1rem}.create-card{width:100%;max-width:500px;background:var(--bg-secondary);border:1px solid var(--border);border-radius:16px;padding:2rem}.create-card h1{text-align:center;margin-bottom:1.5rem;color:var(--accent)}.steps{display:flex;justify-content:center;gap:2rem;margin-bottom:2rem}.step{font-size:.85rem;color:var(--text-muted);position:relative}.step.active{color:var(--accent);font-weight:500}.step.active:after{content:"";position:absolute;bottom:-8px;left:0;right:0;height:2px;background:var(--accent)}.step-content{display:flex;flex-direction:column;gap:1rem}.step-desc{text-align:center;color:var(--text-secondary);margin-bottom:1rem}.form-group{position:relative}.char-count{position:absolute;right:12px;top:50%;transform:translateY(-50%);font-size:.75rem;color:var(--text-muted)}.error-message{background:#ef44441a;border:1px solid var(--danger);color:var(--danger);padding:.75rem;border-radius:8px;font-size:.9rem;text-align:center}.class-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.75rem;margin-bottom:1rem}.class-card{display:flex;flex-direction:column;align-items:center;gap:.5rem;padding:1.5rem 1rem;background:var(--bg-tertiary);border:2px solid var(--border);border-radius:12px;cursor:pointer;transition:all .2s}.class-card:hover{border-color:var(--class-color);transform:translateY(-2px)}.class-card.selected{border-color:var(--class-color);background:color-mix(in srgb,var(--class-color) 10%,var(--bg-tertiary));box-shadow:0 0 20px color-mix(in srgb,var(--class-color) 30%,transparent)}.class-emoji{font-size:2rem}.class-name{font-weight:500;color:var(--text-primary)}.class-info{background:var(--bg-tertiary);border:1px solid;border-radius:12px;padding:1rem;margin-bottom:1rem;animation:fadeIn .3s}@keyframes fadeIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.class-info h3{margin-bottom:.5rem}.class-info p{color:var(--text-secondary);font-size:.9rem;margin-bottom:1rem}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:.5rem}.stat{text-align:center}.stat-label{display:block;font-size:.75rem;color:var(--text-muted);margin-bottom:.25rem}.stat-value{font-size:1.25rem;font-weight:600}.button-group{display:flex;gap:.75rem}.button-group .btn{flex:1}.chat-panel{display:flex;flex-direction:column;height:100%;background:var(--bg-tertiary);border:1px solid var(--border);border-radius:12px;overflow:hidden}.chat-tabs{display:flex;border-bottom:1px solid var(--border)}.chat-tab{flex:1;display:flex;align-items:center;justify-content:center;gap:.375rem;padding:.75rem .5rem;background:var(--bg-secondary);border:none;border-bottom:2px solid transparent;cursor:pointer;font-size:.85rem;color:var(--text-secondary);transition:all .2s}.chat-tab:hover:not(.disabled){background:var(--bg-tertiary);color:var(--text-primary)}.chat-tab.active{border-bottom-color:var(--accent);color:var(--accent)}.chat-tab.disabled{opacity:.4;cursor:not-allowed}.unread-badge{padding:.125rem .375rem;background:var(--accent);color:#fff;font-size:.65rem;font-weight:600;border-radius:10px;min-width:16px;text-align:center}.chat-messages{flex:1;overflow-y:auto;padding:.75rem;display:flex;flex-direction:column;gap:.5rem;max-height:250px}.empty-chat{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;color:var(--text-muted)}.empty-chat span{font-size:2rem;margin-bottom:.5rem}.chat-message{max-width:80%;padding:.5rem .75rem;background:var(--bg-secondary);border-radius:4px 12px 12px;animation:messageSlide .2s ease-out}.sender-name{display:block;font-size:.7rem;font-weight:600;color:var(--accent);margin-bottom:.125rem}.skill-bar{display:flex;gap:.5rem;flex-wrap:wrap;position:relative}.skill-btn{display:flex;flex-direction:column;align-items:center;gap:.25rem;padding:.5rem;min-width:70px;background:var(--bg-tertiary);border:2px solid var(--border);border-radius:10px;cursor:pointer;transition:all .2s;position:relative;overflow:hidden}.skill-btn:not(.disabled):hover{border-color:var(--accent);transform:translateY(-2px);box-shadow:0 4px 12px #8b5cf633}.skill-btn:not(.disabled):active{transform:translateY(0)}.skill-btn.disabled{opacity:.5;cursor:not-allowed}.skill-btn.on-cooldown{background:var(--bg-secondary)}.skill-emoji{font-size:1.5rem}.skill-name{font-size:.7rem;font-weight:500;color:var(--text-secondary);white-space:nowrap}.skill-cost{font-size:.6rem;color:var(--mp);padding:.125rem .375rem;background:#3b82f61a;border-radius:4px}.skill-cost.insufficient{color:#ef4444;background:#ef44441a}.cooldown-overlay{position:absolute;inset:0;background:#000000b3;display:flex;align-items:center;justify-content:center;border-radius:8px}.cooldown-overlay span{font-size:1.5rem;font-weight:700;color:#fff}.skill-tooltip{position:absolute;bottom:100%;left:50%;transform:translate(-50%);margin-bottom:.5rem;padding:1rem;background:var(--bg-secondary);border:1px solid var(--border);border-radius:12px;min-width:220px;max-width:280px;box-shadow:0 4px 20px #0000004d;z-index:100;animation:tooltipAppear .15s ease-out}@keyframes tooltipAppear{0%{opacity:0;transform:translate(-50%) translateY(5px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.tooltip-header{display:flex;align-items:center;gap:.5rem;margin-bottom:.5rem}.tooltip-emoji{font-size:1.5rem}.tooltip-name{font-weight:600;font-size:1rem;flex:1}.tooltip-type{font-size:.7rem;padding:.25rem .5rem;border-radius:4px;background:var(--bg-tertiary)}.tooltip-type.physical{color:#ef4444}.tooltip-type.magic{color:#8b5cf6}.tooltip-type.buff{color:#22c55e}.tooltip-type.debuff{color:#f97316}.tooltip-desc{font-size:.85rem;color:var(--text-secondary);margin-bottom:.75rem;line-height:1.4}.tooltip-stats{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:.5rem}.tooltip-stats .stat-item{font-size:.75rem;padding:.25rem .5rem;background:var(--bg-tertiary);border-radius:4px}.tooltip-effects{display:flex;flex-wrap:wrap;gap:.375rem;padding-top:.5rem;border-top:1px solid var(--border)}.tooltip-effects span{font-size:.7rem;padding:.25rem .5rem;background:#8b5cf61a;border:1px solid rgba(139,92,246,.3);border-radius:4px;color:var(--accent)}.combat-container{display:flex;flex-direction:column;min-height:100vh;max-width:600px;margin:0 auto;padding:1rem;gap:1rem;position:relative;overflow:hidden}.combat-container.shake{animation:combatShake .3s}@keyframes combatShake{0%,to{transform:translate(0)}20%{transform:translate(-8px) rotate(-1deg)}40%{transform:translate(8px) rotate(1deg)}60%{transform:translate(-6px) rotate(-.5deg)}80%{transform:translate(6px) rotate(.5deg)}}.combat-container.flash-red:before{content:"";position:fixed;inset:0;background:#ef44444d;animation:flashFade .2s;pointer-events:none;z-index:100}.combat-container.flash-gold:before{content:"";position:fixed;inset:0;background:#fbbf2466;animation:flashFade .3s;pointer-events:none;z-index:100}@keyframes flashFade{0%{opacity:1}to{opacity:0}}.damage-popup{position:fixed;font-size:2.5rem;font-weight:800;z-index:200;animation:damageFloat .8s ease-out forwards;text-shadow:2px 2px 4px rgba(0,0,0,.5)}.damage-popup.enemy{top:20%;left:50%;transform:translate(-50%);color:#fbbf24}.damage-popup.player{bottom:40%;left:50%;transform:translate(-50%);color:#ef4444}.damage-popup.crit{font-size:3.5rem;color:#f97316;animation:damageFloatCrit .8s ease-out forwards}@keyframes damageFloat{0%{opacity:1;transform:translate(-50%) translateY(0) scale(1)}to{opacity:0;transform:translate(-50%) translateY(-50px) scale(.8)}}@keyframes damageFloatCrit{0%{opacity:1;transform:translate(-50%) translateY(0) scale(1.5)}50%{transform:translate(-50%) translateY(-30px) scale(1.2)}to{opacity:0;transform:translate(-50%) translateY(-60px) scale(.8)}}.enemy-section{background:var(--bg-secondary);border:1px solid var(--border);border-radius:12px;padding:1rem}.enemy-info{display:flex;align-items:center;gap:1rem}.enemy-emoji{font-size:3rem;filter:drop-shadow(0 0 10px rgba(239,68,68,.5))}.enemy-details{flex:1}.enemy-details h2{font-size:1.25rem;margin-bottom:.5rem}.hp-bar-container{display:flex;align-items:center;gap:.5rem}.hp-bar{flex:1;height:12px;background:var(--bg-tertiary);border-radius:6px;overflow:hidden}.hp-bar-fill{height:100%;transition:width .3s;border-radius:6px}.hp-bar-fill.enemy{background:linear-gradient(90deg,#ef4444,#dc2626)}.hp-text{font-size:.85rem;color:var(--text-secondary);min-width:70px;text-align:right}.battle-log{flex:1;background:var(--bg-secondary);border:1px solid var(--border);border-radius:12px;overflow:hidden;min-height:150px;max-height:200px}.log-content{height:100%;overflow-y:auto;padding:.75rem;font-size:.9rem}.log-entry{padding:.25rem 0;border-bottom:1px solid var(--border)}.log-entry:last-child{border-bottom:none}.log-entry.system{color:var(--text-muted);font-style:italic}.log-entry.player{color:#60a5fa}.log-entry.enemy{color:#f87171}.log-entry.warning{color:#fbbf24}.log-entry.victory{color:#4ade80;font-weight:600;font-size:1.1rem}.log-entry.defeat{color:#ef4444;font-weight:600}.player-section{background:var(--bg-secondary);border:1px solid var(--border);border-radius:12px;padding:1rem}.player-stats{margin-bottom:1rem}.stat-row{display:flex;align-items:center;gap:.5rem;margin-bottom:.5rem;font-size:.85rem}.stat-row span:first-child{min-width:50px}.stat-row span:last-child{min-width:60px;text-align:right;color:var(--text-secondary)}.stat-row .progress{flex:1}.combat-actions{display:grid;grid-template-columns:repeat(2,1fr);gap:.5rem}.combat-btn{display:flex;flex-direction:column;align-items:center;gap:.25rem;padding:.75rem;background:var(--bg-tertiary);border:2px solid var(--border);border-radius:10px;cursor:pointer;transition:all .2s;min-height:70px}.combat-btn:not(.disabled):hover{border-color:var(--accent);transform:translateY(-2px);box-shadow:0 4px 12px #8b5cf633}.combat-btn:not(.disabled):active{transform:translateY(0)}.combat-btn.disabled{opacity:.5;cursor:not-allowed}.combat-btn.flee{background:#ef44441a;border-color:#ef44444d}.combat-btn.flee:not(.disabled):hover{border-color:var(--danger)}.btn-emoji{font-size:1.5rem}.btn-label{font-size:.85rem;font-weight:500}.btn-cost{font-size:.7rem;color:var(--mp)}.turn-indicator{text-align:center;margin-top:.75rem;padding:.5rem;background:var(--bg-tertiary);border-radius:8px;font-size:.9rem;color:var(--text-secondary)}.active-buffs{display:flex;gap:.5rem;justify-content:center;margin-top:.5rem}.buff-icon{display:flex;align-items:center;gap:.25rem;padding:.25rem .5rem;background:var(--bg-tertiary);border:1px solid var(--border);border-radius:6px;font-size:.85rem}.buff-icon.defense{border-color:#22c55e}.buff-icon.attack{border-color:#ef4444}.buff-icon.dodge{border-color:#8b5cf6}.buff-icon.shield{border-color:#3b82f6}.buff-duration{font-size:.7rem;background:var(--bg-secondary);padding:.125rem .25rem;border-radius:4px}.modal-overlay{position:fixed;inset:0;background:#000000b3;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.monster-select-modal{background:var(--bg-secondary);border:1px solid var(--border);border-radius:16px;width:100%;max-width:450px;max-height:90vh;overflow-y:auto;animation:modalSlideIn .3s ease-out}@keyframes modalSlideIn{0%{opacity:0;transform:translateY(-20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.25rem;border-bottom:1px solid var(--border)}.modal-header h2{font-size:1.25rem}.close-btn{background:none;border:none;font-size:1.25rem;color:var(--text-secondary);cursor:pointer;padding:.25rem}.close-btn:hover{color:var(--text-primary)}.modal-desc{text-align:center;color:var(--text-secondary);padding:1rem;margin:0}.monster-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.75rem;padding:0 1rem}.monster-card{display:flex;flex-direction:column;align-items:center;gap:.375rem;padding:1rem .5rem;background:var(--bg-tertiary);border:2px solid var(--border);border-radius:12px;cursor:pointer;transition:all .2s}.monster-card:hover{border-color:var(--accent);transform:translateY(-2px)}.monster-card.selected{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 10%,var(--bg-tertiary));box-shadow:0 0 20px #8b5cf633}.monster-emoji{font-size:2rem}.monster-name{font-weight:500;font-size:.95rem}.monster-stats{display:flex;gap:.75rem;font-size:.75rem;color:var(--text-secondary)}.monster-difficulty{font-size:.7rem;font-weight:500}.monster-exp{font-size:.7rem;color:var(--xp)}.monster-preview{margin:1rem;padding:1rem;background:var(--bg-tertiary);border:1px solid var(--border);border-radius:12px;animation:fadeIn .2s}.preview-difficulty{font-size:.85rem;font-weight:500}.preview-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:.5rem}.stat-item{text-align:center;padding:.5rem;background:var(--bg-secondary);border-radius:8px}.stat-item .stat-label{display:block;font-size:.7rem;color:var(--text-muted);margin-bottom:.25rem}.stat-item .stat-value{font-size:1rem;font-weight:600}.modal-actions{display:flex;gap:.75rem;padding:1rem;border-top:1px solid var(--border)}.modal-actions .btn{flex:1}.battle-result-modal{background:var(--bg-secondary);border:1px solid var(--border);border-radius:16px;padding:2rem;text-align:center;max-width:350px;width:100%;animation:resultPopIn .4s ease-out}.battle-result-modal.victory{border-color:#22c55e;box-shadow:0 0 30px #22c55e33}.battle-result-modal.defeat{border-color:#ef4444;box-shadow:0 0 30px #ef444433}.battle-result-modal.flee{border-color:#fbbf24;box-shadow:0 0 30px #fbbf2433}.result-icon{font-size:4rem;margin-bottom:.5rem;animation:iconBounce .5s ease-out}.battle-result-modal h2{font-size:1.75rem;margin-bottom:.5rem}.battle-result-modal.victory h2{color:#22c55e}.battle-result-modal.defeat h2{color:#ef4444}.battle-result-modal.flee h2{color:#fbbf24}.monster-defeated{color:var(--text-secondary);margin-bottom:1.5rem}.defeat-text{color:var(--text-secondary);margin-bottom:1rem}.rewards{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1.5rem}.reward-item{display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.75rem;background:var(--bg-tertiary);border-radius:8px;animation:rewardSlide .3s ease-out}.reward-item.exp .reward-value{color:var(--xp);font-weight:600}.reward-item.gold .reward-value{color:var(--gold);font-weight:600}.level-up{background:linear-gradient(135deg,#8b5cf6,#a855f7);color:#fff;padding:.75rem;border-radius:8px;font-weight:600;animation:levelUpPulse 1s ease-in-out infinite}@keyframes levelUpPulse{0%,to{box-shadow:0 0 #8b5cf666}50%{box-shadow:0 0 20px 5px #8b5cf633}}.penalties{margin-bottom:1rem}.penalty-item{display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.75rem;background:#ef44441a;border-radius:8px}.penalty-value{color:#ef4444;font-weight:600}.battle-result-modal .btn{min-width:120px}.equipment-section{padding:1rem;border-bottom:1px solid var(--border)}.equipment-section h3{font-size:.9rem;color:var(--text-secondary);margin-bottom:.75rem}.equipment-slots{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem}.equipment-slot{display:flex;flex-direction:column;align-items:center;gap:.25rem;padding:.75rem .5rem;background:var(--bg-tertiary);border:2px dashed var(--border);border-radius:10px;cursor:pointer;transition:all .2s}.equipment-slot.filled{border-style:solid;background:var(--bg-secondary)}.equipment-slot:hover{transform:translateY(-2px)}.slot-emoji{font-size:1.75rem}.slot-name{font-size:.75rem;color:var(--text-secondary);text-align:center}.equipment-slot.filled .slot-name{color:var(--text-primary);font-weight:500}.slot-stats{display:flex;flex-wrap:wrap;gap:.25rem;justify-content:center}.slot-stats .stat{font-size:.65rem;padding:.125rem .375rem;background:var(--bg-tertiary);border-radius:4px}.slot-stats .stat.positive{color:#22c55e}.slot-stats .stat.negative{color:#ef4444}.total-stats{display:flex;align-items:center;gap:.5rem;margin-top:.75rem;padding:.5rem;background:var(--bg-tertiary);border-radius:8px;font-size:.8rem;flex-wrap:wrap}.total-label{color:var(--text-secondary)}.total-stats .stat{padding:.125rem .5rem;background:var(--bg-secondary);border-radius:4px}.no-stats{color:var(--text-muted)}.inventory-filters{display:flex;gap:.5rem;padding:.75rem 1rem;border-bottom:1px solid var(--border)}.filter-btn{flex:1;padding:.5rem;background:var(--bg-tertiary);border:1px solid var(--border);border-radius:8px;color:var(--text-secondary);font-size:.85rem;cursor:pointer;transition:all .2s}.filter-btn:hover{background:var(--bg-secondary)}.filter-btn.active{background:var(--accent);border-color:var(--accent);color:#fff}.item-list{flex:1;overflow-y:auto;padding:.75rem;display:flex;flex-direction:column;gap:.5rem;max-height:250px}.empty-inventory{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem;color:var(--text-muted)}.empty-inventory span{font-size:3rem;margin-bottom:.5rem}.item-card{display:flex;align-items:center;gap:.75rem;padding:.75rem;background:var(--bg-tertiary);border:2px solid var(--border);border-radius:10px;cursor:pointer;transition:all .2s;text-align:left}.item-card:hover{border-color:var(--rarity-color);transform:translateY(-1px)}.item-card.selected{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 10%,var(--bg-tertiary))}.item-card.equipped{border-left:4px solid var(--rarity-color)}.item-emoji{font-size:1.5rem}.item-info{flex:1;min-width:0}.item-name{display:block;font-weight:500;font-size:.9rem;margin-bottom:.25rem}.item-stats{display:flex;flex-wrap:wrap;gap:.25rem}.item-stats .stat{font-size:.7rem;padding:.125rem .375rem;background:var(--bg-secondary);border-radius:4px}.item-stats .effect{font-size:.7rem;color:#22c55e}.item-quantity{font-size:.85rem;color:var(--text-secondary);padding:.25rem .5rem;background:var(--bg-secondary);border-radius:6px}.equipped-badge{font-size:.65rem;padding:.25rem .5rem;background:var(--accent);color:#fff;border-radius:4px;font-weight:500}.item-actions{display:flex;align-items:center;gap:.75rem;padding:1rem;border-top:1px solid var(--border);background:var(--bg-tertiary)}.selected-item-info{flex:1;display:flex;align-items:center;gap:.5rem}.item-actions .btn{min-width:80px}.inventory-modal{background:var(--bg-secondary);border:1px solid var(--border);border-radius:16px;width:100%;max-width:420px;max-height:85vh;display:flex;flex-direction:column;animation:modalSlideIn .3s ease-out}.inventory-error{margin:0 1rem;padding:.5rem;background:#ef44441a;border:1px solid rgba(239,68,68,.3);border-radius:8px;color:#ef4444;font-size:.85rem;text-align:center}.shop-modal{background:var(--bg-secondary);border:1px solid var(--border);border-radius:16px;width:100%;max-width:450px;max-height:85vh;display:flex;flex-direction:column;animation:modalSlideIn .3s ease-out}.shop-modal .modal-header{display:flex;align-items:center;gap:.75rem}.gold-display{margin-left:auto;padding:.375rem .75rem;background:linear-gradient(135deg,#fbbf24,#f59e0b);color:#1f2937;font-weight:600;font-size:.9rem;border-radius:20px}.shop-filters{display:flex;gap:.375rem;padding:.75rem 1rem;border-bottom:1px solid var(--border);overflow-x:auto}.shop-filters .filter-btn{padding:.375rem .75rem;font-size:.8rem;white-space:nowrap}.shop-error,.shop-success{margin:0 1rem;padding:.5rem;border-radius:8px;font-size:.85rem;text-align:center}.shop-error{background:#ef44441a;border:1px solid rgba(239,68,68,.3);color:#ef4444}.shop-success{background:#22c55e1a;border:1px solid rgba(34,197,94,.3);color:#22c55e;animation:successPulse .5s}@keyframes successPulse{0%,to{transform:scale(1)}50%{transform:scale(1.02)}}.shop-items{flex:1;overflow-y:auto;padding:.75rem;display:flex;flex-direction:column;gap:.5rem;max-height:300px}.shop-item{display:flex;align-items:center;gap:.75rem;padding:.75rem;background:var(--bg-tertiary);border:2px solid var(--border);border-radius:10px;cursor:pointer;transition:all .2s;text-align:left}.shop-item:hover{border-color:var(--rarity-color);transform:translateY(-1px)}.shop-item.selected{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 10%,var(--bg-tertiary))}.shop-item.cannot-afford{opacity:.6}.shop-item .item-emoji{font-size:1.5rem}.shop-item .item-info{flex:1;min-width:0}.shop-item .item-name{display:block;font-weight:500;font-size:.9rem;margin-bottom:.25rem}.shop-item .item-stats{display:flex;flex-wrap:wrap;gap:.25rem}.shop-item .stat{font-size:.7rem;padding:.125rem .375rem;background:var(--bg-secondary);border-radius:4px}.shop-item .stat.positive{color:#22c55e}.shop-item .stat.effect{color:#3b82f6}.item-price{text-align:right}.item-price span{font-weight:600;font-size:.9rem;color:var(--gold)}.item-price span.expensive{color:#ef4444}.purchase-panel{display:flex;align-items:center;gap:.75rem;padding:1rem;border-top:1px solid var(--border);background:var(--bg-tertiary)}.selected-info{display:flex;align-items:center;gap:.5rem;flex:1}.selected-emoji{font-size:1.25rem}.selected-name{font-weight:500}.quantity-selector{display:flex;align-items:center;gap:.25rem}.qty-btn{width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:var(--bg-secondary);border:1px solid var(--border);border-radius:6px;font-size:1rem;cursor:pointer}.qty-btn:hover{background:var(--bg-tertiary)}.qty-value{min-width:30px;text-align:center;font-weight:500}.total-cost{font-weight:600;color:var(--gold);padding:.25rem .5rem;background:var(--bg-secondary);border-radius:6px}.confirm-overlay{position:absolute;inset:0;background:#000000b3;display:flex;align-items:center;justify-content:center;border-radius:16px}.confirm-modal{background:var(--bg-secondary);border:1px solid var(--border);border-radius:12px;padding:1.5rem;text-align:center;min-width:250px;animation:confirmPop .2s ease-out}@keyframes confirmPop{0%{transform:scale(.9);opacity:0}to{transform:scale(1);opacity:1}}.confirm-modal h3{margin-bottom:1rem}.confirm-item{display:flex;align-items:center;justify-content:center;gap:.5rem;margin-bottom:.5rem}.confirm-emoji{font-size:1.5rem}.confirm-name{font-weight:500;font-size:1.1rem}.confirm-qty{color:var(--text-secondary)}.confirm-cost{font-size:1.25rem;font-weight:600;color:var(--gold);margin-bottom:.5rem}.confirm-remaining{font-size:.85rem;color:var(--text-secondary);margin-bottom:1rem}.confirm-actions{display:flex;gap:.5rem}.confirm-actions .btn{flex:1}.dungeon-select-modal{background:var(--bg-secondary);border:1px solid var(--border);border-radius:16px;width:100%;max-width:480px;max-height:90vh;display:flex;flex-direction:column;animation:modalSlideIn .3s ease-out}.dungeon-select-modal .modal-desc{text-align:center;color:var(--text-secondary);padding:0 1rem 1rem;margin:0}.dungeon-list{display:flex;flex-direction:column;gap:.75rem;padding:0 1rem;max-height:280px;overflow-y:auto}.dungeon-card{display:flex;align-items:center;gap:1rem;padding:1rem;background:var(--bg-tertiary);border:2px solid var(--border);border-radius:12px;cursor:pointer;transition:all .2s;text-align:left}.dungeon-card:hover:not(.locked){border-color:var(--dungeon-color);transform:translateY(-2px);box-shadow:0 4px 15px #0003}.dungeon-card.selected{border-color:var(--dungeon-color);background:color-mix(in srgb,var(--dungeon-color) 10%,var(--bg-tertiary))}.dungeon-card.locked{opacity:.5;cursor:not-allowed}.dungeon-icon{position:relative;width:50px;height:50px;display:flex;align-items:center;justify-content:center;background:var(--bg-secondary);border-radius:12px}.dungeon-emoji{font-size:1.75rem}.lock-icon{position:absolute;bottom:-4px;right:-4px;font-size:.9rem}.dungeon-info{flex:1;min-width:0}.dungeon-info h3{font-size:1rem;margin-bottom:.375rem}.dungeon-meta{display:flex;flex-wrap:wrap;gap:.5rem;font-size:.75rem}.level-range{color:var(--text-secondary);padding:.125rem .5rem;background:var(--bg-secondary);border-radius:4px}.floor-count{color:var(--text-secondary)}.difficulty{font-weight:500}.dungeon-rewards{display:flex;flex-direction:column;align-items:flex-end;gap:.25rem;font-size:.8rem;color:var(--text-secondary)}.dungeon-preview{margin:1rem;padding:1rem;background:var(--bg-tertiary);border:2px solid;border-radius:12px;animation:fadeIn .2s}.preview-header{display:flex;align-items:center;gap:.75rem;margin-bottom:.75rem}.preview-emoji{font-size:2.5rem}.preview-header h3{font-size:1.1rem;margin-bottom:.25rem}.preview-floors{font-size:.85rem;color:var(--text-secondary)}.preview-desc{font-size:.9rem;color:var(--text-secondary);margin-bottom:.75rem;line-height:1.5}.preview-info{display:flex;flex-direction:column;gap:.5rem}.info-item{display:flex;justify-content:space-between;font-size:.85rem}.info-label{color:var(--text-muted)}.info-value{font-weight:500}.dungeon-run{display:flex;flex-direction:column;min-height:100vh;max-width:600px;margin:0 auto;padding:1rem;gap:1rem}.dungeon-header{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1rem;background:var(--bg-secondary);border:1px solid var(--border);border-radius:12px}.dungeon-title{display:flex;align-items:center;gap:.5rem}.dungeon-title span{font-size:1.5rem}.dungeon-title h2{font-size:1.1rem}.flee-btn{padding:.5rem 1rem;background:#ef44441a;border:1px solid rgba(239,68,68,.3);border-radius:8px;color:#ef4444;font-size:.85rem;cursor:pointer;transition:all .2s}.flee-btn:hover{background:#ef444433}.dungeon-progress{background:var(--bg-secondary);border:1px solid var(--border);border-radius:12px;padding:1rem}.floor-indicator{display:flex;align-items:baseline;gap:.25rem;margin-bottom:.75rem}.current-floor{font-size:1.5rem;font-weight:700;color:var(--accent)}.total-floors{font-size:1rem;color:var(--text-secondary)}.progress-bar{position:relative;height:8px;background:var(--bg-tertiary);border-radius:4px;overflow:visible}.progress-fill{height:100%;border-radius:4px;transition:width .5s ease-out}.floor-marker{position:absolute;top:50%;transform:translate(-50%,-50%);font-size:.7rem;color:var(--text-muted);transition:all .3s}.floor-marker.passed{color:var(--accent)}.floor-marker.current{font-size:1rem;animation:markerPulse 1s ease-in-out infinite}@keyframes markerPulse{0%,to{transform:translate(-50%,-50%) scale(1)}50%{transform:translate(-50%,-50%) scale(1.2)}}.player-status{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1rem;background:var(--bg-secondary);border:1px solid var(--border);border-radius:12px}.hp-display{display:flex;align-items:center;gap:.5rem;flex:1}.hp-display>span:first-child{min-width:50px}.hp-bar{flex:1;max-width:150px;height:10px;background:var(--bg-tertiary);border-radius:5px;overflow:hidden}.hp-fill{height:100%;background:linear-gradient(90deg,#ef4444,#dc2626);transition:width .3s}.loot-display{display:flex;gap:1rem;font-size:.9rem}.event-area{flex:1;display:flex;align-items:center;justify-content:center;background:var(--bg-secondary);border:1px solid var(--border);border-radius:12px;min-height:300px}.event-area.animating{opacity:.7}.floor-transition{text-align:center;animation:walkCycle .5s ease-in-out infinite}@keyframes walkCycle{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.transition-emoji{font-size:4rem;display:block;margin-bottom:1rem}.event-card{text-align:center;padding:2rem;animation:eventAppear .3s ease-out}@keyframes eventAppear{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}.event-emoji{font-size:4rem;display:block;margin-bottom:.5rem;filter:drop-shadow(0 0 20px var(--event-color))}.event-card h3{font-size:1.5rem;margin-bottom:.5rem;color:var(--event-color)}.boss-name{font-size:1.1rem;color:var(--text-secondary);margin-bottom:1rem}.event-card .btn{margin-top:1rem;min-width:120px}.event-result{text-align:center;padding:2rem;animation:resultPop .3s ease-out}@keyframes resultPop{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.result-emoji{font-size:3rem;display:block;margin-bottom:.5rem}.event-result p{margin-bottom:.5rem}.result-value{font-size:1.25rem;font-weight:600;color:var(--gold)}.result-value.damage{color:#ef4444}.result-value.heal{color:#22c55e}.event-result .btn{margin-top:1.5rem}.dungeon-result-modal{background:var(--bg-secondary);border:1px solid var(--border);border-radius:16px;padding:2rem;text-align:center;max-width:380px;width:100%;animation:resultPopIn .4s ease-out}@keyframes resultPopIn{0%{opacity:0;transform:scale(.5)}70%{transform:scale(1.05)}to{opacity:1;transform:scale(1)}}.dungeon-result-modal.clear{border-color:#fbbf24;box-shadow:0 0 40px #fbbf244d}.dungeon-result-modal.flee{border-color:#f97316;box-shadow:0 0 30px #f9731633}.dungeon-result-modal.death{border-color:#ef4444;box-shadow:0 0 30px #ef444433}.dungeon-result-modal .result-icon{font-size:4rem;margin-bottom:.5rem;animation:iconBounce .5s ease-out}@keyframes iconBounce{0%{transform:translateY(-20px);opacity:0}60%{transform:translateY(5px)}to{transform:translateY(0);opacity:1}}.dungeon-result-modal h2{font-size:1.75rem;margin-bottom:.5rem}.dungeon-result-modal.clear h2{color:#fbbf24}.dungeon-result-modal.flee h2{color:#f97316}.dungeon-result-modal.death h2{color:#ef4444}.dungeon-name{color:var(--text-secondary);margin-bottom:1.5rem}.rewards{display:flex;flex-direction:column;gap:.75rem;margin-bottom:1.5rem}.rewards.partial{background:var(--bg-tertiary);padding:1rem;border-radius:10px}.partial-label{font-size:.85rem;color:var(--text-muted);margin-bottom:.5rem}.reward-item{display:flex;align-items:center;justify-content:center;gap:.75rem;padding:.75rem;background:var(--bg-tertiary);border-radius:10px;animation:rewardSlide .3s ease-out}@keyframes rewardSlide{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}.reward-icon{font-size:1.5rem}.reward-label{flex:1;text-align:left;color:var(--text-secondary)}.reward-value{font-size:1.1rem;font-weight:600}.reward-value.gold{color:var(--gold)}.reward-value.exp{color:var(--xp)}.penalties{margin-bottom:1rem;padding:1rem;background:#ef44441a;border-radius:10px}.lost-loot{display:block;margin-top:.5rem;color:#ef4444;font-weight:600}.revive-text{color:var(--text-muted);font-size:.9rem;margin-bottom:1.5rem}.dungeon-result-modal .btn{min-width:120px}.vote-overlay{position:fixed;inset:0;background:#000000d9;display:flex;align-items:center;justify-content:center;z-index:2000;padding:1rem}.vote-modal{background:var(--bg-secondary);border:2px solid var(--accent);border-radius:16px;width:100%;max-width:400px;padding:1.5rem;animation:voteAppear .3s ease-out}@keyframes voteAppear{0%{opacity:0;transform:scale(.9) translateY(-20px)}to{opacity:1;transform:scale(1) translateY(0)}}.vote-modal.urgent{border-color:#ef4444;animation:urgentPulse .5s ease-in-out infinite}@keyframes urgentPulse{0%,to{box-shadow:0 0 #ef444466}50%{box-shadow:0 0 20px 5px #ef444433}}.vote-modal.expired{opacity:.7}.vote-timer{display:flex;align-items:center;gap:.5rem;margin-bottom:1rem;padding:.5rem;background:var(--bg-tertiary);border-radius:8px;position:relative;overflow:hidden}.timer-icon{font-size:1.25rem}.timer-value{font-weight:600;font-size:1.1rem;z-index:1}.timer-bar{position:absolute;left:0;top:0;bottom:0;background:linear-gradient(90deg,var(--accent),#a855f7);opacity:.2;transition:width 1s linear}.vote-timer.urgent .timer-bar{background:linear-gradient(90deg,#ef4444,#f97316)}.vote-timer.urgent .timer-value{color:#ef4444}.vote-question{text-align:center;margin-bottom:1.5rem}.vote-emoji{font-size:2.5rem;display:block;margin-bottom:.5rem}.vote-question h2{font-size:1.25rem;margin-bottom:.5rem}.vote-context{font-size:.9rem;color:var(--text-secondary)}.vote-options{display:flex;flex-direction:column;gap:.75rem;margin-bottom:1rem}.vote-option{display:flex;flex-direction:column;gap:.5rem;padding:1rem;background:var(--bg-tertiary);border:2px solid var(--border);border-radius:12px;cursor:pointer;transition:all .2s;text-align:left;position:relative;overflow:hidden}.vote-option:not(.voted):hover{border-color:var(--accent);transform:translate(4px)}.vote-option.selected{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 15%,var(--bg-tertiary))}.vote-option.voted{cursor:default}.vote-option.winning{border-color:#22c55e}.vote-option:disabled{opacity:.7;cursor:not-allowed}.option-content{display:flex;align-items:center;gap:.75rem;z-index:1}.option-emoji{font-size:1.5rem}.option-text{font-weight:500;font-size:1rem}.option-voters{display:flex;gap:.25rem;margin-left:auto}.voter-avatar{width:24px;height:24px;display:flex;align-items:center;justify-content:center;background:var(--bg-secondary);border-radius:50%;font-size:.8rem}.voter-more{font-size:.75rem;color:var(--text-muted);align-self:center}.option-result{display:flex;align-items:center;gap:.5rem;position:relative}.result-bar{position:absolute;inset:-.5rem -1rem;background:var(--accent);opacity:.15;transition:width .5s ease-out}.vote-option.winning .result-bar{background:#22c55e;opacity:.2}.result-percent{font-weight:600;font-size:1.1rem;z-index:1}.result-votes{font-size:.85rem;color:var(--text-secondary);z-index:1}.vote-submit{width:100%;padding:.875rem;font-size:1rem}.vote-submitted{text-align:center;padding:.75rem;background:#22c55e1a;border:1px solid rgba(34,197,94,.3);border-radius:8px;color:#22c55e;font-weight:500}.vote-expired{text-align:center;padding:.75rem;background:#ef44441a;border:1px solid rgba(239,68,68,.3);border-radius:8px;color:#ef4444}.coop-dungeon-run{display:flex;flex-direction:column;min-height:100vh;max-width:600px;margin:0 auto;padding:1rem;gap:.75rem}.dungeon-header.coop{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1rem;background:var(--bg-secondary);border:1px solid var(--border);border-radius:12px}.coop-badge{font-size:.75rem;padding:.25rem .5rem;background:linear-gradient(135deg,#8b5cf6,#a855f7);color:#fff;border-radius:12px;font-weight:500}.party-hp-bar{display:flex;gap:.5rem;padding:.5rem;background:var(--bg-secondary);border:1px solid var(--border);border-radius:10px;overflow-x:auto}.party-member-hp{flex:1;min-width:60px;display:flex;flex-direction:column;align-items:center;gap:.25rem}.party-member-hp .member-name{font-size:.7rem;color:var(--text-secondary)}.mini-hp-bar{width:100%;height:6px;background:var(--bg-tertiary);border-radius:3px;overflow:hidden}.mini-hp-fill{height:100%;background:linear-gradient(90deg,#ef4444,#dc2626);transition:width .3s}.coop-dungeon-run .dungeon-progress{background:var(--bg-secondary);border:1px solid var(--border);border-radius:10px;padding:.75rem}.coop-dungeon-run .floor-indicator{display:flex;align-items:baseline;gap:.25rem;margin-bottom:.5rem}.coop-dungeon-run .current-floor{font-size:1.25rem;font-weight:700;color:var(--accent)}.coop-dungeon-run .total-floors{font-size:.9rem;color:var(--text-secondary)}.coop-dungeon-run .progress-bar{height:6px;background:var(--bg-tertiary);border-radius:3px;overflow:hidden}.coop-dungeon-run .progress-fill{height:100%;border-radius:3px;transition:width .5s ease-out}.coop-dungeon-run .event-area{flex:1;display:flex;align-items:center;justify-content:center;background:var(--bg-secondary);border:1px solid var(--border);border-radius:12px;min-height:280px}.waiting-party{text-align:center;animation:waitPulse 1.5s ease-in-out infinite}@keyframes waitPulse{0%,to{opacity:1}50%{opacity:.5}}.waiting-emoji{font-size:3rem;display:block;margin-bottom:.5rem}.branch-hint{font-size:.9rem;color:var(--accent);margin-top:.5rem;animation:hintPulse 1s ease-in-out infinite}@keyframes hintPulse{0%,to{opacity:1}50%{opacity:.6}}.coop-dungeon-run .event-card{text-align:center;padding:2rem;animation:eventAppear .3s ease-out}.coop-dungeon-run .event-emoji{font-size:3.5rem;display:block;margin-bottom:.5rem;filter:drop-shadow(0 0 15px var(--event-color))}.coop-dungeon-run .event-card h3{font-size:1.4rem;margin-bottom:.5rem;color:var(--event-color)}.coop-dungeon-run .event-result{text-align:center;padding:2rem;animation:resultPop .3s ease-out}.coop-dungeon-run .result-emoji{font-size:3rem;display:block;margin-bottom:.5rem}.coop-dungeon-run .result-value{font-size:1.2rem;font-weight:600;color:var(--gold);margin-top:.5rem}.coop-dungeon-run .result-value.damage{color:#ef4444}.coop-dungeon-run .result-value.heal{color:#22c55e}.coop-dungeon-run .loot-display{display:flex;justify-content:center;gap:1.5rem;padding:.75rem;background:var(--bg-secondary);border:1px solid var(--border);border-radius:10px;font-size:1rem;font-weight:500}.coop-dungeon-run .floor-transition{text-align:center;animation:walkCycle .5s ease-in-out infinite}.coop-dungeon-run .transition-emoji{font-size:3.5rem;display:block;margin-bottom:.75rem}.coop-dungeon-run .flee-btn{padding:.5rem 1rem;background:#ef44441a;border:1px solid rgba(239,68,68,.3);border-radius:8px;color:#ef4444;font-size:.85rem;cursor:pointer;transition:all .2s}.coop-dungeon-run .flee-btn:hover{background:#ef444433}.party-chat{display:flex;flex-direction:column;height:100%;background:var(--bg-tertiary);border:1px solid var(--border);border-radius:12px;overflow:hidden}.chat-header{display:flex;align-items:center;gap:.5rem;padding:.75rem 1rem;background:var(--bg-secondary);border-bottom:1px solid var(--border);font-weight:500;font-size:.9rem}.chat-messages{flex:1;overflow-y:auto;padding:.75rem;display:flex;flex-direction:column;gap:.5rem;max-height:200px}.chat-message{max-width:85%;padding:.5rem .75rem;background:var(--bg-secondary);border-radius:4px 12px 12px;animation:messageSlide .2s ease-out}@keyframes messageSlide{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.chat-message.self{align-self:flex-end;background:var(--accent);color:#fff;border-top-left-radius:12px;border-top-right-radius:4px}.chat-message.system{align-self:center;background:transparent;color:var(--text-muted);font-size:.8rem;font-style:italic;max-width:100%}.sender-name{display:block;font-size:.75rem;font-weight:600;color:var(--accent);margin-bottom:.125rem}.chat-message.self .sender-name{display:none}.message-text{font-size:.9rem;word-break:break-word}.system-text{font-size:.8rem}.chat-input{display:flex;gap:.5rem;padding:.75rem;border-top:1px solid var(--border);background:var(--bg-secondary)}.chat-input input{flex:1;padding:.5rem .75rem;background:var(--bg-tertiary);border:1px solid var(--border);border-radius:20px;font-size:.9rem}.chat-input input:focus{border-color:var(--accent);outline:none}.chat-input button{width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:var(--accent);border:none;border-radius:50%;cursor:pointer;font-size:1rem;transition:transform .2s}.chat-input button:hover:not(:disabled){transform:scale(1.1)}.chat-input button:disabled{opacity:.5;cursor:not-allowed}.party-modal{background:var(--bg-secondary);border:1px solid var(--border);border-radius:16px;width:100%;max-width:420px;max-height:85vh;display:flex;flex-direction:column;animation:modalSlideIn .3s ease-out}.party-desc{text-align:center;color:var(--text-secondary);padding:1rem;margin:0}.party-options{padding:1rem}.option-buttons{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}.option-btn{display:flex;flex-direction:column;align-items:center;gap:.75rem;padding:1.5rem 1rem;background:var(--bg-tertiary);border:2px solid var(--border);border-radius:12px;cursor:pointer;transition:all .2s}.option-btn:hover{border-color:var(--accent);transform:translateY(-2px)}.option-btn.create:hover{border-color:#22c55e}.option-btn.join:hover{border-color:#3b82f6}.option-icon{font-size:2rem}.option-text{font-weight:500;font-size:.95rem}.back-btn{background:none;border:none;color:var(--text-secondary);cursor:pointer;padding:.5rem 0;font-size:.9rem;text-align:left;margin-bottom:.5rem}.back-btn:hover{color:var(--text-primary)}.party-create,.party-browse{padding:1rem}.party-create h3,.party-browse h3,.party-create .form-group{margin-bottom:1rem}.code-input{display:flex;gap:.5rem}.code-input input{flex:1;text-transform:uppercase;letter-spacing:2px;text-align:center;font-family:monospace}.divider{display:flex;align-items:center;margin:1.5rem 0}.divider:before,.divider:after{content:"";flex:1;height:1px;background:var(--border)}.divider span{padding:0 1rem;color:var(--text-muted);font-size:.85rem}.public-parties h4{margin-bottom:.75rem;font-size:.9rem;color:var(--text-secondary)}.no-parties{text-align:center;color:var(--text-muted);padding:2rem}.party-item{display:flex;align-items:center;gap:.5rem;padding:.75rem;background:var(--bg-tertiary);border-radius:8px;margin-bottom:.5rem}.party-item span:first-child{flex:1}.party-members{padding:1rem;display:flex;flex-direction:column;height:100%}.party-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.party-header h3{font-size:1.1rem}.member-count{padding:.25rem .75rem;background:var(--bg-tertiary);border-radius:20px;font-size:.85rem;color:var(--text-secondary)}.members-list{flex:1;display:flex;flex-direction:column;gap:.5rem;overflow-y:auto;max-height:300px}.member-card{display:flex;align-items:center;gap:.75rem;padding:.75rem;background:var(--bg-tertiary);border:1px solid var(--border);border-radius:10px;transition:all .2s}.member-card.dead{opacity:.5;background:#ef44441a}.member-card.offline{opacity:.6}.member-card.empty{border-style:dashed;justify-content:center;min-height:60px}.empty-slot{color:var(--text-muted);font-size:.9rem}.member-icon{position:relative;width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:var(--bg-secondary);border-radius:10px}.class-emoji{font-size:1.25rem}.leader-badge{position:absolute;top:-6px;right:-6px;font-size:.75rem}.member-info{flex:1;min-width:0}.member-name{display:flex;align-items:center;gap:.5rem;font-weight:500;font-size:.9rem;margin-bottom:.125rem}.offline-badge{font-size:.65rem;padding:.125rem .375rem;background:var(--bg-secondary);border-radius:4px;color:var(--text-muted)}.member-level{font-size:.75rem;color:var(--text-secondary);margin-bottom:.25rem}.member-hp{display:flex;align-items:center;gap:.5rem}.member-hp .hp-bar{flex:1;height:6px;max-width:100px;background:var(--bg-secondary);border-radius:3px;overflow:hidden}.member-hp .hp-fill{height:100%;background:linear-gradient(90deg,#ef4444,#dc2626);transition:width .3s}.member-hp .hp-text{font-size:.7rem;color:var(--text-muted);min-width:50px}.kick-btn{width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:#ef44441a;border:1px solid rgba(239,68,68,.3);border-radius:6px;color:#ef4444;cursor:pointer;font-size:.8rem;transition:all .2s}.kick-btn:hover{background:#ef444433}.party-actions{display:flex;gap:.5rem;margin-top:1rem;padding-top:1rem;border-top:1px solid var(--border)}.party-actions .btn{flex:1}.invite-btn{background:#22c55e1a!important;border-color:#22c55e4d!important;color:#22c55e!important}.invite-btn:hover{background:#22c55e33!important}.btn-danger{background:#ef44441a;border:1px solid rgba(239,68,68,.3);color:#ef4444}.btn-danger:hover{background:#ef444433}.party-invites{position:fixed;top:1rem;right:1rem;width:280px;background:var(--bg-secondary);border:1px solid var(--accent);border-radius:12px;box-shadow:0 4px 20px #8b5cf633;z-index:1000;animation:slideIn .3s ease-out}@keyframes slideIn{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}.invites-header{display:flex;align-items:center;gap:.5rem;padding:.75rem 1rem;border-bottom:1px solid var(--border);font-weight:500}.invites-list{padding:.5rem;max-height:200px;overflow-y:auto}.invite-card{display:flex;flex-direction:column;gap:.5rem;padding:.75rem;background:var(--bg-tertiary);border-radius:8px;margin-bottom:.5rem}.invite-card:last-child{margin-bottom:0}.invite-info{display:flex;flex-direction:column}.invite-party{font-weight:500}.invite-from{font-size:.8rem;color:var(--text-secondary)}.invite-actions{display:flex;gap:.5rem}.invite-actions .btn{flex:1;padding:.375rem .5rem;font-size:.8rem}.levelup-modal{background:linear-gradient(180deg,var(--bg-secondary) 0%,var(--bg-primary) 100%);border:2px solid var(--gold);border-radius:20px;width:100%;max-width:400px;padding:1.5rem;text-align:center;animation:levelupAppear .6s ease-out;box-shadow:0 0 30px #ffd7004d,inset 0 1px #ffffff1a}@keyframes levelupAppear{0%{opacity:0;transform:scale(.5) translateY(50px)}50%{transform:scale(1.1) translateY(-10px)}to{opacity:1;transform:scale(1) translateY(0)}}.levelup-header{margin-bottom:1.5rem}.levelup-effect{display:flex;justify-content:center;gap:1rem;margin-bottom:.5rem}.levelup-star{font-size:2rem;animation:starFloat 1.5s ease-in-out infinite}.levelup-star.delay-1{animation-delay:.3s}.levelup-star.delay-2{animation-delay:.6s}@keyframes starFloat{0%,to{transform:translateY(0) rotate(0);opacity:1}50%{transform:translateY(-10px) rotate(180deg);opacity:.7}}.levelup-title{font-size:2.5rem;font-weight:800;background:linear-gradient(135deg,gold,#ff8c00,gold);background-size:200% auto;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;animation:shimmer 2s linear infinite;text-shadow:none;margin:0}@keyframes shimmer{to{background-position:200% center}}.levelup-level{display:flex;align-items:center;justify-content:center;gap:1rem;margin-top:.75rem;font-size:1.25rem}.old-level{color:var(--text-muted)}.arrow{color:var(--gold);font-weight:700}.new-level{color:var(--gold);font-weight:700;font-size:1.5rem}.levelup-rewards{background:var(--bg-tertiary);border-radius:12px;padding:1rem;margin-bottom:1rem}.levelup-rewards h3{margin:0 0 .75rem;font-size:1rem}.rewards-list{display:flex;flex-direction:column;gap:.5rem}.reward-item{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;background:var(--bg-secondary);border-radius:8px;font-size:.9rem}.reward-item.skill{border:1px solid var(--accent);background:#8b5cf61a}.reward-icon{font-size:1.25rem}.stat-allocation{margin-top:1rem;animation:fadeIn .5s ease-out}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.stat-allocation h3{margin:0 0 .5rem;font-size:1rem}.points-remaining{font-size:.9rem;color:var(--text-secondary);margin-bottom:1rem}.points-count{color:var(--accent);font-weight:700;font-size:1.1rem}.stats-grid{display:flex;flex-direction:column;gap:.75rem}.stat-row{display:grid;grid-template-columns:1fr auto;grid-template-rows:auto auto;gap:.25rem 1rem;padding:.75rem;background:var(--bg-tertiary);border-radius:10px;align-items:center}.stat-info{display:flex;align-items:center;gap:.5rem}.stat-emoji{font-size:1.25rem}.stat-name{font-weight:500}.stat-controls{display:flex;align-items:center;gap:.5rem}.stat-btn{width:28px;height:28px;display:flex;align-items:center;justify-content:center;border:1px solid var(--border);border-radius:6px;background:var(--bg-secondary);font-size:1.1rem;font-weight:600;cursor:pointer;transition:all .2s}.stat-btn:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.stat-btn:disabled{opacity:.4;cursor:not-allowed}.stat-btn.plus:hover:not(:disabled){background:#22c55e33;border-color:#22c55e;color:#22c55e}.stat-btn.minus:hover:not(:disabled){background:#ef444433;border-color:#ef4444;color:#ef4444}.stat-value{min-width:50px;text-align:center;font-weight:500}.stat-bonus{color:#22c55e;font-size:.8rem;margin-left:.25rem}.stat-desc{grid-column:1 / -1;font-size:.75rem;color:var(--text-muted)}.levelup-actions{display:flex;gap:.75rem;margin-top:1.5rem}.levelup-actions .btn{flex:1;padding:.875rem 1rem;font-size:1rem;border-radius:12px}.levelup-actions .btn.full-width{flex:1}.skill-learn-modal{background:var(--bg-secondary);border:1px solid var(--border);border-radius:16px;width:100%;max-width:500px;max-height:85vh;display:flex;flex-direction:column;animation:modalSlideIn .3s ease-out}.skill-error{margin:0 1rem;padding:.75rem;background:#ef44441a;border:1px solid rgba(239,68,68,.3);border-radius:8px;color:#ef4444;font-size:.9rem;text-align:center}.skill-sections{flex:1;overflow-y:auto;padding:1rem;display:flex;flex-direction:column;gap:1.5rem}.skill-section h3{margin:0 0 .75rem;font-size:1rem;color:var(--text-secondary)}.skill-list{display:flex;flex-direction:column;gap:.5rem}.skill-empty{display:flex;flex-direction:column;align-items:center;padding:1.5rem;color:var(--text-muted)}.skill-empty span{font-size:2rem;margin-bottom:.5rem}.skill-loading{text-align:center;padding:2rem;color:var(--text-muted)}.skill-card{display:flex;align-items:center;gap:.75rem;padding:.75rem;background:var(--bg-tertiary);border:1px solid var(--border);border-radius:10px;cursor:pointer;transition:all .2s}.skill-card.available:hover{border-color:var(--accent);background:#8b5cf61a}.skill-card.selected{border-color:var(--accent);background:#8b5cf633}.skill-card.learned{cursor:default;opacity:.8}.skill-card.learned:hover{border-color:var(--border);background:var(--bg-tertiary)}.skill-icon{font-size:1.75rem;width:40px;text-align:center}.skill-info{flex:1;display:flex;flex-direction:column}.skill-name{font-weight:500}.skill-req{font-size:.8rem;color:var(--accent)}.skill-desc{font-size:.8rem;color:var(--text-muted)}.skill-cost{text-align:right}.mp-cost{font-size:.85rem;color:var(--mp);font-weight:500}.skill-detail{padding:1rem;border-top:1px solid var(--border);background:var(--bg-tertiary)}.detail-header{display:flex;align-items:flex-start;gap:.75rem;margin-bottom:.75rem}.detail-icon{font-size:2.5rem}.detail-header h4{margin:0 0 .25rem;font-size:1.1rem}.detail-header p{margin:0;font-size:.9rem;color:var(--text-secondary)}.detail-stats{display:flex;flex-wrap:wrap;gap:.75rem;margin-bottom:1rem;font-size:.85rem}.detail-stats span{padding:.25rem .5rem;background:var(--bg-secondary);border-radius:6px}.learn-btn{width:100%;padding:.75rem;font-size:1rem}.quest-log-modal{background:var(--bg-secondary);border:1px solid var(--border);border-radius:16px;width:100%;max-width:600px;max-height:85vh;display:flex;flex-direction:column;animation:modalSlideIn .3s ease-out}.quest-tabs{display:flex;border-bottom:1px solid var(--border)}.quest-tab{flex:1;display:flex;align-items:center;justify-content:center;gap:.375rem;padding:.875rem .5rem;background:var(--bg-secondary);border:none;border-bottom:2px solid transparent;cursor:pointer;font-size:.9rem;color:var(--text-secondary);transition:all .2s}.quest-tab:hover{background:var(--bg-tertiary);color:var(--text-primary)}.quest-tab.active{border-bottom-color:var(--accent);color:var(--accent)}.quest-content{display:grid;grid-template-columns:1fr 1.2fr;flex:1;overflow:hidden}@media(max-width:500px){.quest-content{grid-template-columns:1fr}.quest-detail{border-left:none!important;border-top:1px solid var(--border)}}.quest-list{overflow-y:auto;padding:.75rem;display:flex;flex-direction:column;gap:.5rem;max-height:400px}.empty-quests{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem;color:var(--text-muted)}.empty-quests span{font-size:2.5rem;margin-bottom:.5rem}.quest-item{display:flex;align-items:center;gap:.75rem;padding:.75rem;background:var(--bg-tertiary);border:1px solid var(--border);border-radius:10px;cursor:pointer;transition:all .2s}.quest-item:hover{border-color:var(--accent)}.quest-item.selected{border-color:var(--accent);background:#8b5cf61a}.quest-item.complete{background:#22c55e1a;border-color:#22c55e4d}.quest-item.claimed{opacity:.6}.quest-status{font-size:1.25rem}.quest-info{flex:1;display:flex;flex-direction:column;min-width:0}.quest-name{font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.quest-desc{font-size:.75rem;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.claim-badge{padding:.25rem .5rem;background:#22c55e;color:#fff;font-size:.7rem;font-weight:600;border-radius:10px;animation:pulse 1.5s infinite}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}.quest-detail{padding:1rem;border-left:1px solid var(--border);overflow-y:auto}.quest-detail h3{margin:0 0 .5rem;font-size:1.1rem}.detail-desc{margin:0 0 1rem;font-size:.9rem;color:var(--text-secondary)}.objectives{margin-bottom:1rem}.objectives h4,.rewards h4{margin:0 0 .5rem;font-size:.85rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px}.objective{display:grid;grid-template-columns:auto 1fr auto;grid-template-rows:auto auto;gap:.25rem .5rem;padding:.5rem;background:var(--bg-tertiary);border-radius:8px;margin-bottom:.5rem}.objective.done{background:#22c55e1a}.objective.done .obj-check{color:#22c55e}.obj-check{font-size:.9rem;color:var(--text-muted)}.obj-desc{font-size:.85rem}.obj-progress{font-size:.8rem;color:var(--text-secondary)}.obj-bar{grid-column:1 / -1;height:4px;background:var(--bg-secondary);border-radius:2px;overflow:hidden}.obj-fill{height:100%;background:var(--accent);border-radius:2px;transition:width .3s}.objective.done .obj-fill{background:#22c55e}.rewards{margin-bottom:1rem}.reward-list{display:flex;flex-wrap:wrap;gap:.5rem}.reward-item{padding:.375rem .75rem;background:var(--bg-tertiary);border:1px solid var(--border);border-radius:8px;font-size:.85rem}.claim-btn{width:100%;padding:.875rem;font-size:1rem;animation:glow 2s infinite}@keyframes glow{0%,to{box-shadow:0 0 5px var(--accent)}50%{box-shadow:0 0 20px var(--accent)}}.tutorial-overlay{position:fixed;inset:0;background:#000c;z-index:10000;animation:fadeIn .3s ease-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.tutorial-highlight{position:fixed;border:2px solid var(--accent);border-radius:12px;box-shadow:0 0 0 9999px #000c,0 0 30px var(--accent);animation:highlightPulse 2s infinite;pointer-events:none;z-index:10001}@keyframes highlightPulse{0%,to{box-shadow:0 0 0 9999px #000c,0 0 20px var(--accent)}50%{box-shadow:0 0 0 9999px #000c,0 0 40px var(--accent)}}.tutorial-tooltip{position:fixed;background:var(--bg-secondary);border:2px solid var(--accent);border-radius:16px;padding:1.25rem;max-width:320px;z-index:10002;animation:tooltipSlide .3s ease-out}@keyframes tooltipSlide{0%{opacity:0;transform:translate(-50%,-40%)}to{opacity:1;transform:translate(-50%,-50%)}}.tooltip-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.tooltip-step{font-size:.8rem;color:var(--accent);font-weight:500}.skip-btn{background:none;border:none;color:var(--text-muted);font-size:.8rem;cursor:pointer;padding:.25rem .5rem}.skip-btn:hover{color:var(--text-primary)}.tutorial-tooltip h3{margin:0 0 .5rem;font-size:1.1rem}.tutorial-tooltip p{margin:0 0 1rem;font-size:.9rem;color:var(--text-secondary);line-height:1.5}.tooltip-actions{display:flex;gap:.5rem}.tooltip-actions .btn{flex:1;padding:.625rem 1rem}.tutorial-tooltip:before{content:"";position:absolute;top:-8px;left:50%;transform:translate(-50%);border:8px solid transparent;border-bottom-color:var(--accent)}.tutorial-tooltip:after{content:"";position:absolute;top:-5px;left:50%;transform:translate(-50%);border:6px solid transparent;border-bottom-color:var(--bg-secondary)}.achievements-modal{background:var(--bg-secondary);border:1px solid var(--border);border-radius:16px;width:100%;max-width:550px;max-height:85vh;display:flex;flex-direction:column;animation:modalSlideIn .3s ease-out}.achievement-progress{padding:1rem;background:var(--bg-tertiary);border-bottom:1px solid var(--border)}.progress-text{display:flex;justify-content:space-between;margin-bottom:.5rem;font-size:.9rem}.progress-bar{height:8px;background:var(--bg-secondary);border-radius:4px;overflow:hidden}.progress-fill{height:100%;background:linear-gradient(90deg,var(--accent),#f59e0b);border-radius:4px;transition:width .5s ease}.category-tabs{display:flex;gap:.25rem;padding:.75rem;border-bottom:1px solid var(--border);overflow-x:auto}.category-tab{padding:.5rem .75rem;background:var(--bg-tertiary);border:1px solid var(--border);border-radius:8px;font-size:.8rem;white-space:nowrap;cursor:pointer;transition:all .2s}.category-tab:hover{border-color:var(--accent)}.category-tab.active{background:var(--accent);border-color:var(--accent);color:#fff}.achievement-list{flex:1;overflow-y:auto;padding:.75rem;display:flex;flex-direction:column;gap:.5rem;max-height:400px}.loading,.empty-achievements{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem;color:var(--text-muted)}.empty-achievements span{font-size:2.5rem;margin-bottom:.5rem}.achievement-card{display:flex;align-items:flex-start;gap:.75rem;padding:.875rem;background:var(--bg-tertiary);border:1px solid var(--border);border-radius:12px;transition:all .2s}.achievement-card.completed{background:#f59e0b1a;border-color:#f59e0b4d}.achievement-icon{font-size:1.75rem;width:40px;text-align:center}.achievement-info{flex:1;min-width:0}.achievement-info h4{margin:0 0 .25rem;font-size:.95rem}.achievement-info p{margin:0 0 .5rem;font-size:.8rem;color:var(--text-muted)}.achievement-bar{position:relative;height:6px;background:var(--bg-secondary);border-radius:3px;overflow:visible}.achievement-fill{height:100%;background:var(--accent);border-radius:3px;transition:width .3s}.achievement-count{position:absolute;right:0;top:-16px;font-size:.7rem;color:var(--text-secondary)}.achievement-reward{display:flex;flex-direction:column;gap:.25rem;font-size:.75rem;text-align:right}.achievement-reward span{padding:.125rem .375rem;background:var(--bg-secondary);border-radius:4px}.game-container{display:flex;flex-direction:column;min-height:100vh;max-width:600px;margin:0 auto;padding:.75rem;gap:.75rem}.game-header{display:flex;justify-content:space-between;align-items:center;padding:.5rem 0}.game-header h1{font-size:1.25rem;color:var(--accent)}.header-right{display:flex;align-items:center;gap:.75rem}.connection-status{font-size:.75rem}.btn-icon{background:none;border:none;font-size:1.25rem;cursor:pointer;padding:.25rem}.character-panel{padding:1rem}.char-header{display:flex;align-items:center;gap:.75rem;margin-bottom:1rem}.char-class-icon{font-size:2rem}.char-info{flex:1}.char-info h2{font-size:1.1rem;margin-bottom:.125rem}.char-level{font-size:.85rem;color:var(--text-secondary)}.char-gold{font-size:.9rem;color:var(--gold);font-weight:500}.stat-bars{display:flex;flex-direction:column;gap:.5rem}.stat-bar-label{display:flex;justify-content:space-between;font-size:.75rem;margin-bottom:.25rem;color:var(--text-secondary)}.location-panel{padding:1rem;text-align:center}.location-panel h3{margin-bottom:.5rem}.location-desc{font-size:.9rem;color:var(--text-secondary);font-style:italic}.action-panel{padding:0}.action-btn{display:flex;flex-direction:column;align-items:center;gap:.5rem;padding:1rem;background:var(--bg-secondary);border:1px solid var(--border);border-radius:12px;cursor:pointer;transition:all .2s;min-height:80px}.action-btn:hover{border-color:var(--accent);transform:translateY(-2px)}.action-btn:active{transform:translateY(0)}.action-icon{font-size:1.75rem}.action-label{font-size:.85rem;color:var(--text-primary);font-weight:500}.chat-panel{flex:1;min-height:200px}.loading-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;gap:1rem}@media(max-width:360px){.action-grid{grid-template-columns:repeat(2,1fr)}}:root{--bg-primary: #0a0a0a;--bg-secondary: #141414;--bg-tertiary: #1f1f1f;--text-primary: #e5e5e5;--text-secondary: #a3a3a3;--text-muted: #666666;--accent: #8b5cf6;--accent-hover: #a78bfa;--success: #22c55e;--warning: #f59e0b;--danger: #ef4444;--border: #2a2a2a;--hp: #ef4444;--mp: #3b82f6;--xp: #fbbf24;--gold: #fbbf24;--warrior: #dc2626;--mage: #2563eb;--rogue: #16a34a}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:var(--bg-primary);color:var(--text-primary);min-height:100vh;line-height:1.6}.container{max-width:100%;padding:1rem;margin:0 auto}@media(min-width:768px){.container{max-width:600px}}.btn{display:inline-flex;align-items:center;justify-content:center;padding:.75rem 1.5rem;border:none;border-radius:8px;font-size:1rem;font-weight:500;cursor:pointer;transition:all .2s;min-height:44px;width:100%}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover{background:var(--accent-hover)}.btn-secondary{background:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--border)}.btn-secondary:hover{background:var(--bg-secondary)}.btn-danger{background:var(--danger);color:#fff}.card{background:var(--bg-secondary);border:1px solid var(--border);border-radius:12px;padding:1rem}input,textarea,select{width:100%;padding:.75rem 1rem;background:var(--bg-tertiary);border:1px solid var(--border);border-radius:8px;color:var(--text-primary);font-size:1rem;min-height:44px}input:focus,textarea:focus,select:focus{outline:none;border-color:var(--accent)}.progress{width:100%;height:8px;background:var(--bg-tertiary);border-radius:4px;overflow:hidden}.progress-bar{height:100%;border-radius:4px;transition:width .3s}.progress-hp{background:var(--hp)}.progress-mp{background:var(--mp)}.progress-xp{background:var(--xp)}.text-damage{color:var(--danger);font-weight:700;animation:shake .3s}.text-heal{color:var(--success);font-weight:700}.text-critical{color:var(--gold);font-weight:700;font-size:1.2em;animation:pulse .3s}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-5px)}75%{transform:translate(5px)}}@keyframes pulse{0%{transform:scale(1)}50%{transform:scale(1.1)}to{transform:scale(1)}}.screen-shake{animation:screenShake .3s}@keyframes screenShake{0%,to{transform:translate(0)}25%{transform:translate(-3px,3px)}50%{transform:translate(3px,-3px)}75%{transform:translate(-3px,-3px)}}.screen-flash-red{animation:flashRed .3s}@keyframes flashRed{0%,to{background-color:var(--bg-primary)}50%{background-color:#ef444433}}.text-glitch{animation:glitch .5s infinite}@keyframes glitch{0%{text-shadow:2px 0 red,-2px 0 cyan}50%{text-shadow:-2px 0 red,2px 0 cyan}to{text-shadow:2px 0 red,-2px 0 cyan}}.game-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 0;border-bottom:1px solid var(--border);margin-bottom:1rem}.game-header h1{font-size:1.5rem;color:var(--accent)}.header-right{display:flex;align-items:center;gap:1rem}.connection-status{font-size:.85rem}.game-main{display:flex;flex-direction:column;gap:1rem}.location-card{text-align:center}.location-card h2{margin-bottom:.5rem}.location-desc{color:var(--text-secondary);font-style:italic}.action-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem}.action-btn{padding:1rem;font-size:.9rem}@media(max-width:400px){.action-grid{grid-template-columns:repeat(2,1fr)}}.loading-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;gap:1rem;color:var(--text-secondary)}.loading-spinner{font-size:3rem;animation:spin 2s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}
