:root{
  --bg:#0f0f14; --bg2:#16161f; --card:#1d1d28; --line:#2a2a38;
  --ink:#e8e6e0; --ink2:#a8a4b8; --dim:#6f6c80;
  --gold:#d9b36b; --gold2:#f0d199; --red:#c8553d; --jade:#5fb39a;
  --blue:#6a8fc7; --shadow:0 8px 30px rgba(0,0,0,.45);
  /* 五行色 */
  --wood:#4caf50; --fire:#f44336; --earth:#ff9800;
  --metal:#90a4ae; --water:#29b6f6;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  background:radial-gradient(1200px 600px at 70% -10%,#23202e 0%,var(--bg) 55%) ,var(--bg);
  color:var(--ink); font-family:"Songti SC","STSong",-apple-system,"PingFang SC",serif;
  line-height:1.7; -webkit-font-smoothing:antialiased;
}
.wrap{max-width:1000px;margin:0 auto;padding:0 20px}
header.hero{
  padding:70px 0 50px;text-align:center;position:relative;overflow:hidden;
}
.hero h1{font-size:42px;letter-spacing:6px;color:var(--gold2);
  text-shadow:0 0 28px rgba(217,179,107,.25);font-weight:700}
.hero .sub{color:var(--ink2);margin-top:14px;font-size:16px;letter-spacing:2px}
.hero .tag{display:inline-block;margin-top:22px;padding:6px 16px;border:1px solid var(--gold);
  border-radius:30px;color:var(--gold2);font-size:13px;letter-spacing:1px}
