/* Public Knowledge Base (generated by tools/build_knowledge.py). Builds on gb.css tokens and blog.css (.btop, .prose, .pcard, .cta).
   Evidence ladder colours: established/supported green, grower practice gold, contested amber, myth red. */
:root{--kb-crit-text:#8E2A20;--kb-crit-wash:#F6DEDA;--kb-amber-wash:#F5E3C8}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){--kb-crit-text:#F3A79C;--kb-crit-wash:#3A1F1B;--kb-amber-wash:#3A2C1A}}
:root[data-theme="dark"]{--kb-crit-text:#F3A79C;--kb-crit-wash:#3A1F1B;--kb-amber-wash:#3A2C1A}
:root[data-theme="seed"]{--kb-crit-text:#F6B3A8;--kb-crit-wash:#4A231D;--kb-amber-wash:#45301B}

.kb .btop nav .kb-navlink{font-weight:600;color:var(--ink)}
.kb-main{padding-block:28px 56px}
.kb-crumbs ol{list-style:none;margin:0 0 18px;padding:0;display:flex;flex-wrap:wrap;gap:4px 8px;font-size:.86rem;color:var(--ink-3)}
.kb-crumbs li{min-width:0}
.kb-crumbs li+li::before{content:"/";margin-right:8px;color:var(--line)}
.kb-crumbs a{color:var(--ink-2)}
.kb-crumbs [aria-current]{color:var(--ink-3);overflow-wrap:anywhere}

.kb-head{display:grid;gap:14px;max-width:880px;margin-bottom:26px}
.kb-head h1{font-size:clamp(2rem,5vw,3.6rem);font-weight:450;letter-spacing:-.03em;line-height:1.02;font-variation-settings:"WONK" 1}
.kb-head .lede{font-size:1.12rem;max-width:68ch;color:var(--ink-2);margin:0}
.kb-meta{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px}
.kb-chips{display:flex;flex-wrap:wrap;gap:6px}
.kb-chips .sys{background:var(--green-wash);color:var(--green-text)}
.kb-updated{font-size:.88rem;color:var(--ink-3)}
.kb-status{font:600 .78rem var(--f-ui);padding:4px 10px;border-radius:var(--r-pill);border:1px dashed var(--line);color:var(--ink-2)}
.kb-status.ok{border-style:solid;border-color:color-mix(in srgb,var(--ok) 50%,var(--line));color:var(--ok-text);background:color-mix(in srgb,var(--ok) 10%,var(--paper))}

/* Evidence badge + ladder */
.kb-ev{display:inline-flex;align-items:center;gap:7px;font-family:var(--f-mono);font-size:var(--fs-read);font-weight:600;letter-spacing:.06em;text-transform:uppercase;padding:4px 10px 4px 8px;border-radius:var(--r-pill);white-space:nowrap;border:1px solid transparent}
.kb-ev i{width:10px;height:10px;border-radius:3px;background:currentColor}
.ev-established.kb-ev{background:var(--green-wash);color:var(--green-text);border-color:color-mix(in srgb,var(--green) 45%,transparent)}
.ev-supported.kb-ev{background:color-mix(in srgb,var(--green-wash) 60%,var(--paper));color:var(--green-text);border-color:color-mix(in srgb,var(--green) 30%,transparent)}
.ev-grower_practice.kb-ev{background:var(--gold-wash);color:var(--gold-deep);border-color:color-mix(in srgb,var(--gold) 45%,transparent)}
.ev-contested.kb-ev{background:var(--kb-amber-wash);color:var(--warn-text);border-color:color-mix(in srgb,var(--warn) 45%,transparent)}
.ev-myth.kb-ev{background:var(--kb-crit-wash);color:var(--kb-crit-text);border-color:color-mix(in srgb,var(--crit) 40%,transparent)}
.kb-ladder{display:inline-flex;align-items:center;gap:10px;flex-wrap:wrap}
.kb-rungs{list-style:none;margin:0;padding:0;display:inline-flex;gap:3px}
.kb-rungs li{width:22px;height:8px;border-radius:3px;background:var(--line-2);border:1px solid var(--line)}
.kb-rungs li span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.kb-rungs li.on{background:currentColor;border-color:currentColor}
.kb-rungs.ev-established,.kb-rungs.ev-supported{color:var(--green)}
.kb-rungs.ev-grower_practice{color:var(--gold)}
.kb-rungs.ev-contested{color:var(--warn)}
.kb-rungs.ev-myth{color:var(--crit)}
.kb-lvl{font-size:.8rem;color:var(--ink-3)}

.kb-review-note{margin:0;padding:10px 14px;border-radius:12px;font-size:.92rem;background:var(--paper);border:1px dashed var(--line);color:var(--ink-2);max-width:68ch}
.kb-review-note b{color:var(--ink)}
.kb-rv{display:inline-block;margin-left:5px;font-family:var(--f-mono);font-size:.62rem;letter-spacing:.06em;text-transform:uppercase;line-height:1.5;padding:0 6px;border-radius:var(--r-pill);border:1px dashed var(--line);color:var(--ink-3);vertical-align:.15em;white-space:nowrap;cursor:help}

/* Article body + side rail */
.kb-layout{display:grid;grid-template-columns:minmax(0,1fr);gap:28px;align-items:start}
@media(min-width:1100px){.kb-layout{grid-template-columns:minmax(0,68ch) 260px;justify-content:space-between}.kb-side{position:sticky;top:84px}}
.kb-prose{padding-bottom:8px}
.kb-prose h2{scroll-margin-top:84px}
.kb-prose .kb-answer{background:var(--green-wash);border:1px solid color-mix(in srgb,var(--green) 40%,var(--line));border-radius:var(--r);padding:16px 18px;color:var(--ink)}
.kb-cite{line-height:0;font-size:.72em;margin-left:1px}
.kb-cite a{text-decoration:none;font-family:var(--f-mono);color:var(--green-text);padding:0 1px}
.kb-cite a:hover{text-decoration:underline}
.kb-side{display:grid;gap:16px;min-width:0}
.kb-toc,.kb-agent,.kb-citeit{background:var(--paper);border:1px solid var(--line);border-radius:var(--r-lg);padding:14px 16px;min-width:0}
.kb-toc ol{list-style:none;margin:8px 0 0;padding:0;display:grid;gap:2px}
.kb-toc a{display:block;padding:5px 8px;border-radius:8px;text-decoration:none;color:var(--ink-2);font-size:.9rem}
.kb-toc a:hover{background:var(--line-2);color:var(--ink)}
.kb-agent{font-size:.9rem}
.kb-agent a,.kb-citeit a{color:var(--green-text)}
.kb-citeit summary{cursor:pointer;font-weight:600}
.kb-citeit p{font-size:.86rem;color:var(--ink-2);margin:8px 0 0}
.kb-citeit .mono{overflow-wrap:anywhere;font-size:.8rem}
@media(max-width:1099px){.kb-toc{display:none}}

.kb-qa,.kb-sources,.kb-related,.kb-helpful{max-width:880px;margin-top:40px}
.kb-qa h2,.kb-sources h2,.kb-related h2,.kb-helpful h2{font-size:clamp(1.5rem,2.6vw,2rem);margin-bottom:14px}
.kb-qa details{border:1px solid var(--line);background:var(--paper);border-radius:var(--r);padding:12px 16px;margin-bottom:8px}
.kb-qa summary{cursor:pointer;font-weight:600}
.kb-qa details p{margin:8px 0 0;color:var(--ink-2)}
.kb-sources ol{margin:0;padding-left:26px;display:grid;gap:8px;max-width:76ch}
.kb-sources li{color:var(--ink-2);font-size:.95rem;scroll-margin-top:84px;overflow-wrap:anywhere}
.kb-sources li:target{background:var(--gold-wash);border-radius:8px;outline:6px solid var(--gold-wash)}
.kb-sources a{color:var(--green-text);margin-left:4px}
.kb-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));gap:12px}
.kb-card{padding:18px 20px;gap:6px}
.kb-card h3{font-size:clamp(1.15rem,1.8vw,1.35rem)}
.kb-card p{font-size:.94rem;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}
.kb-helpful{background:var(--paper);border:var(--sticker-border);box-shadow:var(--sticker-shadow);border-radius:var(--r-lg);padding:clamp(18px,3vw,28px)}
.kb-helpful p{color:var(--ink-2);margin:0 0 14px}
.kb-helpful .btn:not(.btn-primary){border:1.5px solid var(--line);background:var(--paper);color:var(--ink)}
.kb .cta .cta-gl{width:min(200px,50vw);height:auto}

