@import url('/local-assets/noto-serif-sc.css');

:root {
  --yuanhai-night: #050c16;
  --yuanhai-night-soft: #0b1824;
  --yuanhai-ivory: #f3eee2;
  --yuanhai-gold: #c8a46a;
  --yuanhai-line: rgb(243 238 226 / 17%);
  --yuanhai-ease: cubic-bezier(0.22, 1, 0.36, 1);
  --yuanhai-title-size: clamp(38px, 3.55vw, 56px);
}

html,
body,
#app {
  background: var(--yuanhai-night);
}

::selection {
  color: var(--yuanhai-night);
  background: var(--yuanhai-gold);
}

body.yuanhai-landing-active {
  margin: 0;
  overflow-x: hidden;
}

body.yuanhai-landing-active #app {
  display: none;
}

.yuanhai-landing,
.yuanhai-landing * {
  box-sizing: border-box;
}

.yuanhai-landing {
  position: relative;
  isolation: isolate;
  min-width: 320px;
  color: var(--yuanhai-ivory);
  background: var(--yuanhai-night);
  font-family: 'PingFang SC', 'Microsoft YaHei', sans-serif;
}

.yuanhai-landing::before {
  position: absolute;
  z-index: -2;
  inset: 0;
  content: '';
  background:
    linear-gradient(rgb(4 12 21 / 34%), rgb(4 12 21 / 44%)),
    url('/brand/yuanhai-scroll-bg-v2.webp') center top / cover no-repeat;
  pointer-events: none;
}

.yuanhai-landing a {
  color: inherit;
  text-decoration: none;
}

.yuanhai-topbar {
  position: fixed;
  z-index: 30;
  top: 0;
  right: 0;
  left: 0;
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  height: 92px;
  padding: 0 clamp(22px, 4vw, 68px);
  border-bottom: 1px solid rgb(243 238 226 / 10%);
  transition:
    height 0.4s var(--yuanhai-ease),
    background 0.4s var(--yuanhai-ease),
    backdrop-filter 0.4s var(--yuanhai-ease);
}

.yuanhai-topbar.is-scrolled {
  height: 70px;
  background: rgb(5 12 22 / 82%);
  backdrop-filter: blur(18px) saturate(130%);
}

.yuanhai-brand {
  display: inline-flex;
  align-items: center;
  justify-self: start;
  gap: 12px;
}

.yuanhai-brand-mark {
  position: relative;
  width: 34px;
  height: 34px;
  border: 1px solid rgb(243 238 226 / 72%);
  border-radius: 50%;
  transition: transform 0.8s var(--yuanhai-ease);
}

.yuanhai-brand:hover .yuanhai-brand-mark {
  transform: rotate(180deg);
}

.yuanhai-brand-mark::before,
.yuanhai-brand-mark::after {
  position: absolute;
  content: '';
  border-radius: 50%;
}

.yuanhai-brand-mark::before {
  inset: 7px;
  border: 1px solid var(--yuanhai-ivory);
  border-top-color: transparent;
  transform: rotate(-24deg);
}

.yuanhai-brand-mark::after {
  top: 6px;
  right: 6px;
  width: 4px;
  height: 4px;
  background: var(--yuanhai-gold);
  box-shadow: -8px 17px 0 -1px var(--yuanhai-ivory);
}

.yuanhai-brand-copy {
  display: grid;
  gap: 2px;
}

.yuanhai-brand-copy strong {
  font-family: 'Noto Serif SC', 'Songti SC', serif;
  font-size: 19px;
  font-weight: 500;
  letter-spacing: 0.24em;
}

.yuanhai-brand-copy small {
  color: rgb(243 238 226 / 56%);
  font-size: 7px;
  letter-spacing: 0.25em;
}

.yuanhai-nav {
  display: flex;
  align-items: center;
  gap: 38px;
}

.yuanhai-nav a {
  position: relative;
  padding: 9px 0;
  color: rgb(243 238 226 / 72%);
  font-size: 12px;
  letter-spacing: 0.14em;
}

.yuanhai-nav a::after {
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  height: 1px;
  content: '';
  background: var(--yuanhai-gold);
  transform: scaleX(0);
  transition: transform 0.35s var(--yuanhai-ease);
}

.yuanhai-nav a:hover::after,
.yuanhai-nav a[aria-current='page']::after {
  transform: scaleX(1);
}

.yuanhai-topbar-actions {
  display: inline-flex;
  align-items: center;
  justify-self: end;
  gap: 10px;
}

.yuanhai-concierge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 32px;
  padding: 0 12px;
  border: 1px solid rgb(232 215 180 / 38%);
  border-radius: 999px;
  color: rgb(226 196 138 / 92%);
  font-size: 12px;
  letter-spacing: 0.14em;
  white-space: nowrap;
}

.yuanhai-account {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: rgb(243 238 226 / 76%);
  font-size: 12px;
  letter-spacing: 0.1em;
  white-space: nowrap;
}

.yuanhai-account::before {
  width: 7px;
  height: 7px;
  flex: 0 0 auto;
  content: '';
  border: 1px solid var(--yuanhai-gold);
  border-radius: 50%;
}

.yuanhai-hero {
  --scene-x: 0px;
  --scene-y: 0px;
  --near-x: 0px;
  --near-y: 0px;
  position: relative;
  display: grid;
  min-height: 100svh;
  overflow: hidden;
  place-items: center;
  isolation: isolate;
}

.yuanhai-scene {
  position: absolute;
  z-index: -5;
  inset: -5%;
  overflow: hidden;
}

.yuanhai-scene-base {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  filter: saturate(0.82) contrast(1.04);
  animation: yuanhai-scene-breathe 18s ease-in-out infinite alternate;
  will-change: transform;
}

.yuanhai-light-pillar {
  position: absolute;
  z-index: -2;
  top: -10%;
  bottom: 32%;
  left: 50%;
  width: clamp(80px, 12vw, 180px);
  opacity: 0.66;
  background: linear-gradient(90deg, transparent, rgb(230 207 161 / 22%), rgb(255 242 206 / 52%), rgb(230 207 161 / 22%), transparent);
  filter: blur(9px);
  transform: translateX(-50%) perspective(500px) rotateX(-8deg);
  clip-path: polygon(42% 0, 58% 0, 100% 100%, 0 100%);
  animation: yuanhai-pillar-pulse 5s ease-in-out infinite;
}

.yuanhai-sea-layer {
  position: absolute;
  z-index: -1;
  right: -5%;
  bottom: -5%;
  left: -5%;
  width: 110%;
  max-width: none;
  pointer-events: none;
  will-change: transform;
}

.yuanhai-sea-layer-back {
  bottom: 3%;
  height: 37%;
  opacity: 0.15;
  object-fit: cover;
  mix-blend-mode: luminosity;
  transform: translate3d(var(--scene-x), var(--scene-y), 0) scale(1.05);
  animation: yuanhai-sea-drift 15s ease-in-out infinite alternate;
}

.yuanhai-sea-layer-front {
  height: 31%;
  opacity: 0.34;
  object-fit: cover;
  mix-blend-mode: screen;
  transform: translate3d(var(--near-x), var(--near-y), 0) scale(1.08);
  animation: yuanhai-sea-swell 9s ease-in-out infinite alternate;
}

.yuanhai-scene::after {
  position: absolute;
  inset: 0;
  content: '';
  background:
    radial-gradient(circle at 50% 48%, rgb(5 12 22 / 4%) 0 17%, rgb(5 12 22 / 45%) 60%, rgb(5 12 22 / 90%) 100%),
    linear-gradient(180deg, rgb(5 12 22 / 46%), transparent 28%, transparent 68%, rgb(5 12 22 / 76%));
}

.yuanhai-haze {
  position: absolute;
  z-index: -3;
  right: -20%;
  bottom: 18%;
  left: -20%;
  height: 32%;
  opacity: 0.32;
  background:
    radial-gradient(ellipse at 20% 60%, rgb(190 215 214 / 32%), transparent 42%),
    radial-gradient(ellipse at 77% 42%, rgb(140 179 184 / 24%), transparent 40%);
  filter: blur(14px);
  animation: yuanhai-haze-drift 13s ease-in-out infinite alternate;
}

.yuanhai-dust {
  position: absolute;
  z-index: -1;
  inset: 0;
  pointer-events: none;
}

.yuanhai-dust i {
  position: absolute;
  width: 2px;
  height: 2px;
  opacity: 0;
  background: var(--yuanhai-gold);
  border-radius: 50%;
  box-shadow: 0 0 8px rgb(200 164 106 / 80%);
  animation: yuanhai-dust-rise var(--duration) linear var(--delay) infinite;
}

.yuanhai-orbit {
  position: absolute;
  z-index: 0;
  top: 50%;
  left: 50%;
  width: min(74vw, 720px);
  aspect-ratio: 1;
  border: 1px solid rgb(243 238 226 / 6%);
  border-radius: 50%;
  transform: translate(-50%, -50%);
  animation: yuanhai-halo-turn 52s linear infinite;
  pointer-events: none;
}

.yuanhai-orbit i {
  position: absolute;
  width: 5px;
  height: 5px;
  background: var(--yuanhai-gold);
  border-radius: 50%;
  box-shadow: 0 0 18px 4px rgb(200 164 106 / 38%);
}

.yuanhai-orbit i:nth-child(1) { top: 8%; left: 28%; }
.yuanhai-orbit i:nth-child(2) { top: 42%; right: -3px; }
.yuanhai-orbit i:nth-child(3) { right: 18%; bottom: 12%; }
.yuanhai-orbit i:nth-child(4) { bottom: 22%; left: 4%; }

.yuanhai-hero-center {
  position: relative;
  z-index: 4;
  display: flex;
  align-items: center;
  flex-direction: column;
  width: min(760px, calc(100% - 40px));
  padding-top: 42px;
  text-align: center;
}

.yuanhai-hero-center::before,
.yuanhai-hero-center::after {
  position: absolute;
  z-index: -1;
  top: 50%;
  left: 50%;
  content: '';
  border: 1px solid rgb(243 238 226 / 12%);
  border-radius: 50%;
  transform: translate(-50%, -50%);
  pointer-events: none;
}

.yuanhai-hero-center::before {
  width: min(64vw, 620px);
  aspect-ratio: 1;
  animation: yuanhai-halo-turn 34s linear infinite;
}

.yuanhai-hero-center::after {
  width: min(48vw, 470px);
  aspect-ratio: 1;
  border-style: dashed;
  animation: yuanhai-halo-turn-reverse 46s linear infinite;
}

.yuanhai-eyebrow {
  margin: 0 0 25px;
  color: rgb(243 238 226 / 58%);
  font-family: Georgia, serif;
  font-size: 9px;
  letter-spacing: 0.42em;
  text-transform: uppercase;
}

.yuanhai-hero h1 {
  margin: 0;
  font-family: 'Noto Serif SC', 'Songti SC', serif;
  font-size: clamp(48px, 6.6vw, 96px);
  font-weight: 400;
  line-height: 1.16;
  letter-spacing: 0.12em;
  color: #fffaf0;
  text-shadow:
    0 3px 8px rgb(0 0 0 / 75%),
    0 10px 42px rgb(0 0 0 / 70%);
}

.yuanhai-subheading {
  max-width: 530px;
  margin: 25px 0 0;
  padding: 15px 24px;
  color: #fffaf0;
  border: 1px solid rgb(243 238 226 / 16%);
  background: rgb(2 10 18 / 56%);
  box-shadow: 0 16px 40px rgb(0 0 0 / 22%);
  font-family: 'Noto Serif SC', 'Songti SC', serif;
  font-size: 15px;
  font-weight: 500;
  line-height: 2;
  letter-spacing: 0.1em;
  text-shadow: 0 2px 7px rgb(0 0 0 / 92%);
  backdrop-filter: blur(10px);
}

.yuanhai-actions {
  display: flex;
  justify-content: center;
  margin-top: 38px;
  gap: 14px;
}

.yuanhai-action {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 176px;
  height: 50px;
  overflow: hidden;
  border: 1px solid rgb(243 238 226 / 40%);
  background: rgb(5 12 22 / 24%);
  font-size: 11px;
  letter-spacing: 0.2em;
  backdrop-filter: blur(10px);
  transition: 0.4s var(--yuanhai-ease);
}

.yuanhai-action::before {
  position: absolute;
  inset: 0;
  content: '';
  background: var(--yuanhai-gold);
  transform: translateY(101%);
  transition: transform 0.4s var(--yuanhai-ease);
}

.yuanhai-action span {
  position: relative;
  z-index: 1;
}

.yuanhai-action:hover {
  color: var(--yuanhai-night);
  border-color: var(--yuanhai-gold);
  transform: translateY(-3px);
}

.yuanhai-action:hover::before {
  transform: translateY(0);
}

.yuanhai-action-primary {
  color: #06111b !important;
  border-color: var(--yuanhai-ivory);
  background: var(--yuanhai-ivory);
  box-shadow: 0 10px 32px rgb(0 0 0 / 22%);
  font-weight: 700;
}

.yuanhai-action-primary span {
  color: #06111b !important;
  opacity: 1 !important;
  text-shadow: none !important;
}

.yuanhai-trust-line {
  display: flex;
  align-items: center;
  margin: 24px 0 0;
  gap: 18px;
  padding: 8px 16px;
  color: rgb(255 250 240 / 82%);
  background: rgb(2 10 18 / 32%);
  font-size: 10px;
  font-weight: 500;
  letter-spacing: 0.18em;
  text-shadow: 0 2px 6px rgb(0 0 0 / 90%);
  backdrop-filter: blur(6px);
}

.yuanhai-trust-line span + span::before {
  margin-right: 18px;
  content: '·';
  color: var(--yuanhai-gold);
}

.yuanhai-scroll-hint {
  position: absolute;
  z-index: 5;
  bottom: 26px;
  left: 50%;
  display: flex;
  align-items: center;
  flex-direction: column;
  gap: 9px;
  color: rgb(243 238 226 / 50%);
  font-size: 8px;
  letter-spacing: 0.24em;
  transform: translateX(-50%);
}

.yuanhai-scroll-hint::after {
  width: 1px;
  height: 36px;
  content: '';
  background: linear-gradient(var(--yuanhai-gold), transparent);
  animation: yuanhai-scroll-line 2.2s ease-in-out infinite;
}

.yuanhai-intro {
  position: relative;
  z-index: 3;
  padding: 110px clamp(22px, 6vw, 96px) 128px;
  color: var(--yuanhai-night);
  background: #efebe1;
}

.yuanhai-intro-head {
  display: grid;
  grid-template-columns: 0.7fr 1.3fr;
  align-items: end;
  max-width: 1360px;
  margin: 0 auto 62px;
}

.yuanhai-kicker {
  color: #8b6b42;
  font-size: 10px;
  letter-spacing: 0.3em;
}

.yuanhai-intro h2 {
  margin: 0;
  font-family: 'Noto Serif SC', 'Songti SC', serif;
  font-size: clamp(38px, 5vw, 72px);
  font-weight: 400;
  line-height: 1.18;
}

.yuanhai-paths {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  max-width: 1360px;
  margin: 0 auto;
  border-top: 1px solid rgb(5 12 22 / 18%);
  border-left: 1px solid rgb(5 12 22 / 18%);
}

.yuanhai-path {
  min-height: 310px;
  padding: 30px;
  border-right: 1px solid rgb(5 12 22 / 18%);
  border-bottom: 1px solid rgb(5 12 22 / 18%);
  transition:
    color 0.45s var(--yuanhai-ease),
    background 0.45s var(--yuanhai-ease),
    transform 0.45s var(--yuanhai-ease);
}

.yuanhai-path:hover {
  color: var(--yuanhai-ivory);
  background: var(--yuanhai-night);
  transform: translateY(-8px);
}

.yuanhai-path-no {
  color: #9a7445;
  font-family: Georgia, serif;
  font-size: 11px;
}

.yuanhai-path h3 {
  margin: 92px 0 14px;
  font-family: 'Noto Serif SC', 'Songti SC', serif;
  font-size: 24px;
  font-weight: 400;
  letter-spacing: 0.12em;
}

.yuanhai-path p {
  margin: 0;
  color: rgb(5 12 22 / 60%);
  font-size: 12px;
  line-height: 1.9;
  transition: color 0.45s var(--yuanhai-ease);
}

.yuanhai-path:hover p {
  color: rgb(243 238 226 / 62%);
}

.yuanhai-section-no {
  color: var(--yuanhai-gold);
  font-family: Georgia, serif;
  font-size: 10px;
  letter-spacing: 0.28em;
}

.yuanhai-text-link {
  display: inline-flex;
  align-items: center;
  margin-top: 34px;
  padding-bottom: 8px;
  gap: 24px;
  border-bottom: 1px solid rgb(200 164 106 / 55%);
  color: var(--yuanhai-ivory);
  font-size: 12px;
  letter-spacing: 0.12em;
}

.yuanhai-text-link span {
  color: var(--yuanhai-gold);
  font-size: 16px;
  transition: transform 0.3s var(--yuanhai-ease);
}

.yuanhai-text-link:hover span {
  transform: translate(4px, -4px);
}

