
.blog-empty{margin:0;max-width:62ch}
/* a part of a meta line ("Sep 12, 2026 ·"): one box that moves to the next line whole; its separator goes with it, so a
   line never begins with a dot */
.blog-mp{white-space:nowrap}
.blog-tb-link{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:4px;text-decoration-color:var(--rule-2)}
.blog-tb-link:hover{text-decoration-color:var(--ink)}
@media(max-width:899px),(pointer:coarse){.blog-tb-link{display:inline-flex;align-items:center;min-height:44px;margin:-12px 0}}

/* ---- the post as a newspaper page ----
   A folio under a double rule, the headline in the condensed voice, then three equal columns: the summary and the
   contents in the first, the lead and the text in the other two. The text sets in two columns from 1200px, one section
   at a time: a crosshead (h2) spans both and the columns balance again under it, so a reader never goes back up the
   page. Figures, code, key figures and tables are blocks of the two columns' full width. The article has a solid paper
   ground (the page's guides stay behind it); the column rules stand in for them. */
/* The condensed voice (Archivo at width 75) has no matching system face: Arial Bold is about 28% wider, so the headline would
   wrap on more lines until the web font arrives and the page would jump. This face is Arial Bold scaled to Archivo's width
   (measured over the published titles, crossheads, subheads and pull quotes: 0.78 to 0.79; the folio, 0.81), so the first
   paint already has the final line breaks. Its line-height is unitless, so the height does not depend on the scale. */
@font-face{font-family:"Archivo Condensed Fallback";src:local("Arial Bold"),local("Arial-BoldMT"),local("Liberation Sans Bold"),local("LiberationSans-Bold"),local("Arimo Bold"),local("Helvetica Bold"),local("Helvetica-Bold");font-weight:600 700;size-adjust:78.5%}
.gz{position:relative;z-index:1;background:var(--paper);--bleed:0px;--sans-cond:"Archivo","Archivo Condensed Fallback","Helvetica Neue",Arial,sans-serif}
.gz-head{padding-top:32px}
.gz-rule{border-top:1px solid var(--ink);padding-top:3px}
/* the folio: the post's facts as one line, ruled above and below */
.gz-fol{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 24px;padding:8px 0;border-top:1px solid var(--ink);border-bottom:1px solid var(--ink);font-family:var(--sans);font-size:12px;line-height:1.3;letter-spacing:0.07em;font-weight:600;word-spacing:.08em;font-stretch:75%;text-transform:uppercase;color:var(--ink-3)}
.gz-fol-b{color:var(--ink)}
.gz-fol .gz-fol-end{margin-left:auto;color:var(--ink)}
/* a rule between the facts, where one line is certain (four facts of the longest kind fit in 1052px) */
@media(min-width:1100px){
  .gz-fol>:not(:first-child):not(.gz-fol-end){position:relative}
  .gz-fol>:not(:first-child):not(.gz-fol-end)::before{content:"";position:absolute;left:-13px;top:-4px;bottom:-4px;border-left:1px solid var(--rule-1)}
}
.gz-h1{font-family:var(--sans);font-weight:700;letter-spacing:-0.015em;word-spacing:0.04em;font-size:61px;line-height:1;}
@media(max-width:1199px){.gz-h1{font-size:49px;line-height:1.02;}}
@media(max-width:899px){.gz-h1{font-size:39px;line-height:1.05;}}
@media(max-width:639px){.gz-h1{font-size:31px;line-height:1.1;}}
.gz-h1--xl{font-family:var(--sans);font-weight:700;letter-spacing:-0.02em;word-spacing:0.04em;font-size:76px;line-height:0.98;}
@media(max-width:1199px){.gz-h1--xl{font-size:61px;line-height:1;}}
@media(max-width:899px){.gz-h1--xl{font-size:49px;line-height:1.02;}}
@media(max-width:639px){.gz-h1--xl{font-size:39px;line-height:1.05;}}
.gz-h1{margin:24px 0 0;color:var(--ink);font-stretch:75%;text-wrap:balance;overflow-wrap:break-word}
.gz-h1,.gz-fol,.gz .ent-prose h2,.gz .ent-prose h3,.gz .ent-prose blockquote,.gz .blog-seg>p.gz-dc::first-letter{font-family:var(--sans-cond)}
.gz-art{padding:24px 0 64px}
@media(max-width:899px){.gz-art{padding-bottom:48px}}
.gz-grid{position:relative;display:grid;grid-template-columns:minmax(0,1fr);row-gap:32px;padding-top:24px;border-top:1px solid var(--ink)}
.gz-sf{margin:0;color:var(--ink);text-wrap:pretty}
.gz-side,.gz-body{min-width:0}
.gz-side .blog-kt-i{font-family:var(--sans);font-size:14px;line-height:1.45;letter-spacing:0;font-weight:400;word-spacing:.08em;color:var(--ink)}
.gz-side .blog-kt+.gz-toc{margin-top:32px}
@media(min-width:900px){
  .gz-grid{grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:auto 1fr;column-gap:48px;row-gap:24px}
  .gz-grid::before{content:"";position:absolute;top:24px;bottom:0;left:calc((100% - 96px) / 3 + 24px);border-left:1px solid var(--rule-1)}
  .gz-sf,.gz-body{grid-column:2 / 4}
  .gz-sf{grid-row:1}
  .gz-body{grid-row:2}
  .gz-side{grid-column:1;grid-row:1 / span 2}
  .gz-toc{position:sticky;top:88px}
  /* a post with no summary and no contents has the whole width: no side column, no rule */
  .gz-grid--solo::before{display:none}
  .gz-grid--solo .gz-sf,.gz-grid--solo .gz-body{grid-column:1 / -1}
}

