.lssb-root{
  --ink:#17201d; --ink-soft:#505753; --muted:#838784;
  --rule:#e0e3e0; --rule-soft:#eceeeb;
  --paper:#ffffff; --panel:#f8f8f6;
  --accent:#b56429; --accent-deep:#8c4a1c;
  --navy:#1f3864; --navy-soft:#6f7c98;
  --green:#0c6b54; --green-tint:#e2ede7;
  --sand-tint:#f1e6d8;
  --serif:"Iowan Old Style","Palatino Linotype",Palatino,"Book Antiqua",Georgia,serif;
  --sans:"Inter","Helvetica Neue",Arial,sans-serif;
  --measure:54rem;
}
.lssb-root{
  color:var(--ink); font-family:var(--serif); font-size:18px; line-height:1.68;
  -webkit-font-smoothing:antialiased; background:var(--paper);
}.lssb-root *, .lssb-root *::before, .lssb-root *::after{box-sizing:border-box}.lssb-root .wrap{max-width:var(--measure); margin:0 auto; padding:0 1.5rem}.lssb-root p{margin:0 0 1.05em}.lssb-root a{color:var(--accent-deep)}.lssb-root hr{border:0;border-top:1px solid var(--rule);margin:3rem 0}.lssb-root /* ---------- top nav ---------- */
.topbar{
  position:sticky; top:var(--lssb-offset,0px); z-index:50; background:rgba(255,255,255,.94);
  backdrop-filter:blur(8px); border-bottom:1px solid var(--rule);
}.lssb-root .topbar-inner{max-width:74rem;margin:0 auto;padding:.55rem 1.25rem;
  display:flex;align-items:center;gap:1rem;flex-wrap:wrap}.lssb-root .topbar .brand{font-family:var(--sans);font-size:.72rem;letter-spacing:.16em;
  text-transform:uppercase;color:var(--muted);font-weight:600;white-space:nowrap}.lssb-root .topbar nav{display:flex;gap:.1rem;flex-wrap:wrap;margin-left:auto}.lssb-root .topbar nav a{
  font-family:var(--sans);font-size:.7rem;font-weight:600;text-decoration:none;
  color:var(--muted);padding:.24rem .42rem;border-radius:3px;
}.lssb-root .topbar nav a:hover{background:var(--panel);color:var(--accent-deep)}.lssb-root .topbar nav a.wide{letter-spacing:.06em}.lssb-root /* ---------- cover ---------- */
.cover{
  min-height:100vh; display:flex; flex-direction:column; justify-content:center;
  padding:4rem 1.5rem; text-align:center;
  background:
    radial-gradient(circle at 20% 12%, rgba(31,56,100,.07), transparent 55%),
    radial-gradient(circle at 82% 84%, rgba(12,107,84,.07), transparent 55%),
    linear-gradient(170deg,#ffffff 0%,#f2f4f3 100%);
  border-bottom:1px solid var(--rule);
}.lssb-root .cover-inner{max-width:44rem;margin:0 auto;
  border:1px solid var(--rule);padding:3.4rem 2.2rem;background:rgba(255,255,255,.5)}.lssb-root .cover .eyebrow{font-family:var(--sans);font-size:.7rem;letter-spacing:.34em;
  text-transform:uppercase;color:var(--accent);margin-bottom:2rem;font-weight:600}.lssb-root .cover h1{
  font-size:clamp(2.1rem,6vw,3.5rem); line-height:1.08; margin:0 0 .2em;
  font-weight:600; letter-spacing:-.015em;
}.lssb-root .cover h1 .line2{display:block;color:var(--accent-deep)}.lssb-root .cover .sub{font-style:italic;font-size:1.12rem;color:var(--ink-soft);
  margin:1.4rem auto 2.2rem;max-width:30rem}.lssb-root .cover .rule{width:70px;height:2px;background:var(--accent);margin:0 auto 2.1rem}.lssb-root .cover .standards{font-family:var(--sans);font-size:.78rem;letter-spacing:.05em;
  color:var(--muted);line-height:2.05;margin-bottom:2.4rem}.lssb-root .cover .author{font-family:var(--sans);font-size:1.02rem;letter-spacing:.2em;
  text-transform:uppercase;font-weight:600;color:var(--ink)}.lssb-root .cover .edition{font-family:var(--sans);font-size:.72rem;letter-spacing:.2em;
  text-transform:uppercase;color:var(--muted);margin-top:.9rem}.lssb-root /* ---------- generic front/back sections ---------- */
.matter{padding:4.5rem 0 3rem;border-bottom:1px solid var(--rule-soft)}.lssb-root .matter h2.section-title{
  font-family:var(--sans);font-size:.74rem;letter-spacing:.24em;text-transform:uppercase;
  color:var(--accent);font-weight:700;margin:0 0 .4rem;
}.lssb-root .matter h2.section-title + .display{
  font-size:1.95rem;line-height:1.2;margin:0 0 1.8rem;font-weight:600;letter-spacing:-.01em;
}.lssb-root .matter h3{font-size:1.15rem;margin:2rem 0 .6rem;font-weight:600}.lssb-root .matter strong{font-weight:600}.lssb-root .copyright{font-size:.86rem;color:var(--ink-soft);line-height:1.6}.lssb-root .dedication{text-align:center;font-style:italic;color:var(--ink-soft);
  padding:4rem 0;font-size:1.12rem}.lssb-root .dedication p{margin:.1em 0}.lssb-root .praise em{display:block;margin-bottom:.3rem}.lssb-root .praise p{margin:0 0 1.3em}.lssb-root /* ---------- chapter flow ---------- */
.flow{background:var(--panel);border-bottom:1px solid var(--rule)}.lssb-root .flow .wrap{max-width:70rem}.lssb-root .flow table{font-size:.83rem}.lssb-root /* ---------- table of contents ---------- */
.toc{padding:4.5rem 0 4rem;border-bottom:1px solid var(--rule)}.lssb-root .toc .wrap{max-width:60rem}.lssb-root .toc-list{list-style:none;margin:2rem 0 0;padding:0}.lssb-root .toc-part{margin:2.6rem 0 1.1rem;padding-bottom:.5rem;border-bottom:1px solid var(--rule)}.lssb-root .toc-part-label{font-family:var(--sans);font-size:.66rem;letter-spacing:.22em;
  text-transform:uppercase;color:var(--accent);font-weight:700;display:block}.lssb-root .toc-part-name{font-size:1.22rem;font-weight:600;display:block;margin-top:.15rem}.lssb-root .toc-chapter{margin:0 0 1.1rem;list-style:none}.lssb-root .toc-chapter-link{display:flex;gap:.85rem;align-items:baseline;text-decoration:none;
  color:var(--ink);padding:.3rem 0}.lssb-root .toc-chapter-link:hover .toc-name{color:var(--accent-deep);text-decoration:underline}.lssb-root .toc-num{font-family:var(--sans);font-size:.78rem;font-weight:700;color:var(--accent);
  min-width:1.9rem;text-align:right}.lssb-root .toc-name{font-size:1.06rem;font-weight:600}.lssb-root .toc-sections{list-style:none;margin:.15rem 0 0 2.75rem;padding:0}.lssb-root .toc-sections a{display:flex;gap:.6rem;text-decoration:none;color:var(--ink-soft);
  padding:.12rem 0;font-size:.9rem}.lssb-root .toc-sections a:hover{color:var(--accent-deep)}.lssb-root .toc-secnum{font-family:var(--sans);font-size:.74rem;color:var(--muted);
  min-width:3rem;padding-top:.15rem}.lssb-root .toc-s3{padding-left:1.1rem}.lssb-root .toc-s3 .toc-sectitle{color:var(--muted)}.lssb-root /* ---------- chapters ---------- */
.chapter{padding:5rem 0 2rem;border-top:1px solid var(--rule-soft)}.lssb-root .chapter > .chapter-head, .lssb-root .chapter > .chapter-body, .lssb-root .chapter > .backtotop{max-width:var(--measure);margin-left:auto;margin-right:auto;
  padding-left:1.5rem;padding-right:1.5rem}.lssb-root .chapter-head{margin-bottom:2.6rem;padding-bottom:1.4rem;border-bottom:2px solid var(--rule)}.lssb-root .part-label{font-family:var(--sans);font-size:.66rem;letter-spacing:.2em;
  text-transform:uppercase;color:var(--muted);margin:0 0 .9rem;font-weight:600}.lssb-root .chapter-number{font-family:var(--sans);font-size:.72rem;letter-spacing:.26em;
  text-transform:uppercase;color:var(--accent);font-weight:700;margin:0 0 .35rem}.lssb-root .chapter-title{font-size:clamp(1.9rem,4.4vw,2.7rem);line-height:1.12;margin:0;
  font-weight:600;letter-spacing:-.018em}.lssb-root .chapter-body h2{
  font-size:1.42rem;line-height:1.25;margin:3rem 0 .9rem;font-weight:600;
  padding-top:1rem;border-top:1px solid var(--rule-soft);letter-spacing:-.01em;
  scroll-margin-top:5rem;
}.lssb-root .chapter-body h3{font-size:1.1rem;margin:2.1rem 0 .6rem;font-weight:600;
  color:var(--accent-deep);scroll-margin-top:5rem}.lssb-root .chapter-body h4{font-size:1rem;margin:1.6rem 0 .5rem;font-weight:600}.lssb-root .chapter-body blockquote{margin:1.4rem 0;padding:.2rem 0 .2rem 1.2rem;
  border-left:3px solid var(--rule);color:var(--ink-soft);font-style:italic}.lssb-root .chapter-body ul, .lssb-root .chapter-body ol{margin:0 0 1.1em;padding-left:1.4rem}.lssb-root .chapter-body li{margin-bottom:.4em}.lssb-root .aim{background:var(--panel);border-left:3px solid var(--accent);
  padding:1rem 1.2rem;margin:0 0 1.4rem;font-size:.98rem}.lssb-root .aim-label{font-family:var(--sans);font-size:.66rem;letter-spacing:.2em;
  text-transform:uppercase;color:var(--accent);font-weight:700;margin-right:.5rem}.lssb-root .standard{font-family:var(--sans);font-size:.7rem;letter-spacing:.18em;
  text-transform:uppercase;color:var(--navy);font-weight:700;margin:0 0 1rem}.lssb-root .caption{font-size:.88rem;color:var(--ink-soft);border-left:2px solid var(--rule);
  padding-left:.85rem;margin:1.4rem 0}.lssb-root .caption strong{color:var(--accent-deep)}.lssb-root .tablewrap{overflow-x:auto;margin:1.6rem 0;border:1px solid var(--rule)}.lssb-root table{border-collapse:collapse;width:100%;font-family:var(--sans);font-size:.84rem;
  line-height:1.5;background:#fff}.lssb-root th, .lssb-root td{border:1px solid var(--rule);padding:.55rem .7rem;text-align:left;vertical-align:top}.lssb-root th{background:var(--panel);font-weight:700;font-size:.78rem;letter-spacing:.02em}.lssb-root tbody tr:nth-child(even){background:#fafafa}.lssb-root .backtotop{margin-top:3rem;padding-top:1.2rem;border-top:1px solid var(--rule-soft)}.lssb-root .backtotop a{font-family:var(--sans);font-size:.74rem;letter-spacing:.08em;
  text-decoration:none;color:var(--muted)}.lssb-root .backtotop a:hover{color:var(--accent-deep)}.lssb-root .appendix p{margin:0 0 .55em}.lssb-root figure.fig{margin:2.4rem 0;padding:0}.lssb-root figure.fig img.figimg{display:block;width:100%;height:auto;max-width:100%;
  border:1px solid var(--rule);background:#fff;border-radius:2px}.lssb-root figure.fig figcaption{font-family:var(--serif);font-size:.88rem;color:var(--ink-soft);
  margin-top:.7rem;padding-left:.85rem;border-left:2px solid var(--rule);line-height:1.55}.lssb-root figure.fig figcaption strong{color:var(--accent-deep);font-weight:600}.lssb-root img.fig-inline{max-width:100%;height:auto;display:block;margin:1.2rem 0;
  border:1px solid var(--rule);background:#fff}.lssb-root td img.fig-inline, .lssb-root th img.fig-inline{margin:.35rem 0;border:0}.lssb-root figure.fig img.figimg{cursor:zoom-in}.lssb-root figure.fig.flowfig{margin:1.8rem 0 2.4rem}.lssb-root figure.fig.flowfig img.figimg{border:1px solid var(--rule)}
@media (min-width:1180px){.lssb-root .chapter-body figure.fig{margin-left:-4rem;margin-right:-4rem} }
@media (min-width:1400px){.lssb-root .chapter-body figure.fig{margin-left:-7rem;margin-right:-7rem} }.lssb-root figure.fig figcaption{max-width:54rem}#lightbox{position:fixed;inset:0;z-index:200;display:none;
  background:rgba(23,32,29,.94);padding:2rem;cursor:zoom-out;
  align-items:center;justify-content:center}#lightbox.on{display:flex}#lightbox img{max-width:100%;max-height:92vh;width:auto;height:auto;
  background:#fff;border-radius:3px;box-shadow:0 18px 60px rgba(0,0,0,.5)}#lightbox .lb-hint{position:absolute;bottom:1.1rem;left:0;right:0;text-align:center;
  font-family:var(--sans);font-size:.72rem;letter-spacing:.14em;
  text-transform:uppercase;color:rgba(255,255,255,.6)}.lssb-root .chapter-contents{list-style:none;margin:1.2rem 0 2rem;padding:1.1rem 1.3rem;
  background:var(--panel);border:1px solid var(--rule)}.lssb-root .chapter-contents li{display:flex;align-items:baseline;gap:.6rem;
  font-family:var(--sans);font-size:.85rem;padding:.2rem 0;
  border-bottom:1px dotted var(--rule)}.lssb-root .chapter-contents li:last-child{border-bottom:0}.lssb-root .cl-t{flex:1}.lssb-root .cl-p{color:var(--muted);font-size:.76rem}.lssb-root td.rowspan-title, .lssb-root th.rowspan-title{background:var(--panel);font-weight:700;
  letter-spacing:.06em;font-size:.78rem;text-transform:uppercase}.lssb-root footer.colophon{padding:3.5rem 1.5rem 5rem;text-align:center;
  font-family:var(--sans);font-size:.76rem;color:var(--muted);
  border-top:1px solid var(--rule)}

