/*
Theme Name: Convoy
Theme URI: https://convoy.example/
Author: WE Web Design
Author URI: https://example.org/
Description: Guides to moving to the largest cities in the US, laid out as a highway. Every guide is a convoy: one moving truck for each city it covers, its length the population of the city against the largest city of the guide, straight to that city on the guide. A load gauge beside the highway fills every truck with a price figure the guides publish, measured against the US at 100, and every city is an exit from A to Z. A guide opens with its own convoy beside the text. Fjalla One and Ubuntu Mono; sign green and cargo brown on concrete, reflective green and headlight amber at night. Categories, tags and author archives are never shown or linked.
Version: 1.0.0
Requires at least: 6.4
Tested up to: 6.7
Requires PHP: 7.4
License: GPL v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: convoy
Tags: blog, grid-layout, custom-menu, threaded-comments, translation-ready, block-patterns, wide-blocks, editor-style
*/

/* ========================================================================
   1. TOKENS - sign green + cargo brown on concrete, reflective green + headlight amber on night asphalt (34/34 pairs AA, worst 5.54:1); Fjalla One + Ubuntu Mono
   ======================================================================== */
:root{
  --paper:#efefeb;
  --paper-2:#e1e2dd;
  --ink:#15181a;
  --ink-2:#373c40;
  --ink-3:#52585d;
  --rule:#cfd0ca;
  --card:#fbfbf8;
  --accent:#2e4c2d;
  --accent-2:#633d23;
  --warn:#9a4708;
  --warn-soft:#fef3c7;
  --safe:#0e7490;
  --safe-soft:#e0f2fe;
  --link:var(--accent);
  --focus:#15181a;

  --sans:-apple-system,BlinkMacSystemFont,'Segoe UI',system-ui,sans-serif;
  --serif:'Fjalla One','Arial Narrow','Segoe UI',system-ui,sans-serif;
  --mono:'Ubuntu Mono',ui-monospace,'SF Mono',Menlo,Consolas,monospace;

  --measure:42rem;
  --measure-wide:64rem;
  --shell:84rem;

  --space-1:.25rem;
  --space-2:.5rem;
  --space-3:.75rem;
  --space-4:1rem;
  --space-5:1.5rem;
  --space-6:2rem;
  --space-7:3rem;
  --space-8:4rem;
  --space-9:6rem;

  --radius-1:.25rem;
  --radius-2:.5rem;
  --radius-3:.75rem;

  --shadow-1:0 1px 2px rgba(26,36,33,.06),0 1px 1px rgba(26,36,33,.04);
  --shadow-2:0 4px 12px rgba(26,36,33,.08),0 2px 4px rgba(26,36,33,.04);

  --z-base:0;
  --z-sticky:10;
  --z-rail:20;
  --z-progress:30;
  --z-topbar:40;
  --z-drawer:50;
  --z-skip:999;

  color-scheme:light;
}
[data-theme="dark"]{
  --paper:#111416;
  --paper-2:#191d20;
  --ink:#ebeef0;
  --ink-2:#c1c7cb;
  --ink-3:#939aa0;
  --rule:#2c3135;
  --card:#15181b;
  --accent:#a6e3a1;
  --accent-2:#ff8d0c;
  --warn:#fbbf24;
  --warn-soft:#1c1410;
  --safe:#7dd3fc;
  --safe-soft:#0c1f2e;
  --link:var(--accent);
  --focus:#e1e2dd;
  --shadow-1:0 1px 2px rgba(0,0,0,.4),0 1px 1px rgba(0,0,0,.3);
  --shadow-2:0 4px 12px rgba(0,0,0,.5),0 2px 4px rgba(0,0,0,.4);
  color-scheme:dark;
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){
    --paper:#111416;
    --paper-2:#191d20;
    --ink:#ebeef0;
    --ink-2:#c1c7cb;
    --ink-3:#939aa0;
    --rule:#2c3135;
    --card:#15181b;
    --accent:#a6e3a1;
    --accent-2:#ff8d0c;
    --warn:#fbbf24;
    --warn-soft:#1c1410;
    --safe:#7dd3fc;
    --safe-soft:#0c1f2e;
    --link:var(--accent);
    --focus:#e1e2dd;
    --shadow-1:0 1px 2px rgba(0,0,0,.4),0 1px 1px rgba(0,0,0,.3);
    --shadow-2:0 4px 12px rgba(0,0,0,.5),0 2px 4px rgba(0,0,0,.4);
    color-scheme:dark;
  }
}

/* ========================================================================
   2. RESET + BASE
   ======================================================================== */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:5rem}
body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:var(--sans);
  font-size:1.0625rem;
  line-height:1.7;
  font-feature-settings:'ss01','kern','liga';
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
}
img,picture,video,canvas,svg{display:block;max-width:100%;height:auto}
img{aspect-ratio:attr(width)/attr(height)}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer;background:none;border:0;padding:0}
a{color:var(--link);text-underline-offset:.18em;text-decoration-thickness:.06em}
a:hover{text-decoration-thickness:.12em}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[tabindex]:focus-visible{
  outline:2px solid var(--focus);
  outline-offset:2px;
  border-radius:var(--radius-1);
}
hr{border:0;border-top:1px solid var(--rule);margin:var(--space-6) 0}
::selection{background:var(--accent);color:var(--paper)}

/* ========================================================================
   3. SKIP LINK (WD-9 — focus override mandatory)
   ======================================================================== */
.skip-link{
  position:absolute;
  left:-9999px;top:-9999px;
  width:auto;height:auto;
  clip:auto;clip-path:none;overflow:visible;
  background:var(--ink);
  color:var(--paper);
  padding:.75rem 1.25rem;
  border-radius:var(--radius-2);
  font-weight:600;
  z-index:var(--z-skip);
  text-decoration:none;
}
.skip-link:focus{left:1rem;top:1rem}

/* ========================================================================
   4. TYPOGRAPHY (WD-10, WD-14)
   ======================================================================== */
h1,h2,h3,h4,h5,h6{
  font-family:var(--serif);
  font-weight:600;
  line-height:1.2;
  letter-spacing:-.01em;
  margin:2.4rem 0 .8rem;
  color:var(--ink);
  text-wrap:balance;
}
h1{font-size:clamp(2rem,4.2vw,2.75rem);line-height:1.15;letter-spacing:-.02em;margin-top:0}
h2{font-size:clamp(1.5rem,2.6vw,1.875rem)}
h3{font-size:clamp(1.25rem,2vw,1.4rem)}
h4{font-size:1.125rem}
h5,h6{font-size:1rem;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-2)}
p{margin:0 0 1.1rem;text-wrap:pretty}
strong,b{font-weight:600;color:var(--ink)}
em,i{font-style:italic}
small{font-size:.8125rem;color:var(--ink-2)}
blockquote{
  border-left:3px solid var(--accent);
  margin:1.6rem 0;
  padding:.4rem 0 .4rem 1.2rem;
  font-family:var(--serif);
  font-size:1.125rem;
  font-style:italic;
  color:var(--ink-2);
}
blockquote cite{display:block;font-style:normal;font-size:.875rem;color:var(--ink-3);margin-top:.4rem}
code,kbd,pre,samp{font-family:ui-monospace,'SF Mono','Menlo','Consolas',monospace;font-size:.9em}
:not(pre)>code{background:var(--paper-2);padding:.15em .4em;border-radius:var(--radius-1);color:var(--ink)}
pre{
  background:var(--paper-2);
  border:1px solid var(--rule);
  border-radius:var(--radius-2);
  padding:1rem 1.2rem;
  overflow-x:auto;
  font-size:.875rem;
  line-height:1.55;
  margin:1.5rem 0;
}
ul,ol{margin:0 0 1.2rem;padding-left:1.4rem}
li{margin:.4rem 0}
ul li::marker{color:var(--accent)}
dl{margin:1.2rem 0}
dt{font-weight:600;margin-top:.8rem}
dd{margin:0 0 .4rem 1.2rem;color:var(--ink-2)}
table{border-collapse:collapse;width:100%;margin:1.5rem 0;font-size:.95rem}
th,td{padding:.6rem .8rem;text-align:left;border-bottom:1px solid var(--rule);vertical-align:top}
th{font-weight:600;color:var(--ink);background:var(--paper-2)}
tbody tr:hover{background:var(--paper-2)}
figure{margin:1.6rem 0}
figcaption{font-size:.875rem;color:var(--ink-3);text-align:center;margin-top:.5rem;font-style:italic}

/* ========================================================================
   5. LAYOUT — page shell
   ======================================================================== */
.page-shell{min-height:100vh;display:flex;flex-direction:column}
.site-main{flex:1 0 auto}
.wrap{max-width:var(--shell);margin:0 auto;padding:0 clamp(1rem,4vw,2rem)}

/* ========================================================================
   6. TOPBAR (WD-7 touch 44+)
   ======================================================================== */
