/* ==========================================================================
   Base — reset, typography, primitives
   ========================================================================== */

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

html {
	-webkit-text-size-adjust: 100%;
	text-size-adjust: 100%;
	scroll-behavior: smooth;
	scroll-padding-top: calc(var(--topbar-h) + 16px);
}

body {
	margin: 0;
	background: var(--da-bg);
	color: var(--da-text);
	font-family: var(--font-body);
	font-size: var(--fs-md);
	line-height: 1.55;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	text-rendering: optimizeLegibility;
}

[hidden] { display: none !important; }
img, svg, video { display: block; max-width: 100%; }
img { height: auto; }
h1, h2, h3, h4, p, ul, ol, figure { margin: 0; }
/* Neutralise theme.json heading defaults (editor-only) on app screens. */
h1, h2, h3, h4, h5, h6 { font-family: inherit; font-weight: 700; text-transform: none; line-height: 1.25; }
ul, ol { padding: 0; list-style: none; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; color: inherit; }
button { cursor: pointer; background: none; border: 0; padding: 0; }
b, strong { font-weight: 700; }

:focus-visible { outline: none; box-shadow: var(--ring); border-radius: var(--r-sm); }

::selection { background: var(--da-red); color: #fff; }

.screen-reader-text {
	position: absolute !important;
	width: 1px; height: 1px;
	padding: 0; margin: -1px;
	overflow: hidden; clip: rect(0 0 0 0);
	white-space: nowrap; border: 0;
}

.skip-link {
	position: fixed; left: 16px; top: -60px; z-index: 1000;
	padding: 10px 16px; border-radius: var(--r-pill);
	background: var(--da-red); color: #fff; font-weight: 700;
	transition: top var(--t-fast) var(--ease);
}
.skip-link:focus { top: 12px; }

/* Icons */
.i {
	width: 1.25em; height: 1.25em;
	flex: none;
	display: inline-block;
	vertical-align: middle;
}
.i-brand { width: 18px; height: 18px; }
.badge-verified { color: var(--da-verified); width: 16px; height: 16px; }

/* Display type */
.marker {
	font-family: var(--font-marker);
	color: var(--da-red);
	transform: rotate(-3deg);
	display: inline-block;
	font-size: var(--fs-xl);
	line-height: 1.1;
}

.kicker {
	display: inline-flex; align-items: center; gap: 8px;
	font-size: var(--fs-xs); font-weight: 800;
	letter-spacing: 0.14em; text-transform: uppercase;
	color: var(--da-red);
}

.page-title {
	font-family: var(--font-display);
	font-weight: 400;
	font-size: var(--fs-h2);
	text-transform: uppercase;
	line-height: 1.05;
	letter-spacing: 0.01em;
}

.prose { max-width: 760px; }
.prose > * + * { margin-top: 1em; }
.prose a { color: var(--da-red); text-decoration: underline; }

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
		scroll-behavior: auto !important;
	}
}
