/* BestRelay — ivory paper, plum ink, magenta accents, gold hairlines. */
:root {
  --bs-paper: #fbf8f4;
  --bs-paper-deep: #f3ece2;
  --bs-ink: #2a1630;
  --bs-ink-soft: #5a4560;
  --bs-mute: #8b7b8d;
  --bs-magenta: #c026d3;
  --bs-magenta-deep: #9d1aac;
  --bs-gold: #b48a35;
  --bs-gold-faint: rgba(180, 138, 53, 0.42);
  --bs-hair: #e5dacb;
  --bs-code-bg: #241429;
  --bs-code-ink: #f5ece4;
  --bs-good: #2e7350;
  --bs-alarm: #b0234a;
  --bs-serif: "Fraunces", "Noto Serif SC", "Songti SC", Georgia, serif;
  --bs-sans: "Mulish", "PingFang SC", "Microsoft YaHei", system-ui, sans-serif;
  --bs-mono: "SFMono-Regular", Menlo, Consolas, monospace;
  --bs-measure: 1140px;
  color-scheme: light;
}
@media (prefers-color-scheme: dark) {
  :root:not([data-bs-shade="ivorypage"]) {
    --bs-paper: #170f1b; --bs-paper-deep: #211628; --bs-ink: #f4ece5; --bs-ink-soft: #cdbdcb; --bs-mute: #9e8fa1;
    --bs-magenta: #e27cf2; --bs-magenta-deep: #f0a6fb; --bs-gold: #d5b263; --bs-gold-faint: rgba(213, 178, 99, 0.38);
    --bs-hair: #3a2b40; --bs-code-bg: #0f0912; --bs-code-ink: #f0e6dd; --bs-good: #7cc69c; --bs-alarm: #ff7d9b;
    color-scheme: dark;
  }
}
:root[data-bs-shade="plumpage"] {
  --bs-paper: #170f1b; --bs-paper-deep: #211628; --bs-ink: #f4ece5; --bs-ink-soft: #cdbdcb; --bs-mute: #9e8fa1;
  --bs-magenta: #e27cf2; --bs-magenta-deep: #f0a6fb; --bs-gold: #d5b263; --bs-gold-faint: rgba(213, 178, 99, 0.38);
  --bs-hair: #3a2b40; --bs-code-bg: #0f0912; --bs-code-ink: #f0e6dd; --bs-good: #7cc69c; --bs-alarm: #ff7d9b;
  color-scheme: dark;
}
.bs-tongue-hi { --bs-serif: "Tiro Devanagari Hindi", "Fraunces", Georgia, serif; --bs-sans: "Mukta", "Mulish", system-ui, sans-serif; }

* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body { margin: 0; }
.bs-paper { background: var(--bs-paper); color: var(--bs-ink); font-family: var(--bs-sans); font-size: 16.5px; line-height: 1.65;
  text-rendering: optimizeLegibility; -webkit-font-smoothing: antialiased; }
.bs-paper a { color: inherit; text-decoration-color: var(--bs-gold-faint); text-underline-offset: 3px; }
.bs-paper a:hover { color: var(--bs-magenta); text-decoration-color: var(--bs-magenta); }
.bs-paper code { font-family: var(--bs-mono); font-size: 0.88em; background: var(--bs-paper-deep); padding: 1px 5px; border-radius: 2px; }

/* ---------- masthead (centred) ---------- */
.bs-masthead { padding: 0 20px; text-align: center; }
.bs-masthead-top { max-width: var(--bs-measure); margin: 0 auto; display: flex; justify-content: space-between; align-items: center;
  gap: 12px; flex-wrap: wrap; padding: 10px 0 0; font-size: 12px; }
.bs-tongue-row { display: flex; flex-wrap: wrap; gap: 4px 12px; }
.bs-tongue-row a { text-decoration: none; color: var(--bs-mute); letter-spacing: 0.04em; }
.bs-tongue-row a[aria-current] { color: var(--bs-magenta); }
.bs-entry-row { display: flex; align-items: center; flex-wrap: wrap; gap: 2px; font-variant: small-caps; letter-spacing: 0.08em;
  font-size: 13.5px; }
