/*
 * Bandori Style Personal — 主题补充样式
 * 仅补充：各“分页/通用正文外层”间距(对齐原 .p-news-body 几何)与订阅表单。
 * 视觉 tokens/字体/背景一律沿用原 app.css。
 */
/* ---- ⑯ v1.0.94 全局中文字体栈修复 ----
   app.css 中 h1..h6 / .c-heading / .u-weight--800/.u-weight--900 / .page 等用了 800/900,
   但主流中文系统字体(PingFang SC/Microsoft YaHei/雅黑/SimHei)实际只有 400 与 700 两个 weight 档位,
   浏览器对中文字符逐字符查找 weight 时的回退路径不稳定——
   同一行中部分字符命中 700 字形、部分回退到 400,视觉上表现为"部分字粗、部分字细"，
   用户经常误判为"字号大小不一"。这里强制把所有用 800/900 的中文字体元素
   改用 700 + 显式中文黑体字体栈,并给 body 等基础元素补齐中文字族,
   从根上杜绝逐字符回退造成的字体问题。 */

body, p, li, dd, dt, blockquote, td, th {
    font-family: "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "微软雅黑", "SimHei", "黑体", "STKaiti", "KaiTi", "Apple Color Emoji", "Segoe UI Emoji", sans-serif;
}

h1, h2, h3, h4, h5, h6,
.c-heading, .c-heading__inner, .c-heading--center, .c-heading--small, .c-heading--hero,
.u-weight--900, .u-weight--800,
.bsp-essay__emphasis, .bsp-about__nickname, .bsp-about__name, .bsp-about__monogram,
.bsp-content-cloud__link, .bsp-subscribe-note__title {
    font-family: "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "微软雅黑", "SimHei", "黑体", sans-serif !important;
    font-weight: 700 !important;
}

b, strong, .u-weight--bold {
    font-family: "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "微软雅黑", "SimHei", "黑体", sans-serif !important;
    font-weight: 700 !important;
}

/* 兜底：body 基础字重统一为 500(app.css 给的是 500，避免 400 偏细),所有页面都受益 */
body {
    font-weight: 500;
}

/* ⚠️ 反馈：某些区段（如 page-suliu）正文段落里出现粗细不一，
   多数是段落被外层 .u-weight--xxx 工具类或 app.css .page{font-weight:900} 影响。
   这里把 .page 与 .ras-big-love 也压回去(本主题不到两区域,且语言是中文)。*/
.page, .ras-big-love {
    font-family: "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "微软雅黑", "SimHei", "黑体", sans-serif !important;
    font-weight: 700 !important;
}



/* ---- 通用正文外层间距（逐项对齐原站 .p-news-body 的四档断点值） ---- */
/* 仅页面类(page)与 404 使用自研 wrapper；news/article/single 直接复用原 .p-news-body。
   移动端 page-subscribe/page-about 的 banner 与卡片较"挤"，相比原 10.42vw/15.63vw
   向上调到 18vw/24vw 让单卡结构留足呼吸。*/
.p-page-body,
.p-404-body {
	position: relative;
	padding-top: 168px;
	padding-bottom: 160px;
}
@media (max-width: 1024px) {
	.p-page-body,
	.p-404-body {
		padding-top: 18vw;
		padding-bottom: 24vw;
	}
}
@media (min-width: 1025px) and (max-width: 1279px) {
	.p-page-body,
	.p-404-body {
		padding-top: 16vw;
		padding-bottom: 18vw;
	}
}
@media (min-width: 1920px) {
	.p-page-body,
	.p-404-body {
		padding-top: 11.5vw;
		padding-bottom: 11.5vw;
	}
}

/* 让 page/404 顶层容器能容纳 absolute 的 c-page-header__bg 等 */
.p-page, .p-404 {
	position: relative;
}

/* ---- 订阅表单（沿用原站按钮/字重/主色 #ff3b72） ---- */
.bsp-subscribe-form {
	margin: 0 auto;
	max-width: 720px;                /* v1.5.7: 放宽以容纳 input+SUBSCRIBE+支持溯旒 三件并排 */
	text-align: center;
}
.bsp-subscribe-form__inner {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	gap: 18px;
}
.bsp-subscribe-form__label {
	display: block;
	font-size: 20px;
	letter-spacing: .06em;
	color: #ff3b72;
	margin-bottom: 4px;
}
.bsp-subscribe-form__row {
	display: flex;
	gap: 14px;
	align-items: center;
	justify-content: center;
	flex-wrap: wrap;
}
.bsp-subscribe-form__input {
	flex: 1 1 260px;
	min-width: 200px;
	height: 52px;
	padding: 0 20px;
	border: 2px solid rgba(0, 0, 0, .6);
	border-radius: 100vmax;
	font-family: inherit;
	font-size: 16px;
	background: #fff;
	box-sizing: border-box;
}
.bsp-subscribe-form__input:focus {
	outline: none;
	border-color: #ff3b72;
}
.bsp-subscribe-form__button {
	height: 52px;
	padding: 0 26px;
	border-radius: 100vmax;
	background: #fff;
	color: #000;
	font-family: inherit;
	font-size: 16px;
	letter-spacing: .06em;
	border: 2px solid #000;
	box-shadow: 2px 2px 0 0 #000;
	cursor: pointer;
	transition: color .2s, background .2s;
}
.bsp-subscribe-form__button:hover {
	color: #ff3b72;
	background: #fff;
}
.bsp-subscribe-form__message {
	margin-top: 6px;
	font-size: 14px;
	color: #ff3b72;
	min-height: 1.4em;
}

/* 让后台正文里 img 正常显示 */
.c-single-content img {
	max-width: 100%;
	height: auto;
}

/* ===== 正文标题层级（v1.0.49）=====
   原 app.css 只给了 h2/h3 样式，h1、h4~h6 无规则导致 WP 编辑器里
   的标题层级显示异常（尤其 H1 反而变小）。此处补齐完整 h1–h6 层级：
   h1(最大) > h2 > h3 > h4 > h5 > h6，视觉延续原站粉色标题条风格。 */
.c-single-content h1 {
	background: linear-gradient(135deg, #ff79a8, #ff3b72);
	color: #fff;
	font-weight: 800;
	line-height: 1.4;
	letter-spacing: .05em;
	font-size: clamp(26px, 2.8vw, 40px);
	padding: 14px 20px 16px;
	border-radius: 10px;
	margin-top: 2.2em;
}
.c-single-content h1:first-child,
.c-single-content h2:first-child,
.c-single-content h3:first-child,
.c-single-content h4:first-child {
	margin-top: 0;
}
/* h2 沿用原站粉底白字条；h3 沿用原站粉字加箭头 */
.c-single-content h4 {
	font-size: clamp(19px, 1.7vw, 24px);
	font-weight: 700;
	line-height: 1.6;
	letter-spacing: .06em;
	color: #ff3b72;
	border-bottom: 2px solid rgba(255, 59, 114, .35);
	padding-bottom: 6px;
	margin-top: 2em;
}
.c-single-content h5 {
	font-size: clamp(17px, 1.4vw, 20px);
	font-weight: 700;
	line-height: 1.6;
	color: #6b3aa0;
	margin-top: 1.8em;
}
.c-single-content h6 {
	font-size: clamp(15px, 1.15vw, 17px);
	font-weight: 700;
	line-height: 1.6;
	letter-spacing: .04em;
	color: #555;
	margin-top: 1.6em;
}

/* 溯旒之问（自述文专用模板 page-essay.php）的版式 */
/* 页头大标题即长句「为什么我一定要做《溯旒》？」：缩小字号，避免页头撑太高 */
.p-page--essay .c-heading {
	font-size: clamp(24px, 2.6vw, 40px);
	line-height: 1.5;
}
.p-page--essay .c-heading__inner {
	display: block;
}
/* 溯旒文章标题（首页 INTRODUCTION 用 h2，正文在 .bsp-essay 内） */
.bsp-essay__title {
	font-size: clamp(22px, 2vw, 32px);
	font-weight: 700;             /* v1.0.88: 900→700 避免中文字重逐字符回退 */
	font-family: "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "微软雅黑", sans-serif;
	text-align: center;
	letter-spacing: .04em;
	margin: 0 0 1.6em;
	padding-bottom: 1em;          /* 标题底缘与虚线之间留点呼吸 */
	line-height: 1.5;
	border-bottom: 2px dashed #ff79a8;
	color: #2b2b2b;
}
.bsp-essay > p:first-of-type,
.bsp-essay > *:first-child + p {
	margin-top: 1.2em;           /* 第一段上额外留白，与粉色虚线分开 */
}
.bsp-essay p {
	font-size: clamp(15px, 1.04vw, 18px);
	line-height: 2;
	letter-spacing: .04em;
	font-weight: 400;       /* 覆盖容器 u-weight--700 的继承，正文常规字重 */
	color: #2b2b2b;
	margin: 0 0 1.2em;      /* 自然段：用段间距分隔，不做首行缩进 */
	text-indent: 0;
	text-align: left;
}
/* 加粗句：作为正文中想强调的短句，靠 weight 700 + 主粉色与正文形成对比
   （之前 800 与标题 900 几乎同粗，标题与粗体段视觉层级混乱）
   v1.0.61: 800 → 700 + 主粉色字，让粗体段不再喧宾夺主、标题层级更清晰 */
.bsp-essay p.bsp-essay__bold {
	text-align: left;
	font-weight: 700;
	color: #ff3b72;                         /* 用主粉强调，而非全靠粗细 */
	font-size: clamp(15px, 1.04vw, 18px);
	letter-spacing: .04em;
	margin: 0 0 1.2em;
}
/* 关键金句：独立成行、加粗居中，与正文区分 */
.bsp-essay p.bsp-essay__emphasis {
	text-align: center;
	font-weight: 800;
	font-size: clamp(16px, 1.15vw, 20px);
	color: #2b2b2b;
	margin: 0 0 1.2em;
	letter-spacing: .08em;
}
/* 作者签名图：右下角，宽度适中 */
.bsp-essay {
	position: relative;          /* 给绝对定位的签名图提供锚点 */
}
.bsp-essay__signature {
	margin: 0 0 1.5em;
	padding: 0;
	display: block;
	text-align: right;
}
.bsp-essay__signature img {
	width: clamp(60px, 6vw, 100px);  /* v1.1.10: 签名缩小一半 —— 桌面 6vw(原 12vw)、最大 100px(原 200)、最小 60px(原 120) */
	height: auto;
	display: inline-block;
	vertical-align: bottom;
	opacity: .88;
}
/* 首页 INTRODUCTION 纸面区承载整篇长文：限制宽度、上下留白，避免过宽难读 */
.p-home__introduction-text {
	max-width: 760px;
	margin: 0 auto;
	text-align: left;
}
.p-home__introduction .l-inner {
	padding-top: 4vw;
	padding-bottom: 2vw;
}
/* 长文使 section 极高，覆盖原站为短标题预留的巨大 padding，收敛为适中底部空间 */
.p-home__introduction {
	padding-bottom: 12vw;
}
/* 移动端：底部装饰条（白条带圆点）会穿过长文 → 直接隐藏
   同时给 section 留出 padding-bottom 让最后一段文字不贴底 */
@media (max-width: 768px) {
	.p-home__introduction {
		padding-bottom: 18vw;        /* 文字留呼吸 */
	}
	.p-home__introduction-bg-bottom {
		display: none !important;     /* 移动端不要这条白条带，避免穿过文字 */
	}
}

/* v1.5.0: 首页 INTRODUCTION 多篇自述文轮换（后台「首页自述文章」发布，多篇时切换/自动轮换 + 淡入上移动画）
   默认只显示当前激活篇；切换瞬间由 JS 把旧+新两篇提升为叠层，在 stage 临时定高内做淡出/淡入交叠，无布局跳动。 */
.bsp-intro-stage {
	position: relative;
}
.bsp-intro-slide {
	display: none;
}
.bsp-intro-slide.is-active {
	display: block;
}
/* 切换中：旧(激活)+新(ghost) 都 absolute 叠在 stage 顶部，配合 JS 的临时高度交错过渡 */
.bsp-intro-stage.is-animating .bsp-intro-slide.is-active,
.bsp-intro-slide.bsp-intro-ghost {
	display: block;
	position: absolute;
	left: 0;
	right: 0;
	top: 0;
	width: 100%;
	margin: 0;
}
.bsp-intro-slide.is-active.bsp-intro-out {
	animation: bspIntroOut 0.28s ease both;
}
.bsp-intro-slide.bsp-intro-ghost.bsp-intro-in {
	animation: bspIntroIn 0.5s ease both;
}
@keyframes bspIntroIn {
	from { opacity: 0; transform: translateY(20px); }
	to   { opacity: 1; transform: none; }
}
@keyframes bspIntroOut {
	from { opacity: 1; transform: none; }
	to   { opacity: 0; transform: translateY(-16px); }
}
/* 切换控件：居中的圆点指示器 + 左右箭头 */
.bsp-intro-nav {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: clamp(14px, 3vw, 28px);
	margin: 2.4em auto 0;
	max-width: 760px;
}
.bsp-intro-nav__btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 42px;
	height: 42px;
	border-radius: 50%;
	border: 1.5px solid rgba(255, 59, 114, 0.45);
	background: rgba(255, 255, 255, 0.6);
	color: #ff3b72;
	cursor: pointer;
	transition: background 0.2s ease, color 0.2s ease, transform 0.2s ease;
	padding: 0;
}
.bsp-intro-nav__btn:hover {
	background: #ff3b72;
	color: #fff;
	transform: translateY(-1px);
}
.bsp-intro-nav__dots {
	display: flex;
	align-items: center;
	gap: 10px;
}
.bsp-intro-nav__dot {
	width: 10px;
	height: 10px;
	border-radius: 50%;
	border: 0;
	background: rgba(255, 59, 114, 0.28);
	cursor: pointer;
	padding: 0;
	transition: background 0.2s ease, transform 0.2s ease;
}
.bsp-intro-nav__dot:hover {
	transform: scale(1.25);
	background: rgba(255, 59, 114, 0.6);
}
.bsp-intro-nav__dot.is-active {
	background: #ff3b72;
	transform: scale(1.3);
}
@media (prefers-reduced-motion: reduce) {
	.bsp-intro-slide.is-active.bsp-intro-out,
	.bsp-intro-slide.bsp-intro-ghost.bsp-intro-in {
		animation: none;
	}
	.bsp-intro-stage.is-animating .bsp-intro-slide.is-active,
	.bsp-intro-slide.bsp-intro-ghost {
		position: static;
		display: none;
	}
}


