
:root {
  --bg: #030407;
  --bg-glow-1: rgba(139, 92, 246, 0.25); /* Violet */
  --bg-glow-2: rgba(14, 165, 233, 0.2);  /* Cyan */
  --bg-glow-3: rgba(249, 115, 22, 0.15); /* Sunset orange */
  
  --glass-bg: rgba(255, 255, 255, 0.03);
  --glass-border: rgba(255, 255, 255, 0.08);
  --glass-shadow: 0 8px 32px 0 rgba(0, 0, 0, 0.3);
  --glass-blur: blur(16px);

  --text-secondary: #A0A0A0;  /* secondary labels — WCAG AA on #030407 */
  --text-tertiary:  #888888;  /* hashes, timestamps, seal meta */
  --border-hairline: 1px solid rgba(255,255,255,0.08);
  
  --ink: #ffffff;
  --muted: #a1a1aa;
  --faint: #64748b;
  --gold: #C9A227;        /* brass — primary accent */
  --gold-dim: #8C6918;    /* brass dim — secondary links */
  --accent:      #C9A227; /* alias: tabs, links, numerals */
  --accent-fill: #B8941F; /* filled surfaces — CTA, badges */
  --accent-dim:  rgba(201,162,39,0.55); /* LOG numerals, chain meta */
  --oxblood: #ef4444;
  --rule: rgba(255,255,255,0.1);
  --rule-hi: rgba(255,255,255,0.2);
  
  --serif: "IBM Plex Serif", Georgia, serif;
  --sans: "IBM Plex Serif", Georgia, serif;  /* single global typeface */
  --mono: "IBM Plex Mono", ui-monospace, monospace;

  /* Typography system aliases */
  --cream:    #ffffff;                       /* primary headings */
  --body:     #a1a1aa;                       /* alias: --muted */
  --brass:    #A38B40;                       /* eyebrow / label accent */
  --dim:      #64748b;                       /* alias: --faint */
  --panel:    rgba(255,255,255,0.03);        /* alias: --glass-bg */
  --hairline: rgba(255,255,255,0.08);        /* alias: --glass-border */
}

* { margin:0; padding:0; box-sizing:border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }

body {
  background-color: var(--bg);
  color: var(--muted);
  font-family: var(--sans);
  font-size: 16px;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  padding: 0 20px calc(40px + env(safe-area-inset-bottom));
  min-height: 100vh;
  position: relative;
  overflow-x: hidden;
}

/* Ambient Glows */
body::before, body::after, .glow-orb {
  content: "";
  position: fixed;
  border-radius: 50%;
  filter: blur(120px);
  z-index: -1;
  pointer-events: none;
}
body::before {
  top: -10%; left: -10%; width: 60vw; height: 60vw;
  background: radial-gradient(circle, var(--bg-glow-1) 0%, transparent 70%);
}
body::after {
  bottom: -20%; right: -10%; width: 70vw; height: 70vw;
  background: radial-gradient(circle, var(--bg-glow-2) 0%, var(--bg-glow-3) 60%, transparent 80%);
}

.wrap { max-width: 800px; margin: 0 auto; position: relative; z-index: 1; }

a { color: var(--gold); text-decoration: none; transition: color 0.2s, text-decoration 0.2s; }
a:hover, a:focus-visible { text-decoration: underline; text-underline-offset: 4px; }
:focus-visible { outline: 1px solid var(--gold); outline-offset: 4px; border-radius: 2px; }

/* Typographic Helpers */
h1, h2, h3, h4, h5, h6, .np-name {
  color: var(--cream);
  font-family: var(--serif);
  font-weight: 600;
  letter-spacing: -0.02em;
  line-height: 1.2;
  margin-bottom: 0.5em;
}

h1 { font-size: clamp(28px, 6vw, 34px); }
h2 { font-size: 22px; }
h3 { font-size: 18px; }

.label {
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--faint);
}
.label--gold { color: var(--gold); }

/* Glass Blocks */
.glass-panel {
  background: var(--glass-bg);
  backdrop-filter: var(--glass-blur);
  -webkit-backdrop-filter: var(--glass-blur);
  border: 1px solid var(--glass-border);
  border-radius: 16px;
  box-shadow: var(--glass-shadow);
  padding: 32px;
  margin-bottom: 24px;
  transition: transform 0.3s ease, border-color 0.3s ease;
}
/* Ensure links inside glass that act as blocks look right on hover */
a.glass-panel:hover {
  border-color: rgba(255,255,255,0.25);
  transform: translateY(-2px);
  text-decoration: none;
}

.rule-double {
  border: 0; height: 1px;
  background: var(--rule-hi);
  margin: 30px 0;
  box-shadow: 0 4px 0 0 var(--rule);
}
hr { border: 0; height: 1px; background: var(--rule); margin: 30px 0; }

