/* Legacy Build Hub styles, ported from the Cowork artifact and scoped under .hub.
   Palette and type are mapped onto the site's tokens so it matches the workspace in light and dark. */
.hub{
  --card:var(--surface); --muted:var(--ink-2); --line2:var(--line);
  --oak:var(--accent); --oak-soft:var(--accent-soft);
  --green:var(--good); --green-soft:color-mix(in srgb,var(--good) 12%,transparent);
  --wine:var(--bad); --wine-soft:color-mix(in srgb,var(--bad) 12%,transparent);
  --slate:var(--ink-slate); --slate-soft:var(--surface-2);
  --amber:var(--warn); --amber-soft:color-mix(in srgb,var(--warn) 14%,transparent);
  --track:var(--line-2); --field:var(--surface-2);
  font-size:14.5px;line-height:1.55;padding:22px clamp(16px,3vw,36px) 70px;min-width:0
}
/* neutralise workspace/site rules that share class names with the hub */
.hub .body{display:block;padding:0;gap:0}
.hub .who{display:block;background:none;border:0;padding:0;margin:0;border-radius:0;font-weight:inherit;align-items:normal;gap:0}
.hub .step{min-height:0;display:block;padding:0;border-top:0;gap:0}
.hub .panel{padding:0;display:block;gap:0}
.hub .num{background:none;border:0;padding:0;display:block;gap:0;border-radius:0}
.hub .hero{padding:0;text-align:left}
.hub .sub{max-width:none;font-size:inherit;line-height:inherit}
.hub footer{border:0;padding:0;font-size:inherit}
.hub .empty{padding:0;border:0;text-align:left;font-size:inherit}
.hub .note{margin:0}
.hub h1,.hub h2,.hub h3{font-family:var(--f-body)}
.hub a{color:var(--oak)}.hub a:hover{text-decoration-thickness:2px}.hub button{font:inherit}.hub .mono{font-family:var(--f-mono)}.hub h1, .hub h2, .hub h3{font-family:var(--f-body);letter-spacing:-.012em;text-wrap:balance;margin:0}.hub h1{font-size:clamp(26px,3.6vw,34px);line-height:1.12;font-weight:700}.hub h2{font-size:20px;line-height:1.25;font-weight:600}.hub h3{font-size:16px;line-height:1.3;font-weight:600}.hub p{margin:0}.hub .eyebrow{font:500 11.5px/1 var(--f-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--oak);margin:0 0 10px}.hub .card{background:var(--card);border:1px solid var(--line);border-radius:10px}.hub .cards{display:grid;gap:14px;grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}.hub .card .in{padding:16px 18px}.hub .chip{display:inline-flex;align-items:center;gap:6px;font:500 11px/1 var(--f-mono);letter-spacing:.07em;text-transform:uppercase;padding:5px 9px;border-radius:99px;white-space:nowrap;border:1px solid transparent}.hub .chip.done, .hub .chip.live, .hub .chip.seeded{background:var(--green-soft);color:var(--green)}.hub .chip.next{background:var(--amber-soft);color:var(--amber)}.hub .chip.planned, .hub .chip.proposed, .hub .chip.phase3{background:var(--slate-soft);color:var(--slate)}.hub .chip.partial, .hub .chip.placeholder{background:var(--wine-soft);color:var(--wine)}.hub .chip.person{background:var(--track);color:var(--muted)}.hub .chip.you{background:var(--slate-soft);color:var(--slate)}.hub .chip.ken{background:var(--wine-soft);color:var(--wine)}.hub .chip.new{background:var(--amber-soft);color:var(--amber)}.hub .chip.hold{background:var(--track);color:var(--muted)}.hub .chip.kind{background:var(--field);color:var(--muted);border-color:var(--line)}.hub .chip.link{cursor:pointer;text-decoration:none;background:var(--field);color:var(--ink);border-color:var(--line)}.hub .chip.link:hover{border-color:var(--oak);color:var(--oak)}.hub .muted{color:var(--muted)}.hub .small{font-size:13px}.hub .kv{display:grid;grid-template-columns:max-content 1fr;gap:6px 16px;font-size:14px}.hub .kv dt{color:var(--muted);font:500 11.5px/1.6 var(--f-mono);letter-spacing:.06em;text-transform:uppercase;white-space:nowrap}.hub .kv dd{margin:0}.hub table.t{width:100%;border-collapse:collapse;font-size:14px}.hub table.t th{text-align:left;font:500 11px/1.4 var(--f-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);padding:8px 10px;border-bottom:1px solid var(--line)}.hub table.t td{padding:8px 10px;border-bottom:1px solid var(--line2);vertical-align:top}.hub table.t tr:last-child td{border-bottom:0}.hub .tblwrap{overflow-x:auto}.hub .btn{border:1px solid var(--line);background:var(--card);color:var(--ink);border-radius:8px;padding:8px 12px;cursor:pointer;font-size:13.5px}.hub .btn:hover{border-color:var(--oak)}.hub .btn.on{background:var(--oak);border-color:var(--oak);color:#fff}.hub .btn:focus-visible, .hub .chip.link:focus-visible, .hub input:focus-visible, .hub textarea:focus-visible, .hub select:focus-visible{outline:2px solid var(--oak);outline-offset:2px}.hub input[type=text], .hub input[type=search], .hub textarea, .hub select{font:inherit;color:var(--ink);background:var(--field);border:1px solid var(--line);border-radius:7px;padding:8px 10px;width:100%}.hub textarea{min-height:76px;resize:vertical}.hub .row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.hub .sect{margin-top:30px}.hub .sect > h2{margin-bottom:12px}.hub .savenote{font-size:12.5px;color:var(--muted);min-height:16px}.hub .empty{color:var(--muted);font-style:italic}.hub .hero{display:grid;grid-template-columns:1.2fr 1fr;gap:22px;align-items:start}@media (max-width:820px){.hub .hero{grid-template-columns:1fr}}.hub .mission h1{font-size:clamp(28px,4vw,40px)}.hub .mission .body{color:var(--ink);margin-top:14px;max-width:62ch;font-size:16px;line-height:1.6}.hub .principles{margin-top:18px;display:grid;gap:8px}.hub .principles .p{display:grid;grid-template-columns:max-content 1fr;gap:12px;align-items:baseline;padding:8px 0;border-top:1px solid var(--line2);font-size:14px}.hub .principles .p b{font:600 13px/1.4 var(--f-body);white-space:nowrap}.hub .statusbox{display:grid;gap:12px}.hub .statusbox .cell{padding:14px 16px}.hub .statusbox .k{font:500 10.5px/1 var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-bottom:8px}.hub .statusbox .v{font:600 15.5px/1.3 var(--f-body)}.hub .statusbox .d{font-size:13.5px;color:var(--muted);margin-top:5px}.hub .statusbox ul{margin:6px 0 0;padding-left:18px;font-size:13.5px}.hub .statusbox li{margin:3px 0}.hub .changes{margin-top:26px}.hub .changes dl{display:grid;grid-template-columns:max-content 1fr;column-gap:16px;margin:0}.hub .changes dt{font:500 12px/1.6 var(--f-mono);color:var(--oak);white-space:nowrap;padding:6px 0;border-top:1px solid var(--line2)}.hub .changes dd{margin:0;padding:6px 0;border-top:1px solid var(--line2);font-size:13.5px}.hub .changes dt:first-of-type, .hub .changes dd:first-of-type{border-top:0}@media (max-width:520px){.hub .changes dl{grid-template-columns:1fr}.hub .changes dd{border-top:0;padding-top:0;padding-bottom:8px}}.hub .journey{margin-top:44px}.hub .journey .intro{color:var(--muted);max-width:66ch;margin-top:8px}.hub .strip{display:flex;gap:6px;flex-wrap:wrap;margin:18px 0 8px;position:sticky;top:calc(env(safe-area-inset-top,0px) + 8px);z-index:5;background:var(--bg);padding:8px 0}.hub .strip button{border:1px solid var(--line);background:var(--card);color:var(--muted);border-radius:99px;padding:6px 11px;font-size:12.5px;cursor:pointer;display:inline-flex;gap:6px;align-items:center}.hub .strip button i{font:500 10.5px/1 var(--f-mono);color:var(--oak)}.hub .strip button.on{border-color:var(--oak);color:var(--ink);background:var(--oak-soft)}.hub .chapter{display:grid;grid-template-columns:56px 1fr;gap:18px;padding:26px 0;border-top:1px solid var(--line)}.hub .chapter .num{font:700 30px/1 var(--f-body);color:var(--oak-soft);-webkit-text-stroke:1px var(--oak)}.hub .chapter h3{font-size:20px}.hub .chapter .who{font:500 11.5px/1.6 var(--f-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--wine);margin:4px 0 10px}.hub .chapter .body{max-width:66ch;font-size:15.5px;line-height:1.6}.hub .chapter .learn{margin-top:12px;padding:12px 14px;background:var(--oak-soft);border-radius:8px;font-size:13.5px;max-width:66ch}.hub .chapter .learn b{font-family:var(--f-body)}.hub .chapter .mini{margin-top:14px;display:flex;gap:6px;flex-wrap:wrap;align-items:center}.hub .chapter .mini .arrow{color:var(--muted)}.hub .chapter .links{margin-top:12px;display:flex;gap:14px;flex-wrap:wrap;font-size:13.5px}@media (max-width:600px){.hub .chapter{grid-template-columns:1fr}.hub .chapter .num{font-size:22px}}.hub .maptools{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-bottom:12px}.hub .maptools .grp{display:flex;gap:6px;flex-wrap:wrap;align-items:center}.hub .maptools .lbl{font:500 10.5px/1 var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-right:4px}.hub .mapwrap{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:14px;align-items:start}@media (max-width:1100px){.hub .mapwrap{grid-template-columns:1fr}.hub .panel{position:static}}.hub .mapcard{overflow:auto;padding:10px;-webkit-overflow-scrolling:touch}.hub .mapcard svg{display:block;min-width:860px;width:100%;height:auto}.hub .maphint{font-size:12.5px;color:var(--muted);margin:6px 4px 0;display:none}@media (max-width:1500px){.hub .maphint{display:block}}.hub .legend{display:flex;gap:14px;flex-wrap:wrap;font-size:12.5px;color:var(--muted);margin-top:8px;padding:0 4px}.hub .legend span{display:inline-flex;align-items:center;gap:6px}.hub .legend i{display:inline-block;width:22px;height:0;border-top:2px solid var(--muted)}.hub .legend i.dash{border-top-style:dashed}.hub .legend i.dot{border-top-style:dotted}.hub .panel{position:sticky;top:calc(env(safe-area-inset-top,0px) + 12px)}.hub .panel .in{padding:16px 18px}.hub .panel h3{font-size:17px}.hub .panel .sub{color:var(--muted);font-size:13px;margin-top:2px}.hub .panel .desc{margin-top:12px;font-size:14px}.hub .panel .conn{margin-top:14px}.hub .panel .conn h4{font:500 10.5px/1 var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin:12px 0 6px}.hub .panel .conn a{display:block;font-size:13.5px;padding:4px 0;border-top:1px solid var(--line2);color:var(--ink);text-decoration:none}.hub .panel .conn a:hover{color:var(--oak)}.hub .panel .conn a small{color:var(--muted)}.hub .panel .open{margin-top:14px;display:inline-block}.hub .n rect{fill:var(--card);stroke:var(--line);stroke-width:1.2;rx:8}.hub .n text{font:500 12.5px var(--f-body);fill:var(--ink)}.hub .n text.sub{font:400 10.5px var(--f-body);fill:var(--muted)}.hub .n .dot{r:4}.hub .n.k-workflow rect{stroke:var(--oak)}.hub .n.k-table rect{stroke:var(--slate)}.hub .n.k-output rect{stroke:var(--amber)}.hub .n.k-person rect{stroke:var(--line);stroke-dasharray:3 3}.hub .n.k-source rect{stroke:var(--green)}.hub .n{cursor:pointer;transition:opacity .2s}.hub .n.dim{opacity:.18}.hub .n.focus rect{stroke-width:2.4;filter:drop-shadow(0 2px 6px rgba(0,0,0,.12))}.hub .n.lit rect{stroke-width:2}.hub .e{fill:none;stroke-width:1.4;opacity:.75;transition:opacity .2s,stroke-width .2s}.hub .e.dim{opacity:.06}.hub .e.lit{opacity:1;stroke-width:2.6}.hub .e.t-writes{stroke:var(--oak)}.hub .e.t-reads{stroke:var(--slate);stroke-dasharray:5 4}.hub .e.t-calls{stroke:var(--wine)}.hub .e.t-triggers{stroke:var(--green)}.hub .e.t-error{stroke:var(--muted);stroke-dasharray:2 3}.hub .e.t-produces{stroke:var(--amber)}.hub .e.t-sends, .hub .e.t-flow, .hub .e.t-feeds{stroke:var(--muted);stroke-dasharray:6 4}.hub .e.t-maintains{stroke:var(--green);stroke-dasharray:6 4}.hub .colhead{font:500 10.5px var(--f-mono);letter-spacing:.14em;text-transform:uppercase;fill:var(--muted)}.hub .trace-on .n:not(.lit){opacity:.15}.hub .trace-on .e:not(.lit){opacity:.05}.hub .stages{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:12px}.hub .stage{padding:14px 16px;position:relative}.hub .stage .code{font:600 12px/1 var(--f-mono);color:var(--wine);letter-spacing:.08em}.hub .stage h3{margin-top:6px}.hub .stage .who{font-size:12.5px;color:var(--muted);margin-top:4px}.hub .stage .note{font-size:13.5px;margin-top:10px}.hub .stage .docs{margin-top:10px;display:flex;gap:6px;flex-wrap:wrap}.hub .stage .wf{margin-top:10px;font:500 11.5px/1.4 var(--f-mono);color:var(--oak)}.hub .stage .idx{position:absolute;top:10px;right:12px;font:600 11px/1 var(--f-mono);color:var(--muted)}.hub .shape{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-top:8px}.hub .shape .nd{background:var(--field);border:1px solid var(--line);border-radius:7px;padding:6px 10px;font-size:13px}.hub .shape .ar{color:var(--muted)}.hub .shape .br{flex-basis:100%;height:0}.hub .wfcard h3 a{color:inherit;text-decoration:none}.hub .wfcard h3 a:hover{color:var(--oak)}.hub .wfcard .sub{color:var(--muted);font-size:13px;margin-top:3px}.hub .wfcard .desc{font-size:13.5px;margin-top:10px}.hub .wfcard .foot{margin-top:12px;display:flex;justify-content:space-between;gap:10px;align-items:center}.hub .list{margin:0;padding-left:18px;font-size:14px}.hub .list li{margin:4px 0}.hub label.item{display:flex;gap:12px;align-items:flex-start;padding:9px 12px;border-radius:7px;cursor:pointer}.hub label.item:hover{background:var(--bg)}.hub label.item input{position:absolute;opacity:0;width:1px;height:1px}.hub .box{flex:none;width:19px;height:19px;margin-top:2px;border:1.5px solid var(--muted);border-radius:5px;position:relative}.hub label.item input:focus-visible + .box{outline:2px solid var(--oak);outline-offset:2px}.hub label.item input:checked + .box{background:var(--green);border-color:var(--green)}.hub label.item input:checked + .box::after{content:"";position:absolute;left:5px;top:1.5px;width:5px;height:10px;border:solid var(--card);border-width:0 2px 2px 0;transform:rotate(42deg)}.hub label.item .txt{flex:1;min-width:0}.hub label.item input:checked ~ .txt .lbl{color:var(--muted)}.hub .note{display:block;font-size:12.5px;color:var(--muted);margin-top:1px}.hub .step .head{display:flex;align-items:center;gap:12px;padding:14px 18px 10px;border-bottom:1px solid var(--line);flex-wrap:wrap}.hub .step .head h3{flex:1;min-width:12ch}.hub .step .no{font:500 12.5px/1 var(--f-mono);color:var(--oak)}.hub .step .cnt{font:500 12px/1 var(--f-mono);color:var(--muted)}.hub .step .blurb{padding:10px 18px 0;color:var(--muted);font-size:13.5px;max-width:70ch}.hub .step ul{list-style:none;margin:0;padding:8px 8px 10px}.hub .progress{display:flex;align-items:center;gap:14px;margin:14px 0 4px}.hub .bar{flex:1;height:8px;border-radius:99px;background:var(--track);overflow:hidden}.hub .bar i{display:block;height:100%;background:var(--oak);border-radius:99px;transition:width .35s ease}.hub .count{font:500 14px/1 var(--f-mono);font-variant-numeric:tabular-nums}.hub .kenrow{display:grid;grid-template-columns:1fr 150px;gap:12px;align-items:start;padding:12px 0;border-top:1px solid var(--line2)}.hub .kenrow:first-child{border-top:0}.hub .kenrow .item{font-size:14.5px}.hub .kenrow .meta{font-size:12.5px;color:var(--muted);margin-top:3px}.hub .kenrow select{padding:6px 8px;font-size:13px}.hub .kenrow textarea{margin-top:6px;min-height:40px;font-size:13px}@media (max-width:560px){.hub .kenrow{grid-template-columns:1fr}}.hub .kenrow.answered .item{color:var(--muted);text-decoration:line-through}.hub .doccard h3 a{color:inherit;text-decoration:none}.hub .doccard h3 a:hover{color:var(--oak)}.hub .doccard .meta{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:8px}.hub .doccard .sum{font-size:13.5px}.hub .doccard .conn{margin-top:10px;display:flex;gap:6px;flex-wrap:wrap}.hub .reader{max-width:78ch}.hub .reader h1{font-size:28px;margin:0 0 12px}.hub .reader h2{font-size:21px;margin:28px 0 10px}.hub .reader h3{font-size:17px;margin:22px 0 8px}.hub .reader h4{font:600 14px/1.4 var(--f-body);margin:16px 0 6px}.hub .reader p{margin:10px 0;line-height:1.65}.hub .reader ul, .hub .reader ol{margin:8px 0;padding-left:22px}.hub .reader li{margin:4px 0}.hub .reader blockquote{margin:12px 0;padding:8px 14px;border-left:3px solid var(--oak);background:var(--oak-soft);color:var(--ink);border-radius:0 8px 8px 0}.hub .reader code{font-family:var(--f-mono);font-size:.9em;background:var(--field);border:1px solid var(--line2);border-radius:4px;padding:1px 5px}.hub .reader pre{background:var(--field);border:1px solid var(--line);border-radius:8px;padding:12px 14px;overflow-x:auto;font-size:12.5px;line-height:1.5}.hub .reader pre code{border:0;background:transparent;padding:0}.hub .reader table{width:100%;border-collapse:collapse;font-size:13.5px;margin:12px 0}.hub .reader th{text-align:left;font-weight:600;border-bottom:1px solid var(--line);padding:6px 8px;background:var(--field)}.hub .reader td{border-bottom:1px solid var(--line2);padding:6px 8px;vertical-align:top}.hub .reader hr{border:0;border-top:1px solid var(--line);margin:22px 0}.hub .reader .tblwrap{overflow-x:auto}.hub .crumbs{font-size:13px;color:var(--muted);margin-bottom:10px}.hub .crumbs a{color:var(--muted)}.hub .notes .entry{padding:10px 0;border-top:1px solid var(--line2);font-size:14px}.hub .notes .entry .ts{font:500 11.5px/1.6 var(--f-mono);color:var(--oak)}.hub .glist .g{padding:12px 0;border-top:1px solid var(--line2)}.hub .glist .g:first-child{border-top:0}.hub .glist .g b{font-family:var(--f-body);font-weight:600}.hub .glist .g .src{font:500 11px/1.6 var(--f-mono);color:var(--muted);margin-left:8px}.hub .glist .g p{margin-top:3px;font-size:14px}.hub .filters{display:flex;gap:6px;flex-wrap:wrap;margin:10px 0 14px}.hub .searchrow{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.hub .searchrow input{max-width:360px}.hub footer.page{margin-top:40px;color:var(--muted);font-size:12.5px}.hub .kenbar{display:flex;gap:10px;flex-wrap:wrap;align-items:center;justify-content:space-between;margin:6px 0 10px}.hub .kenbar .grp{display:flex;gap:6px;flex-wrap:wrap;align-items:center}.hub .kenbar .lbl{font:500 10.5px/1 var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-right:4px}.hub .kenbar .btn{text-decoration:none}.hub .kenbar .btn .n{font:500 11px/1 var(--f-mono);opacity:.75;margin-left:4px}.hub .urg{display:inline-block;font:600 10px/1 var(--f-mono);letter-spacing:.1em;text-transform:uppercase;padding:4px 7px;border-radius:6px;margin-right:8px;vertical-align:middle;font-style:normal}.hub .urg.now{background:var(--wine-soft);color:var(--wine)}.hub .urg.soon{background:var(--amber-soft);color:var(--amber)}.hub .urg.later{background:var(--slate-soft);color:var(--slate)}.hub .urglegend{display:flex;gap:18px;flex-wrap:wrap;font-size:12.5px;color:var(--muted);margin:0 0 6px}.hub .urglegend span{display:inline-flex;align-items:center;gap:6px}.hub .kengroup .kenhead{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:8px}.hub .kengroup .kenhead h2{margin:0}.hub .kengroup .why{color:var(--muted);font-size:13.5px;margin:4px 0 0;max-width:70ch}.hub .kenrow .item .chip.person{margin-right:8px;vertical-align:middle}.hub .kenrow .meta b{font-weight:600;color:var(--ink)}