.taiji{width:64px;height:64px;border-radius:50%;margin:0 auto 22px;
  background:linear-gradient(90deg,#000 50%,#fff 50%);
  position:relative;box-shadow:0 0 30px rgba(217,179,107,.3)}
.taiji::before{content:"";position:absolute;width:32px;height:32px;left:0;top:0;
  border-radius:50%;background:#000;box-shadow:inset 0 -16px 0 0 #fff}
.taiji::after{content:"";position:absolute;width:8px;height:8px;border-radius:50%;
  left:24px;top:8px;background:#fff;box-shadow:0 32px 0 0 #000}

nav{position:sticky;top:0;z-index:50;background:rgba(15,15,20,.86);
  backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
nav .wrap{display:flex;gap:6px;overflow-x:auto;padding:10px 20px}
nav a{color:var(--ink2);text-decoration:none;font-size:13px;padding:6px 12px;
  border-radius:8px;white-space:nowrap;transition:.2s}
nav a:hover{color:var(--gold2);background:var(--card)}

section{padding:54px 0;border-bottom:1px solid var(--line)}
h2{font-size:26px;color:var(--gold2);letter-spacing:3px;margin-bottom:6px}
h2 small{display:block;color:var(--dim);font-size:13px;letter-spacing:1px;margin-top:6px}
h3{color:var(--gold);font-size:18px;margin:18px 0 8px;letter-spacing:1px}
p{color:var(--ink2);margin:8px 0}
.lead{color:var(--ink);font-size:16px}

.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;margin-top:20px}
.card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:18px;
  transition:.25s;cursor:default}
.card:hover{transform:translateY(-3px);border-color:var(--gold);box-shadow:var(--shadow)}
.card .ic{font-size:24px;color:var(--gold)}
.card h4{color:var(--ink);margin:8px 0 6px;font-size:16px;letter-spacing:1px}
.card p{font-size:14px;margin:0}
.card.clickable{cursor:pointer}
.card.clickable:active{transform:scale(.98)}
.card.clickable::after{content:"▸ 点开看详解";display:block;margin-top:10px;font-size:12px;
  color:var(--gold);opacity:.7;letter-spacing:1px}
.card.clickable.on{border-color:var(--gold);box-shadow:var(--shadow)}
.idea-case{display:block;background:var(--card);border:1px solid var(--gold);
  border-radius:14px;padding:22px;margin-top:18px;animation:fade .3s}
.idea-case.on{display:block;animation:fade .3s}
.idea-case .ac-title{color:var(--gold2);font-size:17px;margin-bottom:4px;letter-spacing:1px}
.idea-case .ac-sub{color:var(--dim);font-size:13px;margin-bottom:14px}
.idea-case .cmp{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:14px 0}
.idea-case .cmp .col{background:var(--bg2);border-radius:10px;padding:14px}
.idea-case .cmp .col h5{color:var(--gold);font-size:14px;margin-bottom:10px}
.idea-case .verdict{margin-top:12px;padding:12px 14px;background:rgba(217,179,107,.1);
  border-radius:10px;border-left:3px solid var(--gold);color:var(--ink2);font-size:14px;line-height:1.7}
.step-case{margin-top:16px;padding:16px 18px;background:rgba(217,179,107,.07);
  border:1px dashed var(--gold);border-radius:12px}
.step-case .sc-h{color:var(--gold2);font-size:15px;margin-bottom:10px;letter-spacing:.5px}
.step-case p{font-size:13.5px;color:var(--ink2);line-height:1.85;margin:6px 0}
.step-case .paipan-table{margin:10px 0}
/* 关键术语标注 */
.hl-term{display:inline;padding:1px 6px;border-radius:4px;
  background:linear-gradient(135deg,rgba(217,179,107,.25),rgba(217,179,107,.12));
  border-bottom:2px solid var(--gold);color:var(--gold2);font-weight:700;letter-spacing:.5px}
.read-from{margin:12px 0 4px;padding:14px 16px;background:rgba(79,143,217,.06);
  border:1px solid rgba(79,143,217,.3);border-left:3px solid var(--gold);border-radius:10px}
.read-from .rf-h{color:var(--gold2);font-size:13px;margin-bottom:10px;letter-spacing:.5px}
.read-from .rf-row{display:flex;gap:8px;align-items:baseline;margin:7px 0;font-size:13px;color:var(--ink2);line-height:1.6}
.read-from .rf-arrow{color:var(--gold);font-weight:700;flex:0 0 auto}
.read-from .rf-src{flex:1}
.read-from .rf-src b{color:var(--ink)}
@media(max-width:640px){.idea-case .cmp{grid-template-columns:1fr}.card.clickable::after{content:""}}

/* steps */
.stepbar{display:flex;gap:8px;flex-wrap:wrap;margin:24px 0}
.stepbtn{flex:1;min-width:120px;background:var(--bg2);border:1px solid var(--line);
  color:var(--ink2);border-radius:10px;padding:12px 10px;text-align:center;cursor:pointer;
  transition:.2s;font-size:14px}
.stepbtn .n{display:block;font-size:20px;color:var(--gold);font-weight:700}
.stepbtn.active{border-color:var(--gold);background:var(--card);color:var(--gold2)}
.stepbtn:hover{color:var(--gold2)}
.stepbody{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:24px;
  min-height:160px;display:none}
.stepbody.show{display:block;animation:fade .3s}
@keyframes fade{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.stepbody ul{margin:10px 0 0 18px}
.stepbody li{color:var(--ink2);margin:6px 0}
.stepbody b{color:var(--gold2)}
.flag{display:inline-block;background:rgba(217,179,107,.14);color:var(--gold2);
  border:1px solid var(--gold);border-radius:6px;padding:1px 8px;font-size:12px;margin-right:6px}

/* worksheet */
.sheet{background:var(--bg2);border:1px dashed var(--gold);border-radius:14px;padding:22px;margin-top:22px}
.sheet h3{margin-top:0}
.grid4{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.grid4 input,.sheet input[type=text]{width:100%;background:#0c0c11;border:1px solid var(--line);
  color:var(--ink);border-radius:8px;padding:10px;text-align:center;font-size:16px;font-family:inherit}
.grid4 label{font-size:12px;color:var(--dim);text-align:center;display:block;margin-bottom:4px}
.sheet .q{margin:14px 0;color:var(--ink2)}
.sheet .q b{color:var(--gold2)}
.sheet textarea{width:100%;min-height:60px;background:#0c0c11;border:1px solid var(--line);
  color:var(--ink);border-radius:8px;padding:10px;font-family:inherit;resize:vertical}

/* ===== 排盘表格 ===== */
.case-tabs{display:flex;gap:6px;flex-wrap:wrap;margin:18px 0 0}
.ctab{background:var(--bg2);border:1px solid var(--line);color:var(--ink2);border-radius:10px;
  padding:9px 16px;cursor:pointer;transition:.2s;font-size:13px;white-space:nowrap}
.ctab:hover{border-color:var(--gold);color:var(--gold2)}
.ctab.on{border-color:var(--gold);color:var(--gold2);background:var(--card)}

.case-panel{display:none}
.case-panel.on{display:block;animation:fade .3s}

.case-head{display:flex;align-items:center;gap:16px;background:var(--bg2);
  border:1px solid var(--line);border-radius:14px;padding:18px 22px;margin-bottom:18px}
.case-avatar{width:56px;height:56px;border-radius:50%;border:2px solid var(--gold);
  display:flex;align-items:center;justify-content:center;font-size:26px;background:var(--card);
  flex-shrink:0}
.case-meta{flex:1}
.case-meta .cname{font-size:18px;color:var(--gold2);font-weight:700;letter-spacing:1px}
.case-meta .cdate{font-size:13px;color:var(--dim);margin-top:2px}
.case-meta .csolar{font-size:12px;color:var(--ink2)}

.pptabs{display:flex;gap:0;background:var(--bg2);border-radius:10px;overflow:hidden;
  border:1px solid var(--line);margin-bottom:16px}
.pptab{flex:1;text-align:center;padding:10px 12px;cursor:pointer;font-size:14px;
  color:var(--ink2);transition:.2s;border-right:1px solid var(--line)}
.pptab:last-child{border-right:none}
.pptab.on{background:var(--card);color:var(--gold2);font-weight:600}
.ppview{display:none}
.ppview.on{display:block;animation:fade .3s}

.paipan-table{width:100%;border-collapse:collapse;font-size:14px;
  background:var(--card);border:1px solid var(--line);border-radius:12px;overflow:hidden}
.paipan-table th{background:var(--bg2);color:var(--dim);font-size:12px;padding:10px 8px;
  font-weight:400;letter-spacing:1px;border-bottom:1px solid var(--line)}
.paipan-table td{padding:10px 8px;text-align:center;border-bottom:1px solid var(--line);
  vertical-align:middle;line-height:1.6}
.paipan-table tr:last-child td{border-bottom:none}
.paipan-table .rl{background:rgba(255,255,255,.03);color:var(--dim);
  font-size:12px;width:60px;white-space:nowrap;font-weight:500}

.tg{font-size:24px;font-weight:700;letter-spacing:2px}
.dz{font-size:22px;font-weight:700;letter-spacing:2px}
.w-wood{color:var(--wood)}
.w-fire{color:var(--fire)}
.w-earth{color:var(--earth)}
.w-metal{color:var(--metal)}
.w-water{color:var(--water)}

.cg{font-size:12px;color:var(--ink2);line-height:1.8}
.cg span{display:inline-block;margin:1px 2px}

.ss{font-size:13px;color:var(--blue)}
.ss-good{color:var(--jade)}
.ss-bad{color:var(--red)}

.xy{font-size:11px;padding:2px 6px;border-radius:4px;background:rgba(217,179,107,.1);
  color:var(--gold2);display:inline-block;margin:1px}

.analysis{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:20px}
.ana-row{display:grid;grid-template-columns:90px 1fr;gap:14px;padding:14px 0;
  border-bottom:1px solid var(--line)}
.ana-row:first-child{padding-top:0}
.ana-row:last-child{border-bottom:none}
.ana-k{color:var(--gold);font-size:14px;font-weight:600;white-space:nowrap}
.ana-v{color:var(--ink2);font-size:14px;line-height:1.7}

.note{color:var(--dim);font-size:12px;font-style:italic;margin-top:14px;
  padding:10px 14px;background:rgba(0,0,0,.2);border-radius:8px}

/* quiz */
.quiz-item{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:20px;margin:14px 0}
.quiz-item .ask{color:var(--ink);font-size:16px;margin-bottom:12px}
.opt{display:block;background:var(--bg2);border:1px solid var(--line);border-radius:10px;
  padding:11px 14px;margin:8px 0;cursor:pointer;transition:.2s;color:var(--ink2)}
.opt:hover{border-color:var(--gold)}
.opt.correct{background:rgba(95,179,154,.15);border-color:var(--jade);color:var(--jade)}
.opt.wrong{background:rgba(200,85,61,.15);border-color:var(--red);color:#e89}
.opt .mk{font-weight:700;margin-right:8px}
.explain{display:none;margin-top:10px;padding:12px;background:#0c0c11;border-radius:10px;
  color:var(--ink2);font-size:14px;border-left:3px solid var(--gold)}
.explain.show{display:block}
.score{margin-top:18px;text-align:center;font-size:18px;color:var(--gold2)}

footer{padding:40px 0;text-align:center;color:var(--dim);font-size:13px}
footer a{color:var(--gold2);text-decoration:none}
.hl{color:var(--gold2)}
.yl{color:var(--jade)} .rd{color:var(--red)} .bl{color:var(--blue)}
.toggle{background:var(--bg2);border:1px solid var(--line);color:var(--gold2);border-radius:8px;
  padding:8px 14px;cursor:pointer;font-family:inherit;font-size:14px;margin-top:12px}
.toggle:hover{border-color:var(--gold)}
details{border:1px solid var(--line);border-radius:12px;padding:6px 16px;margin:10px 0;background:var(--card)}
details summary{cursor:pointer;color:var(--gold2);padding:10px 0;font-size:15px;list-style:none}
details summary::-webkit-details-marker{display:none}
details summary::before{content:"▸ ";color:var(--gold)}
details[open] summary::before{content:"▾ "}
details .ans{color:var(--ink2);padding-bottom:12px;font-size:14px}
@media(max-width:640px){
  .grid4{grid-template-columns:repeat(2,1fr)}
  .hero h1{font-size:30px}
  .paipan-table{font-size:11px}
  .tg{font-size:18px}.dz{font-size:16px}
  .case-head{flex-direction:column;text-align:center}
  .ana-row{grid-template-columns:1fr;gap:4px}
  .ana-k{color:var(--gold2)}
}
/* 五行生克关系图 */
.wuxing-rel{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:18px}
.wuxing-rel .box{background:var(--bg2);border:1px solid var(--line);border-radius:14px;padding:18px}
.wuxing-rel .box h4{color:var(--gold);margin-bottom:12px;letter-spacing:1px}
.chain{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.chain .node{padding:6px 12px;border-radius:8px;font-weight:700;font-size:15px}
.chain .arrow{color:var(--gold);font-weight:700}