.yuanhai-compass {
  position: relative;
  display: grid;
  grid-template-columns: minmax(260px, 0.9fr) minmax(430px, 1.3fr) minmax(240px, 0.8fr);
  align-items: center;
  min-height: 900px;
  padding: 120px clamp(24px, 6vw, 96px);
  gap: 54px;
  overflow: hidden;
  background:
    radial-gradient(circle at 50% 50%, rgb(27 64 78 / 45%), transparent 36%),
    linear-gradient(135deg, #050c16, #081722 55%, #050c16);
}

.yuanhai-compass::before {
  position: absolute;
  inset: 0;
  content: '';
  opacity: 0.22;
  background-image:
    linear-gradient(rgb(243 238 226 / 4%) 1px, transparent 1px),
    linear-gradient(90deg, rgb(243 238 226 / 4%) 1px, transparent 1px);
  background-size: 64px 64px;
  mask-image: radial-gradient(circle, black, transparent 72%);
}

.yuanhai-compass-copy,
.yuanhai-compass-notes,
.yuanhai-astrolabe {
  position: relative;
  z-index: 1;
}

.yuanhai-compass-copy h2,
.yuanhai-report-copy h2,
.yuanhai-process h2,
.yuanhai-final-cta h2 {
  margin: 26px 0 22px;
  font-family: 'Noto Serif SC', 'Songti SC', serif;
  font-size: clamp(38px, 4.5vw, 68px);
  font-weight: 400;
  line-height: 1.28;
  letter-spacing: 0.04em;
}

.yuanhai-compass-copy p,
.yuanhai-report-copy > p {
  margin: 0;
  color: rgb(243 238 226 / 58%);
  font-size: 13px;
  line-height: 2.1;
}

.yuanhai-astrolabe {
  width: min(46vw, 620px);
  aspect-ratio: 1;
  justify-self: center;
  border: 1px solid rgb(200 164 106 / 14%);
  border-radius: 50%;
  box-shadow:
    0 0 100px rgb(20 78 92 / 24%),
    inset 0 0 80px rgb(200 164 106 / 5%);
}

.yuanhai-ring,
.yuanhai-axis {
  position: absolute;
  top: 50%;
  left: 50%;
  border-radius: 50%;
  transform: translate(-50%, -50%);
}

.yuanhai-ring-outer {
  width: 88%;
  aspect-ratio: 1;
  border: 1px solid rgb(200 164 106 / 45%);
  border-style: dashed;
  animation: yuanhai-halo-turn 42s linear infinite;
}

.yuanhai-ring-outer::before,
.yuanhai-ring-outer::after,
.yuanhai-ring-middle::before,
.yuanhai-ring-middle::after {
  position: absolute;
  top: 50%;
  left: 50%;
  content: '';
  background: rgb(200 164 106 / 18%);
  transform: translate(-50%, -50%);
}

.yuanhai-ring-outer::before,
.yuanhai-ring-middle::before { width: 114%; height: 1px; }
.yuanhai-ring-outer::after,
.yuanhai-ring-middle::after { width: 1px; height: 114%; }

.yuanhai-ring-outer i {
  position: absolute;
  display: grid;
  width: 34px;
  height: 34px;
  color: var(--yuanhai-gold);
  border: 1px solid rgb(200 164 106 / 35%);
  border-radius: 50%;
  background: var(--yuanhai-night-soft);
  font-family: 'Noto Serif SC', serif;
  font-size: 12px;
  font-style: normal;
  place-items: center;
}

.yuanhai-ring-outer i:nth-child(1) { top: -17px; left: calc(50% - 17px); }
.yuanhai-ring-outer i:nth-child(2) { top: 28%; right: -15px; }
.yuanhai-ring-outer i:nth-child(3) { right: 12%; bottom: 3%; }
.yuanhai-ring-outer i:nth-child(4) { bottom: 3%; left: 12%; }
.yuanhai-ring-outer i:nth-child(5) { top: 28%; left: -15px; }

.yuanhai-ring-middle {
  width: 62%;
  aspect-ratio: 1;
  border: 1px solid rgb(243 238 226 / 16%);
  animation: yuanhai-halo-turn-reverse 30s linear infinite;
}

.yuanhai-ring-inner {
  width: 34%;
  aspect-ratio: 1;
  border: 1px solid rgb(200 164 106 / 30%);
  box-shadow: 0 0 60px rgb(200 164 106 / 10%);
}

.yuanhai-astrolabe-core {
  position: absolute;
  top: 50%;
  left: 50%;
  display: flex;
  align-items: center;
  flex-direction: column;
  color: rgb(243 238 226 / 58%);
  transform: translate(-50%, -50%);
}

.yuanhai-astrolabe-core strong {
  color: var(--yuanhai-ivory);
  font-family: 'Noto Serif SC', serif;
  font-size: clamp(58px, 7vw, 96px);
  font-weight: 300;
  line-height: 1.1;
  text-shadow: 0 0 42px rgb(200 164 106 / 35%);
}

.yuanhai-astrolabe-core small {
  font-family: Georgia, serif;
  font-size: 7px;
  letter-spacing: 0.34em;
}

.yuanhai-axis-x { width: 100%; height: 1px; background: linear-gradient(90deg, transparent, rgb(243 238 226 / 8%), transparent); }
.yuanhai-axis-y { width: 1px; height: 100%; background: linear-gradient(transparent, rgb(243 238 226 / 8%), transparent); }

.yuanhai-compass-notes {
  display: grid;
  gap: 0;
  border-top: 1px solid var(--yuanhai-line);
}

.yuanhai-compass-notes article {
  display: grid;
  grid-template-columns: 36px 1fr;
  padding: 25px 0;
  gap: 16px;
  border-bottom: 1px solid var(--yuanhai-line);
}

.yuanhai-compass-notes span {
  color: var(--yuanhai-gold);
  font-family: Georgia, serif;
  font-size: 10px;
}

.yuanhai-compass-notes strong {
  display: block;
  margin-bottom: 8px;
  font-family: 'Noto Serif SC', serif;
  font-size: 18px;
  font-weight: 400;
}

.yuanhai-compass-notes p {
  margin: 0;
  color: rgb(243 238 226 / 44%);
  font-size: 11px;
  line-height: 1.7;
}

.yuanhai-report-showcase {
  display: grid;
  grid-template-columns: 1.15fr 0.85fr;
  align-items: center;
  min-height: 900px;
  padding: 140px clamp(24px, 7vw, 120px);
  gap: clamp(60px, 9vw, 150px);
  color: var(--yuanhai-night);
  background:
    linear-gradient(90deg, rgb(5 12 22 / 4%) 1px, transparent 1px),
    #eee9dd;
  background-size: 80px 100%;
  overflow: hidden;
}

.yuanhai-report-stack {
  position: relative;
  width: min(48vw, 620px);
  height: 650px;
  justify-self: end;
  perspective: 1200px;
}

.yuanhai-report-paper {
  position: absolute;
  top: 50%;
  left: 50%;
  width: min(420px, 72vw);
  height: 560px;
  padding: 38px;
  border: 1px solid rgb(5 12 22 / 14%);
  background: #f8f4ea;
  box-shadow: 0 35px 80px rgb(21 30 36 / 18%);
  transform-origin: center bottom;
  transition: transform 0.7s var(--yuanhai-ease);
}

.yuanhai-paper-back {
  color: rgb(243 238 226 / 72%);
  background: #0a2733;
  transform: translate(-63%, -48%) rotate(-9deg);
}

.yuanhai-paper-mid {
  color: rgb(243 238 226 / 72%);
  background: #173b43;
  transform: translate(-39%, -49%) rotate(8deg);
}

.yuanhai-paper-front {
  display: flex;
  flex-direction: column;
  transform: translate(-50%, -50%) rotate(-1deg);
}

.yuanhai-report-stack:hover .yuanhai-paper-back { transform: translate(-72%, -49%) rotate(-13deg); }
.yuanhai-report-stack:hover .yuanhai-paper-mid { transform: translate(-27%, -50%) rotate(12deg); }
.yuanhai-report-stack:hover .yuanhai-paper-front { transform: translate(-50%, -52%) rotate(0); }

.yuanhai-report-paper > span,
.yuanhai-report-paper header,
.yuanhai-report-paper footer {
  font-family: Georgia, serif;
  font-size: 8px;
  letter-spacing: 0.22em;
}

.yuanhai-report-paper header,
.yuanhai-report-paper footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.yuanhai-report-paper header {
  padding-bottom: 18px;
  border-bottom: 1px solid rgb(5 12 22 / 18%);
}

.yuanhai-report-paper header b {
  color: #997444;
  font-family: Georgia, serif;
  font-size: 14px;
  font-weight: 400;
}

.yuanhai-report-paper h3 {
  margin: 65px 0 12px;
  font-family: 'Noto Serif SC', serif;
  font-size: 36px;
  font-weight: 400;
}

.yuanhai-report-paper > p {
  margin: 0;
  color: rgb(5 12 22 / 48%);
  font-size: 11px;
  letter-spacing: 0.12em;
}

.yuanhai-paper-grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  align-items: end;
  height: 190px;
  margin: 42px 0;
  padding: 0 18px;
  gap: 12px;
  border-bottom: 1px solid rgb(5 12 22 / 16%);
}

