/* ==========================================================================
   Governed Bit Intervention — page styles
   Loaded after the homepage's style.css, which supplies the shared chrome,
   tokens and fonts and is never edited for this page. Every selector here is
   scoped to .gbp-* (or to the page body), so nothing can reach the homepage.
   Visual family: the homepage's annotation margin, maturity stamp and record
   materials (graphite surfaces, the amber issue B, the withheld treatment,
   the labelled cut, the plate), developed into a full document frame.
   ========================================================================== */

.gbp-page {
  --gbp-ink: #f6f5f2;
  --gbp-ink-2: rgba(246, 245, 242, 0.74);
  --gbp-ink-3: rgba(246, 245, 242, 0.56);
  --gbp-ink-4: rgba(246, 245, 242, 0.38);
  --gbp-label: #9c968b;
  --gbp-hair: rgba(255, 255, 255, 0.08);
  --gbp-rule: rgba(255, 255, 255, 0.16);
  --gbp-amber: #e5ad49;
  --gbp-amber-title: #f0bd63;
  --gbp-amber-2: rgba(217, 161, 60, 0.9);
  --gbp-amber-3: rgba(217, 161, 60, 0.7);
  --gbp-gutter: 32px;
  --gbp-head-h: clamp(560px, 76vh, 720px);
  --gbp-anchor-offset: 104px;
  background: #0a0a0a;
}

/* Current destination (content authority 01 §2): the one navigation item
   this page marks. */
.gbp-page .site-nav-link[aria-current="page"] {
  color: #ffffff;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 7px;
  text-decoration-color: rgba(255, 255, 255, 0.42);
}

.gbp-page .compact-nav-link[aria-current="page"] {
  font-weight: 600;
}

/* Anchors land below the fixed header (and, on phones, the running head). */
.gbp-page [id^="section-"],
.gbp-issue,
.gbp-record {
  scroll-margin-top: var(--gbp-anchor-offset);
}

@media (prefers-reduced-motion: reduce) {
  html:has(.gbp-page) {
    scroll-behavior: auto;
  }
}

/* ---- Shared page grammar -------------------------------------------------- */
.gbp-grid {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  column-gap: var(--gbp-gutter);
  max-width: var(--frame-text);
  margin: 0 auto;
  padding: 0 var(--gbp-gutter);
}

.gbp-margin {
  grid-column: 1 / span 3;
  padding-top: 0.35em;
}

.gbp-main {
  grid-column: 4 / span 8;
}

/* Section mark: apparatus, the same family as the homepage principle numbers. */
.gbp-mark {
  margin: 0 0 10px;
  font-size: clamp(40px, 3.6vw, 54px);
  font-weight: 300;
  line-height: 1;
  color: var(--gbp-ink-4);
}

.gbp-label {
  margin: 0;
  font-size: 14px;
  font-weight: 500;
  line-height: 1.4;
  letter-spacing: 0.005em;
  color: var(--gbp-label);
}

/* The site's only badge treatment (01 §8): outlined, no fill, no colour. */
.gbp-stamp {
  margin: 14px 0 0;
}

.gbp-stamp span {
  display: inline-block;
  padding: 4px 9px 4px 10px;
  border: 1px solid rgba(246, 245, 242, 0.26);
  border-radius: 2px;
  font-size: 11.5px;
  font-weight: 600;
  line-height: 1.2;
  letter-spacing: 0.1em;
  color: var(--gbp-ink-2);
}

.gbp-xref {
  margin: 22px 0 0;
  padding-top: 14px;
  border-top: 1px solid rgba(255, 255, 255, 0.1);
}

.gbp-xref a,
.gbp-contents a {
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 4px;
  text-decoration-color: rgba(255, 255, 255, 0.28);
  transition: text-decoration-color var(--transition-fast), color var(--transition-fast);
}

.gbp-xref a {
  font-size: 14px;
  font-weight: 500;
  color: var(--gbp-ink);
}

.gbp-xref a:hover,
.gbp-contents a:hover {
  text-decoration-color: currentColor;
}

.gbp-page a:focus-visible,
.gbp-page summary:focus-visible,
.gbp-page button:focus-visible {
  outline: 2px solid rgba(255, 255, 255, 0.6);
  outline-offset: 3px;
  border-radius: 2px;
}

.gbp-heading {
  margin: 0;
  max-width: 22ch;
  font-size: clamp(30px, 3.2vw, 46px);
  font-weight: 500;
  line-height: 1.1;
  letter-spacing: -0.028em;
  color: var(--gbp-ink);
  text-wrap: balance;
}

.gbp-lede {
  margin: 22px 0 0;
  max-width: 54ch;
  font-size: clamp(18px, 1.5vw, 21px);
  line-height: 1.46;
  letter-spacing: -0.006em;
  color: var(--gbp-ink-2);
  text-wrap: pretty;
}

.gbp-body {
  margin: 20px 0 0;
  max-width: 62ch;
  font-size: 16.5px;
  line-height: 1.66;
  color: var(--gbp-ink-3);
  text-wrap: pretty;
}

/* The "illustrative" sentence is read before the record, at reading ink. */
.gbp-body--ink {
  font-weight: 500;
  color: var(--gbp-ink-2);
}

/* Phone running head (01 §3): phones only (decision 4). */
.gbp-running-head {
  display: none;
}

/* ==========================================================================
   01 · Document head — compact industrial horizon
   ========================================================================== */
.gbp-head {
  position: relative;
  background: #0a0a0a;
}

.gbp-head-plate {
  position: absolute;
  inset: 0 0 auto 0;
  height: var(--gbp-head-h);
  overflow: hidden;
}

.gbp-head-plate img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  /* Keep the rig in frame as the viewport narrows. */
  object-position: 72% 46%;
}

/* Night ground: the sky darkens toward the copy on the left and the plate
   dissolves into the page ground at its foot, so there is no box edge. */
