@import "https://fonts.googleapis.com/css2?family=Orbitron:wght@500;600;700;800;900&family=Montserrat:wght@300;400;500;600;700&family=Share+Tech+Mono&display=swap";:root{--bg-void:#000;--bg-primary:#020204;--bg-secondary:#050508;--bg-surface:#08080c;--bg-card:#05050ce6;--bg-card-hover:#0a0a14f2;--neon-green:#ff1a3a;--neon-green-dim:#cc001d;--neon-green-glow:#ff1a3a80;--neon-green-soft:#ff1a3a14;--neon-green-border:#ff1a3a59;--neon-purple:#f05;--neon-purple-dim:#c04;--neon-purple-glow:#ff005580;--neon-purple-soft:#ff005514;--neon-purple-border:#ff005559;--neon-cyan:#00f0ff;--neon-cyan-dim:#00bfcc;--neon-cyan-glow:#00f0ff66;--neon-cyan-soft:#00f0ff0f;--neon-pink:#ff2d6a;--neon-pink-glow:#ff2d6a80;--neon-pink-soft:#ff2d6a14;--neon-yellow:#ffe600;--neon-yellow-glow:#ffe60066;--pokeball-off:#1a1a24;--pokeball-off-line:#2a2a38;--pokeball-red:#ff1a3a;--pokeball-red-glow:#ff1a3a99;--pokeball-red-glow-strong:#ff1a3ad9;--gen1-neon:#ff1a3a;--gen2-neon:#ffe600;--gen3-neon:#00ff41;--gen4-neon:#00f0ff;--gen5-neon:#888aff;--gen6-neon:#ff6b2d;--gen7-neon:#ff9d00;--gen8-neon:#b829ff;--gen9-neon:#3a9bff;--text-primary:#e0ffe6;--text-secondary:#7a9980;--text-tertiary:#3d5442;--text-white:#fff;--text-neon:var(--neon-green);--border-neon:var(--neon-green-border);--border-dim:#ff1a3a1a;--border-grid:#ff1a3a0f;--shadow-neon-green:0 0 8px var(--neon-green-glow), 0 0 20px #ff1a3a33;--shadow-neon-purple:0 0 8px var(--neon-purple-glow), 0 0 20px #f053;--shadow-neon-cyan:0 0 8px var(--neon-cyan-glow), 0 0 20px #00f0ff33;--shadow-deep:0 8px 32px #000c;--radius-sm:4px;--radius-md:8px;--radius-lg:12px;--radius-xl:16px;--radius-full:9999px;--transition-fast:.12s ease;--transition-base:.25s ease;--transition-glow:.3s ease;--space-xs:4px;--space-sm:8px;--space-md:16px;--space-lg:24px;--space-xl:32px;--space-2xl:48px}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;-webkit-tap-highlight-color:transparent;font-size:16px}body{background:var(--bg-void);color:var(--text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100vh;font-family:Montserrat,Roboto,sans-serif;line-height:1.6;overflow-x:hidden}body:before{content:"";pointer-events:none;z-index:9999;background:repeating-linear-gradient(0deg,#0000,#0000 2px,#ff1a3a03 2px 4px);width:100%;height:100%;position:fixed;top:0;left:0}body:after{content:"";pointer-events:none;z-index:0;background:radial-gradient(at 15% 5%,#ff1a3a0a 0%,#0000 50%),radial-gradient(at 85% 95%,#ff00550a 0%,#0000 50%),radial-gradient(#00f0ff04 0%,#0000 60%);width:100%;height:100%;position:fixed;top:0;left:0}#root{z-index:1;min-height:100vh;position:relative}::-webkit-scrollbar{width:4px}::-webkit-scrollbar-track{background:var(--bg-void)}::-webkit-scrollbar-thumb{background:var(--neon-green-dim);border-radius:var(--radius-full);box-shadow:0 0 6px var(--neon-green-glow)}@keyframes neon-flicker{0%,19%,21%,23%,25%,54%,56%,to{opacity:1;text-shadow:0 0 4px var(--neon-green-glow), 0 0 12px var(--neon-green-glow), 0 0 30px #ff1a3a4d}20%,24%,55%{opacity:.85;text-shadow:none}}@keyframes border-flicker{0%,18%,22%,25%,53%,57%,to{box-shadow:0 0 6px var(--neon-green-glow), inset 0 0 6px #ff1a3a0d;border-color:var(--neon-green-border)}20%,24%,55%{box-shadow:none;border-color:#ff1a3a1a}}@keyframes glow-pulse{0%,to{box-shadow:0 0 6px var(--neon-green-glow), 0 0 15px #ff1a3a26}50%{box-shadow:0 0 10px var(--neon-green-glow), 0 0 25px #ff1a3a4d}}@keyframes pokeball-neon-pulse{0%,to{filter:drop-shadow(0 0 4px var(--pokeball-red-glow)) drop-shadow(0 0 10px #ff1a3a33)}50%{filter:drop-shadow(0 0 8px var(--pokeball-red-glow-strong)) drop-shadow(0 0 20px #ff1a3a73)}}@keyframes shimmer{0%{transform:translate(-100%)}to{transform:translate(200%)}}@keyframes glitch-text{0%,to{transform:translate(0)}20%{transform:translate(-2px,1px)}40%{transform:translate(2px,-1px)}60%{transform:translate(-1px,-1px)}80%{transform:translate(1px,2px)}}.app{max-width:720px;padding:var(--space-md);margin:0 auto;padding-bottom:100px}.header{text-align:center;padding:var(--space-2xl) var(--space-md) var(--space-xl);position:relative}.header__logo{margin-bottom:var(--space-md);filter:drop-shadow(0 0 12px var(--neon-green-glow)) drop-shadow(0 0 30px #ff1a3a4d);justify-content:center;align-items:center;animation:4s infinite neon-flicker;display:flex}.header__logo-svg{width:auto;height:60px;color:var(--neon-green)}.header__subtitle{color:var(--text-secondary);letter-spacing:3px;text-transform:uppercase;font-family:Share Tech Mono,monospace;font-size:.8rem}.header:after{content:"";width:60%;height:1px;margin:var(--space-lg) auto 0;background:linear-gradient(90deg, transparent, var(--neon-green-dim), var(--neon-cyan), var(--neon-purple-dim), transparent);box-shadow:0 0 8px var(--neon-green-glow);display:block}.stats-bar{gap:var(--space-sm);padding:var(--space-md);border:1px solid var(--neon-green-border);border-radius:var(--radius-lg);margin-bottom:var(--space-lg);-webkit-backdrop-filter:none;background:0 0;display:flex;position:relative;box-shadow:0 0 8px #ff1a3a1a,inset 0 0 8px #ff1a3a08}.stats-bar:before{content:"";background:linear-gradient(90deg, transparent, var(--neon-green), transparent);height:1px;box-shadow:0 0 10px var(--neon-green-glow);position:absolute;top:-1px;left:10%;right:10%}.stat-item{text-align:center;padding:var(--space-sm) var(--space-xs);border-radius:var(--radius-md);border:1px solid var(--border-dim);transition:var(--transition-glow);background:0 0;flex:1}.stat-item:hover{border-color:var(--neon-green-border);box-shadow:0 0 10px #ff1a3a26,inset 0 0 10px #ff1a3a08}.stat-item__value{font-family:Orbitron,sans-serif;font-size:1.5rem;font-weight:700;line-height:1.2;display:block}.stat-item__value--total{color:var(--neon-cyan);text-shadow:0 0 8px var(--neon-cyan-glow)}.stat-item__value--caught{color:var(--neon-green);text-shadow:0 0 8px var(--neon-green-glow)}.stat-item__value--missing{color:var(--neon-pink);text-shadow:0 0 8px var(--neon-pink-glow)}.stat-item__label{color:var(--text-tertiary);text-transform:uppercase;letter-spacing:2px;margin-top:4px;font-family:Share Tech Mono,monospace;font-size:.65rem}.progress-container{margin-bottom:var(--space-lg);padding:0 var(--space-xs)}.progress-bar{background:var(--bg-surface);border-radius:var(--radius-full);border:1px solid var(--border-dim);height:4px;position:relative;overflow:hidden}.progress-bar__fill{background:linear-gradient(90deg, var(--neon-green), var(--neon-cyan), var(--neon-purple));border-radius:var(--radius-full);height:100%;box-shadow:0 0 10px var(--neon-green-glow), 0 0 20px #00f0ff33;transition:width .6s cubic-bezier(.4,0,.2,1);position:relative}.progress-bar__fill:after{content:"";background:linear-gradient(90deg,#0000 0%,#ffffff4d 50%,#0000 100%);animation:2.5s infinite shimmer;position:absolute;inset:0}.progress-text{text-align:center;color:var(--text-secondary);margin-top:var(--space-xs);letter-spacing:1px;font-family:Share Tech Mono,monospace;font-size:.7rem}.search-container{margin-bottom:var(--space-lg);position:relative}.search-input{width:100%;padding:var(--space-md) var(--space-lg);border:1px solid var(--neon-green-border);border-radius:var(--radius-md);color:var(--text-primary);transition:var(--transition-glow);-webkit-backdrop-filter:none;background:0 0;outline:none;padding-left:48px;font-family:Montserrat,sans-serif;font-size:.9rem;box-shadow:0 0 6px #ff1a3a14,inset 0 0 6px #ff1a3a05}.search-input:focus{border-color:var(--neon-green);box-shadow:0 0 12px var(--neon-green-glow), 0 0 30px #ff1a3a26, inset 0 0 12px #ff1a3a0a;animation:3s infinite border-flicker}.search-input::placeholder{color:var(--text-tertiary);letter-spacing:.5px;font-family:Share Tech Mono,monospace;font-size:.8rem}.search-icon{left:var(--space-md);color:var(--neon-green-dim);pointer-events:none;filter:drop-shadow(0 0 4px var(--neon-green-glow));position:absolute;top:50%;transform:translateY(-50%)}.filter-bar{gap:var(--space-sm);margin-bottom:var(--space-lg);padding-bottom:var(--space-xs);-webkit-overflow-scrolling:touch;scrollbar-width:none;display:flex;overflow-x:auto}.filter-bar::-webkit-scrollbar{display:none}.filter-btn{padding:var(--space-sm) var(--space-lg);border:2px solid var(--neon-purple-border);border-radius:var(--radius-md);color:var(--neon-purple);cursor:pointer;transition:var(--transition-glow);text-transform:uppercase;letter-spacing:2px;white-space:nowrap;text-shadow:0 0 6px var(--neon-purple-glow);background:0 0;flex-shrink:0;font-family:Orbitron,sans-serif;font-size:.7rem;font-weight:600;box-shadow:0 0 4px #ff00551a,inset 0 0 4px #ff005508}.filter-btn:hover{border-color:var(--neon-purple);color:var(--text-white);text-shadow:0 0 10px var(--neon-purple-glow), 0 0 20px #f056;box-shadow:0 0 12px var(--neon-purple-glow), 0 0 30px #ff005526, inset 0 0 10px #ff00550d;transform:translateY(-1px)}.filter-btn:active{animation:.5s border-flicker;transform:scale(.97)}.filter-btn--active{border-color:var(--neon-green);color:var(--neon-green);text-shadow:0 0 8px var(--neon-green-glow), 0 0 18px #ff1a3a4d;box-shadow:0 0 10px var(--neon-green-glow), 0 0 25px #ff1a3a1f, inset 0 0 8px #ff1a3a0a;background:var(--neon-green-soft)}.generation{margin-bottom:var(--space-md);border-radius:var(--radius-md);border:1px solid var(--border-dim);transition:var(--transition-glow);overflow:hidden}.generation:hover{border-color:var(--neon-green-border);box-shadow:0 0 12px #ff1a3a14}.generation__header{padding:var(--space-md) var(--space-lg);cursor:pointer;-webkit-user-select:none;user-select:none;transition:var(--transition-glow);text-align:left;-webkit-backdrop-filter:none;background:0 0;border:none;justify-content:space-between;align-items:center;width:100%;font-family:Montserrat,sans-serif;display:flex;position:relative;overflow:hidden}.generation__header:before{content:"";width:3px;box-shadow:0 0 8px var(--neon-green-glow);border-radius:0 2px 2px 0;position:absolute;top:0;bottom:0;left:0}.generation__header--gen1:before{background:var(--gen1-neon);box-shadow:0 0 8px #ff1a3a80}.generation__header--gen2:before{background:var(--gen2-neon);box-shadow:0 0 8px #ffe60080}.generation__header--gen3:before{background:var(--gen3-neon);box-shadow:0 0 8px #ff1a3a80}.generation__header--gen4:before{background:var(--gen4-neon);box-shadow:0 0 8px #00f0ff80}.generation__header--gen5:before{background:var(--gen5-neon);box-shadow:0 0 8px #888aff80}.generation__header--gen6:before{background:var(--gen6-neon);box-shadow:0 0 8px #ff6b2d80}.generation__header--gen7:before{background:var(--gen7-neon);box-shadow:0 0 8px #ff9d0080}.generation__header--gen8:before{background:var(--gen8-neon);box-shadow:0 0 8px #ff005580}.generation__header--gen9:before{background:var(--gen9-neon);box-shadow:0 0 8px #3a9bff80}.generation__header:hover{background:#ff1a3a05}.generation__header:active{transform:scale(.998)}.generation__info{flex-direction:column;gap:2px;display:flex}.generation__title{color:var(--text-primary);letter-spacing:1px;font-family:Orbitron,sans-serif;font-size:.95rem;font-weight:700}.generation__region{color:var(--text-tertiary);text-transform:uppercase;letter-spacing:2px;font-family:Share Tech Mono,monospace;font-size:.7rem}.generation__meta{align-items:center;gap:var(--space-md);display:flex}.generation__count{color:var(--neon-green-dim);padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-sm);border:1px solid var(--border-dim);text-shadow:0 0 6px #ff1a3a4d;font-family:Share Tech Mono,monospace;font-size:.8rem}.generation__chevron{color:var(--neon-green-dim);transition:transform var(--transition-base);filter:drop-shadow(0 0 3px var(--neon-green-glow));flex-shrink:0}.generation__chevron--open{transform:rotate(180deg)}.generation__content{background:var(--bg-void);max-height:0;transition:max-height .4s cubic-bezier(.4,0,.2,1);overflow:hidden}.generation__content--open{max-height:15000px;transition:max-height .6s cubic-bezier(0,0,.2,1)}.generation__list{padding:var(--space-xs) var(--space-sm);background-image:linear-gradient(var(--border-grid) 1px, transparent 1px);background-size:100% 44px}.pokemon-item{padding:var(--space-sm) var(--space-md);border-radius:var(--radius-sm);transition:var(--transition-fast);cursor:pointer;background:0 0;border:1px solid #0000;align-items:center;margin:2px 0;display:flex;position:relative}.pokemon-item:hover{border-color:var(--border-dim);background:#ff1a3a05}.pokemon-item:active{transform:scale(.99)}.pokemon-item--caught{background:#ff1a3a08;border-color:#ff1a3a1a}.pokemon-item--caught:hover{background:#ff1a3a0d}.pokemon-item__number{color:var(--text-tertiary);flex-shrink:0;min-width:48px;font-family:Share Tech Mono,monospace;font-size:.8rem}.pokemon-item--caught .pokemon-item__number{color:var(--neon-green-dim);text-shadow:0 0 4px #ff1a3a4d}.pokemon-item__name{color:var(--text-primary);flex:1;font-family:Montserrat,sans-serif;font-size:.9rem;font-weight:500}.pokemon-item--caught .pokemon-item__name{color:var(--neon-green);text-shadow:0 0 6px #ff1a3a40}.pokemon-item__variant-badge{border-radius:var(--radius-sm);margin-left:var(--space-sm);text-transform:uppercase;letter-spacing:1px;border:1px solid;flex-shrink:0;padding:2px 8px;font-family:Share Tech Mono,monospace;font-size:.65rem}.pokemon-item__variant-badge--alola{color:var(--neon-yellow);text-shadow:0 0 6px var(--neon-yellow-glow);background:#ffe6000d;border-color:#ffe6004d}.pokemon-item__variant-badge--galar{color:var(--neon-purple);text-shadow:0 0 6px var(--neon-purple-glow);background:var(--neon-purple-soft);border-color:#ff00554d}.pokemon-item__variant-badge--hisui{color:var(--neon-cyan);text-shadow:0 0 6px var(--neon-cyan-glow);background:var(--neon-cyan-soft);border-color:#00f0ff4d}.pokemon-item__variant-badge--paldea{color:var(--gen9-neon);text-shadow:0 0 6px #3a9bff80;background:#3a9bff0d;border-color:#3a9bff4d}.pokeball-icon{width:28px;height:28px;margin-left:var(--space-sm);transition:var(--transition-glow);flex-shrink:0}.pokeball-icon--gray .pokeball-top{fill:var(--pokeball-off);transition:fill var(--transition-glow)}.pokeball-icon--gray .pokeball-bottom{fill:#0e0e14;transition:fill var(--transition-glow)}.pokeball-icon--gray .pokeball-line,.pokeball-icon--gray .pokeball-center-outer{fill:#000;transition:fill var(--transition-glow)}.pokeball-icon--gray .pokeball-center-inner{fill:var(--pokeball-off-line);transition:fill var(--transition-glow)}.pokeball-icon--caught{filter:drop-shadow(0 0 6px var(--pokeball-red-glow)) drop-shadow(0 0 14px #ff1a3a40);animation:2.5s ease-in-out infinite pokeball-neon-pulse}.pokeball-icon--caught .pokeball-top{fill:var(--pokeball-red)}.pokeball-icon--caught .pokeball-bottom{fill:#e8e8e8}.pokeball-icon--caught .pokeball-line,.pokeball-icon--caught .pokeball-center-outer{fill:#000}.pokeball-icon--caught .pokeball-center-inner{fill:#fff}.modal-overlay{z-index:1000;width:100%;height:100%;padding:var(--space-md);-webkit-backdrop-filter:blur(4px);background:#000000d9;justify-content:center;align-items:center;animation:.2s ease-out overlay-in;display:flex;position:fixed;top:0;left:0}@keyframes overlay-in{0%{opacity:0}to{opacity:1}}.modal{background:var(--bg-primary);border:2px solid var(--neon-green-border);border-radius:var(--radius-lg);padding:var(--space-xl);width:100%;max-width:360px;box-shadow:0 0 15px var(--neon-green-glow), 0 0 40px #ff1a3a1a, inset 0 0 15px #ff1a3a05;animation:.3s cubic-bezier(.34,1.56,.64,1) modal-in;position:relative;overflow:hidden}.modal:before{content:"";background:linear-gradient(90deg, transparent, var(--neon-green), transparent);height:2px;box-shadow:0 0 12px var(--neon-green-glow);position:absolute;top:0;left:20%;right:20%}.modal:after{content:"";pointer-events:none;border-radius:var(--radius-lg);background:repeating-linear-gradient(0deg,#0000,#0000 3px,#ff1a3a02 3px 6px);position:absolute;inset:0}@keyframes modal-in{0%{opacity:0;transform:scale(.9)translateY(20px)}to{opacity:1;transform:scale(1)translateY(0)}}.modal__pokeball{margin-bottom:var(--space-lg);justify-content:center;display:flex}.modal__pokeball .pokeball-icon{width:56px;height:56px}.modal__title{text-align:center;color:var(--text-secondary);margin-bottom:var(--space-xs);letter-spacing:1px;text-transform:uppercase;font-family:Orbitron,sans-serif;font-size:.85rem;font-weight:600}.modal__pokemon-name{text-align:center;color:var(--neon-green);text-shadow:0 0 8px var(--neon-green-glow), 0 0 20px #ff1a3a40;margin-bottom:var(--space-lg);letter-spacing:2px;background:0 0;-webkit-background-clip:unset;-webkit-text-fill-color:var(--neon-green);background-clip:unset;font-family:Orbitron,sans-serif;font-size:1.2rem;font-weight:700}.modal__actions{gap:var(--space-sm);z-index:1;display:flex;position:relative}.modal__btn{padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md);cursor:pointer;transition:var(--transition-glow);text-transform:uppercase;letter-spacing:1.5px;background:0 0;flex:1;font-family:Orbitron,sans-serif;font-size:.7rem;font-weight:600}.modal__btn:active{animation:.3s border-flicker;transform:scale(.97)}.modal__btn--cancel{border:2px solid var(--neon-purple-border);color:var(--neon-purple);text-shadow:0 0 6px var(--neon-purple-glow)}.modal__btn--cancel:hover{border-color:var(--neon-purple);box-shadow:0 0 12px var(--neon-purple-glow), inset 0 0 8px #ff00550d;color:var(--text-white);text-shadow:0 0 10px var(--neon-purple-glow)}.modal__btn--confirm{border:2px solid var(--neon-green-border);color:var(--neon-green);text-shadow:0 0 6px var(--neon-green-glow);box-shadow:0 0 6px #ff1a3a1a}.modal__btn--confirm:hover{border-color:var(--neon-green);box-shadow:0 0 15px var(--neon-green-glow), 0 0 30px #ff1a3a26, inset 0 0 10px #ff1a3a0d;color:var(--text-white);text-shadow:0 0 12px var(--neon-green-glow)}.modal__btn--unmark{border:2px solid var(--neon-pink-soft);color:var(--neon-pink);text-shadow:0 0 6px var(--neon-pink-glow)}.modal__btn--unmark:hover{border-color:var(--neon-pink);box-shadow:0 0 12px var(--neon-pink-glow), inset 0 0 8px #ff2d6a0d;color:var(--text-white)}.toast{background:var(--bg-primary);border:1px solid var(--neon-green-border);border-radius:var(--radius-md);padding:var(--space-sm) var(--space-lg);color:var(--neon-green);box-shadow:0 0 12px var(--neon-green-glow), 0 0 30px #ff1a3a1a;z-index:999;align-items:center;gap:var(--space-sm);white-space:nowrap;text-shadow:0 0 6px var(--neon-green-glow);letter-spacing:1px;font-family:Share Tech Mono,monospace;font-size:.8rem;animation:.3s ease-out forwards toast-in;display:flex;position:fixed;bottom:80px;left:50%;transform:translate(-50%)translateY(20px)}.toast--out{animation:.3s ease-in forwards toast-out}@keyframes toast-in{0%{opacity:0;transform:translate(-50%)translateY(30px)}to{opacity:1;transform:translate(-50%)translateY(0)}}@keyframes toast-out{0%{opacity:1;transform:translate(-50%)translateY(0)}to{opacity:0;transform:translate(-50%)translateY(30px)}}.toast__icon{font-size:1.1rem}.footer{text-align:center;padding:var(--space-2xl) var(--space-md);color:var(--text-tertiary);letter-spacing:2px;text-transform:uppercase;font-family:Share Tech Mono,monospace;font-size:.65rem;position:relative}.footer:before{content:"";width:40%;height:1px;margin:0 auto var(--space-lg);background:linear-gradient(90deg, transparent, var(--border-dim), transparent);display:block}@media (width<=480px){.app{padding:var(--space-sm);padding-bottom:80px}.header__logo{letter-spacing:4px;font-size:1.8rem}.stats-bar{gap:var(--space-xs);padding:var(--space-sm)}.stat-item__value{font-size:1.2rem}.generation__header{padding:var(--space-sm) var(--space-md)}.generation__title{font-size:.85rem}.pokemon-item{padding:var(--space-sm)}.pokemon-item__number{min-width:40px;font-size:.75rem}.pokemon-item__name{font-size:.85rem}.modal{padding:var(--space-lg)}.filter-btn{padding:var(--space-sm) var(--space-md);letter-spacing:1px;font-size:.6rem}}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}
