.home-scene {
  --home-red: #b74734;
  --home-slate: #727986;
  --home-header: clamp(120px, 20dvh, 148px);
  --home-footer: max(48px, calc(42px + env(safe-area-inset-bottom)));
  --portrait-size: min(27vw, 37dvh, 340px);
  height: 100dvh; min-height: 0; padding: 0;
  display: flex; flex-direction: column; align-items: stretch; text-align: left;
  font-family: "STSong", "Songti SC", "SimSun", serif;
}
.home-scene button { -webkit-tap-highlight-color: transparent; }
.home-scene button:focus-visible { outline: 2px solid var(--home-red); outline-offset: 5px; }
.home-header { flex: 0 0 var(--home-header); position: relative; }
.home-nav { position: absolute; top: 24px; right: clamp(20px, 3vw, 56px); display: flex; gap: clamp(12px, 1.8vw, 28px); }
.home-nav-button { position: relative; border: 0; padding: 6px 7px 20px; background: transparent; color: var(--home-slate); transition: color 180ms, transform 180ms; }
.home-nav-mark { font-size: clamp(22px, 2.2vw, 34px); }
.home-nav-caption { position: absolute; top: 78%; left: 50%; transform: translateX(-50%); color: var(--home-red); font-size: 11px; letter-spacing: .05em; white-space: nowrap; opacity: 0; transition: opacity 180ms; }
.home-nav-mark, .home-nav-caption, .home-role, .home-coin-label, .home-description h2, .home-description p, .home-enter { text-shadow: 0 2px 3px rgb(43 46 56 / 24%); }
.home-nav-button.is-selected, .home-nav-button:hover { color: var(--home-red); transform: translateY(-2px); }
.home-nav-button.is-selected .home-nav-caption, .home-nav-button:focus-visible .home-nav-caption { opacity: 1; }
.home-main { width: min(1320px, calc(100% - clamp(40px, 8vw, 150px))); flex: 1; min-height: 0; margin: 0 auto; display: grid; grid-template-columns: .9fr 1.25fr; align-items: center; gap: clamp(32px, 6vw, 92px); }
.home-profile { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: clamp(8px, 2dvh, 24px); min-width: 0; }
.home-portrait-wrap { position: relative; width: var(--portrait-size); height: var(--portrait-size); flex: 0 0 auto; }
.home-portrait { position: relative; width: 100%; height: 100%; perspective: 1100px; }
.home-portrait-disc { position: relative; width: 100%; height: 100%; transform: rotateX(var(--portrait-x, 0deg)) rotateY(var(--portrait-y, 0deg)); transition: transform 220ms ease-out; }
.home-portrait-artwork { display: block; width: 100%; height: 100%; overflow: visible; color: #4a4f5e; font-family: "Songti SC", "Noto Serif SC", "SimSun", serif; }
.home-avatar-flipper { position: absolute; inset: 0; backface-visibility: hidden; pointer-events: none; }
.home-avatar-artwork { display: block; width: 100%; height: 100%; overflow: visible; }
.home-portrait-emboss { filter: drop-shadow(0 .6px 0 rgb(255 255 255 / 50%)); }
.home-portrait-ring {
  transform-origin: 200px 200px;
  animation: home-portrait-spin var(--ring-duration) linear infinite;
  animation-direction: var(--ring-direction);
  animation-play-state: paused;
}
.home-scene.is-portrait-active .home-portrait-ring { animation-play-state: running; }
@keyframes home-portrait-spin { to { transform: rotate(360deg); } }
.home-seal { display: block; width: calc(var(--portrait-size) * .17); height: auto; transform: rotate(4deg); filter: saturate(.7) brightness(.85); opacity: .85; pointer-events: none; }
.home-profile-copy { width: 100%; display: flex; justify-content: center; align-items: flex-start; gap: clamp(16px, 2vw, 28px); }
.home-identity { width: min(100%, 320px); min-width: 0; }
.home-identity-heading { display: contents; }
.home-name { font-size: clamp(34px, 3.6vw, 56px); font-weight: 600; letter-spacing: .2em; margin: 0; line-height: 1.25; text-shadow: 0 3px 4px rgb(43 46 56 / 26%); }
.home-name:focus { outline: none; }
.home-name-reset { display: inline; border: 0; padding: 0; margin: 0; background: transparent; color: inherit; font: inherit; letter-spacing: inherit; line-height: inherit; text-shadow: inherit; }
.home-name-reset:disabled { color: inherit; opacity: 1; cursor: default; }
.home-role { margin: 9px 0 14px; font-size: clamp(12px, 1.2vw, 18px); color: #515866; letter-spacing: .06em; }
.home-role-break { display: none; }
.home-profile-line { width: 55%; height: 1px; background: rgb(43 46 56 / 24%); margin-bottom: 15px; }
.home-tags { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 7px; }
.home-tags li { font-family: "Microsoft YaHei", "PingFang SC", sans-serif; font-size: clamp(10px, .85vw, 13px); color: #515866; border: 1px solid rgb(43 46 56 / 22%); border-radius: 20px; background: rgb(255 255 255 / 28%); padding: 3px 10px; line-height: 1.35; white-space: nowrap; text-align: center; }
.home-signature { position: absolute; left: clamp(20px, 2vw, 44px); top: calc((100% + var(--home-header) - var(--home-footer)) / 2); transform: translateY(-50%); display: flex; flex-direction: column; align-items: center; gap: 0; margin: 0; color: #505865; font-size: clamp(20px, 1.75vw, 27px); font-weight: 600; text-shadow: 0 2px 3px rgb(43 46 56 / 24%), 0 1px 0 rgb(255 255 255 / 65%); line-height: 1.5; letter-spacing: .25em; white-space: nowrap; }
.home-signature-text { writing-mode: vertical-rl; }
.home-signature-link { position: relative; isolation: isolate; display: flex; flex: 0 0 auto; align-items: center; justify-content: center; padding: clamp(20px, 2.9dvh, 30px) 0; margin: clamp(16px, 2.2dvh, 24px) 0; }
/* 连接线完整穿过透明印章下方；印章盖在线上，保留真实透印效果。 */
.home-signature-link::before { content: ""; position: absolute; top: 0; bottom: 0; left: 50%; width: 1px; transform: translateX(-50%); background: currentColor; opacity: .55; z-index: 0; }
.home-signature-link .home-seal { position: relative; z-index: 1; }
.home-menu { position: relative; height: 100%; max-height: 620px; min-height: 0; display: flex; align-items: center; justify-content: center; }
.home-coins { width: 100%; height: 100%; min-height: 0; position: relative; }
.home-coin { --coin-size: clamp(82px, 9.5vw, 142px); position: absolute; width: var(--coin-size); height: var(--coin-size); border: 0; padding: 0; background: transparent; transform: translate(-50%, -50%); z-index: 1; }
.home-coin:nth-child(1) { left: 50%; top: 12%; }
.home-coin:nth-child(2) { left: 83%; top: 31%; }
.home-coin:nth-child(3) { left: 83%; top: 69%; }
.home-coin:nth-child(4) { left: 50%; top: 88%; }
.home-coin:nth-child(5) { left: 17%; top: 69%; }
.home-coin:nth-child(6) { left: 17%; top: 31%; }
.home-coin-shadow { position: absolute; inset: 0; perspective: 900px; filter: drop-shadow(0 8px 8px rgb(43 38 28 / 24%)); }
.home-coin-turner { position: absolute; inset: 0; transform-style: preserve-3d; transition: transform 750ms cubic-bezier(.25, .7, .25, 1); }
.home-coin-face { position: absolute; inset: 0; display: block; border-radius: 50%; overflow: hidden; backface-visibility: hidden; }
.home-coin-face img { display: block; width: 100%; height: 100%; object-fit: cover; pointer-events: none; }
.home-coin-front img { transform: scale(1.14); }
.home-coin-back { transform: rotateY(180deg); }
.home-coin-back img { transform: scale(1.2); }
.home-coin.is-selected { z-index: 2; }
.home-coin.is-selected .home-coin-turner { transform: rotateY(180deg) scale(1.04); }
.home-coin-label { position: absolute; top: calc(100% + 6px); left: 50%; transform: translateX(-50%); color: var(--home-slate); font-size: clamp(19px, 1.6vw, 26px); line-height: 1; }
.home-coin.is-selected .home-coin-label { color: var(--home-red); }
.home-description { position: absolute; left: 50%; top: 52%; transform: translate(-50%, -50%); width: 48%; display: flex; flex-direction: column; align-items: center; text-align: center; z-index: 3; }
.home-description h2 { width: 100%; margin: 0 0 6px; font-size: clamp(19px, 1.8vw, 28px); font-weight: 400; color: var(--home-red); letter-spacing: .1em; line-height: 1.5; overflow-wrap: anywhere; }
.home-description p { width: 100%; margin: 0; color: #515866; font-size: clamp(12px, 1vw, 16px); line-height: 1.6; min-height: 0; }
.home-enter { display: inline-flex; align-items: center; gap: .4em; padding: 2px 4px; margin-top: 10px; min-height: 0; border: 0; border-bottom: 1px solid rgb(43 46 56 / 50%); background: transparent; font-family: inherit; font-size: clamp(14px, 1.2vw, 18px); line-height: 1.2; letter-spacing: .1em; white-space: nowrap; transform: translateX(.6em); }
.home-enter:hover { color: var(--home-red); border-color: var(--home-red); }
.home-footer {
  flex: 0 0 var(--home-footer); display: grid; place-items: center;
  padding: 0 max(12px, env(safe-area-inset-right)) max(6px, env(safe-area-inset-bottom)) max(12px, env(safe-area-inset-left));
}
.home-section { flex: 1; min-height: 0; width: min(920px, calc(100% - 48px)); margin: 0 auto; overflow: auto; padding: 10px 0 30px; }
.home-back { border: 0; border-bottom: 1px solid rgb(43 46 56 / 24%); padding: 6px 0; background: transparent; font-family: inherit; font-size: 15px; }
.home-section h2 { font-weight: 400; font-size: clamp(28px, 4vw, 48px); letter-spacing: .14em; margin: 38px 0 18px; }
.home-pending { color: var(--home-slate); font-size: 16px; }
@media (min-width: 1101px) and (min-height: 501px) {
  /* 桌面沿用已确认排版；不因窗口宽高比略变而切成左侧题句和小头像。 */
  .home-scene { --home-divider-x: 52.8%; }
  .home-profile { transform: none; }
  .home-portrait-wrap { position: static; }
  .home-portrait {
    position: absolute; left: 30.7%; top: 38%;
    width: var(--portrait-size); height: var(--portrait-size);
    transform: translate(-50%, -50%) scale(1.5625);
  }
  .home-profile-copy {
    position: absolute; left: 30.7%; top: 78%; width: 320px;
    /* 保持原中心，只有接近底部时上移，给备案页脚留出 8px。 */
    transform: translate(-50%, min(-50%, calc(22dvh - var(--home-footer) - 8px - 100%))); text-align: center;
  }
  .home-profile-line { margin-left: auto; margin-right: auto; }
  .home-signature { left: var(--home-divider-x); top: 53%; transform: translate(-50%, -50%); }
}
@media (min-width: 601px) and (max-width: 1100px) {
  .home-scene { --home-header: clamp(100px, 16dvh, 132px); --portrait-size: min(26vw, 28dvh, 260px); }
  .home-main { width: calc(100% - 48px); grid-template-columns: .9fr 1.25fr; gap: clamp(24px, 5vw, 50px); }
  .home-signature { left: 47%; top: 54%; transform: translate(-50%, -50%); font-size: clamp(10px, min(1.45vw, 2.3dvh), 16px); line-height: 1.35; }
  .home-signature-link { padding: 12px 0; margin: 10px 0; }
  .home-signature-link .home-seal { width: clamp(16px, 2.4vw, 26px); }
  .home-identity { text-align: center; }
  .home-profile-line { margin-left: auto; margin-right: auto; }
  .home-nav { gap: clamp(6px, 1.1vw, 12px); }
}
@media (max-height: 500px) and (min-width: 1101px) {
  .home-scene { --home-header: 112px; --portrait-size: min(17vw, 37dvh); }
  .home-main { grid-template-columns: 1fr 1.05fr; gap: 32px; }
  .home-profile { flex-direction: row; gap: 16px; }
  .home-profile-copy { width: auto; flex: 1; }
  .home-signature { display: none; }
  .home-name { font-size: 31px; }
  .home-role { font-size: 11px; margin: 6px 0 10px; }
  .home-profile-line { margin-bottom: 10px; }
  .home-tags { gap: 4px; }
  .home-tags li { font-size: 9px; padding: 2px 6px; }
  .home-coin { --coin-size: 62px; }
  .home-description h2 { font-size: 17px; margin-bottom: 6px; }
  .home-description p { font-size: 11px; line-height: 1.6; }
  .home-enter { font-size: 12px; margin-top: 5px; }
  .home-footer { padding-bottom: max(6px, env(safe-area-inset-bottom)); }
}
@media (min-width: 601px) {
  /* 按页面右边缘定位，六枚铜币构成顶部、底部各一枚的环。 */
  .home-menu {
    --menu-size: min(48vw, 720px, calc(100dvh - var(--home-header) - var(--home-footer) - 16px));
    position: absolute; right: max(20px, env(safe-area-inset-right));
    top: calc(var(--home-header) + (100% - var(--home-header) - var(--home-footer) - var(--menu-size)) / 2);
    width: var(--menu-size); height: var(--menu-size); max-height: none;
  }
  .home-coins { height: calc(100% - 26px); align-self: flex-start; }
  .home-coin { --coin-size: min(9.5vw, 142px, calc(var(--menu-size) * .21)); }
  .home-description { top: calc((100% - 26px) / 2 + 3%); width: 44%; }
}
@media (max-width: 600px) {
  .home-scene {
    --phone-brand-size: clamp(28px, 8.78vw, 52px);
    --home-header: max(clamp(68px, 13dvh, 96px), calc(var(--phone-brand-size) * 1.305 + max(12px, env(safe-area-inset-top)) + 8px));
    --home-footer: max(clamp(72px, 10dvh, 80px), calc(72px + env(safe-area-inset-bottom)));
    --home-gap: clamp(10px, 2.13dvh, 16px);
    /* 头像在上一版基础上缩为 85%；保留原上排高度和币区预算。 */
    --home-content-height: calc(100dvh - var(--home-header) - var(--home-footer) - var(--home-gap));
    --phone-portrait-base: min(56.875vw, calc(var(--home-content-height) * .4), 300px);
    --portrait-size: calc(var(--phone-portrait-base) * 1.35 * .85);
    --phone-profile-height: max(calc(var(--home-content-height) * .4 + 12px), calc(var(--phone-portrait-base) * 1.35));
    --phone-menu-height: calc(var(--home-content-height) - var(--phone-profile-height));
    --phone-title-size: clamp(10.5px, min(3.29vw, calc(var(--home-content-height) * .032)), 19.75px);
    --phone-copy-width: min(30vw, 170px);
    --phone-copy-reference-width: calc(100vw - var(--phone-portrait-base) * 1.35 - clamp(6px, 2vw, 12px));
    height: 100dvh; min-height: 0;
  }
  .home-scene .arrival-brand { --arrival-size: var(--phone-brand-size); left: max(12px, env(safe-area-inset-left)); top: max(12px, env(safe-area-inset-top)); }
  .arrival-wordmark { margin-top: 4px; }
  .home-nav { top: 12px; right: max(10px, env(safe-area-inset-right)); font-size: var(--phone-title-size); gap: .65em; }
  .home-nav-button { min-width: 0; min-height: 44px; padding: 6px .3em 15px; }
  .home-nav-mark { font-size: var(--phone-title-size); }
  .home-nav-caption { font-size: clamp(5.5px, 1.72vw, 10px); }
  .home-main { width: calc(100% - 24px); flex: 1 1 0; grid-template-columns: minmax(0, 1fr); grid-template-rows: var(--phone-profile-height) minmax(0, 1fr); gap: var(--home-gap); }
  .home-profile { width: calc(100% + 24px); margin-inline: -12px; height: 100%; min-height: 0; display: grid; grid-template-columns: var(--portrait-size) minmax(0, 1fr); align-items: center; gap: clamp(6px, 2vw, 12px); }
  .home-profile-copy { flex: 1; min-width: 0; width: auto; height: 100%; align-self: stretch; text-align: center; container-type: inline-size; }
  /* 同排共用垂直中心；姓名、横线和标签均在头像盘右侧的剩余列内居中。 */
  .home-identity { position: relative; width: 100%; height: 100%; max-width: none; display: grid; grid-template-rows: minmax(0, 1fr) 1px minmax(0, 1fr); justify-items: center; row-gap: clamp(4px, 1.2dvh, 8px); }
  .home-identity-heading { position: static; align-self: end; width: min(var(--phone-copy-width), calc(100% - 8px)); display: flex; flex-direction: column; align-items: center; gap: 5px; }
  .home-name { width: 100%; font-size: calc(clamp(9px, min(4.23vw, calc(var(--phone-copy-reference-width) * .2), calc(var(--home-content-height) * .041)), 25.4px) * 1.3); padding-left: 0; }
  .home-role { width: 100%; font-size: calc(clamp(5px, min(1.57vw, calc(var(--home-content-height) * .015)), 9.4px) * 1.3); margin: 0; white-space: normal; }
  .home-role-break { display: block; }
  .home-profile-line { position: static; width: 60%; margin: 0; }
  .home-tags { position: static; align-self: start; display: flex; flex-wrap: wrap; justify-content: center; width: min(var(--phone-copy-width), calc(100% - 8px)); max-width: none; font-size: calc(clamp(4px, min(1.25vw, calc(var(--home-content-height) * .012)), 7.5px) * 1.3); gap: 2px; }
  .home-tags li { flex: 0 0 calc((100% - 4px) / 3); font-size: inherit; padding: 2px; }
  .home-signature { display: none; }
  /* 按参考图把币、标签和简介组成 5.4×4.5 的整体，只等比缩放，不铺满余高。 */
  .home-menu { --coin-size: min(clamp(43px, 13.5vw, 72px), calc((100vw - 32px) / 5.4), calc(var(--phone-menu-height) / 4.5)); --phone-coin-font: calc(var(--coin-size) * .23); width: calc(var(--coin-size) * 5.4); height: calc(var(--coin-size) * 4.5); min-height: 0; max-height: none; margin: 0; align-self: center; justify-self: center; }
  .home-coins { height: 100%; min-height: 0; display: block; padding: 0; }
  .home-coin { --coin-size: inherit; position: absolute; transform: translate(-50%, -50%); }
  .home-coin:nth-child(1), .home-coin:nth-child(5) { left: 32%; }
  .home-coin:nth-child(2), .home-coin:nth-child(4) { left: 68%; }
  .home-coin:nth-child(1), .home-coin:nth-child(2) { top: calc(var(--coin-size) * .5); }
  .home-coin:nth-child(3), .home-coin:nth-child(6) { top: calc(var(--coin-size) * 2.075); }
  .home-coin:nth-child(3) { left: calc(100% - var(--coin-size) * .5); }
  .home-coin:nth-child(6) { left: calc(var(--coin-size) * .5); }
  .home-coin:nth-child(4), .home-coin:nth-child(5) { top: calc(var(--coin-size) * 3.65); }
  .home-coin::after { content: ""; position: absolute; inset: -5px; }
  .home-coin-label { top: calc(100% + var(--coin-size) * .08); font-size: var(--phone-coin-font); }
  .home-description { left: 50%; top: calc(var(--coin-size) * 2.075); width: 62%; transform: translate(-50%, -50%); }
  .home-description h2 { font-size: var(--phone-coin-font); line-height: 1.4; margin-bottom: calc(var(--coin-size) * .1); }
  .home-description p { font-size: calc(var(--coin-size) * .205); line-height: 1.5; min-height: 0; }
  .home-enter { position: relative; font-size: calc(var(--coin-size) * .25); padding: calc(var(--coin-size) * .02) calc(var(--coin-size) * .04); margin-top: calc(var(--coin-size) * .12); transform: none; }
  .home-enter::after { content: ""; position: absolute; inset: -10px -8px; }
  .home-footer { align-items: end; }
  .home-section { flex: none; height: calc(100dvh - var(--home-header) - 28px); }
  .is-career-page .home-section, .is-tools-page .home-section, .is-media-page .home-section, .is-divination-page .home-section { height: 100dvh; }
  /* 六个子页共用号页的紧凑返回入口，优先于模块里的旧手机值。 */
  .home-scene:is(.is-career-page, .is-media-page, .is-divination-page, .is-journal-page, .is-contact-page, .is-tools-page) .home-section { height: 100dvh; padding-top: calc(max(4px, env(safe-area-inset-top)) + 26px); }
  .home-scene:is(.is-career-page, .is-media-page, .is-divination-page, .is-journal-page, .is-contact-page, .is-tools-page) #homeSectionTitle { margin-top: 0; }
  .home-scene:is(.is-career-page, .is-media-page, .is-divination-page, .is-journal-page, .is-contact-page, .is-tools-page) .home-back { position: absolute; top: max(4px, env(safe-area-inset-top)); right: 12px; transform: none; direction: ltr; writing-mode: horizontal-tb; font-size: clamp(10px, 2.8vw, 14px); line-height: 1.3; letter-spacing: .04em; padding: 2px 4px; min-height: 20px; color: #6b7080; }
}
@media (min-width: 401px) and (max-width: 600px) {
  /* 宽手机仍保留紧凑的上排比例，盘面在左半区居中，不贴左边缘。 */
  .home-profile { width: min(100%, 480px); margin-inline: auto; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .home-portrait-wrap { justify-self: center; width: min(var(--portrait-size), 100%); height: auto; aspect-ratio: 1; }
}
@media (prefers-reduced-motion: reduce) {
  .home-portrait-ring { animation: none; }
  .home-portrait-disc { transform: none; transition: none; }
  .home-nav-button, .home-nav-caption, .home-coin-turner { transition: none; }
}