.yuanhai-paper-grid i {
  display: block;
  height: var(--bar-height, 50%);
  background: linear-gradient(#c39b60, #173b43);
  transform: scaleY(0);
  transform-origin: bottom;
  animation: yuanhai-bars-grow 1.5s var(--yuanhai-ease) forwards;
}

.yuanhai-paper-grid i:nth-child(1) { --bar-height: 38%; animation-delay: 0.1s; }
.yuanhai-paper-grid i:nth-child(2) { --bar-height: 82%; animation-delay: 0.2s; }
.yuanhai-paper-grid i:nth-child(3) { --bar-height: 56%; animation-delay: 0.3s; }
.yuanhai-paper-grid i:nth-child(4) { --bar-height: 70%; animation-delay: 0.4s; }
.yuanhai-paper-grid i:nth-child(5) { --bar-height: 46%; animation-delay: 0.5s; }

.yuanhai-report-paper footer {
  margin-top: auto;
  color: rgb(5 12 22 / 44%);
}

.yuanhai-report-paper footer em { color: #997444; font-style: normal; }

.yuanhai-chart-lines {
  height: 260px;
  margin-top: 90px;
  opacity: 0.55;
  background:
    linear-gradient(135deg, transparent 22%, #d8b77f 23% 24%, transparent 25% 46%, #d8b77f 47% 48%, transparent 49%),
    linear-gradient(rgb(243 238 226 / 9%) 1px, transparent 1px);
  background-size: 100% 100%, 100% 42px;
}

.yuanhai-relation-map {
  position: relative;
  height: 300px;
  margin-top: 72px;
  border: 1px solid rgb(243 238 226 / 14%);
  border-radius: 50%;
}

.yuanhai-relation-map::before,
.yuanhai-relation-map::after {
  position: absolute;
  top: 50%;
  left: 50%;
  content: '';
  background: rgb(243 238 226 / 15%);
  transform: translate(-50%, -50%);
}

.yuanhai-relation-map::before { width: 100%; height: 1px; }
.yuanhai-relation-map::after { width: 1px; height: 100%; }

.yuanhai-relation-map i {
  position: absolute;
  width: 18px;
  height: 18px;
  border: 1px solid #d8b77f;
  border-radius: 50%;
  box-shadow: 0 0 20px rgb(216 183 127 / 35%);
}

.yuanhai-relation-map i:nth-child(1) { top: 18%; left: 26%; }
.yuanhai-relation-map i:nth-child(2) { top: 45%; right: 14%; }
.yuanhai-relation-map i:nth-child(3) { bottom: 16%; left: 38%; }

.yuanhai-report-copy .yuanhai-section-no { color: #8b6b42; }

.yuanhai-report-copy > p {
  color: rgb(5 12 22 / 58%);
}

.yuanhai-report-copy ul {
  margin: 34px 0 42px;
  padding: 0;
  border-top: 1px solid rgb(5 12 22 / 16%);
  list-style: none;
}

.yuanhai-report-copy li {
  display: grid;
  grid-template-columns: 42px 1fr;
  padding: 17px 0;
  border-bottom: 1px solid rgb(5 12 22 / 16%);
  font-family: 'Noto Serif SC', serif;
  font-size: 14px;
}

.yuanhai-report-copy li span {
  color: #9a7445;
  font-family: Georgia, serif;
  font-size: 10px;
}

.yuanhai-action-dark {
  color: var(--yuanhai-ivory) !important;
  border-color: var(--yuanhai-night);
  background: var(--yuanhai-night);
}

.yuanhai-action-dark:hover { color: var(--yuanhai-night) !important; }

.yuanhai-process {
  padding: 130px clamp(24px, 7vw, 120px) 150px;
  background: #07101b;
}

.yuanhai-process-head {
  display: grid;
  grid-template-columns: 0.7fr 1.3fr;
  align-items: end;
  max-width: 1360px;
  margin: 0 auto 72px;
}

.yuanhai-process-head h2 { margin-bottom: 0; }

.yuanhai-process-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  max-width: 1360px;
  margin: 0 auto;
  border-top: 1px solid var(--yuanhai-line);
  border-left: 1px solid var(--yuanhai-line);
}

.yuanhai-process-grid article {
  position: relative;
  min-height: 360px;
  padding: 36px;
  overflow: hidden;
  border-right: 1px solid var(--yuanhai-line);
  border-bottom: 1px solid var(--yuanhai-line);
}

.yuanhai-process-grid article::after {
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  height: 3px;
  content: '';
  background: var(--yuanhai-gold);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.5s var(--yuanhai-ease);
}

.yuanhai-process-grid article:hover::after { transform: scaleX(1); }

.yuanhai-process-grid b {
  position: absolute;
  right: 8px;
  bottom: -48px;
  color: rgb(243 238 226 / 3%);
  font-family: 'Noto Serif SC', serif;
  font-size: 220px;
  font-weight: 400;
  line-height: 1;
}

.yuanhai-process-grid span { color: var(--yuanhai-gold); font-family: Georgia, serif; font-size: 11px; }
.yuanhai-process-grid h3 { margin: 142px 0 16px; font-family: 'Noto Serif SC', serif; font-size: 25px; font-weight: 400; }
.yuanhai-process-grid p { max-width: 250px; margin: 0; color: rgb(243 238 226 / 48%); font-size: 12px; line-height: 1.9; }

.yuanhai-final-cta {
  position: relative;
  display: flex;
  align-items: center;
  flex-direction: column;
  justify-content: center;
  min-height: 760px;
  overflow: hidden;
  padding: 100px 24px;
  text-align: center;
  background:
    radial-gradient(circle at 50% 56%, rgb(41 90 99 / 38%), transparent 32%),
    var(--yuanhai-night);
}

.yuanhai-final-cta h2 { font-size: clamp(48px, 6vw, 86px); }
.yuanhai-final-cta > p { margin: 0 0 38px; color: rgb(243 238 226 / 52%); font-family: 'Noto Serif SC', serif; letter-spacing: 0.12em; }

.yuanhai-final-orbit {
  position: absolute;
  top: 50%;
  left: 50%;
  width: min(78vw, 820px);
  aspect-ratio: 1;
  border: 1px solid rgb(200 164 106 / 14%);
  border-radius: 50%;
  transform: translate(-50%, -50%);
  animation: yuanhai-halo-turn 60s linear infinite;
}

.yuanhai-final-orbit::before,
.yuanhai-final-orbit::after {
  position: absolute;
  top: 50%;
  left: 50%;
  content: '';
  border: 1px solid rgb(243 238 226 / 8%);
  border-radius: 50%;
  transform: translate(-50%, -50%);
}

.yuanhai-final-orbit::before { width: 72%; height: 72%; }
.yuanhai-final-orbit::after { width: 44%; height: 44%; border-style: dashed; }

.yuanhai-final-orbit i {
  position: absolute;
  width: 6px;
  height: 6px;
  background: var(--yuanhai-gold);
  border-radius: 50%;
  box-shadow: 0 0 24px rgb(200 164 106 / 70%);
}

.yuanhai-final-orbit i:nth-child(1) { top: 12%; left: 28%; }
.yuanhai-final-orbit i:nth-child(2) { top: 47%; right: -3px; }
.yuanhai-final-orbit i:nth-child(3) { bottom: 8%; left: 38%; }

/* One continuous scroll painting: sections tint the same background instead of replacing it. */
.yuanhai-intro,
.yuanhai-compass,
.yuanhai-report-showcase,
.yuanhai-process,
.yuanhai-final-cta {
  position: relative;
  color: var(--yuanhai-ivory);
  border: 0;
  background: transparent;
}

.yuanhai-intro {
  background: linear-gradient(
    180deg,
    rgb(5 12 22 / 98%) 0,
    rgb(5 12 22 / 76%) 9%,
    rgb(5 12 22 / 52%) 48%,
    rgb(5 12 22 / 72%) 100%
  );
}

.yuanhai-intro::before {
  position: absolute;
  z-index: -1;
  top: -180px;
  right: 0;
  left: 0;
  height: 220px;
  content: '';
  background: linear-gradient(transparent, rgb(5 12 22 / 98%));
  pointer-events: none;
}

.yuanhai-compass {
  background: linear-gradient(180deg, rgb(5 12 22 / 72%), rgb(4 13 23 / 50%) 45%, rgb(5 12 22 / 70%));
}

.yuanhai-report-showcase {
  color: var(--yuanhai-ivory);
  background: linear-gradient(180deg, rgb(5 12 22 / 70%), rgb(6 18 29 / 46%) 48%, rgb(5 12 22 / 72%));
}

.yuanhai-process {
  background: linear-gradient(180deg, rgb(5 12 22 / 72%), rgb(5 12 22 / 50%) 50%, rgb(5 12 22 / 75%));
}

.yuanhai-final-cta {
  background:
    radial-gradient(circle at 50% 56%, rgb(41 90 99 / 28%), transparent 34%),
    linear-gradient(180deg, rgb(5 12 22 / 75%), rgb(5 12 22 / 58%));
}

.yuanhai-intro::after,
.yuanhai-compass::after,
.yuanhai-report-showcase::after,
.yuanhai-process::after {
  position: absolute;
  z-index: 0;
  right: 6vw;
  bottom: -55px;
  left: 6vw;
  height: 110px;
  content: '';
  background: radial-gradient(ellipse, rgb(200 164 106 / 7%), transparent 68%);
  filter: blur(18px);
  pointer-events: none;
}

.yuanhai-intro-head,
.yuanhai-paths,
.yuanhai-compass > *,
.yuanhai-report-showcase > *,
.yuanhai-process > *,
.yuanhai-final-cta > * {
  position: relative;
  z-index: 1;
}

.yuanhai-intro h2,
.yuanhai-compass-copy h2,
.yuanhai-report-copy h2,
.yuanhai-process h2,
.yuanhai-final-cta h2 {
  color: #fffaf0;
  text-shadow:
    0 3px 12px rgb(0 0 0 / 72%),
    0 16px 42px rgb(0 0 0 / 38%);
}

.yuanhai-kicker,
.yuanhai-report-copy .yuanhai-section-no {
  color: #d8b77f;
  text-shadow: 0 2px 6px rgb(0 0 0 / 75%);
}

.yuanhai-paths {
  border-color: rgb(243 238 226 / 20%);
  background: rgb(4 13 22 / 28%);
  box-shadow: 0 30px 80px rgb(0 0 0 / 18%);
  backdrop-filter: blur(5px);
}

.yuanhai-path {
  color: var(--yuanhai-ivory);
  border-color: rgb(243 238 226 / 20%);
  background: linear-gradient(145deg, rgb(10 30 43 / 32%), rgb(5 12 22 / 18%));
}

.yuanhai-path:hover {
  color: #fffaf0;
  background: rgb(7 27 39 / 88%);
}

.yuanhai-path p,
.yuanhai-path:hover p {
  color: rgb(255 250 240 / 72%);
  text-shadow: 0 2px 7px rgb(0 0 0 / 70%);
}

.yuanhai-compass-copy p,
.yuanhai-report-copy > p,
.yuanhai-process-grid p,
.yuanhai-final-cta > p {
  color: rgb(255 250 240 / 76%);
  text-shadow: 0 2px 8px rgb(0 0 0 / 72%);
}

.yuanhai-compass-notes {
  padding: 0 22px;
  background: rgb(4 13 22 / 38%);
  backdrop-filter: blur(8px);
}

.yuanhai-compass-notes p {
  color: rgb(255 250 240 / 66%);
}

.yuanhai-report-copy ul,
.yuanhai-report-copy li {
  border-color: rgb(243 238 226 / 20%);
}

.yuanhai-report-copy li {
  color: #fffaf0;
  text-shadow: 0 2px 7px rgb(0 0 0 / 66%);
}

.yuanhai-action-dark {
  color: #06111b !important;
  border-color: var(--yuanhai-ivory);
  background: var(--yuanhai-ivory);
  font-weight: 700;
}

.yuanhai-action-dark span {
  color: #06111b !important;
  opacity: 1 !important;
}

.yuanhai-process-grid {
  background: rgb(4 13 22 / 30%);
  backdrop-filter: blur(6px);
}

/* Continuous chapter rhythm: one veil, no per-section color bands or spacer strips. */
.yuanhai-intro,
.yuanhai-compass,
.yuanhai-report-showcase,
.yuanhai-process,
.yuanhai-final-cta {
  margin: 0;
  background: rgb(5 12 22 / 46%);
}

.yuanhai-intro::after,
.yuanhai-compass::after,
.yuanhai-report-showcase::after,
.yuanhai-process::after {
  display: none;
}

.yuanhai-intro::before {
  top: -90px;
  height: 92px;
  background: linear-gradient(transparent, rgb(5 12 22 / 46%));
}

.yuanhai-intro {
  padding-top: 82px;
  padding-bottom: 96px;
}

.yuanhai-intro-head {
  margin-bottom: 46px;
}

.yuanhai-path {
  min-height: 260px;
}

.yuanhai-path h3 {
  margin-top: 64px;
}

.yuanhai-compass {
  min-height: 740px;
  padding-top: 82px;
  padding-bottom: 82px;
  gap: 42px;
}

.yuanhai-report-showcase {
  min-height: 740px;
  padding-top: 78px;
  padding-bottom: 78px;
  gap: clamp(36px, 6vw, 96px);
}

.yuanhai-process {
  padding-top: 88px;
  padding-bottom: 104px;
}

.yuanhai-process-head {
  margin-bottom: 50px;
}

.yuanhai-final-cta {
  min-height: 620px;
}

.yuanhai-mingshu-visual {
  position: relative;
  display: block;
  width: min(54vw, 760px);
  justify-self: end;
  overflow: hidden;
  filter: drop-shadow(0 28px 70px rgb(0 0 0 / 32%));
  -webkit-mask-image: radial-gradient(ellipse at center, black 46%, rgb(0 0 0 / 88%) 66%, transparent 94%);
  mask-image: radial-gradient(ellipse at center, black 46%, rgb(0 0 0 / 88%) 66%, transparent 94%);
}

.yuanhai-mingshu-visual::after {
  position: absolute;
  inset: 8% 5%;
  content: '';
  border: 1px solid rgb(200 164 106 / 10%);
  border-radius: 50%;
  box-shadow: inset 0 0 70px rgb(200 164 106 / 6%);
  animation: yuanhai-halo-turn 48s linear infinite;
  pointer-events: none;
}

.yuanhai-mingshu-visual img {
  display: block;
  width: 100%;
  height: auto;
  opacity: 0.94;
  transform: scale(1.025);
  transition: transform 1.2s var(--yuanhai-ease);
}

.yuanhai-mingshu-visual:hover img {
  transform: scale(1.06);
}

.yuanhai-mingshu-visual:focus-visible {
  outline: 1px solid var(--yuanhai-gold);
  outline-offset: 10px;
}

.yuanhai-intelligence-flow {
  position: absolute;
  inset: 0;
  pointer-events: none;
}

.yuanhai-intelligence-flow::before {
  position: absolute;
  top: 25%;
  right: 7%;
  width: 45%;
  height: 1px;
  content: '';
  opacity: 0.45;
  background: linear-gradient(90deg, transparent, #d8b77f, transparent);
  transform: rotate(-16deg);
  animation: yuanhai-flow-breathe 4s ease-in-out infinite;
}

.yuanhai-intelligence-flow i {
  position: absolute;
  width: 5px;
  height: 5px;
  background: #d8b77f;
  border-radius: 50%;
  box-shadow: 0 0 15px 4px rgb(216 183 127 / 34%);
  animation: yuanhai-node-breathe 3.6s ease-in-out infinite;
}

.yuanhai-intelligence-flow i:nth-child(1) { top: 19%; right: 13%; animation-delay: -0.5s; }
.yuanhai-intelligence-flow i:nth-child(2) { top: 31%; right: 26%; animation-delay: -1.2s; }
.yuanhai-intelligence-flow i:nth-child(3) { top: 45%; right: 19%; animation-delay: -2.1s; }
.yuanhai-intelligence-flow i:nth-child(4) { top: 55%; left: 48%; animation-delay: -0.9s; }
.yuanhai-intelligence-flow i:nth-child(5) { top: 42%; left: 37%; animation-delay: -1.7s; }

@keyframes yuanhai-flow-breathe {
  0%, 100% { opacity: 0.18; transform: rotate(-16deg) scaleX(0.7); }
  50% { opacity: 0.66; transform: rotate(-16deg) scaleX(1); }
}

@keyframes yuanhai-node-breathe {
  0%, 100% { opacity: 0.28; transform: scale(0.72); }
  50% { opacity: 1; transform: scale(1.18); }
}

/* Seam removal: fade the hero into the shared scroll painting instead of joining images edge-to-edge. */
.yuanhai-sea-layer {
  display: none;
}

.yuanhai-scene {
  -webkit-mask-image: linear-gradient(to bottom, black 0%, black 68%, rgb(0 0 0 / 82%) 78%, transparent 100%);
  mask-image: linear-gradient(to bottom, black 0%, black 68%, rgb(0 0 0 / 82%) 78%, transparent 100%);
}

.yuanhai-hero::after {
  position: absolute;
  z-index: 2;
  right: 0;
  bottom: 0;
  left: 0;
  height: 190px;
  content: '';
  background: linear-gradient(to bottom, transparent, rgb(5 12 22 / 46%));
  pointer-events: none;
}

.yuanhai-intro::before {
  display: none;
}

.yuanhai-intro {
  padding-top: 54px;
}

/* The decorative orbit must never participate in document flow. */
.yuanhai-final-cta > .yuanhai-final-orbit {
  position: absolute;
  z-index: 0;
}

.yuanhai-final-cta {
  min-height: 560px;
  padding-top: 70px;
  padding-bottom: 70px;
}

/* Deep four-edge feathering removes the source image's rectangular silhouette. */
.yuanhai-mingshu-visual {
  overflow: visible;
  -webkit-mask-image: radial-gradient(
    ellipse 68% 62% at 50% 52%,
    black 24%,
    rgb(0 0 0 / 92%) 43%,
    rgb(0 0 0 / 52%) 62%,
    rgb(0 0 0 / 14%) 75%,
    transparent 88%
  );
  mask-image: radial-gradient(
    ellipse 68% 62% at 50% 52%,
    black 24%,
    rgb(0 0 0 / 92%) 43%,
    rgb(0 0 0 / 52%) 62%,
    rgb(0 0 0 / 14%) 75%,
    transparent 88%
  );
}

.yuanhai-mingshu-visual::before {
  position: absolute;
  z-index: 2;
  inset: 0;
  content: '';
  background: radial-gradient(
    ellipse 63% 58% at 50% 52%,
    transparent 35%,
    rgb(5 12 22 / 8%) 52%,
    rgb(5 12 22 / 46%) 72%,
    rgb(5 12 22 / 90%) 100%
  );
  pointer-events: none;
}

.yuanhai-mingshu-visual img {
  opacity: 0.9;
}

/* Performance: skip off-screen painting and pause decorative motion outside the viewport. */
.yuanhai-intro,
.yuanhai-compass,
.yuanhai-report-showcase,
.yuanhai-process,
.yuanhai-final-cta {
  content-visibility: auto;
}

.yuanhai-intro { contain-intrinsic-size: auto 650px; }
.yuanhai-compass { contain-intrinsic-size: auto 740px; }
.yuanhai-report-showcase { contain-intrinsic-size: auto 740px; }
.yuanhai-process { contain-intrinsic-size: auto 720px; }
.yuanhai-final-cta { contain-intrinsic-size: auto 560px; }

.yuanhai-landing section:not(.is-in-view) *,
.yuanhai-landing section:not(.is-in-view) *::before,
.yuanhai-landing section:not(.is-in-view) *::after {
  animation-play-state: paused !important;
}

.yuanhai-scene-base {
  filter: none;
}

.yuanhai-paths,
.yuanhai-compass-notes,
.yuanhai-process-grid,
.yuanhai-subheading,
.yuanhai-trust-line,
.yuanhai-action {
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
}

.yuanhai-mingshu-visual {
  filter: none;
}

@media (max-width: 620px) {
  .yuanhai-topbar,
  .yuanhai-topbar.is-scrolled {
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
    background: rgb(5 12 22 / 94%);
  }
}

.yuanhai-reveal {
  opacity: 0;
  transform: translateY(20px);
  transition:
    opacity 1s var(--yuanhai-ease),
    transform 1s var(--yuanhai-ease);
}

.yuanhai-reveal.is-visible {
  opacity: 1;
  transform: translateY(0);
}

@keyframes yuanhai-scene-breathe {
  from { transform: scale(1.06) translate3d(calc(-0.7% + var(--scene-x)), calc(-0.4% + var(--scene-y)), 0); }
  to { transform: scale(1.12) translate3d(calc(0.7% + var(--scene-x)), calc(0.5% + var(--scene-y)), 0); }
}

@keyframes yuanhai-pillar-pulse {
  0%, 100% { opacity: 0.34; }
  50% { opacity: 0.74; }
}

@keyframes yuanhai-sea-drift {
  from { transform: translate3d(calc(-1.5% + var(--scene-x)), var(--scene-y), 0) scale(1.05); }
  to { transform: translate3d(calc(1.5% + var(--scene-x)), calc(-1% + var(--scene-y)), 0) scale(1.09); }
}

@keyframes yuanhai-sea-swell {
  from { transform: translate3d(calc(-1% + var(--near-x)), calc(1% + var(--near-y)), 0) scale(1.08); }
  to { transform: translate3d(calc(1% + var(--near-x)), calc(-2% + var(--near-y)), 0) scale(1.12); }
}

@keyframes yuanhai-haze-drift {
  from { transform: translate3d(-2%, 0, 0) scale(1); }
  to { transform: translate3d(2%, -8%, 0) scale(1.08); }
}

@keyframes yuanhai-halo-turn {
  to { transform: translate(-50%, -50%) rotate(360deg); }
}

@keyframes yuanhai-halo-turn-reverse {
  to { transform: translate(-50%, -50%) rotate(-360deg); }
}

@keyframes yuanhai-dust-rise {
  0% { opacity: 0; transform: translate3d(0, 14px, 0) scale(0.6); }
  24% { opacity: 0.7; }
  100% { opacity: 0; transform: translate3d(18px, -90px, 0) scale(1.2); }
}

@keyframes yuanhai-scroll-line {
  0%, 100% { opacity: 0.25; transform: scaleY(0.35); transform-origin: top; }
  50% { opacity: 1; transform: scaleY(1); }
}

@keyframes yuanhai-bars-grow {
  to { transform: scaleY(1); }
}

@media (max-width: 920px) {
  .yuanhai-topbar { grid-template-columns: 1fr auto; height: 78px; }
  .yuanhai-nav { display: none; }
  .yuanhai-hero-center::before { width: min(94vw, 620px); }
  .yuanhai-hero-center::after { width: min(76vw, 470px); }
  .yuanhai-intro-head { grid-template-columns: 1fr; gap: 24px; }
  .yuanhai-paths { grid-template-columns: repeat(2, 1fr); }
  .yuanhai-compass { grid-template-columns: 1fr 1fr; min-height: auto; }
  .yuanhai-compass-copy { grid-column: 1 / -1; max-width: 680px; }
  .yuanhai-astrolabe { width: min(56vw, 520px); }
  .yuanhai-report-showcase { grid-template-columns: 1fr; padding-top: 100px; }
  .yuanhai-report-stack { width: 100%; justify-self: center; }
  .yuanhai-mingshu-visual { width: min(88vw, 720px); justify-self: center; }
  .yuanhai-report-copy { max-width: 680px; }
  .yuanhai-process-head { grid-template-columns: 1fr; gap: 18px; }
}

@media (max-width: 620px) {
  .yuanhai-brand-copy small { display: none; }
  .yuanhai-account { font-size: 10px; }
  .yuanhai-topbar { padding: 0 20px; }
  /* 移动端首屏：文案落在上中区，下半屏交给人物形象，避免大片死白 */
  .yuanhai-hero {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    min-height: 100svh;
    min-height: 100dvh;
    padding-top: calc(64px + env(safe-area-inset-top, 0px));
    padding-bottom: calc(52px + env(safe-area-inset-bottom, 0px));
  }
  .yuanhai-hero-center {
    padding-top: clamp(12px, 3.2vh, 28px);
    transform: none;
  }
  .yuanhai-hero::after {
    height: min(28vh, 180px);
    background: linear-gradient(to bottom, transparent 0%, rgb(5 12 22 / 18%) 55%, rgb(5 12 22 / 42%) 100%);
  }
  .yuanhai-scene {
    -webkit-mask-image: linear-gradient(to bottom, black 0%, black 78%, rgb(0 0 0 / 88%) 90%, transparent 100%);
    mask-image: linear-gradient(to bottom, black 0%, black 78%, rgb(0 0 0 / 88%) 90%, transparent 100%);
  }
  .yuanhai-scene-base {
    object-position: 42% 28%;
  }
  .yuanhai-eyebrow { margin-bottom: 12px; letter-spacing: 0.26em; }
  .yuanhai-hero h1 { max-width: 350px; font-size: clamp(34px, 10.5vw, 48px); line-height: 1.28; letter-spacing: 0.06em; }
  .yuanhai-subheading {
    max-width: 330px;
    margin-top: 14px;
    padding: 12px 16px;
    font-size: 12px;
    line-height: 1.85;
  }
  .yuanhai-actions { width: 100%; flex-direction: column; align-items: center; margin-top: 20px; }
  .yuanhai-action { width: min(260px, 78vw); height: 46px; }
  .yuanhai-trust-line { margin-top: 16px; }
  .yuanhai-trust-line { flex-wrap: wrap; justify-content: center; max-width: 300px; gap: 8px 12px; }
  .yuanhai-trust-line span + span::before { margin-right: 12px; }
  .yuanhai-scroll-hint {
    bottom: calc(14px + env(safe-area-inset-bottom, 0px));
  }
  .yuanhai-intro { padding: 72px 16px 64px; }
  /* 移动端四宫格：2×2 */
  .yuanhai-paths {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    max-width: none;
    margin: 0;
  }
  .yuanhai-path {
    min-height: 0;
    padding: 16px 14px 18px;
  }
  .yuanhai-path h3 {
    margin: 18px 0 10px;
    font-size: 17px;
    letter-spacing: 0.08em;
    line-height: 1.35;
  }
  .yuanhai-path p {
    font-size: 11px;
    line-height: 1.7;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 4;
    overflow: hidden;
  }
  .yuanhai-path:hover,
  .yuanhai-path:active {
    transform: none;
  }
  .yuanhai-path-no {
    font-size: 10px;
  }
  .yuanhai-sea-layer-back { height: 27%; }
  .yuanhai-sea-layer-front { height: 22%; opacity: 0.26; }
  .yuanhai-light-pillar { bottom: 38%; }

  /* Compass: stack copy → dial → notes, full width. */
  .yuanhai-compass {
    display: flex !important;
    flex-direction: column;
    align-items: stretch;
    min-height: 0 !important;
    padding: 72px 20px 80px !important;
    gap: 36px !important;
  }
  .yuanhai-compass-copy,
  .yuanhai-compass-notes,
  .yuanhai-astrolabe {
    width: 100% !important;
    max-width: none !important;
    justify-self: stretch;
  }
  .yuanhai-astrolabe { width: min(78vw, 340px) !important; margin: 0 auto; }
  .yuanhai-compass-copy h2,
  .yuanhai-report-copy h2,
  .yuanhai-process-head h2,
  .yuanhai-final-cta h2 {
    font-size: clamp(28px, 8.2vw, 40px) !important;
    line-height: 1.35 !important;
    white-space: normal !important;
  }
  .yuanhai-compass-notes { width: 100%; }
  .yuanhai-compass-notes article {
    grid-template-columns: 32px 1fr;
    padding: 16px 0;
  }

  /* 命书区：必须单列，禁止被桌面双栏规则挤成竖条字。 */
  .yuanhai-report-showcase {
    display: flex !important;
    flex-direction: column;
    align-items: stretch;
    min-height: 0 !important;
    padding: 72px 20px 80px !important;
    gap: 22px !important;
  }
  .yuanhai-report-copy,
  .yuanhai-mingshu-visual {
    order: 0 !important;
    width: 100% !important;
    max-width: none !important;
    justify-self: stretch !important;
  }
  .yuanhai-mingshu-visual {
    width: min(92vw, 420px) !important;
    margin: 0 auto 8px;
  }
  .yuanhai-report-copy {
    margin-top: 0;
  }
  .yuanhai-report-copy > p {
    font-size: 13px;
    line-height: 1.9;
  }
  .yuanhai-report-copy ul {
    margin: 20px 0 0;
  }
  .yuanhai-report-copy li {
    display: grid !important;
    grid-template-columns: 36px minmax(0, 1fr) !important;
    align-items: start;
    gap: 10px;
    padding: 14px 0;
    font-size: 13px;
    line-height: 1.7;
    white-space: normal !important;
    word-break: normal;
    overflow-wrap: anywhere;
  }
  .yuanhai-report-stack { height: 420px; transform: scale(0.92); }

  /* 对话入局：收紧章节高度，避免一屏只有标题。 */
  .yuanhai-process {
    padding: 72px 20px 80px !important;
  }
  .yuanhai-process-head { margin-bottom: 28px; }
  .yuanhai-process-grid {
    display: flex !important;
    flex-direction: column;
    gap: 28px !important;
  }
  .yuanhai-process-grid article {
    min-height: 0 !important;
    padding: 8px 8px 18px !important;
  }
  .yuanhai-process-grid b {
    height: 64px !important;
    margin-bottom: 8px !important;
    font-size: 64px !important;
  }
  .yuanhai-process-grid h3 {
    margin: 8px 0 10px !important;
    font-size: 22px !important;
  }
  .yuanhai-process-grid p {
    max-width: none !important;
    font-size: 13px;
    line-height: 1.8;
  }

  .yuanhai-final-cta {
    min-height: 0 !important;
    padding: 88px 20px 100px;
  }
  .yuanhai-final-orbit { width: 120vw; }

  .yuanhai-feedback {
    padding: 72px 20px 64px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .yuanhai-landing *,
  .yuanhai-landing *::before,
  .yuanhai-landing *::after {
    scroll-behavior: auto !important;
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}

/* Unframed chapter layout: complete numerals, no card grid. */
.yuanhai-process-grid {
  position: relative;
  gap: clamp(36px, 5vw, 88px);
  border: 0 !important;
  background: transparent;
}

.yuanhai-process-grid::before,
.yuanhai-process-grid article::before {
  display: none;
  content: none;
}

.yuanhai-process-grid article {
  min-height: 300px;
  padding: 0 20px 30px;
  overflow: visible;
  border: 0 !important;
  background: transparent;
  text-align: center;
}

.yuanhai-process-grid article::after {
  display: none;
}

.yuanhai-process-grid b {
  position: relative;
  right: auto;
  bottom: auto;
  display: block;
  height: 108px;
  margin: 0 auto 18px;
  color: rgb(216 183 127 / 18%);
  font-size: 104px;
  line-height: 1;
  text-align: center;
}

.yuanhai-process-grid span {
  display: block;
  color: #d8b77f;
  font-size: 9px;
  letter-spacing: 0.28em;
  text-align: center;
}

.yuanhai-process-grid h3 {
  margin: 18px 0 16px;
  font-size: 26px;
  text-align: center;
}

.yuanhai-process-grid p {
  max-width: 330px;
  margin: 0 auto;
  color: rgb(255 250 240 / 68%);
  text-align: center;
}

/* Keep the lightweight WebP visible and blend only its luminous content into the painting. */
.yuanhai-report-showcase {
  content-visibility: visible;
}

.yuanhai-mingshu-visual {
  opacity: 1 !important;
  visibility: visible !important;
  transform: none !important;
  -webkit-mask-image: radial-gradient(ellipse 84% 80% at 50% 52%, black 48%, rgb(0 0 0 / 88%) 67%, rgb(0 0 0 / 30%) 88%, transparent 100%);
  mask-image: radial-gradient(ellipse 84% 80% at 50% 52%, black 48%, rgb(0 0 0 / 88%) 67%, rgb(0 0 0 / 30%) 88%, transparent 100%);
}

.yuanhai-mingshu-visual::before {
  display: none;
}

.yuanhai-mingshu-visual img {
  display: block !important;
  opacity: 0.94;
  visibility: visible !important;
  mix-blend-mode: screen;
}

/* The v4 scroll has a real alpha channel; no masks or blend hacks are needed. */
.yuanhai-mingshu-visual {
  -webkit-mask-image: none;
  mask-image: none;
}

.yuanhai-mingshu-visual::after {
  display: none;
}

.yuanhai-mingshu-visual img {
  opacity: 1;
  mix-blend-mode: normal;
}

/* First-screen scrolling stays on compositor-light effects only. */
.yuanhai-hero {
  contain: layout paint;
}

.yuanhai-scene-base {
  animation: none;
  transform: translate3d(var(--scene-x), var(--scene-y), 0) scale(1.06);
  transition: transform 0.75s var(--yuanhai-ease);
  will-change: auto;
}

.yuanhai-haze,
.yuanhai-orbit,
.yuanhai-hero-center::before,
.yuanhai-hero-center::after {
  animation: none;
}

/* The character, vertical light and angular seal carry the mythic presence. */
.yuanhai-orbit,
.yuanhai-hero-center::before,
.yuanhai-hero-center::after,
.yuanhai-final-orbit {
  display: none;
}

.yuanhai-hero-center {
  width: min(760px, 56vw);
  margin-right: clamp(230px, 20vw, 400px);
}

.yuanhai-guide {
  position: absolute;
  z-index: 6;
  right: clamp(-70px, 1vw, 24px);
  bottom: -4vh;
  width: min(39vw, 610px);
  height: min(88vh, 900px);
  pointer-events: none;
}

.yuanhai-guide::before {
  position: absolute;
  content: '';
  z-index: -1;
  top: 7%;
  left: 49%;
  width: 2px;
  height: 78%;
  background: linear-gradient(180deg, transparent, rgba(214, 177, 103, 0.68), transparent);
  box-shadow: 0 0 34px rgba(214, 177, 103, 0.28);
}

.yuanhai-guide img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center bottom;
  filter: drop-shadow(-28px 24px 34px rgba(1, 7, 13, 0.72));
}

.yuanhai-guide-identity {
  position: absolute;
  right: 12%;
  bottom: 11%;
  display: grid;
  min-width: 180px;
  padding: 15px 18px 14px 22px;
  border-left: 1px solid rgba(207, 166, 87, 0.8);
  background: linear-gradient(90deg, rgba(5, 14, 23, 0.92), rgba(5, 14, 23, 0.35));
  color: #f1e9d8;
  pointer-events: auto;
}

.yuanhai-guide-identity span {
  color: #bba77c;
  font-size: 11px;
  letter-spacing: 0.2em;
}

.yuanhai-guide-identity strong {
  margin: 2px 0 8px;
  font-family: var(--yuanhai-serif);
  font-size: 30px;
  font-weight: 400;
  letter-spacing: 0.22em;
}

.yuanhai-guide-identity a {
  color: #eee3ca;
  font-size: 13px;
  letter-spacing: 0.12em;
  text-decoration: none;
}

.yuanhai-guide-identity i {
  color: #cfaa63;
  font-style: normal;
}

/* Left-side wanderer: mystery comes from concealment, not a character title card. */
.yuanhai-hero-center {
  margin-right: 0;
  margin-left: clamp(230px, 20vw, 400px);
}

.yuanhai-guide {
  right: auto;
  left: clamp(-80px, 0vw, 14px);
  top: 50%;
  bottom: auto;
  width: min(40vw, 620px);
  height: min(84vh, 860px);
  transform: translateY(-50%);
}

.yuanhai-guide::before {
  left: 45%;
}

.yuanhai-guide img {
  filter: drop-shadow(26px 22px 34px rgba(1, 7, 13, 0.72));
}

.yuanhai-guide-identity {
  display: none;
}

.yuanhai-guide-identity strong {
  margin-bottom: 2px;
  font-size: 20px;
}

/* Desktop-only composition — never override mobile single-column. */
@media (min-width: 921px) {
  .yuanhai-report-showcase {
    grid-template-columns: 0.85fr 1.15fr;
  }

  .yuanhai-report-copy {
    order: 1;
  }

  .yuanhai-mingshu-visual {
    order: 2;
    justify-self: start;
  }
}

.yuanhai-process-head {
  display: flex;
  align-items: center;
  flex-direction: column;
  justify-content: center;
  max-width: 920px;
  text-align: center;
}

.yuanhai-process-head h2,
.yuanhai-final-cta h2,
.yuanhai-final-cta > p {
  width: 100%;
  margin-right: auto;
  margin-left: auto;
  text-align: center;
}

.yuanhai-final-cta h2 {
  max-width: 1050px;
}

.yuanhai-final-cta > p {
  max-width: 760px;
}

/* One display scale across every screen; text wraps only when width requires it. */
.yuanhai-hero h1,
.yuanhai-intro h2,
.yuanhai-compass-copy h2,
.yuanhai-report-copy h2,
.yuanhai-process h2,
.yuanhai-final-cta h2 {
  max-width: none;
  font-size: var(--yuanhai-title-size);
  font-weight: 400;
  line-height: 1.22;
  letter-spacing: 0.06em;
  text-wrap: balance;
}

@media (min-width: 921px) {
  .yuanhai-hero h1,
  .yuanhai-intro h2,
  .yuanhai-report-copy h2,
  .yuanhai-process h2,
  .yuanhai-final-cta h2 {
    white-space: nowrap;
  }
}

/* Landing mobile: reassert after global title/layout rules (cascade guard). */
@media (max-width: 620px) {
  .yuanhai-report-showcase {
    display: flex !important;
    flex-direction: column !important;
    grid-template-columns: none !important;
    min-height: 0 !important;
  }

  .yuanhai-report-copy,
  .yuanhai-mingshu-visual {
    order: unset !important;
    width: 100% !important;
    max-width: none !important;
  }

  .yuanhai-report-copy h2,
  .yuanhai-compass-copy h2,
  .yuanhai-process h2,
  .yuanhai-process-head h2,
  .yuanhai-final-cta h2 {
    font-size: clamp(28px, 8.2vw, 40px) !important;
    white-space: normal !important;
    max-width: none !important;
  }

  .yuanhai-process-grid article {
    min-height: 0 !important;
  }

  .yuanhai-process-grid b {
    height: 64px !important;
    font-size: 64px !important;
  }

  .yuanhai-process-grid h3 {
    margin: 8px 0 10px !important;
    font-size: 22px !important;
  }
}

/* Titles follow the viewport centerline; the left character does not push copy. */
.yuanhai-hero-center {
  width: min(1120px, calc(100% - 48px));
  margin-right: auto;
  margin-left: auto;
}

.yuanhai-guide {
  z-index: 3;
}

.yuanhai-intro-head {
  display: flex;
  align-items: center;
  flex-direction: column;
  justify-content: center;
  max-width: 1120px;
  gap: 18px;
  text-align: center;
}

.yuanhai-intro h2 {
  width: 100%;
  text-align: center;
}

/* Functional copy is drawn into the artefacts instead of floating beside them. */
.yuanhai-astrolabe-core {
  width: 48%;
  aspect-ratio: 1;
  justify-content: center;
  gap: 9px;
  color: rgb(243 238 226 / 64%);
  border: 0;
  border-radius: 50%;
  background: radial-gradient(circle, rgb(7 20 30 / 82%), rgb(7 20 30 / 28%) 58%, transparent 72%);
  text-align: center;
  transition: filter 0.35s ease, transform 0.35s ease;
}

.yuanhai-astrolabe-core strong {
  color: var(--yuanhai-ivory);
  font-size: clamp(19px, 2vw, 30px);
  font-weight: 400;
  line-height: 1.35;
  letter-spacing: 0.16em;
  text-shadow: 0 0 28px rgb(200 164 106 / 42%);
}

.yuanhai-astrolabe-core small,
.yuanhai-astrolabe-core em {
  font-family: 'Noto Serif SC', 'Songti SC', serif;
  font-size: 9px;
  font-style: normal;
  letter-spacing: 0.28em;
}

.yuanhai-astrolabe-core em {
  color: var(--yuanhai-gold);
}

.yuanhai-astrolabe-core:hover {
  filter: brightness(1.18);
  transform: translate(-50%, -50%) scale(1.035);
}

.yuanhai-scroll-entry {
  position: absolute;
  z-index: 4;
  top: 21%;
  left: 20%;
  display: grid;
  color: #172832;
  font-family: 'Noto Serif SC', 'Songti SC', serif;
  text-shadow: 0 1px rgb(255 248 225 / 48%);
  transform: rotate(-1.5deg);
  transition: transform 0.35s ease;
}

.yuanhai-scroll-entry::after {
  width: 116%;
  height: 1px;
  margin-top: 8px;
  content: '';
  background: linear-gradient(90deg, #7b4d2c, transparent);
}

.yuanhai-scroll-entry small {
  color: #765b39;
  font-size: 9px;
  letter-spacing: 0.28em;
}

.yuanhai-scroll-entry strong {
  margin: 4px 0 3px;
  font-size: clamp(20px, 2.4vw, 34px);
  font-weight: 500;
  letter-spacing: 0.16em;
}

.yuanhai-scroll-entry span {
  color: #765b39;
  font-size: 10px;
  letter-spacing: 0.2em;
}

.yuanhai-scroll-entry:hover {
  transform: rotate(-1.5deg) translateX(5px);
}

@media (max-width: 980px) {
  .yuanhai-hero-center {
    width: min(680px, 64vw);
    margin-right: auto;
    margin-left: auto;
  }

  .yuanhai-guide {
    right: auto;
    left: -14vw;
    width: min(54vw, 570px);
    opacity: 0.76;
  }

  .yuanhai-guide-identity {
    display: none;
  }
}

@media (max-width: 620px) {
  .yuanhai-hero-center {
    width: min(100%, calc(100% - 28px));
    margin-right: auto;
    margin-left: auto;
  }

  /* 人物作为下半屏视觉锚点，填满原先“空白”区 */
  .yuanhai-guide {
    right: auto;
    left: -18vw;
    top: auto;
    bottom: -2vh;
    width: min(112vw, 520px);
    height: min(50vh, 400px);
    opacity: 0.82;
    transform: none;
    -webkit-mask-image: linear-gradient(to top, transparent 0%, #000 14%, #000 68%, transparent 100%);
    mask-image: linear-gradient(to top, transparent 0%, #000 14%, #000 68%, transparent 100%);
  }

  .yuanhai-guide::before {
    display: none;
  }

  .yuanhai-guide img {
    object-position: 38% bottom;
    filter: drop-shadow(8px 18px 28px rgba(1, 7, 13, 0.55));
  }

  .yuanhai-scroll-entry {
    top: 19%;
    left: 18%;
  }

  .yuanhai-scroll-entry strong {
    font-size: 18px;
  }

  .yuanhai-process-grid {
    gap: 34px;
  }

  .yuanhai-process-grid::before,
  .yuanhai-process-grid article::before {
    display: none;
  }

  .yuanhai-process-grid article {
    min-height: auto;
    padding: 10px 12px 24px;
  }

  .yuanhai-process-grid b {
    height: 88px;
    margin-bottom: 12px;
    font-size: 82px;
  }

  .yuanhai-process-grid h3 {
    margin-top: 14px;
  }
}

/* One quiet hero entrance; supporting actions live inside later content. */
.yuanhai-hero .yuanhai-actions {
  justify-content: center;
}

.yuanhai-hero .yuanhai-action-primary {
  min-width: 216px;
  border-color: rgb(232 215 180 / 76%);
  box-shadow: 0 14px 38px rgb(0 0 0 / 28%);
}

/* Feedback quotes are adapted from authorized public reviews; keep voice authentic. */
.yuanhai-feedback {
  position: relative;
  padding: 118px clamp(24px, 7vw, 120px) 96px;
  color: var(--yuanhai-ivory);
  background: linear-gradient(180deg, rgb(5 12 22 / 62%), rgb(4 13 23 / 88%));
}

.yuanhai-feedback-head {
  max-width: 1360px;
  margin: 0 auto 50px;
  text-align: center;
}

.yuanhai-feedback h2 {
  margin: 18px 0 16px;
  font-family: 'Noto Serif SC', 'Songti SC', serif;
  font-size: var(--yuanhai-title-size);
  font-weight: 400;
  letter-spacing: 0.06em;
}

.yuanhai-feedback-head p {
  max-width: 620px;
  margin: 0 auto;
  color: rgb(243 238 226 / 48%);
  font-size: 12px;
  line-height: 1.9;
}

.yuanhai-feedback-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  max-width: 1360px;
  margin: 0 auto;
  border-top: 1px solid var(--yuanhai-line);
}

.yuanhai-feedback-grid article {
  display: flex;
  flex-direction: column;
  min-height: 250px;
  padding: 34px clamp(22px, 3vw, 40px);
  border-right: 1px solid var(--yuanhai-line);
  border-bottom: 1px solid var(--yuanhai-line);
}

.yuanhai-feedback-grid article:nth-child(3n + 1) { border-left: 1px solid var(--yuanhai-line); }

.yuanhai-feedback-meta {
  display: flex;
  align-items: center;
  gap: 14px;
}

.yuanhai-feedback-avatar {
  display: inline-grid;
  place-items: center;
  flex: 0 0 44px;
  width: 44px;
  height: 44px;
  border: 1px solid rgb(200 164 106 / 42%);
  border-radius: 50%;
  color: var(--yuanhai-gold);
  font-family: 'Noto Serif SC', 'Songti SC', serif;
  font-size: 16px;
  letter-spacing: 0;
  background:
    radial-gradient(circle at 30% 28%, rgb(232 215 180 / 22%), transparent 55%),
    linear-gradient(160deg, rgb(28 42 58), rgb(10 18 28));
  box-shadow: inset 0 0 0 1px rgb(243 238 226 / 6%);
  text-transform: uppercase;
}

.yuanhai-feedback-meta strong {
  display: block;
  color: var(--yuanhai-gold);
  font-family: 'Noto Serif SC', 'Songti SC', serif;
  font-size: 13px;
  font-weight: 500;
  letter-spacing: 0.12em;
}

.yuanhai-feedback-meta small {
  display: block;
  margin-top: 6px;
  color: rgb(243 238 226 / 35%);
  font-family: 'Noto Serif SC', 'Songti SC', serif;
  font-size: 10px;
  letter-spacing: 0.12em;
}

.yuanhai-feedback-grid p {
  flex: 1;
  margin: 24px 0 0;
  color: rgb(243 238 226 / 78%);
  font-family: 'Noto Serif SC', 'Songti SC', serif;
  font-size: 16px;
  line-height: 1.75;
}

.yuanhai-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 36px;
  padding: 42px clamp(24px, 7vw, 120px);
  color: var(--yuanhai-ivory);
  border-top: 1px solid rgb(243 238 226 / 10%);
  background: #040a12;
}

.yuanhai-footer-copy {
  min-width: 0;
  max-width: 420px;
}

.yuanhai-footer span {
  color: var(--yuanhai-gold);
  font-family: 'Noto Serif SC', 'Songti SC', serif;
  font-size: 20px;
  letter-spacing: 0.16em;
}

.yuanhai-footer p {
  margin: 10px 0 0;
  color: rgb(243 238 226 / 45%);
  font-size: 12px;
  line-height: 1.8;
}

.yuanhai-footer .yuanhai-footer-legal a {
  color: inherit;
  text-decoration: none;
}

.yuanhai-footer .yuanhai-footer-legal a:hover {
  color: var(--yuanhai-gold);
  text-decoration: underline;
}

.yuanhai-footer-qr {
  display: flex;
  align-items: stretch;
  justify-content: flex-end;
  gap: 18px;
}

.yuanhai-qr-card {
  display: grid;
  justify-items: center;
  gap: 10px;
  margin: 0;
}

.yuanhai-qr-card.is-placeholder,
.yuanhai-qr-card[hidden] {
  display: none !important;
}

.yuanhai-qr-frame {
  width: 112px;
  height: 112px;
  padding: 8px;
  border: 1px solid rgb(232 215 180 / 34%);
  border-radius: 14px;
  background:
    linear-gradient(180deg, rgb(243 238 226 / 96%), rgb(232 215 180 / 88%));
  box-shadow: 0 12px 28px rgb(0 0 0 / 28%);
}

.yuanhai-qr-frame img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  border-radius: 6px;
  background: #fff;
}

.yuanhai-qr-card figcaption {
  color: rgb(243 238 226 / 72%);
  font-size: 12px;
  letter-spacing: 0.12em;
}

/* About: diary-like continuous reading, not promotional cards. */
.yuanhai-about {
  min-height: 100svh;
  padding: 108px 0 96px;
  background:
    linear-gradient(180deg, rgb(4 12 21 / 88%), rgb(5 12 22 / 94%)),
    url('/brand/yuanhai-scroll-bg-v2.webp') center top / cover no-repeat;
}

.yuanhai-about-diary {
  max-width: 720px;
  margin: 0 auto;
  padding: 0 clamp(22px, 5vw, 32px) 48px;
  color: var(--yuanhai-ivory);
}

.yuanhai-about-diary-head {
  margin-bottom: 42px;
  padding-bottom: 28px;
  border-bottom: 1px solid rgb(243 238 226 / 12%);
}

.yuanhai-about-diary-head > span {
  color: var(--yuanhai-gold);
  font-family: Georgia, serif;
  font-size: 11px;
  letter-spacing: 0.28em;
}

.yuanhai-about-diary-head h1 {
  margin: 18px 0 14px;
  font-family: 'Noto Serif SC', 'Songti SC', serif;
  font-size: clamp(28px, 4vw, 40px);
  font-weight: 400;
  line-height: 1.35;
  letter-spacing: 0.04em;
}

.yuanhai-about-lead {
  margin: 0;
  color: rgb(243 238 226 / 55%);
  font-size: 14px;
  line-height: 1.9;
}

.yuanhai-about-diary-body h2 {
  margin: 8px 0 18px;
  color: rgb(243 238 226 / 92%);
  font-family: 'Noto Serif SC', 'Songti SC', serif;
  font-size: 22px;
  font-weight: 400;
  letter-spacing: 0.04em;
}

.yuanhai-about-diary-body p {
  margin: 0 0 1.15em;
  color: rgb(243 238 226 / 72%);
  font-size: 15px;
  line-height: 2.05;
  letter-spacing: 0.02em;
}

.yuanhai-about-diary-body hr {
  width: 48px;
  margin: 36px 0;
  border: 0;
  border-top: 1px solid rgb(200 164 106 / 35%);
}

/* ===== Shared app skin: 问道 + 命书 same night-ink / ivory / gold language ===== */
body.yuanhai-app-active,
body.yuanhai-app-active #app {
  background-color: #050c16 !important;
  background-image:
    linear-gradient(180deg, rgb(5 12 22 / 78%), rgb(5 12 22 / 92%)),
    url('/brand/yuanhai-scroll-bg-v2.webp') !important;
  background-position: center top !important;
  background-size: cover !important;
  /* fixed attachment breaks / janks on iOS WeChat H5 — scroll is safer for 裂变. */
  background-attachment: scroll !important;
  color: #f5f0e6 !important;
  font-family: 'PingFang SC', 'Microsoft YaHei', sans-serif !important;
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}

body.yuanhai-app-active #app a,
body.yuanhai-app-active #app button,
body.yuanhai-app-active #app [role="button"],
body.yuanhai-app-active #app .uni-tabbar,
body.yuanhai-app-active #app [class*="tabbar"],
body.yuanhai-app-active #app [class*="Tabbar"],
body.yuanhai-app-active #app [class*="layout-tab"] {
  pointer-events: auto !important;
}

body.yuanhai-app-active #app .uni-tabbar,
body.yuanhai-app-active #app [class*="tabbar"],
body.yuanhai-app-active #app [class*="layout-tab"] {
  z-index: 120 !important;
  color: #f5f0e6 !important;
  background: rgb(5 12 22 / 96%) !important;
  border-top: 1px solid rgb(232 215 180 / 16%) !important;
  backdrop-filter: blur(12px);
  padding-bottom: env(safe-area-inset-bottom, 0px) !important;
}

/*
  Light surfaces → night panels.
  IMPORTANT: do NOT scope only to #app — wot root-portal sheets mount outside #app.
*/
body.yuanhai-app-active:not(.yuanhai-auth-active) [class~="bg-white"],
body.yuanhai-app-active:not(.yuanhai-auth-active) [class~="bg-white/90"],
body.yuanhai-app-active:not(.yuanhai-auth-active) [class*="bg-white/"],
body.yuanhai-app-active:not(.yuanhai-auth-active) [class*="bg-[rgba(255,255,255"],
body.yuanhai-app-active:not(.yuanhai-auth-active) [class*="bg-[rgb(255,255,255"],
body.yuanhai-app-active:not(.yuanhai-auth-active) [class~="bg-zinc-50"],
body.yuanhai-app-active:not(.yuanhai-auth-active) [class*="bg-zinc-50"],
body.yuanhai-app-active:not(.yuanhai-auth-active) [class~="bg-zinc-100"],
body.yuanhai-app-active:not(.yuanhai-auth-active) [class*="bg-zinc-100"],
body.yuanhai-app-active:not(.yuanhai-auth-active) [class*="bg-amber-50"],
body.yuanhai-app-active:not(.yuanhai-auth-active) [class*="bg-orange-50"],
body.yuanhai-app-active:not(.yuanhai-auth-active) [class*="bg-yellow-50"] {
  background-color: #0d1a28 !important;
  color: #f5f0e6 !important;
}

body.yuanhai-app-active:not(.yuanhai-auth-active) [class~="bg-zinc-200"],
body.yuanhai-app-active:not(.yuanhai-auth-active) [class~="bg-zinc-300"] {
  background-color: #173044 !important;
  color: #f5f0e6 !important;
}

body.yuanhai-app-active:not(.yuanhai-auth-active) [class~="bg-zinc-600"] {
  background-color: #243748 !important;
  color: #f5f0e6 !important;
}

/* Keep true dark selected cards dark — do NOT wash them into pale gold. */
body.yuanhai-app-active:not(.yuanhai-auth-active) [class~="bg-zinc-800"],
body.yuanhai-app-active:not(.yuanhai-auth-active) [class*="bg-zinc-800"],
body.yuanhai-app-active:not(.yuanhai-auth-active) [class~="bg-zinc-900"],
body.yuanhai-app-active:not(.yuanhai-auth-active) [class*="bg-zinc-900"],
body.yuanhai-app-active:not(.yuanhai-auth-active) [class~="bg-black"],
body.yuanhai-app-active:not(.yuanhai-auth-active) [class*="bg-neutral-900"] {
  background-color: #101d2b !important;
  color: #f5f0e6 !important;
  border-color: rgb(232 215 180 / 34%) !important;
}

body.yuanhai-app-active:not(.yuanhai-auth-active) [class~="text-zinc-900"],
body.yuanhai-app-active:not(.yuanhai-auth-active) [class~="text-zinc-800"],
body.yuanhai-app-active:not(.yuanhai-auth-active) [class~="text-zinc-700"],
body.yuanhai-app-active:not(.yuanhai-auth-active) [class*="text-zinc-900"],
body.yuanhai-app-active:not(.yuanhai-auth-active) [class*="text-zinc-800"],
body.yuanhai-app-active:not(.yuanhai-auth-active) [class~="text-black"],
body.yuanhai-app-active:not(.yuanhai-auth-active) [class~="text-gray-900"],
body.yuanhai-app-active:not(.yuanhai-auth-active) [class~="text-white"],
body.yuanhai-app-active:not(.yuanhai-auth-active) [class~="text-white/80"],
body.yuanhai-app-active:not(.yuanhai-auth-active) [class*="text-white"] {
  color: #f5f0e6 !important;
}

/* Gold CTAs: dark ink text on gold — never ivory-on-cream. */
body.yuanhai-app-active:not(.yuanhai-auth-active) [class~="bg-amber-500"],
body.yuanhai-app-active:not(.yuanhai-auth-active) [class~="bg-orange-500"],
body.yuanhai-app-active:not(.yuanhai-auth-active) [class*="bg-orange-500"],
body.yuanhai-app-active:not(.yuanhai-auth-active) [class*="bg-amber-500"],
body.yuanhai-app-active:not(.yuanhai-auth-active) button[class*="bg-zinc-600"],
body.yuanhai-app-active:not(.yuanhai-auth-active) [class*="rounded-2xl"][class*="bg-zinc-600"] {
  background-color: #c99f4f !important;
  color: #120d07 !important;
  border-color: rgb(232 215 180 / 40%) !important;
}

body.yuanhai-app-active:not(.yuanhai-auth-active) [class~="bg-amber-500"] *,
body.yuanhai-app-active:not(.yuanhai-auth-active) [class~="bg-orange-500"] *,
body.yuanhai-app-active:not(.yuanhai-auth-active) [class*="bg-orange-500"] *,
body.yuanhai-app-active:not(.yuanhai-auth-active) [class*="bg-amber-500"] *,
body.yuanhai-app-active:not(.yuanhai-auth-active) button[class*="bg-zinc-600"] *,
body.yuanhai-app-active:not(.yuanhai-auth-active) [class*="rounded-2xl"][class*="bg-zinc-600"] * {
  color: #120d07 !important;
}

body.yuanhai-app-active:not(.yuanhai-auth-active) [class~="text-zinc-600"],
body.yuanhai-app-active:not(.yuanhai-auth-active) [class~="text-zinc-500"],
body.yuanhai-app-active:not(.yuanhai-auth-active) [class~="text-zinc-400"],
body.yuanhai-app-active:not(.yuanhai-auth-active) [class*="text-zinc-500"],
body.yuanhai-app-active:not(.yuanhai-auth-active) [class*="text-zinc-400"],
body.yuanhai-app-active:not(.yuanhai-auth-active) [class~="text-gray-600"],
body.yuanhai-app-active:not(.yuanhai-auth-active) [class~="text-gray-500"] {
  color: rgb(245 240 230 / 78%) !important;
}

body.yuanhai-app-active:not(.yuanhai-auth-active) [class*="border-zinc"],
body.yuanhai-app-active:not(.yuanhai-auth-active) [class*="border-gray"] {
  border-color: rgb(232 215 180 / 22%) !important;
}

body.yuanhai-app-active #app [class~="text-amber-500"],
body.yuanhai-app-active #app [class~="text-orange-500"],
body.yuanhai-app-active #app [class*="text-orange-500"],
body.yuanhai-app-active #app [class*="text-amber-600"],
body.yuanhai-app-active #app [class*="text-amber-700"] {
  color: #e2c48a !important;
}

body.yuanhai-app-active #app [class*="h-1"][class*="bg-orange-500"] {
  background-color: var(--yuanhai-gold) !important;
  border-radius: 999px !important;
}

