:root{--bg-primary:#f0f4ff;--bg-secondary:#fff;--bg-card:#fff;--text-primary:#1a1a2e;--text-secondary:#666;--border:#d0d8e8;--accent:#e74c3c;--accent-light:#fde8e8;--correct:#27ae60;--correct-light:#d5f5e3;--wrong:#c0392b;--wrong-light:#f5b7b1;--hp-fill:#27ae60;--hp-fill-mid:#f39c12;--hp-fill-low:#e74c3c;--star-color:#f1c40f;--pill-active:#e74c3c;--pill-active-text:#fff;--pill-inactive:#eef2f8;--pill-inactive-text:#555;--pokeball-red:#e74c3c;--pokeball-dark:#c0392b;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;font-family:Heebo,Segoe UI,Tahoma,Arial,sans-serif}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--bg-primary:#1a1a2e;--bg-secondary:#16213e;--bg-card:#1e2a4a;--text-primary:#e0e0e0;--text-secondary:#aaa;--border:#2a3a5c;--accent:#e74c3c;--accent-light:#3a1a1a;--correct:#2ecc71;--correct-light:#1a3a2a;--wrong:#c0392b;--wrong-light:#3a1a1a;--hp-fill:#2ecc71;--pill-active:#e74c3c;--pill-active-text:#fff;--pill-inactive:#2a3a5c;--pill-inactive-text:#aaa}}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg-primary);color:var(--text-primary);min-height:100vh;position:relative;overflow-x:hidden}body:before{content:"";z-index:0;pointer-events:none;background:radial-gradient(circle at 8% 15%,#e74c3c0f 8px,#0000 8px),radial-gradient(circle at 8% 15%,#ffffff0a 4px,#0000 4px),radial-gradient(circle at 92% 8%,#e74c3c0d 6px,#0000 6px),radial-gradient(circle at 25% 85%,#e74c3c0d 7px,#0000 7px),radial-gradient(circle at 78% 75%,#e74c3c0a 5px,#0000 5px),radial-gradient(circle at 55% 45%,#e74c3c08 9px,#0000 9px),radial-gradient(circle at 15% 55%,#f1c40f0a 6px,#0000 6px),radial-gradient(circle at 85% 40%,#f1c40f0a 5px,#0000 5px),radial-gradient(circle at 40% 20%,#2ecc710a 5px,#0000 5px),radial-gradient(circle at 65% 90%,#3498db0a 6px,#0000 6px);position:fixed;inset:0}body:after{content:"";z-index:0;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300'%3E%3Ctext x='30' y='40' font-size='18' opacity='0.04' fill='%23e74c3c'%3E⚡%3C/text%3E%3Ctext x='150' y='80' font-size='14' opacity='0.04' fill='%23333'%3E＋%3C/text%3E%3Ctext x='250' y='50' font-size='16' opacity='0.03' fill='%23e74c3c'%3E●%3C/text%3E%3Ctext x='80' y='140' font-size='12' opacity='0.04' fill='%23333'%3E×%3C/text%3E%3Ctext x='200' y='160' font-size='20' opacity='0.03' fill='%23c0392b'%3E◓%3C/text%3E%3Ctext x='40' y='230' font-size='14' opacity='0.04' fill='%23333'%3E÷%3C/text%3E%3Ctext x='130' y='260' font-size='16' opacity='0.03' fill='%23f1c40f'%3E★%3C/text%3E%3Ctext x='240' y='220' font-size='12' opacity='0.04' fill='%23333'%3E＝%3C/text%3E%3Ctext x='180' y='290' font-size='15' opacity='0.03' fill='%23e74c3c'%3E◓%3C/text%3E%3C/svg%3E");animation:80s linear infinite bgDriftUp;position:fixed;inset:0}@keyframes bgDriftUp{0%{transform:translate(0)}to{transform:translateY(-300px)}}#root:before{content:"";z-index:0;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='400' height='400'%3E%3Ccircle cx='80' cy='80' r='3' fill='%23e74c3c' opacity='0.06'/%3E%3Ccircle cx='300' cy='150' r='4' fill='%23f1c40f' opacity='0.05'/%3E%3Ccircle cx='200' cy='320' r='3' fill='%233498db' opacity='0.06'/%3E%3Ccircle cx='350' cy='280' r='2' fill='%2327ae60' opacity='0.07'/%3E%3Ccircle cx='50' cy='250' r='5' fill='%239b59b6' opacity='0.05'/%3E%3Ccircle cx='150' cy='60' r='2' fill='%23e67e22' opacity='0.07'/%3E%3C/svg%3E");animation:120s linear infinite bgDriftDown;position:fixed;inset:-50px}@keyframes bgDriftDown{0%{transform:translate(0)}to{transform:translate(20px,400px)}}@media (prefers-color-scheme:dark){body:before{background:radial-gradient(circle at 8% 15%,#e74c3c14 8px,#0000 8px),radial-gradient(circle at 92% 8%,#e74c3c0f 6px,#0000 6px),radial-gradient(circle at 25% 85%,#e74c3c0f 7px,#0000 7px),radial-gradient(circle at 78% 75%,#e74c3c0d 5px,#0000 5px),radial-gradient(circle at 55% 45%,#e74c3c0a 9px,#0000 9px),radial-gradient(circle at 15% 55%,#f1c40f0d 6px,#0000 6px),radial-gradient(circle at 85% 40%,#f1c40f0d 5px,#0000 5px)}body:after{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300'%3E%3Ctext x='30' y='40' font-size='18' opacity='0.06' fill='%23e74c3c'%3E⚡%3C/text%3E%3Ctext x='150' y='80' font-size='14' opacity='0.06' fill='%23aaa'%3E＋%3C/text%3E%3Ctext x='250' y='50' font-size='16' opacity='0.05' fill='%23e74c3c'%3E●%3C/text%3E%3Ctext x='80' y='140' font-size='12' opacity='0.06' fill='%23aaa'%3E×%3C/text%3E%3Ctext x='200' y='160' font-size='20' opacity='0.05' fill='%23c0392b'%3E◓%3C/text%3E%3Ctext x='40' y='230' font-size='14' opacity='0.06' fill='%23aaa'%3E÷%3C/text%3E%3Ctext x='130' y='260' font-size='16' opacity='0.05' fill='%23f1c40f'%3E★%3C/text%3E%3Ctext x='240' y='220' font-size='12' opacity='0.06' fill='%23aaa'%3E＝%3C/text%3E%3C/svg%3E")}}#root{z-index:1;flex-direction:column;align-items:center;width:100%;min-height:100vh;display:flex;position:relative}:focus-visible{outline-offset:2px;border-radius:6px;outline:3px solid #f1c40f}button:focus-visible,[role=button]:focus-visible{outline-offset:3px;outline:3px solid #f1c40f}.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}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}body:after{animation:none!important}}.home-profile-bar{background:var(--bg-card);border:2px solid var(--border);z-index:3;border-radius:16px;align-items:center;gap:10px;width:100%;padding:8px 10px;display:flex;position:relative;box-shadow:0 3px 10px #00000014}.home-profile-avatar{flex-shrink:0}.home-profile-text{flex:1;min-width:0}.home-profile-name-row{color:var(--text-primary);align-items:center;gap:6px;font-size:15px;font-weight:800;line-height:1.1;display:flex}.home-profile-lock{color:var(--accent);opacity:.8}.home-profile-sub{color:var(--accent);letter-spacing:.5px;margin-top:2px;font-family:ui-monospace,monospace;font-size:11px;font-weight:700}.home-profile-switch{background:var(--bg-secondary);border:1.5px solid var(--border);cursor:pointer;color:var(--text-secondary);border-radius:10px;align-items:center;gap:4px;padding:8px 12px;font-size:12px;font-weight:800;transition:all .2s;display:flex}.home-profile-switch:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-light)}.home-profile-settings{border-radius:10px;width:34px;height:34px;position:static!important}.home-profile-settings:hover{transform:rotate(45deg)}.account-type-card{background:var(--bg-secondary);border:2px solid var(--border);cursor:pointer;text-align:right;border-radius:16px;align-items:center;gap:14px;width:100%;padding:14px 16px;transition:all .2s;display:flex}.account-type-card:hover{border-color:var(--accent);transform:translateY(-2px);box-shadow:0 6px 16px #0000001a}.account-type-card.quick:hover{border-color:#f39c12;box-shadow:0 6px 16px #f1c40f4d}.account-type-card.secure:hover{border-color:#3498db;box-shadow:0 6px 16px #3498db4d}.account-type-icon{flex-shrink:0;justify-content:center;align-items:center;width:48px;height:48px;font-size:32px;display:flex}.account-type-body{flex:1}.account-type-title{color:var(--text-primary);margin-bottom:2px;font-size:16px;font-weight:800}.account-type-desc{color:var(--text-secondary);font-size:12px;line-height:1.4}.password-row{align-items:center;gap:6px;width:100%;display:flex}.password-row .profile-input{flex:1}.profile-input-ltr{text-align:left;direction:ltr;font-family:ui-monospace,monospace}.profile-card-lock{opacity:.7;margin-right:4px;font-size:13px}.profile-selector-overlay{z-index:250;background:linear-gradient(135deg,#e74c3cf5,#3498dbf5);justify-content:center;align-items:center;padding:20px;animation:.3s fadeIn;display:flex;position:fixed;inset:0;overflow-y:auto}.profile-selector{background:var(--bg-card);border-radius:24px;flex-direction:column;align-items:center;gap:14px;width:100%;max-width:460px;max-height:calc(100vh - 40px);padding:28px 22px 22px;animation:.3s ease-out popIn;display:flex;position:relative;overflow-y:auto;box-shadow:0 20px 60px #00000059}.profile-close,.profile-back{cursor:pointer;color:var(--text-secondary);background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;padding:6px;display:flex;position:absolute;top:14px}.profile-close{left:14px}.profile-back{right:14px}.profile-close:hover,.profile-back:hover{background:var(--pill-inactive)}.profile-selector-title{color:var(--accent);text-align:center;margin:0;font-size:22px;font-weight:900}.profile-selector-desc{color:var(--text-secondary);text-align:center;margin:0;font-size:14px}.profile-list{flex-direction:column;gap:8px;width:100%;display:flex}.profile-card{background:var(--bg-secondary);border:2px solid var(--border);cursor:pointer;border-radius:14px;align-items:center;gap:12px;padding:10px 12px;transition:all .15s;display:flex}.profile-card:hover,.profile-card:focus{border-color:var(--accent);outline:none;transform:translateY(-1px);box-shadow:0 4px 12px #e74c3c26}.profile-card-avatar{flex-shrink:0}.profile-card-info{flex:1;min-width:0}.profile-card-name{font-size:16px;font-weight:800}.profile-card-meta{color:var(--text-secondary);font-size:12px}.profile-card-code{color:var(--accent);letter-spacing:.5px;margin-top:2px;font-family:ui-monospace,monospace;font-size:11px;font-weight:700}.profile-card-delete{cursor:pointer;color:var(--text-secondary);background:0 0;border:none;border-radius:8px;padding:8px;transition:all .2s}.profile-card-delete:hover{color:var(--wrong);background:var(--wrong-light)}.profile-actions{flex-direction:column;align-items:center;gap:8px;width:100%;margin-top:4px;display:flex}.profile-field{width:100%;color:var(--text-secondary);flex-direction:column;gap:6px;font-size:13px;font-weight:700;display:flex}.profile-input{border:2px solid var(--border);background:var(--bg-secondary);color:var(--text-primary);box-sizing:border-box;border-radius:12px;width:100%;padding:12px 14px;font-family:inherit;font-size:16px;font-weight:500}.profile-input:focus{border-color:var(--accent);outline:none}.profile-code-input{letter-spacing:4px;text-align:center;text-transform:uppercase;font-family:ui-monospace,monospace;font-size:22px;font-weight:800}.avatar-grid{grid-template-columns:repeat(4,1fr);gap:6px;display:grid}.avatar-option{background:var(--bg-secondary);border:2px solid var(--border);cursor:pointer;border-radius:12px;justify-content:center;align-items:center;padding:6px;transition:all .15s;display:flex}.avatar-option:hover{border-color:var(--accent)}.avatar-option.active{border-color:var(--accent);background:var(--accent-light);transform:scale(1.05);box-shadow:0 2px 8px #e74c3c40}.profile-error{color:var(--wrong);text-align:center;background:var(--wrong-light);border-radius:8px;width:100%;padding:8px 12px;font-size:13px;font-weight:700}.profile-created-hero{filter:drop-shadow(0 6px 14px #00000026);animation:2s ease-in-out infinite onboardingBounce}.profile-created-title{color:var(--accent);margin:0;font-size:24px;font-weight:900}.profile-created-intro{color:var(--text-primary);text-align:center;margin:0;font-size:14px}.profile-code-display{background:linear-gradient(135deg,#f1c40f26,#e67e2226);border:2px dashed #f1c40f;border-radius:14px;justify-content:center;align-items:center;gap:12px;width:100%;padding:14px 18px;display:flex}.profile-code-text{letter-spacing:4px;color:#d68910;font-family:ui-monospace,monospace;font-size:28px;font-weight:900}.profile-created-note{color:var(--text-secondary);text-align:center;margin:0;font-size:12px;line-height:1.5}.settings-section{width:100%;padding:12px 0}.settings-section+.settings-section{border-top:1px solid var(--border);margin-top:4px;padding-top:14px}.settings-section-title{margin-bottom:4px;font-size:15px;font-weight:800}.settings-profile{align-items:center;gap:12px;padding:8px 0;display:flex}.settings-profile-avatar{flex-shrink:0}.settings-profile-info{flex:1;min-width:0}.settings-profile-name{font-size:16px;font-weight:800}.settings-profile-code-row{align-items:center;gap:6px;margin-top:2px;display:flex}.settings-profile-code{color:var(--accent);letter-spacing:.5px;font-family:ui-monospace,monospace;font-size:13px;font-weight:700}.settings-profile-copy{width:28px;height:28px}.settings-switch-btn{background:var(--bg-secondary);border:1.5px solid var(--border);cursor:pointer;color:var(--text-primary);border-radius:10px;align-items:center;gap:4px;padding:8px 12px;font-size:13px;font-weight:700;transition:all .2s;display:flex}.settings-switch-btn:hover{border-color:var(--accent);color:var(--accent)}.settings-profile-actions{flex-direction:column;flex-shrink:0;gap:6px;display:flex}.settings-logout-btn{color:var(--wrong)!important}.settings-logout-btn:hover{background:var(--wrong-light);border-color:var(--wrong)!important;color:var(--wrong)!important}.inline-icon{vertical-align:middle;margin-left:4px;display:inline-block}.inline-icon.gold{color:#f1c40f}.inline-icon.fire{color:#e74c3c}.icon-gold{color:#f1c40f}.icon-accent{color:var(--accent)}.icon-muted{color:var(--text-secondary)}.icon-btn{background:var(--bg-secondary);border:1px solid var(--border);cursor:pointer;width:34px;height:34px;color:var(--text-secondary);border-radius:10px;justify-content:center;align-items:center;transition:all .2s;display:flex}.icon-btn:hover{background:var(--accent-light);border-color:var(--accent);color:var(--accent)}.start-btn,.adventure-btn,.learn-btn,.play-again-btn{justify-content:center;align-items:center;gap:8px;display:inline-flex}.hero-level-badge{background:var(--accent);color:#fff;border-radius:8px;justify-content:center;align-items:center;gap:2px;min-width:40px;padding:4px 8px;font-size:12px;font-weight:800;display:flex}.hp-icon{flex-shrink:0}.lottie-celebration{pointer-events:none;z-index:10;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.lottie-confetti{width:100%;height:100%;position:absolute}.lottie-star{width:80px;height:80px}.end-icon{justify-content:center;align-items:center;margin-top:8px;display:flex;position:relative}.lottie-end-confetti{pointer-events:none;width:200px;height:200px;position:absolute}.lottie-level-up{width:60px;height:60px;display:inline-block}.pokemon-sprite{justify-content:center;align-items:center;transition:filter .3s,transform .3s;display:flex}.pokemon-sprite img{object-fit:contain;filter:drop-shadow(0 2px 4px #00000026);max-width:100%;max-height:100%}.pokemon-damaged{animation:.6s cubic-bezier(.36,0,.66,-.56) pokemonHit}.pokemon-damaged img{filter:brightness(1.8)drop-shadow(0 0 12px #ffdc64e6)saturate(1.5)}@keyframes pokemonHit{0%{transform:translate(0)scale(1)}10%{transform:translate(-8px)scale(1.08)rotate(-4deg)}25%{transform:translate(8px)scale(.95)rotate(4deg)}40%{transform:translate(-6px)scale(1.05)rotate(-2deg)}55%{transform:translate(6px)scale(.98)rotate(2deg)}70%{transform:translate(-3px)scale(1.02)}85%{transform:translate(3px)scale(.99)}to{transform:translate(0)scale(1)}}.damage-stars{pointer-events:none;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.damage-star{opacity:0;font-size:18px;animation:.8s ease-out forwards damageStar;position:absolute}@keyframes damageStar{0%{opacity:0;transform:translate(0)scale(.5)}30%{opacity:1}to{transform:translate(var(--dx,30px), var(--dy,-30px)) scale(1.2) rotate(360deg);opacity:0}}.pokemon-sprite-large{filter:drop-shadow(0 4px 12px #0003)}.app{flex-direction:column;align-items:center;gap:16px;width:100%;max-width:520px;margin:0 auto;padding:16px;display:flex;position:relative}.screen-wrap{width:100%}.screen{flex-direction:column;align-items:center;gap:14px;width:100%;display:flex}.hero-bar{-webkit-backdrop-filter:blur(10px);background:#ffffffe6;border:1px solid #fff6;border-radius:16px;flex-direction:column;gap:8px;width:100%;padding:12px 16px;display:flex;box-shadow:0 4px 20px #0000000f}@media (prefers-color-scheme:dark){.hero-bar{background:#1e2a4ae6;border:1px solid #ffffff0f;box-shadow:0 4px 20px #00000040}}.hero-bar-top{justify-content:space-between;align-items:center;display:flex}.hero-side{flex:1;align-items:center;gap:10px;display:flex}.villain-side{flex-shrink:0}.hero-emoji{font-size:32px;line-height:1}.hero-info{flex-direction:column;flex:1;gap:2px;display:flex}.hero-name-row{justify-content:space-between;align-items:center;display:flex}.hero-name{font-size:15px;font-weight:700}.hero-actions{gap:4px;display:flex}.hero-stars{letter-spacing:2px;color:var(--star-color);font-size:16px}.wild-pokemon-name{color:var(--accent);text-align:center;font-size:12px;font-weight:700}.battle-stats{align-items:center;gap:8px;display:flex}.hp-label{color:#f39c12;letter-spacing:1px;font-size:11px;font-weight:800}.hp-container{flex:1;align-items:center;gap:6px;display:flex}.hp-bar{background:#333;border:1px solid #555;border-radius:4px;flex:1;height:8px;overflow:hidden}.hp-fill{border-radius:3px;height:100%;transition:width .6s cubic-bezier(.22,1,.36,1),background .4s;position:relative;overflow:hidden}.hp-fill:after{content:"";background:linear-gradient(90deg,#0000,#fff6,#0000);animation:2.5s ease-in-out infinite hpShimmer;position:absolute;inset:0;transform:translate(-100%)}@keyframes hpShimmer{0%,to{transform:translate(-100%)}50%{transform:translate(100%)}}@keyframes counterPulse{0%{color:var(--accent);transform:scale(1)}50%{color:#f1c40f;text-shadow:0 0 8px #f1c40f99;transform:scale(1.15)}to{color:var(--accent);transform:scale(1)}}.counter-pulse{animation:.5s ease-out counterPulse;display:inline-block}.hp-text{color:var(--text-secondary);min-width:32px;font-size:12px;font-weight:700}.score-display{color:var(--accent);white-space:nowrap;font-size:18px;font-weight:700}.grade-selector{text-align:center;width:100%}.grade-label{margin-bottom:8px;font-size:15px;font-weight:600}.grade-buttons{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.grade-btn{border:3px solid var(--border);background:var(--bg-secondary);cursor:pointer;border-radius:18px;flex-direction:column;align-items:center;gap:4px;min-width:88px;min-height:104px;padding:10px 8px 8px;transition:all .25s cubic-bezier(.34,1.56,.64,1);display:flex;position:relative;box-shadow:0 3px 10px #0000000f}.grade-btn:hover{border-color:var(--accent);transform:translateY(-3px);box-shadow:0 6px 16px #e74c3c26}.grade-btn:active{transform:translateY(-1px)}.grade-btn.active{background:linear-gradient(135deg, var(--accent), var(--pokeball-dark));color:#fff;border-color:var(--accent);transform:translateY(-4px)scale(1.05);box-shadow:0 8px 20px #e74c3c66}.grade-btn.active .grade-name{color:#fff;font-weight:800}.grade-btn .pokemon-sprite{transition:transform .3s}.grade-btn.active .pokemon-sprite{filter:drop-shadow(0 4px 8px #00000040);transform:scale(1.08)translateY(-2px)}.grade-name{font-size:13px;font-weight:700;transition:all .2s}.grade-emoji{font-size:24px}.grade-name{font-size:13px;font-weight:600}.start-screen{gap:18px;padding-top:4px}.start-title-block{flex-direction:column;align-items:center;gap:6px;margin-top:-4px;display:flex}.start-subtitle{background:linear-gradient(135deg,#e74c3c,#f1c40f,#e74c3c);-webkit-text-fill-color:transparent;letter-spacing:1px;text-align:center;filter:drop-shadow(0 2px 8px #e74c3c33);-webkit-background-clip:text;background-clip:text;font-size:34px;font-weight:900;line-height:1.1}.start-tagline-chip{color:#d68910;letter-spacing:.5px;background:#f1c40f26;border:1.5px solid #f1c40f66;border-radius:14px;padding:4px 14px;font-size:13px;font-weight:700;display:inline-block}@media (prefers-color-scheme:dark){.start-tagline-chip{color:#f1c40f;background:#f1c40f1a}}.hero-banner{justify-content:center;align-items:center;width:100%;min-height:110px;padding:16px 0 8px;display:flex;position:relative}.hero-banner-sprites{z-index:2;justify-content:center;align-items:flex-end;gap:8px;display:flex;position:relative}.hero-banner-pokemon{filter:drop-shadow(0 6px 12px #00000026);animation:3s ease-in-out infinite pokemonFloat}@keyframes pokemonFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.hero-banner-pokeball{opacity:.08;z-index:1;animation:8s linear infinite pokeballSpin;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}@keyframes pokeballSpin{0%{transform:translate(-50%,-50%)rotate(0)}to{transform:translate(-50%,-50%)rotate(360deg)}}.profile-card-home{background:var(--bg-card);border:1.5px solid var(--border);border-radius:20px;align-items:center;gap:12px;padding:10px 20px;display:flex;box-shadow:0 3px 12px #0000000f}.profile-card-item{align-items:center;gap:8px;display:flex}.profile-card-stack{flex-direction:column;line-height:1.1;display:flex}.profile-card-label{color:var(--text-secondary);letter-spacing:.5px;text-transform:uppercase;font-size:10px;font-weight:600}.profile-card-value{color:var(--text-primary);font-size:18px;font-weight:900}.profile-card-divider{background:var(--border);width:1px;height:28px}.pokemon-preview-compact{background:var(--bg-card);border:1px solid var(--border);border-radius:20px;align-items:center;gap:8px;padding:6px 14px;display:flex}.pokemon-preview-compact .pokemon-preview-label{color:var(--text-secondary);white-space:nowrap;font-size:12px;font-weight:600}.pokemon-preview-compact .pokemon-preview-row{gap:2px;display:flex}.settings-icon-btn{background:var(--bg-card);border:1px solid var(--border);cursor:pointer;width:40px;height:40px;color:var(--text-secondary);z-index:5;border-radius:50%;justify-content:center;align-items:center;transition:all .2s;display:flex;position:absolute;top:10px;left:10px;box-shadow:0 2px 8px #0000000f}.settings-icon-btn:hover{background:var(--accent-light);color:var(--accent);transform:rotate(45deg)}.settings-overlay{z-index:100;background:#00000080;justify-content:center;align-items:center;animation:.2s fadeIn;display:flex;position:fixed;inset:0}.settings-modal{background:var(--bg-card);border-radius:20px;width:90%;max-width:420px;max-height:80vh;padding:20px;animation:.2s ease-out popIn;overflow-y:auto;box-shadow:0 20px 60px #0000004d}.settings-header{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.settings-title{font-size:20px;font-weight:800}.settings-desc{color:var(--text-secondary);margin-bottom:12px;font-size:13px}.start-btn.big,.adventure-btn.big{width:100%;padding:18px 32px;font-size:22px}.start-actions{flex-direction:column;gap:10px;width:100%;max-width:380px;display:flex}.profile-summary{color:var(--text-secondary);gap:16px;font-size:14px;font-weight:600;display:flex}.categories-label{margin-top:4px;font-size:15px;font-weight:600}.categories{flex-wrap:wrap;justify-content:center;gap:8px;width:100%;display:flex}.cat-pill{border:2px solid var(--border);background:var(--pill-inactive);color:var(--pill-inactive-text);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:20px;padding:8px 14px;font-size:13px;font-weight:600;transition:all .2s}.cat-pill:hover{border-color:var(--accent)}.cat-pill.active{background:var(--pill-active);color:var(--pill-active-text);border-color:var(--pill-active)}.recommend-banner{background:var(--accent-light);border:1px solid var(--accent);text-align:center;width:100%;color:var(--accent);border-radius:10px;padding:10px 16px;font-size:14px}.start-actions{flex-wrap:wrap;justify-content:center;gap:12px;margin-top:8px;display:flex}.start-actions-secondary{gap:12px;display:flex}.adventure-btn{color:#fff;cursor:pointer;background:linear-gradient(135deg,#3498db,#2980b9);border:none;border-radius:16px;padding:16px 36px;font-size:20px;font-weight:800;transition:transform .15s,box-shadow .2s;box-shadow:0 4px 15px #3498db59}.adventure-btn:hover{transform:scale(1.04)translateY(-2px);box-shadow:0 8px 25px #3498db73}.start-btn{color:#fff;cursor:pointer;letter-spacing:.5px;background:linear-gradient(135deg,#e74c3c,#c0392b);border:none;border-radius:16px;padding:16px 48px;font-size:22px;font-weight:800;transition:transform .15s,box-shadow .2s;box-shadow:0 4px 15px #e74c3c59}.start-btn:hover{transform:scale(1.04)translateY(-2px);box-shadow:0 8px 25px #e74c3c73}.start-btn:active{transform:scale(.97);box-shadow:0 2px 8px #e74c3c4d}.start-links{gap:16px;display:flex}.link-btn{color:var(--accent);cursor:pointer;background:0 0;border:none;padding:8px;font-size:15px;font-weight:600;text-decoration:underline;transition:opacity .2s}.link-btn:hover{opacity:.7}.progress-dots{justify-content:center;gap:8px;margin-bottom:4px;display:flex}.dot{background:var(--pill-inactive);border:2px solid var(--border);border-radius:50%;width:14px;height:14px;transition:all .3s}.dot.correct{background:var(--correct);border-color:var(--correct)}.dot.wrong{background:var(--wrong);border-color:var(--wrong)}.dot.current{border-color:var(--accent);transform:scale(1.2)}.question-card{-webkit-backdrop-filter:blur(12px);text-align:center;background:#ffffffd9;border:1px solid #fff6;border-radius:20px;width:100%;padding:28px 22px;position:relative;overflow:hidden;box-shadow:0 8px 32px #00000014}@media (prefers-color-scheme:dark){.question-card{background:#1e2a4ad9;border:1px solid #ffffff14;box-shadow:0 8px 32px #0000004d}}.question-category{color:var(--accent);background:var(--accent-light);letter-spacing:.3px;border-radius:12px;margin-bottom:8px;padding:4px 12px;font-size:12px;font-weight:700;animation:.4s ease-out categoryFadeIn;display:inline-block}@keyframes categoryFadeIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.question-text{margin-bottom:18px;font-size:24px;font-weight:700;line-height:1.5}.boss-taunt-bubble{color:#333;white-space:nowrap;border:2px solid var(--accent);z-index:10;background:#fff;border-radius:12px;padding:8px 12px;font-size:13px;font-weight:700;animation:.3s cubic-bezier(.34,1.56,.64,1) tauntPop;position:absolute;bottom:100%;left:-8px;transform:translate(-100%);box-shadow:0 2px 10px #00000026}.boss-taunt-bubble:after{content:"";border-left:8px solid #0000;border-right:8px solid #0000;border-top:8px solid var(--accent);width:0;height:0;position:absolute;bottom:-8px;right:16px}@keyframes tauntPop{0%{opacity:0;transform:translate(-100%)scale(.5)}to{opacity:1;transform:translate(-100%)scale(1)}}.end-actions{flex-wrap:wrap;justify-content:center;gap:10px;width:100%;display:flex}.share-btn{background:var(--bg-secondary);color:var(--text-primary);border:2px solid var(--border);cursor:pointer;border-radius:14px;align-items:center;gap:6px;padding:14px 24px;font-size:16px;font-weight:700;transition:all .2s;display:inline-flex}.share-btn:hover{border-color:var(--accent);color:var(--accent);transform:translateY(-2px)}.end-menu-btn{background:var(--bg-secondary);color:var(--text-primary);border:2px solid var(--border);cursor:pointer;border-radius:14px;align-items:center;gap:6px;padding:14px 24px;font-size:16px;font-weight:700;transition:all .2s;display:inline-flex}.end-menu-btn:hover{border-color:var(--accent);color:var(--accent);transform:translateY(-2px)}.share-overlay{z-index:150;background:#000000b3;justify-content:center;align-items:center;padding:20px;animation:.2s fadeIn;display:flex;position:fixed;inset:0}.share-modal{background:var(--bg-card);border-radius:20px;flex-direction:column;align-items:center;gap:16px;width:100%;max-width:380px;padding:24px;animation:.3s ease-out popIn;display:flex;position:relative}.share-close{position:absolute;top:12px;left:12px}.share-preview{border:2px solid var(--accent);text-align:center;background:linear-gradient(135deg,#e74c3c1a,#f1c40f1a);border-radius:16px;flex-direction:column;align-items:center;gap:8px;width:100%;padding:20px;display:flex}.share-title{color:var(--accent);font-size:18px;font-weight:800}.share-stars{letter-spacing:4px;color:#f1c40f;font-size:32px}.share-big-score{color:var(--accent);font-size:56px;font-weight:900;line-height:1}.share-label{color:var(--text-secondary);margin-top:-4px;font-size:14px}.share-stat{font-size:14px;font-weight:600}.share-catch{flex-direction:column;align-items:center;gap:4px;margin-top:8px;display:flex}.share-catch img{filter:drop-shadow(0 2px 8px #0003)}.onboarding-overlay{z-index:300;background:linear-gradient(135deg,#e74c3cf2,#3498dbf2);justify-content:center;align-items:center;padding:20px;animation:.4s fadeIn;display:flex;position:fixed;inset:0}.onboarding-content{background:var(--bg-card);border-radius:24px;flex-direction:column;align-items:center;gap:16px;width:100%;max-width:380px;padding:32px 24px 24px;animation:.4s ease-out popIn;display:flex;position:relative;box-shadow:0 20px 60px #0000004d}.onboarding-skip{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:8px;padding:6px 12px;font-size:13px;position:absolute;top:12px;left:16px}.onboarding-skip:hover{background:var(--pill-inactive)}.onboarding-pokemon{animation:2s ease-in-out infinite onboardingBounce}@keyframes onboardingBounce{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}.onboarding-title{color:var(--accent);margin:0;font-size:24px;font-weight:900}.onboarding-text{color:var(--text-primary);text-align:center;margin:0;font-size:15px;line-height:1.6}.onboarding-dots{gap:6px;margin:4px 0;display:flex}.onboarding-dot{background:var(--pill-inactive);border-radius:50%;width:8px;height:8px;transition:all .3s}.onboarding-dot.active{background:var(--accent);border-radius:4px;width:24px}.onboarding-dot.done{background:var(--correct)}.daily-challenge{background:linear-gradient(135deg,#f1c40f26,#e67e2226);border:2px solid #f1c40f;border-radius:16px;align-items:center;gap:12px;width:100%;padding:12px 16px;animation:3s ease-in-out infinite dailyChallengeGlow;display:flex;box-shadow:0 2px 10px #f1c40f33}.daily-challenge.completed{border-color:var(--correct);background:linear-gradient(135deg,#2ecc7126,#27ae6026);animation:none}@keyframes dailyChallengeGlow{0%,to{box-shadow:0 2px 10px #f1c40f33}50%{box-shadow:0 4px 18px #f1c40f66}}.daily-challenge-icon{flex-shrink:0;font-size:32px}.daily-challenge-info{flex:1}.daily-challenge-title{color:#e67e22;font-size:14px;font-weight:800}.daily-challenge.completed .daily-challenge-title{color:var(--correct)}.daily-challenge-desc{color:var(--text-secondary);font-size:12px}.daily-challenge-reward{color:#333;white-space:nowrap;background:#f1c40f;border-radius:10px;padding:4px 10px;font-size:13px;font-weight:900}.daily-challenge.completed .daily-challenge-reward{background:var(--correct);color:#fff}.daily-complete-banner{color:#fff;background:linear-gradient(135deg,#f1c40f,#e67e22);border-radius:16px;align-items:center;gap:12px;width:100%;padding:14px 18px;display:flex;box-shadow:0 4px 16px #f1c40f66}.daily-complete-icon{font-size:36px}.daily-complete-title{font-size:16px;font-weight:900}.daily-complete-reward{font-size:14px;font-weight:700}.hint-container{justify-content:center;margin-top:8px;display:flex}.hint-btn{color:#333;cursor:pointer;background:linear-gradient(135deg,#f1c40f,#e67e22);border:2px solid #e67e22;border-radius:20px;align-items:center;gap:6px;padding:8px 16px;font-size:14px;font-weight:700;transition:all .2s;display:inline-flex;box-shadow:0 2px 6px #f1c40f4d}.hint-btn:hover:not(:disabled){transform:translateY(-2px)scale(1.05);box-shadow:0 4px 12px #f1c40f80}.hint-btn:active:not(:disabled){transform:scale(.95)}.hint-btn:disabled,.hint-btn.used{opacity:.5;cursor:default;box-shadow:none}.hint-cost{color:#c0392b;background:#fff;border-radius:8px;padding:1px 6px;font-size:11px;font-weight:900}.choice-btn.hinted-out{opacity:.25;cursor:not-allowed;animation:.4s ease-out hintedOut;background:var(--pill-inactive)!important;color:var(--text-secondary)!important;border-color:var(--border)!important}@keyframes hintedOut{0%{opacity:1;transform:scale(1)}50%{transform:scale(.9)rotate(-5deg)}to{opacity:.25;transform:scale(.95)}}.blank-slot{background:var(--accent-light);border-bottom:3px solid var(--accent);min-width:40px;color:var(--accent);border-radius:4px;margin:0 4px;padding:0 8px;font-weight:900;display:inline-block}.choices{grid-template-columns:1fr 1fr;gap:10px;display:grid}.choice-btn{border:2px solid var(--border);background:var(--bg-secondary);color:var(--text-primary);cursor:pointer;border-radius:14px;padding:16px;font-size:22px;font-weight:700;transition:all .15s;box-shadow:0 2px 8px #0000000a}@media (hover:hover){.choice-btn:hover:not(.disabled){border-color:var(--accent);background:var(--accent-light);transform:scale(1.05)translateY(-2px);box-shadow:0 6px 16px #0000001a}}.choice-btn:active:not(.disabled){transform:scale(.95);box-shadow:0 1px 4px #0000000d}.choice-btn.correct-choice{background:var(--correct-light);border-color:var(--correct);color:var(--correct)}.choice-btn.wrong-choice{background:var(--wrong-light);border-color:var(--wrong);color:var(--wrong)}.choice-btn.disabled{cursor:default;pointer-events:none}.feedback-area{flex-direction:column;align-items:center;gap:4px;min-height:50px;margin-top:14px;display:flex}.feedback-text{font-size:18px;font-weight:700}.streak-fire{letter-spacing:4px;font-size:24px}.pokeball-catch-container{pointer-events:none;z-index:10;position:absolute;top:10px;left:50%;transform:translate(-50%)}.catch-flash{pointer-events:none;background:radial-gradient(circle,#fffc,#0000);border-radius:50%;width:60px;height:60px;position:absolute;top:0;left:50%;transform:translate(-50%)}.xp-flyup{color:var(--accent);pointer-events:none;z-index:10;text-shadow:0 1px 4px #00000026;font-size:18px;font-weight:800;position:absolute;bottom:20px;right:20px}.streak-gold-flash{pointer-events:none;z-index:0;background:linear-gradient(135deg,#f1c40f,#e67e22);border-radius:20px;position:absolute;inset:0}.confetti-container{pointer-events:none;z-index:10;position:absolute;top:50%;left:50%}.confetti-piece{background:var(--color,#e74c3c);width:8px;height:8px;animation:confettiFall .8s ease-out var(--delay,0s) forwards;border-radius:50%;position:absolute}@keyframes confettiFall{0%{opacity:1;transform:translate(0)rotate(0)scale(1)}to{transform:translate(var(--x), var(--y)) rotate(var(--r)) scale(0);opacity:0}}@keyframes pokeballDrop{0%{opacity:0;transform:translateY(-80px)}30%{opacity:1;transform:translateY(0)}45%{transform:translateY(-8px)rotate(-15deg)}60%{transform:translateY(0)rotate(15deg)}75%{transform:translateY(-4px)rotate(-8deg)}90%{transform:translateY(0)rotate(0)}to{transform:translateY(0)rotate(0)}}.pokeball-drop{animation:.8s ease-out pokeballDrop}@keyframes catchFlash{0%,60%{opacity:0;transform:translate(-50%)scale(.5)}75%{opacity:.6;transform:translate(-50%)scale(1.5)}to{opacity:0;transform:translate(-50%)scale(2)}}.flash-catch{animation:.8s ease-out catchFlash}.end-screen{padding-top:12px}.end-title{font-size:26px;font-weight:700}.new-record-badge{color:#fff;background:linear-gradient(135deg,#f1c40f,#e67e22);border-radius:20px;padding:8px 24px;font-size:18px;font-weight:700;animation:1s ease-in-out infinite pulse}.level-up-badge{background:var(--accent);color:#fff;border-radius:16px;padding:6px 20px;font-size:16px;font-weight:700}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}.end-stats{background:var(--bg-card);border:1px solid var(--border);border-radius:14px;flex-direction:column;align-items:center;gap:10px;width:100%;padding:20px;display:flex}.end-stat{font-size:17px}.end-stat strong{color:var(--accent)}.end-stars{letter-spacing:4px;color:var(--star-color);font-size:32px}.best-score{color:var(--text-secondary);font-size:14px}.play-again-btn{color:#fff;cursor:pointer;background:linear-gradient(135deg,#e74c3c,#c0392b);border:2px solid #0000;border-radius:14px;align-items:center;gap:6px;padding:14px 28px;font-size:17px;font-weight:800;transition:transform .15s,box-shadow .2s;display:inline-flex;box-shadow:0 4px 15px #e74c3c59}.play-again-btn:hover{transform:scale(1.04)translateY(-2px);box-shadow:0 8px 25px #e74c3c73}.end-actions .play-again-btn,.end-actions .end-menu-btn,.end-actions .share-btn{box-sizing:border-box;border-radius:14px;min-height:48px;padding:14px 24px;font-size:16px;font-weight:700}.end-actions .play-again-btn{font-weight:800}.stats-screen{gap:12px;padding-bottom:32px}.back-link{color:var(--accent);cursor:pointer;background:0 0;border:none;align-self:flex-start;padding:4px 0;font-size:15px;font-weight:600}.stats-card{background:var(--bg-card);border:1px solid var(--border);border-radius:14px;width:100%;padding:16px;transition:transform .2s,box-shadow .2s;box-shadow:0 2px 12px #0000000a}.stats-card:hover{transform:translateY(-1px);box-shadow:0 4px 16px #00000014}.stats-title{margin-bottom:10px;font-size:16px;font-weight:700}.profile-card{flex-direction:column;gap:8px;display:flex}.profile-header{align-items:center;gap:12px;display:flex}.profile-avatar{font-size:36px}.profile-info{flex:1}.profile-name{font-size:18px;font-weight:700}.profile-level{color:var(--text-secondary);font-size:14px}.xp-bar{background:var(--pill-inactive);border-radius:4px;height:8px;overflow:hidden}.xp-fill{background:var(--accent);border-radius:4px;height:100%;transition:width .3s}.xp-label{color:var(--text-secondary);text-align:center;font-size:12px}.stats-grid{text-align:center;grid-template-columns:1fr 1fr 1fr 1fr;gap:8px;display:grid}.stat-item{flex-direction:column;gap:2px;display:flex}.stat-value{color:var(--accent);font-size:22px;font-weight:700}.stat-label{color:var(--text-secondary);font-size:12px}.best-scores{grid-template-columns:1fr 1fr;gap:6px;font-size:14px;display:grid}.best-score-item strong{color:var(--accent)}.recommend-card{border-color:var(--accent);background:var(--accent-light)}.weak-topic{justify-content:space-between;align-items:center;padding:6px 0;font-size:14px;display:flex}.weak-score{font-weight:700}.topic-progress{flex-direction:column;gap:4px;margin-bottom:8px;display:flex}.topic-label{font-size:13px}.topic-bar-container{align-items:center;gap:8px;display:flex}.topic-bar{background:var(--pill-inactive);border-radius:4px;flex:1;height:8px;overflow:hidden}.topic-fill{border-radius:4px;height:100%;transition:width .3s}.topic-score{min-width:30px;font-size:12px;font-weight:700}.topic-mastered{font-size:14px}.badges-grid{grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:8px;display:grid}.badge-item{text-align:center;border:1px solid var(--border);border-radius:8px;flex-direction:column;align-items:center;gap:2px;padding:8px 4px;font-size:12px;display:flex}.badge-item.locked{opacity:.4}.badge-item.earned{background:var(--accent-light);border-color:var(--accent)}.badge-emoji{font-size:24px}.badge-name{font-weight:600}.history-item{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:6px 0;font-size:13px;display:flex}.history-item:last-child{border-bottom:none}.badge-overlay{z-index:100;background:#00000080;justify-content:center;align-items:center;animation:.3s fadeIn;display:flex;position:fixed;inset:0}.badge-popup{background:var(--bg-card);text-align:center;border-radius:16px;width:90%;max-width:320px;padding:24px;animation:.3s ease-out popIn}.badge-popup-title{margin-bottom:16px;font-size:22px;font-weight:700}.badge-popup-item{text-align:right;align-items:center;gap:12px;margin-bottom:12px;display:flex}.badge-popup-emoji{font-size:40px}.badge-popup-name{font-size:16px;font-weight:700}.badge-popup-desc{color:var(--text-secondary);font-size:13px}@keyframes fadeIn{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}@keyframes popIn{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}@keyframes shake{0%,to{transform:translate(0)}20%,60%{transform:translate(-6px)}40%,80%{transform:translate(6px)}}.shake{animation:.4s shake}.fade-in{animation:.2s ease-out fadeIn}@keyframes flyUp{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-60px)}}.fly-up{animation:.8s ease-out forwards flyUp}@keyframes flashIn{0%{opacity:0}to{opacity:.15}}.flash-in{animation:.4s forwards flashIn}.bottom-nav{-webkit-backdrop-filter:blur(12px);border-top:1px solid var(--border);padding:6px 8px;padding-bottom:max(6px, env(safe-area-inset-bottom));z-index:50;background:#fffffff2;justify-content:space-around;display:flex;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -2px 12px #0000000f}@media (prefers-color-scheme:dark){.bottom-nav{background:#1a1a2ef2;box-shadow:0 -2px 12px #0000004d}}.bottom-nav-tab{cursor:pointer;color:var(--text-secondary);background:0 0;border:none;flex-direction:column;align-items:center;gap:2px;min-width:56px;padding:6px 12px;font-size:11px;font-weight:600;transition:color .2s;display:flex;position:relative}.bottom-nav-tab.active{color:var(--accent)}.bottom-nav-emoji{font-size:20px;line-height:1}.bottom-nav-label{font-size:10px}.bottom-nav-indicator{background:var(--accent);border-radius:2px;width:24px;height:3px;position:absolute;bottom:0;left:50%;transform:translate(-50%)}.app.has-nav{padding-bottom:72px}@media (width<=520px){.app{padding:12px 8px}.choice-btn{min-height:56px;padding:14px;font-size:20px}.cat-pill{padding:10px 14px;font-size:13px}.question-text{font-size:20px}.start-subtitle{font-size:24px}.start-btn,.adventure-btn,.play-again-btn{padding:14px 32px;font-size:18px}.hero-bar{padding:10px 12px}}html{-webkit-overflow-scrolling:touch;overscroll-behavior:contain}.skeleton{background:linear-gradient(90deg, var(--bg-card) 25%, var(--pill-inactive) 50%, var(--bg-card) 75%);background-size:200% 100%;border-radius:8px;animation:1.5s infinite shimmer}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.hero-bar.boss-battle{background:linear-gradient(135deg,#9b59b626,#e74c3c26);border:2px solid #9b59b6;box-shadow:0 0 20px #9b59b64d}.boss-banner{color:#fff;background:linear-gradient(135deg,#9b59b6,#e74c3c);border-radius:8px;justify-content:center;align-items:center;gap:8px;margin-bottom:4px;padding:6px 12px;font-size:14px;font-weight:800;animation:1.5s ease-in-out infinite bossBannerPulse;display:flex}@keyframes bossBannerPulse{0%,to{box-shadow:0 0 10px #9b59b680}50%{box-shadow:0 0 20px #e74c3ccc}}.villain-side.boss-sprite{filter:drop-shadow(0 0 12px #e74c3c99);animation:2s ease-in-out infinite bossFloat}@keyframes bossFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}.wild-pokemon-name.boss-name{color:#9b59b6;text-shadow:0 0 8px #9b59b64d;font-size:15px;font-weight:800}.boss-hp-row{align-items:center;gap:6px;margin-top:4px;display:flex}.boss-hp-icon{color:#9b59b6}.boss-hp-bar{height:10px}.catch-animation-overlay{z-index:200;background:radial-gradient(#141e32e6,#000000f2);justify-content:center;align-items:center;animation:.3s fadeIn;display:flex;position:fixed;inset:0}.catch-stage{flex-direction:column;justify-content:center;align-items:center;width:300px;height:400px;display:flex;position:relative}.catch-pokemon{transition:all .5s;position:absolute;top:30%;left:50%;transform:translate(-50%)}.catch-pokemon.phase-throw{transform:translate(-50%)scale(1)}.catch-pokemon.phase-shake{opacity:0;transition:all .3s ease-in;transform:translate(-50%)scale(0)}.catch-pokemon.phase-caught{opacity:1;filter:drop-shadow(0 0 20px #ffd700cc);transform:translate(-50%)scale(1.1)}.catch-pokeball{position:absolute;left:50%}.catch-pokeball.phase-throw{animation:.7s cubic-bezier(.5,-.5,.5,1.5) forwards pokeballThrow;top:80%;transform:translate(-50%)}.catch-pokeball.phase-shake{animation:1.3s ease-in-out pokeballShake;top:30%;transform:translate(-50%)}.catch-pokeball.phase-caught{top:78%;transform:translate(-50%)}@keyframes pokeballThrow{0%{top:110%;transform:translate(-50%)rotate(0)}to{top:30%;transform:translate(-50%)rotate(720deg)}}@keyframes pokeballShake{0%,to{transform:translate(-50%)rotate(0)}15%,45%,75%{transform:translate(-50%)rotate(-20deg)}30%,60%,90%{transform:translate(-50%)rotate(20deg)}}.catch-stars{gap:10px;display:flex;position:absolute;top:20%;left:50%;transform:translate(-50%)}.catch-star{opacity:0;font-size:28px;animation:.6s ease-out forwards starPop}@keyframes starPop{0%{opacity:0;transform:scale(0)translateY(0)}50%{opacity:1;transform:scale(1.3)translateY(-10px)}to{opacity:0;transform:scale(1)translateY(-20px)}}.catch-text{text-align:center;opacity:0;white-space:nowrap;transition:opacity .4s;position:absolute;bottom:10%;left:50%;transform:translate(-50%)}.catch-text.visible{opacity:1}.catch-new-badge{color:#fff;background:linear-gradient(135deg,#f1c40f,#e67e22);border-radius:10px;margin-bottom:8px;padding:4px 12px;font-size:14px;font-weight:800;animation:.8s ease-in-out infinite newBadgePulse;display:inline-block}@keyframes newBadgePulse{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}.catch-message{color:#fff;text-shadow:0 2px 8px #000c;font-size:22px;font-weight:700}.evolution-banner{text-align:center;background:linear-gradient(135deg,#f1c40f,#e67e22,#e74c3c);border-radius:16px;width:100%;padding:16px;animation:2s ease-in-out infinite evolutionGlow;box-shadow:0 4px 20px #e74c3c66}@keyframes evolutionGlow{0%,to{box-shadow:0 4px 20px #e74c3c66}50%{box-shadow:0 4px 30px #f1c40f99}}.evolution-title{color:#fff;text-shadow:0 2px 4px #0000004d;margin-bottom:12px;font-size:20px;font-weight:900}.evolution-row{background:#ffffffe6;border-radius:12px;justify-content:center;align-items:center;gap:12px;margin-bottom:4px;padding:8px;display:flex}.evolution-arrow{color:#e74c3c;font-size:28px;font-weight:900;animation:1s ease-in-out infinite evolveArrow}@keyframes evolveArrow{0%,to{transform:translate(0)}50%{transform:translate(-4px)}}.pokemon-caught-banner{border:2px solid var(--correct);background:linear-gradient(135deg,#d5f5e3,#abebc6);border-radius:16px;align-items:center;gap:12px;width:100%;padding:12px 20px;display:flex}.pokemon-caught-text{color:#1e8449;font-size:16px;font-weight:700}.caught-new{color:#333;background:#f1c40f;border-radius:8px;margin-left:4px;padding:2px 8px;font-size:13px;font-weight:800;display:inline-block}.pokemon-escaped-banner{background:var(--wrong-light);border:1px solid var(--wrong);opacity:.8;border-radius:14px;align-items:center;gap:12px;width:100%;padding:10px 16px;display:flex}.pokemon-escaped-text{color:var(--wrong);font-size:15px;font-weight:600}@media (prefers-color-scheme:dark){.pokemon-caught-banner{background:linear-gradient(135deg,#1a3a2a,#1e5631)}.pokemon-caught-text{color:#2ecc71}}.pokedex-screen{gap:12px;padding-bottom:32px}.pokedex-header{text-align:center;width:100%}.pokedex-title{color:var(--accent);font-size:28px;font-weight:900}.pokedex-progress{margin-top:8px}.pokedex-count{color:var(--text-primary);font-size:20px;font-weight:800}.pokedex-bar{background:var(--pill-inactive);border-radius:5px;height:10px;margin:6px 0;overflow:hidden}.pokedex-bar-fill{background:linear-gradient(90deg, var(--accent), #e67e22);border-radius:5px;height:100%;transition:width .5s}.pokedex-pct{color:var(--text-secondary);font-size:13px}.pokedex-group{width:100%}.pokedex-group-title{margin:8px 0;font-size:16px;font-weight:700}.pokedex-grid{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}@media (width<=400px){.pokedex-grid{grid-template-columns:repeat(2,1fr);gap:6px}}.pokedex-card-wrap{perspective:800px;cursor:pointer;aspect-ratio:1/1.4;min-height:160px}.pokedex-card-wrap[tabindex="-1"]{cursor:default}.pokedex-card{width:100%;height:100%;transform-style:preserve-3d;transition:transform .5s cubic-bezier(.4,0,.2,1);position:relative}.pokedex-card-wrap.flipped .pokedex-card{transform:rotateY(180deg)}.card-face{background:var(--bg-card);border:2px solid var(--border);backface-visibility:hidden;border-radius:12px;flex-direction:column;justify-content:space-between;align-items:center;padding:10px 6px 8px;display:flex;position:absolute;inset:0}.pokedex-card-wrap[tabindex="0"] .card-front{border-color:var(--correct);box-shadow:0 2px 8px #2ecc7126}.pokedex-card-wrap[tabindex="0"]:hover .card-front{transform:translateY(-2px);box-shadow:0 6px 16px #2ecc7140}.pokedex-card-wrap[tabindex="-1"] .card-face{opacity:.5}.card-back{background:linear-gradient(135deg, var(--accent), var(--pokeball-dark));color:#fff;border-color:var(--accent);justify-content:center;transform:rotateY(180deg)}.card-back-emoji{color:#f1c40f;justify-content:center;align-items:center;margin-bottom:4px;font-size:20px;display:flex}.card-back-stats{flex-direction:column;align-items:center;gap:4px;width:100%;display:flex}.stat-row{justify-content:space-between;gap:6px;width:100%;padding:0 8px;font-size:12px;display:flex}.stat-row strong{color:#f1c40f}.stat-badge{letter-spacing:.5px;border-radius:6px;margin-top:4px;padding:2px 8px;font-size:10px;font-weight:800}.stat-badge.boss{color:#333;background:#f1c40f}.stat-badge.legendary{color:#fff;background:linear-gradient(90deg,#9b59b6,#e74c3c)}.pokedex-sprite{flex:1;justify-content:center;align-items:center;width:100%;min-height:0;display:flex}.pokedex-sprite .pokemon-sprite{max-width:110px;max-height:110px;width:100%!important;height:100%!important}.pokedex-sprite .pokemon-sprite img{object-fit:contain;width:100%;height:100%}.pokedex-silhouette{filter:brightness(0)saturate(0);opacity:.3}.pokedex-name{text-align:center;min-height:16px;font-size:11px;font-weight:700}.pokedex-id{color:var(--text-secondary);font-size:10px}.map-screen{gap:12px;padding-bottom:32px}.map-title{font-size:26px;font-weight:800}.map-subtitle{color:var(--text-secondary);font-size:15px}.map-path{flex-direction:column;gap:4px;width:100%;display:flex}.map-region{width:100%}.map-region.locked{opacity:.5}.region-header{background:var(--bg-card);border-right:4px solid;border-radius:14px;align-items:center;gap:12px;margin-bottom:8px;padding:12px 16px;display:flex;box-shadow:0 2px 8px #0000000a}.region-emoji{font-size:32px}.region-info{flex:1}.region-name{font-size:18px;font-weight:800}.region-desc{color:var(--text-secondary);font-size:13px}.stage-list{flex-direction:column;gap:6px;padding:0 8px;display:flex}.stage-node{background:var(--bg-card);border:2px solid var(--border);cursor:pointer;text-align:right;border-radius:12px;align-items:center;gap:12px;width:100%;padding:12px 14px;transition:all .2s;display:flex;box-shadow:0 2px 6px #00000008}.stage-node:hover:not(.locked){border-color:var(--region-color)}.stage-node.completed{border-color:var(--correct);background:var(--correct-light)}.stage-node.boss{border-width:3px}.stage-node.boss:not(.completed):not(.locked){border-color:var(--region-color);background:var(--region-light)}.stage-node.locked{opacity:.4;cursor:default}.stage-icon{text-align:center;flex-shrink:0;width:40px;font-size:24px}.stage-emoji{font-size:24px}.stage-info{flex:1}.stage-name{font-size:15px;font-weight:700}.stage-stars{letter-spacing:2px;font-size:14px}.stage-boss-label{color:var(--accent);font-size:12px;font-weight:700}.stage-questions{color:var(--text-secondary);white-space:nowrap;font-size:12px}.path-connector{opacity:.3;border-radius:2px;width:3px;height:20px;margin:4px auto}.learn-btn{background:var(--bg-secondary);color:var(--accent);border:2px solid var(--accent);cursor:pointer;border-radius:14px;padding:14px 44px;font-size:20px;font-weight:700;transition:transform .15s,opacity .2s}.learn-btn:hover{opacity:.88;background:var(--accent-light);transform:scale(1.03)}.learn-screen{gap:12px;padding-bottom:32px}.learn-title{font-size:24px;font-weight:700}.learn-desc{color:var(--text-secondary);text-align:center;font-size:14px}.learn-group{width:100%}.learn-group-title{margin-top:8px;margin-bottom:8px;font-size:16px;font-weight:700}.lesson-card{border:1px solid var(--border);background:var(--bg-card);cursor:pointer;text-align:right;border-radius:12px;align-items:center;gap:12px;width:100%;margin-bottom:8px;padding:12px 16px;transition:all .2s;display:flex}.lesson-card:hover{border-color:var(--accent);background:var(--accent-light)}.lesson-card.completed{border-color:var(--correct)}.lesson-emoji{flex-shrink:0;font-size:24px}.lesson-name{flex:1;font-size:15px;font-weight:600}.lesson-check{flex-shrink:0;font-size:18px}.lesson-header{align-items:center;gap:10px;font-size:20px;font-weight:700;display:flex}.lesson-header-emoji{font-size:32px}.lesson-progress{background:var(--pill-inactive);border-radius:3px;width:100%;height:6px;overflow:hidden}.lesson-progress-fill{background:var(--accent);border-radius:3px;height:100%;transition:width .3s}.lesson-step-count{color:var(--text-secondary);font-size:13px}.lesson-content{background:var(--bg-card);border:1px solid var(--border);border-radius:14px;width:100%;min-height:120px;padding:20px;position:relative}.speak-btn{background:var(--bg-secondary);border:1px solid var(--border);cursor:pointer;z-index:1;border-radius:10px;padding:6px 10px;font-size:22px;line-height:1;transition:all .2s;position:absolute;top:12px;left:12px}.speak-btn:hover{background:var(--accent-light);border-color:var(--accent);transform:scale(1.1)}.lesson-text{font-size:17px;line-height:1.7}.lesson-tip{background:var(--accent-light);border-right:4px solid var(--accent);border-radius:10px;padding:12px 16px;font-size:16px;line-height:1.6}.lesson-example{flex-direction:column;gap:12px;display:flex}.example-problem{text-align:center;background:var(--accent-light);border-radius:10px;padding:12px;font-size:22px;font-weight:700}.example-steps{flex-direction:column;gap:8px;display:flex}.example-step{border-bottom:1px solid var(--border);gap:8px;padding:6px 0;font-size:16px;line-height:1.5;display:flex}.example-step:last-child{border-bottom:none}.step-number{color:var(--accent);min-width:20px;font-weight:700}.lesson-nav{justify-content:center;gap:12px;width:100%;display:flex}.lesson-nav-btn{border:2px solid var(--border);background:var(--bg-secondary);color:var(--text-primary);cursor:pointer;border-radius:12px;padding:12px 28px;font-size:16px;font-weight:700;transition:all .2s}.lesson-nav-btn:disabled{opacity:.4;cursor:default}.lesson-nav-btn.primary{background:var(--accent);color:#fff;border-color:var(--accent)}.lesson-nav-btn.primary:hover{opacity:.88}.lesson-nav-btn:hover:not(:disabled){border-color:var(--accent)}.visual-widget{flex-direction:column;align-items:center;gap:10px;padding:12px 0;display:flex}.visual-caption{color:var(--text-secondary);text-align:center;font-size:15px;line-height:1.5}.column-math-wrap{flex-direction:column;align-items:center;gap:10px;width:100%;display:flex}.column-math-caption{color:var(--text-secondary);text-align:center;font-size:15px;font-weight:600}.column-math-narration{color:var(--text-secondary);text-align:center;max-width:320px;font-size:13px;line-height:1.6}.predict-card{background:var(--accent-light);border:2px dashed var(--accent);border-radius:14px;flex-direction:column;align-items:center;gap:14px;padding:16px;display:flex}.predict-problem{color:var(--text-primary);font-size:28px;font-weight:700}.predict-hint{color:var(--text-secondary);background:var(--bg-secondary);border-radius:8px;padding:6px 12px;font-size:14px}.predict-reveal-btn{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:12px;padding:12px 24px;font-size:16px;font-weight:700;transition:all .2s}.predict-reveal-btn:hover{opacity:.88;transform:scale(1.03)}.predict-answer{color:var(--correct);font-size:32px;font-weight:700;animation:.4s predictReveal}@keyframes predictReveal{0%{opacity:0;transform:scale(.7)}to{opacity:1;transform:scale(1)}}.tenframe-wrap{flex-direction:column;align-items:center;gap:8px;display:flex}.tenframe-count{color:var(--accent);font-size:22px;font-weight:700}.numberline-wrap{flex-direction:column;align-items:center;gap:8px;width:100%;display:flex}.numberline-caption{color:var(--text-secondary);font-size:15px}.base10-wrap{flex-direction:column;align-items:center;gap:14px;width:100%;display:flex}.base10-columns{justify-content:center;align-items:flex-end;gap:24px;display:flex}.base10-col{flex-direction:column;align-items:center;gap:6px;display:flex}.base10-col-label{color:var(--text-secondary);font-size:13px;font-weight:700}.base10-count{color:var(--text-primary);font-size:14px;font-weight:600}.base10-total{color:var(--correct);background:var(--correct-light);border-radius:10px;padding:6px 16px;font-size:20px;font-weight:700}.array-wrap{flex-direction:column;align-items:center;gap:8px;display:flex}.array-caption{color:var(--text-primary);font-size:18px;font-weight:700}.pairup-wrap{flex-direction:column;align-items:center;gap:8px;display:flex}.pairup-caption{color:var(--text-secondary);font-size:15px}.pairup-result{border-radius:10px;padding:6px 14px;font-size:17px;font-weight:700}.pairup-result.even{color:var(--correct);background:var(--correct-light)}.pairup-result.odd{color:var(--accent);background:var(--accent-light)}.crocodile-wrap{flex-direction:column;align-items:center;gap:10px;display:flex}.crocodile-row{align-items:center;gap:20px;display:flex}.crocodile-num{color:var(--text-primary);text-align:center;background:var(--bg-secondary);border:2px solid var(--border);border-radius:12px;min-width:68px;padding:8px 14px;font-size:42px;font-weight:700}.crocodile-sign{transition:opacity .3s}.crocodile-eq{color:var(--correct);font-size:42px;font-weight:700}.crocodile-caption{color:var(--accent);font-size:20px;font-weight:700}.crocodile-hint{color:var(--text-secondary);text-align:center;font-size:14px}.ruler-wrap{flex-direction:column;align-items:center;gap:10px;width:100%;max-width:340px;display:flex}.ruler-row{flex-direction:column;align-items:center;gap:6px;width:100%;display:flex}.ruler-label{color:var(--text-secondary);font-size:13px;font-weight:700}.ruler-slider{width:100%;accent-color:var(--accent)}.ruler-value{color:var(--text-primary);background:var(--bg-secondary);border:1px solid var(--border);border-radius:8px;padding:4px 12px;font-size:20px;font-weight:700}.ruler-value.big{color:var(--correct);font-size:24px}.ruler-equals{color:var(--text-secondary);font-size:20px;font-weight:700}.ruler-hint{color:var(--text-secondary);font-size:13px;font-style:italic}.gridrect-wrap{flex-direction:column;align-items:center;gap:10px;display:flex}.gridrect-caption{color:var(--text-primary);font-size:18px;font-weight:700}.gridrect-stats{flex-direction:column;align-items:stretch;gap:6px;min-width:220px;display:flex}.gridrect-stat{background:var(--bg-secondary);border:1px solid var(--border);border-radius:8px;justify-content:space-between;gap:10px;padding:6px 12px;font-size:15px;display:flex}.gridrect-stat-label{color:var(--text-secondary);font-weight:700}.fraction-pair{justify-content:center;align-items:center;gap:18px;display:flex}.fraction-slot{flex-direction:column;align-items:center;gap:4px;display:flex}.fraction-label{color:var(--text-primary);font-size:18px;font-weight:700}.fraction-pair-vs{color:var(--accent);font-size:24px;font-weight:700}@media (hover:none),(pointer:coarse){.choice-btn:hover:not(.disabled){border-color:var(--border)!important;background:var(--bg-secondary)!important;transform:none!important;box-shadow:0 2px 8px #0000000a!important}}
