Skip to content

Rebuild the site: complexity-science reframe, linear pages, Join and Projects - #1

Merged
studiofarzulla merged 6 commits into
masterfrom
claude/website-redesign-content-2wbk0e
Aug 11, 2026
Merged

studiofarzulla merged 6 commits into
masterfrom
claude/website-redesign-content-2wbk0e

Conversation

@studiofarzulla

@studiofarzulla studiofarzulla commented Aug 10, 2026 •

Copy link
Copy Markdown
Owner

Six commits over four review rounds. Information architecture, content and framing; the visual identity — fonts, cream/burgundy, the logo — is unchanged. Net +4,024 / −6,796 across 59 files.

What the site says now

Dissensus is presented as an independent complexity-science research group in London: complex adaptive systems, no central controller, aggregate behaviour no part intends. The friction thesis is the specific question inside that, not the whole pitch. The homepage is retitled Adversarial Systems & Complex Adaptive Dynamics Research, and the dis·sen·sus definition sits in the hero as the first thing under the title, because it explains the name the reader has just read.

systems.ac / ASCRI is parked — no outbound links, dropped from the Organization sameAs, and the programme described without the acronym — pending a decision about what that surface becomes.

New surfaces

join.html — a three-rung ladder from roles.json:

Rung Commitment What it gives
Contributor one named task, 5–20 h, once acknowledgement or co-authorship, a dated written record
Research Collaborator one project to a result co-authorship, author order agreed before the work
Research Affiliate ongoing, by agreement after delivered work the title, a signed letter on letterhead, listing, first refusal on paid roles

Research roles only — no unpaid operations, communications or board seats. Plus 14 hour-sized entry tasks, each traced to a real gap in projects.json and listed at the size those notes themselves use: a weekend ×2 coders, an afternoon, one inference pass, fifteen minutes for an arXiv endorsement.

The page leads on the actual situation — a group that started this year, where what it works on and how it decides a result is finished are still open — with the money facts under The limits, framed as a funding constraint carrying first refusal rather than as policy.

projects.html — the per-project dossiers, split out of the old 4,022-word collaborate.html.

advisors.json + generateAdvisorySection() — returns '' while the array is empty, so nothing about advisors publishes until a name with written consent is added and no placeholder can leak. templates/advisor-outreach.md (bounded ask, approach order, confirm-before-listing rule) and templates/affiliate-letter.md are in-repo and not deployed.

Research page

papers.json gained a stage field, and the page is one linear list grouped by how finished each thing is:

Current focus (2) · Accepted (1) · In peer review (4) · Preprints (4) · Preliminary drafts (5) · Discontinued lines (4)

Tools render beside the paper they came out of, via the relatedPapers field that already existed in tools.json. The five-category card grid, the Open research agendas section, the Notation reference, Lineage and Timeline are all gone. Research is the record of what is finished, stalled or abandoned; where a paper is also open to collaborators it carries a one-line pointer to its Projects entry rather than repeating the dossier.

Status changes: ASRI preprint → in peer review; Extremity Premium under review → preprint. Both had journal cleared so a preprint cannot advertise a venue; the accepted paper keeps naming Digital Finance.

Diet

  • Root pages 17 → 10. manifesto · charter · reading · press · subscribe deleted rather than left beside their 301s, which had made it ambiguous which the host served. tools.html folded into Research. The services/partners/work-with-us meta-refresh stubs became real 301s. Every retired URL redirects, verified against the deployment.
  • CSS 108 KB → 72 KB. Dead dissensus.css (52 KB, referenced by nothing), the whole dark-mode path, .grid--wide, .stats, the credibility strip and the friction-equation block all removed.
  • Single theme. No [data-theme] selector anywhere. theme.js is kept — it sets html.js, which gates the reveal-on-scroll rule, and hosts toggleNav(); deleting it would hide every [data-reveal] element permanently (the b21d046 failure mode).
  • Homepage lost the metrics band, the credibility strip, the at-a-glance stats panel, the duplicate proposal form, the Elsewhere row and the #net canvas — each a restatement of something the page or the footer already said, or in the canvas's case ~1,770 pairwise distance calculations per frame, forever, on screen or not. It gained a team row and three generated open tasks.
  • About 8 sections → 5, with #services and #partners anchors kept live.

