:root{font-family:PingFang SC,Microsoft YaHei,Noto Sans CJK SC,system-ui,sans-serif;color:#243a31;background:#f8f8f1;font-synthesis:none;font-size:18px;line-height:1.6;--paper: #f8f8f1;--white: #fffefa;--ink: #243a31;--muted: #4d6257;--green: #215c45;--line: #d8e0d5;--subtle: #edf2e7;--radius: 24px;--shadow: 0 8px 26px #2a48320a}*,*:before,*:after{box-sizing:border-box}body{margin:0;min-width:0}#root{min-height:100vh;display:flex;flex-direction:column}main{flex:1}main:focus,h1[tabindex]:focus{outline:none}h1,h2,h3,p,figure{margin:0}h1,h2,h3{line-height:1.26;text-wrap:balance}a{color:inherit}button,input{font:inherit;color:inherit}button{cursor:pointer}:focus-visible{outline:3px solid #146f91;outline-offset:3px}button:disabled,button[aria-disabled=true]{cursor:default;color:#596d62}button:disabled{background:#edf0eb}button[aria-disabled=true]{opacity:.72}.container{width:min(1160px,calc(100% - 72px));margin-inline:auto}.sr-only,.skip-link:not(:focus){position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.skip-link:focus{position:fixed;inset:8px auto auto 8px;z-index:3;padding:12px 18px;background:var(--white);border-radius:12px}.site-header{background:#fcfcf6;border-bottom:1px solid var(--line)}.header-inner{min-height:76px;display:flex;justify-content:space-between;align-items:center;gap:12px 24px}.brand{text-decoration:none;display:inline-flex;align-items:center;gap:11px;font-size:20px;line-height:1.25;font-weight:800;white-space:nowrap}.brand small{display:block;margin-top:3px;font-size:11px;letter-spacing:.13em;font-weight:600;color:var(--muted)}.site-nav{display:flex;gap:8px}.site-nav a{text-decoration:none;min-height:48px;display:flex;align-items:center;gap:8px;padding:8px 14px;border-radius:12px;font-size:16px;white-space:nowrap;font-weight:650}.site-nav a:hover,.site-nav a.active{color:var(--green);background:#e7efe1}.button{border:1px solid transparent;border-radius:13px;min-height:48px;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:8px 17px;font-size:16px;text-align:center;font-weight:720;line-height:1.4;text-decoration:none}.button svg{flex:none}.primary{background:var(--green);color:#fffefa;border-color:var(--green)}.primary:hover:not(:disabled){background:#194d39}.primary:disabled{border-color:#c4d1c6}.secondary{background:var(--white);border-color:#98ad9f}.secondary:hover,.quiet:hover:not(:disabled):not([aria-disabled=true]){background:var(--subtle)}.quiet{background:transparent;border-color:#adbcaf}.inline-link{color:var(--green);text-underline-offset:4px;font-weight:700}.eyebrow,.pill{font-size:14px;font-weight:750;color:var(--green);letter-spacing:.07em}.pill{min-height:34px;display:inline-flex;align-items:center;gap:8px;padding:5px 12px;border-radius:99px;background:#e8f0df;white-space:nowrap}.pill-dot{width:8px;height:8px;border-radius:50%;background:#497b58}.pill.muted{letter-spacing:0;background:#eef0e8;color:var(--muted)}.home{padding-block:42px 48px}.hero{display:grid;grid-template-columns:1fr minmax(0,1.05fr);gap:24px;align-items:center;min-height:370px}.hero-copy h1{font-size:clamp(46px,6.1vw,80px);margin-block:16px 14px;font-weight:850;letter-spacing:-.055em}.hero-period{color:#548963}.hero-copy>p:not(.hero-note){font-size:clamp(18px,1.7vw,22px);line-height:1.65;color:#45594e}.hero-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:24px}.hero-note{display:flex;align-items:center;gap:8px;margin-top:18px;font-size:15px;color:var(--muted)}.hero-note svg{flex:none}.hero-art{display:block;width:100%;height:auto}.home-lessons{margin-top:42px;border-top:1px solid var(--line);padding-top:26px}.section-head{display:flex;align-items:end;justify-content:space-between;flex-wrap:wrap;gap:10px;margin-bottom:18px}.section-head h2{margin-top:4px;font-size:clamp(25px,3vw,34px);letter-spacing:-.025em}.lesson-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.lesson-tile{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:14px;padding:15px 17px;border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow);background:var(--white);text-decoration:none}.lesson-tile:hover{border-color:#8ca994;background:#fff}.lesson-icon{display:inline-grid;place-items:center;height:56px;width:56px;border-radius:16px;flex:none}.lesson-icon svg{width:35px;height:35px}.green{background:#e3efdb}.blue{background:#e2edf8}.yellow{background:#fbefcb}.peach{background:#f7e5da}.purple{background:#ede7f8}.tile-copy{display:flex;flex-direction:column;gap:1px}.tile-copy strong{font-size:21px;line-height:1.3}.tile-copy>span{font-size:15px;color:var(--muted)}.tile-copy .tile-label{font-size:13px;font-weight:700;color:var(--green)}.tile-arrow{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:#edf2e8;color:var(--green)}.interior{padding-block:40px 56px}.interior h1{font-size:clamp(36px,5vw,58px);letter-spacing:-.035em;margin-block:7px 11px}.lead{color:var(--muted);max-width:42em;margin-bottom:22px}.crumbs{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px;font-size:15px;color:var(--muted);margin-bottom:14px}.crumbs a{text-underline-offset:3px;display:inline-flex;align-items:center;min-height:44px}.map-current,.detail-card,.note-card{border:1px solid var(--line);border-radius:var(--radius);background:var(--white);padding:22px;box-shadow:var(--shadow)}.map-current{display:flex;flex-wrap:wrap;align-items:center;gap:18px}.map-current h2{margin-block:4px}.map-current .button{margin-inline-start:auto}.subheading{margin-block:26px 12px;font-size:23px}.modules{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;align-items:start}.module{border:1px solid var(--line);border-radius:15px;background:var(--white)}.module summary{min-height:52px;padding:12px 16px;cursor:pointer;font-weight:700}.module-id{color:var(--muted);font-size:13px;margin-inline-start:10px}.module p{padding:0 16px;color:var(--muted);font-size:16px}.module ul{padding:0 16px;margin:8px 0;list-style:none}.module li{display:flex;justify-content:space-between;gap:10px;border-top:1px solid var(--line);padding:7px 0;font-size:16px}.pending{color:var(--muted);font-size:14px;white-space:nowrap}.note-card{margin-top:22px;background:#eef3e7}.note-card h2,.detail-card>h2{font-size:22px;margin-bottom:8px}.detail-card{width:min(780px,100%);padding:clamp(20px,4vw,44px)}.detail-card>.lesson-icon{display:grid;margin-bottom:12px}.detail-card .note-card{margin-top:18px}.readiness ul{margin-block:6px}.completion{margin-inline:auto}.done-mark{background:#e4f0da;display:grid;place-items:center;width:72px;height:72px;border-radius:20px;color:var(--green);margin-bottom:20px}.progress-overview{display:flex;flex-wrap:wrap;gap:12px}.progress-overview>div{border:1px solid var(--line);border-radius:16px;background:var(--white);padding:12px 18px;min-width:146px}.progress-overview span{display:block;font-size:15px;color:var(--muted)}.progress-overview strong{font-size:29px}.progress-overview small{font-size:15px;font-weight:500}.progress-list{list-style:none;padding:0;margin-block:22px;max-width:820px}.progress-list li{background:var(--white);border-bottom:1px solid var(--line);padding:12px 14px;display:flex;align-items:center;justify-content:space-between;gap:10px}.progress-list p,.footnote{color:var(--muted);font-size:15px}.storage-warning{background:#fff1d2;border:1px solid #d6bb86;padding:8px 14px;border-radius:10px;margin-top:12px}.learn{padding-block:18px 46px}.learn-grid{display:grid;grid-template-columns:218px minmax(0,800px);gap:20px;align-items:start}.stage-panel,.learn-card{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.stage-panel{padding:16px}.stage-title{margin:4px 0 9px;font-weight:750}.stages{list-style:none;padding:0;margin:0;display:grid;gap:5px}.stages button{display:flex;align-items:center;text-align:left;gap:8px;width:100%;min-height:48px;padding:6px 7px;border-radius:11px;border:1px solid transparent;background:transparent;font-size:16px}.stages button[aria-current],.stages button:hover:not(:disabled){background:#e9f2e3;color:var(--green);font-weight:750}.stage-number{width:29px;height:29px;border-radius:50%;display:grid;place-items:center;background:#eaf0e7;font-size:14px;flex:none}.learn-card{padding:clamp(18px,4vw,34px);min-width:0}.learn-card h1{font-size:clamp(27px,4.5vw,44px);margin-block:14px}.learn-meta{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:14px;color:var(--muted)}progress{width:100%;display:block;appearance:none;height:8px;border:none;border-radius:99px;background:#e5ece3;color:var(--green);margin-top:7px;overflow:hidden}progress::-webkit-progress-bar{background:#e5ece3;border-radius:99px}progress::-webkit-progress-value{background:var(--green);border-radius:99px}progress::-moz-progress-bar{background:var(--green)}.lesson-copy{margin-bottom:10px;max-width:36em}.formula{text-align:center;font-size:1.4rem;padding:10px}.diagram,.workspace{margin-block:16px;padding:clamp(12px,2.5vw,20px);border-radius:17px;border:1px solid #cfdecc;background:#f2f6ec}.diagram figcaption{padding-top:10px;color:var(--muted);font-size:16px}.piles{display:grid;gap:9px}.piles-2{grid-template-columns:repeat(2,minmax(0,1fr))}.piles-3{grid-template-columns:repeat(3,minmax(0,1fr))}.pile{border-radius:11px;padding:9px;background:#fffefa;border:1px dashed #a5b8a4;min-width:0}.pile-label{color:var(--muted);font-weight:700;font-size:14px;margin-bottom:5px;overflow-wrap:anywhere}.empty-pile{font-size:15px;color:var(--muted);display:flex;align-items:center;min-height:42px}.tokens,.token-buttons{list-style:none;display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:0;margin:0}.tokens li{width:34px;height:37px;display:grid;place-items:center}.tokens svg{width:33px;height:33px}.tokens.line{flex-wrap:nowrap;gap:3px}.tokens.line li{min-width:0}.tokens.line svg{width:min(100%,33px)}.piles-3 .tokens{gap:2px}.piles-3 .tokens li{width:clamp(21px,3.5vw,34px)}.piles-3 .tokens svg{width:100%}.scatter>:nth-child(3n+1) svg{transform:translateY(2px) rotate(-14deg)}.scatter>:nth-child(3n+2) svg{transform:translateY(-4px) rotate(10deg)}.token-button{position:relative;display:grid;place-items:center;border:1px solid #9bac9e;border-radius:12px;width:50px;height:50px;background:#fffefa}.token-button svg{width:32px;height:32px}.token-buttons.locate{flex-wrap:nowrap;overflow-x:auto;padding:4px 0 6px}.token-buttons.locate .token-button{width:48px;height:48px;flex:0 0 48px}.token-button[aria-pressed=true]{border:2px solid var(--green);background:#e2f0dd}.token-index{position:absolute;top:-3px;right:-4px;min-width:18px;height:18px;padding:0 3px;border-radius:9px;font-size:11px;line-height:18px;font-weight:750;background:var(--green);color:#fff}.tool-heading{display:flex;justify-content:space-between;flex-wrap:wrap;gap:5px;margin-bottom:10px;font-weight:750}.count-tag{color:var(--green);background:#dfeede;padding:3px 9px;border-radius:9px;font-size:14px}.tool-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.split-status{margin-top:8px}.demo-controls{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;color:var(--muted);font-size:15px}.task{margin-top:15px}.task-prompt{margin-bottom:12px;font-size:clamp(20px,2.5vw,25px)}.task-index{margin-top:12px;color:var(--green);font-size:15px;font-weight:750}.numeric{display:flex;align-items:center;flex-wrap:wrap;gap:8px 12px}.numeric input{width:115px;min-height:52px;padding:6px 10px;border:1px solid #82998a;border-radius:11px;background:#fff}.choice-field{border:0;padding:0;margin:0;min-inline-size:0}.choices{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.choices.vertical{flex-direction:column}.choice{display:flex;align-items:center;text-align:start;gap:9px;min-height:48px;padding:8px 12px;background:#fffefa;border:1px solid #96a99c;border-radius:11px;line-height:1.5}.choice.radio{cursor:pointer}.choice input{accent-color:var(--green);width:20px;height:20px;flex:none;margin:0}.choice[aria-pressed=true],.choice:has(input:checked){border-color:var(--green);box-shadow:inset 0 0 0 1px var(--green);background:#e7f0e1}.task-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}.hints,.feedback{border-radius:11px;padding:10px 13px;margin:12px 0 0;background:#fff2d9;color:#674b25}.hints{padding-inline-start:34px}.feedback.correct{background:#e4f1dc;color:#25533d}.feedback p{margin-top:3px}.learn-footer{display:flex;justify-content:space-between;align-items:end;flex-wrap:wrap;gap:8px;margin-top:20px;padding-top:15px;border-top:1px solid var(--line)}.next-action{display:flex;flex-wrap:wrap;align-items:center;gap:6px 9px}.next-action>span{color:var(--muted);font-size:14px}.completion-inline .button{margin-top:12px}.site-footer{border-top:1px solid var(--line);background:#f1f3ea}.footer-inner{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:6px 15px;min-height:62px;padding-block:8px;color:var(--muted);font-size:14px}.footer-inner span:first-child{color:var(--green);font-weight:750}@media(max-width:920px){.container{width:calc(100% - 44px)}.learn-grid{grid-template-columns:176px minmax(0,1fr);gap:12px}.stage-panel{padding:11px}}@media(max-width:760px){.container{width:calc(100% - 30px)}.home{padding-top:24px}.hero{grid-template-columns:1fr;gap:14px;min-height:0}.hero-art{width:min(100%,480px);margin-inline:auto}.wide-break{display:none}.home-lessons{margin-top:20px}.learn-grid,.lesson-list{grid-template-columns:minmax(0,1fr)}.stage-panel{display:none}.interior{padding-block:24px 38px}}@media(max-width:510px){.header-inner{flex-wrap:wrap;gap:3px;padding-block:8px 4px}.brand{min-height:46px}.site-nav{width:100%}.site-nav a{flex:1;justify-content:center;padding-inline:5px;gap:5px;font-size:15px}.site-nav a svg{width:16px}.modules{grid-template-columns:1fr}.map-current .button{margin-inline-start:0}.lesson-tile{padding:11px;gap:10px}.lesson-icon{width:47px;height:47px;border-radius:12px}.lesson-icon svg{width:29px;height:29px}.tile-copy strong{font-size:19px}.learn-card{padding:14px}}.number-line-drawing{display:block;width:min(100%,440px);margin-inline:auto;color:var(--green)}.number-line-drawing text{font-family:inherit;font-size:17px;fill:currentColor}.number-line-range{display:block;width:min(100%,440px);height:48px;margin-inline:auto;accent-color:var(--green)}.unit-links{display:flex;flex-wrap:wrap;gap:12px}.unit-list{display:grid;gap:12px}.home-lessons>.unit-list+.unit-list{margin-top:24px}.place-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(62px,1fr));gap:8px}.place-cell{display:flex;flex-direction:column;align-items:center;padding:8px 4px;border:1px solid var(--line);border-radius:10px;background:var(--white);text-align:center;overflow-wrap:anywhere}.place-cell strong{font-variant-numeric:tabular-nums}.place-chips{display:flex;flex-wrap:wrap;justify-content:center;gap:4px;font-size:13px}.place-chips span{padding-inline:4px;border:1px solid #8ca994;border-radius:4px;background:var(--subtle)}.place-controls{margin-top:12px}.place-controls label{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.place-controls select{min-height:48px;padding-inline:10px;border:1px solid #98ad9f;border-radius:8px;background:var(--white);color:var(--ink);font:inherit}.place-controls .pile-label{margin-top:8px}.addition-scroll{overflow-x:auto;margin-block:8px}.addition-grid{width:max-content;margin:0 auto;border-collapse:collapse;text-align:center;font-variant-numeric:tabular-nums}.addition-grid th,.addition-grid td{min-width:48px;padding:4px 2px}.addition-grid th{color:var(--muted);font-size:14px}.addition-grid input{width:44px;min-height:44px;border:1px solid #98ad9f;border-radius:8px;background:var(--white);text-align:center}.addition-carry td{font-size:15px}.addition-result{border-top:2px solid var(--green)}.dot-array{display:block;width:min(100%,264px);max-height:224px;margin-block:8px;fill:var(--green)}.dot-array line{stroke:var(--ink);stroke-width:1.4;stroke-dasharray:3 2}.times-table td,.times-table th{min-width:32px;border:1px solid var(--line)}.order-tokens{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-block:12px;font-size:1.2rem;font-variant-numeric:tabular-nums}.order-tokens button{min-width:48px}.order-tokens button[aria-pressed=true]{outline:2px solid currentColor;outline-offset:-3px}.division-step{margin:12px 0;padding:0 12px 8px;border:1px solid #98ad9f;border-radius:8px;min-width:0}.product-input{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;margin-block:8px}.product-input input{width:108px;min-height:48px;border:1px solid #98ad9f;border-radius:8px;background:var(--white);padding-inline:8px}