/* ---- the text of the post: one section at a time ---- */
.blog-body{min-width:0;counter-reset:blog-fig}
.blog-body>*+*{margin-top:32px}
.blog-body>.blog-seg--h2:not(:first-child){margin-top:48px}
.blog-body>.blog-seg--full{max-width:none}
.blog-body .ent-prose h2:first-child{margin-top:0}
/* the crosshead, the subhead and the pull quote are the headline's voice, smaller */
.gz .ent-prose h2{margin:32px 0 16px;padding-top:12px;border-top:1px solid var(--ink);font-family:var(--sans);font-size:25px;line-height:1.1;letter-spacing:-0.005em;font-weight:700;font-stretch:75%;text-transform:uppercase;hyphens:manual}
.gz .ent-prose h3{margin:24px 0 8px;font-family:var(--sans);font-size:16px;line-height:1.3;letter-spacing:0.04em;font-weight:700;word-spacing:.08em;font-stretch:75%;text-transform:uppercase;hyphens:manual;break-after:avoid}
.gz .ent-prose blockquote{margin:32px 0;padding:16px 0;border:0;border-top:1px solid var(--ink);border-bottom:1px solid var(--ink);font-family:var(--sans);font-size:31px;line-height:1.12;letter-spacing:-0.01em;font-weight:700;font-stretch:75%;text-wrap:balance}
.gz .ent-prose blockquote p{margin:0}
.gz .ent-prose blockquote cite{margin-top:8px;font-family:var(--sans);font-size:13px;line-height:1.5;letter-spacing:0;font-weight:400;word-spacing:.08em;font-stretch:100%}
/* a pull quote's closing rule is the next crosshead's opening rule */
.gz .ent-prose blockquote+h2{border-top:0;padding-top:0}
/* no italics, in the lead either (the spec's rule; a post's lead may quote a phrase in <em>): the quotation marks stay, the
   slant goes, and the weight is not changed (a heavier em would re-wrap the lead when the font arrives) */
