/* Prose — blog / legal article typography */
.bh-prose{font-size:1.0625rem;line-height:var(--bh-leading-prose);color:var(--bh-color-text);max-width:var(--bh-measure)}
@container bh-site (min-width:768px){.bh-prose{font-size:var(--bh-text-body-lg)}}
.bh-prose>*+*{margin-top:1.15em}
.bh-prose>:first-child{margin-top:0}
.bh-prose h2{font-size:clamp(1.5rem,1.3rem + .9cqi,2rem);line-height:1.2;letter-spacing:var(--bh-tracking-heading);margin-top:2.1em}
.bh-prose h3{font-size:clamp(1.1875rem,1.1rem + .4cqi,1.375rem);line-height:1.3;letter-spacing:-.01em;margin-top:1.8em}
.bh-prose h2+*,.bh-prose h3+*{margin-top:.6em}
.bh-prose p{text-wrap:pretty}
.bh-prose .bh-lead,.bh-prose>p:first-child.lead{font-size:var(--bh-text-lead);color:var(--bh-color-text-secondary);line-height:1.6}
.bh-prose a{color:var(--bh-color-link);text-decoration:underline;text-underline-offset:.2em;text-decoration-thickness:1px}
.bh-prose a:hover{color:var(--bh-color-link-hover);text-decoration-thickness:2px}
.bh-prose strong{font-weight:600;color:var(--bh-color-text-strong)}
.bh-prose ul,.bh-prose ol{padding-left:1.4em}
.bh-prose li+li{margin-top:.45em}
.bh-prose li::marker{color:var(--bh-color-text-secondary)}
.bh-prose ul li::marker{content:"■  ";font-size:.6em;color:var(--bh-color-accent)}
.bh-prose ol li::marker{font-family:var(--bh-font-mono);font-size:.85em;font-weight:500}
.bh-prose blockquote{margin:1.8em 0;padding:4px 0 4px 24px;border-left:2px solid var(--bh-color-border-strong);font-size:var(--bh-text-lead);line-height:1.5;color:var(--bh-color-text-strong)}
.bh-prose blockquote p+p{margin-top:.6em}
.bh-prose blockquote cite{display:block;margin-top:12px;font-style:normal;font-size:var(--bh-text-sm);color:var(--bh-color-text-secondary)}
.bh-prose code{font-family:var(--bh-font-mono);font-size:.86em;background:var(--bh-color-surface-sunken);padding:.12em .38em;border-radius:var(--bh-radius-xs);color:var(--bh-color-text-strong)}
.bh-prose pre{margin:1.6em 0;padding:18px 20px;background:var(--bh-petrol-950);color:var(--bh-night-900);border-radius:var(--bh-radius-md);overflow-x:auto;font-size:14px;line-height:1.65;border:1px solid var(--bh-color-border)}
.bh-prose pre code{background:none;padding:0;color:inherit;font-size:inherit}
.bh-prose hr{border:0;border-top:1px solid var(--bh-color-border);margin:2.6em 0}
.bh-prose figure{margin:2em 0}
.bh-prose figure img{width:100%;height:auto;border:1px solid var(--bh-color-border);border-radius:var(--bh-radius-md)}
.bh-prose figcaption,.bh-frame-figure figcaption{margin-top:10px;font-size:var(--bh-text-sm);color:var(--bh-color-text-secondary);line-height:1.5}
.bh-prose .bh-table-wrap{margin:1.8em 0}
/* Table */
.bh-table-wrap{overflow-x:auto;border:1px solid var(--bh-color-border);border-radius:var(--bh-radius-lg);background:var(--bh-color-surface);-webkit-overflow-scrolling:touch}
.bh-table{width:100%;border-collapse:collapse;font-size:var(--bh-text-sm);line-height:1.5}
.bh-table caption{caption-side:top;text-align:left;padding:14px 16px;font-weight:600;color:var(--bh-color-text-strong);border-bottom:1px solid var(--bh-color-border);font-size:15px}
.bh-table th{text-align:left;font-family:var(--bh-font-mono);font-size:var(--bh-text-label);font-weight:500;letter-spacing:var(--bh-tracking-label);text-transform:uppercase;color:var(--bh-color-text-secondary);background:var(--bh-color-bg-subtle);padding:12px 16px;border-bottom:1px solid var(--bh-color-border);white-space:nowrap}
.bh-table td{padding:14px 16px;border-bottom:1px solid var(--bh-color-border-subtle);vertical-align:top;color:var(--bh-color-text)}
.bh-table tbody tr:last-child td{border-bottom:0}
.bh-table td:first-child{font-weight:600;color:var(--bh-color-text-strong)}
.bh-table tbody tr:hover td{background:var(--bh-color-bg-subtle)}
@container bh-site (max-width:767px){.bh-table--stack thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}.bh-table--stack tr{display:block;padding:12px 16px;border-bottom:1px solid var(--bh-color-border)}.bh-table--stack tbody tr:last-child{border-bottom:0}.bh-table--stack td{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,3fr);gap:12px;padding:6px 0;border:0}.bh-table--stack td::before{content:attr(data-label);font-family:var(--bh-font-mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--bh-color-text-secondary);padding-top:2px;font-weight:500}.bh-table--stack tbody tr:hover td{background:none}}
/* Screenshot frame — replaces photography */
.bh-frame-figure{margin:0}
.bh-frame{background:var(--bh-frame-bg);border:1px solid var(--bh-frame-border);border-radius:var(--bh-frame-radius);box-shadow:var(--bh-shadow-frame);overflow:hidden}
.bh-frame--flat{box-shadow:none}
.bh-frame__bar{display:flex;align-items:center;gap:12px;height:36px;padding:0 12px;background:var(--bh-frame-bar);border-bottom:1px solid var(--bh-frame-border)}
.bh-frame__dots{display:flex;gap:6px;flex:none}
.bh-frame__dots i{width:8px;height:8px;border-radius:50%;background:var(--bh-color-border-strong);opacity:.6}
.bh-frame__url{flex:1;min-width:0;max-width:420px;margin:0 auto;height:22px;display:flex;align-items:center;gap:6px;padding:0 10px;background:var(--bh-color-surface);border:1px solid var(--bh-frame-border);border-radius:var(--bh-radius-sm);font-family:var(--bh-font-mono);font-size:11px;color:var(--bh-color-text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bh-frame__url .bh-icon{flex:none;color:var(--bh-color-text-tertiary)}
.bh-frame__spacer{width:34px;flex:none}
.bh-frame--app .bh-frame__bar{height:40px;justify-content:space-between}
.bh-frame__app{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:600;color:var(--bh-color-text-strong);min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bh-frame__app i{width:10px;height:10px;background:var(--bh-color-accent);flex:none}
.bh-frame__app span{color:var(--bh-color-text-tertiary);font-weight:500}
.bh-frame__body{position:relative;aspect-ratio:var(--bh-frame-ratio,16/10);background:var(--bh-color-surface-sunken)}
.bh-frame__body img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:top left}
.bh-frame__ph{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:24px;text-align:center;background-image:repeating-linear-gradient(135deg,transparent 0 11px,var(--bh-color-border-subtle) 11px 12px);font-family:var(--bh-font-mono);font-size:12px;color:var(--bh-color-text-secondary)}
.bh-frame__ph strong{font-weight:600;color:var(--bh-color-accent-text);font-size:12px;letter-spacing:.04em}
.bh-frame__ph span{max-width:36ch;line-height:1.5}
.bh-frame__mark{position:absolute;transform:translate(-50%,-50%);width:26px;height:26px;display:grid;place-items:center;background:var(--bh-color-accent);color:var(--bh-petrol-950);font-family:var(--bh-font-mono);font-size:12px;font-weight:700;border-radius:var(--bh-radius-sm);box-shadow:0 0 0 3px var(--bh-color-surface)}
.bh-frame__legend{list-style:none;margin:12px 0 0;padding:0;display:grid;gap:8px;font-size:var(--bh-text-sm);color:var(--bh-color-text-secondary)}
.bh-frame__legend li{display:grid;grid-template-columns:26px minmax(0,1fr);gap:10px;align-items:baseline}
.bh-frame__legend b{display:grid;place-items:center;width:22px;height:22px;background:var(--bh-color-accent);color:var(--bh-petrol-950);font-family:var(--bh-font-mono);font-size:11px;border-radius:var(--bh-radius-xs)}
/* Diagrams — nodes, edges, labels */
.bh-flow{display:flex;flex-direction:column;align-items:stretch;margin:0;padding:0;list-style:none}
@container bh-site (min-width:768px){.bh-flow:not(.bh-flow--vertical){flex-direction:row;align-items:stretch}}
.bh-node{display:flex;align-items:center;gap:12px;padding:14px 16px;min-height:64px;border:1px solid var(--bh-diagram-node-border);border-radius:var(--bh-radius-md);background:var(--bh-diagram-node-bg);min-width:0;position:relative}
.bh-flow>.bh-node{flex:1 1 0}
.bh-node__icon{flex:none;color:var(--bh-color-primary)}
.bh-node__text{display:flex;flex-direction:column;gap:2px;min-width:0}
.bh-node__label{font-size:15px;font-weight:600;line-height:1.25;color:var(--bh-color-text-strong)}
.bh-node__sub{font-family:var(--bh-font-mono);font-size:11px;letter-spacing:.02em;color:var(--bh-color-text-secondary);line-height:1.35}
.bh-node--core{background:var(--bh-diagram-node-core-bg);border-color:var(--bh-diagram-node-core-bg)}
.bh-node--core .bh-node__label{color:var(--bh-diagram-node-core-text)}
.bh-node--core .bh-node__sub{color:var(--bh-diagram-node-core-text);opacity:.85}
.bh-node--core .bh-node__icon{color:var(--bh-diagram-node-core-text)}
.bh-node--external{border-style:dashed;background:transparent}
.bh-node--output::after{content:"";position:absolute;top:-1px;right:-1px;width:10px;height:10px;background:var(--bh-diagram-accent);border-top-right-radius:var(--bh-radius-md)}
.bh-edge{position:relative;flex:0 0 40px;display:flex;align-items:center;justify-content:center;color:var(--bh-diagram-line)}
.bh-edge::before{content:"";position:absolute;left:50%;top:0;bottom:6px;width:1px;background:var(--bh-diagram-line)}
.bh-edge::after{content:"";position:absolute;left:calc(50% - 4px);bottom:2px;border:4px solid transparent;border-top:6px solid var(--bh-diagram-line);border-bottom:0}
.bh-edge__label{position:relative;z-index:1;margin-left:120px;font-family:var(--bh-font-mono);font-size:10.5px;letter-spacing:.04em;color:var(--bh-color-text-secondary);background:var(--bh-color-bg);padding:1px 6px;white-space:nowrap}
@container bh-site (min-width:768px){.bh-flow:not(.bh-flow--vertical)>.bh-edge{flex:0 0 clamp(28px,4cqi,56px);flex-direction:column}.bh-flow:not(.bh-flow--vertical)>.bh-edge::before{left:0;right:6px;top:50%;bottom:auto;width:auto;height:1px}.bh-flow:not(.bh-flow--vertical)>.bh-edge::after{left:auto;right:0;top:calc(50% - 4px);bottom:auto;border:4px solid transparent;border-left:6px solid var(--bh-diagram-line);border-right:0}.bh-flow:not(.bh-flow--vertical)>.bh-edge .bh-edge__label{position:absolute;bottom:calc(50% + 6px);margin:0;background:none;padding:0}}
.bh-hub{display:grid;gap:0}
.bh-hub__col{display:grid;gap:10px;grid-template-columns:repeat(2,minmax(0,1fr))}
.bh-hub__head{grid-column:1/-1;font-family:var(--bh-font-mono);font-size:11px;letter-spacing:var(--bh-tracking-label);text-transform:uppercase;color:var(--bh-color-text-secondary)}
.bh-hub__link{height:40px;position:relative}
.bh-hub__link::before{content:"";position:absolute;left:50%;top:4px;bottom:8px;width:1px;background:var(--bh-diagram-line)}
.bh-hub__link::after{content:"";position:absolute;left:calc(50% - 4px);bottom:4px;border:4px solid transparent;border-top:6px solid var(--bh-diagram-line);border-bottom:0}
.bh-hub__core{display:flex;flex-direction:column;gap:14px;padding:20px;border-radius:var(--bh-radius-lg);background:var(--bh-diagram-node-core-bg);color:var(--bh-diagram-node-core-text)}
.bh-hub__core-label{display:flex;align-items:center;gap:10px;font-size:var(--bh-text-h4);font-weight:600}
.bh-hub__core-sub{font-family:var(--bh-font-mono);font-size:11px;opacity:.85;letter-spacing:.02em}
.bh-hub__apps{display:flex;flex-wrap:wrap;gap:6px;list-style:none;margin:0;padding:0}
.bh-hub__apps li{font-size:12px;font-weight:500;padding:4px 8px;border:1px solid currentColor;border-radius:var(--bh-radius-sm);opacity:.92}
@container bh-site (min-width:1024px){.bh-hub{grid-template-columns:minmax(0,1fr) 56px minmax(0,1.05fr) 56px minmax(0,1fr);align-items:stretch}.bh-hub__col{grid-template-columns:minmax(0,1fr);align-content:center}.bh-hub__link{height:auto;display:flex;flex-direction:column;justify-content:center}.bh-hub__link::before{left:4px;right:10px;top:50%;bottom:auto;width:auto;height:1px}.bh-hub__link::after{left:auto;right:4px;top:calc(50% - 4px);bottom:auto;border:4px solid transparent;border-left:6px solid var(--bh-diagram-line);border-right:0}.bh-hub__core{justify-content:center}.bh-hub__link::before,.bh-hub__link::after{display:none}.bh-hub__col:first-child .bh-node::before,.bh-hub__col:last-child .bh-node::before{content:"";position:absolute;top:calc(50% - 4.5px);width:56px;height:9px;background:var(--bh-diagram-line);clip-path:polygon(0 4px,46px 4px,46px 0,56px 4.5px,46px 9px,46px 5px,0 5px)}.bh-hub__col:first-child .bh-node::before{left:100%}.bh-hub__col:last-child .bh-node::before{right:100%}}
