/* Blueprint proof (dist-v3/blueprint.html). The v3 home re-set in the manner of an architect's
   sheet: warm paper, dark bands, thin rules, square corners, mono annotations, one accent
   (Reno The 6's tape orange; water blue in diagrams only). Loaded last, over the v3 stylesheets; every rule is scoped to :root.bp
   so v3 itself is untouched. No gradients, glow, glass, shadows or pills. */

@font-face{font-family:Archivo;src:url('fonts/archivo-variable-latin.woff2') format('woff2');
  font-weight:100 900;font-stretch:62% 125%;font-style:normal;font-display:swap}

/* --- Tokens: paper by default, ink inside the dark bands ------------------------------- */
:root.bp[data-palette]{
  --ink:#121211;--paper:#f3f1ec;--surface:#f8f6f2;--wash:#e6e2da;--concrete:#e6e2da;
  --muted:#57534d;--gray:#6b665e;--gray-dark:#57534d;--line:#c9c3b8;
  --control-line:#8a857c;--dark-line:#c9c3b8;--plate:var(--surface);--closing-bg:#121211;
  --hero-bg:#121211;--hero-text:#f3f1ec;--hero-muted:#8a857c;
  --signal:#ff5a1f;--signal-soft:#ff9a70;--signal-deep:#a33a0d;--on-signal:#121211;
  --steel:#57534d;--steel-soft:#57534d;--steel-deep:#1f1e1c;--gap:#8a857c;
  --accent:var(--signal);--accent-light:var(--signal-soft);--accent-deep:var(--signal-deep);
  --amber:var(--signal);--amber-light:var(--signal-soft);--amber-deep:var(--signal-deep);
  --brand:var(--signal);--brand-text:var(--on-signal);--hero-accent:var(--signal);
  --font-sans:Archivo,Arial,sans-serif;--font-mono:Plex,ui-monospace,monospace;
  --bp-diagram:#3d7ea6;
  --radius:0;--bp-ease:cubic-bezier(.22,1,.36,1);--bp-ease-io:cubic-bezier(.77,0,.175,1);
  color-scheme:light;
}
:root.bp .bp-hero,:root.bp .site-header,:root.bp .site-footer,:root.bp .bp-preview,
:root.bp #showcase,:root.bp #cost .cost-answer,:root.bp .bp-proof{
  --ink:#f3f1ec;--paper:#121211;--surface:#1f1e1c;--wash:#1f1e1c;
  --muted:#a8a39a;--gray:#8a857c;--gray-dark:#8a857c;--line:#2e2c29;
  --control-line:#57534d;--dark-line:#2e2c29;--steel:#8a857c;--steel-soft:#c9c3b8;
  color-scheme:dark;color:var(--ink);
}

/* --- Type --------------------------------------------------------------------------- */
:root.bp body.website{background:var(--paper);color:var(--ink);font-family:var(--font-sans);font-stretch:100%}
:root.bp body.website :is(h1,h2,h3){font-family:Archivo,Arial,sans-serif;font-stretch:112%;
  font-weight:640;letter-spacing:-.025em}
:root.bp body.website h2{font-size:clamp(2rem,3.4vw,3.4rem);line-height:.98}
:root.bp body.website h3{font-weight:600;letter-spacing:-.015em}
:root.bp body.website .eyebrow,:root.bp .bp-eyebrow{font-family:var(--font-mono);font-size:11px;
  font-weight:400;letter-spacing:.09em;text-transform:uppercase;color:var(--muted)}
:root.bp .bp-num{color:var(--signal-deep);margin-right:14px}
:root.bp .bp-num:empty{display:none}
/* On the dark bands the deep orange is too dim (audit B10); the bright signal reads at 6:1. */
:root.bp body.website #showcase .bp-num,:root.bp .bp-proof .bp-num{color:var(--signal)}
:root.bp body.website .text-link{color:var(--ink);text-decoration:underline;text-decoration-thickness:1px;
  text-underline-offset:4px;text-decoration-color:var(--signal)}

/* --- Buttons: square, tape fill, ink text- ------------------------------------------ */
/* Labels in Archivo semibold: the mono face ships in one light weight, too faint on tape orange. */
:root.bp body.website .button{border-radius:0;box-shadow:none;font-family:var(--font-sans);
  font-size:13px;letter-spacing:.06em;text-transform:uppercase;font-weight:650}
