/* ══ H.OS 首屏 · 白天套房版（2026-09-02 照 Jack 给的效果图重排）══
   骨架和产品页首屏同一套「空间层」（css/spatial.css + js/suite.js）：
   房间照片挂最远，玻璃面板各自有世界坐标，往下拉工作台一层层落位。
   这个文件只写：① 白天光线（遮罩改轻）② 面板摆位 ③ 新加的两块面板（底部指标卡、章节条）
   ④ 滚动进场节奏（从 pages.css 的 .sol-cam 那套照搬到 .hero-cam）。 */

/* ── ① 房间：白天 ── */
.hero-cam .env { background-image: url('media/qh.jpg?v=20260903-2'); }
.hero-cam .env > .env-photo {
  position: absolute; inset: 0 0 auto 0; width: 100%; height: 108%;
  object-fit: cover; object-position: center top; border: 0; pointer-events: none; z-index: 0;
}
.hero-cam .env > .bgv {
  /* 高度放大 8%、顶边对齐：把片子右下角那枚「AI生成」水印裁到画外 */
  position: absolute; inset: 0 0 auto 0; width: 100%; height: 108%;
  object-fit: cover; object-position: center top; border: 0; pointer-events: none; z-index: 1;
  opacity: 0; transition: opacity 1.2s ease;
}
.hero-cam .env > .bgv.is-on { opacity: 1; }
.hero-cam .env.bgv-off > .bgv { display: none; }
.hero-cam .env > .bgv-tint { position: absolute; inset: 0; z-index: 2; pointer-events: none; background: rgba(5, 8, 15, 0.06); }
/* 原来的夜景暗角整幅压死，白天只留极轻的边缘聚焦和一点底部层次 */
.hero-cam .env::after {
  background:
    radial-gradient(132% 96% at 50% 45%, rgba(6, 11, 22, 0) 56%, rgba(6, 11, 22, 0.22) 100%),
    linear-gradient(180deg, rgba(6, 11, 22, 0) 0%, rgba(6, 11, 22, 0) 62%, rgba(6, 11, 22, 0.24) 100%);
}
/* 空气光：白天窗外的那团冷光要收小，不然天空被泼成蓝紫 */
.hero-cam .g1 { background: radial-gradient(closest-side, rgba(124, 158, 224, 0.1), rgba(124, 158, 224, 0)); }
.hero-cam .air { background: radial-gradient(46% 40% at var(--mx) var(--my), rgba(122, 152, 214, 0.08), transparent 68%); }
/* 标题层下面的压暗：只护左下角的字，右半幅城市留出来 */
.st-scrim {
  background:
    linear-gradient(180deg, rgba(6, 10, 20, 0.42) 0%, rgba(6, 10, 20, 0.12) 10%, rgba(6, 10, 20, 0) 20%),
    linear-gradient(0deg, rgba(6, 10, 20, 0.66) 0%, rgba(6, 10, 20, 0.34) 30%, rgba(6, 10, 20, 0) 58%),
    linear-gradient(90deg, rgba(6, 10, 20, 0.5) 0%, rgba(6, 10, 20, 0.22) 34%, rgba(6, 10, 20, 0) 60%);
}

/* ── ② 面板摆位（场景按 1500×880 画）──
   效果图的构图：左一列信号 · 正中一大块工作台 · 右上 Notes · 左下运行状态 · 中下章节条 · 右下指标卡 */
.hero-cam .rail  { --px: -560px; --py: -30px; --pz: -170px; --ry: 22deg; --rx: 2deg; width: 206px; padding: 10px; }
.hero-cam .deck  { --px: 10px;   --py: -46px; --pz: 30px;   --ry: -1deg; width: 760px; }
.hero-cam .notes { --px: 574px;  --py: -120px; --pz: -150px; --ry: -22deg; --rx: 3deg; width: 236px; padding: 14px 16px 15px; }
.hero-cam .edge-card { --px: -430px; --py: 290px; --pz: 150px; --ry: 9deg; --rx: -6deg; width: 250px; padding: 12px 14px; }
.hero-cam .dock  { --px: -10px;  --py: 296px; --pz: 180px; --rx: -8deg; }
.hero-cam .impact{ --px: 410px;  --py: 286px; --pz: 140px; --ry: -8deg; --rx: -5deg; width: 318px; padding: 13px 15px 14px; border-radius: 14px; }

