:root {
	--asam-color-primary: #2d6bd6;
	--asam-color-primary-hover: #3590ff;
	--asam-color-primary-active: #1677ff;
	--asam-color-surface: #fff;
	--asam-color-surface-muted: #f3f5f9;
	--asam-color-surface-soft: #ecf1fc;
	--asam-color-text-primary: #3d3d3d;
	--asam-radius-control: 4px;
	--asam-radius-action: 6px;
	--asam-radius-card: 10px;
	--asam-radius-dialog: 8px;
	--asam-font: 'Source Han Sans CN', 'Microsoft YaHei', 'PingFang SC', sans-serif;
	--page: var(--asam-color-surface);
	--surface: var(--asam-color-surface-muted);
	--soft: var(--asam-color-surface-soft);
	--ink: #18243c;
	--text: var(--asam-color-text-primary);
	--muted: #606c80;
	--border: #e4e9f1;
	--accent: var(--asam-color-primary);
	--accent-text: color-mix(in srgb, var(--asam-color-primary) 90%, #000);
	--header: rgb(255 255 255 / 95%);
	--shadow: 0 14px 48px rgb(34 64 107 / 12%);
	--mono: 'Cascadia Code', 'SFMono-Regular', Consolas, monospace;
	/* Layer order: sticky content 1, header 5, feedback 10, native dialogs top layer. */
	color-scheme: light;
}
:root[data-theme='dark'] {
	--page: #101723;
	--surface: #172132;
	--soft: #1c2b43;
	--ink: #f0f4fa;
	--text: #d1dae8;
	--muted: #a6b3c7;
	--border: #2d3b50;
	--accent-text: #8fc2ff;
	--header: rgb(16 23 35 / 96%);
	--shadow: 0 14px 48px rgb(0 0 0 / 24%);
	color-scheme: dark;
}
* {
	box-sizing: border-box;
}
html {
	scroll-padding-top: 100px;
}
body {
	margin: 0;
	background: var(--page);
	color: var(--text);
	font: 15px/1.75 var(--asam-font);
	-webkit-font-smoothing: antialiased;
}
button,
input {
	font: inherit;
}
button,
a,
input {
	-webkit-tap-highlight-color: transparent;
}
button {
	color: inherit;
	cursor: pointer;
}
a {
	color: inherit;
	text-decoration: none;
}
button {
	-webkit-appearance: none;
	appearance: none;
}
button:disabled {
	cursor: default;
}
::selection {
	color: var(--ink);
	background: #b5d5ff;
}
:focus-visible {
	outline: 3px solid var(--accent-text);
	outline-offset: 4px;
}
button:active,
.button:active {
	transform: scale(0.98);
}
[hidden] {
	display: none !important;
}
img {
	max-width: 100%;
	display: block;
}
h1,
h2,
h3,
p {
	margin: 0;
}
h1,
h2,
h3 {
	color: var(--ink);
	line-height: 1.35;
}
.wrap {
	width: min(1280px, calc(100% - 96px));
	margin-inline: auto;
}
.icon-wrap {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	vertical-align: middle;
}
.icon {
	width: 20px;
	height: 20px;
	fill: currentColor;
	display: block;
}
.sr-only {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}
.skip-link {
	position: fixed;
	inset: 12px auto auto 12px;
	transform: translateY(-150%);
	z-index: 20;
	background: var(--page);
	border: 2px solid var(--accent);
	padding: 8px 20px;
}
.skip-link:focus {
	transform: none;
}
.site-header {
	position: sticky;
	top: 0;
	z-index: 5;
	background: var(--header);
	border-bottom: 1px solid var(--border);
}
.nav-shell {
	max-width: 1440px;
	padding: 0 48px;
	height: 76px;
	margin: auto;
	display: flex;
	align-items: center;
	gap: 68px;
}
.brand {
	display: flex;
	align-items: center;
	gap: 11px;
	color: var(--ink);
	flex-shrink: 0;
}
.brand strong {
	font:
		750 23px/1.2 Arial,
		sans-serif;
	letter-spacing: -0.8px;
}
.brand-ui {
	color: var(--accent-text);
	font-weight: 500;
}
.brand-mark {
	position: relative;
	color: var(--accent-text);
	font:
		900 35px/1 Arial,
		sans-serif;
	letter-spacing: -6px;
	width: 31px;
	overflow: hidden;
	transform: skew(-7deg);
}
.brand-mark span {
	position: absolute;
	width: 12px;
	height: 3px;
	background: var(--page);
	left: 15px;
	bottom: 8px;
}
.primary-nav {
	align-self: stretch;
	display: flex;
	align-items: stretch;
	gap: 36px;
	white-space: nowrap;
}
.primary-nav a {
	display: flex;
	align-items: center;
	font-size: 14px;
	border-bottom: 2px solid transparent;
	padding-top: 2px;
}
.primary-nav a:hover,
.primary-nav [aria-current] {
	color: var(--accent-text);
}
.primary-nav [aria-current] {
	border-color: var(--accent);
}
.nav-actions {
	display: flex;
	align-items: center;
	gap: 12px;
	margin-left: auto;
}
.search-trigger {
	border: 1px solid var(--border);
	background: var(--surface);
	color: var(--muted);
	border-radius: var(--asam-radius-action);
	height: 36px;
	width: 224px;
	display: flex;
	align-items: center;
	gap: 9px;
	padding: 0 10px;
	font-size: 12px;
}
.search-trigger kbd {
	margin-left: auto;
}
kbd {
	font: 11px/1.3 var(--mono);
	border: 1px solid var(--border);
	border-radius: 3px;
	padding: 3px 4px;
	background: var(--page);
	color: var(--muted);
	white-space: nowrap;
}
.icon-button {
	width: 36px;
	height: 36px;
	border: 0;
	background: transparent;
	color: var(--muted);
	display: inline-flex;
	justify-content: center;
	align-items: center;
	border-radius: var(--asam-radius-control);
	flex-shrink: 0;
}
.icon-button:hover {
	background: var(--soft);
	color: var(--accent-text);
}
.menu-toggle {
	display: none;
}
.mobile-nav {
	padding: 12px 24px 20px;
	border-top: 1px solid var(--border);
}
.mobile-nav a {
	display: flex;
	justify-content: space-between;
	padding: 12px 6px;
}
.hero {
	min-height: 650px;
	display: grid;
	grid-template-columns: 1fr 1fr;
	align-items: center;
	column-gap: 36px;
	padding-block: 40px 34px;
}
.hero-copy {
	position: relative;
	z-index: 1;
}
.eyebrow {
	color: var(--accent-text);
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 0.08em;
	margin-bottom: 24px;
}
.hero h1 {
	font-size: clamp(42px, 4.3vw, 64px);
	font-weight: 750;
	line-height: 1.27;
	letter-spacing: -0.04em;
}
.hero h1 span {
	color: var(--accent-text);
}
.hero-copy > p {
	color: var(--muted);
	line-height: 1.9;
	font-size: 17px;
	margin: 25px 0 32px;
}
.hero-actions {
	display: flex;
	gap: 14px;
	flex-wrap: wrap;
}
.button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 20px;
	border: 1px solid transparent;
	padding: 12px 23px;
	min-height: 47px;
	border-radius: var(--asam-radius-action);
	font-size: 14px;
	font-weight: 600;
	white-space: nowrap;
}
.primary {
	background: var(--accent);
	border-color: var(--accent);
	color: #fff;
}
.primary:hover {
	background: #245cb9;
	border-color: #245cb9;
}
.secondary {
	background: var(--page);
	border-color: var(--border);
	color: var(--text);
}
.secondary:hover {
	border-color: var(--accent);
	color: var(--accent-text);
}
.hero-art {
	position: relative;
	min-width: 0;
}
.hero-art img {
	width: 100%;
	height: auto;
	aspect-ratio: 1;
	object-fit: cover;
	border-radius: 40%;
	mask-image: radial-gradient(ellipse 64% 64% at center, #000 62%, transparent 90%);
}
[data-theme='dark'] .hero-art img {
	mask-image: radial-gradient(ellipse 64% 64% at center, #000 62%, transparent 90%);
}
.stack-strip {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	padding: 25px 0;
	border-block: 1px solid var(--border);
}
.stack-strip > span {
	font-size: 12px;
	color: var(--muted);
}
.stack-strip > div {
	display: flex;
	align-items: center;
	gap: 44px;
}
.stack-strip strong {
	color: var(--muted);
	font-size: 16px;
	font-weight: 600;
	letter-spacing: -0.03em;
}
.stack-strip small {
	font-size: 12px;
}
.section {
	padding-block: 98px;
}
.section-heading {
	margin-bottom: 34px;
}
.section-heading h2 {
	font-size: 37px;
	letter-spacing: -0.03em;
}
.section-heading p {
	color: var(--muted);
	margin-top: 15px;
	font-size: 15px;
}
.feature-grid {
	display: grid;
	grid-template-columns: 1.2fr 1fr 1fr;
	gap: 20px;
}
.feature {
	position: relative;
	padding: 32px;
	border-radius: var(--asam-radius-card);
	background: var(--surface);
	min-height: 355px;
	display: flex;
	flex-direction: column;
	border: 1px solid transparent;
}
.feature:hover {
	border-color: var(--accent);
}
.feature-wide {
	background: var(--soft);
}
.feature-blue {
	background: var(--accent);
	color: #fff;
}
.feature-blue h3,
.feature-blue p,
.feature-blue .feature-code {
	color: #fff;
}
.feature-symbol {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 76px;
	height: 76px;
	color: var(--accent-text);
	background: var(--page);
	border-radius: var(--asam-radius-card);
	margin-bottom: 26px;
}
.feature-blue .feature-symbol {
	background: rgb(255 255 255 / 15%);
	color: #fff;
}
.feature-symbol .icon {
	width: 44px;
	height: 44px;
}
.feature-code {
	font: 12px/1.7 var(--mono);
	color: var(--muted);
}
.feature h3 {
	font-size: 22px;
	margin-top: 6px;
}
.feature p {
	color: var(--muted);
	font-size: 13px;
	margin-top: 12px;
	line-height: 1.85;
}
.feature.feature-blue p {
	color: #fff;
}
.feature .feature-link {
	margin-top: auto;
	padding-top: 28px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	font-size: 12px;
}
.system-section {
	padding: 65px 0 95px;
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 80px;
	align-items: center;
	border-top: 1px solid var(--border);
}
.system-copy h2 {
	font-size: 32px;
}
.system-copy p {
	margin: 21px 0 28px;
	color: var(--muted);
	line-height: 2;
	font-size: 14px;
}
.text-link {
	display: inline-flex;
	align-items: center;
	gap: 24px;
	color: var(--accent-text);
	font-weight: 600;
	font-size: 14px;
}
.token-composition {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 13px;
}
.token-big {
	grid-row: span 2;
	background: var(--accent);
	color: #fff;
	border-radius: var(--asam-radius-card);
	padding: 24px;
	min-height: 270px;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
}
.token-composition strong {
	font: 18px/1.4 var(--mono);
}
.token-composition span {
	font-size: 12px;
}
.token-small {
	padding: 24px;
	background: var(--surface);
	border-radius: var(--asam-radius-card);
	display: flex;
	flex-direction: column;
	gap: 28px;
}
.token-radius {
	padding: 18px 22px;
	display: flex;
	align-items: center;
	gap: 16px;
	background: var(--soft);
	border-radius: var(--asam-radius-card);
}
.token-radius > div {
	width: 52px;
	height: 52px;
	border: 2px solid var(--accent-text);
	border-radius: var(--asam-radius-card);
}
.token-radius span {
	font-size: 10px;
}
.token-radius strong {
	display: block;
	margin-top: 3px;
}
.start-section {
	display: flex;
	align-items: center;
	gap: 26px;
	padding: 38px 40px;
	background: var(--soft);
	border-radius: var(--asam-radius-card);
	margin-bottom: 90px;
}
.start-icon .icon {
	width: 36px;
	height: 36px;
	color: var(--accent-text);
}
.start-section h2 {
	font-size: 24px;
}
.start-section p {
	font-size: 13px;
	margin-top: 8px;
	color: var(--muted);
}
.start-section .button {
	margin-left: auto;
}
.site-footer {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 30px;
	padding-block: 30px;
	border-top: 1px solid var(--border);
	font-size: 11px;
	color: var(--muted);
}
.site-footer > div {
	display: flex;
	align-items: center;
	gap: 24px;
}
.footer-brand {
	color: var(--ink);
	font:
		700 15px/1.4 Arial,
		sans-serif;
}
.footer-links a:hover {
	color: var(--accent-text);
}
.preview-label {
	border: 1px solid var(--border);
	padding: 3px 8px;
	border-radius: var(--asam-radius-control);
}
.docs-layout {
	display: grid;
	grid-template-columns: 190px minmax(0, 1fr) 135px;
	gap: 54px;
	align-items: start;
	min-height: calc(100dvh - 178px);
}
.docs-sidebar {
	position: sticky;
	top: 104px;
	padding-block: 39px 32px;
	font-size: 12px;
	max-height: calc(100dvh - 110px);
	overflow: auto;
}
.sidebar-heading {
	display: block;
	color: var(--muted);
	font-size: 11px;
	margin: 0 12px 14px;
}
.docs-sidebar a {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 9px 12px;
	border-radius: var(--asam-radius-action);
	margin-bottom: 4px;
}
.docs-sidebar .icon {
	width: 17px;
	height: 17px;
}
.docs-sidebar a:hover {
	background: var(--surface);
}
.docs-sidebar .selected {
	background: var(--soft);
	color: var(--accent-text);
	font-weight: 600;
}
.sidebar-count {
	margin-left: auto;
	font: 10px var(--mono);
	color: var(--muted);
}
.sidebar-divider {
	border-top: 1px solid var(--border);
	margin: 25px 12px;
}
.sidebar-note {
	font-size: 10px;
	color: var(--muted);
	line-height: 2;
	margin: 55px 12px 0;
}
.docs-content {
	min-width: 0;
	padding: 43px 0 72px;
}
.breadcrumb {
	display: flex;
	align-items: center;
	gap: 12px;
	font-size: 11px;
	color: var(--muted);
	margin-bottom: 25px;
}
.breadcrumb .icon {
	width: 12px;
	height: 12px;
}
.page-heading {
	margin-bottom: 32px;
}
.page-heading h1 {
	font-size: 36px;
	font-weight: 700;
	letter-spacing: -0.025em;
}
.page-heading p {
	color: var(--muted);
	margin-top: 17px;
	line-height: 1.9;
	font-size: 14px;
}
.notice {
	border-radius: var(--asam-radius-dialog);
	display: flex;
	align-items: flex-start;
	gap: 12px;
	padding: 18px 20px;
	background: var(--soft);
	border-left: 3px solid var(--accent);
	font-size: 12px;
}
.notice > .icon-wrap {
	color: var(--accent-text);
	margin-top: 3px;
}
.notice strong {
	color: var(--ink);
}
.notice p {
	margin-top: 5px;
	line-height: 1.95;
}
code {
	font-family: var(--mono);
	font-size: 0.88em;
	overflow-wrap: anywhere;
}
p > code {
	color: var(--accent-text);
	background: var(--surface);
	padding: 2px 4px;
	border-radius: 3px;
}
.doc-section {
	margin-top: 44px;
	scroll-margin-top: 100px;
}
.doc-section h2 {
	font-size: 22px;
	font-weight: 600;
	margin-bottom: 16px;
	letter-spacing: -0.02em;
}
.doc-section > p {
	margin-block: 12px;
	font-size: 13px;
	color: var(--muted);
	line-height: 1.95;
}
.environment-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	background: var(--surface);
	border-radius: var(--asam-radius-dialog);
	padding: 22px;
	gap: 20px;
}
.environment-grid > div {
	display: flex;
	flex-direction: column;
}
.environment-grid span {
	color: var(--muted);
	font-size: 10px;
}
.environment-grid strong {
	color: var(--ink);
	font-size: 19px;
	margin: 8px 0 3px;
}
.environment-grid code {
	color: var(--muted);
	font-size: 11px;
}
.package-tabs {
	display: flex;
	gap: 26px;
	margin-top: 20px;
}
.package-tabs button {
	border: 0;
	background: transparent;
	padding: 8px 2px;
	border-bottom: 2px solid transparent;
	color: var(--muted);
	font: 12px var(--mono);
}
.package-tabs [aria-pressed='true'] {
	color: var(--accent-text);
	border-bottom-color: var(--accent);
}
.code-block {
	border: 1px solid var(--border);
	background: var(--surface);
	border-radius: var(--asam-radius-dialog);
	overflow: hidden;
	margin: 16px 0;
}
.package-tabs + .code-block {
	margin-top: 0;
}
.code-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 8px 17px;
	border-bottom: 1px solid var(--border);
	color: var(--muted);
	font: 11px var(--mono);
}
.copy-button {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	border: 0;
	background: transparent;
	color: inherit;
	padding: 7px 3px;
	font-size: 11px;
}
.copy-button .icon {
	width: 15px;
	height: 15px;
}
.copy-button:hover {
	color: var(--accent-text);
}
pre {
	margin: 0;
	padding: 22px;
	overflow: auto;
	font: 12px/1.9 var(--mono);
	color: var(--text);
	tab-size: 2;
}
pre code {
	font-size: inherit;
	white-space: pre;
	overflow-wrap: normal;
}
.helper {
	font-size: 11px !important;
	color: var(--muted);
}
.inline-note {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	font-size: 12px;
	color: var(--muted);
	padding-block: 9px;
}
.inline-note > .icon-wrap {
	margin-top: 2px;
	color: var(--accent-text);
}
.inline-note p {
	line-height: 1.8;
}
.next-page {
	display: flex;
	justify-content: space-between;
	align-items: center;
	border: 1px solid var(--border);
	border-radius: var(--asam-radius-dialog);
	padding: 18px 24px;
	margin-top: 46px;
}
.next-page small {
	display: block;
	color: var(--muted);
	font-size: 11px;
}
.next-page strong {
	font-size: 16px;
	color: var(--accent-text);
}
.next-page:hover {
	border-color: var(--accent);
}
.page-toc {
	position: sticky;
	top: 127px;
	margin-top: 52px;
	border-left: 1px solid var(--border);
	padding-left: 18px;
	font-size: 10px;
}
.page-toc > span {
	font-weight: 600;
	color: var(--ink);
}
.page-toc a {
	display: block;
	color: var(--muted);
	margin-top: 13px;
}
.page-toc a:hover,
.page-toc a.active {
	color: var(--accent-text);
}
.catalog-layout {
	grid-template-columns: 190px minmax(0, 1fr);
}
.heading-count {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 20px;
}
.heading-count h1 {
	font-size: 34px;
}
.heading-count > span {
	color: var(--accent-text);
	font: 30px var(--mono);
	flex-shrink: 0;
}
.heading-count small {
	color: var(--muted);
	font: 11px var(--asam-font);
}
.search-field {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 0 16px;
	min-height: 48px;
	border: 1px solid var(--border);
	background: var(--surface);
	border-radius: var(--asam-radius-action);
	color: var(--muted);
}
.search-field:focus-within {
	border-color: var(--accent);
	outline: 2px solid var(--accent-text);
	outline-offset: 2px;
}
.search-field input {
	border: 0;
	outline: none;
	min-width: 0;
	width: 100%;
	padding-block: 12px;
	background: transparent;
	color: var(--text);
	font-size: 13px;
}
.search-field input::placeholder {
	color: var(--muted);
	opacity: 1;
}
.filter-tabs {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-top: 18px;
}
.filter-tabs button {
	border: 1px solid transparent;
	background: transparent;
	padding: 6px 14px;
	font-size: 12px;
	border-radius: var(--asam-radius-control);
}
.filter-tabs button:hover {
	background: var(--surface);
}
.filter-tabs [aria-pressed='true'] {
	color: var(--accent-text);
	background: var(--soft);
	border-color: var(--border);
}
.catalog-meta {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin: 28px 0 30px;
	color: var(--muted);
	font-size: 10px;
}
.catalog-group {
	margin-top: 32px;
	scroll-margin-top: 105px;
}
.catalog-group h2 {
	font-size: 17px;
	margin-bottom: 16px;
	display: flex;
	gap: 12px;
	align-items: center;
}
.catalog-group h2 span {
	color: var(--muted);
	font: 11px var(--mono);
}
.catalog-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 12px;
}
.component-card {
	position: relative;
	display: flex;
	align-items: flex-start;
	gap: 11px;
	padding: 22px 15px;
	min-width: 0;
	min-height: 105px;
	border: 1px solid var(--border);
	border-radius: var(--asam-radius-card);
	scroll-margin-top: 100px;
}
.component-card:hover {
	background: var(--surface);
	border-color: var(--accent);
}
.component-icon {
	color: var(--accent-text);
	background: var(--soft);
	padding: 9px;
	border-radius: var(--asam-radius-action);
	flex-shrink: 0;
}
.component-title {
	min-width: 0;
	padding-top: 1px;
}
.component-title strong {
	display: block;
	font-size: 13px;
	font-weight: 600;
	color: var(--ink);
}
.component-title code {
	display: block;
	font-size: 9px;
	line-height: 1.6;
	margin-top: 7px;
	color: var(--muted);
	overflow-wrap: anywhere;
}
.component-card > .icon-wrap:last-child {
	position: absolute;
	right: 9px;
	top: 10px;
	color: var(--muted);
}
.component-card > .icon-wrap:last-child .icon {
	width: 12px;
	height: 12px;
}
.catalog-footnote {
	margin-top: 48px;
	display: flex;
	gap: 9px;
	padding-top: 20px;
	border-top: 1px solid var(--border);
	color: var(--muted);
	font-size: 11px;
}
.catalog-footnote .icon {
	width: 17px;
	height: 17px;
}
.empty-state {
	text-align: center;
	padding: 65px 16px;
	background: var(--surface);
	border-radius: var(--asam-radius-card);
}
.empty-state .icon {
	width: 40px;
	height: 40px;
}
.empty-state h2 {
	font-size: 21px;
	margin-top: 20px;
}
.empty-state p {
	margin-block: 12px 24px;
	color: var(--muted);
}
.brand-swatch {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	padding: 30px;
	min-height: 215px;
	border-radius: var(--asam-radius-card);
	background: var(--accent);
	color: #fff;
	margin-top: 23px;
}
.brand-swatch > span {
	font: 10px var(--mono);
	letter-spacing: 0.1em;
}
.brand-swatch > strong {
	font: 42px/1.4 var(--mono);
	margin-top: 40px;
	letter-spacing: -0.04em;
}
.brand-swatch > code {
	font-size: 11px;
	margin-top: 5px;
}
.brand-swatch .copy-button {
	position: absolute;
	top: 23px;
	right: 27px;
}
.brand-swatch .copy-button:hover {
	color: #fff;
	text-decoration: underline;
}
.swatch-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 20px 14px;
	margin-top: 21px;
}
.swatch {
	padding: 0;
	background: none;
	border: 0;
	text-align: left;
	border-radius: var(--asam-radius-action);
}
.swatch-color {
	display: block;
	height: 68px;
	background: var(--swatch);
	border-radius: var(--asam-radius-action);
	border: 1px solid rgb(128 128 128 / 10%);
}
.swatch strong {
	display: block;
	font-size: 11px;
	font-weight: 500;
	margin: 9px 0 1px;
}
.swatch code {
	font-size: 10px;
	color: var(--muted);
}
.type-specimen {
	border: 1px solid var(--border);
	border-radius: var(--asam-radius-card);
	padding: 28px;
}
.type-specimen > div:first-child {
	display: flex;
	gap: 28px;
	align-items: center;
}
.type-specimen > div:first-child > strong {
	font:
		600 70px/1.2 Arial,
		sans-serif;
	color: var(--ink);
	letter-spacing: -0.08em;
}
.type-specimen > div:first-child small {
	font: 11px var(--mono);
	color: var(--muted);
}
.type-specimen > p {
	font-size: 18px;
	line-height: 2;
	margin-top: 20px;
	color: var(--ink);
}
.type-specimen > p > span {
	font-size: 13px;
	color: var(--muted);
}
.type-scale {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	align-items: end;
	border-top: 1px solid var(--border);
	padding-top: 24px;
	margin-top: 24px;
	gap: 10px;
}
.type-scale span {
	display: flex;
	flex-direction: column;
	gap: 12px;
}
.type-scale b {
	font-weight: 500;
}
.type-scale code {
	font-size: 10px;
	color: var(--muted);
}
.geometry-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 20px;
}
.geometry-grid > div {
	background: var(--surface);
	padding: 24px;
	border-radius: var(--asam-radius-card);
}
.geometry-grid h3 {
	font-size: 13px;
	margin-bottom: 24px;
}
.radius-samples {
	display: flex;
	justify-content: space-between;
	gap: 8px;
}
.radius-samples > span {
	display: flex;
	flex-direction: column;
	align-items: center;
}
.radius-samples i {
	width: 35px;
	height: 35px;
	border: 1.5px solid var(--accent-text);
	display: block;
	margin-bottom: 12px;
}
.radius-samples strong {
	font: 14px var(--mono);
}
.radius-samples small {
	font-size: 9px;
	margin-top: 5px;
	color: var(--muted);
}
.spacing-samples {
	display: flex;
	align-items: end;
	justify-content: space-between;
	gap: 10px;
	height: 87px;
}
.spacing-samples span {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 12px;
}
.spacing-samples i {
	display: block;
	width: 20px;
	background: var(--accent);
	border-radius: 2px;
}
.spacing-samples code {
	font-size: 11px;
}
.geometry-grid .helper {
	margin-top: 14px;
	font-size: 9px !important;
}
dialog {
	padding: 26px;
	background: var(--page);
	color: var(--text);
	border: 1px solid var(--border);
	border-radius: 12px;
	box-shadow: var(--shadow);
	width: min(620px, calc(100% - 32px));
	max-height: calc(100dvh - 60px);
}
dialog::backdrop {
	background: rgb(10 20 37 / 40%);
}
.search-dialog {
	margin-top: min(150px, 12dvh);
}
.dialog-top {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 20px;
	margin-bottom: 18px;
}
.dialog-top h2 {
	font-size: 17px;
}
.dialog-top .icon-button {
	margin: -8px -8px -8px 0;
}
.search-results {
	min-height: 180px;
	max-height: 43dvh;
	overflow: auto;
	padding-top: 12px;
}
.search-result {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 13px;
	border-radius: var(--asam-radius-action);
}
.search-result:hover {
	background: var(--soft);
}
.search-result > span {
	flex: 1;
}
.search-result strong {
	display: block;
	font-size: 13px;
	color: var(--ink);
}
.search-result small {
	color: var(--muted);
	font-size: 10px;
}
.search-result > .result-arrow {
	font-size: 18px;
	flex: 0;
	color: var(--muted);
}
.search-no-result {
	padding: 35px 15px;
	color: var(--muted);
	text-align: center;
	font-size: 13px;
}
.dialog-hint {
	font-size: 10px;
	color: var(--muted);
	border-top: 1px solid var(--border);
	padding-top: 16px;
}
.dialog-hint kbd {
	margin: 0 5px 0 12px;
}
.dialog-hint kbd:first-child {
	margin-left: 0;
}
.dialog-category {
	font-size: 11px;
	color: var(--muted);
}
.detail-symbol {
	display: inline-flex;
	padding: 17px;
	background: var(--soft);
	color: var(--accent-text);
	border-radius: var(--asam-radius-card);
}
.detail-symbol .icon {
	width: 32px;
	height: 32px;
}
.component-dialog h2 {
	margin-top: 21px;
	font-size: 27px;
}
.component-dialog > p {
	font-size: 13px;
	margin-top: 13px;
}
.component-dialog .mono {
	font: 12px var(--mono);
	color: var(--accent-text);
	margin-top: 5px;
}
.dialog-actions {
	display: flex;
	gap: 12px;
	flex-wrap: wrap;
	margin-top: 20px;
}
.dialog-actions .button {
	padding: 10px 15px;
	font-size: 12px;
	gap: 12px;
}
.toast {
	position: fixed;
	bottom: 25px;
	left: 50%;
	transform: translate(-50%, 20px);
	z-index: 10;
	padding: 12px 24px;
	max-width: calc(100vw - 32px);
	border-radius: var(--asam-radius-action);
	color: #fff;
	background: #18243c;
	box-shadow: var(--shadow);
	font-size: 12px;
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
}
.toast.visible {
	opacity: 1;
	visibility: visible;
	transform: translate(-50%, 0);
}
@media (prefers-reduced-motion: no-preference) {
	.button,
	.component-card,
	.feature,
	.icon-button {
		transition:
			transform 0.2s,
			border-color 0.2s,
			background-color 0.2s;
	}
	.feature:hover,
	.component-card:hover {
		transform: translateY(-3px);
	}
	.toast {
		transition:
			opacity 0.2s,
			transform 0.2s;
	}
}
@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		scroll-behavior: auto !important;
		animation: none !important;
		transition: none !important;
	}
}
@media (min-width: 1600px) {
	.hero {
		min-height: 700px;
	}
}
@media (max-width: 1199px) {
	.wrap {
		width: calc(100% - 64px);
	}
	.nav-shell {
		padding-inline: 32px;
		gap: 35px;
	}
	.primary-nav {
		gap: 25px;
	}
	.search-trigger {
		width: 190px;
	}
	.hero {
		min-height: 580px;
		gap: 20px;
	}
	.hero h1 {
		font-size: 48px;
	}
	.hero-copy > p {
		font-size: 15px;
	}
	.stack-strip > div {
		gap: 26px;
	}
	.docs-layout {
		grid-template-columns: 166px minmax(0, 1fr);
		gap: 36px;
	}
	.page-toc {
		display: none;
	}
	.feature {
		padding: 26px;
	}
	.feature h3 {
		font-size: 19px;
	}
	.system-section {
		gap: 45px;
	}
}
@media (max-width: 1023px) {
	.nav-shell {
		gap: 28px;
	}
	.search-trigger {
		width: 36px;
		padding: 0;
		justify-content: center;
		background: transparent;
		border: 0;
	}
	.search-trigger > span:not(.icon-wrap),
	.search-trigger kbd {
		display: none;
	}
	.hero h1 {
		font-size: 42px;
	}
	.hero {
		min-height: 520px;
	}
	.stack-strip {
		flex-direction: column;
		gap: 17px;
		align-items: flex-start;
	}
	.stack-strip > div {
		width: 100%;
		justify-content: space-between;
	}
	.feature-grid {
		grid-template-columns: 1fr 1fr;
	}
	.feature-wide {
		grid-column: span 2;
		min-height: 300px;
	}
	.feature {
		min-height: 335px;
	}
	.section {
		padding-block: 68px;
	}
	.system-section {
		gap: 30px;
	}
	.system-copy h2 {
		font-size: 26px;
	}
	.token-big {
		padding: 20px;
	}
	.token-small {
		padding: 20px;
	}
	.token-composition strong {
		font-size: 15px;
	}
	.token-radius {
		padding: 15px;
		gap: 10px;
	}
	.token-radius > div {
		width: 35px;
		height: 35px;
	}
	.start-section {
		padding: 30px;
		gap: 18px;
	}
	.start-icon {
		display: none;
	}
	.start-section h2 {
		font-size: 21px;
	}
	.site-footer {
		flex-direction: column;
		align-items: flex-start;
		gap: 18px;
	}
	.catalog-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
	.heading-count {
		align-items: flex-start;
	}
	.heading-count h1 {
		font-size: 30px;
	}
	.heading-count > span {
		font-size: 24px;
	}
	.heading-count small {
		display: block;
	}
}
@media (max-width: 767px) {
	.wrap {
		width: calc(100% - 40px);
	}
	.nav-shell {
		padding-inline: 20px;
		height: 64px;
		gap: 12px;
	}
	.brand strong {
		font-size: 21px;
	}
	.brand-mark {
		font-size: 31px;
		width: 28px;
	}
	.brand {
		gap: 8px;
	}
	.primary-nav {
		display: none;
	}
	.nav-actions {
		gap: 3px;
	}
	.menu-toggle {
		display: inline-flex;
	}
	.hero {
		grid-template-columns: 1fr;
		min-height: auto;
		padding-top: 42px;
		padding-bottom: 24px;
		gap: 12px;
	}
	.hero-copy {
		max-width: 580px;
	}
	.eyebrow {
		font-size: 11px;
		margin-bottom: 17px;
	}
	.hero h1 {
		font-size: clamp(37px, 8.5vw, 56px);
		line-height: 1.3;
		letter-spacing: -0.035em;
	}
	.hero-copy > p {
		margin: 20px 0 24px;
		font-size: 14px;
	}
	.hero-actions {
		gap: 10px;
	}
	.button {
		padding: 10px 18px;
		gap: 18px;
		font-size: 13px;
		min-height: 45px;
	}
	.hero-art {
		width: min(430px, 100%);
		margin: 0 auto;
	}
	.hero-art img {
		max-height: 340px;
		object-fit: contain;
	}
	.stack-strip {
		padding-block: 22px;
	}
	.stack-strip > span {
		font-size: 11px;
	}
	.stack-strip > div {
		gap: 13px;
		flex-wrap: wrap;
		justify-content: flex-start;
	}
	.stack-strip strong {
		font-size: 12px;
	}
	.section {
		padding-block: 55px;
	}
	.section-heading {
		margin-bottom: 25px;
	}
	.section-heading h2 {
		font-size: 29px;
	}
	.section-heading p {
		font-size: 13px;
		line-height: 1.9;
	}
	.feature-grid {
		grid-template-columns: 1fr;
		gap: 14px;
	}
	.feature-wide {
		grid-column: auto;
	}
	.feature {
		min-height: 315px;
		padding: 28px;
	}
	.feature-symbol {
		width: 60px;
		height: 60px;
		margin-bottom: 20px;
	}
	.feature-symbol .icon {
		width: 34px;
		height: 34px;
	}
	.feature h3 {
		font-size: 22px;
	}
	.feature p {
		max-width: 36ch;
	}
	.system-section {
		grid-template-columns: 1fr;
		padding-block: 45px 55px;
		gap: 30px;
	}
	.system-copy h2 {
		font-size: 26px;
	}
	.system-copy p {
		font-size: 13px;
		margin-block: 17px 22px;
	}
	.token-big {
		min-height: 220px;
	}
	.token-composition strong {
		font-size: 17px;
	}
	.token-radius > div {
		width: 45px;
		height: 45px;
	}
	.start-section {
		align-items: flex-start;
		flex-direction: column;
		padding: 27px;
		margin-bottom: 50px;
		gap: 22px;
	}
	.start-section .button {
		margin-left: 0;
	}
	.site-footer > div {
		flex-wrap: wrap;
		gap: 12px 20px;
	}
	.site-footer {
		font-size: 10px;
		padding-block: 24px;
	}
	.docs-layout {
		display: block;
	}
	.docs-sidebar {
		display: none;
	}
	.docs-content {
		padding-block: 26px 50px;
	}
	.breadcrumb {
		margin-bottom: 23px;
	}
	.page-heading h1 {
		font-size: 30px;
	}
	.page-heading p {
		font-size: 13px;
		margin-top: 16px;
	}
	.notice {
		padding: 16px;
		gap: 10px;
		font-size: 11px;
	}
	.doc-section {
		margin-top: 35px;
	}
	.doc-section h2 {
		font-size: 21px;
	}
	.environment-grid {
		gap: 13px;
		padding: 18px 15px;
	}
	.environment-grid strong {
		font-size: 16px;
	}
	.environment-grid span {
		font-size: 9px;
	}
	.environment-grid code {
		font-size: 9px;
	}
	pre {
		font-size: 11px;
		padding: 18px;
	}
	.heading-count h1 {
		font-size: 28px;
		max-width: 11em;
	}
	.heading-count > span {
		font-size: 22px;
	}
	.heading-count small {
		font-size: 9px;
		white-space: nowrap;
	}
	.filter-tabs {
		gap: 7px;
	}
	.filter-tabs button {
		padding: 5px 10px;
		font-size: 11px;
	}
	.search-field {
		padding-inline: 12px;
	}
	.search-field input {
		font-size: 12px;
	}
	.search-field kbd {
		display: none;
	}
	.catalog-meta {
		margin-block: 23px;
		font-size: 9px;
		gap: 12px;
	}
	.catalog-grid {
		gap: 10px;
	}
	.component-card {
		flex-direction: column;
		min-height: 137px;
		padding: 16px 12px;
		gap: 13px;
	}
	.component-icon {
		padding: 7px;
	}
	.component-icon .icon {
		width: 19px;
		height: 19px;
	}
	.component-title strong {
		font-size: 12px;
	}
	.component-title code {
		font-size: 9px;
	}
	.catalog-group h2 {
		font-size: 16px;
	}
	.brand-swatch {
		padding: 25px;
		min-height: 208px;
	}
	.brand-swatch > strong {
		font-size: 38px;
	}
	.swatch-grid {
		gap: 17px 12px;
	}
	.swatch-color {
		height: 57px;
	}
	.swatch strong {
		font-size: 10px;
	}
	.swatch code {
		font-size: 9px;
	}
	.type-specimen {
		padding: 23px;
	}
	.type-specimen > div:first-child > strong {
		font-size: 56px;
	}
	.type-specimen > p {
		font-size: 15px;
	}
	.type-specimen > p > span {
		font-size: 11px;
	}
	.type-scale {
		grid-template-columns: repeat(2, 1fr);
		gap: 24px;
	}
	.geometry-grid {
		grid-template-columns: 1fr;
	}
	.radius-samples {
		justify-content: flex-start;
		gap: 29px;
	}
	.spacing-samples {
		justify-content: flex-start;
		gap: 29px;
	}
	dialog {
		padding: 22px;
		max-height: calc(100dvh - 32px);
	}
	.dialog-actions {
		flex-direction: column;
		align-items: stretch;
	}
	.component-dialog h2 {
		font-size: 24px;
	}
}
@media (max-width: 359px) {
	.wrap {
		width: calc(100% - 32px);
	}
	.nav-shell {
		padding-inline: 16px;
	}
	.hero h1 {
		font-size: 35px;
	}
	.brand strong {
		font-size: 19px;
	}
	.hero-actions .button {
		padding-inline: 15px;
		gap: 11px;
	}
	.environment-grid {
		grid-template-columns: 1fr;
	}
	.heading-count h1 {
		font-size: 25px;
	}
}