.topbar{
  position:sticky;top:0;z-index:var(--z-topbar);
  background:color-mix(in oklab,var(--paper) 92%,transparent);
  backdrop-filter:saturate(160%) blur(10px);
  -webkit-backdrop-filter:saturate(160%) blur(10px);
  border-bottom:1px solid var(--rule);
}
.topbar__inner{
  max-width:var(--shell);
  margin:0 auto;
  padding:.6rem clamp(1rem,4vw,2rem);
  display:flex;align-items:center;gap:1rem;
  min-height:60px;
}
.brand{display:flex;align-items:center;gap:.6rem;text-decoration:none;color:var(--ink)}
.brand:hover{text-decoration:none}
.brand__mark{
  width:34px;height:34px;border-radius:50%;
  background:var(--accent);
  color:var(--paper);
  font-family:var(--serif);
  font-weight:600;
  font-size:1.05rem;
  display:grid;place-items:center;
  letter-spacing:-.02em;
}
.brand__name{font-family:var(--serif);font-weight:600;font-size:1.125rem;letter-spacing:-.01em}
.topbar__inner{flex-wrap:wrap;row-gap:.35rem}
.brand{flex:1 1 auto;min-width:0;min-height:44px}
.brand__mark{flex:0 0 auto}
.brand__name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.topbar__nav{display:flex;order:4;flex:1 1 100%;flex-wrap:wrap;gap:0 1.2rem;font-size:.95rem;align-items:center}
.topbar__nav a{color:var(--ink-2);text-decoration:none;padding:.6rem 0;min-height:44px;display:inline-flex;align-items:center}
.topbar__nav a:hover,.topbar__nav a[aria-current="page"]{color:var(--ink)}
.topbar__search{order:3;flex:1 1 100%;min-width:0}
.theme-toggle{order:2;flex:0 0 auto;display:grid;place-items:center;width:44px;height:44px;border-radius:50%;color:var(--ink-2)}
.theme-toggle:hover{color:var(--ink);background:var(--paper-2)}
.theme-toggle:focus-visible{outline:3px solid var(--focus);outline-offset:2px}
.theme-toggle .sun{display:none}
[data-theme="dark"] .theme-toggle .moon{display:none}
[data-theme="dark"] .theme-toggle .sun{display:block}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]) .theme-toggle .moon{display:none}
  :root:not([data-theme="light"]) .theme-toggle .sun{display:block}
}
@media (min-width:48rem){
  .topbar__inner{flex-wrap:nowrap}
  .brand{flex:0 0 auto}
  .topbar__nav{order:0;flex:0 1 auto;margin-left:auto;flex-wrap:nowrap}
  .topbar__search{order:0;flex:0 1 20rem;margin-left:auto}
  .topbar__nav + .topbar__search{margin-left:0}
  .theme-toggle{order:0}
}

/* ========================================================================
   7. SEARCH INPUT
   ======================================================================== */
.search-form{position:relative;width:100%}
.search-form__input{
  width:100%;
  background:var(--paper-2);
  border:1px solid var(--rule);
  border-radius:999px;
  padding:.55rem 3rem .55rem 2.4rem;
  font-size:1rem;
  min-height:44px;
  color:var(--ink);
}
.search-form__input::placeholder{color:var(--ink-3)}
.search-form__icon{position:absolute;left:.85rem;top:50%;transform:translateY(-50%);color:var(--ink-3);pointer-events:none}
.search-form__submit{position:absolute;right:.05rem;top:50%;transform:translateY(-50%);width:44px;height:44px;border-radius:50%;display:grid;place-items:center;color:var(--ink-2);background:transparent}
.search-form__submit:hover{color:var(--ink);background:var(--paper)}

/* ========================================================================
   8. READING PROGRESS BAR (WD-16 reduced-motion respect)
   ======================================================================== */
.reading-progress{
  position:fixed;top:0;left:0;right:0;height:3px;
  z-index:var(--z-progress);
  background:transparent;
  pointer-events:none;
}
.reading-progress__bar{
  display:block;height:100%;width:0;
  background:var(--accent);
  transition:width .12s linear;
  transform-origin:left;
}
@media (prefers-reduced-motion:reduce){
  .reading-progress__bar{transition:none}
}

/* ========================================================================
   9-10. (front-page hero + magazine grid removed)
   The front page is a highway: a convoy of moving trucks for each guide, a load gauge above it (section 28).
   ======================================================================== */

/* ========================================================================
   11. ARTICLE — two-column long-form
   ======================================================================== */
.article-shell{
  max-width:var(--measure-wide);
  margin:0 auto;
  padding:clamp(2rem,4vw,3rem) clamp(1rem,4vw,2rem);
}
.article-main{min-width:0;max-width:46rem;margin-inline:auto}
.article-main--page{margin-inline:auto;padding-block:clamp(2.5rem,5vw,4rem)}

/* ========================================================================
   11b. COLLAPSIBLE SUMMARY CARD (optional — sits at top of article)
   ======================================================================== */
.tldr-card{
  background:var(--card);
  border:1px solid var(--rule);
  border-left:4px solid var(--accent);
  border-radius:var(--radius-3);
  padding:1.2rem 1.4rem;
  margin:0 0 2rem;
  box-shadow:var(--shadow-1);
}
.tldr-card[open] summary{margin-bottom:.8rem}
.tldr-card summary{
  cursor:pointer;
  display:flex;align-items:center;gap:.6rem;
  list-style:none;
  font-family:var(--serif);
  font-size:1rem;
  font-weight:600;
  color:var(--accent-2);
  letter-spacing:-.005em;
  min-height:32px;
}
.tldr-card summary::-webkit-details-marker{display:none}
.tldr-card summary::before{
  content:'';
  width:0;height:0;
  border-left:5px solid currentColor;
  border-top:4px solid transparent;
  border-bottom:4px solid transparent;
  transition:transform .15s ease;
  flex-shrink:0;
}
.tldr-card[open] summary::before{transform:rotate(90deg)}
.tldr-card__label{
  text-transform:uppercase;
  letter-spacing:.12em;
  font-size:.72rem;
  font-weight:700;
  color:var(--accent);
  margin-right:auto;
}
.tldr-card p,.tldr-card ul,.tldr-card ol{
  font-size:.985rem;
  line-height:1.65;
  color:var(--ink-2);
  margin:0 0 .8rem;
}
.tldr-card p:last-child,.tldr-card ul:last-child,.tldr-card ol:last-child{margin-bottom:0}
@media (prefers-reduced-motion:reduce){
  .tldr-card summary::before{transition:none}
}

/* ========================================================================
   11c. FOOTNOTE-STYLE REFERENCES (sourced citations, bottom of article)
   ======================================================================== */
.article-refs{
  margin:3rem 0 0;
  padding:1.6rem 0 0;
  border-top:2px solid var(--accent);
}
.article-refs__heading{
  font-family:var(--serif);
  font-size:1.05rem;
  font-weight:600;
  text-transform:uppercase;
  letter-spacing:.1em;
  margin:0 0 1rem;
  color:var(--ink);
}
.article-refs__list{
  list-style:none;
  margin:0;padding:0;
  counter-reset:refs;
  font-size:.9rem;
  line-height:1.55;
}
.article-refs__list li{
  counter-increment:refs;
  display:flex;
  gap:.6rem;
  margin:.6rem 0;
  color:var(--ink-2);
}
.article-refs__list li::before{
  content:counter(refs);
  font-family:var(--mono);
  font-size:.8rem;
  font-weight:600;
  color:var(--accent-2);
  min-width:1.6rem;
  text-align:right;
  flex-shrink:0;
}
.article-refs__list a{color:var(--link);text-underline-offset:.16em;word-break:break-word}
.article-refs__source{font-style:italic;color:var(--ink-3)}

/* In-prose footnote callout */
.prose sup.fn-ref{
  font-family:var(--mono);
  font-size:.72em;
  font-weight:600;
  vertical-align:super;
  line-height:0;
}
.prose sup.fn-ref a{
  color:var(--accent-2);
  text-decoration:none;
  padding:0 .15em;
  background:var(--paper-2);
  border-radius:.2em;
}
.prose sup.fn-ref a:hover{background:var(--accent);color:var(--paper)}

/* ========================================================================
   11d. INLINE RELATED CARD (in-flow related card)
   ======================================================================== */
.inline-related-card{
  background:var(--card);
  border:1px solid var(--rule);
  border-left:3px solid var(--accent);
  border-radius:var(--radius-3);
  padding:1.1rem 1.3rem;
  margin:2rem 0;
  display:flex;flex-direction:column;gap:.4rem;
}
.inline-related-card__label{
  text-transform:uppercase;
  letter-spacing:.12em;
  font-size:.72rem;
  font-weight:700;
  color:var(--ink-3);
}
.inline-related-card__title{font-family:var(--serif);font-size:1.05rem;line-height:1.3;margin:0;letter-spacing:-.01em}
.inline-related-card__title a{color:var(--ink);text-decoration:none;border-bottom:1px solid var(--rule)}
.inline-related-card__title a:hover{color:var(--accent-2);border-bottom-color:var(--accent)}
.inline-related-card__why{font-size:.95rem;color:var(--ink-2);margin:.2rem 0 0;line-height:1.55}