/* 子页页头 LOGO：用毛笔字版 img_logo_suliu,高度与"杂志社"等高（v1.0.89） */
.c-page-header__logo {
	width: auto;
	max-width: none;
	top: 22px !important;
	display: inline-flex;
	align-items: center;                    /* v1.0.89: 与"杂志社"等高居中对齐(原 baseline) */
	gap: clamp(9px, 0.9vw, 16px);           /* v1.1.28: 8-14→9-16,LOGO 放大后间距同步略开 */
}
.c-page-header__logo img {
	height: clamp(34px, 2.9vw, 48px);       /* v1.1.28: 28-40→34-48,左上角 LOGO 做大一点点(~1.2x) */
	width: auto;
	max-width: 26vw;
	display: block;
}
.c-page-header__logo-extra {
	font-family: "PingFang SC", "Microsoft YaHei", "微软雅黑", "SimHei", "黑体", sans-serif;
	font-size: clamp(34px, 2.9vw, 48px);     /* v1.1.28: 28-40→34-48,与 LOGO img height 同步,视觉等大 */
	font-weight: 700;
	color: #1a1a1a;
	letter-spacing: 0.1em;
	line-height: 1;
	white-space: nowrap;
}
@media (max-width: 1024px) {
	.c-page-header__logo img { height: 8vw; max-width: 30vw; }
	.c-page-header__logo-extra { font-size: 8vw; }
}

/* CONTENTS 词云区已移到 hero(NEWS) 正下方（v1.0.44）：
   原 design 里 character 区在 INTRODUCTION 之后，自带 bg 装饰会上探约 119px，
   现位于 hero 之后必须补足顶部留白，避免紫色顶角压到 NEWS 预览区。 */
.p-home__character {
	margin-top: clamp(64px, 8vw, 130px);
}
.p-home__character-bg {
	top: -20px !important;                 /* 收住上探：由 -119px 收到 -20px，只保留轻微衔接 */
}
@media (max-width: 1024px) {
	.p-home__character-bg {
		top: 8px !important;                /* 移动端原 11.7vw≈45px 已下移，这里轻微上调即可 */
	}
}
/* 词云区现在后接 INTRODUCTION 而非页尾：收敛 app.css 原为其在页面末尾预留的
   巨大底部留白（移动端 30.7vw / 桌面 130px），让词云与长文间距适中。 */
.p-home__character {
	padding-bottom: clamp(20px, 3vw, 60px) !important;
}
@media (max-width: 1024px) {
	.p-home__character {
		padding-bottom: 6vw !important;
	}
}

/* ---- 阅读/订阅 CTA 按钮区（v1.0.63 从 hero 移到 CONTENTS 与长文之间） ---- */
.p-home__cta {
	display: flex;
	justify-content: center;
	padding: clamp(28px, 4vw, 64px) 4vw;
}
.p-home__cta .p-special-category--hero {
	margin: 0;
	gap: clamp(12px, 2vw, 20px);
}
@media (max-width: 1024px) {
	.p-home__cta {
		padding: 8vw 5vw;
	}
}

/* ---- Hero 主视觉（KV/LOGO/BROADCAST 已删除；v1.0.46 改为首屏占满视口） ----
   进入首页先看到 hero 整屏，NEWS/CONTENTS 需向下滚动才出现。 */
.p-home__hero {
	display: flex;
	width: 100%;
	min-height: 100vh;
	min-height: 100svh;              /* 移动端地址栏收起后仍满屏 */
	box-sizing: border-box;
	padding: 4vw 4vw;                /* v1.0.80: 上下 padding 均衡(原 6vw 4vw 偏向顶部) */
}
.p-home__hero-text {
	width: 100%;
	margin: auto;                    /* 单一子项 auto 即垂直+水平居中，超高时仍可滚动到顶 */
}
.p-home__hero-text-inner {
	width: 100%;
}

/* ---- Hero 居中展示：自定义 LOGO + 说明文字 ---- */
.p-home__hero-text-inner {
	max-width: 900px;
	margin: 0 auto;
	padding: 2.0833333333vw 1vw 2.6vw;
	text-align: center;
}
.p-home__hero-title {
	max-width: 860px;
	margin: 0 auto;
}
.p-home__hero-title img {
	width: 100%;
	height: auto;
	display: block;
}
.p-home__hero-tagline {
	margin-top: 1.8vw;
	font-size: clamp(15px, 1.04vw, 20px);
	line-height: 2;
	letter-spacing: .04em;
	color: #2b2b2b;
	max-width: 820px;
	margin-left: auto;
	margin-right: auto;
}

/* ---- Hero 行动按钮（立即订阅 / 立即阅读） ----
   严格复用原站 .p-special-category 导航按钮样式（白底粉字大胶囊 + 2px 黑边
   + 黑色硬投影；.current 状态=粉色底图 + #ff3b72 底 + 白字）。
   按钮自身的一切样式均来自 app.css 的 .p-special-category 规则，此处仅通过
   --hero 修饰类覆盖容器外边距，使其能嵌进 hero 文本下方的布局。 */
.p-special-category--hero {
	margin: 2.6vw auto 0;
}
@media (max-width: 1024px) {
	.p-home__hero { min-height: 100svh; padding: 4vw 5vw 8vw; }   /* 顶部 14→4vw，让 hero 内容上移到红线位 */
	.p-home__hero-covers { margin-top: -16vh; }  /* v1.0.87: 手机端再上调到红线 */
	.p-home__hero-text-inner { padding: 0 0 2vw; }
	.p-home__hero-title { max-width: 78vw; }    /* 略放宽，让毛笔字 logo 撑出气势 */
	.p-home__hero-tagline {
		margin-top: 5vw;
		font-size: 15px;
		line-height: 2;
	}
	.p-special-category--hero {
		margin: 7vw auto 0;
	}
}
@media (max-width: 480px) {
	.p-home__hero-title { max-width: 82vw; }   /* 超小屏尽量撑满但不溢出 */
}

/* ---- NEWS 独立区块（v1.0.45 从 hero 抽离） ----
   hero 下方独立 section，居中容器承接原 hero-news 视觉。 */
.p-home__news-section {
	position: relative;
}
.p-home__news-section .p-home__hero-news {
	width: min(1100px, 86vw);
	margin: 0 auto;
	padding: clamp(28px, 3.5vw, 60px) 0 clamp(24px, 3vw, 56px);
}
/* 移动端：独立区块去掉原 hero 里 "顶部大留白"(19.5vw) 的依赖，
   容器自身已居中，仅保留适中上下间距 */
@media (max-width: 1024px) {
	.p-home__news-section {
		padding: 4vw 0 2vw;
	}
	.p-home__news-section .p-home__hero-news {
		width: 86vw;
		margin: 0 auto;
		padding: 2vw 0 4vw;
	}
}
/* 桌面端文字更大一档（原来 hero 内偏小） */
@media (min-width: 1025px) {
	.p-home__news-section .p-home__hero-news-date { font-size: 1.25vw; }
	.p-home__news-section .p-home__hero-news-title { font-size: 1.05vw; }
}

