html {
	scroll-behavior: smooth;
}

/* ═══════════════════════════════════════════════════════════════
       design-systems/spotify/tokens.css — pasted verbatim
       Near-black immersive dark · Spotify Green functional accent
       · pill geometry · SpotifyMixUI compact type
       ═══════════════════════════════════════════════════════════════ */
.landing {
	/* ─── Surface ──────────────────────────────────────────────────── */
	--bg: #121212;
	--surface: #181818;
	--surface-warm: #1f1f1f;

	/* ─── Foreground ───────────────────────────────────────────────── */
	--fg: #ffffff;
	--fg-2: #fdfdfd;
	--muted: #b3b3b3;
	--meta: #cbcbcb;

	/* ─── Border ───────────────────────────────────────────────────── */
	--border: #4d4d4d;
	--border-soft: rgba(255, 255, 255, 0.1);

	/* ─── Accent ───────────────────────────────────────────────────── */
	--accent: #1ed760;
	--accent-on: #000000;
	--accent-hover: #1db954;
	--accent-active: color-mix(in oklab, var(--accent), black 10%);

	/* ─── Semantic ─────────────────────────────────────────────────── */
	--success: #1ed760;
	--warn: #ffa42b;
	--danger: #f3727f;

	/* ─── Typography ───────────────────────────────────────────────── */
	--font-display: 'SpotifyMixUITitle', 'CircularSp', 'Helvetica Neue', Helvetica, Arial, sans-serif;
	--font-body: 'SpotifyMixUI', 'CircularSp', 'Helvetica Neue', Helvetica, Arial, sans-serif;
	--font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;

	--text-xs: 10px;
	--text-sm: 12px;
	--text-base: 16px;
	--text-lg: 18px;
	--text-xl: 20px;
	--text-2xl: 24px;
	--text-3xl: 24px;
	--text-4xl: 24px;

	--leading-body: 1.5;
	--leading-tight: 1;
	--tracking-display: normal;

	/* ─── Spacing ──────────────────────────────────────────────────── */
	--space-1: 4px;
	--space-2: 8px;
	--space-3: 12px;
	--space-4: 16px;
	--space-5: 20px;
	--space-6: 24px;
	--space-8: 32px;
	--space-12: 48px;

	--section-y-desktop: 64px;
	--section-y-tablet: 40px;
	--section-y-phone: 24px;

	/* ─── Radius ───────────────────────────────────────────────────── */
	--radius-sm: 9999px;
	--radius-md: 6px;
	--radius-lg: 8px;
	--radius-pill: 9999px;

	/* ─── Elevation ────────────────────────────────────────────────── */
	--elev-flat: none;
	--elev-ring: 0 0 0 1px var(--border);
	--elev-raised: rgba(0, 0, 0, 0.3) 0px 8px 8px;
	--elev-dialog: rgba(0, 0, 0, 0.5) 0px 8px 24px;

	/* ─── Focus ────────────────────────────────────────────────────── */
	--focus-ring: 0 0 0 3px rgba(30, 215, 96, 0.4);

	/* ─── Motion ───────────────────────────────────────────────────── */
	--motion-fast: 150ms;
	--motion-base: 200ms;
	--ease-standard: ease;

	/* ─── Layout ───────────────────────────────────────────────────── */
	--container-max: 1280px;
	--container-gutter-desktop: 24px;
	--container-gutter-tablet: 16px;
	--container-gutter-phone: 16px;
}

/* ═══════════════════════════════════════════════════════════════
       Base — near-black canvas, white text, SpotifyMixUI, compact
       ═══════════════════════════════════════════════════════════════ */
.landing *,
.landing *::before,
.landing *::after {
	box-sizing: border-box;
}

.landing {
	-webkit-text-size-adjust: 100%;
	scroll-behavior: smooth;
}

.landing {
	margin: 0;
	background: var(--bg);
	color: var(--fg);
	font-family: var(--font-body);
	font-size: var(--text-base);
	font-weight: 400;
	line-height: var(--leading-body);
	font-feature-settings: 'kern';
	text-rendering: optimizeLegibility;
	-webkit-font-smoothing: antialiased;
}

img,
svg {
	display: block;
	max-width: 100%;
}

a {
	color: inherit;
	text-decoration: none;
}

button {
	font: inherit;
	cursor: pointer;
}

p {
	text-wrap: pretty;
	margin: 0;
}

h1,
h2,
h3,
h4 {
	text-wrap: balance;
	margin: 0;
}