/* Index + category pages */
.kb-hero{margin-bottom:20px}
.kb-hero img{width:min(240px,55vw);height:auto}
.kb-search{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;margin-top:18px;max-width:640px}
.kb-search input{flex:1 1 260px;min-width:0;min-height:48px;padding:10px 16px;border-radius:var(--r-pill);border:1.5px solid var(--line);background:var(--paper);color:var(--ink);font:400 1rem var(--f-ui)}
.kb-search input:focus{outline:none;border-color:var(--green);box-shadow:0 0 0 4px color-mix(in srgb,var(--green) 26%,transparent)}
.kb-hint{font-size:.8rem;color:var(--ink-3)}
.kb-results{list-style:none;margin:0 0 28px;padding:0;display:grid;gap:8px;max-width:880px}
.kb-results a{display:grid;gap:4px;padding:14px 16px;border:1px solid var(--line);border-radius:var(--r);background:var(--paper);text-decoration:none;color:var(--ink)}
.kb-results a:hover{border-color:var(--ink)}
.kb-results span{color:var(--ink-2);font-size:.92rem}
.kb-results em{font-style:normal;font-size:.75rem;color:var(--ink-3)}
.kb-ladder-key{margin:0 0 26px}
.kb-ladder-key ul{list-style:none;margin:10px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:8px 18px}
.kb-ladder-key li{display:flex;align-items:center;gap:8px;font-size:.86rem;color:var(--ink-2)}
.kb-cats{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,220px),1fr));gap:10px;margin-bottom:36px}
.kb-catcard{display:grid;gap:4px;padding:16px 18px;border-radius:var(--r-lg);background:var(--paper);border:1px solid var(--line);text-decoration:none;color:var(--ink);transition:transform .18s ease,box-shadow .18s ease}
.kb-catcard:hover{transform:translate(-2px,-2px);box-shadow:var(--sticker-shadow);border-color:var(--ink)}
.kb-catcard b{font-family:var(--f-display);font-size:1.25rem;font-weight:500}
.kb-catcard span{font-size:.88rem;color:var(--ink-2);line-height:1.45}
.kb-catcard em{font-style:normal;font-family:var(--f-mono);font-size:var(--fs-read);color:var(--green-text)}
.kb-catsec{margin-top:40px}
.kb-cathead{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 16px;margin-bottom:14px}
.kb-cathead h2{font-size:clamp(1.6rem,3vw,2.3rem)}
.kb-cathead h2 a{color:inherit;text-decoration:none}
.kb-cathead p{margin:0;color:var(--ink-3)}
.kb-more,.kb-back a{display:inline-block;margin-top:12px;font-weight:600;color:var(--green-text)}
.kb-grid-list{margin-top:8px}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(max-width:859px){.kb-hero img{width:150px;justify-self:end;margin-top:-8px}}

