/* ==========================================================================
   BIGFOOT FUNDING — "FIELD DOSSIER / CAPITAL CHAPTER"
   A second chapter printed on the same press as bigfootaisales.com.
   Same survey-report grammar. Signal ink changed from blaze to trail clay.
   Fraunces (display serif) / Archivo (grotesk) / JetBrains Mono (data)
   ========================================================================== */

/* --------------------------------------------------------------------------
   1. TOKENS
   Surfaces are relative. Any block flips by applying .inverted, which
   re-declares the same variable names against the night-range palette.
   -------------------------------------------------------------------------- */
:root {
  /* Surface ramp — warm archival stock */
  --surface: #EFEAE0;
  --surface-2: #F7F4EC;
  --surface-3: #E5E0D3;

  /* Ink ramp — canopy */
  --ink: #1E2820;
  --ink-2: #4B564C;
  --ink-3: #5C645B;

  /* Rules — hairline #C9C2B2 resolved as ink at low alpha */
  --rule: rgba(30, 40, 32, 0.14);
  --rule-2: rgba(30, 40, 32, 0.30);
  --rule-heavy: rgba(30, 40, 32, 0.86);

  /* Signal — trail clay */
  --clay: #B26B3A;
  --clay-hot: #C87F49;
  --clay-ink: #8F5227;          /* small type / links: 5.15:1 on parchment */
  --clay-btn: #A3602F;          /* CTA fill: 4.64:1 against --on-clay label */
  --clay-soft: rgba(178, 107, 58, 0.10);
  --on-clay: #FBF8F1;

  /* Pine dust */
  --dust: #D4A77A;

  /* Semantic data colours */
  --verify: #316648;
  --verify-pill: #7CB389;
  --flag: #8E4A2E;

  --shadow-plate: 0 1px 0 rgba(30, 40, 32, .06), 0 26px 52px -34px rgba(30, 40, 32, .52);
  --shadow-lift: 0 1px 0 rgba(30, 40, 32, .05), 0 40px 70px -40px rgba(30, 40, 32, .55);

  /* Type */
  --font-display: 'Fraunces', Georgia, 'Times New Roman', serif;
  --font-sans: 'Archivo', 'Helvetica Neue', Arial, sans-serif;
  --font-mono: 'JetBrains Mono', ui-monospace, Consolas, monospace;

  /* Metrics */
  --measure: 62ch;
  --gutter: clamp(1.15rem, 4.5vw, 4rem);
  --section-pad: clamp(5rem, 10.5vw, 10rem);
  --maxw: 1280px;

  --ease: cubic-bezier(.16, 1, .3, 1);
  --snap: cubic-bezier(.3, .7, .4, 1);

  /* Docked stack, bottom-right, measured from the viewport corner upward:
     [ Capital Console panel ] over [ Console button ] over [ Agent trigger ].
     --dock-btn-h is the rendered height of one trigger (padding + line + border). */
  --dock-edge: clamp(.9rem, 2vw, 1.6rem);
  --dock-btn-h: 42px;
  --dock-gap: .7rem;
}

/* Night range — the inverted surface, used for whole sections and instruments */
.inverted,
.calc-card,
.footer,
.ticker {
  --surface: #0F1511;
  --surface-2: #18201A;
  --surface-3: #0A0F0B;
  --ink: #EFEAE0;
  --ink-2: #A5AC9F;
  --ink-3: #959D91;
  --rule: rgba(239, 234, 224, 0.15);
  --rule-2: rgba(239, 234, 224, 0.32);
  --rule-heavy: rgba(239, 234, 224, 0.80);
  --clay: #D98B52;
  --clay-hot: #EFA167;
  --clay-ink: #E09A62;
  --clay-btn: #D98B52;
  --clay-soft: rgba(217, 139, 82, 0.13);
  --on-clay: #0F1511;
  --verify: #7CB389;
  --verify-pill: #7CB389;
  --flag: #D08E72;
  --shadow-plate: 0 30px 70px -34px rgba(0, 0, 0, .85);
  --shadow-lift: 0 40px 80px -40px rgba(0, 0, 0, .9);
}

html.dark {
  --surface: #0F1511;
  --surface-2: #18201A;
  --surface-3: #0A0F0B;
  --ink: #EFEAE0;
  --ink-2: #A5AC9F;
  --ink-3: #959D91;
  --rule: rgba(239, 234, 224, 0.15);
  --rule-2: rgba(239, 234, 224, 0.32);
  --rule-heavy: rgba(239, 234, 224, 0.80);
  --clay: #D98B52;
  --clay-hot: #EFA167;
  --clay-ink: #E09A62;
  --clay-btn: #D98B52;
  --clay-soft: rgba(217, 139, 82, 0.13);
  --on-clay: #0F1511;
  --verify: #7CB389;
  --verify-pill: #7CB389;
  --flag: #D08E72;
  --shadow-plate: 0 30px 70px -34px rgba(0, 0, 0, .85);
  --shadow-lift: 0 40px 80px -40px rgba(0, 0, 0, .9);
}

/* In night range, flipped blocks go deeper still so the rhythm survives */
html.dark .inverted,
html.dark .calc-card {
  --surface: #060A07;
  --surface-2: #0E1310;
  --surface-3: #030503;
}

.inverted { background: var(--surface); color: var(--ink); }

/* --------------------------------------------------------------------------
   2. BASE
   -------------------------------------------------------------------------- */
*, *::before, *::after { box-sizing: border-box; }
* { margin: 0; padding: 0; }

html {
  scroll-behavior: smooth;
  -webkit-text-size-adjust: 100%;
  scroll-padding-top: 132px;
}

body {
  font-family: var(--font-sans);
  background: var(--surface);
  color: var(--ink);
  font-size: 16.5px;
  line-height: 1.62;
  font-synthesis-weight: none;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  overflow-x: hidden;
  transition: background .5s var(--ease), color .5s var(--ease);
}

img, svg { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; color: inherit; }
button { background: none; border: 0; cursor: pointer; }
::selection { background: var(--clay); color: var(--on-clay); }
:focus-visible { outline: 2px solid var(--clay); outline-offset: 3px; }
.hidden { display: none !important; }
.sr-only {
  position: absolute; width: 1px; height: 1px; padding: 0;
  overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}

.container { width: 100%; max-width: var(--maxw); margin-inline: auto; padding-inline: var(--gutter); }

/* Paper grain — the press signature. Sits over everything, ignores pointers. */
.grain::after {
  content: '';
  position: fixed; inset: 0;
  z-index: 9998; pointer-events: none;
  opacity: .30; mix-blend-mode: multiply;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='4'/%3E%3C/filter%3E%3Crect width='240' height='240' filter='url(%23n)' opacity='.42'/%3E%3C/svg%3E");
}
html.dark .grain::after { mix-blend-mode: screen; opacity: .12; }

/* --------------------------------------------------------------------------
   3. TYPOGRAPHY
   -------------------------------------------------------------------------- */
h1, h2, h3, h4, h5 {
  font-family: var(--font-display);
  font-weight: 400;
  font-variation-settings: 'SOFT' 0, 'WONK' 0;
  letter-spacing: -.018em;
  line-height: 1.08;
  text-wrap: balance;
}

.mono {
  font-family: var(--font-mono);
  font-size: .688rem;
  letter-spacing: .16em;
  text-transform: uppercase;
  font-weight: 500;
}

/* Section eyebrow — index number + ruled label */
.eyebrow {
  display: flex; align-items: center; gap: .85rem; flex-wrap: wrap;
  font-family: var(--font-mono);
  font-size: .688rem; letter-spacing: .18em; text-transform: uppercase;
  color: var(--ink-3); margin-bottom: 1.5rem;
}
.eyebrow .sec { color: var(--clay-ink); font-weight: 700; }
.eyebrow .rule { flex: 1; height: 1px; background: var(--rule); max-width: 220px; min-width: 40px; }

.section-header { max-width: 46rem; margin-bottom: clamp(2.75rem, 5vw, 4.5rem); }
.section-title { font-size: clamp(2.05rem, 4.6vw, 3.55rem); margin-bottom: 1.25rem; }
.section-intro {
  color: var(--ink-2);
  font-size: clamp(1rem, 1.35vw, 1.09rem);
  max-width: var(--measure);
}

/* The clay serif italic — where the parent site uses its blaze italic */
.italic-clay {
  font-family: var(--font-display);
  font-style: italic;
  font-variation-settings: 'SOFT' 40, 'WONK' 1;
  color: var(--clay);
}

.section { padding-block: var(--section-pad); position: relative; border-top: 1px solid var(--rule); }

/* --------------------------------------------------------------------------
   4. INSTRUMENTS — buttons, pills, dots
   -------------------------------------------------------------------------- */
.btn {
  display: inline-flex; align-items: center; gap: .7rem;
  padding: .95rem 1.5rem;
  font-family: var(--font-mono);
  font-size: .70rem; letter-spacing: .13em; text-transform: uppercase; font-weight: 600;
  border: 1px solid var(--rule-heavy);
  position: relative; isolation: isolate; overflow: hidden;
  transition: color .3s var(--snap), border-color .3s var(--snap), transform .3s var(--snap);
}
.btn::before {
  content: ''; position: absolute; inset: 0; z-index: -1;
  background: var(--ink); transform: scaleY(0); transform-origin: bottom;
  transition: transform .4s var(--ease);
}
.btn:hover { transform: translateY(-2px); }

.btn-primary { background: var(--clay-btn); border-color: var(--clay-btn); color: var(--on-clay); }
.btn-primary:hover { border-color: var(--ink); color: var(--surface); }
.btn-primary:hover::before { transform: scaleY(1); }

