:root{font-family:system-ui,-apple-system,BlinkMacSystemFont,sans-serif;-webkit-font-smoothing:antialiased}:root{--bg: #0f172a;--fg: #f1f5f9;--btn-border: rgba(255, 255, 255, .12);--card-bg: #1e293b;--accent: #22c55e;--accent-dim: rgba(34, 197, 94, .2);--danger: #ef4444;--gold: #eab308;--purple: #a855f7;--radius: 16px;--radius-sm: 12px;--radius-pill: 999px;--border-subtle: rgba(255, 255, 255, .1);--border-medium: rgba(255, 255, 255, .15);--surface-dim: rgba(255, 255, 255, .04);--surface-hover: rgba(255, 255, 255, .08);--topbar-bg: rgba(30, 41, 59, .8);--topbar-border: rgba(255, 255, 255, .06);--sticky-bg: rgba(30, 41, 59, .65);--sticky-border: rgba(255, 255, 255, .06)}:root[data-theme=auto]{color-scheme:light dark}@media (prefers-color-scheme: dark){:root[data-theme=auto]{--bg: #0f172a;--fg: #f1f5f9;--btn-border: rgba(255, 255, 255, .12);--card-bg: #1e293b;--accent: #22c55e;--accent-dim: rgba(34, 197, 94, .2);--danger: #ef4444;--gold: #eab308;--purple: #a855f7;--border-subtle: rgba(255, 255, 255, .1);--border-medium: rgba(255, 255, 255, .15);--surface-dim: rgba(255, 255, 255, .04);--surface-hover: rgba(255, 255, 255, .08);--topbar-bg: rgba(30, 41, 59, .8);--topbar-border: rgba(255, 255, 255, .06);--sticky-bg: rgba(30, 41, 59, .65);--sticky-border: rgba(255, 255, 255, .06)}}@media (prefers-color-scheme: light){:root[data-theme=auto]{--bg: #f6f7f9;--fg: #0f172a;--btn-border: rgba(15, 23, 42, .15);--card-bg: #ffffff;--accent: #16a34a;--accent-dim: rgba(34, 197, 94, .1);--danger: #dc2626;--gold: #ca8a04;--purple: #9333ea;--border-subtle: rgba(15, 23, 42, .08);--border-medium: rgba(15, 23, 42, .15);--surface-dim: rgba(15, 23, 42, .03);--surface-hover: rgba(15, 23, 42, .06);--topbar-bg: rgba(255, 255, 255, .88);--topbar-border: rgba(15, 23, 42, .12);--sticky-bg: rgba(255, 255, 255, .78);--sticky-border: rgba(15, 23, 42, .12)}}:root[data-theme=dark]{color-scheme:dark;--bg: #0f172a;--fg: #f1f5f9;--btn-border: rgba(255, 255, 255, .12);--card-bg: #1e293b;--accent: #22c55e;--accent-dim: rgba(34, 197, 94, .2);--danger: #ef4444;--gold: #eab308;--purple: #a855f7;--border-subtle: rgba(255, 255, 255, .1);--border-medium: rgba(255, 255, 255, .15);--surface-dim: rgba(255, 255, 255, .04);--surface-hover: rgba(255, 255, 255, .08);--topbar-bg: rgba(30, 41, 59, .8);--topbar-border: rgba(255, 255, 255, .06);--sticky-bg: rgba(30, 41, 59, .65);--sticky-border: rgba(255, 255, 255, .06)}:root[data-theme=light]{color-scheme:light;--bg: #f6f7f9;--fg: #0f172a;--btn-border: rgba(15, 23, 42, .15);--card-bg: #ffffff;--accent: #16a34a;--accent-dim: rgba(34, 197, 94, .1);--danger: #dc2626;--gold: #ca8a04;--purple: #9333ea;--border-subtle: rgba(15, 23, 42, .08);--border-medium: rgba(15, 23, 42, .15);--surface-dim: rgba(15, 23, 42, .03);--surface-hover: rgba(15, 23, 42, .06);--topbar-bg: rgba(255, 255, 255, .88);--topbar-border: rgba(15, 23, 42, .12);--sticky-bg: rgba(255, 255, 255, .78);--sticky-border: rgba(15, 23, 42, .12)}body{margin:0;background:var(--bg);color:var(--fg);overflow-x:hidden}.app-shell{max-width:720px;margin:0 auto;padding:1.25rem 1.25rem 2.5rem}.topbar{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:.75rem;padding:.4rem 0;position:sticky;top:0;z-index:10;background:var(--topbar-bg);border-bottom:1px solid var(--topbar-border);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}h1{font-size:1.8rem;margin:0}button{background:transparent;border:2px solid var(--border-subtle);border-radius:14px;padding:.55rem .9rem;color:inherit;font-size:.95rem;transition:all .15s ease}button:active{transform:scale(.98)}@media (min-width: 700px){h1{font-size:2.1rem}}#app{min-height:100dvh;display:flex;flex-direction:column}.view-root{max-height:100dvh;overflow-y:auto;padding-bottom:calc(env(safe-area-inset-bottom,0px) + 16px);min-height:0;flex:1;-webkit-overflow-scrolling:touch;overflow-x:hidden;padding-left:1rem;padding-right:1rem;box-sizing:border-box}.view-root.wordle-view{padding-bottom:calc(env(safe-area-inset-bottom,0px) + 88px)}.lock-scroll{overflow:hidden}.soft-box{box-sizing:border-box;width:min(520px,100%);margin-top:.5rem;padding:.75rem .9rem;border-radius:var(--radius);border:1px solid var(--border-subtle);background:var(--surface-dim);text-align:left}.bottom-btn-row,.summary-btn-row{position:sticky;bottom:0;padding:.75rem 0 .25rem;background:var(--sticky-bg);border-top:1px solid var(--sticky-border);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}.summary-list{list-style:none;padding:0;margin:.25rem auto 0;width:min(520px,100%);text-align:center}.summary-list li{padding:.15rem 0;opacity:.95}.page-title{font-size:2rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}body.lock-scroll{overflow:hidden;overscroll-behavior:none;touch-action:manipulation}button,.keypad-btn{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}html,body{touch-action:manipulation}.keypad-btn.flash{border-width:2px!important;background-color:var(--fg)!important;color:var(--bg)!important;box-shadow:0 0 0 2px var(--fg)!important}.home-page{display:flex;flex-direction:column;align-items:center;gap:1rem;padding-top:.5rem;max-width:640px;width:100%;margin:0 auto;box-sizing:border-box}.home-hero{text-align:center;padding:.5rem 0}.home-hero-emoji{font-size:2.5rem;line-height:1;margin-bottom:.25rem}.home-hero-title{font-size:1.15rem;font-weight:600;opacity:.85;margin:0}.home-card{width:100%;border-radius:var(--radius);border:1.5px solid var(--border-subtle);background:var(--card-bg);padding:1rem 1.1rem;box-sizing:border-box;overflow:hidden;min-width:0}.home-card-title{font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;opacity:.5;margin:0 0 .7rem}.home-field{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.45rem 0;overflow:hidden;min-width:0}.home-field+.home-field{border-top:1px solid var(--border-subtle)}.home-field-label{font-size:.9rem;font-weight:600;white-space:nowrap;flex-shrink:0}.home-field-icon{font-size:1rem;flex-shrink:0;width:1.4rem;text-align:center}.home-field select,.home-field input[type=checkbox]{font-size:.9rem;font-weight:500;color:inherit;background:var(--surface-dim);border:1.5px solid var(--border-medium);border-radius:10px;padding:.4rem .6rem;min-width:0;flex:1;max-width:220px;-webkit-appearance:auto;-moz-appearance:auto;appearance:auto;overflow:hidden;text-overflow:ellipsis;box-sizing:border-box}.home-field select:focus{outline:2px solid rgba(34,197,94,.5);outline-offset:1px}.home-start-btn{width:100%;padding:.9rem 1.5rem;font-size:1.2rem;font-weight:800;letter-spacing:.02em;border-radius:14px;border:none;background:linear-gradient(135deg,#22c55e,#16a34a);color:#fff;cursor:pointer;box-shadow:0 4px 15px #22c55e66;transition:transform .15s ease,box-shadow .15s ease,background .15s ease;-webkit-tap-highlight-color:transparent}.home-start-btn:hover{box-shadow:0 6px 20px #22c55e80}.home-start-btn:active{transform:scale(.97)}.home-card.audio-card{border-color:#3b82f640;background:#3b82f60a}@media (min-width: 700px){.home-hero-emoji{font-size:3rem}.home-hero-title{font-size:1.3rem}.home-cards-row{display:grid;grid-template-columns:1fr 1fr;gap:.75rem;width:100%}.home-cards-row .home-card{width:auto}.home-start-btn{max-width:320px;margin:0 auto}}.summary-wrap .soft-box{text-align:center}.soft-box h4{margin:0 0 .35rem;font-size:1rem}.soft-lines{display:flex;flex-direction:column;gap:.25rem;margin-top:.25rem}.soft-line{margin:0;opacity:.95;line-height:1.35}@media (max-width: 480px){.page-title{font-size:1.4rem}.home-page{gap:.75rem}.home-cards-row{display:flex;flex-direction:column;gap:.75rem;width:100%}.home-field select{max-width:55%}#app{height:100dvh;overflow:hidden;display:flex;flex-direction:column}}@keyframes app-fade-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes app-pop-in{0%{opacity:0;transform:scale(.85)}to{opacity:1;transform:scale(1)}}.practice-header{display:flex;flex-direction:column;gap:.35rem;margin-bottom:.5rem;width:100%}.practice-category-title{font-weight:700;font-size:.8rem;text-transform:uppercase;letter-spacing:.08em;opacity:.5;text-align:center}.progress-track{height:10px;border-radius:999px;background:#ffffff1a;overflow:hidden}:root[data-theme=light] .progress-track{background:#0f172a14}.progress-fill{height:100%;border-radius:999px;background:linear-gradient(90deg,#22c55e,#4ade80);transition:width .5s ease}.question-card{background:var(--card-bg);border:2px solid var(--border-subtle);border-radius:var(--radius);padding:1rem 1.25rem;position:relative;display:flex;align-items:center;justify-content:center;min-height:84px;animation:app-fade-in .3s ease}.question-card-badge{position:absolute;top:10px;right:12px;font-size:.72rem;font-weight:700;letter-spacing:.6px;padding:.2rem .55rem;border-radius:999px;border:1px solid var(--border-medium);background:var(--surface-dim);color:var(--fg);opacity:.7;-webkit-user-select:none;user-select:none;pointer-events:none}.question-card-title{margin:0;color:inherit;font-weight:800;letter-spacing:.3px;text-align:center}.question-card.reading-card{flex-direction:column;align-items:stretch;gap:.75rem;min-height:auto;text-align:left}.reading-passage{font-size:.85rem;line-height:1.55;opacity:.9;word-break:break-word;overflow-wrap:break-word}.reading-question{font-weight:800;font-size:1rem;border-top:1px solid var(--border-subtle);padding-top:.6rem}@media (max-width: 480px){.reading-passage{font-size:.8rem;line-height:1.5}.reading-question{font-size:.9rem}}.instruction-text{font-size:.8rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;opacity:.5;text-align:center;margin:.75rem 0 .5rem}.answer-display{border:2px solid var(--border-medium);border-radius:14px;padding:14px 16px;font-size:1.3rem;font-weight:700;text-align:center;min-height:40px;background:var(--surface-dim);-webkit-user-select:none;user-select:none}.calc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem;margin-top:.75rem}.kb-key{border-radius:var(--radius-sm);border:2px solid var(--border-medium);background:var(--surface-dim);padding:.6rem 0;font-weight:800;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;transition:all .15s ease}.kb-key:active{transform:scale(.96);background:var(--surface-hover)}.kb-key.delete{border-color:#ef444480;color:var(--danger)}.kb-key.check{border-color:#22c55e80;color:var(--accent)}.choice-list{display:flex;flex-direction:column;gap:.5rem;margin-top:.25rem}.choice-btn{width:100%;padding:14px 20px;border:2px solid var(--border-subtle);border-radius:14px;background:var(--surface-dim);color:var(--fg);font-size:1.05rem;font-weight:600;min-height:48px;text-align:left;cursor:pointer;transition:all .15s ease}.choice-btn:active{transform:scale(.98)}.choice-btn.selected{border-color:var(--accent);background:var(--accent-dim);color:var(--fg);box-shadow:0 0 0 2px var(--accent-dim)}.choice-btn.correct{background:#22c55e33;border-color:#22c55e;color:#4ade80}.choice-btn.wrong{background:#ef444433;border-color:#ef4444;color:#f87171}.choice-btn.disabled{pointer-events:none;opacity:.5}.action-row{display:flex;gap:.5rem;margin-top:1rem}.action-btn{flex:1;padding:14px;border-radius:14px;font-weight:700;font-size:1rem;min-height:48px;cursor:pointer;transition:all .15s ease}.action-btn:active{transform:scale(.96)}.action-btn.secondary{border:2px solid var(--border-medium);background:var(--surface-dim);color:var(--fg)}.action-btn.primary{border:none;background:var(--accent);color:#fff}.action-btn.primary:disabled{opacity:.4;cursor:not-allowed}.action-btn.danger{border:2px solid rgba(239,68,68,.5);background:transparent;color:var(--danger);font-weight:900}.wordle-cell{border:2px solid var(--border-medium);border-radius:var(--radius-sm);min-height:48px;display:flex;align-items:center;justify-content:center;font-weight:900;font-size:1.2rem;-webkit-user-select:none;user-select:none;cursor:pointer;transition:all .15s ease}.wordle-cell.green{background:#22c55e59;border-color:#22c55ee6}.wordle-cell.yellow{background:#eab30859;border-color:#eab308e6}.wordle-cell.gray{background:#94a3b81a;border-color:#94a3b859}.wordle-cell.inactive{opacity:.55;pointer-events:none;cursor:default;border-color:#94a3b859;outline:none;box-shadow:none}.wordle-cell.active-row{opacity:1;pointer-events:auto;cursor:pointer;background:#22c55e0f;border-color:var(--border-medium);box-shadow:0 0 0 2px #22c55e1a}.wordle-cell.active-cell{outline:3px solid rgba(34,197,94,.55)}.wordle-kb{display:flex;flex-direction:column;gap:.35rem}.wordle-kb-row{display:flex;justify-content:center;gap:.35rem;width:100%}.wordle-kb-key{flex:1;max-width:52px;min-width:0;border-radius:var(--radius-sm);border:2px solid var(--border-medium);background:var(--surface-dim);padding:.6rem 0;font-weight:800;transition:all .15s ease;-webkit-tap-highlight-color:transparent}.wordle-kb-key:active{transform:scale(.96);background:var(--surface-hover)}.wordle-kb-key.green{background:#22c55e59;border-color:#22c55ee6}.wordle-kb-key.yellow{background:#eab30859;border-color:#eab308e6}.wordle-kb-key.gray{background:#94a3b833;border-color:#94a3b873;opacity:.75}.feedback-wrap{display:flex;flex-direction:column;align-items:center;text-align:center;width:100%;gap:.25rem}.feedback-xp{margin:.15rem 0 0;font-weight:800;color:#22c55ef2}:root[data-theme=light] .feedback-xp{color:#16a34a}.answer-pill{display:inline-block;padding:.15rem .5rem;margin-left:.25rem;border-radius:999px;font-weight:900}.answer-pill.correct-answer,.answer-pill.user-correct{border:2px solid rgba(34,197,94,.9);box-shadow:0 0 0 3px #22c55e2e}.answer-pill.user-wrong{border:2px solid rgba(239,68,68,.9);box-shadow:0 0 0 3px #ef44442e}.spelling-tile{display:inline-flex;width:1.6rem;height:1.9rem;align-items:center;justify-content:center;border-radius:.5rem;font-weight:900;border:2px solid rgba(148,163,184,.6)}.spelling-tile.green{background:#22c55e59;border-color:#22c55ee6}.spelling-tile.yellow{background:#eab30859;border-color:#eab308e6}.spelling-tile.gray{background:#94a3b81a;border-color:#94a3b859;opacity:.9}.error-box{margin-top:.75rem;padding:.75rem;border-radius:12px;border:1px solid rgba(239,68,68,.6);background:#ef444414}.summary-wrap{width:min(680px,100%);display:flex;flex-direction:column;gap:.75rem;flex:1;justify-content:center;align-items:center;text-align:center}.stat-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem;width:min(520px,100%);justify-items:center}.stat-card{box-sizing:border-box;width:min(520px,100%);padding:.75rem .9rem;border-radius:var(--radius);border:1px solid rgba(34,197,94,.3);background:#22c55e14;text-align:center;animation:app-fade-in .3s ease both}.stat-card-title{opacity:.9;font-weight:700}.stat-card-value{font-size:1.35rem;font-weight:900;margin-top:.15rem}.stat-card-sub{margin-top:.2rem;opacity:.85;font-size:.9rem}.summary-list{width:min(520px,100%);text-align:left;margin:.25rem 0 0;list-style:none;padding:0}.summary-btn-row{margin-top:.75rem;display:flex;gap:.75rem;width:min(520px,100%);justify-content:center}.xp-row{display:flex;flex-direction:column;gap:.25rem}.xp-label-tag{font-size:.9rem;font-weight:700;display:inline-flex;align-items:center;justify-content:center;gap:.35rem;padding:.25rem .6rem;border-radius:999px;border:1px solid rgba(34,197,94,.55);background:#22c55e1f;color:#bbf7d0fa;-webkit-user-select:none;user-select:none}:root[data-theme=light] .xp-label-tag{background:#22c55e14;color:#16a34a;border-color:#22c55e66}.xp-small{font-size:.75rem;opacity:.8;text-align:center}.bottom-btn-row{display:flex;gap:.5rem;width:min(420px,100%);align-self:center}.home-game-link{display:inline-flex;align-items:center;gap:.4rem;padding:.55rem 1rem;border-radius:14px;border:none;background:linear-gradient(135deg,#8b5cf6,#6366f1);color:#fff;font-weight:700;font-size:.95rem;text-decoration:none;transition:all .15s ease;box-shadow:0 4px 15px #8b5cf666}.home-game-link:active{transform:scale(.97)}.home-controls{margin-top:.5rem;display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}@media (max-width: 480px){.question-card{min-height:64px;padding:.6rem .8rem}.answer-display{min-height:32px;font-size:1.15rem;padding:.25rem .75rem}.kb-key{padding:.65rem 0;font-size:1rem}}@keyframes levelup-pop{0%{transform:scale(.3);opacity:0}60%{transform:scale(1.1);opacity:1}to{transform:scale(1)}}@keyframes levelup-star-spin{0%{transform:rotate(0) scale(.5)}50%{transform:rotate(180deg) scale(1.3)}to{transform:rotate(360deg) scale(1)}}@keyframes levelup-gradient{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes levelup-bounce{0%{transform:translateY(20px);opacity:0}60%{transform:translateY(-5px)}to{transform:translateY(0);opacity:1}}@keyframes levelup-fade-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes xp-float-up{0%{opacity:1;transform:translate(-50%) translateY(0) scale(1)}30%{opacity:1;transform:translate(-50%) translateY(-20px) scale(1.2)}to{opacity:0;transform:translate(-50%) translateY(-60px) scale(.8)}}.xp-floater{font-family:system-ui,-apple-system,sans-serif}.streak-fire{display:inline-flex;align-items:center;gap:.2rem;font-weight:900;white-space:nowrap}.streak-small{font-size:1rem}.streak-medium{font-size:1.15rem;animation:streak-pulse 1.5s ease-in-out infinite}.streak-big{font-size:1.3rem;animation:streak-pulse 1s ease-in-out infinite}.streak-golden{font-size:1.5rem;animation:streak-pulse .8s ease-in-out infinite,streak-glow 2s ease-in-out infinite}.streak-legendary{font-size:1.7rem;animation:streak-pulse .6s ease-in-out infinite,streak-glow 1.5s ease-in-out infinite}@keyframes streak-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}@keyframes streak-glow{0%,to{filter:drop-shadow(0 0 4px rgba(245,158,11,.3))}50%{filter:drop-shadow(0 0 16px rgba(245,158,11,.7))}}.xp-header-bar{display:flex;align-items:center;gap:.5rem;padding:.35rem 1rem;margin:0 0 .25rem;font-size:.85rem;font-weight:700;user-select:none;-webkit-user-select:none}.xp-header-level{display:inline-flex;align-items:center;gap:.3rem;padding:.25rem .65rem;border-radius:999px;background:#22c55e2e;border:1.5px solid rgba(34,197,94,.5);color:#22c55e;white-space:nowrap;font-size:.85rem;font-weight:800}.xp-header-track{flex:1;height:10px;border-radius:999px;background:#ffffff1a;overflow:hidden;min-width:60px}.xp-header-fill{height:100%;border-radius:999px;background:linear-gradient(90deg,#22c55e,#16a34a);transition:width .5s ease;min-width:4px}.xp-header-text{font-size:.7rem;opacity:.7;white-space:nowrap}.streak-calendar{display:flex;gap:.35rem;justify-content:center;padding:.5rem}.streak-day{width:38px;height:44px;border-radius:10px;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:.65rem;font-weight:700;border:2px solid var(--border-subtle);background:var(--surface-dim);gap:2px}.streak-day.completed{border-color:#22c55e99;background:#22c55e26;color:#22c55e}.streak-day.today{border-color:#3b82f6b3;background:#3b82f626}.streak-day.today.completed{border-color:#22c55eb3;background:#22c55e33;box-shadow:0 0 8px #22c55e4d}.streak-day-label{font-size:.6rem;text-transform:uppercase;opacity:.8}.streak-day-icon{font-size:1rem;line-height:1}.badge-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(90px,1fr));gap:.5rem;width:100%;max-width:520px}.badge-item{display:flex;flex-direction:column;align-items:center;gap:.25rem;padding:.5rem .35rem;border-radius:14px;border:2px solid rgba(148,163,184,.3);background:#94a3b80f;text-align:center;transition:transform .2s ease}.badge-item.unlocked{border-color:#f59e0b80;background:#f59e0b14}.badge-item.locked{opacity:.4;filter:grayscale(.8)}.badge-icon{font-size:1.8rem;line-height:1}.badge-name{font-size:.65rem;font-weight:700;line-height:1.2}.badge-desc{font-size:.55rem;opacity:.7;line-height:1.2}@keyframes badge-unlock{0%{transform:scale(.5);opacity:0}50%{transform:scale(1.2)}to{transform:scale(1);opacity:1}}.badge-item.just-unlocked{animation:badge-unlock .6s cubic-bezier(.175,.885,.32,1.275);border-color:#f59e0bcc;box-shadow:0 0 12px #f59e0b4d}@keyframes answer-correct-flash{0%{box-shadow:0 0 #22c55e80}50%{box-shadow:0 0 20px 4px #22c55e66}to{box-shadow:0 0 #22c55e00}}@keyframes answer-wrong-flash{0%{box-shadow:0 0 #ef444480}50%{box-shadow:0 0 20px 4px #ef444466}to{box-shadow:0 0 #ef444400}}.answer-flash-correct{animation:answer-correct-flash .5s ease}.answer-flash-wrong{animation:answer-wrong-flash .5s ease}@keyframes view-fade-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.view-root{animation:view-fade-in .25s ease-out}