/* ---- 卡片占位（用户在 CONTENTS 卡片里换图前的过渡） ---- */
.bsp-card-placeholder {
	position: relative;
	display: block;
	width: 100%;
	aspect-ratio: 1 / 1;
	border-radius: 50%;
	background:
		repeating-linear-gradient(45deg,
			rgba(255,255,255,.18) 0 12px,
			rgba(255,255,255,.0) 12px 24px),
		radial-gradient(circle at 50% 50%, #ffd6e5 0%, #ff9bbf 55%, #ff6ea1 100%);
	box-shadow: inset 0 0 0 6px rgba(255,255,255,.7);
}
.bsp-card-placeholder::before,
.bsp-card-placeholder::after {
	content: "";
	position: absolute;
	width: 22%;
	height: 22%;
	background: #fff;
	clip-path: polygon(50% 0%, 61% 35%, 98% 35%, 68% 57%, 79% 91%, 50% 70%, 21% 91%, 32% 57%, 2% 35%, 39% 35%);
	opacity: .85;
}
.bsp-card-placeholder::before { top: 6%;  left: 8%; }
.bsp-card-placeholder::after  { bottom: 6%; right: 8%; transform: scale(.7); opacity: .7; }

.bsp-card-label {
	display: block;
	margin-top: 14px;
	text-align: center;
	font-size: 22px;
	letter-spacing: .12em;
	color: #fff;
	text-shadow: 2px 2px 0 #ff3b72, 4px 4px 0 rgba(0,0,0,.15);
}
.c-character-list__link {
	position: relative;
}
.bsp-card-label {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 14%;
}

/* ---- 首页 CONTENTS 弹幕式词云（后台「contents 菜单」添加的推荐入口） ----
   多轨全屏弹幕（v1.0.47）：正反交错、动态调速、无缝横滚；词条按权重 1–6 分级放大，
   行距/字号整体加大、容器加宽，撑满整块区域更壮观。 */
/* v1.4.8: --bsp-row-h 默认 84→92px（基础/≤768/≤480 三档同步 +8）。
   原 84px 在 row-scale=1.18 × w=6 最大字号 + translateY(-10px) 错位 + box-shadow blur 10px
   紧贴 rail 上/下边时,box-shadow 渐变阴影与边框视觉被 rail overflow:hidden 切掉一部分,
   看起来像 pill 上下边框"被遮挡"。+8px 给最大字号 pill 与 box-shadow 模糊留完整视觉空间。 */
.bsp-content-cloud {
	display: grid;                       /* v1.0.58: grid 10 行，每条 rail 占一行（防碰撞）v1.1.2: 8→10 */
	grid-template-rows: repeat(var(--bsp-rows, 12), var(--bsp-row-h, 92px));
	grid-template-columns: 1fr;
	font-size: 24px;                     /* v1.0.58: 缩小基准字号给垂直错位留出空间 */
	position: relative;
	overflow: hidden;                 /* 左右内容滑出视口不外泄 */
	margin: 0 auto;
	max-width: none;                     /* v1.1.26: 1500→全宽 —— 桌面弹幕铺满 section(整视口),不再大屏留白"左右没撑满" */
	width: 100%;
	height: calc(var(--bsp-rows, 12) * var(--bsp-row-h, 92px));
	padding: 0;
	box-sizing: border-box;
	--bsp-row-h: 92px;                   /* v1.4.8: 见上方 */
	/* v1.4.7 性能修复：桌面去掉 mask-image 左右渐变淡出。
	   原因：mask 会强制整棵动画子树留在主线程逐帧重绘(轨道无法提升 GPU 合成层)，
	   桌面 12 条长轨道滑动即掉帧。淡出改由下方 ::before/::after 白雾伪元素承担
	   (普通 background 层，不依赖 mask → 轨道可放心 will-change 提合成层)。
	   该方案与 ≤768 移动端(v1.1.13 起)完全一致，视觉同样是左右柔化淡入淡出。
	   v1.1.5 曾因"桌面宽视口白雾过宽突兀"而只在手机端启用 —— v1.4.7 起桌面
	   也启用，宽度按视口百分比随容器缩放，视觉接近原 mask 的柔和淡出。 */
}
/* v1.4.7: 左右白雾渐晕伪元素 —— 由移动端(v1.1.13)提升为全端通用。
   pill 滚到边缘时被此普通 background 层柔化"溶掉"，替代原 mask 的透明淡出；
   因为是普通背景层，轨道可自由提升为 GPU 合成层，动画不再占用主线程。
   宽度 min(8%,150px)：小屏≈移动端历史 8%；大屏 150px 封顶，避免宽屏出现一大条白雾。 */
.bsp-content-cloud::before, .bsp-content-cloud::after {
	content: "";
	position: absolute;
	top: 0;
	bottom: 0;
	width: min(8%, 150px);
	pointer-events: none;            /* 不挡 hover/click,只是视觉遮罩 */
	z-index: 2;                      /* 盖在动画轨道之上 */
}
.bsp-content-cloud::before {
	left: 0;
	background: linear-gradient(90deg, rgba(255,255,255,0.9) 0%, rgba(255,255,255,0.55) 50%, rgba(255,255,255,0) 100%);
}
.bsp-content-cloud::after {
	right: 0;
	background: linear-gradient(270deg, rgba(255,255,255,0.9) 0%, rgba(255,255,255,0.55) 50%, rgba(255,255,255,0) 100%);
}
/* v1.4.7: 轨道 GPU 合成层 —— 由移动端(v1.1.13)提升为全端通用。
   12 条长 track 只做纯 transform 平移,提为独立合成层后动画只走合成线程,
   不触发主线程 layout/paint → 桌面/手机滑动都不掉帧。
   注:此提升依赖容器不使用 mask-image(已 v1.4.7 移除)—— mask 存在时提升会让 mask 失效。
   v1.4.8: 去掉 contain:layout paint —— contain:paint 会把 track 内 pill 的 box-shadow 等装饰绘制裁剪到
   track border-box 内,与 rail height 配合下导致大字号 pill 的 box-shadow blur(10px)被切,
   视觉上 pill 上下边框/阴影被遮挡(像"贴边切掉")。GPU 合成由 will-change + translate3d + backface 保证。 */
.bsp-content-cloud__track {
	will-change: transform;
	transform: translate3d(0, 0, 0);
	backface-visibility: hidden;
}
.bsp-content-cloud__rail {
	grid-column: 1;
	height: var(--bsp-row-h, 92px);    /* v1.0.57: 加高行高以容纳最大胶囊; v1.4.8: 84→92 给 box-shadow blur + 大字号 pill 完整视觉空间 */
	display: flex;
	align-items: center;
	overflow: hidden;                 /* 词条超出本行槽立即被裁，不溢出到相邻轨道 */
	width: 100%;
	color: #ff3b72;                     /* v1.0.57: 统一主色(粉)，去掉每轨颜色分层 */
	opacity: var(--row-op, 1);
	font-size: calc(1em * var(--row-scale, 1));  /* v1.0.56: 整轨字号按 --row-scale 缩放 */
}
.bsp-content-cloud__rail:nth-child(1) { grid-row: 1; }
.bsp-content-cloud__rail:nth-child(2) { grid-row: 2; }
.bsp-content-cloud__rail:nth-child(3) { grid-row: 3; }
.bsp-content-cloud__rail:nth-child(4) { grid-row: 4; }
.bsp-content-cloud__rail:nth-child(5) { grid-row: 5; }
.bsp-content-cloud__rail:nth-child(6) { grid-row: 6; }
.bsp-content-cloud__rail:nth-child(7) { grid-row: 7; }
.bsp-content-cloud__rail:nth-child(8) { grid-row: 8; }
.bsp-content-cloud__rail:nth-child(9)  { grid-row: 9; }   /* v1.1.2: 行数 8→10 */
.bsp-content-cloud__rail:nth-child(10) { grid-row: 10; }  /* v1.1.2: 行数 8→10 */
.bsp-content-cloud__rail:nth-child(11) { grid-row: 11; }  /* v1.1.7: 行数 10→12 */
.bsp-content-cloud__rail:nth-child(12) { grid-row: 12; }  /* v1.1.7: 行数 10→12 */
/* 容器用 grid + 上面 rail grid-row 逐行定位 → 10 条轨道固定行，互不重叠 */
.bsp-content-cloud__rail--alt {
	/* v1.0.56 取消反方向轨道，全部右→左；此 class 保留兼容但不再触发反向 */
}
.bsp-content-cloud__track {
	display: inline-flex;
	flex-wrap: nowrap;
	white-space: nowrap;
	align-items: center;
	margin: 0;
	padding: 0;
	column-gap: clamp(26px, 3vw, 54px);   /* v1.1.17: 词条横向间距 —— 用容器级 column-gap 替代 item margin,绝对生效不被覆盖 */
	/* v1.3.5: 右 padding 补足一个间隔。轨道用 column-gap 时,两份拼接处只有 (2n-1) 个间隔(奇数),
	   translateX(-50%) 会落在非整数间隔上 → 动画每次循环 restart 都回跳约半个间隔(≈9-13px),即"停放时某行抽搐一下"。
	   补一个右 padding 使总间隔为偶数, -50% 恰为完整一周期 → 无缝循环、restart 零跳变。 */
	padding-right: clamp(26px, 3vw, 54px);
	/* v1.4.51: 不再在 CSS 里启动滚动动画(移除原 `animation: bsp-content-cloud-scroll ... infinite`)。
	   原因:一条正在运行的 CSS keyframes 动画会「覆盖内联 style.transform」,而 v1.4.47 起轨道位移
	   已完全改由 front-page.php 的 rAF 主循环驱动 —— 若此处 CSS 动画仍存在且 JS 的 animation:none
	   因任何原因没生效(脚本早期报错等),CSS 无限循环会悄悄复活并盖掉 JS 位移 → 用户看到的一直是
	   最初那条带接缝回跳的 CSS 循环(即"仍抽搐")。现在彻底移除 CSS 侧动画:滚动只由 JS 独占驱动,
	   不存在 CSS 与 JS 争抢 transform 的可能。keyframes 定义保留于文件下方,仅供阅读/不再引用。 */
}
/* v1.0.56: 不再使用反向轨道，全部从右到左 */
/* 词条尺寸 = base 字号 × 该轨 --row-scale（层级感：近大远小） */
.bsp-content-cloud__item {
	list-style: none;
	line-height: 1.3;
	margin-right: 0;                      /* v1.1.17: 改用容器 .bsp-content-cloud__track 的 column-gap 控制 —— flex 容器级间隙,不被 item 自身任何规则覆盖,绝对生效 */
	flex: 0 0 auto;
	/* v1.0.58 错位感：每条 li 在 6 个相位中循环产生垂直抖动，静态、无动画 → 上下错落但零卡顿 */
	transform: translateY(var(--y, 0px));
}
/* v1.0.62: 收紧 -10~+8px，避免大胶囊 translateY 偏移后顶/底被 rail overflow:hidden 裁切。
   v1.4.54: 下述 nth-child 依 DOM 顺序的 --y 分配已废弃 —— 在 v1.4.53「节点回收搬运」驱动下，
   appendChild 改变可见词条 nth-child 索引会让 --y 垂直档位突变 → 整行周期性"上下跳一下"。
   现由 front-page.php 对每个词条内联固定 --y(style="--y:Xpx",绑定词条自身、不随顺序变)。
   内联优先级高于本规则，故本规则永不生效；仅保留供无内联词条的兜底/阅读，勿再依赖它做错落。 */
.bsp-content-cloud__item:nth-child(6n+1) { --y: -10px; }
.bsp-content-cloud__item:nth-child(6n+2) { --y: -5px; }
.bsp-content-cloud__item:nth-child(6n+3) { --y: 3px; }
.bsp-content-cloud__item:nth-child(6n+4) { --y: -7px; }
.bsp-content-cloud__item:nth-child(6n+5) { --y: 8px; }
.bsp-content-cloud__item:nth-child(6n)   { --y: -1px; }
.bsp-content-cloud__link {
	display: inline-flex;
	align-items: baseline;
	padding: 0.12em 0.72em 0.18em;       /* v1.0.62 进一步缩小 li 上下 padding，让 li 在 translateY 偏移后不会被裁 */
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.92);
	border: 2px solid currentColor;        /* v1.0.56 边框跟当前行主题色，形成同色调胶囊 */
	color: inherit;                       /* 继承 rail --row-color */
	text-decoration: none;
	box-shadow: 0 2px 10px rgba(0, 0, 0, 0.14);
	transition: background 0.25s ease, color 0.25s ease, transform 0.25s ease;
	white-space: nowrap;
	font-size: 1em;                      /* v1.0.56: 字号继承自 rail（rail font-size = 容器34px × --row-scale） */
}
.bsp-content-cloud__title {
	display: inline-block;
	line-height: 1.25;
}
.bsp-content-cloud__sub {
	display: inline-block;
	margin-left: 0.5em;
	font-size: 0.62em;
	font-weight: 500;
	line-height: 1.25;
	color: #6b6b9a;
	letter-spacing: 0.04em;
}
.bsp-content-cloud__link:hover,
.bsp-content-cloud__link:focus {
	background: #ff3b72;
	border-color: #ff3b72;
	color: #fff;
	transform: translateY(-2px);
}
.bsp-content-cloud__link:hover .bsp-content-cloud__sub,
.bsp-content-cloud__link:focus .bsp-content-cloud__sub {
	color: rgba(255, 255, 255, 0.85);
}
/* v1.0.99 / v1.0.108: 历史「胶囊 hover 暂停单轨」的 CSS 状态。
   v1.4.47 起轨道位移已改由 front-page.php 的 rAF 主循环驱动(JS 会 `animation:none`),
   暂停(单轨 hover 微延迟 / 整块离屏)全部改由 JS 的 state 字段控制 ——
   下面两条 animation-play-state 规则在 animation:none 下不再生效,仅保留供 inspect/标记。
   真正的视觉暂停逻辑请到 front-page.php 的 tick 主循环(paused / ioPaused)。 */
