.prototype-section {
	--base-light-1: #eeeef4;
	--text: #181824;
	--muted: #5a5a72;
	--accent: #1f6feb;
	--edge-w: clamp(46px, 5vw, 72px);
	--progress-base: 0;
	--progress-fill: 0;
	--progress: 0;
	--progress-duration: 0.2s;
	--progress-ease: ease;
	--dot-scale: 1;
	--stage-top: 0px;
	--stage-height: 0px;
	--timeline-content-max: 1120px;
	width: 100%;
	height: auto;
	border: 0;
	background:
		radial-gradient(circle at 92% 86%, #f5f5ff 0%, transparent 32%),
		var(--base-light-1);
	position: relative;
	overflow: hidden;
	touch-action: pan-y;
	user-select: none;
	color: var(--text);
	font-family: "Inter", "Segoe UI", system-ui, sans-serif;
}

.page-home > section.prototype-section {
	background:
		radial-gradient(circle at 92% 86%, #f5f5ff 0%, transparent 32%),
		var(--base-light-1);
}

.prototype-section .breakpoint-markers {
	position: absolute;
	left: 0;
	right: 0;
	top: 0;
	height: 0;
	pointer-events: none;
	z-index: 30;
}

.prototype-section .breakpoint-dot {
	position: absolute;
	top: 0;
	width: 8px;
	height: 8px;
	border-radius: 999px;
	background: #ff3b30;
	transform: translate(-50%, -40%);
}

.prototype-section .breakpoint-dot::after {
	content: attr(data-bp);
	position: absolute;
	top: 10px;
	left: 50%;
	transform: translateX(-50%);
	font-size: 10px;
	line-height: 1;
	letter-spacing: 0.06em;
	color: #ff3b30;
	white-space: nowrap;
}

.prototype-section .breakpoint-dot.bp-560 {
	left: 560px;
}

.prototype-section .breakpoint-dot.bp-980 {
	left: 980px;
}

.prototype-section .current-width-marker {
	position: absolute;
	top: 0;
	right: 0;
	pointer-events: none;
	z-index: 31;
}

.prototype-section .current-width-dot {
	position: absolute;
	top: 0;
	right: 0;
	width: 8px;
	height: 8px;
	border-radius: 999px;
	background: #0a84ff;
	transform: translate(50%, -40%);
}

.prototype-section .current-width-value {
	position: absolute;
	top: 10px;
	right: 12px;
	font-size: 10px;
	line-height: 1;
	letter-spacing: 0.06em;
	color: #0a84ff;
	white-space: nowrap;
}

.prototype-section .section-layout {
	position: relative;
	display: flex;
	flex-direction: column;
	width: min(calc(100% - 34px), var(--timeline-content-max));
	margin-inline: auto;
	padding-top: 56px;
	padding-bottom: 56px;
}

.prototype-section .stage {
	--media-col: 7fr;
	--story-col: 5fr;
	--media-min: 340px;
	--story-min: 200px;
	display: grid;
	grid-template-columns: minmax(var(--media-min), var(--media-col)) minmax(var(--story-min), var(--story-col));
	gap: 20px;
	align-items: stretch;
}

.prototype-section .media-shell {
	--media-corner: 22px;
	position: relative;
	border-radius: 0;
	overflow: visible;
	aspect-ratio: 7 / 5;
	width: 100%;
	height: auto;
	justify-self: start;
	max-width: none;
	align-self: flex-start;
	background: transparent;
	box-shadow: none;
}

.prototype-section .media-clip {
	position: absolute;
	inset: 0;
	border-radius: var(--media-corner);
	overflow: hidden;
	background: rgba(255, 255, 255, 0.45);
	box-shadow: 0 24px 60px rgba(24, 24, 36, 0.09);
}

.prototype-section .media-layer {
	--angle: 126deg;
	--h1: 224;
	--h2: 248;
	--timeline-image: none;
	position: absolute;
	inset: 0;
	opacity: 0;
	transform: scale(1.04);
	transition: opacity 0.5s ease, transform 0.5s ease;
	background:
		radial-gradient(120% 88% at 14% 84%, hsl(var(--h1) 58% 88% / 0.84), transparent 58%),
		radial-gradient(90% 70% at 88% 14%, hsl(var(--h2) 42% 90% / 0.82), transparent 52%),
		repeating-linear-gradient(
			var(--angle),
			rgba(24, 24, 36, 0.03) 0 14px,
			rgba(24, 24, 36, 0.09) 14px 28px
		);
}

.prototype-section .media-layer.has-image {
	background:
		var(--timeline-image) center / contain no-repeat,
		radial-gradient(120% 88% at 14% 84%, hsl(var(--h1) 58% 88% / 0.84), transparent 58%),
		radial-gradient(90% 70% at 88% 14%, hsl(var(--h2) 42% 90% / 0.82), transparent 52%);
}

.prototype-section .media-layer.is-visible {
	opacity: 1;
	transform: scale(1);
}

.prototype-section .year-slot {
	width: min(100%, 400px);
	margin: 0;
	padding-left: 70px;
	box-sizing: border-box;
	align-self: flex-end;
	flex: 0 1 auto;
	min-width: 0;
	pointer-events: none;
}

.prototype-section .year-svg {
	display: block;
	width: 100%;
	height: auto;
}

.prototype-section .year-ghost {
	fill: rgba(24, 24, 36, 0.08);
	font-family: "Inter", "Segoe UI", system-ui, sans-serif;
	font-size: 220px;
	font-weight: 700;
	letter-spacing: -0.05em;
	font-kerning: none;
	font-variant-numeric: tabular-nums lining-nums;
	font-feature-settings: "tnum" 1, "lnum" 1;
}

.prototype-section .media-fade {
	position: absolute;
	inset: 0;
	background:
		linear-gradient(180deg, rgba(238, 238, 244, 0.08) 0%, rgba(238, 238, 244, 0.52) 100%),
		linear-gradient(90deg, rgba(238, 238, 244, 0.06) 0%, rgba(238, 238, 244, 0.18) 100%);
	pointer-events: none;
	z-index: 1;
}

.prototype-section .story {
	position: relative;
	min-height: 0;
	min-width: 0;
	display: grid;
	grid-template-rows: auto minmax(36px, 0.34fr) auto;
	gap: 8px;
	padding: 4px 0 2px 2px;
	align-self: stretch;
}

.prototype-section .story-head {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	gap: 15px;
	min-width: 0;
}

.prototype-section .kicker {
	margin: 0;
	font-size: 11px;
	text-transform: uppercase;
	letter-spacing: 0.12em;
	color: var(--muted);
	padding: 0;
	border: 0;
	background: transparent;
	display: block;
}

.prototype-section .copy {
	grid-row: 3;
	align-self: start;
	display: grid;
	gap: 0.5rem;
	padding-right: 24px;
	max-width: min(100%, 40rem);
}

.prototype-section .title {
	margin: 0;
	max-width: min(100%, 15ch);
	text-wrap: balance;
}

.prototype-section .text {
	margin: 0;
	font-size: 14px;
	line-height: 1.55;
	color: var(--muted);
	text-wrap: pretty;
}

.prototype-section .mobile-nav {
	position: absolute;
	left: 0;
	right: 0;
	top: var(--stage-top);
	height: var(--stage-height);
	pointer-events: none;
	z-index: 8;
}

.prototype-section .mobile-nav .edge-nav {
	pointer-events: auto;
}

.prototype-section .edge-nav {
	position: absolute;
	top: 0;
	bottom: 0;
	width: var(--edge-w);
	border: 0;
	outline: none;
	overflow: hidden;
	appearance: none;
	-webkit-appearance: none;
	-webkit-tap-highlight-color: rgba(24, 24, 36, 0.12);
	background: linear-gradient(
		180deg,
		rgba(255, 255, 255, 0.36) 0%,
		rgba(255, 255, 255, 0.14) 40%,
		rgba(255, 255, 255, 0.4) 100%
	);
	color: rgba(24, 24, 36, 0.72);
	font-size: clamp(24px, 3.2vw, 36px);
	line-height: 1;
	display: flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	z-index: 7;
	transition: background-color 0.2s ease, color 0.2s ease, opacity 0.2s ease;
}

.prototype-section .edge-nav:focus-visible {
	outline: 2px solid rgba(31, 111, 235, 0.38);
	outline-offset: -2px;
}

.prototype-section .edge-nav::before {
	content: "";
	width: 0.54em;
	height: 0.54em;
	border-top: 0.1em solid currentColor;
	border-right: 0.1em solid currentColor;
	transform: rotate(45deg);
	display: block;
}

.prototype-section .edge-nav.prev {
	left: 0;
}

.prototype-section .edge-nav.prev::before {
	transform: rotate(-135deg);
}

.prototype-section .edge-nav.next {
	right: 0;
}

.prototype-section .edge-nav:hover {
	background: linear-gradient(
		180deg,
		rgba(255, 255, 255, 0.62) 0%,
		rgba(255, 255, 255, 0.28) 40%,
		rgba(255, 255, 255, 0.66) 100%
	);
	color: var(--text);
}

.prototype-section .edge-nav:active:not(.is-disabled):not([aria-disabled="true"]) {
	box-shadow: inset 0 0 0 999px rgba(24, 24, 36, 0.08);
}

.prototype-section .edge-nav.is-disabled,
.prototype-section .edge-nav[aria-disabled="true"] {
	opacity: 0.3;
	cursor: default;
	color: rgba(24, 24, 36, 0.4);
}

.prototype-section .timeline {
	margin: 0;
	display: grid;
	gap: 7px;
	padding: 20px 0 5px;
}

.prototype-section .line {
	display: flex;
	align-items: center;
	gap: 0;
	overflow: visible;
}

.prototype-section .line-main {
	position: relative;
	flex: 1 1 auto;
	min-width: 0;
	height: 2px;
	background: rgba(24, 24, 36, 0.18);
}

.prototype-section .line-fill {
	position: absolute;
	left: calc(var(--progress-base) * 100%);
	top: 0;
	bottom: 0;
	width: calc(var(--progress-fill) * 100%);
	background: var(--accent);
	transition: left var(--progress-duration) var(--progress-ease), width var(--progress-duration) var(--progress-ease);
}

.prototype-section .line-dot {
	position: absolute;
	left: calc(var(--progress) * 100%);
	top: 50%;
	width: 10px;
	height: 10px;
	border-radius: 999px;
	background: var(--accent);
	transform: translate(-50%, -50%) scale(var(--dot-scale, 1));
	transform-origin: center;
	transition: left var(--progress-duration) var(--progress-ease), transform 0.14s ease;
	will-change: left, transform;
}

.prototype-section .years {
	display: flex;
	justify-content: space-between;
	gap: 8px;
	padding-left: 0;
}

.prototype-section .year-btn {
	border: 0;
	background: transparent;
	padding: 0;
	font-size: clamp(10px, 1.1vw, 12px);
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color: var(--muted);
	cursor: pointer;
	flex: 1 1 auto;
	position: relative;
	transition: color 0.2s ease;
}

.prototype-section .year-btn::after {
	content: "";
	position: absolute;
	left: 20%;
	right: 20%;
	bottom: -5px;
	height: 2px;
	background: var(--accent);
	transform: scaleX(0);
	transform-origin: center;
	transition: transform 0.2s ease;
}

.prototype-section .year-btn.is-active {
	color: var(--text);
}

.prototype-section .year-btn.is-active::after {
	transform: scaleX(1);
}

@media (min-width: 561px) {
	.prototype-section .year-slot {
		width: min(100%, 340px);
		padding-left: 52px;
	}

	.prototype-section .title {
		font-size: clamp(28px, calc(17px + 1.8cqi), 42px);
		line-height: 1;
		letter-spacing: 0;
	}
}

@media (min-width: 1240px) {
	.prototype-section .mobile-nav {
		left: calc(var(--edge-w) * -1);
		right: calc(var(--edge-w) * -1);
	}
}

@media (max-width: 980px) {
	.prototype-section .kicker {
		font-size: 9px;
	}

	.prototype-section .text {
		font-size: 12px;
	}
}

@media (max-width: 760px) {
	.prototype-section .copy {
		padding-right: 0;
	}
}

@media (max-width: 560px) {
	.prototype-section {
		min-height: 0;
	}

	.prototype-section .section-layout {
		width: 100%;
		margin-inline: 0;
		min-height: 0;
		padding-top: 56px;
		padding-bottom: 0;
	}

	.prototype-section .stage {
		display: grid;
		grid-template-columns: 1fr;
		grid-template-rows: auto auto auto;
		gap: 8px;
		align-content: start;
		flex: 0 0 auto;
		min-height: 0;
	}

	.prototype-section .media-shell {
		--media-corner: 20px;
		width: 100%;
		height: auto;
		max-width: none;
		order: 2;
		margin-top: clamp(2px, 1vh, 8px);
	}

	.prototype-section .media-clip {
		border-radius: 0;
	}

	.prototype-section .story {
		display: contents;
	}

	.prototype-section .story-head {
		position: relative;
		display: block;
		order: 1;
		min-height: 34px;
		padding: 2px 116px 0 2px;
		margin: 0;
	}

	.prototype-section .year-slot {
		position: absolute;
		top: -8px;
		right: 0;
		width: 108px;
		padding-left: 0;
	}

	.prototype-section .year-ghost {
		fill: rgba(24, 24, 36, 0.12);
	}

	.prototype-section .copy {
		order: 3;
		margin-top: 4px;
		padding-left: 2px;
		max-width: none;
		min-height: 128px;
		align-content: start;
	}

	.prototype-section .timeline {
		margin: 0;
		padding: 20px 0 5px;
	}

	.prototype-section .mobile-nav {
		position: static;
		left: auto;
		right: auto;
		top: auto;
		height: auto;
		pointer-events: auto;
		z-index: auto;
		display: grid;
		grid-template-columns: 1fr 1fr;
		margin: 8px 0 0;
		border-top: 1px solid rgba(24, 24, 36, 0.18);
		border-bottom: 1px solid rgba(24, 24, 36, 0.18);
	}

	.prototype-section .mobile-nav .edge-nav {
		position: static;
		inset: auto;
		width: 100%;
		min-height: 56px;
		font-size: clamp(26px, 7vw, 34px);
		background: linear-gradient(
			180deg,
			rgba(255, 255, 255, 0.5) 0%,
			rgba(255, 255, 255, 0.24) 100%
		);
	}

	.prototype-section .mobile-nav .edge-nav.prev {
		border-right: 1px solid rgba(24, 24, 36, 0.14);
	}

	.prototype-section .years {
		overflow-x: auto;
		overflow-y: hidden;
		justify-content: flex-start;
		gap: 14px;
		touch-action: pan-y;
		overscroll-behavior-x: contain;
		scrollbar-width: none;
		-ms-overflow-style: none;
	}

	.prototype-section .years::-webkit-scrollbar {
		display: none;
	}

	.prototype-section .year-btn {
		flex: 0 0 auto;
		min-width: 40px;
	}
}