.btn-secondary { border-color: var(--rule-2); color: var(--ink); }
.btn-secondary:hover { color: var(--surface); border-color: var(--ink); }
.btn-secondary:hover::before { transform: scaleY(1); }

.btn-ghost {
  border: 0; padding-inline: 0; color: var(--clay-ink);
  border-bottom: 1px solid var(--rule-2);
}
.btn-ghost::before { display: none; }
.btn-ghost:hover { border-bottom-color: var(--clay); transform: none; }
.btn-ghost .arr { transition: transform .35s var(--ease); }
.btn-ghost:hover .arr { transform: translateX(5px); }

.btn-block { display: flex; width: 100%; justify-content: center; }

.dot {
  width: 6px; height: 6px; border-radius: 50%;
  background: var(--verify-pill); flex: none;
  animation: pulse 2.4s infinite;
}
@keyframes pulse {
  0%   { box-shadow: 0 0 0 0 rgba(124,179,137,.55); }
  70%  { box-shadow: 0 0 0 7px rgba(124,179,137,0); }
  100% { box-shadow: 0 0 0 0 rgba(124,179,137,0); }
}

/* --------------------------------------------------------------------------
   5. COVENANT TICKER — a fixed dark stamp strip. Never flips with theme.
   -------------------------------------------------------------------------- */
.ticker {
  position: fixed; top: 0; left: 0; right: 0; z-index: 200;
  background: #0F1511; color: #EFEAE0;
  border-bottom: 1px solid rgba(239, 234, 224, .12);
  height: 42px; display: flex; align-items: center; overflow: hidden;
}
.ticker-inner {
  display: flex; align-items: center; gap: 1rem;
  width: 100%; max-width: var(--maxw); margin-inline: auto; padding-inline: var(--gutter);
}
.ticker-tag {
  font-family: var(--font-mono); font-size: .625rem; letter-spacing: .2em;
  text-transform: uppercase; color: #D98B52; font-weight: 700; white-space: nowrap;
}
.ticker-text {
  font-family: var(--font-mono); font-size: .656rem; letter-spacing: .05em;
  color: rgba(239, 234, 224, .74); white-space: nowrap;
  overflow: hidden; text-overflow: ellipsis; flex: 1;
}
.ticker-text b { color: #EFEAE0; font-weight: 500; }
.ticker-status {
  display: inline-flex; align-items: center; gap: .5rem;
  font-family: var(--font-mono); font-size: .625rem; letter-spacing: .18em;
  color: #7CB389; font-weight: 700; white-space: nowrap;
  padding: .22rem .6rem; border: 1px solid rgba(124, 179, 137, .35);
}

/* --------------------------------------------------------------------------
   6. NAVIGATION
   -------------------------------------------------------------------------- */
.nav-wrap {
  position: fixed; top: 42px; left: 0; right: 0; z-index: 190;
  border-bottom: 1px solid transparent;
  transition: background .45s var(--ease), border-color .45s var(--ease);
}
.nav-wrap.scrolled {
  background: color-mix(in srgb, var(--surface) 88%, transparent);
  backdrop-filter: blur(14px) saturate(1.3);
  -webkit-backdrop-filter: blur(14px) saturate(1.3);
  border-bottom-color: var(--rule);
}
.nav {
  display: flex; align-items: center; justify-content: space-between;
  gap: 1.5rem; height: 84px;
  width: 100%; max-width: var(--maxw); margin-inline: auto; padding-inline: var(--gutter);
  transition: height .45s var(--ease);
}
.nav-wrap.scrolled .nav { height: 66px; }

.brand { display: flex; align-items: center; gap: .8rem; }
/* The mark is the supplied logo tile, which carries its own ground and
   rounded corners — so the container adds no border or background of its own.
   Two variants: the tile is near-black and would vanish on the night range. */
.brand-mark {
  width: 40px; height: 40px; flex: none;
  display: grid; place-items: center;
  transition: transform .5s var(--ease);
}
.brand-mark img {
  grid-area: 1 / 1; width: 100%; height: 100%;
  object-fit: contain; display: block;
}
.brand-mark .mark-dark { display: none; }
html.dark .brand-mark .mark-light { display: none; }
html.dark .brand-mark .mark-dark { display: block; }
.brand:hover .brand-mark { transform: rotate(-6deg) scale(1.05); }
.brand-text { display: flex; flex-direction: column; line-height: 1; }
.brand-title { font-family: var(--font-display); font-size: .95rem; font-weight: 600; letter-spacing: -.01em; white-space: nowrap; }
.brand-sub {
  font-family: var(--font-mono); font-size: .563rem; letter-spacing: .24em;
  text-transform: uppercase; color: var(--ink-3); margin-top: .3rem; white-space: nowrap;
}

.nav-matrix { display: flex; align-items: center; gap: clamp(.9rem, 1.6vw, 1.5rem); }
.nav-link {
  position: relative; display: inline-flex; align-items: baseline; gap: .45rem;
  font-family: var(--font-mono); font-size: .688rem; letter-spacing: .13em;
  text-transform: uppercase; color: var(--ink-2); padding-block: .4rem;
  white-space: nowrap;
  transition: color .3s var(--snap);
}
.nav-idx { font-size: .563rem; color: var(--ink-3); transition: color .3s var(--snap); }
.nav-link::after {
  content: ''; position: absolute; left: 0; bottom: 0; height: 1px; width: 0;
  background: var(--clay); transition: width .4s var(--ease);
}
.nav-link:hover, .nav-link.active { color: var(--ink); }
.nav-link:hover .nav-idx, .nav-link.active .nav-idx { color: var(--clay-ink); }
.nav-link:hover::after, .nav-link.active::after { width: 100%; }

.nav-actions { display: flex; align-items: center; gap: .75rem; }
.nav-actions .btn { white-space: nowrap; }
.theme-btn {
  width: 38px; height: 38px; border: 1px solid var(--rule);
  display: grid; place-items: center; color: var(--ink-2);
  transition: color .3s, border-color .3s, transform .4s var(--snap);
}
.theme-btn:hover { color: var(--clay-ink); border-color: var(--rule-2); transform: rotate(22deg); }
.theme-btn svg { width: 16px; height: 16px; }

.burger { display: none; width: 40px; height: 40px; position: relative; }
.burger .line {
  position: absolute; left: 10px; width: 20px; height: 1.5px; background: var(--ink);
  transition: transform .35s var(--ease), opacity .2s;
}
.burger .l1 { top: 14px; } .burger .l2 { top: 19.5px; } .burger .l3 { top: 25px; }
.burger.open .l1 { transform: translateY(5.5px) rotate(45deg); }
.burger.open .l2 { opacity: 0; }
.burger.open .l3 { transform: translateY(-5.5px) rotate(-45deg); }

.mobile-menu {
  position: fixed; top: 126px; left: 0; right: 0; z-index: 185;
  background: var(--surface); border-bottom: 1px solid var(--rule);
  padding: .5rem var(--gutter) 2rem;
  display: none; flex-direction: column;
  transform: translateY(-14px); opacity: 0; pointer-events: none;
  transition: transform .4s var(--ease), opacity .3s var(--ease);
  max-height: calc(100vh - 126px); overflow-y: auto;
}
.mobile-menu.show { transform: none; opacity: 1; pointer-events: auto; }
.mobile-menu a.m-link {
  display: flex; align-items: baseline; gap: .7rem;
  padding: 1.1rem 0; border-bottom: 1px solid var(--rule);
  font-family: var(--font-mono); font-size: .82rem; letter-spacing: .12em; text-transform: uppercase;
}
.mobile-menu a.m-link .nav-idx { font-size: .625rem; color: var(--clay-ink); }
.mobile-menu .btn { margin-top: 1.5rem; }

#progress {
  position: fixed; top: 0; left: 0; height: 2px; width: 0;
  background: var(--clay); z-index: 210;
}

/* --------------------------------------------------------------------------
   7. HERO
   -------------------------------------------------------------------------- */
.hero {
  position: relative; padding-top: clamp(10rem, 15vw, 13rem);
  padding-bottom: var(--section-pad); overflow: hidden;
}

/* Concentric radar arcs in the parchment field */
.radar {
  position: absolute; top: -14%; right: -20%;
  width: min(1000px, 96vw); aspect-ratio: 1; pointer-events: none;
  opacity: .55; z-index: 0;
}
.radar circle { fill: none; stroke: var(--rule); }
.radar .sweep {
  stroke: var(--clay); stroke-opacity: .32;
  transform-origin: 500px 500px; animation: sweep 16s linear infinite;
}
@keyframes sweep { to { transform: rotate(360deg); } }