.bs-entry-row a { text-decoration: none; }
.bs-dot { color: var(--bs-gold); margin: 0 0.5em; font-variant: normal; }
.bs-textbtn { background: none; border: 0; padding: 0; font: inherit; font-variant: small-caps; letter-spacing: inherit; color: inherit; cursor: pointer; }
.bs-textbtn:hover { color: var(--bs-magenta); }
.bs-whoami { font-family: var(--bs-serif); font-style: italic; font-variant: normal; color: var(--bs-ink-soft); }
.bs-inline { display: inline; margin: 0; }
.bs-shade { width: 24px; height: 24px; margin-left: 12px; border-radius: 50%; border: 1px solid var(--bs-hair); background: transparent;
  color: var(--bs-ink); cursor: pointer; padding: 0; }
.bs-shade::before { content: "\25D0"; font-size: 12px; }
.bs-wordmark { display: inline-flex; align-items: center; gap: 12px; text-decoration: none; margin: 14px 0 16px; }
.bs-wordmark-text { font-family: var(--bs-serif); font-size: clamp(34px, 5vw, 50px); font-weight: 500; letter-spacing: -0.015em;
  font-variation-settings: "opsz" 144; }
.bs-rule-double { max-width: var(--bs-measure); margin: 0 auto; height: 5px; border-top: 1px solid var(--bs-gold); border-bottom: 1px solid var(--bs-gold); }
.bs-rule-hair { max-width: var(--bs-measure); margin: 0 auto; border-top: 1px solid var(--bs-gold-faint); }
.bs-primary { display: flex; justify-content: center; align-items: center; flex-wrap: wrap; padding: 9px 0; }
.bs-nav-link { font-size: 12.5px; font-weight: 700; letter-spacing: 0.2em; text-transform: uppercase; text-decoration: none; color: var(--bs-ink-soft); }
.bs-nav-on { color: var(--bs-magenta); }

/* ---------- shared ---------- */
.bs-main { max-width: var(--bs-measure); margin: 0 auto; padding: 36px 20px 72px; }
.bs-main-wide { max-width: 1240px; }
.bs-kicker { margin: 0 0 14px; font-size: 12px; font-weight: 700; letter-spacing: 0.2em; text-transform: uppercase; color: var(--bs-magenta); }
.bs-title { font-family: var(--bs-serif); font-weight: 400; font-size: clamp(34px, 4.6vw, 54px); line-height: 1.06; letter-spacing: -0.015em;
  margin: 0 0 14px; font-variation-settings: "opsz" 120; }
.bs-page-head { border-bottom: 1px solid var(--bs-gold-faint); padding-bottom: 22px; margin-bottom: 30px; }
.bs-page-lead { font-size: 18.5px; color: var(--bs-ink-soft); max-width: 44em; margin: 0; }
.bs-narrow { max-width: 700px; margin: 0 auto; }
.bs-btn, .bs-btn-line { display: inline-block; font-family: var(--bs-sans); font-size: 12.5px; font-weight: 700; letter-spacing: 0.14em;
  text-transform: uppercase; text-decoration: none; padding: 12px 22px; border-radius: 2px; cursor: pointer; line-height: 1.2; }
