
.ri *{box-sizing:border-box}
.ri{--ri-ground:#0b0d11;--ri-ink:#f4f1ea;--ri-ink-72:rgba(244,241,234,.72);--ri-ink-60:rgba(244,241,234,.60);--ri-ink-50:rgba(244,241,234,.50);
  --ri-hair:rgba(244,241,234,.14);--ri-rule:rgba(244,241,234,.30);--ri-accent:#c7d0ff;
  --ri-mono:ui-monospace,'SF Mono',Menlo,monospace;
  background:var(--ri-ground);color:var(--ri-ink);font-family:'Newsreader',serif;line-height:1.6;-webkit-font-smoothing:antialiased;
  border-bottom:1px solid var(--ri-rule);
  padding:clamp(30px,5vw,64px) clamp(22px,6vw,80px) clamp(36px,3.5vw,52px)}
.ri-doc{max-width:1060px;margin:0 auto}
.ri-meta{font-family:'Manrope',sans-serif;font-size:12px;letter-spacing:.02em;color:var(--ri-ink-60);line-height:1.5}

.ri-plate{display:flex;justify-content:space-between;align-items:baseline;gap:24px;flex-wrap:wrap;
  padding-bottom:14px;border-bottom:1px solid var(--ri-rule)}
.ri-plate-l{font-family:'Newsreader',serif;font-size:15px;letter-spacing:.01em;color:var(--ri-ink)}
.ri-plate-l i{font-style:normal;color:var(--ri-ink-60)}
.ri-plate-r{font-family:'Panchang',sans-serif;font-weight:500;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ri-ink-60)}

.ri-entry{display:grid;grid-template-columns:clamp(104px,13vw,178px) 1fr;gap:0 clamp(22px,3.4vw,46px);
  padding:clamp(56px,10vw,116px) 0 clamp(40px,6vw,64px)}
.ri-no{padding-top:clamp(8px,1.2vw,16px);font-variant-numeric:tabular-nums}
/* Chronicled records only (critique 2026-09-02, P1): the CTAs land on #story now, but a reader who
   arrives at the top of the ledger still gets a one-line way down to the story. */
.ri-skip,.ri-map{display:inline-flex;align-items:center;min-height:44px;margin-top:6px;margin-right:24px;font-family:'Panchang',sans-serif;
  font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ri-ink-60);text-decoration:none}
.ri-skip:hover,.ri-map:hover{color:var(--ri-ink)}
.ri-skip .ofto-arw,.ri-map .ofto-arw{margin-left:6px}
.ri-no .ri-tot{white-space:nowrap}
.ri-no .ri-of{display:block;font-family:'Panchang',sans-serif;font-weight:500;font-size:11px;letter-spacing:.14em;
  text-transform:uppercase;color:var(--ri-ink-60)}
.ri-no b{display:block;color:var(--ri-accent);font-family:'Newsreader',serif;font-weight:400;
  font-size:clamp(2.9rem,5.6vw,4.5rem);line-height:.86;letter-spacing:-.035em;margin:6px 0 8px}
.ri-no .ri-tot{display:block;font-family:'Panchang',sans-serif;font-weight:500;font-size:11px;letter-spacing:.14em;
  text-transform:uppercase;color:var(--ri-ink-50);padding-top:9px;border-top:1px solid var(--ri-hair)}
.ri h1{font-family:'Newsreader',serif;font-weight:400;font-size:clamp(3.1rem,9.4vw,7rem);line-height:.92;
  letter-spacing:-.032em;margin:0;text-wrap:balance}
.ri-strap{font-family:'Newsreader',serif;font-weight:300;font-size:clamp(1.15rem,2.1vw,1.5rem);line-height:1.48;
  color:var(--ri-ink-72);max-width:46ch;margin:clamp(22px,3vw,32px) 0 0;text-wrap:pretty}
.ri-sector{margin:clamp(20px,2.6vw,28px) 0 0;font-family:'Panchang',sans-serif;font-weight:500;font-size:11px;letter-spacing:.14em;
  text-transform:uppercase;color:var(--ri-ink-60)}

.ri-pf{margin:0 0 clamp(26px,3.4vw,38px);width:clamp(96px,11vw,132px);aspect-ratio:1;overflow:hidden;
  border:1px solid var(--ri-hair);filter:grayscale(1) contrast(1.04)}
.ri-pf img{width:100%;height:100%;object-fit:cover;display:block}

.ri-card{margin:clamp(30px,4vw,48px) 0 0}
.ri .fc-instrument .fc-face{box-shadow:none;border:1px solid var(--ri-hair)}

