.mo-burst{pointer-events:none;z-index:1200;width:100vw;height:100vh;position:fixed;inset:0}.mo-coin{z-index:1201;pointer-events:none;will-change:transform, opacity;filter:drop-shadow(0 2px 3px #0b0b0f2e);width:22px;height:22px;position:fixed}.mo-press{transition:transform .14s var(--ease)}.mo-press:active:not(:disabled){transform:scale(.97)}.mo-overlay{z-index:1100;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);animation:mo-fade .24s var(--ease);background:#0b0b0f61;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.mo-overlay-card{border-radius:var(--r-xl);text-align:center;background:#fff;width:min(380px,100%);padding:30px 26px 22px;animation:.5s cubic-bezier(.2,.9,.25,1.2) mo-rise;box-shadow:0 30px 80px #0b0b0f47}.mo-overlay-card h2{letter-spacing:-.04em;word-break:keep-all;margin-top:10px;font-size:28px}.mo-overlay-card p{margin-top:6px}.mo-overlay-ok{width:100%;margin-top:22px}.mo-lv{width:168px;height:168px;margin:0 auto;position:relative}.mo-lv-arc{animation:1.1s cubic-bezier(.3,.7,.1,1) .15s forwards mo-arc}.mo-lv-num{text-align:center;place-content:center;display:grid;position:absolute;inset:0}.mo-lv-num span{color:var(--ink-3);font-size:13px;font-weight:700}.mo-lv-num b{letter-spacing:-.05em;font-size:60px;font-weight:850;line-height:1;animation:.6s cubic-bezier(.2,.9,.3,1.4) .9s both mo-num}.mo-flip-in{perspective:600px;place-items:center;margin-bottom:6px;display:grid}.mo-unlock-art{background:var(--accent-soft);border-radius:26px;place-items:center;width:108px;height:108px;animation:.7s cubic-bezier(.2,.8,.2,1.1) both mo-cardflip;display:grid}.mo-goal-badge{background:var(--accent-soft);border-radius:50%;place-items:center;width:112px;height:112px;margin:0 auto;animation:.7s cubic-bezier(.2,.9,.3,1.4) both mo-num;display:grid}.mo-reveal{opacity:0;transform:translateY(var(--y,24px));transition:opacity .8s var(--ease) var(--d,0s), transform .8s var(--ease) var(--d,0s)}.mo-reveal.in{opacity:1;transform:none}.mo-ring{flex:none;position:relative}.mo-ring-in{text-align:center;place-content:center;display:grid;position:absolute;inset:0}.mo-flame{flex:none;place-items:center;display:inline-grid}.mo-flame svg{overflow:visible}.mo-flame.lit .mo-flame-o{transform-origin:50% 90%;animation:1.6s ease-in-out infinite mo-flicker}.mo-flame.lit .mo-flame-i{transform-origin:50% 90%;animation:1.1s ease-in-out infinite reverse mo-flicker}.mo-flame.lit svg{transform:scale(var(--fs,1))}.mo-flipcard{cursor:pointer;perspective:900px;font:inherit;color:inherit;-webkit-tap-highlight-color:transparent;background:0 0;border:0;padding:0;position:relative}.mo-flipcard:disabled{cursor:default}.mo-flip-inner{width:100%;height:100%;transform-style:preserve-3d;transition:transform .62s cubic-bezier(.25,.8,.25,1.1);display:block;position:relative}.mo-flipcard.flipped .mo-flip-inner{transform:rotateY(180deg)}.mo-flip-face{backface-visibility:hidden;border-radius:var(--r-l);place-items:center;display:grid;position:absolute;inset:0}.mo-flip-front{transform:rotateY(180deg)}.mo-flipcard:not(:disabled):not(.flipped):hover .mo-flip-inner{transform:translateY(-4px)rotate(-1deg)}.mo-flipcard:focus-visible{outline:none}.mo-flipcard:focus-visible .mo-flip-back{box-shadow:0 0 0 3px var(--accent)}@keyframes mo-fade{0%{opacity:0}}@keyframes mo-rise{0%{opacity:0;transform:translateY(24px)scale(.94)}}@keyframes mo-arc{to{stroke-dashoffset:0}}@keyframes mo-num{0%{opacity:0;transform:scale(.4)}}@keyframes mo-cardflip{0%{opacity:0;transform:rotateY(-180deg)scale(.7)}60%{opacity:1}}@keyframes mo-flicker{0%,to{transform:scaleY(1)skew(0)}30%{transform:scaleY(1.06)skew(-2deg)}60%{transform:scaleY(.96)skew(2deg)}}@keyframes mo-in{0%{opacity:0;transform:translateY(10px)}}@media (prefers-reduced-motion:reduce){.mo-reveal{opacity:1;transition:none;transform:none}.mo-overlay,.mo-overlay-card,.mo-lv-num b,.mo-unlock-art,.mo-goal-badge,.mo-flame.lit .mo-flame-o,.mo-flame.lit .mo-flame-i{animation:none!important}.mo-lv-arc{stroke-dashoffset:0;animation:none}.mo-flip-inner{transition:none}}.obj{--oa:var(--accent);--oa-soft:var(--accent-soft);--oa-ink:var(--accent-ink);border:1px solid var(--line);border-radius:var(--r-l);min-width:0;color:var(--ink);background:#fff;flex-direction:column;gap:10px;padding:14px;display:flex;position:relative;container-type:inline-size}.obj.tone-sci{--oa:#12896f;--oa-soft:var(--mint-soft);--oa-ink:var(--mint-ink)}.obj.tone-soc{--oa:#c25e17;--oa-soft:var(--orange-soft);--oa-ink:var(--orange-ink)}.obj.tone-kor{--oa:#c2416a;--oa-soft:var(--pink-soft);--oa-ink:var(--pink-ink)}.obj.tone-eng{--oa:#6247f0;--oa-soft:var(--violet-soft);--oa-ink:var(--violet-ink)}.obj.tone-art{--oa:#a87400;--oa-soft:var(--sun-soft);--oa-ink:var(--sun-ink)}.obj.compact{gap:8px;padding:10px}.obj-missing{color:var(--ink-3);font-size:14px}.ob-svg{touch-action:none;-webkit-user-select:none;user-select:none;width:100%;height:auto;max-height:440px;display:block;overflow:visible}.ob-svg.ob-square{max-width:420px;margin:0 auto}.obj[data-kind=clock] .ob-svg{max-width:300px;margin:0 auto}.obj[data-kind=array] .ob-svg{max-width:400px}.ob-svg.ob-narrow{max-width:480px;margin:0 auto}.ob-svg.ob-tall{max-width:220px;margin:0 auto}.obj.compact .ob-svg{max-height:300px}.ob-svg text{font-family:var(--sans)}.ob-svg [tabindex]:focus{outline:none}.ob-svg [tabindex]:focus-visible>:first-child,.ob-svg [tabindex]:focus-visible{filter:drop-shadow(0 0 0 2px var(--oa)) drop-shadow(0 0 4px var(--oa));outline:none}.ob-axis{stroke:var(--ink-2);stroke-width:2px}.ob-grid{stroke:var(--line);stroke-width:1px}.ob-tick{stroke:var(--ink-3);stroke-width:1.2px}.ob-tick.big{stroke:var(--ink-2);stroke-width:2px}.ob-lbl{fill:var(--ink-2);font-variant-numeric:tabular-nums;font-size:15px;font-weight:600}.ob-lbl.small{font-size:13px}.ob-lbl.tiny{fill:var(--ink-3);font-size:11px}.ob-lbl.strong{fill:var(--oa-ink);font-weight:800}.ob-lbl.light{fill:#fffc}.ob-hint{fill:var(--ink-4);font-size:14px;font-weight:600}.ob-unit{fill:var(--ink-3);font-size:13px;font-weight:700}.ob-handle{cursor:grab}.ob-handle:active{cursor:grabbing}.ob-knob{fill:var(--oa);stroke:#fff;stroke-width:3px;filter:drop-shadow(0 2px 4px #11111438);cursor:grab}.ob-bubble{fill:var(--ink)}.ob-bubble-t{fill:#fff;font-size:14px;font-weight:800}.ob-pin{fill:var(--oa);stroke:#fff;stroke-width:1.5px}.ob-pin-line{stroke:var(--oa);stroke-width:2px;stroke-dasharray:3 3}.ob-ghost{fill:none;stroke:var(--good);stroke-width:2.5px;stroke-dasharray:4 3}.ob-ghost-line{stroke:var(--good);stroke-width:3px;stroke-dasharray:6 4;fill:none;opacity:.9}.ob-ghost-rect{fill:var(--good-soft);stroke:var(--good);stroke-width:2px;stroke-dasharray:5 4}.ob-ghost-poly{fill:var(--good-soft);stroke:var(--good);stroke-width:2.5px;stroke-dasharray:6 4}.ob-ghost-bar{fill:var(--good);opacity:.6}.ob-ghost-hands line{stroke:var(--good);stroke-width:4px;stroke-dasharray:6 4;stroke-linecap:round}.ob-bar{border-top:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:8px;min-height:40px;padding-top:10px;display:flex}.ob-sp{flex:auto;min-width:4px}.ob-read{color:var(--ink);font-variant-numeric:tabular-nums;overflow-wrap:anywhere;min-width:0;font-size:17px;font-weight:700}.ob-read b{color:var(--oa-ink);font-weight:800}.ob-read.ok{color:var(--good)}.ob-tag{background:var(--oa-soft);color:var(--oa-ink);border-radius:999px;padding:2px 10px;font-size:13px;font-weight:700}.ob-btn{border:1px solid var(--line-2);min-height:38px;color:var(--ink-2);font:inherit;cursor:pointer;white-space:nowrap;background:#fff;border-radius:999px;padding:0 14px;font-size:14px;font-weight:700;transition:background .15s,border-color .15s,transform .1s}.ob-btn:hover:not(:disabled){border-color:var(--ink-3);background:var(--bg-2)}.ob-btn:active:not(:disabled){transform:scale(.97)}.ob-btn:disabled{opacity:.4;cursor:default}.ob-btn.on{background:var(--oa-soft);border-color:var(--oa);color:var(--oa-ink)}.ob-btn.solid{background:var(--oa);border-color:var(--oa);color:#fff}.ob-btn.solid:hover:not(:disabled){background:var(--oa-ink);border-color:var(--oa-ink)}.ob-btn:focus-visible,.ob-chip:focus-visible,.ob-card:focus-visible,.ob-tile:focus-visible{outline:2px solid var(--oa);outline-offset:2px}.ob-stepper{border:1px solid var(--line);background:var(--bg);border-radius:999px;align-items:center;gap:4px;padding:3px;display:inline-flex}.ob-stepper-l{color:var(--ink-3);padding:0 6px 0 8px;font-size:13px;font-weight:600}.ob-stepper button{background:var(--bg-2);width:32px;height:32px;color:var(--ink);cursor:pointer;border:0;border-radius:50%;font-size:18px;font-weight:700}.ob-stepper button:disabled{opacity:.35;cursor:default}.ob-stepper output{text-align:center;font-variant-numeric:tabular-nums;min-width:32px;font-weight:800}.ob-reveal{border-radius:var(--r);background:var(--good-soft);color:var(--good);overflow-wrap:anywhere;align-items:baseline;gap:8px;padding:8px 12px;font-size:14px;font-weight:700;display:flex}.ob-reveal span{background:var(--good);color:#fff;border-radius:999px;flex:none;padding:1px 8px;font-size:12px}.ob-key{color:var(--good);font-size:12px;font-weight:700;display:block}.ob-keyline{border-radius:var(--r);background:var(--good-soft);color:var(--good);margin:0;padding:8px 12px;font-size:14px;font-weight:700}.ob-hint-t{color:var(--ink-4);font-size:14px}.ob-chips{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.ob-chips-l{color:var(--ink-3);margin-right:4px;font-size:13px;font-weight:700}.ob-chip{border:1px solid var(--line-2);max-width:100%;min-height:38px;color:var(--ink-2);font:inherit;cursor:pointer;overflow-wrap:anywhere;background:#fff;border-radius:999px;align-items:center;gap:6px;padding:0 14px;font-size:14px;font-weight:700;transition:all .15s;display:inline-flex}.ob-chip:hover:not(:disabled){border-color:var(--oa)}.ob-chip.on{background:var(--oa);border-color:var(--oa);color:#fff}.ob-chip.used:not(.on){background:var(--bg-2);color:var(--ink-4);border-style:dashed}.ob-chip.good{box-shadow:0 0 0 2px var(--good)}.ob-chip.part{padding-left:6px}.ob-chip.part svg{flex:none}.ob-chip:disabled{cursor:default}.ob-cards{flex-wrap:wrap;gap:8px;min-height:44px;display:flex}.ob-card{border:1px solid var(--line-2);border-radius:var(--r);max-width:100%;min-height:42px;color:var(--ink);font:inherit;cursor:pointer;transition:transform .15s var(--ease), box-shadow .15s, border-color .15s;overflow-wrap:anywhere;text-align:left;background:#fff;padding:8px 14px;font-size:15px;font-weight:600;box-shadow:0 1px 2px #1111140d}.ob-card:hover:not(:disabled){border-color:var(--ink-4);transform:translateY(-1px);box-shadow:0 4px 12px #11111414}.ob-card.on{border-color:var(--oa);background:var(--oa-soft);color:var(--oa-ink);box-shadow:0 0 0 2px var(--oa)}.ob-card.done{background:var(--bg-2);color:var(--ink-4);box-shadow:none;text-decoration:line-through}.ob-card.good{border-color:var(--good);background:var(--good-soft)}.ob-card.bad{border-color:var(--bad);background:var(--bad-soft)}.ob-card:disabled{cursor:default}.ob-jump{fill:none;stroke:var(--oa);stroke-width:2.5px}.ob-dot-start{fill:#fff;stroke:var(--ink);stroke-width:3px}.ob-cell{fill:#fff;stroke:var(--ink-3);stroke-width:1.5px;cursor:pointer;transition:fill .15s}.ob-cell:hover{fill:var(--oa-soft)}.ob-cell.on{fill:var(--oa)}.ob-cell.ghost:not(.on){fill:var(--good-soft)}.ob-cell.ghost.on{stroke:var(--good);stroke-width:3px}.ro .ob-cell,.ro .ob-sym,.ro .ob-peg-g{cursor:default;pointer-events:none}.ob-b10-trays{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.ob-tray{border-radius:var(--r);background:var(--bg-2);flex-direction:column;gap:6px;min-width:0;padding:10px;display:flex}.ob-tray-h{justify-content:space-between;font-size:14px;display:flex}.ob-tray-h span{color:var(--oa-ink);font-variant-numeric:tabular-nums;font-weight:800}.ob-tray-body{border:1px dashed var(--line-2);border-radius:var(--r-s);cursor:pointer;background:#fff;padding:6px;display:block}.ob-tray-body:disabled{cursor:default}.ob-tray-f{justify-content:center;gap:6px;display:flex}.ob-b10{stroke:#11111440;stroke-width:.8px}.ob-b10.flat{fill:#6d84fb}.ob-b10.rod{fill:#2fbf9f}.ob-b10.unit{fill:#ffc93c}.ob-b10-l{stroke:#ffffff73;stroke-width:.6px}.ob-arr-dot{fill:var(--line-2);transition:r .15s var(--ease), fill .15s}.ob-arr-dot.on{fill:var(--oa)}.ob-sel-rect{fill:var(--oa-soft);stroke:var(--oa);stroke-width:2px}.ob-pv{gap:6px;display:grid}.ob-pv-col{border-radius:var(--r);background:var(--bg-2);flex-direction:column;align-items:center;gap:4px;min-width:0;padding:8px 2px;display:flex}.ob-pv-col.dec{box-shadow:inset 3px 0 0 var(--oa)}.ob-pv-h{color:var(--ink-3);white-space:nowrap;font-size:12px;font-weight:700}.ob-pv-up{border-radius:var(--r-s);width:100%;max-width:54px;height:32px;color:var(--ink-3);cursor:pointer;background:#fff;border:0;font-size:12px}.ob-pv-up:disabled{opacity:.4}.ob-pv-d{color:var(--ink);font-variant-numeric:tabular-nums;border-radius:6px;padding:0 6px;font-size:34px;font-weight:800;line-height:1.2}.ob-pv-d:focus-visible{outline:2px solid var(--oa)}.ob-money-pal{border-radius:var(--r);background:var(--bg-2);flex-wrap:wrap;gap:8px;padding:10px;display:flex}.ob-money-btn,.ob-money-put{cursor:pointer;transition:transform .15s var(--ease);background:0 0;border:0;border-radius:10px;padding:2px}.ob-money-btn:hover:not(:disabled){transform:translateY(-2px)}.ob-money-tray{border:1px dashed var(--line-2);border-radius:var(--r);flex-wrap:wrap;align-items:center;gap:4px;min-height:64px;padding:10px;display:flex}.ob-money{filter:drop-shadow(0 1px 1.5px #11111433);display:block}.ob-clock-rim{fill:var(--bg-2)}.ob-clock-face{fill:#fff;stroke:var(--ink-2);stroke-width:3px}.ob-clock-n{fill:var(--ink);font-size:22px;font-weight:800}.ob-hand{stroke-linecap:round}.ob-hand.hour{stroke:var(--ink);stroke-width:9px;cursor:grab}.ob-hand.min{stroke:var(--oa);stroke-width:5px}.ob-hand-grab{fill:#0000;cursor:grab}.ob-hand-grab.min{fill:var(--oa);fill-opacity:.16;stroke:var(--oa);stroke-width:2px}.ob-hand-pin{fill:var(--ink);stroke:#fff;stroke-width:2px}.ob-ruler{fill:#fdf6df;stroke:#d9c48a;stroke-width:1.5px}.ob-measure{fill:var(--oa);opacity:.85}.ob-prot-body{fill:#2747f50d;stroke:var(--line-2);stroke-width:1.5px}.ob-ray{stroke:var(--ink-2);stroke-width:4px;stroke-linecap:round}.ob-ray.on{stroke:var(--oa)}.ob-angle-fill{fill:var(--oa);fill-opacity:.16;stroke:var(--oa);stroke-width:2px}.ob-stand{fill:var(--slate)}.ob-beam{fill:var(--ink-2);transition:fill .2s}.ob-beam.level{fill:var(--good)}.ob-beam-g{transition:transform .5s var(--spring)}.ob-string{stroke:var(--ink-4);stroke-width:1.5px}.ob-pan{fill:#e5e6eb;stroke:var(--ink-3);stroke-width:1.5px}.ob-weight{fill:#5b6478}.ob-weight-t{fill:#fff;font-size:12px;font-weight:800}.ob-ok-t{fill:var(--good);font-size:18px;font-weight:800}.ob-tube{fill:#fff;stroke:var(--ink-3);stroke-width:2px}.ob-bulb{fill:#e8473f;stroke:#c22f2f;stroke-width:2px}.ob-liquid{fill:#e8473f;transition:y .15s,height .15s}.ob-zero{stroke:var(--oa);stroke-width:1.5px;stroke-dasharray:3 3}.ob-glass{fill:#dcebfa40;stroke:var(--ink-3);stroke-width:2.5px}.ob-glass-lip{stroke:var(--ink-3);stroke-width:3px;stroke-linecap:round}.ob-water{fill:#8cc9ef;opacity:.85}.ob-board{fill:#f7f3ea;stroke:#e2d6b6;stroke-width:2px}.ob-peg-g{cursor:pointer}.ob-peg{fill:#8a8c97;transition:r .15s var(--ease)}.ob-peg.on{fill:var(--oa)}.ob-poly{fill:var(--oa);fill-opacity:.18;stroke:var(--oa);stroke-width:3.5px;stroke-linejoin:round}.ob-poly.open{fill:none}.ob-line{stroke:var(--oa);stroke-width:3px}.ob-sym{fill:#fff;stroke:var(--line-2);stroke-width:1px;cursor:pointer;transition:fill .12s}.ob-sym:hover{fill:var(--oa-soft)}.ob-sym.given{fill:var(--ink-2);cursor:default}.ob-sym.on{fill:var(--oa)}.ob-sym.ghost{stroke:var(--good);stroke-width:2.5px}.ob-axis-sym{stroke:var(--bad);stroke-width:3px;stroke-dasharray:8 5}.ob-nets{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;display:grid}.ob-net{border:1px solid var(--line-2);border-radius:var(--r-l);cursor:pointer;background:#fff;place-items:center;min-height:140px;padding:16px;transition:border-color .15s,box-shadow .15s;display:grid;position:relative}.ob-net:hover:not(:disabled){border-color:var(--ink-4)}.ob-net.on{border-color:var(--oa);box-shadow:0 0 0 2px var(--oa)}.ob-net.good{background:var(--good-soft)}.ob-net-n{color:var(--ink-3);font-size:13px;font-weight:800;position:absolute;top:8px;left:10px}.ob-net-svg{width:100%;max-height:120px}.ob-net-cell{fill:var(--oa-soft);stroke:var(--oa);stroke-width:1.6px}.ob-bar-r{transition:y .15s,height .15s}.ob-bar-grip{fill:#fff;stroke:var(--ink-2);stroke-width:1.5px;cursor:ns-resize}.ob-pic{fill:var(--oa)}.ob-chance{grid-template-columns:minmax(0,260px) minmax(0,1fr);align-items:center;gap:18px;display:grid}.ob-spin-svg{width:100%;max-width:260px}.ob-spin-t{fill:#fff;paint-order:stroke;stroke:#0000002e;stroke-width:2px;font-size:15px;font-weight:800}.ob-needle{fill:var(--ink)}.ob-die{place-items:center;display:grid}.ob-die.rolling svg{animation:.14s linear infinite ob-roll}.ob-die-body{fill:#fff;stroke:var(--ink-2);stroke-width:3px}.ob-die-pip{fill:var(--ink)}@keyframes ob-roll{50%{transform:rotate(14deg)scale(.95)}}.ob-tally{flex-direction:column;gap:8px;min-width:0;display:flex}.ob-tally-row{grid-template-columns:minmax(0,7em) minmax(0,1fr) 2.6em;align-items:center;gap:8px;font-size:14px;display:grid}.ob-tally-l{overflow-wrap:anywhere;align-items:center;gap:6px;font-weight:700;display:flex}.ob-tally-l i{border-radius:3px;flex:none;width:10px;height:10px}.ob-tally-bar{background:var(--bg-2);border-radius:5px;height:10px;overflow:hidden}.ob-tally-bar span{height:100%;transition:width .3s var(--ease);border-radius:5px;display:block}.ob-tally-row b{text-align:right;font-variant-numeric:tabular-nums}.ob-tally-sum{color:var(--ink-3);text-align:right;font-size:13px}.ob-table-wrap{overflow-x:auto}.ob-table{border-collapse:collapse;width:100%;font-size:14px}.ob-table th,.ob-table td{border:1px solid var(--line);text-align:center;padding:8px}.ob-table th{background:var(--bg-2);font-weight:700}.ob-table{max-width:420px;margin:0 auto}.ob-table tbody th{background:var(--bg);text-align:left;padding-left:14px}.ob-table .ob-stepper-l{display:none}.ob-table tr.good td,.ob-table tr.good th{background:var(--good-soft)}.ob-table tr.bad td,.ob-table tr.bad th{background:var(--bad-soft)}.ob-wire{fill:none;stroke:var(--ink-2);stroke-width:5px}.ob-wire.live{stroke:#f2a900;stroke-dasharray:10 8;animation:.8s linear infinite ob-flow}@keyframes ob-flow{to{stroke-dashoffset:-18px}}.ob-slot-g{cursor:pointer}.ob-slot{fill:#fff;stroke:var(--line-2);stroke-width:2px}.ob-slot.empty{fill:var(--bg-2);stroke-dasharray:5 4}.ob-slot.ready{stroke:var(--oa)}.ob-bulb-g{fill:#f2f2ee;stroke:#9aa0aa;stroke-width:1.5px;transition:fill .25s}.ob-bulb-g.lit{fill:#ffd84a;stroke:#f2a900}.ob-glow{fill:#ffe78a;opacity:.55;animation:1.4s ease-in-out infinite alternate ob-glow}@keyframes ob-glow{to{opacity:.25}}.ob-night{fill:#12162a}.ob-ray-sun{stroke:#ffc93c;stroke-width:2px;opacity:.8}.ob-orbit{fill:none;stroke:#ffffff59;stroke-width:1.5px;stroke-dasharray:4 5}.ob-earth{fill:#2ca6e0;stroke:#8fd3f5;stroke-width:2px}.ob-edge{stroke:var(--oa);stroke-width:3px}.ob-node-g{cursor:pointer}.ob-node{fill:#fff;stroke:var(--line-2);stroke-width:2px;transition:fill .15s,stroke .15s}.ob-node-g:hover .ob-node{stroke:var(--oa)}.ob-node.on{fill:var(--oa);stroke:var(--oa)}.ob-node-t{fill:var(--ink);pointer-events:none;font-size:16px;font-weight:700}.ob-node.on+.ob-node-t{fill:#fff}.ob-beaker{fill:#dcebfa40;stroke:var(--ink-3);stroke-width:3px;stroke-linejoin:round}.ob-liquid-bg{fill:#bfe3f5;opacity:.6}.ob-particle{fill:var(--oa);stroke:#fff;stroke-width:1.5px;transform-box:fill-box;transform-origin:50%}.ob-particles.solid .ob-particle{animation:.18s ease-in-out infinite alternate ob-vib}.ob-particles.liquid .ob-particle{animation:1.6s ease-in-out infinite alternate ob-slide}.ob-particles.gas .ob-particle{animation:1.1s ease-in-out infinite alternate ob-fly}@keyframes ob-vib{to{transform:translate(1.2px,-1px)}}@keyframes ob-slide{33%{transform:translate(7px,-3px)}66%{transform:translate(-6px,2px)}to{transform:translate(4px,3px)}}@keyframes ob-fly{25%{transform:translate(22px,-18px)}50%{transform:translate(-16px,14px)}75%{transform:translate(18px,12px)}to{transform:translate(-20px,-10px)}}.ob-range input{width:100%;accent-color:var(--oa);height:32px}.ob-magnet-g{cursor:pointer}.ob-force path{fill:none;stroke:var(--ink-3);stroke-width:2.5px;stroke-linecap:round;stroke-linejoin:round}.ob-hs{border-radius:var(--r);background:var(--bg-2);width:100%;position:relative;overflow:hidden}.ob-scene{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.ob-spot{border:2px dashed var(--oa);min-width:36px;min-height:36px;color:var(--oa-ink);font:inherit;cursor:pointer;white-space:nowrap;text-overflow:ellipsis;background:#ffffffeb;border-radius:999px;max-width:46%;padding:4px 12px;font-size:14px;font-weight:800;position:absolute;overflow:hidden;transform:translate(-50%,-50%);box-shadow:0 2px 8px #1111141f}.ob-spot.filled{background:var(--oa);color:#fff;border-style:solid}.ob-spot.ready:not(.filled){animation:1s ease-in-out infinite alternate ob-ready}.ob-spot.good{border-color:var(--good);background:var(--good)}.ob-spot.bad{border-color:var(--bad);background:var(--bad)}.ob-spot .ob-key{color:#fff;opacity:.9}@keyframes ob-ready{to{box-shadow:0 0 0 6px color-mix(in srgb, var(--oa) 18%, transparent)}}.ob-compass{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:14px;display:grid}.ob-north{color:var(--bad);background:#ffffffeb;border-radius:999px;padding:2px 8px;font-size:12px;font-weight:800;position:absolute;top:8px;right:10px}.ob-pin-tag{border:1px solid var(--line-2);white-space:nowrap;background:#fff;border-radius:999px;padding:4px 10px;font-size:13px;font-weight:700;position:absolute;transform:translate(-50%,-50%);box-shadow:0 1px 4px #1111141f}.ob-pin-tag.from{background:var(--ink);color:#fff;border-color:var(--ink)}.ob-pin-tag.to{background:var(--oa);color:#fff;border-color:var(--oa)}.ob-rose{grid-template-rows:repeat(3,46px);grid-template-columns:repeat(3,58px);gap:4px;display:grid}.ob-rose-b{border:1px solid var(--line-2);border-radius:var(--r);font:inherit;color:var(--ink-2);cursor:pointer;background:#fff;font-size:14px;font-weight:800}.ob-rose-b.on{background:var(--oa);border-color:var(--oa);color:#fff}.ob-rose-b.good{box-shadow:0 0 0 2px var(--good)}.ob-rose-c{place-items:center;display:grid}.ob-track{counter-reset:s;flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none;display:flex}.ob-step{border:1px solid var(--line-2);border-radius:var(--r);background:#fff;align-items:center;gap:6px;max-width:100%;min-height:46px;padding:4px 6px 4px 4px;display:flex}.ob-step.empty{background:var(--bg-2);border-style:dashed;min-width:92px}.ob-step.good{border-color:var(--good);background:var(--good-soft)}.ob-step.bad{border-color:var(--bad);background:var(--bad-soft)}.ob-step-n{background:var(--oa-soft);width:26px;height:26px;color:var(--oa-ink);border-radius:50%;flex:none;place-items:center;font-size:13px;font-weight:800;display:grid}.ob-step-t{font:inherit;color:var(--ink);cursor:pointer;text-align:left;overflow-wrap:anywhere;background:0 0;border:0;font-size:15px;font-weight:700}.ob-step-mv{display:inline-flex}.ob-step-mv button{width:28px;height:30px;color:var(--ink-3);cursor:pointer;background:0 0;border:0;font-size:18px}.ob-step-mv button:disabled{opacity:.25}.ob-sentence{border-radius:var(--r);background:var(--bg-2);flex-wrap:wrap;align-items:center;gap:6px;min-height:58px;padding:10px;display:flex}.ob-tiles{flex-wrap:wrap;gap:8px;display:flex}.ob-tile{border:1px solid var(--line-2);border-radius:var(--r-s);min-height:42px;font:inherit;color:var(--ink);cursor:pointer;box-shadow:0 2px 0 var(--line-2);transition:transform .12s var(--ease);background:#fff;padding:6px 14px;font-size:16px;font-weight:700}.ob-tile:hover:not(:disabled){transform:translateY(-2px)}.ob-tile.placed{background:var(--oa);border-color:var(--oa);color:#fff;box-shadow:0 2px 0 var(--oa-ink)}.obj .ob-passage{border-radius:var(--r);background:var(--bg);border:1px solid var(--line);max-width:70ch;margin:0;padding:14px 16px;font-size:17px;line-height:2}.ob-unit{cursor:pointer;-webkit-box-decoration-break:clone;box-decoration-break:clone;border-radius:4px;padding:2px 1px;transition:background .15s}.ob-unit:hover{background:var(--bg-2)}.ob-unit.on{background:color-mix(in srgb, var(--oa) 22%, #fff);box-shadow:inset 0 -2px 0 var(--oa)}.ob-unit.key{outline:2px dashed var(--good);outline-offset:1px}.ob-unit:focus-visible{outline:2px solid var(--oa)}.ob-bins{gap:10px;display:grid}.ob-bin{border:1px solid var(--line-2);border-radius:var(--r-l);background:var(--bg);flex-direction:column;min-width:0;min-height:150px;transition:border-color .15s,background .15s;display:flex}.ob-bin.ready{border-color:var(--oa);background:var(--oa-soft);cursor:pointer}.ob-bin-h{border-bottom:1px solid var(--line);overflow-wrap:anywhere;padding:10px 12px;font-size:15px;font-weight:800}.ob-bin-body{flex-wrap:wrap;flex:1;align-content:flex-start;gap:6px;padding:10px;display:flex}.ob-match{grid-template-columns:minmax(0,1fr) minmax(40px,.5fr) minmax(0,1fr);display:grid;position:relative}.ob-match-svg{pointer-events:none;width:100%;height:100%;position:absolute;inset:0;overflow:visible}.ob-mline{stroke:var(--oa);stroke-width:3px;stroke-linecap:round}.ob-mline.good{stroke:var(--good)}.ob-mline.bad{stroke:var(--bad)}.ob-m-col{flex-direction:column;gap:8px;min-width:0;display:flex}.ob-m-l,.ob-m-r{border:1px solid var(--line-2);border-radius:var(--r);min-height:46px;font:inherit;color:var(--ink);cursor:pointer;overflow-wrap:anywhere;text-align:left;background:#fff;align-items:center;gap:8px;padding:8px 14px;font-size:15px;font-weight:700;display:flex;position:relative}.ob-m-l{justify-content:space-between}.ob-m-l.on{border-color:var(--oa);box-shadow:0 0 0 2px var(--oa)}.ob-m-l.done,.ob-m-r.done{background:var(--oa-soft)}.ob-m-r.ready:not(.done){border-color:var(--oa)}.ob-m-dot{background:var(--oa);border-radius:50%;flex:none;width:10px;height:10px}.ob-pop{animation:ob-pop .28s var(--spring);transform-box:fill-box;transform-origin:50%}@keyframes ob-pop{0%{opacity:0;transform:scale(.6)}}@media (width<=560px){.obj{padding:10px}.ob-chance,.ob-compass{grid-template-columns:minmax(0,1fr);justify-items:center}.ob-tally{width:100%}.ob-bins{grid-template-columns:minmax(0,1fr)!important}.ob-pv-d{font-size:26px}}@media (prefers-reduced-motion:reduce){.ob-pop,.ob-particle,.ob-glow,.ob-wire.live,.ob-spot.ready,.ob-die.rolling svg{animation:none!important}.ob-beam-g,.ob-bar-r,.ob-liquid{transition:none}}.ob-picker{flex-direction:column;gap:16px;display:flex}.ob-picker h4{color:var(--ink-3);letter-spacing:.02em;margin:0 0 8px;font-size:13px;font-weight:800}.ob-picker-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:8px;display:grid}.ob-pick{border:1px solid var(--line);border-radius:var(--r-l);min-height:58px;color:var(--ink);font:inherit;text-align:left;cursor:pointer;transition:border-color .15s, transform .15s var(--ease);background:#fff;align-items:center;gap:10px;padding:8px 12px;display:flex}.ob-pick:hover{border-color:var(--ink-4);transform:translateY(-1px)}.ob-pick.on{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent)}.ob-pick.dim{opacity:.55}.ob-pick-i{background:var(--accent-soft);width:36px;height:36px;color:var(--accent-ink);border-radius:10px;flex:none;place-items:center;display:grid}.ob-pick-t{flex-direction:column;min-width:0;line-height:1.3;display:flex}.ob-pick-t b{font-size:14px}.ob-pick-t small{color:var(--ink-3);overflow-wrap:anywhere;font-size:12px}.ob-editor{flex-direction:column;gap:14px;min-width:0;display:flex}.ob-editor-h{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.ob-editor-h b{font-size:16px}.ob-editor-h span{color:var(--ink-3);font-size:13px}.ob-fields{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px;display:grid}.ob-f{flex-direction:column;gap:6px;min-width:0;display:flex}.ob-f.wide{grid-column:1/-1}.ob-f-l{color:var(--ink-3);font-size:12px;font-weight:700}.ob-f-check{flex-direction:row;align-items:center;gap:8px;min-height:40px;font-size:14px;font-weight:600}.ob-f-check input{width:18px;height:18px;accent-color:var(--accent)}.ob-in{border:1px solid var(--line-2);border-radius:var(--r);width:100%;min-height:40px;font:inherit;color:var(--ink);background:#fff;padding:8px 10px;font-size:14px}textarea.ob-in{resize:vertical;line-height:1.6}.ob-in:focus{outline:2px solid var(--accent);outline-offset:-1px;border-color:#0000}.ob-seg{border-radius:var(--r);background:var(--bg-2);flex-wrap:wrap;gap:4px;padding:3px;display:inline-flex}.ob-seg button{border-radius:calc(var(--r) - 2px);min-height:34px;font:inherit;color:var(--ink-3);cursor:pointer;background:0 0;border:0;padding:0 12px;font-size:13px;font-weight:700}.ob-seg button.on{color:var(--ink);background:#fff;box-shadow:0 1px 2px #1111141a}.ob-given{gap:2px;width:max-content;max-width:100%;display:grid;overflow-x:auto}.ob-given button{border:1px solid var(--line-2);cursor:pointer;background:#fff;width:22px;height:22px;padding:0}.ob-given button.on{background:var(--ink-2)}.ob-given button:disabled{background:var(--bg-2);cursor:default}.ob-keybox{border-radius:var(--r-l);background:var(--bg-2);flex-direction:column;gap:10px;padding:12px;display:flex}.ob-keybox-h{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.ob-keybox-h span{color:var(--ink-3);font-size:13px}.og-filters{flex-wrap:wrap;gap:10px;margin-bottom:18px;display:flex}.og-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,460px),1fr));align-items:start;gap:16px;display:grid}.og-card{--oa:var(--accent);--oa-ink:var(--accent-ink);--oa-soft:var(--accent-soft);border:1px solid var(--line);border-radius:var(--r-xl);background:var(--bg);min-width:0;box-shadow:var(--shadow);flex-direction:column;gap:12px;padding:16px;display:flex}.og-h{align-items:center;gap:10px;display:flex}.og-i{background:var(--accent-soft);width:36px;height:36px;color:var(--accent-ink);border-radius:10px;flex:none;place-items:center;display:grid}.og-t{flex-direction:column;flex:1;min-width:0;line-height:1.3;display:flex}.og-t b{font-size:16px}.og-t small{color:var(--ink-3);font-size:12px}.og-q{margin:0;font-size:15px;font-weight:600;line-height:1.5}.og-f{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.og-f .ob-btn,.og-h .ob-btn{align-items:center;gap:6px;display:inline-flex}.og-res{background:var(--bad-soft);color:var(--bad);border-radius:999px;padding:4px 12px;font-size:14px;font-weight:800}.og-res.ok{background:var(--good-soft);color:var(--good)}@container (width<=460px){.obj[data-kind=numberline] .ob-lbl,.obj[data-kind=ruler] .ob-lbl{font-size:24px}.obj[data-kind=numberline] .ob-bubble-t{font-size:20px}.obj[data-kind=coord] .ob-lbl.tiny,.obj[data-kind=bargraph] .ob-lbl.tiny{font-size:16px}.obj[data-kind=bargraph] .ob-lbl.small{font-size:18px}.obj[data-kind=foodweb] .ob-node-t,.obj[data-kind=circuit] .ob-lbl.small,.obj[data-kind=moon] .ob-lbl.small{font-size:20px}.obj[data-kind=protractor] .ob-lbl.tiny{display:none}.ob-tray{padding:6px}.ob-tray-h{flex-direction:column;font-size:12px}.ob-bar{gap:6px}.ob-btn{padding:0 11px}}
