:root{
  --bg:#ffffff; --panel:#f7fafd; --panel-2:#eaf1f9; --border:#cddced;
  --text:#0f2542; --muted:#4c6b8a; --muted-2:#6f88a8;
  --accent:#1c5a96; --rule:#c2d7ec;
  --flag:#3c5a82;
  --pos:#1f7a52; --neg:#ad3b34;
  --india:#1f6fb2; --china:#0f3a63; --us:#5a94d6; --japan:#123056;
  --serif: 'Source Serif 4', Georgia, serif;
  --sans: 'Source Sans 3', -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --mono: 'IBM Plex Mono', ui-monospace, SFMono-Regular, Menlo, monospace;
  --sidebar-w: 250px;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --bg:#0a1522; --panel:#0f1e30; --panel-2:#132741; --border:#1f3a58;
    --text:#e8f0fa; --muted:#93aec9; --muted-2:#5c7896;
    --accent:#6fa8dc; --rule:#254a6d;
    --flag:#7fa6d1;
    --pos:#4fb583; --neg:#e0776d;
    --india:#6fa8dc; --china:#3d6ea5; --us:#8fc0ef; --japan:#2c5786;
  }
}
:root[data-theme="dark"]{
  --bg:#0a1522; --panel:#0f1e30; --panel-2:#132741; --border:#1f3a58;
  --text:#e8f0fa; --muted:#93aec9; --muted-2:#5c7896;
  --accent:#6fa8dc; --rule:#254a6d;
  --flag:#7fa6d1;
  --pos:#4fb583; --neg:#e0776d;
  --india:#6fa8dc; --china:#3d6ea5; --us:#8fc0ef; --japan:#2c5786;
}
*{box-sizing:border-box;}
html{background:var(--bg);}
body{background:var(--bg); color:var(--text); font-family:var(--sans); margin:0; line-height:1.62; font-size:16px; -webkit-font-smoothing:antialiased;}
a{color:var(--accent); text-underline-offset:2px;}
strong{font-weight:650;}
.num{font-family:var(--mono); font-variant-numeric:tabular-nums;}
[id]{scroll-margin-top:64px;}

/* ================= NAVIGATION ================= */
.sidenav{display:none;}
@media (min-width:980px){
  .sidenav{
    display:block; position:fixed; top:0; bottom:0; left:0; width:var(--sidebar-w);
    overflow-y:auto; padding:28px 18px 40px 24px; border-right:1px solid var(--border);
    background:var(--bg);
  }
  .layout{margin-left:var(--sidebar-w);}
}
.sidenav .brand{font-family:var(--serif); font-weight:700; font-size:16px; margin-bottom:2px; text-decoration:none; color:var(--text); display:block;}
.sidenav .brand-sub{font-size:10.5px; color:var(--muted-2); text-transform:uppercase; letter-spacing:.1em; margin-bottom:22px; display:block;}
.sidenav ol{list-style:none; margin:0; padding:0;}
.sidenav > ol > li{margin-bottom:3px;}
.sidenav a{color:var(--text); text-decoration:none; font-size:13.5px; display:block; padding:4px 0;}
.sidenav > ol > li > a{font-weight:650;}
.sidenav a:hover{color:var(--accent);}
.sidenav ol ol{padding-left:14px; margin-bottom:6px; border-left:1px solid var(--border);}
.sidenav ol ol a{font-weight:400; font-size:12.5px; color:var(--muted); padding:3px 0 3px 10px;}
.sidenav ol ol a:hover{color:var(--accent);}
.sidenav a.active{color:var(--accent);}
.sidenav > ol > li > a.active{border-left:2px solid var(--accent); padding-left:8px; margin-left:-10px;}

