/* XFollowList widget board, owner-approved 7 November 2026. See docs/design-system.md.
   Every block is a widget: one solid field, one job, no outlines and no resting shadows. */
@font-face {
  font-family: "Funnel Display";
  src: url("/fonts/funnel-display-latin.woff2") format("woff2");
  font-weight: 300 800;
  font-style: normal;
  font-display: swap;
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: "Funnel Display";
  src: url("/fonts/funnel-display-latin-ext.woff2") format("woff2");
  font-weight: 300 800;
  font-style: normal;
  font-display: swap;
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: "Funnel Sans";
  src: url("/fonts/funnel-sans-latin.woff2") format("woff2");
  font-weight: 300 800;
  font-style: normal;
  font-display: swap;
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: "Funnel Sans";
  src: url("/fonts/funnel-sans-latin-ext.woff2") format("woff2");
  font-weight: 300 800;
  font-style: normal;
  font-display: swap;
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* Golos Text stays as the Cyrillic fallback: listings carry Russian text. */
@font-face {
  font-family: "Golos Text";
  src: url("/fonts/golos-text-cyrillic.woff2") format("woff2");
  font-weight: 400 900;
  font-style: normal;
  font-display: swap;
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}

:root {
  color-scheme: light;
  --paper: #e3e5df;      /* the board behind every widget */
  --surface: #ffffff;    /* paper widgets */
  --ink: #15131b;
  --muted: #4b4955;
  --rule: #d4d6cf;       /* only inside tables and forms */
  --field-line: #b9bbb3;
  --link: #15131b;
  --link-hover: #000000;
  --focus: #15131b;
  --soft: #f0f1ec;       /* a step inside a paper widget */
  --accent: #ffc12e;     /* lamp: the main action and lamp widgets */
  --accent-ink: #1d1505;
  --night: #2a2140; --night-ink: #f6f2ff; --night-muted: #cbc2de; --night-step: rgba(255, 255, 255, .08);
  --moss: #285441; --moss-ink: #eef6f0; --moss-muted: #c3dacb; --moss-step: rgba(255, 255, 255, .12);
  --heather: #cdc0ee; --heather-ink: #19132a;
  --deep: #15131b; --deep-ink: #f4f2f8; --deep-muted: #bdb8c9;
  --active: #15131b; --active-ink: #f4f2f8; /* buttons, active filters and pills */
  --mark: #ffe7a6; --mark-ink: #3d2b00;
  --field: #ffffff;
  --always-white: #ffffff; --always-ink: #15131b; /* fixed fields on coloured widgets, same in both themes */
  --speech-paper: #ffffff; --speech-ink: #15131b; --speech-rule: #b9bbb3;
  --font-display: "Funnel Display", "Golos Text", "Arial Black", Arial, sans-serif;
  --font-text: "Funnel Sans", "Golos Text", "Segoe UI", Roboto, Arial, sans-serif;
  --page: 1360px; --gutter: 20px; --gap: 12px; --measure: 68ch;
  --radius-widget: 28px; --radius: 18px; --radius-sm: 12px;
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    color-scheme: dark;
    --paper: #121116; --surface: #1e1c25; --ink: #f3f1f7; --muted: #bab7c6;
    --rule: #34313d; --field-line: #55515f; --link: #f3f1f7; --link-hover: #ffc12e; --focus: #ffc12e;
    --soft: #28252f; --night: #2f2550; --night-step: rgba(255, 255, 255, .07);
    --moss: #2b5a45; --deep: #262230; --active: #f3f1f7; --active-ink: #15131b; --mark: #4a3a10; --mark-ink: #ffe3a0; --field: #121116;
    --speech-paper: #1e1c25; --speech-ink: #f3f1f7; --speech-rule: #55515f;
  }
}
:root[data-theme="dark"] {
  color-scheme: dark;
  --paper: #121116; --surface: #1e1c25; --ink: #f3f1f7; --muted: #bab7c6;
  --rule: #34313d; --field-line: #55515f; --link: #f3f1f7; --link-hover: #ffc12e; --focus: #ffc12e;
  --soft: #28252f; --night: #2f2550; --night-step: rgba(255, 255, 255, .07);
  --moss: #2b5a45; --deep: #262230; --active: #f3f1f7; --active-ink: #15131b; --mark: #4a3a10; --mark-ink: #ffe3a0; --field: #121116;
  --speech-paper: #1e1c25; --speech-ink: #f3f1f7; --speech-rule: #55515f;
}

/* Base */
* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-padding-top: 24px; }
body { margin: 0; background: var(--paper); color: var(--ink); font: 400 17px/1.55 var(--font-text); font-variant-numeric: tabular-nums; }
a { color: var(--link); text-decoration-thickness: 1.5px; text-underline-offset: .18em; transition: color 120ms, text-decoration-thickness 120ms; }
a:hover { color: var(--link-hover); text-decoration-thickness: 2.5px; }
:focus-visible { outline: 3px solid var(--focus); outline-offset: 3px; }
[hidden] { display: none !important; }
@media (prefers-reduced-motion: reduce) { * { transition: none !important; } }
img { max-width: 100%; }
p { margin: 0; max-width: var(--measure); }
p + p { margin-top: 12px; }
h1, h2, h3 { margin: 0; font-family: var(--font-display); font-weight: 800; line-height: 1.06; text-wrap: balance; letter-spacing: -.03em; }
h1 { font-size: clamp(40px, 5.2vw, 72px); line-height: .96; letter-spacing: -.035em; }
h2 { font-size: clamp(26px, 2.6vw, 34px); }
h3 { font-size: 21px; letter-spacing: -.02em; }
small, .small { font-size: 14px; }
.muted { color: var(--muted); }
time { white-space: nowrap; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
.skip { position: absolute; left: 20px; top: -100px; background: var(--surface); color: var(--ink); padding: 12px 16px; z-index: 30; border-radius: var(--radius-sm); }
.skip:focus { top: 16px; }
.inner, .page { max-width: var(--page); margin: 0 auto; padding-left: var(--gutter); padding-right: var(--gutter); }
.page { padding-top: 4px; padding-bottom: 24px; }
.eyebrow { font-size: 14px; font-weight: 600; color: var(--muted); margin-bottom: 8px; }

/* Dark fields carry their own readable inks and a lamp focus ring. */
.w-night, .w-moss, .next-steps, .tools-hero, .place-intro .intro, .topic-hero, .subject-hero, footer.site { --focus: var(--accent); }
.w-night a, .w-moss a, .next-steps a, .tools-hero a, .place-intro .intro a, .topic-hero a, .subject-hero a { color: inherit; }
.w-lamp, .context-card, .tool-result, .tool-card:nth-child(2) { --focus: var(--accent-ink); }
.w-heather, .platform-card, .reading-step:nth-child(3n+2), .learning-panel, .article-sidebar-block { --focus: var(--heather-ink); }

/* Widgets */
.w { position: relative; min-width: 0; border-radius: var(--radius-widget); padding: 28px; background: var(--surface); color: var(--ink); }
.w-paper { background: var(--surface); color: var(--ink); }
.w-night { background: var(--night); color: var(--night-ink); }
.w-lamp { background: var(--accent); color: var(--accent-ink); }
.w-moss { background: var(--moss); color: var(--moss-ink); }
.w-heather { background: var(--heather); color: var(--heather-ink); }
.w-lamp a, .w-heather a { color: inherit; }
.w h2 { font-size: 28px; line-height: 1.02; }

/* Buttons and pills */
.button { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 48px; padding: 0 22px; border: 0; border-radius: 999px; background: var(--active); color: var(--active-ink); font: 600 16px/1.2 var(--font-text); text-decoration: none; cursor: pointer; transition: transform 120ms, background-color 120ms; }
.button:hover { color: var(--active-ink); transform: translateY(-1px); }
.button:active { transform: translateY(1px); }
.button-primary { background: var(--accent); color: var(--accent-ink); }
.button-primary:hover { color: var(--accent-ink); }
.pill-link { display: inline-flex; align-items: center; min-height: 44px; padding: 0 18px; border-radius: 999px; background: var(--soft); color: var(--ink); text-decoration: none; font-weight: 600; font-size: 15px; }
.pill-link:hover { background: var(--active); color: var(--active-ink); }

/* Masthead */
.masthead { position: relative; z-index: 10; }
.masthead .inner { min-height: 84px; display: flex; gap: 12px 28px; align-items: center; justify-content: space-between; }
.brand-link { display: flex; align-items: center; min-height: 44px; color: var(--ink); text-decoration: none; flex-shrink: 0; margin-right: auto; }
.brand-link:hover { color: var(--ink); }
.wordmark { font: 800 27px/1 var(--font-display); letter-spacing: -.045em; }
.primary-nav { display: flex; align-items: center; gap: 4px 24px; font-size: 16px; font-weight: 600; }
.primary-nav > a, .nav-crypto > a, .explore-menu summary { color: var(--ink); text-decoration: none; padding: 10px 0; min-height: 44px; }
.primary-nav > a, .nav-crypto > a { display: flex; align-items: center; justify-content: center; min-width: 44px; }
.nav-crypto { display: flex; align-items: center; gap: 2px; }
.primary-nav a[aria-current] { text-decoration: underline; text-decoration-thickness: 2.5px; text-underline-offset: .32em; }
.primary-nav > a:hover, .nav-crypto > a:hover { text-decoration: underline; text-decoration-thickness: 2.5px; text-underline-offset: .32em; }
.nav-action { display: inline-flex; align-items: center; min-height: 44px; padding: 0 20px; border-radius: 999px; background: var(--active); color: var(--active-ink); font-weight: 600; text-decoration: none; }
.nav-action:hover { color: var(--active-ink); background: var(--active); text-decoration: underline; text-decoration-thickness: 1.5px; }
.explore-menu { position: relative; }
.explore-menu summary { cursor: pointer; list-style: none; display: flex; align-items: center; gap: 9px; }
.explore-menu summary::-webkit-details-marker { display: none; }
.explore-menu summary::after { content: ''; width: 7px; height: 7px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg); margin-top: -4px; }
.explore-menu[open] summary::after { transform: rotate(225deg); margin-top: 4px; }
.explore-panel { position: absolute; top: calc(100% + 10px); right: 0; width: 320px; max-height: calc(100dvh - 132px); overflow-y: auto; padding: 12px; border-radius: 22px; background: var(--surface); box-shadow: 0 16px 48px rgba(10, 8, 20, .22); }
.crypto-routes summary { justify-content: center; width: 40px; border-radius: 999px; }
.crypto-routes summary:hover, .crypto-routes[open] summary { background: var(--surface); }
.crypto-routes .explore-panel { left: 0; right: auto; width: 290px; }
.explore-links { list-style: none; margin: 0; padding: 0; }
.explore-link { display: flex; flex-direction: column; padding: 12px 14px; min-height: 44px; border-radius: 14px; text-decoration: none; color: var(--ink); font-weight: 600; }
.explore-link:hover, .explore-link[aria-current] { background: var(--soft); color: var(--ink); }
.explore-kind { font-size: 13px; color: var(--muted); font-weight: 400; }

