:root{font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{margin:0}#root{min-height:100vh}*{box-sizing:border-box;margin:0;padding:0}body{background:#f0f4ff;justify-content:center;align-items:center;min-height:100vh;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;display:flex}.app{justify-content:center;align-items:center;min-height:100vh;padding:20px;display:flex}.card{text-align:center;background:#fff;border-radius:24px;flex-direction:column;align-items:center;gap:20px;width:100%;max-width:460px;padding:48px 40px;transition:background .2s;display:flex;box-shadow:0 8px 32px #0000001a}.card.correct{background:#d4f5d4}.card.wrong{background:#fde8e8}.card.finish{background:#fffbe6}.title{color:#888;letter-spacing:.05em;text-transform:uppercase;font-size:1.4rem;font-weight:600}.progress{color:#aaa;font-size:1rem}.question{color:#2d2d2d;font-size:4rem;font-weight:800;line-height:1}.hint{color:#c0392b;font-size:1.1rem;font-weight:600}.answer-input{text-align:center;color:#2d2d2d;border:3px solid #c5d0e6;border-radius:12px;outline:none;width:120px;padding:10px;font-size:2.5rem;font-weight:700;transition:border-color .15s}.answer-input:focus{border-color:#5b8dee}.answer-input::-webkit-inner-spin-button{-webkit-appearance:none}.answer-input::-webkit-outer-spin-button{-webkit-appearance:none}.answer-input[type=number]{-moz-appearance:textfield}.btn{color:#fff;cursor:pointer;background:#5b8dee;border:none;border-radius:12px;padding:14px 40px;font-size:1.2rem;font-weight:700;transition:background .15s,transform .1s}.btn:hover:not(:disabled){background:#3a6fd8;transform:translateY(-1px)}.btn:disabled{opacity:.5;cursor:default}.score{color:#aaa;font-size:1rem;font-weight:600}.emoji{font-size:5rem}.result-score{color:#2d2d2d;font-size:2rem;font-weight:800}.mode-grid{grid-template-columns:1fr 1fr;gap:14px;width:100%;display:grid}.mode-btn{cursor:pointer;border:none;border-radius:16px;flex-direction:column;align-items:center;gap:6px;padding:24px 12px;transition:transform .1s,box-shadow .1s;display:flex;box-shadow:0 3px 10px #00000014}.mode-btn:hover{transform:translateY(-2px);box-shadow:0 6px 18px #00000024}.mode-doubles{background:#dbeafe}.mode-plus1{background:#fce7f3}.mode-icon{font-size:2rem}.mode-name{color:#2d2d2d;font-size:1rem;font-weight:700}.mode-example{color:#555;font-size:.85rem;font-weight:500}.drill-mode-label{color:#aaa;text-transform:uppercase;letter-spacing:.05em;font-size:.9rem;font-weight:600}.drill-title{color:#2d2d2d;font-size:2.2rem;font-weight:800}.subtitle{color:#888;font-size:1.1rem}.level-grid{grid-template-columns:1fr 1fr;gap:14px;width:100%;display:grid}.level-btn{cursor:pointer;border:none;border-radius:16px;flex-direction:column;align-items:center;gap:6px;padding:20px 12px;transition:transform .1s,box-shadow .1s;display:flex;box-shadow:0 3px 10px #00000014}.level-btn:hover{transform:translateY(-2px);box-shadow:0 6px 18px #0000001f}.level-emoji{font-size:1.6rem}.level-name{color:#2d2d2d;font-size:1.1rem;font-weight:700}.level-range{color:#555;font-size:.8rem;font-weight:500}.drill-header{justify-content:space-between;align-items:center;width:100%;display:flex}.back-btn{color:#888;cursor:pointer;background:0 0;border:none;padding:4px 0;font-size:.95rem;font-weight:600}.back-btn:hover{color:#555}.level-badge{color:#2d2d2d;border-radius:20px;padding:4px 12px;font-size:.85rem;font-weight:700}.finish-btns{flex-direction:column;gap:10px;width:100%;display:flex}.btn-secondary{color:#3a6fd8;background:#e8eef8}.btn-secondary:hover:not(:disabled){background:#d0dcf0}.section-label{text-transform:uppercase;letter-spacing:.08em;color:#aaa;align-self:flex-start;margin-top:4px;font-size:.8rem;font-weight:700}.mode-spelling{background:#d8f3dc}.mode-syllable{background:#fde8ff}.mode-vocab{background:#e9d5ff}.spelling-card{max-width:500px}.spell-sentence{color:#2d2d2d;text-align:center;font-size:1.5rem;font-weight:600;line-height:1.6}.spell-blank{color:#5b8dee;border-bottom:3px solid #5b8dee;margin:0 4px;padding:0 4px;font-weight:800}.spell-choices{flex-direction:column;gap:12px;width:100%;display:flex}.spell-choice{color:#2d2d2d;cursor:pointer;text-align:center;background:#f4f6fc;border:2px solid #dde3f0;border-radius:12px;padding:14px 20px;font-size:1.3rem;font-weight:600;transition:background .15s,border-color .15s,transform .1s}.spell-choice:hover:not(:disabled){background:#e8eef8;border-color:#5b8dee;transform:translateY(-1px)}.spell-choice.spell-correct{color:#1b5e20;background:#d4f5d4;border-color:#4caf50}.spell-choice.spell-wrong{color:#b71c1c;background:#fde8e8;border-color:#ef5350}.spell-choice.spell-dim{opacity:.4}.dad-btn{color:#ccc;cursor:pointer;background:0 0;border:none;margin-top:8px;padding:4px 8px;font-size:.8rem;font-weight:500}.dad-btn:hover{color:#999}.pin-dots{justify-content:center;gap:16px;margin:8px 0;display:flex}.pin-dot{background:#fff;border:2px solid #c5d0e6;border-radius:50%;width:20px;height:20px;transition:background .15s,border-color .15s}.pin-dot.filled{background:#5b8dee;border-color:#5b8dee}.pin-dot.error{background:#ef5350;border-color:#ef5350}.pin-error{color:#ef5350;font-size:.9rem;font-weight:600}.pin-pad{grid-template-columns:repeat(3,1fr);gap:10px;width:100%;max-width:280px;display:grid}.pin-key{color:#2d2d2d;cursor:pointer;background:#f4f6fc;border:2px solid #dde3f0;border-radius:12px;padding:16px;font-size:1.4rem;font-weight:700;transition:background .1s,transform .1s}.pin-key:hover{background:#e8eef8;transform:scale(.97)}.pin-confirm{color:#fff;background:#5b8dee;border-color:#5b8dee}.pin-confirm:hover{background:#3a6fd8}.pin-back{color:#888}.dad-card{max-width:500px;max-height:90vh;overflow-y:auto}.dad-stats{justify-content:center;gap:24px;width:100%;display:flex}.dad-stat{background:#f4f6fc;border-radius:12px;flex-direction:column;align-items:center;gap:4px;padding:16px 28px;display:flex}.dad-stat-num{color:#2d2d2d;font-size:2rem;font-weight:800}.dad-stat-label{color:#aaa;text-transform:uppercase;letter-spacing:.05em;font-size:.8rem;font-weight:600}.session-list{flex-direction:column;gap:10px;width:100%;display:flex}.session-row{background:#f4f6fc;border-radius:10px;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;padding:12px 16px;transition:background .1s;display:flex}.session-info{flex-direction:column;gap:2px;display:flex}.session-drill{color:#2d2d2d;font-size:.95rem;font-weight:700}.session-date{color:#aaa;font-size:.8rem}.session-score{font-size:1rem;font-weight:800}.session-pct{font-size:.8rem;font-weight:600}.syllable-card{max-width:460px}.syl-instruction{color:#aaa;text-transform:uppercase;letter-spacing:.05em;font-size:.95rem;font-weight:600}.syl-word-display{justify-content:center;align-items:center;gap:12px;display:flex}.syl-box{color:#2d2d2d;text-align:center;background:#fff;border:3px solid #c5d0e6;border-radius:12px;min-width:80px;padding:14px 20px;font-size:2rem;font-weight:800;transition:border-color .2s,background .2s}.syl-blank{color:#5b8dee;border-color:#5b8dee}.syl-box-correct{color:#1b5e20;background:#d4f5d4;border-color:#4caf50}.syl-box-wrong{color:#b71c1c;background:#fde8e8;border-color:#ef5350}.syl-plus{color:#aaa;font-size:1.8rem;font-weight:800}.syl-result{border-radius:8px;padding:8px 16px;font-size:1rem;font-weight:700}.syl-result-correct{color:#1b5e20;background:#d4f5d4}.syl-result-wrong{color:#b71c1c;background:#fde8e8}.syl-choices{flex-wrap:wrap;justify-content:center;gap:12px;width:100%;display:flex}.syl-choice{color:#2d2d2d;cursor:pointer;text-align:center;background:#f4f6fc;border:2px solid #dde3f0;border-radius:12px;min-width:80px;padding:14px 22px;font-size:1.4rem;font-weight:700;transition:background .15s,border-color .15s,transform .1s}.syl-choice:hover:not(:disabled){background:#e8eef8;border-color:#5b8dee;transform:translateY(-2px)}.syl-choice.syl-correct{color:#1b5e20;background:#d4f5d4;border-color:#4caf50}.syl-choice.syl-wrong{color:#b71c1c;background:#fde8e8;border-color:#ef5350}.syl-choice.syl-dim{opacity:.35}.profile-grid{grid-template-columns:1fr 1fr;gap:14px;width:100%;display:grid}.profile-card{cursor:pointer;border:none;border-radius:20px;flex-direction:column;align-items:center;gap:6px;padding:24px 12px;transition:transform .1s,box-shadow .1s;display:flex;box-shadow:0 3px 10px #00000014}.profile-card:hover{transform:translateY(-2px);box-shadow:0 6px 18px #00000021}.profile-add{background:#f4f6fc;border:2px dashed #c5d0e6}.profile-emoji{font-size:2.4rem}.profile-name{color:#2d2d2d;font-size:1rem;font-weight:700}.profile-grade{color:#666;font-size:.75rem;font-weight:500}.home-header{justify-content:space-between;align-items:center;width:100%;display:flex}.profile-chip{color:#2d2d2d;background:#f4f6fc;border-radius:20px;align-items:center;gap:6px;padding:6px 12px;font-size:.9rem;font-weight:600;display:flex}.emoji-grid{grid-template-columns:repeat(6,1fr);gap:8px;width:100%;display:grid}.emoji-pick{cursor:pointer;background:#f4f6fc;border:2px solid #0000;border-radius:10px;padding:8px;font-size:1.6rem;transition:border-color .1s,transform .1s}.emoji-pick:hover{transform:scale(1.1)}.emoji-pick-selected{background:#e8eef8;border-color:#5b8dee}.name-input{color:#2d2d2d;text-align:center;border:2px solid #c5d0e6;border-radius:12px;outline:none;width:100%;padding:12px 16px;font-size:1.3rem;font-weight:600}.name-input:focus{border-color:#5b8dee}.grade-grid{grid-template-columns:1fr 1fr;gap:12px;width:100%;display:grid}.grade-btn{color:#2d2d2d;cursor:pointer;background:#f4f6fc;border:2px solid #dde3f0;border-radius:12px;padding:16px 12px;font-size:.95rem;font-weight:700;transition:border-color .15s,background .15s}.grade-btn:hover{background:#e8eef8}.grade-selected{color:#3a6fd8;background:#e8eef8;border-color:#5b8dee}.kinder-card{max-width:460px}.kinder-prompt{color:#aaa;text-transform:uppercase;letter-spacing:.05em;justify-content:center;align-items:center;gap:8px;font-size:1rem;font-weight:600;display:flex}.speak-btn{cursor:pointer;opacity:.7;background:0 0;border:none;border-radius:8px;flex-shrink:0;padding:2px 4px;font-size:1.3rem;line-height:1;transition:opacity .15s,transform .1s}.speak-btn:active{opacity:1;transform:scale(1.2)}.big-letter{color:#5b8dee;-webkit-user-select:none;user-select:none;font-size:8rem;font-weight:900;line-height:1}.letter-choices{justify-content:center;gap:16px;display:flex}.letter-choice{color:#2d2d2d;cursor:pointer;background:#f4f6fc;border:2px solid #dde3f0;border-radius:16px;width:90px;height:90px;font-size:2.8rem;font-weight:800;transition:background .15s,border-color .15s,transform .1s}.letter-choice:hover:not(:disabled){background:#e8eef8;border-color:#5b8dee;transform:scale(1.05)}.letter-correct{color:#1b5e20!important;background:#d4f5d4!important;border-color:#4caf50!important}.letter-wrong{color:#b71c1c!important;background:#fde8e8!important;border-color:#ef5350!important}.letter-dim{opacity:.35}.dot-grid{background:#f4f6fc;border-radius:20px;flex-wrap:wrap;justify-content:center;gap:10px;max-width:220px;padding:20px;display:flex}.dot{border-radius:50%;width:36px;height:36px}.num-choices{justify-content:center;gap:16px;display:flex}.num-choice{color:#2d2d2d;cursor:pointer;background:#f4f6fc;border:2px solid #dde3f0;border-radius:16px;width:90px;height:90px;font-size:2.2rem;font-weight:800;transition:background .15s,border-color .15s,transform .1s}.num-choice:hover:not(:disabled){background:#e8eef8;border-color:#5b8dee;transform:scale(1.05)}.num-correct{color:#1b5e20!important;background:#d4f5d4!important;border-color:#4caf50!important}.num-wrong{color:#b71c1c!important;background:#fde8e8!important;border-color:#ef5350!important}.num-dim{opacity:.35}.sequence-display{justify-content:center;align-items:center;gap:10px;display:flex}.seq-num{color:#2d2d2d;background:#fff;border:3px solid #c5d0e6;border-radius:14px;justify-content:center;align-items:center;width:72px;height:72px;font-size:2rem;font-weight:800;display:flex}.seq-blank{color:#5b8dee;border-color:#5b8dee}.mode-letter{background:#fde8ff}.mode-dots{background:#dbeafe}.mode-sequence{background:#d8f3dc}.mode-add-groups{background:#bbf7d0}.mode-subtract-groups{background:#fecaca}.mode-shapes{background:#e0e7ff}.mode-compare{background:#fef3c7}.comp-option{cursor:pointer;background:#f3f4f6;border:3px solid #0000;border-radius:20px;flex:1;justify-content:center;align-items:center;min-height:130px;padding:16px;transition:transform .1s;display:flex;overflow:hidden}.comp-option:active{transform:scale(.96)}.comp-correct{background:#d1fae5!important;border-color:#10b981!important}.comp-wrong{background:#fee2e2!important;border-color:#ef4444!important}.comp-dim{opacity:.5}.shape-pick-grid{grid-template-columns:1fr 1fr;gap:12px;width:100%;margin:12px 0;display:grid}.shape-pick-btn{cursor:pointer;background:#f3f4f6;border:3px solid #0000;border-radius:16px;flex-direction:column;justify-content:center;align-items:center;gap:4px;min-height:100px;padding:12px;transition:transform .1s;display:flex}.shape-pick-btn:active{transform:scale(.96)}.shape-pick-correct{background:#d1fae5!important;border-color:#10b981!important}.shape-pick-wrong{background:#fee2e2!important;border-color:#ef4444!important}.shape-pick-dim{opacity:.5}.profile-card-wrap{position:relative}.edit-profile-btn{cursor:pointer;background:#ffffffb3;border:none;border-radius:8px;padding:3px 5px;font-size:.85rem;line-height:1;transition:background .15s;position:absolute;top:6px;right:6px}.edit-profile-btn:hover{background:#fffffff2}.mode-rounding{background:#fff3cd}.round-instruction{color:#555;font-size:1.1rem;font-weight:500}.round-number{color:#2d2d2d;font-size:5rem;font-weight:900;line-height:1}.round-choices{flex-wrap:wrap;justify-content:center;gap:14px;display:flex}.round-choice{color:#2d2d2d;cursor:pointer;background:#f4f6fc;border:2px solid #dde3f0;border-radius:14px;min-width:90px;padding:16px 10px;font-size:1.5rem;font-weight:800;transition:background .15s,border-color .15s,transform .1s}.round-choice:hover:not(:disabled){background:#e8eef8;border-color:#5b8dee;transform:translateY(-2px)}.round-correct{color:#1b5e20!important;background:#d4f5d4!important;border-color:#4caf50!important}.round-wrong{color:#b71c1c!important;background:#fde8e8!important;border-color:#ef5350!important}.round-dim{opacity:.35}.mode-basic-add{background:#fef9c3}.mode-basic-sub{background:#ffe4e1}.mode-three-digit{background:#e8f4f8}.mode-sound{background:#fff3cd}.sound-choices{justify-content:center;gap:12px;width:100%;display:flex}.sound-choice{cursor:pointer;background:#f4f6fc;border:2px solid #dde3f0;border-radius:16px;flex-direction:column;flex:1;align-items:center;gap:6px;padding:14px 8px;transition:background .15s,border-color .15s,transform .1s;display:flex}.sound-choice:hover:not(:disabled){background:#e8eef8;border-color:#5b8dee;transform:translateY(-2px)}.sound-emoji{font-size:2.8rem;line-height:1}.sound-word{color:#555;text-align:center;font-size:.8rem;font-weight:700}.sound-correct{background:#d4f5d4!important;border-color:#4caf50!important}.sound-wrong{background:#fde8e8!important;border-color:#ef5350!important}.sound-dim{opacity:.35}.mode-reading{background:#dbeafe}.word-span{cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:3px;padding:1px}.word-span:hover{background:#fde04759}.word-hl{cursor:pointer;-webkit-user-select:none;user-select:none;background:#fde047;border-radius:3px;padding:1px}.hl-hint{color:#94a3b8;text-align:center;margin:-8px 0 4px;font-size:.78rem}.hl-clear-btn{color:#854d0e;cursor:pointer;background:#fef9c3;border:1.5px solid #fde047;border-radius:20px;padding:4px 12px;font-size:.75rem;font-weight:600}.reading-card{flex-direction:column;max-height:90vh;display:flex;overflow:hidden}.passage-full{flex:1;padding:4px 0 16px;overflow-y:auto}.passage-compact{border-bottom:2px solid #e2e8f0;max-height:220px;margin-bottom:12px;padding:4px 0 8px;overflow-y:auto}.passage-title{text-align:center;color:#1e3a5f;margin:0 0 14px;font-size:1.2rem;font-weight:800}.passage-para{color:#2d3748;gap:8px;margin:0 0 10px;font-size:.88rem;line-height:1.6;display:flex}.para-num{color:#94a3b8;flex-shrink:0;min-width:16px;margin-top:2px;font-size:.75rem;font-weight:700}.para-text{flex:1;line-height:1.7}.poem-line{display:block}.passage-stanza{margin-bottom:20px}.reading-start-btn{flex-shrink:0;margin-top:12px}.reading-q-card{flex-direction:column;gap:10px;display:flex}.passage-toggle-btn{color:#1d4ed8;cursor:pointer;background:#eff6ff;border:1.5px solid #bfdbfe;border-radius:8px;align-self:flex-start;padding:6px 14px;font-size:.82rem;font-weight:700}.passage-peek{background:#f0f7ff;border:1.5px solid #bfdbfe;border-radius:10px;padding:10px 12px}.reading-q-text{color:#1e293b;text-align:center;padding:4px 0;font-size:1rem;font-weight:700;line-height:1.5}.reading-quote{color:#44403c;background:#fefce8;border-left:4px solid #f59e0b;border-radius:0 8px 8px 0;padding:10px 14px;font-size:.88rem;font-style:italic;line-height:1.5}.reading-choices{flex-direction:column;gap:10px;width:100%;display:flex}.reading-choice{color:#2d3748;cursor:pointer;text-align:left;background:#f4f6fc;border:2px solid #d1d9f0;border-radius:12px;padding:12px 16px;font-size:.9rem;font-weight:600;line-height:1.4;transition:background .15s,border-color .15s}.reading-choice:hover:not(:disabled){background:#e8eef8;border-color:#5b8dee}.reading-correct{color:#1b5e20!important;background:#d4f5d4!important;border-color:#4caf50!important}.reading-wrong{color:#b71c1c!important;background:#fde8e8!important;border-color:#ef5350!important}.reading-dim{opacity:.35}.story-list{flex-direction:column;gap:12px;width:100%;display:flex}.story-btn{cursor:pointer;text-align:left;border:none;border-radius:14px;align-items:center;gap:14px;padding:16px 18px;transition:transform .1s,box-shadow .1s;display:flex;box-shadow:0 3px 10px #00000014}.story-btn:hover{transform:translateY(-2px);box-shadow:0 6px 18px #00000021}.story-emoji{flex-shrink:0;font-size:2rem}.story-name{color:#2d2d2d;flex:1;font-size:1.05rem;font-weight:700}.story-meta{color:#666;flex-shrink:0;font-size:.8rem;font-weight:500}.mode-writing{background:#fef9c3}.writing-picker-card{max-height:90vh;overflow-y:auto}.word-pick-grid{flex-wrap:wrap;gap:10px;width:100%;margin-bottom:8px;display:flex}.word-pick-btn{color:#2d2d2d;cursor:pointer;border:none;border-radius:10px;padding:10px 16px;font-size:1.1rem;font-weight:700;transition:transform .1s,box-shadow .1s;box-shadow:0 2px 8px #00000014}.word-pick-btn:hover{transform:translateY(-2px);box-shadow:0 5px 14px #00000021}.writing-card{gap:14px;max-width:560px}.writing-prompt{color:#777;font-size:1rem;font-weight:600}.writing-word-label{color:#2d2d2d;letter-spacing:.04em;font-family:Futura,Gill Sans,sans-serif;font-size:1.8rem;font-weight:800}.writing-canvas{touch-action:none;cursor:crosshair;background:#fafbff;border:2px solid #e2e8f0;border-radius:14px;width:100%;height:auto;display:block}.writing-controls{justify-content:space-between;align-items:center;gap:10px;width:100%;display:flex}.writing-nav-btn{min-width:90px}.writing-counter{color:#bbb;font-size:.85rem;font-weight:600}.session-expandable{cursor:pointer}.session-expandable:hover{background:#f8f9ff}.session-right{flex-direction:column;flex-shrink:0;align-items:flex-end;gap:2px;display:flex}.missed-toggle{color:#ef5350;white-space:nowrap;font-size:.72rem;font-weight:700}.missed-list{border-top:1px solid #f0f0f0;flex-wrap:wrap;gap:6px;width:100%;margin-top:6px;padding-top:8px;display:flex}.missed-chip{color:#b71c1c;white-space:nowrap;background:#fde8e8;border-radius:8px;padding:3px 10px;font-size:.8rem;font-weight:700}.mode-word-problems{background:#fde8ff}.wp-wrap{flex-direction:row;align-items:flex-start;gap:20px;width:100%;max-width:1060px;padding:20px;transition:background .2s;display:flex}.wp-wrap.correct .wp-card{background:#d4f5d4}.wp-wrap.wrong .wp-card{background:#fde8e8}.wp-card{flex:0 0 420px;max-width:420px}.wp-type-badge{color:#6b3fa0;background:#f3e8ff;border-radius:20px;padding:4px 14px;font-size:.9rem;font-weight:700}.wp-problem{color:#333;text-align:left;font-size:1.2rem;line-height:1.7}.scratch-panel{background:#fff;border-radius:24px;flex-direction:column;flex:1;gap:10px;padding:20px;display:flex;box-shadow:0 8px 32px #0000001a}.scratch-header{justify-content:space-between;align-items:center;display:flex}.scratch-label{color:#888;text-transform:uppercase;letter-spacing:.05em;font-size:.85rem;font-weight:700}.scratch-clear{color:#555;cursor:pointer;background:#f0f4ff;border:none;border-radius:12px;padding:6px 14px;font-size:.85rem;font-weight:600}.scratch-canvas{touch-action:none;cursor:crosshair;background:#fafbff;border:1.5px solid #e8edf8;border-radius:12px;width:100%}@media (width<=700px){.wp-wrap{flex-direction:column;padding:12px}.wp-card{flex:unset;width:100%;max-width:100%}}.mode-multiplication{background:#ffd3a5}.mult-prompt{color:#333;text-align:center;font-size:1.3rem;font-weight:700}.mult-question{color:#555;text-align:center;font-size:1.1rem}.mult-groups-wrap{flex-wrap:wrap;justify-content:center;gap:12px;margin:4px 0;display:flex}.mult-group-box{border:2.5px dashed #6b7280;border-radius:14px;flex-wrap:wrap;justify-content:center;gap:4px;min-width:52px;padding:10px;display:flex}.mult-dot{font-size:1.4rem;line-height:1}.mult-array{justify-content:center;gap:6px;margin:4px 0;display:grid}.mc-grid{grid-template-columns:1fr 1fr;gap:14px;width:100%;max-width:320px;display:grid}.mc-btn{cursor:pointer;background:#f9fafb;border:3px solid #d1d5db;border-radius:18px;padding:18px 0;font-size:1.8rem;font-weight:700;transition:background .12s,border-color .12s}.mc-btn:hover:not(:disabled){background:#e0e7ff;border-color:#6366f1}.mc-btn.mc-correct{color:#166534;background:#d4f5d4;border-color:#22c55e}.mc-btn.mc-wrong{color:#991b1b;background:#fde8e8;border-color:#ef4444}.app-pet{align-items:flex-start;padding:12px}.pet-loading{color:#6b5bd6;margin-top:30vh;font-size:1.4rem;font-weight:700;animation:1s ease-in-out infinite pet-wiggle}.pet-screen{flex-direction:column;gap:12px;width:100%;max-width:560px;margin:0 auto;display:flex}.pet-topbar{justify-content:space-between;align-items:center;display:flex}.pet-pills,.home-pet-pills{gap:8px;display:flex}.pet-pill{background:#fff;border-radius:999px;padding:6px 14px;font-size:1.05rem;font-weight:800;box-shadow:0 3px 10px #00000014}.pet-pill-coins{color:#a16207;background:linear-gradient(#fff8d6,#ffe89a)}.pet-pill-streak{color:#c2410c;background:linear-gradient(#ffe9dc,#ffc9a8)}.pet-stage-wrap{background:radial-gradient(at 50% 115%,#ffffffe6,#0000 55%),radial-gradient(circle at 18% 22%,#ffffffbf 0 7%,#0000 8%),radial-gradient(circle at 24% 20%,#ffffffbf 0 6%,#0000 7%),radial-gradient(circle at 82% 14%,#ffffffb3 0 6%,#0000 7%),radial-gradient(circle at 88% 16%,#ffffffb3 0 5%,#0000 6%),linear-gradient(#8fd3ff 0%,#c9ecff 55%,#fbe6ff 100%);border-radius:28px;height:min(54vh,480px);min-height:320px;transition:filter .6s;position:relative;overflow:hidden;box-shadow:0 10px 30px #5078c840,inset 0 0 0 4px #fff9}.pet-stage-sad{filter:saturate(.75)brightness(.95)}.pet-bubble{color:#3b2f6b;text-align:center;pointer-events:none;background:#fff;border-radius:18px;max-width:78%;padding:10px 16px;font-size:1rem;font-weight:700;animation:.35s cubic-bezier(.2,1.6,.4,1) pet-pop;position:absolute;top:14px;left:50%;transform:translate(-50%);box-shadow:0 6px 18px #0000001f}.pet-bubble:after{content:"";border:9px solid #0000;border-top-color:#fff;border-bottom:0;position:absolute;bottom:-8px;left:50%;transform:translate(-50%)}.pet-nameplate{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);pointer-events:none;white-space:nowrap;background:#ffffffe0;border-radius:999px;align-items:baseline;gap:10px;padding:6px 16px;display:flex;position:absolute;bottom:12px;left:50%;transform:translate(-50%);box-shadow:0 4px 12px #0000001a}.pet-name{color:#3b2f6b;font-size:1.2rem;font-weight:900}.pet-level{color:#7c6fc4;font-size:.85rem;font-weight:700}.pet-panel{text-align:center;background:#fff;border-radius:24px;padding:18px;box-shadow:0 8px 28px #00000014}.pet-title{color:#3b2f6b;margin:0 0 4px}.pet-sub{color:#6b7280;margin:0 0 10px}.pet-colors{justify-content:center;gap:12px;margin-bottom:14px;display:flex}.pet-color{cursor:pointer;border:4px solid #fff;border-radius:50%;width:48px;height:48px;transition:transform .15s;box-shadow:0 3px 10px #00000026}.pet-color-on{transform:scale(1.18);box-shadow:0 0 0 3px #6b5bd6,0 4px 12px #0003}.pet-big-btn{width:100%;margin-top:10px;padding:14px;font-size:1.3rem}.pet-xp{align-items:center;gap:10px;margin-bottom:12px;display:flex}.pet-xp-label{color:#6b5bd6;white-space:nowrap;font-size:.85rem;font-weight:800}.pet-bar{background:#eef0f6;border-radius:999px;flex:1;height:14px;overflow:hidden;box-shadow:inset 0 2px 3px #00000014}.pet-bar-fill{border-radius:999px;height:100%;transition:width .6s cubic-bezier(.2,1.2,.4,1)}.pet-bar-xp .pet-bar-fill{background:linear-gradient(90deg,#7c5cff,#b28dff)}.pet-stats{grid-template-columns:1fr 1fr;gap:12px;margin-bottom:14px;display:grid}.pet-stat{text-align:left;align-items:center;gap:8px;display:flex}.pet-stat-icon{font-size:1.5rem}.pet-stat-body{flex:1}.pet-stat-label{color:#6b7280;text-transform:uppercase;letter-spacing:.04em;margin-bottom:3px;font-size:.78rem;font-weight:800}.pet-tabs{gap:8px;margin-bottom:12px;display:flex}.pet-tab{cursor:pointer;color:#6b5bd6;background:#f1f0fb;border:none;border-radius:14px;flex:1;padding:10px;font-size:1rem;font-weight:800}.pet-tab-on{color:#fff;background:#6b5bd6;box-shadow:0 4px 12px #6b5bd659}.pet-tray{grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:10px;display:grid}.pet-item{cursor:pointer;background:linear-gradient(#fff,#f6f4ff);border:3px solid #0000;border-radius:18px;flex-direction:column;align-items:center;gap:2px;padding:10px 6px;transition:transform .12s;display:flex;box-shadow:0 4px 12px #00000014}.pet-item:active{transform:scale(.94)}.pet-item-icon{font-size:2.2rem;line-height:1.1}.pet-item-name{color:#3b2f6b;font-size:.85rem;font-weight:800}.pet-item-price{color:#a16207;font-size:.8rem;font-weight:800}.pet-item-locked{opacity:.5}.pet-item-on{background:linear-gradient(#f3efff,#e6dcff);border-color:#6b5bd6}.pet-hint{color:#9ca3af;margin:12px 0 0;font-size:.82rem}.home-pet{box-sizing:border-box;cursor:pointer;text-align:left;background:linear-gradient(135deg,#bfe6ff,#f5dcff);border-radius:22px;align-items:center;gap:12px;width:100%;min-height:150px;margin:0 0 18px;padding:8px;display:flex;box-shadow:0 6px 18px #6b5bd62e}.home-pet-loading{justify-content:center;font-size:2.4rem}.home-pet-stage{border-radius:16px;flex-shrink:0;width:46%;height:150px;overflow:hidden}.home-pet-info{flex-direction:column;flex:1;gap:4px;display:flex}.home-pet-name{color:#3b2f6b;font-size:1.25rem;font-weight:900}.home-pet-level{color:#7c6fc4;font-size:.85rem;font-weight:700}.home-pet-status{color:#4b5563;margin-bottom:4px;font-size:.95rem;font-weight:700}.home-pet-pills .pet-pill{padding:4px 10px;font-size:.9rem}.reward-toast{z-index:1000;cursor:pointer;text-align:center;background:linear-gradient(#fffbe6,#ffe58a);border:3px solid #ffd23f;border-radius:22px;padding:12px 22px;animation:.5s cubic-bezier(.2,1.6,.4,1) reward-in,.4s ease-in 3.8s forwards reward-out;position:fixed;top:16px;left:50%;transform:translate(-50%);box-shadow:0 12px 30px #a162074d}.reward-main{justify-content:center;align-items:center;gap:10px;display:flex}.reward-coin{font-size:2rem;animation:.9s ease-out coin-spin;display:inline-block}.reward-amount{color:#a16207;font-size:1.8rem;font-weight:900}.reward-xp{color:#6b5bd6;background:#fff;border-radius:999px;padding:2px 10px;font-weight:800}.reward-extras{color:#c2410c;flex-direction:column;gap:2px;margin-top:4px;font-size:.85rem;font-weight:800;display:flex}@keyframes pet-pop{0%{opacity:0;transform:translate(-50%)scale(.4)}to{opacity:1;transform:translate(-50%)scale(1)}}@keyframes pet-wiggle{0%,to{transform:rotate(-4deg)}50%{transform:rotate(4deg)}}@keyframes reward-in{0%{transform:translate(-50%)translateY(-120%)scale(.6)}to{transform:translate(-50%)translateY(0)scale(1)}}@keyframes reward-out{to{opacity:0;transform:translate(-50%)translateY(-140%)}}@keyframes coin-spin{0%{transform:rotateY(0)scale(.5)}to{transform:rotateY(1080deg)scale(1)}}.pet-tray[hidden]{display:none}.pet-pill-streak{cursor:pointer;border:none;font-family:inherit}.pet-tab{position:relative}.pet-tab-dot{background:#ff3b5c;border-radius:50%;width:11px;height:11px;animation:1.2s ease-in-out infinite dot-pulse;position:absolute;top:6px;right:10px;box-shadow:0 0 0 2px #fff}.streak-panel{flex-direction:column;gap:14px;display:flex}.streak-hero{background:linear-gradient(135deg,#fff1e0,#ffe0d1);border-radius:20px;justify-content:center;align-items:center;gap:14px;padding:12px;display:flex}.streak-flame{transform-origin:50% 90%;filter:drop-shadow(0 4px 10px #ff6a0073);line-height:1;animation:1.4s ease-in-out infinite flame-flicker}.streak-flame-out{filter:grayscale()opacity(.45);animation:none}.streak-count{color:#c2410c;text-align:left;font-size:1.9rem;font-weight:900}.streak-best{color:#9a6b4f;text-align:left;font-size:.82rem;font-weight:700}.streak-week{grid-template-columns:repeat(7,1fr);gap:6px;display:grid}.streak-day{background:#f5f3ff;border-radius:14px;flex-direction:column;align-items:center;gap:4px;padding:8px 0;display:flex}.streak-day-label{color:#7c6fc4;font-size:.72rem;font-weight:800}.streak-day-mark{color:#c4b5fd;height:1.6rem;font-size:1.3rem;font-weight:900;line-height:1.6rem}.streak-day-done{background:linear-gradient(#ffe7c2,#ffc58f)}.streak-day-done .streak-day-label{color:#c2410c}.streak-day-today{box-shadow:0 0 0 3px #6b5bd6}.streak-day-future{opacity:.5}.streak-day-weekend:not(.streak-day-done){background:#f3f4f6}.streak-day-weekend:not(.streak-day-done) .streak-day-mark{font-size:1rem}.streak-goals{grid-template-columns:repeat(4,1fr);gap:8px;display:grid}.streak-goal{cursor:default;opacity:.75;background:#f5f3ff;border:3px solid #0000;border-radius:16px;flex-direction:column;align-items:center;gap:2px;padding:10px 4px;font-family:inherit;display:flex}.streak-goal-icon{filter:grayscale(.7);font-size:1.8rem}.streak-goal-days{color:#3b2f6b;font-size:.85rem;font-weight:900}.streak-goal-label{color:#6b7280;font-size:.7rem;font-weight:700}.streak-goal-ready{opacity:1;cursor:pointer;background:linear-gradient(#fff8d6,#ffe58a);border-color:#ffb703;animation:.9s ease-in-out infinite goal-bounce}.streak-goal-ready .streak-goal-icon{filter:none}.streak-goal-ready .streak-goal-label{color:#a16207;font-size:.85rem;font-weight:900}.streak-goal-claimed{opacity:1;background:#ecfdf5}.streak-goal-claimed .streak-goal-icon{filter:none}@keyframes flame-flicker{0%,to{transform:scale(1)rotate(-3deg)}50%{transform:scale(1.08,1.12)rotate(3deg)}}@keyframes goal-bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}@keyframes dot-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.3)}}.auth-card,.auth-card form{flex-direction:column;gap:12px;display:flex}.auth-hero{font-size:3.2rem;line-height:1}.auth-choice{text-align:left;cursor:pointer;border:none;border-radius:22px;align-items:center;gap:16px;width:100%;padding:18px 20px;font-family:inherit;transition:transform .12s;display:flex;box-shadow:0 6px 18px #00000014}.auth-choice:active{transform:scale(.97)}.auth-choice>span:last-child{flex-direction:column;display:flex}.auth-choice-kid{background:linear-gradient(135deg,#bfe6ff,#d9f99d)}.auth-choice-parent{background:linear-gradient(135deg,#f5dcff,#ffe4cc)}.auth-choice-icon{font-size:2.6rem}.auth-choice-title{color:#3b2f6b;font-size:1.3rem;font-weight:900}.auth-choice-sub{color:#6b7280;font-size:.9rem;font-weight:600}.auth-input{text-align:left;margin:0}.auth-submit{width:100%;padding:14px;font-size:1.15rem}.auth-error{color:#b91c1c;background:#fee2e2;border-radius:12px;padding:10px 14px;font-size:.95rem;font-weight:700}.auth-notice{color:#166534;background:#dcfce7;border-radius:12px;padding:10px 14px;font-size:.95rem;font-weight:700}.auth-links{flex-direction:column;gap:6px;display:flex}.auth-links button,.auth-link-small{color:#6b5bd6;cursor:pointer;background:0 0;border:none;font-family:inherit;font-size:.95rem;font-weight:700}.auth-link-small{color:#9ca3af;margin-top:12px;font-size:.85rem}.auth-fine{color:#9ca3af;margin:0;font-size:.8rem}.kid-code-input{letter-spacing:.35em;text-align:center;text-transform:uppercase;font-size:2rem;font-weight:900}.kid-pin-who{color:#3b2f6b;font-size:1.3rem;font-weight:900}.kid-pin-who span{vertical-align:middle;font-size:2.4rem}.kid-pin-dots{justify-content:center;gap:16px;margin:4px 0 8px;display:flex}.kid-pin-dot{border:3px solid #c4b5fd;border-radius:50%;width:22px;height:22px;transition:background .15s}.kid-pin-dot-on{background:#6b5bd6;border-color:#6b5bd6}.kid-pin-pad{grid-template-columns:repeat(3,1fr);gap:10px;width:100%;max-width:300px;margin:0 auto;display:grid}.kid-pin-key{cursor:pointer;color:#3b2f6b;background:#f1f0fb;border:none;border-radius:18px;padding:14px 0;font-family:inherit;font-size:1.8rem;font-weight:800}.kid-pin-key:active{background:#ddd6fe}.grade-grid-6{grid-template-columns:repeat(6,1fr)!important}.grade-chosen{color:#6b5bd6;margin:4px 0 0;font-weight:800}.pin-input{letter-spacing:.5em;text-align:center;max-width:200px;margin:0 auto;font-size:1.6rem}.family-panel{background:linear-gradient(135deg,#eef2ff,#fdf4ff);border-radius:20px;margin-bottom:18px;padding:16px}.family-code-label{color:#7c6fc4;text-transform:uppercase;letter-spacing:.08em;font-size:.8rem;font-weight:800}.family-code{letter-spacing:.3em;color:#3b2f6b;font-family:ui-monospace,Menlo,monospace;font-size:2.4rem;font-weight:900}.family-help{color:#6b7280;margin:4px 0 12px;font-size:.85rem}.family-account{border-top:1px solid #e5e7eb;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;padding-top:12px;display:flex}.family-email{color:#6b7280;font-size:.85rem;font-weight:600}.family-actions{align-items:center;gap:10px;display:flex}.family-btn{padding:8px 16px;font-size:.9rem}.family-delete{color:#dc2626;cursor:pointer;background:0 0;border:none;font-family:inherit;font-size:.85rem;font-weight:700}.import-list{flex-direction:column;gap:8px;display:flex}.import-row{cursor:pointer;text-align:left;background:#f5f3ff;border:3px solid #0000;border-radius:16px;align-items:center;gap:12px;padding:12px 16px;display:flex}.import-row-on{background:#efeaff;border-color:#6b5bd6}.import-row input{accent-color:#6b5bd6;width:22px;height:22px}.import-emoji{font-size:1.8rem}.import-name{color:#3b2f6b;font-size:1.15rem;font-weight:800}.remove-kid{margin-top:16px}.word-pick-wrap{display:inline-flex;position:relative}.word-remove-btn{color:#fff;cursor:pointer;background:#ef4444;border:2px solid #fff;border-radius:50%;justify-content:center;align-items:center;width:22px;height:22px;padding:0;font-size:.7rem;font-weight:900;display:flex;position:absolute;top:-8px;right:-8px}.word-add-btn{color:#6b5bd6!important;background:#fff!important;border:2px dashed #c4b5fd!important}.word-add-form{align-items:center;gap:8px;width:100%;display:flex}.word-add-input{flex:1;min-width:0;margin:0;padding:10px 12px;font-size:1.05rem}.word-add-form .btn{margin:0;padding:10px 14px;font-size:.95rem}.word-add-hint{color:#9ca3af;text-align:left;margin:0 0 8px;font-size:.8rem}.photo-cta{text-align:left;cursor:pointer;background:linear-gradient(135deg,#fde68a,#fbcfe8);border:none;border-radius:20px;align-items:center;gap:14px;width:100%;margin-bottom:16px;padding:16px 18px;font-family:inherit;display:flex;box-shadow:0 6px 18px #db27772e}.photo-cta>span:last-child{flex-direction:column;display:flex}.photo-cta-icon{font-size:2.4rem}.photo-cta-title{color:#3b2f6b;font-size:1.15rem;font-weight:900}.photo-cta-sub{color:#6b4f5f;font-size:.85rem;font-weight:600}.set-builder,.set-review{flex-direction:column;gap:12px;display:flex}.set-photos{grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:10px;display:grid}.set-photo{aspect-ratio:3/4;background:#f3f4f6;border-radius:14px;position:relative;overflow:hidden}.set-photo img{object-fit:cover;width:100%;height:100%}.set-photo .word-remove-btn{top:6px;right:6px}.set-photo-add{cursor:pointer;color:#6b5bd6;background:#faf8ff;border:3px dashed #c4b5fd;flex-direction:column;justify-content:center;align-items:center;gap:4px;font-family:inherit;font-weight:800;display:flex}.set-photo-add span:first-child{font-size:2rem}.set-note{text-align:left;resize:vertical;margin:0;font-family:inherit;font-size:1rem}.set-wait{flex-direction:column;align-items:center;gap:8px;display:flex}.set-wait-egg{font-size:4rem;animation:.9s ease-in-out infinite pet-wiggle}.set-wait-line{color:#6b5bd6;font-weight:700;animation:.4s ease-out pet-pop}.set-title-input{margin:0;font-weight:800}.set-found{text-align:left;color:#166534;background:#f0fdf4;border-radius:14px;margin:0;padding:12px 12px 12px 30px;font-size:.9rem;font-weight:600}.set-section{box-sizing:border-box;text-align:left;border:2px solid #ede9fe;border-radius:16px;align-self:stretch;width:100%;overflow:hidden}.set-section-head{cursor:pointer;color:#3b2f6b;background:#f5f3ff;border:none;justify-content:space-between;align-items:center;width:100%;padding:12px 14px;font-family:inherit;font-size:1rem;font-weight:900;display:flex}.set-section-count{color:#7c6fc4;font-size:.9rem;font-weight:700}.set-section-body{flex-direction:column;gap:8px;padding:10px 12px;display:flex}.set-item{background:#fafafa;border-radius:12px;align-items:flex-start;gap:8px;padding:10px;display:flex}.set-item-body{flex:1;min-width:0}.set-item-sentence{color:#6b7280;margin-bottom:2px;font-size:.85rem;font-style:italic}.set-item-q{color:#1f2937;margin-bottom:6px;font-weight:700}.set-item-choices{flex-wrap:wrap;gap:6px;display:flex}.set-choice{color:#4b5563;background:#eef0f6;border-radius:999px;padding:3px 9px;font-size:.8rem}.set-choice-right{color:#166534;background:#dcfce7;font-weight:800}.set-item-remove{cursor:pointer;background:0 0;border:none;padding:2px;font-size:1.1rem}.set-tip{color:#92400e;background:#fffbeb;border-radius:12px;padding:8px 12px;font-size:.9rem;font-weight:700}.set-passage{color:#1e3a8a;background:#eff6ff;border-radius:12px;padding:10px 12px;font-size:.9rem}.set-passage p{margin:6px 0 0}.this-week{text-align:left;background:linear-gradient(135deg,#fff7d6,#ffe1ec);border-radius:22px;margin:0 0 18px;padding:14px;box-shadow:0 6px 18px #db277726}.this-week-head{flex-direction:column;margin-bottom:10px;display:flex}.this-week-label{color:#be185d;text-transform:uppercase;letter-spacing:.06em;font-size:.8rem;font-weight:900}.this-week-title{color:#3b2f6b;font-size:1.25rem;font-weight:900}.this-week-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px;display:grid}.this-week-btn{cursor:pointer;text-align:left;background:#fff;border:none;border-radius:16px;flex-direction:column;align-items:flex-start;gap:2px;padding:12px;font-family:inherit;transition:transform .12s;display:flex;box-shadow:0 3px 10px #00000012}.this-week-btn:active{transform:scale(.96)}.this-week-icon{font-size:1.7rem}.this-week-name{color:#3b2f6b;font-size:.95rem;font-weight:900}.this-week-count{color:#9ca3af;font-size:.8rem;font-weight:700}.this-week-nav{justify-content:space-between;margin-top:8px;display:flex}.this-week-nav button{color:#be185d;cursor:pointer;background:0 0;border:none;font-family:inherit;font-weight:800}.set-instruction{color:#6b7280;margin:4px 0 0;font-weight:700}.set-sentence{text-align:left;color:#1e1b4b;background:#f3e8ff;border-radius:16px;margin:8px 0;padding:14px 16px;font-size:1.05rem;line-height:1.6}.set-word{color:#6d28d9;text-decoration:underline}.set-question{color:#1f2937;flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;margin:12px 0;font-size:1.2rem;font-weight:800;display:flex}.set-question-big{font-size:2.2rem}.set-hint-tip{margin-top:4px;font-size:.9rem}.set-story{text-align:left;background:#f8fafc;border-radius:16px;max-height:55vh;margin:8px 0;padding:12px 16px;overflow-y:auto}.set-reread{margin:0}.set-groups{flex-wrap:wrap;justify-content:center;gap:10px;margin:8px 0 14px;display:flex}.set-group{border:3px solid #c4b5fd;border-radius:14px;flex-wrap:wrap;justify-content:center;gap:4px;max-width:90px;padding:8px;display:flex}.set-array{gap:6px;margin:8px auto 14px;display:inline-grid}.set-dot{background:radial-gradient(circle at 35% 30%,#fde68a,#f59e0b);border-radius:50%;width:16px;height:16px;display:inline-block}.set-count{background:#f5f3ff;border-radius:16px;justify-content:space-between;align-items:center;gap:10px;padding:10px 14px;display:flex}.set-count-label{color:#3b2f6b;text-align:left;font-size:.95rem;font-weight:800}.set-count-options{gap:6px;display:flex}.set-count-btn{color:#6b5bd6;cursor:pointer;background:#fff;border:2px solid #ddd6fe;border-radius:12px;width:52px;padding:8px 0;font-family:inherit;font-size:1.05rem;font-weight:900}.set-count-on{color:#fff;background:#6b5bd6;border-color:#6b5bd6}.set-credits{color:#6b5bd6;margin:0;font-size:.9rem;font-weight:800}.set-credits-out{color:#b91c1c;background:#fee2e2;border-radius:12px;padding:8px 12px}
