:root{--bg:#0f0f1a;--surface:#1a1a2e;--surface-elev:#25253e;--surface-high:#2e2e50;--text-primary:#f0f0f5;--text-secondary:#88a;--text-muted:#55556a;--accent:#ff5350;--accent-dim:#ff535026;--accent-glow:#ff535066;--border:#ffffff0f;--border-bright:#ffffff1f;--radius-sm:8px;--radius-md:14px;--radius-lg:20px;--radius-xl:24px;--radius-full:999px;--shadow-card:0 4px 24px #00000073, 0 1px 4px #0000004d;--shadow-modal:0 24px 80px #000000b3, 0 8px 32px #00000080;--ease-out:cubic-bezier(.22, 1, .36, 1);--ease-spring:cubic-bezier(.34, 1.56, .64, 1);--transition:.22s var(--ease-out);--type-normal:#9099a1;--type-fire:#ff9741;--type-water:#3692dc;--type-electric:#fbd100;--type-grass:#38bf4b;--type-ice:#70ccbd;--type-fighting:#ce416b;--type-poison:#ab6ac8;--type-ground:#d97845;--type-flying:#89aae3;--type-psychic:#ff6675;--type-bug:#83c300;--type-rock:#c9bb8a;--type-ghost:#5269ad;--type-dragon:#006fc9;--type-dark:#5b5365;--type-steel:#5a8ea2;--type-fairy:#fb89eb}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}body{font-feature-settings:"cv02", "cv03", "cv04", "cv11";background-color:var(--bg);color:var(--text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100vh;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif;line-height:1.5;overflow-x:hidden}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:var(--bg)}::-webkit-scrollbar-thumb{background:var(--surface-high);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}*{scrollbar-width:thin;scrollbar-color:var(--surface-high) var(--bg)}img{max-width:100%;display:block}button{cursor:pointer;font-family:inherit;font-size:inherit;color:inherit;background:0 0;border:none}input,select{font-family:inherit;font-size:inherit;color:inherit}a{color:inherit;text-decoration:none}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes slideUp{0%{opacity:0;transform:translateY(32px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes slideDown{0%{opacity:1;transform:translateY(0)scale(1)}to{opacity:0;transform:translateY(24px)scale(.97)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.45}}@keyframes shimmer{0%{background-position:-200%}to{background-position:200%}}@keyframes pokeball-bounce{0%,to{transform:translateY(0)rotate(0)}25%{transform:translateY(-18px)rotate(-15deg)}50%{transform:translateY(0)rotate(0)}75%{transform:translateY(-8px)rotate(8deg)}}@keyframes glow-pulse{0%,to{box-shadow:0 0 12px var(--accent-glow), 0 0 32px var(--accent-dim)}50%{box-shadow:0 0 24px var(--accent-glow), 0 0 56px var(--accent-dim)}}.header{z-index:100;-webkit-backdrop-filter:blur(20px)saturate(160%);border-bottom:1px solid var(--border);background:#0f0f1ad1;align-items:center;height:64px;padding:0 2rem;display:flex;position:sticky;top:0}.header-brand{flex-direction:row;align-items:center;gap:.875rem;display:flex}.header-icon{border:2.5px solid #fff3;border-radius:50%;flex-shrink:0;width:36px;height:36px;position:relative;overflow:hidden;box-shadow:0 2px 10px #0006}.header-icon:before{content:"";background:linear-gradient(#e8352f 0% 48%,#1a1a2e 48% 100%);position:absolute;inset:0}.header-icon:after{content:"";background:var(--text-primary);z-index:2;border:2.5px solid #0f0f1ae6;border-radius:50%;width:11px;height:11px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 0 0 2px #ffffff26}.header-title{letter-spacing:-.02em;color:var(--text-primary);font-size:1.5rem;font-weight:700;line-height:1.1}.header-title span{color:var(--accent)}.header-count{letter-spacing:.04em;color:var(--text-muted);background:var(--surface-elev);border:1px solid var(--border);border-radius:var(--radius-full);align-items:center;margin-left:auto;padding:2px 10px;font-size:.7rem;font-weight:600;display:inline-flex}.filters{z-index:90;-webkit-backdrop-filter:blur(20px)saturate(140%);border-bottom:1px solid var(--border);background:#0f0f1abf;flex-direction:column;gap:.75rem;padding:.875rem 2rem;display:flex;position:sticky;top:64px}.search-wrapper{width:100%;position:relative}.search-icon{color:var(--text-muted);pointer-events:none;transition:color var(--transition);align-items:center;display:flex;position:absolute;top:50%;left:1rem;transform:translateY(-50%)}.search-wrapper:focus-within .search-icon{color:var(--accent)}.search-input{background:var(--surface);border:1.5px solid var(--border-bright);border-radius:var(--radius-md);width:100%;height:52px;color:var(--text-primary);transition:border-color var(--transition), box-shadow var(--transition), background var(--transition);outline:none;padding:0 1.25rem 0 3rem;font-size:.95rem;font-weight:400}.search-input::placeholder{color:var(--text-muted)}.search-input:hover{background:var(--surface-elev);border-color:#ffffff2e}.search-input:focus{border-color:var(--accent);background:var(--surface-elev);box-shadow:0 0 0 3px var(--accent-dim), 0 0 16px var(--accent-dim)}.filter-pills-row{-ms-overflow-style:none;scrollbar-width:none;flex-direction:row;gap:.5rem;padding-bottom:2px;display:flex;overflow-x:auto}.filter-pills-row::-webkit-scrollbar{display:none}.type-pill{border-radius:var(--radius-full);letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;cursor:pointer;background:var(--type-color,var(--surface-elev));color:#fff;opacity:.45;transition:opacity var(--transition), transform var(--transition), box-shadow var(--transition), border-color var(--transition);-webkit-user-select:none;user-select:none;border:1.5px solid #0000;align-items:center;gap:.3rem;padding:5px 14px;font-size:.72rem;font-weight:600;display:inline-flex}.type-pill:hover{opacity:.75;transform:translateY(-1px)}.type-pill.active{opacity:1;border-color:#ffffff59;transform:scale(1.06)translateY(-1px);box-shadow:0 2px 12px #0000004d}.gen-pill{border-radius:var(--radius-full);letter-spacing:.04em;white-space:nowrap;cursor:pointer;background:var(--surface-elev);color:var(--text-secondary);border:1.5px solid var(--border-bright);opacity:.7;transition:opacity var(--transition), transform var(--transition), border-color var(--transition), color var(--transition), box-shadow var(--transition);-webkit-user-select:none;user-select:none;align-items:center;padding:5px 14px;font-size:.72rem;font-weight:600;display:inline-flex}.gen-pill:hover{opacity:1;color:var(--text-primary);border-color:var(--accent)}.gen-pill.active{opacity:1;color:var(--accent);border-color:var(--accent);background:var(--accent-dim);box-shadow:0 0 12px var(--accent-dim);transform:scale(1.04)}.filter-controls{flex-flow:wrap;align-items:center;gap:.75rem;display:flex}.filter-controls .filter-pills-row{flex:1;min-width:0}.sort-select{background:var(--surface-elev);border:1.5px solid var(--border-bright);border-radius:var(--radius-sm);height:36px;color:var(--text-secondary);cursor:pointer;appearance:none;transition:border-color var(--transition), color var(--transition), background-color var(--transition);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2355556a' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-position:right .75rem center;background-repeat:no-repeat;outline:none;padding:0 2.25rem 0 .875rem;font-size:.8rem;font-weight:500}.sort-select:hover{border-color:var(--border-bright);color:var(--text-primary);background-color:var(--surface-high)}.sort-select:focus{border-color:var(--accent);color:var(--text-primary);box-shadow:0 0 0 2px var(--accent-dim)}.sort-select option{background:var(--surface-elev);color:var(--text-primary)}.btn-clear{border-radius:var(--radius-sm);height:36px;color:var(--text-muted);border:1.5px solid var(--border-bright);transition:color var(--transition), border-color var(--transition), background var(--transition);background:0 0;align-items:center;gap:.375rem;padding:0 .875rem;font-size:.8rem;font-weight:500;display:inline-flex}.btn-clear:hover{color:var(--accent);border-color:var(--accent);background:var(--accent-dim)}.main{max-width:1400px;margin:0 auto;padding:2rem}.stats-bar{flex-direction:row;align-items:center;gap:.75rem;margin-bottom:1.25rem;display:flex}.stats-count{color:var(--text-muted);letter-spacing:.02em;font-size:.78rem}.stats-count strong{color:var(--text-secondary);font-weight:600}.pokemon-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:1rem;min-height:50vh;display:grid}.pokemon-card{background:var(--surface);background:color-mix(in srgb, var(--card-type-color,var(--surface-elev)) 8%, var(--surface));border:1px solid var(--border);border-radius:var(--radius-lg);cursor:pointer;transition:transform .25s var(--ease-out), box-shadow .25s var(--ease-out), border-color .22s var(--ease-out);padding:1.25rem;position:relative;overflow:hidden}.pokemon-card.entering{animation:fadeInUp .4s var(--ease-out) both;animation-delay:calc(var(--card-index,0) * 40ms)}.pokemon-card:before{content:"";pointer-events:none;border:18px solid #ffffff08;border-radius:50%;width:110px;height:110px;position:absolute;top:-28px;right:-28px}.pokemon-card:after{content:"";pointer-events:none;border:12px solid #ffffff08;border-radius:50%;width:70px;height:70px;position:absolute;top:-8px;right:-8px}.pokemon-card:hover{border-color:var(--border-bright);box-shadow:0 16px 48px #00000080, 0 0 0 1px var(--border-bright), 0 8px 32px color-mix(in srgb, var(--card-type-color,transparent) 30%, transparent);transform:translateY(-8px)}.pokemon-card:active{transform:translateY(-4px)scale(.98)}.pokemon-number{color:var(--text-muted);opacity:.5;letter-spacing:.06em;margin-bottom:.5rem;font-size:.7rem;font-weight:600}.pokemon-img-wrapper{aspect-ratio:1;background:#ffffff08;border-radius:12px;justify-content:center;align-items:center;height:120px;margin-bottom:.875rem;display:flex;position:relative}.pokemon-img{object-fit:contain;filter:drop-shadow(0 4px 12px #00000080);width:120px;height:120px;transition:transform .3s var(--ease-spring), opacity .35s ease;image-rendering:-webkit-optimize-contrast;image-rendering:crisp-edges;opacity:0}.pokemon-img.loaded{opacity:1}.pokemon-card:hover .pokemon-img{transform:scale(1.1)translateY(-2px)}.pokemon-name{color:var(--text-primary);text-transform:capitalize;white-space:nowrap;text-overflow:ellipsis;letter-spacing:-.01em;margin-bottom:.5rem;font-size:.95rem;font-weight:700;overflow:hidden}.pokemon-types{flex-flow:wrap;gap:.4rem;display:flex}.type-badge{border-radius:var(--radius-full);letter-spacing:.06em;text-transform:uppercase;color:#fff;background:var(--type-color,var(--type-normal));white-space:nowrap;align-items:center;padding:4px 14px;font-size:.72rem;font-weight:700;display:inline-flex}.type-badge[data-type=electric],.type-badge[data-type=ice],.type-badge[data-type=normal],.type-badge[data-type=ground],.type-badge[data-type=rock],.type-badge[data-type=steel]{color:#141424e6}.loading-overlay{z-index:999;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);animation:fadeIn .3s var(--ease-out) both;background:#0f0f1af2;flex-direction:column;justify-content:center;align-items:center;gap:1.5rem;display:flex;position:fixed;inset:0}.pokeball-loader{border:3px solid #ffffff26;border-radius:50%;width:80px;height:80px;animation:1s ease-in-out infinite pokeball-bounce,1.8s linear infinite spin;position:relative;overflow:hidden;box-shadow:0 0 30px #e8352f4d}.pokeball-loader:before{content:"";background:linear-gradient(#e8352f 0% 47%,#2e2e50 47% 100%);position:absolute;inset:0}.pokeball-loader:after{content:"";background:var(--text-primary);border:4px solid var(--bg);z-index:2;border-radius:50%;width:20px;height:20px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 0 0 3px #ffffff40}.loading-text{letter-spacing:.14em;text-transform:uppercase;color:var(--text-muted);font-size:.78rem;font-weight:600;animation:1.4s ease-in-out infinite pulse}.loading-overlay.fade-out{animation:fadeOut .5s var(--ease-out) forwards;pointer-events:none}.scroll-sentinel{grid-column:1/-1;justify-content:center;align-items:center;padding:2.5rem;display:flex}.mini-spinner{border:3px solid var(--border-bright);border-top-color:var(--accent);border-radius:50%;width:32px;height:32px;animation:.7s linear infinite spin}.modal-overlay{z-index:500;-webkit-backdrop-filter:blur(8px);animation:fadeIn .22s var(--ease-out) both;background:#000000a6;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.modal-overlay.closing{animation:.25s forwards fadeOut}.modal-overlay.closing .modal{animation:slideDown .3s var(--ease-out) forwards}.modal{background:var(--surface);border:1px solid var(--border-bright);border-radius:var(--radius-xl);width:100%;max-width:480px;max-height:90vh;box-shadow:var(--shadow-modal);animation:slideUp .38s var(--ease-spring) both;flex-direction:column;display:flex;position:relative;overflow:hidden}.modal-hero{background:linear-gradient(135deg, var(--accent) 0%, #0f0f1a 100%);background:linear-gradient(135deg, color-mix(in srgb, var(--modal-type-color,var(--accent)) 70%, #1a1a2e) 0%, color-mix(in srgb, var(--modal-type-color,var(--accent)) 40%, #0f0f1a) 100%);flex-shrink:0;height:200px;position:relative;overflow:visible}.modal-hero:before{content:"";pointer-events:none;border:48px solid #ffffff0f;border-radius:50%;width:280px;height:280px;position:absolute;top:-60px;right:-60px}.modal-hero:after{content:"";pointer-events:none;border:28px solid #ffffff0a;border-radius:50%;width:140px;height:140px;position:absolute;top:20px;right:20px}.modal-hero-meta{z-index:2;position:absolute;top:1.25rem;left:1.5rem}.modal-number{color:#fff9;letter-spacing:.08em;margin-bottom:.2rem;font-size:.75rem;font-weight:600;display:block}.modal-name{color:#fff;text-transform:capitalize;letter-spacing:-.02em;text-shadow:0 2px 12px #0006;font-size:1.75rem;font-weight:800;line-height:1.1;display:block}.modal-types{z-index:2;flex-wrap:wrap;gap:.4rem;display:flex;position:absolute;bottom:1.125rem;left:1.5rem}.modal-pokemon-img{object-fit:contain;z-index:3;filter:drop-shadow(0 12px 32px #0009);width:220px;height:220px;transition:transform .35s var(--ease-spring);pointer-events:none;position:absolute;bottom:-60px;right:1rem}.modal:hover .modal-pokemon-img{transform:scale(1.05)rotate(-3deg)}.modal-close{z-index:10;-webkit-backdrop-filter:blur(8px);color:#fffc;width:36px;height:36px;transition:background var(--transition), color var(--transition), transform var(--transition);background:#0f0f1a8c;border:1px solid #ffffff1f;border-radius:50%;justify-content:center;align-items:center;display:flex;position:absolute;top:1rem;right:1rem}.modal-close:hover{color:#fff;background:#ff535040;transform:scale(1.08)}.modal-close:active{transform:scale(.94)}.modal-body{scrollbar-width:thin;scrollbar-color:var(--surface-high) transparent;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;flex:1;padding:3.5rem 0 1.5rem;overflow-y:auto}.modal-body::-webkit-scrollbar{width:4px}.modal-body::-webkit-scrollbar-track{background:0 0}.modal-body::-webkit-scrollbar-thumb{background:var(--surface-high);border-radius:var(--radius-full)}.modal-tabs{z-index:20;background:var(--surface);border-bottom:1px solid var(--border);flex-direction:row;gap:0;padding:0 1.5rem;display:flex;position:sticky;top:0}.tab-btn{letter-spacing:.04em;color:var(--text-muted);cursor:pointer;transition:color var(--transition);white-space:nowrap;background:0 0;border:none;padding:.875rem 1rem;font-size:.82rem;font-weight:600;position:relative}.tab-btn:after{content:"";border-radius:var(--radius-full) var(--radius-full) 0 0;background:var(--modal-type-color,var(--accent));height:2.5px;transition:transform .25s var(--ease-spring);position:absolute;bottom:-1px;left:0;right:0;transform:scaleX(0)}.tab-btn:hover{color:var(--text-secondary)}.tab-btn.active{color:var(--text-primary)}.tab-btn.active:after{transform:scaleX(1)}.tab-panel{animation:fadeInUp .28s var(--ease-out) both;padding:1.25rem 1.5rem;display:none}.tab-panel.active{display:block}.about-description{color:var(--text-secondary);background:var(--surface-elev);border:1px solid var(--border);border-radius:var(--radius-md);margin-bottom:1.25rem;padding:1rem;font-size:.875rem;line-height:1.7}.about-grid{grid-template-columns:1fr 1fr;gap:.625rem;display:grid}.about-item{background:var(--surface-elev);border:1px solid var(--border);border-radius:var(--radius-md);flex-direction:column;gap:.3rem;padding:.875rem;display:flex}.about-label{letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);font-size:.65rem;font-weight:700}.about-value{color:var(--text-primary);letter-spacing:-.01em;font-size:.95rem;font-weight:700}.stats-list{flex-direction:column;gap:.75rem;display:flex}.stat-row{grid-template-columns:90px 40px 1fr;align-items:center;gap:.75rem;display:grid}.stat-label{letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);white-space:nowrap;font-size:.68rem;font-weight:700}.stat-value{color:var(--text-primary);text-align:right;font-variant-numeric:tabular-nums;font-size:.9rem;font-weight:700}.stat-bar-track{background:var(--surface-elev);border-radius:var(--radius-full);height:8px;position:relative;overflow:hidden}.stat-bar-fill{border-radius:var(--radius-full);height:100%;transition:width .8s var(--ease-out);position:relative;overflow:hidden}.stat-bar-fill:after{content:"";background:linear-gradient(90deg,#0000 0%,#ffffff40 50%,#0000 100%) 0 0/200% 100%;animation:2.2s ease-in-out infinite shimmer;position:absolute;inset:0}.stat-bar-fill.tier-low{background:linear-gradient(90deg,#c0392b,#e74c3c)}.stat-bar-fill.tier-mid{background:linear-gradient(90deg,#d35400,#e67e22)}.stat-bar-fill.tier-good{background:linear-gradient(90deg,#27ae60,#2ecc71)}.stat-bar-fill.tier-great{background:linear-gradient(90deg,#16a085,#1abc9c)}.stat-total{border-top:1px solid var(--border);grid-template-columns:90px 40px 1fr;align-items:center;gap:.75rem;margin-top:.25rem;padding-top:.75rem;display:grid}.stat-total .stat-label{color:var(--text-secondary);font-size:.72rem}.stat-total .stat-value{color:var(--text-primary);font-size:.95rem}.evolution-chain{flex-flow:wrap;justify-content:center;align-items:center;gap:.25rem;padding:.5rem 0;display:flex}.evo-stage{cursor:pointer;border-radius:var(--radius-lg);transition:transform .25s var(--ease-spring), background var(--transition), border-color var(--transition);border:1.5px solid #0000;flex-direction:column;align-items:center;gap:.5rem;padding:.75rem;display:flex}.evo-stage:hover{background:var(--surface-elev);border-color:var(--border-bright);transform:translateY(-4px)}.evo-stage.current{background:var(--accent-dim);border-color:var(--accent)}.evo-img-wrapper{justify-content:center;align-items:center;width:80px;height:80px;display:flex;position:relative}.evo-img{object-fit:contain;filter:drop-shadow(0 4px 10px #0006);width:72px;height:72px;transition:transform .25s var(--ease-spring)}.evo-stage:hover .evo-img{transform:scale(1.1)}.evo-name{color:var(--text-secondary);text-transform:capitalize;text-align:center;letter-spacing:.01em;font-size:.78rem;font-weight:600}.evo-level{color:var(--text-muted);font-size:.65rem}.evo-arrow{color:var(--text-muted);flex-direction:column;flex-shrink:0;align-items:center;gap:.2rem;padding:0 .25rem;display:flex}.evo-arrow svg{opacity:.5}.evo-arrow-label{letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);text-align:center;max-width:56px;font-size:.6rem;font-weight:600;line-height:1.3}.back-to-top{z-index:200;background:var(--accent);color:#fff;width:44px;height:44px;box-shadow:var(--shadow-card);opacity:0;pointer-events:none;transition:opacity .25s var(--ease-out), transform .25s var(--ease-out);border:none;border-radius:50%;justify-content:center;align-items:center;display:flex;position:fixed;bottom:2rem;right:2rem;transform:translateY(8px)}.back-to-top.visible{opacity:1;pointer-events:auto;animation:2.5s ease-in-out infinite glow-pulse;transform:translateY(0)}.back-to-top:hover{transform:translateY(-3px)scale(1.06)}.back-to-top:active{transform:scale(.95)}.no-results{text-align:center;animation:fadeInUp .35s var(--ease-out) both;flex-direction:column;grid-column:1/-1;justify-content:center;align-items:center;gap:.875rem;padding:5rem 2rem;display:flex}.no-results-icon{opacity:.35;filter:grayscale();font-size:3.5rem;line-height:1}.no-results-title{color:var(--text-secondary);letter-spacing:-.01em;font-size:1.1rem;font-weight:700}.no-results-sub{color:var(--text-muted);max-width:280px;font-size:.875rem;line-height:1.6}.skeleton-base{background:linear-gradient(90deg, var(--surface-elev) 0%, var(--surface-high) 50%, var(--surface-elev) 100%);border-radius:var(--radius-sm);background-size:200% 100%;animation:1.6s ease-in-out infinite shimmer}.skeleton-img{border-radius:var(--radius-md);background:linear-gradient(90deg, var(--surface-elev) 0%, var(--surface-high) 50%, var(--surface-elev) 100%);background-size:200% 100%;width:120px;height:120px;animation:1.6s ease-in-out infinite shimmer}.skeleton-text{background:linear-gradient(90deg, var(--surface-elev) 0%, var(--surface-high) 50%, var(--surface-elev) 100%);border-radius:var(--radius-sm);background-size:200% 100%;width:80%;height:14px;animation:1.6s ease-in-out infinite shimmer}.skeleton-text.short{width:45%;height:10px}.skeleton-pill{border-radius:var(--radius-full);background:linear-gradient(90deg, var(--surface-elev) 0%, var(--surface-high) 50%, var(--surface-elev) 100%);background-size:200% 100%;width:56px;height:22px;animation:1.6s ease-in-out infinite shimmer}.pokemon-card.skeleton{pointer-events:none}.pokemon-card.skeleton .pokemon-img-wrapper{justify-content:center}:focus-visible{outline:2.5px solid var(--accent);outline-offset:3px;border-radius:var(--radius-sm)}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}[data-type=normal]{--type-color:var(--type-normal)}[data-type=fire]{--type-color:var(--type-fire)}[data-type=water]{--type-color:var(--type-water)}[data-type=electric]{--type-color:var(--type-electric)}[data-type=grass]{--type-color:var(--type-grass)}[data-type=ice]{--type-color:var(--type-ice)}[data-type=fighting]{--type-color:var(--type-fighting)}[data-type=poison]{--type-color:var(--type-poison)}[data-type=ground]{--type-color:var(--type-ground)}[data-type=flying]{--type-color:var(--type-flying)}[data-type=psychic]{--type-color:var(--type-psychic)}[data-type=bug]{--type-color:var(--type-bug)}[data-type=rock]{--type-color:var(--type-rock)}[data-type=ghost]{--type-color:var(--type-ghost)}[data-type=dragon]{--type-color:var(--type-dragon)}[data-type=dark]{--type-color:var(--type-dark)}[data-type=steel]{--type-color:var(--type-steel)}[data-type=fairy]{--type-color:var(--type-fairy)}.type-pill[data-type],.type-badge[data-type]{background:var(--type-color)}@media (width>=1200px){.pokemon-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}}@media (width>=480px) and (width<=768px){.pokemon-grid{grid-template-columns:repeat(3,1fr);gap:.75rem}.main{padding:1.25rem}.filters{padding:.75rem 1.25rem}}@media (width<=479px){.pokemon-grid{grid-template-columns:repeat(2,1fr);gap:.625rem}.main{padding:.875rem}.header{padding:0 1rem}.header-title{font-size:1.2rem}.filters{gap:.5rem;padding:.625rem .875rem}.search-input{height:44px;font-size:.875rem}.pokemon-card{padding:.875rem}.pokemon-img,.pokemon-img-wrapper{width:90px;height:90px}.pokemon-name{font-size:.82rem}.pokemon-number{font-size:.62rem}.modal-overlay{align-items:flex-end;padding:0}.modal{border-radius:var(--radius-xl) var(--radius-xl) 0 0;max-width:100%;max-height:88vh;animation:slideUp .38s var(--ease-spring) both}.modal-hero{height:160px}.modal-name{font-size:1.4rem}.modal-pokemon-img{width:160px;height:160px;bottom:-40px;right:.75rem}.modal-body{padding-top:2.5rem}.evolution-chain{flex-direction:column;align-items:center}.evo-arrow{flex-direction:column;transform:rotate(90deg)}.about-grid{grid-template-columns:1fr}.back-to-top{bottom:1.25rem;right:1.25rem}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.pokemon-card{animation:none}.pokeball-loader{animation:2s linear infinite spin}.loading-text{opacity:.7;animation:none}.stat-bar-fill:after,.back-to-top.visible{animation:none}}.container{max-width:1400px;margin:0 auto;padding:0 2rem}@media (width<=480px){.container{padding:0 1rem}}.truncate{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.capitalize{text-transform:capitalize}.flex-center{justify-content:center;align-items:center;display:flex}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}