.topo {
  position: absolute; inset: 0; pointer-events: none; z-index: 0; opacity: .4;
  background-image:
    repeating-linear-gradient(90deg, var(--rule) 0 1px, transparent 1px 96px),
    repeating-linear-gradient(0deg, var(--rule) 0 1px, transparent 1px 96px);
  -webkit-mask-image: radial-gradient(ellipse 68% 58% at 18% 32%, #000 0%, transparent 72%);
  mask-image: radial-gradient(ellipse 68% 58% at 18% 32%, #000 0%, transparent 72%);
}

.hero-grid {
  position: relative; z-index: 1;
  display: grid; grid-template-columns: 1.06fr .94fr;
  gap: clamp(2.5rem, 5vw, 5rem); align-items: center;
}

.pre-header {
  display: flex; align-items: center; gap: .75rem; flex-wrap: wrap;
  font-family: var(--font-mono); font-size: .688rem; letter-spacing: .18em;
  text-transform: uppercase; color: var(--ink-3); margin-bottom: 1.7rem;
}
.pre-header .sec { color: var(--clay-ink); font-weight: 700; }
.pre-header .div { width: 26px; height: 1px; background: var(--rule-2); }

.hero-h1 { font-size: clamp(2.55rem, 6.1vw, 5rem); line-height: 1.02; letter-spacing: -.028em; }
.hero-h1 .l2 { display: block; margin-top: .1em; }
.hero-body {
  color: var(--ink-2); margin-top: 1.9rem; max-width: 40rem;
  font-size: clamp(1rem, 1.25vw, 1.09rem);
}
.hero-body + .hero-body { margin-top: 1.05rem; }
.hero-body strong { color: var(--ink); font-weight: 500; }
.hero-actions { display: flex; flex-wrap: wrap; gap: .85rem; margin-top: 2.4rem; align-items: center; }
.hero-actions .note {
  font-family: var(--font-mono); font-size: .625rem; letter-spacing: .14em;
  text-transform: uppercase; color: var(--ink-3);
}

/* Specimen plate */
.plate { position: relative; }
.plate-frame {
  position: relative; overflow: hidden;
  border: 1px solid var(--rule-2);
  background: var(--surface-3);
  box-shadow: var(--shadow-plate);
  aspect-ratio: 4 / 3;
}
.plate-frame img {
  width: 100%; height: 100%; object-fit: cover;
  transition: transform 1.6s var(--ease), filter .8s var(--ease);
  filter: saturate(.75) contrast(1.04);
}
.plate:hover .plate-frame img { transform: scale(1.045); }
html.dark .plate-frame img { filter: saturate(.55) contrast(1.05) brightness(.6); }
.plate-frame::after {
  content: ''; position: absolute; inset: 0; pointer-events: none;
  background: linear-gradient(180deg, transparent 44%, rgba(30,40,32,.30) 100%);
}
.corner { position: absolute; width: 15px; height: 15px; z-index: 2; border: 1px solid rgba(239,234,224,.7); }
.corner.tl { top: 11px; left: 11px; border-right: 0; border-bottom: 0; }
.corner.tr { top: 11px; right: 11px; border-left: 0; border-bottom: 0; }
.corner.bl { bottom: 11px; left: 11px; border-right: 0; border-top: 0; }
.corner.br { bottom: 11px; right: 11px; border-left: 0; border-top: 0; }
.plate-caption {
  display: flex; align-items: baseline; gap: .8rem; flex-wrap: wrap;
  margin-top: .85rem; padding-top: .7rem; border-top: 1px solid var(--rule);
  font-family: var(--font-mono); font-size: .625rem; letter-spacing: .13em; text-transform: uppercase;
}
.plate-id { color: var(--clay-ink); font-weight: 700; }
.plate-note { color: var(--ink-3); }

/* Field index ledger — the four proof chips */
.field-index {
  position: relative; z-index: 1;
  display: grid; grid-template-columns: repeat(4, 1fr);
  border-top: 1px solid var(--rule-2);
  margin-top: clamp(3rem, 6vw, 5rem); padding-top: 1.6rem;
}
.field-cell { padding-right: 1.5rem; border-right: 1px solid var(--rule); }
.field-cell:last-child { border-right: 0; }
.field-cell:not(:first-child) { padding-left: 1.5rem; }
.field-num {
  font-family: var(--font-mono); font-size: .625rem; letter-spacing: .18em;
  color: var(--clay-ink); font-weight: 700; margin-bottom: .55rem; display: block;
}
.field-label { font-family: var(--font-display); font-size: clamp(.98rem, 1.5vw, 1.22rem); line-height: 1.2; }
.field-desc { color: var(--ink-3); font-size: .82rem; margin-top: .45rem; line-height: 1.5; }

/* --------------------------------------------------------------------------
   8. CAPITAL ALLOCATION MODEL
   -------------------------------------------------------------------------- */
.offer-box {
  border: 1px solid var(--rule-2); background: var(--surface-2);
  box-shadow: var(--shadow-plate); position: relative; overflow: hidden;
}
.box-header {
  display: flex; align-items: center; justify-content: space-between; gap: 1rem;
  flex-wrap: wrap; padding: 1.5rem clamp(1.25rem, 3vw, 2.25rem);
  border-bottom: 1px solid var(--rule);
}
.box-header h3 { font-size: clamp(1.15rem, 2vw, 1.5rem); }
.metrics-grid { display: grid; grid-template-columns: repeat(3, 1fr); }
.metric-card {
  padding: clamp(1.75rem, 3vw, 2.6rem) clamp(1.25rem, 2.4vw, 2.25rem);
  border-right: 1px solid var(--rule);
  transition: background .45s var(--ease);
  position: relative;
}
.metric-card:last-child { border-right: 0; }
.metric-card:hover { background: var(--clay-soft); }
.metric-card.feature { background: var(--clay-soft); }
.metric-card.feature::before {
  content: ''; position: absolute; top: 0; left: 0; right: 0; height: 2px; background: var(--clay);
}
.metric-code {
  font-family: var(--font-mono); font-size: .625rem; letter-spacing: .2em;
  text-transform: uppercase; color: var(--ink-3); margin-bottom: 1.15rem; display: block;
}
.metric-value {
  font-family: var(--font-display); font-size: clamp(2.4rem, 5vw, 3.5rem);
  line-height: 1; letter-spacing: -.03em; display: flex; align-items: baseline; gap: .3rem;
}
.metric-value .unit { font-size: .36em; letter-spacing: 0; color: var(--ink-2); }
.metric-meta {
  font-family: var(--font-mono); font-size: .625rem; letter-spacing: .16em;
  text-transform: uppercase; color: var(--clay-ink); font-weight: 700;
  margin-top: .8rem; padding-bottom: 1rem; border-bottom: 1px solid var(--rule);
}
.metric-desc { color: var(--ink-2); font-size: .9rem; margin-top: 1rem; line-height: 1.6; }
.box-footer {
  display: flex; align-items: center; justify-content: space-between; gap: 1rem; flex-wrap: wrap;
  padding: 1.1rem clamp(1.25rem, 3vw, 2.25rem);
  border-top: 1px solid var(--rule); background: var(--surface-3);
  font-family: var(--font-mono); font-size: .625rem; letter-spacing: .15em;
  text-transform: uppercase; color: var(--ink-3);
}

/* --------------------------------------------------------------------------
   9. WORKFLOW
   -------------------------------------------------------------------------- */
.flow-layout {
  display: grid; grid-template-columns: 330px 1fr;
  gap: clamp(2rem, 4.5vw, 4.5rem); align-items: start;
}
.flow-aside { position: sticky; top: 160px; }
.flow-grid { display: grid; grid-template-columns: repeat(2, 1fr); border-top: 1px solid var(--rule); }
.flow-card {
  padding: clamp(1.6rem, 2.8vw, 2.2rem) clamp(1.25rem, 2.4vw, 2rem);
  border-bottom: 1px solid var(--rule); border-right: 1px solid var(--rule);
  position: relative; transition: background .45s var(--ease);
}
.flow-card:nth-child(2n) { border-right: 0; }
.flow-card:hover { background: var(--surface-2); }
.card-num {
  font-family: var(--font-mono); font-size: 1.85rem; font-weight: 300;
  color: var(--rule-2); line-height: 1; letter-spacing: -.02em;
  transition: color .4s var(--ease);
}
.flow-card:hover .card-num { color: var(--clay); }
.card-glow {
  position: absolute; left: 0; bottom: -1px; height: 1px; width: 0;
  background: var(--clay); transition: width .6s var(--ease);
}
.flow-card:hover .card-glow { width: 100%; }
.card-tag {
  font-family: var(--font-mono); font-size: .625rem; letter-spacing: .16em;
  text-transform: uppercase; color: var(--clay-ink); font-weight: 700; margin-top: 1.4rem;
}
.card-title { font-family: var(--font-display); font-size: 1.35rem; margin-top: .5rem; }
.card-desc { color: var(--ink-2); font-size: .9rem; margin-top: .7rem; line-height: 1.62; }

/* --------------------------------------------------------------------------
   10. FACILITY MAP
   -------------------------------------------------------------------------- */
.facility-grid {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(272px, 1fr));
  border-top: 1px solid var(--rule-2); border-left: 1px solid var(--rule);
}
.facility {
  padding: 1.75rem clamp(1.15rem, 2vw, 1.75rem) 1.9rem;
  border-bottom: 1px solid var(--rule); border-right: 1px solid var(--rule);
  position: relative; transition: background .4s var(--ease);
}
.facility:hover { background: var(--surface-2); }
.facility-head {
  display: flex; align-items: center; justify-content: space-between; gap: .75rem; margin-bottom: 1rem;
}
.facility-idx {
  font-family: var(--font-mono); font-size: .625rem; letter-spacing: .18em;
  color: var(--ink-3); font-weight: 700;
}
.tag {
  font-family: var(--font-mono); font-size: .563rem; letter-spacing: .14em;
  text-transform: uppercase; font-weight: 700;
  padding: .24rem .5rem; border: 1px solid currentColor; white-space: nowrap;
}
.tag.mapped { color: var(--verify); }
.tag.disclosed { color: var(--flag); }
.tag.scan { color: var(--ink-3); }
.facility h4 { font-size: 1.16rem; margin-bottom: .55rem; }
.facility p { color: var(--ink-2); font-size: .87rem; line-height: 1.6; }
.facility-meta {
  font-family: var(--font-mono); font-size: .625rem; letter-spacing: .08em;
  color: var(--ink-3); margin-top: 1.1rem; padding-top: .8rem; border-top: 1px solid var(--rule);
  display: flex; justify-content: space-between; gap: .5rem;
}
.facility-meta b { color: var(--ink-2); font-weight: 500; }

.guardrail {
  margin-top: 2.5rem; padding: 1.5rem 1.75rem;
  border: 1px solid var(--rule); border-left: 2px solid var(--clay);
  background: var(--clay-soft); max-width: 62rem;
}
.guardrail p { color: var(--ink-2); font-size: .89rem; }
.guardrail .mono { color: var(--clay-ink); display: block; margin-bottom: .55rem; }

/* --------------------------------------------------------------------------
   11. ECONOMICS — comparison + simulator
   -------------------------------------------------------------------------- */
.econ-layout {
  display: grid; grid-template-columns: 1.15fr .85fr;
  gap: clamp(2rem, 4vw, 4rem); align-items: start;
}
.compare { border-top: 1px solid var(--rule-heavy); }
.compare-row {
  display: grid; grid-template-columns: 1.25fr 1fr 1fr;
  gap: 1rem; padding: 1.02rem .25rem;
  border-bottom: 1px solid var(--rule);
  transition: background .3s var(--ease);
  align-items: baseline;
}
.compare-row:not(.head):hover { background: var(--surface-2); }
.compare-row.head { padding-block: .8rem; border-bottom: 1px solid var(--rule-2); }
.col-head {
  font-family: var(--font-mono); font-size: .625rem; letter-spacing: .14em;
  text-transform: uppercase; font-weight: 700;
}
.col-head.a { color: var(--flag); }
.col-head.b { color: var(--verify); }
.row-label { font-size: .875rem; color: var(--ink-2); }
.row-val { font-family: var(--font-mono); font-size: .766rem; }
.row-val.a { color: var(--ink-3); }
.row-val.b { color: var(--ink); font-weight: 500; }
.compare-row.total { background: var(--clay-soft); border-bottom: 1px solid var(--rule-2); }
.compare-row.total .row-label { color: var(--ink); font-weight: 600; }
.compare-row.total .row-val.b { color: var(--clay-ink); font-weight: 700; }
.text-r { text-align: right; }

/* Instrument panel */
.calc-card {
  background: var(--surface); color: var(--ink);
  border: 1px solid var(--rule); box-shadow: var(--shadow-lift);
  position: sticky; top: 160px;
}
.calc-head { padding: 1.4rem 1.6rem; border-bottom: 1px solid var(--rule); }
.calc-head h3 { font-size: 1.28rem; margin: .45rem 0 .5rem; }
.calc-head p { color: var(--ink-2); font-size: .82rem; }
.calc-body { padding: 1.6rem; display: grid; gap: 1.6rem; }
.slider-block label {
  display: flex; justify-content: space-between; align-items: baseline; gap: 1rem;
  font-family: var(--font-mono); font-size: .625rem; letter-spacing: .13em;
  text-transform: uppercase; color: var(--ink-3); margin-bottom: .75rem;
}
.slider-block label output {
  font-size: .875rem; letter-spacing: 0; color: var(--clay-ink); font-weight: 700; text-transform: none;
}
input[type=range] {
  -webkit-appearance: none; appearance: none; width: 100%;
  height: 1px; background: var(--rule-2); cursor: pointer; outline-offset: 8px;
}
input[type=range]::-webkit-slider-thumb {
  -webkit-appearance: none; width: 15px; height: 15px; border-radius: 50%;
  background: var(--clay); border: 3px solid var(--surface);
  box-shadow: 0 0 0 1px var(--clay); transition: transform .2s var(--snap);
}
input[type=range]::-webkit-slider-thumb:hover { transform: scale(1.25); }
input[type=range]::-moz-range-thumb {
  width: 13px; height: 13px; border-radius: 50%; border: 3px solid var(--surface);
  background: var(--clay); box-shadow: 0 0 0 1px var(--clay);
}
.slider-note { font-size: .72rem; color: var(--ink-3); margin-top: .6rem; line-height: 1.5; }
.calc-out { border-top: 1px solid var(--rule); padding: 1.5rem 1.6rem; display: grid; gap: .9rem; }
.out-row {
  display: flex; justify-content: space-between; align-items: baseline; gap: 1rem;
  font-family: var(--font-mono); font-size: .72rem; color: var(--ink-2);
}
.out-row b { color: var(--ink); font-weight: 500; }
.out-total {
  display: flex; justify-content: space-between; align-items: baseline; gap: 1rem;
  padding-top: 1.05rem; margin-top: .35rem; border-top: 1px solid var(--rule-2);
}
.out-total span {
  font-family: var(--font-mono); font-size: .625rem; letter-spacing: .16em;
  text-transform: uppercase; color: var(--ink-3);
}
.out-total b {
  font-family: var(--font-display); font-size: clamp(1.7rem, 3.4vw, 2.3rem);
  color: var(--clay); font-weight: 500; letter-spacing: -.02em;
}
.calc-foot { padding: 0 1.6rem 1.6rem; }
.calc-disclaim { font-size: .69rem; color: var(--ink-3); line-height: 1.55; margin-top: .9rem; }

/* --------------------------------------------------------------------------
   12. COVENANT
   -------------------------------------------------------------------------- */
.covenant-grid {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(228px, 1fr));
  gap: 1px; background: var(--rule); border: 1px solid var(--rule);
  margin-top: clamp(2.5rem, 5vw, 3.5rem);
}
.cov-cell { background: var(--surface); padding: 1.9rem 1.6rem; }
.cov-cell .mono { color: var(--clay-ink); margin-bottom: 1rem; display: block; }
.cov-cell h4 { font-size: 1.15rem; margin-bottom: .6rem; }
.cov-cell p { color: var(--ink-2); font-size: .86rem; line-height: 1.6; }

