:root { color-scheme: light; --wine:#792f29; --deep:#3f1c1a; --paper:#fffdf8; --sand:#f5f0e7; --ink:#332b25; --muted:#8b7f73; --line:#e8ded1; --gold:#b58a5d; }
* { box-sizing:border-box; }
html,body { margin:0; min-height:100%; background:var(--sand); color:var(--ink); font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC",sans-serif; }
body { padding-bottom:env(safe-area-inset-bottom); }
button,input,select { font:inherit; }
button { border:0; }
.shell { min-height:100vh; max-width:560px; margin:auto; }
.hero { position:relative; padding:calc(40px + env(safe-area-inset-top)) 20px 54px; color:#fffaf1; background:linear-gradient(150deg,var(--deep),#84372e); }
.brand { font-size:13px; letter-spacing:5px; opacity:.75; }
.hero h1 { margin:17px 0 10px; max-width:430px; font-family:Georgia,"Songti SC",serif; font-size:30px; line-height:1.3; }
.hero p { margin:0; font-size:14px; opacity:.7; }
.content { position:relative; z-index:1; padding:0 20px 36px; }
.card { margin-top:-24px; padding:24px 20px; background:var(--paper); border:1px solid rgba(125,49,41,.06); border-radius:20px; box-shadow:0 12px 35px rgba(70,40,25,.08); }
h2 { margin:0 0 6px; font:600 22px/1.35 Georgia,"Songti SC",serif; }
.subtle { margin:0 0 18px; color:var(--muted); font-size:13px; line-height:1.5; }
.field { display:block; padding:17px 0; border-bottom:1px solid var(--line); }
.field:last-of-type { border-bottom:0; }
.field span { display:block; margin-bottom:9px; color:#71675e; font-size:13px; }
.field input,.field select { width:100%; height:44px; padding:0 12px; color:var(--ink); background:#f5f0e8; border:1px solid #e6dbcd; border-radius:12px; outline:none; }
.segment,.tabs { display:grid; grid-auto-flow:column; grid-auto-columns:1fr; gap:5px; padding:5px; background:#e9e1d6; border-radius:13px; }
.segment button,.tabs button { min-height:40px; color:#82756b; background:transparent; border-radius:9px; }
.segment button.active,.tabs button.active { color:var(--wine); background:var(--paper); font-weight:650; box-shadow:0 3px 10px rgba(70,40,25,.08); }
.primary,.secondary { display:flex; width:100%; min-height:50px; align-items:center; justify-content:center; border-radius:14px; font-weight:650; cursor:pointer; }
.primary { margin-top:22px; color:#fffaf3; background:var(--wine); }
.secondary { margin-top:12px; color:var(--wine); background:transparent; border:1px solid #b89184; }
button:disabled { opacity:.65; cursor:wait; }
button:focus-visible,input:focus-visible,select:focus-visible,a:focus-visible { outline:3px solid rgba(121,47,41,.35); outline-offset:2px; }
.notice { padding:18px 4px 0; color:#9c9186; font-size:11px; line-height:1.6; text-align:center; }
.culture { display:grid; grid-template-columns:54px 1fr; gap:14px; align-items:center; margin-top:-24px; padding:18px; color:#594b3e; background:linear-gradient(140deg,#fff8eb,#ead9bd); border:1px solid #d9c09b; border-radius:18px; box-shadow:0 10px 30px rgba(70,40,25,.08); }
.culture .seal { display:grid; width:54px; height:54px; place-items:center; color:#fff8e9; background:#963d31; border:2px solid #b76555; border-radius:8px; font:600 15px/1.1 Georgia,serif; writing-mode:vertical-rl; letter-spacing:3px; }.culture strong { font:600 17px Georgia,serif; }.culture p { margin:6px 0 0; color:#796b5c; font-size:12px; line-height:1.5; }.card.after-culture { margin-top:14px; }
.top { position:relative; padding:calc(28px + env(safe-area-inset-top)) 20px 20px; }
.eyebrow { color:#9a4a3f; font-size:12px; letter-spacing:3px; }
.top h1 { margin:10px 0 6px; font:600 28px/1.3 Georgia,"Songti SC",serif; }
.period { margin:0 20px 18px; padding:8px; background:#e9e1d6; border-radius:16px; }
.referral-card { display:flex; gap:14px; align-items:center; justify-content:space-between; margin:0 20px 16px; padding:16px; color:#fff8ef; background:linear-gradient(135deg,#66302a,#9a4b3d); border-radius:16px; box-shadow:0 8px 24px rgba(78,35,29,.16); }.referral-card strong { font-family:Georgia,"Songti SC",serif; }.referral-card p { margin:5px 0; font-size:12px; line-height:1.45; opacity:.8; }.referral-card small { opacity:.7; }.referral-card button,.reward button { flex:0 0 auto; padding:10px 12px; color:var(--wine); background:#fff8eb; border-radius:10px; font-weight:650; }
.period-help { display:flex; justify-content:space-between; gap:10px; padding:5px 5px 10px; color:#74685e; font-size:11px; }.period-help strong { color:var(--wine); }.period-help span { text-align:right; }
.date-row { display:flex; gap:12px; align-items:center; justify-content:space-between; margin-top:8px; padding:12px 9px 5px; border-top:1px solid #d8cdbf; color:#74685e; font-size:13px; }
.date-row input { max-width:150px; color:var(--ink); background:transparent; border:0; }
.topics { display:grid; gap:12px; padding:0 20px 36px; }
.topic { display:grid; grid-template-columns:46px minmax(0,1fr) 18px; gap:14px; align-items:center; min-height:82px; padding:16px; color:var(--ink); background:var(--paper); border:1px solid var(--line); border-radius:17px; text-align:left; box-shadow:0 6px 20px rgba(64,40,25,.04); }
.topic-icon { display:grid; width:46px; height:46px; place-items:center; color:#fff8eb; background:var(--wine); border-radius:50%; font-family:serif; }
.topic strong { display:block; font-size:16px; }.topic small { display:block; margin-top:5px; color:var(--muted); line-height:1.4; }.arrow { color:#b1a397; font-size:25px; }
.result-hero { position:relative; padding:calc(30px + env(safe-area-inset-top)) 20px 54px; color:#fffaf1; background:linear-gradient(145deg,var(--deep),#80362d); }
.language { position:absolute; top:calc(14px + env(safe-area-inset-top)); right:16px; min-width:44px; padding:7px 10px; color:inherit; background:rgba(255,255,255,.13); border:1px solid rgba(255,255,255,.22); border-radius:999px; font-size:12px; }
.admin-link { display:block; width:max-content; margin:14px 0; padding:8px 12px; color:var(--wine); background:#fff8eb; border:1px solid #d8c3a7; border-radius:999px; font-size:12px; font-weight:650; }.top>.admin-link { margin:0 0 12px; }
.top .language { color:var(--wine); background:#fffdf8; border-color:var(--line); }
.badge { font-size:12px; letter-spacing:2px; opacity:.75; }.result-hero h1 { margin:15px 0 12px; font:600 26px/1.4 Georgia,"Songti SC",serif; }.meta { font-size:11px; line-height:1.5; opacity:.64; }
.summary { position:relative; margin-top:-23px; padding:25px 20px; background:var(--paper); border-radius:18px; box-shadow:0 9px 28px rgba(60,35,20,.08); font-size:15px; line-height:1.8; }
.section { margin-top:28px; }.section h3 { margin:0 0 14px; color:var(--wine); font:600 19px Georgia,"Songti SC",serif; }
.point,.advice,.evidence { margin-bottom:10px; padding:16px; background:var(--paper); border-radius:14px; font-size:14px; line-height:1.7; }
.teaser { display:block; margin-top:22px; padding:18px; color:#fff9f1; background:linear-gradient(145deg,#6a2925,#943f34); border-radius:16px; box-shadow:0 10px 26px rgba(75,30,26,.14); }.teaser small,.teaser strong { display:block; }.teaser small { margin-bottom:8px; letter-spacing:1px; opacity:.72; }.teaser strong { font:600 16px/1.6 Georgia,"Songti SC",serif; }.teaser p { margin:10px 0 0; font-size:12px; line-height:1.6; opacity:.75; }
.advice { background:#ebe2d5; border-left:4px solid #a36a56; }.evidence { color:#75695f; border:1px dashed #c9b8a6; }
.paywall { margin-top:26px; padding:20px; background:linear-gradient(145deg,#fffdf8,#f4e8d8); border:1px solid #dec9ae; border-radius:18px; }
.paywall h3 { margin:0; font:600 20px Georgia,"Songti SC",serif; }.paywall p { margin:8px 0 14px; color:#75695f; font-size:13px; line-height:1.6; }
.unlock-list { display:grid; gap:8px; margin:0 0 16px; padding:0; list-style:none; color:#65584d; font-size:12px; }.unlock-list li::before { content:'✓'; margin-right:8px; color:var(--wine); font-weight:700; }
.reward { display:flex; gap:12px; align-items:center; justify-content:space-between; margin:12px 0; padding:13px; color:#74402f; background:#f2dfbd; border-radius:12px; font-size:13px; }.share-result { width:100%; margin-top:10px; padding:11px; color:var(--wine); background:transparent; border:1px solid #c6a887; border-radius:11px; }
.offer { display:flex; gap:12px; align-items:center; justify-content:space-between; padding:13px 0; border-top:1px solid #e7d8c7; }.offer-copy strong,.offer-copy small { display:block; }.offer-copy small { margin-top:4px; color:var(--muted); }.buy { flex:0 0 auto; padding:10px 13px; color:#fff; background:var(--wine); border-radius:11px; font-weight:650; }.popular { color:#9c5a27; font-size:10px; }
.loader { display:grid; min-height:75vh; place-items:center; color:var(--muted); }.spinner { width:38px; height:38px; margin:0 auto 16px; border:4px solid #e4d8ca; border-top-color:var(--wine); border-radius:50%; animation:spin .8s linear infinite; } @keyframes spin { to { transform:rotate(360deg) } }
.toast { position:fixed; z-index:20; left:50%; bottom:calc(22px + env(safe-area-inset-bottom)); width:max-content; max-width:calc(100% - 40px); padding:11px 15px; color:white; background:rgba(40,32,27,.92); border-radius:11px; font-size:13px; opacity:0; pointer-events:none; transform:translate(-50%,12px); transition:.2s; }.toast.show { opacity:1; transform:translate(-50%,0); }
.legal-links { display:flex; max-width:560px; margin:0 auto; padding:20px 20px calc(24px + env(safe-area-inset-bottom)); justify-content:center; gap:20px; flex-wrap:wrap; font-size:11px; line-height:1.5; }.legal-links a { color:var(--muted); text-decoration:none; }
.legal-page { max-width:680px; margin:0 auto; padding:36px 22px 60px; line-height:1.75; }.legal-page h1 { color:var(--deep); font:600 30px/1.3 Georgia,"Songti SC",serif; }.legal-page h2 { margin-top:28px; font-size:18px; }.legal-page p,.legal-page li { color:#62574d; }.legal-page a { color:var(--wine); }
@media (max-width:380px) { .hero h1 { font-size:26px; }.content,.topics { padding-left:14px; padding-right:14px; }.tabs { grid-auto-flow:row; grid-template-columns:repeat(2,1fr); }.offer { align-items:flex-start; }.topic { grid-template-columns:42px minmax(0,1fr) 14px; gap:10px; padding:13px; } }
.history-list { padding-top:8px; }.history-item { display:grid; gap:6px; padding:16px; background:var(--paper); border:1px solid var(--line); border-radius:14px; }.history-item strong { overflow-wrap:anywhere; }.history-item small { color:var(--muted); }
@media (min-width:600px) { body { padding:24px 0; }.shell { min-height:calc(100vh - 48px); overflow:hidden; border-radius:24px; box-shadow:0 20px 70px rgba(40,25,16,.16); } }
