:root {
  --bg:       #f5f0e8;
  --surface:  #faf7f2;
  --surface2: #fff;
  --border:   #e2d9cc;
  --text:     #1a1612;
  --muted:    #8a7f72;
  --accent:   #8b5e2a;
  --accent2:  #2a4d7a;
  --wood:     #3a8c4a;
  --fire:     #c03030;
  --earth:    #8b5e2a;
  --metal:    #4a6a8a;
  --water:    #2a4d7a;
  --high:     #c03030;
  --mid:      #8b5e2a;
  --low:      #3a8c4a;
}
[data-theme="dark"] {
  --bg:       #0a0b0f;
  --surface:  #12141a;
  --surface2: #1a1d26;
  --border:   #242733;
  --text:     #e8eaf2;
  --muted:    #5a5f75;
  --accent:   #c9a96e;
  --accent2:  #7b9cce;
  --wood:     #6bb87a;
  --fire:     #e05c5c;
  --earth:    #c9a96e;
  --metal:    #9fb8d4;
  --water:    #6a8fbf;
  --high:     #e05c5c;
  --mid:      #c9a96e;
  --low:      #6bb87a;
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;font-size:17px;}
body{font-family:'Noto Sans KR',sans-serif;background:var(--bg);color:var(--text);min-height:100vh;transition:background .3s,color .3s;}

/* ── 헤더 ── */
.site-header{position:fixed;top:0;left:0;right:0;z-index:100;padding:0 24px;height:56px;display:flex;align-items:center;justify-content:space-between;background:rgba(245,240,232,.92);backdrop-filter:blur(12px);border-bottom:1px solid var(--border);}
[data-theme="dark"] .site-header{background:rgba(10,11,15,.85);}
.logo{font-family:'Noto Serif KR',serif;font-size:1.25rem;font-weight:700;color:var(--accent);letter-spacing:2px;text-decoration:none;}
.header-right{display:flex;align-items:center;gap:12px;}
.theme-btn{background:none;border:1px solid var(--border);border-radius:20px;padding:5px 14px;font-size:0.88rem;color:var(--muted);cursor:pointer;transition:all .2s;}
.theme-btn:hover{border-color:var(--accent);color:var(--accent);}

/* ── 레이아웃 ── */
.main{padding:80px 16px 60px;}
.container{max-width:960px;margin:0 auto;}

