// brand.jsx — Manifold.md system notes
// A living reference showing the actual tokens, components, and rules in use.
// Everything on this page uses the same styles as the homepage and pricing page.

const { useEffect } = React;

const TWEAK_DEFAULTS = /*EDITMODE-BEGIN*/{
  "dark": false,
  "rainbowSpeed": 10,
  "dashSpeed": 2.5,
  "ctaBorder": 3
}/*EDITMODE-END*/;

// Brand stroke table — pulled from the brief, used by all diagrams.
const BRAND_STROKES = [
  ["Gmail",          "#EA4335"],
  ["Google Drive",   "#34A853"],
  ["Google Calendar","#4285F4"],
  ["BigQuery",       "#669DF6"],
  ["Slack",          "#4A154B"],
  ["Notion",         "#191919"],
  ["Linear",         "#5E6AD2"],
  ["GitHub",         "#181717"],
  ["HubSpot",        "#FF7A59"],
  ["Stripe",         "#635BFF"],
  ["Intercom",       "#286EFA"],
  ["Snowflake",      "#29B5E8"],
  ["Looker",         "#4285F4"],
  ["Metabase",       "#509EE3"],
  ["Postgres",       "#336791"],
];

function CTAQuiet({ children, href = "#" }) {
  return (
    <a className="cta-quiet" href={href} role="button">
      <span>{children}</span>
      <span className="arrow" aria-hidden="true">→</span>
    </a>
  );
}

// Mini dashed-flow demo (no Manifold/Claude nodes, just the motion).
function FlowDemo() {
  return (
    <svg viewBox="0 0 320 80" width="320" height="80" aria-hidden="true">
      <line x1="20"  y1="20" x2="300" y2="20" className="flow-line" stroke="#EA4335" />
      <line x1="20"  y1="40" x2="300" y2="40" className="flow-line" stroke="#34A853"
            style={{ animationDelay: "-0.6s" }} />
      <line x1="20"  y1="60" x2="300" y2="60" className="flow-line thick" stroke="currentColor"
            style={{ animationDelay: "-1.2s" }} />
    </svg>
  );
}