.bsp-content-cloud__track.is-paused {
	animation-play-state: paused;
}
/* v1.4.45: 弹幕整块滚出视口 → 离屏停摆(缓解滚动卡顿)。v1.4.47 起此判断已由 JS 的 ioPaused
   承接;此处保留 .is-offscreen 仅为 DOM/样式标记(animation:none 下 animation-play-state 无效)。 */
.bsp-content-cloud.is-offscreen .bsp-content-cloud__track {
	animation-play-state: paused;
}

/* 权重档（v1.0.57 收紧 em 范围 0.55~1.20，保证最大字 1.20×scale1.15×基准28 ≈ 39px → 含 padding 仍 ≤ row-h 84） */
.bsp-content-cloud__item[data-w="1"] .bsp-content-cloud__link { font-size: 0.55em; font-weight: 600; }
.bsp-content-cloud__item[data-w="2"] .bsp-content-cloud__link { font-size: 0.68em; font-weight: 600; }
.bsp-content-cloud__item[data-w="3"] .bsp-content-cloud__link { font-size: 0.82em; font-weight: 700; }
.bsp-content-cloud__item[data-w="4"] .bsp-content-cloud__link { font-size: 0.96em; font-weight: 700; }
.bsp-content-cloud__item[data-w="5"] .bsp-content-cloud__link { font-size: 1.08em; font-weight: 800; }
.bsp-content-cloud__item[data-w="6"] .bsp-content-cloud__link { font-size: 1.20em; font-weight: 800; }
@keyframes bsp-content-cloud-scroll {
	from { transform: translateX(0); }
	to   { transform: translateX(-50%); }
}
/* v1.4.45: 电脑端(≥1025px)弹幕 12→11 行 —— 桌面每条轨道很长、多条大合成层叠加,滚动页面时 GPU 压力大易掉帧;
   display:none 隐藏的行真不渲染不运行动画。
   v1.4.48: 应站长要求桌面再减到 10 行 —— 同时隐藏第 11、12 两轨(--bsp-rows:10)。手机端仍 12 行满屏(不写进基座,仅桌面 media 覆盖)。
   注意:front-page.php 的 JS 用 offsetParent 统计「可见轨」,会自动按 10 算 rows/相位,无需再改 JS。 */
@media (min-width: 1025px) {
	.bsp-content-cloud { --bsp-rows: 10; }               /* grid 只排 10 行,容器高度自动 = 10 × 行高 */
	.bsp-content-cloud__rail:nth-child(11) { display: none; }  /* 隐藏第 11 轨 */
	.bsp-content-cloud__rail:nth-child(12) { display: none; }  /* 隐藏第 12 轨 → 桌面真少两条轨道负担 */
}
/* 移动端（v1.1.3：拉开间距、撑满高度 —— pill 之间 14px、行高 58px、10 行 580px 占手机屏大半，
   行间错位幅度加大让上下行不齐整有参差感,不再"挨得过紧糊一团"） */
@media (max-width: 768px) {
	/* v1.1.7: 12 行 × 58px ≈ 696px 覆盖手机一屏,弹幕更多更满产生震撼感;错位收敛到 ±1-2 防相邻行覆盖
	   v1.1.21: 行高 58→66 —— 大字号胶囊(28px×1.25+padd+border≈48px)+translateY 错位后仅剩 ~7px 余量,
	             rail overflow:hidden 会把顶/底边截断(pill 边被遮挡)。加高到 66px 给足余量彻底根治。
	   v1.1.22: 行高 66→74 —— 用户反馈 66px 仍截断(实测胶囊视觉>66)。继续加 8px,同时缩小 link 上下 padding
	             让胶囊 box 更紧(0.16→0.12em,最大胶囊高从 ~48 降到 ~45),配合错位仍有 ~20+px 余量,
	             rail overflow:hidden 不再切到 pill 上下边。容器高度随之从 792 升至 888px 仍近满屏。
	   v1.1.23: 去掉垂直错位(--y 全部归 0),让所有 pill 严格居中于行槽 —— 针对「只切下边、上方完整」的
	             现象:疑似某条 item 因 --y 下移把大胶囊底部顶到 rail overflow:hidden 下边被裁。
	             v1.1.24: 用户仍反馈截断,行高 74→84(更接近桌面默认、绝对宽裕):即使最坏情况胶囊视觉高 ~60px,
	             行高 84 仍余 24px+,彻底消除 rail 内部裁切可能(若仍截则是遮挡层而非 rail)。 */
	.bsp-content-cloud { font-size: 13px; --bsp-row-h: 92px; height: calc(var(--bsp-rows, 12) * 92px); }
	/* v1.1.17: 改用容器 column-gap 控制横向间距 —— flex gap 在 WebView/微信 X5 下也比 per-item margin 更可靠 */
	.bsp-content-cloud__track { column-gap: 22px; padding-right: 22px; }  /* v1.1.17: 20→22,再稍松一档; padding-right 补齐一个间隔防 -50% restart 抽搐 */
	/* v1.1.6: 字体加粗但不升级 font-weight(中文系统字体只有 400/700,800 会逐字符回退粗细不一)。
	   用 text-shadow 模拟笔画加粗 0.6px —— 视觉变粗但保持 weight=700 不触发回退。
	   v1.1.22: 上下 padding 0.16→0.12em —— 让 link box 更紧、胶囊高度降低,配合行高 74 给足余量防截断。 */
	.bsp-content-cloud__link { padding: 0.12em 0.72em; font-weight: 700 !important; text-shadow: 0 0 0.6px currentColor; }
	.bsp-content-cloud__link .bsp-content-cloud__title { font-weight: 700 !important; text-shadow: 0 0 0.6px currentColor; }
	/* v1.1.7: 12 行紧排,错位幅度缩小到 ±1-2px —— 行距 58px 减两胶囊半高后仍有 ~20px 间隙,不覆盖又紧密
	   v1.1.23: 错位全部归 0 —— 用户反馈 pill「只切下边」(上方完整、下方文字被切),疑似某条 item 因 --y 下移
	             把大胶囊底部顶到 rail overflow:hidden 的下边界被裁。去掉垂直错位让所有 pill 严格居中于行槽,
	             从根上排除「pill 偏下被 rail 底边切」这一机制。行高 74/68 已足够,居中后必然完整显示。 */
	.bsp-content-cloud__item:nth-child(6n+1) { --y: 0; }
	.bsp-content-cloud__item:nth-child(6n+2) { --y: 0; }
	.bsp-content-cloud__item:nth-child(6n+3) { --y: 0; }
	.bsp-content-cloud__item:nth-child(6n+4) { --y: 0; }
	.bsp-content-cloud__item:nth-child(6n+5) { --y: 0; }
	.bsp-content-cloud__item:nth-child(6n)   { --y: 0; }
}
@media (max-width: 480px) {
	/* v1.1.7: 极窄屏 12 行 × 54 ≈ 648px 覆盖一屏
	   v1.1.21: 行高 54→62 —— ≤480 用固定 px 大胶囊(w5 25px/w6 28px,含 padding+border 高约 44-48px),
	             原 54px 仅剩 ~6-10px 余量,配合 translateY 错位后胶囊上下边会被 rail overflow:hidden 截断。加高根治。
	   v1.1.22: 行高 62→68 —— 用户反馈 62px 仍截断(实测胶囊视觉>62)。再 +6px + 缩小 link padding (0.14→0.10em) 让 box 更紧,
	             最大胶囊从 ~48 降到 ~44,配合错位仍有 ~20+px 余量彻底根治。
	   v1.1.24: 行高 68→76 —— 用户仍反馈截断,加高到 76px(接近桌面默认、绝对宽裕),最坏情况 44px 胶囊仍余 32px,
	             彻底消除 rail 内部裁切可能(若仍截则是遮挡层而非 rail)。 */
	.bsp-content-cloud { --bsp-row-h: 88px; height: calc(var(--bsp-rows, 12) * 88px); }
	.bsp-content-cloud__track { column-gap: 18px; padding-right: 18px; } /* v1.1.17: 16→18,极窄屏稍松开; padding-right 补齐一个间隔防 restart 抽搐 */
	.bsp-content-cloud__link { padding: 0.10em 0.62em; font-weight: 700 !important; text-shadow: 0 0 0.5px currentColor; }   /* v1.1.6: 极窄屏也加粗; v1.1.22: padding 0.14→0.10em */
}