.mobtoc{position:sticky; top:0; z-index:60; background:color-mix(in srgb, var(--bg) 94%, transparent); backdrop-filter:blur(8px); border-bottom:1px solid var(--border);}
@media (min-width:980px){.mobtoc{display:none;}}
.mobtoc summary{list-style:none; cursor:pointer; padding:12px 20px; font-family:var(--sans); font-size:13px; font-weight:650; display:flex; align-items:center; gap:8px;}
.mobtoc summary::-webkit-details-marker{display:none;}
.mobtoc summary::before{content:"☰"; color:var(--accent);}
.mobtoc[open] summary::before{content:"✕";}
.mobtoc-body{max-height:70vh; overflow-y:auto; padding:0 20px 18px;}
.mobtoc ol{list-style:none; margin:0; padding:0;}
.mobtoc > .mobtoc-body > ol > li{margin-bottom:2px;}
.mobtoc a{color:var(--text); text-decoration:none; font-size:14px; display:block; padding:5px 0;}
.mobtoc > .mobtoc-body > ol > li > a{font-weight:650;}
.mobtoc ol ol{padding-left:14px; border-left:1px solid var(--border); margin-bottom:4px;}
.mobtoc ol ol a{font-weight:400; font-size:13px; color:var(--muted); padding:4px 0 4px 10px;}
.mobtoc a.active{color:var(--accent);}

/* ================= CONTENT ================= */
.wrap{max-width:720px; margin:0 auto; padding:0 20px;}

.cover{padding:44px 0 28px;}
.cover .kicker{font-size:11.5px; letter-spacing:.16em; text-transform:uppercase; color:var(--accent); margin:0 0 14px;}
.cover h1{font-family:var(--serif); font-weight:700; font-size:40px; line-height:1.08; margin:0; letter-spacing:-.01em; text-wrap:balance;}
.cover .dek{font-family:var(--serif); font-style:italic; color:var(--muted); font-size:17.5px; margin:16px 0 0; max-width:52ch; line-height:1.5;}
.meta{display:flex; gap:26px; flex-wrap:wrap; margin-top:24px; padding-top:16px; border-top:1px solid var(--border);}
.meta div{font-size:11px;}
.meta .l{text-transform:uppercase; letter-spacing:.1em; color:var(--muted-2); margin-bottom:3px;}
.meta .v{font-family:var(--mono); color:var(--text); font-size:12.5px;}

.levels{margin:20px 0 0; padding-bottom:36px; border-bottom:1px solid var(--border);}
.levels-title{font-size:11px; text-transform:uppercase; letter-spacing:.14em; color:var(--muted-2); margin:0 0 12px;}
.levels-grid{display:grid; grid-template-columns:1fr 1fr; gap:0 28px;}
@media (max-width:560px){.levels-grid{grid-template-columns:1fr;}}
.levels table{width:100%; border-collapse:collapse; font-size:13.5px;}
.levels td{padding:6px 0; border-bottom:1px solid var(--border);}
.levels td:first-child{color:var(--muted);}
.levels td:last-child{text-align:right; font-family:var(--mono); font-variant-numeric:tabular-nums;}
.levels .up{color:var(--pos);} .levels .down{color:var(--neg);}

/* home directory of chapters */
.dirgrid{display:grid; grid-template-columns:1fr 1fr; gap:14px; margin:26px 0 40px;}
@media (max-width:640px){.dirgrid{grid-template-columns:1fr;}}
.dircard{display:block; border:1px solid var(--border); border-radius:3px; padding:16px 18px; text-decoration:none; color:var(--text); background:var(--panel);}
.dircard:hover{border-color:var(--accent);}
.dircard .n{font-family:var(--serif); font-style:italic; color:var(--accent); font-size:13px;}
.dircard h3{font-family:var(--serif); font-size:18px; font-weight:700; margin:4px 0 6px; border:none; padding:0; text-transform:none; letter-spacing:0; display:block;}
.dircard p{font-size:13px; color:var(--muted); margin:0;}

