- новый тип kind:inequality: answerRel{op,bound}, парсер отношения (_parseRel/_checkInequality) — нормализация «x op c», приём обратной записи, сверка op+границы; self-check внутри/снаружи решения
- темы: Степени (aⁿ, xᵃ·xᵇ, (xᵃ)ᵇ), Формулы сокр. умножения (квадрат суммы/разности, разность квадратов), Неравенства (вкл. смену знака при делении на отрицательное) → 26 генераторов, 8 тем
- движок: simplify рендерит выражение в KaTeX (exprToLatex(srcExpr)); неравенство — в KaTeX с отношением; fallback-display учитывает op
- страница: ввод/лейбл для неравенств, isLabelKind
- смоук движка 397/397 (T15 неравенства, T16 степени/формулы; T3 ≥10 для малых пространств), страница 33/33; ROADMAP_V2 P10 → DONE
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- движок checkStep(problem, line): шаг = равносильное уравнение (держится во всех корнях И не выполняется в не-корнях) → ловит арифметику, потерю корня, тождество; статусы equivalent/solved/wrong/identity/parse
- страница: тумблер «Решить по шагам» (kind solve), ввод и проверка каждого шага, список принятых шагов (KaTeX + галочка), подсказка следующего шага, завершение по solved-форме; общий onSolved; stepPref между задачами
- P8: экранная мат-клавиатура (( ) x / ^ √ ; ⌫, вставка в курсор, без либ) + live-превью KaTeX; для поля ответа и поля шага
- ROADMAP_V2: P7+P8 → DONE; смоук движка 300/300 (T14 checkStep), страница 33/33 (шаг-сценарии)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- фон-ambient «тетрадь в клетку» (материал предмета) на .sb-content
- карточка-герой с акцентной градиентной полосой; празднование верного ответа (изумруд+pop), мягкая встряска при ошибке
- акцент индиго→фиолет градиент, успех изумруд, мастерство золото; фидбек-«таблетка», нумерованные шаги решения с градиентными бейджами
- вкладки тем/навыки/режим — тактильные пилюли с hover-lift; цифры статистики градиентным текстом
- модалки с blur-backdrop; итог сессии с золотой полосой; общий прогресс пилюлей
- появление с лёгким stagger; mobile-адаптация + prefers-reduced-motion
- селекторы навыков scoped (.tr-skills .tr-skill) + #tr-skill для eyebrow (убран конфликт); все id/классы и логика сохранены (смоук 27/27)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>