:root {
	--bp-lg: 1040px;
	--bp-md: 720px;
	--bp-sm: 460px;
	--bp-xl: 1380px;
	--color-accent: #ff5d13;
	--color-accent-pressed: #ec4901;
	--color-bg: #0e0606;
	--color-bg-elevated: #180b0a;
	--color-gradient-light: #c11032;
	--color-gradient-mid: #fcdb00;
	--color-primary: #180b0a;
	--color-text: #FFFFFF;
	--color-text-muted: #c1c0c0;
	--container-padding-desktop: 48px;
	--container-padding-mobile: 16px;
	--container-padding-tablet: 24px;
	--container-readable: 710px;
	--container-site: 1260px;
	--dur-base: 180ms;
	--dur-fast: 120ms;
	--dur-slow: 260ms;
	--ease-in-out: cubic-bezier(0.5, 0.0, 0.5, 1.0);
	--ease-out: cubic-bezier(0.3, 0.7, 0.4, 1.0);
	--font-body: "Montserrat", system-ui, -apple-system, "Segoe UI", sans-serif;
	--font-display: "Inter", "Helvetica Neue", Arial, sans-serif;
	--fs-body: 19px;
	--fs-h1: 48px;
	--fs-h2: 36px;
	--fs-h3: 26px;
	--fs-h4: 21px;
	--fs-h5: 18px;
	--fs-h6: 16px;
	--fs-micro: 14px;
	--fs-small: 16px;
	--fw-bold: 600;
	--fw-medium: 500;
	--fw-regular: 400;
	--lh-loose: 2.0;
	--lh-normal: 1.7;
	--lh-tight: 1.2;
	--ls-tight: -0.01em;
	--ls-wide: 0.02em;
	--radius-circle: 50%;
	--radius-lg: 16px;
	--radius-md: 12px;
	--radius-pill: 9999px;
	--radius-sm: 8px;
	--shadow-lg: 0 8px 24px rgba(0, 0, 0, 0.10);
	--space-2xl: 128px;
	--space-2xs: 2px;
	--space-3xl: 200px;
	--space-lg: 48px;
	--space-md: 16px;
	--space-sm: 10px;
	--space-xl: 80px;
	--space-xs: 6px;
}

* {
	box-sizing: border-box;
}

*:focus-visible {
	outline: 2px solid var(--color-accent);
	outline-offset: 2px;
}

a {
	color: var(--color-accent);
	text-decoration: none;
}

a:hover {
	color: var(--color-accent-pressed);
}

body {
	background: var(--color-bg);
	color: var(--color-text);
	font-family: var(--font-body);
	font-size: var(--fs-body);
	line-height: var(--lh-normal);
	margin: 0;
	padding-top: 96px;
}

html, body {
	overflow-x: clip;
}

h1, h2, h3, h4, h5, h6 {
	color: var(--color-text);
	font-family: var(--font-display);
	font-weight: var(--fw-bold);
	letter-spacing: var(--ls-tight);
	line-height: var(--lh-tight);
	margin: 0;
}

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

main {
	display: block;
}

.skip-link {
	background: var(--color-accent);
	color: var(--color-text);
	left: 16px;
	padding: 8px 14px;
	position: absolute;
	top: 16px;
	z-index: 200;
}

.skip-link:not(:focus) {
	top: -200px !important;
}

/* ============ header (HEAD-15) ============ */
.nave {
	background: var(--color-bg);
	left: 0;
	position: fixed;
	right: 0;
	top: 0;
	transition: transform var(--dur-base) var(--ease-out);
	z-index: 100;
}

.nave.is-hidden {
	transform: translateY(-100%);
}

.nave-drawer {
	background: var(--color-bg);
	border-top: 1px solid rgba(255, 255, 255, 0.06);
	display: none;
	padding: var(--space-md);
}

.nave-drawer.is-open {
	display: block;
}

.nave-drawer-item {
	display: block;
}

.nave-drawer[hidden] {
	display: none;
}

