/* ==========================================================================
   唯问 WVEN · 视觉皮肤层 新版（2026-11）· 星轨 × 水墨
   --------------------------------------------------------------------------
   以一版为底：保留原站布局与全部功能，只改颜色、笔墨与气氛。
   背景：去彩的水墨山水 + 程序绘制的淡墨星轨、明灭星点、流动墨云（wven-scene.js）。
   亮色是宣纸上的淡墨星轨（不是黑夜）；暗色是靛青墨夜（不用纯黑）。
   由 index.html 的皮肤开关启用（html[data-skin="v4"]）。
   ========================================================================== */

/* ---------- 01 · 色彩 Token（明：宣纸与墨） ---------- */
:root,
:root .world-ready {
  --paper:      #f4f1ea;   /* 宣纸 */
  --paper-2:    #ece8df;   /* 半宣 */
  --surface:    #faf8f3;   /* 米白 · 纸面 */
  --surface-2:  #fdfcf9;
  --sunken:     #e9e5dc;
  --veil:       rgba(247, 245, 239, .9);

  --ink:        #1f2427;   /* 墨 */
  --ink-2:      #485055;   /* 深灰 */
  --ink-3:      #6a7174;   /* 岩石灰 */
  --ink-4:      #8b9092;

  --line:       #dfdad0;
  --line-soft:  #e8e4db;
  --line-2:     #c8c2b5;

  --primary:      #36545c;   /* 青黛 */
  --primary-deep: #263e45;
  --primary-soft: #e5eae6;   /* 青雾 */
  --accent:       #86775c;   /* 赭石 */
  --accent-soft:  #efebe2;
  --seal:         #9a5a4e;   /* 暗朱 · 极少量 */

  --deep:       #e7eae5;
  --deep-2:     #dfe5e0;
  --deep-ink:   #22363c;
  --deep-ink-2: #4c5f63;
  --deep-ink-3: #66767a;
  --deep-line:  rgba(54, 84, 92, .14);

  --ok:   #4f7464;  --ok-soft:  #e6eee8;
  --warn: #86714b;  --warn-soft: #f1ede3;
  --err:  #9a5a4e;  --err-soft: #f3e8e4;

  --wx-mu:   #557a66;   /* 竹青 */
  --wx-huo:  #a25f57;   /* 赭朱 */
  --wx-tu:   #8d7853;   /* 土褐 */
  --wx-jin:  #7d817f;   /* 岩灰 */
  --wx-shui: #44657a;   /* 黛蓝 */
  --wx-mu-soft: #e7eee8; --wx-tu-soft: #f0ece3; --wx-jin-soft: #eceeec; --wx-shui-soft: #e6ecef;

  --on-primary: #f6f3ec;
  --overlay: rgba(22, 27, 30, .38);
  --world-nav-surface: rgba(247, 245, 239, .86);
  --world-curve: #5d7b82; --world-star: #3f5a61;

  /* 皮肤自有 token */
  --sk-glass:   rgba(250, 248, 243, .76);
  --sk-glass-2: rgba(253, 252, 249, .88);
  --sk-hair:    rgba(31, 36, 39, .085);
  --sk-shadow:  0 1px 0 rgba(255, 255, 255, .7) inset, 0 22px 48px -34px rgba(31, 36, 39, .32);
  --sk-shadow-hover: 0 1px 0 rgba(255, 255, 255, .7) inset, 0 28px 60px -32px rgba(31, 36, 39, .38);
  --sk-mist:    rgba(250, 248, 242, .78);
  --sk-ease:    cubic-bezier(.22, .61, .36, 1);
  --sk-radius:  14px;
}

