:root {
	--vs-tech-surface-texture: url("../images/rules/rule-panel-tech-texture.png");
	--vs-panel-gap: .75rem;
	--vs-panel-padding: 1.1rem;
	--vs-feature-panel-padding: 1.4rem;
	--vs-feature-panel-bleed: -1.4rem;
	--vs-feature-panel-width: 2.8rem;
	--vs-panel-inset: .55rem;
}

.vs-library,
.vs-detail {
	max-width: 1120px;
	margin: 0 auto;
	padding: clamp(2.5rem, 6vw, 5.5rem) 1.25rem;
}

.vs-library__intro,
.vs-detail header {
	max-width: 760px;
}

.vs-eyebrow {
	margin: 0 0 .7rem;
	color: var(--wp--preset--color--warning, #b51e27);
	font-size: .78rem;
	font-weight: 700;
	letter-spacing: .12em;
	text-transform: uppercase;
}

.vs-library h1,
.vs-detail h1 {
	margin: 0;
	font-size: clamp(2.6rem, 6vw, 5rem);
	line-height: .95;
}

.vs-library__intro > p:last-child,
.vs-detail__lead {
	max-width: 680px;
	font-size: 1.18rem;
	line-height: 1.55;
}

.vs-rule-filter {
	margin: 2.5rem 0 1.4rem;
	padding: var(--vs-panel-padding);
	border: 1px solid color-mix(in srgb, currentColor 28%, transparent);
	background: color-mix(in srgb, currentColor 4%, transparent);
}

.vs-rule-filter label {
	display: block;
	margin-bottom: .6rem;
	font-weight: 700;
}

.vs-rule-filter__controls {
	display: grid;
	grid-template-columns: minmax(0, 1fr) repeat(2, minmax(150px, .38fr)) auto;
	gap: var(--vs-panel-gap);
}

.vs-rule-filter input,
.vs-rule-filter select,
.vs-rule-filter button {
	min-height: 46px;
	padding: .65rem .8rem;
	border: 1px solid currentColor;
	border-radius: 0;
	font: inherit;
}

.vs-rule-filter input,
.vs-rule-filter select {
	border-color: rgba(240, 233, 218, .38);
	background: linear-gradient(135deg, rgba(7, 8, 10, .94), rgba(26, 29, 33, .9));
	box-shadow: inset 0 0 0 1px rgba(0, 0, 0, .45), inset 2px 0 0 rgba(181, 30, 39, .55);
	color: #f0e9da;
}

.vs-rule-filter input::placeholder { color: rgba(240, 233, 218, .56); }

.vs-rule-filter select {
	padding-right: 2.65rem;
	appearance: none;
	background: linear-gradient(45deg, transparent 50%, #e7787d 50%) calc(100% - 17px) 52% / 7px 7px no-repeat, linear-gradient(135deg, #e7787d 50%, transparent 50%) calc(100% - 11px) 52% / 7px 7px no-repeat, linear-gradient(135deg, rgba(7, 8, 10, .94), rgba(26, 29, 33, .9));
	cursor: pointer;
}

.vs-rule-filter select option { background: #16191d; color: #f0e9da; }

.vs-rule-filter input:hover,
.vs-rule-filter select:hover { border-color: rgba(231, 120, 125, .88); }

.vs-rule-filter input:focus-visible,
.vs-rule-filter select:focus-visible {
	outline: 3px solid var(--wp--preset--color--warning, #b51e27);
	outline-offset: 2px;
}

.vs-rule-filter button,
.vs-shop-handoff a {
	border: 0;
	background: var(--wp--preset--color--warning, #b51e27);
	color: #fff;
	font-weight: 700;
	cursor: pointer;
}

.vs-rule-filter button:hover,
.vs-shop-handoff a:hover { background: #8e1720; }

.vs-rule-quicknav {
	display: flex;
	flex-wrap: wrap;
	gap: .55rem;
	width: 100%;
	margin: 0 0 2.1rem;
	padding: 1rem 0;
	border-top: 1px solid color-mix(in srgb, currentColor 28%, transparent);
	border-bottom: 1px solid color-mix(in srgb, currentColor 28%, transparent);
}

.vs-rule-quicknav a {
	flex: 1 1 150px;
	padding: .68rem .8rem;
	border: 1px solid color-mix(in srgb, currentColor 44%, transparent);
	color: inherit;
	font-size: .83rem;
	font-weight: 700;
	line-height: 1.2;
	text-align: center;
	text-decoration: none;
}

.vs-rule-quicknav a:hover,
.vs-rule-quicknav a:focus-visible,
.vs-rule-quicknav a.is-active {
	border-color: var(--wp--preset--color--warning, #b51e27);
	background: var(--wp--preset--color--warning, #b51e27);
	color: #fff;
	outline: none;
}

.vs-results__count { color: color-mix(in srgb, currentColor 68%, transparent); }

.vs-rule-list,
.vs-related ul {
	margin: 0;
	padding: 0;
	list-style: none;
}

.vs-rule-list {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: var(--vs-panel-gap);
}

.vs-rule-list li {
	position: relative;
	isolation: isolate;
	overflow: hidden;
	border: 1px solid rgba(240, 233, 218, .25);
	background: linear-gradient(105deg, rgba(7, 8, 10, .97), rgba(18, 20, 24, .92)), var(--vs-rule-tech-texture) center / cover;
	box-shadow: inset 0 0 0 1px rgba(0, 0, 0, .5), 0 10px 22px rgba(0, 0, 0, .16);
	transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}

.vs-rule-list li::before { position: absolute; z-index: 0; inset: 0; content: ""; background: repeating-linear-gradient(0deg, rgba(255, 255, 255, .015) 0 1px, transparent 1px 4px), linear-gradient(90deg, rgba(181, 30, 39, .2), transparent 21%, transparent 82%, rgba(181, 30, 39, .1)); pointer-events: none; }
.vs-rule-list li::after { position: absolute; z-index: 0; top: .55rem; right: .55rem; bottom: .55rem; left: .55rem; content: ""; border: 1px solid rgba(240, 233, 218, .14); background: linear-gradient(90deg, #b51e27 0 34px, transparent 34px) top left / 104px 2px no-repeat, linear-gradient(270deg, #b51e27 0 34px, transparent 34px) bottom right / 104px 2px no-repeat, linear-gradient(180deg, rgba(240, 233, 218, .58) 0 17px, transparent 17px) top left / 2px 58px no-repeat, linear-gradient(0deg, rgba(240, 233, 218, .58) 0 17px, transparent 17px) bottom right / 2px 58px no-repeat; pointer-events: none; }

.vs-rule-list a {
	position: relative;
	z-index: 1;
	display: grid;
	gap: .45rem;
	min-height: 142px;
	padding: 1.1rem 1.2rem 1.2rem 1.35rem;
	color: inherit;
	text-decoration: none;
}

.vs-rule-list li:hover,
.vs-rule-list li:focus-within { border-color: rgba(231, 120, 125, .88); box-shadow: inset 0 0 0 1px rgba(181, 30, 39, .44), 0 16px 30px rgba(0, 0, 0, .28); transform: translateY(-2px); }
.vs-rule-list a:hover,
.vs-rule-list a:focus-visible { background: linear-gradient(90deg, rgba(181, 30, 39, .18), transparent 43%); outline: 2px solid #f0e9da; outline-offset: -5px; }

.vs-rule-list__category,
.vs-related span,
.vs-aliases { color: color-mix(in srgb, currentColor 65%, transparent); font-size: .82rem; }
.vs-rule-list__category { color: #e7787d; font-size: .68rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.vs-rule-list__category::before { display: inline-block; width: 18px; height: 2px; margin: 0 .45rem .18rem 0; background: #b51e27; content: ""; vertical-align: middle; }
.vs-rule-list strong { color: #fff; font-family: Georgia, serif; font-size: clamp(1.22rem, 2.1vw, 1.55rem); line-height: 1; }
.vs-rule-list strong + span { max-width: 62ch; color: rgba(240, 233, 218, .75); font-size: .87rem; line-height: 1.45; }
.vs-empty { padding: 2rem 0; }

.vs-crumbs {
	display: flex;
	flex-wrap: wrap;
	gap: .55rem;
	margin-bottom: 2.2rem;
	font-size: .86rem;
}

.vs-rule-version {
	display: flex;
	flex-wrap: wrap;
	gap: 1rem 2.25rem;
	margin: 2rem 0;
	padding: 1rem 0;
	border-top: 2px solid var(--wp--preset--color--warning, #b51e27);
	border-bottom: 1px solid color-mix(in srgb, currentColor 28%, transparent);
	font-size: .86rem;
}

.vs-rule-version span { max-width: 48ch; }
.vs-prose { max-width: 730px; font-size: 1.08rem; line-height: 1.7; }
.vs-prose img { display: block; max-width: 100%; height: auto; margin: 2rem 0; border: 1px solid color-mix(in srgb, currentColor 24%, transparent); }
.vs-related { max-width: 730px; margin-top: 3rem; padding-top: 1.5rem; border-top: 1px solid color-mix(in srgb, currentColor 30%, transparent); }
.vs-related h2 { margin-top: 0; }
.vs-related li { display: flex; flex-wrap: wrap; gap: .6rem 1rem; justify-content: space-between; padding: .9rem 0; border-bottom: 1px solid color-mix(in srgb, currentColor 20%, transparent); }
.vs-shop-handoff { margin-top: 2rem; }
.vs-shop-handoff a { display: inline-block; padding: .9rem 1.1rem; text-decoration: none; }

/* VoidSiege rules interface: worn tactical terminal rather than a copied knowledge-base layout. */
.vs-rule-detail { position: relative; isolation: isolate; margin-top: clamp(1.5rem, 4vw, 3rem); margin-bottom: clamp(1.5rem, 4vw, 3rem); overflow: hidden; border: 1px solid rgba(240, 233, 218, .26); background: linear-gradient(90deg, rgba(7, 8, 10, .96), rgba(14, 15, 18, .89)), var(--vs-rule-tech-texture) center / cover; box-shadow: 0 18px 48px rgba(0, 0, 0, .25), inset 0 0 0 1px rgba(0, 0, 0, .5); }
.vs-rule-detail > * { position: relative; z-index: 1; }
.vs-rule-detail::before { position: absolute; z-index: 0; top: 0; right: 0; bottom: 0; left: 0; content: ""; background: repeating-linear-gradient(0deg, rgba(255, 255, 255, .018) 0 1px, transparent 1px 4px), linear-gradient(90deg, rgba(181, 30, 39, .22), transparent 18%, transparent 82%, rgba(181, 30, 39, .12)); mix-blend-mode: screen; pointer-events: none; }
.vs-rule-detail::after { position: absolute; z-index: 1; top: .72rem; right: .72rem; bottom: .72rem; left: .72rem; content: ""; border: 1px solid rgba(240, 233, 218, .17); background: linear-gradient(90deg, #b51e27 0 54px, transparent 54px) top left / 210px 2px no-repeat, linear-gradient(270deg, #b51e27 0 54px, transparent 54px) bottom right / 210px 2px no-repeat, linear-gradient(180deg, rgba(240, 233, 218, .7) 0 24px, transparent 24px) top left / 2px 88px no-repeat, linear-gradient(0deg, rgba(240, 233, 218, .7) 0 24px, transparent 24px) bottom right / 2px 88px no-repeat; pointer-events: none; }
.vs-rule-detail .vs-crumbs { padding-top: .55rem; }
.vs-rule-detail .vs-rule-version { margin-top: 2.4rem; padding: .95rem 1.1rem; border: 1px solid rgba(240, 233, 218, .22); background: rgba(6, 7, 9, .58); }
.vs-rule-detail .vs-prose { position: relative; isolation: isolate; max-width: none; overflow: hidden; margin-top: 1.35rem; padding: clamp(1.35rem, 3vw, 2.35rem); border: 1px solid rgba(240, 233, 218, .25); background: linear-gradient(90deg, #b51e27 0 52px, transparent 52px) top left / 154px 2px no-repeat, linear-gradient(270deg, #b51e27 0 52px, transparent 52px) bottom right / 154px 2px no-repeat, linear-gradient(180deg, rgba(240, 233, 218, .62) 0 21px, transparent 21px) top left / 2px 72px no-repeat, linear-gradient(0deg, rgba(240, 233, 218, .62) 0 21px, transparent 21px) bottom right / 2px 72px no-repeat, linear-gradient(105deg, rgba(7, 8, 10, .98), rgba(18, 20, 24, .94)), var(--vs-rule-tech-texture) center / cover; box-shadow: inset 0 0 0 1px rgba(0, 0, 0, .54), inset 0 0 0 12px rgba(240, 233, 218, .025), inset 0 0 40px rgba(181, 30, 39, .06), 0 12px 24px rgba(0, 0, 0, .16); }
.vs-rule-detail .vs-prose::before { position: relative; z-index: 3; display: flex; align-items: center; min-height: 23px; margin: -.25rem 0 1.15rem; padding: 0 0 .65rem; border-bottom: 1px solid rgba(240, 233, 218, .2); color: #e7787d; content: "● LIVE RULE TRANSMISSION  //  SIGNAL LOCKED"; font-family: ui-monospace, SFMono-Regular, Consolas, monospace; font-size: clamp(.6rem, 1.2vw, .7rem); font-weight: 700; letter-spacing: .09em; line-height: 1.3; text-transform: uppercase; }
.vs-rule-detail .vs-prose::after { position: absolute; z-index: 2; inset: 0; content: ""; background: repeating-linear-gradient(0deg, rgba(238, 245, 234, .024) 0 1px, transparent 1px 4px), linear-gradient(90deg, rgba(181, 30, 39, .08), transparent 18%, transparent 82%, rgba(181, 30, 39, .055)); mix-blend-mode: screen; opacity: .42; pointer-events: none; animation: vs-rule-screen-interference 5.5s steps(6, end) infinite; }
.vs-rule-detail .vs-prose > * { position: relative; z-index: 1; }
.vs-rule-detail .vs-prose > :first-child { margin-top: 0; }
.vs-rule-detail .vs-prose > :last-child { margin-bottom: 0; }
@keyframes vs-rule-screen-interference { 0%, 100% { opacity: .3; background-position: 0 0, 0 0; } 16% { opacity: .48; background-position: 0 3px, 0 0; } 34% { opacity: .26; background-position: 0 -2px, 0 0; } 58% { opacity: .43; background-position: 0 5px, 0 0; } 77% { opacity: .34; background-position: 0 1px, 0 0; } }
@media (prefers-reduced-motion: reduce) { .vs-rule-detail .vs-prose::after { animation: none; } }

/* Optional, editor-managed video backgrounds. They remain decorative so that
   the normal designed layout, static artwork and every control still work
   without playback. */
.vs-video-zone { position: relative; isolation: isolate; overflow: hidden; }
.vs-background-video { position: absolute !important; z-index: 0 !important; inset: 0; overflow: hidden; pointer-events: none; }
.vs-background-video video { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center; }
.vs-background-video::after { position: absolute; z-index: 1; inset: 0; content: ""; background: rgba(4, 5, 7, var(--vs-background-darkness, .6)); }
.vs-video-zone > *:not(.vs-background-video):not(.vs-zone-background-image) { position: relative; z-index: 2; }
@media (prefers-reduced-motion: no-preference) { .vs-video-zone .vs-world__backdrop { opacity: 0; } }
@media (prefers-reduced-motion: reduce) { .vs-background-video { display: none; } }
.vs-rule-topics { display: flex; flex-wrap: wrap; align-items: center; gap: .65rem 1rem; margin: 1.25rem 0 0; padding: .85rem 1rem; border: 1px solid rgba(240, 233, 218, .18); background: rgba(7, 8, 10, .54); }
.vs-rule-topics__label { color: #e7787d; font-size: .7rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.vs-rule-topics__tags { display: flex; flex-wrap: wrap; gap: .45rem; }
.vs-rule-topic-tag { display: inline-flex; align-items: center; min-height: 28px; padding: .28rem .58rem; border: 1px solid rgba(240, 233, 218, .32); background: rgba(240, 233, 218, .06); color: #f0e9da; font-size: .74rem; font-weight: 700; letter-spacing: .045em; line-height: 1; text-decoration: none; }
.vs-rule-topic-tag::before { margin-right: .38rem; color: #b51e27; content: "#"; }
.vs-rule-topic-tag:hover, .vs-rule-topic-tag:focus-visible { border-color: #e7787d; background: rgba(181, 30, 39, .22); color: #fff; outline: 2px solid #f0e9da; outline-offset: 2px; }

.vs-rule-local-nav { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--vs-panel-gap); margin: 1.4rem 0; }
.vs-rule-local-nav__item { position: relative; isolation: isolate; display: flex; min-height: 104px; flex-direction: column; justify-content: space-between; overflow: hidden; padding: 1rem 1.05rem 1rem 1.18rem; border: 1px solid rgba(240, 233, 218, .25); background: linear-gradient(105deg, rgba(7, 8, 10, .97), rgba(18, 20, 24, .92)), var(--vs-rule-tech-texture) center / cover; box-shadow: inset 0 0 0 1px rgba(0, 0, 0, .5), 0 10px 22px rgba(0, 0, 0, .16); color: #f0e9da; text-decoration: none; transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease; }
.vs-rule-local-nav__item::before { position: absolute; z-index: 0; inset: 0; content: ""; background: repeating-linear-gradient(0deg, rgba(255, 255, 255, .015) 0 1px, transparent 1px 4px), linear-gradient(90deg, rgba(181, 30, 39, .2), transparent 42%, transparent 78%, rgba(181, 30, 39, .1)); pointer-events: none; }
.vs-rule-local-nav__item::after { position: absolute; z-index: 0; top: .55rem; right: .55rem; bottom: .55rem; left: .55rem; content: ""; border: 1px solid rgba(240, 233, 218, .14); background: linear-gradient(90deg, #b51e27 0 28px, transparent 28px) top left / 82px 2px no-repeat, linear-gradient(270deg, #b51e27 0 28px, transparent 28px) bottom right / 82px 2px no-repeat, linear-gradient(180deg, rgba(240, 233, 218, .58) 0 15px, transparent 15px) top left / 2px 48px no-repeat, linear-gradient(0deg, rgba(240, 233, 218, .58) 0 15px, transparent 15px) bottom right / 2px 48px no-repeat; pointer-events: none; }
.vs-rule-local-nav__item > * { position: relative; z-index: 1; }
.vs-rule-local-nav__item:not(.is-disabled):hover, .vs-rule-local-nav__item:not(.is-disabled):focus-visible { border-color: rgba(231, 120, 125, .88); box-shadow: inset 0 0 0 1px rgba(181, 30, 39, .44), 0 16px 30px rgba(0, 0, 0, .28); outline: 2px solid #f0e9da; outline-offset: -5px; transform: translateY(-2px); }
.vs-rule-local-nav__item.is-disabled { border-color: rgba(240, 233, 218, .15); border-left-color: rgba(181, 30, 39, .25); background: linear-gradient(105deg, rgba(7, 8, 10, .82), rgba(18, 20, 24, .7)), var(--vs-rule-tech-texture) center / cover; box-shadow: inset 0 0 0 1px rgba(0, 0, 0, .4); color: rgba(240, 233, 218, .43); cursor: not-allowed; }
.vs-rule-local-nav__item.is-disabled::before { opacity: .45; }
.vs-rule-local-nav__item.is-disabled::after { border-color: rgba(240, 233, 218, .1); opacity: .55; }
.vs-rule-local-nav__item > span { color: #e7787d; font-size: .7rem; font-weight: 700; letter-spacing: .11em; text-transform: uppercase; }
.vs-rule-local-nav strong { max-width: 24ch; font-family: Georgia, serif; font-size: 1.05rem; line-height: 1.05; }
.vs-rule-local-nav__index { border-top: 1px solid rgba(240, 233, 218, .25); }

.vs-rule-related { max-width: none; padding-top: 2.2rem; }
.vs-rule-related__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--vs-panel-gap); }
.vs-rule-related__grid a { display: flex; min-height: 180px; flex-direction: column; padding: var(--vs-panel-padding); border: 1px solid rgba(240, 233, 218, .26); background: rgba(10, 11, 14, .6); color: inherit; text-decoration: none; }
.vs-rule-related__grid a:hover, .vs-rule-related__grid a:focus-visible { border-color: #b51e27; background: rgba(181, 30, 39, .15); outline: 2px solid #f0e9da; outline-offset: 2px; }
.vs-rule-related__grid span { color: #e7787d; font-size: .7rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.vs-rule-related__grid strong { margin: auto 0 .75rem; font-family: Georgia, serif; font-size: 1.45rem; line-height: .95; }
.vs-rule-related__grid small { color: rgba(240, 233, 218, .68); line-height: 1.35; }

.vs-library .vs-rule-filter { position: relative; overflow: hidden; }
.vs-rule-quicknav { position: relative; isolation: isolate; box-sizing: border-box; gap: var(--vs-panel-gap); overflow: hidden; padding: calc(var(--vs-panel-inset) + .35rem); border: 1px solid rgba(240, 233, 218, .3); background: linear-gradient(105deg, rgba(7, 8, 10, .97), rgba(18, 20, 24, .92)), var(--vs-tech-surface-texture) center / cover; box-shadow: inset 0 0 0 1px rgba(0, 0, 0, .52), 0 10px 22px rgba(0, 0, 0, .16); }
.vs-rule-quicknav::before { position: relative; z-index: 1; width: 100%; padding: .65rem .85rem; border-bottom: 1px solid rgba(240, 233, 218, .24); color: #e7787d; content: "Rule index // browse by operational category"; font-size: .7rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.vs-rule-quicknav::after { position: absolute; z-index: 0; top: var(--vs-panel-inset); right: var(--vs-panel-inset); bottom: var(--vs-panel-inset); left: var(--vs-panel-inset); content: ""; border: 1px solid rgba(240, 233, 218, .13); background: linear-gradient(90deg, #b51e27 0 34px, transparent 34px) top left / 104px 2px no-repeat, linear-gradient(270deg, #b51e27 0 34px, transparent 34px) bottom right / 104px 2px no-repeat; pointer-events: none; }
.vs-rule-quicknav a { flex: 1 1 172px; margin: 0; border-color: rgba(240, 233, 218, .22); background: linear-gradient(135deg, rgba(255, 255, 255, .035), transparent); text-align: left; }
.vs-rule-quicknav a::after { float: right; color: #b51e27; content: "+"; font-size: 1.1rem; line-height: .8; }
.vs-rule-quicknav a:hover::after, .vs-rule-quicknav a:focus-visible::after, .vs-rule-quicknav a.is-active::after { color: #fff; }

.vs-site-header {
	position: relative;
	z-index: 4;
	border-bottom: 1px solid color-mix(in srgb, currentColor 14%, transparent);
	background: #111;
}

.vs-site-header__inner,
.vs-site-footer {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1.25rem;
	max-width: 1280px;
	margin: 0 auto;
	padding: .9rem 1.25rem;
}

.vs-wordmark {
	display: inline-flex;
	flex-direction: column;
	min-width: max-content;
	color: inherit;
	font-family: Georgia, serif;
	font-size: 1.42rem;
	font-weight: 700;
	line-height: .86;
	text-decoration: none;
}

.vs-brand-lockup { display: flex; align-items: center; gap: .7rem; }
.vs-wordmark__name { display: block; white-space: nowrap; }
.vs-wordmark__name em { color: var(--wp--preset--color--warning, #b51e27); font-style: normal; }
.vs-wordmark small { margin-top: .34rem; font-family: inherit; font-size: .5rem; font-weight: 400; letter-spacing: .13em; text-transform: uppercase; }

.vs-main-nav {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: .1rem .25rem;
}

.vs-main-nav a,
.vs-main-nav summary,
.vs-header-cta {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	padding: .55rem .75rem;
	color: inherit;
	font-size: .82rem;
	font-weight: 700;
	letter-spacing: .06em;
	text-decoration: none;
	text-transform: uppercase;
}

.vs-main-nav a:hover,
.vs-main-nav a:focus-visible,
.vs-main-nav summary:hover,
.vs-main-nav summary:focus-visible { color: var(--wp--preset--color--warning, #b51e27); }
.vs-nav-menu { position: relative; }
.vs-nav-menu summary { cursor: pointer; list-style: none; }
.vs-nav-menu summary::-webkit-details-marker { display: none; }
.vs-nav-menu summary::after { margin-left: .42rem; color: var(--wp--preset--color--warning, #b51e27); content: "+"; font-size: 1rem; line-height: .7; }
.vs-nav-menu[open] summary::after { content: "−"; }
.vs-nav-menu__panel { position: absolute; z-index: 20; top: calc(100% + .42rem); left: 0; display: grid; min-width: 190px; padding: .35rem; border: 1px solid rgba(240, 233, 218, .28); border-top: 3px solid #b51e27; background: #17191c; box-shadow: 0 16px 30px rgba(0, 0, 0, .38); }
.vs-nav-menu__panel a { min-height: 38px; padding: .55rem .7rem; border-bottom: 1px solid rgba(240, 233, 218, .1); font-size: .74rem; letter-spacing: .075em; white-space: nowrap; }
.vs-nav-menu__panel a:last-child { border-bottom: 0; }
.vs-nav-menu__panel a:hover,
.vs-nav-menu__panel a:focus-visible { background: rgba(181, 30, 39, .18); color: #fff; outline: none; }
.vs-main-nav__direct { white-space: nowrap; }
.vs-header-actions { display: flex; align-items: center; gap: .65rem; margin-left: auto; }
.vs-header-cta { background: var(--wp--preset--color--warning, #b51e27); color: #fff; }
.vs-header-cta:hover,
.vs-header-cta:focus-visible { background: #8e1720; color: #fff; }
.vs-header-newsletter {
	position: relative;
	overflow: hidden;
	border: 1px solid rgba(240, 233, 218, .32);
	background: linear-gradient(105deg, rgba(7, 8, 10, .96), rgba(30, 18, 21, .92)), var(--vs-tech-surface-texture) center / cover;
	box-shadow: inset 0 0 0 1px rgba(0, 0, 0, .42);
}
.vs-header-newsletter:hover,
.vs-header-newsletter:focus-visible { border-color: #f0e9da; background: linear-gradient(90deg, rgba(181, 30, 39, .48), rgba(25, 15, 18, .95) 60%), var(--vs-tech-surface-texture) center / cover; }
.vs-brand-mark {
	display: grid;
	width: 58px;
	height: 58px;
	place-items: center;
}
.vs-brand-mark img { display: block; width: 100%; height: 100%; object-fit: cover; }
.vs-brand-mark:hover,
.vs-brand-mark:focus-visible { outline: 2px solid var(--wp--preset--color--warning, #b51e27); outline-offset: 2px; }

.vs-home { overflow: hidden; }
.vs-hero,
.vs-command,
.vs-paths,
.vs-armies,
.vs-world,
.vs-community { padding: clamp(4rem, 9vw, 9rem) max(1.25rem, calc((100vw - 1180px) / 2)); }


.vs-hero {
	position: relative;
	isolation: isolate;
	display: grid;
	grid-template-columns: minmax(0, 1.05fr) minmax(300px, .95fr);
	align-items: stretch;
	min-height: min(760px, calc(100vh - 74px));
	padding-top: clamp(1.25rem, 3vw, 2.25rem);
	padding-bottom: clamp(1.25rem, 3vw, 2.25rem);
	gap: var(--vs-panel-gap);
	background: radial-gradient(circle at 87% 18%, rgba(181, 30, 39, .26), transparent 31%), linear-gradient(118deg, rgba(4, 5, 7, .985), rgba(20, 22, 26, .92)), var(--vs-tech-surface-texture) center / cover;
}

.vs-hero::before { display: none; }
.vs-hero > * { position: relative; z-index: 1; }
.vs-hero__copy { position: relative; isolation: isolate; display: flex; min-height: clamp(420px, 42vw, 600px); flex-direction: column; justify-content: center; overflow: hidden; padding: var(--vs-feature-panel-padding); border: 1px solid rgba(240, 233, 218, .25); background: linear-gradient(105deg, rgba(7, 8, 10, .92), rgba(18, 20, 24, .86)), var(--vs-tech-surface-texture) center / cover; box-shadow: inset 0 0 0 1px rgba(0, 0, 0, .52), 0 12px 24px rgba(0, 0, 0, .2); }
.vs-hero__copy::before { position: absolute; z-index: 0; inset: var(--vs-panel-inset); content: ""; border: 1px solid rgba(240, 233, 218, .13); background: linear-gradient(90deg, #b51e27 0 34px, transparent 34px) top left / 104px 2px no-repeat, linear-gradient(270deg, #b51e27 0 34px, transparent 34px) bottom right / 104px 2px no-repeat, linear-gradient(180deg, rgba(240, 233, 218, .58) 0 17px, transparent 17px) top left / 2px 58px no-repeat, linear-gradient(0deg, rgba(240, 233, 218, .58) 0 17px, transparent 17px) bottom right / 2px 58px no-repeat; pointer-events: none; }
.vs-hero__copy::after { position: absolute; z-index: 0; inset: 0; content: ""; background: repeating-linear-gradient(0deg, rgba(255, 255, 255, .014) 0 1px, transparent 1px 4px), linear-gradient(90deg, rgba(181, 30, 39, .13), transparent 25%, transparent 84%, rgba(181, 30, 39, .06)); pointer-events: none; }
.vs-hero__copy > * { position: relative; z-index: 1; }

.vs-hero h1 { max-width: 800px; margin: 0; font-size: clamp(3.5rem, 8vw, 7.8rem); letter-spacing: -.055em; line-height: .82; }
.vs-hero__lead { max-width: 650px; margin: 1.8rem 0 2rem; font-size: clamp(1.1rem, 2vw, 1.42rem); line-height: 1.55; }
.vs-actions { display: flex; flex-wrap: wrap; gap: var(--vs-panel-gap); }
.vs-button { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: .85rem 1.15rem; background: var(--wp--preset--color--warning, #b51e27); color: #fff; font-weight: 700; text-decoration: none; }
.vs-button:hover,
.vs-button:focus-visible { background: #8e1720; color: #fff; }
.vs-button--quiet { border: 1px solid color-mix(in srgb, currentColor 50%, transparent); background: transparent; color: inherit; }
.vs-button--quiet:hover,
.vs-button--quiet:focus-visible { border-color: var(--wp--preset--color--warning, #b51e27); background: transparent; color: var(--wp--preset--color--warning, #b51e27); }
.wp-block-button.vs-button .wp-block-button__link { min-height: inherit; padding: 0; border: 0; border-radius: 0; background: transparent; color: inherit; font: inherit; }
.wp-block-button.vs-button .wp-block-button__link:hover,
.wp-block-button.vs-button .wp-block-button__link:focus-visible { background: transparent; color: inherit; }

/* Contact Us: native WordPress mail form inside the shared tactical shell. */
.vs-contact { width: min(100% - 2.5rem, var(--wp--style--global--content-size, 1120px)); margin: 0 auto; padding: 3.2rem 0 5rem; }
.vs-contact__intro { max-width: 720px; margin: 0 0 1.5rem; }
.vs-contact__intro h1 { margin: .2rem 0 .7rem; font-size: clamp(2.3rem, 5vw, 4.6rem); }
.vs-contact__intro > p:last-child { max-width: 58ch; color: rgba(240, 233, 218, .82); font-size: 1.04rem; line-height: 1.65; }
.vs-contact__panel { position: relative; isolation: isolate; display: grid; grid-template-columns: minmax(220px, .76fr) minmax(0, 1.24fr); gap: var(--vs-panel-gap); overflow: hidden; padding: var(--vs-panel-inset); border: 1px solid rgba(240, 233, 218, .3); background: linear-gradient(105deg, rgba(16, 7, 9, .97), rgba(16, 19, 23, .96)), var(--vs-tech-surface-texture) center / cover; box-shadow: inset 0 0 0 1px rgba(0, 0, 0, .55), 0 16px 34px rgba(0, 0, 0, .25); }
.vs-contact__panel::before { position: absolute; z-index: 0; inset: var(--vs-panel-inset); content: ""; border: 1px solid rgba(240, 233, 218, .14); background: linear-gradient(90deg, #b51e27 0 34px, transparent 34px) top left / 104px 2px no-repeat, linear-gradient(270deg, #b51e27 0 34px, transparent 34px) bottom right / 104px 2px no-repeat, linear-gradient(180deg, rgba(240, 233, 218, .58) 0 15px, transparent 15px) top left / 2px 48px no-repeat, linear-gradient(0deg, rgba(240, 233, 218, .58) 0 15px, transparent 15px) bottom right / 2px 48px no-repeat; pointer-events: none; }
.vs-contact__panel > * { position: relative; z-index: 1; }
.vs-contact__panel-copy { padding: .75rem 1rem; border-right: 1px solid rgba(240, 233, 218, .15); }
.vs-contact__panel-copy h2 { margin: .3rem 0 .85rem; font-size: clamp(1.55rem, 3vw, 2.3rem); }
.vs-contact__panel-copy p:last-child { max-width: 30ch; color: rgba(240, 233, 218, .76); line-height: 1.6; }
.vs-contact__form-wrap { padding: .75rem 1rem; }
.vs-contact__form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .85rem 1rem; }
.vs-contact__form p { margin: 0; }
.vs-contact__form p:not(.vs-contact__trap) { grid-column: 1 / -1; }
.vs-contact__form label { display: block; margin: 0 0 .42rem; color: #e7787d; font-size: .72rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.vs-contact__form input, .vs-contact__form textarea { box-sizing: border-box; width: 100%; border: 1px solid rgba(240, 233, 218, .32); border-radius: 0; background: rgba(7, 9, 11, .88); box-shadow: inset 0 0 0 1px rgba(0, 0, 0, .42); color: #f0e9da; font: inherit; padding: .72rem .8rem; }
.vs-contact__form textarea { min-height: 180px; resize: vertical; line-height: 1.52; }
.vs-contact__form input:focus, .vs-contact__form textarea:focus { border-color: #e7787d; outline: 2px solid rgba(240, 233, 218, .75); outline-offset: 2px; }
.vs-contact__submit { margin-top: .15rem !important; text-align: right; }
.vs-contact__submit .vs-button { border: 1px solid #d6343e; border-radius: 0; cursor: pointer; font: inherit; text-transform: uppercase; letter-spacing: .07em; }
.vs-contact__notice { margin: 0 0 1rem; padding: .8rem .9rem; border: 1px solid rgba(240, 233, 218, .3); font-weight: 700; }
.vs-contact__notice--success { border-left: 4px solid #67ba7a; background: rgba(28, 87, 45, .36); }
.vs-contact__notice--error { border-left: 4px solid #e23a43; background: rgba(120, 20, 28, .35); }
.vs-contact__trap { position: absolute !important; left: -10000px !important; width: 1px !important; height: 1px !important; overflow: hidden !important; }

/* Editable shipping, returns and refunds policy. */
.vs-policy { position: relative; isolation: isolate; box-sizing: border-box; width: min(100% - 2.5rem, var(--wp--style--global--content-size, 1120px)); margin: 3rem auto 5rem; padding: calc(var(--vs-panel-inset) + 1.5rem); border: 1px solid rgba(240, 233, 218, .3); background: linear-gradient(105deg, rgba(7, 8, 10, .97), rgba(18, 20, 24, .92)), var(--vs-tech-surface-texture) center / cover; box-shadow: inset 0 0 0 1px rgba(0, 0, 0, .52), 0 10px 22px rgba(0, 0, 0, .16); }
.vs-policy::before { position: absolute; z-index: 0; inset: var(--vs-panel-inset); content: ""; border: 1px solid rgba(240, 233, 218, .14); background: linear-gradient(90deg, #b51e27 0 34px, transparent 34px) top left / 104px 2px no-repeat, linear-gradient(270deg, #b51e27 0 34px, transparent 34px) bottom right / 104px 2px no-repeat, linear-gradient(180deg, rgba(240, 233, 218, .58) 0 15px, transparent 15px) top left / 2px 48px no-repeat, linear-gradient(0deg, rgba(240, 233, 218, .58) 0 15px, transparent 15px) bottom right / 2px 48px no-repeat; pointer-events: none; }
.vs-policy > * { position: relative; z-index: 1; }
.vs-policy h1 { margin: .25rem 0 1.7rem; font-size: clamp(2.1rem, 5vw, 4rem); }
.vs-policy .wp-block-post-content { max-width: 820px; }
.vs-policy .wp-block-post-content h2 { margin: 2.1rem 0 .7rem; padding-top: .7rem; border-top: 1px solid rgba(240, 233, 218, .17); color: #f0e9da; font-size: clamp(1.3rem, 2vw, 1.75rem); }
.vs-policy .wp-block-post-content p { color: rgba(240, 233, 218, .88); line-height: 1.72; }
.vs-policy .wp-block-post-content a { color: #e7787d; }

/* Classic Editor content composer. Editors manage the content, while these
   shared rules keep every added section inside the established tactical system. */
.vs-composer-sections { display: grid; gap: var(--vs-panel-gap); width: min(100% - 2.5rem, var(--wp--style--global--content-size, 1120px)); margin: 3rem auto 5rem; }
.vs-home > .vs-composer-sections, .vs-journey > .vs-composer-sections { width: min(100% - 2.5rem, 1120px); margin: 0 auto 4rem; }
.vs-contact > .vs-composer-sections { margin-top: 0; }
.vs-directory > .vs-composer-sections { width: 100%; margin: 3rem 0 0; }
.vs-composer-section { position: relative; isolation: isolate; overflow: hidden; padding: calc(var(--vs-panel-inset) + 1.1rem); border: 1px solid rgba(240, 233, 218, .25); background: linear-gradient(105deg, rgba(7, 8, 10, .97), rgba(18, 20, 24, .92)), var(--vs-tech-surface-texture) center / cover; box-shadow: inset 0 0 0 1px rgba(0, 0, 0, .52), 0 10px 22px rgba(0, 0, 0, .16); }
.vs-composer-section::before { position: absolute; z-index: 0; inset: 0; content: ""; background: repeating-linear-gradient(0deg, rgba(255, 255, 255, .014) 0 1px, transparent 1px 4px), linear-gradient(90deg, rgba(181, 30, 39, .17), transparent 24%, transparent 83%, rgba(181, 30, 39, .08)); pointer-events: none; }
.vs-composer-section::after { position: absolute; z-index: 0; inset: var(--vs-panel-inset); content: ""; border: 1px solid rgba(240, 233, 218, .13); background: linear-gradient(90deg, #b51e27 0 34px, transparent 34px) top left / 104px 2px no-repeat, linear-gradient(270deg, #b51e27 0 34px, transparent 34px) bottom right / 104px 2px no-repeat, linear-gradient(180deg, rgba(240, 233, 218, .58) 0 17px, transparent 17px) top left / 2px 58px no-repeat, linear-gradient(0deg, rgba(240, 233, 218, .58) 0 17px, transparent 17px) bottom right / 2px 58px no-repeat; pointer-events: none; }
.vs-composer-section > * { position: relative; z-index: 1; }
.vs-composer-section h2 { margin: .15rem 0 .85rem; font-size: clamp(1.8rem, 3.6vw, 3.45rem); line-height: .98; }
.vs-composer-section p { max-width: 70ch; line-height: 1.65; }
.vs-composer-section__actions { display: flex; flex-wrap: wrap; gap: var(--vs-panel-gap); margin-top: 1.5rem; }
.vs-composer-section--media { display: grid; grid-template-columns: minmax(0, 1fr) minmax(260px, .75fr); gap: clamp(1.2rem, 4vw, 3rem); align-items: center; }
.vs-composer-section__media { min-height: 250px; margin: 0; overflow: hidden; border: 1px solid rgba(240, 233, 218, .25); background: #090a0c; }
.vs-composer-section__media img { display: block; width: 100%; height: 100%; min-height: 250px; object-fit: cover; }
.vs-composer-section--cards, .vs-composer-section--listing { padding: calc(var(--vs-panel-inset) + 1.1rem); }
.vs-composer-section--cards > header, .vs-composer-section--listing > header { max-width: 720px; }
.vs-composer-section--cards .vs-directory-grid, .vs-composer-section--listing .vs-directory-grid { margin-top: 1.5rem; }
.vs-composer-section--embed { display: grid; place-items: center; }
.vs-composer-section--embed > * { width: 100%; }
.vs-composer-section__empty { margin: 0; padding: 1rem; border: 1px solid rgba(240, 233, 218, .16); color: rgba(240, 233, 218, .72); }

@media (max-width: 720px) {
	.vs-composer-sections, .vs-home > .vs-composer-sections, .vs-journey > .vs-composer-sections { width: min(100% - 1.5rem, 1120px); }
	.vs-composer-section--media { grid-template-columns: 1fr; }
	.vs-composer-section__media, .vs-composer-section__media img { min-height: 210px; }
}

/* Data-driven faction cards can use their own visual accent without changing
   the common tactical card layout. */
.vs-faction-directory-card { border-color: color-mix(in srgb, var(--vs-faction-accent) 70%, rgba(240, 233, 218, .25)); }
.vs-faction-directory-card::before { background: repeating-linear-gradient(0deg, rgba(255, 255, 255, .014) 0 1px, transparent 1px 4px), linear-gradient(90deg, color-mix(in srgb, var(--vs-faction-accent) 42%, transparent), transparent 24%, transparent 83%, color-mix(in srgb, var(--vs-faction-accent) 25%, transparent)); }
.vs-faction-directory-card::after { background: linear-gradient(90deg, var(--vs-faction-accent) 0 34px, transparent 34px) top left / 104px 2px no-repeat, linear-gradient(270deg, var(--vs-faction-accent) 0 34px, transparent 34px) bottom right / 104px 2px no-repeat, linear-gradient(180deg, rgba(240, 233, 218, .58) 0 17px, transparent 17px) top left / 2px 58px no-repeat, linear-gradient(0deg, rgba(240, 233, 218, .58) 0 17px, transparent 17px) bottom right / 2px 58px no-repeat; }
.vs-faction-directory-card__image { position: relative; z-index: 1; display: block; margin-bottom: 1.3rem; }
.vs-faction-directory-card__image .vs-directory-grid__image { display: block; width: 100%; margin: 0; }
.vs-faction-directory-card h2 a:hover, .vs-faction-directory-card h2 a:focus-visible { color: var(--vs-faction-accent); }

/* A recovered, tactical 404 rather than WordPress's default blank sector. */
.vs-not-found { box-sizing: border-box; width: min(100% - 2.5rem, var(--wp--style--global--content-size, 1120px)); margin: 3rem auto 5rem; }
.vs-not-found__panel { position: relative; isolation: isolate; overflow: hidden; min-height: 360px; padding: clamp(2rem, 7vw, 5rem) calc(var(--vs-panel-inset) + 1.5rem); border: 1px solid rgba(240, 233, 218, .3); background: linear-gradient(105deg, rgba(7, 8, 10, .97), rgba(29, 15, 18, .92)), var(--vs-tech-surface-texture) center / cover; box-shadow: inset 0 0 0 1px rgba(0, 0, 0, .52), 0 10px 22px rgba(0, 0, 0, .16); }
.vs-not-found__panel::before { position: absolute; z-index: -1; top: 50%; right: 3%; color: rgba(214, 42, 51, .09); content: "404"; font-family: var(--wp--preset--font-family--heading, serif); font-size: clamp(9rem, 31vw, 25rem); font-weight: 700; line-height: .7; transform: translateY(-50%); user-select: none; }
.vs-not-found__panel::after { position: absolute; z-index: 0; inset: var(--vs-panel-inset); content: ""; border: 1px solid rgba(240, 233, 218, .14); background: linear-gradient(90deg, #b51e27 0 34px, transparent 34px) top left / 104px 2px no-repeat, linear-gradient(270deg, #b51e27 0 34px, transparent 34px) bottom right / 104px 2px no-repeat, linear-gradient(180deg, rgba(240, 233, 218, .58) 0 15px, transparent 15px) top left / 2px 48px no-repeat, linear-gradient(0deg, rgba(240, 233, 218, .58) 0 15px, transparent 15px) bottom right / 2px 48px no-repeat; pointer-events: none; }
.vs-not-found__content { position: relative; z-index: 1; max-width: 670px; }
.vs-not-found h1 { margin: .25rem 0 1rem; font-size: clamp(2.4rem, 6vw, 5rem); }
.vs-not-found p { max-width: 56ch; color: rgba(240, 233, 218, .9); font-size: clamp(1rem, 1.8vw, 1.2rem); line-height: 1.65; }
.vs-not-found__actions { display: flex; flex-wrap: wrap; gap: var(--vs-panel-gap); margin-top: 2rem; }

/* Build Guide PDF catalogue. */
.vs-build-guides { padding-bottom: 5rem; }
.vs-build-guides__search, .vs-unit-filter { position: relative; isolation: isolate; overflow: hidden; margin: 1.6rem 0 .7rem; padding: var(--vs-panel-inset); border: 1px solid rgba(240, 233, 218, .3); background: linear-gradient(105deg, rgba(7, 8, 10, .97), rgba(18, 20, 24, .92)), var(--vs-tech-surface-texture) center / cover; box-shadow: inset 0 0 0 1px rgba(0, 0, 0, .52), 0 10px 22px rgba(0, 0, 0, .16); }
.vs-build-guides__search::after, .vs-unit-filter::after { position: absolute; z-index: 0; inset: var(--vs-panel-inset); content: ""; border: 1px solid rgba(240, 233, 218, .14); background: linear-gradient(90deg, #b51e27 0 34px, transparent 34px) top left / 104px 2px no-repeat, linear-gradient(270deg, #b51e27 0 34px, transparent 34px) bottom right / 104px 2px no-repeat, linear-gradient(180deg, rgba(240, 233, 218, .58) 0 15px, transparent 15px) top left / 2px 48px no-repeat, linear-gradient(0deg, rgba(240, 233, 218, .58) 0 15px, transparent 15px) bottom right / 2px 48px no-repeat; pointer-events: none; }
.vs-build-guides__search > *, .vs-unit-filter > * { position: relative; z-index: 1; }
.vs-build-guides__search > label, .vs-unit-filter > label { display: block; margin: .35rem .55rem .72rem; color: #f0e9da; font-size: .82rem; font-weight: 700; }
.vs-build-guides__search > div, .vs-unit-filter > div { display: grid; grid-template-columns: minmax(0, 1fr) minmax(170px, .4fr) auto; gap: .75rem; padding: 0 .55rem .55rem; }
.vs-build-guides__search input, .vs-build-guides__search select, .vs-unit-filter input, .vs-unit-filter select { box-sizing: border-box; min-height: 48px; width: 100%; border: 1px solid rgba(240, 233, 218, .32); border-radius: 0; background: rgba(7, 9, 11, .88); color: #f0e9da; font: inherit; padding: .7rem .78rem; }
.vs-build-guides__search select option, .vs-unit-filter select option { background: #17191c; color: #f0e9da; }
.vs-build-guides__search input:focus, .vs-build-guides__search select:focus, .vs-unit-filter input:focus, .vs-unit-filter select:focus { border-color: #e7787d; outline: 2px solid rgba(240, 233, 218, .75); outline-offset: 2px; }
.vs-build-guides__search .vs-button, .vs-unit-filter .vs-button { border: 1px solid #d6343e; border-radius: 0; cursor: pointer; font: inherit; text-transform: uppercase; letter-spacing: .07em; }
.vs-build-guides__status { margin: .9rem 0 1rem; color: rgba(240, 233, 218, .72); font-size: .84rem; }
.vs-build-guides__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--vs-panel-gap); }
.vs-build-guide-card { position: relative; isolation: isolate; display: flex; min-height: 315px; flex-direction: column; overflow: hidden; padding: var(--vs-panel-inset); border: 1px solid rgba(240, 233, 218, .3); background: linear-gradient(105deg, rgba(7, 8, 10, .97), rgba(18, 20, 24, .92)), var(--vs-tech-surface-texture) center / cover; box-shadow: inset 0 0 0 1px rgba(0, 0, 0, .52), 0 10px 22px rgba(0, 0, 0, .16); }
.vs-build-guide-card::before { position: absolute; z-index: 0; inset: var(--vs-panel-inset); content: ""; border: 1px solid rgba(240, 233, 218, .14); background: linear-gradient(90deg, #b51e27 0 26px, transparent 26px) top left / 76px 2px no-repeat, linear-gradient(270deg, #b51e27 0 26px, transparent 26px) bottom right / 76px 2px no-repeat, linear-gradient(180deg, rgba(240, 233, 218, .58) 0 14px, transparent 14px) top left / 2px 44px no-repeat, linear-gradient(0deg, rgba(240, 233, 218, .58) 0 14px, transparent 14px) bottom right / 2px 44px no-repeat; pointer-events: none; }
.vs-build-guide-card > * { position: relative; z-index: 1; padding-right: .75rem; padding-left: .75rem; }
.vs-build-guide-card__preview { display: block; padding-top: .75rem; text-decoration: none; }
.vs-build-guide-card__preview img { display: block; box-sizing: border-box; width: 100%; aspect-ratio: 16 / 9; border: 1px solid rgba(240, 233, 218, .25); background: #090a0d; object-fit: cover; object-position: top center; transition: border-color .18s ease, filter .18s ease, transform .18s ease; }
.vs-build-guide-card__preview:hover img, .vs-build-guide-card__preview:focus-visible img { border-color: #e7787d; filter: brightness(1.1); transform: scale(1.012); }
.vs-build-guide-card__preview:focus-visible { outline: 2px solid #f0e9da; outline-offset: 2px; }
.vs-build-guide-card__top { padding-top: .8rem; border-bottom: 1px solid rgba(240, 233, 218, .14); }
.vs-build-guide-card__top .vs-eyebrow { margin-bottom: .4rem; }
.vs-build-guide-card h2 { margin: 0 0 .45rem; font-size: clamp(1.35rem, 2.4vw, 1.8rem); line-height: 1.05; }
.vs-build-guide-card__product { margin: 0 0 .8rem; color: #e7787d; font-size: .78rem; font-weight: 700; letter-spacing: .06em; }
.vs-build-guide-card__body { flex: 1; padding-top: .8rem; padding-bottom: .8rem; }
.vs-build-guide-card__body > p { margin: 0; color: rgba(240, 233, 218, .84); line-height: 1.53; }
.vs-build-guide-card dl { display: flex; gap: .75rem; margin: .85rem 0 0; }
.vs-build-guide-card dl div { min-width: 0; }
.vs-build-guide-card dt { color: #e7787d; font-size: .62rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.vs-build-guide-card dd { margin: .15rem 0 0; font-size: .78rem; }
.vs-build-guide-card__action { padding-bottom: .8rem; }
.vs-build-guide-card__action .vs-button { box-sizing: border-box; width: 100%; min-height: 42px; padding: .65rem .75rem; border: 1px solid #d6343e; border-radius: 0; font-size: .73rem; letter-spacing: .06em; text-transform: uppercase; }
.vs-build-guide-card__unavailable { display: block; padding: .7rem 0; border-top: 1px solid rgba(240, 233, 218, .18); color: rgba(240, 233, 218, .54); font-size: .75rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.vs-build-guides__empty { position: relative; padding: 2rem; border: 1px solid rgba(240, 233, 218, .22); background: rgba(12, 14, 17, .7); }
.vs-build-guides__empty h2 { margin-top: 0; }

.vs-hero__art {
	position: relative;
	display: grid;
	place-items: center;
	aspect-ratio: auto;
	min-height: clamp(420px, 42vw, 600px);
	border: 1px solid rgba(240, 233, 218, .3);
	background: #08090b;
	box-shadow: inset 0 0 0 1px rgba(0, 0, 0, .6), 0 18px 36px rgba(0, 0, 0, .28);
	overflow: hidden;
}

.vs-hero__art img { position: relative; z-index: 0; width: 100%; height: 100%; object-fit: cover; object-position: 62% center; filter: contrast(1.08) saturate(.82) brightness(.82); }
.vs-hero__art::before { position: absolute; z-index: 1; inset: var(--vs-panel-inset); content: ""; border: 1px solid rgba(240, 233, 218, .17); background: linear-gradient(90deg, #b51e27 0 34px, transparent 34px) top left / 106px 2px no-repeat, linear-gradient(270deg, #b51e27 0 34px, transparent 34px) bottom right / 106px 2px no-repeat, linear-gradient(180deg, rgba(240, 233, 218, .58) 0 17px, transparent 17px) top left / 2px 58px no-repeat, linear-gradient(0deg, rgba(240, 233, 218, .58) 0 17px, transparent 17px) bottom right / 2px 58px no-repeat; pointer-events: none; }
.vs-hero__art::after { position: absolute; z-index: 1; inset: 0; background: linear-gradient(180deg, rgba(0, 0, 0, .02), rgba(0, 0, 0, .46)); content: ""; pointer-events: none; }

.vs-command { color: #f0e9da; background: radial-gradient(circle at 12% 12%, rgba(181, 30, 39, .19), transparent 26%), linear-gradient(108deg, rgba(6, 7, 9, .98), rgba(25, 28, 32, .96)), var(--vs-tech-surface-texture) center / cover; }
.vs-section-heading { max-width: 690px; }
.vs-section-heading h2,
.vs-paths h2,
.vs-world h2,
.vs-community h2 { margin: 0; font-size: clamp(2.35rem, 5.2vw, 5rem); line-height: .94; letter-spacing: -.04em; }
.vs-section-heading > p:last-child { font-size: 1.16rem; line-height: 1.6; }
.vs-command-loop { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--vs-panel-gap); margin: clamp(2.5rem, 6vw, 5rem) 0 1.5rem; padding: 0; list-style: none; border: 0; }
.vs-command-loop li { min-height: 210px; padding: var(--vs-feature-panel-padding); border: 1px solid rgba(21, 23, 26, .35); }
.vs-command-loop li:last-child { border-right: 1px solid rgba(21, 23, 26, .35); }
.vs-command-loop span { color: #b51e27; font-weight: 700; letter-spacing: .1em; }
.vs-command-loop h3 { margin: 2.6rem 0 .5rem; font-size: 1.35rem; }
.vs-command-loop.wp-block-columns { display: grid; }
.vs-command-loop .wp-block-column { min-height: 210px; padding: var(--vs-feature-panel-padding); border: 1px solid rgba(21, 23, 26, .35); }
.vs-command-loop .wp-block-column strong { color: #b51e27; font-weight: 700; letter-spacing: .1em; }
.vs-command-loop .wp-block-column h3 { margin: 2.6rem 0 .5rem; font-size: 1.35rem; }
.vs-text-link a { color: inherit; font-weight: 700; text-decoration-thickness: 2px; text-underline-offset: .3em; }

.vs-paths { background: #17191c; }
.vs-path-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--vs-panel-gap); margin-top: 2.6rem; border: 0; }
.vs-path-grid.wp-block-columns { display: grid; }
.vs-path-grid .wp-block-column { display: flex; min-height: 260px; flex-direction: column; gap: 1rem; padding: 1.5rem; border: 1px solid rgba(240, 233, 218, .32); }
.vs-path-grid .wp-block-column h3 { margin: 0; font-family: Georgia, serif; font-size: 2rem; line-height: 1; }
.vs-path-grid .wp-block-column > p:last-child { margin-top: auto; }
.vs-path-grid .wp-block-column a { color: inherit; font-weight: 700; text-underline-offset: .25em; }
.vs-path-grid a { display: flex; min-height: 260px; flex-direction: column; gap: 1rem; padding: 1.5rem; border: 1px solid rgba(240, 233, 218, .32); color: inherit; text-decoration: none; }
.vs-path-grid a:last-child { border-right: 1px solid rgba(240, 233, 218, .32); }
.vs-path-grid a:hover,
.vs-path-grid a:focus-visible { background: rgba(240, 233, 218, .08); outline: 2px solid var(--wp--preset--color--warning, #b51e27); outline-offset: -2px; }
.vs-path-grid span { color: var(--wp--preset--color--warning, #b51e27); font-size: .76rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.vs-path-grid strong { font-family: Georgia, serif; font-size: 2rem; line-height: 1; }
.vs-path-grid p { max-width: 28ch; margin: auto 0 0; color: rgba(240, 233, 218, .8); }
.vs-path-grid__icon { display: block; width: 74px; height: 74px; margin-bottom: .4rem; object-fit: contain; filter: drop-shadow(0 0 12px rgba(88, 205, 228, .28)); }

.vs-armies { background: radial-gradient(circle at 88% 18%, rgba(181, 30, 39, .16), transparent 28%), linear-gradient(108deg, rgba(10, 11, 14, .98), rgba(30, 33, 37, .94)), var(--vs-tech-surface-texture) center / cover; }
.vs-faction-preview { display: grid; width: 100%; grid-template-columns: minmax(0, 1fr) minmax(270px, .75fr); gap: var(--vs-panel-gap); align-items: stretch; max-width: none; margin-top: 3rem; padding-top: 2rem; border-top: 1px solid rgba(240, 233, 218, .3); }
.vs-faction-preview > div:first-child { position: relative; isolation: isolate; display: flex; min-height: 330px; flex-direction: column; justify-content: center; overflow: hidden; padding: var(--vs-feature-panel-padding); border: 1px solid rgba(240, 233, 218, .25); background: linear-gradient(105deg, rgba(7, 8, 10, .92), rgba(19, 22, 26, .86)), var(--vs-tech-surface-texture) center / cover; box-shadow: inset 0 0 0 1px rgba(0, 0, 0, .5); }
.vs-faction-preview > div:first-child::before { position: absolute; z-index: 0; inset: 0; content: ""; background: repeating-linear-gradient(0deg, rgba(255, 255, 255, .014) 0 1px, transparent 1px 4px), linear-gradient(90deg, rgba(181, 30, 39, .14), transparent 26%, transparent 84%, rgba(181, 30, 39, .06)); pointer-events: none; }
.vs-faction-preview > div:first-child::after { position: absolute; z-index: 0; inset: var(--vs-panel-inset); content: ""; border: 1px solid rgba(240, 233, 218, .13); background: linear-gradient(90deg, #b51e27 0 32px, transparent 32px) top left / 102px 2px no-repeat, linear-gradient(270deg, #b51e27 0 32px, transparent 32px) bottom right / 102px 2px no-repeat, linear-gradient(180deg, rgba(240, 233, 218, .58) 0 17px, transparent 17px) top left / 2px 58px no-repeat, linear-gradient(0deg, rgba(240, 233, 218, .58) 0 17px, transparent 17px) bottom right / 2px 58px no-repeat; pointer-events: none; }
.vs-faction-preview > div:first-child > * { position: relative; z-index: 1; }
.vs-faction-preview h3 { margin: 0 0 1rem; font-size: clamp(2.5rem, 5vw, 4.3rem); line-height: .9; }
.vs-faction-preview > div > p:not(.vs-eyebrow) { max-width: 570px; font-size: 1.1rem; line-height: 1.65; }
.vs-faction-preview__plate { position: relative; isolation: isolate; display: flex; min-height: 330px; flex-direction: column; justify-content: space-between; overflow: hidden; border: 1px solid rgba(240, 233, 218, .25); background: #08090b; color: #f0e9da; box-shadow: inset 0 0 0 1px rgba(0, 0, 0, .52), 0 12px 24px rgba(0, 0, 0, .18); }
.vs-faction-preview__plate figure { height: 100%; margin: 0; }
.vs-faction-preview__plate img { width: 100%; height: 100%; object-fit: cover; filter: contrast(1.05) saturate(.84) brightness(.82); }
.vs-faction-preview__plate::before { position: absolute; z-index: 1; inset: var(--vs-panel-inset); content: ""; border: 1px solid rgba(240, 233, 218, .14); background: linear-gradient(90deg, #b51e27 0 32px, transparent 32px) top left / 102px 2px no-repeat, linear-gradient(270deg, #b51e27 0 32px, transparent 32px) bottom right / 102px 2px no-repeat, linear-gradient(180deg, rgba(240, 233, 218, .58) 0 17px, transparent 17px) top left / 2px 58px no-repeat, linear-gradient(0deg, rgba(240, 233, 218, .58) 0 17px, transparent 17px) bottom right / 2px 58px no-repeat; pointer-events: none; }
.vs-faction-preview__plate::after { position: absolute; z-index: 1; inset: 0; content: ""; background: linear-gradient(180deg, rgba(0, 0, 0, .04), rgba(0, 0, 0, .34)); pointer-events: none; }
.vs-faction-preview__plate span { position: absolute; z-index: 2; right: .8rem; bottom: .7rem; padding: .35rem .45rem; background: rgba(17, 17, 17, .82); color: #fff; font-size: .66rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.vs-faction-preview__plate span { font-size: .8rem; font-weight: 700; letter-spacing: .18em; }
.vs-faction-preview__plate b { align-self: end; font-family: Georgia, serif; font-size: 6rem; line-height: .8; }

.vs-world { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) minmax(250px, .72fr); gap: clamp(2rem, 8vw, 9rem); align-items: end; isolation: isolate; overflow: hidden; background: radial-gradient(circle at 18% 40%, rgba(181, 30, 39, .32), transparent 25%), #111; }
.vs-world__backdrop { position: absolute; z-index: 0; inset: 0; width: 100%; height: 100%; margin: 0; object-fit: cover; opacity: .18; filter: saturate(.65) brightness(.54); }
.vs-world__backdrop img { width: 100%; height: 100%; object-fit: cover; }
.vs-world::after { position: absolute; z-index: 1; inset: 0; background: linear-gradient(90deg, rgba(10, 11, 13, .91), rgba(10, 11, 13, .55)); content: ""; }
.vs-world > *:not(.vs-world__backdrop) { position: relative; z-index: 2; }
.vs-world p:last-child { font-size: 1.13rem; line-height: 1.65; }
.vs-community { position: relative; isolation: isolate; width: auto; max-width: none; box-sizing: border-box; overflow: hidden; margin-right: 0; margin-left: 0; padding-right: clamp(1.25rem, 5vw, 4.5rem); padding-left: clamp(1.25rem, 5vw, 4.5rem); text-align: center; color: #f0e9da; background: radial-gradient(circle at 50% 5%, rgba(181, 30, 39, .42), transparent 35%), linear-gradient(108deg, rgba(7, 8, 10, .99), rgba(28, 16, 19, .96)), var(--vs-tech-surface-texture) center / cover; }
.vs-community::before { display: none; }
.vs-community > * { position: relative; z-index: 1; }
.vs-community > p:not(.vs-eyebrow) { max-width: 650px; margin: 1.4rem auto 2rem; font-size: 1.14rem; line-height: 1.65; }
.vs-community .vs-eyebrow { color: #e7787d; }
.vs-community .vs-button { background: #15171a; }
.vs-community .vs-button:hover,
.vs-community .vs-button:focus-visible { background: #292d31; }
.vs-community .vs-button--quiet { border-color: rgba(255, 255, 255, .72); background: transparent; color: #fff; }
.vs-community .vs-actions { justify-content: center; }

.vs-journey { overflow: hidden; }
.vs-journey__hero,
.vs-journey__steps,
.vs-journey__callout { padding: clamp(4rem, 9vw, 8rem) max(1.25rem, calc((100vw - 1120px) / 2)); }
.vs-journey__hero { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(280px, .7fr); align-items: center; max-width: none; gap: clamp(2rem, 7vw, 7rem); background: radial-gradient(circle at 74% 35%, rgba(181, 30, 39, .28), transparent 28%), #111; }
.vs-journey__hero > div { max-width: 780px; }
.vs-journey__hero h1 { margin: 0; font-size: clamp(3.7rem, 9vw, 8.5rem); letter-spacing: -.06em; line-height: .8; }
.vs-journey__hero p:last-child { margin: 2rem 0 0; font-size: 1.18rem; line-height: 1.65; }
.vs-journey__hero figure { margin: 0; }
.vs-journey__hero figure img { display: block; width: 100%; background: #f0e9da; }
.vs-journey__hero figcaption { margin-top: .55rem; color: rgba(240, 233, 218, .65); font-size: .72rem; letter-spacing: .08em; text-transform: uppercase; }
.vs-journey__steps { background: #f0e9da; color: #15171a; }
.vs-journey__steps h2 { max-width: 650px; margin: 0; font-size: clamp(2.4rem, 5.5vw, 5.4rem); line-height: .9; }
.vs-journey__steps ol { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: clamp(2.5rem, 6vw, 5rem) 0 0; padding: 0; list-style: none; border-top: 1px solid rgba(21, 23, 26, .32); border-bottom: 1px solid rgba(21, 23, 26, .32); }
.vs-journey__steps li { min-height: 270px; padding: 1.5rem; border-right: 1px solid rgba(21, 23, 26, .32); }
.vs-journey__steps li:last-child { border-right: 0; }
.vs-journey__steps li > span { color: #b51e27; font-size: .8rem; font-weight: 700; letter-spacing: .12em; }
.vs-journey__steps h3 { margin: 3rem 0 .7rem; font-family: Georgia, serif; font-size: 1.9rem; line-height: 1; }
.vs-journey__steps p { line-height: 1.55; }
.vs-journey__steps a { color: inherit; font-weight: 700; text-underline-offset: .3em; }
.vs-journey__callout { display: flex; align-items: end; justify-content: space-between; gap: 2rem; background: #25282b; }
.vs-journey__callout > div { max-width: 640px; }
.vs-journey__callout h2 { margin: 0; font-size: clamp(2.3rem, 5vw, 4.8rem); line-height: .92; }
.vs-model-showcase { width: min(1120px, calc(100% - 2.5rem)); box-sizing: border-box; margin: var(--vs-panel-gap) auto; padding: clamp(1.2rem, 3vw, 2rem); }
.vs-model-showcase header { max-width: 720px; }
.vs-model-showcase h2 { margin: 0; font-size: clamp(2rem, 4.8vw, 4.3rem); line-height: .95; }
.vs-model-showcase header > p:last-child { max-width: 64ch; margin: .9rem 0 0; color: rgba(240, 233, 218, .78); line-height: 1.65; }
.vs-model-showcase__viewer { min-width: 0; margin-top: clamp(1.2rem, 3vw, 2rem); }
.vs-model-showcase__viewer > * { width: 100%; max-width: 100%; }

.vs-directory-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--vs-panel-gap); margin-top: 3rem; border: 0; }
.vs-directory-grid article { display: flex; min-height: 260px; flex-direction: column; padding: var(--vs-feature-panel-padding); border-right: 1px solid rgba(240, 233, 218, .28); border-bottom: 1px solid rgba(240, 233, 218, .28); }
.vs-directory-grid__image { width: calc(100% + var(--vs-feature-panel-width)); aspect-ratio: 1.6; margin: var(--vs-feature-panel-bleed) var(--vs-feature-panel-bleed) 1.3rem; object-fit: cover; background: #111; }
.vs-directory > .vs-directory-grid > article > .vs-directory-grid__image { width: 100%; margin: 0 0 1.3rem; }
.vs-faction-image-trigger { cursor: zoom-in; transition: border-color .18s ease, box-shadow .18s ease, filter .18s ease; }
.vs-faction-image-trigger:hover { filter: brightness(1.08) saturate(1.08); }
.vs-faction-image-trigger:focus-visible { outline: 3px solid #f0e9da; outline-offset: 3px; box-shadow: 0 0 0 5px rgba(181, 30, 39, .7); }
.vs-faction-image-modal { position: fixed; z-index: 1100; inset: 0; display: grid; place-items: center; padding: 1.25rem; background: rgba(3, 4, 6, .8); }
.vs-faction-image-modal[hidden] { display: none; }
.vs-faction-image-modal__panel { position: relative; isolation: isolate; width: min(980px, 100%); max-height: calc(100vh - 2.5rem); overflow: hidden; padding: clamp(1.1rem, 3vw, 1.8rem); border: 1px solid rgba(240, 233, 218, .3); background: linear-gradient(105deg, rgba(7, 8, 10, .98), rgba(18, 20, 24, .95)), var(--vs-tech-surface-texture) center / cover; box-shadow: inset 0 0 0 1px rgba(0, 0, 0, .54), 0 22px 60px rgba(0, 0, 0, .64); }
.vs-faction-image-modal__panel::before { position: absolute; z-index: 0; inset: 0; content: ""; background: repeating-linear-gradient(0deg, rgba(255, 255, 255, .014) 0 1px, transparent 1px 4px), linear-gradient(90deg, rgba(181, 30, 39, .17), transparent 25%, transparent 83%, rgba(181, 30, 39, .08)); pointer-events: none; }
.vs-faction-image-modal__panel::after { position: absolute; z-index: 0; top: var(--vs-panel-inset); right: var(--vs-panel-inset); bottom: var(--vs-panel-inset); left: var(--vs-panel-inset); content: ""; border: 1px solid rgba(240, 233, 218, .13); background: linear-gradient(90deg, #b51e27 0 34px, transparent 34px) top left / 104px 2px no-repeat, linear-gradient(270deg, #b51e27 0 34px, transparent 34px) bottom right / 104px 2px no-repeat, linear-gradient(180deg, rgba(240, 233, 218, .58) 0 17px, transparent 17px) top left / 2px 58px no-repeat, linear-gradient(0deg, rgba(240, 233, 218, .58) 0 17px, transparent 17px) bottom right / 2px 58px no-repeat; pointer-events: none; }
.vs-faction-image-modal__panel > * { position: relative; z-index: 1; }
.vs-faction-image-modal__panel h2 { margin: 0 0 .9rem; font-size: clamp(1.65rem, 3vw, 2.55rem); line-height: .98; }
.vs-faction-image-modal__panel img { display: block; width: 100%; max-height: min(62vh, 700px); aspect-ratio: auto; margin: 0; border: 1px solid rgba(240, 233, 218, .22); background: #050505; object-fit: contain; }
.vs-faction-image-modal__hint { margin: .8rem 0 0; color: rgba(240, 233, 218, .65); font-size: .78rem; letter-spacing: .04em; }
html.vs-faction-image-open { overflow: hidden; }
.vs-directory-grid h2 { margin: .25rem 0 1rem; font-size: clamp(1.8rem, 3vw, 2.75rem); line-height: .95; }
.vs-directory-grid h2 a { color: inherit; text-decoration: none; }
.vs-directory-grid h2 a:hover,
.vs-directory-grid h2 a:focus-visible { color: var(--wp--preset--color--warning, #b51e27); text-decoration: underline; text-underline-offset: .16em; }
.vs-directory-grid article > p:not(.vs-eyebrow) { line-height: 1.6; }
.vs-directory-grid article > span,
.vs-directory-grid article > a { margin-top: auto; color: rgba(240, 233, 218, .72); font-size: .88rem; }
.vs-directory-grid article > a { color: inherit; font-weight: 700; text-underline-offset: .25em; }
.vs-community-index__actions { display: flex; flex-wrap: wrap; gap: var(--vs-panel-gap); margin-top: 2rem; }
.vs-dispatch-grid article { display: grid; min-height: 0; grid-template-rows: auto auto minmax(3.05em, auto) 8em auto; align-content: start; }
.vs-dispatch-grid article > .vs-dispatch-grid__image-link { display: block; aspect-ratio: 16 / 9; margin: 0 0 1.3rem; overflow: hidden; background: #111; }
.vs-dispatch-grid .vs-directory-grid__image { display: block; width: 100%; height: 100%; margin: 0; aspect-ratio: auto; object-fit: cover; object-position: center; }
.vs-dispatch-grid h2 { min-height: 3.05em; }
.vs-dispatch-grid article > p:not(.vs-eyebrow) { display: -webkit-box; min-height: 8em; margin: 0; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 5; }
.vs-dispatch-grid article > a:not(.vs-dispatch-grid__image-link) { margin-top: 1rem; }
.vs-battle-report-grid article { display: grid; min-height: 0; grid-template-rows: auto auto minmax(3.05em, auto) 1.45em 6.4em auto; align-content: start; }
.vs-battle-report-grid article > .vs-battle-report-grid__image-link { position: relative; display: block; aspect-ratio: 16 / 9; margin: 0 0 1.3rem; overflow: hidden; background: #111; }
.vs-battle-report-grid .vs-directory-grid__image { display: block; width: 100%; height: 100%; margin: 0; aspect-ratio: auto; object-fit: cover; object-position: center; }
.vs-battle-report-grid h2 { min-height: 3.05em; }
.vs-battle-report-grid__forces { min-height: 1.45em; margin: 0; color: #e7787d; font-size: .74rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.vs-battle-report-grid__forces.is-empty { visibility: hidden; }
.vs-battle-report-grid article > p:not(.vs-eyebrow):not(.vs-battle-report-grid__forces) { display: -webkit-box; min-height: 6.4em; margin: 0; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 4; }
.vs-battle-report-grid article > a:not(.vs-battle-report-grid__image-link) { margin-top: 1rem; }
.vs-battle-report-grid__play { position: absolute; right: calc(.7rem + 5px); bottom: .7rem; display: grid; width: 42px; height: 42px; place-items: center; border: 1px solid rgba(255, 255, 255, .8); border-radius: 50%; background: rgba(10, 11, 14, .82); color: #fff; font-size: .85rem; transition: background .2s ease, transform .2s ease; }
.vs-battle-report-grid__image-link:hover .vs-battle-report-grid__play, .vs-battle-report-grid__image-link:focus-visible .vs-battle-report-grid__play { background: #b51e27; transform: scale(1.06); }
.vs-battle-report-grid__image-link:focus-visible { outline: 3px solid #f0e9da; outline-offset: -5px; }
.vs-battle-report__player { position: relative; width: 100%; max-width: none; aspect-ratio: 16 / 9; overflow: hidden; margin: 2rem 0; border: 1px solid rgba(240, 233, 218, .25); background: #050505; }
.vs-battle-report__player iframe { position: absolute; width: 100%; height: 100%; border: 0; inset: 0; }
.vs-battle-report__meta { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--vs-panel-gap); max-width: 1024px; margin: 1.25rem 0 2rem; }
.vs-battle-report__meta div { min-width: 0; padding: var(--vs-panel-padding); border-top: 2px solid #b51e27; background: linear-gradient(135deg, rgba(37, 40, 43, .9), rgba(11, 12, 15, .94)); }
.vs-battle-report__meta dt { color: #e7787d; font-size: .65rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.vs-battle-report__meta dd { margin: .35rem 0 0; font-size: .92rem; line-height: 1.35; }
.vs-battle-report .vs-prose,
.vs-battle-report__return { max-width: 1024px; }
.vs-battle-report__return { margin-top: 2.5rem; }
.vs-atlas .vs-library__intro { max-width: 780px; }
.vs-rule-filter__controls--two { grid-template-columns: minmax(0, 1fr) auto; }
.vs-atlas-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.vs-atlas-grid article { min-height: 290px; }
.vs-atlas-grid dl { display: grid; gap: .6rem; margin: auto 0 0; color: rgba(240, 233, 218, .8); font-size: .83rem; }
.vs-atlas-grid dl div { display: grid; grid-template-columns: 72px 1fr; gap: var(--vs-panel-gap); }
.vs-atlas-grid dt { color: var(--wp--preset--color--warning, #b51e27); font-weight: 700; }
.vs-atlas-grid dd { margin: 0; }
.vs-detail__image { max-width: 860px; margin: 2rem 0; border: 1px solid rgba(240, 233, 218, .25); background: #111; }
.vs-detail__image img { display: block; width: 100%; height: auto; }
.vs-detail__image--unit { max-width: 640px; background: #f0e9da; }
.vs-units-index__notice { max-width: 860px; margin-top: 2rem; }
.vs-unit-faction-nav { display: flex; flex-wrap: wrap; gap: .55rem; margin: 1.4rem 0 3.2rem; }
.vs-unit-faction-nav a { min-width: 148px; padding: .7rem .9rem; border: 1px solid rgba(240, 233, 218, .28); color: inherit; font-size: .78rem; font-weight: 700; letter-spacing: .08em; text-align: center; text-decoration: none; text-transform: uppercase; }
.vs-unit-faction-nav a:hover, .vs-unit-faction-nav a:focus-visible { border-color: #b51e27; background: rgba(181, 30, 39, .16); color: #fff; outline: 2px solid #f0e9da; outline-offset: 2px; }
.vs-unit-faction { margin-top: 4rem; scroll-margin-top: 2rem; }
.vs-unit-faction > header { display: flex; align-items: baseline; gap: 1rem; margin-bottom: 1rem; border-bottom: 1px solid rgba(240, 233, 218, .25); }
.vs-unit-faction > header .vs-eyebrow { margin-bottom: .75rem; }
.vs-unit-faction h2 { margin: 0 0 .7rem; font-family: Georgia, serif; font-size: clamp(2rem, 4vw, 3.5rem); line-height: .94; }
.vs-unit-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--vs-panel-gap); }
.vs-unit-grid article { display: flex; min-width: 0; flex-direction: column; border: 1px solid rgba(240, 233, 218, .25); background: linear-gradient(145deg, rgba(37, 40, 43, .9), rgba(10, 11, 14, .88)); }
.vs-unit-card { position: relative; display: block; aspect-ratio: .69; overflow: hidden; border-bottom: 1px solid rgba(240, 233, 218, .2); background: #17191c; }
.vs-unit-card img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .35s ease; }
.vs-unit-card:hover img, .vs-unit-card:focus-visible img { transform: scale(1.035); }
.vs-unit-card__scan { position: absolute; right: .45rem; bottom: .45rem; padding: .34rem .45rem; background: rgba(8, 9, 12, .86); color: #fff; font-size: .62rem; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; }
.vs-unit-card__missing { display: grid; width: 100%; height: 100%; place-items: center; color: rgba(240, 233, 218, .7); font-size: .78rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.vs-unit-card:focus-visible { outline: 3px solid #b51e27; outline-offset: 3px; }
.vs-unit-grid__body { display: flex; min-height: 146px; flex-direction: column; padding: .9rem; }
.vs-unit-grid h3 { margin: 0; font-family: Georgia, serif; font-size: 1.32rem; line-height: .98; }
.vs-unit-grid h3 a { color: inherit; text-decoration: none; }
.vs-unit-grid h3 a:hover, .vs-unit-grid h3 a:focus-visible { color: #e7787d; text-decoration: underline; text-underline-offset: .2em; }
.vs-unit-grid__body > p { min-height: 2.6em; margin: .6rem 0; color: rgba(240, 233, 218, .7); font-size: .78rem; line-height: 1.3; }
.vs-unit-grid dl { display: grid; grid-template-columns: repeat(3, 1fr); gap: .25rem; margin: auto 0 0; }
.vs-unit-grid dl div { min-width: 0; padding-top: .4rem; border-top: 1px solid rgba(240, 233, 218, .18); }
.vs-unit-grid dt { color: #e7787d; font-size: .58rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.vs-unit-grid dd { margin: .15rem 0 0; font-size: .92rem; font-weight: 700; }
.vs-unit-detail header { max-width: 860px; }
.vs-unit-layout { position: relative; display: grid; grid-template-areas: "data reference" "data equipment"; grid-template-columns: minmax(0, 1.12fr) minmax(290px, .62fr); gap: clamp(1rem, 3vw, 2rem); align-items: start; margin-top: 1.5rem; }
.vs-unit-layout__data { grid-area: data; min-width: 0; }
.vs-unit-stats, .vs-unit-special, .vs-unit-guidance, .vs-unit-weapons, .vs-unit-reference, .vs-unit-linked, .vs-unit-equipment, .vs-unit-lore { padding: var(--vs-panel-padding); border: 1px solid rgba(240, 233, 218, .22); background: linear-gradient(135deg, rgba(37, 40, 43, .9), rgba(11, 12, 15, .94)); }
.vs-unit-layout h2 { margin: 0 0 .9rem; font-size: 1rem; letter-spacing: .08em; text-transform: uppercase; }
.vs-unit-stats dl { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .6rem; margin: 0; }
.vs-unit-stats dl div { min-width: 0; padding: .7rem .55rem; border-top: 2px solid #b51e27; background: rgba(0, 0, 0, .24); }
.vs-unit-stats dt { color: #e7787d; font-size: .64rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.vs-unit-stats dd { margin: .35rem 0 0; font-size: clamp(1rem, 2vw, 1.45rem); font-weight: 700; line-height: 1; overflow-wrap: anywhere; }
.vs-unit-special { margin-top: var(--vs-panel-gap); }
.vs-unit-rules { display: flex; flex-wrap: wrap; gap: .42rem; }
.vs-unit-rules a, .vs-unit-rules span { display: inline-flex; align-items: center; min-height: 30px; padding: .35rem .55rem; border: 1px solid rgba(240, 233, 218, .24); background: rgba(240, 233, 218, .05); color: #f0e9da; font-size: .73rem; font-weight: 700; text-decoration: none; }
.vs-unit-rules a:hover, .vs-unit-rules a:focus-visible { border-color: #e7787d; background: rgba(181, 30, 39, .2); color: #fff; outline: 2px solid #f0e9da; outline-offset: 2px; }
.vs-unit-guidance { margin-top: var(--vs-panel-gap); }
.vs-unit-guidance dl { display: grid; gap: .8rem; margin: 0; }
.vs-unit-guidance dl div { padding-left: .8rem; border-top: 1px solid rgba(240, 233, 218, .18); }
.vs-unit-guidance dt { color: #e7787d; font-size: .76rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.vs-unit-guidance dd { margin: .3rem 0 0; color: rgba(240, 233, 218, .87); font-size: .88rem; line-height: 1.5; }
.vs-unit-weapons { margin-top: var(--vs-panel-gap); }
.vs-unit-weapons__scroll { overflow-x: auto; }
.vs-unit-weapons table { width: 100%; min-width: 610px; border-collapse: collapse; font-size: .8rem; }
.vs-unit-weapons th, .vs-unit-weapons td { padding: .65rem .55rem; border-bottom: 1px solid rgba(240, 233, 218, .18); text-align: left; vertical-align: top; }
.vs-unit-weapons thead th { color: #e7787d; font-size: .64rem; letter-spacing: .08em; text-transform: uppercase; }
.vs-unit-weapons tbody th { font-weight: 700; }
.vs-unit-reference { grid-area: reference; align-self: start; }
.vs-unit-reference__cards { display: grid; gap: var(--vs-panel-gap); }
.vs-unit-reference figure { margin: 0; }
.vs-unit-reference__missing { display: grid; min-height: 180px; place-items: center; border: 1px dashed rgba(240, 233, 218, .24); color: rgba(240, 233, 218, .64); font-size: .78rem; letter-spacing: .08em; text-align: center; text-transform: uppercase; }
.vs-unit-reference figure a { display: block; background: #050505; }
.vs-unit-reference img { display: block; width: 100%; height: auto; }
.vs-unit-reference figcaption { margin-top: .35rem; color: rgba(240, 233, 218, .68); font-size: .68rem; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; }
.vs-unit-layout .vs-unit-linked { position: absolute; top: var(--vs-linked-panel-top, auto); bottom: 0; left: 0; display: flex; width: calc((100% - clamp(1rem, 3vw, 2rem)) * .64368); min-width: 0; box-sizing: border-box; flex-direction: column; }
.vs-unit-linked ul { display: grid; min-height: 0; flex: 1; grid-template-columns: repeat(2, minmax(0, 1fr)); grid-auto-rows: minmax(2.1rem, auto); align-content: start; gap: .4rem; margin: 0; padding: 0 .25rem 0 0; overflow-x: hidden; overflow-y: auto; list-style: none; scrollbar-color: #b51e27 rgba(240, 233, 218, .08); scrollbar-width: thin; }
.vs-unit-linked ul::-webkit-scrollbar { width: .55rem; }
.vs-unit-linked ul::-webkit-scrollbar-track { border: 1px solid rgba(240, 233, 218, .14); background: rgba(0, 0, 0, .34); }
.vs-unit-linked ul::-webkit-scrollbar-thumb { border: 1px solid rgba(240, 233, 218, .24); background: linear-gradient(180deg, #d23a43, #82151d); box-shadow: inset 0 0 0 1px rgba(0, 0, 0, .35); }
.vs-unit-linked ul::-webkit-scrollbar-thumb:hover { background: linear-gradient(180deg, #ef5159, #a51c26); }
.vs-unit-linked li { min-width: 0; min-height: 0; }
.vs-unit-linked a { display: flex; height: 100%; align-items: center; padding: .38rem .58rem; border: 1px solid rgba(240, 233, 218, .18); background: rgba(0, 0, 0, .18); color: inherit; font-size: .88rem; font-weight: 700; line-height: 1.15; text-decoration: none; }
.vs-unit-linked a:hover, .vs-unit-linked a:focus-visible { border-color: #e7787d; background: rgba(181, 30, 39, .18); color: #fff; outline: 2px solid #f0e9da; outline-offset: 2px; }
.vs-unit-linked > p { color: rgba(240, 233, 218, .7); font-size: .9rem; line-height: 1.5; }
.vs-unit-equipment { grid-area: equipment; align-self: stretch; min-width: 0; }
.vs-unit-equipment figure { margin: 0; }
.vs-unit-equipment figure a { display: block; aspect-ratio: .69; overflow: hidden; background: #050505; }
.vs-unit-equipment figure img { display: block; width: 100%; height: 100%; object-fit: cover; }
.vs-unit-equipment figcaption { margin-top: .35rem; color: rgba(240, 233, 218, .68); font-size: .68rem; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; }
.vs-unit-equipment__denied-card { position: relative; display: grid; aspect-ratio: .69; place-items: center; overflow: hidden; border: 1px solid rgba(240, 233, 218, .18); background: repeating-linear-gradient(0deg, rgba(255, 255, 255, .016) 0 1px, transparent 1px 4px), linear-gradient(135deg, rgba(3, 4, 6, .96), rgba(25, 27, 31, .92)); }
.vs-unit-equipment__denied-card::before { position: absolute; inset: .7rem; border: 1px solid rgba(240, 233, 218, .12); content: ""; }
.vs-unit-equipment__denied-card span { position: relative; z-index: 1; display: block; padding: .18em .3em; border: .12em solid #d5333c; color: #e33c45; font-family: Impact, Haettenschweiler, "Arial Narrow Bold", sans-serif; font-size: clamp(2.2rem, 5vw, 4.5rem); letter-spacing: .08em; line-height: .85; opacity: .86; text-shadow: 0 0 12px rgba(211, 34, 45, .28); text-transform: uppercase; transform: rotate(-27deg); }
.vs-unit-equipment__denied-card small { position: absolute; right: 1rem; bottom: .9rem; color: rgba(240, 233, 218, .54); font-size: .64rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.vs-unit-lore { margin-top: var(--vs-panel-gap); }
.vs-unit-lore header { margin-bottom: 1rem; }
.vs-unit-lore h2 { margin: 0; }
.vs-unit-lore article + article { margin-top: 1.35rem; padding-top: 1.35rem; border-top: 1px solid rgba(240, 233, 218, .16); }
.vs-unit-lore h3 { margin: 0 0 .7rem; font-size: clamp(1.25rem, 2vw, 1.65rem); }
.vs-unit-lore__content { color: rgba(240, 233, 218, .86); line-height: 1.7; }
.vs-unit-lore__content > :first-child { margin-top: 0; }
.vs-unit-lore__content > :last-child { margin-bottom: 0; }
.vs-unit-card-viewer button { position: relative; display: block; width: 100%; padding: 0; border: 0; background: #050505; color: inherit; cursor: pointer; perspective: 1100px; }
.vs-unit-card-viewer__faces { position: relative; display: block; width: 100%; aspect-ratio: .69; transform-style: preserve-3d; transition: transform .56s cubic-bezier(.2, .7, .2, 1); }
.vs-unit-card-viewer.is-flipped .vs-unit-card-viewer__faces { transform: rotateY(180deg); }
.vs-unit-card-viewer__face { position: absolute; inset: 0; display: block; backface-visibility: hidden; }
.vs-unit-card-viewer__face--back { transform: rotateY(180deg); }
.vs-unit-card-viewer__face img { width: 100%; height: 100%; object-fit: cover; }
.vs-unit-card-viewer__hint { position: absolute; right: .5rem; bottom: .5rem; z-index: 2; padding: .34rem .46rem; background: rgba(8, 9, 12, .88); color: #fff; font-size: .63rem; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; }
.vs-unit-card-viewer button:hover .vs-unit-card-viewer__hint, .vs-unit-card-viewer button:focus-visible .vs-unit-card-viewer__hint { background: #b51e27; }
.vs-unit-card-viewer button:focus-visible { outline: 3px solid #f0e9da; outline-offset: 3px; }
.vs-library__actions { display: flex; flex-wrap: wrap; gap: var(--vs-panel-gap); margin-top: 2rem; }
.vs-lore-library__section { margin-top: 4rem; }
.vs-lore-library__section > header { margin-bottom: 1rem; border-bottom: 1px solid rgba(240, 233, 218, .25); }
.vs-lore-library__section > header .vs-eyebrow { margin-bottom: .45rem; }
.vs-lore-library__section h2 { margin: 0 0 .7rem; font-family: Georgia, serif; font-size: clamp(2rem, 4vw, 3.5rem); line-height: .94; }
.vs-lore-library__grid h3 { margin: .25rem 0 1rem; font-size: clamp(1.55rem, 2.5vw, 2.2rem); line-height: .95; }
.vs-lore-library__grid h3 a { color: inherit; text-decoration: none; }
.vs-lore-library__grid h3 a:hover, .vs-lore-library__grid h3 a:focus-visible { color: #e7787d; text-decoration: underline; text-underline-offset: .2em; }
.vs-world a { color: inherit; font-weight: 700; text-underline-offset: .26em; }

.vs-site-footer { padding-top: 2.4rem; padding-bottom: 2.4rem; background: #111; border-top: 1px solid rgba(240, 233, 218, .22); }
.vs-site-footer p { margin: .8rem 0 0; color: rgba(240, 233, 218, .68); font-size: .86rem; }
.vs-site-footer nav { display: flex; flex-wrap: wrap; gap: 1rem; }
.vs-site-footer nav a { color: inherit; font-size: .84rem; }
.vs-footer-brand { min-width: 0; }
.vs-footer-brand .vs-brand-lockup { width: fit-content; }

@media (max-width: 680px) {
	.vs-rule-filter__controls,
	.vs-rule-list,
	.vs-hero,
	.vs-command-loop,
	.vs-path-grid,
	.vs-faction-preview,
	.vs-world,
	.vs-journey__steps ol,
	.vs-directory-grid,
	.vs-atlas-grid,
	.vs-journey__hero { grid-template-columns: 1fr; }
	.vs-unit-layout { grid-template-areas: "data" "reference" "equipment" "linked"; grid-template-columns: 1fr; }
	.vs-unit-layout .vs-unit-linked { position: static; display: block; width: auto; }
	.vs-unit-linked ul { grid-template-columns: 1fr; }
	.vs-unit-equipment__denied-card { min-height: 0; }
	.vs-rule-list li:nth-child(odd) { border-right: 0; }
	.vs-site-header__inner { align-items: flex-start; flex-wrap: wrap; }
	.vs-main-nav { order: 3; width: 100%; justify-content: flex-start; border-top: 1px solid rgba(240, 233, 218, .18); }
	.vs-header-actions { margin-left: auto; }
	.vs-nav-menu { width: auto; }
	.vs-nav-menu__panel { position: fixed; top: auto; right: 1.25rem; left: 1.25rem; min-width: 0; margin-top: .1rem; }
	.vs-brand-mark { width: 48px; height: 48px; }
	.vs-hero { min-height: 0; }
	.vs-hero__copy { min-height: 0; }
	.vs-hero__art { min-height: 360px; }
	.vs-faction-preview > div:first-child { min-height: 0; }
	.vs-faction-preview__plate { min-height: 280px; }
	.vs-command-loop li { min-height: 0; border-right: 0; border-bottom: 1px solid rgba(21, 23, 26, .35); }
	.vs-command-loop li:last-child { border-bottom: 0; }
	.vs-command-loop h3 { margin-top: 1rem; }
	.vs-path-grid a { min-height: 180px; border-right: 0; border-bottom: 1px solid rgba(240, 233, 218, .32); }
	.vs-path-grid a:last-child { border-bottom: 0; }
	.vs-site-footer { align-items: flex-start; flex-direction: column; }
	.vs-journey__steps li { min-height: 0; border-right: 0; border-bottom: 1px solid rgba(21, 23, 26, .32); }
	.vs-journey__steps li:last-child { border-bottom: 0; }
	.vs-journey__steps h3 { margin-top: 1.25rem; }
	.vs-journey__callout { align-items: flex-start; flex-direction: column; }
	.vs-directory-grid article { min-height: 0; }
	.vs-rule-filter__controls--two { grid-template-columns: 1fr; }
}

/* Interactive Atlas */
.vs-atlas-explorer { overflow: hidden; background: #111; color: #f0e9da; }
.vs-atlas-explorer__intro,
.vs-atlas-search,
.vs-atlas-explorer__status,
.vs-atlas-results { max-width: 1120px; margin-right: auto; margin-left: auto; padding-right: max(1.25rem, calc((100vw - 1120px) / 2)); padding-left: max(1.25rem, calc((100vw - 1120px) / 2)); }
.vs-atlas-explorer__intro { padding-top: clamp(2.25rem, 5vw, 4.25rem); padding-bottom: 1.15rem; }
.vs-atlas-explorer__intro h1 { max-width: 850px; margin: 0; font-size: clamp(2.7rem, 5.8vw, 5.6rem); line-height: .86; letter-spacing: -.055em; }
.vs-atlas-explorer__intro > p:last-child { max-width: 730px; margin: .9rem 0 0; color: rgba(240, 233, 218, .82); font-size: 1rem; line-height: 1.5; }
.vs-atlas-search { padding-top: 1rem; padding-bottom: 1rem; }
.vs-atlas-search label { display: block; margin-bottom: .55rem; color: rgba(240, 233, 218, .8); font-size: .85rem; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; }
.vs-atlas-search > div { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; gap: .55rem; }
.vs-atlas-search input { min-width: 0; border: 1px solid rgba(240, 233, 218, .38); border-radius: 0; background: #f0e9da; color: #15171a; font: inherit; padding: .8rem .9rem; }
.vs-atlas-search button,
.vs-atlas-map__controls button,
.vs-atlas-timeline__controls button,
.vs-atlas-timeline__arrow,
.vs-atlas-results button { border: 1px solid #b51e27; border-radius: 0; background: #b51e27; color: #fff; cursor: pointer; font: inherit; font-weight: 700; padding: .8rem 1rem; }
.vs-atlas-search .vs-atlas-button--quiet { border-color: rgba(240, 233, 218, .4); background: transparent; color: #f0e9da; }
.vs-atlas-search button:hover, .vs-atlas-search button:focus-visible, .vs-atlas-map__controls button:hover, .vs-atlas-map__controls button:focus-visible, .vs-atlas-timeline__controls button:hover, .vs-atlas-timeline__controls button:focus-visible, .vs-atlas-timeline__arrow:hover, .vs-atlas-timeline__arrow:focus-visible, .vs-atlas-results button:hover, .vs-atlas-results button:focus-visible { background: #e23a43; outline: 2px solid #f0e9da; outline-offset: 2px; }
.vs-atlas-explorer__status { display: flex; justify-content: space-between; gap: 1rem; padding-top: .4rem; padding-bottom: 1.4rem; color: rgba(240, 233, 218, .68); font-size: .82rem; }
.vs-atlas-explorer__status p { margin: 0; }
.vs-atlas-map { position: relative; width: calc(100% - 2.5rem); max-width: 1120px; margin: 0 auto; padding: 0; }
.vs-atlas-map__filter { position: absolute; top: .8rem; right: .8rem; z-index: 8; width: 180px; }
.vs-atlas-map__filter > button { display: flex; width: 100%; align-items: center; justify-content: space-between; gap: .65rem; min-height: 38px; border: 1px solid rgba(240, 233, 218, .7); border-radius: 0; background: rgba(240, 233, 218, .96); color: #15171a; cursor: pointer; font: inherit; font-size: .76rem; font-weight: 700; padding: .45rem .6rem; text-transform: uppercase; }
.vs-atlas-map__filter > button::after { color: #b51e27; content: "+"; font-size: 1.1rem; }
.vs-atlas-map__filter > button[aria-expanded="true"]::after { content: "−"; }
.vs-atlas-map__filter > button span { color: #5e1117; font-size: .7rem; font-weight: 700; letter-spacing: .05em; text-transform: none; }
.vs-atlas-map__filter-menu { position: absolute; top: calc(100% + .35rem); right: 0; display: grid; box-sizing: border-box; width: 100%; min-width: 0; border: 1px solid rgba(240, 233, 218, .45); background: rgba(16, 18, 22, .98); box-shadow: 0 12px 24px rgba(0, 0, 0, .38); }
.vs-atlas-map__filter-menu[hidden] { display: none; }
.vs-atlas-map__filter-menu button { border: 0; border-bottom: 1px solid rgba(240, 233, 218, .16); background: transparent; color: #f0e9da; cursor: pointer; font: inherit; font-size: .84rem; padding: .7rem .85rem; text-align: left; }
.vs-atlas-map__filter-menu button:last-child { border-bottom: 0; }
.vs-atlas-map__filter-menu button:hover, .vs-atlas-map__filter-menu button:focus-visible, .vs-atlas-map__filter-menu button.is-active { background: #b51e27; color: #fff; outline: 0; }
.vs-atlas-map__viewport { position: relative; height: min(67vw, 780px); min-height: 390px; overflow: hidden; border: 1px solid rgba(240, 233, 218, .25); background: #05070c; cursor: grab; touch-action: none; }
.vs-atlas-map__viewport:focus-visible { outline: 3px solid #b51e27; outline-offset: 3px; }
.vs-atlas-map__viewport.is-dragging { cursor: grabbing; }
.vs-atlas-map__scene { position: absolute; top: 0; left: 0; width: 100%; transform-origin: 0 0; transition: transform .2s ease-out; }
.vs-atlas-map__scene.is-focusing { transition: transform .72s cubic-bezier(.2, .75, .2, 1); }
.is-dragging .vs-atlas-map__scene { transition: none; }
.vs-atlas-map__scene > img { display: block; width: 100%; height: auto; user-select: none; }
.vs-atlas-marker { position: absolute; top: var(--atlas-y); left: var(--atlas-x); z-index: 2; width: 28px; height: 28px; padding: 0; transform: translate(-50%, -50%) translate(var(--atlas-marker-offset-x, 0px), var(--atlas-marker-offset-y, 0px)); border: 0; border-radius: 50%; background: transparent; cursor: pointer; }
.vs-atlas-marker span { position: absolute; inset: 7px; display: block; border: 2px solid #fff; border-radius: 50%; background: #b51e27; box-shadow: 0 0 0 4px rgba(181, 30, 39, .3), 0 0 16px rgba(255, 255, 255, .9); }
.vs-atlas-marker:hover span, .vs-atlas-marker:focus-visible span, .vs-atlas-marker.is-active span { transform: scale(1.35); background: #f0e9da; box-shadow: 0 0 0 5px rgba(181, 30, 39, .55), 0 0 22px #fff; }
.vs-atlas-marker:focus-visible { outline: 2px solid #fff; outline-offset: 3px; }
.vs-atlas-map__controls { position: absolute; right: .8rem; bottom: .8rem; z-index: 5; display: flex; gap: .35rem; }
.vs-atlas-map__controls button { min-width: 42px; padding: .55rem .75rem; box-shadow: 0 2px 10px rgba(0, 0, 0, .45); }
.vs-atlas-map__controls button:last-child { min-width: auto; }
.vs-atlas-detail { position: absolute; z-index: 10; width: min(330px, calc(100% - 2rem)); max-height: calc(100% - 1.5rem); overflow: auto; padding: .85rem .9rem; border: 1px solid rgba(240, 233, 218, .42); background: rgba(17, 19, 24, .98); box-shadow: 0 14px 30px rgba(0, 0, 0, .48); }
.vs-atlas-detail::after { position: absolute; top: var(--atlas-pointer-y, 50%); width: 0; height: 0; border-top: 9px solid transparent; border-bottom: 9px solid transparent; content: ""; transform: translateY(-50%); }
.vs-atlas-detail[data-atlas-pointer="left"]::after { left: -10px; border-right: 10px solid rgba(17, 19, 24, .98); }
.vs-atlas-detail[data-atlas-pointer="right"]::after { right: -10px; border-left: 10px solid rgba(17, 19, 24, .98); }
.vs-atlas-detail h2 { margin: .15rem 0 .45rem; font-size: 1.22rem; line-height: 1; }
.vs-atlas-detail p { margin: 0 0 .55rem; color: rgba(240, 233, 218, .86); font-size: .84rem; line-height: 1.4; overflow-wrap: anywhere; }
.vs-atlas-detail img { display: block; width: 100%; max-height: 128px; margin: .55rem 0; object-fit: cover; }
.vs-atlas-detail__meta { color: #e7787d !important; font-size: .78rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.vs-atlas-timeline { box-sizing: border-box; width: calc(100% - 2.5rem); max-width: 1120px; margin-right: auto; margin-left: auto; padding: .65rem 0 1.2rem; }
.vs-atlas-timeline__heading { display: flex; align-items: end; justify-content: space-between; gap: 1.5rem; }
.vs-atlas-timeline h2 { margin: 0; font-size: clamp(1.45rem, 2.8vw, 2.55rem); line-height: .95; letter-spacing: -.04em; }
.vs-atlas-timeline__range { margin: .35rem 0 0; color: #e7787d; font-size: .78rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.vs-atlas-timeline__stage { display: grid; grid-template-columns: 44px minmax(0, 1fr) 44px; gap: .7rem; align-items: center; margin-top: .9rem; }
.vs-atlas-timeline__arrow { position: relative; z-index: 2; min-width: 44px; min-height: 62px; padding: .5rem; font-size: 1.55rem; line-height: 1; }
.vs-atlas-timeline__viewport { position: relative; min-width: 0; overflow: hidden; }
.vs-atlas-timeline__viewport::after { position: absolute; z-index: 1; right: 0; bottom: 14px; left: 0; height: 2px; background: rgba(240, 233, 218, .78); content: ""; pointer-events: none; }
.vs-atlas-timeline__rail { display: flex; min-height: 118px; overflow-x: auto; padding: 0; scroll-snap-type: x mandatory; scrollbar-width: none; cursor: grab; -ms-overflow-style: none; overscroll-behavior-x: contain; touch-action: pan-y; }
.vs-atlas-timeline__rail::-webkit-scrollbar { display: none; }
.vs-atlas-timeline__rail.is-dragging { cursor: grabbing; scroll-snap-type: none; user-select: none; }
.vs-atlas-timeline__rail.is-inertia { scroll-snap-type: none; }
.vs-atlas-timeline__spacer { display: block; flex: 0 0 calc(100% / 3); }
.vs-atlas-timeline-event { position: relative; z-index: 2; display: flex; min-width: 0; min-height: 118px; flex: 0 0 calc(100% / 3); flex-direction: column; align-items: center; justify-content: flex-end; padding: 0 .75rem 31px; border: 0; background: transparent; color: #f0e9da; cursor: pointer; scroll-snap-align: center; user-select: none; }
.vs-atlas-timeline-event::after { position: absolute; bottom: 7px; left: 50%; width: 13px; height: 13px; transform: translateX(-50%); border: 2px solid #c9c9c9; background: #777; content: ""; }
.vs-atlas-timeline-event strong { max-width: 22ch; color: inherit; font-family: Georgia, serif; font-size: clamp(1rem, 2vw, 1.32rem); line-height: 1; text-align: center; }
.vs-atlas-timeline-event span { margin-top: .3rem; color: #e7787d; font-size: .72rem; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; }
.vs-atlas-timeline-event:hover::after, .vs-atlas-timeline-event:focus-visible::after, .vs-atlas-timeline-event.is-active::after { width: 18px; height: 18px; bottom: 4px; border-color: #fff; background: #b51e27; box-shadow: 0 0 0 5px rgba(240, 233, 218, .18), 0 0 18px rgba(181, 30, 39, .85); }
.vs-atlas-timeline-event:hover strong, .vs-atlas-timeline-event:focus-visible strong, .vs-atlas-timeline-event.is-active strong { color: #fff; text-shadow: 0 0 12px rgba(255, 255, 255, .2); }
.vs-atlas-timeline-event:focus-visible { outline: 2px solid #f0e9da; outline-offset: -2px; }
.vs-atlas-timeline-detail { box-sizing: border-box; width: 100%; max-width: none; height: 132px; overflow: hidden; margin: .8rem 0 0; padding: .65rem .9rem; border: 1px solid rgba(240, 233, 218, .24); background: linear-gradient(100deg, rgba(37, 40, 43, .83), rgba(14, 15, 18, .75)); }
.vs-atlas-timeline-detail .vs-eyebrow { margin-bottom: .2rem; font-size: .7rem; }
.vs-atlas-timeline-detail h3 { margin: 0; font-size: clamp(1.12rem, 1.9vw, 1.45rem); line-height: 1; }
.vs-atlas-timeline-detail > p:not(.vs-eyebrow) { display: -webkit-box; max-width: 72ch; margin: .3rem 0; overflow: hidden; color: rgba(240, 233, 218, .82); line-height: 1.32; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.vs-atlas-timeline-detail a { color: #fff; font-size: .78rem; font-weight: 700; text-underline-offset: .22em; }
.vs-atlas-record-modal { position: fixed; z-index: 1000; inset: 0; display: grid; place-items: center; padding: 1.25rem; background: rgba(3, 4, 6, .76); }
.vs-atlas-record-modal[hidden] { display: none; }
.vs-atlas-record-modal__panel { position: relative; width: min(760px, 100%); max-height: min(720px, calc(100vh - 2.5rem)); overflow: auto; padding: clamp(1.35rem, 4vw, 2.6rem); border: 1px solid rgba(240, 233, 218, .35); border-top: 3px solid #b51e27; background: linear-gradient(135deg, #25282b, #101216); box-shadow: 0 22px 60px rgba(0, 0, 0, .6); }
.vs-atlas-record-modal__panel h2 { max-width: 23ch; margin: .2rem 0 1rem; font-size: clamp(1.8rem, 4vw, 3.3rem); line-height: .9; }
.vs-atlas-record-modal__panel p { max-width: 74ch; line-height: 1.65; }
.vs-atlas-record-modal__panel img { display: block; width: 100%; max-height: 300px; margin: 1rem 0; object-fit: cover; }
html.vs-atlas-record-open { overflow: hidden; }
.vs-atlas-results { padding-top: .25rem; padding-bottom: 1rem; }
.vs-atlas-results h2 { margin: 0 0 1rem; font-size: 1.5rem; }
.vs-atlas-results [data-atlas-results-list] { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: .5rem; }
.vs-atlas-results button { text-align: left; }

/* Shared VoidSiege tactical surfaces. Atlas navigation and map interaction
   controls deliberately remain outside this group. */
.vs-directory-grid article,
.vs-unit-grid article,
.vs-unit-stats,
.vs-unit-special,
.vs-unit-guidance,
.vs-unit-weapons,
.vs-unit-reference,
.vs-unit-linked,
.vs-unit-equipment,
.vs-unit-lore,
.vs-related,
.vs-rule-version,
.vs-rule-filter,
.vs-rule-related__grid a,
.vs-journey__callout,
.vs-model-showcase,
.vs-detail__image,
.vs-battle-report__player,
.vs-battle-report__meta div,
.vs-path-grid a,
.vs-command-loop li,
.vs-journey__steps li,
.vs-detail:not(.vs-rule-detail) .vs-prose {
	position: relative;
	isolation: isolate;
	overflow: hidden;
	border: 1px solid rgba(240, 233, 218, .25);
	background: linear-gradient(105deg, rgba(7, 8, 10, .97), rgba(18, 20, 24, .92)), var(--vs-tech-surface-texture) center / cover;
	box-shadow: inset 0 0 0 1px rgba(0, 0, 0, .52), 0 10px 22px rgba(0, 0, 0, .16);
}

.vs-directory-grid article::before,
.vs-unit-grid article::before,
.vs-unit-stats::before,
.vs-unit-special::before,
.vs-unit-guidance::before,
.vs-unit-weapons::before,
.vs-unit-reference::before,
.vs-unit-linked::before,
.vs-unit-equipment::before,
.vs-unit-lore::before,
.vs-related::before,
.vs-rule-version::before,
.vs-rule-filter::before,
.vs-rule-related__grid a::before,
.vs-journey__callout::before,
.vs-model-showcase::before,
.vs-detail__image::before,
.vs-battle-report__player::before,
.vs-battle-report__meta div::before,
.vs-path-grid a::before,
.vs-command-loop li::before,
.vs-journey__steps li::before,
.vs-detail:not(.vs-rule-detail) .vs-prose::before {
	position: absolute;
	z-index: 0;
	inset: 0;
	content: "";
	background: repeating-linear-gradient(0deg, rgba(255, 255, 255, .014) 0 1px, transparent 1px 4px), linear-gradient(90deg, rgba(181, 30, 39, .17), transparent 24%, transparent 83%, rgba(181, 30, 39, .08));
	pointer-events: none;
}

.vs-directory-grid article::after,
.vs-unit-grid article::after,
.vs-unit-stats::after,
.vs-unit-special::after,
.vs-unit-guidance::after,
.vs-unit-weapons::after,
.vs-unit-reference::after,
.vs-unit-linked::after,
.vs-unit-equipment::after,
.vs-unit-lore::after,
.vs-related::after,
.vs-rule-version::after,
.vs-rule-filter::after,
.vs-rule-related__grid a::after,
.vs-journey__callout::after,
.vs-model-showcase::after,
.vs-detail__image::after,
.vs-battle-report__player::after,
.vs-battle-report__meta div::after,
.vs-path-grid a::after,
.vs-command-loop li::after,
.vs-journey__steps li::after,
.vs-detail:not(.vs-rule-detail) .vs-prose::after {
	position: absolute;
	z-index: 0;
	top: var(--vs-panel-inset);
	right: var(--vs-panel-inset);
	bottom: var(--vs-panel-inset);
	left: var(--vs-panel-inset);
	content: "";
	border: 1px solid rgba(240, 233, 218, .13);
	background: linear-gradient(90deg, #b51e27 0 34px, transparent 34px) top left / 104px 2px no-repeat, linear-gradient(270deg, #b51e27 0 34px, transparent 34px) bottom right / 104px 2px no-repeat, linear-gradient(180deg, rgba(240, 233, 218, .58) 0 17px, transparent 17px) top left / 2px 58px no-repeat, linear-gradient(0deg, rgba(240, 233, 218, .58) 0 17px, transparent 17px) bottom right / 2px 58px no-repeat;
	pointer-events: none;
}

.vs-directory-grid article > *,
.vs-unit-grid article > *,
.vs-unit-stats > *,
.vs-unit-special > *,
.vs-unit-guidance > *,
.vs-unit-weapons > *,
.vs-unit-reference > *,
.vs-unit-linked > *,
.vs-unit-equipment > *,
.vs-unit-lore > *,
.vs-related > *,
.vs-rule-version > *,
.vs-rule-filter > *,
.vs-rule-related__grid a > *,
.vs-journey__callout > *,
.vs-model-showcase > *,
.vs-detail__image > *,
.vs-battle-report__player > *,
.vs-battle-report__meta div > *,
.vs-path-grid a > *,
.vs-command-loop li > *,
.vs-journey__steps li > *,
.vs-detail:not(.vs-rule-detail) .vs-prose > * { position: relative; z-index: 1; }

.vs-directory-grid article:hover,
.vs-directory-grid article:focus-within,
.vs-unit-grid article:hover,
.vs-unit-grid article:focus-within,
.vs-path-grid a:hover,
.vs-path-grid a:focus-visible { border-color: rgba(231, 120, 125, .88); box-shadow: inset 0 0 0 1px rgba(181, 30, 39, .44), 0 16px 30px rgba(0, 0, 0, .28); transform: translateY(-2px); }

.vs-directory-grid article,
.vs-unit-grid article,
.vs-path-grid a { transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease; }

.vs-directory-grid article > span,
.vs-directory-grid article > a:not(.vs-dispatch-grid__image-link):not(.vs-battle-report-grid__image-link),
.vs-directory-grid h2 a,
.vs-path-grid strong,
.vs-command-loop h3 { color: #f0e9da; }

.vs-detail:not(.vs-rule-detail) .vs-prose { max-width: none; margin-top: 1.35rem; padding: clamp(1.35rem, 3vw, 2.1rem); }
.vs-detail:not(.vs-rule-detail) .vs-prose > :first-child { margin-top: 0; }
.vs-detail:not(.vs-rule-detail) .vs-prose > :last-child { margin-bottom: 0; }
.vs-rule-version { padding: 1rem 1.15rem; }
.vs-related { max-width: none; padding: 1.35rem; border-top: 1px solid rgba(240, 233, 218, .25); }
.vs-related li { position: relative; z-index: 1; }

.vs-journey__steps { position: relative; isolation: isolate; color: #f0e9da; background: linear-gradient(105deg, rgba(7, 8, 10, .98), rgba(18, 20, 24, .95)), var(--vs-tech-surface-texture) center / cover; }
.vs-journey__steps > * { position: relative; z-index: 1; }
.vs-journey__steps ol { gap: var(--vs-panel-gap); border: 0; }
.vs-journey__steps li { min-height: 270px; border-right: 1px solid rgba(240, 233, 218, .25); }
.vs-journey__steps li:last-child { border-right: 1px solid rgba(240, 233, 218, .25); }
.vs-journey__steps a { color: #fff; }

.vs-button {
	position: relative;
	overflow: hidden;
	border: 1px solid rgba(240, 233, 218, .34);
	background: linear-gradient(135deg, #c72731, #8e1720);
	box-shadow: inset 0 0 0 1px rgba(0, 0, 0, .32), 0 6px 14px rgba(0, 0, 0, .18);
}
.vs-button::after { position: absolute; top: 6px; right: 6px; bottom: 6px; left: 6px; content: ""; border: 1px solid rgba(255, 255, 255, .18); pointer-events: none; }
.vs-button--quiet { background: linear-gradient(105deg, rgba(7, 8, 10, .95), rgba(28, 31, 34, .9)), var(--vs-tech-surface-texture) center / cover; }
.vs-button:hover,
.vs-button:focus-visible { border-color: #f0e9da; box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .14), 0 8px 18px rgba(0, 0, 0, .3); }

/* Shared action treatment. Primary calls to action retain their red signal;
   quiet actions use the same tactical framing with a darker transmission. */
.vs-button,
.vs-header-cta,
.vs-rule-filter button,
.vs-atlas-search button:not(.vs-atlas-button--quiet) {
	position: relative;
	isolation: isolate;
	overflow: hidden;
	border: 1px solid rgba(240, 233, 218, .34);
	background: linear-gradient(135deg, #cf2b36, #86151e 72%), var(--vs-tech-surface-texture) center / cover;
	box-shadow: inset 0 0 0 1px rgba(0, 0, 0, .36), 0 6px 14px rgba(0, 0, 0, .22);
	color: #fff;
	transition: border-color .18s ease, background .18s ease, box-shadow .18s ease, transform .18s ease;
}
.vs-button::after,
.vs-header-cta::after,
.vs-rule-filter button::after,
.vs-atlas-search button:not(.vs-atlas-button--quiet)::after {
	position: absolute;
	z-index: 0;
	top: 6px;
	right: 6px;
	bottom: 6px;
	left: 6px;
	content: "";
	border: 1px solid rgba(255, 255, 255, .18);
	pointer-events: none;
}
.vs-button > *,
.vs-header-cta > *,
.vs-rule-filter button > *,
.vs-atlas-search button:not(.vs-atlas-button--quiet) > * { position: relative; z-index: 1; }
.vs-button--quiet,
.vs-community .vs-button--quiet {
	background: linear-gradient(105deg, rgba(7, 8, 10, .98), rgba(30, 33, 38, .94)), var(--vs-tech-surface-texture) center / cover;
	color: #f0e9da;
}
.vs-header-newsletter {
	background: linear-gradient(105deg, rgba(7, 8, 10, .98), rgba(30, 18, 21, .94)), var(--vs-tech-surface-texture) center / cover;
}
.vs-community .vs-button:not(.vs-button--quiet) { background: linear-gradient(135deg, #cf2b36, #86151e 72%), var(--vs-tech-surface-texture) center / cover; }
.vs-button:hover,
.vs-button:focus-visible,
.vs-header-cta:hover,
.vs-header-cta:focus-visible,
.vs-rule-filter button:hover,
.vs-rule-filter button:focus-visible,
.vs-atlas-search button:not(.vs-atlas-button--quiet):hover,
.vs-atlas-search button:not(.vs-atlas-button--quiet):focus-visible {
	border-color: #f0e9da;
	background: linear-gradient(100deg, rgba(239, 67, 77, .95), rgba(120, 18, 26, .98) 70%), var(--vs-tech-surface-texture) center / cover;
	box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .16), 0 9px 19px rgba(0, 0, 0, .34);
	color: #fff;
	outline: 2px solid rgba(240, 233, 218, .82);
	outline-offset: 2px;
	transform: translateY(-1px);
}
.vs-button--quiet:hover,
.vs-button--quiet:focus-visible,
.vs-community .vs-button--quiet:hover,
.vs-community .vs-button--quiet:focus-visible,
.vs-header-newsletter:hover,
.vs-header-newsletter:focus-visible {
	background: linear-gradient(90deg, rgba(181, 30, 39, .48), rgba(19, 22, 26, .98) 62%), var(--vs-tech-surface-texture) center / cover;
	color: #fff;
}

.vs-rule-quicknav a {
	position: relative;
	z-index: 1;
	isolation: isolate;
	overflow: hidden;
	border-color: rgba(240, 233, 218, .3);
	background: linear-gradient(105deg, rgba(7, 8, 10, .96), rgba(27, 30, 34, .92)), var(--vs-tech-surface-texture) center / cover;
	box-shadow: inset 0 0 0 1px rgba(0, 0, 0, .42), inset 0 0 0 5px rgba(240, 233, 218, .018);
	color: #f0e9da;
	transition: border-color .18s ease, background .18s ease, box-shadow .18s ease;
}
.vs-rule-quicknav a:hover,
.vs-rule-quicknav a:focus-visible,
.vs-rule-quicknav a.is-active {
	border-color: rgba(240, 233, 218, .68);
	background: linear-gradient(100deg, rgba(190, 37, 47, .92), rgba(111, 18, 25, .96) 68%), var(--vs-tech-surface-texture) center / cover;
	box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .12), 0 5px 12px rgba(0, 0, 0, .22);
	color: #fff;
}
.vs-rule-quicknav a:focus-visible { outline: 2px solid #f0e9da; outline-offset: -4px; }

/* The Atlas search and its matching-record cards share the system, but the
   map, map layers, map controls, timeline and map information panel do not. */
.vs-atlas-search,
.vs-atlas-results {
	position: relative;
	isolation: isolate;
	overflow: hidden;
	border: 1px solid rgba(240, 233, 218, .25);
	background: linear-gradient(105deg, rgba(7, 8, 10, .97), rgba(18, 20, 24, .92)), var(--vs-tech-surface-texture) center / cover;
	box-shadow: inset 0 0 0 1px rgba(0, 0, 0, .52), 0 10px 22px rgba(0, 0, 0, .16);
}
.vs-atlas-search::before,
.vs-atlas-results::before { position: absolute; z-index: 0; inset: 0; content: ""; background: repeating-linear-gradient(0deg, rgba(255, 255, 255, .014) 0 1px, transparent 1px 4px), linear-gradient(90deg, rgba(181, 30, 39, .17), transparent 27%, transparent 83%, rgba(181, 30, 39, .08)); pointer-events: none; }
.vs-atlas-search::after,
.vs-atlas-results::after { position: absolute; z-index: 0; top: var(--vs-panel-inset); right: var(--vs-panel-inset); bottom: var(--vs-panel-inset); left: var(--vs-panel-inset); content: ""; border: 1px solid rgba(240, 233, 218, .13); background: linear-gradient(90deg, #b51e27 0 34px, transparent 34px) top left / 104px 2px no-repeat, linear-gradient(270deg, #b51e27 0 34px, transparent 34px) bottom right / 104px 2px no-repeat, linear-gradient(180deg, rgba(240, 233, 218, .58) 0 17px, transparent 17px) top left / 2px 58px no-repeat, linear-gradient(0deg, rgba(240, 233, 218, .58) 0 17px, transparent 17px) bottom right / 2px 58px no-repeat; pointer-events: none; }
.vs-atlas-search > *,
.vs-atlas-results > * { position: relative; z-index: 1; }
.vs-atlas-search { box-sizing: border-box; width: calc(100% - 2.5rem); max-width: 1120px; margin-top: 1.2rem; margin-right: auto; margin-bottom: var(--vs-panel-gap); margin-left: auto; padding: var(--vs-panel-padding); }
.vs-atlas-search input { border-color: rgba(240, 233, 218, .38); background: linear-gradient(135deg, rgba(7, 8, 10, .94), rgba(26, 29, 33, .9)); box-shadow: inset 0 0 0 1px rgba(0, 0, 0, .45), inset 2px 0 0 rgba(181, 30, 39, .55); color: #f0e9da; }
.vs-atlas-search input::placeholder { color: rgba(240, 233, 218, .56); }
.vs-atlas-search input:hover { border-color: rgba(231, 120, 125, .88); }
.vs-atlas-search input:focus-visible { outline: 3px solid #b51e27; outline-offset: 2px; }
.vs-atlas-search button { border-color: rgba(240, 233, 218, .34); box-shadow: inset 0 0 0 1px rgba(0, 0, 0, .3); }
.vs-atlas-search .vs-atlas-button--quiet { background: linear-gradient(105deg, rgba(7, 8, 10, .95), rgba(28, 31, 34, .9)); }
.vs-atlas-results { box-sizing: border-box; width: calc(100% - 2.5rem); max-width: 1120px; margin-top: var(--vs-panel-gap); margin-right: auto; margin-bottom: 1rem; margin-left: auto; padding: var(--vs-panel-padding); }
.vs-atlas-results [data-atlas-results-list] { gap: var(--vs-panel-gap); }
.vs-atlas-results button {
	position: relative;
	min-height: 68px;
	padding: .7rem .85rem .7rem .95rem;
	border: 1px solid rgba(240, 233, 218, .3);
	background: linear-gradient(105deg, rgba(7, 8, 10, .96), rgba(27, 30, 34, .92)), var(--vs-tech-surface-texture) center / cover;
	box-shadow: inset 0 0 0 1px rgba(0, 0, 0, .42), inset 0 0 0 5px rgba(240, 233, 218, .018);
	color: #f0e9da;
	transition: border-color .18s ease, background .18s ease, box-shadow .18s ease;
}
.vs-atlas-results button:hover,
.vs-atlas-results button:focus-visible { border-color: rgba(240, 233, 218, .68); background: linear-gradient(100deg, rgba(190, 37, 47, .92), rgba(111, 18, 25, .96) 68%), var(--vs-tech-surface-texture) center / cover; box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .12), 0 5px 12px rgba(0, 0, 0, .22); color: #fff; outline: 2px solid #f0e9da; outline-offset: -4px; }

/* Public form controls inherit the Rules Index treatment. Checkboxes, radio
   controls, range sliders and Atlas map/timeline buttons are intentionally
   excluded so their specialised interactions remain clear and reliable. */
body:not(.wp-admin) main :is(input[type="text"], input[type="search"], input[type="email"], input[type="url"], input[type="tel"], input[type="number"], input[type="password"], textarea, select) {
	min-height: 46px;
	padding: .65rem .8rem;
	border: 1px solid rgba(240, 233, 218, .38);
	border-radius: 0;
	background: linear-gradient(135deg, rgba(7, 8, 10, .94), rgba(26, 29, 33, .9));
	box-shadow: inset 0 0 0 1px rgba(0, 0, 0, .45), inset 2px 0 0 rgba(181, 30, 39, .55);
	color: #f0e9da;
	font: inherit;
}
body:not(.wp-admin) main :is(input[type="text"], input[type="search"], input[type="email"], input[type="url"], input[type="tel"], input[type="number"], input[type="password"], textarea)::placeholder { color: rgba(240, 233, 218, .56); }
body:not(.wp-admin) main select:not([multiple]) {
	padding-right: 2.65rem;
	appearance: none;
	background: linear-gradient(45deg, transparent 50%, #e7787d 50%) calc(100% - 17px) 52% / 7px 7px no-repeat, linear-gradient(135deg, #e7787d 50%, transparent 50%) calc(100% - 11px) 52% / 7px 7px no-repeat, linear-gradient(135deg, rgba(7, 8, 10, .94), rgba(26, 29, 33, .9));
	cursor: pointer;
}
body:not(.wp-admin) main select option { background: #16191d; color: #f0e9da; }
body:not(.wp-admin) main :is(input[type="text"], input[type="search"], input[type="email"], input[type="url"], input[type="tel"], input[type="number"], input[type="password"], textarea, select):hover { border-color: rgba(231, 120, 125, .88); }
body:not(.wp-admin) main :is(input[type="text"], input[type="search"], input[type="email"], input[type="url"], input[type="tel"], input[type="number"], input[type="password"], textarea, select):focus-visible { outline: 3px solid #b51e27; outline-offset: 2px; }

/* Approved Atlas controls: these sit over the map but do not alter its
   panning, zooming, marker or timeline behaviour. */
.vs-atlas-map__filter > button,
.vs-atlas-map__controls button {
	position: relative;
	overflow: hidden;
	border: 1px solid rgba(240, 233, 218, .38);
	background: linear-gradient(105deg, rgba(7, 8, 10, .96), rgba(26, 29, 33, .93)), var(--vs-tech-surface-texture) center / cover;
	box-shadow: inset 0 0 0 1px rgba(0, 0, 0, .5), 0 4px 12px rgba(0, 0, 0, .34);
	color: #f0e9da;
}
.vs-atlas-map__filter > button::after,
.vs-atlas-map__controls button::after { position: absolute; top: 5px; right: 5px; bottom: 5px; left: 5px; content: ""; border: 1px solid rgba(240, 233, 218, .16); pointer-events: none; }
.vs-atlas-map__filter > button span { color: #e7787d; }
.vs-atlas-map__filter-menu { overflow: hidden; border-color: rgba(240, 233, 218, .34); background: linear-gradient(105deg, rgba(7, 8, 10, .98), rgba(22, 25, 29, .96)), var(--vs-tech-surface-texture) center / cover; box-shadow: inset 0 0 0 1px rgba(0, 0, 0, .5), 0 14px 28px rgba(0, 0, 0, .42); }
.vs-atlas-map__filter-menu button { position: relative; padding-left: 1rem; }
.vs-atlas-map__filter-menu button::before { display: inline-block; width: 13px; height: 2px; margin: 0 .45rem .2rem 0; background: #b51e27; content: ""; vertical-align: middle; }
.vs-atlas-map__filter > button:hover,
.vs-atlas-map__filter > button:focus-visible,
.vs-atlas-map__controls button:hover,
.vs-atlas-map__controls button:focus-visible { border-color: #f0e9da; background: linear-gradient(90deg, rgba(181, 30, 39, .34), rgba(18, 20, 24, .94) 62%), var(--vs-tech-surface-texture) center / cover; }

/* The map-layer pop-over uses the same compartmentalised communications-panel
   language as the library cards, while remaining a compact overlay control. */
.vs-atlas-map__filter-menu {
	gap: .22rem;
	padding: .28rem;
	border-top-color: rgba(231, 120, 125, .7);
	background-image: linear-gradient(105deg, rgba(5, 6, 8, .985), rgba(28, 31, 35, .965)), var(--vs-tech-surface-texture);
}
.vs-atlas-map__filter-menu::before {
	display: block;
	margin: 0 .18rem .12rem;
	padding: .28rem .48rem .22rem;
	border-bottom: 1px solid rgba(240, 233, 218, .2);
	color: #e7787d;
	content: "SELECT MAP LAYER";
	font-size: .61rem;
	font-weight: 800;
	letter-spacing: .14em;
}
.vs-atlas-map__filter-menu button {
	min-height: 34px;
	border: 1px solid transparent;
	border-bottom: 1px solid rgba(240, 233, 218, .14);
	background: linear-gradient(90deg, rgba(255, 255, 255, .025), transparent);
	color: rgba(240, 233, 218, .9);
	font-size: .76rem;
	font-weight: 700;
	letter-spacing: .035em;
	text-transform: uppercase;
	transition: background .16s ease, border-color .16s ease, color .16s ease;
}
.vs-atlas-map__filter-menu button:last-child { border-bottom-color: transparent; }
.vs-atlas-map__filter-menu button::before {
	width: 15px;
	background: rgba(231, 120, 125, .72);
	box-shadow: 0 0 8px rgba(181, 30, 39, .35);
}
.vs-atlas-map__filter-menu button:hover,
.vs-atlas-map__filter-menu button:focus-visible,
.vs-atlas-map__filter-menu button.is-active {
	border-color: rgba(231, 120, 125, .68);
	background: linear-gradient(90deg, rgba(181, 30, 39, .62), rgba(45, 15, 19, .72) 58%, rgba(19, 22, 26, .88));
	color: #fff;
	outline: 0;
}
.vs-atlas-map__filter-menu button:hover::before,
.vs-atlas-map__filter-menu button:focus-visible::before,
.vs-atlas-map__filter-menu button.is-active::before { background: #fff; box-shadow: 0 0 10px rgba(255, 255, 255, .58); }

.vs-atlas-timeline__arrow {
	position: relative;
	overflow: hidden;
	border: 1px solid rgba(240, 233, 218, .38);
	background: linear-gradient(105deg, rgba(7, 8, 10, .96), rgba(26, 29, 33, .93)), var(--vs-tech-surface-texture) center / cover;
	box-shadow: inset 0 0 0 1px rgba(0, 0, 0, .5), 0 4px 12px rgba(0, 0, 0, .34);
	color: #f0e9da;
}
.vs-atlas-timeline__arrow::before { position: absolute; top: 5px; right: 5px; bottom: 5px; left: 5px; content: ""; border: 1px solid rgba(240, 233, 218, .16); pointer-events: none; }
.vs-atlas-timeline__arrow:hover,
.vs-atlas-timeline__arrow:focus-visible { border-color: #f0e9da; background: linear-gradient(90deg, rgba(181, 30, 39, .34), rgba(18, 20, 24, .94) 62%), var(--vs-tech-surface-texture) center / cover; }

@media (max-width: 680px) {
	.vs-contact { width: min(100% - 1.5rem, var(--wp--style--global--content-size, 1120px)); padding-top: 2rem; }
	.vs-contact__panel { grid-template-columns: 1fr; }
	.vs-contact__panel-copy { padding-bottom: .25rem; border-right: 0; border-bottom: 1px solid rgba(240, 233, 218, .15); }
	.vs-contact__form { grid-template-columns: 1fr; }
	.vs-contact__form p { grid-column: 1 / -1; }
	.vs-policy { width: min(100% - 1.5rem, var(--wp--style--global--content-size, 1120px)); margin-top: 1.75rem; padding: calc(var(--vs-panel-inset) + .9rem); }
	.vs-not-found { width: min(100% - 1.5rem, var(--wp--style--global--content-size, 1120px)); margin-top: 1.75rem; }
	.vs-build-guides__search > div, .vs-unit-filter > div { grid-template-columns: 1fr; }
	.vs-build-guides__grid { grid-template-columns: 1fr; }
	.vs-atlas-search > div { grid-template-columns: 1fr; }
	.vs-atlas-explorer__status { display: block; }
	.vs-atlas-explorer__status p + p { margin-top: .4rem; }
	.vs-atlas-map { width: calc(100% - 2.5rem); padding: 0; }
	.vs-atlas-map__viewport { height: 73vw; min-height: 300px; }
	.vs-atlas-map__filter { top: .6rem; right: .6rem; }
	.vs-atlas-map__filter > button { gap: .45rem; font-size: .68rem; }
	.vs-atlas-detail { width: min(310px, calc(100% - 1.5rem)); max-height: calc(100% - 1.5rem); }
	.vs-atlas-timeline__heading { align-items: flex-start; flex-direction: column; }
	.vs-atlas-timeline__stage { grid-template-columns: 38px minmax(0, 1fr) 38px; gap: .35rem; }
	.vs-atlas-timeline__arrow { min-width: 38px; min-height: 56px; padding: .35rem; }
	.vs-atlas-timeline__rail { padding: 0; }
	.vs-atlas-timeline__spacer { flex-basis: 10%; }
	.vs-atlas-timeline-event { flex-basis: 80%; }
	.vs-atlas-timeline-detail { height: 132px; margin-right: 0; margin-left: 0; padding: .65rem .75rem; }
	.vs-rule-local-nav,
	.vs-rule-related__grid,
	.vs-unit-layout,
	.vs-battle-report__meta { grid-template-columns: 1fr; }
	.vs-unit-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.vs-unit-stats dl { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.vs-rule-detail { margin-right: 1.25rem; margin-left: 1.25rem; padding-right: 1.25rem; padding-left: 1.25rem; }
	.vs-rule-detail .vs-prose { padding: 1.2rem; }
}