.landing ::selection {
	background: var(--accent);
	color: var(--accent-on);
}

/* ═══ Skip link — WCAG 2.4.1 bypass blocks ═══ */
.skip-link {
	position: absolute;
	top: -48px;
	left: var(--space-3);
	z-index: 100;
	padding: 10px 16px;
	background: var(--accent);
	color: var(--accent-on);
	border-radius: var(--radius-sm);
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	transition: top var(--motion-fast) var(--ease-standard);
	clip-path: inset(0 0 0 0);
}

.skip-link:focus-visible {
	top: var(--space-2);
	outline: none;
	box-shadow: var(--focus-ring);
}

/* ═══ Layout primitives ═══ */
.container {
	max-width: var(--container-max);
	margin-inline: auto;
	padding-inline: var(--container-gutter-desktop);
}

.section {
	padding-block: var(--section-y-desktop);
}

section[id],
.hero[id] {
	scroll-margin-top: 88px;
}

.section + .section {
	border-top: 1px solid var(--border-soft);
}

.stack {
	display: flex;
	flex-direction: column;
}

.stack > * + * {
	margin-top: var(--space-6);
}

.row {
	display: flex;
	align-items: center;
	gap: var(--space-4);
}

.row-between {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--space-4);
}

.grid-2 {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: var(--space-8);
}

.grid-3 {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: var(--space-6);
}

.grid-4 {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: var(--space-4);
}

.center {
	text-align: center;
}

.mx-auto {
	margin-inline: auto;
}

/* ═══ Typography ═══
       App token scale stays compact (10–24px). Marketing display tier
       (hero/section heads) uses clamp() — same dual-mode Spotify's own
       marketing site uses vs. the app. Tokens are not redefined. */
h1 {
	font-family: var(--font-display);
	font-size: clamp(40px, 6.5vw, 68px);
	font-weight: 700;
	line-height: var(--leading-tight);
	letter-spacing: -0.02em;
}

h2 {
	font-family: var(--font-display);
	font-size: clamp(32px, 4.5vw, 48px);
	font-weight: 700;
	line-height: 1.08;
	letter-spacing: -0.015em;
}

h3 {
	font-size: var(--text-lg);
	font-weight: 700;
	line-height: 1.3;
	letter-spacing: normal;
}

.lead {
	font-size: var(--text-lg);
	font-weight: 400;
	line-height: 1.45;
	color: var(--muted);
	max-width: 56ch;
}

.eyebrow {
	font-family: var(--font-mono);
	font-size: var(--text-sm);
	font-weight: 400;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--muted);
	margin: 0 0 var(--space-4);
}

.eyebrow.accent {
	color: var(--accent);
}

.meta {
	font-family: var(--font-mono);
	font-size: var(--text-sm);
	color: var(--muted);
}

.num {
	font-family: var(--font-mono);
	font-variant-numeric: tabular-nums;
}

/* ═══ Buttons — pill (9999px), uppercase + wide tracking ═══ */
.btn {
	display: inline-flex;
	align-items: center;
	gap: var(--space-2);
	padding: 12px 28px;
	border-radius: var(--radius-sm);
	border: 1px solid transparent;
	font-family: var(--font-body);
	font-size: 14px;
	font-weight: 700;
	letter-spacing: 1.4px;
	text-transform: uppercase;
	line-height: 1;
	transition:
		background var(--motion-base) var(--ease-standard),
		border-color var(--motion-base) var(--ease-standard),
		transform var(--motion-fast) var(--ease-standard),
		box-shadow var(--motion-base) var(--ease-standard);
	white-space: nowrap;
}

.btn:active {
	transform: scale(0.97);
}

.btn-green:active {
	background: var(--accent-active);
}

.btn-dark:active {
	background: color-mix(in oklab, var(--surface-warm), white 14%);
}

.btn-outline:active {
	background: var(--surface-warm);
	border-color: var(--fg);
}

.btn:focus-visible {
	outline: none;
	box-shadow: var(--focus-ring);
}

.btn-green {
	background: var(--accent);
	color: var(--accent-on);
	border-color: var(--accent);
}

.btn-green:hover {
	background: var(--accent-hover);
	border-color: var(--accent-hover);
}

.btn-dark {
	background: var(--surface-warm);
	color: var(--fg);
}

.btn-dark:hover {
	background: color-mix(in oklab, var(--surface-warm), white 8%);
}

