/* Null Limit v5 — DOCTRINE.OBSERVABLE
   Three-pane operator interface. Index rail · signed body · console rail.
   Built to absorb cryptographic anchoring without layout change. */

:root{
  --black:#0a0a0a;
  --bg-1:#0e0d0a;          /* ledger */
  --bg-2:#131313;          /* recess */
  --bg-3:#1a1815;          /* warmer recess */
  --bg-rail:#0c0b09;       /* rail surfaces */
  --bone:#e4e0d6;
  --ink:#f5f3ee;
  --accent:#b4b0a6;
  --gray:#666666;
  --light-gray:#888888;
  --steel:#7BA8C8;
  --steel-dim:#4E6E84;
  --sage:#9EB8A6;
  --rust:#B8553A;
  --hair: rgba(228,224,214,.08);
  --hair-strong: rgba(228,224,214,.18);

  --font-hero:'Inter Tight','Söhne',Helvetica,Arial,sans-serif;
  --font-primary:'Inter','Söhne',Helvetica,sans-serif;
  --font-mono:'JetBrains Mono','Courier New',monospace;
}
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box;}
html{font-size:16px;scroll-behavior:smooth;}
body{
  background:var(--bg-1);
  color:var(--bone);
  font-family:var(--font-primary);
  line-height:1.6;
  font-weight:300;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
::selection{background:var(--steel);color:var(--black);}
a{color:inherit;text-decoration:none;}

/* very subtle grid background — instrument feel */
body::before{
  content:"";position:fixed;inset:0;pointer-events:none;z-index:0;
  background-image:
    linear-gradient(to right, rgba(123,168,200,.03) 1px, transparent 1px),
    linear-gradient(to bottom, rgba(123,168,200,.03) 1px, transparent 1px);
  background-size:64px 64px;
  mask-image:radial-gradient(ellipse at 50% 0%, black 0%, transparent 70%);
}

.mono{font-family:var(--font-mono);}

/* ─────────────────────────────────────────────────────────────
   TOP STRIP — persistent system bar above the three panes
   ───────────────────────────────────────────────────────────── */
.system-bar{
  position:sticky;top:0;left:0;right:0;z-index:50;
  height:36px;
  display:grid;grid-template-columns:auto 1fr auto;align-items:center;
  background:var(--bg-2);border-bottom:1px solid var(--hair-strong);
  font-family:var(--font-mono);font-size:10.5px;
  letter-spacing:.18em;text-transform:uppercase;color:var(--accent);
}
.sys-brand{
  display:flex;align-items:center;gap:.6rem;
  padding:0 1rem;height:100%;
  border-right:1px solid var(--hair);color:var(--ink);
}
.sys-brand svg{width:14px;height:14px;}
.sys-brand .b{letter-spacing:.34em;font-weight:500;}
.sys-bar-trail{display:flex;align-items:center;height:100%;}
.sys-bar-trail .seg{padding:0 14px;height:100%;display:flex;align-items:center;gap:8px;border-left:1px solid var(--hair);}
.sys-bar-trail .seg.steel{color:var(--steel);}
.sys-bar-trail .seg.sage{color:var(--sage);}
.sys-bar-trail .seg.warn{color:var(--rust);}
.sys-bar-trail .dot{width:5px;height:5px;border-radius:50%;background:currentColor;box-shadow:0 0 6px currentColor;}
.sys-bar-mid{
  display:flex;justify-content:center;font-family:var(--font-mono);font-size:10px;
  color:var(--gray);letter-spacing:.16em;
}

/* progress hairline */
.progress{position:fixed;top:36px;left:0;height:1px;width:0;background:var(--steel);z-index:55;box-shadow:0 0 8px rgba(123,168,200,.45);transition:width .15s linear;}

/* ─────────────────────────────────────────────────────────────
   LAYOUT — three panes
   ───────────────────────────────────────────────────────────── */
.shell{
  display:grid;
  grid-template-columns:260px minmax(0,1fr) 320px;
  max-width:1680px;margin:0 auto;
  min-height:calc(100vh - 36px);
}

/* LEFT RAIL — index + anchor status */
.rail-left{
  position:sticky;top:36px;align-self:start;
  height:calc(100vh - 36px);
  border-right:1px solid var(--hair);background:var(--bg-rail);
  display:flex;flex-direction:column;
  overflow-y:auto;
}
.rail-left::-webkit-scrollbar{width:0;}
.rail-section{padding:1.2rem 1.4rem;border-bottom:1px solid var(--hair);}
.rail-section h6{
  font-family:var(--font-mono);font-size:9.5px;letter-spacing:.22em;
  text-transform:uppercase;color:var(--accent);margin-bottom:.9rem;
}
.rail-section h6 .meta{float:right;color:var(--steel-dim);}

.rail-doctrine{display:flex;flex-direction:column;gap:.4rem;font-family:var(--font-mono);}
.rail-doctrine a{
  display:grid;grid-template-columns:36px 1fr auto;column-gap:8px;align-items:center;
  font-size:11px;color:var(--accent);letter-spacing:.04em;
  padding:.3rem 0;border-left:2px solid transparent;padding-left:8px;margin-left:-8px;
  transition:color .25s ease,border-color .25s ease;
}
.rail-doctrine a:hover{color:var(--ink);}
.rail-doctrine a.active{color:var(--ink);border-left-color:var(--steel);}
.rail-doctrine a .id{color:var(--steel-dim);}
.rail-doctrine a.active .id{color:var(--steel);}
.rail-doctrine a .nm{text-transform:uppercase;letter-spacing:.06em;font-size:10.5px;}
.rail-doctrine a .sig{
  font-size:11px;line-height:1;
  display:inline-flex;align-items:center;justify-content:center;
  width:14px;height:14px;border-radius:50%;border:1px solid var(--hair-strong);
  color:var(--accent);
}
.rail-doctrine a.anchored .sig{background:var(--steel);border-color:var(--steel);color:var(--black);}

/* anchor status panel */
.rail-anchor{margin-top:auto;}
.anchor-row{
  display:grid;grid-template-columns:1fr auto;gap:8px;
  padding:.5rem 0;border-bottom:1px solid var(--hair);
  font-family:var(--font-mono);font-size:10.5px;letter-spacing:.04em;
}
.anchor-row:last-child{border-bottom:none;}
.anchor-row .k{color:var(--accent);text-transform:uppercase;letter-spacing:.14em;font-size:9.5px;}
.anchor-row .v{color:var(--bone);text-align:right;}
.anchor-row .v.warn{color:var(--rust);}
.anchor-row .v.ok{color:var(--sage);}
.anchor-row .v.steel{color:var(--steel);}
.anchor-protocols{display:flex;flex-direction:column;gap:6px;margin-top:.8rem;}
.proto{
  display:grid;grid-template-columns:auto 1fr auto;gap:8px;align-items:center;
  font-family:var(--font-mono);font-size:10px;letter-spacing:.06em;
}
.proto .dot{
  width:7px;height:7px;border-radius:50%;background:var(--accent);opacity:.5;
}
.proto[data-state="pending"] .dot{background:var(--accent);}
.proto[data-state="design"] .dot{background:var(--steel);}
.proto[data-state="live"] .dot{background:var(--sage);box-shadow:0 0 8px var(--sage);}
.proto .nm{color:var(--bone);}
.proto .st{color:var(--accent);text-transform:uppercase;letter-spacing:.16em;font-size:9px;}

/* RIGHT RAIL — operator console */
.rail-right{
  position:sticky;top:36px;align-self:start;
  height:calc(100vh - 36px);
  border-left:1px solid var(--hair);background:var(--bg-rail);
  overflow-y:auto;
}
.rail-right::-webkit-scrollbar{width:0;}

.console-card{padding:1.1rem 1.2rem;border-bottom:1px solid var(--hair);}
.console-card h6{
  font-family:var(--font-mono);font-size:9.5px;letter-spacing:.22em;
  text-transform:uppercase;color:var(--accent);margin-bottom:.8rem;
  display:flex;justify-content:space-between;align-items:center;
}
.console-card h6 .state{display:flex;align-items:center;gap:6px;color:var(--steel);}
.console-card h6 .state::before{content:"";width:5px;height:5px;border-radius:50%;background:var(--steel);box-shadow:0 0 6px var(--steel);animation:pulse 2.4s ease-in-out infinite;}
@keyframes pulse{0%,100%{opacity:.5;transform:scale(.85)}50%{opacity:1;transform:scale(1.2)}}

/* receipt rows */
.receipt-rows{display:grid;grid-template-columns:auto 1fr;column-gap:1rem;row-gap:6px;font-family:var(--font-mono);}
.receipt-rows .k{font-size:9.5px;letter-spacing:.18em;color:var(--accent);text-transform:uppercase;}
.receipt-rows .v{font-size:11px;color:var(--bone);text-align:right;letter-spacing:.04em;}
.receipt-rows .v.acc{color:var(--steel);}
.receipt-rows .v.now{font-variant-numeric:tabular-nums;}

/* 24-hour mini timeline (right rail) */
.tl-mini{margin-top:.4rem;}
.tl-mini .track{
  position:relative;height:38px;border:1px solid var(--hair);
  background:linear-gradient(to bottom, rgba(228,224,214,.02), rgba(228,224,214,.01));
}
.tl-mini .hour{position:absolute;top:0;bottom:0;width:1px;background:var(--hair);}
.tl-mini .block{position:absolute;top:5px;bottom:5px;border:1px solid var(--steel-dim);background:rgba(123,168,200,.08);}
.tl-mini .block.core{background:rgba(123,168,200,.18);border-color:var(--steel);}
.tl-mini .nowmark{position:absolute;top:-3px;bottom:-3px;width:1px;background:var(--steel);box-shadow:0 0 8px rgba(123,168,200,.6);}
.tl-mini .nowmark::before{content:"";position:absolute;top:-3px;left:-3px;width:7px;height:7px;border-radius:50%;background:var(--steel);box-shadow:0 0 8px var(--steel);}
.tl-mini .scale{display:flex;justify-content:space-between;margin-top:6px;font-family:var(--font-mono);font-size:8.5px;color:var(--accent);letter-spacing:.14em;}

/* anchor activity log */
.activity{display:flex;flex-direction:column;gap:7px;font-family:var(--font-mono);font-size:10.5px;}
.activity .ev{display:grid;grid-template-columns:62px 1fr;gap:8px;align-items:start;line-height:1.35;}
.activity .ev .t{color:var(--steel-dim);font-size:9.5px;letter-spacing:.06em;}
.activity .ev .m{color:var(--bone);letter-spacing:.02em;}
.activity .ev .m.warn{color:var(--rust);}
.activity .ev .m.sage{color:var(--sage);}
.activity .ev .m strong{color:var(--ink);font-weight:500;}

/* build manifest (bottom of right rail) */
.manifest{font-family:var(--font-mono);font-size:10px;color:var(--bone);letter-spacing:.04em;line-height:1.7;}
.manifest-grid{display:grid;grid-template-columns:auto 1fr;gap:.3rem 1rem;}
.manifest-grid dt{color:var(--gray);text-transform:uppercase;letter-spacing:.14em;font-size:9px;}
.manifest-grid dd{color:var(--bone);word-break:break-word;font-size:10px;}

/* ─────────────────────────────────────────────────────────────
   CONTENT PANE
   ───────────────────────────────────────────────────────────── */
.body-pane{
  padding:0 3rem 4rem;
  position:relative;z-index:1;
  border-right:1px solid var(--hair);
}

/* HERO — document masthead */
.masthead{
  padding:6rem 0 4rem;
  border-bottom:1px solid var(--hair);
  position:relative;
}
.masthead .doctype{
  font-family:var(--font-mono);font-size:11px;letter-spacing:.22em;
  text-transform:uppercase;color:var(--accent);margin-bottom:1.2rem;
  display:flex;align-items:center;gap:1rem;
}
.masthead .doctype::before{content:"";width:24px;height:1px;background:var(--steel);}
.masthead h1{
  font-family:var(--font-hero);font-weight:500;
  font-size:clamp(3.6rem,7.6vw,7.6rem);
  line-height:.94;letter-spacing:-.035em;color:var(--ink);
  margin:0 0 2.4rem;text-wrap:balance;
}
.masthead h1 .accent{color:var(--steel);}
.masthead h1 .dim{color:var(--steel-dim);}
.masthead h1 em{font-style:normal;font-family:var(--font-mono);font-weight:300;color:var(--accent);}

.masthead .abstract{
  display:grid;grid-template-columns:120px 1fr;gap:2rem;
  border-top:1px solid var(--hair);border-bottom:1px solid var(--hair);
  padding:1.6rem 0;margin-bottom:2rem;
  font-family:var(--font-mono);
}
.masthead .abstract .k{font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:var(--accent);padding-top:.1rem;}
.masthead .abstract .v{font-family:var(--font-primary);font-size:1.05rem;color:var(--bone);line-height:1.55;max-width:62ch;}
.masthead .abstract .v strong{color:var(--ink);font-weight:500;}
.masthead .abstract .v em{font-style:normal;font-family:var(--font-mono);font-weight:400;color:var(--steel);font-size:.95em;}

.masthead-spec{
  display:grid;grid-template-columns:repeat(4,1fr);gap:0;border:1px solid var(--hair);
}
.masthead-spec .cell{
  padding:.9rem 1rem;border-right:1px solid var(--hair);
  display:flex;flex-direction:column;gap:4px;
}
.masthead-spec .cell:last-child{border-right:none;}
.masthead-spec .cell .k{font-family:var(--font-mono);font-size:9px;letter-spacing:.22em;text-transform:uppercase;color:var(--accent);}
.masthead-spec .cell .v{font-family:var(--font-mono);font-size:11.5px;letter-spacing:.04em;color:var(--bone);}
.masthead-spec .cell .v.acc{color:var(--steel);}
.masthead-spec .cell .v.warn{color:var(--rust);}

/* ─────────────────────────────────────────────────────────────
   SIGNED BLOCK — section header strip
   This is the crypto-anchor surface. Today: self-attested.
   Tomorrow: flip JSON, sigil flips.
   ───────────────────────────────────────────────────────────── */
.signed-block{
  border:1px solid var(--hair);background:var(--bg-2);
  padding:.6rem .9rem;margin:5rem 0 1.6rem;
  display:grid;grid-template-columns:auto 1fr auto;
  align-items:center;gap:1rem;
  font-family:var(--font-mono);font-size:10.5px;letter-spacing:.06em;
  position:relative;
}
.signed-block::before{
  content:"";position:absolute;top:-1px;left:-1px;width:6px;height:6px;
  border-top:1px solid var(--steel);border-left:1px solid var(--steel);
}
.signed-block::after{
  content:"";position:absolute;bottom:-1px;right:-1px;width:6px;height:6px;
  border-bottom:1px solid var(--steel);border-right:1px solid var(--steel);
}
.signed-block .sb-id{
  display:flex;align-items:center;gap:.6rem;
  color:var(--steel);text-transform:uppercase;letter-spacing:.18em;font-size:10.5px;
}
.signed-block .sb-id .num{color:var(--accent);}
.signed-block .sb-meta{
  display:flex;align-items:center;gap:1.4rem;color:var(--accent);
  font-size:10px;letter-spacing:.04em;
}
.signed-block .sb-meta .k{color:var(--gray);text-transform:uppercase;letter-spacing:.16em;margin-right:.4rem;}
.signed-block .sb-meta .v{color:var(--bone);}
.signed-block .sb-meta .anchor{display:inline-flex;align-items:center;gap:6px;}
.signed-block .sb-meta .anchor .sig{
  display:inline-flex;align-items:center;justify-content:center;
  width:14px;height:14px;border-radius:50%;
  border:1px solid var(--steel-dim);color:var(--accent);font-size:9px;line-height:1;
}
.signed-block.is-anchored .sb-meta .anchor .sig{background:var(--steel);border-color:var(--steel);color:var(--black);box-shadow:0 0 8px rgba(123,168,200,.5);}
.signed-block.is-warn::before,.signed-block.is-warn::after{border-color:var(--rust);}
.signed-block.is-warn .sb-id{color:var(--rust);}
.signed-block .verify{
  font-family:var(--font-mono);font-size:9.5px;letter-spacing:.18em;text-transform:uppercase;
  color:var(--accent);border:1px solid var(--hair-strong);
  padding:.35rem .7rem;cursor:not-allowed;background:transparent;
  transition:color .25s ease,border-color .25s ease;
}
.signed-block .verify:hover{color:var(--ink);border-color:var(--steel-dim);}
.signed-block.is-anchored .verify{color:var(--steel);border-color:var(--steel-dim);cursor:pointer;}
.signed-block.is-anchored .verify:hover{background:var(--steel);color:var(--black);}

/* ─────────────────────────────────────────────────────────────
   CONTENT TYPOGRAPHY (per-section)
   ───────────────────────────────────────────────────────────── */
section{padding:1rem 0 3.5rem;scroll-margin-top:60px;}
h2{
  font-family:var(--font-hero);font-size:clamp(2rem,3.6vw,3rem);
  font-weight:500;letter-spacing:-.025em;line-height:1.05;
  color:var(--ink);margin:0 0 1.4rem;text-wrap:balance;
  max-width:30ch;
}
h2 em{font-style:normal;color:var(--steel);}
p.lead{
  font-size:1.05rem;color:var(--accent);line-height:1.6;
  max-width:62ch;margin-bottom:2rem;
}
p{color:var(--bone);font-size:1rem;line-height:1.65;max-width:64ch;margin-bottom:1.2rem;}
p strong{color:var(--ink);font-weight:500;}
p em{font-style:normal;font-family:var(--font-mono);font-weight:400;color:var(--accent);}

/* manifesto */
.manifesto-block{border-left:2px solid var(--steel-dim);padding:1.4rem 0 1.4rem 2rem;margin:1rem 0 2rem;}
.manifesto-block p{font-size:1.1rem;line-height:1.7;color:var(--bone);}
.manifesto-block .conviction{color:var(--ink);font-weight:500;}

/* the loop — horizontal control pipeline with feedback arc */
.loop-v2{
  margin-top:1.6rem;
  position:relative;
  border:1px solid var(--hair);
  background:var(--bg-2);
  padding:1.2rem 1.2rem 5.4rem;
}
.loop-header{
  display:flex;justify-content:space-between;align-items:baseline;
  font-family:var(--font-mono);font-size:10px;letter-spacing:.22em;
  text-transform:uppercase;color:var(--steel);
  padding-bottom:.8rem;margin-bottom:1.2rem;
  border-bottom:1px solid var(--hair);
}
.loop-header .lh-iter{color:var(--accent);}
.loop-header .lh-iter b{color:var(--ink);font-weight:500;}
.loop-cells{
  display:grid;grid-template-columns:repeat(4,1fr);gap:0;
  position:relative;align-items:stretch;
}
.loop-cell{
  padding:.4rem 1.1rem;border-right:1px solid var(--hair);
  display:flex;flex-direction:column;gap:.5rem;position:relative;
  transition:background .3s ease;
}
.loop-cell:last-child{border-right:none;}
.loop-cell:hover{background:rgba(123,168,200,.04);}
.loop-cell::after{
  content:"→";
  position:absolute;top:1.8rem;right:-9px;
  font-family:var(--font-mono);font-size:.95rem;line-height:1;
  color:var(--steel);background:var(--bg-2);padding:1px 3px;z-index:2;
}
.loop-cell:last-child::after{display:none;}
.loop-cell .lc-num{
  font-family:var(--font-mono);font-size:10.5px;letter-spacing:.18em;
  color:var(--steel-dim);text-transform:uppercase;
}
.loop-cell h4{
  font-family:var(--font-hero);font-size:1.3rem;font-weight:500;
  letter-spacing:-.018em;color:var(--ink);margin:0;
  display:flex;align-items:center;gap:.6rem;
}
.loop-cell h4::after{
  content:"";display:inline-block;width:24px;height:1px;background:var(--steel);
}
.loop-cell p{
  font-size:.92rem;color:var(--accent);line-height:1.55;margin:0;max-width:none;
}
.loop-cell .lc-out{
  margin-top:auto;padding-top:.7rem;border-top:1px solid var(--hair);
  display:flex;justify-content:space-between;align-items:baseline;
  font-family:var(--font-mono);font-size:10px;letter-spacing:.14em;
  text-transform:uppercase;
}
.loop-cell .lc-out .k{color:var(--steel-dim);}
.loop-cell .lc-out .v{color:var(--steel);}

/* feedback arc */
.loop-feedback{
  position:absolute;left:1.2rem;right:1.2rem;bottom:1.4rem;
  height:38px;pointer-events:none;
}
.loop-feedback path{
  stroke:var(--steel-dim);stroke-width:1;fill:none;stroke-dasharray:3 4;
}
.loop-feedback polygon{fill:var(--steel-dim);}
.loop-feedback-label{
  position:absolute;left:50%;bottom:1.8rem;transform:translateX(-50%);
  background:var(--bg-2);padding:.1rem .7rem;
  font-family:var(--font-mono);font-size:9.5px;letter-spacing:.22em;
  text-transform:uppercase;color:var(--accent);
}
.loop-feedback-label b{color:var(--steel);font-weight:500;}

@media (max-width:980px){
  .loop-v2{padding-bottom:1.2rem;}
  .loop-cells{grid-template-columns:1fr;}
  .loop-cell{border-right:none;border-bottom:1px solid var(--hair);padding:1rem 0;}
  .loop-cell:last-child{border-bottom:none;}
  .loop-cell::after{content:"↓";top:auto;bottom:-10px;right:auto;left:50%;transform:translateX(-50%);}
  .loop-feedback,.loop-feedback-label{display:none;}
}

/* diff-block (used in Ethical Edge / Enemy / Signal / etc) */
.diff-block{
  background:var(--bg-2);border-left:2px solid var(--steel-dim);
  padding:1.1rem 1.4rem;margin:1rem 0;
}
.diff-block.is-warn{border-left-color:var(--rust);}
.diff-block.is-proof{border-left-color:var(--sage);}
.diff-block h3{
  font-family:var(--font-mono);font-size:.78rem;letter-spacing:.18em;text-transform:uppercase;
  margin-bottom:.5rem;color:var(--ink);font-weight:500;
}
.diff-block p{font-size:.98rem;color:var(--accent);line-height:1.65;margin:0;max-width:62ch;}

/* non-negotiables */
.nn{display:flex;flex-direction:column;gap:0;}
.nn-row{
  display:grid;grid-template-columns:64px 1fr;gap:1.4rem;
  padding:1.4rem 0;border-top:1px solid var(--hair);
}
.nn-row:last-child{border-bottom:1px solid var(--hair);}
.nn-num{
  font-family:var(--font-mono);font-size:10.5px;letter-spacing:.18em;
  color:var(--steel);padding-top:.5rem;display:flex;flex-direction:column;gap:.4rem;
}
.nn-num .big{
  display:block;font-family:var(--font-hero);font-size:1.8rem;letter-spacing:-.03em;
  color:var(--ink);line-height:1;font-weight:500;
}
.nn-title{
  font-family:var(--font-hero);font-size:1.6rem;font-weight:500;
  letter-spacing:-.015em;line-height:1.1;color:var(--ink);margin-bottom:.5rem;
}
.nn-body{color:var(--accent);font-size:1rem;line-height:1.65;max-width:60ch;}
.nn-body strong{color:var(--bone);}

/* enemy patterns — laid out as a grid */
.enemy-grid{display:grid;grid-template-columns:1fr 1fr;gap:0;border:1px solid var(--hair);}
.enemy{padding:1.2rem 1.4rem;border-right:1px solid var(--hair);border-bottom:1px solid var(--hair);}
.enemy:nth-child(2n){border-right:none;}
.enemy:nth-last-child(-n+2){border-bottom:none;}
.enemy:last-child{border-bottom:none;}
.enemy .tag{
  font-family:var(--font-mono);font-size:9.5px;letter-spacing:.2em;
  text-transform:uppercase;color:var(--rust);margin-bottom:.5rem;
}
.enemy h4{font-family:var(--font-hero);font-size:1.2rem;font-weight:500;letter-spacing:-.012em;color:var(--ink);margin-bottom:.4rem;}
.enemy p{font-size:.95rem;color:var(--accent);line-height:1.55;margin:0;max-width:none;}

/* operator practice cards */
.op-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:0;border:1px solid var(--hair);}
.op-card{padding:1.4rem 1.6rem;border-right:1px solid var(--hair);border-bottom:1px solid var(--hair);transition:background .3s ease;}
.op-card:nth-child(2n){border-right:none;}
.op-card:nth-last-child(-n+2){border-bottom:none;}
.op-card:hover{background:rgba(123,168,200,.04);}
.op-card .t{font-family:var(--font-mono);font-size:9.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--steel);margin-bottom:.7rem;}
.op-card h3{font-family:var(--font-hero);font-size:1.15rem;font-weight:500;letter-spacing:-.012em;color:var(--ink);margin-bottom:.4rem;}
.op-card p{font-size:.95rem;color:var(--accent);line-height:1.55;margin:0;max-width:none;}

