/* ==========================================================================
 * 银河家史 · 开屏动画 + 新首屏（.zhero）+ 栏目导航
 * 中式深蓝 + 鎏金，主标大字、副标小字、视频/轮播背景
 * ========================================================================== */

/* ---------- 开屏动画 ---------- */
.splash {
  position: fixed; inset: 0; z-index: 9999;
  display: flex; align-items: center; justify-content: center;
  background: radial-gradient(130% 120% at 50% 18%, #1a2750 0%, #0c1226 55%, #060912 100%);
  overflow: hidden; transition: opacity .8s ease, visibility .8s ease;
}
.splash.hide { opacity: 0; visibility: hidden; pointer-events: none; }
.splash-inner { position: relative; z-index: 2; text-align: center; padding: 0 20px;
  animation: splashIn .9s cubic-bezier(.2,.7,.2,1) both; }
.splash-seal {
  width: 92px; height: 92px; margin: 0 auto 22px; border-radius: 16px;
  background: linear-gradient(135deg, #b8392f, #9e2b25); color: #f7e9c9;
  display: flex; align-items: center; justify-content: center;
  font-size: 30px; font-weight: 700; line-height: 1.02; letter-spacing: 2px;
  font-family: "Noto Serif SC", "Songti SC", serif;
  box-shadow: 0 10px 34px rgba(158,43,37,.5), inset 0 0 0 2px rgba(247,233,201,.35);
  animation: sealPop .8s cubic-bezier(.2,.8,.2,1) both;
}
.splash-name {
  font-size: clamp(34px, 7vw, 60px); color: #f3e6c8; letter-spacing: 8px;
  font-family: "Noto Serif SC", "Songti SC", serif; margin: 0;
  text-shadow: 0 4px 22px rgba(0,0,0,.5);
  animation: fadeUp .8s .25s ease both;
}
.splash-en { margin-top: 8px; color: #c9a227; font-size: 13px; letter-spacing: 7px;
  animation: fadeUp .8s .4s ease both; }
.splash-line { width: 64px; height: 2px; margin: 18px auto; border-radius: 2px;
  background: linear-gradient(90deg, transparent, #c9a227, transparent);
  animation: lineIn .8s .5s ease both; }
.splash-tag { color: #d9c79b; font-size: clamp(14px, 2.4vw, 19px); letter-spacing: 4px;
  font-family: "Noto Serif SC", "Songti SC", serif; animation: fadeUp .8s .6s ease both; }
.splash-stars { position: absolute; inset: 0; z-index: 1; pointer-events: none; }
.splash-stars i { position: absolute; background: #fff; border-radius: 50%; opacity: .7;
  animation: twinkle 3s ease-in-out infinite; }
@keyframes splashIn { from { opacity: 0; } to { opacity: 1; } }
@keyframes sealPop { from { transform: scale(.4) rotate(-18deg); opacity: 0; } to { transform: none; opacity: 1; } }
@keyframes fadeUp { from { transform: translateY(16px); opacity: 0; } to { transform: none; opacity: 1; } }
@keyframes lineIn { from { transform: scaleX(0); opacity: 0; } to { transform: scaleX(1); opacity: 1; } }

/* ---------- 首屏 ---------- */
.zhero { position: relative; height: 100vh; min-height: 560px; overflow: hidden;
  background: #611714; display: flex; }
.zh-bg { position: absolute; inset: 0; z-index: 0; }
.zh-slide { position: absolute; inset: 0; background-size: cover; background-position: center;
  opacity: 0; transition: opacity 1.2s ease; transform: scale(1.06); }
.zh-slide.active { opacity: 1; transform: scale(1); }
.zh-video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover;
  opacity: 0; transition: opacity 1s ease; }
.zh-video.active { opacity: 1; }
.zh-veil { position: absolute; inset: 0; z-index: 1;
  background:
    radial-gradient(118% 88% at 50% 44%, rgba(8,11,22,.32) 0%, rgba(8,11,22,.10) 64%, rgba(8,11,22,0) 100%),
    linear-gradient(180deg, rgba(8,10,22,.64) 0%, rgba(8,10,22,.34) 36%, rgba(8,10,22,.52) 74%, rgba(6,8,16,.84) 100%); }
/* 日间家庭实景不做星空叠加（避免元素语意冲突） */
.zhero .stars { display: none; }
.stars { position: absolute; inset: 0; z-index: 1; pointer-events: none; }
.stars i { position: absolute; background: #fff; border-radius: 50%;
  animation: twinkle 3.4s ease-in-out infinite; }
@keyframes twinkle { 0%,100% { opacity: .25; } 50% { opacity: .9; } }

.zhero-inner { position: relative; z-index: 2; width: 100%; max-width: 1180px;
  margin: 0 auto; padding: 0 24px; min-height: 100vh;
  display: flex; flex-direction: column; justify-content: space-between;
  padding-top: 20vh; padding-bottom: 8vh; }
.zhero-copy { text-align: center; }
.hero-slogan {
  margin: 0; font-family: "Noto Serif SC", "Songti SC", serif;
  font-weight: 700; line-height: 1.12; letter-spacing: 4px;
  font-size: clamp(44px, 9.8vw, 120px);
  background: linear-gradient(180deg, #fbe6b8 0%, #e3c067 45%, #c9a227 100%);
  -webkit-background-clip: text; background-clip: text; color: transparent;
  text-shadow: 0 6px 40px rgba(201,162,39,.18);
  animation: sloganIn 1s .15s cubic-bezier(.2,.7,.2,1) both;
}
.hero-sub { margin: 24px auto 0; max-width: 780px; color: #fdf6e6;
  font-family: "Noto Sans SC", "PingFang SC", "Microsoft YaHei", sans-serif;
  font-weight: 700; font-size: clamp(17px, 2.5vw, 24px);
  letter-spacing: 2.5px; line-height: 1.8; min-height: 1.8em;
  text-shadow: 0 2px 16px rgba(0,0,0,.65);
  animation: fadeUp 1s .4s ease both; }
.zhero-foot { text-align: center; margin-top: 30px; }
.hero-cta { display: flex; gap: 14px; justify-content: center; flex-wrap: wrap;
  animation: fadeUp 1s .55s ease both; }
.hero-dots { display: flex; gap: 10px; justify-content: center; margin-top: 22px; }
.hero-dot { width: 9px; height: 9px; border-radius: 50%; border: none; cursor: pointer;
  background: rgba(255,255,255,.35); padding: 0; transition: .25s; }
.hero-dot.active { background: #c9a227; width: 26px; border-radius: 5px; }

/* 左右切换箭头 */
.zh-arrow { position: absolute; top: 50%; transform: translateY(-50%); z-index: 4;
  width: 52px; height: 52px; border-radius: 50%; border: 1px solid rgba(247,233,201,.35);
  background: rgba(74,13,11,.45); color: #f3e6c8; font-size: 20px; line-height: 1;
  cursor: pointer; display: flex; align-items: center; justify-content: center;
  backdrop-filter: blur(4px); transition: .25s; padding: 0 0 3px; }
.zh-arrow:hover { background: rgba(201,162,39,.85); border-color: #c9a227; color: #1c1506; }
.zh-arrow.prev { left: 28px; }
.zh-arrow.next { right: 28px; }
.zh-arrow[hidden] { display: none; }
.scroll-hint { position: absolute; left: 50%; bottom: 22px; transform: translateX(-50%);
  z-index: 3; color: rgba(247,233,201,.8); font-size: 11px; letter-spacing: 3px;
  display: flex; flex-direction: column; align-items: center; gap: 8px; }
.scroll-hint i { width: 1px; height: 34px; background: linear-gradient(rgba(247,233,201,.8), transparent);
  animation: chev 1.8s ease-in-out infinite; }
@keyframes sloganIn { from { transform: translateY(22px); opacity: 0; filter: blur(6px); } to { transform: none; opacity: 1; filter: none; } }
@keyframes chev { 0%,100% { transform: scaleY(.5); opacity: .4; } 50% { transform: scaleY(1); opacity: 1; } }

/* 可视化编辑：可编辑元素高亮 */
body.ve-on [data-ve] { outline: 1.5px dashed rgba(201,162,39,.55); outline-offset: 4px; cursor: pointer; }
body.ve-on [data-ve]:hover { outline-color: #c9a227; background: rgba(201,162,39,.08); }
[data-ve].ve-active { outline: 2px solid #c9a227 !important; background: rgba(201,162,39,.14); }
[data-ve][contenteditable="true"] { outline: 2px solid #c9a227 !important; }

/* ---------- 栏目导航 ---------- */
.home-columns { background: linear-gradient(180deg, #611714, #4A0D0B); padding: 84px 0 96px; }
.home-columns .core-head { text-align: center; margin-bottom: 38px; }
.home-columns .eyebrow { color: #c9a227; }
.col-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 18px; }
.col-card { position: relative; display: block; text-decoration: none; color: inherit;
  background: linear-gradient(180deg, rgba(255,255,255,.04), rgba(255,255,255,.02));
  border: 1px solid rgba(201,162,39,.22); border-radius: 14px; padding: 24px 22px;
  transition: .22s; overflow: hidden; }
.col-card::before { content: ""; position: absolute; right: -26px; top: -26px; width: 92px; height: 92px;
  border-radius: 50%; background: radial-gradient(circle, rgba(201,162,39,.18), transparent 70%); }
.col-card:hover { transform: translateY(-5px); border-color: rgba(201,162,39,.55);
  box-shadow: 0 18px 40px rgba(0,0,0,.35); }
.col-ico { width: 46px; height: 46px; border-radius: 11px; display: flex; align-items: center;
  justify-content: center; background: linear-gradient(135deg, #c9a227, #b88a1c); color: #2a200a;
  font-family: "Noto Serif SC", serif; font-weight: 700; font-size: 20px; margin-bottom: 14px; }
.col-card h3 { margin: 0 0 4px; font-size: 19px; color: #f3e6c8; letter-spacing: 1px; }
.col-card .col-sub { margin: 0 0 10px; color: #c9a227; font-size: 13px; letter-spacing: 1px;
  font-family: "Noto Serif SC", serif; }
.col-card .col-desc { margin: 0; color: #c4cde0; font-size: 13.5px; line-height: 1.7; }
.col-card .col-go { position: absolute; right: 18px; bottom: 18px; color: #c9a227; font-size: 18px;
  opacity: 0; transform: translateX(-6px); transition: .2s; }
.col-card:hover .col-go { opacity: 1; transform: none; }

/* ---------- 首屏企业宣传片小窗 ---------- */
.promo-mini { position: absolute; left: 34px; bottom: 96px; z-index: 6; display: flex; align-items: center;
  gap: 12px; padding: 10px 16px 10px 10px; border-radius: 56px; cursor: pointer;
  background: rgba(97,23,20,.66); border: 1px solid rgba(201,162,39,.35);
  backdrop-filter: blur(6px); transition: .2s; }
.promo-mini:hover { border-color: rgba(201,162,39,.7); background: rgba(97,23,20,.85); transform: translateY(-2px); }
.promo-play { width: 46px; height: 46px; flex: 0 0 46px; border-radius: 50%; border: none; cursor: pointer;
  background: linear-gradient(135deg, #c9a227, #b88a1c); color: #2a200a; display: flex; align-items: center;
  justify-content: center; font-size: 16px; box-shadow: 0 6px 16px rgba(201,162,39,.35); }
.promo-play .pp-ico { margin-left: 2px; }
.promo-meta b { display: block; color: #f3e6c8; font-size: 14px; letter-spacing: 1px; }
.promo-meta span { color: #c4cde0; font-size: 11.5px; }

/* ---------- 宣传片灯箱 ---------- */
.promo-lightbox { position: fixed; inset: 0; z-index: 9998; display: none; align-items: center; justify-content: center; }
.promo-lightbox.show { display: flex; }
.pl-mask { position: absolute; inset: 0; background: rgba(40,7,6,.9); backdrop-filter: blur(4px); }
.pl-inner { position: relative; width: min(92vw, 1100px); aspect-ratio: 16/9; background: #000; border-radius: 12px;
  overflow: hidden; box-shadow: 0 30px 80px rgba(0,0,0,.6); border: 1px solid rgba(201,162,39,.4); }
.pl-inner video { width: 100%; height: 100%; display: block; background: #000; }
.pl-close { position: absolute; right: -14px; top: -14px; width: 38px; height: 38px; border-radius: 50%; border: none;
  background: #c9a227; color: #2a200a; font-size: 22px; line-height: 1; cursor: pointer; z-index: 2;
  box-shadow: 0 4px 12px rgba(0,0,0,.4); }

/* ---------- 二屏：公众号精选 ---------- */
.home-wechat { background: linear-gradient(180deg, #4A0D0B, #611714); padding: 84px 0 96px; }
.home-wechat .core-head { text-align: center; margin-bottom: 38px; }
.home-wechat .eyebrow { color: #c9a227; }
.home-wechat .sec-sub { color: #c4cde0; font-size: 14px; margin: 10px 0 0; letter-spacing: 1px; }
.wx-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 18px; }
.wx-card { display: block; text-decoration: none; color: inherit; border-radius: 14px; overflow: hidden;
  background: linear-gradient(180deg, rgba(255,255,255,.05), rgba(255,255,255,.02));
  border: 1px solid rgba(201,162,39,.22); transition: .22s; }
.wx-card:hover { transform: translateY(-5px); border-color: rgba(201,162,39,.55); box-shadow: 0 18px 40px rgba(0,0,0,.35); }
.wx-cover { width: 100%; height: 158px; object-fit: cover; display: block; background: #11182f; }
.wx-body { padding: 16px 18px 18px; }
.wx-body h3 { margin: 0 0 8px; font-size: 17px; color: #f3e6c8; letter-spacing: .5px; line-height: 1.45;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.wx-body p { margin: 0 0 10px; color: #c4cde0; font-size: 13px; line-height: 1.7;
  display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.wx-foot { display: flex; justify-content: space-between; align-items: center; color: #9fb0d0; font-size: 12px; }
.wx-foot .wx-go { color: #c9a227; }
.wx-empty { grid-column: 1/-1; text-align: center; color: #8a9bc0; padding: 30px; font-size: 14px; }

/* ---------- 响应式 ---------- */
@media (max-width: 760px) {
  .zhero-inner { padding-top: 19vh; padding-bottom: 12vh; }
  .hero-slogan { letter-spacing: 2px; }
  .hero-sub { font-size: 15px; }
  .home-columns { padding: 60px 0 70px; }
  .zh-arrow { width: 40px; height: 40px; font-size: 16px; }
  .zh-arrow.prev { left: 12px; }
  .zh-arrow.next { right: 12px; }
  .promo-mini { left: 14px; bottom: 74px; padding: 7px 12px 7px 7px; gap: 9px; }
  .promo-play { width: 40px; height: 40px; }
  .promo-meta b { font-size: 12.5px; }
  .home-wechat { padding: 56px 0 68px; }
}
@media (prefers-reduced-motion: reduce) {
  .splash, .splash-inner, .splash-seal, .splash-name, .splash-en, .splash-line,
  .splash-tag, .hero-slogan, .hero-sub, .hero-cta, .scroll-hint i, .stars i, .splash-stars i {
    animation: none !important; }
}

/* ============ v20261016h：首屏 Ken Burns 动效 ============ */
.zh-slide.active { animation: zhKB 22s ease-in-out infinite alternate; }
@keyframes zhKB {
  from { transform: scale(1) translateX(0); }
  to   { transform: scale(1.09) translateX(-1.4%); }
}

/* ============ v20261016h：首屏底部数据背书（原独立条移入首屏） ============ */
.hero-stats { display: flex; justify-content: center; width: 100%; margin-top: 26px;
  padding-top: 16px; border-top: 1px solid rgba(201,162,39,.28); }
.hero-stats .stat-cell { flex: 1; max-width: 220px; text-align: center; position: relative; }
.hero-stats .stat-cell + .stat-cell::before { content: ''; position: absolute; left: 0; top: 14%;
  height: 72%; width: 1px; background: rgba(201,162,39,.22); }
.hero-stats .stat-cell b { display: block; font-size: clamp(20px, 2.1vw, 30px);
  color: #e8c987; font-weight: 700; letter-spacing: .5px; font-variant-numeric: tabular-nums; }
.hero-stats .stat-cell > span { display: block; margin-top: 5px; font-size: 12px;
  color: rgba(240,233,220,.72); letter-spacing: 2px; }
@media (max-width: 760px) {
  .hero-stats { flex-wrap: wrap; gap: 12px 0; }
  .hero-stats .stat-cell { flex: 1 1 42%; }
  .hero-stats .stat-cell:nth-child(odd)::before { display: none; }
}

/* ============ v20261016h：二屏 左·品牌动态 + 右·企业宣传片 ============ */
.home-dyn { background: linear-gradient(180deg, #4A0D0B, #611714); padding: 84px 0 76px; }
.home-dyn .core-head { text-align: left; margin-bottom: 0; }
.home-dyn .eyebrow { color: #c9a227; }
.home-dyn .sec-title { color: #f0e9dc; }
.home-dyn .sec-sub { color: #c4cde0; font-size: 14px; margin: 10px 0 0; letter-spacing: 1px; }
.dyn-wrap { display: grid; grid-template-columns: 1.35fr 1fr; gap: 46px; align-items: start; }
.dyn-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; margin-top: 28px; }
.dyn-grid .wx-card { display: flex; flex-direction: column; text-decoration: none; color: inherit;
  background: rgba(255,255,255,.045); border: 1px solid rgba(201,162,39,.16); border-radius: 12px;
  overflow: hidden; transition: transform .3s, border-color .3s, box-shadow .3s; }
.dyn-grid .wx-card:hover { transform: translateY(-4px); border-color: rgba(201,162,39,.55);
  box-shadow: 0 14px 34px rgba(0,0,0,.38); }
.dyn-grid .wx-cover { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; display: block;
  background: #16213a; }
.dyn-grid .wx-nocover { display: flex; align-items: center; justify-content: center;
  color: #8a94a8; font-size: 13px; letter-spacing: 4px; }
.dyn-grid .wx-body { padding: 14px 16px 13px; display: flex; flex-direction: column;
  gap: 10px; flex: 1; }
.dyn-grid .wx-body h3 { margin: 0; font-size: 15px; line-height: 1.55; color: #f0e9dc;
  font-weight: 600; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical;
  overflow: hidden; min-height: 3.1em; }
.dyn-grid .wx-foot { margin-top: auto; display: flex; justify-content: space-between;
  align-items: center; font-size: 12px; color: rgba(240,233,220,.55); }
.dyn-grid .wx-go { color: #d6b26e; white-space: nowrap; }
.dyn-empty { grid-column: 1 / -1; text-align: left; padding: 34px 32px;
  border: 1px solid rgba(201,162,39,.2); border-radius: 12px;
  background: linear-gradient(140deg, rgba(201,162,39,.08), rgba(201,162,39,.02));
  color: rgba(240,233,220,.66); font-size: 14px; line-height: 1.9; }
.dyn-empty b { display: block; color: #EFD9A6; letter-spacing: .01em; font-size: 17px;
  font-family: "Noto Serif SC", serif; margin-bottom: 10px; }
.dyn-empty a { display: inline-flex; align-items: center; gap: 7px; margin-top: 18px;
  color: var(--gold-500, #C9A227); font-size: 13.5px; font-weight: 600; letter-spacing: .02em; }
.dyn-empty a:hover { color: var(--gold-300, #E8CE85); }
.dyn-video { margin: 28px 0 0; border-radius: 14px; overflow: hidden;
  border: 1px solid rgba(201,162,39,.22); background: #0a0f1c;
  box-shadow: 0 20px 48px rgba(0,0,0,.42); }
.dyn-video video { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; display: block;
  background: #000; }
.dyn-video figcaption { display: flex; justify-content: space-between; gap: 10px;
  padding: 12px 16px; font-size: 12.5px; color: rgba(240,233,220,.6);
  border-top: 1px solid rgba(201,162,39,.16); }
.dyn-video figcaption b { color: #e8c987; font-weight: 600; white-space: nowrap; }
@media (max-width: 980px) {
  .home-dyn { padding: 56px 0 60px; }
  .dyn-wrap { grid-template-columns: 1fr; gap: 40px; }
}
@media (prefers-reduced-motion: reduce) {
  .zh-slide.active { animation: none !important; }
}

/* ============ v20261016i：首屏底部数据背书贴底 + 去掉底线蓝底 + SCROLL 隐藏 ============ */
.hero-stats { position: absolute; left: 0; right: 0; bottom: 0; z-index: 5;
  display: flex; justify-content: center; margin: 0; padding: 20px 24px 30px;
  border-top: none; }
.hero-stats .stat-cell b { font-size: clamp(24px, 2.6vw, 36px); font-family: var(--font-serif);
  color: #F2DCA8; letter-spacing: .01em; text-shadow: 0 2px 12px rgba(0,0,0,.55); }
.hero-stats .stat-cell > span { font-size: clamp(12px, 1.05vw, 13.5px);
  letter-spacing: .06em; color: rgba(255,248,235,.66); text-shadow: 0 1px 8px rgba(0,0,0,.5); }
.scroll-hint { display: none !important; }
@media (max-width: 760px) {
  .hero-stats { padding: 14px 16px 20px; }
  .hero-stats .stat-cell b { font-size: 24px; }
  .hero-stats .stat-cell > span { font-size: 12px; letter-spacing: 2px; }
}

/* ============ v20261016j：数据背书透明底/适中字号/均布/两端宽；二屏放大；视频框交互 ============ */
.hero-stats { position: absolute; left: 0; right: 0; bottom: 0; z-index: 5;
  display: flex; justify-content: space-evenly; margin: 0;
  padding: 16px clamp(30px, 9vw, 170px) 26px; border-top: none; }
.hero-stats .stat-cell { flex: 0 1 auto; max-width: none; }
.hero-stats .stat-cell b { font-size: clamp(21px, 2.2vw, 28px);
  text-shadow: 0 2px 12px rgba(0,0,0,.8); }
.hero-stats .stat-cell > span { font-size: clamp(12px, 1vw, 13.5px);
  letter-spacing: 2px; text-shadow: 0 2px 10px rgba(0,0,0,.8); }
@media (max-width: 760px) {
  .hero-stats { padding: 12px 20px 18px; }
  .hero-stats .stat-cell b { font-size: 19px; }
  .hero-stats .stat-cell > span { font-size: 11px; letter-spacing: 1px; }
}

/* 二屏整体放大 */
.home-dyn { padding: 104px 0 96px; }
.dyn-wrap { gap: 56px; }
.dyn-grid { gap: 22px; margin-top: 34px; }
.home-dyn .sec-title { font-size: clamp(26px, 3vw, 38px); }
.home-dyn .sec-sub { font-size: 15px; margin-top: 12px; }
.dyn-grid .wx-body { padding: 18px 20px 16px; }
.dyn-grid .wx-body h3 { font-size: 16.5px; min-height: 3.3em; }
.dyn-grid .wx-foot { font-size: 12.5px; }
.dyn-empty { padding: 64px 26px; }

/* 视频框：全屏按钮 + 拖拽等比缩放 */
.dyn-video { margin: 34px 0 0; }
.dv-frame { position: relative; border-radius: 14px; overflow: visible; }
.dv-frame video { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; display: block;
  background: #000; border-radius: 14px; }
.dv-fs { position: absolute; right: 12px; bottom: 12px; z-index: 3; display: inline-flex;
  align-items: center; gap: 6px; padding: 7px 13px; border-radius: 100px; cursor: pointer;
  border: 1px solid rgba(247,233,201,.4); background: rgba(7,12,30,.62); color: #f3e6c8;
  font-size: 12.5px; letter-spacing: 1px; backdrop-filter: blur(6px); transition: .25s; }
.dv-fs svg { width: 14px; height: 14px; stroke: currentColor; fill: none; stroke-width: 2; }
.dv-fs:hover { background: rgba(201,162,39,.85); border-color: #c9a227; color: #1c1506; }
.dv-resize { position: absolute; right: -7px; bottom: -7px; z-index: 4; width: 22px; height: 22px;
  border-radius: 6px; cursor: nwse-resize; background: linear-gradient(135deg, transparent 50%, #c9a227 50%);
  border: 1px solid rgba(201,162,39,.5); box-shadow: 0 2px 10px rgba(0,0,0,.4); }
.dv-frame.is-resizing video { pointer-events: none; }
@media (max-width: 980px) {
  .home-dyn { padding: 64px 0 68px; }
  .dyn-wrap { gap: 44px; }
}

/* ============ v20261016k：肩体（固定不随图变动） + logo ============ */
.hero-shoulder { display: inline-flex; align-items: center; gap: clamp(12px, 2vw, 22px);
  margin: 0 0 clamp(14px, 2vh, 22px); font-size: clamp(13px, 1.5vw, 16.5px);
  color: #d9b86e; letter-spacing: 4px; font-weight: 600;
  text-shadow: 0 2px 12px rgba(0,0,0,.65);
  animation: fadeUp 1s .05s ease both; }
.hero-shoulder::before, .hero-shoulder::after { content: ''; flex-shrink: 0;
  width: clamp(26px, 5vw, 68px); height: 1px; }
.hero-shoulder::before { background: linear-gradient(90deg, transparent, rgba(201,162,39,.75)); }
.hero-shoulder::after { background: linear-gradient(90deg, rgba(201,162,39,.75), transparent); }
@media (max-width: 760px) {
  .hero-shoulder { letter-spacing: 2px; gap: 10px; }
}

/* ============ v20261016l：二屏间距压缩 + 电视外形包装 + 图文/纯文字混合卡 ============ */
.home-dyn { padding: 52px 0 60px; }
.dyn-wrap { gap: 30px; }
.dyn-grid { gap: 16px; margin-top: 16px; }
.dyn-video { margin-top: 16px; }
.home-dyn .sec-sub { margin-top: 8px; }

/* —— 电视外形 —— */
.dyn-video .tv { position: relative; padding: 10px 10px 0; border-radius: 20px;
  background: linear-gradient(160deg, #2b3654 0%, #141c33 42%, #0a1020 100%);
  border: 1px solid rgba(201,162,39,.38);
  box-shadow: 0 24px 60px rgba(0,0,0,.52), inset 0 1px 0 rgba(255,255,255,.09); }
.dyn-video .tv::before { content: ''; position: absolute; inset: 4px; border-radius: 16px;
  border: 1px solid rgba(255,255,255,.06); pointer-events: none; }
.tv-screen { border-radius: 12px; overflow: hidden; background: #000;
  box-shadow: inset 0 0 0 1px rgba(30,4,3,.88), 0 0 26px rgba(255,190,160,.08); }
.tv-screen .dv-frame, .tv-screen .dv-frame video { border-radius: 0; }
.tv-chin { display: flex; align-items: center; justify-content: center; gap: 10px; height: 46px; }
.tv-logo { font-size: 11px; letter-spacing: .42em; color: rgba(233,222,199,.78);
  font-weight: 600; text-indent: .42em; }
.tv-led { width: 7px; height: 7px; border-radius: 50%; background: #ff5a4d;
  box-shadow: 0 0 9px rgba(255,90,77,.9); animation: tvLed 2.4s ease-in-out infinite; }
@keyframes tvLed { 0%,100% { opacity: .45; } 50% { opacity: 1; } }
.tv-stand { display: flex; justify-content: center; gap: 88px; margin-top: -1px; }
.tv-stand i { width: 72px; height: 10px; background: linear-gradient(180deg, #2b3654, #10172a);
  border-radius: 0 0 10px 10px; border: 1px solid rgba(201,162,39,.22); border-top: none; }
.tv-screen .dv-fs { right: 10px; bottom: 10px; }
.tv-screen .dv-resize { right: -6px; bottom: -6px; }

/* —— 混合卡片：图文 + 纯文字 —— */
.dyn-grid .wx-card.t-only { background: rgba(255,255,255,.03); }
.dyn-grid .wx-card.t-only .wx-body { padding: 20px 20px 16px; }
.dyn-grid .wx-card.t-only .wx-body h3 { min-height: 0; -webkit-line-clamp: 3; }
.dyn-grid .wx-card.t-only::before { content: ''; position: absolute; left: 0; top: 14px; bottom: 14px;
  width: 3px; border-radius: 3px; background: linear-gradient(180deg, #c9a227, rgba(201,162,39,.12)); }
.dyn-grid .wx-tag { display: inline-block; font-size: 11px; color: #d9b86e; letter-spacing: 2px;
  border: 1px solid rgba(201,162,39,.35); border-radius: 100px; padding: 2px 10px; margin-bottom: 8px; }
@media (max-width: 760px) {
  .dyn-grid { gap: 12px; }
  .dyn-grid .wx-body { padding: 12px 12px 10px; }
  .dyn-grid .wx-body h3 { font-size: 14px; min-height: 2.9em; }
  .dyn-grid .wx-card.t-only .wx-body { padding: 14px 14px 12px; }
  .dyn-grid .wx-card.t-only .wx-body h3 { font-size: 14.5px; }
  .tv-stand { gap: 46px; }
  .tv-stand i { width: 44px; }
  .home-dyn .sec-title { font-size: 24px; }
  .dyn-video figcaption { font-size: 12px; flex-direction: column; gap: 2px; }
}

/* ============ v20261017g：数据背书去蓝底·白字直排·全宽铺开 + 中央淡色滚动引导（缓缓下流） ============ */
.hero-stats { position: absolute; left: 0; right: 0; bottom: 0; z-index: 5;
  display: flex; justify-content: space-evenly; align-items: flex-end;
  margin: 0; padding: 0 clamp(20px, 3.5vw, 56px) 52px; border-top: none; }
.hero-stats .stat-cell { background: transparent !important; padding: 0 10px;
  flex: 0 1 auto; max-width: none; text-align: center; }
.hero-stats .stat-cell:hover { background: transparent !important; }
.hero-stats .stat-cell + .stat-cell::before { display: none; }
.hero-stats .stat-cell b { font-size: clamp(22px, 2.4vw, 32px); color: #ffffff;
  text-shadow: 0 2px 14px rgba(20, 8, 0, .65), 0 0 26px rgba(255, 235, 190, .28); }
.hero-stats .stat-cell > span { font-size: clamp(11.5px, .95vw, 13px); color: rgba(255, 255, 255, .74);
  letter-spacing: 2.5px; text-shadow: 0 2px 10px rgba(20, 8, 0, .7); }

/* 中央滚动引导：淡色细轨 + 一缕暖光缓缓下流 */
.scroll-hint { display: flex !important; position: absolute; left: 50%; bottom: 14px;
  transform: translateX(-50%); z-index: 6; flex-direction: column; align-items: center;
  gap: 7px; pointer-events: none; }
.scroll-hint span { font-size: 9.5px; letter-spacing: 5px; color: rgba(255, 255, 255, .5);
  text-shadow: 0 1px 6px rgba(20, 8, 0, .65); text-indent: 5px; }
.scroll-hint i { position: relative; display: block; width: 3px; height: 34px;
  border-radius: 3px; background: rgba(255, 255, 255, .2); overflow: hidden;
  box-shadow: inset 0 0 0 .5px rgba(255, 255, 255, .08); }
.scroll-hint i::after { content: ''; position: absolute; left: 0; right: 0; top: -46%;
  height: 46%; border-radius: 3px;
  background: linear-gradient(180deg, rgba(255, 246, 220, 0), rgba(255, 246, 220, .95));
  animation: scrollFlow 2.4s cubic-bezier(.45, .05, .55, .95) infinite; }
@keyframes scrollFlow { 0% { top: -46%; } 62% { top: 100%; } 100% { top: 100%; } }
@media (prefers-reduced-motion: reduce) { .scroll-hint i::after { animation: none; } }
@media (max-width: 760px) {
  .hero-stats { padding: 0 12px 46px; }
  .hero-stats .stat-cell b { font-size: 20px; }
  .hero-stats .stat-cell > span { font-size: 10.5px; letter-spacing: 1px; }
  .scroll-hint span { display: none; }
  .scroll-hint i { height: 26px; }
}
/* 首屏底部淡色衬底：提升白字数据可读性（不遮视频主体） */
.zhero::after { content: ''; position: absolute; left: 0; right: 0; bottom: 0; height: 190px;
  z-index: 1; pointer-events: none;
  background: linear-gradient(180deg, rgba(26, 13, 0, 0), rgba(26, 13, 0, .44)); }
.hero-stats .stat-cell b { text-shadow: 0 2px 16px rgba(20, 8, 0, .8), 0 0 30px rgba(0, 0, 0, .35); }

/* ============ v20261017h：数字靠两边放大·解说词缩小 + 3 秒自动轮播 + 向下箭头流 ============ */
/* 数据背书：首尾贴边、数字更大、解说词更小 */
.hero-stats { justify-content: space-between !important;
  padding: 0 clamp(28px, 4.5vw, 84px) 50px !important; }
.hero-stats .stat-cell { padding: 0 !important; }
.hero-stats .stat-cell b { font-size: clamp(30px, 3.4vw, 46px) !important;
  font-weight: 700; line-height: 1.05; }
.hero-stats .stat-cell > span { font-size: 11px !important; letter-spacing: 2px !important;
  color: rgba(255, 255, 255, .68) !important; }

/* 中央向下导流：三个尖箭头不间断向下流动 */
.scroll-hint { display: flex !important; position: absolute; left: 50%; bottom: 16px;
  transform: translateX(-50%); z-index: 6; flex-direction: column; align-items: center;
  gap: 2px; pointer-events: none; }
.scroll-hint span { display: none; }
.scroll-hint i { display: block; width: 15px; height: 15px;
  border-right: 2.5px solid rgba(255, 246, 220, .85); border-bottom: 2.5px solid rgba(255, 246, 220, .85);
  transform: rotate(45deg); border-radius: 1px;
  filter: drop-shadow(0 2px 6px rgba(20, 8, 0, .6));
  opacity: 0; animation: chevFlow 1.8s linear infinite; }
.scroll-hint i:nth-child(2) { animation-delay: .22s; }
.scroll-hint i:nth-child(3) { animation-delay: .44s; }
@keyframes chevFlow {
  0%   { opacity: 0; translate: 0 -6px; }
  28%  { opacity: .95; }
  62%  { opacity: .95; }
  100% { opacity: 0; translate: 0 7px; }
}
@media (prefers-reduced-motion: reduce) { .scroll-hint i { animation: none; opacity: .7; } }

/* 首屏两侧轮播箭头：上一张 / 下一张 */
.zh-nav { position: absolute; top: 50%; transform: translateY(-50%); z-index: 7;
  width: 52px; height: 52px; border: 1px solid rgba(232, 206, 133, .5); border-radius: 8px;
  background: rgba(97, 23, 20, .48); color: rgba(244, 232, 198, .92);
  font-size: 30px; line-height: 1; cursor: pointer; display: flex; align-items: center; justify-content: center;
  backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px);
  box-shadow: inset 0 0 0 3px rgba(97, 23, 20, .4);
  transition: background .2s, border-color .2s, color .2s, transform .2s;
  padding: 0 0 3px; font-family: Georgia, "Times New Roman", serif; }
.zh-nav:hover { background: linear-gradient(150deg, #B23A2E, #7C1F1A); border-color: #e8ce85; color: #F7EFE0; transform: translateY(-50%) scale(1.06); }
.zh-nav:active { transform: translateY(-50%) scale(.96); }
.zh-prev { left: clamp(10px, 2.2vw, 26px); }
.zh-next { right: clamp(10px, 2.2vw, 26px); }
@media (max-width: 760px) {
  .zh-nav { width: 38px; height: 38px; font-size: 22px; }
}
@media (prefers-reduced-motion: reduce) { .zh-nav { transition: none; } }
@media (max-width: 760px) {
  .hero-stats { padding: 0 16px 44px !important; }
  .hero-stats .stat-cell b { font-size: 24px !important; }
  .hero-stats .stat-cell > span { font-size: 9.5px !important; letter-spacing: 1px !important; }
  .scroll-hint i { width: 12px; height: 12px; }
}
/* 数字真正贴屏幕两边：脱离 1180px 容器，锚定全视口宽 */
.hero-stats { left: 50% !important; right: auto !important; width: 100vw !important;
  margin-left: -50vw !important;
  padding: 0 clamp(28px, 4vw, 72px) 50px !important; }

/* ============ 首屏文字层级规范（成熟官网版） ============ */
.zhero-inner { padding-top: 96px !important; padding-bottom: 150px !important;
  justify-content: center !important; }
.zhero-copy { animation: none; }
.zhero-foot { margin-top: 44px !important; }

/* 首屏数据来源脚注：贴视口底，不占按钮流位 */
.hero-note { position: absolute; left: 0; right: 0; bottom: 13px; z-index: 6;
  margin: 0 !important; text-align: center; font-size: 11.5px; line-height: 1.5;
  color: rgba(255, 248, 235, .42); letter-spacing: .02em; }

/* 首屏按钮：浅底深字（深色实景上唯一可靠的高对比方案） */
.zhero .hero-cta .btn-primary { background: #F7E9C9 !important; color: #5A1410 !important;
  border-color: transparent !important; box-shadow: 0 8px 26px rgba(0, 0, 0, .3) !important; }
.zhero .hero-cta .btn-primary:hover { background: #FFF8E9 !important; color: #4A0D0B !important;
  transform: translateY(-2px); box-shadow: 0 12px 32px rgba(0, 0, 0, .34) !important; }
.zhero .hero-cta .btn-ghost { border-color: rgba(255, 255, 255, .52) !important;
  color: #FFF9EC !important; background: rgba(255, 255, 255, .07) !important; }
.zhero .hero-cta .btn-ghost:hover { background: rgba(255, 255, 255, .16) !important;
  border-color: rgba(255, 255, 255, .9) !important; color: #fff !important; }

/* 肩题：小号、微字距、金色降饱和 */
.hero-shoulder { font-size: clamp(12px, 1.05vw, 14px) !important; letter-spacing: .1em !important;
  font-weight: 500 !important; color: rgba(247, 233, 201, .76) !important; }

/* 主标题：衬线稳重、暖白实色、克制阴影（对比度优先） */
.hero-slogan {
  font-weight: 700 !important;
  white-space: nowrap !important;      /* 不折行，由脚本按容器宽度适配字号 */
  letter-spacing: .01em !important;
  line-height: 1.15 !important;
  color: #FCF8EF !important;
  text-shadow: 0 2px 30px rgba(10, 5, 3, .55), 0 1px 2px rgba(10, 5, 3, .3) !important;
  padding-left: 0 !important;
}

/* 副标题：常规字重、行距舒展 */
.hero-sub { font-size: clamp(16px, 1.45vw, 20px) !important; font-weight: 400 !important;
  letter-spacing: .01em !important; line-height: 1.75 !important;
  color: rgba(255, 252, 245, .8) !important;
  text-shadow: 0 2px 14px rgba(0, 0, 0, .55) !important; }

@media (max-width: 760px) {
  .zhero-inner { padding-top: 15vh !important; }
  .hero-sub { font-size: 15px !important; }
}

/* ---------- 中式印章落款（首屏右下 · 朱砂方印） ---------- */
.zh-seal{
  position:absolute;right:34px;bottom:92px;z-index:5;
  display:flex;flex-direction:column;align-items:center;gap:1px;
  padding:13px 10px 11px;border-radius:7px;
  background:linear-gradient(160deg,#B23A2E,#7C1F1A);
  color:#F7EFE0;font-family:"Songti SC","STSong","Noto Serif SC",serif;
  font-size:19px;font-weight:700;letter-spacing:.08em;line-height:1.25;
  transform:rotate(-2deg);pointer-events:none;
  box-shadow:inset 0 0 0 1px rgba(247,239,224,.42),inset 0 0 0 4px rgba(124,31,26,.55),0 8px 22px rgba(0,0,0,.34);
  text-shadow:0 1px 2px rgba(0,0,0,.35);
  animation:sealIn 1s var(--ease,cubic-bezier(.22,.61,.36,1)) .8s both;
}
@keyframes sealIn{from{opacity:0;transform:rotate(-2deg) scale(.7);}to{opacity:1;transform:rotate(-2deg) scale(1);}}
@media (max-width:760px){ .zh-seal{right:18px;bottom:76px;font-size:16px;padding:10px 8px 9px;} }
@media (prefers-reduced-motion:reduce){ .zh-seal{animation:none;} }

/* ============ 首屏收口：数据条回归文档流，整块内容垂直居中 ============ */
.zhero-inner { justify-content: center !important; padding-bottom: 64px !important; }
.hero-stats { position: static !important; left: auto !important; right: auto !important;
  width: 100vw !important; margin: 46px 0 0 calc(-50vw + 50%) !important;
  padding: 26px clamp(28px, 4vw, 72px) 0 !important;
  border-top: 1px solid rgba(247, 233, 201, .16) !important; }
.hero-note { position: static !important; margin: 14px auto 0 !important;
  text-align: center; font-size: 11.5px; line-height: 1.5;
  color: rgba(255, 248, 235, .4); letter-spacing: .02em; }
@media (max-width: 760px) {
  .zhero-inner { padding-bottom: 44px !important; }
  .hero-stats { margin-top: 30px !important; padding-top: 20px !important; }
}

/* 首屏滚动提示（填补底部留白 + 引导下翻） */
.scroll-hint { display: flex !important; position: absolute; left: 50%; bottom: 30px;
  transform: translateX(-50%); z-index: 6; flex-direction: column; align-items: center;
  gap: 5px; pointer-events: none; }
.scroll-hint i { width: 1px; height: 22px; background: linear-gradient(rgba(247,233,201,.55), transparent); }
.scroll-hint i:nth-child(2) { opacity: .55; height: 14px; }
.scroll-hint i:nth-child(3) { opacity: .28; height: 10px; }
.scroll-hint::after { content: none; font-size: 9px; letter-spacing: .26em;
  color: rgba(247, 233, 201, .42); font-family: var(--font-sans); }

/* 数据条微调：压缩单元格留白、加大与脚注间距 */
.hero-stats .stat-cell { padding: 14px 22px !important; }
.hero-note { margin-top: 24px !important; }

/* 收口微调：脚注可读性 + 右侧避让浮动联系按钮 */
.hero-note { color: rgba(255, 248, 235, .52) !important; }
.hero-stats { padding-right: clamp(90px, 8vw, 132px) !important; padding-left: clamp(28px, 4vw, 72px) !important; }
.hero-sub { color: rgba(255, 252, 245, .86) !important; }

/* ============ 移动端首屏适配 ============ */
@media (max-width: 760px) {
  /* 轮播箭头会压住全宽按钮，移动端隐藏（滑动切换保留） */
  .zh-nav { display: none !important; }
  /* 按钮全宽堆叠，视觉更稳 */
  .hero-cta { flex-direction: column; gap: 10px; width: 100%; }
  .hero-cta .btn { width: 100%; }
  /* 数据条 2×2，数字降档 */
  .hero-stats { flex-wrap: wrap; padding-right: 20px !important; padding-left: 20px !important; }
  .hero-stats .stat-cell { flex: 1 1 50%; max-width: none; padding: 10px 8px !important; }
  .hero-stats .stat-cell b { font-size: 30px !important; }
  .hero-stats .stat-cell + .stat-cell::before { display: none; }
  /* 脚注避开右下印章与浮动按钮 */
  .hero-note { margin-top: 16px !important; padding: 0 16px; font-size: 10.5px !important; }
  .zhero-inner { padding-left: 18px !important; padding-right: 18px !important; }
  .hero-slogan { letter-spacing: .02em !important; }
  /* 印章在小屏缩小并让位 */
  .zh-seal { display: none; }
  .scroll-hint { bottom: 14px; }
  .scroll-hint i { height: 14px; }
}

/* 数据数字收敛到 38px，避免与主标题抢视觉 */
.hero-stats .stat-cell b { font-size: clamp(26px, 2.7vw, 38px) !important; }
.hero-stats .stat-cell b i { font-size: .52em; }

/* ==========================================================================
 * 用户标注（2026-10-29）：首屏主文案上移 + 数据条贴底 + 向下引导居中流动
 * 1) 主文案整体上移一点（justify-content 改为顶部对齐，顶部留白略收）
 * 2) 数据背书条贴到首屏底部（绝对定位 bottom:0），脚注紧随其下
 * 3) 向下引导：水平居中 + 三枚金色箭头缓缓向下流动
 * ========================================================================== */
.zhero-inner { justify-content: flex-start !important; padding-top: 14vh !important; padding-bottom: 170px !important; }
.zhero-copy { margin-top: 0 !important; }

.hero-stats {
  position: absolute !important; left: 0 !important; right: 0 !important; bottom: 0 !important;
  width: 100% !important; margin: 0 !important;
  padding: 14px clamp(28px, 4vw, 72px) 66px !important;
  border-top: 1px solid rgba(247, 233, 201, .16) !important;
}
.hero-note {
  position: absolute !important; left: 0 !important; right: 0 !important; bottom: 8px !important;
  margin: 0 auto !important; text-align: center !important; max-width: 92% !important;
}

/* 向下引导：水平居中，三枚箭头循环向下流动 */
.scroll-hint {
  display: flex !important; position: absolute; left: 50% !important; bottom: 30px !important;
  transform: translateX(-50%) !important; z-index: 6; flex-direction: column; align-items: center;
  gap: 4px; pointer-events: none;
}
.scroll-hint::after { content: none; font-size: 9px; letter-spacing: .26em; margin-top: 2px;
  color: rgba(247, 233, 201, .5); font-family: var(--font-sans); }
.scroll-hint i {
  display: block !important; width: 12px !important; height: 12px !important;
  border-right: 2px solid rgba(247, 233, 201, .85) !important;
  border-bottom: 2px solid rgba(247, 233, 201, .85) !important;
  background: none !important; transform: rotate(45deg) !important; border-radius: 1px !important;
  filter: drop-shadow(0 2px 6px rgba(20, 8, 0, .6)) !important;
  opacity: 0 !important; animation: chevFlow 1.9s linear infinite !important;
}
.scroll-hint i::after { content: none !important; }
.scroll-hint i:nth-child(2) { animation-delay: .25s !important; }
.scroll-hint i:nth-child(3) { animation-delay: .5s !important; }
@keyframes chevFlow {
  0%   { opacity: 0; translate: 0 -7px; }
  28%  { opacity: .95; }
  62%  { opacity: .95; }
  100% { opacity: 0; translate: 0 8px; }
}

/* ============ v20261030e：二屏 动态消息 | 家史视界 等高并排 + 占位视频 + 首页浮窗下移 + 引导箭头动画 ============ */

/* —— 1. 二屏：左动态消息 / 右家史视界，等高并排 —— */
.dyn-wrap { align-items: stretch; }
.dyn-news { display: flex; flex-direction: column; min-width: 0; }
.dyn-news .dyn-grid { flex: 1 1 auto; align-content: stretch; }
.dyn-col { display: flex; flex-direction: column; }
.dyn-col .dc-list { flex: 1 1 auto; }
/* 右栏家史视界：去掉外框底色，由 .tv 电视外形承担视觉，并拉伸等高 */
.dyn-video { display: flex; flex-direction: column; margin-top: 0;
  background: transparent; border: none; box-shadow: none; overflow: visible; border-radius: 0; padding: 0; }
.dyn-video .tv { flex: 0 0 auto; display: flex; flex-direction: column; min-width: 0; }
/* 家史视界电视框：固定 16:9 规格（不随高度拉伸），左栏动态消息靠 align-items:stretch 自动等高 */
.dyn-video .tv-screen { flex: 0 0 auto; aspect-ratio: 16 / 9; min-height: 0; position: relative;
  background: #0a0f1c; border: 1px solid rgba(201,162,39,.22); border-radius: 14px; overflow: hidden;
  box-shadow: 0 20px 48px rgba(0,0,0,.42); }
.dyn-video .tv-screen video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; background: #000; }
.dyn-video .tv-chin { flex: 0 0 auto; }
.dyn-video .tv-stand { flex: 0 0 auto; }

/* 占位遮罩：未配置真实视频时显示「家史视界 · 真实影像即将上线」 */
.dv-ph { position: absolute; inset: 0; z-index: 2; display: flex; flex-direction: column;
  align-items: center; justify-content: center; gap: 14px; text-align: center; padding: 0 18px;
  background: radial-gradient(125% 120% at 50% 32%, #1a274a 0%, #0c1326 62%, #070b16 100%); }
.dv-ph-ico { width: 54px; height: 54px; display: grid; place-items: center; border-radius: 50%;
  background: rgba(201,162,39,.14); border: 1px solid rgba(201,162,39,.42); color: #E8CE85;
  animation: dvPulse 2.6s ease-in-out infinite; }
.dv-ph-ico svg { width: 22px; height: 22px; fill: currentColor; margin-left: 3px; }
.dv-ph-txt { font-size: 13px; letter-spacing: .08em; color: rgba(240,233,220,.74);
  text-shadow: 0 1px 8px rgba(0,0,0,.5); }
@keyframes dvPulse {
  0%,100% { transform: scale(.92); box-shadow: 0 0 0 0 rgba(201,162,39,.34); }
  50%     { transform: scale(1.05); box-shadow: 0 0 0 14px rgba(201,162,39,0); }
}
.dv-fs { position: absolute; right: 10px; bottom: 10px; z-index: 3; width: 34px; height: 34px;
  display: grid; place-items: center; border: 1px solid rgba(201,162,39,.4); border-radius: 8px;
  background: rgba(10,15,28,.72); color: #E8CE85; cursor: pointer; font-size: 16px; line-height: 1; }
.dv-fs:hover { background: rgba(201,162,39,.22); }

@media (max-width: 980px) {
  .dyn-wrap { grid-template-columns: 1fr; gap: 34px; }
  .dyn-grid { grid-template-columns: 1fr; }
  .dyn-video .tv-screen { min-height: 0; }
}

/* —— 2. 首页：右侧联系浮窗下移，避免遮挡首屏「下一篇」切换箭头 —— */
body.is-home .wechat-fab.side-contact {
  top: auto; bottom: 116px; transform: none;
}
@media (max-width: 640px) {
  body.is-home .wechat-fab.side-contact { bottom: 92px; }
}

/* —— 3. 首屏引导箭头：成熟引导动画（单一协调循环 3s）
   光点沿上导轨下行 → 抵达箭头时箭头下沉 + 光晕涟漪绽放 → 光点沿下导轨继续下行淡出 —— */
.hs-guide { position: relative; }
.hs-gline { position: relative; overflow: hidden; }
.hs-gline::after {
  content: ''; position: absolute; left: 50%; margin-left: -1.5px;
  width: 3px; height: 32%; top: -32%; border-radius: 3px;
  background: linear-gradient(180deg, rgba(247,233,201,0), rgba(247,233,201,.92) 45%, rgba(247,233,201,0));
  animation: hsComet 3s cubic-bezier(.5,0,.5,1) infinite;
}
/* 上导轨先行；下导轨延后半周期接力 —— 形成「穿过箭头」的连续下流 */
.hs-gline:first-of-type::after { animation-delay: 0s; }
.hs-gline:last-of-type::after  { animation-delay: 1.5s; }
@keyframes hsComet {
  0%   { top: -32%; opacity: 0; }
  10%  { opacity: .95; }
  40%  { opacity: .95; }
  50%  { top: 100%; opacity: 0; }
  100% { top: 100%; opacity: 0; }
}
/* 箭头：与光点同周期，光点抵达瞬间下沉并绽放涟漪 */
.hs-garrow { position: relative; animation: hsBob 3s cubic-bezier(.45,0,.25,1) infinite; }
.hs-garrow::before { content: ''; position: absolute; width: 34px; height: 34px; border-radius: 50%;
  background: radial-gradient(circle, rgba(247,233,201,.3), rgba(247,233,201,0) 70%);
  animation: hsPing 3s ease-out infinite; }
@keyframes hsBob {
  0%,100% { transform: translateY(-2px); opacity: .74; }
  50%     { transform: translateY(3px);  opacity: 1; }
}
@keyframes hsPing {
  0%,18%   { transform: scale(.72); opacity: 0; }
  50%      { transform: scale(1.16); opacity: 1; }
  80%,100% { transform: scale(1.62); opacity: 0; }
}
/* 移动端：引导条横向延展，光点同步改为左右流动 */
@media (max-width: 760px) {
  .hs-gline::after { left: -32%; top: 50%; margin-left: 0; margin-top: -1.5px;
    width: 32%; height: 3px;
    background: linear-gradient(90deg, rgba(247,233,201,0), rgba(247,233,201,.92) 45%, rgba(247,233,201,0));
    animation-name: hsCometX; }
  @keyframes hsCometX {
    0%   { left: -32%; opacity: 0; }
    10%  { opacity: .95; }
    40%  { opacity: .95; }
    50%  { left: 100%; opacity: 0; }
    100% { left: 100%; opacity: 0; }
  }
}
@media (prefers-reduced-motion: reduce) {
  .hs-garrow, .hs-garrow::before, .hs-gline::after { animation: none; }
  .hs-garrow { opacity: .9; }
  .hs-gline::after { display: none; }
}
