@font-face{font-family:Latin Modern Math;src:url(/fonts/latin-modern-math.woff)format("woff");font-display:swap}@media screen{html.dark .foundation-course-surface{--background:#242a28;--surface:#303735;--surface-alt:#39413e;--border:#47504c;--border-strong:#626c67;--ink:#f3f5f1;--ink-muted:#c4ccc7;--ink-faint:#98a59f;background:var(--background);min-height:100%}html.dark .foundation-course-surface .bg-white{background-color:#343b38}html.dark .foundation-course-surface .book-content .tex-figure,html.dark .foundation-course-surface .book-content.slide-content .slide-figure,html.dark .foundation-course-surface .book-content .course-visual{color:#17201e;background:#c7cac6;border:1px solid #aeb3af;border-radius:.75rem;box-shadow:inset 0 1px #ffffff6b}html.dark .foundation-course-surface .book-content .tex-figure{padding:1.25rem 1rem .9rem}html.dark .foundation-course-surface .book-content .tex-figure:has(.tex-table){box-sizing:border-box;width:100%;max-width:100%;overflow:hidden}html.dark .foundation-course-surface .book-content .tex-figure .tex-table{background:#c7cac6}html.dark .foundation-course-surface .book-content.slide-content .slide-figure{padding:.75rem}html.dark .foundation-course-surface .book-content .course-visual{padding:1rem}html.dark .foundation-course-surface .book-content .tex-figure figcaption,html.dark .foundation-course-surface .book-content.slide-content .slide-figure figcaption{color:#34413c}}.book-content math{font-family:Latin Modern Math,Noto Serif Web,Cambria Math,serif}.book-content{font-family:var(--font-book-serif), "Noto Serif", Georgia, serif;color:var(--ink);font-size:1.0625rem;line-height:1.75}.book-content h2{font-family:var(--font-book-sans), "Noto Sans", sans-serif;color:var(--ink);margin-top:2.5rem;margin-bottom:1rem;scroll-margin-top:6rem;font-size:1.5rem;font-weight:700}.book-content h3{font-family:var(--font-book-sans), "Noto Sans", sans-serif;color:var(--ink);margin-top:2rem;margin-bottom:.75rem;scroll-margin-top:6rem;font-size:1.2rem;font-weight:600}.book-content h4,.book-content h5{font-family:var(--font-book-sans), "Noto Sans", sans-serif;color:var(--ink);margin-top:1.5rem;margin-bottom:.5rem;scroll-margin-top:6rem;font-weight:600}.book-content p{margin:1rem 0}.book-content .course-read-intro{border-left:4px solid var(--brand);background:var(--brand-soft);font-family:var(--font-book-sans), "Noto Sans", sans-serif;border-radius:.4rem;margin-bottom:2rem;padding:1rem 1.15rem;font-size:.95rem;line-height:1.55}.book-content .course-read-section{border-bottom:1px solid var(--border);padding-bottom:1.25rem}.book-content .course-read-kicker{font-family:var(--font-book-sans), "Noto Sans", sans-serif;color:var(--accent);letter-spacing:.1em;text-transform:uppercase;margin-bottom:-1.8rem;font-size:.7rem;font-weight:700}.book-content .course-interactive-callout{border:1px solid var(--brand-border);background:var(--brand-soft);font-family:var(--font-book-sans), "Noto Sans", sans-serif;border-radius:.4rem;margin-top:1.25rem;padding:.65rem .8rem;font-size:.8rem;font-weight:650}.book-content .course-interactive-callout a{color:var(--brand)}.book-content .course-slide-lead{color:var(--ink-muted);font-size:1.05em;line-height:1.6}.book-content .course-deeper-note{border-left:3px solid var(--accent);background:var(--accent-soft);margin:1rem 0;padding:.8rem 1rem}.book-content .course-deeper-note strong{font-family:var(--font-book-sans), "Noto Sans", sans-serif;color:var(--accent);letter-spacing:.08em;text-transform:uppercase;margin-bottom:.35rem;font-size:.75rem;display:block}.book-content .course-visual{border:1px solid var(--border);background:var(--surface);border-radius:.5rem;margin:1rem 0;padding:1rem;overflow-x:auto}.book-content .course-visual svg{width:100%;max-height:22rem}.book-content img,.book-content svg,.book-content video,.book-content canvas{max-width:100%;height:auto}.book-content.slide-content{scrollbar-color:var(--border-strong) transparent;scrollbar-width:thin;font-size:1.15rem}.book-content.slide-progressive .slide-progressive-item{will-change:opacity, transform;transition:opacity .44s cubic-bezier(.22,1,.36,1),transform .44s cubic-bezier(.22,1,.36,1)}.book-content.slide-progressive .slide-progressive-hidden{visibility:hidden;opacity:0;pointer-events:none;transform:translateY(.4rem)}@media (prefers-reduced-motion:reduce){.book-content.slide-progressive .slide-progressive-item{transition:none}}.book-content.slide-content>p:first-child,.book-content.slide-content>[data-slide-html-root]>p:first-child{margin-top:0}.book-content.slide-content ul,.book-content.slide-content ol{margin:.7rem 0}.book-content.slide-content li{margin:.32rem 0}.book-content.slide-content .tex-box{margin:.75rem 0;padding:.75rem .9rem}.book-content.slide-content .slide-figure{text-align:center;width:100%;margin:.75rem 0}.book-content.slide-content .slide-figure img{max-width:100%;max-height:var(--slide-fitted-figure-height,18rem);object-fit:contain;width:auto;height:auto;margin:0 auto}.book-content.slide-content .hyperframes-demo-shell{width:100%;margin:.25rem auto 0}.book-content.slide-content hyperframes-player{aspect-ratio:16/9;border:1px solid color-mix(in srgb, var(--border-strong) 72%, transparent);background:#f4f1e9;border-radius:1rem;width:100%;display:block;overflow:hidden;box-shadow:0 1.2rem 3rem #17201e1f}.book-content.slide-content .hyperframes-demo-caption{display:none}[data-slide-stage].slide-stage-animation-teach{width:calc(100vw - .5rem);margin-left:50%;margin-right:0;transform:translate(-50%);max-width:none!important}@media (min-width:1024px){[data-slide-stage].slide-stage-animation-teach{width:min(100rem,100vw - 2rem);height:clamp(44rem,100dvh - 10rem,56.25rem)!important}}.book-content.slide-content .hyperframes-print-placeholder{border:1px dashed var(--border-strong);background:var(--surface);min-height:18rem;color:var(--ink-faint);font-family:var(--font-book-sans), sans-serif;text-align:center;border-radius:1rem;place-items:center;display:grid}@media (max-width:767px){.book-content.slide-content .hyperframes-demo-shell{width:100%}.book-content.slide-content hyperframes-player{border-radius:.65rem}}@media (min-width:1024px){.book-content.slide-content .slide-figure img{width:100%;max-height:var(--slide-fitted-figure-height,min(42vh, 30rem))}}@media (max-width:767px){.book-content.slide-content.slide-fullscreen{font-size:.98rem;line-height:1.35;overflow-y:auto}.book-content.slide-content.slide-fullscreen p{margin:.32rem 0}.book-content.slide-content.slide-fullscreen ul,.book-content.slide-content.slide-fullscreen ol{margin:.36rem 0}.book-content.slide-content.slide-fullscreen li{margin:.18rem 0}.book-content.slide-content.slide-fullscreen .tex-box{margin:.35rem 0;padding:.45rem .55rem}.book-content.slide-content.slide-fullscreen math[display=block]{margin:.28rem 0;font-size:.86em}}.book-content.slide-content .slide-figure figcaption{color:var(--ink-muted);margin-top:.35rem;font-size:.85em;line-height:1.25}.book-content.slide-content .slide-animation img{max-height:min(46vh,28rem)}.book-content.slide-content .gmm-representative-figure img{width:68%;max-width:34rem;max-height:16rem}@media (min-width:1024px){.book-content.slide-content.slide-fullscreen{font-size:clamp(1.6rem,2.15vw,2.15rem);line-height:1.35;overflow-y:auto}.book-content.slide-content.slide-fullscreen p{margin:.45rem 0}.book-content.slide-content.slide-fullscreen ul,.book-content.slide-content.slide-fullscreen ol{margin:.55rem 0}.book-content.slide-content.slide-fullscreen li{margin:.25rem 0}.book-content.slide-content.slide-fullscreen .tex-box{margin:.55rem 0;padding:.55rem .75rem}.book-content.slide-content.slide-fullscreen .tex-box-label{margin-bottom:.25rem;font-size:.7em}.book-content.slide-content.slide-fullscreen .slide-figure{margin:.45rem 0}.book-content.slide-content.slide-fullscreen .slide-figure img{width:100%;max-height:var(--slide-fitted-figure-height,min(48vh, 38rem))}.book-content.slide-content.slide-fullscreen .slide-animation img{max-height:min(58vh,46rem)}.book-content.slide-content.slide-fullscreen .gmm-representative-figure img{width:68%;max-height:min(34vh,26rem)}.book-content.slide-content.slide-fullscreen .slide-figure figcaption{font-size:.62em}.book-content.slide-content.slide-fullscreen math[display=block]{margin:.45rem 0;font-size:.88em}}.book-content ul,.book-content ol{margin:1rem 0;padding-left:1.5rem}.book-content ul{list-style:none}.book-content ul>li{position:relative}.book-content ul>li:before{content:"";background:currentColor;border-radius:50%;width:.4em;height:.4em;position:absolute;top:.55em;left:-1.1rem}.book-content ol{list-style-type:decimal}.book-content li,.book-content li>ul,.book-content li>ol{margin:.4rem 0}.book-content dl{margin:1rem 0}.book-content dt{font-weight:600}.book-content dd{margin:0 0 .75rem 1.5rem}.book-content blockquote{border-left:3px solid var(--border-strong);color:var(--ink-muted);margin:1.25rem 0;padding-left:1rem;font-style:italic}.book-content code{font-family:var(--font-book-mono), "Noto Sans Mono", ui-monospace, monospace;background:var(--surface-alt);border-radius:.3em;padding:.1em .35em;font-size:.9em}.book-content .tex-code,.book-content .tex-algo{background:var(--surface-alt);border:1px solid var(--border);border-radius:.5rem;padding:.9rem 1rem;overflow-x:auto}.book-content .tex-code code{background:0 0;padding:0}.book-content ol.tex-algo{counter-reset:algo-line;font-family:var(--font-book-mono), "Noto Sans Mono", ui-monospace, monospace;margin:0;font-size:.88rem;line-height:1.55;list-style:none}.book-content .tex-algo-row{counter-increment:algo-line;padding-left:calc(3.2rem + var(--indent,0) * 1.35rem);white-space:normal;margin:.08rem 0;position:relative}.book-content .tex-algo-row:before{content:counter(algo-line);text-align:right;width:2.1rem;color:var(--ink-faint);font-variant-numeric:tabular-nums;position:absolute;left:0}.book-content .tex-algo-unnumbered{counter-increment:none}.book-content .tex-algo-unnumbered:before{content:""}.book-content .tex-algo-comment{color:var(--ink-muted);font-style:italic}.book-content .tex-box-algo .tex-box-body>ol,.book-content .tex-box-algo .tex-box-body>ul{margin:.4rem 0 0}.book-content .tex-box-algo .tex-box-body ol ol,.book-content .tex-box-algo .tex-box-body ul ul,.book-content .tex-box-algo .tex-box-body ol ul,.book-content .tex-box-algo .tex-box-body ul ol{margin-top:.3rem;margin-bottom:.3rem}.book-content .tex-box-algo .tex-box-body li{margin:.28rem 0}.book-content .tex-sc{font-variant:small-caps}.book-content .tex-center{text-align:center}.book-content .tex-color-red{color:#b91c1c}.book-content .tex-color-blue{color:#1d4ed8}.book-content .tex-color-brown{color:#92400e}.book-content .tex-color-orange{color:#c2410c}.book-content .tex-box{border-left:3px solid var(--border-strong);background:var(--surface-alt);border-radius:.25rem;margin:1.5rem 0;padding:.9rem 1.1rem;overflow-x:auto}.book-content .tex-box-label{font-family:var(--font-book-sans), "Noto Sans", sans-serif;text-transform:uppercase;letter-spacing:.03em;margin:0 0 .4rem;font-size:.8rem;font-weight:700}.book-content .tex-box-body>p:first-child{margin-top:0}.book-content .tex-box-body>p:last-child{margin-bottom:0}.book-content .tex-box-def{background:#e8f0fe;border-color:#1565c0}.book-content .tex-box-def .tex-box-label{color:#1565c0}.book-content .tex-box-thm{background:#e6f4ea;border-color:#1b5e20}.book-content .tex-box-thm .tex-box-label{color:#1b5e20}.book-content .tex-box-lem{background:#f3e5f5;border-color:#6a1b9a}.book-content .tex-box-lem .tex-box-label{color:#6a1b9a}.book-content .tex-box-ex{background:#fff3e0;border-color:#e65100}.book-content .tex-box-ex .tex-box-label{color:#e65100}.book-content .tex-box-rem{background:#e0f7fa;border-color:#00695c}.book-content .tex-box-rem .tex-box-label{color:#00695c}.book-content .tex-box-exc{background:#ffebee;border-color:#b71c1c}.book-content .tex-box-exc .tex-box-label{color:#b71c1c}.book-content .tex-box-amb{background:#fffde7;border-color:#f57f17}.book-content .tex-box-amb .tex-box-label{color:#b45309}.book-content .tex-box-algo{background:#f5f5f5;border-color:#424242}.book-content .tex-box-algo .tex-box-label{color:#424242}.book-content .tex-box-proof{background:#f8fafc;border-color:#64748b}.book-content .tex-box-proof .tex-box-label{color:#475569}.book-content .tex-proof{background:#f8fafc;border-left:3px solid #64748b;border-radius:.25rem;margin:1.25rem 0;padding:.75rem 1rem;position:relative}.book-content .tex-proof-label{margin:0 0 .3rem}.book-content .tex-proof-qed{float:right}.dark .book-content .tex-color-red{color:#fca5a5}.dark .book-content .tex-color-blue{color:#93c5fd}.dark .book-content .tex-color-brown{color:#d6a66f}.dark .book-content .tex-color-orange{color:#fdba74}.dark .book-content .tex-box-def{background:#10243d;border-color:#60a5fa}.dark .book-content .tex-box-def .tex-box-label{color:#93c5fd}.dark .book-content .tex-box-thm{background:#102b1d;border-color:#4ade80}.dark .book-content .tex-box-thm .tex-box-label{color:#86efac}.dark .book-content .tex-box-lem{background:#29163a;border-color:#c084fc}.dark .book-content .tex-box-lem .tex-box-label{color:#d8b4fe}.dark .book-content .tex-box-ex{background:#321d10;border-color:#fb923c}.dark .book-content .tex-box-ex .tex-box-label{color:#fdba74}.dark .book-content .tex-box-rem{background:#102b29;border-color:#2dd4bf}.dark .book-content .tex-box-rem .tex-box-label{color:#5eead4}.dark .book-content .tex-box-exc{background:#351719;border-color:#f87171}.dark .book-content .tex-box-exc .tex-box-label{color:#fca5a5}.dark .book-content .tex-box-amb{background:#302711;border-color:#facc15}.dark .book-content .tex-box-amb .tex-box-label{color:#fde047}.dark .book-content .tex-box-algo,.dark .book-content .tex-box-proof,.dark .book-content .tex-proof{border-color:var(--border-strong);background:var(--surface-alt)}.dark .book-content .tex-box-algo .tex-box-label,.dark .book-content .tex-box-proof .tex-box-label{color:var(--ink-muted)}.book-content .tex-figure{text-align:center;margin:1.5rem 0;padding-top:1.25rem}.book-content .tex-figure img{width:auto;max-width:100%;height:auto;max-height:26rem;display:inline-block}@media (min-width:768px){.book-content .tex-figure img{width:min(100%,44rem)}}.book-content .tex-figure-pdf-only .tex-figure-placeholder{border:1px dashed var(--border-strong);text-align:center;color:var(--ink-faint);border-radius:.5rem;padding:1.75rem 1rem;font-size:.85rem}.book-content .tex-figure figcaption{color:var(--ink-muted);text-align:center;margin-top:.5rem;font-size:.85rem}.book-content .tex-table{border-collapse:collapse;width:100%;max-width:100%;font-size:.92rem}.book-content .tex-table td{border:1px solid var(--border);overflow-wrap:anywhere;padding:.45rem .7rem}@media screen and (max-width:640px){.foundation-course-surface .book-content .tex-figure:has(.tex-table){box-sizing:border-box;width:100%;max-width:100%;padding:.75rem .35rem .65rem;overflow:hidden}.foundation-course-surface .book-content .tex-table{table-layout:fixed;width:100%;max-width:100%;font-size:.72rem;line-height:1.3}.foundation-course-surface .book-content .tex-table td{-webkit-hyphens:auto;hyphens:auto;overflow-wrap:anywhere;word-break:normal;min-width:0;padding:.32rem .22rem}.foundation-course-surface .book-content .tex-table:has(tr:first-child>td:nth-child(5)){font-size:clamp(.58rem,2.55vw,.68rem)}}.book-content .tex-cite,.book-content .tex-ref{color:var(--brand);cursor:pointer;text-decoration:none;display:inline-block}.book-content .tex-cite:hover,.book-content .tex-ref:hover{text-decoration:underline}.book-content .tex-ref-unresolved{color:var(--brand);cursor:pointer;border-bottom:1px dotted var(--brand);display:inline-block}.book-content .tex-fnref a{color:var(--brand);text-decoration:none}.book-content .tex-footnotes,.book-content .tex-references{border-top:1px solid var(--border);color:var(--ink-muted);margin-top:2.5rem;padding-top:1.25rem;font-size:.88rem}.book-content .tex-footnotes h4,.book-content .tex-references h4{text-transform:uppercase;letter-spacing:.03em;color:var(--ink-faint);margin-top:0;font-size:.8rem}.book-content .tex-references li{margin:.85rem 0}.book-content .tex-ref-key{color:var(--ink-faint)}.book-content .tex-reference-entry{padding-left:.15rem}.book-content .tex-reference-main{gap:.18rem;display:grid}.book-content .tex-reference-title,.book-content .tex-reference-authors,.book-content .tex-reference-meta,.book-content .tex-reference-kind{margin:0}.book-content .tex-reference-title{color:var(--ink);font-weight:700;line-height:1.45}.book-content .tex-reference-authors{color:var(--ink-muted);line-height:1.45}.book-content .tex-reference-meta{font-family:var(--font-book-sans), "Noto Sans", sans-serif;color:var(--ink-faint);font-size:.82rem;line-height:1.45}.book-content .tex-reference-kind{background:var(--surface-alt);font-family:var(--font-book-sans), "Noto Sans", sans-serif;letter-spacing:.03em;text-transform:uppercase;color:var(--ink-faint);border-radius:999px;margin-top:.35rem;padding:.08rem .48rem;font-size:.7rem;font-weight:700;display:inline-block}.book-content .tex-bibtex{margin-top:.45rem}.book-content .tex-bibtex summary{cursor:pointer;border:1px solid var(--border-strong);font-family:var(--font-book-sans), "Noto Sans", sans-serif;color:var(--brand);border-radius:.45rem;align-items:center;padding:.18rem .55rem;font-size:.72rem;font-weight:700;list-style:none;display:inline-flex}.book-content .tex-bibtex summary::-webkit-details-marker{display:none}.book-content .tex-bibtex summary:hover{border-color:var(--brand)}.book-content .tex-bibtex pre{border:1px solid var(--border);background:var(--surface-alt);white-space:pre;border-radius:.5rem;max-width:100%;margin:.45rem 0 0;padding:.75rem;overflow-x:auto}.book-content .tex-bibtex code{background:0 0;padding:0;font-size:.78rem;line-height:1.45}.book-content .tex-item-label{margin-right:.25em}.book-content math[display=block]{scrollbar-gutter:stable;max-width:100%;margin-bottom:.35rem;padding-bottom:.75rem;display:block;overflow:auto hidden}.book-content .tex-equation{max-width:100%;display:block;position:relative}.book-content .tex-equation-label{float:right;font-family:var(--font-book-sans), "Noto Sans", sans-serif;color:var(--ink-muted);white-space:nowrap;margin-left:.75rem;font-size:.78rem;font-weight:600}
