:root{color-scheme:dark;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;line-height:1.5}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{min-height:100vh;background:#0a0a0a;color:#fafafa}.app{min-height:100vh;max-width:520px;margin:0 auto;padding:1rem;position:relative;overflow-x:hidden}.notification{position:fixed;top:1rem;left:50%;transform:translate(-50%);background:linear-gradient(135deg,#facc15,#f59e0b);color:#0a0a0a;padding:.6rem 1.5rem;border-radius:9999px;font-weight:700;font-size:.85rem;z-index:100;animation:notifIn .3s ease;box-shadow:0 4px 20px #facc154d}@keyframes notifIn{0%{opacity:0;transform:translate(-50%) translateY(-20px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.float-layer{position:fixed;top:0;left:0;right:0;bottom:0;pointer-events:none;z-index:50}.float-text{position:absolute;top:35%;left:50%;font-weight:900;font-size:1.8rem;animation:floatUp 1.1s ease-out forwards;text-shadow:0 2px 8px rgba(0,0,0,.8)}.float-dmg{color:#facc15;left:62%}.float-crit{color:#fb923c;left:62%;font-size:2.4rem}.float-enemy-dmg{color:#f87171;left:35%}.float-dodge{color:#60a5fa;left:50%;font-size:2rem}.float-heal{color:#4ade80}.float-gold{color:#facc15;left:55%}@keyframes floatUp{0%{opacity:1;transform:translateY(0) scale(1)}50%{opacity:1;transform:translateY(-40px) scale(1.2)}to{opacity:0;transform:translateY(-80px) scale(.8)}}.screen{display:flex;flex-direction:column;gap:1rem}.screen-header{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.screen-header h2{font-size:1.1rem;flex:1;text-align:center}.header-info{font-size:.75rem;color:#ffffff80;min-width:60px;text-align:right}.back-btn{background:#ffffff14;border:1px solid rgba(255,255,255,.12);color:#fafafa;padding:.35rem .75rem;border-radius:.5rem;cursor:pointer;font-size:.8rem;font-weight:600}.back-btn:hover{background:#ffffff24}.hub-header{text-align:center}.hub-header h1{font-size:1.3rem;font-weight:800;letter-spacing:.06em;color:#facc15}.hub-stats{font-size:.8rem;color:#ffffff80;display:flex;gap:1rem;justify-content:center}.player-overview{display:flex;gap:1rem;background:#ffffff0a;border:1px solid rgba(255,255,255,.08);border-radius:1rem;padding:1rem}.player-avatar{font-size:3rem;flex-shrink:0}.player-info{flex:1;display:flex;flex-direction:column;gap:.3rem}.player-name{font-weight:700;font-size:1rem}.player-stats-row{display:flex;gap:.75rem;font-size:.75rem;color:#fff9}.equipment-row{display:flex;gap:.75rem;font-size:.7rem;color:#fff6}.bar-wrap{display:flex;align-items:center;gap:.4rem}.bar-label{font-size:.65rem;font-weight:700;color:#ffffff80;min-width:20px}.bar{position:relative;flex:1;height:.9rem;background:#ffffff14;border-radius:9999px;overflow:hidden}.bar-fill{height:100%;border-radius:9999px;transition:width .35s ease}.bar-text{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-size:.55rem;font-weight:700;text-shadow:0 1px 3px rgba(0,0,0,.8)}.stamina-pips{display:flex;gap:3px;justify-content:center;margin-top:.2rem}.pip{width:14px;height:8px;border-radius:2px;transition:all .2s}.pip-filled{background:#facc15;box-shadow:0 0 6px #facc1580}.pip-empty{background:#ffffff1a}.hub-nav{display:grid;grid-template-columns:1fr 1fr;gap:.6rem}.nav-btn{padding:.8rem;font-size:.9rem;font-weight:700;border:none;border-radius:.75rem;cursor:pointer;color:#fff;transition:transform .1s,box-shadow .1s}.nav-btn:hover{transform:translateY(-2px);box-shadow:0 4px 16px #0006}.nav-training{background:linear-gradient(135deg,#2563eb,#1d4ed8);grid-column:span 2}.nav-combat{background:linear-gradient(135deg,#dc2626,#b91c1c)}.nav-shop{background:linear-gradient(135deg,#16a34a,#15803d)}.nav-quests{background:linear-gradient(135deg,#9333ea,#7e22ce)}.nav-skills{background:linear-gradient(135deg,#f59e0b,#d97706)}.btn-rest{background:#ffffff0f;border:1px solid rgba(255,255,255,.12);color:#fafafa;padding:.5rem 1rem;border-radius:.5rem;cursor:pointer;font-size:.8rem;font-weight:600;width:100%}.btn-rest:hover{background:#ffffff1a}.training-grid{display:flex;flex-direction:column;gap:.6rem}.training-card{display:flex;flex-direction:column;align-items:center;gap:.2rem;padding:1.2rem;background:#ffffff0a;border:1px solid rgba(255,255,255,.1);border-radius:.75rem;cursor:pointer;color:#fafafa;transition:all .15s}.training-card:hover{background:#ffffff14;border-color:#fff3;transform:translateY(-2px)}.training-icon{font-size:2rem}.training-name{font-weight:700;font-size:.95rem}.training-desc{font-size:.75rem;color:#4ade80}.training-hint{font-size:.65rem;color:#fff6}.enemy-list{display:grid;grid-template-columns:1fr 1fr;gap:.5rem}.enemy-card{display:flex;flex-direction:column;align-items:center;gap:.2rem;padding:.8rem .5rem;background:#ffffff0a;border:1px solid rgba(255,255,255,.1);border-radius:.75rem;cursor:pointer;color:#fafafa;transition:all .15s;position:relative}.enemy-card:hover:not(.locked){background:#ffffff14;border-color:#f87171}.boss-card{border-color:#facc154d;background:#facc150a}.boss-card:hover:not(.locked){border-color:#facc15}.locked{opacity:.4;cursor:not-allowed}.lock-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-size:2rem;background:#0006;border-radius:.75rem}.enemy-emoji{font-size:2rem}.enemy-name{font-weight:700;font-size:.85rem}.boss-tag{font-size:.55rem;background:#facc15;color:#0a0a0a;padding:.1rem .4rem;border-radius:9999px;font-weight:800}.enemy-reward{font-size:.6rem;color:#fff6}.combat-screen{gap:.75rem}.combat-header{min-height:2.5rem;display:flex;justify-content:center;align-items:center}.combo-meter{display:flex;align-items:center;gap:.4rem;padding:.3rem .8rem;border-radius:9999px;font-weight:800;animation:comboPulse .4s ease}.combo-count{font-size:1.2rem}.combo-label{font-size:.7rem;letter-spacing:.1em}.combo-2{background:#4ade8026;color:#4ade80}.combo-3{background:#60a5fa33;color:#60a5fa}.combo-5{background:#a855f740;color:#c084fc}.combo-8{background:linear-gradient(135deg,#facc154d,#fb923c4d);color:#facc15}@keyframes comboPulse{0%,to{transform:scale(1)}50%{transform:scale(1.15)}}.battlefield{display:flex;align-items:center;gap:.5rem;justify-content:center}.fighter{flex:1;max-width:200px;text-align:center;display:flex;flex-direction:column;gap:.25rem}.fighter-name{font-weight:700;font-size:.8rem}.fighter-sprite{font-size:3.5rem;height:4.5rem;display:flex;align-items:center;justify-content:center}.vs-flash{font-size:1rem;font-weight:900;color:#f87171;text-shadow:0 0 12px rgba(248,113,113,.5);flex-shrink:0}.status-tag{font-size:.65rem;padding:.15rem .5rem;border-radius:9999px;display:inline-block;margin:0 auto}.tag-block{background:#60a5fa26;color:#60a5fa}.tag-dodge{background:#a855f726;color:#c084fc}@keyframes shake{0%,to{transform:translate(0)}20%{transform:translate(-5px)}40%{transform:translate(5px)}60%{transform:translate(-3px)}80%{transform:translate(3px)}}.shake{animation:shake .3s ease}@keyframes lungeRight{0%{transform:translate(0) scale(1)}40%{transform:translate(25px) scale(1.15)}to{transform:translate(0) scale(1)}}@keyframes lungeLeft{0%{transform:translate(0) scale(1)}40%{transform:translate(-25px) scale(1.15)}to{transform:translate(0) scale(1)}}.lunge-right{animation:lungeRight .35s ease}.lunge-left{animation:lungeLeft .35s ease}.battle-log{background:#ffffff08;border:1px solid rgba(255,255,255,.06);border-radius:.6rem;padding:.5rem .75rem;min-height:5rem;max-height:7rem;overflow-y:auto;display:flex;flex-direction:column;gap:.15rem}.log{font-size:.72rem;padding:.1rem 0}.log-player{color:#4ade80}.log-enemy{color:#f87171}.log-info{color:#facc15;font-style:italic}.log-combo{color:#c084fc;font-weight:700}.log-critical{color:#fb923c;font-weight:700}.log-dodge{color:#60a5fa}.combat-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:.4rem}.action-btn{display:flex;flex-direction:column;align-items:center;gap:.1rem;padding:.6rem .3rem;border:none;border-radius:.6rem;cursor:pointer;color:#fff;transition:transform .1s,box-shadow .1s;position:relative}.action-btn:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0006}.action-btn:active{transform:translateY(0)}.action-icon{font-size:1.5rem}.action-name{font-size:.75rem;font-weight:700}.action-cost{font-size:.55rem;opacity:.7}.action-key{font-size:.5rem;opacity:.4;font-family:monospace}.action-punch{background:linear-gradient(135deg,#dc2626,#991b1b)}.action-kick{background:linear-gradient(135deg,#ea580c,#c2410c)}.action-heavy{background:linear-gradient(135deg,#9333ea,#6b21a8)}.action-block{background:linear-gradient(135deg,#2563eb,#1e40af)}.action-dodge{background:linear-gradient(135deg,#7c3aed,#5b21b6)}.action-special{background:linear-gradient(135deg,#f59e0b,#b45309)}.combat-wait{text-align:center;font-size:.9rem;color:#ffffff80;padding:1rem}.combat-result{text-align:center;padding:1.5rem;border-radius:1rem}.victory-result{background:#4ade8014;border:1px solid rgba(74,222,128,.2)}.defeat-result{background:#f8717114;border:1px solid rgba(248,113,113,.2)}.combat-result h2{font-size:1.5rem;margin-bottom:.5rem}.combat-result p{font-size:.85rem;color:#fff9;margin-bottom:1rem}.btn-continue{background:linear-gradient(135deg,#facc15,#f59e0b);color:#0a0a0a;border:none;padding:.6rem 2rem;border-radius:.5rem;font-weight:700;font-size:.9rem;cursor:pointer}.btn-continue:hover{box-shadow:0 4px 16px #facc154d}.shop-section{font-size:.9rem;color:#fff9;margin-top:.5rem}.shop-grid{display:grid;grid-template-columns:1fr 1fr;gap:.5rem}.shop-item{display:flex;flex-direction:column;align-items:center;gap:.15rem;padding:.7rem .5rem;background:#ffffff0a;border:1px solid rgba(255,255,255,.1);border-radius:.6rem;cursor:pointer;color:#fafafa;transition:all .15s;position:relative}.shop-item:hover{background:#ffffff14;border-color:#fff3}.shop-item.equipped{border-color:#4ade80;background:#4ade800f}.shop-emoji{font-size:1.5rem}.shop-name{font-weight:700;font-size:.8rem}.shop-desc{font-size:.6rem;color:#fff6;text-align:center}.shop-stats{font-size:.6rem;color:#60a5fa}.shop-price{font-size:.65rem;color:#facc15;font-weight:600}.equipped-tag{position:absolute;top:.3rem;right:.3rem;font-size:.45rem;background:#4ade80;color:#0a0a0a;padding:.1rem .3rem;border-radius:9999px;font-weight:800}.quest-list{display:flex;flex-direction:column;gap:.5rem}.quest-card{padding:.75rem;background:#ffffff0a;border:1px solid rgba(255,255,255,.1);border-radius:.6rem}.quest-card.quest-done{border-color:#4ade8033;background:#4ade800a}.quest-header-row{display:flex;justify-content:space-between;align-items:center}.quest-name{font-weight:700;font-size:.85rem}.quest-complete-tag{font-size:.5rem;background:#4ade80;color:#0a0a0a;padding:.1rem .4rem;border-radius:9999px;font-weight:800}.quest-desc{font-size:.7rem;color:#ffffff80;margin:.2rem 0}.quest-info{display:flex;justify-content:space-between;font-size:.6rem;color:#ffffff59}.equipped-skills{background:#ffffff0a;border:1px solid rgba(255,255,255,.08);border-radius:.6rem;padding:.75rem}.equipped-skills h3{font-size:.75rem;color:#ffffff80;margin-bottom:.4rem}.equipped-row{display:flex;gap:.5rem;flex-wrap:wrap}.eq-skill{font-size:.75rem;padding:.2rem .5rem;background:#a855f726;border:1px solid rgba(168,85,247,.3);border-radius:9999px;color:#c084fc}.eq-skill.empty{color:#ffffff4d;background:none;border-style:dashed}.skill-list{display:flex;flex-direction:column;gap:.4rem}.skill-card{display:flex;align-items:center;gap:.6rem;padding:.6rem;background:#ffffff0a;border:1px solid rgba(255,255,255,.08);border-radius:.6rem}.skill-card.skill-owned{border-color:#a855f733;background:#a855f70a}.skill-card.skill-equipped{border-color:#a855f766}.skill-emoji{font-size:1.5rem;flex-shrink:0}.skill-info{flex:1;display:flex;flex-direction:column}.skill-name{font-weight:700;font-size:.8rem}.skill-desc{font-size:.6rem;color:#fff6}.skill-stats{font-size:.55rem;color:#ffffff4d}.skill-actions{flex-shrink:0}.btn-sm{padding:.3rem .6rem;font-size:.65rem;font-weight:700;border:none;border-radius:.4rem;cursor:pointer;color:#fff;transition:opacity .15s}.btn-sm:hover{opacity:.85}.btn-sm:disabled{opacity:.3;cursor:not-allowed}.btn-equip{background:#7c3aed}.btn-unequip{background:#ffffff26}.btn-buy{background:#f59e0b;color:#0a0a0a}@media(max-width:420px){.app{padding:.75rem}.fighter-sprite{font-size:2.5rem}.combat-actions{grid-template-columns:repeat(3,1fr)}.action-icon{font-size:1.2rem}.enemy-list,.shop-grid{grid-template-columns:1fr 1fr}}