/* Home board */
.board { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--gap); }
.w-hero { padding: 36px 28px 0; display: flex; flex-direction: column; overflow: hidden; }
.w-hero h1 { font-size: clamp(46px, 6.2vw, 88px); line-height: .92; letter-spacing: -.04em; }
.w-hero .lead { font-size: 19px; line-height: 1.45; max-width: 32ch; margin: 22px 0 26px; color: var(--night-ink); }
.subject-buttons { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 28px; position: relative; z-index: 2; }
.subject-button { display: inline-flex; flex-direction: column; justify-content: center; gap: 3px; min-height: 64px; padding: 10px 24px; border-radius: 999px; text-decoration: none; font: 800 23px/1 var(--font-display); letter-spacing: -.02em; transition: transform 120ms; }
.subject-button span { font: 500 14px/1.2 var(--font-text); letter-spacing: 0; }
.subject-button:hover { transform: translateY(-2px); text-decoration: none; }
.subject-button:active { transform: translateY(1px); }
.w-hero .subject-crypto { background: var(--accent); color: var(--accent-ink); }
.w-hero .subject-ai { background: var(--always-white); color: var(--always-ink); }
.character { display: block; height: auto; pointer-events: none; user-select: none; }
.w-hero .character { width: 42%; max-width: 250px; margin: -24px -4px 0 auto; position: relative; z-index: 1; }
.w-cover { padding: 0; overflow: hidden; display: flex; flex-direction: column; min-height: 260px; background: var(--night); text-decoration: none; color: var(--ink); }
.w-cover img { display: block; width: 100%; height: 100%; flex: 1; object-fit: cover; }
.cover-caption { position: absolute; left: 14px; right: 14px; bottom: 14px; display: grid; gap: 4px; padding: 16px 18px; border-radius: 20px; background: var(--surface); color: var(--ink); }
.cover-caption b { font: 800 21px/1.12 var(--font-display); letter-spacing: -.02em; }
.cover-caption span { font-size: 14px; color: var(--muted); }
.cover-caption .cover-kind { font-weight: 600; color: var(--ink); }
.w-cover:hover .cover-caption b { text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: .15em; }
.w-today { display: grid; gap: 14px; align-content: start; }
.today-people { list-style: none; margin: 0; padding: 0; }
.today-person { display: grid; gap: 14px; }
.today-who { display: grid; grid-template-columns: 76px minmax(0, 1fr); gap: 14px; align-items: center; }
.today-who img { width: 76px; height: 76px; border-radius: 50%; object-fit: cover; display: block; }
.today-name { font: 800 25px/1.05 var(--font-display); letter-spacing: -.03em; overflow-wrap: anywhere; }
.today-role { font-size: 14px; overflow-wrap: anywhere; }
.today-why { font-size: 17px; line-height: 1.45; }
.today-actions { display: flex; flex-wrap: wrap; gap: 8px 18px; align-items: center; }
.today-actions a { font-weight: 600; }
.today-next { min-height: 44px; padding: 0 18px; font-size: 15px; }
.w-list { display: grid; gap: 12px; align-content: start; }
.w-list ul { list-style: none; margin: 0; padding: 0; display: grid; }
.w-list li a { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 12px; align-items: baseline; padding: 11px 0; text-decoration: none; color: inherit; }
.w-list li a:hover .list-title { text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: .15em; }
.list-title { font-weight: 600; font-size: 17px; line-height: 1.25; }
.list-count { font: 800 34px/1 var(--font-display); letter-spacing: -.03em; white-space: nowrap; }
.list-count small { font: 500 13px/1 var(--font-text); letter-spacing: 0; margin-left: 4px; }
.list-more { font-weight: 600; justify-self: start; }
.w-feature { display: grid; gap: 12px; align-content: start; overflow: hidden; padding-bottom: 220px; }
.w-feature p { max-width: 34ch; }
.w-feature .character { position: absolute; right: 6px; bottom: -40px; width: 170px; }
.w-feature .list-more { position: relative; z-index: 2; }
.w-ecosystems { display: grid; gap: 16px; }
.w-ecosystems .w-sub { color: var(--night-muted); max-width: 64ch; }
.place-rows { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; grid-template-columns: minmax(0, 1fr); }
.place-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 2px 14px; align-items: center; padding: 12px 16px; border-radius: 16px; background: var(--night-step); }
.place-row a { font: 700 18px/1.15 var(--font-display); letter-spacing: -.01em; text-decoration: none; overflow-wrap: anywhere; }
.place-row a:hover { text-decoration: underline; text-decoration-thickness: 2px; }
.place-row .place-note { grid-column: 1; font-size: 13px; color: var(--night-muted); }
.place-row .place-count { grid-column: 2; grid-row: 1 / span 2; text-align: right; font: 800 28px/1 var(--font-display); }
.place-row .place-count small { display: block; font: 500 12px/1.3 var(--font-text); color: var(--night-muted); }
.place-row.planned .place-count { font-size: 15px; font-weight: 600; }
.w-tool { display: grid; gap: 12px; align-content: start; }
.w-tool form { display: grid; gap: 10px; }
.w-tool label { font-weight: 600; font-size: 15px; }
.w-tool input { width: 100%; min-height: 52px; border-radius: 16px; border: 0; padding: 0 16px; font: 500 16px/1 var(--font-text); background: var(--always-white); color: var(--always-ink); }
.w-tool input::placeholder { color: #5b5966; }
.w-lamp .button, .tool-result .button { background: var(--always-ink); color: var(--always-white); }
.w-tool .button { justify-self: start; }
.w-tool ul { list-style: none; margin: 4px 0 0; padding: 0; display: grid; gap: 2px; }
.w-tool li a { display: inline-flex; align-items: center; min-height: 40px; font-weight: 600; }
.w-guides { display: grid; gap: 16px; align-content: start; }
.guide-tiles { display: grid; gap: 14px; grid-template-columns: minmax(0, 1fr); }
.guide-tile { display: grid; gap: 10px; align-content: start; text-decoration: none; color: inherit; }
.guide-tile img { width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: cover; border-radius: var(--radius); display: block; }
.guide-tile b { font: 800 20px/1.12 var(--font-display); letter-spacing: -.02em; }
.guide-tile span { font-size: 15px; color: var(--muted); }
.guide-tile:hover b { text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: .15em; }
.w-method { display: grid; gap: 18px; }
.method-points { display: grid; gap: 18px; grid-template-columns: minmax(0, 1fr); }
.method-points h3 { margin-bottom: 6px; font-size: 20px; }
.method-points p { font-size: 15px; color: var(--muted); }
.w-heading-row { display: flex; flex-wrap: wrap; gap: 8px 20px; align-items: baseline; justify-content: space-between; }
.w-heading-row a { font-weight: 600; }

/* Sections on inner pages */
.section { margin-top: 56px; scroll-margin-top: 24px; }
.section > h2 { margin-bottom: 10px; }
.section-heading { display: block; margin-bottom: 24px; }
.section-index { display: none; }
.section-heading h2 { margin-bottom: 8px; }
.lede { max-width: 64ch; color: var(--muted); font-size: 17px; }
.intro { display: grid; gap: 18px; }
.scope { font-size: 19px; line-height: 1.5; max-width: 52ch; }
.breadcrumbs, .blog-breadcrumb, .people-breadcrumb { display: flex; flex-wrap: wrap; gap: 6px 10px; margin: 8px 0 18px; font-size: 14px; color: var(--muted); }
.breadcrumbs ol { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px 12px; }
.breadcrumbs li + li::before { content: '/'; margin-right: 12px; color: var(--muted); }
.breadcrumbs a, .blog-breadcrumb a, .people-breadcrumb a { color: var(--ink); }

/* Card grids become widget grids: no outlines, one fill, rotation by subject */
.ecosystems { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--gap); }
.ecosystem { padding: 28px; border-radius: 24px; background: var(--surface); display: flex; flex-direction: column; align-items: flex-start; gap: 14px; min-width: 0; }
.ecosystem.subject-ai { background: var(--moss); color: var(--moss-ink); --focus: var(--accent); }
.ecosystem.subject-ai .why, .ecosystem.subject-ai .status, .ecosystem.subject-ai .place-type { color: var(--moss-muted); }
.ecosystem.subject-ai a { color: inherit; }
.place-type { font-size: 14px; font-weight: 600; color: var(--muted); }
.title-link { font: 800 28px/1.08 var(--font-display); color: inherit; text-decoration: none; letter-spacing: -.03em; overflow-wrap: anywhere; }
.title-link:hover { text-decoration: underline; text-decoration-thickness: 2.5px; }
.ecosystem .why { font-size: 16px; color: var(--muted); }
.ecosystem .status { font-size: 14px; margin-top: auto; padding-top: 6px; color: var(--muted); }
.ecosystem .count-link { font-size: 15px; font-weight: 600; }
.platform-card { background: var(--heather); color: var(--heather-ink); }
.platform-card .why, .platform-card .status, .platform-card .place-type { color: var(--heather-ink); }
.platform-card a { color: inherit; }
.subject-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.topic-browse-link { margin-top: 20px; font-size: 15px; }

/* Collection and topic intros: a night widget beside a lamp widget */
.place-intro { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr); gap: var(--gap); align-items: stretch; }
.place-intro .intro { padding: 36px; border-radius: var(--radius-widget); background: var(--night); color: var(--night-ink); align-content: start; }
.place-intro .intro .eyebrow, .place-intro .intro .scope { color: var(--night-muted); }
.place-intro .intro .scope { color: var(--night-ink); }
.place-intro .intro .lede, .place-intro .intro .muted { color: var(--night-muted); }
.kind { font-size: 15px; font-weight: 600; color: var(--muted); }
.place-intro .intro .kind, .page > header.intro .kind, .tools-heading .kind { color: var(--night-muted); }
.figures { display: flex; flex-wrap: wrap; gap: 16px 40px; margin: 6px 0 0; padding: 0; }
.figures div { display: grid; gap: 2px; }
.figures dt { color: var(--night-muted); font-size: 14px; }
.figures dd { margin: 0; font: 800 34px/1.05 var(--font-display); letter-spacing: -.02em; }
.place-intro .intro .figures dd, .page > header.intro .figures dd { color: var(--accent); }
.route-links { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 8px; }
.route-links a { display: inline-flex; align-items: center; min-height: 44px; padding: 0 16px; border-radius: 999px; background: var(--soft); color: var(--ink); text-decoration: none; font-size: 15px; font-weight: 600; }
.route-links a:hover { background: var(--active); color: var(--active-ink); }
.place-intro .intro .route-links a { background: var(--night-step); color: var(--night-ink); }
.place-intro .intro .route-links a:hover { background: var(--accent); color: var(--accent-ink); }
.context-card { padding: 30px; border-radius: var(--radius-widget); background: var(--accent); color: var(--accent-ink); align-self: stretch; }
.context-card h2 { font-size: 26px; margin-bottom: 14px; }
.context-card p { font-size: 16px; color: var(--accent-ink); }
.context-card a { color: inherit; }
.context-card details { margin-top: 16px; font-size: 15px; }
.context-card summary { padding: 10px 0; cursor: pointer; font-weight: 700; min-height: 44px; }
.context-card ul { padding-left: 20px; }
.context-card li + li { margin-top: 10px; }
.context-card .topic-task-list { margin: 18px 0 0; padding: 0; list-style: none; }
.topic-task-list li + li { margin-top: 18px; }
.topic-task-list strong { display: block; font-size: 16px; margin-bottom: 4px; }
header.topic-intro { max-width: none; }
.topic-intro h1 { font-size: clamp(38px, 4.6vw, 62px); }
.topic-intro .scope { max-width: 58ch; }
/* Every page header is a night widget; the board starts with it. */
.page > header.intro { padding: 36px; border-radius: var(--radius-widget); background: var(--night); color: var(--night-ink); --focus: var(--accent); }
.page > header.intro a { color: inherit; }
.page > header.intro .scope { color: var(--night-ink); }
.page > header.intro .lede, .page > header.intro .muted, .page > header.intro .eyebrow, .page > header.intro .post, .page > header.intro .status, .page > header.intro small, .page > header.intro .post time, .page > header.intro dt { color: var(--night-muted); }
.page > header.intro .route-links a, .blog-intro .route-links a { background: var(--night-step); color: var(--night-ink); }
.page > header.intro .route-links a:hover, .blog-intro .route-links a:hover { background: var(--accent); color: var(--accent-ink); }
.page > header.intro .button { background: var(--accent); color: var(--accent-ink); }
.intro-copy { display: grid; gap: 18px; }
.topic-hero, .subject-hero { padding: 36px; border-radius: var(--radius-widget); background: var(--night); color: var(--night-ink); }
.topic-hero .scope, .subject-hero .scope { color: var(--night-ink); }
.topic-hero .eyebrow, .subject-hero .eyebrow { color: var(--night-muted); }