/* skill stack — instrument bars */
.stack{display:flex;flex-direction:column;gap:.5rem;margin-top:.5rem;}
.stack-bar{
  display:grid;grid-template-columns:48px 1fr auto;gap:1.2rem;align-items:center;
  padding:1.1rem 1.2rem;border:1px solid var(--hair);background:var(--bg-2);
  transition:border-color .3s ease,transform .3s ease;
}
.stack-bar:hover{border-color:var(--steel-dim);transform:translateX(2px);}
.stack-bar.is-live{border-color:var(--steel-dim);}
.stack-bar .l{font-family:var(--font-mono);font-size:11px;letter-spacing:.16em;color:var(--steel);text-transform:uppercase;}
.stack-bar h3{font-family:var(--font-hero);font-size:1.15rem;font-weight:500;letter-spacing:-.012em;color:var(--ink);margin:0;}
.stack-bar p{font-size:.92rem;color:var(--accent);margin:.15rem 0 0;line-height:1.4;max-width:none;}
.stack-bar .state{font-family:var(--font-mono);font-size:9px;letter-spacing:.2em;text-transform:uppercase;padding:.25rem .55rem;border:1px solid var(--hair-strong);color:var(--accent);}
.stack-bar.is-live .state{color:var(--steel);border-color:var(--steel-dim);}
.stack-bar.is-next .state{border-style:dashed;}

