.abacus{touch-action:none;width:100%;height:100%;max-height:100%;display:block}.abacus__frame{fill:url(#abacus-wood-frame) var(--frame)}.abacus__frame-base{fill:var(--frame)}.abacus__bead-base{fill:var(--bead)}.abacus__well{fill:var(--frame-shadow)}.abacus__post{fill:var(--bead)}.abacus__bar{fill:url(#abacus-wood-frame) var(--frame);stroke:var(--frame-shadow);stroke-width:1px}.abacus__bead{transition:transform .13s ease-out}.abacus__bead-shape{fill:url(#abacus-wood-bead) var(--bead);stroke:var(--frame-shadow);stroke-width:1.5px}.abacus__bead:focus{outline:none}.abacus__bead:focus-visible .abacus__bead-shape{stroke:var(--indigo);stroke-width:3px}.abacus__hint{fill:none;stroke:var(--indigo);stroke-width:3px;stroke-dasharray:7 5}.abacus__readout{fill:var(--brown);font-family:var(--font);text-anchor:middle;font-size:26px;font-weight:600}.abacus__bead--springback .abacus__bead-shape{animation:.22s ease-out abacus-springback}@keyframes abacus-springback{0%{transform:translateY(0)}40%{transform:translateY(4px)}to{transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.abacus__bead{transition:none}.abacus__bead--springback .abacus__bead-shape{animation:none}}.practice-layout{grid-template-columns:var(--rail-width) 1fr;gap:1.5rem;height:100dvh;padding:1.25rem;display:grid}.practice-layout__rail{flex-direction:column;align-items:flex-start;gap:1rem;min-height:0;display:flex;overflow-y:auto}.practice-layout__back{border:1px solid var(--wheat);border-radius:var(--radius);background:var(--cream);padding:.35rem .6rem;font-size:.85rem}.practice-layout__title{margin:0;font-size:1.4rem}.practice-layout__prompt{font-variant-numeric:tabular-nums;font-size:2.5rem;line-height:1.2}.practice-layout__caption{min-height:4.5rem;font-size:1.05rem}.practice-layout__controls{flex-wrap:wrap;gap:.6rem;margin-top:auto;display:flex}.practice-layout__controls button{border:1px solid var(--wheat);border-radius:var(--radius);background:var(--cream);padding:.7rem 1.1rem}.practice-layout__controls button:hover:not(:disabled){border-color:var(--terracotta)}.practice-layout__guide{align-self:center;width:min(10rem,60%)}.practice-layout__guide img{width:100%;height:auto;display:block}.practice-layout__stage{justify-content:center;align-items:center;min-width:0;min-height:0;display:flex}.lesson__intro{margin:0;font-size:1.05rem}@media (width<=60rem){.practice-layout{grid-template-columns:1fr;grid-template-rows:auto minmax(var(--stage-min-height), 1fr)}.practice-layout__prompt{font-size:2rem}.practice-layout__controls{margin-top:0}.practice-layout__guide{display:none}}.map{border-radius:var(--radius);background-image:-webkit-image-set(url(/assets/map-background-DqgpOmpv.avif) 1x type("image/avif"),url(/assets/map-background-GreQhQIz.webp) 1x type("image/webp"));background-image:image-set("/assets/map-background-DqgpOmpv.avif" 1x type("image/avif"),"/assets/map-background-GreQhQIz.webp" 1x type("image/webp"));background-position:top;background-size:cover;max-width:52rem;margin:0 auto;padding:2rem 1.25rem 4rem}.map__header{border-radius:var(--radius);background:color-mix(in srgb, var(--cream) 82%, transparent);padding:.5rem 1rem;display:inline-block}.map__header h1{margin:0;font-size:2.25rem}.map__tagline{color:var(--frame);margin:.25rem 0 1.5rem}.map__notice{border-left:4px solid var(--terracotta);border-radius:var(--radius);background:var(--cream);margin:0 0 1.5rem;padding:.75rem 1rem}.map__setting{border:1px solid var(--wheat);border-radius:var(--radius);background:color-mix(in srgb, var(--cream) 70%, transparent);margin:0 0 2rem;padding:.75rem 1rem 1rem}.map__choice{align-items:center;gap:.4rem;margin-right:1.25rem;display:inline-flex}.map__stage-title{border-radius:var(--radius);background:color-mix(in srgb, var(--cream) 82%, transparent);letter-spacing:.04em;text-transform:uppercase;color:var(--frame);margin:1.75rem 0 .5rem;padding:.3rem .75rem;font-size:1.05rem;display:inline-block}.map__lessons{grid-template-columns:repeat(auto-fill,minmax(15rem,1fr));gap:.6rem;margin:0;padding:0;list-style:none;display:grid}.map__button{border:1px solid var(--wheat);border-radius:var(--radius);background:var(--cream);text-align:left;justify-content:space-between;align-items:center;gap:.75rem;width:100%;padding:.9rem 1rem;display:flex}.map__button:hover:not([aria-disabled=true]){border-color:var(--terracotta)}.map__button[aria-disabled=true]{opacity:.45}.map__button--done{border-color:var(--sage)}.map__score{background:var(--sage);color:var(--cream);font-variant-numeric:tabular-nums;border-radius:999px;flex:none;padding:.15rem .5rem;font-size:.8rem}.practice__feedback{border-left:4px solid var(--terracotta);border-radius:var(--radius);background:var(--cream);margin:.5rem 0 0;padding:.6rem .8rem}.practice__feedback--method{border-left-color:var(--indigo)}.practice__feedback p{margin:0}.practice__feedback p+p{margin-top:.35rem;font-weight:600}.practice__dots{gap:.4rem;width:100%;margin:0 0 .5rem;padding:0;list-style:none;display:flex}.practice__dot{border:1px solid var(--wheat);border-radius:50%;width:.85rem;height:.85rem}.practice__dot--right{border-color:var(--sage);background:var(--sage)}.practice__dot--wrong{border-color:var(--terracotta);background:0 0}.practice__reading{flex-wrap:wrap;align-items:center;gap:.5rem;width:100%;display:flex}.practice__reading input{border:1px solid var(--wheat);border-radius:var(--radius);width:6rem;font:inherit;padding:.6rem}:root{--cream:#f6e7cf;--wheat:#ebd3ae;--parchment:#e1c298;--terracotta:#d2793a;--sage:#7a9e6b;--brown:#4a4038;--frame:#6c453b;--frame-shadow:#4e322a;--bead:#af7b64;--indigo:#2c4060;--rail-width:20rem;--stage-min-height:40vh;--radius:.75rem;--font:ui-rounded, "SF Pro Rounded", "Segoe UI", system-ui, sans-serif}*{box-sizing:border-box}body{background-color:var(--parchment);color:var(--brown);font-family:var(--font);background-image:-webkit-image-set(url(/assets/page-parchment-BEGr4FCe.avif) 1x type("image/avif"),url(/assets/page-parchment-DbxlO_ne.webp) 1x type("image/webp"));background-image:image-set("/assets/page-parchment-BEGr4FCe.avif" 1x type("image/avif"),"/assets/page-parchment-DbxlO_ne.webp" 1x type("image/webp"));margin:0;line-height:1.5}button{font:inherit;color:inherit;cursor:pointer}button:disabled{cursor:default}:focus-visible{outline:3px solid var(--indigo);outline-offset:2px}.sr-only{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}