.btn-outline {
	background: transparent;
	color: var(--fg);
	border-color: var(--border);
}

.btn-outline:hover {
	border-color: var(--fg);
}

.btn-arrow::after {
	content: '→';
	transition: transform var(--motion-base) var(--ease-standard);
}

.btn-arrow:hover::after {
	transform: translateX(3px);
}

/* ═══ Cards — #181818, 6px radius, no hard borders, hover lift ═══ */
.card {
	background: var(--surface);
	border-radius: var(--radius-md);
	padding: var(--space-8);
	transition:
		background var(--motion-base) var(--ease-standard),
		box-shadow var(--motion-base) var(--ease-standard);
}

.card:hover {
	background: var(--surface-warm);
}

/* ═══ Focus visible — green ring (Spotify signature) ═══ */
a:focus-visible,
button:focus-visible,
input:focus-visible,
textarea:focus-visible {
	outline: none;
	box-shadow: var(--focus-ring);
}

/* ═══ Nav — sticky frosted dark ═══ */
.topnav {
	position: sticky;
	top: 0;
	z-index: 50;
	background: color-mix(in oklab, var(--bg) 88%, transparent);
	backdrop-filter: blur(16px);
	-webkit-backdrop-filter: blur(16px);
	border-bottom: 1px solid var(--border-soft);
}

.topnav-inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding-block: var(--space-3);
}

.topnav .logo {
	display: flex;
	align-items: center;
	gap: var(--space-2);
	font-family: var(--font-display);
	font-size: var(--text-lg);
	font-weight: 700;
	letter-spacing: -0.01em;
	color: var(--fg);
}

.topnav .logo img {
	height: 30px;
	width: auto;
	display: block;
}

.topnav nav {
	display: flex;
	gap: var(--space-8);
}

.topnav nav a {
	font-size: 14px;
	font-weight: 700;
	letter-spacing: normal;
	color: var(--muted);
	transition: color var(--motion-fast) var(--ease-standard);
}

.topnav nav a:hover,
.topnav nav a.active {
	color: var(--fg);
}

/* Mobile menu */
.nav-toggle {
	display: none;
	width: 44px;
	height: 44px;
	border: 1px solid var(--border-soft);
	border-radius: 50%;
	background: var(--surface-warm);
	place-items: center;
	cursor: pointer;
	color: var(--fg);
}

.nav-toggle svg {
	width: 18px;
	height: 18px;
}

.nav-toggle[aria-expanded='true'] svg.line-1 {
	display: none;
}

.nav-toggle[aria-expanded='true'] svg.line-2 {
	display: block;
}

svg.line-2 {
	display: none;
}

.nav-mobile {
	display: none;
	flex-direction: column;
	gap: var(--space-2);
	padding: var(--space-4) var(--container-gutter-tablet) var(--space-6);
	border-bottom: 1px solid var(--border-soft);
	background: var(--bg);
}

.nav-mobile[aria-hidden='false'] {
	display: flex;
}

.nav-mobile a {
	padding: var(--space-3) var(--space-2);
	font-size: var(--text-base);
	font-weight: 700;
	color: var(--fg);
	border-bottom: 1px solid var(--border-soft);
}

.nav-mobile .btn {
	margin-top: var(--space-3);
}

@media (max-width: 920px) {
	.nav-toggle {
		display: grid;
	}

	.topnav nav {
		display: none;
	}

	.topnav .topnav-inner > .btn {
		display: none;
	}
}

/* ═══ Hero — dark immersive, browser mockup, green feedback pin ═══ */
.hero {
	background: var(--bg);
	padding-block: clamp(56px, 9vw, 112px);
	overflow: hidden;
}

.hero-grid {
	display: grid;
	grid-template-columns: 1fr 1.1fr;
	gap: clamp(40px, 6vw, 80px);
	align-items: center;
}

.hero h1 {
	margin-bottom: var(--space-6);
}

.hero .lead {
	margin-bottom: var(--space-8);
	max-width: 48ch;
}

.hero-cta {
	display: inline-flex;
	gap: var(--space-3);
	flex-wrap: wrap;
}

/* ═══ Product mockup — browser frame + green feedback pin + comment card ═══ */
.mockup-wrap {
	position: relative;
}

.browser {
	background: var(--surface);
	border-radius: var(--radius-lg);
	box-shadow: var(--elev-dialog);
	overflow: hidden;
}