body.yuanhai-app-active #app [style*="color: #52525b"],
body.yuanhai-app-active #app [style*="color:#52525b"],
body.yuanhai-app-active #app [style*="color: #18181b"],
body.yuanhai-app-active #app [style*="color:#18181b"],
body.yuanhai-app-active #app [style*="color: #3f3f46"],
body.yuanhai-app-active #app [style*="color:#3f3f46"] {
  color: rgba(245, 240, 230, 0.92) !important;
}

body.yuanhai-app-active #app .text-2xl.font-bold {
  font-family: 'Noto Serif SC', 'Songti SC', serif !important;
  font-weight: 500 !important;
  letter-spacing: 0.14em !important;
  color: #f5f0e6 !important;
}

body.yuanhai-app-active #app .text-xs.font-medium.tracking-widest {
  color: rgb(226 196 138 / 78%) !important;
  font-family: Georgia, 'Times New Roman', serif !important;
  letter-spacing: 0.28em !important;
}

/* Floating dock: 首页 / 知客 — top-right, above masthead. */
#yuanhai-float-dock {
  position: fixed;
  top: calc(10px + env(safe-area-inset-top, 0px));
  right: max(12px, env(safe-area-inset-right, 0px));
  z-index: 130;
  display: flex;
  align-items: center;
  gap: 8px;
  pointer-events: none;
}