.nave-drawer-link {
	color: var(--color-text);
	display: block;
	font-family: var(--font-display);
	font-size: var(--fs-h6);
	padding: 12px 0;
	text-decoration: none;
	text-transform: uppercase;
	letter-spacing: var(--ls-wide);
}

.nave-drawer-link[aria-current="page"] {
	color: var(--color-accent);
}

.nave-drawer-list {
	list-style: none;
	margin: 0;
	padding: 0;
}

.nave-inner {
	align-items: center;
	display: flex;
	justify-content: space-between;
	margin-inline: auto;
	max-width: calc(var(--container-site) + 2 * var(--container-padding-desktop));
	min-height: 96px;
	padding-inline: var(--container-padding-desktop);
}

.nave-link {
	color: var(--color-text);
	font-family: var(--font-display);
	font-size: var(--fs-h6);
	font-weight: var(--fw-bold);
	letter-spacing: var(--ls-wide);
	text-decoration: none;
	text-transform: uppercase;
	white-space: nowrap;
}

.nave-link[aria-current="page"] {
	color: var(--color-accent);
}

.nave-link:hover {
	color: var(--color-accent);
}

.nave-logo {
	flex-shrink: 0;
}

.nave-logo img {
	display: block;
	flex-shrink: 0;
	height: 96px;
	width: auto;
}

.nave-nav {
	align-items: flex-end;
	display: flex;
	flex-direction: column;
	gap: 6px;
}

.nave-nav-item {
	display: inline-flex;
}

.nave-nav-list {
	align-items: center;
	display: flex;
	flex-wrap: nowrap;
	gap: var(--space-md);
	list-style: none;
	margin: 0;
	padding: 0;
}

.nave-nav-list--bottom {
	border-top: 1px solid rgba(255, 255, 255, 0.08);
	padding-top: 6px;
}

.nave-nav-list--top {
	display: flex;
}

.nave-toggle {
	background: transparent;
	border: 0;
	cursor: pointer;
	display: none;
	gap: 5px;
	flex-direction: column;
	height: 44px;
	margin-left: auto !important;
	padding: 8px;
	width: 44px;
}

.nave-toggle-bar {
	background: var(--color-text);
	display: block;
	height: 2px;
	width: 100%;
}

@media (max-width: 1040px) {
	body {
		padding-top: 72px;
	}
	.nave-inner {
		min-height: 72px;
	}
	.nave-logo img {
		height: 60px;
	}
	.nave-nav {
		display: none;
	}
	.nave-toggle {
		display: flex;
	}
}

/* ============ footer (FOOT-03) ============ */
.hallway {
	background: var(--color-bg);
	padding-block: var(--space-xl);
}

.hallway-copyright {
	color: var(--color-text-muted);
	font-size: var(--fs-micro);
}

.hallway-inner {
	align-items: center;
	display: flex;
	flex-direction: column;
	gap: var(--space-lg);
	margin-inline: auto;
	max-width: calc(var(--container-site) + 2 * var(--container-padding-desktop));
	padding-inline: var(--container-padding-desktop);
	text-align: center;
}

.hallway-legal-row {
	color: var(--color-text-muted);
	display: flex;
	flex-wrap: wrap;
	font-size: var(--fs-micro);
	gap: var(--space-sm);
	justify-content: center;
	letter-spacing: var(--ls-wide);
	text-transform: uppercase;
}

.hallway-legal-row a {
	color: var(--color-text-muted);
}

.hallway-legal-row a:hover {
	color: var(--color-accent);
}

.hallway-logo img {
	display: block;
	height: 88px;
	width: auto;
}

.hallway-nav {
	display: block;
}

.hallway-nav-heading {
	color: var(--color-text-muted);
	font-family: var(--font-display);
	font-size: var(--fs-small);
	font-weight: var(--fw-medium);
	letter-spacing: var(--ls-wide);
	text-transform: uppercase;
}