/* Rosters */
.roster { list-style: none; margin: 20px 0 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--gap); }
.person { border-radius: 24px; background: var(--surface); padding: 26px; display: grid; grid-template-columns: minmax(0, 1fr); gap: 14px; align-content: start; min-width: 0; }
.identity { display: grid; gap: 4px; align-content: start; }
.handle { font: 800 24px/1.12 var(--font-display); letter-spacing: -.025em; color: var(--ink); text-decoration: none; overflow-wrap: anywhere; }
.handle .at { color: var(--muted); }
.handle:hover { text-decoration: underline; text-decoration-thickness: 2px; }
.name { font-size: 15px; color: var(--muted); }
.topic { font-size: 14px; color: var(--muted); }
.topic-role { color: var(--ink); font-size: 14px; font-weight: 600; }
.about { display: grid; gap: 10px; align-content: start; }
.why { font-size: 16px; max-width: 60ch; }
.post, .evidence, .status { font-size: 14px; color: var(--muted); line-height: 1.55; }
.post time, .evidence time { color: var(--ink); }
.mark { background: var(--mark); color: var(--mark-ink); padding: 5px 12px; border-radius: 999px; font-size: 13px; font-weight: 700; display: inline-block; }
.topic-person .about { gap: 18px; }
.first-read { padding: 16px 18px; border-radius: var(--radius); background: var(--soft); }
.first-read-label { color: var(--muted); font-size: 14px; font-weight: 600; }
.first-read-label span { display: block; font-weight: 400; overflow-wrap: anywhere; }
.first-read .first-read-title { margin-top: 10px; font-size: 17px; font-weight: 600; overflow-wrap: anywhere; }
.first-read-note { font-size: 15px; }
.topic-roster-group { margin-top: 40px; scroll-margin-top: 24px; }
.topic-roster-group h3 { margin-bottom: 12px; font-size: 26px; }

/* Finder: one paper widget with pill filters */
.finder { display: flex; flex-wrap: wrap; gap: 20px; margin-top: 20px; align-items: flex-end; padding: 24px; background: var(--surface); border-radius: 24px; }
.search { display: grid; gap: 8px; flex: 1 1 260px; max-width: 420px; }
.search label { font-size: 15px; font-weight: 600; }
.search input, .people-finder input, .people-finder select, .tool-field input, .tool-field select, .tool-field textarea { font: inherit; width: 100%; min-width: 0; min-height: 50px; padding: 10px 16px; border: 2px solid var(--field-line); border-radius: 16px; background: var(--field); color: var(--ink); }
.search input::placeholder, .people-finder input::placeholder, .tool-field input::placeholder, .tool-field textarea::placeholder { color: var(--muted); }
.tool-field textarea { min-height: 200px; resize: vertical; line-height: 1.5; }
.filters { display: flex; flex: 1 1 320px; flex-wrap: wrap; gap: 8px; }
.filters a { color: var(--ink); text-decoration: none; font-size: 15px; font-weight: 600; display: inline-flex; align-items: center; padding: 0 16px; min-height: 44px; border-radius: 999px; background: var(--soft); }
.filters a:hover { background: var(--heather); color: var(--heather-ink); }
.filters a[aria-current="true"], .filters a.active { background: var(--active); color: var(--active-ink); }
.count { margin-top: 18px; color: var(--muted); font-size: 15px; }
.empty { color: var(--muted); margin-top: 24px; }
.aside { margin-top: 32px; }

/* Next steps: a night widget */
.next-steps { background: var(--night); color: var(--night-ink); border-radius: var(--radius-widget); padding: 32px; }
.next-steps .lede { color: var(--night-muted); }
.next-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--gap); margin-top: 24px; }
.next-step { padding: 22px; border-radius: 20px; background: var(--night-step); display: flex; flex-direction: column; align-items: flex-start; }
.next-step h3 { font-size: 21px; margin: 6px 0 10px; }
.next-step p { color: var(--night-muted); font-size: 15px; }
.next-step a { color: var(--accent); display: inline-flex; align-items: center; min-height: 44px; margin-top: auto; padding-top: 10px; font-size: 15px; font-weight: 600; }
.next-source { color: var(--night-muted); font-size: 14px; }
.edition-links { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 24px; }
.edition-links a { text-decoration: none; background: var(--surface); border-radius: 20px; padding: 12px 20px; font-size: 16px; font-weight: 600; color: var(--ink); }
.edition-links a:hover { background: var(--heather); color: var(--heather-ink); }
.edition-links a[aria-current] { background: var(--active); color: var(--active-ink); }
.edition-links span { display: block; font-size: 13px; font-weight: 400; opacity: .85; }

/* Reading routes */
.learning-panel { padding: 32px; border-radius: var(--radius-widget); background: var(--heather); color: var(--heather-ink); display: grid; grid-template-columns: 1.15fr 1fr; gap: 32px; align-items: center; }
.learning-panel img { width: 100%; height: auto; display: block; border-radius: var(--radius); }
.learning-panel h2 { margin-bottom: 14px; }
.learning-panel p { font-size: 17px; }
.learning-panel a:not(.button) { color: inherit; }
.learning-panel .button { margin-top: 20px; }
.reading-grid { margin-top: 20px; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--gap); }
.reading-step { padding: 26px; background: var(--surface); border-radius: 24px; display: flex; flex-direction: column; align-items: flex-start; }
.reading-step:nth-child(3n+2) { background: var(--heather); color: var(--heather-ink); }
.reading-step:nth-child(3n+2) p, .reading-step:nth-child(3n+2) .step-label { color: var(--heather-ink); }
.reading-step:nth-child(3n+2) a { color: inherit; }
.reading-step h3 { margin: 6px 0 10px; }
.reading-step p { font-size: 16px; color: var(--muted); }
.reading-step a { display: inline-flex; align-items: center; min-height: 44px; margin-top: auto; padding-top: 10px; font-size: 15px; font-weight: 600; }
.step-label { font-size: 14px; color: var(--muted); }
.explain { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; margin-top: 20px; }
.explain h3 { margin-bottom: 10px; }
.explain p { font-size: 16px; color: var(--muted); }

/* Blog */
.blog-intro { padding: 36px; margin-top: 0; border-radius: var(--radius-widget); background: var(--night); color: var(--night-ink); --focus: var(--accent); }
.blog-intro h1 { font-size: clamp(44px, 5.4vw, 76px); }
.blog-intro .scope { margin-top: 18px; color: var(--night-ink); }
.blog-intro a { color: inherit; }
.article-list { list-style: none; padding: 0; margin: 20px 0 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--gap); }
.article-list-row { background: var(--surface); border-radius: 24px; overflow: hidden; display: flex; flex-direction: column; padding: 10px; }
.article-list-row .blog-cover { border-radius: var(--radius); }
.article-list-copy { padding: 16px 14px 14px; min-width: 0; display: flex; flex-direction: column; flex: 1; gap: 10px; }
.article-list h3 { font-size: 21px; line-height: 1.2; }
.article-list h3 a { color: var(--ink); text-decoration: none; }
.article-list h3 a:hover { text-decoration: underline; text-decoration-thickness: 2px; }
.article-list p { font-size: 15px; color: var(--muted); margin: 0; }
.article-list .post { font-size: 13px; margin-top: auto; padding-top: 6px; }
.blog-cover { display: block; width: 100%; height: auto; aspect-ratio: 16/9; object-fit: cover; }
.blog-cover-hero { margin-top: 28px; border-radius: var(--radius); }
.article-shell { display: grid; grid-template-columns: minmax(0, 860px) minmax(0, 300px); gap: var(--gap); justify-content: space-between; align-items: start; }
.article { min-width: 0; max-width: 860px; padding: 48px 56px; border-radius: var(--radius-widget); background: var(--surface); }
.article h1 { font-size: clamp(36px, 4.2vw, 54px); line-height: 1.02; }
.article-body { margin-top: 32px; overflow-wrap: anywhere; font-size: 18px; line-height: 1.72; }
.article-body > * + * { margin-top: 20px; }
.article-body h2 { margin-top: 48px; font-size: 32px; line-height: 1.1; scroll-margin-top: 24px; }
.article-body h3 { margin-top: 32px; font-size: 23px; line-height: 1.2; }
.article-body ul, .article-body ol { padding-left: 24px; }
.article-body li + li { margin-top: 12px; }
.article-body table { width: 100%; table-layout: fixed; border-collapse: collapse; font-size: 15px; line-height: 1.55; hyphens: auto; }
.article-body th, .article-body td { padding: 14px 12px; text-align: left; vertical-align: top; border-bottom: 1px solid var(--rule); }
.article-body th { background: var(--soft); }
.article-body blockquote { margin-left: 0; margin-right: 0; padding: 18px 24px; border-radius: var(--radius); background: var(--mark); color: var(--mark-ink); }
.article-body pre { max-width: 100%; overflow-x: auto; padding: 16px; border-radius: var(--radius-sm); background: var(--soft); font-size: 14px; line-height: 1.6; }
.article-body .character-callout { display: grid; grid-template-columns: 140px minmax(0, 1fr); align-items: start; gap: 24px; margin: 40px 0; }
.character-callout__image { display: block; width: 140px; height: 210px; object-fit: contain; }
.character-callout__bubble { position: relative; min-width: 0; margin-top: 20px; padding: 20px 24px; border: 2px solid var(--speech-rule); border-radius: 22px; background: var(--speech-paper); color: var(--speech-ink); font-size: 17px; line-height: 1.6; }
.character-callout__bubble::before { content: ""; position: absolute; top: 24px; left: -10px; width: 16px; height: 16px; border-left: 2px solid var(--speech-rule); border-bottom: 2px solid var(--speech-rule); background: var(--speech-paper); transform: rotate(45deg); }
.article-body .character-callout--right { grid-template-columns: minmax(0, 1fr) 140px; }
.character-callout--right .character-callout__image { grid-column: 2; grid-row: 1; }
.character-callout--left[data-facing="left"] .character-callout__image,
.character-callout--right[data-facing="right"] .character-callout__image { transform: scaleX(-1); }
.character-callout--right .character-callout__bubble { grid-column: 1; grid-row: 1; }
.character-callout--right .character-callout__bubble::before { left: auto; right: -10px; transform: rotate(225deg); }
@media (max-width: 600px) {
  .article-body .character-callout { grid-template-columns: 100px minmax(0, 1fr); gap: 16px; margin: 32px 0; }
  .character-callout__image { width: 100px; height: 150px; }
  .character-callout__bubble { margin-top: 8px; padding: 14px 16px; font-size: 16px; }
  .article-body .character-callout--right { grid-template-columns: minmax(0, 1fr) 100px; }
}
@media (max-width: 359px) {
  .article-body .character-callout, .article-body .character-callout--right { grid-template-columns: 72px minmax(0, 1fr); gap: 12px; }
  .character-callout__image { width: 72px; height: 108px; }
  .character-callout--right .character-callout__image { grid-column: 1; }
  .character-callout[data-facing="right"] .character-callout__image { transform: none; }
  .character-callout[data-facing="left"] .character-callout__image { transform: scaleX(-1); }
  .character-callout--right .character-callout__bubble { grid-column: 2; }
  .character-callout--right .character-callout__bubble::before { left: -10px; right: auto; transform: rotate(45deg); }
}
.article-sidebar { display: grid; gap: var(--gap); top: 24px; font-size: 15px; }
.article-sidebar.sidebar-fits { position: sticky; }
.mobile-toc { display: none; }
.article-sidebar h2 { font-size: 20px; margin-bottom: 14px; }
.article-sidebar ol { list-style: none; padding: 0; margin: 0; display: grid; gap: 10px; }
.article-toc { padding: 24px; border-radius: 24px; background: var(--surface); }
.article-toc a { color: var(--muted); text-decoration: none; }
.article-toc a:hover { color: var(--ink); text-decoration: underline; }
.article-sidebar-block { padding: 24px; border-radius: 24px; background: var(--heather); color: var(--heather-ink); }
.article-sidebar-block p { color: var(--heather-ink); font-size: 14px; }
.article-sidebar-block a { color: inherit; }
.article-sidebar-block .route-links { display: grid; list-style: none; padding: 0; gap: 12px; }
.article-sidebar-block .route-links a { background: rgba(255, 255, 255, .55); color: var(--heather-ink); }
.article-body .money-trail, .article-body .term-finder, .article-body .process-flow { padding: 28px; border-radius: 24px; background: var(--soft); }