/* Decision/comparison card — two options side by side */
.diy-vs-pro{
  display:grid;
  grid-template-columns:1fr;
  gap:0;
  border:1px solid var(--rule);
  border-radius:var(--radius-3);
  overflow:hidden;
  margin:2rem 0;
}
@media (min-width:720px){.diy-vs-pro{grid-template-columns:1fr 1fr}}
.diy-vs-pro__col{padding:1.2rem 1.4rem;display:flex;flex-direction:column;gap:.5rem}
.diy-vs-pro__col--safe{background:var(--safe-soft);border-bottom:1px solid var(--rule)}
.diy-vs-pro__col--pro{background:var(--warn-soft)}
@media (min-width:720px){
  .diy-vs-pro__col--safe{border-bottom:0;border-right:1px solid var(--rule)}
}
.diy-vs-pro__label{
  text-transform:uppercase;
  letter-spacing:.08em;
  font-size:.72rem;
  font-weight:700;
}
.diy-vs-pro__col--safe .diy-vs-pro__label{color:var(--safe)}
.diy-vs-pro__col--pro .diy-vs-pro__label{color:var(--warn)}
.diy-vs-pro__title{font-family:var(--serif);font-size:1.05rem;font-weight:600;margin:0;color:var(--ink)}
.diy-vs-pro__body{font-size:.925rem;color:var(--ink-2);line-height:1.55;margin:0}
.diy-vs-pro__body ul{margin:.4rem 0 0;padding-left:1.2rem}
.diy-vs-pro__body li{margin:.2rem 0}

/* ========================================================================
   12. ARTICLE HEAD
   ======================================================================== */
.post__header{margin-bottom:2rem}
.post__kicker{
  display:inline-block;
  text-transform:uppercase;
  letter-spacing:.12em;
  font-size:.78rem;
  font-weight:600;
  color:var(--accent-2);
  text-decoration:none;
  margin-bottom:.8rem;
}
.post__kicker:hover{color:var(--accent)}
.post__title{
  font-family:var(--serif);
  font-size:clamp(2rem,4vw,2.75rem);
  line-height:1.12;
  letter-spacing:-.02em;
  margin:0 0 1rem;
  text-wrap:balance;
}
.post__byline{
  display:flex;flex-wrap:wrap;gap:1rem 1.4rem;
  font-size:.875rem;color:var(--ink-3);
  margin:0 0 1.4rem;
  padding:0;
}
.post__byline > span{display:inline-flex;align-items:baseline;gap:.4rem}
.post__byline .label{
  text-transform:uppercase;
  letter-spacing:.08em;
  font-size:.7rem;
  font-weight:600;
  color:var(--ink-3);
}
.post__byline time{color:var(--ink-2)}
.post__featured-img{margin:0 0 2rem;border-radius:var(--radius-3);overflow:hidden;border:1px solid var(--rule)}
.post__featured-img img{width:100%;height:auto;display:block;aspect-ratio:16/9;object-fit:cover}

/* ========================================================================
   13. PROSE — body content (long-form readability)
   ======================================================================== */
.prose{font-size:1.0625rem;line-height:1.75}
/* A raw URL or a long unbroken string in the content must wrap instead of
   widening the page on a phone (tema 53: a references list of raw URLs pushed
   the page to 473px at 320). Tables are excluded - they scroll in their region. */
.prose :is(p,li,dd,dt,blockquote,figcaption,h2,h3,h4){overflow-wrap:anywhere}
.prose > * + *{margin-top:0}
.prose p{margin:0 0 1.2rem}
.prose h2{margin:2.6rem 0 .9rem;scroll-margin-top:5rem;font-size:clamp(1.4rem,2.4vw,1.75rem)}
.prose h3{margin:2rem 0 .7rem;scroll-margin-top:5rem;font-size:clamp(1.15rem,1.8vw,1.3rem)}
.prose h2:first-child,.prose h3:first-child{margin-top:0}
.prose ul,.prose ol{margin:0 0 1.2rem;padding-left:1.6rem}
.prose li{margin:.5rem 0}
.prose img{border-radius:var(--radius-2);border:1px solid var(--rule);margin:1.6rem 0}
.prose a{color:var(--link)}
.prose a:hover{color:var(--accent)}

/* ========================================================================
   14. TL;DR CARD (block pattern)
   ======================================================================== */
.tldr{
  background:var(--card);
  border:1px solid var(--rule);
  border-left:3px solid var(--accent);
  border-radius:var(--radius-3);
  padding:1.2rem 1.4rem;
  margin:0 0 2rem;
}
.tldr__label{
  display:block;
  text-transform:uppercase;
  letter-spacing:.12em;
  font-size:.72rem;
  font-weight:700;
  color:var(--accent-2);
  margin-bottom:.5rem;
}
.tldr p{margin:0 0 .6rem;font-size:.985rem;line-height:1.6;color:var(--ink-2)}
.tldr p:last-child{margin-bottom:0}
.tldr ul,.tldr ol{margin:.4rem 0 0;padding-left:1.2rem;font-size:.975rem;color:var(--ink-2)}

/* ========================================================================
   15. LEGAL DISCLAIMER CALLOUT
   ======================================================================== */
.legal-disclaimer{
  background:var(--warn-soft);
  border:1px solid color-mix(in oklab,var(--warn) 35%,var(--rule));
  border-radius:var(--radius-3);
  padding:1.1rem 1.3rem;
  margin:0 0 2rem;
  font-size:.925rem;
  line-height:1.55;
  color:var(--ink-2);
}
.legal-disclaimer__label{
  display:flex;align-items:center;gap:.5rem;
  font-weight:700;
  color:var(--warn);
  margin-bottom:.4rem;
  font-size:.85rem;
  letter-spacing:.04em;
}
.legal-disclaimer__label::before{
  content:'';
  display:inline-block;
  width:14px;height:14px;
  background:currentColor;
  -webkit-mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='currentColor'><path d='M12 2L1 21h22L12 2zm0 6l7.5 13h-15L12 8zm-1 4v4h2v-4h-2zm0 5v2h2v-2h-2z'/></svg>") no-repeat center / contain;
  mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='currentColor'><path d='M12 2L1 21h22L12 2zm0 6l7.5 13h-15L12 8zm-1 4v4h2v-4h-2zm0 5v2h2v-2h-2z'/></svg>") no-repeat center / contain;
  flex-shrink:0;
}
.legal-disclaimer p{margin:0 0 .5rem}
.legal-disclaimer p:last-child{margin-bottom:0}

/* ========================================================================
   16. CALLOUT (general block pattern, info/warning)
   ======================================================================== */
.callout{
  background:var(--paper-2);
  border:1px solid var(--rule);
  border-left:3px solid var(--accent);
  border-radius:var(--radius-3);
  padding:1rem 1.2rem;
  margin:1.6rem 0;
  font-size:.975rem;
}
.callout.is-style-warning{
  border-left-color:var(--warn);
  background:var(--warn-soft);
}
.callout p{margin:0 0 .6rem}
.callout p:last-child{margin-bottom:0}

/* ========================================================================
   17. META RAIL (right column on article)
   ======================================================================== */
.meta-rail__group{margin-bottom:1.4rem;padding-bottom:1.4rem;border-bottom:1px solid var(--rule)}
.meta-rail__group:last-child{border-bottom:0;margin-bottom:0;padding-bottom:0}
.meta-rail__label{
  text-transform:uppercase;
  letter-spacing:.12em;
  font-size:.72rem;
  font-weight:700;
  color:var(--ink-3);
  margin:0 0 .55rem;
}
.meta-rail__value{font-size:.925rem;color:var(--ink-2);margin:0;line-height:1.5}
.meta-rail__value strong{color:var(--ink);font-weight:600}

/* ========================================================================
   18. TOC (table of contents — scrollspy)
   ======================================================================== */
.toc__list{list-style:none;margin:0;padding:0;font-size:.9rem;line-height:1.4}
.toc__list li{margin:.35rem 0}
.toc__list a{
  color:var(--ink-2);
  text-decoration:none;
  display:block;
  padding:.2rem .55rem;
  border-left:2px solid transparent;
  border-radius:0 var(--radius-1) var(--radius-1) 0;
  transition:color .15s ease,border-color .15s ease,background .15s ease;
}
.toc__list a:hover{color:var(--ink);background:var(--paper-2)}
.toc__list a.is-active{
  color:var(--accent-2);
  border-left-color:var(--accent);
  background:var(--paper-2);
  font-weight:600;
}
@media (prefers-reduced-motion:reduce){
  .toc__list a{transition:none}
}
.toc__list .toc-h3{padding-left:.9rem;font-size:.85rem;color:var(--ink-3)}
.toc__list .toc-h3 a{padding-left:.9rem}

/* ========================================================================
   19. MOBILE TOC DRAWER
   ======================================================================== */
