/* 퍼플리카 자미두수 — 공유 스타일 (성반 방향) */
:root{
  --ink:#18151F;
  --paper:#FFFFFF;
  --paper2:#FAF8FC;
  --muted:#6E6A7A;
  --faint:#9D99A8;
  --line:#E8E5EE;
  --line-soft:#F0EDF4;
  --purple:#6A4C9C;
  --purple-deep:#42305F;
  --purple-tint:#F2ECFB;
  --sans:'Pretendard',-apple-system,BlinkMacSystemFont,system-ui,sans-serif;
  --mono:'IBM Plex Mono',ui-monospace,monospace;
  --maxw:1160px;
  --pad:40px;
}
*{box-sizing:border-box;}
html,body{margin:0;padding:0;}
body{background:var(--paper);color:var(--ink);font-family:var(--sans);
  -webkit-font-smoothing:antialiased;letter-spacing:-0.01em;line-height:1.5;}
a{color:inherit;text-decoration:none;}
img{max-width:100%;}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 var(--pad);}

/* ---------- Header ---------- */
.nav{position:sticky;top:0;z-index:20;background:rgba(255,255,255,0.86);
  backdrop-filter:saturate(150%) blur(12px);border-bottom:1px solid var(--line);}
.nav-in{max-width:var(--maxw);margin:0 auto;padding:0 var(--pad);height:72px;
  display:flex;align-items:center;justify-content:space-between;}
.brand{display:flex;align-items:center;gap:11px;flex:0 0 auto;white-space:nowrap;}
.brand-mark{width:32px;height:32px;border-radius:50%;background:var(--purple);color:#fff;
  display:flex;align-items:center;justify-content:center;font-size:16px;font-weight:700;font-family:var(--mono);}
.brand b{font-size:18px;font-weight:800;letter-spacing:-0.02em;display:block;line-height:1.1;}
.brand span{font-family:var(--mono);font-size:10px;color:var(--faint);letter-spacing:0.14em;
  text-transform:uppercase;display:block;margin-top:1px;}
.nav-links{display:flex;gap:28px;align-items:center;}
.nav-links a{font-size:14.5px;font-weight:600;white-space:nowrap;color:var(--ink);padding:6px 0;
  border-bottom:2px solid transparent;transition:color .15s,border-color .15s;}
.nav-links a:hover{color:var(--purple);}
.nav-links a.active{color:var(--purple);border-color:var(--purple);}

/* ---------- Hero + 명반 ---------- */
.hero{background:linear-gradient(180deg,var(--purple-tint) 0%,var(--paper2) 72%,var(--paper) 100%);
  border-bottom:1px solid var(--line);}
.hero-in{max-width:var(--maxw);margin:0 auto;padding:64px var(--pad) 76px;
  display:grid;grid-template-columns:1fr auto;gap:56px;align-items:center;}
.kicker{font-family:var(--mono);font-size:12px;letter-spacing:0.16em;color:var(--purple);
  text-transform:uppercase;margin-bottom:20px;}
.h1{font-size:clamp(34px,4.4vw,54px);line-height:1.1;font-weight:800;letter-spacing:-0.035em;margin:0 0 22px;}
.h1 em{font-style:normal;color:var(--purple);}
.lead{font-size:16.5px;line-height:1.8;color:var(--muted);margin:0 0 30px;max-width:44ch;}
.cta{display:flex;gap:12px;align-items:center;flex-wrap:wrap;}
.btn{display:inline-flex;align-items:center;gap:8px;background:var(--purple);color:#fff;
  font-size:14.5px;font-weight:700;border:none;border-radius:10px;padding:13px 24px;
  cursor:pointer;font-family:var(--sans);white-space:nowrap;transition:background .15s,transform .12s;}
.btn:hover{background:var(--purple-deep);}
.btn.ghost{background:transparent;color:var(--ink);border:1px solid var(--line);}
.btn.ghost:hover{border-color:var(--purple);color:var(--purple);}