/* ---- Footer 双 LOGO（《溯旒文学选刊》文字 + 紫色 CiRCLE 群徽） ----
   取代原站单 logo(.l-footer__logo-item)；文字 logo 不做链接，紫色圆做 QQ 群外链。*/
.l-footer__logo--double {
	display: grid !important;                 /* v1.0.103: !important 防止 app.css 旧规则覆盖 */
	grid-template-columns: minmax(93px, max-content) minmax(100px, max-content) !important;  /* v1.1.25: 150-150→93-100,缩 1/3 与双 LOGO 等比同步 */
	grid-template-areas: "left right" !important;
	justify-content: center !important;
	align-items: center !important;
	column-gap: clamp(40px, 3.3vw, 73px) !important;  /* v1.1.25: 60-110→40-73,缩 1/3 与双 LOGO 等比同步 */
	max-width: 587px;         /* v1.1.25: 880→587,父宽同步缩 1/3 与双 LOGO 等比 */
	width: 100%;
	margin: 0 auto !important;
	padding: 0 !important;                  /* 覆盖 .p-special-category 等潜在干扰 */
	box-sizing: border-box !important;
}
.l-footer__logo--double .l-footer__logo-item:nth-child(1) { grid-area: left !important; }
.l-footer__logo--double .l-footer__logo-item:nth-child(2) { grid-area: right !important; }
.l-footer__logo--double .l-footer__logo-item {
	transform: none !important; /* 覆盖原 .l-footer__logo-item 的 -11.6% translateX */
	width: auto;
	flex: 0 0 auto;
}
.l-footer__logo-item--text {
	max-width: 360px;    /* v1.1.25: 540→360,缩 1/3 与双 LOGO 等比同步 */
	width: 100%;
}
/* 关键：app.css 在 ≤1024px 给 .l-footer__logo-anchor 设 width:75vw，
   会把文字 logo 内部撑到 75vw 全宽（即使父 max-width 已限）。必须强制覆盖。 */
.l-footer__logo-item--text .l-footer__logo-anchor {
	width: 100% !important;
	max-width: 100% !important;
	margin: 0 auto;
	display: flex;                /* v1.0.98: 让 img 与"杂志社"同行, 视觉对齐 */
	align-items: center;            /* 水平基线居中 — 既照顾 img 视觉高度也照顾 span 行高 */
	gap: clamp(1px, 0.3vw, 4px);    /* v1.1.25: 2-6→1-4,缩 1/3 与双 LOGO 等比同步 */
	justify-content: center;
	flex-wrap: nowrap;
}
.l-footer__logo-item--text img {
	width: clamp(120px, 11.3vw, 154px);  /* v1.1.25: 180-230→120-154,缩 1/3;17vw→11.3vw */
	height: auto;
	max-height: 88px;                    /* v1.1.25: 132→88,同步缩 1/3 */
	min-width: 107px;                    /* v1.1.25: 160→107,缩 1/3 保留兜底 */
	flex-shrink: 0;                /* v1.0.100: flex 容器不要把图收缩到 0 */
	display: block;
	align-self: center;            /* v1.0.107: 桌面端明确垂直居中,避免与"杂志社"竖向错位 */
}
.l-footer__logo-brand-extra {          /* v1.0.98: 文字 LOGO 右侧的"杂志社",字号同步放大,行高保证与 img 等高可视 */
	font-family: "PingFang SC", "Microsoft YaHei", "微软雅黑", "SimHei", "黑体", sans-serif;
	font-size: clamp(32px, 2.93vw, 43px);  /* v1.1.25: 48-64→32-43,缩 1/3;4.4vw→2.93vw */
	font-weight: 700;
	color: #1a1a1a;
	letter-spacing: 0.1em;
	white-space: nowrap;
	line-height: 1;                 /* v1.0.107: 行高收为 1,确保"杂志社"与图片视觉中心精确对齐,不偏到图片底部 */
	display: inline-flex;          /* 配合 vertical-align 居中 */
	align-items: center;
	flex-shrink: 0;                /* v1.0.100: 文字不挤压兄弟 img */
}
@media (max-width: 1024px) {
	/* v1.1.16 + v1.1.25: 手机端 footer 双 logo 列距收拢 + 品牌字/图同步加大,新版整体再缩 1/3 */
	.l-footer__logo-item--text img {
		width: clamp(67px, 17vw, 100px);   /* v1.1.25: 100-150→67-100,缩 1/3; 26vw→17vw */
		max-height: 53px;                  /* v1.1.25: 80→53,缩 1/3 */
	}
	.l-footer__logo-brand-extra {
		font-size: clamp(17px, 4.67vw, 23px);  /* v1.1.25: 26-34→17-23,缩 1/3; 7vw→4.67vw */
	}
	.l-footer__logo-item--text .l-footer__logo-anchor {
		gap: 0;                             /* v1.1.4: 手机端"溯旒"图与"杂志社"彻底贴死(原 clamp1-4px) */
	}
	.l-footer__logo-brand-extra {
		margin-left: -5px;                  /* v1.1.25: -7→-5,与缩 1/3 后图尺寸匹配,保持深叠贴死 */
	}
	.l-footer__logo-caption {
		font-size: 11px;
	}
	.l-footer__logo-item--circle-caption img {
		max-height: 60px;                  /* v1.1.25: 90→60,缩 1/3 */
	}
	.l-footer__logo--double {
		gap: clamp(8px, 2vw, 15px) !important;   /* v1.1.25: 12-22→8-15,缩 1/3 */
	}
}
.l-footer__logo-item--qq {
	max-width: 100px;
	width: 100%;
	position: relative;          /* 给 hint 定位锚点 */
	display: flex;
	flex-direction: row;         /* QQ 圆左、提示右，水平排布 */
	align-items: center;
	gap: 0.6em;
}
/* v1.0.93 圆徽下方加群名（column 版式）：圆上、文字下、整体居中 */
.l-footer__logo-item--circle-caption {
	flex-direction: column;
	align-items: center;
	text-align: center;
	gap: 0.5em;
	max-width: 87px;        /* v1.1.25: 130→87,缩 1/3 与圆徽尺寸同步 */
}
.l-footer__logo-item--circle-caption .l-footer__logo-anchor {
	width: auto !important;
	max-width: 87px !important;            /* v1.1.25: 130→87,缩 1/3 */
}
.l-footer__logo-item--circle-caption img {
	width: auto;
	max-height: 87px;                      /* v1.1.25: 130→87,缩 1/3 */
	margin: 0 auto;
}
.l-footer__logo-caption {
	display: block;
	font-size: clamp(11px, 1vw, 14px);
	font-weight: 700;
	color: #fff;                          /* v1.1.19: 内部填白 */
	letter-spacing: 0.02em;
	line-height: 1.4;
	white-space: nowrap;
	/* v1.1.19: 黑描边白字 —— paint-order:stroke fill 先画描边再画填充,白芯盖住描边内侧,
	   只露外侧黑边 → 小字也能清晰呈现"白字黑描边",不至于被 text-stroke 居中吃掉白芯 */
	-webkit-text-stroke: 1px #000;
	-webkit-text-fill-color: #fff;
	paint-order: stroke fill;
}
.l-footer__logo-item--qq .l-footer__logo-anchor {
	display: block;
	width: 100% !important;       /* 覆盖 app.css 的 .l-footer__logo-anchor{width:75vw} */
	max-width: 100% !important;
	flex: 0 0 auto;
}
.l-footer__logo-item--qq img {
	width: 100%;
	height: auto;
	display: block;
}
/* 群徽提示「←/↑ 点击加入群聊」胶囊。箭头(::before)在最左，方向随断点切换。 */
.l-footer__logo-hint {
	display: inline-flex;
	flex-direction: row;          /* 箭头在左、文字在右 */
	align-items: center;
	gap: 0.4em;
	margin-top: 0;
	padding: 0.3em 0.7em 0.35em;
	border: 2px solid #6b3aa0;
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.72);
	color: #6b3aa0;
	font-size: 11px;
	line-height: 1;
	white-space: nowrap;
}
/* 群徽提示箭头。用 ::before 出字形，方向由断点控制：
   —— 桌面/平板（≥481，圆徽在提示左侧同一行）：箭头朝左「←」指回圆徽；
   —— 手机（≤480，圆徽在提示上方 column 堆叠）：箭头朝上「↑」指回圆徽。 */
.l-footer__logo-hint-arrow {
	font-size: 15px;
	font-weight: 700;
	line-height: 1;
	display: inline-block;
	flex: 0 0 auto;
}
.l-footer__logo-hint-arrow::before {
	content: "←";      /* 桌面 row：朝左指向圆徽 */
}
@media (max-width: 1024px) {
	.l-footer__logo--double {
		gap: 4vw;
		max-width: 88vw;
		margin: 0 auto;
		align-items: center;       /* 两 LOGO 垂直居中，避免高度差导致歪斜 */
	}
	.l-footer__logo-item--text { max-width: 41vw; }   /* v1.1.25: 62→41,缩 1/3 与双 LOGO 等比同步 */
	.l-footer__logo-item--qq   { max-width: 15vw; }   /* v1.1.25: 22→15,缩 1/3 与双 LOGO 等比同步 */
	.l-footer__logo--double { column-gap: clamp(5px, 1.3vw, 9px) !important; }   /* v1.1.25: 8-14→5-9,缩 1/3 与双 LOGO 等比同步(与 footer.php 内联一致) */
}
@media (min-width: 1920px) {
	.l-footer__logo--double { gap: 2vw; max-width: 40vw; }
	.l-footer__logo-item--text { max-width: 28vw; }    /* v1.0.111: 放宽容纳图+字 */
	.l-footer__logo-item--qq   { max-width: 5.2083333333vw; }
}
@media (min-width: 1025px) and (max-width: 1279px) {
	.l-footer__logo--double { max-width: 480px; }   /* v1.1.25: 720→480,缩 1/3 与双 LOGO 等比同步 */
	.l-footer__logo-item--text { max-width: 31vw; }   /* v1.1.25: 46→31,缩 1/3 与双 LOGO 等比同步 */
	.l-footer__logo-item--qq   { max-width: 6vw; }    /* v1.1.25: 9→6,缩 1/3 与双 LOGO 等比同步 */
}