.inline-toc{
  background:var(--paper-2);
  border:1px solid var(--rule);
  border-radius:var(--radius-3);
  padding:.8rem 1.2rem;
  margin:0 0 2rem;
}
.inline-toc summary{
  cursor:pointer;
  font-weight:600;
  font-size:.95rem;
  color:var(--ink);
  list-style:none;
  display:flex;align-items:center;gap:.5rem;
  padding:.3rem 0;
  min-height:32px;
}
.inline-toc summary::-webkit-details-marker{display:none}
.inline-toc summary::before{
  content:'';
  display:inline-block;
  width:0;height:0;
  border-left:5px solid currentColor;
  border-top:4px solid transparent;
  border-bottom:4px solid transparent;
  transition:transform .15s ease;
  flex-shrink:0;
}
.inline-toc[open] summary::before{transform:rotate(90deg)}
.inline-toc .toc__list{margin-top:.6rem;padding-left:.4rem}
@media (prefers-reduced-motion:reduce){
  .inline-toc summary::before{transition:none}
}

.toc-drawer-toggle{
  display:inline-flex;align-items:center;gap:.5rem;
  background:var(--paper-2);
  border:1px solid var(--rule);
  border-radius:999px;
  padding:.5rem 1rem;
  font-size:.9rem;
  color:var(--ink-2);
  margin:0 0 1rem;
  min-height:44px;
}
.toc-drawer-toggle:hover{color:var(--ink);background:var(--card)}
@media (min-width:1080px){
  .toc-drawer-toggle{display:none}
}
.toc-drawer{
  position:fixed;
  inset:0;
  z-index:var(--z-drawer);
  background:rgba(26,36,33,.5);
  display:none;
  padding:5rem 1rem 1rem;
}
.toc-drawer[data-open="true"]{display:block}
.toc-drawer__panel{
  background:var(--paper);
  border:1px solid var(--rule);
  border-radius:var(--radius-3);
  padding:1.4rem;
  max-width:32rem;
  margin:0 auto;
  max-height:80vh;
  overflow:auto;
}
.toc-drawer__close{
  float:right;
  width:36px;height:36px;
  display:grid;place-items:center;
  border-radius:var(--radius-2);
  color:var(--ink-2);
}
.toc-drawer__close:hover{color:var(--ink);background:var(--paper-2)}

/* ========================================================================
   20. PAGINATION
   ======================================================================== */
.pagination{
  display:flex;flex-wrap:wrap;justify-content:center;gap:.4rem;
  margin:3rem 0 2rem;
  padding-top:1.5rem;
  border-top:1px solid var(--rule);
}
.pagination a,.pagination span{
  display:inline-grid;place-items:center;
  min-width:44px;height:44px;
  padding:0 .8rem;
  border-radius:var(--radius-2);
  font-size:.95rem;
  color:var(--ink-2);
  text-decoration:none;
  border:1px solid var(--rule);
}
.pagination a:hover{color:var(--ink);background:var(--paper-2);border-color:var(--ink-3)}
.pagination .current{background:var(--accent);color:var(--paper);border-color:var(--accent);font-weight:600}
.pagination .dots{border:0;background:transparent}

/* ========================================================================
   21. POST NAV (prev / next)
   ======================================================================== */
.post-nav{
  display:grid;
  grid-template-columns:1fr;
  gap:1rem;
  margin:3rem 0 0;
  padding-top:1.6rem;
  border-top:1px solid var(--rule);
}
@media (min-width:640px){.post-nav{grid-template-columns:1fr 1fr}}
.post-nav a{
  display:block;
  padding:1rem 1.2rem;
  background:var(--card);
  border:1px solid var(--rule);
  border-radius:var(--radius-3);
  text-decoration:none;
  color:var(--ink);
  transition:border-color .15s ease;
}
.post-nav a:hover{border-color:var(--accent)}
.post-nav__label{
  display:block;
  text-transform:uppercase;
  letter-spacing:.1em;
  font-size:.72rem;
  font-weight:600;
  color:var(--ink-3);
  margin-bottom:.3rem;
}
.post-nav__title{font-family:var(--serif);font-size:1.025rem;line-height:1.3;color:var(--ink)}
.post-nav__next{text-align:right}

/* ========================================================================
   22. FOOTER
   ======================================================================== */
.site-footer{
  border-top:1px solid var(--rule);
  padding:clamp(2.5rem,5vw,4rem) 0 clamp(1.5rem,3vw,2.5rem);
  margin-top:clamp(3rem,6vw,5rem);
  font-size:.925rem;
  color:var(--ink-2);
}
.site-footer__top{
  display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:1.6rem;
  margin-bottom:2rem;
  padding-bottom:1.6rem;
  border-bottom:1px solid var(--rule);
}
.site-footer__brand{display:flex;flex-direction:column;gap:.4rem;max-width:24rem}
.site-footer__name{font-family:var(--serif);font-weight:600;font-size:1.05rem;color:var(--ink)}
.site-footer__tag{color:var(--ink-3);font-size:.9rem;line-height:1.5;margin:0}
.site-footer__links{display:flex;flex-wrap:wrap;gap:1.4rem;font-size:.9rem}
.site-footer__links a{color:var(--ink-2);text-decoration:none;min-height:44px;display:inline-flex;align-items:center}
.site-footer__links a:hover{color:var(--ink)}
.site-footer__bottom{display:flex;justify-content:space-between;flex-wrap:wrap;gap:1rem;font-size:.825rem;color:var(--ink-3)}
.site-footer__disclaimer{max-width:50rem;line-height:1.55;color:var(--ink-3);font-size:.825rem;margin:1rem 0 0}

/* ========================================================================
   23. COMMENTS
   ======================================================================== */
.comments-area{margin-top:3rem;padding-top:2rem;border-top:1px solid var(--rule)}
.comments-title{font-family:var(--serif);font-size:1.4rem;margin:0 0 1.4rem}
.comment-list{list-style:none;margin:0;padding:0}
.comment-list li{margin:0 0 1.4rem;padding:1rem 1.2rem;background:var(--card);border:1px solid var(--rule);border-radius:var(--radius-3)}
.comment-meta{font-size:.875rem;color:var(--ink-3);margin-bottom:.5rem}
.comment-meta cite{font-style:normal;color:var(--ink);font-weight:600}
.comment-form label{display:block;font-size:.875rem;margin:.8rem 0 .3rem;color:var(--ink-2);font-weight:500}
.comment-form input[type="text"],.comment-form input[type="email"],.comment-form input[type="url"],.comment-form textarea{
  width:100%;
  background:var(--paper-2);
  border:1px solid var(--rule);
  border-radius:var(--radius-2);
  padding:.6rem .8rem;
  font:inherit;
  color:var(--ink);
  min-height:44px;
}
.comment-form textarea{min-height:8rem;resize:vertical}
.form-submit input[type="submit"],.button{
  display:inline-flex;align-items:center;justify-content:center;
  background:var(--accent);
  color:var(--paper);
  border:0;
  padding:.7rem 1.4rem;
  border-radius:var(--radius-2);
  font:inherit;
  font-weight:600;
  cursor:pointer;
  min-height:44px;
  min-width:44px;
  transition:background .15s ease;
}
.form-submit input[type="submit"]:hover,.button:hover{background:var(--accent-2)}
@media (prefers-reduced-motion:reduce){
  .form-submit input[type="submit"],.button{transition:none}
}

/* ========================================================================
   24. 404 / SEARCH
   ======================================================================== */
.error-404,.search-results-head{padding:clamp(3rem,6vw,5rem) 0;text-align:center}
.error-404__code{font-family:var(--serif);font-size:clamp(4rem,12vw,7rem);line-height:1;color:var(--accent);letter-spacing:-.04em;margin:0}
.error-404__title{font-family:var(--serif);font-size:clamp(1.6rem,3vw,2rem);margin:.6rem 0 1rem}
.error-404__lede{color:var(--ink-2);max-width:36rem;margin:0 auto 1.4rem;line-height:1.6}
.error-404__suggest{max-width:34rem;margin:1.6rem auto 0;text-align:left}

/* ========================================================================
   25. WP HELPERS
   ======================================================================== */
.screen-reader-text{position:absolute!important;clip:rect(1px,1px,1px,1px);width:1px;height:1px;overflow:hidden;padding:0;margin:-1px;border:0;word-wrap:normal!important}
.alignleft{float:left;margin:.5rem 1.4rem 1rem 0}
.alignright{float:right;margin:.5rem 0 1rem 1.4rem}
.aligncenter{margin-left:auto;margin-right:auto;display:block}
.alignwide{max-width:min(var(--measure-wide),100%);margin-left:auto;margin-right:auto}
.alignfull{max-width:100%;margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw);width:100vw}
.wp-block-image img{border-radius:var(--radius-2)}
.wp-block-quote{border-left:3px solid var(--accent);padding:.4rem 0 .4rem 1.2rem;margin:1.6rem 0;font-family:var(--serif);font-style:italic;color:var(--ink-2)}
.wp-block-pullquote{border:0;padding:1.5rem 1.5rem;text-align:left;font-family:var(--serif);font-size:1.3rem;line-height:1.4}
.wp-block-table{margin:1.5rem 0}
.wp-block-table table{border:1px solid var(--rule)}