/* ---------- 01b · 色彩 Token（暗：墨夜青黛） ---------- */
[data-theme="dark"],
[data-theme="dark"] .world-ready {
  --paper:      #121517;
  --paper-2:    #171b1e;
  --surface:    #1b2023;
  --surface-2:  #22282b;
  --sunken:     #0e1112;
  --veil:       rgba(20, 24, 26, .9);

  --ink:        #e7e3d9;
  --ink-2:      #c0bbb0;
  --ink-3:      #9c9990;
  --ink-4:      #827f78;

  --line:       #2c3336;
  --line-soft:  #24292c;
  --line-2:     #3d4549;

  --primary:      #9fbcba;
  --primary-deep: #bed3d0;
  --primary-soft: #20302f;
  --accent:       #c5b38f;
  --accent-soft:  #2b2a26;
  --seal:         #cf8f80;

  --deep:       #1f2a2b;
  --deep-2:     #1a2425;
  --deep-ink:   #e7e3d9;
  --deep-ink-2: #b9c3c0;
  --deep-ink-3: #9aa6a3;
  --deep-line:  rgba(159, 188, 186, .14);

  --ok:   #98bfa9;  --ok-soft:  #1f2d28;
  --warn: #cbb68c;  --warn-soft: #2c2a24;
  --err:  #cf8f80;  --err-soft: #33231f;

  --wx-mu:   #8db39c;
  --wx-huo:  #d09086;
  --wx-tu:   #c7ae86;
  --wx-jin:  #b6b9b5;
  --wx-shui: #8daec4;
  --wx-mu-soft: #1f2c26; --wx-tu-soft: #2a2721; --wx-jin-soft: #242829; --wx-shui-soft: #1d2a31;

  --on-primary: #121517;
  --overlay: rgba(6, 8, 9, .6);
  --world-nav-surface: rgba(24, 28, 31, .86);
  --world-curve: #7f9ea2; --world-star: #c8d3d1;

  --sk-glass:   rgba(27, 32, 35, .74);
  --sk-glass-2: rgba(34, 40, 43, .9);
  --sk-hair:    rgba(231, 227, 217, .07);
  --sk-shadow:  0 1px 0 rgba(255, 255, 255, .03) inset, 0 24px 50px -34px rgba(0, 0, 0, .75);
  --sk-shadow-hover: 0 1px 0 rgba(255, 255, 255, .04) inset, 0 30px 64px -32px rgba(0, 0, 0, .85);
  --sk-mist:    rgba(18, 21, 23, .8);
}

/* ---------- 02 · 基础 ---------- */
.world-ready { color: var(--ink); }
::selection { background: var(--primary-soft); color: var(--ink); }
.world-ready :is(button, a, input, select, textarea):focus-visible {
  outline: 1.5px solid var(--primary);
  outline-offset: 4px;
}
@supports (scrollbar-width: thin) {
  html { scrollbar-width: thin; scrollbar-color: var(--line-2) transparent; }
}

/* ---------- 03 · 气氛：宣纸纹理 + 流动云雾（静中有动） ---------- */
/* 宣纸纤维：极淡的噪点，只在纸面上「被感觉到」 */
.world-scene::before {
  content: "";
  position: absolute; inset: 0; z-index: 2; pointer-events: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .35  0 0 0 0 .33  0 0 0 0 .3  0 0 0 .55 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  opacity: .16;
  mix-blend-mode: multiply;
}
[data-theme="dark"] .world-scene::before { opacity: .1; mix-blend-mode: screen; }

/* 云雾：两层极缓漂移的薄纱；进入子页后加厚，为内容让出安静的纸面 */
.world-scene::after {
  content: "";
  position: absolute; inset: -10% -20%; z-index: 1; pointer-events: none;
  background:
    radial-gradient(38% 22% at 22% 30%, var(--sk-mist), transparent 70%),
    radial-gradient(30% 18% at 74% 58%, var(--sk-mist), transparent 72%),
    radial-gradient(46% 26% at 50% 88%, var(--sk-mist), transparent 70%);
  opacity: .55;
  animation: sk-mist 96s ease-in-out infinite alternate;
}
body:not([data-world="world"]) .world-scene::after {
  background:
    linear-gradient(180deg, var(--paper) 0%, color-mix(in srgb, var(--paper) 72%, transparent) 38%, transparent 78%),
    radial-gradient(40% 22% at 24% 64%, var(--sk-mist), transparent 70%),
    radial-gradient(34% 20% at 78% 72%, var(--sk-mist), transparent 72%);
  opacity: .9;
}
body[data-world-level="reading"] .world-scene::after { opacity: 1; }
@keyframes sk-mist {
  from { transform: translate3d(-2.5%, 0, 0); }
  to   { transform: translate3d(2.5%, -1.2%, 0); }
}
[data-motion="reduce"] .world-scene::after,
.world-paused .world-scene::after { animation: none; }
@media (prefers-reduced-motion: reduce) { .world-scene::after { animation: none; } }