/* --------------------------------------------------------------------------
   13. CORPORATE PROFILE
   -------------------------------------------------------------------------- */
.about-layout {
  display: grid; grid-template-columns: 1fr 380px;
  gap: clamp(2rem, 4.5vw, 4.5rem); align-items: start;
}
.about-body p { color: var(--ink-2); max-width: var(--measure); }
.about-body p + p { margin-top: 1.1rem; }
.info-card { border: 1px solid var(--rule-2); background: var(--surface-2); box-shadow: var(--shadow-plate); }
.info-head {
  display: flex; justify-content: space-between; align-items: center; gap: 1rem;
  padding: 1.1rem 1.4rem; border-bottom: 1px solid var(--rule);
}
.info-row { padding: 1.15rem 1.4rem; border-bottom: 1px solid var(--rule); }
.info-row:last-child { border-bottom: 0; }
.info-row .mono { color: var(--ink-3); display: block; margin-bottom: .45rem; }
.info-row .val { font-size: .92rem; line-height: 1.5; }
.info-row a.val { border-bottom: 1px solid var(--rule-2); display: inline-block; }
.info-row a.val:hover { color: var(--clay-ink); border-bottom-color: var(--clay); }

/* --------------------------------------------------------------------------
   14. REGISTRATION
   -------------------------------------------------------------------------- */
.reg-layout {
  display: grid; grid-template-columns: 1fr 1fr;
  gap: clamp(2.25rem, 5vw, 5rem); align-items: start;
}
.checklist { margin-top: 2.5rem; display: grid; gap: 1px; background: var(--rule); border: 1px solid var(--rule); }
.check {
  background: var(--surface); padding: 1.15rem 1.35rem;
  display: grid; grid-template-columns: auto 1fr; gap: .9rem; align-items: start;
}
.check .arr { color: var(--clay-ink); font-family: var(--font-mono); font-size: .82rem; line-height: 1.6; }
.check p { font-size: .875rem; color: var(--ink-2); }
.check p b { color: var(--ink); font-weight: 600; }

.form-card { border: 1px solid var(--rule-2); background: var(--surface-2); box-shadow: var(--shadow-lift); }
.form-head {
  display: flex; justify-content: space-between; align-items: center; gap: 1rem;
  padding: 1.2rem 1.5rem; border-bottom: 1px solid var(--rule);
}
.form-head h3 { font-size: 1.18rem; }
.form-body { padding: 1.5rem; display: grid; gap: 1.15rem; }
.field label {
  display: block; font-family: var(--font-mono); font-size: .625rem;
  letter-spacing: .14em; text-transform: uppercase; color: var(--ink-3); margin-bottom: .55rem;
}
.field input, .field select, .field textarea {
  width: 100%; padding: .85rem .95rem;
  background: var(--surface); border: 1px solid var(--rule-2);
  font-size: .92rem; border-radius: 0;
  transition: border-color .3s, box-shadow .3s;
}
.field textarea { resize: vertical; min-height: 84px; }
.field input:focus, .field select:focus, .field textarea:focus {
  outline: none; border-color: var(--clay); box-shadow: 0 0 0 3px var(--clay-soft);
}
.field select {
  appearance: none; cursor: pointer; padding-right: 2.4rem;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%236B7369' fill='none' stroke-width='1.3'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: right 1rem center;
}
.field-row { display: grid; grid-template-columns: 1fr 1fr; gap: 1.15rem; }
.form-foot { padding: 0 1.5rem 1.5rem; }
.form-note { font-size: .71rem; color: var(--ink-3); line-height: 1.55; margin-top: .9rem; }
.form-ok { padding: 2.75rem 1.5rem; text-align: center; }
.form-ok .mono { color: var(--verify); display: block; margin-bottom: 1rem; }
.form-ok h4 { font-size: 1.5rem; margin-bottom: .8rem; }
.form-ok p { color: var(--ink-2); font-size: .9rem; max-width: 30rem; margin-inline: auto; }