.gz-sf em,.gz-sf i{font-style:normal;font-weight:inherit}
.gz .ent-co,.gz .ent-prose pre{break-inside:avoid}
.gz .ent-co{margin:24px 0}
/* the ends of a run of text sit flush: these rules are heavier than the kit's `.ent-prose>:first-child` and would otherwise win */
.gz .blog-seg>:first-child{margin-top:0}
.gz .blog-seg>:last-child{margin-bottom:0}
@media(min-width:1200px){
  .gz .blog-seg{max-width:none;column-count:2;column-gap:48px;column-rule:1px solid var(--rule-1);hyphens:auto;hyphenate-limit-chars:6 3 3}
  .gz-grid--solo .blog-seg{column-count:3}
  .gz .blog-seg--full{column-count:1}
  /* a crosshead, a pull quote and every note run across the columns; the columns balance again after each. The first block
     after one starts flush: a margin there is kept in the first column and cut at the top of the second, so the two
     columns would start at different heights */
  .gz .blog-seg>h2,.gz .blog-seg>blockquote,.gz .blog-seg>.ent-co{column-span:all}
  .gz .blog-seg>:is(h2,blockquote,.ent-co)+*{margin-top:0}
  /* a list that opens or closes a run: its first and last item sit flush too (the items' own 8px would show in the first column only) */
  .gz .blog-seg>:is(ul,ol)>li:first-child{margin-top:0}
  .gz .blog-seg>:is(ul,ol)>li:last-child{margin-bottom:0}
  /* the rule over a checklist is drawn over both of its pieces */
  .gz .ent-prose ul.blog-cl{box-decoration-break:clone}
  /* paragraphs set solid and justified, a new one marked by an indent, as in a newspaper */
  .gz .blog-seg>p{margin:0;text-align:justify}
  .gz .blog-seg>p+p,.gz .blog-seg>h3+p{text-indent:1em}
  .gz .blog-seg code{hyphens:none}
  /* the first paragraph of the text opens with a drop cap, the headline's voice at the cover size; the kit marks it (gz-dc)
     only when the cap reads as the start of a word */
  .gz .blog-seg>p.gz-dc::first-letter{float:left;font-stretch:75%;font-weight:700;font-size:76px;line-height:.78;padding:6px 10px 0 0;color:var(--ink)}
}

/* emphasis is weight, never italics (the page kit's Prose says so for text; a converted table sits outside it) */
.blog-body .ent-tbl em,.blog-body .ent-tbl i,.blog-body .ent-tbl strong,.blog-body .ent-tbl b{font-style:normal;font-weight:600;color:var(--ink)}
.blog-body .ent-tbl code{font-family:var(--mono);font-size:13px;word-spacing:0;color:var(--ink)}

/* ---- table of contents: sticky in the rail; a disclosure on narrow screens ---- */
.blog-toc{max-height:calc(100vh - 112px);overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin}
.blog-toc-s{display:none}
@media(max-width:899px){
  .blog-toc{max-height:none;overflow:visible}
  .blog-toc-s{display:flex;align-items:center;justify-content:space-between;gap:16px;width:100%;min-height:48px;padding:0 4px;border:0;border-top:0;border-bottom:1px solid var(--rule-1);border-radius:0;background:transparent;color:var(--ink);cursor:pointer;text-align:left}
  .blog-toc-s:hover{background:var(--row-hover)}
  .blog-toc-l{display:inline-flex;align-items:baseline;gap:8px;font-family:var(--sans);font-size:12px;line-height:1.3;letter-spacing:0.07em;font-weight:600;word-spacing:.08em;font-stretch:75%;text-transform:uppercase;color:var(--ink)}
  .blog-toc-n{font-family:var(--mono);font-size:12px;line-height:1.4;letter-spacing:0;font-weight:400;word-spacing:0;color:var(--ink-3)}
  .blog-toc-i{position:relative;width:11px;height:11px;flex:none}
  .blog-toc-i::before,.blog-toc-i::after{content:"";position:absolute;background:var(--ink)}
  .blog-toc-i::before{left:0;right:0;top:5px;height:1px}
  .blog-toc-i::after{top:0;bottom:0;left:5px;width:1px}
  .blog-toc-s[aria-expanded="true"] .blog-toc-i::after{transform:scaleY(0)}
  .blog-toc:not([data-expanded]) .blog-toc-panel{display:none}
  .blog-toc .ent-toc-t{display:none}
  .blog-toc .ent-toc-l{border-top:0}
}

