/* ChartVoyant — /articles/ research library.
   ================================================================
   This is deliberately NOT the Insights treatment. Insights is the
   essay grid: Inter throughout, dark gradient hero, card index.
   Articles is a reference library — a serif reading column, numbered
   sections, superscript citations and a numbered reference list, and
   an index that is a dense list rather than a grid. A reader should
   be able to tell which of the two they are in without reading a word.

   The serif is scoped to the reading column and the paper's own
   headings. The nav, the wordmark and the footer stay in Inter, so
   the serif never sits beside the logotype (BRAND.md).

   New file on purpose: /static/pages.css is cached for a week, so
   adding to it would leave returning visitors with a half-styled
   page. Everything here is additive and self-contained.
   ================================================================ */

:root{
  --cv-serif:'Iowan Old Style','Palatino Linotype',Palatino,'Book Antiqua','Source Serif 4','Source Serif Pro',Georgia,'Times New Roman',serif;
  --cv-rule:#DCE6EC;
  --cv-rule-soft:#EAF1F5;
  --cv-ink:#26374F;
}

/* ================= Library index ================= */

/* The index keeps the site's standard container width so the hero, the intro
   and every group share one left edge down the page. Measure is controlled on
   the text itself, not by narrowing the container. */
.lib-intro{padding:52px 0 8px}
.lib-note{
  font-family:var(--cv-serif);font-size:1.0625rem;line-height:1.62;color:#41506B;
  margin:0 0 22px;max-width:68ch
}
.lib-note b{color:var(--cv-blue-deep);font-weight:600}

.lib-group{padding:46px 0 0}
.lib-group-head{
  display:flex;align-items:baseline;justify-content:space-between;gap:20px;
  flex-wrap:wrap;border-bottom:2px solid var(--cv-blue-deep);padding-bottom:10px;margin-bottom:2px
}
.lib-group-head h2{
  margin:0;font-size:1.1875rem;font-weight:700;letter-spacing:.11em;text-transform:uppercase;
  color:var(--cv-blue-deep)
}
.lib-group-head span{font-size:.8125rem;color:var(--cv-slate);letter-spacing:.02em}

