:root{color-scheme:light;--paper:#fafbf8;--ink:#152b36;--accent:#2860c7;--tint:#eaf1f4;--sans:system-ui, -apple-system, "Segoe UI", Arial, sans-serif;--serif:"Source Serif 4", Georgia, serif;--display:var(--serif)}html[lang=th]{--sans:"Anuphan", "Thonburi", Tahoma, sans-serif;--serif:"Noto Serif Thai", serif;--display:var(--sans)}html[lang=en]{--sans:"Schibsted Grotesk", system-ui, -apple-system, "Segoe UI", Arial, sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{color:var(--ink);background:var(--paper);font:16px/1.55 var(--sans);margin:0}a{color:inherit;text-underline-offset:.2em}a:hover{text-decoration-thickness:2px}button,input,textarea,select{font:inherit}button,.button{border:1px solid var(--accent);background:var(--accent);color:#fff;cursor:pointer;border-radius:4px;min-height:44px;padding:.5rem .85rem;font-size:15px;font-weight:700;line-height:1.35;text-decoration:none;transition:transform .16s,background-color .16s;display:inline-block}button:hover,.button:hover{color:#fff;background:#204f9a;border-color:#204f9a}button:active,.button:active{transform:translateY(2px)}.secondary{color:var(--ink);background:0 0;border-color:#a8b4b9}:focus-visible{outline:3px solid var(--accent);outline-offset:4px}main:focus-visible{outline:none}.skip{z-index:10;background:#fff;padding:.5rem;position:absolute;top:-100px;left:1rem}.skip:focus{top:1rem}.masthead{justify-content:space-between;align-items:center;gap:1.5rem;padding:.75rem clamp(1.25rem,2.5vw,2rem);display:flex}.brand{letter-spacing:-.06em;font-size:1.6rem;font-weight:800;line-height:1;text-decoration:none}.masthead nav{gap:2rem;font-size:1rem;font-weight:700;display:flex}.masthead nav a{text-decoration:none}.masthead nav a:hover,.masthead nav a[aria-current]{text-decoration:underline 2px}.masthead .top-nav a{align-items:center;min-height:44px;display:inline-flex}.layout{grid-template-columns:235px minmax(0,1fr);display:grid}aside{background:var(--paper)}.side-inner{scrollbar-gutter:stable;max-height:100dvh;padding:1.5rem;font-size:15px;line-height:1.4;position:sticky;top:0;overflow:auto}.side-title{margin:0 0 .8rem;font-weight:800}.side-title:not(:first-child){margin-top:2rem}.chapter-nav,.lesson-nav{margin:0;padding:0;list-style:none}.chapter-nav li,.lesson-nav li{margin:.75rem 0}.side-inner a{text-decoration:none}.side-inner a:hover,.side-inner a[aria-current]{color:var(--accent);text-decoration:underline}.book-section-nav{padding-left:.75rem;font-size:14px;list-style:none}main{min-width:0;padding:clamp(1.25rem,2.5vw,2rem)}body[data-area=book] main{padding:0}body.book-home .layout{display:block}body.book-home #sidebar{display:none}h1,h2,h3{font-family:var(--display);letter-spacing:-.015em;text-wrap:balance;font-weight:600;line-height:1.15}h1{margin:0 0 1.5rem;font-size:clamp(2rem,3vw,2.5rem)}h2{margin:2.5rem 0 1rem;font-size:clamp(1.5rem,2vw,1.75rem)}h3{font-size:1.25rem}p{margin:0 0 1rem}.reading,.book-prose{max-width:65ch;font:19px/1.6 var(--serif)}.reading p,.book-prose p{text-wrap:pretty}.lead{max-width:42ch;font-size:18px;line-height:1.5}.breadcrumb,.note,.credit,.source{font-size:16px}.breadcrumb{margin-bottom:1rem}.book-cover{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;gap:2rem clamp(2rem,5vw,5rem);max-width:1360px;margin:auto;padding:clamp(2.5rem,5vw,5rem) clamp(1.25rem,3vw,2.5rem) 2rem;display:grid}.book-cover h1{margin:0 0 1.5rem;font-size:clamp(3rem,4vw,3.75rem);font-weight:500;line-height:1.03}.book-cover .button{margin:.5rem 0 1rem}.credit{max-width:44ch}.book-cover .credit{grid-column:1/-1;max-width:90ch;margin:0;font-size:14px;line-height:1.45}.chapter-art{width:100%;height:auto;display:block}.chapter-art text{fill:var(--ink);stroke:none;font-family:var(--sans)}.chapter-header-art .chapter-art text{font-size:26px}.pixel:hover{background:var(--ink)}.book-directory{max-width:1360px;margin:auto;padding:3rem clamp(1.25rem,3vw,2.5rem) 5rem}.directory-heading{border-top:1px solid #aab9bb;justify-content:space-between;align-items:end;gap:2rem;margin-bottom:2rem;padding-top:1rem;display:flex}.directory-heading h2{margin:0;font-size:1.75rem}.directory-heading p{max-width:28ch;margin:0}.book-contents{grid-template-columns:repeat(2,minmax(0,1fr));gap:3rem clamp(2rem,4vw,4rem);display:grid}.chapter-spread{min-width:0;color:var(--ink);text-decoration:none;display:block}.chapter-spread .spread-art{background:#f4f2ec;overflow:hidden}.chapter-spread .chapter-art text{font-size:18px}.chapter-spread:hover h3{color:var(--accent);text-decoration:underline}.spread-copy{grid-template-columns:minmax(4rem,auto) minmax(0,1fr);align-items:baseline;column-gap:1rem;min-width:0;padding:1rem 2rem 0 0;display:grid;position:relative}.spread-copy>span:first-child{color:#52636d;font-variant-numeric:tabular-nums;font-size:13px;font-weight:700}.spread-copy h3{margin:0 0 .4rem;font-size:clamp(1.375rem,2vw,1.75rem)}.spread-copy p{grid-column:2;max-width:38ch;margin:0;font-size:15px;line-height:1.5}.spread-arrow{font-size:1.25rem;position:absolute;top:1rem;right:0}.book-chapter-header{grid-template-columns:minmax(0,1fr) minmax(0,.85fr);align-items:center;gap:clamp(2rem,4vw,4rem);max-width:1280px;margin:auto;padding:2.5rem clamp(1.25rem,2.5vw,2rem);display:grid}.book-chapter-header h1{max-width:17ch;margin:.5rem 0 1rem;font-size:clamp(2.25rem,3.5vw,3.25rem)}.book-body{max-width:1280px;margin:auto;padding:0 clamp(1.25rem,2.5vw,2rem) 3rem}.book-section{padding:2rem 0}.book-section h1,.book-section h2,.book-section h3{max-width:34ch;margin:0 0 1.15rem;scroll-margin-top:1rem;font-size:clamp(1.625rem,2vw,1.875rem)}.book-section h1 span,.book-section h2 span,.book-section h3 span{letter-spacing:0;color:#52636d;margin-right:.5em;font-size:.58em;display:inline}.book-paragraph{margin-bottom:1.35rem}.book-paragraph p{margin-bottom:.7rem}.explore{font:600 15px/1.5 var(--sans)}.book-closing{margin-top:1.5rem}.book-return{font-weight:700}.book-activity,.book-quiz{font-family:var(--sans);margin:2rem 0;padding:0}.book-section .activity-header h3,.book-section .penguin-lab>h3,.book-quiz h2,.experiment h2,.experiment h3{font-family:var(--sans);letter-spacing:0;font-weight:650}.book-section .activity-header h3,.book-section .penguin-lab>h3,.book-quiz h2{margin:0 0 .35rem;font-size:1.375rem}.activity-header>span{color:#52636d;margin-bottom:.5rem;font-size:14px;font-weight:600;display:block}.activity-header p,.activity-readout,.quiz-feedback{max-width:65ch}.activity-header p{margin-bottom:1rem}.activity-stage{background:#f4f2ec;padding:.75rem}.activity-stage svg{width:100%;max-width:1100px;font-family:var(--sans);margin:auto;display:block}.activity-stage svg[data-columns="1"]{max-width:680px}.activity-controls{flex-wrap:wrap;align-items:end;gap:.75rem;margin:.9rem 0;display:flex}.book-activity{background:#f4f2ec;padding:clamp(1rem,2vw,1.5rem)}.book-activity .activity-stage{padding:.5rem 0}.activity-input{flex:250px;gap:.35rem;min-width:0;display:grid}.activity-input label{flex-wrap:wrap;gap:.5rem;display:flex}.activity-input output{font-variant-numeric:tabular-nums;font-weight:650}.activity-choices{flex-wrap:wrap;gap:.5rem;display:flex}.activity-choices button{color:var(--ink);background:0 0;border-color:#a8b4b9}.activity-choices button:hover,.activity-choices button[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:#fff}.activity-readout{font-size:16px;line-height:1.5}input[type=range],.quiz-options input{accent-color:var(--accent);max-width:100%}.book-quiz{max-width:70ch;padding-top:1.5rem}.quiz-question{border:0;margin:1.25rem 0;padding:.5rem 0 0}.book-quiz legend{font-weight:650}.quiz-options{gap:.25rem;display:grid}.quiz-options label{cursor:pointer;border-radius:4px;align-items:center;gap:.7rem;min-height:44px;padding:.55rem .65rem;font-weight:400;display:flex}.quiz-options label:hover,.quiz-options label:has(input:checked){background:#eaf1f4}.quiz-question[data-status=missing]{border-left:3px solid #a87631;padding-left:.75rem}.quiz-question[data-status=correct]{border-left:3px solid #315c43;padding-left:.75rem}.quiz-question[data-status=retry]{border-left:3px solid #844837;padding-left:.75rem}.quiz-question[data-status=correct] label:has(input:checked){background:#dcece0}.quiz-question[data-status=retry] label:has(input:checked){background:#f4e4dc}.quiz-options label:focus-within{outline:2px solid var(--accent);outline-offset:2px}.quiz-feedback{font-weight:600}.quiz-feedback:empty{display:none}.cover{grid-template-columns:1fr 1fr;align-items:center;gap:1.5rem;display:grid}.cover .button{margin:1rem 0 2rem}.cover-figure{background:var(--tint);padding:1.5rem}.cover-figure svg,.result-visual svg{width:100%}.cover-figure .axis,.result-visual .axis{stroke:var(--ink);stroke-width:2px;fill:none}.cover-figure .plot{stroke:var(--accent);stroke-width:4px;fill:none}.cover-figure circle,.result-visual circle{fill:var(--accent)}.cover-figure text,.result-visual text{fill:var(--ink);font:16px var(--sans)}.cover-figure label{justify-content:space-between;font-weight:700;display:flex}.cover-figure input{width:100%}.home-contents:not(.book-directory){margin-top:2rem}label{font-weight:700}input[type=search],input[type=number],select{width:100%;min-height:44px;color:var(--ink);background:#fff;border:2px solid #8da3ad;border-radius:0;padding:.65rem;display:block}input[type=search]{max-width:36rem;margin:.5rem 0 1rem}.chapter-list a{grid-template-columns:minmax(170px,1fr) 2fr auto;gap:1rem;padding:1rem 0;text-decoration:none;display:grid}.chapter-list a:hover strong{color:var(--accent);text-decoration:underline}.formula{max-width:100%;padding:1rem 0;font-size:1.1rem;overflow-x:auto}.formula .katex-display,.formula .katex-display>.katex{text-align:left;margin:0}.classification{max-width:75ch}.symbols div{grid-template-columns:minmax(6rem,auto) 1fr;gap:1rem;padding:.6rem 0;display:grid}.symbols dd{margin:0}.experiment{background:#f4f1e9;margin:2rem 0;padding:1.25rem}.experiment h2{margin-top:0}.controls{grid-template-columns:repeat(auto-fit,minmax(140px,200px));gap:1rem;margin:1.5rem 0;display:grid}.controls input{margin-top:.4rem}.code-label{margin-bottom:.5rem;display:block}.code-editor{background:#fff;position:relative;overflow:hidden}.code-editor pre,.code-editor textarea{letter-spacing:0;tab-size:2;white-space:pre;border:0;border-radius:0;width:100%;height:100%;margin:0;padding:1rem;font:16px/1.6 ui-monospace,SFMono-Regular,Consolas,monospace;position:absolute;inset:0;overflow:auto}.code-editor pre{pointer-events:none;color:var(--ink)}.code-editor pre code{font:inherit}.code-editor textarea{resize:none;color:#0000;caret-color:var(--ink);-webkit-text-fill-color:transparent;background:0 0}.code-editor textarea::selection{background:#a9c9f5}.code-editor textarea:focus-visible{outline:3px solid var(--accent);outline-offset:-3px}.token.comment{color:#52606c}.token.keyword,.token.atrule{color:#703855;font-weight:600}.token.string,.token.char{color:#146037}.token.number,.token.boolean{color:#87420d}.token.function{color:#17598a}.token.operator,.token.punctuation{color:#303840}.token.constant,.token.class-name{color:#634184}.actions{flex-wrap:wrap;gap:.7rem;margin:1rem 0;display:flex}.result-list,.result-value{font-family:var(--sans);font-variant-numeric:tabular-nums}.result-list{margin:0}.result-list div{grid-template-columns:minmax(10rem,1fr) 2fr;gap:1rem;padding:.65rem 0;display:grid}.result-list dt{font-weight:700}.result-list dd{overflow-wrap:anywhere;margin:0;font-size:16px}.result-value{overflow-wrap:anywhere}.result-visual{max-width:500px}.result-visual .target-mark{stroke:var(--ink);stroke-width:3px}.source{margin-top:2rem}.selected-occurrence,.source-occurrences{border-left:4px solid var(--accent);background:var(--tint);margin:2rem 0;padding:.25rem 1.25rem}.selected-occurrence h2,.source-occurrences h2{margin-top:1rem}.next-prev{justify-content:space-between;gap:2rem;margin-top:2rem;padding-top:1rem;display:flex}.next-prev a:last-child{text-align:right}.reference{max-width:1000px}.reference>p{max-width:70ch}.filters{flex-wrap:wrap;gap:1rem;margin:1.5rem 0;display:flex}.filters label{min-width:150px}.filters select{margin-top:.4rem}.occurrence{padding:1.5rem 0}.occurrence p{margin:.4rem 0}.glossary-entry{grid-template-columns:minmax(7rem,1fr) 4fr;gap:2rem;padding:1.5rem 0;display:grid}.glossary-entry h2{margin:0}.chapter-lessons{margin-top:3rem}.chapter-lessons ul,.overview-list{columns:2;column-gap:3rem}.chapter-lessons li,.overview-list li{break-inside:avoid}.chapter-lessons a[aria-current=page]{font-weight:700}.overview-list{margin:1rem 0;padding:0;list-style:none}.overview-list a{padding:.7rem 0;display:block}.chapter-contents-link{margin-top:2rem}.basics{max-width:75ch}.basics pre{background:var(--tint);padding:1rem;font:16px/1.6 ui-monospace,SFMono-Regular,Consolas,monospace;overflow-x:auto}.basics pre code{font:inherit}noscript{padding:2rem;display:block}@media (width<=1000px){.chapter-art text{font-size:24px}.book-cover{grid-template-columns:1fr;gap:2rem}.book-cover h1{font-size:clamp(2rem,6vw,3.5rem)}.book-cover .credit{grid-column:1}}@media (width<=900px){.layout{flex-direction:column;display:flex}.layout main{order:0}.layout>aside{order:-1}.side-inner{max-height:none;padding:.5rem clamp(1.25rem,2.5vw,2rem);position:static;overflow:visible}.side-title{margin:.25rem 0}.side-title:not(:first-child){margin-top:.5rem}.chapter-nav,.lesson-nav,.book-section-nav{overscroll-behavior-x:contain;gap:1rem;margin:0;padding:0;display:flex;overflow-x:auto}.chapter-nav li,.lesson-nav li,.book-section-nav li{flex:none;margin:0}.side-inner a{align-items:center;min-height:44px;padding:.5rem 0;display:inline-flex}.chapter-header-art{max-width:480px}.book-contents{grid-template-columns:1fr;gap:2.5rem}}@media (width<=700px){body{font-size:16px}.masthead{padding:.75rem 1.25rem}.masthead nav{gap:1.2rem}.cover{grid-template-columns:1fr}.book-cover{gap:1.5rem;padding:1.5rem 1.25rem}.book-cover h1{font-size:clamp(2rem,8vw,2.25rem)}.directory-heading{display:block}.directory-heading p{margin-top:.5rem}.chapter-spread .chapter-art text{font-size:24px}.book-chapter-header,.book-body{padding-left:1.25rem;padding-right:1.25rem}.book-chapter-header{grid-template-columns:1fr;gap:1rem}.book-chapter-header h1{max-width:none;font-size:clamp(2rem,7vw,2.25rem)}.book-prose,.reading{font-size:18px}.book-section{padding:1.5rem 0}.chapter-list a{grid-template-columns:1fr auto}.chapter-list a span:nth-child(2){grid-column:1}.chapter-list a span:last-child{grid-area:1/2}.symbols div,.glossary-entry,.result-list div{grid-template-columns:1fr;gap:.4rem}.chapter-lessons ul,.overview-list{columns:1}}@media (forced-colors:active){.code-editor pre{visibility:hidden}.code-editor textarea{color:canvastext;-webkit-text-fill-color:CanvasText;caret-color:canvastext}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important;animation:none!important}}.section-source{color:var(--muted,#53626d);margin:-.4rem 0 1rem;font-size:14px}.section-source a{color:inherit}.book-section .book-prose{max-width:none}.book-section .book-paragraph>p{max-width:65ch}.book-calculation{border-top:1px solid #b5c1c1;border-bottom:1px solid #b5c1c1;grid-template:"math code"min-content"caption code"min-content"references code"1fr/minmax(0,1fr) minmax(0,1fr);align-items:start;gap:0 clamp(1.5rem,3vw,2.5rem);min-width:0;margin:1.5rem 0 2rem;padding:1.25rem 0;display:grid}.calculation-grid{grid-area:math;min-width:0}.calculation-reading,.book-example{min-width:0}.book-calculation .calculation-formulas{gap:.2rem;display:grid}.book-calculation .calculation-formula,.book-calculation .calculation-substitution{max-width:100%;padding:.2rem 0;overflow:auto hidden}.book-calculation .katex-display{text-align:left;margin:.3rem 0}.book-calculation .katex-display>.katex{text-align:left}.book-calculation .calculation-formula{font-size:.94em}.book-calculation .calculation-substitution{color:var(--ink);font-size:1.02em}.math-context{color:#425463;font:600 14px/1.5 var(--sans);margin:0 0 .3rem}.math-context-note{font:14px/1.45 var(--sans);margin:.35rem 0;display:block}.book-calculation figcaption{font:16px/1.55 var(--sans);grid-area:caption;margin:.4rem 0}.calculation-references{font:14px/1.5 var(--sans);flex-wrap:wrap;grid-area:references;gap:.35rem;display:flex;margin:.35rem 0!important}.calculation-references a{overflow-wrap:anywhere}.book-example{font:15px/1.5 var(--sans);grid-area:code;padding:0}.book-example>label{margin-bottom:.35rem;font-weight:700;display:block}.book-code-editor{background:#f2f4ef;position:relative}.book-code-editor pre,.book-code-editor textarea{letter-spacing:0;tab-size:2;white-space:pre;overflow-wrap:normal;word-break:normal;scrollbar-gutter:stable;border:0;border-radius:0;width:100%;margin:0;padding:.7rem;font:15px/1.5 ui-monospace,SFMono-Regular,Consolas,monospace;overflow:auto}.book-code-editor pre{color:var(--ink)}.book-code-editor.is-editable pre{pointer-events:none;height:100%;position:absolute;inset:0}.book-code-editor pre code{font:inherit}.book-code-editor textarea:not([hidden]){resize:none;color:#0000;caret-color:var(--ink);-webkit-text-fill-color:transparent;background:0 0;display:block}.book-code-editor textarea::selection{background:#a9c9f5}.book-code-editor textarea:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.book-code-actions{flex-wrap:wrap;gap:.5rem;margin-top:.75rem;display:flex}.book-code-actions .secondary{border-color:#9aa6aa}.book-code-actions [data-preset][aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:#fff}.book-code-result{overflow-wrap:anywhere;margin-top:.5rem}.book-code-result [data-result]{font-family:var(--sans);font-variant-numeric:tabular-nums}.book-calculation .math-error{color:#9c2828}@media (forced-colors:active){.book-code-editor.is-editable pre{visibility:hidden}.book-code-editor textarea{color:canvastext;-webkit-text-fill-color:CanvasText;caret-color:canvastext}}.book-activity .activity-stage{min-height:200px}@media (width<=1200px){.book-calculation{grid-template:"math""caption""code""references"/minmax(0,1fr);row-gap:.75rem}}@media (width<=700px){.book-calculation{margin:.8rem 0 1.1rem}.book-calculation .calculation-formula{font-size:.88em}.book-activity{margin:1.5rem 0}}@media (width<=375px){.chapter-spread .chapter-art text{font-size:28px}}.masthead .brand{letter-spacing:-.035em;flex-direction:column;max-width:min(50vw,430px);font-size:.94rem;font-weight:800;line-height:1.2;display:flex}.masthead .brand small{letter-spacing:0;margin-top:.15rem;font-size:.73rem;font-weight:500;line-height:1.2;display:block}.book-cover h1 span{letter-spacing:-.02em;margin-top:.32em;font-size:clamp(1.125rem,.48em,1.875rem);font-weight:500;line-height:1.2;display:block}.book-cover-static{max-width:970px;margin:1.5rem auto;padding:clamp(1.5rem,3vw,3rem)}.book-cover-static h1{max-width:24ch;font-size:clamp(2rem,4vw,3rem);line-height:1.17}.book-cover-static .static-chapter-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem 1.5rem;padding-left:1.4rem;display:grid}.book-cover-static .static-chapter-list li{padding:.2rem}.static-lesson-list{columns:2;max-width:1000px}.static-lesson-list li{break-inside:avoid;padding:.2rem 0}.no-script{padding:1rem 2rem;font-size:14px}.not-found-page main{max-width:70ch;margin:4rem auto;padding:2rem}@media (width<=720px){.masthead{gap:.8rem}.masthead .brand{font-size:.875rem}.masthead .brand small{font-size:.67rem}.masthead nav{gap:.8rem;font-size:.85rem}.book-cover-static .static-chapter-list,.static-lesson-list{columns:1;display:block}}.languages{white-space:nowrap;align-items:center;display:flex;gap:.2rem!important;font-size:.8rem!important;font-weight:600!important}.masthead .languages a{border:1px solid #0000;border-radius:4px;justify-content:center;align-items:center;min-width:2.75rem;min-height:44px;padding:.42rem .48rem;font-weight:600;text-decoration:none;display:inline-flex}.masthead .languages a:hover{border-color:#9db4cf}.masthead .languages a[aria-current=true]{color:#204f9a;background:#eaf1f4;border-color:#aac3e0;text-decoration:none}.translation-note{max-width:65ch;font:14px/1.5 var(--sans);color:#4d6170;border-left:2px solid #bed0d9;margin:.85rem 0 1.3rem;padding:.3rem 0 .3rem .8rem}html[lang=th] h1,html[lang=th] h2,html[lang=th] h3{letter-spacing:0;font-weight:600;line-height:1.3}html[lang=th] h3{font-weight:500}html[lang=th] .reading,html[lang=th] .book-prose{line-height:1.7}html[lang=th] .book-cover h1,html[lang=th] .book-cover h1 span,html[lang=th] .book-chapter-header h1,html[lang=th] .book-section h2,html[lang=th] .book-section h3{letter-spacing:0;line-height:1.3}html[lang=ru] .book-chapter-header h1,html[lang=ru] .book-section h2{letter-spacing:-.015em;line-height:1.22}@media (width<=760px){.masthead{grid-template-columns:minmax(0,1fr) auto;gap:.45rem .6rem;padding:.65rem 1.1rem;display:grid}.masthead .brand{overflow-wrap:normal;grid-area:1/1;max-width:none}.masthead .top-nav{grid-area:2/1;gap:1.15rem}.masthead .languages{grid-area:1/2/span 2;gap:0!important}.masthead .languages a{min-width:44px;padding-inline:.2rem}}@media (width<=380px){.masthead .brand small{font-size:.63rem}.masthead .top-nav{font-size:.78rem}}.book-directory-sections{max-width:68ch}.book-directory-sections ol{padding:0;list-style:none}.book-directory-sections li{margin:.7rem 0}@media (width<=900px){body[data-area=book] .layout>aside{z-index:5;background:var(--paper);position:sticky;top:0}body[data-area=book] .side-title,.book-reading .side-inner .chapter-nav,.book-reading .masthead .brand small,.book-home .masthead .brand small{display:none}.book-reading .book-section h2,.book-reading .book-section h3{scroll-margin-top:5rem}}@media (width<=500px){.masthead .brand{grid-area:1/1/auto/-1}.masthead .top-nav{grid-area:2/1/auto/-1}.masthead .languages{grid-area:3/1/auto/-1;justify-content:flex-start}}@media (width<=900px){.book-reading .side-inner{padding-block:0}.book-reading .masthead,.book-home .masthead{row-gap:.15rem;padding-block:.4rem}}@media (width>=360px) and (width<=500px){.book-reading .masthead,.book-home .masthead{grid-template-columns:auto minmax(0,1fr)}.book-reading .masthead .brand,.book-home .masthead .brand{grid-area:1/1/auto/-1}.book-reading .masthead .top-nav,.book-home .masthead .top-nav{flex-wrap:wrap;grid-area:2/1}.book-reading .masthead .languages,.book-home .masthead .languages{flex-wrap:wrap;grid-area:2/2;justify-content:flex-end}}.activity-actions{flex-wrap:wrap;gap:.5rem;margin:.75rem 0;display:flex}.activity-choices button,.activity-actions button,.skyline-controls button,[data-question-check],[data-draw]{min-height:44px}.activity-choices output{text-align:center;font-variant-numeric:tabular-nums;align-self:center;min-width:2.5rem;font-weight:650}.activity-items button{align-items:center;gap:.45rem;display:inline-flex;position:relative}.activity-items svg{flex:none;width:48px;height:48px}.selection-mark{visibility:hidden;font-weight:700}.activity-items [aria-pressed=true] .selection-mark{visibility:visible}.skyline-controls{flex-wrap:wrap;gap:.75rem;display:flex}.skyline-controls>div{flex-wrap:wrap;align-items:center;gap:.35rem;display:flex}.skyline-controls strong{min-width:2.5rem}.activity-prediction{gap:.35rem;min-width:min(100%,180px);display:grid}.activity-prediction input,.activity-prediction select{max-width:100%;min-height:44px;padding:.45rem}.activity-hint{color:#52636d;max-width:65ch}.activity-readout[data-status=correct]{color:#315c43}.activity-readout[data-status=retry]{color:#844837}.activity-input select{max-width:100%;min-height:44px;padding:.45rem}.activity-calculation{font-variant-numeric:tabular-nums;max-width:65ch}.activity-calculation:empty{display:none}.skyline-bricks{color:#a98460;letter-spacing:-.1em;min-width:2.8em}.skyline-controls button,.activity-choices>button[data-delta]{color:var(--ink);background:0 0;border-color:#a8b4b9}.skyline-controls button:hover,.activity-choices>button[data-delta]:hover{background:var(--tint);border-color:var(--accent)}.activity-items button[aria-pressed=true]{background:var(--tint);color:var(--ink);border-color:var(--accent)}.activity-items .selection-mark{color:var(--accent)}.position-track{grid-template-columns:repeat(auto-fit,minmax(44px,1fr));width:100%;display:grid}.position-track button{font-variant-numeric:tabular-nums;padding-inline:.3rem}.skyline-controls fieldset{border:0;flex-wrap:wrap;align-items:center;gap:.35rem;min-width:0;margin:0;padding:0;display:flex}.skyline-controls legend{font-weight:650}.activity-stage [data-art-pixel],.activity-stage [data-art-toggle],.activity-stage [data-art-value],.activity-stage [data-art-delta],.activity-stage [data-art-mode],.activity-stage [data-art-answer]{cursor:pointer}[data-activity-next]{margin-top:.5rem}.result-comparison{max-width:100%;margin:.75rem 0;overflow-x:auto}.result-comparison table{border-collapse:collapse;text-align:left;font-variant-numeric:tabular-nums;width:100%}.result-comparison th,.result-comparison td{vertical-align:top;padding:.4rem .6rem}.result-comparison tbody tr{border-top:1px solid #d4dddd}.activity-header .activity-round{margin:.25rem 0;font-weight:650}.activity-art-instruction{color:#52636d;margin:0 0 .35rem;font-size:14px}.activity-stage rect[data-art-pixel]:hover,.activity-stage rect[data-art-toggle]:hover,.activity-stage rect[data-art-value]:hover,.activity-stage rect[data-art-delta]:hover{fill:#203745;fill-opacity:.1}.activity-stage g[data-art-answer]:hover>rect{fill:#eaf1f4;fill-opacity:1}.book-activity [hidden]{display:none!important}.learning-map,.ridge-trail{margin:2rem 0}.concept-orientation{background:#f3f6f6;margin:1.25rem 0;padding:.75rem 1rem}.concept-orientation h2{font-size:1rem}.learning-map h2,.concept-orientation h2,.ridge-trail h2{margin-top:0}.chapter-roles,.concept-neighbors{grid-template-columns:repeat(auto-fit,minmax(13rem,1fr));gap:.75rem 1.5rem;display:grid}.chapter-roles p,.concept-neighbors ul{margin:.25rem 0}.concept-neighbors{margin-top:1rem}.flow-table-wrap{overflow-x:auto}.flow-table-wrap table{border-collapse:collapse;width:100%}.flow-table-wrap th,.flow-table-wrap td{text-align:left;border-bottom:1px solid var(--line,#d8d8d8);padding:.4rem .6rem}.flow-stages{line-height:1.7}.learning-model{gap:.75rem;margin:1.25rem 0;display:grid}.model-row{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.model-node{overflow-wrap:anywhere;background:#f3f6f6;flex:9rem;min-width:0;padding:.7rem}.model-node div{margin-top:.3rem;font-size:.9em}@media (width<=38rem){.model-row{flex-direction:column;align-items:stretch}.model-row>span{align-self:center;transform:rotate(90deg)}.model-node{flex-basis:auto}}.ridge-live{grid-template-columns:minmax(0,2fr) minmax(14rem,1fr);align-items:start;gap:1.5rem;display:grid}.ridge-live .ridge-trail{min-width:0;margin:1.25rem 0}.ridge-live .result-visual{min-width:0}@media (width<=55rem){.ridge-live{grid-template-columns:minmax(0,1fr);gap:0}}.ridge-error-line{fill:none;stroke:currentColor;stroke-width:1px}.book-activity.is-reflection .activity-stage [data-art-pixel],.book-activity.is-reflection .activity-stage [data-art-toggle],.book-activity.is-reflection .activity-stage [data-art-value],.book-activity.is-reflection .activity-stage [data-art-delta],.book-activity.is-reflection .activity-stage [data-art-mode],.book-activity.is-reflection .activity-stage [data-art-answer]{pointer-events:none;cursor:default}.reflection-controls{width:100%}.reflection-controls [data-reflection-prompt]{margin:0 0 .75rem}.reflection-choices{align-items:stretch}.reflection-choices button{text-align:left;min-height:44px}.ridge-workflow{min-width:0;margin:1.5rem 0}.ridge-workflow-table{max-width:100%;overflow-x:auto}.ridge-workflow-table table{border-collapse:collapse}.ridge-workflow-table th,.ridge-workflow-table td{text-align:left;border-bottom:1px solid;padding:.4rem .6rem}.ridge-workflow-controls{flex-wrap:wrap;align-items:end;gap:.75rem;display:flex}.ridge-workflow-controls label{gap:.25rem;max-width:100%;display:grid}.ridge-workflow-controls input{width:9rem;max-width:100%;min-height:44px}.ridge-workflow-controls button{min-height:44px}.ridge-workflow p{overflow-wrap:anywhere}.ridge-workflow-origin,.ridge-workflow-chain li,.ridge-workflow-training,.ridge-workflow-new{border-left:2px solid;padding:.65rem 0 .65rem 1.25rem}.ridge-workflow-origin p,.ridge-workflow-training p,.ridge-workflow-new p{margin:.3rem 0}.ridge-workflow-chain{margin:0;padding:0;list-style:none}.ridge-workflow-chain li,.ridge-workflow-training,.ridge-workflow-new{position:relative}.ridge-workflow-chain li:before,.ridge-workflow-training:before,.ridge-workflow-new:before{content:"↓";background:var(--paper,white);position:absolute;top:-.55rem;left:-.48rem}.ridge-workflow-chain li>a{display:inline-block}.ridge-workflow-training button,.ridge-workflow>button,.ridge-workflow-new input{min-height:44px}.ridge-workflow-new label{gap:.25rem;display:grid}.ridge-workflow-new input{width:9rem;max-width:100%}.concept-lineage{margin:1.5rem 0;padding:1rem 0}.concept-lineage h2{margin:0 0 .75rem;font-size:1.15rem}.lineage-stages{grid-template-columns:minmax(0,1fr) minmax(0,1.4fr) minmax(0,1fr);gap:1.5rem;display:grid}.lineage-stages-no-feeds{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr)}.lineage-stages>div{min-width:0;position:relative}.lineage-stages>div+div:before{content:"→";position:absolute;left:-1.25rem}.lineage-stages h3{margin:0 0 .4rem;font-size:1rem}.lineage-stages ul{margin:0;padding-left:1.1rem}.lineage-stages li,.lineage-stages p{overflow-wrap:anywhere;margin:.25rem 0}.lineage-stages small{display:block}.lineage-note,.lineage-book{font-size:.9rem}@media (width<=700px){.lineage-stages,.lineage-stages-no-feeds{grid-template-columns:1fr;gap:.9rem}.lineage-stages>div+div:before{content:"↓";display:block;position:static}}.lineage-feeds>div+div{margin-top:.8rem}.lineage-returns dl{margin:.4rem 0}.lineage-returns dl>div{margin:.3rem 0}.lineage-returns dd{overflow-wrap:anywhere;margin-left:0}.concept-journey{min-width:0;margin:1.5rem 0 2.5rem;scroll-margin-top:1rem}.concept-journey>h2{margin:0 0 .75rem}.concept-journey>p{max-width:72ch}.journey-controls{flex-wrap:wrap;align-items:end;gap:.75rem 1rem;margin:1.25rem 0;display:flex}.journey-controls label{gap:.35rem;font-size:15px;display:grid}.journey-controls input{width:8rem;max-width:100%;min-height:44px}.journey-controls button{min-height:44px}.journey-map{flex-wrap:wrap;align-items:center;gap:.25rem;margin:1rem 0;font-size:15px;line-height:1.35;display:flex}.journey-map a{align-items:center;min-height:44px;padding:.5rem .65rem;display:inline-flex}.journey-map [aria-current=step]{background:var(--accent);color:#fff;font-weight:650;text-decoration:none}.journey-map [aria-current=step]:hover{background:#204f9a}.journey-result{background:var(--tint);min-width:0;margin:1.25rem 0;padding:1.25rem}.journey-current{font:650 21px/1.3 var(--sans);letter-spacing:0;margin:0 0 1rem}.journey-values{min-width:0}.journey-inputs,.journey-output,.journey-destination{overflow-wrap:anywhere}.journey-output{font-variant-numeric:tabular-nums;font-size:19px}.journey-result pre{min-width:0;max-width:100%;margin:.75rem 0;font-size:14px;line-height:1.6;overflow-x:auto}.journey-result code{white-space:pre}.journey-branches{max-width:80ch;font-size:15px;line-height:1.7}.journey-branches a{padding:.25rem 0;display:inline-block}.journey-result:has(.journey-values){grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);align-items:start;gap:1.5rem;display:grid}@media (width<=850px){.journey-result:has(.journey-values){grid-template-columns:minmax(0,1fr);gap:.5rem}}@media (width<=480px){.journey-controls{gap:.75rem}.journey-controls label{flex:8rem}.journey-controls input{width:100%}.journey-map{gap:.1rem}.journey-map a{padding:.5rem}.journey-result{padding:1rem}}.concept-map{margin:2rem 0}.concept-map-flow,.concept-map-branches{flex-wrap:wrap;align-items:center;gap:.25rem .65rem;display:flex}.concept-map-flow a,.concept-map-branches a{align-items:center;min-height:44px;display:inline-flex}.concept-map-roles{grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem 2rem;margin:1.5rem 0;display:grid}.concept-role{padding:.35rem 0 .75rem}.concept-map-roles h3{margin:.75rem 0 .25rem;font-size:1rem}.concept-map-roles p,.concept-map-roles ul{margin:.25rem 0}.concept-role-relations{flex-wrap:wrap;gap:.25rem 1rem;padding:0;font-size:.9rem;list-style:none;display:flex}.concept-contract-note{font-size:.9rem}.concept-orientation-compact .concept-contract{margin:.35rem 0}.concept-catalog{margin-top:2rem}.concept-group{border-top:1px solid var(--line,#d8d8d8);padding:1.25rem 0;scroll-margin-top:1rem}.concept-group h3{margin:.2rem 0}.concept-group-role{margin:0;font-size:.9rem}.concept-contract{grid-template-columns:repeat(auto-fit,minmax(min(100%,15rem),1fr));gap:.5rem 1.5rem;margin:.75rem 0;display:grid}.concept-contract dt{font-weight:700}.concept-contract dd{margin:0}.concept-group-links{flex-wrap:wrap;gap:.25rem 1rem;margin:.25rem 0;padding:0;list-style:none;display:flex}.concept-group-links li{min-width:0}.concept-group-links a,.concept-group-members a,.concept-chapters a{padding:.6rem 0;display:inline-block}.concept-group-members{columns:3 14rem;padding-left:1.25rem}.concept-group-members li{break-inside:avoid}.concept-group[hidden],.concept-group-members li[hidden]{display:none}.concept-role a{align-items:center;min-height:44px;display:inline-flex}.concept-relationships{flex-wrap:wrap;gap:.5rem 1.5rem;margin:.75rem 0;display:flex}.concept-relationships ul{margin:.15rem 0;padding:0;list-style:none}.concept-relationships a{padding:.55rem 0;display:inline-block}#concept-results ul{columns:2 16rem;padding-left:1.25rem}#concept-results li{break-inside:avoid}#concept-results a{padding:.6rem 0;display:inline-block}@media (width<=60rem){.concept-map-roles{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=38rem){.concept-map-roles{grid-template-columns:1fr}}.penguin-lab{--bill:#7b3fa0;--flipper:#0b7f86;border-top:3px solid var(--ink);min-width:0;padding:1.5rem 0}.penguin-lab>h2{margin:0 0 .7rem;font-size:clamp(1.8rem,3vw,2.6rem)}.penguin-panel>:is(h3,h4){margin:0 0 .6rem;font-size:1.25rem}.penguin-lab p{max-width:65ch}.penguin-source{font-size:.85rem}.penguin-columns{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);align-items:start;gap:2rem;display:grid}.book-cover .penguin-lab{grid-column:1/-1}.book-body>.penguin-lab,.book-section>.penguin-lab{margin:3rem 0}.penguin-lab select{max-width:100%;min-height:44px}.penguin-plot{width:100%;max-width:520px;height:auto;display:block}.penguin-bird{width:auto;max-width:100%;height:150px;display:block}.penguin-mini{mix-blend-mode:multiply}.penguin-plot text{font:13px var(--sans);fill:var(--ink)}.species-0{fill:#2860c7;color:#2860c7}.species-1{fill:#a46038;color:#a46038}.species-2{fill:#486d60;color:#486d60}.query-mark>circle{fill:var(--paper);stroke:var(--ink);stroke-width:2px}.query-mark>path{stroke:var(--ink);stroke-width:2px}.penguin-chart{margin:0}.penguin-chart figcaption{font-size:.85rem;font-weight:700}.guide{fill:none;stroke-width:2px;stroke-dasharray:5 4}.guide-bill{stroke:var(--bill)}.guide-flipper{stroke:var(--flipper)}.penguin-plot .guide-label{font-weight:700}.penguin-plot .guide-label-bill{fill:var(--bill)}.penguin-plot .guide-label-flipper{fill:var(--flipper)}.penguin-plot .query-mark,.penguin-plot .guide,.penguin-plot .guide-label{transition:transform .5s}@media (prefers-reduced-motion:reduce){.penguin-plot .query-mark,.penguin-plot .guide,.penguin-plot .guide-label{transition:none}}.penguin-measurements .value-bill{color:var(--bill)}.penguin-measurements .value-flipper{color:var(--flipper)}.penguin-picker{grid-template-columns:auto minmax(0,260px) auto;justify-content:center;align-items:center;gap:.75rem;display:grid}.penguin-picker button{min-width:44px;min-height:44px;padding:0;font-weight:700}.penguin-stage{text-align:center;min-width:0}.penguin-stage .penguin-bird{height:200px;margin:0 auto}.penguin-stage p{margin:.25rem auto;font-size:.85rem}.penguin-stage .penguin-measurements{justify-content:center}.penguin-key{flex-wrap:wrap;gap:.4rem 1rem;margin:.5rem 0 0;padding:0;font-size:.9rem;font-weight:700;list-style:none;display:flex}.penguin-key li{align-items:center;gap:.3rem;display:flex}.penguin-primary[hidden]{display:none}.penguin-primary{width:100%;min-height:48px;margin:1rem 0;display:block}.penguin-lab button:disabled{opacity:.55;cursor:not-allowed}.penguin-lab [data-status]{max-width:65ch;margin:1rem 0;font-weight:700}.penguin-secondary{border-top:1px solid var(--ink);flex-wrap:wrap;align-items:center;gap:.5rem 1rem;margin-top:1.5rem;padding-top:1rem;font-size:.9rem;display:flex}.penguin-records{margin:1.5rem 0 0;font-size:.85rem;line-height:1.7;overflow-x:auto}.penguin-records table{border-collapse:collapse;text-align:left;width:100%;max-width:40rem}.penguin-records caption{text-align:left;font-weight:700}.penguin-records th,.penguin-records td{padding:.25rem .5rem .25rem 0}.penguin-measurements{flex-wrap:wrap;gap:1.5rem;margin:.5rem 0;display:flex}.penguin-measurements div{gap:.4rem;display:flex}.penguin-measurements dd{margin:0;font-weight:700}.penguin-scroll{overflow-x:auto}.penguin-distances{border-collapse:collapse;text-align:left;width:100%;font-size:.9rem}.penguin-distances th,.penguin-distances td{padding:.25rem .5rem .25rem 0}.penguin-distances .nearest{background:color-mix(in srgb, var(--accent) 12%, transparent)}.penguin-closest{font-size:.8rem;font-weight:700}.penguin-plot .distance-line{stroke-width:1.5px;stroke-dasharray:5 4;fill:none}.penguin-plot .distance-line.distance-nearest{stroke-width:3px;stroke-dasharray:none}@media (width<=700px){.penguin-columns{grid-template-columns:minmax(0,1fr);gap:1rem}}.book-cover-copy{grid-column:1/-1;grid-template-columns:minmax(0,1.5fr) minmax(16rem,1fr);align-items:start;gap:1rem 3rem;display:grid}.book-cover-copy h1{grid-row:1/3}.book-cover-copy .lead{align-self:end;margin:0}.book-cover-copy .button{justify-self:start;margin:0}@media (width<=700px){.book-cover-copy{display:block}.book-cover-copy .lead{margin-bottom:1rem}}.learning-project{border-top:3px solid #3157a4;border-bottom:1px solid #c9c8c1;margin:2rem 0;padding:1rem 0 1.5rem}.learning-project h2,.learning-project h3{margin-bottom:.5rem}.project-controls{flex-wrap:wrap;align-items:end;gap:.75rem;display:flex}.project-controls label{gap:.25rem;display:grid}.project-controls input,.project-controls select,.project-controls button,.project-operation button{min-height:44px}.project-controls input{width:7rem}.project-flow{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1rem;display:grid}.project-flow div{border-left:2px solid #3157a4;min-width:0;padding-left:.75rem}.project-flow dt{font-weight:700}.project-flow dd{overflow-wrap:anywhere;margin:.25rem 0}.project-operation{margin-top:1rem}.project-inputs code,#project-result{overflow-wrap:anywhere;white-space:pre-wrap}.project-pipeline{flex-wrap:wrap;gap:.35rem;margin:1rem 0;display:flex}.project-pipeline [aria-current]{font-weight:700;text-decoration-thickness:3px}.project-inputs div{border-bottom:1px solid #ddd;grid-template-columns:minmax(8rem,auto) 1fr;gap:.75rem;padding:.4rem 0;display:grid}.project-inputs dd{overflow-wrap:anywhere;margin:0}@media (width<=600px){.project-inputs div{grid-template-columns:minmax(0,1fr);gap:.25rem}}