/* ---------------- Nameplate & Header ---------------- */
header { padding-top: calc(40px + env(safe-area-inset-top)); margin-bottom: 30px; }
.nameplate { padding: 10px 0; }
.np-top, .np-bottom {
  display: flex; justify-content: space-between; align-items: baseline;
  gap: 10px 20px; flex-wrap: wrap;
  font-family: var(--mono);
}
.np-folio { color: var(--faint); }
.np-name {
  font-size: 40px; letter-spacing: -0.02em;
  margin: 20px 0 16px;
  background: linear-gradient(180deg, #ffffff 0%, #cbd5e1 100%);
  -webkit-background-clip: text; background-clip: text; color: transparent;
}
@media(min-width: 560px) { .np-name { font-size: 56px; } }
.np-desc { color: var(--muted); font-size: 18px; max-width: 40em; margin-bottom: 24px; line-height: 1.6; }
.np-bottom { font-size: 11px; letter-spacing: 0.1em; text-transform: uppercase; color: var(--faint); }
.np-bottom a { color: var(--gold-dim); }

/* ---------------- Sections ---------------- */
section { margin-bottom: 40px; }
.section-head {
  display: flex; justify-content: space-between; align-items: baseline;
  padding-bottom: 12px; margin-bottom: 20px;
  border-bottom: 1px solid var(--rule-hi);
}
.section-head .aux { font-family: var(--mono); font-size: 11px; letter-spacing: 0.1em; color: var(--faint); }
.cadence { font-family: var(--mono); font-size: 12px; letter-spacing: 0.02em; color: var(--faint); margin-bottom: 24px; }
.cadence b { color: var(--muted); font-weight: 500; }

/* ---------------- Above-fold lede ---------------- */
.above-fold-lede { margin-bottom: 28px; }
.afl-line { font-size: 22px; font-weight: 500; color: var(--ink); line-height: 1.5; margin-bottom: 24px; max-width: 38em; }
.afl-line strong { color: #fff; }
.afl-how { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
@media (max-width: 600px) { .afl-how { grid-template-columns: 1fr; } }
.afl-how dt { font-family: var(--mono); font-size: 11px; text-transform: uppercase; letter-spacing: .12em; color: var(--gold); margin-bottom: 6px; }
.afl-how dd { font-size: 15px; color: var(--muted); line-height: 1.7; }
.afl-how dd strong { color: var(--ink); font-weight: 600; }

/* ---------------- Sticky CTA bar ---------------- */
.sticky-cta {
  position: fixed; bottom: 0; left: 0; right: 0; z-index: 100;
  display: flex; align-items: center; justify-content: space-between; gap: 12px;
  padding: 14px clamp(1.25rem, 4vw, 3rem) calc(14px + env(safe-area-inset-bottom, 0px));
  background: rgba(10, 9, 14, 0.88);
  backdrop-filter: blur(18px); -webkit-backdrop-filter: blur(18px);
  border-top: 1px solid rgba(255,255,255,0.08);
  transform: translateY(110%);
  transition: transform 0.35s cubic-bezier(0.22,1,0.36,1);
  pointer-events: none;
}
.sticky-cta.visible { transform: translateY(0); pointer-events: auto; }
.sticky-cta__label { font-family: var(--mono); font-size: 11px; text-transform: uppercase; letter-spacing: .16em; color: var(--faint); white-space: nowrap; }
.sticky-cta__btn {
  font-family: var(--mono); font-size: 12px; text-transform: uppercase; letter-spacing: .12em;
  color: var(--bg); background: var(--accent-fill); border: none; border-radius: 4px;
  padding: 10px 20px; text-decoration: none; white-space: nowrap;
  transition: background 0.2s, color 0.2s;
}
.sticky-cta__btn:hover { background: #a07515; }
.sticky-cta__dismiss {
  background: none; border: none; color: var(--faint); font-size: 15px;
  cursor: pointer; padding: 4px 6px; line-height: 1; flex-shrink: 0;
  transition: color 0.15s;
}
.sticky-cta__dismiss:hover { color: var(--muted); }
@media (prefers-reduced-motion: reduce) { .sticky-cta { transition: none; } }

/* ---------------- Thesis / Manifesto ---------------- */
.thesis { margin-bottom: 30px; }
.thesis .kicker { display: flex; align-items: center; margin-bottom: 20px; }
.live-dot {
  display: inline-block; width: 6px; height: 6px; border-radius: 50%;
  background: var(--rule-hi); margin-right: 12px;
}
.live-dot.on {
  background: var(--gold);
  box-shadow: 0 0 10px var(--gold);
  animation: pulse 2.4s ease-in-out infinite;
}
@keyframes pulse { 0%, 100% { opacity: 1; } 50% { opacity: 0.3; } }
.thesis p { font-size: 20px; font-weight: 400; max-width: 36em; color: var(--ink); line-height: 1.6; }
.thesis em { font-style: normal; color: var(--gold); }

/* ---------------- Strip (Stats) ---------------- */
.strip {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px;
  padding: 20px 24px; margin-bottom: 0;
}
@media(min-width: 560px) { .strip { grid-template-columns: repeat(6, 1fr); } }
.strip .cell { display: flex; flex-direction: column; }
.strip .num { font-family: var(--mono); font-size: 22px; font-weight: 600; color: var(--text-secondary); margin-bottom: 4px; }
.strip .cell .label { font-size: 10px; color: var(--faint); }
.num.num--active { color: var(--gold); }
.num.num--zero   { color: var(--text-secondary); }

/* ---------------- Tab Navigation ---------------- */
.tab-nav {
  display: flex; gap: 2px;
  position: sticky; top: 0; z-index: 50;
  background: rgba(3,4,7,0.85);
  backdrop-filter: blur(18px); -webkit-backdrop-filter: blur(18px);
  border-bottom: 1px solid var(--rule-hi);
  padding: 10px 0;
  margin: 24px 0 0;
}
.tab-btn {
  flex: 1; background: transparent; border: none;
  font-family: var(--mono); font-size: 11px; letter-spacing: 0.12em;
  text-transform: uppercase; color: var(--faint);
  padding: 10px 8px; border-radius: 6px; cursor: pointer;
  transition: color 0.2s, background 0.2s;
}
.tab-btn:hover { color: var(--muted); background: rgba(255,255,255,0.04); }
.tab-btn--active {
  color: var(--accent); background: rgba(201,162,39,0.08);
  border-bottom: 2px solid var(--accent);
}
.tab-panel { padding-top: 28px; }
.tab-panel[hidden] { display: none; }

/* ---------------- Chain mini band (in ledger tab) ---------------- */
.chain-mini {
  display: flex; align-items: center; gap: 10px; flex-wrap: wrap;
  font-family: var(--mono); font-size: 11px; color: var(--faint);
  padding: 10px 16px; border: 1px solid var(--rule-hi);
  border-radius: 8px; margin-bottom: 24px;
  background: rgba(0,0,0,0.2);
}
.chain-mini__hash {
  color: var(--gold); font-weight: 600; letter-spacing: 0.04em; cursor: pointer;
}
.chain-mini__hash:hover { text-decoration: underline; text-underline-offset: 3px; }
.chain-mini__sep { color: var(--rule-hi); }
.chain-mini__aux { margin-left: auto; font-size: 11px; letter-spacing: 0.08em; }

/* ---------------- Integrity Band ---------------- */
.integrity { display: grid; gap: 24px; margin-bottom: 40px; }
@media(min-width: 620px) { .integrity { grid-template-columns: 1fr auto; align-items: start; gap: 48px; } }
.integ-lead p { color: var(--muted); font-size: 16px; max-width: 34em; margin-top: 12px; }
.integ-lead em { color: var(--ink); font-style: normal; }
.integ-facts { display: grid; gap: 16px; }
.integ-facts dt { font-family: var(--mono); font-size: 11px; letter-spacing: 0.1em; text-transform: uppercase; color: var(--faint); margin-bottom: 4px; }
.integ-facts dd { font-family: var(--mono); font-size: 14px; color: var(--gold-dim); word-break: break-all; }
.integ-facts .chain #chain-head { font-size: 16px; letter-spacing: 0.04em; color: var(--gold); }

/* ---------------- Ledger Entries (condensed) ---------------- */
.entry { opacity: 0; transform: translateY(8px); animation: rise 0.5s cubic-bezier(0.16, 1, 0.3, 1) forwards;
  padding: 20px 24px; margin-bottom: 10px;
  transition: border-color 160ms ease, background-color 160ms ease; }
.entry:hover { border-color: rgba(255,255,255,0.14); background-color: rgba(255,255,255,0.015); }
@media (hover: none) { .entry:active { background-color: rgba(255,255,255,0.015); } }
.entry:nth-child(1) { animation-delay: 0.04s; }
.entry:nth-child(2) { animation-delay: 0.08s; }
.entry:nth-child(3) { animation-delay: 0.12s; }
@keyframes rise { to { opacity: 1; transform: none; } }
.entry .meta {
  display: flex; align-items: center; gap: 10px; flex-wrap: wrap;
  font-family: var(--mono); font-size: 12px; margin-bottom: 10px;
}
.entry .no { color: var(--accent-dim); font-weight: 600; }
.entry--milestone .no { color: var(--accent); }
.entry .ts { color: var(--text-tertiary); }
.entry .type { letter-spacing: 0.08em; text-transform: uppercase; font-size: 11px; font-weight: 600;
  padding: 2px 5px; border-radius: 3px; border: 1px solid rgba(255,255,255,0.08); }
.type--decision { color: var(--text-secondary); }
.type--declaration { color: var(--accent); border-color: var(--accent); background: transparent; }
.entry h3 { font-size: 18px; margin-bottom: 10px; color: var(--ink); font-weight: 600; text-wrap: balance; }
.entry .body {
  color: var(--muted); max-width: 52em; font-size: 15px; line-height: 1.65;
}
.body--clamp {
  max-height: calc(3 * 1.65 * 15px + 2px);
  overflow: hidden;
}
.body--clamp.expanded {
  max-height: none; overflow: visible;
}
/* Multiple paragraphs inside a rendered body */
.body p { margin: 0 0 0.6em; }
.body p:last-child { margin-bottom: 0; }
/* Code fences in entry bodies */
.code-block {
  background: rgba(0, 0, 0, 0.45);
  border: 1px solid rgba(255, 255, 255, 0.07);
  border-radius: 4px;
  padding: 10px 14px;
  font-family: var(--mono);
  font-size: 12px;
  line-height: 1.6;
  color: rgba(255, 255, 255, 0.55);
  overflow-x: auto;
  white-space: pre;
  margin: 6px 0 2px;
  max-width: 100%;
}
.code-block code { font-family: inherit; font-size: inherit; color: inherit; background: none; padding: 0; }
.expand-btn {
  background: none; border: none; padding: 4px 0 0; margin: 0;
  font-family: var(--mono); font-size: 10px; letter-spacing: 0.06em; text-transform: uppercase;
  color: var(--faint); cursor: pointer; display: block;
  transition: color 0.15s;
}
.expand-btn:hover { color: var(--gold); }

/* Card chevron — right-aligned expand indicator in meta row */
.card-chevron {
  margin-left: auto; background: none; border: none; padding: 0 4px;
  color: var(--text-tertiary); cursor: pointer; flex-shrink: 0;
  min-width: 44px; min-height: 32px;
  display: flex; align-items: center; justify-content: flex-end;
  transition: color 0.15s; opacity: 0.7;
}
.card-chevron svg { transition: transform 0.15s ease; }
.card-chevron.open svg { transform: rotate(180deg); }
.card-chevron:hover { color: var(--text-secondary); opacity: 1; }
.seal {
  display: flex; align-items: center; gap: 8px; flex-wrap: wrap;
  margin-top: 14px; font-family: var(--mono); font-size: 10px; color: var(--faint);
  padding-top: 12px; border-top: 1px solid rgba(255,255,255,0.04);
}
.seal::before {
  content: "⛓\FE0E";
  margin-right: 0.5em; opacity: 0.55; font-size: 0.85em; flex-shrink: 0;
}
.seal b {
  font-weight: 500; color: var(--text-tertiary); cursor: pointer;
  letter-spacing: 0.04em; font-size: 11px; opacity: 0.7;
  transition: opacity 0.15s, color 0.15s;
}
.seal b:hover { opacity: 1; color: var(--gold); }
.seal .arw { color: var(--faint); }

#record { padding-bottom: calc(160px + env(safe-area-inset-bottom)); }

@media (max-width: 559px) { .glass-panel { padding: 20px; } }

.entry--milestone {
  border-left: 3px solid var(--gold);
  background: linear-gradient(135deg, rgba(255,255,255,0.05), rgba(255,255,255,0.01));
}
.entry--milestone h3 { font-size: 20px; font-weight: 600; }
.type--milestone { color: var(--bg); background: var(--accent-fill); border-color: transparent; font-weight: 600; }
.stamp {
  position: absolute; top: 16px; right: 20px;
  font-family: var(--mono); font-size: 9px; letter-spacing: 0.2em; text-transform: uppercase;
  color: var(--gold); border: 1px solid var(--gold); border-radius: 3px;
  padding: 4px 8px; transform: rotate(5deg); opacity: 0.5;
}
@media(max-width: 559px) { .stamp { display: none; } }

/* ---------------- Manifesto (no card — typography only) ---------------- */
.manifesto { padding: 8px 0 32px; border-bottom: 1px solid var(--rule-hi); margin-bottom: 32px; }
.manifesto__kicker { display: block; margin-bottom: 20px; }
.manifesto__lede {
  font-size: 20px; font-weight: 500; color: var(--ink); line-height: 1.55; max-width: 40em;
  margin-bottom: 16px;
}
.manifesto__lede em { font-style: normal; color: var(--gold); }
.manifesto__body { font-size: 16px; color: var(--muted); line-height: 1.75; max-width: 44em; }

/* ---------------- How it works (no card) ---------------- */
.how-it-works { padding-bottom: 32px; margin-bottom: 32px; border-bottom: 1px solid var(--rule-hi); }
.how__title { font-size: 13px; font-family: var(--mono); text-transform: uppercase;
  letter-spacing: 0.12em; color: var(--gold); margin-bottom: 20px; font-weight: 500; }
.how__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
@media(max-width: 600px) { .how__grid { grid-template-columns: 1fr; } }
.how__grid dt { font-family: var(--mono); font-size: 11px; text-transform: uppercase;
  letter-spacing: 0.1em; color: var(--faint); margin-bottom: 8px; }
.how__grid dd { font-size: 14px; color: var(--muted); line-height: 1.7; }
.how__grid dd strong { color: var(--ink); font-weight: 600; }

.empty { padding: 32px; color: var(--faint); font-family: var(--mono); font-size: 14px; text-align: center; }

/* ---------------- Terms / Clauses ---------------- */
.clause { display: flex; gap: 24px; }
.clause .mark { font-family: var(--mono); font-size: 14px; color: var(--gold); font-weight: 600; padding-top: 4px; }
.clause h3 { font-size: 20px; margin-bottom: 10px; color: var(--ink); }
.clause p { color: var(--muted); font-size: 16px; max-width: 40em; line-height: 1.8; }
.clause p strong { color: var(--ink); font-weight: 600; }

/* ---------------- Colophon ---------------- */
.col-grid { display: grid; gap: 20px; }
@media(min-width: 620px) { .col-grid { grid-template-columns: repeat(3, 1fr); } }
.colophon dt { font-family: var(--mono); font-size: 11px; letter-spacing: 0.1em; text-transform: uppercase; color: var(--faint); margin-bottom: 8px; }
.colophon dd { font-size: 16px; color: var(--ink); line-height: 1.5; }
.colophon .sig { font-family: var(--mono); font-size: 12px; color: var(--faint); margin-top: 24px; border-top: 1px solid var(--rule-hi); padding-top: 16px; }

/* ---------------- The Register / Stats ---------------- */
.reg-lead { font-size: 18px; color: var(--muted); max-width: 40em; margin-bottom: 32px; line-height: 1.6; }
.reg-lead em { color: var(--ink); font-style: normal; }
.reg-stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin-bottom: 32px; }
@media(max-width: 520px) { .reg-stats { grid-template-columns: 1fr; } }
.reg-cell dt { font-family: var(--mono); font-size: 11px; letter-spacing: 0.1em; text-transform: uppercase; color: var(--faint); margin-top: 8px; }
.reg-num { font-family: var(--mono); font-size: 32px; font-weight: 600; color: var(--ink); }
.reg-num.clean { color: var(--gold); }

/* Roster list */
.roster-list { padding: 0; overflow: hidden; margin-bottom: 32px; }
.roster-row {
  display: grid; grid-template-columns: 52px 1fr 90px 120px; gap: 16px; align-items: center;
  padding: 16px 24px; border-bottom: 1px solid var(--rule-hi);
  font-family: var(--mono); font-size: 13px; color: var(--ink); text-decoration: none;
  transition: background 0.2s;
}
@media(max-width: 520px) { .roster-row { grid-template-columns: 44px 1fr 70px; padding: 16px; } .roster-row .r-s, .roster-row--head span:last-child { display: none; } }
.roster-row:last-child { border-bottom: 0; }
a.roster-row:hover { background: rgba(255,255,255,0.05); }
a.roster-row:hover .r-h { color: var(--gold); }
.roster-row--head { font-size: 10px; letter-spacing: 0.1em; text-transform: uppercase; color: var(--faint); background: rgba(0,0,0,0.2); }
.roster-row .r-no { color: var(--gold-dim); }
.roster-row .r-h { font-family: var(--serif); font-size: 16px; font-weight: 500; }
.roster-row .r-e { color: var(--muted); }
.roster-row .r-s { font-size: 11px; text-transform: uppercase; color: var(--faint); }
.roster-row .r-s.s-live { color: var(--gold); }
.roster-row .r-s.s-compromised { color: var(--oxblood); }

.reg-join { color: var(--muted); font-size: 16px; max-width: 40em; margin-bottom: 24px; }
.reg-join em { color: var(--ink); font-style: normal; }

/* ---------------- Sub Panel & Forms ---------------- */
.sub-panel .form-no { font-family: var(--mono); font-size: 11px; letter-spacing: 0.1em; text-transform: uppercase; color: var(--faint); display: block; margin-bottom: 16px; }
.sub-panel .pitch { font-size: 18px; color: var(--ink); margin-bottom: 24px; }
.sub-row { display: flex; gap: 12px; }
.sub-row input {
  flex: 1; background: rgba(0,0,0,0.2); border: 1px solid var(--rule-hi);
  border-radius: 8px; color: var(--ink); font-family: var(--mono); font-size: 14px;
  padding: 14px 16px; outline: none; transition: border-color 0.2s;
}
.sub-row input:focus { border-color: var(--gold); }
.sub-row button, .join-cta, .btn, button {
  background: var(--ink); color: var(--bg); border: none; border-radius: 8px;
  font-family: var(--mono); font-size: 13px; font-weight: 600; letter-spacing: 0.05em; text-transform: uppercase;
  padding: 14px 24px; cursor: pointer; transition: background 0.2s, transform 0.1s;
  display: inline-block; text-align: center;
}
.sub-row button:hover, .join-cta:hover, .btn:hover, button:hover { background: #e2e8f0; text-decoration: none; transform: translateY(-1px); }
.join-cta { background: var(--accent-fill); }
.join-cta:hover { background: #a07515; }
.b-save { background: transparent; border: 1px solid var(--accent); color: var(--accent); }
.b-save:hover { background: rgba(201,162,39,0.1); color: var(--accent); }
.b-pub { background: var(--accent-fill); color: var(--bg); }
.b-pub:hover { background: #a07515; }
.b-del { background: transparent; border: 1px solid var(--rule-hi); color: var(--faint); }
.b-del:hover { border-color: var(--oxblood); color: var(--oxblood); background: rgba(239,68,68,0.05); }
.b-ghost { background: transparent; border: 1px solid var(--rule-hi); color: var(--muted); }
.b-ghost:hover { border-color: var(--faint); color: var(--ink); background: rgba(255,255,255,0.04); }
.b-mini { padding: 8px 12px; font-size: 11px; }
.sub-note { font-family: var(--mono); font-size: 12px; color: var(--faint); margin-top: 16px; }

form label { display: block; font-family: var(--mono); font-size: 12px; text-transform: uppercase; color: var(--faint); margin: 24px 0 8px; }
form input[type=text], form input[type=email], form input[type=password], form textarea, form select {
  width: 100%; background: rgba(0,0,0,0.2); border: 1px solid var(--rule-hi); border-radius: 8px;
  color: var(--ink); font-family: var(--mono); font-size: 14px; padding: 16px; outline: none;
  transition: border-color 0.2s;
}
form input:focus, form textarea:focus, form select:focus { border-color: var(--gold); }
form input:-webkit-autofill,
form input:-webkit-autofill:hover,
form input:-webkit-autofill:focus {
  -webkit-box-shadow: 0 0 0 1000px rgba(0,0,0,0.4) inset;
  -webkit-text-fill-color: var(--ink);
  caret-color: var(--ink);
  border-color: var(--rule-hi);
  transition: background-color 9999s ease-in-out 0s;
}
.signin-lede {
  color: var(--muted); font-size: 15px; line-height: 1.75;
  padding: 20px 24px; margin-bottom: 8px;
}
form textarea { min-height: 120px; resize: vertical; line-height: 1.6; }
.hint { font-family: var(--mono); font-size: 11px; color: var(--faint); margin-top: 8px; }
.error { font-family: var(--mono); font-size: 13px; color: var(--oxblood); border: 1px solid var(--oxblood); background: rgba(239,68,68,0.05); padding: 12px 16px; border-radius: 8px; margin-top: 24px; }
.warn {
  font-family: var(--mono); font-size: 11px; color: var(--brass);
  letter-spacing: .04em; margin-top: 20px; line-height: 1.6;
}
.warn::before { content: "— "; opacity: .6; }

/* ---------------- Shelf / Commons ---------------- */
.shelf-list { padding: 0; overflow: hidden; }
.shelf-row {
  display: grid; grid-template-columns: auto 1fr auto; gap: 20px; align-items: center;
  padding: 20px 24px; border-bottom: 1px solid var(--rule-hi); text-decoration: none; color: var(--ink);
  transition: background 0.2s;
}
.shelf-row:last-child { border-bottom: 0; }
.shelf-row:hover { background: rgba(255,255,255,0.05); }
.shelf-row:hover .sh-t { color: var(--gold); }
.sh-type {
  font-family: var(--mono); font-size: 11px; letter-spacing: 0.1em; text-transform: uppercase;
  color: var(--muted); border: 1px solid var(--rule-hi); padding: 4px 10px; border-radius: 4px; text-align: center;
}
.sh-type--course { color: var(--bg); background: var(--accent-fill); border-color: transparent; font-weight: 600; }
.sh-body { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.sh-t { font-size: 20px; font-weight: 600; color: var(--ink); }
.sh-blurb { color: var(--muted); font-size: 15px; }
.sh-by { font-family: var(--mono); font-size: 12px; color: var(--faint); }
.sh-price { font-family: var(--mono); font-size: 13px; color: var(--gold-dim); white-space: nowrap; font-weight: 500; }
@media(max-width: 520px) { .shelf-row { grid-template-columns: auto 1fr; padding: 16px; } .sh-price { display: none; } }

/* ---------------- Course / Dispatch Details ---------------- */
.byline {
  font-family: var(--mono); font-size: 12px; text-transform: uppercase; color: var(--faint);
  display: flex; gap: 24px; flex-wrap: wrap; padding-bottom: 24px; border-bottom: 1px solid var(--rule-hi); margin-bottom: 32px;
}
.byline a { color: var(--gold); }
.prose p, .body p { margin-bottom: 1.5em; color: var(--muted); font-size: 18px; line-height: 1.7; }
.permanent {
  margin-top: 40px; border-left: 3px solid var(--gold-dim); background: rgba(255,255,255,0.02);
  padding: 16px 20px; border-radius: 0 8px 8px 0; font-family: var(--mono); font-size: 13px; color: var(--muted);
}
.card {
  display: grid; grid-template-columns: 1fr auto; gap: 24px; align-items: center;
}
.card .price { font-family: var(--mono); font-size: 32px; font-weight: 600; color: var(--ink); margin-top: 4px; }
.card .plabel { font-family: var(--mono); font-size: 12px; text-transform: uppercase; color: var(--faint); }
.s4 { margin-top: 24px; border-left: 3px solid var(--gold-dim); padding: 20px; background: rgba(255,255,255,0.02); border-radius: 0 8px 8px 0; }
.s4 .t { font-family: var(--mono); font-size: 12px; letter-spacing: 0.1em; text-transform: uppercase; color: var(--gold); margin-bottom: 8px; }
.s4 p { font-size: 15px; color: var(--muted); line-height: 1.6; }
.s4 b { color: var(--ink); font-weight: 500; }

.lesson { padding: 32px 0; border-bottom: 1px solid var(--rule-hi); }
.lesson:last-child { border-bottom: 0; }
.lesson .meta { display: flex; gap: 16px; font-family: var(--mono); font-size: 13px; margin-bottom: 12px; }
.lesson .n { color: var(--gold); font-weight: 600; }
.lesson h3 { font-size: 24px; margin-bottom: 16px; }
.lesson--locked { padding: 14px 0; opacity: .55; }
.lesson--locked h3 { font-size: 17px; margin-bottom: 0; font-weight: 400; }
.lesson--locked .meta { margin-bottom: 6px; }
.lesson .body ul, .lesson .body ol { margin: .25em 0 1em 1.4em; padding: 0; }
.lesson .body li { margin-bottom: .45em; color: var(--muted); line-height: 1.65; }
.lesson .body li strong { color: rgba(255,255,255,.88); }
.lesson .body blockquote { border-left: 3px solid var(--gold); padding: .5rem 0 .5rem 1.1rem; margin: 1rem 0; opacity: .9; }
.lesson .body blockquote p { margin-bottom: 0; }
.lesson .body code { font-family: var(--mono); font-size: .82em; background: rgba(255,255,255,.07); padding: .15em .4em; border-radius: 4px; }
.table-wrap { overflow-x: auto; margin: 1.25rem 0; border-radius: 10px; }
.md-table { border-collapse: collapse; width: 100%; font-size: .875rem; }
.md-table th, .md-table td { padding: .55rem .85rem; text-align: left; border: 1px solid var(--rule-hi); }
.md-table th { background: rgba(255,255,255,.05); font-family: var(--mono); font-size: .72rem; text-transform: uppercase; letter-spacing: .05em; color: var(--gold); white-space: nowrap; }
.md-table td { color: var(--muted); }

/* ---------------- JSON View ---------------- */
.json-view {
  display: none; font-family: var(--mono); font-size: 13px; line-height: 1.6;
  padding: 24px; border-radius: 8px; background: rgba(0,0,0,0.3); border: 1px solid var(--rule-hi);
  overflow-x: auto; white-space: pre; margin-top: 24px;
}
.json-view.show { display: block; }

/* ---------------- Footer ---------------- */
footer { margin-top: 60px; padding: 24px 0 40px; border-top: 1px solid var(--rule-hi); }
footer .line {
  font-family: var(--mono); font-size: 12px; color: var(--faint); text-transform: uppercase;
  display: flex; justify-content: space-between; gap: 20px; flex-wrap: wrap;
}
footer .chain { color: var(--gold-dim); text-transform: none; word-break: break-all; }

/* ---------------- Global Typography Classes ---------------- */
.eyebrow {
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--brass);
  font-weight: 500;
}
.eyebrow.dim { color: var(--dim); }

.meta {
  font-family: var(--mono);
  font-size: 12px;
  color: var(--dim);
  letter-spacing: 0.05em;
  line-height: 1.6;
}

.badge {
  display: inline-block;
  background: var(--gold);
  color: #050505;
  font-family: var(--mono);
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  padding: 4px 8px;
  border-radius: 4px;
  vertical-align: middle;
}

/* ---------------- Dashboard specific ---------------- */
.signout button { background: none; border: none; color: var(--muted); padding: 0; text-decoration: underline; text-underline-offset: 4px; }
.signout button:hover { color: var(--oxblood); }

/* Logs & Lists in dashboard */
.log { margin-top: 24px; }
.log .row {
  display: flex; gap: 16px; align-items: center; flex-wrap: wrap;
  padding: 16px 0; border-bottom: 1px solid var(--rule-hi); font-family: var(--mono); font-size: 13px;
}
.log .row:last-child { border-bottom: 0; }
.log .n { color: var(--gold); font-weight: 600; }
.log .t { font-family: var(--serif); font-size: 16px; font-weight: 500; color: var(--ink); flex: 1; }
.log .ts { color: var(--faint); }
.log .k { font-size: 11px; text-transform: uppercase; color: var(--muted); border: 1px solid var(--rule-hi); padding: 2px 6px; border-radius: 4px; }
.log .k--milestone { background: var(--accent-fill); color: var(--bg); border-color: transparent; font-weight: 600; }
.log .k--declaration { color: var(--accent); border-color: var(--accent); }
.log .st--draft { color: var(--muted); }
.log .st--published { color: var(--gold); border-color: var(--gold); }

/* Dashboard inline forms */
.newform { display: flex; gap: 12px; margin-top: 20px; }
.newform input[type=text] { flex: 1; margin: 0; }
.newform button { margin: 0; white-space: nowrap; }

.actions { display: flex; gap: 16px; flex-wrap: wrap; margin-top: 32px; }

/* Instrument (Login/Join/Setup) */
.instrument {
  width: 100%; max-width: 600px;
  display: grid; grid-template-columns: 1fr;
}
@media(min-width: 600px) {
  .instrument.split { grid-template-columns: 200px 1fr; max-width: 800px; }
}
.stub {
  border-right: 1px dashed var(--glass-border); padding: 24px;
  font-family: var(--mono); font-size: 12px; color: var(--muted);
  display: flex; flex-direction: column; gap: 20px;
}
@media(max-width: 599px) {
  .stub { border-right: none; border-bottom: 1px dashed var(--glass-border); flex-direction: row; flex-wrap: wrap; }
}
.stub dt { text-transform: uppercase; font-size: 10px; color: var(--faint); margin-bottom: 4px; }
.stub dd { color: var(--gold-dim); }
.deed { padding: 32px; }
.deed .join-intro {
  display: block; width: 100%; max-width: 65ch; word-break: normal;
  color: var(--muted); font-size: 15px; line-height: 1.7;
  padding: 16px 20px; margin-bottom: 24px;
}
.deed .join-intro strong { display: block; color: var(--ink); font-weight: 600; margin-bottom: 6px; }
.deed .join-intro em { color: var(--ink); font-style: italic; }
.deed .consent {
  display: flex; gap: 10px; align-items: flex-start;
  font-size: 13px; color: var(--muted); line-height: 1.5;
  margin: 20px 0 4px; cursor: pointer; text-transform: none; letter-spacing: 0;
}
.deed .consent input { margin-top: 2px; accent-color: var(--accent); flex: none; }
.deed .consent a { color: var(--accent); text-decoration: underline; }
.void-stamp {
  display: inline-block; font-family: var(--mono); font-size: 20px; letter-spacing: 0.2em;
  color: var(--oxblood); border: 2px solid var(--oxblood); padding: 8px 16px; border-radius: 4px;
  transform: rotate(-5deg); margin: 24px 0;
}

/* ---------------- Table & Admin ---------------- */
.filters { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 24px; }
.filters a {
  font-family: var(--mono); font-size: 11px; text-transform: uppercase; color: var(--muted);
  border: 1px solid var(--rule-hi); padding: 6px 12px; border-radius: 6px;
}
.filters a.on { background: var(--gold); color: var(--bg); border-color: var(--gold); font-weight: 600; }

table { width: 100%; border-collapse: collapse; text-align: left; }
th { font-family: var(--mono); font-size: 11px; text-transform: uppercase; color: var(--faint); padding: 12px 16px; border-bottom: 1px solid var(--rule-hi); }
td { padding: 16px; border-bottom: 1px solid var(--rule-hi); vertical-align: top; font-size: 14px; }
.m-status { font-family: var(--mono); font-size: 11px; text-transform: uppercase; padding: 4px 8px; border-radius: 4px; border: 1px solid var(--rule-hi); }
.m-status.pending { color: var(--gold); border-color: var(--gold); }
.m-status.approved { color: #0ea5e9; border-color: #0ea5e9; }
.m-status.member { color: #22c55e; border-color: #22c55e; }
.m-btn { background: transparent; color: var(--ink); border: 1px solid var(--rule-hi); padding: 6px 12px; border-radius: 4px; font-family: var(--mono); font-size: 11px; text-transform: uppercase; cursor: pointer; margin-right: 8px; }
.m-btn.danger { color: var(--oxblood); border-color: var(--oxblood); }
.m-btn:hover { background: rgba(255,255,255,0.1); }
.m-btn.danger:hover { background: rgba(239,68,68,0.1); }
.m-invite-url { color: var(--gold); font-family: var(--mono); font-size: 12px; word-break: break-all; }
.m-invite-meta, .m-note { display: block; font-family: var(--mono); font-size: 11px; color: var(--faint); margin-top: 4px; }


/* Admin aliases for backwards compatibility in admin.html inline styles (if any remain) */
:root {
  --obsidian: var(--bg);
  --seam: var(--glass-bg);
  --hairline: var(--rule-hi);
  --bone: var(--ink);
  --dim: var(--faint);
  --pad: 20px;
}
.console { max-width: 800px; margin: 0 auto; padding: 40px 20px; }
.console h1 { margin-bottom: 30px; font-size: 32px; }
.m-table { width: 100%; border-collapse: collapse; font-family: var(--mono); font-size: 13px; }
.m-table th { text-align: left; padding: 12px 16px; border-bottom: 1px solid var(--rule-hi); color: var(--faint); text-transform: uppercase; font-size: 11px; letter-spacing: 0.1em; }
.m-table td { padding: 16px; border-bottom: 1px solid var(--rule); vertical-align: top; }

/* Missing utility classes from compose/dashboard/admin */
.grid2 { display: grid; grid-template-columns: 1fr 2fr; gap: 16px; }
@media(max-width:560px) { .grid2 { grid-template-columns: 1fr; } }
.actions { display: flex; gap: 16px; align-items: center; margin-top: 24px; flex-wrap: wrap; }
.actions button { cursor: pointer; padding: 12px 24px; font-weight: 600; text-transform: uppercase; font-size: 13px; font-family: var(--mono); letter-spacing: 0.1em; border-radius: 8px; border: none; }
.b-save { background: transparent; border: 1px solid var(--accent); color: var(--accent); }
.b-save:hover { background: rgba(201,162,39,0.1); color: var(--accent); }
.b-pub { background: var(--accent-fill); color: var(--bg); }
.b-pub:hover { background: #a07515; }
.b-del { background: transparent; color: var(--oxblood); border: 1px solid var(--oxblood); margin-left: auto; }
.b-del:hover { background: rgba(239, 68, 68, 0.1); }
.b-mini { padding: 6px 12px; font-size: 11px; }
.hint { font-family: var(--mono); font-size: 11px; color: var(--faint); margin-top: 6px; }

/* Dashboard layout */
header { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; border-bottom: 1px solid var(--rule-hi); padding-bottom: 16px; margin-bottom: 32px; }
.eyebrow { font-family: var(--mono); font-size: 11px; text-transform: uppercase; letter-spacing: 0.15em; color: var(--gold); }
.signout button { background: none; border: none; font-size: 11px; font-family: var(--mono); text-transform: uppercase; letter-spacing: 0.15em; color: var(--muted); cursor: pointer; }
.signout button:hover { color: var(--oxblood); }
.nameplate { text-align: center; margin: 40px 0; }
.nameplate .no { font-family: var(--mono); font-size: 13px; letter-spacing: 0.3em; color: var(--gold-dim); }
.nameplate h1 { font-size: 40px; margin: 12px 0 16px; }
.nameplate .facts { font-family: var(--mono); font-size: 12px; text-transform: uppercase; letter-spacing: 0.15em; color: var(--faint); }
.nameplate .facts b { color: var(--gold); font-weight: 500; }
.shell { padding: 32px; margin-bottom: 24px; }
.shell h2 { font-size: 20px; margin-bottom: 12px; }
.shell p { color: var(--muted); max-width: 52em; }
.publink { font-family: var(--mono); font-size: 12px; letter-spacing: 0.05em; margin-top: 16px; }
.composer label { display: block; font-family: var(--mono); font-size: 11px; text-transform: uppercase; letter-spacing: 0.15em; color: var(--faint); margin: 16px 0 6px; }
.kinds { display: flex; gap: 24px; font-family: var(--mono); font-size: 12px; color: var(--muted); margin: 8px 0; }
.kinds input { accent-color: var(--gold); }

/* Admin and Audit */
.console { max-width: 900px; margin: 0 auto; padding: 40px 20px; }
.console h1 { font-size: 28px; margin-bottom: 32px; }
.panel h2 { font-size: 18px; margin-bottom: 20px; }
.field { margin-bottom: 16px; }
.field label { display: block; margin-bottom: 8px; font-family: var(--mono); font-size: 12px; color: var(--faint); text-transform: uppercase; }
.row-list { list-style: none; padding: 0; }
.row-list li { display: flex; justify-content: space-between; align-items: center; padding: 16px 0; border-bottom: 1px solid var(--rule-hi); }
.row-list li:last-child { border-bottom: none; }
.btn-ghost { background: transparent; border: 1px solid var(--rule-hi); color: var(--muted); }
.btn-ghost:hover { border-color: var(--oxblood); color: var(--oxblood); }
.note { font-family: var(--mono); font-size: 12px; color: var(--faint); margin-bottom: 24px; }
td.at, td.actor, td.ev, td.detail { font-family: var(--mono); font-size: 12px; }

/* ---------------- Witnessing (counter-signature) ---------------- */
.witnesses-row {
  display: flex; align-items: center; justify-content: space-between;
  gap: 12px; flex-wrap: wrap; margin-top: 16px;
  padding-top: 14px; border-top: 1px solid rgba(255,255,255,0.04);
}
.witnesses { font-family: var(--mono); font-size: 11px; color: var(--muted); letter-spacing: .04em; }
.witness-no {
  display: inline-block; background: rgba(255,255,255,0.07);
  border: 1px solid rgba(255,255,255,0.12); border-radius: 3px;
  padding: 2px 6px; margin: 0 2px; color: var(--gold); font-weight: 600;
}
.witness-form { margin: 0; }
.witness-btn {
  font-family: var(--mono); font-size: 11px; text-transform: uppercase;
  letter-spacing: .1em; color: var(--muted); background: transparent;
  border: 1px solid var(--rule-hi); border-radius: 3px;
  padding: 4px 10px; cursor: pointer; transition: color .2s, border-color .2s, background .2s;
}
.witness-btn:hover { color: var(--gold); border-color: var(--gold-dim); }
.witness-btn--on { color: var(--gold); border-color: var(--gold-dim); background: rgba(201,162,39,.08); }
.witness-btn--on:hover { color: var(--muted); border-color: var(--rule-hi); background: transparent; }
/* Cross-ledger citation links (@handle/seq auto-linked) */
.xref { color: var(--gold-dim); text-decoration: none; font-family: var(--mono); font-size: .88em; border-bottom: 1px dotted var(--gold-dim); }
.xref:hover { color: var(--gold); border-bottom-color: var(--gold); }

/* ---------------- SSE new-entry notification bar ---------------- */
.new-entries-bar {
  display: flex; align-items: center; gap: 10px;
  background: rgba(201,162,39,0.10); border: 1px solid rgba(201,162,39,0.3);
  border-radius: 8px; padding: 10px 16px; margin-bottom: 16px;
  font-family: var(--mono); font-size: 12px; color: var(--gold);
  animation: slide-down 0.3s ease;
}
.new-entries-bar[hidden] { display: none; }
@keyframes slide-down { from { opacity:0; transform:translateY(-8px); } to { opacity:1; transform:none; } }
.new-entries-reload {
  background: var(--gold); color: var(--bg); border: none; border-radius: 5px;
  font-family: var(--mono); font-size: 11px; font-weight: 600;
  letter-spacing: 0.06em; text-transform: uppercase;
  padding: 5px 12px; cursor: pointer; transition: background 0.15s;
}
.new-entries-reload:hover { background: #a07515; }
.new-entries-dismiss {
  margin-left: auto; background: none; border: none; color: var(--faint);
  font-size: 14px; cursor: pointer; padding: 0 4px; line-height: 1;
  transition: color 0.15s;
}
.new-entries-dismiss:hover { color: var(--muted); }

/* ---------------- Subscribe slide-up toast ---------------- */
.sub-toast {
  position: fixed; bottom: 0; right: 0; z-index: 90;
  width: min(400px, 100vw);
  padding: 16px;
  transform: translateY(110%);
  transition: transform 0.4s cubic-bezier(0.22,1,0.36,1);
  pointer-events: none;
}
.sub-toast.visible { transform: translateY(0); pointer-events: auto; }
.sub-toast[hidden] { display: none; }
.sub-toast__inner {
  position: relative;
  margin-bottom: calc(env(safe-area-inset-bottom, 0px) + 60px);
}
.sub-toast__close {
  position: absolute; top: 16px; right: 16px;
  background: none; border: none; color: var(--faint); font-size: 16px;
  cursor: pointer; padding: 0; line-height: 1; transition: color 0.15s;
}
.sub-toast__close:hover { color: var(--muted); }
@media(prefers-reduced-motion: reduce) { .sub-toast { transition: none; } }

/* Honeypot field — must stay invisible to humans */
.hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; opacity: 0; pointer-events: none; }

/* ---------------- Optimistic entry rows (dashboard) ------------ */
.row--pending {
  opacity: 0.7;
  border-left: 2px solid rgba(201,162,39,0.35);
  padding-left: 10px;
  transition: opacity 0.3s, border-color 0.3s;
}
.row--confirmed {
  border-left: 2px solid rgba(74,222,128,0.6);
  opacity: 1;
  transition: border-color 0.4s, opacity 0.4s;
}
.seal-pill {
  font-family: var(--mono); font-size: 11px; color: var(--faint);
  display: inline-flex; align-items: center; gap: 4px;
}
.seal-scramble {
  display: inline-block;
  font-family: var(--mono); font-size: 11px; letter-spacing: 0.04em;
  color: var(--gold); opacity: 0.7;
  min-width: 7ch;
}
.seal-scramble--done {
  opacity: 1;
  background: rgba(201,162,39,0.08);
  border: 1px solid rgba(201,162,39,0.2);
  border-radius: 3px; padding: 1px 5px;
  animation: snap-in 0.18s ease-out;
}
@keyframes snap-in {
  from { opacity: 0; transform: scale(0.92); }
  to   { opacity: 1; transform: none; }
}

/* ══════════════════════════════════════════════════════════
   STICKY CTA GRADIENT MASK
══════════════════════════════════════════════════════════ */

.cta-mask {
  position: fixed; bottom: 0; left: 0; right: 0;
  height: 120px; pointer-events: none; z-index: 99;
  background: linear-gradient(to top, #030407 40%, transparent);
  opacity: 0; transition: opacity 0.35s cubic-bezier(0.22,1,0.36,1);
}
.cta-mask.visible { opacity: 1; }

/* ══════════════════════════════════════════════════════════
   RECEIPTS PANEL (course page — section 4 fulfillment entry)
══════════════════════════════════════════════════════════ */

.receipts-panel {
  margin-bottom: 1.4rem; padding: 1.2rem 1.4rem;
  border-left: 3px solid rgba(201,162,39,0.5);
}
.receipts-label {
  font-family: var(--mono); font-size: .72rem; letter-spacing: .09em;
  text-transform: uppercase; color: var(--gold); margin-bottom: .45rem;
}
.receipts-desc {
  color: var(--faint); font-size: .8rem; line-height: 1.55; margin: 0 0 .9rem;
}
.receipt-entry {
  background: rgba(255,255,255,0.02); border: 1px solid rgba(255,255,255,0.06);
  border-radius: 5px; padding: .9rem 1rem;
}
.receipt-meta {
  font-family: var(--mono); font-size: .72rem; color: var(--faint); margin-bottom: .5rem;
}
.receipt-meta a { color: var(--gold-dim); }
.receipt-title {
  font-size: .9rem; font-weight: 600; color: var(--fg); margin-bottom: .5rem;
}
.receipt-body {
  font-family: var(--mono); font-size: .75rem; color: var(--muted);
  line-height: 1.65; white-space: pre-wrap; word-break: break-word; margin: 0;
  max-height: 220px; overflow-y: auto;
}

/* Version chain notices */
.version-notice {
  margin-bottom: .9rem; padding: .7rem 1rem;
  display: flex; align-items: center; gap: .7rem;
  font-size: .82rem; color: var(--muted);
}
.version-notice a { color: var(--gold); }
.version-notice-badge {
  font-family: var(--mono); font-size: .65rem; letter-spacing: .1em;
  text-transform: uppercase; padding: 2px 6px; border-radius: 3px;
  white-space: nowrap; flex-shrink: 0;
}
.version-notice--newer .version-notice-badge {
  background: rgba(201,162,39,0.12); border: 1px solid rgba(201,162,39,0.3);
  color: var(--gold);
}
.version-notice--v2 .version-notice-badge {
  background: rgba(148,163,184,0.08); border: 1px solid rgba(148,163,184,0.2);
  color: var(--faint);
}

/* ══════════════════════════════════════════════════════════
   section 5 ENFORCEMENT — clause + verdict page
══════════════════════════════════════════════════════════ */

/* section 5 enforcement clause (used in both Rules tab and induction compact) */
.clause--enforcement {
  border-left: 2px solid rgba(239,68,68,0.35);
  background: rgba(239,68,68,0.03);
}
.clause--enforcement .mark,
.clause--enforcement .clause-mark {
  color: #f87171;
}

/* Verdict page — article row */
.verdict-head {
  margin-bottom: 1.6rem; padding: 1.6rem 1.8rem;
}
.verdict-row {
  margin-bottom: 1.2rem; padding: 1.4rem 1.6rem;
  border-left: 3px solid rgba(239,68,68,0.4);
}
.verdict-meta {
  display: flex; align-items: center; gap: .8rem;
  flex-wrap: wrap; margin-bottom: .9rem;
}
.verdict-no {
  font-family: var(--mono); font-size: .78rem; color: var(--faint);
}
.verdict-handle {
  font-family: var(--mono); font-size: .9rem; font-weight: 600; color: var(--fg);
}
.verdict-date {
  font-family: var(--mono); font-size: .75rem; color: var(--faint);
}
.verdict-badge {
  margin-left: auto; font-family: var(--mono); font-size: .68rem;
  letter-spacing: .1em; text-transform: uppercase;
  color: #f87171; background: rgba(239,68,68,0.1);
  border: 1px solid rgba(239,68,68,0.25); border-radius: 3px;
  padding: 2px 7px;
}
.verdict-cited {
  display: flex; align-items: center; gap: .6rem;
  margin-bottom: .8rem; font-size: .82rem;
}
.verdict-cited-label {
  font-family: var(--mono); font-size: .72rem; letter-spacing: .07em;
  text-transform: uppercase; color: var(--faint);
}
.verdict-cited-link { color: var(--gold); font-size: .85rem; }
.verdict-evidence-label {
  font-family: var(--mono); font-size: .72rem; letter-spacing: .07em;
  text-transform: uppercase; color: var(--faint); margin-bottom: .5rem;
}
.verdict-evidence {
  font-family: var(--mono); font-size: .78rem; color: var(--muted);
  line-height: 1.65; white-space: pre-wrap; word-break: break-word; margin: 0;
  max-height: 300px; overflow-y: auto;
}

/* ══════════════════════════════════════════════════════════
   INDUCTION WIZARD
══════════════════════════════════════════════════════════ */

/* Module meta line */
.module-meta {
  font-family: var(--mono); font-size: .72rem; letter-spacing: .09em;
  text-transform: uppercase; color: var(--faint); margin-bottom: .9rem;
}

/* section 4 blockquote */
.ind-quote {
  margin: 1rem 0; padding: .9rem 1.2rem;
  border-left: 3px solid rgba(201,162,39,0.5);
  background: rgba(201,162,39,0.04);
  color: var(--muted); font-size: .88rem; line-height: 1.7;
  font-style: normal;
}

/* Gate section */
.the-gate {
  margin-top: 2.2rem; padding-top: 1.6rem;
  border-top: 1px solid rgba(255,255,255,0.08);
}
.gate-label {
  font-family: var(--mono); font-size: .72rem; letter-spacing: .12em;
  text-transform: uppercase; color: var(--gold); margin-bottom: .7rem;
}
.the-gate p { color: var(--muted); font-size: .9rem; line-height: 1.65; margin: 0 0 .6rem; }

/* Guidance lists */
.ind-guidance { margin-bottom: 1.4rem; }
.ind-guidance-hd {
  font-size: .75rem; text-transform: uppercase; letter-spacing: .09em;
  color: var(--faint); margin: 0 0 .6rem;
}
.ind-guidance ul, .ind-guidance ol { margin: 0 0 .4rem 1.2rem; padding: 0; }
.ind-guidance li { color: var(--muted); font-size: .88rem; line-height: 1.65; margin-bottom: .5rem; }
.ind-anatomy { margin: 0 0 .4rem 1.2rem; padding: 0; }
.ind-anatomy li { color: var(--muted); font-size: .88rem; line-height: 1.65; margin-bottom: .8rem; }

/* Callout block (founder refs, calibration) */
.ind-callout {
  margin-bottom: 1.4rem; padding: 1.1rem 1.3rem;
  border-left: 3px solid rgba(201,162,39,0.3);
}
.ind-callout-label {
  font-family: var(--mono); font-size: .7rem; letter-spacing: .09em;
  text-transform: uppercase; color: var(--faint); margin-bottom: .6rem;
}
.ind-callout p { color: var(--muted); font-size: .88rem; line-height: 1.65; margin: 0; }
.ind-callout ul { margin: .4rem 0 0 1.1rem; padding: 0; }
.ind-callout li { color: var(--muted); font-size: .88rem; line-height: 1.6; margin-bottom: .4rem; }

/* Word counter */
.word-counter {
  font-family: var(--mono); font-size: .75rem; color: var(--faint);
  margin-top: .35rem; margin-bottom: .2rem;
}

/* Three-question check */
.pre-seal-check {
  margin: 1.4rem 0 1.1rem; padding: 1rem 1.2rem;
  background: rgba(255,255,255,0.02); border: 1px solid rgba(255,255,255,0.07);
  border-radius: 5px;
}
.pre-seal-hd {
  font-size: .75rem; text-transform: uppercase; letter-spacing: .09em;
  color: var(--faint); margin: 0 0 .6rem;
}
.pre-seal-check ol { margin: 0 0 0 1.1rem; padding: 0; }
.pre-seal-check li { color: var(--muted); font-size: .85rem; line-height: 1.6; margin-bottom: .35rem; }

/* Seal button (high-commitment variant) */
.btn-seal {
  width: 100%; padding: 1rem 1.4rem;
  background: var(--gold);
  color: #131107;
  border: none;
  border-radius: 0;
  font-size: .82rem; font-weight: 700;
  letter-spacing: .08em; text-transform: uppercase; cursor: pointer;
  transition: background 0.15s;
}
.btn-seal:hover { background: #E0B84E; transform: none; }

/* Progress track */
.ind-header { padding-top: 2rem; padding-bottom: 0; }
.ind-track {
  display: flex; align-items: center; gap: 0;
  max-width: 320px; margin: 0 auto 0.6rem;
}
.ind-pip {
  width: 10px; height: 10px; border-radius: 50%; flex-shrink: 0;
  border: 2px solid var(--faint);
  background: transparent; transition: background 0.3s, border-color 0.3s;
}
.ind-pip--active  { border-color: var(--gold); background: var(--gold); }
.ind-pip--done    { border-color: rgba(74,222,128,0.6); background: rgba(74,222,128,0.3); }
.ind-pip--next    { border-color: rgba(255,255,255,0.15); }
.ind-line {
  flex: 1; height: 1px; background: rgba(255,255,255,0.1);
  transition: background 0.3s;
}
.ind-line--done { background: rgba(74,222,128,0.35); }
.ind-labels {
  display: flex; justify-content: space-between;
  max-width: 340px; margin: 0 auto 1.6rem;
  font-family: var(--mono); font-size: 10px; letter-spacing: .07em;
  text-transform: uppercase; color: var(--faint);
}
.ind-lbl--active { color: var(--gold); }

/* Step container */
.ind-step { max-width: 680px; margin: 0 auto 3rem; }
.step-intro { color: var(--muted); margin-bottom: 2rem; line-height: 1.7; }

/* clauses */
.clauses { display: flex; flex-direction: column; gap: 0; }
.clause {
  display: grid; grid-template-columns: 2.6rem 1fr;
  gap: 0 1rem; padding: 1.4rem 0;
  border-bottom: 1px solid rgba(255,255,255,0.06);
}
.clause:first-child { border-top: 1px solid rgba(255,255,255,0.06); }
.clause-mark {
  font-family: var(--mono); font-size: .9rem; font-weight: 600;
  color: var(--gold); padding-top: .1rem; letter-spacing: .04em;
}
.clause-text strong {
  display: block; font-size: .82rem; text-transform: uppercase;
  letter-spacing: .09em; color: var(--fg); margin-bottom: .5rem;
}
.clause-text p { color: var(--muted); font-size: .9rem; line-height: 1.65; margin: 0; }
.clause-text p + p { margin-top: .7rem; }

/* section 4 featured clause */
.clause--anchor { background: rgba(201,162,39,0.03); border-radius: 6px; padding: 1.4rem .8rem; }
.clause--anchor .clause-mark { color: #f5c842; font-size: 1rem; }

/* Live on-chain reference inside section 4 */
.clause-live {
  margin-top: 1.2rem; padding: 1rem 1.1rem;
  background: rgba(255,255,255,0.03); border: 1px solid rgba(255,255,255,0.09);
  border-left: 3px solid rgba(201,162,39,0.5); border-radius: 4px;
}
.clause-live-label {
  font-family: var(--mono); font-size: 10px; letter-spacing: .08em;
  text-transform: uppercase; color: var(--faint); margin-bottom: .6rem;
}
.clause-live-title {
  font-size: .8rem; font-weight: 600; color: var(--fg);
  margin: 0 0 .5rem; letter-spacing: .02em;
}
.clause-live-body {
  font-size: .78rem; color: var(--muted); line-height: 1.6; margin: 0;
  white-space: pre-wrap; word-break: break-word;
}
.clause-coda {
  margin-top: 1rem; font-size: .82rem; color: var(--gold);
  font-style: italic; letter-spacing: .02em;
}

/* Acknowledge button */
.btn-compact {
  width: 100%; padding: .9rem 1.4rem; background: var(--gold);
  color: #0a0a0a; border: none; border-radius: 6px;
  font-size: .85rem; font-weight: 600; letter-spacing: .04em;
  cursor: pointer; transition: background 0.2s;
}
.btn-compact:hover { background: #e0b82e; }

/* Genesis step constraints */
.ind-constraints {
  margin-bottom: 0; padding: 1.1rem 1.3rem;
  border-left: 3px solid rgba(201,162,39,0.35);
}
.ind-constraint-hd {
  font-size: .78rem; text-transform: uppercase; letter-spacing: .09em;
  color: var(--muted); margin: 0 0 .7rem;
}
.ind-constraints ul { margin: 0 0 .8rem 1.1rem; padding: 0; }
.ind-constraints li { color: var(--muted); font-size: .88rem; line-height: 1.6; margin-bottom: .3rem; }
.ind-constraint-close { font-size: .88rem; color: var(--fg); margin: 0; }

/* Declaration reference block */
.ref-entry {
  margin-bottom: 0; padding: 1.2rem 1.4rem;
  border-left: 3px solid rgba(201,162,39,0.4);
}
.ref-entry-label {
  font-family: var(--mono); font-size: 10px; letter-spacing: .08em;
  text-transform: uppercase; color: var(--faint); margin-bottom: .6rem;
}
.ref-entry-title {
  font-size: .85rem; font-weight: 600; color: var(--fg);
  margin: 0 0 .7rem; letter-spacing: .02em;
}
.ref-entry-body {
  font-size: .78rem; color: var(--muted); line-height: 1.65;
  white-space: pre-wrap; word-break: break-word;
  margin: 0; font-family: var(--mono);
  max-height: 240px; overflow-y: auto;
}

/* Motion sensitivity: freeze ambient orb + decorative animation */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; }
  html { scroll-behavior: auto; }
}

/* ── Lesson page ──────────────────────────────────────────────────────── */
.lesson-body-root { background: var(--bg); color: var(--fg); min-height: 100vh; }

.lesson-layout {
  display: grid;
  grid-template-columns: 272px 1fr;
  min-height: 100vh;
}

/* Sidebar */
.lesson-sidebar {
  border-right: 1px solid var(--rule);
  position: sticky; top: 0; height: 100vh;
  overflow-y: auto; overflow-x: hidden;
  background: rgba(8,8,14,.72);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  scrollbar-width: thin;
  scrollbar-color: var(--rule) transparent;
  flex-shrink: 0;
}
.lesson-sidebar-inner { display: flex; flex-direction: column; min-height: 100%; }
.lesson-sidebar-hd {
  padding: 1.4rem 1.2rem 1rem;
  border-bottom: 1px solid var(--rule);
}
.lesson-back {
  font-family: var(--mono); font-size: .66rem; letter-spacing: .05em;
  color: var(--faint); text-decoration: none; transition: color .15s;
  display: block; margin-bottom: .7rem;
}
.lesson-back:hover { color: var(--gold); }
.lesson-course-title {
  font-size: .88rem; font-weight: 600; color: var(--fg); line-height: 1.3;
  margin-bottom: .25rem;
}
.lesson-sidebar-byline {
  font-family: var(--mono); font-size: .62rem; color: var(--faint);
}

/* Lesson nav tree */
.lesson-nav { padding: .5rem 0; flex: 1; }
.lesson-nav-part {
  font-family: var(--mono); font-size: .58rem; letter-spacing: .12em;
  text-transform: uppercase; color: var(--faint);
  padding: .9rem 1.2rem .3rem; line-height: 1;
}
.lesson-nav-item {
  display: grid;
  grid-template-columns: 16px 28px 1fr;
  gap: .2rem;
  align-items: start;
  padding: .5rem 1.2rem;
  text-decoration: none;
  color: var(--muted);
  font-size: .78rem; line-height: 1.3;
  transition: background .12s, color .12s;
  border-left: 2px solid transparent;
}
.lesson-nav-item:hover { background: rgba(255,255,255,.03); color: var(--fg); }
.lesson-nav-item--current {
  background: rgba(201,162,39,.07);
  border-left-color: var(--gold);
  color: var(--fg) !important;
}
.lesson-nav-item--done { color: var(--muted); }
.lesson-nav-mark {
  font-family: var(--mono); font-size: .62rem;
  color: var(--faint); padding-top: .05rem;
}
.lesson-nav-item--done .lesson-nav-mark { color: var(--gold); }
.lesson-nav-item--current .lesson-nav-mark { color: var(--gold); }
.lesson-nav-seq {
  font-family: var(--mono); font-size: .66rem; color: var(--faint);
  padding-top: .05rem;
}
.lesson-nav-title { word-break: break-word; }

/* Sidebar footer / progress */
.lesson-sidebar-ft {
  padding: 1rem 1.2rem 1.4rem;
  border-top: 1px solid var(--rule);
  margin-top: auto;
}
.lesson-progress-bar {
  height: 3px; background: var(--rule); border-radius: 2px; margin-bottom: .5rem;
}
.lesson-progress-fill {
  height: 100%; background: var(--gold); border-radius: 2px;
  transition: width .3s ease;
}
.lesson-progress-label {
  font-family: var(--mono); font-size: .62rem; color: var(--faint);
}

/* Main lesson content */
.lesson-main {
  min-width: 0;
  display: flex; flex-direction: column;
}
.lesson-mobile-nav {
  display: none;
  padding: .75rem 1.4rem;
  border-bottom: 1px solid var(--rule);
  font-family: var(--mono); font-size: .68rem;
  color: var(--faint);
  justify-content: space-between;
}
.lesson-mobile-nav a { color: var(--muted); text-decoration: none; }

.lesson-article {
  flex: 1; padding: 3rem 4rem 2rem;
  max-width: 780px;
}
.lesson-article-hd { margin-bottom: 2rem; }
.lesson-eyebrow {
  display: flex; align-items: center; gap: .6rem; margin-bottom: .8rem;
}
.lesson-sealed-badge {
  font-family: var(--mono); font-size: .6rem; letter-spacing: .1em;
  text-transform: uppercase; color: var(--gold);
  border: 1px solid rgba(201,162,39,.3); padding: 1px 6px;
}
.lesson-title {
  font-size: 1.9rem; font-weight: 700; line-height: 1.2;
  letter-spacing: -.02em; margin: 0;
}

.lesson-content {
  font-size: 1.02rem; line-height: 1.75; color: rgba(240,237,230,.88);
}
.lesson-content p { margin: 0 0 1.1rem; }
.lesson-content h2 { font-size: 1.2rem; margin: 2rem 0 .7rem; }
.lesson-content h3 { font-size: 1rem; margin: 1.6rem 0 .5rem; }
.lesson-content ul, .lesson-content ol { margin: 0 0 1.1rem 1.4rem; padding: 0; }
.lesson-content li { margin-bottom: .35rem; }
.lesson-content pre {
  background: rgba(255,255,255,.04); border: 1px solid var(--rule);
  border-radius: 6px; padding: 1rem 1.2rem; overflow-x: auto;
  font-family: var(--mono); font-size: .82rem; line-height: 1.6;
  margin: 0 0 1.1rem;
}
.lesson-content code {
  font-family: var(--mono); font-size: .85em;
  background: rgba(255,255,255,.06); padding: 1px 5px; border-radius: 3px;
}
.lesson-content blockquote {
  border-left: 3px solid rgba(201,162,39,.4);
  margin: 0 0 1.1rem; padding: .5rem 1rem;
  color: var(--muted);
}

.lesson-assets { margin-top: 2rem; }
.lesson-asset-img {
  max-width: 100%; border-radius: 8px; margin: .5rem 0; display: block;
}
.lesson-asset-file {
  font-family: var(--mono); font-size: .78rem; margin: .5rem 0;
}

/* Action bar */
.lesson-action-bar {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 1rem;
  margin-top: 3.5rem;
  padding-top: 1.5rem;
  border-top: 1px solid var(--rule);
}
.lesson-action-prev { justify-self: start; }
.lesson-action-center { justify-self: center; }
.lesson-action-next { justify-self: end; text-align: right; }

.lesson-nav-arrow {
  font-family: var(--mono); font-size: .72rem; color: var(--muted);
  text-decoration: none; transition: color .15s;
  display: flex; align-items: center; gap: .4rem;
}
.lesson-nav-arrow span {
  max-width: 180px; overflow: hidden; white-space: nowrap; text-overflow: ellipsis;
}
.lesson-nav-arrow:hover { color: var(--fg); }
.lesson-nav-arrow--next { flex-direction: row-reverse; }

.seal-btn {
  display: inline-block;
  background: var(--gold); color: #0a0a0f;
  font-family: var(--mono); font-size: .76rem; font-weight: 700;
  letter-spacing: .08em; text-transform: uppercase;
  padding: .6rem 1.4rem; border: none; border-radius: 3px;
  cursor: pointer; transition: background .15s, transform .1s;
  white-space: nowrap;
}
.seal-btn:hover { background: #e0b82e; transform: translateY(-1px); }
.seal-btn:active { transform: translateY(0); }

.lesson-done-pill {
  display: inline-block;
  font-family: var(--mono); font-size: .72rem; letter-spacing: .06em;
  color: var(--gold); border: 1px solid rgba(201,162,39,.3);
  padding: .45rem 1rem; border-radius: 3px;
}

.lesson-footer {
  padding: 1.5rem 4rem 2rem;
  display: flex; justify-content: space-between;
  font-family: var(--mono); font-size: .68rem; color: var(--faint);
  border-top: 1px solid var(--rule); margin-top: auto;
}
.lesson-footer a { color: var(--faint); text-decoration: none; }

/* ── Course overview: progress + syllabus ────────────────────────────── */
.course-progress-panel {
  margin-bottom: 1.5rem; padding: 1.1rem 1.4rem;
}
.course-progress-hd {
  display: flex; justify-content: space-between; align-items: center;
  margin-bottom: .7rem;
}
.course-progress-label {
  font-family: var(--mono); font-size: .72rem; color: var(--muted);
}
.course-progress-bar {
  height: 4px; background: var(--rule); border-radius: 2px;
}
.course-progress-fill {
  height: 100%; background: var(--gold); border-radius: 2px;
  transition: width .3s ease;
}
.course-cleared-badge {
  font-family: var(--mono); font-size: .64rem; letter-spacing: .1em;
  text-transform: uppercase; color: var(--gold);
  border: 1px solid rgba(201,162,39,.3); padding: 2px 8px;
}
.continue-btn {
  display: inline-block;
  background: var(--gold); color: #0a0a0f;
  font-family: var(--mono); font-size: .7rem; font-weight: 700;
  letter-spacing: .07em; text-transform: uppercase;
  padding: .45rem 1.1rem; text-decoration: none;
  border-radius: 3px; transition: background .15s;
  white-space: nowrap;
}
.continue-btn:hover { background: #e0b82e; }

/* Syllabus */
.course-syllabus { margin-top: 1.5rem; }
.course-module-hd {
  display: flex; align-items: baseline; gap: .7rem;
  padding: 1.2rem 0 .5rem;
  border-top: 1px solid var(--rule); margin-top: .5rem;
}
.course-module-hd:first-child { border-top: none; margin-top: 0; }
.course-part-label {
  font-family: var(--mono); font-size: .62rem; letter-spacing: .12em;
  text-transform: uppercase; color: var(--gold); flex-shrink: 0;
}
.course-part-title {
  font-size: .88rem; font-weight: 600; color: var(--fg);
}
.course-part-progress {
  font-family: var(--mono); font-size: .6rem; color: var(--faint);
  margin-left: auto;
}

/* Lesson rows in syllabus */
.course-lesson-row {
  display: grid;
  grid-template-columns: 36px 1fr 20px;
  align-items: center;
  gap: .5rem;
  padding: .75rem .6rem;
  border-radius: 5px;
  text-decoration: none; color: var(--fg);
  transition: background .12s;
  border-bottom: 1px solid rgba(255,255,255,.04);
}
.course-lesson-row:hover { background: rgba(255,255,255,.03); }
.course-lesson-row--done { color: var(--muted); }
.course-lesson-row--done .course-lesson-mark { color: var(--gold); }
.course-lesson-row--locked {
  opacity: .45; cursor: default; color: var(--faint);
}
.course-lesson-seq {
  font-family: var(--mono); font-size: .68rem; color: var(--faint);
  justify-self: start;
}
.course-lesson-title { font-size: .88rem; }
.course-lesson-mark {
  font-family: var(--mono); font-size: .7rem; color: var(--faint);
  justify-self: end;
}

/* Responsive: collapse sidebar to top bar on narrow screens */
@media (max-width: 700px) {
  .lesson-layout { grid-template-columns: 1fr; }
  .lesson-sidebar {
    position: static; height: auto; max-height: 40vh;
    border-right: none; border-bottom: 1px solid var(--rule);
  }
  .lesson-mobile-nav { display: flex; }
  .lesson-article { padding: 1.5rem 1.2rem 1.5rem; }
  .lesson-action-bar { grid-template-columns: 1fr 1fr; grid-template-rows: auto auto; gap: .75rem; }
  .lesson-action-center { grid-column: 1 / -1; justify-self: center; }
  .lesson-footer { padding: 1rem 1.2rem; flex-direction: column; gap: .4rem; }
}

/* ── Graveyard ────────────────────────────────────────────────────────── */
.gv-hd { margin-bottom: 2.4rem; }
.gv-title {
  font-size: 2.2rem; font-weight: 700; letter-spacing: -.025em;
  margin-bottom: .7rem;
}
.gv-desc {
  max-width: 560px; color: var(--muted); line-height: 1.65; font-size: .95rem;
}

/* Empty state */
.gv-empty { max-width: 560px; }
.gv-empty-headline {
  font-size: 1.3rem; font-weight: 600; color: var(--fg); margin-bottom: .6rem;
}
.gv-empty-sub {
  color: var(--muted); font-size: .9rem; line-height: 1.6; margin-bottom: 1.8rem;
}
.gv-clock-section { margin-bottom: 2rem; }
.gv-clock-label {
  font-family: var(--mono); font-size: .62rem; letter-spacing: .12em;
  text-transform: uppercase; color: var(--faint); margin-bottom: .7rem;
}
.gv-clock-row {
  display: flex; align-items: baseline; gap: 1rem;
  padding: .6rem 0; border-bottom: 1px solid var(--rule);
}
.gv-clock-handle {
  font-family: var(--mono); font-size: .82rem; color: var(--muted);
  text-decoration: none; transition: color .15s; flex: 0 0 auto;
}
.gv-clock-handle:hover { color: var(--gold); }
.gv-clock-days {
  font-family: var(--mono); font-size: .72rem; color: var(--faint); flex: 1;
}
.gv-clock-remain {
  font-family: var(--mono); font-size: .72rem; color: rgba(201,162,39,.55);
  flex: 0 0 auto;
}
.gv-empty-note {
  font-family: var(--mono); font-size: .72rem; color: var(--faint);
  line-height: 1.6; margin-top: 1.5rem;
}

/* Populated state */
.gv-count-label {
  font-family: var(--mono); font-size: .68rem; letter-spacing: .1em;
  text-transform: uppercase; color: var(--faint);
  margin-bottom: 1.2rem;
}
.gv-stone {
  border-left: 2px solid rgba(255,255,255,.08);
  padding: 1.2rem 1.4rem;
  margin-bottom: 1rem;
  background: rgba(255,255,255,.015);
}
.gv-stone-hd {
  display: flex; align-items: baseline; gap: .9rem; margin-bottom: .5rem;
}
.gv-stone-handle {
  font-family: var(--mono); font-size: .88rem; font-weight: 600;
  color: var(--muted); text-decoration: none; transition: color .15s;
}
.gv-stone-handle:hover { color: var(--fg); }
.gv-stone-no {
  font-family: var(--mono); font-size: .65rem; color: var(--faint);
}
.gv-stone-decl {
  font-size: .92rem; color: rgba(240,237,230,.6);
  font-style: italic; margin-bottom: .5rem; line-height: 1.4;
}
.gv-stone-decl--nodecl {
  color: var(--faint); font-style: normal;
  font-family: var(--mono); font-size: .75rem;
}
.gv-stone-meta {
  font-family: var(--mono); font-size: .66rem; color: var(--faint);
  margin-bottom: .4rem; letter-spacing: .03em;
}
.gv-stone-note {
  font-family: var(--mono); font-size: .62rem; color: rgba(255,255,255,.18);
}

/* ── Time-lock commitments ────────────────────────────────────────────── */
/* Commit compose form */
.commit-explainer {
  margin-bottom: 1.6rem; padding: 1.3rem 1.5rem;
}
.commit-explainer-hd {
  font-family: var(--mono); font-size: .66rem; letter-spacing: .12em;
  text-transform: uppercase; color: var(--gold); margin-bottom: .8rem;
}
.commit-explainer-list {
  margin: 0 0 .9rem 1.2rem; padding: 0; color: var(--muted);
  font-size: .85rem; line-height: 1.7;
}
.commit-explainer-list li { margin-bottom: .3rem; }
.commit-explainer-list code {
  font-family: var(--mono); font-size: .8em;
  background: rgba(255,255,255,.06); padding: 1px 5px; border-radius: 3px;
}
.commit-explainer-note {
  font-size: .78rem; color: var(--faint); line-height: 1.6; margin: 0;
}
.commit-form { padding: 1.4rem 1.5rem; }
.commit-field-note {
  font-family: var(--mono); font-size: .65rem; color: var(--faint);
  font-weight: 400; margin-left: .3rem;
}
.commit-warn {
  font-family: var(--mono); font-size: .68rem; color: var(--faint);
  line-height: 1.55; margin-top: .8rem;
}

/* Commitment entries on ledger */
.entry--commitment { border-left: 2px solid rgba(201,162,39,.2); }
.type--commitment {
  font-family: var(--mono); font-size: 10px; letter-spacing: .1em;
  text-transform: uppercase; color: rgba(201,162,39,.6);
  background: rgba(201,162,39,.08); padding: 2px 6px; border-radius: 2px;
}
.commit-locked {
  display: flex; align-items: center; gap: .5rem;
  font-family: var(--mono); font-size: .75rem; color: var(--faint);
  margin-bottom: .6rem; padding: .5rem .7rem;
  background: rgba(255,255,255,.03); border-radius: 4px;
}
.commit-locked-icon { font-size: .9rem; }
.commit-hash-line {
  font-family: var(--mono); font-size: .62rem; color: rgba(255,255,255,.2);
  word-break: break-all; line-height: 1.4;
  padding: .4rem 0; margin-top: .3rem;
}
.commit-revealed { margin-bottom: .8rem; }
.commit-revealed-label {
  font-family: var(--mono); font-size: .62rem; letter-spacing: .1em;
  text-transform: uppercase; color: var(--gold); margin-bottom: .5rem;
}
.commit-revealed-body {
  font-size: .92rem; line-height: 1.7; color: var(--fg);
  margin-bottom: .8rem;
}
.commit-verify {
  font-family: var(--mono); font-size: .65rem; color: var(--faint);
  line-height: 1.5; padding: .5rem .7rem;
  background: rgba(255,255,255,.03); border-radius: 4px;
  word-break: break-all;
}
.commit-verify code {
  color: rgba(201,162,39,.5); font-size: .85em;
}
.commit-reveal-action {
  margin-top: .7rem; padding-top: .7rem;
  border-top: 1px solid var(--rule);
}
.commit-reveal-btn {
  font-family: var(--mono); font-size: .68rem; font-weight: 700;
  letter-spacing: .07em; text-transform: uppercase;
  background: rgba(201,162,39,.12); color: var(--gold);
  border: 1px solid rgba(201,162,39,.3); padding: .4rem 1rem;
  border-radius: 3px; cursor: pointer; transition: background .15s;
}
.commit-reveal-btn:hover:not(:disabled) { background: rgba(201,162,39,.22); }
.commit-reveal-btn:disabled {
  opacity: .35; cursor: default;
}
.commit-countdown {
  font-family: var(--mono); font-size: .62rem; color: var(--faint);
  margin-left: .7rem;
}