.lib-list{margin:0;padding:0;list-style:none}
.lib-row{border-bottom:1px solid var(--cv-rule)}
.lib-row > a{
  display:grid;grid-template-columns:3.5rem 1fr 11.5rem;gap:0 26px;align-items:start;
  padding:24px 12px 24px 4px;margin:0 -12px 0 -4px;border-radius:10px;color:inherit
}
.lib-row > a:hover{background:#F7FBFD;text-decoration:none}
.lib-row > a:hover .lib-title{color:var(--cv-blue)}
.lib-num{
  font-variant-numeric:tabular-nums;font-size:.78125rem;font-weight:700;letter-spacing:.08em;
  color:var(--cv-blue);padding-top:.42rem
}
.lib-title{
  display:block;font-family:var(--cv-serif);font-size:1.28125rem;line-height:1.28;
  font-weight:600;color:var(--cv-blue-deep);letter-spacing:-.005em;margin:0 0 8px
}
.lib-abs{
  display:block;font-family:var(--cv-serif);font-size:1rem;line-height:1.55;color:#4A5A73;
  max-width:64ch;margin:0
}
.lib-side{padding-top:.3rem;font-size:.8125rem;line-height:1.5;color:var(--cv-slate)}
.lib-side b{
  display:block;font-size:.6875rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;
  color:var(--cv-blue);margin:0 0 5px
}
@media(max-width:860px){
  .lib-row > a{grid-template-columns:2.75rem 1fr;gap:0 16px}
  .lib-side{grid-column:2;padding-top:12px}
}

/* ================= Paper shell ================= */

.paper-head{
  background:#fff;border-bottom:1px solid var(--cv-rule);
  padding:44px 0 30px;position:relative
}
.paper-head::before{
  content:"";position:absolute;top:0;left:0;right:0;height:4px;
  background:linear-gradient(90deg,var(--cv-blue-deep),var(--cv-blue) 60%,#4FA3D8)
}
.paper-head .container{max-width:780px}
.paper-label{
  margin:0 0 16px;font-size:.6875rem;font-weight:700;letter-spacing:.15em;text-transform:uppercase;
  color:var(--cv-blue);display:flex;flex-wrap:wrap;gap:9px;align-items:center
}
.paper-label .sep{color:var(--cv-grey-light);font-weight:400}
.paper-label .kind{
  background:var(--cv-ice);border:1px solid var(--cv-mist);border-radius:999px;
  padding:4px 11px;color:var(--cv-blue-deep);letter-spacing:.13em
}
.paper-head h1{
  font-family:var(--cv-serif);font-size:clamp(1.75rem,4.3vw,2.625rem);line-height:1.14;
  font-weight:600;letter-spacing:-.015em;color:var(--cv-blue-deep);margin:0 0 20px;max-width:24ch
}
.paper-abstract{
  border-left:3px solid var(--cv-blue);background:var(--cv-ice);border-radius:0 12px 12px 0;
  padding:20px 24px;margin:0 0 22px
}
.paper-abstract h2{
  margin:0 0 8px;font-size:.6875rem;font-weight:700;letter-spacing:.15em;text-transform:uppercase;
  color:var(--cv-blue);font-family:var(--cv-font)
}
.paper-abstract p{
  margin:0;font-family:var(--cv-serif);font-size:1.0625rem;line-height:1.6;color:#33455E
}
.paper-meta{
  display:flex;flex-wrap:wrap;gap:8px 22px;align-items:center;font-size:.84375rem;color:var(--cv-slate);
  margin:0;padding-top:4px
}
.paper-meta b{color:var(--cv-blue-deep);font-weight:600}
.paper-pdf{
  display:inline-flex;align-items:center;gap:7px;margin-left:auto;
  font-family:var(--cv-font);font-size:.8125rem;font-weight:600;line-height:1;letter-spacing:.01em;
  color:#fff;background:var(--cv-blue);border-radius:9px;padding:9px 14px;
  text-decoration:none;white-space:nowrap
}
.paper-pdf svg{display:block;flex:0 0 auto}
.paper-pdf:hover{background:#0568a8;color:#fff;text-decoration:none}
.paper-pdf:focus-visible{outline:2px solid var(--cv-blue-deep);outline-offset:3px}
@media(max-width:640px){
  .paper-pdf{margin-left:0}
}

/* ---- Body ---- */
.paper{padding:30px 0 12px}
.paper .container{max-width:780px}
/* The header already supplies the space above section 1; without this the two
   margins stack into a ~150px hole under the rule. */
.paper-body > section:first-child > h2{margin-top:0}
.paper-body{
  font-family:var(--cv-serif);font-size:1.125rem;line-height:1.68;color:var(--cv-ink)
}
.paper-body p{margin:0 0 20px}
/* pages.css sets a global `section{padding:60px 0}` for the marketing layout.
   Inside a paper the sections are prose divisions, not page bands, so that
   padding has to be cleared or it stacks with the h2 margin into a ~100px
   hole at every section break. */
.paper-body > section{padding:0;margin:0 0 6px}
.paper-body h2{
  font-family:var(--cv-font);font-size:1.1875rem;font-weight:600;letter-spacing:-.005em;
  color:var(--cv-blue-deep);margin:42px 0 16px;padding-bottom:9px;
  border-bottom:1px solid var(--cv-rule);display:flex;gap:12px;align-items:baseline
}
.paper-body h2 .n{
  font-size:.8125rem;font-weight:700;color:var(--cv-blue);letter-spacing:.06em;
  font-variant-numeric:tabular-nums;flex:0 0 auto
}
.paper-body h3{
  font-family:var(--cv-font);font-size:1.03125rem;font-weight:600;color:var(--cv-blue-dark);
  margin:30px 0 10px;letter-spacing:-.003em
}
.paper-body ul,.paper-body ol{margin:0 0 20px;padding-left:26px}
.paper-body li{margin:0 0 11px}
.paper-body strong{color:var(--cv-blue-deep);font-weight:600}
.paper-body em{font-style:italic}
.paper-body a{
  color:var(--cv-blue-dark);text-decoration:underline;text-underline-offset:2px;
  text-decoration-color:var(--cv-grey-light)
}
.paper-body a:hover{text-decoration-color:var(--cv-blue)}
.paper-body code{
  font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.84em;
  background:var(--cv-ice);padding:.13em .4em;border-radius:4px;color:var(--cv-blue-deep)
}
.paper-body hr{border:0;border-top:1px solid var(--cv-rule);margin:38px 0}

/* ---- Superscript citation ---- */
.paper-body sup.cite{font-size:.68em;line-height:0;vertical-align:super;white-space:nowrap}
.paper-body sup.cite a{
  color:var(--cv-blue);text-decoration:none;font-weight:700;font-family:var(--cv-font);
  padding:0 .06em
}
.paper-body sup.cite a:hover{text-decoration:underline}
:target{scroll-margin-top:82px}
.refs li:target{background:#FFF8E1;border-radius:6px}

/* ---- Figure / spec table ---- */
.paper-fig{
  margin:32px 0;border:1px solid var(--cv-mist);border-radius:14px;overflow:hidden;background:#fff
}
.paper-fig figcaption{
  font-family:var(--cv-font);font-size:.78125rem;line-height:1.5;color:var(--cv-slate);
  padding:12px 18px;background:var(--cv-ice);border-bottom:1px solid var(--cv-mist)
}
.paper-fig figcaption b{
  color:var(--cv-blue);font-weight:700;letter-spacing:.1em;text-transform:uppercase;
  font-size:.6875rem;display:block;margin-bottom:3px
}
.paper-fig .fig-in{padding:18px 20px;overflow-x:auto}
.paper-fig table{border-collapse:collapse;width:100%;font-family:var(--cv-font);font-size:.875rem}
.paper-fig th{
  text-align:left;font-weight:600;color:var(--cv-blue-deep);border-bottom:1.5px solid var(--cv-rule);
  padding:8px 14px 8px 0;vertical-align:bottom
}
.paper-fig td{
  padding:9px 14px 9px 0;border-bottom:1px solid var(--cv-rule-soft);color:#41506B;
  vertical-align:top;line-height:1.5
}
.paper-fig tr:last-child td{border-bottom:0}
.paper-fig pre{
  margin:0;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.8125rem;
  line-height:1.6;color:var(--cv-blue-deep);white-space:pre
}

/* ---- Caveat / limitation box ---- */
.paper-caveat{
  margin:32px 0;padding:20px 24px;border:1px solid #EBD9A8;border-left:3px solid #C99A18;
  border-radius:0 12px 12px 0;background:#FFFCF3
}
.paper-caveat h3{
  margin:0 0 8px;font-family:var(--cv-font);font-size:.6875rem;font-weight:700;letter-spacing:.14em;
  text-transform:uppercase;color:#8A6A0B
}
.paper-caveat p{margin:0 0 12px;font-size:1.03125rem;line-height:1.6}
.paper-caveat p:last-child{margin-bottom:0}

/* ---- Key-numbers strip ---- */
.paper-nums{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:0;
  margin:30px 0;border:1px solid var(--cv-mist);border-radius:14px;overflow:hidden
}
.paper-nums div{padding:18px 20px;border-right:1px solid var(--cv-mist);background:#fff}
.paper-nums div:last-child{border-right:0}
.paper-nums b{
  display:block;font-family:var(--cv-font);font-size:1.5rem;font-weight:600;letter-spacing:-.02em;
  color:var(--cv-blue-deep);line-height:1.1
}
.paper-nums span{
  display:block;font-family:var(--cv-font);font-size:.8125rem;line-height:1.45;color:var(--cv-slate);
  margin-top:7px
}
@media(max-width:640px){
  .paper-nums div{border-right:0;border-bottom:1px solid var(--cv-mist)}
  .paper-nums div:last-child{border-bottom:0}
}

/* ================= References ================= */

.refs-wrap{background:var(--cv-ice);border-top:1px solid var(--cv-mist);padding:44px 0 52px;margin-top:44px}
.refs-wrap .container{max-width:780px}
.refs-wrap h2{
  font-size:.75rem;font-weight:700;letter-spacing:.15em;text-transform:uppercase;
  color:var(--cv-slate);margin:0 0 6px
}
.refs-lede{font-size:.875rem;color:var(--cv-slate);margin:0 0 20px;line-height:1.55}
.refs{margin:0;padding:0;list-style:none;counter-reset:ref}
.refs li{
  position:relative;padding:0 0 0 2.5rem;margin:0 0 14px;font-size:.875rem;line-height:1.58;
  color:#4A5A73
}
.refs li::before{
  counter-increment:ref;content:counter(ref) ".";position:absolute;left:0;top:0;width:2rem;
  text-align:right;font-weight:700;color:var(--cv-blue);font-variant-numeric:tabular-nums;
  font-size:.8125rem;padding-top:.06rem
}
.refs cite{font-style:italic;color:#3D4E68}
.refs a{color:var(--cv-blue-dark);text-decoration:underline;text-underline-offset:2px;
  text-decoration-color:var(--cv-grey-light);word-break:break-word}
.refs a:hover{text-decoration-color:var(--cv-blue)}
.refs .tag{
  display:inline-block;font-family:var(--cv-font);font-size:.625rem;font-weight:700;
  letter-spacing:.1em;text-transform:uppercase;color:var(--cv-slate);
  border:1px solid var(--cv-mist);background:#fff;border-radius:999px;padding:2px 8px;margin-left:6px;
  vertical-align:1px;white-space:nowrap
}

/* ================= Paper footer nav ================= */

.paper-foot{padding:46px 0 60px}
.paper-foot .container{max-width:1000px}
.paper-foot h2{
  font-size:.75rem;font-weight:700;letter-spacing:.15em;text-transform:uppercase;
  color:var(--cv-slate);margin:0 0 18px
}
.breadcrumb{margin:26px 0 0;font-size:.875rem;color:var(--cv-slate)}
.breadcrumb a{color:var(--cv-blue-dark)}

/* ================= Print / committed PDF =================
   Browser print and scripts/build-article-pdfs.mjs share this layout.
   Playwright supplies the page margins and the running header, so @page
   must not add a second set of margins. */

@media print{
  html,body{
    background:#fff!important;color:var(--cv-ink);
    -webkit-print-color-adjust:exact;print-color-adjust:exact
  }
  /* Chromium's PDF writer drops the ff/fi/fl glyphs from several macOS faces.
     Turning ligatures off keeps "different" and "certified" intact. */
  *,*::before,*::after{
    font-variant-ligatures:none!important;
    font-feature-settings:"liga" 0,"clig" 0,"dlig" 0,"calt" 0!important
  }
  .skip-link,.nav,.site-footer,.paper-pdf,.breadcrumb,
  .cva11y-btn,.cva11y-panel{display:none!important}
  .container{max-width:none;padding-left:0;padding-right:0}
  .paper-head{padding:12px 0 16px;break-after:avoid}
  .paper-head::before{background:var(--cv-blue)}
  .paper-head h1{max-width:none;font-size:22pt;line-height:1.16;margin-bottom:14px}
  .paper-abstract{break-inside:avoid}
  .paper-abstract p{font-size:11pt;line-height:1.5}
  .paper-meta{gap:6px 16px}
  .paper{padding:12px 0 0}
  .paper-body{font-size:11pt;line-height:1.55}
  .paper-body p{margin-bottom:11pt;orphans:3;widows:3}
  .paper-body h2{break-after:avoid;margin:22pt 0 8pt;font-size:13pt}
  .paper-body h3{break-after:avoid;margin:16pt 0 6pt;font-size:11.5pt}
  .paper-body li{orphans:3;widows:3}
  .paper-fig,.paper-nums,.paper-caveat,.xlink{break-inside:avoid}
  .paper-fig{overflow:visible;border-radius:8px}
  .paper-fig .fig-in{overflow:visible;padding:10px 12px}
  .paper-fig table{font-size:8pt;line-height:1.35}
  .paper-fig th,.paper-fig td{padding:4px 8px 4px 0;overflow-wrap:break-word}
  .paper-fig tr,.paper-fig thead,.refs li{break-inside:avoid}
  .paper-fig pre,.paper-body pre,pre{
    white-space:pre-wrap;overflow-wrap:anywhere
  }
  .paper-nums b{font-size:13pt}
  .refs-wrap{padding:22pt 0 8pt;margin-top:18pt}
  .paper-foot{padding:18pt 0 0}
  .xlinks{gap:8px}
  .xlink{box-shadow:none}
  a{text-decoration-color:var(--cv-grey-light)}
}

/* ================= Library search =================
   The search panel on /articles/ and the ?hl= match bar on each paper, both
   built by /static/articles-search.v1.js. The panel ships `hidden` in the
   markup, so with JavaScript off the numbered list is the whole library and
   none of this applies. Highlighter yellow (#FFE86A) is used only for <mark>
   on the paper ground. No motion here at all; the a11y panel's reduce-motion
   setting is honoured by the script for scrolling. */

.cv-vh{
  position:absolute!important;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;
  clip:rect(0,0,0,0);white-space:nowrap;border:0
}

/* ---- Panel ---- */
.lib-search{padding:36px 0 4px;background:#fff;scroll-margin-top:64px}
/* The intro note sits closer once the search panel is above it. */
.lib-search:not([hidden]) + .lib-intro{padding-top:26px}
.ls-form{margin:0;max-width:46rem}
.ls-heading{
  margin:0 0 10px;font-family:var(--cv-font);font-size:.6875rem;font-weight:700;letter-spacing:.15em;
  text-transform:uppercase;color:var(--cv-blue)
}
.ls-heading label{cursor:pointer}
.ls-field{position:relative}
.ls-input{
  display:block;box-sizing:border-box;width:100%;height:3.5rem;margin:0;padding:0 3.25rem 0 2.875rem;
  font-family:var(--cv-font);font-size:1.125rem;font-weight:400;color:var(--cv-charcoal);
  background:#fff;border:1.5px solid #C6D7E2;border-radius:12px;outline:none;
  box-shadow:0 1px 2px rgba(0,51,83,.05),0 8px 22px -16px rgba(0,51,83,.35);
  -webkit-appearance:none;appearance:none
}
.ls-input::placeholder{color:#7E8DA2;opacity:1}
.ls-input:hover{border-color:#A9C2D2}
.ls-input:focus{border-color:var(--cv-blue);box-shadow:0 0 0 3px rgba(0,86,139,.16)}
.ls-input::-webkit-search-cancel-button,
.ls-input::-webkit-search-decoration{-webkit-appearance:none;appearance:none}
.ls-icon{position:absolute;left:1rem;top:50%;margin-top:-9px;color:#6A7B93;pointer-events:none}
.ls-kbd,.ls-help kbd{
  display:inline-flex;align-items:center;justify-content:center;min-width:1.5rem;height:1.5rem;padding:0 .35rem;
  font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.75rem;font-weight:600;line-height:1;
  color:var(--cv-slate);background:var(--cv-ice);border:1px solid var(--cv-mist);border-bottom-width:2px;border-radius:6px
}
.ls-kbd{position:absolute;right:1rem;top:50%;transform:translateY(-50%);pointer-events:none}
.ls-help kbd{height:1.25rem;min-width:1.25rem;font-size:.6875rem;vertical-align:.05em}
.ls-field:focus-within .ls-kbd,.lib-search.has-query .ls-kbd{display:none}
.ls-clear{
  position:absolute;right:.375rem;top:50%;transform:translateY(-50%);
  display:flex;align-items:center;justify-content:center;width:2.75rem;height:2.75rem;
  padding:0;border:0;border-radius:10px;background:none;color:var(--cv-slate);cursor:pointer
}
.ls-clear[hidden]{display:none}
.ls-clear:hover{background:var(--cv-ice);color:var(--cv-blue-deep)}
.ls-clear:focus-visible{outline:2px solid var(--cv-blue);outline-offset:-2px}
.ls-help{margin:9px 0 0;font-size:.8125rem;line-height:1.5;color:var(--cv-slate)}

/* ---- Topic chips (they filter the list below when the box is empty) ---- */
.ls-chips{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0 0}
.ls-chip{
  position:relative;display:inline-flex;align-items:center;gap:7px;min-height:2.25rem;padding:0 13px;
  font-family:var(--cv-font);font-size:.8125rem;font-weight:600;line-height:1;color:var(--cv-blue-deep);
  background:#fff;border:1px solid #D5E3EB;border-radius:999px;cursor:pointer
}
/* 36px to the eye, 44px to a finger. */
.ls-chip::after{content:"";position:absolute;left:-2px;right:-2px;top:-4px;bottom:-4px}
.ls-chip:hover{background:var(--cv-ice);border-color:#AFC6D4}
.ls-chip:focus-visible{outline:2px solid var(--cv-blue);outline-offset:2px}
.ls-chip[aria-pressed="true"]{background:var(--cv-blue-deep);border-color:var(--cv-blue-deep);color:#fff}
.ls-chip-count{font-weight:500;color:var(--cv-slate);font-variant-numeric:tabular-nums}
.ls-chip[aria-pressed="true"] .ls-chip-count{color:#B9D3E5}
.ls-chip.is-empty{color:#8A97A8;border-style:dashed}

/* ---- Status line: a quiet caption, and the results' header rule when searching ---- */
.ls-status{margin:16px 0 0;min-height:1.25rem;font-size:.8125rem;line-height:1.5;color:var(--cv-slate)}
.lib-search.has-query .ls-status{
  margin-top:26px;padding-bottom:10px;border-bottom:2px solid var(--cv-blue-deep);
  font-weight:600;letter-spacing:.01em;color:var(--cv-blue-deep)
}
.lib-search.has-query .ls-status.is-blank{margin-top:10px;padding:0;border:0;min-height:0}
.ls-loading{margin:18px 0 26px;font-size:.9375rem;color:var(--cv-slate)}

/* ---- Results: the list's grid, with the passages that matched ---- */
.ls-results{margin:0 0 6px}
.ls-list{margin:0;padding:0;list-style:none}
.ls-hit{
  position:relative;display:grid;grid-template-columns:3.5rem minmax(0,1fr) 11.5rem;scroll-margin:80px 0 16px;
  grid-template-areas:"num title side" "num body side";gap:0 26px;align-items:start;
  padding:22px 12px 20px 4px;margin:0 -12px 0 -4px;border-bottom:1px solid var(--cv-rule)
}
.ls-hit:hover{background:#F7FBFD}
.ls-num{
  grid-area:num;font-variant-numeric:tabular-nums;font-size:.78125rem;font-weight:700;letter-spacing:.08em;
  color:var(--cv-blue);padding-top:.42rem
}
.ls-title{
  grid-area:title;margin:0;font-family:var(--cv-serif);font-size:1.28125rem;line-height:1.28;font-weight:600;
  letter-spacing:-.005em
}
.ls-title a{color:var(--cv-blue-deep);text-decoration:none}
/* The whole card opens the best location; the passage links sit above it. */
.ls-title a::after{content:"";position:absolute;inset:0;z-index:0}
.ls-hit:hover .ls-title a{color:var(--cv-blue)}
.ls-title a:focus{outline:none}
.ls-title a:focus-visible::after{box-shadow:inset 0 0 0 2px var(--cv-blue);border-radius:10px}
.ls-side{grid-area:side;margin:0;padding-top:.3rem;font-size:.8125rem;line-height:1.5;color:var(--cv-slate)}
.ls-side b{
  display:block;margin:0 0 5px;font-size:.6875rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;
  color:var(--cv-blue)
}
.ls-side-refs{display:block}
.ls-body{grid-area:body;min-width:0}
.ls-snips{margin:10px 0 0;padding:0;list-style:none}
.ls-snips li{margin:0 0 4px}
.ls-snip{
  position:relative;z-index:1;display:block;padding:7px 10px 8px 14px;border-left:2px solid var(--cv-mist);
  border-radius:0 8px 8px 0;color:inherit;text-decoration:none
}
.ls-snip:hover{background:#EDF5FA;border-left-color:var(--cv-blue);text-decoration:none}
.ls-snip:focus-visible{outline:2px solid var(--cv-blue);outline-offset:1px}
.ls-loc{
  display:block;margin:0 0 2px;font-family:var(--cv-font);font-size:.75rem;line-height:1.45;font-weight:600;
  color:var(--cv-blue-dark);overflow-wrap:anywhere
}
.ls-loc > b{margin-right:.45em;font-weight:700;color:var(--cv-blue);font-variant-numeric:tabular-nums}
.ls-tag,.ls-cites{font-weight:500;color:var(--cv-slate)}
.ls-tag::before,.ls-cites::before{content:"\00B7";margin:0 .45em}
.ls-text{
  display:block;font-family:var(--cv-serif);font-size:1rem;line-height:1.55;color:#41506B;overflow-wrap:anywhere
}
.ls-more{margin:6px 0 0;padding-left:16px;font-size:.8125rem;color:var(--cv-slate)}
.ls-subhead{
  margin:30px 0 0;padding-bottom:9px;border-bottom:1px solid var(--cv-rule);font-family:var(--cv-font);
  font-size:.75rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--cv-slate)
}
.ls-list.is-partial .ls-title{font-size:1.125rem}

.lib-search mark,mark.cv-hl{
  color:inherit;background:#FFE86A;border-radius:2px;padding:0 .06em;
  -webkit-box-decoration-break:clone;box-decoration-break:clone
}

/* ---- Did you mean / nothing found ---- */
.ls-dym{margin:14px 0 0;font-size:.9375rem;color:var(--cv-ink)}
.ls-link{
  padding:.625rem .125rem;margin:-.625rem 0;font:inherit;font-weight:600;color:var(--cv-blue-dark);background:none;border:0;
  text-decoration:underline;text-underline-offset:2px;text-decoration-color:var(--cv-grey-light);cursor:pointer
}
.ls-link:hover{text-decoration-color:var(--cv-blue)}
.ls-link:focus-visible{outline:2px solid var(--cv-blue);outline-offset:2px;border-radius:4px}
.ls-empty{margin:18px 0 26px;padding:22px 24px;border:1px solid var(--cv-mist);border-radius:14px;background:var(--cv-ice)}
.ls-empty-h{margin:0 0 8px;font-family:var(--cv-serif);font-size:1.1875rem;line-height:1.35;color:var(--cv-blue-deep)}
.ls-empty .ls-dym{margin:0 0 10px}
.ls-empty-t{margin:10px 0 0;font-size:.875rem;line-height:2.4;color:var(--cv-slate)}
.ls-empty-t.ls-help{line-height:1.5}
.ls-example{
  display:inline-flex;align-items:center;min-height:2.25rem;padding:0 12px;margin:0 2px;vertical-align:middle;
  font-family:var(--cv-font);font-size:.8125rem;font-weight:600;color:var(--cv-blue-deep);background:#fff;
  border:1px solid #D5E3EB;border-radius:999px;cursor:pointer
}
.ls-example:hover{border-color:#AFC6D4}
.ls-example:focus-visible{outline:2px solid var(--cv-blue);outline-offset:2px}

@media(max-width:860px){
  .ls-hit{
    grid-template-columns:2.75rem minmax(0,1fr);grid-template-areas:"num title" "num side" "num body";gap:0 16px
  }
  .ls-side{padding-top:5px}
  .ls-side b{display:inline;margin:0 .6em 0 0}
  .ls-side-refs{display:none}
}
@media(max-width:520px){
  .lib-search{padding-top:28px}
  /* One row of chips that scrolls sideways, edge to edge, instead of three rows. */
  .ls-chips{
    flex-wrap:nowrap;overflow-x:auto;margin:14px -24px 0;padding:4px 24px 6px;gap:6px;
    scrollbar-width:none;-webkit-overflow-scrolling:touch
  }
  .ls-chips::-webkit-scrollbar{display:none}
  .ls-chip{flex:0 0 auto}
  .ls-chip::after{top:-4px;bottom:-4px}
  .ls-input{font-size:1.0625rem;padding-left:2.625rem}
  .ls-icon{left:.875rem}
  .ls-help-more{display:none}
  .ls-hit{grid-template-columns:2rem minmax(0,1fr);gap:0 10px;padding:18px 8px 16px 2px;margin:0 -8px 0 -2px}
  .ls-title{font-size:1.1875rem}
  .ls-snip{padding-left:11px}
  /* Four lines of each passage on a phone; the match sits near the start. */
  .ls-text{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:4;line-clamp:4;overflow:hidden}
  .ls-empty{padding:18px}
}
@media(hover:none){.ls-kbd{display:none}}

/* ---- Paper pages: ?hl= match bar ---- */
.cv-hlbar{
  position:sticky;top:64px;z-index:45;background:#FFFCF0;border-bottom:1px solid #EFE2B3;
  box-shadow:0 6px 14px -12px rgba(0,51,83,.35)
}
.cv-hlbar .cv-hlbar-in{max-width:780px;display:flex;align-items:center;gap:4px;min-height:3.25rem}
.cv-hlbar-text{
  flex:1 1 auto;min-width:0;margin:0;font-size:.875rem;line-height:1.4;color:var(--cv-ink);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis
}
.cv-hlbar-text b{font-weight:700;color:var(--cv-blue-deep)}
.cv-hlbar-text b::before{
  content:"";display:inline-block;width:.75em;height:.75em;margin-right:.5em;vertical-align:-.04em;
  border-radius:2px;background:#FFE86A;box-shadow:inset 0 0 0 1px rgba(138,106,11,.25)
}
.cv-hlbar-q{color:var(--cv-blue-dark)}
.cv-hlbar-pos{margin:0 4px 0 6px;font-size:.8125rem;color:var(--cv-slate);font-variant-numeric:tabular-nums;white-space:nowrap}
.cv-hlbar-btn,.cv-hlbar-clear{
  display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;height:2.75rem;
  border:0;border-radius:10px;background:none;color:var(--cv-blue-deep);cursor:pointer
}
.cv-hlbar-btn{width:2.75rem;padding:0}
.cv-hlbar-clear{padding:0 12px;font-family:var(--cv-font);font-size:.8125rem;font-weight:600;color:var(--cv-blue-dark)}
.cv-hlbar-btn:hover,.cv-hlbar-clear:hover{background:rgba(0,51,83,.07)}
.cv-hlbar-btn:focus-visible,.cv-hlbar-clear:focus-visible{outline:2px solid var(--cv-blue);outline-offset:-2px}
mark.cv-hl.is-current{background:#FFC53D;box-shadow:0 0 0 2px #FFC53D}
html.cv-hl-on :target{scroll-margin-top:8.5rem}
@media(max-width:520px){
  .cv-hlbar .cv-hlbar-in{padding-left:16px;padding-right:8px;gap:0}
  .cv-hlbar-pos{display:none}
  .cv-hlbar-text{font-size:.8125rem}
  .cv-hlbar-text b::before{display:none}
  .cv-hlbar-clear{padding:0 10px}
}

@media print{
  .cv-hlbar,.lib-search{display:none!important}
  mark.cv-hl,mark.cv-hl.is-current{background:none!important;box-shadow:none!important;padding:0!important;color:inherit!important}
}