/* Footer: a deep widget at the end of the board, no oversized wordmark */
footer.site { margin-top: 56px; }
footer.site .inner { padding-bottom: 20px; }
.footer-panel { background: var(--deep); color: var(--deep-ink); border-radius: var(--radius-widget); padding: 34px 32px 26px; display: grid; gap: 28px; }
.footer-brand p { color: var(--deep-ink); font-size: 18px; line-height: 1.45; max-width: 52ch; }
.footer-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 32px; }
.footer-column { display: flex; flex-direction: column; align-items: flex-start; gap: 2px; min-width: 0; }
.footer-column h2 { font: 600 15px/1.3 var(--font-text); letter-spacing: 0; color: var(--accent); margin-bottom: 8px; }
.footer-column a { display: flex; align-items: center; min-height: 40px; max-width: 100%; color: var(--deep-ink); font-size: 15px; text-decoration: none; }
.footer-column a:hover { color: var(--accent); text-decoration: underline; }
.footer-utility { display: flex; flex-wrap: wrap; gap: 8px; }
.footer-utility a { display: inline-flex; align-items: center; min-height: 44px; padding: 0 18px; border-radius: 999px; background: rgba(255, 255, 255, .1); color: var(--deep-ink); font-size: 15px; text-decoration: none; }
.footer-utility a:hover { background: var(--accent); color: var(--accent-ink); }
.footer-bottom { color: var(--deep-muted); font-size: 14px; }

/* Reader tools */
.reader-tools { min-width: 0; }
.tools-hero { margin: 0; padding: 40px; background: var(--night); color: var(--night-ink); border-radius: var(--radius-widget); }
.tools-hero h1 { margin-bottom: 18px; }
.tools-hero > p { font-size: 20px; max-width: 48ch; }
.tools-hero a { display: inline-flex; align-items: center; min-height: 44px; margin-top: 18px; color: var(--accent); font-weight: 600; }
.tools-section { margin: 48px 0; }
.tools-section > h2 { margin-bottom: 18px; }
.tools-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--gap); }
.tool-card { border-radius: 24px; padding: 26px; background: var(--surface); display: flex; flex-direction: column; align-items: flex-start; gap: 14px; min-width: 0; }
.tool-card:nth-child(2) { background: var(--accent); color: var(--accent-ink); }
.tool-card:nth-child(2) a { color: inherit; }
.tool-card .subject-note { font-size: 14px; font-weight: 600; color: inherit; opacity: .8; }
.tool-card h3 { font-size: 26px; }
.tool-card h3 a { color: inherit; text-decoration: none; }
.tool-card h3 a:hover { text-decoration: underline; text-decoration-thickness: 2px; }
.tool-open { margin-top: auto; min-height: 44px; display: inline-flex; align-items: center; gap: 8px; font-weight: 600; }
.tools-heading { margin: 0 0 var(--gap); padding: 36px; max-width: none; border-radius: var(--radius-widget); background: var(--night); color: var(--night-ink); --focus: var(--accent); }
.tools-heading h1 { margin-bottom: 18px; }
.tools-heading > p { font-size: 19px; color: var(--night-ink); }
.tools-heading a { color: inherit; }
.tool-workspace { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: var(--gap); align-items: start; }
.tool-panel { border-radius: 24px; padding: 28px; min-width: 0; background: var(--surface); }
.tool-panel h2 { font-size: 28px; margin-bottom: 22px; }
.tool-form { display: grid; gap: 20px; }
.tool-field { display: grid; gap: 8px; min-width: 0; }
.tool-field label { font-weight: 650; }
.tool-field input[aria-invalid=true], .tool-field select[aria-invalid=true] { border-color: #b3261e; }
.tool-fieldset { display: grid; gap: 16px; min-width: 0; margin: 0; padding: 0 0 20px; border: 0; border-bottom: 1px solid var(--rule); }
.tool-fieldset:last-of-type { padding-bottom: 0; border-bottom: 0; }
.tool-fieldset legend { padding: 0; margin-bottom: 4px; font: 800 19px/1.2 var(--font-display); }
.tool-noscript { font-weight: 600; }
.tool-table-wrap { overflow-x: auto; }
.tool-price-table { min-width: 640px; }
.tool-price-table th span { display: block; font-weight: 400; }
.tool-price-table td { font-variant-numeric: tabular-nums; white-space: nowrap; }
.tool-result h3 { font-size: 19px; margin: 8px 0 0; }
.tool-result .practice-table th, .tool-result .practice-table td { border-bottom-color: rgba(29, 21, 5, .25); }
.tool-error { font-size: 15px; font-weight: 600; }
.tool-value-pair { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 16px; }
.tool-actions { display: flex; align-items: center; gap: 20px; flex-wrap: wrap; }
.tool-actions a { display: inline-flex; align-items: center; min-height: 44px; }
.tool-actions .button { background: var(--accent); color: var(--accent-ink); }
.tool-examples { margin-top: 26px; padding: 18px 20px; border-radius: var(--radius); background: var(--soft); }
.tool-examples h3 { font-size: 19px; margin-bottom: 8px; }
.tool-example { display: flex; align-items: center; min-height: 44px; width: fit-content; max-width: 100%; overflow-wrap: anywhere; }
.tool-result { background: var(--accent); color: var(--accent-ink); }
.tool-result a { color: inherit; }
.tool-result .eyebrow { color: var(--accent-ink); }
.tool-result > p, .tool-result > .button { margin-bottom: 16px; }
.tool-result .button { background: var(--always-ink); color: var(--always-white); }
.tool-result .tool-result-number { font: 800 clamp(28px, 3vw, 44px)/1.15 var(--font-display); overflow-wrap: anywhere; }
.tool-facts { margin: 0 0 24px; }
.tool-facts dt { font-size: 14px; opacity: .8; margin-top: 16px; }
.tool-facts dd { margin: 4px 0 0; overflow-wrap: anywhere; }
.tool-code { font-family: ui-monospace, monospace; font-size: 15px; }
.tool-formula { padding: 12px 16px; border-radius: var(--radius-sm); background: rgba(255, 255, 255, .5); overflow-wrap: anywhere; }
.tool-steps { display: grid; gap: 22px; max-width: 78ch; padding-left: 26px; }
.tool-steps li { padding-left: 8px; }
.tool-steps li::marker { font-weight: 800; }
.tool-steps h3 { margin-bottom: 8px; }
.tool-network-steps { font-size: 15px; margin-top: 24px; }
.tool-network-steps h3 { font-size: 19px; }
.practice-material { padding: 28px; margin: 22px 0; background: var(--surface); border-radius: 24px; max-width: 78ch; }
.practice-material blockquote { margin: 0 0 16px; font: 750 25px/1.3 var(--font-display); letter-spacing: -.02em; }
.practice-material h3 { margin: 24px 0 12px; }
.practice-table { width: 100%; margin: 22px 0; border-collapse: collapse; font-size: 15px; }
.practice-table caption { text-align: left; margin-bottom: 8px; color: var(--muted); }
.practice-table th, .practice-table td { padding: 12px 0; border-bottom: 1px solid var(--rule); text-align: left; vertical-align: top; }
.practice-table tbody th { font-weight: 400; padding-right: 20px; }
.practice-table td { font-weight: 700; }
.tools-example-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: var(--gap); }
.tools-example-grid .practice-material { margin: 0; min-width: 0; }
.tool-reading, .tool-limits { max-width: 78ch; padding-left: 24px; }
.tool-reading li, .tool-limits li { margin-bottom: 14px; }
.tool-reading a { display: inline-flex; align-items: center; min-height: 44px; }

