/* ═══════════════════════════════════════════════════════════════
   BUGATTI INSIGHTS — Editorial Design System
   Cormorant Garamond display · Inter labels · dark heritage palette
   ═══════════════════════════════════════════════════════════════ */

/* Lazy background images (set by main.js initLazyBg once near the viewport).
   While the photo decodes the placeholder shows an elegant navy/gold "skeleton"
   pulse for perceived performance (#51); once loaded it fades the photo in.
   Uses background-color only (no positioning/size changes) so it can't affect
   how the loaded image is rendered. */
/* (3122) The two skeleton stops were #14223a and #20355c — hue 218/223 at 15%
   and 21% lightness, a good deal bluer and brighter than anything they stand
   in for, so a page mid-load flashed a colour that appears nowhere in the
   finished design. Derived from the surface token instead: the resting stop is
   the raised card ground, the pulse lifts it slightly. */
.bi-lazy-bg { background-color: var(--sur2); animation: bi-skeleton 1.6s ease-in-out infinite; }
.bi-lazy-bg.is-bg-loaded { animation: bi-bg-fade-in 420ms ease both; }
@keyframes bi-skeleton {
  0%, 100% { background-color: var(--sur2); }
  50%      { background-color: color-mix(in srgb, var(--sur2) 82%, var(--fg)); }
}
@keyframes bi-bg-fade-in { from { opacity: .55; } to { opacity: 1; } }
@media (prefers-reduced-motion: reduce) {
  .bi-lazy-bg { animation: none; }
}

/* ── Where the tokens went (task 3128) ───────────────────────────────────
   This file used to open with a 48-token :root block, one of five places
   that declared the same design tokens and did not agree with each other.
   All of it now lives in assets/css/tokens.css, which is enqueued before
   this file. Nothing was renamed and no rendered value changed; the block
   moved, and the aliases that nothing referenced were dropped.

   Dropped for having zero call sites: --surface, --panel, --surface2,
   --panel2, --white, --text (the only var(--text) in the codebase is in
   dossier-template.php, which declares its own), and --blue / --blue-hsl.
   --bg2 had three call sites, all in nav.css, all of them broken · see the
   note there.

   The historical notes that block carried (the gold consolidation of 3121,
   the shell of 3120) moved with it. Read tokens.css first if you are about
   to add a colour, a size or a spacing step anywhere in this codebase.

   ── The gold (task 3121) ──
   There is exactly one gold on this site and it is --gold / --gold-hsl in
   tokens.css, resolving to #E8C868. Before 3121 there were five, all written
   as literals so none of them tracked the token: #C9A84C (the old token
   value, 112 sites), #D4AF68 and #C2A162 / rgba(194,161,98,·) in the
   homepage hero, rgba(196,160,90,·) in brand-home, rgba(201,170,84,·) in
   this file, plus a stale hsl(43 60% 55%) fallback in the subscription
   widget. Changing the token moved none of them. The two rules that follow
   from that are written out at the colour block in tokens.css.

   Two surfaces cannot reach the token and carry a documented copy of the
   literal instead: dossier-template.php (a self-contained export printed
   outside the theme) and the plugin's standalone payment error page. Both
   say so in a comment at the copy. */

/* ══════════════════════════════════════════════════════════════
   A) GLOBAL RESET + BASE
   ══════════════════════════════════════════════════════════════ */
*,*::before,*::after { box-sizing:border-box; margin:0; padding:0; }
/* Clip horizontal overflow at the html (viewport) level so full-bleed
   children can extend past <body> without triggering a scrollbar.
   clip (not hidden) preserves position:sticky inside the page. */
html { overflow-x: clip; }
html { font-size:16px; scroll-behavior:smooth; background: var(--bg); }
body {
  background: var(--bg);
  color: var(--fg);
  /* Running text follows --f-body (Tinos since the 30-08 notes); UI chrome
     opts back in to --f-label per element. */
  font-family: var(--f-body, var(--f-label));
  font-size: 15px;
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
}
img  { display:block; max-width:100%; }
a    { color: var(--gold); text-decoration:none; transition: color .15s; }
a:hover { color: var(--gold); }
ol,ul { list-style: none; }

/* Shared dropdown theming — every native <select>/<option> site-wide.
   The browser renders the OPEN option list from each <option>'s own
   computed style, not by inheriting <select>'s background. A select whose
   box sets an explicit dark background + light text (as most on this site
   do, per-component) but whose <option> children are left unstyled can
   fall back to the browser's default white popup row, producing near-white
   text on a white background. Styling the bare elements here — instead of
   per component — means every existing themed select (`.bi-propose__select`,
   `.bi-types-sort select`, `.bdb-reg-filter-field select`, …) and every new
   one automatically gets a readable option list; a component's own class
   still wins for the closed box because a class selector outranks this
   plain-element rule. */
select {
  color: var(--fg);
  background-color: var(--sur);
}
select option {
  color: var(--fg);
  background-color: var(--sur);
}
/* Placeholder-style first option ("Select…") on a required, unfilled select. */
select:invalid { color: hsl(var(--fg-hsl) / 0.5); }
select:disabled,
select option:disabled {
  color: hsl(var(--fg-hsl) / 0.35);
}

.bi-main { min-height: 70vh; }

/* Page max-width wrapper used by most pages */
.bi-page-wrap {
  max-width: var(--bi-shell-maxw);
  margin: 0 auto;
  padding: 0 var(--bi-shell-gutter);
}

/* ══════════════════════════════════════════════════════════════
   B) TYPOGRAPHY UTILITIES
   ══════════════════════════════════════════════════════════════ */
.font-display {
  font-family: 'Cormorant Garamond','Playfair Display',Georgia,serif;
  letter-spacing: .02em;
}
.font-mono-label {
  font-family: 'Inter',system-ui,sans-serif;
  letter-spacing: var(--bi-ls-overline, 1px);
  text-transform: uppercase;
  font-weight: 500;
}

/* Fading horizontal rule (gradient) */
.hairline {
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--gold), transparent);
}

/* ══════════════════════════════════════════════════════════════
   C) SITE HEADER — sticky frosted glass
   ══════════════════════════════════════════════════════════════ */
.site-header {
  position: sticky;
  top: 0;
  z-index: 40;
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  background: hsl(var(--bg-hsl) / 0.82);
  border-bottom: 1px solid hsl(var(--gold-hsl) / 0.2);
}
.site-header__inner {
  max-width: var(--bi-shell-maxw);
  margin: 0 auto;
  padding: 0 var(--bi-shell-gutter);
  height: 5rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.site-header__logo {
  display: flex;
  align-items: center;
  gap: .65rem;
  text-decoration: none;
  opacity: 1;
  transition: opacity .15s;
}
.site-header__logo:hover { opacity: .8; color: inherit; }
.site-header__brand {
  font-family: var(--f-display);
  font-size: 1.5rem;
  letter-spacing: var(--bi-ls-overline, 1px);
  color: var(--fg);
  text-transform: uppercase;
}
.site-header__sub {
  font-family: var(--f-label);
  font-size: .625rem;
  letter-spacing: var(--bi-ls-overline, 1px);
  text-transform: uppercase;
  font-weight: 500;
  color: var(--gold);
}
.site-header__nav {
  display: flex;
  align-items: center;
  gap: 2.5rem;
}
.site-header__nav a {
  font-family: var(--f-label);
  font-size: .6875rem;
  letter-spacing: var(--bi-ls-overline, 1px);
  text-transform: uppercase;
  font-weight: 500;
  color: hsl(var(--fg-hsl) / 0.55);
  transition: color .15s;
}
.site-header__nav a:hover { color: var(--fg); }
.site-header__nav a.is-active { color: var(--gold); }
.site-header__nav-chat { color: var(--gold) !important; border: 1px solid hsl(var(--gold-hsl)/.2); padding: .25rem .75rem; }
.site-header__nav-chat:hover { color: var(--gold) !important; border-color: var(--gold); }
.site-header__nav-chat.is-active { color: var(--gold) !important; border-color: var(--gold); }

/* Right side cluster */
.site-header__right {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: .65rem;
  flex: 0 0 auto;
  white-space: nowrap;
}

.site-header__language {
  position: relative;
  display: inline-flex;
  align-items: center;
}
.site-header__language-select {
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
  pointer-events: none;
}
.site-header__language-trigger {
  height: 2.15rem;
  min-width: 6.4rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .45rem;
  background:
    linear-gradient(180deg, hsl(var(--gold-hsl) / .055), transparent),
    hsl(var(--bg-hsl) / .72);
  border: 1px solid hsl(var(--gold-hsl) / .24);
  color: hsl(var(--fg-hsl) / .68);
  font-family: var(--f-label);
  font-size: .54rem;
  font-weight: 700;
  letter-spacing: var(--bi-ls-overline, 1px);
  text-transform: uppercase;
  padding: 0 .72rem;
  cursor: pointer;
  transition: border-color .15s, color .15s, background .15s;
}
.site-header__language-trigger:hover,
.site-header__language-trigger[aria-expanded="true"] {
  border-color: var(--gold);
  color: var(--gold);
  background: hsl(var(--gold-hsl) / .07);
}
.site-header__language-trigger svg {
  flex: 0 0 auto;
  color: var(--gold);
  opacity: .75;
}
.site-header__language-menu {
  position: absolute;
  top: calc(100% + .55rem);
  right: 0;
  z-index: 100;
  width: 13rem;
  max-height: min(70vh, 26rem);
  overflow-y: auto;
  display: none;
  padding: .45rem;
  background: hsl(var(--bg-hsl) / .98);
  border: 1px solid hsl(var(--gold-hsl) / .22);
  box-shadow: 0 1.5rem 3rem hsl(0 0% 0% / .35);
  backdrop-filter: blur(18px);
}
.site-header__language-menu.is-open {
  display: grid;
}
.site-header__language-menu::before {
  content: '';
  position: absolute;
  left: .75rem;
  right: .75rem;
  top: -1px;
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--gold), transparent);
}
.site-header__language-menu button {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 2.15rem;
  width: 100%;
  border: 0;
  border-bottom: 1px solid hsl(var(--gold-hsl) / .07);
  background: transparent;
  color: hsl(var(--fg-hsl) / .58);
  font-family: var(--f-label);
  font-size: .62rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  text-align: left;
  padding: 0 .7rem;
  cursor: pointer;
}
.site-header__language-menu button:hover,
.site-header__language-menu button[aria-selected="true"] {
  color: var(--gold);
  background: hsl(var(--gold-hsl) / .07);
}
.site-header__language-menu button[aria-selected="true"]::after {
  content: '';
  width: .35rem;
  height: .35rem;
  border-radius: 0;
  background: var(--gold);
}
.site-header__icon-btn {
  width: 2.15rem;
  height: 2.15rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  background: transparent;
  border: 0;
  color: hsl(var(--fg-hsl)/.58);
  cursor: pointer;
  padding: 0;
  transition: color .15s, transform .15s;
}
.site-header__icon-btn:hover {
  color: var(--gold);
  transform: translateY(-1px);
}
.site-header__account {
  min-height: 2.15rem;
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  flex: 0 0 auto;
  padding: 0 .15rem;
  border: 0;
  background: transparent;
  font-family: var(--f-label);
  font-size: .6rem;
  letter-spacing: var(--bi-ls-button, 1px);
  text-transform: uppercase;
  color: hsl(var(--fg-hsl)/.58);
  text-decoration: none;
  transition: color .15s, transform .15s;
}
.site-header__account:hover {
  color: var(--gold);
  transform: translateY(-1px);
}
.site-header__account span { display: none; }
@media(min-width:900px){ .site-header__account span { display: inline; } }

/* Nav wraps gracefully on smaller screens */

/* Header search bar */
.site-header__search-bar {
  max-height: 0;
  overflow: hidden;
  transition: max-height .35s cubic-bezier(.4,0,.2,1);
  background: hsl(220 48% 5% / .98);
  backdrop-filter: blur(12px);
  border-top: 1px solid transparent;
}
.site-header__search-bar.is-open {
  max-height: 80px;
  border-top-color: hsl(var(--gold-hsl)/.2);
}
.site-header__search-inner {
  max-width: var(--bi-shell-maxw);
  margin: 0 auto;
  padding: 1rem var(--bi-shell-gutter);
  display: flex;
  align-items: center;
  gap: 1rem;
}
.site-header__search-icon {
  flex-shrink: 0;
  color: var(--gold);
}
.site-header__search-input {
  flex: 1;
  background: none;
  border: none;
  border-bottom: 1px solid hsl(var(--gold-hsl)/.2);
  color: var(--fg);
  font-family: var(--f-display);
  font-size: 1.125rem;
  font-weight: 300;
  letter-spacing: .04em;
  padding: .25rem 0;
  transition: border-color .2s;
}
.site-header__search-input:focus {
  /* 3124: `outline: none` removed. The gold bottom border it left behind is
     a real mark, but this selector is more specific than focus.css's field
     rule, so keeping the none here would have suppressed the underline that
     every other input on the site now gets. */
  border-bottom-color: var(--gold);
}
.site-header__search-input::placeholder { color: hsl(var(--fg-hsl)/.2); }
.site-header__search-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px; height: 36px;
  background: var(--gold);
  border: none;
  color: var(--bg);
  cursor: pointer;
  flex-shrink: 0;
  transition: opacity .15s;
}
.site-header__search-btn:hover { opacity: .85; }


/* Legacy bi-header kept for compat */
.bi-header { display: none; }

/* ══════════════════════════════════════════════════════════════
   D) SITE FOOTER — editorial 3-col
   ══════════════════════════════════════════════════════════════ */
.site-footer {
  border-top: 1px solid hsl(var(--gold-hsl) / 0.2);
  margin-top: 8rem;
}

/* 869ejc16t: when the sitewide .bi-reg-bar (PR #1065) sits directly above
   the footer, its own border+padding stack on top of the 8rem gap meant
   for ordinary page content, leaving a large empty dark band. Collapse the
   margin only for that adjacent-sibling case — .site-footer's base margin
   stays untouched for every page where a different element precedes it. */
.bi-reg-bar + .site-footer {
  margin-top: 0;
}

/* 869ejc16t round 2 (review, PR #1070): footer.php guards .bi-reg-bar out on
   the homepage and on page-bcc.php / page-collection.php / archive-bcc_type.php
   (they carry their own closing CTA already) — on those templates
   .bi-bcc-sticky-section becomes .site-footer's true adjacent sibling instead,
   and its own clamp(4rem, 7vw, 6rem) bottom padding stacked on the same
   untouched 8rem margin, leaving the identical empty band. Same collapse,
   the other adjacent-sibling case. */
.bi-bcc-sticky-section + .site-footer {
  margin-top: 0;
}

/* Footer CTA band (869egbckn) — tagline, verified key figures, Search + Ask
   AI buttons. Deliberately its own max-width/40ch-ish balanced heading
   instead of reusing .bi-closing-full's 14ch h2 clamp: that narrow width is
   what forced the tagline to wrap into 4 awkward lines (a lone lowercase
   word like "thorough" leading a line right under a capitalized one).
   text-wrap:balance + a wider container keeps every line a clean phrase. */
.site-footer__cta {
  border-bottom: 1px solid hsl(var(--gold-hsl) / 0.12);
  background: linear-gradient(180deg, hsl(var(--gold-hsl) / 0.05), transparent);
}
.site-footer__cta-inner {
  max-width: var(--bi-shell-maxw);
  margin: 0 auto;
  padding: 4.5rem var(--bi-shell-gutter) 4rem;
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  justify-content: space-between;
  gap: 2.5rem;
}
.site-footer__cta-lead { max-width: 34rem; }
.site-footer__tagline {
  font-family: var(--f-display);
  font-weight: 400;
  font-size: clamp(1.85rem, 3vw, 2.75rem);
  line-height: 1.18;
  letter-spacing: .01em;
  text-wrap: balance;
  margin: 0 0 1.75rem;
}
.site-footer__tagline em { font-style: italic; color: var(--gold); }
.site-footer__cta-stats {
  display: flex;
  flex-wrap: wrap;
  row-gap: 1.5rem;
  column-gap: 2.75rem;
}
.site-footer__cta-stat strong {
  display: block;
  font-family: var(--f-display);
  font-weight: 400;
  font-size: 2.1rem;
  color: var(--gold);
  line-height: 1;
}
.site-footer__cta-stat span {
  display: block;
  margin-top: .4rem;
  font-family: var(--f-label);
  font-size: .625rem;
  letter-spacing: var(--bi-ls-overline, 1px);
  text-transform: uppercase;
  color: hsl(var(--fg-hsl) / .5);
}
.site-footer__cta-actions { flex-shrink: 0; }
@media (max-width: 640px) {
  .site-footer__cta-inner { flex-direction: column; align-items: flex-start; }
  .site-footer__cta-stats { row-gap: 1.25rem; column-gap: 2rem; }
}

.site-footer__inner {
  max-width: var(--bi-shell-maxw);
  margin: 0 auto;
  padding: 4rem var(--bi-shell-gutter);
  display: grid;
  grid-template-columns: minmax(220px, 2fr) repeat(auto-fit, minmax(150px, 1fr));
  gap: 2.5rem;
}
.site-footer__logo {
  /* Stacked vector lockup (869etw58z): 506x145 intrinsic, ~3.49:1.
     Explicit width + aspect-ratio so the rendered box stays correct even
     if the SVG's intrinsic size ever reports wrong (nav-logo bug guard).
     349px wide = ~100px tall. */
  display: block;
  width: min(349px, 70vw);
  height: auto;
  aspect-ratio: 506 / 145;
}
.site-footer__desc {
  margin-top: 1.5rem;
  font-size: .875rem;
  color: hsl(var(--fg-hsl) / 0.6);
  line-height: 1.75;
  max-width: 28rem;
}
.site-footer__notice {
  margin-top: 1rem;
  padding-top: 1rem;
  border-top: 1px solid hsl(var(--gold-hsl) / 0.12);
  font-size: .8125rem;
  font-style: italic;
  color: hsl(var(--fg-hsl) / 0.5);
  line-height: 1.6;
  max-width: 28rem;
}
.site-footer__col-head {
  font-family: var(--f-label);
  font-size: .625rem;
  letter-spacing: var(--bi-ls-overline, 1px);
  text-transform: uppercase;
  font-weight: 500;
  color: var(--gold);
  margin-bottom: 1rem;
}
.site-footer__col ul { display: flex; flex-direction: column; gap: .55rem; }
.site-footer__col ul li,
.site-footer__col ul a {
  font-size: .875rem;
  color: hsl(var(--fg-hsl) / 0.6);
}
.site-footer__col ul a:hover { color: var(--fg); }
.site-footer__bottom { border-top: 1px solid hsl(var(--gold-hsl) / 0.1); }
.site-footer__bottom-inner {
  max-width: var(--bi-shell-maxw);
  margin: 0 auto;
  padding: 1.25rem var(--bi-shell-gutter);
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-family: var(--f-label);
  font-size: .6875rem;
  letter-spacing: var(--bi-ls-overline, 1px);
  text-transform: uppercase;
  font-weight: 500;
  color: hsl(var(--fg-hsl) / 0.35);
}
.site-footer__powered-by {
  display: inline-flex;
  align-items: center;
  gap: .5em;
  color: hsl(var(--fg-hsl) / 0.35);
  text-decoration: none;
  transition: color .2s ease;
}
.site-footer__powered-by:hover,
.site-footer__powered-by:focus-visible { color: hsl(var(--fg-hsl) / 0.65); }
.site-footer__powered-by img {
  height: 28px;
  width: auto;
  filter: brightness(0) invert(1);
  opacity: .55;
  transition: opacity .2s ease, transform .2s ease;
}
.site-footer__powered-by:hover img,
.site-footer__powered-by:focus-visible img {
  opacity: 1;
  transform: scale(1.04);
}
.bi-footer { display: none; } /* legacy */

/* The homepage used to override the footer's appearance (margin-top:0, a
   dramatic gradient/border/shadow) so it blended seamlessly into the
   full-bleed closing photo section directly above it. That section is gone
   (869egbckn — its tagline/buttons moved into the footer CTA band above),
   so the footer is now identical on every page, homepage included, same as
   the "recurring on every page" goal this was built for. */

/* ══════════════════════════════════════════════════════════════
   E) INLINE BREADCRUMB (used in page templates)
   ══════════════════════════════════════════════════════════════ */
/* (3133) Was font-family: var(--f-label) (Roboto Condensed), 10px, uppercase
   — a third, unrelated breadcrumb treatment next to .bdb-ch-hero__crumb
   (Tinos, 11.2px, sentence case), used on the hero-less utility templates
   (/bcc/, chat, my-proposals, propose sub-pages, uitvoering/variant detail,
   chassis-collision). Brought in line with the hero breadcrumb's font/size/
   case so the site has one breadcrumb treatment instead of two. */
.crumb,
.site-crumb {
  display: flex;
  align-items: center;
  gap: .5rem;
  font-family: var(--f-body, var(--f-label));
  font-size: .7rem;
  letter-spacing: .07em;
  font-weight: 500;
  color: hsl(var(--fg-hsl) / 0.35);
}
.crumb a { color: hsl(var(--fg-hsl) / 0.35); }
.crumb a:hover { color: var(--gold); }
.crumb__sep { color: hsl(var(--gold-hsl) / 0.3); }
/* (3134) Breadcrumb segments are page names — they may be Latin brand names
   ("Bugatti Insights", "Type 57") or translated Arabic text inside the same
   nav, so their direction can't be hardcoded either way. `isolate` alone
   still resolves a trailing separator/period against the *inherited* rtl
   direction and stays misplaced; `plaintext` resolves each segment's own
   direction from its first strong character instead, which fixes Latin
   segments without disturbing Arabic ones. */
.crumb a,
.crumb__cur { unicode-bidi: plaintext; }
.crumb__cur { color: hsl(var(--fg-hsl) / 0.55); }
/* (3134 follow-up) `.crumb__sep` holds only the bare separator glyph
   ("›", U+203A), a bidi-mirrored character with no strong direction of its
   own. `plaintext` defaults a no-strong-character run to LTR (UAX#9 P3),
   which stops the mirroring that made it point left under the page's
   inherited `rtl` — so on Arabic pages it silently flipped to point the
   wrong way. Keep this one on `isolate`, which preserves the inherited
   direction (and therefore the mirroring) instead of resolving its own. */
.crumb__sep { unicode-bidi: isolate; }

/* ══════════════════════════════════════════════════════════════
   F) HOMEPAGE
   ══════════════════════════════════════════════════════════════ */

/* Hero */
.bi-hero {
  position: relative;
  min-height: 92vh;
  display: flex;
  align-items: flex-end;
  overflow: hidden;
}
.bi-hero__bg {
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse 80% 60% at 50% 0%, hsl(var(--gold-hsl) / 0.06) 0%, transparent 60%), var(--bg);
}
.bi-hero__img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.bi-hero__fade {
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, var(--bg) 0%, hsl(var(--bg-hsl) / 0.7) 45%, hsl(var(--bg-hsl) / 0.3) 100%);
}
.bi-hero__fade-side {
  position: absolute;
  inset: 0;
  background: linear-gradient(to right, hsl(var(--bg-hsl) / 0.8) 0%, transparent 55%, hsl(var(--bg-hsl) / 0.4) 100%);
}
.bi-hero__content {
  position: relative;
  max-width: var(--bi-shell-maxw);
  margin: 0 auto;
  padding: 0 var(--bi-shell-gutter) 6rem;
  width: 100%;
}
.bi-hero__eyebrow {
  font-family: var(--f-label);
  font-size: .6875rem;
  letter-spacing: var(--bi-ls-overline, 1px);
  text-transform: uppercase;
  font-weight: 500;
  color: var(--gold);
  margin-bottom: 1.5rem;
}
.bi-hero__title {
  font-family: var(--f-display);
  font-size: clamp(3.5rem, 9vw, 8rem);
  font-weight: 400;
  letter-spacing: .05em;
  line-height: .95;
  color: var(--fg);
}
.bi-hero__title em {
  display: block;
  font-style: italic;
  color: var(--gold);
}
.bi-hero__body {
  margin-top: 2.5rem;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 3rem;
  max-width: 50rem;
}
.bi-hero__desc {
  font-family: var(--f-display);
  font-size: 1.2rem;
  color: hsl(var(--fg-hsl) / 0.85);
  line-height: 1.6;
}
.bi-hero__cta-wrap {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 1rem;
  justify-content: flex-end;
}
.bi-hero__vol {
  font-family: var(--f-label);
  font-size: .625rem;
  letter-spacing: var(--bi-ls-overline, 1px);
  text-transform: uppercase;
  font-weight: 500;
  color: hsl(var(--fg-hsl) / 0.4);
}

/* CTA button */
.bi-btn {
  display: inline-block;
  font-family: var(--f-label);
  font-size: .6875rem;
  letter-spacing: var(--bi-ls-button, 1px);
  text-transform: uppercase;
  font-weight: 500;
  border: 1px solid var(--gold);
  border-radius: 0;
  color: var(--gold);
  padding: 1rem 2rem;
  text-decoration: none;
  transition: background .2s, color .2s;
}
.bi-btn:hover { background: var(--gold); color: var(--bg); }

/* Quote band */
.bi-quote-band {
  border-top: 1px solid hsl(var(--gold-hsl) / 0.15);
  border-bottom: 1px solid hsl(var(--gold-hsl) / 0.15);
  background: var(--sur);
}
.bi-quote-band__inner {
  max-width: var(--bi-shell-maxw);
  margin: 0 auto;
  padding: 4rem var(--bi-shell-gutter);
  display: grid;
  grid-template-columns: 1fr 8fr 3fr;
  gap: 2rem;
  align-items: center;
}
.bi-quote-band__mark {
  font-family: var(--f-display);
  font-size: 5rem;
  line-height: .7;
  color: var(--gold);
}
.bi-quote-band__text {
  font-family: var(--f-display);
  font-size: clamp(1.2rem, 2.5vw, 1.9rem);
  font-style: italic;
  color: hsl(var(--fg-hsl) / 0.85);
  line-height: 1.4;
}
.bi-quote-band__source {
  text-align: right;
}
.bi-quote-band__author {
  font-family: var(--f-label);
  font-size: .625rem;
  letter-spacing: var(--bi-ls-overline, 1px);
  text-transform: uppercase;
  font-weight: 500;
  color: var(--gold);
}
.bi-quote-band__place {
  font-family: var(--f-label);
  font-size: .625rem;
  letter-spacing: var(--bi-ls-overline, 1px);
  text-transform: uppercase;
  font-weight: 400;
  color: hsl(var(--fg-hsl) / 0.35);
  margin-top: .3rem;
}

/* Eras section */
.bi-eras {
  max-width: var(--bi-shell-maxw);
  margin: 0 auto;
  padding: 5rem var(--bi-shell-gutter) 0;
}
.bi-eras__header {
  display: grid;
  grid-template-columns: 5fr 6fr;
  gap: 2rem;
  margin-bottom: 4rem;
  align-items: end;
}
.bi-eras__eyebrow {
  font-family: var(--f-label);
  font-size: .6875rem;
  letter-spacing: var(--bi-ls-overline, 1px);
  text-transform: uppercase;
  font-weight: 500;
  color: var(--gold);
  margin-bottom: 1rem;
}
.bi-eras__h2 {
  font-family: var(--f-display);
  font-size: clamp(2.5rem, 5vw, 4rem);
  font-weight: 400;
  letter-spacing: .03em;
  line-height: 1.05;
}
.bi-eras__h2 em { font-style: italic; color: var(--gold); }
.bi-eras__desc { color: hsl(var(--fg-hsl) / 0.6); line-height: 1.7; }
.bi-eras__desc::before {
  content: '';
  display: block;
  height: 1px;
  background: linear-gradient(90deg, hsl(var(--gold-hsl) / 0.35), transparent);
  margin-bottom: 1.5rem;
}

/* Eras list */
.bi-era-list { border-top: 1px solid hsl(var(--gold-hsl) / 0.2); }
.bi-era-row {
  display: grid;
  grid-template-columns: 1fr 3fr 3fr 2fr 3fr;
  gap: 1.5rem;
  align-items: baseline;
  padding: 1.5rem .5rem;
  border-bottom: 1px solid hsl(var(--gold-hsl) / 0.12);
  text-decoration: none;
  transition: background .15s;
}
a.bi-era-row:hover { background: hsl(var(--sur-hsl) / 0.6); }
.bi-era-row__n {
  font-family: var(--f-display);
  font-size: 2.8rem;
  line-height: 1;
  color: var(--gold);
  transition: color .15s;
}
a.bi-era-row:hover .bi-era-row__n { color: var(--gold); }
.bi-era-row__years {
  font-family: var(--f-label);
  font-size: .6875rem;
  letter-spacing: .1em;
  color: hsl(var(--fg-hsl) / 0.45);
}
.bi-era-row__title {
  font-family: var(--f-display);
  font-size: 1.5rem;
  font-weight: 400;
  color: var(--fg);
}
.bi-era-row__sub {
  font-family: var(--f-label);
  font-size: .625rem;
  letter-spacing: var(--bi-ls-overline, 1px);
  text-transform: uppercase;
  font-weight: 500;
  color: var(--gold);
}
.bi-era-row__desc {
  font-size: .875rem;
  color: hsl(var(--fg-hsl) / 0.55);
}

/* Stats strip */
.bi-stats-strip {
  border-top: 1px solid hsl(var(--gold-hsl) / 0.15);
  border-bottom: 1px solid hsl(var(--gold-hsl) / 0.15);
  background: var(--sur);
  display: flex;
  justify-content: center;
  margin-top: 0; /* page content provides its own margin */
}
.bi-stat {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 3rem 4.5rem; /* more air */
  border-right: 1px solid hsl(var(--gold-hsl) / 0.15);
}
.bi-stat:last-child { border-right: none; }
.bi-stat__num {
  font-family: var(--f-display);
  font-size: 3.5rem; /* bigger — architectural weight */
  font-weight: 300;
  letter-spacing: .03em;
  color: var(--gold);
  line-height: 1;
  margin-bottom: .5rem;
}
.bi-stat__label {
  font-family: var(--f-label);
  font-size: .625rem;
  letter-spacing: var(--bi-ls-overline, 1px);
  text-transform: uppercase;
  font-weight: 500;
  color: hsl(var(--fg-hsl) / 0.5);
}

/* BCC Cert section */
.bi-bcc-section {
  max-width: var(--bi-shell-maxw);
  margin: 5rem auto 0;
  padding: 0 var(--bi-shell-gutter);
}
.bi-bcc-box {
  border: 1px solid hsl(var(--gold-hsl) / 0.3);
  background: var(--sur);
  padding: 4rem;
  display: grid;
  grid-template-columns: 7fr 5fr;
  gap: 3rem;
  align-items: center;
}
.bi-bcc-eyebrow {
  font-family: var(--f-label);
  font-size: .6875rem;
  letter-spacing: var(--bi-ls-overline, 1px);
  text-transform: uppercase;
  font-weight: 500;
  color: var(--gold);
  margin-bottom: 1rem;
}
.bi-bcc-h2 {
  font-family: var(--f-display);
  font-size: clamp(1.8rem, 3vw, 2.8rem);
  font-weight: 400;
  line-height: 1.25;
}
.bi-bcc-h2 em { font-style: italic; color: var(--gold); }
.bi-bcc-phases {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 2rem;
  margin-top: 2.5rem;
}
.bi-bcc-phase__n {
  font-family: var(--f-label);
  font-size: .625rem;
  letter-spacing: var(--bi-ls-overline, 1px);
  text-transform: uppercase;
  font-weight: 500;
  color: var(--gold);
  margin-bottom: .5rem;
}
.bi-bcc-phase__title {
  font-family: var(--f-display);
  font-size: 1.2rem;
  margin-bottom: .75rem;
}
.bi-bcc-phase ul { display: flex; flex-direction: column; gap: .3rem; }
.bi-bcc-phase li {
  font-size: .8125rem;
  color: hsl(var(--fg-hsl) / 0.6);
}
.bi-bcc-badge { display: flex; justify-content: center; }

/* Stakeholders */
.bi-stakeholders {
  max-width: var(--bi-shell-maxw);
  margin: 5rem auto 0;
  padding: 0 var(--bi-shell-gutter);
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 4rem;
}
.bi-stakeholders__head {
  font-family: var(--f-label);
  font-size: .6875rem;
  letter-spacing: var(--bi-ls-overline, 1px);
  text-transform: uppercase;
  font-weight: 500;
  color: var(--gold);
  margin-bottom: 1rem;
}
.bi-shareholder-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1px;
  background: hsl(var(--gold-hsl) / 0.15);
  border: 1px solid hsl(var(--gold-hsl) / 0.2);
}
.bi-shareholder-cell {
  background: var(--sur);
  padding: 1.5rem;
  text-align: center;
}
.bi-shareholder-cell .font-display {
  font-size: 1rem;
  font-weight: 400;
}

/* ── Compact hero variant (homepage) ── */
.bi-hero--compact {
  min-height: 52vh;
}
.bi-hero__content--center {
  padding-bottom: 5rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}
.bi-hero__content--center .bi-hero__title {
  font-size: clamp(4rem, 11vw, 10rem);
}
.bi-hero__dot  { color: var(--gold); font-size: .45rem; }
.bi-hero__tagline {
  font-family: var(--f-label);
  font-size: .625rem;
  letter-spacing: var(--bi-ls-overline, 1px);
  text-transform: uppercase;
  font-weight: 500;
  color: hsl(var(--fg-hsl) / 0.45);
  margin-top: 2rem;
  display: flex;
  align-items: center;
  gap: .85rem;
}

/* ══════════════════════════════════════════════════════════════
   F2) EDITORIAL TYPE GRID  (photo-first, overlaid text)
   ══════════════════════════════════════════════════════════════ */

.bi-types-section {
  max-width: var(--bi-shell-maxw);
  margin: 0 auto;
  padding: 4rem var(--bi-shell-gutter) 3rem;
}

/* ── Era group ── */
.bi-era-group { margin-bottom: 5rem; }

/* ── Era header — architectural section title ── */
.bi-era-header {
  display: flex;
  align-items: baseline;
  gap: 1.5rem;
  margin-bottom: 1.5rem;
  padding-bottom: 1rem;
  border-bottom: var(--bi-hairline-w, 2px) solid var(--line);
}
.bi-era-header__num {
  font-family: var(--f-display);
  font-size: 2.5rem;
  font-weight: 300;
  color: hsl(var(--gold-hsl) / .25);
  line-height: 1;
  flex-shrink: 0;
}
.bi-era-header__rule {
  width: 3rem;
  height: 1px;
  background: hsl(var(--gold-hsl) / .3);
  flex-shrink: 0;
  margin-bottom: .3rem;
}
.bi-era-header__name {
  font-family: var(--f-label);
  font-size: .625rem;
  letter-spacing: var(--bi-ls-overline, 1px);
  text-transform: uppercase;
  font-weight: 600;
  color: var(--gold);
  flex: 1;
}
.bi-era-header__count {
  font-family: var(--f-label);
  font-size: .5rem;
  letter-spacing: var(--bi-ls-overline, 1px);
  text-transform: uppercase;
  color: hsl(var(--fg-hsl) / .3);
}

/* ── Grid — 4 columns, hero spans 2 ── */
.bi-type-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 2px;
  background: hsl(var(--gold-hsl) / .08);
}

/* Single item — full width */
.bi-type-grid--n1 { grid-template-columns: 1fr; }

/* 2 items — equal halves */
.bi-type-grid--n2 { grid-template-columns: 1fr 1fr; }
.bi-type-grid--n2 .bi-type-card--hero { grid-column: span 1; }

/* 3 items — hero 2-wide, two halves */
.bi-type-grid--n3 { grid-template-columns: repeat(4, 1fr); }
.bi-type-grid--n3 .bi-type-card--hero { grid-column: span 2; }

/* 4+ items — hero 2-wide, rest fill remaining */
.bi-type-grid--n4,
.bi-type-grid--n5,
.bi-type-grid--n6 { grid-template-columns: repeat(4, 1fr); }
.bi-type-grid--n4 .bi-type-card--hero,
.bi-type-grid--n5 .bi-type-card--hero,
.bi-type-grid--n6 .bi-type-card--hero { grid-column: span 2; grid-row: span 1; }

/* ── Card — photo-first, all text overlaid ── */
.bi-type-card {
  position: relative;
  display: block;
  overflow: hidden;
  text-decoration: none;
  background: var(--sur);
  /* Aspect ratio: all cards same height via min-height */
  min-height: 300px;
  border: 1px solid hsl(var(--gold-hsl) / .14);
  box-shadow:
    0 18px 42px rgba(0,0,0,.22),
    inset 0 0 0 1px hsl(var(--gold-hsl) / .03);
  transition:
    transform .45s cubic-bezier(.22,.68,0,1.08),
    border-color .28s ease,
    box-shadow .35s ease,
    background .28s ease;
}
.bi-type-card:hover {
  transform: translateY(-8px);
  border-color: hsl(var(--gold-hsl) / .42);
  box-shadow:
    0 28px 64px rgba(0,0,0,.36),
    inset 0 0 0 1px hsl(var(--gold-hsl) / .08),
    0 0 0 1px hsl(var(--gold-hsl) / .12);
}
.bi-type-card--hero { min-height: 420px; }

/* Full-bleed image */
.bi-type-card__img {
  position: absolute;
  inset: 0;
  display: block;
  background-size: cover;
  background-position: center 30%;
  background-color: var(--sur2);
  transition: transform .9s cubic-bezier(.25,.46,.45,.94), filter .35s ease;
  transform: scale(1.04);
  filter: saturate(.92) contrast(1.02) brightness(.88);
}
.bi-type-card:hover .bi-type-card__img {
  transform: scale(1.12);
  filter: saturate(1.07) contrast(1.08) brightness(1);
}
.bi-type-card__img--empty {
  background: linear-gradient(145deg, hsl(var(--sur-hsl)) 0%, hsl(var(--sur2-hsl)) 100%);
}
/* Bottom gradient — content lives here */
.bi-type-card__gradient {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(to top,
      hsl(var(--bg-hsl) / .98)  0%,
      hsl(var(--bg-hsl) / .75) 30%,
      hsl(var(--bg-hsl) / .20) 58%,
      transparent               80%
    );
  transition: opacity .35s ease, background .35s ease;
  opacity: .78;
}
.bi-type-card:hover .bi-type-card__gradient {
  opacity: .98;
  background:
    linear-gradient(to top,
      hsl(var(--bg-hsl) / .99)  0%,
      hsl(var(--bg-hsl) / .76) 24%,
      hsl(var(--bg-hsl) / .18) 58%,
      transparent               78%
    ),
    linear-gradient(180deg, transparent 0%, transparent 46%, hsl(var(--gold-hsl) / .08) 100%);
}

/* Index badge — top left */
.bi-type-card__index {
  position: absolute;
  top: 1rem;
  left: 1rem;
  z-index: 3;
  font-family: var(--f-label);
  font-size: .5rem;
  letter-spacing: var(--bi-ls-overline, 1px);
  color: var(--gold);
  text-transform: uppercase;
}

/* Text body — pinned to bottom */
.bi-type-card__body {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 3;
  padding: 1.5rem 1.5rem 1.6rem;
  transform: translateY(0);
  transition: transform .45s cubic-bezier(.22,.68,0,1.2);
}
.bi-type-card:hover .bi-type-card__body {
  transform: translateY(-12px);
}

.bi-type-card__name {
  font-family: var(--f-display);
  font-size: clamp(1.4rem, 2.5vw, 1.8rem);
  font-weight: 300;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--fg);
  line-height: 1.1;
  margin-bottom: .5rem;
  transition: color .28s ease, transform .35s ease, letter-spacing .28s ease;
}
.bi-type-card--hero .bi-type-card__name {
  font-size: clamp(2rem, 3.5vw, 2.8rem);
}
.bi-type-card:hover .bi-type-card__name {
  color: var(--gold);
  transform: translateY(-2px);
  letter-spacing: .08em;
}

.bi-type-card__foot {
  display: flex;
  align-items: center;
  gap: 1rem;
  transform: translateY(10px);
  transition: opacity .4s ease, transform .4s ease, color .25s ease;
}
.bi-type-card:hover .bi-type-card__foot {
  opacity: 1;
  transform: translateY(0);
}
.bi-type-card__year {
  font-family: var(--f-label);
  font-size: .575rem;
  letter-spacing: var(--bi-ls-overline, 1px);
  text-transform: uppercase;
  color: hsl(var(--fg-hsl) / .55);
  unicode-bidi: plaintext; /* (3134) year ranges are always LTR numerals — see .crumb note above */
}
.bi-type-card__chassis {
  font-family: var(--f-label);
  font-size: .5rem;
  letter-spacing: var(--bi-ls-overline, 1px);
  text-transform: uppercase;
  color: var(--gold);
  border: 1px solid hsl(var(--gold-hsl) / .2);
  padding: .15rem .5rem;
  unicode-bidi: plaintext; /* (3134) chassis tags are always Latin/numeric — see .crumb note above */
}

/* Arrow — bottom right, reveals on hover */
.bi-type-card__arrow {
  position: absolute;
  bottom: 1.6rem;
  right: 1.5rem;
  z-index: 3;
  font-family: var(--f-label);
  font-size: .75rem;
  color: var(--gold);
  opacity: 0;
  transform: translateX(-6px);
  transition: opacity .35s, transform .35s;
}
.bi-type-card:hover .bi-type-card__arrow {
  opacity: 1;
  transform: translateX(0);
}

/* ── Mobile: single column ── */
@media (max-width: 700px) {
  .bi-type-grid,
  .bi-type-grid--n3,
  .bi-type-grid--n4,
  .bi-type-grid--n5,
  .bi-type-grid--n6 { grid-template-columns: 1fr 1fr; }
  .bi-type-card--hero { grid-column: span 2; }
  .bi-type-card { min-height: 260px; }
  .bi-type-card--hero { min-height: 320px; }
}

/* ══════════════════════════════════════════════════════════════
   G) LIST-PAGE UTILITIES
   ══════════════════════════════════════════════════════════════ */

/* Label badge */
.bi-label {
  display: inline-block;
  font-family: var(--f-label);
  font-size: .5625rem;
  font-weight: 500;
  letter-spacing: var(--bi-ls-overline, 1px);
  text-transform: uppercase;
  color: var(--gold);
  border: 1px solid hsl(var(--gold-hsl) / 0.3);
  padding: .2rem .6rem;
}
.bi-label--dim { color: hsl(var(--fg-hsl) / 0.5); border-color: hsl(var(--gold-hsl) / 0.15); }

/* Section heading */
.bi-sh {
  font-family: var(--f-label);
  font-size: .5625rem;
  font-weight: 500;
  letter-spacing: var(--bi-ls-overline, 1px);
  text-transform: uppercase;
  color: var(--gold);
  padding-bottom: .5rem;
  border-bottom: 1px solid hsl(var(--gold-hsl) / 0.2);
  margin-bottom: 1.25rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.bi-sh__n { font-size: .5625rem; color: hsl(var(--fg-hsl) / 0.4); letter-spacing: .06em; }

/* Masthead — used on type/variant/uitvoering pages */
/* (3216) Masthead rule = section divider family: token width, --line colour
   (was a 1px gold-alpha look-alike). */
.bi-masthead { padding-bottom: 2rem; border-bottom: var(--bi-hairline-w, 2px) solid var(--line); }
.bi-masthead__eyebrow {
  font-family: var(--f-label);
  font-size: .5625rem;
  letter-spacing: var(--bi-ls-overline, 1px);
  text-transform: uppercase;
  font-weight: 500;
  color: var(--gold);
  margin-bottom: .65rem;
  display: flex;
  align-items: center;
  gap: .75rem;
}
.bi-masthead__eyebrow::before { content:''; width:1.4rem; height:1px; background:hsl(var(--gold-hsl)/.3); }
.bi-masthead__title {
  font-family: var(--f-display);
  font-size: clamp(3rem, 7vw, 7rem);
  font-weight: 400;
  letter-spacing: .03em;
  text-transform: uppercase;
  line-height: .92;
  color: var(--fg);
}
.bi-masthead__sub {
  font-family: var(--f-display);
  font-size: clamp(.9rem, 2vw, 1.4rem);
  font-style: italic;
  letter-spacing: .08em;
  color: var(--gold);
  margin-top: .5rem;
}
.bi-masthead__badges { display:flex; gap:.4rem; flex-wrap:wrap; margin-top:1rem; }

/* ── Full-page masthead (type + variant pages) — large editorial header ── */
.bi-page-masthead {
  padding: 4rem 0 3rem;
  border-bottom: 1px solid hsl(var(--gold-hsl) / .15);
  margin-bottom: 0;
}
.bi-page-masthead__inner {
  max-width: var(--bi-shell-maxw);
  margin: 0 auto;
  padding: 0 var(--bi-shell-gutter);
}
.bi-page-masthead__era {
  font-family: var(--f-label);
  font-size: .5rem;
  letter-spacing: var(--bi-ls-overline, 1px);
  text-transform: uppercase;
  font-weight: 500;
  color: var(--gold);
  display: flex;
  align-items: center;
  gap: 1rem;
  margin-bottom: 1.5rem;
}
.bi-page-masthead__era::before {
  content: '';
  width: 2rem;
  height: 1px;
  background: var(--gold);
  flex-shrink: 0;
}
.bi-page-masthead__h1 {
  font-family: var(--f-display);
  font-size: clamp(4rem, 10vw, 10rem);
  font-weight: 300;
  letter-spacing: .04em;
  text-transform: uppercase;
  line-height: .9;
  color: var(--fg);
  margin-bottom: 1.5rem;
}
.bi-page-masthead__sub {
  font-family: var(--f-display);
  font-size: clamp(1.1rem, 2.5vw, 1.8rem);
  font-style: italic;
  letter-spacing: .06em;
  color: var(--gold);
  margin-bottom: 1.25rem;
}
.bi-page-masthead__badges {
  display: flex;
  gap: .5rem;
  flex-wrap: wrap;
}

/* ── Horizontal specs bar (type / variant pages) ── */
.bi-specs-bar {
  display: flex;
  flex-wrap: wrap;
  gap: 0;
  margin: 0 0 4rem;
  border-top: 1px solid hsl(var(--gold-hsl) / .18);
  border-bottom: 1px solid hsl(var(--gold-hsl) / .18);
  padding: 1.75rem 0;
}
.bi-specs-bar__item {
  padding: 0 2.75rem 0 0;
  margin-right: 2.75rem;
  border-right: 1px solid hsl(var(--gold-hsl) / .12);
}
.bi-specs-bar__item:last-child { border-right: none; margin-right: 0; padding-right: 0; }
.bi-specs-bar__item dt {
  font-family: var(--f-label);
  font-size: .5rem;
  letter-spacing: var(--bi-ls-overline, 1px);
  text-transform: uppercase;
  color: hsl(var(--fg-hsl) / .38);
  margin-bottom: .45rem;
}
.bi-specs-bar__item dd {
  font-family: var(--f-display);
  font-size: clamp(1.1rem, 2vw, 1.5rem);
  font-weight: 300;
  letter-spacing: .05em;
  color: var(--fg);
  line-height: 1.15;
}

/* Sidebar + panel */
.bi-sidebar { display:flex; flex-direction:column; gap:1.25rem; }
.bi-panel {
  border: 1px solid hsl(var(--gold-hsl) / 0.2);
  border-top: 1px solid hsl(var(--gold-hsl) / 0.4); /* refined — less blunt than 2px solid */
  box-shadow: 0 -1px 0 hsl(var(--gold-hsl) / 0.15); /* subtle top glow */
  overflow: hidden;
  background: var(--sur);
}
.bi-panel__head {
  padding: .55rem 1rem;
  font-family: var(--f-label);
  font-size: .5625rem;
  font-weight: 500;
  letter-spacing: var(--bi-ls-overline, 1px);
  text-transform: uppercase;
  color: var(--gold);
  background: hsl(var(--gold-hsl) / 0.06);
  border-bottom: 1px solid hsl(var(--gold-hsl) / 0.15);
}
.bi-panel__body { padding: .9rem 1rem; }

/* Data table — key/value rule (Martien 02-09, 869eu80jv): field names =
   Tinos (body token), data values = Roboto Condensed (label token). This
   table had the pair inverted (condensed th / display-serif td). */
.bi-dt { width:100%; border-collapse:collapse; font-size:.8rem; }
.bi-dt th,.bi-dt td { padding:.35rem .6rem; border-bottom:1px solid hsl(var(--fg-hsl)/.04); text-align:left; vertical-align:top; }
.bi-dt th { font-family:var(--f-body, var(--f-label)); font-size:.5625rem; letter-spacing:.1em; text-transform:none; color:hsl(var(--fg-hsl)/.45); font-weight:500; width:8rem; white-space:nowrap; }
.bi-dt td {
  font-family: var(--f-label);
  font-size: .95rem;
  color: var(--fg);
}
.bi-dt tr:last-child th,.bi-dt tr:last-child td { border-bottom:none; }
.bi-dt a { color:var(--gold); }

/* Cards grid */
.bi-cards {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(185px, 1fr));
  border: 1px solid hsl(var(--gold-hsl) / 0.2);
  gap: 1px;
  background: hsl(var(--gold-hsl) / 0.15);
}
.bi-card {
  background: var(--sur);
  padding: 1.1rem 1.25rem 1.35rem;
  display: flex;
  flex-direction: column;
  gap: .2rem;
  text-decoration: none;
  color: var(--fg);
  transition: background .15s, border-color .15s;
  position: relative;
}
.bi-card:hover { background: var(--sur2); }
.bi-card::after { content:'›'; position:absolute; right:1rem; top:50%; transform:translateY(-50%); color:hsl(var(--gold-hsl)/.3); font-size:1.3rem; transition:color .15s; }
.bi-card:hover::after { color:var(--gold); }
.bi-card__eye { font-family:var(--f-label); font-size:.5625rem; font-weight:500; letter-spacing:var(--bi-ls-overline, 1px); text-transform:uppercase; color:var(--gold); }
.bi-card__title { font-family:var(--f-display); font-size:1.1rem; letter-spacing:.02em; }
.bi-card__sub { font-size:.65rem; color:hsl(var(--fg-hsl)/.5); }
.bi-card__count { font-size:.65rem; color:var(--gold); margin-top:.2rem; }

/* Chassis table — let it scroll horizontally inside its parent on narrow
   viewports instead of forcing the page itself to scroll. */
.bi-ctable { width:100%; border-collapse:collapse; display: block; overflow-x: auto; max-width: 100%; }
.bi-ctable thead, .bi-ctable tbody { display: table; width: 100%; min-width: 480px; }
.bi-ctable tr { display: table-row; }
.bi-ctable thead th {
  font-family: var(--f-label);
  font-size: .5625rem;
  letter-spacing: var(--bi-ls-overline, 1px);
  text-transform: uppercase;
  font-weight: 500;
  color: var(--gold);
  background: hsl(var(--gold-hsl) / 0.06);
  padding: .5rem .75rem;
  border-bottom: 1px solid hsl(var(--gold-hsl) / 0.2);
  text-align: left;
}
.bi-ctable tbody td {
  padding: .42rem .75rem;
  border-bottom: 1px solid hsl(var(--fg-hsl) / 0.04);
  font-size: .8rem;
  color: hsl(var(--fg-hsl) / 0.75);
}
.bi-ctable tbody td:first-child { color:var(--gold); font-weight:600; }
.bi-ctable tbody td a { color:var(--gold); }
.bi-ctable tbody tr:hover td { background:hsl(255 255 255 / .02); cursor:pointer; }

/* Pagination */
.bi-pag { display:flex; gap:1px; flex-wrap:wrap; margin-top:1.25rem; background:hsl(var(--gold-hsl)/.15); width:fit-content; }
.bi-pag a,.bi-pag span { display:block; padding:.38rem .85rem; font-size:.7rem; background:var(--sur); color:hsl(var(--fg-hsl)/.55); }
.bi-pag .current { background:var(--gold); color:var(--bg); font-weight:600; }
.bi-pag a:hover { background:var(--sur2); color:var(--gold); }

/* Body content */
.bi-content { font-size:.85rem; line-height:1.8; color:hsl(var(--fg-hsl)/.7); }
.bi-content p { margin-bottom:.85rem; }

/* Empty state */
.bi-empty { padding:2.5rem; text-align:center; border:1px dashed hsl(var(--gold-hsl)/.2); font-size:.8rem; color:hsl(var(--fg-hsl)/.4); }

/* Inline quote (sidebar) */
blockquote {
  padding-left: 1.25rem;
  border-left: 2px solid var(--gold);
}
.bq-mark { font-family:var(--f-display); font-size:3rem; font-weight:300; line-height:.5; color:var(--gold); display:block; margin-bottom:.5rem; }
blockquote p { font-family:var(--f-display); font-size:1.05rem; font-style:italic; line-height:1.55; color:hsl(var(--fg-hsl)/.85); }
.bq-src { font-family:var(--f-label); font-size:.5625rem; letter-spacing:var(--bi-ls-overline, 1px); text-transform:uppercase; font-weight:500; color:var(--gold); margin-top:.6rem; }

/* ══════════════════════════════════════════════════════════════
   H) CHASSIS PROFILE PAGE
   ══════════════════════════════════════════════════════════════ */

/* Page-level wrapper */
.ch-page { max-width: var(--bi-shell-maxw); margin: 0 auto; padding: 0 var(--bi-shell-gutter); }

/* ── Hero ── */
.ch-hero { padding: 4rem 0 3rem; }
.ch-hero__grid {
  display: grid;
  grid-template-columns: 7fr 4fr;
  gap: 3rem;
  align-items: end;
}
.ch-hero__eyebrow {
  font-family: var(--f-label);
  font-size: .6875rem;
  letter-spacing: var(--bi-ls-overline, 1px);
  text-transform: uppercase;
  font-weight: 500;
  color: var(--gold);
  margin-bottom: 1.5rem;
}
.ch-hero__h1 {
  font-family: var(--f-display);
  font-size: clamp(3rem, 7vw, 7rem);
  font-weight: 400;
  letter-spacing: .04em;
  line-height: .95;
  color: var(--fg);
}
.ch-hero__h1 em {
  display: block;
  font-style: italic;
  color: var(--gold);
  margin-top: .25rem;
}
.ch-hero__desc {
  margin-top: 2rem;
  max-width: 52ch;
  color: hsl(var(--fg-hsl) / 0.7);
  line-height: 1.75;
}
.ch-id-panel {
  border: 1px solid hsl(var(--gold-hsl) / 0.3);
  background: var(--sur);
  padding: 1.75rem;
}
.ch-id-panel__head {
  font-family: var(--f-label);
  font-size: .5625rem;
  letter-spacing: var(--bi-ls-overline, 1px);
  text-transform: uppercase;
  font-weight: 500;
  color: var(--gold);
  margin-bottom: 1.25rem;
  padding-bottom: .75rem;
  border-bottom: 1px solid hsl(var(--gold-hsl) / 0.15);
}
.ch-id-list { display: flex; flex-direction: column; gap: 0; }
.ch-id-row {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  padding: .55rem 0;
  border-bottom: 1px solid hsl(var(--gold-hsl) / 0.08);
}
.ch-id-row:last-of-type { border-bottom: none; }
.ch-id-row dt {
  font-family: var(--f-label);
  font-size: .5625rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  font-weight: 500;
  color: hsl(var(--fg-hsl) / 0.45);
}
.ch-id-row dd { font-size: .875rem; color: var(--fg); }
.ch-id-panel__note {
  margin-top: 1.25rem;
  font-size: .75rem;
  font-style: italic;
  color: hsl(var(--fg-hsl) / 0.45);
  line-height: 1.55;
}

/* ── Cinematic image ── */
.ch-cinematic {
  position: relative;
  height: 65vh;
  min-height: 420px;
  overflow: hidden;
  margin-top: 4rem;
}
.ch-cinematic > img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.ch-cinematic__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, var(--bg) 0%, hsl(var(--bg-hsl) / 0.3) 55%, transparent 100%);
}
.ch-cinematic__caption {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  max-width: var(--bi-shell-maxw);
  margin: 0 auto;
  padding: 0 var(--bi-shell-gutter) 2.5rem;
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
}
.ch-cinematic__plate {
  font-family: var(--f-label);
  font-size: .625rem;
  letter-spacing: var(--bi-ls-overline, 1px);
  text-transform: uppercase;
  font-weight: 500;
  color: var(--gold);
  margin-bottom: .3rem;
}
.ch-cinematic__title {
  font-family: var(--f-display);
  font-size: 1.4rem;
  font-weight: 400;
  color: var(--fg);
}
.ch-cinematic__id {
  font-family: var(--f-label);
  font-size: .625rem;
  letter-spacing: var(--bi-ls-overline, 1px);
  text-transform: uppercase;
  font-weight: 500;
  color: hsl(var(--fg-hsl) / 0.4);
}

/* Cinematic placeholder (no image) */
.ch-cinematic-ph {
  height: 65vh;
  min-height: 420px;
  background: linear-gradient(135deg, var(--sur) 0%, var(--sur2) 100%);
  display: flex;
  align-items: center;
  justify-content: center;
  margin-top: 4rem;
  position: relative;
}
.ch-cinematic-ph svg {
  width: 60%;
  max-width: 600px;
  opacity: .2;
}

/* ── Generic section ── */
.ch-section { margin-top: 5rem; }
.ch-section .ch-page { }

.ch-sec-header { margin-bottom: 3rem; }
.ch-sec-header--grid {
  display: grid;
  grid-template-columns: 5fr 6fr;
  gap: 2rem;
  align-items: end;
}
.ch-sec-eyebrow {
  font-family: var(--f-label);
  font-size: .6875rem;
  letter-spacing: var(--bi-ls-overline, 1px);
  text-transform: uppercase;
  font-weight: 500;
  color: var(--gold);
  margin-bottom: .85rem;
}
.ch-sec-h2 {
  font-family: var(--f-display);
  font-size: clamp(2rem, 4vw, 3.5rem);
  font-weight: 400;
  letter-spacing: .03em;
  line-height: 1.05;
}
.ch-sec-h2 em { font-style: italic; color: var(--gold); }
.ch-sec-desc { color: hsl(var(--fg-hsl) / 0.6); line-height: 1.7; }

.ch-pathways { margin-top: 2.5rem; }
.ch-pathways__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1px;
  border: 1px solid hsl(var(--gold-hsl) / .18);
  background: hsl(var(--gold-hsl) / .18);
}
.ch-pathway-card {
  min-height: 12rem;
  padding: 1.6rem;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  background:
    linear-gradient(135deg, hsl(var(--sur-hsl) / .96), hsl(var(--bg-hsl) / .88)),
    var(--sur);
  color: var(--fg);
  text-decoration: none;
  transition: transform .22s ease, background .22s ease, border-color .22s ease;
}
.ch-pathway-card:hover {
  transform: translateY(-4px);
  background:
    linear-gradient(135deg, hsl(var(--gold-hsl) / .12), hsl(var(--sur-hsl) / .98)),
    var(--sur);
}
.ch-pathway-card__kicker {
  font-family: var(--f-label);
  font-size: .56rem;
  letter-spacing: var(--bi-ls-overline, 1px);
  text-transform: uppercase;
  color: var(--gold);
}
.ch-pathway-card strong {
  margin-top: 2rem;
  font-family: var(--f-display);
  font-size: clamp(1.35rem, 2.4vw, 2.25rem);
  font-weight: 300;
  line-height: 1;
  letter-spacing: .035em;
}
.ch-pathway-card em {
  margin-top: 1rem;
  max-width: 30ch;
  font-style: normal;
  font-size: .8rem;
  line-height: 1.65;
  color: hsl(var(--fg-hsl) / .58);
}
.ch-pathway-card--muted { opacity: .7; }
.ch-provenance-empty {
  border: 1px solid hsl(var(--gold-hsl) / .18);
  background: hsl(var(--sur-hsl) / .72);
  padding: 2rem;
}
.ch-provenance-empty span {
  display: block;
  font-family: var(--f-label);
  font-size: .62rem;
  letter-spacing: var(--bi-ls-overline, 1px);
  text-transform: uppercase;
  color: var(--gold);
  margin-bottom: .75rem;
}
.ch-provenance-empty p {
  margin: 0;
  color: hsl(var(--fg-hsl) / .62);
  line-height: 1.7;
}

/* ── Original Form (schematic section) ── */
.ch-origform {
  display: grid;
  grid-template-columns: 5fr 7fr;
  gap: 3rem;
  align-items: start;
}
.ch-origform__text {}
.ch-origform__text p { color:hsl(var(--fg-hsl)/.7); line-height:1.75; margin-bottom:1.5rem; }
.ch-quick-specs {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: .75rem 2rem;
}
.ch-quick-spec { border-top: 1px solid hsl(var(--gold-hsl) / 0.15); padding-top: .65rem; }
.ch-quick-spec dt {
  font-family: var(--f-label);
  font-size: .5625rem;
  letter-spacing: var(--bi-ls-overline, 1px);
  text-transform: uppercase;
  font-weight: 500;
  color: var(--gold);
  margin-bottom: .2rem;
}
.ch-quick-spec dd { font-size: .875rem; color: var(--fg); }

.ch-svg-box {
  border: 1px solid hsl(var(--gold-hsl) / 0.2);
  background: var(--sur);
  padding: 2rem;
  aspect-ratio: 16/10;
  position: relative;
  display: flex;
  align-items: center;
}
.ch-svg-box svg { width: 100%; height: 100%; }
.ch-svg-note {
  position: absolute;
  top: .75rem;
  right: .85rem;
  font-family: var(--f-label);
  font-size: .5rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: hsl(var(--fg-hsl) / 0.35);
}

/* ── Archive image ── */
.ch-archive-img {
  border: 1px solid hsl(var(--gold-hsl) / 0.2);
  overflow: hidden;
}
.ch-archive-img img { width:100%; height:auto; display:block; }
.ch-archive-cap {
  margin-top: .85rem;
  display: flex;
  justify-content: space-between;
  font-family: var(--f-label);
  font-size: .5625rem;
  letter-spacing: var(--bi-ls-overline, 1px);
  text-transform: uppercase;
  font-weight: 500;
  color: hsl(var(--fg-hsl) / 0.4);
}

/* ── Timeline (vertical) ── */
.ch-timeline {
  position: relative;
  border-left: 1px solid hsl(var(--gold-hsl) / 0.3);
  margin-left: .875rem;
}
.ch-timeline__item {
  position: relative;
  padding-left: 2.75rem;
  padding-bottom: 3rem;
}
.ch-timeline__item:last-child { padding-bottom: 0; }
.ch-timeline__num {
  position: absolute;
  left: -14px;
  top: 0;
  width: 28px;
  height: 28px;
  border-radius: 0;
  background: var(--bg);
  border: 2px solid var(--gold);
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--f-label);
  font-size: .5625rem;
  font-weight: 500;
  letter-spacing: .03em;
  color: var(--gold);
  flex-shrink: 0;
}
.ch-timeline__inner {
  display: grid;
  grid-template-columns: 3fr 9fr;
  gap: 1.5rem;
}
.ch-timeline__when .ch-sec-eyebrow { margin-bottom: .3rem; }
.ch-timeline__year {
  font-family: var(--f-display);
  font-size: 1.35rem;
  font-weight: 400;
  color: hsl(var(--fg-hsl) / 0.75);
}
.ch-timeline__main {}
.ch-timeline__h3 {
  font-family: var(--f-display);
  font-size: 1.5rem;
  font-weight: 400;
  margin-bottom: .65rem;
}
.ch-timeline__person { font-size:.8rem; color:hsl(var(--fg-hsl)/.55); margin-bottom:.2rem; }
.ch-timeline__country { font-size:.75rem; color:hsl(var(--fg-hsl)/.38); }
.ch-timeline__desc { font-size:.875rem; color:hsl(var(--fg-hsl)/.65); line-height:1.7; max-width:52ch; }
.ch-timeline__meta { margin-top:.6rem; display:flex; flex-wrap:wrap; gap:.25rem .75rem; align-items:center; }
.ch-timeline__item--gap { opacity:.6; }
.ch-timeline__item--gap .ch-timeline__num { border-style:dashed; }

/* ── Specs grid ── */
.ch-specs-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1px;
  background: hsl(var(--gold-hsl) / 0.15);
  border: 1px solid hsl(var(--gold-hsl) / 0.2);
}
.ch-spec-row {
  background: var(--sur);
  padding: 1rem 1.5rem;
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 1rem;
}
.ch-spec-row dt {
  font-family: var(--f-label);
  font-size: .5625rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  font-weight: 500;
  color: hsl(var(--fg-hsl) / 0.45);
  white-space: nowrap;
}
.ch-spec-row dd { font-size: .875rem; color: var(--fg); text-align: right; }

/* ── Full-width quote ── */
.ch-quote-block {
  border-top: 1px solid hsl(var(--gold-hsl) / 0.2);
  border-bottom: 1px solid hsl(var(--gold-hsl) / 0.2);
  padding: 5rem 0;
  text-align: center;
}
.ch-quote-block p {
  font-family: var(--f-display);
  font-size: clamp(1.4rem, 3vw, 2.5rem);
  font-style: italic;
  line-height: 1.45;
  max-width: 52rem;
  margin: 0 auto;
  color: hsl(var(--fg-hsl) / 0.85);
}
.ch-quote-block footer {
  margin-top: 2.5rem;
  font-family: var(--f-label);
  font-size: .625rem;
  letter-spacing: var(--bi-ls-overline, 1px);
  text-transform: uppercase;
  font-weight: 500;
  color: hsl(var(--fg-hsl) / 0.4);
}

/* ── BCC strip (simplified) ── */
.ch-bcc {
  background: linear-gradient(90deg, var(--bg) 0%, var(--sur) 50%, var(--bg) 100%);
  border-top: 1px solid hsl(var(--gold-hsl) / 0.2);
  border-bottom: 1px solid hsl(var(--gold-hsl) / 0.2);
  margin-top: 5rem;
}
.ch-bcc__inner {
  max-width: var(--bi-shell-maxw);
  margin: 0 auto;
  padding: 2.5rem var(--bi-shell-gutter);
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 3rem;
}
.ch-bcc__text { font-size:.8125rem; color:hsl(var(--fg-hsl)/.6); line-height:1.7; font-style:italic; }
.ch-bcc__text--right { text-align:right; }
.ch-bcc__badge { display:flex; flex-direction:column; align-items:center; gap:.5rem; flex-shrink:0; }
.ch-bcc__label {
  font-family: var(--f-label);
  font-size: .5rem;
  letter-spacing: var(--bi-ls-overline, 1px);
  text-transform: uppercase;
  font-weight: 500;
  color: var(--gold);
  text-align: center;
}

/* ── Gallery section ── */
.bi-gallery {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  border: 1px solid hsl(var(--gold-hsl) / 0.2);
  gap: 1px;
  background: hsl(var(--gold-hsl) / 0.15);
}
.bi-gallery__item { display:block; aspect-ratio:4/3; overflow:hidden; background:var(--sur2); cursor:zoom-in; position:relative; }
.bi-gallery__item img { width:100%; height:100%; object-fit:cover; transition:transform .4s, filter .25s; filter:brightness(.84) sepia(.12); }
.bi-gallery__item:hover img { transform:scale(1.06); filter:brightness(1) sepia(0); }
.bi-gallery__item::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, hsl(var(--bg-hsl)/.75) 0%, hsl(var(--bg-hsl)/.2) 35%, transparent 60%);
  z-index: 1;
  pointer-events: none;
  transition: opacity .3s;
}
.bi-gallery__item:hover::before { opacity: .4; }

/* Lightbox */
.bi-lb { display:none; position:fixed; inset:0; background:rgba(5,5,5,.97); z-index:9999; align-items:center; justify-content:center; cursor:zoom-out; }
.bi-lb.is-open { display:flex; }
.bi-lb__img { max-width:88vw; max-height:88vh; object-fit:contain; box-shadow:0 20px 80px rgba(0,0,0,.9); }
.bi-lb__btn { position:fixed; top:50%; transform:translateY(-50%); background:transparent; border:1px solid hsl(var(--gold-hsl)/.3); color:var(--gold); font-size:1.25rem; width:2.5rem; height:2.5rem; display:flex; align-items:center; justify-content:center; border-radius: 0; cursor:pointer; z-index:10000; transition:background .2s; line-height:1; }
.bi-lb__btn--prev { left:1.5rem; }
.bi-lb__btn--next { right:1.5rem; }
.bi-lb__btn:hover { background:hsl(var(--gold-hsl)/.18); border-color:var(--gold); }
.bi-lb__close { position:fixed; top:1.1rem; right:1.5rem; background:none; border:none; color:var(--gold); font-size:1.75rem; cursor:pointer; z-index:10000; opacity:.6; transition:opacity .2s; line-height:1; }
.bi-lb__close:hover { opacity:1; }
.bi-lb__counter { position:fixed; bottom:1.25rem; left:50%; transform:translateX(-50%); font-size:.6rem; letter-spacing:.16em; color:hsl(var(--fg-hsl)/.5); }

/* ══════════════════════════════════════════════════════════════
   I) RESPONSIVE
   ══════════════════════════════════════════════════════════════ */
@media(max-width:1100px){
  /* (3120) The four gutter re-declarations that lived here are gone. The
     shell's gutter is a clamp now, so it narrows continuously instead of
     stepping at this breakpoint · and it cannot fall out of sync with a
     hand-maintained selector list the way this one had. */
  .ch-hero__grid { grid-template-columns:1fr; }
  .ch-origform { grid-template-columns:1fr; }
  .bi-bcc-box { grid-template-columns:1fr; }
  .bi-stakeholders { grid-template-columns:1fr; }
  .bi-eras__header { grid-template-columns:1fr; }
  .bi-quote-band__inner { grid-template-columns:auto 1fr; }
  .bi-quote-band__source { display:none; }
}
@media(max-width:800px){

  .site-header__language-trigger { min-width: 3.4rem; width: 3.4rem; padding: 0; }
  .site-header__language-trigger span { display: none; }
  .site-header__account span { display:none; }
  .site-footer__inner { grid-template-columns:1fr; }
  .ch-timeline__inner { grid-template-columns:1fr; }
  .ch-pathways__grid { grid-template-columns:1fr; }
  .ch-pathway-card { min-height:auto; gap:1rem; }
  .ch-specs-grid { grid-template-columns:1fr; }
  .bi-stats-strip { flex-wrap:wrap; }
  .bi-stat { min-width:50%; border-bottom:1px solid hsl(var(--gold-hsl)/.15); }
  .bi-era-row { grid-template-columns:1fr 2fr; }
  .bi-era-row__n,.bi-era-row__sub,.bi-era-row__desc { display:none; }
  .ch-sec-header--grid { grid-template-columns:1fr; }
  .bi-bcc-phases { grid-template-columns:1fr; }
  .bi-hero__body { grid-template-columns:1fr; }
  .bi-page-masthead__h1 { line-height:1; }
}

/* ══════════════════════════════════════════════════════════════
   J) REACT SLIDERS — EDITORIAL REDESIGN
   ══════════════════════════════════════════════════════════════ */

/* React root wrappers */
#bi-root       { display:contents; }
#bi-type-root  { display:contents; }
#bi-variant-root { display:contents; }

/* ── Slider container ── */
.bi-slider {
  position: relative;
  height: 88vh; /* taller — full editorial presence */
  min-height: 560px;
  overflow: hidden;
  background: var(--bg);
}

/* ── Individual slides ── */
.bi-slide {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center 35%;
  background-color: var(--sur);
  opacity: 0;
  z-index: 0;
  text-decoration: none;
  transform: scale(1.08) translate(1%, 0.4%);
  filter: brightness(.94);
  transition:
    opacity    1.1s cubic-bezier(.4,0,.2,1),
    transform  11s ease-out,
    filter     1.1s ease;
  will-change: opacity, transform, filter;
}
.bi-slide--active {
  opacity: 1;
  z-index: 1;
  transform: scale(1.0) translate(0%, 0%); /* Ken Burns: slow drift + dezoom */
  filter: brightness(1);
}
.bi-slide--prev {
  opacity: 0;
  z-index: 0;
  transform: scale(.97);
  filter: brightness(.86);
}

/* ── Overlay — subtle bottom fade only, image stays clear ── */
.bi-slider__overlay {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(to top,
      hsl(var(--bg-hsl) / .60)  0%,
      hsl(var(--bg-hsl) / .15) 10%,
      transparent               20%
    );
  z-index: 2;
  pointer-events: none;
}

/* ── Slide counter — top right ── */
.bi-slider__counter {
  position: absolute;
  top: 2.5rem;
  right: 3rem;
  z-index: 3;
  font-family: var(--f-label);
  font-size: .5rem;
  letter-spacing: var(--bi-ls-overline, 1px);
  color: hsl(var(--fg-hsl) / .35);
  display: flex;
  align-items: center;
  gap: .65rem;
  text-transform: uppercase;
  pointer-events: none;
}
.bi-slider__counter-cur {
  font-size: .65rem;
  color: var(--gold);
  letter-spacing: .12em;
}

/* ── Slide content — left 55%, right is cinematic void ── */
.bi-slider__content {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 3;
  max-width: var(--bi-shell-maxw);
  margin: 0 auto;
  padding: 0 var(--bi-shell-gutter) 6.5rem;
  pointer-events: none;
  /* No single animation here — children animate independently via stagger */
}

/* Inner wrapper — constrain text to left 48%, right reserved for nav */
.bi-slider__content-left {
  max-width: min(760px, 58%);
}
.bi-slider__content a { pointer-events: auto; }

/* ── Keyframe: staggered slide-up ── */
@keyframes sliderFadeUp {
  from { opacity:0; transform:translateY(22px); }
  to   { opacity:1; transform:translateY(0); }
}

/* ── Eyebrow — micro editorial with leading gold rule ── */
.bi-slider__eyebrow {
  font-family: var(--f-label);
  font-size: .9rem;
  letter-spacing: var(--bi-ls-overline, 1px);
  text-transform: uppercase;
  font-weight: 500;
  color: var(--gold);
  margin-bottom: 1.5rem;
  display: flex;
  align-items: center;
  gap: 1rem;
  animation: sliderFadeUp .6s .1s ease both;
}
/* Leading gold rule — replaces the old dot */
.bi-slider__eyebrow::before {
  content: '';
  display: block;
  width: 2rem;
  height: 1px;
  background: var(--gold);
  flex-shrink: 0;
}
/* Remove old dot element from affecting layout if still present */
.bi-slider__dot { display: none; }

/* ── Title — the hero element ── */
.bi-slider__title {
  font-family: var(--f-display);
  font-size: clamp(2rem, 4vw, 4.5rem);
  font-weight: 300; /* thin elegant */
  letter-spacing: .04em;
  line-height: .88; /* tight — cinematic compression */
  color: var(--fg);
  text-transform: uppercase;
  margin-bottom: 2.25rem;
  animation: sliderFadeUp .7s .25s ease both;
}
.bi-slider__title--long {
  max-width: min(920px, 74vw);
  font-size: clamp(1.6rem, 3vw, 3.25rem);
  line-height: 1.02;
  letter-spacing: .025em;
}

/* ── Meta row — badge ── */
.bi-slider__meta {
  display: flex;
  align-items: center;
  gap: 1.5rem;
  margin-bottom: 1.75rem;
  animation: sliderFadeUp .6s .45s ease both;
}
.bi-slider__badge {
  font-family: var(--f-label);
  font-size: .5625rem;
  font-weight: 500;
  letter-spacing: var(--bi-ls-overline, 1px);
  text-transform: uppercase;
  color: var(--gold);
  border: 1px solid hsl(var(--gold-hsl) / .3);
  padding: .2rem .65rem;
}

/* ── Explore link — below badge ── */
.bi-slider__explore {
  display: inline-flex;
  align-items: center;
  gap: 1rem;
  font-family: var(--f-label);
  font-size: .75rem;
  letter-spacing: var(--bi-ls-button, 1px);
  text-transform: uppercase;
  font-weight: 600;
  color: var(--fg);
  text-decoration: none;
  border: 1px solid hsl(var(--gold-hsl) / .4);
  padding: .65rem 1.4rem;
  transition: color .2s, border-color .2s, background .2s;
  animation: sliderFadeUp .5s .6s ease both;
}
.bi-slider__explore:hover {
  background: hsl(var(--gold-hsl) / .08);
  border-color: var(--gold);
}
.bi-slider__explore-arrow {
  display: inline-block;
  transition: transform .25s;
}
.bi-slider__explore:hover .bi-slider__explore-arrow {
  transform: translateX(5px);
}

/* ── Right-side type nav ── */
.bi-slider__nav {
  position: absolute;
  right: 0;
  top: 0;
  bottom: 0;
  z-index: 10;
  pointer-events: auto;
  display: flex;
  align-items: center;
  padding: 0 3rem 0 4rem;
  /* Dark gradient from right — ensures text always readable */
  background: linear-gradient(to left,
    hsl(var(--bg-hsl) / .88) 0%,
    hsl(var(--bg-hsl) / .72) 40%,
    hsl(var(--bg-hsl) / .30) 75%,
    transparent 100%
  );
}
.bi-slider__nav-inner {
  display: flex;
  flex-direction: column;
  gap: .1rem;
  overflow-y: auto;
  max-height: 70vh;
  scrollbar-width: none;
}
.bi-slider__nav-inner::-webkit-scrollbar { display: none; }

.bi-slider__nav-btn {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: .2rem;
  background: none;
  border: none;
  cursor: pointer;
  padding: .6rem 0;
  opacity: .55;
  transition: opacity .25s ease;
  text-align: right;
}
.bi-slider__nav-btn:hover { opacity: .85; }
.bi-slider__nav-btn--active { opacity: 1; }

.bi-slider__nav-line {
  display: block;
  width: 1.5rem;
  height: 1px;
  background: var(--gold);
  margin-bottom: .15rem;
  transform-origin: right;
  transform: scaleX(0);
  transition: transform .3s ease;
}
.bi-slider__nav-btn--active .bi-slider__nav-line { transform: scaleX(1); }

.bi-slider__nav-title {
  font-family: var(--f-display);
  font-size: clamp(.65rem, .8vw, .8rem);
  letter-spacing: .08em;
  text-transform: uppercase;
  font-weight: 400;
  color: var(--fg);
  line-height: 1.2;
  max-width: 17rem;
  white-space: normal;
  text-shadow: 0 1px 8px hsl(var(--bg-hsl) / .8);
}
.bi-slider__nav-title--long {
  max-width: 19rem;
  font-size: clamp(.58rem, .7vw, .72rem);
  line-height: 1.25;
  letter-spacing: .055em;
}
.bi-slider__nav-btn--active .bi-slider__nav-title { color: var(--gold); }

.bi-slider__nav-year {
  font-family: var(--f-label);
  font-size: .55rem;
  letter-spacing: var(--bi-ls-button, 1px);
  color: hsl(var(--fg-hsl) / .6);
  text-transform: uppercase;
  text-shadow: 0 1px 6px hsl(var(--bg-hsl) / .9);
}

/* Hide nav on small screens */
@media (max-width: 900px) {
  .bi-slider__nav { display: none; }
}

/* ── Arrow navigation — bottom-right, square, refined ── */
.bi-slider__arrow {
  position: absolute;
  top: auto;
  bottom: 2.75rem;
  transform: none; /* no vertical centering — they sit at the bottom */
  z-index: 4;
  background: hsl(var(--bg-hsl) / .45);
  border: 1px solid hsl(var(--gold-hsl) / .2);
  color: hsl(var(--fg-hsl) / .55);
  width: 2.5rem;
  height: 2.5rem;
  border-radius: 0; /* square = architectural, not generic */
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: background .2s, border-color .2s, color .2s;
  backdrop-filter: blur(8px);
}
.bi-slider__arrow:hover {
  background: hsl(var(--bg-hsl) / .85);
  border-color: var(--gold);
  color: var(--gold);
}
/* Arrows sit bottom-right, left arrow offset by one width + gap */
.bi-slider__arrow--left  {
  right: calc(2.5rem + .75rem + 2.5rem); /* right-arrow width + gap */
  left: auto;
}
.bi-slider__arrow--right {
  right: 2.5rem;
  left: auto;
}

/* ── Dot navigation — bottom-left, bar-style (Bugatti.com) ── */
.bi-slider__dots {
  position: absolute;
  bottom: 3rem;
  left: 3rem; /* anchored to content side */
  right: auto;
  z-index: 4;
  display: flex;
  align-items: center;
  gap: .5rem;
}
.bi-slider__dot-btn {
  width: 24px;
  height: 2px;
  border-radius: 0; /* bars, not circles */
  background: hsl(var(--fg-hsl) / .2);
  border: none;
  cursor: pointer;
  padding: 0;
  transition: background .3s ease, width .3s ease;
}
.bi-slider__dot-btn--active {
  width: 40px; /* active bar is wider */
  background: var(--gold);
  transform: none; /* no scale jank */
}

/* ── Progress bar — thin gold line at bottom ── */
.bi-slider__progress {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 1px; /* thinner — more editorial */
  background: hsl(var(--gold-hsl) / .08);
  z-index: 4;
}
.bi-slider__progress-bar {
  height: 100%;
  background: hsl(var(--gold-hsl) / .45);
  animation: sliderProgress 5s linear infinite;
  transform-origin: left;
}
@keyframes sliderProgress {
  from { transform: scaleX(0); }
  to   { transform: scaleX(1); }
}

/* ── Size modifiers ── */
.bi-slider--secondary { height: 60vh; min-height: 380px; }
.bi-slider--tertiary  { height: 50vh; min-height: 320px; }
.bi-slider--gallery   { height: 88vh; min-height: 500px; }

/* Gallery title — smaller than type titles, caption-sized */
.bi-slider__title--gallery {
  font-size: clamp(1.75rem, 4vw, 3.5rem);
  letter-spacing: .08em;
  margin-bottom: 1rem;
}

/* ── Responsive slider ── */
@media(max-width:800px){
  .bi-slider { height: 70vh; min-height:420px; }
  .bi-slider--secondary { height: 55vh; min-height:300px; }
  .bi-slider--tertiary  { height: 45vh; min-height:260px; }
  /* (3120) Side padding dropped; only the bottom offset was ever the point here. */
  .bi-slider__content { padding-bottom: 5.5rem; }
  .bi-slider__content-left { max-width: 90%; } /* nearly full width on mobile */
  .bi-slider__arrow { display:none; }
  .bi-slider__dots {
    left: 1.5rem;
    bottom: 2.5rem;
  }
  .bi-slider__title {
    font-size: clamp(3rem, 13vw, 6rem);
    line-height: .92;
  }
  .bi-slider__title--long {
    max-width: 100%;
    font-size: clamp(1.75rem, 7.5vw, 3.4rem);
    line-height: 1.06;
  }
  .bi-slider__counter {
    right: 1.5rem;
    top: 1.5rem;
  }
}

/* ══════════════════════════════════════════════════════════════
   K) BI-CONTENT — rich post content (specs, tables, lists)
   ══════════════════════════════════════════════════════════════ */

.bi-content { width: 100%; }
.bi-content h1 { display: none; } /* duplicate of masthead — always hidden */

.bi-content hr {
  border: none;
  border-top: 1px solid hsl(var(--gold-hsl) / .18);
  margin: 3rem 0;
}

/* Section header */
.bi-content h2 {
  font-family: var(--f-display);
  font-size: clamp(1.25rem, 2.5vw, 1.9rem);
  font-weight: 300;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--fg);
  margin: 3.5rem 0 1.5rem;
  padding-bottom: .6rem;
  border-bottom: 1px solid hsl(var(--gold-hsl) / .2);
}
.bi-content h2:first-child { margin-top: 0; }

/* Sub-header */
.bi-content h3 {
  font-family: var(--f-label);
  font-size: .5625rem;
  font-weight: 600;
  letter-spacing: var(--bi-ls-overline, 1px);
  text-transform: uppercase;
  color: var(--gold);
  margin: 2.5rem 0 .75rem;
}

/* ══════════════════════════════════════════════════════════════
   CHAT PAGE — sidebar shell + hero
   ══════════════════════════════════════════════════════════════ */
.bi-chat-shell {
  display: grid;
  grid-template-columns: 300px minmax(0, 1fr);
  align-items: start;
  /* Viewport minus the fixed header (3336 — was a hardcoded 80px twin of
     the old bar height; --bi-header-h is the measured rendered height). */
  min-height: calc(100vh - var(--bi-header-h, 50px));
}
/* 3202: the DOM order in page-chat.php/ChatPage.tsx is now main (hero + chat)
   first, sidebar second — so the one-column stack at <=900px shows the chat
   first. These explicit grid placements keep the desktop layout unchanged
   (sidebar visually left, main right) despite the flipped DOM order. */
.bi-chat-sidebar {
  grid-column: 1;
  grid-row: 1;
  position: sticky;
  top: var(--bi-header-h, 50px);
  height: calc(100vh - var(--bi-header-h, 50px));
  border-right: 1px solid hsl(var(--gold-hsl) / .14);
  background: hsl(var(--sur-hsl) / .3);
  overflow: hidden;
}
.bi-chat-sidebar__inner {
  display: flex;
  flex-direction: column;
  height: 100%;
  padding: 1.5rem 1.25rem;
  gap: 1.25rem;
}
.bi-chat-sidebar__new {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: .5rem;
  padding: .8rem 1rem;
  border: none;
  border-radius: 0;
  background: linear-gradient(135deg, var(--gold), hsl(38 55% 45%));
  color: var(--bg);
  font-family: var(--f-label);
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .06em;
  cursor: pointer;
  transition: opacity .2s, transform .2s;
}
.bi-chat-sidebar__new:hover { opacity: .9; transform: translateY(-1px); }
.bi-chat-sidebar__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-family: var(--f-label);
  font-size: .62rem;
  font-weight: 700;
  letter-spacing: var(--bi-ls-overline, 1px);
  text-transform: uppercase;
  color: hsl(var(--fg-hsl) / .45);
}
.bi-chat-sidebar__search-btn {
  background: none;
  border: none;
  color: hsl(var(--fg-hsl) / .45);
  cursor: pointer;
  padding: .2rem;
  transition: color .2s;
}
.bi-chat-sidebar__search-btn:hover { color: var(--gold); }
.bi-chat-sidebar__search-input {
  width: 100%;
  background: hsl(var(--sur2-hsl));
  border: 1px solid hsl(var(--gold-hsl) / .18);
  border-radius: 0;
  color: var(--fg);
  font-size: .78rem;
  padding: .5rem .7rem;
  margin-top: -.75rem;
}
/* 3124: `outline: none` removed; the 45%-gold border stays as the colour
   change and focus.css supplies the underline. */
.bi-chat-sidebar__search-input:focus { border-color: hsl(var(--gold-hsl) / .45); }
.bi-chat-sidebar__list {
  flex: 1;
  overflow-y: auto;
  display: flex;
  flex-direction: column;
  gap: 1rem;
  scrollbar-width: thin;
  scrollbar-color: hsl(var(--gold-hsl) / .2) transparent;
}
.bi-chat-sidebar__empty {
  font-size: .78rem;
  font-style: italic;
  color: hsl(var(--fg-hsl) / .35);
  line-height: 1.6;
  margin: 0;
}
.bi-chat-sidebar__group-label {
  font-family: var(--f-label);
  font-size: .58rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: hsl(var(--fg-hsl) / .35);
  margin-bottom: .5rem;
}
.bi-chat-sidebar__item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .5rem;
  width: 100%;
  padding: .65rem .6rem;
  background: none;
  border: none;
  border-left: 2px solid transparent;
  border-radius: 0;
  color: hsl(var(--fg-hsl) / .7);
  text-align: left;
  cursor: pointer;
  transition: background .2s, border-color .2s;
}
.bi-chat-sidebar__item:hover { background: hsl(var(--gold-hsl) / .06); }
.bi-chat-sidebar__item.is-active { background: hsl(var(--gold-hsl) / .08); border-left-color: var(--gold); color: var(--fg); }
.bi-chat-sidebar__item-title {
  font-size: .8rem;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.bi-chat-sidebar__item-time {
  flex-shrink: 0;
  font-family: var(--f-label);
  font-size: .6rem;
  color: hsl(var(--fg-hsl) / .35);
}
/* 3202: .bi-chat-sidebar__cta* rules removed — the "Explore the complete
   register" promo CTA no longer renders (ChatHistorySidebar.tsx). */

.bi-chat-main { grid-column: 2; grid-row: 1; padding: 1.25rem 2.5rem 1.5rem; max-width: 1100px; }
.bi-chat-main__crumb { margin-bottom: .85rem; }

.bi-chat-hero { position: relative; min-height: 116px; margin-bottom: 1.1rem; border-radius: 0; overflow: hidden; }
.bi-chat-hero__bg {
  position: absolute;
  inset: 0 0 0 auto;
  width: 55%;
  background-size: cover;
  background-position: 60% center;
  filter: var(--photo-grade);
  mask-image: linear-gradient(to left, black 40%, transparent 96%);
  -webkit-mask-image: linear-gradient(to left, black 40%, transparent 96%);
}
.bi-chat-hero::after {
  content: '';
  position: absolute; inset: 0;
  background: linear-gradient(180deg, transparent 60%, hsl(var(--bg-hsl) / .5));
  pointer-events: none;
}
.bi-chat-hero__inner { position: relative; z-index: 1; max-width: 34rem; padding: 1.1rem 0; }
.bi-chat-hero__inner .ch-hero__h1 { font-size: clamp(1.6rem, 3vw, 2.35rem); margin: 0 0 .4rem; }
.bi-chat-hero__inner p { font-size: .84rem; color: hsl(var(--fg-hsl) / .6); line-height: 1.55; margin: 0; }

@media (max-width: 900px) {
  /* 3202: one column — grid placement back to auto so DOM order rules: the
     chat (main) stacks first, the history sidebar below it. The sidebar's
     divider flips to border-top accordingly, and the history list loses its
     internal max-height scroll cap: the page is the only scroll container. */
  .bi-chat-shell { grid-template-columns: 1fr; }
  .bi-chat-sidebar { grid-column: auto; grid-row: auto; position: static; height: auto; border-right: 0; border-top: 1px solid hsl(var(--gold-hsl) / .14); }
  .bi-chat-main { grid-column: auto; grid-row: auto; padding: 1.5rem 1.25rem 2.5rem; }
  .bi-chat-hero__bg { display: none; }
}

/* ══════════════════════════════════════════════════════════════
   CHAT WINDOW
   ══════════════════════════════════════════════════════════════ */
.bi-chat {
  display: flex;
  flex-direction: column;
  gap: .9rem;
}
.bi-chat__messages {
  border: 1px solid hsl(var(--gold-hsl) / .18);
  border-radius: 0;
  background: hsl(var(--sur-hsl) / .4);
  padding: 1.15rem 1.5rem;
  display: flex;
  flex-direction: column;
  gap: .85rem;
}
/* 3202: the old `.bi-chat__messages:has(.bi-chat__msg)` height cap +
   overflow-y:auto is gone — a growing conversation used to scroll inside its
   own small box (flagged in the 2026-09-10 review). The list now grows
   naturally and the page itself is the only scroll container; ChatWindow.tsx
   scrolls the PAGE to the latest message on send/receive. */
.bi-chat__welcome-head { display: flex; align-items: center; gap: .7rem; margin-bottom: .5rem; }
.bi-chat__welcome-head strong { font-family: var(--f-display); font-size: 1rem; font-weight: 500; color: var(--fg); }
.bi-chat__welcome p { font-size: .85rem; line-height: 1.6; color: hsl(var(--fg-hsl) / .75); margin: 0; }
.bi-chat__welcome-time { margin-top: .6rem; font-family: var(--f-label); font-size: .65rem; color: hsl(var(--fg-hsl) / .35); }
.bi-chat__msg {
  display: flex;
  gap: .625rem;
  align-items: flex-start;
}
.bi-chat__msg--user { flex-direction: row-reverse; }
.bi-chat__avatar {
  width: 34px;
  height: 34px;
  border-radius: 50%;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: .58rem;
  font-weight: 700;
  font-family: var(--f-label);
  letter-spacing: .05em;
  background: hsl(var(--gold-hsl)/.14);
  color: var(--gold);
  border: 1px solid hsl(var(--gold-hsl)/.4);
}
.bi-chat__avatar--brand { width: 40px; height: 40px; font-size: .7rem; }
.bi-chat__msg--user .bi-chat__avatar {
  background: hsl(var(--sur2-hsl));
  color: hsl(var(--fg-hsl)/.5);
  border-color: hsl(var(--gold-hsl)/.15);
}
.bi-chat__bubble {
  max-width: 80%;
  padding: .75rem 1rem;
  font-size: .875rem;
  line-height: 1.65;
  border-radius: 0;
}
.bi-chat__msg--user .bi-chat__bubble {
  background: hsl(var(--sur2-hsl));
  color: hsl(var(--fg-hsl)/.7);
}
.bi-chat__msg--assistant .bi-chat__bubble {
  background: hsl(210 40% 8%);
  border: 1px solid hsl(210 60% 30% / .25);
  color: hsl(var(--fg-hsl)/.85);
}
.bi-chat__bubble p { margin: 0; }

/* Markdown-rendered assistant replies (headings, lists, bold from the agent) */
.bi-chat__md > :first-child { margin-top: 0; }
.bi-chat__md > :last-child  { margin-bottom: 0; }
.bi-chat__md p { margin: 0 0 .6rem; }
.bi-chat__md h1, .bi-chat__md h2, .bi-chat__md h3, .bi-chat__md h4, .bi-chat__md h5 {
  margin: 1rem 0 .4rem;
  font-size: .75rem;
  font-weight: 600;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--gold);
}
.bi-chat__md ul, .bi-chat__md ol { margin: 0 0 .6rem; padding-left: 1.2rem; }
/* Global reset (ol,ul { list-style: none }) strips markers — restore them here */
.bi-chat__md ul { list-style: disc; }
.bi-chat__md ol { list-style: decimal; }
.bi-chat__md li::marker { color: var(--gold); }
.bi-chat__md li { margin: .18rem 0; }
.bi-chat__md li > ul, .bi-chat__md li > ol { margin: .18rem 0 0; }
.bi-chat__md strong { color: hsl(var(--fg-hsl)); font-weight: 600; }
.bi-chat__md a { color: var(--gold); text-decoration: underline; }
.bi-chat__md code {
  font-size: .85em;
  padding: .08em .35em;
  border-radius: 0;
  background: hsl(var(--sur2-hsl));
}
.bi-chat__md blockquote {
  margin: 0 0 .6rem;
  padding: .1rem 0 .1rem .75rem;
  border-left: 2px solid hsl(var(--gold-hsl)/.4);
  color: hsl(var(--fg-hsl)/.7);
}
.bi-chat__md hr { border: 0; border-top: 1px solid hsl(var(--gold-hsl)/.2); margin: .75rem 0; }
.bi-chat__md table { border-collapse: collapse; margin: 0 0 .6rem; max-width: 100%; }
.bi-chat__md th, .bi-chat__md td {
  border: 1px solid hsl(var(--gold-hsl)/.2);
  padding: .3rem .55rem;
  text-align: left;
}
.bi-chat__md th { color: var(--gold); font-size: .8em; letter-spacing: .05em; }

.bi-chat__source {
  margin-top: .5rem;
  font-size: .625rem;
  letter-spacing: .08em;
  color: var(--gold);
}
.bi-chat__bubble--loading {
  display: flex;
  gap: .3rem;
  align-items: center;
  padding: .875rem 1rem;
  min-width: 48px;
}
.bi-chat__bubble--loading span {
  width: 6px; height: 6px;
  border-radius: 0;
  background: var(--gold);
  animation: bi-dot 1.2s infinite ease-in-out;
}
.bi-chat__bubble--loading span:nth-child(2) { animation-delay: .2s; }
.bi-chat__bubble--loading span:nth-child(3) { animation-delay: .4s; }
@keyframes bi-dot {
  0%, 80%, 100% { transform: scale(.6); opacity: .4; }
  40%            { transform: scale(1);  opacity: 1;   }
}
.bi-chat__suggested { margin-top: .25rem; padding-top: .85rem; border-top: 1px solid hsl(var(--gold-hsl) / .12); text-align: center; }
.bi-chat__suggested-label {
  font-family: var(--f-label);
  font-size: .6rem;
  font-weight: 700;
  letter-spacing: var(--bi-ls-overline, 1px);
  text-transform: uppercase;
  color: var(--gold);
  margin-bottom: .65rem;
}
.bi-chat__suggested-row { display: flex; flex-wrap: wrap; justify-content: center; gap: .55rem; }
.bi-chat__suggested-pill {
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  padding: .45rem .9rem;
  border: 1px solid hsl(var(--gold-hsl) / .22);
  border-radius: 0;
  background: none;
  font-family: var(--f-body, inherit);
  font-size: .76rem;
  color: hsl(var(--fg-hsl) / .8);
  cursor: pointer;
  transition: border-color .2s, background .2s, color .2s, transform .2s;
}
.bi-chat__suggested-pill svg { color: var(--gold); }
.bi-chat__suggested-pill:hover { border-color: var(--gold); background: hsl(var(--gold-hsl) / .08); color: var(--gold); transform: translateY(-1px); }
.bi-chat__suggested-pill:disabled { opacity: .5; cursor: default; }

.bi-chat__input-area {
  border: 1px solid hsl(var(--gold-hsl) / .18);
  border-radius: 0;
  background: hsl(var(--sur-hsl) / .4);
  padding: .7rem 1.1rem;
}
.bi-chat__input-row { display: flex; gap: .75rem; align-items: flex-end; }
.bi-chat__input {
  flex: 1;
  resize: none;
  background: none;
  border: none;
  color: var(--fg);
  font-family: inherit;
  font-size: .9rem;
  padding: .5rem 0;
  line-height: 1.5;
}
/* 3124: this rule was `.bi-chat__input:focus { outline: none; }` and nothing
   else — the whole declaration was the suppression. The field is borderless
   and transparent inside the composer, so a keyboard user landing in the one
   place on the page where they are meant to type had no way to tell. Rule
   deleted; focus.css draws the gold line under the composer input. */
.bi-chat__input::placeholder { color: hsl(var(--fg-hsl) / .35); }
.bi-chat__send {
  flex-shrink: 0;
  width: 42px;
  height: 42px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, var(--gold), hsl(38 55% 45%));
  color: var(--bg);
  border: none;
  border-radius: 0;
  cursor: pointer;
  transition: opacity .15s;
}
.bi-chat__send:disabled { opacity: .35; cursor: default; }
.bi-chat__send:not(:disabled):hover { opacity: .85; }
/* 3061: voice input. The mic sits left of Send at the same 42px footprint but
   outlined rather than filled, so Send stays the one primary action. While
   recording it inverts to solid gold with a soft pulse; while the recording is
   being transcribed the icon spins (reuses bi-spin). A one-line status under
   the row tells the visitor what is happening and, once a dictated question
   lands, which language was heard - that is the visitor's cue to redo the
   recording when Whisper mis-detects (the Italian-heard-as-Russian case). */
.bi-chat__mic {
  flex-shrink: 0;
  width: 42px;
  height: 42px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: none;
  color: var(--gold);
  border: 1px solid hsl(var(--gold-hsl) / .45);
  border-radius: 0;
  cursor: pointer;
  transition: border-color .15s, background .15s, color .15s, opacity .15s;
}
.bi-chat__mic:not(:disabled):hover { border-color: var(--gold); background: hsl(var(--gold-hsl) / .08); }
.bi-chat__mic:disabled { opacity: .35; cursor: default; }
.bi-chat__mic--recording,
.bi-chat__mic--recording:not(:disabled):hover {
  background: var(--gold);
  color: var(--bg);
  border-color: var(--gold);
  animation: bi-mic-pulse 1.4s ease-in-out infinite;
}
.bi-chat__mic--busy svg { animation: bi-spin .9s linear infinite; }
@keyframes bi-mic-pulse {
  0%, 100% { box-shadow: 0 0 0 0 hsl(var(--gold-hsl) / .45); }
  50%      { box-shadow: 0 0 0 6px hsl(var(--gold-hsl) / 0); }
}
.bi-chat__voice-status {
  margin-top: .45rem;
  font-family: var(--f-label);
  font-size: .66rem;
  letter-spacing: .04em;
  color: hsl(var(--fg-hsl) / .55);
}
.bi-chat__voice-status--error { color: #e07070; }
@media (prefers-reduced-motion: reduce) {
  .bi-chat__mic--recording { animation: none; }
  .bi-chat__mic--busy svg { animation: none; }
}
.bi-chat__powered {
  display: flex;
  align-items: center;
  gap: .45rem;
  margin-top: .5rem;
  font-family: var(--f-label);
  font-size: .64rem;
  letter-spacing: .04em;
  color: hsl(var(--fg-hsl) / .4);
}
.bi-chat__powered svg { color: var(--gold); }

/* ══════════════════════════════════════════════════════════════
   SEARCH PANEL
   ══════════════════════════════════════════════════════════════ */
.bi-search { max-width: 760px; }

/* Search bar */
.bi-search__bar {
  position: relative;
  margin-bottom: 3rem;
}
.bi-search__input {
  width: 100%;
  background: transparent;
  border: none;
  /* (3216) The search box's underline is one of the divider hairlines
     Martien asked to match the hero's thickness — token width, colour
     unchanged. (The filter <select>s below stay 1px: form-field borders,
     not part of the decorative divider family.) */
  border-bottom: var(--bi-hairline-w, 2px) solid hsl(var(--gold-hsl)/.25);
  color: var(--fg);
  font-family: var(--f-display);
  font-size: clamp(1.75rem, 4vw, 2.75rem);
  font-weight: 300;
  letter-spacing: .02em;
  padding: .5rem 3rem .5rem 0;
  transition: border-color .25s;
  caret-color: var(--gold);
}
.bi-search__input:focus {
  /* 3124: `outline: none` removed. This field is the one place the site
     already had the idiom right — .bi-search__bar::after grows a gold
     hairline to full width on :focus-within (below) — so it keeps its
     animated line and focus.css explicitly suppresses the static one
     rather than stacking a second underline 1px beneath it. */
  border-bottom-color: var(--gold);
}
.bi-search__input::placeholder {
  color: hsl(var(--fg-hsl)/.18);
}
/* Animated gold underline on focus — (3216) same height as the input's
   own hairline above, so the growing line covers it exactly. */
.bi-search__bar::after {
  content: '';
  position: absolute;
  bottom: 0; left: 0;
  height: var(--bi-hairline-w, 2px);
  width: 0;
  background: var(--gold);
  transition: width .35s cubic-bezier(.4,0,.2,1);
}
.bi-search__bar:focus-within::after { width: 100%; }

/* Filter bar: record-type toggles + heritage-category + completeness-grade
   filters, all combinable (task 869e596cn, extended by 869er3db4). */
.bi-search__filters {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  gap: 1.5rem;
  row-gap: 1rem;
  margin: 1rem 0 2rem;
}
.bi-search__filter-group {
  display: flex;
  align-items: center;
  gap: .75rem;
  flex-wrap: wrap;
}
.bi-search__filter-label {
  font-family: var(--f-label);
  font-size: .625rem;
  letter-spacing: var(--bi-ls-overline, 1px);
  text-transform: uppercase;
  color: hsl(var(--fg-hsl)/.35);
}
.bi-search__type-toggles { display: flex; flex-wrap: wrap; gap: .1rem .9rem; }
.bi-search__type-toggle {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  font-family: var(--f-label);
  font-size: .72rem;
  letter-spacing: .02em;
  color: hsl(var(--fg-hsl)/.65);
  cursor: pointer;
  user-select: none;
}
.bi-search__type-toggle input { accent-color: var(--gold); cursor: pointer; }
.bi-search__grade-filter,
.bi-search__category-filter,
.bi-search__type-filter {
  background: transparent;
  border: none;
  border-bottom: 1px solid hsl(var(--gold-hsl)/.25);
  color: var(--fg);
  font-family: var(--f-label);
  font-size: .75rem;
  letter-spacing: .03em;
  padding: .35rem 1.25rem .35rem 0;
  cursor: pointer;
  transition: border-color .2s;
}
/* 3124: `outline: none` removed from all three. These are <select>s, so
   they take the field treatment; the gold bottom border stays. */
.bi-search__grade-filter:focus,
.bi-search__category-filter:focus,
.bi-search__type-filter:focus { border-bottom-color: var(--gold); }

/* Spinner */
.bi-search__spinner {
  position: absolute;
  right: .5rem;
  bottom: .75rem;
  width: 18px; height: 18px;
  border: 1.5px solid hsl(var(--gold-hsl)/.15);
  border-top-color: var(--gold);
  border-radius: 50%;
  animation: bi-spin .7s linear infinite;
}
@keyframes bi-spin { to { transform: rotate(360deg); } }

/* Empty state */
.bi-search__empty {
  color: hsl(var(--fg-hsl)/.3);
  font-family: var(--f-display);
  font-size: 1.125rem;
  font-weight: 300;
  font-style: italic;
  padding: 2rem 0;
}

/* Results */
.bi-search__group { margin-bottom: 2.5rem; }
.bi-search__group-label {
  font-family: var(--f-label);
  font-size: .5rem;
  letter-spacing: var(--bi-ls-overline, 1px);
  text-transform: uppercase;
  color: var(--gold);
  margin-bottom: 0;
  padding-bottom: .6rem;
  border-bottom: 1px solid hsl(var(--gold-hsl)/.2);
}
.bi-search__list { list-style: none; margin: 0; padding: 0; }
.bi-search__item {}
.bi-search__link {
  display: grid;
  grid-template-columns: 1fr auto auto;
  align-items: center;
  gap: 1.5rem;
  padding: 1rem 0;
  color: var(--fg);
  text-decoration: none;
  border-bottom: 1px solid hsl(var(--fg-hsl)/.05);
  transition: background .15s;
}
.bi-search__link:hover {
  padding-left: .75rem;
  padding-right: .75rem;
  margin: 0 -.75rem;
  background: hsl(var(--gold-hsl)/.04);
  border-bottom-color: hsl(var(--gold-hsl)/.12);
}
.bi-search__link:hover .bi-search__item-title { color: var(--gold); }
.bi-search__item-title {
  font-family: var(--f-display);
  font-size: 1.125rem;
  font-weight: 300;
  letter-spacing: .03em;
  transition: color .15s;
}
.bi-search__item-meta {
  font-family: var(--f-label);
  font-size: .625rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: hsl(var(--fg-hsl)/.35);
}
.bi-search__item-badge {
  font-family: var(--f-label);
  font-size: .5rem;
  letter-spacing: var(--bi-ls-overline, 1px);
  text-transform: uppercase;
  color: var(--gold);
  border: 1px solid hsl(var(--gold-hsl)/.25);
  padding: .2rem .6rem;
  white-space: nowrap;
}
.bi-search__item-badges { display: flex; align-items: center; gap: .5rem; }
/* Completeness grade badge (task 869e596cn) — same A-F palette as the app's
   ChassisListPage.jsx COMPLETENESS_GRADE_COLORS, so a chassis reads the same colour
   in both places. Only rendered when a synced grade exists — never a placeholder. */
.bi-search__grade-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 1.4rem;
  height: 1.4rem;
  padding: 0 .35rem;
  border-radius: 0;
  font-family: var(--f-label);
  font-size: .65rem;
  font-weight: 700;
  letter-spacing: .02em;
  line-height: 1;
}
.bi-search__grade-badge--A { background: #dcfce7; color: #166534; }
.bi-search__grade-badge--B { background: #ecfccb; color: #3f6212; }
.bi-search__grade-badge--C { background: #fef3c7; color: #92400e; }
.bi-search__grade-badge--D { background: #ffedd5; color: #9a3412; }
.bi-search__grade-badge--E { background: #fee2e2; color: #991b1b; }
.bi-search__grade-badge--F { background: #fecaca; color: #7f1d1d; }
/* Chassis disambiguation list (869e3e9j5) — optional thumbnail column ahead of
   the title, reusing the .bi-search__ list markup/classes above. */
.bi-search__link--with-thumb { grid-template-columns: auto 1fr auto; }
.bi-search__item-thumb {
  width: 3rem;
  height: 3rem;
  border-radius: 0;
  background-size: cover;
  background-position: center;
  background-color: hsl(var(--fg-hsl)/.06);
}

/* ══════════════════════════════════════════════════════════════
   SEARCH PAGE — hero, premium panel, stats, discovery sections
   Hero: reuses the shared .bdb-cat-hero split-hero component (3038) — its
   own CSS lives in bugatti-dashboard.css / brand-home.css. The search panel
   below (.bi-search-hero__panel, still holding the real #bi-search-root
   mount + advanced-filter toggle) now renders as its own section directly
   under the hero rather than inside it.
   ══════════════════════════════════════════════════════════════ */
.bi-search-hero__panel {
  position: relative;
  max-width: 900px;
  margin: 0 0 3rem;
  padding: 1.4rem 1.75rem;
  border-radius: 0;
  border: 1px solid hsl(var(--gold-hsl) / .2);
  background: linear-gradient(155deg, hsl(var(--sur-hsl) / .8), hsl(var(--bg-hsl) / .9));
  box-shadow: 0 24px 60px hsl(220 45% 2% / .35);
}
.bi-search-hero__panel .bi-search { max-width: none; }
.bi-search-hero__panel .bi-search__bar { margin-bottom: 0; }
.bi-search-hero__panel .bi-search__input { font-size: clamp(1.05rem, 2vw, 1.3rem); padding: .3rem 11rem .3rem 2rem; }
.bi-search-hero__panel .bi-search__bar::before {
  content: '';
  position: absolute;
  left: 0; top: 50%;
  transform: translateY(-50%);
  width: 16px; height: 16px;
  opacity: .5;
  background: currentColor;
  -webkit-mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6'><circle cx='10.5' cy='10.5' r='7'/><line x1='16' y1='16' x2='21' y2='21'/></svg>") center / contain no-repeat;
  mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6'><circle cx='10.5' cy='10.5' r='7'/><line x1='16' y1='16' x2='21' y2='21'/></svg>") center / contain no-repeat;
  pointer-events: none;
}
.bi-search-advanced {
  position: absolute;
  right: 1.75rem;
  top: 50%;
  transform: translateY(-50%);
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  font-family: var(--f-label);
  font-size: .62rem;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--gold);
  white-space: nowrap;
  /* Real <button> now (task 1617, was a decorative span) — reset UA button chrome
     so it stays visually identical to the span it replaced. */
  background: none;
  border: none;
  margin: 0;
  padding: 0;
  cursor: pointer;
}
.bi-search-advanced:focus-visible {
  outline: 1px solid var(--gold);
  outline-offset: 4px;
}

/* Advanced search Type-filter panel (task 1617) — hidden until the
   .bi-search-advanced toggle above is clicked; reuses the existing filter-bar
   select styling (.bi-search__grade-filter/.bi-search__category-filter) for the
   dropdown itself. */
.bi-search__advanced-panel { margin: 1rem 0 0; }

.bi-search-page { padding-top: 3.5rem; padding-bottom: 2rem; }
.bi-search-page > section { margin-bottom: 4rem; }

.bi-search-eras__grid { display: grid; gap: 1.25rem; }
.bi-search-eras__grid { grid-template-columns: repeat(5, 1fr); }
.bi-search-era-card {
  display: flex;
  flex-direction: column;
  border-radius: 0;
  overflow: hidden;
  text-decoration: none;
  border: 1px solid hsl(var(--gold-hsl) / .14);
  transition: transform .3s ease, box-shadow .3s ease, border-color .3s ease;
}
.bi-search-era-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 20px 44px hsl(220 45% 2% / .4);
  border-color: var(--gold);
}
.bi-search-era-card__img {
  position: relative;
  height: 9.5rem;
  overflow: hidden;
  background-size: cover; background-position: center;
  filter: var(--photo-grade);
  transform: scale(1.03);
  transition: transform .5s ease;
}
.bi-search-era-card:hover .bi-search-era-card__img { transform: scale(1.1); }
.bi-search-era-card__body { padding: 1rem; }
.bi-search-era-card__name { font-family: var(--f-display); font-size: 1.05rem; color: var(--fg); line-height: 1.2; }
.bi-search-era-card__count { margin-top: .3rem; font-family: var(--f-label); font-size: .58rem; letter-spacing: .1em; text-transform: uppercase; color: var(--gold); }

@media (max-width: 1100px) {
  .bi-search-eras__grid { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 700px) {
  .bi-search-hero__panel { padding: 1.5rem 1.25rem 1rem; }
  .bi-search-eras__grid { grid-template-columns: repeat(2, 1fr); }
  /* 5 cards in a 2-col grid always leaves a lone card in the final row —
     span it full-width instead of a half-empty trailing row (869er3db4). Only
     matches when the total is odd (:last-child is also :nth-child(odd)), so
     it's a no-op if the era count ever becomes even. */
  .bi-search-eras__grid > .bi-search-era-card:last-child:nth-child(odd) { grid-column: 1 / -1; }
}

/* ══════════════════════════════════════════════════════════════
   ABOUT PAGE
   Hero: reuses the shared .bdb-cat-hero split-hero component (869etqynt) —
   its own CSS lives in bugatti-dashboard.css / brand-home.css alongside the
   Category/Type pages; no bespoke About-hero rules here any more.
   ══════════════════════════════════════════════════════════════ */
.bi-about-page { padding-block: 2.5rem 4rem; }

.bi-about-history { margin-bottom: 1rem; }
.bi-about-history__body { display: flex; flex-direction: column; gap: 1.1rem; max-width: 68ch; }
.bi-about-history__body p { margin: 0; font-size: .95rem; line-height: 1.8; color: hsl(var(--fg-hsl) / .7); }
.bi-about-history__explore { text-align: center; margin-top: 1.5rem; }

.bi-about-cta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 1.25rem;
  padding: 1.5rem 1.75rem;
  border: 1px solid hsl(var(--gold-hsl) / .18);
  border-left: 3px solid var(--gold);
  border-radius: 0;
  background: hsl(var(--sur-hsl) / .3);
}
.bi-about-cta p { margin: 0; font-size: 1rem; color: var(--fg); }
/* (3119) .bi-about-cta__btn had its own box (.8rem 1.4rem, .72rem, .08em
   tracking) and .bi-about-cta__btn--primary its own gold: a 135deg
   gradient into hsl(38 55% 45%), which is a second gold the palette never
   declared. Both are gone; the element carries .bi-cta and the wrapper
   .bi-cta-group, so buttons.css sizes and fills it. Visible change: this
   section has exactly one button, so it is now solo (outline, white
   letters) rather than solid gold — which is the rule Martien stated. */

@media (max-width: 900px) {
  .bi-about-cta { flex-direction: column; align-items: flex-start; }
}

/* (3204 · meeting 10-09) On a phone the About page ran on two margins,
   neither of them the site's: the .bi-about-page shorthand above zeroes
   the inline padding .ch-page carries, so the History/Century copy sat
   flush against the screen edge, and the CTA card's own 1.75rem side
   padding (plus its 3px gold border) put its text and button on a third
   line, 31px in — while the hero and nav above sit on the shared
   --bi-shell-gutter (flat 22px below 640px, per 3191/3193).

   Two moves, phone-only so desktop stays pixel-identical (the spec for
   this task parks desktop): the shell gets its gutter back, and the CTA
   card keeps its edge-to-edge footprint (it was already full-bleed when
   the shell had no padding) by pulling the gutter back out with negative
   margins, while its inline padding becomes the gutter minus the border
   widths (3px gold left, 1px right) so the content box lands on exactly
   the same 22px line as the History paragraphs. Only the excess inner
   offset moves; the bordered/background card treatment is untouched. */
@media (max-width: 640px) {
  .ch-page.bi-about-page { padding-inline: var(--bi-shell-gutter); }
  .bi-about-cta {
    margin-inline: calc(-1 * var(--bi-shell-gutter));
    padding-inline: calc(var(--bi-shell-gutter) - 3px) calc(var(--bi-shell-gutter) - 1px);
  }
}

/* ══════════════════════════════════════════════════════════════
   PROPOSE FORM
   ══════════════════════════════════════════════════════════════ */
.bi-propose { max-width: 600px; }
.bi-propose__field { margin-bottom: 1.5rem; }
.bi-propose__label {
  display: block;
  font-family: var(--f-label);
  font-size: .5rem;
  letter-spacing: var(--bi-ls-overline, 1px);
  text-transform: uppercase;
  color: hsl(var(--fg-hsl)/.5);
  margin-bottom: .4rem;
}
.bi-propose__label span { color: var(--gold); }
.bi-propose__input,
.bi-propose__select,
.bi-propose__textarea {
  width: 100%;
  background: var(--sur);
  border: 1px solid hsl(var(--gold-hsl)/.2);
  color: var(--fg);
  font-family: var(--f-label);
  font-size: .875rem;
  padding: .625rem .875rem;
}
.bi-propose__textarea { resize: vertical; min-height: 100px; }
/* 3124: `outline: none` removed; the gold border stays and focus.css adds
   the underline. */
.bi-propose__input:focus,
.bi-propose__select:focus,
.bi-propose__textarea:focus { border-color: var(--gold); }
.bi-propose__select option { background: var(--bg); }
/* (3119) The submit's own box (.875rem 2.5rem, .625rem, borderless solid
   gold) is gone; it carries .bi-cta now. It is the only button in the
   form, so it takes the solo treatment — outline that fills gold on
   hover — rather than staying solid gold. Disabled state is in
   buttons.css; :disabled matches the same elements [disabled] does. */
.bi-propose__success {
  background: hsl(140 40% 8%);
  border: 1px solid hsl(140 50% 25% / .4);
  color: hsl(140 60% 70%);
  padding: 1.25rem 1.5rem;
  font-size: .9rem;
}
.bi-propose__error {
  color: hsl(0 60% 65%);
  font-size: .8rem;
  margin-top: .5rem;
}

/* ══════════════════════════════════════════════════════════════
   FORENSIC FINDINGS
   ══════════════════════════════════════════════════════════════ */
.bi-forensics {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(340px, 1fr));
  gap: 1.5rem;
}
.bi-forensic-card {
  background: var(--sur);
  border: 1px solid hsl(var(--gold-hsl)/.15);
  border-top: 2px solid hsl(var(--gold-hsl)/.4);
  padding: 1.25rem 1.5rem;
}
.bi-forensic-card__head {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 1rem;
  margin-bottom: .5rem;
}

/* ══════════════════════════════════════════════════════════════
   HOMEPAGE NEW SECTIONS
   ══════════════════════════════════════════════════════════════ */
.bi-fp-section { padding: 5rem 0; }

/* ── Register search box under the hero (task 3053, reshaped by 3170) ──
   Eyebrow+tagline on the left, the search box on the right, matching the
   attached mockup's proportions. Not the SearchPanel island any more: this is
   a plain GET form that hands the visitor to /search-register/, so the section
   is back to the mockup's flat bar height instead of growing to fit a filter
   row that belonged on the results page. */
/* (3216) Section divider in the hero's own line language — same family as
   the timeline's bottom edge directly above it, so both colour (the old
   gold-alpha was a look-alike, not the family colour) and width move to
   the tokens: 2px solid --line. */
.bi-home-search { padding: 3rem 0 2.5rem; border-bottom: var(--bi-hairline-w, 2px) solid var(--line); }
.bi-home-search__inner {
  display: flex;
  align-items: flex-start;
  gap: 3rem;
  flex-wrap: wrap;
}
.bi-home-search__intro { flex: 0 0 auto; max-width: 320px; }
.bi-home-search__tagline { color: hsl(var(--fg-hsl)/.6); margin: 0; }
.bi-home-search__panel { flex: 1 1 420px; min-width: 0; }

/* Field and buttons on one line, the field taking the slack. The two buttons
   are .bi-cta in a .bi-cta-group, so they inherit their height and their
   primary/secondary roles from buttons.css (3119) rather than restating them.
   flex-wrap lets the group drop under the field before the 640px breakpoint
   where buttons.css stacks the group itself — narrow enough for the pair to
   crowd the input, still wide enough to keep them side by side. */
.bi-home-search__form {
  display: flex;
  align-items: center;
  gap: 1.5rem;
  flex-wrap: wrap;
}
/* The shared .bi-search__bar carries a 3rem bottom margin for the results list
   that follows it on the search page. Nothing follows it here. */
.bi-home-search__form .bi-search__bar {
  flex: 1 1 320px;
  min-width: 0;
  margin-bottom: 0;
}
/* One step down from the search page's own display size: there the field is
   the page, here it shares a row with two buttons. The 3rem right padding is
   for that page's clear-button, which this box has no room for and no need of. */
.bi-home-search__form .bi-search__input {
  font-size: clamp(1.25rem, 2.4vw, 1.9rem);
  padding-right: 0;
}
.bi-home-search__actions { flex: 0 0 auto; }
@media (max-width: 760px) {
  .bi-home-search__inner { gap: 1.5rem; }
  .bi-home-search__form { gap: 1.25rem; }
}

/* ── Certification introduction under the search bar (task 3053) ──
   Text left / shield-over-photo visual right — same split-hero proportions
   as .bdb-cat-hero (page-bcc.php etc., 3038) but its own scoped classes
   since this sits inline in the page flow, not as a full-bleed hero band.
   The shield overlaps the photo's left edge (matches the attached mockup),
   same "seal in front of a photo" motif page-bcc.php's own hero already
   uses for the same asset, just full-size and side-by-side here instead of
   a small corner accent. */
.bi-home-cert { padding: 4rem 0; }
.bi-home-cert__inner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 3rem;
  align-items: center;
}
.bi-home-cert__desc {
  color: hsl(var(--fg-hsl)/.66);
  line-height: 1.7;
  max-width: 46ch;
  margin: 1.25rem 0 1.75rem;
}
.bi-home-cert__visual { position: relative; }
.bi-home-cert__photo {
  aspect-ratio: 4/3;
  background-size: cover;
  background-position: center;
  filter: var(--photo-grade);
}
.bi-home-cert__seal {
  position: absolute;
  left: -8%;
  top: 50%;
  transform: translateY(-50%);
  width: clamp(120px, 20%, 200px);
  filter: drop-shadow(0 12px 30px hsl(220 45% 2% / .5));
}
@media (max-width: 900px) {
  .bi-home-cert__inner { grid-template-columns: 1fr; }
  .bi-home-cert__visual { order: -1; }
  .bi-home-cert__seal { left: -4%; width: clamp(100px, 28%, 160px); }
}

/* ── Three R's ── */
.bi-three-rs {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0;
  border: 1px solid hsl(var(--gold-hsl)/.12);
}
@media(max-width:760px){ .bi-three-rs { grid-template-columns: 1fr; } }

.bi-three-r {
  padding: 2.5rem 2rem 2.5rem;
  border-right: 1px solid hsl(var(--gold-hsl)/.12);
  position: relative;
  overflow: hidden;
}
.bi-three-r:last-child { border-right: none; }

/* Subtle ghost letter behind each column */
.bi-three-r::before {
  content: attr(data-letter);
  position: absolute;
  bottom: -1rem;
  right: 1rem;
  font-family: var(--f-display);
  font-size: 9rem;
  font-weight: 700;
  font-style: italic;
  color: hsl(var(--gold-hsl)/.04);
  line-height: 1;
  pointer-events: none;
  user-select: none;
}

.bi-three-r__label {
  font-family: var(--f-display);
  font-size: 2.25rem;
  font-weight: 300;
  font-style: italic;
  letter-spacing: .04em;
  color: var(--gold);
  margin-bottom: 1.5rem;
  padding-bottom: 1rem;
  border-bottom: 1px solid hsl(var(--gold-hsl)/.18);
  line-height: 1;
}

.bi-three-r__list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 0;
}
.bi-three-r__list li {
  font-family: var(--f-label);
  font-size: .8125rem;
  color: hsl(var(--fg-hsl)/.6);
  padding: .625rem 0 .625rem 1.25rem;
  border-bottom: 1px solid hsl(var(--fg-hsl)/.05);
  position: relative;
  line-height: 1.5;
  transition: color .15s, padding-left .15s;
}
.bi-three-r__list li:last-child { border-bottom: none; }
.bi-three-r__list li::before {
  content: '';
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 4px;
  height: 4px;
  background: hsl(var(--gold-hsl)/.4);
  border-radius: 0;
}
.bi-three-r:hover .bi-three-r__list li { color: hsl(var(--fg-hsl)/.75); }

/* ── BCC Flow ── */
.bi-bcc-flow {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1px;
  background: hsl(var(--gold-hsl)/.08);
}
@media(max-width:640px){ .bi-bcc-flow { grid-template-columns: 1fr; } }

.bi-bcc-flow__step {
  background: var(--sur);
  padding: 2rem 1.75rem;
  display: flex;
  flex-direction: column;
  gap: .75rem;
  position: relative;
  transition: background .2s;
}
.bi-bcc-flow__step:hover { background: hsl(220 38% 10%); }

.bi-bcc-flow__num {
  font-family: var(--f-display);
  font-size: 3rem;
  font-weight: 300;
  color: hsl(var(--gold-hsl)/.18);
  line-height: 1;
  letter-spacing: .02em;
}
.bi-bcc-flow__step:hover .bi-bcc-flow__num {
  color: hsl(var(--gold-hsl)/.35);
}

.bi-bcc-flow__name {
  font-family: var(--f-display);
  font-size: 1.25rem;
  font-weight: 400;
  letter-spacing: .03em;
  color: var(--fg);
  line-height: 1.3;
}

.bi-bcc-flow__desc {
  /* Running text (869etqyny): body copy = --f-body (Tinos), not --f-label. */
  font-family: var(--f-body, var(--f-label));
  font-size: .8rem;
  color: hsl(var(--fg-hsl)/.45);
  line-height: 1.7;
}

/* Step connector dot top-right */
.bi-bcc-flow__step::after {
  content: '';
  position: absolute;
  top: 1.75rem;
  right: 1.75rem;
  width: 6px;
  height: 6px;
  border-radius: 0;
  border: 1px solid hsl(var(--gold-hsl)/.3);
  background: transparent;
  transition: background .2s, border-color .2s;
}
.bi-bcc-flow__step:hover::after {
  background: var(--gold);
  border-color: var(--gold);
}

/* Stakeholders */
.bi-stakeholders {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 1.5rem;
}
.bi-stakeholder {
  border-top: 1px solid hsl(var(--gold-hsl)/.2);
  padding-top: 1rem;
}
.bi-stakeholder__name {
  font-family: var(--f-display);
  font-size: 1.1rem;
  font-weight: 400;
  color: var(--fg);
  margin-bottom: .2rem;
}
.bi-stakeholder__loc {
  font-family: var(--f-label);
  font-size: .5rem;
  letter-spacing: var(--bi-ls-overline, 1px);
  text-transform: uppercase;
  color: var(--gold);
  margin-bottom: .5rem;
}
.bi-stakeholder__role {
  font-size: .8125rem;
  color: hsl(var(--fg-hsl)/.45);
  line-height: 1.6;
}

/* ══════════════════════════════════════════════════════════════
   BCC STEPS
   ══════════════════════════════════════════════════════════════ */
.bi-bcc-steps {
  position: relative;
  display: flex;
  flex-direction: column;
  max-width: 720px;
  padding-left: 3.25rem;
}
.bi-bcc-steps::before {
  content: '';
  position: absolute;
  left: 1.05rem;
  top: 0;
  bottom: 0;
  width: 1px;
  background: linear-gradient(to bottom, transparent, hsl(var(--gold-hsl)/.4) 4%, hsl(var(--gold-hsl)/.4) 96%, transparent);
}
.bi-bcc-step {
  position: relative;
  display: flex;
  align-items: flex-start;
  gap: 1.5rem;
  padding: 2.25rem 0;
  border-top: none;
  border-bottom: 1px solid hsl(var(--gold-hsl)/.08);
  transition: padding-left .25s ease;
}
.bi-bcc-step:first-child { padding-top: 0; }
.bi-bcc-step:last-child { border-bottom: 0; }
.bi-bcc-step:hover { padding-left: .6rem; }
.bi-bcc-step__dot {
  position: absolute;
  /* Centered exactly on the ::before line (left: 1.05rem on .bi-bcc-steps,
     whose padding-left is 3.25rem) minus half the dot's own width, so the
     line passes through the dot's middle instead of clipping its edge. */
  left: calc(-2.2rem - 5.5px);
  /* Centered on the icon circle's vertical middle: step padding-top
     (2.25rem) + half the 40px icon minus half the 11px dot. */
  top: calc(2.25rem + 14.5px);
  width: 11px;
  height: 11px;
  border-radius: 0;
  background: var(--bg);
  border: 2px solid var(--gold);
  transition: background .25s ease, border-color .25s ease, transform .25s ease;
}
.bi-bcc-step:first-child .bi-bcc-step__dot { top: 14.5px; }
.bi-bcc-step:hover .bi-bcc-step__dot { background: var(--gold); border-color: var(--gold); transform: scale(1.3); }
.bi-bcc-step__icon {
  flex-shrink: 0;
  width: 40px;
  height: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px solid hsl(var(--gold-hsl)/.25);
  border-radius: 0;
  color: var(--gold);
  transition: color .25s ease, border-color .25s ease;
}
.bi-bcc-step:hover .bi-bcc-step__icon { color: var(--gold); border-color: var(--gold); }
.bi-bcc-step__num {
  font-family: var(--f-display);
  font-size: 1.1rem;
  font-weight: 300;
  color: var(--gold);
  line-height: 1;
  margin-bottom: .35rem;
}
.bi-bcc-step__title {
  font-family: var(--f-label);
  font-size: .75rem;
  font-weight: 600;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--fg);
  margin-bottom: .6rem;
  transition: color .25s ease;
}
.bi-bcc-step:hover .bi-bcc-step__title { color: var(--gold); }
.bi-bcc-step__desc {
  font-size: .875rem;
  color: hsl(var(--fg-hsl)/.55);
  line-height: 1.7;
  margin: 0;
}
@media (max-width: 640px) {
  .bi-bcc-steps { padding-left: 2.5rem; }
  .bi-bcc-step__dot { left: calc(-1.45rem - 5.5px); }
  .bi-bcc-step { gap: 1rem; }
}

/* ══════════════════════════════════════════════════════════════
   TYPES ARCHIVE GRID
   ══════════════════════════════════════════════════════════════ */
.bi-types-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  gap: 1px;
  background: hsl(var(--gold-hsl)/.08);
}
/* .bi-type-card sets its own `display` in several places on this
   stylesheet, which otherwise wins over the browser's default
   `[hidden]{display:none}` at equal specificity and defeats the
   "show 12, then Load More" / era-filter behaviour. */
#bi-flat-types-grid .bi-type-card[hidden] { display: none !important; }

/* Featured Types row + All Types grid (869ek90bz) · both reuse the exact
   .bdb-cat-nav-card card component from the Category page's
   Subcategories/Featured Types bar (bugatti-dashboard.css) instead of the
   older, plainer .bi-tf-card / .bi-type-card styles above (left in place
   since page-search.php's own "Featured" row still uses .bi-tf-card).

   (3128) A --bugatti-* block used to sit here, repeating the dashboard's
   literal hex a third time so these cards would look identical to the ones
   on a category page without wrapping this archive in the dashboard shell.
   It is gone: both sides read the brand tokens now, so they match by being
   the same colour rather than by two files agreeing to copy the same
   literal. That agreement was the fragile part · the muted value had already
   had to be patched here by hand once (3122) to stop the two drifting. */
/* All Types grid — a wrapping, searchable/sortable grid (not a slider),
   sized to the same card footprint .bdb-cat-nav-card uses in the Category
   page's horizontal bar. */
.bi-types-nav-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(210px, 1fr));
  gap: 1.25rem;
}
/* Same [hidden] specificity fix as .bi-type-card above — .bdb-cat-nav-card
   also sets its own `display`. */
#bi-flat-types-grid .bi-type-nav-card[hidden] { display: none !important; }
.bi-type-card {
  display: flex;
  flex-direction: column;
  background: var(--bg);
  text-decoration: none;
  color: var(--fg);
  transition: background .2s;
}
.bi-type-card:hover { background: var(--sur); }
.bi-type-card__img {
  aspect-ratio: 4/3;
  background-color: var(--sur);
  background-size: cover;
  background-position: center;
  position: relative;
  overflow: hidden;
}
.bi-type-card__img::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, hsl(220 45% 5% / .6), transparent 60%);
}
.bi-type-card:hover .bi-type-card__img { filter: brightness(1.1); }
.bi-type-card__no-img {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--f-label);
  font-size: .5rem;
  letter-spacing: var(--bi-ls-overline, 1px);
  text-transform: uppercase;
  color: hsl(var(--fg-hsl)/.2);
}
.bi-type-card__img--placeholder {
  background:
    radial-gradient(ellipse at 50% 32%, hsl(var(--gold-hsl) / .12), transparent 62%),
    linear-gradient(155deg, hsl(var(--sur-hsl) / .95), hsl(220 32% 8%));
}
.bi-type-card__placeholder {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: .65rem;
  color: hsl(var(--gold-hsl) / .38);
}
.bi-type-card__placeholder span {
  font-family: var(--f-label);
  font-size: .55rem;
  letter-spacing: var(--bi-ls-overline, 1px);
  text-transform: uppercase;
  color: hsl(var(--fg-hsl) / .3);
}

/* ============================================================
   Branded "no photo yet" placeholder — shared across every card
   grid that can render without a hero image (Types archive flat
   grid + Featured Types slider, category Featured Types /
   Continue Exploring sliders, Type detail Related Types). Loaded
   here in main.css because this stylesheet is enqueued site-wide,
   so bugatti-dashboard.css templates (taxonomy-bcc_category.php,
   single-bcc_type.php) pick it up too. (869e55zd5)
   ============================================================ */
.bi-ph {
  position: relative;
  width: 100%;
  height: 100%;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
  background:
    radial-gradient(120% 140% at 22% 18%, hsl(var(--bi-ph-hsl, var(--gold-hsl)) / .22), transparent 60%),
    linear-gradient(152deg, hsl(var(--bi-ph-hsl, var(--gold-hsl)) / .14) 0%, var(--bg) 74%);
}
.bi-ph::before {
  content: '';
  position: absolute;
  inset: -25%;
  opacity: .55;
  background-image: repeating-linear-gradient(115deg, hsl(var(--bi-ph-hsl, var(--gold-hsl)) / .12) 0 1px, transparent 1px 13px);
}
.bi-ph--v1::before {
  background-image: repeating-linear-gradient(65deg, hsl(var(--bi-ph-hsl, var(--gold-hsl)) / .12) 0 1px, transparent 1px 17px);
}
.bi-ph--v2::before {
  background-image: radial-gradient(hsl(var(--bi-ph-hsl, var(--gold-hsl)) / .16) 1px, transparent 1.5px);
  background-size: 15px 15px;
}
.bi-ph--v3::before {
  background-image:
    repeating-linear-gradient(0deg,  hsl(var(--bi-ph-hsl, var(--gold-hsl)) / .09) 0 1px, transparent 1px 19px),
    repeating-linear-gradient(90deg, hsl(var(--bi-ph-hsl, var(--gold-hsl)) / .09) 0 1px, transparent 1px 19px);
}
.bi-ph::after {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(120% 90% at 50% 118%, hsl(220 45% 2% / .65), transparent 62%);
}
/* Era-matched archival photo (3076) sits under the same colour-band/texture
   veil as the icon-only variant, tinting it toward the era accent instead of
   letting a repeated illustration read as identical across every card. */
.bi-ph--photo {
  background-size: cover;
  background-position: center 40%;
}
.bi-ph--photo::before {
  opacity: .35;
  mix-blend-mode: overlay;
}
.bi-ph--photo::after {
  background: linear-gradient(180deg, hsl(220 45% 2% / .1) 0%, hsl(220 45% 2% / .5) 100%);
}
.bi-ph__silhouette {
  position: relative;
  z-index: 1;
  color: hsl(var(--bi-ph-hsl, var(--gold-hsl)) / .55);
  opacity: .85;
}
.bi-ph__mark {
  position: absolute;
  z-index: 1;
  right: .6rem;
  bottom: .5rem;
  font-family: var(--f-display);
  font-style: italic;
  font-weight: 500;
  font-size: .8rem;
  letter-spacing: .02em;
  color: hsl(var(--bi-ph-hsl, var(--gold-hsl)) / .4);
}
@media (max-width: 480px) {
  .bi-ph__silhouette { width: 36px; height: 36px; }
  .bi-ph__mark { font-size: .7rem; }
}

.bi-type-card__body {
  padding: .875rem 1rem;
  border-top: 1px solid hsl(var(--gold-hsl)/.1);
}
.bi-type-card__title {
  font-family: var(--f-display);
  font-size: 1.1rem;
  font-weight: 400;
  letter-spacing: .04em;
  margin-bottom: .25rem;
}
.bi-type-card__meta {
  display: flex;
  gap: .75rem;
  font-family: var(--f-label);
  font-size: .6rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: hsl(var(--fg-hsl)/.4);
}

.bi-home-cta-strip {
  position: relative;
  z-index: 2;
  margin-top: -1px;
  padding: 1rem 0;
  background:
    linear-gradient(90deg, hsl(var(--gold-hsl)/.08), transparent 28%, transparent 72%, hsl(var(--gold-hsl)/.08)),
    hsl(220 34% 7% / .96);
  border-top: 1px solid hsl(var(--gold-hsl)/.12);
  border-bottom: 1px solid hsl(var(--gold-hsl)/.12);
}

.bi-home-cta-strip__inner {
  display: flex;
  justify-content: center;
  gap: .75rem;
  flex-wrap: wrap;
}

.bi-home-cta-strip__link {
  min-height: 2.65rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: .72rem 1.2rem;
  border: 1px solid hsl(var(--gold-hsl)/.26);
  color: var(--gold);
  font-family: var(--f-label);
  font-size: .58rem;
  font-weight: 700;
  letter-spacing: var(--bi-ls-button, 1px);
  text-transform: uppercase;
  text-decoration: none;
  transition: transform .2s, border-color .2s, background .2s, color .2s;
}

.bi-home-cta-strip__link:hover {
  transform: translateY(-2px);
  border-color: var(--gold);
  color: var(--fg);
  background: hsl(var(--gold-hsl)/.07);
}

.bi-home-cta-strip__link.is-primary {
  background: var(--gold);
  color: var(--bg);
  border-color: var(--gold);
}

.bi-curated-shell {
  position: relative;
}

.bi-curated-shell--tinted {
  background:
    radial-gradient(circle at top left, hsl(var(--gold-hsl)/.08), transparent 35%),
    linear-gradient(180deg, hsl(220 30% 10% / .9), hsl(220 28% 8% / .96));
  border-top: 1px solid hsl(var(--gold-hsl)/.08);
  border-bottom: 1px solid hsl(var(--gold-hsl)/.08);
}

.bi-editorial-head {
  display: grid;
  grid-template-columns: 72px minmax(0, 1.2fr) minmax(260px, .8fr);
  gap: 1.5rem 2rem;
  align-items: end;
  margin-bottom: 2.75rem;
}

.bi-editorial-head__index {
  font-family: var(--f-display);
  font-size: clamp(2rem, 4vw, 3.5rem);
  color: hsl(var(--gold-hsl)/.45);
  line-height: .9;
}

.bi-curated-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1.5rem;
}

.bi-curated-card {
  position: relative;
  min-height: 34rem;
  display: flex;
  align-items: flex-end;
  overflow: hidden;
  border: 1px solid hsl(var(--gold-hsl)/.14);
  background: hsl(220 24% 10%);
  text-decoration: none;
  color: inherit;
  box-shadow: 0 26px 60px hsl(220 45% 3% / .28);
  transition: transform .45s cubic-bezier(.2,.8,.2,1), box-shadow .45s, border-color .3s;
}

.bi-curated-card:hover {
  transform: translateY(-8px);
  border-color: hsl(var(--gold-hsl)/.3);
  box-shadow: 0 34px 80px hsl(220 45% 3% / .42);
}

.bi-curated-card__media,
.bi-curated-card__overlay {
  position: absolute;
  inset: 0;
}

.bi-curated-card__media {
  background-size: cover;
  background-position: center;
  transform: scale(1.02);
  filter: saturate(.95) brightness(.72) contrast(1.02);
  transition: transform .6s cubic-bezier(.2,.8,.2,1), filter .45s ease;
}

.bi-curated-card:hover .bi-curated-card__media {
  transform: scale(1.08);
  filter: saturate(1.08) brightness(.84) contrast(1.08);
}

.bi-curated-card__overlay {
  background:
    linear-gradient(180deg, transparent 10%, hsl(220 30% 6% / .22) 42%, hsl(220 35% 5% / .96) 100%),
    linear-gradient(90deg, hsl(220 35% 5% / .04), hsl(var(--gold-hsl)/.09));
}

.bi-curated-card__body {
  position: relative;
  z-index: 1;
  width: 100%;
  padding: 1.4rem 1.4rem 1.5rem;
  transform: translateY(1rem);
  transition: transform .45s cubic-bezier(.2,.8,.2,1);
}

.bi-curated-card:hover .bi-curated-card__body {
  transform: translateY(0);
}

.bi-curated-card__meta,
.bi-curated-card__foot {
  display: flex;
  justify-content: space-between;
  gap: .75rem;
  font-family: var(--f-label);
  font-size: .56rem;
  letter-spacing: var(--bi-ls-overline, 1px);
  text-transform: uppercase;
}

.bi-curated-card__meta {
  color: var(--gold);
  margin-bottom: .85rem;
}

.bi-curated-card__title {
  font-family: var(--f-display);
  font-size: clamp(1.75rem, 3vw, 2.6rem);
  line-height: .95;
  margin: 0 0 .85rem;
}

.bi-curated-card__summary {
  max-width: 28ch;
  margin: 0 0 1.2rem;
  color: hsl(var(--fg-hsl)/.72);
  line-height: 1.7;
}

.bi-curated-card__foot {
  color: hsl(var(--fg-hsl)/.44);
  padding-top: .95rem;
  border-top: 1px solid hsl(var(--gold-hsl)/.14);
}

.bi-era-ribbon {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap: 1rem;
}

.bi-era-ribbon__item {
  padding: 1.4rem 1.15rem 1.25rem;
  border-top: 1px solid hsl(var(--gold-hsl)/.22);
  background: hsl(220 28% 9% / .72);
}

.bi-era-ribbon__count {
  font-family: var(--f-display);
  font-size: 2rem;
  color: var(--gold);
}

.bi-era-ribbon__name {
  margin-top: .4rem;
  font-family: var(--f-display);
  font-size: 1.1rem;
}

.bi-era-ribbon__note {
  margin-top: .55rem;
  font-family: var(--f-label);
  font-size: .58rem;
  letter-spacing: var(--bi-ls-overline, 1px);
  text-transform: uppercase;
  color: hsl(var(--fg-hsl)/.44);
}

.bi-bcc-flow--editorial {
  grid-template-columns: repeat(6, 1fr);
}

@media(max-width:1180px){
  .bi-bcc-flow--editorial { grid-template-columns: repeat(3, 1fr); }
}

@media(max-width:640px){
  .bi-bcc-flow--editorial { grid-template-columns: 1fr; }
}

.bi-stakeholders--editorial .bi-stakeholder {
  padding: 1.35rem 0 0;
}

.bi-editorial-cta {
  padding-top: 2.25rem;
  text-align: center;
}

.bi-editorial-cta--types {
  padding-top: 2.75rem;
}

/* (3119) The .bi-editorial-cta__link / .bi-curated-closing__actions a box
   used to be declared here: min-height 3rem, .8rem 2rem, .58rem letters,
   a 1px gold hairline over a two-layer gradient, and a translateY(-2px)
   hover. It was one of four disagreeing definitions of the same button.
   Both elements now carry .bi-cta in the markup and are sized and filled
   by assets/css/buttons.css. Only the section's own layout stays here. */

.bi-curated-closing__inner {
  max-width: 760px;
  margin: 0 auto;
  text-align: center;
  padding: 3rem 0 1rem;
  border-top: var(--bi-hairline-w, 2px) solid hsl(var(--gold-hsl)/.12);
}

.bi-curated-closing__inner p {
  max-width: 58ch;
  margin: 0 auto 2rem;
  color: hsl(var(--fg-hsl)/.58);
  line-height: 1.8;
}

/* Arrangement only — the flex/gap behaviour comes from .bi-cta-group in
   buttons.css now; this adds the centring that is this section's own. */
.bi-curated-closing__actions {
  justify-content: center;
}

/* (3119) `a:first-child` was the primary and `a.is-secondary` the rest.
   Position is not a role: it broke the moment a section put its lead
   action second, and it could not describe the chassis page's group of
   three at all. The lead button is now marked .bi-cta--primary in the
   markup and filled by buttons.css. */

/* Types archive — cinematic hero */
.bi-types-hero {
  position: relative;
  min-height: clamp(420px, 58vh, 640px);
  display: flex;
  align-items: flex-end;
  overflow: hidden;
}
.bi-types-hero__bg {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center 78%;
  filter: var(--photo-grade);
  animation: bi-closing-kenburns 12s ease-out forwards;
}
@media (prefers-reduced-motion: reduce) {
  .bi-types-hero__bg { animation: none; }
}
.bi-types-hero__overlay {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(to top, rgba(5,7,12,.97) 0%, rgba(5,7,12,.72) 42%, rgba(5,7,12,.22) 74%, transparent 92%),
    linear-gradient(to right, rgba(5,7,12,.88) 0%, rgba(5,7,12,.6) 42%, rgba(5,7,12,.18) 68%, transparent 86%);
}
.bi-types-hero__inner {
  position: relative;
  z-index: 1;
  max-width: min(50vw, 660px);
  padding-top: 2rem;
  padding-bottom: clamp(2.5rem, 5vw, 4rem);
  padding-left: clamp(24px, 6vw, 100px);
  padding-right: 1.5rem;
}
.bi-types-hero__inner .crumb { margin-bottom: 1.5rem; }
.bi-types-hero__inner .ch-hero__h1 { max-width: none; font-size: clamp(2.6rem, 6vw, 5rem); margin: .35rem 0 1rem; }
.bi-types-hero__inner p { max-width: 52ch; color: hsl(var(--fg-hsl) / .7); line-height: 1.8; margin: 0 0 2rem; }
@media (max-width: 900px) {
  .bi-types-hero__inner { max-width: none; padding-right: clamp(24px, 6vw, 100px); }
}
.bi-types-hero__explore {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  font-family: var(--f-label);
  font-size: .62rem;
  letter-spacing: var(--bi-ls-button, 1px);
  text-transform: uppercase;
  color: var(--gold);
  text-decoration: none;
  transition: opacity .2s;
}
.bi-types-hero__explore:hover { opacity: 1; }
.bi-types-hero__explore svg { animation: bi-types-explore-bounce 2s ease-in-out infinite; }
@keyframes bi-types-explore-bounce {
  0%, 100% { transform: translateY(0); }
  50%      { transform: translateY(4px); }
}
@media (prefers-reduced-motion: reduce) {
  .bi-types-hero__explore svg { animation: none; }
}

.bi-types-archive__hero--stats-only {
  grid-template-columns: 1fr;
  border-bottom: none;
  padding-bottom: 0;
  margin-bottom: 3rem;
}
.bi-types-archive__hero--stats-only .bi-types-archive__stats {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  max-width: 720px;
}
.bi-types-archive__stats div em {
  display: block;
  font-style: italic;
  font-family: var(--f-display);
  font-size: .72rem;
  color: hsl(var(--fg-hsl) / .5);
  margin-top: .3rem;
}

/* Stronger register archive and type profile surfaces */
.bi-types-archive,
.bi-type-profile {
  padding-top: 3rem;
  padding-bottom: 5rem;
}
.bi-types-archive__crumb,
.bi-type-profile__crumb {
  margin-bottom: 2rem;
}
.bi-types-archive__hero,
.bi-type-profile__hero {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(18rem, .95fr);
  gap: 2rem 3rem;
  align-items: end;
  margin-bottom: 3.5rem;
  padding-bottom: 2.4rem;
  border-bottom: 1px solid hsl(var(--gold-hsl) / .14);
}
.bi-types-archive__hero::before,
.bi-type-profile__hero::before {
  content: '';
  position: absolute;
  inset: auto 0 0 0;
  height: 1px;
  background: linear-gradient(90deg, var(--gold), transparent 42%);
  transform: scaleX(.18);
  transform-origin: left;
  transition: transform .9s cubic-bezier(.2,.8,.2,1);
}
.bi-types-archive__hero.is-revealed::before,
.bi-type-profile__hero.is-revealed::before {
  transform: scaleX(1);
}
.bi-types-archive__hero .ch-hero__h1,
.bi-type-profile__hero .bi-page-masthead__h1 {
  margin: .35rem 0 .8rem;
  max-width: 10ch;
  font-size: 5rem;
  line-height: .9;
}
.bi-types-archive__hero p,
.bi-type-profile__copy p {
  max-width: 42ch;
  margin: 0;
  color: hsl(var(--fg-hsl) / .62);
  line-height: 1.8;
}
.bi-types-archive__stats,
.bi-type-profile__panel-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  border: 1px solid hsl(var(--gold-hsl) / .16);
  background:
    linear-gradient(135deg, hsl(var(--gold-hsl) / .08), transparent 42%),
    hsl(var(--sur-hsl) / .52);
}
.bi-types-archive__stats div,
.bi-type-profile__panel-grid div {
  min-height: 8.5rem;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  gap: .3rem;
  padding: 1.1rem;
  border-right: 1px solid hsl(var(--gold-hsl) / .12);
}
.bi-types-archive__stats div:last-child,
.bi-type-profile__panel-grid div:last-child {
  border-right: 0;
}
.bi-types-archive__stats strong,
.bi-type-profile__panel-grid strong {
  font-family: var(--f-display);
  font-size: 2.45rem;
  font-weight: 300;
  line-height: .9;
  color: var(--gold);
}
.bi-types-archive__stats span,
.bi-type-profile__panel-grid span {
  font-family: var(--f-label);
  font-size: .56rem;
  font-weight: 700;
  letter-spacing: var(--bi-ls-overline, 1px);
  text-transform: uppercase;
  color: hsl(var(--fg-hsl) / .48);
}
/* ── Types hero: inline search + icon stat bar ─────────────────────── */
.bi-types-hero__inner .bi-cat-archive__search-row { margin: 1.75rem 0 0; }
.bi-types-hero__inner .bi-cat-archive__search { max-width: 520px; }
.bi-types-hero__stats {
  position: relative;
  z-index: 1;
  background: #07080a;
  border-top: 1px solid hsl(var(--gold-hsl) / .16);
}
.bi-types-hero__stats-inner {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 2.5rem;
  padding: 1.75rem 3rem;
}
.bi-types-hero__stat { display: flex; align-items: center; gap: .85rem; }
.bi-types-hero__stat svg { color: var(--gold); flex-shrink: 0; }
.bi-types-hero__stat strong { display: block; font-family: var(--f-display); font-weight: 300; font-size: 1.9rem; color: var(--gold); line-height: 1; }
.bi-types-hero__stat span { display: block; margin-top: .3rem; font-family: var(--f-label); font-size: .58rem; letter-spacing: .12em; text-transform: uppercase; color: hsl(var(--fg-hsl) / .5); }

/* ── Featured Types ─────────────────────────────────────────────────── */
.bi-types-featured { margin: 3.5rem 0; }
.bi-types-featured__row {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 1.25rem;
}
.bi-tf-card {
  display: flex;
  flex-direction: column;
  text-decoration: none;
  border: 1px solid hsl(var(--gold-hsl) / .14);
  border-radius: 0;
  overflow: hidden;
  transition: transform .3s ease, box-shadow .3s ease, border-color .3s ease;
}
.bi-tf-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 20px 44px hsl(220 45% 2% / .4);
  border-color: var(--gold);
}
.bi-tf-card__img { position: relative; height: 150px; overflow: hidden; background: var(--sur2); }
.bi-tf-card__img img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; filter: var(--photo-grade); transform: scale(1.1); transition: transform .5s ease; }
.bi-tf-card:hover .bi-tf-card__img img { transform: scale(1.18); }
.bi-tf-card__no-img { display: flex; align-items: center; justify-content: center; height: 100%; font-family: var(--f-display); font-style: italic; font-size: 1.8rem; color: hsl(var(--gold-hsl) / .12); }
.bi-tf-card__body { flex: 1; display: flex; flex-direction: column; padding: 1.1rem 1.15rem 1.25rem; }
.bi-tf-card__name { font-family: var(--f-display); font-size: 1.15rem; color: var(--fg); transition: color .25s; }
.bi-tf-card:hover .bi-tf-card__name { color: var(--gold); }
.bi-tf-card__year { font-family: var(--f-label); font-size: .62rem; letter-spacing: .08em; color: hsl(var(--fg-hsl) / .45); margin-top: .2rem; }
.bi-tf-card__desc { font-size: .78rem; line-height: 1.6; color: hsl(var(--fg-hsl) / .55); margin: .6rem 0 0; }
.bi-tf-card__foot { display: flex; align-items: center; justify-content: space-between; gap: .5rem; margin-top: auto; padding-top: .85rem; }
.bi-tf-card__chip {
  font-family: var(--f-label);
  font-size: .52rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--gold);
  border: 1px solid hsl(var(--gold-hsl) / .3);
  border-radius: 0;
  padding: .25rem .55rem;
}
.bi-tf-card__arrow { color: var(--gold); transition: transform .25s ease; }
.bi-tf-card:hover .bi-tf-card__arrow { transform: translateX(4px); }
@media (max-width: 1024px) { .bi-types-featured__row { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 640px)  { .bi-types-featured__row { grid-template-columns: repeat(2, 1fr); } }

/* ── Browse by Era pills ────────────────────────────────────────────── */
.bi-types-pills {
  display: flex;
  flex-wrap: wrap;
  gap: .6rem;
  margin-bottom: 2.5rem;
}
.bi-types-pill {
  font-family: var(--f-label);
  font-size: .68rem;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: hsl(var(--fg-hsl) / .55);
  background: transparent;
  border: 1px solid hsl(var(--gold-hsl) / .2);
  border-radius: 0;
  padding: .55rem 1.1rem;
  cursor: pointer;
  transition: background .25s ease, border-color .25s ease, color .25s ease;
}
.bi-types-pill:hover { border-color: var(--gold); color: var(--fg); }
.bi-types-pill.is-active { background: var(--gold); border-color: var(--gold); color: var(--bg); }

/* ── Sort control ───────────────────────────────────────────────────── */
.bi-types-sort {
  display: flex;
  align-items: center;
  gap: .5rem;
  font-family: var(--f-label);
  font-size: .62rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: hsl(var(--fg-hsl) / .5);
}
.bi-types-sort select {
  background: hsl(var(--sur-hsl));
  border: 1px solid hsl(var(--gold-hsl) / .25);
  color: var(--fg);
  font-family: var(--f-label);
  font-size: .7rem;
  padding: .4rem .6rem;
  border-radius: 0;
}

/* ── View all button ────────────────────────────────────────────────── */
.bi-types-viewall-row { display: flex; justify-content: center; margin-top: 2rem; }
/* (3119) Own box removed (.9rem 2.25rem, .68rem, 1px gold hairline).
   It is the only button in its row, so .bi-cta gives it the solo
   treatment out of buttons.css. */

/* ── Century of Innovation timeline ────────────────────────────────── */
.bi-century { position: relative; margin: 4rem 0; overflow: hidden; }
.bi-century .ch-sec-header {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 1rem;
}
.bi-century__track {
  position: relative;
  display: flex;
  justify-content: space-between;
  padding-top: 2.5rem;
}
.bi-century__track::before {
  content: '';
  position: absolute;
  left: 0; right: 0;
  top: calc(2.5rem + 7px);
  height: 2px;
  background: linear-gradient(90deg, transparent, hsl(var(--gold-hsl) / .4) 6%, hsl(var(--gold-hsl) / .4) 94%, transparent);
}
.bi-century__point { position: relative; display: flex; flex-direction: column; align-items: center; text-align: center; flex: 1; }
.bi-century__dot {
  width: 16px;
  height: 16px;
  border-radius: 0;
  background: var(--bg);
  border: 2px solid var(--gold);
  margin-bottom: 1.15rem;
  transition: transform .3s ease, box-shadow .3s ease, background .3s ease;
}
.bi-century__point:hover .bi-century__dot {
  transform: scale(1.35);
  background: var(--gold);
  box-shadow: 0 0 0 6px hsl(var(--gold-hsl) / .16);
}
.bi-century__year { font-family: var(--f-display); font-style: italic; font-size: 1.5rem; color: var(--gold); transition: transform .3s ease; }
.bi-century__point:hover .bi-century__year { transform: scale(1.08); }
.bi-century__label { margin-top: .4rem; font-family: var(--f-label); font-size: .6rem; letter-spacing: .04em; color: hsl(var(--fg-hsl) / .5); max-width: 10ch; }
@media (max-width: 900px) {
  .bi-century__track { flex-wrap: wrap; gap: 1.5rem 0; }
  .bi-century__track::before { display: none; }
  .bi-century__point { flex: 0 0 33%; }
  .bi-century__explore { margin-top: 0; }
}

/* ── Register quick-links ──────────────────────────────────────────── */
.bi-register-quicklinks {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1rem;
  margin-bottom: 2rem;
}
.bi-register-quicklink {
  display: flex;
  align-items: center;
  gap: .85rem;
  padding: 1.1rem 1.25rem;
  border: 1px solid hsl(var(--gold-hsl) / .16);
  border-radius: 0;
  text-decoration: none;
  transition: border-color .25s ease, transform .25s ease;
}
.bi-register-quicklink:hover { border-color: var(--gold); transform: translateY(-3px); }
.bi-register-quicklink svg { color: var(--gold); flex-shrink: 0; }
.bi-register-quicklink strong { display: block; font-family: var(--f-display); font-size: .95rem; font-weight: 400; color: var(--fg); }
.bi-register-quicklink span { display: block; margin-top: .15rem; font-size: .68rem; color: hsl(var(--fg-hsl) / .5); }
@media (max-width: 900px) { .bi-register-quicklinks { grid-template-columns: repeat(2, 1fr); } }

.bi-types-era {
  margin-bottom: 4rem;
}
.bi-types-era__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 1rem;
  padding-bottom: .85rem;
  border-bottom: var(--bi-hairline-w, 2px) solid var(--line);
}
.bi-types-era__head span {
  font-family: var(--f-label);
  font-size: .58rem;
  font-weight: 700;
  letter-spacing: var(--bi-ls-overline, 1px);
  text-transform: uppercase;
  color: hsl(var(--fg-hsl) / .42);
}
.bi-types-era .bi-types-grid {
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 1rem;
  background: transparent;
}
@media (max-width: 1500px) {
  .bi-types-era .bi-types-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
.bi-types-era .bi-type-card {
  position: relative;
  min-height: 24rem;
  overflow: hidden;
  border: 1px solid hsl(var(--gold-hsl) / .14);
  background: hsl(var(--sur-hsl) / .72);
  box-shadow: 0 18px 42px hsl(220 45% 3% / .2);
  isolation: isolate;
  transition: transform .3s ease, box-shadow .3s ease, border-color .3s ease;
}
.bi-types-era .bi-type-card:hover {
  transform: translateY(-8px);
  box-shadow: 0 28px 56px hsl(220 45% 2% / .45);
  border-color: var(--gold);
}
.bi-types-era .bi-type-card--feature {
  grid-column: span 2;
}
.bi-types-era .bi-type-card__img {
  position: absolute;
  inset: 0;
  aspect-ratio: auto;
  filter: brightness(.7) saturate(.9) contrast(1.04);
  transform: scale(1.02);
  transition: transform .75s cubic-bezier(.2,.8,.2,1), filter .35s ease;
}
.bi-types-era .bi-type-card__img::after {
  background:
    linear-gradient(180deg, hsl(var(--bg-hsl) / .04), hsl(var(--bg-hsl) / .16) 34%, hsl(var(--bg-hsl) / .9) 100%),
    linear-gradient(90deg, hsl(var(--bg-hsl) / .44), transparent 62%);
}
.bi-types-era .bi-type-card:hover .bi-type-card__img {
  transform: scale(1.08);
  filter: brightness(.9) saturate(1.02) contrast(1.08);
}
.bi-types-era .bi-type-card__body {
  position: relative;
  z-index: 1;
  min-height: 24rem;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: 1.15rem;
  border-top: 0;
}
.bi-type-card__kicker,
.bi-type-card__open {
  font-family: var(--f-label);
  font-size: .55rem;
  font-weight: 700;
  letter-spacing: var(--bi-ls-overline, 1px);
  text-transform: uppercase;
  color: var(--gold);
}
.bi-types-era .bi-type-card__kicker {
  display: inline-block;
  padding: .3rem .6rem;
  border: 1px solid hsl(var(--gold-hsl) / .3);
  border-radius: 0;
  background: hsl(var(--gold-hsl) / .08);
}
.bi-types-era .bi-type-card__title {
  max-width: 12ch;
  margin: .5rem 0 .7rem;
  font-size: 2.1rem;
  line-height: .96;
  text-transform: uppercase;
  transition: color .24s ease, transform .24s ease;
}
.bi-types-era .bi-type-card:hover .bi-type-card__title {
  color: var(--gold);
  transform: translateX(.3rem);
}
.bi-types-era .bi-type-card__meta {
  justify-content: space-between;
  padding-top: .8rem;
  border-top: 1px solid hsl(var(--gold-hsl) / .14);
}
.bi-type-card__open {
  margin-top: 1rem;
}
.bi-type-profile__hero {
  align-items: stretch;
}
.bi-type-profile__copy {
  align-self: end;
}
.bi-type-profile__panel {
  overflow: hidden;
  border: 1px solid hsl(var(--gold-hsl) / .16);
  background: hsl(var(--sur-hsl) / .54);
  box-shadow: 0 20px 54px hsl(220 45% 3% / .2);
}
.bi-type-profile__panel-image {
  min-height: 17rem;
  background-size: cover;
  background-position: center;
  filter: brightness(.75) saturate(.92) contrast(1.06);
}
.bi-type-profile__panel-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  border: 0;
  background: transparent;
}
.bi-type-profile__panel-grid div {
  min-height: 6rem;
  border-top: 1px solid hsl(var(--gold-hsl) / .12);
}
.bi-type-profile__panel-grid div:nth-child(2n) {
  border-right: 0;
}
.bi-type-profile .bi-specs-bar {
  margin-bottom: 3.5rem;
}
.bi-type-profile .bi-content {
  max-width: 860px;
  margin-bottom: 4rem;
  padding: 2rem;
  border: 1px solid hsl(var(--gold-hsl) / .12);
  background: hsl(var(--sur-hsl) / .34);
}

@media (max-width: 1100px) {
  .bi-types-era .bi-types-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .bi-types-era .bi-type-card,
  .bi-types-era .bi-type-card--feature {
    grid-column: auto;
    min-height: 22rem;
  }
  .bi-types-era .bi-type-card__body { min-height: 22rem; }
}

@media (max-width: 760px) {
  .bi-types-archive,
  .bi-type-profile {
    padding-top: 2rem;
    padding-bottom: 4rem;
  }
  .bi-types-archive__hero,
  .bi-type-profile__hero {
    grid-template-columns: 1fr;
    gap: 1.5rem;
  }
  .bi-types-archive__hero .ch-hero__h1,
  .bi-type-profile__hero .bi-page-masthead__h1 {
    font-size: 3rem;
  }
  .bi-types-archive__stats {
    grid-template-columns: 1fr;
  }
  .bi-types-archive__stats div {
    min-height: 5.5rem;
    border-right: 0;
    border-bottom: 1px solid hsl(var(--gold-hsl) / .12);
  }
  .bi-types-era .bi-types-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .85rem;
  }
  .bi-types-era .bi-type-card,
  .bi-types-era .bi-type-card--feature {
    min-height: 20rem;
  }
  .bi-types-era .bi-type-card__body { min-height: 20rem; }
  .bi-type-profile__panel-grid {
    grid-template-columns: 1fr;
  }
  .bi-type-profile__panel-grid div {
    min-height: 5rem;
    border-right: 0;
  }
  .bi-type-profile .bi-content {
    padding: 1.25rem;
  }
}

/*
 * Homepage premium polish pass.
 * Stronger hierarchy, safer mobile layout, richer interaction.
 */
html,
body {
  width: 100%;
  max-width: 100%;
  overflow-x: hidden;
}

body {
  background:
    radial-gradient(circle at 12% 0%, hsl(var(--gold-hsl) / .075), transparent 28rem),
    radial-gradient(circle at 86% 18%, hsl(210 85% 60% / .055), transparent 30rem),
    linear-gradient(180deg, hsl(220 48% 5%) 0%, var(--bg) 42%, hsl(220 52% 4%) 100%);
}

body.home {
  background:
    radial-gradient(circle at 50% -14rem, hsl(var(--gold-hsl) / .10), transparent 34rem),
    linear-gradient(180deg, hsl(220 48% 5%) 0%, hsl(220 50% 4%) 52%, hsl(220 52% 3%) 100%);
}

body.home .bi-ambient-bg {
  display: none;
}

.site-header {
  background:
    linear-gradient(180deg, hsl(var(--bg-hsl) / .94), hsl(var(--bg-hsl) / .78));
  box-shadow: 0 18px 44px hsl(220 45% 3% / .28);
}
.site-header::after {
  content: '';
  position: absolute;
  left: 0;
  right: 0;
  bottom: -1px;
  height: 1px;
  background: linear-gradient(90deg, transparent, hsl(var(--gold-hsl) / .44), transparent);
  pointer-events: none;
}
.site-header__nav a,
.site-header__icon-btn,
.site-header__account,
.site-header__language-trigger {
  transition: color .22s ease, border-color .22s ease, background .22s ease, transform .22s ease, opacity .22s ease;
}
.site-header__icon-btn:hover,
.site-header__account:hover,
.site-header__language-trigger:hover {
  transform: translateY(-1px);
}

.bi-slider {
  isolation: isolate;
  box-shadow: inset 0 -1px 0 hsl(var(--gold-hsl) / .24);
}
.bi-slider::before {
  content: '';
  position: absolute;
  inset: 5rem auto auto 3rem;
  width: min(32vw, 26rem);
  height: 1px;
  background: linear-gradient(90deg, hsl(var(--gold-hsl) / .48), transparent);
  z-index: 3;
  pointer-events: none;
}
.bi-slide--active {
  filter: brightness(1.08) contrast(1.04) saturate(1.06);
}
.bi-slider__overlay {
  background:
    linear-gradient(to right,
      hsl(var(--bg-hsl) / .76) 0%,
      hsl(var(--bg-hsl) / .48) 34%,
      hsl(var(--bg-hsl) / .12) 60%,
      transparent 82%
    ),
    radial-gradient(circle at 28% 72%, hsl(var(--gold-hsl) / .15), transparent 24rem),
    linear-gradient(to top,
      hsl(var(--bg-hsl) / .82) 0%,
      hsl(var(--bg-hsl) / .52) 17%,
      hsl(var(--bg-hsl) / .14) 42%,
      transparent 68%
    );
}
.bi-slider__title {
  text-shadow: 0 18px 42px hsl(220 45% 3% / .55);
}
/* (3119) The diagonal shine sweep no longer runs on the section CTAs.
   The Explore Collection button is the reference for that whole family
   and never had it, so keeping it on their siblings was the difference
   showing. The slider's own overlay link keeps it — that one is out of
   the button system's scope. */
.bi-slider__explore,
.bi-home-cta-strip__link {
  position: relative;
  overflow: hidden;
}
.bi-slider__explore::before,
.bi-home-cta-strip__link::before {
  content: '';
  position: absolute;
  inset: 0;
  transform: translateX(-120%) skewX(-18deg);
  background: linear-gradient(90deg, transparent, hsl(var(--fg-hsl) / .16), transparent);
  transition: transform .55s cubic-bezier(.2,.8,.2,1);
  pointer-events: none;
}
.bi-slider__explore:hover::before,
.bi-home-cta-strip__link:hover::before {
  transform: translateX(120%) skewX(-18deg);
}
.bi-slider__nav-btn {
  border-radius: 0;
  padding: .68rem .3rem .68rem 1rem;
}
.bi-slider__nav-btn:hover,
.bi-slider__nav-btn--active {
  background: linear-gradient(90deg, transparent, hsl(var(--gold-hsl) / .075));
}
.bi-slider__nav-btn {
  transition: opacity .28s ease, background .28s ease, transform .28s ease;
}
.bi-slider__nav-btn:hover,
.bi-slider__nav-btn--active {
  transform: translateX(-.35rem);
}
.bi-slider__nav-title,
.bi-slider__nav-year {
  transition: color .28s ease, opacity .28s ease, transform .28s ease;
}
.bi-slider__nav-btn--active .bi-slider__nav-title,
.bi-slider__nav-btn--active .bi-slider__nav-year {
  transform: translateX(-.2rem);
}

.bi-stats-strip {
  background:
    linear-gradient(180deg, hsl(var(--sur-hsl) / .98), hsl(220 44% 6% / .98)),
    var(--sur);
  box-shadow: inset 0 1px 0 hsl(var(--gold-hsl) / .14), inset 0 -1px 0 hsl(var(--gold-hsl) / .12);
}
.bi-stat {
  position: relative;
}
.bi-stat::after {
  content: '';
  position: absolute;
  left: 50%;
  bottom: 1.45rem;
  width: 1.8rem;
  height: 1px;
  transform: translateX(-50%) scaleX(0);
  background: var(--gold);
  transition: transform .28s ease;
}
.bi-stat:hover::after {
  transform: translateX(-50%) scaleX(1);
}
.bi-stat:hover .bi-stat__num {
  color: var(--gold);
  text-shadow: 0 0 28px hsl(var(--gold-hsl) / .12);
}

.bi-home-cta-strip {
  background:
    linear-gradient(90deg, hsl(var(--gold-hsl) / .055), transparent 20%, transparent 80%, hsl(var(--gold-hsl) / .055)),
    linear-gradient(180deg, hsl(32 22% 10% / .96), hsl(220 42% 7% / .96));
}
.bi-home-cta-strip__link {
  box-shadow: 0 10px 30px hsl(220 45% 3% / .16);
}
/* (3119) The drop shadow and the 135deg gradient gold are off the section
   CTAs. That gradient — hsl(45 86% 67%) into hsl(40 84% 56%) — was a
   third gold on top of the token and the legacy literal, and it was the
   real reason the reg-bar's primary never quite matched anything else. */
.bi-home-cta-strip__link.is-primary {
  background: linear-gradient(135deg, hsl(45 86% 67%), hsl(40 84% 56%));
}

.bi-register-preview {
  position: relative;
  overflow: hidden;
  padding-top: clamp(2.35rem, 5vw, 4rem);
}
.bi-register-preview::before {
  content: '';
  position: absolute;
  inset: 0;
  background:
    linear-gradient(90deg, hsl(var(--gold-hsl) / .04) 1px, transparent 1px),
    linear-gradient(180deg, hsl(var(--gold-hsl) / .03) 1px, transparent 1px),
    radial-gradient(circle at 85% 20%, hsl(var(--gold-hsl) / .08), transparent 22rem);
  background-size: 11rem 11rem, 11rem 11rem, auto;
  pointer-events: none;
}
.bi-register-preview__shell {
  position: relative;
  z-index: 1;
}
.bi-register-preview__head {
  display: grid;
  grid-template-columns: minmax(0, 1.3fr) minmax(18rem, .7fr);
  gap: 2rem 3rem;
  align-items: end;
  margin-bottom: clamp(1.6rem, 4vw, 2.8rem);
}
.bi-register-preview__head .ch-sec-h2 {
  max-width: 12ch;
  font-size: clamp(2.4rem, 5.2vw, 4.9rem);
}
.bi-register-preview__head .ch-sec-desc {
  max-width: 34ch;
}
.bi-register-preview__rail {
  align-self: stretch;
  display: grid;
  gap: .65rem;
  padding: 1rem;
  border: 1px solid hsl(var(--gold-hsl) / .16);
  background:
    linear-gradient(135deg, hsl(var(--gold-hsl) / .07), transparent 38%),
    hsl(var(--sur-hsl) / .5);
  box-shadow: inset 0 1px 0 hsl(var(--fg-hsl) / .04);
}
.bi-register-preview__rail-head,
.bi-register-preview__rail-link {
  font-family: var(--f-label);
  font-size: .58rem;
  font-weight: 700;
  letter-spacing: var(--bi-ls-button, 1px);
  text-transform: uppercase;
}
.bi-register-preview__rail-head {
  color: var(--gold);
  padding-bottom: .45rem;
  border-bottom: 1px solid hsl(var(--gold-hsl) / .16);
}
.bi-register-preview__rail-row {
  display: grid;
  grid-template-columns: 2rem minmax(0, 1fr);
  gap: .2rem .75rem;
  padding: .72rem .25rem;
  color: var(--fg);
  text-decoration: none;
  border-bottom: 1px solid hsl(var(--fg-hsl) / .06);
  transition: color .22s ease, transform .22s ease, background .22s ease;
}
.bi-register-preview__rail-row span {
  grid-row: span 2;
  font-family: var(--f-display);
  font-size: 1.35rem;
  color: hsl(var(--gold-hsl) / .42);
  line-height: 1;
}
.bi-register-preview__rail-row strong {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-family: var(--f-display);
  font-size: 1.05rem;
  font-weight: 400;
  line-height: 1.1;
}
.bi-register-preview__rail-row em {
  font-style: normal;
  font-family: var(--f-label);
  font-size: .55rem;
  letter-spacing: var(--bi-ls-overline, 1px);
  text-transform: uppercase;
  color: hsl(var(--fg-hsl) / .42);
}
.bi-register-preview__rail-row:hover {
  transform: translateX(.35rem);
  background: hsl(var(--gold-hsl) / .045);
}
.bi-register-preview__rail-row:hover strong {
  color: var(--gold);
}
.bi-register-preview__rail-link {
  justify-self: start;
  margin-top: .25rem;
  color: var(--gold);
  text-decoration: none;
}
.bi-register-preview__grid {
  display: grid;
  grid-template-columns: 1.2fr .8fr .8fr;
  gap: 1rem;
  grid-auto-rows: minmax(13rem, 1fr);
}
.bi-register-preview__item {
  position: relative;
  display: block;
  min-height: 13rem;
  overflow: hidden;
  border: 1px solid hsl(var(--gold-hsl) / .14);
  background: hsl(var(--sur-hsl) / .8);
  box-shadow: 0 16px 40px hsl(220 45% 3% / .18);
  isolation: isolate;
  transition: transform .35s cubic-bezier(.2,.8,.2,1), border-color .28s ease, box-shadow .35s ease;
}
.bi-register-preview__item.is-lead {
  grid-row: span 2;
  min-height: 27rem;
}
.bi-register-preview__media,
.bi-register-preview__shade {
  position: absolute;
  inset: 0;
}
.bi-register-preview__media {
  background-position: center;
  background-size: cover;
  transform: scale(1.01);
  transition: transform .75s cubic-bezier(.2,.8,.2,1), filter .35s ease;
  filter: brightness(.72) saturate(.92) contrast(1.05);
}
.bi-register-preview__shade {
  background:
    linear-gradient(180deg, hsl(var(--bg-hsl) / .08) 0%, hsl(var(--bg-hsl) / .18) 25%, hsl(var(--bg-hsl) / .82) 100%),
    linear-gradient(90deg, hsl(var(--bg-hsl) / .5), transparent 55%);
  transition: opacity .3s ease;
}
.bi-register-preview__item::after {
  content: '';
  position: absolute;
  inset: 1rem;
  border: 1px solid hsl(var(--gold-hsl) / .18);
  opacity: 0;
  transform: scale(.985);
  transition: opacity .28s ease, transform .28s ease;
}
.bi-register-preview__body {
  position: relative;
  z-index: 1;
  min-height: inherit;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  gap: .85rem;
  padding: clamp(1rem, 2vw, 1.4rem);
}
.bi-register-preview__meta,
.bi-register-preview__foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .75rem;
  font-family: var(--f-label);
  font-size: .58rem;
  letter-spacing: var(--bi-ls-overline, 1px);
  text-transform: uppercase;
}
.bi-register-preview__meta {
  color: var(--gold);
}
.bi-register-preview__foot {
  color: hsl(var(--fg-hsl) / .62);
}
.bi-register-preview__foot span:last-child {
  color: var(--gold);
}
.bi-register-preview__title {
  max-width: 12ch;
  margin: 0;
  font-size: clamp(1.6rem, 2.7vw, 3.1rem);
  line-height: .95;
  text-transform: uppercase;
  text-wrap: balance;
}
.bi-register-preview__item:not(.is-lead) .bi-register-preview__title {
  max-width: 11ch;
  font-size: clamp(1.25rem, 1.8vw, 2rem);
}
.bi-register-preview__item:hover .bi-register-preview__media {
  transform: scale(1.06);
  filter: brightness(.9) saturate(1.02) contrast(1.08);
}
.bi-register-preview__item:hover {
  border-color: hsl(var(--gold-hsl) / .34);
  box-shadow: 0 22px 62px hsl(220 45% 3% / .32), 0 0 0 1px hsl(var(--gold-hsl) / .08);
}
.bi-register-preview__item:hover .bi-register-preview__shade {
  opacity: .82;
}
.bi-register-preview__item:hover::after {
  opacity: 1;
  transform: scale(1);
}
.bi-register-preview__item.is-revealed .bi-register-preview__media,
.bi-curated-card.is-revealed .bi-curated-card__media {
  animation: biArchiveImageSettle 1.35s cubic-bezier(.2,.8,.2,1);
}
@keyframes biArchiveImageSettle {
  from {
    transform: scale(1.08);
    filter: brightness(.58) saturate(.78) contrast(1.08);
  }
  to {
    transform: scale(1.01);
    filter: brightness(.72) saturate(.92) contrast(1.05);
  }
}

.bi-curated-shell {
  position: relative;
  overflow: hidden;
}
.bi-curated-shell::before {
  content: '';
  position: absolute;
  inset: 0;
  background:
    linear-gradient(90deg, hsl(var(--gold-hsl) / .045) 1px, transparent 1px),
    linear-gradient(180deg, hsl(var(--gold-hsl) / .035) 1px, transparent 1px);
  background-size: 160px 160px;
  mask-image: radial-gradient(circle at 18% 18%, black, transparent 52%);
  pointer-events: none;
}
.bi-curated-shell > .ch-page {
  position: relative;
  z-index: 1;
}
.bi-editorial-head {
  position: relative;
  margin-bottom: clamp(2.25rem, 5vw, 4rem);
}
.bi-register-preview__head {
  position: relative;
}
.bi-register-preview__head::after,
.bi-editorial-head::after {
  content: '';
  position: absolute;
  left: 0;
  bottom: -1.1rem;
  width: min(16rem, 42vw);
  height: 1px;
  background: linear-gradient(90deg, var(--gold), transparent);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform .9s cubic-bezier(.2,.8,.2,1) .16s;
}
.bi-register-preview__head.is-revealed::after,
.bi-editorial-head.is-revealed::after {
  transform: scaleX(1);
}
.bi-editorial-head__index {
  font-size: clamp(2.4rem, 5vw, 4.8rem);
  color: hsl(var(--gold-hsl) / .35);
  text-shadow: 0 0 34px hsl(var(--gold-hsl) / .12);
}
.bi-editorial-head .ch-sec-h2 {
  max-width: 12.5ch;
  font-size: clamp(2.6rem, 5.6vw, 5.4rem);
}
.bi-editorial-head .ch-sec-desc {
  max-width: 37ch;
  font-size: clamp(.95rem, 1.25vw, 1.08rem);
}

.bi-curated-card {
  min-height: clamp(30rem, 45vw, 38rem);
  border-color: hsl(var(--gold-hsl) / .16);
  background: hsl(var(--sur-hsl) / .88);
  box-shadow: 0 18px 60px hsl(220 45% 3% / .20);
}
.bi-curated-card::before {
  content: '';
  position: absolute;
  inset: 1rem;
  z-index: 1;
  border: 1px solid hsl(var(--gold-hsl) / .14);
  opacity: 0;
  transform: scale(.985);
  transition: opacity .32s ease, transform .32s ease;
  pointer-events: none;
}
.bi-curated-card:hover::before {
  opacity: 1;
  transform: scale(1);
}
.bi-curated-card__title {
  transition: color .22s ease, transform .22s ease;
}
.bi-curated-card:hover .bi-curated-card__title {
  color: var(--gold);
  transform: translateX(.25rem);
}
.bi-curated-card__foot span:last-child {
  color: var(--gold);
}

.bi-era-ribbon {
  gap: 0;
  border: 1px solid hsl(var(--gold-hsl) / .12);
}
.bi-era-ribbon__item {
  position: relative;
  border-top: 0;
  border-right: 1px solid hsl(var(--gold-hsl) / .12);
  background:
    linear-gradient(180deg, hsl(var(--sur2-hsl) / .72), hsl(var(--sur-hsl) / .56));
  transition: background .22s ease, transform .22s ease;
}
.bi-era-ribbon__item:last-child {
  border-right: 0;
}
.bi-era-ribbon__item:hover {
  transform: translateY(-3px);
  background:
    linear-gradient(180deg, hsl(var(--gold-hsl) / .09), hsl(var(--sur-hsl) / .66));
}
.bi-era-ribbon__item::before {
  content: '';
  position: absolute;
  left: 1.15rem;
  top: 0;
  width: 2rem;
  height: 1px;
  background: var(--gold);
  transform: scaleX(.35);
  transform-origin: left;
  transition: transform .25s ease;
}
.bi-era-ribbon__item:hover::before {
  transform: scaleX(1);
}
.bi-era-ribbon__count,
.bi-bcc-flow--editorial .bi-bcc-flow__num {
  display: inline-block;
  transition: color .28s ease, transform .45s cubic-bezier(.2,.8,.2,1);
}
.bi-era-ribbon__item.is-revealed .bi-era-ribbon__count,
.bi-bcc-flow--editorial .bi-bcc-flow__step.is-revealed .bi-bcc-flow__num {
  animation: biNumberSettle .8s cubic-bezier(.2,.8,.2,1) both;
}
@keyframes biNumberSettle {
  from {
    opacity: 0;
    transform: translateY(.8rem) scale(.92);
  }
  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

.bi-bcc-flow--editorial {
  border: 1px solid hsl(var(--gold-hsl) / .1);
  background: hsl(var(--gold-hsl) / .1);
}
.bi-bcc-flow--editorial .bi-bcc-flow__step {
  min-height: 17rem;
  background:
    linear-gradient(180deg, hsl(var(--sur2-hsl) / .76), hsl(var(--sur-hsl) / .92));
  transition: transform .22s ease, background .22s ease;
}
.bi-bcc-flow--editorial .bi-bcc-flow__step:hover {
  transform: translateY(-5px);
  background:
    linear-gradient(180deg, hsl(var(--gold-hsl) / .1), hsl(var(--sur-hsl) / .95));
}
.bi-bcc-flow--editorial .bi-bcc-flow__name {
  font-size: 1.35rem;
}
.bi-bcc-flow--editorial .bi-bcc-flow__desc {
  color: hsl(var(--fg-hsl) / .58);
}

.bi-stakeholders--editorial {
  gap: 2rem;
}
.bi-stakeholders--editorial .bi-stakeholder {
  padding: 1.5rem 1.25rem;
  border: 1px solid hsl(var(--gold-hsl) / .12);
  background: hsl(var(--sur-hsl) / .38);
  transition: transform .22s ease, background .22s ease, border-color .22s ease;
}
.bi-stakeholders--editorial .bi-stakeholder:hover {
  transform: translateY(-4px);
  border-color: hsl(var(--gold-hsl) / .3);
  background: hsl(var(--gold-hsl) / .055);
}

.bi-curated-closing__inner {
  max-width: 860px;
  padding: clamp(3rem, 7vw, 6rem) clamp(1rem, 4vw, 4rem);
  border: var(--bi-hairline-w, 2px) solid hsl(var(--gold-hsl) / .14);
  background:
    radial-gradient(circle at 50% 0%, hsl(var(--gold-hsl) / .1), transparent 18rem),
    hsl(var(--sur-hsl) / .28);
}
.bi-curated-closing__inner.is-revealed {
  animation: biClosingSettle .9s cubic-bezier(.2,.8,.2,1) both;
}
@keyframes biClosingSettle {
  from {
    opacity: 0;
    transform: scale(.985) translateY(1.25rem);
  }
  to {
    opacity: 1;
    transform: scale(1) translateY(0);
  }
}

@media (max-width: 980px) {
  .bi-register-preview__head,
  .bi-editorial-head {
    grid-template-columns: 1fr;
  }

  .bi-register-preview__grid,
  .bi-curated-grid,
  .bi-bcc-flow--editorial {
    grid-template-columns: 1fr;
  }

  .bi-register-preview__item.is-lead {
    grid-row: span 1;
    min-height: 22rem;
  }
}

@media (max-width: 760px) {
  body {
    overflow-x: hidden;
  }

  .site-header {
    overflow: hidden;
  }
  .site-header__inner {
    height: 3.85rem;
    padding-left: .85rem;
    padding-right: .85rem;
    gap: .7rem;
    justify-content: flex-start;
    overflow-x: auto;
    scrollbar-width: none;
  }
  .site-header__inner::-webkit-scrollbar,
  .site-header__nav::-webkit-scrollbar {
    display: none;
  }
  .site-header__logo {
    flex: 0 0 auto;
    gap: .35rem;
  }
  .site-header__brand {
    font-size: 1rem;
    letter-spacing: var(--bi-ls-overline, 1px);
  }
  .site-header__sub {
    font-size: .45rem;
    letter-spacing: var(--bi-ls-overline, 1px);
  }
  .site-header__nav {
    flex: 1 1 auto;
    min-width: 0;
    gap: .9rem;
    overflow-x: auto;
  }
  .site-header__nav a {
    flex: 0 0 auto;
    white-space: nowrap;
    font-size: .5rem;
    letter-spacing: var(--bi-ls-overline, 1px);
  }
  .site-header__nav a:nth-child(4) {
    display: none;
  }
  .site-header__nav-chat {
    padding: .2rem .55rem;
  }
  .site-header__right {
    flex: 0 0 auto;
    gap: .35rem;
  }
  .site-header__language-trigger,
  .site-header__icon-btn,
  .site-header__account {
    width: 2rem;
    min-width: 2rem;
    height: 2rem;
  }
  .site-header__language-menu {
    right: .5rem;
  }

  .bi-slider {
    width: 100%;
    height: 78svh;
    min-height: 34rem;
  }
  .bi-slider::before {
    left: 1.25rem;
    top: 4.8rem;
    width: 55vw;
  }
  .bi-slide {
    background-position: center top;
  }
  .bi-slider__overlay {
    background:
      linear-gradient(to top, hsl(var(--bg-hsl) / .88) 0%, hsl(var(--bg-hsl) / .55) 34%, transparent 72%),
      linear-gradient(to right, hsl(var(--bg-hsl) / .32), transparent 70%);
  }
  .bi-slider__content {
    padding-bottom: 4.6rem;   /* (3120) sides come from the shell gutter */
  }
  .bi-slider__content-left {
    max-width: 100%;
  }
  .bi-slider__eyebrow {
    font-size: .62rem;
    letter-spacing: var(--bi-ls-overline, 1px);
    margin-bottom: .85rem;
  }
  .bi-slider__title {
    max-width: 9.2ch;
    font-size: clamp(3.05rem, 17vw, 4.8rem);
    line-height: .9;
    margin-bottom: 1.25rem;
  }
  .bi-slider__title--long {
    max-width: 12ch;
    font-size: clamp(1.9rem, 9vw, 3.1rem);
  }
  .bi-slider__counter {
    top: 4.8rem;
    right: 1rem;
  }

  .bi-stats-strip {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .bi-stat {
    min-width: 0;
    padding: 1.6rem .75rem;
  }
  .bi-stat__num {
    font-size: 2.5rem;
  }
  .bi-home-cta-strip__inner {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    padding-left: 1rem;
    padding-right: 1rem;
  }
  .bi-home-cta-strip__link {
    width: 100%;
    min-height: 2.55rem;
    padding: .65rem .7rem;
    font-size: .55rem;
    letter-spacing: var(--bi-ls-button, 1px);
  }
  .bi-register-preview {
    padding-top: 2rem;
  }
  .bi-register-preview__head {
    gap: .9rem;
  }
  .bi-register-preview__rail {
    padding: .85rem;
  }
  .bi-register-preview__rail-row {
    grid-template-columns: 1.8rem minmax(0, 1fr);
  }
  .bi-register-preview__grid {
    display: flex;
    gap: .85rem;
    overflow-x: auto;
    padding-bottom: .35rem;
    scroll-snap-type: x proximity;
    scrollbar-width: none;
  }
  .bi-register-preview__grid::-webkit-scrollbar {
    display: none;
  }
  .bi-register-preview__item {
    flex: 0 0 min(82vw, 20rem);
    min-height: 26rem;
    scroll-snap-align: start;
  }
  .bi-register-preview__item.is-lead {
    min-height: 32rem;
  }
  .bi-register-preview__media {
    filter: brightness(.82) saturate(.95) contrast(1.04);
  }
  .bi-register-preview__title,
  .bi-register-preview__item:not(.is-lead) .bi-register-preview__title {
    font-size: clamp(1.6rem, 8vw, 2.6rem);
  }
  .bi-register-preview__meta,
  .bi-register-preview__foot {
    font-size: .52rem;
    letter-spacing: var(--bi-ls-overline, 1px);
  }
  .bi-fp-section {
    padding: 4rem 0;
  }
  .bi-editorial-head {
    gap: 1rem;
  }
  .bi-editorial-head__index {
    font-size: 2.4rem;
  }
  .bi-editorial-head .ch-sec-h2 {
    max-width: 11ch;
    font-size: clamp(2.15rem, 12vw, 3.4rem);
  }
  .bi-curated-card {
    min-height: 34rem;
  }
  .bi-curated-card__overlay {
    background:
      linear-gradient(180deg, transparent 20%, hsl(220 30% 6% / .15) 50%, hsl(220 35% 5% / .9) 100%),
      linear-gradient(90deg, hsl(220 35% 5% / .04), hsl(var(--gold-hsl)/.06));
  }
  .bi-curated-card__media {
    filter: brightness(.82) saturate(.95);
  }
  .bi-curated-card__body {
    transform: none;
  }
  .bi-era-ribbon {
    grid-template-columns: 1fr;
  }
  .bi-era-ribbon__item {
    border-right: 0;
    border-bottom: 1px solid hsl(var(--gold-hsl) / .11);
  }
  .bi-bcc-flow--editorial .bi-bcc-flow__step {
    min-height: auto;
  }
  /* (3119) Stacking on a phone is now .bi-cta-group's job in buttons.css,
     and the buttons keep their own width there instead of stretching to
     the container edge — the thing PR #1376 was opened to stop. */
}

@media (prefers-reduced-motion: reduce) {
  .bi-slider__explore::before,
  .bi-home-cta-strip__link::before {
    display: none;
  }
  .bi-curated-card,
  .bi-register-preview__item,
  .bi-era-ribbon__item,
  .bi-bcc-flow__step,
  .bi-stakeholder,
  .bi-curated-closing__inner {
    transition: none !important;
    animation: none !important;
  }
  .bi-register-preview__head::after,
  .bi-editorial-head::after {
    transform: scaleX(1);
    transition: none;
  }
}

/* Feature list */
.bi-content ul {
  list-style: none;
  padding: 0;
  margin: 0 0 2rem;
}
.bi-content ul li {
  position: relative;
  padding: .4rem 0 .4rem 1.25rem;
  font-size: .9375rem;
  color: hsl(var(--fg-hsl) / .68);
  border-bottom: 1px solid hsl(var(--fg-hsl) / .05);
}
.bi-content ul li::before {
  content: '·';
  position: absolute;
  left: 0;
  color: var(--gold);
  font-size: 1.25em;
  line-height: 1.4;
}

/* Register blockquotes */
.bi-content blockquote {
  margin: .3rem 0;
  padding: .4rem 0 .4rem 1rem;
  border-left: 1px solid hsl(var(--gold-hsl) / .35);
  font-family: var(--f-display);
  font-size: 1rem;
  font-style: italic;
  color: hsl(var(--fg-hsl) / .48);
  line-height: 1.65;
}

.bi-content code {
  font-family: 'Courier New', monospace;
  font-size: .8em;
  color: var(--gold);
  background: hsl(var(--gold-hsl) / .07);
  padding: .1em .4em;
  border-radius: 0;
}

/* ── Spec tables (bi-table) ── */
.bi-content table,
.bi-content .bi-table {
  width: 100%;
  border-collapse: collapse;
  margin-bottom: 2rem;
  table-layout: auto;
}

/* Column header row */
.bi-content .bi-spec-head th {
  font-family: var(--f-label);
  font-size: .5rem;
  font-weight: 600;
  letter-spacing: var(--bi-ls-overline, 1px);
  text-transform: uppercase;
  color: var(--gold);
  padding: .5rem 1rem .5rem 0;
  border-bottom: 1px solid hsl(var(--gold-hsl) / .22);
  vertical-align: bottom;
}
.bi-content .bi-spec-head th:empty { display: none; }

/* Data rows */
.bi-content .bi-spec-row { border-bottom: 1px solid hsl(var(--fg-hsl) / .07); }
.bi-content .bi-spec-row:last-child { border-bottom: none; }
.bi-content .bi-spec-row:hover { background: hsl(var(--gold-hsl) / .035); }

/* Label column */
.bi-content .bi-spec-lbl {
  font-family: var(--f-label);
  font-size: .6875rem;
  letter-spacing: .03em;
  color: hsl(var(--fg-hsl) / .38);
  padding: .8rem 2rem .8rem 0;
  vertical-align: top;
  width: 36%;
  font-weight: 400;
}
.bi-content .bi-spec-lbl strong { font-weight: 400; color: inherit; }

/* Value column */
.bi-content .bi-spec-val {
  font-family: var(--f-display);
  font-size: 1.05rem;
  font-weight: 300;
  letter-spacing: .02em;
  color: var(--fg);
  padding: .8rem 1rem .8rem 0;
  vertical-align: top;
}
.bi-content .bi-spec-val strong { color: var(--gold); font-weight: 400; }

/* Fallback: any unstyled th/td in content tables */
.bi-content table th,
.bi-content table td {
  text-align: left;
  padding: .5rem 1rem .5rem 0;
  vertical-align: top;
}

@media(max-width:700px) {
  .bi-content .bi-spec-lbl { width: auto; padding-right: 1rem; }
}

/* ══════════════════════════════════════════════════════════════
   L) EVENTS TIMELINE
   ══════════════════════════════════════════════════════════════ */

.bi-events-timeline {
  position: relative;
  padding-left: 3.5rem;
  max-width: 860px;
}
.bi-events-timeline::before {
  content: '';
  position: absolute;
  left: 0;
  top: 0.75rem;
  bottom: 0.75rem;
  width: 1px;
  background: linear-gradient(
    to bottom,
    transparent,
    hsl(var(--gold-hsl) / .35) 12%,
    hsl(var(--gold-hsl) / .35) 88%,
    transparent
  );
}
.bi-events-timeline__item {
  position: relative;
  padding-bottom: 4rem;
}
.bi-events-timeline__item:last-child { padding-bottom: 0; }

/* Diamond marker */
.bi-events-timeline__dot {
  position: absolute;
  left: -3.5rem;
  top: 0.45rem;
  width: 9px;
  height: 9px;
  background: var(--gold);
  clip-path: polygon(50% 0%, 100% 50%, 50% 100%, 0% 50%);
  transform: translateX(-4px);
}

.bi-events-timeline__date {
  font-family: var(--f-label);
  font-size: .5625rem;
  font-weight: 600;
  letter-spacing: var(--bi-ls-overline, 1px);
  text-transform: uppercase;
  color: var(--gold);
  margin-bottom: .75rem;
}
.bi-events-timeline__title {
  font-family: var(--f-display);
  font-size: clamp(2.25rem, 4.5vw, 3.75rem);
  font-weight: 300;
  letter-spacing: .04em;
  line-height: .92;
  color: var(--fg);
  margin-bottom: .65rem;
}
.bi-events-timeline__location {
  font-family: var(--f-label);
  font-size: .8125rem;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: hsl(var(--fg-hsl) / .42);
  margin-bottom: .4rem;
}
.bi-events-timeline__note {
  font-family: var(--f-display);
  font-size: 1.1rem;
  font-style: italic;
  color: hsl(var(--fg-hsl) / .32);
  line-height: 1.5;
}

@media(max-width:700px) {
  .bi-events-timeline { padding-left: 2rem; }
  .bi-events-timeline__dot { left:-2rem; transform:translateX(-3px); }
  .bi-events-timeline__item { padding-bottom: 2.5rem; }
}

/* ══════════════════════════════════════════════════════════════
   M) VISUAL DEPTH — AMBIENT · GRAIN · MOTION · HOVER
   ══════════════════════════════════════════════════════════════ */

/* ── 1. Film grain overlay — luxury print texture ── */
body::before {
  content: '';
  position: fixed;
  inset: 0;
  z-index: 9998;
  pointer-events: none;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  background-size: 220px 220px;
  opacity: 0.022;
  mix-blend-mode: overlay;
}

/* ── 2. Ambient blurred page background ── */
.bi-ambient-bg {
  position: fixed;
  inset: -20%;
  background-size: cover;
  background-position: center;
  opacity: 0.05;
  filter: blur(50px) saturate(0.25) brightness(0.65);
  z-index: -1;
  pointer-events: none;
  will-change: transform;
  animation: ambientDrift 50s ease-in-out infinite alternate;
}
@keyframes ambientDrift {
  0%   { transform: scale(1.2) translate(0%, 0%); }
  33%  { transform: scale(1.25) translate(-2%, 1.5%); }
  66%  { transform: scale(1.18) translate(1.5%, -1%); }
  100% { transform: scale(1.22) translate(-1%, -2%); }
}

/* ── 3. Scroll reveal — progressive enhancement ── */
.bi-can-reveal {
  opacity: 0;
  transform: translateY(22px);
  transition:
    opacity .7s cubic-bezier(.2,.8,.2,1),
    transform .7s cubic-bezier(.2,.8,.2,1);
}
.bi-can-reveal.is-revealed {
  opacity: 1;
  transform: none;
}
/* Stagger helpers */
.bi-reveal-d1 { transition-delay: .08s !important; }
.bi-reveal-d2 { transition-delay: .16s !important; }
.bi-reveal-d3 { transition-delay: .24s !important; }
.bi-reveal-d4 { transition-delay: .32s !important; }
.bi-reveal-d5 { transition-delay: .42s !important; }

/* ── 4. Specs bar — staggered entrance ── */
.bi-specs-bar { opacity: 0; animation: fadeBarIn .8s .2s cubic-bezier(.2,.8,.2,1) both; }
@keyframes fadeBarIn {
  from { opacity: 0; transform: translateY(14px); }
  to   { opacity: 1; transform: none; }
}

/* ── 5. Enhanced card hover ── */
.bi-card {
  transition:
    transform .35s cubic-bezier(.2,.8,.2,1),
    box-shadow .35s,
    border-color .25s;
}
.bi-card:hover {
  transform: translateY(-5px) scale(1.012);
  box-shadow: 0 20px 55px rgba(0,0,0,.5), 0 0 0 1px hsl(var(--gold-hsl)/.28);
  border-color: hsl(var(--gold-hsl)/.45);
}
.bi-card__title { transition: color .2s; }
.bi-card:hover .bi-card__title { color: var(--gold); }

/* ── 6. Gallery item hover ── */
.bi-gallery__item {
  position: relative;
  overflow: hidden;
  transition: box-shadow .3s;
}
.bi-gallery__item::after {
  content: '';
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(0,0,0,.22);
  opacity: 0;
  transition: opacity .3s;
}
.bi-gallery__item::before {
  content: '';
  position: absolute;
  inset: 0;
  margin: auto;
  width: 28px;
  height: 28px;
  background-color: var(--gold);
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M15 3h6v6'/%3E%3Cpath d='M10 14 21 3'/%3E%3Cpath d='M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M15 3h6v6'/%3E%3Cpath d='M10 14 21 3'/%3E%3Cpath d='M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6'/%3E%3C/svg%3E");
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-position: center;
  -webkit-mask-size: contain;
  mask-size: contain;
  opacity: 0;
  transition: opacity .3s;
  pointer-events: none;
  backdrop-filter: blur(2px);
}
.bi-gallery__item:hover::after { opacity: 1; }
.bi-gallery__item img {
  transition: transform .7s cubic-bezier(.2,.8,.2,1), filter .3s;
}
.bi-gallery__item:hover img {
  transform: scale(1.09);
  filter: brightness(1) sepia(0) !important;
}
.bi-gallery__item:hover { box-shadow: 0 8px 32px rgba(0,0,0,.4); }

/* ── 7. Panel hover ── */
.bi-panel {
  transition: border-color .3s, box-shadow .3s, background .3s;
}
.bi-panel:hover {
  border-color: var(--gold);
  box-shadow: 0 4px 24px rgba(0,0,0,.25), inset 0 0 0 1px hsl(var(--gold-hsl)/.08);
}

/* ── 8. Timeline interactivity ── */
.bi-events-timeline__item {
  transition: opacity .25s;
  cursor: default;
}
.bi-events-timeline:hover .bi-events-timeline__item { opacity: 0.45; }
.bi-events-timeline:hover .bi-events-timeline__item:hover { opacity: 1; }
.bi-events-timeline__dot {
  transition: transform .3s cubic-bezier(.2,.8,.2,1), box-shadow .3s;
}
.bi-events-timeline__item:hover .bi-events-timeline__dot {
  transform: translateX(-4px) scale(1.6);
  box-shadow: 0 0 14px var(--gold), 0 0 0 4px hsl(var(--gold-hsl)/.12);
}
.bi-events-timeline__title { transition: color .25s; }
.bi-events-timeline__item:hover .bi-events-timeline__title { color: var(--gold); }

/* ── 9. Chassis timeline interactivity ── */
.ch-timeline__item {
  transition: opacity .25s;
}
.ch-timeline:hover .ch-timeline__item { opacity: 0.45; }
.ch-timeline:hover .ch-timeline__item:hover { opacity: 1; }

/* ── 10. BCC badge float animation ── */
.ch-bcc__badge svg {
  animation: floatBadge 7s ease-in-out infinite;
  transform-origin: center;
}
@keyframes floatBadge {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  33%  { transform: translateY(-9px) rotate(.5deg); }
  66%  { transform: translateY(-5px) rotate(-.3deg); }
}

/* ── 11. Spec row hover ── */
.bi-spec-row {
  transition: background .18s;
  cursor: default;
}
.bi-spec-row:hover { background: hsl(var(--gold-hsl)/.05) !important; }
.bi-spec-row:hover .bi-spec-val { color: hsl(var(--fg-hsl)/.95); }

/* ── 12. Navigation link hover ── */
.site-header__nav a {
  position: relative;
}
.site-header__nav a::after {
  content: '';
  position: absolute;
  left: 0; right: 100%; bottom: -2px;
  height: 1px;
  background: var(--gold);
  transition: right .25s cubic-bezier(.4,0,.2,1);
}
.site-header__nav a:hover::after { right: 0; }

/* ── 13. Crumb link hover ── */
.crumb a {
  position: relative;
  transition: color .2s;
}
.crumb a:hover { color: var(--gold); }

/* ── 14. Button/arrow hover glow ── */
.bi-slider__arrow {
  transition: background .2s, color .2s, box-shadow .2s, transform .15s;
}
.bi-slider__arrow:hover {
  background: hsl(var(--gold-hsl)/.15);
  color: var(--fg);
  box-shadow: 0 0 20px hsl(var(--gold-hsl)/.25);
  transform: scale(1.08);
}

/* ── 15. Masthead title shimmer on hover ── */
.bi-page-masthead__h1 {
  transition: letter-spacing .4s cubic-bezier(.2,.8,.2,1);
}
.bi-page-masthead__h1:hover {
  letter-spacing: .06em;
}

/* ── 16. ch-hero identity panel lift ── */
.ch-id-panel {
  transition: transform .35s cubic-bezier(.2,.8,.2,1), box-shadow .35s;
}
.ch-id-panel:hover {
  transform: translateY(-4px);
  box-shadow: 0 16px 48px rgba(0,0,0,.4);
}

/* ── 17. Quote block hover ── */
.ch-quote-block {
  transition: border-color .3s;
}
.ch-quote-block:hover {
  border-color: hsl(var(--gold-hsl)/.4);
}

/* ── 18. Sidebar quote float ── */
.bi-sidebar-quote blockquote {
  transition: transform .4s cubic-bezier(.2,.8,.2,1);
}
.bi-sidebar-quote blockquote:hover {
  transform: translateX(4px);
}

/* ── 19. Progress bar pulse on active ── */
.bi-slider__progress-bar {
  box-shadow: 0 0 8px var(--gold);
}

/* ── 20. Dot hover glow ── */
.bi-slider__dot-btn {
  transition: background .2s, transform .2s, box-shadow .2s;
}
.bi-slider__dot-btn:hover {
  box-shadow: 0 0 10px var(--gold);
  transform: scaleX(1.4);
}

/* ── 21. Type page: smooth counter animation trigger ── */
.bi-label {
  transition: background .2s, color .2s, transform .2s;
}
.bi-label:hover {
  background: hsl(var(--gold-hsl)/.25);
  transform: translateY(-1px);
}

/* ── 22. Smooth scroll ── */
html { scroll-behavior: smooth; }

@media (prefers-reduced-motion: reduce) {
  body::before { display: none; }
  .bi-ambient-bg { animation: none; }
  .bi-can-reveal { opacity: 1 !important; transform: none !important; }
  .bi-specs-bar  { animation: none; opacity: 1; }
  .ch-bcc__badge svg { animation: none; }
  .bi-slide {
    transform: scale(1) !important;
    transition: opacity 1.1s cubic-bezier(.4,0,.2,1), filter 1.1s ease;
  }
}

/* ═══════════════════════════════════════════════════════════════════════════
   SECTION N — SCROLL EFFECTS  (parallax · reveal · 3D · blur · progress)
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── Page scroll progress indicator ── */
.bi-scroll-indicator {
  position: fixed;
  top: 0; left: 0;
  width: 0%;
  height: 2px;
  background: linear-gradient(90deg, transparent, hsl(var(--gold-hsl)), hsl(var(--gold-hsl)/.4));
  z-index: 9999;
  transition: width .05s linear;
  box-shadow: 0 0 8px var(--gold);
  pointer-events: none;
}

/* ── Scroll reveal — 3D fly-in ── */
.bi-can-reveal {
  opacity: 0;
  transform: translateY(36px) translateZ(-24px) rotateX(6deg);
  transition:
    opacity  .75s cubic-bezier(.22,.68,0,1.1),
    transform .75s cubic-bezier(.22,.68,0,1.1);
  transform-style: preserve-3d;
  will-change: opacity, transform;
}
.bi-can-reveal.is-revealed {
  opacity: 1;
  transform: translateY(0) translateZ(0) rotateX(0);
}

/* Variant: slide from left */
.bi-can-reveal--left {
  transform: translateX(-40px) translateZ(-10px);
}
.bi-can-reveal--left.is-revealed {
  transform: translateX(0) translateZ(0);
}

/* Variant: scale up */
.bi-can-reveal--scale {
  transform: scale(.9) translateY(20px);
}
.bi-can-reveal--scale.is-revealed {
  transform: scale(1) translateY(0);
}

/* ── Text clip reveal ── */
.bi-text-clip {
  overflow: hidden;
  display: block;
  clip-path: polygon(0 100%, 100% 100%, 100% 100%, 0 100%);
  transition: clip-path .9s cubic-bezier(.22,.68,0,1.2);
}
.bi-text-clip.is-visible {
  clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
}

/* ── 3D tilt host ── */
.bi-card,
.bi-panel {
  transform-style: preserve-3d;
  transition: transform .15s ease-out, box-shadow .15s ease-out;
  will-change: transform;
}

/* ── Sticky scene (pinned scroll section) ── */
.bi-sticky-scene {
  position: relative;
  min-height: 200vh;
}
.bi-sticky-scene__inner {
  position: sticky;
  top: 0;
  height: 100vh;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
}
.bi-sticky-scene__inner > * {
  transition: transform .6s cubic-bezier(.22,.68,0,1.2), opacity .6s ease;
}
.bi-sticky-scene.is-pinned .bi-sticky-scene__inner > * {
  transform: scale(1.03);
}

/* ── Parallax wrapper ── */
[data-parallax] {
  will-change: transform;
}

/* ── Scroll-driven zoom backdrop (CSS-native, Chrome 115+) ── */
@supports (animation-timeline: scroll()) {
  .bi-slide--active {
    animation: scrollHeroZoom linear both;
    animation-timeline: scroll(root block);
    animation-range: 0px 600px;
  }
  @keyframes scrollHeroZoom {
    from { filter: blur(0px) brightness(1);   transform: scale(1.08); }
    to   { filter: blur(6px)  brightness(.65); transform: scale(1.16); }
  }

  /* Scroll-driven section reveals */
  .bi-events-timeline__item,
  .bi-specs-bar__item,
  .ch-timeline__item {
    animation: scrollReveal3D linear both;
    animation-timeline: view();
    animation-range: entry 0% cover 28%;
  }
  @keyframes scrollReveal3D {
    from {
      opacity: 0;
      transform: translateY(40px) translateZ(-20px) rotateX(7deg);
    }
    to {
      opacity: 1;
      transform: translateY(0) translateZ(0) rotateX(0);
    }
  }

  .bi-gallery__item {
    animation: scrollScaleIn linear both;
    animation-timeline: view();
    animation-range: entry 0% cover 30%;
  }
  @keyframes scrollScaleIn {
    from { opacity: 0; transform: scale(.88); filter: blur(4px); }
    to   { opacity: 1; transform: scale(1);   filter: blur(0px); }
  }
}

/* ── Enhanced specs bar for mobile scroll ── */
.bi-specs-bar {
  overflow-x: auto;
  scrollbar-width: none;
  -ms-overflow-style: none;
}
.bi-specs-bar::-webkit-scrollbar { display: none; }

/* ── Hover parallax micro-nudge on cards ── */
.bi-card:hover .bi-card__img,
.bi-panel:hover .bi-panel__img {
  transform: scale(1.06) translateY(-3px);
  transition: transform .4s cubic-bezier(.22,.68,0,1.2);
}

/* ── Section depth layers ── */
.bi-depth-layer {
  position: relative;
  z-index: 1;
}
.bi-depth-layer::before {
  content: '';
  position: absolute;
  inset: -20% -5%;
  background: radial-gradient(ellipse at 50% 60%, hsl(var(--gold-hsl)/.04) 0%, transparent 70%);
  pointer-events: none;
  z-index: -1;
}

/* ── Horizontal scroll marquee text ── */
@keyframes marqueeScroll {
  from { transform: translateX(0); }
  to   { transform: translateX(-50%); }
}
.bi-marquee {
  display: none !important;
  overflow: hidden;
  white-space: nowrap;
  position: relative;
}
.bi-marquee__track {
  display: inline-flex;
  animation: marqueeScroll 30s linear infinite;
  gap: 4rem;
}
.bi-marquee__track:hover {
  animation-play-state: paused;
}
.bi-marquee__item {
  flex-shrink: 0;
  font-family: var(--f-display);
  font-size: clamp(3rem, 6vw, 6rem);
  font-weight: 400;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: hsl(var(--gold-hsl)/.07);
  user-select: none;
}

/* ── Ambient image background ── */
.bi-ambient-bg {
  position: fixed;
  inset: -10%;
  z-index: 0;
  pointer-events: none;
  background-size: cover;
  background-position: center;
  filter: blur(60px) saturate(0.6);
  opacity: .045;
  will-change: transform;
  animation: ambientDrift 55s ease-in-out infinite alternate;
}
@keyframes ambientDrift {
  from { transform: scale(1.06) translate(-1.5%, -1%); }
  to   { transform: scale(1.12) translate(1.5%,  1%); }
}

/* ── Film grain overlay ── */
body::before {
  content: '';
  position: fixed;
  inset: 0;
  z-index: 9998;
  pointer-events: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.75' numOctaves='4' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='200' height='200' filter='url(%23g)' opacity='1'/%3E%3C/svg%3E");
  background-repeat: repeat;
  opacity: .022;
  mix-blend-mode: overlay;
}

@media (prefers-reduced-motion: reduce) {
  .bi-can-reveal       { opacity: 1 !important; transform: none !important; transition: none !important; }
  .bi-text-clip        { clip-path: none; }
  .bi-ambient-bg       { animation: none; }
  .bi-marquee__track   { animation: none; }
  .bi-scroll-indicator { display: none; }
  @supports (animation-timeline: scroll()) {
    .bi-slide--active,
    .bi-events-timeline__item,
    .bi-specs-bar__item,
    .ch-timeline__item,
    .bi-gallery__item { animation: none; opacity: 1; transform: none; }
  }
}

/* ══════════════════════════════════════════════════════════════
   DESIGN POLISH II — long titles, archival treatment, empty states
   ══════════════════════════════════════════════════════════════ */

/* ── Long type card titles in archive era grid ── */
.bi-types-era .bi-type-card__title {
  max-width: none;
  font-size: clamp(1.4rem, 2vw, 2.1rem);
  overflow-wrap: break-word;
  hyphens: auto;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* ── Long title reduction for very long names (>15 chars) ── */
.bi-types-era .bi-type-card__title:has(~ *) { }
.bi-type-card--archival .bi-types-era .bi-type-card__title,
.bi-types-era .bi-type-card__title {
  font-size: clamp(1.15rem, 1.75vw, 1.85rem);
}
.bi-types-era .bi-type-card--feature .bi-type-card__title {
  font-size: clamp(1.6rem, 2.5vw, 2.4rem);
}

/* ── Archival card variant — sepia/document treatment ── */
.bi-types-era .bi-type-card--archival .bi-type-card__img {
  filter: sepia(.45) brightness(.58) saturate(.65) contrast(1.14);
}
.bi-types-era .bi-type-card--archival:hover .bi-type-card__img {
  filter: sepia(.28) brightness(.72) saturate(.78) contrast(1.1);
}
.bi-types-era .bi-type-card--archival .bi-type-card__img::after {
  background:
    linear-gradient(180deg, hsl(var(--bg-hsl) / .12), hsl(var(--bg-hsl) / .28) 38%, hsl(var(--bg-hsl) / .94) 100%),
    linear-gradient(90deg, hsl(var(--bg-hsl) / .52), transparent 65%);
}

/* ── Archival badge — sits top-right of archival card image ── */
.bi-type-card__archival-badge {
  position: absolute;
  top: .75rem;
  right: .75rem;
  z-index: 4;
  font-family: var(--f-label);
  font-size: .42rem;
  font-weight: 700;
  letter-spacing: var(--bi-ls-overline, 1px);
  text-transform: uppercase;
  color: var(--gold);
  background: hsl(var(--bg-hsl) / .82);
  border: 1px solid hsl(var(--gold-hsl) / .32);
  padding: .22rem .55rem;
  backdrop-filter: blur(4px);
}

/* ── No-image premium empty state (replaces "No image" text) ── */
.bi-type-card__empty-state {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: .85rem;
}
.bi-type-card__empty-state::after {
  content: 'NO IMAGE';
  font-family: var(--f-label);
  font-size: .42rem;
  letter-spacing: var(--bi-ls-overline, 1px);
  text-transform: uppercase;
  color: hsl(var(--fg-hsl) / .18);
}

/* ── Type profile panel image — archival/gallery treatment ── */
.bi-type-profile__panel-image--gallery {
  position: relative;
  filter: sepia(.4) brightness(.6) saturate(.62) contrast(1.16);
}
.bi-type-profile__panel-image--gallery::after {
  content: 'ARCHIVAL DOCUMENT';
  position: absolute;
  bottom: .85rem;
  left: .85rem;
  font-family: var(--f-label);
  font-size: .42rem;
  font-weight: 700;
  letter-spacing: var(--bi-ls-overline, 1px);
  text-transform: uppercase;
  color: var(--gold);
  background: hsl(var(--bg-hsl) / .8);
  border: 1px solid hsl(var(--gold-hsl) / .35);
  padding: .24rem .62rem;
  pointer-events: none;
}

/* ── Long-title type profile — reduce h1 size to prevent ugly wrapping ── */
.bi-type-profile--long-title .bi-page-masthead__h1 {
  font-size: clamp(2.4rem, 5.5vw, 4.2rem);
  max-width: 14ch;
}

/* ── Stub placeholder description — muted, italic, smaller ── */
.bi-type-profile__stub {
  font-style: italic;
  font-size: .8rem;
  color: hsl(var(--fg-hsl) / .38) !important;
  border-left: 2px solid hsl(var(--gold-hsl) / .2);
  padding-left: .85rem;
  margin-top: .75rem;
}

/* ── bi-content body typography improvements ── */
.bi-type-profile .bi-content {
  font-size: .9rem;
  line-height: 1.88;
  color: hsl(var(--fg-hsl) / .72);
}
.bi-type-profile .bi-content p + p {
  margin-top: 1.15rem;
}
.bi-type-profile .bi-content p:first-of-type::first-letter {
  font-family: var(--f-display);
  font-size: 3.2rem;
  font-weight: 300;
  line-height: .82;
  float: left;
  margin: .06em .22em 0 0;
  color: var(--gold);
}

/* ── Homepage register preview grid — long title fix ── */
.bi-register-preview__title {
  max-width: none;
  overflow-wrap: break-word;
  hyphens: auto;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.bi-register-preview__item:not(.is-lead) .bi-register-preview__title {
  max-width: none;
  font-size: clamp(1.1rem, 1.6vw, 1.75rem);
  -webkit-line-clamp: 2;
}

/* ── Curated card long title fix ── */
.bi-curated-card__title {
  overflow-wrap: break-word;
  hyphens: auto;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* ── Register preview — hide "0 chassis" foot when empty ── */
.bi-register-preview__foot:not(:has(span + span)) span {
  justify-self: end;
}

/* ── Specs bar — hide zero-count items visually ── */
.bi-specs-bar__item:has(dd:empty),
.bi-specs-bar__item:has(dd:only-of-type) { }

/* ══════════════════════════════════════════════════════════════
   BUGATTI.COM-INSPIRED UI POLISH — v0.1.7
   ══════════════════════════════════════════════════════════════ */

/* ── 1. Pill / ghost CTA buttons (bugatti.com style) ── */
.bi-btn,
.bi-slider__explore {
  border-radius: 0;
}
.bi-btn {
  padding: .85rem 2.2rem;
}

/* ── 2. Sticky in-page section nav (type detail) ── */
.bi-section-nav {
  position: sticky;
  top: 0;
  z-index: 120;
  display: flex;
  justify-content: center;
  padding: .6rem 1rem;
  background: hsl(var(--bg-hsl) / .85);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border-bottom: 1px solid hsl(var(--gold-hsl) / .1);
}
.bi-section-nav__inner {
  display: inline-flex;
  align-items: center;
  gap: .25rem;
  background: hsl(var(--sur-hsl) / .9);
  border: 1px solid hsl(var(--gold-hsl) / .15);
  border-radius: 0;
  padding: .3rem .45rem;
}
.bi-section-nav__link {
  font-family: var(--f-label);
  font-size: .52rem;
  font-weight: 600;
  letter-spacing: var(--bi-ls-button, 1px);
  text-transform: uppercase;
  color: hsl(var(--fg-hsl) / .5);
  text-decoration: none;
  padding: .45rem 1.1rem;
  border-radius: 0;
  transition: background .18s, color .18s;
  white-space: nowrap;
}
.bi-section-nav__link:hover {
  color: hsl(var(--fg-hsl) / .9);
  background: hsl(var(--gold-hsl) / .08);
}
.bi-section-nav__link.is-active {
  background: hsl(var(--gold-hsl) / .12);
  color: var(--gold);
}
/* Separator dot */
.bi-section-nav__sep {
  width: 3px; height: 3px;
  border-radius: 0;
  background: hsl(var(--gold-hsl) / .2);
  flex-shrink: 0;
  margin: 0 .1rem;
}

/* ── 3. Archive hero — oversized stats ── */
.bi-types-archive__stats div strong {
  font-family: var(--f-display);
  font-size: clamp(3.5rem, 6vw, 6.5rem);
  font-weight: 300;
  line-height: .9;
  letter-spacing: -.02em;
  color: var(--gold);
  display: block;
}
.bi-types-archive__stats div span {
  font-family: var(--f-label);
  font-size: .48rem;
  letter-spacing: var(--bi-ls-overline, 1px);
  text-transform: uppercase;
  color: hsl(var(--fg-hsl) / .35);
  margin-top: .5rem;
  display: block;
}

/* ── 4. Type card "Open type" — pill ghost micro-button ── */
.bi-type-card__open {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  border: 1px solid hsl(var(--gold-hsl) / .25);
  border-radius: 0;
  padding: .28rem .9rem;
  font-size: .48rem;
  letter-spacing: var(--bi-ls-button, 1px);
  color: var(--gold);
  transition: border-color .18s, color .18s, background .18s;
  margin-top: .85rem;
}
.bi-type-card:hover .bi-type-card__open {
  border-color: var(--gold);
  color: var(--gold);
  background: hsl(var(--gold-hsl) / .06);
}

/* ══════════════════════════════════════════════════════════════
   LIGHT MODE — [data-theme="light"] on <html>
   ══════════════════════════════════════════════════════════════ */

/* ══════════════════════════════════════════════════════════════
   HOMEPAGE REDESIGN — Ken Burns · Parallax · Video · Sections
   ══════════════════════════════════════════════════════════════ */

/* ── Slide inner image div — Ken Burns + parallax layer ── */
.bi-slide__img {
  position: absolute;
  inset: -8%;
  background-size: cover;
  background-position: center 35%;
  will-change: transform;
}

@keyframes kenBurns {
  from { transform: scale(1.0) translate(0, 0); }
  to   { transform: scale(1.09) translate(-.6%, .4%); }
}

.bi-slide--active .bi-slide__img {
  animation: kenBurns 5.8s ease-out forwards;
  /* parallax shift via CSS vars set by JS on the parent .bi-slider */
  background-position:
    calc(50% + var(--mx, 0) * -14px)
    calc(35% + var(--my, 0) * -9px);
  transition: background-position .18s ease-out;
}

/* Remove old transform-based Ken Burns from the slide wrapper itself
   since the image div now handles it */
.bi-slide {
  background-image: none !important; /* image is on .bi-slide__img */
}
.bi-slide--active {
  transform: none;
  filter: brightness(1);
}
.bi-slide--prev .bi-slide__img {
  filter: blur(1.5px) brightness(.82);
  transform: scale(1.04);
  transition: transform .9s ease, filter .9s ease;
}
.bi-slide--prev {
  transform: none;
  filter: none;
}

/* Stronger left overlay for text legibility on any image */
.bi-slider__overlay {
  background:
    linear-gradient(to right,
      hsl(var(--bg-hsl) / .88) 0%,
      hsl(var(--bg-hsl) / .60) 28%,
      hsl(var(--bg-hsl) / .22) 55%,
      transparent 80%
    ),
    linear-gradient(to top,
      hsl(var(--bg-hsl) / .90) 0%,
      hsl(var(--bg-hsl) / .55) 18%,
      hsl(var(--bg-hsl) / .18) 40%,
      transparent 66%
    ),
    radial-gradient(circle at 24% 75%, hsl(var(--gold-hsl) / .18), transparent 26rem);
}

/* ── Video section ── */
.bi-fp-video {
  position: relative;
  background:
    radial-gradient(circle at 50% -4rem, hsl(var(--gold-hsl) / .1), transparent 32rem),
    linear-gradient(180deg, hsl(220 48% 5%) 0%, hsl(220 50% 3%) 100%);
  padding: clamp(4rem, 8vw, 7rem) 0;
  border-top: 1px solid hsl(var(--gold-hsl) / .1);
  border-bottom: 1px solid hsl(var(--gold-hsl) / .1);
  overflow: hidden;
}
.bi-fp-video::before {
  content: '';
  position: absolute;
  inset: 0;
  background:
    linear-gradient(90deg, hsl(var(--gold-hsl) / .04) 1px, transparent 1px),
    linear-gradient(180deg, hsl(var(--gold-hsl) / .03) 1px, transparent 1px);
  background-size: 9rem 9rem;
  pointer-events: none;
}
.bi-fp-video__inner {
  position: relative;
  z-index: 1;
  max-width: 1100px;
  margin: 0 auto;
  padding: 0 var(--bi-shell-gutter);
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 2.5rem;
}
.bi-fp-video__title {
  font-family: var(--f-display);
  font-size: clamp(2.4rem, 5vw, 4.5rem);
  font-weight: 400;
  line-height: 1.0;
  letter-spacing: .03em;
  color: var(--fg);
}
.bi-fp-video__title em {
  font-style: italic;
  color: var(--gold);
}
.bi-fp-video__embed {
  width: 100%;
  max-width: 900px;
  aspect-ratio: 16 / 9;
  position: relative;
  border: 1px solid hsl(var(--gold-hsl) / .18);
  box-shadow: 0 30px 80px hsl(220 45% 3% / .5);
  overflow: hidden;
  background: hsl(220 45% 4%);
}
.bi-fp-video__embed iframe,
.bi-fp-video__player {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: none;
  display: block;
  object-fit: cover;
}

/* YouTube lazy-load poster */
.bi-video-yt__poster {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: 1.5rem;
  cursor: pointer;
}
.bi-video-yt__poster::after {
  content: '';
  position: absolute;
  inset: 0;
  background: hsl(220 45% 4% / .45);
}
.bi-video-yt__play {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 5rem;
  height: 5rem;
  background: hsl(var(--gold-hsl) / .18);
  border: 1.5px solid var(--gold);
  border-radius: 0;
  color: var(--gold);
  transition: background .22s, transform .22s, box-shadow .22s;
  cursor: pointer;
}
.bi-video-yt__play svg {
  width: 2.4rem;
  height: 2.4rem;
}
.bi-video-yt__play:hover {
  background: hsl(var(--gold-hsl) / .28);
  transform: scale(1.08);
  box-shadow: 0 0 40px hsl(var(--gold-hsl) / .25);
}
.bi-video-yt__label {
  position: relative;
  z-index: 1;
  font-family: var(--f-label);
  font-size: .62rem;
  letter-spacing: var(--bi-ls-overline, 1px);
  text-transform: uppercase;
  color: hsl(var(--fg-hsl) / .65);
}

/* ── Era ribbon — clickable, image-backed ── */
.bi-era-ribbon {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(0, 1fr));
  overflow: hidden;
}
.bi-era-ribbon__item {
  display: block;
  position: relative;
  padding: 2rem 1.5rem;
  text-decoration: none;
  color: var(--fg);
  overflow: hidden;
  min-height: 11rem;
  background-size: cover;
  background-position: center;
  transition: transform .28s ease;
}
.bi-era-ribbon__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, hsl(220 45% 4% / .72) 0%, hsl(220 45% 4% / .88) 100%);
  transition: background .28s ease;
}
.bi-era-ribbon__item:hover .bi-era-ribbon__overlay {
  background: linear-gradient(180deg, hsl(220 45% 4% / .45) 0%, hsl(220 45% 4% / .72) 100%);
}
.bi-era-ribbon__item:hover {
  transform: translateY(-4px);
  z-index: 1;
}
.bi-era-ribbon__content {
  position: relative;
  z-index: 1;
}
/* Override to keep existing count/name/note styles working */
.bi-era-ribbon__count {
  position: relative;
  z-index: 1;
}
.bi-era-ribbon__name {
  position: relative;
  z-index: 1;
}
.bi-era-ribbon__note {
  position: relative;
  z-index: 1;
}

/* ── BCC Certification — visual flow redesign ── */
.bi-bcc-flow--visual {
  position: relative;
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 0;
}
@media (max-width: 900px) {
  .bi-bcc-flow--visual {
    grid-template-columns: repeat(3, 1fr);
  }
}
@media (max-width: 540px) {
  .bi-bcc-flow--visual {
    grid-template-columns: repeat(2, 1fr);
  }
}

/* Gold connecting line behind the steps */
.bi-bcc-flow--visual::before {
  content: '';
  position: absolute;
  top: 2.4rem;
  left: calc(100% / 12);
  right: calc(100% / 12);
  height: 1px;
  background: linear-gradient(90deg,
    transparent,
    hsl(var(--gold-hsl) / .35) 12%,
    hsl(var(--gold-hsl) / .35) 88%,
    transparent
  );
  z-index: 0;
  pointer-events: none;
}
@media (max-width: 900px) {
  .bi-bcc-flow--visual::before { display: none; }
}

.bi-bcc-flow__step--visual {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  padding: 0 1rem 2rem;
  gap: 1.1rem;
  cursor: default;
  transition: transform .22s ease;
}
.bi-bcc-flow__step--visual:hover {
  transform: translateY(-5px);
}

/* Gold circle with number */
.bi-bcc-flow__dot {
  width: 4rem;
  height: 4rem;
  border-radius: 0;
  border: 1.5px solid hsl(var(--gold-hsl) / .4);
  background: hsl(220 45% 5%);
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--f-display);
  font-size: 1.4rem;
  font-weight: 300;
  color: var(--gold);
  transition: border-color .22s, color .22s, background .22s, box-shadow .22s;
  flex-shrink: 0;
}
.bi-bcc-flow__step--visual:hover .bi-bcc-flow__dot {
  border-color: var(--gold);
  color: var(--gold);
  background: hsl(var(--gold-hsl) / .08);
  box-shadow: 0 0 24px hsl(var(--gold-hsl) / .2);
}

.bi-bcc-flow__step-name {
  font-family: var(--f-label);
  font-size: .68rem;
  letter-spacing: var(--bi-ls-overline, 1px);
  text-transform: uppercase;
  font-weight: 600;
  color: hsl(var(--fg-hsl) / .75);
  line-height: 1.4;
  max-width: 10ch;
  transition: color .22s;
}
.bi-bcc-flow__step--visual:hover .bi-bcc-flow__step-name {
  color: var(--fg);
}

/* ── Updated section headings ── */
.bi-register-preview__head .ch-sec-eyebrow {
  letter-spacing: var(--bi-ls-overline, 1px);
}

/* ── Closing section — stronger ── */
.bi-curated-closing {
  padding: clamp(4rem, 8vw, 7rem) 0;
}

/* ── Scroll reveal — base state for elements not yet revealed ── */
.bi-reveal {
  opacity: 0;
  will-change: opacity;
  transition: opacity .6s ease;
}
.bi-reveal.is-visible {
  opacity: 1;
  will-change: auto;
}
.bi-reveal--delay-1 { transition-delay: .1s; }
.bi-reveal--delay-2 { transition-delay: .2s; }
.bi-reveal--delay-3 { transition-delay: .32s; }
.bi-reveal--delay-4 { transition-delay: .46s; }
.bi-reveal--delay-5 { transition-delay: .62s; }
.bi-reveal--delay-6 { transition-delay: .8s; }

@media (max-width: 760px) {
  /* (3120) .bi-fp-video__inner's mobile gutter override removed — the clamp reaches
   1.25rem on its own around 500px and keeps going down to the 1rem floor. */
  .bi-bcc-flow--visual::before { display: none; }
  .bi-era-ribbon { grid-template-columns: repeat(2, 1fr); }
}

@media (prefers-reduced-motion: reduce) {
  .bi-slide__img { animation: none !important; }
  .bi-reveal { opacity: 1; transform: none; transition: none; }
  .bi-video-yt__play { transition: none; }
}

/* ══════════════════════════════════════════════════════════
   CHRONOLOGY TIMELINE
   ══════════════════════════════════════════════════════════ */
.bi-chron-timeline {
  position: relative;
  padding: 1.5rem 0 4rem;
  margin-top: 2rem;
}
.bi-chron-timeline::before {
  content: '';
  position: absolute;
  left: 50%;
  top: 0;
  bottom: 0;
  width: 1px;
  transform: translateX(-50%);
  background: linear-gradient(
    to bottom,
    transparent 0%,
    hsl(var(--gold-hsl) / .45) 5%,
    hsl(var(--gold-hsl) / .45) 95%,
    transparent 100%
  );
  pointer-events: none;
}

.bi-chron-item {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 88px minmax(0, 1fr);
  align-items: center;
  margin-bottom: 2.5rem;
}

.bi-chron-col--left {
  display: flex;
  justify-content: flex-end;
  padding-right: 1.1rem;
}
.bi-chron-col--center {
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  z-index: 2;
}
.bi-chron-col--right {
  display: flex;
  justify-content: flex-start;
  padding-left: 1.1rem;
}

/* Cards */
.bi-chron-card,
.bi-chron-types {
  background: var(--sur);
  border: 1px solid var(--border);
  padding: 1.35rem 1.4rem;
  width: 100%;
  max-width: 360px;
  transition: transform .28s cubic-bezier(.2,.8,.2,1), border-color .28s, box-shadow .28s;
  overflow: hidden;
}
.bi-chron-card:hover,
.bi-chron-types:hover {
  transform: translateY(-4px);
  border-color: hsl(var(--gold-hsl) / .4);
  box-shadow: 0 16px 48px hsl(220 45% 3% / .38);
}

/* Era thumbnail image inside the card */
.bi-chron-card__thumb {
  height: 140px;
  background-size: cover;
  background-position: center;
  margin: -1.35rem -1.4rem 1.1rem;
  width: calc(100% + 2.8rem);
  position: relative;
  transition: transform .55s cubic-bezier(.2,.8,.2,1), filter .3s;
  filter: brightness(.72) saturate(.9);
}
.bi-chron-card__thumb::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, var(--sur) 0%, transparent 65%);
}
.bi-chron-card:hover .bi-chron-card__thumb {
  transform: scale(1.04);
  filter: brightness(.82) saturate(1.05);
}

.bi-chron-card__eyebrow {
  font-family: var(--f-label);
  font-size: .6rem;
  letter-spacing: var(--bi-ls-overline, 1px);
  text-transform: uppercase;
  color: var(--gold);
  margin-bottom: .4rem;
}
.bi-chron-card__name {
  font-family: var(--f-display);
  font-size: 1.2rem;
  font-style: italic;
  font-weight: 400;
  color: var(--fg);
  line-height: 1.15;
  margin: 0 0 .6rem;
}
.bi-chron-card__desc {
  font-size: .77rem;
  color: var(--muted);
  line-height: 1.7;
  margin: 0;
}

/* Types panel */
.bi-chron-types__label {
  font-family: var(--f-label);
  font-size: .6rem;
  letter-spacing: var(--bi-ls-overline, 1px);
  text-transform: uppercase;
  color: var(--gold);
  margin-bottom: .6rem;
}
.bi-chron-types__list {
  display: flex;
  flex-direction: column;
  gap: .25rem;
  margin-bottom: .45rem;
}
.bi-chron-types__link {
  display: flex;
  align-items: center;
  font-family: var(--f-display);
  font-size: .95rem;
  font-style: italic;
  color: hsl(var(--fg-hsl) / .65);
  text-decoration: none;
  line-height: 1.3;
  transition: color .2s;
}
.bi-chron-types__link:hover { color: var(--fg); }
.bi-chron-types__more {
  font-size: .65rem;
  color: var(--muted2);
  font-family: var(--f-label);
  letter-spacing: .05em;
}

/* Year bubble */
.bi-chron-bubble {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 4.2rem;
  height: 4.2rem;
  border-radius: 0;
  background: hsl(var(--sur-hsl));
  box-shadow: 0 0 0 3px var(--gold);
  flex-shrink: 0;
  position: relative;
  z-index: 2;
  transition: box-shadow .3s cubic-bezier(.2,.8,.2,1), transform .3s cubic-bezier(.2,.8,.2,1);
}
.bi-chron-bubble span {
  font-family: var(--f-display);
  font-size: .78rem;
  font-style: italic;
  color: var(--gold);
  letter-spacing: .02em;
  line-height: 1.1;
  text-align: center;
}
.bi-chron-item:hover .bi-chron-bubble {
  box-shadow: 0 0 0 5px var(--gold), 0 0 24px hsl(var(--gold-hsl) / .38);
  transform: scale(1.08);
}

/* Type links — gold dash slides in on hover */
.bi-chron-types__link::before {
  content: '—';
  font-style: normal;
  font-family: var(--f-label);
  font-size: .58rem;
  color: var(--gold);
  width: 0;
  overflow: hidden;
  opacity: 0;
  flex-shrink: 0;
  transition: width .22s ease, opacity .22s ease, margin-right .22s ease;
  margin-right: 0;
  white-space: nowrap;
}
.bi-chron-types__link:hover::before {
  width: 1rem;
  opacity: 1;
  margin-right: .35rem;
}

/* Mobile: shift to left-rail layout */
@media (max-width: 700px) {
  .bi-chron-timeline::before {
    left: 2.75rem;
    transform: none;
  }
  .bi-chron-item {
    grid-template-columns: 5.5rem 1fr;
    grid-template-rows: auto auto;
    margin-bottom: 2rem;
  }
  .bi-chron-col--center {
    grid-column: 1;
    grid-row: 1 / 3;
    align-self: start;
    padding-top: .7rem;
  }
  .bi-chron-col--left {
    grid-column: 2;
    grid-row: 1;
    padding: 0 0 .7rem 1rem;
    justify-content: flex-start;
  }
  .bi-chron-col--right {
    grid-column: 2;
    grid-row: 2;
    padding: 0 0 0 1rem;
    justify-content: flex-start;
  }
  .bi-chron-card,
  .bi-chron-types {
    max-width: none;
  }
}

/* ══════════════════════════════════════════════════════════════
   CINEMATIC LAYOUT — Split panels, Era scroll, BCC sticky,
   Closing full-bleed  (v0.2.2)
   ══════════════════════════════════════════════════════════════ */

/* ── Split stage (Section I) ──────────────────────────────── */
/* ── Featured types grid (v0.3.5) ── */
.bi-feat-section {
  background: var(--bg);
  padding: 56px 0 clamp(3rem, 6vw, 5.5rem);
}
.bi-feat-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.75rem;
}
.bi-feat-card {
  display: flex;
  flex-direction: column;
  text-decoration: none;
  color: inherit;
  background: var(--sur);
  border: 1px solid hsl(var(--gold-hsl) / .1);
  overflow: hidden;
  position: relative;
  transition: transform .32s ease, box-shadow .32s ease, border-color .32s ease;
}
.bi-feat-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 20px 48px hsl(220 45% 2% / .55);
  border-color: hsl(var(--gold-hsl) / .35);
}
.bi-feat-card::after {
  content: '';
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 2px;
  background: var(--gold);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform .38s ease;
}
.bi-feat-card:hover::after { transform: scaleX(1); }

.bi-feat-card__photo {
  position: relative;
  height: 280px;
  background-color: hsl(220 40% 10%);
  flex-shrink: 0;
  overflow: hidden;
}
.bi-feat-card__photo-bg {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
  filter: var(--photo-grade);
  transform: scale(1.1);
  transition: transform .6s ease;
}
.bi-feat-card:hover .bi-feat-card__photo-bg { transform: scale(1.18); }
/* 869ejc16u: neutral "no photo" placeholder — same generic silhouette pattern
   as the chassis hero placeholder (.bdb-ch-hero__bg--placeholder), scaled
   down to fit the 280px card photo slot instead of a blank/dark box. */
.bi-feat-card__photo-placeholder {
  position: absolute;
  inset: 0;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: .5rem;
  background: radial-gradient(ellipse at 70% 40%, hsl(220 40% 14%) 0%, var(--sur) 60%);
}
.bi-feat-card__photo-placeholder svg {
  width: 2.75rem;
  height: auto;
  color: hsl(var(--gold-hsl) / .75);
}
.bi-feat-card__photo-placeholder span {
  font-size: .68rem;
  letter-spacing: .04em;
  color: hsl(var(--gold-hsl) / .5);
}
.bi-feat-card__photo-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    to bottom,
    transparent 40%,
    hsl(220 40% 8% / .6) 100%
  );
}
.bi-feat-card--empty {
  appearance: none;
  width: 100%;
  padding: 0;
  text-align: left;
  cursor: pointer;
}
.bi-feat-card--empty__photo {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  background:
    radial-gradient(circle at 50% 38%, hsl(var(--gold-hsl) / .12), transparent 44%),
    linear-gradient(160deg, hsl(var(--bg-hsl) / .98), hsl(var(--sur-2-hsl) / .94));
}
.bi-feat-card--empty__badge {
  position: absolute;
  top: 14px;
  left: 14px;
  font-size: .62rem;
  letter-spacing: var(--bi-ls-overline, 1px);
  text-transform: uppercase;
  color: hsl(var(--gold-hsl) / .85);
  border: 1px solid hsl(var(--gold-hsl) / .22);
  background: hsl(220 40% 8% / .72);
  padding: .34rem .48rem;
  border-radius: 0;
}
.bi-feat-card--empty__plus {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 4rem;
  height: 4rem;
  border-radius: 0;
  border: 1px dashed hsl(var(--gold-hsl) / .42);
  color: hsl(var(--gold-hsl) / .92);
  font-family: var(--f-display);
  font-size: 2.45rem;
  line-height: 1;
  background: hsl(var(--gold-hsl) / .04);
}
.bi-feat-card--empty:hover .bi-feat-card--empty__plus {
  background: hsl(var(--gold-hsl) / .12);
  border-color: hsl(var(--gold-hsl) / .62);
}
.bi-feat-card__ghost {
  position: absolute;
  bottom: -.08em;
  right: .1em;
  font-family: var(--f-display);
  font-size: 5.5rem;
  font-weight: 300;
  color: hsl(40 30% 92% / .055);
  line-height: 1;
  pointer-events: none;
  user-select: none;
}

.bi-feat-card__body {
  padding: 1.6rem 1.5rem 1.65rem;
  display: flex;
  flex-direction: column;
  gap: .65rem;
  flex: 1;
}
.bi-feat-card__eyebrow {
  font-family: var(--f-label);
  font-size: .68rem; /* 869etva9p: type · year label +.1rem (~1.6px) */
  letter-spacing: var(--bi-ls-overline, 1px);
  text-transform: uppercase;
  color: var(--gold);
  display: flex;
  align-items: center;
  gap: .5rem;
}
.bi-feat-card__dot {
  display: inline-block;
  width: 3px; height: 3px;
  border-radius: 0;
  background: var(--gold);
  opacity: .6;
}
.bi-feat-card__title {
  font-family: var(--f-display);
  /* 869etva9p (Joe/Martien 01-09): +.1rem (~1.6px) at both clamp ends —
     featured chassis labels read too small. */
  font-size: clamp(1.4rem, 2vw, 1.7rem);
  /* 3059 (Martien 09-09): italic read as "cursive" and was called out as part of
     the look he wants gone — plain upright name only. */
  font-style: normal;
  font-weight: 400;
  color: var(--fg);
  line-height: 1.1;
  margin: 0;
  transition: color .25s ease;
}
.bi-feat-card:hover .bi-feat-card__title { color: var(--gold); }
.bi-feat-card__summary {
  /* Running text (869etqyny): body copy = --f-body (Tinos), not --f-label. */
  font-family: var(--f-body, var(--f-label));
  font-size: .8rem;
  line-height: 1.7;
  color: hsl(40 20% 78% / .65);
  margin: 0;
  /* 3059: a short summary under the name — all detail lives on the detail page.
     Two lines, not one: the server-side cut (bi_feat_card_summary) already ends
     on a sentence/word boundary, so the clamp is only a backstop for a long word
     wrapping at a narrow card width. At 1 line it re-clipped that finished
     sentence mid-thought, which was the fragment Martien objected to. */
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  /* 3059: this is the baseline misalignment. With `flex:1` the summary absorbed
     the card's leftover height, so a card whose text happened to wrap to one
     line instead of two ended up shorter than its row siblings and its CTA sat
     off the shared baseline. Measured on the homepage: two cards with identical
     summary text differed by 26.5px purely because one wrapped to 2 lines and
     the other to 1. Sizing to content and letting the footer take the slack
     makes card height independent of wrap count. */
  flex: 0 1 auto;
}
/* 3059: the footer, not the summary, absorbs the leftover height, so every card's
   CTA pins to the bottom regardless of how much text sits above it. Note
   brand-home.css overrides this margin-top for .bi-brand-skin (active on the
   homepage), so that file needs the same margin-top:auto to stay aligned. */
.bi-feat-card__footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .75rem;
  padding-top: .4rem;
  border-top: 1px solid hsl(220 30% 14%);
  margin-top: auto;
}
.bi-feat-card__badge {
  font-family: var(--f-label);
  font-size: .56rem;
  letter-spacing: var(--bi-ls-overline, 1px);
  text-transform: uppercase;
  color: var(--gold);
  border: 1px solid hsl(var(--gold-hsl) / .28);
  padding: .22rem .55rem .18rem;
  border-radius: 0;
  white-space: nowrap;
  display: inline-flex;
  align-items: center;
  gap: .35rem;
}
.bi-feat-card__cta {
  display: inline-flex;
  align-items: center;
  gap: .3rem;
  font-family: var(--f-label);
  font-size: .68rem;
  letter-spacing: var(--bi-ls-button, 1px);
  text-transform: uppercase;
  color: var(--gold);
  white-space: nowrap;
  transition: letter-spacing .2s;
}
.bi-feat-card__cta i { font-style: normal; display: inline-block; transition: transform .25s ease; }
/* Hover widens tracking a touch beyond the 1px baseline as a deliberate
   affordance (869etqypa) — kept as a fixed px delta rather than the token
   since it's a transient interaction state, not the resting label style. */
.bi-feat-card:hover .bi-feat-card__cta { letter-spacing: 1.5px; }
.bi-feat-card:hover .bi-feat-card__cta i { transform: translateX(4px); }

@media (max-width: 900px) {
  .bi-feat-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 560px) {
  .bi-feat-grid { grid-template-columns: 1fr; gap: 1.25rem; }
  .bi-feat-card__photo { height: 200px; }
}

.bi-split-stage {
  background: var(--bg);
}

.bi-split-panel {
  position: relative;
  min-height: clamp(480px, 72vh, 820px);
  overflow: hidden;
}

/* photo-left: photo takes left 58 %, text right 42 % */
.bi-split-panel--photo-left {
  display: grid;
  grid-template-columns: 58fr 42fr;
}

/* photo-right: text left 42 %, photo right 58 % */
.bi-split-panel--photo-right {
  display: grid;
  grid-template-columns: 42fr 58fr;
}

/* full-bleed: photo is absolutely behind text */
.bi-split-panel--full {
  display: block;
}

/* Photo pane */
.bi-split-panel__photo {
  background-size: cover;
  background-position: center;
}

.bi-split-panel--photo-left  .bi-split-panel__photo { grid-column: 1; }
.bi-split-panel--photo-right .bi-split-panel__photo { grid-column: 2; grid-row: 1; }

.bi-split-panel--full .bi-split-panel__photo {
  position: absolute;
  inset: 0;
}

/* Gradient edge-bleed so photo bleeds into text column */
.bi-split-panel--photo-left .bi-split-panel__photo::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(to right, transparent 60%, var(--bg) 100%);
}
.bi-split-panel--photo-right .bi-split-panel__photo::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(to left, transparent 60%, var(--bg) 100%);
}

/* Overlay for full-bleed variant */
.bi-split-panel__overlay {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(to top,  hsl(var(--bg-hsl) / .88) 0%, transparent 55%),
    linear-gradient(to right, hsl(var(--bg-hsl) / .5)  0%, transparent 70%);
}

/* Text column */
.bi-split-panel__text {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: clamp(3rem, 7vw, 6rem) clamp(2rem, 5vw, 5rem);
}

.bi-split-panel--photo-left  .bi-split-panel__text { grid-column: 2; }
.bi-split-panel--photo-right .bi-split-panel__text { grid-column: 1; grid-row: 1; }

/* Ghost year number — large watermark behind text */
.bi-split-panel__ghost {
  position: absolute;
  top: -.1em;
  left: -.05em;
  font-family: var(--f-display);
  font-size: clamp(6rem, 18vw, 16rem);
  font-weight: 300;
  line-height: 1;
  color: hsl(var(--gold-hsl) / .07);
  pointer-events: none;
  user-select: none;
  white-space: nowrap;
}

/* Eyebrow: "ERA · YEAR" */
.bi-split-panel__eyebrow {
  font-family: var(--f-label);
  font-size: .6875rem;
  letter-spacing: var(--bi-ls-overline, 1px);
  text-transform: uppercase;
  color: var(--gold);
  display: flex;
  align-items: center;
  gap: .75rem;
  margin-bottom: 1.1rem;
}

.bi-split-panel__sep {
  display: inline-block;
  width: 1.5rem;
  height: 1px;
  background: var(--gold);
  flex-shrink: 0;
}

.bi-split-panel__title {
  font-family: var(--f-display);
  font-size: clamp(2.4rem, 5vw, 4.8rem);
  font-weight: 300;
  font-style: italic;
  line-height: 1.05;
  color: var(--fg);
  margin: 0 0 1.25rem;
  max-width: 14ch;
}

.bi-split-panel__summary {
  font-size: clamp(.875rem, 1.2vw, 1rem);
  color: hsl(var(--fg-hsl) / .62);
  line-height: 1.65;
  max-width: 40ch;
  margin: 0 0 1.5rem;
}

.bi-split-panel__badge {
  display: inline-block;
  font-family: var(--f-label);
  font-size: .625rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--gold);
  border: 1px solid hsl(var(--gold-hsl) / .22);
  padding: .3em .85em;
  border-radius: 0;
  margin-bottom: 1.5rem;
}

.bi-split-panel__cta {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  font-family: var(--f-label);
  font-size: .75rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--gold);
  text-decoration: none;
  border-bottom: 1px solid hsl(var(--gold-hsl) / .3);
  padding-bottom: .25rem;
  transition: gap .22s ease, border-color .22s ease;
  width: fit-content;
}
.bi-split-panel__cta:hover {
  gap: .9rem;
  border-color: var(--gold);
}

/* Stage bottom CTA row */
.bi-split-stage__cta {
  text-align: center;
  padding: 3rem 0 4rem;
}

/* Reveal animation */
.bi-split-panel.bi-reveal {
  opacity: 0;
  transform: translateY(28px);
  transition: opacity .7s ease, transform .7s ease;
}
.bi-split-panel.bi-reveal.is-visible {
  opacity: 1;
  transform: none;
}

/* ── Era horizontal scroll (Section II) ─────────────────── */
.bi-era-scroll {
  background: var(--bg);
  padding: clamp(4rem, 8vw, 7rem) 0 0;
}

.bi-era-scroll__header {
  display: grid;
  grid-template-columns: 72px 1fr;
  gap: 0 2rem;
  align-items: start;
  margin-bottom: 3rem;
}

.bi-era-scroll__track {
  display: flex;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scroll-behavior: smooth;
  -webkit-overflow-scrolling: touch;
  gap: 0;
  padding-bottom: 2px;
  /* hide scrollbar */
  scrollbar-width: none;
}
.bi-era-scroll__track::-webkit-scrollbar { display: none; }

/* Dragging cursor state added via JS */
.bi-era-scroll__track.is-dragging { cursor: grabbing; }
.bi-era-scroll__track:not(.is-dragging) { cursor: grab; }

.bi-era-panel {
  flex: 0 0 clamp(280px, 29vw, 400px);
  height: clamp(520px, 68vh, 660px);
  position: relative;
  scroll-snap-align: start;
  overflow: hidden;
  border-right: 1px solid hsl(var(--gold-hsl) / .08);
  transition: flex-basis .3s ease;
}
.bi-era-panel:hover { flex-basis: clamp(310px, 32vw, 440px); }

/* Background photo */
.bi-era-panel__photo {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
  transition: transform .6s ease;
}
.bi-era-panel:hover .bi-era-panel__photo { transform: scale(1.04); }

/* Gradient overlay — dark at bottom, translucent top */
.bi-era-panel__photo::after {
  content: '';
  position: absolute;
  inset: 0;
  background:
    linear-gradient(to top, hsl(var(--bg-hsl) / .92) 0%, hsl(var(--bg-hsl) / .45) 55%, transparent 100%);
}

/* Content */
.bi-era-panel__content {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  height: 100%;
  padding: clamp(1.5rem, 3vw, 2.25rem);
}

/* Big faded start year watermark */
.bi-era-panel__start-yr {
  font-family: var(--f-display);
  font-size: clamp(4.5rem, 10vw, 8rem);
  font-weight: 300;
  line-height: 1;
  color: hsl(var(--gold-hsl) / .14);
  letter-spacing: -.02em;
  margin-bottom: auto;
  user-select: none;
}

/* Era name — italic serif */
.bi-era-panel__name {
  font-family: var(--f-display);
  font-size: clamp(1.6rem, 2.8vw, 2.2rem);
  font-weight: 300;
  font-style: italic;
  color: var(--fg);
  line-height: 1.15;
  margin-bottom: .65rem;
}

/* Short description */
.bi-era-panel__desc {
  /* Running text (869etqyny): body copy = --f-body (Tinos), not --f-label. */
  font-family: var(--f-body, var(--f-label));
  font-size: .8125rem;
  color: hsl(var(--fg-hsl) / .55);
  line-height: 1.5;
  margin: 0 0 1rem;
  max-width: 28ch;
}

/* Type count badge */
.bi-era-panel__badge {
  font-family: var(--f-label);
  font-size: .625rem;
  letter-spacing: var(--bi-ls-overline, 1px);
  text-transform: uppercase;
  color: var(--gold);
  border: 1px solid hsl(var(--gold-hsl) / .18);
  padding: .28em .8em;
  border-radius: 0;
  display: inline-block;
  margin-bottom: .85rem;
  width: fit-content;
}

/* Type links */
.bi-era-panel__types {
  display: flex;
  flex-direction: column;
  gap: .3rem;
}

.bi-era-panel__link {
  font-family: var(--f-label);
  font-size: .75rem;
  color: hsl(var(--fg-hsl) / .55);
  text-decoration: none;
  display: flex;
  align-items: center;
  gap: .4rem;
  transition: color .2s ease, gap .2s ease;
}
.bi-era-panel__link::before {
  content: '—';
  color: hsl(var(--gold-hsl) / .4);
  font-size: .6rem;
  transition: color .2s ease;
}
.bi-era-panel__link:hover {
  color: var(--gold);
  gap: .65rem;
}
.bi-era-panel__link:hover::before { color: var(--gold); }

.bi-era-panel__more {
  font-family: var(--f-label);
  font-size: .6875rem;
  color: hsl(var(--fg-hsl) / .35);
  padding-top: .25rem;
}

/* Navigation arrows */
.bi-era-scroll__nav {
  display: flex;
  justify-content: flex-end;
  gap: .75rem;
  padding-top: 1.75rem;
  padding-bottom: 3rem;
}

.bi-era-scroll__arrow {
  width: 2.75rem;
  height: 2.75rem;
  border-radius: 0;
  border: 1px solid hsl(var(--gold-hsl) / .25);
  background: transparent;
  color: var(--gold);
  font-size: 1.4rem;
  line-height: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: border-color .2s ease, color .2s ease, background .2s ease;
}
.bi-era-scroll__arrow:hover {
  border-color: var(--gold);
  color: var(--fg);
  background: hsl(var(--gold-hsl) / .08);
}
.bi-era-scroll__arrow:disabled {
  opacity: .3;
  cursor: not-allowed;
}

/* ── BCC sticky section (Section III) ───────────────────── */
.bi-bcc-sticky-section {
  position: relative;
  padding: 1.5rem 0 clamp(4rem, 7vw, 6rem);
  background: var(--bg);
  border-top: 1px solid hsl(var(--gold-hsl) / .06);
  overflow: hidden;
}
.bi-bcc-sticky-inner {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: .8fr 1.6fr;
  gap: 4rem 5rem;
  /* (3120) Was 1440px with its own clamp(1.5rem, 4vw, 4rem) — the fourth
     shell on the site, and the closest to the right idea: it already knew
     the gutter should be a curve. Same idea, one set of numbers. */
  max-width: var(--bi-shell-maxw);
  margin: 0 auto;
  padding: 0 var(--bi-shell-gutter);
}

.bi-bcc-sticky-left {
  position: sticky;
  top: 7rem;
  align-self: start;
}

.bi-bcc-sticky-left .bi-editorial-head__index {
  font-family: var(--f-display);
  font-size: clamp(2.4rem, 5vw, 4.8rem);
  color: hsl(var(--gold-hsl) / .32);
  margin-bottom: .5rem;
}

.bi-bcc-sticky-left .ch-sec-eyebrow {
  margin-bottom: .75rem;
}

.bi-bcc-sticky-left .ch-sec-h2 {
  margin-bottom: 2rem;
  max-width: 14ch;
  font-size: clamp(2rem, 3.5vw, 3.2rem);
}

.bi-bcc-sticky-left .bi-editorial-cta__link {
  margin-top: 0;
}
/* (3119) The glow hover this button had here — a 28px gold halo plus a
   1px ring — was unique to the BCC panel and made the same button behave
   differently depending on which section it stood in. Buttons.css gives
   every CTA the one hover. */

.bi-bcc-sticky-right {
  display: flex;
  flex-direction: column;
  /* Nudge past the left column's oversized "III" index marker so the first
     card starts level with the heading text, not the numeral above it. */
  padding-top: clamp(1.5rem, 3vw, 2.6rem);
}

.bi-bcc-cards {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1rem;
}

.bi-bcc-card {
  position: relative;
  display: block;
  padding: 1.5rem 1.75rem 1.75rem 1.5rem;
  border: 1px solid hsl(var(--gold-hsl) / .18);
  border-radius: 0;
  text-decoration: none;
  transition: border-color .25s ease, transform .25s ease, box-shadow .25s ease;
}
.bi-bcc-card:hover {
  border-color: var(--gold);
  transform: translateY(-3px);
  box-shadow: 0 12px 26px hsl(220 45% 2% / .28);
}

.bi-bcc-card__num {
  display: block;
  font-family: var(--f-display);
  font-weight: 300;
  font-size: 1.7rem;
  color: hsl(var(--gold-hsl) / .45);
  line-height: 1;
  margin-bottom: .6rem;
}

.bi-bcc-card__name {
  display: block;
  font-family: var(--f-label);
  font-size: .7rem;
  letter-spacing: .13em;
  text-transform: uppercase;
  color: var(--fg);
  margin-bottom: .6rem;
  transition: color .25s ease;
}
.bi-bcc-card:hover .bi-bcc-card__name { color: var(--gold); }

.bi-bcc-card__desc {
  display: block;
  font-size: .875rem;
  color: hsl(var(--fg-hsl) / .5);
  line-height: 1.6;
  max-width: 46ch;
}

.bi-bcc-card__arrow {
  position: absolute;
  right: 1.75rem;
  bottom: 1.5rem;
  color: var(--gold);
  font-size: 1rem;
  transition: transform .25s ease, color .25s ease;
}
.bi-bcc-card:hover .bi-bcc-card__arrow {
  color: var(--gold);
  transform: translateX(4px);
}

/* Step 5 "BCC Certification" — the moment the certificate is actually issued, so it's
   the section's payoff (869egbck7). Subtle gold wash + a gem badge (icons.php's 'gem',
   already commented "official recognition / the certified result" but never wired up
   anywhere before this) rather than a loud badge — this is one card among six, not a
   separate callout. */
.bi-bcc-card--certified {
  border-color: hsl(var(--gold-hsl) / .4);
  background: linear-gradient(160deg, hsl(var(--gold-hsl) / .08), transparent 65%);
}
.bi-bcc-card--certified:hover {
  border-color: var(--gold);
}
.bi-bcc-card__gem {
  position: absolute;
  top: 1.5rem;
  right: 1.75rem;
  display: inline-flex;
  color: var(--gold);
  transition: color .25s ease;
}
.bi-bcc-card:hover .bi-bcc-card__gem {
  color: var(--gold);
}

/* Reveal for BCC cards — staggered one-by-one via .bi-reveal--delay-N */
.bi-bcc-card.bi-reveal {
  opacity: 0;
  transform: translateY(12px);
  transition: opacity .45s ease, transform .45s ease;
}
.bi-bcc-card.bi-reveal.is-visible {
  opacity: 1;
  transform: none;
}

/* Left column fades in from the left */
.bi-bcc-sticky-left.bi-reveal--fromleft {
  opacity: 0;
  transform: translateX(-24px);
  transition: opacity .5s ease, transform .5s ease;
}
.bi-bcc-sticky-left.bi-reveal--fromleft.is-visible {
  opacity: 1;
  transform: none;
}

/* ── Editorial head narrow variant (Section IV) ──────────── */
.bi-editorial-head--narrow {
  grid-template-columns: 72px 1fr;
}

@keyframes bi-closing-kenburns {
  from { transform: scale(1.1); }
  to   { transform: scale(1.2); }
}

/* ── Responsive — 1100px ─────────────────────────────────── */
@media (max-width: 1100px) {
  .bi-split-panel {
    min-height: clamp(400px, 60vh, 640px);
  }
  .bi-era-panel {
    flex-basis: clamp(260px, 40vw, 360px);
  }
  .bi-bcc-sticky-inner {
    gap: 3rem 4rem;
  }
  .bi-bcc-cards {
    grid-template-columns: repeat(2, 1fr);
  }
}

/* ── Responsive — 900px ──────────────────────────────────── */
@media (max-width: 900px) {
  /* Split panels stack: photo top, text below */
  .bi-split-panel--photo-left,
  .bi-split-panel--photo-right {
    display: flex;
    flex-direction: column;
    min-height: auto;
  }
  .bi-split-panel--photo-left  .bi-split-panel__photo,
  .bi-split-panel--photo-right .bi-split-panel__photo {
    height: 56vw;
    min-height: 280px;
    max-height: 420px;
    width: 100%;
    flex-shrink: 0;
  }
  .bi-split-panel--photo-left  .bi-split-panel__photo::after,
  .bi-split-panel--photo-right .bi-split-panel__photo::after {
    background: linear-gradient(to bottom, transparent 55%, var(--bg) 100%);
  }
  .bi-split-panel--photo-left  .bi-split-panel__text,
  .bi-split-panel--photo-right .bi-split-panel__text {
    padding-top: 2rem;
  }
  .bi-split-panel__ghost {
    font-size: clamp(4rem, 20vw, 8rem);
  }

  /* Era panels wider on tablet */
  .bi-era-panel { flex-basis: clamp(260px, 60vw, 380px); }
  .bi-era-scroll__header { grid-template-columns: 1fr; gap: 1rem; }
  .bi-era-scroll__header .bi-editorial-head__index { display: none; }

  /* BCC sticky becomes single column */
  .bi-bcc-sticky-inner {
    grid-template-columns: 1fr;
    gap: 2.5rem;
  }
  .bi-bcc-sticky-left {
    position: static;
  }
  .bi-bcc-sticky-right {
    padding-top: 0;
  }

  /* Narrow head becomes 1 col */
  .bi-editorial-head--narrow {
    grid-template-columns: 1fr;
  }

}

/* ── Responsive — 640px ──────────────────────────────────── */
@media (max-width: 640px) {
  .bi-split-panel--photo-left  .bi-split-panel__photo,
  .bi-split-panel--photo-right .bi-split-panel__photo { height: 70vw; }

  .bi-era-panel { flex-basis: 84vw; height: clamp(440px, 85vw, 580px); }
  .bi-era-panel__start-yr { font-size: clamp(3.5rem, 14vw, 6rem); }
  .bi-era-scroll__nav { justify-content: center; padding-bottom: 2.5rem; }

  .bi-bcc-cards { grid-template-columns: 1fr; }
  .bi-bcc-card { padding: 1.5rem 2.25rem 1.75rem 1.5rem; }
  .bi-bcc-card__num { font-size: 1.75rem; }

  .bi-split-panel__title { font-size: clamp(2rem, 9vw, 3.4rem); }
}

/* ── Reduced motion ──────────────────────────────────────── */
@media (prefers-reduced-motion: reduce) {
  .bi-split-panel.bi-reveal,
  .bi-bcc-card.bi-reveal,
  .bi-bcc-sticky-left.bi-reveal--fromleft {
    transition: none;
    opacity: 1;
    transform: none;
  }
  .bi-era-scroll__track { scroll-behavior: auto; }
}

/* ══════════════════════════════════════════════════════════════
   TYPES ARCHIVE — Classical / Modern filter tabs
   ══════════════════════════════════════════════════════════════ */

.bi-types-filter {
  display: flex;
  align-items: center;
  gap: .25rem;
  margin-bottom: 3.5rem;
  padding-bottom: 0;
  border-bottom: 1px solid hsl(var(--gold-hsl) / .12);
  overflow-x: auto;
  scrollbar-width: none;
}
.bi-types-filter::-webkit-scrollbar { display: none; }

.bi-types-filter__tab {
  font-family: var(--f-label);
  font-size: .6875rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: hsl(var(--fg-hsl) / .45);
  background: none;
  border: none;
  border-bottom: 2px solid transparent;
  padding: .9rem 1.4rem;
  cursor: pointer;
  display: flex;
  align-items: baseline;
  gap: .5rem;
  white-space: nowrap;
  transition: color .2s ease, border-color .2s ease;
  margin-bottom: -1px;
  position: relative;
}
.bi-types-filter__tab:hover {
  color: hsl(var(--fg-hsl) / .75);
}
.bi-types-filter__tab.is-active {
  color: var(--gold);
  border-bottom-color: var(--gold);
}

.bi-types-filter__count {
  font-size: .6rem;
  font-weight: 500;
  color: var(--gold);
  background: hsl(var(--gold-hsl) / .08);
  border: 1px solid hsl(var(--gold-hsl) / .15);
  padding: .15em .55em;
  border-radius: 0;
  letter-spacing: .06em;
  transition: color .2s ease, background .2s ease;
}
.bi-types-filter__tab.is-active .bi-types-filter__count {
  color: var(--gold);
  background: hsl(var(--gold-hsl) / .13);
  border-color: hsl(var(--gold-hsl) / .28);
}

.bi-types-filter__sub {
  font-family: var(--f-label);
  font-size: .5625rem;
  font-style: normal;
  letter-spacing: .08em;
  color: hsl(var(--fg-hsl) / .3);
  font-weight: 300;
}
.bi-types-filter__tab.is-active .bi-types-filter__sub {
  color: hsl(var(--gold-hsl) / .45);
}

/* Section hidden state when filtered */
.bi-types-era.is-filtered-out {
  display: none;
}

/* Divider between Classical and Modern when showing All */
.bi-types-era[data-category="modern"]:first-of-type,
.bi-types-era--modern-divider {
  /* handled by category label in JS */
}

/* Category label injected by JS */
.bi-types-cat-label {
  font-family: var(--f-display);
  font-size: clamp(2.4rem, 5vw, 4.4rem);
  font-weight: 300;
  font-style: italic;
  color: hsl(var(--fg-hsl) / .08);
  letter-spacing: -.01em;
  line-height: 1;
  margin: 3.5rem 0 .5rem;
  user-select: none;
  pointer-events: none;
}
.bi-types-cat-label span {
  display: block;
  font-family: var(--f-label);
  font-size: .625rem;
  letter-spacing: var(--bi-ls-overline, 1px);
  text-transform: uppercase;
  color: hsl(var(--gold-hsl) / .4);
  font-style: normal;
  font-weight: 400;
  margin-bottom: .6rem;
}

@media (max-width: 640px) {
  .bi-types-filter__tab { padding: .75rem .9rem; }
  .bi-types-filter__sub { display: none; }
}

/* ══════════════════════════════════════════════════════════════
   BODY STYLE (UITVOERING) PAGE  — bi-uit-*
   ══════════════════════════════════════════════════════════════ */

.bi-uit-page {
  padding-top: 2.5rem;
  padding-bottom: 5rem;
}

.bi-uit-page__crumb {
  margin-bottom: 0;
}

/* Masthead subtitle */
.bi-uit-masthead__sub {
  font-family: var(--f-label);
  font-size: .6875rem;
  letter-spacing: .13em;
  text-transform: uppercase;
  color: hsl(var(--fg-hsl) / .45);
  margin-top: .6rem;
  margin-bottom: 1rem;
}

/* Two-column page body */
.bi-uit-body {
  display: grid;
  grid-template-columns: 1fr 280px;
  gap: 4rem;
  align-items: start;
  padding: 4rem 0 3rem;
}

/* ── Body details spec block ── */
.bi-uit-spec {
  margin-bottom: 3.5rem;
  padding-bottom: 3rem;
  border-bottom: 1px solid hsl(var(--gold-hsl) / .1);
}

.bi-uit-spec__heading,
.bi-uit-story__heading,
.bi-uit-chassis-section__heading {
  font-family: var(--f-label);
  font-size: .625rem;
  letter-spacing: var(--bi-ls-overline, 1px);
  text-transform: uppercase;
  color: var(--gold);
  margin: 0 0 1.5rem;
  padding-bottom: .75rem;
  border-bottom: 1px solid hsl(var(--gold-hsl) / .12);
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.bi-uit-spec__dl {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0;
}

.bi-uit-spec__row {
  display: grid;
  grid-template-columns: 9rem 1fr;
  gap: 0 1.5rem;
  padding: .8rem 0;
  border-bottom: 1px solid hsl(var(--gold-hsl) / .07);
  align-items: baseline;
}
.bi-uit-spec__row:first-child { border-top: 1px solid hsl(var(--gold-hsl) / .07); }

.bi-uit-spec__row dt {
  font-family: var(--f-label);
  font-size: .625rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: hsl(var(--fg-hsl) / .4);
  padding-top: .05rem;
}

.bi-uit-spec__row dd {
  font-family: var(--f-label);
  font-size: .875rem;
  color: hsl(var(--fg-hsl) / .82);
  margin: 0;
  line-height: 1.5;
}

.bi-uit-spec__check {
  display: inline-block;
  font-size: .65rem;
  color: var(--gold);
  margin-left: .4rem;
}

/* ── Story section ── */
.bi-uit-story {
  margin-bottom: 3.5rem;
  padding-bottom: 3rem;
  border-bottom: 1px solid hsl(var(--gold-hsl) / .1);
}

.bi-uit-story__body {
  font-size: clamp(.9rem, 1.2vw, 1rem);
  line-height: 1.8;
  color: hsl(var(--fg-hsl) / .72);
  max-width: 68ch;
}

.bi-uit-story__body p { margin: 0 0 1.25rem; }
.bi-uit-story__body p:last-child { margin-bottom: 0; }

/* ── Chassis section ── */
.bi-uit-chassis-section {
  margin-bottom: 2rem;
}

.bi-uit-chassis-section__heading .bi-uit-chassis-section__count {
  font-family: var(--f-label);
  font-size: .5rem;
  letter-spacing: .12em;
  color: var(--gold);
  background: hsl(var(--gold-hsl) / .08);
  border: 1px solid hsl(var(--gold-hsl) / .15);
  padding: .2em .65em;
  border-radius: 0;
}

.bi-uit-chassis-section__note {
  font-family: var(--f-label);
  font-size: .6875rem;
  color: hsl(var(--fg-hsl) / .35);
  margin: -.75rem 0 1.25rem;
  letter-spacing: .04em;
  font-style: italic;
}

/* ── Chassis table ── */
.bi-uit-table {
  width: 100%;
  border-collapse: collapse;
  font-size: .8125rem;
}

.bi-uit-table thead th {
  font-family: var(--f-label);
  font-size: .5rem;
  letter-spacing: var(--bi-ls-overline, 1px);
  text-transform: uppercase;
  color: hsl(var(--fg-hsl) / .38);
  text-align: left;
  padding: .5rem .75rem;
  border-bottom: 1px solid hsl(var(--gold-hsl) / .14);
  font-weight: 400;
  white-space: nowrap;
}

.bi-uit-table tbody tr {
  border-bottom: 1px solid hsl(var(--fg-hsl) / .05);
  cursor: pointer;
  transition: background .15s ease;
}
.bi-uit-table tbody tr:hover {
  background: hsl(var(--sur-hsl));
}

.bi-uit-table tbody td {
  padding: .625rem .75rem;
  vertical-align: middle;
  color: hsl(var(--fg-hsl) / .62);
}

.bi-uit-table__chassis-link {
  font-family: var(--f-display);
  font-size: 1rem;
  font-weight: 400;
  letter-spacing: .04em;
  color: var(--gold);
  text-decoration: none;
}
.bi-uit-table__chassis-link:hover { color: var(--fg); }

.bi-uit-table__dim {
  color: hsl(var(--fg-hsl) / .35) !important;
  font-size: .75rem !important;
}

/* BCC status dots */
.bi-bcc-dot {
  font-family: var(--f-label);
  font-size: .5rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  padding: .2em .65em;
  border-radius: 0;
  display: inline-block;
}
.bi-bcc-dot--certified  { color: hsl(140 50% 55%); background: hsl(140 50% 55% / .1); border: 1px solid hsl(140 50% 55% / .25); }
.bi-bcc-dot--progress   { color: hsl(40 90% 65%);  background: hsl(40 90% 65% / .1);  border: 1px solid hsl(40 90% 65% / .25); }
.bi-bcc-dot--pending    { color: hsl(0 65% 60%);   background: hsl(0 65% 60% / .1);   border: 1px solid hsl(0 65% 60% / .25); }

/* Panel back link */
.bi-panel__back-link {
  font-family: var(--f-display);
  font-size: 1.05rem;
  letter-spacing: .05em;
  text-transform: uppercase;
  color: var(--gold);
  text-decoration: none;
}
.bi-panel__back-link:hover { color: var(--fg); }

/* ── Responsive ── */
@media (max-width: 900px) {
  .bi-uit-body {
    grid-template-columns: 1fr;
    gap: 2.5rem;
  }
  .bi-uit-spec__row {
    grid-template-columns: 7rem 1fr;
  }
  /* Sidebar moves below main on mobile */
  .bi-uit-sidebar { order: -1; }
}

@media (max-width: 640px) {
  .bi-uit-table thead th:nth-child(3),
  .bi-uit-table tbody td:nth-child(3),
  .bi-uit-table thead th:nth-child(4),
  .bi-uit-table tbody td:nth-child(4) { display: none; }
}

/* ══════════════════════════════════════════════════════════════
   CHASSIS PAGE — Tab nav + Provenance chain  (v0.2.5)
   ══════════════════════════════════════════════════════════════ */

/* ── Chassis tab navigation ──────────────────────────────── */
.bi-chassis-tabs {
  position: sticky;
  top: 0;
  z-index: 80;
  background: hsl(var(--bg-hsl) / .96);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border-bottom: 1px solid hsl(var(--gold-hsl) / .12);
}

.bi-chassis-tabs__inner {
  display: flex;
  align-items: center;
  gap: 0;
  height: 3rem;
  overflow-x: auto;
  scrollbar-width: none;
}
.bi-chassis-tabs__inner::-webkit-scrollbar { display: none; }

.bi-chassis-tabs__tab {
  font-family: var(--f-label);
  font-size: .625rem;
  letter-spacing: var(--bi-ls-button, 1px);
  text-transform: uppercase;
  color: hsl(var(--fg-hsl) / .42);
  text-decoration: none;
  padding: 0 1.25rem;
  height: 100%;
  display: inline-flex;
  align-items: center;
  border-bottom: 2px solid transparent;
  white-space: nowrap;
  transition: color .2s ease, border-color .2s ease;
  margin-bottom: -1px;
}
.bi-chassis-tabs__tab:hover {
  color: hsl(var(--fg-hsl) / .72);
}
.bi-chassis-tabs__tab.is-active {
  color: var(--gold);
  border-bottom-color: var(--gold);
}

.bi-chassis-tabs__sep {
  flex: 1;
}

.bi-chassis-tabs__id {
  font-family: var(--f-label);
  font-size: .5625rem;
  letter-spacing: var(--bi-ls-button, 1px);
  text-transform: uppercase;
  color: hsl(var(--fg-hsl) / .22);
  white-space: nowrap;
  padding-right: .5rem;
}

/* ── Provenance section wrapper ──────────────────────────── */
.bi-prov-section {
  border-top: 1px solid hsl(var(--gold-hsl) / .08);
}

.bi-prov-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 2rem;
  flex-wrap: wrap;
  margin-bottom: 2.5rem;
}

.bi-prov-motto {
  font-family: var(--f-display);
  font-size: clamp(1rem, 1.5vw, 1.2rem);
  font-style: italic;
  font-weight: 300;
  color: hsl(var(--fg-hsl) / .38);
  border-left: 2px solid hsl(var(--gold-hsl) / .25);
  padding-left: 1.25rem;
  margin: 0;
  max-width: 38ch;
  line-height: 1.5;
  align-self: flex-end;
}

/* ── Summary bar ─────────────────────────────────────────── */
.bi-prov-summary {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: .5rem 2rem;
  padding: 1.1rem 1.5rem;
  background: hsl(var(--sur-hsl));
  border: 1px solid hsl(var(--gold-hsl) / .1);
  border-radius: 0;
  margin-bottom: 3rem;
}

.bi-prov-summary__stat {
  display: flex;
  align-items: baseline;
  gap: .5rem;
}
.bi-prov-summary__stat strong {
  font-family: var(--f-display);
  font-size: 1.5rem;
  font-weight: 300;
  color: var(--fg);
  line-height: 1;
}
.bi-prov-summary__stat span {
  font-family: var(--f-label);
  font-size: .5625rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: hsl(var(--fg-hsl) / .45);
}
.bi-prov-summary__stat--gap strong { color: hsl(40 90% 65%); }

.bi-prov-summary__conf {
  font-family: var(--f-label);
  font-size: .5625rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  display: flex;
  align-items: center;
  gap: .4rem;
}
.bi-prov-summary__conf span {
  font-family: var(--f-display);
  font-size: 1.1rem;
  font-weight: 300;
  line-height: 1;
}
.bi-prov-summary__conf--high   { color: hsl(140 50% 52%); }
.bi-prov-summary__conf--medium { color: hsl(40 90% 62%); }
.bi-prov-summary__conf--low    { color: hsl(0 60% 58%); }

/* ── Provenance chain list ───────────────────────────────── */
.bi-prov-chain {
  list-style: none;
  padding: 0;
  margin: 0;
  position: relative;
}

/* Vertical line */
.bi-prov-chain::before {
  content: '';
  position: absolute;
  left: 11.5rem;    /* aligns with dot column */
  top: 0;
  bottom: 0;
  width: 1px;
  background: hsl(var(--gold-hsl) / .12);
}

/* Each entry */
.bi-prov-entry {
  display: grid;
  grid-template-columns: 11rem 1.5rem 1fr;
  gap: 0 1.5rem;
  align-items: start;
  padding: 2rem 0;
  border-bottom: 1px solid hsl(var(--gold-hsl) / .06);
  position: relative;
}
.bi-prov-entry:last-child { border-bottom: none; }
.bi-prov-entry--gap { opacity: .75; }

/* Date column */
.bi-prov-entry__when {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: .35rem;
  padding-top: .1rem;
}

.bi-prov-entry__date {
  font-family: var(--f-display);
  font-size: 1.1rem;
  font-weight: 300;
  color: var(--fg);
  line-height: 1.1;
  text-align: right;
}
.bi-prov-entry__date-to {
  font-family: var(--f-label);
  font-size: .6rem;
  color: hsl(var(--fg-hsl) / .38);
  letter-spacing: .06em;
  text-align: right;
}

/* Type badge */
.bi-prov-entry__badge {
  font-family: var(--f-label);
  font-size: .5rem;
  letter-spacing: var(--bi-ls-overline, 1px);
  text-transform: uppercase;
  padding: .22em .7em;
  border-radius: 0;
  display: inline-block;
  white-space: nowrap;
}
.bi-prov-entry__badge--owner       { color: var(--gold); background: hsl(var(--gold-hsl)/.1); border: 1px solid hsl(var(--gold-hsl)/.2); }
.bi-prov-entry__badge--delivery    { color: hsl(210 80% 65%); background: hsl(210 80% 65% / .08); border: 1px solid hsl(210 80% 65% / .2); }
.bi-prov-entry__badge--event       { color: hsl(280 60% 65%); background: hsl(280 60% 65% / .08); border: 1px solid hsl(280 60% 65% / .2); }
.bi-prov-entry__badge--gap         { color: hsl(40 90% 62%); background: hsl(40 90% 62% / .08); border: 1px solid hsl(40 90% 62% / .2); }
.bi-prov-entry__badge--maintenance,
.bi-prov-entry__badge--restoration { color: hsl(190 65% 55%); background: hsl(190 65% 55% / .08); border: 1px solid hsl(190 65% 55% / .2); }
.bi-prov-entry__badge--inspection  { color: hsl(140 50% 52%); background: hsl(140 50% 52% / .08); border: 1px solid hsl(140 50% 52% / .2); }

/* Connector dot */
.bi-prov-entry__dot {
  width: 9px;
  height: 9px;
  border-radius: 0;
  border: 1px solid hsl(var(--gold-hsl) / .45);
  background: var(--bg);
  margin-top: .35rem;
  position: relative;
  z-index: 1;
  flex-shrink: 0;
  justify-self: center;
  transition: border-color .2s ease, background .2s ease;
}
.bi-prov-entry:hover .bi-prov-entry__dot {
  border-color: var(--gold);
  background: hsl(var(--gold-hsl) / .15);
}
.bi-prov-entry--gap .bi-prov-entry__dot {
  border-style: dashed;
  border-color: hsl(40 90% 62% / .4);
}

/* Content column */
.bi-prov-entry__body {
  padding-bottom: .5rem;
}

.bi-prov-entry__name {
  font-family: var(--f-display);
  font-size: clamp(1.2rem, 2vw, 1.6rem);
  font-weight: 300;
  color: var(--fg);
  margin: 0 0 .3rem;
  line-height: 1.15;
}
.bi-prov-entry__name--gap {
  color: hsl(var(--fg-hsl) / .55);
  font-style: italic;
}

.bi-prov-entry__location {
  font-family: var(--f-label);
  font-size: .6875rem;
  color: hsl(var(--fg-hsl) / .45);
  letter-spacing: .06em;
  margin-bottom: .6rem;
}

.bi-prov-entry__notes {
  font-size: .875rem;
  color: hsl(var(--fg-hsl) / .58);
  line-height: 1.65;
  max-width: 60ch;
  margin: .5rem 0 .75rem;
}

.bi-prov-entry__gap-note {
  font-size: .875rem;
  font-style: italic;
  color: hsl(var(--fg-hsl) / .38);
  line-height: 1.6;
  max-width: 54ch;
  margin: .35rem 0 .75rem;
  padding-left: .875rem;
  border-left: 2px solid hsl(40 90% 62% / .25);
}

/* Meta row */
.bi-prov-entry__meta {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: .4rem 1rem;
  margin-top: .5rem;
}

.bi-prov-entry__source {
  font-family: var(--f-label);
  font-size: .5625rem;
  color: hsl(var(--fg-hsl) / .35);
  letter-spacing: .06em;
}

.bi-prov-entry__conf {
  font-family: var(--f-label);
  font-size: .5rem;
  letter-spacing: var(--bi-ls-overline, 1px);
  text-transform: uppercase;
  padding: .18em .6em;
  border-radius: 0;
}
.bi-prov-entry__conf--high   { color: hsl(140 50% 52%); background: hsl(140 50% 52% / .1); border: 1px solid hsl(140 50% 52% / .2); }
.bi-prov-entry__conf--medium { color: hsl(40 90% 62%);  background: hsl(40 90% 62% / .1);  border: 1px solid hsl(40 90% 62% / .2); }
.bi-prov-entry__conf--low    { color: hsl(0 60% 58%);   background: hsl(0 60% 58% / .1);   border: 1px solid hsl(0 60% 58% / .2); }

/* ── Empty state ─────────────────────────────────────────── */
.bi-prov-empty {
  text-align: center;
  max-width: 480px;
  margin: 0 auto;
  padding: 4rem 0 5rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1rem;
}

.bi-prov-empty__icon {
  opacity: .5;
  margin-bottom: .5rem;
}

.bi-prov-empty__h {
  font-family: var(--f-display);
  font-size: 1.5rem;
  font-weight: 300;
  color: hsl(var(--fg-hsl) / .55);
  margin: 0;
}

.bi-prov-empty__p {
  font-size: .875rem;
  color: hsl(var(--fg-hsl) / .38);
  line-height: 1.7;
  margin: 0;
  max-width: 38ch;
}

.bi-prov-empty__motto {
  font-family: var(--f-display);
  font-style: italic;
  font-size: 1rem;
  color: hsl(var(--fg-hsl) / .28);
  border-top: 1px solid hsl(var(--gold-hsl) / .1);
  padding-top: 1rem;
  margin: .5rem 0 0;
  max-width: 36ch;
}

/* ── Reveal for provenance entries ───────────────────────── */
.bi-prov-entry.bi-reveal {
  opacity: 0;
  transform: translateY(16px);
  transition: opacity .5s ease, transform .5s ease;
}
.bi-prov-entry.bi-reveal.is-visible {
  opacity: 1;
  transform: none;
}
.bi-prov-entry--gap.bi-reveal.is-visible { opacity: .75; }

/* ── Responsive ──────────────────────────────────────────── */
@media (max-width: 860px) {
  .bi-prov-chain::before { left: 0; }
  .bi-prov-entry {
    grid-template-columns: 1fr;
    grid-template-rows: auto auto auto;
    padding: 1.5rem 0 1.5rem 1.5rem;
    border-left: 1px solid hsl(var(--gold-hsl) / .12);
  }
  .bi-prov-entry__when { flex-direction: row; align-items: center; flex-wrap: wrap; gap: .4rem .75rem; }
  .bi-prov-entry__date { font-size: .875rem; text-align: left; }
  .bi-prov-entry__dot  { display: none; }
  .bi-prov-header { flex-direction: column; gap: 1.25rem; }
  .bi-prov-motto  { align-self: auto; }
}

@media (max-width: 640px) {
  .bi-chassis-tabs__id { display: none; }
  .bi-prov-summary { gap: .5rem 1rem; padding: .875rem 1rem; }
}

/* JS-driven active tab class (set by initChassisTabNav) */

/* ══════════════════════════════════════════════════════════════
   VARIANT PAGE — Body styles + Provenance  (v0.2.6)
   ══════════════════════════════════════════════════════════════ */

/* Tab count badge */
.bi-var-tabs__count {
  font-family: var(--f-label);
  font-size: .5rem;
  letter-spacing: .1em;
  color: var(--gold);
  background: hsl(var(--gold-hsl) / .08);
  border: 1px solid hsl(var(--gold-hsl) / .15);
  padding: .15em .5em;
  border-radius: 0;
  margin-left: .35rem;
  vertical-align: middle;
}

/* Section wrapper */
.bi-var-page {
  padding-top: 2rem;
  padding-bottom: 0;
}

.bi-var-page__crumb { margin-bottom: 0; }

.bi-var-section {
  padding: clamp(3.5rem, 7vw, 6rem) 0;
  border-top: 1px solid hsl(var(--gold-hsl) / .07);
}

.bi-var-section--overview { border-top: none; }

/* Section header */
.bi-var-section__head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 2rem;
  flex-wrap: wrap;
  margin-bottom: 3rem;
}

.bi-var-section__desc {
  /* Running text (869etqyny): body copy = --f-body (Tinos), not --f-label. */
  font-family: var(--f-body, var(--f-label));
  font-size: .8125rem;
  color: hsl(var(--fg-hsl) / .42);
  line-height: 1.65;
  max-width: 44ch;
  margin: 0;
  align-self: flex-end;
}

/* Overview two-col */
.bi-var-overview-body {
  display: grid;
  grid-template-columns: 1fr 280px;
  gap: 3rem;
  align-items: start;
  padding: 3rem 0 2rem;
}

/* ── Body style card list ────────────────────────────────── */
.bi-var-bs-list {
  display: flex;
  flex-direction: column;
  gap: 0;
}

.bi-var-bs-card {
  display: grid;
  grid-template-columns: 340px 1fr;
  min-height: 280px;
  border-bottom: 1px solid hsl(var(--gold-hsl) / .08);
}
.bi-var-bs-card:first-child { border-top: 1px solid hsl(var(--gold-hsl) / .08); }

/* Alternate photo side */
.bi-var-bs-card:nth-child(even) {
  grid-template-columns: 1fr 340px;
}
.bi-var-bs-card:nth-child(even) .bi-var-bs-card__photo { order: 2; }
.bi-var-bs-card:nth-child(even) .bi-var-bs-card__content { order: 1; }

/* Photo pane */
.bi-var-bs-card__photo {
  position: relative;
  overflow: hidden;
  min-height: 260px;
}

.bi-var-bs-card__photo-bg {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
  transition: transform .6s ease;
}
.bi-var-bs-card:hover .bi-var-bs-card__photo-bg { transform: scale(1.04); }

.bi-var-bs-card__photo-bg--empty {
  background: hsl(var(--sur2-hsl));
  display: flex;
  align-items: center;
  justify-content: center;
}
.bi-var-bs-card__photo-bg--empty span {
  font-family: var(--f-label);
  font-size: .5rem;
  letter-spacing: var(--bi-ls-overline, 1px);
  text-transform: uppercase;
  color: hsl(var(--fg-hsl) / .2);
}

.bi-var-bs-card__photo-link {
  position: absolute;
  bottom: 1rem;
  left: 1rem;
  font-family: var(--f-label);
  font-size: .5625rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--gold);
  text-decoration: none;
  background: hsl(var(--bg-hsl) / .85);
  padding: .35em .85em;
  border: 1px solid hsl(var(--gold-hsl) / .25);
  transition: background .2s ease, border-color .2s ease;
}
.bi-var-bs-card__photo-link:hover {
  background: hsl(var(--bg-hsl) / .95);
  border-color: var(--gold);
}

/* Content pane */
.bi-var-bs-card__content {
  padding: clamp(1.5rem, 3vw, 2.5rem);
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
}

/* Card header */
.bi-var-bs-card__header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
}

.bi-var-bs-card__name {
  font-family: var(--f-display);
  font-size: clamp(1.4rem, 2.5vw, 2rem);
  font-weight: 300;
  font-style: italic;
  color: var(--fg);
  margin: 0 0 .25rem;
  line-height: 1.1;
}

.bi-var-bs-card__code {
  font-family: var(--f-label);
  font-size: .5625rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--gold);
  background: hsl(var(--gold-hsl) / .07);
  border: 1px solid hsl(var(--gold-hsl) / .15);
  padding: .2em .65em;
  border-radius: 0;
  display: inline-block;
}

.bi-var-bs-card__count {
  font-family: var(--f-label);
  font-size: .5625rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: hsl(var(--fg-hsl) / .38);
  white-space: nowrap;
  padding-top: .35rem;
}

/* Spec table inside body style card */
.bi-var-bs-card__spec {
  display: grid;
  gap: 0;
  border-top: 1px solid hsl(var(--gold-hsl) / .08);
  border-bottom: 1px solid hsl(var(--gold-hsl) / .08);
  padding: .5rem 0;
}

.bi-var-bs-card__spec-row {
  display: grid;
  grid-template-columns: 6.5rem 1fr;
  gap: 0 1rem;
  padding: .45rem 0;
  border-bottom: 1px solid hsl(var(--gold-hsl) / .05);
  align-items: baseline;
}
.bi-var-bs-card__spec-row:last-child { border-bottom: none; }

.bi-var-bs-card__spec-row dt {
  font-family: var(--f-label);
  font-size: .5rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: hsl(var(--fg-hsl) / .35);
}
.bi-var-bs-card__spec-row dd {
  font-family: var(--f-label);
  font-size: .8125rem;
  color: hsl(var(--fg-hsl) / .72);
  margin: 0;
}

/* Mini chassis list inside body style card */
.bi-var-bs-card__chassis { margin-top: auto; }

.bi-var-bs-card__chassis-head {
  font-family: var(--f-label);
  font-size: .5rem;
  letter-spacing: var(--bi-ls-overline, 1px);
  text-transform: uppercase;
  color: hsl(var(--fg-hsl) / .3);
  margin-bottom: .5rem;
}

.bi-var-bs-card__chassis-list {
  display: flex;
  flex-direction: column;
  gap: .1rem;
}

.bi-var-bs-card__chassis-row {
  display: flex;
  align-items: center;
  gap: .75rem;
  padding: .35rem .5rem;
  text-decoration: none;
  border-radius: 0;
  transition: background .15s ease;
}
.bi-var-bs-card__chassis-row:hover { background: hsl(var(--sur-hsl)); }

.bi-var-bs-card__chassis-nr {
  font-family: var(--f-display);
  font-size: .9375rem;
  color: var(--gold);
  letter-spacing: .04em;
  min-width: 4rem;
}

.bi-var-bs-card__chassis-cust {
  font-family: var(--f-label);
  font-size: .75rem;
  color: hsl(var(--fg-hsl) / .45);
  flex: 1;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.bi-var-bs-card__chassis-more {
  font-family: var(--f-label);
  font-size: .5625rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: hsl(var(--gold-hsl) / .45);
  text-decoration: none;
  padding: .4rem .5rem;
  display: inline-block;
  transition: color .2s ease;
}
.bi-var-bs-card__chassis-more:hover { color: var(--gold); }

/* Reveal for body style cards */
.bi-var-bs-card.bi-reveal {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity .6s ease, transform .6s ease;
}
.bi-var-bs-card.bi-reveal.is-visible { opacity: 1; transform: none; }

/* ── Per-chassis provenance block ────────────────────────── */
.bi-var-prov-chassis {
  margin-bottom: 3.5rem;
}

.bi-var-prov-chassis__head {
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: .5rem 1.5rem;
  padding-bottom: .875rem;
  border-bottom: 1px solid hsl(var(--gold-hsl) / .12);
  margin-bottom: 0;
}

.bi-var-prov-chassis__link {
  font-family: var(--f-display);
  font-size: clamp(1.2rem, 2vw, 1.6rem);
  font-weight: 300;
  color: var(--gold);
  text-decoration: none;
  letter-spacing: .03em;
}
.bi-var-prov-chassis__link:hover { color: var(--fg); }

.bi-var-prov-chassis__meta {
  display: flex;
  gap: .75rem;
}
.bi-var-prov-chassis__meta span {
  font-family: var(--f-label);
  font-size: .6rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: hsl(var(--fg-hsl) / .35);
}
.bi-var-prov-chassis__meta span + span::before {
  content: '·';
  margin-right: .75rem;
  opacity: .4;
}

.bi-var-prov-chassis__conf {
  display: flex;
  align-items: center;
  gap: .75rem;
  margin-left: auto;
}
.bi-var-prov-chassis__conf span {
  font-family: var(--f-label);
  font-size: .5rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: hsl(var(--fg-hsl) / .35);
}
.bi-var-prov-chassis__conf .bi-prov-summary__conf--high   { color: hsl(140 50% 52%); }
.bi-var-prov-chassis__conf .bi-prov-summary__conf--medium { color: hsl(40 90% 62%); }
.bi-var-prov-chassis__conf .bi-prov-summary__conf--low    { color: hsl(0 60% 58%); }
.bi-var-prov-chassis__conf .bi-prov-summary__conf--gap    { color: hsl(40 90% 62%); }

.bi-var-prov-chain {
  margin-bottom: .75rem;
}

.bi-var-prov-chassis__full {
  font-family: var(--f-label);
  font-size: .5625rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: hsl(var(--gold-hsl) / .45);
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  margin-top: .5rem;
  transition: color .2s ease;
}
.bi-var-prov-chassis__full:hover { color: var(--gold); }

/* Reveal for provenance chassis blocks */
.bi-var-prov-chassis.bi-reveal {
  opacity: 0;
  transform: translateY(16px);
  transition: opacity .55s ease, transform .55s ease;
}
.bi-var-prov-chassis.bi-reveal.is-visible { opacity: 1; transform: none; }

/* ── Responsive ──────────────────────────────────────────── */
@media (max-width: 1000px) {
  .bi-var-bs-card,
  .bi-var-bs-card:nth-child(even) {
    grid-template-columns: 1fr;
  }
  .bi-var-bs-card__photo { min-height: 220px; }
  .bi-var-bs-card:nth-child(even) .bi-var-bs-card__photo { order: 0; }
  .bi-var-bs-card:nth-child(even) .bi-var-bs-card__content { order: 0; }
  .bi-var-overview-body { grid-template-columns: 1fr; }
}

@media (max-width: 760px) {
  .bi-var-section__head { flex-direction: column; gap: 1rem; }
  .bi-var-prov-chassis__conf { display: none; }
  .bi-var-bs-card__spec-row { grid-template-columns: 5.5rem 1fr; }
}




/* ══════════════════════════════════════════════════════════════
   TYPE PAGE REDESIGN — tab panels + photo strips  (v0.2.7)
   ══════════════════════════════════════════════════════════════ */

/* ── Hero ──────────────────────────────────────────────────── */
.bi-tp-hero {
  position: relative;
  height: 70vh; min-height: 500px;
  display: flex; flex-direction: column; justify-content: flex-end;
  overflow: hidden;
}
.bi-tp-hero__bg {
  position: absolute; inset: 0;
  background-size: cover; background-position: center;
  transition: transform .8s ease;
}
.bi-tp-hero:hover .bi-tp-hero__bg { transform: scale(1.025); }
.bi-tp-hero__veil {
  position: absolute; inset: 0;
  background: linear-gradient(to top,
    hsl(220 45% 4% / .95) 0%,
    hsl(220 45% 6% / .55) 40%,
    hsl(220 45% 6% / .1)  100%);
}
.bi-tp-hero__content {
  position: relative; z-index: 1;
  padding-top: 2rem; padding-bottom: 2.75rem;
}
.bi-tp-hero__crumb { margin-bottom: 1.75rem; }
.bi-tp-hero__label {
  font-family: var(--f-label); font-size: .5625rem;
  letter-spacing: var(--bi-ls-overline, 1px); text-transform: uppercase;
  color: var(--gold); margin-bottom: .5rem;
}
.bi-tp-hero__h1 {
  font-family: var(--f-display);
  font-size: clamp(2.75rem, 6.5vw, 5.5rem);
  font-weight: 300; line-height: 1.02;
  color: var(--fg); margin: 0 0 .5rem;
}
.bi-tp-hero__year {
  font-family: var(--f-label); font-size: .625rem;
  letter-spacing: var(--bi-ls-overline, 1px); text-transform: uppercase;
  color: hsl(var(--fg-hsl) / .4);
}
.bi-tp-hero__stats {
  display: flex; gap: 2.5rem;
  margin-top: 2rem; padding-top: 1.5rem;
  border-top: 1px solid hsl(var(--gold-hsl) / .2);
}
.bi-tp-hero__stat { display: flex; flex-direction: column; }
.bi-tp-hero__stat-n {
  font-family: var(--f-display); font-size: 2.25rem;
  font-weight: 300; line-height: 1; color: var(--gold);
}
.bi-tp-hero__stat-l {
  font-family: var(--f-label); font-size: .5rem;
  letter-spacing: var(--bi-ls-overline, 1px); text-transform: uppercase;
  color: hsl(var(--fg-hsl) / .38); margin-top: .3rem;
}

/* ── Tab nav ────────────────────────────────────────────────── */
.bi-tp-tabnav {
  position: sticky; top: 56px; z-index: 90;
  background: hsl(var(--bg-hsl));
  border-bottom: 1px solid hsl(var(--gold-hsl) / .12);
}
.bi-tp-tabnav__inner {
  display: flex; gap: 0; overflow-x: auto; scrollbar-width: none; align-items: stretch;
}
.bi-tp-tabnav__inner::-webkit-scrollbar { display: none; }
.bi-tp-tabnav__btn {
  flex-shrink: 0; padding: .9rem 1.5rem;
  font-family: var(--f-label); font-size: .5625rem;
  letter-spacing: var(--bi-ls-button, 1px); text-transform: uppercase;
  color: hsl(var(--fg-hsl) / .38);
  background: none; border: none; border-bottom: 2px solid transparent;
  cursor: pointer; display: flex; align-items: center; gap: .45rem;
  transition: color .2s, border-color .2s;
}
.bi-tp-tabnav__btn.is-active  { color: var(--gold); border-bottom-color: var(--gold); }
.bi-tp-tabnav__btn:hover:not(.is-active) { color: hsl(var(--fg-hsl) / .7); }
.bi-tp-tabnav__badge {
  font-size: .45rem; letter-spacing: .1em;
  background: hsl(var(--gold-hsl) / .12); color: var(--gold);
  padding: .12rem .45rem; border-radius: 0;
}
.bi-tp-tabnav__all {
  margin-left: auto; padding: .9rem 1.5rem;
  font-family: var(--f-label); font-size: .5rem;
  letter-spacing: var(--bi-ls-button, 1px); text-transform: uppercase;
  color: hsl(var(--fg-hsl) / .3); text-decoration: none;
  align-self: center; flex-shrink: 0; transition: color .2s;
}
.bi-tp-tabnav__all:hover { color: var(--gold); }

/* ── Panels ─────────────────────────────────────────────────── */
.bi-tp-panel { display: none; }
.bi-tp-panel.is-active { display: block; }

/* ── Overview specs bar ─────────────────────────────────────── */
.bi-tp-specs {
  display: flex; flex-wrap: wrap; gap: 0; margin: 0; padding: 0;
  border-top: 1px solid hsl(var(--gold-hsl) / .1);
  border-bottom: 1px solid hsl(var(--gold-hsl) / .1);
}
.bi-tp-specs__item {
  display: flex; flex-direction: column;
  padding: .9rem 1.75rem; gap: .2rem;
  border-right: 1px solid hsl(var(--gold-hsl) / .1);
}
.bi-tp-specs__item:last-child { border-right: none; }
.bi-tp-specs__item dt {
  font-family: var(--f-label); font-size: .45rem;
  letter-spacing: var(--bi-ls-overline, 1px); text-transform: uppercase;
  color: hsl(var(--fg-hsl) / .32); margin: 0;
}
.bi-tp-specs__item dd {
  font-family: var(--f-display); font-size: 1.0625rem;
  font-weight: 300; color: var(--fg); margin: 0;
}

/* ── Overview split layout ──────────────────────────────────── */
.bi-tp-ov { padding-top: 3rem; padding-bottom: 4.5rem; }
.bi-tp-ov__split {
  display: grid; grid-template-columns: 1fr 272px;
  gap: 3.5rem; align-items: start; margin-top: 3rem;
}
.bi-tp-ov__editorial { min-width: 0; }
.bi-tp-ov__strip {
  display: flex; flex-direction: column; gap: .625rem;
  position: sticky; top: 120px;
}
.bi-tp-ov__strip-img { aspect-ratio: 4/3; overflow: hidden; background: hsl(220 40% 10%); }
.bi-tp-ov__strip-img img {
  width: 100%; height: 100%; object-fit: cover; display: block;
  transition: transform .4s ease;
}
.bi-tp-ov__strip-img:hover img { transform: scale(1.04); }
.bi-tp-ov__strip-more {
  font-family: var(--f-label); font-size: .5rem; letter-spacing: var(--bi-ls-overline, 1px);
  text-transform: uppercase; color: var(--gold); background: none;
  border: 1px solid hsl(var(--gold-hsl) / .25); padding: .7rem;
  cursor: pointer; text-align: center; transition: border-color .2s, background .2s;
}
.bi-tp-ov__strip-more:hover { border-color: var(--gold); background: hsl(var(--gold-hsl) / .07); }

/* ── Events compact ─────────────────────────────────────────── */
.bi-tp-events { margin-top: 3rem; }
.bi-tp-events__label {
  font-family: var(--f-label); font-size: .5rem; letter-spacing: var(--bi-ls-overline, 1px);
  text-transform: uppercase; color: hsl(var(--fg-hsl) / .28);
  margin-bottom: 1rem; padding-bottom: .5rem;
  border-bottom: 1px solid hsl(var(--gold-hsl) / .1);
}
.bi-tp-events__list { display: flex; flex-direction: column; }
.bi-tp-events__item {
  display: flex; align-items: baseline; gap: 1rem; flex-wrap: wrap;
  padding: .5rem 0; border-bottom: 1px solid hsl(var(--fg-hsl) / .05);
}
.bi-tp-events__date {
  font-family: var(--f-label); font-size: .5rem; letter-spacing: .12em;
  color: var(--gold); white-space: nowrap; flex-shrink: 0; min-width: 4.5rem;
}
.bi-tp-events__name {
  font-family: var(--f-display); font-size: .9375rem; font-weight: 300;
  color: var(--fg); flex: 1;
}
.bi-tp-events__loc {
  font-family: var(--f-label); font-size: .5rem; letter-spacing: .12em;
  color: hsl(var(--fg-hsl) / .32); margin-left: auto; white-space: nowrap;
}

/* ── Variant photo grid ─────────────────────────────────────── */
.bi-tp-var-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(380px, 1fr));
  gap: 2px;
}
.bi-tp-var-card {
  position: relative; display: block; aspect-ratio: 16/10;
  overflow: hidden; background: hsl(var(--sur-hsl)); text-decoration: none;
}
.bi-tp-var-card__img {
  position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover;
  transition: transform .55s ease;
}
.bi-tp-var-card:hover .bi-tp-var-card__img { transform: scale(1.06); }
.bi-tp-var-card__placeholder {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, hsl(220 45% 8%) 0%, hsl(220 42% 13%) 100%);
}
.bi-tp-var-card__overlay {
  position: absolute; inset: 0;
  background: linear-gradient(to top, hsl(220 45% 4% / .9) 0%, transparent 55%);
  display: flex; flex-direction: column; justify-content: flex-end; padding: 1.75rem;
}
.bi-tp-var-card__title {
  font-family: var(--f-display); font-size: 1.625rem; font-weight: 300;
  color: var(--fg); margin: 0; line-height: 1.1; transition: color .2s;
}
.bi-tp-var-card:hover .bi-tp-var-card__title { color: var(--gold); }
.bi-tp-var-card__sub {
  font-family: var(--f-label); font-size: .5rem; letter-spacing: var(--bi-ls-overline, 1px);
  text-transform: uppercase; color: hsl(var(--fg-hsl) / .48); margin-top: .4rem;
}

/* ── Uitvoering body-style strips ───────────────────────────── */
.bi-tp-uits { padding-top: 4rem; padding-bottom: 4.5rem; border-top: 1px solid hsl(var(--gold-hsl) / .08); }
.bi-tp-uits__heading {
  font-family: var(--f-label); font-size: .5rem; letter-spacing: var(--bi-ls-overline, 1px);
  text-transform: uppercase; color: hsl(var(--fg-hsl) / .22); margin-bottom: 2.5rem;
}
.bi-tp-uits__section { margin-bottom: 3.5rem; }
.bi-tp-uits__var-label {
  font-family: var(--f-display); font-size: 1.3rem; font-weight: 300;
  color: hsl(var(--fg-hsl) / .55); margin-bottom: 1.25rem; padding-bottom: .5rem;
  border-bottom: 1px solid hsl(var(--gold-hsl) / .12);
}
.bi-tp-uits__strip {
  display: flex; gap: 1rem; overflow-x: auto;
  scrollbar-width: thin; scrollbar-color: hsl(var(--gold-hsl) / .25) transparent;
  padding-bottom: .75rem;
}
.bi-tp-uits__strip::-webkit-scrollbar { height: 3px; }
.bi-tp-uits__strip::-webkit-scrollbar-thumb { background: hsl(var(--gold-hsl) / .25); }
.bi-tp-uit-card {
  flex: 0 0 220px; display: block; text-decoration: none;
  background: hsl(var(--sur-hsl)); transition: transform .3s ease, box-shadow .3s ease;
}
.bi-tp-uit-card:hover { transform: translateY(-4px); box-shadow: 0 14px 36px hsl(0 0% 0% / .45); }
.bi-tp-uit-card__img { aspect-ratio: 4/3; overflow: hidden; background: hsl(220 40% 12%); }
.bi-tp-uit-card__img img {
  width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .4s ease;
}
.bi-tp-uit-card:hover .bi-tp-uit-card__img img { transform: scale(1.06); }
.bi-tp-uit-card__no-img {
  width: 100%; height: 100%;
  background: linear-gradient(135deg, hsl(220 45% 10%) 0%, hsl(220 38% 16%) 100%);
}
.bi-tp-uit-card__body { padding: .875rem 1rem .75rem; }
.bi-tp-uit-card__name {
  font-family: var(--f-display); font-size: 1rem; font-weight: 300;
  color: var(--fg); line-height: 1.2;
}
.bi-tp-uit-card__code {
  font-family: var(--f-label); font-size: .45rem; letter-spacing: var(--bi-ls-overline, 1px);
  text-transform: uppercase; color: var(--gold); margin-top: .3rem;
}

/* ── Chassis table ──────────────────────────────────────────── */
.bi-tp-table { width: 100%; border-collapse: collapse; font-size: .875rem; }
.bi-tp-table thead th {
  text-align: left; font-family: var(--f-label); font-size: .5rem;
  letter-spacing: var(--bi-ls-overline, 1px); text-transform: uppercase;
  color: hsl(var(--fg-hsl) / .32); padding: .5rem .75rem;
  border-bottom: 1px solid hsl(var(--gold-hsl) / .15);
}
.bi-tp-table tbody tr { border-bottom: 1px solid hsl(var(--fg-hsl) / .05); transition: background .15s; }
.bi-tp-table tbody tr:hover { background: var(--sur); }
.bi-tp-table tbody td { padding: .625rem .75rem; }
.bi-tp-table__chassis-link {
  color: var(--gold); font-weight: 500; font-family: var(--f-display);
  font-size: 1.0625rem; letter-spacing: .04em; text-decoration: none;
}
.bi-tp-table__view-link {
  font-family: var(--f-label); font-size: .55rem; letter-spacing: var(--bi-ls-button, 1px);
  text-transform: uppercase; color: hsl(var(--fg-hsl) / .28); text-decoration: none;
}
.bi-tp-bcc-pill {
  font-family: var(--f-label); font-size: .5rem; letter-spacing: .12em;
  text-transform: uppercase; color: var(--c, var(--fg));
  border: 1px solid var(--c, hsl(var(--fg-hsl) / .3));
  padding: .15rem .5rem; display: inline-block;
}

/* ── Responsive ─────────────────────────────────────────────── */
@media (max-width: 960px) {
  .bi-tp-hero { height: 58vh; min-height: 380px; }
  .bi-tp-hero__h1 { font-size: clamp(2.25rem, 9vw, 4rem); }
  .bi-tp-hero__stats { gap: 1.75rem; }
  .bi-tp-ov__split { grid-template-columns: 1fr; }
  .bi-tp-ov__strip { display: grid; grid-template-columns: repeat(2,1fr); gap: .5rem; position: static; }
  .bi-tp-var-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 640px) {
  .bi-tp-hero { height: 52vh; min-height: 320px; }
  .bi-tp-tabnav__btn { padding: .75rem 1rem; }
  .bi-tp-tabnav__all { display: none; }
  .bi-tp-specs { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; }
  .bi-tp-specs::-webkit-scrollbar { display: none; }
  .bi-tp-var-grid { grid-template-columns: 1fr; }
  .bi-tp-ov__strip { grid-template-columns: 1fr 1fr; }
}

/* ══════════════════════════════════════════════════════════════
   TYPE PAGE — font size + visual upgrades  (v0.2.9)
   ══════════════════════════════════════════════════════════════ */

/* ── Hero ───────────────────────────────────────────────────── */
.bi-tp-hero__h1 {
  font-size: clamp(3.25rem, 8vw, 7rem);
}
.bi-tp-hero__label {
  font-size: .75rem;
  letter-spacing: var(--bi-ls-overline, 1px);
}
.bi-tp-hero__year {
  font-size: .8125rem;
  letter-spacing: var(--bi-ls-overline, 1px);
}
.bi-tp-hero__stat-n {
  font-size: 2.75rem;
}
.bi-tp-hero__stat-l {
  font-size: .6875rem;
  letter-spacing: var(--bi-ls-overline, 1px);
}

/* ── Tab nav — bigger, more readable ───────────────────────── */
.bi-tp-tabnav__btn {
  font-size: .75rem;
  letter-spacing: .12em;
  padding: 1.125rem 2rem;
}
.bi-tp-tabnav__badge {
  font-size: .5625rem;
  padding: .18rem .6rem;
}
.bi-tp-tabnav__all {
  font-size: .6875rem;
}

/* ── Specs bar — bigger values ──────────────────────────────── */
.bi-tp-specs__item {
  padding: 1.25rem 2.25rem;
}
.bi-tp-specs__item dt {
  font-size: .5625rem;
  letter-spacing: var(--bi-ls-overline, 1px);
}
.bi-tp-specs__item dd {
  font-size: 1.375rem;
  margin-top: .2rem;
}

/* ── Overview editorial content ─────────────────────────────── */
.bi-tp-ov {
  padding-top: 3.5rem;
  padding-bottom: 5rem;
}
.bi-tp-ov__editorial .bi-content {
  font-size: 1.0625rem;
  line-height: 1.88;
}
.bi-tp-ov__editorial .bi-content p {
  margin-bottom: 1.5rem;
}
.bi-tp-ov__editorial .bi-content h2 {
  font-size: 1.875rem;
  margin-top: 2.5rem;
}
.bi-tp-ov__editorial .bi-content h3 {
  font-size: 1.4rem;
  margin-top: 2rem;
}

/* ── Events ─────────────────────────────────────────────────── */
.bi-tp-events__label {
  font-size: .6875rem;
  margin-bottom: 1.25rem;
  padding-bottom: .625rem;
}
.bi-tp-events__date {
  font-size: .6875rem;
  min-width: 5.5rem;
}
.bi-tp-events__name {
  font-size: 1.0625rem;
}
.bi-tp-events__loc {
  font-size: .625rem;
}

/* ── Variant grid — taller cards, feature first card ───────── */
.bi-tp-var-grid {
  grid-template-columns: repeat(auto-fill, minmax(380px, 1fr));
}
/* First card is a wide feature card */
.bi-tp-var-grid > .bi-tp-var-card:first-child {
  grid-column: 1 / -1;
  aspect-ratio: 21/8;
  max-height: 520px;
}
.bi-tp-var-card {
  aspect-ratio: 4/3;
}
.bi-tp-var-card__overlay {
  padding: 2.25rem;
}
.bi-tp-var-card__title {
  font-size: clamp(1.875rem, 4vw, 3rem);
  letter-spacing: .02em;
}
.bi-tp-var-card__sub {
  font-size: .75rem;
  letter-spacing: var(--bi-ls-overline, 1px);
  margin-top: .6rem;
}
/* Gradient on placeholder so it still looks designed */
.bi-tp-var-card__placeholder {
  background: linear-gradient(145deg,
    var(--bg) 0%,
    hsl(220 40% 16%) 50%,
    hsl(220 45% 8%) 100%);
}
/* Gold accent line on bottom of placeholder */
.bi-tp-var-card__placeholder::after {
  content: '';
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 3px;
  background: linear-gradient(to right, transparent, var(--gold), transparent);
  opacity: .45;
}

/* ── Body style cards ───────────────────────────────────────── */
.bi-tp-uit-card {
  flex: 0 0 270px;
}
.bi-tp-uit-card__name {
  font-size: 1.1875rem;
}
.bi-tp-uit-card__code {
  font-size: .5625rem;
}
.bi-tp-uits__var-label {
  font-size: 1.5rem;
}
.bi-tp-uits__heading {
  font-size: .6875rem;
}

/* ── Chassis table ──────────────────────────────────────────── */
.bi-tp-table {
  font-size: .9375rem;
}
.bi-tp-table thead th {
  font-size: .5625rem;
  padding: .625rem 1rem;
}
.bi-tp-table tbody td {
  padding: .875rem 1rem;
}
.bi-tp-table__chassis-link {
  font-size: 1.125rem;
}
.bi-tp-table__view-link {
  font-size: .625rem;
  letter-spacing: .12em;
}
.bi-tp-bcc-pill {
  font-size: .5625rem;
  padding: .2rem .625rem;
}

/* ── Type dossier overview rail ─────────────────────────────── */
.bi-tp-overview-rail {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(18rem, .95fr);
  gap: 1.4rem;
  margin-bottom: 2rem;
}
.bi-tp-overview-rail__intro,
.bi-tp-overview-rail__item {
  background: linear-gradient(180deg, hsl(var(--sur-hsl) / .94), hsl(var(--sur2-hsl) / .84));
  border: 1px solid hsl(var(--gold-hsl) / .12);
  box-shadow: 0 18px 44px rgba(0, 0, 0, .18);
}
.bi-tp-overview-rail__intro {
  padding: 1.45rem 1.5rem 1.35rem;
}
.bi-tp-overview-rail__eyebrow,
.bi-tp-overview-rail__item-label {
  font-family: var(--f-label);
  font-size: .52rem;
  letter-spacing: var(--bi-ls-overline, 1px);
  text-transform: uppercase;
  color: var(--gold);
}
.bi-tp-overview-rail__title {
  margin: .55rem 0 0;
  font-family: var(--f-display);
  font-size: clamp(1.7rem, 3vw, 2.3rem);
  font-weight: 300;
  line-height: 1.08;
  color: var(--fg);
}
.bi-tp-overview-rail__text {
  margin: 1rem 0 0;
  max-width: 60ch;
  color: hsl(var(--fg-hsl) / .64);
  line-height: 1.72;
}
.bi-tp-overview-rail__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .9rem;
}
.bi-tp-overview-rail__item {
  display: grid;
  gap: .28rem;
  padding: 1rem 1.05rem .95rem;
}
.bi-tp-overview-rail__item--wide {
  grid-column: 1 / -1;
}
.bi-tp-overview-rail__item-value {
  font-family: var(--f-display);
  font-size: 1.15rem;
  font-weight: 400;
  line-height: 1.3;
  color: var(--fg);
}

.bi-tp-chassis-preview {
  margin-top: 2.2rem;
  padding-top: 1.5rem;
  border-top: 1px solid hsl(var(--gold-hsl) / .1);
}
.bi-tp-chassis-preview__head {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  align-items: end;
  margin-bottom: 1rem;
}
.bi-tp-chassis-preview__title {
  margin: .35rem 0 0;
  font-family: var(--f-display);
  font-size: clamp(1.35rem, 2.3vw, 1.8rem);
  font-weight: 300;
  color: var(--fg);
}
.bi-tp-chassis-preview__link {
  border: 0;
  background: transparent;
  padding: 0;
  cursor: pointer;
  font-family: var(--f-label);
  font-size: .58rem;
  letter-spacing: var(--bi-ls-overline, 1px);
  text-transform: uppercase;
  color: var(--gold);
}
.bi-tp-chassis-preview__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(13rem, 1fr));
  gap: .9rem;
}
.bi-tp-chassis-preview__grid > .bi-tp-chassis-preview__card--lead {
  grid-column: span 2;
  gap: .75rem;
  padding: 1.2rem 1.2rem 1.1rem;
  background:
    radial-gradient(circle at top right, hsl(var(--gold-hsl) / .12), transparent 36%),
    linear-gradient(180deg, hsl(var(--sur-hsl) / .98), hsl(var(--sur2-hsl) / .88));
  border-color: hsl(var(--gold-hsl) / .24);
}
.bi-tp-chassis-preview__card {
  display: grid;
  gap: .5rem;
  padding: 1rem 1rem .92rem;
  text-decoration: none;
  background: linear-gradient(180deg, hsl(var(--sur-hsl) / .94), hsl(var(--sur2-hsl) / .82));
  border: 1px solid hsl(var(--gold-hsl) / .12);
  box-shadow: 0 16px 34px rgba(0, 0, 0, .16);
  transition: transform .18s ease, border-color .18s ease, background .18s ease;
}
.bi-tp-chassis-preview__card:hover {
  transform: translateY(-3px);
  border-color: hsl(var(--gold-hsl) / .28);
  background: linear-gradient(180deg, hsl(var(--sur-hsl) / .98), hsl(var(--sur2-hsl) / .9));
}
.bi-tp-chassis-preview__plate {
  font-family: var(--f-display);
  font-size: 1.7rem;
  font-weight: 300;
  letter-spacing: .04em;
  color: var(--gold);
}
.bi-tp-chassis-preview__label {
  font-family: var(--f-label);
  font-size: .48rem;
  letter-spacing: var(--bi-ls-overline, 1px);
  text-transform: uppercase;
  color: var(--gold);
}
.bi-tp-chassis-preview__meta {
  display: grid;
  gap: .22rem;
  color: hsl(var(--fg-hsl) / .58);
  font-size: .84rem;
  line-height: 1.5;
}
.bi-tp-chassis-preview__lede {
  margin: 0;
  max-width: 42ch;
  color: hsl(var(--fg-hsl) / .64);
  line-height: 1.7;
}
.bi-tp-chassis-preview__bcc {
  font-family: var(--f-label);
  font-size: .5rem;
  letter-spacing: var(--bi-ls-overline, 1px);
  text-transform: uppercase;
  color: var(--gold);
}
.bi-tp-chassis-preview__cta {
  margin-top: .2rem;
  font-family: var(--f-label);
  font-size: .5rem;
  letter-spacing: var(--bi-ls-button, 1px);
  text-transform: uppercase;
  color: hsl(var(--fg-hsl) / .38);
}

/* ── Photo strip on overview ────────────────────────────────── */
.bi-tp-ov__strip {
  display: grid;
  gap: .85rem;
}
.bi-tp-ov__strip-head {
  display: grid;
  gap: .45rem;
  padding: 1rem 1.05rem .9rem;
  background: linear-gradient(180deg, hsl(var(--sur-hsl) / .94), hsl(var(--sur2-hsl) / .84));
  border: 1px solid hsl(var(--gold-hsl) / .12);
}
.bi-tp-ov__strip-note {
  margin: 0;
  color: hsl(var(--fg-hsl) / .58);
  line-height: 1.68;
}
.bi-tp-ov__strip-figure {
  display: grid;
  gap: 0;
  background: linear-gradient(180deg, hsl(var(--sur-hsl) / .96), hsl(var(--sur2-hsl) / .84));
  border: 1px solid hsl(var(--gold-hsl) / .12);
  overflow: hidden;
}
.bi-tp-ov__strip-figure.is-featured {
  border-color: hsl(var(--gold-hsl) / .26);
  box-shadow: 0 20px 46px rgba(0, 0, 0, .22);
}
.bi-tp-ov__strip-img {
  aspect-ratio: 3/2;
}
.bi-tp-ov__strip-caption {
  display: grid;
  gap: .3rem;
  padding: .8rem .9rem .9rem;
}
.bi-tp-ov__strip-plate {
  font-family: var(--f-label);
  font-size: .46rem;
  letter-spacing: var(--bi-ls-overline, 1px);
  text-transform: uppercase;
  color: var(--gold);
}
.bi-tp-ov__strip-text {
  color: hsl(var(--fg-hsl) / .76);
  line-height: 1.58;
}
.bi-tp-ov__strip-more {
  font-size: .625rem;
}

.bi-tp-var-intro {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(15rem, .85fr);
  gap: 1.25rem;
  padding: 2.4rem 0 1.5rem;
  align-items: end;
}
.bi-tp-var-intro__copy,
.bi-tp-var-intro__fact {
  background: linear-gradient(180deg, hsl(var(--sur-hsl) / .94), hsl(var(--sur2-hsl) / .84));
  border: 1px solid hsl(var(--gold-hsl) / .12);
  box-shadow: 0 16px 40px rgba(0, 0, 0, .16);
}
.bi-tp-var-intro__copy {
  padding: 1.35rem 1.4rem 1.3rem;
}
.bi-tp-var-intro__title {
  margin: .45rem 0 0;
  font-family: var(--f-display);
  font-size: clamp(1.55rem, 2.5vw, 2.1rem);
  font-weight: 300;
  line-height: 1.08;
  color: var(--fg);
}
.bi-tp-var-intro__text {
  margin: .9rem 0 0;
  max-width: 58ch;
  color: hsl(var(--fg-hsl) / .62);
  line-height: 1.72;
}
.bi-tp-var-intro__facts {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .85rem;
}
.bi-tp-var-intro__facts > .bi-tp-var-card__cta {
  display: none;
}
.bi-tp-var-intro__fact {
  display: grid;
  gap: .28rem;
  padding: 1rem 1.05rem .95rem;
}
.bi-tp-var-intro__fact-label,
.bi-tp-var-card__eyebrow {
  font-family: var(--f-label);
  font-size: .5rem;
  letter-spacing: var(--bi-ls-overline, 1px);
  text-transform: uppercase;
  color: var(--gold);
}
.bi-tp-var-intro__fact-value {
  font-family: var(--f-display);
  font-size: 1.25rem;
  color: var(--fg);
}
.bi-tp-var-card__overlay {
  gap: .45rem;
}
.bi-tp-var-card__cta {
  margin-top: .2rem;
  font-family: var(--f-label);
  font-size: .5rem;
  letter-spacing: var(--bi-ls-button, 1px);
  text-transform: uppercase;
  color: hsl(var(--fg-hsl) / .42);
}
.bi-tp-var-card__overlay::after {
  content: 'Open variant ->';
  display: inline-flex;
  margin-top: .2rem;
  font-family: var(--f-label);
  font-size: .5rem;
  letter-spacing: var(--bi-ls-overline, 1px);
  text-transform: uppercase;
  color: hsl(var(--fg-hsl) / .42);
}

/* ── Responsive overrides ───────────────────────────────────── */
@media (max-width: 900px) {
  .bi-tp-overview-rail {
    grid-template-columns: 1fr;
  }
  .bi-tp-chassis-preview__head {
    flex-direction: column;
    align-items: flex-start;
  }
  .bi-tp-var-intro {
    grid-template-columns: 1fr;
  }
  .bi-tp-var-grid > .bi-tp-var-card:first-child {
    aspect-ratio: 16/7;
    max-height: 380px;
  }
}
@media (max-width: 600px) {
  .bi-tp-overview-rail__intro {
    padding: 1.15rem 1rem 1.1rem;
  }
  .bi-tp-overview-rail__grid {
    grid-template-columns: 1fr;
    gap: .75rem;
  }
  .bi-tp-overview-rail__item {
    padding: .9rem .92rem .86rem;
  }
  .bi-tp-overview-rail__item-value {
    font-size: 1rem;
  }
  .bi-tp-chassis-preview__grid {
    grid-template-columns: 1fr;
  }
  .bi-tp-chassis-preview__grid > .bi-tp-chassis-preview__card--lead {
    grid-column: span 1;
  }
  .bi-tp-var-intro__facts {
    grid-template-columns: 1fr;
  }
  .bi-tp-var-grid > .bi-tp-var-card:first-child {
    grid-column: span 1;
    aspect-ratio: 4/3;
    max-height: none;
  }
  .bi-tp-tabnav__btn {
    font-size: .6875rem;
    padding: .875rem 1.25rem;
  }
}

/* ══════════════════════════════════════════════════════════════
   v0.3.0 — CHRONOLOGY TIMELINE (Section II redesign)
   ══════════════════════════════════════════════════════════════ */

/* Section wrapper */
.bi-chronology {
  background: var(--bg);
  padding: clamp(4rem, 8vw, 7rem) 0 0;
}

/* Header row */
.bi-chronology__head {
  display: grid;
  grid-template-columns: 72px 1fr;
  gap: 0 2rem;
  align-items: start;
  margin-bottom: 2.5rem;
}

/* Scrollable track — timeline spine via ::before */
.bi-chronology__track {
  display: flex;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scrollbar-width: none;
  cursor: grab;
  position: relative;
  /* Top border = the timeline spine */
  border-top: 1px solid hsl(var(--gold-hsl) / .22);
}
.bi-chronology__track::-webkit-scrollbar { display: none; }
.bi-chronology__track.is-dragging { cursor: grabbing; }

/* Individual era chapter card */
.bi-chronology__card {
  flex: 0 0 clamp(300px, 30vw, 420px);
  height: clamp(560px, 72vh, 700px);
  position: relative;
  scroll-snap-align: start;
  overflow: hidden;
  border-right: 1px solid hsl(var(--gold-hsl) / .08);
  transition: flex-basis .35s ease;
}
.bi-chronology__card:hover { flex-basis: clamp(330px, 33vw, 460px); }

/* Gold timeline dot at the top of each card — sits on the spine */
.bi-chronology__card::before {
  content: '';
  position: absolute;
  top: -5px;
  left: clamp(1.5rem, 3vw, 2.25rem);
  width: 9px;
  height: 9px;
  background: var(--gold);
  border-radius: 0;
  box-shadow: 0 0 0 4px hsl(var(--gold-hsl) / .18);
  z-index: 5;
  transition: box-shadow .3s ease, transform .3s ease;
}
.bi-chronology__card:hover::before {
  box-shadow: 0 0 0 8px hsl(var(--gold-hsl) / .12);
  transform: scale(1.25);
}

/* Thin vertical connector from dot down to card content */
.bi-chronology__card::after {
  content: '';
  position: absolute;
  top: 0;
  left: calc(clamp(1.5rem, 3vw, 2.25rem) + 4px);
  width: 1px;
  height: clamp(1.5rem, 4vw, 2.5rem);
  background: linear-gradient(to bottom, hsl(var(--gold-hsl) / .4), transparent);
  z-index: 4;
}

/* Photo background */
.bi-chronology__photo {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center top;
  transition: transform .6s ease;
}
.bi-chronology__card:hover .bi-chronology__photo { transform: scale(1.04); }

/* Gradient overlay — dark bottom, translucent top */
.bi-chronology__overlay {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(to top,
      hsl(var(--bg-hsl) / .97) 0%,
      hsl(var(--bg-hsl) / .65) 40%,
      hsl(var(--bg-hsl) / .18) 75%,
      transparent 100%);
  z-index: 1;
}

/* Content column */
.bi-chronology__body {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  height: 100%;
  padding: clamp(1.5rem, 3vw, 2.25rem);
}

/* Chapter number — small gold label at top */
.bi-chronology__chapter-num {
  font-family: var(--f-label);
  font-size: .5625rem;
  letter-spacing: var(--bi-ls-overline, 1px);
  text-transform: uppercase;
  color: var(--gold);
  padding-top: clamp(1.5rem, 3.5vw, 2.5rem);
  margin-bottom: auto;
}

/* Large faded year watermark — absolute, top-right */
.bi-chronology__watermark {
  font-family: var(--f-display);
  font-size: clamp(4.5rem, 10vw, 8rem);
  font-weight: 300;
  line-height: 1;
  color: hsl(var(--gold-hsl) / .09);
  letter-spacing: -.04em;
  position: absolute;
  top: clamp(1rem, 3vw, 2rem);
  right: 0;
  padding-right: clamp(1rem, 2vw, 1.5rem);
  user-select: none;
  pointer-events: none;
  z-index: 2;
  transition: color .35s ease;
}
.bi-chronology__card:hover .bi-chronology__watermark {
  color: hsl(var(--gold-hsl) / .15);
}

/* Era name — italic display serif */
.bi-chronology__era-name {
  font-family: var(--f-display);
  font-size: clamp(1.8rem, 3vw, 2.5rem);
  font-weight: 300;
  font-style: italic;
  color: var(--fg);
  line-height: 1.1;
  margin-bottom: .6rem;
  letter-spacing: -.01em;
}

/* Short description */
.bi-chronology__desc {
  /* Running text (869etqyny): body copy = --f-body (Tinos), not --f-label. */
  font-family: var(--f-body, var(--f-label));
  font-size: .8125rem;
  color: hsl(var(--fg-hsl) / .52);
  line-height: 1.55;
  margin: 0 0 1.1rem;
  max-width: 26ch;
}

/* Type count badge */
.bi-chronology__badge {
  font-family: var(--f-label);
  font-size: .5625rem;
  letter-spacing: var(--bi-ls-overline, 1px);
  text-transform: uppercase;
  color: var(--gold);
  border: 1px solid hsl(var(--gold-hsl) / .2);
  padding: .3em 1em;
  border-radius: 0;
  display: inline-block;
  margin-bottom: .9rem;
  width: fit-content;
}

/* Type links list */
.bi-chronology__types {
  display: flex;
  flex-direction: column;
  gap: .35rem;
}

.bi-chronology__type-link {
  font-family: var(--f-label);
  font-size: .75rem;
  color: hsl(var(--fg-hsl) / .48);
  text-decoration: none;
  display: flex;
  align-items: center;
  gap: .45rem;
  transition: color .2s ease, gap .2s ease;
}
.bi-chronology__type-link::before {
  content: '\2014';
  color: hsl(var(--gold-hsl) / .35);
  font-size: .6rem;
  flex-shrink: 0;
  transition: color .2s ease;
}
.bi-chronology__type-link:hover { color: var(--gold); gap: .7rem; }
.bi-chronology__type-link:hover::before { color: var(--gold); }

.bi-chronology__more {
  font-family: var(--f-label);
  font-size: .6875rem;
  color: hsl(var(--fg-hsl) / .3);
  padding-top: .2rem;
}

/* Nav arrows */
.bi-chronology__nav {
  display: flex;
  justify-content: flex-end;
  gap: .75rem;
  padding-top: 1.75rem;
  padding-bottom: 3.5rem;
}

.bi-chronology__arrow {
  width: 2.75rem;
  height: 2.75rem;
  border-radius: 0;
  border: 1px solid hsl(var(--gold-hsl) / .25);
  background: transparent;
  color: hsl(var(--fg-hsl) / .55);
  font-size: 1.4rem;
  line-height: 1;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: border-color .2s ease, color .2s ease, background .2s ease;
}
.bi-chronology__arrow:hover {
  border-color: var(--gold);
  color: var(--fg);
  background: hsl(var(--gold-hsl) / .08);
}
.bi-chronology__arrow:disabled { opacity: .3; cursor: not-allowed; }

/* Responsive — tablet */
@media (max-width: 1100px) {
  .bi-chronology__card { flex-basis: clamp(280px, 44vw, 370px); }
}
@media (max-width: 900px) {
  .bi-chronology__head { grid-template-columns: 1fr; gap: 1rem; }
  .bi-chronology__head .bi-editorial-head__index { display: none; }
  .bi-chronology__card { flex-basis: clamp(270px, 64vw, 360px); }
}
@media (max-width: 600px) {
  .bi-chronology__card { flex-basis: 86vw; height: clamp(460px, 90vw, 580px); }
  .bi-chronology__watermark { font-size: clamp(3.5rem, 15vw, 6rem); }
  .bi-chronology__nav { justify-content: center; padding-bottom: 2.5rem; }
}
@media (prefers-reduced-motion: reduce) {
  .bi-chronology__card,
  .bi-chronology__photo,
  .bi-chronology__arrow { transition: none; }
  .bi-chronology__track { scroll-behavior: auto; }
}

/* ══════════════════════════════════════════════════════════════
   v0.3.0b — CHRONOLOGY (Art Revisionist 3-column timeline)
   ══════════════════════════════════════════════════════════════ */

.bi-chron-section {
  background: var(--bg);
  padding: clamp(4rem, 8vw, 7rem) 0 clamp(4rem, 6vw, 6rem);
}

/* Narrow editorial header */
.bi-chron-section .bi-editorial-head--narrow {
  max-width: 860px;
  margin-bottom: clamp(3rem, 6vw, 5rem);
}

/* ── Timeline wrapper: vertical gold centre line ── */
.bi-chron-timeline {
  position: relative;
}

.bi-chron-timeline::before {
  content: '';
  position: absolute;
  left: 50%;
  top: 0;
  bottom: 0;
  width: 1px;
  transform: translateX(-50%);
  background: linear-gradient(
    to bottom,
    transparent 0%,
    hsl(var(--gold-hsl) / .45) 4%,
    hsl(var(--gold-hsl) / .45) 96%,
    transparent 100%
  );
  pointer-events: none;
  z-index: 0;
}

/* ── Row: 3-column grid ── */
.bi-chron-item {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 96px minmax(0, 1fr);
  align-items: center;
  margin-bottom: 2.5rem;
  position: relative;
  z-index: 1;
}

.bi-chron-col--left  { display: flex; justify-content: flex-end;   padding-right: 1.25rem; }
.bi-chron-col--right { display: flex; justify-content: flex-start;  padding-left:  1.25rem; }
.bi-chron-col--center {
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  z-index: 2;
}

/* ── Shared card shell ── */
.bi-chron-card,
.bi-chron-types {
  width: 100%;
  max-width: 380px;
  background: var(--sur);
  border: 1px solid hsl(var(--gold-hsl) / .12);
}

/* ── Era identity card ── */
.bi-chron-card__photo {
  width: 100%;
  aspect-ratio: 16 / 7;
  background-size: cover;
  background-position: center top;
  display: block;
}

.bi-chron-card__body {
  padding: 1.25rem 1.35rem 1.4rem;
}

.bi-chron-card__eyebrow {
  font-family: var(--f-label);
  font-size: .5625rem;
  letter-spacing: var(--bi-ls-overline, 1px);
  text-transform: uppercase;
  color: var(--gold);
  margin-bottom: .45rem;
}

.bi-chron-card__name {
  font-family: var(--f-display);
  font-size: clamp(1.1rem, 2vw, 1.35rem);
  font-style: italic;
  font-weight: 400;
  color: var(--fg);
  line-height: 1.15;
  margin: 0 0 .65rem;
}

.bi-chron-card__desc {
  /* Running text (869etqyny): body copy = --f-body (Tinos), not --f-label. */
  font-family: var(--f-body, var(--f-label));
  font-size: .775rem;
  color: hsl(var(--fg-hsl) / .5);
  line-height: 1.7;
  margin: 0;
}

/* ── Types list card ── */
.bi-chron-types {
  padding: 1.25rem 1.35rem 1.4rem;
}

.bi-chron-types__label {
  font-family: var(--f-label);
  font-size: .5625rem;
  letter-spacing: var(--bi-ls-overline, 1px);
  text-transform: uppercase;
  color: var(--gold);
  margin-bottom: .7rem;
}

.bi-chron-types__list {
  display: flex;
  flex-direction: column;
  gap: .3rem;
  margin-bottom: .5rem;
}

.bi-chron-types__link {
  font-family: var(--f-display);
  font-size: clamp(.9rem, 1.5vw, 1.05rem);
  font-style: italic;
  color: hsl(var(--fg-hsl) / .62);
  text-decoration: none;
  line-height: 1.35;
  display: flex;
  align-items: baseline;
  gap: .4rem;
  transition: color .18s ease;
}
.bi-chron-types__link::before {
  content: '\2014';
  font-style: normal;
  font-size: .55rem;
  color: hsl(var(--gold-hsl) / .35);
  flex-shrink: 0;
  transition: color .18s ease;
}
.bi-chron-types__link:hover { color: var(--fg); }
.bi-chron-types__link:hover::before { color: var(--gold); }

.bi-chron-types__more {
  font-family: var(--f-label);
  font-size: .625rem;
  letter-spacing: .06em;
  color: hsl(var(--fg-hsl) / .32);
}

/* ── Year bubble — Art Revisionist ring style ── */
.bi-chron-bubble {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 4.4rem;
  height: 4.4rem;
  border-radius: 0;
  background: hsl(var(--sur-hsl));
  box-shadow: 0 0 0 3px var(--gold);
  flex-shrink: 0;
  position: relative;
  z-index: 2;
}

.bi-chron-bubble span {
  font-family: var(--f-display);
  font-size: .82rem;
  font-style: italic;
  color: var(--gold);
  letter-spacing: .02em;
  line-height: 1.15;
  text-align: center;
}

/* ── Responsive: tablet — make cards smaller ── */
@media (max-width: 1100px) {
  .bi-chron-card,
  .bi-chron-types { max-width: 320px; }
  .bi-chron-item { grid-template-columns: minmax(0, 1fr) 80px minmax(0, 1fr); }
  .bi-chron-bubble { width: 3.8rem; height: 3.8rem; }
}

/* ── Responsive: mobile — single column, left rail ── */
@media (max-width: 700px) {
  .bi-chron-timeline::before {
    left: 2.5rem;
    transform: none;
  }
  .bi-chron-item {
    grid-template-columns: 5rem 1fr;
    grid-template-rows: auto auto;
    margin-bottom: 2rem;
  }
  .bi-chron-col--center {
    grid-column: 1;
    grid-row: 1 / 3;
    align-self: start;
    padding-top: .5rem;
    justify-content: center;
  }
  .bi-chron-col--left,
  .bi-chron-col--right {
    padding: 0 0 .75rem 1rem;
    justify-content: flex-start;
  }
  /* On mobile the "left" column always comes first visually */
  .bi-chron-item--flip .bi-chron-col--left { grid-column: 2; grid-row: 1; }
  .bi-chron-item--flip .bi-chron-col--right { grid-column: 2; grid-row: 2; }
  .bi-chron-col--left  { grid-column: 2; grid-row: 1; }
  .bi-chron-col--right { grid-column: 2; grid-row: 2; }
  .bi-chron-card,
  .bi-chron-types { max-width: none; }
  .bi-chron-bubble { width: 3.25rem; height: 3.25rem; }
  .bi-chron-bubble span { font-size: .7rem; }
}

/* ══════════════════════════════════════════════════════════════
   v0.3.1 — ERA STRIP (compact chronology preview)
   ══════════════════════════════════════════════════════════════ */

.bi-era-strip {
  background: var(--bg);
  border-top: 1px solid hsl(var(--gold-hsl) / .1);
  border-bottom: 1px solid hsl(var(--gold-hsl) / .1);
  padding: clamp(2rem, 4vw, 3rem) 0;
}

.bi-era-strip__inner {
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
}

.bi-era-strip__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.bi-era-strip__all {
  font-family: var(--f-label);
  font-size: .5625rem;
  letter-spacing: var(--bi-ls-overline, 1px);
  text-transform: uppercase;
  color: var(--gold);
  text-decoration: none;
  transition: color .2s ease;
}
.bi-era-strip__all:hover { color: var(--gold); }

.bi-era-strip__bar {
  display: flex;
  border: 1px solid hsl(var(--gold-hsl) / .12);
}

.bi-era-strip__cell {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: .4rem;
  padding: 1.1rem .6rem;
  text-decoration: none;
  border-right: 1px solid hsl(var(--gold-hsl) / .1);
  border-top: 2px solid transparent;
  transition: background .22s ease, border-top-color .22s ease;
}
.bi-era-strip__cell:last-child { border-right: 0; }
.bi-era-strip__cell:hover {
  background: hsl(var(--gold-hsl) / .05);
  border-top-color: var(--gold);
}

.bi-era-strip__name {
  font-family: var(--f-display);
  font-size: clamp(.8rem, 1.1vw, 1rem);
  font-style: italic;
  font-weight: 400;
  color: var(--fg);
  text-align: center;
  line-height: 1.2;
}

.bi-era-strip__count {
  font-family: var(--f-label);
  font-size: .5rem;
  letter-spacing: var(--bi-ls-overline, 1px);
  text-transform: uppercase;
  color: var(--gold);
  white-space: nowrap;
}

@media (max-width: 700px) {
  .bi-era-strip__bar { flex-wrap: wrap; }
  .bi-era-strip__cell {
    flex: 0 0 50%;
    border-bottom: 1px solid hsl(var(--gold-hsl) / .1);
  }
  .bi-era-strip__cell:nth-child(even) { border-right: 0; }
}

/* ══════════════════════════════════════════════════════════════
   v0.3.2 — BODY STYLES MOSAIC
   ══════════════════════════════════════════════════════════════ */

/* ── Body styles filmstrip (v0.3.3) ── */
.bi-shapes {
  background: var(--bg);
  padding: clamp(3rem, 5vw, 4.5rem) 0 clamp(3rem, 5vw, 5rem);
}
.bi-shapes__head {
  padding-inline: 3rem;
  margin-bottom: 2.5rem;
}
.bi-shapes__stage {
  position: relative;
}
.bi-shapes__rail {
  display: flex;
  gap: 1.25rem;
  padding: 0 3rem 1.25rem;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  cursor: grab;
  scroll-snap-type: x mandatory;
  scroll-padding-inline: 3rem;
  scroll-behavior: smooth;
}
.bi-shapes__rail.is-dragging { cursor: grabbing; scroll-snap-type: none; }
.bi-shapes__rail::-webkit-scrollbar { display: none; }

/* Left / right nav arrows, overlaid on the stage like an editorial carousel */
.bi-shapes__arrow {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 3;
  width: 2.75rem;
  height: 2.75rem;
  border-radius: 0;
  border: 1px solid hsl(var(--gold-hsl) / .25);
  background: hsl(220 45% 4% / .55);
  backdrop-filter: blur(4px);
  color: hsl(var(--fg-hsl) / .8);
  font-size: 1.4rem;
  line-height: 1;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: border-color .2s ease, color .2s ease, background .2s ease, opacity .2s ease;
}
.bi-shapes__arrow:hover {
  border-color: var(--gold);
  color: var(--fg);
  background: hsl(var(--gold-hsl) / .18);
}
.bi-shapes__arrow:disabled { opacity: 0; pointer-events: none; }
.bi-shapes__arrow--prev { left: .75rem; }
.bi-shapes__arrow--next { right: .75rem; }

/* Pagination dots — highlight the card currently in view */
.bi-shapes__dots {
  display: flex;
  justify-content: center;
  gap: .5rem;
  margin-top: 1.5rem;
}
.bi-shapes__dot {
  width: .5rem;
  height: .5rem;
  padding: 0;
  border-radius: 0;
  border: none;
  background: hsl(var(--fg-hsl) / .2);
  cursor: pointer;
  transition: background .25s ease, transform .25s ease;
}
.bi-shapes__dot:hover { background: var(--gold); }
.bi-shapes__dot.is-active {
  background: var(--gold);
  transform: scale(1.3);
}

.bi-shapes__card {
  flex: none;
  width: 220px;
  height: 320px;
  position: relative;
  overflow: hidden;
  border: 1px solid hsl(220 30% 14%);
  scroll-snap-align: start;
  transition: transform .35s ease, box-shadow .35s ease;
}
.bi-shapes__card:hover {
  transform: translateY(-6px);
  box-shadow: 0 18px 40px hsl(220 45% 2% / .6);
  border-color: hsl(var(--gold-hsl) / .35);
}
.bi-shapes__card-bg {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
  filter: var(--photo-grade);
  transform: scale(1.08);
  transition: transform .5s ease;
}
.bi-shapes__card:hover .bi-shapes__card-bg { transform: scale(1.16); }

.bi-shapes__grad {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    to top,
    hsl(220 45% 4% / .94) 0%,
    hsl(220 45% 4% / .35) 45%,
    transparent 100%
  );
}
.bi-shapes__meta {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  padding: 1.1rem .95rem 1rem;
  display: flex;
  flex-direction: column;
  gap: .3rem;
}
.bi-shapes__era {
  font-family: var(--f-label);
  font-size: .58rem;
  letter-spacing: var(--bi-ls-overline, 1px);
  text-transform: uppercase;
  color: var(--gold);
}
.bi-shapes__name {
  font-family: var(--f-display);
  font-style: italic;
  font-size: 1.25rem;
  font-weight: 400;
  color: var(--fg);
  line-height: 1.1;
  transition: color .25s ease;
}
.bi-shapes__card:hover .bi-shapes__name { color: var(--gold); }
.bi-shapes__count {
  display: block;
  margin-top: .3rem;
  font-family: var(--f-label);
  font-size: .58rem;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--fg);
}
.bi-shapes__fade {
  position: absolute;
  right: 0; top: 0; bottom: 0;
  width: 5rem;
  background: linear-gradient(to right, transparent, var(--bg));
  pointer-events: none;
  z-index: 2;
}

@media (max-width: 860px) {
  .bi-shapes__head { padding-inline: 2rem; }
  .bi-shapes__rail { padding: 0 2rem 1rem; scroll-padding-inline: 2rem; }
  /* Touch swipe is the primary interaction here — arrows would sit awkwardly over narrow cards */
  .bi-shapes__arrow { display: none; }
}
/* (3191) Phone gutter: the rail and its heading ride the same 18px line as
   the header logo and every section below, so a horizontally scrolling row
   still starts where the static copy starts. */
@media (max-width: 640px) {
  .bi-shapes__head { padding-inline: var(--bi-shell-gutter); }
  .bi-shapes__rail { padding: 0 var(--bi-shell-gutter) 1rem; scroll-padding-inline: var(--bi-shell-gutter); }
}
@media (max-width: 540px) {
  .bi-shapes__rail { padding-bottom: .75rem; gap: .85rem; }
  .bi-shapes__card { width: 175px; height: 255px; }
  .bi-shapes__name { font-size: 1.05rem; }
  .bi-shapes__dots { margin-top: 1.1rem; }
}
@media (prefers-reduced-motion: reduce) {
  .bi-shapes__rail { scroll-behavior: auto; }
  .bi-shapes__arrow,
  .bi-shapes__dot { transition: none; }
}

/* ── Era photo grid (v0.3.3) ── */
.bi-era-grid {
  background: var(--bg);
  padding: 0 0 clamp(3rem, 6vw, 5rem);
}
.bi-era-grid__header {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  padding: clamp(2.5rem, 5vw, 4rem) 3rem 1.75rem;
}
.bi-era-grid__all {
  font-family: var(--f-label);
  font-size: .72rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--gold);
  text-decoration: none;
  transition: opacity .2s;
}
.bi-era-grid__all:hover { opacity: 1; text-decoration: underline; }

.bi-era-grid__row {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 1.5rem;
  padding-inline: 3rem;
}
.bi-era-grid__cell {
  position: relative;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  text-decoration: none;
  background: var(--sur);
  border: 1px solid hsl(var(--gold-hsl) / .12);
  border-radius: 0;
  transition: transform .3s ease, box-shadow .3s ease, border-color .3s ease;
}
.bi-era-grid__cell:hover {
  transform: translateY(-4px);
  box-shadow: 0 14px 32px hsl(220 45% 3% / .35);
  border-color: hsl(var(--gold-hsl) / .35);
}
/* Featured card — the carousel's anchor: wider, brighter, gold border by
   default rather than five equally-weighted boxes. Spans 2 of 6 tracks so
   it plus the 4 remaining single-track cards fill the row exactly. */
.bi-era-grid__cell--featured {
  grid-column: span 2;
  border-color: var(--gold);
}
.bi-era-grid__cell--featured:hover { border-color: var(--gold); }
/* Non-featured cards read slightly dimmer at rest, brightening to full
   attention on hover -- the "luxury carousel" focal effect. */
.bi-era-grid__cell:not(.bi-era-grid__cell--featured) .bi-era-grid__media-bg { filter: var(--photo-grade) brightness(.82) saturate(.92); }
.bi-era-grid__cell:not(.bi-era-grid__cell--featured):hover .bi-era-grid__media-bg { filter: var(--photo-grade); }
.bi-era-grid__media {
  position: relative;
  height: 190px;
  flex-shrink: 0;
  overflow: hidden;
  background-color: var(--sur2);
  display: flex;
  align-items: center;
  justify-content: center;
}
.bi-era-grid__media-bg {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
  filter: var(--photo-grade);
  /* Source photos are often a full car shot in a large room/showroom, leaving
     the car itself small at this card's ~190px height — zoom in further than
     the previous 1.12/1.2 so the car reads clearly instead of looking like a
     mostly-empty background. */
  transform: scale(1.4);
  transition: transform .5s ease, filter .4s ease;
}
.bi-era-grid__cell:hover .bi-era-grid__media-bg { transform: scale(1.5); }
.bi-era-grid__monogram {
  font-family: var(--f-display);
  font-style: italic;
  font-size: 2.5rem;
  color: hsl(var(--gold-hsl) / .12);
}
.bi-era-grid__cell::after {
  content: '';
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 2px;
  background: var(--gold);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform .35s ease;
}
.bi-era-grid__cell:hover::after { transform: scaleX(1); }

.bi-era-grid__caption {
  position: relative;
  flex: 1;
  padding: 1rem 1.1rem 1.1rem;
  display: flex;
  flex-direction: column;
  gap: .3rem;
}
.bi-era-grid__name {
  font-family: var(--f-display);
  font-style: italic;
  font-size: 1.05rem;
  font-weight: 400;
  color: var(--fg);
  line-height: 1.2;
  transition: color .2s;
}
.bi-era-grid__cell:hover .bi-era-grid__name { color: var(--gold); }
.bi-era-grid__count {
  font-family: var(--f-label);
  font-size: .6rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--gold);
}
.bi-era-grid__cta {
  display: inline-flex;
  align-items: center;
  margin-top: auto;
  padding-top: .6rem;
  font-family: var(--f-label);
  font-size: .62rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: hsl(var(--fg-hsl) / .5);
  transition: color .2s, transform .2s;
}
.bi-era-grid__cell:hover .bi-era-grid__cta { color: var(--gold); transform: translateX(3px); }

@media (max-width: 860px) {
  .bi-era-grid__header { padding-inline: 2rem; }
  .bi-era-grid__row {
    grid-template-columns: repeat(3, 1fr);
    gap: 1rem;
    padding-inline: 2rem;
  }
  .bi-era-grid__media { height: 150px; }
}
/* (3191) Same phone gutter as the rest of the page. */
@media (max-width: 640px) {
  .bi-era-grid__header { padding-inline: var(--bi-shell-gutter); }
  .bi-era-grid__row { padding-inline: var(--bi-shell-gutter); }
}
@media (max-width: 600px) {
  .bi-era-grid__row {
    grid-template-columns: repeat(2, 1fr);
    /* No fixed grid-auto-rows here (869e6zb8z): a hardcoded 145px row was
       shorter than the 150px media alone, before even adding the caption
       (name + count + "Browse" link) below it. `.bi-era-grid__cell` clips
       overflow, so the whole caption silently disappeared instead of
       spilling out — confirmed live via getBoundingClientRect + a
       Playwright screenshot at 390px: every tile showed the photo with no
       caption text at all. Letting rows size to their content (the default,
       same as every other breakpoint of this grid) gives each card the
       room its own text actually needs. */
    gap: 8px;
  }
}

/* ─── Category switcher ──────────────────────────────────────────── */
.bi-cat-switcher {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
  margin-bottom: 3rem;
}
.bi-cat-switcher__all,
.bi-cat-switcher__item {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  padding: .45rem 1.1rem;
  border-radius: 0;
  border: 1px solid hsl(var(--fg-hsl)/.18);
  font-family: var(--f-label);
  font-size: .7rem;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: hsl(var(--fg-hsl)/.7);
  text-decoration: none;
  transition: border-color .2s, color .2s, background .2s;
}
.bi-cat-switcher__all:hover,
.bi-cat-switcher__item:hover {
  border-color: var(--gold);
  color: var(--gold);
}
.bi-cat-switcher__item.is-active {
  background: var(--gold);
  border-color: var(--gold);
  color: #000;
  font-weight: 600;
}
.bi-cat-switcher__count {
  font-size: .65rem;
}

.bi-cat-archive-hero {
  margin-bottom: 1.5rem;
}
.bi-cat-archive-overview {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(18rem, .95fr);
  gap: 1.35rem;
  margin-bottom: 1.6rem;
}
.bi-cat-archive-overview__intro,
.bi-cat-archive-overview__item,
.bi-cat-lead-type__copy,
.bi-cat-lead-type__meta-item {
  background: linear-gradient(180deg, hsl(var(--sur-hsl) / .94), hsl(var(--sur2-hsl) / .84));
  border: 1px solid hsl(var(--gold-hsl) / .12);
  box-shadow: 0 16px 40px rgba(0, 0, 0, .16);
}
.bi-cat-archive-overview__intro {
  padding: 1.45rem 1.5rem 1.35rem;
}
.bi-cat-archive-overview__eyebrow,
.bi-cat-archive-overview__label,
.bi-cat-lead-type__meta-label,
.bi-type-card__plate {
  font-family: var(--f-label);
  font-size: .5rem;
  letter-spacing: var(--bi-ls-overline, 1px);
  text-transform: uppercase;
  color: var(--gold);
}
.bi-cat-archive-overview__title {
  margin: .5rem 0 0;
  font-family: var(--f-display);
  font-size: clamp(1.7rem, 2.8vw, 2.35rem);
  font-weight: 300;
  line-height: 1.08;
  color: var(--fg);
}
.bi-cat-archive-overview__text {
  margin: .95rem 0 0;
  max-width: 58ch;
  color: hsl(var(--fg-hsl) / .64);
  line-height: 1.72;
}
.bi-cat-archive-overview__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .85rem;
}
.bi-cat-archive-overview__item {
  display: grid;
  gap: .28rem;
  padding: 1rem 1.05rem .95rem;
}
.bi-cat-archive-overview__item--wide {
  grid-column: 1 / -1;
}
.bi-cat-archive-overview__value,
.bi-cat-lead-type__meta-value {
  font-family: var(--f-display);
  font-size: 1.18rem;
  color: var(--fg);
}
.bi-cat-lead-type {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(16rem, .9fr);
  gap: 1.2rem;
  margin-bottom: 2rem;
}
.bi-cat-lead-type__copy {
  padding: 1.45rem 1.5rem 1.35rem;
}
.bi-cat-lead-type__title {
  margin: .45rem 0 0;
  font-family: var(--f-display);
  font-size: clamp(1.8rem, 3vw, 2.4rem);
  font-weight: 300;
  color: var(--fg);
}
.bi-cat-lead-type__text {
  margin: .9rem 0 0;
  max-width: 54ch;
  color: hsl(var(--fg-hsl) / .64);
  line-height: 1.72;
}
.bi-cat-lead-type__link {
  display: inline-flex;
  margin-top: 1rem;
  font-family: var(--f-label);
  font-size: .58rem;
  letter-spacing: var(--bi-ls-overline, 1px);
  text-transform: uppercase;
  color: var(--gold);
}
.bi-cat-lead-type__meta {
  display: grid;
  gap: .85rem;
}
.bi-cat-lead-type__meta-item {
  display: grid;
  gap: .28rem;
  padding: 1rem 1.05rem .95rem;
}
.bi-types-era__title {
  margin: .35rem 0 0;
  font-family: var(--f-display);
  font-size: clamp(1.35rem, 2.3vw, 1.85rem);
  font-weight: 300;
  color: var(--fg);
}
.bi-type-card__plate {
  margin-bottom: .55rem;
}
.bi-type-card__summary {
  margin: .8rem 0 0;
  color: hsl(var(--fg-hsl) / .66);
  line-height: 1.68;
}
.bi-types-era .bi-type-card__meta {
  margin-top: .8rem;
}

@media (max-width: 700px) {
  .bi-cat-archive-overview,
  .bi-cat-lead-type {
    grid-template-columns: 1fr;
  }
  .bi-cat-archive-overview__grid {
    grid-template-columns: 1fr;
  }
}

/* ══════════════════════════════════════════════════════════════
   CHASSIS PAGE — References Section
   ══════════════════════════════════════════════════════════════ */

.ch-refs-list {
  display: flex;
  flex-direction: column;
  gap: 0;
  list-style: none;
  counter-reset: ref-counter;
}
.ch-ref-item {
  counter-increment: ref-counter;
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 1.25rem;
  padding: 1rem 0;
  border-bottom: 1px solid hsl(var(--gold-hsl) / .1);
  align-items: start;
}
.ch-ref-item:last-child { border-bottom: none; }
.ch-ref-item::before {
  content: counter(ref-counter, decimal-leading-zero);
  font-family: var(--f-label);
  font-size: .5625rem;
  font-weight: 600;
  color: hsl(var(--gold-hsl) / .35);
  letter-spacing: .08em;
  padding-top: .2rem;
  min-width: 28px;
}
.ch-ref-item__type {
  display: inline-block;
  font-family: var(--f-label);
  font-size: .5rem;
  font-weight: 600;
  letter-spacing: var(--bi-ls-overline, 1px);
  text-transform: uppercase;
  color: hsl(var(--fg-hsl) / .45);
  border: 1px solid hsl(var(--fg-hsl) / .15);
  padding: .15rem .5rem;
  margin-bottom: .35rem;
  margin-right: .5rem;
}
.ch-ref-item__citation {
  font-size: .9375rem;
  line-height: 1.7;
  color: hsl(var(--fg-hsl) / .8);
}
.ch-ref-item__author { color: hsl(var(--fg-hsl) / .65); }
.ch-ref-item__notes {
  font-size: .8125rem;
  color: hsl(var(--fg-hsl) / .4);
  margin-top: .35rem;
  font-style: italic;
}

@media (max-width: 640px) {
  .ch-ref-item { grid-template-columns: 1fr; }
  .ch-ref-item::before { display: none; }
}

/* ═══════════════════════════════════════════════════════════
   Chassis page — redesigned hero & BCC workflow
   ═══════════════════════════════════════════════════════════ */

.bi-ch-hero {
  position: relative;
  min-height: 78vh;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  background: var(--bg);
}
.bi-ch-hero__bg {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center 30%;
  filter: saturate(.65) brightness(.85);
}
.bi-ch-hero__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    108deg,
    hsl(var(--bg-hsl) / .97) 0%,
    hsl(var(--bg-hsl) / .84) 48%,
    hsl(var(--bg-hsl) / .28) 100%
  );
}
.bi-ch-hero__inner {
  position: relative;
  z-index: 1;
  flex: 1;
  display: flex;
  flex-direction: column;
  padding-top: 1.5rem;
  padding-bottom: 3.5rem;
}
.bi-ch-hero__crumb {
  margin-bottom: 3rem;
}
.bi-ch-hero__grid {
  flex: 1;
  display: grid;
  grid-template-columns: 1fr 340px;
  align-items: center;
  gap: 3rem;
}
.bi-ch-hero__left {
  display: flex;
  flex-direction: column;
  gap: .375rem;
}
.bi-ch-hero__kicker {
  font-family: var(--f-label);
  font-size: .5rem;
  letter-spacing: var(--bi-ls-overline, 1px);
  text-transform: uppercase;
  color: var(--gold);
  margin-bottom: .375rem;
}
.bi-ch-hero__num {
  font-family: var(--f-display);
  font-size: clamp(4.5rem, 11vw, 9.5rem);
  font-weight: 300;
  letter-spacing: .02em;
  line-height: 1;
  color: var(--gold);
  margin: 0;
}
.bi-ch-hero__typename {
  font-family: var(--f-display);
  font-size: clamp(1.2rem, 2.8vw, 1.875rem);
  font-weight: 300;
  letter-spacing: .06em;
  color: var(--fg);
  margin-top: .375rem;
}
.bi-ch-hero__varlabel {
  color: hsl(var(--fg-hsl) / .45);
  font-size: .85em;
}
.bi-ch-hero__body {
  /* Running text (869etqyny): body copy = --f-body (Tinos), not --f-label. */
  font-family: var(--f-body, var(--f-label));
  font-size: .8125rem;
  color: hsl(var(--fg-hsl) / .5);
  letter-spacing: .04em;
  margin-top: .25rem;
}
.bi-ch-hero__desc {
  font-size: .9375rem;
  color: hsl(var(--fg-hsl) / .55);
  max-width: 40ch;
  margin-top: .625rem;
  line-height: 1.7;
}

/* Identity card */
.bi-ch-id-card {
  background: hsl(var(--sur-hsl) / .82);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  border: 1px solid hsl(var(--gold-hsl) / .16);
  padding: 1.5rem;
}
.bi-ch-id-card__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .75rem;
  padding-bottom: .875rem;
  border-bottom: 1px solid hsl(var(--gold-hsl) / .1);
  margin-bottom: 1rem;
}
.bi-ch-id-card__title {
  font-family: var(--f-label);
  font-size: .5rem;
  letter-spacing: var(--bi-ls-overline, 1px);
  text-transform: uppercase;
  color: hsl(var(--fg-hsl) / .4);
}
.bi-ch-bcc-tag {
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  font-family: var(--f-label);
  font-size: .4875rem;
  letter-spacing: var(--bi-ls-overline, 1px);
  text-transform: uppercase;
  color: hsl(var(--fg-hsl) / .65);
}
.bi-ch-dot {
  width: 7px;
  height: 7px;
  border-radius: 0;
  flex-shrink: 0;
  background: hsl(var(--fg-hsl) / .2);
}
.bi-ch-dot--green { background: #4ade80; box-shadow: 0 0 5px #4ade8055; }
.bi-ch-dot--amber { background: #f59e0b; box-shadow: 0 0 5px #f59e0b55; }
.bi-ch-dot--muted { background: hsl(var(--fg-hsl) / .18); }

.bi-ch-id-list {
  display: flex;
  flex-direction: column;
  gap: 0;
}
.bi-ch-id-row {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 1rem;
  padding: .5rem 0;
  border-bottom: 1px solid hsl(var(--fg-hsl) / .04);
}
.bi-ch-id-row:last-child { border-bottom: none; }
.bi-ch-id-row dt {
  font-family: var(--f-label);
  font-size: .5rem;
  letter-spacing: var(--bi-ls-overline, 1px);
  text-transform: uppercase;
  color: hsl(var(--fg-hsl) / .38);
  white-space: nowrap;
  flex-shrink: 0;
}
.bi-ch-id-row dd {
  font-family: var(--f-display);
  font-size: .9375rem;
  color: var(--fg);
  text-align: right;
  max-width: 18ch;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.bi-ch-id-card__footer {
  margin-top: 1rem;
  padding-top: .75rem;
  border-top: 1px solid hsl(var(--gold-hsl) / .08);
  font-family: var(--f-label);
  font-size: .4875rem;
  letter-spacing: .1em;
  color: hsl(var(--fg-hsl) / .22);
  line-height: 1.55;
}

/* BCC Workflow strip */
.bi-ch-workflow {
  background: hsl(var(--sur-hsl));
  border-top: 1px solid hsl(var(--gold-hsl) / .1);
  border-bottom: 1px solid hsl(var(--gold-hsl) / .08);
}
.bi-ch-workflow__inner {
  display: flex;
  align-items: center;
  gap: 2rem;
  padding: .875rem 0;
  flex-wrap: wrap;
}
.bi-ch-workflow__label {
  font-family: var(--f-label);
  font-size: .4875rem;
  letter-spacing: var(--bi-ls-overline, 1px);
  text-transform: uppercase;
  color: hsl(var(--fg-hsl) / .3);
  white-space: nowrap;
}
.bi-ch-workflow__steps {
  display: flex;
  align-items: center;
  flex: 1;
  min-width: 0;
}
.bi-ch-workflow__step {
  display: flex;
  align-items: center;
  gap: .375rem;
  flex-shrink: 0;
}
.bi-ch-workflow__dot {
  width: 8px;
  height: 8px;
  border-radius: 0;
  border: 1.5px solid hsl(var(--fg-hsl) / .18);
  background: transparent;
  flex-shrink: 0;
}
.bi-ch-workflow__step.is-done .bi-ch-workflow__dot {
  background: var(--gold);
  border-color: var(--gold);
}
.bi-ch-workflow__step.is-active .bi-ch-workflow__dot {
  background: transparent;
  border-color: var(--gold);
  box-shadow: 0 0 0 3px hsl(var(--gold-hsl) / .18);
}
.bi-ch-workflow__name {
  font-family: var(--f-label);
  font-size: .4875rem;
  letter-spacing: .13em;
  text-transform: uppercase;
  color: hsl(var(--fg-hsl) / .28);
  transition: color .15s;
}
.bi-ch-workflow__step.is-done .bi-ch-workflow__name { color: var(--gold); }
.bi-ch-workflow__step.is-active .bi-ch-workflow__name { color: var(--gold); }
.bi-ch-workflow__line {
  flex: 1;
  height: 1px;
  background: hsl(var(--fg-hsl) / .07);
  margin: 0 .5rem;
  min-width: 1rem;
}
.bi-ch-workflow__line.is-done { background: hsl(var(--gold-hsl) / .35); }
.bi-ch-workflow__status {
  font-family: var(--f-label);
  font-size: .4875rem;
  letter-spacing: var(--bi-ls-overline, 1px);
  text-transform: uppercase;
  color: var(--gold);
  border: 1px solid hsl(var(--gold-hsl) / .22);
  padding: .2rem .65rem;
  white-space: nowrap;
}

@media (max-width: 900px) {
  .bi-ch-hero__grid {
    grid-template-columns: 1fr;
    gap: 2rem;
  }
  .bi-ch-id-card {
    max-width: 480px;
  }
}
@media (max-width: 640px) {
  .bi-ch-hero { min-height: 60vh; }
  .bi-ch-hero__overlay {
    background: linear-gradient(
      180deg,
      hsl(var(--bg-hsl) / .6) 0%,
      hsl(var(--bg-hsl) / .95) 65%
    );
  }
  .bi-ch-workflow__inner { gap: .75rem; }
  .bi-ch-workflow__steps { overflow-x: auto; padding-bottom: .25rem; }
}

/* Registry chassis page */
.bi-registry-page {
  background:
    radial-gradient(circle at top right, hsl(var(--gold-hsl) / .09), transparent 28%),
    linear-gradient(180deg, hsl(var(--bg-hsl)) 0%, hsl(var(--sur-hsl)) 100%);
}
.bi-reg-hero {
  position: relative;
  min-height: 72vh;
  overflow: hidden;
  border-bottom: 1px solid hsl(var(--gold-hsl) / .1);
}
.bi-reg-hero__media {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
  filter: saturate(.72) brightness(.58);
  transform: scale(1.03);
}
.bi-reg-hero__veil {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(112deg, hsl(var(--bg-hsl) / .96) 8%, hsl(var(--bg-hsl) / .82) 48%, hsl(var(--bg-hsl) / .42) 100%),
    linear-gradient(180deg, transparent 0%, hsl(var(--bg-hsl) / .55) 100%);
}
.bi-reg-hero__inner {
  position: relative;
  z-index: 1;
  padding-top: 1.5rem;
  padding-bottom: 4rem;
}
.bi-reg-hero__crumb {
  margin-bottom: 2.75rem;
}
.bi-reg-hero__grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(18rem, 27rem);
  gap: 2.5rem;
  align-items: end;
}
.bi-reg-hero__eyebrow,
.bi-reg-card__eyebrow,
.bi-reg-panel__label {
  font-family: var(--f-label);
  font-size: .52rem;
  letter-spacing: var(--bi-ls-overline, 1px);
  text-transform: uppercase;
  color: var(--gold);
}
.bi-reg-hero__title {
  margin: .4rem 0 0;
  font-family: var(--f-display);
  font-size: clamp(4rem, 11vw, 8rem);
  font-weight: 300;
  line-height: .92;
  letter-spacing: .03em;
  color: var(--gold);
}
.bi-reg-hero__family {
  margin: 1rem 0 0;
  font-family: var(--f-display);
  font-size: clamp(1.35rem, 2.8vw, 2.1rem);
  letter-spacing: .04em;
  color: var(--fg);
}
.bi-reg-hero__summary {
  margin: 1rem 0 0;
  max-width: 44ch;
  font-size: .74rem;
  line-height: 1.8;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: hsl(var(--fg-hsl) / .44);
}
.bi-reg-hero__facts {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .85rem;
  max-width: 42rem;
  margin-top: 1.35rem;
}
.bi-reg-hero__fact {
  display: grid;
  gap: .22rem;
  padding: .9rem 1rem;
  border: 1px solid hsl(var(--gold-hsl) / .12);
  background:
    linear-gradient(180deg, hsl(var(--sur-hsl) / .62), hsl(var(--sur2-hsl) / .36));
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}
.bi-reg-hero__fact-label {
  font-family: var(--f-label);
  font-size: .48rem;
  letter-spacing: var(--bi-ls-overline, 1px);
  text-transform: uppercase;
  color: var(--gold);
}
.bi-reg-hero__fact-value {
  font-family: var(--f-display);
  font-size: 1.04rem;
  line-height: 1.3;
  color: var(--fg);
}
.bi-reg-hero__side {
  align-self: stretch;
}
.bi-reg-panel {
  height: 100%;
  background: linear-gradient(180deg, hsl(var(--sur-hsl) / .9), hsl(var(--sur2-hsl) / .78));
  border: 1px solid hsl(var(--gold-hsl) / .18);
  box-shadow: 0 22px 60px rgba(0, 0, 0, .28);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  padding: 1.25rem 1.25rem 1rem;
}
.bi-reg-panel__list {
  margin: .95rem 0 0;
  display: flex;
  flex-direction: column;
}
.bi-reg-panel__row {
  display: grid;
  grid-template-columns: minmax(0, .88fr) minmax(0, 1.12fr);
  gap: .85rem;
  padding: .7rem 0;
  border-bottom: 1px solid hsl(var(--gold-hsl) / .08);
}
.bi-reg-panel__row:last-child {
  border-bottom: none;
}
.bi-reg-panel__row dt {
  font-family: var(--f-label);
  font-size: .56rem;
  letter-spacing: var(--bi-ls-overline, 1px);
  text-transform: uppercase;
  color: hsl(var(--fg-hsl) / .42);
}
.bi-reg-panel__row dd {
  margin: 0;
  font-family: var(--f-display);
  font-size: 1rem;
  line-height: 1.35;
  color: var(--fg);
}
.bi-reg-section {
  padding: 3rem 0 4rem;
}
.bi-reg-stack {
  display: grid;
  gap: 1.5rem;
}
.bi-reg-card {
  background: linear-gradient(180deg, hsl(var(--sur-hsl) / .92), hsl(var(--sur2-hsl) / .84));
  border: 1px solid hsl(var(--gold-hsl) / .12);
  padding: 1.4rem 1.4rem 1.25rem;
  box-shadow: 0 18px 48px rgba(0, 0, 0, .16);
}
.bi-reg-card__head {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  align-items: end;
  margin-bottom: 1rem;
}
.bi-reg-card__title {
  margin: .35rem 0 0;
  font-family: var(--f-display);
  font-size: clamp(1.45rem, 2.6vw, 2rem);
  font-weight: 300;
  color: var(--fg);
}
.bi-reg-card__body {
  color: hsl(var(--fg-hsl) / .78);
}
.bi-reg-prose p {
  margin: 0;
  font-size: .98rem;
  line-height: 1.82;
}
.bi-reg-empty {
  margin: 0;
  font-size: .95rem;
  line-height: 1.7;
  color: hsl(var(--fg-hsl) / .5);
  font-style: italic;
}
.bi-reg-table-wrap {
  overflow-x: auto;
  border: 1px solid hsl(var(--gold-hsl) / .1);
}
.bi-reg-table {
  width: 100%;
  border-collapse: collapse;
  min-width: 720px;
}
.bi-reg-table thead th {
  padding: .85rem .95rem;
  text-align: left;
  font-family: var(--f-label);
  font-size: .54rem;
  letter-spacing: var(--bi-ls-button, 1px);
  text-transform: uppercase;
  color: hsl(var(--fg-hsl) / .44);
  background: hsl(var(--bg-hsl) / .44);
  border-bottom: 1px solid hsl(var(--gold-hsl) / .12);
}
.bi-reg-table tbody td {
  padding: .95rem;
  border-bottom: 1px solid hsl(var(--gold-hsl) / .08);
  color: hsl(var(--fg-hsl) / .78);
  line-height: 1.5;
}
.bi-reg-table tbody tr:last-child td {
  border-bottom: none;
}
.bi-reg-table tbody tr:hover {
  background: hsl(var(--gold-hsl) / .05);
}
.bi-reg-table tbody tr.is-current {
  background: linear-gradient(90deg, hsl(var(--gold-hsl) / .12), hsl(var(--gold-hsl) / .03));
}
.bi-reg-link,
.bi-reg-action {
  color: var(--gold);
  text-decoration: none;
}
.bi-reg-link:hover,
.bi-reg-action:hover {
  color: var(--gold);
}
.bi-reg-photo-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr));
  gap: 1rem;
}
.bi-reg-photo {
  display: block;
  position: relative;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  background: hsl(var(--sur2-hsl));
  border: 1px solid hsl(var(--gold-hsl) / .12);
}
.bi-reg-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .5s ease, filter .25s ease;
  filter: brightness(.82) sepia(.08);
}
.bi-reg-photo:hover img {
  transform: scale(1.04);
  filter: brightness(1) sepia(0);
}
.bi-reg-photo__caption {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 2;
  padding: .9rem 1rem;
  font-size: .84rem;
  line-height: 1.45;
  color: hsl(var(--fg-hsl) / .92);
  background: linear-gradient(180deg, transparent 0%, hsl(var(--bg-hsl) / .88) 100%);
}
.bi-reg-cta {
  display: flex;
  justify-content: space-between;
  gap: 1.25rem;
  align-items: center;
  padding: 1.35rem 1.4rem;
  border: 1px solid hsl(var(--gold-hsl) / .14);
  background: linear-gradient(90deg, hsl(var(--sur-hsl) / .94), hsl(var(--sur2-hsl) / .84));
}
.bi-reg-cta__text {
  margin: .35rem 0 0;
  color: hsl(var(--fg-hsl) / .66);
}
.bi-reg-cta__actions {
  display: flex;
  flex-wrap: wrap;
  gap: .75rem;
}
.bi-reg-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 2.85rem;
  padding: 0 1.15rem;
  border: 1px solid hsl(var(--gold-hsl) / .28);
  background: var(--gold);
  color: hsl(var(--bg-hsl));
  text-decoration: none;
  font-family: var(--f-label);
  font-size: .58rem;
  letter-spacing: var(--bi-ls-button, 1px);
  text-transform: uppercase;
}
.bi-reg-button--ghost {
  background: transparent;
  color: var(--gold);
}
.bi-reg-current-badge {
  font-size: .8rem;
  color: var(--gold);
  font-style: italic;
}
.bi-reg-muted {
  color: hsl(var(--fg-hsl) / .5);
  display: block;
  margin-top: .2rem;
}
.bi-reg-ref-link {
  color: var(--gold);
  text-decoration: none;
}
.bi-reg-ref-link:hover {
  color: var(--gold);
  text-decoration: underline;
}

@media (max-width: 900px) {
  .bi-reg-hero__grid {
    grid-template-columns: 1fr;
    gap: 1.5rem;
  }
  .bi-reg-hero__facts {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    max-width: none;
  }
  .bi-reg-hero__side {
    max-width: 34rem;
  }
  .bi-reg-cta {
    flex-direction: column;
    align-items: flex-start;
  }
}

@media (max-width: 640px) {
  .bi-reg-hero {
    min-height: auto;
  }
  .bi-reg-hero__inner {
    padding-bottom: 2.4rem;
  }
  .bi-reg-hero__summary,
  .bi-reg-prose p {
    font-size: .92rem;
    line-height: 1.72;
  }
  .bi-reg-hero__summary {
    font-size: .66rem;
    letter-spacing: .12em;
  }
  .bi-reg-hero__facts {
    grid-template-columns: 1fr;
    gap: .7rem;
  }
  .bi-reg-hero__fact {
    padding: .82rem .88rem;
  }
  .bi-reg-hero__fact-value {
    font-size: .96rem;
  }
  .bi-reg-card,
  .bi-reg-panel,
  .bi-reg-cta {
    padding-left: 1rem;
    padding-right: 1rem;
  }
  .bi-reg-photo-grid {
    grid-template-columns: 1fr;
  }
}

/* ═══════════════════════════════════════════════════════════
   Chassis page — luxury dashboard overrides
   ═══════════════════════════════════════════════════════════ */

/* ── Stats strip ── */
.bi-reg-stat-strip {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1px;
  background: hsl(var(--gold-hsl) / .18);
  border: 1px solid hsl(var(--gold-hsl) / .2);
  margin-bottom: 3rem;
}
.bi-reg-stat-strip__item {
  padding: 2rem 1.75rem 1.75rem;
  background: hsl(220 50% 6%);
  display: grid;
  gap: .55rem;
  position: relative;
}
.bi-reg-stat-strip__item::before {
  content: '';
  position: absolute;
  top: 0;
  left: 1.75rem;
  width: 2rem;
  height: 2px;
  background: var(--gold);
}
.bi-reg-stat-strip__num {
  font-family: var(--f-display);
  font-size: clamp(2.6rem, 5vw, 4.2rem);
  font-weight: 300;
  font-style: italic;
  line-height: 1;
  color: var(--gold);
  letter-spacing: .01em;
}
.bi-reg-stat-strip__lbl {
  font-family: var(--f-label);
  font-size: .46rem;
  letter-spacing: var(--bi-ls-overline, 1px);
  text-transform: uppercase;
  color: hsl(var(--fg-hsl) / .38);
}

/* ── Section background ── */
.bi-reg-section {
  background: hsl(220 50% 6%);
  padding: 3rem 0 5rem;
}

/* ── Pair row — description + specs side-by-side ── */
.bi-reg-pair-row {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 28rem), 1fr));
  gap: 1.5rem;
}
.bi-reg-pair-row .bi-reg-table {
  min-width: 0;
}

/* ── Cards ── */
.bi-reg-card {
  background: hsl(220 48% 7%);
  border: 1px solid hsl(var(--gold-hsl) / .14);
  box-shadow: none;
  padding: 2rem 2rem 1.75rem;
  position: relative;
}
.bi-reg-card::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 1px;
  background: linear-gradient(90deg, var(--gold) 0%, hsl(var(--gold-hsl) / .12) 60%, transparent 100%);
}
.bi-reg-card__head {
  margin-bottom: 1.25rem;
  padding-bottom: 1.1rem;
  border-bottom: 1px solid hsl(var(--gold-hsl) / .1);
}
.bi-reg-card__eyebrow {
  font-size: .48rem;
  letter-spacing: var(--bi-ls-overline, 1px);
  color: var(--gold);
}
.bi-reg-card__title {
  font-size: clamp(1.3rem, 2.4vw, 1.85rem);
  margin-top: .3rem;
}
.bi-reg-card__body {
  color: hsl(var(--fg-hsl) / .7);
}

/* ── Prose ── */
.bi-reg-prose p {
  font-size: .97rem;
  line-height: 1.95;
  color: hsl(var(--fg-hsl) / .68);
  letter-spacing: .015em;
}

/* ── Tables ── */
.bi-reg-table-wrap {
  border: none;
  border-top: 1px solid hsl(var(--gold-hsl) / .1);
}
.bi-reg-table thead th {
  background: transparent;
  padding: .8rem 1rem;
  font-size: .48rem;
  letter-spacing: var(--bi-ls-overline, 1px);
  color: hsl(var(--fg-hsl) / .36);
  border-bottom: 1px solid hsl(var(--gold-hsl) / .1);
}
.bi-reg-table tbody td {
  padding: 1rem;
  border-bottom: 1px solid hsl(var(--gold-hsl) / .06);
  font-size: .93rem;
}
.bi-reg-table tbody tr:hover {
  background: hsl(var(--gold-hsl) / .04);
}

/* ── Count badge ── */
.bi-reg-count-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 1.8rem;
  height: 1.45rem;
  padding: 0 .5rem;
  margin-left: .65rem;
  font-family: var(--f-label);
  font-size: .46rem;
  letter-spacing: .08em;
  color: hsl(220 50% 6%);
  background: var(--gold);
  vertical-align: middle;
  position: relative;
  top: -.18em;
}

/* ── Footer tagline ── */
.bi-reg-footer-tagline {
  margin-top: 1rem;
  padding: 3rem 0 1rem;
  border-top: 1px solid hsl(var(--gold-hsl) / .12);
  text-align: center;
}
.bi-reg-footer-tagline__text {
  font-family: var(--f-display);
  font-size: clamp(.95rem, 1.8vw, 1.4rem);
  font-weight: 300;
  font-style: italic;
  letter-spacing: .18em;
  color: hsl(var(--fg-hsl) / .25);
}
.bi-reg-footer-tagline__text em {
  font-style: normal;
  color: hsl(var(--gold-hsl) / .45);
}

/* ── Panel (registry details sidebar) ── */
.bi-reg-panel {
  background: hsl(220 48% 7%);
  border-color: hsl(var(--gold-hsl) / .16);
}
.bi-reg-panel__row {
  padding: .8rem 0;
  border-bottom-color: hsl(var(--gold-hsl) / .07);
}
.bi-reg-panel__row dt {
  font-size: .5rem;
  letter-spacing: var(--bi-ls-overline, 1px);
  color: hsl(var(--fg-hsl) / .36);
}
.bi-reg-panel__row dd {
  font-size: .95rem;
  color: hsl(var(--fg-hsl) / .86);
}

/* ── Responsive ── */
@media (max-width: 640px) {
  .bi-reg-stat-strip {
    grid-template-columns: repeat(2, 1fr);
  }
  .bi-reg-stat-strip__num {
    font-size: 2.4rem;
  }
  .bi-reg-card {
    padding: 1.5rem 1.25rem 1.35rem;
  }
}

/* ═══════════════════════════════════════════════════════════
   Category archive — 3×3 card grid
   ═══════════════════════════════════════════════════════════ */

/* Search bar */
.bi-cat-archive__search-row {
  margin-bottom: 2.75rem;
}
.bi-cat-archive__search {
  position: relative;
  max-width: 640px;
  box-shadow: 0 10px 28px hsl(220 45% 2% / .3);
}
.bi-cat-archive__search svg {
  position: absolute;
  left: 1.35rem;
  top: 50%;
  transform: translateY(-50%);
  color: var(--gold);
  pointer-events: none;
  flex-shrink: 0;
}
#bi-cat-search {
  width: 100%;
  background: hsl(var(--sur-hsl) / .8);
  border: 1px solid hsl(var(--gold-hsl) / .25);
  color: var(--fg);
  font-family: var(--f-label);
  font-size: .95rem;
  padding: 1.1rem 1.25rem 1.1rem 3.35rem;
  /* 3124: `outline: none` removed. It mattered more here than anywhere else
     in the sweep: this is an ID selector, so it outranked every rule
     focus.css could reasonably write, and the suppression would have
     survived the whole task. */
  transition: border-color .2s, box-shadow .2s;
  border-radius: 0;
  -webkit-appearance: none;
}
#bi-cat-search:focus {
  border-color: var(--gold);
  /* 3124: was a 12%-opacity gold glow, the same near-invisible treatment
     .bdb-propose-input had. Now the site's field idiom. Kept on this
     selector because an ID beats anything focus.css declares. */
  box-shadow: 0 var(--bi-focus-w, 2px) 0 0 var(--gold);
}
#bi-cat-search::placeholder {
  color: hsl(var(--fg-hsl) / .28);
}

/* Grid */
.bi-cat-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.25rem;
  margin-bottom: 3.5rem;
}

/* Card */
.bi-cat-card {
  position: relative;
  display: flex;
  flex-direction: column;
  background: hsl(var(--sur-hsl));
  border: 1px solid hsl(var(--gold-hsl) / .1);
  padding: 1.875rem 1.75rem 1.5rem;
  text-decoration: none;
  color: var(--fg);
  min-height: 210px;
  transition:
    transform .28s cubic-bezier(.22,.61,.36,1),
    border-color .28s,
    box-shadow .28s,
    background .28s;
  overflow: hidden;
}
.bi-cat-card::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, hsl(var(--gold-hsl) / .05) 0%, transparent 55%);
  opacity: 0;
  transition: opacity .28s;
  pointer-events: none;
}
.bi-cat-card::after {
  content: '';
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 2px;
  background: var(--gold);
  transform: scaleY(0);
  transform-origin: bottom;
  transition: transform .3s cubic-bezier(.22,.61,.36,1);
}
.bi-cat-card:hover {
  transform: translateY(-5px);
  border-color: hsl(var(--gold-hsl) / .32);
  box-shadow:
    0 14px 36px hsl(var(--bg-hsl) / .65),
    0 0 0 1px hsl(var(--gold-hsl) / .06);
  background: hsl(var(--sur2-hsl));
}
.bi-cat-card:hover::before { opacity: 1; }
.bi-cat-card:hover::after  { transform: scaleY(1); }

.bi-cat-card__top  { flex: 1; }
.bi-cat-card__name {
  font-family: var(--f-display);
  font-size: 1.0625rem;
  font-weight: 400;
  letter-spacing: .03em;
  color: var(--fg);
  margin-bottom: .625rem;
  line-height: 1.3;
  transition: color .25s;
}
.bi-cat-card:hover .bi-cat-card__name { color: var(--gold); }

.bi-cat-card__desc {
  font-size: .8125rem;
  color: hsl(var(--fg-hsl) / .48);
  line-height: 1.65;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.bi-cat-card__bottom {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  padding-top: 1.25rem;
  margin-top: 1.25rem;
  border-top: 1px solid hsl(var(--gold-hsl) / .08);
}
.bi-cat-card__stats {
  display: flex;
  gap: 1.5rem;
}
.bi-cat-card__stat {
  display: flex;
  flex-direction: column;
  gap: .15rem;
}
.bi-cat-card__stat strong {
  font-family: var(--f-display);
  font-size: 1.625rem;
  font-weight: 300;
  color: var(--gold);
  line-height: 1;
}
.bi-cat-card__stat span {
  font-family: var(--f-label);
  font-size: .4625rem;
  letter-spacing: var(--bi-ls-overline, 1px);
  text-transform: uppercase;
  color: hsl(var(--fg-hsl) / .38);
}
.bi-cat-card__cta {
  font-family: var(--f-label);
  font-size: .4875rem;
  letter-spacing: var(--bi-ls-button, 1px);
  text-transform: uppercase;
  color: hsl(var(--fg-hsl) / .22);
  transition: color .25s, transform .25s;
}
.bi-cat-card:hover .bi-cat-card__cta {
  color: var(--gold);
  transform: translateX(3px);
}

/* Admin edit button (shown on hover, logged-in admins only) */
.bi-cat-card__admin {
  position: absolute;
  top: .875rem;
  right: .875rem;
  opacity: 0;
  transition: opacity .2s;
}
.bi-cat-card:hover .bi-cat-card__admin { opacity: 1; }
.bi-cat-card__edit-btn {
  display: inline-block;
  font-size: .75rem;
  text-decoration: none;
  padding: .2rem .45rem;
  background: hsl(var(--sur2-hsl));
  border: 1px solid hsl(var(--gold-hsl) / .2);
  color: var(--gold);
  line-height: 1;
  transition: border-color .15s, color .15s;
}
.bi-cat-card__edit-btn:hover {
  border-color: var(--gold);
  color: var(--gold);
}

/* No results */
.bi-cat-archive__empty {
  text-align: center;
  padding: 4rem 1rem;
  color: hsl(var(--fg-hsl) / .35);
}
.bi-cat-archive__empty button {
  margin-top: 1rem;
  background: transparent;
  border: 1px solid hsl(var(--gold-hsl) / .3);
  color: var(--gold);
  font-family: var(--f-label);
  font-size: .5rem;
  letter-spacing: var(--bi-ls-button, 1px);
  text-transform: uppercase;
  padding: .5rem 1.25rem;
  cursor: pointer;
  transition: border-color .15s, background .15s;
}
.bi-cat-archive__empty button:hover {
  background: hsl(var(--gold-hsl) / .06);
  border-color: var(--gold);
}

/* "All types by era" collapsible section */
.bi-cat-archive__all-types {
  border-top: 1px solid hsl(var(--gold-hsl) / .1);
  padding-top: 2rem;
  margin-top: 1rem;
}
.bi-cat-archive__all-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 1.5rem;
}
.bi-cat-archive__toggle {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  background: transparent;
  border: 1px solid hsl(var(--fg-hsl) / .1);
  color: hsl(var(--fg-hsl) / .45);
  font-family: var(--f-label);
  font-size: .5rem;
  letter-spacing: var(--bi-ls-button, 1px);
  text-transform: uppercase;
  padding: .45rem 1rem;
  cursor: pointer;
  transition: border-color .15s, color .15s;
}
.bi-cat-archive__toggle:hover {
  border-color: hsl(var(--gold-hsl) / .3);
  color: var(--gold);
}
.bi-cat-archive__toggle-icon {
  transition: transform .25s cubic-bezier(.22,.61,.36,1);
}

@media (max-width: 1024px) {
  .bi-cat-grid { grid-template-columns: repeat(3, 1fr); gap: 1rem; }
}
@media (max-width: 860px) {
  .bi-cat-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 560px) {
  .bi-cat-grid { grid-template-columns: 1fr; }
  .bi-cat-card { min-height: auto; }
  .bi-cat-archive__all-head { flex-direction: column; align-items: flex-start; gap: .75rem; }
}

/* ── /types/ — 5 main-category (family) grid ───────────────────────────── */
.bi-types-family-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.25rem;
  margin-bottom: 3.5rem;
}
.bi-fam-card {
  position: relative;
  display: flex;
  flex-direction: column;
  background: hsl(var(--sur-hsl));
  border: 1px solid hsl(var(--gold-hsl) / .1);
  padding: 1.875rem 1.75rem 1.5rem;
  text-decoration: none;
  color: var(--fg);
  min-height: 290px;
  overflow: hidden;
  transition:
    transform .28s cubic-bezier(.22,.61,.36,1),
    border-color .28s,
    box-shadow .28s,
    background .28s;
}
.bi-fam-card__photo {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
  opacity: .16;
  z-index: 0;
  transition: opacity .35s, transform .6s cubic-bezier(.22,.61,.36,1);
}
.bi-fam-card__photo-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, hsl(var(--bg-hsl) / .35) 0%, hsl(var(--bg-hsl) / .88) 100%);
}
.bi-fam-card::after {
  content: '';
  position: absolute;
  left: 0; top: 0; bottom: 0;
  width: 2px;
  background: var(--gold);
  transform: scaleY(0);
  transform-origin: bottom;
  transition: transform .3s cubic-bezier(.22,.61,.36,1);
  z-index: 2;
}
.bi-fam-card:hover {
  transform: translateY(-5px);
  border-color: hsl(var(--gold-hsl) / .32);
  box-shadow:
    0 14px 36px hsl(var(--bg-hsl) / .65),
    0 0 0 1px hsl(var(--gold-hsl) / .06);
  background: hsl(var(--sur2-hsl));
}
.bi-fam-card:hover .bi-fam-card__photo { opacity: .28; transform: scale(1.05); }
.bi-fam-card:hover::after { transform: scaleY(1); }

.bi-fam-card__top { position: relative; z-index: 1; flex: 1; }
.bi-fam-card__name {
  font-family: var(--f-display);
  font-size: 1.1875rem;
  font-weight: 400;
  letter-spacing: .03em;
  color: var(--fg);
  margin-bottom: .6rem;
  line-height: 1.3;
  transition: color .25s;
}
.bi-fam-card:hover .bi-fam-card__name { color: var(--gold); }
.bi-fam-card__desc {
  font-size: .8125rem;
  color: hsl(var(--fg-hsl) / .5);
  line-height: 1.6;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
  margin-bottom: .9rem;
}
.bi-fam-card__cats {
  display: flex;
  flex-wrap: wrap;
  gap: .35rem;
}
.bi-fam-card__cat {
  font-family: var(--f-label);
  font-size: .5rem;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--gold);
  border: 1px solid hsl(var(--gold-hsl) / .2);
  padding: .25rem .5rem;
  line-height: 1;
  border-radius: 0;
}
.bi-fam-card__bottom {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  padding-top: 1.25rem;
  margin-top: 1.25rem;
  border-top: 1px solid hsl(var(--gold-hsl) / .08);
}
.bi-fam-card__stats { display: flex; gap: 1.4rem; }
.bi-fam-card__stat { display: flex; flex-direction: column; gap: .15rem; }
.bi-fam-card__stat strong {
  font-family: var(--f-display);
  font-size: 1.5rem;
  font-weight: 300;
  color: var(--gold);
  line-height: 1;
}
.bi-fam-card__stat span {
  font-family: var(--f-label);
  font-size: .4625rem;
  letter-spacing: var(--bi-ls-overline, 1px);
  text-transform: uppercase;
  color: hsl(var(--fg-hsl) / .38);
}
.bi-fam-card__cta {
  font-family: var(--f-label);
  font-size: .4875rem;
  letter-spacing: var(--bi-ls-button, 1px);
  text-transform: uppercase;
  color: hsl(var(--fg-hsl) / .22);
  transition: color .25s, transform .25s;
}
.bi-fam-card:hover .bi-fam-card__cta {
  color: var(--gold);
  transform: translateX(3px);
}
.bi-fam-card__link {
  position: absolute;
  inset: 0;
  z-index: 1;
}
.bi-fam-card__link:focus-visible {
  outline: 2px solid var(--gold);
  outline-offset: -2px;
}
.bi-fam-card__admin {
  position: absolute;
  top: .875rem; right: .875rem;
  opacity: 0;
  z-index: 3;
  transition: opacity .2s;
}
.bi-fam-card:hover .bi-fam-card__admin { opacity: 1; }
.bi-fam-card__edit-btn {
  display: inline-block;
  font-size: .75rem;
  text-decoration: none;
  padding: .2rem .45rem;
  background: hsl(var(--sur2-hsl));
  border: 1px solid hsl(var(--gold-hsl) / .2);
  color: var(--gold);
  line-height: 1;
  transition: border-color .15s, color .15s;
}
.bi-fam-card__edit-btn:hover { border-color: var(--gold); color: var(--gold); }

/* ── Family-card curation polish (task 869dy0euu) ───────────────────────────
   Chronological index, a persistent (not hover-only) gold accent, a refined
   monogram placeholder for families with no photo, and a stronger active CTA —
   so the five families read as a deliberate, curated set rather than a styled
   taxonomy dump. */
.bi-fam-card::after { transform: scaleY(.18); }        /* always show a hint of the accent */
.bi-fam-card:hover::after,
.bi-fam-card:has(.bi-fam-card__link:focus-visible)::after { transform: scaleY(1); }
.bi-fam-card__index {
  display: flex;
  align-items: center;
  gap: .6rem;
  font-family: var(--f-display);
  font-size: .9rem;
  letter-spacing: .12em;
  color: var(--gold);
  margin-bottom: .85rem;
  transition: color .25s;
}
.bi-fam-card__index span {
  display: block;
  width: 1.5rem;
  height: 1px;
  background: hsl(var(--gold-hsl) / .3);
  transition: width .3s cubic-bezier(.22,.61,.36,1), background .25s;
}
.bi-fam-card:hover .bi-fam-card__index { color: var(--gold); }
.bi-fam-card:hover .bi-fam-card__index span { width: 2.6rem; background: var(--gold); }
.bi-fam-card__photo--placeholder {
  opacity: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  background:
    radial-gradient(120% 80% at 50% 0%, hsl(var(--gold-hsl) / .08), transparent 60%),
    linear-gradient(155deg, hsl(var(--sur2-hsl)) 0%, hsl(var(--bg-hsl)) 100%);
}
.bi-fam-card__monogram {
  font-family: var(--f-display);
  font-size: 3.6rem;
  line-height: 1;
  color: hsl(var(--gold-hsl) / .12);
  letter-spacing: .04em;
  transition: color .35s, transform .6s cubic-bezier(.22,.61,.36,1);
}
.bi-fam-card--no-img:hover .bi-fam-card__monogram { color: hsl(var(--gold-hsl) / .22); transform: scale(1.06); }
.bi-fam-card--no-img .bi-fam-card__top,
.bi-fam-card--no-img .bi-fam-card__bottom { position: relative; z-index: 1; }
@media (max-width: 1024px) { .bi-types-family-grid { grid-template-columns: repeat(2, 1fr); gap: 1rem; } }
@media (max-width: 560px)  { .bi-types-family-grid { grid-template-columns: 1fr; } .bi-fam-card { min-height: auto; } }

/* ── Homepage — register quick-access bar ──────────────────────────────── */
/* Simplified to just the Search/Ask AI button pair (869egbcht) — was an
   eyebrow + title + 3 metrics + inline search form; the child selectors for
   those (__lead, __title, __metrics, __metric, __search) were dropped along
   with the markup. Buttons reuse the shared .bi-curated-closing__actions
   pill-CTA styling.
   869egbcg6: sibling section-removal tickets (869egbchf/869egbcj7/869egbckn
   round 2) since stripped the Hero Cinema, Featured types grid, Categories
   grid, and Hero Stats strip that used to sit above this bar — it's now the
   first thing rendered inside <main>. Sized the buttons up slightly (was:
   the plain base .bi-curated-closing__actions size) and gave the band more
   vertical breathing room so it reads as a prominent primary CTA on landing,
   per the task's own "prominently ... visible above the fold or right after
   a slight scroll" requirement, not just a quiet quick-access strip. */
.bi-reg-bar {
  border-top: var(--bi-hairline-w, 2px) solid var(--line);
  border-bottom: var(--bi-hairline-w, 2px) solid var(--line);
  background: hsl(var(--sur-hsl) / .5);
}
.bi-reg-bar__inner {
  display: flex;
  justify-content: center;
  padding-top: 40px;
  padding-bottom: 40px;
}
/* (3119) The "sized the buttons up slightly" override above is gone.
   That is where 3.4rem/1rem 2.4rem/.64rem came from, and it is why this
   band's pair was visibly bigger than the identical pair in the footer
   and than the Explore Collection button it was meant to echo. Prominence
   is the band's job — its 40px of vertical air, its rules top and bottom —
   not a bespoke button size. All CTAs are 52.8px now. */

/* ============================================================
   MOBILE POLISH — phone-first refinements
   ============================================================ */

@media (max-width: 640px) {

  /* (3120) Phone gutters used to be re-listed here at 1.25rem. Note what
     the list did NOT contain: .bi-types-section, .ch-bcc__inner and
     .site-header__search-inner, which therefore kept the full 48px on a
     360px phone. The clamp covers every shell container by definition. */

  /* ── Quote band: drop mark, single column, tighter vertical ── */
  .bi-quote-band__inner {
    grid-template-columns: 1fr;
    padding-top: 2.25rem;
    padding-bottom: 2.25rem;
    gap: 1rem;
  }
  .bi-quote-band__mark { display: none; }

  /* ── BCC certification box: reduce oversized padding ── */
  .bi-bcc-box { padding: 1.75rem 1.25rem; gap: 1.5rem; }
  .bi-bcc-phases { gap: 1.25rem; }

  /* ── Footer bottom: stack copyright + links vertically ── */
  .site-footer__bottom-inner {
    flex-direction: column;
    align-items: center;
    gap: .625rem;
    text-align: center;
    padding-top: 1.25rem;
    padding-bottom: 1.25rem;
  }

  /* ── Curated closing section: reduce vertical padding ── */
  .bi-curated-closing { padding-top: 3rem; padding-bottom: 3rem; }
  .bi-curated-closing__inner {
    padding-top: 2rem;
    padding-bottom: 1rem;
  }

  /* ── Chassis hero page: condense inner padding ── */
  .bi-ch-hero__inner {
    padding-top: 1rem;
    padding-bottom: 2.5rem;
  }

  /* ── Prevent iOS auto-zoom on focused inputs ── */
  input[type="text"],
  input[type="search"],
  input[type="email"],
  input[type="password"],
  input[type="number"],
  textarea,
  select {
    font-size: max(1rem, 16px);
  }

  /* ── BCC flow sections: full-width single column ── */
  .bi-bcc-flow--visual {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 420px) {

  /* (3120) The 1rem floor these two lists set is now the clamp's own lower
     bound, reached at 400px and held below it. */

  /* ── Era ribbon: single column ── */
  .bi-era-ribbon { grid-template-columns: 1fr; }

  /* ── BCC flow visual: single column ── */
  .bi-bcc-flow--visual { grid-template-columns: 1fr; }

  /* ── BCC flow dot: slightly smaller ── */
  .bi-bcc-flow__dot { width: 3rem; height: 3rem; font-size: 1.1rem; }

  /* ── Stakeholders: tighter gap ── */
  .bi-stakeholders--editorial { gap: 1rem; }

  /* ── Footer link row: wrap gracefully ── */
  .site-footer__col ul {
    display: flex;
    flex-wrap: wrap;
    gap: .35rem .75rem;
  }
}

/* ═══════════════════════════════════════════════════════════
   Full chassis register — archive page
   ═══════════════════════════════════════════════════════════ */
.bi-full-register {
  background: hsl(220 50% 5%);
  border-top: 1px solid hsl(45 74% 66% / .15);
  padding: 5rem 0 6rem;
}
.bi-full-register__inner {
  /* uses ch-page for centering/max-width */
}

/* Hero stats row */
.bi-full-register__hero-stats {
  display: flex;
  gap: 3.5rem;
  align-items: baseline;
  margin-bottom: 3rem;
}
.bi-full-register__hero-stat {
  display: flex;
  align-items: baseline;
  gap: .6rem;
}
.bi-full-register__hero-num {
  font-family: 'Cormorant Garamond','Playfair Display',Georgia,serif;
  font-size: clamp(3.5rem, 7vw, 5.5rem);
  font-weight: 300;
  font-style: italic;
  line-height: 1;
  color: var(--gold);
  letter-spacing: .01em;
}
.bi-full-register__hero-lbl {
  font-family: 'Inter',system-ui,sans-serif;
  font-size: .5rem;
  letter-spacing: var(--bi-ls-overline, 1px);
  text-transform: uppercase;
  color: hsl(40 30% 92% / .36);
}

/* Column headers */
.bi-full-register__col-heads {
  display: grid;
  grid-template-columns: 18rem 1fr 1fr 1fr 2rem;
  gap: 1rem;
  padding: .7rem 0 .7rem 1.25rem;
  border-top: 1px solid hsl(45 74% 66% / .18);
  border-bottom: 1px solid hsl(45 74% 66% / .1);
  margin-bottom: 0;
}
.bi-full-register__col-head {
  font-family: 'Inter',system-ui,sans-serif;
  font-size: .46rem;
  letter-spacing: var(--bi-ls-overline, 1px);
  text-transform: uppercase;
  color: hsl(40 30% 92% / .3);
}

/* Register rows */
.bi-full-register__row {
  display: grid;
  grid-template-columns: 18rem 1fr 1fr 1fr 2rem;
  gap: 1rem;
  align-items: center;
  padding: 1rem 1.25rem;
  border-bottom: 1px solid hsl(45 74% 66% / .07);
  text-decoration: none;
  transition: background .15s ease;
}
.bi-full-register__row:hover {
  background: hsl(45 74% 66% / .04);
}
.bi-full-register__row:hover .bi-full-register__arrow {
  color: var(--gold);
  transform: translateX(4px);
}

/* Chassis number + Record badge */
.bi-full-register__chassis-num {
  font-family: 'Cormorant Garamond','Playfair Display',Georgia,serif;
  font-size: 1.15rem;
  font-weight: 400;
  color: hsl(40 30% 92% / .92);
  display: flex;
  align-items: center;
  gap: .65rem;
}
.bi-full-register__badge {
  font-style: normal;
  font-family: 'Inter',system-ui,sans-serif;
  font-size: .42rem;
  letter-spacing: var(--bi-ls-overline, 1px);
  text-transform: uppercase;
  color: hsl(220 50% 5%);
  background: hsl(45 74% 66% / .75);
  padding: .2rem .5rem;
  white-space: nowrap;
}

/* Data cells */
.bi-full-register__cell {
  font-family: 'Inter',system-ui,sans-serif;
  font-size: .85rem;
  color: hsl(40 30% 92% / .38);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* Arrow */
.bi-full-register__arrow {
  font-size: .95rem;
  color: hsl(45 74% 66% / .4);
  transition: color .15s ease, transform .15s ease;
  text-align: right;
}

/* Footer button */
.bi-full-register__footer {
  margin-top: 1.5rem;
  display: flex;
  justify-content: center;
  padding-top: 1.5rem;
  border-top: 1px solid hsl(45 74% 66% / .1);
}
.bi-full-register__open-btn {
  background: none;
  border: 1px solid hsl(45 74% 66% / .25);
  color: hsl(45 74% 66% / .72);
  font-family: 'Inter',system-ui,sans-serif;
  font-size: .52rem;
  letter-spacing: var(--bi-ls-button, 1px);
  text-transform: uppercase;
  padding: .9rem 2rem;
  cursor: pointer;
  transition: border-color .2s, color .2s;
}
.bi-full-register__open-btn:hover {
  border-color: hsl(45 74% 66% / .55);
  color: var(--gold);
}

@media (max-width: 900px) {
  .bi-full-register__col-heads,
  .bi-full-register__row {
    grid-template-columns: 10rem 1fr 1fr 1.5rem;
  }
  /* Hide "Invoiced" column on tablet */
  .bi-full-register__col-heads span:nth-child(4),
  .bi-full-register__row span:nth-child(4) {
    display: none;
  }
}
@media (max-width: 640px) {
  .bi-full-register__col-heads,
  .bi-full-register__row {
    grid-template-columns: 1fr 1fr 1.5rem;
  }
  .bi-full-register__col-heads span:nth-child(3),
  .bi-full-register__row span:nth-child(3) {
    display: none;
  }
  .bi-full-register__hero-stats {
    gap: 2rem;
  }
}

/* ═══════════════════════════════════════════════════════════
   Chassis image slider — category page
   ═══════════════════════════════════════════════════════════ */
.bi-ch-slider {
  position: relative;
  width: 100%;
  overflow: hidden;
  background: hsl(220 50% 5%);
  border-top: 1px solid hsl(45 74% 66% / .12);
  border-bottom: 1px solid hsl(45 74% 66% / .12);
  user-select: none;
}
.bi-ch-slider__track {
  display: flex;
  will-change: transform;
  cursor: grab;
}
.bi-ch-slider__track:active {
  cursor: grabbing;
}
.bi-ch-slider__slide {
  flex-shrink: 0;
  height: 54vh;
  min-height: 320px;
  max-height: 520px;
  background-size: cover;
  background-position: center;
  position: relative;
  display: block;
  text-decoration: none;
  filter: brightness(.85);
  transition: filter .4s ease;
  border-right: 1px solid hsl(220 50% 5%);
}
.bi-ch-slider__slide:hover {
  filter: brightness(1);
}
.bi-ch-slider__veil {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, transparent 30%, hsl(220 50% 5% / .88) 100%);
}
.bi-ch-slider__info {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  padding: 1.25rem 1.5rem 1.5rem;
  display: grid;
  gap: .25rem;
}
.bi-ch-slider__num {
  font-family: 'Cormorant Garamond','Playfair Display',Georgia,serif;
  font-size: 1.6rem;
  font-weight: 300;
  line-height: 1;
  color: var(--gold);
  letter-spacing: .02em;
}
.bi-ch-slider__body {
  font-family: 'Inter',system-ui,sans-serif;
  font-size: .72rem;
  color: hsl(40 30% 92% / .62);
  letter-spacing: .04em;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.bi-ch-slider__cta {
  font-family: 'Inter',system-ui,sans-serif;
  font-size: .48rem;
  letter-spacing: var(--bi-ls-button, 1px);
  text-transform: uppercase;
  color: hsl(45 74% 66% / .55);
  margin-top: .3rem;
  display: block;
  opacity: 0;
  transform: translateY(4px);
  transition: opacity .25s ease, transform .25s ease;
}
.bi-ch-slider__slide:hover .bi-ch-slider__cta {
  opacity: 1;
  transform: translateY(0);
}

/* Prev/next buttons */
.bi-ch-slider__btn {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  background: hsl(220 50% 6% / .82);
  border: 1px solid hsl(45 74% 66% / .2);
  color: var(--gold);
  width: 2.75rem;
  height: 2.75rem;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.1rem;
  cursor: pointer;
  z-index: 10;
  transition: background .2s ease, border-color .2s ease;
  backdrop-filter: blur(8px);
}
.bi-ch-slider__btn:hover {
  background: hsl(220 50% 10%);
  border-color: hsl(45 74% 66% / .5);
}
.bi-ch-slider__btn--prev { left: 1.25rem; }
.bi-ch-slider__btn--next { right: 1.25rem; }

/* Dots */
.bi-ch-slider__dots {
  position: absolute;
  bottom: .9rem;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  gap: .4rem;
  z-index: 10;
}
.bi-ch-slider__dot {
  width: .35rem;
  height: .35rem;
  background: hsl(45 74% 66% / .3);
  border-radius: 0;
  transition: background .3s ease, transform .3s ease;
}
.bi-ch-slider__dot.is-active {
  background: hsl(45 74% 66% / .9);
  transform: scale(1.4);
}

@media (max-width: 640px) {
  .bi-ch-slider__slide {
    height: 62vw;
    min-height: 220px;
  }
  .bi-ch-slider__num { font-size: 1.3rem; }
}

/* ══════════════════════════════════════════════════════════════
   MOBILE SCALE-DOWN PASS (task 869ea1nac) — shared type-scale
   Phone viewports (~640px and below). This file loads on every page, so
   the --ms-* custom properties defined here are also referenced from
   bugatti-dashboard.css (category + chassis/type detail templates).
   Appended at the end of the file so these rules win over any earlier,
   wider-breakpoint declaration for the same selector/property.
   Body-copy steps stay >=13px; .bdb-btn/.bi-icon get an explicit
   tap-target/icon-size floor in bugatti-dashboard.css using these vars.
   ══════════════════════════════════════════════════════════════ */
@media (max-width: 640px) {
  :root {
    --ms-label:   .7rem;     /* micro/eyebrow labels */
    --ms-body-sm: .8125rem;  /* 13px — body-copy floor */
    --ms-body:    .875rem;   /* 14px — default body */
    --ms-lg:      1rem;      /* 16px */
    --ms-h4:      1.05rem;   /* small card/title headings */
    --ms-h3:      1.3rem;
    --ms-h2:      1.6rem;
    --ms-tap-min: 44px;
  }

  body { font-size: var(--ms-body); }

  /* Front-page feature cards (bi-feat-grid) — tighter padding + the
     shared type-scale in place of their own desktop-sized magic numbers. */
  .bi-feat-card__body { padding: 1.1rem 1.1rem 1.2rem; }      /* was 1.6rem 1.5rem 1.65rem */
  .bi-feat-card__title { font-size: 1.25rem; }                 /* was clamp; 869etva9p: 1.15 → 1.25rem */
  .bi-feat-card__summary { font-size: var(--ms-body-sm); }     /* was .8rem */

}

/* Icons default to 16px on mobile. Targets the shared bi_icon() helper's
   default (18px, rendered as a raw width="18" attribute — the lowest
   cascade priority there is) plus the archive-bcc_type.php stat-row icons
   (width="20"), without touching icons that pass an explicit larger `size`
   for a deliberate reason (hero stats at 30px, feature icons at 26-40px,
   …), which keep their own width="N" untouched. */
@media (max-width: 640px) {
  .bi-icon[width="18"], .bi-icon[width="20"] { width: 16px; height: 16px; }
}

/* ── Branded modal — replaces the theme's 3 native browser dialogs
   (869ez3v90 / task 2995). Built lazily by BiModal in main.js and reused by
   every call site. Lives here (not bugatti-dashboard.css) because this file loads on
   every page unconditionally, including the homepage — which never enqueues
   bugatti-dashboard.css but still renders the Featured Chassis picker for an
   admin. Mirrors .bdb-payment-modal's look using the global --gold/--bg/
   --sur/--fg tokens (:root, above), with literal fallbacks matching that
   modal's own --bugatti-* values, so it renders identically whether or not
   .bugatti-dashboard-page happens to be an ancestor. */
.bi-modal {
  position: fixed;
  inset: 0;
  /* Must render above the Featured Chassis picker overlay (#bi-fc-modal,
     z-index:99999 in functions.php) since two of the three call sites this
     modal replaces fire while that picker is still open. */
  z-index: 100000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1.5rem;
  background: rgba(7, 12, 20, .88);
  backdrop-filter: blur(12px);
  opacity: 0;
  pointer-events: none;
  transition: opacity .3s;
}
.bi-modal.is-open { opacity: 1; pointer-events: all; }
.bi-modal__card {
  position: relative;
  background: var(--bugatti-panel, var(--sur, #0d1623));
  border: 1px solid var(--bugatti-border, var(--border, hsl(var(--gold-hsl) / .14)));
  max-width: 440px;
  width: 100%;
  padding: 2.25rem 2rem 2rem;
  box-shadow: 0 32px 80px rgba(0, 0, 0, .6);
  animation: bi-modal-in .3s ease;
}
@keyframes bi-modal-in {
  from { transform: translateY(20px) scale(.97); opacity: 0; }
  to   { transform: translateY(0)    scale(1);   opacity: 1; }
}
.bi-modal__close {
  position: absolute;
  top: 1rem;
  inset-inline-end: 1rem;
  width: 2rem;
  height: 2rem;
  background: rgba(255, 255, 255, .06);
  border: 1px solid var(--bugatti-border, var(--border, hsl(var(--gold-hsl) / .14)));
  cursor: pointer;
  color: var(--bugatti-muted, var(--muted));
  font-size: 1rem;
  line-height: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background .2s, color .2s;
}
.bi-modal__close:hover { background: rgba(255, 255, 255, .12); color: var(--bugatti-text, var(--fg, #e8dfc8)); }
.bi-modal__heading {
  font-family: var(--f-display);
  font-style: italic;
  font-weight: 300;
  font-size: 1.35rem;
  color: var(--bugatti-text, var(--fg, #e8dfc8));
  margin: 0 0 1.75rem;
  padding-inline-end: 2rem;
  line-height: 1.4;
}
.bi-modal__actions {
  display: flex;
  justify-content: flex-end;
  gap: .75rem;
  flex-wrap: wrap;
}
.bi-modal__btn {
  display: inline-flex;
  align-items: center;
  font-family: var(--f-label);
  font-size: .78rem;
  font-weight: 600;
  letter-spacing: .1em;
  text-transform: uppercase;
  border: none;
  cursor: pointer;
  padding: .65rem 1.4rem;
  white-space: nowrap;
  transition: background .2s, color .2s, box-shadow .2s;
}
.bi-modal__btn--primary { background: var(--bugatti-gold, var(--gold)); color: var(--bugatti-bg, var(--bg, #070c14)); }
/* (3121) Hover was #d4b460, a literal darkening of the old gold. Derived from
   the token so it keeps meaning "the gold, pressed" · same formula as
   .bdb-btn--gold:hover. */
.bi-modal__btn--primary:hover { background: color-mix(in srgb, var(--gold) 86%, #000); box-shadow: 0 0 20px hsl(var(--gold-hsl) / .3); }
.bi-modal__btn--primary.bi-modal__btn--danger { background: #e07070; color: #1a0a0a; }
.bi-modal__btn--primary.bi-modal__btn--danger:hover { background: #e88989; box-shadow: 0 0 20px rgba(224, 112, 112, .35); }
.bi-modal__btn--secondary {
  background: transparent;
  border: 1px solid var(--bugatti-border, var(--border, hsl(var(--gold-hsl) / .14)));
  color: var(--bugatti-muted, var(--muted));
}
.bi-modal__btn--secondary:hover { border-color: var(--bugatti-border-bright, hsl(var(--gold-hsl) / .32)); color: var(--bugatti-text, var(--fg, #e8dfc8)); }
@media (max-width: 480px) {
  .bi-modal__card { padding: 1.75rem 1.25rem 1.5rem; }
  .bi-modal__actions { justify-content: stretch; }
  .bi-modal__btn { flex: 1; justify-content: center; }
}
