html{visibility:visible}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Segoe UI,sans-serif;background:#000;min-height:100vh;overflow:hidden;color:#fff}#battle-canvas{position:fixed;top:0;left:0;width:100%;height:100%}.screen-flash{position:fixed;top:0;left:0;width:100%;height:100%;background:#fff;opacity:0;pointer-events:none;z-index:50;transition:opacity .1s}.mode-tint{position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:5;opacity:0;transition:opacity .5s}.mode-tint.active{opacity:1}#battle-ui{position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:10}.zone-top{position:fixed;top:50px;left:0;right:0;display:flex;justify-content:center;flex-wrap:wrap;gap:6px;padding:0 10px;pointer-events:none;z-index:500}.zone-top>*{pointer-events:auto}.points-display{background:#000c;border:2px solid #ffcc00;border-radius:15px;padding:8px 14px;font-size:.95rem;white-space:nowrap}.points-display span{color:#fc0;font-weight:700}.top-btn{padding:8px 12px;font-size:.85rem;font-weight:700;border:none;border-radius:12px;cursor:pointer;transition:all .3s;min-height:44px;display:flex;align-items:center}.shop-btn{background:linear-gradient(135deg,#fc0,#f90);color:#000;box-shadow:0 0 15px #ffc8004d}.choose-btn{background:linear-gradient(135deg,#0cf,#08c);color:#fff;box-shadow:0 0 15px #00c8ff4d}.online-btn{background:linear-gradient(135deg,#0f8,#0a5);color:#fff;box-shadow:0 0 15px #00ff884d}.modes-btn{background:linear-gradient(135deg,#f60,#c30);color:#fff;box-shadow:0 0 15px #ff64004d}.top-btn:hover{transform:scale(1.05)}.zone-health{position:fixed;top:100px;left:0;right:0;display:flex;justify-content:space-between;align-items:flex-start;padding:0 10px;pointer-events:none;z-index:40;gap:5px}.zone-health>*{pointer-events:auto}.health-container{background:#000000d9;border-radius:10px;padding:8px 12px;min-width:130px;max-width:45%;border:2px solid;flex-shrink:1}.health-container.player{border-color:#0ff;box-shadow:0 0 15px #00ffff4d}.health-container.enemy{border-color:#f0f;box-shadow:0 0 15px #ff00ff4d}.pokemon-name-ui{font-size:1.1rem;font-weight:700;margin-bottom:4px}.health-container.player .pokemon-name-ui{color:#0ff}.health-container.enemy .pokemon-name-ui{color:#f0f}.health-bar-bg{width:100%;height:14px;background:#333;border-radius:8px;overflow:hidden}.health-bar-fill{width:100%;height:100%;background:linear-gradient(90deg,#0f0,#8f8);transition:width .5s ease-out;border-radius:8px}.health-bar-fill.medium{background:linear-gradient(90deg,#fc0,#fe0)}.health-bar-fill.low{background:linear-gradient(90deg,red,#f44);animation:pulse .5s infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.6}}.health-text-ui{text-align:right;margin-top:3px;font-size:.75rem}.equipped-display{margin-top:6px;padding:5px;background:#fc03;border:1px solid #ffcc00;border-radius:8px;font-size:.7rem;text-align:center}.equipped-item{display:inline-block;margin:2px;padding:3px 6px;background:#00000080;border-radius:6px;font-size:.7rem}.equipped-item .item-icon{margin-right:3px}.equipped-item.clickable{cursor:pointer;transition:transform .15s,box-shadow .15s;position:relative}.equipped-item.clickable:hover{transform:scale(1.05);box-shadow:0 0 8px #ffcc0080}.equipped-item.clickable:active{transform:scale(.95)}.item-tooltip{position:absolute;bottom:100%;left:50%;transform:translate(-50%);background:#000000f2;border:1px solid #ffcc00;border-radius:8px;padding:6px 10px;font-size:.7rem;color:#fff;white-space:nowrap;z-index:100;animation:tooltipPop .2s ease-out;pointer-events:none;margin-bottom:4px}@keyframes tooltipPop{0%{opacity:0;transform:translate(-50%) translateY(5px) scale(.9)}to{opacity:1;transform:translate(-50%) translateY(0) scale(1)}}.build-btn{display:none;position:fixed;bottom:120px;right:12px;padding:10px 16px;font-size:1.1rem;font-weight:700;background:linear-gradient(135deg,#0c6,#094);color:#fff;border:2px solid #00ff88;border-radius:12px;cursor:pointer;z-index:200;box-shadow:0 4px 15px #0c66;animation:buildPulse 2s infinite}@keyframes buildPulse{0%,to{transform:scale(1);box-shadow:0 4px 15px #0c66}50%{transform:scale(1.05);box-shadow:0 4px 25px #00cc66b3}}.build-btn:active{transform:scale(.95)}.build-palette{display:none;position:fixed;bottom:170px;right:12px;background:#000000eb;border:2px solid #00ff88;border-radius:12px;padding:8px;z-index:250;max-width:200px;flex-wrap:wrap;gap:4px;justify-content:center}.build-palette.show{display:flex}.build-item-btn{width:40px;height:40px;font-size:1.4rem;background:#ffffff1a;border:1px solid rgba(255,255,255,.2);border-radius:8px;cursor:pointer;transition:transform .1s,background .1s}.build-item-btn:hover{background:#ffffff40;transform:scale(1.1)}.build-item-btn:active{transform:scale(.9)}.build-item-btn.selected{background:#0c66;border-color:#0f8;box-shadow:0 0 8px #00ff8880}.build-item-btn.build-clear{background:#f003;border-color:#f006}.mode-badge{padding:5px 12px;font-size:.8rem;font-weight:700;border-radius:15px;display:none;text-align:center;white-space:nowrap;align-self:center;animation:badgePulse 2s infinite;flex-shrink:0}.mode-badge.show{display:block}.mode-badge.norules{background:#ff3200cc;border:2px solid #ff6600;color:#fff}.mode-badge.survival{background:#640096cc;border:2px solid #aa00ff;color:#fff}.mode-badge.catching{background:#c80000cc;border:2px solid #ff4444;color:#fff}.mode-badge.creative{background:#009664cc;border:2px solid #00ffaa;color:#fff}@keyframes badgePulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}.zone-bottom{position:fixed;bottom:0;left:0;right:0;display:flex;align-items:flex-end;pointer-events:none;z-index:50;padding:0 8px 10px;gap:5px}.zone-bottom>*{pointer-events:auto}.zone-bottom-left{display:flex;flex-direction:column;align-items:flex-start;gap:8px;flex-shrink:0;pointer-events:none}.zone-bottom-left>*{pointer-events:auto}.zone-bottom-center{flex:1;display:flex;flex-direction:column;align-items:center;gap:6px;min-width:0;pointer-events:none}.zone-bottom-center>*{pointer-events:auto}.zone-bottom-right{display:flex;flex-direction:column;align-items:flex-end;gap:8px;flex-shrink:0;pointer-events:none}.zone-bottom-right>*{pointer-events:auto}.message-box{padding:8px 16px;background:#000000e6;border-radius:10px;font-size:.9rem;border:2px solid #ffcc00;max-width:100%;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.attacks-panel{display:flex;gap:6px;flex-wrap:wrap;justify-content:center;max-width:100%;padding:4px}.attack-btn{padding:10px 12px;font-size:.8rem;font-weight:700;border:none;border-radius:10px;cursor:pointer;transition:all .2s;text-transform:uppercase;min-width:70px;min-height:44px}.attack-btn:hover:not(:disabled){transform:translateY(-2px) scale(1.05)}.attack-btn:disabled{opacity:.4;cursor:not-allowed}.attack-btn.psychic{background:linear-gradient(135deg,#f0f,#90f);color:#fff}.attack-btn.fire{background:linear-gradient(135deg,#f60,red);color:#fff}.attack-btn.water{background:linear-gradient(135deg,#08f,#04a);color:#fff}.attack-btn.grass{background:linear-gradient(135deg,#0c0,#080);color:#fff}.attack-btn.electric{background:linear-gradient(135deg,#fc0,#f90);color:#000}.attack-btn.normal{background:linear-gradient(135deg,#a0a0a0,#606060);color:#fff}.attack-btn.dark{background:linear-gradient(135deg,#4a0080,#1a0033);color:#fff}.attack-btn.fighting{background:linear-gradient(135deg,#c30,#810);color:#fff}.attack-btn.dragon{background:linear-gradient(135deg,#70f,#40a);color:#fff}.attack-btn.ghost{background:linear-gradient(135deg,#639,#426);color:#fff}.attack-btn.ice{background:linear-gradient(135deg,#6cf,#09c);color:#fff}.attack-btn.steel{background:linear-gradient(135deg,#aac,#668);color:#fff}.attack-btn.fairy{background:linear-gradient(135deg,#f9c,#f6a);color:#fff}.mega-evolve-btn{padding:10px 14px;font-size:.85rem;font-weight:700;background:linear-gradient(135deg,#f0f,#60f);color:#fff;border:3px solid #ffcc00;border-radius:12px;cursor:pointer;transition:all .3s;animation:megaPulse 1s infinite;display:none;min-height:44px}.mega-evolve-btn small{font-size:.65em}.mega-evolve-btn:hover{transform:scale(1.05)}.mega-evolve-btn.show{display:block}@keyframes megaPulse{0%,to{box-shadow:0 0 15px #f0f}50%{box-shadow:0 0 30px #f0f,0 0 50px #60f}}.evolve-btn{padding:10px 14px;font-size:.85rem;font-weight:700;background:linear-gradient(135deg,#0f8,#0a4);color:#fff;border:3px solid #ffff00;border-radius:12px;cursor:pointer;transition:all .3s;animation:evolvePulse 1s infinite;display:none;min-height:44px}.evolve-btn small{font-size:.65em}.evolve-btn:hover{transform:scale(1.05)}.evolve-btn.show{display:block}@keyframes evolvePulse{0%,to{box-shadow:0 0 15px #0f8}50%{box-shadow:0 0 30px #0f8,0 0 50px #ff0}}.vmax-btn{padding:10px 14px;font-size:.85rem;font-weight:700;background:linear-gradient(135deg,#f36,#c04);color:#fff;border:3px solid #ffcc00;border-radius:12px;cursor:pointer;transition:all .3s;animation:megaPulse 1s infinite;display:none;min-height:44px}.vmax-btn small{font-size:.65em}.vmax-btn.show{display:block}.throw-ball-btn{padding:12px 24px;font-size:1rem;font-weight:700;background:linear-gradient(135deg,#f44,#c00);color:#fff;border:3px solid #ffcc00;border-radius:15px;cursor:pointer;z-index:60;animation:evolvePulse 1s infinite;display:none;min-height:44px}.site-header{position:fixed;top:0;left:0;right:0;height:44px;display:flex;align-items:center;justify-content:space-between;padding:0 10px;background:#000000d9;border-bottom:1px solid rgba(255,255,255,.1);z-index:600}.header-left{display:flex;align-items:center;gap:8px}.header-logo{height:28px;width:auto}.header-title{font-size:.9rem;font-weight:700;background:linear-gradient(135deg,#fc0,#f80);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.header-right{display:flex;align-items:center;gap:6px}.header-btn{background:none;border:2px solid rgba(255,255,255,.2);border-radius:50%;width:34px;height:34px;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:1rem;transition:border-color .2s}.header-btn:hover{border-color:#fc0}.header-logout{opacity:.6}.header-logout:hover{opacity:1;border-color:#f66}.forest-info{position:fixed;top:60px;left:50%;transform:translate(-50%);background:#005000d9;border:2px solid #00ff00;border-radius:12px;padding:8px 16px;font-size:.9rem;color:#8f8;z-index:100;display:none;text-align:center;white-space:nowrap}.forest-info.show{display:block}.forest-controls{position:fixed;bottom:20px;left:15px;z-index:100;display:none}.forest-controls.show{display:block}.dpad{display:grid;grid-template-columns:54px 54px 54px;grid-template-rows:54px 54px 54px;gap:3px}.dpad-btn{width:54px;height:54px;border:none;border-radius:10px;background:#ffffff4d;color:#fff;font-size:1.5rem;cursor:pointer;display:flex;align-items:center;justify-content:center;user-select:none;-webkit-user-select:none;touch-action:none}.dpad-btn:active{background:#fff9}.dpad-empty{background:transparent}.forest-catch-btn{position:fixed;bottom:80px;right:20px;padding:0;font-size:.9rem;font-weight:700;background:linear-gradient(135deg,#f44,#c00);color:#fff;border:4px solid #ffcc00;border-radius:50%;width:100px;height:100px;cursor:pointer;z-index:100;display:none;line-height:1.2;overflow:hidden;animation:evolvePulse 1s infinite}.forest-catch-btn.show{display:flex;flex-direction:column;align-items:center;justify-content:center}.forest-exit-btn{position:fixed;top:15px;left:15px;padding:10px 18px;background:#000000b3;border:2px solid #ff4444;border-radius:10px;color:#fff;font-weight:700;font-size:.85rem;cursor:pointer;z-index:100;display:none;min-height:44px}.encounter-popup{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);background:#000000e6;border:4px solid #ffcc00;border-radius:20px;padding:25px;text-align:center;z-index:150;display:none;min-width:260px;max-width:90vw}.encounter-popup.show{display:block}.encounter-popup img{width:150px;height:150px;image-rendering:pixelated}.encounter-popup h2{color:#fc0;font-size:1.3rem;margin:8px 0}.encounter-popup .catch-options{display:flex;flex-direction:column;gap:8px;margin-top:12px}.encounter-popup .ball-btn{padding:12px 18px;font-size:1rem;font-weight:700;border:2px solid #fff;border-radius:10px;cursor:pointer;color:#fff;background:linear-gradient(135deg,#e74c3c,#c0392b);min-height:44px}.encounter-popup .ball-btn:hover{transform:scale(1.03)}.encounter-popup .run-btn{padding:10px 18px;font-size:.9rem;border:2px solid #888;border-radius:10px;cursor:pointer;color:#aaa;background:#64646480;min-height:44px}.victory-screen{position:fixed;top:0;left:0;width:100%;height:100%;background:#000000f2;display:none;flex-direction:column;align-items:center;justify-content:center;z-index:100;pointer-events:auto;padding:20px}.victory-screen.show{display:flex}.victory-text{font-size:2.5rem;font-weight:700;margin-bottom:15px;animation:glow 1s ease-in-out infinite alternate}@keyframes glow{0%{transform:scale(1)}to{transform:scale(1.1)}}.victory-text.win{color:#0f0;text-shadow:0 0 40px #00ff00}.victory-text.lose{color:red;text-shadow:0 0 40px #ff0000}.points-earned-text{font-size:1.4rem;margin-bottom:25px;color:#fc0}.victory-buttons{display:flex;gap:12px;flex-wrap:wrap;justify-content:center}.play-again-btn,.shop-victory-btn,.choose-victory-btn{padding:16px 30px;font-size:1.1rem;font-weight:700;border:none;border-radius:16px;cursor:pointer;transition:all .3s;min-height:44px}.play-again-btn{background:linear-gradient(135deg,#0f0,#0a0);color:#fff}.shop-victory-btn{background:linear-gradient(135deg,#fc0,#f90);color:#000}.choose-victory-btn{background:linear-gradient(135deg,#0cf,#08c);color:#fff}.play-again-btn:hover,.shop-victory-btn:hover,.choose-victory-btn:hover{transform:scale(1.05)}.select-screen{position:fixed;top:0;left:0;width:100%;height:100%;background:linear-gradient(135deg,#1a0033,#003);display:none;flex-direction:column;align-items:center;z-index:200;overflow-y:auto;padding:20px 15px}.select-screen.show{display:flex}.select-title{font-size:1.8rem;color:#fc0;text-shadow:0 0 20px #ffcc00;margin-bottom:8px;text-align:center}.select-subtitle{font-size:1rem;color:#aaa;margin-bottom:15px}.select-panels{display:flex;gap:15px;width:100%;max-width:1000px;justify-content:center;flex-wrap:wrap}.select-panel{flex:1;min-width:250px;max-width:480px;background:#00000080;border-radius:16px;padding:15px;border:3px solid}.select-panel.player-panel{border-color:#0ff}.select-panel.enemy-panel{border-color:#f0f}.panel-title{font-size:1.2rem;font-weight:700;margin-bottom:10px;text-align:center}.select-panel.player-panel .panel-title{color:#0ff}.select-panel.enemy-panel .panel-title{color:#f0f}.pokemon-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(75px,1fr));gap:8px}.pokemon-option{background:#ffffff1a;border:2px solid #444;border-radius:10px;padding:6px;cursor:pointer;transition:all .2s;text-align:center;min-height:44px}.pokemon-option:hover{border-color:#888;transform:scale(1.05)}.pokemon-option.selected{border-color:#fc0;box-shadow:0 0 12px #ffc80080}.pokemon-option img{width:50px;height:50px;object-fit:contain}.pokemon-option-name{font-size:.65rem;margin-top:3px}.start-battle-btn{margin-top:20px;padding:16px 40px;font-size:1.3rem;font-weight:700;background:linear-gradient(135deg,#f36,#c04);color:#fff;border:none;border-radius:16px;cursor:pointer;transition:all .3s;box-shadow:0 0 25px #ff326466;min-height:44px}.start-battle-btn:hover{transform:scale(1.05)}.start-battle-btn:disabled{opacity:.5;cursor:not-allowed}.shop-screen{position:fixed;top:0;left:0;width:100%;height:100%;background:linear-gradient(135deg,#1a0033,#003);display:none;flex-direction:column;align-items:center;z-index:200;overflow-y:auto;padding:20px 15px}.shop-screen.show{display:flex}.shop-title{font-size:2rem;color:#fc0;text-shadow:0 0 20px #ffcc00;margin-bottom:8px}.shop-points{font-size:1.1rem;margin-bottom:15px}.shop-points span{color:#fc0;font-weight:700}.shop-categories{display:flex;gap:8px;margin-bottom:15px;flex-wrap:wrap;justify-content:center}.category-btn{padding:8px 14px;font-size:.85rem;font-weight:700;border:2px solid #666;border-radius:20px;background:#ffffff1a;color:#fff;cursor:pointer;transition:all .3s;min-height:44px}.category-btn:hover,.category-btn.active{border-color:#fc0;color:#fc0}.shop-items{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px;max-width:900px;width:100%;margin-bottom:20px}.shop-item{background:#ffffff1a;border:2px solid #444;border-radius:12px;padding:12px;text-align:center;transition:all .3s}.shop-item:hover{border-color:#fc0;transform:translateY(-2px)}.shop-item.owned{border-color:#0f0}.shop-item.equipped{border-color:#0ff;box-shadow:0 0 12px #00ffff4d}.item-preview{width:50px;height:50px;margin:0 auto 8px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:2rem}.item-name{font-size:.9rem;font-weight:700;margin-bottom:4px}.item-desc{font-size:.7rem;color:#aaa;margin-bottom:8px}.item-price{font-size:.9rem;color:#fc0;margin-bottom:8px}.buy-btn{padding:8px 20px;font-size:.85rem;font-weight:700;border:none;border-radius:8px;cursor:pointer;min-height:36px}.buy-btn.buy{background:linear-gradient(135deg,#fc0,#f90);color:#000}.buy-btn.equip{background:linear-gradient(135deg,#0af,#06c);color:#fff}.buy-btn.equipped{background:linear-gradient(135deg,#0f0,#0a0);color:#fff}.buy-btn:disabled{background:#444;color:#888;cursor:not-allowed}.back-btn{padding:12px 30px;font-size:1rem;font-weight:700;background:linear-gradient(135deg,#666,#444);color:#fff;border:none;border-radius:12px;cursor:pointer;min-height:44px}.back-btn:hover{transform:scale(1.03)}.online-screen,.waiting-screen,.join-screen{position:fixed;top:0;left:0;width:100%;height:100%;background:linear-gradient(135deg,#032,#001a11);display:none;flex-direction:column;align-items:center;justify-content:center;z-index:200;padding:20px}.online-screen.show,.waiting-screen.show,.join-screen.show{display:flex}.online-title{font-size:1.8rem;color:#0f8;text-shadow:0 0 20px #00ff88;margin-bottom:8px;text-align:center}.online-subtitle{font-size:1rem;color:#aaa;margin-bottom:25px}.online-options{display:flex;gap:15px;flex-wrap:wrap;justify-content:center}.online-option{background:#00ff881a;border:3px solid #00ff88;border-radius:16px;padding:20px 25px;text-align:center;cursor:pointer;transition:all .3s;min-width:200px}.online-option:hover{transform:scale(1.03);box-shadow:0 0 25px #0f86}.option-icon{font-size:3rem;margin-bottom:10px}.option-title{font-size:1.2rem;font-weight:700;color:#0f8;margin-bottom:8px}.option-desc{font-size:.85rem;color:#aaa}.code-display{background:#00000080;border:3px solid #00ff88;border-radius:16px;padding:20px;text-align:center;margin:15px 0;max-width:90vw}.code-label{font-size:1rem;color:#aaa;margin-bottom:10px}.battle-code{font-size:2rem;font-weight:700;color:#fc0;text-shadow:0 0 15px #ffcc00;letter-spacing:4px;padding:15px;background:#ffcc001a;border-radius:12px;margin-bottom:15px;font-family:monospace;word-break:break-all}.code-instructions{font-size:.95rem;color:#0f8;line-height:1.6}.waiting-animation{margin:20px 0;text-align:center}.waiting-text{font-size:1.2rem;color:#fff;margin-bottom:10px}.waiting-dots span{font-size:1.5rem;color:#0f8;animation:blink 1.4s infinite;margin:0 4px}.waiting-dots span:nth-child(2){animation-delay:.2s}.waiting-dots span:nth-child(3){animation-delay:.4s}@keyframes blink{0%,to{opacity:.2}50%{opacity:1}}.code-input{font-size:1.5rem;font-weight:700;text-align:center;padding:12px 20px;border:3px solid #00ff88;border-radius:12px;background:#00000080;color:#fc0;letter-spacing:3px;text-transform:uppercase;width:100%;max-width:300px;margin-bottom:15px;min-height:44px}.code-input::placeholder{color:#666}.code-input:focus{outline:none;box-shadow:0 0 15px #0f86}.join-btn{padding:16px 40px;font-size:1.2rem;font-weight:700;background:linear-gradient(135deg,#0f8,#0a5);color:#fff;border:none;border-radius:12px;cursor:pointer;transition:all .3s;min-height:44px}.join-btn:hover{transform:scale(1.05);box-shadow:0 0 25px #0f86}.cancel-btn{margin-top:20px;background:linear-gradient(135deg,#f44,#c00)}.modes-screen{position:fixed;top:0;left:0;width:100%;height:100%;background:linear-gradient(135deg,#1a0022,#023);display:none;flex-direction:column;align-items:center;justify-content:center;z-index:200;padding:20px;overflow-y:auto}.modes-screen.show{display:flex}.modes-title{font-size:1.8rem;color:#f60;text-shadow:0 0 20px #ff6600;margin-bottom:8px}.modes-subtitle{font-size:1rem;color:#aaa;margin-bottom:20px}.modes-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;max-width:800px;width:100%;margin-bottom:20px}.mode-card{background:#ffffff1a;border:3px solid #555;border-radius:16px;padding:18px;text-align:center;cursor:pointer;transition:all .3s;min-height:44px}.mode-card:hover{border-color:#f60;transform:translateY(-3px);box-shadow:0 0 20px #ff64004d}.mode-icon{font-size:2.5rem;margin-bottom:8px}.mode-name{font-size:1.1rem;font-weight:700;color:#fc0;margin-bottom:5px}.mode-desc{font-size:.8rem;color:#aaa}.welcome-screen{position:fixed;top:0;left:0;width:100%;height:100%;background:linear-gradient(135deg,#1a1a2e,#16213e,#0f3460);display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:9999;gap:15px;padding:20px}.welcome-screen.hidden{display:none}.welcome-logo{width:min(80vw,320px);height:auto;margin-bottom:8px;filter:drop-shadow(0 0 12px rgba(255,204,0,.4))}.welcome-subtitle{font-size:1.2rem;color:#acf}.profile-list{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;margin:15px 0;max-width:400px}.profile-btn{padding:16px 24px;font-size:1.3rem;font-weight:700;border:3px solid #ffcc00;border-radius:16px;background:#ffcc0026;color:#fc0;cursor:pointer;transition:all .2s;min-height:44px}.profile-btn:hover,.profile-btn:active{background:#ffcc004d;transform:scale(1.05);box-shadow:0 0 15px #ffcc004d}.new-profile{display:flex;gap:10px;margin-top:8px}.name-input{padding:12px 16px;font-size:1.1rem;border:2px solid #4488ff;border-radius:12px;background:#0006;color:#fff;text-align:center;width:180px;min-height:44px}.name-input::placeholder{color:#68a}.create-btn{padding:12px 20px;font-size:1.1rem;font-weight:700;border:2px solid #44ff44;border-radius:12px;background:#00c80033;color:#4f4;cursor:pointer;min-height:44px}.create-btn:hover,.create-btn:active{background:#00c80066;transform:scale(1.05)}@media(max-width:360px){.zone-top{top:42px;gap:2px;padding:2px 3px}.points-display{padding:3px 6px;font-size:.6rem}.top-btn{padding:3px 5px;font-size:.58rem;min-height:24px}.zone-health{top:100px}.health-container{padding:4px 6px}.pokemon-name-ui{font-size:.7rem}.health-bar-bg{height:8px}.health-text-ui{font-size:.55rem}.equipped-display{font-size:.55rem;padding:2px 3px;display:none}.attack-btn{padding:6px;font-size:.6rem;min-width:55px;min-height:32px}.message-box{font-size:.7rem;padding:5px 8px}}@media(max-width:480px){.zone-top{top:42px;gap:3px;padding:3px 4px}.points-display{padding:4px 8px;font-size:.7rem;border-radius:10px;border-width:1px}.top-btn{padding:4px 7px;font-size:.65rem;border-radius:8px;min-height:28px}.zone-health{top:82px;padding:0 6px;gap:4px}.health-container{padding:5px 8px;min-width:0;max-width:48%;border-radius:8px}.pokemon-name-ui{font-size:.8rem;margin-bottom:2px}.health-bar-bg{height:10px}.health-text-ui{font-size:.6rem}.equipped-display{font-size:.6rem;padding:3px 4px;margin-top:4px}.equipped-display .equipped-title{font-size:.55rem}.equipped-item{padding:2px 4px;font-size:.6rem}.item-tooltip{font-size:.6rem;white-space:normal;max-width:150px;text-align:center}.mode-badge{padding:3px 8px;font-size:.6rem}.zone-bottom{padding:0 4px 6px;gap:2px}.zone-bottom-left,.zone-bottom-right{max-width:80px}.mega-evolve-btn,.evolve-btn,.vmax-btn{padding:6px 8px;font-size:.65rem;border-width:2px}.mega-evolve-btn small,.evolve-btn small,.vmax-btn small{display:none}.message-box{padding:6px 10px;font-size:.75rem;white-space:normal;line-height:1.2}.attacks-panel{gap:4px;padding:2px}.attack-btn{padding:8px;font-size:.65rem;min-width:60px;min-height:36px;border-radius:8px}.shop-screen,.select-screen,.modes-screen,.online-screen,.waiting-screen,.join-screen,.online-battle-screen,.online-result-screen{padding-top:54px}.shop-title{font-size:1.4rem}.shop-points{font-size:.9rem}.shop-categories{gap:4px;margin-bottom:10px}.category-btn{padding:6px 10px;font-size:.75rem;min-height:36px}.shop-items{grid-template-columns:repeat(2,1fr);gap:8px}.item-preview{width:40px;height:40px;font-size:1.6rem}.item-name{font-size:.8rem}.item-desc{font-size:.65rem}.item-price{font-size:.8rem}.select-title{font-size:1.3rem;margin-bottom:4px}.select-subtitle{font-size:.85rem;margin-bottom:10px}.select-panel{min-width:0;padding:10px;border-width:2px}.panel-title{font-size:1rem}.pokemon-grid{grid-template-columns:repeat(3,1fr);gap:6px}.pokemon-option{padding:4px}.pokemon-option img{width:40px;height:40px}.pokemon-option-name{font-size:.55rem}.start-battle-btn{margin-top:12px;padding:12px 24px;font-size:1rem}.modes-title{font-size:1.3rem}.modes-subtitle{font-size:.85rem;margin-bottom:12px}.modes-grid{grid-template-columns:repeat(2,1fr);gap:8px}.mode-card{padding:12px;border-width:2px}.mode-icon{font-size:1.8rem;margin-bottom:4px}.mode-name{font-size:.9rem}.mode-desc{font-size:.7rem}.online-title{font-size:1.3rem}.online-subtitle{font-size:.85rem;margin-bottom:15px}.online-options{gap:10px}.online-option{min-width:140px;padding:14px 16px}.option-icon{font-size:2rem;margin-bottom:6px}.option-title{font-size:1rem}.option-desc{font-size:.75rem}.invite-preview-name{font-size:1.4rem}.invite-preview-code{font-size:1.4rem;letter-spacing:2px}.print-btn{padding:14px 28px;font-size:1.1rem}.code-input{font-size:1.2rem;letter-spacing:2px}.join-btn{padding:14px 30px;font-size:1rem}.online-pokemon-grid{grid-template-columns:repeat(3,1fr);gap:6px;max-height:200px}.online-pokemon-grid .pokemon-option img{width:45px;height:45px}.online-result-title{font-size:1.8rem;margin-top:10px}.online-result-subtitle{font-size:1rem}.friends-section{max-width:100%}.friends-title{font-size:.9rem}.victory-text{font-size:2rem}.points-earned-text{font-size:1.1rem}.play-again-btn,.shop-victory-btn,.choose-victory-btn{padding:12px 20px;font-size:.95rem}.build-btn{bottom:90px;right:8px;padding:8px 12px;font-size:.9rem}.build-palette{bottom:140px;right:8px;max-width:160px}.build-item-btn{width:34px;height:34px;font-size:1.2rem}.forest-controls{bottom:10px;left:8px}.dpad{grid-template-columns:44px 44px 44px;grid-template-rows:44px 44px 44px;gap:2px}.dpad-btn{width:44px;height:44px;font-size:1.2rem}.forest-catch-btn{width:80px;height:80px;font-size:.8rem;bottom:60px;right:10px}.forest-info{top:50px;font-size:.8rem;padding:6px 12px}.forest-exit-btn{top:50px;left:10px;padding:8px 12px;font-size:.75rem}.encounter-popup{padding:18px;min-width:240px}.encounter-popup img{width:120px;height:120px}.encounter-popup h2{font-size:1.1rem}.site-header{height:40px;padding:0 8px}.header-logo{height:22px}.header-title{font-size:.8rem}.header-btn{width:30px;height:30px;font-size:.9rem}}@media(min-width:768px){.zone-top{top:55px;gap:12px;padding:0 15px}.points-display{padding:10px 22px;font-size:1.1rem}.top-btn{padding:10px 18px;font-size:.95rem}.zone-health{top:110px;padding:0 15px;gap:10px}.health-container{padding:10px 16px;min-width:170px;border-width:3px;border-radius:12px}.pokemon-name-ui{font-size:1.3rem;margin-bottom:6px}.health-bar-bg{height:16px}.health-text-ui{font-size:.85rem}.equipped-display{font-size:.8rem;padding:6px}.mode-badge{font-size:.9rem;padding:6px 16px}.zone-bottom{padding:0 12px 15px;gap:8px}.message-box{padding:10px 20px;font-size:1rem}.attacks-panel{gap:8px;padding:6px}.attack-btn{padding:12px 16px;font-size:.9rem;min-width:90px}.mega-evolve-btn,.evolve-btn,.vmax-btn{padding:12px 18px;font-size:.95rem}.forest-controls{bottom:25px;left:25px}.dpad{grid-template-columns:60px 60px 60px;grid-template-rows:60px 60px 60px;gap:4px}.dpad-btn{width:60px;height:60px;font-size:1.7rem}.forest-catch-btn{width:110px;height:110px;font-size:1rem;bottom:100px;right:25px}.forest-info{top:75px;font-size:1rem}.encounter-popup{padding:30px;min-width:300px}.encounter-popup img{width:170px;height:170px}.victory-text{font-size:3.5rem}.points-earned-text{font-size:1.6rem}.victory-buttons{gap:16px}.play-again-btn,.shop-victory-btn,.choose-victory-btn{padding:18px 40px;font-size:1.3rem}.select-title{font-size:2.2rem}.select-panel{padding:18px;min-width:300px}.pokemon-grid{grid-template-columns:repeat(auto-fill,minmax(85px,1fr))}.pokemon-option img{width:60px;height:60px}.pokemon-option-name{font-size:.7rem}.shop-title{font-size:2.5rem}.shop-points{font-size:1.3rem}.shop-items{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:16px}.item-preview{width:60px;height:60px;font-size:2.3rem}.item-name{font-size:1rem}.online-title{font-size:2.2rem}.online-option{padding:25px 35px;min-width:230px}.option-icon{font-size:3.5rem}.battle-code{font-size:2.5rem}.modes-title{font-size:2.2rem}.modes-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px}.mode-card{padding:22px}.mode-icon{font-size:2.8rem}.welcome-logo{width:min(80vw,360px)}.welcome-subtitle{font-size:1.4rem}.profile-btn{padding:18px 28px;font-size:1.4rem}.name-input{width:200px;font-size:1.2rem}}@media(min-width:1024px){.zone-top{top:58px;gap:16px;padding:0 20px}.points-display{padding:10px 28px;font-size:1.2rem}.top-btn{padding:12px 22px;font-size:1.05rem}.top-btn:hover{transform:scale(1.08)}.zone-health{top:115px;padding:0 20px}.health-container{padding:12px 18px;min-width:200px}.pokemon-name-ui{font-size:1.4rem}.health-bar-bg{height:18px}.health-text-ui{font-size:.9rem}.zone-bottom{padding:0 15px 20px;gap:10px}.message-box{padding:10px 25px;font-size:1.1rem}.attack-btn{padding:12px 20px;font-size:1rem;min-width:100px}.victory-text{font-size:4rem}.points-earned-text{font-size:1.8rem}.play-again-btn,.shop-victory-btn,.choose-victory-btn{padding:20px 45px;font-size:1.4rem}.select-title{font-size:2.5rem}.shop-title{font-size:3rem}.online-title,.modes-title{font-size:2.5rem}.modes-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:20px}.mode-card{padding:25px}.mode-icon{font-size:3rem}}.invite-preview-box{background:#00000080;border:3px solid #00ff88;border-radius:16px;padding:20px;text-align:center;margin:15px 0;max-width:90vw}.invite-preview-header{font-size:.85rem;color:#aaa;margin-bottom:12px}.invite-preview-name{font-size:1.8rem;font-weight:700;color:#fc0;text-shadow:0 0 10px #ffcc00}.invite-preview-msg{font-size:1.1rem;color:#0f8;margin-bottom:12px}.invite-preview-code{font-size:2rem;font-weight:700;color:#fc0;font-family:monospace;letter-spacing:3px;background:#ffcc001a;padding:10px 20px;border-radius:10px;margin-top:5px}.invite-actions{display:flex;flex-direction:column;gap:12px;align-items:center;margin-top:10px}.print-btn{padding:18px 40px;font-size:1.3rem;font-weight:700;background:linear-gradient(135deg,#fc0,#f80);color:#222;border:none;border-radius:14px;cursor:pointer;min-height:44px;transition:transform .2s;box-shadow:0 4px 20px #fc06}.print-btn:hover{transform:scale(1.05)}.print-btn:active{transform:scale(.95)}.print-invite{display:none}.print-invite-border{border:4px dashed #e63946;border-radius:20px;padding:30px;max-width:600px;margin:0 auto;background:#fff;color:#222;font-family:Segoe UI,Arial,sans-serif}.print-invite-header{display:flex;align-items:center;justify-content:center;gap:15px;margin-bottom:20px}.print-invite-title{font-size:2.2rem;font-weight:900;background:linear-gradient(135deg,#f80,#e63946);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;text-align:center}.print-invite-pokeball{width:40px;height:40px;position:relative;border:3px solid #333;border-radius:50%;overflow:hidden}.pokeball-top{position:absolute;top:0;left:0;right:0;height:50%;background:#e63946}.pokeball-bottom{position:absolute;bottom:0;left:0;right:0;height:50%;background:#f1faee}.pokeball-center{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:14px;height:14px;background:#fff;border:3px solid #333;border-radius:50%;z-index:2}.print-invite-body{text-align:center}.print-invite-stars{font-size:1.5rem;margin-bottom:10px}.print-invite-message{font-size:1.6rem;font-weight:700;color:#6366f1;margin-bottom:5px}.print-invite-from{font-size:1.2rem;color:#555;margin-bottom:20px}.print-invite-from span{font-weight:700;color:#e63946}.print-invite-code-box{background:#fffbeb;border:3px solid #ffcc00;border-radius:12px;padding:15px 20px;margin:15px auto;max-width:350px}.print-invite-code-label{font-size:.9rem;color:#888;margin-bottom:5px}.print-invite-code{font-size:2rem;font-weight:900;color:#e63946;font-family:monospace;letter-spacing:3px}.print-invite-steps{text-align:left;margin:20px auto;max-width:380px}.print-invite-steps-title{font-size:1.1rem;font-weight:700;color:#6366f1;margin-bottom:10px;text-align:center}.print-invite-step{font-size:1rem;color:#333;margin-bottom:8px;display:flex;align-items:center;gap:10px}.step-num{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;background:#6366f1;color:#fff;border-radius:50%;font-weight:700;font-size:.85rem;flex-shrink:0}.print-invite-footer{margin-top:25px;padding-top:15px;border-top:2px solid #eee}.print-invite-domain{font-size:1.4rem;font-weight:700;color:#e63946;margin-bottom:5px}.print-invite-note{font-size:.85rem;color:#888}.print-invite-parent-note{margin-top:20px;padding:12px 15px;background:#f0f9ff;border:1px solid #bae6fd;border-radius:8px;font-size:.8rem;color:#555;text-align:center}.friends-section{margin-top:20px;width:100%;max-width:400px}.friends-title{font-size:1.1rem;color:#fc0;text-align:center;margin-bottom:10px}.friends-list{max-height:200px;overflow-y:auto;display:flex;flex-direction:column;gap:8px}.no-friends{text-align:center;color:#888;font-size:.9rem;padding:15px}.friend-item{display:flex;align-items:center;justify-content:space-between;background:#00ff881a;border:2px solid rgba(0,255,136,.3);border-radius:10px;padding:10px 15px}.friend-name{font-size:1.1rem;font-weight:700;color:#0f8}.challenge-btn{padding:8px 16px;font-size:.9rem;font-weight:700;background:linear-gradient(135deg,#fc0,#f80);color:#222;border:none;border-radius:8px;cursor:pointer;min-height:44px}.online-battle-screen,.online-result-screen{position:fixed;top:0;left:0;width:100%;height:100%;background:linear-gradient(135deg,#1a0033,#0d001a);display:none;flex-direction:column;align-items:center;justify-content:flex-start;z-index:200;padding:20px;overflow-y:auto}.online-battle-screen.show,.online-result-screen.show{display:flex}.online-pokemon-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(80px,1fr));gap:8px;width:100%;max-width:500px;max-height:300px;overflow-y:auto;padding:10px}.online-pokemon-grid .pokemon-option{background:#ffffff0d;border:2px solid rgba(255,255,255,.1);border-radius:10px;padding:8px;text-align:center;cursor:pointer;transition:all .2s}.online-pokemon-grid .pokemon-option.selected{border-color:#fc0;background:#ffcc0026;box-shadow:0 0 15px #ffcc004d}.online-pokemon-grid .pokemon-option img{width:60px;height:60px;object-fit:contain}.online-pokemon-grid .pokemon-option-name{font-size:.7rem;color:#ccc;margin-top:4px}.online-moves-display{margin:15px 0;text-align:center}.online-moves-title{font-size:1rem;color:#aaa;margin-bottom:8px}.online-moves-list{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}.online-move{background:#00ff881a;border:1px solid rgba(0,255,136,.3);border-radius:8px;padding:6px 12px;font-size:.85rem;color:#0f8}.submit-battle-btn{padding:18px 40px;font-size:1.3rem;font-weight:700;background:linear-gradient(135deg,#0f8,#0a5);color:#fff;border:none;border-radius:14px;cursor:pointer;min-height:44px;margin-top:15px;box-shadow:0 4px 20px #0f86;transition:transform .2s}.submit-battle-btn:hover{transform:scale(1.05)}.online-result-title{font-size:2.5rem;font-weight:900;color:#fc0;text-shadow:0 0 20px #ffcc00;margin-bottom:5px;margin-top:30px}.online-result-subtitle{font-size:1.2rem;color:#aaa;margin-bottom:20px}.online-result-replay{width:100%;max-width:500px;max-height:300px;overflow-y:auto;display:flex;flex-direction:column;gap:10px;margin-bottom:20px}.replay-round{background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:10px;padding:10px 15px}.replay-round-num{font-size:.8rem;color:#888;margin-bottom:4px}.replay-attacks{font-size:.9rem;color:#0f8;margin-bottom:4px}.replay-hp{font-size:.85rem;color:#fc0}@media print{body>*:not(.print-invite){display:none!important}body{background:#fff!important;overflow:visible!important}html{visibility:visible!important}.print-invite{display:block!important;position:static!important;padding:10mm}.print-invite-border{border:4px dashed #e63946;page-break-inside:avoid}.print-invite-title{-webkit-text-fill-color:#e63946;color:#e63946}}