.browser-bar {
	display: flex;
	align-items: center;
	gap: var(--space-2);
	padding: var(--space-3) var(--space-4);
	background: var(--surface-warm);
	border-bottom: 1px solid var(--border-soft);
}

.browser-dot {
	width: 11px;
	height: 11px;
	border-radius: 50%;
	background: var(--border);
}

.browser-url {
	flex: 1;
	margin-left: var(--space-2);
	padding: 6px var(--space-3);
	background: var(--bg);
	border-radius: var(--radius-pill);
	font-family: var(--font-mono);
	font-size: 11px;
	color: var(--muted);
	letter-spacing: 0.04em;
}

.browser-.landing {
	padding: var(--space-6);
	position: relative;
	background: var(--bg);
}

/* Mock website under review (dark client site) */
.mock-site-nav {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding-bottom: var(--space-6);
	border-bottom: 1px solid var(--border-soft);
}

.mock-site-logo {
	width: 72px;
	height: 14px;
	background: var(--fg);
	border-radius: 3px;
	opacity: 0.85;
}

.mock-site-links {
	display: flex;
	gap: var(--space-4);
}

.mock-site-links span {
	width: 36px;
	height: 8px;
	background: var(--border);
	border-radius: 2px;
}

.mock-site-hero {
	padding-block: var(--space-8);
}

.mock-headline {
	width: 70%;
	height: 28px;
	background: var(--fg);
	border-radius: 4px;
	opacity: 0.88;
	margin-bottom: var(--space-3);
}

.mock-headline-2 {
	width: 45%;
	height: 28px;
	background: var(--fg);
	border-radius: 4px;
	opacity: 0.88;
	margin-bottom: var(--space-4);
}

.mock-subtext {
	width: 80%;
	height: 10px;
	background: var(--border);
	border-radius: 2px;
	margin-bottom: var(--space-2);
}

.mock-subtext-2 {
	width: 60%;
	height: 10px;
	background: var(--border);
	border-radius: 2px;
	margin-bottom: var(--space-6);
}

.mock-cta {
	width: 120px;
	height: 36px;
	background: var(--fg);
	border-radius: var(--radius-pill);
	opacity: 0.92;
}

.mock-cards {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: var(--space-3);
	margin-top: var(--space-8);
}

.mock-card {
	height: 80px;
	background: var(--surface);
	border-radius: var(--radius-md);
}

/* Feedback pin — Spotify green, functional marker */
.pin {
	position: absolute;
	width: 28px;
	height: 28px;
	border-radius: 50%;
	background: var(--accent);
	color: var(--accent-on);
	display: grid;
	place-items: center;
	font-family: var(--font-mono);
	font-size: 12px;
	font-weight: 700;
	box-shadow:
		0 4px 12px rgba(0, 0, 0, 0.4),
		0 0 0 3px var(--bg);
	z-index: 4;
	animation: pin-pulse 2.4s var(--ease-standard) infinite;
}

@keyframes pin-pulse {
	0%,
	100% {
		box-shadow:
			0 4px 12px rgba(0, 0, 0, 0.4),
			0 0 0 3px var(--bg),
			0 0 0 0 rgba(30, 215, 96, 0.5);
	}

	50% {
		box-shadow:
			0 4px 12px rgba(0, 0, 0, 0.4),
			0 0 0 3px var(--bg),
			0 0 0 12px rgba(30, 215, 96, 0);
	}
}

/* Comment thread card — dark surface */
.comment-card {
	position: absolute;
	top: 52%;
	right: 4%;
	width: 280px;
	background: var(--surface-warm);
	border-radius: var(--radius-lg);
	box-shadow: var(--elev-dialog);
	padding: var(--space-4);
	z-index: 5;
}

.comment-head {
	display: flex;
	align-items: center;
	gap: var(--space-2);
	margin-bottom: var(--space-3);
}

