/* ==========================================================================
   千冶成锋 · 首页视觉打磨层 v2（1.9.0）
   --------------------------------------------------------------------------
   加载顺序：style.css → home-refinement.css → 本文件（wp_enqueue_scripts 优先级 30）
   所以同等权重时本文件生效，不需要 !important。

   想回退：
     · 只回退配色 → 注释掉下面第 1 段
     · 全部回退   → 停用 inc/polish.php 里 qca_polish_enqueue() 的 wp_enqueue_style
   ========================================================================== */

/* ==========================================================================
   1) 色彩令牌：一个主角，一个配角
   --------------------------------------------------------------------------
   原方案有 5 个强调色（红 #E14B35 / 深红 #A83224 / 橙 #F2A43A / 青 #15516B / 米 #FFFAF0），
   红色同时用于 CTA、眉标、列表竖线、序号，导致红色失去"指示"含义。
   收敛为：主 #C8412B（只给主按钮与关键数字）+ 次 #1F7A8C 青瓷青（眉标/hover/图解）。
   青色不是新颜色 —— 联系区 #15516B 与背景网格 rgba(31,122,140,…) 本来就是青。
   ========================================================================== */
:root {
	--qca-bg: #F6F9FB;
	--qca-panel: #FFFFFF;
	--qca-panel-2: #E9F2F3;
	--qca-ink: #14374E;
	--qca-cream: #14374E;
	--qca-red: #C8412B;
	--qca-red-dark: #A5331F;
	--qca-orange: #1F7A8C;
	--qca-muted: #4F6B7D;
	--qca-line: #D3E1E5;
	--qca-paper: #FFFFFF;
	--qca-radius: 8px;
}

/* ==========================================================================
   2) 排版基线（全站）
   --------------------------------------------------------------------------
   正文 17px、行高 1.85；大标题收紧字距；数字统一等宽（日期 / 环数 / 编号不跳动）。
   ========================================================================== */
body {
	font-family: "PingFang SC", "HarmonyOS Sans SC", "Source Han Sans SC",
		"Noto Sans SC", "Microsoft YaHei", -apple-system, "Segoe UI", sans-serif;
	font-size: 17px;
	line-height: 1.85;
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}

h1 { line-height: 1.06; letter-spacing: -.01em; }
h2 { line-height: 1.14; letter-spacing: -.005em; }
h3 { line-height: 1.4; letter-spacing: 0; }

h1, h2, h3, h4,
.eyebrow,
.editorial-row__date,
.editorial-row__date span,
.editorial-row__action,
.qca-gallery-item__category,
.qca-gallery-item__year,
.qca-training-home__preview-row b,
.qca-scroll-studio__chapter-index,
.video-tile__index {
	font-variant-numeric: tabular-nums;
	font-feature-settings: "tnum" 1, "lnum" 1;
}

/* ==========================================================================
   3) 眉标：全站一个公式
   --------------------------------------------------------------------------
   原来 12px 橙字落在 #F4F8FA 上，对比度只有 1.94:1（AA 小字要求 4.5:1）。
   现在 12px / 700 / .14em 字距 / 青瓷青 —— 字数少时靠字距撑开，立刻"设计过"。
   ========================================================================== */
.site-main--home .eyebrow {
	margin: 0 0 18px;
	color: var(--qca-orange);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .14em;
	text-transform: uppercase;
}

.site-main--home .eyebrow > span {
	letter-spacing: .04em;
}

/* ==========================================================================
   4) 按钮
   --------------------------------------------------------------------------
   主题里 .button 有二十多段叠加，min-height 在 46/50/54 之间反复变。统一成一套。
   ========================================================================== */
.site-main--home .button {
	min-height: 52px;
	padding: 0 26px;
	border-radius: 8px;
	font-size: 16px;
	font-weight: 700;
	letter-spacing: .02em;
	box-shadow: 0 6px 16px rgba(200, 65, 43, .16);
}

.site-main--home .button:hover {
	background: var(--qca-red-dark);
	border-color: var(--qca-red-dark);
	transform: translateY(-1px);
}

.site-main--home .button--secondary {
	color: var(--qca-ink);
	background: #fff;
	border-color: #CFDFE3;
	box-shadow: none;
}

.site-main--home .button--secondary:hover {
	color: var(--qca-ink);
	background: var(--qca-panel-2);
	border-color: var(--qca-ink);
}

/* 顶栏 CTA：原来 hover 变橙底 + 深字，对比度很差；橙色退场后改为深红 */
.site-header__cta {
	min-height: 42px;
	padding: 0 20px;
	border-radius: 8px;
	font-size: 14px;
	font-weight: 700;
	letter-spacing: .04em;
	box-shadow: 0 4px 12px rgba(200, 65, 43, .14);
}

.site-header__cta:hover {
	color: #fff;
	background: var(--qca-red-dark);
	border-color: var(--qca-red-dark);
	box-shadow: 0 6px 16px rgba(165, 51, 31, .22);
}

/* ==========================================================================
   5) 正文与元信息
   --------------------------------------------------------------------------
   主题里正文大量落在 .72–.8rem（11.5–13.6px）。受众是 35–50 岁家长，
   12px 中文在笔记本上要凑近看。这里把长段落抬到 16px。
   ========================================================================== */
.site-main--home .editorial-row p,
.site-main--home .section--text-archive .editorial-row p,
.site-main--home .qca-shooting-guide__detail p,
.site-main--home .qca-parent-start__intro > p:last-child,
.site-main--home .qca-training-home__inner > div:first-child > p:not(.eyebrow) {
	font-size: 16px;
	line-height: 1.9;
}

.site-main--home .editorial-row__date,
.site-main--home .section--text-archive .editorial-row__date,
.site-main--home .editorial-row__action,
.site-main--home .editorial-row__label,
.site-main--home .qca-gallery-item__category {
	font-size: 13px;
	letter-spacing: .02em;
}

.site-main--home .editorial-row__label {
	color: var(--qca-orange);
	font-weight: 700;
}

/* 「原公众号文章」是内部标签，不该出现在读者面前 */
.site-main--home .editorial-row__label small {
	display: none;
}