@media (max-width:640px){.lssb-root{font-size:17px}.lssb-root .cover-inner{padding:2.2rem 1.2rem}.lssb-root .toc-sections{margin-left:1.4rem}.lssb-root .topbar nav{display:none}
}
@media print{.lssb-root .topbar, .lssb-root .backtotop{display:none}.lssb-root{background:#fff;font-size:11pt}.lssb-root .chapter{page-break-before:always}.lssb-root .cover{min-height:auto;page-break-after:always}.lssb-root a{color:inherit;text-decoration:none}
}.lssb-root /* ---------- palette taken from the book's own diagrams ---------- */
.chapter-title, .lssb-root .matter h2.section-title + .display, .lssb-root .cover h1{color:var(--ink)}.lssb-root .cover h1 .line2{color:var(--navy)}.lssb-root .cover .rule{background:var(--green)}.lssb-root .cover .eyebrow{color:var(--accent)}.lssb-root a{color:var(--navy)}.lssb-root .chapter-body h2{color:var(--ink)}.lssb-root .chapter-body h3{color:var(--navy)}.lssb-root .part-label{color:var(--muted)}.lssb-root .chapter-number{color:var(--accent)}.lssb-root .matter h2.section-title{color:var(--accent)}.lssb-root .aim{background:var(--green-tint);border-left:3px solid var(--green)}.lssb-root .aim-label{color:var(--green)}.lssb-root .standard{color:var(--navy)}.lssb-root .caption, .lssb-root figure.fig figcaption{border-left:2px solid var(--rule)}.lssb-root .caption strong, .lssb-root figure.fig figcaption strong{color:var(--navy)}.lssb-root th{background:var(--panel)}.lssb-root td.rowspan-title, .lssb-root th.rowspan-title{background:var(--green-tint);color:var(--navy)}.lssb-root .tablewrap{border:1px solid var(--rule)}.lssb-root .toc-part-label{color:var(--accent)}.lssb-root .toc-num{color:var(--navy)}.lssb-root .toc-chapter-link:hover .toc-name{color:var(--navy)}.lssb-root .toc-sections a:hover{color:var(--navy)}.lssb-root .chapter-contents{background:var(--panel);border:1px solid var(--rule)}.lssb-root .flow{background:var(--panel)}.lssb-root figure.fig img.figimg{border:1px solid var(--rule)}.lssb-root .backtotop a:hover{color:var(--navy)}.lssb-root /* ---------- paginated shell ---------- */
.lssb-root{overflow-x:hidden}.lssb-root .shell{display:flex;max-width:none;margin:0}.lssb-root .page{flex:1;min-width:0;padding-bottom:2rem}.lssb-root .topbar-inner{max-width:none;padding-left:1rem;padding-right:1rem}.lssb-root .topbar .brand{text-decoration:none}.lssb-root .topbar .crumb{font-family:var(--sans);font-size:.7rem;letter-spacing:.14em;
  text-transform:uppercase;color:var(--accent);font-weight:700;margin-left:auto}.lssb-root #navbtn{border:1px solid var(--rule);background:#fff;color:var(--ink-soft);
  font-size:1rem;line-height:1;padding:.4rem .55rem;border-radius:3px;cursor:pointer}.lssb-root #navbtn:hover{background:var(--panel)}.lssb-root #sidebar{width:19rem;flex:0 0 19rem;border-right:1px solid var(--rule);
  background:var(--panel);height:calc(100vh - var(--lssb-top,3.05rem));position:sticky;top:var(--lssb-top,3.05rem);
  overflow-y:auto;padding:1.3rem 0 3rem}.lssb-root .sidebar-inner{padding:0 1rem}.lssb-root #sidebar a{display:block;text-decoration:none;color:var(--ink-soft);
  font-family:var(--sans);font-size:.8rem;line-height:1.35;border-radius:3px}.lssb-root .nav-home{padding:.45rem .5rem;font-weight:600;color:var(--ink)}.lssb-root .nav-home:hover, .lssb-root .nav-ch:hover{background:var(--rule-soft);color:var(--navy)}.lssb-root .nav-home.on, .lssb-root .nav-ch.on{background:var(--green-tint);color:var(--navy);font-weight:700}.lssb-root .nav-part{font-family:var(--sans);font-size:.62rem;letter-spacing:.2em;
  text-transform:uppercase;color:var(--muted);margin:1.15rem 0 .3rem;padding:0 .5rem;
  border-top:1px solid var(--rule);padding-top:.8rem}.lssb-root .nav-part span{display:block;color:var(--accent);font-weight:700;margin-bottom:.1rem}.lssb-root .nav-ch{display:flex!important;gap:.55rem;padding:.34rem .5rem}.lssb-root .nav-n{min-width:1.2rem;color:var(--navy);font-weight:700;font-size:.72rem;
  text-align:right;padding-top:.05rem}.lssb-root .nav-t{flex:1}.lssb-root .nav-secs{margin:.15rem 0 .5rem 1.75rem;border-left:1px solid var(--rule);padding-left:.55rem}.lssb-root .nav-secs a{display:flex!important;gap:.4rem;font-size:.74rem;padding:.16rem .3rem;
  color:var(--muted)}.lssb-root .nav-secs a:hover{color:var(--navy);background:var(--rule-soft)}.lssb-root .nav-secs a.active{color:var(--green);font-weight:700}.lssb-root .ns-n{min-width:2.4rem;font-size:.68rem}.lssb-root .ns3{padding-left:.7rem}.lssb-root /* the sections no longer need their own top borders on a single page */