/* operator path — 5 phases horizontal */
.path-track{
  list-style:none;display:grid;grid-template-columns:repeat(5,1fr);gap:0;
  border:1px solid var(--hair);background:var(--bg-2);margin-top:1rem;
}
.path-phase{
  padding:1.2rem 1rem;border-right:1px solid var(--hair);
  display:flex;flex-direction:column;gap:.3rem;position:relative;
}
.path-phase:last-child{border-right:none;}
.path-phase.is-active{background:rgba(123,168,200,.05);}
.path-phase.is-active::before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:var(--steel);}
.path-years{font-family:var(--font-mono);font-size:9.5px;letter-spacing:.16em;color:var(--steel-dim);}
.path-phase.is-active .path-years{color:var(--steel);}
.path-name{font-family:var(--font-hero);font-size:1.15rem;font-weight:500;letter-spacing:-.012em;color:var(--ink);margin:0;}
.path-sub{font-size:.85rem;color:var(--accent);margin:0;}

/* architect schematic */
.schematic{
  margin-top:1.6rem;border:1px solid var(--hair);padding:1.2rem;
  display:grid;grid-template-columns:1fr 1fr;gap:0;background:var(--bg-2);
}
.schematic .col{padding:0 1rem 0 0;}
.schematic .col + .col{padding:0 0 0 1rem;border-left:1px solid var(--hair);}
.schematic .col h6{font-family:var(--font-mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;margin-bottom:.8rem;}
.schematic .col.coach h6{color:var(--accent);}
.schematic .col.coach h6::after{content:" — not this";color:var(--steel-dim);}
.schematic .col.arch h6{color:var(--steel);}
.schematic .col.arch h6::after{content:" — this";color:var(--ink);}
.schematic .col ul{list-style:none;display:flex;flex-direction:column;gap:.4rem;}
.schematic .col li{font-family:var(--font-mono);font-size:.82rem;letter-spacing:.02em;color:var(--accent);display:flex;gap:.5rem;}
.schematic .col li::before{content:"⟶";color:var(--steel-dim);}
.schematic .col.arch li{color:var(--bone);}
.schematic .col.arch li::before{color:var(--steel);}
.schematic .col.coach li{text-decoration:line-through;text-decoration-color:rgba(228,224,214,.18);}

/* chain of proof — list with explicit hash + anchor sigil per node */
.chain{display:flex;flex-direction:column;gap:0;border:1px solid var(--hair);background:var(--bg-2);}
.chain-node{
  display:grid;grid-template-columns:110px 1fr auto;gap:1.2rem;align-items:start;
  padding:1rem 1.2rem;border-bottom:1px solid var(--hair);
}
.chain-node:last-child{border-bottom:none;}
.chain-node .date{font-family:var(--font-mono);font-size:10.5px;letter-spacing:.06em;color:var(--steel-dim);padding-top:.15rem;}
.chain-node.active .date{color:var(--steel);}
.chain-node .ev{font-size:.95rem;color:var(--bone);line-height:1.45;}
.chain-node .ev strong{color:var(--ink);font-weight:500;}
.chain-node .sig{
  font-family:var(--font-mono);font-size:9.5px;letter-spacing:.04em;color:var(--accent);
  display:flex;flex-direction:column;align-items:flex-end;gap:3px;text-align:right;
}
.chain-node .sig .hash{color:var(--bone);}
.chain-node .sig .anc{display:inline-flex;align-items:center;gap:5px;text-transform:uppercase;letter-spacing:.18em;font-size:9px;color:var(--accent);}
.chain-node.anchored .sig .anc{color:var(--steel);}
.chain-node .sig .anc .dot{width:6px;height:6px;border-radius:50%;border:1px solid var(--accent);}
.chain-node.anchored .sig .anc .dot{background:var(--steel);border-color:var(--steel);box-shadow:0 0 6px var(--steel);}

/* architecture / content registry */
.arch-registry{
  margin-top:1.4rem;
  border:1px solid var(--hair);background:var(--bg-2);
  padding:1.2rem;position:relative;
}
.arch-registry-header{
  display:flex;justify-content:space-between;align-items:baseline;
  font-family:var(--font-mono);font-size:10px;letter-spacing:.22em;
  text-transform:uppercase;color:var(--steel);
  padding-bottom:.8rem;margin-bottom:1.2rem;
  border-bottom:1px solid var(--hair);
}
.arch-registry-header .meta{color:var(--accent);}
.arch-registry-header .meta b{color:var(--ink);font-weight:500;}
.arch-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem;}
.arch-card{
  border:1px solid var(--hair);padding:.95rem 1.1rem 1rem;
  display:flex;flex-direction:column;gap:.65rem;
  background:rgba(228,224,214,.012);position:relative;
  transition:border-color .3s ease,background .3s ease;
}
.arch-card:hover{border-color:var(--steel-dim);background:rgba(123,168,200,.03);}
.arch-card .ah{
  display:flex;align-items:center;gap:.7rem;
  border-bottom:1px solid var(--hair);padding-bottom:.6rem;
}
.arch-card .ah svg{width:18px;height:18px;color:var(--steel);flex-shrink:0;}
.arch-card .ah .code{
  font-family:var(--font-mono);font-size:10px;letter-spacing:.18em;
  text-transform:uppercase;color:var(--steel-dim);
}
.arch-card .ah .nm{
  font-family:var(--font-mono);font-size:.92rem;letter-spacing:.18em;
  text-transform:uppercase;color:var(--ink);font-weight:500;margin-left:auto;
}
.arch-card .role{
  font-family:var(--font-hero);font-size:1.15rem;font-weight:500;
  letter-spacing:-.015em;color:var(--ink);line-height:1.25;margin:0;
}
.arch-card .fields{
  display:grid;grid-template-columns:auto 1fr;gap:.3rem 1rem;
  font-family:var(--font-mono);font-size:11px;letter-spacing:.04em;
  margin-top:auto;padding-top:.6rem;border-top:1px solid var(--hair);
}
.arch-card .fields dt{color:var(--gray);text-transform:uppercase;letter-spacing:.16em;font-size:9.5px;}
.arch-card .fields dd{color:var(--bone);margin:0;}
.arch-card .fields dd.acc{color:var(--steel);}
.arch-footer{
  margin-top:1.2rem;padding-top:.9rem;border-top:1px solid var(--hair);
  font-family:var(--font-mono);font-size:10.5px;letter-spacing:.14em;
  text-transform:uppercase;color:var(--accent);
  display:flex;justify-content:space-between;align-items:center;
}
.arch-footer b{color:var(--steel);font-weight:500;}
.arch-footer .arrow{color:var(--steel-dim);}
@media (max-width:980px){.arch-grid{grid-template-columns:1fr;}}

