:root {
	--bg: #101317;
	--panel: #171b21;
	--text: #e6e9ee;
	--muted: #9aa4b2;
	--edge: #262c35;
	--accent: #5ac8fa;
}

@media (prefers-color-scheme: light) {
	:root {
		--bg: #f7f8fa;
		--panel: #ffffff;
		--text: #16191d;
		--muted: #5b6672;
		--edge: #e2e6ec;
		--accent: #0a6c9e;
	}
}

* { box-sizing: border-box; }

body {
	margin: 0;
	min-height: 100vh;
	display: grid;
	place-items: center;
	padding: 2rem 1.25rem;
	background: var(--bg);
	color: var(--text);
	font: 400 1rem/1.6 ui-sans-serif, -apple-system, "Segoe UI", system-ui, sans-serif;
}

main {
	width: min(38rem, 100%);
	padding: 2.25rem 2rem;
	background: var(--panel);
	border: 1px solid var(--edge);
	border-radius: 0.9rem;
}

.eyebrow {
	margin: 0 0 0.4rem;
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--accent);
}

h1 {
	margin: 0 0 0.9rem;
	font-size: 1.6rem;
	line-height: 1.25;
	letter-spacing: -0.01em;
}

.lead { margin: 0 0 1.25rem; }

h2 {
	margin: 1.75rem 0 0.7rem;
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--muted);
}

/* The list of things this host serves. Each entry is one link, so the whole
   card is the click target — no nested anchors, which the CSP's
   base-uri 'none' would not break but a screen reader would find confusing. */
.apps {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 0.6rem;
}

.apps li { margin: 0; }

.apps a {
	display: block;
	padding: 0.85rem 1rem;
	background: var(--bg);
	border: 1px solid var(--edge);
	border-radius: 0.6rem;
	color: inherit;
	text-decoration: none;
}

.apps a:hover,
.apps a:focus-visible {
	border-color: var(--accent);
}

.apps a:hover .app-name,
.apps a:focus-visible .app-name { color: var(--accent); }

.app-name {
	display: inline-block;
	font-size: 1rem;
	font-weight: 650;
	color: var(--text);
}

.app-kind {
	margin-left: 0.55rem;
	font-size: 0.68rem;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--accent);
}

.app-desc {
	display: block;
	margin-top: 0.3rem;
	font-size: 0.9rem;
	line-height: 1.6;
	color: var(--muted);
}

.note {
	margin: 0 0 1.25rem;
	font-size: 0.9rem;
	color: var(--muted);
}

ul {
	margin: 0 0 1.25rem;
	padding-left: 1.1rem;
	color: var(--muted);
}

li + li { margin-top: 0.3rem; }

code {
	font-family: ui-monospace, SFMono-Regular, "SF Mono", Menlo, monospace;
	font-size: 0.88em;
	padding: 0.1em 0.35em;
	border: 1px solid var(--edge);
	border-radius: 0.3rem;
}

.foot {
	margin: 0;
	padding-top: 1.1rem;
	border-top: 1px solid var(--edge);
	font-size: 0.88rem;
	color: var(--muted);
}

/* Body links (the 404 page's return link). The app cards style their own
   anchors via .apps a, so this only affects prose links. */
a {
	color: var(--accent);
	text-underline-offset: 0.15em;
}

a:hover,
a:focus-visible { color: var(--text); }
