/* ============================================================
   SENATUS FUND — BASE
   Minimal resets + a few brand primitives used across cards/kits.
   ============================================================ */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  font: var(--role-body);
  color: var(--text-ink);
  background: var(--bg-paper);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
h1, h2, h3, h4 { margin: 0; font-family: var(--font-display); font-weight: var(--w-regular); }
p { margin: 0; text-wrap: pretty; }
a { color: inherit; }
::selection { background: rgba(218,185,119,0.30); color: var(--ink-900); }
:focus-visible { outline: 2px solid var(--focus-ring); outline-offset: 2px; }

/* ---- Brand primitives (utility layer) ---- */

/* Inscriptional kicker / eyebrow */
.kicker {
  font-family: var(--font-inscription);
  font-weight: var(--w-semibold);
  font-size: var(--text-xs);
  letter-spacing: var(--tracking-kicker);
  text-transform: uppercase;
  color: var(--accent-on-light);
}
.on-space .kicker, .kicker--gold { color: var(--accent); }

/* Sans kicker — institutional register (content slides, dashboards, documents) */
.kicker-sans {
  font-family: var(--font-sans);
  font-weight: var(--w-semibold);
  font-size: var(--text-xs);
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--accent-on-light);
}
.on-space .kicker-sans { color: var(--accent); }

/* Gold hairline rule with a centered laurel-dot node */
.rule-gold {
  border: 0;
  height: 1px;
  background: var(--line-gold);
}
.rule-node {
  display: flex; align-items: center; gap: var(--space-3);
  color: var(--accent);
}
.rule-node::before, .rule-node::after {
  content: ""; height: 1px; flex: 1; background: var(--line-gold);
}
.rule-node > .dot { width: 5px; height: 5px; transform: rotate(45deg); background: var(--accent); }

/* Institutional grounds — FLAT solids (no gradients) */
.on-space { background: var(--navy-800); color: var(--text-on-space); }
.on-void  { background: var(--navy-900); color: var(--text-on-space); }
.on-space h1, .on-space h2, .on-space h3, .on-void h1, .on-void h2, .on-void h3 { color: var(--text-on-space); }

/* Architectural fluting — crisp vertical hairlines echoing the column.
   Reads as ruled structure. Content should sit in normal flow or carry its
   own z-index; the texture paints at z-index 0. */
.flute { position: relative; }
.flute::before {
  content: ""; position: absolute; inset: 0; z-index: 0; pointer-events: none;
  background: var(--flute);
}
.flute-gold::before { background: var(--flute-gold); }
.flute-ink::before  { background: var(--flute-ink); }

/* Masthead rule system — the institutional structural device */
.rule-line { border: 0; height: 1px; background: var(--line-gold); }
.masthead {
  display: flex; align-items: center; justify-content: space-between; gap: 20px;
  padding-block: 14px; border-top: 1px solid var(--line-gold);
}
.rule-label {
  font-family: var(--font-inscription); font-weight: 600; font-size: var(--text-2xs);
  letter-spacing: 0.24em; text-transform: uppercase; color: var(--accent);
}
.index-num {
  font-family: var(--font-display); font-weight: 400; color: var(--accent);
  font-variant-numeric: tabular-nums; letter-spacing: 0;
}

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