/* phrase bank */
.phrase{
  padding:1rem 0;border-bottom:1px solid var(--hair);
  font-family:var(--font-hero);font-size:1.4rem;
  font-weight:500;color:var(--ink);letter-spacing:-.018em;line-height:1.3;
}
.phrase::before{content:open-quote;color:var(--steel-dim);}
.phrase::after{content:close-quote;color:var(--steel-dim);}
.phrase:last-child{border-bottom:none;}

/* === TOOLKIT v5.1 === */
.tk-filter{
  margin:1.4rem 0 0;padding:.8rem 1rem;
  border-left:2px solid var(--steel-dim);background:var(--bg-2);
  font-family:var(--font-mono);font-size:.78rem;letter-spacing:.04em;
  color:var(--accent);line-height:1.55;
}
.tk-filter strong{color:var(--ink);font-weight:500;}

.tier-grid{margin-top:1.6rem;display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;}
.tier-card{
  border:1px solid var(--hair);background:var(--bg-2);
  padding:1.2rem 1.2rem 1.4rem;
  display:flex;flex-direction:column;gap:.8rem;
  position:relative;transition:border-color .3s ease;
}
.tier-card:hover{border-color:var(--steel-dim);}
.tier-card.is-feature{border-color:var(--steel-dim);}
.tier-card.is-feature::before{content:"";position:absolute;top:-1px;left:-1px;right:-1px;height:2px;background:var(--steel);}
.tier-card.is-pending{opacity:.86;}