/* 山水在首页更清晰，子页退为远景 */
.world-painting { opacity: .82; }
body:not([data-world="world"]) .world-painting { opacity: .26; }
[data-theme="dark"] .world-painting { opacity: .14; filter: grayscale(.35) brightness(.9); }
[data-theme="dark"] body:not([data-world="world"]) .world-painting { opacity: .06; }

/* ---------- 04 · 顶部定位（品牌字标 + 所在位置 + 返回） ---------- */
.world-wordmark span { color: var(--ink); letter-spacing: .2em; }
.world-wordmark svg { stroke: var(--primary); }
.world-wordmark::after {
  content: "WVEN";
  font: 500 10px/1 var(--font-sans);
  letter-spacing: .42em;
  color: var(--ink-3);
  padding-left: 12px;
  margin-left: 2px;
  border-left: 1px solid var(--line-2);
  align-self: center;
}
.world-location { color: var(--ink-3); letter-spacing: .22em; }
.world-back {
  border-color: var(--sk-hair);
  background: var(--sk-glass);
  -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px);
  color: var(--ink-2);
  transition: color .2s, border-color .2s, transform .3s var(--sk-ease);
}
.world-back:hover { color: var(--ink); border-color: var(--line-2); transform: translateX(-2px); }

/* ---------- 05 · 首页：唯问 + 五个入口 ---------- */
.world-ready .world-title {
  color: var(--ink);
  letter-spacing: .22em;
  text-shadow: 0 1px 0 rgba(255, 255, 255, .35);
}
[data-theme="dark"] .world-ready .world-title { text-shadow: none; }
.world-ready .world-title::after {
  content: "WVEN";
  display: block;
  margin-top: 18px;
  font: 400 12px/1 var(--font-sans);
  letter-spacing: .9em;
  color: var(--ink-3);
}
.world-ready .world-motto { color: var(--ink-2); letter-spacing: .26em; }
.world-ready .world-motto::before {
  content: "";
  display: inline-block; width: 28px; height: 1px; margin-right: 14px;
  background: var(--ink-3); opacity: .6; vertical-align: middle;
}
.world-ready .world-landing-note { color: var(--ink-3); letter-spacing: .24em; }

/* 五个入口：同一张纸上的五行文字，以细线分隔，悬停时墨色晕开 */
.world-ready .world-map { gap: 0; }
.world-ready .world-map > .world-portal {
  border-bottom: 1px solid var(--sk-hair);
  border-radius: 0;
  padding-inline: 14px 10px;
  background-image: linear-gradient(90deg, var(--primary-soft), transparent 75%);
  background-size: 0% 100%;
  background-repeat: no-repeat;
  transition: background-size .6s var(--sk-ease), color .25s;
}
.world-ready .world-map > .world-portal:first-child { border-top: 1px solid var(--sk-hair); }
@media (hover: hover) {
  .world-ready .world-map > .world-portal:hover { background-color: transparent; background-size: 100% 100%; }
}
.world-ready .world-map > .world-portal:active { background-color: transparent; background-size: 100% 100%; }
.world-ready .world-portal-name { color: var(--ink); letter-spacing: .2em; transition: letter-spacing .5s var(--sk-ease); }
.world-ready .world-portal:hover .world-portal-name { letter-spacing: .26em; }
.world-ready .world-portal svg { stroke: var(--primary); stroke-width: .9; opacity: .9; }
.world-ready .world-portal-caption { color: var(--ink-3); letter-spacing: .1em; }
.world-ready .world-portal::after { color: var(--ink-4); }
.world-ready .world-portal:hover::after { color: var(--primary); }