#yuanhai-float-dock a {
  pointer-events: auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  min-height: 40px;
  padding: 0 12px;
  border: 1px solid rgb(232 215 180 / 34%);
  border-radius: 999px;
  background: rgb(8 18 30 / 82%);
  box-shadow: 0 10px 24px rgb(0 0 0 / 28%);
  color: #f5f0e6 !important;
  font-size: 12px;
  letter-spacing: 0.12em;
  text-decoration: none;
  backdrop-filter: blur(10px);
}

#yuanhai-float-dock a strong {
  font-family: 'Noto Serif SC', 'Songti SC', serif;
  font-weight: 400;
  font-size: 13px;
  letter-spacing: 0.16em;
}

#yuanhai-float-dock a span {
  color: rgb(226 196 138 / 88%);
  font-size: 11px;
}

#yuanhai-float-dock a:active {
  transform: scale(0.97);
}

/* Chat TAB only: kill white frost bar + left appName pill; keep right tools ABOVE masthead.
   Do NOT apply on nested pages like 对话历史 — those keep their own back + title. */
body.yuanhai-chat-tab #app .fixed.top-0.left-0.right-0.z-40 {
  z-index: 125 !important;
  background: transparent !important;
  background-color: transparent !important;
  border-color: transparent !important;
  box-shadow: none !important;
  backdrop-filter: none !important;
  pointer-events: none !important;
}

body.yuanhai-chat-tab #app .fixed.top-0.left-0.right-0.z-40 [class*="justify-end"],
body.yuanhai-chat-tab #app .fixed.top-0.left-0.right-0.z-40 [class*="justify-end"] * {
  pointer-events: auto !important;
}

body.yuanhai-chat-tab #app [class*="bg-[rgba(255,255,255"],
body.yuanhai-chat-tab #app [class*="backdrop-blur-md"] {
  background: transparent !important;
  background-color: transparent !important;
  border-color: transparent !important;
  box-shadow: none !important;
  backdrop-filter: none !important;
}

body.yuanhai-chat-tab #app .fixed.top-0.left-0.right-0.z-20,
body.yuanhai-chat-tab #app [style*="rgba(255,255,255,0.96)"],
body.yuanhai-chat-tab #app [style*="rgba(255, 255, 255, 0.96)"] {
  display: none !important;
}

/* Left brand chip: logo + 渊海 (has cursor-pointer); actions chip does not. */
body.yuanhai-chat-tab #app [class*="cursor-pointer"][class*="bg-white/80"][class*="rounded-3xl"] {
  display: none !important;
}

/* Right tool chip: night panel, not white pill. */
body.yuanhai-chat-active #app [class*="bg-white/80"][class*="rounded-3xl"][class*="shadow-sm"] {
  background: rgb(8 18 30 / 82%) !important;
  border-color: rgb(232 215 180 / 34%) !important;
  box-shadow: 0 8px 22px rgb(0 0 0 / 28%) !important;
  color: #f5f0e6 !important;
}

body.yuanhai-chat-active #app [class*="bg-white/80"][class*="rounded-3xl"] .text-zinc-600,
body.yuanhai-chat-active #app [class*="bg-white/80"][class*="rounded-3xl"] svg {
  color: rgb(245 240 230 / 88%) !important;
  stroke: rgb(245 240 230 / 88%) !important;
}

/* Native 客服悬浮钮：夜墨金线，不被底栏压住 */
body.yuanhai-app-active #app .fixed.right-4,
body.yuanhai-app-active #app [class*="fixed"][class*="right-4"] {
  z-index: 128 !important;
}

body.yuanhai-app-active #app .fixed.right-4 [class*="rounded-full"][class*="bg-zinc-900"],
body.yuanhai-app-active #app [class*="fixed"][class*="right-4"] [class*="rounded-full"] {
  border-color: rgb(232 215 180 / 34%) !important;
  background: rgb(8 18 30 / 88%) !important;
  color: #f5f0e6 !important;
  box-shadow: 0 10px 24px rgb(0 0 0 / 30%) !important;
}

/* Hide native 命书 banner — shared masthead replaces it. */
body.yuanhai-report-active #app [class*="bg-cover"][class*="h-48"],
body.yuanhai-report-active #app [class*="bg-cover"][class*="md:h-[30vh]"] {
  display: none !important;
}

/* Shared masthead for 问道 + 命书. Title click → home. Mobile-first height. */
#yuanhai-surface-masthead {
  position: relative;
  z-index: 5;
  display: none;
  margin: 0;
  padding:
    calc(12px + env(safe-area-inset-top, 0px))
    max(16px, env(safe-area-inset-right, 0px))
    18px
    max(16px, env(safe-area-inset-left, 0px));
  background:
    linear-gradient(180deg, rgb(5 12 22 / 88%), rgb(5 12 22 / 96%)),
    url('/brand/yuanhai-scroll-bg-v2.webp') center top / cover no-repeat;
  border-bottom: 1px solid rgb(232 215 180 / 14%);
}

body.yuanhai-masthead-active #yuanhai-surface-masthead {
  display: block;
}

/* ===== 命主页：去掉橙金会员皮肤，并入夜墨金线 ===== */
body.yuanhai-user-active #app [class*="from-orange-400"][class*="via-orange-500"],
body.yuanhai-user-active #app [class*="from-orange-400"][class*="to-amber-500"],
body.yuanhai-user-active #app [class*="bg-gradient-to-r"][class*="from-orange"] {
  background: linear-gradient(120deg, #173044 0%, #0d1a28 48%, #2a2114 100%) !important;
  border: 1px solid rgb(232 215 180 / 28%) !important;
  box-shadow: 0 12px 28px rgb(0 0 0 / 30%) !important;
  color: #f5f0e6 !important;
}

body.yuanhai-user-active #app [class*="to-orange-900"],
body.yuanhai-user-active #app [class*="via-zinc-900"][class*="to-orange"] {
  background: linear-gradient(160deg, #050c16 0%, #0b1824 55%, #1a160f 100%) !important;
}

body.yuanhai-user-active #app [class*="bg-orange-500/5"],
body.yuanhai-user-active #app [class*="bg-orange-600/5"] {
  background: rgb(200 164 106 / 8%) !important;
}

body.yuanhai-user-active #app [class*="bg-orange-500"],
body.yuanhai-user-active #app [class~="bg-orange-500"] {
  background-color: #c99f4f !important;
}

body.yuanhai-user-active #app .glass-card,
body.yuanhai-user-active #app [class*="rounded-[28px]"][class*="border-zinc"],
body.yuanhai-user-active #app [class*="rounded-2xl"][class*="bg-zinc-50"],
body.yuanhai-user-active #app [class*="bg-zinc-50"] {
  background: #101d2b !important;
  border-color: rgb(232 215 180 / 18%) !important;
  color: #f5f0e6 !important;
  box-shadow: 0 10px 28px rgb(0 0 0 / 22%) !important;
}

/* Kill the white fade stripe that looked like a glitch on identity cards. */
body.yuanhai-user-active #app [class*="from-white"][class*="to-transparent"],
body.yuanhai-user-active #app [class*="bg-gradient-to-l"][class*="from-white"] {
  background: linear-gradient(to left, #101d2b, transparent) !important;
}

body.yuanhai-user-active #app [class*="text-zinc-900"],
body.yuanhai-user-active #app [class*="text-zinc-600"] {
  color: #f5f0e6 !important;
}

body.yuanhai-user-active #app [class*="text-zinc-500"],
body.yuanhai-user-active #app [class*="text-zinc-400"],
body.yuanhai-user-active #app [class*="text-zinc-300"] {
  color: rgb(245 240 230 / 62%) !important;
}

body.yuanhai-user-active #app [class*="border-zinc-100"],
body.yuanhai-user-active #app [class*="border-zinc-200"] {
  border-color: rgb(232 215 180 / 18%) !important;
}

body.yuanhai-user-active #app [class*="bg-zinc-100"] {
  background: rgb(200 164 106 / 14%) !important;
  color: #f5f0e6 !important;
}

#yuanhai-surface-masthead .yuanhai-masthead-title {
  display: inline-block;
  min-height: 44px;
  padding: 4px 0;
  color: inherit;
  text-decoration: none;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}

#yuanhai-surface-masthead .yuanhai-masthead-title:hover strong,
#yuanhai-surface-masthead .yuanhai-masthead-title:active strong {
  color: var(--yuanhai-gold);
}

#yuanhai-surface-masthead strong {
  display: block;
  font-family: 'Noto Serif SC', 'Songti SC', serif;
  font-size: clamp(26px, 7vw, 36px);
  font-weight: 500;
  letter-spacing: 0.16em;
  color: #f5f0e6;
}

#yuanhai-surface-masthead small {
  display: block;
  margin-top: 6px;
  color: rgb(226 196 138 / 82%);
  font-family: Georgia, 'Times New Roman', serif;
  font-size: 10px;
  letter-spacing: 0.24em;
  text-transform: uppercase;
}

#yuanhai-surface-masthead p {
  max-width: 36em;
  margin: 10px 0 0;
  color: rgb(245 240 230 / 58%);
  font-size: 12px;
  line-height: 1.7;
}

#yuanhai-surface-masthead .yuanhai-masthead-rule {
  display: block;
  position: relative;
  width: min(420px, 72%);
  height: 1px;
  margin: 16px 0 0;
  background: linear-gradient(90deg, transparent, rgb(232 215 180 / 55%), transparent);
}

#yuanhai-surface-masthead .yuanhai-masthead-rule::before {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 7px;
  height: 7px;
  content: '';
  border: 1px solid rgb(232 215 180 / 70%);
  background: rgb(8 18 30 / 90%);
  transform: translate(-50%, -50%) rotate(45deg);
  box-shadow: 0 0 12px rgb(200 164 106 / 35%);
}

body.yuanhai-chat-active #app [class*="linear-gradient(to_top,rgb(255,255,255"],
body.yuanhai-chat-active #app [class*="linear-gradient(to_bottom,rgb(255,255,255"] {
  background: linear-gradient(to top, #050c16 18%, transparent) !important;
  pointer-events: none !important;
}

