.eq{font-variant-numeric:tabular-nums;letter-spacing:.01em;color:var(--ink);flex-wrap:wrap;justify-content:center;align-items:center;gap:.28em;font-weight:900;line-height:1.1;display:inline-flex}.eq-xl{font-size:clamp(54px,8.4vw,100px)}.eq-lg{font-size:clamp(38px,5.6vw,64px)}.eq-md{gap:.24em;font-size:clamp(26px,3.4vw,36px)}.eq-sm{gap:.22em;font-size:clamp(22px,2.6vw,28px)}.eq-op{color:var(--ink-2);font-weight:800}.eq-rel{color:var(--ink-2)}.eq-text{color:var(--ink-2);font-size:.55em;font-weight:800}.hl-a{color:var(--blue)}.hl-b{color:var(--orange)}.hl-c,.hl-answer{color:var(--green)}.eq-blank{border:max(3px, .055em) dashed var(--blue);min-width:1.28em;height:1.3em;color:var(--blue-ink);background:#fff;border-radius:.2em;place-items:center;padding:0 .14em;transition:border-color .2s,background-color .2s,box-shadow .2s;display:inline-grid;position:relative}.eq-blank.circle{border-radius:999px;min-width:1.3em}.eq-blank.active{box-shadow:0 0 0 .09em var(--blue-soft);border-style:solid}.eq-blank.correct,.eq-blank.revealed,.eq-blank.filled{border-style:solid;border-color:var(--green);background:var(--green-soft);color:var(--green-ink)}.eq-blank.revealed{animation:blank-reveal .5s var(--spring)}.eq-blank.ask{border-style:dashed;border-color:var(--ink-3);color:var(--ink-3)}.eq-blank.wrong{border-style:solid;border-color:var(--amber);background:var(--amber-soft);color:var(--amber-ink);animation:.42s shake}.caret{background:var(--blue);border-radius:2px;width:max(3px,.05em);height:.8em;animation:1s step-end infinite caret-blink;position:absolute;right:.22em}.eq-blank.has-value .caret{margin-left:.04em;position:static}@keyframes caret-blink{50%{opacity:0}}@keyframes shake{20%,60%{transform:translate(-.08em)}40%,80%{transform:translate(.08em)}}@keyframes blank-reveal{0%{transform:scale(.7)}}.numpad{-webkit-user-select:none;user-select:none;grid-template-columns:repeat(3,1fr);gap:10px;width:100%;max-width:360px;margin:0 auto;display:grid}.numpad-key{border:2px solid var(--line);background:var(--surface);min-height:66px;box-shadow:0 4px 0 var(--line-2);color:var(--ink);cursor:pointer;border-radius:18px;place-items:center;font-size:2rem;font-weight:900;transition:transform 70ms,box-shadow 70ms,background-color .15s;display:grid}.numpad-key:active:not(:disabled){box-shadow:0 1px 0 var(--line-2);background:var(--blue-soft);transform:translateY(3px)}.numpad-key:disabled{opacity:.45;cursor:default}.numpad-back{color:var(--ink-2);background:var(--surface-2)}.numpad-check{background:var(--green);border-color:var(--green);box-shadow:0 4px 0 var(--green-dark);color:#fff;align-content:center;gap:0;font-size:.85rem;line-height:1}.numpad-check span{margin-top:2px;font-size:.95rem;font-weight:900}.numpad-check:active:not(:disabled){background:var(--green-dark);box-shadow:0 1px 0 var(--green-dark)}@media (height<=760px) and (width>=900px){.numpad-key{min-height:56px}}.story{align-items:flex-start;gap:12px;width:100%;max-width:760px;margin:0 auto;display:flex}.story-text{color:var(--ink);flex:1;font-size:clamp(1.25rem,2.3vw,1.6rem);font-weight:700;line-height:1.5}.story-text p+p{margin-top:6px}.story-question{font-weight:900}.story.compact .story-text{font-size:clamp(1.1rem,1.9vw,1.3rem)}.story-num{background:var(--yellow-soft);color:var(--ink);box-shadow:inset 0 -.14em 0 var(--yellow);border-radius:.3em;padding:0 .22em;font-weight:900}.story-num.extra{background:#f1f2f5;box-shadow:inset 0 -.14em #cdd2dc}.work{flex-direction:column;align-items:center;gap:10px;display:flex}.work-line{background:var(--surface-2);border:2px solid var(--line);animation:visual-in .35s var(--ease-out);border-radius:16px;align-items:center;gap:12px;padding:6px 18px;display:flex}.work-line.tone-answer{background:var(--green-soft);border-color:#bfe8d4}.work-line.tone-check{background:#fff;border-style:dashed}.work-note{text-transform:uppercase;letter-spacing:.06em;color:var(--ink-3);font-size:.85rem;font-weight:900}.work-tick{color:var(--green)}.visual{width:100%;min-width:0;animation:visual-in .4s var(--ease-out);justify-content:center;display:flex}@keyframes visual-in{0%{opacity:0;transform:translateY(6px)}}@keyframes pop-in{0%{opacity:0;transform:scale(.3)}}@keyframes fade-in{0%{opacity:0}}.counters{--size:clamp(24px, 6vw, 40px);flex-wrap:wrap;justify-content:center;align-items:flex-start;gap:18px 24px;min-width:0;max-width:100%;display:flex}.counter-group{background:#f8fafc;border:1px solid #dce5e8;border-radius:14px;flex-direction:column;flex:none;align-items:center;gap:10px;max-width:100%;padding:8px;display:flex}.counter-grid{grid-template-columns:repeat(var(--cols), var(--size));flex-shrink:0;gap:8px;display:grid}.counter{--cc:var(--blue);width:var(--size);height:var(--size);background:var(--cc);animation:pop-in .42s var(--spring) both;animation-delay:var(--pop-delay);transition:background-color .3s,box-shadow .3s,transform .3s;transition-delay:var(--cross-delay);border-radius:50%;place-items:center;display:grid;position:relative;box-shadow:inset 0 -4px #00000024,inset 0 3px #ffffff4d}.c-blue{--cc:var(--blue);--cc-soft:var(--blue-soft);--cc-ink:var(--blue-ink)}.c-orange{--cc:var(--orange);--cc-soft:var(--orange-soft);--cc-ink:var(--orange-ink)}.c-green{--cc:var(--green);--cc-soft:var(--green-soft);--cc-ink:var(--green-ink)}.c-purple{--cc:var(--purple);--cc-soft:var(--purple-soft);--cc-ink:var(--purple-ink)}.c-grey{--cc:#b8bfcc;--cc-soft:#eef0f4;--cc-ink:var(--ink-2)}.counter.ghost{box-shadow:none;border:3px dashed var(--cc);opacity:.8;background:0 0}.counter:before,.counter:after{content:"";background:var(--ink);width:120%;height:5px;transition:transform .22s var(--ease-out);transition-delay:var(--cross-delay);border-radius:3px;position:absolute;transform:rotate(45deg)scaleX(0)}.counter:after{transform:rotate(-45deg)scaleX(0)}.counter.crossed{box-shadow:none;background:#dde1e8;transform:scale(.9)}.counter.crossed:before{transform:rotate(45deg)scaleX(1)}.counter.crossed:after{transition-delay:calc(var(--cross-delay) + 90ms);transform:rotate(-45deg)scaleX(1)}.counter-num{font-size:calc(var(--size) * .44);color:#fff;animation:pop-in .3s var(--spring) both;animation-delay:var(--num-delay);font-weight:900;line-height:1}.counter.ghost .counter-num{color:var(--cc-ink)}.counter-label{text-align:center;background:var(--cc-soft);min-width:44px;color:var(--cc-ink);border-radius:999px;padding:3px 14px;font-size:1.15rem;font-weight:900}.counter-label.ghost{border:2px dashed var(--cc);background:#fff}.counters.frames{gap:14px}.ten-frame{grid-template-columns:repeat(5, var(--size));border:3px solid var(--line-2);background:#fff;border-radius:16px;gap:6px;padding:8px;display:grid}.frame-slot{width:var(--size);height:var(--size);background:var(--surface-2);border-radius:12px;place-items:center;display:grid}.frame-slot .counter{width:84%;height:84%}.frame-labels{flex-basis:100%;justify-content:center;gap:12px;display:flex}.numberline{width:100%;max-width:980px}.numberline svg{width:100%;height:auto;overflow:visible}.nl-axis{stroke:var(--ink-2);stroke-width:4px;stroke-linecap:round}.nl-tick line{stroke:var(--ink-3);stroke-width:3px;stroke-linecap:round}.nl-label{font-family:var(--font);fill:var(--ink-2);text-anchor:middle;font-size:26px;font-weight:800}.nl-jump path{fill:none;stroke:var(--blue);stroke-width:4.5px;stroke-linecap:round}.nl-jump.back path{stroke:var(--orange)}.nl-arrowhead{fill:var(--blue)}.nl-arrowhead.back{fill:var(--orange)}.nl-jump.animate path{stroke-dasharray:1;stroke-dashoffset:1px;animation:nl-draw .46s var(--ease-out) forwards;animation-delay:var(--delay)}@keyframes nl-draw{to{stroke-dashoffset:0}}.nl-jump.animate .nl-head,.nl-jump.animate .nl-jump-label{opacity:0;animation:.2s forwards fade-in;animation-delay:calc(var(--delay) + .36s)}.nl-jump-label circle{fill:#fff;stroke:var(--blue-soft);stroke-width:3px}.nl-jump.back .nl-jump-label circle{stroke:var(--orange-soft)}.nl-jump-label text{font-family:var(--font);fill:var(--blue-ink);text-anchor:middle;dominant-baseline:central;font-size:22px;font-weight:900}.nl-jump.back .nl-jump-label text{fill:var(--orange-ink)}.nl-start circle{fill:#fff;stroke:var(--blue);stroke-width:5px}.nl-end circle{fill:var(--green);stroke:#fff;stroke-width:4px;transform-box:fill-box;transform-origin:50%;animation:pop-in .4s var(--spring) both;animation-delay:var(--delay)}@media (width<=560px){.nl-odd{display:none}}.bond svg{width:min(100%,330px);margin:0 auto;overflow:visible}.bond-link{stroke:var(--line-2);stroke-width:7px;stroke-linecap:round}.bond-node circle{fill:var(--blue-soft);stroke:var(--blue);stroke-width:5px;transition:fill .3s,stroke .3s}.bond-node.tone-part1 circle{fill:var(--orange-soft);stroke:var(--orange)}.bond-node.tone-part2 circle{fill:var(--green-soft);stroke:var(--green)}.bond-node text{font-family:var(--font);fill:var(--ink);text-anchor:middle;dominant-baseline:central;font-size:42px;font-weight:900}.bond-node.unknown circle{fill:#fff;stroke:var(--ink-3);stroke-dasharray:10 8}.bond-node.unknown text{fill:var(--ink-3)}.bond-node.focus circle{stroke-width:7px}.bond-node.active circle{fill:#fff;stroke:var(--blue);stroke-width:6px;stroke-dasharray:12 8;animation:1.6s ease-in-out infinite bond-pulse}.bond-node.active.filled circle{stroke-dasharray:none}.bond-node.active text{fill:var(--blue-ink)}@keyframes bond-pulse{50%{stroke:#8fa9f7}}.bar-model,.bar-compare{width:min(100%,660px);margin:0 auto}.bar-brace{border:3px solid var(--ink-3);border-bottom:0;border-radius:14px 14px 0 0;height:20px;margin:44px 6px 10px;position:relative}.bar-brace-label{border:3px solid var(--ink-3);background:#fff;border-radius:12px;place-items:center;min-width:56px;height:42px;padding:0 14px;font-size:1.45rem;font-weight:900;display:grid;position:absolute;top:-44px;left:50%;transform:translate(-50%)}.bar-brace-label.unknown,.bar-block.unknown{border:3px dashed var(--blue);color:var(--blue-ink);background:repeating-linear-gradient(135deg, #fff 0 9px, var(--blue-soft) 9px 18px)}.bar-brace-caption{color:var(--ink-3);font-size:.88rem;font-weight:800;position:absolute;top:-30px;right:0}.bar-row,.bar-track{display:flex}.bar-cell{flex:var(--grow) 1 0;min-width:54px;transition:flex-grow .4s var(--ease-out);flex-direction:column;gap:6px;display:flex}.bar-block{color:#fff;background:var(--blue);border:3px solid #1d27421a;place-items:center;height:62px;font-size:1.6rem;font-weight:900;animation:.3s fade-in;display:grid}.bar-cell.part-b .bar-block{background:var(--orange)}.bar-cell.diff .bar-block{border:3px dashed var(--ink-3);color:var(--ink-2);background:0 0}.bar-cell.diff .bar-block.unknown{border-color:var(--blue);color:var(--blue-ink);background:repeating-linear-gradient(135deg, #fff 0 9px, var(--blue-soft) 9px 18px)}.bar-cell:first-child .bar-block{border-radius:14px 0 0 14px}.bar-cell:last-child .bar-block{border-radius:0 14px 14px 0}.bar-cell:only-child .bar-block{border-radius:14px}.bar-caption{text-align:center;color:var(--ink-3);white-space:nowrap;font-size:.9rem;font-weight:800}.bar-compare{gap:16px;display:grid}.bar-line{grid-template-columns:minmax(64px,auto) 1fr;align-items:start;gap:12px;display:grid}.bar-compare.no-names .bar-line{grid-template-columns:1fr}.bar-name{text-align:right;font-weight:900;line-height:62px}.balance svg{width:min(100%,540px);margin:0 auto;overflow:visible}.balance-stand,.balance-base{fill:var(--line-2)}.balance-beam{transform-box:view-box;transform-origin:260px 92px;transition:transform .9s var(--spring)}.balance-beam rect{fill:var(--ink-2);transition:fill .4s}.balance-pivot{fill:var(--ink)}.balance-pan{transition:transform .9s var(--spring)}.balance-pan line{stroke:var(--ink-3);stroke-width:3px}.pan-plate{fill:var(--line-2)}.pan-sign rect{fill:#fff;stroke:var(--ink-3);stroke-width:3px;transition:stroke .4s}.pan-sign text{font-family:var(--font);fill:var(--ink);text-anchor:middle;dominant-baseline:central;font-size:30px;font-weight:900}.pan-value{font-family:var(--font);fill:var(--ink-2);text-anchor:middle;font-size:24px;font-weight:900}.balance.balanced .balance-beam rect{fill:var(--green)}.balance.balanced .pan-sign rect{stroke:var(--green)}.balance.unknown .balance-beam rect{fill:var(--ink-3)}.dot-item{background:var(--blue);border-radius:50%;width:18px;height:18px;display:block;box-shadow:inset 0 -3px #00000026,inset 0 2px #ffffff4d}.counter.item{box-shadow:none;background:0 0}.counter.item svg{width:100%;height:100%}.counter.item.crossed{opacity:.45;background:0 0}.groups{flex-wrap:wrap;justify-content:center;gap:14px 18px;display:flex}.group{animation:pop-in .4s var(--spring) both;animation-delay:calc(var(--g) * 90ms);flex-direction:column;align-items:center;gap:6px;display:flex}.plate{background:radial-gradient(circle at 50% 45%,#fff 0 60%,#f6eee3 61% 100%);border:3px solid #e8dac6;border-radius:50%;place-items:center;min-width:88px;min-height:88px;padding:12px;display:grid;box-shadow:0 4px #eadfce}.plate-items{grid-template-columns:repeat(var(--cols), auto);justify-content:center;gap:3px;display:grid}.plate-item{animation:pop-in .3s var(--spring) both;animation-delay:calc(var(--i) * 28ms + .12s);place-items:center;display:grid}.plate-unknown{color:var(--blue-ink);font-size:2.2rem;font-weight:900}.group-size,.group-total{border-radius:999px;padding:1px 12px;font-size:1.05rem;font-weight:900}.group-size{background:var(--orange-soft);color:var(--orange-ink)}.group-total{background:var(--green-soft);color:var(--green-ink);animation:pop-in .3s var(--spring) both;animation-delay:calc(var(--g) * .26s + .25s)}.array-wrap{flex-direction:column;align-items:center;gap:6px;display:flex}.array-top,.array-side{color:var(--ink-3);font-size:.92rem;font-weight:850}.array-body{align-items:center;gap:10px;display:flex}.array-side{writing-mode:vertical-rl;transform:rotate(180deg)}.array-grid{border:3px solid var(--line-2);background:#fff;border-radius:18px;flex-direction:column;gap:6px;padding:10px 52px 10px 10px;animation:.3s fade-in;display:flex}.array-grid.turned{animation:array-turn .75s var(--spring)}@keyframes array-turn{0%{opacity:.3;transform:rotate(-90deg)scale(.85)}}.array-row{grid-template-columns:repeat(var(--cols), var(--cell));transition:background-color .3s;transition-delay:calc(var(--r) * .12s);border-radius:10px;gap:6px;padding:2px;display:grid;position:relative}.array-row.lit{background:var(--yellow-soft)}.array-cell{width:var(--cell);height:var(--cell);place-items:center;display:grid}.array-cell .dot-item{width:78%;height:78%}.array-running{background:var(--green-soft);color:var(--green-ink);animation:pop-in .3s var(--spring) both;animation-delay:calc(var(--r) * .12s);border-radius:999px;padding:0 8px;font-weight:900;position:absolute;top:50%;right:-46px;transform:translateY(-50%)}.share-view{flex-direction:column;align-items:center;gap:14px;display:flex}.share-pile{background:#fdf1dd;border:3px dashed #eed5ad;border-radius:18px;flex-wrap:wrap;justify-content:center;align-items:center;gap:4px;max-width:440px;min-height:52px;padding:10px 14px;display:flex}.share-pile.empty{background:var(--green-soft);border-color:#bfe8d4}.pile-item{animation:pop-in .25s var(--spring) both;place-items:center;display:grid}.pile-done{color:var(--green-ink);font-weight:900}.share-plates{flex-wrap:wrap;justify-content:center;gap:14px;display:flex}.share-plate{flex-direction:column;align-items:center;gap:6px;display:flex}.grouping-view{flex-wrap:wrap;justify-content:center;gap:10px;max-width:560px;display:flex}.grouping-set{border:3px dashed #0000;border-radius:18px;flex-wrap:wrap;justify-content:center;gap:3px;max-width:150px;padding:8px;transition:background-color .3s,border-color .3s;display:flex;position:relative}.grouping-set.circled{border-color:var(--purple);background:var(--purple-soft);animation:pop-in .35s var(--spring) both;animation-delay:calc(var(--g) * .12s)}.grouping-label{background:var(--purple);color:#fff;border-radius:50%;place-items:center;width:26px;height:26px;font-size:.85rem;font-weight:900;display:grid;position:absolute;top:-12px;left:-10px}.family{flex-wrap:wrap;justify-content:center;align-items:center;gap:18px;display:flex}.family-tri{width:190px}.family-num{font-family:var(--font);text-anchor:middle;dominant-baseline:central;fill:var(--ink);font-size:26px;font-weight:900}.family-op{font-family:var(--font);text-anchor:middle;fill:var(--ink-2);font-size:20px;font-weight:900}.family-facts{grid-template-columns:1fr 1fr;gap:8px;display:grid}.family-fact{border:2px solid var(--line);background:#fff;border-radius:14px;padding:6px 12px;transition:border-color .3s,background-color .3s}.family-fact.focus{border-color:var(--green);background:var(--green-soft)}