.chapter{padding:52px 0 8px;}
.chapter-head{display:flex; gap:16px; align-items:baseline; margin-bottom:4px; flex-wrap:wrap;}
.chnum{font-family:var(--serif); font-size:15px; color:var(--accent); font-style:italic;}
.chapter h2{font-family:var(--serif); font-size:29px; font-weight:700; letter-spacing:-.01em; margin:0;}
.tag{display:inline-block; font-size:10.5px; text-transform:uppercase; letter-spacing:.08em; padding:2px 8px; border-radius:3px; border:1px solid currentColor; margin-left:2px; vertical-align:2px;}
.tag.india{color:var(--india);} .tag.china{color:var(--china);} .tag.us{color:var(--us);} .tag.japan{color:var(--japan);}
.abstract{font-family:var(--serif); font-style:italic; color:var(--muted); font-size:16px; max-width:64ch; margin:14px 0 30px; line-height:1.55;}

h3{font-size:12.5px; text-transform:uppercase; letter-spacing:.06em; color:var(--text); margin:38px 0 12px; padding-bottom:9px; border-bottom:1px solid var(--rule); display:flex; gap:8px; align-items:baseline;}
h3 .snum{color:var(--accent); font-family:var(--mono); font-size:12px;}
h3 span.note-tag{color:var(--muted-2); font-weight:400; text-transform:none; letter-spacing:0; font-size:12px; font-style:italic;}
p{margin:0 0 14px;}
ul,ol.plain{margin:0 0 16px; padding-left:22px;}
li{margin-bottom:8px;}
.lead{font-size:16px;}

.note{border-left:2px solid var(--flag); padding:2px 0 2px 18px; margin:18px 0 22px;}
.note .lbl{font-size:10.5px; text-transform:uppercase; letter-spacing:.12em; color:var(--flag); margin-bottom:6px; display:block;}
.note p:last-child{margin-bottom:0;}

.panel{background:var(--panel); border:1px solid var(--border); border-radius:2px; padding:20px 22px; margin:16px 0;}
.panel-title{font-size:11px; text-transform:uppercase; letter-spacing:.1em; color:var(--accent); margin:0 0 14px; padding-bottom:10px; border-bottom:1px solid var(--rule);}
.panel p:last-child{margin-bottom:0;}
.panel-sub{font-size:11.5px; text-transform:uppercase; letter-spacing:.06em; color:var(--muted-2); margin:16px 0 4px;}
.panel-sub:first-of-type{margin-top:0;}

table.data{width:100%; border-collapse:collapse; font-size:13.5px; margin:8px 0 18px;}
table.data th{text-align:left; font-size:10.5px; text-transform:uppercase; letter-spacing:.06em; color:var(--muted-2); font-weight:600; padding:8px 10px; border-bottom:1px solid var(--rule);}
table.data td{padding:9px 10px; border-bottom:1px solid var(--border);}
table.data td.num,table.data th.num{text-align:right; font-family:var(--mono);}
.tbl-wrap{overflow-x:auto;}

.qa{padding:16px 0; border-bottom:1px solid var(--border);}
.qa:last-child{border-bottom:none;}
.qa .q{font-family:var(--serif); font-weight:700; font-size:16px; margin-bottom:6px;}
.qa .a{color:var(--muted); font-size:14.5px;}
.qa .a strong{color:var(--text);}
.qa .more{display:inline-block; margin-top:8px; font-size:12px; text-transform:uppercase; letter-spacing:.06em; text-decoration:none; color:var(--accent);}
.qa .more:hover{text-decoration:underline;}

.pagenav{display:flex; justify-content:space-between; gap:16px; padding:28px 0; margin-top:20px; border-top:1px solid var(--border); flex-wrap:wrap;}
.pagenav a{text-decoration:none; color:var(--text); font-size:13.5px; max-width:45%;}
.pagenav a:hover{color:var(--accent);}
.pagenav .d{display:block; font-size:10px; text-transform:uppercase; letter-spacing:.1em; color:var(--muted-2); margin-bottom:3px;}
.pagenav .next{text-align:right; margin-left:auto;}

footer{padding:36px 0 70px; border-top:1px solid var(--border); margin-top:16px;}
footer p{color:var(--muted-2); font-size:12px; line-height:1.7;}