body.yuanhai-chat-active #app .w-10.h-10.rounded-full.overflow-hidden,
body.yuanhai-chat-active #app [class*="w-10"][class*="h-10"][class*="rounded-full"][class*="overflow-hidden"] {
  position: relative !important;
  overflow: hidden !important;
  border: 1px solid rgb(232 215 180 / 55%) !important;
  background-color: #0a1724 !important;
  background-image: none !important;
  box-shadow: 0 0 0 2px rgb(5 12 22 / 80%), 0 0 18px rgb(198 160 81 / 18%) !important;
}

body.yuanhai-chat-active #app .w-10.h-10.rounded-full.overflow-hidden::after,
body.yuanhai-chat-active #app [class*="w-10"][class*="h-10"][class*="rounded-full"][class*="overflow-hidden"]::after {
  position: absolute;
  z-index: 6;
  inset: 0;
  content: '';
  border-radius: inherit;
  background: #0a1724 url('/brand/yuanhai-chat-avatar-v1.webp') center top / cover no-repeat;
  pointer-events: none;
}

body.yuanhai-chat-active #app .w-10.h-10.rounded-full.overflow-hidden > *,
body.yuanhai-chat-active #app [class*="w-10"][class*="h-10"][class*="rounded-full"][class*="overflow-hidden"] > * {
  opacity: 0 !important;
  visibility: hidden !important;
}

body.yuanhai-chat-active #app [class*="rounded-2xl"][class*="bg-white"],
body.yuanhai-chat-active #app [class*="rounded-2xl"][class~="bg-white"] {
  background: #101d2b !important;
  border: 1px solid rgb(232 215 180 / 18%) !important;
  color: #f5f0e6 !important;
  box-shadow: 0 10px 28px rgb(0 0 0 / 22%) !important;
}

body.yuanhai-chat-active #app [class*="rounded-4xl"] {
  background: rgb(12 24 36 / 96%) !important;
  border: 1px solid rgb(232 215 180 / 26%) !important;
  box-shadow: 0 12px 32px rgb(0 0 0 / 30%) !important;
  backdrop-filter: none !important;
}

/* Keep composer height changes local — avoid page jump / IME shake. */
body.yuanhai-chat-active #app [class*="rounded-4xl"] textarea,
body.yuanhai-chat-active #app [class*="rounded-4xl"] .uni-textarea-textarea,
body.yuanhai-chat-active #app uni-textarea {
  max-height: 8rem !important;
  overflow-y: auto !important;
  line-height: 1.55 !important;
  transition: none !important;
}

body.yuanhai-chat-active #app textarea,
body.yuanhai-chat-active #app input,
body.yuanhai-chat-active #app uni-textarea,
body.yuanhai-chat-active #app .uni-textarea-textarea {
  color: #f5f0e6 !important;
  caret-color: var(--yuanhai-gold) !important;
  background: transparent !important;
  /* System UI fonts — serif breaks Chinese IME caret on Windows. */
  font-family: 'PingFang SC', 'Microsoft YaHei', sans-serif !important;
}

body.yuanhai-chat-active #app textarea::placeholder,
body.yuanhai-chat-active #app input::placeholder {
  color: rgb(245 240 230 / 45%) !important;
}

/* Waiting hint beside bounce dots — friendly copy, gold accent. */
body.yuanhai-chat-active #app .animate-bounce {
  background-color: #e2c48a !important;
}

body.yuanhai-app-active .yuanhai-consultation-surface .animate-bounce {
  background-color: #e2c48a !important;
}

body.yuanhai-chat-active #app .inline-flex.gap-1 .animate-bounce,
body.yuanhai-app-active .yuanhai-consultation-surface .inline-flex.gap-1 .animate-bounce {
  box-shadow: 0 0 8px rgb(226 196 138 / 35%);
}

body.yuanhai-report-active #app .card-border,
body.yuanhai-report-active #app .glass-card {
  background: #101d2b !important;
  border: 1px solid rgb(232 215 180 / 18%) !important;
  color: #f5f0e6 !important;
  box-shadow: 0 12px 30px rgb(0 0 0 / 28%) !important;
}

body.yuanhai-report-active #app .card-border:hover,
body.yuanhai-report-active #app .glass-card:hover {
  box-shadow: 0 16px 36px rgb(0 0 0 / 38%) !important;
  border-color: rgb(232 215 180 / 32%) !important;
}

body.yuanhai-report-active #app .card-border .text-zinc-900,
body.yuanhai-report-active #app .card-border .text-zinc-800,
body.yuanhai-report-active #app .card-border .text-zinc-700,
body.yuanhai-report-active #app .card-border .text-zinc-600,
body.yuanhai-report-active #app .card-border .font-bold,
body.yuanhai-report-active #app .glass-card .text-zinc-900,
body.yuanhai-report-active #app .glass-card .text-zinc-800,
body.yuanhai-report-active #app .glass-card .text-zinc-700,
body.yuanhai-report-active #app .glass-card .text-zinc-600,
body.yuanhai-report-active #app .glass-card .font-bold,
body.yuanhai-report-active #app .glass-card [class*="text-zinc-900"],
body.yuanhai-report-active #app .glass-card [class*="text-base"] {
  color: #f5f0e6 !important;
  font-family: 'Noto Serif SC', 'Songti SC', serif !important;
}

body.yuanhai-report-active #app .glass-card [class*="text-zinc-500"],
body.yuanhai-report-active #app .glass-card [class*="text-[11px]"] {
  color: rgb(245 240 230 / 58%) !important;
}

body.yuanhai-report-active #app .card-border .bg-zinc-100,
body.yuanhai-report-active #app .glass-card [class*="bg-zinc-50"] {
  background: rgb(200 164 106 / 12%) !important;
  border-color: rgb(232 215 180 / 16%) !important;
  color: #f5f0e6 !important;
}

/* 我的报告：生成中徽章 / 进度条 — 夜墨底 + 金字，避免浅底浅字 */
body.yuanhai-report-active #app .glass-card [class*="bg-amber-50"],
body.yuanhai-report-active #app .glass-card [class*="bg-emerald-50"],
body.yuanhai-report-active #app .glass-card [class*="bg-red-50"],
body.yuanhai-report-active #app [class*="rounded-full"][class*="bg-amber-50"],
body.yuanhai-report-active #app [class*="rounded-full"][class*="bg-emerald-50"],
body.yuanhai-report-active #app [class*="rounded-full"][class*="bg-red-50"] {
  background: rgb(12 24 36 / 92%) !important;
  border-color: rgb(232 215 180 / 28%) !important;
  color: #e2c48a !important;
}

body.yuanhai-report-active #app .glass-card [class*="text-amber-600"],
body.yuanhai-report-active #app .glass-card [class*="text-emerald-600"],
body.yuanhai-report-active #app .glass-card [class*="text-red-600"],
body.yuanhai-report-active #app [class*="text-amber-600"],
body.yuanhai-report-active #app [class*="text-emerald-600"] {
  color: #e2c48a !important;
}

body.yuanhai-report-active #app .glass-card [class*="bg-amber-100"],
body.yuanhai-report-active #app [class*="bg-amber-100"] {
  background: rgb(232 215 180 / 16%) !important;
}

body.yuanhai-report-active #app .glass-card [class*="bg-amber-500"],
body.yuanhai-report-active #app [class*="bg-amber-500"][class*="h-full"] {
  background: #c99f4f !important;
}

body.yuanhai-report-active #app .glass-card svg,
body.yuanhai-report-active #app .glass-card [class*="text-zinc-900"] svg {
  color: #e2c48a !important;
  stroke: #e2c48a !important;
}

body.yuanhai-report-active #app [class*="bg-cover"][class*="h-48"],
body.yuanhai-report-active #app [class*="bg-cover"][class*="md:h-[30vh]"] {
  background-color: #050c16 !important;
  background-image:
    linear-gradient(180deg, rgb(5 12 22 / 22%), rgb(5 12 22 / 66%)),
    url('/brand/yuanhai-scroll-bg-v2.webp') !important;
  background-position: center top !important;
  background-size: cover !important;
  border-bottom: 1px solid rgb(232 215 180 / 14%);
}

body.yuanhai-report-active #app [class*="bg-linear-to-b"][class*="to-white"] {
  background: linear-gradient(to bottom, transparent, #050c16) !important;
  pointer-events: none !important;
}

body.yuanhai-report-active #app [class*="aspect-[16/9]"],
body.yuanhai-report-active #app [class*="bg-zinc-100"][class*="overflow-hidden"] {
  background-color: #0a1724 !important;
  border: 1px solid rgb(232 215 180 / 20%) !important;
}

body.yuanhai-report-active #app .card-border:nth-child(8n + 1) [class*="aspect-[16/9]"],
body.yuanhai-report-active #app .card-border:nth-child(8n + 1) [class*="bg-zinc-100"][class*="overflow-hidden"] {
  background-image: url('/brand/covers/cover-01-astrolabe.webp') !important;
  background-size: cover !important;
  background-position: center !important;
}
body.yuanhai-report-active #app .card-border:nth-child(8n + 2) [class*="aspect-[16/9]"],
body.yuanhai-report-active #app .card-border:nth-child(8n + 2) [class*="bg-zinc-100"][class*="overflow-hidden"] {
  background-image: url('/brand/covers/cover-02-scroll.webp') !important;
  background-size: cover !important;
  background-position: center !important;
}
body.yuanhai-report-active #app .card-border:nth-child(8n + 3) [class*="aspect-[16/9]"],
body.yuanhai-report-active #app .card-border:nth-child(8n + 3) [class*="bg-zinc-100"][class*="overflow-hidden"] {
  background-image: url('/brand/covers/cover-03-mountains.webp') !important;
  background-size: cover !important;
  background-position: center !important;
}
body.yuanhai-report-active #app .card-border:nth-child(8n + 4) [class*="aspect-[16/9]"],
body.yuanhai-report-active #app .card-border:nth-child(8n + 4) [class*="bg-zinc-100"][class*="overflow-hidden"] {
  background-image: url('/brand/covers/cover-04-luopan.webp') !important;
  background-size: cover !important;
  background-position: center !important;
}
body.yuanhai-report-active #app .card-border:nth-child(8n + 5) [class*="aspect-[16/9]"],
body.yuanhai-report-active #app .card-border:nth-child(8n + 5) [class*="bg-zinc-100"][class*="overflow-hidden"] {
  background-image: url('/brand/covers/cover-05-pillars.webp') !important;
  background-size: cover !important;
  background-position: center !important;
}
body.yuanhai-report-active #app .card-border:nth-child(8n + 6) [class*="aspect-[16/9]"],
body.yuanhai-report-active #app .card-border:nth-child(8n + 6) [class*="bg-zinc-100"][class*="overflow-hidden"] {
  background-image: url('/brand/covers/cover-06-lantern-sea.webp') !important;
  background-size: cover !important;
  background-position: center !important;
}
body.yuanhai-report-active #app .card-border:nth-child(8n + 7) [class*="aspect-[16/9]"],
body.yuanhai-report-active #app .card-border:nth-child(8n + 7) [class*="bg-zinc-100"][class*="overflow-hidden"] {
  background-image: url('/brand/covers/cover-07-bagua.webp') !important;
  background-size: cover !important;
  background-position: center !important;
}
body.yuanhai-report-active #app .card-border:nth-child(8n + 8) [class*="aspect-[16/9]"],
body.yuanhai-report-active #app .card-border:nth-child(8n + 8) [class*="bg-zinc-100"][class*="overflow-hidden"] {
  background-image: url('/brand/covers/cover-08-jade-seal.webp') !important;
  background-size: cover !important;
  background-position: center !important;
}

body.yuanhai-report-active #app [class*="aspect-[16/9]"] img,
body.yuanhai-report-active #app [class*="bg-zinc-100"][class*="overflow-hidden"] img {
  opacity: 0 !important;
  visibility: hidden !important;
}

body.yuanhai-report-active #app [class*="bg-gradient-to-t"][class*="from-black"],
body.yuanhai-report-active #app [class*="bg-linear-to-t"][class*="from-black"] {
  background: linear-gradient(to top, rgb(5 12 22 / 82%) 6%, rgb(5 12 22 / 28%) 48%, transparent) !important;
  pointer-events: none !important;
}

body.yuanhai-report-active #app [class*="from-white"][class*="via-white"],
body.yuanhai-report-active #app [class*="from-white"][class*="via-transparent"] {
  background: linear-gradient(to top, #050c16 14%, transparent) !important;
  pointer-events: none !important;
}

body.yuanhai-report-active #app [class*="bg-white/60"],
body.yuanhai-report-active #app [class*="bg-white/80"] {
  background: rgb(10 24 38 / 78%) !important;
  border-color: rgb(232 215 180 / 30%) !important;
  color: #f5f0e6 !important;
}

body.yuanhai-report-active #app [class*="rounded-full"][class*="bg-emerald-50"],
body.yuanhai-report-active #app [class*="rounded-full"][class*="bg-amber-50"],
body.yuanhai-report-active #app [class*="rounded-full"][class*="bg-red-50"] {
  background: rgb(12 24 36 / 90%) !important;
  border-color: rgb(232 215 180 / 24%) !important;
  color: #e2c48a !important;
}

/* 命书正文：覆盖 AI 渲染器浅色主题内联色（#18181b / #52525b），关键词必须可读 */
body.yuanhai-report-active #app .ai-content,
body.yuanhai-report-active #app .ai-content-renderer,
body.yuanhai-report-active #app [class*="ai-content"],
body.yuanhai-report-active #app [class*="rich-text"],
body.yuanhai-report-active #app [class*="markdown"],
body.yuanhai-report-active #app .prose,
body.yuanhai-report-active #app uni-rich-text,
body.yuanhai-report-active #app .uni-rich-text {
  color: rgba(245, 240, 230, 0.88) !important;
}

body.yuanhai-report-active #app p[style],
body.yuanhai-report-active #app li[style],
body.yuanhai-report-active #app ul[style],
body.yuanhai-report-active #app ol[style],
body.yuanhai-report-active #app span[style],
body.yuanhai-report-active #app p,
body.yuanhai-report-active #app li,
body.yuanhai-report-active #app ul,
body.yuanhai-report-active #app ol {
  color: rgba(245, 240, 230, 0.86) !important;
}

body.yuanhai-report-active #app strong[style],
body.yuanhai-report-active #app b[style],
body.yuanhai-report-active #app strong,
body.yuanhai-report-active #app b,
body.yuanhai-report-active #app em[style],
body.yuanhai-report-active #app em {
  color: #e2c48a !important;
  font-weight: 700 !important;
}

body.yuanhai-report-active #app h1[style],
body.yuanhai-report-active #app h2[style],
body.yuanhai-report-active #app h3[style],
body.yuanhai-report-active #app h4[style],
body.yuanhai-report-active #app h1,
body.yuanhai-report-active #app h2,
body.yuanhai-report-active #app h3,
body.yuanhai-report-active #app h4 {
  color: #f5f0e6 !important;
  border-left-color: #e2c48a !important;
}

body.yuanhai-report-active #app a[style],
body.yuanhai-report-active #app a {
  color: #e2c48a !important;
}

@media (max-width: 760px) {
  .yuanhai-feedback { padding-top: 88px; padding-bottom: 72px; }
  .yuanhai-feedback-grid { grid-template-columns: 1fr; }
  .yuanhai-feedback-grid article {
    min-height: 170px;
    border-left: 1px solid var(--yuanhai-line);
  }
  .yuanhai-footer {
    align-items: center;
    flex-direction: column;
    gap: 22px;
    padding: 36px 20px 48px;
    text-align: center;
  }

  .yuanhai-footer-copy {
    max-width: 28em;
    margin: 0 auto;
  }

  .yuanhai-footer-qr {
    width: 100%;
    justify-content: center;
    gap: 14px;
  }

  .yuanhai-qr-frame {
    width: 104px;
    height: 104px;
  }
  .yuanhai-about { padding-top: 92px; padding-bottom: 64px; }
  .yuanhai-about-diary-body h2 { font-size: 20px; }
  .yuanhai-about-diary-body p { font-size: 14px; line-height: 1.95; }

  /* ===== Mobile H5 (裂变主场景) ===== */
  body.yuanhai-masthead-active.yuanhai-chat-active #yuanhai-surface-masthead p,
  body.yuanhai-masthead-active.yuanhai-user-active #yuanhai-surface-masthead p {
    display: none; /* save vertical space on phone */
  }

  body.yuanhai-masthead-active.yuanhai-report-active #yuanhai-surface-masthead p {
    font-size: 11px;
    line-height: 1.65;
  }

  /* Mobile: keep banner pinned while page / chat scrolls. */
  body.yuanhai-masthead-active #yuanhai-surface-masthead {
    position: fixed;
    top: 0;
    right: 0;
    left: 0;
    z-index: 95;
    padding-top: calc(8px + env(safe-area-inset-top, 0px));
    padding-bottom: 12px;
    background:
      linear-gradient(180deg, rgb(5 12 22 / 94%), rgb(5 12 22 / 98%)),
      url('/brand/yuanhai-scroll-bg-v2.webp') center top / cover no-repeat;
    box-shadow: 0 10px 28px rgb(0 0 0 / 28%);
  }

  body.yuanhai-masthead-active #app {
    padding-top: var(--yuanhai-masthead-offset, 96px) !important;
  }

  /* Recharge / payment sticky footers stay night, CTAs stay readable. */
  body.yuanhai-app-active #app .fixed.bottom-0,
  body.yuanhai-app-active #app [class*="fixed"][class*="bottom-0"] {
    background: rgb(5 12 22 / 94%) !important;
    border-top-color: rgb(232 215 180 / 18%) !important;
    color: #f5f0e6 !important;
  }

  /* Mobile: make title affordance obvious — tap title = home */
  body.yuanhai-masthead-active #yuanhai-surface-masthead .yuanhai-masthead-title strong::after {
    content: ' · 首页';
    color: rgb(226 196 138 / 70%);
    font-size: 12px;
    letter-spacing: 0.12em;
  }

  body.yuanhai-chat-tab #app [class*="bg-white/80"][class*="rounded-3xl"][class*="shadow-sm"] {
    max-width: none;
  }

  /* 问道主 Tab：右上工具条固定贴顶，不被 masthead 挡住 */
  body.yuanhai-chat-tab #app .fixed.top-0.left-0.right-0.z-40 {
    top: calc(8px + env(safe-area-inset-top, 0px)) !important;
    height: auto !important;
    padding-top: 0 !important;
  }

  body.yuanhai-chat-tab #app .fixed.top-0.left-0.right-0.z-40 > * {
    padding-top: 0 !important;
  }

  body.yuanhai-chat-tab #app [class*="bg-white/80"][class*="rounded-3xl"][class*="shadow-sm"] {
    margin-left: auto;
  }

  #yuanhai-float-dock a {
    min-height: 36px;
    padding: 0 10px;
  }

  /* Composer clears tabbar + home indicator */
  body.yuanhai-chat-active #app [class*="rounded-4xl"] {
    margin-bottom: calc(8px + env(safe-area-inset-bottom, 0px)) !important;
  }

  body.yuanhai-report-active #app .card-border {
    border-radius: 16px !important;
  }

  body.yuanhai-report-active #app .max-w-4xl {
    padding-left: 12px !important;
    padding-right: 12px !important;
  }

  body.yuanhai-app-active #app .uni-tabbar,
  body.yuanhai-app-active #app [class*="tabbar"],
  body.yuanhai-app-active #app [class*="layout-tab"] {
    padding-bottom: max(6px, env(safe-area-inset-bottom, 0px)) !important;
  }

  .yuanhai-landing .yuanhai-topbar {
    height: auto;
    min-height: calc(56px + env(safe-area-inset-top, 0px));
    padding: env(safe-area-inset-top, 0px) 14px 10px;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 10px;
  }

  .yuanhai-landing .yuanhai-nav {
    display: none; /* use bottom CTAs / in-page links on phone */
  }

  .yuanhai-landing .yuanhai-topbar-actions {
    gap: 8px;
    max-width: 100%;
  }

  .yuanhai-landing .yuanhai-concierge {
    min-height: 30px;
    padding: 0 10px;
    font-size: 11px;
  }

  .yuanhai-landing .yuanhai-account {
    font-size: 11px;
    letter-spacing: 0.08em;
  }

  .yuanhai-landing .yuanhai-brand-copy strong {
    font-size: 17px;
    letter-spacing: 0.18em;
  }
}