.bs-paper .bs-btn { background: var(--bs-ink); color: var(--bs-paper); border: 1px solid var(--bs-ink); text-decoration: none; }
.bs-paper .bs-btn:hover { background: var(--bs-magenta); border-color: var(--bs-magenta); color: #fff; }
.bs-btn-line { background: transparent; color: var(--bs-ink); border: 1px solid var(--bs-ink-soft); }
.bs-paper .bs-btn-line:hover { border-color: var(--bs-magenta); color: var(--bs-magenta); }
.bs-btn-small { padding: 8px 14px; font-size: 11.5px; }
.bs-btn[disabled], .bs-btn-line[disabled] { opacity: 0.45; cursor: not-allowed; }
.bs-more { font-family: var(--bs-serif); font-style: italic; font-size: 18px; }
.bs-section { margin: 76px 0 0; }
.bs-section-h { font-family: var(--bs-serif); font-weight: 400; font-size: clamp(28px, 3.4vw, 40px); margin: 0 0 10px; letter-spacing: -0.01em; }
.bs-section-lead { color: var(--bs-ink-soft); max-width: 46em; margin: 0 0 26px; }
.bs-unit-note, .bs-fine { font-size: 13.5px; color: var(--bs-mute); }
.bs-caveat { border-left: 2px solid var(--bs-gold); padding: 4px 0 4px 14px; color: var(--bs-ink-soft); font-size: 15px; }
.bs-empty { color: var(--bs-mute); font-style: italic; font-family: var(--bs-serif); }
.bs-flash { padding: 12px 16px; margin: 0 0 22px; background: var(--bs-paper-deep); border-left: 3px solid var(--bs-gold); }
.bs-flash-err { border-left-color: var(--bs-magenta); }
.bs-actions { display: flex; gap: 12px; flex-wrap: wrap; align-items: center; }

/* ---------- front page ---------- */
.bs-dateline { display: flex; justify-content: space-between; gap: 14px; margin: 0 0 40px; padding-bottom: 10px; font-size: 11.5px;
  letter-spacing: 0.22em; text-transform: uppercase; color: var(--bs-mute); border-bottom: 1px solid var(--bs-gold-faint); }
.bs-manifesto { max-width: 820px; margin: 0 auto; text-align: center; }
.bs-statement { font-family: var(--bs-serif); font-weight: 350; font-size: clamp(42px, 6.4vw, 80px); line-height: 1.02; letter-spacing: -0.025em;
  margin: 0 0 28px; font-variation-settings: "opsz" 144, "SOFT" 30; }
.bs-deck { font-family: var(--bs-serif); font-size: 21px; line-height: 1.62; color: var(--bs-ink-soft); margin: 0 auto 28px; max-width: 36em;
  text-align: left; }
.bs-deck::first-letter { float: left; font-size: 3.4em; line-height: 0.82; margin: 0.06em 0.1em 0 0; color: var(--bs-magenta); }
.bs-go { display: flex; justify-content: center; align-items: center; gap: 22px; flex-wrap: wrap; margin: 0 0 12px; }
.bs-golink { font-family: var(--bs-serif); font-style: italic; font-size: 18px; }
.bs-gift { margin: 0; font-size: 13.5px; letter-spacing: 0.06em; color: var(--bs-mute); }
.bs-specimen { margin: 56px auto 0; padding: 26px 0 14px; border-top: 1px solid var(--bs-gold); border-bottom: 1px solid var(--bs-gold);
  text-align: center; }
.bs-specimen-h { margin: 0 0 4px; font-size: 12px; font-weight: 700; letter-spacing: 0.22em; text-transform: uppercase; color: var(--bs-gold); }
.bs-specimen-note { margin: 0 0 18px; font-size: 14px; color: var(--bs-mute); }
.bs-specimen-list { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; justify-content: center; align-items: baseline; gap: 8px 0; }
.bs-specimen-item { font-family: var(--bs-serif); font-size: clamp(22px, 2.6vw, 33px); line-height: 1.25; font-variation-settings: "opsz" 96; }
.bs-specimen-item::after { content: "\00B7"; color: var(--bs-gold); margin: 0 0.42em; }
.bs-specimen-item:last-child::after { content: ""; }
.bs-specimen-house { font-family: var(--bs-sans); font-size: 10px; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase;
  color: var(--bs-magenta); vertical-align: super; margin-left: 4px; }
.bs-selection .bs-section-h, .bs-selection, .bs-selected .bs-section-h { text-align: center; }
.bs-selected .bs-section-lead { text-align: center; margin-left: auto; margin-right: auto; }
.bs-essay { max-width: 40em; margin: 0 auto; text-align: left; font-family: var(--bs-serif); font-size: 19px; line-height: 1.72;
  color: var(--bs-ink-soft); columns: 2 18em; column-gap: 46px; column-rule: 1px solid var(--bs-gold-faint); }
.bs-essay p { margin: 0 0 16px; break-inside: avoid; }
.bs-centred { text-align: center; }
.bs-centred .bs-page-lead { margin: 0 auto; }

/* ---------- lineup and rate book ---------- */
.bs-roster-sec { margin: 0 0 40px; }
.bs-roster-house { font-size: 12px; font-weight: 700; letter-spacing: 0.22em; text-transform: uppercase; color: var(--bs-gold); text-align: center;
  margin: 0 0 14px; padding-bottom: 8px; border-bottom: 1px solid var(--bs-gold-faint); }
.bs-roster { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 0 34px; }
.bs-roster-item { padding: 14px 0 16px; border-bottom: 1px dotted var(--bs-hair); }
.bs-roster-name { font-family: var(--bs-serif); font-weight: 400; font-size: 27px; margin: 0; line-height: 1.2; }
.bs-roster-id, .bs-roster-route, .bs-roster-price { margin: 3px 0 0; font-size: 14px; color: var(--bs-ink-soft); }
.bs-roster-price { font-variant-numeric: tabular-nums; color: var(--bs-ink); }
.bs-ratebook-sec { margin: 0 0 30px; }
.bs-ratebook-h { font-family: var(--bs-serif); font-weight: 500; font-size: 24px; margin: 0 0 6px; }
.bs-ratenotes { margin-top: 46px; }

/* ---------- tables ---------- */
.bs-table-wrap { overflow-x: auto; margin: 0 0 12px; }
.bs-ledger-table { width: 100%; border-collapse: collapse; font-size: 15px; }
.bs-ledger-table th { text-align: left; font-size: 11.5px; font-weight: 700; letter-spacing: 0.13em; text-transform: uppercase; color: var(--bs-mute);
  padding: 10px 12px; border-bottom: 1px solid var(--bs-gold); white-space: nowrap; }
.bs-ledger-table td { padding: 12px; border-bottom: 1px solid var(--bs-hair); vertical-align: top; }
.bs-ledger-table tbody tr:hover td { background: var(--bs-paper-deep); }
.bs-num { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.bs-ledger-table th.bs-num { text-align: right; }
.bs-model-name { font-family: var(--bs-serif); font-size: 17px; display: block; }
.bs-model-id { font-size: 12.5px; color: var(--bs-mute); }
.bs-house { font-size: 13px; color: var(--bs-ink-soft); }
.bs-note { border-top: 2px solid var(--bs-gold); padding-top: 14px; }
.bs-note p { margin: 0 0 8px; color: var(--bs-ink-soft); }

/* ---------- docs (chaptered guide) ---------- */
.bs-guide { max-width: 760px; margin: 0 auto; }
.bs-toc { margin: 0 0 40px; padding: 16px 22px; border-top: 3px double var(--bs-gold); border-bottom: 1px solid var(--bs-gold-faint); }
.bs-toc-h { margin: 0 0 8px; font-size: 12px; font-weight: 700; letter-spacing: 0.2em; text-transform: uppercase; color: var(--bs-gold); }
.bs-toc ol { list-style: none; margin: 0; padding: 0; columns: 2 16em; font-family: var(--bs-serif); font-size: 17px; }
.bs-toc a { text-decoration: none; }
.bs-chapter { margin: 0 0 52px; }
.bs-chapter-h { font-family: var(--bs-serif); font-weight: 400; font-size: clamp(26px, 3vw, 34px); margin: 0 0 14px; padding-bottom: 8px;
  border-bottom: 1px solid var(--bs-gold-faint); }
.bs-chapter p { font-size: 17.5px; line-height: 1.75; }
.bs-endpoint { text-align: center; }
.bs-endpoint code { font-size: 20px; padding: 6px 12px; }
.bs-paper .bs-code { background: var(--bs-code-bg); color: var(--bs-code-ink); padding: 16px 18px; border-radius: 2px; overflow-x: auto;
  font-size: 13.5px; line-height: 1.6; border-left: 3px solid var(--bs-gold); }
.bs-paper .bs-code code { background: none; padding: 0; color: inherit; font-size: inherit; }
.bs-plainlist { padding-left: 20px; }
.bs-plainlist li { margin-bottom: 8px; }
.bs-codes { display: grid; grid-template-columns: max-content 1fr; gap: 8px 22px; margin: 0; }
.bs-codes dt { font-family: var(--bs-serif); font-size: 22px; color: var(--bs-magenta); }
.bs-codes dd { margin: 0; padding-top: 4px; border-bottom: 1px dotted var(--bs-hair); }

/* ---------- journal ---------- */
.bs-filters { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px 18px; margin: 0 0 28px; padding-bottom: 14px;
  border-bottom: 1px solid var(--bs-hair); }
.bs-filter { text-decoration: none; font-size: 14px; font-weight: 600; color: var(--bs-ink-soft); }
.bs-filter-on { color: var(--bs-magenta); }
.bs-count { font-weight: 400; color: var(--bs-mute); font-size: 12px; }
.bs-entries { list-style: none; padding: 0; margin: 0 auto; max-width: 860px; }
.bs-entry { padding: 30px 0 26px; border-bottom: 1px solid var(--bs-gold-faint); }
.bs-entry-h { font-family: var(--bs-serif); font-weight: 400; font-size: clamp(28px, 3.6vw, 42px); margin: 0 0 10px; line-height: 1.12;
  letter-spacing: -0.012em; font-variation-settings: "opsz" 144; }
.bs-entry-h a { text-decoration: none; }
.bs-entry-dek { margin: 0 0 10px; font-family: var(--bs-serif); font-style: italic; font-size: 18px; color: var(--bs-ink-soft); }
.bs-entry-meta { display: flex; gap: 14px; flex-wrap: wrap; margin: 0; font-size: 11.5px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--bs-mute); }
.bs-entry-meta a { color: var(--bs-magenta); text-decoration: none; }
.bs-journal-foot { margin-top: 40px; text-align: center; font-family: var(--bs-serif); font-style: italic; font-size: 18px; }
.bs-back a { font-size: 13px; letter-spacing: 0.12em; text-transform: uppercase; text-decoration: none; color: var(--bs-mute); }
.bs-article { max-width: 780px; margin: 0 auto; }
.bs-prose { max-width: 42em; font-size: 18px; line-height: 1.78; }
.bs-prose h2, .bs-prose h3 { font-family: var(--bs-serif); font-weight: 500; line-height: 1.25; margin: 38px 0 12px; }
.bs-prose h2 { font-size: 28px; }
.bs-prose blockquote { margin: 22px 0; padding-left: 18px; border-left: 2px solid var(--bs-gold); font-family: var(--bs-serif); font-style: italic; }
.bs-related { margin-top: 48px; border-top: 1px solid var(--bs-gold); padding-top: 18px; }
.bs-related-h { font-size: 12px; letter-spacing: 0.2em; text-transform: uppercase; color: var(--bs-gold); margin: 0 0 10px; }
.bs-clause { margin: 0 0 30px; }
.bs-clause-h { font-family: var(--bs-serif); font-weight: 500; font-size: 22px; margin: 0 0 8px; }

/* ---------- forms ---------- */
.bs-form { display: flex; flex-direction: column; gap: 16px; margin: 0 0 12px; }
.bs-form-row { flex-direction: row; flex-wrap: wrap; align-items: flex-end; }
.bs-field { display: flex; flex-direction: column; gap: 6px; min-width: 200px; }
.bs-field-label { font-size: 12px; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: var(--bs-ink-soft); }
.bs-input { font: inherit; color: var(--bs-ink); background: var(--bs-paper); border: 1px solid var(--bs-hair); border-bottom-color: var(--bs-gold);
  border-radius: 2px; padding: 10px 12px; }
.bs-input:focus { outline: 2px solid var(--bs-magenta); outline-offset: 1px; }
.bs-input-small { width: 90px; padding: 6px 8px; font-size: 13px; }
.bs-textarea { resize: vertical; min-height: 110px; }
.bs-offstage { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.bs-switch { margin-top: 26px; font-size: 15px; color: var(--bs-ink-soft); }

/* ---------- gate (enrol / admission): centred narrow serif column ---------- */
.bs-gate { max-width: 460px; margin: 10px auto 0; text-align: center; }
.bs-gate .bs-title { font-size: clamp(32px, 4.4vw, 44px); }
.bs-gate-intro { font-family: var(--bs-serif); font-size: 19px; line-height: 1.6; color: var(--bs-ink-soft); margin: 0 0 24px; }
.bs-gate-note { font-family: var(--bs-serif); font-style: italic; color: var(--bs-magenta-deep); }
.bs-gate-form { text-align: left; }
.bs-gate-form .bs-btn { align-self: center; min-width: 60%; }
.bs-gate-form .bs-fine { text-align: center; }
.bs-invite summary { cursor: pointer; font-family: var(--bs-serif); font-style: italic; color: var(--bs-ink-soft); }
.bs-invite .bs-field { margin-top: 10px; }

/* ---------- dashboard: centred single column, text-link menu ---------- */
.bs-atelier { max-width: 860px; margin: 0 auto; }
.bs-menu { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; padding: 0 0 14px; margin: 0 0 26px;
  border-bottom: 1px solid var(--bs-gold-faint); font-size: 14.5px; }
.bs-menu-link { text-decoration: none; color: var(--bs-ink-soft); }
.bs-menu-on { color: var(--bs-magenta); text-decoration: underline; text-decoration-color: var(--bs-gold); }
.bs-badge { display: inline-block; min-width: 18px; margin-left: 5px; padding: 0 5px; border-radius: 9px; background: var(--bs-magenta); color: #fff;
  font-size: 11px; text-align: center; line-height: 17px; }
.bs-desk-head { text-align: center; margin-bottom: 22px; }
.bs-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 16px; margin: 0 0 24px; }
.bs-stat { border-top: 2px solid var(--bs-gold); padding: 12px 2px 4px; text-align: center; }
.bs-stat-label { margin: 0; font-size: 11.5px; font-weight: 700; letter-spacing: 0.13em; text-transform: uppercase; color: var(--bs-mute); }
.bs-stat-value { margin: 4px 0 0; font-family: var(--bs-serif); font-size: 28px; font-variant-numeric: tabular-nums; }
.bs-stat-warn .bs-stat-value { color: var(--bs-alarm); }
.bs-good { color: var(--bs-good); }
.bs-warnc { color: var(--bs-alarm); }
.bs-panel { border-top: 2px solid var(--bs-gold); padding: 18px 2px 14px; margin: 0 0 28px; }
.bs-panel-h { font-family: var(--bs-serif); font-weight: 500; font-size: 22px; margin: 0 0 12px; }
.bs-sub { font-size: 12px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--bs-ink-soft); margin: 18px 0 6px; }
.bs-bars { display: flex; align-items: flex-end; gap: 6px; height: 150px; padding: 6px 0; border-bottom: 1px solid var(--bs-gold); }
.bs-bar { flex: 1; background: linear-gradient(to top, var(--bs-magenta), var(--bs-gold)); border-radius: 1px 1px 0 0; min-height: 2px; opacity: 0.85; }
.bs-bar:hover { opacity: 1; }
.bs-statement-panel th[scope="row"] { font-family: var(--bs-serif); font-weight: 500; font-size: 17px; text-transform: none; letter-spacing: 0; color: var(--bs-ink); border-bottom: 1px solid var(--bs-hair); }
.bs-leaders { counter-reset: bs-leader; list-style: none; margin: 0; padding: 0; }
.bs-leaders li { counter-increment: bs-leader; display: flex; align-items: baseline; gap: 14px; padding: 10px 0; border-bottom: 1px dotted var(--bs-hair); }
.bs-leaders li::before { content: counter(bs-leader); font-family: var(--bs-serif); font-size: 26px; color: var(--bs-gold); min-width: 26px; }
.bs-leader-fig { margin-left: auto; font-variant-numeric: tabular-nums; color: var(--bs-ink-soft); }
.bs-mini { font: inherit; font-size: 12px; font-weight: 700; padding: 4px 9px; border: 1px solid var(--bs-hair); background: var(--bs-paper); color: var(--bs-ink);
  border-radius: 2px; cursor: pointer; }
