/* ==========================================================================
   XllenTech Corporate — component styles
   Colour tokens come from theme.json (light values). Dark values are applied
   below for: visitors who chose dark, visitors whose OS prefers dark (unless
   they chose light), and "always dark" components such as the console card.
   ========================================================================== */

/* --------------------------------------------------------------------------
   Theme-mode tokens
   -------------------------------------------------------------------------- */
:root {
	color-scheme: light;
	--xt-grid: rgba(30, 38, 50, .07);
	--xt-glow-a: rgba(132, 196, 20, .18);
	--xt-glow-b: rgba(110, 31, 42, .10);
	--xt-header-bg: rgba(255, 255, 255, .82);
	--xt-card-shadow: 0 1px 2px rgba(10, 13, 18, .04), 0 12px 30px -18px rgba(10, 13, 18, .18);
	--xt-hover-glow: rgba(132, 196, 20, .16);
	--xt-hover-border: rgba(63, 109, 0, .45);
	--xt-mark: rgba(30, 38, 50, .06);
	--xt-mark-stroke: #d3d9e2;
}

/* Dark palette — repeated for each trigger (CSS can't share a block between them). */
:root[data-theme="dark"],
.xt-console, .xt-cta, .xt-service.xt-wide, .xt-compare-after, .xt-force-dark {
	color-scheme: dark;
	--wp--preset--color--base: #0a0d12;
	--wp--preset--color--surface: #11161e;
	--wp--preset--color--raised: #18202b;
	--wp--preset--color--line: #253041;
	--wp--preset--color--muted: #8d99ab;
	--wp--preset--color--contrast: #e9edf3;
	--wp--preset--color--heading: #ffffff;
	--wp--preset--color--accent: #b8f23e;
	--xt-grid: rgba(141, 153, 171, .09);
	--xt-glow-a: rgba(184, 242, 62, .16);
	--xt-glow-b: rgba(110, 31, 42, .18);
	--xt-header-bg: rgba(10, 13, 18, .78);
	--xt-card-shadow: none;
	--xt-hover-glow: rgba(184, 242, 62, .12);
	--xt-hover-border: rgba(184, 242, 62, .45);
	--xt-mark: rgba(37, 48, 65, .55);
	--xt-mark-stroke: #2f3b4e;
}
@media (prefers-color-scheme: dark) {
	:root:not([data-theme="light"]) {
		color-scheme: dark;
		--wp--preset--color--base: #0a0d12;
		--wp--preset--color--surface: #11161e;
		--wp--preset--color--raised: #18202b;
		--wp--preset--color--line: #253041;
		--wp--preset--color--muted: #8d99ab;
		--wp--preset--color--contrast: #e9edf3;
		--wp--preset--color--heading: #ffffff;
		--wp--preset--color--accent: #b8f23e;
		--xt-grid: rgba(141, 153, 171, .09);
		--xt-glow-a: rgba(184, 242, 62, .16);
		--xt-glow-b: rgba(110, 31, 42, .18);
		--xt-header-bg: rgba(10, 13, 18, .78);
		--xt-card-shadow: none;
		--xt-hover-glow: rgba(184, 242, 62, .12);
		--xt-hover-border: rgba(184, 242, 62, .45);
		--xt-mark: rgba(37, 48, 65, .55);
		--xt-mark-stroke: #2f3b4e;
	}
}