.tier-head{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;border-bottom:1px solid var(--hair);padding-bottom:.7rem;}
.tier-code{font-family:var(--font-mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--steel-dim);}
.tier-name{font-family:var(--font-mono);font-size:.92rem;letter-spacing:.16em;text-transform:uppercase;color:var(--ink);font-weight:500;}
.tier-badge{
  margin-left:auto;font-family:var(--font-mono);font-size:9px;letter-spacing:.18em;text-transform:uppercase;
  padding:.2rem .5rem;border:1px solid var(--steel-dim);color:var(--steel);
}
.tier-badge.next{border-color:var(--hair-strong);color:var(--accent);border-style:dashed;}

.tier-price{display:flex;align-items:baseline;gap:.5rem;}
.tier-price .amt{font-family:var(--font-hero);font-size:2.4rem;font-weight:500;color:var(--ink);letter-spacing:-.025em;line-height:1;}
.tier-price .freq{font-family:var(--font-mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--steel-dim);}

.tier-role{font-size:.9rem;color:var(--accent);line-height:1.45;margin:0;max-width:none;}

.tier-modules{
  list-style:none;display:flex;flex-direction:column;gap:.3rem;
  margin:0;padding:.7rem 0 0;font-family:var(--font-mono);
  border-top:1px solid var(--hair);
}
.tier-modules li{font-size:11px;letter-spacing:.02em;color:var(--bone);padding-left:.9rem;position:relative;line-height:1.5;}
.tier-modules li::before{content:"·";position:absolute;left:0;color:var(--steel);}

