*,
*::before,
*::after {
	box-sizing: border-box;
}

html {
	scroll-behavior: smooth;
	scroll-padding-block-start: calc(var(--ds-header-height, var(--wp--custom--header--height)) + var(--wp--preset--spacing--20) + var(--wp-admin--admin-bar--height, 0px));
}

body {
	margin: 0;
	background: var(--wp--preset--color--paper);
	color: var(--wp--preset--color--ink);
	font-family: var(--wp--preset--font-family--inter);
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
	overflow-wrap: anywhere;
}

.wp-site-blocks {
	padding: 0;
}

.ds-page-start {
	position: absolute;
	inset-block-start: 0;
	inset-inline-start: 0;
	width: var(--wp--custom--rule--hairline);
	height: var(--wp--custom--rule--hairline);
	pointer-events: none;
}

:where(.wp-site-blocks) > * {
	margin-block-start: 0;
}

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

a,
button,
input,
textarea,
select {
	outline-offset: var(--wp--custom--focus--offset);
}

:focus-visible {
	outline: var(--wp--custom--focus--width) solid var(--wp--preset--color--indigo-bright);
}

a {
	text-underline-offset: var(--wp--custom--link--underline-offset);
	text-decoration-thickness: max(var(--wp--custom--rule--hairline), var(--wp--custom--link--underline-thickness));
	text-decoration-skip-ink: auto;
}

a:hover,
a:focus-visible {
	text-decoration-thickness: max(var(--wp--custom--rule--hairline), var(--wp--custom--link--underline-emphasis));
}

.ds-visually-hidden {
	position: absolute !important;
	width: 0.0625rem !important;
	height: 0.0625rem !important;
	padding: 0 !important;
	margin: -0.0625rem !important;
	overflow: hidden !important;
	clip: rect(0, 0, 0, 0) !important;
	white-space: nowrap !important;
	border: 0 !important;
}

/* Keep the sticky shell free of filters/transforms: the pill is its fixed sibling. */
.wp-site-blocks > .wp-block-template-part:has(> .ds-site-header) {
	position: sticky;
	top: var(--wp-admin--admin-bar--height, 0px);
	z-index: 12;
}

.ds-site-header {
	position: relative;
	z-index: 5;
	--ds-header-surface: var(--wp--preset--color--paper);
	background: var(--ds-header-surface);
}

@supports ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
	.ds-site-header {
		background: color-mix(in srgb, var(--ds-header-surface) var(--wp--custom--glass--surface-compact), transparent);
		-webkit-backdrop-filter: blur(var(--wp--custom--glass--blur));
		backdrop-filter: blur(var(--wp--custom--glass--blur));
	}
}

.ds-site-header .ds-header-row {
	position: relative;
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto auto;
	gap: var(--wp--preset--spacing--40);
	align-items: center;
	min-height: var(--wp--custom--header--height);
	padding-inline: var(--wp--custom--layout--edge);
	width: 100%;
}

.ds-header-row > *,
.ds-home-hero__copy,
.ds-register-card__body,
.ds-project-hero__inner,
.ds-project-fact {
	min-width: 0;
}

.ds-site-name,
.ds-site-name a {
	color: var(--wp--preset--color--ink);
	text-decoration: none;
}

.ds-site-name a {
	display: inline-flex;
	align-items: center;
	min-height: var(--wp--custom--navigation--height);
}

.ds-dateline {
	margin: 0;
	font-family: var(--wp--preset--font-family--mono);
	font-variant-numeric: tabular-nums;
	letter-spacing: -0.015em;
	white-space: normal;
	text-align: end;
}

.ds-home-hero {
	background: var(--wp--preset--color--paper);
}

.ds-home-hero__inner {
	display: flex;
	flex-direction: column;
	justify-content: flex-start;
	min-height: calc(100svh - var(--wp--custom--header--height) + var(--wp--custom--hero--tail));
	padding: var(--wp--custom--hero--copy-start) var(--wp--custom--layout--edge) var(--wp--preset--spacing--50);
}

.ds-home-hero__copy {
	max-width: var(--wp--custom--measure--copy);
	margin-block-end: var(--wp--custom--hero--nav-gap);
}

.ds-home-title {
	margin: 0;
	max-width: 12ch;
	font-size: clamp(3.5rem, 4.86vw, 5.25rem) !important;
	font-weight: 400;
	line-height: 0.84;
	letter-spacing: -0.03em;
}

.ds-home-title em {
	font-family: var(--wp--preset--font-family--serif);
	font-style: normal;
}

.ds-home-lede {
	max-width: 58rem;
	margin: var(--wp--custom--hero--lede-gap) 0 0;
	color: var(--wp--preset--color--muted);
	line-height: 1.4;
}

/* Footer structure and typography live in the shared component library. */

.ds-empty-state {
	min-height: 70svh;
	padding: var(--wp--preset--spacing--70) var(--wp--custom--layout--edge);
}

@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior: auto;
	}

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