:root{
  --bg:#fbf8f1; --paper:#fffdf8; --ink:#1f1a14; --muted:#6b5f50; --line:#e2d8c6;
  --accent:#1f4e8c; --accent2:#a4572a; --note:#f3ecdc; --noteb:#c9b48a; --head:#f4eee2;
  --he:"David Libre","David",serif; --la:"Gentium Book Plus","Times New Roman",serif;
}
*{box-sizing:border-box}
html{scroll-padding-top:110px}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--he),var(--la);font-size:19px;line-height:1.75}
em,i,[lang=en]{font-family:var(--la)}
a{color:var(--accent)}
a.xref{text-decoration:none;border-bottom:1px dotted var(--accent)}
img.g{vertical-align:middle;mix-blend-mode:multiply;object-fit:contain;max-width:100%;height:auto}
.top{position:sticky;top:0;z-index:10;background:#1d2f4f;color:#fff;box-shadow:0 2px 6px rgba(0,0,0,.15)}
.top .bar{display:flex;gap:16px;align-items:center;justify-content:space-between;max-width:1200px;margin:auto;padding:8px 16px}
.brand{color:#fff;text-decoration:none;display:flex;flex-direction:column;line-height:1.2}
.brand .b1{font-weight:700;font-size:20px}.brand .b2{font-size:12px;opacity:.75}
.qs input{width:260px;max-width:40vw;padding:6px 10px;border-radius:6px;border:0;font:inherit;font-size:15px}
nav.main{display:flex;gap:4px;max-width:1200px;margin:auto;padding:0 12px 6px;overflow-x:auto}
nav.main a{color:#dfe7f5;text-decoration:none;padding:3px 10px;border-radius:5px;font-size:16px;white-space:nowrap}
nav.main a:hover,nav.main a[aria-current]{background:rgba(255,255,255,.15);color:#fff}
.wrap{max-width:900px;margin:auto;padding:16px}
.wrap.has-side{max-width:1200px;display:grid;grid-template-columns:260px minmax(0,1fr);gap:28px}
.side details{position:sticky;top:110px;max-height:calc(100vh - 130px);overflow:auto;background:var(--paper);border:1px solid var(--line);border-radius:8px;padding:8px 12px;font-size:15px}
.side summary{font-weight:700;cursor:pointer}
.side ol{padding-inline-start:20px;margin:6px 0}.side li{margin:2px 0}.side a{text-decoration:none}
main{background:var(--paper);border:1px solid var(--line);border-radius:10px;padding:20px 32px 32px;min-width:0}
header.ch{border-bottom:3px double var(--accent2);margin-bottom:18px;padding-bottom:8px}
header.ch .num{color:var(--accent2);font-weight:700}
h1{font-size:34px;line-height:1.3;margin:.2em 0}
h1 .en,h2 .en,h3 .en{display:block;font-size:.6em;color:var(--muted);font-weight:400}
h2{font-size:26px;margin:1.6em 0 .5em;padding:6px 12px;background:var(--head);border-inline-start:5px solid var(--accent);border-radius:4px}
h2 .en{display:inline;margin-inline-start:12px}
h3{font-size:21px;margin:1.2em 0 .3em;color:#2c2418}
h3 .en{display:inline;margin-inline-start:10px}
p{margin:.55em 0;text-align:justify}
p.caption{font-size:15px;color:var(--muted);text-align:center}
aside.note{background:var(--note);border:1px solid var(--noteb);border-inline-start:6px solid var(--accent2);border-radius:6px;padding:10px 14px 10px 14px;margin:14px 0;position:relative;color:#4a3410}
aside.note::before{content:"!";font-weight:700;font-size:26px;color:var(--accent2);margin-inline-end:10px;float:right;line-height:1.2}
.tw{overflow-x:auto;margin:12px 0;-webkit-overflow-scrolling:touch}
.tw table{border-collapse:collapse;margin:auto;background:#fff;font-size:17px;line-height:1.5}
.tw td,.tw th{border:1px solid #bfb39d;padding:5px 9px;text-align:center;vertical-align:middle}
.tw td[dir=rtl],.tw th[dir=rtl]{text-align:right}
.tw thead th,.tw tr:first-child td strong{font-weight:700}
.tw thead th{background:var(--head)}
.tw td p,.tw th p{margin:.2em 0;text-align:inherit}
table.gloss tr:target{background:#fff3c4}
table.gloss td:first-child{white-space:nowrap}
.pn{display:flex;justify-content:space-between;gap:12px;margin-top:36px;border-top:1px solid var(--line);padding-top:14px}
.pn a{text-decoration:none;font-weight:700}
.foot{text-align:center;color:var(--muted);font-size:14px;padding:20px 16px 40px}
ol.chapters{list-style:none;padding:0;margin:0;display:grid;gap:6px}
ol.chapters a{display:flex;gap:10px;align-items:baseline;padding:7px 12px;background:#fff;border:1px solid var(--line);border-radius:7px;text-decoration:none;color:var(--ink)}
ol.chapters a:hover{border-color:var(--accent);background:#f5f8fd}
ol.chapters .n{color:var(--accent2);font-weight:700;min-width:1.4em}
ol.chapters .en{color:var(--muted);font-size:14px;margin-inline-start:auto}
.hero{text-align:center;padding:18px 0 8px}
.hero h1 .en{font-size:18px}
.hero .by{font-size:20px;color:var(--accent2);margin:4px 0 16px}
.bigsearch{display:flex;gap:8px;max-width:640px;margin:10px auto}
.bigsearch input{flex:1;padding:10px 14px;font:inherit;font-size:17px;border:1px solid #b9ac93;border-radius:8px}
.bigsearch button{padding:10px 18px;font:inherit;background:var(--accent);color:#fff;border:0;border-radius:8px;cursor:pointer}
.parts{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:20px}
.parts h2{font-size:22px}.parts h2 a{text-decoration:none}
.preface{margin-top:30px;border-top:1px solid var(--line)}
.callout{background:#eef3fb;border:1px solid #c9d7ee;border-radius:7px;padding:8px 12px}
.filter input{width:100%;padding:8px 12px;font:inherit;border:1px solid #b9ac93;border-radius:7px;margin-bottom:6px}
.hint{color:var(--muted);font-size:15px;text-align:center}
#results .grp{margin-top:20px}
.res-w{display:grid;grid-template-columns:auto 1fr;gap:4px 14px;padding:8px 10px;border-bottom:1px solid var(--line);align-items:center}
.res-w .gl{grid-row:span 2;direction:ltr}
.res-w .t1{font-weight:700}.res-w .t1 em{font-weight:400;margin-inline-start:10px}
.res-w .t2{font-size:15px;color:var(--muted)}
.res-s{padding:8px 4px;border-bottom:1px solid var(--line)}
.res-s a{font-weight:700;text-decoration:none}
.res-s p{font-size:16px;color:#3c342a;margin:2px 0}
mark{background:#ffe58f;padding:0 1px}
.ad{margin:22px 0;min-height:0}
@media (max-width:900px){
  .wrap.has-side{display:block}
  .side details{position:static;max-height:none;margin-bottom:12px}
  .side details:not([open]){}
  main{padding:14px 16px 24px}
  .parts{grid-template-columns:1fr}
  .qs{display:none}
  body{font-size:18px}
  h1{font-size:28px} h2{font-size:22px}
}
@media print{.top,.side,.pn,.foot,.filter{display:none}main{border:0}}
.tw td:has(> .tw), .tw td:has(table){vertical-align:top}
.tw td > .tw, .tw td > table{margin:0}
.tw td aside.note{text-align:right;font-size:16px}
h2 .en,h3 .en{margin-inline-start:14px}
h1 .en,h2 .en,h3 .en{margin-inline-start:0;margin-right:.7em}
h1 .en{margin-right:0}
@media (max-width:700px){p{text-align:right}}
aside.note.tip{background:#eef3fb;border-color:#b9cbe6;border-inline-start-color:var(--accent);color:#1d2f4f}
aside.note.tip::before{content:"🔍";font-size:20px;color:var(--accent)}
.hero p{text-align:center}

/* ===== Theme: colours of the booklet's title pages (papyrus, lapis, ochre, terracotta) ===== */
:root{
  --bg:#efe2c4; --paper:#fbf4e3; --ink:#3a2a22; --muted:#7a6248; --line:#d9c29a;
  --accent:#1f4f7f; --accent2:#a8642e; --red:#8a2a1e; --gold:#c9a24b;
  --note:#f6ead0; --noteb:#c9a26b; --head:#f0e0bd;
}
body{background:var(--bg) linear-gradient(180deg,rgba(255,255,255,.18),rgba(0,0,0,0)) fixed}
.top{background:#1f3f6b;border-bottom:4px solid var(--gold)}
.top::after{content:"";display:block;height:7px;
  background:repeating-linear-gradient(90deg,#1f4f7f 0 18px,#c9a24b 18px 22px,#8a2a1e 22px 34px,#c9a24b 34px 38px,#2f6f6a 38px 52px,#c9a24b 52px 56px)}
.brand{color:#f5e6c4}.brand .b2{color:#e2cfa4;opacity:1}
nav.main a{color:#eadbb8}
nav.main a:hover,nav.main a[aria-current]{background:rgba(201,162,75,.25);color:#fff}
.qs input{background:#fbf4e3}
main{background:var(--paper);border:1px solid var(--line);box-shadow:0 1px 0 #fff inset,0 2px 10px rgba(90,60,20,.08)}
header.ch{border-bottom:3px double var(--accent2)}
header.ch .num{color:var(--red)}
h1{color:#2c1f18}
h2{background:var(--head);border-inline-start:5px solid var(--accent2);color:#2c1f18}
h3{color:#5a3418}
.tw table{background:#fffaf0}
.tw td,.tw th{border-color:#c4a87c}
.tw thead th{background:#ead6ae}
table.gloss tr:target{background:#f7e3a8}
aside.note{background:var(--note);border-color:var(--noteb);border-inline-start-color:var(--red);color:#4a2a14}
aside.note::before{color:var(--red)}
aside.note.tip{background:#e9eef2;border-color:#a9bccb;border-inline-start-color:var(--accent);color:#1f3550}
.side details{background:var(--paper)}
ol.chapters a{background:#fffaf0;border-color:var(--line)}
ol.chapters a:hover{border-color:var(--accent2);background:#f8ecd2}
ol.chapters .n{color:var(--red)}
.bigsearch input{background:#fffaf0;border-color:#c4a87c}
.bigsearch button{background:var(--accent)}
.callout{background:#e9eef2;border-color:#a9bccb}
.hero .by{color:var(--red)}
mark{background:#f3d27a}
.foot{color:var(--muted)}

/* ===== Banners: drop images into site/banners/ (3:1, e.g. 2400x800) ===== */
.banner{max-width:1200px;margin:14px auto 0;padding:0 16px}
.banner img{display:block;width:100%;height:auto;aspect-ratio:3/1;object-fit:cover;border:3px solid var(--gold);border-radius:10px;box-shadow:0 2px 10px rgba(90,60,20,.18)}
@media (max-width:700px){.banner{padding:0 8px;margin-top:8px}.banner img{border-width:2px;border-radius:6px}}

/* ===== Navigation ===== */
.skip{position:absolute;right:-9999px;top:0;background:#fff;padding:6px 12px;z-index:50}
.skip:focus{right:8px}
nav.main{overflow:visible;flex-wrap:wrap;align-items:center;position:relative}
nav.main > a, .dd > summary{color:#eadbb8;text-decoration:none;padding:3px 10px;border-radius:5px;font-size:16px;white-space:nowrap;cursor:pointer}
nav.main > a.on, .dd > summary.on{background:rgba(201,162,75,.28);color:#fff}
nav.main > a:hover, .dd > summary:hover{background:rgba(201,162,75,.22);color:#fff}
.dd{position:relative}
.dd > summary{list-style:none;display:inline-block}
.dd > summary::-webkit-details-marker{display:none}
.dd > summary::after{content:" ▾";font-size:12px}
.dd[open] > summary{background:rgba(201,162,75,.35);color:#fff}
.ddp{position:absolute;top:calc(100% + 6px);right:0;z-index:30;background:var(--paper);color:var(--ink);border:1px solid var(--line);border-top:3px solid var(--gold);border-radius:8px;box-shadow:0 8px 24px rgba(40,25,10,.25);padding:8px;width:min(340px,92vw);max-height:70vh;overflow:auto}
.ddp a{display:flex;gap:8px;color:var(--ink);text-decoration:none;padding:5px 8px;border-radius:5px;font-size:16px;line-height:1.4}
.ddp a:hover{background:#f3e3bf}
.ddp a[aria-current]{background:#ead6ae;font-weight:700}
.ddp a.all{font-weight:700;color:var(--accent);border-bottom:1px solid var(--line);margin-bottom:4px;border-radius:0}
.ddp ol,.ddp ul{list-style:none;margin:0;padding:0}
.ddp .n,.smap .n{color:var(--red);font-weight:700;min-width:1.5em;display:inline-block}
.crumbs{font-size:15px;color:var(--muted);margin:0 0 10px;display:flex;flex-wrap:wrap;gap:4px;align-items:center}
.crumbs a{text-decoration:none}
.crumbs .sep{color:var(--gold);margin:0 2px}
.crumbs [aria-current]{color:var(--ink)}
.side{display:flex;flex-direction:column;gap:12px;position:sticky;top:110px;align-self:start;max-height:calc(100vh - 124px);overflow:auto}
.side details.sd{position:static;max-height:none;overflow:visible;background:var(--paper);border:1px solid var(--line);border-radius:8px;padding:8px 12px;font-size:15px}
.side summary{font-weight:700;cursor:pointer;color:var(--red)}
.side ol.toc{padding-inline-start:20px;margin:6px 0}
.side ol.toc ol.sub{padding-inline-start:14px;font-size:14px;list-style:disc}
.side ol.toc a.active{font-weight:700;color:var(--red)}
.smap{display:flex;flex-direction:column;gap:2px;margin-top:6px}
.smap .smh{font-weight:700;text-decoration:none;color:var(--accent);margin-top:6px}
.smap ol,.smap ul{list-style:none;margin:0;padding:0 8px 0 0}
.smap li a{display:block;text-decoration:none;color:var(--ink);padding:1px 4px;border-radius:4px;font-size:14px}
.smap li a:hover{background:#f3e3bf}
.smap li a.cur{background:#ead6ae;font-weight:700}
.pn{flex-wrap:wrap}
.pn a{display:flex;flex-direction:column;padding:8px 12px;border:1px solid var(--line);border-radius:8px;background:#fffaf0;max-width:48%}
.pn a.next{text-align:left}
.pn small{font-size:13px;color:var(--muted);font-weight:400}
.foot .fnav{display:flex;flex-wrap:wrap;justify-content:center;gap:4px 16px;margin-bottom:6px}
.foot .fnav a{text-decoration:none}
.totop{position:fixed;left:max(14px,env(safe-area-inset-left,0px));bottom:max(14px,env(safe-area-inset-bottom,0px));width:42px;height:42px;border-radius:50%;background:var(--accent);color:#fff;text-decoration:none;display:flex;align-items:center;justify-content:center;font-size:22px;box-shadow:0 2px 8px rgba(0,0,0,.25);opacity:0;pointer-events:none;transition:opacity .2s;z-index:20}
.totop.show{opacity:.9;pointer-events:auto}
@media (max-width:900px){
  .side{position:static;max-height:none;overflow:visible;margin-bottom:12px}
  .side .smap li a{font-size:15px;padding:3px 4px}
  .pn a{max-width:100%;flex:1 1 100%}
}
@media (prefers-reduced-motion:reduce){.totop{transition:none}html{scroll-behavior:auto}}
html{scroll-behavior:smooth}
a.term{color:inherit;text-decoration:none;border-bottom:1px dashed var(--accent2)}
a.term:hover{color:var(--accent)}
a.gl-link{text-decoration:none;border-bottom:1px dotted var(--accent)}
p[dir=ltr],li[dir=ltr]{text-align:left}
nav.main .ddp a{color:var(--ink);white-space:normal}nav.main .ddp a.all{color:var(--accent)}nav.main .ddp a:hover{color:var(--ink)}
@media (max-width:700px){.ddp{position:fixed;top:auto;right:8px;left:8px;width:auto;margin-top:6px}}

/* ===== Header v2: narrow papyrus band in the style of the banners, cartouche nav tiles ===== */
.top{background:
   repeating-linear-gradient(90deg,rgba(120,80,30,.05) 0 2px,transparent 2px 7px),
   repeating-linear-gradient(0deg,rgba(120,80,30,.04) 0 1px,transparent 1px 5px),
   linear-gradient(180deg,#f1e2bf,#e6cf9f);
  color:var(--ink);border-bottom:0;box-shadow:0 2px 8px rgba(90,60,20,.18)}
.top::before{content:"";display:block;height:6px;
  background:repeating-linear-gradient(90deg,#1f4f7f 0 14px,#c9a24b 14px 17px,#8a2a1e 17px 31px,#c9a24b 31px 34px,#2f6f6a 34px 48px,#c9a24b 48px 51px)}
.top::after{height:6px;border-top:1px solid #b08a4a}
.top .bar{padding:4px 16px 0;gap:12px}
.brand{color:#3a2418}
.brand .b1{font-size:19px;color:#3a2418}
.brand .b2{color:#8a6a44;font-size:11.5px}
.qs input{background:#fbf4e3;border:1px solid #b9965e;color:var(--ink);padding:5px 10px}
nav.main{gap:8px;padding:4px 16px 8px}
nav.main > a, .dd > summary{
  position:relative;color:#3a2418;font-weight:700;font-size:16px;line-height:1;
  padding:7px 16px 7px 22px;border-radius:999px;
  background:linear-gradient(180deg,#fbf3df,#eedcb3);
  border:2px solid #9c6b2e;box-shadow:inset 0 0 0 2px #fbf3df,inset 0 0 0 3px #c9a24b,0 1px 2px rgba(60,35,10,.25)}
/* cartouche tie-bar on the closing (left) end */
nav.main > a::before, .dd > summary::before{content:"";position:absolute;left:5px;top:5px;bottom:5px;width:3px;border-radius:2px;background:#9c6b2e}
nav.main > a:hover, .dd > summary:hover{background:linear-gradient(180deg,#fff8e8,#f3e2bb);color:#8a2a1e}
nav.main > a.on, .dd > summary.on, .dd[open] > summary{
  background:linear-gradient(180deg,#2a5a8a,#1f4f7f);color:#f7e7bf;border-color:#c9a24b;
  box-shadow:inset 0 0 0 2px #1f4f7f,inset 0 0 0 3px #c9a24b,0 1px 3px rgba(20,20,40,.35)}
nav.main > a.on::before, .dd > summary.on::before, .dd[open] > summary::before{background:#c9a24b}
.dd > summary::after{content:" ▾";font-size:11px;font-weight:400}
.ddp{top:calc(100% + 8px)}
html{scroll-padding-top:120px}
.side{top:120px;max-height:calc(100vh - 134px)}
@media (max-width:700px){
  .top .bar{padding:3px 10px 0}
  .brand .b1{font-size:16px}.brand .b2{display:none}
  nav.main{gap:5px;padding:4px 8px 7px;justify-content:center}
  nav.main > a, .dd > summary{font-size:14.5px;padding:6px 11px 6px 15px}
  nav.main > a::before, .dd > summary::before{left:4px;width:2px}
  html{scroll-padding-top:110px}
}
@media (min-width:1000px){
  .top{display:grid;grid-template-columns:auto 1fr auto;align-items:center;column-gap:18px;padding:0 max(16px,calc((100vw - 1200px)/2))}
  .top::before,.top::after{grid-column:1/-1;margin:0 calc(-1 * max(16px,calc((100vw - 1200px)/2)))}
  .top .bar{display:contents}
  .brand{grid-column:1;grid-row:2;padding:6px 0}
  nav.main{grid-column:2;grid-row:2;justify-content:center;padding:6px 0;margin:0;max-width:none}
  .qs{grid-column:3;grid-row:2}
  .qs input{width:220px}
  html{scroll-padding-top:90px}
  .side{top:84px;max-height:calc(100vh - 98px)}
}

/* ===== Cartouche v2: stadium-shaped rope loop with the tie-bar standing outside the closing (left) end ===== */
nav.main > a, .dd > summary{
  margin-left:9px;                      /* room for the tie-bar */
  padding:7px 18px;
  border-radius:999px;
  border:2.5px solid #8a5a24;
  box-shadow:inset 0 0 0 2px #fbf3df,inset 0 0 0 3.5px #c9a24b,0 1px 2px rgba(60,35,10,.25);
}
nav.main > a::before, .dd > summary::before{
  content:"";position:absolute;left:-9px;top:-1px;bottom:-1px;width:5px;
  border-radius:2px;background:#8a5a24;box-shadow:inset 0 0 0 1px #c9a24b;
}
nav.main > a.on::before, .dd > summary.on::before, .dd[open] > summary::before{background:#1f4f7f;box-shadow:inset 0 0 0 1px #c9a24b}
nav.main > a.on, .dd > summary.on, .dd[open] > summary{border-color:#c9a24b}
/* dropdown marker drawn in CSS (no font dependency) */
.dd > summary::after{content:"";display:inline-block;margin-right:7px;vertical-align:middle;
  border-left:4.5px solid transparent;border-right:4.5px solid transparent;border-top:6px solid currentColor}
.dd[open] > summary::after{border-top:0;border-bottom:6px solid currentColor}
@media (max-width:700px){
  nav.main > a, .dd > summary{padding:6px 12px;margin-left:8px}
  nav.main > a::before, .dd > summary::before{left:-8px;width:4px;top:-1px;bottom:-1px}
}
nav.main > a::before, .dd > summary::before{left:-8px;width:5.5px}
@media (max-width:700px){
  nav.main{gap:3px;padding-left:4px;padding-right:4px}
  nav.main > a, .dd > summary{padding:5px 9px;margin-left:7px;font-size:14px;border-width:2px}
  nav.main > a::before, .dd > summary::before{left:-6.5px;width:4.5px}
  .dd > summary::after{margin-right:4px;border-left-width:3.5px;border-right-width:3.5px;border-top-width:5px}
}
nav.main > a::before, .dd > summary::before{left:-6px}
@media (max-width:700px){nav.main > a::before, .dd > summary::before{left:-5px}}
tr.subrow td{background:#efe0bd;font-weight:700;color:#5a3418;text-align:right}
.parts .part{display:flex;flex-direction:column}
.parts .bib-link{margin-top:auto;padding-top:14px}
.parts .bib-link a{background:transparent;border-style:dashed;color:var(--muted)}
.parts .bib-link a:hover{background:#f8ecd2;color:var(--ink)}
ol.chapters a.stack{flex-direction:column;align-items:flex-start;gap:0}
ol.chapters a.stack .en{margin-inline-start:0;line-height:1.3}
.parts .bib-link a{background:var(--head);border:1px solid var(--line);border-inline-start:5px solid var(--accent2);color:#2c1f18;font-weight:700}
.parts .bib-link a .en{font-weight:400}
.parts .bib-link a:hover{background:#ead6ae;color:#2c1f18}
/* reading-direction figure */
figure.rd{margin:1.2em auto;text-align:center}
figure.rd .rd-imgs{display:flex;justify-content:center;align-items:center;gap:2.5em;direction:ltr}
figure.rd .rd-imgs img{height:auto;max-width:none}
figure.rd .rd-imgs img[width="96"],figure.rd .rd-imgs img[width="92"]{height:55px;width:auto}
figure.rd .rd-imgs img[width="35"]{height:170px;width:auto}
figure.rd figcaption{margin-top:.6em;font-size:1rem}
figure.rd figcaption em{font-family:"Times New Roman",serif;font-size:1.1em}
@media (max-width:600px){figure.rd .rd-imgs{gap:1.2em}figure.rd .rd-imgs img[width="96"],figure.rd .rd-imgs img[width="92"]{height:42px}figure.rd .rd-imgs img[width="35"]{height:130px}}
/* creator page */
h2.creator-name{border:0;background:none;padding:0;margin:.2em 0 .8em;font-size:1.35rem;color:#6b3e1f}
.back-home{margin-top:2em;text-align:center}
a.btn-back{display:inline-block;padding:.55em 1.6em;border-radius:999px;background:#7a4a24;color:#fdf6e3;text-decoration:none;font-weight:700;box-shadow:0 2px 6px rgba(60,30,10,.25)}
a.btn-back:hover{background:#5d3517;color:#fff}