/* ---- 订阅页宣传提示（订阅《溯旒文学选刊》…） ----
   仅靠字体色/留白/分隔线做层级，不另起一块方框（页面已有 c-sub-content 容器）。 */
.bsp-subscribe-note {
	margin: 0 0 2em;
	padding: 0 0 1.2em;
	border-bottom: 1px dashed rgba(107, 58, 160, 0.4);
}
.bsp-subscribe-note__title {
	margin: 0 0 0.6em;
	font-size: clamp(18px, 1.6vw, 24px);
	font-weight: 800;
	line-height: 1.4;
	color: #6b3aa0;
	letter-spacing: 0.05em;
}
.bsp-subscribe-note p {
	margin: 0 0 0.45em;
	line-height: 1.9;
}
.bsp-subscribe-note__contact a {
	color: #ff3b72;
	text-decoration: underline;
	text-underline-offset: 3px;
	word-break: break-all;
}
.bsp-subscribe-note__contact a:hover {
	color: #6b3aa0;
}

/* ---- 订阅表单：支持溯旒杂志社（爱发电赞助入口，v1.5.7） ----
   按钮并入 .bsp-subscribe-form__row，与 SUBSCRIBE 同一行并排；
   与订阅按钮同款（白底 / 2px 黑描边 / 2px 黑硬投影 / pill / 等高 52px），
   爱心用主题主粉 #ff3b72 点睛，hover 沿用"字变粉"。 */
.bsp-donate__btn {
	display: inline-flex;
	align-items: center;
	gap: 0.55em;
	padding: 0 1.1em;
	height: 52px;                       /* 与 .bsp-subscribe-form__button 等高，视觉统一 */
	box-sizing: border-box;
	background: #fff;
	color: #000;
	border: 2px solid #000;             /* 主题硬描边 */
	border-radius: 100vmax;             /* 主题 pill 形 */
	box-shadow: 2px 2px 0 0 #000;       /* 主题硬偏移投影(无模糊) */
	font-family: inherit;
	font-size: 16px;
	font-weight: 700;
	letter-spacing: 0.06em;
	line-height: 1;
	white-space: nowrap;                /* 防止窄屏文字回行破坏 pill */
	text-decoration: none;
	cursor: pointer;
	transition: color 0.2s, background 0.2s;
}
.bsp-donate__btn:hover {
	color: #ff3b72;                     /* hover 字变主题主粉，与订阅按钮一致 */
	background: #fff;
}
.bsp-donate__icon {
	display: inline-flex;
	align-items: center;
	flex: 0 0 auto;
}
.bsp-donate__icon svg {
	width: 1.1em;
	height: 1.1em;
	fill: #ff3b72;                      /* 爱心保持主粉 */
	display: block;
}

/* ---- 关于页：人物卡（头像 + 昵称 + 简介） ----
   同样不另起方框，仅靠留白/字体色/头像圆形做层级，靠底部分隔线把两张卡分开。 */
.bsp-about {
	display: flex;
	align-items: center;
	gap: clamp(20px, 3vw, 36px);
	margin: 0 0 1em;
	padding: 1em 0 2.4em;                   /* 卡片上下内边距加大，让分隔留白更明显 */
	border-bottom: 1px dashed rgba(255, 121, 168, 0.55);
}
.bsp-about__avatar {
	margin: 0;
	padding: 0;
	flex: 0 0 auto;
	/* 强制正方形容器：width/height 一致，border-radius: 50% 才能渲染为正圆 */
	width: clamp(96px, 11vw, 140px);
	height: clamp(96px, 11vw, 140px);
	overflow: hidden;                    /* 裁切溢出的图片 */
	border-radius: 50%;
	border: 3px solid #ff79a8;
	background: #fff;
	box-shadow: 0 4px 14px rgba(0, 0, 0, 0.08);
}
.bsp-about__avatar picture,
.bsp-about__avatar img {
	display: block;
	width: 100%;
	height: 100%;                        /* 充满容器，配合 object-fit 裁切 */
	object-fit: cover;                   /* 保持比例，裁切多余部分，填满圆形 */
	object-position: center;
	border: none;                        /* 边框/阴影/圆角在 figure 上 */
	border-radius: 0;
	box-shadow: none;
}
.bsp-about__info {
	flex: 1 1 auto;
	min-width: 0;
}
.bsp-about__nickname {
	display: flex;
	align-items: baseline;
	flex-wrap: wrap;
	gap: 0.5em;
	margin: 0 0 0.6em;
	font-size: clamp(18px, 1.4vw, 22px);
	font-weight: 800;
	color: #2b2b2b;
}
/* .bsp-about__label 已从 page-about.php 删除（v21），不再需要样式。 */
.bsp-about__name {
	font-size: 1em;
	font-weight: 800;
	color: #6b3aa0;
	letter-spacing: 0.02em;
}
.bsp-about__bio {
	margin: 0;
	font-size: clamp(14px, 1vw, 16px);
	line-height: 2;
	color: #2b2b2b;
	letter-spacing: 0.03em;
}
/* bio 内由 wpautop 生成的段落：收紧自带头尾间距，与 bio 行高一致 */
.bsp-about__bio p {
	margin: 0 0 0.6em;
}
.bsp-about__bio p:last-child {
	margin-bottom: 0;
}
@media (max-width: 640px) {
	.bsp-about {
		flex-direction: column;
		text-align: center;
		padding: 1em 0 1.4em;
	}
	.bsp-about__nickname {
		justify-content: center;
	}
	.bsp-about__avatar {
		width: clamp(84px, 24vw, 120px);
		height: clamp(84px, 24vw, 120px);   /* v1.0.59: 同步 height 保持正圆，防手机端扁掉 */
	}
}

/* 自由内容块：第 2+ 块与第 1 块统一间隔（v27 后台可自定义多块后，
   不再给后续块超大 margin-top，靠 .bsp-about 自带的虚线分隔即可分层）。
   仅保留名字配色区分。 */
