:root{--ink:#1e2a5a;--ink-soft:#4a5788;--ink-muted:#5a6694;--ink-text-2:#33406e;--paper:#fffdf6;--grid-line:#d6e3f6;--surface:#fff;--surface-soft:#f3f6fd;--surface-fn:#eef1f8;--surface-fn-hover:#e2e7f3;--hover-tint:#eef3ff;--dot-idle:#dce3f2;--primary:#2f5bea;--primary-hover:#2550d6;--primary-tint:#2f5bea1a;--primary-tint-soft:#2f5bea14;--primary-dash:#2f5bea73;--op:#ffb27a;--op-hover:#ffa05c;--answer:#ffd23f;--answer-hover:#ffe07a;--eq:#1e2a5a;--eq-hover:#2b3a78;--eq-ink:#fff;--accent:#7b61ff;--accent-ink:#4b33c9;--var-bg:#ece7ff;--fig-fill:#d4e6fb;--unit-bg:#d4f3e3;--unit-ink:#146b45;--success:#2bb673;--fb-ok:#8ee3b4;--fb-no:#ffd0b8;--fb-info:#d8e2ff;--toolbar:#1e2a5a;--toolbar-btn:#2b3a78;--toolbar-btn-hover:#3a4c96;--confetti-1:#ffd23f;--confetti-2:#2f5bea;--confetti-3:#ff8a3d;--confetti-4:#7b61ff;--confetti-5:#2bb673;--confetti-6:#ff6fa8;--font:"Fredoka", ui-rounded, system-ui, sans-serif;--radius-tile:14px;--radius-key:14px;--radius-btn:16px;--radius-card:24px;--shadow-3d:0 4px 0 var(--ink);--shadow-3d-lg:0 6px 0 var(--ink);--shadow-lift:0 16px 28px #1e2a5a47;--shadow-float:0 6px 16px #1e2a5a40;--ease-bounce:cubic-bezier(.3, 1.5, .5, 1);--ease-pop:cubic-bezier(.3, 1.6, .5, 1);--ease-in:cubic-bezier(.3, 1.4, .5, 1)}html,body,#root{height:100%;margin:0}body{background:var(--paper);color:var(--ink);font-family:var(--font);overscroll-behavior:none;-webkit-tap-highlight-color:transparent}a{color:var(--primary)}a:hover{color:#1f3fb0}.sumo-btn{border-radius:var(--radius-btn);border:3px solid var(--ink);height:52px;box-shadow:var(--shadow-3d);font:600 19px var(--font);cursor:pointer;white-space:nowrap;align-items:center;gap:8px;padding:0 22px;transition:transform 70ms,box-shadow 70ms;display:flex}.sumo-btn:active{box-shadow:0 1px 0 var(--ink);transform:translateY(3px)}.sumo-btn--ghost{background:var(--surface);color:var(--ink)}.sumo-btn--primary{background:var(--primary);color:#fff}@media (hover:hover){.sumo-btn--ghost:hover{background:var(--hover-tint)}.sumo-btn--primary:hover{background:var(--primary-hover)}}.sumo-xbtn{background:var(--surface-fn);width:44px;height:44px;color:var(--ink);cursor:pointer;border:0;border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;display:flex}@media (hover:hover){.sumo-xbtn:hover{background:var(--surface-fn-hover)}}.sumo-chip{background:var(--surface);border:2px solid var(--ink);box-shadow:0 3px 0 var(--ink);border-radius:999px;align-items:center;gap:8px;padding:8px 14px;font-size:15px;font-weight:500;display:flex}.sumo-label{color:var(--ink-soft);letter-spacing:.04em;text-transform:uppercase;font-size:15px;font-weight:600}.figure{font-family:var(--font);color:var(--ink);-webkit-user-select:none;user-select:none;position:relative}.figure svg{position:absolute;inset:0;overflow:visible}.fig-stroke{fill:none;stroke:var(--ink);stroke-width:2.5px;stroke-linejoin:round;stroke-linecap:round;vector-effect:non-scaling-stroke}.fig-stroke[data-fill]{fill:var(--fig-fill)}.fig-stroke.thin{stroke-width:1.75px}.fig-stroke.dashed{stroke-dasharray:6 5;stroke-width:1.75px}.fig-dot{fill:var(--ink)}.fig-image{object-fit:contain;pointer-events:none;border-radius:10px;width:100%;height:100%}.fig-label{white-space:nowrap;font-weight:600;line-height:1;position:absolute;transform:translate(-50%,-50%)}.fig-label.vertex{color:var(--ink-soft);font-style:italic;font-weight:500}.fig-label.measure{background:var(--surface);border-radius:7px;padding:3px 6px;font-size:.85em;box-shadow:0 0 0 1.5px #1e2a5a40}.fig-label.measure.draggable{cursor:grab;touch-action:none;padding:4px 7px;font-size:1em;transition:transform .12s,box-shadow .12s,background .12s;box-shadow:0 0 0 2px #2f5bea73,0 3px #2f5bea59}.fig-label.measure.draggable:active{cursor:grabbing}@media (hover:hover){.fig-label.draggable:hover{background:var(--hover-tint);box-shadow:0 0 0 2.5px var(--primary), 0 3px 0 var(--primary), 0 0 14px #2f5bea66;transform:translate(-50%,-50%)translateY(-2px)rotate(-4deg)}}.fig-label.ask{background:var(--answer);box-shadow:0 0 0 2px var(--ink);border-radius:7px;padding:3px 8px;font-size:.85em}.figure.compact .fig-label.measure,.figure.compact .fig-label.ask{border-radius:5px;padding:1px 4px}.wb{background-color:var(--paper);width:100%;height:100dvh;min-height:560px;font-family:var(--font);color:var(--ink);-webkit-user-select:none;user-select:none;touch-action:none;outline:none;position:relative;overflow:hidden}.wb *{box-sizing:border-box}.wb.is-dragging,.wb.is-dragging *{cursor:grabbing!important}.wb-grid{cursor:cell;background-image:linear-gradient(var(--grid-line) 2px, transparent 2px), linear-gradient(90deg, var(--grid-line) 2px, transparent 2px);background-position:calc(var(--vx,0) * -1px - 1px) calc(var(--vy,0) * -1px - 1px);position:absolute;inset:0}.wb.is-panning,.wb.is-panning .wb-grid{cursor:grabbing}.tok,.ghost,.wb-hcell,.pgroup,.groupbadge,.figtile,.tilesghost,.rowgrip,.rowband{translate:calc(var(--vx,0) * -1px) calc(var(--vy,0) * -1px)}.wb.is-panning .tok{transition:none}.wb.is-gliding .tok,.wb.is-gliding .ghost{transition:translate .38s cubic-bezier(.3, 1.1, .5, 1), left .16s var(--ease-bounce), top .16s var(--ease-bounce)}.wb.is-gliding .wb-grid{transition:background-position .38s cubic-bezier(.3,1.1,.5,1)}.findwork{z-index:35;animation:wb-in-centered .25s var(--ease-bounce);position:absolute;bottom:72px;left:50%;transform:translate(-50%)}.findwork:active{transform:translate(-50%,3px)}.wb-hcell{border-radius:var(--radius-tile);background:var(--primary-tint);border:2px dashed var(--primary-dash);color:var(--primary);pointer-events:none;justify-content:center;align-items:center;display:flex;position:absolute}.wb-layer{pointer-events:none;position:absolute;inset:0}.tok{cursor:grab;pointer-events:auto;touch-action:none;transition:left .16s var(--ease-bounce), top .16s var(--ease-bounce);position:absolute}.tok.is-drag{z-index:60;transition:none}.tile{border-radius:var(--radius-tile);background:var(--surface);border:3px solid var(--ink);box-shadow:var(--shadow-3d);animation:wb-pop .3s var(--ease-pop);font-weight:600;line-height:1;transition:transform .12s,box-shadow .12s,background-color .15s;display:flex;position:absolute;inset:5px}.tok.op .tile{background:var(--op)}.tok.ans .tile{background:var(--answer)}.tok.is-sel .tile{outline:3px dashed var(--primary);outline-offset:4px}.tok.is-drag .tile,.tok.ghostnew .tile{box-shadow:var(--shadow-lift);transform:rotate(-3deg)scale(1.08)}.tok.ghostnew{z-index:60;pointer-events:none}.dg{flex:1;justify-content:center;align-items:center;display:flex}.dg+.dg{border-left:2px dashed #1e2a5a24}.dg{position:relative}.dg-comma{z-index:1;line-height:1;position:absolute;bottom:.08em;right:-.14em}.tools{transform:translate(calc(-50% + var(--tools-shift,0px)), 8px);opacity:0;pointer-events:none;z-index:5;padding-bottom:6px;transition:opacity .14s,transform .14s;display:flex;position:absolute;bottom:100%;left:50%}.tok.is-sel .tools{opacity:1;pointer-events:auto;transform:translate(calc(-50% + var(--tools-shift,0px)), 0)}.tok.is-drag .tools{opacity:0;pointer-events:none}.toolbar{background:var(--toolbar);box-shadow:var(--shadow-float);border-radius:14px;gap:6px;padding:6px;display:flex}.tbtn{background:var(--toolbar-btn);color:#fff;min-width:44px;height:44px;font:600 16px var(--font);cursor:pointer;white-space:nowrap;border:0;border-radius:10px;justify-content:center;align-items:center;gap:6px;padding:0 12px;display:flex}.tbtn.star{background:var(--answer);color:var(--ink)}.tbtn.opt{width:44px;padding:0;font-size:26px;line-height:1}.tbtn.opt.on{background:var(--op);color:var(--ink);box-shadow:inset 0 0 0 3px var(--ink);cursor:default}.tsep{background:var(--toolbar-btn-hover);border-radius:1px;width:2px;margin:6px 2px}.abadge{background:var(--ink);color:var(--answer);white-space:nowrap;pointer-events:none;border-radius:999px;align-items:center;gap:4px;padding:3px 10px 3px 8px;font-size:14px;font-weight:600;display:flex;position:absolute;top:100%;left:50%;transform:translate(-50%,2px)}@media (hover:hover){.tok:hover .tile{box-shadow:var(--shadow-3d-lg);transform:translateY(-2px)}.tok:hover .tools{opacity:1;pointer-events:auto;transform:translate(calc(-50% + var(--tools-shift,0px)), 0)}.tok.is-drag:hover .tile{box-shadow:var(--shadow-lift);transform:rotate(-3deg)scale(1.08)}.tok.is-drag:hover .tools{opacity:0;pointer-events:none}.tbtn:hover{background:var(--toolbar-btn-hover)}.tbtn.star:hover{background:var(--answer-hover)}.tbtn.opt:not(.on):hover{background:var(--op);color:var(--ink)}}.ghost{border-radius:var(--radius-tile);border:3px dashed var(--primary);background:var(--primary-tint-soft);pointer-events:none;animation:1.3s ease-in-out infinite wb-pulse;display:flex;position:absolute}.ghost .dg{color:#1e2a5a73;font-weight:600}.caret{background:var(--primary);border-radius:2px;align-self:stretch;width:3px;margin:12px 4px;animation:1s step-end infinite wb-blink;display:inline-block}.pad{z-index:40;background:var(--surface);border:3px solid var(--ink);border-radius:var(--radius-card);width:304px;box-shadow:0 8px 0 var(--ink), 0 24px 48px #1e2a5a2e;animation:wb-in .22s var(--ease-in);padding:16px;position:absolute}.pad-head{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.pad.movable{cursor:grab;touch-action:none}.pad.movable .key,.pad.movable .okbtn,.pad.movable .pad-tab,.pad.movable .pad-close{cursor:pointer}.pad.is-moving,.pad.is-moving *{cursor:grabbing}.pad.is-moving{box-shadow:0 12px 0 var(--ink), 0 32px 56px #1e2a5a3d}.grip{border:3px solid var(--ink);background:var(--surface);width:40px;height:30px;color:var(--ink-soft);box-shadow:0 2px 0 var(--ink);cursor:grab;touch-action:none;border-radius:999px;justify-content:center;align-items:center;display:flex}.grip svg{transform:rotate(90deg)}.pad-close{border:2px solid var(--ink);background:var(--surface);width:40px;height:40px;color:var(--ink);box-shadow:0 3px 0 var(--ink);cursor:pointer;touch-action:manipulation;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;margin-left:10px;transition:transform .1s,box-shadow .1s,background .12s;display:flex}.pad-close:active{box-shadow:0 1px 0 var(--ink);transform:translateY(2px)}@media (hover:hover){.pad-close:hover{background:var(--surface-fn-hover)}}.pad-display{background:var(--surface-soft);border:3px solid var(--ink);border-radius:16px;justify-content:flex-end;align-items:center;height:76px;margin-bottom:14px;padding:0 16px;font-size:46px;font-weight:600;display:flex;overflow:hidden}.pad-display .placeholder{color:var(--ink-muted);margin-right:auto;font-size:18px;font-weight:500}.pad-display .caret{margin:14px 0 14px 4px}.pad-keys{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;display:grid}.key{border-radius:var(--radius-key);border:3px solid var(--ink);background:var(--surface);height:56px;box-shadow:var(--shadow-3d);font:600 28px var(--font);color:var(--ink);cursor:pointer;touch-action:manipulation;transition:transform 70ms,box-shadow 70ms,background-color .12s}.key:active{box-shadow:0 1px 0 var(--ink);transform:translateY(3px)}.key.op{background:var(--op)}.key.eq{background:var(--eq)}.key.fn{background:var(--surface-fn);font-size:22px}.okbtn{border:3px solid var(--ink);background:var(--primary);color:#fff;width:100%;height:60px;box-shadow:0 5px 0 var(--ink);font:600 22px var(--font);cursor:pointer;touch-action:manipulation;border-radius:16px;margin-top:14px;transition:transform 70ms,box-shadow 70ms}.okbtn:active{box-shadow:0 2px 0 var(--ink);transform:translateY(3px)}@media (hover:hover){.key:hover{background:var(--hover-tint)}.key.op:hover{background:var(--op-hover)}.key.eq:hover{background:var(--eq-hover)}.key.fn:hover{background:var(--surface-fn-hover)}.okbtn:hover{background:var(--primary-hover)}}.taskcard{z-index:30;background:var(--surface);border:3px solid var(--ink);border-radius:var(--radius-card);width:min(980px,100% - 32px);box-shadow:var(--shadow-3d-lg);flex-wrap:wrap;align-items:center;gap:18px;padding:14px 14px 14px 16px;display:flex;position:absolute;top:16px;left:50%;transform:translate(-50%)}.taskcard-num{background:var(--accent);border:3px solid var(--ink);color:#fff;border-radius:18px;flex-shrink:0;justify-content:center;align-items:center;width:64px;height:64px;font-size:34px;font-weight:700;display:flex;transform:rotate(-4deg)}.taskcard-body{flex-direction:column;flex:360px;gap:6px;min-width:0;display:flex}.taskcard-meta{align-items:center;gap:10px;display:flex}.dots{align-items:center;gap:6px;display:flex}.dot{background:var(--dot-idle);border:2px solid var(--ink);border-radius:50%;width:12px;height:12px}.dot.on{background:var(--accent);border-radius:999px;width:28px}.dot.done{background:var(--success)}.question{margin:0;font-size:22px;font-weight:500;line-height:1.6}.taskcard-actions{flex-shrink:0;gap:10px;display:flex}.qnum{vertical-align:middle;background:var(--hover-tint);border:2px dashed var(--primary);height:38px;color:var(--ink);cursor:grab;touch-action:none;border-radius:12px;align-items:center;gap:4px;margin:0 2px;padding:0 10px 0 6px;font-size:22px;font-weight:600;transition:transform .12s,background-color .12s,box-shadow .12s;display:inline-flex}.qnum:active{cursor:grabbing}.qnum svg{color:var(--primary);opacity:.7}@media (hover:hover){.qnum:hover{background:var(--surface);box-shadow:var(--shadow-3d);border-style:solid;transform:translateY(-2px)rotate(-2deg)}}.qtext{white-space:pre-wrap}.hint{pointer-events:none;text-align:center;flex-direction:column;align-items:center;gap:14px;animation:2.6s ease-in-out infinite wb-float;display:flex;position:absolute;top:55%;left:50%}.hint-badge{background:var(--primary);border:3px solid var(--ink);width:84px;height:84px;box-shadow:var(--shadow-3d-lg);color:#fff;border-radius:24px;justify-content:center;align-items:center;display:flex;transform:rotate(-6deg)}.hint-title{font-size:26px;font-weight:600}.hint-sub{color:var(--ink-soft);font-size:18px}.helpchips{z-index:10;pointer-events:none;flex-direction:column;align-items:flex-start;display:flex;position:absolute;bottom:16px;left:16px}.helpbtn{pointer-events:auto;border:2px solid var(--ink);background:var(--surface);width:40px;height:40px;box-shadow:0 3px 0 var(--ink);font-family:var(--font);color:var(--primary);cursor:pointer;border-radius:50%;font-size:22px;font-weight:700;line-height:1;transition:transform .12s,box-shadow .12s,background .12s}.helpbtn:active{box-shadow:0 1px 0 var(--ink);transform:translateY(2px)}.helplist{opacity:0;transform-origin:0 100%;pointer-events:none;flex-direction:column;align-items:flex-start;gap:8px;padding-bottom:8px;transition:opacity .16s,transform .2s cubic-bezier(.3,1.4,.5,1);display:flex;transform:translateY(8px)scale(.96)}.helpchips.open .helplist{opacity:1;pointer-events:auto;transform:none}.helpchips.open .helpbtn{background:var(--hover-tint)}@media (hover:hover){.helpchips:hover .helplist{opacity:1;pointer-events:auto;transform:none}.helpbtn:hover{background:var(--hover-tint)}}@media (prefers-reduced-motion:reduce){.helplist{transition:none}}.fb{z-index:50;border:3px solid var(--ink);width:min(560px,100% - 32px);box-shadow:var(--shadow-3d-lg);animation:wb-in .25s var(--ease-bounce);border-radius:20px;align-items:center;gap:14px;padding:14px 14px 14px 18px;display:flex;position:absolute;bottom:72px;left:50%;transform:translate(-50%)}.fb.ok{background:var(--fb-ok)}.fb.no{background:var(--fb-no)}.fb.none{background:var(--fb-info)}.fb-icon{background:var(--surface);border:3px solid var(--ink);border-radius:14px;flex-shrink:0;justify-content:center;align-items:center;width:48px;height:48px;display:flex}.fb-text{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.fb-title{font-size:21px;font-weight:600}.fb-sub{color:var(--ink-text-2);font-size:16px}.fb-actions{align-items:center;gap:8px;display:flex}.confetti{pointer-events:none;z-index:45;position:absolute;inset:0;overflow:hidden}.conf{border-radius:3px;width:12px;height:18px;animation:1.8s cubic-bezier(.2,.6,.4,1) forwards wb-fall;position:absolute;top:-20px}@keyframes wb-pop{0%{transform:scale(.4)}to{transform:scale(1)}}@keyframes wb-in{0%{opacity:0;transform:translateY(12px)scale(.96)}to{opacity:1;transform:none}}.fb{animation-name:wb-in-centered}@keyframes wb-in-centered{0%{opacity:0;transform:translate(-50%,12px)scale(.96)}to{opacity:1;transform:translate(-50%)}}@keyframes wb-pulse{0%,to{border-color:#2f5bea}50%{border-color:#2f5bea59}}@keyframes wb-blink{0%{opacity:1}50%{opacity:0}}@keyframes wb-float{0%,to{transform:translate(-50%,-50%)}50%{transform:translate(-50%,calc(-50% - 8px))}}@keyframes wb-fall{0%{opacity:1;transform:translateY(0)rotate(0)}to{opacity:.9;transform:translateY(105vh)rotate(540deg)}}@media (prefers-reduced-motion:reduce){.hint,.ghost,.tile,.pad,.fb{animation:none}.hint{transform:translate(-50%,-50%)}.tok{transition:none}.confetti{display:none}}.wb-dim{z-index:1;pointer-events:auto;cursor:default;background:#1e2a5a9e;animation:.2s wb-fade;position:absolute;inset:0}.wb.is-picking .tok{pointer-events:none}.wb.is-picking .tok.is-pickable{z-index:2;cursor:pointer;pointer-events:auto}.wb.is-picking .tools,.wb.is-picking .ghost{display:none}.tok.is-pickable .tile{box-shadow:var(--shadow-3d), 0 0 0 5px var(--answer);animation:wb-wiggle 1.4s ease-in-out var(--pick-delay,0s) infinite}.pickbadge{background:var(--answer);border:2px solid var(--ink);color:var(--ink);white-space:nowrap;pointer-events:none;opacity:0;border-radius:999px;align-items:center;gap:4px;padding:3px 10px 3px 8px;font-size:14px;font-weight:600;transition:opacity .12s;display:flex;position:absolute;bottom:100%;left:50%;transform:translate(-50%,2px)}.tok.is-pickable:hover .pickbadge,.tok.is-pickable:active .pickbadge{opacity:1}.tok.is-pickable:hover .tile,.tok.is-pickable:active .tile{background:var(--answer);box-shadow:0 7px 0 var(--ink), 0 0 0 6px var(--answer);animation:none;transform:translateY(-3px)scale(1.12)}.wb.is-picking .taskcard-actions{opacity:.4;pointer-events:none}.fb.pick{background:var(--answer)}@keyframes wb-wiggle{0%,to{transform:rotate(0)scale(1)}20%{transform:rotate(-4deg)scale(1.06)}40%{transform:rotate(3deg)scale(1.06)}60%{transform:rotate(0)scale(1)}}@keyframes wb-fade{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion:reduce){.tok.is-pickable .tile,.wb-dim{animation:none}}.tok.var .tile,.tok.sym .tile{background:var(--var-bg);color:var(--accent-ink)}.var-ch{font-style:italic}.tok.unit .tile{background:var(--unit-bg);color:var(--unit-ink);font-size:.62em}.unit-ch{white-space:nowrap;flex:1;justify-content:center;align-items:center;display:flex}.tok.ans .tile{background:var(--answer);color:var(--ink)}.fracbox{flex-direction:column;flex:1 1 0;justify-content:center;align-items:center;gap:2px;font-size:.5em;line-height:1;display:flex}.fracbar{background:currentColor;border-radius:2px;align-self:stretch;height:3px;margin:0 6px}.tok-exp{font-size:.42em;font-weight:700;line-height:1;position:absolute;top:3px;right:5px}.tbtn.opt.word{width:auto;min-width:44px;padding:0 10px;font-size:17px}.pad-extra,.pad-units{margin-top:8px}.key.var{background:var(--var-bg);color:var(--accent-ink);font-style:italic}.key.unit{background:var(--unit-bg);height:44px;color:var(--unit-ink);box-shadow:0 3px 0 var(--ink);border-radius:999px;font-size:19px}@media (hover:hover){.key.var:hover{background:#ddd4ff}.key.unit:hover{background:#bdebd3}}.fraclabel{flex-direction:column;align-items:center;gap:2px;font-size:.6em;line-height:1;display:inline-flex}.fraclabel .fracbar{min-width:1.2em;height:2px;margin:0}.fraclabel .on{outline:2px dashed var(--primary);outline-offset:2px;border-radius:4px;min-width:.8em}.pad-frac{align-items:center;gap:8px;display:inline-flex}.pad-tabs{background:var(--surface-fn);border-radius:14px;gap:4px;padding:4px;display:flex}.pad-tab{height:36px;color:var(--ink-soft);font:600 15px var(--font);cursor:pointer;touch-action:manipulation;background:0 0;border:2px solid #0000;border-radius:10px;padding:0 12px}.pad-tab.on{background:var(--surface);border-color:var(--ink);color:var(--ink);box-shadow:0 2px 0 var(--ink)}@media (hover:hover){.pad-tab:not(.on):hover{color:var(--ink);background:var(--surface-fn-hover)}}.pad-tabbody{flex-direction:column;display:flex;overflow:hidden}.pad-tabbody .pad-keys{align-content:start}.pad-tabbody .pad-units{margin-top:0}.pad.compact .key{height:48px;font-size:25px}.pad.compact .key.unit{height:40px;font-size:18px}.pad.compact .pad-display{height:60px;font-size:38px}.facts{flex-wrap:wrap;gap:8px;display:flex}.fact{background:var(--fb-no);border:2px solid var(--ink);border-radius:10px;padding:4px 12px;font-size:17px;font-weight:500}.ghost .fraclabel,.tok .fracbox .fraclabel{font-size:1em}.qfrac{vertical-align:middle;flex-direction:column;align-items:center;margin:0 3px;font-size:17px;font-weight:600;line-height:1.05;display:inline-flex}.qfrac .fracbar{height:2px;margin:1px 0}.wb.is-copying,.wb.is-copying *{cursor:copy!important}.qnum.qvar{background:var(--var-bg);color:var(--accent-ink);border-color:var(--accent);font-style:italic}.qnum.qvar svg{color:var(--accent)}.qfrac.drag{background:var(--hover-tint);border:2px dashed var(--primary);cursor:grab;touch-action:none;border-radius:10px;padding:2px 8px;transition:transform .12s,background-color .12s,box-shadow .12s}@media (hover:hover){.qnum.qvar:hover{background:var(--var-bg)}.qfrac.drag:hover{background:var(--surface);box-shadow:var(--shadow-3d);border-style:solid;transform:translateY(-2px)rotate(-2deg)}}.pad-tabbody .pad-keys:not(.pad-units) .key.unit{border-radius:var(--radius-key);height:48px;box-shadow:var(--shadow-3d);font-size:22px}.tok .fracbox{gap:1px;font-size:.6em}.tok .fracbox .fracbar{height:3px;margin:1px 5px}.below{opacity:0;pointer-events:none;z-index:5;padding-top:6px;transition:opacity .14s,transform .14s;position:absolute;top:100%;left:50%;transform:translate(-50%,-6px)}.tok.is-sel .below{opacity:1;pointer-events:auto;transform:translate(-50%)}@media (hover:hover){.tok:hover .below{opacity:1;pointer-events:auto;transform:translate(-50%)}}.tok.is-drag .below{opacity:0;pointer-events:none}.belowbtn{border:2px solid var(--ink);background:var(--surface);height:40px;color:var(--primary);box-shadow:0 3px 0 var(--ink);font:600 15px var(--font);white-space:nowrap;cursor:pointer;border-radius:999px;align-items:center;gap:6px;padding:0 12px 0 8px;display:flex}.belowbtn:active{box-shadow:0 1px 0 var(--ink);transform:translateY(2px)}@media (hover:hover){.belowbtn:hover{background:var(--hover-tint)}}.ghost .fracbox{font-size:.6em}.pad-frac .fraclabel{gap:3px;font-size:.62em}.pad-frac .fraclabel .fracbar{min-width:1.4em;height:3px}.fracbar{flex-shrink:0}.tok .fracbox{font-size:.55em}.ghost.fracghost{z-index:3;animation:wb-fracgrow .18s var(--ease-pop), wb-pulse 1.3s ease-in-out infinite;background:#ffffffeb;align-items:stretch;gap:4px;padding:4px}@keyframes wb-fracgrow{0%{transform:scaleY(.5)}to{transform:none}}.fg-whole{color:var(--ink);justify-content:center;align-items:center;font-weight:600;display:flex}.fg-frac{flex-direction:column;min-width:0;display:flex}.fg-part{color:var(--ink);border-radius:8px;flex:1;justify-content:center;align-items:center;font-weight:600;line-height:1;display:flex}.fg-part.on{background:var(--primary-tint);outline:2px dashed var(--primary);outline-offset:-2px}.fg-bar{background:var(--ink);border-radius:2px;flex-shrink:0;height:3px;margin:3px 2px}.fg-part .caret,.fracpart .caret{align-self:center;height:.9em;margin:0 0 0 2px}.fracpart{border-radius:6px;justify-content:center;align-items:center;min-width:1.1em;min-height:1.05em;padding:0 4px;display:inline-flex}.fraclabel .fracpart.on{background:var(--primary-tint);box-shadow:inset 0 0 0 2px var(--primary);outline:none}.pad-frac .fraclabel{font-size:.5em}.fracinline{align-items:center;gap:6px;font-size:.8em;display:inline-flex}.fracinline .fracpart{background:var(--surface);min-width:1.2em;height:1.25em;box-shadow:inset 0 0 0 2px var(--grid-line)}.fracinline .fracpart.on{background:var(--primary-tint);box-shadow:inset 0 0 0 2px var(--primary)}.fracslash{color:var(--ink-soft)}.denslot{cursor:pointer;opacity:0;pointer-events:none;height:30px;transition:opacity .14s ease, height .14s var(--ease-pop), left .14s var(--ease-pop), right .14s var(--ease-pop);z-index:4;background:0 0;border:0;flex-direction:column;align-items:center;padding:0;display:flex;position:absolute;top:calc(100% - 3px);left:8px;right:8px}.tok.is-sel .denslot{opacity:1;pointer-events:auto}@media (hover:hover){.tok:hover .denslot{opacity:1;pointer-events:auto}}.tok.is-drag .denslot{opacity:0;pointer-events:none}.dl-bar{border-top:3px dashed #1e2a5a4d;width:86%;margin-top:2px}.dl-box{color:#0000;width:64%;font:600 12px var(--font);white-space:nowrap;transition:background-color .14s ease, border-color .14s ease, color .14s ease, width .14s var(--ease-pop);border:2px dashed #2f5bea66;border-radius:8px;flex:1;justify-content:center;align-items:center;margin-top:3px;display:flex}.denslot:hover,.denslot:focus-visible{height:40px;left:min(8px,50% - 44px);right:min(8px,50% - 44px)}.denslot:hover .dl-bar,.denslot:focus-visible .dl-bar{border-top-color:var(--ink);border-top-style:solid}.denslot:hover .dl-box,.denslot:focus-visible .dl-box{background:var(--primary-tint);border-color:var(--primary);width:100%;color:var(--primary)}@media (hover:none){.tok.is-sel .denslot .dl-box{color:var(--primary)}}.tok.paren .tile{box-shadow:none;color:var(--paren-ink,var(--ink));background:0 0;border-color:#0000;font-size:1.25em;font-weight:500}@media (hover:hover){.tok.paren:hover .tile{border-color:var(--paren-ink,var(--ink));box-shadow:none;background:#fff9}}.tok.paren.is-sel .tile{border-color:var(--paren-ink,var(--ink))}.pgroup{pointer-events:none;transition:left .16s var(--ease-bounce), width .16s var(--ease-bounce), top .16s var(--ease-bounce);border-radius:18px;position:absolute}.wb.is-panning .pgroup{transition:none}.pgroup.d0{background:#2f5bea1a;border:2px solid #2f5bea59}.pgroup.d1{background:#7b61ff1f;border:2px solid #7b61ff66}.pgroup.d2{background:#2bb6731f;border:2px solid #2bb67373}.dg.whole{letter-spacing:.02em;white-space:nowrap}.question .qtok{cursor:grab;touch-action:none;border-radius:6px;margin:0;padding:0 1px;font-weight:600;transition:background-color .12s,box-shadow .12s,transform .12s;display:inline-block}.question .qvar{color:var(--accent-ink);font-style:italic}.question .qfrac.qtok{flex-direction:column;align-items:center;padding:0 4px;display:inline-flex}.question .qfrac .fracbar{flex-shrink:0;align-self:stretch}@media (hover:hover){.question .qtok:hover{background:var(--hover-tint);box-shadow:inset 0 -3px 0 var(--primary);transform:translateY(-1px)}.question .qvar:hover{background:var(--var-bg);box-shadow:inset 0 -3px 0 var(--accent)}}.question .qtok:active{cursor:grabbing}@media (hover:none){.question .qtok{box-shadow:inset 0 -2px #2f5bea4d}}.toboard{vertical-align:middle;border:2px solid var(--ink);background:var(--surface);height:34px;color:var(--primary);box-shadow:0 3px 0 var(--ink);font:600 15px var(--font);white-space:nowrap;cursor:pointer;border-radius:999px;align-items:center;gap:6px;margin-left:10px;padding:0 12px 0 8px;transition:transform 70ms,box-shadow 70ms;display:inline-flex}.toboard:active{box-shadow:0 1px 0 var(--ink);transform:translateY(2px)}@media (hover:hover){.toboard:hover{background:var(--hover-tint)}}.tok.op.eq .tile{background:var(--eq);color:var(--eq-ink)}.key.eq{color:var(--eq-ink)}.question .qtok{animation:q-invite .9s ease-in-out calc(.6s + var(--i,0) * .12s) 1}@keyframes q-invite{0%,to{box-shadow:none;transform:none}35%{background:var(--hover-tint);transform:translateY(-3px)rotate(-5deg);box-shadow:0 0 0 2px #2f5bea59,0 0 14px #2f5bea73}65%{transform:translateY(-1px)rotate(3deg)}}@media (hover:hover){.taskcard:hover .question .qtok{background:#2f5bea12;transform:rotate(-2deg);box-shadow:0 0 0 2px #2f5bea29,0 0 10px #2f5bea38}.taskcard:hover .question .qtok:nth-child(2n){transform:rotate(2deg)}.taskcard:hover .question .qvar{background:#7b61ff1a;box-shadow:0 0 0 2px #7b61ff2e,0 0 10px #7b61ff40}.taskcard:hover .question .qtok:hover{background:var(--hover-tint);box-shadow:inset 0 -3px 0 var(--primary), 0 0 14px #2f5bea59;transform:translateY(-2px)rotate(-3deg)}.taskcard:hover .question .qvar:hover{background:var(--var-bg);box-shadow:inset 0 -3px 0 var(--accent), 0 0 14px #7b61ff59}}@media (prefers-reduced-motion:reduce){.question .qtok{animation:none}.taskcard:hover .question .qtok,.taskcard:hover .question .qtok:nth-child(2n),.taskcard:hover .question .qtok:hover{transform:none}}.groupbadge{background:var(--ink);color:var(--answer);white-space:nowrap;pointer-events:none;z-index:3;border-radius:999px;align-items:center;gap:4px;padding:3px 10px 3px 8px;font-size:14px;font-weight:600;display:flex;position:absolute;transform:translate(-50%,-4px)}.tok.is-pickable.pick-hot .tile{background:var(--answer);box-shadow:0 6px 0 var(--ink), 0 0 0 6px var(--answer);animation:none;transform:translateY(-3px)scale(1.06)}.tok-exp.editing{background:var(--primary-tint);outline:2px dashed var(--primary);outline-offset:0;min-width:.9em;color:var(--ink);border-radius:5px;align-items:center;padding:1px 3px;display:inline-flex}.tok-exp.editing.fresh{background:var(--primary);color:#fff}.tok-exp .caret{height:.9em;margin:0 0 0 1px}.tok-exp.fresh .caret{display:none}.pad-exp{align-items:center;gap:8px;font-size:.8em;display:inline-flex}.pad-exp-label{color:var(--ink-soft);font-size:15px;font-weight:500}.pad-exp .fracpart.fresh{background:var(--primary);color:#fff;box-shadow:none}.pad-exp .fracpart.fresh .caret{display:none}.figtile{cursor:grab;pointer-events:auto;touch-action:none;transition:left .16s var(--ease-bounce), top .16s var(--ease-bounce);position:absolute}.wb.is-panning .figtile,.figtile.is-drag,.figtile.is-resizing{transition:none}.figtile.is-drag{z-index:60}.figtile-card{background:var(--surface);border:3px solid var(--ink);box-shadow:var(--shadow-3d);animation:wb-pop .3s var(--ease-pop);border-radius:18px;padding:4px;transition:transform .12s,box-shadow .12s;position:absolute;inset:4px;overflow:visible}.figtile.is-sel .figtile-card{outline:3px dashed var(--primary);outline-offset:4px}.figtile.is-drag .figtile-card,.figtile.ghostfig .figtile-card{box-shadow:var(--shadow-lift);transform:rotate(-2deg)scale(1.03)}.figtile.ghostfig{z-index:60;pointer-events:none;opacity:.95}.figtile.is-sel .tools{opacity:1;pointer-events:auto;transform:translate(calc(-50% + var(--tools-shift,0px)), 0)}.figtile.is-drag .tools{opacity:0;pointer-events:none}.figtile-handle{background:var(--surface);border:3px solid var(--primary);width:24px;height:24px;box-shadow:0 2px 0 var(--ink);cursor:nwse-resize;touch-action:none;opacity:0;border-radius:50%;transition:opacity .14s;position:absolute;bottom:-2px;right:-2px}.figtile.is-sel .figtile-handle,.figtile.is-resizing .figtile-handle{opacity:1}@media (hover:hover){.figtile:hover .figtile-card{box-shadow:var(--shadow-3d-lg);transform:translateY(-2px)}.figtile:hover .tools{opacity:1;pointer-events:auto;transform:translate(calc(-50% + var(--tools-shift,0px)), 0)}.figtile:hover .figtile-handle{opacity:1}.figtile.is-drag:hover .tools{opacity:0}}.taskfig{background:var(--surface-soft);cursor:pointer;touch-action:none;border-radius:12px;flex-shrink:0;align-self:center;padding:4px;transition:transform .12s,box-shadow .12s;animation:.9s ease-in-out .5s q-invite}@media (hover:hover){.taskcard:hover .taskfig{transform:rotate(-1.5deg);box-shadow:0 0 0 2px #2f5bea33,0 0 12px #2f5bea40}.taskcard:hover .taskfig:hover{box-shadow:0 0 0 2.5px var(--primary), 0 0 16px #2f5bea66;transform:translateY(-2px)rotate(-2.5deg)}}@media (hover:none){.taskfig{box-shadow:0 0 0 2px #2f5bea40}}.figtile.is-task .fig-label.draggable{animation:label-invite .9s ease-in-out calc(.9s + var(--i,0) * .15s) 1}@keyframes label-invite{0%,to{transform:translate(-50%,-50%)}35%{box-shadow:0 0 0 2.5px var(--primary), 0 3px 0 var(--primary), 0 0 16px #2f5bea80;background:var(--hover-tint);transform:translate(-50%,-50%)translateY(-4px)rotate(-8deg)scale(1.12)}65%{transform:translate(-50%,-50%)translateY(-1px)rotate(4deg)}}.figtile.is-flash .figtile-card{animation:1.1s ease-out fig-flash}@keyframes fig-flash{0%,to{box-shadow:var(--shadow-3d)}25%,60%{box-shadow:0 0 0 4px var(--primary), 0 0 24px #2f5bea8c}}@media (prefers-reduced-motion:reduce){.taskfig,.figtile.is-task .fig-label.draggable,.figtile.is-flash .figtile-card{animation:none}}@media (width<=600px){.taskcard.has-figure .taskcard-meta.wide{order:-3}.taskcard.has-figure .taskcard-num{order:-2}.taskcard.has-figure .taskfig{order:-1;margin-left:auto}}.taskcard-meta.wide{flex-basis:100%;margin-bottom:-4px}.taskcard-meta{flex-wrap:wrap;row-gap:4px;min-width:0}.taskcard-meta .sumo-label{white-space:nowrap}.dots{flex-wrap:wrap;row-gap:4px;min-width:0}.tilesghost{z-index:60;pointer-events:none;display:flex;position:absolute}.tilesghost .tok{translate:none}.rowgrip{z-index:25;opacity:0;pointer-events:none;margin:-14px 0 0 -14px;transition:opacity .15s,scale .12s;position:absolute}.rowgrip.on{opacity:1;pointer-events:auto}.rowgrip.on:hover{color:var(--primary);background:var(--hover-tint);scale:1.1}.rowgrip.is-drag{z-index:61;cursor:grabbing;color:var(--primary);background:var(--hover-tint);transition:none;scale:1.1}.rowband{z-index:0;border:2px dashed var(--primary);background:var(--hover-tint);pointer-events:none;border-radius:14px;position:absolute}.wb.is-picking .rowgrip,.wb.is-picking .rowband{display:none}@media (hover:none){.rowgrip{display:none}}.parttabs{flex-wrap:wrap;gap:6px;display:flex}.parttab{border:2px solid var(--ink);background:var(--surface);height:30px;color:var(--ink);font:700 15px var(--font);box-shadow:0 2px 0 var(--ink);cursor:pointer;touch-action:manipulation;border-radius:999px;align-items:center;gap:4px;padding:0 12px;display:inline-flex}.parttab.active.showing{background:var(--primary);border-color:var(--ink);color:var(--surface)}.parttab.correct{color:var(--success)}.parttab.correct.showing,.parttab.skipped.showing{background:var(--hover-tint);outline:2px dashed var(--primary);outline-offset:2px}.parttab.skipped{color:var(--ink-muted)}.parttab.locked{border-style:dashed;border-color:var(--ink-muted);color:var(--ink-muted);box-shadow:none;cursor:default}@media (hover:hover){.parttab:not(.locked):not(.showing):hover{background:var(--hover-tint)}}.question.intro,.question.looking{color:var(--ink-soft)}.partlook{color:var(--success);flex-wrap:wrap;align-items:center;gap:10px;font-weight:600;display:flex}.partlook-back{border:2px solid var(--ink);background:var(--surface);height:30px;color:var(--ink);font:600 14px var(--font);box-shadow:0 2px 0 var(--ink);cursor:pointer;border-radius:999px;padding:0 12px}.tok.label .tile{box-shadow:none;color:var(--ink-soft);background:0 0;border-color:#0000}.label-ch{flex:1;justify-content:center;align-items:center;font-size:.8em;font-weight:700;display:flex}.tok.is-done .tile{opacity:.55}.donebadge{z-index:2;border:2px solid var(--ink);background:var(--surface);color:var(--ink-soft);opacity:1;border-radius:999px;padding:1px 7px;font-size:13px;font-weight:700;line-height:1.2;position:absolute;top:-6px;left:-2px}.bv{--vx:0;--vy:0;font-family:var(--font);color:var(--ink);background-color:var(--paper);background-image:linear-gradient(var(--grid-line) 1px, transparent 1px), linear-gradient(90deg, var(--grid-line) 1px, transparent 1px);-webkit-print-color-adjust:exact;print-color-adjust:exact;border-radius:12px;position:relative;overflow:hidden}.bv .tok,.bv .tok .tile,.bv .figtile,.bv .pgroup{cursor:default;pointer-events:none;transition:none;animation:none}.bv .tile{box-shadow:0 2px 0 var(--ink);border-width:2px;inset:3px}.bv .figtile-card{box-shadow:0 2px 0 var(--ink);border-width:2px}