/* ========================================================================
   28. THE HIGHWAY
   Front page: the overhead gantry (the title on a green guide sign hung from a steel truss, and
   what the highway holds on a second sign with lane arrows); the load gauge (a dark dashboard
   strip, under the header on a wide screen: a dial and radio buttons drawn as switches that fill
   every truck with one figure the guides publish against the US at 100); the highway (two
   columns of convoys on a wide screen: a shield with the number of the guide, the title, and the
   road: one lane for each city, a white moving truck with "Moving to" and the city painted on its
   box, the box as long as the population of the city against the largest city of the guide, the
   load filling it to the chosen figure (full at 200, the dashed line is the US at 100); the
   headlight lights under the pointer or with the focus; the figures of the city under the truck);
   the exits, every city from A to Z on green exit signs. The gauge works without a script. No
   image: trucks, wheels, shields and signs are drawn in CSS.
   ======================================================================== */
:root{--cvy-asphalt:#30363b;--cvy-lane:#f1f1ec;--cvy-box:#fbfbf8;--cvy-box-edge:#1b1f22;--cvy-paint:#15181a;--cvy-paint-2:#633d23;--cvy-cab:#d4610c;--cvy-glass:#bcd6e6;
  --cvy-wheel:#15181a;--cvy-hub:#b8bec3;--cvy-load:rgba(212,97,12,.24);--cvy-load-line:#a34a06;--cvy-base:#15181a;--cvy-sign:#0b5a37;--cvy-sign-ink:#ffffff;--cvy-steel:#8b939a;
  --cvy-shield:#1d3f8f;--cvy-shield-top:#b4202b;--cvy-shield-ink:#ffffff;--cvy-dash:#1c2125;--cvy-dash-ink:#eef1f3;--cvy-dash-dim:#a9b2ba;--cvy-dash-key:#2a3035;--cvy-dash-line:#454e55;
  --cvy-dash-on:#ff8d0c;--cvy-dash-on-ink:#111416;--cvy-fig-ink:#eef1f3;--cvy-fig-dim:#bcc4ca;--cvy-light:#ffd36b;--cvy-light-glow:rgba(255,211,107,.55)}
[data-theme="dark"]{--cvy-asphalt:#1f2427;--cvy-lane:#c9cfd3;--cvy-box:#eef0ec;--cvy-steel:#6c747b;--cvy-dash:#0b0d0f;--cvy-dash-key:#1f2428;--cvy-dash-line:#3a4248}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){--cvy-asphalt:#1f2427;--cvy-lane:#c9cfd3;--cvy-box:#eef0ec;--cvy-steel:#6c747b;--cvy-dash:#0b0d0f;--cvy-dash-key:#1f2428;--cvy-dash-line:#3a4248}
}
html{scroll-padding-top:var(--cvy-pad,5rem)}
@media (max-width:47.99rem){html{scroll-padding-top:var(--cvy-pad,11.5rem)}}
@media (min-width:48rem){.cvy-highway,.cvy-exits{scroll-margin-top:10rem}}
.prose h2,.prose h3{scroll-margin-top:0}
.brand__mark{border-radius:.3rem;font-family:var(--serif);font-weight:400}
@media (max-width:47.99rem){.brand{flex:1 1 0}.brand__name{white-space:normal;overflow:visible;line-height:1.15}}
.reading-progress{height:5px}
.reading-progress__bar{position:relative;background-color:var(--cvy-cab)}

.cvy-gantry{padding:clamp(1.4rem,3.5vw,2.4rem) 0 0}
.cvy-gantry__frame{position:relative;padding-top:1.5rem}
.cvy-gantry__frame::before{content:'';position:absolute;top:0;left:clamp(1rem,4vw,2rem);right:clamp(1rem,4vw,2rem);height:.95rem;border-top:.18rem solid var(--cvy-steel);border-bottom:.18rem solid var(--cvy-steel);
  background:repeating-linear-gradient(60deg,transparent 0 .5rem,var(--cvy-steel) .5rem .66rem,transparent .66rem 1.1rem)}
.cvy-gantry__signs{display:grid;grid-template-columns:minmax(0,1fr);gap:.9rem}
.cvy-sign{position:relative;box-sizing:border-box;min-width:0;margin:0;padding:1.3rem 1.5rem 1.4rem;background-color:var(--cvy-sign);color:var(--cvy-sign-ink);border-radius:.75rem;
  box-shadow:inset 0 0 0 .3rem var(--cvy-sign),inset 0 0 0 .46rem var(--cvy-sign-ink),0 14px 22px -18px rgba(0,0,0,.7)}
.cvy-sign::before,.cvy-sign::after{content:'';position:absolute;top:-1.5rem;width:.32rem;height:1.5rem;background-color:var(--cvy-steel)}
.cvy-sign::before{left:16%}
.cvy-sign::after{right:16%}
.cvy-sign__tab{display:inline-block;max-width:100%;margin:0 0 .8rem;padding:.12rem .6rem;border:2px solid var(--cvy-sign-ink);border-radius:.35rem;font-family:var(--mono);font-weight:700;font-size:.86rem;line-height:1.35;letter-spacing:.09em;text-transform:uppercase;overflow-wrap:anywhere}
.cvy-sign__title{max-width:22ch;margin:0 0 .75rem;font-family:var(--serif);font-weight:400;font-size:clamp(2.1rem,5.4vw,3.9rem);line-height:1.04;letter-spacing:.005em;color:var(--cvy-sign-ink);overflow-wrap:anywhere}
.cvy-sign__lede{max-width:46rem;margin:0;font-size:clamp(1rem,1.5vw,1.13rem);line-height:1.55;color:var(--cvy-sign-ink)}
.cvy-sign--count{display:grid;align-content:center;gap:0;padding-top:1rem;padding-bottom:1rem}
.cvy-census__item{display:flex;align-items:center;gap:.75rem;min-width:0;padding:.45rem 0;border-bottom:1px solid rgba(255,255,255,.4)}
.cvy-census__item:last-child{border-bottom:0}
.cvy-census__item::after{content:'\2193';content:'\2193' / '';margin-left:auto;font-size:1.5rem;line-height:1}
.cvy-census dd{order:-1;margin:0;font-family:var(--serif);font-size:2.1rem;line-height:1;color:var(--cvy-sign-ink)}
.cvy-census dt{font-family:var(--mono);font-weight:700;font-size:.86rem;line-height:1.3;letter-spacing:.08em;text-transform:uppercase;color:var(--cvy-sign-ink);overflow-wrap:anywhere}
@media (min-width:56rem){.cvy-gantry__signs{grid-template-columns:minmax(0,1fr) minmax(0,16rem)}}

.cvy-dash-wrap{position:relative;z-index:5;margin:1.4rem 0 0;background-color:var(--cvy-dash);color:var(--cvy-dash-ink);box-shadow:0 10px 18px -16px rgba(0,0,0,.8)}
@media (min-width:48rem){.cvy-dash-wrap{position:sticky;top:var(--cvy-bar,4.2rem)}}
.cvy-dash{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem 1.3rem;padding-top:.55rem;padding-bottom:.6rem}
.cvy-dash__title{margin:0;font-family:var(--mono);font-weight:700;font-size:.84rem;line-height:1.3;letter-spacing:.12em;text-transform:uppercase;color:var(--cvy-dash-dim)}
.cvy-dial{position:relative;display:block;flex:none;width:3.6rem;height:1.9rem;overflow:hidden}
.cvy-dial::before{content:'';position:absolute;left:0;top:0;box-sizing:border-box;width:3.6rem;height:3.6rem;border:.28rem solid var(--cvy-dash-line);border-radius:50%;
  background:conic-gradient(from 270deg,var(--cvy-dash-dim) 0 1deg,transparent 1deg 44deg,var(--cvy-dash-dim) 44deg 46deg,transparent 46deg 89deg,var(--cvy-dash-dim) 89deg 91deg,transparent 91deg 134deg,var(--cvy-dash-dim) 134deg 136deg,transparent 136deg 179deg,var(--cvy-dash-dim) 179deg 180deg,transparent 180deg)}
.cvy-dial__needle{position:absolute;left:calc(50% - .09rem);bottom:0;width:.18rem;height:1.55rem;border-radius:.1rem;background-color:var(--cvy-dash-on);transform-origin:50% 100%;transform:rotate(-60deg)}
.cvy-dial__needle::after{content:'';position:absolute;left:-.2rem;bottom:-.2rem;width:.58rem;height:.58rem;border-radius:50%;background-color:var(--cvy-dash-ink)}
.cvy-gauge{min-width:0;margin:0;padding:0;border:0}
.cvy-gauge__legend{float:left;margin:0 .8rem 0 0;padding:0;font-size:.88rem;line-height:44px;color:var(--cvy-dash-dim)}
.cvy-gauge__input{position:absolute;width:1px;height:1px;margin:0;opacity:0}
.cvy-gauge__key{display:inline-flex;align-items:center;box-sizing:border-box;min-height:44px;margin:.1rem .25rem .1rem 0;padding:.2rem .85rem;border:1px solid var(--cvy-dash-line);border-radius:.5rem;
  background-color:var(--cvy-dash-key);font-family:var(--mono);font-weight:700;font-size:.92rem;line-height:1.2;color:var(--cvy-dash-ink);cursor:pointer;overflow-wrap:anywhere}
.cvy-gauge__key::before{content:'';flex:none;width:.55rem;height:.55rem;margin-right:.5rem;border-radius:50%;background-color:var(--cvy-dash-line)}
.cvy-gauge__input:checked+.cvy-gauge__key{border-color:var(--cvy-dash-on);background-color:var(--cvy-dash-on);box-shadow:0 0 0 3px rgba(255,141,12,.32);color:var(--cvy-dash-on-ink)}
.cvy-gauge__input:checked+.cvy-gauge__key::before{background-color:var(--cvy-dash-on-ink)}
.cvy-gauge__input:focus-visible+.cvy-gauge__key{outline:3px solid #fff;outline-offset:2px}
.cvy-dash__key{flex:1 1 20rem;margin:0;font-size:.84rem;line-height:1.4;color:var(--cvy-dash-dim)}
.cvy-scope:has(.cvy-gauge__input[value="2"]:checked) .cvy-dial__needle{transform:rotate(0deg)}
.cvy-scope:has(.cvy-gauge__input[value="3"]:checked) .cvy-dial__needle{transform:rotate(60deg)}
.cvy-scope:has(.cvy-gauge__input[value="4"]:checked) .cvy-dial__needle{transform:rotate(80deg)}

.cvy-highway{padding:clamp(1.5rem,3vw,2.4rem) 0 clamp(2rem,4vw,3rem)}
.cvy-highway__head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:.2rem 1.5rem;margin:0 0 1.1rem}
.cvy-highway__title,.cvy-exits__title{margin:0;font-family:var(--serif);font-weight:400;font-size:clamp(1.7rem,3.2vw,2.3rem);line-height:1.1}
.cvy-highway__note{margin:0;font-family:var(--mono);font-size:.86rem;line-height:1.4;color:var(--ink-3);overflow-wrap:anywhere}
.cvy-empty{margin:2rem 0;color:var(--ink-2)}
.cvy-road{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,27rem),1fr));gap:2rem 1.6rem;margin:0;padding:0;list-style:none}
.cvy-convoy{display:flex;flex-direction:column;min-width:0;margin:0}
.cvy-convoy__head{display:grid;grid-template-columns:auto minmax(0,1fr);column-gap:.9rem;align-items:start;margin:0 0 .9rem}
.cvy-convoy--plain .cvy-convoy__head{grid-template-columns:minmax(0,1fr);margin:0}
.cvy-convoy__title{margin:0;font-family:var(--serif);font-weight:400;font-size:1.32rem;line-height:1.22}
.cvy-convoy__link{display:inline-flex;align-items:center;min-height:44px;color:var(--ink);text-decoration:none;overflow-wrap:anywhere}
.cvy-convoy__link:hover{color:var(--accent);text-decoration:underline;text-decoration-thickness:.07em;text-underline-offset:.14em}
.cvy-convoy__desc{grid-column:2;margin:.3rem 0 0;font-size:.93rem;line-height:1.45;color:var(--ink-2)}
.cvy-convoy__count{margin:.5rem 0 0;font-family:var(--mono);font-size:.84rem;line-height:1.4;color:var(--ink-3)}