.bs-mini:hover { border-color: var(--bs-magenta); color: var(--bs-magenta); }
.bs-mini-warn { color: var(--bs-alarm); }
.bs-secret { word-break: break-all; }
.bs-copyline { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.bs-copyline code { word-break: break-all; }
.bs-figure { font-family: var(--bs-serif); font-size: 22px; }
.bs-facts { display: grid; grid-template-columns: max-content 1fr; gap: 6px 18px; margin: 0 0 10px; }
.bs-facts dt { color: var(--bs-mute); font-size: 13px; }
.bs-facts dd { margin: 0; }
.bs-letters { list-style: none; padding: 0; margin: 0; }
.bs-letter { border-bottom: 1px solid var(--bs-hair); padding: 14px 0; }
.bs-letter-meta, .bs-reply-meta { margin: 0 0 4px; font-size: 12.5px; color: var(--bs-mute); }
.bs-letter-body { margin: 0 0 8px; white-space: pre-wrap; }
.bs-reply { margin: 8px 0 0 18px; padding-left: 14px; border-left: 2px solid var(--bs-gold); }
.bs-reply p { margin: 0 0 4px; white-space: pre-wrap; }
.bs-waiting { margin: 0; font-style: italic; color: var(--bs-mute); }
.bs-tag { font-size: 11px; border: 1px solid var(--bs-hair); padding: 0 6px; margin-left: 4px; }
/* back office keeps a side column */
.bs-salon .bs-atelier { max-width: 1240px; display: grid; grid-template-columns: 200px minmax(0, 1fr); gap: 36px; }
.bs-side { display: flex; flex-direction: column; border-right: 1px solid var(--bs-gold-faint); padding-right: 16px; text-align: left; }
.bs-side-link { padding: 8px 0; text-decoration: none; font-weight: 600; color: var(--bs-ink-soft); border-bottom: 1px dotted var(--bs-hair); }
.bs-side-on { color: var(--bs-magenta); }
.bs-salon .bs-desk .bs-title { font-size: 32px; }
.bs-salon .bs-masthead { text-align: left; }

/* ---------- colophon ---------- */
.bs-colophon { padding: 0 20px 44px; text-align: center; }
.bs-colophon-type { max-width: 38em; margin: 26px auto 10px; font-family: var(--bs-serif); font-style: italic; font-size: 15px; line-height: 1.6;
  color: var(--bs-ink-soft); }
.bs-colophon-links { margin: 0 0 8px; font-size: 13.5px; font-variant: small-caps; letter-spacing: 0.08em; }
.bs-colophon-links a { text-decoration: none; }
.bs-colophon-copy { margin: 0; font-size: 12.5px; letter-spacing: 0.12em; color: var(--bs-mute); }

@keyframes bs-ink-rise { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }
.bs-statement, .bs-deck { animation: bs-ink-rise 0.7s ease-out both; }
.bs-deck { animation-delay: 0.12s; }
@media (prefers-reduced-motion: reduce) { .bs-statement, .bs-deck { animation: none; } }

@media (max-width: 900px) {
  .bs-salon .bs-atelier { grid-template-columns: minmax(0, 1fr); gap: 24px; }
  .bs-side { border-right: 0; flex-direction: row; flex-wrap: wrap; gap: 4px 14px; padding: 0 0 10px; border-bottom: 1px solid var(--bs-gold-faint); }
  .bs-side-link { border-bottom: 0; padding: 4px 0; }
  .bs-essay { columns: 1; }
}
@media (max-width: 520px) {
  .bs-masthead { padding: 0 16px; }
  .bs-masthead-top { justify-content: center; }
  .bs-main { padding: 26px 16px 56px; }
  .bs-colophon { padding: 0 16px 32px; }
  .bs-field { min-width: 0; width: 100%; }
  .bs-deck { font-size: 18.5px; }
  .bs-codes { grid-template-columns: 1fr; gap: 2px; }
}
