:root{--pokemon-red:#e3350d;--pokemon-red-light:#ff6b6b;--pokemon-red-dark:#c00;--pokeball-white:#fff;--pokeball-black:#2f2f2f;--pokemon-blue:#3b4cca;--pokemon-blue-light:#6890f0;--pokemon-blue-dark:#2a3a9b;--pokemon-yellow:#ffcb05;--pokemon-yellow-light:#ffe066;--pokemon-yellow-dark:#e6b800;--pokemon-gold:#b8860b;--pokemon-gold-light:#daa520;--pokemon-gold-dark:#996515;--bg-primary:#fff;--bg-secondary:#f8fafc;--bg-tertiary:#f1f5f9;--bg-card:#fff;--bg-card-hover:#f8fafc;--text-primary:#1e293b;--text-secondary:#475569;--text-tertiary:#94a3b8;--text-inverse:#fff;--border-light:#e2e8f0;--border-medium:#cbd5e1;--border-dark:#94a3b8;--shadow-sm:0 1px 2px 0 rgba(0,0,0,.05);--shadow-md:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);--shadow-lg:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);--shadow-xl:0 20px 25px -5px rgba(0,0,0,.1),0 8px 10px -6px rgba(0,0,0,.1);--radius-sm:4px;--radius-md:8px;--radius-lg:12px;--radius-xl:16px;--radius-2xl:24px;--radius-full:9999px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--space-16:64px;--font-sans:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;--font-mono:"SF Mono",Monaco,"Cascadia Code","Roboto Mono",Consolas,monospace;--transition-fast:150ms ease;--transition-normal:250ms ease;--transition-slow:350ms ease;--type-normal:#a8a878;--type-fire:#f08030;--type-water:#6890f0;--type-electric:#f8d030;--type-grass:#78c850;--type-ice:#98d8d8;--type-fighting:#c03028;--type-poison:#a040a0;--type-ground:#e0c068;--type-flying:#a890f0;--type-psychic:#f85888;--type-bug:#a8b820;--type-rock:#b8a038;--type-ghost:#705898;--type-dragon:#7038f8;--type-dark:#705848;--type-steel:#b8b8d0;--type-fairy:#ee99ac}@media (prefers-color-scheme:dark){:root{--bg-primary:#0d1b2a;--bg-secondary:#1b2838;--bg-tertiary:#253649;--bg-card:#1b2838;--bg-card-hover:#253649;--text-primary:#fff;--text-secondary:#b8c5d6;--text-tertiary:#7a8fa6;--border-light:#2e4057;--border-medium:#3d5473;--border-dark:#5a7699;--pokemon-blue:#5a8ff0;--pokemon-blue-light:#7aa8f0;--pokemon-blue-dark:#3b6bca}}*,:after,:before{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;scroll-behavior:smooth;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font-sans);background-color:var(--bg-primary);color:var(--text-primary);line-height:1.6;min-height:100vh}img{max-width:100%;height:auto;display:block}a{color:var(--pokemon-blue);text-decoration:none;transition:color var(--transition-fast)}a:hover{color:var(--pokemon-blue-dark)}button{cursor:pointer;border:none;background:none}button,input,select,textarea{font-family:inherit;font-size:inherit}h1,h2,h3,h4,h5,h6{font-weight:700;line-height:1.3;color:var(--text-primary)}h1{font-size:2.5rem}h2{font-size:2rem}h3{font-size:1.5rem}h4{font-size:1.25rem}h5{font-size:1.125rem}h6{font-size:1rem}.container{max-width:1280px;margin:0 auto;padding:0 var(--space-4)}@media (min-width:768px){.container{padding:0 var(--space-6)}}@media (min-width:1024px){.container{padding:0 var(--space-8)}}.card{background:var(--bg-card);border:1px solid var(--border-light);border-radius:var(--radius-lg);padding:var(--space-4);transition:all var(--transition-normal)}.card:hover{background:var(--bg-card-hover);box-shadow:var(--shadow-md)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-3) var(--space-5);border-radius:var(--radius-md);font-weight:600;transition:all var(--transition-fast)}.btn-primary{background:var(--pokemon-red);color:var(--text-inverse)}.btn-primary:hover{background:var(--pokemon-red-dark)}.btn-secondary{background:var(--bg-secondary);color:var(--text-primary);border:1px solid var(--border-medium)}.btn-secondary:hover{background:var(--bg-tertiary)}.btn-outline{background:transparent;color:var(--pokemon-red);border:2px solid var(--pokemon-red)}.btn-outline:hover{background:var(--pokemon-red);color:var(--text-inverse)}.type-badge{display:inline-flex;align-items:center;padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);font-size:.75rem;font-weight:600;text-transform:uppercase;color:#fff}.type-normal{background:var(--type-normal)}.type-fire{background:var(--type-fire)}.type-water{background:var(--type-water)}.type-electric{background:var(--type-electric);color:#333}.type-grass{background:var(--type-grass)}.type-ice{background:var(--type-ice);color:#333}.type-fighting{background:var(--type-fighting)}.type-poison{background:var(--type-poison)}.type-ground{background:var(--type-ground);color:#333}.type-flying{background:var(--type-flying)}.type-psychic{background:var(--type-psychic)}.type-bug{background:var(--type-bug)}.type-rock{background:var(--type-rock)}.type-ghost{background:var(--type-ghost)}.type-dragon{background:var(--type-dragon)}.type-dark{background:var(--type-dark)}.type-steel{background:var(--type-steel);color:#333}.type-fairy{background:var(--type-fairy)}.stat-bar{height:8px;background:var(--bg-tertiary);overflow:hidden}.stat-bar,.stat-bar-fill{border-radius:var(--radius-full)}.stat-bar-fill{height:100%;transition:width var(--transition-normal)}.search-input{width:100%;padding:var(--space-3) var(--space-4);padding-left:var(--space-10);border:2px solid var(--border-light);border-radius:var(--radius-full);font-size:1rem;background:var(--bg-card);transition:all var(--transition-fast)}.search-input:focus{outline:none;border-color:var(--pokemon-blue);box-shadow:0 0 0 3px rgba(59,76,202,.1)}.grid{display:grid;grid-gap:var(--space-4);gap:var(--space-4)}.grid-cols-2{grid-template-columns:repeat(2,1fr)}.grid-cols-3{grid-template-columns:repeat(3,1fr)}.grid-cols-4{grid-template-columns:repeat(4,1fr)}@media (max-width:768px){.grid-cols-2,.grid-cols-3,.grid-cols-4{grid-template-columns:1fr}}@media (min-width:768px) and (max-width:1024px){.grid-cols-3,.grid-cols-4{grid-template-columns:repeat(2,1fr)}}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-2{gap:var(--space-2)}.gap-4{gap:var(--space-4)}.gap-6{gap:var(--space-6)}.text-center{text-align:center}.text-sm{font-size:.875rem}.text-lg{font-size:1.125rem}.text-xl{font-size:1.25rem}.text-2xl{font-size:1.5rem}.font-medium{font-weight:500}.font-semibold{font-weight:600}.font-bold{font-weight:700}.mt-4{margin-top:var(--space-4)}.mt-6{margin-top:var(--space-6)}.mt-8{margin-top:var(--space-8)}.mb-4{margin-bottom:var(--space-4)}.mb-6{margin-bottom:var(--space-6)}.mb-8{margin-bottom:var(--space-8)}.p-4{padding:var(--space-4)}.p-6{padding:var(--space-6)}.py-4{padding-top:var(--space-4);padding-bottom:var(--space-4)}.py-8{padding-top:var(--space-8);padding-bottom:var(--space-8)}.px-4{padding-left:var(--space-4);padding-right:var(--space-4)}.px-6{padding-left:var(--space-6);padding-right:var(--space-6)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.animate-fadeIn{animation:fadeIn var(--transition-normal)}.animate-slideUp{animation:slideUp var(--transition-normal)}.animate-bounce{animation:bounce 1s infinite}@keyframes pokeball-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.loading-pokeball{width:48px;height:48px;border-radius:50%;background:linear-gradient(to bottom,var(--pokemon-red) 0,var(--pokemon-red) 45%,var(--pokeball-black) 45%,var(--pokeball-black) 55%,var(--pokeball-white) 55%,var(--pokeball-white) 100%);position:relative;animation:pokeball-spin 1s linear infinite}.loading-pokeball:after{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:16px;height:16px;background:var(--pokeball-white);border:3px solid var(--pokeball-black);border-radius:50%}@media (max-width:768px){.hidden-mobile{display:none!important}}@media (min-width:769px){.hidden-desktop{display:none!important}}.skip-link{position:absolute;top:-40px;left:0;background:var(--pokemon-red);color:#fff;padding:var(--space-2) var(--space-4);z-index:100;transition:top var(--transition-fast)}.skip-link:focus{top:0}:focus-visible{outline:2px solid var(--pokemon-blue);outline-offset:2px}