.cvy-shield{position:relative;grid-row:span 2;display:flex;flex-direction:column;align-items:center;box-sizing:border-box;width:3.4rem;height:3.7rem;margin:0;padding:0;overflow:hidden;
  background-color:var(--cvy-shield);color:var(--cvy-shield-ink);border:.17rem solid var(--cvy-shield-ink);border-radius:.6rem .6rem 50% 50% / .6rem .6rem 44% 44%;box-shadow:0 0 0 .12rem var(--cvy-shield);text-align:center}
.cvy-shield__k{display:block;width:100%;padding:.2rem 0 .14rem;background-color:var(--cvy-shield-top);font-family:var(--mono);font-weight:700;font-size:.6rem;line-height:1;letter-spacing:.08em;text-transform:uppercase}
.cvy-shield__no{display:block;margin-top:.18rem;font-family:var(--serif);font-size:1.5rem;line-height:1}
.cvy-shield--big{width:4.5rem;height:4.9rem}
.cvy-shield--big .cvy-shield__k{padding:.28rem 0 .2rem;font-size:.74rem}
.cvy-shield--big .cvy-shield__no{margin-top:.25rem;font-size:2.1rem}

.cvy-trucks{--cvy-min:10.5rem;margin:auto 0 0;padding:.6rem .7rem .5rem;list-style:none;border-radius:.55rem;background-color:var(--cvy-asphalt);
  box-shadow:inset 0 .3rem 0 var(--cvy-asphalt),inset 0 .45rem 0 var(--cvy-lane),inset 0 -.3rem 0 var(--cvy-asphalt),inset 0 -.45rem 0 var(--cvy-lane)}
.cvy-truck{position:relative;min-width:0;margin:0;padding:.7rem 0 .55rem}
.cvy-truck+.cvy-truck{background:linear-gradient(90deg,var(--cvy-lane) 0 55%,transparent 55% 100%) left top / 1.7rem 2px repeat-x}
.cvy-truck__link{position:relative;display:flex;align-items:flex-end;box-sizing:border-box;width:calc(var(--cvy-min) + (100% - var(--cvy-min)) * var(--l,0) / 20);min-width:var(--cvy-min);max-width:100%;
  min-height:44px;padding-bottom:.66rem;color:var(--cvy-paint);text-decoration:none}
.cvy-truck__link::after{content:'';position:absolute;left:0;right:0;bottom:0;height:1.3rem;pointer-events:none;
  background:radial-gradient(circle closest-side,var(--cvy-hub) 0 34%,var(--cvy-wheel) 38% 94%,transparent 100%) left .9rem bottom 0 / 1.3rem 1.3rem no-repeat,
    radial-gradient(circle closest-side,var(--cvy-hub) 0 34%,var(--cvy-wheel) 38% 94%,transparent 100%) left 2.35rem bottom 0 / 1.3rem 1.3rem no-repeat,
    radial-gradient(circle closest-side,var(--cvy-hub) 0 34%,var(--cvy-wheel) 38% 94%,transparent 100%) right .65rem bottom 0 / 1.3rem 1.3rem no-repeat}
.cvy-truck__box{position:relative;display:flex;align-items:flex-start;flex:1 1 auto;box-sizing:border-box;min-width:0;min-height:4.6rem;padding:.3rem .5rem;overflow:hidden;
  background-color:var(--cvy-box);border:2px solid var(--cvy-box-edge);border-radius:.3rem .18rem .18rem .3rem}
