:root{
  --page:#f5f4f0; --panel:#fdfdfb; --ink:#14181c; --ink-soft:#454a4f; --ink-mute:#8a8d90;
  --line:#d8d6cf; --line-soft:#e6e4dd;
  --s1:#a9752e; --s1-ink:#f7ecdb;
  --s2:#2f6e68; --s2-ink:#dcefec;
  --s4:#35597a; --s4-ink:#dde7ef;
  --s5:#8c3327; --s5-ink:#f6ded9;
  --s6:#3a3a3a; --s6-ink:#e6e6e6;
  --sbio:#3f7d4a; --sbio-ink:#e4f1e6;
  --shist:#6b4fa0; --shist-ink:#f0eaf9;
  --sas:#3f4e6b; --sas-ink:#e6ebf3;
  --sruss:#8a4a2e; --sruss-ink:#f6e6dc;
  --sigcse:#2e3a4a; --sigcse-ink:#e3e8ee;
  --sindus:#6b5d3f; --sindus-ink:#f2ede0;
  --slib:#7a6b2e; --slib-ink:#f5f1de;
  --s21:#9c7a3d; --s21-ink:#f7f0e0;
  --s22:#3d6b6e; --s22-ink:#e0f0f0;
  --s23:#7a4a5c; --s23-ink:#f7e6ec;
  --s24:#3d5a7a; --s24-ink:#e0e8f0;
  --sov:#5f5a52; --sov-ink:#f0eee9;
  --s31:#8a5a3d; --s31-ink:#f7ece2;
  --s32:#5a7a52; --s32-ink:#eaf2e6;
  --s33:#6a527a; --s33-ink:#eee6f2;
  --s34:#4a6a72; --s34-ink:#e2edee;
  --sfr:#7a2e3a; --sfr-ink:#f6e2e5;
  --ssci:#2e5a7a; --ssci-ink:#e2eef6;
}
*{box-sizing:border-box;}
html,body{margin:0;}
body{background:var(--page);color:var(--ink);font-family:'Public Sans',sans-serif;}
a{color:inherit;}

.site-head{
  display:flex;align-items:center;justify-content:space-between;gap:1.5rem;
  padding:.9rem 2rem;border-bottom:1px solid var(--line);flex-wrap:wrap;
}
.site-head .running{font-family:'Space Mono',monospace;font-size:11.5px;letter-spacing:.08em;
  text-transform:uppercase;color:var(--ink-mute);white-space:nowrap;text-decoration:none;
  border-bottom:1px solid transparent;}
.site-head .running:hover{color:var(--ink-soft);border-bottom-color:var(--ink-soft);}
.back{font-family:'Space Mono',monospace;font-size:12px;text-decoration:none;
  color:var(--ink-soft);border-bottom:1px solid transparent;}
.back:hover{border-bottom-color:var(--ink-soft);}
.site-search{display:flex;align-items:center;gap:.5rem;border-bottom:1px solid var(--line);
  padding:.3rem .1rem;min-width:190px;}
.site-search input{border:none;background:transparent;font-family:'Public Sans',sans-serif;
  font-size:13px;color:var(--ink);width:100%;outline:none;}
.site-search input::placeholder{color:var(--ink-mute);}
.site-search svg{flex-shrink:0;opacity:.55;}

main{max-width:760px;margin:0 auto;padding:0 1.75rem;}
.hero{padding:3rem 0 2.2rem;}
.hero .kicker{font-family:'Space Mono',monospace;font-size:12px;letter-spacing:.12em;
  text-transform:uppercase;color:var(--ink-mute);margin:0 0 .6rem;}
.hero .kicker .syllabus-link{color:var(--ink-mute);text-decoration:none;border-bottom:1px solid var(--ink-mute);}
.hero .kicker .syllabus-link:hover{color:var(--ink-soft);border-bottom-color:var(--ink-soft);}
.hero h1{font-family:'Big Shoulders Display',sans-serif;font-weight:700;
  font-size:clamp(18px,3vw,32px);line-height:1.06;margin:.5rem 0 .7rem;
  white-space:nowrap;}
.hero .hint{font-family:'Public Sans',sans-serif;font-size:13.5px;color:var(--ink-soft);margin:0;}
.no-results{max-width:760px;margin:1.5rem auto 0;padding:0 1.75rem;font-family:'Space Mono',monospace;
  font-size:12.5px;color:var(--ink-mute);font-style:italic;}

.toc{border-top:1px solid var(--line);}
.sec{border-bottom:1px solid var(--line);}
.sec > summary{display:flex;align-items:center;gap:1rem;padding:1.05rem 0;cursor:pointer;list-style:none;}
.sec > summary::-webkit-details-marker{display:none;}
.sec-num{font-family:'Big Shoulders Display',sans-serif;font-weight:800;font-size:20px;
  line-height:1;padding:.32em .5em;min-width:2.1em;text-align:center;flex-shrink:0;}
.sec-name{font-family:'Big Shoulders Display',sans-serif;font-weight:600;font-size:19px;margin-right:auto;}
.sec-count{font-family:'Space Mono',monospace;font-size:11px;letter-spacing:.03em;
  text-transform:uppercase;color:var(--ink-mute);white-space:nowrap;}
