/* ==========================================================================
   MARATHON ACID — 主样式表
   设计语言：酸性设计(Acid) × 科幻HUD × 高饱和撞色 × 故障艺术 × 极简几何
   ========================================================================== */

/* ---------- 0. 设计令牌 ---------- */
:root {
	/* 高饱和主色板 */
	--acid:        #c8ff00;   /* 青柠绿 —— 主题核心色 */
	--acid-dim:    #9ecc00;
	--magenta:     #ff2d78;
	--cyan:        #00e5ff;
	--orange:      #ff6a00;
	--violet:      #8b5bff;

	/* 底色层 */
	--bg:          #090b06;
	--bg-2:        #0d100a;
	--panel:       #12170c;
	--panel-2:     #171d10;
	--line:        #263117;
	--line-strong: #3a4a1e;

	/* 文字 */
	--ink:         #eaf4d6;
	--ink-dim:     #9aa884;
	--ink-faint:   #5c6a48;

	/* 字体栈 */
	--font-display: "Archivo Black", "Arial Black", "Impact", "Source Han Sans SC", "Noto Sans SC", "PingFang SC", "Microsoft YaHei", sans-serif;
	--font-body:    "Helvetica Neue", "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;
	--font-mono:    "JetBrains Mono", "SFMono-Regular", "Consolas", "Sarasa Mono SC", "Courier New", monospace;

	/* 节奏 */
	--hud-height: 112px;
	--ease-out: cubic-bezier(.16, 1, .3, 1);
	--ease-snap: cubic-bezier(.83, 0, .17, 1);
}

/* ---------- 1. 基础 ---------- */
*, *::before, *::after { box-sizing: border-box; }

html { scroll-behavior: smooth; }

body.marathon-theme {
	margin: 0;
	background: var(--bg);
	color: var(--ink);
	font-family: var(--font-body);
	font-size: 16px;
	line-height: 1.75;
	-webkit-font-smoothing: antialiased;
	overflow-x: hidden;
}

