/* Individual feature pages: the native app pages' quiet, spacious reading surface. */
.feature-detail {
	--color-base-100: #fbfaf8;
	--color-base-200: #f3eef7;
	--color-base-300: #e4dce9;
	--color-base-content: #28212e;
	--hb-heading-ink: #28212e;
	--hb-accent-ink: #450a75;
	--feature-wash: #eee6f6;
	--feature-line: #d1bfdf;
	--feature-note: #e7eddb;
	color: #28212e;
	background: #fbfaf8;
	font-family: 'Atkinson Hyperlegible Next', system-ui, sans-serif;
	font-size: 18px;
	line-height: 1.65;
}
.feature-detail[data-feature-kind='capture'] {
	--feature-wash: #f8e9dc;
	--feature-line: #dfc6b3;
	--feature-note: #fce8c2;
}
.feature-detail[data-feature-kind='voice'],
.feature-detail[data-feature-kind='speech'] {
	--feature-wash: #e6edf9;
	--feature-line: #c0cfe8;
	--feature-note: #dfeef8;
}
.feature-detail[data-feature-kind='focus'],
.feature-detail[data-feature-kind='reader'],
.feature-detail[data-feature-kind='accessibility'] {
	--feature-wash: #e8eee3;
	--feature-line: #c8d4bb;
	--feature-note: #e1ecd4;
}
.feature-detail *,
.feature-detail *::before,
.feature-detail *::after {
	box-sizing: border-box;
}
.feature-detail :is(h1, h2, h3, p, figure) {
	margin: 0;
}
.feature-detail :is(h1, h2, h3) {
	text-wrap: balance;
	color: #28212e;
	font-weight: 750;
}
.feature-detail h2 {
	font-size: clamp(32px, 3.4vw, 48px);
	line-height: 1.15;
	letter-spacing: -0.035em;
}
.feature-detail p {
	color: #5e5667;
}
.feature-detail a {
	text-underline-offset: 5px;
}
.feature-detail :is(a, button, [tabindex]):focus-visible {
	outline: 3px solid #8049a8;
	outline-offset: 5px;
}
.fd-breadcrumb {
	display: flex;
	align-items: center;
	gap: 14px;
	flex-wrap: wrap;
	max-width: 1240px;
	padding: 26px 32px;
	margin: auto;
	color: #706576;
	font-size: 15px;
}
.fd-breadcrumb a {
	color: #450a75;
	padding: 8px 0;
}
.fd-breadcrumb a:hover {
	text-decoration: underline;
}
.fd-breadcrumb [aria-current] {
	overflow-wrap: anywhere;
}
.fd-hero {
	padding: 56px 32px 88px;
	background: linear-gradient(180deg, #fbfaf8 32%, var(--feature-wash));
	overflow: clip;
}
.fd-hero-copy {
	text-align: center;
	max-width: 920px;
	margin: auto;
}
.fd-kicker {
	display: flex;
	gap: 16px;
	justify-content: center;
	align-items: center;
	flex-wrap: wrap;
	margin-bottom: 27px;
	color: #450a75;
	font-size: 15px;
	font-weight: 700;
}
.feature-detail .fd-plan {
	display: inline-flex;
	padding: 4px 12px;
	border-radius: 999px;
	background: #ece4f3;
	color: #57247b;
	font-size: 13px;
	font-weight: 700;
	line-height: 1.6;
}
.fd-hero h1 {
	font-size: clamp(42px, 5.4vw, 76px);
	line-height: 1.05;
	letter-spacing: -0.05em;
}
.feature-detail .fd-intro {
	max-width: 690px;
	margin: 28px auto 0;
	font-size: 22px;
	line-height: 1.6;
	text-wrap: pretty;
}
.fd-actions {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 28px;
	flex-wrap: wrap;
	margin-top: 32px;
}
.feature-detail .fd-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 18px;
	padding: 15px 27px;
	min-height: 54px;
	border: 0;
	border-radius: 99px;
	background: #450a75;
	color: #fff;
	font-size: 17px;
	line-height: 1.5;
	font-weight: 700;
	text-decoration: none;
	cursor: pointer;
}
.feature-detail .fd-button:hover {
	background: #61238f;
}
.feature-detail .fd-link {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	padding: 12px 0;
	color: #450a75;
	font-weight: 700;
	text-decoration: none;
}
.feature-detail .fd-link:hover {
	text-decoration: underline;
}
.fd-media-stage {
	position: relative;
	isolation: isolate;
	max-width: 1100px;
	margin: 92px auto 0;
	padding: 20px 26px 28px;
}
.fd-media-stage::before {
	content: '';
	position: absolute;
	inset: 6% 0 0;
	z-index: -2;
	border: 1px solid #ffffffb3;
	border-radius: 38px;
	background: #ffffff85;
	transform: rotate(2deg);
	pointer-events: none;
}
.fd-orbit {
	position: absolute;
	inset: -6% -4% -3%;
	z-index: -1;
	border: 1px solid var(--feature-line);
	border-radius: 50%;
	transform: rotate(-7deg);
	pointer-events: none;
}
.fd-media-note {
	position: absolute;
	right: -14px;
	bottom: -8px;
	z-index: 12;
	padding: 14px 22px;
	border: 1px solid #ffffffb3;
	border-radius: 16px;
	background: var(--feature-note);
	color: #374630;
	font-size: 15px;
	font-weight: 700;
	transform: rotate(4deg);
	box-shadow: 0 12px 28px #30213612;
	pointer-events: none;
}
.fd-media {
	position: relative;
	border-radius: 17px;
	overflow: hidden;
	border: 1px solid #ded7e3;
	background: #fff;
	box-shadow: 0 30px 60px -24px #34234135;
}
.fd-media > img {
	display: block;
	width: 100%;
	height: auto;
}
.fd-comparison {
	position: relative;
}
.fd-comparison .diff {
	width: 100%;
}
.feature-detail .fd-comparison :focus-visible {
	outline-offset: -4px;
}
.fd-comparison .diff img {
	max-width: none;
}
.fd-comparison .diff-item-1 {
	border-right: 2px solid #450a75;
}
.fd-comparison .diff-item-2::after {
	background: #450a75;
	color: #fff;
	border: 2px solid #fff;
}
.fd-compare-label {
	position: absolute;
	z-index: 11;
	top: 18px;
	pointer-events: none;
	border-radius: 99px;
	padding: 7px 14px;
	background: #fffffff2;
	color: #450a75;
	font-size: 14px;
	font-weight: 700;
	box-shadow: 0 3px 12px #28212e15;
}
.fd-compare-label--after {
	left: 18px;
}
.fd-compare-label--before {
	right: 18px;
}
.feature-detail .fd-media-caption {
	margin-top: 24px;
	padding-bottom: 30px;
	text-align: center;
	font-size: 14px;
	color: #5e5667;
}
.fd-media-caption a {
	color: #450a75;
	text-decoration: underline;
}
.fd-video {
	aspect-ratio: 16/9;
}
.fd-video iframe {
	width: 100%;
	height: 100%;
	border: 0;
}
.feature-toc {
	position: sticky;
	top: 80px;
	z-index: 30;
	background: #fbfaf8f5;
	backdrop-filter: blur(14px);
	border-bottom: 1px solid #e8e1ed;
	border-top: 1px solid #e8e1ed;
}
.fd-toc-inner {
	display: flex;
	gap: 32px;
	align-items: center;
	max-width: 1240px;
	padding: 0 32px;
	margin: auto;
}
.fd-toc-label {
	flex-shrink: 0;
	font-size: 14px;
	color: #706576;
}
#featureTocList {
	display: flex;
	gap: 10px;
	overflow-x: auto;
	list-style: none;
	padding: 14px 5px;
	margin: 0;
	scrollbar-width: thin;
	scrollbar-color: #c8b5d8 transparent;
}
#featureTocList li {
	flex-shrink: 0;
}
.feature-toc-chip {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	padding: 10px 16px;
	border-radius: 99px;
	color: #5e5667;
	background: transparent;
	font-size: 14px;
	white-space: nowrap;
	line-height: 1.4;
	text-decoration: none;
}
.feature-toc-chip:hover {
	background: #f0e9f6;
	color: #450a75;
}
.feature-toc-chip[aria-current='location'] {
	background: #450a75;
	color: #fff;
}
.fd-article {
	max-width: 828px;
	margin: auto;
	padding: 86px 32px 94px;
	scroll-margin-top: 16px;
}
#featureContent :is(h2, h3)[id] {
	scroll-margin-top: 16px;
}
.fd-article-body {
	font-size: 19px;
	line-height: 1.78;
}
.fd-article-body h2 {
	font-size: clamp(28px, 2.7vw, 36px);
	line-height: 1.2;
	letter-spacing: -0.025em;
	margin: 64px 0 25px;
	color: #28212e;
}
.fd-article-body > h2:first-child {
	margin-top: 0;
}
.fd-article-body h3 {
	font-size: 23px;
	line-height: 1.35;
	letter-spacing: -0.018em;
	margin: 38px 0 18px;
}
.fd-article-body p {
	margin: 0 0 22px;
	font-size: inherit;
	line-height: inherit;
	color: #514958;
	text-wrap: pretty;
}
.fd-article-body strong {
	color: #28212e;
}
.fd-article-body a {
	color: #5d2384;
	text-decoration: underline;
}
.fd-article-body a:hover {
	color: #350459;
}
.fd-article-body ul,
.fd-article-body ol {
	margin: 20px 0 28px;
	padding-left: 26px;
	font-size: inherit;
	line-height: inherit;
	color: #514958;
}
.fd-article-body li {
	margin: 10px 0;
}
.fd-article-body li p {
	margin: 0;
}
.fd-article-body hr {
	height: 1px;
	border: 0;
	background: #e7dfea;
	margin: 48px 0;
}
.fd-article-body blockquote,
.fd-notice {
	border: 1px solid #dfd2e9;
	border-radius: 20px;
	padding: 24px 28px;
	margin: 34px 0;
	background: #f2ebf8;
}
.fd-article-body blockquote p:last-child,
.fd-notice p:last-child {
	margin-bottom: 0;
}
.fd-notice {
	margin-top: 0;
	margin-bottom: 42px;
}
.fd-notice a {
	color: #450a75;
	text-decoration: underline;
}
.fd-article-body img {
	display: block;
	max-width: 100%;
	height: auto;
	margin: 36px auto;
	border: 1px solid #e4dce9;
	border-radius: 18px;
}
.fd-article-body table {
	display: block;
	max-width: 100%;
	overflow-x: auto;
	background: #fff;
	border: 1px solid #e4dce9;
	border-radius: 14px;
	font-size: 16px;
}
.fd-article-body :is(th, td) {
	padding: 14px 18px;
	text-align: left;
}
.fd-article-body pre {
	max-width: 100%;
	overflow-x: auto;
}
.fd-background {
	max-width: 764px;
	margin: 0 auto 90px;
	padding: 36px;
	border-radius: 26px;
	background: #f1ebf7;
}
.feature-detail .fd-eyebrow {
	font-size: 15px;
	color: #672e8e;
	font-weight: 700;
	margin-bottom: 17px;
}
.fd-background h2 {
	font-size: 30px;
}
.fd-background-links {
	display: grid;
	gap: 18px;
	margin-top: 24px;
}
.fd-background-links a {
	color: #450a75;
	text-decoration: underline;
}
.fd-related {
	background: #f0edf3;
	padding: 88px 32px;
}
.fd-related-inner {
	max-width: 1180px;
	margin: auto;
}
.fd-section-heading {
	text-align: center;
	max-width: 760px;
	margin: 0 auto 48px;
}
.fd-related-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 28px;
}
.fd-related-card {
	display: flex;
	flex-direction: column;
	border: 1px solid #e6deeb;
	border-radius: 26px;
	overflow: hidden;
	background: #fff;
	color: #28212e;
	text-decoration: none;
}
.fd-related-card:hover {
	border-color: #a687bd;
	box-shadow: 0 10px 30px #3520420d;
}
.fd-related-card > img {
	display: block;
	width: 100%;
	height: auto;
}
.fd-related-card > div {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	flex: 1;
	padding: 28px;
}
.fd-related-card h3 {
	font-size: 25px;
	line-height: 1.22;
	letter-spacing: -0.025em;
	margin: 18px 0 14px;
}
.fd-related-card p {
	font-size: 16px;
	line-height: 1.65;
	margin: 0 0 24px;
}
.fd-card-link {
	margin-top: auto;
	font-size: 15px;
	font-weight: 700;
	color: #672e8e;
}
.feature-detail .fd-related-more {
	margin-top: 38px;
	text-align: center;
}
.fd-closing {
	padding: 90px 24px 100px;
	text-align: center;
}
.fd-closing > img {
	display: block;
	width: 76px;
	height: 76px;
	margin: 0 auto 25px;
}
.fd-closing > p {
	font-size: 20px;
	margin: 25px auto 30px;
}
@media (max-width: 900px) {
	.fd-related-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
	.fd-toc-label {
		display: none;
	}
}
@media (max-width: 640px) {
	.fd-breadcrumb {
		padding: 20px;
		font-size: 13px;
		gap: 10px;
	}
	.fd-hero {
		padding: 42px 20px 50px;
	}
	.fd-kicker {
		font-size: 13px;
		gap: 12px;
		margin-bottom: 22px;
	}
	.feature-detail .fd-intro {
		font-size: 19px;
		margin-top: 24px;
	}
	.fd-actions {
		gap: 15px 24px;
	}
	.fd-media-stage {
		padding: 10px;
		border-radius: 20px;
		margin-top: 60px;
	}
	.fd-media-note {
		right: 0;
		bottom: -15px;
		font-size: 11px;
		padding: 10px 13px;
		border-radius: 11px;
	}
	.fd-media-stage::before {
		border-radius: 24px;
	}
	.fd-media {
		border-radius: 12px;
	}
	.fd-compare-label {
		top: 8px;
		font-size: 10px;
		padding: 5px 8px;
	}
	.fd-compare-label--after {
		left: 8px;
	}
	.fd-compare-label--before {
		right: 8px;
	}
	.feature-detail .fd-media-caption {
		font-size: 12px;
		margin: 14px 8px 5px;
	}
	.fd-toc-inner {
		padding: 0 15px;
	}
	#featureTocList {
		gap: 5px;
		padding: 12px 5px;
	}
	.feature-toc-chip {
		font-size: 13px;
		padding: 10px 13px;
	}
	.fd-article {
		padding: 54px 24px 60px;
	}
	.fd-article-body {
		font-size: 18px;
		line-height: 1.75;
	}
	.fd-article-body h2 {
		margin-top: 48px;
	}
	.fd-article-body blockquote,
	.fd-notice {
		padding: 22px;
	}
	.fd-background {
		margin: 0 20px 60px;
		padding: 28px;
	}
	.fd-related {
		padding: 60px 20px;
	}
	.fd-related-grid {
		grid-template-columns: 1fr;
		gap: 24px;
	}
	.fd-related-card > div {
		padding: 26px;
	}
	.fd-closing {
		padding: 60px 20px 70px;
	}
}
@media print {
	.feature-toc {
		display: none;
	}
	.fd-article {
		max-width: none;
	}
}