.tier-spec{
  display:grid;grid-template-columns:auto 1fr;gap:.3rem 1rem;
  font-family:var(--font-mono);font-size:10.5px;letter-spacing:.04em;
  border-top:1px solid var(--hair);padding-top:.7rem;
}
.tier-spec .k{color:var(--gray);text-transform:uppercase;letter-spacing:.16em;font-size:9.5px;}
.tier-spec .v{color:var(--bone);}
.tier-spec .v.acc{color:var(--sage);}
.tier-spec .v.warn{color:var(--rust);}

.tier-acquire{
  align-self:stretch;background:var(--ink);color:var(--black);border:none;
  padding:.85rem 1.4rem;font-family:var(--font-mono);font-size:.78rem;
  font-weight:700;letter-spacing:.18em;text-transform:uppercase;cursor:pointer;
  transition:background .3s ease;margin-top:.5rem;
}
.tier-acquire:hover{background:var(--steel);}
.tier-acquire[disabled]{
  background:transparent;color:var(--accent);
  border:1px dashed var(--hair-strong);cursor:not-allowed;
}
.tier-acquire[disabled]:hover{background:transparent;}

.buyer-receipts{
  margin-top:1.6rem;border:1px solid var(--hair);padding:.9rem 1.1rem;background:var(--bg-2);
}
.buyer-receipts h6{
  display:flex;justify-content:space-between;font-family:var(--font-mono);
  font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:var(--steel);
  margin:0 0 .6rem;
}
.buyer-receipts h6 .count{color:var(--accent);}
.buyer-receipts .empty{
  font-family:var(--font-mono);font-size:.78rem;letter-spacing:.04em;
  color:var(--accent);margin:0;line-height:1.55;
}