.hallway-nav-list {
	display: flex;
	flex-wrap: wrap;
	font-family: var(--font-display);
	font-size: var(--fs-body);
	font-weight: var(--fw-medium);
	gap: var(--space-lg);
	justify-content: center;
	list-style: none;
	margin: 0;
	padding: 0;
}

.hallway-nav-list a {
	color: var(--color-text);
}

.hallway-nav-list a:hover {
	color: var(--color-accent);
}

.hallway-tagline {
	color: var(--color-text-muted);
	font-size: var(--fs-small);
	line-height: var(--lh-loose);
	margin: 0;
	max-width: 480px;
}

/* ============ hero (HERO-11) ============ */
.belfry {
	background: var(--color-bg);
	padding-block: var(--space-lg);
}

.belfry-content {
	display: flex;
	flex-direction: column;
	gap: var(--space-md);
}

.belfry-cta {
	align-self: flex-start;
	background: var(--color-accent);
	border-radius: var(--radius-pill);
	color: var(--color-text);
	display: inline-block;
	font-family: var(--font-display);
	font-size: var(--fs-h6);
	font-weight: var(--fw-medium);
	margin-top: var(--space-md);
	padding: 14px 32px;
	text-decoration: none;
}

.belfry-cta:hover {
	background: var(--color-accent-pressed);
	color: var(--color-text);
}

.belfry-eyebrow {
	color: var(--color-accent);
	font-family: var(--font-body);
	font-size: var(--fs-small);
	font-weight: var(--fw-medium);
	letter-spacing: var(--ls-wide);
	text-transform: uppercase;
}

.belfry-figure {
	aspect-ratio: 1 / 1;
	border-radius: var(--radius-lg);
	margin: 0;
	overflow: hidden;
}

.belfry-figure img {
	height: 100%;
	object-fit: cover;
	width: 100%;
}

.belfry-inner {
	align-items: center;
	display: grid;
	gap: var(--space-lg);
	grid-template-columns: 65% 35%;
	margin-inline: auto;
	max-width: calc(var(--container-site) + 2 * var(--container-padding-desktop));
	padding-inline: var(--container-padding-desktop);
}

.belfry-subtitle {
	color: var(--color-text-muted);
	font-size: var(--fs-h5);
	line-height: var(--lh-normal);
	margin: 0;
	max-width: var(--container-readable);
}

.belfry-title {
	font-size: var(--fs-h1);
	margin: 0;
	max-width: 920px;
}

@media (max-width: 720px) {
	.belfry-cta {
		align-self: stretch;
		text-align: center;
	}
	.belfry-figure {
		aspect-ratio: 16 / 10;
	}
	.belfry-inner {
		grid-template-columns: 1fr;
	}
	.belfry-title {
		font-size: 32px;
	}
}

/* ============ page-header (PHEAD-01) ============ */
.mosaic {
	background: var(--color-bg);
	border-bottom: 1px solid rgba(255, 255, 255, 0.05);
	padding-block: var(--space-xl) var(--space-lg);
}

.mosaic-description {
	color: var(--color-text-muted);
	font-family: var(--font-body);
	font-size: var(--fs-h5);
	line-height: var(--lh-normal);
	margin: 0;
	max-width: 720px;
}

.mosaic-divider {
	background: var(--color-accent);
	height: 2px;
	width: 60px;
}

.mosaic-eyebrow {
	color: var(--color-accent);
	font-family: var(--font-body);
	font-size: var(--fs-small);
	font-weight: var(--fw-medium);
	letter-spacing: var(--ls-wide);
	text-transform: uppercase;
}

.mosaic-inner {
	display: flex;
	flex-direction: column;
	gap: var(--space-md);
	margin-inline: auto;
	max-width: calc(var(--container-site) + 2 * var(--container-padding-desktop));
	padding-inline: var(--container-padding-desktop);
}

.mosaic-title {
	color: var(--color-text);
	font-family: var(--font-display);
	font-size: var(--fs-h1);
	font-weight: var(--fw-bold);
	letter-spacing: var(--ls-tight);
	line-height: var(--lh-tight);
	margin: 0;
	max-width: 920px;
}

@media (max-width: 720px) {
	.mosaic-title {
		font-size: 32px;
	}
}

/* ============ prose (PROSE-01) ============ */
.lozenge {
	background: var(--color-bg);
	padding-block: var(--space-lg);
}

.lozenge-figure {
	border-radius: var(--radius-md);
	margin: var(--space-lg) auto;
	max-width: var(--container-site);
	overflow: hidden;
	padding-inline: var(--space-md);
}

.lozenge-figure img {
	border-radius: var(--radius-md);
	width: 100%;
}

.lozenge-heading {
	color: var(--color-text);
	font-family: var(--font-display);
	font-size: var(--fs-h2);
	font-weight: var(--fw-bold);
	letter-spacing: var(--ls-tight);
	line-height: var(--lh-tight);
	margin-bottom: var(--space-md);
	margin-top: var(--space-lg);
}

.lozenge-heading:first-child {
	margin-top: 0;
}

.lozenge-inner {
	display: block;
	margin-inline: auto;
	max-width: calc(var(--container-site) + 2 * var(--container-padding-desktop));
	padding-inline: var(--container-padding-desktop);
}

.lozenge-list {
	color: var(--color-text);
	font-size: var(--fs-body);
	line-height: var(--lh-loose);
	margin: 0 0 var(--space-md);
	max-width: var(--container-readable);
	padding-left: 1.4em;
}

.lozenge-list li {
	margin-bottom: var(--space-xs);
}

.lozenge-list--ordered {
	list-style: decimal;
}

.lozenge-para {
	color: var(--color-text);
	font-family: var(--font-body);
	font-size: var(--fs-body);
	line-height: var(--lh-loose);
	margin: 0 0 var(--space-md);
	max-width: var(--container-readable);
}

.lozenge-para a {
	color: var(--color-accent);
	text-decoration: underline;
	text-underline-offset: 3px;
}

.lozenge-para a:hover {
	text-decoration-thickness: 2px;
}

.lozenge-subheading {
	color: var(--color-text);
	font-family: var(--font-body);
	font-size: var(--fs-h3);
	font-weight: var(--fw-bold);
	margin-bottom: var(--space-md);
	margin-top: var(--space-lg);
}

/* ============ items-grid (GRID-09) ============ */
.hearth {
	background: var(--color-bg);
	padding-block: var(--space-lg);
}

.hearth-heading {
	color: var(--color-text);
	font-family: var(--font-display);
	font-size: var(--fs-h2);
	font-weight: var(--fw-bold);
	margin: 0 0 var(--space-md);
}

.hearth-inner {
	display: block;
	margin-inline: auto;
	max-width: calc(var(--container-site) + 2 * var(--container-padding-desktop));
	padding-inline: var(--container-padding-desktop);
}

.hearth-item {
	background: var(--color-bg-elevated);
	border: 1px dashed rgba(255, 255, 255, 0.2);
	border-radius: var(--radius-md);
	flex-shrink: 0;
	padding: var(--space-md);
	width: 320px;
}

.hearth-item-text {
	color: var(--color-text-muted);
	font-size: var(--fs-small);
	line-height: var(--lh-normal);
	margin: 0;
}

.hearth-item-title {
	color: var(--color-text);
	font-family: var(--font-display);
	font-size: var(--fs-h5);
	font-weight: var(--fw-bold);
	margin: 0 0 var(--space-sm);
}

.hearth-rail {
	display: flex;
	gap: var(--space-md);
	list-style: none;
	margin: 0;
	padding: 0 var(--space-md) var(--space-sm);
}

.hearth-rail-wrap {
	margin-inline: calc(var(--space-md) * -1);
	overflow-x: auto;
}

/* ============ faq (FAQ-10) ============ */
.niche {
	background: var(--color-bg);
	padding-block: var(--space-lg);
}

.niche-a {
	color: var(--color-text-muted);
	font-size: var(--fs-body);
	line-height: var(--lh-normal);
	margin: 0;
}

.niche-heading {
	color: var(--color-text);
	font-family: var(--font-display);
	font-size: var(--fs-h2);
	margin: 0 0 var(--space-md);
}

.niche-inner {
	display: grid;
	gap: var(--space-lg);
	grid-template-columns: 40% 1fr;
	margin-inline: auto;
	max-width: calc(var(--container-site) + 2 * var(--container-padding-desktop));
	padding-inline: var(--container-padding-desktop);
}

.niche-intro {
	color: var(--color-text-muted);
	font-size: var(--fs-small);
	line-height: var(--lh-normal);
	margin: 0;
}

.niche-item {
	border-bottom: 1px dashed rgba(255, 255, 255, 0.12);
	padding-bottom: var(--space-md);
}

.niche-list {
	display: flex;
	flex-direction: column;
	gap: var(--space-md);
}

.niche-q {
	color: var(--color-text);
	font-family: var(--font-display);
	font-size: var(--fs-h5);
	font-weight: var(--fw-bold);
	margin: 0 0 var(--space-sm);
}

.niche-sidebar {
	padding: var(--space-md);
	position: sticky;
	top: 120px;
}

@media (max-width: 720px) {
	.niche-inner {
		grid-template-columns: 1fr;
	}
	.niche-sidebar {
		position: static;
	}
}

/* ============ reviews (REV-06) ============ */
.shelf {
	background: var(--color-bg);
	padding-block: var(--space-lg);
}

.shelf-author {
	color: var(--color-text);
	font-size: var(--fs-body);
	font-weight: var(--fw-bold);
}

.shelf-date {
	color: var(--color-text-muted);
	font-size: var(--fs-micro);
	margin-left: auto;
}

.shelf-heading {
	color: var(--color-text);
	font-family: var(--font-display);
	font-size: var(--fs-h2);
	margin: 0 0 var(--space-md);
}

.shelf-inner {
	display: block;
	margin-inline: auto;
	max-width: calc(var(--container-site) + 2 * var(--container-padding-desktop));
	padding-inline: var(--container-padding-desktop);
}

.shelf-item {
	border-bottom: 1px dashed rgba(255, 255, 255, 0.08);
	padding-block: var(--space-md);
}

.shelf-item-row {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-sm);
	margin-bottom: var(--space-xs);
}

.shelf-list {
	list-style: none;
	margin: 0;
	padding: 0;
}

.shelf-rating {
	color: var(--color-accent);
	font-weight: var(--fw-bold);
}

.shelf-text {
	color: var(--color-text);
	font-size: var(--fs-body);
	line-height: var(--lh-normal);
	margin: 0;
	max-width: var(--container-readable);
}

/* ============ cta-block (CTA-04) ============ */
.crown {
	background: var(--color-bg);
	padding-block: var(--space-lg);
}

.crown-inner {
	display: block;
	margin-inline: auto;
	max-width: calc(var(--container-site) + 2 * var(--container-padding-desktop));
	padding-inline: var(--container-padding-desktop);
	text-align: center;
}

.crown-link {
	color: var(--color-accent);
	display: inline-block;
	font-family: var(--font-display);
	font-size: var(--fs-h6);
	letter-spacing: var(--ls-wide);
	margin-top: var(--space-md);
	text-decoration: underline;
	text-transform: uppercase;
	transition: padding-left var(--dur-fast) var(--ease-out);
}

.crown-link:hover {
	color: var(--color-accent-pressed);
	padding-left: 8px;
	text-decoration-thickness: 2px;
}

.crown-text {
	color: var(--color-text-muted);
	font-size: var(--fs-body);
	line-height: var(--lh-loose);
	margin: var(--space-md) auto;
	max-width: var(--container-readable);
}

.crown-title {
	color: var(--color-text);
	font-family: var(--font-display);
	font-size: var(--fs-h4);
	font-weight: var(--fw-bold);
	margin: 0;
}

/* ============ inline-cta (INLINE-CTA-03) ============ */
.portico {
	padding-block: var(--space-md);
}

.portico-line {
	font-size: var(--fs-h6);
	line-height: var(--lh-normal);
	margin: 0 auto;
	max-width: calc(var(--container-site) + 2 * var(--container-padding-desktop));
	padding-inline: var(--container-padding-desktop);
	text-align: center;
}

.portico-line strong {
	color: var(--color-text);
	font-weight: var(--fw-bold);
}

.portico-link {
	color: var(--color-accent);
	text-decoration: underline;
	text-underline-offset: 3px;
}

.portico-link:hover {
	background: var(--color-bg-elevated);
	color: var(--color-gradient-mid);
	text-decoration-thickness: 2px;
}

/* ============ data-table (TABLE-06) ============ */
.turret {
	background: var(--color-bg);
	padding-block: var(--space-lg);
}

.turret-caption {
	color: var(--color-text-muted);
	font-family: var(--font-display);
	font-size: var(--fs-h4);
	font-style: italic;
	margin-bottom: var(--space-md);
	padding-bottom: var(--space-md);
	position: relative;
	text-align: center;
}

.turret-caption::before {
	background: var(--color-accent);
	content: "";
	display: block;
	height: 2px;
	margin: 0 auto var(--space-md);
	width: 40px;
}

.turret-inner {
	display: block;
	margin-inline: auto;
	max-width: calc(var(--container-site) + 2 * var(--container-padding-desktop));
	overflow-x: auto;
	padding-inline: var(--container-padding-desktop);
}

.turret-table {
	border-collapse: collapse;
	color: var(--color-text);
	font-size: var(--fs-small);
	width: 100%;
}

.turret-table td, .turret-table th {
	border-bottom: 1px dashed rgba(255, 255, 255, 0.12);
	padding: var(--space-sm) var(--space-md);
	text-align: left;
}

.turret-table th {
	color: var(--color-accent);
	font-family: var(--font-display);
	font-weight: var(--fw-bold);
	text-transform: uppercase;
}

/* ============ legal (LEGAL-08) ============ */
.barrow {
	background: var(--color-bg);
	padding-block: var(--space-lg);
}

.barrow-block {
	margin-bottom: var(--space-lg);
}

.barrow-contacts {
	margin-block: var(--space-lg);
}

.barrow-contacts-list {
	color: var(--color-text-muted);
	line-height: var(--lh-loose);
	max-width: var(--container-readable);
	padding-left: 1.4em;
}

.barrow-disclaimer {
	color: var(--color-text-muted);
	display: block;
	font-size: var(--fs-micro);
	margin-top: var(--space-lg);
	max-width: var(--container-readable);
}

.barrow-heading {
	color: var(--color-text);
	font-family: var(--font-body);
	font-size: var(--fs-h3);
	font-weight: var(--fw-bold);
	margin-bottom: var(--space-md);
}

.barrow-inner {
	display: block;
	margin-inline: auto;
	max-width: calc(var(--container-site) + 2 * var(--container-padding-desktop));
	padding-inline: var(--container-padding-desktop);
}

.barrow-intro {
	color: var(--color-text);
	font-size: var(--fs-body);
	line-height: var(--lh-loose);
	margin-bottom: var(--space-lg);
	max-width: var(--container-readable);
}

.barrow-para {
	color: var(--color-text-muted);
	font-size: var(--fs-body);
	line-height: var(--lh-loose);
	margin: 0 0 var(--space-md);
	max-width: var(--container-readable);
}

.barrow-updated {
	color: var(--color-text-muted);
	font-size: var(--fs-micro);
	margin-top: var(--space-md);
}

/* ============ contact-form (FORM-06) ============ */
.pediment {
	background: var(--color-bg);
	padding-block: var(--space-lg);
}

.pediment-field {
	margin-bottom: var(--space-md);
	position: relative;
}

.pediment-field--textarea {
	min-height: 140px;
}

.pediment-form {
	display: block;
	max-width: var(--container-readable);
}

.pediment-input, .pediment-textarea {
	background: transparent;
	border: 0;
	border-bottom: 2px dashed rgba(255, 255, 255, 0.2);
	color: var(--color-text);
	display: block;
	font-family: var(--font-body);
	font-size: var(--fs-body);
	padding: var(--space-lg) 0 var(--space-sm);
	width: 100%;
}

.pediment-input:focus, .pediment-textarea:focus {
	border-bottom-color: var(--color-accent);
	outline: none;
}

.pediment-inner {
	display: block;
	margin-inline: auto;
	max-width: calc(var(--container-site) + 2 * var(--container-padding-desktop));
	padding-inline: var(--container-padding-desktop);
}

.pediment-intro {
	color: var(--color-text);
	font-size: var(--fs-body);
	line-height: var(--lh-normal);
	margin-bottom: var(--space-lg);
	max-width: var(--container-readable);
}

.pediment-label {
	color: var(--color-text-muted);
	left: 0;
	pointer-events: none;
	position: absolute;
	top: var(--space-lg);
	transition: top 150ms, font-size 150ms;
}

.pediment-input:focus + .pediment-label,
.pediment-input:not(:placeholder-shown) + .pediment-label,
.pediment-textarea:focus + .pediment-label,
.pediment-textarea:not(:placeholder-shown) + .pediment-label {
	color: var(--color-accent);
	font-size: var(--fs-micro);
	top: var(--space-xs);
}

.pediment-submit {
	background: var(--color-accent);
	border: 0;
	border-radius: var(--radius-pill);
	color: var(--color-text);
	cursor: pointer;
	font-family: var(--font-display);
	font-size: var(--fs-h6);
	font-weight: var(--fw-medium);
	margin-top: var(--space-md);
	padding: 14px 32px;
}

.pediment-submit:hover {
	background: var(--color-accent-pressed);
}

.pediment-success {
	background: var(--color-bg-elevated);
	border-left: 4px solid var(--color-accent);
	color: var(--color-text);
	margin-top: var(--space-md);
	padding: var(--space-md);
}

/* ============ author-byline (BYLINE-01) ============ */
.spire {
	background: var(--color-bg);
	padding-block: var(--space-md);
}

.spire-attribution {
	color: var(--color-text-muted);
	font-size: var(--fs-body);
	margin: 0;
}

.spire-inner {
	align-items: center;
	display: flex;
	gap: var(--space-sm);
	margin-inline: auto;
	max-width: calc(var(--container-site) + 2 * var(--container-padding-desktop));
	padding-inline: var(--container-padding-desktop);
}

.spire-meta {
	color: var(--color-text-muted);
	font-size: var(--fs-micro);
	margin: 2px 0 0;
}

.spire-name {
	color: var(--color-accent);
	text-decoration: underline;
}

.spire-portrait {
	border-radius: var(--radius-circle);
	display: block;
	flex-shrink: 0;
	height: 48px;
	overflow: hidden;
	width: 48px;
}

.spire-portrait img {
	height: 100%;
	object-fit: cover;
	object-position: center top;
	width: 100%;
}

.spire-role {
	color: var(--color-text-muted);
	font-size: var(--fs-small);
	font-style: italic;
	margin: 2px 0 0;
}

.spire-text {
	display: block;
}

/* ============ author-card (AUTH-05) ============ */
.pulpit {
	background: var(--color-bg);
	padding-block: var(--space-lg);
}

.pulpit-bio {
	color: var(--color-text-muted);
	display: -webkit-box;
	font-size: var(--fs-small);
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 4;
	line-clamp: 4;
	margin: var(--space-xs) 0 0;
	overflow: hidden;
}

.pulpit-body {
	display: flex;
	flex-direction: column;
	gap: 2px;
}

.pulpit-card {
	background: var(--color-bg-elevated);
	border-radius: var(--radius-md);
	display: flex;
	gap: var(--space-sm);
	max-width: 480px;
	padding: var(--space-md);
}

.pulpit-inner {
	display: block;
	margin-inline: auto;
	max-width: calc(var(--container-site) + 2 * var(--container-padding-desktop));
	padding-inline: var(--container-padding-desktop);
}

.pulpit-name {
	color: var(--color-text);
	font-size: var(--fs-body);
	font-weight: var(--fw-bold);
	margin: 0;
}

.pulpit-portrait {
	border-radius: var(--radius-circle);
	flex-shrink: 0;
	height: 56px;
	object-fit: cover;
	object-position: center top;
	width: 56px;
}

.pulpit-role {
	color: var(--color-accent);
	font-size: var(--fs-micro);
	letter-spacing: var(--ls-wide);
	margin: 0;
	text-transform: uppercase;
}

/* ============ cookie (COOK-07) ============ */
.crest {
	background: var(--color-bg-elevated);
	border-left: 4px solid var(--color-accent);
	border-radius: var(--radius-sm);
	bottom: var(--space-md);
	box-shadow: var(--shadow-lg);
	max-width: 320px;
	padding: var(--space-md);
	position: fixed;
	right: var(--space-md);
	width: calc(100vw - 2 * var(--space-md));
	z-index: 90;
}

.crest[hidden] {
	display: none;
}

.crest-actions {
	display: flex;
	gap: var(--space-sm);
	margin-top: var(--space-sm);
}

.crest-button {
	background: var(--color-accent);
	border: 0;
	border-radius: var(--radius-pill);
	color: var(--color-text);
	cursor: pointer;
	font-family: var(--font-display);
	font-size: var(--fs-small);
	padding: 10px 20px;
}

.crest-button--ghost {
	background: transparent;
	border: 1px solid var(--color-text-muted);
	color: var(--color-text);
}

.crest-button--ghost:hover {
	background: var(--color-bg);
	color: var(--color-text);
}

.crest-button:hover {
	background: var(--color-accent-pressed);
}

.crest-inner {
	display: block;
}

.crest-message {
	color: var(--color-text);
	font-size: var(--fs-small);
	line-height: var(--lh-normal);
	margin: 0;
}

@media (max-width: 720px) {
	.crest, .crest-inner {
		font-size: 13px !important;
		gap: 8px !important;
		line-height: 1.35 !important;
		padding: 12px 14px !important;
	}
	.crest-title, .crest-heading {
		display: none !important;
	}
	.crest-button, .crest button {
		font-size: 12px !important;
		min-height: 36px !important;
		padding: 8px 14px !important;
	}
}

/* ============ error (ERR-04) ============ */
.arabesque {
	background: linear-gradient(180deg, var(--color-gradient-light), var(--color-bg));
	min-height: 80vh;
	padding-block: var(--space-2xl);
}

.arabesque-button {
	background: var(--color-accent);
	border-radius: var(--radius-pill);
	color: var(--color-text);
	display: inline-block;
	font-family: var(--font-display);
	font-size: var(--fs-h6);
	font-weight: var(--fw-medium);
	margin-top: var(--space-md);
	padding: 14px 32px;
	text-decoration: none;
}

.arabesque-button:hover {
	background: var(--color-accent-pressed);
	color: var(--color-text);
}

.arabesque-eyebrow {
	color: var(--color-gradient-mid);
	font-family: var(--font-display);
	font-size: 80px;
	font-weight: var(--fw-bold);
	margin: 0;
}

.arabesque-inner {
	display: flex;
	flex-direction: column;
	gap: var(--space-md);
	margin-inline: auto;
	max-width: calc(var(--container-site) + 2 * var(--container-padding-desktop));
	padding-inline: var(--container-padding-desktop);
	text-align: center;
}

.arabesque-text {
	color: var(--color-text);
	font-size: var(--fs-h5);
	margin: 0 auto;
	max-width: var(--container-readable);
}

.arabesque-title {
	color: var(--color-text);
	font-family: var(--font-display);
	font-size: var(--fs-h1);
	font-weight: var(--fw-bold);
	margin: 0;
}
