:root[data-theme=dark]{--paper:#14161d;--paper-2:#1f222c;--card:#1a1d26;--ink:#eeeae3;--muted:#9b98a3;--line:#2c303c;--accent:#f0625a;--accent-strong:#ff7b73;--accent-soft:#f0625a29;--indigo:#9aa8ff;--indigo-soft:#9aa8ff24;--ok:#3cc58b;--ok-soft:#3cc58b29;--accent-fill:#c53a31;--accent-fill-strong:#a92e26;--ok-fill:#127a51;--bad:#ff6b6b;--bad-soft:#ff6b6b26;--shadow:0 1px 2px #0000004d, 0 8px 24px #00000040;--shadow-lg:0 2px 6px #00000059, 0 24px 48px #00000073;--focus:#9aa8ff;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}body.game-page{--tabbar-height:0px;background:radial-gradient(1200px 600px at 100% -10%, var(--accent-soft), transparent 60%), radial-gradient(900px 500px at -10% 110%, var(--indigo-soft), transparent 60%), var(--paper);color:var(--ink);padding-bottom:calc(var(--tabbar-height) + env(safe-area-inset-bottom));background-attachment:fixed;flex-direction:column;align-items:center;display:flex}.game{width:100%;max-width:1320px;padding:4px 20px 0}.card{border:1px solid var(--line);border-radius:var(--radius);background:var(--card);box-shadow:var(--shadow)}.modes{border:1px solid var(--line);background:var(--paper-2);border-radius:16px;flex:none;gap:4px;padding:4px;display:flex}.mode-tab{color:var(--muted);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:12px;align-items:center;gap:8px;padding:8px 16px;font-size:.98rem;font-weight:650;transition:background .2s,color .2s,box-shadow .2s;display:inline-flex}.mode-icon{flex:none;width:20px;height:20px}.mode-tab:hover{color:var(--ink)}.mode-tab.active{background:var(--card);color:var(--accent);box-shadow:var(--shadow)}@media (width>=700px),(orientation:landscape){.site-header .modes{margin-inline:auto}.site-header:has(.modes) .site-title{flex:0 auto}}@media (width<=699px) and (orientation:portrait){body.game-page{--tabbar-height:68px}.modes{z-index:60;padding:6px 8px calc(6px + env(safe-area-inset-bottom));border:0;border-top:1px solid var(--line);background:color-mix(in srgb, var(--card) 88%, transparent);-webkit-backdrop-filter:saturate(1.6)blur(16px);border-radius:0;gap:0;position:fixed;inset:auto 0 0}.site-header .modes{margin:0}.mode-tab{flex-direction:column;flex:1 1 0;gap:3px;min-height:56px;padding:4px;font-size:.75rem;font-weight:650}.mode-icon{border-radius:999px;width:46px;height:28px;padding:3px 12px;transition:background .2s}.mode-tab.active{box-shadow:none;background:0 0}.mode-tab.active .mode-icon{background:var(--accent-soft)}}.layout{grid-template-columns:minmax(0,1fr);align-items:start;gap:14px;max-width:760px;margin-inline:auto;display:grid}@media (width>=1000px),(orientation:landscape) and (width>=600px){.layout{grid-template-columns:minmax(0,1fr) minmax(300px,380px);grid-auto-flow:dense;gap:20px;max-width:none}.board{grid-area:1/1/span 5;width:100%;min-width:min(100%,420px);max-width:calc(166.67dvh - 250.005px);margin-inline:auto}.layout>:not(.board){grid-column:2}}.display{flex-direction:column;gap:4px;padding:16px 18px;display:flex}.question-row{align-items:flex-start;gap:10px;display:flex}.question-row:not(:has(>:not([hidden]))){display:none}.question{letter-spacing:-.02em;font-variant-numeric:tabular-nums;overflow-wrap:break-word;cursor:default;flex:auto;min-width:0;font-size:clamp(1.5rem,6.4vw,2.2rem);font-weight:800;line-height:1.15}.pill-button{border:1px solid var(--line);background:var(--card);color:var(--muted);font:inherit;cursor:pointer;border-radius:999px;flex:none;align-items:center;gap:6px;margin-left:auto;padding:7px 12px;font-size:.82rem;font-weight:650;transition:color .2s,background .2s;display:inline-flex}.pill-button svg{width:16px;height:16px}.pill-button:hover{background:var(--paper-2);color:var(--ink)}.value-row{grid-template-columns:44px minmax(0,1fr) 44px;align-items:center;gap:8px;display:grid}.value-row:not(:has(>:not([hidden]))){display:none}.value-row .number-display{grid-column:2}.value-row .icon-button{grid-column:3}.number-display{letter-spacing:-.03em;text-align:center;color:var(--ink);font-variant-numeric:tabular-nums;font-size:clamp(2.6rem,11vw,4.2rem);font-weight:800;line-height:1.05}.display:not([data-mode=free]){grid-template-columns:minmax(0,1fr) auto auto;align-items:start;gap:6px 8px;display:grid}.display:not([data-mode=free]) :is(.question-row,.value-row){display:contents}.display:not([data-mode=free]) .question{grid-area:1/1/auto/-1}.display:not([data-mode=free]) .pill-button{grid-area:2/2;align-self:center;min-height:36px}.display:not([data-mode=free]) #btnReset{grid-area:2/3}.display:not([data-mode=free]) .number-display{grid-area:2/1;place-self:center start}.display:not([data-mode=free])>:is(#numberInput,.custom-editor,.stats){grid-column:1/-1}.display:not([data-mode=free]) .icon-button{width:40px;height:40px;box-shadow:none}.display:not([data-mode=free]) .number-display{background:var(--paper-2);color:var(--muted);letter-spacing:0;border-radius:999px;align-items:center;gap:8px;padding:4px 12px 4px 8px;font-size:1.05rem;font-weight:700;display:inline-flex}.display:not([data-mode=free]) .number-display:before{content:"";clip-path:polygon(0 50%,28% 0,72% 0,100% 50%,72% 100%,28% 100%);background:currentColor;width:18px;height:12px}.display[data-verdict=correct] .number-display{background:var(--ok-soft);color:color-mix(in srgb, var(--ok) 78%, var(--ink))}.display[data-verdict=wrong] .number-display{background:var(--bad-soft);color:color-mix(in srgb, var(--bad) 78%, var(--ink))}#numberInput{border:2px solid var(--line);border-radius:var(--radius-sm);background:var(--paper);width:100%;color:var(--ink);font:inherit;text-align:center;font-variant-numeric:tabular-nums;margin:8px 0 2px;padding:12px 14px;font-size:1.8rem;font-weight:800;transition:border-color .2s,box-shadow .2s}#numberInput::placeholder{color:var(--muted);opacity:.7;font-weight:600}#numberInput:focus{border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-soft);outline:none}.stats{border-top:1px solid var(--line);grid-template-columns:repeat(3,1fr);margin:12px -18px -16px;display:grid}.stat{white-space:nowrap;justify-content:center;align-items:baseline;gap:5px;min-width:0;padding:10px 4px;display:flex}.stat+.stat{border-left:1px solid var(--line)}.stat-icon{color:var(--ok);font-size:.85rem}.stat--best .stat-icon{color:#e0a100}.stat-value{font-variant-numeric:tabular-nums;font-size:1.1rem;font-weight:800}.stat-label{text-overflow:ellipsis;color:var(--muted);font-size:.75rem;font-weight:600;overflow:hidden}.abacus-container{background:linear-gradient(#ffffff24,#0000001f),repeating-linear-gradient(100deg,#0000 0 14px,#0000000d 14px 16px,#0000 16px 31px),#5b3519;border-radius:22px;padding:clamp(8px,1.8vw,16px);position:relative;box-shadow:inset 0 1px #ffffff40,inset 0 -2px #0000004d,0 2px 4px #28140533,0 22px 44px -12px #28140573}.abacus-container.simple-style{background:linear-gradient(#ffffff4d,#0000000f),#d9b07a;box-shadow:inset 0 1px #ffffff80,0 2px 4px #50320a26,0 22px 44px -12px #50320a59}.abacus-container.locked canvas{cursor:not-allowed}#abacusCanvas{aspect-ratio:5/3;touch-action:none;cursor:grab;-webkit-user-select:none;user-select:none;border-radius:10px;width:100%;display:block;box-shadow:inset 0 0 0 1px #0003}#abacusCanvas:active{cursor:grabbing}.digit-strip{font-variant-numeric:tabular-nums;text-align:center;color:#f6e3c4;grid-template-columns:repeat(7,1fr);margin:0 2%;padding-top:8px;font-size:clamp(.95rem,2.6vw,1.3rem);font-weight:800;display:grid}.digit-strip .zero{opacity:.35}.simple-style .digit-strip{color:#5c3d14}.board-bar{align-items:center;gap:12px;margin-top:10px;padding-inline:4px;display:flex}.hint{color:var(--muted);flex:auto;margin:0;font-size:.9rem}.icon-button{border:1px solid var(--line);background:var(--card);width:44px;height:44px;color:var(--ink);cursor:pointer;box-shadow:var(--shadow);transition:background .2s, transform .3s var(--ease);border-radius:14px;flex:none;place-items:center;margin-left:auto;padding:0;display:grid}.icon-button svg{width:20px;height:20px}.icon-button:hover{background:var(--paper-2)}.icon-button:active svg{transition:transform .25s var(--ease);transform:rotate(-120deg)}.icon-button:disabled{opacity:.4;cursor:not-allowed}.game-panel{flex-direction:column;gap:12px;padding:14px;display:none}.game-panel.active{display:flex}.segmented{background:var(--paper-2);border-radius:14px;gap:4px;padding:4px;display:flex}.segment{min-width:0;min-height:40px;color:var(--muted);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:10px;flex:1 1 0;justify-content:center;align-items:center;gap:6px;padding:6px;font-size:.88rem;font-weight:650;line-height:1.15;transition:background .2s,color .2s,box-shadow .2s;display:inline-flex}.segment:hover{color:var(--ink)}.segment.active{background:var(--card);color:var(--ink);box-shadow:0 1px 2px #00000014,0 2px 8px #0000000f}.op-symbol{font-size:1.25rem;font-weight:800;line-height:1}.op-btn.active .op-symbol{color:var(--accent)}.diff-btn{flex-direction:column;gap:4px;min-height:48px}.level{align-items:flex-end;gap:2px;height:10px;display:inline-flex}.level i{opacity:.55;background:currentColor;border-radius:2px;width:4px}.level i:first-child{height:4px}.level i:nth-child(2){height:6px}.level i:nth-child(3){height:8px}.level i:nth-child(4){height:10px}.diff-btn.active .level i{background:var(--accent);opacity:1}.actions{gap:8px;display:flex}.actions .btn{border-radius:14px;min-height:52px}.actions .btn-primary,.actions .btn-next{flex:auto;width:100%;font-size:1.05rem}.btn-next{background:var(--ok-fill);border-color:var(--ok-fill);color:#fff;box-shadow:0 6px 16px -6px color-mix(in srgb, var(--ok-fill) 70%, transparent);font-weight:700}.btn-next:hover{background:color-mix(in srgb, var(--ok-fill) 85%, #000);border-color:#0000}.result{border-radius:14px;align-items:center;gap:10px;padding:12px 14px;font-size:1.02rem;font-weight:700;line-height:1.3;display:flex}.result:before{color:#fff;border-radius:50%;flex:none;place-items:center;width:28px;height:28px;font-size:.95rem;display:grid}.result.correct{background:var(--ok-soft);color:color-mix(in srgb, var(--ok) 78%, var(--ink));animation:pop .45s var(--ease)}.result.correct:before{content:"✓";background:var(--ok)}.result.incorrect{background:var(--bad-soft);color:color-mix(in srgb, var(--bad) 78%, var(--ink));animation:.4s ease-out shake}.result.incorrect:before{content:"✕";background:var(--bad)}.custom-editor{margin-top:8px}.custom-form{gap:6px;display:flex}#manualInput{border:2px solid var(--accent);border-radius:var(--radius-sm);background:var(--paper);min-width:0;color:var(--ink);font:inherit;text-align:center;flex:auto;padding:10px 12px;font-size:1.3rem;font-weight:700}#manualInput:focus{box-shadow:0 0 0 4px var(--accent-soft);outline:none}.form-error{color:var(--bad);margin:8px 0 0;font-size:.9rem;font-weight:600}.intro{padding:18px;font-size:.93rem;line-height:1.55}.intro h2{letter-spacing:-.01em;margin:0 0 10px;font-size:1.1rem}.intro p{color:var(--muted);margin:0 0 8px}.intro p:last-child{margin-bottom:0}.intro-legend{gap:8px;margin-bottom:12px;display:flex}.legend-item{background:var(--paper-2);font-variant-numeric:tabular-nums;border-radius:999px;align-items:center;gap:8px;padding:6px 12px;font-weight:800;display:inline-flex}.bead{clip-path:polygon(0 50%,26% 0,74% 0,100% 50%,74% 100%,26% 100%);width:26px;height:14px}.bead--upper{background:linear-gradient(#ef5a5f,#b81c34)}.bead--lower{background:linear-gradient(#5b5f6b,#121318)}.promo{border-radius:var(--radius);color:#fff;box-shadow:var(--shadow);transition:transform .2s var(--ease);background:radial-gradient(400px 160px at 100% 0,#ffffff29,#0000 70%),linear-gradient(120deg,#1f2330,#2f3d8f);align-items:center;gap:14px;padding:16px 18px;text-decoration:none;display:flex}.promo:hover{transform:translateY(-2px)}.promo-icon{background:#ffffff24;border-radius:12px;flex:none;place-items:center;width:44px;height:44px;display:grid}.promo-icon svg{width:24px;height:24px}.promo-text{flex-direction:column;gap:2px;display:flex}.promo-text small{opacity:.8;font-size:.86rem}body.keyboard-open{padding-bottom:360px}.keyboard{z-index:1000;padding:10px 12px calc(12px + env(safe-area-inset-bottom));background:var(--card);color:var(--ink);animation:sheet-in .22s var(--ease);border-radius:24px 24px 0 0;position:fixed;inset:auto 0 0;box-shadow:0 -10px 40px #0003}.keyboard:before{content:"";background:var(--line);border-radius:2px;width:40px;height:4px;margin:0 auto 10px;display:block}@keyframes sheet-in{0%{transform:translateY(100%)}}.keyboard-display{border-radius:var(--radius-sm);background:var(--paper-2);text-align:center;font-variant-numeric:tabular-nums;max-width:420px;min-height:54px;margin:0 auto 10px;padding:12px;font-size:1.5rem;font-weight:800}.keyboard-grid{grid-template-columns:repeat(4,1fr);gap:8px;max-width:420px;margin:0 auto;display:grid}.key{background:var(--paper-2);min-height:52px;color:var(--ink);font:inherit;cursor:pointer;border:0;border-radius:14px;padding:10px;font-size:1.35rem;font-weight:700;transition:transform .1s}.key:active{transform:scale(.94)}.key:disabled{opacity:.3}.key-wide{grid-column:span 2}.key-operator{background:var(--indigo-soft);color:var(--indigo)}.key-danger{background:var(--bad-soft);color:var(--bad)}.key-done{background:var(--accent-fill);color:#fff;grid-column:span 4;font-size:1.1rem}@media (width<=699px){.site-header{padding:10px 14px}.game{padding-inline:12px}.layout{gap:12px}.display{padding:14px 16px}.stats{margin-inline:-16px;margin-bottom:-14px}.game-panel{gap:10px;padding:12px}.hint{font-size:.85rem}}@media (width<=699px) and (height<=760px) and (orientation:portrait){body.game-page{--tabbar-height:60px}.site-header{padding-block:6px}.brand-mark{width:32px;height:32px}.menu-button{width:40px;height:40px}.layout{gap:8px}.display{gap:2px;padding:10px 14px}.question{font-size:1.45rem}.pill-button,.display:not([data-mode=free]) .icon-button{width:36px;height:36px}.stats{margin:8px -14px -10px}.stat{padding-block:6px}.game-panel{gap:8px;padding:8px}.segment{min-height:36px}.diff-btn{min-height:42px}.actions .btn{min-height:46px}.mode-tab{min-height:48px}.mode-icon{height:24px}#representQuestion{font-size:1.2rem}}@media (width<=699px) and (height<=680px) and (orientation:portrait){.site-header{padding-block:4px}.display{padding-block:8px}.stats{margin-top:4px}.diff-btn{min-height:40px}.actions .btn{min-height:44px}}@media (orientation:landscape) and (height<=500px){.site-header{padding-block:6px}.site-title{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.game{padding-inline:16px}.layout{gap:10px 16px}.board{max-width:calc(166.67dvh - 116.669px)}.display{padding:8px 14px}.question{font-size:1.5rem}#representQuestion{font-size:1.15rem}.stats{margin:6px -14px -8px}.stat{padding-block:4px}.game-panel{gap:6px;padding:8px}.segment,.diff-btn{min-height:34px}.diff-btn .level{display:none}.actions .btn{min-height:42px}}@media (width<=479px){.op-btn .op-symbol+span{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.op-symbol{font-size:1.45rem}.segment{font-size:.8rem}.pill-button span{display:none}.pill-button{padding:9px}}@keyframes pop{0%{opacity:0;transform:scale(.9)}60%{transform:scale(1.02)}}@keyframes shake{20%,60%{transform:translate(-6px)}40%,80%{transform:translate(6px)}}