/* 信号列：底下多一行「接入」 */
.hero-cam .rail .r-key { display: block; font-size: 10.5px; letter-spacing: 0.14em; color: rgba(194, 161, 102, 0.95); padding: 6px 12px 8px; font-family:var(--tevo-cjk); }
.hero-cam .rail a { font-size: 13.5px; padding: 9px 12px; }
.hero-cam .rail .r-foot { margin: 8px 4px 2px; padding: 10px 8px 4px; border-top: 1px solid rgba(255, 255, 255, 0.12); font-size: 11.5px; line-height: 1.6; color: var(--faint); }
.hero-cam .rail .r-foot a { display: inline; padding: 0; color: var(--gp); font-size: 11.5px; background: none; }

/* 工作台：三块 LOOP 卡 + 一条横的市场卡 */
.hero-cam .d-head h2 { font-size: 18px; }
.hero-cam .mod { padding: 13px 13px 14px; }
.hero-cam .mod h2 { font-size: 14px; }
.hero-cam .mod .m-go { display: block; margin-top: 10px; font-size: 11px; color: rgba(194, 161, 102, 0.95); font-family:var(--tevo-cjk); }
.hero-cam .wide {
  margin-top: 12px; padding: 12px 14px; border-radius: 13px;
  background: rgba(255, 255, 255, 0.045); border: 1px solid rgba(255, 255, 255, 0.09);
  display: grid; grid-template-columns: minmax(0, 1fr) 250px; gap: 16px; align-items: center;
}
.hero-cam .wide .m-key { margin-bottom: 4px; }
.hero-cam .wide h2 { font-size: 13.5px; font-weight: 600; margin: 0 0 4px; }
.hero-cam .wide p { margin: 0; font-size: 11.5px; line-height: 1.7; color: var(--dim); }
.hero-cam .wide .m-go { margin-top: 6px; }

