:root {
  --ls-paper:#f5f2ea;
  --ls-sheet:#fcfaf5;
  --ls-ink:#171816;
  --ls-muted:#62645f;
  --ls-line:#d8d4ca;
  --ls-accent:#a43f37;
  --ls-pale:#f1e6e2;
  color-scheme:light;
}

* { box-sizing:border-box; }
html { background:var(--ls-paper); scroll-behavior:smooth; }
body { margin:0; min-width:320px; color:var(--ls-ink); background:var(--ls-paper); font-family:"PingFang SC","Microsoft YaHei",sans-serif; letter-spacing:0; }
button,input { font:inherit; letter-spacing:0; }
button { color:inherit; }
.hidden { display:none !important; }
.ls-body { min-height:100vh; }
.ls-app { width:100%; min-height:calc(100vh - 52px); }

.ls-intro { min-height:calc(100dvh - 46px); max-width:1180px; margin:0 auto; padding:46px 42px 38px; display:grid; grid-template-columns:minmax(0, .92fr) minmax(360px, .72fr); align-items:center; gap:76px; }
.ls-intro-copy { max-width:570px; }
.ls-kicker { margin:0 0 24px; color:var(--ls-accent); font-size:14px; font-weight:700; }
.ls-intro h1 { margin:0; font-family:"Songti SC","STSong",serif; font-size:64px; line-height:1.16; font-weight:700; }
.ls-lead { max-width:510px; margin:28px 0 34px; color:#50524e; font-family:"Songti SC","STSong",serif; font-size:20px; line-height:1.85; }
.ls-button { width:100%; min-height:54px; border:1px solid var(--ls-ink); border-radius:4px; cursor:pointer; transition:transform .18s ease,background .18s ease,color .18s ease; }
.ls-button:active { transform:translateY(1px); }
.ls-primary { max-width:340px; color:#fff; background:var(--ls-ink); font-weight:700; }
.ls-primary:hover { background:var(--ls-accent); border-color:var(--ls-accent); }
.ls-intro-note { margin:14px 0 0; color:var(--ls-muted); font-size:12px; }
.ls-cover { position:relative; width:100%; max-width:450px; aspect-ratio:3/4; margin:0; justify-self:end; overflow:hidden; background:#d8d5cc; }
.ls-cover::before { content:""; position:absolute; inset:16px; border:1px solid rgba(255,255,255,.66); z-index:1; pointer-events:none; }
.ls-cover img { width:100%; height:100%; display:block; object-fit:cover; }
.ls-cover figcaption { position:absolute; left:28px; right:28px; bottom:24px; display:flex; align-items:baseline; justify-content:space-between; padding-top:14px; color:#fff; border-top:1px solid rgba(255,255,255,.72); font-family:"Songti SC","STSong",serif; font-size:14px; text-shadow:0 1px 8px rgba(0,0,0,.35); }
.ls-cover figcaption span { font-size:30px; font-weight:700; }

.ls-question { width:min(760px, 100%); min-height:calc(100dvh - 46px); margin:0 auto; padding:30px 28px 24px; display:flex; flex-direction:column; }
.ls-progress-head { display:flex; align-items:center; justify-content:space-between; min-height:28px; }
.ls-progress-head p { display:flex; align-items:center; gap:9px; margin:0; font-family:Georgia,serif; font-variant-numeric:tabular-nums; }
.ls-progress-head p i { width:28px; height:1px; background:var(--ls-line); }
.ls-progress-head p span:first-child { color:var(--ls-accent); font-size:20px; font-weight:700; }
.ls-progress-head p span:last-child { color:var(--ls-muted); font-size:12px; }
.ls-progress-head strong { font-family:"Songti SC","STSong",serif; font-size:13px; font-weight:600; }
.ls-progress-track { width:100%; height:2px; margin-top:14px; overflow:hidden; background:#dedbd2; }
.ls-progress-track i { display:block; width:4.16%; height:100%; background:var(--ls-accent); transition:width .26s ease; }
.ls-question-stage { flex:1; display:flex; flex-direction:column; justify-content:center; padding:30px 0 20px; }
.ls-situation { margin:0 0 13px; color:var(--ls-accent); font-size:13px; font-weight:700; }
.ls-question-stage h2 { max-width:680px; min-height:80px; margin:0 0 28px; font-family:"Songti SC","STSong",serif; font-size:30px; line-height:1.5; font-weight:700; }
.ls-options { display:grid; gap:10px; }
.ls-option { width:100%; min-height:67px; padding:12px 18px 12px 14px; display:grid; grid-template-columns:38px 1fr; align-items:center; gap:10px; text-align:left; border:1px solid #cfcbc1; border-radius:4px; background:rgba(255,255,255,.52); cursor:pointer; transition:border-color .16s ease,background .16s ease,transform .16s ease; }
.ls-option:hover { border-color:var(--ls-ink); background:var(--ls-sheet); }
.ls-option:active { transform:scale(.997); }
.ls-option.is-selected { border-color:var(--ls-accent); background:var(--ls-pale); }
.ls-option span { width:30px; height:30px; display:grid; place-items:center; border:1px solid #aaa79f; border-radius:50%; font-family:Georgia,serif; font-size:13px; }
.ls-option.is-selected span { color:#fff; border-color:var(--ls-accent); background:var(--ls-accent); }
.ls-option strong { font-size:15px; line-height:1.55; font-weight:500; }
.ls-question-nav { min-height:38px; display:flex; justify-content:center; align-items:center; }
.ls-previous { padding:8px 18px; color:var(--ls-muted); border:0; border-bottom:1px solid #aaa79f; background:none; cursor:pointer; font-size:13px; }

.ls-result { padding:34px 24px 72px; }
.ls-result-stage { width:min(520px, 100%); margin:0 auto; }
.ls-result-card { width:100%; height:auto; display:block; aspect-ratio:3/4; background:var(--ls-sheet); }
.ls-actions { display:grid; gap:10px; margin-top:16px; }
.ls-actions .ls-button { max-width:none; }
.ls-secondary { color:var(--ls-ink); background:transparent; font-weight:650; }
.ls-secondary:hover { color:#fff; background:var(--ls-ink); }

.ls-report { width:min(820px, 100%); margin:74px auto 0; }
.ls-report-intro { padding:0 0 42px; border-bottom:1px solid var(--ls-line); }
.ls-report-intro > p:first-child { margin:0 0 12px; color:var(--ls-accent); font-size:13px; font-weight:700; }
.ls-report-intro h2 { margin:0; font-family:"Songti SC","STSong",serif; font-size:38px; line-height:1.3; }
.ls-report-intro h2 em { color:var(--ls-accent); font-style:normal; }
.ls-report-intro > p:nth-of-type(2) { max-width:690px; margin:22px 0 0; color:#444641; font-family:"Songti SC","STSong",serif; font-size:19px; line-height:1.9; }
.ls-traits { display:flex; flex-wrap:wrap; gap:8px; margin-top:24px; }
.ls-traits span { padding:7px 13px; color:var(--ls-accent); border:1px solid color-mix(in srgb, var(--ls-accent) 55%, white); border-radius:999px; font-size:13px; font-weight:700; }
.ls-dimensions,.ls-reading,.ls-related,.ls-books { padding:54px 0; border-bottom:1px solid var(--ls-line); }
.ls-section-heading { display:grid; grid-template-columns:42px 1fr; gap:16px; align-items:start; margin-bottom:32px; }
.ls-section-heading > span { padding-top:6px; color:var(--ls-accent); font-family:Georgia,serif; font-size:13px; border-top:2px solid var(--ls-accent); }
.ls-section-heading p { margin:0 0 7px; color:var(--ls-muted); font-size:12px; }
.ls-section-heading h3 { margin:0; font-family:"Songti SC","STSong",serif; font-size:28px; line-height:1.35; }
.ls-dimension-list { display:grid; grid-template-columns:1fr 1fr; gap:22px 34px; }
.ls-dimension-item > div { display:flex; justify-content:space-between; align-items:baseline; margin-bottom:9px; }
.ls-dimension-item span { font-size:14px; font-weight:650; }
.ls-dimension-item strong { color:var(--ls-accent); font-family:Georgia,serif; font-size:20px; }
.ls-dimension-item i { display:block; height:6px; overflow:hidden; background:#dfdcd3; }
.ls-dimension-item i::after { content:""; display:block; width:var(--score); height:100%; background:var(--ls-accent); }
.ls-reading-list { display:grid; grid-template-columns:1fr 1fr; column-gap:42px; }
.ls-reading-item { min-height:196px; padding:24px 0; border-top:1px solid var(--ls-line); }
.ls-reading-item:nth-child(-n+2) { border-top:0; padding-top:0; }
.ls-reading-item p { margin:0 0 9px; color:var(--ls-accent); font-size:12px; font-weight:700; }
.ls-reading-item h4 { margin:0 0 13px; font-family:"Songti SC","STSong",serif; font-size:21px; line-height:1.45; }
.ls-reading-item div { color:#4e504c; font-size:15px; line-height:1.9; }
.ls-gentle-advice { margin:56px 0 0; padding:32px 36px 36px; color:#fff; background:var(--ls-ink); border-left:7px solid var(--ls-accent); }
.ls-gentle-advice p { margin:0 0 8px; color:#cacbc6; font-size:12px; }
.ls-gentle-advice h3 { margin:0 0 20px; font-family:"Songti SC","STSong",serif; font-size:25px; }
.ls-gentle-advice strong { display:block; font-family:"Songti SC","STSong",serif; font-size:18px; line-height:1.9; font-weight:500; }
.ls-related-list { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.ls-related-item { min-height:150px; padding:22px; border:1px solid var(--ls-line); background:rgba(255,255,255,.36); }
.ls-related-item p { margin:0 0 18px; color:var(--ls-muted); font-size:12px; }
.ls-related-item h4 { margin:0 0 8px; font-family:"Songti SC","STSong",serif; font-size:22px; }
.ls-related-item span { color:var(--ls-accent); font-size:13px; font-weight:700; }
.ls-books ol,.ls-books > ol { list-style:none; margin:0; padding:0; counter-reset:books; }
.ls-books li { min-height:64px; display:grid; grid-template-columns:44px 1fr; align-items:center; border-top:1px solid var(--ls-line); counter-increment:books; font-family:"Songti SC","STSong",serif; font-size:18px; }
.ls-books li::before { content:"0" counter(books); color:var(--ls-accent); font-family:Georgia,serif; font-size:12px; }
.ls-disclaimer { margin:32px 0 0; color:var(--ls-muted); text-align:center; font-size:11px; line-height:1.6; }
.ls-restart { display:block; margin:22px auto 0; padding:8px 4px; color:var(--ls-muted); border:0; border-bottom:1px solid #aaa79f; background:none; cursor:pointer; font-size:13px; }
.regulatory-footer { min-height:46px; display:flex; align-items:center; justify-content:center; padding:12px; color:#62645f; font-size:11px; }
.regulatory-footer a { color:inherit; text-decoration:none; }

.ls-preview-requested body > * { visibility:hidden; }
.ls-preview-authorized body > * { visibility:visible; }
#ls-preview-gate { position:fixed; inset:0; z-index:100; display:grid; place-items:center; padding:24px; background:var(--ls-paper); }
#ls-preview-gate p { font-family:"Songti SC","STSong",serif; font-size:18px; }
#ls-preview-gate.is-failed p { color:#a43f37; }
.ls-preview-active .regulatory-footer,.ls-preview-active #result-actions,.ls-preview-active .ls-restart { display:none !important; }
.ls-preview-active .ls-result { padding-top:18px; }
.ls-preview-active .ls-report { margin-top:46px; }
.ls-preview-controls { position:fixed; z-index:80; left:50%; bottom:max(14px, env(safe-area-inset-bottom)); width:min(300px, calc(100% - 30px)); min-height:58px; display:grid; grid-template-columns:52px 1fr 52px; align-items:center; transform:translateX(-50%); color:#fff; background:rgba(23,24,22,.94); border:1px solid rgba(255,255,255,.16); transition:opacity .2s ease,transform .2s ease; }
.ls-preview-controls.is-hidden { opacity:.18; transform:translate(-50%, 10px); }
.ls-preview-controls button { height:56px; color:#fff; border:0; background:transparent; font-family:Georgia,serif; font-size:30px; cursor:pointer; }
.ls-preview-controls div { min-width:0; text-align:center; }
.ls-preview-controls strong,.ls-preview-controls span { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.ls-preview-controls strong { font-size:13px; }
.ls-preview-controls span { margin-top:3px; color:#c9cac5; font-size:10px; }

@media (max-width:760px) {
  .ls-app { min-height:calc(100vh - 42px); }
  .ls-intro { min-height:auto; padding:0 0 30px; display:flex; flex-direction:column-reverse; gap:0; }
  .ls-cover { width:100%; max-width:none; height:min(49dvh, 430px); aspect-ratio:auto; }
  .ls-cover::before { inset:12px; }
  .ls-cover img { object-position:center 65%; }
  .ls-cover figcaption { left:22px; right:22px; bottom:18px; }
  .ls-intro-copy { width:100%; padding:26px 22px 0; }
  .ls-kicker { margin-bottom:12px; font-size:12px; }
  .ls-intro h1 { font-size:39px; line-height:1.2; }
  .ls-lead { margin:15px 0 20px; font-size:16px; line-height:1.7; }
  .ls-primary { max-width:none; min-height:52px; }
  .ls-intro-note { text-align:center; }
  .ls-question { min-height:calc(100dvh - 42px); padding:20px 16px 14px; }
  .ls-question-stage { justify-content:flex-start; padding:clamp(22px, 5dvh, 44px) 0 12px; }
  .ls-question-stage h2 { min-height:0; margin-bottom:20px; font-size:24px; line-height:1.42; }
  .ls-options { gap:8px; }
  .ls-option { min-height:60px; padding:9px 12px 9px 10px; grid-template-columns:34px 1fr; gap:8px; }
  .ls-option span { width:28px; height:28px; font-size:12px; }
  .ls-option strong { font-size:14px; line-height:1.45; }
  .ls-question-nav { margin-top:auto; min-height:34px; }
  .ls-result { padding:18px 14px 56px; }
  .ls-result-stage { width:min(100%, 462px); }
  .ls-actions { margin:13px 2px 0; }
  .ls-report { margin-top:54px; padding:0 8px; }
  .ls-report-intro { padding-bottom:32px; }
  .ls-report-intro h2 { font-size:30px; }
  .ls-report-intro > p:nth-of-type(2) { margin-top:16px; font-size:17px; line-height:1.85; }
  .ls-dimensions,.ls-reading,.ls-related,.ls-books { padding:42px 0; }
  .ls-section-heading { grid-template-columns:34px 1fr; gap:12px; margin-bottom:26px; }
  .ls-section-heading h3 { font-size:25px; }
  .ls-dimension-list { grid-template-columns:1fr; gap:18px; }
  .ls-reading-list { grid-template-columns:1fr; }
  .ls-reading-item { min-height:0; padding:24px 0; }
  .ls-reading-item:nth-child(2) { padding-top:24px; border-top:1px solid var(--ls-line); }
  .ls-reading-item h4 { font-size:20px; }
  .ls-reading-item div { font-size:15px; line-height:1.85; }
  .ls-gentle-advice { margin-top:42px; padding:26px 24px 30px; }
  .ls-gentle-advice h3 { font-size:22px; }
  .ls-gentle-advice strong { font-size:16px; }
  .ls-related-list { grid-template-columns:1fr; }
  .ls-related-item { min-height:132px; }
}

@media (max-width:370px) {
  .ls-cover { height:43dvh; }
  .ls-intro-copy { padding:20px 18px 0; }
  .ls-intro h1 { font-size:35px; }
  .ls-lead { margin:12px 0 16px; font-size:15px; }
  .ls-question-stage { padding-top:20px; }
  .ls-question-stage h2 { font-size:22px; margin-bottom:15px; }
  .ls-option { min-height:56px; }
  .ls-option strong { font-size:13px; }
}

@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  * { transition:none !important; }
}