/* --------------------------------------------------------------------------
   15. FOOTER
   -------------------------------------------------------------------------- */
.footer { background: var(--surface); color: var(--ink); padding-block: clamp(3.5rem, 7vw, 5.5rem) 2rem; }
.footer-top {
  display: grid; grid-template-columns: 1.4fr 1fr 1fr; gap: 2.5rem;
  padding-bottom: 2.75rem; border-bottom: 1px solid var(--rule);
}
.footer h5 {
  font-family: var(--font-mono); font-size: .625rem; letter-spacing: .2em;
  text-transform: uppercase; color: var(--ink-3); font-weight: 700; margin-bottom: 1.1rem;
}
/* The footer is the house-brand zone, so the full Bigfoot Funding wordmark
   sits here while the header leads with the Desk. The footer renders in night
   range in BOTH page themes, so it always uses the light lockup — recoloured
   rather than CSS-inverted, which would have turned the green toes magenta. */
.footer-lockup { width: min(232px, 62%); height: auto; margin-bottom: 1.4rem; }
.footer-brand p { color: var(--ink-2); font-size: .875rem; max-width: 30rem; margin-top: 1rem; }
.footer-links { display: grid; gap: .65rem; }
.footer-links a {
  color: var(--ink-2); font-size: .875rem; transition: color .25s;
  width: fit-content; border-bottom: 1px solid transparent;
}
.footer-links a:hover { color: var(--clay-ink); border-bottom-color: var(--clay); }
.legal {
  margin-top: 2rem; padding: 1.4rem 1.6rem;
  border: 1px solid var(--rule); border-left: 2px solid var(--clay);
  font-size: .8rem; color: var(--ink-2); line-height: 1.65; max-width: 70rem;
}
.legal b { color: var(--ink); font-weight: 600; }
.footer-bottom {
  display: flex; justify-content: space-between; align-items: center; gap: 1rem;
  flex-wrap: wrap; margin-top: 2rem;
  font-family: var(--font-mono); font-size: .625rem; letter-spacing: .12em;
  text-transform: uppercase; color: var(--ink-3);
}

/* --------------------------------------------------------------------------
   16. DOCKED CHROME — agent + capital console
   -------------------------------------------------------------------------- */
.dock {
  position: fixed; right: var(--dock-edge);
  /* Sits one trigger above the agent widget, which owns the corner. */
  bottom: calc(var(--dock-edge) + var(--dock-btn-h) + var(--dock-gap));
  z-index: 180; display: flex; flex-direction: column; align-items: flex-end; gap: var(--dock-gap);
}
.dock-btn {
  display: inline-flex; align-items: center; gap: .6rem;
  padding: .8rem 1.1rem; background: var(--ink); color: var(--surface);
  border: 1px solid var(--ink);
  font-family: var(--font-mono); font-size: .625rem; letter-spacing: .14em;
  text-transform: uppercase; font-weight: 600;
  box-shadow: var(--shadow-lift);
  transition: transform .3s var(--snap);
}
.dock-btn:hover { transform: translateY(-3px); }
.dock-btn.clay { background: var(--clay-btn); border-color: var(--clay-btn); color: var(--on-clay); }

.panel {
  position: fixed; right: var(--dock-edge);
  bottom: calc(var(--dock-edge) + (var(--dock-btn-h) * 2) + (var(--dock-gap) * 2));
  z-index: 181; width: min(384px, calc(100vw - 1.8rem));
  border: 1px solid var(--rule-2); box-shadow: var(--shadow-lift);
  background: var(--surface); color: var(--ink);
  display: flex; flex-direction: column;
  transform: translateY(14px) scale(.98); opacity: 0; pointer-events: none;
  transition: transform .42s var(--ease), opacity .3s var(--ease);
}
.panel.open { transform: none; opacity: 1; pointer-events: auto; }
.panel-head {
  display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem;
  padding: .95rem 1.1rem; border-bottom: 1px solid var(--rule);
}
.panel-head .t { font-family: var(--font-display); font-size: .98rem; }
.panel-head .s {
  font-family: var(--font-mono); font-size: .563rem; letter-spacing: .16em;
  text-transform: uppercase; color: var(--verify);
  display: flex; align-items: center; gap: .4rem; margin-top: .3rem;
}
.panel-close { color: var(--ink-3); font-size: 1.2rem; line-height: 1; padding: .1rem .25rem; }
.panel-close:hover { color: var(--clay-ink); }

.console-url {
  font-family: var(--font-mono); font-size: .594rem; color: var(--ink-3);
  padding: .6rem 1.1rem; border-bottom: 1px solid var(--rule); background: var(--surface-3);
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.console-grid { display: grid; grid-template-columns: 1fr 1fr; }
.console-cell {
  padding: 1.05rem 1.1rem;
  border-right: 1px solid var(--rule); border-bottom: 1px solid var(--rule);
}
.console-cell:nth-child(2n) { border-right: 0; }
.console-cell .mono { color: var(--ink-3); font-size: .563rem; display: block; margin-bottom: .5rem; }
.console-cell .v { font-family: var(--font-display); font-size: 1.42rem; letter-spacing: -.02em; }
.console-feed { padding: 1.05rem 1.1rem; display: grid; gap: .7rem; max-height: 170px; overflow-y: auto; }
.console-feed > .mono { color: var(--ink-3); font-size: .563rem; }
.feed-row {
  display: flex; align-items: baseline; gap: .6rem;
  font-family: var(--font-mono); font-size: .625rem; color: var(--ink-2);
  padding-bottom: .55rem; border-bottom: 1px solid var(--rule);
  animation: feedIn .5s var(--ease);
}
@keyframes feedIn { from { opacity: 0; transform: translateX(-8px); } }
.feed-row .s { color: var(--verify); flex: none; }
.panel-foot { padding: 1.1rem; border-top: 1px solid var(--rule); }

.chat-body { padding: 1.1rem; display: grid; gap: .8rem; max-height: 296px; overflow-y: auto; }
.msg {
  max-width: 88%; padding: .7rem .9rem; font-size: .85rem; line-height: 1.55;
  border: 1px solid var(--rule); animation: feedIn .45s var(--ease);
}
.msg.bot { background: var(--surface-2); }
.msg.me { background: var(--clay-btn); color: var(--on-clay); border-color: var(--clay-btn); margin-left: auto; }
.chat-form { display: flex; gap: .5rem; padding: 1.1rem; border-top: 1px solid var(--rule); }
.chat-form input { flex: 1; min-width: 0; padding: .7rem .8rem; background: var(--surface); border: 1px solid var(--rule-2); font-size: .85rem; }
.chat-form input:focus { outline: none; border-color: var(--clay); }
.chat-form button {
  padding: .7rem .9rem; background: var(--clay-btn); color: var(--on-clay);
  font-family: var(--font-mono); font-size: .625rem; letter-spacing: .1em;
  text-transform: uppercase; font-weight: 700;
}
.chips { display: flex; flex-wrap: wrap; gap: .4rem; padding: 0 1.1rem 1.1rem; }
.chip {
  padding: .38rem .6rem; border: 1px solid var(--rule-2); font-family: var(--font-mono);
  font-size: .563rem; letter-spacing: .08em; text-transform: uppercase; color: var(--ink-2);
  transition: color .25s, border-color .25s;
}
.chip:hover { color: var(--clay-ink); border-color: var(--clay); }

/* --------------------------------------------------------------------------
   14A. THE PERSON AT THE DESK
   A named human beside the entity block. The portrait degrades to a monogram
   if the image is ever missing, so the page never shows a broken frame.
   -------------------------------------------------------------------------- */
.person-card {
  border: 1px solid var(--rule-2); background: var(--surface-2);
  box-shadow: var(--shadow-plate); margin-bottom: 1.5rem;
}
.person-head {
  display: flex; align-items: center; gap: 1.1rem;
  padding: 1.35rem 1.4rem; border-bottom: 1px solid var(--rule);
}
.person-portrait {
  width: 76px; height: 76px; flex: none; position: relative; overflow: hidden;
  border: 1px solid var(--rule-2); background: var(--surface-3);
}
.person-portrait picture { display: block; width: 100%; height: 100%; }
.person-portrait img {
  width: 100%; height: 100%; object-fit: cover; object-position: center top;
  filter: saturate(.82) contrast(1.03);
}
/* Monogram shown only when the portrait fails to load. */
.person-portrait.fallback::after {
  content: 'N';
  position: absolute; inset: 0; display: grid; place-items: center;
  font-family: var(--font-display); font-size: 2rem; color: var(--clay);
  background: var(--clay-soft);
}
.person-role { display: block; color: var(--ink-3); margin-bottom: .4rem; }
.person-id h3 { font-size: 1.5rem; letter-spacing: -.02em; }
.person-title {
  font-family: var(--font-mono); font-size: .6rem; letter-spacing: .12em;
  text-transform: uppercase; color: var(--ink-3); margin-top: .45rem;
}
.person-note {
  padding: 1.25rem 1.4rem; font-size: .88rem; line-height: 1.62; color: var(--ink-2);
}
.person-actions {
  padding: 0 1.4rem 1.4rem; display: flex; gap: .6rem; flex-wrap: wrap;
}

@media (max-width: 420px) {
  .person-head { flex-direction: column; align-items: flex-start; gap: .9rem; }
}

/* --------------------------------------------------------------------------
   14B. BOOKING DIALOG
   The in-house fallback when no external scheduler is configured.
   -------------------------------------------------------------------------- */
#bookDialog {
  border: 1px solid var(--rule-2); border-radius: 0; padding: 0;
  background: var(--surface-2); color: var(--ink);
  width: min(560px, calc(100vw - 2rem));
  max-height: calc(100dvh - 2rem);
  margin: auto;                 /* centre explicitly rather than trusting UA defaults */
  overflow: hidden;             /* the body scrolls; the frame does not */
  box-shadow: var(--shadow-lift);
}
/* Header and footer stay put, the fields scroll between them. */
#bookForm { display: flex; flex-direction: column; max-height: calc(100dvh - 2rem); }
.book-head, .book-foot { flex: none; }
.book-body { min-height: 0; }
/* Grid children default to min-width:auto, which is what forced a sideways scroll. */
.field-row > * { min-width: 0; }
#bookDialog input, #bookDialog select, #bookDialog textarea { max-width: 100%; }
#bookDialog::backdrop { background: rgba(15, 21, 17, .62); backdrop-filter: blur(2px); }
#bookDialog[open] { animation: bookIn .32s var(--ease); }
@keyframes bookIn { from { opacity: 0; transform: translateY(10px) scale(.99); } }