.status-badge {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	padding: 3px var(--space-2);
	background: color-mix(in oklab, var(--accent), transparent 85%);
	color: var(--accent);
	border-radius: var(--radius-pill);
	font-family: var(--font-mono);
	font-size: 10px;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

.status-badge::before {
	content: '';
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: var(--accent);
}

.comment-meta {
	font-family: var(--font-mono);
	font-size: 11px;
	color: var(--muted);
	margin-left: auto;
}

.comment-text {
	font-size: 14px;
	font-weight: 400;
	line-height: 1.45;
	color: var(--fg);
	margin-bottom: var(--space-3);
}

.comment-reply {
	display: flex;
	gap: var(--space-2);
	padding: var(--space-2) var(--space-3);
	background: var(--bg);
	border-radius: var(--radius-md);
}

.reply-avatar {
	width: 24px;
	height: 24px;
	border-radius: 50%;
	background: var(--fg);
	color: var(--bg);
	display: grid;
	place-items: center;
	font-size: 11px;
	font-weight: 700;
	flex-shrink: 0;
}

.reply-name {
	font-size: 12px;
	font-weight: 700;
	color: var(--fg);
}

.reply-text {
	font-size: 13px;
	font-weight: 400;
	color: var(--muted);
	line-height: 1.4;
}

.comment-input {
	margin-top: var(--space-3);
	padding: var(--space-2) var(--space-3);
	border: 1px solid var(--border-soft);
	border-radius: var(--radius-md);
	font-size: 13px;
	color: var(--muted);
	font-weight: 400;
}

/* ═══ Social proof ═══ */
.proof-logos {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: clamp(24px, 5vw, 56px);
	flex-wrap: wrap;
}

.proof-logo {
	font-family: var(--font-mono);
	font-size: 14px;
	font-weight: 400;
	letter-spacing: 0.04em;
	color: var(--muted);
	opacity: 0.85;
	transition:
		opacity var(--motion-base) var(--ease-standard),
		color var(--motion-fast) var(--ease-standard);
}

.proof-logo:hover {
	opacity: 1;
	color: var(--meta);
}

/* ═══ Problem section ═══ */
.problem-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: var(--space-6);
	max-width: 880px;
	margin-inline: auto;
}

.problem-card {
	padding: var(--space-8);
	border-radius: var(--radius-lg);
}

.problem-card.traditional {
	background: var(--surface-warm);
}

.problem-card.solution {
	background: var(--surface);
	box-shadow: var(--elev-raised);
}

.problem-card h3 {
	margin-bottom: var(--space-6);
	font-size: var(--text-xl);
}

.problem-card.traditional h3 {
	color: var(--muted);
	font-weight: 700;
}

.problem-card.solution h3 {
	color: var(--fg);
}

.pf-list {
	list-style: none;
	padding: 0;
	margin: 0;
	display: flex;
	flex-direction: column;
	gap: var(--space-3);
}

.pf-list li {
	display: flex;
	align-items: center;
	gap: var(--space-3);
	font-size: 15px;
	font-weight: 400;
}

.pf-list.x li::before {
	content: '×';
	font-size: 18px;
	font-weight: 400;
	color: var(--muted);
	flex-shrink: 0;
}

.pf-list.check li::before {
	content: '✓';
	font-size: 16px;
	font-weight: 700;
	color: var(--accent);
	flex-shrink: 0;
}

.problem-card.traditional .pf-list li {
	color: var(--muted);
}

.problem-card.solution .pf-list li {
	color: var(--fg);
}

/* ═══ Features — 6 cards, #181818, white SVG icons ═══ */
.features-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: var(--space-4);
}

.feature {
	background: var(--surface);
	border-radius: var(--radius-lg);
	padding: var(--space-8);
	display: flex;
	flex-direction: column;
	gap: var(--space-3);
	transition:
		background var(--motion-base) var(--ease-standard),
		box-shadow var(--motion-base) var(--ease-standard);
}

.feature:hover {
	background: var(--surface-warm);
	box-shadow: var(--elev-raised);
}

.feature-mark {
	width: 44px;
	height: 44px;
	display: grid;
	place-items: center;
	background: var(--surface-warm);
	border-radius: 50%;
	margin-bottom: var(--space-2);
}

.feature:hover .feature-mark {
	background: var(--bg);
}

.feature-mark svg {
	width: 20px;
	height: 20px;
	color: var(--fg);
}

.feature h3 {
	font-size: var(--text-lg);
	font-weight: 700;
	line-height: 1.3;
}

.feature p {
	font-size: 14px;
	font-weight: 400;
	color: var(--muted);
	line-height: 1.45;
}

/* ═══ How it works ═══ */
.steps-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: var(--space-6);
}

.step {
	display: flex;
	flex-direction: column;
	gap: var(--space-3);
	padding-top: var(--space-6);
	border-top: 2px solid var(--fg);
}

.step-num {
	font-family: var(--font-mono);
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.06em;
	color: var(--muted);
}

.step h3 {
	font-size: var(--text-lg);
	font-weight: 700;
}

.step p {
	font-size: 14px;
	font-weight: 400;
	color: var(--muted);
	line-height: 1.45;
}

