:root {
  --paper: #f7f2e7;
  --paper-strong: #fffdf8;
  --paper-subtle: #f1ece2;
  --ink: #242724;
  --dim: #65675f;
  --faint: #62645d;
  --line: rgba(116, 93, 55, .16);
  --gold: #a98a55;
  --gold-deep: #92703b;
  --gold-fill: #9a743a;
  --gold-wash: #f3ead8;
  --sans: 'Noto Sans SC', system-ui, sans-serif;
  --serif: 'Noto Serif SC', serif;
}

* { box-sizing: border-box; }

body {
  min-width: 320px;
  margin: 0;
  color: var(--ink);
  background: radial-gradient(circle at 0 0, rgba(208, 177, 116, .18), transparent 30rem), var(--paper);
  font-family: var(--sans);
}

.sr-only {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

.home-main {
  width: min(920px, calc(100% - 40px));
  margin: 0 auto;
  padding: clamp(42px, 7vw, 76px) 0 84px;
}

.home-section { margin: 0; }

.home-section header {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 14px;
}

.home-section header p {
  margin: 0;
  color: var(--gold-deep);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 2px;
}

.home-section h2 {
  margin: 7px 0 0;
  font: 600 19px/1.2 var(--serif);
}

.today-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  --tech-purple: #6856c7;
  --tech-lavender: #f3f0ff;
  --tech-mint: #e8f7f2;
  --tech-blue: #eaf3fc;
  --tech-blush: #fceff2;
  --tech-butter: #fff4d9;
}

.today-grid a {
  --tile-tint: var(--tech-lavender);
  --tile-ink: var(--tech-purple);
  min-height: 112px;
  display: flex;
  align-items: center;
  gap: 13px;
  padding: 15px;
  overflow: hidden;
  border: 1px solid color-mix(in srgb, var(--tech-purple) 14%, var(--line));
  border-radius: 17px;
  color: inherit;
  background: linear-gradient(145deg, var(--paper-strong), color-mix(in srgb, var(--paper-strong) 80%, var(--tile-tint)));
  box-shadow: 0 8px 24px rgba(67, 52, 126, .05);
  text-decoration: none;
  transition: transform .2s ease, border-color .2s ease, box-shadow .2s ease;
}

