:root{--ink:#182e2c;--muted:#5b706b;--paper:#fffefb;--ground:#f3f4ee;--line:#dce3da;--green:#184d48;--tint:#eaf1e9;--warm:#a34a2a;--serif:Georgia,'Times New Roman',serif;--sans:Segoe UI,Arial,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:auto;scroll-padding-top:155px}body{margin:0;background:var(--ground);color:var(--ink);font-family:var(--sans);font-size:17px;line-height:1.8}a{color:var(--green);text-underline-offset:4px}button,input{font:inherit}button,a,input{touch-action:manipulation}a:focus-visible,button:focus-visible,input:focus-visible{outline:3px solid #bc683b;outline-offset:4px}.skip{position:absolute;top:-80px;left:15px;z-index:9;background:white;padding:10px}.skip:focus{top:8px}.topbar{position:sticky;top:0;z-index:5;background:rgba(255,254,251,.98);border-bottom:1px solid var(--line);min-height:86px;padding:13px 30px;display:flex;align-items:center;gap:24px}.brand{display:flex;align-items:center;gap:13px;text-decoration:none;font-size:13px;font-weight:700;letter-spacing:1.2px;line-height:1.5;margin-right:auto}.brandmark{font-family:var(--serif);font-size:32px;letter-spacing:-2px;color:white;background:var(--green);border-radius:15px;padding:3px 11px;line-height:1.65}.brandmark span{color:#cee6aa}.brand small{display:block;font-size:12px;font-weight:400;letter-spacing:0;color:var(--muted)}.mode-switch{display:flex;gap:5px;padding:4px;background:var(--tint);border-radius:12px}.mode-switch a{padding:7px 20px;text-decoration:none;font-weight:700;border-radius:9px;line-height:1.5}.mode-switch a.active{color:white;background:var(--green)}.mode-switch small{display:block;font-weight:400;font-size:11px}.other-subject{font-size:12px;white-space:nowrap}.tabs{position:sticky;top:86px;z-index:4;display:flex;justify-content:center;gap:25px;min-height:52px;background:var(--paper);border-bottom:1px solid var(--line);padding:0 14px}.tabs a{display:flex;align-items:center;font-size:14px;text-decoration:none;border-bottom:3px solid transparent;padding:10px 0;white-space:nowrap}.tabs a.active{border-color:var(--green);font-weight:700}.layout{max-width:1440px;margin:auto;display:grid;grid-template-columns:280px minmax(0,1fr);gap:0}#contents{position:sticky;top:138px;height:calc(100vh - 138px);overflow:auto;padding:25px 20px 70px;border-right:1px solid var(--line)}.search-label{display:block;font-weight:600;font-size:12px;margin-bottom:5px}#search{width:100%;font-size:13px;padding:10px 12px;border:1px solid #cbd6cd;border-radius:6px;background:var(--paper);margin-bottom:18px}.toc-chapter{display:block;margin-top:17px;font-size:13px;font-weight:650;text-decoration:none;line-height:1.5;padding:7px 9px}.toc-section{display:block;font-size:12px;color:var(--muted);text-decoration:none;line-height:1.55;padding:8px 10px 8px 19px;border-left:2px solid transparent;margin-left:9px}.toc-section.active{border-color:var(--green);background:var(--tint);color:var(--green);font-weight:600}.toc-caption{font-size:11px;text-transform:uppercase;letter-spacing:1px;color:var(--muted);padding:0 9px}.search-result{display:block;padding:10px 6px;font-size:13px;border-bottom:1px solid var(--line);line-height:1.5}main{min-width:0;padding:40px 5vw 60px;background:var(--paper);min-height:80vh}article{max-width:830px;margin:auto}.eyebrow{font-size:11px;text-transform:uppercase;letter-spacing:1.6px;color:var(--muted);font-weight:650;margin:0 0 12px}h1{font-family:var(--serif);font-size:clamp(30px,3vw,44px);font-weight:500;line-height:1.18;letter-spacing:-.6px;margin:0 0 22px}h2{font-family:var(--serif);font-size:28px;line-height:1.35;font-weight:500;margin:38px 0 16px}h3{font-size:20px;line-height:1.45;margin:31px 0 13px}h4{font-size:17px;line-height:1.5;margin:25px 0 10px}p{margin:14px 0 20px}li{padding-left:3px;margin:8px 0}ol,ul{padding-left:26px;margin:17px 0 24px}strong{font-weight:650}.scope-note{font-size:13px;color:var(--muted);padding:12px 0 21px;border-bottom:1px solid var(--line);margin-bottom:30px;line-height:1.65}.cue{border-left:3px solid #829a66;background:#f2f5eb;padding:13px 18px;margin:24px 0;font-size:15px}.note,.given{padding:18px 22px;background:#f6f7f1;border:1px solid var(--line);margin:22px 0;border-radius:4px}.example{border-top:2px solid #b7cabb;padding-top:10px;margin:38px 0 48px}.example>h3:first-child{margin-top:20px}.question{font-weight:650;line-height:1.75;margin:25px 0 21px}.marks{font-size:13px;color:var(--warm);white-space:nowrap}.step{padding:3px 0 7px;margin:14px 0}.step h4,.step h3{margin-top:15px}.answer{padding:15px 20px;border-left:4px solid var(--green);background:var(--tint);margin:22px 0;font-weight:600}.math-display{display:block;max-width:100%;overflow-x:auto;overflow-y:hidden;padding:17px 14px;background:#f1f5ef;border-radius:4px;margin:20px 0;text-align:center;font-size:19px;line-height:1.2}.math-display svg{max-width:none;vertical-align:middle;overflow:visible}.math-inline{font-size:1em;white-space:nowrap;display:inline-block;max-width:100%;vertical-align:middle}.math-inline svg{overflow:visible;vertical-align:middle}.table-scroll{overflow-x:auto;margin:23px 0;max-width:100%;border:1px solid var(--line);border-radius:4px}table{border-collapse:collapse;width:100%;font-size:15px;line-height:1.6;background:var(--paper)}th,td{padding:12px 15px;text-align:left;vertical-align:top;border-bottom:1px solid var(--line);border-right:1px solid var(--line)}th{background:#eaf0e7;font-weight:650}tr:last-child td{border-bottom:0}td:last-child,th:last-child{border-right:0}tbody tr:nth-child(even){background:#fafbf7}.flow{display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:wrap;padding:23px 15px;background:#f4f6f0;border:1px solid var(--line);margin:27px 0}.node{padding:12px 18px;border:1px solid #b7c9ba;background:white;border-radius:5px;min-width:110px;text-align:center;font-size:15px;line-height:1.5}.node small{display:block;color:var(--muted);font-size:12px}.arrow{color:var(--warm);font-size:23px}.diagram{margin:25px 0;overflow:auto;max-width:100%}.diagram svg{max-width:100%;height:auto}figure{margin:25px 0}figcaption{font-size:13px;color:var(--muted);line-height:1.6;margin-top:9px}pre{background:#f4f5ef;overflow-x:auto;padding:20px;font-size:14px;line-height:1.7;border-radius:4px}code{font-size:.9em;overflow-wrap:anywhere}.next-prev{display:flex;justify-content:space-between;gap:25px;border-top:1px solid var(--line);margin-top:55px;padding-top:25px;font-size:14px}.next-prev a{max-width:48%;text-decoration:none}.next-prev small{display:block;color:var(--muted);font-size:11px;letter-spacing:1px;text-transform:uppercase}.next-prev a:last-child{text-align:right}.chapter-links{display:grid;grid-template-columns:1fr 1fr;gap:13px;margin:25px 0}.chapter-link{padding:18px;border:1px solid var(--line);text-decoration:none;font-size:16px;background:#f8faf4;line-height:1.6}.chapter-link small{display:block;color:var(--muted);font-size:12px}.contents-toggle{display:none}.site-footer{border-top:1px solid var(--line);font-size:12px;text-align:center;color:var(--muted);padding:22px}.empty{color:var(--muted);font-size:14px}.source-list{font-size:14px}.practice-label{font-size:12px;color:var(--warm)}.section-count{font-size:12px;color:var(--muted);margin-top:6px}.on-page{border-left:2px solid var(--line);padding-left:18px;font-size:14px;margin:22px 0}.print-link{font-size:12px;margin-top:18px;background:none;border:0;color:var(--green);text-decoration:underline;cursor:pointer}
.math-display img,.math-inline img{max-width:none;vertical-align:middle}.math-inline{overflow-x:auto;overflow-y:hidden}.lesson img:not([src^="math/"]){max-width:100%;height:auto}.lesson svg{max-width:100%;height:auto}h5{font-size:17px;line-height:1.6;margin:25px 0 12px;font-weight:650}.flow>.node{flex:1 1 110px}.flow>.arrow{flex:0 0 auto}
.tab-short{display:none}.memory{border-left:3px solid #829a66;background:#f2f5eb;padding:13px 18px;margin:24px 0;font-size:15px}.flow-box{padding:12px 18px;border:1px solid #b7c9ba;background:white;border-radius:5px;min-width:100px;text-align:center;font-size:15px;line-height:1.5;flex:1 1 110px}.table-wrap{max-width:100%;overflow:auto}
@media(max-width:800px){.tab-full{display:none}.tab-short{display:inline}.tabs{justify-content:space-between;gap:12px}.next-prev{padding-bottom:30px}.flow{flex-direction:column}.flow>.arrow{transform:rotate(90deg)}.flow>.node,.flow>.flow-box{flex-basis:auto;width:100%}}
@media(min-width:1500px){main{padding-left:75px;padding-right:75px}}
@media(max-width:900px){.topbar{padding:10px 18px;gap:12px}.other-subject{display:none}.layout{grid-template-columns:230px minmax(0,1fr)}#contents{padding:20px 12px}main{padding:30px 25px}.tabs{gap:20px}.brand small{font-size:10px}.mode-switch a{padding:7px 13px}}
@media(max-width:800px){body{font-size:16px;line-height:1.8}.topbar{min-height:73px;padding:9px 14px;gap:8px}.brand{font-size:10px;gap:8px;letter-spacing:.7px}.brandmark{font-size:26px;padding:2px 9px;border-radius:11px}.brand small{display:none}.mode-switch a{font-size:13px;padding:7px 10px}.mode-switch small{display:none}.tabs{top:73px;min-height:48px;justify-content:flex-start;gap:23px;overflow-x:auto;padding:0 17px}.tabs a{font-size:12px;flex-shrink:0}.layout{display:block}.layout #contents{display:none;position:fixed;z-index:6;top:121px;bottom:0;left:0;right:0;width:100%;height:calc(100dvh - 121px);padding:25px 24px 90px;background:var(--paper)}body.contents-open #contents{display:block}.contents-toggle{display:block;position:fixed;bottom:18px;right:17px;padding:10px 17px;border:1px solid white;border-radius:30px;background:var(--green);color:white;font-size:13px;z-index:7;box-shadow:0 3px 10px #0002}main{padding:27px 19px 60px}h1{font-size:32px}h2{font-size:26px}h3{font-size:19px}.math-display{font-size:18px;padding:17px 12px;text-align:left}table{font-size:14px}th,td{padding:10px 12px}.given,.note{padding:15px 17px}.chapter-links{grid-template-columns:1fr}.node{min-width:100px;font-size:14px}.flow{padding:17px 8px;gap:8px}.site-footer{padding-bottom:80px}.next-prev{font-size:13px;gap:15px}html{scroll-padding-top:140px}}
@media(max-width:800px){.tabs{justify-content:space-between;gap:12px}.next-prev{padding-bottom:30px}figure{max-width:100%;overflow:auto}.lesson figure svg{min-width:520px}}

@media print{.topbar,.tabs,#contents,.contents-toggle,.site-footer,.next-prev,.print-link{display:none!important}.layout{display:block}main{padding:0}article{max-width:none}body{background:white;font-size:11pt;line-height:1.6}h1{font-size:24pt}h2{font-size:18pt}.example,.math-display,table,.flow{break-inside:avoid}.math-display{font-size:12pt;overflow:visible}.table-scroll{overflow:visible}a{color:inherit;text-decoration:none}}

/* IS-2 additions: callouts and spacing (same palette as NLP) */
.trap{border-left:4px solid #a34a2a;background:#fbf1ea;padding:16px 20px;margin:30px 0;font-size:15px;line-height:1.75;border-radius:0 6px 6px 0}.trap>strong:first-child{color:#8c3d21}
.keyfix{border:1px solid #e6d3a8;background:#fdf8ea;padding:16px 20px;margin:30px 0;font-size:15px;line-height:1.75;border-radius:6px}.keyfix>strong:first-child{color:#7a5410}
.cue,.memory{padding:16px 20px;margin:28px 0;line-height:1.75;border-radius:0 6px 6px 0}.memory strong:first-child,.cue strong:first-child{color:var(--green)}
.marks-split{font-size:14px;color:var(--muted);border-top:1px dashed var(--line);padding-top:12px;margin-top:22px}
.lesson figure.fig{margin:32px 0;text-align:center}.lesson figure.fig img{max-width:100%;height:auto;border:1px solid var(--line);border-radius:6px;background:#fff}.lesson figure.fig figcaption{text-align:left;margin-top:10px}
.answer-box{border:1px solid var(--line);border-radius:8px;padding:8px 26px 18px;margin:28px 0;background:#fdfdfa}
.bits{font-family:Consolas,'Courier New',monospace;letter-spacing:1px}
/* Place-value diagrams keep every column visible, including on narrow phones. */
.place-board{padding:20px;border:1px solid var(--line);border-radius:8px;background:#f5f8f1;overflow:visible}
.place-board .place-label{font-size:14px;font-weight:650;margin:0 0 10px;line-height:1.5}
.place-board .place-row+.place-label{margin-top:22px}
.place-row{display:grid;grid-template-columns:repeat(var(--places),minmax(0,1fr));gap:10px}
.place-cell{min-width:0;padding:12px 5px;text-align:center;background:white;border:1px solid #bacbbe;border-radius:5px;line-height:1.5}
.place-cell strong{display:block;font-size:27px;line-height:1.5}
.place-cell small{display:block;font-size:12px;color:var(--muted);line-height:1.45}
.place-cell span{font-size:14px}.place-cell.included{background:#dfecdc;border-color:var(--green)}
.place-cell.skipped{background:#fff4e9;border-color:#b77c55}
.place-direction{font-size:14px;font-weight:650;color:var(--green);margin:16px 0 0;line-height:1.6}
.place-board figcaption{margin-top:17px;font-size:14px}
@media(max-width:800px){.place-board{padding:14px 10px}.place-row{gap:5px}.place-cell{padding:9px 3px}.place-cell strong{font-size:25px}.place-cell small{font-size:11px}.place-cell span{font-size:12px}}
.lesson>p,.lesson section>p,.lesson .answer-box>p{margin:16px 0 22px}
.lesson h2{margin:52px 0 18px}.lesson h2:first-child{margin-top:8px}.lesson h3{margin:38px 0 14px}.lesson h4{margin:28px 0 12px}
.lesson li{margin:10px 0}.lesson ol,.lesson ul{margin:18px 0 26px}
.example{border:1px solid var(--line);border-top:3px solid #b7cabb;border-radius:8px;background:#fdfdfa;padding:24px 28px 20px;margin:40px 0 52px}
.example>.question:first-child{margin-top:0}.question{margin:0 0 24px;line-height:1.8}
.given{margin:22px 0 28px;padding:18px 22px}.given h4{margin:6px 0 8px}.given h4:not(:first-child){margin-top:16px}
.step{margin:24px 0;padding:2px 0 8px 18px;border-left:3px solid #d5e1d3}.step h5{margin:2px 0 12px;font-size:16px;color:var(--green)}
.answer{margin:30px 0 10px;padding:18px 22px;line-height:1.75;border-radius:0 6px 6px 0}
.math-display{margin:18px 0 24px;padding:18px 16px}
th,td{padding:12px 16px}.table-scroll{margin:24px 0 28px}
.flow{margin:30px 0;gap:14px}
@media(max-width:800px){.example{padding:18px 15px 14px;margin:30px 0 40px}.step{padding-left:12px}.given,.answer,.trap,.keyfix,.cue,.memory{padding:14px 15px}.answer-box{padding:6px 15px 14px}.lesson h2{margin-top:42px}}

.practice li{margin:14px 0}.practice details{margin-top:6px;font-size:15px}.practice summary{cursor:pointer;color:var(--green);font-weight:600;width:fit-content}.practice details[open] summary{margin-bottom:6px}
/* Keep diagram labels readable on phones; only the diagram pans horizontally. */
.diagram-pan{max-width:100%;overflow-x:auto;overscroll-behavior-inline:contain;border-radius:6px}
.diagram-pan:focus-visible{outline:2px solid var(--green);outline-offset:3px}
.diagram-hint{display:none}
@media(max-width:800px){.lesson figure.fig .diagram-pan img{min-width:640px}.diagram-hint{display:block;text-align:left;font-size:12px;color:var(--muted);margin:0 0 8px}}

/* DM: textbook hierarchy, visible answers, consistent equation scale. */
.memory{border-left:3px solid #819966;padding:12px 18px;background:#f2f5e9;font-size:15px;line-height:1.75}
.answer h2{font:650 19px/1.5 var(--sans);margin:28px 0 12px}
.example>.answer{padding:0;border:0;background:transparent;margin:18px 0;font-weight:400}
.exam-question{font-size:19px;font-weight:700;line-height:1.65}
.answer>h4:first-child{font-size:13px;text-transform:uppercase;letter-spacing:1px;color:var(--muted);margin:15px 0 24px}
.final-answer{padding:15px 19px;border-left:3px solid var(--green);background:var(--tint)}
.math-display{font-size:18px}
.diagram-pan{background:#fbfcf8;border-radius:8px}
.lesson .diagram-pan img{min-width:680px}
@media(max-width:1149px){.diagram-hint{display:block;font-size:12px;color:var(--muted);margin-bottom:8px}}
.lesson a{overflow-wrap:anywhere}
@media(max-width:760px){.tabs{gap:16px}.tabs a{font-size:12px}.answer h2{font-size:18px}.exam-question{font-size:18px}}
@media print{.example{break-inside:auto}.step,figure{break-inside:avoid}.next-prev,.print-link,.diagram-hint{display:none!important}.lesson .diagram-pan img{min-width:0}}

.applied-example{margin:24px 0;padding:18px 22px;background:#f5f1e7;border-left:3px solid #9a7045;border-radius:0 8px 8px 0}.applied-example h4{margin:0 0 10px;font-size:16px;color:#654724}.applied-example p{margin:8px 0;font-size:16px;line-height:1.8}.applied-example a{font-size:13px}.scope-note{line-height:1.6}