/* Shared ChatWindow: chat, report consultation, and paragraph consultation. */
body.yuanhai-app-active .yuanhai-consultation-surface {
  background: #050c16 !important;
  color: #f5f0e6 !important;
}

body.yuanhai-app-active .yuanhai-consultation-surface > [class*="bg-white"],
body.yuanhai-app-active .yuanhai-consultation-surface [class*="from-white"],
body.yuanhai-app-active .yuanhai-consultation-surface [class*="to-white"] {
  background-color: #050c16 !important;
  background-image: none !important;
}

body.yuanhai-app-active .yuanhai-consultation-surface [class*="rounded-2xl"][class*="bg-white"],
body.yuanhai-app-active .yuanhai-consultation-surface [class*="rounded-2xl"][class~="bg-white"] {
  background: #101d2b !important;
  border-color: rgba(232, 215, 180, 0.18) !important;
  color: #f5f0e6 !important;
  box-shadow: 0 10px 28px rgba(0, 0, 0, 0.22) !important;
}

body.yuanhai-app-active .yuanhai-consultation-surface .ai-content,
body.yuanhai-app-active .yuanhai-consultation-surface [class*="ai-content"],
body.yuanhai-app-active .yuanhai-consultation-surface [class*="prose"],
body.yuanhai-app-active .yuanhai-consultation-surface p,
body.yuanhai-app-active .yuanhai-consultation-surface li,
body.yuanhai-app-active .yuanhai-consultation-surface uni-text,
body.yuanhai-app-active .yuanhai-consultation-surface .uni-text {
  color: rgba(245, 240, 230, 0.9) !important;
}

body.yuanhai-app-active .yuanhai-consultation-surface h1,
body.yuanhai-app-active .yuanhai-consultation-surface h2,
body.yuanhai-app-active .yuanhai-consultation-surface h3,
body.yuanhai-app-active .yuanhai-consultation-surface h4,
body.yuanhai-app-active .yuanhai-consultation-surface strong {
  color: #f5f0e6 !important;
}

body.yuanhai-app-active .yuanhai-consultation-surface [class*="bg-zinc-600"] {
  background-color: #263849 !important;
  color: #fffaf0 !important;
}

body.yuanhai-app-active .yuanhai-consultation-composer {
  background: rgba(13, 26, 40, 0.98) !important;
  border: 1px solid rgba(226, 196, 138, 0.25) !important;
  box-shadow: 0 16px 42px rgba(0, 0, 0, 0.32) !important;
}

body.yuanhai-app-active .yuanhai-consultation-composer textarea,
body.yuanhai-app-active .yuanhai-consultation-composer input,
body.yuanhai-app-active .yuanhai-consultation-composer .uni-textarea-textarea {
  color: #f5f0e6 !important;
  caret-color: #e2c48a !important;
  background: transparent !important;
}

body.yuanhai-app-active .yuanhai-consultation-composer textarea::placeholder,
body.yuanhai-app-active .yuanhai-consultation-composer input::placeholder,
body.yuanhai-app-active .yuanhai-consultation-composer .uni-textarea-placeholder {
  color: rgba(245, 240, 230, 0.55) !important;
}

@media (max-width: 420px) {
  #yuanhai-surface-masthead strong {
    font-size: 24px;
    letter-spacing: 0.12em;
  }

  #yuanhai-surface-masthead small {
    letter-spacing: 0.18em;
  }
}

/* ===== About / Agreement / Preferences: force night-ink readability ===== */
body.yuanhai-about-active #app,
body.yuanhai-app-active #app:has(.agreement-rich-text) {
  color: #f5f0e6 !important;
}

body.yuanhai-app-active #app .agreement-rich-text,
body.yuanhai-app-active #app .agreement-rich-text * {
  color: rgba(245, 240, 230, 0.86) !important;
  border-color: rgba(232, 215, 180, 0.22) !important;
}

body.yuanhai-app-active #app .agreement-rich-text h1,
body.yuanhai-app-active #app .agreement-rich-text h2,
body.yuanhai-app-active #app .agreement-rich-text h3,
body.yuanhai-app-active #app .agreement-rich-text strong {
  color: #f5f0e6 !important;
}

body.yuanhai-app-active #app .agreement-rich-text a {
  color: #e2c48a !important;
}

body.yuanhai-app-active #app .agreement-rich-text blockquote,
body.yuanhai-app-active #app .agreement-rich-text code,
body.yuanhai-app-active #app .agreement-rich-text pre {
  background: rgba(13, 26, 40, 0.95) !important;
  color: #f5f0e6 !important;
}

body.yuanhai-app-active #app .agreement-rich-text table {
  width: 100%;
  border-collapse: collapse;
  margin: 16px 0;
  font-size: 13px;
}

body.yuanhai-app-active #app .agreement-rich-text th,
body.yuanhai-app-active #app .agreement-rich-text td {
  border: 1px solid rgba(232, 215, 180, 0.22) !important;
  padding: 10px 12px;
  color: rgba(245, 240, 230, 0.86) !important;
  background: transparent !important;
}

body.yuanhai-app-active #app .agreement-rich-text th {
  color: #e2c48a !important;
  background: rgba(13, 26, 40, 0.7) !important;
}

/* Preferences / about cards stay night panels with ivory type. */
body.yuanhai-about-active #app [class*="text-sm"],
body.yuanhai-about-active #app [class*="font-bold"],
body.yuanhai-about-active #app .text-zinc-900,
body.yuanhai-about-active #app uni-text,
body.yuanhai-about-active #app .uni-text {
  color: #f5f0e6 !important;
}

body.yuanhai-about-active #app [class*="text-zinc-500"],
body.yuanhai-about-active #app [class*="text-zinc-400"],
body.yuanhai-about-active #app [class*="text-zinc-300"],
body.yuanhai-about-active #app [class*="text-[10px]"] {
  color: rgba(245, 240, 230, 0.62) !important;
}

body.yuanhai-about-active #app [class*="text-rose-500"],
body.yuanhai-about-active #app [class*="text-rose-300"] {
  color: #f0a8a8 !important;
}

body.yuanhai-about-active #app [class*="rounded-[40px]"],
body.yuanhai-about-active #app [class*="rounded-[32px]"],
body.yuanhai-about-active #app [class*="rounded-2xl"] {
  background-color: #0d1a28 !important;
  border-color: rgba(232, 215, 180, 0.18) !important;
}

/* Markdown about body (in-app 关于我们) inherits night ink. */
body.yuanhai-about-active #app [class*="prose"],
body.yuanhai-about-active #app [class*="markdown"],
body.yuanhai-about-active #app .rich-text,
body.yuanhai-about-active #app [class*="rich-text"] {
  color: rgba(245, 240, 230, 0.82) !important;
}

body.yuanhai-about-active #app [class*="prose"] h1,
body.yuanhai-about-active #app [class*="prose"] h2,
body.yuanhai-about-active #app [class*="prose"] h3,
body.yuanhai-about-active #app [class*="markdown"] h1,
body.yuanhai-about-active #app [class*="markdown"] h2,
body.yuanhai-about-active #app [class*="markdown"] h3 {
  color: #f5f0e6 !important;
}

body.yuanhai-about-active #app [class*="prose"] a,
body.yuanhai-about-active #app [class*="markdown"] a {
  color: #e2c48a !important;
}

@media (max-width: 760px) {
  body.yuanhai-about-active #app .agreement-rich-text,
  body.yuanhai-about-active #app [class*="rounded-[40px]"],
  body.yuanhai-about-active #app [class*="rounded-[32px]"] {
    padding-left: 18px !important;
    padding-right: 18px !important;
  }

  body.yuanhai-about-active #app .agreement-rich-text table {
    display: block;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }
}
html.yuanhai-prelanding #app {
  display: none !important;
}

body.yuanhai-auth-active,
body.yuanhai-auth-active #app,
body.yuanhai-auth-active uni-page-body,
body.yuanhai-auth-active .uni-page-body {
  min-height: 100%;
  background:
    radial-gradient(circle at 50% -12%, rgba(195, 145, 70, 0.2), transparent 34%),
    linear-gradient(155deg, #fbf8f1 0%, #f2eadc 54%, #e8decd 100%) !important;
}

body.yuanhai-auth-active #app [class*="max-w-md"] {
  position: relative;
}

body.yuanhai-auth-active #app [class*="border-[#ece6dc]"],
body.yuanhai-auth-active #app [class*="border-[#f0b8ae]"] {
  border-color: rgba(139, 99, 42, 0.24) !important;
  background: rgba(255, 253, 248, 0.86) !important;
  box-shadow: 0 14px 34px rgba(71, 48, 19, 0.08) !important;
  backdrop-filter: blur(14px);
  transition: border-color 180ms ease, box-shadow 180ms ease, transform 180ms ease;
}

body.yuanhai-auth-active #app [class*="border-[#ece6dc]"]:focus-within,
body.yuanhai-auth-active #app [class*="border-[#f0b8ae]"]:focus-within {
  border-color: rgba(176, 119, 38, 0.68) !important;
  box-shadow: 0 16px 38px rgba(130, 83, 22, 0.14), 0 0 0 3px rgba(195, 145, 70, 0.1) !important;
  transform: translateY(-1px);
}

body.yuanhai-auth-active #app [class*="bg-[#F0F0F0]"] {
  border: 1px solid rgba(139, 99, 42, 0.16);
  background: rgba(255, 253, 248, 0.64) !important;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.84), 0 10px 30px rgba(71, 48, 19, 0.06);
  backdrop-filter: blur(12px);
}

body.yuanhai-auth-active #app [class*="linear-gradient(135deg,#1a1511"] {
  border-color: rgba(205, 156, 80, 0.72) !important;
  background: linear-gradient(135deg, #263a43 0%, #0b1822 100%) !important;
  box-shadow: 0 16px 38px rgba(11, 24, 34, 0.22) !important;
}

body.yuanhai-auth-active #app input,
body.yuanhai-auth-active #app .uni-input-input {
  color: #17252d !important;
  -webkit-text-fill-color: #17252d !important;
  caret-color: #a86f20;
}

/*
  Contrast lock for mobile app UI.
  Root cause: wot/wd popups & root-portal sheets keep white surfaces, while
  body.yuanhai-app-active inherits ivory text → white-on-white / same-color text.
  Auth stays light (excluded). Landing is not yuanhai-app-active.
*/
body.yuanhai-app-active:not(.yuanhai-auth-active) {
  /* Do not redefine --wot-color-white as hex — some rules use rgba(var(--wot-color-white), a). */
  --wot-color-bg: #101d2b;
  --wot-color-bg-secondary: #173044;
  --wot-color-title: #f5f0e6;
  --wot-color-content: rgba(245, 240, 230, 0.88);
  --wot-color-secondary: rgba(245, 240, 230, 0.68);
  --wot-color-aid: rgba(245, 240, 230, 0.52);
  --wot-color-border: rgba(232, 215, 180, 0.22);
  --wot-color-border-light: rgba(232, 215, 180, 0.14);
  --wot-color-theme: #c99f4f;
  --wot-button-primary-bg-color: #c99f4f;
  --wot-button-primary-color: #120d07;
  --wot-cell-title-color: #f5f0e6;
  --wot-cell-value-color: rgba(245, 240, 230, 0.78);
  --wot-cell-label-color: rgba(245, 240, 230, 0.58);
  --wot-input-color: #f5f0e6;
  --wot-input-placeholder-color: rgba(245, 240, 230, 0.45);
  --wot-picker-bg: #0d1a28;
  --wot-picker-toolbar-bg: #0d1a28;
  --wot-picker-region-bg-color: #173044;
  --wot-picker-column-color: rgba(245, 240, 230, 0.92);
  --wot-picker-column-disabled-color: rgba(245, 240, 230, 0.35);
  --wot-picker-toolbar-finish-color: #e2c48a;
  --wot-picker-toolbar-cancel-color: rgba(245, 240, 230, 0.72);
  --wot-picker-toolbar-title-color: #f5f0e6;
  --wot-col-picker-selected-color: rgba(245, 240, 230, 0.92);
  --wot-col-picker-list-color: rgba(245, 240, 230, 0.88);
  --wot-col-picker-list-color-tip: rgba(245, 240, 230, 0.55);
  --wot-col-picker-list-color-disabled: rgba(245, 240, 230, 0.28);
  --wot-col-picker-list-color-checked: #e2c48a;
  --wot-action-sheet-bg: #0d1a28;
  --wot-action-sheet-color: #f5f0e6;
  --wot-action-sheet-active-color: #173044;
  --wot-popup-close-color: rgba(245, 240, 230, 0.72);
}

/* Portaled sheets/popups (often outside #app). */
body.yuanhai-app-active:not(.yuanhai-auth-active) .wd-popup-wrapper,
body.yuanhai-app-active:not(.yuanhai-auth-active) .wd-popup,
body.yuanhai-app-active:not(.yuanhai-auth-active) .wd-action-sheet,
body.yuanhai-app-active:not(.yuanhai-auth-active) .yuanhai-night-sheet {
  color: #f5f0e6 !important;
}

body.yuanhai-app-active:not(.yuanhai-auth-active) .wd-popup,
body.yuanhai-app-active:not(.yuanhai-auth-active) .wd-popup__wrapper > .wd-popup,
body.yuanhai-app-active:not(.yuanhai-auth-active) .wd-action-sheet,
body.yuanhai-app-active:not(.yuanhai-auth-active) .wd-picker,
body.yuanhai-app-active:not(.yuanhai-auth-active) .wd-datetime-picker,
body.yuanhai-app-active:not(.yuanhai-auth-active) .wd-picker-view__columns,
body.yuanhai-app-active:not(.yuanhai-auth-active) .wd-cell,
body.yuanhai-app-active:not(.yuanhai-auth-active) uni-root-portal .wd-popup,
body.yuanhai-app-active:not(.yuanhai-auth-active) root-portal .wd-popup {
  background: #0d1a28 !important;
  background-color: #0d1a28 !important;
  border-color: rgba(232, 215, 180, 0.18) !important;
}

/* uni-app native input chrome often keeps a white field. */
body.yuanhai-app-active:not(.yuanhai-auth-active) .uni-input-wrapper,
body.yuanhai-app-active:not(.yuanhai-auth-active) .uni-input-form,
body.yuanhai-app-active:not(.yuanhai-auth-active) .uni-textarea-wrapper,
body.yuanhai-app-active:not(.yuanhai-auth-active) uni-input,
body.yuanhai-app-active:not(.yuanhai-auth-active) uni-textarea {
  background-color: transparent !important;
  color: #f5f0e6 !important;
}

body.yuanhai-app-active:not(.yuanhai-auth-active) .wd-popup__close,
body.yuanhai-app-active:not(.yuanhai-auth-active) [class*="wd-popup__close"] {
  color: rgba(245, 240, 230, 0.78) !important;
  background: transparent !important;
}

body.yuanhai-app-active:not(.yuanhai-auth-active) .wd-picker-view__roller,
body.yuanhai-app-active:not(.yuanhai-auth-active) [class*="wd-picker-view__roller"] {
  background: #173044 !important;
}

/* Year/month/day wheels: never leave black ink on night panels. */
body.yuanhai-app-active:not(.yuanhai-auth-active) .wd-picker-view,
body.yuanhai-app-active:not(.yuanhai-auth-active) .wd-picker-view__columns,
body.yuanhai-app-active:not(.yuanhai-auth-active) .wd-picker-view-column,
body.yuanhai-app-active:not(.yuanhai-auth-active) [class*="wd-picker-view-column"],
body.yuanhai-app-active:not(.yuanhai-auth-active) .wd-picker-view-column__item,
body.yuanhai-app-active:not(.yuanhai-auth-active) [class*="wd-picker-view-column__item"],
body.yuanhai-app-active:not(.yuanhai-auth-active) .wd-datetime-picker,
body.yuanhai-app-active:not(.yuanhai-auth-active) .wd-datetime-picker__wraper,
body.yuanhai-app-active:not(.yuanhai-auth-active) .wd-picker__action,
body.yuanhai-app-active:not(.yuanhai-auth-active) .wd-picker__title,
body.yuanhai-app-active:not(.yuanhai-auth-active) uni-picker-view,
body.yuanhai-app-active:not(.yuanhai-auth-active) uni-picker-view-column {
  color: #f5f0e6 !important;
}

body.yuanhai-app-active:not(.yuanhai-auth-active) .wd-picker-view-column *,
body.yuanhai-app-active:not(.yuanhai-auth-active) [class*="wd-picker-view-column"] *,
body.yuanhai-app-active:not(.yuanhai-auth-active) uni-picker-view-column * {
  color: #f5f0e6 !important;
  -webkit-text-fill-color: #f5f0e6 !important;
}

body.yuanhai-app-active:not(.yuanhai-auth-active) .wd-picker-view__mask,
body.yuanhai-app-active:not(.yuanhai-auth-active) [class*="wd-picker-view__mask"] {
  background:
    linear-gradient(180deg, rgb(13 26 40 / 96%), rgb(13 26 40 / 28%)),
    linear-gradient(0deg, rgb(13 26 40 / 96%), rgb(13 26 40 / 28%)) !important;
}

body.yuanhai-app-active:not(.yuanhai-auth-active) .wd-picker__cancel,
body.yuanhai-app-active:not(.yuanhai-auth-active) [class*="wd-picker__cancel"] {
  color: rgba(245, 240, 230, 0.72) !important;
}

body.yuanhai-app-active:not(.yuanhai-auth-active) .wd-picker__confirm,
body.yuanhai-app-active:not(.yuanhai-auth-active) [class*="wd-picker__confirm"],
body.yuanhai-app-active:not(.yuanhai-auth-active) .wd-picker__action--confirm {
  color: #e2c48a !important;
}

body.yuanhai-app-active:not(.yuanhai-auth-active) .wd-action-sheet__action,
body.yuanhai-app-active:not(.yuanhai-auth-active) .wd-action-sheet__cancel,
body.yuanhai-app-active:not(.yuanhai-auth-active) .wd-picker__toolbar,
body.yuanhai-app-active:not(.yuanhai-auth-active) .wd-datetime-picker__region {
  background: #0d1a28 !important;
  color: #f5f0e6 !important;
  border-color: rgba(232, 215, 180, 0.16) !important;
}

body.yuanhai-app-active:not(.yuanhai-auth-active) .wd-datetime-picker__region.is-active,
body.yuanhai-app-active:not(.yuanhai-auth-active) [class*="wd-datetime-picker__region"][class*="is-active"] {
  background: #c99f4f !important;
  color: #120d07 !important;
}

