/* base/global.css — split from theme.css */

.wp-site-blocks {
	display: flex;
	flex-direction: column;
	min-height: 100vh;
}

.wp-site-blocks > header + main.site-main {
	margin-block-start: 0;
}

.site-main {
	flex: 1 0 auto;
}

:target {
	scroll-margin-top: 6.5rem;
}

/* Decorative page grid (html, behind body) */
html::before {
	content: "";
	position: fixed;
	inset: 0;
	z-index: -2;
	pointer-events: none;
	opacity: 0.16;
	background-image:
		linear-gradient( rgba( 87, 66, 185, 0.06 ) 1px, transparent 1px ),
		linear-gradient( 90deg, rgba( 87, 66, 185, 0.06 ) 1px, transparent 1px );
	background-size: 34px 34px;
	mask-image: linear-gradient( to bottom, #000, transparent 70% );
}

/* Page grid off while books art is used (masks were unreliable in browsers) */
html[data-rtw-books-bg]::before,
html:has( body.rtw-has-books-bg )::before {
	display: none;
}

body.rtw-has-books-bg::before {
	--rtw-books-brightness: 1.05;
	--rtw-books-saturate: 1.06;
	--rtw-books-anchor-y: 36%;
	--rtw-books-offset-y: 150px;

	content: "";
	position: fixed;
	inset: 0;
	z-index: -1;
	pointer-events: none;
	background-image: var( --rtw-books-bg-image );
	background-repeat: no-repeat;
	background-position: 0 calc( var( --rtw-books-anchor-y ) - var( --rtw-books-offset-y ) );
	background-size: clamp( 16rem, 38vw, 32rem ) auto;
	opacity: var( --rtw-books-bg-opacity, 0.54 );
	filter: brightness( var( --rtw-books-brightness ) ) saturate( var( --rtw-books-saturate ) );
	mask-image: linear-gradient( to right, rgb( 0 0 0 / 0.95 ) 0%, rgb( 0 0 0 / 0.55 ) 42%, transparent 72% );
	-webkit-mask-image: linear-gradient( to right, rgb( 0 0 0 / 0.95 ) 0%, rgb( 0 0 0 / 0.55 ) 42%, transparent 72% );
}

@media ( max-width: 720px ) {
	body.rtw-has-books-bg::before {
		--rtw-books-anchor-y: 40%;
		--rtw-books-offset-y: 150px;

		background-size: clamp( 14rem, 68vw, 26rem ) auto;
		background-position: 0 calc( var( --rtw-books-anchor-y ) - var( --rtw-books-offset-y ) );
		opacity: var( --rtw-books-bg-opacity-mobile, var( --rtw-books-bg-opacity, 0.54 ) );
	}
}

body::after {
	content: "";
	position: fixed;
	inset: -25%;
	z-index: -3;
	pointer-events: none;
	opacity: 0.55;
	background:
		radial-gradient( ellipse 42% 38% at 18% 22%, var( --body-glow-1 ), transparent 58% ),
		radial-gradient( ellipse 36% 42% at 82% 12%, var( --body-glow-2 ), transparent 52% ),
		radial-gradient( ellipse 48% 40% at 72% 78%, var( --body-glow-3 ), transparent 55% );
	animation: rtw-orb-pulse 14s ease-in-out infinite;
	will-change: opacity;
}

.reclaim-particles-canvas {
	position: fixed;
	inset: 0;
	z-index: -2;
	display: block;
	width: 100%;
	height: 100%;
	pointer-events: none;
}

@media ( prefers-color-scheme: dark ) {
	:root:not( [data-theme="light"] ) body {
		background:
			radial-gradient( circle at 12% 0%, var( --body-glow-1 ), transparent 28rem ),
			radial-gradient( circle at 88% 14%, var( --body-glow-2 ), transparent 30rem ),
			radial-gradient( circle at 50% 100%, var( --body-glow-3 ), transparent 32rem ),
			linear-gradient( 135deg, #111418 0%, #171b22 54%, #1c2129 100% );
	}

	:root:not( [data-theme="light"] ) html::before {
		opacity: 0.1;
		background-image:
			linear-gradient( rgba( 238, 241, 245, 0.05 ) 1px, transparent 1px ),
			linear-gradient( 90deg, rgba( 238, 241, 245, 0.05 ) 1px, transparent 1px );
	}

	:root:not( [data-theme="light"] ) {
		--rtw-books-bg-opacity: 0.5;
		--rtw-books-bg-opacity-mobile: 0.48;
	}

	:root:not( [data-theme="light"] ) body.rtw-has-books-bg::before {
		--rtw-books-brightness: 1.16;
		--rtw-books-saturate: 1.1;
	}
}

:root[data-theme="dark"] body {
	background:
		radial-gradient( circle at 12% 0%, var( --body-glow-1 ), transparent 28rem ),
		radial-gradient( circle at 88% 14%, var( --body-glow-2 ), transparent 30rem ),
		radial-gradient( circle at 50% 100%, var( --body-glow-3 ), transparent 32rem ),
		linear-gradient( 135deg, #111418 0%, #171b22 54%, #1c2129 100% );
}

:root[data-theme="dark"] html::before {
	opacity: 0.1;
	background-image:
		linear-gradient( rgba( 238, 241, 245, 0.05 ) 1px, transparent 1px ),
		linear-gradient( 90deg, rgba( 238, 241, 245, 0.05 ) 1px, transparent 1px );
}

:root[data-theme="dark"] {
	--rtw-books-bg-opacity: 0.5;
	--rtw-books-bg-opacity-mobile: 0.48;
}

:root[data-theme="dark"] body.rtw-has-books-bg::before {
	--rtw-books-brightness: 1.16;
	--rtw-books-saturate: 1.1;
}

body.block-editor-iframe__body.editor-styles-wrapper,
body.editor-styles-wrapper {
	background: var( --wp--preset--color--background, var( --bg ) );
	color: var( --wp--preset--color--ink, var( --ink ) );
}

body.block-editor-iframe__body.editor-styles-wrapper::before,
body.editor-styles-wrapper::before {
	display: none;
}

html:has( body.editor-styles-wrapper )::before,
html:has( body.block-editor-iframe__body )::before {
	display: none;
}

body.block-editor-iframe__body.editor-styles-wrapper::after,
body.editor-styles-wrapper::after {
	display: none;
}

@keyframes rtw-plus-spin {
	from {
		transform: rotate( 0deg );
	}

	to {
		transform: rotate( 360deg );
	}
}

@media ( prefers-reduced-motion: reduce ) {
	body::after,
	.hero::before,
	.hero::after,
	.page-hero::before {
		animation: none;
	}

	.reclaim-particles-canvas {
		display: none;
	}
}

body.block-editor-iframe__body.editor-styles-wrapper .editor-post-title__input,
body.editor-styles-wrapper .editor-post-title__input {
	max-width: min( calc( 100% - 2rem ), 42rem );
}

body.admin-bar header.wp-block-template-part,
body.admin-bar .site-header {
	top: 32px;
}

img,
svg {
	max-width: 100%;
}

code,
pre {
	font-family: "SFMono-Regular", Consolas, "Liberation Mono", monospace;
}

pre {
	overflow-x: auto;
	padding: 1.25rem;
	border: 2px solid var( --stroke-strong );
	border-radius: var( --radius-sm );
	background: var( --pre-bg );
	color: var( --pre-ink );
	line-height: 1.5;
	box-shadow: 0.3rem 0.3rem 0 rgba( 16, 35, 55, 0.55 );
}

code:not( pre code ) {
	-webkit-box-decoration-break: clone;
	box-decoration-break: clone;
	overflow-wrap: anywhere;
	padding: 0.15rem 0.35rem;
	border: 1px solid rgba( 16, 35, 55, 0.24 );
	border-radius: var( --radius-sm );
	background: var( --inline-code-bg );
	color: var( --accent-strong );
}

.wp-block-code.is-style-reclaim-the-web {
	--rtw-code-base: var( --ink );
	--rtw-code-comment: var( --muted );
	--rtw-code-keyword: #005f73;
	--rtw-code-boolean: #8a5600;
	--rtw-code-literal: #a34f00;
	--rtw-code-string: #006f91;
	--rtw-code-special-string: #b7353b;
	--rtw-code-macro-name: #00778f;
	--rtw-code-variable-definition: #705000;
	--rtw-code-type-name: #007857;
	--rtw-code-class-name: #8a4f00;
	--rtw-code-punctuation: #3c5664;
	--rtw-code-invalid: #b00035;

	/* Enhanced Code block reads these to color tokenized output. */
	--wp--custom--core-code--comment: var( --rtw-code-comment );
	--wp--custom--core-code--keyword: var( --rtw-code-keyword );
	--wp--custom--core-code--boolean: var( --rtw-code-boolean );
	--wp--custom--core-code--literal: var( --rtw-code-literal );
	--wp--custom--core-code--string: var( --rtw-code-string );
	--wp--custom--core-code--special-string: var( --rtw-code-special-string );
	--wp--custom--core-code--specialString: var( --rtw-code-special-string );
	--wp--custom--core-code--macro-name: var( --rtw-code-macro-name );
	--wp--custom--core-code--macroName: var( --rtw-code-macro-name );
	--wp--custom--core-code--variable-definition: var( --rtw-code-variable-definition );
	--wp--custom--core-code--variableDefinition: var( --rtw-code-variable-definition );
	--wp--custom--core-code--type-name: var( --rtw-code-type-name );
	--wp--custom--core-code--typeName: var( --rtw-code-type-name );
	--wp--custom--core-code--class-name: var( --rtw-code-class-name );
	--wp--custom--core-code--className: var( --rtw-code-class-name );
	--wp--custom--core-code--invalid: var( --rtw-code-invalid );

	position: relative;
	contain: inline-size;
	overflow: hidden;
	padding: 1.25rem;
	border: 2px solid var( --stroke-strong );
	border-radius: var( --radius-sm );
	background:
		linear-gradient( 135deg, rgba( 255, 196, 64, 0.18 ), transparent 42% ),
		linear-gradient( 160deg, #fffef4, #fff6dd 58%, #efe8c7 );
	color: var( --rtw-code-base );
	box-shadow: var( --shadow-soft );
	color-scheme: light;
}

pre.wp-block-code.is-style-reclaim-the-web {
	overflow-x: auto;
	overflow-y: hidden;
}

.wp-block-code.is-style-reclaim-the-web .cm-editor,
.wp-block-code.is-style-reclaim-the-web .cm-scroller {
	width: 100%;
	max-width: 100%;
	min-width: 0;
}

.wp-block-code.is-style-reclaim-the-web .cm-editor {
	contain: inline-size;
	overflow: hidden;
}

.wp-block-code.is-style-reclaim-the-web .cm-scroller {
	contain: layout paint inline-size;
	overflow-x: auto;
	overflow-y: hidden;
}

.wp-block-code.is-style-reclaim-the-web .cm-scroller pre {
	width: max-content;
	min-width: 100%;
	max-width: none;
	margin: 0;
	overflow: visible;
}

@media ( prefers-color-scheme: dark ) {
	:root:not( [data-theme="light"] ) .wp-block-code.is-style-reclaim-the-web {
		--rtw-code-base: #fff0cf;
		--rtw-code-comment: #caa57d;
		--rtw-code-keyword: #ffb45a;
		--rtw-code-boolean: #ffd166;
		--rtw-code-literal: #ff9f43;
		--rtw-code-string: #ffd36a;
		--rtw-code-special-string: #ff7a5c;
		--rtw-code-macro-name: #ff9f43;
		--rtw-code-variable-definition: #ffe08a;
		--rtw-code-type-name: #e8b66a;
		--rtw-code-class-name: #ffc478;
		--rtw-code-punctuation: #e7c59a;
		--rtw-code-invalid: #ff6f8f;

		border-color: var( --stroke-strong );
		background:
			linear-gradient( 135deg, rgba( 255, 196, 64, 0.12 ), transparent 42% ),
			linear-gradient( 160deg, #130c08, #3b2114 58%, #2a1a13 );
		box-shadow: var( --shadow-soft );
		color-scheme: dark;
	}
}

:root[data-theme="dark"] .wp-block-code.is-style-reclaim-the-web {
	--rtw-code-base: #fff0cf;
	--rtw-code-comment: #caa57d;
	--rtw-code-keyword: #ffb45a;
	--rtw-code-boolean: #ffd166;
	--rtw-code-literal: #ff9f43;
	--rtw-code-string: #ffd36a;
	--rtw-code-special-string: #ff7a5c;
	--rtw-code-macro-name: #ff9f43;
	--rtw-code-variable-definition: #ffe08a;
	--rtw-code-type-name: #e8b66a;
	--rtw-code-class-name: #ffc478;
	--rtw-code-punctuation: #e7c59a;
	--rtw-code-invalid: #ff6f8f;

	border-color: var( --stroke-strong );
	background:
		linear-gradient( 135deg, rgba( 255, 196, 64, 0.12 ), transparent 42% ),
		linear-gradient( 160deg, #130c08, #3b2114 58%, #2a1a13 );
	box-shadow: var( --shadow-soft );
	color-scheme: dark;
}

.wp-block-code.is-style-reclaim-the-web::before {
	position: absolute;
	inset: 0 0 auto;
	height: 4px;
	background: linear-gradient( 90deg, var( --accent ), var( --coral ) 50%, var( --yellow ) );
	content: "";
	pointer-events: none;
}

.wp-block-code.is-style-reclaim-the-web code {
	background: transparent;
	color: inherit;
}

.wp-block-code.is-style-reclaim-the-web .token.comment,
.wp-block-code.is-style-reclaim-the-web .token.prolog,
.wp-block-code.is-style-reclaim-the-web .token.doctype,
.wp-block-code.is-style-reclaim-the-web .token.cdata,
.wp-block-code.is-style-reclaim-the-web .hljs-comment,
.wp-block-code.is-style-reclaim-the-web .cm-comment {
	color: var( --rtw-code-comment );
	font-style: italic;
}

.wp-block-code.is-style-reclaim-the-web .token.keyword,
.wp-block-code.is-style-reclaim-the-web .token.atrule,
.wp-block-code.is-style-reclaim-the-web .hljs-keyword,
.wp-block-code.is-style-reclaim-the-web .hljs-selector-tag,
.wp-block-code.is-style-reclaim-the-web .cm-keyword {
	color: var( --rtw-code-keyword );
}

.wp-block-code.is-style-reclaim-the-web .token.boolean,
.wp-block-code.is-style-reclaim-the-web .token.constant,
.wp-block-code.is-style-reclaim-the-web .hljs-literal,
.wp-block-code.is-style-reclaim-the-web .cm-atom {
	color: var( --rtw-code-boolean );
}

.wp-block-code.is-style-reclaim-the-web .token.number,
.wp-block-code.is-style-reclaim-the-web .hljs-number,
.wp-block-code.is-style-reclaim-the-web .cm-number {
	color: var( --rtw-code-literal );
}

.wp-block-code.is-style-reclaim-the-web .token.string,
.wp-block-code.is-style-reclaim-the-web .token.char,
.wp-block-code.is-style-reclaim-the-web .token.attr-value,
.wp-block-code.is-style-reclaim-the-web .hljs-string,
.wp-block-code.is-style-reclaim-the-web .cm-string {
	color: var( --rtw-code-string );
}

.wp-block-code.is-style-reclaim-the-web .token.regex,
.wp-block-code.is-style-reclaim-the-web .token.important,
.wp-block-code.is-style-reclaim-the-web .hljs-regexp,
.wp-block-code.is-style-reclaim-the-web .cm-string-2 {
	color: var( --rtw-code-special-string );
}

.wp-block-code.is-style-reclaim-the-web .token.function,
.wp-block-code.is-style-reclaim-the-web .token.builtin,
.wp-block-code.is-style-reclaim-the-web .hljs-title,
.wp-block-code.is-style-reclaim-the-web .hljs-function,
.wp-block-code.is-style-reclaim-the-web .cm-builtin {
	color: var( --rtw-code-macro-name );
}

.wp-block-code.is-style-reclaim-the-web .token.variable,
.wp-block-code.is-style-reclaim-the-web .token.property,
.wp-block-code.is-style-reclaim-the-web .token.attr-name,
.wp-block-code.is-style-reclaim-the-web .hljs-variable,
.wp-block-code.is-style-reclaim-the-web .hljs-attr,
.wp-block-code.is-style-reclaim-the-web .cm-variable,
.wp-block-code.is-style-reclaim-the-web .cm-def {
	color: var( --rtw-code-variable-definition );
}

.wp-block-code.is-style-reclaim-the-web .token.tag,
.wp-block-code.is-style-reclaim-the-web .token.selector,
.wp-block-code.is-style-reclaim-the-web .hljs-type,
.wp-block-code.is-style-reclaim-the-web .cm-type {
	color: var( --rtw-code-type-name );
}

.wp-block-code.is-style-reclaim-the-web .token.class-name,
.wp-block-code.is-style-reclaim-the-web .hljs-class,
.wp-block-code.is-style-reclaim-the-web .hljs-title.class_ {
	color: var( --rtw-code-class-name );
}

.wp-block-code.is-style-reclaim-the-web .token.punctuation,
.wp-block-code.is-style-reclaim-the-web .token.operator,
.wp-block-code.is-style-reclaim-the-web .hljs-punctuation,
.wp-block-code.is-style-reclaim-the-web .cm-operator {
	color: var( --rtw-code-punctuation );
}

.wp-block-code.is-style-reclaim-the-web .token.deleted,
.wp-block-code.is-style-reclaim-the-web .token.error,
.wp-block-code.is-style-reclaim-the-web .hljs-deletion,
.wp-block-code.is-style-reclaim-the-web .cm-invalid {
	color: var( --rtw-code-invalid );
}

a {
	color: var( --accent-strong );
	text-underline-offset: 0.18em;
}

a,
button,
.button,
.wp-block-button__link,
.wp-element-button,
input[type="submit"] {
	transition:
		background-color 150ms ease,
		border-color 150ms ease,
		box-shadow 150ms ease,
		color 150ms ease,
		transform 150ms ease;
}

a:where( :hover ):where( :not( .button ):not( .wp-block-button__link ):not( .wp-element-button ) ) {
	color: var( --accent-rose );
}

:focus-visible {
	outline: 3px solid var( --accent-blue );
	outline-offset: 4px;
}

.screen-reader-text {
	position: absolute;
	width: 1px;
	height: 1px;
	margin: -1px;
	overflow: hidden;
	clip: rect( 1px, 1px, 1px, 1px );
	clip-path: inset( 50% );
	border: 0;
	white-space: nowrap;
}

.screen-reader-text:focus {
	left: 1rem;
	top: 1rem;
	z-index: 100;
	width: auto;
	height: auto;
	margin: 0;
	overflow: visible;
	clip: auto;
	clip-path: none;
	padding: 0.65rem 0.9rem;
	border: 2px solid var( --stroke-strong );
	border-radius: var( --radius-sm );
	background: var( --ink );
	color: var( --on-ink );
	box-shadow: 0.24rem 0.24rem 0 var( --coral );
}

.skip-link {
	position: absolute;
	left: 1rem;
	top: 1rem;
	z-index: 100;
	padding: 0.65rem 0.9rem;
	border: 2px solid var( --stroke-strong );
	border-radius: var( --radius-sm );
	background: var( --ink );
	color: var( --on-ink );
	box-shadow: 0.24rem 0.24rem 0 var( --coral );
	transform: translateY( -150% );
	transition: transform 160ms ease;
}

.skip-link:focus {
	transform: translateY( 0 );
}

.wp-block-heading {
	border-bottom-width: 1px;
	border-bottom-style: solid;
	border-bottom-color: var( --line );
	padding-bottom: 8px;
	box-sizing: border-box;
}

.section-heading :where( h1, h2, h3, h4, h5, h6 ).wp-block-heading,
.section-heading :where( h1, h2, h3, h4, h5, h6 ):first-child {
	display: block;
	width: 100%;
}

.dela-gothic-one-regular {
	font-family: "Dela Gothic One", sans-serif;
	font-weight: 400;
	font-style: normal;
}

.hero :where( .wp-block-heading ),
.page-hero :where( .wp-block-heading ) {
	border-bottom-width: 0;
	border-bottom-style: none;
	padding-bottom: 0;
}

.container {
	width: min( calc( 100% - 2rem ), var( --max-width ) );
	margin-inline: auto;
}

.container > .wp-block-group__inner-container,
.hero-grid > .wp-block-group__inner-container,
.two-column > .wp-block-group__inner-container,
.cta-row > .wp-block-group__inner-container,
.status-notice > .wp-block-group__inner-container,
.signal-map > .wp-block-group__inner-container,
.destination-grid > .wp-block-group__inner-container,
.card-grid > .wp-block-group__inner-container,
.feature-list > .wp-block-group__inner-container,
.steps > .wp-block-group__inner-container,
.callout.split > .wp-block-group__inner-container,
.toc-card > .wp-block-group__inner-container,
.diagram > .wp-block-group__inner-container,
.timeline > .wp-block-group__inner-container,
.faq > .wp-block-group__inner-container {
	width: 100%;
}

.hero-grid > .wp-block-group__inner-container,
.two-column > .wp-block-group__inner-container,
.signal-map > .wp-block-group__inner-container,
.destination-grid > .wp-block-group__inner-container,
.card-grid > .wp-block-group__inner-container,
.feature-list > .wp-block-group__inner-container,
.steps > .wp-block-group__inner-container,
.callout.split > .wp-block-group__inner-container,
.toc-card > .wp-block-group__inner-container,
.diagram > .wp-block-group__inner-container,
.timeline > .wp-block-group__inner-container,
.faq > .wp-block-group__inner-container {
	grid-column: 1 / -1;
}

.cta-row > .wp-block-group__inner-container {
	flex-basis: 100%;
}

header.wp-block-template-part {
	position: sticky;
	top: 0;
	z-index: 50;
}