/* ── 입력 카드 ── */
.input-card{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:28px 32px;margin-bottom:32px;}
.input-card h1{font-family:'Noto Serif KR',serif;font-size:1.8rem;font-weight:700;color:var(--accent);margin-bottom:4px;letter-spacing:1px;}
.input-card p{font-size:0.95rem;color:var(--muted);margin-bottom:24px;}
.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px;}
.form-group{display:flex;flex-direction:column;gap:6px;}
.form-group label{font-size:0.88rem;color:var(--muted);font-family:'Space Mono',monospace;}
.form-group input,.form-group select{background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:9px 12px;font-family:'Noto Sans KR',sans-serif;font-size:1rem;color:var(--text);outline:none;transition:border-color .2s;-webkit-appearance:none;}
.form-group input:focus,.form-group select:focus{border-color:var(--accent);}
.form-group select option{background:var(--surface);}
.sex-group{display:flex;gap:8px;}
.sex-btn{flex:1;padding:9px;border:1px solid var(--border);border-radius:8px;background:var(--bg);color:var(--muted);font-size:0.95rem;cursor:pointer;transition:all .2s;text-align:center;}
.sex-btn.active{border-color:var(--accent);color:var(--accent);background:rgba(139,94,42,.08);}
[data-theme="dark"] .sex-btn.active{background:rgba(201,169,110,.08);}
.submit-btn{margin-top:20px;width:100%;padding:13px;background:linear-gradient(135deg,#5e3a0a,#8b5e2a);border:none;border-radius:10px;font-family:'Noto Serif KR',serif;font-size:1.1rem;font-weight:700;color:#fff;cursor:pointer;letter-spacing:1px;transition:opacity .2s,transform .1s;}
[data-theme="dark"] .submit-btn{background:linear-gradient(135deg,#8b5e2a,#c9a96e);}
.submit-btn:hover{opacity:.9;}
.submit-btn:active{transform:scale(.99);}

/* ── 결과 ── */
#result{display:none;animation:fadeUp .4s ease;}
@keyframes fadeUp{from{opacity:0;transform:translateY(16px);}to{opacity:1;transform:translateY(0);}}

/* ── info-bar ── */
.info-bar{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:16px 20px;margin-bottom:20px;display:flex;flex-wrap:wrap;gap:16px;align-items:center;}
.info-bar .ilgan-badge{font-family:'Noto Serif KR',serif;font-size:2rem;font-weight:900;color:var(--accent);width:54px;height:54px;border:2px solid var(--accent);border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.info-bar .meta{flex:1;min-width:160px;}
.info-bar .meta strong{font-size:1.1rem;color:var(--text);}
.info-bar .meta p{font-size:0.92rem;color:var(--muted);margin-top:2px;}

/* ── 섹션 타이틀 ── */
.section-title{font-family:'Noto Serif KR',serif;font-size:1.05rem;font-weight:700;color:var(--accent);letter-spacing:2px;margin-bottom:12px;padding-bottom:8px;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:8px;}
.section-title::before{content:'';display:block;width:3px;height:14px;background:var(--accent);border-radius:2px;}

/* ── 사주 기둥 ── */
.pillar-section{margin-bottom:24px;}
.pillars{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;}
.pillar{background:var(--surface);border:1px solid var(--border);border-radius:12px;overflow:hidden;transition:border-color .2s;}
.pillar:hover{border-color:var(--accent);}
.pillar-label{text-align:center;font-size:0.85rem;color:var(--muted);padding:8px;background:var(--surface2);border-bottom:1px solid var(--border);font-family:'Space Mono',monospace;}
.pillar.day .pillar-label{color:var(--accent);}
.pillar-body{padding:12px 8px;text-align:center;}
.sipsung-cg{font-size:0.85rem;color:var(--muted);margin-bottom:4px;height:20px;font-family:'Space Mono',monospace;}
.char-cg{font-family:'Noto Serif KR',serif;font-size:2.5rem;font-weight:900;line-height:1;margin-bottom:2px;}
.char-jj{font-family:'Noto Serif KR',serif;font-size:2.3rem;font-weight:700;line-height:1;margin-bottom:2px;}

/* ── 한자 아래 한글 표기 ── */
.char-kr{font-family:'Noto Sans KR',sans-serif;font-size:0.88rem;color:var(--muted);margin-bottom:5px;line-height:1;}
.saeun-gj-kr{font-family:'Noto Sans KR',sans-serif;font-size:0.85rem;color:var(--muted);margin-top:2px;letter-spacing:3px;}

.oheng-tag{display:inline-block;font-size:0.75rem;padding:3px 9px;border-radius:10px;margin-bottom:8px;font-family:'Space Mono',monospace;}
.oheng-목{background:rgba(58,140,74,.1);color:var(--wood);}
.oheng-화{background:rgba(192,48,48,.1);color:var(--fire);}
.oheng-토{background:rgba(139,94,42,.1);color:var(--earth);}
.oheng-금{background:rgba(74,106,138,.1);color:var(--metal);}
.oheng-수{background:rgba(42,77,122,.1);color:var(--water);}
[data-theme="dark"] .oheng-목{background:rgba(107,184,122,.12);color:#6bb87a;}
[data-theme="dark"] .oheng-화{background:rgba(224,92,92,.12);color:#e05c5c;}
[data-theme="dark"] .oheng-토{background:rgba(201,169,110,.12);color:#c9a96e;}
[data-theme="dark"] .oheng-금{background:rgba(159,184,212,.12);color:#9fb8d4;}
[data-theme="dark"] .oheng-수{background:rgba(106,143,191,.12);color:#6a8fbf;}

.divider-line{width:60%;height:1px;background:var(--border);margin:0 auto 8px;}
.sipsung-jj{font-size:0.85rem;color:var(--muted);margin-top:4px;font-family:'Space Mono',monospace;}
.unjung{font-size:0.82rem;color:var(--accent2);margin-top:3px;font-family:'Space Mono',monospace;}
.cg-목{color:var(--wood);}.cg-화{color:var(--fire);}.cg-토{color:var(--earth);}.cg-금{color:var(--metal);}.cg-수{color:var(--water);}

/* ── 분포 ── */
.dist-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:24px;}
@media(max-width:600px){.dist-grid{grid-template-columns:1fr;}}
.dist-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:18px;}
.dist-item{display:flex;align-items:center;gap:10px;margin-bottom:10px;}
.dist-item:last-child{margin-bottom:0;}
.dist-name{font-size:0.92rem;width:48px;flex-shrink:0;font-family:'Noto Serif KR',serif;color:var(--text);}
.dist-bar-wrap{flex:1;background:var(--bg);border-radius:4px;height:9px;overflow:hidden;}
.dist-bar{height:100%;border-radius:4px;transition:width .6s ease;}
.dist-pct{font-size:0.85rem;width:42px;text-align:right;font-family:'Space Mono',monospace;color:var(--muted);flex-shrink:0;}

/* ── 차트 ── */
.chart-wrap{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:20px;margin-bottom:24px;}
.chart-inner{position:relative;height:280px;}

/* ── 대운 ── */
.daeun-scroll{overflow-x:auto;margin-bottom:24px;padding-bottom:4px;}
.daeun-list{display:flex;flex-direction:row-reverse;gap:8px;min-width:max-content;}
.daeun-item{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:10px 12px;text-align:center;min-width:82px;transition:border-color .2s,background .2s;}
.daeun-item.current,.daeun-item.selected{border-color:var(--accent);background:rgba(139,94,42,.06);}
[data-theme="dark"] .daeun-item.current,[data-theme="dark"] .daeun-item.selected{background:rgba(201,169,110,.08);}
.daeun-age{font-size:0.85rem;color:var(--muted);font-family:'Space Mono',monospace;margin-bottom:5px;}
.daeun-cg{font-family:'Noto Serif KR',serif;font-size:1.5rem;font-weight:700;line-height:1;}
.daeun-jj{font-family:'Noto Serif KR',serif;font-size:1.25rem;font-weight:500;margin-top:3px;}
.daeun-sipsung{font-size:0.82rem;color:var(--muted);margin-top:4px;font-family:'Space Mono',monospace;}

/* ── 세운 ── */
.saeun-list{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin-bottom:24px;}
@media(max-width:500px){.saeun-list{grid-template-columns:repeat(2,1fr);}}
.saeun-item{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:10px 8px;text-align:center;}
.saeun-item.current{border-color:var(--accent2);}
.saeun-item.selected{border-color:var(--accent);background:rgba(139,94,42,.06);}
[data-theme="dark"] .saeun-item.selected{background:rgba(201,169,110,.08);}
.saeun-year{font-size:0.85rem;color:var(--muted);font-family:'Space Mono',monospace;margin-bottom:4px;}
.saeun-gj{font-family:'Noto Serif KR',serif;font-size:1.25rem;font-weight:700;}
.saeun-sipsung{font-size:0.82rem;color:var(--muted);margin-top:3px;font-family:'Space Mono',monospace;}
.saeun-click-hint{font-size:0.75rem;color:var(--accent);margin-top:5px;opacity:0.7;}

/* ── 월운 ── */
.wolun-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:8px;margin-bottom:24px;}
@media(max-width:700px){.wolun-grid{grid-template-columns:repeat(4,1fr);}}
@media(max-width:480px){.wolun-grid{grid-template-columns:repeat(3,1fr);}}
.wolun-item{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:10px 8px;text-align:center;transition:border-color .2s,background .2s;}
.wolun-item.current{border-color:var(--accent);background:rgba(139,94,42,.06);}
[data-theme="dark"] .wolun-item.current{background:rgba(201,169,110,.08);}
.wolun-month{font-size:0.85rem;color:var(--muted);font-family:'Space Mono',monospace;margin-bottom:5px;}
.wolun-cg{font-family:'Noto Serif KR',serif;font-size:1.4rem;font-weight:700;line-height:1;}
.wolun-jj{font-family:'Noto Serif KR',serif;font-size:1.2rem;font-weight:500;margin-top:3px;}
.wolun-sipsung{font-size:0.82rem;color:var(--muted);margin-top:5px;line-height:1.4;font-family:'Space Mono',monospace;}

/* ── 로딩 / 에러 ── */
.loading{text-align:center;padding:40px;font-size:1rem;color:var(--muted);display:none;}
.spinner{width:36px;height:36px;border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .7s linear infinite;margin:0 auto 12px;}
@keyframes spin{to{transform:rotate(360deg);}}
.error-msg{background:rgba(192,48,48,.08);border:1px solid rgba(192,48,48,.25);border-radius:10px;padding:14px 18px;font-size:0.95rem;color:var(--fire);margin-bottom:16px;display:none;}

/* ── SEO ── */
.seo-content{background:var(--surface);border-top:1px solid var(--border);padding:48px 16px;}
.seo-content details{border:1px solid var(--border);border-radius:8px;padding:14px 16px;margin-bottom:8px;}
.seo-content details summary{font-size:1rem;font-weight:500;cursor:pointer;color:var(--text);}
.seo-content details p{font-size:0.95rem;color:var(--muted);margin-top:10px;line-height:1.6;}
.seo-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:24px;margin-bottom:36px;}
.seo-grid article h3{font-size:1.05rem;font-weight:700;color:var(--text);margin-bottom:8px;}
.seo-grid article p{font-size:0.95rem;color:var(--muted);line-height:1.7;}
.seo-h2{font-family:'Noto Serif KR',serif;font-size:1.4rem;color:var(--accent);margin-bottom:20px;letter-spacing:1px;}
.seo-h2-sm{font-family:'Noto Serif KR',serif;font-size:1.25rem;color:var(--accent);margin-bottom:16px;letter-spacing:1px;}

/* ── 푸터 ── */
.site-footer{background:var(--surface);border-top:1px solid var(--border);padding:28px 16px;text-align:center;}
.site-footer p{font-size:0.95rem;color:var(--muted);}

/* ── 반응형 ── */
@media(max-width:600px){.pillars{grid-template-columns:repeat(2,1fr);}.input-card{padding:20px 16px;}}

/* ── 인트로 콘텐츠 (사주 보기 전) ── */
.intro-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
  gap:16px;
  margin-bottom:20px;
}
.intro-card{
  background:var(--surface);
  border:1px solid var(--border);
  border-radius:14px;
  padding:22px 24px;
  transition:border-color .2s;
}
.intro-card:hover{border-color:var(--accent);}
.intro-icon{
  font-size:1.8rem;
  margin-bottom:10px;
}
.intro-card h2{
  font-family:'Noto Serif KR',serif;
  font-size:1rem;
  font-weight:700;
  color:var(--accent);
  margin-bottom:8px;
  letter-spacing:0.5px;
}
.intro-card p{
  font-size:0.9rem;
  color:var(--muted);
  line-height:1.75;
}
.intro-notice{
  background:var(--surface);
  border:1px solid var(--border);
  border-left:4px solid var(--accent);
  border-radius:10px;
  padding:16px 20px;
  margin-bottom:8px;
}
.intro-notice p{
  font-size:0.9rem;
  color:var(--muted);
  line-height:1.7;
}
.intro-notice strong{color:var(--text);}