.page .chapter{padding-top:2.6rem;border-top:0}.lssb-root .page .matter{padding-top:3.2rem}.lssb-root .is-index .cover{min-height:auto;padding:3.5rem 1.5rem 4rem;border-bottom:1px solid var(--rule)}.lssb-root .backtotop.hide{display:none}.lssb-root /* ---------- pager ---------- */
.pager{display:flex;gap:1rem;max-width:54rem;margin:3rem auto 0;
  padding:1.6rem 1.5rem 0;border-top:1px solid var(--rule)}.lssb-root .pg{flex:1;display:block;text-decoration:none;border:1px solid var(--rule);
  padding:.9rem 1.1rem;border-radius:3px;background:#fff;transition:background .15s}.lssb-root .pg:hover{background:var(--panel)}.lssb-root .pg.next{text-align:right}.lssb-root .pg-dir{display:block;font-family:var(--sans);font-size:.64rem;letter-spacing:.2em;
  text-transform:uppercase;color:var(--accent);font-weight:700;margin-bottom:.25rem}.lssb-root .pg:hover .pg-lbl{color:var(--navy)}.lssb-root .pg-lbl{display:block;font-size:.98rem;color:var(--ink);font-weight:600;line-height:1.3}.lssb-root .pg.prev{margin-right:auto}.lssb-root .pg.next:only-child{margin-left:auto;flex:0 1 50%}.lssb-root tr.divider-row td{background:var(--green-tint);color:var(--navy);font-weight:700;
  letter-spacing:.06em;font-size:.78rem;text-transform:uppercase;border-color:var(--rule)}.lssb-root tr.divider-row td:first-child{border-right-color:var(--green-tint)}.lssb-root tr.divider-row td+td{border-left-color:var(--green-tint)}.lssb-root tbody tr.divider-row:nth-child(even) td{background:var(--green-tint)}.lssb-root /* ---------- reading progress ---------- */
