.multiples-chart{background:var(--surface,#fffdf8);border:1px solid var(--line,#e7dfd2);border-radius:var(--radius-sm,16px);flex-direction:column;gap:6px;margin:0 0 16px;padding:12px 14px;display:flex}.multiples-chart-caption{font-family:var(--font,"Nunito Sans", system-ui, sans-serif);color:var(--ink-soft,#4a4460);margin:0 0 4px;font-size:12px;font-weight:400;line-height:1.3}.multiples-row{align-items:center;gap:12px;display:flex}.multiples-row-label{min-width:96px;font-family:var(--font,"Nunito Sans", system-ui, sans-serif);color:var(--ink-soft,#4a4460);flex-shrink:0;font-size:12px;font-weight:500}.multiples-cells{flex:1;gap:4px;display:grid}.multiples-cell{text-align:center;font-family:var(--font,"Nunito Sans", system-ui, sans-serif);font-variant-numeric:tabular-nums;color:var(--ink,#241f33);background:var(--paper,#f8f4ec);border:1px solid #0000;border-radius:6px;min-width:32px;padding:8px 4px;font-size:14px;font-weight:500}.multiples-cell--shared{background:var(--honey-light,#fff6e2);border-color:var(--honey,#f3e0b4);color:var(--honey-deep,#9c6a12);font-weight:600}@media (width<=480px){.multiples-chart{padding:10px}.multiples-row{flex-direction:column;align-items:stretch;gap:4px}.multiples-row-label{text-align:left;min-width:0}.multiples-cell{min-width:28px;padding:6px 2px;font-size:13px}}.keypad{flex-direction:column;gap:8px;max-width:360px;margin-top:24px;display:flex}.keypad__digits,.keypad__bottom{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.keypad__bottom--signed{grid-template-columns:repeat(4,1fr)}.keypad__key{min-height:56px;font-family:var(--font);font-variant-numeric:tabular-nums;color:var(--ink);background:var(--surface);border:1.5px solid var(--line-strong);border-radius:var(--radius);cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation;-webkit-user-select:none;user-select:none;padding:8px 4px;font-size:16px;font-weight:600}.keypad__key:hover{background:var(--paper)}.keypad__key:active{background:var(--paper-warm)}.keypad__key:focus-visible{outline:3px solid var(--lantern-glow);outline-offset:2px}.keypad__key--util{color:var(--ink-soft);font-size:20px}.keypad__key--action{color:var(--ink);background:var(--lantern);border:none;border-bottom:3px solid var(--lantern-shadow)}.keypad__key--action:hover{background:var(--lantern-deep);color:#fff}.keypad__key--action:active{background:var(--lantern);border-bottom-width:2px;transform:translateY(1px)}@media (height<=820px){.keypad{gap:6px;margin-top:12px}.keypad__digits,.keypad__bottom{gap:6px}.keypad__key{min-height:44px}}@media (width<=480px){.keypad{max-width:none}}.ld{font-variant-numeric:tabular-nums;--ld-cell-h:max(1.6em, var(--tap-min,56px));flex-direction:column;align-items:flex-start;width:max-content;margin:.5rem auto 1.25rem;font-size:1.65rem;line-height:1.55;display:flex}.ld__line{grid-template-columns:2.4ch auto;align-items:end;display:grid}.ld__cells{grid-template-columns:repeat(var(--ld-cols), max(1.6ch, var(--tap-min,56px)));min-height:var(--ld-cell-h);align-items:stretch;padding-left:.5ch;display:grid}.ld__cell{text-align:center;min-height:var(--ld-cell-h);justify-content:center;align-items:center;display:flex}.ld__gutter{text-align:right;padding-right:.3ch}.ld__divisor{font-weight:600}.ld__cells--vinculum{border-bottom:2.5px solid}.ld__cells--bracket{border-left:2.5px solid}.ld__line--rule{line-height:0}.ld__line--rule .ld__cells{min-height:.34em}.ld__rule{border-top:2px solid;height:0}.ld__cell--live{justify-content:flex-end}.ld__cell--empty{box-shadow:none;background:0 0;border:none}.ld__cell--live input,.ld__cell--live .step-runner__blank input{text-align:right;width:100%;min-width:0;line-height:normal;font:inherit;font-variant-numeric:tabular-nums;color:inherit;background:color-mix(in srgb, currentColor 11%, transparent);border:none;border:2px solid var(--lantern);box-shadow:none;height:var(--ld-cell-h);box-sizing:border-box;border-radius:5px;outline:2px solid #0000;padding:0}.ld__cell--live input::placeholder{color:var(--muted);opacity:1}.ld__cell--live input[readonly]+.ld__caret,.ld__cell--live .ld__caret{background:var(--ink);width:2px;height:1.1em;margin-left:1px;animation:1.06s step-end infinite ldCaret;display:inline-block}@keyframes ldCaret{0%,49%{opacity:1}50%,to{opacity:0}}@media (prefers-reduced-motion:reduce){.ld__caret{opacity:1;animation:none}}.ld__cell--live input:focus{outline-color:#0a84ff}.ld__cell--active{color:var(--ink);box-shadow:inset 0 -2px 0 0 var(--lantern);font-weight:700}.ld__cell--dim{color:var(--muted)}.ld__cells{position:relative}.ld__bring{height:calc(2 * var(--ld-cell-h) + .34em);border-left:2px solid var(--ink-soft);pointer-events:none;transform-origin:top;border-radius:2px;justify-self:center;width:0;animation:.42s cubic-bezier(.22,1,.36,1) both ldBringDown;position:absolute;bottom:calc(100% + 6px)}.ld__bring:after{content:"";border-left:5px solid #0000;border-right:5px solid #0000;border-top:6px solid var(--ink-soft);position:absolute;bottom:-1px;left:-4px}@keyframes ldBringDown{0%{opacity:0;transform:scaleY(0)}to{opacity:1;transform:scaleY(1)}}@media (prefers-reduced-motion:reduce){.ld__bring{opacity:1;animation:none;transform:none}}.step-runner{max-width:560px;font-family:var(--font);color:var(--ink);text-align:left;margin:0 auto;padding:32px 16px 24px}@keyframes step-runner__fade-in{0%{opacity:0}to{opacity:1}}.step-runner__current,.step-runner__choice,.step-runner__done{animation:.18s cubic-bezier(.2,0,0,1) step-runner__fade-in}@media (prefers-reduced-motion:reduce){.step-runner__current,.step-runner__choice,.step-runner__done{animation:none}}.step-runner__lines{flex-direction:column;gap:4px;margin-bottom:24px;display:flex}.step-runner__line{font-family:var(--font);font-variant-numeric:tabular-nums;color:var(--ink-soft);font-size:14px;line-height:1.35}.step-runner__line--unmastered{opacity:.7}.step-runner__current{display:block}.step-runner__teach{color:var(--ink);margin:0 0 16px;font-size:16px;font-weight:400;line-height:1.4}.fraction-row{flex-wrap:wrap;justify-content:flex-start;align-items:center;gap:14px;margin:0;display:flex}.fraction-cell{flex-direction:column;align-items:stretch;min-width:76px;display:inline-flex}.fraction-cell-top,.fraction-cell-bottom{justify-content:center;align-items:center;min-height:48px;display:flex}.fraction-bar{background:var(--ink);border-radius:1px;height:2px;margin:6px 0}.fraction-static{font-family:var(--font);font-variant-numeric:tabular-nums;color:var(--ink);padding:0 4px;font-size:28px;font-weight:600;line-height:1}.fraction-input{width:68px;min-height:48px;font-family:var(--font);font-variant-numeric:tabular-nums;text-align:center;color:var(--ink);background:var(--surface);border:2px solid var(--line-strong);border-radius:var(--radius);caret-color:#0000;cursor:pointer;padding:6px 8px;font-size:28px;font-weight:500;line-height:1}.fraction-input:focus-visible{outline:3px solid var(--lantern-glow);outline-offset:2px;border-color:var(--lantern)}.fraction-input[aria-invalid=true]{border-color:var(--ember);background:var(--ember-light)}.fraction-op{font-family:var(--font);font-variant-numeric:tabular-nums;color:var(--ink);align-self:center;padding:0 4px;font-size:28px;font-weight:500;line-height:1}.fraction-placeholder{font-family:var(--font);font-variant-numeric:tabular-nums;color:var(--muted);text-align:center;min-width:24px;padding:0 4px;font-size:28px;font-weight:500;line-height:1}.equation-stack{flex-direction:column;align-items:flex-start;gap:10px;display:flex}.fraction-juxtapose{align-items:center;display:inline-flex}.fraction-symbol{font-style:italic}.fraction-cancelled{color:var(--ink-soft);align-items:center;display:inline-flex;position:relative}.fraction-cancelled:after{content:"";background:var(--honey-deep);border-radius:2px;height:2px;position:absolute;top:50%;left:-12%;right:-12%;transform:rotate(-20deg)}.equation-text.equation-attention,.equation-attention .fraction-static{color:var(--honey-deep);font-weight:600}.fraction-mirror{font-family:var(--font);font-variant-numeric:tabular-nums;color:var(--ink-soft);text-align:center;min-width:24px;padding:0 2px;font-size:28px;font-weight:500;line-height:1}.fraction-compound,.fraction-compound-part{align-items:center;gap:6px;display:inline-flex}.fraction-compound-op{font-family:var(--font);font-variant-numeric:tabular-nums;color:var(--ink-soft);padding:0 2px;font-size:22px;font-weight:500}.fraction-compound .fraction-input{width:56px;padding:4px 6px;font-size:24px}.fraction-stack{flex-direction:column;gap:4px;margin:0;display:flex}.fraction-stack .fraction-row{margin:0}.equation-row{flex-wrap:wrap;justify-content:flex-start;align-items:center;gap:8px;margin:0;display:flex}.equation-text{font-family:var(--font);font-variant-numeric:tabular-nums;color:var(--ink);font-size:28px;font-weight:500;line-height:1}.equation-slot{align-items:center;display:inline-flex}.equation-fraction{min-width:52px}.equation-fraction .fraction-cell-top,.equation-fraction .fraction-cell-bottom{min-height:36px}.equation-fraction .fraction-input{width:48px;padding:4px 6px;font-size:22px}.step-runner__feedback{white-space:pre-line;color:var(--ink);background:var(--ember-light);border-left:3px solid var(--ember);border-radius:8px;margin:16px 0;padding:12px 14px;font-size:16px;font-weight:400;line-height:1.4}.step-runner__feedback--fallback{background:var(--paper);border-left-color:var(--muted);font-style:italic}.step-runner__feedback strong{font-weight:700}.step-runner__actions{gap:12px;margin-top:24px;display:flex}.step-runner__btn{min-height:44px;font-family:var(--font);color:var(--ink);background:var(--lantern);border:none;border-bottom:3px solid var(--lantern-shadow);border-radius:var(--radius-pill,999px);cursor:pointer;padding:12px 28px;font-size:16px;font-weight:600}.step-runner__btn:hover{background:var(--lantern-hover)}.step-runner__btn:active{border-bottom-width:2px;transform:translateY(1px)}.step-runner__btn:focus-visible{outline:3px solid var(--lantern-glow);outline-offset:2px}.step-runner__empty-summary{color:var(--ember-deep);margin-top:8px;font-size:14px;font-weight:500}.step-runner__empty-error{color:var(--ember-deep);width:100%;margin-left:64px;font-size:13px;font-weight:500}.step-runner__form{display:block}.step-runner__blanks{flex-direction:column;gap:14px;margin-bottom:20px;display:flex}.step-runner__blank{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.step-runner__blank input{min-height:44px;font-family:var(--font);font-variant-numeric:tabular-nums;color:var(--ink);background:var(--surface);border:2px solid var(--line-strong);border-radius:var(--radius);text-align:center;caret-color:#0000;cursor:pointer;width:120px;padding:10px 14px;font-size:22px;font-weight:500}.step-runner__blank input:focus-visible{outline:3px solid var(--lantern-glow);outline-offset:2px;border-color:var(--lantern)}.step-runner__blank input[aria-invalid=true]{border-color:var(--ember);background:var(--ember-light)}.step-runner__blank--skipped{color:var(--ink-soft);font-size:14px}.step-runner__blank-static{font-family:var(--font);font-variant-numeric:tabular-nums;color:var(--ink);min-width:40px;font-size:22px;font-weight:500}.step-runner__choice{flex-direction:column;gap:16px;margin-top:8px;display:flex}.step-runner__choice-feedback{background:var(--honey-light);color:var(--ink);border-radius:8px;padding:12px 14px;font-size:16px;font-weight:400;line-height:1.4}.step-runner__choice-feedback strong{font-weight:700}.step-runner__choice-actions{grid-template-columns:1fr 1fr;gap:8px;display:grid}.step-runner__choice-btn{min-height:44px;font-family:var(--font);color:var(--ink);background:var(--surface);border:1.5px solid var(--line-strong);border-radius:var(--radius);cursor:pointer;text-align:center;padding:12px 18px;font-size:16px;font-weight:500}.step-runner__choice-btn:hover{background:var(--paper)}.step-runner__choice-btn:focus-visible{outline:3px solid var(--lantern-glow);outline-offset:2px}.step-runner__done{flex-direction:column;align-items:flex-start;gap:12px;padding:4px 0 0;display:flex}.step-runner__done-mark{color:var(--moss);font-size:24px;line-height:1}.step-runner__done-msg{color:var(--ink);max-width:42ch;margin:0;font-size:16px;font-weight:400;line-height:1.4}.step-runner__done-btn{min-height:44px;font-family:var(--font);color:var(--ink);background:var(--lantern);border:none;border-bottom:3px solid var(--lantern-shadow);border-radius:var(--radius-pill,999px);cursor:pointer;padding:12px 24px;font-size:16px;font-weight:600}.step-runner__done-btn:hover{background:var(--lantern-hover)}.step-runner__done-btn:active{border-bottom-width:2px;transform:translateY(1px)}.step-runner__done-btn:focus-visible{outline:3px solid var(--lantern-glow);outline-offset:2px}@media (height<=820px){.step-runner{padding-top:20px}.step-runner__lines{margin-bottom:16px}.step-runner__teach{margin-bottom:12px}.step-runner__feedback{margin:10px 0}}@media (width<=480px){.step-runner{padding:20px 16px 24px}.fraction-cell{min-width:64px}.fraction-static,.fraction-input,.fraction-op,.fraction-mirror,.fraction-placeholder,.equation-text{font-size:24px}.fraction-input{width:60px;padding:6px}.fraction-compound .fraction-input{width:50px;font-size:22px}}.partition{flex-direction:column;align-items:center;gap:14px;display:flex}.partition__stage{flex-direction:column;align-items:center;gap:6px;display:flex}.partition__stage-label{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);font-size:11px}.partition__stage--before{opacity:.75}.partition__groups{flex-wrap:wrap;justify-content:center;align-items:flex-end;gap:14px;display:flex}.partition__loose{flex-wrap:wrap;justify-content:center;gap:4px;max-width:320px;display:flex}.partition__ring{flex-direction:column;align-items:center;gap:4px;display:flex}.partition__ring-tiles{border:2px solid var(--moss-deep);background:var(--moss-light);border-radius:10px;gap:3px;padding:6px;display:flex}.partition__ring--loose .partition__ring-tiles{border-style:dashed;border-color:var(--line-strong);background:var(--paper)}.partition__ring-label{font-family:var(--font-mono);letter-spacing:.06em;color:var(--muted);font-size:10px}.partition__tile{background:var(--moss);border-radius:3px;width:14px;height:22px}.partition__ring--loose .partition__tile{background:var(--line-strong)}.partition__tile--settles{animation:.28s ease-out both partition-settle}@keyframes partition-settle{0%{opacity:0;transform:translateY(-10px)scale(.9)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.partition__tile--settles{animation:none}}.partition__answer{font-family:var(--font-display);flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;font-size:20px;font-weight:800;display:flex}.partition__answer-total{color:var(--ink-soft);font-weight:700}.partition__answer-eq{color:var(--muted)}.partition__answer-word{color:var(--ink-soft);font-size:17px;font-weight:700}.partition__frac{flex-direction:column;align-items:center;gap:2px;display:inline-flex}.partition__frac-rule{background:var(--ink);width:100%;min-width:34px;height:2px}.slot-substituted{justify-content:center;align-items:baseline;min-width:1.6ch;display:inline-flex;position:relative}.slot-substituted__from{color:var(--muted);justify-content:center;align-items:baseline;animation:.5s ease-out .35s both sub-out;display:flex;position:absolute;inset:0}.slot-substituted__to{color:var(--honey-deep);font-weight:800;animation:.5s ease-out .35s both sub-in}@keyframes sub-out{0%{opacity:1}to{opacity:0}}@keyframes sub-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.slot-substituted{min-width:0}.slot-substituted__from{opacity:1;animation:none;position:static}.slot-substituted__from:after{content:"→";color:var(--muted);margin:0 .25ch}.slot-substituted__to{animation:none}}