.tk-rationale{
  margin-top:1.2rem;padding:.8rem 1rem;
  border-left:2px solid var(--steel);background:rgba(123,168,200,.04);
  font-family:var(--font-mono);font-size:.78rem;letter-spacing:.02em;
  color:var(--bone);line-height:1.55;
}
.tk-rationale strong{color:var(--ink);font-weight:500;}

.tk-refund{
  margin-top:1rem;font-family:var(--font-mono);font-size:11px;
  letter-spacing:.18em;text-transform:uppercase;color:var(--steel-dim);
  text-align:right;
}

@media (max-width:980px){.tier-grid{grid-template-columns:1fr;}}

/* access form */
.access-form{display:flex;flex-direction:column;gap:1rem;max-width:520px;margin-top:1.4rem;}
.field{display:flex;flex-direction:column;gap:.4rem;}
.field label{font-family:var(--font-mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--steel-dim);}
.field input,.field textarea{
  background:transparent;border:1px solid var(--hair-strong);
  padding:.8rem 1rem;color:var(--ink);
  font-family:var(--font-primary);font-size:1rem;outline:none;
  transition:border-color .3s ease;
}
.field input:focus,.field textarea:focus{border-color:var(--steel);}
.field input::placeholder{color:var(--gray);}
.access-interests{display:flex;flex-direction:column;gap:.4rem;font-family:var(--font-mono);font-size:.85rem;color:var(--bone);}
.access-interests label{display:flex;gap:.6rem;align-items:center;cursor:pointer;}
.access-form .submit{
  align-self:flex-start;background:var(--ink);color:var(--black);border:none;
  padding:.9rem 1.6rem;font-family:var(--font-mono);font-size:.78rem;
  font-weight:700;letter-spacing:.16em;text-transform:uppercase;cursor:pointer;
  margin-top:.8rem;transition:background .3s ease;
}
.access-form .submit:hover{background:var(--steel);}
.access-filter{font-family:var(--font-mono);font-size:11px;color:var(--gray);letter-spacing:.04em;margin-top:.6rem;}

