.home{gap:clamp(16px,2.4vw,26px)}.home-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.brand{letter-spacing:-.01em;align-items:center;gap:12px;font-size:clamp(1.2rem,2.2vw,1.45rem);font-weight:900;display:flex}.home-meta{align-items:center;gap:10px;display:flex}.meta-chip.streak{color:var(--orange-ink)}.meta-chip.streak svg{color:var(--orange)}.meta-chip.stars-chip svg{color:var(--yellow)}.hello h1{letter-spacing:-.02em;font-size:clamp(2rem,4.4vw,3rem);font-weight:900;line-height:1.1}.hello p{color:var(--ink-2);margin-top:4px;font-size:clamp(1.15rem,2vw,1.4rem);font-weight:750}.continue{border:3px solid var(--tone-soft);background:linear-gradient(115deg, #fff 55%, var(--tone-soft));transition:transform .15s var(--ease-out), box-shadow .15s;align-items:center;gap:clamp(14px,2.4vw,24px);padding:clamp(16px,2.6vw,26px);display:flex}.continue:active{transform:scale(.99)}.continue-icon{background:var(--tone);color:#fff;width:clamp(64px,9vw,84px);height:clamp(64px,9vw,84px);box-shadow:0 5px 0 var(--tone-edge);border-radius:24px;flex:none;place-items:center;display:grid}.continue-text{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.continue-text strong{font-size:clamp(1.35rem,2.6vw,1.85rem);font-weight:900;line-height:1.2}.continue-text .muted{font-weight:700}.continue-btn{--btn-bg:var(--tone);--btn-edge:var(--tone-edge);flex:none}@media (width<=640px){.continue{flex-wrap:wrap}.continue-btn{width:100%}}.home-tiles{grid-template-columns:repeat(5,1fr);gap:clamp(12px,1.8vw,18px);display:grid}.home-tile{min-height:188px;transition:transform .15s var(--ease-out), border-color .15s;border:3px solid #0000;flex-direction:column;align-items:flex-start;gap:4px;padding:20px;display:flex;position:relative;overflow:hidden}.home-tile:hover,.topic-card:hover,.lesson-card:hover{border-color:var(--tone-soft)}.home-tile:active,.topic-card:active{transform:scale(.98)}.tile-icon{background:var(--tone);color:#fff;width:64px;height:64px;box-shadow:0 5px 0 var(--tone-edge);border-radius:20px;place-items:center;margin-bottom:auto;display:grid;position:relative}.tile-title{margin-top:16px;font-size:1.35rem;font-weight:900;line-height:1.2;position:relative}.tile-text{color:var(--ink-2);font-size:1rem;font-weight:750;position:relative}.tile-glyph{color:var(--tone-soft);pointer-events:none;font-size:150px;font-weight:900;line-height:1;position:absolute;top:-30px;right:-6px}@media (width<=1000px){.home-tiles{grid-template-columns:repeat(6,1fr)}.home-tile{grid-column:span 2}.tile-learn,.tile-practice{grid-column:span 3}}@media (width<=600px){.home-tiles{grid-template-columns:1fr 1fr}.home-tile,.tile-learn,.tile-practice{grid-column:span 1;min-height:160px}.tile-progress{grid-column:span 2}}.unit{flex-direction:column;gap:12px;display:flex}.unit-head{align-items:center;gap:14px;display:flex}.unit-badge{background:var(--tone);color:#fff;width:48px;height:48px;box-shadow:0 4px 0 var(--tone-edge);border-radius:16px;flex:none;place-items:center;font-size:1.4rem;font-weight:900;display:grid}.unit-head h2{font-size:1.35rem;font-weight:900}.unit-head p{color:var(--ink-2);font-size:.98rem;font-weight:700}.lesson-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,330px),1fr));gap:12px;display:grid}.lesson-card{border:3px solid #0000;align-items:center;gap:14px;min-height:88px;padding:14px 16px;transition:transform .15s,border-color .15s;display:flex}.lesson-card:active{transform:scale(.985)}.lesson-num{background:var(--tone-soft);width:48px;height:48px;color:var(--tone-ink);border-radius:50%;flex:none;place-items:center;font-size:1.25rem;font-weight:900;display:grid}.lesson-card.is-done .lesson-num{background:var(--green);color:#fff}.lesson-card.is-next{border-color:var(--tone);box-shadow:0 0 0 5px var(--tone-soft), var(--shadow)}.lesson-card.is-next .lesson-num{background:var(--tone);color:#fff}.lesson-info{flex-direction:column;flex:1;min-width:0;display:flex}.lesson-info strong{font-size:1.12rem;font-weight:900;line-height:1.25}.lesson-info span{color:var(--ink-2);font-size:.95rem;font-weight:650;line-height:1.3}.lesson-end{flex:none}.up-next{background:var(--tone);color:#fff;border-radius:999px;align-items:center;gap:4px;padding:8px 14px;font-weight:900;display:inline-flex}.lesson-arrow{color:var(--ink-3)}.stars.still .star.on{animation:none}.topic-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,230px),1fr));gap:14px;display:grid}.topic-card{min-height:196px;transition:transform .15s var(--ease-out), border-color .15s;border:3px solid #0000;flex-direction:column;align-items:flex-start;gap:8px;padding:18px;display:flex}.topic-icon{background:var(--tone-soft);width:56px;height:56px;color:var(--tone-ink);border-radius:18px;place-items:center;display:grid}.topic-icon.big{background:var(--tone);color:#fff;width:84px;height:84px;box-shadow:0 5px 0 var(--tone-edge);border-radius:26px}.topic-title{font-size:1.2rem;font-weight:900}.topic-pattern{color:var(--ink-2);font-variant-numeric:tabular-nums;margin-bottom:auto;font-size:1.5rem;font-weight:900}.topic-pattern.words{font-size:1.05rem;font-weight:750}.pips{align-items:center;gap:8px;display:flex}.pips-row{gap:4px;display:flex}.pips-row span{background:var(--line-2);border-radius:4px;width:18px;height:8px}.pips-row span.on{background:var(--tone,var(--green))}.pips-label{color:var(--ink-3);font-size:.85rem;font-weight:800}.setup{text-align:center;flex-direction:column;align-items:center;gap:22px;width:min(100%,740px);margin:0 auto;padding:clamp(22px,4vw,40px);display:flex}.setup-pattern{font-size:clamp(2.2rem,5vw,3.2rem);font-weight:900}.setup-pattern.words{font-size:1.5rem}.setup-lead{max-width:520px;color:var(--ink-2);font-size:1.25rem;font-weight:750}.setup-group{flex-direction:column;align-items:center;gap:10px;width:100%;display:flex}.choice-chips{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.level-chip{border:3px solid var(--line);background:var(--surface);min-width:112px;min-height:66px;box-shadow:0 4px 0 var(--line-2);cursor:pointer;border-radius:18px;flex-direction:column;justify-content:center;align-items:center;padding:8px 14px;transition:transform 80ms,box-shadow 80ms,border-color .2s,background-color .2s;display:flex}.level-chip:active{box-shadow:0 1px 0 var(--line-2);transform:translateY(3px)}.level-chip strong{font-size:1.1rem;font-weight:900}.level-chip span{color:var(--ink-3);font-size:.8rem;font-weight:800}.level-chip.on{border-color:var(--tone);background:var(--tone-soft)}.level-chip.on span{color:var(--tone-ink)}.level-chip.small{min-width:84px}.setup-start{min-width:220px}.focus-chip{color:var(--orange-ink);background:var(--orange-soft);border-color:#ffd7b8}.level-tag{color:var(--tone-ink);background:var(--tone-soft);border-color:#0000}.progress-stats{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;display:grid}.progress-stat{flex-direction:column;gap:2px;padding:16px;display:flex}.progress-stat-icon{background:var(--tone-soft);width:40px;height:40px;color:var(--tone);border-radius:12px;place-items:center;margin-bottom:6px;display:grid}.progress-stat strong{font-size:1.9rem;font-weight:900;line-height:1.1}.progress-stat span{color:var(--ink-2);font-size:.92rem;font-weight:750}.progress-split{grid-template-columns:1fr 1fr;gap:14px;display:grid}@media (width<=760px){.progress-split{grid-template-columns:1fr}}.progress-panel{flex-direction:column;gap:14px;padding:clamp(16px,2.6vw,26px);display:flex}.section-title{align-items:center;gap:8px;display:flex}.link-chip{color:var(--ink)}.chip-pattern{color:var(--ink-3);font-weight:900}.skill-groups{grid-template-columns:repeat(auto-fill,minmax(min(100%,340px),1fr));gap:20px 32px;display:grid}.skill-group h3{letter-spacing:.06em;text-transform:uppercase;color:var(--tone-ink);margin-bottom:2px;font-size:.92rem;font-weight:900}.skill-row{border-bottom:2px solid var(--line);flex-wrap:wrap;align-items:center;gap:8px 14px;padding:10px 0;display:flex}.skill-row:last-child{border-bottom:0}.skill-name{flex-direction:column;flex:170px;display:flex}.skill-name strong{font-weight:850}.skill-pattern{color:var(--ink-3);font-size:.95rem;font-weight:900}.skill-level{text-align:right;min-width:84px;color:var(--ink-3);font-size:.85rem;font-weight:800}.badge-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));justify-items:center;gap:20px;display:grid}.grownup-facts p{font-weight:700}.grownups .settings{max-width:560px}.reset-btn{align-self:flex-start}.small-text{font-size:.98rem}.settings{flex-direction:column;gap:10px;width:100%;display:flex}.toggle{border:2px solid var(--line);background:var(--surface);text-align:left;cursor:pointer;border-radius:16px;justify-content:space-between;align-items:center;gap:16px;width:100%;padding:12px 16px;display:flex}.toggle-text{flex-direction:column;display:flex}.toggle-text strong{font-weight:900}.toggle-text span{color:var(--ink-3);font-size:.9rem;font-weight:700}.toggle-track{background:var(--line-2);border-radius:999px;flex:none;width:60px;height:36px;transition:background-color .2s;position:relative}.toggle-thumb{width:28px;height:28px;color:var(--green);transition:transform .2s var(--spring);background:#fff;border-radius:50%;place-items:center;display:grid;position:absolute;top:4px;left:4px;box-shadow:0 2px 4px #00000026}.toggle.on .toggle-track{background:var(--green)}.toggle.on .toggle-thumb{transform:translate(24px)}.dots{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.dot{color:#fff;width:22px;height:22px;transition:background-color .3s, transform .3s var(--spring);background:#eee4d6;border-radius:50%;place-items:center;display:grid}.dot.current{box-shadow:inset 0 0 0 4px var(--blue);background:#fff;transform:scale(1.12)}.dot.done{background:var(--blue)}.dot.done.star{background:var(--yellow);color:#fff;animation:pop-in .4s var(--spring)}.stars{justify-content:center;gap:8px;display:flex}.star{color:#e9dfd0}.star.on{color:var(--yellow);filter:drop-shadow(0 3px 0 var(--yellow-dark));animation:star-in .6s var(--spring) both;animation-delay:calc(var(--i) * .25s + .2s)}@keyframes star-in{0%{opacity:0;transform:scale(0)rotate(-40deg)}}.confetti{pointer-events:none;z-index:30;position:fixed;inset:0;overflow:hidden}.confetti span{opacity:.9;border-radius:3px;width:10px;height:16px;animation-name:confetti-fall;animation-timing-function:cubic-bezier(.3,.6,.5,1);animation-fill-mode:both;position:absolute;top:-20px}.confetti span.round{border-radius:50%;width:12px;height:12px}@keyframes confetti-fall{0%{transform:translateY(0) rotate(var(--r))}to{transform:translateY(105vh) rotate(calc(var(--r) + 540deg));opacity:.8}}.dialog-backdrop{z-index:40;background:#1d274259;place-items:center;padding:20px;animation:.2s fade-in;display:grid;position:fixed;inset:0}.dialog{text-align:center;width:min(100%,440px);animation:pop-in .3s var(--spring);flex-direction:column;gap:12px;padding:28px;display:flex}.dialog h2{font-size:1.45rem;font-weight:900}.dialog-actions{flex-wrap:wrap;justify-content:center;gap:12px;margin-top:8px;display:flex}.dialog-actions .btn{flex:1}.speak-btn{color:var(--blue)}@keyframes pop-in{0%{opacity:0;transform:scale(.3)}}@keyframes fade-in{0%{opacity:0}}.mascot{flex:none;align-items:center;gap:10px;display:inline-flex;position:relative}.mascot svg{flex:none;overflow:visible}.mascot.animate .dot-body{transform-box:fill-box;transform-origin:50% 100%;animation:3.2s ease-in-out infinite dot-bob}.mascot.animate.mood-cheer .dot-body{animation:dot-cheer .9s var(--spring) 2}.mascot.animate.mood-oops .dot-body{animation:1.2s ease-in-out dot-tilt}.mascot.animate .dot-star{transform-box:fill-box;transform-origin:50%;animation:2.6s ease-in-out infinite dot-twinkle}.mascot.animate .blink{transform-box:fill-box;transform-origin:50%;animation:5s infinite dot-blink}.mascot .pet{animation:2.4s ease-in-out infinite reverse dot-bob}@keyframes dot-bob{50%{transform:translateY(-3px)}}@keyframes dot-cheer{30%{transform:translateY(-14px)scale(1.03,.97)}60%{transform:translateY(0)scale(1.05,.95)}}@keyframes dot-tilt{30%{transform:rotate(-6deg)}60%{transform:rotate(4deg)}}@keyframes dot-twinkle{50%{transform:rotate(20deg)scale(1.15)}}@keyframes dot-blink{0%,94%,to{transform:scaleY(1)}97%{transform:scaleY(.1)}}.mascot-bubble{border:2px solid var(--line);max-width:280px;box-shadow:var(--shadow-sm);color:var(--ink);animation:bubble-in .35s var(--spring);background:#fff;border-radius:18px;padding:10px 16px;font-size:1.05rem;font-weight:850;line-height:1.3;position:relative}.mascot-bubble:before{content:"";border-left:2px solid var(--line);border-bottom:2px solid var(--line);background:#fff;width:14px;height:14px;position:absolute;top:50%;left:-9px;transform:translateY(-50%)rotate(45deg)}@keyframes bubble-in{0%{opacity:0;transform:scale(.8)translate(-6px)}}.qp{grid-template-columns:minmax(0,1fr) minmax(300px,360px);align-items:start;gap:clamp(14px,2vw,22px);display:grid}.qp-stage{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:20px;min-height:clamp(320px,52vh,540px);padding:clamp(18px,3vw,34px);display:flex}.qp-prompt{letter-spacing:.07em;text-transform:uppercase;color:var(--ink-3);font-size:.92rem;font-weight:900}.qp-problem{justify-content:center;width:100%;display:flex}.qp-controls{flex-direction:column;gap:14px;display:flex;position:sticky;top:14px}.qp-actions{gap:10px;display:flex}.qp-actions .btn{flex:1;padding:0 16px}.qp-actions .btn-lg{flex:1.6}@media (width<=1023px),(orientation:portrait) and (width<=1100px){.qp{grid-template-columns:1fr}.qp-stage{min-height:0}.qp-controls{z-index:5;padding:14px 0 calc(8px + env(safe-area-inset-bottom));background:linear-gradient(to bottom, #fff8ef00, var(--bg) 22px);top:auto;bottom:0}.qp-controls>*{width:100%;max-width:560px;margin-left:auto;margin-right:auto}.qp-controls .numpad{max-width:420px}}@keyframes feedback-in{0%{opacity:0;transform:translateY(8px)scale(.98)}}.feedback{text-align:left;width:100%;max-width:640px;animation:feedback-in .35s var(--spring);border-radius:18px;align-items:flex-start;gap:14px;padding:14px 18px;display:flex}.feedback.good{background:var(--green-soft);color:var(--green-ink);border:2px solid #bfe8d4}.feedback.try{background:var(--amber-soft);color:var(--amber-ink);border:2px solid #f3dcad}.feedback-icon{color:#fff;border-radius:50%;flex:none;place-items:center;width:44px;height:44px;display:grid}.feedback.good .feedback-icon{background:var(--green)}.feedback.try .feedback-icon{background:var(--amber)}.feedback-msg{font-size:1.25rem;font-weight:900}.feedback-detail{color:var(--ink-2);margin-top:2px;font-size:1.08rem;font-weight:700}.hint{text-align:left;width:100%;max-width:700px;animation:feedback-in .35s var(--spring);background:#fffbef;border:2px dashed #efcd82;border-radius:20px;flex-direction:column;gap:12px;padding:16px 18px;display:flex}.hint-head{color:var(--amber-ink);letter-spacing:.06em;text-transform:uppercase;align-items:center;gap:8px;font-size:.86rem;font-weight:900;display:flex}.hint-head .speak-btn{margin-left:auto}.hint-say{color:var(--ink);font-size:1.2rem;font-weight:800}.hint .work{align-items:flex-start}.hint-visual{background:#fff;border-radius:16px;padding:12px}.hint .counters{--size:clamp(24px, 3.4vw, 36px)}.choice-row{gap:12px;display:grid}.choice-row.two{grid-template-columns:1fr 1fr}.choice-row.three{grid-template-columns:repeat(3,1fr)}.choice-btn{border:3px solid var(--line);background:var(--surface);min-height:104px;box-shadow:0 5px 0 var(--line-2);cursor:pointer;border-radius:22px;flex-direction:column;justify-content:center;align-items:center;gap:6px;font-size:1.35rem;font-weight:900;transition:transform 80ms,box-shadow 80ms,border-color .2s,background-color .2s;display:flex}.choice-btn:active:not(:disabled){box-shadow:0 1px 0 var(--line-2);transform:translateY(4px)}.choice-btn:disabled{cursor:default}.choice-btn.tf.yes{color:var(--green-ink)}.choice-btn.tf.no{color:var(--orange-ink)}.choice-btn.picked{border-color:var(--blue);background:var(--blue-soft)}.qp.is-done .choice-btn.picked{border-color:var(--green);background:var(--green-soft)}.rel-symbol{font-size:2.8rem;line-height:1}.rel-words{color:var(--ink-2);font-size:.9rem;font-weight:800}.options{flex-direction:column;gap:12px;display:flex}.option-btn{border:3px solid var(--line);background:var(--surface);min-height:80px;box-shadow:0 5px 0 var(--line-2);cursor:pointer;border-radius:20px;align-items:center;gap:14px;padding:10px 18px;transition:transform 80ms,box-shadow 80ms,border-color .2s,background-color .2s;display:flex}.option-btn:active:not(:disabled){box-shadow:0 1px 0 var(--line-2);transform:translateY(4px)}.option-btn .eq{flex:1}.option-btn.picked{border-color:var(--blue);background:var(--blue-soft)}.option-btn.right{border-color:var(--green);background:var(--green-soft)}.option-letter{background:var(--surface-2);border:2px solid var(--line-2);width:38px;height:38px;color:var(--ink-2);border-radius:50%;flex:none;place-items:center;font-weight:900;display:grid}.tiles{flex-direction:column;align-items:center;gap:10px;display:flex}.tile-row{flex-wrap:wrap;justify-content:center;gap:12px;display:flex}.tile{border:3px solid var(--line);background:var(--surface);min-width:78px;height:78px;box-shadow:0 5px 0 var(--line-2);cursor:pointer;border-radius:20px;padding:0 14px;font-size:2.2rem;font-weight:900;transition:transform 80ms,box-shadow 80ms,opacity .2s}.tile:active:not(:disabled){box-shadow:0 1px 0 var(--line-2);transform:translateY(4px)}.tile.num{color:var(--blue-ink)}.tile.op{color:var(--orange-ink)}.tile.num.used{opacity:.3}.tile.op.used{background:var(--orange-soft);border-color:var(--orange)}.build{gap:.22em}.build-slot{border:max(3px, .05em) solid var(--blue);background:var(--blue-soft);min-width:1.3em;height:1.3em;color:var(--blue-ink);cursor:pointer;border-radius:.22em;place-items:center;padding:0 .12em;font-size:1em;font-weight:900;display:inline-grid}.build-slot.empty{border-style:dashed;border-color:var(--ink-3);background:#fff}.build-slot.wrong{border-color:var(--amber);background:var(--amber-soft);color:var(--amber-ink);animation:.42s shake}.problem-story{flex-direction:column;align-items:center;gap:22px;width:100%;display:flex}.story-answer{align-items:center;gap:14px;display:flex}.story-unit{color:var(--ink-2);font-size:clamp(1.3rem,2.4vw,1.8rem);font-weight:900}.problem-stack{flex-direction:column;align-items:center;gap:14px;display:flex}.verdict{animation:pop-in .4s var(--spring);border-radius:999px;padding:6px 20px;font-size:1.3rem;font-weight:900}.verdict.yes{background:var(--green-soft);color:var(--green-ink)}.verdict.no{background:var(--orange-soft);color:var(--orange-ink)}.story-solved{background:var(--green-soft);border-radius:16px;padding:6px 18px}.qp-done{text-align:center;color:var(--green-ink);flex-direction:column;align-items:center;gap:10px;padding:18px;font-size:1.3rem;font-weight:900;display:flex}.qp-done-badge{background:var(--yellow-soft);width:80px;height:80px;color:var(--yellow);animation:pop-in .5s var(--spring);border-radius:50%;place-items:center;display:grid;box-shadow:0 0 0 8px #ffc83d2e}.sheet-backdrop{z-index:40;background:#1d274261;justify-content:center;align-items:flex-end;padding:12px;animation:.2s fade-in;display:flex;position:fixed;inset:0}@media (width>=700px){.sheet-backdrop{align-items:center;padding:20px}}.sheet{width:min(100%,940px);max-height:calc(100dvh - 24px);animation:sheet-in .35s var(--ease-out);padding:clamp(16px,3vw,28px);overflow:auto}@keyframes sheet-in{0%{opacity:0;transform:translateY(30px)}}.sheet-head{justify-content:space-between;align-items:center;margin-bottom:6px;display:flex}.steps{flex-direction:column;align-items:center;gap:18px;width:100%;display:flex}.steps-problem{justify-content:center;width:100%;display:flex}.steps-visual{justify-content:center;align-items:center;width:100%;min-height:60px;display:flex}.tutor-say{background:var(--blue-soft);width:100%;max-width:740px;color:var(--ink);text-align:left;animation:feedback-in .35s var(--spring);border-radius:20px;align-items:center;gap:12px;padding:14px 18px;font-size:clamp(1.15rem,2.1vw,1.4rem);font-weight:800;display:flex}.tutor-say p{flex:1}.steps-nav{justify-content:space-between;align-items:center;gap:14px;width:100%;display:flex}.step-count{flex-wrap:wrap;justify-content:center;gap:6px;display:flex}.step-count span{background:var(--line-2);border-radius:50%;width:10px;height:10px;transition:background-color .2s}.step-count span.on{background:var(--blue)}.qp-head{justify-content:space-between;align-items:center;gap:12px;width:100%;display:flex}.explain-link{border:2px solid var(--line);min-height:40px;color:var(--ink-2);cursor:pointer;white-space:nowrap;background:#fff;border-radius:999px;align-items:center;gap:6px;padding:0 14px;font-size:.92rem;font-weight:850;display:inline-flex}.explain-link:active{transform:translateY(1px)}.qp-problem{position:relative}.buddy{animation:feedback-in .4s var(--spring);justify-content:center;padding:6px 0 2px;display:flex}.oops-line{text-align:center;color:var(--amber-ink);font-weight:850}.controls-note,.share-done-note{text-align:center;color:var(--ink-2);font-weight:800}.share-done-note{background:var(--green-soft);color:var(--green-ink);border-radius:14px;padding:6px 14px}.xp-float{z-index:3;background:var(--purple);color:#fff;pointer-events:none;box-shadow:0 4px 0 var(--purple-dark);animation:xp-rise 1.4s var(--ease-out) forwards;border-radius:999px;padding:4px 14px;font-size:1.15rem;font-weight:900;position:absolute;top:30%;left:50%;transform:translate(-50%)}@keyframes xp-rise{0%{opacity:0;transform:translate(-50%,20px)scale(.6)}20%{opacity:1;transform:translate(-50%)scale(1.08)}70%{opacity:1;transform:translate(-50%,-40px)scale(1)}to{opacity:0;transform:translate(-50%,-70px)scale(.95)}}.sparkles{pointer-events:none;width:0;height:0;position:absolute;top:50%;left:50%}.sparkles span{background:var(--yellow);width:10px;height:10px;transform:rotate(var(--a)) translateY(0);animation:spark .7s var(--ease-out) forwards;animation-delay:var(--d);opacity:0;border-radius:3px;position:absolute}.sparkles span:nth-child(3n){background:var(--green)}.sparkles span:nth-child(3n+1){background:var(--blue);border-radius:50%}@keyframes spark{0%{opacity:1;transform:rotate(var(--a)) translateY(0) scale(1)}to{opacity:0;transform:rotate(var(--a)) translateY(-120px) scale(.4)}}.problem-picture{justify-content:center;width:100%;padding:6px 0 4px;display:flex}.related-eq{opacity:.85}.match-tip{font-weight:750}.match-answer{background:var(--green-soft);max-width:560px;color:var(--green-ink);border-radius:16px;padding:10px 16px;font-weight:850}.options.grid{grid-template-columns:1fr 1fr;display:grid}.story-option{text-align:left;align-items:flex-start}.story-option-text{color:var(--ink);flex:1;font-size:1.08rem;font-weight:800;line-height:1.35}.make-target{background:var(--purple);color:#fff;min-width:96px;height:96px;box-shadow:0 6px 0 var(--purple-dark);border-radius:28px;place-items:center;padding:0 18px;font-size:3rem;font-weight:900;display:grid}.make-slots{gap:.25em}.make-slot{border:max(3px, .05em) solid var(--blue);background:var(--blue-soft);min-width:1.3em;height:1.3em;color:var(--blue-ink);border-radius:.22em;place-items:center;display:inline-grid}.make-slot.empty{background:#fff;border-style:dashed}.make-slots.wrong .make-slot{border-color:var(--amber);background:var(--amber-soft);animation:.42s shake}.make-slots.right .make-slot{border-color:var(--green);background:var(--green-soft);color:var(--green-ink)}.make-input{flex-direction:column;align-items:center;gap:14px;display:flex}.make-cards{flex-wrap:wrap;justify-content:center;gap:12px;display:flex}.make-card{border:3px solid var(--line);width:84px;height:96px;box-shadow:0 5px 0 var(--line-2);color:var(--ink);cursor:pointer;transition:transform .12s var(--spring), border-color .2s, background-color .2s;background:#fff;border-radius:20px;place-items:center;font-size:2.2rem;font-weight:900;display:grid}.make-card.picked{border-color:var(--purple);background:var(--purple-soft);color:var(--purple-ink);transform:translateY(-6px)rotate(-2deg)}.make-cards.static .make-card{width:64px;height:72px;font-size:1.7rem}.make-ops{gap:10px;display:flex}.tile-builder{touch-action:none;flex-direction:column;align-items:center;gap:16px;width:100%;display:flex}.tile-slots{background:var(--surface-2);border:2px dashed var(--line-2);border-radius:22px;flex-wrap:wrap;justify-content:center;gap:8px;padding:12px;display:flex}.tile-slots.wrong{border-color:var(--amber);background:var(--amber-soft);animation:.42s shake}.tile-slots.correct{border-style:solid;border-color:var(--green);background:var(--green-soft)}.tile-slot,.tile-chip,.tile-ghost{-webkit-user-select:none;user-select:none;touch-action:none;border-radius:18px;place-items:center;min-width:66px;height:70px;padding:0 12px;font-size:2rem;font-weight:900;display:inline-grid}.tile-slot{border:3px solid var(--blue);color:var(--ink);cursor:grab;background:#fff}.tile-slot.empty{cursor:default;background:#fff9;border:3px dashed #cfc2ad}.tile-slot.hover{border-color:var(--purple);background:var(--purple-soft);transform:scale(1.06)}.tile-slot.k-op,.tile-chip.k-op{color:var(--orange-ink)}.tile-slot.k-eq,.tile-chip.k-eq{color:var(--ink-2)}.tile-slot.k-unknown,.tile-chip.k-unknown{color:var(--purple-ink)}.tile-palette{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.tile-chip{border:3px solid var(--line);box-shadow:0 5px 0 var(--line-2);color:var(--blue-ink);cursor:grab;background:#fff;transition:transform .1s,opacity .2s}.tile-chip:active:not(:disabled){box-shadow:0 2px 0 var(--line-2);transform:translateY(3px)}.tile-chip.used{opacity:.25;cursor:default}.tile-chip.lifting{opacity:.4}.tile-chip.chosen{border-color:var(--orange);background:var(--orange-soft)}.tile-ghost{z-index:60;border:3px solid var(--purple);color:var(--purple-ink);pointer-events:none;background:#fff;position:fixed;transform:translate(-50%,-60%)rotate(-4deg)scale(1.08);box-shadow:0 12px 28px #1d274240}.share-ghost{border-radius:50%;min-width:0;height:auto;padding:6px}.tile-builder.locked .tile-slot,.tile-builder.locked .tile-chip{cursor:default}.share-board{touch-action:none;flex-direction:column;align-items:center;gap:16px;width:100%;display:flex}.share-basket{cursor:grab;background:#fdf1dd;border:3px dashed #eed5ad;border-radius:22px;flex-wrap:wrap;justify-content:center;align-items:center;gap:4px;max-width:520px;min-height:64px;padding:12px 16px;display:flex}.share-friends{flex-wrap:wrap;justify-content:center;gap:16px;display:flex}.friend{flex-direction:column;align-items:center;gap:4px;display:flex}.friend-plate{cursor:pointer;transition:transform .12s var(--spring), border-color .2s}.friend-plate:active,.friend-plate.hover{border-color:var(--friend);transform:scale(1.06)}.group-size.uneven{background:var(--amber-soft);color:var(--amber-ink)}.share-actions{flex-wrap:wrap;justify-content:center;align-items:center;gap:12px;display:flex}.share-tip{font-size:.92rem;font-weight:750}.train{width:100%;padding:10px 4px 22px;position:relative;overflow-x:auto}.train-track{background:repeating-linear-gradient(90deg,#b99b76 0 18px,#0000 18px 26px),#d9c4a5;border-radius:3px;height:6px;position:absolute;bottom:14px;left:0;right:0}.train-cars{justify-content:center;align-items:flex-end;gap:8px;min-width:max-content;margin:0 auto;display:flex;position:relative}.train.moving .train-cars{animation:train-go 1.2s var(--ease-out)}@keyframes train-go{30%{transform:translate(-10px)}to{transform:translate(0)}}.engine{flex:none;transform:scaleX(-1)}.car{animation:pop-in .35s var(--spring) both;animation-delay:calc(var(--i) * 70ms);flex-direction:column;align-items:center;display:flex;position:relative}.car-body{background:var(--car);color:#fff;border-radius:14px;place-items:center;min-width:86px;height:72px;padding:0 12px;font-size:2.1rem;font-weight:900;display:grid;box-shadow:inset 0 -6px #00000026}.car.blank .car-body{color:var(--blue-ink);border:4px dashed var(--blue);box-shadow:none;background:#fff}.car.blank.wrong .car-body{border-color:var(--amber);background:var(--amber-soft);color:var(--amber-ink);animation:.42s shake}.car.blank.correct .car-body{border-style:solid;border-color:var(--green);background:var(--green-soft);color:var(--green-ink)}.car-wheels{gap:30px;margin-top:-6px;display:flex}.car-wheels i{background:#1d2742;border:3px solid #5a6480;border-radius:50%;width:16px;height:16px}.translate-steps{flex-wrap:wrap;align-items:center;gap:6px;width:100%;display:flex}.translate-steps .explain-link{margin-left:auto}.tstep{background:var(--surface-2);border:2px solid var(--line);color:var(--ink-3);border-radius:999px;align-items:center;gap:6px;padding:4px 12px 4px 4px;font-size:.86rem;font-weight:850;display:inline-flex}.tstep-num{background:var(--line);width:24px;height:24px;color:var(--ink-2);border-radius:50%;place-items:center;font-weight:900;display:grid}.tstep.current{border-color:var(--purple);color:var(--purple-ink);background:var(--purple-soft)}.tstep.current .tstep-num{background:var(--purple);color:#fff}.tstep.done .tstep-num{background:var(--green);color:#fff}@media (width<=700px){.tstep-label{display:none}.tstep.current .tstep-label{display:inline}}.translate-body{flex-direction:column;align-items:center;gap:18px}.know-title{color:var(--ink-2);font-weight:800}.know-panel{background:var(--blue-soft);text-align:left;border-radius:18px;grid-template-columns:auto 1fr;align-items:baseline;gap:4px 12px;width:100%;max-width:720px;padding:12px 16px;display:grid}.know-panel p{font-weight:800}.translate-solve{flex-direction:column;align-items:center;gap:8px;display:flex}.check-card{flex-direction:column;align-items:center;gap:14px;width:100%;display:flex}.check-sentence{color:var(--green-ink);font-size:1.35rem;font-weight:900}.story-num.tappable{font:inherit;cursor:pointer;box-shadow:inset 0 0 0 3px var(--yellow), 0 3px 0 var(--yellow-dark);background:#fff;border:0;border-radius:.35em;margin:0 .05em;padding:.05em .35em;animation:1.8s ease-in-out infinite tap-me}@keyframes tap-me{50%{box-shadow:inset 0 0 0 3px var(--yellow), 0 3px 0 var(--yellow-dark), 0 0 0 6px #ffc83d40}}.story-num.tapped-yes{background:var(--green-soft);box-shadow:inset 0 0 0 3px var(--green);animation:none}.story-num.tapped-no{background:#f1f2f5;text-decoration:line-through;animation:none;box-shadow:inset 0 0 0 3px #cdd2dc}.action-picker{grid-template-columns:1fr 1fr;gap:12px;display:grid}.action-btn{border:3px solid var(--line);min-height:108px;box-shadow:0 5px 0 var(--line-2);cursor:pointer;background:#fff;border-radius:22px;flex-direction:column;justify-content:center;align-items:center;gap:6px;padding:12px;transition:transform 80ms,box-shadow 80ms,border-color .2s,background-color .2s;display:flex}.action-btn:active:not(:disabled){box-shadow:0 1px 0 var(--line-2);transform:translateY(4px)}.action-symbol{color:#fff;background:var(--blue);border-radius:50%;place-items:center;width:44px;height:44px;font-size:1.7rem;font-weight:900;display:grid}.a-separate .action-symbol,.a-compare .action-symbol{background:var(--orange)}.a-groups .action-symbol{background:var(--teal)}.a-share .action-symbol{background:var(--yellow-dark)}.a-partwhole .action-symbol{background:var(--green)}.action-label{text-align:center;font-size:1rem;font-weight:900;line-height:1.2}.action-btn.picked{border-color:var(--blue);background:var(--blue-soft)}.action-btn.right{border-color:var(--green);background:var(--green-soft)}.strategy-tabs{background:#f3eadc;border-radius:18px;flex-wrap:wrap;justify-content:center;gap:6px;padding:5px;display:flex}.strategy-tabs button{min-height:42px;color:var(--ink-2);cursor:pointer;background:0 0;border:0;border-radius:14px;align-items:center;gap:6px;padding:0 16px;font-weight:900;display:inline-flex}.strategy-tabs button.on{color:var(--blue-ink);background:#fff;box-shadow:0 2px #e3d3bd}@media (width<=600px){.know-panel{grid-template-columns:1fr;gap:6px}.know-panel p+.eyebrow{margin-top:8px}.qp-controls{position:static}.tile-slots{grid-template-columns:repeat(5,minmax(0,1fr));gap:4px;width:100%;padding:8px;display:grid}.tile-slot{border-radius:12px;width:100%;min-width:0;height:56px;padding:0 2px;font-size:1.25rem}.tile-builder{touch-action:pan-y}}.phase-steps{align-items:center;gap:8px;display:flex}.phase-step{border:2px solid var(--line);background:var(--surface);color:var(--ink-3);border-radius:999px;align-items:center;gap:8px;padding:5px 14px 5px 5px;font-size:.95rem;font-weight:850;display:inline-flex}.phase-step .num{background:var(--line);width:28px;height:28px;color:var(--ink-2);border-radius:50%;place-items:center;font-weight:900;display:grid}.phase-step.current{border-color:var(--tone);color:var(--tone-ink)}.phase-step.current .num{background:var(--tone);color:#fff}.phase-step.done .num{background:var(--green);color:#fff}@media (width<=720px){.phase-label{display:none}.phase-step{padding:4px}}.session-status{flex-wrap:wrap;justify-content:center;align-items:center;gap:12px;display:flex}.extra-chip{color:var(--purple-ink);background:var(--purple-soft);animation:pop-in .35s var(--spring);border-color:#ddd0ff}.intro{flex-direction:column;gap:18px;display:flex}.intro-card{text-align:center;border-top:8px solid var(--tone);min-height:clamp(360px,56vh,540px);animation:feedback-in .4s var(--spring);flex-direction:column;justify-content:center;align-items:center;gap:26px;padding:clamp(22px,4vw,44px);display:flex}.intro-goal{background:var(--tone-soft);color:var(--tone-ink);border-radius:999px;align-items:center;gap:8px;padding:6px 16px;font-weight:850;display:inline-flex}.intro-say{align-items:center;gap:14px;max-width:780px;font-size:clamp(1.45rem,3vw,2.05rem);font-weight:900;line-height:1.3;display:flex}.intro-nav,.steps-nav{justify-content:space-between;align-items:center;gap:12px;display:flex}.example-card{text-align:center;min-height:clamp(360px,56vh,560px);animation:feedback-in .35s var(--spring);flex-direction:column;justify-content:center;align-items:center;gap:24px;padding:clamp(18px,3vw,34px);display:flex}.think{flex-direction:column;align-items:center;gap:18px;display:flex}.think-bubble{background:var(--yellow-soft);color:var(--ink);text-align:left;border-radius:22px;align-items:center;gap:14px;padding:12px 22px 12px 14px;font-size:1.2rem;font-weight:750;display:flex}.think-ring{flex:none;width:44px;height:44px;transform:rotate(-90deg)}.think-ring circle{fill:none;stroke-width:5px}.think-ring .track{stroke:#f5e3ad}.think-ring .fill{stroke:var(--yellow-dark);stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:1px;animation:linear forwards think-fill}@keyframes think-fill{to{stroke-dashoffset:0}}.btn.pulse{animation:1.8s ease-in-out infinite btn-pulse}@keyframes btn-pulse{50%{box-shadow:0 4px 0 var(--btn-edge), 0 0 0 10px #3f6df229}}.completion{text-align:center;width:min(100%,760px);animation:feedback-in .45s var(--spring);flex-direction:column;align-items:center;gap:20px;margin:0 auto;padding:clamp(24px,4vw,44px);display:flex;position:relative}.completion h2{font-size:clamp(2rem,4vw,2.6rem);font-weight:900}.completion-goal{background:var(--green-soft);color:var(--green-ink);border-radius:999px;align-items:center;gap:8px;margin-top:8px;padding:6px 16px;font-weight:850;display:inline-flex}.completion-stats{grid-template-columns:repeat(2,1fr);gap:12px;width:100%;display:grid}.stat{background:var(--tone-soft);border-radius:18px;flex-direction:column;gap:2px;padding:14px 10px;display:flex}.stat strong{color:var(--tone-ink);font-size:2rem;font-weight:900;line-height:1.1}.stat span{color:var(--ink-2);font-size:.92rem;font-weight:800}.completion-note{color:var(--ink-2);font-weight:750}.completion-badges{flex-direction:column;align-items:center;gap:10px;display:flex}.badge-row{flex-wrap:wrap;justify-content:center;gap:14px;display:flex}.completion-actions{flex-wrap:wrap;justify-content:center;gap:12px;width:100%;display:flex}@media (width<=560px){.completion-stats{grid-template-columns:1fr}}.medal{text-align:center;opacity:.55;flex-direction:column;align-items:center;gap:4px;width:150px;display:flex}.medal.earned{opacity:1}.medal-disc{color:#b9ae9d;background:#eee7dc;border:4px solid #fff;border-radius:50%;place-items:center;width:70px;height:70px;display:grid;box-shadow:0 0 0 3px #e7dccb}.medal.earned .medal-disc{background:var(--tone);color:#fff;box-shadow:0 0 0 3px var(--tone-soft), 0 6px 0 var(--tone-edge);animation:pop-in .5s var(--spring)}.medal-title{font-size:1rem;font-weight:900}.medal-desc{color:var(--ink-3);font-size:.82rem;font-weight:700;line-height:1.3}