:root {
	--xt-base: var(--wp--preset--color--base);
	--xt-surface: var(--wp--preset--color--surface);
	--xt-raised: var(--wp--preset--color--raised);
	--xt-line: var(--wp--preset--color--line);
	--xt-muted: var(--wp--preset--color--muted);
	--xt-text: var(--wp--preset--color--contrast);
	--xt-heading: var(--wp--preset--color--heading);
	--xt-accent: var(--wp--preset--color--accent);
	--xt-ink: var(--wp--preset--color--ink);
	--xt-signal: var(--wp--preset--color--signal);
	--xt-mono: var(--wp--preset--font-family--mono);
	--xt-radius: 14px;
	--xt-ease: cubic-bezier(.2, .7, .2, 1);
	--xt-topbar-h: 38px;
}
/* Re-resolve aliases inside always-dark scopes so they pick up the scoped palette. */
.xt-console, .xt-cta, .xt-service.xt-wide, .xt-compare-after, .xt-force-dark {
	--xt-base: var(--wp--preset--color--base);
	--xt-surface: var(--wp--preset--color--surface);
	--xt-raised: var(--wp--preset--color--raised);
	--xt-line: var(--wp--preset--color--line);
	--xt-muted: var(--wp--preset--color--muted);
	--xt-text: var(--wp--preset--color--contrast);
	--xt-heading: var(--wp--preset--color--heading);
	--xt-accent: var(--wp--preset--color--accent);
	color: var(--xt-text);
}

html { scroll-behavior: smooth; }
body { -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; transition: background-color .3s var(--xt-ease), color .3s var(--xt-ease); }
::selection { background: var(--xt-signal); color: var(--xt-ink); }
:focus-visible { outline: 2px solid var(--xt-accent); outline-offset: 3px; border-radius: 4px; }

/* Remove root block-gap between header / main / footer */
.wp-site-blocks > * + * { margin-block-start: 0; }

/* --------------------------------------------------------------------------
   Header
   -------------------------------------------------------------------------- */
.wp-site-blocks > header.wp-block-template-part {
	position: sticky;
	top: calc(var(--wp-admin--admin-bar--height, 0px) - var(--xt-topbar-h));
	z-index: 100;
}

.xt-topbar { border-bottom: 1px solid var(--xt-line); }
.xt-topbar > .alignwide { min-height: calc(var(--xt-topbar-h) - 1rem); align-items: center; }
.xt-topbar p { margin: 0; line-height: 1.4; }
.xt-topbar a { color: var(--xt-text); }

.xt-status::before {
	content: "";
	display: inline-block;
	width: 7px; height: 7px;
	margin-right: .55em;
	border-radius: 50%;
	background: var(--xt-signal);
	vertical-align: 1px;
	animation: xt-pulse 2.4s infinite;
}
@keyframes xt-pulse {
	0% { box-shadow: 0 0 0 0 rgba(184, 242, 62, .55); }
	70% { box-shadow: 0 0 0 8px rgba(184, 242, 62, 0); }
	100% { box-shadow: 0 0 0 0 rgba(184, 242, 62, 0); }
}

.xt-header {
	background: var(--xt-header-bg);
	-webkit-backdrop-filter: saturate(160%) blur(14px);
	backdrop-filter: saturate(160%) blur(14px);
	border-bottom: 1px solid var(--xt-line);
}

/* Logo: light-mode image by default, reversed image in dark mode. */
.xt-logo img { display: block; height: auto; }
.xt-logo .xt-logo-dark { display: none; }
:root[data-theme="dark"] .xt-logo .xt-logo-dark { display: block; }
:root[data-theme="dark"] .xt-logo .xt-logo-dark ~ img,
:root[data-theme="dark"] .xt-logo img:not(.xt-logo-dark) { display: none; }
@media (prefers-color-scheme: dark) {
	:root:not([data-theme="light"]) .xt-logo .xt-logo-dark { display: block; }
	:root:not([data-theme="light"]) .xt-logo img:not(.xt-logo-dark) { display: none; }
}