/* ==========================================================================
   6) 图片语言
   --------------------------------------------------------------------------
   站内混了实拍 / AI 生成 / 影视截图，色温不一。一点点降饱和 + 提对比，
   把它们拉回同一个"片场"，肉眼看不出滤镜，只感觉更统一。
   ========================================================================== */
.site-main--home .qca-gallery--home .qca-gallery-item__link img,
.site-main--home .editorial-row__cover img,
.site-main--home .video-tile__media img,
.site-main--home .qca-shooting-guide__detail-figure img,
.site-main--home .qca-field-note img {
	filter: saturate(.94) contrast(1.02);
}

/* ==========================================================================
   7) 列表行：红条让位，hover 位移收小
   ========================================================================== */
.site-main--home .editorial-row__main::before {
	background: var(--qca-line);
}

.site-main--home .editorial-row::before {
	background: var(--qca-orange);
}

.site-main--home .editorial-row:hover {
	transform: translateX(4px);
	border-color: #BFD3D9;
}

/* ==========================================================================
   8) 训练成绩区：去掉暖米色
   --------------------------------------------------------------------------
   home-refinement 里是 linear-gradient(115deg,#eaf7f4,#fff4de 60%,#fff)，
   中间的 #fff4de 是暖黄米色，在青绿体系里显"脏"。
   ========================================================================== */