/* 行间导航：浮在山水上的一枚磨砂纸片 */
.world-nav-toggle {
  background: var(--sk-glass);
  -webkit-backdrop-filter: blur(16px) saturate(1.1); backdrop-filter: blur(16px) saturate(1.1);
  border: 1px solid var(--sk-hair);
  box-shadow: var(--sk-shadow);
  color: var(--ink);
  transition: box-shadow .3s, transform .3s var(--sk-ease);
}
.world-nav-toggle:hover { box-shadow: var(--sk-shadow-hover); transform: translateY(-1px); }
.world-nav-toggle span { letter-spacing: .16em; color: var(--ink-2); }
.world-menu {
  background: color-mix(in srgb, var(--paper) 88%, transparent);
  -webkit-backdrop-filter: blur(22px); backdrop-filter: blur(22px);
}
.world-menu-map::before { border-color: var(--line-2); box-shadow: 0 0 0 36px color-mix(in srgb, var(--primary-soft) 40%, transparent); }
.world-menu-link strong { letter-spacing: .18em; }
.world-menu-center { border-color: var(--line-2); background: var(--surface); }

/* ---------- 06 · 页面标题与段落层级 ---------- */
.world-ready .page-title {
  color: var(--ink);
  font-size: clamp(36px, 4.4vw, 52px);
  letter-spacing: .2em;
  line-height: 1.2;
}
.world-ready .page-sub { color: var(--ink-2); letter-spacing: .22em; margin-top: 16px; }
.world-ready .page-sub::before {
  content: "";
  display: inline-block; width: 24px; height: 1px; margin-right: 12px;
  background: var(--primary); opacity: .55; vertical-align: middle;
}
.world-ready .sec-label { color: var(--ink-3); letter-spacing: .28em; font-size: 13px; }
.world-ready .sec-label::after { background: linear-gradient(90deg, var(--line-2), transparent); }
.world-ready :is(.ep-line, .intro-line, .yangyun-intro, .self-quote > p:first-of-type) { color: var(--ink); }
.world-ready :is(.ep-sub, .intro-sub, .wd-caption-sub, .foot-note) { color: var(--ink-3); }
.world-ready .sub-head { border-bottom-color: var(--sk-hair); }

/* ---------- 07 · 纸面材质：卡片、面板、抽屉 ---------- */
.world-ready :is(.card, .result-card, .mj-card, .pd-card, .peer-card, .shop-card, .zg-vipcard, .pd-switch-card, .membership-plan, .qzr-section, .zw-pan) {
  background: var(--surface);
  background: var(--sk-glass);
  -webkit-backdrop-filter: blur(14px) saturate(1.05);
  backdrop-filter: blur(14px) saturate(1.05);
  border: 1px solid var(--sk-hair);
  border-radius: var(--sk-radius);
  box-shadow: var(--sk-shadow);
}
.world-ready .card .card { background: transparent; box-shadow: none; -webkit-backdrop-filter: none; backdrop-filter: none; }
.world-ready .ju-card { border-color: var(--sk-hair); border-radius: var(--sk-radius); }
.drawer-panel {
  background: var(--surface);
  border: 1px solid var(--sk-hair);
  border-radius: 22px 22px 0 0;
  box-shadow: 0 -24px 60px -30px rgba(20, 24, 26, .35);
}
.drawer-title { letter-spacing: .16em; }
.wven-dialog { background: var(--surface); color: var(--ink); border-color: var(--sk-hair); box-shadow: var(--sk-shadow-hover); }
.wven-dialog::backdrop { background: var(--overlay); -webkit-backdrop-filter: blur(3px); backdrop-filter: blur(3px); }

/* 起盘入口：一张安静的纸笺 */
.world-ready #zm-home > .start-card {
  background: var(--sk-glass-2);
  -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px);
  border: 1px solid var(--sk-hair);
  border-radius: 16px;
  box-shadow: var(--sk-shadow);
  transition: box-shadow .35s var(--sk-ease), transform .35s var(--sk-ease), border-color .2s;
}
@media (hover: hover) {
  .world-ready #zm-home > .start-card:hover {
    background-color: transparent;
    box-shadow: var(--sk-shadow-hover);
    border-color: var(--line-2);
    transform: translateY(-2px);
  }
}
.world-ready .sc-seal { border-color: var(--line-2); color: var(--primary); }
.world-ready .sc-title { letter-spacing: .3em; }