.ri-figs{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:clamp(20px,3vw,38px);
  border-top:1px solid var(--ri-rule);border-bottom:1px solid var(--ri-rule);padding:clamp(26px,3.4vw,38px) 0;
  margin:clamp(30px,4vw,48px) 0 0}
.ri-fig-n{font-family:'Newsreader',serif;font-weight:400;font-size:clamp(2rem,4.2vw,3.15rem);line-height:1;
  letter-spacing:-.028em;color:var(--ri-ink);font-variant-numeric:tabular-nums}
.ri-fig-l{font-family:'Panchang',sans-serif;font-weight:500;font-size:11px;letter-spacing:.14em;text-transform:uppercase;
  color:var(--ri-ink-60);margin-top:11px}

.ri-rec{border-top:1px solid var(--ri-rule);padding-top:clamp(30px,4vw,44px)}
.ri-rec-h{font-family:'Newsreader',serif;font-weight:400;font-size:clamp(1.5rem,2.7vw,2rem);letter-spacing:-.015em;margin:0}
.ri-rec-note{margin:10px 0 clamp(26px,3.4vw,38px);max-width:52ch}
.ri-row{display:grid;grid-template-columns:clamp(120px,15vw,190px) 1fr;gap:8px clamp(20px,3vw,38px);
  padding:16px 0;border-bottom:1px solid var(--ri-hair);align-items:baseline}
.ri-row-k{font-family:'Panchang',sans-serif;font-weight:500;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ri-ink-60)}
.ri-row-v{font-family:'Newsreader',serif;font-size:clamp(1.08rem,1.8vw,1.28rem);line-height:1.45;color:var(--ri-ink)}

.ri-src{margin:clamp(52px,7vw,88px) 0 0;border-top:1px solid var(--ri-rule);padding-top:clamp(30px,4vw,44px)}
.ri-src-list{list-style:none;margin:0;padding:0;counter-reset:s;
  columns:2;column-gap:clamp(30px,4vw,56px)}
@media(max-width:760px){.ri-src-list{columns:1}}
.ri-src-list li{counter-increment:s;break-inside:avoid;padding:11px 0;border-bottom:1px solid var(--ri-hair);
  font-family:'Newsreader',serif;font-size:1rem;line-height:1.45;color:var(--ri-ink-72);position:relative;padding-left:30px}
.ri-src-list li::before{content:counter(s);position:absolute;left:0;top:13px;font-family:'Manrope',sans-serif;
  font-size:11px;letter-spacing:.1em;color:var(--ri-ink-50);font-variant-numeric:tabular-nums}
.ri-src-list a{color:var(--ri-ink-72);text-decoration:none;border-bottom:1px solid var(--ri-hair)}
.ri-src-list a:hover{color:var(--ri-ink);border-color:var(--ri-rule)}

.ri-prov{margin:clamp(58px,8vw,100px) 0 0;border-top:1px solid var(--ri-rule);padding-top:clamp(30px,4vw,44px);
  display:grid;grid-template-columns:1fr;gap:clamp(24px,3vw,34px)}
@media(min-width:860px){.ri-prov{grid-template-columns:1.15fr .85fr;gap:clamp(40px,5vw,72px)}}
.ri-prov-h{font-family:'Newsreader',serif;font-weight:400;font-size:clamp(1.5rem,2.7vw,2rem);letter-spacing:-.015em;margin:0 0 14px}
.ri-prov-p{font-family:'Newsreader',serif;font-weight:300;font-size:clamp(1.05rem,1.75vw,1.22rem);line-height:1.6;
  color:var(--ri-ink-72);max-width:44ch;margin:0 0 16px;text-wrap:pretty}
.ri-fingerprint{margin-top:clamp(20px,2.6vw,28px)}
.ri-fk{font-family:'Panchang',sans-serif;font-weight:500;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ri-ink-60);margin-bottom:8px}
.ri-fv{font-family:var(--ri-mono);font-size:12.5px;line-height:1.85;color:var(--ri-ink-72);word-break:break-all;letter-spacing:.01em}
.ri-verify{display:inline-flex;align-items:center;min-height:44px;margin-top:16px;font-family:'Manrope',sans-serif;font-size:12.5px;color:var(--ri-ink);
  text-decoration:none;border-bottom:1px solid var(--ri-rule);padding-bottom:3px}
.ri-verify:hover{border-color:var(--ri-ink)}

