/* guide.css: TikTok Shop Field Guide pages (linked after css/site.css).
   Rules: every class defined here starts with hb- or is on the reuse allowlist in build_guide_site.py.
   Tokens only: no hex / rgb() / rgba() except the allowlisted nav line. No amber anywhere. */

/* ---------- sub hero (copied from about.html's own <style>) ---------- */
.hero.sub{min-height:0}
.sub-hero{position:relative;z-index:2;padding:36px 44px 84px;max-width:1216px;margin-inline:auto}
@media (min-width:821px){.sub-hero{padding-inline:28px}}
.sub-hero .eyebrow{color:var(--link)}
.sub-hero .hb-dot{opacity:.5}
.sub-hero h1.hero-h{font-size:clamp(46px,5.6vw,76px);max-width:16ch;margin-top:22px}
.sub-hero .hero-sub{max-width:640px;margin-top:24px}
.hb-hero-acts{display:flex;flex-wrap:wrap;gap:12px;margin-top:32px}
.nav .links a[aria-current]{color:#fff}
:root{--hb-bar-h:50px}

/* ---------- page grid: sticky left nav + 720px reading column ---------- */
.hb-main{padding:64px 0 64px}
.hb-wrap{display:grid;grid-template-columns:264px minmax(0,720px);gap:72px;justify-content:center;align-items:start}
.hb-side{position:sticky;top:24px;max-height:calc(100vh - 48px);overflow:auto;padding-bottom:8px}
.hb-nav>summary{display:none}
.hb-home,.hb-chg{display:flex;align-items:center;gap:10px;font:700 14px/1.2 var(--font);color:var(--label);text-decoration:none;padding:8px 10px;border-radius:10px}
.hb-home .i,.hb-chg .i{width:17px;height:17px;color:var(--action)}
.hb-home:hover,.hb-chg:hover{background:var(--s2)}
.hb-home[aria-current],.hb-chg[aria-current]{background:var(--selected);color:var(--selected-tx)}
.hb-chg{margin-top:6px}
.hb-chgwrap{margin-top:6px;border-top:1px solid var(--line);padding-top:8px}
.hb-ct{margin-left:auto;font:700 11.5px/1 var(--font);color:var(--label-3);background:var(--s2);padding:5px 8px;border-radius:999px}
.hb-secs{list-style:none;margin:10px 0 6px;padding:0}
.hb-secs>li>a{display:flex;gap:12px;align-items:baseline;padding:7px 10px;border-radius:10px;font:600 15px/1.3 var(--font);color:var(--label-2);text-decoration:none}
.hb-secs>li>a:hover{background:var(--s2);color:var(--label)}
.hb-sn{font:400 14px/1 var(--font-loud);color:var(--label-3);width:20px;flex:none}
.hb-secs>li.hb-on>a{color:var(--label);font-weight:800}
.hb-secs>li.hb-on .hb-sn{color:var(--action)}
.hb-subs{list-style:none;margin:2px 0 10px 20px;padding:0 0 0 12px;border-left:2px solid var(--line)}
.hb-subs a{display:flex;gap:8px;align-items:baseline;padding:4px 10px;margin-left:-14px;border-left:2px solid transparent;font:500 13px/1.35 var(--font);color:var(--label-3);text-decoration:none}
.hb-subn{flex:none;min-width:24px;font:400 13px/1 var(--font-loud);letter-spacing:.03em;color:var(--label-3)}
.hb-subs a.hb-act .hb-subn{color:var(--action)}
.hb-subs a:hover{color:var(--label)}
.hb-subs a.hb-act{color:var(--link);border-left-color:var(--action);font-weight:700}
.hb-side-cta{margin-top:18px;padding:16px 16px 14px;border-radius:14px;background:var(--s1);border:1px solid var(--line)}
.hb-side-cta p{font:500 13.5px/1.5 var(--font);color:var(--label-2);margin:0}
.hb-side-cta b{color:var(--label);display:block;margin-bottom:2px}
.hb-side-cta a{display:inline-flex;align-items:center;gap:6px;margin-top:10px;font:700 13.5px/1 var(--font);color:var(--link);text-decoration:none}
.hb-side-cta .i{width:14px;height:14px}

/* ---------- article column ---------- */
.hb-art{min-width:0}
.hb-crumbs{font:600 13px/1 var(--font);color:var(--label-3);display:flex;gap:8px;flex-wrap:wrap}
.hb-crumbs a{color:var(--link);text-decoration:none}
.hb-lead{font:500 22px/1.5 var(--font);color:var(--label);letter-spacing:-.01em;margin:22px 0 0}
.hb-meta{display:flex;flex-wrap:wrap;gap:8px 20px;margin-top:20px;padding-bottom:28px;border-bottom:1px solid var(--line-2);font:600 13px/1.4 var(--font);color:var(--label-3)}
.hb-meta b{color:var(--label)}
.hb-h2{font:750 30px/1.15 var(--font);font-weight:750;letter-spacing:-.025em;margin:10px 0 0;color:var(--label);text-wrap:balance}
.hb-kick{display:flex;align-items:center;gap:8px;font:700 12px/1 var(--font);letter-spacing:.14em;text-transform:uppercase;color:var(--link);margin:0}
.hb-kick .i{width:15px;height:15px}

/* pills: status and labels. Outlined pills never have a fill. */
.hb-pill{display:inline-flex;align-items:center;gap:5px;font:800 10.5px/1 var(--font);letter-spacing:.1em;text-transform:uppercase;padding:5px 9px;border-radius:999px;white-space:nowrap;vertical-align:2px}
.hb-pill .i{width:12px;height:12px;stroke-width:2.4}
.hb-pill-ok{color:color-mix(in srgb,var(--green) 62%,var(--label));box-shadow:inset 0 0 0 1px var(--green)}
.hb-pill-out{color:var(--label-3);box-shadow:inset 0 0 0 1px var(--label-3)}
/* our own first-hand observation: outlined like Unverified, dashed, own wording */
.hb-pill-obs{color:var(--label-2);box-shadow:none;border:1px dashed var(--label-3);padding:4px 8px}

/* ---------- What trips brands up ---------- */
.hb-trips{padding:44px 0 8px;scroll-margin-top:24px}
.hb-trips-sub{font:500 17px/1.6 var(--font);color:var(--label-2);margin:12px 0 0}
.hb-note{display:flex;gap:16px;align-items:flex-start;margin:24px 0 0;padding:20px 22px;border-radius:18px;background:var(--selected)}
.hb-note-ic{width:40px;height:40px;border-radius:12px;background:var(--s1);color:var(--action);display:grid;place-items:center;flex:none}
.hb-note-ic .i{width:20px;height:20px}
.hb-note b{font:800 12px/1 var(--font);letter-spacing:.12em;text-transform:uppercase;display:block;color:var(--selected-tx)}
.hb-note p{font:500 15.5px/1.6 var(--font);color:var(--label);margin:8px 0 0}
.hb-tlist{list-style:none;margin:28px 0 0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:0 32px}
.hb-tlist li{display:grid;grid-template-columns:40px minmax(0,1fr);gap:4px;padding:20px 0;border-top:1px solid var(--line-2)}
.hb-tno{font:400 26px/1 var(--font-loud);color:var(--action)}
.hb-tlist b{font:750 17px/1.3 var(--font);font-weight:750;letter-spacing:-.01em;color:var(--label);display:block}
.hb-tlist p{font:500 15px/1.55 var(--font);color:var(--label-2);margin:6px 0 0}
.hb-tlist li:last-child:nth-child(odd){grid-column:1 / -1}
.hb-tlist li:last-child:nth-child(odd)>div{max-width:34em}
.hb-tsrc{display:block;font:500 12px/1.45 var(--font);color:var(--label-3);margin-top:8px}
.hb-note p a,.hb-tsrc a{color:var(--link);text-decoration:underline;text-underline-offset:2px}
.hb-go{display:block;width:fit-content;max-width:100%;margin-top:10px;font:700 13.5px/1.35 var(--font);color:var(--link);text-decoration:none}
.hb-go:hover{text-decoration:underline}
.hb-nw{white-space:nowrap}
.hb-go .i{display:inline-block;width:14px;height:14px;margin-left:6px;vertical-align:-2px}

/* ---------- Changed in <chapter> ---------- */
.hb-chgbox{margin:36px 0 0;padding:22px 26px 18px;border-radius:20px;background:var(--s1);border:1px solid var(--line);box-shadow:var(--shadow-card)}
.hb-chg-h{display:flex;align-items:center;gap:8px;font:700 12px/1 var(--font);letter-spacing:.14em;text-transform:uppercase;color:var(--label-3);margin:0 0 6px}
.hb-chg-h .i{width:15px;height:15px;color:var(--action)}
.hb-crows{list-style:none;margin:0;padding:0}
.hb-crows>li{display:grid;grid-template-columns:118px minmax(0,1fr);gap:16px;padding:16px 0;border-top:1px solid var(--line)}
.hb-crows>li:first-child{border-top:0}
.hb-cdate{font:400 15px/1.3 var(--font-loud);letter-spacing:.04em;color:var(--action)}
.hb-cdate small{display:block;font:700 10.5px/1.3 var(--font);letter-spacing:.1em;color:var(--label-3);margin-top:4px}
.hb-crows a.hb-ct-t{font:700 16px/1.35 var(--font);color:var(--label);text-decoration:none}
.hb-crows a.hb-ct-t:hover{color:var(--link)}
.hb-crows p{font:500 14.5px/1.55 var(--font);color:var(--label-2);margin:6px 0 0}
.hb-crows .hb-tsrc{margin-top:8px}
.hb-cmore{display:inline-flex;align-items:center;gap:6px;margin-top:10px;font:700 14px/1.3 var(--font);color:var(--link);text-decoration:none}
.hb-cmore .i{width:15px;height:15px}
.hb-unconf{margin:12px 0 0;padding-top:12px;border-top:1px dashed var(--line-2);font:600 14px/1.45 var(--font);color:var(--label-3)}
.hb-unconf a{color:var(--link);text-decoration:none;font-weight:700}

/* ---------- steps ---------- */
.hb-sec{padding:52px 0 8px;scroll-margin-top:24px}
.hb-sec{border-top:1px solid var(--line)}
.hb-steps-h{margin-top:56px}
.hb-sechead{display:grid;grid-template-columns:52px minmax(0,1fr);column-gap:4px;align-items:baseline}
.hb-sechead h2{grid-column:2}
.hb-pills{grid-column:2;display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.hb-no{grid-column:1;grid-row:1;justify-self:start;font:400 26px/1 var(--font-loud);letter-spacing:.02em;color:var(--action);margin:0;padding:2px 4px 2px 0;border-radius:6px}
.hb-sec:target .hb-no,.hb-entry:target .hb-edate{outline:2px solid var(--action);outline-offset:3px}
.hb-sec h2 .hb-anchor{margin-left:10px;color:var(--label-4);text-decoration:none;opacity:0;font-weight:500}
.hb-sec h2:hover .hb-anchor,.hb-anchor:focus-visible{opacity:1}
.hb-recnote{font:600 14px/1.5 var(--font);color:var(--label-3);margin:10px 0 0}
.hb-intro{font:500 18px/1.65 var(--font);color:var(--label-2);margin:14px 0 0}
.hb-intro b,.hb-steps b,.hb-rail b,.hb-know b,.hb-tbl b,.hb-col b,.hb-tree b,.hb-layer b{color:var(--label);font-weight:700}
.hb-steps{list-style:none;counter-reset:hbs;margin:24px 0 0;padding:0}
.hb-steps li{counter-increment:hbs;position:relative;padding:10px 0 10px 48px;font:500 17px/1.6 var(--font);color:var(--label-2)}
.hb-steps li::before{content:counter(hbs);position:absolute;left:0;top:9px;width:30px;height:30px;border-radius:50%;background:var(--icon-tile);color:var(--icon);display:grid;place-items:center;font:800 13.5px/1 var(--font)}
.hb-steps li+li{border-top:1px dashed var(--line)}
.hb-seechg{display:inline-flex;align-items:center;gap:6px;margin:16px 24px 0 0;font:700 14px/1.3 var(--font);color:var(--link);text-decoration:none}
.hb-seechg .i{width:15px;height:15px}

/* the seven-stop route */
.hb-rail{list-style:none;counter-reset:hbr;margin:24px 0 0;padding:0;position:relative}
.hb-rail::before{content:"";position:absolute;left:14px;top:18px;bottom:18px;width:2px;background:linear-gradient(var(--action),var(--blue-300))}
.hb-rail li{counter-increment:hbr;position:relative;padding:9px 0 9px 50px;font:500 17px/1.5 var(--font);color:var(--label-2)}
.hb-rail li::before{content:counter(hbr);position:absolute;left:0;top:7px;width:30px;height:30px;border-radius:50%;background:var(--action);color:var(--on-action);display:grid;place-items:center;font:800 13px/1 var(--font);box-shadow:0 0 0 3px var(--bg)}
.hb-rail li:last-child::before{background:var(--green)}
.hb-rail a{color:var(--link);text-decoration:none}
.hb-rail a b{color:var(--link)}
.hb-rail a:hover{text-decoration:underline}
.hb-steps a,.hb-know li a,.hb-tbl td a,.hb-pb-copy p a{color:var(--link);font-weight:700;text-decoration:underline;text-underline-offset:2px}
.hb-card .hb-rail li::before{box-shadow:0 0 0 3px var(--s1)}

/* ---------- visuals (all drawn; no images) ---------- */
.hb-fig{margin:28px 0 0}
.hb-fig figcaption{font:500 13px/1.5 var(--font);color:var(--label-3);margin-top:10px}
.hb-gap{color:var(--label-3);font-style:italic;font-weight:500}
.hb-tbl{border:1px solid var(--line);border-radius:16px;overflow:hidden;background:var(--s1)}
.hb-tbl table{width:100%;border-collapse:collapse;font:500 15px/1.5 var(--font)}
.hb-tbl th,.hb-tbl td{text-align:left;vertical-align:top;padding:13px 16px;border-top:1px solid var(--line);color:var(--label-2)}
.hb-tbl thead th{border-top:0;background:var(--s2);font:750 13px/1.3 var(--font);color:var(--label);letter-spacing:.01em}
.hb-tbl tbody th{font-weight:700;color:var(--label)}
.hb-tbl td+td,.hb-tbl th+td,.hb-tbl th+th{border-left:1px solid var(--line)}
.hb-tbl-rows tbody td:first-child{font-weight:700;color:var(--label)}
.hb-tbl .hb-nw{white-space:nowrap}
.hb-tbl-cols{display:none}
.hb-col{background:var(--s1);border:1px solid var(--line);border-radius:14px;padding:14px 16px 10px}
.hb-col+.hb-col{margin-top:10px}
.hb-col h3{margin:0 0 6px;font:800 15px/1.3 var(--font);color:var(--label)}
.hb-col ul{list-style:none;margin:0;padding:0}
.hb-col li{position:relative;padding:7px 0 7px 22px;border-top:1px solid var(--line);font:500 15px/1.5 var(--font);color:var(--label-2)}
.hb-col li:first-child{border-top:0}
.hb-col li::before{content:"";position:absolute;left:2px;top:14px;width:9px;height:9px;border-radius:3px;box-shadow:inset 0 0 0 2px var(--action)}

/* Do / Don't lists */
.hb-dd{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.hb-dd .hb-col+.hb-col{margin-top:0}
.hb-dd li{padding-left:28px}
.hb-dd li::before{display:none}
.hb-dd li .i{position:absolute;left:0;top:10px;width:17px;height:17px}
.hb-do .i{color:var(--green)}
.hb-dont .i{color:var(--label-4)}
.hb-dd h3{display:flex;align-items:center;gap:8px}

/* tiers */
.hb-tiers{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;align-items:stretch}
.hb-tier{background:var(--s1);border:1px solid var(--line);border-radius:16px;padding:16px 16px 18px;display:flex;flex-direction:column;gap:8px;min-width:0}
.hb-tier .hb-tn{font:400 14px/1 var(--font-loud);color:var(--label-4)}
.hb-tier b{font:800 17px/1.2 var(--font);color:var(--label)}
.hb-track{display:flex;align-items:flex-end;height:78px;margin:4px 0 2px;border-bottom:1px solid var(--line-2)}
.hb-bar{display:block;width:100%;height:calc(78px * var(--h));border-radius:8px 8px 0 0;background:linear-gradient(180deg,var(--blue-300),var(--action))}
.hb-tier:last-child .hb-bar{background:linear-gradient(180deg,var(--green),var(--action))}
.hb-tier dl{margin:4px 0 0;display:grid;gap:6px}
.hb-tier dl div{display:flex;justify-content:space-between;gap:8px;font:600 13px/1.3 var(--font)}
.hb-tier dt{color:var(--label-3)}
.hb-tier dd{margin:0;color:var(--label);font-weight:800;text-align:right}
.hb-tier .hb-tlong{font:500 13px/1.45 var(--font);color:var(--label-2);margin:4px 0 0;padding-top:10px;border-top:1px solid var(--line)}
.hb-tier .hb-tlong span{display:block;font:700 11px/1.3 var(--font);letter-spacing:.08em;text-transform:uppercase;color:var(--label-3);margin-bottom:4px}
.hb-tiers-falling .hb-tier b{font:400 24px/1 var(--font-loud);letter-spacing:.02em}
.hb-tiers-falling .hb-tier:nth-child(2){border-color:var(--line-2)}
.hb-tiers-falling .hb-tier:nth-child(3){background:transparent;border-color:var(--label-4)}
.hb-tiers-falling .hb-tier:nth-child(4){background:var(--s1);border:1.5px solid var(--label);box-shadow:inset 0 4px 0 var(--label)}
.hb-tiers-falling .hb-tier:nth-child(4) .hb-tlong span,.hb-tiers-falling .hb-tier:nth-child(4) .hb-tlong{color:var(--label)}
.hb-tiers-falling .hb-tier:nth-child(4) .hb-tlong{font-weight:700}
.hb-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:0 0 16px;padding:0;list-style:none}
.hb-stat{padding:14px 0 0;border-top:2px solid var(--action)}
.hb-stat b{font:400 38px/1 var(--font-loud);color:var(--action);display:block;letter-spacing:.01em}
.hb-stat span{font:600 13.5px/1.4 var(--font);color:var(--label);display:block;margin-top:8px}

/* brand-role tree */
.hb-tree{background:var(--s1);border:1px solid var(--line);border-radius:18px;padding:22px 22px 10px;box-shadow:var(--shadow-card)}
.hb-tree-q{display:flex;align-items:center;gap:12px;margin:0;font:750 19px/1.3 var(--font);font-weight:750;color:var(--label)}
.hb-tree-q .i{width:22px;height:22px;color:var(--action)}
.hb-tree ol{list-style:none;margin:14px 0 0;padding:0 0 0 18px;border-left:2px solid var(--line-2)}
.hb-tree>ol>li{position:relative;display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,.9fr) minmax(0,1.2fr);gap:14px;align-items:start;padding:14px 0;border-top:1px solid var(--line)}
.hb-tree>ol>li:first-child{border-top:0}
.hb-tree>ol>li::before{content:"";position:absolute;left:-19px;top:24px;width:14px;height:2px;background:var(--line-2)}
.hb-ans{font:700 15px/1.4 var(--font);color:var(--label)}
.hb-role{display:flex;gap:8px;align-items:flex-start;font:700 15px/1.4 var(--font);color:var(--link)}
.hb-role .i{width:16px;height:16px;flex:none;margin-top:2px}
.hb-need{font:500 14px/1.5 var(--font);color:var(--label-2)}
.hb-need span{display:block;font:700 11px/1.3 var(--font);letter-spacing:.08em;text-transform:uppercase;color:var(--label-3);margin-bottom:3px}
.hb-need ul{margin:0;padding-left:16px}
.hb-need li{margin:2px 0}

/* promotion stack */
.hb-stack{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.hb-layer{display:grid;grid-template-columns:36px minmax(0,1fr) auto;gap:14px;align-items:center;padding:14px 16px;border-radius:14px;background:var(--s1);border:1px solid var(--line);box-shadow:var(--shadow-card)}
.hb-layer:nth-child(2){margin-left:16px}.hb-layer:nth-child(3){margin-left:32px}.hb-layer:nth-child(4){margin-left:48px}
.hb-lno{width:30px;height:30px;border-radius:9px;background:var(--selected);color:var(--selected-tx);display:grid;place-items:center;font:800 13px/1 var(--font)}
.hb-layer>div>b{display:block;font:800 15.5px/1.3 var(--font)}
.hb-layer p{margin:3px 0 0;font:500 14px/1.5 var(--font);color:var(--label-2)}
.hb-fund{font:700 11px/1 var(--font);letter-spacing:.08em;text-transform:uppercase;padding:6px 9px;border-radius:999px;white-space:nowrap;color:var(--label-3);box-shadow:inset 0 0 0 1px var(--line-2)}
.hb-fund-tt{color:var(--green);box-shadow:inset 0 0 0 1px var(--green)}
.hb-callouts{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:16px}
.hb-callouts div{display:flex;gap:14px;align-items:center;padding:14px 16px;border-radius:14px;border:1px solid var(--line)}
.hb-callouts b{font:400 40px/1 var(--font-loud);color:var(--action);flex:none}
.hb-callouts span{font:600 14px/1.45 var(--font);color:var(--label)}

/* fee receipt (on the site's .report card) */
.hb-fig .report{margin-top:0;max-width:520px}
.hb-rc{list-style:none;margin:6px 0 0;padding:0}
.hb-rc li{display:flex;justify-content:space-between;gap:16px;padding:12px 0;border-bottom:1px dashed var(--line-2);font:600 15px/1.35 var(--font);color:var(--label)}
.hb-rc li span:last-child{white-space:nowrap;font-variant-numeric:tabular-nums}
.hb-rc .hb-strong{font-weight:800;font-size:16px}
.hb-rc .hb-muted{color:var(--label-3);font-weight:500}
.hb-rc .hb-muted span:last-child{white-space:normal;text-align:right}
.hb-total{display:flex;justify-content:space-between;align-items:baseline;gap:16px;padding-top:14px;font:800 15px/1.3 var(--font);color:var(--label)}
.hb-total b{font:400 32px/1 var(--font-loud);color:var(--action)}

/* Good to know */
.hb-know{margin:26px 0 0;padding:18px 20px 16px;border-radius:14px;background:var(--selected);border:1px solid var(--line)}
.hb-k-h{display:flex;align-items:center;gap:8px;margin:0;font:800 12px/1 var(--font);letter-spacing:.12em;text-transform:uppercase;color:var(--selected-tx)}
.hb-k-h .i{width:16px;height:16px}
.hb-know ul{margin:10px 0 0;padding-left:20px}
.hb-know li{font:500 15.5px/1.6 var(--font);color:var(--label-2);margin:4px 0}
.hb-know .hb-pill{margin-right:6px}
.hb-fsrc{display:block;font:500 12px/1.45 var(--font);color:var(--label-3);margin-top:2px}

/* source line */
.hb-src{display:flex;gap:8px;align-items:flex-start;margin:22px 0 0;font:500 12.5px/1.5 var(--font);color:var(--label-3)}
.hb-src .i{width:14px;height:14px;color:var(--green);flex:none;margin-top:2px}
.hb-lc{display:inline-block;margin-left:10px;padding-left:10px;border-left:1px solid var(--line-2);white-space:nowrap}

/* ---------- Get the full playbook ---------- */
.hb-pb{margin-top:64px;display:grid;grid-template-columns:56px minmax(0,1fr);gap:24px;align-items:start;padding:30px 32px;border-radius:20px;background:var(--s1);border:1px solid var(--line);box-shadow:var(--shadow-card)}
.hb-pb-art{width:56px;height:56px;border-radius:16px;background:var(--icon-tile);color:var(--icon);display:grid;place-items:center;margin-top:4px}
.hb-pb-art .i{width:26px;height:26px}
.hb-pb-copy .eyebrow{margin-top:0}
.hb-pb-copy h2{font:750 28px/1.12 var(--font);font-weight:750;letter-spacing:-.025em;margin:10px 0 0;color:var(--label)}
.hb-pb-copy p:not(.eyebrow){font:500 16px/1.6 var(--font);color:var(--label-2);margin:10px 0 0}
.hb-acts{display:flex;flex-wrap:wrap;gap:12px;margin-top:20px}
.hb-indep{font:500 13.5px/1.55 var(--font);color:var(--label-3);margin:22px 0 0}
.hb-pn+.hb-indep{margin-top:18px}
.hb-indep a{color:var(--link)}
.hb-pn{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:40px}
.hb-pn a{display:flex;flex-direction:column;gap:6px;padding:16px 18px;border:1px solid var(--line);border-radius:14px;font:750 16px/1.25 var(--font);font-weight:750;color:var(--label);text-decoration:none}
.hb-pn a:hover{border-color:var(--action)}
.hb-pn small{font:600 12px/1 var(--font);color:var(--label-3)}
.hb-pn .hb-next{text-align:right;grid-column:2}

/* ---------- hub ---------- */
.hb-card{background:var(--s1);border:1px solid var(--line);border-radius:20px;padding:26px 28px 20px;box-shadow:var(--shadow-card)}
.hb-block{margin-top:56px}
.hb-block:first-child{margin-top:0}
.hb-block-sub{font:500 16px/1.6 var(--font);color:var(--label-2);margin:10px 0 0}
.hb-chapters{list-style:none;margin:18px 0 0;padding:0}
.hb-chapters a{display:grid;grid-template-columns:44px minmax(0,1fr) auto;gap:6px 16px;align-items:start;padding:20px 4px;border-top:1px solid var(--line);color:var(--label);text-decoration:none}
.hb-chapters li:last-child a{border-bottom:1px solid var(--line)}
.hb-chapters a:hover .hb-cht{color:var(--link)}
.hb-chn{font:400 26px/1 var(--font-loud);color:var(--action)}
.hb-cht{display:block;font:750 19px/1.25 var(--font);font-weight:750;letter-spacing:-.015em}
.hb-chs{display:block;font:500 15px/1.55 var(--font);color:var(--label-2);margin-top:6px}
.hb-chtrip{display:block;font:600 13.5px/1.45 var(--font);color:var(--label-3);margin-top:8px}
.hb-chtrip b{color:var(--label)}
.hb-chc{font:600 13px/1.2 var(--font);color:var(--label-3);white-space:nowrap;display:flex;align-items:center;gap:8px;padding-top:4px}
.hb-chc .i{width:16px;height:16px;color:var(--action)}
.hb-rows{list-style:none;margin:14px 0 0;padding:0}
.hb-rows a{display:grid;grid-template-columns:140px minmax(0,1fr) 18px;gap:14px;align-items:baseline;padding:13px 0;border-bottom:1px solid var(--line);color:var(--label);text-decoration:none}
.hb-rows a:hover .hb-rt{color:var(--link)}
.hb-rd{font:700 12.5px/1.3 var(--font);color:var(--action);white-space:nowrap}
.hb-rt{font:600 15px/1.4 var(--font)}
.hb-rows .i{width:16px;height:16px;color:var(--label-3);align-self:center}
.hb-howto{margin:14px 0 0;padding:0 0 0 20px}
.hb-howto li{font:500 16px/1.6 var(--font);color:var(--label-2);margin:6px 0}

/* ---------- changes page ---------- */
.hb-count{font:600 14px/1.5 var(--font);color:var(--label-3);margin:16px 0 0}
.hb-filters{display:flex;flex-wrap:wrap;gap:8px;margin:24px 0 0;padding-bottom:24px;border-bottom:1px solid var(--line-2)}
.hb-legend{font:500 13.5px/1.55 var(--font);color:var(--label-3);margin:14px 0 0}
.hb-fr{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}
.hb-fl{display:inline-flex;align-items:center;height:38px;padding:0 16px;border-radius:999px;font:700 14px/1 var(--font);color:var(--label-2);background:var(--s1);box-shadow:inset 0 0 0 1px var(--line-2);cursor:pointer}
.hb-fl:hover{color:var(--label)}
.hb-fr:checked+.hb-fl{background:var(--action);color:var(--on-action);box-shadow:none}
.hb-fr:focus-visible+.hb-fl{outline:2px solid var(--action);outline-offset:2px}
.hb-group{padding-top:40px;scroll-margin-top:24px}
.hb-group-h{font:750 24px/1.2 var(--font);font-weight:750;letter-spacing:-.02em;color:var(--label);margin:0 0 6px}
.hb-entry{display:grid;grid-template-columns:118px minmax(0,1fr);gap:20px;padding:24px 0;border-top:1px solid var(--line);scroll-margin-top:24px}
.hb-edate{font:400 16px/1.25 var(--font-loud);letter-spacing:.04em;color:var(--action);padding:2px 4px;border-radius:6px;align-self:start}
.hb-edate small{display:block;font:700 10.5px/1.3 var(--font);letter-spacing:.1em;color:var(--label-3);margin-top:4px}
.hb-etitle{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px;margin:0;font:750 19px/1.3 var(--font);font-weight:750;letter-spacing:-.015em;color:var(--label)}
.hb-elab{font:800 11px/1 var(--font);letter-spacing:.12em;text-transform:uppercase;color:var(--label-3);margin:14px 0 0}
.hb-ebody p:not(.hb-elab):not(.hb-etitle){font:500 15.5px/1.6 var(--font);color:var(--label-2);margin:6px 0 0}
.hb-ebody b{color:var(--label)}
.hb-affects{display:block;margin:12px 0 0;font:600 13.5px/1.4 var(--font);color:var(--label-3)}.hb-affects>*{margin-right:14px}
.hb-affects a{color:var(--link);text-decoration:none;font-weight:700}
.hb-entry-open{border:1px dashed var(--label-4);border-radius:16px;padding:20px 22px;margin-top:12px;grid-template-columns:minmax(0,1fr)}
.hb-entry-open .hb-edate{display:none}
.hb-spot{margin:40px 0 0;padding-top:20px;border-top:1px solid var(--line-2);font:600 15px/1.5 var(--font);color:var(--label-2)}
.hb-spot a{color:var(--link)}

/* ---------- tablet: sidebar becomes a sticky Contents bar ---------- */
@media (max-width:980px){
  .hb-wrap{grid-template-columns:minmax(0,720px);gap:0}
  .hb-main{padding-top:0}
  .hb-side{position:sticky;top:0;z-index:20;max-height:none;overflow:visible;margin:0 -40px;padding:0 0 2px;background:var(--bg);border-bottom:1px solid var(--line-2);box-shadow:var(--shadow-lift)}
  .hb-side-cta{display:none}
  .hb-nav>summary{display:flex;align-items:center;gap:10px;list-style:none;cursor:pointer;padding:0 40px;height:var(--hb-bar-h);font:800 15px/1 var(--font);color:var(--label)}
  .hb-nav>summary::-webkit-details-marker{display:none}
  .hb-cur{display:flex;gap:10px;align-items:baseline;min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
  .hb-cur .hb-sn{font:400 15px/1 var(--font-loud);color:var(--action);width:auto}
  .hb-hint{margin-left:auto;font:700 13px/1 var(--font);color:var(--link)}
  .hb-chev{width:16px;height:16px;color:var(--link);transform:rotate(90deg);transition:transform .15s}
  .hb-nav[open] .hb-chev{transform:rotate(-90deg)}
  .hb-nav-in{padding:4px 30px 18px;max-height:70vh;overflow:auto;border-top:1px solid var(--line)}
  .hb-art{padding-top:36px}
  .hb-sec,.hb-trips,.hb-entry,.hb-group{scroll-margin-top:calc(var(--hb-bar-h) + 12px)}
}
/* ---------- phone ---------- */
@media (max-width:820px){
  .sub-hero{padding:14px 20px 52px}
  .sub-hero h1.hero-h{font-size:44px;margin-top:16px}
  .sub-hero .hero-sub{font-size:17px;margin-top:16px}
  .hb-hero-acts{flex-direction:column;align-items:stretch}.hb-hero-acts .btn{justify-content:center}
  .hb-side{margin:0 -20px}
  .hb-nav>summary{padding:0 20px}
  .hb-nav-in{padding:4px 10px 16px}
  .hb-main{padding-bottom:80px}
  .hb-lead{font-size:19px}
  .hb-h2,.hb-sec h2{font-size:25px}
  .hb-sec{padding-top:40px}
  .hb-intro{font-size:17px}
  .hb-steps li,.hb-rail li{font-size:16px}
  .hb-tlist{grid-template-columns:minmax(0,1fr)}
  .hb-tlist li:last-child:nth-child(odd)>div{max-width:none}
  .hb-tbl .hb-nw{white-space:normal}
  .hb-sechead{grid-template-columns:44px minmax(0,1fr)}
  .hb-no{font-size:22px}
  .hb-note{padding:16px 16px;gap:12px}
  .hb-chgbox{padding:18px 18px 14px}
  .hb-crows>li{grid-template-columns:minmax(0,1fr);gap:6px}
  /* tables re-flow into cards: nothing scrolls sideways */
  .hb-tbl{border:0;background:none;border-radius:0;overflow:visible}
  .hb-tbl thead{display:none}
  .hb-tbl table,.hb-tbl tbody,.hb-tbl tr,.hb-tbl td,.hb-tbl tbody th{display:block;width:auto}
  .hb-tbl tr{background:var(--s1);border:1px solid var(--line);border-radius:14px;margin-bottom:10px;padding:6px 0}
  .hb-tbl td,.hb-tbl tbody th{border:0!important;padding:7px 16px}
  .hb-tbl td::before{content:attr(data-l);display:block;font:700 11.5px/1.3 var(--font);letter-spacing:.06em;text-transform:uppercase;color:var(--label-3);margin-bottom:2px}
  .hb-tbl-rows tbody td:first-child::before{display:none}
  .hb-tbl-rows tbody td:first-child{font-size:16px;padding-top:10px}
  .hb-tbl tbody th{font:800 15px/1.3 var(--font);color:var(--label);padding-top:10px}
  .hb-has-cols .hb-tbl{display:none}.hb-has-cols .hb-tbl-cols{display:block}
  .hb-dd{grid-template-columns:minmax(0,1fr)}
  .hb-tiers{grid-template-columns:1fr 1fr}
  .hb-stats{grid-template-columns:1fr 1fr;gap:16px 12px}
  .hb-stat b{font-size:32px}
  .hb-tree{padding:18px 16px 8px}
  .hb-tree>ol>li{grid-template-columns:minmax(0,1fr);gap:6px}
  .hb-layer{grid-template-columns:30px minmax(0,1fr);gap:12px;padding:12px 14px}
  .hb-layer:nth-child(n){margin-left:0}
  .hb-fund{grid-column:2;justify-self:start}
  .hb-callouts{grid-template-columns:minmax(0,1fr)}
  .hb-lc{margin-left:0;padding-left:0;border-left:0;display:block}
  .hb-pb{grid-template-columns:minmax(0,1fr);padding:24px 20px;gap:14px}
  .hb-pb-art{width:48px;height:48px;border-radius:14px;margin-top:0}
  .hb-pb-copy h2{font-size:24px}
  .hb-acts{flex-direction:column;align-items:stretch}.hb-acts .btn{justify-content:center;white-space:normal;text-align:center;height:auto;min-height:48px;padding-block:12px}
  .hb-pn{grid-template-columns:minmax(0,1fr)}.hb-pn .hb-next{text-align:left;grid-column:1}
  .hb-chapters a{grid-template-columns:36px minmax(0,1fr)}
  .hb-chc{grid-column:2}
  .hb-card{padding:20px 18px 16px}
  .hb-rows a{grid-template-columns:minmax(0,1fr) 18px;gap:4px 10px}
  .hb-rows .hb-rd,.hb-rows .hb-rt{grid-column:1}
  .hb-rows .i{grid-column:2;grid-row:1 / span 2}
  .hb-entry{grid-template-columns:minmax(0,1fr);gap:8px}
  .hb-entry-open{padding:16px}
  .hb-group-h{font-size:21px}
}

/* ---------- the gate (Oct 9 2026): steps after the first two keep number + title; bodies are blurred bars only ---------- */
.hb-locked{margin-top:8px}
.hb-lock{padding:44px 0 8px;border-top:1px solid var(--line);scroll-margin-top:24px}
.hb-lock h2{color:var(--label-2)}
.hb-lock:target .hb-no{outline:2px solid var(--action);outline-offset:3px}
.hb-lock-tag{display:inline-flex;align-items:center;gap:5px;margin-left:12px;vertical-align:4px;font:800 10.5px/1 var(--font);letter-spacing:.1em;text-transform:uppercase;color:var(--label-3);padding:5px 9px;border-radius:999px;box-shadow:inset 0 0 0 1px var(--line-2);white-space:nowrap}
.hb-lock-tag .i{width:12px;height:12px}
.hb-blur{display:grid;gap:13px;margin:18px 0 0 56px;padding:4px 0 10px;filter:blur(3.5px);opacity:max(.3,calc(.9 - var(--k,0) * .1));
  -webkit-mask-image:linear-gradient(180deg,black 35%,transparent);mask-image:linear-gradient(180deg,black 35%,transparent);user-select:none;pointer-events:none}
.hb-blur span{display:block;height:12px;width:var(--w);border-radius:6px;background:var(--label-4);opacity:.55}
.hb-blur span:nth-child(4n+1){height:14px;opacity:.75}
.hb-gatewrap{display:grid;margin-top:18px}
.hb-gatewrap>*{grid-area:1 / 1}
.hb-gatewrap .hb-blur{margin-top:0;align-self:stretch}
.hb-gate{align-self:center;justify-self:center;width:min(100%,500px);margin:28px 0;padding:28px 30px 26px;border-radius:20px;background:var(--s1);border:1px solid var(--line);box-shadow:var(--shadow-card);text-align:center;position:relative}
.hb-gate-ic{width:44px;height:44px;margin:0 auto;border-radius:12px;background:var(--icon-tile);color:var(--icon);display:grid;place-items:center}
.hb-gate-ic .i{width:21px;height:21px}
.hb-gate-h{font:750 24px/1.2 var(--font);font-weight:750;letter-spacing:-.02em;color:var(--label);margin:16px 0 0;text-wrap:balance}
.hb-gate-p{font:500 15.5px/1.55 var(--font);color:var(--label-2);margin:10px auto 0;max-width:34em;text-wrap:pretty}
.hb-gate-btn{margin-top:20px}
.hb-gate-btn:focus-visible{outline:2px solid var(--action);outline-offset:3px}
/* the rest of the gated steps: one line each, number + title (Oct 9 polish: no blur block per gated step) */
.hb-more{margin:28px 0 0;padding:22px 0 0;border-top:1px solid var(--line)}
.hb-more-h{display:flex;align-items:center;gap:8px;font:700 12px/1 var(--font);letter-spacing:.14em;text-transform:uppercase;color:var(--label-3);margin:0 0 6px}
.hb-more-h .i{width:15px;height:15px;color:var(--action)}
.hb-mlist{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 32px}
.hb-mlist li{display:flex;align-items:baseline;gap:14px;padding:12px 0;border-bottom:1px solid var(--line);scroll-margin-top:24px}
.hb-mlist li:target{background:var(--s1);box-shadow:inset 3px 0 0 var(--action);padding-left:10px}
.hb-mno{font:800 13px/1 var(--font);color:var(--action);min-width:30px;font-variant-numeric:tabular-nums}
.hb-mt{font:600 15.5px/1.4 var(--font);color:var(--label-2)}
/* hub "Start here": one line of stop names */
.hb-stops{font:600 17px/1.7 var(--font);color:var(--label-2);margin:14px 0 0;text-wrap:pretty}
.hb-stops a{color:var(--link);text-decoration:none;font-weight:700}
.hb-stops a:hover{text-decoration:underline}
.hb-stop-sep{color:var(--label-4);margin:0 2px}
.hb-stops .hb-stops-more{display:block;margin:6px 0 0;font-size:14px;width:max-content}  /* V1 check: own line at every width */
.hb-stops-more .i{display:inline-block;width:14px;height:14px;margin-left:5px;vertical-align:-2px}
.hb-tlist-3{grid-template-columns:repeat(3,minmax(0,1fr));gap:0 28px}
.hb-tlist-3 li{grid-template-columns:minmax(0,1fr);gap:10px;align-content:start}
.hb-tlist-3 li:last-child:nth-child(odd){grid-column:auto}
.hb-tlist-3 li:last-child:nth-child(odd)>div{max-width:none}
@media (max-width:980px){.hb-lock,.hb-mlist li{scroll-margin-top:calc(var(--hb-bar-h) + 12px)}}
@media (max-width:820px){
  .hb-tlist-3{grid-template-columns:minmax(0,1fr)}
  .hb-tlist-3 li{grid-template-columns:40px minmax(0,1fr);gap:4px}
  .hb-lock{padding-top:34px}
  .hb-lock h2{font-size:23px}
  .hb-lock-tag{display:flex;width:fit-content;margin:10px 0 0}
  .hb-blur{margin-left:0}
  .hb-gate{padding:24px 20px 22px;margin:20px 0}
  .hb-gate-h{font-size:21px}
  .hb-gate-btn{display:flex;justify-content:center}
  .hb-mlist{grid-template-columns:minmax(0,1fr)}
  .hb-stops .hb-stops-more{display:block;margin:6px 0 0}
}