/* Blog widgets: an evidence diagram, a glossary finder and a documented sequence */
.article-body .money-trail { margin: 48px 0; }
.money-trail h3 { margin: 0; font-size: 22px; line-height: 1.2; }
.money-trail-intro { margin-top: 8px; color: var(--muted); font-size: 15px; }
.money-trail-map { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); margin: 32px 0 24px; }
.money-trail-part { padding: 0 12px; text-align: center; }
.money-trail-stage { color: var(--muted); font-size: 14px; }
.money-trail-part .money-trail-funds { margin-top: 4px; font: 800 22px/1.2 var(--font-display); }
.money-trail-connector { grid-column: 1 / -1; display: block; width: 100%; height: 48px; margin-top: 16px; color: var(--muted); overflow: visible; }
.money-trail-connector path { fill: none; stroke: currentColor; stroke-width: 1.5; vector-effect: non-scaling-stroke; }
.money-trail-address { grid-column: 1 / -1; text-align: center; }
.money-trail-key { display: inline-block; padding: 6px 14px; border-radius: 999px; background: var(--accent); color: var(--accent-ink); font: 800 24px/1.2 var(--font-display); }
.money-trail-address p + p { margin-top: 8px; font-size: 15px; color: var(--muted); }
.money-trail-finding { font-size: 16px; }
.money-trail-finding strong { display: block; margin-bottom: 4px; }
.money-trail-explanation { margin-top: 12px; font-size: 16px; }
.money-trail-explanation summary { padding: 12px 0; cursor: pointer; font-weight: 600; }
.money-trail-explanation p { margin: 0 0 12px; }
.money-trail figcaption { margin-top: 16px; font-size: 15px; color: var(--muted); }
@media (max-width: 520px) {
  .money-trail-map { grid-template-columns: 1fr; gap: 24px; }
  .money-trail-part { padding: 0; text-align: left; }
  .money-trail-connector { display: none; }
  .money-trail-address { text-align: left; }
  .money-trail-key { font-size: 20px; }
}
.article-body .term-finder { margin: 48px 0; }
.article-body .term-finder > h2 { margin: 0 0 22px; }
.term-finder [hidden] { display: none !important; }
.term-finder-controls { display: flex; align-items: end; flex-wrap: wrap; gap: 12px 16px; }
.term-finder-hint, .term-finder-count { flex-basis: 100%; font-size: 15px; color: var(--muted); }
.term-finder-index { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 22px; }
.term-finder-index a { display: inline-flex; align-items: center; min-height: 40px; padding: 0 14px; border-radius: 999px; background: var(--surface); text-decoration: none; font-weight: 600; }
.term-finder-empty { margin-top: 22px; }
.article-body .term-finder h3 { font-size: 22px; margin: 32px 0 8px; }
.term-finder-list { margin: 0; }
.term-finder-entry { padding: 22px 0; border-bottom: 1px solid var(--rule); scroll-margin-top: 24px; }
.term-finder-entry dt { font: 800 20px/1.25 var(--font-display); }
.term-finder-entry dd { margin: 8px 0 0; }
.term-finder-entry dd p + p { margin-top: 12px; }
.term-finder h3 { scroll-margin-top: 24px; }
.article-body .process-flow { margin: 48px 0; }
.article-body .process-flow h3 { margin: 0; font-size: 22px; line-height: 1.2; }
.process-flow-scope { margin-top: 8px; color: var(--muted); font-size: 15px; }
.article-body .process-flow-stages { display: flex; gap: 32px; list-style: none; margin: 24px 0; padding: 0; }
.article-body .process-flow-stage { position: relative; flex: 1 1 0; min-width: 0; margin: 0; }
.process-flow-number { color: var(--muted); font-size: 14px; }
.process-flow-title { margin-top: 8px; line-height: 1.3; }
.process-flow-title strong { font-weight: 700; }
.process-flow-text { margin-top: 8px; font-size: 16px; }
.process-flow-condition { margin-top: 12px; font-size: 15px; }
.process-flow-condition strong { display: block; margin-bottom: 4px; }
.process-flow-connector { position: absolute; display: block; top: 10px; left: calc(100% + 8px); width: 16px; height: 0; border-top: 2px solid var(--muted); }
.process-flow-conclusion { font-weight: 600; }
.process-flow figcaption { margin-top: 16px; color: var(--muted); font-size: 15px; }
.article-body .process-flow-sources { list-style: none; margin: 8px 0 0; padding: 0; }
.article-body .process-flow-sources li + li { margin-top: 4px; }
.article-body .process-flow-long .process-flow-stages { display: block; }
.article-body .process-flow-long .process-flow-stage + .process-flow-stage { margin-top: 48px; }
.process-flow-long .process-flow-connector { top: calc(100% + 8px); left: 8px; width: 0; height: 32px; border-top: 0; border-left: 2px solid var(--muted); }
@media (max-width: 620px) {
  .article-body .process-flow-stages { display: block; }
  .article-body .process-flow-stage + .process-flow-stage { margin-top: 48px; }
  .process-flow-connector { top: calc(100% + 8px); left: 8px; width: 0; height: 32px; border-top: 0; border-left: 2px solid var(--muted); }
}

/* Canonical people profiles and original-work directory */
.people-card-identity { display: flex; align-items: center; gap: 16px; }
.people-handle { color: var(--muted); overflow-wrap: anywhere; }
.people-role { font-size: 16px; font-weight: 600; margin: 4px 0 0; }
.work-meta { font-size: 14px; color: var(--muted); margin: 0 0 8px; }
.people-works, .people-projects { list-style: none; padding: 0; margin: 20px 0 0; }
.people-works li { padding: 22px 24px; margin-top: 10px; border-radius: 22px; background: var(--soft); }
.people-works h3, .people-projects h3 { font-size: 22px; line-height: 1.25; margin: 6px 0 10px; overflow-wrap: anywhere; }
.people-works .eyebrow { margin: 0; }
.people-projects li { margin: 22px 0; }
.reading-map-entries { max-width: 860px; }
.reading-map-entries p { max-width: 68ch; }
.reading-map-entries details, .research-references details { margin-top: 12px; padding: 12px 20px; border-radius: 20px; background: var(--surface); }
.reading-map-entries summary, .research-references summary { min-height: 44px; display: flex; align-items: center; gap: 12px; cursor: pointer; font-weight: 600; overflow-wrap: anywhere; }
.reading-map-entries summary::before, .research-references summary::before { content: '+'; flex-shrink: 0; font-size: 20px; font-weight: 800; }
.reading-map-entries details[open] > summary::before, .research-references details[open] > summary::before { content: '−'; }
.reading-map-entries details p, .research-references details p { margin-top: 12px; }
.reading-map-entries a, .research-references a { overflow-wrap: anywhere; }
.reading-map-entries ul li { border: 0; padding: 4px 0; }
.research-references { max-width: 860px; }
.research-references ul { padding-left: 20px; margin-top: 16px; }
.research-references li + li { margin-top: 12px; }
.people-vote-row { display: flex; align-items: center; flex-wrap: wrap; gap: 32px; margin: 24px 0; }
.people-score { font: 800 72px/1 var(--font-display); letter-spacing: -.04em; }
.people-vote-buttons { display: flex; gap: 10px; }
.people-vote-buttons button, .people-search-button { border: 0; border-radius: 999px; min-height: 50px; padding: 0 22px; background: var(--surface); color: var(--ink); font: 600 16px/1 var(--font-text); cursor: pointer; transition: transform 120ms; }
.people-vote-buttons button:disabled { opacity: .6; cursor: default; }
.people-vote-buttons button:hover:enabled { transform: translateY(-1px); background: var(--accent); color: var(--accent-ink); }
.people-search-button { background: var(--accent); color: var(--accent-ink); }
.people-search-button:hover { transform: translateY(-1px); }
.people-finder { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, 160px) minmax(0, 230px) auto; align-items: end; gap: 16px; margin: 20px 0; padding: 24px; border-radius: 24px; background: var(--surface); }
.people-finder label { display: block; font-size: 15px; font-weight: 600; margin-bottom: 8px; }
.people-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--gap); padding: 0; list-style: none; }
.people-card { padding: 26px; border-radius: 24px; background: var(--surface); display: flex; flex-direction: column; align-items: flex-start; gap: 6px; }
.people-card-identity { gap: 16px; }
.people-card-identity img { border-radius: 50%; object-fit: cover; flex-shrink: 0; }
.people-card h3 { margin: 0; font-size: 25px; overflow-wrap: anywhere; }
.people-card h3 a { color: var(--ink); text-decoration: none; }
.people-card h3 a:hover { text-decoration: underline; text-decoration-thickness: 2px; }
.people-card .people-role { font-size: 15px; font-weight: 600; margin: 2px 0 0; }
.people-card .eyebrow, .people-card .people-handle { margin: 0; }
.people-card > p { flex: 1; margin-top: 4px; }
.people-work-link { display: inline-flex; align-items: center; min-height: 44px; font-weight: 600; }
.people-result-count { color: var(--muted); font-size: 15px; }
.people-sources { font-size: 16px; }
.people-sources li { margin: 12px 0; overflow-wrap: anywhere; }
.people-card h3 a { display: inline-flex; align-items: center; min-height: 44px; }

/* Reading subjects are shared across people, selections and field notes */
.subject-labels { display: flex; flex-wrap: wrap; gap: 6px; margin: 6px 0; font-size: 14px; }
.subject-labels a { display: inline-flex; align-items: center; min-height: 36px; padding: 0 14px; border-radius: 999px; background: var(--soft); color: var(--ink); text-decoration: none; font-weight: 600; }
.subject-labels a:hover { background: var(--active); color: var(--active-ink); }
.subject-filters { margin: 20px 0; }

/* Linked wallets reuse profile surfaces */
.people-wallets { display: grid; gap: 10px; padding: 0; list-style: none; }
.people-wallets li { min-width: 0; padding: 20px 22px; border-radius: 22px; background: var(--soft); }
.people-wallet-network { display: block; font-weight: 700; margin-bottom: 10px; }
.people-wallets code { display: block; overflow-wrap: anywhere; font-size: .86rem; line-height: 1.7; }
.people-wallets .people-work-link { margin-top: 12px; }
.people-token-group { margin-top: 22px; border-radius: 22px; background: var(--soft); overflow: hidden; }
.people-token-wallet { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; padding: 16px 20px; background: var(--heather); color: var(--heather-ink); }
.people-token-wallet a { font-size: .86rem; color: inherit; }
.people-token-list { list-style: none; padding: 0; margin: 0; }
.people-token-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 16px; padding: 20px; }
.people-token-row + .people-token-row { border-top: 1px solid var(--rule); }
.people-token-identity { min-width: 0; }
.people-token-name { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; min-height: 44px; overflow-wrap: anywhere; color: var(--ink); font-weight: 600; }
.people-token-symbol { border-radius: 999px; padding: 3px 9px; color: var(--ink); background: var(--surface); font-size: .75rem; font-weight: 700; }
.people-token-balance { color: var(--muted); font-size: .85rem; margin: 8px 0; overflow-wrap: anywhere; }
.people-token-balance span { color: var(--ink); font-variant-numeric: tabular-nums; }
.people-token-date { display: block; color: var(--muted); font-size: .8rem; }
.people-token-share { text-align: right; display: flex; flex-direction: column; align-items: flex-end; justify-content: center; }
.people-token-share > span { color: var(--muted); font-size: .8rem; }
.people-token-share > strong { font: 800 1.4rem/1.1 var(--font-display); font-variant-numeric: tabular-nums; }
.people-token-share > a { display: flex; align-items: center; min-height: 44px; font-size: .85rem; gap: 5px; }