.book-head {
  display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem;
  padding: 1.35rem 1.5rem; border-bottom: 1px solid var(--rule);
}
.book-head h3 { font-size: 1.4rem; margin-top: .45rem; }
.book-body { padding: 1.5rem; display: grid; gap: 1.15rem; overflow-y: auto; overflow-x: hidden; }
.book-note {
  font-size: .84rem; line-height: 1.6; color: var(--ink-2);
  border-left: 2px solid var(--clay); background: var(--clay-soft);
  padding: .85rem 1rem;
}
.book-foot { padding: 0 1.5rem 1.5rem; }

.book-ok { padding: 2.5rem 1.75rem; text-align: center; }
.book-ok .mono { color: var(--verify); display: block; margin-bottom: 1rem; }
.book-ok h3 { font-size: 1.5rem; margin-bottom: .75rem; }
.book-ok p {
  color: var(--ink-2); font-size: .89rem; line-height: 1.62;
  max-width: 34rem; margin: 0 auto 1.5rem;
}

@media (max-width: 560px) {
  .book-head, .book-body { padding-inline: 1.15rem; }
  .book-foot { padding-inline: 1.15rem; }
}

/* --------------------------------------------------------------------------
   15A. TRUST STRIP, FLOW STRIP, DECLINE LIST, DISAMBIGUATION
   Added after the build-spec review: a product that asks for an owner's books
   must state entity, posture, and contact in public and early.
   -------------------------------------------------------------------------- */
.trust-strip {
  border-top: 1px solid var(--rule);
  border-bottom: 1px solid var(--rule);
  background: var(--surface-3);
}
.trust-inner {
  display: flex; align-items: center; flex-wrap: wrap;
  gap: .55rem 1rem; padding-block: .85rem;
  font-family: var(--font-mono); font-size: .625rem; letter-spacing: .13em;
  text-transform: uppercase; color: var(--ink-2);
}
.trust-item b { color: var(--ink); font-weight: 700; }
.trust-sep { width: 3px; height: 3px; border-radius: 50%; background: var(--rule-2); flex: none; }
a.trust-link { color: var(--clay-ink); border-bottom: 1px solid transparent; text-transform: none; letter-spacing: .06em; }
a.trust-link:hover { border-bottom-color: var(--clay); }

/* Six-step read, high on the page, before the long-form statutes. */
.flow-strip {
  display: flex; flex-wrap: wrap; align-items: center; gap: .5rem 1.35rem;
  list-style: none; margin-top: 2.1rem; padding-top: 1.4rem;
  border-top: 1px solid var(--rule);
}
.flow-strip li {
  display: inline-flex; align-items: baseline; gap: .45rem; position: relative;
  font-family: var(--font-mono); font-size: .688rem; letter-spacing: .13em;
  text-transform: uppercase; color: var(--ink-2);
}
.flow-strip li + li::before {
  content: '→'; position: absolute; left: -.95rem;
  color: var(--rule-2); font-size: .7rem;
}
.flow-strip .fs-n { font-size: .563rem; color: var(--clay-ink); font-weight: 700; }

/* The decline list — stated as a feature, in clay, not greyed out. */
.not-for {
  margin-top: clamp(2.25rem, 4vw, 3.25rem);
  border: 1px solid var(--rule); border-left: 2px solid var(--clay);
  background: var(--clay-soft);
  padding: 1.6rem clamp(1.25rem, 2.4vw, 1.9rem);
}
.not-for-tag { display: block; color: var(--clay-ink); margin-bottom: 1.1rem; }
.not-for ul { list-style: none; display: grid; gap: .85rem; }
.not-for li {
  position: relative; padding-left: 1.4rem;
  font-size: .89rem; line-height: 1.6; color: var(--ink-2);
}
.not-for li::before {
  content: '—'; position: absolute; left: 0; color: var(--clay); font-family: var(--font-mono);
}
.not-for li b { color: var(--ink); font-weight: 600; }
.not-for a { color: var(--clay-ink); border-bottom: 1px solid var(--rule-2); }
.not-for a:hover { border-bottom-color: var(--clay); }

/* Name-collision note in the corporate profile. */
.disambig {
  margin-top: 1.4rem; padding: 1.1rem 1.3rem;
  border: 1px solid var(--rule); background: var(--surface-3);
  font-size: .84rem; line-height: 1.6; color: var(--ink-2);
}
.disambig b { color: var(--ink); font-weight: 600; }

/* Trust line repeated on each confirmation state. */
.ok-trust {
  margin-top: 1.5rem; padding-top: 1.1rem; border-top: 1px solid var(--rule);
  font-family: var(--font-mono); font-size: .563rem; letter-spacing: .1em;
  text-transform: uppercase; color: var(--ink-3); line-height: 1.7;
}
.ok-trust a { color: var(--clay-ink); text-transform: none; letter-spacing: .04em; }

/* House cross-link — two desks, one house. */
.nav-house {
  font-family: var(--font-mono); font-size: .625rem; letter-spacing: .13em;
  text-transform: uppercase; color: var(--ink-3);
  border-bottom: 1px solid transparent; white-space: nowrap;
  transition: color .3s var(--snap);
}
.nav-house:hover { color: var(--clay-ink); border-bottom-color: var(--clay); }
@media (max-width: 1440px) { .nav-house { display: none; } }

/* --------------------------------------------------------------------------
   16A. BIGFOOT AI CHAT WIDGET
   The vendor embed ships its own palette — neon cyan on dark glass, 16px
   radii, Outfit. That is the glass-tower look the brand rules out, and it
   does not follow the page theme. Its <style> block is dropped and the same
   selectors are re-declared here against the Field Dossier tokens, so the
   widget reads as part of the document in both light and night range.

   Vendor IDs and class names are preserved exactly. If the embed is ever
   re-issued, diff its markup against this block before pasting over it.
   -------------------------------------------------------------------------- */
#bf-widget-container {
  position: fixed;
  right: var(--dock-edge);
  bottom: var(--dock-edge);
  z-index: 182;              /* above .dock (180), below the ticker (200) */
  font-family: var(--font-sans);
}

/* The trigger matches the Capital Console dock button, so the two read as
   one stack rather than two unrelated floating controls. */
#bf-chat-trigger {
  display: inline-flex; align-items: center; gap: .6rem;
  padding: .8rem 1.1rem;
  background: var(--clay-btn); color: var(--on-clay);
  border: 1px solid var(--clay-btn); border-radius: 0;
  font-family: var(--font-mono); font-size: .625rem; letter-spacing: .14em;
  text-transform: uppercase; font-weight: 600;
  box-shadow: var(--shadow-lift); cursor: pointer;
  transition: transform .3s var(--snap);
}
#bf-chat-trigger:hover { transform: translateY(-3px); box-shadow: var(--shadow-lift); }
#bf-chat-trigger svg { flex: none; }

#bf-chat-window {
  position: absolute; right: 0; bottom: calc(100% + .7rem);
  width: min(384px, calc(100vw - 1.8rem));
  height: min(524px, calc(100vh - 190px));
  background: var(--surface); color: var(--ink);
  border: 1px solid var(--rule-2); border-radius: 0;
  box-shadow: var(--shadow-lift);
  backdrop-filter: none; -webkit-backdrop-filter: none;
  display: flex; flex-direction: column; overflow: hidden;
  transform: none; opacity: 1;
  transition: opacity .3s var(--ease), transform .42s var(--ease), visibility .3s;
}
#bf-chat-window.bf-hidden {
  opacity: 0; visibility: hidden; pointer-events: none;
  transform: translateY(14px) scale(.98);
}

.bf-header {
  display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem;
  padding: .95rem 1.1rem;
  background: transparent; border-bottom: 1px solid var(--rule);
}
.bf-header h5 {
  margin: 0; font-family: var(--font-display); font-size: .98rem;
  font-weight: 400; color: var(--ink); letter-spacing: -.018em;
}
.bf-status {
  display: flex; align-items: center; gap: .4rem; margin-top: .3rem;
  font-family: var(--font-mono); font-size: .563rem; letter-spacing: .16em;
  text-transform: uppercase; color: var(--verify);
}
.bf-close-btn {
  background: none; border: 0; cursor: pointer;
  color: var(--ink-3); font-size: 1.2rem; line-height: 1; padding: .1rem .25rem;
}
.bf-close-btn:hover { color: var(--clay-ink); }