/* ---- key takeaways: a ruled list of conclusions ---- */
.blog-kt{margin:0;border-top:1px solid var(--ink);background:var(--paper)}
.blog-kt-t{margin:0;padding:12px 0 8px}
.blog-kt-l{list-style:none;margin:0;padding:0}
.blog-kt-i{display:grid;grid-template-columns:8px minmax(0,1fr);column-gap:12px;align-items:baseline;padding:12px 0;border-top:1px solid var(--rule-1);font-family:var(--sans);font-size:16px;line-height:1.5;letter-spacing:0;font-weight:400;word-spacing:.08em;color:var(--ink)}
.blog-kt-i:first-child{border-top:0}
.blog-kt-i .ent-sq{transform:translateY(-1px)}
.blog-lead{margin:0 0 24px;max-width:36em}

/* ---- figures: a ruled panel with a title strip, the caption under it ---- */
.blog-fig{margin-left:calc(var(--bleed) * -1);margin-right:calc(var(--bleed) * -1);margin-bottom:0;counter-increment:blog-fig}
.blog-fig-box{background:var(--panel);border:1px solid var(--rule-1);border-top-color:var(--ink);border-radius:2px}
.blog-fig-hd{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:4px 16px;min-height:36px;padding:4px 16px;background:var(--paper-2);border-bottom:1px solid var(--rule-1)}
.blog-fig-n{margin:0;color:var(--ink)}
.blog-fig-n::before{content:"Figure " counter(blog-fig)}
.blog-fig-bd{padding:24px}
.blog-fig-cap{margin:0 var(--bleed);padding-top:12px;max-width:68ch;background:var(--paper);font-family:var(--sans);font-size:13px;line-height:1.5;letter-spacing:0;font-weight:400;word-spacing:.08em;color:var(--ink-3);text-wrap:pretty}
@media(max-width:639px){.blog-fig-bd{padding:16px}}

/* ---- charts: ruled rows, bars on one scale, the numbers printed ---- */
.blog-ch{display:grid;gap:0;min-width:0}
.blog-lg{display:flex;flex-wrap:wrap;gap:8px 24px;margin:0 0 16px;font-family:var(--sans);font-size:11px;line-height:1.3;letter-spacing:0.07em;font-weight:600;word-spacing:.08em;font-stretch:75%;text-transform:uppercase;color:var(--ink-2)}
.blog-lg span{display:inline-flex;align-items:center;gap:8px}
.blog-sw{display:inline-block;width:20px;height:12px;flex:none}
.blog-sw--before{border:1px solid var(--ink-3);background:transparent}
.blog-sw--after{background:var(--ink)}
.blog-row{display:grid;grid-template-columns:minmax(0,220px) minmax(0,1fr);column-gap:24px;align-items:center;padding:12px 0;border-top:1px solid var(--rule-1)}
.blog-row:first-child{border-top:0}
.blog-row-l{margin:0;font-family:var(--sans);font-size:14px;line-height:1.45;letter-spacing:0;font-weight:400;word-spacing:.08em;color:var(--ink-2);overflow-wrap:anywhere}
.blog-bars{display:grid;gap:6px;min-width:0}
.blog-bar{display:grid;grid-template-columns:minmax(0,1fr) 72px;column-gap:16px;align-items:center}
.blog-trk{position:relative;height:12px;border-left:1px solid var(--ink)}
.blog-ch--pct .blog-trk{border-right:1px solid var(--rule-1)}
.blog-fill{display:block;height:100%;background:var(--ink)}
.blog-ch--hi .blog-fill{background:var(--rule-2)}
.blog-ch--hi .is-hi .blog-fill{background:var(--ink)}
.blog-fill--before{background:transparent !important;border:1px solid var(--ink-3);border-left:0;box-sizing:border-box}
.blog-val{font-family:var(--mono);font-size:13px;line-height:1.6;letter-spacing:0;font-weight:400;word-spacing:0;font-weight:500;color:var(--ink);text-align:right;white-space:nowrap}
@media(max-width:639px){
  .blog-row{grid-template-columns:minmax(0,1fr);row-gap:8px}
}