.bsp-about--group {
	margin-top: 0;
	padding-top: 0;
	border-bottom-color: rgba(107, 58, 160, 0.35);
}
.bsp-about__avatar--placeholder {
	display: flex;
	align-items: center;
	justify-content: center;
}
.bsp-about__monogram {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	aspect-ratio: 1 / 1;
	border-radius: 50%;
	border: 3px solid #6b3aa0;
	background: linear-gradient(135deg, #a67cff, #6b3aa0);
	color: #fff;
	font-size: clamp(30px, 3.4vw, 46px);
	font-weight: 800;
	box-shadow: 0 4px 14px rgba(0, 0, 0, 0.1);
}
.bsp-about--group .bsp-about__name {
	color: #6b3aa0;
}

/* ====================================================================
 * 完整移动端适配（≤768px / ≤480px 两档）
 * 覆盖：INTRODUCTION 纸面 / Hero 行动按钮 / CONTENTS 弹幕细调 /
 *       订阅表单 / 订阅提示 / Footer 双 LOGO+hint / 页头 LOGO / nav
 * ==================================================================== */

/* ---- ① 子页页头 LOGO：≤768px 直接 display none（手机尺寸下隐藏左上角 logo） ---- */
@media (max-width: 768px) {
	/* 子页(NEWS/ARTICLE/ABOUT 等)banner 修复：恢复 .c-page-header__bg 显示，让粉色
	   bg_header.png 撑满 banner 区，把 NEWS 大字包进 banner 中央；
	   但根据早期用户要求，**子页左上角小 logo 仍保持隐藏**（避免拥挤屏宽）。 */
	.c-page-header__bg {
		display: block !important;           /* 覆盖早期误隐藏，恢复粉色 banner 背景 */
	}
	.c-page-header__bg img {                /* bg_header.png 是 1920 全宽，移动端平铺 */
		width: 100%;
		height: auto;
		display: block;
	}
	/* logo 仍隐藏（早期用户要求） */
	.c-page-header__logo {
		display: none !important;
	}
	/* banner 区高度：app.css 移动端给 .c-page-header{padding-top:16.93vw}，
	   这里不动，确保粉色背景图完整包住标题。 */
}
/* ≤1024px footer 底部留白：app.css mobile 给了 padding-bottom:5.47vw≈20px@360，
   实际仅 5 项菜单（HOME/NEWS/ARTICLE/ABOUT/SUBSCRIBE 共 3 行）时底部留白偏紧。
   在 1024 内单独加 padding-bottom:9vw≈32px@360，给 SUBSCRIBE 下方留呼吸空间。
   paper/bg::before 均基于 footer 100% 计算，等比延伸，不破坏装饰。 */
@media (max-width: 1024px) {
	.l-footer { padding-bottom: 9vw !important; }
}
@media (max-width: 380px) {
	.l-footer { padding-bottom: 11vw !important; }   /* 极窄屏再加点 */
}

/* ---- ①b footer 底部 nav 菜单：放弃本地覆盖，交给 app.css 原生效 ----
   关键发现：参考图是 bang-dream 原版移动端，app.css 原生已有完整 mobile 样式——
     .l-footer__nav-list{
       display:grid; grid-template-columns:1fr auto;
       width:75.52vw; padding-left:4.69vw; padding-top:13.02vw;
       row-gap:9.11vw; column-gap:0;
       transform:translateX(-2.34vw); /* 整体左移少量以对齐 logo 区 */
     }
     .c-nav__text{font-size:3.90625vw; letter-spacing:.06em; line-height:1}  // ≈16px
     .c-nav__link.is-current{color:#ff3b72}
     .c-nav__link.is-current::before{ /* 粉色五角星 */ left:-1.56vw; top:.39vw; width:.94vw; height:.94vw }
   原版 8 项菜单刚好把 grid 1fr 撑满 + auto 收窄对齐成 4+4 对称两列；用户站 5 项会自动
   形成 3+2（左 3 右 2）但仍维持原版的字大、字距、行距、星标、padding-left 整体偏移——
   这才叫「和原版一样」。
   之前自己覆盖了 grid-template-columns:1fr 1fr、row-gap:6vw、font-size:16px 等，全错。
   现在唯一保留：极窄屏(≤380)星标安全外扩，防止 1fr 列宽不足时星标被吃掉。 */

@media (max-width: 380px) {
	/* 极窄屏：星标 + 5vw padding-left，确保不被左列 1fr 剪裁 */
	.c-nav__link.is-current { padding-left: 5vw !important; }
}

/* ---- ② INTRODUCTION 纸面：窄屏减少内边距 ---- */
@media (max-width: 768px) {
	.bsp-paper {
		padding: 14px 14px 18px;
		background: repeating-linear-gradient(0deg, #fff 0 32px, #f3e3eb 32px 33px);
	}
	.bsp-paper::before,
	.bsp-paper::after {
		margin: -14px -14px 10px;
		height: 14px;
	}
	.p-home__introduction-text {
		max-width: 100%;
	}
	.bsp-essay__title {
		font-size: 22px;
		line-height: 1.4;
		padding-bottom: .5em;
	}
	.bsp-essay p,
	.bsp-essay p.bsp-essay__bold {
		font-size: 16px;
		line-height: 1.95;
	}
	.bsp-essay p.bsp-essay__emphasis {
		font-size: 17px;
	}
	.bsp-essay__signature img {
		width: 65px;  /* v1.1.10: 签名缩小一半(原 130) */
	}
}

/* ---- ③ Hero 行动按钮：窄屏占满宽度、易点 ---- */
@media (max-width: 768px) {
	.p-special-category--hero {
		display: flex;
		flex-direction: column;
		gap: 12px;
		max-width: 320px;
		margin: 7vw auto 0;
	}
	.p-special-category--hero a {
		width: 100%;
		text-align: center;
		padding: 12px 22px;
		font-size: 15px;
	}
}


/* ---- ⑫ v1.0.68 Hero 重构(对齐参考图):封面明显错位堆叠 + 底部毛笔 LOGO 大字水印 + 顶部 slogan 副标 ---- */
.p-home__hero--rebuilt {
	background: transparent;
	flex: 1;
	display: flex;
	align-items: center;
	justify-content: center;
}
.p-home__hero-covers {
	position: relative;
	width: 100%;
	max-width: 760px;               /* v1.0.82: 红线内再放大 */
	margin: 0 auto;
	padding: 2.5vh 1vw;
	box-sizing: border-box;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: clamp(18px, 2.4vh, 30px);
}

/* 顶部 slogan 副标 */
.p-home__hero-slogan {
	margin: 0;
	text-align: center;
	font-size: clamp(13px, 1.2vw, 17px);
	font-weight: 500;
	letter-spacing: 0.15em;
	color: rgba(255, 59, 114, 0.7);
	font-family: "PingFang SC","Hiragino Sans GB","Microsoft YaHei","微软雅黑",sans-serif;
}

/* 错位堆叠容器 */
.p-home__hero-covers-stack {
	position: relative;
	width: min(600px, 64vw);        /* v1.0.82: 红线内再放大 */
	aspect-ratio: 16 / 11;
}
.p-home__hero-cover {
	position: absolute;
	margin: 0;
	/* v1.1.8: 顶部不再虚化，只保留底部柔和淡出，避免上方看起来"缺一块" */
	mask-image: linear-gradient(180deg, #000 0%, #000 92%, transparent 100%);
	-webkit-mask-image: linear-gradient(180deg, #000 0%, #000 92%, transparent 100%);
	transition: transform 0.5s ease;
}
.p-home__hero-cover img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: contain;
	border: 1px solid #222;         /* v1.0.77: 三份封面加黑色细边框 */
	box-sizing: border-box;
	filter: drop-shadow(0 18px 32px rgba(0, 0, 0, 0.18));
}
/* v1.1.9: 封面可跳转 —— <a> 铺满整个 figure(absolute 定尺寸)，点击即跳转 */
.p-home__hero-cover-link {
	display: block;
	width: 100%;
	height: 100%;
	text-decoration: none;
	cursor: pointer;
}
.p-home__hero-cover--pos-0 {
	left: 50%;
	top: 4%;
	width: 48%;                     /* v1.0.74: 中央缩小，不要再压 LOGO */
	transform: translateX(-50%);
	z-index: 3;                    /* v1.0.75: 中央最前，不被两侧覆盖（两侧 z=1） */
}
.p-home__hero-cover--pos-1 {
	left: 4%;
	bottom: -2%;
	width: 32%;                     /* v1.0.74: 两侧再缩小 */
	transform: rotate(-5deg);
	z-index: 1;
}
.p-home__hero-cover--pos-2 {
	right: 4%;
	bottom: -2%;
	width: 32%;
	transform: rotate(5deg);
	z-index: 1;
}
.p-home__hero-cover--pos-0:hover { transform: translateX(-50%) translateY(-8px); }
.p-home__hero-cover--pos-1:hover { transform: rotate(-5deg) translateY(-5px); }
.p-home__hero-cover--pos-2:hover { transform: rotate(5deg)  translateY(-5px); }

/* 底部毛笔字 LOGO 大字水印 */
.p-home__hero-logo {
	margin: 1vh 0 0;
	width: clamp(440px, 48vw, 720px);   /* v1.0.83: 放宽至接近红线宽度 */
	max-width: 88%;                     /* 留出右侧空隙给 TM 站立，不再压窄 */
	position: relative;
	z-index: 5;
}
.p-home__hero-logo img {
	display: block;
	width: 100%;
	height: auto;
}
.p-home__hero-logo-tm {            /* v1.0.87: 与刊再隔半厘米 */
	position: absolute;
	top: -6%;
	right: -10%;
	z-index: 6;
	font-family: "PingFang SC", "Microsoft YaHei", "微软雅黑", "SimHei", "黑体", sans-serif;
	font-size: clamp(14px, 1.6vw, 24px);
	font-weight: 700;
	color: #2b2b2b;
	letter-spacing: 0;
	pointer-events: none;
}

@media (max-width: 768px) {
	.p-home__hero-covers-stack { width: min(500px, 86vw); aspect-ratio: 16/12; }
	.p-home__hero-cover--pos-0 { width: 50%; }
	.p-home__hero-cover--pos-1, .p-home__hero-cover--pos-2 { width: 34%; bottom: -4%; }
	.p-home__hero-cover--pos-1 { transform: rotate(-4deg); }
	.p-home__hero-cover--pos-2 { transform: rotate(4deg); }
	.p-home__hero-logo { width: 86vw; max-width: 86vw; margin-top: 1.5vh; }
	.p-home__hero-logo-tm { font-size: 9px; top: -18%; right: -3%; }   /* v1.0.85: 与"文"上方小点同大、与"刊"隔半厘米 */
	.p-home__hero-slogan { font-size: 12px; letter-spacing: 0.12em; }
}

/* ---- ④ CONTENTS 弹幕：窄屏字略小、节奏略慢，避免拥挤 ---- */
@media (max-width: 480px) {
	/* v1.1.17: 横向间距改用容器 column-gap,与主 cloud 段 ≤480 一致(18px);不再在 item 上设 margin-right */
	.bsp-content-cloud__track { column-gap: 18px; padding-right: 18px; }  /* v1.1.17: 横向间距改用容器 column-gap; padding-right 补齐一个间隔防 restart 抽搐 */
	.bsp-content-cloud__item[data-w="1"] .bsp-content-cloud__link { font-size: 15px; }
	.bsp-content-cloud__item[data-w="2"] .bsp-content-cloud__link { font-size: 17px; }
	.bsp-content-cloud__item[data-w="3"] .bsp-content-cloud__link { font-size: 19px; }
	.bsp-content-cloud__item[data-w="4"] .bsp-content-cloud__link { font-size: 22px; }
	.bsp-content-cloud__item[data-w="5"] .bsp-content-cloud__link { font-size: 25px; }
	.bsp-content-cloud__item[data-w="6"] .bsp-content-cloud__link { font-size: 28px; }
	.bsp-content-cloud__sub {
		font-size: 0.6em;
		margin-left: 0.4em;
	}
}

/* ---- ⑤ 订阅页：表单竖排、提示更紧凑 ---- */
@media (max-width: 768px) {
	.bsp-subscribe-form__label {
		font-size: 17px;
	}
	.bsp-subscribe-form__input {
		flex: 1 1 100%;
		min-width: 0;
		width: 100%;
		height: 48px;
		font-size: 15px;
	}
	/* v1.5.7: 邮箱整行；SUBSCRIBE 与「支持溯旒杂志社」两个动作按钮并排平分一行 */
	.bsp-subscribe-form__button,
	.bsp-donate__btn {
		flex: 1 1 48%;
		justify-content: center;
		width: auto;
		height: 48px;
		font-size: 15px;
	}
	.bsp-subscribe-note {
		padding: 1.1em 1.2em;
	}
	.bsp-subscribe-note__title {
		font-size: 18px;
	}
}

/* ---- ⑥ Footer 双 LOGO 极窄屏适配（整合 768/480/420/380 的多套重复规则） ----
   核心尺寸在 505-522 的 @media(max-width:1024px) 统一设置；这里只处理 ≤480 的
   QQ+hint 纵向堆叠，避免与文字 logo 争横向空间。 */
@media (max-width: 480px) {
	.l-footer__logo--double {
		align-items: center;
		gap: 3vw;
	}
	.l-footer__logo-item--text { max-width: 78vw; }    /* v1.0.111: 放宽容纳图+紧贴"杂志社"(旧 34vw≈163px 会截断) */
	.l-footer__logo-item--qq {
		max-width: 30vw;
		flex-direction: column;      /* QQ 圆 + hint 纵向 */
		align-items: center;
		gap: 0.5em;
	}
	.l-footer__logo-item--qq .l-footer__logo-anchor {
		width: auto;
	}
	.l-footer__logo-item--qq img {
		width: clamp(35px, 13vw, 56px);   /* v1.1.25: 52-84→35-56,缩 1/3; 19vw→13vw,圆徽缩小 */
		margin: 0 auto;
	}
	.l-footer__logo-hint {
		font-size: 9px;                  /* 提示文字调小 */
		padding: 0.3em 0.6em;
	}
	.l-footer__logo-hint-arrow::before {
		content: "↑";      /* 手机 column：箭头朝上指向圆徽 */
	}
	.l-footer__logo-hint-arrow {
		font-size: 12px;
		transform: translateY(-2px);   /* 微抬让 ↑ 视觉对齐 */
	}
}

/* ---- ⑦ About 卡：≤768px 收紧内边距（≤640px 已纵向，更小屏用更大头像） ---- */
@media (max-width: 768px) {
	.bsp-about {
		padding: 1.4em 1.3em;
		gap: 18px;
	}
}
@media (max-width: 420px) {
	.bsp-about { padding: 1.2em 1em; }
	.bsp-about__nickname { font-size: 18px; }
	.bsp-about__avatar { width: clamp(80px, 28vw, 120px); height: clamp(80px, 28vw, 120px); } /* v1.0.59: 同步 height 保持正圆 */
	.bsp-about__monogram { font-size: 32px; }
}

/* ---- ⑧ 后台正文里嵌入的长文（卡片正文） ---- */
@media (max-width: 768px) {
	.c-single-content {
		padding: 0 4vw;
	}
	.c-single-content h2 {
		font-size: 20px;
	}
	.c-single-content p {
		font-size: 16px;
		line-height: 1.9;
	}
}

/* ---- ⑨ 首页 NEWS 预览（手机端优化字号、点按高度） ---- */
@media (max-width: 768px) {
	/* 整体卡片区：与小屏页面 padding 对齐 */
	.p-home__hero-news {
		width: 100%;
		max-width: 92vw;
		margin: 14vw auto 0;
		padding: 6vw 5vw 8vw;
		background: rgba(255, 255, 255, 0.4);
		border-radius: 14px;
	}
	/* NEWS 标题更大，与桌面观感保持 */
	.p-home__hero-news-heading .c-heading__inner {
		font-size: clamp(22px, 7vw, 32px);
	}
	/* 日期字号略大，避免看着像小标注 */
	.p-home__hero-news-date {
		font-size: clamp(12px, 3.4vw, 14px);
	}
	/* 标题显著放大，单行省略变两行省略，方便用户一眼看到主题 */
	.p-home__hero-news-title {
		font-size: clamp(15px, 4.6vw, 18px) !important;
		line-height: 1.55;
		margin-top: 6px;
		-webkit-line-clamp: 2;
		line-clamp: 2;
	}
	/* 列表 item 之间分隔更明显，提升可读性 */
	.p-home__hero-news-list a {
		padding: 4vw 0 4vw;
		border-bottom: 1px dashed rgba(107, 58, 160, 0.18);
		display: block;
	}
	.p-home__hero-news-list li:last-child a {
		border-bottom: none;
	}
}

/* ====================================================================
 * 移动端细节优化（v3 补丁：2026-09-04）
 *  ① HOME 说明文字（hero tagline）字号再缩一档，行高收一点，避免首屏占满
 *  ② 文展长文 / INTRODUCTION 段落左右留白（不顶到屏幕边）
 *  ③ footer 文字 logo 放大、与 QQ 圆视觉平衡；QQ 圆 + hint 排成上下结构
 *  ④ CONTENTS 弹幕云不溢出 l-inner
 * ==================================================================== */

/* ① hero 标题 logo 放大、tagline 缩小，让 logo 在首屏更突出 */
@media (max-width: 768px) {
	.p-home__hero {
		display: flex;
		flex-direction: column;
		justify-content: center;       /* 内容垂直居中 */
		min-height: 100vh;              /* 兜底：占满整个首屏（vh 兼容性最好） */
		min-height: 100dvh;            /* 现代浏览器：去掉地址栏的真实视口高度 */
		padding: 6vw 0;
		box-sizing: border-box;
	}
	.p-home__hero-text {
		width: 100%;
	}
	.p-home__hero-text-inner {
		padding: 4vw 4vw 5vw;
	}
	.p-home__hero-title { max-width: 88vw; margin: 0 auto; }
	.p-home__hero-tagline {
		margin-top: 4vw;
		font-size: 13px;
		line-height: 1.85;
		letter-spacing: .02em;
	}
	.p-special-category--hero {
		gap: 10px;
		margin-top: 6vw;
	}
	.p-special-category--hero a {
		font-size: 14px;
		padding: 10px 18px;
	}
}
/* ≤420px 安卓小屏：tagline 再缩一档，避免首屏过满 */
@media (max-width: 420px) {
	.p-home__hero-tagline { font-size: 12px; line-height: 1.8; }
	.p-home__hero-title { max-width: 90vw; }
}

/* ② 文展 / INTRODUCTION 长文：左右安全留白（不顶屏幕边）
   父 .l-inner 在 ≤1024px 时 width:100% 无 padding（见 app.css），
   所以给 INTRODUCTION 内的 .l-inner 单独加 padding，不影响 footer 等其他区域。 */
@media (max-width: 1024px) {
	.p-home__introduction .l-inner {
		padding-left: 5vw;
		padding-right: 5vw;
		box-sizing: border-box;
	}
}
@media (max-width: 768px) {
	.bsp-essay,
	.p-home__introduction-text {
		padding-left: 0;
		padding-right: 0;
	}
	.bsp-essay p,
	.bsp-essay p.bsp-essay__bold,
	.bsp-essay p.bsp-essay__emphasis {
		padding-left: 0;
		padding-right: 0;
	}
	.c-single-content { padding-left: 0; padding-right: 0; }
}

/* ④ CONTENTS 弹幕云：确保不溢出 l-inner */
@media (max-width: 768px) {
	.bsp-content-cloud {
		padding-left: 0;
		padding-right: 0;
		overflow: hidden;
	}
}

/* ---- ⑪ 抽屉菜单（汉堡打开后的导航列表）项间紧凑化 ----
   app.css 桌面给 .c-nav--header{row-gap:46px}、mobile {row-gap:9.11vw}，
   整体空隙较松。统一收紧:
   桌面 26px（约合 1.5em@18px 行高，菜单显得更精致）
   ≤1024 mobile 3.5vw（≈14px@390，约原 4.5vw 的 78% —— v1.1.12 再收一档，让两排更近）
   ≤380 极窄屏 2.5vw（≈10px —— v1.1.12 与 mobile 同步收紧）
   ⚠️ v1.1.14 用户澄清: "行间太紧"是误判,真正过宽的是 grid-template-columns:1fr auto 把两列
   撑到抽屉左右两半、中间一大块空。已在下方媒体块把列改成 auto auto + column-gap 8vw(≤380 6vw) */
@media (min-width: 1025px) {
	.c-nav--header {
		row-gap: 26px !important;
	}
}
@media (max-width: 1024px) {
	.c-nav--header {
		row-gap: 3.5vw !important;
	}
}
@media (max-width: 380px) {
	.c-nav--header {
		row-gap: 2.5vw !important;
	}
}
/* v1.1.14: 用户要求把抽屉 menu 两列"列距缩窄+字加大"。
   app.css 给 .c-nav--header{grid-template-columns:1fr auto;row-gap:46px}（桌面）/ 9.11vw（mobile）,
   两列按 1fr auto 自然分占抽屉左右两半(故意这样设计的——左列+右列在抽屉两侧,中间是 1fr 弹性空白)。
   v1.1.18 反向: 用户不要! 要求恢复原状(两列分占抽屉两侧)+ 仅字加大一点。
   现: 不再碰 grid-template-columns, 保持 app.css 的 1fr auto 原样不动;
       仅加大 .c-nav__text 字号(桌面 22px / 手机 4.5vw)以满足"字大"诉求。 */
@media (min-width: 1025px) {
	.c-nav--header .c-nav__text { font-size: 22px !important; }
}
@media (max-width: 1024px) {
	.c-nav--header .c-nav__text { font-size: 4.5vw !important; }
}
/* v1.4.44: MENU 抽屉底部 portal「阅读《溯旒文学选刊》」已从 header.php 移除，
   原 .l-header__nav-inner 底部留白(app.css 200px / 26.04vw 等)专为 portal 让位，
   现收小到正常呼吸量，避免菜单下方空一大截（减少底部 padding 只收空间、不裁剪菜单项）。 */
@media (min-width: 1025px) {
	.l-header__nav-inner {
		padding-bottom: 90px !important;
	}
}
@media (max-width: 1024px) {
	.l-header__nav-inner {
		padding-bottom: 10vw !important;
	}
}

/* ---- ⑫ 注：曾误加 .c-sub-content 92vw 纸卡加宽 + __inner 100% 内文加宽。
   用户澄清方向不是纸卡宽度，而是「框的顶部标题与框顶的距离、标题的字」。
   故整段回退，让 app.css 原生 .c-sub-content(84.375vw)/__inner(clamp90%)
   恢复生效，避免与下方新增的顶部间距调整叠加干扰。 */

/* ---- ⑬ 通用内容纸卡(.p-news-content--single)顶部内边距加大 ----
   注意：订阅/部分页面纸卡 DOM 只带 .p-news-content--single 单类(无 .p-news-content 基类)，
   app.css 的双类规则 .p-news-content.p-news-content--single 在这些页面不命中，
   因此顶部留白必须由本段补足：≤1024 走 vw(≈31px@390，已认可)；≥1025 桌面固定 64px
   (vw 在宽屏会随视口放大过头——曾用 8vw 在 1280-1919 造成 110px+ 过宽，改回固定值)。
   标题与框顶间留出适度呼吸，所有用 .p-news-content--single 包裹的页面统一受益。 */
@media (max-width: 1024px) {
	.p-news-content--single {
		padding-top: 8vw !important;
	}
}
@media (min-width: 1025px) {
	.p-news-content--single {
		padding-top: 64px !important;
	}
}

/* ---- ⑮ 列表卡片无图时标题放大（v1.0.50）----
   列表里有图卡片的卡片高度 = thumb(338/190 比例) + date + title 占的整块。
   无图卡片原版字号小（~16px），整体矮一截与有图版不和谐。
   这里给 .p-news-list__item--no-thumb 把 title 字号放大、日期加大、底 padding 撑高，
   让无图卡片视觉与有图版接近协调（不再因为没图而显得空、小）。 */
.p-news-list__item--no-thumb {
	display: flex;
}
.p-news-list__item--no-thumb .p-news-list__content {
	display: flex;
	flex-direction: column;
	justify-content: center;          /* 居中竖排，无图时整体仍居中显得大气 */
	min-height: clamp(220px, 22vw, 340px);   /* 模拟有图卡片的总高度 */
	padding: clamp(18px, 2.4vw, 32px);
}
.p-news-list__item--no-thumb .p-news-list__date {
	font-size: clamp(16px, 1.4vw, 22px);
	margin-top: 0;                    /* 取消原 date 上方的大留白，居中版不需要 */
	color: #ff3b72;
	letter-spacing: .02em;
}
.p-news-list__item--no-thumb .p-news-list__title {
	font-size: clamp(20px, 1.95vw, 30px);
	line-height: 1.5;
	letter-spacing: .06em;
	margin-top: clamp(10px, 1vw, 18px);
	color: #2b2b2b;
}
@media (max-width: 768px) {
	.p-news-list__item--no-thumb .p-news-list__content {
		min-height: clamp(200px, 56vw, 280px);
		padding: 5vw;
	}
	.p-news-list__item--no-thumb .p-news-list__date {
		font-size: 15px;
	}
	.p-news-list__item--no-thumb .p-news-list__title {
		font-size: 18px;
		line-height: 1.45;
		margin-top: 10px;
	}
}