.today-grid a:nth-child(2) { --tile-tint: var(--tech-blush); --tile-ink: #a45170; }
.today-grid a:nth-child(3) { --tile-tint: var(--tech-mint); --tile-ink: #347a69; }
.today-grid a:nth-child(4) { --tile-tint: var(--tech-blue); --tile-ink: #496fa5; }
.today-grid a:nth-child(5) { --tile-tint: var(--tech-butter); --tile-ink: #9a7321; }
.today-grid a:nth-child(6) { --tile-tint: color-mix(in srgb, var(--tech-lavender) 70%, var(--tech-blue)); }

.today-grid a:hover,
.today-grid a:focus-visible {
  border-color: color-mix(in srgb, var(--tech-purple) 46%, var(--line));
  box-shadow: 0 13px 30px rgba(67, 52, 126, .11);
  transform: translateY(-2px);
}

.today-entry-image {
  width: 72px;
  height: 72px;
  display: block;
  flex: 0 0 72px;
  object-fit: cover;
  object-position: center;
  border: 1px solid color-mix(in srgb, var(--tile-ink) 24%, transparent);
  border-radius: 16px;
  background: var(--tile-tint);
  box-shadow: 0 5px 14px rgba(47, 41, 109, .12);
}

.today-grid span {
  min-width: 0;
  display: grid;
  gap: 5px;
}

.today-grid strong { font: 600 15px/1.35 var(--serif); }

.today-grid small {
  color: var(--dim);
  font-size: 11px;
  line-height: 1.55;
  white-space: normal;
}

.today-grid i {
  margin-left: auto;
  color: var(--tech-purple);
  font: 400 21px/0 var(--serif);
  font-style: normal;
}

html[data-theme="dark"] body {
  --paper: #20211f;
  --paper-strong: #292a27;
  --paper-subtle: #30312d;
  --ink: #f1ecdf;
  --dim: #b8b3a8;
  --faint: #9d9e95;
  --line: rgba(228, 214, 182, .16);
  --gold-wash: #453b2c;
  background: radial-gradient(circle at 0 0, rgba(170, 131, 72, .16), transparent 30rem), var(--paper);
}

:root[data-theme='light'] {
  --paper: #f6f5fb;
  --paper-strong: #fff;
  --paper-subtle: #f0edff;
  --ink: #2e2b44;
  --dim: #6f6b82;
  --faint: #68647a;
  --line: rgba(104, 88, 199, .14);
  --gold: #6858c7;
  --gold-deep: #2f296d;
  --gold-fill: #6858c7;
  --gold-wash: #ece9fb;
}

:root[data-theme='light'] body {
  background: radial-gradient(circle at 0 0, rgba(104, 88, 199, .16), transparent 31rem),
    radial-gradient(circle at 100% 14%, rgba(132, 211, 193, .20), transparent 29rem), var(--paper);
}

:root[data-theme='light'] .today-grid {
  --tech-purple: #6858c7;
  --tech-lavender: #eeebfb;
  --tech-mint: #e4f6f1;
  --tech-blue: #e8f2fb;
  --tech-blush: #f8e8ee;
  --tech-butter: #fff3d8;
}

:root[data-theme='light'] .today-grid a { box-shadow: 0 8px 24px rgba(47, 41, 109, .06); }

:root[data-theme='light'] .today-grid a:hover,
:root[data-theme='light'] .today-grid a:focus-visible { box-shadow: 0 13px 30px rgba(47, 41, 109, .12); }

@media (max-width: 980px) {
  .home-main { width: min(100% - 28px, 720px); padding-top: 35px; }
  .today-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .today-grid a { min-height: 106px; }
  .today-entry-image { width: 66px; height: 66px; flex-basis: 66px; }
}

@media (max-width: 620px) {
  .home-main { width: min(100% - 22px, 720px); padding-top: 24px; }
  .today-grid { grid-template-columns: 1fr; }
  .today-grid a { min-height: 88px; padding: 12px 14px; }
  .today-entry-image { width: 60px; height: 60px; flex-basis: 60px; border-radius: 14px; }
}

@media (prefers-reduced-motion: reduce) {
  .today-grid a { transition: none; }
}

/* 首页只以有效账号会话切换游客/会员版式；游客 DOM 默认即可操作。 */
[hidden] { display: none !important; }
.home-main { width: min(1180px, calc(100% - 48px)); }
.home-audience { min-width: 0; }
.guest-play { padding: clamp(26px, 4vw, 46px); border: 1px solid rgba(104, 88, 199, .27); border-radius: 28px; background: rgba(255, 255, 255, .82); box-shadow: 0 20px 58px rgba(47, 41, 109, .07); }
.home-section-head > div > span { display: block; margin-top: 8px; color: var(--dim); font-size: 12px; line-height: 1.65; }
.home-section-head > a { color: var(--gold-deep); font-size: 12px; font-weight: 700; text-decoration: none; white-space: nowrap; }
.home-section-head > a i { font: 400 20px/0 var(--serif); font-style: normal; }
.guest-recent { min-height: 126px; display: flex; align-items: center; justify-content: space-between; gap: 24px; margin-top: 24px; padding: 25px 31px; border: 1px solid rgba(104, 88, 199, .27); border-radius: 24px; background: rgba(255, 255, 255, .78); box-shadow: 0 16px 44px rgba(47, 41, 109, .055); }
.guest-recent p { margin: 0; color: var(--gold-deep); font-size: 11px; font-weight: 700; letter-spacing: 1.6px; }
.guest-recent h2 { margin: 7px 0 5px; font: 600 21px/1.4 var(--serif); }
.guest-recent div > span { color: var(--dim); font-size: 11px; }
.guest-recent > a { min-height: 44px; display: inline-flex; align-items: center; gap: 6px; padding: 0 18px; border-radius: 999px; color: #fff; background: #6858c7; font-size: 12px; font-weight: 700; text-decoration: none; white-space: nowrap; }
.guest-recent > a i { font: 400 20px/0 var(--serif); font-style: normal; }

.daily-fortune-card { --purple: #6858c7; --deep: #2f296d; --mint: #4a9b88; --blue: #5a7fc0; --rose: #b65e7e; --amber: #b5892c; position: relative; min-height: 430px; overflow: hidden; border: 1px solid rgba(104, 88, 199, .42); border-radius: 30px; background: rgba(255, 255, 255, .88); box-shadow: 0 22px 68px rgba(47, 41, 109, .08); }
.daily-fortune-card::before,.daily-fortune-card::after { content: ''; position: absolute; border-radius: 50%; pointer-events: none; }
.daily-fortune-card::before { left: -170px; top: -210px; width: 390px; height: 390px; background: radial-gradient(circle, rgba(104, 88, 199, .13), transparent 68%); }
.daily-fortune-card::after { right: -150px; bottom: -240px; width: 360px; height: 360px; background: radial-gradient(circle, rgba(74, 155, 136, .11), transparent 68%); }
.daily-fortune-ready,.daily-fortune-empty,.daily-fortune-loading { position: relative; z-index: 1; }
.daily-fortune-ready { padding: clamp(28px, 4vw, 48px); }
.daily-fortune-head { display: grid; grid-template-columns: minmax(0,1fr) 210px; grid-template-rows: auto auto; align-items: start; gap: 12px 18px; padding-bottom: 29px; border-bottom: 1px solid var(--line); }
.daily-fortune-heading { min-width: 0; max-width: 940px; }
.daily-fortune-heading > p,.daily-fortune-empty-copy > p { margin: 0; color: var(--deep); font-size: 11px; font-weight: 700; letter-spacing: 1.5px; }
.daily-fortune-heading > .daily-fortune-quote-label { margin-top: 12px; color: var(--mint); font-size: 11.5px; letter-spacing: 2px; }
.daily-fortune-heading blockquote { max-width: 820px; margin: 7px 0 0; color: var(--deep); font: 600 clamp(23px, 2.7vw, 34px)/1.55 var(--serif); letter-spacing: -.02em; text-wrap: balance; }
.daily-fortune-scene { position: relative; grid-column: 2; grid-row: 1 / span 2; min-height: 174px; align-self: stretch; overflow: hidden; border: 1px solid rgba(104,88,199,.13); border-radius: 21px; background: #e9e2d5; box-shadow: 0 13px 28px rgba(47,41,109,.10); }
.daily-fortune-scene::after { content: ''; position: absolute; inset: 30% 0 0; background: linear-gradient(180deg,transparent,rgba(22,37,33,.68)); }
.daily-fortune-scene img { width: 100%; height: 100%; display: block; object-fit: cover; object-position: 57% 62%; }
.daily-fortune-scene span { position: absolute; z-index: 1; inset: auto 14px 13px; color: #fff; text-shadow: 0 1px 10px rgba(0,0,0,.28); }
.daily-fortune-scene b,.daily-fortune-scene small { display: block; }.daily-fortune-scene b { font: 600 13px/1.35 var(--serif); letter-spacing: .8px; }.daily-fortune-scene small { margin-top: 3px; color: rgba(255,255,255,.86); font-size: 11.5px; letter-spacing: .5px; }
.daily-fortune-share { min-height: 44px; width: max-content; display: inline-flex; align-items: center; justify-content: center; gap: 7px; padding: 0 15px; border: 1px solid rgba(74,155,136,.34); border-radius: 999px; color: #fff; background: linear-gradient(135deg,#4a9b88,#397e70); box-shadow: 0 8px 18px rgba(57,126,112,.15); font: 700 12px/1 var(--sans); cursor: pointer; transition: border-color .2s ease,background .2s ease,transform .2s ease; }
.daily-fortune-share:hover,.daily-fortune-share:focus-visible { border-color: rgba(74,155,136,.7); outline: 0; background: linear-gradient(135deg,#55aa96,#397e70); transform: translateY(-1px); }
.daily-fortune-share svg { width: 15px; height: 15px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.daily-fortune-overview { display: grid; grid-template-columns: minmax(300px, .95fr) minmax(0, 1.65fr); gap: clamp(30px, 5vw, 72px); align-items: center; padding: 36px 0 29px; }
.fortune-overall > p:first-child { margin: 0 0 12px; color: var(--dim); font-size: 12px; font-weight: 700; letter-spacing: .5px; }
.fortune-overall-value { display: flex; align-items: flex-end; gap: 8px; min-height: 104px; }
.fortune-overall-value strong { font: 500 clamp(76px, 8vw, 108px)/.9 var(--serif); letter-spacing: -.07em; }
.fortune-overall-value span { margin-bottom: 9px; color: var(--deep); font-size: 18px; font-weight: 700; }
.fortune-overall > p:nth-of-type(2) { max-width: 430px; margin: 15px 0 0; color: var(--dim); font: 400 14px/1.85 var(--serif); }
.fortune-hints { display: flex; flex-wrap: wrap; gap: 9px; margin-top: 17px; }
.fortune-hints span { padding: 8px 12px; border-radius: 12px; color: var(--deep); background: #eeebfb; font-size: 10px; font-weight: 600; }
.fortune-scores { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 12px; }
.fortune-score { --score: 0%; --tone: var(--rose); min-width: 0; display: grid; justify-items: center; gap: 8px; padding: 19px 9px 16px; border: 1px solid color-mix(in srgb, var(--tone) 9%, var(--line)); border-radius: 20px; background: linear-gradient(180deg, color-mix(in srgb, #fff 95%, var(--tone)), color-mix(in srgb, #fff 89%, var(--tone))); }
.fortune-score[data-category='wealth'] { --tone: var(--amber); }.fortune-score[data-category='career'] { --tone: var(--blue); }.fortune-score[data-category='study'] { --tone: var(--mint); }.fortune-score[data-category='social'] { --tone: var(--purple); }
.fortune-score-track { position: relative; width: 14px; height: 105px; overflow: hidden; border: 1px solid color-mix(in srgb, var(--tone) 15%, transparent); border-radius: 999px; background: color-mix(in srgb, var(--tone) 10%, #fff); }
.fortune-score-track i { position: absolute; inset: auto -1px -1px; height: var(--score); border-radius: 999px; background: linear-gradient(180deg, color-mix(in srgb, var(--tone) 65%, white), var(--tone)); transition: height .65s ease; }
.fortune-score strong { font: 600 27px/1.15 var(--serif); }.fortune-score > span { color: var(--dim); font-size: 11px; }
.fortune-guidance { padding: 27px 0 25px; border-top: 1px solid var(--line); }
.fortune-guidance > header { display: flex; align-items: flex-end; justify-content: space-between; gap: 22px; }
.fortune-guidance > header p { margin: 0 0 6px; color: var(--deep); font-size: 11px; font-weight: 800; letter-spacing: 1.2px; }
.fortune-guidance > header h3 { margin: 0; font: 600 clamp(19px, 2vw, 25px)/1.4 var(--serif); }
.fortune-guidance > header > span { max-width: 260px; color: var(--faint); font-size: 9px; line-height: 1.6; text-align: right; }
.fortune-guidance-main { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(250px, .75fr); gap: 14px; margin-top: 18px; }
.fortune-analysis-copy { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.fortune-analysis-copy article,.fortune-advice { padding: 17px 18px; border: 1px solid color-mix(in srgb, var(--purple) 10%, var(--line)); border-radius: 16px; background: rgba(248, 247, 253, .76); }
.fortune-analysis-copy b,.fortune-advice > b { display: block; margin-bottom: 7px; color: var(--deep); font-size: 10px; letter-spacing: .4px; }
.fortune-analysis-copy p { margin: 0; color: var(--dim); font: 400 11px/1.8 var(--serif); }
.fortune-advice { background: linear-gradient(145deg, rgba(238, 235, 251, .88), rgba(241, 248, 246, .76)); }
.fortune-advice ol { display: grid; gap: 6px; margin: 0; padding-left: 17px; color: var(--dim); font-size: 10px; line-height: 1.65; }
.fortune-category-notes { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 8px; margin-top: 10px; }
.fortune-category-notes article { position: relative; min-width: 0; padding: 14px 13px 13px; overflow: hidden; border: 1px solid var(--line); border-radius: 14px; background: rgba(255, 255, 255, .64); }
.fortune-category-notes article::before { content: ''; position: absolute; inset: 0 auto 0 0; width: 3px; background: var(--mint); opacity: .72; }
.fortune-category-notes article[data-band='active']::before { background: var(--purple); }.fortune-category-notes article[data-band='gentle']::before { background: var(--amber); }
.fortune-category-notes b { color: var(--deep); font-size: 10px; }.fortune-category-notes p { margin: 6px 0 0; color: var(--dim); font-size: 9px; line-height: 1.65; }
.fortune-style { padding: 27px 0 25px; border-top: 1px solid var(--line); }
.fortune-style > header { display: flex; align-items: flex-end; justify-content: space-between; gap: 22px; }
.fortune-style > header p { margin: 0 0 6px; color: var(--deep); font-size: 11px; font-weight: 800; letter-spacing: 1.2px; }
.fortune-style > header h3 { margin: 0; font: 600 clamp(19px, 2vw, 25px)/1.4 var(--serif); }
.fortune-style > header > span { max-width: 410px; color: var(--faint); font-size: 9px; line-height: 1.6; text-align: right; }
.fortune-style-context { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)) auto; gap: 9px; align-items: end; margin: 16px 0 0; padding: 13px 14px; border: 1px solid color-mix(in srgb, var(--purple) 10%, var(--line)); border-radius: 15px; background: rgba(248, 247, 253, .68); }
.fortune-style-context legend { padding: 0 6px; color: var(--deep); font-size: 10px; font-weight: 700; letter-spacing: .4px; }
.fortune-style-context label { min-width: 0; display: grid; gap: 5px; }
.fortune-style-context label > span { color: var(--dim); font-size: 10px; font-weight: 600; }
.fortune-style-context select { width: 100%; min-height: 44px; padding: 0 34px 0 11px; border: 1px solid var(--line); border-radius: 11px; color: var(--ink); background: rgba(255, 255, 255, .9); font: 500 11px/1.2 var(--sans); cursor: pointer; }
.fortune-style-context select:focus-visible { outline: 2px solid color-mix(in srgb, var(--purple) 58%, white); outline-offset: 2px; }
.fortune-style-context > small { max-width: 150px; padding-bottom: 8px; color: var(--faint); font-size: 11.5px; line-height: 1.55; }
.fortune-style-grid { display: grid; grid-template-columns: 1.08fr 1fr 1fr; gap: 10px; margin-top: 18px; }
.fortune-style-grid > article { min-width: 0; padding: 18px; border: 1px solid color-mix(in srgb, var(--mint) 12%, var(--line)); border-radius: 17px; background: linear-gradient(145deg, rgba(245, 249, 247, .9), rgba(250, 248, 243, .8)); }
.fortune-style-card-head { display: flex; align-items: center; gap: 10px; }
.fortune-style-card-head > span { width: 31px; height: 31px; display: grid; flex: 0 0 31px; place-items: center; border-radius: 10px; color: #fff; background: var(--deep); font: 600 13px/1 var(--serif); }
.fortune-style-card-head b,.fortune-style-card-head small { display: block; }.fortune-style-card-head b { color: var(--deep); font-size: 11px; }.fortune-style-card-head small { margin-top: 3px; color: var(--faint); font-size: 11.5px; letter-spacing: .4px; }
.fortune-style-grid article > p { margin: 13px 0 0; color: var(--dim); font: 400 11px/1.8 var(--serif); }
.fortune-style-grid article > p.fortune-style-detail { margin-top: 8px; padding-top: 8px; border-top: 1px solid rgba(74, 155, 136, .12); }
.fortune-palette { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 14px; }
.fortune-palette span { display: inline-flex; align-items: center; gap: 6px; padding: 6px 8px; border: 1px solid rgba(47, 41, 109, .08); border-radius: 999px; color: var(--dim); background: rgba(255, 255, 255, .72); font-size: 9px; }
.fortune-palette span::before { width: 12px; height: 12px; content: ''; border: 1px solid rgba(47, 41, 109, .13); border-radius: 50%; background: var(--swatch); box-shadow: inset 0 0 0 1px rgba(255,255,255,.25); }
.fortune-evidence { padding-top: 19px; border-top: 1px solid var(--line); }
.fortune-evidence summary { width: max-content; display: flex; align-items: center; gap: 6px; color: var(--deep); font-size: 11px; font-weight: 700; cursor: pointer; list-style: none; }.fortune-evidence summary::-webkit-details-marker { display: none; }.fortune-evidence summary i { font-style: normal; transition: transform .2s; }.fortune-evidence[open] summary i { transform: rotate(90deg); }
.fortune-evidence > div { margin-top: 14px; padding: 15px 18px; border-radius: 15px; background: var(--paper-subtle); }.fortune-evidence ul { display: grid; gap: 6px; margin: 0; padding-left: 19px; color: var(--dim); font-size: 10px; line-height: 1.65; }.fortune-evidence p { margin: 11px 0 0; padding-top: 11px; border-top: 1px solid var(--line); color: var(--faint); font-size: 9px; line-height: 1.65; }
.daily-fortune-empty { min-height: 430px; display: grid; grid-template-columns: 68px minmax(0, 1fr) auto; gap: 23px; align-items: center; padding: clamp(34px, 5vw, 64px); }
.daily-fortune-empty > b { width: 68px; height: 68px; display: grid; place-items: center; border-radius: 50%; color: #fff; background: linear-gradient(145deg, #7564d3, #5643bb); box-shadow: 0 11px 24px rgba(104, 88, 199, .22); font: 600 24px/1 var(--serif); }
.daily-fortune-empty-copy h2 { margin: 9px 0 7px; font: 600 clamp(25px, 2.7vw, 36px)/1.35 var(--serif); }.daily-fortune-empty-copy > span { display: block; max-width: 620px; color: var(--dim); font-size: 12px; line-height: 1.75; }
.daily-fortune-empty aside { display: flex; align-items: center; justify-content: flex-end; flex-wrap: wrap; gap: 9px; }
.daily-fortune-empty button,.daily-fortune-empty aside a { min-height: 45px; display: inline-flex; align-items: center; justify-content: center; padding: 0 17px; border: 1px solid transparent; border-radius: 999px; color: #fff; background: var(--purple); font: 600 11px/1 var(--sans); text-decoration: none; cursor: pointer; }
.daily-fortune-empty button.quiet,.daily-fortune-empty aside a.quiet,.daily-fortune-empty #choosePrimaryLink { color: var(--deep); border-color: var(--line); background: rgba(255, 255, 255, .72); }.daily-fortune-empty button:disabled { opacity: .68; cursor: wait; }
.daily-fortune-loading { min-height: 430px; display: grid; align-content: center; gap: 14px; padding: clamp(34px, 5vw, 64px); }
.daily-fortune-loading > span,.daily-fortune-loading i { display: block; border-radius: 999px; background: linear-gradient(90deg, var(--paper-subtle), rgba(104, 88, 199, .13), var(--paper-subtle)); background-size: 200% 100%; animation: home-shimmer 1.35s linear infinite; }.daily-fortune-loading > span:first-child { width: 140px; height: 12px; }.daily-fortune-loading > span:nth-child(2) { width: 320px; max-width: 75%; height: 31px; }.daily-fortune-loading > div { display: grid; grid-template-columns: 1.5fr repeat(5, 1fr); gap: 12px; margin-top: 24px; }.daily-fortune-loading i { height: 145px; border-radius: 20px; }
@keyframes home-shimmer { to { background-position: -200% 0; } }

@media (max-width: 980px) { .daily-fortune-overview { grid-template-columns: 1fr; gap: 28px; }.fortune-overall { display: grid; grid-template-columns: 145px minmax(0, 1fr); column-gap: 18px; align-items: center; }.fortune-overall > p:first-child { grid-column: 1/-1; }.fortune-overall-value { grid-row: 2/4; }.fortune-hints { grid-column: 2; }.daily-fortune-empty { grid-template-columns: 60px minmax(0, 1fr); min-height: 360px; }.daily-fortune-empty > b { width: 60px; height: 60px; }.daily-fortune-empty aside { grid-column: 2; justify-content: flex-start; } }
@media (max-width: 980px) { .fortune-guidance-main { grid-template-columns: 1fr; }.fortune-category-notes { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 980px) { .fortune-style-context { grid-template-columns: repeat(3, minmax(0, 1fr)); }.fortune-style-context > small { max-width: none; grid-column: 1/-1; padding-bottom: 0; }.fortune-style-grid { grid-template-columns: 1fr 1fr; }.fortune-style-color { grid-column: 1/-1; } }
@media (max-width: 620px) { .home-section-head { align-items: flex-start; flex-direction: column; gap: 11px; }.guest-play { padding: 21px 16px; border-radius: 22px; }.guest-recent { align-items: flex-start; flex-direction: column; gap: 15px; padding: 21px; }.daily-fortune-card { min-height: 360px; border-radius: 22px; }.daily-fortune-ready { padding: 21px 17px; }.daily-fortune-head { grid-template-columns: 1fr 1fr; grid-template-rows: auto auto auto; align-items: flex-start; gap: 11px 8px; padding-bottom: 19px; }.daily-fortune-heading { grid-column: 1/-1; }.daily-fortune-heading > p { font-size: 10px; }.daily-fortune-heading > .daily-fortune-quote-label { margin-top: 9px; }.daily-fortune-heading blockquote { margin-top: 5px; font-size: 21px; line-height: 1.55; }.daily-fortune-scene { grid-column: 1/-1; grid-row: 2; min-height: 0; height: 150px; }.daily-fortune-scene img { object-position: 50% 67%; }.daily-fortune-share { grid-column: 1/-1; grid-row: 3; min-height: 44px; width: 100%; }.daily-fortune-overview { padding: 24px 0 20px; }.fortune-overall { grid-template-columns: 108px minmax(0, 1fr); column-gap: 12px; }.fortune-overall-value { min-height: 80px; }.fortune-overall-value strong { font-size: 66px; }.fortune-overall > p:nth-of-type(2) { font-size: 11px; line-height: 1.7; }.fortune-hints { gap: 5px; margin-top: 9px; }.fortune-hints span { padding: 6px 7px; font-size: 8px; }.fortune-scores { gap: 5px; }.fortune-score { padding: 13px 3px 11px; border-radius: 14px; }.fortune-score-track { width: 9px; height: 68px; }.fortune-score strong { font-size: 18px; }.fortune-score > span { font-size: 8px; }.daily-fortune-empty { grid-template-columns: 1fr; min-height: 360px; padding: 28px 21px; text-align: center; }.daily-fortune-empty > b { justify-self: center; }.daily-fortune-empty aside { grid-column: 1; justify-content: center; }.daily-fortune-loading { min-height: 360px; padding: 28px 21px; }.daily-fortune-loading > div { grid-template-columns: repeat(3,1fr); }.daily-fortune-loading i:nth-last-child(-n+3) { display: none; } }
@media (max-width: 620px) { .fortune-guidance { padding: 21px 0 19px; }.fortune-guidance > header { align-items: flex-start; flex-direction: column; gap: 5px; }.fortune-guidance > header > span { text-align: left; }.fortune-guidance-main { margin-top: 13px; }.fortune-analysis-copy { grid-template-columns: 1fr; }.fortune-analysis-copy article,.fortune-advice { padding: 14px; }.fortune-category-notes { grid-template-columns: 1fr; }.fortune-category-notes article { padding: 12px 13px; }.fortune-category-notes p { font-size: 10px; } }
@media (max-width: 620px) { .fortune-style { padding: 21px 0 19px; }.fortune-style > header { align-items: flex-start; flex-direction: column; gap: 5px; }.fortune-style > header > span { text-align: left; }.fortune-style-context { grid-template-columns: 1fr; margin-top: 12px; padding: 12px; }.fortune-style-context > small { grid-column: auto; }.fortune-style-grid { grid-template-columns: 1fr; margin-top: 13px; }.fortune-style-color { grid-column: auto; }.fortune-style-grid > article { padding: 15px 14px; }.fortune-style-grid article > p,.fortune-palette span { font-size: 11px; } }
@media (prefers-reduced-motion: reduce) { .fortune-score-track i,.daily-fortune-head > a { transition: none; }.daily-fortune-loading > span,.daily-fortune-loading i { animation: none; } }

/* 今日节奏朋友圈海报 */
body.daily-share-open { overflow: hidden; }
.daily-share-dialog { position: fixed; z-index: 180; inset: 0; display: grid; place-items: center; padding: 24px; }
.daily-share-dialog[hidden] { display: none; }
.daily-share-mask { position: absolute; inset: 0; width: 100%; height: 100%; padding: 0; border: 0; background: rgba(29,31,29,.54); backdrop-filter: blur(8px); cursor: default; }
.daily-share-surface { position: relative; width: min(760px,100%); max-height: min(92vh,900px); max-height: min(92dvh,900px); max-height: min(var(--tianji-visual-viewport-92-height,92dvh),900px); display: flex; flex-direction: column; overflow: hidden; padding: 24px; border: 1px solid rgba(169,138,85,.32); border-radius: 25px; background: #fffdf8; box-shadow: 0 30px 90px rgba(29,31,29,.28); }
.daily-share-surface > header { flex: 0 0 auto; display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; }
.daily-share-surface > header p { margin: 0 0 5px; color: var(--gold-deep); font-size: 11.5px; font-weight: 700; letter-spacing: 2px; }
.daily-share-surface > header h2 { margin: 0; font: 600 25px/1.35 var(--serif); }
.daily-share-close { width: 44px; height: 44px; flex: 0 0 auto; border: 1px solid var(--line); border-radius: 50%; color: var(--dim); background: #fff; font-size: 17px; cursor: pointer; }
.daily-share-status { flex: 0 0 auto; margin: 12px 0 10px; color: var(--dim); font-size: 11.5px; line-height: 1.7; }
.daily-share-preview { min-height: 240px; flex: 1 1 auto; display: grid; place-items: center; overflow: auto; overscroll-behavior: contain; padding: 10px; border: 1px solid var(--line); border-radius: 18px; background: #eee9df; }
.daily-share-preview > span { color: var(--dim); font-size: 12px; }
.daily-share-preview img { width: min(100%,405px); height: auto; display: block; border-radius: 12px; box-shadow: 0 14px 40px rgba(31,42,39,.20); -webkit-touch-callout: default; user-select: auto; }
.daily-share-tip { flex: 0 0 auto; margin: 10px 0 0; color: var(--faint); font-size: 11.5px; line-height: 1.65; text-align: center; }
.daily-share-surface > footer { flex: 0 0 auto; display: flex; justify-content: flex-end; gap: 9px; margin-top: 14px; }
.daily-share-surface > footer button { min-height: 44px; padding: 0 17px; border: 1px solid var(--line); border-radius: 999px; font: 700 12px/1 var(--sans); cursor: pointer; }
.daily-share-surface > footer button:disabled { opacity: .46; cursor: wait; }
.daily-share-secondary { color: var(--deep); background: #fff; }
.daily-share-primary { color: #fff; border-color: #397e70 !important; background: linear-gradient(135deg,#4a9b88,#397e70); }
@media (max-width: 620px) {
  .daily-share-dialog { align-items: end; padding: 0; }
  .daily-share-surface {
    width: 100%;
    max-height: 96vh;
    max-height: 96dvh;
    max-height: calc(var(--tianji-visual-viewport-height, 100dvh) - max(8px, env(safe-area-inset-top, 0px)));
    padding: 20px max(14px, env(safe-area-inset-right, 0px)) calc(14px + env(safe-area-inset-bottom, 0px)) max(14px, env(safe-area-inset-left, 0px));
    border-radius: 24px 24px 0 0;
  }
  .daily-share-preview { min-height: 0; padding: 6px; }
  .daily-share-preview img { width: 100%; }
  .daily-share-surface > footer { display: grid; grid-template-columns: 1fr 1fr; }
  .daily-share-surface > footer button { width: 100%; padding: 0 10px; }
  .daily-share-surface > footer [data-daily-share-close] { display: none; }
  .daily-share-primary { grid-column: 1/-1; grid-row: 1; }
}

@media (max-width: 620px) and (max-height: 520px) {
  .daily-share-surface { overflow-y: auto; overscroll-behavior: contain; padding-top: max(12px, env(safe-area-inset-top, 0px)); }
  .daily-share-surface > header h2 { font-size: 21px; }
  .daily-share-status { margin-block: 7px; }
  .daily-share-tip { margin-top: 6px; }
  .daily-share-surface > footer { margin-top: 8px; }
  .daily-share-primary { grid-column: auto; grid-row: auto; }
}

/* 游客与会员共用同一入口视觉，身份切换时不再闪回旧图片卡片。 */
.member-entry-section {
  margin-top: clamp(34px, 5vw, 58px);
  padding: clamp(4px, 1vw, 12px) 0 0;
}

.guest-entry-section { margin-top: 0; }

.member-entry-head {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 24px;
  margin-bottom: 18px;
  padding: 0 2px;
}

.member-entry-head p {
  margin: 0;
  color: var(--gold-deep);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 2px;
}

.member-entry-head h2 {
  margin: 8px 0 0;
  font: 600 clamp(22px, 2.4vw, 29px)/1.3 var(--serif);
  letter-spacing: -.02em;
}

.member-entry-head > span {
  max-width: 310px;
  padding-bottom: 2px;
  color: var(--dim);
  font-size: 11px;
  line-height: 1.65;
  text-align: right;
}

.member-entry-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
}

.member-entry-grid a {
  --entry-color: #6858c7;
  --entry-tint: #eeebfb;
  min-height: 116px;
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 18px 17px;
  border: 1px solid color-mix(in srgb, var(--entry-color) 19%, var(--line));
  border-radius: 20px;
  color: var(--ink);
  background: linear-gradient(142deg, rgba(255, 255, 255, .93), color-mix(in srgb, var(--entry-tint) 58%, rgba(255, 255, 255, .9)));
  box-shadow: 0 8px 26px rgba(47, 41, 109, .055);
  text-decoration: none;
  transition: transform .2s ease, border-color .2s ease, box-shadow .2s ease, background .2s ease;
}

.member-entry-grid a:nth-child(2) { --entry-color: #a45170; --entry-tint: #f8e8ee; }
.member-entry-grid a:nth-child(3) { --entry-color: #347a69; --entry-tint: #e4f6f1; }
.member-entry-grid a:nth-child(4) { --entry-color: #496fa5; --entry-tint: #e8f2fb; }
.member-entry-grid a:nth-child(5) { --entry-color: #9a7321; --entry-tint: #fff3d8; }
.member-entry-grid a:nth-child(6) { --entry-color: #6559c6; --entry-tint: #eeedfb; }

.member-entry-grid a:hover,
.member-entry-grid a:focus-visible {
  border-color: color-mix(in srgb, var(--entry-color) 48%, var(--line));
  background: linear-gradient(142deg, #fff, color-mix(in srgb, var(--entry-tint) 76%, #fff));
  box-shadow: 0 15px 34px rgba(47, 41, 109, .11);
  transform: translateY(-2px);
}

.member-entry-grid a:focus-visible {
  outline: 3px solid color-mix(in srgb, var(--entry-color) 23%, transparent);
  outline-offset: 2px;
}

.member-entry-mark {
  width: 54px;
  height: 54px;
  display: grid;
  flex: 0 0 54px;
  place-items: center;
  border: 1px solid color-mix(in srgb, var(--entry-color) 22%, transparent);
  border-radius: 17px;
  color: var(--entry-color);
  background: color-mix(in srgb, var(--entry-tint) 86%, #fff);
  box-shadow: inset 0 1px rgba(255, 255, 255, .72);
  font: 700 21px/1 var(--serif);
}

.member-entry-copy {
  min-width: 0;
  display: grid;
  gap: 6px;
}

.member-entry-copy strong { font: 600 16px/1.35 var(--serif); }

.member-entry-copy small {
  color: var(--dim);
  font-size: 11px;
  line-height: 1.5;
}

.member-entry-grid i {
  margin-left: auto;
  color: var(--entry-color);
  font: 400 23px/1 var(--serif);
  font-style: normal;
  transition: transform .2s ease;
}

.member-entry-grid a:hover i,
.member-entry-grid a:focus-visible i { transform: translateX(2px); }

@media (max-width: 980px) {
  .member-entry-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 620px) {
  .member-entry-section { margin-top: 31px; }
  .member-entry-section.guest-entry-section { margin-top: 0; }
  .member-entry-head { align-items: flex-start; flex-direction: column; gap: 7px; margin-bottom: 14px; }
  .member-entry-head h2 { font-size: 21px; }
  .member-entry-head > span { max-width: none; text-align: left; }
  .member-entry-grid { grid-template-columns: 1fr; gap: 10px; }
  .member-entry-grid a { min-height: 88px; padding: 14px; border-radius: 17px; }
  .member-entry-mark { width: 48px; height: 48px; flex-basis: 48px; border-radius: 15px; font-size: 18px; }
}

@media (prefers-reduced-motion: reduce) {
  .member-entry-grid a,
  .member-entry-grid i { transition: none; }
}

/* 首页关键操作与解释文字在窄屏也保持可读、可触达。 */
.home-section-head > a,
.daily-fortune-head > a,
.fortune-evidence summary { min-height: 44px; }
.home-section-head > a { display: inline-flex; align-items: center; padding-inline: 4px; }
.guest-recent > a { min-height: 44px; }
.fortune-guidance > header > span,
.fortune-analysis-copy b,
.fortune-advice > b,
.fortune-advice ol,
.fortune-category-notes b,
.fortune-category-notes p,
.fortune-style > header > span,
.fortune-style-card-head b,
.fortune-style-grid article > p,
.fortune-palette span,
.fortune-evidence ul,
.fortune-evidence p { font-size: 11px; }
.fortune-evidence summary { padding-block: 5px; }

@media (max-width: 620px) {
  .daily-fortune-head > a { min-height: 44px; padding-inline: 12px 10px; }
  .fortune-hints span { padding: 7px 9px; font-size: 11px; line-height: 1.45; }
  .fortune-score > span { font-size: 11px; }
  .fortune-guidance > header > span,
  .fortune-style > header > span,
  .fortune-category-notes p { font-size: 11px; }
}

/* 2026-09 mobile home polish: keep the desktop three-colour system and an
   explicit content-safe zone above the persistent app shell. */
.member-entry-grid a {
  --entry-color: #554a91;
  --entry-tint: #f0eef7;
}

.member-entry-grid a:nth-child(2),
.member-entry-grid a:nth-child(4) {
  --entry-color: #554a91;
  --entry-tint: #f0eef7;
}

.member-entry-grid a:nth-child(3),
.member-entry-grid a:nth-child(6) {
  --entry-color: #357466;
  --entry-tint: #eaf3ef;
}

.member-entry-grid a:nth-child(5) {
  --entry-color: #8a692d;
  --entry-tint: #f7f1e5;
}

@media (max-width: 620px) {
  :root[data-theme='light'] body {
    background:
      radial-gradient(circle at 8% 0, rgba(85, 74, 145, .14), transparent 22rem),
      radial-gradient(circle at 100% 24%, rgba(53, 116, 102, .08), transparent 24rem),
      linear-gradient(180deg, #f8f7fc 0, #f3f2f8 100%);
  }

  .home-main {
    width: min(calc(100% - 32px), 720px);
    padding-top: 18px;
    padding-bottom: calc(32px + var(--mobile-shell-height, 64px) + env(safe-area-inset-bottom, 0px));
  }

  .guest-recent {
    min-height: 0;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 12px;
    margin: 0 0 18px;
    padding: 16px;
    border-color: rgba(85, 74, 145, .18);
    border-radius: 18px;
    background: linear-gradient(135deg, rgba(255, 255, 255, .96), rgba(240, 238, 247, .88));
    box-shadow: 0 10px 28px rgba(47, 41, 83, .065);
  }

  .guest-recent h2 { margin-top: 5px; font-size: 18px; }
  .guest-recent > a { min-height: 44px; padding-inline: 14px; background: #554a91; }

  .member-entry-head { gap: 5px; margin-bottom: 13px; }
  .member-entry-head p { color: #554a91; font-size: 10px; letter-spacing: 1.8px; }
  .member-entry-head h2 { margin-top: 6px; color: #28253b; font-size: 20px; }
  .member-entry-head > span { color: #777386; font-size: 10.5px; }

  .member-entry-grid { gap: 11px; }
  .member-entry-grid a {
    min-height: 86px;
    gap: 13px;
    padding: 13px 14px;
    border-color: color-mix(in srgb, var(--entry-color) 30%, rgba(69, 63, 94, .16));
    border-radius: 18px;
    background: linear-gradient(118deg, #fff, color-mix(in srgb, var(--entry-tint) 72%, #fff));
    box-shadow: 0 7px 22px rgba(47, 41, 83, .075);
  }

  .member-entry-mark {
    width: 46px;
    height: 46px;
    flex-basis: 46px;
    border-color: color-mix(in srgb, var(--entry-color) 32%, transparent);
    border-radius: 14px;
    background: color-mix(in srgb, var(--entry-tint) 94%, #fff);
    box-shadow: inset 0 1px rgba(255, 255, 255, .82), 0 3px 10px color-mix(in srgb, var(--entry-color) 10%, transparent);
    font-size: 18px;
  }

  .member-entry-copy { gap: 4px; }
  .member-entry-copy strong { color: #28253b; font-size: 16px; }
  .member-entry-copy small { color: #747080; font-size: 10.5px; }
  .member-entry-grid i { font-size: 21px; opacity: 1; }
}

@media (max-width: 360px) {
  .home-main { width: min(calc(100% - 24px), 720px); }
  .guest-recent { grid-template-columns: 1fr; }
  .guest-recent > a { width: max-content; }
}