#progress{position:fixed;top:0;left:0;height:2px;background:var(--green);
  width:0;z-index:120;transition:width .1s linear}

@media (max-width:980px){.lssb-root #sidebar{position:fixed;top:var(--lssb-top,3.05rem);left:0;z-index:110;width:20rem;flex-basis:20rem;
    transform:translateX(-102%);transition:transform .22s ease;
    box-shadow:0 10px 40px rgba(0,0,0,.18)}.lssb-root.nav-open #sidebar{transform:translateX(0)}.lssb-root.nav-open::after{content:"";position:fixed;inset:var(--lssb-top,3.05rem) 0 0 0;z-index:105;
    background:rgba(28,26,23,.35)}.lssb-root .topbar .crumb{display:none}.lssb-root .pager{flex-direction:column}
}
@media (min-width:981px){.lssb-root #navbtn{display:none} }

@media print{.lssb-root #sidebar, .lssb-root .pager, .lssb-root #navbtn, .lssb-root .topbar, #progress{display:none}.lssb-root .shell{display:block}
}


/* the reader owns its own box inside whatever the theme provides */
.lssb-root{max-width:none;margin:0}
.lssb-root .shell{align-items:flex-start}
.lssb-root .toc-mins{margin-left:auto;font-family:var(--sans);font-size:.7rem;
  color:var(--muted);white-space:nowrap;padding-left:1rem}
.lssb-root.standalone-toc .toc{padding-top:1rem;border-bottom:0}
.lssb-root.no-sidebar .shell{display:block}
.lssb-root.no-sidebar .page{max-width:none}

/* ---------- page builder compatibility ---------- */
/* Break out of a constrained builder column, Divi and Elementor included. */
.lssb-root.fullbleed{
  width:100vw;
  max-width:100vw;
  margin-left:calc(50% - 50vw);
  margin-right:calc(50% - 50vw);
}
/* Divi puts padding on its rows and modules. Neutralise it around the reader. */
.et_pb_module .lssb-root,
.et_pb_text_inner .lssb-root{margin-top:0;margin-bottom:0}
.lssb-root .shell{max-width:1500px;margin-left:auto;margin-right:auto}
.lssb-root.fullbleed .topbar-inner{max-width:1500px;margin-left:auto;margin-right:auto}
/* Divi styles every paragraph and list inside its modules. Keep the book's own. */
.lssb-root p{padding-bottom:0}
.lssb-root ul,.lssb-root ol{list-style-position:outside}
.lssb-root .page ul li,.lssb-root .page ol li{list-style-type:inherit}

/* ---------- sidebar behaviour ---------- */
/* sidebar="scroll": the contents move up with the page instead of staying put. */
.lssb-root.sidebar-scroll #sidebar{
  position:static;
  height:auto;
  max-height:none;
  overflow:visible;
}
.lssb-root.sidebar-scroll .shell{align-items:flex-start}

