:root{--ink:#1f2328;--muted:#6b7280;--accent:#3b4cca;--accent-dark:#2a34a1;--outline:#151515;--shadow:0 14px 36px rgba(0, 0, 0, 0.12)}*{box-sizing:border-box}body,html{height:100%}body{font-family:"Fredoka",Arial,sans-serif;text-align:center;margin:0;padding:0;color:var(--ink);background:radial-gradient(circle at top left,#ff7675 0,#fab1a0 40%,transparent 80%),radial-gradient(circle at bottom right,#74b9ff 0,#a29bfe 40%,transparent 80%),linear-gradient(180deg,#ffeaa7 0,#fdfffc 100%);background-attachment:fixed}body::before{content:"";position:fixed;inset:0;background-image:repeating-linear-gradient(45deg,rgba(255,255,255,.12),rgba(255,255,255,.12) 20px,transparent 20px,transparent 40px);pointer-events:none;z-index:0}h1{color:var(--accent);font-size:32px;margin-top:20px}.cartoon-title{font-family:"Bangers",cursive;letter-spacing:1px;font-size:1.35rem;line-height:1}.navbar,body{position:relative}.navbar{border-bottom:4px solid #ffd166;box-shadow:0 6px 20px rgba(0,0,0,.15);z-index:2}.cartoon-search,.toggle-sound .switch{border:3px solid var(--outline);border-radius:999px}.cartoon-search{padding:6px 12px;box-shadow:inset 0-4px 0#f2f2f2}.toggle-sound{user-select:none}.toggle-sound .switch{width:54px;height:28px;background:#e5e7eb;padding:2px;display:inline-block;position:relative}.toggle-sound .knob{width:20px;height:20px;background:#fff;border:3px solid var(--outline);border-radius:50%;display:block;transform:translateX(0);transition:transform .18s cubic-bezier(.2,.9,.2,1.2)}.toggle-sound input{display:none}.toggle-sound input:checked+.switch .knob{transform:translateX(24px)}.toggle-sound .label{font-weight:700}.pokemon-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:18px;margin:20px auto;max-width:1100px;padding:0 8px;position:relative;z-index:1}.pokemon-card{aspect-ratio:1/1;background:linear-gradient(180deg,#fff 0,#fdfdfd 60%,#f9fbff 100%);border:4px solid var(--outline);border-radius:18px;box-shadow:0 8px 0#1a1a1a,0 18px 28px rgba(0,0,0,.2);display:flex;flex-direction:column;justify-content:space-between;align-items:center;padding:12px;cursor:pointer;transform:translateY(0);transition:transform .15s ease,box-shadow .15s ease}.pokemon-card:hover{transform:translateY(-6px) scale(1.03);box-shadow:0 12px 0#1a1a1a,0 24px 34px rgba(0,0,0,.25)}.pokemon-card:focus-within{outline:4px solid var(--accent);outline-offset:3px}.pokemon-card img{width:90px;height:90px;image-rendering:pixelated}.pokemon-card h3{font-family:"Bangers",cursive;font-size:20px;margin:4px 0 2px}.pokemon-card .types{display:flex;gap:6px;flex-wrap:wrap;justify-content:center}.type-chip{border:2.5px solid var(--outline);border-radius:999px;padding:3px 8px;background:#fff;font-weight:800;font-size:11px;text-transform:uppercase}.type-fire{background:#ffb385}.type-water{background:#a5d8ff}.type-grass{background:#b8f28b}.type-electric{background:#ffe36e}.type-psychic{background:#ff9edb}.type-rock{background:#d4c5a2}.type-ice{background:#c3f3ff}.type-dragon{background:#c6b1ff}.type-poison{background:#d7b3ff}.type-bug{background:#d3f6a8}.type-flying{background:#d9eaff}.type-fairy{background:#ffd6f7}.type-ground{background:#f1d4a5}.type-ghost{background:#d0caff}.type-fighting{background:#ffc3b0}.type-steel{background:#dde6ee}.type-dark{background:#c8c2c2}.type-normal{background:#f1f1f1}.btn-primary{background-color:var(--accent);border-color:var(--accent);font-weight:700;border-width:3px;box-shadow:0 6px 0#111;transform:translateY(0);transition:transform .08s ease,box-shadow .08s ease,background-color .08s ease}.btn-primary:hover{background-color:var(--accent-dark);border-color:var(--accent-dark)}.btn-primary:active{transform:translateY(3px);box-shadow:0 2px 0#111}#pokemonModal .modal-content{border-width:4px;border-color:var(--outline);border-radius:22px;box-shadow:var(--shadow)}#pokemonModal .modal-body img#modalImage{width:160px;height:160px;image-rendering:pixelated}@media (max-width:600px){.pokemon-grid{grid-template-columns:repeat(2,1fr);gap:14px;max-width:100%}.pokemon-card img{width:80px;height:80px}}@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}