#bf-messages {
  flex: 1; padding: 1.1rem; overflow-y: auto;
  display: flex; flex-direction: column; gap: .8rem;
}
.bf-msg {
  max-width: 88%; padding: .7rem .9rem; border-radius: 0;
  font-size: .85rem; line-height: 1.55;
  border: 1px solid var(--rule);
  animation: feedIn .45s var(--ease);
}
.bf-msg.assistant { background: var(--surface-2); color: var(--ink); align-self: flex-start; }
.bf-msg.user {
  background: var(--clay-btn); color: var(--on-clay);
  border-color: var(--clay-btn); align-self: flex-end;
}
/* The opening line is guidance, not a transaction — reads as a desk note. */
.bf-msg.system {
  align-self: stretch; max-width: 100%;
  background: var(--clay-soft); border-color: var(--rule);
  border-left: 2px solid var(--clay); color: var(--ink-2);
}

.bf-chips {
  display: flex; flex-wrap: wrap; gap: .4rem;
  padding: 0 1.1rem 1.1rem; flex: none;
}
.bf-chip {
  padding: .38rem .6rem; background: none; cursor: pointer;
  border: 1px solid var(--rule-2); border-radius: 0;
  font-family: var(--font-mono); font-size: .563rem; letter-spacing: .08em;
  text-transform: uppercase; color: var(--ink-2);
  transition: color .25s, border-color .25s;
}
.bf-chip:hover { color: var(--clay-ink); border-color: var(--clay); }

#bf-lead-gate {
  padding: 1rem 1.1rem; flex: none;
  background: var(--clay-soft);
  border-top: 1px solid var(--rule);
  display: flex; flex-direction: column; gap: .6rem;
}
#bf-lead-gate.hidden { display: none !important; }
#bf-lead-gate p {
  margin: 0; font-size: .72rem; line-height: 1.5; color: var(--ink-2);
}
#bf-lead-gate .bf-gate-note {
  font-family: var(--font-mono); font-size: .563rem; letter-spacing: .1em;
  text-transform: uppercase; color: var(--ink-3);
}
.bf-gate-row { display: flex; gap: .5rem; }
.bf-gate-row input {
  flex: 1; min-width: 0; border-radius: 0;
  background: var(--surface); border: 1px solid var(--rule-2);
  padding: .6rem .7rem; color: var(--ink); font-size: .85rem;
}
.bf-gate-row input:focus { outline: none; border-color: var(--clay); }
.bf-gate-row button {
  border: 0; border-radius: 0; cursor: pointer;
  background: var(--clay-btn); color: var(--on-clay);
  padding: 0 .9rem;
  font-family: var(--font-mono); font-size: .625rem; letter-spacing: .1em;
  text-transform: uppercase; font-weight: 700;
}

#bf-input-form {
  display: flex; gap: .5rem; padding: 1.1rem; flex: none;
  border-top: 1px solid var(--rule);
}
#bf-input {
  flex: 1; min-width: 0; border-radius: 0;
  background: var(--surface); border: 1px solid var(--rule-2);
  padding: .7rem .8rem; color: var(--ink); font-size: .85rem;
}
#bf-input:focus { outline: none; border-color: var(--clay); }
#bf-input:disabled { opacity: .5; cursor: not-allowed; }
#bf-send-btn {
  width: 40px; height: auto; border: 0; border-radius: 0; cursor: pointer;
  background: var(--clay-btn); color: var(--on-clay);
  display: flex; align-items: center; justify-content: center; flex: none;
}

@media (max-width: 640px) {
  #bf-chat-trigger { padding: .85rem; }
  #bf-chat-trigger .lbl { display: none; }
  #bf-chat-window { height: min(500px, calc(100vh - 168px)); }
}

/* --------------------------------------------------------------------------
   17. MOTION — scroll reveals
   -------------------------------------------------------------------------- */
/* The hidden state is gated behind .js so that without scripting — or if the
   reveal pass never runs — the document is simply readable. */
.js [data-reveal] {
  opacity: 0; transform: translateY(22px);
  transition: opacity .9s var(--ease), transform .9s var(--ease);
  transition-delay: var(--d, 0ms);
}
.js [data-reveal].in { opacity: 1; transform: none; }

.line-mask { display: block; overflow: hidden; padding-block: .04em; }
.js .line-mask > span {
  display: block; transform: translateY(108%);
  transition: transform 1.05s var(--ease); transition-delay: var(--d, 0ms);
}
.js .line-mask.in > span { transform: none; }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .001ms !important; transition-duration: .001ms !important; }
  .js [data-reveal] { opacity: 1; transform: none; }
  .js .line-mask > span { transform: none; }
}

/* --------------------------------------------------------------------------
   18. RESPONSIVE
   -------------------------------------------------------------------------- */
@media (max-width: 1080px) {
  .hero-grid { grid-template-columns: 1fr; }
  .plate { max-width: 640px; }
  .econ-layout, .about-layout, .reg-layout, .flow-layout { grid-template-columns: 1fr; }
  .flow-aside, .calc-card { position: static; }
  .footer-top { grid-template-columns: 1fr 1fr; }
  .footer-brand { grid-column: 1 / -1; }
}
@media (max-width: 1330px) { .nav-vetted { display: none; } }
@media (max-width: 1080px) {
  .nav-matrix, .nav-actions .desktop-cta { display: none; }
  .burger { display: block; }
  .mobile-menu { display: flex; }
}
@media (max-width: 900px) {
  .metrics-grid { grid-template-columns: 1fr; }
  .metric-card { border-right: 0; border-bottom: 1px solid var(--rule); }
  .metric-card:last-child { border-bottom: 0; }
  .field-index { grid-template-columns: 1fr 1fr; gap: 1.5rem 0; }
  .field-cell:nth-child(2n) { border-right: 0; padding-right: 0; }
  .field-cell:nth-child(3) { padding-left: 0; }
  .flow-grid { grid-template-columns: 1fr; }
  .flow-card { border-right: 0; }
}
@media (max-width: 640px) {
  html { scroll-padding-top: 112px; }
  body { font-size: 16px; }
  .ticker-tag, .ticker-status .lbl { display: none; }
  .nav { height: 66px; }
  .nav-wrap.scrolled .nav { height: 60px; }
  .mobile-menu { top: 108px; max-height: calc(100vh - 108px); }
  .compare-row { grid-template-columns: 1fr; gap: .35rem; padding-block: 1rem; }
  .compare-row.head { display: none; }
  .row-val { text-align: left !important; }
  .row-val::before {
    content: attr(data-l) '  ';
    font-size: .563rem; letter-spacing: .14em; color: var(--ink-3);
  }
  .field-index { grid-template-columns: 1fr; }
  .field-cell {
    border-right: 0; padding-left: 0 !important; padding-right: 0;
    padding-bottom: 1.3rem; border-bottom: 1px solid var(--rule);
  }
  .field-cell:last-child { border-bottom: 0; padding-bottom: 0; }
  .field-row { grid-template-columns: 1fr; }
  .footer-top { grid-template-columns: 1fr; }
  .hero-actions .btn { width: 100%; justify-content: center; }
  .dock-btn .lbl { display: none; }
  .dock-btn { padding: .85rem; }
}


/* ==========================================================================
   19. CAPITAL-CHAPTER MODULES
   Living file, Field Draw, provider door — same press, no new grammar.
   ========================================================================== */

/* Inline links inside body copy */
.inline-link {
  color: var(--clay-ink);
  border-bottom: 1px solid var(--rule-2);
  transition: border-color .3s var(--snap);
}
.inline-link:hover { border-bottom-color: var(--clay); }

.hero-note {
  margin-top: 1.15rem;
  font-family: var(--font-mono); font-size: .625rem; letter-spacing: .13em;
  text-transform: uppercase; color: var(--ink-3);
}

/* Provider link in the header */
.nav-vetted {
  white-space: nowrap;
  font-family: var(--font-mono); font-size: .625rem; letter-spacing: .13em;
  text-transform: uppercase; color: var(--ink-2);
  border-bottom: 1px solid var(--rule-2); padding-bottom: .2rem;
  transition: color .3s var(--snap), border-color .3s var(--snap);
}
.nav-vetted:hover { color: var(--clay-ink); border-bottom-color: var(--clay); }

/* --- The fork: two doors, stated before anything is sold ------------------ */
.fork-section { padding-block: clamp(3rem, 6vw, 5rem); }
.fork {
  display: grid; grid-template-columns: 1fr 1px 1fr;
  gap: clamp(1.75rem, 4vw, 3.5rem);
  border: 1px solid var(--rule-2); background: var(--surface-2);
  padding: clamp(1.75rem, 3.5vw, 2.75rem);
  box-shadow: var(--shadow-plate);
}
.fork-rule { background: var(--rule); }
.fork-side h3 { font-size: clamp(1.25rem, 2.2vw, 1.6rem); margin: .85rem 0 .7rem; }
.fork-side p { color: var(--ink-2); font-size: .9rem; margin-bottom: 1.15rem; max-width: 34rem; }
.fork-tag { color: var(--clay-ink); display: block; }
.fork-tag.alt { color: var(--ink-3); }