/* Default pinned sidebar: only the section list scrolls internally, and the
   chapter list above it stays put, so the panel never feels frozen. */
.lssb-root #sidebar{scrollbar-width:thin}
.lssb-root #sidebar::-webkit-scrollbar{width:8px}
.lssb-root #sidebar::-webkit-scrollbar-thumb{background:var(--rule);border-radius:4px}
.lssb-root #sidebar::-webkit-scrollbar-thumb:hover{background:var(--muted)}

/* The section currently on screen. */
.lssb-root .nav-secs a.active{
  background:var(--green-tint);
  border-radius:3px;
}
.lssb-root .nav-secs{position:relative}
.lssb-root .nav-secs a.active::before{
  content:"";position:absolute;left:-1px;width:2px;height:1.15em;
  background:var(--green);margin-top:.12em;
}

/* ================= page turning mode ================= */
.lssb-root.paged .page{
  height:calc(100vh - var(--lssb-top,3.05rem));
  overflow:hidden;
  display:flex;
  flex-direction:column;
  padding-bottom:0;
}
.lssb-root.paged .lssb-sheet{
  flex:1;
  position:relative;
  overflow:hidden;
}
.lssb-root.paged .lssb-leaf{
  position:absolute;
  inset:0;
  /* Nothing is ever clipped. Almost every leaf fits exactly; the rare one
     holding an oversized diagram or a long table scrolls on its own. */
  overflow-y:auto;
  overflow-x:hidden;
  scrollbar-width:thin;
  padding:1.6rem 1.5rem .5rem;
  visibility:hidden;
  pointer-events:none;
}
.lssb-root.paged .lssb-leaf.on{visibility:visible;pointer-events:auto}
.lssb-root.paged .lssb-leaf > *{max-width:var(--measure);margin-left:auto;margin-right:auto}
.lssb-root.paged .lssb-leaf > figure.fig{max-width:min(100%,64rem)}

/* the chapter opening gets a page of its own */
.lssb-root.paged .chapter-head{margin-bottom:1.6rem}
.lssb-root.paged .chapter{padding:0;border:0}
.lssb-root.paged .chapter-body{padding:0}
.lssb-root.paged .chapter-body h2{margin-top:.4rem;padding-top:0;border-top:0}
.lssb-root.paged .backtotop{display:none}

/* diagrams fit the leaf rather than overflowing it */
.lssb-root.paged figure.fig{margin:1rem auto;display:flex;flex-direction:column;
  align-items:center;max-height:100%}
/* width is fixed so the reserved aspect ratio gives an exact height before
   the picture has loaded, which is what keeps the packer honest */
.lssb-root.paged figure.fig img.figimg{
  width:100%;height:auto;max-width:100%;
  max-height:var(--lssb-figmax, calc(100vh - var(--lssb-top,3.05rem) - 14rem));
  object-fit:contain}
.lssb-root.paged .tablewrap{
  max-height:var(--lssb-figmax, calc(100vh - var(--lssb-top,3.05rem) - 8rem));
  overflow:auto}

/* leaf controls */
.lssb-root.paged .leafbar{
  flex:0 0 auto;display:flex;align-items:center;gap:1rem;
  padding:.55rem 1.5rem;border-top:1px solid var(--rule);background:var(--panel);
}
.lssb-root.paged .leafbtn{
  font-family:var(--sans);font-size:.76rem;font-weight:600;letter-spacing:.04em;
  border:1px solid var(--rule);background:#fff;color:var(--ink);
  padding:.42rem .95rem;border-radius:3px;cursor:pointer;line-height:1.2;
}
.lssb-root.paged .leafbtn:hover:not(:disabled){background:var(--green-tint);
  border-color:var(--green);color:var(--navy)}