.site-main--home .qca-training-home__inner {
	background: linear-gradient(120deg, #EAF5F4, #FFFFFF 62%);
	border-left: 3px solid var(--qca-orange);
}

.site-main--home .qca-training-home__preview-row {
	min-height: 60px;
	font-size: 15px;
}

.site-main--home .qca-training-home__preview-row b {
	font-size: 17px;
	letter-spacing: .01em;
}

/* ==========================================================================
   9) 作品集容器：让作品看起来像作品
   --------------------------------------------------------------------------
   原来全部强制 4:3 硬裁（1024×695、1024×1024、804×428 全被削），
   点击还直接打开 uploads 里的原始 PNG。
   现在放宽到 3:2，图注由后台字段驱动，点击进灯箱。
   ========================================================================== */
.site-main--home .qca-gallery--home .qca-gallery-item__link {
	aspect-ratio: 3 / 2;
	border-bottom: 1px solid rgba(20, 55, 78, .08);
}

.site-main--home .qca-gallery-item__caption {
	padding: 13px 15px 16px;
	background: #fff;
}

.site-main--home .qca-gallery-item__category {
	color: var(--qca-orange);
	font-weight: 700;
	letter-spacing: .12em;
	line-height: 1.4;
	text-transform: uppercase;
}

.site-main--home .qca-gallery-item__title {
	margin: 6px 0 0;
	color: var(--qca-ink);
	font-size: 15px;
	font-weight: 600;
	line-height: 1.5;
	letter-spacing: .01em;
}

.site-main--home .qca-gallery-item__year {
	margin-left: 8px;
	color: var(--qca-muted);
	font-size: 12px;
	font-weight: 500;
	letter-spacing: .04em;
}

/* ==========================================================================
   10) 视频角标
   --------------------------------------------------------------------------
   左上 01/02/03 是主题的"档案编号"，右下是播放键，所以分类放右上。
   ========================================================================== */
.site-main--home .video-tile .video-tile__badge {
	position: absolute;
	top: 14px;
	right: 16px;
	z-index: 2;
	padding: 3px 8px;
	color: #fff;
	background: rgba(20, 55, 78, .72);
	border-radius: 4px;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .08em;
	line-height: 1.5;
	pointer-events: none;
}

/* 播放键：斜方块（border-radius:0 + rotate(-6deg)）在青绿体系里像贴纸 → 细描边正圆 */
.site-main--home .video-tile__play {
	width: 52px;
	height: 52px;
	color: #fff;
	background: rgba(20, 55, 78, .55);
	border: 1px solid rgba(255, 255, 255, .75);
	border-radius: 50%;
	transform: none;
	font-size: 13px;
	transition: transform 200ms ease, background-color 200ms ease;
}

.site-main--home .video-tile:hover .video-tile__play {
	transform: scale(1.06);
	background: var(--qca-red);
	border-color: var(--qca-red);
}

/* 硬阴影（12px/16px 实色偏移）只在部分卡片出现 → 统一成纸片轻投影 */
.site-main--home .video-tile,
.site-main--home .video-tile--1 {
	box-shadow: 0 2px 0 rgba(20, 55, 78, .04), 0 12px 28px rgba(20, 55, 78, .08);
}

/* ==========================================================================
   11) 射击谱系索引
   --------------------------------------------------------------------------
   3D 场景里的照片和姓名画在 canvas 上，搜索引擎与读屏软件都读不到。
   这份真实 HTML 列表补上可读性，同时把授权说明落在页面上。
   ========================================================================== */
.qca-scroll-studio__intro .qca-lineage-credits {
	margin: 26px 0 0;
	padding: 16px 0 0;
	border-top: 1px solid rgba(21, 59, 84, .14);
	list-style: none;
}

.qca-scroll-studio__intro .qca-lineage-credits__item {
	display: flex;
	gap: 10px;
	align-items: baseline;
	margin: 0 0 5px;
	font-size: 11.5px;
	line-height: 1.6;
}

.qca-scroll-studio__intro .qca-lineage-credits__name {
	flex: 0 0 auto;
	color: var(--qca-ink);
	font-weight: 700;
	letter-spacing: .04em;
}

.qca-scroll-studio__intro .qca-lineage-credits__detail {
	color: #587283;
	letter-spacing: .01em;
}

.qca-scroll-studio__intro .qca-lineage-credits__note {
	margin: 10px 0 0;
	color: #7A8F9C;
	font-size: 10.5px;
	letter-spacing: .06em;
}

/* ==========================================================================
   12) 灯箱
   ========================================================================== */
.qca-lb {
	position: fixed;
	inset: 0;
	z-index: 99999;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 24px;
	background: rgba(10, 24, 33, .93);
	-webkit-backdrop-filter: blur(6px);
	backdrop-filter: blur(6px);
}

.qca-lb[hidden] {
	display: none;
}

.qca-lb__figure {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 14px;
	max-width: min(1180px, 92vw);
	max-height: 88vh;
	margin: 0;
}

.qca-lb__img {
	display: block;
	width: auto;
	max-width: 100%;
	height: auto;
	max-height: 76vh;
	object-fit: contain;
	border-radius: 6px;
	box-shadow: 0 24px 60px rgba(0, 0, 0, .5);
}

.qca-lb__caption {
	color: rgba(255, 255, 255, .88);
	font-size: 14px;
	letter-spacing: .04em;
	line-height: 1.6;
	text-align: center;
}

.qca-lb__close {
	position: absolute;
	top: 18px;
	right: 22px;
	width: 44px;
	height: 44px;
	padding: 0;
	color: #fff;
	background: rgba(255, 255, 255, .12);
	border: 1px solid rgba(255, 255, 255, .35);
	border-radius: 50%;
	font-size: 22px;
	line-height: 1;
	cursor: pointer;
	transition: background-color 160ms ease;
}

.qca-lb__close:hover,
.qca-lb__close:focus-visible {
	background: rgba(255, 255, 255, .24);
}

html.qca-lb-open {
	overflow: hidden;
}

/* ==========================================================================
   13) 可选：区块节奏统一
   --------------------------------------------------------------------------
   ⚠️ 这一段会改变版式（不只是颜色）。主题里 .section 的 padding-top 在
      76/82/104/124 之间跳，统一到 112 会让"呼吸"一致，但也可能让某些
      区块之间变空。觉得变松了，就把这一段取消注释再改小一点。
   ========================================================================== */
/*
.site-main--home .section { padding-top: 112px; padding-bottom: 112px; }
@media (max-width: 900px) {
	.site-main--home .section { padding-top: 72px; padding-bottom: 72px; }
}
*/

/* ==========================================================================
   14) 移动端 / 平板修正（1.9.1）
   --------------------------------------------------------------------------
   这一节是"自检发现的问题"的修复，集中放这里，方便回滚与对照。

   自检结论回顾：
     · 平板 768–1100 是设计盲区（home-refinement 只有 ≤1100 与 ≤767 两档）
     · 作品集 3 张图在平板上被排成 2+1，第三张落单
     · 手机上有 4 处触感问题：字号过小、hover 粘滞、灯箱跳动、点击区太矮
   ========================================================================== */

/* --------------------------------------------------------------------------
   14.1 平板作品集：2 列 + 3 张 = 第三张落单 → 改「1 大 2 小」
   第一张横跨两列并压扁成 16:9，后两张在下方并排，行末不留空格。
   （只有 2 张时会变成"1 大 + 1 小"，仍比 2+1 好读；只有 1 张时是一张通栏。）
   -------------------------------------------------------------------------- */
@media (min-width: 768px) and (max-width: 1100px) {
	.site-main--home .qca-gallery--home {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.site-main--home .qca-gallery--home .qca-gallery-item:first-child {
		grid-column: 1 / -1;
	}

	.site-main--home .qca-gallery--home .qca-gallery-item:first-child .qca-gallery-item__link {
		aspect-ratio: 16 / 9;
	}
}

/* --------------------------------------------------------------------------
   14.2 灯箱：iOS Safari 地址栏伸缩时 vh 会跳，优先用 dvh（不支持的浏览器退回 vh）
   -------------------------------------------------------------------------- */
.qca-lb__img {
	max-height: 76vh;
	max-height: min(76vh, 76dvh);
}

@media (max-width: 767px) {
	.qca-lb {
		padding: 14px;
	}

	.qca-lb__figure {
		max-width: 100%;
		gap: 10px;
	}

	.qca-lb__img {
		max-height: 70vh;
		max-height: min(70vh, 70dvh);
	}

	.qca-lb__close {
		top: 10px;
		right: 10px;
		width: 40px;
		height: 40px;
	}
}

/* --------------------------------------------------------------------------
   14.3 射击谱系索引：手机上 11.5px / 10.5px 太小
   -------------------------------------------------------------------------- */
@media (max-width: 767px) {
	.qca-scroll-studio__intro .qca-lineage-credits__item {
		font-size: 13px;
		line-height: 1.7;
	}

	.qca-scroll-studio__intro .qca-lineage-credits__note {
		font-size: 11.5px;
	}
}

/* --------------------------------------------------------------------------
   14.4 视频角标：手机上 11px 偏小，且离边缘太近
   -------------------------------------------------------------------------- */
@media (max-width: 767px) {
	.site-main--home .video-tile .video-tile__badge {
		top: 10px;
		right: 10px;
		font-size: 12px;
	}

	.site-main--home .video-tile .video-tile__duration {
		font-size: 12px;
	}
}

/* --------------------------------------------------------------------------
   14.5 触屏：hover 状态会"粘"在卡片上
   手机点一下，卡片会保持左移 4px、左侧竖线保持展开，看起来像坏了。
   触屏设备（hover: none 或 pointer: coarse）一律取消这些位移。
   -------------------------------------------------------------------------- */
@media (hover: none), (pointer: coarse) {
	.site-main--home .editorial-row:hover {
		transform: none;
	}

	.site-main--home .editorial-row:hover::before {
		transform: scaleY(0);
	}

	.site-main--home .button:hover {
		transform: none;
	}

	.site-main--home .video-tile:hover .video-tile__play {
		transform: none;
		border-color: rgba(255, 255, 255, .75);
		background: rgba(20, 55, 78, .55);
	}

	.site-main--home .qca-gallery--home .qca-gallery-item:hover img {
		transform: none;
	}
}

/* --------------------------------------------------------------------------
   14.6 触控目标：13px 的「阅读全文」链接只有约 20px 高，手指容易点偏
   -------------------------------------------------------------------------- */
@media (max-width: 767px) {
	.site-main--home .editorial-row__action a,
	.site-main--home .section-heading__link {
		display: inline-flex;
		align-items: center;
		min-height: 36px;
	}
}

/* --------------------------------------------------------------------------
   14.7 首屏顶栏小字：手机上 .62rem（10.5px）的全大写英文基本读不清
   -------------------------------------------------------------------------- */
@media (max-width: 767px) {
	.site-main--home .hero__topline {
		font-size: .72rem;
		letter-spacing: .06em;
	}
}

/* ==========================================================================
   15) 射击导航员：桌面端修复 + 3D 卷轴化（1.9.2）
   --------------------------------------------------------------------------
   两个问题：

   ① 桌面端根本看不到它。
      style.css 里 `.qca-guide-float-wrap { display: none }` 是基础状态，
      `display: block` 只写在 `@media (max-width: 767px)` 里 ——
      也就是说这个组件当初是按「手机专属」写的。
      面板的 position / width / max-height 同样只在手机断点内，
      所以光解除隐藏，面板会散架。

   ② 悬浮按钮只是一个 60px 圆形头像，谈不上"立体角色"。
      这里改成：透明角色站在一卷会展开的纸卷上，背景是俯视的靶环，
      并复用主题里已有的 `[data-guide-tilt]` 倾斜脚本（theme.js 里已有），
      指针移动时角色会绕 X/Y 轴倾斜、靶环与角色产生视差。
   ========================================================================== */

/* --------------------------------------------------------------------------
   15.1 桌面端：显示 + 面板定位
   -------------------------------------------------------------------------- */
@media (min-width: 768px) {
	.qca-guide-float-wrap {
		position: fixed;
		z-index: 40;
		right: max(22px, env(safe-area-inset-right));
		bottom: max(22px, env(safe-area-inset-bottom));
		display: block;
	}

	.qca-guide-panel {
		position: absolute;
		z-index: 5;
		right: 0;
		bottom: calc(100% + 16px);
		width: 340px;
		max-height: min(70vh, 520px);
		padding: 18px;
		overflow-y: auto;
		border-top: 3px solid var(--qca-orange);
	}
}

/* --------------------------------------------------------------------------
   15.2 按钮本体：从"圆形头像"改成"角色 + 纸卷"的立牌
   -------------------------------------------------------------------------- */
.qca-guide-float {
	position: relative;
	display: block;
	width: 84px;
	height: 112px;
	padding: 0;
	overflow: visible;
	color: var(--qca-ink);
	background: transparent;
	border: 0;
	border-radius: 0;
	box-shadow: none;
	cursor: pointer;
	perspective: 520px;
	-webkit-tap-highlight-color: transparent;
}

/* 角色身后的柔光，替代原来的白色圆底，避免透明 PNG 直接贴在页面上 */
.qca-guide-float::before {
	position: absolute;
	left: 50%;
	bottom: 8%;
	width: 96%;
	aspect-ratio: 1;
	background: radial-gradient(circle, rgba(31, 122, 140, .18), rgba(31, 122, 140, 0) 68%);
	border-radius: 50%;
	content: "";
	transform: translateX(-50%);
	pointer-events: none;
}

@media (min-width: 768px) {
	.qca-guide-float {
		width: 112px;
		height: 150px;
	}
}

/* --------------------------------------------------------------------------
   15.3 3D 舞台：靶环（背景）+ 角色（前景）+ 纸卷（底面）
   -------------------------------------------------------------------------- */
.qca-guide-float__scene {
	position: absolute;
	inset: 0;
	display: block;
	transform-style: preserve-3d;
}

/* 俯视靶环 */
.qca-guide-float__rings {
	position: absolute;
	left: 50%;
	bottom: 15%;
	width: 92%;
	aspect-ratio: 1;
	opacity: .6;
	transform: translateX(-50%) translateZ(-30px) rotateX(70deg);
	pointer-events: none;
}

.qca-guide-float__rings i {
	position: absolute;
	inset: 0;
	display: block;
	border: 1px solid rgba(31, 122, 140, .42);
	border-radius: 50%;
}

.qca-guide-float__rings i:nth-child(2) {
	inset: 20%;
	border-color: rgba(200, 65, 43, .34);
}

.qca-guide-float__rings i:nth-child(3) {
	inset: 40%;
	border-color: rgba(20, 55, 78, .26);
}

/* 角色：承接 theme.js 写入的 --guide-* 变量，实现跟随指针的倾斜与视差 */
.qca-guide-float__person {
	position: absolute;
	top: 2%;
	right: 2%;
	bottom: 14%;
	left: 2%;
	display: block;
	transform: translate3d(var(--guide-shift-x, 0px), var(--guide-shift-y, 0px), 26px)
		rotateX(var(--guide-rotate-x, 0deg))
		rotateY(var(--guide-rotate-y, 0deg));
	transform-origin: 50% 90%;
	filter: drop-shadow(-8px 10px 9px rgba(20, 55, 78, .26));
	transition: transform 160ms ease-out;
	pointer-events: none;
}

.qca-guide-float__figure,
.qca-guide-float .qca-guide-figure--placeholder {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: contain;
	object-position: center bottom;
}

/* 纸卷：默认收着，hover / 展开时滚开 */
.qca-guide-float__scroll {
	position: absolute;
	left: 50%;
	bottom: 6%;
	width: 36%;
	height: 12px;
	background: linear-gradient(180deg, #ffffff, #f1f7f8 70%, #dde9ec);
	border-radius: 2px;
	box-shadow: 0 7px 14px rgba(20, 55, 78, .16);
	transform: translateX(-50%) translateZ(16px);
	transition: width 340ms cubic-bezier(.2, .7, .2, 1);
	pointer-events: none;
}

/* 两端的卷轴杆 */
.qca-guide-float__scroll::before,
.qca-guide-float__scroll::after {
	position: absolute;
	top: -3px;
	bottom: -3px;
	width: 7px;
	border-radius: 4px;
	background: linear-gradient(180deg, #d8583f, #a5331f);
	box-shadow: 0 3px 8px rgba(165, 51, 31, .32);
	content: "";
}

.qca-guide-float__scroll::before {
	left: -3px;
}

.qca-guide-float__scroll::after {
	right: -3px;
}

.qca-guide-float:hover .qca-guide-float__scroll,
.qca-guide-float:focus-visible .qca-guide-float__scroll,
.qca-guide-float[aria-expanded="true"] .qca-guide-float__scroll {
	width: 94%;
}

@media (min-width: 768px) {
	.qca-guide-float__scroll {
		height: 14px;
	}
}

/* --------------------------------------------------------------------------
   15.4 交互提示：hover 时在左侧浮出「导航」
   -------------------------------------------------------------------------- */
.qca-guide-float__hint {
	position: absolute;
	top: 46%;
	right: calc(100% + 12px);
	padding: 6px 10px;
	color: #fff;
	background: rgba(20, 55, 78, .92);
	border-radius: 6px;
	font-size: 12px;
	letter-spacing: .08em;
	white-space: nowrap;
	opacity: 0;
	transform: translate(6px, -50%);
	transition: opacity 160ms ease, transform 160ms ease;
	pointer-events: none;
}

.qca-guide-float:hover .qca-guide-float__hint,
.qca-guide-float:focus-visible .qca-guide-float__hint {
	opacity: 1;
	transform: translate(0, -50%);
}

/* 手机没有 hover，不显示提示，避免压住内容 */
@media (max-width: 767px) {
	.qca-guide-float__hint {
		display: none;
	}
}

/* --------------------------------------------------------------------------
   15.5 动效：呼吸浮动 + 靶环缓慢旋转（尊重"减少动态"偏好）
   -------------------------------------------------------------------------- */
@media (prefers-reduced-motion: no-preference) {
	.qca-guide-float__person {
		animation: qca-guide-float-bob 4.6s ease-in-out infinite;
	}

	.qca-guide-float__rings {
		animation: qca-guide-float-rings 22s linear infinite;
	}

	@keyframes qca-guide-float-bob {
		0%, 100% { translate: 0 0; }
		50% { translate: 0 -4px; }
	}

	@keyframes qca-guide-float-rings {
		from { transform: translateX(-50%) translateZ(-30px) rotateX(70deg) rotate(0deg); }
		to { transform: translateX(-50%) translateZ(-30px) rotateX(70deg) rotate(360deg); }
	}
}

.qca-guide-float:hover .qca-guide-float__rings,
.qca-guide-float:focus-visible .qca-guide-float__rings {
	opacity: .85;
}

/* 键盘焦点：原来 3px 描边套在圆角 50% 上，现在改成圆角矩形 */
.qca-guide-float:focus-visible {
	border-radius: 14px;
	outline: 3px solid var(--qca-orange);
	outline-offset: 6px;
}

/* ==========================================================================
   16) 全站统一 + 内页组件（1.9.3）
   --------------------------------------------------------------------------
   1.9.1/1.9.2 的视觉层都挂在 `.site-main--home` 上，所以点进内页，
   配色和排版会退回旧版：眉标又是 12px 橙字（对比度 1.94:1）、
   正文 16px、按钮 46px/6px 圆角 —— 那种"突然变粗糙"的感觉就是这么来的。

   这一节把 token 层面的东西扩到 `.site-main`（含所有内页），
   并把 1.9.3 新增的几个组件补上样式。
   ========================================================================== */

/* --------------------------------------------------------------------------
   16.1 眉标 / 按钮 / 正文：内页与首页对齐
   -------------------------------------------------------------------------- */
.site-main .eyebrow {
	margin: 0 0 18px;
	color: var(--qca-orange);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .14em;
	text-transform: uppercase;
}

.site-main .button {
	min-height: 52px;
	padding: 0 26px;
	border-radius: 8px;
	font-size: 16px;
	font-weight: 700;
	letter-spacing: .02em;
	box-shadow: 0 6px 16px rgba(200, 65, 43, .16);
}

.site-main .button:hover {
	background: var(--qca-red-dark);
	border-color: var(--qca-red-dark);
}

.site-main .button--secondary {
	color: var(--qca-ink);
	background: #fff;
	border-color: #CFDFE3;
	box-shadow: none;
}

/* 内页的书信体正文：行距和字号跟首页拉平 */
.site-main .entry-content p,
.site-main .profile-story__content p,
.site-main .editorial-row p {
	font-size: 16px;
	line-height: 1.9;
}

/* --------------------------------------------------------------------------
   16.2 作品集：内页也用同一套图注与比例
   -------------------------------------------------------------------------- */
.site-main .qca-gallery .qca-gallery-item__link {
	aspect-ratio: 3 / 2;
}

.site-main .qca-gallery-item__caption {
	padding: 13px 15px 16px;
	background: #fff;
}

.site-main .qca-gallery-item__category {
	color: var(--qca-orange);
	font-size: 13px;
	font-weight: 700;
	letter-spacing: .12em;
	line-height: 1.4;
	text-transform: uppercase;
}

.site-main .qca-gallery-item__title {
	margin: 6px 0 0;
	color: var(--qca-ink);
	font-size: 15px;
	font-weight: 600;
	line-height: 1.5;
	letter-spacing: .01em;
}

.site-main .qca-gallery-item__year {
	margin-left: 8px;
	color: var(--qca-muted);
	font-size: 12px;
	font-weight: 500;
	letter-spacing: .04em;
}

/* --------------------------------------------------------------------------
   16.3 关于我：执教战绩（四个大数字）
   -------------------------------------------------------------------------- */
.profile-honors {
	padding: 0 0 8px;
}

.profile-honors__grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 1px;
	margin-top: 4px;
	background: var(--qca-line);
	border-top: 1px solid var(--qca-line);
	border-bottom: 1px solid var(--qca-line);
}

.profile-honors__item {
	display: grid;
	gap: 6px;
	padding: 24px 20px;
	background: #fff;
}

.profile-honors__item strong {
	color: var(--qca-ink);
	font-size: clamp(2.2rem, 3.6vw, 3.1rem);
	font-weight: 800;
	line-height: 1;
	letter-spacing: -.02em;
	font-variant-numeric: tabular-nums;
}

.profile-honors__item em {
	margin-left: 5px;
	color: var(--qca-muted);
	font-size: 14px;
	font-style: normal;
	font-weight: 600;
}

.profile-honors__item span {
	color: var(--qca-muted);
	font-size: 13px;
	letter-spacing: .06em;
}

@media (max-width: 767px) {
	.profile-honors__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.profile-honors__item {
		padding: 18px 16px;
	}
}

/* --------------------------------------------------------------------------
   16.4 关于我：资质标签（原来是一整句用「·」串起来的长句）
   -------------------------------------------------------------------------- */
.profile-credentials-block {
	margin-top: 26px;
	padding-top: 18px;
	border-top: 1px solid var(--qca-line);
}

.profile-credential-chips {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.profile-credential-chips li {
	padding: 6px 12px;
	color: var(--qca-ink);
	background: var(--qca-panel-2);
	border-radius: 4px;
	font-size: 13px;
	line-height: 1.6;
	letter-spacing: .02em;
}

/* --------------------------------------------------------------------------
   16.5 关于我：另一个身份（AI 影像）
   -------------------------------------------------------------------------- */
.profile-alt {
	display: grid;
	grid-template-columns: 180px minmax(0, 1fr);
	gap: 50px;
	padding: 44px 0;
	border-top: 1px solid var(--qca-line);
}

.profile-alt__rail {
	display: grid;
	align-content: start;
	gap: 10px;
	color: var(--qca-muted);
	font-size: 12px;
	font-weight: 800;
	letter-spacing: .08em;
}

.profile-alt__rail span:first-child {
	color: var(--qca-orange);
	font-size: 3.5rem;
	font-weight: 800;
	line-height: 1;
}

.profile-alt__body h2 {
	margin: 0 0 12px;
	color: var(--qca-ink);
	font-size: clamp(1.6rem, 2.4vw, 2.2rem);
	letter-spacing: -.01em;
}

.profile-alt__body p {
	max-width: 760px;
	margin: 0;
	color: #43616F;
	font-size: 16px;
	line-height: 1.9;
}

@media (max-width: 900px) {
	.profile-alt {
		grid-template-columns: 1fr;
		gap: 18px;
		padding: 32px 0;
	}

	.profile-alt__rail {
		display: flex;
		align-items: baseline;
		gap: 14px;
	}

	.profile-alt__rail span:first-child {
		font-size: 2rem;
	}
}

/* --------------------------------------------------------------------------
   16.6 联系页：训练信息条 + 三步流程
   -------------------------------------------------------------------------- */
.contact-facts {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 1px;
	margin: 0 0 40px;
	background: var(--qca-line);
	border-top: 1px solid var(--qca-line);
	border-bottom: 1px solid var(--qca-line);
}

.contact-facts div {
	display: grid;
	gap: 6px;
	padding: 20px 22px;
	background: #fff;
}

.contact-facts span {
	color: var(--qca-muted);
	font-size: 12px;
	letter-spacing: .08em;
}

.contact-facts strong {
	color: var(--qca-ink);
	font-size: 16px;
	font-weight: 600;
	line-height: 1.6;
}

.contact-steps {
	padding: 44px 0 8px;
	border-top: 1px solid var(--qca-line);
}

.contact-steps h2 {
	margin: 0 0 26px;
	color: var(--qca-ink);
	font-size: clamp(1.8rem, 2.6vw, 2.4rem);
	letter-spacing: -.01em;
}

.contact-steps__list {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 26px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.contact-steps__list li {
	display: grid;
	gap: 10px;
	padding-top: 16px;
	border-top: 2px solid var(--qca-ink);
}

.contact-steps__no {
	color: var(--qca-orange);
	font-size: 12px;
	font-weight: 800;
	letter-spacing: .12em;
	font-variant-numeric: tabular-nums;
}

.contact-steps__list strong {
	color: var(--qca-ink);
	font-size: 17px;
	font-weight: 700;
	line-height: 1.5;
}

.contact-steps__list p {
	margin: 0;
	color: #43616F;
	font-size: 15px;
	line-height: 1.85;
}

.contact-steps__note {
	margin: 26px 0 0;
	color: var(--qca-muted);
	font-size: 13px;
	letter-spacing: .02em;
}

@media (max-width: 900px) {
	.contact-facts,
	.contact-steps__list {
		grid-template-columns: 1fr;
	}

	.contact-facts {
		margin-bottom: 28px;
	}
}

/* --------------------------------------------------------------------------
   16.7 龙虎榜：统计口径行
   -------------------------------------------------------------------------- */
.qca-training-spec {
	margin: 10px 0 0;
	color: var(--qca-muted);
	font-size: 13px;
	line-height: 1.7;
	letter-spacing: .02em;
	font-variant-numeric: tabular-nums;
}

/* --------------------------------------------------------------------------
   附：刻意「不修」的两件事（记录决策，避免以后误改）

   1. 手机端文章摘要保持 16px。
      它会覆盖主题移动端的 .85rem（13.6px），代价是列表每条变高；
      换来的是 35–50 岁家长不用凑近看。这是有意的取舍，不是遗漏。

   2. 手机端作品集用 3:2 而不是主题原本的 4:3。
      3:2 更贴近照片原始比例，竖屏下留白更少。

   已知但暂不处理：
   · 主题断点 767 与 768 并存（差 1px 的缝隙），要去掉得动 style.css 的
     10 个断点，收益远小于风险，留到下一次大改。
   · 首页 4 张生成图已从 7.84MB 压到 0.43MB（1200×800 / q78 / 渐进式），
     视觉无损，但仍是 JPEG；要再快就得转 WebP 并改模板引用。
   -------------------------------------------------------------------------- */


/* ==========================================================================
   17) 训练成长轨迹：结论卡 + 图表（1.9.5）
   --------------------------------------------------------------------------
   旧图表的问题：只有一条"5次平均"粗线 + 灰色小点，没有结论、没有参考线、
   tooltip 是默认黑块。这一节配合重写后的 training-history.js。
   ========================================================================== */

/* 17.1 结论卡：进步 / 退步 / 基本持平，一眼可读 */
.qca-verdict {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: 24px 32px;
	align-items: center;
	margin: 0 0 22px;
	padding: 22px 24px;
	background: #fff;
	border: 1px solid var(--qca-line);
	border-left: 4px solid #8FA6B2;
	border-radius: 6px;
}

.qca-verdict--better { border-left-color: #1F7A8C; }
.qca-verdict--worse { border-left-color: #C8412B; }
.qca-verdict--steady,
.qca-verdict--waiting { border-left-color: #8FA6B2; }

.qca-verdict__eyebrow {
	margin: 0 0 8px;
	color: var(--qca-muted);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .14em;
	text-transform: uppercase;
}

.qca-verdict__title {
	display: flex;
	align-items: baseline;
	flex-wrap: wrap;
	gap: 6px 14px;
	margin: 0;
	line-height: 1.1;
}

.qca-verdict__word {
	color: var(--qca-ink);
	font-size: 32px;
	font-weight: 800;
	letter-spacing: -.02em;
}

.qca-verdict--better .qca-verdict__word { color: #1F7A8C; }
.qca-verdict--worse .qca-verdict__word { color: #C8412B; }

.qca-verdict__delta {
	color: var(--qca-ink);
	font-size: 20px;
	font-weight: 700;
	letter-spacing: -.01em;
	font-variant-numeric: tabular-nums;
}

.qca-verdict__desc {
	margin: 10px 0 0;
	color: #43616F;
	font-size: 14px;
	line-height: 1.7;
}

.qca-verdict__math {
	margin: 4px 0 0;
	color: var(--qca-muted);
	font-size: 13px;
	font-variant-numeric: tabular-nums;
}

.qca-verdict__math span { margin-left: 4px; }

.qca-verdict__compare {
	display: flex;
	align-items: center;
	gap: 14px;
	padding-left: 24px;
	border-left: 1px solid var(--qca-line);
}

.qca-verdict__compare div {
	display: grid;
	gap: 4px;
	min-width: 92px;
}

.qca-verdict__compare span {
	color: var(--qca-muted);
	font-size: 11px;
	letter-spacing: .06em;
	white-space: nowrap;
}

.qca-verdict__compare strong {
	color: var(--qca-ink);
	font-size: 24px;
	font-weight: 800;
	line-height: 1.1;
	font-variant-numeric: tabular-nums;
}

.qca-verdict__compare em {
	margin-left: 3px;
	color: var(--qca-muted);
	font-size: 12px;
	font-style: normal;
	font-weight: 600;
}

.qca-verdict__compare small {
	color: #8FA6B2;
	font-size: 10.5px;
	white-space: nowrap;
}

.qca-verdict__arrow {
	color: #B9CBD3 !important;
	font-size: 18px !important;
	letter-spacing: 0 !important;
}

@media (max-width: 900px) {
	.qca-verdict {
		grid-template-columns: 1fr;
	}

	.qca-verdict__compare {
		padding-left: 0;
		padding-top: 16px;
		border-left: 0;
		border-top: 1px solid var(--qca-line);
	}

	.qca-verdict__word {
		font-size: 26px;
	}
}

/* 17.2 图表容器与图例 */
.qca-history-canvas {
	height: 340px;
}

@media (max-width: 767px) {
	.qca-history-canvas {
		height: 260px;
	}
}

.qca-progress-legend__actual::before {
	width: 9px;
	height: 9px;
	background: #fff;
	border: 2px solid #1F7A8C;
}

.qca-progress-legend__average::before {
	width: 22px;
	height: 0;
	background: none;
	border-top: 2px dashed rgba(200, 65, 43, .75);
}

.qca-progress-legend__best::before {
	width: 22px;
	height: 0;
	background: none;
	border-top: 1px dashed rgba(93, 117, 133, .6);
}

.qca-progress-legend__best[hidden] { display: none; }

/* 17.3 自定义 tooltip */
.qca-tip {
	position: absolute;
	z-index: 5;
	display: grid;
	gap: 4px;
	min-width: 132px;
	padding: 12px 14px;
	color: var(--qca-ink);
	background: #fff;
	border: 1px solid var(--qca-line);
	border-radius: 10px;
	box-shadow: 0 12px 28px rgba(20, 55, 78, .14);
	pointer-events: none;
}

.qca-tip[hidden] { display: none; }

.qca-tip__date {
	color: var(--qca-muted);
	font-size: 11px;
	letter-spacing: .06em;
	font-variant-numeric: tabular-nums;
}

.qca-tip__badge {
	margin-left: 6px;
	padding: 1px 6px;
	color: #fff;
	background: #C8412B;
	border-radius: 3px;
	font-size: 10px;
	font-style: normal;
	letter-spacing: .04em;
}

.qca-tip__score {
	color: var(--qca-ink);
	font-size: 24px;
	font-weight: 800;
	line-height: 1.1;
	font-variant-numeric: tabular-nums;
}

.qca-tip__score small {
	margin-left: 3px;
	color: var(--qca-muted);
	font-size: 12px;
	font-weight: 600;
}

.qca-tip__delta {
	color: var(--qca-muted);
	font-size: 12px;
	line-height: 1.5;
}

.qca-tip__delta.is-better { color: #1F7A8C; }
.qca-tip__delta.is-worse { color: #C8412B; }

/* 17.4 滑杆与细节色 */
.qca-progress-inspection input[type="range"] {
	accent-color: #1F7A8C;
}

.qca-progress-inspection p { color: #43616F; }

.qca-progress-axis-note {
	color: var(--qca-muted);
	font-size: 12px;
	letter-spacing: .02em;
}
/* ==========================================================================
   18) 阶段目标：目标线 + 进度条（1.9.6）
   ========================================================================== */
.qca-goal {
	margin: 0 0 22px;
	padding: 18px 20px;
	background: #F8FBFB;
	border: 1px solid var(--qca-line);
	border-radius: 6px;
}

.qca-goal--done {
	background: #F0F7F7;
	border-color: #BFDCDF;
}

.qca-goal__head {
	display: flex;
	align-items: baseline;
	flex-wrap: wrap;
	gap: 6px 12px;
}

.qca-goal__label {
	color: var(--qca-muted);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .14em;
	text-transform: uppercase;
}

.qca-goal__target {
	color: var(--qca-ink);
	font-size: 22px;
	font-weight: 800;
	letter-spacing: -.01em;
	font-variant-numeric: tabular-nums;
}

.qca-goal__status {
	margin-left: auto;
	color: #C8412B;
	font-size: 14px;
	font-weight: 700;
	font-variant-numeric: tabular-nums;
}

.qca-goal--done .qca-goal__status {
	color: #1F7A8C;
}

.qca-goal__bar {
	height: 8px;
	margin: 12px 0 8px;
	background: #E4EDEF;
	border-radius: 999px;
	overflow: hidden;
}

.qca-goal__bar > span {
	display: block;
	height: 100%;
	background: linear-gradient(90deg, #C8412B, #E0715B);
	border-radius: 999px;
	transition: width .4s ease;
}

.qca-goal--done .qca-goal__bar > span {
	background: linear-gradient(90deg, #1F7A8C, #3FA3AE);
}

.qca-goal__meta {
	margin: 0;
	color: var(--qca-muted);
	font-size: 12.5px;
	letter-spacing: .01em;
	font-variant-numeric: tabular-nums;
}

@media (max-width: 767px) {
	.qca-goal__status {
		margin-left: 0;
		width: 100%;
	}

	.qca-goal__target {
		font-size: 19px;
	}
}
/* ==========================================================================
   19) 训练轨迹：移动端 / 平板重排（1.9.10）
   --------------------------------------------------------------------------
   移动端实测问题：
     1. 结论卡的「前3次平均 → 最近3次平均」横向溢出，右侧数字和日期被切掉
     2. 图例三项挤到第二行只剩「个人最佳」，孤立难看
     3. 图表里数值标签贴着右边缘，和坐标轴文字叠在一起
     4. 指标卡在手机上只留 2 张，第 3、4 张被隐藏，信息不完整
   平板（768–1023）问题：结论卡仍用左右两栏，右侧对比被压到很窄。
   ========================================================================== */

/* ---------- 19.1 结论卡：对比栏允许换行，不再溢出 ---------- */
.qca-verdict__compare {
	flex-wrap: wrap;
	row-gap: 12px;
}

.qca-verdict__compare div {
	flex: 1 1 0;
	min-width: 0;
}

.qca-verdict__compare span,
.qca-verdict__compare small {
	white-space: normal;
	overflow-wrap: anywhere;
}

@media (max-width: 1023px) {
	.qca-verdict {
		grid-template-columns: 1fr;
		gap: 18px;
	}

	.qca-verdict__compare {
		padding-left: 0;
		padding-top: 16px;
		border-left: 0;
		border-top: 1px solid var(--qca-line);
	}
}

/* ---------- 19.2 手机：结论卡紧凑化 ---------- */
@media (max-width: 767px) {
	.qca-verdict {
		padding: 18px 16px;
		gap: 14px;
	}

	.qca-verdict__eyebrow {
		font-size: 10.5px;
		letter-spacing: .1em;
		margin-bottom: 6px;
	}

	.qca-verdict__word {
		font-size: 26px;
	}

	.qca-verdict__delta {
		font-size: 17px;
	}

	.qca-verdict__desc {
		margin-top: 8px;
		font-size: 13.5px;
		line-height: 1.65;
	}

	.qca-verdict__math {
		font-size: 12.5px;
	}

	/* 对比栏改成 三列网格：数字左、箭头中、数字右，日期换行不挤压 */
	.qca-verdict__compare {
		display: grid;
		grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
		align-items: end;
		gap: 6px 10px;
	}

	.qca-verdict__compare div {
		min-width: 0;
		gap: 2px;
	}

	.qca-verdict__compare strong {
		font-size: 20px;
	}

	.qca-verdict__compare span {
		font-size: 10.5px;
		letter-spacing: .02em;
	}

	.qca-verdict__compare small {
		font-size: 10px;
		line-height: 1.45;
	}

	.qca-verdict__compare div:last-of-type {
		text-align: right;
	}

	.qca-verdict__arrow {
		font-size: 15px !important;
		align-self: center;
	}
}

/* ---------- 19.3 目标卡：手机竖排，信息不挤 ---------- */
@media (max-width: 767px) {
	.qca-goal {
		padding: 16px;
		margin-bottom: 18px;
	}

	.qca-goal__head {
		gap: 4px 10px;
	}

	.qca-goal__target {
		font-size: 19px;
	}

	.qca-goal__status {
		margin-left: 0;
		width: 100%;
		font-size: 13px;
	}

	.qca-goal__bar {
		margin: 10px 0 8px;
	}

	.qca-goal__meta {
		font-size: 11.5px;
		line-height: 1.6;
	}
}

/* ---------- 19.4 指标卡：手机上 2×2 全部显示 ---------- */
@media (max-width: 900px) {
	.qca-history-stats {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.qca-history-stats > div:nth-child(2n) {
		border-right: 0;
	}

	.qca-history-stats > div:nth-child(n+3) {
		display: grid;
		border-top: 1px solid var(--qca-line);
	}
}

@media (max-width: 767px) {
	.qca-history-stats > div {
		padding: 16px 14px;
	}

	.qca-history-stats dd {
		font-size: 22px;
		margin: 6px 0;
	}

	.qca-history-stats dt {
		font-size: 11.5px;
	}

	.qca-history-stats span {
		font-size: 11px;
		line-height: 1.6;
	}
}

/* ---------- 19.5 工具栏、图例、图表 ---------- */
@media (max-width: 767px) {
	.qca-progress-toolbar {
		gap: 10px;
	}

	.qca-progress-modes {
		display: flex;
		width: 100%;
	}

	.qca-progress-modes label {
		flex: 1 1 0;
		justify-content: center;
		text-align: center;
	}

	.qca-progress-axis-note {
		font-size: 11px;
		line-height: 1.5;
		letter-spacing: 0;
	}

	.qca-progress-legend {
		gap: 8px 14px;
		font-size: 11px;
		margin-bottom: 14px;
	}

	.qca-progress-legend span {
		gap: 6px;
	}

	.qca-history-canvas {
		height: 250px;
	}

	.qca-progress-inspection {
		margin-top: 18px;
		padding-top: 16px;
		gap: 14px;
	}

	.qca-progress-inspection strong {
		font-size: 20px;
	}
}

@media (min-width: 768px) and (max-width: 1023px) {
	.qca-history-canvas {
		height: 300px;
	}
}

/* ---------- 19.6 长日期、长学员名：一律允许换行 ---------- */
.qca-verdict,
.qca-goal,
.qca-history-stats,
.qca-progress-inspection {
	overflow-wrap: anywhere;
}