.cvy-truck__box::before{content:'';display:none;position:absolute;left:0;right:0;bottom:50%;border-top:2px dashed var(--cvy-base);opacity:.5}
.cvy-truck__load{display:none;position:absolute;left:0;right:0;bottom:0;height:0;background-color:var(--cvy-load);border-top:3px solid var(--cvy-load-line)}
.cvy-scope:has(.cvy-gauge__input:checked) .cvy-truck__box::before,.cvy-scope:has(.cvy-gauge__input:checked) .cvy-truck__load{display:block}
.cvy-truck__paint{position:relative;display:flex;flex-direction:column;min-width:0;padding:.08rem .35rem .14rem;border-radius:.2rem;background-color:var(--cvy-box)}
.cvy-truck__to{font-family:var(--mono);font-weight:700;font-size:.68rem;line-height:1.2;letter-spacing:.1em;text-transform:uppercase;color:var(--cvy-paint-2)}
.cvy-truck__city{font-family:var(--serif);font-size:1.2rem;line-height:1.1;letter-spacing:.015em;text-transform:uppercase;color:var(--cvy-paint);overflow-wrap:anywhere}
.cvy-truck__cab{position:relative;flex:none;box-sizing:border-box;width:2.9rem;height:3.4rem;margin-left:.16rem;background-color:var(--cvy-cab);border:2px solid var(--cvy-box-edge);border-radius:.35rem 1.1rem .3rem .2rem}
.cvy-truck__cab::before{content:'';position:absolute;right:.32rem;top:.32rem;box-sizing:border-box;width:1.2rem;height:1.05rem;background-color:var(--cvy-glass);border:2px solid var(--cvy-box-edge);border-radius:.15rem .65rem .1rem .1rem}
.cvy-truck__cab::after{content:'';position:absolute;right:-.2rem;bottom:.42rem;width:.5rem;height:.5rem;border-radius:50%;background-color:var(--cvy-box-edge)}
.cvy-truck__link:hover .cvy-truck__city{text-decoration:underline;text-decoration-thickness:.07em;text-underline-offset:.14em}
.cvy-truck__link:hover .cvy-truck__cab::after,.cvy-truck__link:focus-visible .cvy-truck__cab::after,.cvy-truck__link.is-active .cvy-truck__cab::after{background-color:var(--cvy-light);box-shadow:0 0 0 .2rem var(--cvy-light-glow),.7rem 0 1rem .35rem var(--cvy-light-glow)}
.cvy-truck__link:focus-visible{outline:3px solid var(--cvy-light);outline-offset:3px;border-radius:.4rem}
.cvy-truck__link.is-active .cvy-truck__box{box-shadow:0 0 0 3px var(--cvy-light)}
.cvy-truck__figs{margin:.3rem 0 0;font-family:var(--mono);font-size:.82rem;line-height:1.4;color:var(--cvy-fig-dim);overflow-wrap:anywhere}
.cvy-fig{display:none}
.cvy-fig--people{display:inline}
.cvy-fig+.cvy-fig::before{content:'\00b7';content:'\00b7' / '';margin:0 .45rem}
.cvy-fig__v{font-weight:700;color:var(--cvy-fig-ink)}
.cvy-l0{--l:0}.cvy-l1{--l:1}.cvy-l2{--l:2}.cvy-l3{--l:3}.cvy-l4{--l:4}.cvy-l5{--l:5}.cvy-l6{--l:6}.cvy-l7{--l:7}.cvy-l8{--l:8}.cvy-l9{--l:9}.cvy-l10{--l:10}.cvy-l11{--l:11}.cvy-l12{--l:12}.cvy-l13{--l:13}.cvy-l14{--l:14}.cvy-l15{--l:15}.cvy-l16{--l:16}.cvy-l17{--l:17}.cvy-l18{--l:18}.cvy-l19{--l:19}.cvy-l20{--l:20}
.cvy-m1-s0{--m1:0}.cvy-m1-s1{--m1:1}.cvy-m1-s2{--m1:2}.cvy-m1-s3{--m1:3}.cvy-m1-s4{--m1:4}.cvy-m1-s5{--m1:5}.cvy-m1-s6{--m1:6}.cvy-m1-s7{--m1:7}.cvy-m1-s8{--m1:8}.cvy-m1-s9{--m1:9}.cvy-m1-s10{--m1:10}.cvy-m1-s11{--m1:11}.cvy-m1-s12{--m1:12}.cvy-m1-s13{--m1:13}.cvy-m1-s14{--m1:14}.cvy-m1-s15{--m1:15}.cvy-m1-s16{--m1:16}.cvy-m1-s17{--m1:17}.cvy-m1-s18{--m1:18}.cvy-m1-s19{--m1:19}.cvy-m1-s20{--m1:20}
.cvy-m2-s0{--m2:0}.cvy-m2-s1{--m2:1}.cvy-m2-s2{--m2:2}.cvy-m2-s3{--m2:3}.cvy-m2-s4{--m2:4}.cvy-m2-s5{--m2:5}.cvy-m2-s6{--m2:6}.cvy-m2-s7{--m2:7}.cvy-m2-s8{--m2:8}.cvy-m2-s9{--m2:9}.cvy-m2-s10{--m2:10}.cvy-m2-s11{--m2:11}.cvy-m2-s12{--m2:12}.cvy-m2-s13{--m2:13}.cvy-m2-s14{--m2:14}.cvy-m2-s15{--m2:15}.cvy-m2-s16{--m2:16}.cvy-m2-s17{--m2:17}.cvy-m2-s18{--m2:18}.cvy-m2-s19{--m2:19}.cvy-m2-s20{--m2:20}
.cvy-m3-s0{--m3:0}.cvy-m3-s1{--m3:1}.cvy-m3-s2{--m3:2}.cvy-m3-s3{--m3:3}.cvy-m3-s4{--m3:4}.cvy-m3-s5{--m3:5}.cvy-m3-s6{--m3:6}.cvy-m3-s7{--m3:7}.cvy-m3-s8{--m3:8}.cvy-m3-s9{--m3:9}.cvy-m3-s10{--m3:10}.cvy-m3-s11{--m3:11}.cvy-m3-s12{--m3:12}.cvy-m3-s13{--m3:13}.cvy-m3-s14{--m3:14}.cvy-m3-s15{--m3:15}.cvy-m3-s16{--m3:16}.cvy-m3-s17{--m3:17}.cvy-m3-s18{--m3:18}.cvy-m3-s19{--m3:19}.cvy-m3-s20{--m3:20}
.cvy-m4-s0{--m4:0}.cvy-m4-s1{--m4:1}.cvy-m4-s2{--m4:2}.cvy-m4-s3{--m4:3}.cvy-m4-s4{--m4:4}.cvy-m4-s5{--m4:5}.cvy-m4-s6{--m4:6}.cvy-m4-s7{--m4:7}.cvy-m4-s8{--m4:8}.cvy-m4-s9{--m4:9}.cvy-m4-s10{--m4:10}.cvy-m4-s11{--m4:11}.cvy-m4-s12{--m4:12}.cvy-m4-s13{--m4:13}.cvy-m4-s14{--m4:14}.cvy-m4-s15{--m4:15}.cvy-m4-s16{--m4:16}.cvy-m4-s17{--m4:17}.cvy-m4-s18{--m4:18}.cvy-m4-s19{--m4:19}.cvy-m4-s20{--m4:20}
.cvy-scope:has(.cvy-gauge__input[value="1"]:checked) .cvy-truck__load{height:calc(var(--m1,0) * 5%)}
.cvy-scope:has(.cvy-gauge__input[value="1"]:checked) .cvy-fig--m1{display:inline}
.cvy-scope:has(.cvy-gauge__input[value="1"]:checked) .cvy-m1-none .cvy-truck__box{border-style:dashed}
.cvy-scope:has(.cvy-gauge__input[value="1"]:checked) .cvy-m1-none .cvy-truck__load{display:none}
.cvy-scope:has(.cvy-gauge__input[value="2"]:checked) .cvy-truck__load{height:calc(var(--m2,0) * 5%)}
.cvy-scope:has(.cvy-gauge__input[value="2"]:checked) .cvy-fig--m2{display:inline}
.cvy-scope:has(.cvy-gauge__input[value="2"]:checked) .cvy-m2-none .cvy-truck__box{border-style:dashed}
.cvy-scope:has(.cvy-gauge__input[value="2"]:checked) .cvy-m2-none .cvy-truck__load{display:none}
.cvy-scope:has(.cvy-gauge__input[value="3"]:checked) .cvy-truck__load{height:calc(var(--m3,0) * 5%)}
.cvy-scope:has(.cvy-gauge__input[value="3"]:checked) .cvy-fig--m3{display:inline}
.cvy-scope:has(.cvy-gauge__input[value="3"]:checked) .cvy-m3-none .cvy-truck__box{border-style:dashed}
.cvy-scope:has(.cvy-gauge__input[value="3"]:checked) .cvy-m3-none .cvy-truck__load{display:none}
.cvy-scope:has(.cvy-gauge__input[value="4"]:checked) .cvy-truck__load{height:calc(var(--m4,0) * 5%)}
.cvy-scope:has(.cvy-gauge__input[value="4"]:checked) .cvy-fig--m4{display:inline}
.cvy-scope:has(.cvy-gauge__input[value="4"]:checked) .cvy-m4-none .cvy-truck__box{border-style:dashed}
.cvy-scope:has(.cvy-gauge__input[value="4"]:checked) .cvy-m4-none .cvy-truck__load{display:none}
.cvy-exits{padding:0 0 clamp(3rem,6vw,5rem)}
.cvy-exits__note{max-width:46rem;margin:.5rem 0 1.1rem;color:var(--ink-2)}
.cvy-exits__list{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,12.5rem),1fr));gap:.6rem;margin:0;padding:0;list-style:none}
.cvy-exits__list li{min-width:0;margin:0}
.cvy-exit{display:flex;flex-direction:column;align-items:flex-start;gap:.3rem;box-sizing:border-box;height:100%;min-height:48px;padding:.6rem .8rem .7rem;background-color:var(--cvy-sign);color:var(--cvy-sign-ink);border-radius:.5rem;
  box-shadow:inset 0 0 0 .16rem var(--cvy-sign),inset 0 0 0 .28rem var(--cvy-sign-ink);text-decoration:none}
.cvy-exit__tab{padding:.04rem .45rem;border:2px solid var(--cvy-sign-ink);border-radius:.3rem;font-family:var(--mono);font-weight:700;font-size:.74rem;line-height:1.3;letter-spacing:.08em;text-transform:uppercase}
.cvy-exit__name{font-family:var(--serif);font-size:1.18rem;line-height:1.15;overflow-wrap:anywhere}
.cvy-exit:hover .cvy-exit__name{text-decoration:underline;text-decoration-thickness:.07em;text-underline-offset:.14em}
.cvy-exit:focus-visible{outline:3px solid var(--focus);outline-offset:3px}
.cvy-turn{display:block;margin:2rem 0 0;padding:0;border:0}
.cvy-turn .nav-links{display:flex;flex-wrap:wrap;gap:.5rem;margin:0;padding:0}
.cvy-turn .page-numbers{display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;min-width:48px;min-height:44px;height:auto;margin:0;padding:0 1rem;background:var(--cvy-sign);border:1px solid var(--cvy-sign);border-radius:.45rem;
  font-family:var(--serif);font-size:1.05rem;line-height:1.2;color:var(--cvy-sign-ink);text-decoration:none;overflow-wrap:anywhere}
.cvy-turn .page-numbers.current{background:var(--cvy-dash-on);border-color:var(--cvy-dash-on);color:var(--cvy-dash-on-ink)}
.cvy-turn a.page-numbers:hover{text-decoration:underline}
.cvy-turn .page-numbers.dots{border-color:transparent;background:none;color:var(--ink)}