/* Profile board: night hero, lamp rating, heather reason to read, paper work, moss routes */
.profile-hero { display: flex; flex-direction: column; gap: 22px; overflow: hidden; }
.w.profile-hero { padding: 28px 22px 0; }
.profile-hero .character { display: block; width: 44%; max-width: 220px; margin: -12px -4px 0 auto; transform: scaleX(-1); }
.profile-identity { position: relative; z-index: 1; display: flex; align-items: center; gap: 20px; min-width: 0; }
.profile-avatar { width: 104px; height: 104px; border-radius: 50%; object-fit: cover; flex-shrink: 0; background: var(--night-step); }
.profile-name { min-width: 0; }
.profile-hero h1 { font-size: clamp(40px, 5.8vw, 84px); line-height: .92; letter-spacing: -.045em; overflow-wrap: anywhere; }
.profile-hero h1.name-long { font-size: clamp(34px, 4.4vw, 64px); }
.profile-hero h1.name-longer { font-size: clamp(28px, 3.4vw, 48px); }
.profile-role { margin-top: 12px; font-size: 17px; font-weight: 600; color: var(--night-muted); }
.profile-summary { font-size: 20px; line-height: 1.45; max-width: 42ch; }
.profile-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 14px; }
.profile-actions .button { overflow-wrap: anywhere; }
.profile-actions .subject-labels { margin: 0; }
.w-night .subject-labels a, .profile-sections a { background: var(--night-step); color: var(--night-ink); }
.w-night .subject-labels a:hover, .profile-sections a:hover { background: var(--accent); color: var(--accent-ink); }
.profile-sections { position: relative; z-index: 1; display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.profile-sections a { display: inline-flex; align-items: center; min-height: 40px; padding: 0 14px; border-radius: 999px; font-size: 14px; font-weight: 600; text-decoration: none; }
.profile-rating { display: flex; flex-direction: column; gap: 4px; }
.profile-rating form { margin-top: auto; }
.profile-rating .people-vote-row { flex-direction: column; align-items: flex-start; margin: 8px 0 12px; gap: 16px; }
.profile-rating .people-score { font-size: clamp(88px, 10vw, 156px); line-height: .82; }
.profile-rating .people-vote-buttons button { background: var(--always-ink); color: var(--always-white); }
.profile-rating .people-vote-buttons button:hover:enabled { background: var(--always-white); color: var(--always-ink); }
.profile-rating .post, .profile-rating .post time { font-size: 15px; color: var(--accent-ink); }
.profile-why { display: grid; gap: 14px; align-content: start; }
.profile-why p { font-size: 18px; line-height: 1.55; }
.profile-works, .profile-projects, .profile-sources, .profile-explore, .profile-wallets { display: grid; gap: 18px; align-content: start; }
/* Optional widgets share the rows below the board and grow to fill them, so a missing one leaves no hole. */
.profile-more { display: flex; flex-wrap: wrap; gap: var(--gap); margin-top: var(--gap); }
.profile-more > .w { flex: 1 1 420px; }
.profile-more > .profile-explore { flex-basis: 320px; }
.profile-sources .source-rows { grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr)); }
.work-tiles { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); }
.work-tile { display: grid; gap: 10px; align-content: start; min-width: 0; padding: 22px 24px; border-radius: 22px; background: var(--soft); }
.work-tile:first-child { background: var(--mark); color: var(--mark-ink); }
.work-tile:first-child .work-meta, .work-tile:first-child .cite .post { color: var(--mark-ink); }
.work-tile .work-meta { margin: 0; }
.work-tile h3 { font-size: 25px; line-height: 1.1; overflow-wrap: anywhere; }
.work-tile h3 a { color: inherit; text-decoration: none; }
.work-tile h3 a:hover { text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: .15em; }
.work-tile .route-links { margin: 0; }
.work-tile .route-links a { background: var(--surface); }
.cite summary { display: inline-flex; align-items: center; min-height: 40px; cursor: pointer; font-size: 14px; font-weight: 600; }
.cite .post { margin-top: 6px; font-size: 14px; color: var(--muted); overflow-wrap: anywhere; }
.explore-group { display: grid; gap: 10px; }
.explore-group h3 { font-size: 20px; }
.explore-pills { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px; }
.explore-pills a { display: inline-flex; align-items: center; min-height: 40px; padding: 0 14px; border-radius: 999px; background: var(--moss-step); text-decoration: none; font-size: 15px; font-weight: 600; }
.explore-pills a:hover { background: var(--accent); color: var(--accent-ink); }
.explore-rows { list-style: none; margin: 0; padding: 0; display: grid; }
.explore-rows a { display: flex; align-items: center; min-height: 44px; font-weight: 600; }
.explore-people { list-style: none; margin: 0; padding: 0; display: grid; gap: 2px; }
.explore-people a { display: flex; gap: 12px; align-items: center; margin: 0 -10px; padding: 8px 10px; border-radius: 18px; text-decoration: none; }
.explore-people a:hover { background: var(--moss-step); }
.explore-people img { width: 48px; height: 48px; flex-shrink: 0; border-radius: 50%; object-fit: cover; }
.explore-people span { display: grid; min-width: 0; }
.explore-people b { font: 800 18px/1.15 var(--font-display); letter-spacing: -.01em; }
.explore-people small { font-size: 14px; color: var(--moss-muted); }
.project-rows, .source-rows { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.project-rows li { padding: 18px 22px; border-radius: 20px; background: var(--soft); }
.project-rows h3 { margin-bottom: 6px; }
.profile-wallets > div { display: grid; gap: 12px; }
.profile-wallets > div > p { color: var(--night-muted); }
.profile-wallets .people-wallets li, .profile-wallets .people-token-group { margin: 0; background: var(--night-step); color: var(--night-ink); }
.profile-wallets .people-token-name, .profile-wallets .people-token-balance span { color: var(--night-ink); }
.profile-wallets .people-token-balance, .profile-wallets .people-token-date, .profile-wallets .people-token-share > span { color: var(--night-muted); }
.profile-wallets .people-token-symbol { background: var(--accent); color: var(--accent-ink); }
.profile-wallets .people-token-share > strong { font-size: 2.4rem; color: var(--accent); }
.profile-wallets .people-token-row + .people-token-row { border-top-color: var(--night-step); }
.profile-sources > .post { font-size: 15px; color: var(--muted); }
.source-rows li { display: grid; gap: 2px; padding: 14px 18px; border-radius: 18px; background: var(--soft); overflow-wrap: anywhere; }
.source-rows a:first-child { font-weight: 600; }
.source-permalink { font-size: 14px; color: var(--muted); }
.profile-sources .route-links { margin-top: 0; }

/* Article board: night hero beside its cover, the text on one paper widget, lamp contents */
.article-hero { display: grid; gap: 20px; align-content: start; padding: 30px 24px; }
.article-hero h1 { font-size: clamp(38px, 5vw, 74px); line-height: .96; letter-spacing: -.04em; }
.article-standfirst { font-size: 20px; line-height: 1.45; max-width: 46ch; }
.article-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 16px; }
.article-meta .subject-labels { margin: 0; }
.article-meta .post { font-size: 15px; color: var(--night-muted); }
.article-meta .post time { color: var(--night-ink); }
.w.article-cover { margin: 0; padding: 0; overflow: hidden; background: var(--night); }
.article-cover .blog-cover { width: 100%; height: 100%; margin: 0; border-radius: 0; object-fit: cover; }
.article-text { padding: 28px 22px; }
.article-board .article-body { margin-top: 0; }
.article-board .mobile-toc { margin: 0 0 28px; }
.article-board .article-sidebar { align-self: start; gap: var(--gap); padding-top: 0; font-size: 16px; }
.article-board .article-toc { padding: 26px; border-left: 0; background: var(--accent); color: var(--accent-ink); }
.article-board .article-toc h2, .article-explore h2 { font-size: 24px; margin-bottom: 12px; }
.article-board .article-toc ol { gap: 0; }
.article-board .article-toc a { display: block; padding: 8px 0; color: var(--accent-ink); font-weight: 600; line-height: 1.3; text-decoration: none; }
.article-board .article-toc a:hover { color: var(--accent-ink); text-decoration: underline; text-decoration-thickness: 2px; }
.article-explore { display: grid; gap: 12px; }
.article-explore p { font-size: 15px; }
.article-explore .route-links { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.article-explore .route-links a { background: var(--always-white); color: var(--always-ink); }
.article-explore .route-links a:hover { background: var(--always-ink); color: var(--always-white); }
.article-more { margin-top: var(--gap); }
/* Below the desktop board the contents open from the top of the text instead of a sidebar. */
@media (max-width: 1099px) {
  .article-board .article-toc { display: none; }
  .article-board .mobile-toc { display: block; padding: 12px 20px; border-radius: var(--radius-sm); background: var(--soft); font-size: 15px; }
  .article-board .mobile-toc summary { min-height: 44px; display: flex; align-items: center; gap: 10px; cursor: pointer; font-weight: 600; }
  .article-board .mobile-toc summary::after { content: '+'; margin-left: auto; }
  .article-board .mobile-toc[open] summary::after { content: '-'; }
  .article-board .mobile-toc ol { padding-left: 20px; }
  .article-board .mobile-toc li + li { margin-top: 12px; }
}
.article-more .w-guides { grid-column: 1 / -1; }

/* Board layout from tablet up */
@media (min-width: 700px) {
  :root { --gutter: 24px; }
  .board { grid-template-columns: repeat(6, minmax(0, 1fr)); }
  .w-hero, .w-feature, .w-ecosystems, .w-tool, .w-guides, .w-method { grid-column: span 6; }
  .w-cover, .w-today, .w-crypto, .w-ai { grid-column: span 3; }
  .w-hero { display: grid; grid-template-columns: minmax(0, 1fr) 27%; grid-template-rows: auto auto 1fr; padding: 40px 0 0 36px; }
  .w-hero > :not(.character) { grid-column: 1; }
  .w-hero .character { grid-column: 2; grid-row: 1 / span 3; align-self: end; width: 100%; max-width: 280px; margin: 0 0 0 auto; }
  .w-hero .subject-buttons { align-self: end; align-items: flex-start; margin-bottom: 36px; }
  .w-feature { padding-bottom: 28px; padding-right: 180px; }
  .w-feature .character { width: 180px; right: -4px; bottom: -36px; }
  .place-rows { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .guide-tiles { grid-template-columns: 1.4fr 1fr 1fr; }
  .method-points { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 28px; }
  .profile-hero, .profile-works { grid-column: span 6; }
  .profile-rating, .profile-why { grid-column: span 3; }
  .w.profile-hero { padding: 40px 36px 36px; }
  .profile-hero > :not(.character, .profile-identity) { max-width: 64%; }
  .profile-sections { margin-top: auto; }
  .profile-hero .character { position: absolute; right: 12px; bottom: 0; width: 28%; max-width: 220px; margin: 0; }
  .profile-avatar { width: 140px; height: 140px; }
  .article-more .guide-tiles { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .article-hero, .article-cover, .article-text, .article-sidebar { grid-column: span 6; }
  .article-hero { padding: 40px 36px 34px; }
  .article-text { padding: 40px 44px; }
}
@media (min-width: 1100px) {
  :root { --gutter: 28px; }
  .board { grid-template-columns: repeat(12, minmax(0, 1fr)); grid-auto-flow: dense; }
  .w-hero { grid-column: span 7; grid-row: span 2; padding: 48px 0 0 44px; }
  .w-cover { grid-column: span 5; }
  .w-today { grid-column: span 5; }
  .w-crypto, .w-feature, .w-ai { grid-column: span 4; }
  .w-ecosystems { grid-column: span 12; padding: 34px; }
  .w-tool { grid-column: span 4; }
  .w-guides { grid-column: span 8; }
  .w-method { grid-column: span 12; }
  .w { padding: 30px; }
  .w-cover { padding: 0; }
  .w-hero .lead { font-size: 21px; }
  .place-rows { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .w-feature { padding-right: 160px; }
  .profile-hero { grid-column: span 8; }
  .w.profile-hero { padding: 48px 44px 40px; }
  .profile-hero .character { right: 20px; max-width: 290px; }
  .profile-avatar { width: 176px; height: 176px; }
  .profile-rating, .profile-why { grid-column: span 4; }
  .profile-works { grid-column: span 8; }
  .article-hero { grid-column: span 7; padding: 48px 44px 40px; }
  .article-cover { grid-column: span 5; }
  .article-text { grid-column: span 8; padding: 52px 64px; }
  .article-sidebar { grid-column: span 4; }
}

/* Inner pages from narrow up */
@media (max-width: 1000px) {
  .article-shell { grid-template-columns: minmax(0, 1fr) 240px; }
  .article { padding: 40px; }
  .footer-grid { gap: 24px; }
  .place-intro { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 800px) {
  .masthead .inner { flex-wrap: wrap; padding-top: 14px; padding-bottom: 12px; min-height: 0; }
  .primary-nav { flex-wrap: wrap; gap: 4px 20px; }
  .crypto-routes { position: static; }
  .crypto-routes .explore-panel { position: absolute; top: 100%; left: var(--gutter); right: var(--gutter); width: auto; max-height: calc(100dvh - 148px); }
  .people-finder { grid-template-columns: minmax(0, 1fr); }
  .people-grid { grid-template-columns: minmax(0, 1fr); }
  .people-vote-row { gap: 20px; }
}
@media (max-width: 760px) {
  :root { --gutter: 12px; --radius-widget: 24px; }
  .w { padding: 24px 22px; }
  .wordmark { font-size: 24px; }
  .primary-nav { font-size: 15px; }
  .explore-panel { position: fixed; top: 74px; left: 12px; right: 12px; width: auto; max-height: calc(100dvh - 94px); overflow-y: auto; }
  .section { margin-top: 44px; }
  .ecosystems { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ecosystem { padding: 24px 22px; }
  .place-intro .intro, .context-card, .topic-hero, .subject-hero, .blog-intro, .tools-hero, .tools-heading, .page > header.intro { padding: 26px 22px; }
  .learning-panel { grid-template-columns: 1fr; gap: 22px; padding: 24px 22px; }
  .reading-grid, .explain, .next-grid, .tools-grid, .tool-workspace, .tools-example-grid { grid-template-columns: minmax(0, 1fr); }
  .roster { grid-template-columns: minmax(0, 1fr); }
  .person { padding: 22px; }
  .finder { padding: 20px; gap: 18px; }
  .search { max-width: none; }
  .scope { font-size: 18px; }
  .next-steps { padding: 26px 22px; }
  .article-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .article-shell { grid-template-columns: minmax(0, 1fr); }
  .article { padding: 28px 22px; }
  .article-sidebar { position: static; }
  .mobile-toc { display: block; margin-top: 22px; padding: 10px 18px; background: var(--soft); border-radius: var(--radius); font-size: 15px; }
  .mobile-toc summary { min-height: 44px; display: flex; align-items: center; gap: 10px; cursor: pointer; font-weight: 600; }
  .mobile-toc summary::after { content: '+'; margin-left: auto; }
  .mobile-toc[open] summary::after { content: '−'; }
  .mobile-toc ol { padding-left: 20px; }
  .mobile-toc li + li { margin-top: 12px; }
  .article-toc { display: none; }
  .article-body { font-size: 17px; }
  .article-body h2 { font-size: 27px; }
  .article-body .money-trail, .article-body .term-finder, .article-body .process-flow { padding: 20px; }
  .footer-panel { padding: 28px 22px 22px; }
  .footer-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px 16px; }
  footer.site { margin-top: 44px; }
  .tool-panel, .practice-material { padding: 22px; }
  .tools-section { margin: 36px 0; }
}
@media (max-width: 500px) {
  .ecosystems, .article-list, .subject-grid { grid-template-columns: minmax(0, 1fr); }
  .primary-nav { flex-basis: 100%; justify-content: space-between; gap: 4px 8px; }
  .nav-action { display: none; }
  .footer-grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .tool-value-pair { grid-template-columns: minmax(0, 1fr); }
  .people-card-identity img { width: 64px; height: 64px; }
  .people-card { padding: 22px 20px; }
  .people-token-row { grid-template-columns: minmax(0, 1fr); gap: 8px; padding: 16px; }
  .people-token-share { flex-direction: row; justify-content: flex-start; align-items: center; flex-wrap: wrap; gap: 8px 12px; text-align: left; }
  .people-token-share > a { margin-left: auto; }
  .people-token-wallet { padding: 14px 16px; }
}

/* Index boards (7 November 2026): topics, subject hubs, people, reader tools and collections.
   Every heading lives inside a widget and cards are paper widgets on the same columns.
   No dense flow here: people and topics keep their editorial order. */
.index-board { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--gap); align-items: start; }
.index-board > *, .board-contents > * { min-width: 0; margin: 0; grid-column: 1 / -1; }
.board-contents { display: contents; }
.topic-tiles { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--gap); grid-template-columns: minmax(0, 1fr); }
.index-board > .w, .index-board > .context-card, .index-board > .next-steps { align-self: stretch; }
.index-board .section, .index-board .next-steps { margin: 0; }
.w-night .route-links a, .w-night .filters a { background: var(--night-step); color: var(--night-ink); }
.w-night .route-links a:hover, .w-night .filters a:hover { background: var(--accent); color: var(--accent-ink); }
.w-night .filters a[aria-current="true"] { background: var(--accent); color: var(--accent-ink); }
.w-lamp .route-links a, .w-lamp .filters a { background: var(--always-white); color: var(--always-ink); }
.w-lamp .route-links a:hover, .w-lamp .filters a:hover, .w-lamp .filters a[aria-current="true"] { background: var(--always-ink); color: var(--always-white); }
.w-night .lede, .w-night .kind, .w-night .count { color: var(--night-muted); }
.w-moss .lede, .w-moss .count { color: var(--moss-muted); }
.w-lamp .lede, .w-lamp .count, .w-lamp .empty, .w-lamp label { color: var(--accent-ink); }
.w-heather .lede, .w-heather .muted, .w-heather .small, .w-heather .count { color: var(--heather-ink); }
.w-heather { --focus: var(--heather-ink); }
.w-lamp { --focus: var(--accent-ink); }
.w-night, .w-moss { --focus: var(--accent); }

/* Night hero with one character; the copy keeps clear of it from tablet up. */
.index-hero { display: flex; flex-direction: column; align-items: flex-start; gap: 20px; overflow: hidden; }
.w.index-hero { padding: 30px 22px 0; }
.index-hero h1 { font-size: clamp(40px, 5vw, 76px); line-height: .94; letter-spacing: -.042em; }
.index-hero h1.title-long { font-size: clamp(36px, 3.9vw, 58px); line-height: .98; }
.index-hero .index-lead { font-size: 19px; line-height: 1.45; max-width: 44ch; color: var(--night-ink); }
.index-hero .route-links, .index-hero .filters, .index-hero .figures { margin: 0; flex: 0 0 auto; }
.index-hero .figures dd { color: var(--accent); }
.index-hero .character { width: 46%; max-width: 220px; margin: -4px -4px 0 auto; }
.index-hero .character.facing-left { transform: scaleX(-1); }

/* A stat tile: the real count set large, its meaning under it */
.index-stat { display: flex; flex-direction: column; gap: 12px; }
.stat-figure { display: grid; gap: 6px; }
.stat-figure b { font: 800 clamp(84px, 9vw, 148px)/.82 var(--font-display); letter-spacing: -.05em; }
.stat-figure span { font-size: 16px; font-weight: 600; }
.stat-figure + .stat-figure { margin-top: 10px; }
.index-stat .stat-figure.small-figure b { font-size: clamp(48px, 4.4vw, 68px); }
.index-stat .route-links { margin-top: auto; padding-top: 12px; }

/* A board section: a coloured heading tile beside its cards */
.board-section { display: grid; gap: var(--gap); grid-template-columns: minmax(0, 1fr); align-items: start; scroll-margin-top: 12px; }
.section-head { display: flex; flex-direction: column; align-items: flex-start; gap: 14px; align-self: stretch; scroll-margin-top: 12px; }
.section-head > * { max-width: 100%; }
.section-head .head-count { margin-top: auto; padding-top: 10px; }
.section-head .finder, .section-head .people-finder { align-self: stretch; }
.head-faces { list-style: none; margin: auto 0 0; padding: 14px 0 0; display: flex; flex-wrap: wrap; gap: 8px; }
.head-faces a { display: block; border-radius: 50%; }
.head-faces a:hover img { outline: 3px solid var(--accent); outline-offset: 2px; }
.head-faces img { display: block; width: 56px; height: 56px; border-radius: 50%; object-fit: cover; background: var(--night-step); }
.section-head h2 { font-size: clamp(28px, 2.6vw, 36px); }
.section-head .lede { font-size: 16px; }
.head-count { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 10px; margin-top: 6px; font: 800 clamp(60px, 6vw, 96px)/.86 var(--font-display); letter-spacing: -.05em; }
.head-count small { font: 600 15px/1.2 var(--font-text); letter-spacing: 0; }
.section-head .list-more, .section-head > a:not(.button) { font-weight: 600; justify-self: start; display: inline-flex; align-items: center; min-height: 44px; }
.section-items { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--gap); grid-template-columns: minmax(0, 1fr); align-items: stretch; }
.index-board .roster { margin: 0; }
.index-board .person, .index-board .people-card, .index-board .ecosystem, .index-board .task-tile { border-radius: var(--radius-widget); }

/* Finder inside a lamp heading tile */
.w-lamp .finder { margin: 0; padding: 0; background: none; border-radius: 0; flex-direction: column; align-items: stretch; gap: 16px; }
.w-lamp .search { max-width: none; flex: 0 0 auto; }
.w-lamp .filters { flex: 0 0 auto; }
.w-lamp .search input, .w-lamp .people-finder input, .w-lamp .people-finder select { border: 0; background: var(--always-white); color: var(--always-ink); }
.w-lamp .search input::placeholder, .w-lamp .people-finder input::placeholder { color: #5b5966; }
.w-lamp .count { margin: 0; font-weight: 600; }
.w-lamp .count a { color: inherit; }
.w-lamp .people-finder { grid-template-columns: minmax(0, 1fr); margin: 0; padding: 0; background: none; border-radius: 0; gap: 14px; }
.w-lamp .people-finder label { color: var(--accent-ink); }
.w-lamp .people-search-button, .w-lamp .button { background: var(--always-ink); color: var(--always-white); justify-self: start; }
.w-lamp .people-search-button:hover, .w-lamp .button:hover { color: var(--always-white); }
.w-lamp .people-result-count { color: var(--accent-ink); font-weight: 600; }

/* Topic tiles: paper for Crypto, moss for AI, the count set large */
.topic-tile .status { margin-top: auto; padding-top: 10px; display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 10px; font-size: 15px; }
.topic-tile .status b { font: 800 clamp(52px, 4.8vw, 76px)/.86 var(--font-display); letter-spacing: -.045em; color: var(--ink); }
.topic-tile.subject-ai .status b { color: var(--moss-ink); }
.topic-tile .title-link { font-size: clamp(26px, 2.4vw, 34px); }

/* Reading tasks on a hub */
.task-tile { display: flex; flex-direction: column; align-items: flex-start; gap: 10px; padding: 26px; background: var(--surface); }
.task-tile h3 { font-size: 24px; }
.task-tile p { font-size: 16px; color: var(--muted); }
.task-tile > a, .w-lamp .claim-rows a { margin-top: auto; display: inline-flex; align-items: center; min-height: 44px; padding: 0 18px; border-radius: 999px; background: var(--soft); color: var(--ink); text-decoration: none; font-size: 15px; font-weight: 600; }
.task-tile > a:hover { background: var(--active); color: var(--active-ink); }
.claim-widget { display: grid; gap: 14px; align-content: start; }
.claim-rows { list-style: none; margin: 0; padding: 0; display: grid; gap: 18px; }
.claim-rows li { display: grid; gap: 8px; justify-items: start; }
.claim-rows h3 { font-size: 22px; }
.claim-rows p { font-size: 15px; }
.w-lamp .claim-rows a { margin-top: 4px; background: var(--always-ink); color: var(--always-white); }
.w-lamp .claim-rows a:hover { background: var(--always-white); color: var(--always-ink); }

/* Reading lists on a hub: rows with the count beside the name */
.topic-rows { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; grid-auto-rows: 1fr; }
.hub-lists { grid-template-rows: auto auto 1fr; align-content: stretch; }
.topic-rows li { display: grid; }
.w-list .topic-rows li a { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 4px 18px; align-items: center; align-content: center; padding: 16px 20px; border-radius: 20px; background: var(--soft); color: var(--ink); text-decoration: none; }
.w-moss .topic-rows li a { background: var(--moss-step); color: var(--moss-ink); }
.topic-rows .list-title { font: 800 21px/1.12 var(--font-display); letter-spacing: -.02em; }
.topic-rows .list-note { grid-column: 1; font-size: 15px; line-height: 1.45; color: var(--muted); }
.w-moss .topic-rows .list-note, .w-moss .topic-rows .list-count small { color: var(--moss-muted); }
.topic-rows .list-count { grid-column: 2; grid-row: 1 / span 2; text-align: right; }
.topic-rows .list-count small { display: block; margin: 4px 0 0; }
.topic-rows a:hover .list-title { text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: .15em; }

/* People directory */
.index-board .people-grid { margin: 0; }
.people-board > .people-grid { grid-column: 1 / -1; }
.index-board .people-card { padding: 26px; gap: 8px; min-width: 0; }
.index-board .people-card-identity { max-width: 100%; }
.index-board .people-card-identity > div { min-width: 0; }

/* Reader tools board */
.tool-tiles { display: grid; gap: var(--gap); grid-template-columns: minmax(0, 1fr); }
.w .tool-card { background: var(--soft); border-radius: 22px; }
.w .tool-card:nth-child(2) { background: var(--accent); color: var(--accent-ink); }
.w .tool-card:nth-child(3) { background: var(--heather); color: var(--heather-ink); --focus: var(--heather-ink); }
.w .tool-card:nth-child(3) a { color: inherit; }
.tool-glyph { font: 800 clamp(52px, 5vw, 76px)/.9 var(--font-display); letter-spacing: -.045em; overflow-wrap: anywhere; }
.w .tool-card a.tool-open { padding: 0 18px; border-radius: 999px; background: var(--always-ink); color: var(--always-white); text-decoration: none; }
.w .tool-card a.tool-open:hover { color: var(--always-white); transform: translateY(-1px); }
.tools-choose { display: grid; gap: 20px; }
.practice-sheet { display: grid; gap: 16px; align-content: start; }
.index-board .practice-material { margin: 0; max-width: none; background: var(--soft); border-radius: 22px; }
.index-board .practice-material blockquote { padding: 18px 22px; border-radius: 18px; background: var(--mark); color: var(--mark-ink); }
.index-board .practice-table th, .index-board .practice-table td { border-bottom-color: var(--field-line); }
.practice-steps { display: grid; gap: 22px; align-content: start; }
.practice-steps .tool-steps { max-width: none; margin: 0; }
.practice-steps .tool-steps h3 { font-size: 22px; }
.practice-steps > p { font-weight: 600; }
.real-posts { display: grid; gap: 18px; }
.real-posts .tool-reading { list-style: none; margin: 0; padding: 0; max-width: none; display: grid; gap: var(--gap); grid-template-columns: minmax(0, 1fr); }
.real-posts .tool-reading li { margin: 0; padding: 20px 22px; border-radius: 22px; background: var(--night-step); }
.real-posts .tool-reading a { font: 800 20px/1.15 var(--font-display); letter-spacing: -.015em; text-decoration: none; }
.real-posts .tool-reading a:hover { text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: .15em; }
.real-posts .tool-reading p { margin-top: 6px; font-size: 15px; color: var(--night-muted); }

.w-heather .method-points p { color: var(--heather-ink); }
.collection-context { display: flex; flex-direction: column; gap: 20px; }
.collection-context .context-card { padding: 0; border-radius: 0; background: none; }
.collection-context .figures, .topic-tasks .figures { margin-top: auto; flex-direction: column; gap: 14px; }
.collection-context .figures dt, .topic-tasks .figures dt { color: var(--accent-ink); font-weight: 600; }
.collection-context .figures dd, .topic-tasks .figures dd { color: var(--accent-ink); }
.collection-context .figures div:first-child dd, .topic-tasks .figures div:first-child dd { font-size: clamp(84px, 9vw, 148px); line-height: .82; letter-spacing: -.05em; }

/* Topic pages: lamp reading tasks, the finder beside grouped people, guides with covers */
.topic-tasks { display: flex; flex-direction: column; gap: 14px; }
.topic-tasks h2 { font-size: 26px; }
.topic-tasks p { font-size: 15px; }
.topic-tasks .topic-task-list { margin: 0; padding: 0; list-style: none; display: grid; gap: 14px; }
.topic-tasks .topic-task-list li + li { margin-top: 0; }
.topic-tasks .topic-task-list strong { display: block; font-size: 16px; margin-bottom: 2px; }
.roster-groups { display: grid; gap: var(--gap); align-content: start; min-width: 0; }
.index-board .topic-roster-group { margin: 0; display: grid; gap: var(--gap); scroll-margin-top: 12px; }
.group-head { display: grid; gap: 8px; align-content: start; }
.group-head h3 { font-size: clamp(24px, 2.2vw, 30px); }
.group-head .lede { font-size: 15px; }
.topic-guides .guide-tiles { grid-template-columns: repeat(auto-fit, minmax(min(100%, 200px), 1fr)); }
.next-topics, .topic-method { display: grid; gap: 16px; align-content: start; }
.next-topic-rows { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.next-topic-rows a { display: grid; gap: 4px; padding: 14px 18px; border-radius: 18px; background: var(--night-step); text-decoration: none; }
.next-topic-rows b { font: 800 19px/1.15 var(--font-display); letter-spacing: -.015em; }
.next-topic-rows span { font-size: 15px; color: var(--night-muted); }
.next-topic-rows a:hover b { text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: .15em; }
.w-heather .route-links a { background: var(--always-white); color: var(--always-ink); }
.w-heather .route-links a:hover { background: var(--always-ink); color: var(--always-white); }

/* Fomo: editions on heather, each edition a heading tile beside its people */
.fomo-editions { display: grid; gap: 14px; }
.fomo-editions .edition-links { margin: 0; display: grid; gap: var(--gap); grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr)); }
.fomo-editions .edition-links a { padding: 18px 22px; border-radius: 22px; background: var(--always-white); color: var(--always-ink); font: 800 24px/1.1 var(--font-display); letter-spacing: -.02em; }
.fomo-editions .edition-links span { margin-top: 6px; font: 500 14px/1.3 var(--font-text); letter-spacing: 0; }
.fomo-editions .edition-links a:hover, .fomo-editions .edition-links a[aria-current] { background: var(--always-ink); color: var(--always-white); }
.fomo-empty { align-self: stretch; }
.w-lamp .finder .button { align-self: flex-start; }

/* Notes after a roster */
.index-note { display: grid; gap: 10px; }
.index-note p { font-size: 16px; }

@media (min-width: 700px) {
  .w.index-hero { padding: 40px 36px 36px; min-height: 340px; }
  .index-hero > :not(.character) { position: relative; z-index: 1; max-width: 66%; }
  .index-hero .character { position: absolute; right: 12px; bottom: 0; width: auto; height: auto; max-width: 28%; max-height: calc(100% - 28px); margin: 0; }
  .section-items { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .section-items:not(#people) > :last-child:nth-child(odd), .topic-tiles > :last-child:nth-child(odd), .topic-roster-group .roster > :last-child:nth-child(odd) { grid-column: 1 / -1; }
  .topic-tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .people-board > .people-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .tool-tiles { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .tool-tiles:has(> :nth-child(2):last-child) { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .tool-tiles:has(> :only-child) { grid-template-columns: minmax(0, 1fr); }
  .tool-tiles > .tool-card:only-child p { max-width: 62ch; }
  .real-posts .tool-reading { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 1100px) {
  .index-board { grid-template-columns: repeat(12, minmax(0, 1fr)); }
  .index-board > *, .board-contents > * { grid-column: 1 / -1; }
  .index-board > .span-8, .board-contents > .span-8 { grid-column: span 8; }
  .index-board > .span-7, .board-contents > .span-7 { grid-column: span 7; }
  .index-board > .span-5, .board-contents > .span-5 { grid-column: span 5; }
  .index-board > .span-4, .board-contents > .span-4 { grid-column: span 4; }
  .w.index-hero { padding: 48px 44px 40px; min-height: 400px; }
  .index-hero .character { right: 20px; }
  .board-section { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .board-section > .sticky-head { align-self: start; position: sticky; top: 12px; max-height: calc(100vh - 24px); overflow-y: auto; }
  .topic-tiles { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .topic-tiles > :last-child:nth-child(odd) { grid-column: auto; }
  .topic-tiles > :last-child:nth-child(3n+1) { grid-column: 1 / -1; }
  .topic-tiles > :last-child:nth-child(3n+2) { grid-column: span 2; }
  .board-section > .section-items, .board-section > .roster-groups, .board-section > .fomo-empty { grid-column: span 2; }
  .people-board > .people-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .tools-practice { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); }
  .practice-sheet { position: sticky; top: 12px; }
  .real-posts .tool-reading { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .w.section-head { padding: 30px; }
}
