
:root{--navy:#142843;--blue:#245b91;--pale:#eaf2fa;--paper:#fff;--bg:#f6f4ef;--ink:#1e3045;--muted:#546478;--line:#d7dfe7;--gold:#bd791c;--soft:#fff3df;--green:#176543;--red:#a02c32;--radius:18px}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:24px}body{margin:0;background:var(--bg);color:var(--ink);font-family:Segoe UI,Arial,sans-serif;font-size:17px;line-height:1.65}button,input,select{font:inherit}button,a,input,select,summary{-webkit-tap-highlight-color:transparent}button,summary{cursor:pointer}button{color:inherit}button:disabled{cursor:default;opacity:.5}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #a86408;outline-offset:4px}a{color:var(--blue)}button{touch-action:manipulation}h1,h2,h3,p{margin-top:0}h1,h2,h3{line-height:1.18}h1{font-size:clamp(2.3rem,5vw,4.2rem);letter-spacing:-.045em;font-weight:750;margin-bottom:20px}h2{font-size:clamp(1.8rem,4vw,2.65rem);letter-spacing:-.03em;margin-bottom:14px}h3{font-size:1.15rem;margin-bottom:12px}p{margin-bottom:18px}strong{font-weight:700}.small{font-size:.84rem;color:var(--muted)}.eyebrow{text-transform:uppercase;letter-spacing:.13em;font-size:.73rem;font-weight:750;color:var(--blue);margin-bottom:12px}.masthead{background:var(--navy);color:white}.mast-inner{max-width:1280px;margin:auto;padding:20px 32px;display:flex;align-items:center;justify-content:space-between;gap:20px}.brand{font-size:.88rem;letter-spacing:.04em;font-weight:700}.brand small{display:block;font-weight:400;font-size:.73rem;opacity:.75;letter-spacing:.06em}.top-actions{display:flex;gap:8px}.top-actions button{border:1px solid #64758b;color:white;background:transparent;border-radius:8px;padding:8px 12px;font-size:.8rem}.intro{max-width:1280px;margin:auto;padding:46px 32px 30px;display:grid;grid-template-columns:1.4fr 1fr;gap:48px;align-items:center}.intro p{max-width:640px;font-size:1.05rem;color:var(--muted);margin-bottom:0}.intro-note{border-left:3px solid var(--gold);padding:8px 0 8px 24px}.intro-note strong{display:block;font-size:1.25rem;margin-bottom:8px}.intro-note p{font-size:.94rem}.shell{max-width:1280px;padding:0 32px 50px;margin:auto;display:grid;grid-template-columns:250px minmax(0,1fr);gap:32px;align-items:start}.sidebar{position:sticky;top:20px}.progress-head{display:flex;justify-content:space-between;gap:10px;font-size:.83rem;margin-bottom:8px}.progress-track{height:7px;background:#e0e5e9;border-radius:10px;overflow:hidden}.progress-fill{height:100%;background:var(--blue);transition:width .45s ease;width:0}.toc{display:flex;flex-direction:column;gap:3px;margin:18px 0}.toc button{border:0;background:transparent;text-align:left;display:flex;gap:10px;align-items:center;padding:10px 12px;border-radius:10px;line-height:1.3;font-size:.86rem;min-height:45px}.toc button:hover{background:#e9edf0}.toc button[aria-current="step"]{background:var(--navy);color:#fff}.nav-num{width:25px;flex-shrink:0;font-size:.76rem;font-variant-numeric:tabular-nums}.toc button.done .nav-num::after{content:' ✓';font-size:.66rem}.mobile-jump{display:none}.paper{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;min-width:0}.lesson-header{padding:34px 40px 25px;border-bottom:1px solid var(--line);background:linear-gradient(115deg,#f1f6fb,#fff)}.lesson-header .deck{color:var(--muted);max-width:650px;margin:0}.lesson-body{padding:30px 40px 6px;max-width:850px}.lesson-body p{font-size:1.02rem}.formula{background:var(--pale);border-left:3px solid var(--blue);padding:17px 20px;border-radius:0 10px 10px 0;margin:22px 0;line-height:1.5;font-size:1.06rem}.example{padding:19px 22px;background:#f8f7f3;border-radius:12px;margin:22px 0}.example p:last-child{margin-bottom:0}.example strong:first-child{display:block;margin-bottom:6px}.care{font-size:.93rem;border-top:1px solid var(--line);padding-top:18px;color:var(--muted)}.challenge{margin:18px 24px 28px;padding:27px 28px;background:#f0f5fa;border-radius:16px;border:1px solid #cfdeeb;position:relative;overflow:hidden}.challenge-header{display:flex;gap:16px;justify-content:space-between;align-items:flex-start;margin-bottom:14px}.challenge-header h3{font-size:1.35rem;margin-bottom:5px}.challenge-header p{margin:0;font-size:.85rem;color:var(--muted)}.badge{background:white;border-radius:30px;font-size:.76rem;padding:5px 11px;border:1px solid var(--line);white-space:nowrap}.prompt{font-weight:600;line-height:1.5;margin-bottom:20px}.play{min-width:0}.options{display:grid;gap:10px}.option{display:flex;align-items:center;gap:12px;padding:14px 16px;border:1px solid #b9c9d9;border-radius:10px;background:white;text-align:left;line-height:1.45;min-height:52px;transition:background .18s,transform .18s,border-color .18s}.option:hover{border-color:var(--blue)}.option[aria-pressed="true"]{background:var(--navy);color:#fff;border-color:var(--navy);transform:translateX(3px)}.option .key{border:1px solid currentColor;border-radius:6px;min-width:27px;height:27px;display:grid;place-items:center;font-size:.8rem;flex-shrink:0}.controls{display:flex;gap:10px;flex-wrap:wrap;margin-top:22px;align-items:center}.btn{border:1px solid #a9bbcb;border-radius:9px;background:#fff;padding:11px 18px;min-height:46px;font-weight:650;font-size:.91rem}.btn.primary{background:var(--navy);border-color:var(--navy);color:white}.btn.ghost{border-color:transparent;background:transparent;color:var(--blue)}.feedback{margin-top:18px;border-radius:10px;padding:16px 18px;background:white;border-left:4px solid var(--blue);line-height:1.5}.feedback.ok{border-color:var(--green);background:#e7f4ec}.feedback.no{border-color:var(--red);background:#fff0ee}.feedback h4{margin:0 0 6px;font-size:1rem}.feedback p{margin:0}.feedback[hidden],.resolution[hidden]{display:none}.resolution{background:white;border:1px solid var(--line);padding:18px;border-radius:10px;margin-top:16px}.resolution h4{margin:0 0 10px}.resolution p{margin:0 0 8px}.hint{margin-top:17px;font-size:.9rem}.hint summary{color:var(--blue);min-height:35px}.hint p{padding:10px 0 0;margin:0}.lesson-footer{padding:0 28px 28px;display:flex;justify-content:space-between;gap:10px}.footnote{max-width:1280px;padding:0 32px 35px;margin:auto;font-size:.8rem;color:var(--muted)}.board{background:white;border-radius:12px;padding:20px;margin-bottom:18px;border:1px solid var(--line)}.circuit{display:grid;grid-template-columns:1fr 42px 1fr;gap:12px;align-items:center}.switches{display:grid;gap:12px}.switch{background:#edf1f5;border:1px solid #aabacb;border-radius:10px;padding:12px;text-align:left;font-weight:650;transition:background .25s,color .25s}.switch[aria-pressed="true"]{background:#d7edff;border-color:var(--blue)}.wire{height:4px;background:#b7c7d5;position:relative;overflow:hidden}.wire.lit{background:var(--blue)}.wire.lit::after{content:'';position:absolute;width:12px;height:4px;background:white;animation:signal .6s ease-out}.gate{padding:22px 8px;border:2px solid #9babbb;border-radius:16px;text-align:center;background:#f4f6f8;transition:all .25s}.gate.on{border-color:var(--green);background:#e3f2e9}.gate strong{font-size:1.4rem;display:block}.gate span{font-size:.78rem}.live-caption{margin:12px 0 0;font-size:.9rem;color:var(--muted)}.truth{border-collapse:collapse;width:100%;text-align:center;background:#fff;border-radius:8px;overflow:hidden}.truth th,.truth td{border-bottom:1px solid var(--line);padding:9px 7px}.truth th{background:#e4edf6;font-size:.83rem}.truth button{min-width:54px;min-height:44px;border:1px solid #b6c4d2;border-radius:8px;background:white;font-weight:700}.truth button.set{background:var(--navy);color:#fff}.tokens{display:flex;flex-wrap:wrap;gap:10px}.token{min-width:62px;min-height:52px;background:white;border:1px solid #b4c5d4;border-radius:12px;padding:11px 14px;font-weight:700;transition:transform .22s,background .22s}.token.selected{background:var(--navy);color:white;transform:translateY(-4px)}.students{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.student{border:1px solid #b7c7d7;background:white;border-radius:12px;padding:12px 8px;line-height:1.4;min-height:88px;transition:transform .2s}.student .avatar{display:block;border-radius:50%;background:#e4edf7;width:27px;height:27px;margin:0 auto 6px}.student small{display:block;font-size:.75rem}.student[aria-pressed="true"]{outline:3px solid var(--blue);transform:translateY(-5px)}.order-list{display:grid;gap:10px;list-style:none;padding:0;margin:0}.order-list li{display:flex;align-items:center;gap:10px;background:white;border:1px solid #c0cfdd;padding:12px;border-radius:10px;transition:transform .25s}.order-list .order-text{flex:1;font-size:.92rem}.order-list button{border:1px solid #b6c4d0;border-radius:7px;min-width:42px;min-height:42px;background:#f0f5fa}.order-list .position{color:var(--blue);font-weight:750}.regions{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px;align-items:stretch;margin-bottom:14px}.region{border:1px solid #adbdcc;background:white;border-radius:10px;padding:18px 7px;text-align:center;min-height:98px;transition:background .25s,transform .25s}.region strong{font-size:1.65rem;display:block}.region span{font-size:.82rem}.region[aria-pressed="true"]{background:var(--navy);color:white;transform:translateY(-3px)}.region.outside{grid-column:1/-1;min-height:auto;display:flex;gap:10px;align-items:center;justify-content:center;padding:10px}.region.outside strong{font-size:1.05rem}.region-total{font-weight:700;font-size:1rem;margin:0}.number-field{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:18px}.number-field label{font-weight:600}.number-field input{width:130px;max-width:100%;border:1px solid #8ba3b8;border-radius:8px;padding:11px;background:white;font-size:1.2rem}.sequence{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.sequence span{min-width:48px;padding:12px 10px;background:var(--pale);border-radius:9px;text-align:center;font-weight:750}.sequence .next{border:2px dashed var(--blue);background:white;transition:transform .3s}.team{display:grid;grid-template-columns:repeat(8,1fr);gap:8px}.worker{border-radius:7px;height:45px;background:#c9dff0;position:relative;overflow:hidden}.worker::before{content:'';position:absolute;top:8px;left:calc(50% - 5px);width:10px;height:10px;border-radius:50%;background:var(--navy)}.worker::after{content:'';position:absolute;top:21px;left:calc(50% - 9px);width:18px;height:20px;border-radius:8px 8px 0 0;background:var(--navy)}.working .worker{animation:work .5s ease-in-out 2;animation-delay:calc(var(--i)*.04s)}.bar-row{margin:12px 0}.bar-label{display:flex;justify-content:space-between;gap:10px;font-size:.85rem;margin-bottom:6px}.bar-track{height:18px;background:#e8edf1;border-radius:5px;overflow:hidden}.bar-fill{height:100%;background:var(--blue);width:0;transition:width .7s ease}.bar-fill.gold{background:#a76b17}.sample{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.sample button{min-height:80px;background:white;border:1px solid #b0c0d0;border-radius:10px;display:flex;align-items:center;justify-content:center;gap:8px;flex-direction:column;font-size:.77rem;transition:transform .2s,background .2s}.sample button[aria-pressed="true"]{background:#dcecff;outline:2px solid var(--blue);transform:translateY(-4px)}.shape{width:24px;height:24px;display:block;background:#2860a0}.shape.circle{border-radius:50%}.shape.amber{background:#a36811}.shape.red{background:#b84348}.fraction-select{width:100%;padding:11px;border:1px solid #9fb2c5;border-radius:8px;background:white;margin-top:8px}.mini-map{display:flex;gap:10px;align-items:center;justify-content:center;flex-wrap:wrap;padding:16px 6px;font-weight:650}.mini-map span{padding:10px 14px;border-radius:9px;background:#e8f0f8}.mini-map .transform{background:#fff0d5}.mini-map.reveal span{animation:pop .45s both}.mini-map.reveal span:nth-child(3){animation-delay:.15s}.mini-map.reveal span:nth-child(5){animation-delay:.3s}.celebrate{animation:success .6s ease}.finish{background:var(--navy);color:white;border-radius:14px;padding:24px;margin:0 24px 28px}.finish h3{font-size:1.45rem}.finish p{margin-bottom:0}.print-book{display:none}.storage-note{margin-top:12px;font-size:.76rem;color:var(--muted)}.intro-mark{display:inline-block;color:var(--blue)}dialog{border:1px solid var(--line);border-radius:16px;max-width:min(90vw,440px);padding:28px;color:var(--ink)}dialog::backdrop{background:#14284380}dialog h2{font-size:1.6rem}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.sidebar{max-height:calc(100dvh - 40px);overflow-y:auto;padding-right:4px;scrollbar-width:thin}
@keyframes signal{from{left:-12px}to{left:100%}}@keyframes pop{0%{transform:scale(.93)}65%{transform:scale(1.04)}100%{transform:scale(1)}}@keyframes success{0%,100%{box-shadow:0 0 0 0 #17654300}50%{box-shadow:0 0 0 6px #17654328}}@keyframes work{50%{transform:translateY(-5px)}}
@media(max-width:900px){.shell{grid-template-columns:205px minmax(0,1fr);gap:20px;padding-left:20px;padding-right:20px}.lesson-body{padding:26px 25px 6px}.lesson-header{padding:28px 25px}.challenge{margin:15px 15px 24px;padding:22px 20px}.intro{padding:34px 24px 28px;gap:24px}.intro-note{padding-left:18px}}
@media(max-width:680px){body{font-size:16px}.mast-inner{padding:16px 18px;gap:10px}.brand{font-size:.8rem}.top-actions button{padding:7px 9px;font-size:.73rem}.intro{display:block;padding:28px 20px 24px}.intro h1{font-size:2.6rem;margin-bottom:13px}.intro-note{margin-top:22px;padding:3px 0 3px 16px}.intro-note strong{font-size:1rem;margin-bottom:4px}.intro-note p{font-size:.85rem}.shell{display:block;padding:0 12px 30px}.sidebar{position:static;padding:0 7px 20px}.toc{display:none}.mobile-jump{display:block;margin-top:14px}.mobile-jump label{display:block;font-size:.8rem;margin-bottom:6px}.mobile-jump select{width:100%;padding:11px 9px;border:1px solid #adbdcb;background:#fff;border-radius:9px;font-size:16px}.storage-note{margin:8px 0 0}.lesson-header{padding:24px 22px}.lesson-body{padding:23px 22px 4px}.lesson-body p{font-size:1rem}.challenge{padding:22px 17px;margin:14px 10px 24px}.challenge-header{gap:8px}.badge{font-size:.7rem;padding:4px 8px}.challenge-header h3{font-size:1.18rem}.board{padding:15px 12px}.circuit{grid-template-columns:1fr 22px 1fr;gap:8px}.students{grid-template-columns:repeat(3,1fr)}.lesson-footer{padding:0 16px 22px}.lesson-footer .btn{padding:10px 12px;font-size:.82rem}.footnote{padding:0 22px 28px}.regions{gap:5px}.region{padding:14px 4px}.region span{font-size:.75rem}.team{gap:5px}.finish{margin:0 15px 24px}.order-list li{padding:10px 8px;gap:7px}.order-list .order-text{font-size:.84rem}.order-list button{min-width:36px;min-height:44px}.formula{padding:15px}.example{padding:17px}.sample{gap:6px}.sample button{font-size:.73rem}}
@media(max-width:680px){.sidebar{max-height:none;overflow:visible;padding-right:7px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
@media print{body{background:white;color:#111;font-size:11pt}.masthead,.intro,.shell,.footnote,dialog{display:none!important}.print-book{display:block}.print-book h1{font-size:28pt}.print-book h2{font-size:20pt;break-before:page}.print-book h3{font-size:13pt}.print-book article{padding:0}.print-book .formula,.print-book .example{background:none;border:1px solid #bbb;break-inside:avoid}.print-book p{orphans:3;widows:3}.print-book .print-question{border-top:1px solid #aaa;padding-top:15px}.print-book .print-answer{margin-top:20px;font-size:10pt}@page{margin:18mm}}

.matching{display:grid;gap:14px}.match-row{display:grid;gap:7px;background:white;padding:14px;border:1px solid var(--line);border-radius:10px}.match-row select{width:100%;min-width:0;min-height:46px;padding:9px;border:1px solid #8ba3b8;border-radius:8px;background:white;color:var(--ink)}.notebook-links{max-width:1280px;margin:0 auto;padding:16px 24px;display:flex;gap:18px;flex-wrap:wrap;font-size:.9rem}.reading-reveal{margin:16px 0;padding:14px;border:1px solid var(--line);border-radius:10px}.reading-reveal[open] p{animation:pop .22s ease-out}.word-example mark{background:#ffe6b6;color:#142843;padding:2px 4px;border-radius:3px}.compare-text{display:grid;grid-template-columns:1fr 1fr;gap:12px}.compare-text>p{padding:14px;background:#f1f6fb;border-radius:9px}.punctuation-sample{font-size:1.1rem}.lesson-body details summary{min-height:44px;color:var(--blue);font-weight:600}@media(max-width:480px){.compare-text{grid-template-columns:1fr}.matching select{font-size:16px}}

.word-picks{display:flex;flex-wrap:wrap}.word-picks .option{flex:0 1 auto}.word-picks .key{display:none}.punctuation-sample{margin-top:18px}.punctuation-sample p{margin:10px 0 0;animation:pop .22s ease-out}.punct-mark{color:var(--red);font-weight:800;font-size:1.3em}.punctuation-sample mark{background:#ffe6b6;color:var(--navy)}
