:root,:root[data-theme=pokedex-red]{--bg:#f7f3ea;--panel:#fffdf7;--panel-edge:#e3dcc8;--ink:#23202b;--muted:#6f6a5e;--accent:#c00;--accent-ink:#fff;--good:#1d9e57;--bad:#d43a2f;--gold:#ffcb05;--shadow:#23202b24}:root[data-theme=midnight]{--bg:#0e1220;--panel:#171c2e;--panel-edge:#2a3350;--ink:#e8eaf2;--muted:#9aa3bd;--accent:#5b8cff;--accent-ink:#fff;--good:#35c26e;--bad:#ff6b5e;--gold:#ffcb05;--shadow:#00000073}:root[data-theme=forest]{--bg:#0f1f16;--panel:#17301f;--panel-edge:#2a4d33;--ink:#e6f2e4;--muted:#93b398;--accent:#57b26a;--accent-ink:#fff;--good:#7ed491;--bad:#ff7a5e;--gold:#ffcb05;--shadow:#00000073}:root[data-theme=christmas]{--bg:#0d2b1d;--panel:#143626;--panel-edge:#26543c;--ink:#fdf6ec;--muted:#a8c8b2;--accent:#d42426;--accent-ink:#fff;--good:#7ed491;--bad:#ff8a5e;--gold:#ffcb05;--shadow:#00000073}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--bg);color:var(--ink);min-height:100vh;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}button{font:inherit;color:inherit}img{max-width:100%}.season-banner{background:var(--accent);color:var(--accent-ink);justify-content:center;align-items:center;gap:10px;padding:8px 12px;display:flex}.season-banner[hidden]{display:none}.season-apply{color:inherit;cursor:pointer;background:0 0;border:0;font-weight:600;text-decoration:underline}.season-dismiss{color:inherit;cursor:pointer;background:0 0;border:0;font-size:15px}.topbar{justify-content:space-between;align-items:center;max-width:880px;margin:0 auto;padding:14px 16px 6px;display:flex;position:relative}.brand{letter-spacing:.2px;font-size:22px;font-weight:800}.brand span{color:var(--accent)}.icon-btn{border:1px solid var(--panel-edge);background:var(--panel);width:42px;height:42px;color:var(--ink);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;display:inline-flex}.settings-panel{z-index:40;background:var(--panel);border:1px solid var(--panel-edge);width:min(330px,100vw - 32px);box-shadow:0 14px 34px var(--shadow);border-radius:14px;padding:14px 16px;position:absolute;top:60px;right:16px}.settings-panel h2{margin:0 0 8px;font-size:16px}.settings-panel .row{justify-content:space-between;align-items:center;gap:12px;padding:8px 0;font-size:15px;display:flex}.settings-panel select{font:inherit;border:1px solid var(--panel-edge);background:var(--panel);color:var(--ink);border-radius:8px;padding:6px 8px}.settings-note{color:var(--muted);margin:6px 0 2px;font-size:13px}.danger-btn{border:1px solid var(--bad);color:var(--bad);cursor:pointer;background:0 0;border-radius:8px;padding:6px 10px;font-size:14px}.switch{flex:none;width:50px;height:28px;display:inline-block;position:relative}.switch input{opacity:0;width:0;height:0}.switch .track{background:var(--panel-edge);cursor:pointer;border-radius:999px;transition:background .15s;position:absolute;inset:0}.switch .track:after{content:"";background:#fff;border-radius:50%;width:22px;height:22px;transition:transform .15s;position:absolute;top:3px;left:3px;box-shadow:0 1px 3px #0000004d}.switch input:checked+.track{background:var(--accent)}.switch input:checked+.track:after{transform:translate(22px)}.switch input:focus-visible+.track{outline:2px solid var(--gold);outline-offset:2px}.wrap{max-width:880px;margin:0 auto;padding:8px 16px 24px}.footer{text-align:center;max-width:880px;color:var(--muted);margin:0 auto;padding:14px 16px 22px;font-size:13px}.footer a{color:inherit}.page-title{text-align:center;margin:10px 0 4px;font-size:30px}.page-sub{text-align:center;color:var(--muted);max-width:520px;margin:0 auto 18px}.gen-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px;display:grid}.gen-card{text-align:left;background:var(--panel);border:1px solid var(--panel-edge);width:100%;box-shadow:0 4px 14px var(--shadow);border-radius:16px;padding:14px;display:block}button.gen-card{cursor:pointer}@media (hover:hover) and (pointer:fine){button.gen-card:hover{border-color:var(--accent)}}.gen-card.soon{opacity:.62}.card-art{justify-content:space-between;align-items:flex-end;height:92px;display:flex}.card-art img{object-fit:contain;opacity:0;width:31%;height:92px;transition:opacity .25s}.card-art img.loaded{opacity:1}.card-region{margin-top:8px;font-size:20px;font-weight:800}.card-meta{color:var(--muted);margin-top:2px;font-size:14px}.card-play{color:var(--accent);margin-top:10px;font-weight:700}.card-soon{color:var(--muted);text-transform:uppercase;letter-spacing:.6px;margin-top:10px;font-size:12px;font-weight:700}.wide-btn{border:1px solid var(--panel-edge);background:var(--panel);cursor:pointer;border-radius:12px;width:100%;margin-top:18px;padding:13px;font-weight:700;display:block}.learn-toggle{border:1px solid var(--panel-edge);background:var(--panel);cursor:pointer;text-align:center;border-radius:12px;width:100%;margin-top:12px;padding:13px;font-weight:700;display:block}.learn-body{background:var(--panel);border:1px solid var(--panel-edge);border-radius:12px;margin-top:10px;padding:4px 16px;line-height:1.5}.game-nav{justify-content:space-between;align-items:center;padding:4px 0 10px;display:flex}.text-btn{color:var(--accent);cursor:pointer;background:0 0;border:0;padding:6px 2px;font-size:15px;font-weight:700}.dex-count{font-weight:700}.stage-panel{background:var(--panel);border:1px solid var(--panel-edge);box-shadow:0 4px 14px var(--shadow);border-radius:18px;padding:14px 16px 10px}.stage-top{justify-content:space-between;align-items:baseline;display:flex}.dex-tag,.stage-region{color:var(--muted);font-size:14px;font-weight:700}.stage{justify-content:center;align-items:center;height:320px;display:flex;position:relative;overflow:hidden}.stage-img{object-fit:contain;max-width:min(100%,340px);max-height:100%}.pop-in{animation:.45s pop-in}@keyframes pop-in{0%{opacity:0;transform:scale(.82)}to{opacity:1;transform:scale(1)}}.countdown{color:var(--accent);text-shadow:0 4px 18px var(--shadow);pointer-events:none;justify-content:center;align-items:center;font-size:110px;font-weight:900;display:flex;position:absolute;inset:0}.countdown[hidden]{display:none}.count-pop{animation:.7s count-pop}@keyframes count-pop{0%{opacity:0;transform:scale(1.5)}35%{opacity:1;transform:scale(1)}to{opacity:1;transform:scale(.94)}}.confetti{pointer-events:none;position:absolute;inset:0;overflow:hidden}.confetto{border-radius:2px;width:9px;height:14px;animation:1.6s ease-in forwards confetti-fall;position:absolute;top:-12px}@keyframes confetti-fall{to{opacity:.2;transform:translateY(360px)rotate(560deg)}}.verdict{text-align:center;min-height:28px;padding:6px 0 4px;font-size:19px;font-weight:800}.verdict.good{color:var(--good)}.verdict.bad{color:var(--bad)}.stats-line{text-align:center;color:var(--muted);margin:14px 0 10px;font-size:15px}.stats-line strong{color:var(--ink)}.options{grid-template-columns:1fr 1fr;gap:10px;display:grid}.opt{border:2px solid var(--panel-edge);background:var(--panel);cursor:pointer;overflow-wrap:break-word;border-radius:12px;min-height:58px;padding:12px 8px;font-size:17px;font-weight:700}@media (hover:hover) and (pointer:fine){.opt:not(:disabled):hover{border-color:var(--accent)}}.opt.correct{border-color:var(--good);background:var(--good);color:#fff}.opt.wrong{border-color:var(--bad);background:var(--bad);color:#fff}.opt.dim{opacity:.55}.next-row{justify-content:center;align-items:center;min-height:54px;margin-top:12px;display:flex}.next-btn{background:var(--accent);color:var(--accent-ink);cursor:pointer;box-shadow:0 4px 12px var(--shadow);border:0;border-radius:12px;padding:13px 30px;font-size:17px;font-weight:800}.dex-tabs{gap:8px;margin-top:4px;display:flex}.dex-tab{border:1px solid var(--panel-edge);background:var(--panel);cursor:pointer;border-radius:12px;flex:1;padding:10px 8px;font-size:15px;font-weight:700}.dex-tab.active{background:var(--accent);border-color:var(--accent);color:#fff}.progress{background:var(--panel-edge);border-radius:999px;height:12px;margin:10px 0 16px;overflow:hidden}.progress-fill{background:var(--accent);height:100%;transition:width .4s}.dex-grid{grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:10px;display:grid}.dex-cell{background:var(--panel);border:1px solid var(--panel-edge);text-align:center;border-radius:12px;flex-direction:column;align-items:center;gap:2px;padding:8px 6px;display:flex}button.dex-cell{cursor:pointer}.dex-cell img{object-fit:contain;width:100%;height:72px}.dex-cell .silhouette{filter:brightness(0);opacity:.75}.dex-num{color:var(--muted);font-size:12px;font-weight:700}.dex-name{overflow-wrap:anywhere;font-size:14px;font-weight:700}.detail-overlay{z-index:60;background:#0a08108c;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.detail-overlay[hidden]{display:none}.detail-card{background:var(--panel);color:var(--ink);text-align:center;border-radius:18px;width:min(400px,100%);max-height:calc(100dvh - 40px);padding:22px;position:relative;overflow-y:auto;box-shadow:0 18px 44px #0006}.detail-types{justify-content:center;gap:6px;margin-top:10px;display:flex}.type-badge{letter-spacing:.02em;border-radius:999px;padding:3px 10px;font-size:12.5px;font-weight:800;line-height:1.35;display:inline-block}.tb-mult{font-weight:900}.detail-meta{color:var(--muted);margin-top:10px;font-size:14px}.detail-meta strong{color:var(--ink)}.detail-flavour{max-width:320px;color:var(--muted);margin:12px auto 0;font-style:italic;line-height:1.45}.detail-sec{margin-top:14px}.detail-sec h4{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:0 0 6px;font-size:12px;font-weight:800}.detail-badges{flex-wrap:wrap;justify-content:center;gap:5px;display:flex}.detail-card img{object-fit:contain;max-width:100%;height:210px}.detail-name{margin-top:6px;font-size:26px;font-weight:900}.detail-num{color:var(--muted);margin-top:2px;font-weight:700}.detail-record{color:var(--muted);margin-top:12px}.detail-record strong{color:var(--ink)}.detail-close{cursor:pointer;color:var(--muted);background:0 0;border:0;font-size:18px;position:absolute;top:8px;right:10px}@media (width<=560px){.page-title{font-size:25px}.stage{height:280px}.opt{min-height:54px;font-size:16px}.countdown{font-size:88px}}@media (prefers-reduced-motion:reduce){.pop-in,.count-pop,.confetto{animation:none}}.gender-ic{vertical-align:-.06em;width:.8em;height:.8em;margin-left:.16em}