.xt-header .wp-block-navigation a { color: var(--xt-text); }
.xt-header .wp-block-navigation a:hover { color: var(--xt-accent); text-decoration: none; }
.xt-header .wp-block-navigation .current-menu-item > a { color: var(--xt-accent); }
.wp-block-navigation__responsive-container.is-menu-open { padding: 2rem; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item { font-size: 1.5rem; font-family: var(--wp--preset--font-family--display); }

/* Theme toggle */
.xt-theme-toggle {
	appearance: none;
	display: inline-grid;
	place-items: center;
	width: 40px; height: 40px;
	padding: 0;
	border: 1px solid var(--xt-line);
	border-radius: 10px;
	background: transparent;
	color: var(--xt-text);
	cursor: pointer;
	transition: border-color .2s var(--xt-ease), color .2s var(--xt-ease), background-color .2s var(--xt-ease);
}
.xt-theme-toggle:hover { border-color: var(--xt-accent); color: var(--xt-accent); }
.xt-theme-toggle svg { width: 18px; height: 18px; grid-area: 1 / 1; transition: transform .4s var(--xt-ease), opacity .3s var(--xt-ease); }
.xt-theme-toggle .xt-icon-sun { opacity: 0; transform: rotate(-90deg) scale(.6); }
:root[data-theme="dark"] .xt-theme-toggle .xt-icon-sun { opacity: 1; transform: none; }
:root[data-theme="dark"] .xt-theme-toggle .xt-icon-moon { opacity: 0; transform: rotate(90deg) scale(.6); }
@media (prefers-color-scheme: dark) {
	:root:not([data-theme="light"]) .xt-theme-toggle .xt-icon-sun { opacity: 1; transform: none; }
	:root:not([data-theme="light"]) .xt-theme-toggle .xt-icon-moon { opacity: 0; transform: rotate(90deg) scale(.6); }
}

@media (max-width: 781px) {
	.xt-topbar { display: none; }
	.wp-site-blocks > header.wp-block-template-part { top: var(--wp-admin--admin-bar--height, 0px); }
	.xt-header .xt-header-cta { display: none !important; }
	.xt-header-actions { gap: .75rem !important; }
}
@media (max-width: 600px) {
	.wp-site-blocks > header.wp-block-template-part { top: 0; }
}

/* --------------------------------------------------------------------------
   Shared typography helpers
   -------------------------------------------------------------------------- */
.is-style-xt-eyebrow {
	font-family: var(--xt-mono);
	font-size: var(--wp--preset--font-size--x-small) !important;
	font-weight: 500;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--xt-accent);
}
.is-style-xt-eyebrow::before { content: "// "; opacity: .55; white-space: pre; }

.xt-lede { color: var(--xt-muted); max-width: 42rem; }
.xt-mono { font-family: var(--xt-mono); }

/* --------------------------------------------------------------------------
   Buttons
   -------------------------------------------------------------------------- */
.wp-element-button,
.wp-block-button__link { transition: background-color .2s var(--xt-ease), color .2s var(--xt-ease), border-color .2s var(--xt-ease), transform .2s var(--xt-ease); }
.wp-block-button:not(.is-style-xt-ghost) .wp-block-button__link:hover { transform: translateY(-1px); }
.wp-block-button__link::after { content: "→"; display: inline-block; margin-left: .5em; transition: transform .2s var(--xt-ease); }
.wp-block-button__link:hover::after { transform: translateX(3px); }

.is-style-xt-ghost .wp-block-button__link {
	background: transparent !important;
	color: var(--xt-heading) !important;
	border: 1px solid var(--xt-line);
}
.is-style-xt-ghost .wp-block-button__link:hover { border-color: var(--xt-accent); color: var(--xt-accent) !important; }
.is-style-xt-ghost .wp-block-button__link::after { content: none; }

/* --------------------------------------------------------------------------
   Grid backdrop (group style)
   -------------------------------------------------------------------------- */
