diff --git a/apps/site/src/components/PackProductPage.astro b/apps/site/src/components/PackProductPage.astro index 217d767..08c9cd6 100644 --- a/apps/site/src/components/PackProductPage.astro +++ b/apps/site/src/components/PackProductPage.astro @@ -270,20 +270,20 @@ const { .status i { width: 0.5rem; height: 0.5rem; border-radius: 50%; background: var(--pack-accent); } h1, h2, h3, p { letter-spacing: 0; } h1 { - max-width: 15ch; + max-width: 16ch; margin: 0; - font-size: clamp(2.4rem, 4.4vw, 4.35rem); - line-height: 0.98; - letter-spacing: -0.035em; + font-size: clamp(2.2rem, 3.6vw, 3.6rem); + line-height: 1.08; + letter-spacing: -0.03em; text-wrap: balance; } .promise { max-width: 28ch; margin: 1.1rem 0 0; color: var(--cc-text); - font-size: clamp(1.2rem, 1.8vw, 1.55rem); + font-size: clamp(1.1rem, 1.5vw, 1.35rem); font-weight: 600; - line-height: 1.35; + line-height: 1.4; text-wrap: balance; } .lede { max-width: 62ch; margin: 0.8rem 0 0; color: var(--cc-text-body); font-size: 1.03rem; line-height: 1.65; } @@ -396,7 +396,7 @@ const { @media (max-width: 640px) { .pack-product { padding-inline: 1rem; } .product-hero { padding-top: 1.25rem; } - h1 { font-size: 2.45rem; } + h1 { font-size: clamp(1.8rem, 5.5vw, 2.2rem); } .value-list, .workflow-list { grid-template-columns: 1fr; } .workflow-list li + li { padding-left: 0; border-left: 0; } .product-nav { margin-inline: -1rem; overflow-x: auto; padding-inline: 1rem; } diff --git a/apps/site/src/pages/404.astro b/apps/site/src/pages/404.astro index 56b6292..bc94a31 100644 --- a/apps/site/src/pages/404.astro +++ b/apps/site/src/pages/404.astro @@ -10,7 +10,7 @@ import Base from '../layouts/Base.astro'; >

404

-

This page does not exist.

+

No layer has an answer for this page.

The address may be wrong, or the page may have moved. Try one of these instead:

@@ -31,7 +31,7 @@ import Base from '../layouts/Base.astro'; } .code { font-family: var(--cc-font-mono); - font-size: clamp(3rem, 12vw, 6rem); + font-size: clamp(2.5rem, 9vw, 5rem); font-weight: 700; line-height: 1; margin: 0; diff --git a/apps/site/src/pages/creators.astro b/apps/site/src/pages/creators.astro index b11db9e..9fe984e 100644 --- a/apps/site/src/pages/creators.astro +++ b/apps/site/src/pages/creators.astro @@ -33,22 +33,22 @@ const reviewSteps = [
-

What you are selling

+

What you’re selling

A useful Pack solves one repeatable job.

-

Do not try to fit an entire profession into one Pack. Start with a job people repeat: what they need to clarify, which rules apply, what a good result contains, and how they check it.

+

Don’t try to fit an entire profession into one Pack. Start with a job people repeat: what they need to clarify, which rules apply, what a good result contains, and how they check it.

Buyers can inspect the files, install them across tools, and keep their own organization-specific rules in a separate local layer that survives your updates.

-

Review process

We review every Pack before it is listed.

+

Review process

We review every Pack before it’s listed.

    {reviewSteps.map(([number, title, body]) =>
  1. {number}

    {title}

    {body}

  2. )}
-

Pricing

Choose the scope. We will agree on a price.

+

Pricing

Choose the scope. We’ll agree on a price.

Publishing is free. Buyers purchase a perpetual base Pack; you may also offer optional editorial updates when the subject genuinely changes.

@@ -69,7 +69,7 @@ const reviewSteps = [
-

Start with one workflow

+

Apply

Start with the workflow people already ask you about.

Tell us who does the work, what they repeat, which materials you own, and how the Pack would save them time.

Apply as a founding creator @@ -82,8 +82,8 @@ const reviewSteps = [ .eyebrow { margin: 0 0 1rem; color: var(--cc-text-muted); font-family: var(--cc-font-mono); font-size: 0.72rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; } h1, h2, h3, p { letter-spacing: 0; } .creator-hero { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(18rem, 0.55fr); gap: clamp(2.5rem, 5vw, 5.5rem); align-items: end; min-height: 33rem; padding: clamp(3.5rem, 6vw, 5.5rem) 0; border-bottom: 1px solid var(--cc-border-strong); } - h1 { max-width: 16ch; margin: 0; color: var(--cc-text); font-size: clamp(2.8rem, 4.8vw, 5.25rem); line-height: 0.96; letter-spacing: -0.05em; } - .lede { max-width: 48rem; margin: 1.5rem 0 0; font-size: clamp(1.15rem, 1.7vw, 1.5rem); line-height: 1.5; } + h1 { max-width: 17ch; margin: 0; color: var(--cc-text); font-size: clamp(2.3rem, 3.6vw, 4.1rem); line-height: 1.05; letter-spacing: -0.03em; } + .lede { max-width: 48rem; margin: 1.5rem 0 0; font-size: clamp(1.05rem, 1.2vw, 1.25rem); line-height: 1.55; } .hero-actions { display: flex; flex-wrap: wrap; gap: 0.75rem; margin-top: 2rem; } .button { display: inline-flex; align-items: center; justify-content: center; min-height: 3rem; padding: 0 1.15rem; border: 1px solid var(--cc-border-strong); color: var(--cc-text); font-weight: 700; text-decoration: none; transition: background var(--cc-transition), color var(--cc-transition), border-color var(--cc-transition); } .button.primary { border-color: var(--cc-text); background: var(--cc-text); color: var(--cc-surface-solid); } @@ -91,12 +91,12 @@ const reviewSteps = [ .button:not(.primary):hover { background: var(--cc-surface-soft); } .founding-share { padding: 1.5rem 0 0 1.5rem; border-top: 0.4rem solid var(--cc-layer-personal); border-left: 1px solid var(--cc-border); } .founding-share p { margin: 0; color: var(--cc-text-muted); font-family: var(--cc-font-mono); font-size: 0.72rem; text-transform: uppercase; } - .founding-share strong { display: block; margin-top: 0.6rem; color: var(--cc-text); font-size: clamp(3.75rem, 6vw, 6rem); line-height: 0.9; letter-spacing: -0.07em; } + .founding-share strong { display: block; margin-top: 0.6rem; color: var(--cc-text); font-size: clamp(3rem, 4.6vw, 4.75rem); line-height: 0.95; letter-spacing: -0.03em; } .founding-share span, .founding-share small { display: block; } .founding-share span { margin-top: 1rem; color: var(--cc-text); font-size: 1.2rem; line-height: 1.3; } .founding-share small { margin-top: 1.5rem; color: var(--cc-text-muted); line-height: 1.5; } .creator-thesis { padding: 7rem 0; } - .creator-thesis h2, .section-heading h2, .apply h2 { max-width: 19ch; margin: 0; color: var(--cc-text); font-size: clamp(2rem, 3.2vw, 3.75rem); line-height: 1; letter-spacing: -0.04em; } + .creator-thesis h2, .section-heading h2, .apply h2 { max-width: 19ch; margin: 0; color: var(--cc-text); font-size: clamp(1.8rem, 2.6vw, 2.9rem); line-height: 1.1; letter-spacing: -0.03em; } .thesis-columns { display: grid; grid-template-columns: 1fr 1fr; gap: 3rem; margin: 3rem 0 0 25%; } .thesis-columns p { margin: 0; font-size: 1.08rem; line-height: 1.7; } .review-flow, .creator-economics, .trust-boundary { padding: 6rem 0; border-top: 1px solid var(--cc-border-strong); } @@ -120,7 +120,7 @@ const reviewSteps = [ .payout-note strong { color: var(--cc-text); } .payout-note p { margin: 0; } .trust-boundary { display: grid; grid-template-columns: minmax(0, 0.75fr) minmax(0, 1.25fr); gap: 4rem; } - .trust-boundary h2 { max-width: 12ch; margin: 0; color: var(--cc-text); font-size: clamp(2.2rem, 4vw, 4.2rem); line-height: 0.95; } + .trust-boundary h2 { max-width: 12ch; margin: 0; color: var(--cc-text); font-size: clamp(1.9rem, 3.2vw, 3.2rem); line-height: 1.08; letter-spacing: -0.02em; } .trust-list { border-top: 1px solid var(--cc-border-strong); } .trust-list p { display: grid; grid-template-columns: 11rem 1fr; gap: 1.5rem; margin: 0; padding: 1.25rem 0; border-bottom: 1px solid var(--cc-border-strong); } .trust-list strong { color: var(--cc-text); } @@ -131,5 +131,5 @@ const reviewSteps = [ .apply > p:not(.eyebrow) { max-width: 54rem; margin: 1.5rem 0 2rem; font-size: 1.1rem; line-height: 1.65; } .apply .button.primary { border-color: var(--cc-inverse-cta); background: var(--cc-inverse-cta); color: var(--cc-inverse-on-cta); } @media (max-width: 820px) { .creator-hero, .section-heading.split, .trust-boundary { grid-template-columns: 1fr; } .thesis-columns { margin-left: 0; } } - @media (max-width: 620px) { .creator-hero { min-height: auto; padding-block: 3rem; } h1 { font-size: clamp(2.55rem, 10.5vw, 3.65rem); } .thesis-columns { grid-template-columns: 1fr; gap: 1.5rem; } .table-head, .table-row { grid-template-columns: minmax(0, 1fr) 5rem 5rem; font-size: 0.9rem; } .payout-note, .trust-list p { grid-template-columns: 1fr; gap: 0.5rem; } } + @media (max-width: 620px) { .creator-hero { min-height: auto; padding-block: 3rem; } h1 { font-size: clamp(2rem, 9vw, 2.6rem); } .thesis-columns { grid-template-columns: 1fr; gap: 1.5rem; } .table-head, .table-row { grid-template-columns: minmax(0, 1fr) 5rem 5rem; font-size: 0.9rem; } .payout-note, .trust-list p { grid-template-columns: 1fr; gap: 0.5rem; } } diff --git a/apps/site/src/pages/demo.astro b/apps/site/src/pages/demo.astro index 5e8946d..b902641 100644 --- a/apps/site/src/pages/demo.astro +++ b/apps/site/src/pages/demo.astro @@ -13,7 +13,7 @@ const narrativePoints = [ }, { title: 'The other answer stays visible', - body: 'An override does not erase the value it replaced.', + body: 'An override doesn’t erase the value it replaced.', }, { title: 'One place to inspect both', @@ -45,8 +45,8 @@ const narrativePoints = [

What to look for

Company, team, and personal layers.

- Company policy, team practice, and local judgment resolve section by section. Source - and dissent stay in view. + The same question can get a different answer at each layer. The resolver picks per + section and shows its work.

@@ -272,9 +272,9 @@ const narrativePoints = [ margin: 0; } h1 { - max-width: 12ch; - font-size: clamp(2.6rem, 5vw, 4.5rem); - line-height: 0.96; + max-width: 13ch; + font-size: clamp(2.1rem, 3.6vw, 3.5rem); + line-height: 1.08; } .lede, .scenario p, @@ -342,8 +342,8 @@ const narrativePoints = [ padding: 1.3rem; } .scenario h2 { - font-size: clamp(1.55rem, 3vw, 2.15rem); - line-height: 1.02; + font-size: clamp(1.4rem, 2.2vw, 1.85rem); + line-height: 1.15; margin-bottom: 0.9rem; } .scenario p { @@ -568,8 +568,8 @@ const narrativePoints = [ } .signals h2 { - font-size: clamp(2rem, 4vw, 3rem); - line-height: 0.98; + font-size: clamp(1.8rem, 3vw, 2.6rem); + line-height: 1.1; max-width: 14ch; margin-bottom: 1.5rem; } diff --git a/apps/site/src/pages/index.astro b/apps/site/src/pages/index.astro index b14d555..8bb245d 100644 --- a/apps/site/src/pages/index.astro +++ b/apps/site/src/pages/index.astro @@ -62,7 +62,7 @@ const principles = [ { number: '02', title: 'Missing sections fall back to the next layer.', - body: 'If your personal layer says nothing about ownership, ContextCake uses the team or company answer. You do not have to copy everything into one file.', + body: 'If your personal layer says nothing about ownership, ContextCake uses the team or company answer. You don’t have to copy everything into one file.', layer: 'team', }, { @@ -120,8 +120,9 @@ const mcpTools = ['search', 'read_file', 'list_concepts', 'get_links', 'find_cap

ContextCake · local context and installable Packs

Keep your working knowledge where your AI tools can use it.

- Store company guidance, team practices, and your own notes in readable local files. - ContextCake resolves those layers into answers for ChatGPT, Claude, Cursor, and other tools. + Your company’s guidance, your team’s practices, and your own notes live in plain + local files. ContextCake resolves those layers into one answer for ChatGPT, Claude, + Cursor, and other tools.

@@ -189,7 +190,7 @@ const mcpTools = ['search', 'read_file', 'list_concepts', 'get_links', 'find_cap

01 / The idea

Different rules belong to different people.

- Company policy, team practice, and personal judgment do not always match. ContextCake + Company policy, team practice, and personal judgment don’t always match. ContextCake keeps them in separate layers and resolves the answer section by section.

@@ -383,12 +384,12 @@ const mcpTools = ['search', 'read_file', 'list_concepts', 'get_links', 'find_cap min-width: 0; } .hero h1 { - max-width: 14ch; - margin-bottom: 1.6rem; - font-size: clamp(2.9rem, 4.4vw, 5.2rem); + max-width: 15ch; + margin-bottom: 1.5rem; + font-size: clamp(2.4rem, 3.5vw, 4.1rem); font-weight: 600; - letter-spacing: -0.05em; - line-height: 0.96; + letter-spacing: -0.03em; + line-height: 1.05; text-wrap: balance; } .hero h1 em { @@ -399,8 +400,8 @@ const mcpTools = ['search', 'read_file', 'list_concepts', 'get_links', 'find_cap .hero-lede { max-width: 38rem; margin-bottom: 1.75rem; - font-size: clamp(1.05rem, 1.45vw, 1.3rem); - line-height: 1.55; + font-size: clamp(1rem, 1.1vw, 1.15rem); + line-height: 1.6; } .hero-actions, .product-links, @@ -481,12 +482,12 @@ const mcpTools = ['search', 'read_file', 'list_concepts', 'get_links', 'find_cap color: var(--cc-layer-team); } .thesis h2 { - max-width: 15ch; - margin-bottom: 2rem; - font-size: clamp(3rem, 6.4vw, 7rem); + max-width: 16ch; + margin-bottom: 1.75rem; + font-size: clamp(2.4rem, 4.2vw, 4.5rem); font-weight: 500; - letter-spacing: -0.055em; - line-height: 0.96; + letter-spacing: -0.035em; + line-height: 1.05; color: var(--cc-paper); } :global(body.theme-paper) .thesis h2 { @@ -495,8 +496,8 @@ const mcpTools = ['search', 'read_file', 'list_concepts', 'get_links', 'find_cap .thesis > p:last-child { max-width: 41rem; margin: 0 0 0 auto; - font-size: clamp(1.15rem, 1.8vw, 1.5rem); - line-height: 1.55; + font-size: clamp(1.05rem, 1.3vw, 1.25rem); + line-height: 1.6; color: rgba(255, 253, 246, 0.78); } @@ -509,11 +510,11 @@ const mcpTools = ['search', 'read_file', 'list_concepts', 'get_links', 'find_cap padding-bottom: clamp(5rem, 10vw, 9rem); } .section-heading h2 { - max-width: 12ch; - font-size: clamp(2.6rem, 4.5vw, 5rem); + max-width: 13ch; + font-size: clamp(1.9rem, 3vw, 3.25rem); font-weight: 500; - letter-spacing: -0.05em; - line-height: 0.98; + letter-spacing: -0.03em; + line-height: 1.08; } .principles { list-style: none; @@ -540,8 +541,8 @@ const mcpTools = ['search', 'read_file', 'list_concepts', 'get_links', 'find_cap } .principle-copy h3 { margin-bottom: 0.5rem; - font-size: clamp(1.25rem, 2vw, 1.75rem); - line-height: 1.15; + font-size: clamp(1.15rem, 1.4vw, 1.4rem); + line-height: 1.25; } .principle-copy p { max-width: 38rem; @@ -582,11 +583,11 @@ const mcpTools = ['search', 'read_file', 'list_concepts', 'get_links', 'find_cap color: var(--cc-layer-personal); } .product-copy h2 { - max-width: 12ch; - font-size: clamp(2.8rem, 5vw, 5.5rem); + max-width: 13ch; + font-size: clamp(2rem, 3.4vw, 3.5rem); font-weight: 500; - letter-spacing: -0.055em; - line-height: 0.98; + letter-spacing: -0.03em; + line-height: 1.08; color: var(--cc-text); } :global(body.theme-paper) .product-copy h2 { @@ -595,7 +596,7 @@ const mcpTools = ['search', 'read_file', 'list_concepts', 'get_links', 'find_cap .product-detail > p { max-width: 34rem; margin-bottom: 1.75rem; - font-size: 1.05rem; + font-size: 1rem; line-height: 1.65; } .button--light { @@ -633,17 +634,17 @@ const mcpTools = ['search', 'read_file', 'list_concepts', 'get_links', 'find_cap padding-bottom: clamp(5rem, 9vw, 9rem); } .packs-stage h2 { - max-width: 14ch; + max-width: 15ch; margin-bottom: 0; - font-size: clamp(2.8rem, 5vw, 5.4rem); + font-size: clamp(2rem, 3.4vw, 3.5rem); font-weight: 500; - letter-spacing: -0.055em; - line-height: 0.96; + letter-spacing: -0.03em; + line-height: 1.08; } .packs-stage-detail > p { max-width: 38rem; margin-bottom: 2rem; - font-size: 1.08rem; + font-size: 1.02rem; line-height: 1.7; color: var(--home-muted); } @@ -898,14 +899,14 @@ const mcpTools = ['search', 'read_file', 'list_concepts', 'get_links', 'find_cap border-top: 1px solid var(--cc-paper-line); } .closing h2 { - font-size: clamp(3.2rem, 5.5vw, 6.2rem); + font-size: clamp(2.25rem, 4vw, 3.75rem); font-weight: 500; - letter-spacing: -0.06em; - line-height: 0.92; + letter-spacing: -0.03em; + line-height: 1.05; } .closing > div:first-child > p:not(.section-number) { max-width: 37rem; - font-size: 1.05rem; + font-size: 1rem; line-height: 1.65; } .closing-download { @@ -991,7 +992,7 @@ const mcpTools = ['search', 'read_file', 'list_concepts', 'get_links', 'find_cap padding-top: 3rem; } .hero h1 { - font-size: clamp(2.6rem, 11vw, 3.7rem); + font-size: clamp(2.1rem, 9vw, 2.75rem); } .hero-lede { font-size: 1rem; @@ -1000,7 +1001,7 @@ const mcpTools = ['search', 'read_file', 'list_concepts', 'get_links', 'find_cap padding-inline: 1.25rem; } .thesis h2 { - font-size: clamp(2.8rem, 14vw, 4rem); + font-size: clamp(2rem, 10vw, 2.75rem); } .principles li { grid-template-columns: 2rem 1fr; diff --git a/apps/site/src/pages/install.astro b/apps/site/src/pages/install.astro index 3e096f4..37b12da 100644 --- a/apps/site/src/pages/install.astro +++ b/apps/site/src/pages/install.astro @@ -121,7 +121,7 @@ const formatDate = (iso: string) => dateFormatter.format(new Date(`${iso}T00:00:

From download to a sourced answer.

-

No archive, checksum, or manifest is required for the Mac app.

+

The Mac app needs no archive, checksum, or manifest.

    @@ -224,7 +224,7 @@ const formatDate = (iso: string) => dateFormatter.format(new Date(`${iso}T00:00:
    Recommended source route

    Download and verify the archive

    -

    The checksum stops the workflow before extraction if the bytes do not match.

    +

    The checksum stops the workflow before extraction if the bytes don’t match.

    @@ -306,18 +306,18 @@ const formatDate = (iso: string) => dateFormatter.format(new Date(`${iso}T00:00: text-transform: uppercase; } h1 { - max-width: 11ch; + max-width: 13ch; margin: 1.15rem 0 1.35rem; - font-size: clamp(3rem, 6vw, 5.6rem); - line-height: 0.98; - letter-spacing: -0.035em; + font-size: clamp(2.4rem, 3.8vw, 4.25rem); + line-height: 1.08; + letter-spacing: -0.03em; text-wrap: balance; } .lede { max-width: 39rem; margin: 0; color: var(--cc-text-body); - font-size: clamp(1.05rem, 1.5vw, 1.2rem); + font-size: clamp(1rem, 1.2vw, 1.15rem); line-height: 1.65; text-wrap: pretty; } @@ -534,9 +534,9 @@ const formatDate = (iso: string) => dateFormatter.format(new Date(`${iso}T00:00: .section-intro h2 { max-width: 15ch; margin: 0; - font-size: clamp(2.2rem, 5vw, 4.5rem); - line-height: 1; - letter-spacing: -0.035em; + font-size: clamp(1.9rem, 3.4vw, 3.4rem); + line-height: 1.1; + letter-spacing: -0.03em; text-wrap: balance; } .section-intro > p { @@ -825,7 +825,7 @@ const formatDate = (iso: string) => dateFormatter.format(new Date(`${iso}T00:00: } @media (max-width: 520px) { .install-page { padding-inline: 1rem; } - h1 { font-size: clamp(2.65rem, 14vw, 4rem); } + h1 { font-size: clamp(2rem, 11vw, 2.75rem); } .hero-actions, .hero-actions .button, .download-strip, diff --git a/apps/site/src/pages/packs/contextcake.astro b/apps/site/src/pages/packs/contextcake.astro index 8fe3e67..18d1eec 100644 --- a/apps/site/src/pages/packs/contextcake.astro +++ b/apps/site/src/pages/packs/contextcake.astro @@ -26,7 +26,7 @@ const featuredFiles = [ name="ContextCake Context Pack" status="Available free" headline="Keep the ContextCake reference inside your project." - lede="Architecture, setup, examples, and the sharp edges worth knowing—kept in files your assistant can reference while you work." + lede="Architecture, setup, examples, and the sharp edges worth knowing, kept in files your assistant can reference while you work." actions={[ { label: 'Browse the files', href: '#explorer', primary: true }, { label: 'License & updates', href: '#availability' }, @@ -70,7 +70,7 @@ const featuredFiles = [ availability={{ id: 'availability', title: 'Free to read, install, and keep', - description: 'This first-party Pack and its corrections stay free. You do not need ContextCake Pro or an account to use it.', + description: 'This first-party Pack and its corrections stay free. You don’t need ContextCake Pro or an account to use it.', plans: [{ label: 'Free Pack', price: 'Free', @@ -106,7 +106,7 @@ const featuredFiles = [ }} trustRows={[ ['Source', 'First-party reference material maintained by ContextCake.'], - ['Permissions', 'Content only—no scripts, network access, credentials, or hidden services.'], + ['Permissions', 'Content only. No scripts, network access, credentials, or hidden services.'], ['Updates', 'Corrections remain free and every release keeps a visible changelog.'], ]} faqs={[ diff --git a/apps/site/src/pages/packs/data-analytics-teams.astro b/apps/site/src/pages/packs/data-analytics-teams.astro index d89f550..3587652 100644 --- a/apps/site/src/pages/packs/data-analytics-teams.astro +++ b/apps/site/src/pages/packs/data-analytics-teams.astro @@ -37,7 +37,7 @@ const availabilityPlans = paymentsLive { label: 'Team license', price: '$249', priceSuffix: 'one-time', cadence: 'Up to five named users.', - body: 'The same complete Pack licensed for a small analytics team, with the delivered version retained permanently.', + body: 'The same complete Pack licensed for a small analytics team, and the delivered version is yours to keep.', href: LEMONSQUEEZY_TEAM_PACK_URL, link: 'Buy for a team', }, { @@ -56,14 +56,14 @@ const availabilityPlans = paymentsLive }, { label: 'Personal license', price: '$99', priceSuffix: 'one-time', - cadence: 'One named user · retained permanently.', + cadence: 'One named user · yours to keep.', body: 'The full Pack as plain files with cross-tool guidance. ContextCake Pro is not required.', link: 'Coming soon', disabled: true, }, { label: 'Team license', price: '$249', priceSuffix: 'one-time', cadence: 'Up to five named users.', - body: 'Optional editorial updates are planned separately. Canceling updates never disables retained files.', + body: 'Optional editorial updates are planned separately. Canceling updates never disables files you already have.', link: 'Coming soon', disabled: true, }, ]; @@ -154,7 +154,7 @@ const availabilityPlans = paymentsLive ['Updates', 'Corrections remain available; new editorial releases may be licensed separately.'], ]} faqs={[ - { q: 'Is this a BI tool or data catalog?', a: 'No. It is a file-based working kit and does not connect to your warehouse or manage live data.' }, + { q: 'Is this a BI tool or data catalog?', a: 'No. It’s a file-based working kit and doesn’t connect to your warehouse or manage live data.' }, { q: 'Do we need special software?', a: 'No. Plain files are the baseline. Claude Code packaging is optional.' }, { q: 'Can we customize it?', a: 'Yes. Keep team-specific rules in a separate local overlay so Pack updates remain easy to review.' }, { q: 'What do optional updates include?', a: 'Curated editorial releases with clearer examples, sharper guidance, and new templates.' }, diff --git a/apps/site/src/pages/packs/index.astro b/apps/site/src/pages/packs/index.astro index 97135c4..f6aca38 100644 --- a/apps/site/src/pages/packs/index.astro +++ b/apps/site/src/pages/packs/index.astro @@ -103,14 +103,14 @@ const structurePreview = `profession-pack/
-

A predictable inspection model, whichever Pack you choose

+

Every Pack follows the same inspection model.

Each Pack makes its files, creator, permissions, and update path visible, even when the folder layout reflects a different workflow.

    @@ -140,8 +140,8 @@ const structurePreview = `profession-pack/ padding: clamp(3.5rem, 7vw, 6.5rem) 0 2.5rem; } h1, h2, h3, p { letter-spacing: 0; } - h1 { margin: 0; font-size: clamp(3rem, 6vw, 5.5rem); line-height: 0.92; letter-spacing: -0.035em; } - .catalog-intro > div:first-child p { max-width: 30ch; margin: 1rem 0 0; color: var(--cc-text-body); font-size: clamp(1.2rem, 2vw, 1.6rem); line-height: 1.4; text-wrap: balance; } + h1 { margin: 0; font-size: clamp(2.4rem, 3.8vw, 4.1rem); line-height: 1.05; letter-spacing: -0.03em; } + .catalog-intro > div:first-child p { max-width: 30ch; margin: 1rem 0 0; color: var(--cc-text-body); font-size: clamp(1.05rem, 1.3vw, 1.25rem); line-height: 1.5; text-wrap: balance; } .intro-note { padding-top: 1rem; border-top: 3px solid var(--cc-layer-team); } .intro-note strong, .intro-note span { display: block; } .intro-note strong { color: var(--cc-text); } diff --git a/apps/site/src/pages/pricing.astro b/apps/site/src/pages/pricing.astro index 87e0647..9d18427 100644 --- a/apps/site/src/pages/pricing.astro +++ b/apps/site/src/pages/pricing.astro @@ -7,7 +7,7 @@ const faqs = [ ['Does Free expire or limit my local context?', 'No. Local sources, layers, profiles, resolution, MCP access, and Pack authoring remain available without an account or subscription.'], ['Do I need Pro to buy or install a Pack?', 'No. Packs are separate products. A Free user can install any free Pack or Pack they purchase.'], ['What happens if I cancel Pack updates?', 'You stop receiving future editorial releases. Every Pack version already delivered remains yours to keep and use.'], - ['Why can’t I subscribe yet?', 'Pro and Team stay marked Coming soon until their sync, update, history, and governance features are production-ready.'], + ['Why can’t I subscribe yet?', 'Pro and Team ship when device sync, managed updates, version history, and team controls are production-ready, not before.'], ]; --- @@ -30,7 +30,7 @@ const faqs = [
@@ -116,8 +116,8 @@ const faqs = [ .pricing-hero { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(18rem, 0.65fr); gap: clamp(2rem, 5vw, 5rem); align-items: end; min-height: 30rem; padding: clamp(3.5rem, 6vw, 5.5rem) 0; border-bottom: 1px solid var(--cc-border-strong); } .eyebrow { margin: 0 0 1rem; color: var(--cc-text-muted); font-family: var(--cc-font-mono); font-size: 0.72rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; } h1, h2, h3, p { letter-spacing: 0; } - h1 { max-width: 13ch; margin: 0; color: var(--cc-text); font-size: clamp(2.9rem, 5vw, 5.25rem); line-height: 0.94; letter-spacing: -0.05em; } - .lede { max-width: 43rem; margin: 1.5rem 0 0; font-size: clamp(1.15rem, 1.8vw, 1.6rem); line-height: 1.45; } + h1 { max-width: 14ch; margin: 0; color: var(--cc-text); font-size: clamp(2.3rem, 3.6vw, 4.1rem); line-height: 1.05; letter-spacing: -0.03em; } + .lede { max-width: 43rem; margin: 1.5rem 0 0; font-size: clamp(1.05rem, 1.2vw, 1.25rem); line-height: 1.55; } .hero-actions { display: flex; flex-wrap: wrap; gap: 0.75rem; margin-top: 2rem; } .button, .tier-action { display: inline-flex; align-items: center; justify-content: center; min-height: 3rem; padding: 0 1.15rem; border: 1px solid var(--cc-border-strong); color: var(--cc-text); font-weight: 700; text-decoration: none; transition: background var(--cc-transition), color var(--cc-transition), border-color var(--cc-transition); } .button.primary { background: var(--cc-text); color: var(--cc-surface-solid); border-color: var(--cc-text); } @@ -130,7 +130,7 @@ const faqs = [ .tiers, .comparison, .pack-economics, .faq { padding-top: 6rem; } .section-heading { display: grid; grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr); gap: 1.5rem 3rem; align-items: end; margin-bottom: 2.5rem; } .section-heading .eyebrow { grid-column: 1 / -1; margin-bottom: -0.75rem; } - .section-heading h2 { max-width: 18ch; margin: 0; color: var(--cc-text); font-size: clamp(1.9rem, 3vw, 3.6rem); line-height: 1; letter-spacing: -0.04em; } + .section-heading h2 { max-width: 18ch; margin: 0; color: var(--cc-text); font-size: clamp(1.7rem, 2.4vw, 2.75rem); line-height: 1.1; letter-spacing: -0.03em; } .section-heading > p:last-child { max-width: 48rem; margin: 0; font-size: 1.05rem; line-height: 1.6; } .section-heading.compact { grid-template-columns: 1fr; align-items: start; } .tier-ledger { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; } @@ -141,7 +141,7 @@ const faqs = [ .tier--company { --stripe: var(--cc-layer-company); } .tier-index { margin-bottom: 1.6rem; color: var(--cc-text-muted); font-family: var(--cc-font-mono); font-size: 0.75rem; } .tier-name p { margin: 0 0 0.5rem; color: var(--cc-text-muted); font-family: var(--cc-font-mono); font-size: 0.68rem; font-weight: 700; text-transform: uppercase; } - .tier-name h3 { margin: 0; color: var(--cc-text); font-size: 2.3rem; line-height: 1; } + .tier-name h3 { margin: 0; color: var(--cc-text); font-size: 1.9rem; line-height: 1.1; } .tier-name span { display: block; min-height: 4.5em; margin-top: 0.7rem; line-height: 1.5; } .tier-price { margin-top: 1.5rem; padding-top: 1.25rem; border-top: 1px solid var(--cc-border); } .tier-price strong { display: block; color: var(--cc-text); font-size: 1.55rem; } @@ -171,7 +171,7 @@ const faqs = [ .pack-notes p { margin: 0; padding-left: 1rem; border-left: 1px solid var(--cc-border-strong); } .privacy { margin-top: 6rem; padding: clamp(2rem, 5vw, 5rem); background: var(--cc-inverse-surface); color: var(--cc-inverse-body); } .privacy .eyebrow { color: var(--cc-layer-team); } - .privacy h2 { max-width: 18ch; margin: 0; color: var(--cc-inverse-text); font-size: clamp(2rem, 3vw, 3.5rem); line-height: 1; } + .privacy h2 { max-width: 18ch; margin: 0; color: var(--cc-inverse-text); font-size: clamp(1.8rem, 2.6vw, 2.75rem); line-height: 1.1; letter-spacing: -0.02em; } .privacy > p:last-child { max-width: 60rem; margin: 1.5rem 0 0; font-size: 1.1rem; line-height: 1.65; } .faq > div:last-child { border-top: 1px solid var(--cc-border-strong); } details { border-bottom: 1px solid var(--cc-border-strong); } @@ -179,5 +179,5 @@ const faqs = [ details p { max-width: 60rem; margin: 0 0 1.3rem; } @media (max-width: 1120px) { .pricing-hero, .section-heading { grid-template-columns: 1fr; } } @media (max-width: 860px) { .tier-ledger { grid-template-columns: 1fr; } .tier-name span { min-height: 0; } } - @media (max-width: 620px) { .pricing-hero { min-height: auto; padding-block: 3rem; } h1 { font-size: clamp(2.65rem, 11vw, 3.75rem); } .price-band { grid-template-columns: 1fr; } .price-band dl { grid-template-columns: 1fr 1fr; } .pack-notes { grid-template-columns: 1fr; } } + @media (max-width: 620px) { .pricing-hero { min-height: auto; padding-block: 3rem; } h1 { font-size: clamp(2rem, 9vw, 2.75rem); } .price-band { grid-template-columns: 1fr; } .price-band dl { grid-template-columns: 1fr 1fr; } .pack-notes { grid-template-columns: 1fr; } }