@font-face{font-family:CourseSerif;src:local('Noto Serif CJK SC'),local('Source Han Serif SC'),local('SimSun')}
.stack-app{--paper:var(--card-background);--ink:var(--card-text-color-main);--soft:#64736b;--line:var(--card-separator-color);--green:#265d49;--clay:#ab5032;--wash:#eaf0e5;--white:#fffef9;--side:#203d33;color-scheme:light;font-family:var(--base-font-family)}
.stack-app *{box-sizing:border-box}.stack-app{scroll-behavior:smooth;scroll-padding-top:24px}.stack-app{background:var(--card-background);color:inherit;line-height:1.95}.stack-app a{color:inherit;text-underline-offset:4px}.stack-app button,
.stack-app input,
.stack-app select{font-family:var(--base-font-family)}.stack-app button,
.stack-app a,
.stack-app input,
.stack-app summary{touch-action:manipulation}.stack-app button{cursor:pointer}.stack-app button:focus-visible,
.stack-app a:focus-visible,
.stack-app input:focus-visible,
.stack-app summary:focus-visible{outline:3px solid var(--clay);outline-offset:4px}.stack-app [hidden]{display:none!important}.stack-app .skip{position:fixed;top:-70px;left:12px;background:var(--card-background);padding:10px;z-index:20}.stack-app .skip:focus{top:12px}.stack-app #sidebar{position:fixed;inset:0 auto 0 0;width:276px;background:var(--card-background);color:inherit;padding:32px 23px 20px;display:flex;flex-direction:column;z-index:5}.stack-app .brand{display:flex;align-items:center;gap:14px;color:inherit;text-decoration:none;font-size:18px;line-height:1.6}.stack-app .brand small{font-size:10px;letter-spacing:1px;color:inherit}.stack-app .brand-mark{font-family:var(--base-font-family);color:inherit;border-top:1px solid var(--card-separator-color);padding-top:7px}.stack-app .search{margin-top:30px}.stack-app .search label{display:block;font-size:11px;color:inherit;letter-spacing:1px;margin-bottom:7px}.stack-app .search input{width:100%;border:1px solid var(--card-separator-color);background:var(--card-background);color:inherit;padding:10px 11px;border-radius:var(--card-border-radius);font-size:12px}.stack-app .search input::placeholder{color:inherit}.stack-app .chapter-switch{display:flex;gap:5px;margin:23px 0}.stack-app .chapter-switch button{flex:1;min-width:0;padding:8px 3px;border:0;background:transparent;color:inherit;font-size:11px;border-bottom:1px solid var(--card-separator-color)}.stack-app .chapter-switch .active{color:inherit;border-color:var(--card-separator-color)}.stack-app .nav-caption{font-size:11px;letter-spacing:1px;color:inherit;margin:0 0 10px}.stack-app #directory{overflow:auto;min-height:0;flex:1;scrollbar-width:thin;scrollbar-color:#668575 transparent}.stack-app #directory a{display:flex;gap:9px;color:inherit;text-decoration:none;font-size:12px;line-height:1.75;padding:10px 8px;margin-right:3px;border-left:1px solid var(--card-separator-color)}.stack-app #directory a span{font-family:var(--base-font-family);color:inherit;min-width:22px}.stack-app #directory a.active{background:var(--card-background);border-left-color:var(--card-separator-color);color:inherit}.stack-app #directory a:hover{background:var(--card-background)}.stack-app .nav-done{margin-left:auto;color:inherit!important}.stack-app .sidebar-foot{padding-top:17px;border-top:1px solid var(--card-separator-color);font-size:11px;color:inherit;margin-top:16px}.stack-app .sidebar-foot a{color:inherit;font-size:11px}.stack-app .progress-track{height:3px;background:var(--card-background);margin:8px 0 11px}.stack-app .progress-track span{display:block;height:100%;width:0;background:var(--card-background);transition:width .2s}.stack-app main{margin-left:276px;padding:0 clamp(26px,5vw,82px);min-width:0}.stack-app .topbar{display:flex;justify-content:space-between;gap:18px;padding:23px 0;border-bottom:1px solid var(--card-separator-color);font-size:11px;letter-spacing:1px;color:inherit}.stack-app .topbar a{text-decoration:none;color:inherit}.stack-app #content{max-width:890px;margin:0 auto}.stack-app .hero{padding:70px 0 36px}.stack-app .eyebrow{font-size:11px;color:inherit;letter-spacing:2px;margin:0 0 22px}.stack-app h1,
.stack-app h2,
.stack-app h3{color:inherit}.stack-app h1,
.stack-app h2{font-family:var(--base-font-family)}.stack-app h1{font-size:clamp(36px,4.5vw,64px);font-weight:400;line-height:1.4;letter-spacing:.03em;margin:0 0 25px}.stack-app h1 em{font-style:normal;color:inherit}.stack-app .hero-intro{max-width:600px;font-size:18px;color:inherit}.stack-app .hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin:27px 0 45px}.stack-app .action,
.stack-app button#mastered{display:inline-block;background:var(--card-background);color:inherit;border:1px solid var(--card-separator-color);padding:11px 19px;font-size:13px;text-decoration:none;border-radius:var(--card-border-radius)}.stack-app .action.secondary{background:transparent;color:inherit}.stack-app .chapter-index{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:23px;margin:24px 0 48px}.stack-app .chapter-card{border-top:1px solid var(--card-separator-color);padding:21px 0 20px;text-decoration:none;color:inherit}.stack-app .chapter-card .number{font-family:var(--base-font-family);color:inherit}.stack-app .chapter-card h2{font-size:24px;margin:18px 0 12px}.stack-app .chapter-card p{font-size:13px;color:inherit;margin:0 0 17px}.stack-app .chapter-card .go{font-size:12px;color:inherit}.stack-app .learning-note{border-top:1px solid var(--card-separator-color);padding:27px 0;margin-top:22px}.stack-app .learning-note h2{font-size:24px;margin:0 0 15px}.stack-app .learning-note p{font-size:14px}.stack-app .lesson{padding:46px 0 14px;animation:arrive .25s ease-out}.stack-app .lesson h1{font-size:clamp(29px,3.2vw,44px);margin-bottom:25px}.stack-app .lesson h2{font-size:25px;line-height:1.7;margin:37px 0 16px;font-weight:600}.stack-app .lesson h3{font-size:18px;margin:30px 0 12px;line-height:1.8}.stack-app .lesson p{margin:0 0 1.15em;overflow-wrap:anywhere}.stack-app .lesson ul,
.stack-app .lesson ol{padding-left:1.5em}.stack-app .lesson li{margin-bottom:.55em}.stack-app .goal{padding:17px 20px;border-left:1px solid var(--card-separator-color);background:var(--card-background);font-size:14px;margin:25px 0 29px}.stack-app .goal p{margin:0 0 8px}.stack-app .goal p:last-child{margin:0}.stack-app .goal .why{color:inherit}.stack-app .eq{font-family:var(--base-font-family);font-size:19px;text-align:center;background:var(--card-background);border-top:1px solid var(--card-separator-color);border-bottom:1px solid var(--card-separator-color);padding:17px 12px;margin:23px 0;overflow:auto}.stack-app .eq math{display:block;min-width:max-content;margin:auto}.stack-app math{font-family:var(--base-font-family)}.stack-app .over{text-decoration:overline}.stack-app blockquote{border-left:1px solid var(--card-separator-color);padding:5px 0 5px 19px;margin:25px 0;color:inherit}.stack-app blockquote p:last-child{margin:0}.stack-app .table-wrap{overflow:auto;margin:24px 0}.stack-app table{width:100%;border-collapse:collapse;font-size:14px;line-height:1.8}.stack-app th,
.stack-app td{padding:12px 14px;border-bottom:1px solid var(--card-separator-color);text-align:left;vertical-align:top}.stack-app th{background:var(--card-background);font-weight:600}.stack-app .widget{margin:30px 0;border-top:1px solid var(--card-separator-color);border-bottom:1px solid var(--card-separator-color);padding:18px 0 12px;break-inside:avoid}.stack-app .widget iframe{display:block;width:100%;height:410px;border:0;background:transparent}.stack-app .widget figcaption{font-size:12px;line-height:1.8;color:inherit;padding:12px 5px 0}.stack-app .widget .figure-no{color:inherit;font-weight:600}.stack-app .answer{border-top:1px solid var(--card-separator-color);border-bottom:1px solid var(--card-separator-color);padding:13px 0;margin:24px 0;font-size:15px}.stack-app .answer summary{color:inherit;cursor:pointer;font-weight:600}.stack-app .answer>div,
.stack-app .answer-body{padding-top:17px}.stack-app .step{counter-increment:step}.stack-app .source-note,
.stack-app .scope{font-size:13px;color:inherit}.stack-app .lesson pre{padding:20px;background:var(--card-background);color:inherit;overflow:auto;font-size:13px;line-height:1.8;border-radius:var(--card-border-radius)}.stack-app .lesson code{font-family:Consolas,monospace}.stack-app #lesson-actions{max-width:890px;margin:25px auto 0;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:28px 0;border-top:1px solid var(--card-separator-color)}.stack-app button.quiet{border:0;background:transparent;color:inherit;font-size:12px;padding:10px}.stack-app button#mastered.done{background:transparent;color:inherit}.stack-app footer{max-width:890px;margin:30px auto 0;padding:24px 0 32px;border-top:1px solid var(--card-separator-color);font-size:11px;color:inherit;display:flex;justify-content:space-between;gap:20px}.stack-app .mobile-menu{display:none}.stack-app .search-empty{font-size:12px;color:inherit;padding:10px}.stack-app .reading-meta{display:flex;gap:18px;flex-wrap:wrap;font-size:12px;color:inherit;margin:-8px 0 24px}.stack-app .review-links{display:flex;flex-wrap:wrap;gap:9px}.stack-app .review-links a{border-bottom:1px solid var(--card-separator-color);padding:5px 8px;font-size:13px}.stack-app .toc-heading{font-size:12px;color:inherit}.stack-app .warning{border-left-color:var(--card-separator-color)}.stack-app .logical-overline{border-top:1px solid var(--card-separator-color);padding-top:.05em}.stack-app .logical-overline>mo:last-child{visibility:hidden}.stack-app #content svg{max-width:100%}.stack-app .math-inline{white-space:nowrap}
@keyframes arrive{from{opacity:.4;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}
@media(min-width:1500px){.stack-app main{padding-inline:110px}}
@media(max-width:1050px){.stack-app #sidebar{width:244px;padding-inline:17px}.stack-app main{margin-left:244px;padding-inline:28px}.stack-app .chapter-index{gap:15px}.stack-app .chapter-card h2{font-size:21px}.stack-app footer{display:block}.stack-app footer span{display:block}}
@media(max-width:760px){.stack-app .mobile-menu{display:block;position:fixed;right:14px;top:12px;z-index:12;background:var(--card-background);color:inherit;border:0;padding:9px 15px;font-size:13px;border-radius:var(--card-border-radius)}.stack-app #sidebar{width:min(310px,87vw);transform:translateX(-100%);transition:transform .2s;box-shadow:var(--shadow-l1)}.stack-app.menu-open #sidebar{transform:translateX(0)}.stack-app main{margin-left:0;padding-inline:22px}.stack-app .topbar{padding-right:62px}.stack-app .topbar span{display:none}.stack-app .hero{padding-top:43px}.stack-app .hero-intro{font-size:16px}.stack-app .chapter-index{grid-template-columns:1fr;gap:0}.stack-app .chapter-card{display:grid;grid-template-columns:55px 1fr;gap:0 18px;padding:22px 0}.stack-app .chapter-card .number{grid-row:span 3;font-size:38px}.stack-app .chapter-card h2{font-size:23px;margin:0 0 8px}.stack-app .chapter-card p{margin-bottom:8px}.stack-app .lesson{padding-top:30px}.stack-app{}.stack-app .lesson h2{font-size:23px}.stack-app .widget{margin-inline:-22px}.stack-app .widget figcaption{padding-inline:20px}.stack-app #lesson-actions{flex-wrap:wrap}.stack-app button#mastered{order:-1;width:100%;font-size:13px}.stack-app .eq{font-size:17px}.stack-app .goal{padding:15px}.stack-app .reading-meta{font-size:11px}.stack-app th,
.stack-app td{padding:10px 8px}.stack-app .hero-actions{margin-bottom:28px}.stack-app footer{font-size:10px}}
@media(prefers-reduced-motion:reduce){.stack-app *{scroll-behavior:auto!important;animation:none!important;transition:none!important}}
@media(max-width:760px){.stack-app #sidebar{visibility:hidden}.stack-app.menu-open #sidebar{visibility:visible}}
.stack-app .chapter-switch{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin:18px 0}.stack-app .chapter-switch button:last-child{grid-column:span 2}.stack-app .chapter-index{grid-template-columns:repeat(6,minmax(0,1fr))}.stack-app .chapter-card{grid-column:span 2}.stack-app .chapter-card:nth-child(-n+2){grid-column:span 3}
@media(max-width:760px){.stack-app .chapter-index{grid-template-columns:1fr}.stack-app .chapter-card,
.stack-app .chapter-card:nth-child(-n+2){grid-column:1}}
@media print{.stack-app #sidebar,
.stack-app .mobile-menu,
.stack-app .topbar,
.stack-app #lesson-actions,
.stack-app .hero-actions{display:none!important}.stack-app main{margin:0;padding:0}.stack-app{background:var(--card-background)}.stack-app .lesson{padding-top:0}.stack-app .widget{margin-inline:0}.stack-app .widget iframe{break-inside:avoid}.stack-app footer{font-size:9pt}.stack-app .eq{font-size:12pt}.stack-app details:not([open])>div{display:block}.stack-app h1,
.stack-app h2,
.stack-app h3{break-after:avoid}@page{size:A4;margin:18mm}}

.stack-app .chapter-switch button:last-child{grid-column:auto}.stack-app .chapter-card:nth-child(-n+2){grid-column:span 2}@media(max-width:760px){.stack-app .chapter-card:nth-child(-n+2){grid-column:1}}
.stack-app .chapter-switch button:last-child{grid-column:span 2}.stack-app .chapter-card:last-child{grid-column:1/-1}.stack-app .formula{padding:15px 18px;border-left:1px solid var(--card-separator-color);background:var(--card-background);font-family:var(--base-font-family);overflow-wrap:anywhere}.stack-app .lesson table{overflow-wrap:anywhere}.stack-app .pulse-lab{min-width:0}
.stack-app .lesson h1,
.stack-app .lesson h2,
.stack-app .lesson h3{overflow-wrap:anywhere}

/* Eight chapters: retain the established grid and give the last pair equal room. */
.stack-app .chapter-switch button:last-child{grid-column:auto}.stack-app .chapter-card:last-child{grid-column:span 2}@media(min-width:761px){.stack-app .chapter-card:nth-last-child(-n+2){grid-column:span 3}}@media(max-width:760px){.stack-app .chapter-card:last-child{grid-column:1}}

/* Eight textbook chapters plus the separately named appendix section. */
.stack-app .chapter-switch button:last-child{grid-column:span 2}@media(min-width:761px){.stack-app .chapter-card:nth-last-child(-n+2){grid-column:span 2}}