::selection { background: var(--acid); color: #000; }

a { color: var(--acid); text-decoration: none; transition: color .2s; }
a:hover { color: #fff; }

img { max-width: 100%; height: auto; display: block; }

.screen-reader-text {
	position: absolute !important;
	width: 1px; height: 1px;
	clip: rect(1px, 1px, 1px, 1px);
	overflow: hidden;
}

/* 滚动条 */
::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-track { background: var(--bg-2); }
::-webkit-scrollbar-thumb { background: var(--line-strong); border: 2px solid var(--bg-2); }
::-webkit-scrollbar-thumb:hover { background: var(--acid); }

/* ---------- 2. 持久背景层 ---------- */
.bg-layer {
	position: fixed; inset: 0; z-index: -2; pointer-events: none;
}
#marathon-bg { position: absolute; inset: 0; width: 100%; height: 100%; }

/* 星系画布：全局常驻背景（非首页适度压暗保证可读性） */
#starCanvas {
	position: absolute; inset: 0; width: 100%; height: 100%;
	opacity: .6;
	transition: opacity .8s var(--ease-out);
}
body.is-landing #starCanvas { opacity: 1; }

/* 开机期间背景淡入衔接，避免硬切 */
body.is-booting .bg-layer { opacity: 0; }
.bg-layer { transition: opacity 1.2s var(--ease-out); }

.bg-grid {
	position: absolute; inset: 0;
	background-image:
		linear-gradient(rgba(200, 255, 0, .045) 1px, transparent 1px),
		linear-gradient(90deg, rgba(200, 255, 0, .045) 1px, transparent 1px);
	background-size: 56px 56px;
	mask-image: radial-gradient(ellipse 120% 90% at 50% 0%, #000 30%, transparent 75%);
	-webkit-mask-image: radial-gradient(ellipse 120% 90% at 50% 0%, #000 30%, transparent 75%);
}

.bg-scanlines {
	position: absolute; inset: 0;
	background: repeating-linear-gradient(
		to bottom,
		transparent 0, transparent 3px,
		rgba(0, 0, 0, .18) 3px, rgba(0, 0, 0, .18) 4px
	);
	mix-blend-mode: multiply;
	opacity: .5;
}

.bg-vignette {
	position: absolute; inset: 0;
	background: radial-gradient(ellipse at center, transparent 55%, rgba(0,0,0,.55) 100%);
}

/* ---------- 3. 自定义光标 ---------- */
@media (hover: hover) and (pointer: fine) {
	.marathon-theme { cursor: none; }
	.marathon-theme a, .marathon-theme button, .marathon-theme input, .marathon-theme textarea, .marathon-theme select, .marathon-theme label { cursor: none; }
}

.cursor-dot, .cursor-ring {
	position: fixed; top: 0; left: 0; z-index: 9999;
	pointer-events: none;
	transform: translate(-100px, -100px);
}
.cursor-dot {
	width: 6px; height: 6px;
	background: var(--acid);
	border-radius: 0;
}
.cursor-ring {
	width: 34px; height: 34px;
	border: 1px solid rgba(200, 255, 0, .7);
	transition: width .25s var(--ease-out), height .25s var(--ease-out), border-color .25s, transform .08s linear;
	display: grid; place-items: center;
}
.cursor-ring span {
	width: 4px; height: 4px; background: var(--acid); opacity: 0;
	transition: opacity .2s;
}
.cursor-ring.is-hover { width: 52px; height: 52px; border-color: var(--magenta); }
.cursor-ring.is-hover span { opacity: 1; }
.cursor-ring.is-down { width: 22px; height: 22px; }

/* 光标旋转的角标 */
.cursor-ring::before, .cursor-ring::after {
	content: ""; position: absolute; width: 6px; height: 6px;
	border: 1px solid var(--acid);
}
.cursor-ring::before { top: -3px; left: -3px; border-right: 0; border-bottom: 0; }
.cursor-ring::after { bottom: -3px; right: -3px; border-left: 0; border-top: 0; }

/* ---------- 4. HUD 顶部导航（持久层，常驻顶部不隐藏） ---------- */
.site-hud {
	position: fixed; top: 0; left: 0; right: 0; z-index: 100;
	background: linear-gradient(to bottom, rgba(9, 11, 6, .52), rgba(9, 11, 6, .28));
	backdrop-filter: blur(10px);
	-webkit-backdrop-filter: blur(10px);
	border-bottom: 1px solid var(--line);
}

/* 顶部细条 */
.hud-top-strip {
	display: flex; gap: 28px; align-items: center;
	padding: 4px 24px;
	font-family: var(--font-mono);
	font-size: 10px; letter-spacing: .18em;
	color: var(--ink-dim);
	border-bottom: 1px solid var(--line);
	text-transform: uppercase;
	white-space: nowrap; overflow: hidden;
}
.strip-item.blink { color: var(--magenta); animation: blink 1.6s steps(2) infinite; }
.strip-clock { margin-left: auto; color: var(--acid); }

@keyframes blink { 50% { opacity: .15; } }

/* 主导航行 */
.hud-main {
	display: flex; align-items: center; gap: 32px;
	padding: 0 24px; height: 64px;
}

.site-logo {
	display: flex; align-items: center; gap: 12px;
	color: var(--acid);
	font-family: var(--font-display);
	font-size: 20px; letter-spacing: .06em;
	text-transform: uppercase;
}
.logo-mark { display: grid; place-items: center; transition: transform .3s var(--ease-out); }
.site-logo:hover .logo-mark { transform: rotate(-8deg) scale(1.08); color: var(--magenta); }

/* 故障字（悬停触发） */
.glitch-hover { position: relative; }
.glitch-hover::before, .glitch-hover::after {
	content: attr(data-text);
	position: absolute; inset: 0;
	opacity: 0; pointer-events: none;
}
.glitch-hover:hover::before {
	opacity: 1; color: var(--cyan); z-index: -1;
	animation: glitch-shift-a .35s steps(3) infinite;
}
.glitch-hover:hover::after {
	opacity: 1; color: var(--magenta); z-index: -2;
	animation: glitch-shift-b .35s steps(3) infinite;
}
@keyframes glitch-shift-a {
	0% { transform: translate(2px, -1px); clip-path: inset(0 0 60% 0); }
	50% { transform: translate(-2px, 1px); clip-path: inset(40% 0 20% 0); }
	100% { transform: translate(1px, 0); clip-path: inset(70% 0 0 0); }
}
@keyframes glitch-shift-b {
	0% { transform: translate(-2px, 1px); clip-path: inset(60% 0 0 0); }
	50% { transform: translate(2px, -1px); clip-path: inset(10% 0 55% 0); }
	100% { transform: translate(-1px, 0); clip-path: inset(0 0 75% 0); }
}

/* 菜单 */
.primary-nav { margin-left: auto; }
.nav-menu { display: flex; gap: 6px; list-style: none; margin: 0; padding: 0; }
.nav-menu a {
	display: flex; align-items: baseline; gap: 7px;
	padding: 8px 14px;
	font-family: var(--font-mono);
	font-size: 13px; letter-spacing: .1em;
	color: var(--ink-dim);
	text-transform: uppercase;
	position: relative;
	transition: color .2s, background .2s;
}
.nav-menu a .nav-index { font-size: 9px; color: var(--acid); }
.nav-menu a .nav-index:empty { display: none; }
.nav-menu a::after {
	content: ""; position: absolute; left: 14px; right: 14px; bottom: 4px;
	height: 2px; background: var(--acid);
	transform: scaleX(0); transform-origin: left;
	transition: transform .3s var(--ease-out);
}
.nav-menu a:hover { color: var(--ink); }
.nav-menu a:hover::after { transform: scaleX(1); }
.nav-menu .current-menu-item > a,
.nav-menu .current_page_item > a { color: var(--acid); background: rgba(200, 255, 0, .07); }
.nav-menu .current-menu-item > a::after,
.nav-menu .current_page_item > a::after { transform: scaleX(1); }

/* HUD 按钮 */
.hud-actions { display: flex; align-items: center; gap: 12px; }
.hud-btn {
	display: inline-block;
	font-family: var(--font-mono); font-size: 12px; letter-spacing: .12em;
	padding: 8px 18px;
	border: 1px solid var(--acid);
	color: var(--acid);
	background: transparent;
	position: relative;
	transition: all .2s var(--ease-out);
	clip-path: polygon(8px 0, 100% 0, 100% calc(100% - 8px), calc(100% - 8px) 100%, 0 100%, 0 8px);
}
.hud-btn:hover {
	background: var(--acid); color: #000;
	box-shadow: 0 0 24px rgba(200, 255, 0, .45);
}

/* 搜索按钮：纯放大镜图标，无边框/底色/文字/悬停动效 */
.search-toggle {
	border: 0;
	background: transparent;
	clip-path: none;
	padding: 8px 12px;
	color: var(--acid);
	line-height: 0;
}
.search-toggle:hover {
	background: transparent;
	color: var(--acid);
	box-shadow: none;
	transform: none;
}
/* 登录 / 退出按钮：去掉悬停动效 */
.hud-btn-ghost:hover {
	background: transparent;
	color: var(--acid);
	box-shadow: none;
	transform: none;
}

/* 汉堡按钮 */
.nav-toggle {
	display: none;
	flex-direction: column; gap: 5px;
	background: none; border: 1px solid var(--line-strong);
	padding: 10px 9px;
}
.nav-toggle span { display: block; width: 20px; height: 2px; background: var(--acid); transition: transform .3s, opacity .2s; }
.nav-toggle[aria-expanded="true"] span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.nav-toggle[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.nav-toggle[aria-expanded="true"] span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

/* 跑马灯 */
.hud-ticker {
	border-top: 1px solid var(--line);
	overflow: hidden;
	background: rgba(200, 255, 0, .04);
	height: 26px; display: flex; align-items: center;
}
.ticker-track { display: flex; width: max-content; animation: ticker 40s linear infinite; }
.hud-ticker:hover .ticker-track { animation-play-state: paused; }
.ticker-seq { display: flex; white-space: nowrap; }
.ticker-item {
	font-family: var(--font-mono); font-size: 11px; letter-spacing: .08em;
	color: var(--ink-dim); padding: 0 34px;
}
.ticker-item i { color: var(--acid); font-style: normal; margin-right: 6px; }
@keyframes ticker { to { transform: translateX(-50%); } }

/* ---------- 5. 页面转场（元素退出/进入 + 中央字符 loading，背景保持可见） ---------- */
.page-transition {
	position: fixed; inset: 0; z-index: 500;
	pointer-events: none;
	display: grid; place-items: center;
	visibility: hidden;
}
.page-transition.is-active { visibility: visible; }

.pt-loading {
	font-family: var(--font-mono);
	font-size: clamp(14px, 2vw, 18px);
	color: var(--acid);
	text-transform: uppercase;
	text-shadow: 2px 0 var(--magenta), -2px 0 var(--cyan);
	white-space: nowrap;
	padding: 14px 26px;
	background: rgba(9, 11, 6, .72);
	border: 1px solid var(--line-strong);
	opacity: 0;
	transform: translateY(8px);
	transition: opacity .18s var(--ease-out), transform .18s var(--ease-out);
}
.page-transition.is-active .pt-loading { opacity: 1; transform: none; }
/* 乱码动画固定宽度：真等宽字体 + 固定字符位宽，边框宽度不随字符变化 */
.pt-loading-text {
	display: inline-block;
	width: 8.8em;               /* 7 字符 × (1 + .3em 字距) 微调余量 */
	text-align: left;
	font-family: "Courier New", ui-monospace, monospace;
	letter-spacing: .3em;
	overflow: hidden;
}
.pt-loading-cursor { animation: blink .7s steps(2) infinite; color: var(--acid); }

/* 内容元素交错退出（切换页面时） */
.site-main.is-exiting > * {
	animation: main-exit .42s var(--ease-snap) forwards;
}
.site-main.is-exiting > *:nth-child(1) { animation-delay: 0s; }
.site-main.is-exiting > *:nth-child(2) { animation-delay: .05s; }
.site-main.is-exiting > *:nth-child(3) { animation-delay: .1s; }
.site-main.is-exiting > *:nth-child(4) { animation-delay: .15s; }
.site-main.is-exiting > *:nth-child(n+5) { animation-delay: .2s; }
@keyframes main-exit {
	to { opacity: 0; transform: translateY(-26px); filter: blur(3px); }
}

/* 新内容元素交错进入 */
.site-main.is-entering > * {
	animation: main-enter .6s var(--ease-out) backwards;
}
.site-main.is-entering > *:nth-child(1) { animation-delay: 0s; }
.site-main.is-entering > *:nth-child(2) { animation-delay: .07s; }
.site-main.is-entering > *:nth-child(3) { animation-delay: .14s; }
.site-main.is-entering > *:nth-child(4) { animation-delay: .21s; }
.site-main.is-entering > *:nth-child(n+5) { animation-delay: .28s; }
@keyframes main-enter {
	from { opacity: 0; transform: translateY(30px); filter: blur(3px); }
	to { opacity: 1; transform: none; filter: none; }
}

/* ---------- 5b. 开机引导 overlay ---------- */
.boot-overlay {
	position: fixed; inset: 0; z-index: 1000;
	background: var(--bg);
	display: grid; place-items: center;
	transition: opacity .85s var(--ease-out), visibility 0s .85s;
}
.boot-overlay.is-done { opacity: 0; visibility: hidden; pointer-events: none; }
.boot-overlay.is-done .boot-inner { transform: scale(.96); opacity: .4; }
.boot-inner { transition: transform .8s var(--ease-out), opacity .8s var(--ease-out); }

/* 开机期间 HUD 与内容隐藏，结束后渐变浮现 */
body.is-booting .site-hud,
body.is-booting .site-main,
body.is-booting .site-footer { opacity: 0; }
.site-hud, .site-main, .site-footer { transition: opacity .9s var(--ease-out) .15s; }
.boot-overlay::after {
	content: ""; position: absolute; inset: 0; pointer-events: none;
	background: repeating-linear-gradient(to bottom, transparent 0 3px, rgba(0,0,0,.25) 3px 4px);
}
.boot-inner { width: min(560px, 88vw); }
.boot-head {
	display: flex; justify-content: space-between;
	font-family: var(--font-mono); font-size: 10px; letter-spacing: .25em;
	color: var(--ink-faint); text-transform: uppercase;
	border-bottom: 1px solid var(--line);
	padding-bottom: 10px; margin-bottom: 22px;
}
.boot-head b { color: var(--acid); }
.boot-log {
	font-family: var(--font-mono); font-size: 13px; line-height: 2;
	color: var(--acid);
	margin: 0; min-height: 11em;
	white-space: pre-wrap;
}
.boot-log .ok { color: var(--ink); }
.boot-log .warn { color: var(--magenta); }
.boot-log .dim { color: var(--ink-faint); }
.boot-cursor { display: inline-block; width: 9px; height: 15px; background: var(--acid); vertical-align: -2px; animation: blink .8s steps(2) infinite; }
.boot-skip {
	margin-top: 26px;
	font-family: var(--font-mono); font-size: 10px; letter-spacing: .3em;
	color: var(--ink-faint); text-transform: uppercase;
	animation: blink 1.6s steps(2) infinite;
}

/* ---------- 6. 主内容容器 ---------- */
.site-main {
	position: relative;
	padding-top: var(--hud-height);
	padding-bottom: 90px;   /* 为浮动版权按钮预留空间 */
	min-height: 70vh;
}

.wrap { max-width: 1200px; margin: 0 auto; padding: 0 24px; }
.wrap-narrow { max-width: 860px; margin: 0 auto; padding: 0 24px; }

/* 区块通用进入动画（JS 加 .in-view） */
.reveal {
	opacity: 0;
	transform: translateY(36px);
	transition: opacity .7s var(--ease-out), transform .7s var(--ease-out);
}
.reveal.in-view { opacity: 1; transform: none; }
.reveal[data-delay="1"] { transition-delay: .08s; }
.reveal[data-delay="2"] { transition-delay: .16s; }
.reveal[data-delay="3"] { transition-delay: .24s; }
.reveal[data-delay="4"] { transition-delay: .32s; }

/* ---------- 7. 首页 HERO：星系滚动场景 ---------- */
/* 落地页取消内容区顶部留白，让星系 HERO 从视口顶端开始（HUD 导航悬浮其上） */
.is-landing .site-main { padding-top: 0; }

/* 外层 280vh 提供滚动行程，内层 sticky 钉住一屏 */
.hero-space {
	position: relative;
	height: 280vh;
	margin-top: 0;
}
.hero-sticky {
	position: sticky; top: 0;
	height: 100vh;
	overflow: hidden;
}
/* 星系画布已迁移为全局持久层 #starCanvas（见 .bg-layer），所有页面共享 */

/* HERO 前景内容：初始隐藏，滚动中由 JS 驱动渐变浮现 */
.hero-inner {
	position: absolute; inset: 0;
	display: flex; flex-direction: column; justify-content: center;
	padding: 0 24px;
	opacity: 0;
	will-change: opacity, transform;
}
.hero-inner .wrap { width: 100%; }

/* HERO 底部 HUD：坐标 + 滚动提示 */
.hero-hud {
	position: absolute; left: 0; right: 0; bottom: 0;
	display: flex; align-items: flex-end; justify-content: space-between;
	padding: 0 24px 20px;
	font-family: var(--font-mono); font-size: 10px; letter-spacing: .2em;
	color: var(--ink-faint); text-transform: uppercase;
	pointer-events: none;
	will-change: opacity;
}
.hero-coords { line-height: 1.9; }
.hero-coords b { color: var(--acid); font-weight: 400; }

.scroll-hint {
	position: absolute; left: 50%; bottom: 20px;
	transform: translateX(-50%);
	display: flex; flex-direction: column; align-items: center; gap: 6px;
	color: var(--acid);
}
.scroll-hint .hint-arrow {
	font-size: 22px; line-height: 1;
	animation: hint-bounce 1.4s var(--ease-out) infinite;
	text-shadow: 0 0 14px rgba(200, 255, 0, .7);
}
@keyframes hint-bounce {
	0%, 100% { transform: translateY(0); opacity: .95; }
	50% { transform: translateY(12px); opacity: .35; }
}

/* 首页滚动时渐变浮现的整页可读性遮罩（由 hero.js 按滚动进度驱动 opacity） */
.landing-scrim {
	position: absolute; inset: 0;
	background: rgba(9, 11, 6, .82);
	opacity: 0;
	pointer-events: none;
}

/* 旧 .hero 类保留兼容（预览页简化场景用） */
.hero {
	position: relative;
	padding: clamp(60px, 10vw, 120px) 24px clamp(48px, 7vw, 90px);
	overflow: hidden;
}

.hero-tag {
	display: inline-flex; align-items: center; gap: 10px;
	font-family: var(--font-mono); font-size: 12px; letter-spacing: .3em;
	color: var(--acid);
	border: 1px solid var(--line-strong);
	padding: 8px 18px;
	margin-bottom: 28px;
	text-transform: uppercase;
	background: rgba(200, 255, 0, .05);
}
.hero-tag::before { content: "▸"; animation: blink 1.8s steps(2) infinite; }

.hero-title {
	font-family: var(--font-display);
	font-size: clamp(44px, 9vw, 118px);
	line-height: .95;
	letter-spacing: -.01em;
	text-transform: uppercase;
	margin: 0 0 24px;
	color: var(--ink);
}
.hero-title .accent { color: var(--acid); }
.hero-title .outline {
	color: transparent;
	-webkit-text-stroke: 2px var(--ink);
	text-stroke: 2px var(--ink);
}

/* 常驻故障标题（大标题） */
.glitch-static { position: relative; display: inline-block; }
.glitch-static::before, .glitch-static::after {
	content: attr(data-text);
	position: absolute; inset: 0;
	overflow: hidden;
}
.glitch-static::before {
	color: var(--cyan); z-index: -1;
	animation: glitch-loop-a 4s infinite steps(1);
}
.glitch-static::after {
	color: var(--magenta); z-index: -2;
	animation: glitch-loop-b 4s infinite steps(1);
}
@keyframes glitch-loop-a {
	0%, 91%, 100% { transform: none; opacity: 0; clip-path: inset(0 0 0 0); }
	92% { transform: translate(-6px, 2px); opacity: .9; clip-path: inset(0 0 55% 0); }
	94% { transform: translate(4px, -2px); opacity: .9; clip-path: inset(50% 0 10% 0); }
	96% { transform: translate(-3px, 0); opacity: .9; clip-path: inset(80% 0 0 0); }
}
@keyframes glitch-loop-b {
	0%, 91%, 100% { transform: none; opacity: 0; }
	93% { transform: translate(5px, -2px); opacity: .9; clip-path: inset(60% 0 0 0); }
	95% { transform: translate(-5px, 2px); opacity: .9; clip-path: inset(15% 0 60% 0); }
	97% { transform: translate(2px, 1px); opacity: .9; clip-path: inset(0 0 80% 0); }
}

.hero-sub {
	max-width: 560px;
	font-size: 17px; color: var(--ink-dim);
	margin: 0 0 40px;
}

.hero-actions { display: flex; gap: 16px; flex-wrap: wrap; }

.btn {
	display: inline-flex; align-items: center; gap: 10px;
	font-family: var(--font-mono); font-size: 13px; letter-spacing: .14em;
	text-transform: uppercase;
	padding: 14px 30px;
	border: 1px solid var(--acid);
	position: relative; overflow: hidden;
	clip-path: polygon(12px 0, 100% 0, 100% calc(100% - 12px), calc(100% - 12px) 100%, 0 100%, 0 12px);
	transition: color .25s, box-shadow .25s;
}
.btn::before {
	content: ""; position: absolute; inset: 0;
	background: var(--acid);
	transform: translateX(-101%);
	transition: transform .3s var(--ease-snap);
	z-index: -1;
}
.btn:hover { color: #000; box-shadow: 0 0 32px rgba(200, 255, 0, .4); }
.btn:hover::before { transform: translateX(0); }
.btn-solid { background: var(--acid); color: #000; }
.btn-solid::before { background: #fff; }
.btn-ghost { border-color: var(--line-strong); color: var(--ink-dim); }
.btn-ghost::before { background: var(--magenta); }
.btn-ghost:hover { color: #000; border-color: var(--magenta); box-shadow: 0 0 32px rgba(255, 45, 120, .35); }

/* HERO 装饰：侧边竖排文字 + 大几何 */
.hero-deco-vertical {
	position: absolute; right: 28px; top: 50%;
	transform: translateY(-50%) rotate(180deg);
	writing-mode: vertical-rl;
	font-family: var(--font-mono); font-size: 11px; letter-spacing: .5em;
	color: var(--ink-faint);
	text-transform: uppercase;
}
.hero-deco-shape {
	position: absolute; z-index: -1;
	pointer-events: none;
}
.hero-deco-triangle {
	right: 8%; top: 12%;
	width: 0; height: 0;
	border-left: 90px solid transparent;
	border-right: 90px solid transparent;
	border-bottom: 150px solid rgba(200, 255, 0, .1);
	animation: float-y 7s ease-in-out infinite;
}
.hero-deco-ring {
	right: 20%; bottom: 8%;
	width: 120px; height: 120px;
	border: 2px solid rgba(255, 45, 120, .35);
	border-radius: 50%;
	animation: float-y 9s ease-in-out infinite reverse;
}
@keyframes float-y {
	0%, 100% { transform: translateY(0); }
	50% { transform: translateY(-22px); }
}

/* HERO 数据条 */
.hero-stats {
	display: flex; gap: 0; flex-wrap: wrap;
	border: 1px solid var(--line);
	margin-top: 56px;
	background: rgba(13, 16, 10, .6);
}
.stat-cell {
	flex: 1 1 180px;
	padding: 20px 24px;
	border-right: 1px solid var(--line);
	position: relative;
}
.stat-cell:last-child { border-right: 0; }
.stat-num {
	font-family: var(--font-display); font-size: 34px; color: var(--acid);
	line-height: 1; display: block;
}
.stat-label {
	font-family: var(--font-mono); font-size: 10px; letter-spacing: .2em;
	color: var(--ink-faint); text-transform: uppercase;
}

/* ---------- 8. 区块标题 ---------- */
.section-head {
	display: flex; align-items: baseline; gap: 18px;
	margin: 0 0 36px;
	border-bottom: 1px solid var(--line);
	padding-bottom: 16px;
}
.section-index {
	font-family: var(--font-mono); font-size: 13px; color: var(--acid);
	letter-spacing: .15em;
}
.section-title {
	font-family: var(--font-display); font-size: clamp(26px, 4vw, 42px);
	text-transform: uppercase; letter-spacing: .01em; margin: 0;
	line-height: 1.05;
}
.section-more {
	margin-left: auto;
	font-family: var(--font-mono); font-size: 12px; letter-spacing: .12em;
	color: var(--ink-dim);
	border-bottom: 1px dashed var(--line-strong);
	padding-bottom: 2px;
}
.section-more:hover { color: var(--acid); border-color: var(--acid); }

/* ---------- 9. 文章卡片 ---------- */
.posts-section { padding: clamp(40px, 6vw, 80px) 0; }

.card-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
	gap: 24px;
}

.post-card {
	position: relative;
	background: var(--panel);
	border: 1px solid var(--line);
	display: flex; flex-direction: column;
	transition: transform .35s var(--ease-out), border-color .3s, box-shadow .35s;
	overflow: hidden;
}
.post-card:hover {
	transform: translateY(-6px);
	border-color: var(--acid);
	box-shadow: 0 18px 50px -18px rgba(200, 255, 0, .28);
}

/* 卡片四角标记 */
.post-card::before, .post-card::after {
	content: ""; position: absolute; width: 14px; height: 14px; z-index: 3;
	border: 1px solid var(--acid); opacity: 0;
	transition: opacity .25s;
}
.post-card::before { top: 8px; left: 8px; border-right: 0; border-bottom: 0; }
.post-card::after { bottom: 8px; right: 8px; border-left: 0; border-top: 0; }
.post-card:hover::before, .post-card:hover::after { opacity: 1; }

.card-thumb {
	position: relative; aspect-ratio: 16 / 9; overflow: hidden;
	background: var(--panel-2);
}
.card-thumb img {
	width: 100%; height: 100%; object-fit: cover;
	transition: transform .6s var(--ease-out), filter .4s;
	filter: saturate(1.15) contrast(1.05);
}
.post-card:hover .card-thumb img { transform: scale(1.06); }
/* 悬停时色相分离 */
.post-card:hover .card-thumb img { filter: saturate(1.6) contrast(1.15) hue-rotate(-8deg); }

/* 无特色图时的占位图形 */
.card-thumb .thumb-fallback {
	width: 100%; height: 100%;
	display: grid; place-items: center;
	background:
		repeating-linear-gradient(45deg, transparent 0 14px, rgba(200,255,0,.06) 14px 15px),
		var(--panel-2);
}
.thumb-fallback svg { opacity: .5; }

.card-cat {
	position: absolute; top: 12px; left: 12px; z-index: 2;
	font-family: var(--font-mono); font-size: 10px; letter-spacing: .15em;
	background: var(--acid); color: #000;
	padding: 4px 10px; text-transform: uppercase;
	clip-path: polygon(6px 0, 100% 0, 100% calc(100% - 6px), calc(100% - 6px) 100%, 0 100%, 0 6px);
}

.card-body { padding: 22px 22px 20px; display: flex; flex-direction: column; flex: 1; }

.card-meta {
	display: flex; gap: 16px;
	font-family: var(--font-mono); font-size: 11px; letter-spacing: .1em;
	color: var(--ink-faint);
	margin-bottom: 12px;
	text-transform: uppercase;
}
.card-meta .log-id { color: var(--acid); }

.card-title {
	font-size: 20px; line-height: 1.35; margin: 0 0 10px;
	font-weight: 800;
}
.card-title a { color: var(--ink); }
.card-title a:hover { color: var(--acid); }

.card-excerpt {
	font-size: 14px; color: var(--ink-dim);
	margin: 0 0 18px; flex: 1;
}

.card-foot {
	display: flex; align-items: center; justify-content: space-between;
	border-top: 1px solid var(--line);
	padding-top: 14px;
	font-family: var(--font-mono); font-size: 11px; letter-spacing: .1em;
}
.card-read {
	color: var(--acid); display: inline-flex; align-items: center; gap: 8px;
}
.card-read .arrow { transition: transform .25s var(--ease-out); }
.post-card:hover .card-read .arrow { transform: translateX(6px); }

/* ---------- 10. 列表页（列表式行） ---------- */
.post-row {
	display: grid;
	grid-template-columns: 130px 1fr auto;
	gap: 24px; align-items: center;
	padding: 26px 0;
	border-bottom: 1px solid var(--line);
	position: relative;
	transition: padding .3s var(--ease-out), background .3s;
}
.post-row:hover { background: rgba(200, 255, 0, .03); padding-left: 14px; }
.post-row::before {
	content: ""; position: absolute; left: 0; top: 0; bottom: 0;
	width: 3px; background: var(--acid);
	transform: scaleY(0); transition: transform .3s var(--ease-out);
}
.post-row:hover::before { transform: scaleY(1); }

.row-date {
	font-family: var(--font-mono); font-size: 12px; color: var(--acid);
	letter-spacing: .1em;
}
.row-date .log-id { display: block; color: var(--ink-faint); font-size: 10px; margin-top: 4px; }

.row-title { font-size: clamp(18px, 2.4vw, 26px); font-weight: 800; margin: 0 0 6px; line-height: 1.3; }
.row-title a { color: var(--ink); }
.row-title a:hover { color: var(--acid); }
.row-excerpt { margin: 0; font-size: 14px; color: var(--ink-dim); max-width: 640px; }

.row-arrow {
	width: 46px; height: 46px;
	border: 1px solid var(--line-strong);
	display: grid; place-items: center;
	color: var(--acid);
	transition: all .3s var(--ease-out);
	clip-path: polygon(10px 0, 100% 0, 100% calc(100% - 10px), calc(100% - 10px) 100%, 0 100%, 0 10px);
}
.post-row:hover .row-arrow { background: var(--acid); color: #000; transform: rotate(-45deg); }

/* ---------- 11. 文章页 ---------- */
.post-hero {
	padding: clamp(48px, 7vw, 90px) 0 clamp(28px, 4vw, 48px);
	border-bottom: 1px solid var(--line);
	position: relative; overflow: hidden;
}
.post-hero-meta {
	display: flex; gap: 20px; flex-wrap: wrap;
	font-family: var(--font-mono); font-size: 12px; letter-spacing: .12em;
	color: var(--ink-faint);
	text-transform: uppercase;
	margin-bottom: 22px;
}
.post-hero-meta .log-id { color: var(--acid); }
.post-hero-meta .meta-cat { color: var(--magenta); }

.post-title {
	font-family: var(--font-display);
	font-size: clamp(32px, 5.6vw, 64px);
	line-height: 1.08; margin: 0 0 20px;
	text-transform: uppercase;
	letter-spacing: .005em;
}

.post-hero-thumb { margin-top: 36px; border: 1px solid var(--line); }
.post-hero-thumb img { width: 100%; }

.entry-content {
	font-size: 17px; line-height: 1.9;
	padding: clamp(32px, 5vw, 56px) 24px;
	color: var(--ink);
	overflow-wrap: break-word;
}
/* 注意：子元素的 margin 只能用 margin-top/bottom 单独覆盖，
   任何 margin 简写都会清掉这里的 auto 居中（本主题曾因此出现文字贴左 bug） */
.entry-content > * {
	max-width: 780px;
	margin-left: auto !important;
	margin-right: auto !important;
}
.entry-content > .alignwide { max-width: 1000px; }
.entry-content > .alignfull {
	max-width: none;
	margin-left: -24px !important;
	margin-right: -24px !important;
}

.entry-content h2, .entry-content h3, .entry-content h4 {
	font-family: var(--font-display);
	text-transform: uppercase;
	line-height: 1.2;
	margin-top: 2em;
}
.entry-content h2 { font-size: 30px; color: var(--acid); }
.entry-content h3 { font-size: 24px; }
.entry-content h4 { font-size: 19px; color: var(--ink); }

.entry-content p { margin-top: 0; margin-bottom: 1.4em; }
.entry-content a { border-bottom: 1px solid var(--acid); transition: background .2s, color .2s; }
.entry-content a:hover { background: var(--acid); color: #000; }

.entry-content blockquote {
	border-left: 3px solid var(--acid);
	background: var(--panel);
	padding: 20px 28px;
	font-size: 19px;
	font-style: normal;
	position: relative;
}
.entry-content blockquote::before {
	content: "///"; position: absolute; top: 8px; right: 14px;
	font-family: var(--font-mono); color: var(--ink-faint); font-size: 11px;
}

.entry-content code {
	font-family: var(--font-mono); font-size: .88em;
	background: rgba(200, 255, 0, .1);
	color: var(--acid);
	padding: 2px 7px;
}
.entry-content pre {
	background: var(--panel);
	border: 1px solid var(--line);
	border-left: 3px solid var(--acid);
	padding: 20px 24px;
	overflow-x: auto;
	font-family: var(--font-mono); font-size: 14px;
}
.entry-content pre code { background: none; padding: 0; color: var(--ink); }

.entry-content img { border: 1px solid var(--line); }
.entry-content ul li::marker { content: "▸ "; color: var(--acid); }
.entry-content ol li::marker { color: var(--acid); font-family: var(--font-mono); }
.entry-content hr {
	border: 0; height: 1px;
	background: linear-gradient(90deg, var(--acid), transparent);
	margin: 3em auto;
}
.entry-content table {
	width: 100%; border-collapse: collapse;
	font-size: 15px;
}
.entry-content th {
	background: var(--acid); color: #000;
	font-family: var(--font-mono); font-size: 12px; letter-spacing: .1em;
	text-transform: uppercase;
	padding: 10px 14px; text-align: left;
}
.entry-content td { border: 1px solid var(--line); padding: 10px 14px; }

/* 文章页脚：标签 / 导航 */
.post-foot { padding-bottom: 56px; }
.tag-list { display: flex; gap: 10px; flex-wrap: wrap; margin-bottom: 40px; }
.tag-list a {
	font-family: var(--font-mono); font-size: 11px; letter-spacing: .1em;
	border: 1px solid var(--line-strong);
	color: var(--ink-dim);
	padding: 5px 12px;
	text-transform: uppercase;
	transition: all .2s;
}
.tag-list a:hover { border-color: var(--acid); color: var(--acid); background: rgba(200,255,0,.06); }

.post-nav {
	display: grid; grid-template-columns: 1fr 1fr; gap: 2px;
	border: 1px solid var(--line);
	background: var(--line);
}
.post-nav a {
	background: var(--panel);
	padding: 22px 26px;
	display: block;
	transition: background .25s;
}
.post-nav a:hover { background: var(--panel-2); }
.post-nav .nav-dir {
	font-family: var(--font-mono); font-size: 10px; letter-spacing: .2em;
	color: var(--acid); display: block; margin-bottom: 8px;
	text-transform: uppercase;
}
.post-nav .nav-title { font-weight: 700; color: var(--ink); line-height: 1.4; }
.post-nav a:hover .nav-title { color: var(--acid); }
.post-nav .nav-next { text-align: right; }

/* ---------- 12. 归档 / 搜索页头 ---------- */
.archive-head {
	padding: clamp(48px, 7vw, 80px) 0 36px;
	border-bottom: 1px solid var(--line);
}
.archive-kicker {
	font-family: var(--font-mono); font-size: 12px; letter-spacing: .3em;
	color: var(--acid); text-transform: uppercase;
	display: block; margin-bottom: 14px;
}
.archive-title {
	font-family: var(--font-display);
	font-size: clamp(34px, 6vw, 68px);
	margin: 0; line-height: 1.05; text-transform: uppercase;
}
.archive-desc { color: var(--ink-dim); max-width: 620px; margin: 16px 0 0; }

/* ---------- 13. 分页 ---------- */
.pagination-wrap { padding: 48px 0 72px; }
.nav-links { display: flex; gap: 10px; justify-content: center; flex-wrap: wrap; }
.page-numbers {
	font-family: var(--font-mono); font-size: 13px;
	min-width: 44px; height: 44px;
	display: inline-grid; place-items: center;
	border: 1px solid var(--line-strong);
	color: var(--ink-dim);
	transition: all .2s;
}
.page-numbers:hover { border-color: var(--acid); color: var(--acid); }
.page-numbers.current {
	background: var(--acid); color: #000; border-color: var(--acid);
	font-weight: 700;
}
.page-numbers.dots { border-color: transparent; }

/* ---------- 14. 评论区 ---------- */
.comments-area {
	border-top: 1px solid var(--line);
	padding: 48px 0 64px;
}
.comments-title {
	font-family: var(--font-display); font-size: 24px; text-transform: uppercase;
	margin: 0 0 32px;
}
.comment-list { list-style: none; margin: 0 0 48px; padding: 0; }
.comment-list .children { list-style: none; padding-left: 28px; border-left: 1px solid var(--line); }
.comment-body {
	background: var(--panel);
	border: 1px solid var(--line);
	padding: 20px 24px; margin-bottom: 16px;
	position: relative;
}
.comment-author { font-family: var(--font-mono); font-size: 13px; color: var(--acid); }
.comment-metadata { font-family: var(--font-mono); font-size: 11px; color: var(--ink-faint); }
.comment-metadata a { color: var(--ink-faint); }
.comment-content p { margin: 10px 0 0; font-size: 15px; }
.reply { margin-top: 10px; }
.comment-reply-link {
	font-family: var(--font-mono); font-size: 11px; letter-spacing: .1em;
	color: var(--acid); border: 1px solid var(--line-strong); padding: 4px 12px;
}
.comment-reply-link:hover { border-color: var(--acid); }

.comment-form { display: grid; gap: 16px; }
.comment-form label {
	font-family: var(--font-mono); font-size: 11px; letter-spacing: .15em;
	color: var(--ink-dim); text-transform: uppercase;
	display: block; margin-bottom: 6px;
}
.comment-form input[type="text"],
.comment-form input[type="email"],
.comment-form input[type="url"],
.comment-form textarea,
.search-form input[type="search"],
.widget input[type="search"] {
	width: 100%;
	background: var(--bg-2);
	border: 1px solid var(--line-strong);
	color: var(--ink);
	font-family: var(--font-mono); font-size: 14px;
	padding: 12px 16px;
	transition: border-color .2s, box-shadow .2s;
}
.comment-form input:focus,
.comment-form textarea:focus,
.search-form input:focus {
	outline: none; border-color: var(--acid);
	box-shadow: 0 0 0 1px var(--acid), 0 0 24px rgba(200, 255, 0, .15);
}
.comment-form .submit,
.search-form .search-submit,
.widget .wp-block-search__button {
	font-family: var(--font-mono); font-size: 13px; letter-spacing: .12em;
	background: var(--acid); color: #000; border: 0;
	padding: 13px 32px; text-transform: uppercase; font-weight: 700;
	clip-path: polygon(10px 0, 100% 0, 100% calc(100% - 10px), calc(100% - 10px) 100%, 0 100%, 0 10px);
	transition: box-shadow .25s, transform .2s;
}
.comment-form .submit:hover, .search-form .search-submit:hover {
	box-shadow: 0 0 28px rgba(200, 255, 0, .5); transform: translateY(-2px);
}

/* ---------- 15. 搜索框 / 小工具 ---------- */
.search-form { display: flex; gap: 10px; }
.search-form label { flex: 1; }

.widget {
	background: var(--panel);
	border: 1px solid var(--line);
	padding: 22px 24px; margin-bottom: 24px;
}
.widget-title {
	font-family: var(--font-display); font-size: 15px; letter-spacing: .06em;
	text-transform: uppercase; margin: 0 0 16px;
	display: flex; align-items: center; gap: 10px;
}
.tick {
	display: inline-block; width: 10px; height: 10px;
	background: var(--acid);
	clip-path: polygon(0 0, 100% 0, 100% 100%);
}
.widget ul { list-style: none; margin: 0; padding: 0; }
.widget ul li { padding: 8px 0; border-bottom: 1px dashed var(--line); font-size: 14px; }
.widget ul li:last-child { border-bottom: 0; }
.widget ul li a { color: var(--ink-dim); }
.widget ul li a:hover { color: var(--acid); }

/* ---------- 16. 404 ---------- */
.error-404-hero { text-align: center; padding: clamp(70px, 12vw, 140px) 24px; }
.error-code {
	font-family: var(--font-display);
	font-size: clamp(90px, 20vw, 240px);
	line-height: 1;
	color: transparent;
	-webkit-text-stroke: 3px var(--acid);
	margin: 0;
}
.error-title { font-family: var(--font-display); font-size: 26px; text-transform: uppercase; margin: 12px 0 18px; }
.error-text { color: var(--ink-dim); margin: 0 0 36px; }

/* ---------- 17. 页脚（浮动版权按钮 + 展开面板） ---------- */
.site-footer {
	position: fixed; right: 24px; bottom: 24px; z-index: 320;
	pointer-events: none;   /* 仅子元素可交互，避免遮挡页面 */
	font-family: var(--font-mono);
}

/* 浮动版权按钮（默认正方形，© 正居中；悬停展开完整版权文字） */
.footer-fab {
	pointer-events: all;
	display: flex; align-items: center; justify-content: center; gap: 0;
	width: 44px; height: 44px;
	padding: 0;
	overflow: hidden; white-space: nowrap;
	background: var(--acid); color: #0a0c06;
	border: none;
	clip-path: polygon(0 0, calc(100% - 10px) 0, 100% 10px, 100% 100%, 10px 100%, 0 calc(100% - 10px));
	font-family: var(--font-mono); font-size: 11px; letter-spacing: .12em;
	cursor: pointer;
	transition: width .45s var(--ease-snap), padding .45s var(--ease-snap), gap .45s var(--ease-snap), background .2s, transform .2s;
}
.footer-fab:hover { width: auto; max-width: 320px; padding: 0 14px; gap: 10px; transform: translateY(-2px); }
.footer-fab .fab-mark { font-size: 16px; font-weight: 700; flex: none; }
.footer-fab .fab-text { opacity: 0; transition: opacity .3s .1s; }
.footer-fab:hover .fab-text { opacity: 1; }

/* 展开面板 */
.footer-panel {
	position: absolute; right: 0; bottom: 56px;
	width: min(600px, calc(100vw - 48px));
	max-height: 72vh; overflow-y: auto;
	background: rgba(13, 16, 9, .96);
	border: 1px solid var(--line-strong);
	box-shadow: 0 0 0 1px rgba(200,255,0,.08), 0 24px 64px rgba(0,0,0,.55);
	backdrop-filter: blur(6px);
	pointer-events: all;
	opacity: 0; visibility: hidden;
	transform: translateY(14px) scale(.96);
	transform-origin: bottom right;
	transition: opacity .3s var(--ease-out), transform .3s var(--ease-out), visibility 0s .3s;
}
.footer-panel.is-open {
	opacity: 1; visibility: visible;
	transform: none;
	transition: opacity .32s var(--ease-out), transform .32s var(--ease-out);
}

.footer-panel-head {
	display: flex; justify-content: space-between; align-items: center;
	padding: 14px 18px;
	border-bottom: 1px solid var(--line);
	font-size: 11px; letter-spacing: .25em; text-transform: uppercase;
	color: var(--acid);
}
.footer-close {
	background: none; border: 1px solid var(--line-strong);
	color: var(--ink-dim); width: 28px; height: 28px;
	cursor: pointer; font-size: 12px; line-height: 1;
	transition: all .2s;
}
.footer-close:hover { color: #0a0c06; background: var(--acid); border-color: var(--acid); }

.footer-marquee {
	overflow: hidden; border-bottom: 1px solid var(--line);
	padding: 8px 0;
	background: rgba(200, 255, 0, .05);
}
.footer-marquee-track {
	display: flex; width: max-content; white-space: nowrap;
	font-size: 10px; letter-spacing: .3em;
	color: var(--acid);
	animation: ticker 26s linear infinite;
}

.footer-inner {
	padding: 28px 18px 8px;
	display: grid; grid-template-columns: 2fr 1fr 1fr; gap: 28px;
}
.footer-logo {
	font-family: var(--font-display); font-size: 26px; text-transform: uppercase;
	color: var(--ink); width: max-content;
}
.footer-desc { color: var(--ink-dim); font-size: 13px; }
.footer-col h4 {
	font-size: 11px; letter-spacing: .2em;
	text-transform: uppercase; color: var(--acid);
	display: flex; align-items: center; gap: 10px;
	margin: 0 0 14px;
}
.footer-menu { list-style: none; margin: 0; padding: 0; }
.footer-menu li { margin-bottom: 8px; }
.footer-menu a { color: var(--ink-dim); font-size: 13px; }
.footer-menu a:hover { color: var(--acid); }

.footer-bottom {
	border-top: 1px solid var(--line);
	padding: 14px 18px;
	display: flex; gap: 18px; flex-wrap: wrap;
	font-size: 10px; letter-spacing: .12em;
	color: var(--ink-faint);
}
.footer-sig { margin-left: auto; }
.footer-sig b { color: var(--acid); }
.footer-blink { animation: blink 1.2s steps(2) infinite; color: var(--acid); }

@media (max-width: 720px) {
	.footer-inner { grid-template-columns: 1fr; gap: 20px; }
	.footer-sig { margin-left: 0; }
}

/* ---------- 18. 无内容 ---------- */
.no-results-box {
	border: 1px dashed var(--line-strong);
	padding: 64px 32px; text-align: center;
}
.no-results-box h2 { font-family: var(--font-display); text-transform: uppercase; }
.no-results-box p { color: var(--ink-dim); }
.no-results-box .search-form { max-width: 460px; margin: 28px auto 0; }

/* ---------- 19. 响应式 ---------- */
@media (max-width: 960px) {
	.footer-inner { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 768px) {
	:root { --hud-height: 104px; }

	.hide-mobile { display: none; }

	.nav-toggle { display: flex; }
	.hud-btn-ghost { display: none; }

	.primary-nav {
		position: fixed; top: var(--hud-height); left: 0; right: 0;
		background: rgba(9, 11, 6, .97);
		border-bottom: 1px solid var(--acid);
		padding: 20px 24px 28px;
		transform: translateY(-8px);
		opacity: 0; visibility: hidden;
		transition: all .3s var(--ease-out);
		backdrop-filter: blur(18px);
	}
	.primary-nav.is-open { transform: none; opacity: 1; visibility: visible; }
	.nav-menu { flex-direction: column; gap: 0; }
	.nav-menu a { padding: 14px 8px; font-size: 16px; border-bottom: 1px dashed var(--line); }
	.nav-menu a::after { display: none; }

	.post-row { grid-template-columns: 1fr; gap: 8px; }
	.row-arrow { display: none; }

	.footer-inner { grid-template-columns: 1fr; gap: 32px; }
	.hero-deco-vertical { display: none; }

	.post-nav { grid-template-columns: 1fr; }
	.post-nav .nav-next { text-align: left; }

	.stat-cell { flex: 1 1 45%; border-bottom: 1px solid var(--line); }
}

/* ---------- 20. 动效降级 ---------- */
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after {
		animation-duration: .01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: .01ms !important;
	}
	.reveal { opacity: 1; transform: none; }
	.cursor-dot, .cursor-ring { display: none; }
	.marathon-theme { cursor: auto !important; }
	.marathon-theme a, .marathon-theme button { cursor: pointer !important; }
}

/* ==========================================================================
   V1.2 追加：子菜单 / 搜索浮层 / 文章Meta / 分享 / 相关文章 / 评论 / 友链
   ========================================================================== */

/* ---------- 顶部菜单子层级（下拉） ---------- */
.nav-menu li { position: relative; }
.nav-menu .menu-item-has-children > a .nav-label::after {
	content: " ▾";
	font-size: .75em;
	color: var(--acid);
}
.nav-menu .sub-menu {
	position: absolute;
	top: calc(100% + 8px);
	left: 0;
	min-width: 200px;
	margin: 0; padding: 8px 0;
	list-style: none;
	background: rgba(9, 11, 6, .96);
	border: 1px solid var(--line-strong);
	border-left: 3px solid var(--acid);
	backdrop-filter: blur(12px);
	box-shadow: 0 12px 40px rgba(0, 0, 0, .6), 4px 4px 0 rgba(200, 255, 0, .12);
	opacity: 0;
	visibility: hidden;
	transform: translateY(-8px);
	transition: opacity .22s var(--ease-out), transform .22s var(--ease-out), visibility .22s;
	z-index: 60;
}
/* 二级以下向右展开 */
.nav-menu .sub-menu .sub-menu {
	top: -9px;
	left: calc(100% + 6px);
	transform: translateX(-8px);
}
.nav-menu li:hover > .sub-menu,
.nav-menu li:focus-within > .sub-menu,
.nav-menu li.sub-open > .sub-menu {
	opacity: 1;
	visibility: visible;
	transform: translate(0, 0);
}
.nav-menu .sub-menu li { display: block; }
.nav-menu .sub-menu a {
	display: flex; align-items: baseline; gap: 8px;
	padding: 10px 18px;
	font-size: 13px;
	white-space: nowrap;
	color: var(--ink-dim);
}
.nav-menu .sub-menu a:hover {
	color: var(--acid);
	background: rgba(200, 255, 0, .08);
	padding-left: 22px;
}
.nav-menu .sub-menu li.current-menu-item > a { color: var(--acid); }
.nav-menu li.current-menu-ancestor > a .nav-label { color: var(--acid); }

/* 移动端：子菜单改为文档流折叠 */
@media (max-width: 900px) {
	.nav-menu .sub-menu,
	.nav-menu .sub-menu .sub-menu {
		position: static;
		transform: none;
		border: 0;
		border-left: 2px solid var(--line-strong);
		margin-left: 18px;
		padding: 0 0 0 10px;
		box-shadow: none;
		background: transparent;
		backdrop-filter: none;
		max-height: 0;
		overflow: hidden;
		opacity: 1;
		visibility: visible;
		transition: max-height .3s var(--ease-out);
	}
	.nav-menu li.sub-open > .sub-menu { max-height: 500px; }
}

/* ---------- 搜索浮层 ---------- */
.search-overlay {
	position: fixed; inset: 0; z-index: 480;
	display: grid; place-items: center;
	background: rgba(9, 11, 6, .72);
	backdrop-filter: blur(14px) saturate(1.4);
	opacity: 0;
	visibility: hidden;
	transition: opacity .3s var(--ease-out), visibility .3s;
}
.search-overlay.is-open { opacity: 1; visibility: visible; }
.search-overlay-inner {
	width: min(680px, 88vw);
	transform: translateY(24px) scale(.97);
	transition: transform .35s var(--ease-snap);
}
.search-overlay.is-open .search-overlay-inner { transform: none; }
.search-kicker {
	display: block;
	font-family: var(--font-mono); font-size: 11px; letter-spacing: .3em;
	color: var(--acid); margin-bottom: 16px;
}
.search-form-big {
	display: flex; align-items: stretch;
	border: 2px solid var(--acid);
	background: rgba(9, 11, 6, .9);
	box-shadow: 0 0 0 1px rgba(200,255,0,.2), 0 0 42px rgba(200, 255, 0, .18),
		6px 6px 0 rgba(255, 45, 120, .25);
}
.search-input-big {
	flex: 1;
	background: transparent; border: 0; outline: none;
	padding: 20px 22px;
	font-family: var(--font-display); font-size: clamp(20px, 3vw, 30px);
	letter-spacing: .06em;
	color: var(--acid);
	text-transform: uppercase;
	caret-color: var(--magenta);
}
.search-input-big::placeholder { color: var(--ink-faint); }
.search-submit-big {
	background: var(--acid); color: #0a0c06; border: 0;
	font-size: 24px; padding: 0 26px; cursor: pointer;
	transition: background .2s;
}
.search-submit-big:hover { background: var(--magenta); color: #fff; }
.search-hints {
	display: flex; gap: 18px; flex-wrap: wrap;
	margin-top: 14px;
	font-family: var(--font-mono); font-size: 10px; letter-spacing: .18em;
	color: var(--ink-faint); text-transform: uppercase;
}
.search-scope-hint { color: var(--cyan); }
.search-overlay-close {
	position: absolute; top: 24px; right: 28px;
	background: none; border: 1px solid var(--line-strong); color: var(--ink-dim);
	width: 44px; height: 44px; font-size: 16px; cursor: pointer;
	transition: all .2s;
}
.search-overlay-close:hover { color: var(--acid); border-color: var(--acid); transform: rotate(90deg); }

/* ---------- 文章页：分类层级面包屑 ---------- */
.post-breadcrumb {
	display: flex; align-items: center; flex-wrap: wrap; gap: 8px;
	font-family: var(--font-mono); font-size: 12px; letter-spacing: .14em;
	text-transform: uppercase;
	margin-bottom: 18px;
}
.crumb-icon { color: var(--acid); }
.crumb-sep { color: var(--ink-faint); }
.crumb-link {
	color: var(--ink-dim);
	border: 1px solid var(--line-strong);
	padding: 4px 10px;
	transition: all .2s;
}
.crumb-link:hover {
	color: #0a0c06; background: var(--acid); border-color: var(--acid);
	transform: translate(-1px, -1px);
	box-shadow: 3px 3px 0 var(--magenta);
}
.crumb-link:last-child { color: var(--acid); border-color: var(--acid); }

/* 自定义 Meta 条目 */
.meta-custom { color: var(--cyan); }

/* ---------- 分享区 ---------- */
.share-bar {
	display: flex; align-items: center; flex-wrap: wrap; gap: 10px;
	padding: 20px 0 8px;
	border-top: 1px dashed var(--line-strong);
	margin-top: 8px;
}
.share-label {
	font-family: var(--font-mono); font-size: 11px; letter-spacing: .28em;
	color: var(--acid); margin-right: 6px;
}
.share-btn {
	position: relative;
	font-family: var(--font-mono); font-size: 12px; letter-spacing: .12em;
	color: var(--ink-dim);
	border: 1px solid var(--line-strong);
	background: transparent;
	padding: 7px 14px;
	cursor: pointer;
	text-transform: uppercase;
	transition: all .18s var(--ease-out);
}
.share-btn:hover {
	color: #0a0c06; background: var(--acid); border-color: var(--acid);
	transform: translate(-2px, -2px);
	box-shadow: 3px 3px 0 var(--magenta);
}
.share-btn.is-copied { color: #0a0c06; background: var(--cyan); border-color: var(--cyan); }

/* 微信二维码悬停弹层 */
.share-wechat .share-qr-pop {
	position: absolute; bottom: calc(100% + 12px); left: 50%;
	transform: translateX(-50%) translateY(6px) scale(.9);
	background: var(--bg-2);
	border: 1px solid var(--acid);
	padding: 8px;
	opacity: 0; visibility: hidden;
	transition: all .22s var(--ease-out);
	z-index: 30;
	pointer-events: none;
	box-shadow: 0 10px 30px rgba(0,0,0,.55);
}
.share-wechat .share-qr-pop::after {
	content: "";
	position: absolute; top: 100%; left: 50%;
	transform: translateX(-50%);
	border: 6px solid transparent; border-top-color: var(--acid);
}
.share-wechat:hover .share-qr-pop,
.share-wechat:focus .share-qr-pop {
	opacity: 1; visibility: visible;
	transform: translateX(-50%) translateY(0) scale(1);
}
.share-qr-pop img { display: block; width: 140px; height: 140px; }

/* ---------- 相似文章推荐 ---------- */
.related-posts { margin-top: 48px; }
.related-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(230px, 1fr));
	gap: 18px;
}
.related-grid .post-card { margin: 0; }
.related-grid .card-excerpt { display: none; }  /* 推荐卡片隐藏摘要更紧凑 */

/* ---------- 评论区 V2 ---------- */
.comment-list { list-style: none; margin: 0; padding: 0; }
.comment-list .children { list-style: none; margin: 0; padding-left: clamp(16px, 4vw, 44px); border-left: 1px dashed var(--line-strong); }
.comment-li { margin-bottom: 22px; }
.comment-body {
	border: 1px solid var(--line);
	background: rgba(16, 20, 10, .72);
	padding: 18px 20px;
	transition: border-color .2s;
}
.comment-body:hover { border-color: var(--line-strong); }
.comment-head { display: flex; align-items: center; gap: 12px; }
.comment-avatar {
	width: 40px; height: 40px; flex-shrink: 0;
	border: 1px solid var(--line-strong);
	clip-path: polygon(0 0, 100% 0, 100% calc(100% - 8px), calc(100% - 8px) 100%, 0 100%);
}
.comment-meta { display: flex; flex-direction: column; gap: 2px; }
.comment-author { font-family: var(--font-display); font-size: 14px; letter-spacing: .06em; color: var(--ink); }
.badge-author {
	font-style: normal;
	font-family: var(--font-mono); font-size: 9px; letter-spacing: .2em;
	color: #0a0c06; background: var(--acid);
	padding: 2px 6px; margin-left: 6px;
	vertical-align: 2px;
}
.comment-time { font-family: var(--font-mono); font-size: 10px; letter-spacing: .14em; color: var(--ink-faint); }
.comment-floor {
	margin-left: auto;
	font-family: var(--font-mono); font-size: 11px; letter-spacing: .2em;
	color: var(--ink-faint);
}
.comment-content { padding: 12px 0 4px 52px; font-size: 14.5px; line-height: 1.8; color: var(--ink); }
.comment-content p { margin: 0 0 .8em; }
.comment-awaiting { color: var(--magenta); font-family: var(--font-mono); font-size: 11px; letter-spacing: .1em; }
.comment-actions {
	display: flex; gap: 14px; align-items: center;
	padding-left: 52px; margin-top: 6px;
}
.comment-like {
	display: inline-flex; align-items: center; gap: 6px;
	font-family: var(--font-mono); font-size: 11px; letter-spacing: .1em;
	color: var(--ink-faint);
	background: transparent; border: 1px solid var(--line-strong);
	padding: 4px 12px; cursor: pointer;
	transition: all .18s;
}
.comment-like:hover { color: var(--acid); border-color: var(--acid); }
.comment-like.is-liked { color: #0a0c06; background: var(--acid); border-color: var(--acid); cursor: default; }
.comment-actions .comment-reply-link {
	font-family: var(--font-mono); font-size: 11px; letter-spacing: .1em;
	color: var(--cyan);
}
.comment-actions .comment-reply-link:hover { color: var(--acid); }

/* ---------- 友情链接 ---------- */
.friend-links-grid {
	list-style: none; margin: 0; padding: 0;
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
	gap: 16px;
}
.friend-link-card a {
	display: flex; flex-direction: column; gap: 6px;
	border: 1px solid var(--line-strong);
	background: rgba(16, 20, 10, .72);
	padding: 18px 20px;
	height: 100%;
	position: relative;
	overflow: hidden;
	transition: all .22s var(--ease-out);
}
.friend-link-card a::before {
	content: "";
	position: absolute; top: 0; left: 0;
	width: 3px; height: 100%;
	background: var(--acid);
	transform: scaleY(0);
	transform-origin: bottom;
	transition: transform .25s var(--ease-out);
}
.friend-link-card a:hover {
	border-color: var(--acid);
	transform: translate(-2px, -2px);
	box-shadow: 4px 4px 0 var(--magenta);
}
.friend-link-card a:hover::before { transform: scaleY(1); }
.fl-index { font-family: var(--font-mono); font-size: 10px; letter-spacing: .24em; color: var(--acid); }
.fl-name { font-family: var(--font-display); font-size: 18px; letter-spacing: .04em; color: var(--ink); }
.fl-desc { font-size: 12.5px; color: var(--ink-dim); line-height: 1.6; }
.fl-url { font-family: var(--font-mono); font-size: 10px; letter-spacing: .14em; color: var(--ink-faint); margin-top: auto; }
.friend-link-card a:hover .fl-url { color: var(--cyan); }

/* KaTeX 公式配色适配深色底 */
.katex { color: var(--ink); font-size: 1.05em; }
.katex-display { padding: 12px 0; overflow-x: auto; }

/* ==========================================================================
   V1.3 追加：编辑器按钮 / 搜索细节 / 遮罩 / 友链页脚
   ========================================================================== */

/* ---------- WP 区块按钮适配主题风格 ---------- */
.wp-element-button,
.wp-block-button__link {
	font-family: var(--font-mono);
	font-size: 13px; letter-spacing: .14em; text-transform: uppercase; font-weight: 700;
	background: var(--acid); color: #0a0c06;
	border: 0; border-radius: 0;
	padding: 12px 28px;
	clip-path: polygon(10px 0, 100% 0, 100% calc(100% - 10px), calc(100% - 10px) 100%, 0 100%, 0 10px);
	transition: box-shadow .25s, transform .2s, background .2s;
}
.wp-element-button:hover,
.wp-block-button__link:hover,
.wp-block-button__link:focus {
	background: var(--acid); color: #0a0c06;
	box-shadow: 0 0 28px rgba(200, 255, 0, .5);
	transform: translateY(-2px);
}
/* 描边型按钮区块 */
.wp-block-button.is-style-outline .wp-block-button__link {
	background: transparent;
	border: 1px solid var(--acid);
	color: var(--acid);
}
.wp-block-button.is-style-outline .wp-block-button__link:hover {
	background: rgba(200, 255, 0, .12);
}

/* ---------- 搜索输入框清除按钮（×）改为黄色 ---------- */
input[type="search"]::-webkit-search-cancel-button {
	-webkit-appearance: none;
	appearance: none;
	width: 14px; height: 14px;
	background: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 14'><path d='M2 2l10 10M12 2L2 12' stroke='%23ffdf3d' stroke-width='2.4' stroke-linecap='square'/></svg>") no-repeat center / contain;
	cursor: pointer;
	opacity: .9;
}

/* ---------- 快捷键搜索浮层：输入框去除边框/底色（与外层框重复），聚焦无边框无阴影 ---------- */
.search-form-big .search-input-big {
	border: 0 !important;
	background: transparent !important;
	box-shadow: none !important;
}
.search-form-big .search-input-big:focus {
	outline: none !important;
	border: 0 !important;
	box-shadow: none !important;
}

/* ---------- 页脚面板：友链列表 ---------- */
.footer-links-list { list-style: none; margin: 0; padding: 0; }
.footer-links-list li { margin-bottom: 8px; }
.footer-links-list a {
	font-family: var(--font-mono); font-size: 12px; letter-spacing: .1em;
	color: var(--ink-dim);
	transition: color .2s, padding-left .2s;
}
.footer-links-list a::before { content: "▸ "; color: var(--acid); }
.footer-links-list a:hover { color: var(--acid); padding-left: 4px; }
.footer-desc-custom {
	font-size: 12.5px; line-height: 1.8; color: var(--ink-dim);
	border-left: 2px solid var(--line-strong);
	padding-left: 12px; margin-top: 14px;
	white-space: pre-line;
}