.ri-states{display:flex;flex-direction:column}
.ri-state{padding:15px 0;border-bottom:1px solid var(--ri-hair)}
.ri-state:first-child{padding-top:0}
.ri-state-h{font-family:'Manrope',sans-serif;font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--ri-ink)}
.ri-state-h .ri-when{color:var(--ri-ink-50);margin-left:10px;letter-spacing:.08em}
.ri-state-p{font-family:'Newsreader',serif;font-weight:300;font-size:1.02rem;line-height:1.55;color:var(--ri-ink-72);margin:7px 0 0;max-width:50ch}
.ri-state-p em{font-style:normal;color:var(--ri-ink);border-bottom:1px solid var(--ri-rule)}
.ri-state-p code{font-family:var(--ri-mono);font-size:11.5px;color:var(--ri-ink-50)}

/* The strip (Task 2, docs/superpowers/sdd/2026-07-27-version-history): a full-width third row
   under the two ri-prov columns, one line at both viewports. The revision-date phrase and the
   history link are each a single nowrap atom; the field list is the only part allowed to wrap,
   since it is the only part with unbounded length (an update can touch many fields). */
.ri-hist{grid-column:1/-1;margin:clamp(18px,2.4vw,26px) 0 0;padding-top:clamp(18px,2.4vw,26px);
  border-top:1px solid var(--ri-hair);font-family:'Manrope',sans-serif;font-size:12px;
  letter-spacing:.02em;line-height:1.7;color:var(--ri-ink-60)}
.ri-hist-date{white-space:nowrap;color:var(--ri-ink-60)}
.ri-hist-fields{color:var(--ri-ink-72)}
.ri-hist-link{white-space:nowrap;color:var(--ri-ink);text-decoration:none;border-bottom:1px solid var(--ri-rule)}
.ri-hist-link:hover{border-color:var(--ri-ink)}

/* Instrument re-register of the shared founder-card control cluster (impeccable audit
   2026-07-25, P1). buildFounderCardHtml ships its controls in the paper-widget palette:
   #fff/#DAD7CE 8px buttons, a saturated var(--of-card) .fc-primary fill, #a2a9b0/#e9e7e0
   cool grays, all centered. Inside the vault instrument those read as "the style dropping."
   Here they speak the ri grammar instead: --ri-ink tokens, left-aligned on the card axis as
   one composed block, quiet hairline pills, the .ri-verify link register. Scoped under .ri so
   the article/entity card variants stay untouched and the founder-page contrast baseline stays
   0. The flip card (.fc-flip and its faces) is deliberately NOT touched; that artifact is right. */
.ri .fc-actions{max-width:none;margin:22px 0 0;justify-content:flex-start;gap:12px;flex-wrap:wrap}
.ri .fc-actions button{flex:0 0 auto;min-height:44px;padding:0 22px;border-radius:9999px;border:1px solid var(--ri-rule);background:transparent;color:var(--ri-ink);letter-spacing:.14em}
.ri .fc-actions button:hover{border-color:var(--ri-ink)}
.ri .fc-actions button.fc-primary{background:transparent;border-color:var(--ri-rule);color:var(--ri-ink)}
.ri .fc-actions button.fc-primary:hover{border-color:var(--ri-ink)}
.ri .fc-shareline{justify-content:flex-start;margin:16px 0 0}
.ri .fc-shareline span{color:var(--ri-ink-60)}
.ri .fc-shareline a,.ri .fc-shareline button{color:var(--ri-ink)}
.ri .fc-status{max-width:none;margin:16px 0 0;text-align:left;color:var(--ri-ink-60);border-top-color:var(--ri-hair)}
.ri .fc-status a{color:var(--ri-ink);text-decoration-color:var(--ri-rule)}
.ri .fc-status a:hover{text-decoration-color:var(--ri-ink)}
.ri .fc-follow{max-width:none;margin:6px 0 0;text-align:left}
.ri .fc-follow-s{color:var(--ri-ink)}
.ri .fc-follow-p{color:var(--ri-ink-60)}
.ri .fc-follow-form{justify-content:flex-start}
.ri .fc-follow-form input[type=email]{border-color:var(--ri-hair);color:var(--ri-ink)}
.ri .fc-follow-form button{border-radius:9999px;border-color:var(--ri-rule);color:var(--ri-ink);min-height:44px}