/* ═══ Product showcase mockups ═══ */
.showcase-stack {
	display: flex;
	flex-direction: column;
	gap: var(--space-6);
}

.showcase-mock {
	background: var(--surface);
	border-radius: var(--radius-lg);
	overflow: hidden;
	box-shadow: var(--elev-raised);
}

.mock-label {
	display: flex;
	align-items: center;
	gap: var(--space-2);
	padding: var(--space-3) var(--space-6);
	border-bottom: 1px solid var(--border-soft);
	font-family: var(--font-mono);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--muted);
}

.mock-label::before {
	content: '';
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: var(--accent);
}

/* Dashboard mockup */
.dash-mock {
	display: grid;
	grid-template-columns: 200px 1fr;
	min-height: 340px;
}

.dash-side {
	background: var(--bg);
	border-right: 1px solid var(--border-soft);
	padding: var(--space-4);
	display: flex;
	flex-direction: column;
	gap: var(--space-3);
}

.dash-side-logo {
	width: 60px;
	height: 12px;
	background: var(--fg);
	border-radius: 3px;
	margin-bottom: var(--space-4);
}

.dash-side-item {
	display: flex;
	align-items: center;
	gap: var(--space-2);
	font-size: 13px;
	font-weight: 700;
	color: var(--muted);
	padding: 6px var(--space-2);
	border-radius: var(--radius-md);
}

.dash-side-item.active {
	background: var(--surface-warm);
	color: var(--fg);
}

.dash-side-item::before {
	content: '';
	width: 14px;
	height: 14px;
	background: var(--border);
	border-radius: 3px;
	flex-shrink: 0;
}

.dash-main {
	padding: var(--space-6);
	display: flex;
	flex-direction: column;
	gap: var(--space-4);
}

.dash-title {
	width: 180px;
	height: 18px;
	background: var(--fg);
	border-radius: 3px;
	opacity: 0.88;
}

.dash-stats {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: var(--space-3);
}

.dash-stat {
	padding: var(--space-4);
	background: var(--bg);
	border-radius: var(--radius-md);
}

.dash-stat-num {
	font-family: var(--font-display);
	font-size: 28px;
	font-weight: 700;
	letter-spacing: -0.02em;
	line-height: 1;
	margin-bottom: 4px;
	color: var(--fg);
}

.dash-stat-label {
	font-family: var(--font-mono);
	font-size: 10px;
	letter-spacing: 0.06em;
	color: var(--muted);
	text-transform: uppercase;
}

.dash-projects {
	display: flex;
	flex-direction: column;
	gap: var(--space-2);
}

.dash-project {
	display: flex;
	align-items: center;
	gap: var(--space-3);
	padding: var(--space-3);
	background: var(--bg);
	border-radius: var(--radius-md);
}

.dash-project-name {
	flex: 1;
	font-size: 13px;
	font-weight: 400;
	color: var(--fg);
}

.dash-project-bar {
	width: 80px;
	height: 6px;
	background: var(--surface-warm);
	border-radius: 3px;
	overflow: hidden;
}

.dash-project-bar::after {
	content: '';
	display: block;
	height: 100%;
	width: 65%;
	background: var(--accent);
	border-radius: 3px;
}

.dash-project-status {
	font-family: var(--font-mono);
	font-size: 10px;
	letter-spacing: 0.06em;
	color: var(--muted);
	text-transform: uppercase;
}

.dash-project-status.done {
	color: var(--accent);
}

/* Feedback panel mockup */
.panel-mock {
	display: grid;
	grid-template-columns: 1fr 1fr;
	min-height: 300px;
}

.panel-list {
	border-right: 1px solid var(--border-soft);
	padding: var(--space-4);
	display: flex;
	flex-direction: column;
	gap: var(--space-2);
	background: var(--bg);
}

.panel-item {
	display: flex;
	flex-direction: column;
	gap: 4px;
	padding: var(--space-3);
	border-radius: var(--radius-md);
}

.panel-item.active {
	background: var(--surface-warm);
}

.panel-item-head {
	display: flex;
	align-items: center;
	gap: var(--space-2);
}

.panel-item-pin {
	width: 18px;
	height: 18px;
	border-radius: 50%;
	background: var(--accent);
	color: var(--accent-on);
	display: grid;
	place-items: center;
	font-family: var(--font-mono);
	font-size: 10px;
	font-weight: 700;
	flex-shrink: 0;
}