:root.bp body.website .button--primary{background:var(--signal);color:#121211;border:1px solid var(--signal)}
:root.bp body.website .button--primary:hover{background:#121211;color:var(--signal);border-color:var(--signal)}
:root.bp body.website .button--secondary{background:transparent;color:var(--ink);border:1px solid currentColor}
:root.bp body.website .button--secondary:hover{background:var(--ink);color:var(--paper)}

/* --- Header: a dark bar with mono caps links and the main action ------------------- */
/* Full-bleed bands are painted with border-image outsets, not a 100vmax box-shadow plus
   clip-path: the clip made each band its own layer, which painted over the sticky heading
   rail and repainted (flickered) at band edges while scrolling. */
/* Focused items scroll clear of the sticky header (audit B2, WCAG 2.4.11). */
:root.bp{scroll-padding-top:var(--bp-head-clear,104px)}
:root.bp body.website .site-header{position:sticky;top:0;z-index:40;background:#121211;
  border-image:linear-gradient(to top,var(--bp-head-rule,transparent) 1px,#121211 1px) fill 0//0 100vmax}
:root.bp.bp-scrolled body.website .site-header{--bp-head-rule:#2e2c29}
:root.bp body.website .site-header .wordmark{color:#f3f1ec}
:root.bp body.website #site-nav a{font-family:var(--font-mono);font-size:11px;letter-spacing:.09em;
  text-transform:uppercase;color:#c9c3b8}
:root.bp body.website #site-nav a:hover{color:var(--signal)}
:root.bp body.website .bp-nav-cta{padding:10px 16px;min-height:0;white-space:nowrap;margin-left:24px}
:root.bp body.website .site-header{display:flex;align-items:center}
:root.bp body.website .site-header #site-nav{margin-left:auto;order:4}
:root.bp body.website .site-header .bp-nav-cta{order:5}
@media (max-width:900px){
  :root.bp body.website .bp-nav-cta{display:none}
}

/* --- Preview bar (L-9, only once the labels are approved) --------------------------- */
:root.bp .bp-preview{display:flex;gap:18px;justify-content:center;padding:8px 16px;background:#121211;
  border-bottom:1px solid #2e2c29;font-family:var(--font-mono);font-size:11px;letter-spacing:.09em;
  text-transform:uppercase;color:#8a857c}
:root.bp .bp-preview a{color:var(--signal)}

/* v3's band letters and level markers give way to the sheet's section numbers (L-1). */
:root.bp body.website .band-head::before,:root.bp body.website main .site-section::after{content:none;display:none}
:root.bp body.website :is(.band-head,.ribbon-head) h2{font-size:clamp(1.9rem,2.6vw,2.75rem)}

/* --- Layout helpers ------------------------------------------------------------------- */
:root.bp .bp-wrap{max-width:var(--content-width);margin:0 auto;padding:0 var(--page-gutter)}
:root.bp body.website main>.site-section{border-top:1px solid var(--line);border-radius:0}

/* --- Hero: dark ground, graph grid, the gap drawing -------------------------------- */
:root.bp .bp-hero{position:relative;background-color:#121211;padding:clamp(56px,8vw,120px) 0 clamp(64px,8vw,112px);
  background-image:linear-gradient(#1c1b19 1px,transparent 1px),linear-gradient(90deg,#1c1b19 1px,transparent 1px);
  background-size:56px 56px;background-position:-1px -1px;overflow:hidden}
:root.bp .bp-hero-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:clamp(32px,5vw,80px);align-items:center}
:root.bp .bp-hero .bp-eyebrow{color:#8a857c;margin:0 0 28px}
:root.bp .bp-hero h1{margin:0;font-size:clamp(2.4rem,3.95vw,4.1rem);line-height:.98;color:#f3f1ec;
  font-family:Archivo,Arial,sans-serif;font-stretch:112%;font-weight:640;letter-spacing:-.03em}
:root.bp .bp-line{display:block;overflow:hidden;padding-bottom:.06em}
:root.bp .bp-line>span{display:inline-block;position:relative}
:root.bp .bp-line--quiet{color:#8a857c}
:root.bp .bp-line--close>span::after{content:'';position:absolute;left:0;right:0;bottom:-.04em;height:3px;
  background:var(--signal);transform-origin:left center}
:root.bp .bp-lede{margin:32px 0 0;max-width:34em;color:#c9c3b8;font-size:clamp(1.05rem,1.3vw,1.2rem);line-height:1.55}
:root.bp .bp-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:36px}
:root.bp .bp-hero-fig{margin:0;color:#c9c3b8}
/* The landed application in v3's hero is plain white, not the figure's warm grey. */
:root.bp .bp-hero-fig{--ink-landed:#f3f1ec}
/* v3's own hero stage (hero-stage.js) needs a wider column than the square FIG. 01 drawing. */
:root.bp .bp-hero-grid:has(.bp-hero-fig--v3){grid-template-columns:minmax(0,1.08fr) minmax(0,1fr)}
:root.bp .bp-hero-drawing{display:block;width:100%;height:auto;max-width:560px;margin-left:auto}

/* --- Drawings, shared ---------------------------------------------------------------- */
:root.bp svg .bp-t{font-family:var(--font-mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;fill:currentColor}
:root.bp svg .bp-t--acc{fill:var(--signal)}
:root.bp svg .bp-t--ink{fill:var(--ink)}
:root.bp svg .bp-t--dim{fill:#8a857c}
:root.bp svg .bp-t--acc-deep{fill:var(--signal-deep);font-weight:500}
:root.bp svg line,:root.bp svg path,:root.bp svg rect{vector-effect:non-scaling-stroke}
:root.bp .bp-grid line{stroke:#e2ded5;stroke-width:1}
:root.bp .bp-grid--dark line{stroke:#1c1b19}
:root.bp .bp-rule,:root.bp .bp-tick{fill:none;stroke:#8a857c;stroke-width:1}
:root.bp .bp-hatchfill{stroke:none}

/* FIG. 01 */
:root.bp .bp-hero-drawing pattern line{stroke:#3a3834;stroke-width:1}
:root.bp .bp-hero-drawing .bp-plate{fill:#1f1e1c;stroke:#57534d;stroke-width:1}
:root.bp .bp-hero-drawing .bp-plate--acc{stroke:var(--signal)}
:root.bp .bp-hero-drawing .bp-t--ink{fill:#f3f1ec}
:root.bp .bp-codeline{fill:#3a3834}
:root.bp .bp-caret{fill:var(--signal)}
:root.bp .bp-ground .bp-rule{stroke:#c9c3b8;stroke-width:1.5}
:root.bp .bp-bracket .bp-rule{stroke:var(--signal)}
:root.bp .bp-dim .bp-tick{stroke:#c9c3b8}
:root.bp .bp-layer,:root.bp .bp-bar rect{transform-box:fill-box}
/* End state (reduced motion, and where the sequence finishes): layers built, Groundfloor,
   Hours, the code through to production as applications and agents, running on a cloud. */
:root.bp .bp-layer-h{stroke:#57534d;stroke-width:1;stroke-dasharray:4 4}
:root.bp svg .bp-layer-t{fill:#f3f1ec}
:root.bp .bp-wallface{stroke:var(--signal);stroke-width:3;opacity:0}
:root.bp .bp-riser{fill:none;stroke:#6aa6cc;stroke-width:1.5;vector-effect:none}
:root.bp .bp-riser-end{fill:#6aa6cc}
:root.bp .bp-hero-drawing .bp-t--water{fill:#6aa6cc}
:root.bp :is(.bp-code-a,.bp-ready,.bp-br-a,.bp-dim-a,.bp-prod,.bp-env){opacity:0}
:root.bp .bp-hero-drawing[data-env="0"] .bp-env[data-env="0"],:root.bp .bp-hero-drawing[data-env="1"] .bp-env[data-env="1"],
:root.bp .bp-hero-drawing[data-env="2"] .bp-env[data-env="2"]{opacity:1}

/* FIG. 02 */
:root.bp .bp-cost-fig{margin:clamp(28px,4vw,48px) 0;padding:20px 0 8px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
:root.bp .bp-cost-drawing{display:block;width:100%;height:auto}
:root.bp .bp-cost-drawing pattern line{stroke:#57534d;stroke-width:1}
:root.bp .bp-gridline{stroke:#d6d1c7;stroke-width:1;stroke-dasharray:2 4}
:root.bp .bp-bar-solid{fill:#121211}
:root.bp .bp-bar-range{stroke:#121211;stroke-width:1}
:root.bp .bp-bar-acc{fill:var(--signal)}
:root.bp .bp-dimh .bp-rule{stroke:#57534d}

/* FIG. 03, the platform stack */
:root.bp .bp-section-drawing{display:block;width:100%;height:auto}
:root.bp svg .bp-t--water{fill:var(--bp-diagram)}
:root.bp svg .bp-t--onbtn{fill:#121211}
:root.bp svg .bp-t--s{font-size:10px}
/* The application screens: line-drawn, ink on surface. Tape orange marks the active thing in a
   screen; water blue marks what the platform provides (the badge, the tag, the services used). */
:root.bp .bp-win{fill:var(--surface);stroke:#121211;stroke-width:1.5}
:root.bp .bp-win-rule{stroke:#121211;stroke-width:1}
:root.bp .bp-win-dot,:root.bp .bp-btn,:root.bp .bp-under,:root.bp .bp-rail-mark{fill:var(--signal)}
:root.bp .bp-tick-w{fill:none;stroke:var(--bp-diagram);stroke-width:1.5}
:root.bp .bp-tag-mark{fill:var(--bp-diagram)}
:root.bp .bp-chrome{fill:none;stroke:#8a857c;stroke-width:1}
:root.bp .bp-addr,:root.bp .bp-band-w{fill:#ece9e2;stroke:none}
:root.bp .bp-logo{fill:#121211}
:root.bp .bp-line-w{fill:#d6d1c7}
:root.bp .bp-card{fill:none;stroke:#c9c3b8;stroke-width:1}
:root.bp .bp-sec{fill:none;stroke:#c9c3b8;stroke-width:1}
:root.bp .bp-sec--on{fill:#121211;stroke:#121211}
:root.bp .bp-rail-icon{fill:none;stroke:#57534d;stroke-width:1}
:root.bp .bp-rail-row{fill:transparent}
:root.bp .bp-rail-mark{opacity:0}
:root.bp .bp-rail-app.is-act .bp-rail-row{fill:var(--wash)}
:root.bp .bp-rail-app.is-act .bp-rail-mark{opacity:1}
:root.bp .bp-rail-app.is-act .bp-rail-icon{stroke:var(--signal);fill:var(--signal)}
:root.bp .bp-scr,:root.bp .bp-canvas-label{opacity:0;pointer-events:none}
:root.bp .bp-scr.is-on,:root.bp .bp-canvas-label.is-on{opacity:1}
:root.bp .bp-rail-app{opacity:0}
:root.bp .bp-rail-app.is-in{opacity:1}
:root.bp .bp-scr,:root.bp .bp-rail-app{transform-box:fill-box}
:root.bp .bp-slab-band{fill:#121211}
:root.bp svg .bp-t--band{fill:#f3f1ec}
:root.bp .bp-slab-box{fill:none;stroke:#121211;stroke-width:2;pointer-events:none}
:root.bp .bp-slab-rule{stroke:#121211;stroke-width:1}
:root.bp .bp-bus-line{fill:none;stroke:var(--bp-diagram);stroke-width:1.5}
:root.bp .bp-cloud-box{fill:var(--surface);stroke:#121211;stroke-width:1.5}
:root.bp .bp-slot{fill:#d6d1c7}
:root.bp .bp-led{fill:var(--bp-diagram)}
:root.bp .bp-room{cursor:pointer}
:root.bp .bp-room-fill{fill:var(--surface);stroke:none;transition:fill .45s var(--bp-ease)}
:root.bp .bp-room:hover .bp-room-fill{fill:#e6e2da}
:root.bp .bp-room.is-used .bp-room-fill{fill:#d8e5ee}
:root.bp .bp-room.is-used:hover .bp-room-fill{fill:#c5d8e5}
:root.bp svg .bp-room.is-used .bp-room-n{fill:#24506b}
:root.bp .bp-room.is-on .bp-room-fill{fill:var(--signal)}
:root.bp svg .bp-room.is-on .bp-room-n{fill:#121211}
:root.bp .bp-drop{fill:none;stroke:var(--bp-diagram);stroke-width:3;stroke-dasharray:6 6;opacity:0;transition:opacity .4s linear}
:root.bp .bp-cloud.is-lit .bp-cloud-box{fill:#d8e5ee;stroke:var(--bp-diagram);stroke-width:2}
:root.bp .bp-cloud-box{transition:fill .4s linear,stroke .4s linear}
:root.bp svg .bp-room-n{font-size:18px;fill:#121211;letter-spacing:0}
:root.bp .bp-app,:root.bp .bp-cloud,:root.bp .bp-room{transform-box:fill-box}

/* --- Proof band: partners and clients, then compatibility (dark, continues the hero) ---- */
:root.bp .bp-proof{background:#121211;color:#f3f1ec;border-top:1px solid #2e2c29;padding:clamp(40px,5vw,64px) 0 clamp(48px,6vw,80px)}
:root.bp .bp-proof-head{display:flex;justify-content:space-between;align-items:baseline;gap:16px;flex-wrap:wrap;margin-bottom:18px}
:root.bp .bp-proof .bp-eyebrow{margin:0;color:#8a857c}
:root.bp body.website .bp-proof .text-link{color:#f3f1ec;font-size:14px}
/* A schedule of cells, ruled like the sheet: eight across, two rows. */
:root.bp .bp-logos{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(8,minmax(0,1fr));
  border-top:1px solid #2e2c29;border-left:1px solid #2e2c29}
:root.bp .bp-logos li{display:flex;align-items:center;justify-content:center;height:88px;padding:0 14px;
  border-right:1px solid #2e2c29;border-bottom:1px solid #2e2c29}
:root.bp .bp-logos img{display:block;height:30px;width:auto;max-width:100%;object-fit:contain;opacity:.86}
:root.bp .bp-compat{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(28px,5vw,80px);
  margin-top:clamp(48px,6vw,80px);align-items:start}
:root.bp .bp-compat-head h2{margin:14px 0 0;color:#f3f1ec;font-size:clamp(1.9rem,2.6vw,2.75rem)}
:root.bp .bp-compat-head>p:not(.bp-eyebrow){margin:18px 0 0;color:#c9c3b8;max-width:30em}
:root.bp .bp-compat-row{display:grid;grid-template-columns:120px minmax(0,1fr);gap:16px;padding:16px 0;border-top:1px solid #2e2c29}
:root.bp .bp-compat-row:last-of-type{border-bottom:1px solid #2e2c29}
:root.bp .bp-compat-row .bp-eyebrow{padding-top:6px}
:root.bp .bp-compat-row ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px 22px}
:root.bp .bp-compat-row li{display:inline-flex;align-items:center;gap:9px;padding:4px 0;font-family:var(--font-mono);
  font-size:13px;letter-spacing:.02em;color:#f3f1ec}
:root.bp .bp-compat-row img{width:16px;height:16px;filter:invert(.94)}
:root.bp .bp-compat-row i{width:8px;height:8px;background:var(--signal);margin:0 4px}
:root.bp .bp-compat-claim{margin:24px 0 0;color:#c9c3b8;max-width:40em}
:root.bp .bp-compat-claim strong{color:var(--signal)}

/* --- 01 Cost ----------------------------------------------------------------------------- */
:root.bp body.website #cost .band-head h2{max-width:14em}
:root.bp body.website #cost .rail-rule{background:var(--ink);height:1px}
:root.bp body.website .v3-metrics article{background:transparent;border:0;border-top:1px solid var(--ink);border-radius:0;padding:18px 0 0}
:root.bp body.website .v3-metrics strong{color:var(--ink);font-family:Archivo,Arial,sans-serif;font-stretch:112%;font-weight:640;letter-spacing:-.03em}
:root.bp body.website .v3-metrics strong small{color:var(--muted)}
:root.bp body.website .cost-routes{gap:0}
:root.bp body.website .cost-routes article{background:transparent;border:0;border-top:1px solid var(--line);
  border-radius:0;box-shadow:none;padding:22px 24px 26px 0}
:root.bp body.website .cost-routes article+article{padding-left:24px;border-left:1px solid var(--line)}
:root.bp body.website #cost .cost-answer{background:#121211;border:0;border-radius:0;
  border-image:conic-gradient(#121211 0 0) fill 0//0 100vmax;padding:40px 0;margin:48px 0}
/* Beside the sticky heading rail the band bleeds right only, so it never covers the heading. */
@media(min-width:1021px){
  :root.bp body.website #cost .cost-answer{border-image-outset:0 100vmax 0 0;margin-left:-40px;padding-left:40px}
}
:root.bp body.website #cost .cost-answer strong{color:var(--signal);font-family:Archivo,Arial,sans-serif;font-stretch:112%}
:root.bp body.website #cost .cost-answer h3{color:#f3f1ec}
:root.bp body.website #cost .cost-answer p:not(.eyebrow){color:#c9c3b8}
:root.bp body.website #cost .basis{color:var(--muted)}

/* --- 02 Conversation: graph paper ------------------------------------------------------- */
:root.bp body.website #conversation.galaxy-conversation{background-color:var(--paper);border-color:var(--line);
  background-image:linear-gradient(#e6e2da 1px,transparent 1px),linear-gradient(90deg,#e6e2da 1px,transparent 1px);
  background-size:24px 24px}
:root.bp body.website #conversation #conversation-component .transcript,
:root.bp body.website #conversation #chat-detail{background:var(--surface);border:1px solid #121211;border-top:3px solid #121211;border-radius:0}
:root.bp body.website #conversation #conversation-component .question{background:var(--wash);border-color:var(--line);border-radius:0}
:root.bp body.website #conversation #conversation-component .composer{background:var(--surface);border-color:#121211;border-radius:0}
:root.bp body.website #conversation .question-starters button{background:var(--surface);border-radius:0;border-color:var(--line)}
:root.bp body.website #conversation .question-starters button:hover{border-color:#121211;background:var(--wash)}
:root.bp body.website #conversation .conversation-tools button{border-radius:0}
:root.bp body.website #conversation .answer-card dt{color:var(--muted)}
:root.bp body.website #conversation .answer-card dl>div{border-top-color:var(--line)}

/* --- 03 Relationships: the cross-section beside the explorer --------------------------- */
:root.bp body.website #relationships{grid-template-columns:1fr}
:root.bp body.website #relationships>.section-heading{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:clamp(24px,4vw,64px);align-items:end}
:root.bp body.website #relationships>.section-heading>p{margin:0;max-width:34em}
:root.bp body.website #relationships .relationship-detail{display:block}
:root.bp body.website #relationships .bp-xsec{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);
  gap:clamp(28px,4vw,64px);align-items:start;margin-top:clamp(28px,4vw,48px)}
:root.bp body.website #relationships .bp-section-fig{margin:0;position:sticky;top:96px}
:root.bp .bp-section-fig[data-lit="0"] .bp-drop[data-cloud="0"],:root.bp .bp-section-fig[data-lit="1"] .bp-drop[data-cloud="1"],
:root.bp .bp-section-fig[data-lit="2"] .bp-drop[data-cloud="2"]{opacity:1}
:root.bp .bp-fig-tabs{display:flex;flex-wrap:wrap;gap:0;border-bottom:1px solid #121211;margin-bottom:8px}
:root.bp .bp-fig-tab{font:500 11px/1 var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);
  background:transparent;border:0;border-bottom:3px solid transparent;margin-bottom:-1px;padding:14px 14px 12px;cursor:pointer}
:root.bp .bp-fig-tab:first-child{padding-left:0}
:root.bp .bp-fig-tab:hover{color:var(--ink)}
:root.bp .bp-fig-tab[aria-pressed="true"]{color:var(--ink);border-bottom-color:var(--signal)}
:root.bp .bp-fig-tab:focus-visible{outline:2px solid var(--signal);outline-offset:2px}
:root.bp .bp-fig-cap{display:grid;margin-top:6px;border-top:1px solid var(--line);padding-top:14px}
:root.bp .bp-cap{grid-area:1/1;visibility:hidden}
:root.bp .bp-section-fig[data-mode="fed"] .bp-cap[data-mode="fed"],:root.bp .bp-section-fig[data-mode="solo"] .bp-cap[data-mode="solo"]{visibility:visible}
:root.bp .bp-cap p{margin:0;max-width:40em}
:root.bp .bp-cap-sub{font:500 11px/1.5 var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:#2f6a8f}
:root.bp .bp-cap-a{margin-top:8px!important;font-weight:600;color:var(--ink)}
:root.bp .bp-cap-b{margin-top:4px!important;color:var(--muted);transition:opacity .5s linear}
:root.bp body.website #relationships .relationship.platform-foundation{background:transparent;border:0;padding:0;border-radius:0;color:var(--ink)}
:root.bp body.website #relationships :is(.relationship-apps,.foundation-label,.explorer-shot){display:none}
:root.bp body.website #relationships .relationship-toolbar{border-bottom:1px solid #121211;padding-bottom:14px;margin-bottom:0}
:root.bp body.website #relationships .relationship-branches{display:grid;grid-template-columns:1fr 1fr;gap:0;margin:0}
:root.bp body.website #relationships .relationship-node{background:transparent;border:0;border-bottom:1px solid var(--line);
  border-radius:0;padding:14px 12px 14px 16px;text-align:left}
:root.bp body.website #relationships .relationship-node:nth-child(odd){border-right:1px solid var(--line)}
:root.bp body.website #relationships .relationship-node:last-child:nth-child(odd){grid-column:1/-1;border:0;border-bottom:1px solid var(--line)}
:root.bp body.website #relationships .relationship-node:hover:not([aria-pressed="true"]){background:var(--wash);border-color:var(--line)}
:root.bp body.website #relationships .relationship-node[aria-pressed="true"]{background:var(--wash);border-color:var(--line)}
:root.bp body.website #relationships .relationship-node .eyebrow{color:var(--muted)}
:root.bp body.website #relationships .relationship-node[aria-pressed="true"] .eyebrow{color:var(--signal-deep)}
:root.bp body.website #relationships .relationship-node[aria-pressed="true"]::after{background:var(--signal);width:4px}
:root.bp body.website #relationships .relationship-detail{border-top:0;margin-top:20px;padding-top:0}
:root.bp body.website #relationships .relationship-items li{color:var(--muted);border-top-color:var(--line)}
:root.bp body.website #relationships .relationship-items li::before{background:var(--signal)}

/* --- 04 Build with agents: copy beside FIG. 04, then the Nirman card --------------------- */
:root.bp body.website #agents{display:block}
:root.bp body.website #agents>.section-heading{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:clamp(24px,4vw,64px);align-items:end}
:root.bp body.website #agents>.section-heading>p{margin:0;max-width:34em}
:root.bp .bp-agents-grid{display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);gap:clamp(28px,4vw,64px);
  align-items:start;margin-top:clamp(28px,4vw,48px)}
:root.bp .bp-agents-line{margin:0 0 20px;font-weight:600;font-size:1.1rem;color:var(--ink);border-left:3px solid var(--signal);padding-left:14px}
:root.bp .bp-points{list-style:none;margin:0;padding:0;border-top:1px solid #121211}
:root.bp .bp-points li{display:grid;grid-template-columns:44px 1fr;column-gap:12px;padding:16px 0;border-bottom:1px solid var(--line)}
:root.bp .bp-point-n{grid-row:1/3;font:400 11px/1.9 var(--font-mono);letter-spacing:.09em;color:var(--signal-deep)}
:root.bp .bp-points h3{margin:0;font-size:1.05rem}
:root.bp .bp-points p{margin:4px 0 0;color:var(--muted);max-width:36em}
:root.bp .bp-agents-more{margin:20px 0 0}
:root.bp .bp-agent-fig{margin:0;position:sticky;top:96px}
:root.bp .bp-agent-drawing{display:block;width:100%;height:auto}
:root.bp .bp-ag-dot{fill:none;stroke:#8a857c;stroke-width:1}
:root.bp .bp-ag-prompt{fill:none;stroke:var(--signal);stroke-width:1.5}
:root.bp .bp-ag-line{fill:none;stroke:var(--bp-diagram);stroke-width:1.5}
:root.bp .bp-ag-pulse{fill:none;stroke:var(--bp-diagram);stroke-width:3;stroke-dasharray:6 6;opacity:0}
:root.bp .bp-ag-end{fill:var(--bp-diagram)}
:root.bp .bp-ag-open{fill:var(--paper)}
:root.bp .bp-ag-box{fill:var(--surface);stroke:#121211;stroke-width:1.5}
:root.bp .bp-ag-tick{fill:none;stroke:var(--bp-diagram);stroke-width:2}
:root.bp .bp-ag-pkt{fill:var(--signal);opacity:0}
:root.bp .bp-ag-body{fill:var(--surface)}
:root.bp .bp-ag-cell{fill:#d8e5ee;stroke:none}
:root.bp .bp-ag-land{fill:var(--signal)}
:root.bp .bp-ag-strip{fill:none;stroke:#121211;stroke-width:1}
:root.bp .bp-ag-logline{fill:var(--signal)}
:root.bp .bp-ag-pkt,:root.bp .bp-ag-land,:root.bp .bp-ag-logline{transform-box:fill-box}
:root.bp .bp-nirman{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:clamp(16px,3vw,40px);align-items:center;
  margin-top:clamp(36px,5vw,64px);padding:clamp(20px,3vw,32px);background:#121211;color:#f3f1ec;
  --ink:#f3f1ec;--paper:#121211;--muted:#a8a39a;color-scheme:dark}
:root.bp .bp-nirman-tag{margin:0;align-self:start;font:400 11px/1 var(--font-mono);letter-spacing:.09em;text-transform:uppercase;
  color:#121211;background:var(--signal);padding:6px 8px}
:root.bp .bp-nirman h3{margin:0;font-size:clamp(1.4rem,2.2vw,1.9rem);color:#f3f1ec}
:root.bp .bp-nirman-copy p{margin:6px 0 0;color:#a8a39a;max-width:40em}
:root.bp .bp-nirman-copy .bp-nirman-brand{color:#f3f1ec;font-weight:600}

/* --- 04 Audiences: concrete ------------------------------------------------------------- */
:root.bp body.website #audiences{background:var(--concrete);border-image:linear-gradient(var(--line) 1px,var(--concrete) 1px) fill 0//0 100vmax}
:root.bp body.website #audiences .rail-rule{background:var(--ink);height:1px}
:root.bp body.website .roster-item{border-top:1px solid #121211;border-radius:0}
:root.bp body.website .roster-lead{color:var(--signal-deep)}
:root.bp body.website .roster-art{border-radius:0}
:root.bp body.website .roster-art rect{rx:0;ry:0}

/* --- 05 Showcase: dark, product screens only (P-4) ------------------------------------- */
:root.bp body.website #showcase{background:#121211;border-image:conic-gradient(#121211 0 0) fill 0//0 100vmax;border-top:0}
:root.bp body.website #showcase :is(h2,h3){color:#f3f1ec}
:root.bp body.website #showcase .rail-rule{background:#57534d;height:1px}
:root.bp body.website #showcase :is(.showcase-photos,.case-photo){display:none}
:root.bp body.website #showcase .chip{border-radius:0;font-family:var(--font-mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase}
:root.bp body.website #showcase .chip[aria-pressed="true"]{background:var(--signal);color:#121211;border-color:var(--signal)}
:root.bp body.website #showcase .showcase-nav button{border-radius:0}
:root.bp body.website #showcase .case,:root.bp body.website #showcase .case-stage{border-radius:0}

/* --- 06 Trust ------------------------------------------------------------------------- */
:root.bp body.website #trust{background:var(--paper)}
:root.bp body.website #trust .ribbon-shot{border-radius:0}
:root.bp body.website #trust .ribbon-shot .shot-frame{border:1px solid #121211;border-radius:0;box-shadow:none}
:root.bp body.website #trust .ribbon-shot[data-fig]:not([data-fig=""])::before{content:attr(data-fig);display:block;
  font-family:var(--font-mono);font-size:11px;letter-spacing:.09em;color:#8a857c;margin-bottom:10px}
:root.bp body.website #trust figcaption{font-family:var(--font-mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase}

/* --- 07 Next: concrete ------------------------------------------------------------------ */
:root.bp body.website #next{background:var(--concrete);border-image:linear-gradient(var(--line) 1px,var(--concrete) 1px) fill 0//0 100vmax}

/* --- Footer: dark, giant wordmark (P-3) ------------------------------------------------- */
:root.bp body.website .site-footer{background:#121211;border-image:conic-gradient(#121211 0 0) fill 0//0 100vmax;color:#c9c3b8;border-top:0}
:root.bp body.website .site-footer a{color:#c9c3b8}
:root.bp body.website .site-footer a:hover{color:var(--signal)}
:root.bp body.website .site-footer .footer-main .wordmark{color:#f3f1ec}
:root.bp .bp-bigmark{margin:clamp(40px,6vw,80px) 0 0;font-family:Geist,Arial,sans-serif;font-stretch:100%;font-weight:600;
  font-size:clamp(3rem,17.4vw,16rem);line-height:.9;padding-bottom:.2em;letter-spacing:-.04em;color:#f3f1ec;white-space:nowrap;
  overflow:hidden;user-select:none}
/* Sized to the footer column, not the window, so the wordmark always fits edge to edge.
   Geist 600 at -.04em measures 5.20em wide; 5.3 leaves a hair of room (matches the logo, Rafi 2026-10-22). */
@supports(width:1cqi){
  :root.bp .bp-bigmark-wrap{container-type:inline-size}
  :root.bp .bp-bigmark{font-size:calc(100cqi / 5.3)}
}
:root.bp body.website .site-footer .footer-base{border-top:1px solid #2e2c29;font-family:var(--font-mono);font-size:11px;
  letter-spacing:.08em;text-transform:uppercase;color:#8a857c}

/* --- Dialogs: square ------------------------------------------------------------------- */
:root.bp dialog{border-radius:0}

/* --- Motion: only when JS has set .bp-motion (never under reduced motion) --------------- */
:root.bp.bp-motion .bp-line>span{transform:translateY(105%);transition:transform 1.1s var(--bp-ease)}
:root.bp.bp-motion .bp-line:nth-child(2)>span{transition-delay:.09s}
:root.bp.bp-motion .bp-line:nth-child(3)>span{transition-delay:.18s}
:root.bp.bp-motion .bp-line--close>span::after{transform:scaleX(0);transition:transform .9s var(--bp-ease-io) 4.9s}
:root.bp.bp-motion .bp-hero :is(.bp-eyebrow,.bp-lede,.bp-actions){opacity:0;transform:translateY(14px);transition:opacity .8s var(--bp-ease),transform .8s var(--bp-ease)}
:root.bp.bp-motion .bp-hero .bp-lede{transition-delay:.35s}
:root.bp.bp-motion .bp-hero .bp-actions{transition-delay:.5s}
:root.bp.bp-motion .bp-hero.is-in .bp-line>span,
:root.bp.bp-motion .bp-hero.is-in :is(.bp-eyebrow,.bp-lede,.bp-actions){transform:none;opacity:1}
:root.bp.bp-motion .bp-hero.is-in .bp-line--close>span::after{transform:scaleX(1)}

/* FIG. 01, the wall story. blueprint.js adds the acts to the drawing in turn:
   b-code, b-wall, b-push, b-push2, b-build, b-live, then cycles data-env. */
:root.bp.bp-motion .bp-hero-drawing .bp-code{opacity:0;transition:opacity .6s var(--bp-ease)}
:root.bp.bp-motion .bp-hero-drawing.b-code .bp-code{opacity:1}
:root.bp.bp-motion :is(.bp-code-a,.bp-ready,.bp-prod){opacity:1;transition:opacity .4s linear}
:root.bp.bp-motion :is(.bp-code-b,.bp-runs){opacity:0;transition:opacity .5s linear .45s}
:root.bp.bp-motion .b-live :is(.bp-code-a,.bp-ready,.bp-prod){opacity:0}
:root.bp.bp-motion .b-live :is(.bp-code-b,.bp-runs){opacity:1}
:root.bp.bp-motion .bp-layer{opacity:0;transform:translateY(-24px);
  transition:opacity .45s var(--bp-ease),transform .6s var(--bp-ease);transition-delay:calc(var(--i) * .12s)}
:root.bp.bp-motion .b-wall .bp-layer{opacity:1;transform:none}
:root.bp.bp-motion .bp-layer .bp-plate{opacity:0;transition:opacity .5s linear;transition-delay:calc(var(--i) * .22s)}
:root.bp.bp-motion .b-build .bp-layer .bp-plate{opacity:1}
:root.bp.bp-motion svg .bp-layer-t{fill:#8a857c;transition:fill .5s linear;transition-delay:calc(var(--i) * .22s)}
:root.bp.bp-motion svg.b-build .bp-layer-t{fill:#f3f1ec}
:root.bp.bp-motion :is(.bp-bracket,.bp-dim){opacity:0;transition:opacity .5s linear .8s}
:root.bp.bp-motion .b-wall :is(.bp-bracket,.bp-dim){opacity:1}
:root.bp.bp-motion :is(.bp-br-a,.bp-dim-a){opacity:1;transition:opacity .35s linear 1.3s}
:root.bp.bp-motion :is(.bp-br-b,.bp-dim-b){opacity:0;transition:opacity .45s linear 1.6s}
:root.bp.bp-motion .b-build :is(.bp-br-a,.bp-dim-a){opacity:0}
:root.bp.bp-motion .b-build :is(.bp-br-b,.bp-dim-b){opacity:1}
:root.bp.bp-motion .b-push .bp-code{animation:bp-push .7s var(--bp-ease)}
:root.bp.bp-motion .b-push2 .bp-code{animation:bp-push2 .7s var(--bp-ease)}
:root.bp.bp-motion .b-push .bp-wallface{animation:bp-flash .8s linear}
:root.bp.bp-motion .b-push2 .bp-wallface{animation:bp-flash2 .8s linear}
:root.bp.bp-motion .bp-riser{stroke-dasharray:320;stroke-dashoffset:320;transition:stroke-dashoffset 1.1s var(--bp-ease-io) .3s}
:root.bp.bp-motion .b-live .bp-riser{stroke-dashoffset:0}
:root.bp.bp-motion .bp-riser-end{opacity:0;transition:opacity .3s linear 1.3s}
:root.bp.bp-motion .b-live .bp-riser-end{opacity:1}
:root.bp.bp-motion .bp-env{transition:opacity .4s linear}
:root.bp.bp-motion .bp-hero-drawing:not(.b-live) .bp-env{opacity:0}
@keyframes bp-push{40%{transform:translateY(12px)}70%{transform:translateY(-3px)}}
@keyframes bp-push2{40%{transform:translateY(12px)}70%{transform:translateY(-3px)}}
@keyframes bp-flash{30%,60%{opacity:1}}
@keyframes bp-flash2{30%,60%{opacity:1}}
:root.bp.bp-motion .bp-caret{animation:bp-blink 1.1s steps(1) infinite}
@keyframes bp-blink{50%{opacity:0}}

:root.bp.bp-motion .bp-cost-fig .bp-bar rect{transform:scaleX(0);transform-origin:left center;
  transition:transform 1.2s var(--bp-ease-io);transition-delay:calc(.15s + var(--i) * .35s)}
:root.bp.bp-motion .bp-cost-fig .bp-bar{--i:0}
:root.bp.bp-motion .bp-cost-fig.is-in .bp-bar rect{transform:none}
:root.bp.bp-motion .bp-cost-fig :is(.bp-dimh,.bp-t--acc-deep){opacity:0;transition:opacity .6s linear 1.5s}
:root.bp.bp-motion .bp-cost-fig.is-in :is(.bp-dimh,.bp-t--acc-deep){opacity:1}

:root.bp.bp-motion .bp-section-fig .bp-cloud{opacity:0;transform:translateY(18px);
  transition:opacity .6s var(--bp-ease),transform .8s var(--bp-ease);transition-delay:calc(.2s + var(--i) * .12s)}
:root.bp.bp-motion .bp-section-fig .bp-bus-line{stroke-dasharray:900;stroke-dashoffset:900;transition:stroke-dashoffset 1.1s var(--bp-ease-io) .7s}
:root.bp.bp-motion .bp-section-fig :is(.bp-slab,.bp-slab-box){opacity:0;transition:opacity .5s linear 1.2s}
:root.bp.bp-motion .bp-section-fig .bp-room{opacity:0;transition:opacity .45s linear;transition-delay:calc(1.35s + var(--i) * .08s)}
:root.bp.bp-motion .bp-section-fig .bp-app{opacity:0;transform:translateY(-28px);
  transition:opacity .5s var(--bp-ease),transform .8s var(--bp-ease);transition-delay:calc(2.1s + var(--i) * .25s)}
:root.bp.bp-motion .bp-section-fig.is-in :is(.bp-cloud,.bp-slab,.bp-slab-box,.bp-room,.bp-app){opacity:1;transform:none}
:root.bp.bp-motion .bp-section-fig.is-in .bp-bus-line{stroke-dashoffset:0}
:root.bp.bp-motion .bp-section-fig.is-in .bp-drop{animation:bp-march 1.2s linear infinite}
/* FIG. 03 screens: the shell's applications join one by one; standalone products swap. */
:root.bp.bp-motion .bp-scr{transform:translateY(-10px);transition:opacity .5s var(--bp-ease),transform .7s var(--bp-ease)}
:root.bp.bp-motion .bp-scr.is-on{transform:none}
:root.bp.bp-motion .bp-rail-app{transform:translateX(-12px);transition:opacity .45s var(--bp-ease),transform .6s var(--bp-ease)}
:root.bp.bp-motion .bp-rail-app.is-in{transform:none}
/* Switching applications: the outgoing name and rail highlight clear first, then the incoming
   ones arrive, so two names never overlap. */
:root.bp.bp-motion :is(.bp-rail-row,.bp-rail-mark,.bp-rail-icon){transition:fill .12s linear,stroke .12s linear,opacity .12s linear}
:root.bp.bp-motion .bp-rail-app.is-act :is(.bp-rail-row,.bp-rail-mark,.bp-rail-icon){transition:fill .3s linear .14s,stroke .3s linear .14s,opacity .3s linear .14s}
:root.bp.bp-motion .bp-canvas-label{transition:opacity .12s linear}
:root.bp.bp-motion .bp-canvas-label.is-on{transition:opacity .3s linear .14s}
:root.bp.bp-motion .bp-room-fill{transition:fill .45s var(--bp-ease)}
:root.bp.bp-motion .bp-section-fig:not(.is-done) .bp-cap[data-mode="fed"] .bp-cap-b{opacity:0}
@keyframes bp-march{to{stroke-dashoffset:-20}}

:root.bp.bp-motion [data-bp-rv]{opacity:0;transform:translateY(28px);transition:opacity .9s var(--bp-ease),transform .9s var(--bp-ease)}
:root.bp.bp-motion [data-bp-rv].is-in{opacity:1;transform:none}
/* Keyboard focus never lands on faded-out content (audit B3). */
:root.bp.bp-motion [data-bp-rv]:focus-within{opacity:1;transform:none;transition:none}

/* FIG. 04: builds in, Reads pulses, Acts pulses, the packet stops at Confirm?, the tick, the
   change lands, the log line. Steps by class on the svg (blueprint.js); final frame is the markup. */
:root.bp.bp-motion .bp-agent-fig :is(.bp-ag-term,.bp-ag-gate,.bp-ag-slab,.bp-ag-log){opacity:0;transform:translateY(-16px);
  transition:opacity .5s var(--bp-ease),transform .6s var(--bp-ease)}
:root.bp.bp-motion .bp-agent-fig .bp-ag-gate{transition-delay:.25s}
:root.bp.bp-motion .bp-agent-fig .bp-ag-slab{transition-delay:.45s}
:root.bp.bp-motion .bp-agent-fig .bp-ag-log{transition-delay:.6s}
:root.bp.bp-motion .bp-agent-fig.is-in :is(.bp-ag-term,.bp-ag-gate,.bp-ag-slab,.bp-ag-log){opacity:1;transform:none}
:root.bp.bp-motion .bp-agent-fig :is(.bp-ag-term,.bp-ag-gate,.bp-ag-slab,.bp-ag-log){transform-box:fill-box}
:root.bp.bp-motion .bp-ag-line{stroke-dasharray:400;stroke-dashoffset:400;transition:stroke-dashoffset .9s var(--bp-ease-io) .8s}
:root.bp.bp-motion .bp-agent-fig.is-in .bp-ag-line{stroke-dashoffset:0}
:root.bp.bp-motion .bp-agent-drawing.a-read:not(.a-ok) .bp-ag-route[data-r="0"] .bp-ag-pulse,
:root.bp.bp-motion .bp-agent-drawing.a-act:not(.a-ok) .bp-ag-route[data-r="1"] .bp-ag-pulse{opacity:1;animation:bp-march .8s linear infinite}
:root.bp.bp-motion .bp-ag-tick{stroke-dasharray:24;stroke-dashoffset:24;transition:stroke-dashoffset .35s var(--bp-ease)}
:root.bp.bp-motion .a-ok .bp-ag-tick{stroke-dashoffset:0}
:root.bp.bp-motion .bp-ag-box{transition:stroke .3s linear}
:root.bp.bp-motion .a-ask:not(.a-ok) .bp-ag-box{stroke:var(--signal)}
:root.bp.bp-motion .bp-ag-pkt{transition:transform .9s var(--bp-ease-io),opacity .2s linear}
:root.bp.bp-motion .a-act .bp-ag-pkt{opacity:1}
:root.bp.bp-motion .a-ask .bp-ag-pkt{transform:translateY(120px)}
:root.bp.bp-motion .a-land .bp-ag-pkt{transform:translateY(243px);opacity:0;transition:transform .8s var(--bp-ease-io),opacity .2s linear .7s}
:root.bp.bp-motion .bp-ag-land{opacity:0;transition:opacity .35s linear .7s}
:root.bp.bp-motion .a-land .bp-ag-land{opacity:1}
:root.bp.bp-motion .bp-ag-logline{transform:scaleX(0);transform-origin:left;transition:transform .5s var(--bp-ease)}
:root.bp.bp-motion .a-log .bp-ag-logline{transform:none}

/* --- Phone ----------------------------------------------------------------------------- */
@media (max-width:900px){
  :root.bp .bp-logos{grid-template-columns:repeat(4,minmax(0,1fr))}
  :root.bp .bp-compat{grid-template-columns:1fr}
  :root.bp .bp-hero-grid,:root.bp .bp-hero-grid:has(.bp-hero-fig--v3),:root.bp body.website #relationships .bp-xsec{grid-template-columns:1fr}
  :root.bp .bp-hero-drawing{margin:0 auto}
  :root.bp body.website #relationships .bp-section-fig{position:static}
  :root.bp body.website #relationships>.section-heading{grid-template-columns:1fr}
  :root.bp body.website #agents>.section-heading,:root.bp .bp-agents-grid{grid-template-columns:1fr}
  :root.bp .bp-agent-fig{position:static}
  :root.bp .bp-nirman{grid-template-columns:1fr;justify-items:start}
}
@media (max-width:640px){
  :root.bp .bp-logos li{height:64px;padding:0 8px}
  :root.bp .bp-logos img{height:22px}
  :root.bp .bp-compat-row{grid-template-columns:1fr;gap:8px}
  :root.bp .bp-hero-drawing .bp-t,:root.bp .bp-section-drawing .bp-t,:root.bp .bp-agent-drawing .bp-t{font-size:15px}
  :root.bp .bp-agent-drawing .bp-t--s{font-size:13px}
  :root.bp svg .bp-room-n{font-size:22px}
  :root.bp .bp-section-drawing .bp-t--s{font-size:13px}
  :root.bp .bp-section-drawing .bp-tag--c{transform:translateX(var(--sh))}
  :root.bp .bp-fig-tabs{display:grid;grid-template-columns:1fr 1fr}
  :root.bp .bp-fig-tab{padding:12px 10px 10px;line-height:1.35;text-align:left}
  :root.bp .bp-cost-drawing .bp-t{font-size:22px}
  :root.bp body.website .cost-routes article+article{padding-left:0;border-left:0}
  :root.bp body.website #relationships .relationship-branches{grid-template-columns:1fr}
  :root.bp body.website #relationships .relationship-node:nth-child(odd){border-right:0}
}