.chart{width:min(520px,46vw);aspect-ratio:1/1;display:grid;
  grid-template-columns:repeat(4,1fr);grid-template-rows:repeat(4,1fr);
  background:var(--paper);border:1.5px solid var(--ink);
  box-shadow:0 28px 70px -30px rgba(66,48,95,0.5);}
.cell{border:0.5px solid var(--line);padding:clamp(8px,1vw,14px);display:flex;flex-direction:column;
  justify-content:space-between;cursor:default;transition:background .15s;overflow:hidden;}
.cell:hover{background:var(--purple-tint);}
.cell .cn{font-family:var(--mono);font-size:10px;color:var(--faint);letter-spacing:0.08em;}
.cell .ck{font-size:clamp(14px,1.4vw,18px);font-weight:800;letter-spacing:-0.02em;}
.cell .ck small{font-size:0.62em;color:var(--faint);font-weight:500;margin-left:4px;}
.cell .cd{font-size:clamp(10px,0.92vw,11px);color:var(--muted);line-height:1.4;margin-top:3px;}
.cell.center{grid-column:2 / 4;grid-row:2 / 4;border:1.5px solid var(--ink);
  background:var(--purple-deep);color:#fff;align-items:center;justify-content:center;gap:8px;}
.cell.center .lab{font-family:var(--mono);font-size:10px;letter-spacing:0.2em;opacity:0.75;text-transform:uppercase;}
.cell.center .ming{font-size:clamp(28px,3.4vw,42px);font-weight:800;letter-spacing:0.05em;}
.cell.center .who{font-size:13px;font-weight:600;opacity:0.9;}

/* ---------- Sections ---------- */
.section{padding:64px 0;border-top:1px solid var(--line);}
.section:first-of-type{border-top:none;}
.section-head{display:flex;align-items:baseline;justify-content:space-between;gap:20px;margin-bottom:30px;}
.section-head h2{font-size:26px;font-weight:800;letter-spacing:-0.025em;margin:0;}
.section-head h2 em{color:var(--purple);font-style:normal;font-family:var(--mono);font-size:14px;
  margin-left:10px;font-weight:500;}
.section-head .more{font-size:13.5px;font-weight:600;color:var(--purple);white-space:nowrap;}
.section-head .more:hover{text-decoration:underline;}

/* 기초 가이드 카드 */
.guides{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;}
.gcard{display:flex;gap:20px;border:1px solid var(--line);border-radius:16px;padding:26px;
  background:var(--paper);cursor:pointer;transition:border-color .15s,box-shadow .15s,transform .12s;}
.gcard:hover{border-color:var(--purple);box-shadow:0 16px 36px -22px rgba(66,48,95,0.45);transform:translateY(-2px);}
.gcard .gno{font-family:var(--mono);font-size:15px;color:var(--purple);font-weight:500;flex:0 0 auto;padding-top:3px;}
.gcard h3{font-size:20px;font-weight:800;letter-spacing:-0.02em;margin:0 0 6px;}
.gcard .gsub{font-size:13.5px;font-weight:600;color:var(--purple);margin:0 0 9px;}
.gcard .gdesc{font-size:13.5px;line-height:1.65;color:var(--muted);margin:0;}

/* 데일리 카드 */
.daily{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;}
.dcard{border:1px solid var(--line);border-radius:14px;padding:26px;cursor:pointer;background:var(--paper);
  transition:border-color .15s,box-shadow .15s,transform .12s;}
.dcard:hover{border-color:var(--purple);box-shadow:0 14px 32px -20px rgba(66,48,95,0.42);transform:translateY(-2px);}
.dmeta{display:flex;gap:9px;align-items:center;margin-bottom:13px;}
.ddate{font-family:var(--mono);font-size:11px;color:var(--faint);}
.tag{font-size:11px;font-weight:700;color:var(--purple);background:var(--purple-tint);
  padding:3px 9px;border-radius:5px;white-space:nowrap;}
.dcard h3{font-size:19px;font-weight:700;letter-spacing:-0.02em;margin:0 0 9px;line-height:1.4;}
.dcard p{font-size:14px;line-height:1.65;color:var(--muted);margin:0;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}

/* 14주성 사전 */
.stars{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;}
.scard{border:1px solid var(--line);border-radius:12px;padding:20px;cursor:default;
  transition:background .15s,border-color .15s;}
.scard:hover{background:var(--purple-tint);border-color:var(--purple);}
.shead{display:flex;align-items:center;gap:8px;margin-bottom:10px;}
.sdot{width:8px;height:8px;border-radius:50%;flex:0 0 auto;}
.sko{font-size:16px;font-weight:800;letter-spacing:-0.02em;}
.shj{font-family:var(--mono);font-size:11px;color:var(--faint);margin-left:auto;}
.sep{font-size:12.5px;font-weight:700;color:var(--purple);margin:0 0 6px;}
.sdesc{font-size:12.5px;line-height:1.6;color:var(--muted);margin:0;}

/* 12궁 설명 */
.palaces{display:grid;grid-template-columns:repeat(3,1fr);gap:0 40px;}
.prow{display:flex;gap:14px;align-items:baseline;padding:16px 0;border-top:1px solid var(--line-soft);}
.pno{font-family:var(--mono);font-size:12px;color:var(--purple);flex:0 0 22px;}
.pko{font-size:15.5px;font-weight:700;letter-spacing:-0.01em;white-space:nowrap;}
.phj{font-family:var(--mono);font-size:11px;color:var(--faint);}
.pdesc{font-size:13px;color:var(--muted);line-height:1.5;margin-top:3px;}

/* ---------- Footer ---------- */
.footer{border-top:1px solid var(--ink);margin-top:24px;}
.footer-in{max-width:var(--maxw);margin:0 auto;padding:40px var(--pad) 52px;
  display:flex;justify-content:space-between;align-items:flex-end;gap:24px;flex-wrap:wrap;}
.footer .fb{display:flex;align-items:center;gap:11px;}
.footer .fmeta{font-family:var(--mono);font-size:11px;color:var(--faint);letter-spacing:0.06em;line-height:1.7;}
.footer .fnav{display:flex;gap:22px;font-size:13px;font-weight:600;color:var(--muted);flex-wrap:wrap;}
.footer .fnav a:hover{color:var(--purple);}

/* ---------- Article (글/가이드 상세) ---------- */
.crumb{font-family:var(--mono);font-size:12px;color:var(--faint);letter-spacing:0.04em;
  padding:28px 0 0;display:flex;gap:8px;align-items:center;}
.crumb a:hover{color:var(--purple);}
.crumb .sep{opacity:0.5;}
.article{max-width:760px;margin:0 auto;padding:0 var(--pad);}
.art-head{padding:40px 0 36px;border-bottom:1px solid var(--line);margin-bottom:44px;}
.art-meta{display:flex;gap:11px;align-items:center;margin-bottom:20px;}
.art-meta .adate{font-family:var(--mono);font-size:12px;color:var(--faint);}
.art-meta .amin{font-family:var(--mono);font-size:12px;color:var(--faint);}
.art-title{font-size:clamp(30px,4vw,44px);line-height:1.2;font-weight:800;letter-spacing:-0.03em;margin:0 0 18px;}
.art-lead{font-size:17px;line-height:1.8;color:var(--muted);margin:0;}
.art-body{font-size:17px;line-height:1.95;color:#2a2731;}
.art-body p{margin:0 0 26px;}
.art-body h2{font-size:23px;font-weight:800;letter-spacing:-0.02em;color:var(--ink);
  margin:48px 0 18px;padding-top:4px;}
.art-body ul{margin:0 0 28px;padding:0;list-style:none;}
.art-body ul li{position:relative;padding:9px 0 9px 30px;font-size:16px;line-height:1.7;
  border-bottom:1px solid var(--line-soft);}
.art-body ul li::before{content:'';position:absolute;left:6px;top:18px;width:7px;height:7px;
  border-radius:50%;background:var(--purple);}
.art-body blockquote{margin:36px 0;padding:8px 0 8px 26px;border-left:3px solid var(--purple);
  font-size:21px;line-height:1.6;font-weight:700;letter-spacing:-0.02em;color:var(--purple-deep);}

.art-foot{max-width:760px;margin:56px auto 0;padding:0 var(--pad);}
.art-pager{display:grid;grid-template-columns:1fr 1fr;gap:14px;border-top:1px solid var(--line);padding-top:32px;}
.pager-link{border:1px solid var(--line);border-radius:14px;padding:20px 22px;cursor:pointer;
  transition:border-color .15s,background .15s;}
.pager-link:hover{border-color:var(--purple);background:var(--purple-tint);}
.pager-link .pl{font-family:var(--mono);font-size:11px;color:var(--faint);text-transform:uppercase;
  letter-spacing:0.1em;margin-bottom:8px;}
.pager-link.next{text-align:right;}
.pager-link .pt{font-size:15.5px;font-weight:700;letter-spacing:-0.015em;line-height:1.4;}
.pager-link.empty{visibility:hidden;}

/* 가이드 인덱스 (사이드형) */
.guide-layout{max-width:var(--maxw);margin:0 auto;padding:0 var(--pad);
  display:grid;grid-template-columns:1fr 300px;gap:60px;align-items:start;}
.guide-main{min-width:0;}
.guide-main .article{padding:0;max-width:none;}
.guide-main .art-foot{padding:0;max-width:none;}
.gside{position:sticky;top:96px;display:flex;flex-direction:column;gap:24px;}
.gbox{border:1px solid var(--line);border-radius:16px;padding:22px;}
.gbox h4{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:0.1em;
  color:var(--purple);margin:0 0 16px;}
.gindex a{display:flex;gap:12px;padding:13px 0;border-top:1px solid var(--line-soft);align-items:baseline;}
.gindex a:first-child{border-top:none;padding-top:0;}
.gindex a .n{font-family:var(--mono);font-size:12px;color:var(--purple);flex:0 0 auto;}
.gindex a .t{font-size:14.5px;font-weight:700;letter-spacing:-0.015em;line-height:1.4;transition:color .15s;}
.gindex a:hover .t{color:var(--purple);}
.gindex a.cur{color:var(--purple);}
.gindex a.cur .t{color:var(--purple);}
.sahwa-row{display:flex;gap:11px;align-items:baseline;padding:11px 0;border-top:1px solid var(--line-soft);}
.sahwa-row:first-of-type{border-top:none;padding-top:0;}
.sahwa-row .badge{font-family:var(--mono);font-size:12px;font-weight:600;flex:0 0 auto;}
.sahwa-row .sk{font-size:14px;font-weight:700;}
.sahwa-row .sd{font-size:12.5px;color:var(--muted);}

/* ---------- Responsive ---------- */
@media (max-width:920px){
  :root{--pad:24px;}
  .hero-in{grid-template-columns:1fr;gap:40px;}
  .chart{width:min(440px,86vw);margin:0 auto;}
  .guides,.daily{grid-template-columns:1fr;}
  .stars{grid-template-columns:repeat(2,1fr);}
  .palaces{grid-template-columns:1fr;}
  .guide-layout{grid-template-columns:1fr;}
  .gside{position:static;}
  .nav-links{gap:18px;}
}
@media (max-width:560px){
  .nav-links a:nth-child(n+3){display:none;}
  .stars{grid-template-columns:1fr;}
  .art-pager{grid-template-columns:1fr;}
}