.lssb-root.paged .leafbtn:disabled{opacity:.35;cursor:default}
.lssb-root.paged .leafcount{
  font-family:var(--sans);font-size:.74rem;color:var(--muted);
  letter-spacing:.08em;margin:0 auto;
}
.lssb-root.paged .leafcount b{color:var(--navy);font-weight:700}
.lssb-root.paged .leafprog{
  position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--rule-soft);
}
.lssb-root.paged .leafprog i{display:block;height:100%;background:var(--green);width:0;
  transition:width .18s ease}

/* the chapter pager only belongs at the very end */
.lssb-root.paged .pager{display:none;margin:1.4rem auto 0;border-top:0;padding-top:0}
.lssb-root.paged .lssb-leaf.last .pager{display:flex}

.lssb-root.paged #progress{display:none}

@media (max-width:980px){
  .lssb-root.paged .lssb-leaf{padding:1.2rem 1.1rem .4rem}
  .lssb-root.paged .leafbar{padding:.5rem 1.1rem}
}
@media print{
  .lssb-root.paged .page{height:auto;overflow:visible;display:block}
  .lssb-root.paged .lssb-leaf{position:static;opacity:1;page-break-after:always}
  .lssb-root.paged .leafbar{display:none}
}

.lssb-root.paged .lssb-leaf::-webkit-scrollbar{width:8px}
.lssb-root.paged .lssb-leaf::-webkit-scrollbar-thumb{background:var(--rule);border-radius:4px}

/* the cover keeps its own page when paged */
.lssb-root.paged .lssb-leaf > .cover{
  min-height:auto;padding:1rem;border:0;background:transparent;
  display:flex;align-items:center;justify-content:center;max-height:100%}
.lssb-root.paged .lssb-leaf > .cover .cover-inner{margin:0}
/* front and back matter blocks sit on the same measure as chapter text */
.lssb-root.paged .lssb-leaf > .section-title{margin-bottom:.3rem}
.lssb-root.paged .lssb-leaf > .display{font-size:1.8rem;line-height:1.2;
  margin:0 0 1.2rem;font-weight:600}
.lssb-root.paged .lssb-leaf > .toc-list{margin-top:0}

/* pictures are never drawn larger than their own pixels */
.lssb-root figure.fig img.figimg{image-rendering:auto}
.lssb-root.paged figure.fig{width:100%}

/* full screen reading: the reader takes the whole display, so the site header
   stops eating the height available for text */
.lssb-root:fullscreen{background:var(--paper);--lssb-top:0px;--lssb-offset:0px}
.lssb-root:fullscreen .topbar{position:sticky;top:0}
.lssb-root:fullscreen .page{height:calc(100vh - 3.05rem)}
.lssb-root:fullscreen #sidebar{height:calc(100vh - 3.05rem);top:0}
.lssb-root:-webkit-full-screen{background:var(--paper)}
.lssb-root.paged .leafbtn.full{font-weight:600}

/* =========================================================
   Paged reading takes the whole display.
   A site header, an admin bar and a page builder wrapper all
   eat the height text needs, and the page behind kept
   scrolling and dragging the contents list with it. Reading
   mode now covers the viewport, so nothing behind it moves.
   ========================================================= */
.lssb-root.paged.reader-on{
  position:fixed;
  inset:0;
  z-index:99998;
  background:var(--paper);
  display:flex;
  flex-direction:column;
  width:100%;
  max-width:none;
  margin:0;
  --lssb-top:0px;
  --lssb-offset:0px;
}
.lssb-root.paged.reader-on .topbar{position:static;flex:0 0 auto}
.lssb-root.paged.reader-on .shell{
  flex:1;min-height:0;width:100%;max-width:none;
  /* auto side margins stop a flex item stretching, which collapsed the
     reading column to the width of its own text */
  margin-left:0;margin-right:0;
}
.lssb-root.paged.reader-on #sidebar{
  height:100%;
  position:static;
  flex:0 0 19rem;
}
.lssb-root.paged.reader-on .page{height:100%;flex:1;min-width:0}
html.lssb-locked{overflow:hidden !important}
body.lssb-locked{
  overflow:hidden !important;
  position:fixed !important;
  left:0;right:0;width:100% !important;
  overscroll-behavior:none;
}

/* the control that gets in and out of reading mode */
.lssb-root .readerbtn{
  font-family:var(--sans);font-size:.72rem;font-weight:700;letter-spacing:.06em;
  border:1px solid var(--rule);background:#fff;color:var(--navy);
  padding:.36rem .8rem;border-radius:3px;cursor:pointer;white-space:nowrap;
}
.lssb-root .readerbtn:hover{background:var(--green-tint);border-color:var(--green)}
.lssb-root.paged.reader-on .crumb{margin-left:0}
.lssb-root.paged.reader-on .topbar-inner{gap:.8rem}
.lssb-root.paged.reader-on .brand{margin-right:auto}

@media (max-width:980px){
  .lssb-root.paged.reader-on #sidebar{position:absolute;height:100%;flex-basis:20rem}
}

/* =========================================================
   Book proportions.
   One page is portrait and set to a comfortable measure. On a
   wide screen two facing pages sit side by side, the way a
   book opens, rather than one long landscape band of text.
   ========================================================= */
.lssb-root.paged .lssb-leaf{padding:1.9rem 2.4rem 1rem}
.lssb-root.paged .lssb-leaf > *{max-width:34rem;margin-left:auto;margin-right:auto}
.lssb-root.paged .lssb-leaf > figure.fig{max-width:38rem}