/* 观运三入口、自观条目：保持行式，仅收细线与回应 */
.world-ready :is(.fun-card, .cap-card) { border-bottom-color: var(--sk-hair); }
.world-ready .fun-icon { border-color: var(--line-2); }
@media (hover: hover) {
  .world-ready :is(.fun-card, .self-card):hover { background-color: color-mix(in srgb, var(--primary-soft) 70%, transparent); }
}

/* 体系切换（四柱 / 紫微 / 七政）：选中时青黛描边 + 一圈雾 */
.world-ready .sys-tab { color: var(--ink-3); transition: color .25s; }
.world-ready .sys-tab:hover { color: var(--ink); }
.world-ready .sys-tab::before { border-color: var(--line-2); transition: border-color .3s, box-shadow .5s var(--sk-ease), transform .5s var(--sk-ease); }
.world-ready .sys-tab.active { color: var(--ink); }
.world-ready .sys-tab.active::before { border-color: var(--primary); box-shadow: 0 0 0 6px var(--primary-soft), 0 0 0 12px color-mix(in srgb, var(--primary-soft) 45%, transparent); }
.world-ready .sys-tab-name { letter-spacing: .14em; }

/* 次级控件：人物切换、购物车、筛选片 —— 与 ghost 按钮同一语言 */
.world-ready :is(.person-switch, .yy-cart-btn, .shop-cat, .chip) {
  border: 1px solid var(--line-2);
  border-radius: 999px;
  background: color-mix(in srgb, var(--surface) 60%, transparent);
  color: var(--ink-2);
  transition: border-color .2s, color .2s, background-color .2s;
}
.world-ready :is(.person-switch, .yy-cart-btn, .shop-cat, .chip):hover { border-color: var(--primary); color: var(--ink); }
.world-ready :is(.shop-cat, .chip):is(.active, [aria-pressed="true"]) { background: var(--ink); border-color: var(--ink); color: var(--paper); }
.world-ready .world-landing-note { text-shadow: 0 0 12px var(--paper), 0 0 2px var(--paper); }