/* Selected chips (性别/公历 etc.): force light ink on dark fills. */
body.yuanhai-app-active:not(.yuanhai-auth-active) [class*="bg-zinc-800"],
body.yuanhai-app-active:not(.yuanhai-auth-active) [class*="bg-zinc-800"] *,
body.yuanhai-app-active:not(.yuanhai-auth-active) [class*="bg-zinc-900"],
body.yuanhai-app-active:not(.yuanhai-auth-active) [class*="bg-zinc-900"] *,
body.yuanhai-app-active:not(.yuanhai-auth-active) [class~="bg-black"],
body.yuanhai-app-active:not(.yuanhai-auth-active) [class~="bg-black"] * {
  color: #f5f0e6 !important;
  -webkit-text-fill-color: #f5f0e6 !important;
}

/* Region / birthplace col-picker: same night contrast as date wheels. */
body.yuanhai-app-active:not(.yuanhai-auth-active) .wd-col-picker,
body.yuanhai-app-active:not(.yuanhai-auth-active) .wd-col-picker__list,
body.yuanhai-app-active:not(.yuanhai-auth-active) .wd-col-picker__list-container,
body.yuanhai-app-active:not(.yuanhai-auth-active) .wd-col-picker__selected,
body.yuanhai-app-active:not(.yuanhai-auth-active) .wd-col-picker__selected-container,
body.yuanhai-app-active:not(.yuanhai-auth-active) .wd-col-picker__selected-item,
body.yuanhai-app-active:not(.yuanhai-auth-active) .wd-col-picker__list-item,
body.yuanhai-app-active:not(.yuanhai-auth-active) .wd-col-picker__list-item-label,
body.yuanhai-app-active:not(.yuanhai-auth-active) [class*="wd-col-picker__list"],
body.yuanhai-app-active:not(.yuanhai-auth-active) [class*="wd-col-picker__selected"] {
  color: #f5f0e6 !important;
  -webkit-text-fill-color: #f5f0e6 !important;
  background-color: transparent !important;
}

body.yuanhai-app-active:not(.yuanhai-auth-active) .wd-col-picker__list,
body.yuanhai-app-active:not(.yuanhai-auth-active) .wd-col-picker__list-container,
body.yuanhai-app-active:not(.yuanhai-auth-active) .wd-col-picker__selected-container {
  background: #0d1a28 !important;
  background-color: #0d1a28 !important;
}

body.yuanhai-app-active:not(.yuanhai-auth-active) .wd-col-picker__list-item *,
body.yuanhai-app-active:not(.yuanhai-auth-active) .wd-col-picker__selected-item *,
body.yuanhai-app-active:not(.yuanhai-auth-active) [class*="wd-col-picker__list-item"] * {
  color: #f5f0e6 !important;
  -webkit-text-fill-color: #f5f0e6 !important;
}

body.yuanhai-app-active:not(.yuanhai-auth-active) .wd-col-picker__list-item.is-selected,
body.yuanhai-app-active:not(.yuanhai-auth-active) .wd-col-picker__list-item.is-selected *,
body.yuanhai-app-active:not(.yuanhai-auth-active) .wd-col-picker__checked,
body.yuanhai-app-active:not(.yuanhai-auth-active) [class*="wd-col-picker__list-item"].is-selected,
body.yuanhai-app-active:not(.yuanhai-auth-active) [class*="wd-col-picker__checked"] {
  color: #e2c48a !important;
  -webkit-text-fill-color: #e2c48a !important;
}

body.yuanhai-app-active:not(.yuanhai-auth-active) .wd-col-picker__list-item-tip,
body.yuanhai-app-active:not(.yuanhai-auth-active) [class*="wd-col-picker__list-item-tip"] {
  color: rgba(245, 240, 230, 0.55) !important;
  -webkit-text-fill-color: rgba(245, 240, 230, 0.55) !important;
}

body.yuanhai-app-active:not(.yuanhai-auth-active) .wd-col-picker__selected-line,
body.yuanhai-app-active:not(.yuanhai-auth-active) [class*="wd-col-picker__selected-line"] {
  background: #e2c48a !important;
}

body.yuanhai-app-active:not(.yuanhai-auth-active) .wd-col-picker__arrow,
body.yuanhai-app-active:not(.yuanhai-auth-active) [class*="wd-col-picker__arrow"] {
  color: rgba(245, 240, 230, 0.55) !important;
}

body.yuanhai-app-active:not(.yuanhai-auth-active) .wd-col-picker .wd-cell,
body.yuanhai-app-active:not(.yuanhai-auth-active) .wd-col-picker .wd-cell__title,
body.yuanhai-app-active:not(.yuanhai-auth-active) .wd-col-picker .wd-cell__value,
body.yuanhai-app-active:not(.yuanhai-auth-active) .wd-col-picker__cell,
body.yuanhai-app-active:not(.yuanhai-auth-active) .wd-col-picker__cell .wd-cell__value {
  background: #0d1a28 !important;
  color: #f5f0e6 !important;
  -webkit-text-fill-color: #f5f0e6 !important;
}

body.yuanhai-app-active:not(.yuanhai-auth-active) .wd-col-picker__cell--placeholder .wd-cell__value,
body.yuanhai-app-active:not(.yuanhai-auth-active) [class*="wd-col-picker__cell--placeholder"] .wd-cell__value {
  color: rgba(245, 240, 230, 0.48) !important;
  -webkit-text-fill-color: rgba(245, 240, 230, 0.48) !important;
}

/* Tailwind surfaces remapped even when teleported outside #app. */
body.yuanhai-app-active:not(.yuanhai-auth-active) .wd-popup [class~="bg-white"],
body.yuanhai-app-active:not(.yuanhai-auth-active) .wd-popup [class~="bg-white/90"],
body.yuanhai-app-active:not(.yuanhai-auth-active) .wd-popup [class*="bg-white/"],
body.yuanhai-app-active:not(.yuanhai-auth-active) .wd-popup [class*="bg-[rgba(255,255,255"],
body.yuanhai-app-active:not(.yuanhai-auth-active) .wd-popup [class*="bg-[rgb(255,255,255"],
body.yuanhai-app-active:not(.yuanhai-auth-active) .wd-popup [class~="bg-zinc-50"],
body.yuanhai-app-active:not(.yuanhai-auth-active) .wd-popup [class*="bg-zinc-50"],
body.yuanhai-app-active:not(.yuanhai-auth-active) .wd-popup [class~="bg-zinc-100"],
body.yuanhai-app-active:not(.yuanhai-auth-active) .wd-popup [class*="bg-zinc-100"],
body.yuanhai-app-active:not(.yuanhai-auth-active) .wd-popup [class*="bg-amber-50"],
body.yuanhai-app-active:not(.yuanhai-auth-active) .wd-popup [class*="bg-orange-50"],
body.yuanhai-app-active:not(.yuanhai-auth-active) .wd-popup [class*="bg-yellow-50"],
body.yuanhai-app-active:not(.yuanhai-auth-active) .wd-action-sheet [class~="bg-white"],
body.yuanhai-app-active:not(.yuanhai-auth-active) uni-root-portal [class~="bg-white"],
body.yuanhai-app-active:not(.yuanhai-auth-active) root-portal [class~="bg-white"],
body.yuanhai-app-active:not(.yuanhai-auth-active) uni-root-portal [class*="bg-zinc-50"],
body.yuanhai-app-active:not(.yuanhai-auth-active) root-portal [class*="bg-zinc-50"],
body.yuanhai-app-active:not(.yuanhai-auth-active) uni-root-portal [class*="bg-zinc-100"],
body.yuanhai-app-active:not(.yuanhai-auth-active) root-portal [class*="bg-zinc-100"] {
  background-color: #0d1a28 !important;
  color: #f5f0e6 !important;
}

body.yuanhai-app-active:not(.yuanhai-auth-active) .wd-popup [class~="bg-zinc-200"],
body.yuanhai-app-active:not(.yuanhai-auth-active) .wd-popup [class~="bg-zinc-300"],
body.yuanhai-app-active:not(.yuanhai-auth-active) uni-root-portal [class~="bg-zinc-200"],
body.yuanhai-app-active:not(.yuanhai-auth-active) root-portal [class~="bg-zinc-200"] {
  background-color: #173044 !important;
  color: #f5f0e6 !important;
}

body.yuanhai-app-active:not(.yuanhai-auth-active) .wd-popup [class~="bg-zinc-800"],
body.yuanhai-app-active:not(.yuanhai-auth-active) .wd-popup [class~="bg-zinc-900"],
body.yuanhai-app-active:not(.yuanhai-auth-active) .wd-popup [class*="bg-zinc-800"],
body.yuanhai-app-active:not(.yuanhai-auth-active) .wd-popup [class*="bg-zinc-900"],
body.yuanhai-app-active:not(.yuanhai-auth-active) uni-root-portal [class~="bg-zinc-800"],
body.yuanhai-app-active:not(.yuanhai-auth-active) uni-root-portal [class~="bg-zinc-900"],
body.yuanhai-app-active:not(.yuanhai-auth-active) root-portal [class~="bg-zinc-800"],
body.yuanhai-app-active:not(.yuanhai-auth-active) root-portal [class~="bg-zinc-900"] {
  background-color: #101d2b !important;
  color: #f5f0e6 !important;
  border-color: rgba(232, 215, 180, 0.34) !important;
}

body.yuanhai-app-active:not(.yuanhai-auth-active) .wd-popup [class~="text-zinc-900"],
body.yuanhai-app-active:not(.yuanhai-auth-active) .wd-popup [class~="text-zinc-800"],
body.yuanhai-app-active:not(.yuanhai-auth-active) .wd-popup [class~="text-zinc-700"],
body.yuanhai-app-active:not(.yuanhai-auth-active) .wd-popup [class~="text-black"],
body.yuanhai-app-active:not(.yuanhai-auth-active) .wd-popup [class~="text-white"],
body.yuanhai-app-active:not(.yuanhai-auth-active) .wd-popup [class*="text-white"],
body.yuanhai-app-active:not(.yuanhai-auth-active) .wd-popup [class*="text-zinc-900"],
body.yuanhai-app-active:not(.yuanhai-auth-active) .wd-popup [class*="text-zinc-800"],
body.yuanhai-app-active:not(.yuanhai-auth-active) uni-root-portal [class~="text-zinc-900"],
body.yuanhai-app-active:not(.yuanhai-auth-active) uni-root-portal [class~="text-white"],
body.yuanhai-app-active:not(.yuanhai-auth-active) root-portal [class~="text-zinc-900"],
body.yuanhai-app-active:not(.yuanhai-auth-active) root-portal [class~="text-white"] {
  color: #f5f0e6 !important;
}

/* Unselected chips / muted labels: keep readable on night panels. */
body.yuanhai-app-active:not(.yuanhai-auth-active) .wd-popup [class~="text-zinc-600"],
body.yuanhai-app-active:not(.yuanhai-auth-active) .wd-popup [class~="text-zinc-500"],
body.yuanhai-app-active:not(.yuanhai-auth-active) .wd-popup [class~="text-zinc-400"],
body.yuanhai-app-active:not(.yuanhai-auth-active) .wd-popup [class~="text-gray-600"],
body.yuanhai-app-active:not(.yuanhai-auth-active) .wd-popup [class~="text-gray-500"],
body.yuanhai-app-active:not(.yuanhai-auth-active) .wd-popup [class*="text-zinc-500"],
body.yuanhai-app-active:not(.yuanhai-auth-active) .wd-popup [class*="text-zinc-400"],
body.yuanhai-app-active:not(.yuanhai-auth-active) .wd-popup [class*="text-zinc-300"],
body.yuanhai-app-active:not(.yuanhai-auth-active) uni-root-portal [class~="text-zinc-500"],
body.yuanhai-app-active:not(.yuanhai-auth-active) uni-root-portal [class~="text-zinc-400"],
body.yuanhai-app-active:not(.yuanhai-auth-active) root-portal [class~="text-zinc-500"],
body.yuanhai-app-active:not(.yuanhai-auth-active) root-portal [class~="text-zinc-400"] {
  color: rgba(245, 240, 230, 0.78) !important;
}

body.yuanhai-app-active:not(.yuanhai-auth-active) .wd-popup [class*="border-zinc"],
body.yuanhai-app-active:not(.yuanhai-auth-active) .wd-popup [class*="border-gray"],
body.yuanhai-app-active:not(.yuanhai-auth-active) uni-root-portal [class*="border-zinc"],
body.yuanhai-app-active:not(.yuanhai-auth-active) root-portal [class*="border-zinc"] {
  border-color: rgba(232, 215, 180, 0.22) !important;
}

/* Gold CTAs inside popups: dark ink on gold. */
body.yuanhai-app-active:not(.yuanhai-auth-active) .wd-popup [class~="bg-amber-500"],
body.yuanhai-app-active:not(.yuanhai-auth-active) .wd-popup [class~="bg-orange-500"],
body.yuanhai-app-active:not(.yuanhai-auth-active) .wd-popup [class*="bg-orange-500"],
body.yuanhai-app-active:not(.yuanhai-auth-active) .wd-popup [class*="bg-amber-500"],
body.yuanhai-app-active:not(.yuanhai-auth-active) .wd-popup button[class*="bg-zinc-600"],
body.yuanhai-app-active:not(.yuanhai-auth-active) uni-root-portal [class*="bg-amber-500"],
body.yuanhai-app-active:not(.yuanhai-auth-active) uni-root-portal [class*="bg-orange-500"],
body.yuanhai-app-active:not(.yuanhai-auth-active) root-portal [class*="bg-amber-500"],
body.yuanhai-app-active:not(.yuanhai-auth-active) root-portal [class*="bg-orange-500"] {
  background-color: #c99f4f !important;
  color: #120d07 !important;
  border-color: rgba(232, 215, 180, 0.4) !important;
}

body.yuanhai-app-active:not(.yuanhai-auth-active) .wd-popup [class*="bg-amber-500"] *,
body.yuanhai-app-active:not(.yuanhai-auth-active) .wd-popup [class*="bg-orange-500"] *,
body.yuanhai-app-active:not(.yuanhai-auth-active) uni-root-portal [class*="bg-amber-500"] *,
body.yuanhai-app-active:not(.yuanhai-auth-active) uni-root-portal [class*="bg-orange-500"] *,
body.yuanhai-app-active:not(.yuanhai-auth-active) root-portal [class*="bg-amber-500"] *,
body.yuanhai-app-active:not(.yuanhai-auth-active) root-portal [class*="bg-orange-500"] * {
  color: #120d07 !important;
}

/* Inputs / textareas everywhere in app (incl. portaled forms). */
body.yuanhai-app-active:not(.yuanhai-auth-active) input,
body.yuanhai-app-active:not(.yuanhai-auth-active) textarea,
body.yuanhai-app-active:not(.yuanhai-auth-active) select,
body.yuanhai-app-active:not(.yuanhai-auth-active) .uni-input-input,
body.yuanhai-app-active:not(.yuanhai-auth-active) .uni-textarea-textarea,
body.yuanhai-app-active:not(.yuanhai-auth-active) uni-input,
body.yuanhai-app-active:not(.yuanhai-auth-active) uni-textarea,
body.yuanhai-app-active:not(.yuanhai-auth-active) .wd-input__inner,
body.yuanhai-app-active:not(.yuanhai-auth-active) .wd-textarea__inner,
body.yuanhai-app-active:not(.yuanhai-auth-active) [class*="wd-input"] input,
body.yuanhai-app-active:not(.yuanhai-auth-active) [contenteditable="true"] {
  color: #f5f0e6 !important;
  -webkit-text-fill-color: #f5f0e6 !important;
  caret-color: #e2c48a !important;
}

body.yuanhai-app-active:not(.yuanhai-auth-active) input::placeholder,
body.yuanhai-app-active:not(.yuanhai-auth-active) textarea::placeholder,
body.yuanhai-app-active:not(.yuanhai-auth-active) .uni-input-placeholder,
body.yuanhai-app-active:not(.yuanhai-auth-active) .uni-textarea-placeholder,
body.yuanhai-app-active:not(.yuanhai-auth-active) .wd-input__placeholder,
body.yuanhai-app-active:not(.yuanhai-auth-active) [class*="input-placeholder"],
body.yuanhai-app-active:not(.yuanhai-auth-active) [class*="textarea-placeholder"] {
  color: rgba(245, 240, 230, 0.48) !important;
  -webkit-text-fill-color: rgba(245, 240, 230, 0.48) !important;
  opacity: 1 !important;
}

/* Light inline surfaces that slip past Tailwind class remaps. */
body.yuanhai-app-active:not(.yuanhai-auth-active) [style*="background: #fff"],
body.yuanhai-app-active:not(.yuanhai-auth-active) [style*="background:#fff"],
body.yuanhai-app-active:not(.yuanhai-auth-active) [style*="background: #FFF"],
body.yuanhai-app-active:not(.yuanhai-auth-active) [style*="background:#FFF"],
body.yuanhai-app-active:not(.yuanhai-auth-active) [style*="background: white"],
body.yuanhai-app-active:not(.yuanhai-auth-active) [style*="background:white"],
body.yuanhai-app-active:not(.yuanhai-auth-active) [style*="background-color: #fff"],
body.yuanhai-app-active:not(.yuanhai-auth-active) [style*="background-color:#fff"],
body.yuanhai-app-active:not(.yuanhai-auth-active) [style*="background-color: rgb(255, 255, 255)"],
body.yuanhai-app-active:not(.yuanhai-auth-active) [style*="background-color:rgb(255, 255, 255)"],
body.yuanhai-app-active:not(.yuanhai-auth-active) [style*="background-color: rgb(255,255,255)"],
body.yuanhai-app-active:not(.yuanhai-auth-active) [style*="background-color:rgb(255,255,255)"],
body.yuanhai-app-active:not(.yuanhai-auth-active) [style*="background: #f5f5f5"],
body.yuanhai-app-active:not(.yuanhai-auth-active) [style*="background:#f5f5f5"],
body.yuanhai-app-active:not(.yuanhai-auth-active) [style*="background-color: #f5f5f5"],
body.yuanhai-app-active:not(.yuanhai-auth-active) [style*="background-color:#f5f5f5"] {
  background: #0d1a28 !important;
  background-color: #0d1a28 !important;
  color: #f5f0e6 !important;
}

/* Soft muted text that was too close to pale surfaces. */
body.yuanhai-app-active:not(.yuanhai-auth-active) #app [class~="text-zinc-300"],
body.yuanhai-app-active:not(.yuanhai-auth-active) #app [class*="text-zinc-300"],
body.yuanhai-app-active:not(.yuanhai-auth-active) #app [class~="text-gray-400"],
body.yuanhai-app-active:not(.yuanhai-auth-active) #app [class*="text-gray-400"] {
  color: rgba(245, 240, 230, 0.72) !important;
}

/* Ensure #app inputs also beat uni -webkit-text-fill defaults. */
body.yuanhai-app-active:not(.yuanhai-auth-active) #app input,
body.yuanhai-app-active:not(.yuanhai-auth-active) #app textarea,
body.yuanhai-app-active:not(.yuanhai-auth-active) #app .uni-input-input,
body.yuanhai-app-active:not(.yuanhai-auth-active) #app .uni-textarea-textarea {
  color: #f5f0e6 !important;
  -webkit-text-fill-color: #f5f0e6 !important;
  caret-color: #e2c48a !important;
}