/* ========================================================================
   29. ONE CONVOY, ON THE ROAD
   A guide: the trail; the head (the shield with the number of the guide as on the highway, the
   title, the date and how many cities it covers); the convoy of the guide on its own road across
   the page, with the load gauge; then the trip sheet (every section, the cities marked with a
   small truck; the section on screen is lit) beside the text on a wide screen and before it on a
   narrow one; the guide; at the END the note, the convoys before and after, the way back. The
   reading bar is an orange stripe across the top of the screen.
   ======================================================================== */
.cvy-trail{padding-top:1.2rem}
.cvy-trail__list{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:0 .5rem;font-family:var(--mono);font-size:.9rem;color:var(--ink-2)}
.cvy-trail__list li{display:flex;align-items:center;min-height:44px;margin:0;min-width:0;overflow-wrap:anywhere}
.cvy-trail__list li+li::before{content:'\203A';content:'\203A' / '';margin-right:.5rem;color:var(--ink-3)}
.cvy-trail__list a{display:inline-flex;align-items:center;min-height:44px}
.cvy-haul__head{display:grid;grid-template-columns:auto minmax(0,1fr);column-gap:1.1rem;align-items:start;padding-top:.5rem;padding-bottom:1.3rem}
.cvy-haul__title{max-width:26ch;margin:0 0 .6rem;font-family:var(--serif);font-weight:400;font-size:clamp(1.9rem,4.4vw,3.2rem);line-height:1.08;overflow-wrap:anywhere}
.cvy-haul__meta{grid-column:2;margin:0;font-size:.95rem;color:var(--ink-3)}
.cvy-haul__road{padding:1.1rem 0 1.2rem;background-color:var(--cvy-dash);color:var(--cvy-dash-ink)}
.cvy-haul__dash{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.4rem 1.4rem;margin:0 0 .8rem}
.cvy-haul__sub{margin:0;font-family:var(--serif);font-weight:400;font-size:1.4rem;line-height:1.2;color:var(--cvy-dash-ink)}
.cvy-trucks--road{--cvy-min:12rem}
.cvy-haul__key{margin:.65rem 0 0;font-size:.85rem;line-height:1.4;color:var(--cvy-dash-dim)}
.cvy-haul__grid{display:grid;grid-template-columns:minmax(0,1fr);gap:1.4rem;padding-top:1.7rem}
.cvy-haul__body{min-width:0}
.cvy-sheet{min-width:0}
.cvy-sheet__title{margin:0 0 .55rem;font-family:var(--serif);font-weight:400;font-size:1.35rem;line-height:1.2}
.cvy-sheet__list{margin:0;padding:0;list-style:none;border-top:2px solid var(--ink)}
.cvy-sheet__list li{margin:0;border-bottom:1px solid var(--rule)}
.cvy-sheet__link{display:flex;align-items:center;gap:.65rem;box-sizing:border-box;min-height:44px;padding:.4rem 0;font-size:.98rem;line-height:1.3;color:var(--ink-2);text-decoration:none;overflow-wrap:anywhere}
.cvy-sheet__link--stop{font-weight:600;color:var(--ink)}
.cvy-sheet__link:hover{color:var(--accent);text-decoration:underline;text-decoration-thickness:.07em;text-underline-offset:.14em}
.cvy-sheet__link.is-active{font-weight:800;color:var(--accent)}
.cvy-sheet__truck{position:relative;flex:none;width:2.1rem;height:1.05rem;margin-bottom:.25rem;border-radius:.12rem;
  background:linear-gradient(var(--cvy-box),var(--cvy-box)) left top / 1.35rem .85rem no-repeat,linear-gradient(var(--cvy-cab),var(--cvy-cab)) right .05rem bottom .2rem / .62rem .6rem no-repeat}
.cvy-sheet__truck::before{content:'';position:absolute;left:0;top:0;box-sizing:border-box;width:1.35rem;height:.85rem;border:2px solid var(--cvy-box-edge);border-radius:.12rem}
.cvy-sheet__truck::after{content:'';position:absolute;left:.15rem;right:.1rem;bottom:-.24rem;height:.42rem;
  background:radial-gradient(circle closest-side,var(--cvy-wheel) 0 90%,transparent 100%) left 0 bottom 0 / .42rem .42rem no-repeat,radial-gradient(circle closest-side,var(--cvy-wheel) 0 90%,transparent 100%) right 0 bottom 0 / .42rem .42rem no-repeat}
.cvy-sheet__link.is-active .cvy-sheet__truck{filter:drop-shadow(.3rem 0 .25rem var(--cvy-light))}
@media (min-width:72rem){
  .cvy-haul__grid{grid-template-columns:minmax(0,var(--measure)) minmax(0,21rem);justify-content:space-between;column-gap:clamp(2.5rem,6vw,5rem);align-items:start}
  .cvy-haul__grid>.cvy-sheet{grid-column:2;grid-row:1;position:sticky;top:calc(var(--cvy-bar,4.2rem) + 1.1rem);box-sizing:border-box;max-height:calc(100vh - var(--cvy-bar,4.2rem) - 2.2rem);overflow:auto;overscroll-behavior:contain}
  .cvy-haul__grid>.cvy-haul__body{grid-column:1;grid-row:1}
}
.cvy-haul__body .prose,.cvy-haul__end>*{max-width:var(--measure)}
.cvy-haul__end{margin-top:2.5rem;padding-bottom:clamp(3rem,6vw,5rem)}
.prose table{font-variant-numeric:tabular-nums}
.prose th{font-weight:700;color:var(--ink);background-color:var(--paper-2)}
.prose td:first-child{font-weight:600;color:var(--ink)}
.prose iframe,.prose embed,.prose object{display:block;max-width:100%}
@media (max-width:47.99rem){
  .prose table{display:block;max-width:100%;overflow-x:auto;font-size:.88rem}
  .prose th,.prose td{min-width:5.5rem;padding:.5rem .45rem}
}
.cvy-split .post-page-numbers{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px}
.cvy-near{display:grid;grid-template-columns:minmax(0,1fr);gap:.8rem;margin-top:2.2rem}
@media (min-width:36rem){.cvy-near{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}
.cvy-near__link{display:flex;flex-direction:column;gap:.3rem;box-sizing:border-box;min-height:48px;padding:.7rem .9rem .9rem;background:var(--card);border:1px solid var(--rule);border-left:.45rem solid var(--cvy-shield);border-radius:.5rem;color:var(--ink);text-decoration:none}
.cvy-near__k{font-family:var(--mono);font-size:.8rem;line-height:1.3;letter-spacing:.06em;text-transform:uppercase;color:var(--accent-2);overflow-wrap:anywhere}
.cvy-near__name{font-family:var(--serif);font-size:1.12rem;line-height:1.25;overflow-wrap:anywhere}
.cvy-near__link:hover .cvy-near__name{text-decoration:underline;text-decoration-thickness:.07em;text-underline-offset:.14em}
.cvy-near__link:focus-visible{outline:3px solid var(--focus);outline-offset:2px}
.cvy-back{margin:2rem 0 0;font-family:var(--serif);font-size:1.15rem}
.cvy-back a{display:inline-flex;align-items:center;min-height:44px}
@media (forced-colors:active){
  .cvy-sign,.cvy-exit,.cvy-shield,.cvy-trucks,.cvy-truck__box,.cvy-truck__cab,.cvy-gauge__key,.cvy-near__link{border:1px solid CanvasText}
  .cvy-gauge__input:checked+.cvy-gauge__key{background-color:Highlight;color:HighlightText;forced-color-adjust:none}
  .cvy-truck__load{border-top-color:CanvasText}
}
@media print{
  .cvy-dash-wrap,.cvy-turn,.cvy-haul__road,.cvy-sheet,.cvy-near,.cvy-back,.cvy-exits{display:none}
  .cvy-sign,.cvy-exit{background:none;color:#000;box-shadow:none;border:1px solid #000}
  .cvy-trucks{background:none;box-shadow:none}
  .cvy-truck__figs,.cvy-fig__v{color:#000}
  .cvy-fig{display:inline}
}

/* ========================================================================
   26. PRINT
   ======================================================================== */
@media print{
  .topbar,.site-footer,.meta-rail,.toc-drawer,.reading-progress,.post-nav,.comments-area,.skip-link{display:none!important}
  html:root:root{--paper:#fff;--paper-2:#fff;--card:#fff;--ink:#000;--ink-2:#222;--ink-3:#444;--rule:#999;--accent:#000;--accent-2:#000;--link:#000;--warn:#000;--safe:#000}
  body{background:#fff;color:#000}
  .article-shell{display:block;padding:0}
  .article-main{max-width:none}
  a{color:inherit;text-decoration:underline}
  .prose h2,.prose h3{break-after:avoid}
  .prose img{max-width:100%;break-inside:avoid}
}

/* ========================================================================
   27. GLOBAL REDUCED MOTION OVERRIDE (WD-16 safety net)
   ======================================================================== */
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{
    animation-duration:.001ms!important;
    animation-iteration-count:1!important;
    transition-duration:.001ms!important;
    scroll-behavior:auto!important;
  }
}