.chev{flex-shrink:0;transition:transform .15s ease;color:var(--ink-mute);}
.sec[open] > summary .chev{transform:rotate(90deg);}

.sec-top{border-bottom:1px solid var(--line-soft);margin-bottom:.4rem;}
.sec-top > summary{padding:1.3rem 0;}
.sec-top > summary .sec-num{background:var(--ink);color:var(--page);font-size:22px;}
.sec-top > summary .sec-name{font-size:23px;font-weight:700;}
.sec-hist > summary .sec-num{background:var(--shist);color:var(--shist-ink);}
.sec-bio > summary .sec-num{background:var(--sbio);color:var(--sbio-ink);}
.sec-as > summary .sec-num{background:var(--sas);color:var(--sas-ink);}
.sec-igcse > summary .sec-num{background:var(--sigcse);color:var(--sigcse-ink);}
.sub-toc{padding:0 0 1.6rem 1.6rem;}
.sub-toc > .kicker{margin:0 0 1rem;}
.sub-toc > .toc{border-top:1px solid var(--line);}
.sub-toc > .entry-list{padding-left:0;}

.entry-list{list-style:none;margin:0 0 1.3rem;padding:0 0 0 3rem;}
.entry-list li{border-left:2px solid var(--line);}
.entry-list li a{
  display:flex;align-items:baseline;gap:.6rem;flex-wrap:wrap;
  padding:.5rem 0 .5rem .9rem;text-decoration:none;color:var(--ink);
  font-family:'Big Shoulders Display',sans-serif;font-weight:500;font-size:15px;
}
.entry-list li a::after{content:"\2197";margin-left:auto;font-family:'Space Mono',monospace;
  font-size:12px;color:var(--ink-mute);flex-shrink:0;}
.entry-list li a:hover{color:var(--ink);background:var(--panel);}
.entry-list li a:hover::after{color:var(--ink-soft);}
.entry-list .cap{font-family:'Space Mono',monospace;font-weight:400;font-size:11px;color:var(--ink-mute);}

.sec-1 .sec-num{background:var(--s1);color:var(--s1-ink);}
.sec-1 .entry-list li{border-left-color:var(--s1);}
.sec-2 .sec-num{background:var(--s2);color:var(--s2-ink);}
.sec-2 .entry-list li{border-left-color:var(--s2);}
.sec-4 .sec-num{background:var(--s4);color:var(--s4-ink);}
.sec-4 .entry-list li{border-left-color:var(--s4);}
.sec-5 .sec-num{background:var(--s5);color:var(--s5-ink);}
.sec-5 .entry-list li{border-left-color:var(--s5);}
.sec-8c .sec-num{background:var(--s6);color:var(--s6-ink);}
.sec-8c .entry-list li{border-left-color:var(--s6);}
.sec-bio .sec-num{background:var(--sbio);color:var(--sbio-ink);}
.sec-bio .entry-list li{border-left-color:var(--sbio);}
.sec-russ .sec-num{background:var(--sruss);color:var(--sruss-ink);}
.sec-russ .entry-list li{border-left-color:var(--sruss);}
.sec-ir .sec-num{background:var(--sindus);color:var(--sindus-ink);}
.sec-ir .entry-list li{border-left-color:var(--sindus);}
.sec-lib .sec-num{background:var(--slib);color:var(--slib-ink);}
.sec-lib .entry-list li{border-left-color:var(--slib);}
.sec-21 .sec-num{background:var(--s21);color:var(--s21-ink);}
.sec-21 .entry-list li{border-left-color:var(--s21);}
.sec-22 .sec-num{background:var(--s22);color:var(--s22-ink);}
.sec-22 .entry-list li{border-left-color:var(--s22);}
.sec-23 .sec-num{background:var(--s23);color:var(--s23-ink);}
.sec-23 .entry-list li{border-left-color:var(--s23);}
.sec-24 .sec-num{background:var(--s24);color:var(--s24-ink);}
.sec-24 .entry-list li{border-left-color:var(--s24);}
.sec-ov .sec-num{background:var(--sov);color:var(--sov-ink);}
.sec-ov .entry-list li{border-left-color:var(--sov);}
.sec-31 .sec-num{background:var(--s31);color:var(--s31-ink);}
.sec-31 .entry-list li{border-left-color:var(--s31);}
.sec-32 .sec-num{background:var(--s32);color:var(--s32-ink);}
.sec-32 .entry-list li{border-left-color:var(--s32);}
.sec-33 .sec-num{background:var(--s33);color:var(--s33-ink);}
.sec-33 .entry-list li{border-left-color:var(--s33);}
.sec-34 .sec-num{background:var(--s34);color:var(--s34-ink);}
.sec-34 .entry-list li{border-left-color:var(--s34);}
.sec-fr .entry-list li{border-left-color:var(--sfr);}
.sec-sci .sec-num{background:var(--ssci);color:var(--ssci-ink);}
.sec-sci .entry-list li{border-left-color:var(--ssci);}
.sec-qual-igcse .sec-num{background:var(--sigcse);color:var(--sigcse-ink);}
.sec-qual-as .sec-num{background:var(--sas);color:var(--sas-ink);}

footer{max-width:760px;margin:0 auto;padding:2rem 1.75rem 3rem;
  font-family:'Space Mono',monospace;font-size:11px;color:var(--ink-mute);}