/* ---------- 08 · 按钮 ---------- */
.world-ready .btn-primary {
  background: var(--primary-deep);
  background: linear-gradient(180deg, color-mix(in srgb, var(--primary) 88%, #fff 0%), var(--primary-deep));
  color: var(--on-primary);
  border: 0;
  border-radius: 999px;
  letter-spacing: .16em;
  box-shadow: 0 1px 0 rgba(255, 255, 255, .12) inset, 0 12px 26px -16px rgba(38, 62, 69, .7);
  transition: transform .25s var(--sk-ease), box-shadow .25s, filter .2s;
}
.world-ready .btn-primary:hover { filter: brightness(1.06); transform: translateY(-1px); box-shadow: 0 1px 0 rgba(255, 255, 255, .14) inset, 0 16px 30px -16px rgba(38, 62, 69, .75); }
.world-ready .btn-primary:active { transform: translateY(0); }
.world-ready .btn-primary:disabled { filter: none; transform: none; box-shadow: none; }
[data-theme="dark"] .world-ready .btn-primary { box-shadow: 0 12px 26px -16px rgba(0, 0, 0, .8); }
.world-ready .btn-ghost {
  border: 1px solid var(--line-2);
  border-radius: 999px;
  background: color-mix(in srgb, var(--surface) 55%, transparent);
  color: var(--ink);
  letter-spacing: .1em;
}
.world-ready .btn-ghost:hover { border-color: var(--primary); color: var(--primary-deep); background: var(--primary-soft); }
[data-theme="dark"] .world-ready .btn-ghost:hover { color: var(--primary-deep); }

/* ---------- 09 · 表单 ---------- */
.world-ready :is(.field input, .field select, .field textarea) {
  background: color-mix(in srgb, var(--surface-2) 80%, transparent);
  border: 1px solid var(--line);
  border-radius: 12px;
  color: var(--ink);
  transition: border-color .2s, box-shadow .25s, background-color .2s;
}
.world-ready :is(.field input, .field select, .field textarea):hover { border-color: var(--line-2); }
.world-ready :is(.field input, .field select, .field textarea):focus {
  border-color: var(--primary);
  background: var(--surface-2);
  box-shadow: 0 0 0 4px var(--primary-soft);
  outline: none;
}
.world-ready .field label { color: var(--ink-2); letter-spacing: .08em; }
.world-ready .radio-pill span { border-color: var(--line-2); background: color-mix(in srgb, var(--surface-2) 70%, transparent); transition: all .2s; }
.world-ready .radio-pill input:checked + span { background: var(--ink); border-color: var(--ink); color: var(--paper); }
.world-ready .zm-mode-tabs { background: var(--sunken); border: 1px solid var(--sk-hair); border-radius: 999px; padding: 3px; }
.world-ready .zm-mode-tab { border-radius: 999px; color: var(--ink-3); transition: color .2s, background-color .25s, box-shadow .25s; }
.world-ready .zm-mode-tab.active { background: var(--surface-2); color: var(--ink); box-shadow: 0 1px 2px rgba(31, 36, 39, .08), 0 4px 12px -6px rgba(31, 36, 39, .18); }

/* ---------- 10 · 页签（命盘 / AI 解读 / 人生趋势 等） ---------- */
.world-ready .zm-tab { color: var(--ink-3); letter-spacing: .16em; transition: color .2s; }
.world-ready .zm-tab:hover { color: var(--ink); }
.world-ready .zm-tab.active { color: var(--ink); border-bottom-color: var(--primary); }
.world-ready :is(.ai-tab, .zg-tab, .auth-tab) { letter-spacing: .12em; }

/* ---------- 11 · 问道 ---------- */
.world-ready .q-chip {
  background: var(--sk-glass);
  -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px);
  border: 1px solid var(--sk-hair);
  border-radius: 12px;
  color: var(--ink-2);
  box-shadow: none;
  transition: transform .3s var(--sk-ease), border-color .2s, color .2s, box-shadow .3s;
}
.world-ready .q-chip:hover { color: var(--ink); border-color: var(--line-2); box-shadow: var(--sk-shadow); }
.world-ready .wd-new-btn { background: var(--sk-glass-2); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); }
.world-ready .wd-ring { border-color: var(--line-2); }
.world-ready .wd-core { color: var(--ink); }
.world-ready .wd-bubble.user { background: var(--ink); color: var(--paper); }
.world-ready :is(.wd-input-area, .wp-input-area) {
  background: var(--sk-glass-2);
  -webkit-backdrop-filter: blur(16px); backdrop-filter: blur(16px);
  border-top: 1px solid var(--sk-hair);
}

/* ---------- 12 · 养运：五行之气 ---------- */
/* 五枚圆环以各自五行色描边，并缓慢「呼吸」，依次错开 —— 相生流转 */
.world-ready .wx-circle-row .wx-circle {
  background: color-mix(in srgb, var(--surface) 60%, transparent);
  border-color: var(--line-2);
  transition: transform .4s var(--sk-ease), border-color .3s, box-shadow .4s;
}
.world-ready .wx-circle-row .wx-circle:nth-child(1) { --sk-wx: var(--wx-mu); }
.world-ready .wx-circle-row .wx-circle:nth-child(2) { --sk-wx: var(--wx-huo); }
.world-ready .wx-circle-row .wx-circle:nth-child(3) { --sk-wx: var(--wx-tu); }
.world-ready .wx-circle-row .wx-circle:nth-child(4) { --sk-wx: var(--wx-jin); }
.world-ready .wx-circle-row .wx-circle:nth-child(5) { --sk-wx: var(--wx-shui); }
.world-ready .wx-circle-row .wx-circle {
  border-color: color-mix(in srgb, var(--sk-wx, var(--line-2)) 55%, transparent);
  animation: sk-qi 9s ease-in-out infinite;
}
.world-ready .wx-circle-row .wx-circle:nth-child(2) { animation-delay: 1.8s; }
.world-ready .wx-circle-row .wx-circle:nth-child(3) { animation-delay: 3.6s; }
.world-ready .wx-circle-row .wx-circle:nth-child(4) { animation-delay: 5.4s; }
.world-ready .wx-circle-row .wx-circle:nth-child(5) { animation-delay: 7.2s; }
.world-ready .wx-circle-row .wx-circle:hover { box-shadow: 0 0 0 6px color-mix(in srgb, var(--sk-wx) 14%, transparent); }
@keyframes sk-qi {
  0%, 100% { box-shadow: 0 0 0 0 color-mix(in srgb, var(--sk-wx) 0%, transparent); }
  50%      { box-shadow: 0 0 0 7px color-mix(in srgb, var(--sk-wx) 10%, transparent); }
}
[data-motion="reduce"] .world-ready .wx-circle-row .wx-circle { animation: none; }
@media (prefers-reduced-motion: reduce) { .world-ready .wx-circle-row .wx-circle { animation: none; } }
.world-ready .cap-card { background: transparent; }

