/* =========================================================
   Follow.WEI · 马炜 个人 IP 独立站 — 全局样式（4 主题换肤）
   财富(白底·香奈儿金) / 绽放(彩色) / 赢家(金+帝王绿) / 智慧(智慧蓝)
   ========================================================= */

/* ---------- 默认主题：财富（白底 + 香奈儿柔和金，带流光） ---------- */
:root, [data-theme="wealth"] {
  --bg:#FBF9F4; --bg-2:#F4EDE2; --bg-3:#ECE1D1;
  --primary:#0ABAB5;            /* 蒂芙尼蓝：主色 */
  --primary-bright:#2bc4bf;     /* 流光高光 */
  --primary-deep:#08897f;
  --accent:#C6D7DB;             /* 柔天青 */
  --text:#2B2419; --muted:rgba(43,36,25,.62);
  --line:rgba(10,186,181,.30); --line-soft:rgba(43,36,25,.10);
  --shadow:rgba(8,137,127,.16);
  --gold:#0ABAB5;

  --ff-sans:"PingFang SC","Microsoft YaHei","Source Han Sans SC","Noto Sans SC",sans-serif;
  --ff-serif:"Source Han Serif SC","Songti SC","Noto Serif SC",serif;
  --ff-en:"Outfit","Manrope","Helvetica Neue",Arial,sans-serif;
  --ease:cubic-bezier(0.16,1,0.3,1);
  --gutter:20px; --gutter-md:35px; --maxw:1280px;
}

/* 绽放：彩色，暖白底 */
[data-theme="bloom"] {
  --bg:#FBF5EF; --bg-2:#F4E9DF; --bg-3:#EAD9CC;
  --primary:#0ABAB5; --primary-bright:#2bc4bf; --primary-deep:#08897f;
  --accent:#C6D7DB;
  --text:#2A2030; --muted:rgba(42,32,48,.62);
  --line:rgba(10,186,181,.28); --line-soft:rgba(42,32,48,.10);
  --shadow:rgba(8,137,127,.18);
  --gold:#0ABAB5;
}
/* 赢家：青白薄雾（极淡绿 + 微蓝白调 · 自然美学 / 静谧 / 清新 / 优雅）+ 深森林绿字 */
  [data-theme="winner"] {
    --bg:#D6EEDD;
    --bg-2:#C5DDD0;
    --bg-3:#A8C8B0;
    --primary:#0ABAB5;
    --primary-bright:#2bc4bf;
    --primary-deep:#08897f;
    --accent:#C6D7DB;
    --jade:#0ABAB5;
    --jade-glow:rgba(10,186,181,.45);
    --text:#13433a;
    --muted:rgba(8,103,90,.62);
    --line:rgba(10,186,181,.24); --line-soft:rgba(8,103,90,.10);
    --shadow:rgba(8,137,127,.18);
    --gold:#0ABAB5;
  }
  /* 赢家页：青白薄雾底 (#D6EEDD) + 深森林绿字 (#1F5A3F) + ShinyText 深绿光流光 */
  #winnerDetail { padding:28px var(--gutter); }
/* 智慧：蒂芙尼蓝（深底 · 灵动闪亮）—— 珠宝感高级色调。
     --primary = 亮蒂芙尼蓝，--primary-bright = 流光高光，--gold = 金点缀。 */
[data-theme="wisdom"] {
  --bg:url('../img/tiffany-blue-bg.jpg');
  --bg-2:#8dcdcb;
  --bg-3:#b8e3e0;
  --primary:#0ABAB5;
  --primary-bright:#5fe3dd;
  --primary-deep:#08897f;
  --accent:#C6D7DB;
  --text:#0E3B3D;
  --muted:rgba(14,59,61,.62);
  --line:rgba(14,59,61,.22); --line-soft:rgba(14,59,61,.10);
  --shadow:rgba(8,137,127,.30);
  --gold:#0ABAB5;
}

* { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; }
body {
  background:var(--bg); color:var(--text);
  font-family:var(--ff-sans); font-size:16px; line-height:1.75;
  -webkit-font-smoothing:antialiased; overflow-x:hidden;
  transition:background .6s var(--ease), color .6s var(--ease);
}
a { color:inherit; text-decoration:none; }
img { display:block; max-width:100%; }
button { font-family:inherit; cursor:pointer; border:none; background:none; color:inherit; }
.font-en { font-family:var(--ff-en); }
.font-serif { font-family:var(--ff-serif); }
.hl { color:var(--primary); }