.lssb-root.paged .lssb-sheet.spread .lssb-leaf{width:50%}
.lssb-root.paged .lssb-sheet.spread .lssb-leaf.on{left:0;right:auto}
.lssb-root.paged .lssb-sheet.spread .lssb-leaf.on.verso{left:50%;right:auto}
.lssb-root.paged .lssb-sheet.spread .lssb-leaf > *{max-width:31rem}
.lssb-root.paged .lssb-sheet.spread .lssb-leaf > figure.fig{max-width:100%}
.lssb-root.paged .lssb-sheet.spread::after{
  content:"";position:absolute;top:1.2rem;bottom:1.2rem;left:50%;
  width:1px;background:var(--rule);pointer-events:none;
}
.lssb-root.paged .lssb-sheet.spread .lssb-leaf.verso{padding-left:2.9rem}
.lssb-root.paged .lssb-sheet.spread .lssb-leaf:not(.verso){padding-right:2.9rem}

/* small screens: give the text every pixel available */
@media (max-height:520px){
  .lssb-root.paged.reader-on .topbar{display:none}
  .lssb-root.paged .lssb-leaf{padding:1rem 1.2rem .6rem}
  .lssb-root.paged .leafbar{padding:.4rem .9rem}
}
@media (max-width:600px){
  .lssb-root.paged .lssb-leaf{padding:1.3rem 1.4rem .7rem}
  .lssb-root.paged .leafbtn{padding:.5rem .8rem;font-size:.78rem}
  .lssb-root.paged .leafcount{font-size:.7rem}
  .lssb-root .readerbtn{padding:.42rem .7rem}
}
.lssb-root.paged .lssb-leaf{-webkit-overflow-scrolling:touch}

/* phones: one tidy row of controls, not three stacked lines */
@media (max-width:600px){
  .lssb-root.paged.reader-on .topbar-inner{
    display:flex;flex-wrap:nowrap;align-items:center;gap:.5rem;
    padding:.4rem .7rem;
  }
  .lssb-root.paged.reader-on .brand{
    font-size:.6rem;letter-spacing:.08em;white-space:nowrap;
    overflow:hidden;text-overflow:ellipsis;min-width:0;flex:1;
  }
  .lssb-root.paged.reader-on .crumb{display:none}
  .lssb-root.paged.reader-on #navbtn{flex:0 0 auto;padding:.3rem .5rem}
  .lssb-root.paged.reader-on .readerbtn{flex:0 0 auto;font-size:.66rem;padding:.34rem .6rem}
  .lssb-root.paged .lssb-leaf > *{max-width:none}
}

/* =========================================================
   Reader closed.
   Turning pages needs the whole display. With the reader shut
   the pages simply stack and scroll, so nothing is ever cut
   off by a fixed height box sitting inside the page.
   ========================================================= */
.lssb-root.paged:not(.reader-on) .page{height:auto;overflow:visible;display:block}
.lssb-root.paged:not(.reader-on) .lssb-sheet{position:static;overflow:visible;height:auto}
.lssb-root.paged:not(.reader-on) .lssb-sheet::after{display:none}
.lssb-root.paged:not(.reader-on) .lssb-leaf{
  position:static;visibility:visible;pointer-events:auto;
  width:auto !important;height:auto;overflow:visible;
  padding:1.4rem 1.5rem;
  border-bottom:1px solid var(--rule-soft);
}
.lssb-root.paged:not(.reader-on) .lssb-leaf > *{max-width:var(--measure)}
.lssb-root.paged:not(.reader-on) .lssb-leaf > .cover{height:auto;padding:2.5rem 1rem}
.lssb-root.paged:not(.reader-on) figure.fig img.figimg{max-height:none}
.lssb-root.paged:not(.reader-on) .tablewrap{max-height:none}
.lssb-root.paged:not(.reader-on) .leafbar{position:sticky;bottom:0}
.lssb-root.paged:not(.reader-on) .leafbtn.prev,
.lssb-root.paged:not(.reader-on) .leafbtn.next,
.lssb-root.paged:not(.reader-on) .leafcount{display:none}
.lssb-root.paged:not(.reader-on) .leafbar::before{
  content:"Open the reader to turn pages";
  font-family:var(--sans);font-size:.74rem;color:var(--muted);margin-right:auto;
}

/* the title page is set to fit a single page */
.lssb-root.paged .lssb-leaf > .cover .cover-inner{padding:1.8rem 1.6rem;border:1px solid var(--rule)}
.lssb-root.paged .lssb-leaf > .cover h1{font-size:clamp(1.5rem,3.4vw,2.2rem)}
.lssb-root.paged .lssb-leaf > .cover .sub{font-size:1rem;margin:1rem auto 1.4rem}
.lssb-root.paged .lssb-leaf > .cover .standards{line-height:1.7;margin-bottom:1.4rem;font-size:.72rem}
.lssb-root.paged .lssb-leaf > .cover .eyebrow{margin-bottom:1.2rem}
.lssb-root.paged .lssb-leaf > .cover .rule{margin-bottom:1.4rem}

/* a wide diagram gets the whole opening rather than half of it */
.lssb-root.paged .lssb-sheet.spread .lssb-leaf.wideleaf.on{left:0;width:100%}
.lssb-root.paged .lssb-sheet.spread .lssb-leaf.wideleaf > *{max-width:min(100%,64rem)}
.lssb-root.paged .lssb-sheet.spread .lssb-leaf.wideleaf{padding-left:2.4rem;padding-right:2.4rem}
.lssb-root.paged .lssb-sheet.spread:has(.wideleaf.on)::after{display:none}
/* never let a picture run past the edge of its page */
.lssb-root figure.fig img.figimg{max-width:100%}

/* =========================================================
   A single portrait page, centred, with the reading area
   around it as margin, the way a page sits on a desk.
   ========================================================= */
