*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{
  --bg:#faf8f5;--card:#ffffff;--mid:#f5f0e8;
  --gold:#b8944a;--gold-light:#d4b06a;--gold-deep:#8a7020;
  --jade:#5bbfa0;--jade-mid:#8dd9bf;--jade-deep:#3d9e82;
  --amber:#c9820a;--amber-light:#e8b86a;
  --ink-text:#2a2520;
  --sub-text:#6a6050;
  --radius:10px;
  --body-glow:radial-gradient(ellipse at 50% 0%,rgba(91,191,160,0.05) 0%,transparent 55%);
  --card-hover:rgba(245,240,232,0.9);
  --member-bg:linear-gradient(135deg,var(--jade-deep),var(--jade));
  --member-text:#ffffff;
  --member-sub:rgba(255,255,255,0.7);
}
/* 深色主题 */
.dark-mode{
  --bg:#0e0a04;--card:#170e06;--mid:#1f1408;
  --gold:#c9a84c;--gold-light:#e8d08a;--gold-deep:#8a6420;
  --jade:#5bbfa0;--jade-mid:#8dd9bf;--jade-deep:#3d9e82;
  --ink-text:rgba(255,245,220,0.88);
  --sub-text:rgba(255,245,220,0.45);
  --body-glow:radial-gradient(ellipse at 50% 0%,rgba(201,168,76,0.08) 0%,transparent 55%);
  --card-hover:rgba(23,14,6,0.85);
  --member-bg:linear-gradient(135deg,#1a1228,#2a1f40);
  --member-text:#e8d0ff;
  --member-sub:rgba(200,180,240,0.55);
}
html,body{background:var(--bg);font-family:'Noto Serif SC',serif;color:var(--ink-text);-webkit-font-smoothing:antialiased}
body{max-width:100%;min-height:100vh;overflow-y:auto;padding-bottom:40px}
@media(min-width:768px){body{max-width:520px;margin:0 auto}}
@media(min-width:1200px){body{max-width:640px}}
body::before{content:'';position:fixed;inset:0;background:var(--body-glow);pointer-events:none;z-index:0}
body>*{position:relative;z-index:1}

/* ── keyframes ── */
@keyframes fadeUp{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
@keyframes glow-pulse{
  0%,100%{box-shadow:0 0 14px rgba(201,168,76,0.25)}
  50%{box-shadow:0 0 28px rgba(201,168,76,0.45)}
}
@keyframes gold-line-pulse{
  0%,100%{opacity:0.5;width:50px}
  50%{opacity:1;width:90px}
}
@keyframes jade-breathe{
  0%,100%{box-shadow:0 10px 40px rgba(0,102,51,0.35),0 3px 12px rgba(0,102,51,0.2),inset 0 -6px 18px rgba(0,60,28,0.25);transform:scale(1)}
  50%{box-shadow:0 14px 60px rgba(0,163,80,0.48),0 5px 20px rgba(0,120,60,0.28),inset 0 -6px 18px rgba(0,60,28,0.25);transform:scale(1.025)}
}
@keyframes shimmer{
  0%{background-position:-200% center}
  100%{background-position:200% center}
}
@keyframes gold-shimmer{0%{background-position:-300% center}100%{background-position:300% center}}
@keyframes twinkle{0%,100%{opacity:.2;transform:scale(.8)}50%{opacity:1;transform:scale(1.2)}}
@keyframes load-breathe{0%,100%{opacity:0.3;transform:scale(1)}50%{opacity:0.7;transform:scale(1.05)}}

/* ── hero ── */
.hero{display:flex;flex-direction:column;align-items:center;padding:44px 24px 22px;text-align:center}
.hero .logo{font-family:'Cormorant Garamond',serif;font-size:13px;letter-spacing:0.38em;color:var(--gold);font-weight:300;margin-bottom:16px;animation:fadeUp 0.7s ease both}
.tagline{font-family:'Cormorant Garamond',serif;font-style:italic;font-size:19px;letter-spacing:0.14em;color:var(--ink-text);margin-bottom:3px;animation:fadeUp 0.7s 0.15s ease both}
.tagline-sub{font-size:9px;letter-spacing:0.34em;color:var(--sub-text);margin-bottom:6px;animation:fadeUp 0.7s 0.2s ease both}

.gold-line{height:1px;background:linear-gradient(90deg,transparent,var(--gold),transparent);margin:0 auto 22px;
  animation:gold-line-pulse 3s ease-in-out infinite,fadeUp 0.7s 0.25s ease both}

.peace-clasp{position:relative;border-radius:50%;width:130px;height:130px;flex-shrink:0;margin-bottom:18px;
  background:radial-gradient(circle at 34% 27%,rgba(255,255,255,0.92) 0%,rgba(255,255,255,0.35) 7%,transparent 18%),
    radial-gradient(circle at 70% 68%,var(--jade-deep) 0%,transparent 38%),
    radial-gradient(circle at 20% 72%,rgba(0,180,80,0.25) 0%,transparent 35%),
    radial-gradient(ellipse at 42% 38%,var(--jade-mid) 0%,var(--jade) 22%,var(--jade) 52%,var(--jade-deep) 100%);
  animation:jade-breathe 4s ease-in-out infinite,fadeUp 0.8s 0.05s ease both}
.peace-clasp::after{content:'';position:absolute;border-radius:50%;background:rgba(14,10,4,0.6);
  width:44px;height:44px;top:50%;left:50%;transform:translate(-50%,-50%);
  backdrop-filter:blur(2px);box-shadow:inset 0 2px 10px rgba(0,0,0,0.3)}

/* ── social proof ── */
.social-proof{display:flex;justify-content:center;gap:20px;padding:0 16px;margin-bottom:20px;animation:fadeUp 0.7s 0.3s ease both}
.sp-item{text-align:center}
.sp-num{font-family:'Cormorant Garamond',serif;font-size:18px;color:var(--gold);letter-spacing:0.04em}
.sp-label{font-size:9px;color:var(--sub-text);letter-spacing:0.1em;margin-top:2px}

/* ── free CTA ── */
.cta-free{display:flex;align-items:center;justify-content:center;gap:10px;
  margin:0 16px 18px;padding:14px 16px;
  background:linear-gradient(135deg,rgba(201,168,76,0.15),rgba(201,168,76,0.05));
  border:1px solid rgba(201,168,76,0.35);border-radius:var(--radius);
  cursor:pointer;text-decoration:none;position:relative;overflow:hidden;
  animation:fadeUp 0.7s 0.35s ease both,glow-pulse 3s ease-in-out infinite}
.cta-free::before{content:'';position:absolute;inset:0;
  background:linear-gradient(90deg,transparent,rgba(201,168,76,0.08),transparent);
  background-size:200% 100%;animation:shimmer 3s ease-in-out infinite;pointer-events:none}
.cta-icon{font-size:20px}
.cta-text{flex:1;font-size:13px;letter-spacing:0.14em;color:var(--gold-light)}
.cta-sub{font-size:9px;color:var(--sub-text);letter-spacing:0.06em}
.cta-arr{font-size:18px;color:var(--gold)}

/* ── daily banner ── */
.daily-banner{margin:0 16px 20px;background:var(--card);
  border:1px solid rgba(201,168,76,0.15);border-radius:var(--radius);padding:12px 14px;
  display:flex;align-items:center;gap:10px;cursor:pointer;text-decoration:none;
  transition:all 0.22s;animation:fadeUp 0.7s 0.4s ease both}
.daily-banner:hover{border-color:rgba(201,168,76,0.4);background:var(--card-hover)}
.daily-icon{font-size:22px}
.daily-info{flex:1}
.daily-title{font-size:12px;letter-spacing:0.1em;color:var(--ink-text);margin-bottom:2px}
.daily-sub{font-size:10px;color:var(--sub-text);letter-spacing:0.04em}
.daily-arr{font-size:14px;color:var(--gold)}

/* ── category section ── */
.cat-section{padding:0 16px;margin-bottom:22px;animation:fadeUp 0.7s ease both}
.cat-section:nth-child(6){animation-delay:0.4s}
.cat-section:nth-child(7){animation-delay:0.5s}
.cat-section:nth-child(8){animation-delay:0.6s}
.cat-section:nth-child(9){animation-delay:0.7s}
.cat-title{display:flex;align-items:center;gap:8px;margin-bottom:12px}
.cat-label{font-size:10px;letter-spacing:0.22em;color:var(--sub-text)}
.cat-line{flex:1;height:1px;background:linear-gradient(90deg,rgba(201,168,76,0.2),transparent)}

/* ── menu grid ── */
.menu-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.menu-grid.three{grid-template-columns:1fr 1fr 1fr}
.menu-card{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;
  padding:20px 10px 16px;border-radius:var(--radius);background:var(--card);
  border:1px solid rgba(201,168,76,0.12);
  cursor:pointer;text-decoration:none;position:relative;overflow:hidden;
  transition:transform 0.22s,border-color 0.22s,box-shadow 0.22s,background 0.22s}
.menu-card:hover{transform:translateY(-2px);border-color:rgba(201,168,76,0.35);background:var(--card-hover);
  box-shadow:0 6px 24px rgba(0,0,0,0.3),0 0 12px rgba(201,168,76,0.1)}
.menu-card:active{transform:scale(0.96)}
.menu-card.gold-card{border-color:rgba(201,168,76,0.2)}
.menu-card.gold-card:hover{border-color:rgba(201,168,76,0.4);box-shadow:0 6px 24px rgba(0,0,0,0.3),0 0 12px rgba(201,168,76,0.15)}
.menu-card.hot::after{content:'热';position:absolute;top:0;right:0;background:linear-gradient(135deg,#e05050,#c03030);
  color:#fff;font-size:8px;padding:3px 7px;border-radius:0 0 0 6px;letter-spacing:0.06em}
.menu-card.new-badge::after{content:'新';position:absolute;top:0;right:0;background:linear-gradient(135deg,var(--jade-deep),var(--jade));
  color:#fff;font-size:8px;padding:3px 7px;border-radius:0 0 0 6px;letter-spacing:0.06em}
.card-glyph{font-size:26px;color:var(--jade);line-height:1;transition:transform 0.22s}
.menu-card:hover .card-glyph{transform:scale(1.12)}
.menu-card.gold-card .card-glyph{color:var(--gold)}
.card-zh{font-size:14px;font-weight:400;letter-spacing:0.1em;color:var(--ink-text)}
.card-en{font-family:'Cormorant Garamond',serif;font-style:italic;font-size:10px;letter-spacing:0.07em;color:var(--sub-text)}

/* ── member banner ── */
.member-banner{margin:0 16px 22px;background:var(--member-bg);
  border-radius:12px;padding:18px 16px;position:relative;overflow:hidden;cursor:pointer;text-decoration:none;display:block;
  transition:transform 0.22s,box-shadow 0.22s;animation:fadeUp 0.7s 0.75s ease both}
.member-banner:hover{transform:translateY(-2px);box-shadow:0 8px 30px rgba(0,0,0,0.35),0 0 20px rgba(201,168,76,0.08)}
.member-banner::before{content:'';position:absolute;inset:0;
  background:radial-gradient(ellipse at 80% 20%,rgba(201,168,76,0.15),transparent 60%);pointer-events:none}
.mb-top{display:flex;align-items:center;gap:10px;margin-bottom:10px}
.mb-crown{font-size:28px}
.mb-info{flex:1}
.mb-title{font-size:15px;letter-spacing:0.12em;color:var(--member-text);margin-bottom:2px}
.mb-sub{font-size:10px;color:var(--member-sub);letter-spacing:0.08em}
.mb-price{font-family:'Cormorant Garamond',serif;font-size:22px;color:var(--gold)}
.mb-perks{display:flex;gap:6px;flex-wrap:wrap}
.mb-perk{font-size:9px;padding:3px 8px;background:rgba(255,255,255,0.06);border:1px solid rgba(201,168,76,0.15);
  border-radius:10px;color:rgba(220,200,255,0.7);letter-spacing:0.04em}
.mb-btn{display:block;margin-top:12px;width:100%;padding:11px 0;text-align:center;
  background:linear-gradient(135deg,#6a3a9a,var(--jade-deep));border:none;border-radius:5px;
  color:#fff;font-family:'Noto Serif SC',serif;font-size:13px;letter-spacing:0.16em;cursor:pointer;
  transition:opacity 0.22s}
.mb-btn:hover{opacity:0.9}

/* ── bottom ── */
.bottom-text{text-align:center;font-family:'Cormorant Garamond',serif;font-style:italic;
  font-size:11px;letter-spacing:0.15em;color:var(--gold);opacity:0.6;padding:4px 0 8px;
  animation:fadeUp 0.7s 0.8s ease both}

/* ── shared utility classes (extracted from pages) ── */
.stardust{position:fixed;inset:0;pointer-events:none;z-index:0;overflow:hidden}
.page-enter{animation:fadeUp .8s ease both}
.report-screen{position:relative;z-index:1;display:none}
.report-screen.show{display:block}
.loading-screen.show{display:flex}
.load-step{font-size:10px;color:rgba(255,245,220,0.3);letter-spacing:0.08em;animation:step-fade 0.5s ease-out both}

/* ── theme toggle ── */
.theme-toggle{position:fixed;top:16px;right:16px;z-index:999;width:44px;height:44px;
  border-radius:50%;border:1px solid rgba(201,168,76,0.2);background:var(--card);
  cursor:pointer;display:flex;align-items:center;justify-content:center;
  font-size:16px;transition:all 0.22s;box-shadow:0 2px 12px rgba(0,0,0,0.2)}
.theme-toggle:hover{border-color:rgba(201,168,76,0.4);transform:scale(1.08)}
.light-mode .theme-toggle{border-color:rgba(180,148,74,0.3);box-shadow:0 2px 12px rgba(0,0,0,0.06)}

/* ── focus-visible (keyboard accessibility) ── */
:focus-visible{outline:2px solid var(--gold);outline-offset:2px;border-radius:2px}
a:focus-visible,.menu-card:focus-visible,.daily-banner:focus-visible,.member-banner:focus-visible,
button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
input:focus,select:focus,textarea:focus{outline:none;border-color:rgba(201,168,76,0.4)}


/* 浅色模式全局覆盖 - 强覆盖各页面内联深色样式 */
.dark-mode body,
.dark-mode .input-screen,
.dark-mode .report-screen,
.dark-mode .header,
.dark-mode .form-section{background:var(--bg) !important}
.dark-mode .field-group,
.dark-mode .name-card,
.dark-mode .name-detail,
.dark-mode .highlight-box,
.dark-mode .meaning-card,
.dark-mode .ritual-card,
.dark-mode .pastlife-card,
.dark-mode .talisman,
.dark-mode .alt-item,
.dark-mode .plan-card,
.dark-mode .compare-row,
.dark-mode .test-card,
.dark-mode .guide-card,
.dark-mode .glass-card{background:var(--card) !important}
.dark-mode body::before,
.dark-mode .bottom-gradient{display:none !important}
.dark-mode .stardust span{background:rgba(180,160,120,0.2) !important}
.dark-mode .peace-clasp::after{background:rgba(245,240,230,0.6) !important}
.dark-mode .zhu{background:var(--card) !important}
.dark-mode .member-banner{background:var(--member-bg) !important}

/* theme toggle */
.theme-toggle{position:fixed;top:16px;right:16px;z-index:999;width:44px;height:44px;
  border-radius:50%;border:1px solid rgba(91,191,160,0.2);background:var(--card);
  cursor:pointer;display:flex;align-items:center;justify-content:center;
  font-size:16px;transition:all 0.22s;box-shadow:0 2px 12px rgba(0,0,0,0.06)}
.theme-toggle:hover{border-color:rgba(91,191,160,0.4);transform:scale(1.08)}