/* trend: a line on a plain frame, a square at each value */
.blog-tr{display:grid;grid-template-columns:auto minmax(0,1fr);column-gap:12px}
.blog-tr-y{position:relative;height:var(--h);min-width:28px;font-family:var(--mono);font-size:12px;line-height:1.4;letter-spacing:0;font-weight:400;word-spacing:0;color:var(--ink-3)}
.blog-tr-y span{position:absolute;right:0;transform:translateY(-50%);line-height:1}
.blog-tr-y span:last-child{transform:translateY(50%)}
.blog-tr-plot{position:relative;height:var(--h);margin:0 4px;border-left:1px solid var(--ink);border-bottom:1px solid var(--ink)}
.blog-tr-g{position:absolute;left:0;right:0;border-top:1px solid var(--rule-1)}
.blog-tr-svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.blog-tr-area{fill:var(--paper-2);stroke:none}
.blog-tr-line{fill:none;stroke:var(--ink);stroke-width:2;stroke-linejoin:miter;vector-effect:non-scaling-stroke}
.blog-tr-pt{position:absolute;width:8px;height:8px;margin:-4px 0 0 -4px;background:var(--ink)}
.blog-tr-v{position:absolute;transform:translate(-50%,-175%);font-family:var(--mono);font-size:12px;line-height:1.4;letter-spacing:0;font-weight:400;word-spacing:0;font-weight:500;color:var(--ink);white-space:nowrap}
.blog-tr-v--low{transform:translate(-50%,75%)}
.blog-tr-x{grid-column:2;display:grid;grid-template-columns:repeat(var(--n),minmax(0,1fr));margin:8px 4px 0;font-family:var(--mono);font-size:12px;line-height:1.4;letter-spacing:0;font-weight:400;word-spacing:0;color:var(--ink-3)}
.blog-tr-x span{text-align:center;overflow-wrap:anywhere;padding:0 2px}
@media(max-width:639px){.blog-tr{column-gap:8px}.blog-tr-v{font-size:11px}}

/* ---- key figures: two or three values, each with its line ---- */
.blog-sb{--n:1;display:grid;grid-template-columns:repeat(var(--n),minmax(0,1fr));margin-left:calc(var(--bleed) * -1);margin-right:calc(var(--bleed) * -1);margin-bottom:0;background:var(--panel);border-top:1px solid var(--ink);border-bottom:1px solid var(--rule-1);border-left:1px solid var(--rule-1)}
.blog-sb--2{--n:2}
.blog-sb--3{--n:3}
.blog-sb-c{min-width:0;padding:24px 16px;border-right:1px solid var(--rule-1)}
.blog-sb-v{margin:0;font-family:var(--sans);font-size:31px;line-height:1.1;letter-spacing:-0.03em;font-weight:600;color:var(--ink);overflow-wrap:anywhere}
.blog-sb-l{margin:8px 0 0;max-width:30ch;font-family:var(--sans);font-size:14px;line-height:1.45;letter-spacing:0;font-weight:400;word-spacing:.08em;color:var(--ink-2);text-wrap:pretty}
@media(max-width:639px){
  .blog-sb,.blog-sb--2,.blog-sb--3{--n:1;border-left:0;border-right:1px solid var(--rule-1)}
  .blog-sb-c{display:grid;grid-template-columns:88px minmax(0,1fr);column-gap:16px;align-items:baseline;padding:16px;border-right:0;border-top:1px solid var(--rule-1)}
  .blog-sb-c:first-child{border-top:0}
  .blog-sb-v{font-size:25px}
  .blog-sb-l{margin:0;max-width:none}
}

/* ---- checklist ---- */
.ent-prose ul.blog-cl{list-style:none;margin:32px 0;padding:0;border-top:1px solid var(--ink)}
.ent-prose ul.blog-cl>li{display:grid;grid-template-columns:8px minmax(0,1fr);column-gap:12px;align-items:baseline;margin:0;padding:12px 0;border-bottom:1px solid var(--rule-1);color:var(--ink)}
.ent-prose ul.blog-cl .ent-sq{transform:translateY(-1px)}

/* ---- the sections after the article ---- */
.blog-faq .ent-acc-a{max-width:62ch}

@media(forced-colors:active){
  .blog-fill,.blog-sw--after,.blog-tr-pt{background:CanvasText}
  .blog-ch--hi .blog-fill{background:GrayText}
  .blog-ch--hi .is-hi .blog-fill{background:CanvasText}
  .blog-tr-line{stroke:CanvasText}
  .blog-tr-area{fill:Canvas}
}
