/* ============================================================
   Steerability Landing — styles matching the competition site
   ============================================================= */

:root {
	--bg: #FFFFFF;
	--ink: #17181C;
	--soft: #5A5C66;
	--line: #E4E4E8;
	--accent: #1F3BD3;
	--font-serif: "Newsreader", Georgia, "Times New Roman", serif;
	--font-mono: "Spline Sans Mono", ui-monospace, "SF Mono", Menlo, monospace;
	--measure: 70rem;
	--lift: 5px;
}

* {
	box-sizing: border-box;
}
html {
	scroll-behavior: smooth;
}
body {
	margin: 0 auto;
	max-width: var(--measure);
	min-height: 100vh;
	padding: 2.25rem 1.25rem;
	background: var(--bg);
	color: var(--ink);
	font-family: var(--font-serif);
	font-size: 1.125rem;
	line-height: 1.7;
	-webkit-font-smoothing: antialiased;
}

a {
	color: var(--accent);
	text-decoration: underline;
	text-underline-offset: 3px;
	text-decoration-thickness: 1px;
	padding: 0 0.12em;
	margin: 0 -0.12em;
}
a:hover {
	background: var(--accent);
	color: #fff;
	text-decoration: none;
}
:focus-visible {
	outline: 2px solid var(--accent);
	outline-offset: 3px;
}

p {
	margin: 0 0 1.1rem;
}

.toolkit {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	margin: 0 0 1.1rem 0;
	padding-bottom: 3rem;
}
.toolkit a {
	display: flex;
	padding: 0;
	margin: 0;
	text-decoration: none;
}
.toolkit a:hover {
	background: none;
}
.toolkit img {
	display: block;
	height: 3.5rem;
	width: auto;
}
.toolkit .links {
	color: var(--soft);
	display: flex;
	flex-wrap: wrap;
	gap: 1.4rem;
	font-size: 0.95rem;
}
.toolkit .links a {
	color: var(--soft);
	text-decoration: none;
	padding: 0;
	margin: 0;
}
.toolkit .links a:hover {
	background: var(--ink);
	color: #fff;
}

.wordmark {
	margin: 0 0 2rem;
	font-size: 3rem;
	font-weight: 600;
	line-height: 1;
	letter-spacing: -0.01em;
	text-transform: lowercase;
	color: var(--ink);
}
.wordmark em {
	font-style: italic;
	color: var(--accent);
}

section {
	margin-top: 3.25rem;
}
.intro {
	margin-top: 0;
}
.intro p:first-child {
	font-size: 1.35rem;
	line-height: 1.5;
	color: var(--ink);
}
h2 {
	font-size: 1.25rem;
	font-weight: 600;
	line-height: 1.35;
	margin: 3.25rem 0 1.5rem;
}

/* Events timeline: reverse-chronological hard-shadow boxes on a
   left-hand rail (dots + pulsing "today" marker). The rail starts at
   the first event and runs past the last one into a short tail, capped
   by a terminal stopper (::after). */
ol.timeline {
	position: relative;
	list-style: none;
	margin: 0 0 1.1rem;
	padding: 0 0 4rem 2rem;
}
/* The vertical rail: from the first event down through the tail. */
ol.timeline::before {
	content: "";
	position: absolute;
	left: 4px;
	top: 1.6rem;
	bottom: 0;
	width: 1px;
	background: var(--line);
}
/* Terminal stopper: a small circle where the rail ends. */
ol.timeline::after {
	content: "";
	position: absolute;
	left: 5px;
	bottom: -3px;
	width: 0.5rem;
	height: 0.5rem;
	background: var(--line);
	border-radius: 50%;
	transform: translateX(-50%);
}

/* Event boxes retain the hard-shadow style. */
ol.timeline li.event {
	position: relative;
	background: #fff;
	border: 1px solid var(--ink);
	box-shadow: var(--lift) var(--lift) 0 var(--ink);
	padding: 1.1rem 1.25rem;
	margin: 0 var(--lift) 2rem 0;
}
ol.timeline li.event:last-child {
	margin-bottom: 0;
}
/* Dot centered on the rail, aligned to the box's first line.
   The box has a 1px border, so its padding box (the positioning
   origin) starts 1px inside the 2rem gutter; offset accounts for it. */
ol.timeline li.event::before {
	content: "";
	position: absolute;
	left: calc(4px - 2rem - 1px);
	top: 1.35rem;
	width: 0.5em;
	height: 0.5em;
	background: var(--accent);
	border: 1.5px solid var(--accent);
	transform: translateX(-50%);
}
ol.timeline li.event.upcoming::before {
	background: var(--bg);
	border-color: var(--ink);
}

/* "Today" marker: a pulsing diamond on the rail, no box. */
ol.timeline li.today {
	position: relative;
	margin: 0 0 2rem 0;
}
ol.timeline li.today::before {
	content: "";
	position: absolute;
	left: calc(5px - 2rem);
	top: 50%;
	width: 0.5em;
	height: 0.5em;
	background: var(--accent);
	transform: translate(-50%, -50%) rotate(45deg);
	animation: today-pulse 2.5s ease-out infinite;
}
@keyframes today-pulse {
	0% {
		box-shadow: 0 0 0 0 rgba(31, 59, 211, 0.35);
	}
	70%,
	100% {
		box-shadow: 0 0 0 7px rgba(31, 59, 211, 0);
	}
}
.today-label {
	color: var(--soft);
	font-family: var(--font-mono);
	font-size: 0.8rem;
	font-weight: 500;
	letter-spacing: 0.02em;
}

.when {
	color: var(--soft);
	font-family: var(--font-mono);
	font-size: 0.8rem;
	letter-spacing: 0.02em;
}
.what {
	margin: 0.5rem 0 0;
	font-weight: 600;
	color: var(--ink);
}
.what .prefix {
	color: var(--accent);
}
ol.timeline a {
	color: var(--accent);
}
ol.timeline p {
	margin: 0.5rem 0 0;
	color: var(--soft);
}

footer {
	margin-top: 4.5rem;
	padding: 1.5rem 0 3rem;
	font-size: 0.85rem;
	color: var(--soft);
}