.panel-item-pin.resolved {
	background: var(--muted);
	color: var(--bg);
}

.panel-item-title {
	font-size: 13px;
	font-weight: 700;
	color: var(--fg);
}

.panel-item-meta {
	font-family: var(--font-mono);
	font-size: 10px;
	color: var(--muted);
	letter-spacing: 0.04em;
}

.panel-thread {
	padding: var(--space-6);
	display: flex;
	flex-direction: column;
	gap: var(--space-4);
}

.panel-thread-title {
	font-size: var(--text-base);
	font-weight: 700;
	margin-bottom: var(--space-2);
}

.panel-comment {
	display: flex;
	gap: var(--space-3);
}

.panel-avatar {
	width: 28px;
	height: 28px;
	border-radius: 50%;
	background: var(--fg);
	color: var(--bg);
	display: grid;
	place-items: center;
	font-size: 12px;
	font-weight: 700;
	flex-shrink: 0;
}

.panel-comment-.landing {
	flex: 1;
}

.panel-comment-name {
	font-size: 13px;
	font-weight: 700;
	color: var(--fg);
}

.panel-comment-time {
	font-family: var(--font-mono);
	font-size: 10px;
	color: var(--muted);
	margin-left: var(--space-2);
}

.panel-comment-text {
	font-size: 13px;
	font-weight: 400;
	color: var(--muted);
	line-height: 1.45;
	margin-top: 2px;
}

.panel-tags {
	display: flex;
	gap: var(--space-2);
	margin-top: var(--space-2);
}

.panel-tag {
	padding: 2px var(--space-2);
	border: 1px solid var(--border);
	border-radius: var(--radius-pill);
	font-family: var(--font-mono);
	font-size: 10px;
	letter-spacing: 0.04em;
	color: var(--muted);
}

/* ═══ Integrations ═══ */
.int-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: var(--space-3);
}

.int-item {
	display: flex;
	align-items: center;
	gap: var(--space-3);
	padding: var(--space-4) var(--space-5);
	background: var(--surface);
	border-radius: var(--radius-md);
	font-size: 15px;
	font-weight: 700;
	color: var(--fg);
	transition:
		background var(--motion-base) var(--ease-standard),
		box-shadow var(--motion-base) var(--ease-standard);
}

.int-item:hover {
	background: var(--surface-warm);
	box-shadow: var(--elev-raised);
}

.int-icon {
	width: 32px;
	height: 32px;
	border-radius: var(--radius-md);
	background: var(--surface-warm);
	display: grid;
	place-items: center;
	font-family: var(--font-display);
	font-size: 16px;
	font-weight: 700;
	color: var(--fg);
	flex-shrink: 0;
}

.int-item:hover .int-icon {
	background: var(--bg);
}

.int-status {
	font-family: var(--font-mono);
	font-size: 10px;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--muted);
}

.int-status.on {
	color: var(--accent);
}

/* ═══ Pricing ═══ */
.pricing-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: var(--space-4);
	align-items: start;
}

.price-card {
	display: flex;
	flex-direction: column;
	gap: var(--space-4);
	padding: var(--space-8);
	background: var(--surface);
	border-radius: var(--radius-lg);
}

.price-card.featured {
	background: var(--surface-warm);
	box-shadow: var(--elev-dialog);
	position: relative;
}

.price-card h3 {
	font-size: var(--text-xl);
	font-weight: 700;
}

.price-amount {
	font-family: var(--font-display);
	font-size: 44px;
	font-weight: 700;
	letter-spacing: -0.02em;
	line-height: 1;
	color: var(--fg);
}

.price-amount span {
	font-size: 15px;
	font-weight: 400;
	color: var(--muted);
	font-family: var(--font-body);
}

.price-features {
	list-style: none;
	padding: 0;
	margin: 0;
	display: flex;
	flex-direction: column;
	gap: var(--space-3);
}

.price-features li {
	display: flex;
	align-items: flex-start;
	gap: var(--space-2);
	font-size: 14px;
	font-weight: 400;
	color: var(--muted);
	line-height: 1.45;
}

.price-features li::before {
	content: '—';
	color: var(--fg);
	font-weight: 700;
	flex-shrink: 0;
}

.price-card .btn {
	margin-top: auto;
	width: 100%;
	justify-content: center;
}