.gbp-head-plate::after {
  content: '';
  position: absolute;
  inset: 0;
  background:
    linear-gradient(90deg, rgba(10, 10, 10, 0.62) 0%, rgba(10, 10, 10, 0.34) 34%, rgba(10, 10, 10, 0) 58%),
    linear-gradient(180deg, rgba(10, 10, 10, 0.5) 0%, rgba(10, 10, 10, 0) 22%, rgba(10, 10, 10, 0) 64%, #0a0a0a 100%);
}

.gbp-head-grid {
  position: relative;
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  column-gap: var(--gbp-gutter);
  align-content: start;
  max-width: var(--frame-text);
  min-height: var(--gbp-head-h);
  margin: 0 auto;
  padding: clamp(150px, 19vh, 190px) var(--gbp-gutter) 40px;
}

.gbp-head-margin {
  grid-column: 1 / span 3;
  padding-top: 0.9em;
}

.gbp-head-main {
  grid-column: 4 / span 6;
}

.gbp-title {
  margin: 0;
  font-size: clamp(44px, 5vw, 74px);
  font-weight: 500;
  line-height: 1.02;
  letter-spacing: -0.034em;
  color: #ffffff;
  text-wrap: balance;
}

.gbp-deck {
  margin: 22px 0 0;
  max-width: 36ch;
  font-size: clamp(18px, 1.55vw, 22px);
  line-height: 1.42;
  letter-spacing: -0.008em;
  color: rgba(246, 245, 242, 0.8);
}

/* The locked status line (L3) is ordinary prose: never monospace, never in a
   box (01 §13). The key sits above it as a quiet label. */
.gbp-status {
  margin: 34px 0 0;
  max-width: 40ch;
  padding-top: 16px;
  border-top: 1px solid rgba(255, 255, 255, 0.18);
}

.gbp-status dt {
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.02em;
  color: var(--gbp-label);
}

.gbp-status dd {
  margin: 6px 0 0;
  font-size: 16.5px;
  font-weight: 500;
  line-height: 1.5;
  color: var(--gbp-ink);
}

/* Keeps a hyphenated word of the locked line on one line (markup only; the
   text is unchanged). */
.gbp-nowrap {
  white-space: nowrap;
}

/* Contents register: at the foot of the head, where the image has dissolved,
   so the whole document's shape is visible straight after the opening. */
.gbp-contents {
  position: relative;
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  column-gap: var(--gbp-gutter);
  max-width: var(--frame-text);
  margin: 0 auto;
  padding: 0 var(--gbp-gutter) clamp(96px, 9vw, 132px);
}

.gbp-contents-heading {
  grid-column: 1 / span 3;
  margin: 0;
  padding-top: 13px;
  font-size: 14px;
  font-weight: 500;
  line-height: 1.4;
  color: var(--gbp-label);
}

.gbp-contents-list {
  grid-column: 4 / span 8;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  grid-template-rows: repeat(4, auto);
  grid-auto-flow: column;
  column-gap: var(--gbp-gutter);
  margin: 0;
  padding: 0;
  list-style: none;
}

.gbp-contents-list li {
  border-top: 1px solid var(--gbp-hair);
}

.gbp-contents a {
  display: flex;
  gap: 16px;
  align-items: baseline;
  padding: 12px 0 13px;
  font-size: 15px;
  font-weight: 500;
  line-height: 1.4;
  color: var(--gbp-ink-2);
  text-decoration-color: transparent;
}

.gbp-contents a:hover {
  color: var(--gbp-ink);
}

.gbp-contents-id {
  flex: 0 0 16px;
  font-size: 12.5px;
  font-weight: 600;
  color: var(--gbp-ink-4);
}

/* ==========================================================================
   03 · Section B — a forecast is not a decision
   ========================================================================== */
.gbp-shelf {
  position: relative;
}

.gbp-compare {
  padding: clamp(96px, 9vw, 136px) 0 clamp(104px, 9.5vw, 144px);
  background: linear-gradient(180deg, #0a0a0a 0%, #111315 18%, #15171a 70%, #121416 100%);
}

.gbp-ledger {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  column-gap: var(--gbp-gutter);
  max-width: var(--frame-text);
  margin: clamp(52px, 5vw, 72px) auto 0;
  padding: 0 var(--gbp-gutter);
}

.gbp-ledger-caption {
  grid-column: 8 / -1;
  grid-row: 1;
  padding-bottom: 14px;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.02em;
  color: var(--gbp-label);
}

/* The rows sit on the page's own columns (subgrid): the prediction in cols
   4–6, one empty column as a deliberate gap, the five requirements in cols
   8–12 under their caption. */
.gbp-ledger-rows {
  grid-column: 4 / -1;
  grid-row: 2;
  display: grid;
  grid-template-columns: subgrid;
  margin: 0;
}

.gbp-ledger-row {
  grid-column: 5 / -1;
  padding: 17px 0 18px;
  border-top: 1px solid rgba(255, 255, 255, 0.1);
}

.gbp-ledger-row:last-child {
  border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}

.gbp-ledger-row dt {
  font-size: 16px;
  font-weight: 600;
  line-height: 1.35;
  letter-spacing: -0.006em;
  color: var(--gbp-ink);
}

.gbp-ledger-row dd {
  margin: 6px 0 0;
  max-width: 44ch;
  font-size: 15.5px;
  line-height: 1.55;
  color: var(--gbp-ink-3);
}

/* The prediction: one object on its own side, a step lighter, with the
   schematic trace. It is the only row given a surface: one input among six. */
.gbp-ledger-row--prediction {
  grid-column: 1 / span 3;
  grid-row: 1 / span 5;
  align-self: start;
  padding: 26px 26px 20px;
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 10px;
  background: linear-gradient(180deg, #1b1e22 0%, #16191c 100%);
}

.gbp-ledger-row--prediction:last-child {
  border-bottom: 1px solid rgba(255, 255, 255, 0.12);
}

.gbp-ledger-row--prediction dt {
  font-size: 19px;
}

.gbp-ledger-row--prediction dd {
  font-size: 16px;
  color: var(--gbp-ink-2);
}

/* Forecast glyph: schematic only (decision 6). Its own compositing layer so
   its paths never join the root layer's antialiasing. */
.gbp-forecast {
  width: 100%;
  height: auto;
  margin-top: 26px;
  overflow: visible;
  will-change: transform;
}

.gbp-forecast-trace {
  fill: none;
  stroke: rgba(246, 245, 242, 0.72);
  stroke-width: 1.6;
  stroke-linejoin: round;
}

.gbp-forecast-now {
  fill: none;
  stroke: rgba(246, 245, 242, 0.22);
  stroke-width: 1;
}

.gbp-forecast-projection {
  fill: none;
  stroke: rgba(246, 245, 242, 0.5);
  stroke-width: 1.4;
  stroke-dasharray: 5 5;
}

.gbp-forecast-band {
  fill: rgba(246, 245, 242, 0.06);
  stroke: rgba(246, 245, 242, 0.26);
  stroke-width: 1;
  stroke-dasharray: 3 4;
}

.gbp-forecast-point {
  fill: #f6f5f2;
}

.gbp-body--close {
  grid-column: 4 / span 8;
  margin-top: clamp(40px, 4vw, 56px);
  color: var(--gbp-ink-2);
}

/* ==========================================================================
   04 · Section C — the Decision Passport
   ========================================================================== */
/* Section C stands on Section F's light mineral ground. The two record
   plates inside it carry their own --gbp-f-* namespace and their own dark
   material, so the inverted ink stops at the plate edge: the Decision
   Passport itself is unchanged. Only the rule and the issue-switch amber
   need re-setting for the light ground; the heading, lede, body, margin
   mark, boundaries ledger and standing note already read from the tokens. */
.gbp-passport {
  --gbp-ink: #15171a;
  --gbp-ink-2: rgba(21, 23, 26, 0.8);
  --gbp-ink-3: rgba(21, 23, 26, 0.68);
  --gbp-ink-4: rgba(21, 23, 26, 0.32);
  --gbp-label: #625e56;
  --gbp-rule: rgba(21, 23, 26, 0.22);
  --gbp-amber-title: #7c5208;
  padding: clamp(104px, 9.5vw, 144px) 0 clamp(120px, 11vw, 168px);
  background: #dddcd6;
  color: var(--gbp-ink);
}

.gbp-passport .gbp-heading {
  font-size: clamp(32px, 3.5vw, 50px);
}

.gbp-record {
  max-width: var(--frame-artifact);
  margin: clamp(48px, 4.6vw, 68px) auto 0;
  padding: 0 var(--gbp-gutter);
}

/* ---- Issue control ------------------------------------------------------ */
.gbp-switch {
  display: flex;
  flex-wrap: wrap;
  gap: 4px 36px;
  margin: 0 0 18px;
  padding: 0 4px;
}

.gbp-switch-item {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 10px 2px 11px;
  border-bottom: 2px solid transparent;
  font-size: 16px;
  font-weight: 500;
  letter-spacing: -0.006em;
  color: rgba(21, 23, 26, 0.66);
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 4px;
  text-decoration-color: rgba(21, 23, 26, 0.3);
  transition: color var(--transition-fast), border-color var(--transition-fast);
}

.gbp-switch-item--b {
  color: rgba(124, 82, 8, 0.88);
}

.gbp-switch-dot {
  display: none;
}

/* With scripting the names become a two-state switch: pressed state carried
   by a filled dot (open ring when not), full ink and an underline bar — the
   homepage portfolio selector's grammar, never colour alone. */
.gbp-js .gbp-switch-item {
  text-decoration: none;
  cursor: pointer;
}

.gbp-js .gbp-switch-dot {
  display: inline-block;
  width: 9px;
  height: 9px;
  border: 1.5px solid currentColor;
  border-radius: 50%;
}

.gbp-js .gbp-switch-item[aria-pressed="true"] {
  color: var(--gbp-ink);
  border-bottom-color: currentColor;
}

.gbp-js .gbp-switch-item--b[aria-pressed="true"] {
  color: var(--gbp-amber-title);
}

.gbp-js .gbp-switch-item[aria-pressed="true"] .gbp-switch-dot {
  background: currentColor;
}

.gbp-js .gbp-switch-item:hover {
  color: var(--gbp-ink-2);
}

.gbp-js .gbp-switch-item--b:hover {
  color: rgba(107, 67, 0, 0.92);
}

.gbp-js .gbp-switch-item[aria-pressed="true"]:hover {
  color: var(--gbp-ink);
}

.gbp-js .gbp-switch-item--b[aria-pressed="true"]:hover {
  color: var(--gbp-amber-title);
}

/* One complete issue at a time (decision 3). The choice is made in the head
   before first paint; without scripting both issues stay in view. */
html[data-issue="a"] .gbp-issue--b,
html[data-issue="b"] .gbp-issue--a {
  display: none;
}

.gbp-issue + .gbp-issue {
  margin-top: 40px;
}

html[data-issue] .gbp-issue + .gbp-issue {
  margin-top: 0;
}

.gbp-issue.is-entering {
  animation: gbp-issue-in 0.2s ease-out;
}

@keyframes gbp-issue-in {
  from { opacity: 0.35; }
  to   { opacity: 1; }
}

/* ---- The issue frame: a controlled document, not a card ----------------- */
.gbp-issue {
  --gbp-f-ink: #f2f1ee;
  --gbp-f-ink-2: rgba(242, 241, 238, 0.66);
  --gbp-f-ink-3: rgba(242, 241, 238, 0.44);
  --gbp-f-title: #f2f1ee;
  --gbp-f-name: #f2f1ee;
  --gbp-f-spine: rgba(242, 241, 238, 0.7);
  --gbp-f-hair: rgba(255, 255, 255, 0.075);
  --gbp-f-edge: rgba(255, 255, 255, 0.13);
  --gbp-f-cut: rgba(255, 255, 255, 0.26);
  --gbp-f-tint: rgba(255, 255, 255, 0.03);
  --gbp-pad: 36px;
  position: relative;
  overflow: hidden;
  border: 1px solid var(--gbp-f-edge);
  border-radius: 14px;
  background: linear-gradient(180deg, #16191d 0%, #101316 100%);
  box-shadow: 0 34px 90px -30px rgba(0, 0, 0, 0.88);
  color: var(--gbp-f-ink);
}

/* Issue B: the amber issue of the record, every line in one warm family,
   graded by role (the homepage record's treatment). */
.gbp-issue--b {
  --gbp-f-ink: #e5ad49;
  --gbp-f-ink-2: rgba(217, 161, 60, 0.9);
  --gbp-f-ink-3: rgba(217, 161, 60, 0.68);
  --gbp-f-title: #f0bd63;
  --gbp-f-name: #e5ad49;
  --gbp-f-spine: rgba(229, 173, 73, 0.84);
  --gbp-f-hair: rgba(229, 173, 73, 0.13);
  --gbp-f-edge: rgba(229, 173, 73, 0.3);
  --gbp-f-cut: rgba(229, 173, 73, 0.4);
  --gbp-f-tint: rgba(229, 173, 73, 0.04);
}

.gbp-issue p {
  margin: 0;
}

/* ---- Masthead ------------------------------------------------------------ */
.gbp-mast {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  grid-template-areas:
    "mark    open"
    "name    open"
    "instr   open"
    "handle  open";
  column-gap: 32px;
  padding: 26px var(--gbp-pad) 26px;
}

/* The illustrative mark: printed on the frame at first paint, in every state
   (decision 1). A calm line of the document, not a warning. */
.gbp-illustrative {
  grid-area: mark;
  font-size: 12.5px;
  font-weight: 600;
  letter-spacing: 0.05em;
  color: var(--gbp-f-ink-2);
}

.gbp-issue-name {
  grid-area: name;
  margin-top: 12px !important;
  font-size: clamp(22px, 2vw, 28px);
  font-weight: 600;
  line-height: 1.2;
  letter-spacing: -0.02em;
  color: var(--gbp-f-title);
}

.gbp-issue-key {
  font-weight: 700;
}

.gbp-instruction,
.gbp-handling {
  max-width: 64ch;
  font-size: 13.5px;
  line-height: 1.55;
  color: var(--gbp-f-ink-2);
}

.gbp-instruction {
  grid-area: instr;
  margin-top: 12px !important;
}

.gbp-handling {
  grid-area: handle;
  margin-top: 4px !important;
}

.gbp-open-all {
  grid-area: open;
  align-self: end;
}

.gbp-open-all-button {
  padding: 9px 16px;
  border: 1px solid var(--gbp-f-edge);
  border-radius: 2px;
  font-size: 13.5px;
  font-weight: 500;
  color: var(--gbp-f-ink);
  transition: border-color var(--transition-fast), background-color var(--transition-fast);
}

.gbp-open-all-button:hover {
  border-color: var(--gbp-f-ink-3);
  background: var(--gbp-f-tint);
}

/* ---- Field table ----------------------------------------------------------- */
.gbp-fields {
  margin: 0;
  padding: 0;
  list-style: none;
  background: rgba(0, 0, 0, 0.18);
  border-top: 1px solid var(--gbp-f-edge);
}

.gbp-field + .gbp-field {
  border-top: 1px solid var(--gbp-f-hair);
}

.gbp-row {
  display: grid;
  grid-template-columns: 26px minmax(150px, 190px) minmax(0, 1fr) minmax(150px, 220px) 14px;
  grid-template-areas:
    "num name entry   party toggle"
    "num name caption party toggle";
  align-items: baseline;
  column-gap: 20px;
  row-gap: 8px;
  padding: 20px var(--gbp-pad) 20px;
  cursor: pointer;
  list-style: none;
  transition: background-color var(--transition-fast);
}

.gbp-row::-webkit-details-marker {
  display: none;
}

.gbp-row:hover {
  background-color: var(--gbp-f-tint);
}

.gbp-page .gbp-row:focus-visible {
  outline-offset: -3px;
}

.gbp-num {
  grid-area: num;
  font-size: 12px;
  font-weight: 600;
  font-variant-numeric: tabular-nums;
  color: var(--gbp-f-ink-3);
}

.gbp-name {
  grid-area: name;
  font-size: 15px;
  font-weight: 600;
  letter-spacing: -0.005em;
  color: var(--gbp-f-name);
}

.gbp-party {
  grid-area: party;
  font-size: 12.5px;
  line-height: 1.4;
  text-align: right;
  color: var(--gbp-f-ink-3);
}

.gbp-party--spine {
  font-weight: 600;
  color: var(--gbp-f-spine);
}

.gbp-entry {
  grid-area: entry;
  max-width: 64ch;
  font-size: 16.5px;
  line-height: 1.5;
  color: var(--gbp-f-ink);
  text-wrap: pretty;
}

.gbp-entry--value {
  font-size: 18px;
  font-weight: 500;
  letter-spacing: -0.01em;
}

.gbp-caption {
  grid-area: caption;
  max-width: 70ch;
  font-size: 12.5px;
  font-style: italic;
  line-height: 1.5;
  color: var(--gbp-f-ink-3);
}

/* Governance, issue A: the printed pair, one member struck. */
.gbp-pair {
  display: flex;
  flex-wrap: wrap;
  column-gap: 22px;
}

.gbp-taken {
  font-weight: 600;
}

.gbp-struck s {
  text-decoration-thickness: 1.5px;
  color: var(--gbp-f-ink-3);
}

/* Authorization: the blank is the entry, drawn above its countersignature
   rule. Nothing is printed on it, in any state (01 §13). */
.gbp-blank {
  align-self: end;
  display: block;
  width: min(360px, 100%);
  height: 34px;
  border-bottom: 1.5px solid var(--gbp-f-ink-3);
  background: linear-gradient(180deg, rgba(255, 255, 255, 0) 40%, var(--gbp-f-tint) 100%);
}

/* Withheld / inadmissible (01 §13): the word itself, italic, a broken rule;
   the warm ink only supports those cues. */
.gbp-withheld {
  font-style: italic;
  font-weight: 600;
  color: var(--gbp-amber);
  text-decoration: underline dashed rgba(229, 173, 73, 0.6);
  text-decoration-thickness: 1px;
  text-underline-offset: 4px;
}

.gbp-withheld--entry {
  justify-self: start;
  padding-left: 12px;
  border-left: 2px dashed var(--gbp-amber);
  text-decoration: none;
}

/* Drawn caret, rotating on open. */
.gbp-toggle {
  grid-area: toggle;
  position: relative;
  align-self: start;
  width: 14px;
  height: 14px;
  margin-top: 4px;
}

.gbp-toggle::before {
  content: '';
  position: absolute;
  top: 2px;
  left: 3px;
  width: 6px;
  height: 6px;
  border-right: 1.5px solid var(--gbp-f-ink-3);
  border-bottom: 1.5px solid var(--gbp-f-ink-3);
  transform: rotate(45deg);
  transition: transform var(--transition-normal), border-color var(--transition-fast);
}

.gbp-part[open] > .gbp-row .gbp-toggle::before {
  transform: translate(0, 3px) rotate(-135deg);
}

.gbp-row:hover .gbp-toggle::before {
  border-color: var(--gbp-f-ink);
}

/* ---- Disclosed sheet (in place, under its own row) --------------------- */
.gbp-sheet {
  margin: 0 var(--gbp-pad) 22px calc(var(--gbp-pad) + 26px + 20px + 190px + 20px);
  padding: 18px 0 2px;
  border-top: 1px dashed var(--gbp-f-hair);
  max-width: 78ch;
}

.gbp-sheet p {
  max-width: 68ch;
  font-size: 15px;
  line-height: 1.6;
  color: var(--gbp-f-ink-2);
}

.gbp-sheet p + p,
.gbp-refs + p {
  margin-top: 12px !important;
}

.gbp-sheet-heading {
  margin: 0 0 12px;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.02em;
  color: var(--gbp-f-ink-2);
}

.gbp-refs {
  margin: 0;
  padding: 0;
  list-style: none;
  border-bottom: 1px solid var(--gbp-f-hair);
}

.gbp-refs li {
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr) auto;
  column-gap: 16px;
  align-items: baseline;
  padding: 9px 0;
  border-top: 1px solid var(--gbp-f-hair);
  font-size: 14.5px;
  line-height: 1.45;
}

.gbp-refs--two li {
  grid-template-columns: 34px minmax(0, 1fr);
}

.gbp-ref-id {
  font-size: 12px;
  font-weight: 600;
  font-variant-numeric: tabular-nums;
  color: var(--gbp-f-ink-3);
}

.gbp-ref-name {
  color: var(--gbp-f-ink);
}

.gbp-ref-status {
  font-size: 13px;
  color: var(--gbp-f-ink-2);
}

.gbp-ref-status.gbp-withheld {
  font-size: 13.5px;
}

.gbp-sheet-note {
  margin-top: 12px !important;
  font-size: 13.5px !important;
  font-style: italic;
  color: var(--gbp-f-ink-3) !important;
}

/* ---- The moment-of-decision cut -------------------------------------------- */
.gbp-cut {
  padding: 20px var(--gbp-pad) 18px;
  border-top: 1px solid var(--gbp-f-cut);
  background: linear-gradient(180deg, var(--gbp-f-tint) 0%, rgba(0, 0, 0, 0) 100%);
}

.gbp-cut-label {
  display: flex;
  align-items: center;
  gap: 14px;
  font-size: 13.5px;
  font-weight: 600;
  letter-spacing: 0.04em;
  color: var(--gbp-f-title);
}

.gbp-cut-label::after {
  content: '';
  flex: 1;
  height: 1px;
  background: linear-gradient(90deg, var(--gbp-f-cut), rgba(0, 0, 0, 0));
}

.gbp-cut-note {
  margin-top: 8px !important;
  font-size: 13px;
  line-height: 1.5;
  color: var(--gbp-f-ink-2);
}

.gbp-field--after {
  background: rgba(255, 255, 255, 0.018);
}

/* ---- Title block ------------------------------------------------------------ */
.gbp-plate {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  grid-template-areas:
    "name party"
    "line party";
  column-gap: 28px;
  align-items: center;
  padding: 24px var(--gbp-pad) 26px;
  border-top: 1px solid var(--gbp-f-edge);
  background: var(--gbp-f-tint);
}

.gbp-plate-name {
  grid-area: name;
  font-size: 19px;
  font-weight: 600;
  color: var(--gbp-f-title);
}

.gbp-plate-line {
  grid-area: line;
  margin-top: 6px !important;
  max-width: 76ch;
  font-size: 13.5px;
  line-height: 1.55;
  color: var(--gbp-f-ink-2);
}

.gbp-plate-party {
  grid-area: party;
  max-width: 12em;
  padding-left: 24px;
  border-left: 1px solid var(--gbp-f-edge);
  font-size: 13px;
  font-weight: 600;
  line-height: 1.35;
  text-align: right;
  color: var(--gbp-f-ink-2);
}

/* ---- Register of opened parts --------------------------------------------- */
.gbp-register {
  display: grid;
  grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
  grid-template-areas:
    "heading heading"
    "table   notes";
  column-gap: 48px;
  padding: 24px var(--gbp-pad) 30px;
  border-top: 1px solid var(--gbp-f-hair);
}

.gbp-register-heading {
  grid-area: heading;
  margin: 0 0 14px;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.02em;
  color: var(--gbp-f-ink-2);
}

.gbp-register-table {
  grid-area: table;
  align-self: start;
  width: 100%;
  border-collapse: collapse;
  font-size: 13.5px;
}

.gbp-register-table th,
.gbp-register-table td {
  padding: 6px 0;
  border-top: 1px solid var(--gbp-f-hair);
  text-align: left;
  font-weight: 400;
  color: var(--gbp-f-ink-2);
}

.gbp-register-table thead th {
  border-top: 0;
  font-size: 12px;
  font-weight: 600;
  color: var(--gbp-f-ink-3);
}

.gbp-register-table tbody th {
  color: var(--gbp-f-ink);
}

.gbp-register-table .gbp-opened-col {
  width: 7em;
  text-align: right;
}

.gbp-register-table td.gbp-opened-col {
  font-style: italic;
  color: var(--gbp-f-ink-2);
}

.gbp-register-notes {
  grid-area: notes;
  align-self: start;
  padding-top: 27px;
}

.gbp-register-note {
  max-width: 60ch;
  font-size: 12.5px;
  line-height: 1.55;
  color: var(--gbp-f-ink-3);
}

.gbp-register-note + .gbp-register-note {
  margin-top: 10px !important;
}

/* ---- Boundaries plate: the record's specification, never collapsed ------- */
.gbp-bounds {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  column-gap: var(--gbp-gutter);
  margin-top: clamp(44px, 4vw, 60px);
}

.gbp-bounds-heading {
  grid-column: 1 / span 3;
  margin: 0;
  padding-top: 3px;
  font-size: 14px;
  font-weight: 500;
  line-height: 1.4;
  color: var(--gbp-label);
}

.gbp-bounds-list {
  grid-column: 4 / -1;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 22px var(--gbp-gutter);
  margin: 0;
  padding: 0;
  list-style: none;
  counter-reset: gbp-bound;
}

.gbp-bounds-list li {
  position: relative;
  padding-left: 30px;
  font-size: 15.5px;
  line-height: 1.55;
  color: var(--gbp-ink-2);
  counter-increment: gbp-bound;
}

.gbp-bounds-list li::before {
  content: counter(gbp-bound);
  position: absolute;
  left: 0;
  top: 1px;
  font-size: 12.5px;
  font-weight: 600;
  color: var(--gbp-ink-4);
}

.gbp-standing {
  grid-column: 4 / -1;
  margin: 30px 0 0;
  padding-top: 16px;
  border-top: 1px solid var(--gbp-rule);
  max-width: 72ch;
  font-size: 15.5px;
  font-weight: 500;
  line-height: 1.55;
  color: var(--gbp-ink);
}

/* ---- Disclosure motion: height and opacity, brief, off under reduced motion */
@supports (interpolate-size: allow-keywords) {
  .gbp-record {
    interpolate-size: allow-keywords;
  }

  .gbp-part::details-content {
    height: 0;
    overflow: hidden;
    opacity: 0;
    transition: height 0.24s cubic-bezier(0.16, 1, 0.3, 1),
                opacity 0.18s ease,
                content-visibility 0.24s allow-discrete;
  }

  .gbp-part[open]::details-content {
    height: auto;
    opacity: 1;
  }
}

@media (prefers-reduced-motion: reduce) {
  .gbp-part::details-content,
  .gbp-part[open]::details-content,
  .gbp-toggle::before {
    transition: none;
  }

  .gbp-issue.is-entering {
    animation: none;
  }
}

/* ==========================================================================
   02 · Section A — the decision on the rig (statement)
   Type is the visual: the largest heading after the H1, one breath of lede,
   then the two paragraphs stepped in at reading size.
   ========================================================================== */
/* Section A stands on the same light mineral ground as Sections C and F.
   Its 8px top padding existed only because it continued the document head's
   dark ground; as its own band it takes the shelf measure the other sections
   use, so the cut under the head is not left hard against the lede. */
.gbp-statement {
  --gbp-ink: #15171a;
  --gbp-ink-2: rgba(21, 23, 26, 0.8);
  --gbp-ink-3: rgba(21, 23, 26, 0.68);
  --gbp-ink-4: rgba(21, 23, 26, 0.32);
  --gbp-label: #625e56;
  --gbp-rule: rgba(21, 23, 26, 0.22);
  --gbp-amber-title: #7c5208;
  padding: clamp(96px, 9vw, 136px) 0 clamp(112px, 10vw, 152px);
  background: #dddcd6;
  color: var(--gbp-ink);
}

.gbp-heading--statement {
  max-width: 16ch;
  font-size: clamp(40px, 4.6vw, 66px);
  line-height: 1.04;
  letter-spacing: -0.032em;
}

.gbp-lede--statement {
  max-width: 34ch;
  margin-top: 26px;
  font-size: clamp(21px, 1.9vw, 27px);
  line-height: 1.4;
  letter-spacing: -0.012em;
  color: var(--gbp-ink-2);
}

.gbp-statement-body {
  grid-column: 5 / span 6;
  margin-top: clamp(36px, 3.4vw, 52px);
}

.gbp-statement-body .gbp-body:first-child {
  margin-top: 0;
}

/* ==========================================================================
   05 · Section D — no hindsight
   The record's cut drawn at page scale. Heading and lede sit above the line;
   the paragraphs sit below it. The section's own margin label labels it.
   ========================================================================== */
/* Its 8px top padding existed only because this section continued Section
   C's dark ground. C is light now, so the dark band starts on a hard cut and
   needs its own measure above the mark: the section is the one that carries
   the moment of decision, and it should not open against the edge. Top and
   foot are the same measure, so the band sits symmetrically. */
.gbp-hindsight {
  padding: clamp(104px, 9.5vw, 144px) 0 clamp(104px, 9.5vw, 144px);
  background: #0a0a0a;
}

.gbp-boundary {
  display: flex;
  align-items: center;
  gap: 18px;
  max-width: var(--frame-text);
  margin: clamp(48px, 4.4vw, 64px) auto 0;
  padding: 0 var(--gbp-gutter);
}

.gbp-boundary-label {
  flex: 0 0 auto;
  font-size: 13.5px;
  font-weight: 600;
  letter-spacing: 0.04em;
  color: rgba(246, 245, 242, 0.88);
}

.gbp-boundary-rule {
  flex: 1;
  height: 1px;
  background: linear-gradient(90deg, rgba(255, 255, 255, 0.34), rgba(255, 255, 255, 0.12) 70%, rgba(255, 255, 255, 0.04));
}

/* Everything below the moment of decision sits on a slightly different tone,
   as it does inside the record. */
.gbp-after {
  padding-top: clamp(32px, 3vw, 44px);
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.028) 0, rgba(255, 255, 255, 0) 140px);
}

.gbp-hindsight .gbp-below .gbp-body:first-child {
  margin-top: 0;
}

/* ==========================================================================
   06 · Section E — abstention
   A warm charcoal step: issue B's register at low intensity. The ground
   leaves D's neutral black within the shelf's first seventh and holds the
   warm charcoal, so abstention reads as its own state while scrolling
   (review 2026-09-18: same hue, a slightly larger step, no hard edge).
   ========================================================================== */
.gbp-abstain {
  padding: clamp(96px, 9vw, 136px) 0 clamp(112px, 10vw, 152px);
  background: linear-gradient(180deg, #0a0a0a 0%, #14120e 14%, #181511 42%, #181511 78%, #15130f 100%);
}

.gbp-abstain .gbp-label {
  color: #a8997e;
}

/* The paragraph that names issue B carries the record's withheld margin bar. */
.gbp-body--issue-b {
  margin-top: 26px;
  padding-left: 22px;
  border-left: 2px dashed rgba(229, 173, 73, 0.5);
  color: var(--gbp-ink-2);
}

/* ==========================================================================
   07 · Section F — what the status means (light reset)
   A warm mineral ground, hard-edged at both ends. Two columns (phrase →
   meaning), no rung marks: not the homepage maturity table.
   ========================================================================== */
.gbp-meaning {
  --gbp-ink: #15171a;
  --gbp-ink-2: rgba(21, 23, 26, 0.8);
  --gbp-ink-3: rgba(21, 23, 26, 0.68);
  --gbp-ink-4: rgba(21, 23, 26, 0.32);
  --gbp-label: #625e56;
  padding: clamp(96px, 9vw, 136px) 0 clamp(104px, 9.5vw, 144px);
  background: #dddcd6;
  color: var(--gbp-ink);
}

.gbp-meaning .gbp-stamp span {
  border-color: rgba(21, 23, 26, 0.42);
  color: rgba(21, 23, 26, 0.78);
}

.gbp-gloss {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  column-gap: var(--gbp-gutter);
  max-width: var(--frame-text);
  margin: clamp(48px, 4.4vw, 64px) auto 0;
  padding: 0 var(--gbp-gutter);
}

.gbp-gloss-caption {
  grid-column: 4 / span 8;
  padding-bottom: 12px;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.02em;
  color: var(--gbp-label);
}

.gbp-gloss-rows {
  grid-column: 4 / span 8;
  margin: 0;
  border-top: 2px solid var(--gbp-ink);
  border-bottom: 1px solid var(--gbp-ink);
}

.gbp-gloss-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  column-gap: var(--gbp-gutter);
  align-items: baseline;
  padding: 22px 0 24px;
}

.gbp-gloss-row + .gbp-gloss-row {
  border-top: 1px solid rgba(21, 23, 26, 0.18);
}

.gbp-gloss-row dt {
  font-size: clamp(20px, 1.8vw, 25px);
  font-weight: 500;
  line-height: 1.25;
  letter-spacing: -0.016em;
  color: var(--gbp-ink);
}

.gbp-gloss-row dd {
  margin: 0;
  font-size: 16.5px;
  line-height: 1.55;
  color: var(--gbp-ink-2);
}

/* The status-scope note's label: the gloss caption's treatment, reused so the
   note keeps the ledger's grammar. It carries the gap the note used to. */
.gbp-gloss-note-label {
  grid-column: 4 / span 8;
  margin: 34px 0 0;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.02em;
  color: var(--gbp-label);
}

/* The status boundary: a plain statement at full ink, never fine print. */
.gbp-gloss-note {
  grid-column: 4 / span 8;
  margin: 10px 0 0;
  max-width: 72ch;
  font-size: 16px;
  font-weight: 500;
  line-height: 1.55;
  color: var(--gbp-ink);
}

/* ==========================================================================
   08 · Section G — a scoped pilot
   Back to calm dark with a hard edge; the one action at the foot.
   ========================================================================== */
.gbp-pilot {
  padding: clamp(104px, 9.5vw, 144px) 0 clamp(64px, 6vw, 88px);
  background: linear-gradient(180deg, #0f1012 0%, #0c0c0d 60%, #0b0b0c 100%);
}

.gbp-sign {
  margin: 36px 0 0;
}

/* ==========================================================================
   Responsive
   ========================================================================== */
@media (max-width: 1100px) {
  .gbp-margin,
  .gbp-head-margin,
  .gbp-contents-heading,
  .gbp-bounds-heading { grid-column: 1 / span 2; }
  .gbp-main,
  .gbp-body--close    { grid-column: 3 / span 10; }
  .gbp-head-main      { grid-column: 3 / span 7; }
  .gbp-contents-list,
  .gbp-bounds-list,
  .gbp-standing       { grid-column: 3 / -1; }
  .gbp-ledger-rows    { grid-column: 3 / -1; }
  .gbp-ledger-caption { grid-column: 7 / -1; }
  .gbp-statement-body { grid-column: 4 / span 8; }
  .gbp-gloss-caption,
  .gbp-gloss-rows,
  .gbp-gloss-note-label,
  .gbp-gloss-note     { grid-column: 3 / -1; }

  .gbp-row {
    grid-template-columns: 24px minmax(130px, 170px) minmax(0, 1fr) 14px;
    grid-template-areas:
      "num name  entry   toggle"
      "num party caption toggle";
  }

  .gbp-party {
    text-align: left;
  }

  .gbp-sheet {
    margin-left: calc(var(--gbp-pad) + 24px + 20px + 170px + 20px);
  }
}

/* Tablet: the margin folds into the flow above each clause. */
@media (max-width: 899px) {
  .gbp-page {
    --gbp-gutter: 28px;
  }

  .gbp-grid,
  .gbp-head-grid,
  .gbp-contents,
  .gbp-ledger,
  .gbp-bounds,
  .gbp-gloss {
    grid-template-columns: minmax(0, 1fr);
  }

  .gbp-margin,
  .gbp-main,
  .gbp-head-margin,
  .gbp-head-main,
  .gbp-contents-heading,
  .gbp-contents-list,
  .gbp-ledger-caption,
  .gbp-ledger-rows,
  .gbp-body--close,
  .gbp-bounds-heading,
  .gbp-bounds-list,
  .gbp-standing,
  .gbp-statement-body,
  .gbp-gloss-caption,
  .gbp-gloss-rows,
  .gbp-gloss-note-label,
  .gbp-gloss-note {
    grid-column: 1;
    grid-row: auto;
  }

  .gbp-margin,
  .gbp-head-margin {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 6px 14px;
    padding-top: 0;
    margin-bottom: 18px;
  }

  .gbp-mark {
    margin: 0;
    font-size: 30px;
  }

  .gbp-stamp {
    margin: 0;
  }

  .gbp-xref {
    flex-basis: 100%;
    margin: 4px 0 0;
    padding-top: 0;
    border-top: 0;
  }

  .gbp-contents-heading {
    padding: 0 0 10px;
  }

  .gbp-ledger-rows {
    grid-template-columns: minmax(0, 1fr);
  }

  .gbp-ledger-row,
  .gbp-ledger-row--prediction {
    grid-column: 1;
    grid-row: auto;
  }

  /* One input among six: the panel keeps an object's size, never a banner's. */
  .gbp-ledger-row--prediction {
    max-width: 440px;
    margin-bottom: 28px;
  }

  .gbp-ledger-caption {
    padding-bottom: 12px;
  }

  .gbp-bounds-heading {
    padding: 0 0 16px;
  }

  .gbp-register {
    grid-template-columns: minmax(0, 1fr);
    grid-template-areas: "heading" "table" "notes";
  }

  .gbp-register-notes {
    padding-top: 16px;
  }
}

/* Phones: designed on its own, not reduced. */
@media (max-width: 640px) {
  .gbp-page {
    --gbp-gutter: 24px;
    --gbp-head-h: 600px;
    --gbp-anchor-offset: 112px;
  }

  /* Running head: a thin strip under the header bar (01 §3). */
  .gbp-running-head {
    display: block;
    margin: 0;
    padding: 7px var(--gbp-gutter) 8px;
    border-top: 1px solid var(--border-subtle);
    background: rgba(10, 10, 10, 0.9);
    font-size: 12.5px;
    font-weight: 500;
    line-height: 1.4;
    letter-spacing: 0.005em;
    color: var(--gbp-label);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }

  .gbp-head-plate img {
    object-position: 55% 40%;
  }

  .gbp-head-plate::after {
    background:
      linear-gradient(180deg, rgba(10, 10, 10, 0.55) 0%, rgba(10, 10, 10, 0) 20%, rgba(10, 10, 10, 0) 44%, rgba(10, 10, 10, 0.78) 70%, #0a0a0a 100%);
  }

  /* Label and stamp sit in the sky; the title block settles on the dark
     ground beneath the rig and runs on below the plate. */
  .gbp-head-grid {
    min-height: 0;
    padding: 128px var(--gbp-gutter) 30px;
  }

  .gbp-head-margin {
    margin-bottom: 0;
  }

  .gbp-head-main {
    margin-top: 300px;
  }

  .gbp-title {
    font-size: clamp(34px, 10vw, 42px);
  }

  .gbp-deck {
    margin-top: 14px;
    font-size: 17px;
  }

  .gbp-status {
    margin-top: 24px;
  }

  .gbp-status dd {
    font-size: 16px;
  }

  .gbp-contents {
    padding-bottom: 84px;
  }

  .gbp-contents-list {
    grid-template-columns: minmax(0, 1fr);
    grid-template-rows: none;
    grid-auto-flow: row;
  }

  .gbp-heading {
    font-size: clamp(27px, 8vw, 32px);
  }

  .gbp-passport .gbp-heading {
    font-size: clamp(28px, 8.4vw, 34px);
  }

  .gbp-lede {
    font-size: 17.5px;
  }

  .gbp-body {
    font-size: 16px;
    line-height: 1.62;
  }

  .gbp-ledger-row--prediction {
    padding: 22px 20px 16px;
  }

  .gbp-record {
    padding: 0 14px;
  }

  /* Issue names stack as two full-width controls. */
  .gbp-switch {
    flex-direction: column;
    gap: 2px;
    padding: 0 10px;
  }

  .gbp-switch-item {
    font-size: 15.5px;
  }

  .gbp-issue {
    --gbp-pad: 18px;
    border-radius: 10px;
  }

  .gbp-mast {
    grid-template-columns: minmax(0, 1fr);
    grid-template-areas: "mark" "name" "instr" "handle" "open";
    padding: 20px var(--gbp-pad) 20px;
  }

  .gbp-open-all {
    margin-top: 16px !important;
  }

  .gbp-open-all-button {
    width: 100%;
  }

  .gbp-row {
    grid-template-columns: 20px minmax(0, 1fr) 14px;
    grid-template-areas:
      "num name    toggle"
      "num party   party"
      "num entry   entry"
      "num caption caption";
    column-gap: 10px;
    row-gap: 6px;
    padding: 16px var(--gbp-pad) 17px;
  }

  .gbp-party {
    margin-top: -2px;
  }

  .gbp-entry {
    margin-top: 4px;
    font-size: 16px;
  }

  .gbp-entry--value {
    font-size: 17px;
  }

  .gbp-sheet {
    margin: 0 var(--gbp-pad) 18px calc(var(--gbp-pad) + 30px);
    padding-top: 14px;
  }

  .gbp-sheet p {
    font-size: 14.5px;
  }

  /* References restack: identifier and name, then the status on its own line. */
  .gbp-refs li {
    grid-template-columns: 30px minmax(0, 1fr);
    grid-template-areas:
      "id name"
      ".  status";
    row-gap: 2px;
  }

  .gbp-ref-id     { grid-area: id; }
  .gbp-ref-name   { grid-area: name; }
  .gbp-ref-status { grid-area: status; }

  .gbp-plate {
    grid-template-columns: minmax(0, 1fr);
    grid-template-areas: "name" "line" "party";
  }

  .gbp-plate-party {
    margin-top: 14px;
    padding: 12px 0 0;
    border-left: 0;
    border-top: 1px solid var(--gbp-f-edge);
    max-width: none;
    text-align: left;
  }

  .gbp-bounds-list {
    grid-template-columns: minmax(0, 1fr);
    gap: 16px;
  }

  .gbp-standing {
    margin-top: 24px;
  }

  .gbp-heading--statement {
    font-size: clamp(32px, 9.6vw, 40px);
  }

  .gbp-lede--statement {
    margin-top: 18px;
    font-size: 19.5px;
  }

  .gbp-boundary {
    gap: 12px;
  }

  .gbp-boundary-label {
    font-size: 13px;
  }

  .gbp-body--issue-b {
    padding-left: 16px;
  }

  /* Each clause over its meaning. */
  .gbp-gloss-row {
    grid-template-columns: minmax(0, 1fr);
    row-gap: 8px;
    padding: 18px 0 20px;
  }

  .gbp-gloss-row dt {
    font-size: 21px;
  }

  .gbp-gloss-note-label {
    margin-top: 28px;
  }

  .gbp-sign .signing-field {
    width: 100%;
    justify-content: space-between;
  }
}

@media (max-width: 359px) {
  .gbp-record {
    padding: 0 10px;
  }

  .gbp-issue {
    --gbp-pad: 14px;
  }
}

/* ==========================================================================
   Print (content authority 03 + 01 §14)
   Paper, not the dark screen: white ground, dark ink, no images behind text.
   Meaning is preserved, not the aesthetic:
   - both issues print in full, issue B from a new page; every part is open
     (gbi.js opens them before printing, and the ::details-content rule below
     keeps them open even without scripting);
   - not printed: the issue switch, Open every part, the register's Opened
     column, the skip link, the running head, the compact navigation and its
     Menu control, the caret toggles and both photographic plates;
   - withheld / stale / missing stay legible without colour: the word itself,
     italic, the dashed rule or dashed margin bar;
   - lines that the screen draws as backgrounds (the page-scale boundary, the
     cut's rule) are redrawn as borders, because browsers drop backgrounds
     in print by default;
   - link destinations beginning with / or http print after their label.
   Nothing here applies on screen.
   ========================================================================== */
@media print {
  @page {
    margin: 16mm 15mm 18mm;
  }

  .gbp-page {
    --gbp-ink: #111111;
    --gbp-ink-2: #2b2b2b;
    --gbp-ink-3: #444444;
    --gbp-ink-4: #6b6b6b;
    --gbp-label: #555555;
    --gbp-hair: #d0d0d0;
    --gbp-rule: #8a8a8a;
    --gbp-amber: #6b4300;
    --gbp-amber-title: #6b4300;
    --gbp-anchor-offset: 0;
    background: #ffffff;
    color: #111111;
  }

  html:has(.gbp-page) {
    background: #ffffff;
  }

  .gbp-page *,
  .gbp-page *::before,
  .gbp-page *::after {
    box-shadow: none !important;
    text-shadow: none !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    animation: none !important;
    transition: none !important;
  }

  /* ---- Not printed --------------------------------------------------------- */
  .skip-link,
  .gbp-running-head,
  .compact-nav-panel,
  .nav-disclosure,
  .gbp-head-plate,
  .close-horizon,
  .gbp-switch,
  .gbp-open-all,
  .gbp-opened-col,
  .gbp-toggle {
    display: none !important;
  }

  /* ---- Link destinations (01 §14); mailto: and tel: add nothing ---------- */
  .gbp-page a[href^="/"]::after,
  .gbp-page a[href^="http"]::after {
    content: " (" attr(href) ")";
    font-size: 0.86em;
    font-weight: 400;
    font-style: normal;
    letter-spacing: 0;
    color: #444444;
    white-space: normal;
    overflow-wrap: anywhere;
  }

  /* ---- Header: in flow at the top of the first page, primary nav shown --- */
  .gbp-page .site-header {
    position: static;
    background: none;
    border-bottom: 1px solid #c8c8c8;
  }

  .gbp-page .site-header-inner {
    display: block;
    padding: 0 0 12px;
  }

  .gbp-page .wordmark {
    color: #111111;
  }

  .gbp-page .site-nav {
    display: flex;
    flex-wrap: wrap;
    gap: 2px 20px;
    margin-top: 8px;
  }

  .gbp-page .site-nav-link {
    font-size: 11.5px;
    white-space: normal;
    color: #333333;
  }

  .gbp-page .site-nav-link[aria-current="page"] {
    color: #111111;
    font-weight: 600;
    text-decoration-color: #111111;
  }

  /* ---- Shelves: plain paper, compact spacing, a rule between sections ---- */
  .gbp-head,
  .gbp-shelf,
  .gbp-compare,
  .gbp-passport,
  .gbp-statement,
  .gbp-hindsight,
  .gbp-after,
  .gbp-abstain,
  .gbp-meaning,
  .gbp-pilot,
  .site-close,
  .site-footer {
    background: none !important;
  }

  .gbp-shelf {
    padding: 22px 0 26px !important;
    border-top: 1px solid #c8c8c8;
  }

  .gbp-grid,
  .gbp-head-grid,
  .gbp-contents,
  .gbp-ledger,
  .gbp-record,
  .gbp-boundary,
  .gbp-gloss {
    padding-left: 0;
    padding-right: 0;
  }

  .gbp-head-grid {
    min-height: 0;
    padding-top: 26px;
    padding-bottom: 18px;
  }

  .gbp-head-main {
    margin-top: 0;
  }

  .gbp-title {
    font-size: 34px;
    color: #111111;
  }

  .gbp-deck {
    font-size: 16px;
    color: #2b2b2b;
  }

  .gbp-status {
    border-top-color: #8a8a8a;
  }

  .gbp-contents {
    padding-bottom: 22px;
  }

  .gbp-stamp span {
    border-color: #555555;
    color: #222222;
  }

  .gbp-xref {
    border-top-color: #c8c8c8;
  }

  .gbp-heading {
    font-size: 25px;
  }

  .gbp-heading--statement {
    font-size: 30px;
  }

  .gbp-lede,
  .gbp-lede--statement {
    font-size: 16.5px;
  }

  .gbp-body {
    font-size: 13.5px;
    line-height: 1.55;
    max-width: none;
  }

  /* ---- B: the comparison ------------------------------------------------- */
  .gbp-ledger-row {
    border-top-color: #c8c8c8;
  }

  .gbp-ledger-row:last-child {
    border-bottom-color: #c8c8c8;
  }

  .gbp-ledger-row--prediction {
    max-width: 380px;
    background: none;
    border-color: #8a8a8a;
  }

  .gbp-forecast {
    will-change: auto;
    max-width: 300px;
  }

  .gbp-forecast-trace      { stroke: #222222; }
  .gbp-forecast-now        { stroke: #9a9a9a; }
  .gbp-forecast-projection { stroke: #444444; }
  .gbp-forecast-band       { fill: none; stroke: #6b6b6b; }
  .gbp-forecast-point      { fill: #111111; }

  /* ---- C: the record ----------------------------------------------------- */
  html[data-issue] .gbp-issue--a,
  html[data-issue] .gbp-issue--b {
    display: block !important;
  }

  .gbp-record {
    margin-top: 22px;
  }

  .gbp-issue {
    --gbp-f-ink: #111111;
    --gbp-f-ink-2: #2e2e2e;
    --gbp-f-ink-3: #505050;
    --gbp-f-title: #111111;
    --gbp-f-name: #111111;
    --gbp-f-spine: #2e2e2e;
    --gbp-f-hair: #d0d0d0;
    --gbp-f-edge: #7a7a7a;
    --gbp-f-cut: #3a3a3a;
    --gbp-f-tint: transparent;
    --gbp-pad: 18px;
    overflow: visible;
    border-radius: 4px;
    background: none;
  }

  /* Issue B keeps a warm dark ink so the two issues stay distinguishable,
     but every cue it carries is also in words, italic and dashed rules. */
  .gbp-issue--b {
    --gbp-f-ink: #2a1d05;
    --gbp-f-ink-2: #45320f;
    --gbp-f-ink-3: #5e4a26;
    --gbp-f-title: #5a3800;
    --gbp-f-name: #2a1d05;
    --gbp-f-spine: #45320f;
    --gbp-f-hair: #d8ccb4;
    --gbp-f-edge: #8a6a2a;
    --gbp-f-cut: #5a3800;
  }

  /* Each issue starts on its own page, so a frame never opens on a sliver
     at the foot of a page. */
  .gbp-issue,
  html[data-issue] .gbp-issue + .gbp-issue {
    margin-top: 0;
    break-before: page;
  }

  .gbp-fields,
  .gbp-field--after,
  .gbp-cut,
  .gbp-plate,
  .gbp-blank {
    background: none;
  }

  .gbp-mast {
    padding: 16px var(--gbp-pad);
  }

  .gbp-row {
    padding: 12px var(--gbp-pad);
    row-gap: 4px;
  }

  .gbp-entry {
    font-size: 14px;
  }

  .gbp-entry--value {
    font-size: 15px;
  }

  .gbp-caption {
    font-size: 11.5px;
  }

  .gbp-sheet {
    margin-bottom: 14px;
    padding-top: 10px;
  }

  .gbp-sheet p {
    font-size: 12.5px;
  }

  .gbp-refs li {
    font-size: 12.5px;
    padding: 5px 0;
  }

  /* The drawn blank Authorization line stays drawn and empty. */
  .gbp-blank {
    border-bottom: 1.5px solid #3a3a3a;
  }

  /* The cut: its rule redrawn as a border so it prints without backgrounds. */
  .gbp-cut {
    padding: 12px var(--gbp-pad) 10px;
    border-top: 1.5px solid var(--gbp-f-cut);
  }

  .gbp-cut-label::after {
    height: 0;
    background: none;
    border-top: 1px dashed var(--gbp-f-cut);
  }

  .gbp-withheld {
    color: #6b4300;
    text-decoration-color: #6b4300;
  }

  .gbp-withheld--entry {
    border-left-color: #6b4300;
  }

  .gbp-plate {
    padding: 14px var(--gbp-pad);
  }

  /* The register prints as the single Part column (03). */
  .gbp-register {
    padding: 14px var(--gbp-pad) 16px;
  }

  .gbp-bounds {
    margin-top: 22px;
  }

  .gbp-bounds-list li {
    font-size: 13.5px;
  }

  .gbp-standing {
    font-size: 13.5px;
    border-top-color: #555555;
  }

  /* ---- D: the page-scale boundary, redrawn as a border ------------------ */
  .gbp-boundary {
    margin-top: 20px;
  }

  .gbp-boundary-label {
    color: #111111;
  }

  .gbp-boundary-rule {
    height: 0;
    background: none;
    border-top: 1.5px dashed #3a3a3a;
  }

  .gbp-after {
    padding-top: 14px;
  }

  /* ---- E: abstention ------------------------------------------------------ */
  .gbp-abstain .gbp-label {
    color: #555555;
  }

  .gbp-body--issue-b {
    border-left-color: #6b4300;
  }

  /* ---- F: status ---------------------------------------------------------- */
  .gbp-meaning {
    --gbp-ink-4: #6b6b6b;
    --gbp-label: #555555;
  }

  .gbp-gloss-row + .gbp-gloss-row {
    border-top-color: #c8c8c8;
  }

  .gbp-gloss-row dt {
    font-size: 17px;
  }

  .gbp-gloss-row dd,
  .gbp-gloss-note {
    font-size: 13.5px;
  }

  /* ---- G, close and footer ------------------------------------------------ */
  .gbp-page .signing-field {
    width: auto;
    padding: 9px 14px;
    color: #111111;
    background: none;
    border-color: #555555;
  }

  .gbp-sign {
    margin-top: 18px;
  }

  .site-close {
    padding: 22px 0 18px;
    border-top: 1px solid #c8c8c8;
  }

  .site-close .close-inner {
    margin-top: 0;
    padding: 0;
  }

  .site-close .close-spine {
    font-size: 15px;
    color: #111111;
  }

  .site-close .close-action {
    margin-top: 14px;
  }

  .gbp-page .site-footer {
    --sf-ink: #111111;
    --sf-ink-2: #333333;
    --sf-ink-3: #555555;
    padding: 18px 0 0;
    border-top-color: #c8c8c8;
  }

  .gbp-page .site-footer-grid {
    padding: 0;
    row-gap: 12px;
  }

  .gbp-page .site-footer a {
    text-decoration-color: #8a8a8a;
  }

  /* ---- Page breaks: keep rows, entries and headings whole --------------- */
  .gbp-page p,
  .gbp-page li,
  .gbp-page dd {
    orphans: 3;
    widows: 3;
  }

  .gbp-heading,
  .gbp-margin,
  .gbp-head-margin,
  .gbp-contents-heading,
  .gbp-ledger-caption,
  .gbp-gloss-caption,
  .gbp-gloss-note-label,
  .gbp-bounds-heading,
  .gbp-register-heading,
  .gbp-sheet-heading,
  .gbp-mast,
  .gbp-cut,
  .gbp-boundary {
    break-after: avoid;
  }

  .gbp-status,
  .gbp-contents-list li,
  .gbp-ledger-row,
  .gbp-row,
  .gbp-refs li,
  .gbp-cut,
  .gbp-field--after,
  .gbp-plate,
  .gbp-register-table,
  .gbp-bounds-list li,
  .gbp-standing,
  .gbp-gloss-row,
  .gbp-gloss-note,
  .gbp-sign,
  .close-inner,
  .site-footer-grid {
    break-inside: avoid;
  }

  /* A part and its sheet stay together when the part fits on one page; the
     boundaries plate keeps its standing note; the action stays with its
     paragraphs. */
  .gbp-field,
  .gbp-bounds {
    break-inside: avoid;
  }

  .gbp-sign {
    break-before: avoid;
  }

  /* Every part open: gbi.js opens them before printing; this keeps each
     sheet visible on paper even without scripting. No transition, so a
     sheet opened for the print is never captured mid-animation. */
  .gbp-part::details-content {
    height: auto !important;
    opacity: 1 !important;
    content-visibility: visible !important;
    transition: none !important;
  }
}
