/*
    Upreps — shared styles.

    Follows the visual identity: 75% Carbon/Night, 20% Cloud, 5% Ignite.
    Orange is an event, not a surface — it appears on links, the wordmark
    accent and nothing else. No hero flooded in Ignite: that would sell the
    reward without the work, which is the visual equivalent of "crush it".
*/

:root {
	--carbon: #08080A;
	--surface: #141419;
	--night: #1B2436;
	--ignite: #FF5A1F;
	--ember: #FFB020;
	--cloud: #F4F4F6;
	--muted: #8A8A93;
	--line: #23232B;
}

* { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; }

body {
	margin: 0;
	background: var(--carbon);
	color: var(--cloud);
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Inter, Helvetica, Arial, sans-serif;
	font-size: 17px;
	line-height: 1.65;
	-webkit-font-smoothing: antialiased;
}

.wrap {
	max-width: 720px;
	margin: 0 auto;
	padding: 0 24px;
}

/* Header */

header {
	border-bottom: 1px solid var(--line);
	padding: 28px 0;
	margin-bottom: 56px;
}

header .wrap {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	flex-wrap: wrap;
}

.wordmark {
	font-size: 22px;
	font-weight: 700;
	letter-spacing: -0.02em;
	color: var(--cloud);
	text-decoration: none;
}

.wordmark span { color: var(--ignite); }

nav a {
	color: var(--muted);
	text-decoration: none;
	margin-left: 22px;
	font-size: 15px;
}

nav a:hover { color: var(--cloud); }

/* Type */

h1 {
	font-size: 34px;
	line-height: 1.2;
	letter-spacing: -0.02em;
	margin: 0 0 8px;
}

h2 {
	font-size: 20px;
	letter-spacing: -0.01em;
	margin: 44px 0 10px;
}

p { margin: 0 0 18px; }

a { color: var(--ignite); }

.lede {
	font-size: 19px;
	color: var(--cloud);
	margin-bottom: 32px;
}

.updated {
	color: var(--muted);
	font-size: 15px;
	margin-bottom: 44px;
}

/* Cards */

.card {
	background: var(--surface);
	border: 1px solid var(--line);
	border-radius: 14px;
	padding: 24px 26px;
	margin: 28px 0;
}

.card h2 { margin-top: 0; }

.card p:last-child { margin-bottom: 0; }

dl { margin: 0; }

dt {
	color: var(--muted);
	font-size: 14px;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	margin-top: 18px;
}

dt:first-child { margin-top: 0; }

dd {
	margin: 4px 0 0;
	font-size: 17px;
}

/* Footer */

footer {
	border-top: 1px solid var(--line);
	margin-top: 72px;
	padding: 32px 0 56px;
	color: var(--muted);
	font-size: 15px;
}

footer a { color: var(--muted); }

footer a:hover { color: var(--cloud); }

footer .legal { margin-top: 14px; font-size: 14px; }

@media (max-width: 560px) {
	body { font-size: 16px; }
	h1 { font-size: 27px; }
	header { margin-bottom: 40px; }
	nav a { margin-left: 0; margin-right: 18px; }
}

/* Language switcher */

.langs {
	margin-left: 22px;
	padding-left: 22px;
	border-left: 1px solid var(--line);
	white-space: nowrap;
}

.langs a {
	margin-left: 0;
	margin-right: 10px;
	font-size: 13px;
	letter-spacing: 0.06em;
}

.langs a:last-child { margin-right: 0; }

.langs a.on { color: var(--ignite); }

/* FAQ questions */

h3 {
	font-size: 17px;
	margin: 30px 0 8px;
	letter-spacing: -0.01em;
}

@media (max-width: 560px) {
	.langs { margin-left: 0; padding-left: 0; border-left: 0; display: block; margin-top: 10px; }
}