.is-style-xt-grid-bg { position: relative; isolation: isolate; overflow: hidden; }
.is-style-xt-grid-bg::before {
	content: "";
	position: absolute; inset: 0;
	z-index: -1;
	background-image:
		linear-gradient(to right, var(--xt-grid) 1px, transparent 1px),
		linear-gradient(to bottom, var(--xt-grid) 1px, transparent 1px);
	background-size: 56px 56px;
	-webkit-mask-image: radial-gradient(ellipse 80% 70% at 50% 30%, #000 30%, transparent 100%);
	mask-image: radial-gradient(ellipse 80% 70% at 50% 30%, #000 30%, transparent 100%);
	pointer-events: none;
}

/* --------------------------------------------------------------------------
   Hero
   -------------------------------------------------------------------------- */
.xt-hero::after {
	content: "";
	position: absolute;
	z-index: -1;
	width: 720px; height: 720px;
	right: -220px; top: -260px;
	background: radial-gradient(circle, var(--xt-glow-a) 0%, var(--xt-glow-b) 40%, transparent 70%);
	filter: blur(20px);
	pointer-events: none;
}
.xt-hero h1 { text-wrap: balance; }
.xt-hero h1 mark { background: none; }
.xt-hero .xt-lede { font-size: var(--wp--preset--font-size--large); }

.xt-hero-meta { margin-top: var(--wp--preset--spacing--40) !important; }
.xt-hero-meta p {
	margin: 0;
	font-family: var(--xt-mono);
	font-size: var(--wp--preset--font-size--x-small);
	color: var(--xt-muted);
}
.xt-hero-meta p::before { content: "✓ "; color: var(--xt-accent); }

/* --------------------------------------------------------------------------
   Console card
   -------------------------------------------------------------------------- */
.is-style-xt-card {
	background: var(--xt-surface);
	border: 1px solid var(--xt-line);
	border-radius: var(--xt-radius);
	padding: clamp(1.25rem, 2.5vw, 2rem);
	position: relative;
	box-shadow: var(--xt-card-shadow);
	transition: border-color .3s var(--xt-ease), transform .3s var(--xt-ease), background-color .3s var(--xt-ease);
}

.xt-console {
	padding: 0 !important;
	overflow: hidden;
	box-shadow: 0 40px 80px -30px rgba(10, 13, 18, .55), 0 0 0 1px rgba(184, 242, 62, .06);
	font-family: var(--xt-mono);
	font-size: var(--wp--preset--font-size--small);
}
.xt-console > * + *, .xt-console-body > * + * { margin-block-start: 0 !important; }
.xt-console-bar {
	padding: .8rem 1.1rem !important;
	border-bottom: 1px solid var(--xt-line);
	background: var(--xt-raised);
}
.xt-console-bar p { margin: 0; font-size: var(--wp--preset--font-size--x-small); color: var(--xt-muted); }
.xt-console-dots { display: inline-flex; gap: 6px; }
.xt-console-dots::before {
	content: "";
	width: 10px; height: 10px; border-radius: 50%;
	background: #3a4556;
	box-shadow: 16px 0 0 #3a4556, 32px 0 0 #3a4556;
	margin-right: 34px;
}
.xt-console-body { padding: 1.1rem 1.25rem 1.4rem !important; }
.xt-console-row { border-bottom: 1px dashed rgba(141, 153, 171, .16); padding: .7rem 0; }
.xt-console-row:last-child { border-bottom: 0; }
.xt-console-row p { margin: 0; }
.xt-console-row p:first-child { color: var(--xt-muted); }
.xt-ok { color: var(--xt-signal); }
.xt-ok::before { content: "● "; font-size: .7em; vertical-align: 2px; }
.xt-prompt { color: var(--xt-text); margin-top: .8rem !important; }
.xt-prompt::before { content: "$ "; color: var(--xt-signal); }
.xt-prompt::after {
	content: "";
	display: inline-block;
	width: .55em; height: 1.05em;
	margin-left: .2em;
	background: var(--xt-signal);
	vertical-align: -3px;
	animation: xt-blink 1.1s steps(1) infinite;
}
@keyframes xt-blink { 50% { opacity: 0; } }

/* --------------------------------------------------------------------------
   Stats strip
   -------------------------------------------------------------------------- */
.xt-stats { border-top: 1px solid var(--xt-line); border-bottom: 1px solid var(--xt-line); }
.xt-stats .wp-block-column { padding: var(--wp--preset--spacing--40) 0; }
.xt-stats .wp-block-column + .wp-block-column { border-left: 1px solid var(--xt-line); padding-left: var(--wp--preset--spacing--40); }
.xt-stat-num { font-family: var(--wp--preset--font-family--display); font-size: clamp(2rem, 4vw, 3rem); font-weight: 600; letter-spacing: -.04em; line-height: 1; color: var(--xt-heading); margin: 0; }
.xt-stat-num strong { color: var(--xt-accent); font-weight: 600; }
.xt-stat-label { margin: .5rem 0 0 !important; font-family: var(--xt-mono); font-size: var(--wp--preset--font-size--x-small); color: var(--xt-muted); text-transform: uppercase; letter-spacing: .06em; }
@media (max-width: 781px) {
	.xt-stats { display: grid !important; grid-template-columns: 1fr 1fr; gap: 0 !important; }
	.xt-stats .wp-block-column { padding: 1.25rem 0 !important; }
	.xt-stats .wp-block-column:nth-child(even) { border-left: 1px solid var(--xt-line); padding-left: 1.25rem !important; }
	.xt-stats .wp-block-column:nth-child(n+3) { border-top: 1px solid var(--xt-line); }
	.xt-stats .wp-block-column:nth-child(3) { border-left: 0; }
	.xt-hero-meta { row-gap: .4rem !important; }
	.xt-console-bar p { white-space: nowrap; }
	.xt-console-dots::before { margin-right: 30px; }
}

/* --------------------------------------------------------------------------
   Services bento
   -------------------------------------------------------------------------- */
.xt-bento { gap: 1rem !important; }
.xt-service { display: flex; flex-direction: column; min-height: 230px; overflow: hidden; }
.xt-service > * { margin-block: 0; }
.xt-service > * + * { margin-block-start: .75rem; }
.xt-service h3 { font-size: var(--wp--preset--font-size--large); }
.xt-service p { color: var(--xt-muted); font-size: var(--wp--preset--font-size--small); }
.xt-service .xt-index { font-family: var(--xt-mono); font-size: var(--wp--preset--font-size--x-small); color: var(--xt-accent); letter-spacing: .08em; }
.xt-service .xt-more { margin-top: auto !important; padding-top: 1rem; font-family: var(--xt-mono); font-size: var(--wp--preset--font-size--x-small); }
.xt-service .xt-more a { color: var(--xt-text); }
.xt-service .xt-more a::after { content: " →"; transition: margin .2s var(--xt-ease); }
.xt-service:hover { border-color: var(--xt-hover-border); transform: translateY(-3px); background: var(--xt-raised); }
.xt-service:hover .xt-more a { color: var(--xt-accent); }
.xt-service:hover .xt-more a::after { margin-left: 4px; }
.xt-service::after {
	content: "";
	position: absolute; inset: auto -40% -60% auto;
	width: 260px; height: 260px;
	background: radial-gradient(circle, var(--xt-hover-glow), transparent 65%);
	opacity: 0; transition: opacity .4s var(--xt-ease);
	pointer-events: none;
}
.xt-service:hover::after { opacity: 1; }

.xt-service.xt-feature { background: linear-gradient(160deg, var(--xt-raised), var(--xt-surface) 60%); }
.xt-service.xt-feature h3 { font-size: var(--wp--preset--font-size--x-large); }
.xt-tags { gap: .4rem !important; margin-top: 1rem !important; }
.xt-tags p {
	margin: 0;
	padding: .2rem .6rem;
	border: 1px solid var(--xt-line);
	border-radius: 999px;
	background: var(--xt-base);
	font-family: var(--xt-mono);
	font-size: .75rem !important;
	color: var(--xt-text) !important;
}

.xt-service.xt-wide { background: var(--wp--preset--gradient--maroon-glow); border-color: rgba(255, 255, 255, .08); min-height: 0; }
.xt-service.xt-wide p { color: rgba(255, 255, 255, .75); }
.xt-service.xt-wide:hover { background: var(--wp--preset--gradient--maroon-glow); }

@media (max-width: 900px) {
	.xt-bento { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
	.xt-bento > * { grid-column: auto !important; }
	.xt-bento > .xt-feature, .xt-bento > .xt-wide { grid-column: 1 / -1 !important; }
}
@media (max-width: 600px) {
	.xt-bento { grid-template-columns: minmax(0, 1fr) !important; }
}

/* --------------------------------------------------------------------------
   Light band (same in both modes)
   -------------------------------------------------------------------------- */
.xt-light { color: var(--wp--preset--color--slate); border-block: 1px solid var(--xt-line); }
.xt-light :where(h1, h2, h3, h4, h5, h6) { color: var(--xt-ink); }
.xt-light a:where(:not(.wp-element-button)) { color: var(--wp--preset--color--signal-deep); }
.xt-light .is-style-xt-eyebrow { color: var(--wp--preset--color--signal-deep); }
.xt-light .xt-lede { color: var(--wp--preset--color--slate); }

.xt-compare { border-radius: var(--xt-radius); padding: clamp(1.5rem, 3vw, 2.25rem) !important; height: 100%; }
.xt-compare h3 { font-size: var(--wp--preset--font-size--large); }
.xt-compare-before { background: #e6e9ee; border: 1px solid #d7dce4; }
.xt-compare-before li { color: #6b7686; }
.xt-compare-after { background: var(--xt-base); box-shadow: 0 30px 60px -25px rgba(10, 13, 18, .55); }
.xt-light .xt-compare-after h3 { color: var(--xt-heading); }
.xt-compare .is-style-xt-eyebrow { color: #6b7686; }
.xt-light .xt-compare-after .is-style-xt-eyebrow { color: var(--xt-signal); }

.is-style-xt-checks,
.xt-crosses { list-style: none; padding-left: 0 !important; }
.is-style-xt-checks li,
.xt-crosses li { position: relative; padding-left: 2rem; margin-bottom: .8rem; }
.is-style-xt-checks li::before,
.xt-crosses li::before {
	position: absolute; left: 0; top: .15em;
	width: 1.3rem; height: 1.3rem;
	display: grid; place-items: center;
	border-radius: 5px;
	font-size: .75rem; font-weight: 700;
}
.is-style-xt-checks li::before { content: "✓"; background: var(--xt-signal); color: var(--xt-ink); }
.xt-crosses li::before { content: "✕"; background: #d3d8e0; color: #6b7686; }

.xt-chips { gap: .5rem !important; }
.xt-chips p {
	margin: 0;
	padding: .45rem .9rem;
	background: var(--wp--preset--color--white);
	border: 1px solid #d7dce4;
	border-radius: 999px;
	font-size: var(--wp--preset--font-size--small);
	color: var(--xt-ink);
	font-weight: 500;
}

/* --------------------------------------------------------------------------
   Process steps
   -------------------------------------------------------------------------- */
.xt-steps { position: relative; gap: 1rem !important; }
.xt-step { position: relative; padding-top: 2.75rem !important; }
.xt-step::before {
	content: "";
	position: absolute; top: 1.15rem; left: 0; right: -1rem;
	height: 1px;
	background: linear-gradient(to right, var(--xt-accent), var(--xt-line) 30%);
}
.xt-step:last-child::before { right: 0; }
.xt-step::after {
	content: "";
	position: absolute; top: calc(1.15rem - 5px); left: 0;
	width: 11px; height: 11px;
	border-radius: 50%;
	background: var(--xt-base);
	border: 2px solid var(--xt-accent);
}
.xt-step .xt-index { font-family: var(--xt-mono); font-size: var(--wp--preset--font-size--x-small); color: var(--xt-accent); margin: 0; letter-spacing: .08em; }
.xt-step h3 { font-size: var(--wp--preset--font-size--large); margin-top: .5rem; }
.xt-step p:last-child { color: var(--xt-muted); font-size: var(--wp--preset--font-size--small); }
@media (max-width: 900px) {
	.xt-steps { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; row-gap: 2rem !important; }
}
@media (max-width: 600px) {
	.xt-steps { grid-template-columns: minmax(0, 1fr) !important; }
}

/* --------------------------------------------------------------------------
   CTA band (always dark)
   -------------------------------------------------------------------------- */
.xt-cta { position: relative; isolation: isolate; overflow: hidden; border-radius: 20px; }
.xt-cta::before {
	content: "";
	position: absolute; inset: 0; z-index: -1;
	background-image: radial-gradient(rgba(255, 255, 255, .12) 1px, transparent 1px);
	background-size: 18px 18px;
	-webkit-mask-image: linear-gradient(105deg, transparent 35%, #000 100%);
	mask-image: linear-gradient(105deg, transparent 35%, #000 100%);
}
.xt-cta p:not(.is-style-xt-eyebrow) { color: rgba(255, 255, 255, .78); }
.xt-cta .is-style-xt-eyebrow { color: #ffd2d8; }
.xt-cta-contact a { color: var(--wp--preset--color--white) !important; font-family: var(--xt-mono); }

/* --------------------------------------------------------------------------
   Footer
   -------------------------------------------------------------------------- */
.xt-footer { border-top: 1px solid var(--xt-line); overflow: hidden; }
.xt-footer h4 { font-family: var(--xt-mono); font-size: var(--wp--preset--font-size--x-small); font-weight: 500; letter-spacing: .08em; text-transform: uppercase; color: var(--xt-muted); }
.xt-footer-links { list-style: none; padding: 0; margin: 0; }
.xt-footer-links li { margin-bottom: .55rem; font-size: var(--wp--preset--font-size--small); color: var(--xt-text); }
.xt-footer-links a { color: var(--xt-text); font-size: var(--wp--preset--font-size--small); }
.xt-footer-links a:hover { color: var(--xt-accent); text-decoration: none; }
.xt-footer p { font-size: var(--wp--preset--font-size--small); }
.xt-footer-mark {
	margin: 0 !important;
	font-family: var(--wp--preset--font-family--display);
	font-weight: 700;
	font-size: clamp(4rem, 17vw, 15rem) !important;
	line-height: .8;
	letter-spacing: -.06em;
	text-align: center;
	color: transparent;
	-webkit-text-stroke: 1px var(--xt-mark-stroke);
	user-select: none;
	transform: translateY(18%);
	background: linear-gradient(180deg, var(--xt-mark), transparent 80%);
	-webkit-background-clip: text;
	background-clip: text;
}
.xt-footer-bottom { border-top: 1px solid var(--xt-line); position: relative; z-index: 1; background: var(--xt-base); }
.xt-footer-bottom p { margin: 0; font-family: var(--xt-mono); font-size: var(--wp--preset--font-size--x-small) !important; color: var(--xt-muted); }
.xt-footer-bottom a { color: var(--xt-muted); }

/* --------------------------------------------------------------------------
   Generic content pages
   -------------------------------------------------------------------------- */
.xt-page-head { border-bottom: 1px solid var(--xt-line); }
.wp-block-post-content > :where(p, ul, ol) a { text-decoration: underline; text-underline-offset: 3px; }
.wp-block-post-date, .wp-block-post-terms { font-family: var(--xt-mono); font-size: var(--wp--preset--font-size--x-small); color: var(--xt-muted); }

/* --------------------------------------------------------------------------
   Scroll reveal (only when JS is running; never in the editor)
   -------------------------------------------------------------------------- */
.xt-js .xt-reveal { opacity: 0; transform: translateY(24px); transition: opacity .8s var(--xt-ease), transform .8s var(--xt-ease); }
.xt-js .xt-reveal.is-visible { opacity: 1; transform: none; }

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { animation: none !important; transition: none !important; }
	.xt-js .xt-reveal { opacity: 1; transform: none; }
	html { scroll-behavior: auto; }
}