/* 香奈儿金 · 流光文字 */
.gold-shimmer {
  background:linear-gradient(100deg,#b89150 0%,#e9d6a6 20%,#d8b86c 40%,#f5e9c6 55%,#cdaa5e 74%,#b89150 100%);
  background-size:220% auto;
  -webkit-background-clip:text; background-clip:text;
  -webkit-text-fill-color:transparent; color:transparent;
  animation:goldShimmer 5.5s linear infinite;
}

.wrap { width:100%; max-width:var(--maxw); margin:0 auto; padding:0 var(--gutter); }
@media (min-width:768px){ .wrap{ padding:0 var(--gutter-md); } }

/* 全宽出血（贴边）：让 .full-bleed 突破 .wrap 的 max-width 限制 */
.full-bleed { width:100vw; margin-left:calc(50% - 50vw); margin-right:calc(50% - 50vw); }
.section--bleed { padding-left:0; padding-right:0; }

/* ---------- 导航（首页 hero 上完全透明 · 滚动出 hero 后玻璃态） ---------- */
  .nav {
    position:fixed; top:0; left:0; width:100%; z-index:50;
    display:flex; align-items:center; gap:18px;
    padding:15px var(--gutter);
    background:transparent; border-bottom:1px solid transparent;
    backdrop-filter:none; -webkit-backdrop-filter:none;
    transition:background .5s var(--ease), backdrop-filter .5s var(--ease), border-color .5s var(--ease), box-shadow .5s var(--ease);
  }
  @media (min-width:768px){ .nav{ padding:18px var(--gutter-md); } }
  /* 滚动过首页 hero 后：完全透明，只留字 */
  .nav.is-floating-glass {
    background:transparent;
    backdrop-filter:none; -webkit-backdrop-filter:none;
    border-bottom-color:transparent;
    box-shadow:none;
  }
  /* 兼容旧 .scrolled 类（兜底）：同样透明 */
  .nav.scrolled.is-floating-glass,
  .nav.scrolled:not(.is-floating-glass) {
    background:transparent;
    border-bottom:1px solid transparent;
  }
.nav__brand { font-family:var(--ff-en); font-weight:700; letter-spacing:.03em; font-size:18px; white-space:nowrap; }
.nav__brand b { color:var(--primary); }
@media (max-width:560px){ .nav__brand{ font-size:15px; } }
.nav__tabs { display:flex; gap:4px; margin-left:auto; }
.nav__tab {
  position:relative; padding:7px 12px; font-size:13px; letter-spacing:.04em;
  color:var(--muted); border:1px solid transparent; border-radius:999px; transition:.35s var(--ease);
  white-space:nowrap;
}
@media (min-width:920px){ .nav__tabs{ gap:6px; } .nav__tab{ padding:9px 16px; font-size:14px; } }
@media (max-width:560px){ .nav__tabs{ gap:2px; margin-left:6px; } .nav__tab{ padding:5px 7px; font-size:10.5px; letter-spacing:.01em; } }
.nav__tab:hover { color:var(--text); }
.nav__tab.active { color:var(--primary); border-color:var(--line); background:color-mix(in srgb,var(--primary) 8%, transparent); }
.nav__member {
  display:inline-flex; align-items:center; gap:7px; padding:9px 18px;
  border:1px solid var(--primary); color:var(--primary); font-size:13px; letter-spacing:.06em;
  background:color-mix(in srgb,var(--primary) 7%, transparent); transition:all .3s var(--ease); border-radius:999px;
  white-space:nowrap;
}
@media (max-width:920px){ .nav__member{ display:none; } }
.nav__member:hover { background:var(--primary); color:var(--bg); }
.nav__member .dot { width:6px; height:6px; border-radius:50%; background:var(--primary); }
.nav__member:hover .dot { background:var(--bg); }
.nav__lang { margin-left:12px; font-size:12px; color:var(--muted); border:1px solid var(--line-soft); padding:7px 11px; border-radius:999px; transition:.3s; }
.nav__lang:hover { color:var(--primary); border-color:var(--line); }
@media (max-width:920px){ .nav__lang{ display:none; } }
/* 预约咨询（nav 内 · 与"成为她的会员"并列） */
.nav__book { display:inline-flex; align-items:center; padding:9px 18px; margin-left:6px;
  font-size:13px; letter-spacing:.06em; color:var(--primary); border:1px solid var(--primary); border-radius:999px;
  background:color-mix(in srgb,var(--primary) 7%, transparent); transition:all .3s var(--ease); white-space:nowrap; }
.nav__book:hover { background:var(--primary); color:var(--bg); }
@media (max-width:560px){ .nav__book{ padding:6px 10px; font-size:11px; margin-left:4px; letter-spacing:.02em; } }
.nav__burger { display:none; flex-direction:column; gap:5px; margin-left:8px; width:30px; padding:0; background:transparent; border:0; }
.nav__burger span { height:1.5px; background:var(--text); transition:.3s; }
@media (max-width:920px){ .nav__burger{ display:flex; } }

/* 非浮窗态导航文字（含浅底页面如会员/预约/后台）：统一蓝色，保证可读且各页一致 */
.nav:not(.is-floating-glass) { color:#0ABAB5; }
.nav:not(.is-floating-glass) .nav__brand,
.nav:not(.is-floating-glass) .nav__tab,
.nav:not(.is-floating-glass) .nav__lang { color:#0ABAB5; }
.nav:not(.is-floating-glass) .nav__brand b { color:#0ABAB5; }
.nav:not(.is-floating-glass) .nav__tab.active { color:#0ABAB5; border-color:rgba(10,186,181,.45); background:rgba(10,186,181,.14); }
.nav:not(.is-floating-glass) .nav__tab:hover { color:#0ABAB5; }
.nav:not(.is-floating-glass) .nav__lang { color:#0ABAB5; border-color:rgba(10,186,181,.4); }
.nav:not(.is-floating-glass) .nav__burger span { background:#0ABAB5; }
.nav:not(.is-floating-glass) .nav__member { color:#0ABAB5; border-color:rgba(10,186,181,.6); background:rgba(10,186,181,.10); }
.nav:not(.is-floating-glass) .nav__member:hover { background:#0ABAB5; color:#0c0c0c; }
.nav:not(.is-floating-glass) .nav__book { color:#0ABAB5; border-color:rgba(10,186,181,.6); background:rgba(10,186,181,.10); }
.nav:not(.is-floating-glass) .nav__book:hover { background:#0ABAB5; color:#0c0c0c; }

/* 四主题导航品牌字逐页换色（修复原始 :not(.is-floating-glass) 守卫致非财富页失效） */
body[data-theme="wealth"] .nav__brand b { color:#0ABAB5; }
body[data-theme="bloom"]   .nav__brand b { color:#E8746B; }
body[data-theme="winner"]  .nav__brand b { color:#1F5A3F; }
body[data-theme="wisdom"]  .nav__brand b { color:#0E3B3D; }

.mmenu { position:fixed; inset:0; z-index:60; background:color-mix(in srgb,var(--bg) 97%, transparent); backdrop-filter:blur(10px);
  display:flex; flex-direction:column; padding:90px var(--gutter) 40px; gap:16px;
  opacity:0; visibility:hidden; transform:translateY(-12px); transition:all .45s var(--ease); }
.mmenu.open { opacity:1; visibility:visible; transform:none; }
.mmenu a { font-size:22px; }
.mmenu a.active, .mmenu a:hover { color:var(--primary); }
.mmenu__close { position:absolute; top:22px; right:22px; font-size:26px; }

/* ---------- 金/主色按钮 ---------- */
.btn {
  display:inline-flex; align-items:center; gap:9px; padding:13px 24px;
  background:var(--primary); color:#fff; font-size:14px; letter-spacing:.04em; font-weight:600;
  transition:background .3s var(--ease), transform .3s var(--ease); border-radius:2px;
}
.btn:hover { background:var(--primary-bright); transform:translateY(-2px); }
.btn--ghost { background:transparent; color:var(--primary); border:1px solid var(--primary); }
.btn--ghost:hover { background:color-mix(in srgb,var(--primary) 12%, transparent); }
.btn--block { width:100%; justify-content:center; }
/* 会员引导 · 编辑式非对称横带（打破 AI 居中感） */
.cta-band { display:grid; gap:24px; align-items:center; }
@media (min-width:768px){ .cta-band{ grid-template-columns:1fr auto; } .cta-band .btn{ justify-self:end; } }
.cta-band .section__lead { margin:0; }

/* ---------- 标签面板 ---------- */
.tab-panel { display:none; }
.tab-panel.active { display:block; animation:fadeIn .6s var(--ease); }
.section { padding:110px 0 90px; position:relative; }
.section--tight { padding:70px 0; }
.section__kicker { font-family:var(--ff-en); letter-spacing:.28em; font-size:12px; color:var(--primary); text-transform:uppercase; }
.section__title { font-family:var(--ff-serif); font-weight:600; font-size:30px; margin:14px 0 16px; line-height:1.2; }
@media (min-width:768px){ .section__title{ font-size:42px; } }
.section__lead { color:var(--muted); max-width:640px; }
.reveal { opacity:0; transform:translateY(24px); transition:opacity .9s var(--ease), transform .9s var(--ease); }
  .reveal.in { opacity:1; transform:none; }
  /* reveal 变体：单纯淡入 / 从左 / 缓慢上浮 */
  .reveal--fade { transform:none; }
  .reveal--left { transform:translateX(-32px); }
  .reveal--left.in { transform:none; }
  .reveal--soft { transition-duration:1.2s; }

/* ---------- 财富 Hero（白底 · 香奈儿金流光 + 影视飓风式分层动效） ---------- */
  .hero { position:relative; min-height:100vh; min-height:100dvh; display:flex; align-items:center; overflow:hidden; isolation:isolate; }
  .hero--full { padding-top:0; }
  /* hero 照片背景（替代原 .hero__bg 渐变图） */
  .hero__photo { position:absolute; inset:0; z-index:0; overflow:hidden; background:#0c0c0c; }
  .hero__photo img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center 30%; filter:brightness(.78) contrast(1.05) saturate(.95); animation:heroPhotoIn 1.4s var(--ease) both; }
  /* 渐变暗化（保证浅底文字可读） */
  .hero__photo::after { content:""; position:absolute; inset:0;
    background:
      linear-gradient(180deg, rgba(0,0,0,.30) 0%, rgba(0,0,0,.06) 30%, rgba(0,0,0,0) 56%, rgba(0,0,0,.30) 100%),
      radial-gradient(120% 80% at 80% 50%, transparent 0%, rgba(0,0,0,.10) 70%, rgba(0,0,0,.30) 100%);
    pointer-events:none; }
  @keyframes heroPhotoIn { from{ opacity:0; transform:scale(1.06); } to{ opacity:1; transform:none; } }
  /* 顶部影视飓风式暗角 + 微噪点，给透明 nav 提供可读性 */
  .hero__vignette { position:absolute; inset:0; z-index:1; pointer-events:none;
    background:linear-gradient(to bottom, rgba(0,0,0,.30) 0%, rgba(0,0,0,0) 22%, rgba(0,0,0,0) 60%, rgba(0,0,0,.18) 100%); }
  .hero__grid { position:absolute; inset:0; z-index:2; pointer-events:none; }
  .hero__grid .v { position:absolute; top:0; height:100%; width:1px; background:rgba(255,255,255,.10); transform:scaleY(0); transform-origin:top; animation:gridV 1.2s var(--ease) forwards; }
  .hero__grid .h { position:absolute; left:0; width:100%; height:1px; background:rgba(255,255,255,.10); transform:scaleX(0); transform-origin:left; animation:gridH 1.2s var(--ease) forwards; }
  .hero__content { position:relative; z-index:3; width:100%; padding-top:90px; }
  .hero__eyebrow { font-family:var(--ff-en); letter-spacing:.32em; font-size:12px; color:var(--primary-bright); text-transform:uppercase; margin-bottom:22px; opacity:0; animation:fadeUp .9s var(--ease) .2s forwards; display:inline-flex; align-items:center; gap:14px; }
  .hero__eyebrow::before { content:""; display:inline-block; width:36px; height:1px; background:var(--primary-bright); }
  .hero__title { font-family:var(--ff-serif); font-weight:600; line-height:1.18; letter-spacing:.005em; font-size:24px; max-width:920px; opacity:0; animation:fadeUp 1.05s var(--ease) .42s forwards; color:#FFFFFF; }
  @media (min-width:560px){ .hero__title{ font-size:30px; } }
  @media (min-width:640px){ .hero__title{ font-size:38px; } }
  @media (min-width:920px){ .hero__title{ font-size:54px; } }
  @media (min-width:1280px){ .hero__title{ font-size:72px; letter-spacing:.01em; } }
  .hero__sub { margin-top:30px; max-width:560px; color:var(--muted); font-size:16px; opacity:0; animation:fadeUp 1s var(--ease) .65s forwards; display:none; }
  .hero__cta { margin-top:42px; display:flex; gap:16px; flex-wrap:wrap; opacity:0; animation:fadeUp 1s var(--ease) .9s forwards; }
  .hero__cta .btn:nth-child(1){ animation:btnIn .9s var(--ease) 1.0s backwards; }
  .hero__cta .btn:nth-child(2){ animation:btnIn .9s var(--ease) 1.18s backwards; }
  .hero__cta .btn:nth-child(3){ animation:btnIn .9s var(--ease) 1.34s backwards; }
  @keyframes btnIn { from{ opacity:0; transform:translateY(18px); } to{ opacity:1; transform:none; } }
  /* 滚动指示：SCROLL + 长滑条 + 顺滑动效 */
  .hero__scroll { position:absolute; bottom:30px; left:50%; transform:translateX(-50%); z-index:3; font-size:10px; letter-spacing:.32em; color:rgba(255,255,255,.85); display:flex; flex-direction:column; align-items:center; gap:10px; opacity:0; animation:fadeUp .9s var(--ease) 1.4s forwards; }
  .hero__scroll .bar { width:1px; height:46px; background:linear-gradient(#fff,transparent); animation:scrollPulse 2s infinite; position:relative; overflow:hidden; }
  .hero__scroll .bar::after { content:""; position:absolute; top:0; left:0; width:100%; height:14px; background:linear-gradient(#fff,transparent); animation:scrollDot 2.2s infinite; }
  @keyframes scrollDot { 0%{ transform:translateY(-14px); } 60%,100%{ transform:translateY(46px); } }

/* ShinyText 效果（@react-bits 端口 · CSS only · 标题大字金色扫光） */
.hero__title--shiny {
  background-image: linear-gradient(120deg,
    rgba(255,255,255,.96) 0%,
    rgba(255,255,255,.96) 35%,
    #0ABAB5 50%,
    rgba(255,255,255,.96) 65%,
    rgba(255,255,255,.96) 100%);
  background-size: 220% auto;
  -webkit-background-clip: text; background-clip: text;
  -webkit-text-fill-color: transparent; color: transparent;
  animation: fadeUp 1.05s var(--ease) .42s forwards, shineSweep 4s linear infinite .42s;
}
@keyframes shineSweep {
  0% { background-position: 150% center; }
  100% { background-position: -50% center; }
}
@media (prefers-reduced-motion: reduce){ .hero__title--shiny { animation:none; background-position: 50% center; } }

/* ============================================================
   主标题第二行错开 2 字符（stagger offset）
   "前两错开两个字符的位置"：行 1 不缩进，行 2 缩进 2ch
   ============================================================ */
.hero__title .hero__line--offset {
  display: inline-block;
  padding-left: 2ch;
}

/* ============================================================
   首页 gallery · inline 树状详情（点击照片 → 在下方展开）
   每张卡片 5 段子项（图片 + 一句话占位），纵向延展，
   统一左文右图（无左右交替），中间一条金线 SVG 曲线贯穿。
   ============================================================ */
/* ============================================================
   首页 gallery · inline 树状详情（点击照片 → 在下方展开）
   统一「左文右图」，中间一条金线 SVG 曲线贯穿到底（直到照片与文字结束处）。
   照片放大为长方形（4:3 偏横），无圆点编号。
   ============================================================ */
#homeGalleryDetail {
  display: none;
  scroll-margin-top: 84px;
  max-width: var(--maxw);
  margin: 30px auto 80px;
  padding: 0 var(--gutter);
  position: relative;
}
#homeGalleryDetail.active { display: block; animation: hgFade .5s var(--ease); }
@keyframes hgFade { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: none; } }

.hg-detail { position: relative; }
.hg-detail__head {
  display: flex; align-items: flex-start; justify-content: space-between; gap: 20px;
  padding: 22px 0 30px; margin-bottom: 18px;
  border-bottom: 1px solid var(--line-soft);
  text-align: left;
}
.hg-detail__kicker {
  font-family: var(--ff-en); font-size: 11px; letter-spacing: .28em;
  color: var(--primary); text-transform: uppercase; margin-bottom: 12px;
}
.hg-detail__title {
  font-family: var(--ff-serif); font-size: clamp(26px, 3.4vw, 40px);
  font-weight: 600; line-height: 1.2; margin: 0 0 12px; color: var(--text);
}
.hg-detail__desc { color: var(--muted); font-size: 15px; line-height: 1.85; max-width: 620px; }
.hg-detail__back {
  flex: 0 0 auto; cursor: pointer; color: var(--primary);
  font-size: 14px; padding: 6px 0; white-space: nowrap;
}
.hg-detail__back:hover { text-decoration: underline; }

.hg-detail__body {
  position: relative;
  display: grid;
  grid-template-columns: 1fr 1fr;          /* 单列，让 row 占满宽 */
  column-gap: 64px;
  align-items: start;
  row-gap: 0;
  padding: 14px 0 24px;
}
@media (min-width: 768px) { .hg-detail__body { column-gap: 112px; } }

/* 中间金线：绝对定位贯穿整个 body（脱离 grid，页面正中，从顶到底） */
.hg-detail__spine {
  position: absolute;
  top: 0; bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 90px;
  pointer-events: none;
  z-index: 0;
  opacity: .95;
  display: block;
  overflow: visible;
}
.hg-detail__spine > svg {
  width: 100%;
  height: 100%;
  display: block;
}

/* S 形对角线错落布局（按大佬截图精确复刻）：
   第 1 行 (i=0): 文左上 (row1/col1) + 照右上 (row1/col3) — 同行顶部
   第 2 行 (i=1): 照左上 (row1/col1) + 文右下 (row2/col3) — 对角线
   第 3 行 (i=2): 文左下 (row2/col1) + 照右上 (row1/col3) — 对角线
   第 4 行 (i=3): 照左上 (row1/col1) + 文右下 (row2/col3) — 对角线
   第 5 行 (i=4): 文左下 (row2/col1) + 照右上 (row1/col3) — 对角线
   照片尺寸 480×720（2:3）不动。 */
.hg-detail__row {
  position: relative;
  display: grid;
  grid-template-columns: 0.9fr 90px 3fr;
  grid-template-rows: auto auto;         /* 2 行：顶部行 + 底部行 */
  column-gap: 0;
  row-gap: 20px;                         /* 文与照之间的间距（小，紧贴） */
  z-index: 1;
  animation: hgRowIn .55s var(--ease) both;
}
/* 两列错落：每列从上到下 [图·文·图·文]，tight gap；照片 2:3 不动；中缝金线贯穿 */
.hg-detail__col {
  display: flex;
  flex-direction: column;
  gap: 84px;                             /* 文块下方到下一张图：原 18px + 2 行(44) + 1 行(22) = 3 行 */
  min-width: 0;
}
.hg-detail__col--left  { align-items: flex-start; }   /* 贴左列左缘 */
.hg-detail__col--right { align-items: flex-end;   }   /* 贴右列右缘 */

.hg-detail__item { margin: 0; display: flex; flex-direction: column; gap: 88px; width: 100%; max-width: 494px; }  /* 图与文之间：原 22px(1行)+2行(44)+1行(22)=4 行间距；照片 1.3×(380→494) */
.hg-detail__col--left  .hg-detail__item { align-items: flex-start; }
.hg-detail__col--right .hg-detail__item { align-items: flex-end; }

/* 右列最后一张图以图片结尾：文案做成图上小字（保留内容，视觉仍以图收尾） */
.hg-detail__media--cap { position: relative; }
.hg-detail__capoverlay {
  position: absolute; left: 0; right: 0; bottom: 0;
  padding: 16px 16px 18px;
  background: linear-gradient(to top, rgba(0,0,0,.6), rgba(0,0,0,0));
  text-align: left;
}
.hg-detail__capoverlay .hg-detail__tag { color: #fff; border-color: rgba(255,255,255,.55); background: rgba(255,255,255,.1); margin-bottom: 8px; }
.hg-detail__capoverlay div { color: #fff; font-size: 14px; line-height: 1.6; }

.hg-detail__cap {
  text-align: left;
  margin: 0;
  font-family: var(--ff-zh);
  font-size: 15px; line-height: 1.7;
  color: var(--text);
  letter-spacing: .02em;
}
.hg-detail__col--right .hg-detail__cap { text-align: right; }

/* 左列最顶部开篇文字（独立一段，不与某张图配对） */
.hg-detail__intro {
  text-align: left;
  margin: 0 0 4px;
  font-family: var(--ff-zh);
  font-size: 16px; line-height: 1.85;
  color: var(--text);
  letter-spacing: .02em;
  max-width: 494px;                      /* 同步到照片宽度，左列整体齐宽 */
}
.hg-detail__intro .hg-detail__tag { margin-bottom: 10px; }

.hg-detail__text {
  text-align: left;
  margin: 0; padding: 0 28px 0 0;
  font-family: var(--ff-zh);
  font-size: 15px; line-height: 1.7;
  color: var(--text);
  letter-spacing: .02em;
  max-width: 260px;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.hg-detail__spacer { grid-column: 2; grid-row: 1 / 3; width: 90px; }   /* 中缝跨两行 */
.hg-detail__media {
  width: 100%;
  max-width: 494px;                      /* 照片放大 1.3×(380→494)，aspect 2/3 不变 */
  aspect-ratio: 2 / 3;
  margin: 0; padding: 0;
  border-radius: 14px;
  overflow: hidden;
  border: 1px solid var(--line-soft);
  background: var(--bg-2);
  box-shadow: 0 18px 60px rgba(0,0,0,.22);
  transition: transform .5s var(--ease), box-shadow .5s var(--ease);
}
.hg-detail__media img { width: 100%; height: 100%; object-fit: cover; display: block; }

/* ⚠️ 用 data-node-i 属性选择器锁定每行，避开 spine div 导致的 :nth-of-type 偏移一位 bug */
/* ===== 第 1 行 (data-node-i="0"): 文左上 + 照右上（同行顶部） ===== */
.hg-detail__row[data-node-i="0"] .hg-detail__text { grid-column: 1; grid-row: 1; align-self: start; justify-self: start; }
.hg-detail__row[data-node-i="0"] .hg-detail__media { grid-column: 3; grid-row: 1; justify-self: end; }

/* ===== 第 2 行 (data-node-i="1"): 照左上 + 文右下（对角线） ===== */
.hg-detail__row[data-node-i="1"] .hg-detail__media { grid-column: 1; grid-row: 1; justify-self: start; }
.hg-detail__row[data-node-i="1"] .hg-detail__text { grid-column: 3; grid-row: 2; text-align: right; justify-self: end; padding: 0 0 0 28px; }

/* ===== 第 3 行 (data-node-i="2"): 文左下 + 照右上（对角线） ===== */
.hg-detail__row[data-node-i="2"] .hg-detail__text { grid-column: 1; grid-row: 2; align-self: start; justify-self: start; }
.hg-detail__row[data-node-i="2"] .hg-detail__media { grid-column: 3; grid-row: 1; justify-self: end; }

/* ===== 第 4 行 (data-node-i="3"): 照左上 + 文右下（对角线） ===== */
.hg-detail__row[data-node-i="3"] .hg-detail__media { grid-column: 1; grid-row: 1; justify-self: start; }
.hg-detail__row[data-node-i="3"] .hg-detail__text { grid-column: 3; grid-row: 2; text-align: right; justify-self: end; padding: 0 0 0 28px; }

/* ===== 第 5 行 (data-node-i="4"): 文左下 + 照右上（对角线） ===== */
.hg-detail__row[data-node-i="4"] .hg-detail__text { grid-column: 1; grid-row: 2; align-self: start; justify-self: start; }
.hg-detail__row[data-node-i="4"] .hg-detail__media { grid-column: 3; grid-row: 1; justify-self: end; }

.hg-detail__media:hover { transform: translateY(-4px) scale(1.02); box-shadow: 0 24px 80px rgba(0,0,0,.32); }

/* 占位胶囊（无数字） */
.hg-detail__tag {
  display: inline-block;
  padding: 5px 12px;
  background: var(--bg-2);
  border: 1px dashed var(--line);
  border-radius: 999px;
  font-size: 11px; letter-spacing: .18em;
  color: var(--muted);
  margin-bottom: 14px;
  font-family: var(--ff-en);
  text-transform: uppercase;
}

/* 窄屏：两列合并为单列堆叠、隐藏金线 */
@media (max-width: 760px) {
  #homeGalleryDetail { padding: 0 18px; }
  .hg-detail__body { grid-template-columns: 1fr; column-gap: 0; }
  .hg-detail__col--left, .hg-detail__col--right { align-items: stretch; }
  .hg-detail__item { max-width: 100%; align-items: stretch; }
  .hg-detail__media { max-width: 100%; aspect-ratio: 4 / 3; }
  .hg-detail__spine { display: none; }
}

/* ============================================================
   Phase C · ① Hero 第三行「构建经得起时间考验…」金字 + 缩小 + 单行
   覆盖 ShinyText 的大字继承：用更小的字号、单行不换行、金色。
   ============================================================ */
.hero__title em {
  display: inline-block;
  font-style: normal;
  font-family: var(--ff-serif);
  /* 比上面两行（主标题）整体小一号：相对主标题字号 ×0.62，任何断点都同步缩放 */
  font-size: .62em;
  line-height: 1.4;
  letter-spacing: .14em;
  white-space: nowrap;
  color: #0ABAB5;
  margin-top: .35em;
  text-shadow: 0 1px 12px rgba(10, 186, 181, .35);
}

/* ============================================================
   Phase C · ③ 导航栏苹果风液态玻璃（liquid-glass）
   给 .nav 常驻半透明毛玻璃衬底 + 内高光白边 + 微外阴影。
   滚动后（is-floating-glass）强化不透明度，让导航字像浮在玻璃上。
   注意：hero 顶部是透明态文字（白字），玻璃仍垫一层极淡底避免糊。
   ============================================================ */
.nav {
  position: fixed; top: 0; left: 0; right: 0; z-index: 50;
  /* 页眉完全透明：去掉所有背景 / 边框 / 阴影，只保留导航字浮在页面上 */
  background: transparent;
  border-bottom: none;
  box-shadow: none;
}
/* 滚动离开 hero 后：同样完全透明，只留字 */
.nav.is-floating-glass {
  background: transparent;
  border-bottom-color: transparent;
  box-shadow: none;
}
/* hero 顶部白字态：透明，只留字 */
.nav:not(.is-floating-glass) {
  background: transparent;
  border-bottom-color: transparent;
}
/* 导航里的小胶囊（会员入口 / 语言按钮）：去掉背景，只留文字 + 描边 */
.nav__member, .nav__book, .nav__lang {
  background: transparent;
}

/* ============================================================
   Phase D · ② 首页（wealth）右上角导航字金色
   仅在财富页 hero 顶部白字态时生效——其它标签页 / 滚动玻璃态保持原色。
   ============================================================ */
body[data-theme="wealth"] .nav:not(.is-floating-glass) .nav__brand,
body[data-theme="wealth"] .nav:not(.is-floating-glass) .nav__tab,
body[data-theme="wealth"] .nav:not(.is-floating-glass) .nav__lang {
  color: #0ABAB5;
}
body[data-theme="wealth"] .nav:not(.is-floating-glass) .nav__brand b { color: #0ABAB5; }
body[data-theme="wealth"] .nav:not(.is-floating-glass) .nav__tab.active {
  color: #0ABAB5;
  border-color: rgba(10, 186, 181, 0.55);
  background: rgba(10, 186, 181, 0.14);
}
body[data-theme="wealth"] .nav:not(.is-floating-glass) .nav__tab:hover { color: #2bc4bf; }
body[data-theme="wealth"] .nav:not(.is-floating-glass) .nav__member {
  color: #0ABAB5;
  border-color: rgba(10, 186, 181, 0.55);
  background: rgba(10, 186, 181, 0.10);
}
body[data-theme="wealth"] .nav:not(.is-floating-glass) .nav__member:hover { background: #0ABAB5; color: #0c0c0c; }
body[data-theme="wealth"] .nav:not(.is-floating-glass) .nav__book {
  color: #0ABAB5;
  border-color: rgba(10, 186, 181, 0.55);
  background: rgba(10, 186, 181, 0.10);
}
body[data-theme="wealth"] .nav:not(.is-floating-glass) .nav__book:hover { background: #0ABAB5; color: #0c0c0c; }
body[data-theme="wealth"] .nav:not(.is-floating-glass) .nav__lang {
  color: #0ABAB5;
  border-color: rgba(10, 186, 181, 0.45);
}



  /* ---------- 时间轴（首页故事 · 5 段 · 图占位 + 点击展开详情） ---------- */
  .timeline-wrap { width:100%; max-width:var(--maxw); margin:0 auto; padding:0 var(--gutter); }
  @media (min-width:768px){ .timeline-wrap { padding:0 var(--gutter-md); } }
  .timeline { position:relative; padding:6px 0 0 6px; counter-reset:tl; list-style:none; }
  .timeline::before { content:""; position:absolute; left:42px; top:30px; bottom:40px; width:1px; background:linear-gradient(to bottom, transparent 0%, var(--line) 8%, var(--line) 92%, transparent 100%); }
  .timeline__item { position:relative; display:grid; grid-template-columns:90px 1fr; column-gap:36px; padding:20px 0 26px; align-items:start; border-bottom:1px dashed var(--line-soft); }
  .timeline__item:last-child { border-bottom:none; }
  .timeline__no { font-family:var(--ff-en); font-size:32px; font-weight:300; letter-spacing:.04em; color:var(--primary); line-height:1; padding-top:6px; position:relative; }
  .timeline__no::after { content:""; position:absolute; left:-12px; top:18px; width:9px; height:9px; border-radius:50%; background:var(--bg); border:1.5px solid var(--primary); box-shadow:0 0 0 4px var(--bg); }
  .timeline__rail { display:none; }
  .timeline__grid { display:grid; grid-template-columns:200px 1fr; gap:28px; align-items:start; }
  @media (max-width:760px){ .timeline__grid { grid-template-columns:1fr; gap:14px; } }
  .timeline__img { position:relative; height:160px; border-radius:10px; overflow:hidden;
    background:var(--bg-2); border:1px solid var(--line-soft); }
  .timeline__img img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform .8s var(--ease); }
  .timeline__item:hover .timeline__img img { transform:scale(1.05); }
  .timeline__img svg { color:var(--primary); opacity:.7; }
  .timeline__body { display:flex; flex-direction:column; gap:6px; }
  .timeline__title { font-family:var(--ff-serif); font-size:22px; color:var(--text); line-height:1.2; }
  @media (min-width:768px){ .timeline__title { font-size:26px; } }
  .timeline__desc { color:var(--muted); font-size:14px; line-height:1.7; max-width:540px; }
  .timeline__expand { max-height:0; overflow:hidden; transition:max-height .55s var(--ease), opacity .35s var(--ease); opacity:0; }
  .timeline__expand.open { max-height:520px; opacity:1; }
  .timeline__detail { padding-top:16px; margin-top:12px; border-top:1px dashed var(--line-soft); color:var(--text); font-size:14px; line-height:1.85; }
  .timeline__detail p { margin-bottom:10px; color:var(--text); }
  .timeline__btn { align-self:flex-start; margin-top:8px; padding:8px 14px; font-size:13px; color:var(--primary); border:1px solid var(--line); background:transparent; transition:.3s var(--ease); display:inline-flex; align-items:center; gap:8px; cursor:pointer; }
  .timeline__btn:hover { background:color-mix(in srgb,var(--primary) 10%, transparent); border-color:var(--primary); }
  .timeline__btn .less { display:none; }
  .timeline__btn.is-open .more { display:none; }
  .timeline__btn.is-open .less { display:inline; }

/* ---------- DriftWall 漂浮照片墙 ---------- */
.drift { position:relative; width:100%; height:560px; overflow:hidden; perspective:1200px; perspective-origin:50% 50%;
  -webkit-mask-image:radial-gradient(ellipse 82% 86% at 50% 46%, #000 60%, transparent 100%);
          mask-image:radial-gradient(ellipse 82% 86% at 50% 46%, #000 60%, transparent 100%); }
@media (min-width:768px){ .drift{ height:680px; } }
.drift__plane { position:absolute; top:50%; left:50%; display:flex; flex-direction:row; transform-style:preserve-3d; will-change:transform; }
.drift__col { position:relative; width:calc(var(--tw,210px) + 18px); transform-style:preserve-3d; }
.drift__track { display:flex; flex-direction:column; will-change:transform; transform-style:preserve-3d; }
.drift__tile { position:relative; display:block; width:100%; height:calc(var(--th,140px) + 18px); flex:0 0 auto; outline:none; transform-style:preserve-3d; cursor:pointer; }
.drift__inner { position:absolute; inset:9px; border-radius:12px; overflow:hidden; background:#15171c; opacity:.5; transform:translateZ(0);
  transition:transform .42s var(--ease), opacity .42s var(--ease), box-shadow .42s var(--ease); }
.drift__tile img { width:100%; height:100%; object-fit:cover; filter:saturate(.9); transition:filter .42s var(--ease); user-select:none; -webkit-user-drag:none; }
.drift__tile.is-active .drift__inner { opacity:1; transform:translateZ(64px); box-shadow:0 24px 60px -18px rgba(0,0,0,.7); }
.drift__tile.is-active img { filter:saturate(1.05); }
.drift__cap { position:absolute; left:14px; bottom:14px; font-size:12px; color:#fff; letter-spacing:.04em; opacity:0; transition:opacity .4s; text-shadow:0 1px 6px rgba(0,0,0,.6); }
.drift__tile.is-active .drift__cap { opacity:1; }

/* ---------- 绽放 AccordionGallery（贴边 · 标题悬浮在照片底部） ---------- */
.acc { display:flex; gap:8px; height:78vh; min-height:560px; margin-top:0; padding:0; }
@media (max-width:680px){
  .acc{ flex-direction:column; height:auto; min-height:0; }
  .acc__item{ height:180px; flex:1 1 auto; }
  .acc__item.active{ flex:1 1 auto; }
  .acc__title{ font-size:18px; }
  .acc__desc{ font-size:12px; }
  .acc__item.active::before{ transform:translateX(120%); }
  /* mobile Ken Burns：active 项图片缓慢放大 */
  .acc__item img{ transition:filter .6s, transform 6s linear; }
  .acc__item.active img{ transform:scale(1.08); }
  /* mobile 进度条小圆点（指示 4 张） */
  .acc-dots{ display:flex; gap:6px; justify-content:center; padding:14px 0 4px; }
  .acc-dots span{ width:6px; height:6px; border-radius:50%; background:var(--line); transition:.3s; }
  .acc-dots span.on{ background:var(--primary); width:18px; border-radius:3px; }
}
.acc--bleed { padding:0; }
.acc__item { position:relative; flex:1; overflow:hidden; cursor:pointer; transition:flex .6s var(--ease); background:#D6EEDD; }
.acc__item.active { flex:2.6; }
.acc__item img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; filter:brightness(1.08) saturate(.65); transition:filter .6s, transform .8s var(--ease); }
.acc__item.active img { filter:brightness(1.12) saturate(.75); transform:scale(1.04); }
.acc__item::after { content:""; position:absolute; inset:0; background:linear-gradient(to top, rgba(10,14,20,.86) 0%, rgba(10,14,20,.42) 38%, rgba(10,14,20,.08) 62%, transparent 100%); }
.acc__body { position:absolute; left:0; right:0; bottom:0; z-index:2; padding:32px 30px; width:100%; color:#fff; }
@media (min-width:768px){ .acc__body{ padding:40px 38px; } }
.acc__no { font-family:var(--ff-en); font-size:13px; letter-spacing:.18em; color:#C9A24B; }
.acc__name { font-family:var(--ff-serif); font-size:24px; margin:10px 0 0; color:#fff; line-height:1.2; max-width:90%; text-shadow:0 1px 2px rgba(0,0,0,.35); }
@media (min-width:768px){ .acc__name{ font-size:30px; } }
.acc__desc { color:var(--primary); font-size:14px; max-width:520px; margin-top:14px; opacity:0; transform:translateY(10px); transition:.5s var(--ease) .1s; }
.acc__item.active .acc__desc { opacity:1; transform:none; }
.acc__hint { position:absolute; top: 22px; right:24px; z-index:2; font-size:11px; letter-spacing:.1em; color:var(--primary); opacity:0; transition:.4s; }
.acc__item.active .acc__hint { opacity:1; }

/* ---------- 首页作品集：横向手风琴（与赢家页同款 .acc） ---------- */
  .homeGallery-wrap { margin-top:8px; }

/* 赢家 · 冰种帝王绿高光 shimmer（横扫一次） */
  .acc--jade .acc__item::before { content:""; position:absolute; inset:0; z-index:3; pointer-events:none;
    background:linear-gradient(110deg, transparent 28%, rgba(255,134,65,.18) 50%, transparent 72%);
    transform:translateX(-120%); transition:transform 1.1s var(--ease) .12s; mix-blend-mode:screen; }
  .acc--jade .acc__item.active::before { transform:translateX(120%); }
  /* 赢家 · acc 文字珠光白 */
  #winnerSection .acc__no { color:var(--primary); }
  #winnerSection .acc__hint { color:var(--primary); opacity:1; }
  .acc--jade .acc__item::after { background:linear-gradient(to top, rgba(214,238,221,.94) 0%, rgba(214,238,221,.62) 35%, rgba(214,238,221,.18) 60%, transparent 100%); }

  /* ---------- 赢家独立 Hero（文字置顶 · 不叠图） + ShinyText 高光扫动 ---------- */
  .winner-hero { padding:6px var(--gutter) 22px; min-height:auto; }
  @media (min-width:768px){ .winner-hero { padding:10px var(--gutter-md) 30px; min-height:auto; } }
  .winner-hero__kicker { font-family:var(--ff-en); font-size:12px; letter-spacing:.28em; color:var(--primary); text-transform:uppercase; opacity:.95; margin-bottom:18px; }
  .winner-hero__title { font-family:var(--ff-serif); font-weight:600; line-height:1.14; letter-spacing:.01em; font-size:32px; max-width:820px; margin:6px 0 0; }
  @media (min-width:760px){ .winner-hero__title{ font-size:46px; } }
  @media (min-width:1024px){ .winner-hero__title{ font-size:58px; } }
  .winner-hero__lead { color:var(--muted); max-width:560px; margin-top:18px; font-size:14px; line-height:1.85; }
  @media (min-width:768px){ .winner-hero__lead{ font-size:15px; } }
  /* 赢家页眉收窄：上方紧挨浮动导航，下方紧挨 acc 业务图 */
  #winnerSection { padding-top:62px; padding-bottom:56px; }
  @media (min-width:768px){ #winnerSection { padding-top:70px; } }

  /* ShinyText 高光扫动文字（@react-bits/ShinyText-JS-CSS 经典实现）。
     思路：底层保 var(--text) 颜色；::before 用 background-clip:text 把光泽渐变扫过同一形状；
     用户看到的是"平时暗底的字被一道亮光划过"的循环。 */
  .shiny-text { position:relative; display:inline-block; color:var(--text); }
  .shiny-text::before {
    content:attr(data-text);
    position:absolute; inset:0;
    background-image:linear-gradient(
      120deg,
      rgba(255,255,255,0) 38%,
      rgba(255,255,255,.95) 50%,
      rgba(255,255,255,0) 62%
    );
    background-size:200% 100%;
    background-position:120% 0;
    -webkit-background-clip:text; background-clip:text;
    -webkit-text-fill-color:transparent; color:transparent;
    animation:shine 3s linear infinite;
    pointer-events:none;
  }
  /* 赢家 · ShinyText 改为明显可见的荧光绿高光（亮绿扫过深绿字，绿光清晰可辨，不再是看不出的同色微差） */
  [data-theme="winner"] .shiny-text::before {
    background-image:linear-gradient(
      120deg,
      rgba(31,90,63,0) 30%,
      rgba(95,227,154,.45) 43%,
      rgba(150,240,185,1) 50%,
      rgba(95,227,154,.45) 57%,
      rgba(31,90,63,0) 70%
    );
  }
  @keyframes shine {
    0%   { background-position:120% 0; }
    100% { background-position:-20% 0; }
  }
  @media (prefers-reduced-motion: reduce){ .shiny-text::before{ animation:none; } }
  /* 首页 hero 在真人深色照片上：底层白色 + ShinyText 香奈儿金高光（保证光泽可见、效果保留）。 */
  .hero__title { color:#FFFFFF; }
  .hero__title .shiny-text { color:#FFFFFF; }
  .hero__title .shiny-text::before {
    background-image:linear-gradient(120deg, rgba(255,255,255,0) 36%, rgba(255,255,255,.55) 50%, rgba(255,255,255,0) 64%);
    background-size:220% 100%;
  }

/* 合集 / 明细视图（照片网格 + 文字明细通用） */
.detail { display:none; padding:30px 0 10px; }
.detail.active { display:block; animation:fadeIn .5s var(--ease); }
/* 三花介绍容器：与首页 gallery 同宽居中（内容复用 .hg-detail 两列错落 + 金线） */
#lumenDetail { max-width: var(--maxw); margin: 0 auto; padding: 0 var(--gutter); position: relative; }
@media (min-width: 768px) { #lumenDetail { padding: 0 var(--gutter-md); } }
.detail__head { display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap; }
.detail__kicker { font-family:var(--ff-en); font-size:12px; letter-spacing:.2em; color:var(--primary); text-transform:uppercase; }
.detail__title { font-family:var(--ff-serif); font-size:30px; margin:8px 0 4px; }
.detail__body { margin-top:18px; color:var(--text); font-size:15px; line-height:1.9; max-width:780px; }
.detail__body p { margin-bottom:14px; }
.detail__back { display:inline-flex; align-items:center; gap:8px; margin-top:8px; font-size:13px; color:var(--primary); border-bottom:1px solid var(--line); padding-bottom:3px; cursor:pointer; }
.detail__back:hover { color:var(--primary-bright); border-color:var(--primary-bright); }
/* 相册集标题条（kicker + 中文 + 数量） */
.detail__album { margin-top:30px; padding-top:24px; border-top:1px dashed var(--line-soft); }
.detail__album-title { display:flex; align-items:baseline; gap:14px; margin-bottom:18px; }
.detail__album-title .kicker-en { font-family:var(--ff-en); font-size:11px; letter-spacing:.28em; color:var(--primary); text-transform:uppercase; }
.detail__album-title .title-zh { font-family:var(--ff-serif); font-size:18px; color:var(--text); }
.detail__album-title .count { margin-left:auto; font-family:var(--ff-en); font-size:12px; letter-spacing:.06em; color:var(--muted); }
.collection__grid { display:grid; gap:14px; grid-template-columns:repeat(2,1fr); margin-top:20px; }
@media (min-width:680px){ .collection__grid{ grid-template-columns:repeat(3,1fr); } }
@media (min-width:1000px){ .collection__grid{ grid-template-columns:repeat(4,1fr); } }
.collection__cell { position:relative; aspect-ratio:3/4; overflow:hidden; border-radius:10px; background:var(--bg-2); cursor:pointer; }
.collection__cell img { width:100%; height:100%; object-fit:cover; transition:transform .5s var(--ease); }
.collection__cell:hover img { transform:scale(1.06); }
.collection__lock { position:absolute; inset:0; display:flex; align-items:center; justify-content:center; background:rgba(12,9,5,.45); color:var(--primary); font-size:13px; letter-spacing:.05em; opacity:0; transition:.35s; }
.collection__cell:hover .collection__lock { opacity:1; }

/* ---------- 会员 / 弹窗 ---------- */
.modal { position:fixed; inset:0; z-index:80; display:flex; align-items:center; justify-content:center; padding:20px;
  background:rgba(6,10,18,.8); backdrop-filter:blur(6px); opacity:0; visibility:hidden; transition:.4s var(--ease); }
.modal.open { opacity:1; visibility:visible; }
.modal__box { width:100%; max-width:420px; background:var(--bg-2); border:1px solid var(--line); padding:36px 32px; transform:translateY(14px); transition:.4s var(--ease); border-radius:6px; }
.modal.open .modal__box { transform:none; }
.modal__title { font-family:var(--ff-serif); font-size:24px; margin-bottom:6px; }
.modal__sub { color:var(--muted); font-size:14px; margin-bottom:24px; }
.field { margin-bottom:16px; }
.field label { display:block; font-size:13px; color:var(--muted); margin-bottom:7px; }
.field input, .field select, .field textarea { width:100%; padding:12px 14px; background:var(--bg); border:1px solid var(--line-soft); color:var(--text); font-family:inherit; font-size:14px; border-radius:4px; }
.field input:focus, .field textarea:focus { outline:none; border-color:var(--primary); }
.field textarea { resize:vertical; min-height:84px; }
.modal__close { position:absolute; top:18px; right:20px; font-size:22px; color:var(--muted); }
.price-tag { display:flex; align-items:baseline; gap:8px; margin:6px 0 22px; }
.price-tag b { font-family:var(--ff-en); font-size:40px; color:var(--primary); }
.price-tag span { color:var(--muted); font-size:14px; }
.benefit { display:flex; gap:12px; align-items:flex-start; margin:14px 0; font-size:14px; }
.benefit .ic { color:var(--primary); flex:0 0 auto; margin-top:3px; }

/* 图集详情弹层（全屏"页面"：大图 + 内容介绍）已删除 · 本轮改为下方展开相册集（.detail__album） */

/* ---------- 相册：下载按钮 / 灯箱 / 多选下载弹窗 ---------- */
.detail__album-title .album-dl-btn {
  margin-left: auto;
  display: inline-flex; align-items: center; gap: 6px;
  padding: 7px 14px;
  font-family: var(--ff-en); font-size: 12px; letter-spacing: .14em;
  color: #fff;
  background: var(--primary);
  border: 1px solid var(--primary);
  border-radius: 999px;
  cursor: pointer;
  transition: .25s;
}
.detail__album-title .album-dl-btn:hover { filter: brightness(1.12); transform: translateY(-1px); }
.detail__album-title .album-dl-btn__txt { font-family: var(--ff-sans); letter-spacing: .05em; }

/* 灯箱 */
.lightbox {
  position: fixed; inset: 0; z-index: 1000;
  background: rgba(8, 10, 14, .94);
  display: flex; align-items: center; justify-content: center;
  backdrop-filter: blur(8px);
  animation: lightboxIn .25s var(--ease);
}
@keyframes lightboxIn { from { opacity: 0 } to { opacity: 1 } }
.lightbox__stage {
  position: relative;
  max-width: min(92vw, 1280px);
  max-height: 82vh;
  display: flex; align-items: center; justify-content: center;
}
.lightbox__img {
  max-width: 100%;
  max-height: 82vh;
  object-fit: contain;
  border-radius: 6px;
  box-shadow: 0 20px 60px rgba(0,0,0,.5);
  user-select: none;
  -webkit-user-drag: none;
}
.lightbox__close, .lightbox__nav {
  position: absolute;
  background: rgba(255,255,255,.08);
  color: #fff;
  border: 1px solid rgba(255,255,255,.18);
  border-radius: 50%;
  cursor: pointer;
  transition: .2s;
  display: flex; align-items: center; justify-content: center;
  backdrop-filter: blur(6px);
}
.lightbox__close { top: 22px; right: 22px; width: 44px; height: 44px; font-size: 22px; }
.lightbox__nav   { top: 50%; transform: translateY(-50%); width: 52px; height: 52px; font-size: 30px; line-height: 1; }
.lightbox__nav--prev { left: 22px; }
.lightbox__nav--next { right: 22px; }
.lightbox__close:hover, .lightbox__nav:hover { background: rgba(255,255,255,.18); border-color: rgba(255,255,255,.36); }
.lightbox__meta {
  position: absolute;
  left: 0; right: 0; bottom: 22px;
  display: flex; flex-direction: column; align-items: center; gap: 4px;
  color: rgba(255,255,255,.82);
  font-size: 13px;
  letter-spacing: .04em;
  pointer-events: none;
}
.lightbox__count { font-family: var(--ff-en); letter-spacing: .18em; color: rgba(255,255,255,.6); }
@media (max-width: 680px) {
  .lightbox__close { top: 12px; right: 12px; width: 38px; height: 38px; font-size: 18px; }
  .lightbox__nav { width: 40px; height: 40px; font-size: 24px; }
  .lightbox__nav--prev { left: 8px; }
  .lightbox__nav--next { right: 8px; }
}

/* 下载多选弹窗 */
.dl-modal {
  position: fixed; inset: 0; z-index: 1000;
  background: rgba(8, 10, 14, .55);
  display: flex; align-items: center; justify-content: center;
  padding: 20px;
  backdrop-filter: blur(6px);
  animation: lightboxIn .2s var(--ease);
}
.dl-modal__panel {
  width: 100%;
  max-width: 920px;
  max-height: 88vh;
  background: var(--bg);
  color: var(--text);
  border-radius: 14px;
  box-shadow: 0 30px 80px rgba(0,0,0,.35);
  display: flex; flex-direction: column;
  overflow: hidden;
}
.dl-modal__head {
  display: flex; align-items: center; justify-content: space-between;
  padding: 18px 22px;
  border-bottom: 1px solid var(--line-soft);
}
.dl-modal__title { font-family: var(--ff-serif); font-size: 18px; }
.dl-modal__close {
  background: none; border: none; font-size: 24px; color: var(--muted);
  cursor: pointer; line-height: 1; padding: 0 4px;
}
.dl-modal__close:hover { color: var(--text); }
.dl-modal__sub {
  padding: 10px 22px;
  color: var(--muted);
  font-size: 13px;
  border-bottom: 1px solid var(--line-soft);
}
.dl-modal__grid {
  padding: 18px 22px;
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
  gap: 12px;
  overflow-y: auto;
  flex: 1 1 auto;
}
.dl-cell__label {
  position: relative;
  display: block;
  aspect-ratio: 3 / 4;
  border-radius: 8px;
  overflow: hidden;
  cursor: pointer;
  background: var(--bg-2);
  border: 1px solid var(--line-soft);
  transition: .2s;
}
.dl-cell__label:hover { border-color: var(--primary); }
.dl-cell__label img {
  width: 100%; height: 100%;
  object-fit: cover;
  pointer-events: none;
}
.dl-cell__chk {
  position: absolute; top: 10px; left: 10px;
  width: 22px; height: 22px;
  margin: 0; z-index: 2;
  accent-color: var(--primary);
  cursor: pointer;
}
.dl-cell__num {
  position: absolute; top: 10px; right: 10px;
  font-family: var(--ff-en); font-size: 11px; letter-spacing: .14em;
  padding: 2px 8px;
  background: rgba(0,0,0,.55); color: #fff;
  border-radius: 999px;
  z-index: 2;
}
.dl-cell__tick {
  position: absolute; inset: 0;
  display: flex; align-items: center; justify-content: center;
  font-size: 64px; color: #fff;
  background: rgba(0,0,0,.45);
  opacity: 0; transition: .2s;
  pointer-events: none;
}
.dl-cell__chk:checked ~ .dl-cell__tick { opacity: 1; }
.dl-cell__label:has(.dl-cell__chk:checked) { border-color: var(--primary); box-shadow: 0 0 0 2px var(--primary); }

.dl-modal__foot {
  display: flex; align-items: center; gap: 12px;
  padding: 16px 22px;
  border-top: 1px solid var(--line-soft);
  background: var(--bg-2);
}
.dl-modal__all { font-size: 13px; color: var(--muted); display: inline-flex; align-items: center; gap: 6px; cursor: pointer; margin-right: auto; }
.dl-modal__all-chk { accent-color: var(--primary); width: 16px; height: 16px; }
.dl-modal__btn {
  padding: 9px 18px;
  border-radius: 6px;
  font-size: 14px;
  cursor: pointer;
  border: 1px solid var(--line);
  background: transparent;
  color: var(--text);
  transition: .2s;
}
.dl-modal__btn--ghost:hover { border-color: var(--primary); }
.dl-modal__btn--primary {
  background: var(--primary); color: #fff; border-color: var(--primary);
}
.dl-modal__btn--primary:hover { filter: brightness(1.1); }
.dl-modal__btn--primary:disabled { opacity: .4; cursor: not-allowed; }

/* 智慧主题下的下载弹窗（深底浅字） */
[data-theme="wisdom"] .dl-modal__panel { background: #0E3B3D; color: #f8f4ed; }
[data-theme="wisdom"] .dl-modal__head, [data-theme="wisdom"] .dl-modal__sub, [data-theme="wisdom"] .dl-modal__foot { border-color: rgba(248,244,237,.18); }
[data-theme="wisdom"] .dl-modal__sub { color: rgba(248,244,237,.7); }
[data-theme="wisdom"] .dl-modal__close { color: rgba(248,244,237,.7); }
[data-theme="wisdom"] .dl-modal__close:hover { color: #f8f4ed; }
[data-theme="wisdom"] .dl-modal__btn { color: #f8f4ed; border-color: rgba(248,244,237,.4); }
[data-theme="wisdom"] .dl-modal__all { color: rgba(248,244,237,.7); }

/* ---------- 预约 / 后台 通用 ---------- */
.cal__legend { display:flex; gap:18px; margin-top:18px; font-size:12px; color:var(--muted); }
.cal__legend i { display:inline-block; width:10px; height:10px; margin-right:6px; vertical-align:middle; }
.bk-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(190px,1fr)); gap:14px; margin-top:24px; }
.day-card { border:1px solid var(--line-soft); padding:16px; background:var(--bg-2); border-radius:6px; }
.day-card h4 { font-size:14px; margin-bottom:4px; }
.day-card .wd { font-size:12px; color:var(--muted); margin-bottom:10px; }
.bk-summary { display:grid; grid-template-columns:repeat(auto-fill,minmax(220px,1fr)); gap:14px; margin-top:24px; }
.bk-day { position:relative; border:1px solid var(--line-soft); padding:18px 18px 16px; background:var(--bg); border-radius:12px; box-shadow:0 2px 12px rgba(28,42,52,.06); transition:.3s; cursor:pointer; }
.bk-day:hover { box-shadow:0 8px 26px rgba(8,137,127,.18); border-color:var(--primary); transform:translateY(-2px); }
.bk-day__head { display:flex; align-items:baseline; justify-content:space-between; gap:8px; }
.bk-day__date { font-family:var(--ff-serif); font-size:22px; color:var(--ink); letter-spacing:.02em; }
.bk-day__wd { font-size:12px; color:var(--muted); }
.bk-day__bar { display:flex; gap:3px; margin-top:14px; height:6px; border-radius:3px; overflow:hidden; background:#eee; }
.bk-day__bar span { display:block; height:100%; }
.bk-day__bar .seg-free { background:var(--primary); }
.bk-day__bar .seg-booked { background:#d3cfc4; }
.bk-day__stats { display:flex; justify-content:space-between; align-items:center; margin-top:12px; font-size:13px; }
.bk-day__stats .free { color:var(--primary-deep); font-weight:700; }
.bk-day__stats .booked { color:#9a9487; }
.bk-day__open { display:inline-flex; align-items:center; gap:6px; padding:7px 14px; border-radius:999px; background:var(--primary); color:#fff; font-size:12px; font-weight:600; letter-spacing:.04em; transition:.3s; }
.bk-day__open::after { content:'→'; font-weight:400; }
.bk-day:hover .bk-day__open { background:var(--primary-deep); }

/* ========== 抽屉 ========== */
.bk-drawer-mask { position:fixed; inset:0; background:rgba(14,20,28,.45); opacity:0; pointer-events:none; transition:opacity .3s ease; z-index:9998; }
.bk-drawer-mask.open { opacity:1; pointer-events:auto; }
.bk-drawer { position:fixed; top:0; right:0; bottom:0; width:min(520px,92vw); background:var(--bg); box-shadow:-12px 0 40px rgba(14,20,28,.18); transform:translateX(100%); transition:transform .35s cubic-bezier(.2,.7,.2,1); z-index:9999; display:flex; flex-direction:column; }
.bk-drawer.open { transform:translateX(0); }
.bk-drawer__head { display:flex; align-items:center; justify-content:space-between; padding:22px 26px 18px; border-bottom:1px solid var(--line-soft); }
.bk-drawer__title { font-family:var(--ff-serif); font-size:22px; color:var(--ink); }
.bk-drawer__close { width:36px; height:36px; border-radius:50%; border:1px solid var(--line); background:transparent; font-size:18px; color:var(--ink); cursor:pointer; transition:.3s; }
.bk-drawer__close:hover { background:var(--primary); border-color:var(--primary); color:#fff; }
.bk-drawer__tabs { display:flex; gap:6px; padding:14px 22px; overflow-x:auto; border-bottom:1px solid var(--line-soft); }
.bk-drawer__tab { flex-shrink:0; padding:8px 14px; border:1px solid var(--line-soft); border-radius:999px; background:transparent; color:var(--muted); font-size:13px; cursor:pointer; transition:.3s; font-weight:500; }
.bk-drawer__tab.active { background:var(--primary); border-color:var(--primary); color:#fff; font-weight:600; }
.bk-drawer__legend { display:flex; gap:14px; padding:12px 26px; font-size:12px; color:var(--muted); border-bottom:1px solid var(--line-soft); flex-wrap:wrap; }
.bk-drawer__legend i { display:inline-block; width:10px; height:10px; border-radius:2px; margin-right:5px; vertical-align:middle; }
.bk-drawer__legend .lg-free { background:var(--primary); }
.bk-drawer__legend .lg-picked { background:var(--primary-deep); }
.bk-drawer__legend .lg-booked { background:#d3cfc4; }
.bk-drawer__legend .lg-disabled { background:#efebe0; }
.bk-drawer__body { flex:1; overflow-y:auto; padding:18px 26px; }
.bk-axis { display:grid; grid-template-columns:60px 1fr; gap:10px 14px; align-items:start; }
.bk-axis__hour { font-size:12px; color:var(--muted); padding-top:8px; font-weight:500; }
.bk-axis__slots { display:grid; grid-template-columns:repeat(2, 1fr); gap:6px; padding-bottom:6px; }
.bk-slot { display:flex; align-items:center; justify-content:center; height:40px; border:1px solid var(--line-soft); border-radius:6px; font-size:13px; font-weight:600; color:var(--ink); background:var(--bg); transition:.2s; cursor:pointer; }
.bk-slot.free { background:var(--primary); color:#151515; border-color:var(--primary); }
.bk-slot.free:hover { background:var(--primary-deep); border-color:var(--primary-deep); color:#fff; transform:translateY(-1px); box-shadow:0 4px 12px rgba(8,137,127,.35); }
.bk-slot.picked { background:#fff; color:#151515; border-color:var(--primary-deep); border-width:2px; box-shadow:0 0 0 3px rgba(8,137,127,.20); }
.bk-slot.booked { background:#efebe0; color:#a59e8c; border-color:#e0dccf; cursor:not-allowed; text-decoration:line-through; }
.bk-slot.disabled { background:#fafaf6; color:#cdc8bd; border-color:#efebe0; cursor:not-allowed; }
.bk-drawer__foot { padding:18px 26px; border-top:1px solid var(--line-soft); display:flex; align-items:center; justify-content:space-between; gap:14px; background:var(--bg-2); }
.bk-drawer__foot .sel { font-size:13px; color:var(--ink); }
.bk-drawer__foot .sel b { color:var(--primary-deep); font-size:18px; font-weight:700; }
.bk-drawer__foot .btn-next { padding:11px 22px; border-radius:999px; background:var(--primary); color:#fff; border:none; font-size:14px; font-weight:600; cursor:pointer; letter-spacing:.04em; transition:.3s; }
.bk-drawer__foot .btn-next:disabled { background:#cdc8bd; cursor:not-allowed; }
.bk-drawer__foot .btn-next:not(:disabled):hover { background:var(--primary-deep); }

@media (max-width: 640px) { .bk-drawer { width:100vw; } .bk-axis { grid-template-columns:48px 1fr; gap:8px 10px; } .bk-axis__slots { grid-template-columns:1fr; } }

.bk-pick { margin-top:30px; padding:18px 20px; border:1px dashed var(--line); background:var(--bg-2); border-radius:6px; }
.bk-pick b { color:var(--primary); }
.bk-pick__list { margin-top:8px; color:var(--muted); font-size:14px; }
.bk-pick__list span { display:inline-block; margin:4px 6px 0 0; padding:3px 10px; border:1px solid var(--line); color:var(--primary); border-radius:999px; font-size:12px; }

.admin { display:grid; grid-template-columns:220px 1fr; min-height:100vh; min-height:100dvh; background:var(--bg); }
@media (max-width:820px){ .admin{ grid-template-columns:1fr; } }
.admin__nav { background:var(--bg-2); border-right:1px solid var(--line-soft); padding:26px 18px; }
.admin__nav h3 { font-family:var(--ff-serif); font-size:18px; margin-bottom:22px; }
.admin__nav a { display:block; padding:11px 12px; color:var(--muted); font-size:14px; border-left:2px solid transparent; transition:.3s; }
.admin__nav a:hover, .admin__nav a.active { color:var(--primary); border-color:var(--primary); background:color-mix(in srgb,var(--primary) 6%, transparent); }
.admin__main { padding:34px var(--gutter); overflow:auto; }
.admin__card, .stat { background:var(--bg-2); border:1px solid var(--line-soft); padding:22px; margin-bottom:20px; border-radius:6px; }
.admin__stats { display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:16px; margin-bottom:24px; }
.stat b { display:block; font-family:var(--ff-en); font-size:30px; color:var(--primary); }
.stat span { font-size:13px; color:var(--muted); }
table.tbl { width:100%; border-collapse:collapse; font-size:13.5px; }
table.tbl th, table.tbl td { text-align:left; padding:12px 10px; border-bottom:1px solid var(--line-soft); }
table.tbl th { color:var(--muted); font-weight:500; font-size:12px; letter-spacing:.04em; }
.tag { display:inline-block; padding:3px 9px; font-size:12px; border:1px solid var(--line); color:var(--primary); border-radius:999px; cursor:pointer; }
.tag.ok { color:var(--accent); border-color:var(--accent); }

/* ---------- 页脚 ---------- */
.footer { border-top:1px solid var(--line-soft); padding:54px 0 40px; color:var(--muted); font-size:13px; }
.footer__grid { display:flex; flex-wrap:wrap; gap:30px; justify-content:space-between; align-items:flex-start; }
.footer a:hover { color:var(--primary); }
.footer__brand { font-family:var(--ff-en); font-size:18px; }
.footer__brand b { color:var(--primary); }

.skeleton { background:linear-gradient(90deg, var(--bg-2) 25%, var(--bg-3) 37%, var(--bg-2) 63%);
  background-size:400% 100%; animation:shimmer 1.4s infinite; border-radius:8px; }

/* =========================================================
   LŪMEN // 三花 · 单屏智慧效果（深蓝底 + 金 + 智慧蓝）
   完整规格：背景层 + 网格线 + 加号 + 3 方块节点 + 标签 + 连接线
         + 切角信息卡(polygon) + ✦ CTA + 2.8s 入场时间轴
   ========================================================= */
#wisdom.tab-panel.active { display:block; padding:0; }
#wisdom.tab-panel.active .lumen-hero { display:block; }

.lumen-hero { position:relative; width:100%; min-height:100vh; min-height:100dvh; overflow:hidden; background:var(--bg); background-size:cover; background-position:center; color:#0E3B3D; isolation:isolate; }
/* 灵动闪亮：蒂芙尼 shimmer 流光（layer -1 在视频底下） */
/* ::before / ::after 渐变光晕已按大佬要求去掉（双层问题） */

/* 背景层：CloudFront 三朵发光花视频，全屏铺满 + 淡入（layer 0，txt §6）。
   视频本身就提供花瓣/花蕊/花须视觉，§11 方块节点浮在视频之上做标记 */
.lumen-hero__video { position:absolute; inset:0; z-index:0; width:100%; height:100%; object-fit:cover; opacity:0; transition:opacity .8s var(--ease); mix-blend-mode:screen; filter:contrast(1.05) saturate(.95); }
.lumen-hero.is-on .lumen-hero__video { opacity:.92; }

/* 网格线 + 加号（layer 2 · 蒂芙尼色） */
.lumen-hero__grid { position:absolute; inset:0; z-index:2; pointer-events:none; }
.lumen-hero__grid .v { position:absolute; top:0; height:100%; width:1px; background:rgba(91,224,220,.18); transform:scaleY(0); transform-origin:top; }
.lumen-hero__grid .h { position:absolute; left:0; width:100%; height:1px; background:rgba(91,224,220,.18); transform:scaleX(0); transform-origin:left; }
.lumen-hero__plus { position:absolute; width:14px; height:14px; transform:translate(-50%,-50%); opacity:0; }
.lumen-hero__plus::before, .lumen-hero__plus::after { content:""; position:absolute; background:rgba(179,240,236,.92); box-shadow:0 0 8px rgba(91,224,220,.45); }
.lumen-hero__plus::before { left:0; top:50%; width:14px; height:1px; transform:translateY(-50%); }
.lumen-hero__plus::after { top:0; left:50%; width:1px; height:14px; transform:translateX(-50%); }

/* 连接线（layer 2）：绝对定位 SVG 全屏（已移除 · 不再生成） */
  .lumen-hero__conn { display:none; }

/* 中央节点层（layer 4） */
  .lumen-nodes { position:absolute; inset:0; z-index:4; pointer-events:none; }

  /* 主标题（H1 · 缩小并左下定位，整体更克制不抢戏） */
  .lumen-hero__title { position:absolute; z-index:4; left:24px; bottom:150px; font-family:var(--ff-serif); font-weight:600; line-height:1.18; color:#fff; font-size:24px; max-width:320px; opacity:0; padding:0; letter-spacing:.005em; text-shadow:0 4px 24px rgba(91,224,220,.30); }
  @media (min-width:640px){ .lumen-hero__title{ bottom:160px; left:30px; font-size:32px; max-width:360px; } }
  @media (min-width:768px){ .lumen-hero__title{ bottom:175px; left:35px; font-size:40px; max-width:440px; } }
  @media (min-width:1024px){ .lumen-hero__title{ bottom:175px; left:42px; font-size:48px; max-width:520px; } }

  /* 三个节点标签（= 可点开详情 · button 形式 · 整齐排版 · 蒂芙尼玻璃） */
  .lumen-label {
    position:absolute; z-index:5; opacity:0; pointer-events:auto; cursor:pointer;
    display:inline-flex; flex-direction:column; gap:6px;
    padding:14px 18px; min-width:200px; max-width:240px;
    background:rgba(91,224,220,.06);
    border:1px solid rgba(179,240,236,.36);
    backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px);
    border-radius:10px; color:#fff; text-align:left; font:inherit;
    transition:border-color .35s var(--ease), background .35s var(--ease), transform .35s var(--ease), box-shadow .35s var(--ease);
  }
  .lumen-label:hover, .lumen-label.is-open { border-color:transparent; background:transparent; transform:translateY(-2px); box-shadow:none; }
  .lumen-label .t { font-family:var(--ff-serif); font-size:clamp(22px,2.6vw,36px); letter-spacing:.04em; color:#f8f4ed; white-space:nowrap; text-transform:none; line-height:1.05; font-weight:600; text-shadow:0 1px 8px rgba(15,58,57,.45); }
  .lumen-label .d { display:none; }
  .lumen-label { border:1px solid transparent; background:transparent; }
  .lumen-label.from-right { transform-origin:right bottom; }
  /* 呼吸浮动承载层：包在按钮内部，避开外层入场动画(slideInLeft/Right translateX)与 hover translateY 的 transform 冲突 */
  .lumen-label__inner { display:inline-flex; flex-direction:column; gap:6px; will-change:transform; }
  .lumen-hero.is-on .lumen-label__inner {
    animation: floatBreath 3.2s ease-in-out infinite;
    animation-delay: calc(var(--d, 0ms) + 900ms);
  }
  /* 三朵不同步：第 2/3 朵各错开 0.4s / 0.8s，看起来像三朵花各自呼吸 */
  .lumen-hero.is-on .lumen-label:nth-of-type(2) .lumen-label__inner { animation-delay: calc(var(--d, 0ms) + 1100ms); }
  .lumen-hero.is-on .lumen-label:nth-of-type(3) .lumen-label__inner { animation-delay: calc(var(--d, 0ms) + 1300ms); }
@media (min-width:1024px){ .lumen-label .d{ max-width:180px; } }

/* （.lumen-node 已按大佬要求移除：视频本身就是三朵花，方块冗余） */

/* 底部行（绝对定位，35px inset） */
.lumen-hero__bottom { display:none !important; }
  /* 标题保留金色流光（ShinyText / gold-shimmer），不再用 !important 珠光白覆盖，否则流光失效 */
  .lumen-hero__title { text-shadow:0 2px 16px rgba(15,58,57,.30) !important; }
  .lumen-hero__subtitle { color:inherit; white-space:nowrap; }
  /* 智慧页导航字（仅 wisdom 主题）改成珠光白，不影响其他页 */
  body[data-theme="wisdom"] .nav:not(.is-floating-glass) .nav__brand,
  body[data-theme="wisdom"] .nav:not(.is-floating-glass) .nav__tab,
  body[data-theme="wisdom"] .nav:not(.is-floating-glass) .nav__lang { color:#f8f4ed; }
  body[data-theme="wisdom"] .nav.is-floating-glass .nav__tab { color:#f8f4ed; }
  body[data-theme="wisdom"] .nav:not(.is-floating-glass) .nav__tab.active { color:#f8f4ed; border-color:rgba(248,244,237,.55); background:rgba(248,244,237,.14); }
  body[data-theme="wisdom"] .nav:not(.is-floating-glass) .nav__member { color:#f8f4ed; border-color:rgba(248,244,237,.5); background:rgba(248,244,237,.08); }
  body[data-theme="wisdom"] .nav:not(.is-floating-glass) .nav__member:hover { background:#f8f4ed; color:#0E3B3D; }
  body[data-theme="wisdom"] .nav:not(.is-floating-glass) .nav__book { color:#f8f4ed; border-color:rgba(248,244,237,.5); background:rgba(248,244,237,.08); }
  body[data-theme="wisdom"] .nav:not(.is-floating-glass) .nav__lang { color:#f8f4ed; border-color:rgba(248,244,237,.45); }
@media (min-width:768px){ .lumen-hero__bottom{ left:35px; right:35px; bottom:35px; flex-direction:row; align-items:flex-end; justify-content:space-between; gap:0; } }

/* ✦ CTA 按钮（蒂芙尼高光底 + 深字） */
.lumen-cta { display:inline-flex; align-items:center; gap:10px; background:var(--primary-bright); color:#0E3B3D; padding:10px 16px; font-size:12px; letter-spacing:.04em; font-weight:600; opacity:0; transition:background .3s var(--ease), transform .3s var(--ease), box-shadow .3s var(--ease); text-transform:uppercase; white-space:nowrap; }
@media (min-width:768px){ .lumen-cta{ padding:12px 20px; font-size:13px; } }
.lumen-cta:hover { background:#FFFFFF; transform:translateY(-2px); box-shadow:0 12px 30px -10px rgba(91,224,220,.55); }
.lumen-cta .star { font-size:16px; line-height:1; }

/* 切角信息卡（已简化：去掉角卡，改成单行半透链接 · 与 CTA 横排对齐） */
  .lumen-card { display:none; }
  .lumen-link { display:inline-flex; align-items:center; gap:10px; padding:11px 18px; font-size:12px; letter-spacing:.06em; color:#fff; background:rgba(255,255,255,.06); border:1px solid rgba(179,240,236,.30); backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px); transition:border-color .35s var(--ease), background .35s var(--ease); text-transform:uppercase; opacity:0; white-space:nowrap; }
  .lumen-link:hover { border-color:var(--primary-bright); background:rgba(91,224,220,.18); }
  .lumen-link::before { content:""; width:6px; height:6px; border-radius:50%; background:var(--primary-bright); box-shadow:0 0 8px rgba(91,224,220,.85); }
.lumen-card__poly { display:none; }
.lumen-card__body { display:none; }

/* 三花标签下方详情容器（点击标签后下滑展示 · 共享 .detail 样式） */
.lumen-detail-wrap { padding-top:60px; padding-bottom:90px; background:var(--bg); width:100vw; margin-left:calc(50% - 50vw); margin-right:calc(50% - 50vw); max-width:none; }
.lumen-detail-wrap .detail__kicker { color:#f8f4ed; }
.lumen-detail-wrap .detail__title { color:#f8f4ed; }
.lumen-detail-wrap .detail__body { color:rgba(248,244,237,.86); }
.lumen-detail-wrap .detail__lead { color:rgba(248,244,237,.78); }
.lumen-detail-wrap .detail__back { color:#f8f4ed; border-color:rgba(248,244,237,.30); }
.lumen-detail-wrap .detail__back:hover { color:#fff; border-color:#fff; }
.lumen-detail-wrap .collection__cell { background:rgba(255,255,255,.08); border:1px solid rgba(248,244,237,.28); }
.lumen-detail-wrap .collection__lock { background:rgba(14,59,61,.45); color:#f8f4ed; }
.lumen-detail-wrap .detail__album-title .kicker-en { color:#f8f4ed; }
.lumen-detail-wrap .detail__album-title .title-zh { color:#f8f4ed; }
.lumen-detail-wrap .detail__album-title .count { color:rgba(248,244,237,.7); }

/* 入场时间轴：仅在 .is-on 时播放，可重复触发（按 LŪMEN 完整规格） */
.lumen-hero.is-on .lumen-hero__bg-glow { animation:scaleIn 1.4s var(--ease) forwards; }
.lumen-hero.is-on .lumen-hero__grid .v { animation-name:gridV; animation-duration:1.2s; animation-timing-function:var(--ease); animation-fill-mode:forwards; }
.lumen-hero.is-on .lumen-hero__grid .h { animation-name:gridH; animation-duration:1.2s; animation-timing-function:var(--ease); animation-fill-mode:forwards; }
.lumen-hero.is-on .lumen-hero__plus { animation:scaleIn .5s var(--ease) var(--d,0ms) forwards; }
.lumen-hero.is-on .lumen-hero__title { animation:fadeUp 1s var(--ease) 200ms forwards, goldShimmer 5.5s linear infinite; }
.lumen-hero.is-on .lumen-label { animation:slideInLeft .8s var(--ease) var(--d,0ms) forwards; }
  .lumen-hero.is-on .lumen-label.from-right { animation:slideInRight .8s var(--ease) var(--d,0ms) forwards; }
  /* .lumen-node / .lumen-hero__conn / .lumen-card 入场动画已移除（方块/连线/角卡按大佬要求删除） */
  .lumen-hero.is-on .lumen-link { animation:slideInRight .9s var(--ease) 1100ms forwards; }
  .lumen-hero.is-on .lumen-cta { animation:fadeUp .9s var(--ease) 900ms forwards; }

/* ---------- 独立后台登录页 ---------- */
.admin-login { min-height:100vh; min-height:100dvh; display:flex; align-items:center; justify-content:center; padding:24px;
  background:radial-gradient(120% 90% at 50% 0%, #16294e 0%, #0E1A33 55%, #08101f 100%); color:#EAF1FB; }
.al__card { width:100%; max-width:400px; background:rgba(255,255,255,.04); border:1px solid rgba(201,162,75,.35); padding:42px 36px; border-radius:10px; backdrop-filter:blur(6px); }
.al__brand { font-family:var(--ff-en); font-weight:700; font-size:22px; letter-spacing:.03em; }
.al__brand b { color:#C9A24B; }
.al__sub { color:rgba(234,241,251,.6); font-size:13px; margin:8px 0 30px; letter-spacing:.08em; }
.al__card .field input { background:rgba(255,255,255,.06); border:1px solid rgba(234,241,251,.18); color:#fff; }
.al__card .field input:focus { border-color:#C9A24B; }
.al__hint { margin-top:16px; text-align:center; font-size:12px; color:rgba(234,241,251,.5); }
.al__back { display:inline-block; margin-top:22px; font-size:13px; color:#9EC9F2; }

/* ---------- 动画 ---------- */
@keyframes fadeUp { from{opacity:0;transform:translateY(24px);} to{opacity:1;transform:none;} }
@keyframes fadeIn { from{opacity:0;} to{opacity:1;} }
@keyframes gridV { to{transform:scaleY(1);} }
@keyframes gridH { to{transform:scaleX(1);} }
@keyframes scrollPulse { 0%,100%{opacity:.3;transform:scaleY(.6);} 50%{opacity:1;transform:scaleY(1);} }
@keyframes shimmer { 0%{background-position:100% 0;} 100%{background-position:0 0;} }
@keyframes scaleIn { from{opacity:0;transform:scale(.85);} to{opacity:1;transform:scale(1);} }
@keyframes slideInLeft { from{opacity:0;transform:translateX(-20px);} to{opacity:1;transform:translateX(0);} }
@keyframes slideInRight { from{opacity:0;transform:translateX(20px);} to{opacity:1;transform:translateX(0);} }
@keyframes goldShimmer { to{ background-position:220% center; } }
@keyframes nodePulse { 0%,100%{ r:3; opacity:.5;} 50%{ r:5; opacity:.9;} }
/* 三花文字标签呼吸浮动（上下 6px · 3.2s 一轮 · 错相 0.4s 让三朵不同步） */
@keyframes floatBreath {
  0%, 100% { transform: translateY(0); }
  50%      { transform: translateY(-6px); }
}
@media (prefers-reduced-motion: reduce){
  * { animation-duration:.001ms !important; transition-duration:.001ms !important; scroll-behavior:auto; }
}

/* ========== 赢家 inline 展开 · 单列竖向图文模块（动态增删 · 为后台编辑铺路） ========== */
#winnerDetail.winner-inline { padding:48px var(--gutter) 80px; max-width:var(--maxw); margin:0 auto; display:none; }
#winnerDetail.winner-inline.active { display:block; }
.winner-inline__head { display:flex; align-items:flex-start; justify-content:space-between; gap:24px; padding-bottom:24px; border-bottom:1px solid var(--line); margin-bottom:40px; }
.winner-inline__kicker { font-family:var(--ff-en); font-size:12px; letter-spacing:.28em; color:var(--primary); text-transform:uppercase; opacity:.85; margin-bottom:14px; }
.winner-inline__title { font-family:var(--ff-serif); font-weight:600; font-size:32px; color:var(--primary-deep); margin:6px 0 0; line-height:1.2; max-width:760px; }
@media (min-width:768px){ .winner-inline__title{ font-size:42px; } }
.winner-inline__desc { color:var(--muted); font-size:15px; margin-top:16px; max-width:560px; line-height:1.85; }
.winner-inline__back { font-family:var(--ff-en); font-size:11px; letter-spacing:.18em; color:var(--primary); cursor:pointer; padding:10px 16px; border:1px solid var(--line); border-radius:4px; white-space:nowrap; transition:.3s; flex-shrink:0; background:transparent; }
.winner-inline__back:hover { background:var(--primary); color:var(--bg); border-color:var(--primary); }
.winner-inline__modules { display:flex; flex-direction:column; gap:64px; }
.winner-module { position:relative; max-width:880px; margin:0 auto; width:100%; }
.winner-module__media { width:100%; max-width:680px; aspect-ratio:3/4; margin:0 auto; background:#D6EEDD; border-radius:6px; overflow:hidden; box-shadow:0 12px 36px var(--shadow); display:flex; align-items:center; justify-content:center; }
.winner-module__media img { width:100%; height:100%; object-fit:cover; display:block; }
.winner-module__placeholder { color:var(--primary); opacity:.45; font-size:13px; padding:24px; text-align:center; }
.winner-module__cap { margin:24px auto 0; max-width:640px; color:var(--primary); font-size:16px; line-height:1.9; font-family:var(--ff-zh, var(--ff-serif)); }
.winner-module__ph { opacity:.5; font-style:italic; }
.winner-module__del { position:absolute; top:8px; right:8px; z-index:3; width:34px; height:34px; border-radius:50%; background:rgba(15,61,42,.82); color:#D6EEDD; font-size:20px; font-weight:300; line-height:1; display:flex; align-items:center; justify-content:center; cursor:pointer; opacity:0; transition:.3s; }
.winner-module:hover .winner-module__del { opacity:1; }
.winner-module__del:hover { background:var(--primary-deep); transform:scale(1.08); }
.winner-inline__add { display:flex; align-items:center; justify-content:center; gap:10px; margin:56px auto 0; padding:16px 32px; border:1.5px dashed rgba(31,90,63,.45); border-radius:8px; color:var(--primary); font-size:14px; cursor:pointer; transition:.3s; background:transparent; max-width:480px; width:100%; font-family:var(--ff-zh, var(--ff-serif)); }
.winner-inline__add:hover { background:rgba(31,90,63,.08); border-color:var(--primary); border-style:solid; }
@media (max-width:680px){ .winner-inline__head{ flex-direction:column; } .winner-inline__back{ align-self:flex-start; } .winner-module__del{ opacity:1; } .winner-inline__modules{ gap:48px; } }
