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}.game-icon{display:inline-block;vertical-align:middle;flex-shrink:0;margin-right:4px}button .game-icon{pointer-events:none}#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;display:flex;flex-direction:column;align-items:flex-start;gap:3px}.equipped-item{display:flex;align-items:center;padding:3px 6px;background:#00000080;border-radius:6px;font-size:.7rem;width:fit-content}.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)}}#power-popup{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%) scale(.5);background:#000000eb;border:3px solid #ffcc00;border-radius:20px;padding:24px 36px;z-index:9999;text-align:center;opacity:0;transition:opacity .3s,transform .3s;pointer-events:none;min-width:220px;box-shadow:0 0 30px #fc06}#power-popup.show{opacity:1;transform:translate(-50%,-50%) scale(1)}.power-popup-title{font-size:1.6rem;font-weight:700;margin-bottom:10px;text-shadow:0 0 10px currentColor}.power-popup-text{font-size:1.2rem;color:#fff;line-height:1.4}.build-btn{display:none;background:linear-gradient(135deg,#0c6,#094);color:#fff;box-shadow:0 0 15px #0c66}.build-btn.show{display:flex}.build-palette{display:none;position:fixed;bottom:170px;right:12px;pointer-events:auto;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;color:#fff;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}.build-world-exit{position:fixed;top:54px;left:12px;padding:10px 18px;background:#000c;border:2px solid #ff4444;border-radius:10px;color:#fff;font-weight:700;font-size:.9rem;cursor:pointer;z-index:300;display:none;min-height:44px}.build-world-exit.show{display:block}.build-world-palette{position:fixed;bottom:0;left:0;right:0;display:none;gap:6px;padding:10px 12px;padding-bottom:max(10px,env(safe-area-inset-bottom));background:#000000e6;border-top:2px solid #00ff88;z-index:300;overflow-x:auto;-webkit-overflow-scrolling:touch;justify-content:center;flex-wrap:wrap}.build-world-palette.show{display:flex}.bw-item{display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 10px;background:#ffffff14;border:2px solid rgba(255,255,255,.2);border-radius:10px;color:#fff;cursor:pointer;transition:transform .1s,border-color .1s;min-width:56px;flex-shrink:0}.bw-item:hover{border-color:#0f8;transform:scale(1.05)}.bw-item:active{transform:scale(.95)}.bw-item.selected{border-color:#0f8;background:#00cc664d;box-shadow:0 0 10px #0f86}.bw-item-icon{font-size:1.5rem}.bw-item-label{font-size:.55rem;color:#ccc;white-space:nowrap}@keyframes bw-pulse{0%,to{box-shadow:0 0 8px #0f86}50%{box-shadow:0 0 18px #0f8c}}.bw-item.selected{animation:bw-pulse 1s ease-in-out infinite}.bw-hint{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);background:#000000d9;border:2px solid #ffcc00;border-radius:16px;padding:16px 24px;color:#fc0;font-size:1.1rem;font-weight:700;text-align:center;z-index:310;pointer-events:none;opacity:1;transition:opacity .5s}.bw-hint.fade{opacity:0}.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;position:relative;z-index:60}.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}.attack-btn.dmax-move{border:2px solid #ff3366;text-transform:uppercase;letter-spacing:1px;font-weight:700;animation:dmaxPulse 1.5s infinite}@keyframes dmaxPulse{0%,to{box-shadow:0 0 8px #ff336680}50%{box-shadow:0 0 16px #ff3366e6}}.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}.dynamax-btn{padding:10px 14px;font-size:.85rem;font-weight:700;background:linear-gradient(135deg,#f36,#90c);color:#fff;border:3px solid #ff66aa;border-radius:12px;cursor:pointer;transition:all .3s;animation:megaPulse 1s infinite;display:none;min-height:44px}.dynamax-btn small{font-size:.65em}.dynamax-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{display:none}.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;color:#ffffffd9;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:160px;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:55px;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:10px}.pick-indicator{display:flex;gap:8px;margin-bottom:10px}.pick-tab{padding:8px 20px;border:2px solid #555;border-radius:20px;background:#0006;color:#888;font-size:.9rem;font-weight:700;cursor:pointer;transition:all .2s}.pick-tab.active{border-color:#0ff;color:#0ff;background:#00ffff1a;box-shadow:0 0 10px #0ff3}#pick-enemy-tab.active{border-color:#f0f;color:#f0f;background:#ff00ff1a;box-shadow:0 0 10px #f0f3}.pick-preview{display:flex;align-items:center;gap:12px;margin-bottom:12px;background:#0006;border-radius:12px;padding:8px 16px}.pick-preview-slot{display:flex;align-items:center;gap:6px;padding:4px 10px;border-radius:8px;border:2px solid transparent}.pick-preview-slot.player-slot{border-color:#0ff}.pick-preview-slot.enemy-slot{border-color:#f0f}.pick-preview-slot img{width:36px;height:36px;object-fit:contain}.pick-preview-name{font-size:.85rem;font-weight:700;color:#fff}.pick-preview-vs{color:#fc0;font-weight:700;font-size:1rem}.pokemon-search-bar{width:100%;max-width:400px;margin-bottom:8px}.pokemon-search-input{width:100%;padding:10px 16px;border:2px solid #555;border-radius:20px;background:#00000080;color:#fff;font-size:1rem;outline:none;transition:border-color .2s}.pokemon-search-input:focus{border-color:#fc0}.pokemon-search-input::placeholder{color:#777}.type-filters{display:flex;flex-wrap:wrap;gap:5px;justify-content:center;margin-bottom:10px;max-width:600px}.type-filter-btn{padding:4px 10px;border:2px solid transparent;border-radius:12px;font-size:.65rem;font-weight:700;cursor:pointer;transition:all .2s;color:#fff;background:#ffffff1a}.type-filter-btn:hover{transform:scale(1.05)}.type-filter-btn.active{border-color:#fff;box-shadow:0 0 8px #ffffff4d}.type-filter-btn[data-type=all]{background:#ffffff26}.type-filter-btn[data-type=fire]{background:#e64a00}.type-filter-btn[data-type=water]{background:#07c}.type-filter-btn[data-type=grass]{background:#0a4}.type-filter-btn[data-type=electric]{background:#c90}.type-filter-btn[data-type=psychic]{background:#c08}.type-filter-btn[data-type=dragon]{background:#50c}.type-filter-btn[data-type=dark]{background:#435}.type-filter-btn[data-type=fighting]{background:#a20}.type-filter-btn[data-type=ghost]{background:#539}.type-filter-btn[data-type=fairy]{background:#c59}.type-filter-btn[data-type=steel]{background:#678}.type-filter-btn[data-type=ice]{background:#39c}.type-filter-btn[data-type=normal]{background:#777}.pokemon-grid{display:flex;flex-direction:column;gap:4px;width:100%;max-width:700px;max-height:40vh;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:8px;background:#0000004d;border-radius:12px}.type-section-header{display:flex;align-items:center;justify-content:space-between;padding:6px 10px;margin-top:6px;font-size:.9rem;font-weight:700;color:#fff;border-left:4px solid;background:#ffffff0f;border-radius:6px;text-transform:uppercase;letter-spacing:1px}.type-section-header:first-child{margin-top:0}.type-count{font-size:.7rem;color:#aaa;font-weight:400}.type-section-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(80px,1fr));gap:6px}.pokemon-option{background:#ffffff14;border:2px solid #444;border-radius:10px;padding:6px 4px;cursor:pointer;transition:all .15s;text-align:center;display:flex;flex-direction:column;align-items:center}.pokemon-option:hover{border-color:#888;transform:scale(1.05)}.pokemon-option.selected-player{border-color:#0ff;box-shadow:0 0 10px #0ff6}.pokemon-option.selected-enemy{border-color:#f0f;box-shadow:0 0 10px #f0f6}.pokemon-option.selected-player.selected-enemy{border-color:#fc0;box-shadow:0 0 12px #ffc80080}.pokemon-option img{width:48px;height:48px;object-fit:contain;flex-shrink:0}.pokemon-option-name{font-size:.6rem;margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;line-height:1.2}.custom-pokemon-icon{font-size:1.5rem;line-height:48px}.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:14px 28px;font-size:.95rem;font-weight:700;background:linear-gradient(145deg,#1e3a5f,#0f2744);color:#7dd3fc;border:2px solid rgba(125,211,252,.2);border-radius:12px;cursor:pointer;min-height:48px;transition:all .25s cubic-bezier(.4,0,.2,1);box-shadow:0 4px 12px #0000004d,inset 0 1px #7dd3fc1a;text-transform:uppercase;letter-spacing:.5px;position:relative;overflow:hidden}.back-btn:hover{transform:translateY(-2px);background:linear-gradient(145deg,#2563eb,#1e3a5f);border-color:#7dd3fc66;box-shadow:0 6px 20px #2563eb66,inset 0 1px #ffffff26;color:#fff}.back-btn:active{transform:translateY(0);box-shadow:0 2px 8px #0000004d,inset 0 1px #ffffff1a}.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:flex-start;z-index:200;padding:60px 20px 20px;overflow-y:auto}.online-screen.show,.waiting-screen.show,.join-screen.show{display:flex}.online-screen>.back-btn{margin-top:20px;background:linear-gradient(145deg,#22c55e,#16a34a);border-color:#22c55e4d;box-shadow:0 4px 15px #22c55e4d}.online-screen>.back-btn:hover{background:linear-gradient(145deg,#4ade80,#22c55e);box-shadow:0 6px 20px #22c55e80}.friends-screen{position:fixed;top:0;left:0;width:100%;height:100%;background:radial-gradient(ellipse at top,rgba(168,85,247,.15) 0%,transparent 50%),radial-gradient(ellipse at bottom,rgba(139,92,246,.1) 0%,transparent 50%),linear-gradient(180deg,#1a0a2a,#0f051a);display:none;flex-direction:column;align-items:center;z-index:200;padding:60px 20px 20px;overflow:hidden}.friends-screen.show{display:flex}.friends-screen-title{font-size:2rem;font-weight:800;color:#fff;text-shadow:0 0 30px rgba(168,85,247,.8),0 2px 0 #7c3aed;margin-bottom:4px;letter-spacing:2px;text-transform:uppercase}.friends-screen-subtitle{font-size:.95rem;color:#a855f7b3;margin-bottom:24px;font-weight:500}.friends-screen-list{background:#0000004d;border:2px solid rgba(168,85,247,.3);border-radius:16px;padding:12px;width:100%;max-width:420px;max-height:320px;overflow-y:auto;margin-bottom:24px;display:grid;grid-template-columns:repeat(2,1fr);gap:10px;scrollbar-width:thin;scrollbar-color:rgba(168,85,247,.5) transparent}.friends-screen-list::-webkit-scrollbar{width:6px}.friends-screen-list::-webkit-scrollbar-track{background:#a855f71a;border-radius:3px}.friends-screen-list::-webkit-scrollbar-thumb{background:#a855f780;border-radius:3px}.friend-screen-item{background:linear-gradient(145deg,#a855f733,#6366f126);border:2px solid rgba(168,85,247,.4);border-radius:12px;padding:14px 12px;display:flex;flex-direction:column;align-items:center;gap:8px;transition:all .25s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden}.friend-screen-item:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,#a855f7,#ec4899,#a855f7);background-size:200% 100%;opacity:0;transition:opacity .3s}.friend-screen-item:hover{transform:translateY(-3px) scale(1.02);border-color:#a855f7;box-shadow:0 8px 24px #a855f74d,0 0 0 1px #a855f733}.friend-screen-item:hover:before{opacity:1;animation:shimmer 1.5s linear infinite}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.friend-screen-item:after{content:"";position:absolute;width:40px;height:40px;background:radial-gradient(circle,rgba(168,85,247,.3) 30%,transparent 31%),radial-gradient(circle,rgba(168,85,247,.15) 60%,transparent 61%);border-radius:50%;top:8px;left:50%;transform:translate(-50%);z-index:0}.friend-screen-name{font-size:1.1rem;font-weight:700;color:#fff;text-align:center;position:relative;z-index:1;margin-top:28px;text-shadow:0 1px 2px rgba(0,0,0,.3)}.friend-screen-stats{font-size:.75rem;color:#a855f7cc;background:#0000004d;padding:4px 10px;border-radius:20px;font-weight:600;position:relative;z-index:1}.friend-screen-battle-btn{background:linear-gradient(135deg,#22c55e,#16a34a);border:none;border-radius:8px;padding:8px 14px;font-size:.8rem;font-weight:700;color:#fff;cursor:pointer;transition:all .2s cubic-bezier(.4,0,.2,1);text-transform:uppercase;letter-spacing:.5px;margin-top:4px;position:relative;z-index:1;box-shadow:0 2px 8px #22c55e66}.friend-screen-battle-btn:hover{transform:scale(1.05);box-shadow:0 4px 15px #22c55e99;background:linear-gradient(135deg,#4ade80,#22c55e)}.friend-screen-battle-btn:active{transform:scale(.95)}.friends-screen-actions{display:flex;flex-direction:row;gap:12px;width:100%;max-width:420px;justify-content:center}.invite-friend-btn{background:linear-gradient(135deg,#a855f7,#7c3aed,#6d28d9);border:none;border-radius:12px;padding:14px 24px;font-size:.95rem;font-weight:700;color:#fff;cursor:pointer;transition:all .25s cubic-bezier(.4,0,.2,1);box-shadow:0 4px 15px #a855f766,inset 0 1px #fff3;text-transform:uppercase;letter-spacing:.5px}.invite-friend-btn:hover{transform:translateY(-2px) scale(1.02);box-shadow:0 6px 25px #a855f780,inset 0 1px #fff3}.invite-friend-btn:active{transform:translateY(0) scale(.98)}.friends-btn{background:linear-gradient(135deg,#a855f7,#7c3aed)!important;position:relative}.friends-badge{position:absolute;top:-6px;right:-6px;background:linear-gradient(135deg,#ef4444,#dc2626);color:#fff;font-size:.7rem;font-weight:700;padding:3px 7px;border-radius:10px;display:none;box-shadow:0 2px 8px #ef444480;animation:badgePop .3s cubic-bezier(.4,0,.2,1)}.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}.shop-screen,.select-screen,.modes-screen,.online-screen,.waiting-screen,.join-screen,.online-battle-screen,.online-result-screen{padding-top:54px}.welcome-screen{position:fixed;top:0;left:0;width:100%;height:calc(100% - 140px);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(85vw,380px);height:auto;margin-bottom:12px;filter:drop-shadow(0 0 15px rgba(255,204,0,.5))}.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}.pokemon-grid{max-height:22vh}.type-section-grid{grid-template-columns:repeat(4,1fr)}.pokemon-option img{width:32px;height:32px;flex-shrink:0}.build-world-palette{flex-wrap:nowrap;justify-content:flex-start;padding:6px 8px;gap:5px}.bw-item{padding:5px 6px;min-width:44px;border-radius:8px}.bw-item-icon{font-size:1.1rem}.bw-item-label{display:none}.build-world-exit{top:44px;padding:6px 10px;font-size:.75rem;min-height:36px}}@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,.dynamax-btn{padding:6px 8px;font-size:.65rem;border-width:2px}.mega-evolve-btn small,.evolve-btn small,.vmax-btn small,.dynamax-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-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-screen{padding:54px 10px 15px}.select-title{font-size:1.3rem;margin-bottom:4px}.select-subtitle{font-size:.85rem;margin-bottom:8px}.pick-indicator{gap:5px}.pick-tab{padding:6px 12px;font-size:.75rem}.pick-preview{padding:6px 10px;gap:8px}.pick-preview-slot img{width:28px;height:28px}.pick-preview-name{font-size:.75rem}.pokemon-search-input{padding:8px 12px;font-size:.9rem}.type-filters{gap:3px}.type-filter-btn{padding:3px 7px;font-size:.55rem}.pokemon-grid{max-height:30vh;padding:6px}.type-section-grid{grid-template-columns:repeat(4,1fr);gap:4px}.pokemon-option{padding:3px}.pokemon-option img{width:36px;height:36px}.pokemon-option-name{font-size:.5rem}.start-battle-btn{margin-top:10px;padding:12px 24px;font-size:1rem;flex-shrink:0}.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(4,1fr);gap:6px;max-height:45vh}.online-pokemon-grid .pokemon-option img{width:40px;height:40px}.online-pokemon-grid .pokemon-option{min-height:70px;padding:4px}.online-pokemon-grid .pokemon-option-name{font-size:.55rem}.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-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:150px;right:10px}.forest-info{top:50px;font-size:.8rem;padding:6px 12px}.forest-exit-btn{top:55px;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:44px;padding:0 8px}.header-logo{height:32px}.header-btn{width:30px;height:30px;font-size:.9rem}.build-world-palette{flex-wrap:nowrap;justify-content:flex-start;padding:8px 10px;gap:8px}.bw-item{padding:6px 8px;min-width:50px}.bw-item-icon{font-size:1.3rem}.bw-item-label{font-size:.5rem}.build-world-exit{top:48px;padding:8px 14px;font-size:.8rem}}@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,.dynamax-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:160px;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}.pokemon-grid{max-height:50vh}.type-section-grid{grid-template-columns:repeat(auto-fill,minmax(85px,1fr))}.pokemon-option img{width:56px;height:56px}.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}}@media(max-height:500px)and (min-width:500px){.site-header{height:36px;padding:0 6px}.header-logo{height:26px}.header-btn{width:24px;height:24px;font-size:.75rem}.zone-top{top:30px;gap:4px;padding:0 6px}.points-display{padding:3px 8px;font-size:.65rem;border-radius:8px;border-width:1px}.top-btn{padding:3px 7px;font-size:.6rem;border-radius:7px;min-height:22px}.zone-health{top:auto;bottom:62px;padding:0 6px;gap:3px}.health-container{padding:2px 6px;min-width:0;max-width:22%;border-radius:6px;border-width:1px;background:#000000b3}.pokemon-name-ui{font-size:.6rem;margin-bottom:0}.health-bar-bg{height:5px}.health-text-ui,.equipped-display{display:none}.mode-badge{padding:2px 6px;font-size:.55rem}.zone-bottom{padding:0 6px 4px;gap:3px}.message-box{padding:3px 8px;font-size:.65rem}.attacks-panel{gap:3px;padding:2px}.attack-btn{padding:5px 8px;font-size:.6rem;min-width:50px;min-height:28px;border-radius:6px}.zone-bottom-left,.zone-bottom-right{max-width:70px}.mega-evolve-btn,.evolve-btn,.vmax-btn,.dynamax-btn{padding:4px 6px;font-size:.55rem;border-width:1px;min-height:28px}.mega-evolve-btn small,.evolve-btn small,.vmax-btn small,.dynamax-btn small{display:none}.build-palette{bottom:80px;right:6px}.victory-text{font-size:1.6rem;margin-bottom:8px}.points-earned-text{font-size:1rem;margin-bottom:12px}.play-again-btn,.shop-victory-btn,.choose-victory-btn{padding:8px 16px;font-size:.85rem}.select-screen{padding:35px 10px 10px}.select-title{font-size:1rem;margin-bottom:2px}.select-subtitle{font-size:.75rem;margin-bottom:5px}.pick-indicator{margin-bottom:4px}.pick-tab{padding:4px 10px;font-size:.65rem}.pick-preview{padding:4px 8px;margin-bottom:4px}.pick-preview-slot img{width:24px;height:24px}.pick-preview-name{font-size:.65rem}.pokemon-search-bar{margin-bottom:4px}.pokemon-search-input{padding:5px 10px;font-size:.8rem}.type-filters{margin-bottom:4px;gap:2px}.type-filter-btn{padding:2px 5px;font-size:.5rem}.pokemon-grid{max-height:35vh;padding:4px}.type-section-grid{grid-template-columns:repeat(5,1fr);gap:3px}.pokemon-option{padding:2px}.pokemon-option img{width:32px;height:32px}.pokemon-option-name{font-size:.5rem}.start-battle-btn{margin-top:6px;padding:8px 20px;font-size:.85rem}.build-world-palette{flex-wrap:nowrap;justify-content:flex-start;padding:4px 8px;gap:4px;padding-bottom:max(4px,env(safe-area-inset-bottom))}.bw-item{padding:4px 6px;min-width:40px;border-radius:6px;border-width:1px}.bw-item-icon{font-size:1rem}.bw-item-label{display:none}.build-world-exit{top:34px;left:8px;padding:4px 10px;font-size:.7rem;min-height:28px;border-radius:6px}}.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;-webkit-print-color-adjust:exact;print-color-adjust:exact}.print-invite-border{border:5px solid #e63946;border-radius:20px;padding:25px 30px;max-width:600px;margin:0 auto;background:#fffef5;color:#222;font-family:Segoe UI,Arial,sans-serif;position:relative;overflow:hidden}.print-invite-border:before{content:"";position:absolute;top:0;left:0;right:0;height:8px;background:linear-gradient(90deg,#e63946,#f80,#fc0,#22c55e,#3b82f6,#8b5cf6,#e63946)}.print-invite-header{display:flex;align-items:center;justify-content:center;gap:10px;margin-bottom:15px;margin-top:8px}.print-invite-header-center{display:flex;align-items:center;gap:12px}.print-pokemon-left,.print-pokemon-right{width:80px;height:80px;object-fit:contain}.print-invite-title{font-size:2rem;font-weight:900;color:#e63946;text-align:center;text-shadow:2px 2px 0 #ffcc00}.print-invite-pokeball{width:32px;height:32px;position:relative;border:3px solid #333;border-radius:50%;overflow:hidden;-webkit-print-color-adjust:exact;print-color-adjust:exact}.pokeball-top{position:absolute;top:0;left:0;right:0;height:50%;background:#e63946;-webkit-print-color-adjust:exact;print-color-adjust:exact}.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:12px;height:12px;background:#fff;border:3px solid #333;border-radius:50%;z-index:2}.print-invite-body{text-align:center}.print-invite-message{font-size:1.5rem;font-weight:900;color:#3b82f6;margin-bottom:5px;text-transform:uppercase}.print-invite-from{font-size:1.2rem;color:#555;margin-bottom:15px}.print-invite-from span{font-weight:700;color:#e63946}.print-invite-code-box{background:#fff8e1;border:3px solid #ffcc00;border-radius:12px;padding:12px 20px;margin:12px auto;max-width:340px;-webkit-print-color-adjust:exact;print-color-adjust:exact}.print-invite-code-label{font-size:.85rem;color:#888;margin-bottom:4px}.print-invite-code{font-size:1.8rem;font-weight:900;color:#e63946;font-family:monospace;letter-spacing:3px}.print-invite-steps{text-align:left;margin:15px auto;max-width:370px}.print-invite-steps-title{font-size:1.05rem;font-weight:700;color:#3b82f6;margin-bottom:8px;text-align:center}.print-invite-step{font-size:.95rem;color:#333;margin-bottom:6px;display:flex;align-items:center;gap:8px}.step-num{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;background:#e63946;color:#fff;border-radius:50%;font-weight:700;font-size:.8rem;flex-shrink:0;-webkit-print-color-adjust:exact;print-color-adjust:exact}.print-invite-pokemon-row{display:flex;justify-content:center;gap:10px;margin:12px 0}.print-invite-pokemon-row img{width:55px;height:55px;object-fit:contain}.print-invite-footer{margin-top:12px;padding-top:10px;border-top:2px solid #fde68a}.print-invite-domain{font-size:1.3rem;font-weight:900;color:#e63946;margin-bottom:4px}.print-invite-note{font-size:.8rem;color:#888}.print-invite-parent-note{margin-top:12px;padding:10px 12px;background:#f0f9ff;border:1px solid #bae6fd;border-radius:8px;font-size:.75rem;color:#555;text-align:center;-webkit-print-color-adjust:exact;print-color-adjust:exact}.friends-section{margin-top:24px;width:100%;max-width:440px;background:#0003;border-radius:16px;padding:16px;border:1px solid rgba(0,255,136,.2)}.friends-title{font-size:1rem;font-weight:700;color:#fc0;text-align:center;margin-bottom:14px;text-transform:uppercase;letter-spacing:1px;text-shadow:0 0 20px rgba(255,204,0,.5)}.friends-list{max-height:45vh;overflow-y:auto;display:grid;grid-template-columns:1fr;gap:8px;padding-right:4px;scrollbar-width:thin;scrollbar-color:rgba(0,255,136,.4) transparent}.friends-list::-webkit-scrollbar{width:5px}.friends-list::-webkit-scrollbar-track{background:#00ff881a;border-radius:3px}.friends-list::-webkit-scrollbar-thumb{background:#0f86;border-radius:3px}.no-friends{text-align:center;color:#ffffff80;font-size:.9rem;font-style:italic;padding:15px}.friend-name{font-size:1.1rem;font-weight:700;color:#0f8}.online-btn{position:relative}.online-badge{display:none;position:absolute;top:-8px;right:-12px;min-width:28px;height:20px;background:linear-gradient(135deg,#f44,#c00);color:#fff;font-size:.7rem;font-weight:700;border-radius:10px;padding:0 6px;line-height:20px;text-align:center;animation:badgePulseOnline 1.5s infinite;box-shadow:0 2px 8px #ff000080}.online-badge.show{display:block}@keyframes badgePulseOnline{0%,to{transform:scale(1)}50%{transform:scale(1.2)}}.friend-item{display:flex;align-items:center;justify-content:space-between;background:linear-gradient(135deg,#00ff881f,#00c86414);border:2px solid rgba(0,255,136,.25);border-radius:12px;padding:12px 14px;gap:10px;transition:all .2s cubic-bezier(.4,0,.2,1)}.friend-item:hover{background:linear-gradient(135deg,#00ff882e,#00c8641f);border-color:#00ff8880;transform:translate(4px);box-shadow:-4px 0 20px #0f83}.friend-item.pending{border-color:#22c55e;background:linear-gradient(135deg,#22c55e26,#16a34a1a)}.friend-info{display:flex;flex-direction:column;gap:3px;flex:1;min-width:0}.friend-name-row{display:flex;align-items:center;gap:6px}.friend-status-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.friend-status-dot.red{background:#f44;box-shadow:0 0 6px #f44}.friend-status-dot.yellow{background:#fc0;box-shadow:0 0 6px #fc0}.friend-status-dot.green{background:#0f8;box-shadow:0 0 6px #0f8}.friend-record{font-size:.7rem;color:#888}.friend-actions{display:flex;gap:6px;align-items:center}.challenge-btn{padding:8px 16px;font-size:.9rem;font-weight:700;background:linear-gradient(135deg,#22c55e,#16a34a);color:#fff;border:none;border-radius:8px;cursor:pointer;min-height:44px}.challenge-btn.pick-moves{background:linear-gradient(135deg,#f44,#c00);color:#fff;animation:badgePulseOnline 1.5s infinite}.history-btn{padding:8px 10px;font-size:.75rem;background:#ffffff1a;border:1px solid rgba(255,255,255,.3);border-radius:6px;color:#aaa;cursor:pointer;min-height:36px}.history-btn:hover{border-color:#fc0;color:#fc0}.history-view{width:100%;max-width:400px}.history-title{font-size:1.1rem;color:#fc0;text-align:center;margin-bottom:10px}.history-list{display:flex;flex-direction:column;gap:6px;max-height:250px;overflow-y:auto}.history-item{display:flex;justify-content:space-between;align-items:center;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:8px;padding:8px 12px;font-size:.8rem}.history-result{font-weight:700}.history-result.win{color:#0f8}.history-result.loss{color:#f44}.history-result.draw{color:#fc0}.history-date{color:#888;font-size:.7rem}.history-back-btn{margin-top:10px;padding:8px 20px;font-size:.85rem;background:linear-gradient(135deg,#6366f1,#4f46e5);border:1px solid rgba(99,102,241,.4);border-radius:8px;color:#fff;cursor:pointer;min-height:36px;box-shadow:0 2px 8px #6366f14d;transition:all .2s}.history-back-btn:hover{transform:scale(1.05);box-shadow:0 4px 12px #6366f180}.copy-code-btn{padding:14px 28px;font-size:1.1rem;font-weight:700;background:linear-gradient(135deg,#0cf,#08c);color:#fff;border:none;border-radius:12px;cursor:pointer;min-height:44px;transition:transform .2s}.copy-code-btn:hover{transform:scale(1.05)}.copy-code-btn.copied{background:linear-gradient(135deg,#0f8,#0a5)}.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:60px 20px 20px;overflow-y:auto;gap:10px}.online-battle-screen.show,.online-result-screen.show{display:flex}.activity-screen{position:fixed;inset:0;background:linear-gradient(135deg,#0a0a1a,#1a1a3a);display:none;flex-direction:column;align-items:center;justify-content:flex-start;z-index:200;padding:60px 20px 20px;overflow-y:auto}.activity-screen.show{display:flex}.activity-title{font-size:1.8rem;font-weight:700;color:#0f8;text-shadow:0 0 20px rgba(0,255,136,.5);margin-bottom:5px;display:flex;align-items:center;gap:10px}.activity-subtitle{font-size:1rem;color:#aaa;margin-bottom:20px}.activity-feed{width:100%;max-width:600px;flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:8px;padding:10px;margin-bottom:20px}.activity-item{background:#ffffff0d;border-left:3px solid #a855f7;border-radius:0 8px 8px 0;padding:10px 14px;font-size:.95rem;color:#ccc;animation:activitySlideIn .2s ease-out}@keyframes activitySlideIn{0%{opacity:0;transform:translate(-10px)}to{opacity:1;transform:translate(0)}}.activity-item.visit{border-left-color:#22c55e}.activity-item.battle_win{border-left-color:#fc0}.activity-item.battle_loss{border-left-color:#f66}.activity-item.forest_enter{border-left-color:#16a34a}.activity-item.pokemon_caught{border-left-color:#c084fc}.activity-item.shop_purchase{border-left-color:#60a5fa}.activity-item.mode_change{border-left-color:#f97316}.activity-item .emoji{margin-right:8px}.activity-item strong{color:#fff}.activity-time{color:#666;margin-left:8px;font-size:.8rem}.activity-buttons{display:flex;gap:10px;flex-wrap:wrap;justify-content:center}.clear-activity-btn{padding:10px 16px;background:linear-gradient(135deg,#dc2626,#991b1b);border:2px solid rgba(239,68,68,.3);border-radius:10px;color:#fff;font-weight:700;box-shadow:0 2px 8px #dc26264d;font-size:.9rem;cursor:pointer;transition:all .2s}.clear-activity-btn:hover{background:linear-gradient(135deg,#f44,#c00);border-color:#f66}.activity-loading{text-align:center;color:#888;padding:40px}.activity-empty{text-align:center;color:#666;padding:40px;font-size:1.1rem}.online-pokemon-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(80px,1fr));gap:8px;width:100%;max-width:500px;max-height:50vh;overflow-y:auto;padding:10px}.online-pokemon-grid .pokemon-option{background:#ffffff0d;border:2px solid rgba(255,255,255,.1);border-radius:10px;padding:6px;text-align:center;cursor:pointer;transition:all .2s;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;min-height:85px}.online-pokemon-grid .pokemon-option.selected{border-color:#fc0;background:#ffcc0026;box-shadow:0 0 15px #ffcc004d}.online-pokemon-grid .pokemon-option img{width:50px;height:50px;object-fit:contain;flex-shrink:0}.online-pokemon-grid .pokemon-option-name{font-size:.65rem;color:#ccc;margin-top:4px;line-height:1.2;word-break:break-word}.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-battle-screen>.back-btn{margin-top:15px}.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}.twoplayer-countdown{position:fixed;top:0;left:0;width:100%;height:100%;background:#000000d9;display:none;align-items:center;justify-content:center;z-index:300;pointer-events:none}.twoplayer-countdown.show{display:flex}.countdown-number{font-size:8rem;font-weight:900;color:#fc0;text-shadow:0 0 40px #ffcc00,0 0 80px #ff6600;animation:countdownPop .5s ease-out}@keyframes countdownPop{0%{transform:scale(2);opacity:0}50%{transform:scale(1.1);opacity:1}to{transform:scale(1);opacity:1}}.twoplayer-labels{position:fixed;bottom:10px;left:0;right:0;display:none;justify-content:space-between;padding:0 12px;z-index:55;pointer-events:none}.twoplayer-labels.show{display:flex}.tp-column{display:flex;flex-direction:column;gap:6px}.tp-left{align-items:flex-start}.tp-right{align-items:flex-end}.tp-key-label{display:flex;align-items:center;gap:8px;padding:8px 12px;background:#000000d9;border:2px solid #555;border-radius:10px;transition:opacity .3s,transform .1s;pointer-events:none}.tp-key-label.cooldown{opacity:.4}.tp-key-label.flash{transform:scale(1.15);border-color:#fff;box-shadow:0 0 15px #ffffff80}.tp-key{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;background:#ffffff26;border:2px solid rgba(255,255,255,.4);border-radius:6px;font-size:1rem;font-weight:700;color:#fff;text-transform:uppercase}.tp-move-name{font-size:.85rem;font-weight:700;color:#fff}.tp-key-label.p1{border-color:#0ff}.tp-key-label.p1 .tp-key{border-color:#0ff;color:#0ff}.tp-key-label.p2{border-color:#f0f}.tp-key-label.p2 .tp-key{border-color:#f0f;color:#f0f}.mode-badge.twoplayer{background:#0064c8cc;border:2px solid #00ccff;color:#fff}@media(max-width:480px){.tp-key-label{padding:6px 8px;gap:6px}.tp-key{width:26px;height:26px;font-size:.8rem}.tp-move-name{font-size:.7rem}.countdown-number{font-size:5rem}}.site-footer{position:fixed;bottom:0;left:0;width:100%;background:linear-gradient(180deg,#1a0033f2,#0a0014fa);border-top:1px solid rgba(255,204,0,.3);padding:20px;z-index:10000;text-align:center}.site-footer.hidden{display:none}.footer-inner{max-width:600px;margin:0 auto}.footer-brand{display:flex;align-items:center;justify-content:center;gap:10px;margin-bottom:10px}.footer-logo{height:28px;width:auto;filter:brightness(1.3) drop-shadow(0 0 8px rgba(255,204,0,.5))}.footer-title{font-size:1.1rem;font-weight:700;color:#fc0;text-shadow:0 0 8px rgba(255,204,0,.4)}.footer-desc{font-size:.8rem;color:#aaa;margin-bottom:10px;line-height:1.4}.footer-links{margin-bottom:8px}.footer-links a{color:#0ff;text-decoration:none;font-size:.85rem;transition:color .2s;pointer-events:auto;cursor:pointer;padding:5px 10px}.footer-links a:hover{color:#fc0;text-shadow:0 0 6px rgba(255,204,0,.5)}.footer-credit{font-size:.75rem;color:#888;margin-bottom:4px}.footer-copy{font-size:.7rem;color:#666}@media print{*{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}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:5mm}.print-invite-border{border:5px solid #e63946!important;page-break-inside:avoid}.print-invite-border:before{background:linear-gradient(90deg,#e63946,#f80,#fc0,#22c55e,#3b82f6,#8b5cf6,#e63946)!important}.print-invite-title{color:#e63946!important;text-shadow:2px 2px 0 #ffcc00!important}.pokeball-top{background:#e63946!important}.step-num{background:#e63946!important;color:#fff!important}.print-invite-code-box{background:#fff8e1!important;border-color:#fc0!important}.print-invite-parent-note{background:#f0f9ff!important}}.new-friend-celebration{position:fixed;top:0;left:0;width:100%;height:100%;background:#000000d9;z-index:10000;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .3s;overflow:hidden}.new-friend-celebration.show{opacity:1}.celebration-content{text-align:center;transform:scale(.8);transition:transform .3s}.new-friend-celebration.show .celebration-content{transform:scale(1)}.celebration-emoji{font-size:5rem;animation:celebrationBounce .6s ease-out}.celebration-title{font-size:2.5rem;font-weight:700;color:#fc0;text-shadow:0 0 20px rgba(255,204,0,.6);margin-bottom:10px}.celebration-names{font-size:1.8rem;color:#fff;font-weight:700;margin-bottom:5px}.celebration-subtitle{font-size:1.2rem;color:#acf;margin-bottom:25px}.celebration-btn{background:linear-gradient(135deg,#22c55e,#16a34a);color:#fff;border:none;padding:15px 40px;font-size:1.3rem;font-weight:700;border-radius:30px;cursor:pointer;box-shadow:0 4px 20px #22c55e66;transition:transform .2s,box-shadow .2s}.celebration-btn:hover{transform:scale(1.05);box-shadow:0 6px 25px #22c55e80}@keyframes celebrationBounce{0%{transform:scale(0) rotate(-20deg)}50%{transform:scale(1.3) rotate(10deg)}to{transform:scale(1) rotate(0)}}.confetti{position:absolute;width:10px;height:10px;top:-20px;border-radius:2px;animation:confettiFall 3s ease-out forwards}@keyframes confettiFall{0%{transform:translateY(0) rotate(0);opacity:1}to{transform:translateY(100vh) rotate(720deg);opacity:0}}.friend-item.new-friend{background:linear-gradient(135deg,#a855f733,#6366f133);border:2px solid rgba(168,85,247,.4);animation:newFriendPulse 2s ease-in-out infinite}@keyframes newFriendPulse{0%,to{box-shadow:0 0 10px #a855f74d}50%{box-shadow:0 0 20px #a855f799}}.new-badge{background:linear-gradient(135deg,#a855f7,#6366f1);color:#fff;font-size:.65rem;font-weight:700;padding:2px 6px;border-radius:8px;margin-left:8px;text-transform:uppercase;animation:badgePop .3s ease-out}@keyframes badgePop{0%{transform:scale(0)}50%{transform:scale(1.2)}to{transform:scale(1)}}.friend-status-msg{font-size:.75rem;color:#888;margin-top:2px}.friend-status-msg.urgent{color:#22c55e;font-weight:700}.friend-status-dot.green{background:#22c55e;box-shadow:0 0 8px #22c55e99}.friend-status-dot.yellow{background:#eab308;box-shadow:0 0 6px #eab30880}.friend-status-dot.gray{background:#666}.victory-confetti{position:fixed;top:-20px;width:12px;height:12px;border-radius:2px;z-index:9999;pointer-events:none;animation:victoryConfettiFall linear forwards}@keyframes victoryConfettiFall{0%{transform:translateY(0) rotate(0) scale(1);opacity:1}to{transform:translateY(110vh) rotate(1080deg) scale(.5);opacity:0}}.victory-text.twoplayer-win{font-size:3rem!important;animation:twoPlayerWinPulse .5s ease-out}@keyframes twoPlayerWinPulse{0%{transform:scale(.5);opacity:0}50%{transform:scale(1.2)}to{transform:scale(1);opacity:1}}.friend-toast{position:fixed;top:80px;right:20px;background:linear-gradient(135deg,#22c55ef2,#16a34af2);border:2px solid #22c55e;border-radius:16px;padding:15px 25px;display:flex;align-items:center;gap:12px;z-index:9500;transform:translate(120%);transition:transform .4s cubic-bezier(.175,.885,.32,1.275);box-shadow:0 8px 30px #22c55e66}.friend-toast.show{transform:translate(0)}.friend-toast.battle{background:linear-gradient(135deg,#ef4444f2,#dc2626f2);border-color:#ef4444;box-shadow:0 8px 30px #ef444466}.friend-toast.result{background:linear-gradient(135deg,#a855f7f2,#8b5cf6f2);border-color:#a855f7;box-shadow:0 8px 30px #a855f766}.toast-emoji{font-size:1.8rem;animation:toastEmojiPop .5s ease-out}@keyframes toastEmojiPop{0%{transform:scale(0) rotate(-20deg)}50%{transform:scale(1.3) rotate(10deg)}to{transform:scale(1) rotate(0)}}.toast-message{color:#fff;font-weight:700;font-size:1.1rem;text-shadow:0 2px 4px rgba(0,0,0,.3)}.welcome-back-toast{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%) scale(.8);background:linear-gradient(135deg,#1a1a2e,#16213e);border:3px solid #ffcc00;border-radius:24px;padding:30px 40px;z-index:9600;text-align:center;opacity:0;transition:all .4s cubic-bezier(.175,.885,.32,1.275);box-shadow:0 20px 60px #00000080,0 0 40px #ffcc004d;max-width:90vw}.welcome-back-toast.show{opacity:1;transform:translate(-50%,-50%) scale(1)}.welcome-back-header{font-size:1.8rem;font-weight:700;color:#fc0;margin-bottom:20px;text-shadow:0 0 15px rgba(255,204,0,.5)}.welcome-back-activities{display:flex;flex-direction:column;gap:12px;margin-bottom:25px}.activity-item{font-size:1.3rem;color:#fff;padding:12px 20px;background:#ffffff1a;border-radius:12px;animation:activitySlideIn .5s ease-out backwards}.activity-item:nth-child(1){animation-delay:.2s}.activity-item:nth-child(2){animation-delay:.4s}.activity-item:nth-child(3){animation-delay:.6s}@keyframes activitySlideIn{0%{transform:translate(-30px);opacity:0}to{transform:translate(0);opacity:1}}.welcome-back-btn{background:linear-gradient(135deg,#22c55e,#16a34a);color:#fff;border:none;padding:15px 35px;font-size:1.2rem;font-weight:700;border-radius:25px;cursor:pointer;box-shadow:0 4px 20px #22c55e66;transition:transform .2s,box-shadow .2s;animation:welcomeBtnPulse 2s infinite}.welcome-back-btn:hover{transform:scale(1.05);box-shadow:0 6px 25px #22c55e80}@keyframes welcomeBtnPulse{0%,to{box-shadow:0 4px 20px #22c55e66}50%{box-shadow:0 4px 30px #22c55eb3}}.friend-item.pending{animation:friendPendingPulse 1.5s ease-in-out infinite;border-color:#22c55e!important}@keyframes friendPendingPulse{0%,to{box-shadow:0 0 10px #22c55e4d;transform:scale(1)}50%{box-shadow:0 0 25px #22c55e99;transform:scale(1.02)}}.friend-status-dot.green{animation:dotPulse 1s ease-in-out infinite}@keyframes dotPulse{0%,to{transform:scale(1)}50%{transform:scale(1.3)}}.friend-item.result-ready{animation:resultReadyPulse 1s ease-in-out infinite;border-color:#a855f7!important;background:linear-gradient(135deg,#a855f726,#8b5cf626)!important}@keyframes resultReadyPulse{0%,to{box-shadow:0 0 15px #a855f766}50%{box-shadow:0 0 30px #a855f7b3,0 0 50px #a855f74d}}.friend-item.result-ready:before{content:"🏆";position:absolute;top:-8px;right:-8px;font-size:1.5rem;animation:trophyBounce 1s ease-in-out infinite}@keyframes trophyBounce{0%,to{transform:translateY(0) rotate(-10deg)}50%{transform:translateY(-5px) rotate(10deg)}}.friend-item{position:relative}@media(max-width:480px){.friends-screen{padding:50px 15px 15px}.friends-screen-title{font-size:1.5rem}.friends-screen-list{grid-template-columns:repeat(2,1fr);gap:8px;padding:10px;max-height:280px}.friend-screen-item{padding:10px 8px}.friend-screen-name{font-size:.95rem;margin-top:24px}.friend-screen-item:after{width:32px;height:32px}.friend-screen-stats{font-size:.7rem;padding:3px 8px}.friends-screen-actions{flex-direction:column;gap:10px}.invite-friend-btn,.friends-screen .back-btn{width:100%;text-align:center}}.messages-btn{background:linear-gradient(135deg,#f69,#c36);color:#fff;box-shadow:0 0 15px #ff66994d;position:relative}.messages-badge{position:absolute;top:-5px;right:-5px;background:red;color:#fff;font-size:.65rem;padding:2px 5px;border-radius:10px;font-weight:700;display:none;animation:badgePop .3s ease-out}.messages-badge.show{display:block}.messages-screen{position:fixed;top:0;left:0;width:100%;height:100%;background:linear-gradient(135deg,#1a0a2e,#0d0d1a);z-index:600;display:flex;flex-direction:column;padding:55px 20px 20px;opacity:0;pointer-events:none;transition:opacity .3s}.messages-screen.show{opacity:1;pointer-events:auto}.messages-title{font-size:1.8rem;font-weight:700;text-align:center;color:#f69;text-shadow:0 0 20px rgba(255,102,153,.5);margin-bottom:5px}.messages-subtitle{text-align:center;color:#aaa;font-size:.9rem;margin-bottom:15px}.messages-list{flex:1;overflow-y:auto;background:#0006;border-radius:12px;padding:12px;margin-bottom:15px;display:flex;flex-direction:column;gap:8px}.message-item{background:#ffffff14;border-radius:12px;padding:10px 14px;border-left:3px solid #ff6699}.message-item.mine{border-left-color:#0f8;background:#00ff881a}.message-header{display:flex;align-items:center;gap:8px;margin-bottom:5px}.message-author{font-weight:700;color:#f69;font-size:.85rem}.message-item.mine .message-author{color:#0f8}.message-time{font-size:.7rem;color:#888;margin-left:auto}.message-delete-btn{background:none;border:none;color:#aaa;cursor:pointer;font-size:.85rem;padding:2px 6px;border-radius:4px;line-height:1}.message-actions{display:flex;gap:2px;margin-left:auto}.message-edit-btn{background:none;border:none;color:#aaa;cursor:pointer;font-size:.85rem;padding:2px 6px;border-radius:4px;line-height:1}.message-edit-btn:hover{color:#4af;background:#44aaff26}.message-delete-btn:hover{color:#f44;background:#ff444426}.message-edit-input{width:100%;padding:6px 8px;border:1px solid #44aaff;border-radius:6px;background:#0000004d;color:#fff;font-size:.9rem;outline:none;margin-bottom:6px}.message-edit-buttons{display:flex;gap:6px}.message-edit-save,.message-edit-cancel{padding:4px 12px;border:none;border-radius:4px;cursor:pointer;font-size:.8rem}.message-edit-save{background:#4af;color:#fff}.message-edit-cancel{background:#ffffff1a;color:#aaa}.message-content{color:#fff;font-size:.95rem;line-height:1.4;word-break:break-word}.messages-loading{text-align:center;color:#888;padding:20px}.messages-error{text-align:center;color:#f66;background:#ff32321f;border:1px solid rgba(255,50,50,.3);border-radius:8px;padding:12px 16px;margin:8px 0;font-size:.9rem;animation:errorFadeIn .3s ease}@keyframes errorFadeIn{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}.chat-input-bar{display:flex;align-items:center;gap:8px;padding:8px 12px;background:#ffffff14;border:2px solid rgba(255,255,255,.15);border-radius:28px;margin-bottom:10px}.chat-mic-btn{width:40px;height:40px;border-radius:50%;border:none;background:#ffffff1a;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all .2s}.chat-mic-btn:hover{background:#fff3}.chat-mic-btn.recording{background:#f33;animation:micPulse 1s infinite}.chat-mic-btn.processing{background:#fa0}.chat-mic-icon{font-size:1.2rem;line-height:1}@keyframes micPulse{0%,to{box-shadow:0 0 #ff323266}50%{box-shadow:0 0 0 10px #ff323200}}#audio-visualizer{display:none;align-items:center;gap:3px;height:30px;padding:0 6px}.viz-bar{width:4px;height:4px;background:#f33;border-radius:2px;transition:height .08s ease}.chat-text-input{flex:1;padding:10px 4px;background:transparent;border:none;color:#fff;font-size:1rem;outline:none;min-width:0}.chat-text-input::placeholder{color:#777}.chat-send-btn{width:40px;height:40px;border-radius:50%;border:none;background:linear-gradient(135deg,#0c6,#0a4);color:#fff;font-size:1.2rem;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all .2s}.chat-send-btn:hover{transform:scale(1.1);background:linear-gradient(135deg,#0e7,#0c5)}.chat-send-btn:disabled{opacity:.4;cursor:not-allowed;transform:none}.dm-screen{position:fixed;top:0;left:0;width:100%;height:100%;background:linear-gradient(135deg,#0a1a2e,#0d0d1a);z-index:650;display:flex;flex-direction:column;padding:55px 20px 20px;opacity:0;pointer-events:none;transition:opacity .3s}.dm-screen.show{opacity:1;pointer-events:auto}.dm-title{font-size:1.4rem;font-weight:700;text-align:center;color:#0af;text-shadow:0 0 15px rgba(0,170,255,.5);margin-bottom:15px}.dm-messages{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:8px;padding:10px;background:#0000004d;border-radius:12px;margin-bottom:15px}.dm-bubble{max-width:80%;padding:10px 14px;border-radius:16px;font-size:.95rem;line-height:1.4;word-break:break-word}.dm-bubble.them{align-self:flex-start;background:#ffffff26;border-bottom-left-radius:4px}.dm-bubble.me{align-self:flex-end;background:linear-gradient(135deg,#0a5,#084);border-bottom-right-radius:4px}.dm-bubble-time{font-size:.65rem;color:#888;margin-top:4px}.dm-bubble.me .dm-bubble-time{text-align:right;color:#fff9}.message-toast{position:fixed;bottom:100px;left:50%;transform:translate(-50%) translateY(20px);background:#000000e6;border:2px solid #ff6699;border-radius:12px;padding:12px 20px;color:#fff;font-size:.9rem;z-index:1000;opacity:0;transition:all .3s;pointer-events:none;display:flex;align-items:center;gap:8px}.message-toast.show{opacity:1;transform:translate(-50%) translateY(0)}.message-toast-emoji{font-size:1.2rem}@media(max-width:480px){.messages-screen,.dm-screen{padding:50px 12px 12px}.messages-title{font-size:1.4rem}.chat-text-input{font-size:16px}.dm-bubble{max-width:85%}}