function BrandApp() {
  const [t, setTweak] = useTweaks(TWEAK_DEFAULTS);

  useEffect(() => {
    document.body.classList.toggle("dark", !!t.dark);
  }, [t.dark]);

  useEffect(() => {
    document.documentElement.style.setProperty("--rainbow-speed", `${t.rainbowSpeed}s`);
    document.documentElement.style.setProperty("--dash-speed",    `${t.dashSpeed}s`);
    document.documentElement.style.setProperty("--cta-border",   `${t.ctaBorder}px`);
  }, [t.rainbowSpeed, t.dashSpeed, t.ctaBorder]);

  return (
    <div className="page">
      {/* ── Top chrome ─────────────────────────────────────────────── */}
      <nav className="nav" aria-label="Top">
        <a className="wordmark" href="Manifold.md Homepage.html">
          Manifold<span className="ext">.md</span>
        </a>
        <div className="nav-links">
          <a className="nav-link" href="Manifold.md Pricing.html">Pricing</a>
          <a className="nav-link active" href="Manifold.md Brand.html">Brand</a>
          <a className="nav-link" href="#">agents.md →</a>
        </div>
      </nav>

      {/* ── Hero ───────────────────────────────────────────────────── */}
      <section className="shell" style={{ paddingTop: 56, paddingBottom: 16 }}>
        <h1 className="hero">System notes.</h1>
        <p className="sub">
          What Manifold.md looks like and why — pinned to a single page so the
          marketing surfaces stay coherent as they grow.
        </p>
      </section>

      {/* ── Brand manifesto ─────────────────────────────────────────── */}
      <hr className="rule" />
      <section className="shell">
        <div className="col-text">
          <h2 className="head">Brand manifesto.</h2>
          <p className="body">
            Within twenty-four months, the agent (Claude, ChatGPT, etc.) replaces the browser tab as the dominant work
            surface. When that day arrives, the most valuable position in B2B software is
            the <em>memory layer beneath the agent</em> — the substrate that knows what a
            company has done, decided, learned, and stored. <span className="rainbow-text">Manifold</span> is that layer. We
            connect to where a company's memory already lives, build an entity graph
            that knows what exists where, and expose it through MCP so any agent — starting
            with Claude — can answer <em>"what did we decide about Meridian"</em> or{" "}
            <em>"what's our Q3 revenue by region"</em> with a grounded, cited,
            permission-aware reply.
          </p>
          <p className="body">
            Everything visual on these pages flows from that bet. A classical product page
            in its bones, because we are infrastructure and infrastructure earns the right
            to be unhurried. Real third-party logos in the diagrams, because we federate
            across them rather than replace them. A single piece of alive, AI-native energy —
            the <span className="rainbow-text">rainbow</span> CTA — because something on the page has to say <em>this is new</em>,
            and the rest is allowed to stay still. An editorial colophon at the bottom,
            because Manifold is also a publication of conventions (<code style={{ fontFamily: "var(--mono)",
            fontSize: "0.92em", background: "rgba(14,14,12,0.05)", padding: "1px 5px",
            borderRadius: 3 }}>agents.md</code>, the notebook, the open spec), and a serious
            publication signs its work.
          </p>
        </div>
      </section>

      {/* ── Type ────────────────────────────────────────────────────── */}
      <hr className="rule" />
      <section className="shell">
        <div className="col-text">
          <h2 className="head">Type.</h2>
          <p className="body">
            One serif family at display and text weight, one clean sans for UI, one
            mono for code and small labels. Pages of body copy should read like a
            well-set product blog — closer to <em>Medium</em> than to a SaaS landing page.
          </p>
        </div>

        <div className="col-text type-sample" style={{ marginTop: 24 }}>
          <div className="row">
            <div className="label">Display 64</div>
            <div style={{ fontFamily: "var(--serif-display)", fontWeight: 600, fontSize: 64,
                          lineHeight: 1.06, letterSpacing: "-0.02em" }}>
              Manifold makes Claude fluent.
            </div>
          </div>
          <div className="row">
            <div className="label">Display 40</div>
            <div style={{ fontFamily: "var(--serif-display)", fontWeight: 600, fontSize: 40,
                          letterSpacing: "-0.015em" }}>
              Ask Claude things you used to ask people.
            </div>
          </div>
          <div className="row">
            <div className="label">Body 19</div>
            <div style={{ fontFamily: "var(--serif)", fontSize: 19, lineHeight: 1.65 }}>
              The same questions you'd Slack a colleague, ping the data team about,
              or scroll through Notion to find. Now you ask Claude instead.
            </div>
          </div>
          <div className="row">
            <div className="label">Quote 19 it.</div>
            <div style={{ fontFamily: "var(--serif)", fontStyle: "italic", fontSize: 19,
                          lineHeight: 1.5 }}>
              "What's the status of Project Meridian? Is it on time?"
            </div>
          </div>
          <div className="row">
            <div className="label">UI 16</div>
            <div style={{ fontFamily: "var(--sans)", fontSize: 16, fontWeight: 500 }}>
              Open in Claude
            </div>
          </div>
          <div className="row">
            <div className="label">Label 12 mono</div>
            <div style={{ fontFamily: "var(--mono)", fontSize: 12, letterSpacing: "0.08em",
                          textTransform: "uppercase", color: "var(--graphite)" }}>
              CATCHING UP — meetings, threads, emails
            </div>
          </div>
          <div className="row">
            <div className="label">Code 14 mono</div>
            <div style={{ fontFamily: "var(--mono)", fontSize: 14 }}>
              /deploy staging
            </div>
          </div>
        </div>

        <div className="col-text" style={{ marginTop: 24 }}>
          <div className="sys-grid">
            <div className="sys-key">Families</div>
            <div className="sys-val">
              <p>Source Serif 4 — display & body. (GT Super if licensed.)</p>
              <p>Inter — UI, captions, labels.</p>
              <p>JetBrains Mono — code, mono section labels, the .md extension.</p>
            </div>
          </div>
          <div className="sys-grid">
            <div className="sys-key">Wordmark</div>
            <div className="sys-val">
              <p style={{ fontSize: 28 }}>
                <span style={{ fontFamily: "var(--serif-display)", fontWeight: 600 }}>Manifold</span>
                <span style={{ fontFamily: "var(--mono)", fontSize: 22 }}>.md</span>
              </p>
              <p>Serif name, mono extension. Both Ink. The .md is part of the brand.</p>
            </div>
          </div>
        </div>
      </section>

      {/* ── Color ───────────────────────────────────────────────────── */}
      <hr className="rule" />
      <section className="shell">
        <div className="col-text">
          <h2 className="head">Color.</h2>
          <p className="body">
            Three sources of color, each with a clear job. Neutrals carry 95% of the
            page. Brand strokes live inside diagrams. The rainbow gradient appears on
            two CTAs and nowhere else.
          </p>
        </div>

        <div className="col-text" style={{ marginTop: 24 }}>
          <div className="sys-grid">
            <div className="sys-key">Chrome</div>
            <div className="sys-val">
              <div className="swatch-row">
                <div className="sw">
                  <div className="chip" style={{ background: "#0E0E0C" }}></div>
                  <span className="name">Ink</span>
                  <span>#0E0E0C</span>
                </div>
                <div className="sw">
                  <div className="chip" style={{ background: "#FAFAF7" }}></div>
                  <span className="name">Paper</span>
                  <span>#FAFAF7</span>
                </div>
                <div className="sw">
                  <div className="chip" style={{ background: "#5A5A57" }}></div>
                  <span className="name">Graphite</span>
                  <span>#5A5A57</span>
                </div>
                <div className="sw">
                  <div className="chip" style={{ background: "rgba(14,14,12,0.12)" }}></div>
                  <span className="name">Hairline</span>
                  <span>Ink @ 12%</span>
                </div>
              </div>
            </div>
          </div>

          <div className="sys-grid">
            <div className="sys-key">Dark mode</div>
            <div className="sys-val">
              <p>Background → #0E0E0C. Text → #E5E2DA. Brand strokes are auto-lifted for legibility (see below). Toggle in the colophon, or via the Tweaks panel.</p>
            </div>
          </div>

          <div className="sys-grid">
            <div className="sys-key">Brand strokes</div>
            <div className="sys-val">
              <p style={{ marginBottom: 12 }}>Used as <em>stroke</em> color on dashed lines in the three diagrams, and as the left-rule color on Q&amp;A blocks where one source dominates the answer. Never as fill, never as text color.</p>
              <div className="brand-table">
                {BRAND_STROKES.map(([name, hex]) => (
                  <div className="row" key={name}>
                    <div className="chip" style={{ background: hex }}></div>
                    <div>{name}</div>
                    <div className="hex">{hex}</div>
                  </div>
                ))}
              </div>
            </div>
          </div>
        </div>
      </section>

      {/* ── CTAs ────────────────────────────────────────────────────── */}
      <hr className="rule" />
      <section className="shell">
        <div className="col-text">
          <h2 className="head">CTAs.</h2>
          <p className="body">
            Two button styles. The rainbow is the brand's only piece of alive,
            AI-native energy on an otherwise still page — so it appears at most
            twice per page, at the moments where conversion happens.
          </p>
        </div>

        <div className="col-text" style={{ marginTop: 24 }}>
          <div className="sys-grid">
            <div className="sys-key">Primary</div>
            <div className="sys-val">
              <div style={{ display: "flex", alignItems: "center", gap: 18, marginBottom: 10 }}>
                <CTA>Open in Claude</CTA>
              </div>
              <p>Solid Ink fill, animated rainbow gradient border. 10-second cycle, 6 on hover. Appears on the homepage hero, the homepage final CTA, the Team plan, and the pricing final CTA. Nowhere else.</p>
            </div>
          </div>
          <div className="sys-grid">
            <div className="sys-key">Quiet</div>
            <div className="sys-val">
              <div style={{ display: "flex", alignItems: "center", gap: 18, marginBottom: 10 }}>
                <CTAQuiet>Open in Claude</CTAQuiet>
              </div>
              <p>Ink outline, no animation. Used on non-recommended plans, secondary actions, anywhere the rainbow would dilute. Same arrow, same word, lower volume.</p>
            </div>
          </div>
          <div className="sys-grid">
            <div className="sys-key">Inline</div>
            <div className="sys-val">
              <p style={{ marginBottom: 8 }}><a href="#">Or read agents.md →</a></p>
              <p>Inter, Graphite, 1px underline at 30%. Hovers to 100%. Used for the secondary action under primary CTAs.</p>
            </div>
          </div>
        </div>
      </section>

      {/* ── Motion ──────────────────────────────────────────────────── */}
      <hr className="rule" />
      <section className="shell">
        <div className="col-text">
          <h2 className="head">Motion.</h2>
          <p className="body">
            Two continuously animating things on the page. Both slow. Both calm.
            Everything else is still.
          </p>
        </div>

        <div className="col-text" style={{ marginTop: 24 }}>
          <div className="sys-grid">
            <div className="sys-key">Dashed flow</div>
            <div className="sys-val">
              <div style={{ margin: "4px 0 10px" }}><FlowDemo /></div>
              <p>2.5s cycle, linear easing. Each line takes the stroke color of the source it represents. The eye should read it like a slow conveyor or a circulatory system — never a notification, never a loading spinner.</p>
            </div>
          </div>
          <div className="sys-grid">
            <div className="sys-key">Rainbow CTA</div>
            <div className="sys-val">
              <p>10s ease-in-out, accelerates to 6s on hover. <code style={{ fontFamily: "var(--mono)", fontSize: 13, background: "rgba(14,14,12,0.05)", padding: "1px 5px", borderRadius: 3 }}>#FBBF24 → #F472B6 → #A78BFA → #60A5FA → #FBBF24</code>.</p>
            </div>
          </div>
          <div className="sys-grid">
            <div className="sys-key">Reduced motion</div>
            <div className="sys-val">
              <p>Dashes resolve to solid lines at 55% opacity. The CTA gradient freezes to a static violet → blue. The page remains fully functional and visually intact in stillness.</p>
            </div>
          </div>
          <div className="sys-grid">
            <div className="sys-key">Hover & scroll</div>
            <div className="sys-val">
              <p>No transforms, no scale-on-hover, no scroll-jacking, no parallax, no scroll-triggered reveals. Color shifts only. The page scrolls like a document.</p>
            </div>
          </div>
        </div>
      </section>

      {/* ── Layout ──────────────────────────────────────────────────── */}
      <hr className="rule" />
      <section className="shell">
        <div className="col-text">
          <h2 className="head">Layout.</h2>
        </div>

        <div className="col-text" style={{ marginTop: 24 }}>
          <div className="sys-grid">
            <div className="sys-key">Columns</div>
            <div className="sys-val">
              <p>Text column: 680px, left-aligned. Diagram column: 960px max, allowed to break out. Source grid: 720px. Mobile: 92% viewport width.</p>
            </div>
          </div>
          <div className="sys-grid">
            <div className="sys-key">Rhythm</div>
            <div className="sys-val">
              <p>Section padding: 48px top &amp; bottom (mobile 36px). Hairline rules between sections. Diagrams sit 28px from the surrounding copy, left-aligned with the text column.</p>
            </div>
          </div>
          <div className="sys-grid">
            <div className="sys-key">Alignment</div>
            <div className="sys-val">
              <p>Everything left-aligned. The final CTA is the only centered block — one line of display serif, one centered button, one mono reassurance line.</p>
            </div>
          </div>
        </div>
      </section>

      {/* ── Q&A and section labels ──────────────────────────────────── */}
      <hr className="rule" />
      <section className="shell">
        <div className="col-text">
          <h2 className="head">Patterns.</h2>
        </div>

        <div className="col-text" style={{ marginTop: 24 }}>
          <div className="sys-grid">
            <div className="sys-key">Section label</div>
            <div className="sys-val">
              <div className="section-label" style={{ margin: "4px 0 12px" }}>
                CATCHING UP <span className="em">— meetings, threads, emails</span>
              </div>
              <p>Inter 12px medium, uppercase, +0.08em tracking. Em-dash subtitle in sentence-case Graphite.</p>
            </div>
          </div>
          <div className="sys-grid">
            <div className="sys-key">Q&amp;A block</div>
            <div className="sys-val">
              <div className="qa" style={{ "--accent": "#EA4335", marginBottom: 12 }}>
                <p className="q">"Did Sarah reply to the Acme contract email?"</p>
                <p className="a">Yes, on Friday at 4:12pm. She asked for a 14-day extension on the SLA clause.</p>
              </div>
              <p>Italic serif question, sans-serif answer in Graphite, 2px left rule in the dominant source's brand color. Neutral rule (Ink at 30%) when the answer pulls from multiple sources.</p>
            </div>
          </div>
          <div className="sys-grid">
            <div className="sys-key">Colophon</div>
            <div className="sys-val">
              <p style={{ fontFamily: "var(--mono)", fontStyle: "italic", fontSize: 12,
                          lineHeight: 1.9, color: "var(--graphite)", opacity: 0.85 }}>
                Manifold.md is set in Source Serif 4, Inter, and JetBrains Mono.<br />
                © Manifold.md, 2026.
              </p>
              <p style={{ marginTop: 12 }}>The one place the editorial register peeks through. Italic mono, Graphite at 85%, several short lines. A publisher's mark on the last page of a book.</p>
            </div>
          </div>
        </div>
      </section>

      {/* ── What we don't do ────────────────────────────────────────── */}
      <hr className="rule" />
      <section className="shell">
        <div className="col-text">
          <h2 className="head">What we don't do.</h2>
          <p className="body">
            The page survives by what it refuses as much as by what it does. If any of
            these creep in during implementation, they are removed.
          </p>
          <ul style={{ fontFamily: "var(--serif)", fontSize: 17, lineHeight: 1.7,
                       paddingLeft: 22, margin: "8px 0 0", color: "var(--ink)" }}>
            <li>Gradient backgrounds, gradient text, gradient overlays (the two CTAs are the only exception)</li>
            <li>Glassmorphism, frosted glass, backdrop blur on hero elements</li>
            <li>Customer logo carousel, "trusted by" bar, testimonial cards, social proof</li>
            <li>Feature comparison tables with checkmarks and crosses</li>
            <li>Three-up "why us" grids</li>
            <li>3D illustrations, isometric scenes, AI-generated hero imagery</li>
            <li>Stat counters that animate on scroll</li>
            <li>Newsletter signup forms, cookie banners with personality, chatbot widgets</li>
            <li>Hover scale or rotate on anything</li>
            <li>The banned-word list: <em>leverage, unlock, empower, revolutionize, seamless, cutting-edge, next-generation, AI-powered, transform, supercharge</em></li>
            <li>The word "AI" more than twice on the homepage (currently: zero)</li>
          </ul>
        </div>
      </section>

      {/* ── The brand, in full ──────────────────────────────────────── */}
      <hr className="rule" />
      <section className="shell">
        <div className="col-text">
          <h2 className="head">The brand, in full.</h2>
          <p className="body">
            What follows is the original brand document, reproduced here so this page
            stands alone. The marketing surfaces above quote a register; this section
            defines it.
          </p>
        </div>

        <div className="col-text" style={{ marginTop: 32 }}>
          <h3 style={{ fontFamily: "var(--serif-display)", fontWeight: 600, fontSize: 24,
                       margin: "32px 0 16px", letterSpacing: "-0.01em" }}>
            Two registers.
          </h3>
          <p className="body">
            Manifold.md has two registers. The first is editorial — the long-arc voice of
            a publication. It lives in the notebook, on the <code style={{ fontFamily: "var(--mono)",
            fontSize: "0.92em", background: "rgba(14,14,12,0.05)", padding: "1px 5px",
            borderRadius: 3 }}>/agents.md</code> page, in the colophon, and in any future
            printed artifact. The second is the classical product page — closer to Linear,
            Vercel, Resend, Anthropic's own marketing pages — used on the homepage, pricing,
            and any conversion-oriented surface.
          </p>
          <p className="body">
            The homepage and pricing page belong to the second register. They <em>quote</em>{" "}
            the editorial register only at the colophon — a deliberate publisher's mark at
            the bottom of the page, the way a small italic line appears on the last leaf of
            a book.
          </p>

          <h3 style={{ fontFamily: "var(--serif-display)", fontWeight: 600, fontSize: 24,
                       margin: "40px 0 16px", letterSpacing: "-0.01em" }}>
            Voice.
          </h3>
          <p className="body">
            <strong>Plain over technical. Calm over urgent.</strong> Those are the two
            sentences pinned above the writer's desk. Every line on the page passes both
            filters before it is allowed to stay.
          </p>
          <p className="body">
            Plain over technical means the page never reaches for jargon when an ordinary
            word will do. <em>"Manifold makes Claude fluent in your company"</em> says what
            the product does. <em>"A queryable memory layer for modern companies"</em>{" "}
            says nothing.
          </p>
          <p className="body">
            Calm over urgent means the page never raises its voice. No countdown timers, no{" "}
            <em>limited beta</em>, no <em>spots filling fast</em>, no animation that
            telegraphs hurry. The dashed-line diagrams animate, the rainbow CTA pulses, but
            both move on a 2.5-second and 10-second cadence respectively — slow enough to
            feel like watching a circulatory system rather than a notification.
          </p>
          <p className="body">
            <strong>Banned words.</strong> The following do not appear on any marketing
            surface: <em>leverage, unlock, empower, revolutionize, seamless, cutting-edge,
            next-generation, AI-powered, transform, supercharge</em>. They are not banned
            because they are wrong — they are banned because they are the words every
            competitor reaches for, and reaching for them is how a brand becomes
            interchangeable with every other brand in its category.
          </p>
          <p className="body">
            <strong>The word "AI" appears at most twice on the homepage.</strong> Currently
            zero. Keep it that way. The product is about Claude becoming fluent in a company;
            the abstraction "AI" is the wrong frame.
          </p>

          <h3 style={{ fontFamily: "var(--serif-display)", fontWeight: 600, fontSize: 24,
                       margin: "40px 0 16px", letterSpacing: "-0.01em" }}>
            Negative space.
          </h3>
          <p className="body">
            What the marketing pages refuse is as important as what they include. None of
            the following appear, ever:
          </p>
          <ul style={{ fontFamily: "var(--serif)", fontSize: 17, lineHeight: 1.7,
                       paddingLeft: 22, margin: "0 0 1.4em", color: "var(--ink)" }}>
            <li>Customer logos in a row at the top of the page</li>
            <li>Testimonial cards with circular headshots</li>
            <li>Team photos, founder photos, office photos</li>
            <li>SOC 2 badges, security trust seals, "ISO certified" graphics</li>
            <li>"Book a demo" buttons, calendar embeds, SDR call-to-action language</li>
            <li>Mascots, illustrated characters, hand-drawn flourishes</li>
            <li>Newsletter signup forms</li>
            <li>Countdown timers, urgency banners, "limited beta" framing</li>
            <li>Cookie banners with personality, chatbot widgets in the corner</li>
            <li>3D illustrations, isometric scenes, AI-generated hero imagery</li>
            <li>Background blobs, floating shapes, gradient overlays</li>
            <li>Glassmorphism, frosted-glass effects, backdrop blur</li>
            <li>Feature comparison tables with checkmarks and crosses</li>
            <li>"Why us" three-up grids</li>
            <li>Stat counters that animate on scroll</li>
            <li>Anything that scales or rotates on hover</li>
          </ul>
          <p className="body">
            The pricing page makes one deliberate exception: a two-column mono "Included
            monthly / Beyond that" table. It is not a comparison grid — it has no checkmarks,
            no crosses, no "most popular" badge, and it compares one plan against itself,
            not against rivals.
          </p>

          <h3 style={{ fontFamily: "var(--serif-display)", fontWeight: 600, fontSize: 24,
                       margin: "40px 0 16px", letterSpacing: "-0.01em" }}>
            Typography.
          </h3>
          <p className="body">
            One serif family at display and text weight, paired with one clean sans for UI
            and one mono for code. The serif carries the page; the sans handles buttons,
            captions, and section labels; the mono handles code, the <code style={{ fontFamily: "var(--mono)",
            fontSize: "0.92em", background: "rgba(14,14,12,0.05)", padding: "1px 5px",
            borderRadius: 3 }}>.md</code> in the wordmark, and small uppercase
            tracked labels.
          </p>
          <p className="body">
            The reference family is <strong>GT Super</strong> (Display semibold for
            headlines, Text regular for body). The implemented fallback is{" "}
            <strong>Source Serif 4</strong>, free via Google Fonts, used at the same weights
            and sizes. The hierarchy holds under either family.
          </p>
          <p className="body">
            <strong>Display headlines</strong> — semibold, hero at 64–72px desktop / 40px
            mobile, section heads at 36–40px / 28px mobile. Letter-spacing −0.02em on hero,
            −0.015em on heads. Generous balance with <code style={{ fontFamily: "var(--mono)",
            fontSize: "0.92em", background: "rgba(14,14,12,0.05)", padding: "1px 5px",
            borderRadius: 3 }}>text-wrap: balance</code>.
          </p>
          <p className="body">
            <strong>Body</strong> — 19px desktop / 17px mobile, regular weight, 1.65
            line-height, 1.4em between paragraphs. Pages of body copy should read like a
            well-set product blog.
          </p>
          <p className="body">
            <strong>UI, captions, mono labels, code</strong> — Inter at 14–16px for buttons
            and captions; Inter 12px medium with +0.08em tracking and uppercase for section
            labels; JetBrains Mono 13–15px for code and the colophon.
          </p>
          <p className="body">
            <strong>The wordmark</strong> — <span style={{ fontFamily: "var(--serif-display)",
            fontWeight: 600 }}>Manifold</span><span style={{ fontFamily: "var(--mono)" }}>.md</span>{" "}
            — combines the serif display name with the mono extension. Both Ink. The{" "}
            <code style={{ fontFamily: "var(--mono)", fontSize: "0.92em",
            background: "rgba(14,14,12,0.05)", padding: "1px 5px", borderRadius: 3 }}>.md</code>{" "}
            is not a decoration — it is part of the brand. Markdown is the medium the product
            operates in; the extension belongs in the name.
          </p>

          <h3 style={{ fontFamily: "var(--serif-display)", fontWeight: 600, fontSize: 24,
                       margin: "40px 0 16px", letterSpacing: "-0.01em" }}>
            Color, in three sources.
          </h3>
          <p className="body">
            <strong>One — Page chrome.</strong> Ink <code style={{ fontFamily: "var(--mono)",
            fontSize: "0.92em", background: "rgba(14,14,12,0.05)", padding: "1px 5px",
            borderRadius: 3 }}>#0E0E0C</code> on Paper{" "}
            <code style={{ fontFamily: "var(--mono)", fontSize: "0.92em",
            background: "rgba(14,14,12,0.05)", padding: "1px 5px", borderRadius: 3 }}>#FAFAF7</code>.
            Graphite <code style={{ fontFamily: "var(--mono)", fontSize: "0.92em",
            background: "rgba(14,14,12,0.05)", padding: "1px 5px", borderRadius: 3 }}>#5A5A57</code>{" "}
            for secondary text. Hairline rules at Ink 12% opacity. This is 95% of the page.
            Calm, editorial, classical.
          </p>
          <p className="body">
            <strong>Two — Real third-party logos.</strong> The logos of every connected tool
            appear in the diagrams and the sources grid as literal brand logos, pulled from
            each company's published brand-asset kit, in their official colors. Never
            recreated, never tinted, never stylized, never enclosed in a brand-shaped
            container. The logos do the color work; we don't abstract them into icons or
            color swatches.
          </p>
          <p className="body">
            <strong>Three — The animated rainbow CTA.</strong> The brand's single signature
            accent. The primary "Open in Claude" buttons use an animated gradient border —
            amber → pink → violet → blue → amber — flowing on a 10-second cycle, ease-in-out,
            infinite. The inner button is solid Ink with Paper text. The border is the only
            piece of alive, AI-native energy on an otherwise still page. It appears at most
            twice per page, at the moments where conversion happens. Nowhere else gets a
            gradient.
          </p>
          <p className="body">
            <strong>Brand strokes inside diagrams.</strong> The animated dashed lines
            flowing from each source into the Manifold node take the dominant brand color
            of that source — Gmail Red, Drive Green, Notion Black, Slack Aubergine, and so
            on. This is the only place where we extract a single color from a multi-color
            logo and use it as a stroke. The full table is above.
          </p>
          <p className="body">
            <strong>Dark mode.</strong> Background flips to{" "}
            <code style={{ fontFamily: "var(--mono)", fontSize: "0.92em",
            background: "rgba(14,14,12,0.05)", padding: "1px 5px", borderRadius: 3 }}>#0E0E0C</code>;
            text to <code style={{ fontFamily: "var(--mono)", fontSize: "0.92em",
            background: "rgba(14,14,12,0.05)", padding: "1px 5px", borderRadius: 3 }}>#E5E2DA</code>.
            Brand strokes whose source color is too dark to read on dark Paper (Notion,
            GitHub, Slack, Postgres) are auto-blended 62% toward Paper. Brand identity is
            preserved; contrast is gained. The rainbow palette reads beautifully against
            both backgrounds and stays identical.
          </p>

          <h3 style={{ fontFamily: "var(--serif-display)", fontWeight: 600, fontSize: 24,
                       margin: "40px 0 16px", letterSpacing: "-0.01em" }}>
            Layout.
          </h3>
          <p className="body">
            Single column, 680px wide, left-aligned. Diagrams allowed to break out to 960px.
            The source grid sits at 720px. Mobile drops to 92% viewport width, hero to 40px,
            body to 17px.
          </p>
          <p className="body">
            Section spacing: 48px top and bottom on desktop (36px mobile). Hairline rules
            between sections, except where a diagram does the dividing. Diagrams sit 28px
            from the surrounding copy and align flush-left with the text column — they do
            not center.
          </p>
          <p className="body">
            <strong>Alignment is a brand decision.</strong> Everything left-aligned. The
            final CTA section is the only centered block on the page — one line of display
            serif, one centered button, one mono reassurance line. The asymmetry of left
            everything and a single centered ending is part of the rhythm.
          </p>

          <h3 style={{ fontFamily: "var(--serif-display)", fontWeight: 600, fontSize: 24,
                       margin: "40px 0 16px", letterSpacing: "-0.01em" }}>
            Motion, and what doesn't move.
          </h3>
          <p className="body">
            Two continuously animating elements, both slow. The dashed lines in the
            diagrams flow inward at 2.5 seconds per cycle. The rainbow CTA border flows at
            10 seconds, accelerating to 6 on hover. Everything else is still.
          </p>
          <p className="body">
            <strong>No scroll-jacking.</strong> No parallax. No scroll-triggered reveals.
            No fade-in-on-view section animations. The page scrolls like a document.
          </p>
          <p className="body">
            <strong>Hover.</strong> Color shifts only, on interactive elements. No
            transforms, no scale, no rotation, no shadow that grows. A button is a button;
            it does not jump when you point at it.
          </p>
          <p className="body">
            <strong>Reduced motion.</strong> Under{" "}
            <code style={{ fontFamily: "var(--mono)", fontSize: "0.92em",
            background: "rgba(14,14,12,0.05)", padding: "1px 5px", borderRadius: 3 }}>prefers-reduced-motion: reduce</code>,
            all infinite animations stop. Dashed lines resolve to solid strokes at 55%
            opacity. The rainbow gradient freezes to a static violet → blue. The page
            remains fully legible and visually intact in stillness — calm in motion, calm
            without it.
          </p>

          <h3 style={{ fontFamily: "var(--serif-display)", fontWeight: 600, fontSize: 24,
                       margin: "40px 0 16px", letterSpacing: "-0.01em" }}>
            Diagrams as the visual identity.
          </h3>
          <p className="body">
            Three diagrams carry the visual identity of the marketing pages. Together they
            define what Manifold <em>looks like</em>.
          </p>
          <p className="body">
            <strong>The hero flux diagram.</strong> A column of real source logos on the
            left, each emitting a slowly flowing dashed line in its brand color, all
            converging into a node labeled <span style={{ fontFamily: "var(--serif-display)",
            fontWeight: 600 }}>Manifold</span><span style={{ fontFamily: "var(--mono)" }}>.md</span>.
            From that node, one thicker Ink-colored dashed line flows further right to the
            Claude wordmark. The eye reads it in two seconds: tools on the left, Manifold
            in the middle, Claude on the right.
          </p>
          <p className="body">
            <strong>The entity-resolution diagram.</strong> Four corners around a central
            node. Each corner holds a source logo and the name that source uses for the
            same project: Notion's <em>"Meridian,"</em> Linear's{" "}
            <em>"Q3-2026-Customer-Portal,"</em> Slack's{" "}
            <code style={{ fontFamily: "var(--mono)", fontSize: "0.92em",
            background: "rgba(14,14,12,0.05)", padding: "1px 5px", borderRadius: 3 }}>#meridian-team</code>,
            Drive's <em>"2026 — Customer Portal Initiative."</em> Four dashed lines in the
            four brand colors converge into the center node:{" "}
            <span style={{ fontFamily: "var(--serif-display)", fontWeight: 600 }}>Project Meridian</span>.
            The diagram makes the argument before the prose does.
          </p>
          <p className="body">
            <strong>The "How it works" track.</strong> Three nodes in a horizontal row:
            Install, Connect, Ask. Dashed lines between them animate left to right. The
            three nodes themselves do not move.
          </p>
          <p className="body">
            <strong>What the diagrams refuse.</strong> No shadows, no gradients (the only
            color is the source brand stroke), no hover states beyond accessibility
            tooltips, no scroll-triggered behavior, no play/pause controls. They animate
            continuously, calmly, regardless of where the user is on the page.
          </p>

          <h3 style={{ fontFamily: "var(--serif-display)", fontWeight: 600, fontSize: 24,
                       margin: "40px 0 16px", letterSpacing: "-0.01em" }}>
            Iconography.
          </h3>
          <p className="body">
            <strong>Third-party logos</strong> are the heart of the marketing surfaces'
            visual identity. They appear in all three diagrams and in the sources grid.
            Always pulled from each company's official brand-asset kit, always in official
            colors, sized 20–32px depending on context. Never recreated, never tinted,
            never given a custom container.
          </p>
          <p className="body">
            <strong>The Claude wordmark</strong> appears in two diagrams — the hero flux
            diagram and the "How it works" track — using the official Anthropic-published
            wordmark in full color, never recolored.
          </p>
          <p className="body">
            <strong>Utility iconography</strong> — arrows, the speech bubble in the "How it
            works" diagram — uses a single line-icon family (Phosphor or Lucide), 1.5px
            stroke, Ink color. Never colorized. No illustration beyond this. No 3D, no
            emoji, no isometric scenes, no decorative SVG flourishes.
          </p>

          <h3 style={{ fontFamily: "var(--serif-display)", fontWeight: 600, fontSize: 24,
                       margin: "40px 0 16px", letterSpacing: "-0.01em" }}>
            The colophon.
          </h3>
          <p className="body">
            The single place on the marketing pages where the editorial register peeks
            through. Italic mono, 12px, Graphite at 85% opacity, several short lines: the
            typefaces used, a sentence about the wordmark, a note that the product is
            closed-source while the <code style={{ fontFamily: "var(--mono)",
            fontSize: "0.92em", background: "rgba(14,14,12,0.05)", padding: "1px 5px",
            borderRadius: 3 }}>agents.md</code> convention is open, a signature, a year.
            A publisher's mark on the last page of a book. Nothing else on the page
            quotes this register — that is what makes it work.
          </p>

          <h3 style={{ fontFamily: "var(--serif-display)", fontWeight: 600, fontSize: 24,
                       margin: "40px 0 16px", letterSpacing: "-0.01em" }}>
            Accessibility.
          </h3>
          <p className="body">
            Color contrast meets WCAG AA on all body text in both light and dark modes.
            All diagrams carry descriptive <code style={{ fontFamily: "var(--mono)",
            fontSize: "0.92em", background: "rgba(14,14,12,0.05)", padding: "1px 5px",
            borderRadius: 3 }}>aria-label</code> text. Source logos carry{" "}
            <code style={{ fontFamily: "var(--mono)", fontSize: "0.92em",
            background: "rgba(14,14,12,0.05)", padding: "1px 5px", borderRadius: 3 }}>title</code>{" "}
            attributes for screen readers and tooltips on hover.{" "}
            <code style={{ fontFamily: "var(--mono)", fontSize: "0.92em",
            background: "rgba(14,14,12,0.05)", padding: "1px 5px", borderRadius: 3 }}>prefers-reduced-motion</code>{" "}
            disables every infinite animation. The page is fully legible without
            JavaScript-driven motion.
          </p>

          <h3 style={{ fontFamily: "var(--serif-display)", fontWeight: 600, fontSize: 24,
                       margin: "40px 0 16px", letterSpacing: "-0.01em" }}>
            The two-line filter.
          </h3>
          <p className="body" style={{ fontStyle: "italic" }}>
            Classical product page in its bones.<br />
            The editorial brand only at the colophon.
          </p>
          <p className="body">
            Pinned above the designer's desk. If a section feels precious, it is wrong for
            this surface. If a section feels like a SaaS template, also wrong. The midpoint —
            confident, restrained, calmly classical, with the third-party universe of tools
            breathing color into otherwise quiet typography — is the target.
          </p>

          <h3 style={{ fontFamily: "var(--serif-display)", fontWeight: 600, fontSize: 24,
                       margin: "40px 0 16px", letterSpacing: "-0.01em" }}>
            Decisions made during implementation.
          </h3>
          <p className="body">
            The brand document above is intact. Five small decisions were made while
            building the marketing pages, each in service of the same two-line filter.
          </p>
          <p className="body">
            <strong>One.</strong> The rainbow CTA border grew from the spec's 1.5px to 3px.
            At 1.5px the gradient read as a hairline glow more than a brand signature.
            Configurable per page via the Tweaks panel.
          </p>
          <p className="body">
            <strong>Two.</strong> A second CTA style was introduced — the{" "}
            <em>quiet CTA</em>: solid Ink outline, no animation. Used on non-recommended
            plans (Solo, Company). The rainbow stays meaningful by not being everywhere.
          </p>
          <p className="body">
            <strong>Three.</strong> Dark-mode legibility was added for dashed-line strokes
            and Q&amp;A accents. Very dark brand colors (Notion, GitHub, Slack, Postgres)
            are blended 62% toward Paper in dark mode. Mid- and light-tone brands pass
            through unchanged. Brand identity is preserved; contrast is gained.
          </p>
          <p className="body">
            <strong>Four.</strong> The hero flux diagram became a vertical column of 8 sources
            with curved bezier flows into Manifold, rather than the spec's left-arc of 15.
            Eleven logos in an arc was visually crowded at the page's actual diagram width;
            eight in a column reads cleanly and still says <em>your tools on the left</em>.
          </p>
          <p className="body">
            <strong>Five.</strong> A pricing page was added (<a href="Manifold.md Pricing.html">/pricing</a>).
            It uses one new pattern — a mono two-column table for{" "}
            <em>Included monthly / Beyond that</em> — which is a deliberate exception to the
            "no pricing tables" rule. Two columns, no checkmarks, no comparison grid.
          </p>
        </div>
      </section>

      {/* ── Colophon ────────────────────────────────────────────────── */}
      <footer className="shell">
        <div className="colophon">
          <span className="colo-line">Manifold.md is set in Source Serif 4, Inter, and JetBrains Mono.</span>
          <span className="colo-line">The wordmark combines Source Serif 4 (Manifold) and JetBrains Mono (.md).</span>
          <span className="colo-line">Manifold.md is closed-source software. The agents.md convention is published as an open specification at /spec.</span>
          <span className="colo-line">Built by an autonomous agent network with Florent as advisor.</span>
          <span className="colo-line">© Manifold.md, 2026.</span>
          <a className="toggle" onClick={(e) => { e.preventDefault(); setTweak("dark", !t.dark); }} href="#">
            {t.dark ? "Light mode" : "Dark mode"}
          </a>
        </div>
      </footer>

      {/* ── Tweaks panel ────────────────────────────────────────────── */}
      <TweaksPanel>
        <TweakSection label="Theme" />
        <TweakToggle  label="Dark mode" value={t.dark}
                      onChange={(v) => setTweak("dark", v)} />

        <TweakSection label="Motion" />
        <TweakSlider  label="Dash flow" value={t.dashSpeed}
                      min={1.5} max={6} step={0.1} unit="s"
                      onChange={(v) => setTweak("dashSpeed", v)} />
        <TweakSlider  label="Rainbow CTA" value={t.rainbowSpeed}
                      min={4} max={20} step={0.5} unit="s"
                      onChange={(v) => setTweak("rainbowSpeed", v)} />

        <TweakSection label="CTA" />
        <TweakSlider  label="Border width" value={t.ctaBorder}
                      min={1} max={6} step={0.5} unit="px"
                      onChange={(v) => setTweak("ctaBorder", v)} />
      </TweaksPanel>
    </div>
  );
}

const root = ReactDOM.createRoot(document.getElementById("root"));
root.render(<BrandApp />);