Design

  • Boxed card grids replaced by linear rows throughout: .pubrow (Research), .projrow (Projects), .rung (Join), .deflist (About, News).
  • The container was pinned at 1080px, so a full-screen desktop squeezed everything into the middle third. It opens to 1160px at 1280 and 1280px at 1600, section rhythm and body size stepping up with it; prose stays readable because --measure caps it independently.
  • Footer rebuilt as three columns plus a base row, replacing two flex blocks with inline styles that collided into a cramped strip at full width.
  • X, Discord and Patreon added. Patreon appears on the funding route and in the footer base rather than as an icon among identity channels.

Bugs found and fixed on the way

  • .section > .container > h2 never matched the generated pages — they write <section class="section container">, one element with both classes — so every h2 on Join, Projects, Tools and Research sat flush against its next paragraph.
  • The publications list was anchored to the literal <h2>Publications</h2> and silently skipped the entire list the moment the page was retitled. Now marker-delimited.
  • .stats was repeat(auto-fit, minmax(180px, 1fr)) over a 1px-gap-on-background trick: past four items it broke sentences into two-word columns and painted leftover grid tracks as a grey block.
  • A .section directly after a hero stacked its own 6–8rem top padding onto the hero's, leaving ~14rem of dead space.
  • Research's "Cite framework" button called a copyBibTeX() only ever defined on paper pages — dead on click.
  • The sitemap advertised URLs that 301 elsewhere.
  • Two stray </div> tags from a grid-to-list conversion; div/dl nesting now balances on all six pages.

Verification

Headless Chromium at 1920 / 1280 / 768 / 390 px across home, research, projects, join, about and news: no JS errors, no horizontal scroll at any width, and every [data-reveal] element resolves visible under reader-paced scrolling. Redirects and page content checked against the live branch preview with cache-busting.

Two measurement traps worth recording: Cloudflare edge-caches individual assets, so a stale page looks exactly like a failed deploy; and a fast synthetic scroll outruns the IntersectionObserver and falsely reports reveal elements as hidden — including one entirely blank screenshot of five rows that were all at opacity 1.

Still needs a human

  • advisors.json is empty on purpose. Names go in only after written consent; the outreach templates are ready.
  • The Research/Projects overlap rule, the two peer-review status changes, and the Research page title were judgement calls — all easy to change.
  • CLAUDE.md is gitignored and still describes the old IA.
  • Merging deletes the 1,909-word manifesto; it remains in git history.

Information-architecture and content diet, plus the two recruiting surfaces
the site did not have. Style (fonts, cream/burgundy, logo) unchanged.

Recruiting surfaces (new):
- roles.json drives a three-rung ladder — Contributor, Research Collaborator,
  Research Affiliate — stating what each rung actually gives. Research roles
  only; no unpaid ops, comms or board seats.