/* ---------- 13 · 自观 ---------- */
.world-ready #zg-home .self-core { border-left-color: var(--primary); }
.world-ready #zg-home .self-core .self-core-tag { color: var(--ink-3); letter-spacing: .26em; }

/* ---------- 14 · 小屏 ---------- */
@media (max-width: 950px) {
  .world-wordmark::after { padding-left: 9px; letter-spacing: .34em; font-size: 9px; }
  .world-ready .world-title::after { margin-top: 12px; font-size: 10px; letter-spacing: .7em; }
  .world-ready .page-title { font-size: clamp(32px, 9vw, 40px); }
  .world-ready .page-sub { letter-spacing: .14em; }
  .world-ready .world-map > .world-portal { padding-inline: 6px; }
}

/* 路由切换后程序性聚焦到页标题（无障碍定位），不需要画出焦点框 */
.world-ready [tabindex="-1"]:focus:not(:focus-visible),
.world-ready :is(h1, h2, h3)[tabindex="-1"]:focus { outline: none; }
@media (max-width: 600px) {
  .world-wordmark::after { display: none; }
}

/* ==========================================================================
   新版增补：星轨 × 水墨（布局沿用原站，只换气氛与笔墨）
   ========================================================================== */
@font-face {
  font-family: "WV Brush";
  src: url("fonts/TWKai-subset.woff2") format("woff2");   /* 全字库正楷 TW-Kai · 政府资料开放授权第1版 · 仅标题用字子集；见 fonts/TWKai-NOTICE.txt */
  font-display: swap;
}
:root { --sk-brush: "WV Brush", "STKaiti", "KaiTi", "Kaiti SC", "Zhiming Serif", serif; }

/* 暗色：靛青墨夜，不用纯黑 */
[data-theme="dark"],
[data-theme="dark"] .world-ready {
  --paper:      #1a2230;
  --paper-2:    #1e2736;
  --surface:    #222c3b;
  --surface-2:  #283445;
  --sunken:     #151c28;
  --veil:       rgba(28, 36, 50, .92);
  --line:       #34415a;
  --line-soft:  #2b3649;
  --line-2:     #46546d;
  --primary:    #a9c0d4;
  --primary-deep: #c6d6e4;
  --primary-soft: #2a3a50;
  --sk-glass:   rgba(34, 44, 59, .76);
  --sk-glass-2: rgba(40, 52, 69, .88);
  --sk-mist:    rgba(26, 34, 48, .78);
  --world-nav-surface: rgba(30, 39, 54, .9);
}

