/* =========================================================
   LXFx · 全站赛博朋克 跳转 / 接口等待 / 元素 Loading
   公共样式：其它板块直接用 LXFx.* 即可
   ========================================================= */
@import url("https://fonts.googleapis.com/css2?family=Orbitron:wght@500;700;800&family=Noto+Sans+SC:wght@400;500;700&display=swap");

:root {
	--lx-fx-cyan: #00fff0;
	--lx-fx-pink: #ff2bd6;
	--lx-fx-purple: #8b5cff;
	--lx-fx-amber: #f9f871;
	--lx-fx-bg: #05060d;
	--lx-fx-z: 100000;
}

/* —— 全屏遮罩（跳转 / 接口等待共用） —— */
.lx-fx-overlay {
	position: fixed;
	inset: 0;
	z-index: var(--lx-fx-z);
	pointer-events: none;
	opacity: 0;
	visibility: hidden;
	transition: opacity 0.28s ease, visibility 0.28s;
	font-family: "Noto Sans SC", system-ui, sans-serif;
	color: #e8f7ff;
}
.lx-fx-overlay.is-active {
	pointer-events: all;
	opacity: 1;
	visibility: visible;
}

.lx-fx-overlay__void {
	position: absolute;
	inset: 0;
	background:
		radial-gradient(ellipse 80% 60% at 50% 40%, rgba(0, 255, 240, 0.14), transparent 55%),
		radial-gradient(ellipse 50% 40% at 80% 70%, rgba(255, 43, 214, 0.12), transparent 50%),
		rgba(2, 4, 12, 0.78);
	backdrop-filter: blur(8px) saturate(1.2);
	-webkit-backdrop-filter: blur(8px) saturate(1.2);
}

