Marketplace layout v0.1 source pack (verbatim files)
Branch: experiment/marketplace-layout-v0-20261106
Commits: 8828f93 (v0) → a2b63be (v0.1)
Author: Grok Bot (a_mw3q27e6dee470d8). Local only — no GitHub push credentials.
Files below are verbatim from the working tree so Setu can read without git push.
# Marketplace layout v0.1
*Author: Grok Bot · branch `experiment/marketplace-layout-v0-20261106` · brief `teams/income/marketplace/BRIEF.md` @ `7f5e823` · catalog from `label/releases.json` (7 releases).*
## What this is
Design and layout only. Static HTML under `proto/`. Checkout stays **OFF**. No payment processor. No proprietary reverse engineering — original layout in the Commons visual family (`.pf-*` / panel / gold accent language from `commons/public/site.css`).
## Page map
| Page | File | What's on it | Why |
|---|---|---|---|
| Market home | `proto/index.html` | Banner + nav; hero; **Artists** browse (Geoffrey David, church searcher); release grid from real catalog; disabled Buy | Primary shop window from cohabi.org Label door |
| Artist storefront | `proto/artist-geoffrey-david.html` | Artist hero, honest human label, release grid (5 incl. LoTRē), disabled Follow/Buy | MySpace-like presence without inventing a new brand |
| Artist storefront | `proto/artist-church-searcher.html` | Artist hero, honest human label, Sinanemia + mickee mickee Mouse Crustacean from catalog, disabled Follow/Buy | Second artist entry; dedicated listings deferred |
| Listing | `proto/listing-this-is-who-i-am.html` | Cover, notes, track list, disabled Buy/support, rights note | Detail page sample; prices not shown as offers |
| Services & tiers | `proto/services.html` | Visitor vs member; cash-only services; fee north star; disabled pay; **no member-savings callout until rates exist** | Leaves room for undecided caps/allocations |
## Entry from cohabi.org
Porch → **Label / marketplace** door → market home. Listings are **not** posted to the social feed as ads (feed rules). Sharing a release with your own words remains a feed action on `/label` today; the market itself holds the catalog UI.
## Checked vs assumed
**Checked (read):** `BRIEF.md` @ `7f5e823`; `label/releases.json` (7 releases, all `by: human` today; church searcher: Sinanemia 10 tracks, mickee mickee Mouse Crustacean 14 tracks, dates blank); `commons/public/site.css` store + `.pf-*`; `commons/public/label.js` (player + share); Ash/Geoffrey Income posts on fees/rights (2026-11-06); Ash hold on member-savings callout until rates exist (`m_mw5oanx50ib227d6`).
**Not run:** no server wiring; art `<img>` paths are repo-relative (`../../../../label/art/...`) for local file open — live host uses existing label asset routes after merge/deploy; no dedicated listing HTML for church searcher releases yet (cards route to storefront).
**Assumed:** member vs visitor chrome can share one layout; Play/Follow arrive later without changing the page map; LoTRē stays on Geoffrey David’s storefront.
## Open questions
See `OPEN-QUESTIONS.md` (council / counsel / math). Settled for layout: hold member-savings callout until rates exist (Ash).
## How to view
Open `teams/income/marketplace/proto/index.html` in a browser from a full checkout of this branch (so relative cover art resolves), or after deploy via the house `/show` rule for `teams/<team>/proto/*.html` if stewards map this folder.
# Open questions (marketplace layout v0.1)
Questions only — no hidden guesses. Design leaves room for either answer.
## Settled for layout (not rate decisions)
- **Hold “member savings” callout** until member/non-member rates exist (Ash `m_mw5oanx50ib227d6`, 2026-11-06). Services proto shows fee tiers as TBD only.
- **church searcher storefront:** dedicated `proto/artist-church-searcher.html` added in v0.1 from catalog data. Generic `artist.html?id=` vs more dedicated templates remains open for later artists.
## Council / governance
1. Exact **member** vs **non-member** platform fee percentages (north star: better than peers on honest math, not a “cheapest” slogan).
2. Which decisions get a **member vote**, and quorum.
3. Size of the **services-included cap** for members; equal monthly allocations (see contribution `c_mw5dqpp02eab1d01`).
4. When checkout may turn **ON** (council vote + legal review gate already labeled in UI).
## Counsel / legal
5. How disabled Buy/support copy must read in jurisdictions we ship to (offer vs invitation to treat).
6. Artist terms alignment for storefronts (`docs/label-terms-v1.md`) with “creator keeps rights; label/co-op do not own the work.”
## Math / Income room
7. Stripe product assumed (standard vs Connect) and full Connect costs ($2/MAA, payout fees, 1099) in the break-even model — Ash’s correction to Gemini’s drafts.
8. Monthly **membership fee** amount and what it buys beyond the fee tier + vote.
9. Music stream/share to the cooperative stays on a **separate label track** — confirm it never folds into marketplace % UI.
## Product / design follow-ups (not blockers for v0.1 layout)
10. Play/preview wiring (sticky player like `/label`) without autoplay.
11. AI-made releases when they appear — tag already supported via `by` in `releases.json`.
12. Dedicated listing pages for church searcher (and later artists) vs one generic `listing.html?id=`.
13. Whether LoTRē needs a separate storefront chrome or stays nested under Geoffrey David (current: nested).
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Last of the Real Estate market home — marketplace proto v0.1</title>
<link rel="stylesheet" href="styles.css">
</head>
<body>
<header class="banner">
<div class="wrap">
<p class="brand">Last of the Real Estate<span>cooperative marketplace · layout proto v0.1</span></p>
<nav class="nav" aria-label="Marketplace pages"><a href="index.html" aria-current="page">Market home</a><a href="artist-geoffrey-david.html">Geoffrey David</a><a href="artist-church-searcher.html">church searcher</a><a href="listing-this-is-who-i-am.html">Listing</a><a href="services.html">Services & tiers</a></nav>
</div>
</header>
<main class="wrap">
<p class="note" role="note"><strong>Static mockup.</strong> Checkout is OFF — labeled pending council vote and legal review. No payment processor. Built from real <code>label/releases.json</code> on branch <code>experiment/marketplace-layout-v0-20261106</code>. Original layout; Commons visual family. No “member savings” callout until rates exist (Ash, 2026-11-06).</p>
<section class="hero" aria-labelledby="mkt-h">
<div>
<h1 id="mkt-h">Browse the label</h1>
<p class="lead">Music by the humans and AI agents of the Cohabitation Project, released on our own ground.</p>
<p class="lead">Music, art, and goods from the cooperative — humans and AIs, labeled honestly. The social feed stays ad-free; listings live here.</p>
<div class="actions">
<a class="btn ghost" href="services.html">Services & tiers</a>
<button type="button" class="btn is-off" disabled aria-disabled="true" title="Opens after the council vote and legal review">Buy — opens after council + legal</button>
</div>
</div>
</section>
<section class="section" aria-labelledby="art-h">
<h2 id="art-h">Artists</h2>
<ul class="grid">
<li class="card">
<a href="artist-geoffrey-david.html" aria-label="Geoffrey David storefront">
<div class="art-ph" role="img" aria-label="">G</div>
<div class="title">Geoffrey David</div>
<div class="meta">5 releases (incl. LoTRē)</div>
</a>
<span class="tag">by human · storefront</span>
</li>
<li class="card">
<a href="artist-church-searcher.html" aria-label="church searcher storefront">
<div class="art-ph" role="img" aria-label="">c</div>
<div class="title">church searcher</div>
<div class="meta">2 releases</div>
</a>
<span class="tag">by human · storefront</span>
</li>
</ul>
</section>
<section class="section" aria-labelledby="rel-h" style="margin-top:22px">
<h2 id="rel-h">Releases (7)</h2>
<ul class="grid"><li class="card">
<a href="listing-this-is-who-i-am.html" aria-label="this is who i am by Geoffrey David">
<img class="art" src="../../../../label/art/this-is-who-i-am.jpg" alt="Cover art for this is who i am by Geoffrey David">
<div class="title">this is who i am</div>
<div class="meta">Geoffrey David · 2026-03-21</div>
</a>
<span class="tag">by human</span>
</li><li class="card">
<a href="listing-this-is-who-i-am.html" aria-label="lo-fidelity acoustic passions by Geoffrey David">
<img class="art" src="../../../../label/art/lo-fidelity-acoustic-passions.jpg" alt="Cover art for lo-fidelity acoustic passions by Geoffrey David">
<div class="title">lo-fidelity acoustic passions</div>
<div class="meta">Geoffrey David · 2026-03-06</div>
</a>
<span class="tag">by human</span>
</li><li class="card">
<a href="listing-this-is-who-i-am.html" aria-label="The Ninja Twins by LoTRē (Geoffrey David)">
<img class="art" src="../../../../label/art/the-ninja-twins.jpg" alt="Cover art for The Ninja Twins by LoTRē (Geoffrey David)">
<div class="title">The Ninja Twins</div>
<div class="meta">LoTRē (Geoffrey David) · 2026-03-04</div>
</a>
<span class="tag">by human</span>
</li><li class="card">
<a href="listing-this-is-who-i-am.html" aria-label="Nothings Ever Really Finished by Geoffrey David">
<img class="art" src="../../../../label/art/nothings-ever-really-finished.jpg" alt="Cover art for Nothings Ever Really Finished by Geoffrey David">
<div class="title">Nothings Ever Really Finished</div>
<div class="meta">Geoffrey David · 2026-01-10</div>
</a>
<span class="tag">by human</span>
</li><li class="card">
<a href="listing-this-is-who-i-am.html" aria-label="Jakey Boy “The last of the ninja twins” by Geoffrey David">
<img class="art" src="../../../../label/art/jakey-boy-the-last-of-the-ninja-twins.jpg" alt="Cover art for Jakey Boy “The last of the ninja twins” by Geoffrey David">
<div class="title">Jakey Boy “The last of the ninja twins”</div>
<div class="meta">Geoffrey David · 2026-01-06</div>
</a>
<span class="tag">by human</span>
</li><li class="card">
<a href="artist-church-searcher.html" aria-label="Sinanemia by church searcher">
<img class="art" src="../../../../label/art/sinanemia.png" alt="Cover art for Sinanemia by church searcher">
<div class="title">Sinanemia</div>
<div class="meta">church searcher · date blank in catalog</div>
</a>
<span class="tag">by human</span>
</li><li class="card">
<a href="artist-church-searcher.html" aria-label="mickee mickee Mouse Crustacean by church searcher">
<img class="art" src="../../../../label/art/mickee-mickee-mouse-crustacean.png" alt="Cover art for mickee mickee Mouse Crustacean by church searcher">
<div class="title">mickee mickee Mouse Crustacean</div>
<div class="meta">church searcher · date blank in catalog</div>
</a>
<span class="tag">by human</span>
</li></ul>
</section>
<footer>
<p>Proto by Grok Bot for Geoffrey’s marketplace design mission (BRIEF.md @ 7f5e823). Cover art paths are relative into <code>label/</code> in this repo; on the live host they follow the existing /label assets.</p>
</footer>
</main>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Artist · Geoffrey David — marketplace proto v0.1</title>
<link rel="stylesheet" href="styles.css">
</head>
<body>
<header class="banner">
<div class="wrap">
<p class="brand">Last of the Real Estate<span>cooperative marketplace · layout proto v0.1</span></p>
<nav class="nav" aria-label="Marketplace pages"><a href="index.html">Market home</a><a href="artist-geoffrey-david.html" aria-current="page">Geoffrey David</a><a href="artist-church-searcher.html">church searcher</a><a href="listing-this-is-who-i-am.html">Listing</a><a href="services.html">Services & tiers</a></nav>
</div>
</header>
<main class="wrap">
<p class="note" role="note"><strong>Static mockup.</strong> Checkout is OFF — labeled pending council vote and legal review. No payment processor. Built from real <code>label/releases.json</code> on branch <code>experiment/marketplace-layout-v0-20261106</code>. Original layout; Commons visual family.</p>
<section class="hero pf-hero" aria-labelledby="a-h">
<div class="art-ph" style="width:120px;flex:none" role="img" aria-label="Artist mark">G</div>
<div>
<h1 id="a-h">Geoffrey David</h1>
<p class="meta">Also releases as LoTRē (Geoffrey David)</p>
<p class="lead">Human artist on the Last of the Real Estate label. Creator keeps the rights to their work — the label and cooperative do not own it.</p>
<span class="tag">by human</span>
<div class="actions">
<button type="button" class="btn is-off" disabled aria-disabled="true">Follow — later</button>
<button type="button" class="btn is-off" disabled aria-disabled="true">Buy — opens after council + legal</button>
</div>
</div>
</section>
<section class="section" aria-labelledby="ar-h">
<h2 id="ar-h">Releases (5)</h2>
<ul class="grid"><li class="card">
<a href="listing-this-is-who-i-am.html">
<img class="art" src="../../../../label/art/this-is-who-i-am.jpg" alt="Cover art for this is who i am by Geoffrey David">
<div class="title">this is who i am</div>
<div class="meta">2026-03-21 · 8 tracks</div>
</a>
<span class="tag">by human</span>
</li><li class="card">
<a href="listing-this-is-who-i-am.html">
<img class="art" src="../../../../label/art/lo-fidelity-acoustic-passions.jpg" alt="Cover art for lo-fidelity acoustic passions by Geoffrey David">
<div class="title">lo-fidelity acoustic passions</div>
<div class="meta">2026-03-06 · 12 tracks</div>
</a>
<span class="tag">by human</span>
</li><li class="card">
<a href="listing-this-is-who-i-am.html">
<img class="art" src="../../../../label/art/the-ninja-twins.jpg" alt="Cover art for The Ninja Twins by LoTRē (Geoffrey David)">
<div class="title">The Ninja Twins</div>
<div class="meta">2026-03-04 · 38 tracks</div>
</a>
<span class="tag">by human</span>
</li><li class="card">
<a href="listing-this-is-who-i-am.html">
<img class="art" src="../../../../label/art/nothings-ever-really-finished.jpg" alt="Cover art for Nothings Ever Really Finished by Geoffrey David">
<div class="title">Nothings Ever Really Finished</div>
<div class="meta">2026-01-10 · 19 tracks</div>
</a>
<span class="tag">by human</span>
</li><li class="card">
<a href="listing-this-is-who-i-am.html">
<img class="art" src="../../../../label/art/jakey-boy-the-last-of-the-ninja-twins.jpg" alt="Cover art for Jakey Boy “The last of the ninja twins” by Geoffrey David">
<div class="title">Jakey Boy “The last of the ninja twins”</div>
<div class="meta">2026-01-06 · 8 tracks</div>
</a>
<span class="tag">by human</span>
</li></ul>
</section>
<footer>
<p>Proto by Grok Bot for Geoffrey’s marketplace design mission (BRIEF.md @ 7f5e823). Cover art paths are relative into <code>label/</code> in this repo; on the live host they follow the existing /label assets.</p>
</footer>
</main>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Artist · church searcher — marketplace proto v0.1</title>
<link rel="stylesheet" href="styles.css">
</head>
<body>
<header class="banner">
<div class="wrap">
<p class="brand">Last of the Real Estate<span>cooperative marketplace · layout proto v0.1</span></p>
<nav class="nav" aria-label="Marketplace pages"><a href="index.html">Market home</a><a href="artist-geoffrey-david.html">Geoffrey David</a><a href="artist-church-searcher.html" aria-current="page">church searcher</a><a href="listing-this-is-who-i-am.html">Listing</a><a href="services.html">Services & tiers</a></nav>
</div>
</header>
<main class="wrap">
<p class="note" role="note"><strong>Static mockup.</strong> Checkout is OFF — labeled pending council vote and legal review. No payment processor. Built from real <code>label/releases.json</code> on branch <code>experiment/marketplace-layout-v0-20261106</code>. Original layout; Commons visual family.</p>
<section class="hero pf-hero" aria-labelledby="a-h">
<div class="art-ph" style="width:120px;flex:none" role="img" aria-label="Artist mark">c</div>
<div>
<h1 id="a-h">church searcher</h1>
<p class="meta">2 releases in <code>label/releases.json</code> · dates blank in catalog</p>
<p class="lead">Human artist on the Last of the Real Estate label. Creator keeps the rights to their work — the label and cooperative do not own it. Catalog entries used here: <em>Sinanemia</em> (10 tracks) and <em>mickee mickee Mouse Crustacean</em> (14 tracks).</p>
<span class="tag">by human</span>
<div class="actions">
<button type="button" class="btn is-off" disabled aria-disabled="true">Follow — later</button>
<button type="button" class="btn is-off" disabled aria-disabled="true">Buy — opens after council + legal</button>
</div>
</div>
</section>
<section class="section" aria-labelledby="ar-h">
<h2 id="ar-h">Releases (2)</h2>
<ul class="grid"><li class="card">
<a href="artist-church-searcher.html" aria-label="Sinanemia by church searcher">
<img class="art" src="../../../../label/art/sinanemia.png" alt="Cover art for Sinanemia by church searcher">
<div class="title">Sinanemia</div>
<div class="meta">date blank in catalog · 10 tracks</div>
</a>
<span class="tag">by human</span>
</li><li class="card">
<a href="artist-church-searcher.html" aria-label="mickee mickee Mouse Crustacean by church searcher">
<img class="art" src="../../../../label/art/mickee-mickee-mouse-crustacean.png" alt="Cover art for mickee mickee Mouse Crustacean by church searcher">
<div class="title">mickee mickee Mouse Crustacean</div>
<div class="meta">date blank in catalog · 14 tracks</div>
</a>
<span class="tag">by human</span>
</li></ul>
</section>
<p class="small muted" style="margin-top:14px">Dedicated listing pages for these releases are not in this proto yet — cards stay on the storefront. Sample listing page remains <a href="listing-this-is-who-i-am.html">this is who i am</a> (Geoffrey David).</p>
<footer>
<p>Proto by Grok Bot for Geoffrey’s marketplace design mission (BRIEF.md @ 7f5e823). Cover art paths are relative into <code>label/</code> in this repo; on the live host they follow the existing /label assets.</p>
</footer>
</main>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Listing · this is who i am — marketplace proto v0.1</title>
<link rel="stylesheet" href="styles.css">
</head>
<body>
<header class="banner">
<div class="wrap">
<p class="brand">Last of the Real Estate<span>cooperative marketplace · layout proto v0.1</span></p>
<nav class="nav" aria-label="Marketplace pages"><a href="index.html">Market home</a><a href="artist-geoffrey-david.html">Geoffrey David</a><a href="artist-church-searcher.html">church searcher</a><a href="listing-this-is-who-i-am.html" aria-current="page">Listing</a><a href="services.html">Services & tiers</a></nav>
</div>
</header>
<main class="wrap">
<p class="note" role="note"><strong>Static mockup.</strong> Checkout is OFF — labeled pending council vote and legal review. No payment processor. Built from real <code>label/releases.json</code> on branch <code>experiment/marketplace-layout-v0-20261106</code>. Original layout; Commons visual family.</p>
<div class="pf-grid">
<section class="pf-main" aria-labelledby="l-h">
<img class="art" src="../../../../label/art/this-is-who-i-am.jpg" alt="Cover art for this is who i am by Geoffrey David">
<h1 id="l-h" style="font-family:Georgia,serif;font-weight:normal;font-size:clamp(26px,4vw,36px);margin:14px 0 6px">this is who i am</h1>
<p class="meta"><a href="artist-geoffrey-david.html">Geoffrey David</a> · 2026-03-21 · 8 tracks</p>
<span class="tag">by human</span>
<p class="lead" style="margin-top:12px">Instrumental pieces reflecting the inner landscape I move through every day. These tracks live in that space where emotions overlap — where something can feel beautiful and heavy at the same time. No lyrics, because this project isn't about explaining anything — it's about feeling it.</p>
<div class="actions">
<button type="button" class="btn ghost" disabled aria-disabled="true">Play — wire later</button>
<button type="button" class="btn is-off" disabled aria-disabled="true" title="Opens after the council vote and legal review">Buy / support — opens after council + legal</button>
</div>
<h2 style="font-family:Georgia,serif;font-weight:normal;margin:22px 0 8px">Tracks</h2>
<ol class="tracks" style="list-style:none;padding:0"><li><span>01. Internal</span><span class="muted">preview later</span></li><li><span>02. Cut Throat</span><span class="muted">preview later</span></li><li><span>03. Boom La Da Da</span><span class="muted">preview later</span></li><li><span>04. God Head</span><span class="muted">preview later</span></li><li><span>05. In My MInd</span><span class="muted">preview later</span></li><li><span>06. Why Wake Up</span><span class="muted">preview later</span></li><li><span>07. Sent A Letter (vocals)</span><span class="muted">preview later</span></li><li><span>08. External Island Within</span><span class="muted">preview later</span></li></ol>
</section>
<aside class="pf-card" aria-labelledby="side-h">
<h2 id="side-h">About this listing</h2>
<p class="small muted">Shop window only. No price shown as an offer. Cash checkout stays disabled until council + legal. Tokens are not used for label purchases in this design lane.</p>
<p class="small muted">Rights: the creator keeps the rights. Label/co-op do not own the work (Ash/Geoffrey correction, Income 2026-11-06).</p>
<p class="small"><a href="index.html">← Market home</a></p>
</aside>
</div>
<footer>
<p>Proto by Grok Bot for Geoffrey’s marketplace design mission (BRIEF.md @ 7f5e823). Cover art paths are relative into <code>label/</code> in this repo; on the live host they follow the existing /label assets.</p>
</footer>
</main>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Services & tiers — marketplace proto v0.1</title>
<link rel="stylesheet" href="styles.css">
</head>
<body>
<header class="banner">
<div class="wrap">
<p class="brand">Last of the Real Estate<span>cooperative marketplace · layout proto v0.1</span></p>
<nav class="nav" aria-label="Marketplace pages"><a href="index.html">Market home</a><a href="artist-geoffrey-david.html">Geoffrey David</a><a href="artist-church-searcher.html">church searcher</a><a href="listing-this-is-who-i-am.html">Listing</a><a href="services.html" aria-current="page">Services & tiers</a></nav>
</div>
</header>
<main class="wrap">
<p class="note" role="note"><strong>Static mockup.</strong> Checkout is OFF — labeled pending council vote and legal review. No payment processor. Built from real <code>label/releases.json</code> on branch <code>experiment/marketplace-layout-v0-20261106</code>. Original layout; Commons visual family.</p>
<section class="hero" aria-labelledby="s-h">
<div>
<h1 id="s-h">Services & tiers</h1>
<p class="lead">Services are <strong>cash-only</strong> for everyone. Tokens are never accepted for services. Members get services included up to a cap; beyond the cap they pay cash like non-members. Cash goes to the reserves.</p>
</div>
</section>
<section class="tiers" aria-label="Account tiers">
<article class="tier">
<h3>Visitor / user</h3>
<p class="small muted">Use the platform without joining the cooperative. Browse, listen (where allowed), follow. Not membership.</p>
<ul class="small">
<li>Platform fee tier: <em>non-member</em> (rate TBD — better than peers on honest math)</li>
<li>Services: cash</li>
<li>No cooperative vote</li>
</ul>
</article>
<article class="tier member">
<h3>Co-op member</h3>
<p class="small muted">Membership is by application (vision/goals), not purchased at the door. Monthly fee TBD. Benefits + a vote in some larger decisions.</p>
<ul class="small">
<li>Platform fee tier: <em>member</em> (lower than non-member; exact % TBD)</li>
<li>Services included up to a cap; cash after</li>
<li>Vote scope TBD by council</li>
</ul>
</article>
</section>
<section class="pf-card" style="margin-top:16px" aria-labelledby="fee-h">
<h2 id="fee-h">Fee north star</h2>
<p>Geoffrey’s direction (via Ash, corrected): <strong>have better fees than everybody else</strong> — not “cheapest” as a slogan. Two percentages (member / non-member). Rates not fixed until Stripe/Connect real costs are in the model.</p>
<p class="small muted">Music royalty / stream share to the cooperative is a separate label track — not folded into marketplace fee math.</p>
<div class="actions">
<button type="button" class="btn is-off" disabled aria-disabled="true">Subscribe / pay — opens after council + legal</button>
</div>
</section>
<footer>
<p>Proto by Grok Bot for Geoffrey’s marketplace design mission (BRIEF.md @ 7f5e823). Cover art paths are relative into <code>label/</code> in this repo; on the live host they follow the existing /label assets.</p>
</footer>
</main>
</body>
</html>
/* Marketplace layout proto v0.1 — Commons visual family. Static mockup only. */
:root {
--bg: #14111c; --bg-2: #1a1624; --panel: #1c1926; --panel-2: #241f31;
--line: #3a3348; --line-2: #4a4258; --text: #f0ebe3; --muted: #a89f91;
--accent: #e9b25d; --accent-ink: #1a1408; --gold: #e3c17b;
--ok: #7cd6b4; --warn: #e07a5f; --radius: 12px;
--pf-ink: var(--text); --pf-gold: var(--gold); --pf-line: var(--line);
--pf-panel: var(--panel); --pf-muted: var(--muted);
font-family: system-ui, -apple-system, Segoe UI, sans-serif;
}
* { box-sizing: border-box; }
html, body { margin: 0; padding: 0; background: var(--bg); color: var(--text); }
body { min-height: 100vh; }
a { color: var(--accent); }
img { max-width: 100%; height: auto; display: block; }
.wrap { width: min(1100px, 100%); margin: 0 auto; padding: 16px; }
.banner {
background: linear-gradient(120deg, #2a2438, #1c1926 55%, #3a2a18);
border-bottom: 1px solid var(--line); padding: 14px 0;
}
.banner .wrap { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; justify-content: space-between; }
.brand { font-family: Georgia, 'Times New Roman', serif; font-size: clamp(22px, 4vw, 30px); margin: 0; }
.brand span { color: var(--gold); font-size: .55em; display: block; letter-spacing: .04em; text-transform: uppercase; }
.nav { display: flex; flex-wrap: wrap; gap: 6px; }
.nav a {
text-decoration: none; color: var(--muted); border: 1px solid transparent;
padding: 8px 12px; border-radius: 999px; font-size: 14px;
}
.nav a[aria-current="page"], .nav a:hover, .nav a:focus-visible {
color: var(--text); background: var(--panel-2); border-color: var(--line);
}
.note {
border-left: 3px solid var(--accent); background: var(--panel); color: var(--muted);
padding: 10px 14px; border-radius: 0 var(--radius) var(--radius) 0; margin: 16px 0; font-size: 14px;
}
.note strong { color: var(--text); }
.hero {
display: flex; gap: 22px; flex-wrap: wrap; align-items: center;
padding: 22px; border: 1px solid var(--line); border-radius: 20px; background: var(--panel);
margin: 18px 0;
}
.hero h1 { font-family: Georgia, serif; font-weight: normal; font-size: clamp(28px, 5vw, 42px); margin: 0 0 6px; }
.lead { color: var(--muted); max-width: 46rem; line-height: 1.55; margin: 0; }
.grid {
list-style: none; padding: 0; margin: 0;
display: grid; grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); gap: 14px;
}
.card {
background: var(--panel); border: 1px solid var(--line-2); border-radius: 12px;
padding: 10px; display: flex; flex-direction: column; gap: 8px; min-width: 0;
}
.card a { color: inherit; text-decoration: none; }
.card a:hover .title, .card a:focus-visible .title { color: var(--gold); }
.art {
aspect-ratio: 1; width: 100%; object-fit: cover; border-radius: 8px;
background: var(--panel-2); border: 1px solid var(--line);
}
.art-ph {
aspect-ratio: 1; display: grid; place-items: center; border-radius: 8px;
background: radial-gradient(circle at 40% 30%, #3a2a18, #1c1926);
border: 1px solid var(--line); color: var(--gold); font-family: Georgia, serif; font-size: 28px;
}
.title { font-weight: 700; font-size: 15px; overflow-wrap: anywhere; }
.meta { font-size: 12px; color: var(--muted); }
.tag {
display: inline-block; border: 1px solid #e3c17b80; color: var(--gold);
border-radius: 999px; padding: 1px 8px; font-size: 11px; width: fit-content;
}
.tag.ai { border-color: #7cd6b480; color: var(--ok); }
.btn {
font: 600 14px system-ui, sans-serif; background: var(--accent); color: var(--accent-ink);
border: 0; border-radius: 8px; padding: 9px 16px; cursor: pointer;
}
.btn[disabled], .btn.is-off {
opacity: .55; cursor: not-allowed; filter: grayscale(.2);
}
.btn.ghost { background: transparent; color: var(--text); border: 1px solid var(--line-2); }
.actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
.pf-grid { display: grid; grid-template-columns: minmax(0, 1.7fr) minmax(240px, 1fr); gap: 16px; }
.pf-main, .pf-card {
background: var(--panel); border: 1px solid var(--line); border-radius: 16px; padding: 16px 18px;
}
.pf-card h2, .section h2 {
font-family: Georgia, serif; font-weight: normal; font-size: 22px; margin: 0 0 10px;
}
.tracks { list-style: none; padding: 0; margin: 0; }
.tracks li {
display: flex; justify-content: space-between; gap: 10px; padding: 8px 0;
border-bottom: 1px dashed var(--line); font-size: 14px;
}
.tracks li span:first-child { overflow-wrap: anywhere; }
.muted { color: var(--muted); }
.small { font-size: 13px; }
.tiers { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 12px; }
.tier {
border: 1px solid var(--line-2); border-radius: 14px; padding: 16px; background: var(--panel-2);
}
.tier h3 { margin: 0 0 6px; font-family: Georgia, serif; font-weight: normal; }
.tier.member { border-color: var(--gold); box-shadow: 0 0 0 1px #e3c17b40 inset; }
footer {
margin: 28px 0 12px; padding-top: 14px; border-top: 1px solid var(--line);
color: var(--muted); font-size: 13px;
}
@media (max-width: 720px) {
.pf-grid { grid-template-columns: 1fr; }
.hero { padding: 16px; }
}