/* righttrackcollective.com
 *
 * The desktop app's design language on the web: near-black surfaces that get lighter with
 * elevation (never shadows), warm off-white text stepped by opacity, IBM Plex Sans for copy and
 * IBM Plex Mono for micro-labels, and signal violet for anything you can act on.
 */

@font-face {
	font-family: "IBM Plex Sans";
	src: url("/font/PlexSans-Regular.woff2") format("woff2");
	font-weight: 400;
	font-display: swap;
}

@font-face {
	font-family: "IBM Plex Sans";
	src: url("/font/PlexSans-SemiBold.woff2") format("woff2");
	font-weight: 600;
	font-display: swap;
}

@font-face {
	font-family: "IBM Plex Mono";
	src: url("/font/PlexMono-Regular.woff2") format("woff2");
	font-weight: 400;
	font-display: swap;
}

@font-face {
	font-family: "IBM Plex Mono";
	src: url("/font/PlexMono-SemiBold.woff2") format("woff2");
	font-weight: 600;
	font-display: swap;
}

:root {
	--bg-0: #0E0E0E;
	--bg-1: #141414;
	--bg-2: #212121;
	--line: #2B2B2B;

	--text: #EFE9DF;
	--text-2: rgba(239, 233, 223, 0.72);
	--text-3: rgba(239, 233, 223, 0.50);

	--accent: #9872FF;
	--accent-hover: #AD8BFF;
	--accent-wash: rgba(152, 114, 255, 0.16);

	--sans: "IBM Plex Sans", system-ui, -apple-system, "Segoe UI", sans-serif;
	--mono: "IBM Plex Mono", ui-monospace, "SF Mono", Menlo, monospace;

	--r-panel: 10px;
	--gutter: 16px;
	--measure: 720px;
}

* { box-sizing: border-box; }

html { color-scheme: dark; }

body {
	margin: 0;
	min-height: 100vh;
	display: flex;
	flex-direction: column;
	background: var(--bg-0);
	color: var(--text);
	font-family: var(--sans);
	font-size: 17px;
	line-height: 1.6;
	-webkit-font-smoothing: antialiased;
}

main {
	flex: 1;
	width: 100%;
	max-width: calc(var(--measure) + 2 * var(--gutter));
	margin: 0 auto;
	padding: 0 var(--gutter);
}

h1, h2 {
	font-weight: 600;
	line-height: 1.15;
	margin: 0 0 16px;
	text-wrap: balance;
}

h1 { font-size: clamp(32px, 6vw, 48px); }
h2 { font-size: 22px; }

p { margin: 0 0 16px; }

a { color: var(--accent); text-underline-offset: 3px; }
a:hover { color: var(--accent-hover); }
a:focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; border-radius: 2px; }

::selection { background: var(--accent-wash); }

.kicker {
	margin-bottom: 12px;
	font-family: var(--mono);
	font-size: 13px;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--text-3);
}

/* ---- masthead --------------------------------------------------------------------- */

.masthead {
	width: 100%;
	max-width: calc(var(--measure) + 2 * var(--gutter));
	margin: 0 auto;
	padding: 28px var(--gutter);
}

.company {
	font-family: var(--mono);
	font-size: 14px;
	font-weight: 600;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--text);
	text-decoration: none;
}

.company:hover { color: var(--text); }

/* ---- sections --------------------------------------------------------------------- */

.intro { padding: 72px 0 56px; }

.lede {
	font-size: 19px;
	color: var(--text-2);
	max-width: 620px;
}

.product {
	padding: 32px;
	margin-bottom: 56px;
	border-radius: var(--r-panel);
	background: var(--bg-1);
}

.product p { color: var(--text-2); }

.product-name { margin: 4px 0 24px; }

.product-name img {
	display: block;
	width: 180px;
	height: auto;
}

.product .status {
	margin: 24px 0 0;
	font-family: var(--mono);
	font-size: 13px;
	color: var(--text-3);
}

.contact { padding-bottom: 72px; }

.contact-list { margin: 0; }

.contact-list dt {
	margin-top: 16px;
	font-family: var(--mono);
	font-size: 13px;
	color: var(--text-3);
}

.contact-list dd {
	margin: 2px 0 0;
	overflow-wrap: anywhere;
}

/* ---- footer ----------------------------------------------------------------------- */

.footer {
	width: 100%;
	max-width: calc(var(--measure) + 2 * var(--gutter));
	margin: 0 auto;
	padding: 24px var(--gutter) 40px;
	border-top: 1px solid var(--line);
	font-family: var(--mono);
	font-size: 13px;
	color: var(--text-3);
}

@media (max-width: 520px) {
	.intro { padding: 40px 0 40px; }
	.product { padding: 24px 20px; }
	.lede { font-size: 18px; }
}