.lx-fx-overlay__grid {
	position: absolute;
	inset: -10%;
	background-image:
		linear-gradient(rgba(0, 255, 240, 0.07) 1px, transparent 1px),
		linear-gradient(90deg, rgba(0, 255, 240, 0.07) 1px, transparent 1px);
	background-size: 48px 48px;
	transform: perspective(600px) rotateX(58deg) translateY(-8%);
	opacity: 0.45;
	animation: lx-fx-grid 18s linear infinite;
	mask-image: linear-gradient(180deg, transparent, #000 25%, #000 70%, transparent);
}
@keyframes lx-fx-grid {
	to { background-position: 0 48px, 48px 0; }
}

.lx-fx-overlay__scan {
	position: absolute;
	inset: 0;
	background: linear-gradient(
		180deg,
		transparent 0%,
		rgba(0, 255, 240, 0.06) 48%,
		rgba(255, 43, 214, 0.05) 52%,
		transparent 100%
	);
	background-size: 100% 220%;
	animation: lx-fx-scan 2.4s linear infinite;
	pointer-events: none;
	opacity: 0.7;
}
@keyframes lx-fx-scan {
	0% { background-position: 0 -40%; }
	100% { background-position: 0 140%; }
}

/* 闸门开合（跳转模式） */
.lx-fx-overlay__shutter {
	position: absolute;
	left: 0;
	right: 0;
	height: 50%;
	z-index: 1;
	transform: scaleY(0);
	background: linear-gradient(180deg, #03050c, #0a1224);
}
.lx-fx-overlay__shutter.s-top {
	top: 0;
	transform-origin: top;
	border-bottom: 1px solid rgba(0, 255, 240, 0.4);
	box-shadow: 0 0 30px rgba(0, 255, 240, 0.15);
}
.lx-fx-overlay__shutter.s-bot {
	bottom: 0;
	transform-origin: bottom;
	border-top: 1px solid rgba(255, 43, 214, 0.4);
	box-shadow: 0 0 30px rgba(255, 43, 214, 0.12);
}
.lx-fx-overlay.is-nav.is-active .lx-fx-overlay__shutter {
	animation: lx-fx-shutter 0.9s cubic-bezier(0.65, 0, 0.35, 1) forwards;
}
@keyframes lx-fx-shutter {
	0% { transform: scaleY(0); }
	55%, 100% { transform: scaleY(1); }
}

/* 核心 HUD */
.lx-fx-overlay__core {
	position: absolute;
	left: 50%;
	top: 48%;
	z-index: 3;
	width: min(320px, 82vw);
	transform: translate(-50%, -50%) scale(0.72);
	opacity: 0;
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
}
.lx-fx-overlay.is-active .lx-fx-overlay__core {
	animation: lx-fx-core-in 0.5s 0.12s cubic-bezier(0.22, 1, 0.36, 1) forwards;
}
@keyframes lx-fx-core-in {
	to { opacity: 1; transform: translate(-50%, -50%) scale(1); }
}

.lx-fx-overlay__stage {
	position: relative;
	width: min(200px, 52vw);
	height: min(200px, 52vw);
	margin: 0 auto 8px;
}

.lx-fx-overlay__ring {
	position: absolute;
	inset: 0;
	border-radius: 50%;
	border: 2px solid rgba(0, 255, 240, 0.35);
}
.lx-fx-overlay__ring.r1 {
	border-style: dashed;
	border-color: rgba(0, 255, 240, 0.65);
	animation: lx-fx-spin 3.2s linear infinite;
}
.lx-fx-overlay__ring.r2 {
	inset: 14%;
	border-color: rgba(255, 43, 214, 0.55);
	animation: lx-fx-spin-rev 2.4s linear infinite;
}
.lx-fx-overlay__ring.r3 {
	inset: 28%;
	border-color: rgba(139, 92, 255, 0.55);
	animation: lx-fx-spin 1.7s linear infinite;
	border-style: dotted;
}
@keyframes lx-fx-spin { to { transform: rotate(360deg); } }
@keyframes lx-fx-spin-rev { to { transform: rotate(-360deg); } }

.lx-fx-overlay__hex {
	position: absolute;
	left: 50%;
	top: 50%;
	width: 42%;
	height: 42%;
	transform: translate(-50%, -50%) rotate(30deg);
	background:
		linear-gradient(135deg, rgba(0, 255, 240, 0.25), rgba(255, 43, 214, 0.2));
	clip-path: polygon(50% 0%, 100% 25%, 100% 75%, 50% 100%, 0% 75%, 0% 25%);
	box-shadow: 0 0 40px rgba(0, 255, 240, 0.35);
	animation: lx-fx-hex 2s ease-in-out infinite;
}
@keyframes lx-fx-hex {
	0%, 100% { filter: brightness(1); }
	50% { filter: brightness(1.25); }
}

.lx-fx-overlay__orb {
	position: absolute;
	left: 50%;
	top: 50%;
	width: 22px;
	height: 22px;
	margin: -11px 0 0 -11px;
	border-radius: 50%;
	background: radial-gradient(circle at 30% 28%, #fff, #00fff0 42%, #8b5cff 90%);
	box-shadow:
		0 0 24px rgba(0, 255, 240, 0.85),
		0 0 48px rgba(255, 43, 214, 0.45);
	animation: lx-fx-orb 1.15s ease-in-out infinite;
	z-index: 2;
}
@keyframes lx-fx-orb {
	0%, 100% { transform: scale(1); }
	50% { transform: scale(1.18); }
}

/* 粒子点缀 */
.lx-fx-overlay__bits {
	position: absolute;
	inset: 0;
	overflow: hidden;
	pointer-events: none;
	z-index: 2;
}
.lx-fx-overlay__bits i {
	position: absolute;
	width: 3px;
	height: 3px;
	border-radius: 50%;
	background: var(--lx-fx-cyan);
	box-shadow: 0 0 8px var(--lx-fx-cyan);
	opacity: 0;
	animation: lx-fx-bit 2.8s ease-in-out infinite;
}
.lx-fx-overlay__bits i:nth-child(odd) { background: var(--lx-fx-pink); box-shadow: 0 0 8px var(--lx-fx-pink); }
.lx-fx-overlay__bits i:nth-child(1) { left: 18%; top: 30%; animation-delay: 0s; }
.lx-fx-overlay__bits i:nth-child(2) { left: 72%; top: 28%; animation-delay: 0.4s; }
.lx-fx-overlay__bits i:nth-child(3) { left: 40%; top: 62%; animation-delay: 0.8s; }
.lx-fx-overlay__bits i:nth-child(4) { left: 60%; top: 70%; animation-delay: 1.1s; }
.lx-fx-overlay__bits i:nth-child(5) { left: 28%; top: 55%; animation-delay: 1.5s; }
.lx-fx-overlay__bits i:nth-child(6) { left: 80%; top: 50%; animation-delay: 1.9s; }
@keyframes lx-fx-bit {
	0%, 100% { opacity: 0; transform: translateY(8px) scale(0.6); }
	40%, 60% { opacity: 0.9; transform: translateY(-6px) scale(1); }
}

.lx-fx-overlay__label {
	margin: 6px 0 4px;
	font-family: Orbitron, monospace;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.18em;
	color: var(--lx-fx-cyan);
	text-shadow: 0 0 16px rgba(0, 255, 240, 0.55);
	text-transform: uppercase;
}
.lx-fx-overlay__sub {
	margin: 0 0 14px;
	font-size: 13px;
	color: #8aa0b8;
	line-height: 1.45;
	max-width: 280px;
}
.lx-fx-overlay__bar {
	width: 168px;
	height: 3px;
	border-radius: 99px;
	background: rgba(255, 255, 255, 0.08);
	overflow: hidden;
	box-shadow: 0 0 12px rgba(0, 255, 240, 0.15);
}
.lx-fx-overlay__bar > i {
	display: block;
	height: 100%;
	width: 38%;
	border-radius: inherit;
	background: linear-gradient(90deg, var(--lx-fx-cyan), var(--lx-fx-pink), var(--lx-fx-purple));
	animation: lx-fx-bar 1.05s ease-in-out infinite;
}
@keyframes lx-fx-bar {
	0% { transform: translateX(-120%); }
	100% { transform: translateX(320%); }
}

.lx-fx-overlay__meta {
	margin-top: 14px;
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	justify-content: center;
}
.lx-fx-overlay__chip {
	font-size: 10px;
	letter-spacing: 0.12em;
	padding: 4px 10px;
	border-radius: 999px;
	border: 1px solid rgba(0, 255, 240, 0.28);
	color: #7af8ff;
	background: rgba(0, 255, 240, 0.06);
	font-family: Orbitron, monospace;
}

/* API 等待模式：更强调脉冲，无闸门 */
.lx-fx-overlay.is-wait .lx-fx-overlay__shutter {
	display: none;
}
.lx-fx-overlay.is-wait .lx-fx-overlay__void {
	background:
		radial-gradient(ellipse 70% 55% at 50% 42%, rgba(139, 92, 255, 0.16), transparent 55%),
		radial-gradient(ellipse 50% 40% at 30% 70%, rgba(0, 255, 240, 0.1), transparent 50%),
		rgba(2, 4, 12, 0.82);
}

body.lx-fx-busy,
body.lx-cx-navigating {
	overflow: hidden !important;
}

/* —— 点击瞬间预加载层：消除截图等待的「卡住」感 —— */
.lx-fx-prep-layer {
	position: fixed;
	inset: 0;
	z-index: calc(var(--lx-fx-z) + 4);
	pointer-events: all;
	overflow: hidden;
	opacity: 0;
}
.lx-fx-prep-layer.is-running {
	opacity: 1;
	animation: lx-fx-prep-in 0.12s ease-out forwards;
}
@keyframes lx-fx-prep-in {
	from { opacity: 0; }
	to { opacity: 1; }
}
.lx-fx-prep-layer__void {
	position: absolute;
	inset: 0;
	background:
		radial-gradient(ellipse 70% 55% at 50% 42%, rgba(0, 255, 240, 0.16), transparent 55%),
		radial-gradient(ellipse 50% 40% at 80% 70%, rgba(255, 43, 214, 0.14), transparent 50%),
		rgba(2, 4, 12, 0.42);
	backdrop-filter: blur(3px) saturate(1.2);
	-webkit-backdrop-filter: blur(3px) saturate(1.2);
	animation: lx-fx-prep-void 0.8s ease-in-out infinite alternate;
}
@keyframes lx-fx-prep-void {
	from { background-color: rgba(2, 4, 12, 0.38); }
	to { background-color: rgba(2, 6, 16, 0.55); }
}
.lx-fx-prep-layer__grid {
	position: absolute;
	inset: -5%;
	background-image:
		linear-gradient(rgba(0, 255, 240, 0.1) 1px, transparent 1px),
		linear-gradient(90deg, rgba(0, 255, 240, 0.08) 1px, transparent 1px);
	background-size: 36px 36px;
	opacity: 0.55;
	animation: lx-fx-prep-grid 1.2s linear infinite;
	mask-image: radial-gradient(ellipse 80% 70% at 50% 45%, #000 15%, transparent 75%);
}
@keyframes lx-fx-prep-grid {
	to { background-position: 0 36px, 36px 0; }
}
.lx-fx-prep-layer__scan {
	position: absolute;
	inset: 0;
	background: linear-gradient(
		180deg,
		transparent 0%,
		rgba(0, 255, 240, 0.12) 48%,
		rgba(255, 43, 214, 0.1) 52%,
		transparent 100%
	);
	background-size: 100% 220%;
	animation: lx-fx-prep-scan 0.9s linear infinite;
	pointer-events: none;
}
@keyframes lx-fx-prep-scan {
	0% { background-position: 0 -30%; }
	100% { background-position: 0 130%; }
}
.lx-fx-prep-layer__glitch-bars {
	position: absolute;
	inset: 0;
	pointer-events: none;
	overflow: hidden;
}
.lx-fx-prep-layer__glitch-bars i {
	position: absolute;
	left: 0;
	right: 0;
	height: 2px;
	background: linear-gradient(90deg, transparent, rgba(0, 255, 240, 0.55), rgba(255, 43, 214, 0.45), transparent);
	opacity: 0.65;
	animation: lx-fx-prep-bar 0.7s ease-in-out infinite;
}
.lx-fx-prep-layer__glitch-bars i:nth-child(1) { top: 18%; animation-delay: 0s; }
.lx-fx-prep-layer__glitch-bars i:nth-child(2) { top: 38%; animation-delay: 0.12s; height: 1px; }
.lx-fx-prep-layer__glitch-bars i:nth-child(3) { top: 62%; animation-delay: 0.24s; }
.lx-fx-prep-layer__glitch-bars i:nth-child(4) { top: 82%; animation-delay: 0.08s; height: 1px; }
@keyframes lx-fx-prep-bar {
	0%, 100% { transform: translateX(-8%); opacity: 0.25; }
	50% { transform: translateX(8%); opacity: 0.85; }
}
/* 预加载时页面轻微压暗抖动感 */
body.lx-fx-prepping .wp-site-blocks,
body.lx-fx-prepping main {
	filter: brightness(0.72) saturate(1.15);
	transition: filter 0.08s linear;
	pointer-events: none !important;
}

/* —— 整页向中心收缩 / 从中心弹出 —— */
.lx-fx-tile-layer,
.lx-fx-page-layer {
	position: fixed;
	inset: 0;
	z-index: calc(var(--lx-fx-z) + 2);
	pointer-events: all;
	overflow: hidden;
	background: #02040a;
	perspective: 1200px;
}
/* 整页快照面板 */
.lx-fx-page-snap {
	position: absolute;
	inset: 0;
	background-color: #0a1220;
	background-repeat: no-repeat;
	transform-origin: 50% 50%;
	will-change: transform, opacity, border-radius, filter;
	backface-visibility: hidden;
	box-shadow:
		0 0 0 1px rgba(0, 255, 240, 0.12),
		0 0 40px rgba(0, 255, 240, 0.08);
}
.lx-fx-page-layer:not(.has-snap) .lx-fx-page-snap {
	background:
		radial-gradient(ellipse at 50% 40%, rgba(0, 255, 240, 0.08), transparent 55%),
		#080e1a;
}

/* 离场：整页缩到中间消失 */
.lx-fx-page-layer--out .lx-fx-page-snap {
	transform: scale(1);
	opacity: 1;
	border-radius: 0;
	filter: brightness(1) saturate(1);
}
.lx-fx-page-layer--out.is-running .lx-fx-page-snap {
	animation: lx-fx-page-shrink-out 0.7s cubic-bezier(0.55, 0.05, 0.9, 0.4) forwards;
}
@keyframes lx-fx-page-shrink-out {
	0% {
		transform: scale(1);
		opacity: 1;
		border-radius: 0;
		filter: brightness(1) saturate(1.05);
	}
	35% {
		transform: scale(0.92);
		opacity: 1;
		border-radius: 12px;
		filter: brightness(1.05) saturate(1.15);
	}
	100% {
		transform: scale(0.04);
		opacity: 0;
		border-radius: 28px;
		filter: brightness(1.35) saturate(1.4) blur(1px);
	}
}

/* 截图前：真实页面先跟手往中间缩一点 */
html.lx-fx-html-shrink,
html.lx-fx-html-shrink body {
	overflow: hidden !important;
}
html.lx-fx-html-shrink body .wp-site-blocks,
html.lx-fx-html-shrink body main {
	transform-origin: 50% 45vh;
	transform: scale(0.94);
	filter: brightness(0.78) saturate(1.12);
	transition: transform 0.28s cubic-bezier(0.4, 0, 0.2, 1), filter 0.2s ease;
	pointer-events: none !important;
}

/* 兼容旧切块类名（不再生成 tile，避免报错） */
.lx-fx-tile {
	display: none !important;
}
@keyframes lx-fx-tile-layer-fade {
	to { opacity: 0; visibility: hidden; }
}

/* —— 入场：赛博朋克闪亮登场（无方块下落） —— */
.lx-fx-flash-layer {
	position: fixed;
	inset: 0;
	z-index: calc(var(--lx-fx-z) + 3);
	pointer-events: none;
	overflow: hidden;
	opacity: 0;
}
.lx-fx-flash-layer.is-running {
	opacity: 1;
	animation: lx-fx-flash-hold 0.72s ease forwards;
}
.lx-fx-flash-layer.is-done {
	animation: lx-fx-flash-out 0.4s ease forwards;
}
@keyframes lx-fx-flash-hold {
	0% { opacity: 0; }
	12% { opacity: 1; }
	70% { opacity: 1; }
	100% { opacity: 0.85; }
}
@keyframes lx-fx-flash-out {
	to { opacity: 0; visibility: hidden; }
}
.lx-fx-flash-layer__void {
	position: absolute;
	inset: 0;
	background:
		radial-gradient(ellipse 70% 55% at 50% 45%, rgba(0, 255, 240, 0.28), transparent 55%),
		radial-gradient(ellipse 50% 40% at 70% 60%, rgba(255, 43, 214, 0.22), transparent 50%),
		rgba(2, 4, 12, 0.55);
	backdrop-filter: blur(6px) saturate(1.35);
	-webkit-backdrop-filter: blur(6px) saturate(1.35);
}
.lx-fx-flash-layer__burst {
	position: absolute;
	left: 50%;
	top: 48%;
	width: 12px;
	height: 12px;
	margin: -6px 0 0 -6px;
	border-radius: 50%;
	background: radial-gradient(circle, #fff 0%, #00fff0 30%, transparent 70%);
	box-shadow:
		0 0 40px #00fff0,
		0 0 80px rgba(255, 43, 214, 0.55),
		0 0 120px rgba(139, 92, 255, 0.4);
	animation: lx-fx-burst 0.55s cubic-bezier(0.15, 0.9, 0.3, 1) forwards;
}
@keyframes lx-fx-burst {
	0% { transform: scale(0.2); opacity: 0; }
	35% { transform: scale(18); opacity: 1; }
	100% { transform: scale(42); opacity: 0; }
}
.lx-fx-flash-layer__scan {
	position: absolute;
	inset: 0;
	background: linear-gradient(
		180deg,
		transparent 0%,
		rgba(0, 255, 240, 0.14) 46%,
		rgba(255, 43, 214, 0.12) 54%,
		transparent 100%
	);
	background-size: 100% 200%;
	animation: lx-fx-flash-scan 0.65s ease-out forwards;
	pointer-events: none;
}
@keyframes lx-fx-flash-scan {
	0% { background-position: 0 -40%; opacity: 0; }
	20% { opacity: 1; }
	100% { background-position: 0 140%; opacity: 0.4; }
}
.lx-fx-flash-layer__lines {
	position: absolute;
	inset: 0;
	background-image:
		linear-gradient(rgba(0, 255, 240, 0.06) 1px, transparent 1px),
		linear-gradient(90deg, rgba(255, 43, 214, 0.05) 1px, transparent 1px);
	background-size: 40px 40px;
	opacity: 0.5;
	mask-image: radial-gradient(ellipse 70% 60% at 50% 50%, #000 20%, transparent 75%);
	animation: lx-fx-grid-fade 0.7s ease forwards;
}
@keyframes lx-fx-grid-fade {
	0% { opacity: 0.7; transform: scale(1.04); }
	100% { opacity: 0.15; transform: scale(1); }
}
.lx-fx-cyber-hud--flash {
	z-index: 5;
	animation: lx-fx-hud-pop 0.45s cubic-bezier(0.22, 1, 0.36, 1) both;
}
@keyframes lx-fx-hud-pop {
	0% { opacity: 0; transform: translate(-50%, -50%) scale(0.7); filter: blur(8px); }
	55% { opacity: 1; transform: translate(-50%, -50%) scale(1.04); filter: none; }
	100% { opacity: 1; transform: translate(-50%, -50%) scale(1); }
}

/* 页面内容闪亮登场 */
body.lx-fx-cyber-flash.lx-fx-scene-ready .wp-site-blocks,
body.lx-fx-cyber-flash.lx-fx-scene-ready main {
	animation: lx-fx-cyber-reveal 0.55s cubic-bezier(0.22, 1, 0.36, 1) both !important;
}
@keyframes lx-fx-cyber-reveal {
	0% {
		opacity: 0;
		transform: scale(0.985);
		filter: brightness(2.2) saturate(1.4) blur(6px);
	}
	35% {
		opacity: 1;
		transform: scale(1.01);
		filter: brightness(1.45) saturate(1.25) blur(1px);
	}
	100% {
		opacity: 1;
		transform: none;
		filter: none;
	}
}

/* —— 赛博朋克加载 HUD（转场中间） —— */
.lx-fx-cyber-hud {
	position: absolute;
	left: 50%;
	top: 48%;
	z-index: 20;
	transform: translate(-50%, -50%);
	width: min(320px, 86vw);
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	pointer-events: none;
	filter: drop-shadow(0 0 24px rgba(0, 255, 240, 0.25));
}
.lx-fx-cyber-hud__rings {
	position: relative;
	width: 120px;
	height: 120px;
	margin-bottom: 10px;
}
.lx-fx-cyber-hud__rings .r {
	position: absolute;
	inset: 0;
	border-radius: 50%;
	border: 2px solid rgba(0, 255, 240, 0.35);
	box-sizing: border-box;
}
.lx-fx-cyber-hud__rings .r1 {
	border-style: dashed;
	border-color: rgba(0, 255, 240, 0.75);
	animation: lx-fx-spin 2.4s linear infinite;
}
.lx-fx-cyber-hud__rings .r2 {
	inset: 12px;
	border-color: rgba(255, 43, 214, 0.55);
	animation: lx-fx-spin 3.6s linear infinite reverse;
}
.lx-fx-cyber-hud__rings .r3 {
	inset: 26px;
	border-color: rgba(139, 92, 255, 0.5);
	border-style: dotted;
	animation: lx-fx-spin 1.8s linear infinite;
}
.lx-fx-cyber-hud__rings .core {
	position: absolute;
	left: 50%;
	top: 50%;
	width: 28px;
	height: 28px;
	margin: -14px 0 0 -14px;
	border-radius: 50%;
	background: radial-gradient(circle, #fff 0%, #00fff0 40%, transparent 70%);
	box-shadow: 0 0 24px #00fff0, 0 0 48px rgba(255, 43, 214, 0.45);
	animation: lx-fx-core-pulse 1.1s ease-in-out infinite;
}
@keyframes lx-fx-spin {
	to { transform: rotate(360deg); }
}
@keyframes lx-fx-core-pulse {
	0%, 100% { transform: scale(1); opacity: 1; }
	50% { transform: scale(1.25); opacity: 0.7; }
}

.lx-fx-cyber-hud__glitch {
	position: relative;
	font-family: Orbitron, "Segoe UI", sans-serif;
	font-size: clamp(22px, 5vw, 32px);
	font-weight: 800;
	letter-spacing: 0.18em;
	color: #e8ffff;
	text-shadow: 0 0 16px rgba(0, 255, 240, 0.6);
	margin: 0 0 6px;
}
.lx-fx-cyber-hud__glitch::before,
.lx-fx-cyber-hud__glitch::after {
	content: attr(data-text);
	position: absolute;
	left: 0;
	top: 0;
	width: 100%;
	overflow: hidden;
}
.lx-fx-cyber-hud__glitch::before {
	color: #00fff0;
	clip-path: inset(0 0 55% 0);
	transform: translate(-2px, 0);
	animation: lx-fx-glitch-a 1.6s infinite linear alternate-reverse;
}
.lx-fx-cyber-hud__glitch::after {
	color: #ff2bd6;
	clip-path: inset(45% 0 0 0);
	transform: translate(2px, 0);
	animation: lx-fx-glitch-b 1.2s infinite linear alternate-reverse;
}
@keyframes lx-fx-glitch-a {
	0% { transform: translate(0, 0); }
	20% { transform: translate(-3px, 1px); }
	40% { transform: translate(2px, -1px); }
	100% { transform: translate(0, 0); }
}
@keyframes lx-fx-glitch-b {
	0% { transform: translate(0, 0); }
	25% { transform: translate(3px, -1px); }
	50% { transform: translate(-2px, 1px); }
	100% { transform: translate(0, 0); }
}

.lx-fx-cyber-hud__cn {
	margin: 0 0 12px;
	font-size: 13.5px;
	font-weight: 600;
	color: #a8d8e8;
	letter-spacing: 0.06em;
	text-shadow: 0 0 10px rgba(0, 0, 0, 0.8);
}
.lx-fx-cyber-hud__bar {
	width: min(220px, 70vw);
	height: 3px;
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.1);
	overflow: hidden;
	margin-bottom: 10px;
	box-shadow: 0 0 12px rgba(0, 255, 240, 0.25);
}
.lx-fx-cyber-hud__bar i {
	display: block;
	height: 100%;
	width: 40%;
	border-radius: inherit;
	background: linear-gradient(90deg, #00fff0, #8b5cff, #ff2bd6);
	animation: lx-fx-bar 1.05s ease-in-out infinite;
}
@keyframes lx-fx-bar {
	0% { transform: translateX(-120%); }
	100% { transform: translateX(320%); }
}
.lx-fx-cyber-hud__meta {
	display: flex;
	gap: 8px;
	flex-wrap: wrap;
	justify-content: center;
	margin-bottom: 6px;
}
.lx-fx-cyber-hud__meta span {
	font-family: Orbitron, monospace;
	font-size: 10px;
	letter-spacing: 0.14em;
	color: #5eead4;
	padding: 2px 8px;
	border-radius: 999px;
	border: 1px solid rgba(0, 255, 240, 0.35);
	background: rgba(0, 0, 0, 0.45);
}
.lx-fx-cyber-hud__bits {
	display: flex;
	gap: 6px;
	opacity: 0.55;
	font-family: Orbitron, monospace;
	font-size: 10px;
	color: #7af8ff;
}
.lx-fx-cyber-hud__bits b {
	font-weight: 500;
	animation: lx-fx-bit 1.4s ease-in-out infinite;
}
.lx-fx-cyber-hud__bits b:nth-child(2) { animation-delay: 0.15s; }
.lx-fx-cyber-hud__bits b:nth-child(3) { animation-delay: 0.3s; }
.lx-fx-cyber-hud__bits b:nth-child(4) { animation-delay: 0.45s; }
.lx-fx-cyber-hud__bits b:nth-child(5) { animation-delay: 0.6s; }
.lx-fx-cyber-hud__bits b:nth-child(6) { animation-delay: 0.75s; }
@keyframes lx-fx-bit {
	0%, 100% { opacity: 0.35; }
	50% { opacity: 1; }
}

/* 转场时盖住真实页面，只看快照收缩层 */
body.lx-fx-tile-cover .wp-site-blocks,
body.lx-fx-tile-cover main,
body.lx-fx-tile-out .wp-site-blocks,
body.lx-fx-tile-out main,
body.lx-fx-page-shrink-out .wp-site-blocks,
body.lx-fx-page-shrink-out main {
	pointer-events: none !important;
}

/* 入场：从中间极小开始（整页弹出） */
body.lx-fx-scene-enter {
	overflow: hidden !important;
}
body.lx-fx-scene-enter .wp-site-blocks,
body.lx-fx-scene-enter main {
	opacity: 0 !important;
	transform: scale(0.06) !important;
	transform-origin: 50% 48vh !important;
	filter: brightness(1.2) saturate(1.2) !important;
	pointer-events: none !important;
	will-change: transform, opacity;
}
/* 截图瞬间：内容必须可见且无滤镜 */
body.lx-fx-capture-visible.lx-fx-scene-enter .wp-site-blocks,
body.lx-fx-capture-visible.lx-fx-scene-enter main,
body.lx-fx-capture-visible .wp-site-blocks,
body.lx-fx-capture-visible main {
	opacity: 1 !important;
	visibility: visible !important;
	filter: none !important;
	transform: none !important;
}

/* 从中心弹出到满屏 */
body.lx-fx-scene-ready .wp-site-blocks,
body.lx-fx-scene-ready main {
	opacity: 1 !important;
	transform-origin: 50% 48vh !important;
	animation: lx-fx-page-pop-in 0.65s cubic-bezier(0.16, 1, 0.3, 1) forwards;
	pointer-events: none !important;
}
@keyframes lx-fx-page-pop-in {
	0% {
		opacity: 0;
		transform: scale(0.06);
		filter: brightness(1.25) saturate(1.25);
	}
	55% {
		opacity: 1;
		transform: scale(1.035);
		filter: brightness(1.05) saturate(1.1);
	}
	78% {
		transform: scale(0.992);
		filter: brightness(1) saturate(1.02);
	}
	100% {
		opacity: 1;
		transform: scale(1);
		filter: none;
	}
}
/* 轻量直接进入（非站内转场）仍用淡入 */
body.lx-fx-scene-ready:not(.lx-fx-page-pop-in) .wp-site-blocks,
body.lx-fx-scene-ready:not(.lx-fx-page-pop-in) main {
	animation: lx-fx-scene-in 0.35s cubic-bezier(0.22, 1, 0.36, 1) forwards;
}
@keyframes lx-fx-scene-in {
	0% { opacity: 0.85; transform: none; }
	100% { opacity: 1; filter: none; transform: none; }
}
body.lx-fx-scene-out .main-header,
body.lx-fx-scene-out .lx-home-cyber-bar {
	filter: brightness(0.75) saturate(1.2);
	transition: filter 0.25s ease;
}

/* 中心光晕（弹出时） */
.lx-fx-flash-layer--pop {
	pointer-events: none;
}
.lx-fx-flash-layer--pop .lx-fx-flash-layer__void {
	background: radial-gradient(ellipse at 50% 48%, rgba(0, 255, 240, 0.18), transparent 55%),
		rgba(2, 4, 10, 0.35);
}
.lx-fx-flash-layer--pop .lx-fx-flash-layer__burst {
	position: absolute;
	left: 50%;
	top: 48%;
	width: 12vmin;
	height: 12vmin;
	margin: -6vmin 0 0 -6vmin;
	border-radius: 50%;
	background: radial-gradient(circle, rgba(0, 255, 240, 0.55), transparent 70%);
	filter: blur(2px);
	animation: lx-fx-pop-burst 0.55s ease-out forwards;
}
@keyframes lx-fx-pop-burst {
	0% { transform: scale(0.2); opacity: 0.9; }
	100% { transform: scale(8); opacity: 0; }
}

@media (prefers-reduced-motion: reduce) {
	.lx-fx-page-layer--out.is-running .lx-fx-page-snap,
	body.lx-fx-scene-ready .wp-site-blocks,
	body.lx-fx-scene-ready main {
		animation-duration: 0.01ms !important;
		animation-delay: 0s !important;
	}
	html.lx-fx-html-shrink body .wp-site-blocks,
	html.lx-fx-html-shrink body main {
		transform: none !important;
		transition: none !important;
	}
	.lx-fx-cyber-hud__glitch::before,
	.lx-fx-cyber-hud__glitch::after,
	.lx-fx-cyber-hud__rings .r,
	.lx-fx-cyber-hud__bar i {
		animation: none !important;
	}
}

/* 顶栏导航项点击反馈 */
.main-header .wp-block-navigation-item__content.lx-fx-nav-hit,
.lx-nav-dd__link.lx-fx-nav-hit {
	color: #00fff0 !important;
	text-shadow: 0 0 12px rgba(0, 255, 240, 0.55);
}

/* —— 元素级 Loading —— */
.lx-fx-loading {
	position: relative !important;
	pointer-events: none !important;
	opacity: 0.72;
}
.lx-fx-loading::after {
	content: "";
	position: absolute;
	inset: 0;
	border-radius: inherit;
	background: rgba(3, 6, 14, 0.45);
	backdrop-filter: blur(2px);
	z-index: 5;
}
.lx-fx-loading::before {
	content: "";
	position: absolute;
	left: 50%;
	top: 50%;
	width: 28px;
	height: 28px;
	margin: -14px 0 0 -14px;
	border-radius: 50%;
	border: 2px solid rgba(0, 255, 240, 0.2);
	border-top-color: var(--lx-fx-cyan);
	border-right-color: var(--lx-fx-pink);
	box-shadow: 0 0 16px rgba(0, 255, 240, 0.35);
	animation: lx-fx-spin 0.7s linear infinite;
	z-index: 6;
}

/* 按钮 loading · 全站统一（button / a / input） */
.lx-fx-btn-loading,
button.lx-fx-btn-loading,
a.lx-fx-btn-loading,
input.lx-fx-btn-loading,
[role="button"].lx-fx-btn-loading {
	position: relative !important;
	pointer-events: none !important;
	cursor: wait !important;
	opacity: 0.92 !important;
	/* 锁最小高度，避免文字变透明后按钮塌缩 */
	min-height: 2.25em;
}
/* 非 input：隐藏原文字，居中转圈 */
button.lx-fx-btn-loading,
a.lx-fx-btn-loading,
[role="button"].lx-fx-btn-loading {
	color: transparent !important;
	-webkit-text-fill-color: transparent !important;
}
button.lx-fx-btn-loading > *,
a.lx-fx-btn-loading > *,
[role="button"].lx-fx-btn-loading > * {
	visibility: hidden !important;
}
button.lx-fx-btn-loading::after,
a.lx-fx-btn-loading::after,
[role="button"].lx-fx-btn-loading::after {
	content: "" !important;
	position: absolute !important;
	left: 50% !important;
	top: 50% !important;
	width: 18px !important;
	height: 18px !important;
	margin: -9px 0 0 -9px !important;
	border-radius: 50% !important;
	border: 2px solid rgba(255, 255, 255, 0.22) !important;
	border-top-color: #00fff0 !important;
	border-right-color: #ff2bd6 !important;
	box-shadow: 0 0 12px rgba(0, 255, 240, 0.35) !important;
	animation: lx-fx-spin 0.65s linear infinite !important;
	z-index: 2 !important;
	pointer-events: none !important;
	box-sizing: border-box !important;
}
/* input 无法伪元素 spinner：用文案「加载中…」+ 微光脉冲 */
input.lx-fx-btn-loading[type="submit"],
input.lx-fx-btn-loading[type="button"],
input.lx-fx-btn-loading[type="image"] {
	color: #7af8ff !important;
	-webkit-text-fill-color: #7af8ff !important;
	letter-spacing: 0.06em;
	animation: lx-fx-btn-pulse 1s ease-in-out infinite;
	background-image: linear-gradient(
		90deg,
		rgba(0, 255, 240, 0.08),
		rgba(255, 43, 214, 0.12),
		rgba(0, 255, 240, 0.08)
	) !important;
	background-size: 200% 100% !important;
	animation: lx-fx-btn-shimmer 1.1s linear infinite;
}
@keyframes lx-fx-btn-shimmer {
	0% { background-position: 100% 0; }
	100% { background-position: -100% 0; }
}
@keyframes lx-fx-btn-pulse {
	0%, 100% { filter: brightness(1); }
	50% { filter: brightness(1.12); }
}

/* 全局：正在忙时的轻微光标反馈 */
body.lx-fx-busy,
body.lx-fx-busy * {
	cursor: wait !important;
}

@media (prefers-reduced-motion: reduce) {
	.lx-fx-overlay__grid,
	.lx-fx-overlay__scan,
	.lx-fx-overlay__ring,
	.lx-fx-overlay__orb,
	.lx-fx-overlay__hex,
	.lx-fx-overlay__bar > i,
	.lx-fx-overlay__bits i,
	.lx-fx-loading::before,
	.lx-fx-btn-loading::after {
		animation: none !important;
	}
	.lx-fx-overlay.is-nav.is-active .lx-fx-overlay__shutter {
		transform: scaleY(1);
		animation: none;
	}
}