/* ---------- 背景：水墨山水（去彩）+ 程序绘制的星轨与墨云 ---------- */
.wv-scene-canvas { position: absolute; inset: 0; z-index: 1; pointer-events: none; }
.world-painting { filter: grayscale(1) sepia(.08) contrast(1.06); opacity: .72; }
body:not([data-world="world"]) .world-painting { opacity: .3; }
[data-theme="dark"] .world-painting { filter: grayscale(1) invert(.9) contrast(1.15) brightness(.9); opacity: .34; mix-blend-mode: screen; }
[data-theme="dark"] body:not([data-world="world"]) .world-painting { opacity: .14; }
.world-scene .world-core, .world-land :is(.world-star, .world-constellation) { display: none; }
body[data-world="world"] .world-scene::after { opacity: .3; }
[data-theme="dark"] .world-scene { background: radial-gradient(80% 60% at 70% 0%, #26324a 0%, #1a2230 60%, #161d2a 100%); }

/* ---------- 笔墨：书法标题 + 小印（来自上一版的可取之处） ---------- */
.world-ready :is(.world-title, .world-portal-name, .page-title, .sc-title, .wd-core, .world-menu-link strong) {
  font-family: var(--sk-brush);
  font-weight: 400;
}
.world-ready .world-title { letter-spacing: .14em; }
.world-ready .page-title { font-size: clamp(42px, 4.6vw, 60px); letter-spacing: .14em; }
.world-ready .page-title.small { font-size: clamp(32px, 3.2vw, 42px); }
.world-ready .world-portal-name { letter-spacing: .18em; }
.world-ready .page-title::after {
  content: "唯问";
  display: inline-block;
  writing-mode: vertical-rl;
  margin-left: 14px; padding: 4px 3px;
  vertical-align: top;
  font: 400 12px/1.05 var(--sk-brush);
  letter-spacing: 0;
  color: #f8eee4;
  background: #a54a3d;
  border-radius: 3px;
  box-shadow: inset 0 0 0 1.5px rgba(255, 238, 222, .35);
  transform: rotate(5deg) translateY(6px);
  opacity: .9;
}
.world-ready .sc-title { letter-spacing: .4em; }

/* 子页散落文字：在流动背景之上加一圈纸色晕，保证清楚 */
body.world-ready:not([data-world="world"]) .view :is(p, .ep-line, .ep-sub, .intro-line, .intro-sub, .wd-caption, .wd-caption-sub, .foot-note, .sec-label, .yangyun-intro, .self-quote, .disclaimer) {
  text-shadow: 0 0 8px var(--paper), 0 0 2px var(--paper);
}
body.world-ready[data-world="world"] :is(.world-motto, .world-landing-note, .world-portal-caption) {
  text-shadow: 0 0 10px var(--paper), 0 0 2px var(--paper);
}

/* 背景只保留星轨旋转：山水画与云雾层不再左右漂移 */
.world-painting { animation: none !important; transform: none; inset: 0; }
.world-scene::after { animation: none !important; transform: none; }

/* 标题字体：全字库正楷 —— 标准正楷，端正舒展、不跳脱 */
.world-ready :is(.world-title, .world-portal-name, .page-title, .sc-title, .wd-core, .world-menu-link strong) { font-weight: 400; }
.world-ready .world-title { font-size: clamp(66px, 7.2vw, 100px); letter-spacing: .12em; }
.world-ready .world-portal-name,
.world-ready .world-map .world-portal-name { font-size: 29px; letter-spacing: .16em; }
.world-ready .page-title { font-size: clamp(44px, 4.6vw, 60px); letter-spacing: .12em; }
.world-ready .page-title.small { font-size: clamp(34px, 3.4vw, 44px); }
.world-ready .sc-title { font-size: 28px; letter-spacing: .32em; }
.world-ready .wd-core { font-size: 42px; }
@media (max-width: 950px) {
  .world-ready .world-title { font-size: 64px; }
  .world-ready .world-portal-name,
  .world-ready .world-map .world-portal-name { font-size: 26px; letter-spacing: .14em; }
  .world-ready .page-title { font-size: clamp(38px, 10vw, 46px); }
}

/* 手机端标题换行时印章不掉到字下方：印章固定在标题右上角 */
.world-ready .page-title { position: relative; }
.world-ready .page-title::after { position: absolute; left: 100%; top: 0; margin-left: 10px; transform: rotate(5deg); }

/* 知命 · 观运：三个入口内容居中 */
.world-ready .fun-card { align-items: center; text-align: center; }
