@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+SC:wght@400;500;600;700;800&display=swap');
:root{--ink:#233d35;--green:#28785e;--muted:#7a8981;--line:#e4e9e2;--orange:#d98a42}*{box-sizing:border-box}body{margin:0;background:#f7f8f2;color:var(--ink);font-family:'Noto Sans SC',sans-serif}button,input,select{font:inherit}button{cursor:pointer;transition:.2s}button:hover{filter:brightness(.96);transform:translateY(-1px)}button:disabled{opacity:.35;cursor:default;transform:none}header{height:88px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 6%}.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--ink);font-weight:800;font-size:20px}.logo{background:var(--green);color:white;border-radius:12px;padding:8px;font-size:21px}.tag{font-size:12px;color:var(--muted);letter-spacing:2px}main{max-width:1180px;margin:auto;padding:42px 26px 0}.eyebrow,.section-label{font-size:11px;letter-spacing:2px;color:var(--muted)}.intro h1{font-size:43px;letter-spacing:-2px;margin:10px 0}.intro em{font-style:normal;color:var(--green)}.intro p{color:var(--muted);font-size:14px;margin:12px 0 30px}.workspace{display:grid;grid-template-columns:305px 1fr;gap:24px}.settings,.stage{border:1px solid var(--line);border-radius:20px;background:#fff}.settings{padding:26px;height:fit-content}h2{font-size:21px;margin:12px 0 24px}.tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));background:#f1f4ef;padding:5px;border-radius:11px;gap:5px}.tabs button{width:100%;border:0;background:transparent;border-radius:8px;padding:11px;color:var(--muted)}.tabs .selected{background:var(--green);color:#fff;box-shadow:0 3px 5px #1232}.inputs{display:flex;gap:10px;align-items:end;margin-top:25px}.inputs label{flex:1;min-width:0}.inputs label span{display:block;font-size:12px;margin-bottom:9px;color:var(--muted)}.inputs input{width:100%;height:53px;border:1px solid #dae2da;border-radius:9px;text-align:center;font-size:24px;color:var(--ink);background:#fcfdfb}.inputs b{padding-bottom:15px;color:var(--muted)}.validation{font-size:11px;min-height:16px;color:#bc5555;margin:7px 0}.primary{background:var(--green);color:#fff;width:100%;padding:13px;border:0;border-radius:10px;font-size:13px}.primary span{float:right}.examples{display:flex;flex-wrap:wrap;gap:7px;margin-top:22px}.examples>span{width:100%;font-size:11px;color:var(--muted);margin-bottom:3px}.examples button{font-size:11px;border:1px solid var(--line);background:#fff;border-radius:6px;padding:5px 8px;color:#667b70}.tip{margin-top:29px;border-top:1px solid var(--line);padding-top:22px}.tip span{font-size:12px;color:var(--green);font-weight:600}.tip p{font-size:12px;line-height:1.9;color:var(--muted);margin-bottom:0}.stage{overflow:hidden}.stage-head{display:flex;justify-content:space-between;padding:22px 26px}.grid-label{font-size:11px;color:var(--muted);display:flex;gap:5px;align-items:center;accent-color:var(--green)}.canvas{min-height:355px;display:flex;align-items:center;justify-content:center;background:#fdfefb;padding:22px}.paper{position:relative;display:grid;--column-width:48px;grid-template-columns:repeat(var(--cols),var(--column-width));--row-height:47px;grid-template-rows:repeat(var(--rows),var(--row-height));font:36px/1.3 ui-monospace,SFMono-Regular,Consolas,monospace;text-align:center;padding-top:25px;isolation:isolate}.paper.guides{background-image:linear-gradient(90deg,transparent calc(100% - 1px),#e7ede6 calc(100% - 1px));background-size:var(--column-width) 100%}.cell{position:relative;display:flex;align-items:center;justify-content:center}.paper.with-place-labels{padding-top:0;grid-template-rows:25px repeat(var(--rows),var(--row-height))}.headcell{font:10px 'Noto Sans SC',sans-serif;color:#9eafa1;place-self:center}.fade-in{animation:fade-in .4s ease-out both}.carry{font-size:14px;color:var(--orange);position:absolute;top:-8px;right:4px}.rule{border-top:2px solid #436052;height:1px;align-self:center}.tens-digit{color:var(--green)}.zero{color:#b5c8b3;font-size:27px}.division-top{border-top:2px solid var(--ink)}.division-left{border-left:2px solid var(--ink);border-top-left-radius:8px}.explanation{display:flex;gap:15px;background:#eff5ec;margin:6px 24px 0;border-radius:12px;padding:17px 19px;min-height:99px}.explanation>span{font-size:11px;color:var(--green);background:#fff;height:27px;min-width:42px;text-align:center;padding:5px;border-radius:6px}.explanation h3{font-size:15px;margin:0 0 6px}.explanation p{font-size:clamp(18px,2vw,22px);line-height:1.55;color:#324e40;margin:0}.controls{display:flex;align-items:center;gap:9px;padding:23px 24px}.controls button,.controls select{border:1px solid var(--line);background:white;border-radius:8px;padding:10px 13px;color:var(--ink);font-size:12px}.controls .play{background:var(--green);color:white;border-color:var(--green)}.controls select{margin-left:auto;max-width:110px}.progress{height:3px;background:#edf1e9;display:flex;gap:3px}.progress i{flex:1;background:#e4eade}.progress i.on{background:#73a589}.lesson{display:flex;justify-content:space-between;align-items:center;gap:35px;margin:32px 0 42px;padding:30px 34px;border:1px solid var(--line);border-radius:17px;background:#f1f3e9}.lesson h2{margin:10px 0 14px;font-size:19px}.lesson p{font-size:13px;color:#7a8777;line-height:1.9;margin:0}.comparison{display:flex;gap:38px}.comparison>div{min-width:140px}.comparison span{font-size:11px}.good{color:var(--green)}.bad{color:#b47a68}pre{font-size:20px;line-height:1.3;margin:12px 0;color:var(--green)}pre.wrong{color:#b28f82}.comparison small{font-size:10px;color:var(--muted)}footer{display:flex;justify-content:space-between;padding:22px 0;border-top:1px solid var(--line);font-size:11px;color:var(--muted)}@keyframes fade-in{from{opacity:0}to{opacity:1}}@media(max-width:800px){header{height:70px;padding:0 22px}.tag{display:none}main{padding:28px 16px}.intro h1{font-size:32px}.workspace{grid-template-columns:1fr}.settings{padding:20px}.tip{margin-top:15px}.lesson{flex-direction:column;align-items:start;padding:24px}.comparison{gap:24px}.controls{padding:18px 12px;gap:6px;flex-wrap:wrap}.controls button{padding:10px}.canvas{padding:14px 4px}.paper{--column-width:min(40px,calc((100vw - 56px)/var(--cols)));--row-height:43px;font-size:clamp(22px,var(--column-width),30px)}footer span{max-width:55%;text-align:right}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

.canvas.with-calculation{display:grid;grid-template-columns:max-content minmax(0,280px);gap:clamp(16px,4vw,48px);align-items:start}
.calculation{margin-top:25px;padding:14px 16px;background:#eff5ec;border-radius:10px}
.calculation .section-label{margin-bottom:9px}
.equation{min-height:1.65em;overflow-wrap:anywhere;font:600 clamp(14px,2vw,20px)/1.65 ui-monospace,monospace}
.equation-carry{color:var(--green)}
@media(max-width:540px),(min-width:801px) and (max-width:1000px){.canvas.with-calculation{grid-template-columns:minmax(0,280px);gap:12px}.canvas.with-calculation .paper{justify-self:center}.calculation{margin-top:0}}

#calculation-place{color:var(--green);font-weight:700;letter-spacing:.04em}
.headcell.current-place{color:var(--green);font-weight:800;background:#dceee1;border-radius:4px;padding:2px 4px}
.cell.current-place .digit{color:var(--green);background:#dceee1;border-radius:5px;box-shadow:0 0 0 3px #dceee1}
.cell.current-multiplier .digit{color:#24557d;background:#e1effb;border-radius:5px;box-shadow:0 0 0 3px #e1effb}

.division-top.current-place .digit {
  line-height: 1.05;
  box-shadow: none;
}
