:root {
	--bg: #ffffff;
	--fg: #1a1a1a;
	--muted: #6b6b6b;
	--line: #e6e6e6;
	--accent: #0b6e4f;
	--accent-fg: #ffffff;
	--card: #fafafa;
	--code: #f3f3f3;
	--mcp: #5b3df5;
}
@media (prefers-color-scheme: dark) {
	:root {
		--bg: #111214;
		--fg: #ececec;
		--muted: #9a9a9a;
		--line: #2a2b2f;
		--accent: #3ddc97;
		--accent-fg: #0b1a14;
		--card: #18191c;
		--code: #1f2024;
		--mcp: #a48bff;
	}
}
* { box-sizing: border-box; }
html { color-scheme: light dark; }
body {
	margin: 0;
	background: var(--bg);
	color: var(--fg);
	font: 16px/1.55 system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
}
a { color: var(--accent); text-decoration: none; }
a:hover { text-decoration: underline; }
code, pre { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: 0.92em; }
pre { background: var(--code); padding: 12px 14px; border-radius: 8px; overflow-x: auto; }
main, header.top, footer { max-width: 960px; margin: 0 auto; padding: 0 16px; }
header.top { display: flex; align-items: center; gap: 16px; padding-top: 14px; padding-bottom: 14px; border-bottom: 1px solid var(--line); }
header.top .brand { display: inline-flex; align-items: center; gap: 8px; font-weight: 700; font-size: 20px; color: var(--fg); letter-spacing: -0.02em; }
header.top .brand .mark { flex: none; border-radius: 6px; }
header.top .brand:hover { text-decoration: none; }
header.top .brand .wordmark span { color: var(--accent); }
header.top .search { flex: 1; }
header.top .search input { width: 100%; max-width: 420px; padding: 8px 12px; border: 1px solid var(--line); border-radius: 8px; background: var(--card); color: var(--fg); font-size: 15px; }
header.top nav { display: flex; gap: 14px; }
main { padding-top: 24px; padding-bottom: 48px; }
footer { border-top: 1px solid var(--line); padding-top: 16px; padding-bottom: 32px; color: var(--muted); font-size: 14px; }
h1 { font-size: 30px; letter-spacing: -0.02em; margin: 0 0 8px; }
h2 { font-size: 20px; margin: 32px 0 12px; }
.hero h1 { font-size: 40px; }
.hero > p { max-width: 640px; }
.muted { color: var(--muted); }
.submit { display: grid; gap: 10px; max-width: 520px; margin-top: 12px; }
.submit label { display: grid; gap: 4px; font-size: 14px; }
.submit input { padding: 9px 12px; border: 1px solid var(--line); border-radius: 8px; background: var(--card); color: var(--fg); font-size: 15px; }
.submit button, .button { display: inline-block; padding: 9px 16px; border: 0; border-radius: 8px; background: var(--accent); color: var(--accent-fg); font-weight: 600; cursor: pointer; }
.submit .error { color: #c62828; margin: 0; }
.cats { list-style: none; padding: 0; display: flex; flex-wrap: wrap; gap: 8px 18px; }
.cards { list-style: none; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 12px; }
.card { background: var(--card); border: 1px solid var(--line); border-radius: 10px; padding: 14px; }
.card-title { font-weight: 600; font-size: 17px; }
.card-tagline { margin: 4px 0 8px; }
.card-meta { margin: 0; font-size: 13px; color: var(--muted); }
.badges { display: inline-flex; flex-wrap: wrap; gap: 4px; margin-left: 6px; vertical-align: middle; }
.badge { font-size: 11px; padding: 1px 7px; border-radius: 999px; border: 1px solid var(--line); color: var(--fg); }
.badge-mcp { border-color: var(--mcp); color: var(--mcp); }
.product .crumbs { color: var(--muted); font-size: 14px; }
.product .tagline { font-size: 18px; margin-top: 0; }
.product .actions { display: flex; gap: 16px; align-items: center; flex-wrap: wrap; }
.product .description { max-width: 720px; }
.facts { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 10px; margin: 20px 0; padding: 0; }
.facts div { background: var(--card); border: 1px solid var(--line); border-radius: 8px; padding: 10px 12px; }
.facts dt { font-size: 12px; color: var(--muted); text-transform: uppercase; letter-spacing: 0.04em; }
.facts dd { margin: 2px 0 0; font-weight: 600; }
.tags a { margin-right: 10px; }
.provenance { color: var(--muted); font-size: 13px; }
.agent-box summary { cursor: pointer; color: var(--muted); }
.prose { max-width: 720px; }
.status h1 { font-size: 26px; }
@media (max-width: 640px) {
	header.top { flex-wrap: wrap; }
	header.top .search { order: 3; width: 100%; flex-basis: 100%; }
	.hero h1 { font-size: 32px; }
}