/* --- Field Draw priced apart from the Desk stack -------------------------- */
.tier-outside {
  display: grid; grid-template-columns: 190px 1fr auto;
  gap: clamp(1.25rem, 3vw, 2.5rem); align-items: center;
  margin-top: 1.5rem; padding: clamp(1.5rem, 3vw, 2.1rem) clamp(1.25rem, 3vw, 2.25rem);
  border: 1px dashed var(--rule-2);
  background: repeating-linear-gradient(-45deg, transparent 0 12px, var(--clay-soft) 12px 13px);
}
.tier-mark { display: flex; flex-direction: column; gap: .55rem; }
.tier-mark .mono { color: var(--ink-3); }
.tier-outside-tag {
  font-family: var(--font-mono); font-size: .563rem; letter-spacing: .14em;
  text-transform: uppercase; font-weight: 700; color: var(--clay-ink);
  border: 1px solid currentColor; padding: .24rem .5rem; width: fit-content;
}
.tier-body h3 { font-size: 1.45rem; margin-bottom: .5rem; }
.tier-body p { color: var(--ink-2); font-size: .88rem; max-width: 42rem; }
.tier-price { display: flex; flex-wrap: wrap; align-items: baseline; gap: .5rem 1rem; }
.tier-num {
  font-family: var(--font-display); font-size: clamp(1.8rem, 3.4vw, 2.5rem);
  line-height: 1; letter-spacing: -.03em;
}
.tier-num .unit { font-size: .45em; color: var(--ink-2); }
.tier-lbl { color: var(--ink-3); width: 100%; margin-top: -.2rem; }
.tier-plus { font-family: var(--font-display); font-size: 1.4rem; color: var(--ink-3); }

/* --- 002A The Living File ------------------------------------------------- */
.file-chips { margin-top: 0; margin-bottom: clamp(2.5rem, 5vw, 4rem); }

.file-layout {
  display: grid; grid-template-columns: 1.15fr .85fr;
  gap: clamp(1.75rem, 4vw, 3.5rem); align-items: start;
}
.file-plate {
  border: 1px solid var(--rule-2); background: var(--surface-2);
  box-shadow: var(--shadow-plate);
}
.file-head {
  display: flex; align-items: center; justify-content: space-between; gap: 1rem;
  flex-wrap: wrap; padding: 1.1rem 1.4rem; border-bottom: 1px solid var(--rule);
}
.file-head .mono { color: var(--clay-ink); }
.file-stamp { color: var(--ink-3) !important; }
.file-fields { list-style: none; }
.file-fields li {
  display: grid; grid-template-columns: 200px 1fr; gap: 1rem;
  padding: .95rem 1.4rem; border-bottom: 1px solid var(--rule);
  transition: background .3s var(--ease);
}
.file-fields li:hover { background: var(--clay-soft); }
.ff-k {
  font-family: var(--font-mono); font-size: .625rem; letter-spacing: .13em;
  text-transform: uppercase; color: var(--ink-3); padding-top: .18rem;
}
.ff-v { font-size: .89rem; color: var(--ink-2); }
.ff-v em { color: var(--clay-ink); font-style: normal; font-weight: 600; }
.file-foot { padding: 1.15rem 1.4rem; font-size: .8rem; color: var(--ink-3); line-height: 1.6; }

.rules-card {
  border: 1px solid var(--rule-2); background: var(--surface-2); box-shadow: var(--shadow-plate);
}
.rules-head {
  display: flex; align-items: center; justify-content: space-between; gap: 1rem;
  padding: 1.1rem 1.4rem; border-bottom: 1px solid var(--rule);
}
.rules-head .mono { color: var(--clay-ink); }
.rules { list-style: none; counter-reset: r; }
.rules li {
  counter-increment: r; position: relative;
  padding: 1rem 1.4rem 1rem 3.1rem; border-bottom: 1px solid var(--rule);
  font-size: .87rem; color: var(--ink-2); line-height: 1.58;
}
.rules li::before {
  content: '0' counter(r);
  position: absolute; left: 1.4rem; top: 1rem;
  font-family: var(--font-mono); font-size: .625rem; letter-spacing: .1em;
  color: var(--clay-ink); font-weight: 700;
}
.rules li b { color: var(--ink); font-weight: 600; }
.rules-card .btn { margin: 1.3rem 1.4rem 1.4rem; width: calc(100% - 2.8rem); }

/* --- 002C Field Draw ------------------------------------------------------ */
.fd-grid {
  display: grid; grid-template-columns: repeat(3, 1fr);
  border-top: 1px solid var(--rule-2); border-left: 1px solid var(--rule);
  margin-bottom: clamp(2.5rem, 5vw, 4rem);
}
.fd-card {
  padding: clamp(1.6rem, 2.8vw, 2.2rem) clamp(1.25rem, 2.4vw, 1.9rem);
  border-bottom: 1px solid var(--rule); border-right: 1px solid var(--rule);
  position: relative; transition: background .45s var(--ease);
}
.fd-card:hover { background: var(--surface-2); }
.fd-card:hover .card-num { color: var(--clay); }
.fd-card:hover .card-glow { width: 100%; }

.fd-layout {
  display: grid; grid-template-columns: 1fr 1fr;
  gap: clamp(2.25rem, 5vw, 4.5rem); align-items: start;
}
.fd-scope { display: grid; gap: 1.75rem; }
.scope-h { display: block; margin-bottom: .9rem; }
.scope-h.yes { color: var(--verify); }
.scope-h.no { color: var(--flag); }
.scope-list { list-style: none; }
.scope-list li {
  position: relative; padding: .68rem 0 .68rem 1.75rem;
  border-bottom: 1px solid var(--rule);
  font-size: .875rem; color: var(--ink-2); line-height: 1.55;
}
.scope-list li::before {
  position: absolute; left: 0; top: .68rem;
  font-family: var(--font-mono); font-size: .82rem; font-weight: 700;
}
.scope-list.yes li::before { content: '+'; color: var(--verify); }
.scope-list.no li::before { content: '\2013'; color: var(--flag); }
.fd-pricing {
  padding: 1.4rem 1.6rem;
  border: 1px solid var(--rule); border-left: 2px solid var(--clay);
  background: var(--clay-soft);
}
.fd-pricing .mono { color: var(--clay-ink); display: block; margin-bottom: .6rem; }
.fd-pricing p { font-size: .875rem; color: var(--ink-2); line-height: 1.62; }
.fd-pricing b { color: var(--ink); font-weight: 600; }

/* --- Pre-revenue routing notice inside the Desk form ---------------------- */
.route-note {
  padding: .95rem 1.1rem;
  border: 1px solid var(--rule); border-left: 2px solid var(--clay);
  background: var(--clay-soft);
}
.route-note .mono { color: var(--clay-ink); display: block; margin-bottom: .45rem; font-size: .625rem; }
.route-note p { font-size: .8rem; color: var(--ink-2); line-height: 1.58; }
.route-note a, .form-note a, .form-ok a {
  color: var(--clay-ink); border-bottom: 1px solid var(--rule-2);
}
.route-note a:hover, .form-note a:hover, .form-ok a:hover { border-bottom-color: var(--clay); }

/* --- Provider door: facility-type checkboxes ------------------------------ */
.check-set { border: 0; }
.check-set legend {
  font-family: var(--font-mono); font-size: .625rem; letter-spacing: .14em;
  text-transform: uppercase; color: var(--ink-3); margin-bottom: .6rem; padding: 0;
}
.check-grid { display: grid; grid-template-columns: 1fr 1fr; gap: .4rem .75rem; }
.cbx {
  display: flex; align-items: center; gap: .55rem;
  font-size: .82rem; color: var(--ink-2); cursor: pointer;
  padding: .4rem .5rem; border: 1px solid transparent;
  transition: border-color .25s, color .25s;
}
.cbx:hover { color: var(--ink); border-color: var(--rule); }
.cbx input {
  appearance: none; -webkit-appearance: none;
  width: 15px; height: 15px; flex: none; margin: 0;
  border: 1px solid var(--rule-2); background: var(--surface);
  display: grid; place-items: center; cursor: pointer;
  transition: background .2s, border-color .2s;
}
.cbx input:checked { background: var(--clay-btn); border-color: var(--clay-btn); }
.cbx input:checked::after {
  content: ''; width: 7px; height: 4px;
  border-left: 1.6px solid var(--on-clay); border-bottom: 1.6px solid var(--on-clay);
  transform: rotate(-45deg) translate(.5px, -1px);
}

/* --- Console: living-file readout ---------------------------------------- */
.console-status {
  display: flex; align-items: baseline; justify-content: space-between; gap: 1rem;
  padding: .8rem 1.1rem; border-bottom: 1px solid var(--rule);
}
.console-status .mono { color: var(--ink-3); font-size: .563rem; }
.cs-val { font-family: var(--font-mono); font-size: .688rem; color: var(--clay-ink); font-weight: 700; }
.cs-hint { color: var(--ink-3); font-weight: 400; }
.console-cell .v.sm {
  font-family: var(--font-sans); font-size: .78rem; line-height: 1.35;
  letter-spacing: 0; color: var(--ink-2);
}

/* --------------------------------------------------------------------------
   20. RESPONSIVE — new modules
   -------------------------------------------------------------------------- */
@media (max-width: 1080px) {
  .fork { grid-template-columns: 1fr; gap: 1.75rem; }
  .fork-rule { height: 1px; width: 100%; }
  .file-layout, .fd-layout { grid-template-columns: 1fr; }
  .tier-outside { grid-template-columns: 1fr; gap: 1.5rem; }
}
@media (max-width: 900px) {
  .fd-grid { grid-template-columns: 1fr; }
  .fd-card { border-right: 0; }
  .file-chips.field-index { grid-template-columns: 1fr 1fr; gap: 1.5rem 0; }
}
@media (max-width: 640px) {
  .file-fields li { grid-template-columns: 1fr; gap: .3rem; }
  .check-grid { grid-template-columns: 1fr; }
  .file-chips.field-index { grid-template-columns: 1fr; }
  .tier-price { gap: .4rem .8rem; }

  /* The dock is fixed; keep it clear of the last section and the footer. */
  body { padding-bottom: 84px; }
  .dock { flex-direction: row; align-items: center; }
  .panel { bottom: calc(clamp(.9rem, 2vw, 1.6rem) + 62px); }
}