/* 右上：等你拍板 */
.hero-cam .notes .n-act { display: flex; gap: 6px; margin-top: 10px; }
.hero-cam .notes .n-act span { font-size: 11px; padding: 5px 9px; border-radius: 999px; border: 1px solid rgba(255, 255, 255, 0.16); color: var(--dim); font-family:var(--tevo-cjk); }
.hero-cam .notes .n-act span.on { background: var(--gp); border-color: var(--gp); color: #101725; font-weight: 600; }

/* 左下：运行状态 + 一根小折线 */
.hero-cam .edge-card .ec-row { display: flex; align-items: center; gap: 10px; }
.hero-cam .edge-card .ec-row p { flex: 1; }
.hero-cam .spark { width: 64px; height: 20px; flex: none; }
.hero-cam .spark polyline { fill: none; stroke: var(--gp); stroke-width: 1.5; stroke-linejoin: round; stroke-linecap: round; }
.hero-cam .spark.cool polyline { stroke: #8fb4ee; }

/* 中下：章节条（这一页往下是六幕，这条就是目录） */
.hero-cam .dock a { font-size: 12px; padding: 7px 14px; }

/* 右下：今日经营三指标 */
.hero-cam .impact .i-head { display: flex; align-items: baseline; justify-content: space-between; margin-bottom: 10px; }
.hero-cam .impact .i-head b { font-size: 12.5px; font-weight: 600; }
.hero-cam .impact .i-head a { font-size: 11px; color: var(--gp); text-decoration: none; font-family:var(--tevo-cjk); }
.hero-cam .impact .i-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
.hero-cam .impact .i-k { display: block; font-size: 10.5px; color: var(--faint); font-family:var(--tevo-cjk); letter-spacing: 0.04em; }
.hero-cam .impact .i-v { display: block; font-size: 17px; font-weight: 600; color: var(--ink); line-height: 1.2; margin: 3px 0 4px; font-family:var(--tevo-cjk); font-variant-numeric: tabular-nums; }
.hero-cam .impact .i-v em { font-style: normal; font-size: 10.5px; color: #83d8a6; margin-left: 4px; font-weight: 500; }
.hero-cam .impact .spark { width: 100%; height: 18px; }

/* ── ③ 标题层：效果图里没有大标题，桌面端首屏就是那张图本身，标题层不出现 ── */
.st-copy { max-width: min(30rem, 56vw); bottom: clamp(3.4rem, 12vh, 8rem); }
.st-h1 { font-size: clamp(2.2rem, 4.4vw, 3.6rem); }
.st-lead { max-width: 26rem; }
@media (min-width: 1081px) and (min-height: 621px) {
  .st-copy, .st-scrim { display: none; }
  .st { height: 150vh; }
}

/* ── ④ 进场：照效果图，六块面板一打开就在位。spatial.css 自带「.is-in 之前退远+透明」的落位，
   这里只给每块一个先后（--d），别的都不加 ── */
.hero-cam { --p: 0; }
.hero-cam [data-panel] { pointer-events: auto; }
@media (hover: hover) and (pointer: fine) {
  .hero-cam [data-panel]:hover { --hz: 68px; }
}
/* 入场像 iPhone 解锁：先只有壁纸站一秒，然后各块 app 从自己那一边飞进来、由小变大落位。
   注意所有 --d 都得小于 suite.js 里 1.9s 的 is-settled，不然延迟会被中途清零。 */
.hero-cam .deck      { --d: 0.02s; }
.hero-cam .rail      { --d: 0.1s; }
.hero-cam .notes     { --d: 0.18s; }
.hero-cam .edge-card { --d: 0.26s; }
.hero-cam .impact    { --d: 0.32s; }
.hero-cam .dock      { --d: 0.38s; }
.hero-cam .env { transition: opacity 0.9s ease, transform 2.4s cubic-bezier(0.16, 1, 0.3, 1); }
.hero-cam.is-unlock .env {  transform: translate(-50%, -50%) translateZ(-980px) scale(1.03); }
.hero-cam.is-unlock [data-panel] { --hz: 0px; --sz: -520px; opacity: 0; }
/* 这页的进场由 hero.js 的 is-unlock 管（suite.js 在滚动模式下一上来就 is-settled 把延迟清零了）：解锁期间延迟照 --d，解锁完再清 */
.hero-cam.is-settled:not(.is-unlocked) [data-panel] { transition-delay: var(--d, 0s); }
.hero-cam.is-unlock .deck      { --sy: -620px; }
.hero-cam.is-unlock .rail      { --sx: -760px; --sry: 18deg; }
.hero-cam.is-unlock .notes     { --sx: 760px; --sry: -18deg; }
.hero-cam.is-unlock .edge-card { --sx: -620px; --sy: 360px; }
.hero-cam.is-unlock .impact    { --sx: 620px; --sy: 360px; }
.hero-cam.is-unlock .dock      { --sy: 560px; }
/* 底部的「往下拉」提示：面板一开始落位就撤 */
.st-cue { position: absolute; z-index: 5; left: 50%; bottom: max(.7rem, env(safe-area-inset-bottom)); transform: translateX(-50%); font-family:var(--tevo-cjk); font-size: 12px; font-weight: 400; letter-spacing: .025em; color: rgba(255,255,255,.88); display: flex; flex-direction: column; align-items: center; gap: 7px; opacity: clamp(0, calc(1 - 4 * var(--p, 0)), 1); visibility: visible; transition: opacity .45s ease, transform .55s cubic-bezier(.16,1,.3,1), visibility .45s; text-shadow: 0 1px 12px rgba(5,8,15,.78); pointer-events: none; }
.st-cue-arrow { display: block; width: 8px; height: 8px; border-top: 1.5px solid currentColor; border-left: 1.5px solid currentColor; transform: rotate(45deg); animation: st-swipe-up 2.2s cubic-bezier(.37,0,.63,1) infinite; }
.st-cue-label { white-space: nowrap; }
.st-cue-home { display: block; width: 108px; height: 4px; margin-top: 5px; border-radius: 999px; background: rgba(255,255,255,.9); box-shadow: 0 1px 8px rgba(5,8,15,.28); }
@keyframes st-swipe-up {
  0%, 100% { opacity: .38; transform: translateY(3px) rotate(45deg); }
  48% { opacity: 1; transform: translateY(-3px) rotate(45deg); }
}
.st-cue.is-hidden { opacity: 0 !important; visibility: hidden; transform: translate(-50%, 10px); }

/* ── 窄屏：spatial.css 已把相机摊成一列，这里只定顺序和把新面板收进去 ── */
@media (max-width: 1080px), (max-height: 620px) {
  .hero-cam .env { opacity: 0.55; }
  .hero-cam .env::after { background: linear-gradient(180deg, rgba(5,8,15,0.55), rgba(5,8,15,0.45) 40%, rgba(5,8,15,0.85)); }
  .hero-cam [data-panel] {
    opacity: 1; --hz: 0px; pointer-events: auto; width: auto; max-width: 100%;
    transition: transform 1.05s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.62s ease, filter 0.6s ease;
  }
  /* 窄屏也保留“解锁后 App 从四周归位”的两拍感。目标态仍是
     spatial.css 的线性单列，因此不会牺牲手机上的可读性。 */
  .hero-cam.is-unlock [data-panel] { opacity: 0 !important; }
  .hero-cam.is-unlock .deck      { transform: translate3d(0, -108px, 0) scale(.84) !important; }
  .hero-cam.is-unlock .rail      { transform: translate3d(-112px, 10px, 0) scale(.88) !important; }
  .hero-cam.is-unlock .notes     { transform: translate3d(112px, 16px, 0) scale(.88) !important; }
  .hero-cam.is-unlock .edge-card { transform: translate3d(-104px, 78px, 0) scale(.86) !important; }
  .hero-cam.is-unlock .impact    { transform: translate3d(104px, 78px, 0) scale(.86) !important; }
  .hero-cam.is-unlock .dock      { transform: translate3d(0, 104px, 0) scale(.9) !important; }
  .hero-cam .dock ul { flex-wrap: wrap; justify-content: center; }
  .hero-cam .deck { order: 1; } .hero-cam .impact { order: 2; } .hero-cam .notes { order: 3; }
  .hero-cam .rail { order: 4; } .hero-cam .edge-card { order: 5; } .hero-cam .dock { order: 6; justify-self: center; }
  .hero-cam .wide { grid-template-columns: 1fr; }
  .hero-cam .rail .r-foot { flex: 1 0 100%; border: 0; padding-top: 4px; }
  .st-cue { position: fixed; bottom: max(.7rem, env(safe-area-inset-bottom)); }
}
@media (prefers-reduced-motion: reduce) {
  .hero-cam .env > .bgv { display: none; }
  .hero-cam [data-panel] { opacity: 1; --hz: 0px; pointer-events: auto; }
  .st-cue { display: none; }
}

/* ── 字体：跟官网一致，中文思源宋体，数字/英文 Cinzel（logo 刻字同源）── */
.hero-cam, .hero-cam .glass { font-family:var(--tevo-cjk); }
.hero-cam .m-key, .hero-cam .r-key, .hero-cam .i-k, .hero-cam .ec-k { font-family:"Cinzel",Georgia,var(--tevo-cjk); letter-spacing: 0.16em; }
.hero-cam .impact .i-v, .hero-cam .viz b, .hero-cam .cmp span, .hero-cam .edge-card b, .hero-cam .notes b { font-family:"Cinzel",Georgia,var(--tevo-cjk); font-variant-numeric: tabular-nums; }
.hero-cam .d-head h2 { font-family:var(--tevo-cjk); font-weight: 600; letter-spacing: 0.04em; }

/* ══ 2026-09-02 晚：卡片还原真产品「店总工作台」，面板里的新元素 ══ */
/* 侧栏：分组小标 + 按钮化的模块项 */
.hero-cam .rail { width: 214px; }
.hero-cam .rail .r-g { display: block; margin: 8px 12px 2px; font-size: 9.5px; letter-spacing: 0.18em; color: var(--faint); font-family:"Cinzel",Georgia,var(--tevo-cjk); }
.hero-cam .rail .r-g:first-of-type { margin-top: 4px; }
.hero-cam .rail button { appearance: none; display: block; width: 100%; text-align: left; cursor: pointer; border: 0; background: transparent; color: var(--dim);
  font: inherit; font-size: 13px; padding: 7px 12px; border-radius: 9px; line-height: 1.3; }
.hero-cam .rail button:hover { color: var(--ink); background: rgba(255,255,255,0.06); }
.hero-cam .rail button.on { color: var(--ink); background: rgba(194,161,102,0.16); box-shadow: inset 0 0 0 1px rgba(194,161,102,0.4); }
.hero-cam .rail button:focus-visible { outline: 2px solid var(--gp); outline-offset: -2px; }

/* 工作台头部：进度 + 四格 */
.hero-cam .deck { width: 780px; }
.hero-cam .d-top { display: grid; grid-template-columns: 1fr 300px; gap: 18px; align-items: center; padding: 4px 2px 12px; border-radius: 10px; transition: background 0.4s; }
.hero-cam .d-top .hv-fine { margin-top: 6px; }
.hero-cam [data-block].is-hi { animation: hd-hi 1.2s ease; }
@keyframes hd-hi { 0% { background: rgba(194,161,102,0.22); } 100% { background: transparent; } }

/* 三张模块卡 */
.hero-cam .mods { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.hero-cam .mod { display: flex; flex-direction: column; padding: 12px 13px 12px; }
.hero-cam .mod h2 { font-size: 15px; margin: 0 0 6px; }
.hero-cam .mod h2 s { color: var(--faint); font-weight: 400; font-size: 12px; margin-right: 2px; }
.hero-cam .mod h2 b { font-family:"Cinzel",Georgia,var(--tevo-cjk); font-size: 18px; color: #e8c98d; }
.hero-cam .mod .m-p { margin: 0; font-size: 11.5px; line-height: 1.7; color: var(--dim); }
.hero-cam .mod .m-line { margin: 8px 0 0; font-size: 10.5px; color: var(--faint); line-height: 1.6; }
.hero-cam .mod .hs-act { margin-top: 10px; padding: 9px 0 0; border-top: 1px solid rgba(255,255,255,0.08); }
.hero-cam .mod .hs-act .note { margin: 0 0 7px; font-size: 10.5px; color: var(--faint); line-height: 1.5; }
.hero-cam .mod .hp-btns { display: flex; gap: 6px; }
.hero-cam .mod .hp-btn { font-size: 11px; padding: 6px 10px; }
.hero-cam .mod .hp-after { font-size: 11px; line-height: 1.6; }
.hero-cam .mod .m-go { appearance: none; border: 0; background: none; cursor: pointer; text-align: left; margin-top: auto; padding: 10px 0 0; font: inherit; }
.hero-cam .mod .m-go:hover { color: #e8c98d; }

/* 动态 + 系统动态 */
.hero-cam .wide { grid-template-columns: 1.15fr 1fr; align-items: start; gap: 20px; }
.hero-cam .wide .hv-w-bh { margin-bottom: 8px; }
.hero-cam .wide .hv-live li { padding: 3px 0; }
.hero-cam .wide .hv-feed li { padding: 6px 0; }

/* 右上：等你拍板的 */
.hero-cam .notes { width: 262px; }
.hero-cam .notes h3 { display: flex; align-items: center; gap: 8px; margin: 0 0 10px; font-size: 13px; }
.hero-cam .notes .hv-chips li { padding: 8px 9px; }
.hero-cam .notes .hv-chips p { font-size: 12px; }
.hero-cam .notes .hp-foot { margin-top: 10px; font-size: 10.5px; line-height: 1.6; }

/* 左下：军师 */
.hero-cam .edge-card { width: 262px; }
.hero-cam .edge-card .ec-p { margin: 0; font-size: 12px; line-height: 1.7; color: var(--dim); }
.hero-cam .edge-card .hv-verifyline { margin-top: 8px; }

/* 中下：章节条里的「问 AI」 */
.hero-cam .dock button.lead { appearance: none; border: 0; cursor: pointer; font: inherit; }

/* 右下：经营数据 */
.hero-cam .impact { width: 330px; }
.hero-cam .impact .i-head button { appearance: none; border: 0; background: none; cursor: pointer; font: inherit; font-size: 11px; color: var(--gp); padding: 0; }
.hero-cam .impact .i-head button:hover { color: #e8c98d; }
.hero-cam .impact .i-fine { margin: 8px 0 0; font-size: 10.5px; color: var(--faint); }

/* 面板里凡是按钮都要能点到：spatial.css 把 .world/.rig 当透明平面挂在 z=0，射线先打到它 */
.hero-cam .world, .hero-cam .rig { pointer-events: none; }
.hero-cam [data-panel] { pointer-events: auto; }

/* ── 手机/窄屏：上面那些桌面尺寸（deck 780 / rail 214）在这里全部让位，一列排 ── */
@media (max-width: 1080px), (max-height: 620px) {
  .hero-cam .env { overflow: hidden; }
  /* Directly opening a section hash can leave the desktop unlock class on the
     hero. On narrow screens that transform shifts the fixed background half
     a viewport off-canvas, so explicitly keep the mobile backdrop pinned. */
  .hero-cam.is-unlock .env { transform: none; }
  .hero-cam .deck, .hero-cam .rail, .hero-cam .notes, .hero-cam .edge-card, .hero-cam .impact, .hero-cam .dock { width: auto; max-width: 100%; }
  .hero-cam .d-top, .hero-cam .mods, .hero-cam .wide { grid-template-columns: 1fr; }
  .hero-cam .mod { padding: 14px 14px 12px; }
  .hero-cam .rail button { display: inline-block; width: auto; }
  .hero-cam .rail .r-g { display: inline-block; margin: 6px 6px 2px 4px; }
}
.hero-cam .env { overflow: hidden; }

/* ══ 舞台编排：点开某一块，别的玻璃往两边让、往后退一步，正中留给飞进来的弹层 ══ */
@media (min-width: 1081px) and (min-height: 621px) {
  .hero-cam [data-panel] {
    transform:
      translate(-50%, -50%)
      translate3d(calc(var(--px, 0px) + var(--sx, 0px)), calc(var(--py, 0px) + var(--sy, 0px)), calc(var(--pz, 0px) + var(--hz, 0px) + var(--sz, 0px)))
      rotateY(calc(var(--ry, 0deg) + var(--sry, 0deg))) rotateX(var(--rx, 0deg));
  }
  body.deck-focus .hero-cam [data-panel]:not(.deck) { --hz: 0px; opacity: 0.66; filter: saturate(0.9); transition-delay: 0s; }
  body.deck-focus .hero-cam .rail      { --sx: -120px; --sz: -220px; --sry: 12deg; }
  body.deck-focus .hero-cam .edge-card { --sx: -120px; --sy: 60px; --sz: -200px; }
  body.deck-focus .hero-cam .notes     { --sx: 100px; --sz: -220px; --sry: -12deg; }
  body.deck-focus .hero-cam .impact    { --sx: 90px; --sy: 60px; --sz: -200px; }
  body.deck-focus .hero-cam .dock      { --sy: 90px; --sz: -160px; opacity: 0.6; }
  body.deck-focus .hero-cam .deck      { --sx: -10px; --sy: 30px; --sz: 150px; --hz: 0px; box-shadow: 0 70px 140px -50px rgba(0,0,0,0.75); }
  body.hs-open .hero-cam [data-panel] { --hz: 0px; opacity: 0.62; filter: saturate(0.85) brightness(0.92); pointer-events: none; transition-delay: 0s; }
  body.hs-open .hero-cam .rail      { --sx: -240px; --sz: -300px; --sry: 16deg; }
  body.hs-open .hero-cam .edge-card { --sx: -220px; --sy: 70px; --sz: -240px; --sry: 10deg; }
  body.hs-open .hero-cam .notes     { --sx: 240px; --sz: -300px; --sry: -16deg; }
  body.hs-open .hero-cam .impact    { --sx: 220px; --sy: 70px; --sz: -240px; --sry: -10deg; }
  body.hs-open .hero-cam .deck      { --sy: -50px; --sz: -620px; opacity: 0.42; }
  body.hs-open .hero-cam .dock      { --sy: 150px; --sz: -260px; opacity: 0.5; }
}

/* ══ 2026-09-03：主卡 = 经营总览（图表 + 数据）+ H.OS Super Agent；「今天/动态」召唤工作台视图 ══ */
.hero-cam .deck.glass { background:
  linear-gradient(158deg, rgba(255,255,255,0.09), rgba(255,255,255,0.02) 42%, rgba(255,255,255,0.05)),
  rgba(7, 12, 24, 0.72); }
.hero-cam .d-head .logo{
  width:4.5rem;height:auto;min-height:1.5rem;border-radius:0;background:transparent;box-shadow:none;
}
.hero-cam .d-head .logo img{width:100%;height:auto;object-fit:contain}
.hero-cam .dock { display: none; }
.hero-cam .d-head h2 span { display: none; }
.hero-cam .deck[data-view="home"] .d-head h2 .t-home, .hero-cam .deck[data-view="today"] .d-head h2 .t-today { display: inline; }
.hero-cam .deck[data-view="home"] .d-head .chip.c-today, .hero-cam .deck[data-view="today"] .d-head .chip.c-home { display: none; }

.hero-cam .kpis { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; margin-bottom: 12px; }
.hero-cam .kpi { padding: 10px 12px 9px; border-radius: 12px; background: rgba(6, 10, 20, 0.34); border: 1px solid rgba(255,255,255,0.09); display: grid; grid-template-columns: 1fr auto; align-items: end; gap: 6px; }
.hero-cam .kpi small { grid-column: 1 / -1; font-size: 10.5px; color: var(--faint); letter-spacing: 0.06em; }
.hero-cam .kpi b { font-family:"Cinzel",Georgia,var(--tevo-cjk); font-size: 24px; font-weight: 500; line-height: 1; color: var(--ink); }
.hero-cam .kpi b sup { font-size: 12px; vertical-align: 0.5em; margin-right: 1px; }
.hero-cam .kpi em { font-style: normal; font-size: 10.5px; color: #83d8a6; white-space: nowrap; }
.hero-cam .kpi em.dn { color: #e0a58a; }
.hero-cam .kpi svg { grid-column: 1 / -1; width: 100%; height: 22px; display: block; overflow: visible; }

.hero-cam .charts { display: grid; grid-template-columns: 1.25fr 1fr 0.85fr; gap: 10px; margin-bottom: 12px; }
.hero-cam .ch { margin: 0; padding: 10px 12px 9px; border-radius: 12px; background: rgba(6, 10, 20, 0.3); border: 1px solid rgba(255,255,255,0.09); min-width: 0; }
.hero-cam .ch figcaption { display: flex; justify-content: space-between; align-items: baseline; font-size: 11px; color: var(--dim); margin-bottom: 6px; gap: 8px; }
.hero-cam .ch figcaption b { font-weight: 500; color: var(--ink); font-size: 12px; }
.hero-cam .ch figcaption span { color: var(--faint); font-size: 10px; white-space: nowrap; }
.hero-cam .ch svg { width: 100%; height: auto; display: block; overflow: visible; }
.hero-cam .ch .ax { font-family:"Cinzel",Georgia,var(--tevo-cjk); font-size: 8.5px; fill: rgba(246,243,236,0.5); }
.hero-cam .ch .lb { font-size: 9.5px; fill: rgba(246,243,236,0.78); }
.hero-cam .ch .lb.me { fill: #c2a166; }
.hero-cam .ch .v { font-family:"Cinzel",Georgia,var(--tevo-cjk); font-size: 9.5px; fill: rgba(246,243,236,0.9); }
.hero-cam .ch-mix .leg { display: grid; grid-template-columns: 1fr 1fr; gap: 3px 8px; margin-top: 6px; font-size: 10px; color: var(--dim); }
.hero-cam .ch-mix .leg i { display: inline-block; width: 7px; height: 7px; border-radius: 2px; margin-right: 5px; vertical-align: 0; }
.hero-cam .ch-mix .leg b { float: right; font-family:"Cinzel",Georgia,var(--tevo-cjk); font-weight: 500; color: var(--ink); }
.hero-cam .ch-week { grid-column: 1 / -1; }

/* Super Agent：像一条常驻的对话栏，点哪儿都打开问答弹层 */
.hero-cam .agent { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 12px; padding: 9px 10px 9px 12px; border-radius: 14px;
  background: linear-gradient(90deg, rgba(194,161,102,0.16), rgba(194,161,102,0.05) 55%, rgba(255,255,255,0.03)); border: 1px solid rgba(194,161,102,0.34); }
.hero-cam .agent .a-id { display: flex; align-items: center; gap: 8px; font-family:"Cinzel",Georgia,var(--tevo-cjk); font-size: 11px; letter-spacing: 0.14em; color: var(--gp); white-space: nowrap; }
.hero-cam .agent .a-id i { width: 8px; height: 8px; border-radius: 50%; background: var(--gp); box-shadow: 0 0 10px var(--gp); animation: hd-pulse 2.4s ease-in-out infinite; }
@keyframes hd-pulse { 0%, 100% { opacity: 1; } 50% { opacity: 0.35; } }
.hero-cam .agent button { appearance: none; font: inherit; cursor: pointer; }
.hero-cam .agent .a-in { text-align: left; min-width: 0; padding: 8px 12px; border-radius: 999px; border: 1px solid rgba(255,255,255,0.14); background: rgba(6,10,20,0.4); color: var(--dim); font-size: 12.5px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.hero-cam .agent .a-in:hover { border-color: rgba(194,161,102,0.6); color: var(--ink); }
.hero-cam .agent .a-chips { display: flex; gap: 6px; }
.hero-cam .agent .a-chips button { padding: 6px 10px; border-radius: 999px; border: 1px solid rgba(255,255,255,0.14); background: transparent; color: var(--dim); font-size: 11px; white-space: nowrap; }
.hero-cam .agent .a-chips button:hover { color: var(--ink); border-color: rgba(194,161,102,0.6); }
@media (max-width: 1080px), (max-height: 620px) {
  .hero-cam .kpis { grid-template-columns: 1fr 1fr; }
  .hero-cam .charts { grid-template-columns: 1fr; }
  .hero-cam .agent { grid-template-columns: 1fr; }
  .hero-cam .agent .a-chips { flex-wrap: wrap; }
}