/* ---------------------------------------------------------------- Glossary (tools/glossary.py, /assets/glossary.js) */
a.gl-term{color:inherit;text-decoration:underline dotted color-mix(in srgb,var(--green) 70%,var(--ink-3));text-decoration-thickness:1.5px;text-underline-offset:3px;cursor:help;border-radius:3px}
a.gl-term:hover,a.gl-term:focus-visible{color:var(--green-text);text-decoration-style:solid;background:color-mix(in srgb,var(--green-wash) 70%,transparent)}
a.gl-term:focus-visible,.gls-chip:focus-visible,.gls-cat:focus-visible,.gls-az a:focus-visible{outline:2px solid var(--green);outline-offset:2px}
.gls-tip{position:absolute;z-index:60;width:max-content;max-width:min(320px,calc(100vw - 24px));box-sizing:border-box;padding:10px 13px 11px;border-radius:12px;background:var(--paper);color:var(--ink-2);border:1.5px solid var(--ink);box-shadow:var(--sticker-shadow);font:400 .9rem/1.45 var(--f-ui);overflow-wrap:anywhere;pointer-events:auto}
.gls-tip[hidden]{display:none}
.gls-tip b{display:block;color:var(--ink);font-family:var(--f-display);font-size:1.02rem;font-weight:550;margin-bottom:2px}
.gls-tip a{display:inline-block;margin-top:6px;font-weight:600;color:var(--green-text)}
@media (prefers-reduced-motion:no-preference){.gls-tip{animation:gls-pop .14s ease-out}}
@keyframes gls-pop{from{opacity:0;transform:translateY(-3px)}to{opacity:1;transform:none}}
.gls-tips[hidden]{display:none}
.gls-entry b{transform:none;letter-spacing:.04em}
.gls-entry{border-color:color-mix(in srgb,var(--green) 45%,var(--line));background:var(--green-wash);color:var(--green-text)}
.gls-entry:hover{border-color:var(--green-text)}
.gls-mbnote{margin:18px 0 0;color:var(--ink-2)}
.gls-mbnote a{color:var(--green-text);font-weight:600}
.gls-hero h1 em{color:var(--green-text)}
.gls-az{position:sticky;top:64px;z-index:5;display:flex;flex-wrap:wrap;gap:2px;margin:6px 0 10px;padding:6px;border-radius:var(--r-lg);background:color-mix(in srgb,var(--paper) 92%,transparent);border:1px solid var(--line);backdrop-filter:blur(6px)}
.gls-az a,.gls-az span{display:inline-grid;place-items:center;min-width:30px;min-height:32px;padding:0 4px;border-radius:8px;font:600 .88rem var(--f-mono);text-decoration:none;color:var(--green-text)}
.gls-az a:hover{background:var(--green-wash)}
.gls-az span,.gls-az a.off{color:var(--ink-3);opacity:.55}
.gls-cats{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 16px}
.gls-cat{display:inline-flex;align-items:center;gap:6px;min-height:36px;padding:5px 12px;border-radius:var(--r-pill);border:1.5px solid var(--line);background:var(--paper);color:var(--ink-2);font:500 .86rem var(--f-ui);cursor:pointer}
.gls-cat span{font-family:var(--f-mono);font-size:.74rem;color:var(--ink-3)}
.gls-cat:hover{border-color:var(--ink)}
.gls-cat[aria-pressed="true"]{background:var(--green-wash);border-color:color-mix(in srgb,var(--green) 55%,var(--line));color:var(--green-text);font-weight:650}
.gls-cat[aria-pressed="true"] span{color:var(--green-text)}
.gls-none{padding:14px 16px;border:1px dashed var(--line);border-radius:var(--r);color:var(--ink-2)}
.gls-none a{color:var(--green-text)}
.gls-letter{margin-top:26px;scroll-margin-top:120px}
.gls-letter h2{font-size:clamp(1.6rem,3vw,2.2rem);margin:0 0 10px;padding-bottom:4px;border-bottom:1px solid var(--line-2)}
.gls-cards{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,290px),1fr));gap:10px}
.gls-results{margin-top:6px}
.gls-card{display:grid;align-content:start;gap:5px;padding:14px 16px;border-radius:var(--r-lg);background:var(--paper);border:1px solid var(--line);scroll-margin-top:120px;min-width:0}
.gls-card:hover{border-color:var(--ink)}
.gls-card:target{border-color:var(--green);box-shadow:0 0 0 3px color-mix(in srgb,var(--green) 25%,transparent)}
.gls-card[hidden]{display:none}
.gls-card>a{display:grid;gap:1px;text-decoration:none;color:var(--ink)}
.gls-card>a b{font-family:var(--f-display);font-size:1.18rem;font-weight:550;line-height:1.2}
.gls-card>a:hover b{text-decoration:underline;color:var(--green-text)}
.gls-akas{font-size:.8rem;color:var(--ink-3);overflow-wrap:anywhere}
.gls-card p{margin:0;font-size:.92rem;color:var(--ink-2);line-height:1.45}
.gls-cn{font-family:var(--f-mono);font-size:.7rem;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3)}
.gls-head h1{overflow-wrap:anywhere}
.gls-short{margin:0;max-width:62ch;font-size:clamp(1.12rem,2.1vw,1.32rem);line-height:1.45;color:var(--ink);padding:14px 18px;border-radius:var(--r);background:var(--green-wash);border:1px solid color-mix(in srgb,var(--green) 40%,var(--line))}
.gls-aka{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:0}
.gls-alias{padding:3px 10px;border-radius:var(--r-pill);border:1px solid var(--line);background:var(--paper);font-size:.86rem;color:var(--ink-2)}
.gls-body h2{font-size:clamp(1.25rem,2.2vw,1.55rem)}
.gls-rel{max-width:880px;margin-top:36px}
.gls-rel h2{font-size:clamp(1.5rem,2.6vw,2rem);margin-bottom:12px}
.gls-chips{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.gls-chip{display:inline-flex;align-items:center;min-height:36px;padding:5px 14px;border-radius:var(--r-pill);border:1.5px solid var(--line);background:var(--paper);color:var(--ink);text-decoration:none;font-weight:500}
.gls-chip:hover{border-color:var(--ink);background:var(--green-wash)}
@media(max-width:600px){.gls-az{top:58px;gap:0;padding:4px}.gls-az a,.gls-az span{min-width:24px;min-height:30px;font-size:.8rem}}
.gls-hero>.gl-live,.gls-hero>img{width:min(220px,55vw)!important;height:auto}
@media(max-width:859px){.gls-hero>.gl-live,.gls-hero>img{width:120px!important;justify-self:end;margin-top:-8px}}
.gls-results[hidden],.gls-none[hidden],.gls-letter[hidden]{display:none}
.kb-qa-list{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.kb-qa-list li{border:1px solid var(--line);background:var(--paper);border-radius:var(--r);padding:12px 16px;display:flex;flex-wrap:wrap;gap:4px 12px;align-items:baseline}
.kb-qa-list li>span:first-child{font-weight:600;flex:1 1 260px;min-width:0;overflow-wrap:anywhere}
.kb-qa-where{color:var(--ink-2);font-size:.92rem;min-width:0;overflow-wrap:anywhere}
