@font-face{font-family:"Study Sans";src:url("fonts/DejaVuSans.ttf") format("truetype");font-weight:400;font-style:normal;font-display:swap}

:root{color-scheme:light;--ink:#192c37;--muted:#536671;--accent:#0d6b62;--paper:#fff;--wash:#f4f6f3;--line:#d6dfdc;--warm:#f9edd8}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:6rem}body{margin:0;background:var(--wash);color:var(--ink);font:17px/1.72 "Study Sans",sans-serif}a{color:var(--accent);text-underline-offset:.2em}a:hover{text-decoration-thickness:2px}a:focus-visible,button:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline:3px solid #b05717;outline-offset:4px}.skip{position:absolute;top:-100px;left:1rem;z-index:10;background:white;padding:.5rem}.skip:focus{top:1rem}header{background:#192c37;color:white;padding:1.05rem max(24px,calc((100vw - 1420px)/2));display:flex;justify-content:space-between;gap:20px;align-items:center}header a{color:white}header .brand{font-weight:750;text-decoration:none;font-size:1.15rem;letter-spacing:.03em}header nav{display:flex;gap:1.4rem;flex-wrap:wrap;font-size:.88rem}.shell{display:grid;grid-template-columns:215px minmax(0,1fr);max-width:1480px;margin:auto}.sidebar{padding:32px 22px;font-size:.86rem}.sidebar nav{position:sticky;top:24px}.sidebar a{display:block;padding:6px 0;color:var(--muted)}.sidebar a[aria-current=page]{color:var(--accent);font-weight:750}.sidebar strong{display:block;font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;margin:22px 0 8px}main{background:white;min-width:0;padding:48px clamp(22px,4vw,65px) 70px}.eyebrow{text-transform:uppercase;letter-spacing:.14em;font-size:.75rem;color:var(--accent);font-weight:700}h1{font-size:clamp(2rem,3.1vw,3.5rem);line-height:1.13;letter-spacing:-.035em;max-width:1000px;margin:14px 0 28px}h2{font-size:1.42rem;line-height:1.35;margin:0 0 18px;letter-spacing:-.018em}h3{font-size:1.12rem;line-height:1.4}p{margin:0 0 1.1rem}section{padding-top:36px;margin-top:20px;border-top:1px solid var(--line)}section:first-child{margin-top:0}li{margin:.45rem 0}ul,ol{padding-left:1.4rem}.contents{background:var(--wash);padding:18px 24px;font-size:.9rem;margin-bottom:28px}.contents ol{columns:2;column-gap:35px;margin-bottom:0}.contents li{break-inside:avoid}.equation{background:#eef5f2;border-left:3px solid var(--accent);padding:14px 18px;margin:16px 0;font-family:"Study Sans",sans-serif;font-size:1.13rem;line-height:1.9;overflow:auto;max-width:100%;overflow-wrap:break-word}sub,sup{line-height:0;font-size:.75em}.table-wrap{overflow:auto;max-width:100%;margin:18px 0 25px}table{width:100%;border-collapse:collapse;font-size:.88rem;text-align:left}th,td{padding:10px 12px;border-bottom:1px solid var(--line);vertical-align:top}th{background:var(--wash);font-weight:700}figure{margin:20px 0 25px}figure img{width:100%;height:auto;display:block;border:1px solid var(--line);background:white}.zoom{display:block;cursor:zoom-in}figcaption{font-size:.79rem;line-height:1.5;color:var(--muted);margin-top:10px}figcaption a{display:inline-block}.worked-layout{display:grid;grid-template-columns:minmax(245px,.78fr) minmax(0,1.22fr);gap:30px;align-items:start}.diagram-column{position:sticky;top:18px;max-height:calc(100vh - 36px);overflow:auto;padding:2px}.working-column{min-width:0}.working-column section{padding-top:28px;margin-top:22px}.exam-answer{background:#192c37;color:#fff;padding:22px}.exam-answer .equation{color:var(--ink)}.source-note{background:var(--warm);padding:15px 20px;margin:20px 0;border-left:3px solid #b57729}.source-note p:last-child,.exam-answer p:last-child{margin-bottom:0}.self-check{background:#f5f3ec;padding:20px;margin:20px 0}details{border-top:1px solid var(--line);padding:12px 0}summary{cursor:pointer;font-weight:650}details p{margin:14px 0 4px}.course-links{columns:2}.page-nav{display:flex;justify-content:space-between;gap:24px;border-top:1px solid var(--line);padding-top:25px;margin-top:50px;font-size:.88rem}footer{padding:25px;text-align:center;color:var(--muted);font-size:.78rem}.tools{display:flex;gap:18px;font-size:.85rem;margin:20px 0}button{font:inherit;border:1px solid var(--line);background:white;color:var(--accent);padding:8px 15px;cursor:pointer}dialog{border:0;padding:20px;max-width:96vw;max-height:95vh}dialog::backdrop{background:#11232ddd}dialog img{display:block;max-width:90vw;max-height:80vh;object-fit:contain}dialog button{display:block;margin-left:auto}body:has(dialog[open]){overflow:hidden}.status{font-size:.85rem;color:var(--muted)}
@media(min-width:1550px){.worked-layout{grid-template-columns:.85fr 1.15fr}}@media(max-width:1050px){.shell{grid-template-columns:165px minmax(0,1fr)}main{padding:32px 25px}.worked-layout{display:block}.diagram-column{position:static;max-height:none;max-width:650px;overflow:visible}.diagram-column img{max-height:650px;object-fit:contain}.contents ol{columns:1}}@media(max-width:700px){body{font-size:16px}.shell{display:block}.sidebar{padding:10px 20px;border-bottom:1px solid var(--line)}.sidebar nav{position:static;display:flex;gap:16px;overflow:auto}.sidebar strong{display:none}.sidebar a{white-space:nowrap}.sidebar a.secondary{display:none}header{display:block;padding:15px 20px}header nav{gap:16px;margin-top:8px}main{padding:28px 20px 50px}.course-links{columns:1}.worked-layout{display:block}.contents{padding:14px 18px}.equation{font-size:1.05rem;padding:12px}th,td{padding:8px}.page-nav{flex-wrap:wrap}.diagram-column{padding:0}h2{font-size:1.3rem}}
@media print{body{background:white;color:black;font:11pt/1.45 Georgia,serif}header,.sidebar,.contents,.tools,footer,.page-nav,dialog,.skip{display:none!important}.shell{display:block;max-width:none}main{padding:0}h1{font-size:25pt}h2{font-size:16pt;break-after:avoid}section{padding-top:14pt;margin-top:14pt}.worked-layout{display:block}.diagram-column{position:static;max-height:none;overflow:visible;max-width:100%}figure{break-inside:avoid;max-width:80%;margin:12pt auto}figure img{max-height:350pt;object-fit:contain}.equation,.self-check,.source-note,.exam-answer{background:white;color:black;border:1px solid #aaa;break-inside:avoid}.table-wrap{overflow:visible}table{font-size:9pt}a{color:black}details[open]{break-inside:avoid}details:not([open]){display:none}p{orphans:3;widows:3}@page{margin:16mm}}

@font-face{font-family:"Study HK";src:url("fonts/NotoSansHK.ttf") format("truetype");font-weight:100 900;font-style:normal;font-display:swap}
body{font-family:"Study HK","Study Sans",sans-serif;line-height:1.85}h1,h2,h3{letter-spacing:0;line-height:1.5}.equation{font-family:"Study HK","Study Sans",sans-serif;line-height:2;overflow-x:auto;overflow-y:visible}math{font-family:"Study Sans",math;font-size:1.05em;max-width:100%}math[display="block"]{margin:.5em 0;text-align:left}mtext{font-family:"Study HK","Study Sans",sans-serif}td,th,p,li,figcaption{overflow-wrap:anywhere}.contents ol{column-gap:2rem}
@media(max-width:700px){.equation{padding:10px;font-size:1rem}h1{font-size:1.9rem}.tools{flex-wrap:wrap}}
@media print{body{font-family:"Study HK",sans-serif}math{font-size:1em}.equation{overflow:visible;max-width:100%;break-inside:auto}math[display="block"]{break-inside:avoid}}

/* Bilingual reading support: static links also work without JavaScript. */
.language-switch{display:flex;gap:.35rem;align-items:center;flex-wrap:wrap;margin-left:auto}.language-switch a{padding:.3rem .65rem;border:1px solid currentColor;border-radius:.35rem;font-size:.86rem;white-space:nowrap}.language-switch a[aria-current="page"]{background:#e4eef5;color:#123247;font-weight:700}.en-term{font-family:"Study Sans",sans-serif;font-size:.88em;color:#38596c;overflow-wrap:normal}html[lang="en-GB"] body{font-family:"Study Sans",sans-serif;line-height:1.75}.terminology-link{align-self:center;font-size:.9rem}header{flex-wrap:wrap;gap:.7rem}nav.language-switch{flex:none}table{max-width:100%}@media(max-width:700px){.language-switch{margin-left:0;width:100%}.en-term{overflow-wrap:anywhere}header{align-items:flex-start}}@media print{.language-switch,.terminology-link{display:none}.en-term{color:inherit}}

header .en-term{color:#dbe7ef}

/* Course organization: full existing solutions embedded in lecture chapters. */
.lecture-example{margin:1.5rem 0;padding:0;border:1px solid var(--line);border-left:4px solid var(--accent);border-radius:4px;background:#fff}
.lecture-example>summary{padding:1rem;background:#eef5f2;color:var(--ink);font-size:1.04rem}
.lecture-example>.example-permalink{margin:1rem 1rem 0;font-size:.85rem}
.embedded-example-content{padding:1rem;min-width:0}.embedded-example-content>.worked-layout{gap:20px}
.embedded-contents{font-size:.9em;columns:1!important;padding-left:1rem}.embedded-contents li{margin:.35rem 0}
.paper-answer-entry,.chapter-practice-entry{background:#eef5f2;border:1px solid #b3d0c4;padding:1.2rem;margin:1.5rem 0}
.paper-answer-entry h2{margin-bottom:.6rem}.paper-answer-links{display:flex;flex-wrap:wrap;gap:1rem 2rem;margin-bottom:0;padding-left:1.2rem}
.question-context{display:flex;flex-wrap:wrap;gap:.6rem 1.5rem;font-size:.88rem;margin:1rem 0 1.5rem}.question-marks{font-size:.86em;color:var(--muted)}
.question-chapter h3{margin-top:1.6rem}.question-chapter h4{margin:.9rem 0 .3rem}.question-chapter ul{margin-top:.3rem}
@media(max-width:700px){.embedded-example-content{padding:.7rem}.lecture-example>summary{padding:.8rem}.paper-answer-links{display:block}.question-context{display:block}.question-context a{display:block;margin:.5rem 0}}
@media print{.lecture-example[open]{break-inside:auto}.lecture-example>summary{background:white}.example-permalink,.question-context,.chapter-practice-entry{display:none}.embedded-example-content{padding:0}}

/* Citation metadata occupies its own line; teaching prose keeps its normal size. */
.source-reference{display:block;margin:.45rem 0 .8rem;padding:.15rem 0 .15rem .7rem;border-left:2px solid #b8c8c1;color:#536671;font-size:.82em;font-weight:400;line-height:1.6;overflow-wrap:anywhere}
.source-reference:first-child{margin-top:0}.source-reference a{color:inherit;text-decoration:underline}.source-reference .en-term{color:inherit}
figcaption .source-reference{font-size:1em;margin-bottom:.5rem}.exam-answer .source-reference{color:#dbe7ef;border-color:#98b3bd}
@media print{.source-reference{color:#333;border-color:#888;font-size:9pt;break-inside:avoid}}








/* Optional visual explanations (ELI5); additive and closed by default. */
.eli5-explainer{border:1px solid #c8ddd6;border-radius:8px;background:#f6fbf8;padding:0;margin:16px 0;color:var(--ink);clear:both}
.eli5-explainer>summary{padding:13px 16px;font-size:.94rem;line-height:1.65;font-weight:500;overflow-wrap:anywhere}
.eli5-explainer>summary::marker{color:var(--accent)}.eli5-label{font-weight:750;color:#065e54}
.eli5-body{padding:0 18px 18px}.eli5-explainer .eli5-idea{font-size:1.1rem;line-height:1.7;margin:6px 0 12px;font-weight:650}
.eli5-explainer figure{margin:14px auto;max-width:680px}.eli5-explainer figure img{border:0;border-radius:6px;width:100%;height:auto;background:#fff}
.eli5-explainer figcaption{font-size:.78rem}.eli5-explainer ol{margin:12px 0;padding-left:1.45em}.eli5-explainer li{margin:.65em 0}
.eli5-explainer .eli5-limit{margin:14px 0 8px;padding:10px 13px;border-left:3px solid #b57729;background:#fff5e4;font-size:.92rem}
.eli5-explainer .eli5-reference,.eli5-availability{font-size:.83rem;color:var(--muted)}.eli5-explainer .eli5-reference{margin:12px 0 0}
@media(max-width:600px){.eli5-body{padding:0 12px 15px}.eli5-explainer>summary{padding:12px}.eli5-explainer .eli5-idea{font-size:1rem}.eli5-explainer figure{margin-left:-3px;margin-right:-3px}}
@media print{.eli5-explainer:not([open]){display:none}.eli5-explainer[open]{background:white;border:1px solid #aaa;break-inside:auto}.eli5-explainer figure{max-width:500px;break-inside:avoid}.eli5-explainer .eli5-limit{background:white}.eli5-availability{display:none}}
/* End optional visual explanations. */

/* Optional point-form reading; original paragraphs are the default. */
.tools{flex-wrap:wrap;align-items:center}.reading-mode-control{display:inline-flex;align-items:center}.reading-mode-control[hidden]{display:none}
.reading-mode-status{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
[data-reading-wrapper]{display:inline}
html[data-reading-mode="points"] [data-reading-wrapper="run"]{display:block;padding-left:1.35em;margin:.3em 0 .8em}
html[data-reading-mode="points"] [data-reading-wrapper="item"]{display:list-item;list-style-type:disc;padding-left:.15em;margin:.45em 0;line-height:inherit}
html[data-reading-mode="points"] [data-reading-wrapper="item"]::marker{color:currentColor}
@media print{.reading-mode-control{display:none!important}html[data-reading-mode="points"] [data-reading-wrapper="item"]{break-inside:avoid}}