/* closing tagline */
.closing{
  margin-top:4rem;padding:3rem 0 5rem;border-top:1px solid var(--hair);text-align:left;
}
.closing .tag{
  font-family:var(--font-hero);font-size:clamp(2.2rem,4vw,3.2rem);font-weight:500;
  color:var(--ink);letter-spacing:-.025em;line-height:1.05;
}
.closing .sub{
  font-family:var(--font-hero);font-size:clamp(1.6rem,3vw,2.4rem);font-weight:500;
  color:var(--steel);letter-spacing:-.025em;line-height:1.05;
}
.closing .sigblock{
  margin-top:2.4rem;font-family:var(--font-mono);font-size:11px;
  color:var(--accent);letter-spacing:.06em;
  border-top:1px solid var(--hair);padding-top:1.2rem;
  display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;
}
.closing .sigblock .c{display:flex;flex-direction:column;gap:4px;}
.closing .sigblock .c .k{font-size:9.5px;letter-spacing:.18em;color:var(--gray);text-transform:uppercase;}
.closing .sigblock .c .v{color:var(--bone);font-size:11px;}

/* ─────────────────────────────────────────────────────────────
   REVEAL
   ───────────────────────────────────────────────────────────── */
[data-reveal]{opacity:0;transform:translateY(12px);transition:opacity .8s ease,transform .8s ease;}
[data-reveal].in{opacity:1;transform:none;}

/* ─────────────────────────────────────────────────────────────
   RESPONSIVE — collapse rails progressively
   ───────────────────────────────────────────────────────────── */
@media (max-width:1280px){
  .shell{grid-template-columns:240px minmax(0,1fr);}
  .rail-right{position:static;height:auto;border-left:none;border-top:1px solid var(--hair);max-height:none;overflow:visible;}
  .body-pane{border-right:none;}
}
@media (max-width:980px){
  .system-bar{grid-template-columns:1fr;height:auto;padding:.4rem .8rem;}
  .sys-brand{border-right:none;padding:.3rem 0;}
  .sys-bar-mid,.sys-bar-trail{display:none;}
  .shell{grid-template-columns:1fr;}
  .rail-left{position:static;height:auto;border-right:none;border-bottom:1px solid var(--hair);max-height:none;overflow:visible;}
  .body-pane{padding:0 1.2rem 4rem;}
  .masthead{padding:3rem 0 2rem;}
  .masthead .abstract{grid-template-columns:1fr;gap:.6rem;}
  .masthead-spec{grid-template-columns:1fr 1fr;}
  .masthead-spec .cell:nth-child(2){border-right:none;}
  .masthead-spec .cell:nth-child(1),.masthead-spec .cell:nth-child(2){border-bottom:1px solid var(--hair);}
  .signed-block{grid-template-columns:1fr;gap:.4rem;}
  .loop{grid-template-columns:1fr;}
  .enemy-grid,.op-grid{grid-template-columns:1fr;}
  .enemy{border-right:none;}
  .op-card{border-right:none;}
  .path-track{grid-template-columns:1fr;}
  .path-phase{border-right:none;border-bottom:1px solid var(--hair);}
  .pillars{grid-template-columns:repeat(2,1fr);}
  .pillar:nth-child(2){border-right:none;}
  .pillar:nth-child(1),.pillar:nth-child(2){border-bottom:1px solid var(--hair);}
  .schematic{grid-template-columns:1fr;}
  .schematic .col + .col{border-left:none;border-top:1px solid var(--hair);padding:1rem 0 0;margin-top:1rem;}
  .closing .sigblock{grid-template-columns:repeat(2,1fr);}
}