@media(max-width:760px){
  .ri{padding:72px 18px 40px}
  .ri-entry{grid-template-columns:1fr;gap:0;padding:34px 0 30px}
  .ri-no{display:flex;flex-wrap:wrap;align-items:baseline;gap:10px;padding-top:0;margin-bottom:18px}
  .ri-no .ri-tot{flex:0 0 100%;margin-top:4px}
  .ri-no .ri-of{font-size:11px}
  .ri-no b{font-size:2.6rem;margin:0;line-height:1}
  .ri-no .ri-tot{border-top:0;padding-top:0;font-size:11px;color:var(--ri-ink-60)}
  .ri h1{font-size:clamp(2.5rem,11vw,3.4rem);line-height:.98;letter-spacing:-.028em}
  .ri-strap{font-size:1.08rem;margin-top:18px}
  .ri-figs{grid-template-columns:1fr 1fr;gap:22px 18px;padding:22px 0;margin-top:26px}
  .ri-fig-n{font-size:1.85rem}
  .ri-fig-l{font-size:11px;margin-top:8px}
  .ri-row{grid-template-columns:1fr;gap:4px;padding:14px 0}
  .ri-row-k{font-size:11px}
  .ri-row-v{font-size:1.05rem}
  .ri-prov{gap:34px}
  .ri-prov-p,.ri-state-p{max-width:none}
  .ri-fingerprint .ri-fv{font-size:11px;line-height:1.8}
}


  /* Header merges into the hero: one full-bleed near-black block, no paper seam.
     Translucent dark + blur so it sits on the hero at top and stays a legible
     dark bar over the paper body on scroll (Ferrari / Linear pattern). */
  body.founder-page .glass-nav{background:linear-gradient(180deg,rgba(11,13,17,.34),rgba(11,13,17,.16))!important;border:0;border-bottom:1px solid rgba(244,241,234,.14)!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.09);-webkit-backdrop-filter:saturate(1.7) blur(26px);backdrop-filter:saturate(1.7) blur(26px)}
  /* Scroll-aware ink flip: the founder page is dark-top/cream-bottom, so the static
     body:has(.home) flip pattern (see ~L1058) becomes a class the observer below toggles
     while the cream zone occupies the corner-control band. JS-off fallback: controls stay
     light, correct at the load position (the dark instrument). */
  html.ofto-cream-zone .ofto-back,html.ofto-cream-zone .ofto-menu{color:var(--of-ink-deep)!important;background:rgba(250,249,244,.72)}
  body.founder-page .glass-nav a,body.founder-page .glass-nav span,body.founder-page .glass-nav button{text-shadow:0 1px 3px rgba(6,8,12,.55),0 2px 20px rgba(6,8,12,.4)}
  body.founder-page .glass-nav a,body.founder-page .glass-nav span,body.founder-page .glass-nav button{color:#fff!important}
  body.founder-page .glass-nav a[href="#subscribe"]{color:#8ea4ff!important;border-color:#8ea4ff!important}
  body.founder-page .glass-nav .h-px{background:transparent!important}
  .fh-story{max-width:728px;margin:0 auto;padding:32px 24px 8px;scroll-margin-top:24px}
  .fh-story-title{font-family:'Newsreader',serif;font-weight:500;font-size:clamp(1.9rem,4.4vw,2.9rem);line-height:1.08;letter-spacing:-.02em;color:var(--of-ink)}
  .fh-story-deck{font-family:'Newsreader',serif;font-size:clamp(1.05rem,2.2vw,1.3rem);line-height:1.5;color:rgba(20,20,15,.72);margin-top:14px}
  .fh-story-byline{font-family:'Panchang',sans-serif;font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:rgba(20,20,15,.62);margin-top:16px}
  .fh-story-body{margin-top:32px}
  /* Chronicle body typography (ADR 0027 decision 2, related defect): the merged founder page
     never inherited the .article-body ruleset (that class lives only on the retired /post/ and
     /essay/ templates), so h2/h3/p/blockquote here fell through to Tailwind's preflight, which
     resets headings to inherit the body's font-size and weight. Every subhead rendered flat --
     same 16px Manrope as body copy, the Sarwa audit's P1 finding. Mirrors .article-body 1:1
     (_shared/includes/head.html) rather than inventing a second system: same Newsreader h2 with
     the Panchang data-label kicker, same h3, same pullquote and paragraph rhythm. */
  .fh-story-body p{margin:0 0 1.5rem 0;font-size:1.1875rem;line-height:1.75}
  .fh-story-body > p:first-of-type::first-letter{font-family:'Newsreader',serif;font-size:4.5rem;float:left;line-height:.9;margin:0 .12em 0 0;color:rgb(var(--ofto-primary-rgb))}
  .fh-story-body p:last-child{margin-bottom:0}
  .fh-story-body strong{font-weight:600;color:var(--of-ink)}
  .fh-story-body em{font-style:normal}
  .fh-story-body a{color:#0041c8;text-decoration:underline;text-underline-offset:0.2em;text-decoration-thickness:1px}
  .fh-story-body a:hover{opacity:0.7}
  .fh-story-body h2{font-family:'Newsreader',serif;font-size:2.25rem;font-weight:300;line-height:1.15;letter-spacing:-0.01em;margin:3.5rem 0 1.5rem 0;color:var(--of-ink);position:relative;padding-top:1rem}
  @media(min-width:768px){.fh-story-body h2{font-size:2.75rem;margin-top:4.5rem}}
  .fh-story-body h2::before{content:attr(data-label);display:block;font-family:'Panchang',sans-serif;font-size:0.6875rem;font-style:normal;font-weight:600;letter-spacing:0.3em;text-transform:uppercase;color:#0041c8;margin-bottom:1rem}
  .fh-story-body h2:first-child{margin-top:0}
  .fh-story-body h3{font-family:'Newsreader',serif;font-size:1.5rem;font-weight:400;line-height:1.3;margin:2.25rem 0 0.875rem 0;color:var(--of-ink)}
  .fh-story-body blockquote.pullquote{font-family:'Newsreader',serif;font-weight:300;font-size:1.75rem;line-height:1.3;letter-spacing:-0.005em;padding:1.25rem 0 0.5rem;margin:3rem auto;color:var(--of-ink);max-width:38em;text-align:center}
  .fh-story-body blockquote.pullquote::before{content:"";display:block;width:38px;height:2px;background:#0041c8;margin:0 auto 1.1rem}
  @media(min-width:768px){.fh-story-body blockquote.pullquote{font-size:2rem;margin:3.5rem 0}}
  .fh-story-body hr.ornament{border:none;height:1.5rem;margin:2.5rem auto;text-align:center;position:relative}
  .fh-story-body hr.ornament::after{content:"\2022   \2022   \2022";letter-spacing:1.25em;color:rgba(67,70,86,.35);font-size:0.625rem;position:absolute;left:50%;top:50%;transform:translate(-50%,-50%)}
  .fh-story-outro{margin-top:40px;padding-top:24px;border-top:1px solid rgba(27,28,25,.1)}
  .fh-story-outro-k{display:block;font-family:'Panchang',sans-serif;font-size:11px;letter-spacing:.13em;text-transform:uppercase;color:rgba(20,20,15,.62);margin-bottom:10px}
  /* In-body founder links (retention research: highest-intent second-read surface). */
  .fh-story-body .prose-founder-link{color:#0041c8;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:2px;transition:opacity .2s}
  .fh-story-body .prose-founder-link:hover{opacity:.7}
  /* "Read this next" — pulls a finished chronicle into another (retention research). */
  .fh-story-next{display:block;margin-top:44px;padding:22px 26px;border:1px solid rgba(27,28,25,.14);border-radius:2px;text-decoration:none;transition:border-color .2s var(--ease-hover),transform .2s var(--ease-hover)}
  .fh-story-next:hover{border-color:#0041c8;transform:translateY(-2px)}
  .fh-story-next-label{display:block;font-family:'Panchang',sans-serif;font-size:11px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:#0041c8;margin-bottom:9px}
  .fh-story-next-title{display:block;font-family:'Newsreader',serif;font-weight:500;font-size:1.35rem;line-height:1.22;color:var(--of-ink)}
  .fh-story-next-cta{display:block;margin-top:9px;font-family:'Panchang',sans-serif;font-size:11px;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:rgba(20,20,15,.72)}
  /* Record-only pages (data-cream-zone="record", set at build time -- see founderVars in
     build.js): halve the cream zone's opening padding to join the seam rhythm. Fix loop 2
     (2026-07-26): the prior colon-has-scoped rule used a single-backslash bracket escape
     inside a JS template literal -- JS itself swallows a backslash before a non-escape
     character, so a single backslash there evaluates to no backslash at all in the emitted
     string, and the emitted CSS carried an UNESCAPED bracket in a class selector, which every
     browser treats as invalid and silently drops the whole rule. It also never discriminated:
     .fh-story-title renders INSIDE the cream-zone element as a sibling before this section
     (verified against the built DOM), so the old guard matched every founder page, story or
     not. This rule now keys off the build-time modifier instead of a runtime guess, and the
     bracket uses a doubled backslash in source so a single literal backslash reaches the
     emitted HTML/CSS. */
  [data-cream-zone="record"] > section > .max-w-\[680px\]:first-child{padding-top:24px}
  @media(min-width:768px){[data-cream-zone="record"] > section > .max-w-\[680px\]:first-child{padding-top:40px}}