.featured-badge {
	position: absolute;
	top: var(--space-5);
	right: var(--space-6);
	display: inline-flex;
	align-items: center;
	gap: 5px;
	padding: 4px var(--space-3);
	background: var(--accent);
	color: var(--accent-on);
	border-radius: var(--radius-pill);
	font-family: var(--font-mono);
	font-size: 10px;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

/* ═══ CTA strip ═══ */
.cta-strip {
	background: var(--surface);
	padding-block: clamp(64px, 10vw, 120px);
	text-align: center;
}

.cta-strip h2 {
	margin-bottom: var(--space-4);
}

.cta-strip .lead {
	margin: 0 auto var(--space-8);
	color: var(--muted);
}

/* ═══ Footer — deepest layer ═══ */
.footer {
	background: color-mix(in oklab, var(--bg), black 30%);
	color: var(--muted);
	padding-block: var(--space-12);
	border-top: 1px solid var(--border-soft);
}

.footer-grid {
	display: grid;
	grid-template-columns: 2fr 1fr 1fr 1fr;
	gap: var(--space-8);
}

.footer-brand {
	display: flex;
	flex-direction: column;
	gap: var(--space-3);
}

.footer-brand img {
	height: 28px;
	width: auto;
}

.footer-brand .eyebrow {
	color: var(--muted);
	margin: 0;
}

.footer-col {
	display: flex;
	flex-direction: column;
	gap: var(--space-3);
}

.footer-col .eyebrow {
	color: var(--muted);
	margin: 0;
}

.footer-col a {
	font-size: 14px;
	font-weight: 400;
	color: var(--muted);
	transition: color var(--motion-fast) var(--ease-standard);
}

.footer-col a:hover {
	color: var(--fg);
}

.footer-bottom {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--space-4);
	flex-wrap: wrap;
	margin-top: var(--space-8);
	padding-top: var(--space-6);
	border-top: 1px solid var(--border-soft);
	font-family: var(--font-mono);
	font-size: 12px;
	color: var(--muted);
	letter-spacing: 0.04em;
}

/* ═══ Reduced motion ═══ */
@media (prefers-reduced-motion: reduce) {
	.landing {
		scroll-behavior: auto;
	}

	.pin {
		animation: none;
	}

	.reveal {
		opacity: 1 !important;
		transform: none !important;
	}

	.landing *,
	.landing *::before,
	.landing *::after {
		transition-duration: 0.01ms !important;
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
	}
}

/* ═══ Scroll reveal — the single decisive flourish ═══ */
.reveal {
	opacity: 0;
	transform: translateY(16px);
	transition:
		opacity var(--motion-base) var(--ease-standard),
		transform var(--motion-base) var(--ease-standard);
}

.reveal.in {
	opacity: 1;
	transform: none;
}

.reveal[data-delay='1'] {
	transition-delay: 60ms;
}

.reveal[data-delay='2'] {
	transition-delay: 120ms;
}

.reveal[data-delay='3'] {
	transition-delay: 180ms;
}

.reveal[data-delay='4'] {
	transition-delay: 240ms;
}

/* ═══ Responsive ═══ */
@media (max-width: 920px) {
	.grid-2,
	.grid-3,
	.grid-4 {
		grid-template-columns: 1fr;
	}

	.hero-grid {
		grid-template-columns: 1fr;
	}

	.features-grid {
		grid-template-columns: 1fr;
	}

	.steps-grid {
		grid-template-columns: repeat(2, 1fr);
	}

	.problem-grid {
		grid-template-columns: 1fr;
	}

	.int-grid {
		grid-template-columns: repeat(2, 1fr);
	}

	.pricing-grid {
		grid-template-columns: 1fr;
	}

	.footer-grid {
		grid-template-columns: 1fr 1fr;
	}

	.comment-card {
		display: block;
		position: relative;
		top: auto;
		right: auto;
		left: auto;
		width: 100%;
		margin-top: var(--space-4);
	}

	.dash-mock {
		grid-template-columns: 1fr;
	}

	.dash-side {
		display: none;
	}

	.panel-mock {
		grid-template-columns: 1fr;
	}

	.panel-list {
		border-right: none;
		border-bottom: 1px solid var(--border-soft);
	}

	.mock-cards {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 560px) {
	.container {
		padding-inline: var(--container-gutter-phone);
	}

	.section {
		padding-block: var(--section-y-phone);
	}

	.steps-grid {
		grid-template-columns: 1fr;
	}

	.footer-grid {
		grid-template-columns: 1fr;
	}

	.int-grid {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 920px) {
	html {
		scroll-behavior: auto;
	}
}