- 14 hour-sized entry tasks, each traced to a real gap in projects.json and
  listed at the size the project notes themselves use ("a weekend", "an
  afternoon", "one inference run", "fifteen minutes"). People say yes to a
  weekend and no to an open-ended collaboration.
- A "what the lab does not offer" section, stated plainly. There is no money
  and the page says so first.
- advisors.json plus generateAdvisorySection(), which returns '' while the
  array is empty — nothing about advisors publishes until a real name with
  written consent is added. Outreach templates and the affiliate confirmation
  letter live in templates/, unpublished.

Diet:
- collaborate.html (4,022 words) split into join.html and projects.html; the
  dossiers keep their length because the unflattering detail is the argument.
- manifesto, charter, reading, press, subscribe deleted, not merely
  redirected — keeping the files alongside the 301s left it ambiguous which
  the host served, and the sitemap advertised them for three weeks. Charter
  content is now About > Commitments. Root pages 17 -> 10.
- Dead css/dissensus.css (52 KB, referenced by nothing) removed; CSS 108K -> 64K.
- About 8 sections -> 5; #services and #partners anchors kept live.
- Homepage: metrics band removed (it recounted the hero's 20 papers three
  screens later), and the proposal form removed — it posted to the same
  Formspree endpoint as the Join form with a different field set, so one inbox
  received two incompatible intake schemas.
- #net hero canvas removed: ~1,770 pairwise distance calculations per frame,
  forever, on or off screen. Its `content: none` override went with it so the
  shared hero glow returns, and the hero is two columns with the stats panel
  filling the space the canvas vacated. #optima stays, retuned from the
  dark-mode pink to true burgundy, and now pauses when scrolled out of view.

Single theme:
- Dark path deleted from all three stylesheets and from theme.js; no
  [data-theme] selector remains. theme.js is kept because it sets html.js,
  which gates the reveal-on-scroll hiding rule (b21d046), and hosts toggleNav().
- One nav brand mark instead of a wine/white pair — one fewer image request
  on every page.

Updates surface:
- news.html gains a dated "Where things stand" block: publications, latest
  accept, venues under review, what is running, what is open. Nav and the
  homepage band read Updates; the published /news/* URLs are unchanged.

Fixes found on the way:
- .section > .container > h2 never matched the generated pages, which write
  <section class="section container"> as one element, so every h2 on join,
  projects, tools and research sat flush against its next paragraph.
- .hero--editorial: --fs-hero tops out at 4.25rem, which read as a product
  splash on a three-line headline.
- Sitemap no longer lists redirecting URLs. 404 stopped offering the manifesto
  and reading list.

Verified in headless Chromium across seven pages: no JS errors, every
[data-reveal] element resolves visible after scroll, and no horizontal scroll
at 390px.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NFaeEPDNSG1bnfkfPxAUHJ
@cloudflare-workers-and-pages

cloudflare-workers-and-pages Bot commented Aug 10, 2026 •

Copy link
Copy Markdown

Deploying with  Cloudflare Workers  Cloudflare Workers

The latest updates on your project. Learn more about integrating Git with Workers.

Status Name Latest Commit Preview URL Updated (UTC)
✅ Deployment successful!
View logs
dissensus-ai 62647be Commit Preview URL

Branch Preview URL
Aug 11 2026, 10:21 PM

claude added 5 commits August 11, 2026 19:52
The Affiliate tier promises a dissensus.ai alias; MF confirms it is available,
so the line stays and the alias gets created when the first Affiliate is
appointed rather than up front.

Also records plainly that this branch is built to a Cloudflare preview only —
production deploys from master, so dissensus.ai serves the pre-diet site until
PR #1 merges. Worth writing down: the preview URL renders the full new site,
which makes it easy to believe it has shipped.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NFaeEPDNSG1bnfkfPxAUHJ
Two review notes from MF on the shipped homepage.

The credibility strip and the publications ribbon were the same content twice.
The ribbon's ten chips restated the strip's four arXiv IDs, its Digital Finance
accept and its four under-review venues, as an auto-scrolling marquee running a
requestAnimationFrame loop for the life of the page. The ribbon is gone —
markup, CSS and JS — and the strip drops from three rows to two by folding
Accepted and Under review into one peer-review line.

"02 · The problem" is off the homepage. A lab front page that opens by arguing
game theory is insufficient is presenting a thesis rather than introducing an
organisation. The friction equation moves to research.html > Notation, directly
above the cards that define its symbols, and the three alpha/sigma/epsilon
cards are simply dropped: that section already defined F, alpha, sigma, epsilon,
Lambda and Psi in more detail, so the homepage copies were the redundant ones.
Nothing is lost. The homepage keeps a single plain sentence of the thesis and
links to Research for the formalism.

The equation's CSS moved from index.css, where it was scoped .home, to site.css
unscoped — research.html loads only system.css and site.css, so left in place it
would have rendered as unstyled mono text.

In the space that freed:

- "02 · The lab" — Murad, Andrew and Felipe as a compact three-up linking to
  About. A lab front page that shows nobody reads as a solo blog. New .crew
  component rather than site.css's .person, which carries an 88px avatar and
  biography prose that belong on About.
- Three featured open tasks inside Contribute, generated by syncHomeTasks()
  from roles.json entryTasks where featured:true, between OPEN-TASKS markers.
  The effort figure leads each card, same argument as the join.html task rows.
  Generating it means the front page cannot drift from Join — the previous
  homepage advertised three research directions that appeared nowhere else.

Homepage sections are now 01 Who we are, 02 The lab, 03 Contribute,
04 Elsewhere.

Verified in headless Chromium: no JS errors, no [data-reveal] element left
invisible after scroll, no horizontal scroll at 390px, and the relocated
equation picks up burgundy vars, its 1.5px rule and IBM Plex Mono on
research.html.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NFaeEPDNSG1bnfkfPxAUHJ
…ing the lab

Second review pass. Everything here is a cut except the two new channels.

Social:
- x.com/dissensusAI and discord.gg/5VtRcb45N7 in the footer and the homepage
  Elsewhere row. One SOCIALS list drives both, and the homepage row is written
  between SOCIAL markers — the X anchor had been sitting commented out in
  index.html waiting for a handle to exist. X added to the Organization JSON-LD
  sameAs. Discord is the second CTA on Join.

Research page:
- Notation section removed. The equation does no work on a publication archive,
  and the six symbol cards existed to gloss it; the papers carry the formalism.
  Its "Cite framework" button called a copyBibTeX() that was only ever defined
  on paper pages, so it had been dead on click.
- Lineage and Timeline removed.
- Tools folded in as section 03 and out of the nav: generateToolsPage() became
  generateToolsSection(), injected between TOOLS markers by updateResearchPage().
  tools.html, toolsNavHtml() and toolsFooterHtml() are gone, /tools 301s to
  /research#tools, and the two prose links to it — About's services paragraph
  and the news status block — now point at the anchor.
- Sections are now 01 The agenda, 02 Archive, 03 Tools.

Homepage:
- The at-a-glance panel (focus / publications / latest accept / status) is gone.
  The accept sits in the updates band immediately below it and the paper count is
  on Research, so it was a third restatement. The hero is a single column again
  and the two-column grid CSS went with it.

Join:
- Reframed. It led on "No money." — true, but a deficit-first pitch for a lab
  whose actual selling point is that nothing is settled yet. It now opens on
  that: two researchers, twenty papers, six open problems, a company
  incorporated this July, and genuine influence over what the lab works on and
  how it decides a result is finished. H1 is "A new lab, still deciding what it
  is." The money facts are unchanged but sit under "The limits", framed as a
  funding constraint carrying first refusal rather than as policy. The homepage
  Contribute paragraph was rewritten to match.

Also deleted the friction-equation CSS added to site.css earlier today: with the
equation gone from every page it was dead within the hour.

Verified in headless Chromium at 1280 / 768 / 390px across home, research, join,
projects, about and news: no JS errors, no horizontal scroll at any width, and
every [data-reveal] element resolves visible under reader-paced scrolling.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NFaeEPDNSG1bnfkfPxAUHJ
Third review pass.

Naming and framing:
- Adversarial Systems & Complex Adaptive Dynamics Research. The homepage now
  opens on complex adaptive systems — many interacting agents, no central
  controller, aggregate behaviour no part intends — with the friction thesis as
  the specific question rather than the whole pitch.
- The dissensus definition moved into the hero as the first thing under the
  title, since it explains the name the reader just read. Its standalone section
  three screens down is gone.
- Credibility strip removed: it restated the archive a third time, directly
  under the updates band that already carried the accept.

Channels:
- X, Discord and Patreon. Patreon appears as "back it directly" on the funding
  route and "Support the research" in the footer base — deliberately not as an
  icon among identity channels, where a payment link reads as a CTA.

systems.ac parked:
- No outbound links anywhere, dropped from the Organization sameAs, and About's
  programme card rewritten to describe one programme without the acronym or the
  link. The surviving mentions are a code comment and the dated incorporation
  post, where ASCRI is historical record.

Research page:
- papers.json gained a `stage` field — current focus, accepted, in peer review,
  preprints, preliminary drafts, discontinued lines — and the page is one linear
  list grouped by it. The five-category card grid is gone: on an archive the
  useful axis is how finished a thing is, and twenty equal-weight cards read as
  twenty products.
- Tools render beside the paper they came out of, via the `relatedPapers` field
  that already existed in tools.json (a `papers` field added earlier in this
  pass was pure duplication and was removed). A tool linked to two papers now
  renders once rather than once per paper.
- Status changes as instructed: ASRI preprint -> in peer review, Extremity
  Premium under review -> preprint. Both had their `journal` cleared so a
  preprint cannot advertise a venue; the accepted paper keeps naming Digital
  Finance.
- Research is the record of what is finished, stalled or abandoned; Projects is
  what is open. Where a paper is both, Research carries a one-line "Open to
  collaborators" pointer instead of repeating the dossier.
- The publications block is now marker-delimited. It had been anchored to the
  literal <h2>Publications</h2> and silently skipped the entire list the moment
  the page was retitled — which is exactly what happened.

Linear layouts:
- Projects and Join replaced their two-column card grids with .projrow and .rung
  rows. A dossier is a document and a ladder is a sequence.
- About's five commitments each lead with the promise and end with "Breaking it
  looks like:" — a concrete, observable failure mode.

Density:
- The container was pinned at 1080px, so a full-screen desktop squeezed
  everything into the middle third with the footer worst hit. It opens to 1160px
  at 1280 and 1280px at 1600, section rhythm and body size stepping up with it.
  Prose stays readable because --measure caps it independently.
- Footer rebuilt as three columns plus a base row, replacing two flex blocks
  with inline styles that collided into a cramped strip at full width.
- The homepage Elsewhere section went: with a proper footer social row the page
  was printing the same five icons twice within one screen.

Dead CSS swept: .grid--wide (unused once tools.html retired and both pages went
linear), the credibility strip, and the standalone .home .etym.

Verified in headless Chromium at 1920 / 1280 / 768 / 390px across all six pages:
no JS errors, no horizontal scroll at any width, and every [data-reveal] element
resolves visible under reader-paced scrolling.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NFaeEPDNSG1bnfkfPxAUHJ
… space

The three remaining boxed grids were one shared bug. `.stats` was
`repeat(auto-fit, minmax(180px, 1fr))` drawn as a 1px-gap-over-background trick,
which has two failure modes past four items: 180px tracks break sentences into
two-word columns, and any leftover track paints the container's line colour as a
grey block beside the last cell. That is what the five-item commitments list and
the six-item news status block were doing.

All three now use a .deflist of rows: a key column, a body column capped at the
measure, hairline separators, no boxes and no empty tracks to leak. A --tight
variant gives numeric keys a 3.25rem gutter instead of the 13rem text-key column,
because a two-digit number followed by 11rem of whitespace reads as a mistake.
Stacks to one column below 52rem. .stats and .stat are deleted.

Converted: About's four fronts, About's five commitments, and the news
"Where things stand" block.

Also:
- About's applied-work section was three long paragraphs at full measure — a
  wall. The two doors plus contributing time are the actual structure, so they
  are three labelled rows, with Patreon named on the funding row.
- About's hero and Mission still carried the pre-reframe language ("adversarial
  systems … friction dynamics is the through-line") while the homepage had moved
  to complexity science. Both now match, and the Mission wall is split into
  three paragraphs. Meta descriptions updated with it.
- Fixed two stray </div> tags left by the grid-to-list conversion; div and dl
  nesting now balances on all six pages.
- A .section directly after the hero stacked its own 6-8rem top padding onto the
  hero's bottom padding, leaving ~14rem of dead space that read as a rendering
  fault at large widths. `.hero + .section` takes a reduced top padding.

Verified in headless Chromium at 1920 / 1280 / 768 / 390px: no JS errors, no
horizontal scroll, and every [data-reveal] element resolves visible under
reader-paced scrolling. (A fast synthetic scroll outruns the IntersectionObserver
and reports false positives — including one entirely blank phone screenshot that
turned out to be five rows sitting at opacity 1.)

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NFaeEPDNSG1bnfkfPxAUHJ
@studiofarzulla studiofarzulla changed the title Lean the site: Join page, roles ladder, advisors machinery, single theme Rebuild the site: complexity-science reframe, linear pages, Join and Projects Aug 11, 2026
@studiofarzulla
studiofarzulla marked this pull request as ready for review August 11, 2026 22:35
Copilot AI lite review requested due to automatic review settings August 11, 2026 22:35
@studiofarzulla
studiofarzulla merged commit c9def8a into master Aug 11, 2026
1 check passed
studiofarzulla pushed a commit that referenced this pull request Aug 11, 2026
The Affiliate tier promises a dissensus.ai alias; MF confirms it is available,
so the line stays and the alias gets created when the first Affiliate is
appointed rather than up front.

Also records plainly that this branch is built to a Cloudflare preview only —
production deploys from master, so dissensus.ai serves the pre-diet site until
PR #1 merges. Worth writing down: the preview URL renders the full new site,
which makes it easy to believe it has shipped.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NFaeEPDNSG1bnfkfPxAUHJ

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR rebuilds the static Dissensus site’s information architecture and generated research surfaces: reframing the homepage/research narrative, splitting collaboration into Join and Projects, moving tools into the Research record, and simplifying the front-end (single light theme, lighter JS/CSS, redirect cleanup).

Changes:

  • Introduces advisor + affiliate workflow assets (advisors.json, outreach and letter templates) and updates metadata to support “tools beside papers” + stage-grouped Research.
  • Updates site chrome (nav/footer) across public pages, removes legacy meta-refresh stub pages, and standardizes redirects.
  • Simplifies client-side behavior (removes theme toggle) and reduces homepage JS work.

Reviewed changes

Copilot reviewed 59 out of 59 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
tools.json Expands catalogue note to document relatedPapers behavior and Research-side rendering.
templates/affiliate-letter.md Adds non-deployed affiliate confirmation letter template and issuance log table.
templates/advisor-outreach.md Adds non-deployed advisor outreach templates/rules.
advisors.json Adds advisor surface config with empty advisors array and publish-guard (showWhileEmpty).
papers.json Adds stage fields, stage labels/blurbs/order to support linear stage-grouped Research rendering.
public/_redirects Updates redirect rules for retired pages and new Join/Projects/Research structure.
public/css/system.css Removes dark-theme path; adjusts container/spacing at larger widths; rebuilds footer styles.
public/js/theme.js Removes theme toggle; keeps JS-class marker and mobile nav behavior.
public/js/index.js Removes old hero canvases/ribbon; retunes optima canvas colors; adds visibility-aware animation logic.
public/privacy.html Updates stylesheet cache busters and replaces nav/footer links to new IA.
public/terms.html Updates stylesheet cache busters and replaces nav/footer links to new IA.
public/services.html Deletes legacy meta-refresh stub page (now handled via redirects).
public/partners.html Deletes legacy meta-refresh stub page (now handled via redirects).
public/work-with-us.html Deletes legacy meta-refresh stub page (now handled via redirects).
public/papers/axiom-of-consent.html Updates stylesheet cache busters and replaces nav/footer to new IA.
public/papers/alpha-asymmetry-fx.html Updates stylesheet cache busters and replaces nav/footer to new IA.
public/papers/autonomous-red-team.html Updates stylesheet cache busters and replaces nav/footer to new IA.
public/papers/cbdc-privacy.html Updates stylesheet cache busters and replaces nav/footer to new IA.
public/papers/consciousness-monograph.html Updates stylesheet cache busters and replaces nav/footer to new IA.
public/papers/consent-to-consideration.html Updates stylesheet cache busters and replaces nav/footer to new IA.
public/papers/genre-mimicry.html Updates stylesheet cache busters and replaces nav/footer to new IA.
public/papers/hedging-paradox.html Updates stylesheet cache busters and replaces nav/footer to new IA.
public/papers/identity-thesis.html Updates stylesheet cache busters and replaces nav/footer to new IA.
public/papers/semantic-first-vision.html Updates stylesheet cache busters and replaces nav/footer to new IA.
public/papers/stakes-without-voice.html Updates stylesheet cache busters and replaces nav/footer to new IA.
public/papers/substrate-independent-friendship.html Updates stylesheet cache busters and replaces nav/footer to new IA.
public/papers/temporal-bitmap-interpretation.html Updates stylesheet cache busters and replaces nav/footer to new IA.
public/papers/trauma-training-data.html Updates stylesheet cache busters and replaces nav/footer to new IA.
public/papers/whitepaper-factor-analysis.html Updates stylesheet cache busters and replaces nav/footer to new IA.
public/news/digital-finance-accept.html Updates stylesheet cache busters and replaces nav/footer to new IA.
public/news/temporal-bitmap.html Updates stylesheet cache busters and replaces nav/footer to new IA.
public/news/trident.html Updates stylesheet cache busters and replaces nav/footer to new IA.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread public/css/system.css
Comment on lines 187 to 191
.grid > *, .grid--wide > * { min-width: 0; }
/* Wide variant for content-rich records (tools, open projects). These carry a long
description plus a feature list, so they need real width — an auto-fill track floor
strands a lone card in a narrow column (a tall thin tower on a wide screen). Two
explicit columns above 46rem, one below: deterministic, unlike minmax(min(100%,…))
which resolves differently depending on how the container is sized. Cards flex so
their action rows bottom-align across a row regardless of description length. */
.grid--wide { grid-template-columns: 1fr; align-items: stretch; }
@media (min-width: 52rem) { .grid--wide { grid-template-columns: repeat(2, 1fr); } }
.grid--wide > .card { display: flex; flex-direction: column; }
/* The .grid--wide two-column variant is gone: tools.html was retired, and the projects
and join pages went linear in Aug 2026, so nothing used it. */
.card { display: flex; flex-direction: column; }
.grid--wide > .card > .btn-row { margin-top: auto; padding-top: var(--sp-4); }
Comment thread public/js/index.js
Comment on lines +74 to +78
if (typeof IntersectionObserver === 'function') {
new IntersectionObserver(function (entries) {
visible = entries[0].isIntersecting;
if (visible) start();
}).observe(oc);
Comment thread public/_redirects
Comment on lines +42 to +43
/tools /research#tools 301
/tools.html /research#tools 301
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants