/**
 * DVDocs 2.1 — Linear Archive
 *
 * A square-edged, information-first presentation layer inspired by early web
 * newswires and contemporary editorial indexes. It intentionally loads last so
 * the user's edited 2.0 modules remain intact beneath this reversible layer.
 */

:root {
	--dv-radius: 0;
	--dv-radius-lg: 0;
	--dv-shadow: none;
	--dv-shadow-lg: none;
	--dv-rule: var(--dv-border);
	--dv-mono: "JetBrains Mono", "SFMono-Regular", Consolas, "Liberation Mono", monospace;
	--dv-interface: "Arial Narrow", "Nimbus Sans Narrow", Inter, ui-sans-serif, system-ui, sans-serif;
	--dv-panel-head: color-mix(in srgb, var(--dv-bg-alt) 76%, var(--dv-surface));
}

body.dv-layout-linear-archive {
	font-size: 15px;
	background: var(--dv-bg);
}

body.dv-layout-linear-archive::before {
	opacity: .22;
	background:
		linear-gradient(90deg, transparent 0, transparent calc(50% - 1px), color-mix(in srgb, var(--dv-accent) 4%, transparent) 50%, transparent calc(50% + 1px)),
		repeating-linear-gradient(0deg, color-mix(in srgb, var(--dv-text) 2.5%, transparent) 0 1px, transparent 1px 4px);
}

body.dv-layout-linear-archive :where(
	button,
	input,
	select,
	textarea,
	pre,
	code,
	blockquote,
	.wp-element-button,
	.wp-block-button__link,
	.dv-basic-entry,
	.dv-doc,
	.dv-result-card,
	.dv-listing-head,
	.dv-error-panel,
	.dv-comments,
	.dv-component-section,
	.dv-sidebar__inner,
	.dv-toc__panel,
	.dv-codex__seal,
	.dv-codex__metrics span,
	.dv-codex-card,
	.dv-character__portrait-frame,
	.dv-record-strip span,
	.dv-character__tags span,
	.dv-character__facts,
	.dv-character__section,
	.dv-character__related,
	.dv-character__stat-track,
	.dv-character__abilities li,
	.dv-character__related img,
	.dv-pagination .page-numbers,
	.dv-post-nav a,
	.dv-empty-state,
	.nav-menu .sub-menu,
	.dv-callout,
	.dv-badge,
	.dv-hex-button
) {
	border-radius: 0 !important;
	box-shadow: none !important;
}

body.dv-layout-linear-archive :where(.dv-basic-entry__image img, .dv-doc__image img) {
	border-radius: 0;
}

body.dv-layout-linear-archive :where(button, input[type="submit"], .button, .wp-element-button, .wp-block-button__link) {
	font-family: var(--dv-mono);
	font-size: .72rem;
	font-weight: 800;
	letter-spacing: .08em;
	text-transform: uppercase;
}

body.dv-layout-linear-archive :where(h1, h2, h3, h4, h5, h6) {
	font-family: var(--dv-interface);
	font-weight: 800;
}

/* System strip and masthead */
.dv-wire-strip {
	color: var(--dv-muted);
	background: var(--dv-bg);
	border-bottom: 1px solid var(--dv-rule);
	font-family: var(--dv-mono);
	font-size: .64rem;
	font-weight: 700;
	letter-spacing: .08em;
	text-transform: uppercase;
}

.dv-wire-strip__inner {
	display: grid;
	grid-template-columns: 1fr auto 1fr;
	align-items: center;
	min-height: 30px;
	border-inline: 1px solid var(--dv-rule);
}

.dv-wire-strip__inner > * {
	padding: .35rem .7rem;
}

.dv-wire-strip__status {
	display: inline-flex;
	align-items: center;
	gap: .55rem;
	color: var(--dv-accent);
}

.dv-wire-strip__status i {
	width: 6px;
	height: 6px;
	background: currentColor;
}

.dv-wire-strip__site {
	border-inline: 1px solid var(--dv-rule);
	color: var(--dv-heading);
}

.dv-wire-strip__date {
	justify-self: end;
}

.dv-site-header {
	background: var(--dv-surface);
	border-bottom: 0;
	box-shadow: none;
	backdrop-filter: none;
}

.dv-header-top {
	min-height: 76px;
	padding-block: .75rem;
	border-inline: 1px solid var(--dv-rule);
}

.dv-site-branding .custom-logo {
	max-height: 52px;
}

.dv-brand__mark {
	width: 34px;
	height: 34px;
	background: transparent;
	border-color: var(--dv-accent);
}

.dv-brand__name {
	font-family: var(--dv-interface);
	font-size: 1.05rem;
	letter-spacing: .12em;
	text-transform: uppercase;
}

.dv-brand__descriptor,
.dv-header-widget,
.dv-theme-toggle {
	font-family: var(--dv-mono);
}

.dv-brand__descriptor {
	font-size: .6rem;
}

.dv-theme-toggle {
	min-height: 34px;
	padding: .45rem .65rem;
	color: var(--dv-accent);
	background: transparent;
	border: 1px solid var(--dv-rule);
}

.dv-theme-toggle::before { content: "["; }
.dv-theme-toggle::after { content: "]"; }

.dv-primary-bar {
	background: var(--dv-panel-head);
	border-block: 1px solid var(--dv-rule);
}

.dv-primary-bar__inner {
	min-height: 42px;
	border-inline: 1px solid var(--dv-rule);
}

.nav-menu {
	gap: 0;
}

.nav-menu > li {
	border-right: 1px solid var(--dv-rule);
}

.nav-menu > li:first-child {
	border-left: 0;
}

.nav-menu a {
	padding: .72rem .9rem;
	font-family: var(--dv-mono);
	font-size: .67rem;
	letter-spacing: .07em;
	text-transform: uppercase;
}

.nav-menu > li.current-menu-item > a,
.nav-menu > li > a:hover,
.nav-menu > li > a:focus-visible {
	color: var(--dv-heading);
	background: var(--dv-accent-soft);
}

.nav-menu > li.current-menu-item > a::before { content: "[ "; color: var(--dv-accent); }
.nav-menu > li.current-menu-item > a::after { content: " ]"; color: var(--dv-accent); }

.nav-menu .sub-menu {
	min-width: 230px;
	padding: 0;
	background: var(--dv-surface);
	border: 1px solid var(--dv-rule);
}

.nav-menu .sub-menu li + li {
	border-top: 1px solid var(--dv-rule);
}

.dv-secondary-bar {
	background: var(--dv-surface);
	border-bottom: 1px solid var(--dv-rule);
}

.dv-secondary-nav {
	border-inline: 1px solid var(--dv-rule);
}

.dv-secondary-menu {
	gap: 0;
}

.dv-secondary-menu li {
	border-right: 1px solid var(--dv-rule);
}

.dv-secondary-menu a {
	font-family: var(--dv-mono);
	font-size: .62rem;
}

/* Main editorial grid */
.dv-page-main {
	padding-block: 0 3rem;
}

.dv-content-grid {
	gap: 0;
	align-items: stretch;
	background: var(--dv-surface);
	border: 1px solid var(--dv-rule);
	border-top: 0;
}

.dv-content-grid.has-sidepanel {
	grid-template-columns: minmax(220px, 270px) minmax(0, 1fr);
}

.dv-content-grid.has-sidepanel .dv-primary-content {
	border-left: 1px solid var(--dv-rule);
}

.dv-primary-content {
	min-width: 0;
	background: var(--dv-surface);
}

.dv-basic-entry,
.dv-doc,
.dv-result-card,
.dv-listing-head,
.dv-error-panel,
.dv-comments,
.dv-component-section {
	background: var(--dv-surface);
	border: 0;
}

.dv-basic-entry,
.dv-doc {
	padding: clamp(1.35rem, 4vw, 2.5rem);
}

.dv-basic-entry__header,
.dv-doc__header {
	margin-bottom: 1.5rem;
	padding-bottom: 1rem;
	border-bottom: 1px solid var(--dv-rule);
}

.dv-basic-entry__header::before,
.dv-doc__header::before {
	display: block;
	margin-bottom: .55rem;
	color: var(--dv-accent);
	font: 700 .61rem/1 var(--dv-mono);
	letter-spacing: .1em;
	text-transform: uppercase;
	content: "[ ARCHIVE RECORD ]";
}

.dv-basic-entry__header :where(h1, h2, h3, h4),
.dv-doc__header .entry-title {
	font-size: clamp(1.65rem, 4vw, 3rem);
	letter-spacing: -.02em;
}

.dv-basic-entry__content,
.dv-doc__body,
.dv-character__prose {
	font-size: 1rem;
	line-height: 1.75;
}

.dv-listing-head {
	margin: 0;
	padding: .9rem 1.1rem;
	text-align: center;
	background: var(--dv-panel-head);
	border-bottom: 1px solid var(--dv-rule);
}

.dv-listing-head :where(h1, h2, h3, h4) {
	margin: .25rem 0;
	font-size: .82rem;
	letter-spacing: .18em;
	text-transform: uppercase;
}

.dv-listing-head p,
.dv-listing-description {
	margin: 0;
	color: var(--dv-muted);
	font: 400 .7rem/1.5 var(--dv-mono);
}

.dv-doc__eyebrow,
.dv-result-card__meta,
.dv-kicker,
.dv-toc__title,
.entry-meta,
.dv-edit-link {
	font-family: var(--dv-mono);
}

.dv-results {
	display: block;
}

.dv-result-card {
	position: relative;
	padding: 1.25rem 1.35rem 1.35rem;
	border-bottom: 1px solid var(--dv-rule);
	transition: background var(--dv-transition), border-color var(--dv-transition);
}

.dv-result-card::after {
	position: absolute;
	right: .6rem;
	top: .45rem;
	color: var(--dv-muted);
	font: 700 .55rem/1 var(--dv-mono);
	content: "+";
}

.dv-result-card:hover {
	background: var(--dv-accent-soft);
	border-color: var(--dv-rule);
}

.dv-result-card__meta::before {
	margin-right: .65rem;
	color: var(--dv-accent);
	content: "[ RECORD ]";
}

.dv-result-card :where(h2, h3, h4) {
	margin: .5rem 0 .45rem;
	font-family: var(--dv-interface);
	font-size: 1.12rem;
	line-height: 1.25;
}

.dv-result-card :where(h2, h3, h4) a {
	color: var(--dv-heading);
	text-decoration: none;
}

.dv-result-card p {
	max-width: 72ch;
	margin-bottom: .75rem;
	color: var(--dv-muted);
	font-size: .9rem;
}

.dv-result-card__link,
.dv-codex-card__link {
	display: inline-flex;
	font-family: var(--dv-mono);
	font-size: .64rem;
	letter-spacing: .06em;
	text-transform: uppercase;
}

.dv-result-card__link::before,
.dv-codex-card__link::before { content: "[ "; }
.dv-result-card__link::after,
.dv-codex-card__link::after { content: " ]"; }

/* Sidepanel and widgets */
.dv-sidebar {
	background: var(--dv-surface);
}

.dv-sidebar__inner {
	top: 0;
	padding: 0;
	background: transparent;
	border: 0;
}

.dv-sidebar__label {
	margin: 0;
	padding: .85rem 1rem;
	color: var(--dv-accent);
	background: var(--dv-panel-head);
	border-bottom: 1px solid var(--dv-rule);
	font-family: var(--dv-mono);
	font-size: .61rem;
	letter-spacing: .11em;
	text-align: center;
}

.widget {
	margin: 0;
	padding: 1rem;
	border-bottom: 1px solid var(--dv-rule);
}

.widget-title {
	margin: -1rem -1rem .8rem;
	padding: .6rem 1rem;
	color: var(--dv-accent);
	background: var(--dv-panel-head);
	border-bottom: 1px solid var(--dv-rule);
	font: 800 .68rem/1.3 var(--dv-mono);
	letter-spacing: .1em;
	text-align: center;
	text-transform: uppercase;
}

.widget li {
	padding: .5rem 0;
	font-size: .82rem;
}

.widget a {
	color: var(--dv-text);
}

.widget a:hover {
	color: var(--dv-accent);
}

/* Controls, pagination and navigation */
.dv-pagination {
	margin: 0;
	padding: 1rem 1.25rem;
	border-top: 0;
}

.dv-pagination .nav-links {
	gap: 0;
}

.dv-pagination .page-numbers {
	min-width: 34px;
	height: 34px;
	margin-left: -1px;
	font: 700 .67rem/34px var(--dv-mono);
	background: var(--dv-surface);
	border-color: var(--dv-rule);
}

.dv-post-nav {
	margin: 0;
	border-top: 1px solid var(--dv-rule);
}

.dv-post-nav .nav-links {
	gap: 0;
}

.dv-post-nav a {
	height: 100%;
	border: 0;
}

.dv-post-nav .nav-next {
	border-left: 1px solid var(--dv-rule);
}

.nav-subtitle {
	font-family: var(--dv-mono);
	letter-spacing: .07em;
}

.dv-callout {
	background: color-mix(in srgb, var(--dv-accent-soft) 70%, var(--dv-surface));
}

.dv-badge,
.dv-record-strip span,
.dv-character__tags span {
	font-family: var(--dv-mono);
	letter-spacing: .05em;
	text-transform: uppercase;
}

.dv-empty-state,
.dv-error-panel {
	border: 1px dashed var(--dv-rule);
}

/* Codex and character records */
.dv-codex,
.dv-character {
	padding-block: 2rem 3rem;
}

.dv-codex__hero {
	margin-bottom: 1.5rem;
}

.dv-codex__metrics {
	gap: 0;
}

.dv-codex__metrics span {
	margin-left: -1px;
}

.dv-codex-grid {
	gap: 0;
	border-top: 1px solid var(--dv-rule);
	border-left: 1px solid var(--dv-rule);
}

.dv-codex-card {
	min-height: 230px;
	border: 0;
	border-right: 1px solid var(--dv-rule);
	border-bottom: 1px solid var(--dv-rule);
}

.dv-codex-card:hover {
	background: var(--dv-accent-soft);
}

.dv-codex-card__topline,
.dv-character__record-code,
.dv-character__classification,
.dv-character__epithet,
.dv-character__facts header span,
.dv-character__section-head span {
	font-family: var(--dv-mono);
}

.dv-character__hero {
	gap: 0;
	align-items: stretch;
	border: 1px solid var(--dv-rule);
}

.dv-character__portrait {
	border-right: 1px solid var(--dv-rule);
}

.dv-character__identity {
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding: clamp(1.25rem, 4vw, 2.5rem);
}

.dv-character__dossier {
	gap: 0;
	border-top: 1px solid var(--dv-rule);
	border-left: 1px solid var(--dv-rule);
}

.dv-character__facts,
.dv-character__section,
.dv-character__related {
	border: 0;
	border-right: 1px solid var(--dv-rule);
	border-bottom: 1px solid var(--dv-rule);
}

.dv-character__related {
	margin-top: 0;
	border-left: 1px solid var(--dv-rule);
}

.dv-character__stat-track {
	height: 6px;
}

.dv-character__abilities li {
	border-left: 2px solid var(--dv-character-accent);
}

.dv-toc__panel {
	border-color: var(--dv-rule);
}

/* Footer */
.dv-site-footer {
	background: var(--dv-surface);
	border-top: 1px solid var(--dv-rule);
}

.dv-footer-main {
	gap: 0;
	padding-block: 0;
	border-inline: 1px solid var(--dv-rule);
}

.dv-footer-brand {
	padding: 1.5rem;
	border-right: 1px solid var(--dv-rule);
}

.dv-footer-widgets {
	gap: 0;
}

.dv-footer-widget {
	border-right: 1px solid var(--dv-rule);
}

.dv-footer-widget:last-child {
	border-right: 0;
}

.dv-footer-widget .widget {
	height: 100%;
	margin: 0;
	border-bottom: 0;
}

.dv-footer-bottom {
	border-top: 1px solid var(--dv-rule);
}

.dv-footer-bottom__inner {
	min-height: 48px;
	border-inline: 1px solid var(--dv-rule);
	font-family: var(--dv-mono);
}

.dv-footer-copy {
	font-size: .64rem;
	letter-spacing: .04em;
	text-transform: uppercase;
}

.dv-footer-menu {
	gap: 0;
}

.dv-footer-menu a {
	padding: .4rem .6rem;
	font-family: var(--dv-mono);
	font-size: .64rem;
	text-transform: uppercase;
}

.dv-footer-menu a::before { content: "[ "; }
.dv-footer-menu a::after { content: " ]"; }

html[data-dvdocs-theme="dark"] body.dv-layout-linear-archive {
	--dv-bg: #080b16;
	--dv-bg-alt: #0d111f;
	--dv-surface: #0a0e19;
	--dv-surface-soft: #0d1324;
	--dv-border: rgba(137, 161, 188, .24);
	--dv-panel-head: #111622;
}

html[data-dvdocs-theme="light"] body.dv-layout-linear-archive {
	--dv-bg: #e9edf1;
	--dv-bg-alt: #eef1f4;
	--dv-surface: #f9fafb;
	--dv-surface-soft: #f3f5f7;
	--dv-border: rgba(17, 26, 43, .24);
	--dv-panel-head: #edf0f3;
}

body.dv-effects-off::before {
	display: none;
}

@media (max-width: 900px) {
	.dv-wire-strip__inner {
		grid-template-columns: 1fr auto;
	}

	.dv-wire-strip__site {
		display: none;
	}

	.dv-content-grid.has-sidepanel {
		grid-template-columns: 1fr;
	}

	.dv-content-grid.has-sidepanel .dv-primary-content {
		border-left: 0;
	}

	.dv-sidebar {
		border-bottom: 1px solid var(--dv-rule);
	}

	.dv-primary-nav .nav-menu > li {
		border-right: 0;
		border-bottom: 1px solid var(--dv-rule);
	}

	.dv-character__portrait {
		border-right: 0;
		border-bottom: 1px solid var(--dv-rule);
	}

	.dv-footer-brand {
		border-right: 0;
		border-bottom: 1px solid var(--dv-rule);
	}
}

@media (max-width: 600px) {
	.dv-wire-strip__date {
		font-size: .55rem;
	}

	.dv-header-top {
		padding: .7rem;
	}

	.dv-page-main {
		padding-bottom: 1.5rem;
	}

	.dv-content-grid,
	.dv-header-top,
	.dv-primary-bar__inner,
	.dv-secondary-nav,
	.dv-wire-strip__inner,
	.dv-footer-main,
	.dv-footer-bottom__inner {
		width: 100%;
		border-inline: 0;
	}

	.dv-basic-entry,
	.dv-doc,
	.dv-result-card {
		padding-inline: 1rem;
	}

	.dv-footer-widget {
		border-right: 0;
		border-bottom: 1px solid var(--dv-rule);
	}

	.dv-post-nav .nav-next {
		border-left: 0;
		border-top: 1px solid var(--dv-rule);
	}
}

@media print {
	.dv-wire-strip {
		display: none !important;
	}
}