.lssb-root.paged .lssb-sheet{background:var(--panel)}
.lssb-root.paged .lssb-leaf{
  left:50%;right:auto;
  transform:translateX(-50%);
  width:var(--lssb-pagew,100%);
  max-width:100%;
  background:var(--paper);
  box-shadow:0 1px 3px rgba(23,32,29,.10), 0 8px 26px rgba(23,32,29,.07);
  border-radius:2px;
}
.lssb-root.paged .lssb-leaf > *{max-width:100%}
.lssb-root.paged .lssb-leaf > figure.fig{max-width:100%}

/* the page fills the width on small screens, no desk margin */
@media (max-width:700px){
  .lssb-root.paged .lssb-sheet{background:var(--paper)}
  .lssb-root.paged .lssb-leaf{box-shadow:none;border-radius:0;width:100%}
}
.lssb-root.paged:not(.reader-on) .lssb-leaf{
  transform:none;left:auto;width:auto !important;box-shadow:none;border-radius:0;
}

/* diagrams invite a click */
.lssb-root figure.fig{position:relative}
.lssb-root figure.fig img.figimg{cursor:zoom-in}
.lssb-root figure.fig .zoomhint{
  position:absolute;top:.5rem;right:.5rem;
  font-family:var(--sans);font-size:.62rem;letter-spacing:.1em;text-transform:uppercase;
  background:rgba(255,255,255,.92);border:1px solid var(--rule);color:var(--navy);
  padding:.24rem .5rem;border-radius:2px;pointer-events:none;opacity:0;transition:opacity .15s;
}
.lssb-root figure.fig:hover .zoomhint{opacity:1}
@media (hover:none){ .lssb-root figure.fig .zoomhint{opacity:1} }

/* the enlarged view */
#lightbox img{max-width:96vw;max-height:92vh}

/* =========================================================
   Type set for a portrait page. The reading size was carried
   over from a full width column and looks oversized on a page
   half that width.
   ========================================================= */
.lssb-root.paged.reader-on .lssb-leaf{font-size:15.5px;line-height:1.62}
.lssb-root.paged.reader-on .lssb-leaf p{margin:0 0 .85em}
.lssb-root.paged.reader-on .lssb-leaf h1.chapter-title{font-size:1.75rem;line-height:1.15}
.lssb-root.paged.reader-on .lssb-leaf h2{font-size:1.18rem;margin:1.2rem 0 .6rem}
.lssb-root.paged.reader-on .lssb-leaf h3{font-size:1rem;margin:1.1rem 0 .45rem}
.lssb-root.paged.reader-on .lssb-leaf h4{font-size:.95rem}
.lssb-root.paged.reader-on .lssb-leaf .display{font-size:1.45rem;line-height:1.2;margin:0 0 .9rem}
.lssb-root.paged.reader-on .lssb-leaf .section-title{font-size:.66rem}
.lssb-root.paged.reader-on .lssb-leaf .aim{font-size:.92rem;padding:.75rem .9rem;margin-bottom:1rem}
.lssb-root.paged.reader-on .lssb-leaf figure.fig figcaption{font-size:.8rem;margin-top:.5rem}
.lssb-root.paged.reader-on .lssb-leaf table{font-size:.76rem}
.lssb-root.paged.reader-on .lssb-leaf th,
.lssb-root.paged.reader-on .lssb-leaf td{padding:.4rem .5rem}
.lssb-root.paged.reader-on .lssb-leaf .part-label{font-size:.6rem;margin-bottom:.6rem}
.lssb-root.paged.reader-on .lssb-leaf .chapter-number{font-size:.66rem}
.lssb-root.paged.reader-on .lssb-leaf .chapter-head{margin-bottom:1.1rem;padding-bottom:.9rem}
.lssb-root.paged.reader-on .lssb-leaf ul,
.lssb-root.paged.reader-on .lssb-leaf ol{padding-left:1.15rem;margin-bottom:.85em}
.lssb-root.paged.reader-on .lssb-leaf li{margin-bottom:.3em}
.lssb-root.paged.reader-on .lssb-leaf .toc-name{font-size:.95rem}
.lssb-root.paged.reader-on .lssb-leaf .toc-sections a{font-size:.8rem}

@media (min-width:1500px){
  .lssb-root.paged.reader-on .lssb-leaf{font-size:16.5px}
}
@media (max-width:700px){
  .lssb-root.paged.reader-on .lssb-leaf{font-size:16px}
}

/* a narrower contents column leaves more room for the page */
@media (min-width:981px){
  .lssb-root.paged.reader-on #sidebar{flex:0 0 17rem}
}
.lssb-root.paged.reader-on .lssb-leaf{padding:2rem 2.6rem 1.2rem}
@media (max-width:700px){
  .lssb-root.paged.reader-on .lssb-leaf{padding:1.3rem 1.4rem .8rem}
}

/* the margins either side of the page turn it */
.lssb-root.paged .turnzone{
  position:absolute;top:0;bottom:0;
  width:calc((100% - var(--lssb-pagew, 100%)) / 2);
  min-width:0;
  border:0;background:transparent;padding:0;margin:0;
  cursor:pointer;z-index:2;
  display:flex;align-items:center;justify-content:center;
}
.lssb-root.paged .turnzone.left{left:0}
.lssb-root.paged .turnzone.right{right:0}
.lssb-root.paged .turnzone span{
  font-size:1.5rem;color:var(--muted);opacity:0;transition:opacity .15s;
  width:2.6rem;height:2.6rem;line-height:2.5rem;text-align:center;
  border:1px solid var(--rule);border-radius:50%;background:var(--paper);
}
.lssb-root.paged .turnzone:hover span{opacity:1}
.lssb-root.paged .turnzone:disabled{cursor:default}
.lssb-root.paged .turnzone:disabled span{opacity:0}
.lssb-root.paged:not(.reader-on) .turnzone{display:none}
@media (max-width:700px){ .lssb-root.paged .turnzone{display:none} }
