:root{
  --ink:#101623;          /* 밤하늘 먹색 */
  --ink-2:#1a2233;
  --hanji:#f4eddc;        /* 한지 */
  --hanji-2:#ece2cb;
  --gold:var(--txt);
  --red:#b4443a;          /* 오방 적 */
  --line:rgba(244,237,220,.14);
  --display:'Bricolage Grotesque','Karla',sans-serif;
  --txt:rgba(244,237,220,.98); --txt-2:rgba(244,237,220,.66); --txt-3:rgba(244,237,220,.44);
  /* 액센트 잠금: --gold 는 1차 CTA 와 워드마크 전용. 장식용 금색은 --txt 계열로. */
  --wood:#4e8a63; --fire:#c05040; --earth:#c49b4a; --metal:#a8b2bd; --water:#5b82a6;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{background:var(--ink);color:var(--hanji);font-family:'Karla',sans-serif;line-height:1.6;overflow-x:hidden}
.serif{font-family:var(--display)}
.kr{font-family:'Noto Serif KR',serif}

/* 별 배경 */
#sky{position:fixed;inset:0;pointer-events:none;z-index:0}
.wrap{position:relative;z-index:1;max-width:680px;margin:0 auto;padding:0 22px}

/* ── 상단 고정 네비게이션 바 (2026-07-17, 구 스크롤형 feat-nav 대체) ── */
.topbar{position:sticky;top:0;z-index:30;display:flex;align-items:center;flex-wrap:wrap;gap:6px 14px;
  padding:10px 16px;background:rgba(16,22,35,.92);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.topbar .brand{font-size:19px;color:var(--gold);text-decoration:none;letter-spacing:.02em;margin-right:2px}
.topnav{display:flex;flex-wrap:wrap;gap:2px;flex:1;min-width:0}
.topnav a{color:rgba(244,237,220,.62);text-decoration:none;font-size:12px;font-weight:700;letter-spacing:.03em;
  padding:6px 9px;border-radius:99px;white-space:nowrap}
.topnav a.active{background:rgba(201,162,75,.16);color:var(--gold)}
.topnav a:hover{color:var(--gold)}
.topnav .nav-edit{border:1px solid var(--line)}
.lang-switch{display:flex;gap:2px;background:rgba(244,237,220,.05);border:1px solid var(--line);border-radius:99px;padding:3px;margin-left:auto}
.lang-switch button{background:none;border:none;color:rgba(244,237,220,.5);font-size:10.5px;font-weight:700;
  padding:5px 8px;border-radius:99px;cursor:pointer;font-family:'Karla',sans-serif}
.lang-switch button.active{background:var(--gold);color:var(--ink)}
/* (2026-07-19) 모바일 네비 접이식 — 데스크톱은 그대로, 좁은 화면은 햄버거 드롭다운 (2~3줄 줄바꿈 지저분함 해결) */
.nav-toggle{display:none;margin-left:auto;flex:none;background:none;border:1px solid var(--line);border-radius:8px;
  color:var(--hanji);width:40px;height:34px;font-size:17px;line-height:1;cursor:pointer;align-items:center;justify-content:center}
.nav-edit-lbl{display:none}
@media(max-width:720px){
  .nav-toggle{display:flex}
  .topnav{display:none;width:100%;flex-basis:100%;flex-direction:column;gap:3px;margin-top:8px}
  .topbar.open .topnav{display:flex}
  .topnav a{font-size:15px;padding:12px 12px}
  .topnav a.active{background:rgba(201,162,75,.18)}
  .nav-edit-lbl{display:inline}
  .lang-switch{display:none;width:auto;margin:8px auto 0 0}
  .topbar.open .lang-switch{display:flex}
}

/* ── Hero ── */
header.hero{padding:56px 0 40px;position:relative}
.moon{position:absolute;top:-30px;right:-62px;width:116px;height:116px;border-radius:50%;z-index:-1;opacity:.9;
  background:radial-gradient(circle at 38% 35%, #fdf6e3, #e8d9ae 60%, #cdb677);
  box-shadow:0 0 54px rgba(233,214,160,.34), 0 0 150px rgba(233,214,160,.14);
  animation:float 7s ease-in-out infinite}
@media (prefers-reduced-motion: reduce){.moon{animation:none}}
h1{font-family:var(--display);font-weight:600;font-size:clamp(34px,8.2vw,54px);letter-spacing:-.022em;
  line-height:1.1;text-wrap:balance;color:var(--txt);padding-bottom:4px}
h1 em{font-style:italic;font-weight:600;color:var(--txt)}
/* ── redesign 감사 수리 (2026-07-16): 접근성 포커스 링 + pressed 상태 ── */
a:focus-visible,button:focus-visible,select:focus-visible,input:focus-visible,summary:focus-visible{
  outline:2px solid var(--gold);outline-offset:3px;border-radius:4px}
a.cta:active,button.go:active,.hub:active,.page-back:active{transform:translateY(0) scale(.985)}
.sub{margin-top:16px;color:var(--txt-2);font-size:16.5px;max-width:34ch;line-height:1.55}
.sub b{color:var(--hanji);font-weight:700}
.hero-act{display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin-top:28px}
.cta-2{color:var(--txt-2);font-size:14.5px;font-weight:700;text-decoration:none;border-bottom:1px solid var(--line);padding-bottom:2px}
.cta-2:hover{color:var(--txt);border-bottom-color:var(--txt-3)}
.families{margin:56px 0 0}
.el-rail{display:flex;list-style:none;gap:0;margin:16px 0 0;border-top:1px solid var(--line)}
.el-rail li{flex:1;padding:12px 0 0;font-size:11px;font-weight:700;letter-spacing:.12em;
  text-transform:uppercase;color:var(--txt-3);border-top:2px solid var(--c);margin-top:-1px}

/* 복코(Bokko) 마스코트 인사 — 말풍선(편지) 스타일. 배경 제거된 PNG라 뒤에 깔린 별배경과 자연스럽게 어울림 */
.letter{position:relative;margin:64px 0 0;background:var(--hanji);border-radius:3px 18px 18px 18px;
  padding:26px 24px 18px 96px;box-shadow:0 10px 34px rgba(0,0,0,.34)}
.letter-img{position:absolute;left:-14px;bottom:-6px;width:96px;height:96px;object-fit:contain;
  filter:drop-shadow(0 6px 12px rgba(0,0,0,.4))}
.letter blockquote p{font-family:var(--display);font-style:italic;font-size:15.5px;color:var(--txt-2);line-height:1.5}
.letter figcaption{margin-top:10px;text-align:right;font-size:12px;color:var(--txt-3);letter-spacing:.04em}
@media(max-width:520px){.letter{padding:78px 20px 18px}.letter-img{left:12px;top:-28px;bottom:auto;width:82px;height:82px}}
.bokko-greet{display:flex;align-items:flex-end;max-width:480px;margin:0 auto 40px;padding:0 22px}
.bokko-img{width:88px;height:88px;object-fit:contain;flex:none;margin-right:-10px;position:relative;z-index:2;
  filter:drop-shadow(0 6px 12px rgba(0,0,0,.4))}
.bokko-bubble{position:relative;flex:1;background:var(--hanji);border-radius:4px 16px 16px 16px;
  padding:14px 18px 10px;box-shadow:0 6px 18px rgba(0,0,0,.3)}
.bokko-bubble p{font-family:var(--display);font-style:italic;font-size:14px;color:var(--txt-2);line-height:1.42}
.bokko-sig{display:block;text-align:right;font-family:var(--display);font-size:12px;color:var(--txt-3);margin-top:4px}
@media(max-width:480px){.bokko-greet{margin-left:22px;margin-right:22px}}

/* ── Form ── */
.card{background:linear-gradient(175deg,var(--hanji),var(--hanji-2));color:var(--txt);border-radius:6px;
  padding:34px 30px;box-shadow:0 24px 60px rgba(0,0,0,.45);position:relative}
.card::before{content:"";position:absolute;inset:9px;border:1px solid rgba(36,29,18,.16);border-radius:3px;pointer-events:none}
.card h2{font-family:var(--display);font-weight:500;font-size:21px;margin-bottom:4px}
.card .hint{font-size:13.5px;color:var(--txt-3);margin-bottom:22px}
label{display:block;font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--txt-3);margin:16px 0 7px}
input,select{width:100%;padding:13px 14px;border:1.5px solid var(--line);border-radius:4px;background:var(--raised);
  font-family:'Karla',sans-serif;font-size:16px;color:var(--txt)}
input:focus,select:focus{outline:none;border-color:var(--gold)}
.row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.date-row{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px}
.field-hint{font-size:12px;color:var(--txt-3);margin-top:7px;line-height:1.5}
.check{display:flex;align-items:center;gap:9px;margin-top:14px;font-size:14px;color:var(--txt-2)}
.check input{width:auto}
.req{color:#b4443a;font-size:13px}
.tsep{font-weight:700;font-size:17px;color:var(--txt-3)}
input.invalid,select.invalid{border-color:#b4443a;background:#fbeeec}
.form-err{display:none;margin-top:14px;padding:11px 14px;border-radius:4px;font-size:13.5px;
  color:#8c3129;background:rgba(180,68,58,.1);border:1px solid rgba(180,68,58,.4)}
.form-err.on{display:block}
button.go{width:100%;margin-top:26px;padding:17px;border:none;border-radius:4px;cursor:pointer;
  background:var(--ink);color:var(--hanji);font-family:var(--display);font-size:18px;letter-spacing:.04em;
  transition:transform .15s ease, box-shadow .15s ease}
button.go:hover{transform:translateY(-2px);box-shadow:0 10px 26px rgba(16,22,35,.4)}

/* ── Result ── */
#result{display:none;padding-bottom:40px}
.sec-h{font-family:var(--display);font-weight:600;font-size:clamp(23px,5vw,31px);letter-spacing:-.018em;
  line-height:1.15;color:var(--txt);margin:72px 0 22px}
.section-label{display:flex;align-items:center;gap:14px;margin:54px 0 20px;color:rgba(244,237,220,.5);
  font-size:11.5px;font-weight:700;letter-spacing:.22em;text-transform:uppercase}
.section-label::before,.section-label::after{content:"";height:1px;background:var(--line);flex:1}

.pillars{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.pillar{background:var(--ink-2);border:1px solid var(--line);border-radius:6px;padding:18px 6px 14px;text-align:center}
.pillar .p-name{font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:rgba(244,237,220,.45);margin-bottom:10px}
.pillar .p-hanja{font-family:'Noto Serif KR',serif;font-weight:600;font-size:30px;line-height:1.2}
.hj{font-family:'Noto Serif KR',serif;font-weight:600}
.pillar .p-sub{font-size:10px;letter-spacing:.06em;color:rgba(244,237,220,.55);margin:3px 0 10px}
.pillar.dim{opacity:.35}
.sb-row{display:grid;grid-template-columns:64px 1fr 1fr;gap:12px;padding:13px 0;border-bottom:1px solid var(--line);align-items:center}
.sb-row:last-child{border-bottom:none}
.sb-pill{font-size:10px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:rgba(244,237,220,.5)}
.sb-name{font-family:var(--display);font-size:16.5px}
.sb-desc{font-size:12px;color:rgba(244,237,220,.55)}

/* 캐릭터 히어로 */
.master{background:linear-gradient(175deg,var(--hanji),var(--hanji-2));color:var(--txt);border-radius:6px;
  padding:40px 30px 34px;text-align:center;box-shadow:0 24px 60px rgba(0,0,0,.45);position:relative;
  overflow:hidden} /* 장식용 hero-aura가 카드 밖으로 새며 360px에서 가로 오버플로 유발 → 클립 (2026-07-17) */
/* 공유 카드처럼 — 금색 이중 액자 프레임 */
.master::before{content:"";position:absolute;inset:8px;border:1.5px solid rgba(201,162,75,.5);border-radius:4px;pointer-events:none}
.master::after{content:"";position:absolute;inset:13px;border:1px solid rgba(201,162,75,.22);border-radius:2px;pointer-events:none}
/* 일간 한자 도장 (공유 카드의 우상단 낙관과 동일) */
.hero-seal{position:absolute;top:16px;right:16px;width:46px;height:46px;border-radius:9px;z-index:4;
  background:#b4443a;color:#f4eddc;font-family:'Noto Serif KR',serif;font-weight:600;font-size:27px;
  display:flex;align-items:center;justify-content:center;box-shadow:0 3px 9px rgba(0,0,0,.28)}
/* 히어로 장면 — 캐릭터 + 띠 동물 컷아웃을 한 오라 안에 겹쳐서 */
.hero-scene{position:relative;width:288px;height:250px;margin:0 auto 2px}
.hero-aura{position:absolute;left:50%;top:45%;width:206px;height:206px;transform:translate(-50%,-50%);
  border-radius:50%;filter:blur(30px);opacity:.42;animation:pulse 5.5s ease-in-out infinite}
/* 공유 카드와 동일 배치: 캐릭터 중앙, 띠 동물은 캐릭터×0.56 크기로 좌하단에 겹쳐(앞) */
.hero-char{position:absolute;left:50%;margin-left:-111px;top:2px;width:222px;height:222px;
  animation:float 5.5s ease-in-out infinite} /* margin으로 중앙정렬 — float 애니가 transform을 덮어쓰므로 translateX 불가 */
.hero-char svg,.hero-char img{width:100%;height:100%;object-fit:contain}
.zodiac-seal{position:absolute;left:2px;bottom:9px;width:124px;height:124px;z-index:3;
  display:flex;align-items:flex-end;justify-content:center;
  filter:drop-shadow(0 7px 9px rgba(0,0,0,.22))}
.zodiac-seal .zs-emoji{font-size:62px;line-height:1}
.zodiac-seal img{width:100%;height:100%;object-fit:contain}
.m-eyebrow{font-size:11.5px;font-weight:700;letter-spacing:.24em;text-transform:uppercase;color:var(--txt-3);margin-top:10px}
.m-title{font-family:var(--display);font-size:clamp(27px,5.4vw,36px);font-weight:500;margin:6px 0 2px}
.m-hanja{font-family:'Noto Serif KR',serif;font-size:15px;color:var(--txt-3)}
.m-essence{font-family:var(--display);font-style:italic;font-size:17px;color:var(--txt-2);max-width:420px;margin:16px auto 0}
.traits{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-top:22px}
.trait{font-size:13px;font-weight:700;padding:7px 14px;border-radius:99px;border:1.5px solid currentColor}
.bokko-note{display:flex;align-items:center;gap:10px;max-width:420px;margin:22px auto 0;padding:10px 14px;
  background:rgba(138,109,47,.08);border-radius:14px;text-align:left}
.bokko-note img{width:34px;height:34px;object-fit:contain;flex:none}
.bokko-note p{font-family:var(--display);font-style:italic;font-size:13.5px;color:var(--txt-2);line-height:1.4}
.bokko-note b{font-style:normal;font-family:'Karla',sans-serif;font-weight:700;color:var(--txt-2);margin-right:4px}

/* 오행 밸런스 */
.elements{display:flex;flex-direction:column;gap:12px}
.el-row{display:grid;grid-template-columns:96px 1fr 30px;align-items:center;gap:14px}
.el-name{font-size:13.5px;font-weight:700;letter-spacing:.04em}
.el-name .kr{font-weight:400;color:rgba(244,237,220,.5);margin-left:6px;font-size:12.5px}
.el-track{height:9px;background:var(--ink-2);border-radius:99px;overflow:hidden;border:1px solid var(--line)}
.el-fill{height:100%;border-radius:99px;width:0;transition:width 1.2s cubic-bezier(.2,.8,.2,1)}
.el-count{font-size:13px;color:rgba(244,237,220,.6);text-align:right}

/* 리딩 */
.reading{background:var(--ink-2);border:1px solid var(--line);border-radius:6px;padding:30px 28px}
.reading h3{font-family:var(--display);font-weight:500;font-size:17px;color:var(--gold);margin-bottom:9px}
.reading p{color:rgba(244,237,220,.85);font-size:15.5px}
.reading + .reading{margin-top:14px}
.reading .ct-kick{font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--txt-3);margin-bottom:4px}
.reading h3.ct-name{font-size:28px;line-height:1.15;margin-bottom:8px}
.reading .ct-code{font-size:13px;color:var(--txt-2);margin-top:8px}
.ct-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin:18px 0 8px}
.ct-grid b{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--txt-3);text-align:center}
.ct-grid span{display:flex;align-items:center;justify-content:center;min-height:44px;font-size:12.5px;line-height:1.25;text-align:center;padding:6px 4px;border:1px solid var(--line);border-radius:6px;opacity:.5}
.ct-grid span.me{opacity:1;border-color:currentColor;font-weight:700;background:rgba(244,237,220,.07)}
.reading .ct-note{font-size:13px;color:var(--txt-2);margin-bottom:16px}
.quote{border-left:2px solid var(--gold);padding-left:18px;font-family:var(--display);font-style:italic;
  font-size:18px;color:var(--hanji);margin:30px 4px}

/* 공유 */
.share-zone{text-align:center;margin-top:8px}
#shareCanvas,canvas.mcv{width:100%;max-width:340px;border-radius:8px;box-shadow:0 24px 60px rgba(0,0,0,.5);margin-bottom:18px}
canvas.mcv{display:block;margin:14px auto 4px}
.btns{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}
/* (2026-10-10) 링크·공유 주 버튼 — 버튼 줄에 묻혀 안 보이던 것을 카드 바로 아래 큰 버튼으로 */
.link-cta{max-width:420px;margin:6px auto 18px;text-align:center}
.link-btn{display:block;width:100%;padding:17px 20px;border:0;border-radius:6px;background:var(--txt);color:var(--ink);
  font:700 16.5px/1.3 Karla,sans-serif;cursor:pointer;box-shadow:0 10px 30px rgba(0,0,0,.35);transition:transform .15s}
#chemBtn::before{content:"🔗  "}
.link-btn:hover{transform:translateY(-1px)}
.link-btn:active{transform:scale(.98)}
.link-cta p{margin-top:8px;font-size:13px;color:var(--txt-2)}
/* 사진 위치 잡기 */
.crop-ov{position:fixed;inset:0;z-index:300;background:rgba(5,5,10,.78);display:flex;align-items:center;justify-content:center;padding:16px}
.crop-box{background:#15141d;border:1px solid var(--line);border-radius:12px;padding:20px 18px;text-align:center;max-width:380px;width:100%}
.crop-box h3{font-size:18px;margin-bottom:4px}
.crop-box p{font-size:13px;color:var(--txt-2);margin-bottom:12px}
.crop-cv{display:block;margin:0 auto;touch-action:none;cursor:grab;border-radius:8px;background:#0b0a11}
.crop-cv:active{cursor:grabbing}
.crop-zoom{display:flex;align-items:center;gap:10px;margin:14px auto 0;max-width:300px;font-size:13px;color:var(--txt-2)}
.crop-zoom input{flex:1;padding:0;border:0;background:none;accent-color:var(--txt)}
.crop-btns{display:flex;gap:10px;justify-content:center;margin-top:14px}
.btn2{padding:13px 26px;border-radius:4px;border:1.5px solid var(--gold);background:transparent;color:var(--gold);
  font-family:'Karla',sans-serif;font-weight:700;font-size:14.5px;cursor:pointer;letter-spacing:.03em}
.btn2.solid{background:var(--gold);color:var(--ink)}
.btn2:hover{filter:brightness(1.1)}
.btn2:disabled{opacity:.5;cursor:default}
.photo-swap{text-align:center;margin:14px 0 4px;display:flex;flex-direction:column;align-items:center;gap:6px}
.photo-swap .btn2{padding:9px 18px;font-size:12.5px}
.photo-swap span{font-size:12px;color:var(--txt-3);font-style:italic}
/* 유료 게이팅 — 챕터별 티저(첫 문장 공개 + 나머지 블러) */
.premium{margin-top:14px}
.premium .reading+.reading{margin-top:14px}
.premium h3 .lk-ico{font-size:13px;opacity:.8;margin-right:6px}
.rest{display:inline-block;filter:blur(6px);user-select:none;pointer-events:none;opacity:.85}
.cta-card{margin-top:18px;text-align:center;border:1.5px solid var(--gold);border-radius:6px;
  padding:30px 26px;background:linear-gradient(180deg,rgba(201,162,75,.08),rgba(201,162,75,.02))}
.cta-card h4{font-family:var(--display);font-weight:500;font-size:23px;margin-bottom:8px}
.cta-card .price{font-family:var(--display);font-style:italic;color:var(--gold);font-size:16.5px;margin:10px 0 18px}
.cta-card .lock-list{font-size:12.5px;color:rgba(244,237,220,.6);line-height:1.8}
.canvas-size{font-size:12px;color:rgba(244,237,220,.5);margin:-8px 0 16px}
/* 공유 포맷 토글 */
.fmt-btns{display:flex;gap:8px;justify-content:center;margin-bottom:14px}
.fmt-btns .btn2{padding:9px 18px;font-size:13px}
.btn2.active{background:var(--gold);color:var(--ink)}

/* 만세력 — 십성 태그 + 지장간 */
.tg{display:inline-block;font-size:9px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;
  color:var(--gold);border:1px solid rgba(201,162,75,.45);border-radius:99px;padding:2px 8px;margin-left:8px;vertical-align:2px}
.sb-hid{font-size:11.5px;color:rgba(244,237,220,.42);margin-top:4px;letter-spacing:.02em}

/* K-Naming 증서 */
.cert{text-align:center;margin-top:0}
.cert-head{font-size:11px;font-weight:700;letter-spacing:.3em;color:var(--txt-3);margin-bottom:14px}
.cert-kr{font-family:'Noto Serif KR',serif;font-weight:600;font-size:62px;line-height:1.15;color:var(--txt)}
.cert-rom{font-family:var(--display);font-style:italic;font-size:18px;color:var(--txt-3);margin-top:6px}
.cert-why{font-size:14px;color:var(--txt-2);max-width:440px;margin:18px auto 0;line-height:1.65}
.name-opts{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin-top:22px}
.name-opt{padding:10px 16px;border-radius:4px;border:1.5px solid var(--line);background:var(--raised);cursor:pointer;
  font-family:'Karla',sans-serif;font-size:14px;color:var(--txt-2)}
.name-opt b{font-family:'Noto Serif KR',serif;font-weight:600;margin-right:6px}
.name-opt.active{border-color:var(--gold);background:rgba(201,162,75,.14);color:var(--txt)}
.cert-note{font-size:12px;color:var(--txt-3);margin-top:16px}

/* 궁합 모드 토글 (아이돌 vs 진짜) */
.match-mode{display:flex;gap:8px;margin:4px 0 18px}
.mm-btn{flex:1;padding:12px 10px;border-radius:8px;border:1.5px solid rgba(36,29,18,.18);background:transparent;
  color:var(--txt-3);font-family:'Karla',sans-serif;font-weight:700;font-size:13px;cursor:pointer;transition:all .15s}
.mm-btn.active{border-color:var(--gold);background:rgba(201,162,75,.16);color:var(--txt)}
@media(max-width:440px){.match-mode{flex-direction:column}}

/* 궁합 */
.match-score{font-family:var(--display);font-weight:500;font-size:78px;line-height:1.05}
.match-verdict{font-family:var(--display);font-style:italic;font-size:19px;color:var(--txt-2);margin-top:2px}
.match-category{display:inline-block;margin-top:12px;padding:7px 18px;border:2px solid;border-radius:999px;font-weight:700;font-size:13px;letter-spacing:.04em}
.mc-i18n{font-weight:500;opacity:.75;letter-spacing:0}
.factors{margin-top:20px}
.factor{display:flex;gap:12px;font-size:14px;color:var(--txt-2);padding:10px 0;border-bottom:1px solid rgba(36,29,18,.12);line-height:1.55}
.factor:last-child{border-bottom:none}
.factor span{font-weight:700;color:var(--txt-3);min-width:12px}
/* 궁합 서브스코어 + 서사 블록 */
.sub-bars{margin-top:24px}
.sub-row{display:grid;grid-template-columns:104px 1fr 40px;gap:12px;align-items:center;padding:7px 0}
.sub-name{font-size:11.5px;font-weight:700;letter-spacing:.1em;color:var(--txt-3);text-transform:uppercase}
.sub-track{height:8px;background:rgba(36,29,18,.12);border-radius:99px;overflow:hidden}
.sub-fill{height:100%;border-radius:99px;transition:width 1s cubic-bezier(.2,.8,.2,1)}
.sub-val{font-size:13px;font-weight:700;color:var(--txt-3);text-align:right}
.mt-block{margin-top:20px;padding-top:16px;border-top:1px solid rgba(36,29,18,.12)}
.mt-lab{font-size:10.5px;font-weight:700;letter-spacing:.2em;color:var(--txt-3);margin-bottom:7px}
.mt-block p{font-size:14.5px;color:var(--txt-2);line-height:1.65}
.role-row{display:flex;gap:14px;font-size:14px;color:var(--txt-2);padding:7px 0;line-height:1.5}
.role-row span{min-width:118px;font-size:11px;font-weight:700;letter-spacing:.08em;color:var(--txt-3);text-transform:uppercase;padding-top:3px}
/* 성덕 풀 매치 리포트 티저 */
.fm-item{margin-top:14px}
.fm-t{font-family:var(--display);font-weight:600;font-size:15px;color:var(--txt-2);margin-bottom:4px}
.fm-item p{font-size:13.5px;color:var(--txt-2);line-height:1.6}

/* 태몽 */
.dream-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(104px,1fr));gap:8px;margin:16px 0 6px}
.dream-chip{padding:12px 6px;border-radius:6px;border:1.5px solid var(--line);background:var(--ink-2);
  color:var(--hanji);cursor:pointer;font-family:'Karla',sans-serif;font-size:13px;transition:border-color .15s}
.dream-chip:hover{border-color:var(--gold)}
.dream-chip.active{border-color:var(--gold);color:var(--gold)}

/* 기능 허브 (페이지 이동 버튼) */
.card-legend{max-width:520px;margin:16px auto 26px;font-size:12px;color:rgba(244,237,220,.55);line-height:1.6;
  border:1px solid var(--line);border-radius:6px;padding:12px 16px;text-align:left}
.card-legend>b{display:block;color:rgba(244,237,220,.8);font-size:12.5px;margin-bottom:4px}
.card-legend span{display:block;margin-top:3px}
.card-legend span b{color:var(--gold)}
.bento{display:grid;grid-template-columns:repeat(6,1fr);gap:10px}
.cell{grid-column:span 3;display:flex;flex-direction:column;justify-content:flex-end;min-height:132px;
  padding:18px 16px;border-radius:14px;border:1px solid var(--line);background:var(--ink-2);
  text-decoration:none;transition:border-color .2s,transform .2s}
.cell:hover{border-color:var(--txt-3);transform:translateY(-2px)}
.cell:active{transform:translateY(0) scale(.985)}
.cell b{display:block;font-family:var(--display);font-weight:600;font-size:18px;color:var(--txt);
  letter-spacing:-.012em;margin-bottom:5px}
.cell span{font-size:13px;color:var(--txt-2);line-height:1.5}
.cell-lead{grid-column:span 6;min-height:170px;
  background:radial-gradient(120% 140% at 8% 0%,rgba(201,162,75,.16),transparent 58%),var(--ink-2)}
.cell-lead b{font-size:clamp(22px,4.6vw,28px)}
.cell-art{grid-column:span 6;min-height:190px;position:relative;overflow:hidden;
  background:linear-gradient(200deg,rgba(192,80,64,.2),transparent 62%),var(--ink-2)}
.cell-art img{position:absolute;right:-6px;top:-10px;width:126px;opacity:.92;
  filter:drop-shadow(0 12px 22px rgba(0,0,0,.5))}
.cell-art b,.cell-art span{max-width:62%}
.cell-wide{grid-column:span 6}
.cell-quiet{grid-column:span 6;min-height:0;background:none;border-style:dashed}
.cell-quiet b{font-size:15.5px;color:var(--txt-2)}
@media(min-width:720px){
  .cell-lead{grid-column:span 4} .cell-art{grid-column:span 2}
  .cell{grid-column:span 2} .cell-wide{grid-column:span 4} .cell-quiet{grid-column:span 2}
}
.hub-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px}
/* 3열 균등 그리드의 단조로움 깨기 — 데스크톱에서 가운데 열을 살짝 내려 지그재그 리듬 (redesign 감사) */
@media (min-width:900px){
  .hub-grid .hub:nth-child(3n+2){margin-top:14px}
  .steps .step:nth-child(2){margin-top:14px}
}
.hub{display:block;padding:20px 18px;border-radius:6px;border:1.5px solid var(--line);background:var(--ink-2);
  text-decoration:none;color:var(--hanji);transition:border-color .15s, transform .15s}
.hub:hover{border-color:var(--txt-3);transform:translateY(-2px)}
.hub b{display:block;font-family:var(--display);font-weight:600;font-size:17.5px;color:var(--txt);margin-bottom:4px}
.hub span{font-size:12.5px;color:rgba(244,237,220,.55);line-height:1.45;display:block}
/* 기능 페이지 */
.feat-page{padding-top:26px;padding-bottom:70px;animation:rise .5s cubic-bezier(.2,.8,.2,1) both}
/* 페이지 상단: 뒤로가기 버튼 + 한 줄 스크롤 내비 */
.page-top{margin-bottom:18px}
.page-back{display:inline-flex;align-items:center;gap:6px;color:var(--gold);text-decoration:none;
  font-family:var(--display);font-size:17px;margin-bottom:14px}
.page-back:hover{filter:brightness(1.15)}
.feat-nav{display:flex;flex-wrap:nowrap;gap:8px;overflow-x:auto;padding-bottom:10px;
  align-items:center;scrollbar-width:thin;scrollbar-color:rgba(201,162,75,.5) transparent}
.feat-nav::-webkit-scrollbar{height:6px}
.feat-nav::-webkit-scrollbar-track{background:transparent}
.feat-nav::-webkit-scrollbar-thumb{background:rgba(201,162,75,.45);border-radius:99px}
.feat-nav a{flex:none;padding:10px 16px;border-radius:99px;border:1.5px solid var(--line);background:var(--ink-2);
  color:rgba(244,237,220,.72);font-weight:700;font-size:13px;text-decoration:none;white-space:nowrap;
  letter-spacing:.03em;transition:all .15s}
.feat-nav a:hover{border-color:var(--gold)}
.feat-nav a.active{background:var(--gold);border-color:var(--gold);color:var(--ink)}
.feat-nav .fn-edit{border-style:dashed;color:rgba(244,237,220,.5);font-size:12.5px}
.need-cast{margin-bottom:16px;font-size:14.5px}
/* 아이돌 신청 */
.idol-req{display:flex;gap:8px;margin-top:10px}
.idol-req input{flex:1;padding:11px 13px;font-size:14px}
.idol-req button{padding:11px 18px;border-radius:4px;border:1.5px solid var(--txt-2);background:transparent;
  color:var(--txt-2);font-family:'Karla',sans-serif;font-weight:700;font-size:13px;cursor:pointer;white-space:nowrap}
.idol-req button:hover{background:var(--txt-2);color:var(--raised)}

/* 궁합 — 아이돌 선택 구분선 */
.or-line{display:flex;align-items:center;gap:12px;margin:18px 0 8px;color:var(--txt-3);
  font-size:11px;letter-spacing:.16em;text-transform:uppercase;font-weight:700}
.or-line::before,.or-line::after{content:"";height:1px;background:rgba(36,29,18,.16);flex:1}

/* 오늘의 운세 */
.today-date{font-size:11px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:rgba(244,237,220,.5);margin-bottom:8px}
.do-chips{display:flex;gap:10px;flex-wrap:wrap;margin:14px 0 4px}
.chip{font-size:13px;font-weight:700;padding:8px 15px;border-radius:99px;border:1.5px solid}
.chip-do{color:#7fb894;border-color:rgba(127,184,148,.5)}
.chip-avoid{color:#d08a83;border-color:rgba(208,138,131,.5)}

/* 오늘의 운세 — 9:16 세로 카드 스택 (인스타 카드뉴스식 겹침+넘김, 2026-07-17. 구 가로 캐러셀 대체) */
.deck-wrap{display:flex;flex-direction:column;align-items:center;gap:14px;padding-top:6px}
.deck{position:relative;width:min(320px,82vw);aspect-ratio:9/16;touch-action:pan-y;cursor:pointer;user-select:none}
.tcard{position:absolute;inset:0;background:linear-gradient(180deg,var(--hanji),var(--hanji-2));border-radius:20px;
  padding:30px 24px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;
  box-shadow:0 12px 32px rgba(0,0,0,.4);will-change:transform,opacity;
  transition:transform .5s cubic-bezier(.2,.85,.3,1.15),opacity .4s}
.tcard .tc-label{font-size:11.5px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--txt-3)}
.tcard .tc-sub{font-family:var(--display);font-style:italic;font-size:13.5px;color:var(--txt-3);margin-bottom:10px}
.tcard .tc-score{font-family:var(--display);font-weight:500;font-size:52px;line-height:1.1;margin:8px 0 4px}
.tcard .tc-score.big{font-size:84px}
.tcard p{font-family:var(--display);font-style:italic;font-size:14px;color:var(--txt-2);line-height:1.5;margin-top:10px}
.tcard-hero .today-date{margin-bottom:4px;color:var(--txt-3)} /* 한지 카드 위라 어두운 골드로 (기본은 밤하늘용 밝은색) */
.bokko-mini{width:46px;height:46px;object-fit:contain;position:absolute;top:16px;right:16px}
.today-bonus{margin-top:12px;font-size:12.5px;color:var(--txt-2);border-top:1px solid rgba(138,109,47,.2);padding-top:10px}
.tcard-outro p{font-size:13.5px}
.deck-dots{display:flex;gap:7px}
.deck-dots .dd{width:7px;height:7px;border-radius:50%;background:rgba(244,237,220,.22);transition:background .3s,transform .3s}
.deck-dots .dd.on{background:var(--gold);transform:scale(1.25)}
.deck-hint{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:rgba(244,237,220,.35)}

/* 사진 슬롯 칩 — 업로드/변경/삭제가 눈에 보이게 (2026-07-17).
 * 리딩 페이지(어두운 밤하늘)와 궁합 페이지(.card 밝은 한지) 양쪽에 놓이므로,
 * has 칩은 어느 배경에서도 읽히는 다크 네이비 고정 배색으로. */
.pslots{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;margin:14px 0 4px}
.pslot.add{display:inline-flex;align-items:center;gap:6px;padding:10px 16px;border:1.5px dashed rgba(201,162,75,.7);
  border-radius:12px;background:transparent;color:#a5843c;font-family:'Karla',sans-serif;font-weight:700;font-size:12.5px;cursor:pointer}
.pslot.add:hover{border-style:solid}
.pslot.has{display:inline-flex;align-items:center;gap:8px;padding:6px 10px;border:1.5px solid rgba(201,162,75,.6);
  border-radius:12px;background:rgba(16,22,35,.88)}
.pslot.has img{width:40px;height:40px;object-fit:contain;border-radius:8px;background:rgba(244,237,220,.12)}
.pslot.has span{font-size:12px;font-weight:700;color:rgba(244,237,220,.85)}
.pslot .ps-sw{background:none;border:1px solid rgba(201,162,75,.5);color:var(--gold);border-radius:8px;
  font-size:11px;font-weight:700;padding:4px 8px;cursor:pointer}
.pslot .ps-x{background:none;border:none;color:#d08a83;font-size:14px;font-weight:700;cursor:pointer;padding:2px 4px}
.ps-status{display:block;text-align:center;font-size:12px;color:var(--txt-3);font-style:italic;min-height:16px}

/* 페이월 — 4축 세부점수 블러 + 잠금 오버레이 (총점·카테고리는 무료 유지: 공유 루프 보호) */
.locked-block{position:relative}
.locked-block .sub-row{filter:blur(6px);user-select:none;pointer-events:none}
.lock-overlay{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:max-content;max-width:88%;
  background:rgba(16,22,35,.9);border:1.5px solid var(--gold);color:var(--gold);border-radius:12px;
  padding:12px 18px;font-family:'Karla',sans-serif;font-weight:700;font-size:12.5px;cursor:pointer;line-height:1.45}

/* 한글 이름 토글 — 초라한 체크박스 대신 골드 스위치 (2026-07-17) */
.kn-toggle{display:flex;align-items:center;justify-content:center;gap:10px;margin:6px auto 14px;cursor:pointer;
  max-width:420px;padding:10px 16px;border:1px solid var(--line);border-radius:99px;background:rgba(244,237,220,.04)}
.kn-toggle input{position:absolute;opacity:0;pointer-events:none}
.kn-toggle .kswitch{flex:none;width:40px;height:22px;border-radius:99px;background:rgba(244,237,220,.18);position:relative;transition:background .25s}
.kn-toggle .kswitch::after{content:"";position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:50%;
  background:var(--hanji);transition:transform .25s}
.kn-toggle input:checked+.kswitch{background:var(--gold)}
.kn-toggle input:checked+.kswitch::after{transform:translateX(18px)}
.kn-toggle .kn-text{font-size:12.5px;font-weight:700;color:rgba(244,237,220,.78);letter-spacing:.02em}
.kn-toggle:has(input:checked) .kn-text{color:var(--gold)}

/* 미캐스팅 탭 — 캐스팅 폼만 보여주고 나머지 콘텐츠는 숨김 (need-cast 안내 대체, 2026-07-17) */
.feat-page.uncast>*:not(.castHere):not(.page-top){display:none!important}
.castHere:empty{display:none}
.castHere{margin-top:6px}

/* 잠긴 MATCH SCORE — 결제 유도 (총점 숨김, 세부점수는 공개) */
.match-score.score-locked{background:rgba(244,237,220,.06);border:1.5px dashed var(--gold);border-radius:16px;
  color:var(--gold);cursor:pointer;padding:4px 30px 10px;display:inline-flex;flex-direction:column;align-items:center;line-height:1}
.match-score.score-locked span{font-family:'Karla',sans-serif;font-size:11px;font-weight:700;letter-spacing:.14em;
  text-transform:uppercase;margin-top:4px}
/* 잠긴 매치 타입 배지 — (2026-07-18) 블러 폐기: 이모지 색으로 정답이 새서, 라벨을 DOM에 아예 안 넣는 플레이스홀더로 */
.match-category.cat-locked{border-color:var(--txt-2);border-style:dashed;color:var(--txt-2);background:none;cursor:pointer;font-family:'Karla',sans-serif}


/* Year Ahead — 12개월 행 (.reading = 어두운 잉크 배경 → 밝은 텍스트) */
.tj-rows{margin-top:16px;border-top:1px solid var(--line)}
.tj-row{display:flex;align-items:baseline;gap:10px;padding:7px 0;border-bottom:1px solid rgba(244,237,220,.08);font-size:13px}
.tj-row.now{background:rgba(201,162,75,.12);border-radius:6px;padding-left:6px;padding-right:6px}
.tj-row .tjr-m{flex:none;width:64px;font-weight:700;color:var(--hanji)}
.tj-row .tjr-p{flex:none;letter-spacing:2px;color:var(--gold);font-size:11px}
.tj-row .tjr-g{flex:none;width:74px;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--txt-3)}
.tj-row .tjr-t{color:rgba(244,237,220,.78)}
@media(max-width:480px){.tj-row{flex-wrap:wrap}.tj-row .tjr-t{width:100%;padding-left:0}}

/* (2026-07-18) 어두운 .reading 안의 잠금 항목·라벨 — 한지용 다크 텍스트가 안 보이던 문제 (v40 범례·v41 연간행과 동일 계열) */
.reading .mt-lab{color:rgba(244,237,220,.55)}
.reading .fm-t{color:#d9b96a}
.reading .fm-item p{color:rgba(244,237,220,.78)}
/* (2026-08-07) 펫사주 폼은 .reading(어두운 잉크) 안에 산다 — 전역 label/.check 색은 밝은 한지용이라 안 읽힌다 */
.reading label{color:rgba(244,237,220,.62)}
.reading label.check{color:rgba(244,237,220,.85)}

/* (2026-07-18) 탭별 유료 후킹 칩 — 밝은 한지(.card)·어두운 잉크(.reading/.premium) 양쪽 배경 대응 */
.paid-hook{width:fit-content;margin:16px auto 0;padding:9px 16px;border:1.5px dashed var(--txt);border-radius:99px;
  font-size:13px;color:#6b5426;text-align:center;letter-spacing:.02em;line-height:1.5}
.paid-hook b{color:var(--txt-2)}
.reading .paid-hook,.premium .paid-hook{color:rgba(244,237,220,.82)}
.reading .paid-hook b,.premium .paid-hook b{color:#d9b96a}

/* 궁합 카테고리 범례 — .card(밝은 한지) 안에 놓이므로 다크 텍스트 */
.cat-legend{margin-top:20px;border:1px solid rgba(36,29,18,.18);border-radius:8px;padding:16px 18px}
.cat-legend .cl-row{display:flex;gap:10px;font-size:12.5px;color:var(--txt-2);padding:5px 0;line-height:1.45}
.cat-legend .cl-b{font-weight:700;color:var(--txt);flex:none;min-width:118px}

/* 기기 프로필 바 (Welcome back) */
#profileBar .pb,#homeProfile .pb{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;
  background:rgba(201,162,75,.13);border:1px solid rgba(201,162,75,.45);border-radius:4px;
  padding:11px 14px;margin-bottom:20px;font-size:13.5px;color:var(--txt-2)}
#profileBar .pb b,#homeProfile .pb b{font-family:var(--display)}
#homeProfile .pb{color:rgba(244,237,220,.85);margin:30px 0 -8px}
.pb-btns{display:flex;gap:8px}
.pb-btns button{padding:7px 13px;border-radius:4px;border:1.5px solid var(--txt-2);background:transparent;
  color:var(--txt-2);font-family:'Karla',sans-serif;font-weight:700;font-size:12.5px;cursor:pointer}
.pb-btns button.solid{background:var(--txt-2);color:var(--raised)}

/* 랜딩 (홈) */
.char-strip{display:flex;justify-content:center;align-items:flex-end;gap:2px;margin:0 auto;max-width:560px}
.char-strip img{width:20%;max-width:104px;filter:drop-shadow(0 12px 26px rgba(0,0,0,.55))}
.land-tease{font-size:14px;color:var(--txt-2);max-width:46ch;margin:18px 0 0;line-height:1.6}
.cta-row{margin:44px 0 8px}
a.cta{display:inline-block;padding:15px 30px;border-radius:14px;text-decoration:none;
  background:linear-gradient(175deg,var(--hanji),var(--hanji-2));color:var(--txt);
  font-family:var(--display);font-weight:600;font-size:18px;letter-spacing:-.01em;
  box-shadow:0 16px 42px rgba(0,0,0,.5);transition:transform .15s ease, box-shadow .15s ease}
a.cta:hover{transform:translateY(-2px);box-shadow:0 20px 48px rgba(0,0,0,.6)}
a.cta{white-space:nowrap}
a.cta small{display:block;font-family:'Karla',sans-serif;font-size:10.5px;font-weight:700;
  letter-spacing:.16em;color:var(--txt-3);margin-top:6px;text-transform:uppercase}
.trust{font-size:12.5px;color:var(--txt-3);margin-top:16px;letter-spacing:.03em}
/* 랜딩 리빌 v3 (2026-07-16 확정): 팝+스태거 스타일 + 재진입 시마다 재생 */
.lz{opacity:0;transform:translateY(22px);will-change:transform,opacity;
  transition:opacity .65s ease,transform .65s cubic-bezier(.22,.9,.26,1)}
.lz.in{opacity:1;transform:none}
.rail{list-style:none;counter-reset:r;margin:0;padding:0}
.rail li{counter-increment:r;position:relative;padding:22px 0 22px 54px;border-top:1px solid var(--line)}
.rail li:last-child{border-bottom:1px solid var(--line)}
.rail li::before{content:counter(r);position:absolute;left:0;top:20px;width:32px;height:32px;
  display:flex;align-items:center;justify-content:center;border-radius:50%;border:1px solid var(--line);
  font-family:var(--display);font-weight:600;font-size:14px;color:var(--txt-2)}
.rail b{display:block;font-family:var(--display);font-weight:600;font-size:17.5px;color:var(--txt);margin-bottom:4px}
.rail span{font-size:13.5px;color:var(--txt-2);line-height:1.55;display:block}
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.step{background:var(--ink-2);border:1px solid var(--line);border-radius:6px;padding:20px 18px}
.step b{display:block;font-family:var(--display);font-weight:600;font-size:16.5px;color:var(--txt);margin-bottom:6px}
.step span{font-size:12.5px;color:rgba(244,237,220,.6);line-height:1.55;display:block}
@media (max-width:640px){ .steps{grid-template-columns:1fr} .char-strip img{max-width:none} }

/* 토정비결 미니 그래프 */
.tj-bars{display:flex;gap:5px;align-items:flex-end;height:72px;margin:14px 0 4px}
.tj-bar{flex:1;background:var(--gold);border-radius:3px 3px 0 0}
.tj-lab{display:flex;gap:5px;font-size:9px;color:rgba(244,237,220,.5);text-align:center;letter-spacing:.04em}
.tj-lab span{flex:1}

footer{padding:60px 0 46px;text-align:center;color:rgba(244,237,220,.36);font-size:12.5px}
footer .kr{font-size:14px;letter-spacing:.5em;display:block;margin-bottom:12px}

@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-9px)}}
@keyframes pulse{0%,100%{opacity:.4;transform:scale(1)}50%{opacity:.65;transform:scale(1.06)}}
@keyframes rise{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:translateY(0)}}
.rise{animation:rise .8s cubic-bezier(.2,.8,.2,1) both}
@media (max-width:520px){ .pillar .p-hanja{font-size:24px} .row{grid-template-columns:1fr} }

/* ───────── 풀 리포트 (인쇄/PDF 전용 디자인) ───────── */
#report{display:none}
@media print{
  @page{size:A4;margin:16mm 15mm}
  body{background:#fdfaf3 !important}
  #sky,.wrap,.topbar,.auth-modal{display:none !important}
  #report{display:block;font-family:'Karla',sans-serif;color:#2a2317;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .rp-cover{page-break-after:always;height:95vh;display:flex;align-items:center;justify-content:center;text-align:center}
  .rp-cover-in{background:#101623;color:#f4eddc;border-radius:8px;padding:64px 48px;width:100%;height:92%;
    display:flex;flex-direction:column;align-items:center;justify-content:center}
  .rp-kicker{font-size:12px;font-weight:700;letter-spacing:.3em;color:#c9a24b;margin-bottom:18px}
  .rp-cover-in h1{font-family:var(--display);font-weight:500;font-size:44px;margin-bottom:12px}
  .rp-cover-sub{font-size:15px;color:rgba(244,237,220,.75)}
  .rp-cover-name{font-family:var(--display);font-style:italic;font-size:18px;color:#c9a24b;margin-top:10px}
  .rp-cover-char{width:200px;margin:34px auto 0}
  .rp-cover-foot{margin-top:auto;font-size:12px;color:rgba(244,237,220,.45);letter-spacing:.08em}
  .rp-sec{page-break-before:always;padding-top:6mm}
  .rp-sec:first-of-type{page-break-before:auto}
  .rp-sec h2{font-family:var(--display);font-weight:500;font-size:25px;color:#101623;
    border-bottom:2.5px solid #c9a24b;padding-bottom:9px;margin-bottom:16px}
  .rp-sec h3{font-family:var(--display);font-weight:600;font-size:15.5px;color:#8a6d2f;margin:18px 0 6px}
  .rp-sec p{font-size:12.5px;line-height:1.75;margin-bottom:10px;text-align:justify}
  .rp-table{width:100%;border-collapse:collapse;font-size:12px;margin:8px 0 4px}
  .rp-table th{text-align:left;font-size:10px;letter-spacing:.14em;color:#8a7a58;border-bottom:1.5px solid #d8cba8;padding:6px 8px}
  .rp-table td{border-bottom:1px solid #e7dec6;padding:9px 8px;vertical-align:top;line-height:1.5}
  .rp-lab{font-weight:700;font-size:10.5px;letter-spacing:.12em;color:#8a7a58}
  .rp-dim{color:#8d8069;font-size:11px}
  .rp-els{display:flex;gap:16px;flex-wrap:wrap;font-size:12.5px;margin:6px 0 10px}
  .rp-now{color:#b4443a;font-weight:700;font-size:11px}
  .rp-close p{text-align:center}
  .rp-close p:first-of-type{font-family:var(--display);font-size:17px}
  .rp-cert{text-align:center;padding-top:14mm}
  .rp-cert .kr-big{font-family:'Noto Serif KR',serif;font-weight:600;font-size:60px;color:#101623;margin:8mm 0 2mm}
  .rp-cert .kr-rom{font-family:var(--display);font-style:italic;font-size:17px;color:#8a6d2f;margin-bottom:8mm}
  .rp-cert p{text-align:center;max-width:120mm;margin-left:auto;margin-right:auto}
  .rp-days{display:flex;gap:10mm;flex-wrap:wrap;margin:4mm 0}
  .rp-days div{flex:1;min-width:36mm}
}

/* ═══ 3체계 딥 리딩 (2026-08-06) — 자미두수 명반 + 서양 네이탈 ═══
 * .reading(어두운 잉크) 안에 놓인다. 명반은 전통 4×4 지지 배치를 그대로 따른다:
 *   巳 午 未 申 / 辰 · · 酉 / 卯 · · 戌 / 寅 丑 子 亥  — 중앙 2×2는 요약. */
.zw-wrap{overflow-x:auto;margin:14px 0 6px;-webkit-overflow-scrolling:touch}
.zw-chart{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:minmax(92px,auto);
  gap:1px;background:var(--line);border:1px solid var(--line);border-radius:8px;overflow:hidden;min-width:330px}
.zw-cell{background:var(--ink-2);padding:7px 8px 5px;display:flex;flex-direction:column;min-width:0}
.zw-cell.ming{background:rgba(201,162,75,.13)}
.zw-cell.shen{box-shadow:inset 0 0 0 1px rgba(201,162,75,.5)}
.zw-cell.dxnow{background:rgba(180,68,58,.14)}
.zw-mid{grid-column:2/4;grid-row:2/4;background:var(--ink);padding:13px 12px;
  display:flex;flex-direction:column;justify-content:center;gap:7px}
.zw-pal{font-size:9.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--txt-3);line-height:1.3}
.zw-pal b{display:block;color:var(--gold);font-size:11px;letter-spacing:.06em}
.zw-star{font-size:11.5px;color:rgba(244,237,220,.92);line-height:1.45;margin-top:3px}
.zw-star.aux{color:rgba(244,237,220,.45);font-size:10.5px;margin-top:1px}
.zw-star .bt{font-size:9px;color:var(--txt-3);margin-left:2px}
.zw-hua{color:var(--red);font-weight:700;font-size:9.5px;margin-left:2px}
.zw-empty{font-size:10.5px;color:rgba(244,237,220,.35);font-style:italic;margin-top:3px}
.zw-foot{margin-top:auto;padding-top:5px;display:flex;justify-content:space-between;gap:6px;
  font-size:9px;color:var(--txt-3);letter-spacing:.03em}
.zw-mid .zwm-k{font-size:9.5px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--txt-3)}
.zw-mid .zwm-v{font-size:14px;color:var(--gold);font-family:var(--display)}
.zw-mid .zwm-s{font-size:11px;color:rgba(244,237,220,.6);line-height:1.5}
/* 대한 타임라인 */
.dx-row{display:flex;gap:9px;align-items:baseline;padding:6px 0;font-size:12.5px;
  border-bottom:1px solid rgba(244,237,220,.07)}
.dx-row.now{background:rgba(201,162,75,.12);border-radius:5px;padding-left:7px;padding-right:7px}
.dx-age{flex:none;width:58px;font-weight:700;color:var(--hanji);font-size:11.5px}
.dx-pal{flex:none;width:74px;font-size:9.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--txt-3)}
.dx-st{color:rgba(244,237,220,.8);min-width:0}
/* 서양 네이탈 표 */
.na-tbl{width:100%;border-collapse:collapse;font-size:12.5px;margin:10px 0 2px}
.na-tbl th{text-align:left;font-size:9.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--txt-3);
  border-bottom:1px solid var(--line);padding:5px 6px;font-weight:700}
.na-tbl td{border-bottom:1px solid rgba(244,237,220,.07);padding:7px 6px;color:rgba(244,237,220,.85);vertical-align:top}
.na-tbl td.sym{color:var(--gold);font-size:15px;width:1%;white-space:nowrap;padding-right:0}
.na-tbl td.dim{color:rgba(244,237,220,.45);font-size:11px}
.na-retro{color:var(--red);font-size:9.5px;font-weight:700;letter-spacing:.06em}
.na-ang{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin:10px 0 4px}
.na-ang>div{border:1px solid var(--line);border-radius:6px;padding:9px 11px}
.na-ang .k{font-size:9.5px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--txt-3)}
.na-ang .v{font-size:14px;color:var(--gold);font-family:var(--display);margin-top:2px}
/* (2026-08-06) .reading(어두운 잉크) 안의 .mt-block 본문 — 기본색 var(--txt-2)은 밝은 .card용이라
 * 딥 리딩에서 남색 위 짙은 올리브가 되어 사실상 안 보였다. (v40 범례·v41 연간행과 같은 계열 버그) */
.reading .mt-block p{color:rgba(244,237,220,.82)}
.reading .mt-block p b{color:#d9b96a}
.reading .role-row{color:rgba(244,237,220,.85)}
.zw-cell.ming .zw-foot,.zw-cell.dxnow .zw-foot{color:#b09a70}

/* ───────── 로그인 (상단바 버튼 + 모달) ─────────
   결제 CTA에서 앱을 떠나지 않고 로그인을 끝내기 위한 UI. 구글이 막히는 인앱 브라우저에서는
   구글 버튼과 구분선이 JS로 숨겨지고 이메일 폼만 남는다. */
.auth-btn{background:transparent;border:1px solid var(--line);color:rgba(244,237,220,.72);
  font:700 12px/1 'Karla',sans-serif;letter-spacing:.03em;padding:7px 11px;border-radius:8px;cursor:pointer;
  white-space:nowrap;max-width:170px;overflow:hidden;text-overflow:ellipsis}
.auth-btn:hover{color:var(--gold);border-color:rgba(201,162,75,.5)}

.auth-modal{position:fixed;inset:0;z-index:200;display:flex;align-items:center;justify-content:center;padding:20px}
.auth-modal[hidden]{display:none}
.auth-back{position:absolute;inset:0;background:rgba(6,9,16,.72);backdrop-filter:blur(3px)}
.auth-card{position:relative;width:100%;max-width:380px;max-height:92vh;overflow-y:auto;
  background:var(--ink-2);border:1px solid var(--line);border-radius:16px;padding:26px 24px 22px;
  box-shadow:0 24px 70px rgba(0,0,0,.55)}
.auth-card h3{font-size:22px;color:var(--hanji);margin-bottom:6px}
.auth-why{font-size:13px;color:rgba(244,237,220,.6);margin-bottom:18px;line-height:1.5}
.auth-x{position:absolute;top:10px;right:12px;background:none;border:0;color:rgba(244,237,220,.45);
  font-size:26px;line-height:1;cursor:pointer}
.auth-x:hover{color:var(--hanji)}

.auth-google{width:100%;display:flex;align-items:center;justify-content:center;gap:9px;
  background:var(--hanji);color:var(--txt);border:0;border-radius:10px;padding:12px;
  font:700 14px/1 'Karla',sans-serif;cursor:pointer}
.auth-google:hover{background:#fff}
.auth-google .g{font-family:var(--display);font-weight:700;color:#4285f4}
.auth-or{display:flex;align-items:center;gap:10px;margin:16px 0 14px;
  color:rgba(244,237,220,.35);font-size:11px;letter-spacing:.12em;text-transform:uppercase}
.auth-or::before,.auth-or::after{content:'';flex:1;height:1px;background:var(--line)}

.auth-lbl{display:block;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;
  color:rgba(244,237,220,.5);margin:12px 0 5px}
.auth-card input{width:100%;background:rgba(0,0,0,.28);border:1px solid var(--line);border-radius:9px;
  color:var(--hanji);font:400 15px/1.2 'Karla',sans-serif;padding:12px}
.auth-card input:focus{outline:0;border-color:rgba(201,162,75,.55)}
.auth-card input.invalid{border-color:var(--red)}

.auth-go{width:100%;margin-top:18px;background:var(--gold);color:#17110a;border:0;border-radius:10px;
  padding:13px;font:700 15px/1 'Karla',sans-serif;cursor:pointer}
.auth-go:hover{filter:brightness(1.07)}
.auth-go:disabled{opacity:.55;cursor:default}
.auth-msg{font-size:13px;line-height:1.5;margin-top:12px;min-height:1px}
.auth-msg.err{color:#e08b80}
.auth-msg.ok{color:var(--gold)}
.auth-alt{display:flex;justify-content:space-between;gap:10px;margin-top:16px}
.auth-alt button{background:none;border:0;color:rgba(244,237,220,.55);font-size:12px;
  text-decoration:underline;cursor:pointer;padding:0}
.auth-alt button:hover{color:var(--gold)}
@media(max-width:520px){ .auth-card{padding:22px 18px 18px} }

/* 정책 링크 — 결제사 심사관이 사이트에서 약관·환불·연락처를 찾을 수 있어야 한다.
   없으면 활성화 심사에서 그대로 거부 사유가 된다(2026-08-24). */
.legal-links{display:inline-block;margin-top:8px;font-size:12px}
.legal-links a{color:rgba(244,237,220,.55);text-decoration:none;white-space:nowrap}
.legal-links a:hover{color:var(--gold);text-decoration:underline}
/* 결제 버튼 근처 환불 한 줄 — SPEC §1.3/§3.4가 요구했으나 누락돼 있던 것 */
.pay-assure{font-size:12.5px;line-height:1.6;color:rgba(244,237,220,.6);margin-top:10px;text-align:center}
.pay-assure a{color:rgba(244,237,220,.75)}

/* ═══════════════════════════════════════════════════════════════
   HOME v2 "PHOTOCARD" (2026-09-24)
   디자인 리드: K-pop 팬덤의 물성 = 포토카드(홀로그램·유광·기울이면 빛).
   금색+네이비(사주앱 클리셰) 폐기 → 옵시디언 + 핫핑크 액센트 + 홀로 필름.
   액센트 잠금: --accent 는 1차 CTA 전용. 홀로 그라디언트는 "카드 재질"로만.
   ═══════════════════════════════════════════════════════════════ */
:root{
  --canvas:#0a0910; --surface:#16141f; --raised:#211e2e;
  --txt:#f2eff7; --txt-2:rgba(242,239,247,.60); --txt-3:rgba(242,239,247,.34);
  --line:rgba(242,239,247,.10);
  --accent:#ff4d6d; --accent-soft:rgba(255,77,109,.16);
  --holo:linear-gradient(115deg,#6ee7ff 0%,#ff4d6d 34%,#ffd166 58%,#a78bfa 82%,#6ee7ff 100%);
  --wood:#4fe38e; --fire:#ff7a4f; --earth:#ffc857; --metal:#c3cedc; --water:#5fb0ff;
  --r-card:20px; --r-btn:999px;
}
body{background:var(--canvas);color:var(--txt)}
#sky{opacity:.55}

/* 상단바 */
.topbar{background:rgba(10,9,16,.82);border-bottom:1px solid var(--line)}
.topbar .brand{color:var(--txt);font-family:var(--display);font-weight:700;letter-spacing:-.02em}
.topnav a.active{background:var(--accent-soft);color:var(--accent)}
.topnav a:hover{color:var(--txt)}
.lang-switch button.active{background:var(--txt);color:var(--canvas)}

/* ── 히어로: 비대칭 스플릿 ── */
header.hero{padding:26px 0 4px;display:grid;gap:16px;align-items:center}
.hero-copy{min-width:0}
h1{font-family:var(--display);font-weight:700;font-size:clamp(33px,8.2vw,58px);letter-spacing:-.035em;
  line-height:1.02;color:var(--txt);padding-bottom:6px;text-wrap:balance}
h1 em{font-style:italic;font-weight:700;
  background:var(--holo);-webkit-background-clip:text;background-clip:text;color:transparent}
.sub{margin-top:12px;color:var(--txt-2);font-size:15.5px;max-width:34ch;line-height:1.5}
.hero-act{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-top:20px}
a.cta{display:inline-block;padding:15px 28px;border-radius:var(--r-btn);text-decoration:none;
  background:var(--accent);color:#0a0910;font-family:var(--display);font-weight:700;font-size:17px;
  letter-spacing:-.01em;box-shadow:0 10px 34px rgba(255,77,109,.34);border:none;
  transition:transform .16s cubic-bezier(.16,1,.3,1),box-shadow .16s}
a.cta:hover{transform:translateY(-2px);box-shadow:0 16px 44px rgba(255,77,109,.46)}
a.cta:active{transform:translateY(0) scale(.98)}
a.cta small{display:block;font-family:'Karla',sans-serif;font-size:10px;font-weight:700;
  letter-spacing:.14em;color:rgba(10,9,16,.85);margin-top:4px;text-transform:uppercase}
.cta-2{color:var(--txt-2);font-size:14.5px;font-weight:700;text-decoration:none;
  border-bottom:1px solid var(--line);padding-bottom:2px}
.cta-2:hover{color:var(--txt);border-bottom-color:var(--txt-3)}
.moon{display:none}

/* ── 포토카드 (제품의 물성) ── */
.pc-stage{perspective:1100px;display:flex;justify-content:center;padding:6px 0 2px}
.pc{position:relative;width:min(56vw,216px);aspect-ratio:3/4.2;border-radius:var(--r-card);
  transform-style:preserve-3d;transform:rotateX(var(--ry,0deg)) rotateY(var(--rx,0deg));
  transition:transform .35s cubic-bezier(.16,1,.3,1);will-change:transform;cursor:pointer}
.pc.tilting{transition:none}
.pc-face{position:absolute;inset:0;border-radius:var(--r-card);overflow:hidden;
  background:linear-gradient(168deg,#232130,#0c0b12 62%);
  border:1px solid rgba(242,239,247,.16);
  box-shadow:0 26px 60px rgba(0,0,0,.62), inset 0 1px 0 rgba(255,255,255,.14)}
.pc-art{position:absolute;left:50%;bottom:34px;transform:translateX(-50%);width:104%;max-width:none}
.pc-el{position:absolute;inset:0;opacity:.5;transition:background .45s ease;
  background:radial-gradient(74% 48% at 50% 92%,var(--elc,#5fb0ff),transparent 72%)}
/* 홀로 필름: 카드 재질 전용 */
.pc-holo{position:absolute;inset:0;background:var(--holo);background-size:260% 260%;
  mix-blend-mode:soft-light;opacity:.5;animation:holoshift 9s ease-in-out infinite}
.pc-shine{position:absolute;inset:-40%;mix-blend-mode:overlay;
  background:linear-gradient(100deg,transparent 43%,rgba(255,255,255,.62) 50%,transparent 57%);
  animation:shine 5.5s ease-in-out infinite}
.pc-meta{position:absolute;left:0;right:0;bottom:0;padding:12px 14px;
  background:linear-gradient(to top,rgba(10,9,16,.94),transparent);display:flex;
  align-items:baseline;justify-content:space-between;gap:8px}
.pc-meta b{font-family:var(--display);font-weight:700;font-size:15.5px;letter-spacing:-.015em}
.pc-meta span{font-size:9.5px;font-weight:700;letter-spacing:.18em;color:var(--txt-3);text-transform:uppercase}
.pc-edge{position:absolute;inset:0;border-radius:var(--r-card);pointer-events:none;
  background:var(--holo);opacity:.5;
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);
  -webkit-mask-composite:xor;mask-composite:exclude;padding:1px}
@keyframes holoshift{0%,100%{background-position:0% 50%}50%{background-position:100% 50%}}
@keyframes shine{0%,62%,100%{transform:translateX(-58%)}80%{transform:translateX(58%)}}

/* ── 오행 선택 레일 (참여 장치) ── */
.picker{display:flex;gap:8px;overflow-x:auto;scroll-snap-type:x mandatory;
  margin:18px -22px 0;padding:0 22px 6px;scrollbar-width:none}
.picker::-webkit-scrollbar{display:none}
.pick{scroll-snap-align:center;flex:none;width:72px;padding:10px 0 9px;border-radius:14px;
  background:var(--surface);border:1px solid var(--line);text-align:center;cursor:pointer;
  font-family:var(--display);font-weight:700;font-size:11.5px;letter-spacing:.04em;color:var(--txt-2);
  transition:border-color .2s,color .2s,transform .2s}
.pick i{display:block;width:100%;height:3px;border-radius:2px;background:var(--elc);margin-bottom:8px}
.pick[aria-pressed="true"]{color:var(--txt);border-color:var(--elc);transform:translateY(-3px);
  box-shadow:0 8px 22px rgba(0,0,0,.4)}
.pick-hint{margin-top:12px;font-size:13px;color:var(--txt-2)}

/* ── 섹션 헤딩 ── */
.sec-h{font-family:var(--display);font-weight:700;font-size:clamp(24px,5.6vw,34px);letter-spacing:-.03em;
  line-height:1.08;color:var(--txt);margin:74px 0 20px}

/* ── 벤토 ── */
.cell{border-radius:var(--r-card);border:1px solid var(--line);background:var(--surface)}
.cell:hover{border-color:rgba(242,239,247,.26);transform:translateY(-3px)}
.cell b{font-family:var(--display);font-weight:700;letter-spacing:-.02em;color:var(--txt)}
.cell span{color:var(--txt-2)}
.cell-lead{background:radial-gradient(120% 150% at 6% 0%,rgba(255,77,109,.20),transparent 60%),var(--surface)}
.cell-art{background:radial-gradient(120% 140% at 100% 0%,rgba(110,231,255,.16),transparent 62%),var(--surface)}
.cell-quiet{background:none;border-style:dashed}
/* 모바일: 7셀이 빈 칸 없이 떨어지게 (셀 카운트 규칙) */
@media(max-width:759px){ .bento .cell:nth-child(5){grid-column:span 6} }

/* ── 번호 레일 ── */
.rail li::before{border:1px solid var(--line);color:var(--txt-2);font-family:var(--display);font-weight:700}
.rail b{font-family:var(--display);font-weight:700;letter-spacing:-.02em;color:var(--txt)}
.rail span{color:var(--txt-2)}

/* ── 복코 3D 장면 (따뜻한 틴트, 다크 테마 유지) ── */
.scene{position:relative;margin:76px 0 0;border-radius:24px;overflow:hidden;
  background:radial-gradient(90% 70% at 70% 30%,rgba(255,200,87,.14),transparent 62%),var(--surface);
  border:1px solid var(--line);padding:26px 22px 0}
.scene>blockquote,.scene>figcaption{position:relative;z-index:2}
.scene blockquote p{font-family:var(--display);font-weight:600;font-size:clamp(18px,4.6vw,24px);
  letter-spacing:-.02em;line-height:1.28;color:var(--txt);max-width:22ch}
.scene figcaption{margin-top:10px;font-size:11px;font-weight:700;letter-spacing:.16em;
  text-transform:uppercase;color:var(--txt-3)}
.scene-img{display:block;width:calc(100% + 44px);max-width:none;margin:-40px -22px -1px;
  -webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 26%,#000 100%);
  mask-image:linear-gradient(to bottom,transparent 0,#000 26%,#000 100%)}
@media(min-width:760px){
  .scene{padding:40px 36px 0;display:grid;grid-template-columns:1fr 1fr;gap:10px;align-items:end}
  .scene>blockquote{align-self:center}
  .scene>figcaption{position:absolute;left:36px;top:auto;bottom:34px}
  .scene-img{width:100%;margin:0 -36px -1px 0;
    -webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 18%,#000 100%);
    mask-image:linear-gradient(to bottom,transparent 0,#000 18%,#000 100%)}
}
.letter{display:none}

.land-tease{color:var(--txt-2)}
.trust{color:var(--txt-3)}
footer{color:var(--txt-3);border-top:1px solid var(--line);margin-top:70px}

/* ── 스크롤 등장 ── */
.rv{opacity:0;transform:translateY(18px);transition:opacity .7s cubic-bezier(.16,1,.3,1),transform .7s cubic-bezier(.16,1,.3,1)}
.rv.in{opacity:1;transform:none}

@media(min-width:760px){
  .wrap{max-width:1000px}
  header.hero{grid-template-columns:1.05fr .95fr;padding:52px 0 16px}
  .pc{width:290px}
  .sec-h{margin:96px 0 26px}
}

/* 접근성: 모션 축소 */
@media (prefers-reduced-motion: reduce){
  .pc,.pc-holo,.pc-shine{animation:none!important;transition:none!important;transform:none!important}
  .rv{opacity:1!important;transform:none!important;transition:none!important}
  a.cta:hover,.cell:hover{transform:none}
}

/* ═══════════════════════════════════════════════════════════════
   APP SHELL v2 — 내부 16개 뷰를 홈과 같은 언어로 (2026-09-29)
   홈만 새 UI였고 cast/today/bias/year/... 는 한지+금색으로 남아 있었다.
   방침: ① 레거시 토큰을 새 팔레트로 재매핑(1곳 고쳐 100+곳이 따라옴)
        ② --gold 44곳을 핑크로 보내지 않는다(악센트 스팸). 밝기 위계로 강조.
        ③ 핑크(--accent)는 1차 CTA 전용 잠금 유지.
        ④ 밝은 한지 카드는 어두운 카드로 — 홈의 포토카드와 같은 물성.
   ═══════════════════════════════════════════════════════════════ */
:root{
  --ink:#0a0910;            /* 밝은 버튼 위의 글자색 역할 유지 → 계속 어둡게 */
  --ink-2:#16141f;          /* 어두운 패널 (12곳) */
  --hanji:#f2eff7;          /* 밝은 글자 (12곳) */
  --hanji-2:#dcd7e6;
  --gold:#f2eff7;           /* 금색 폐기 → 밝은 중립. 강조는 밝기로 한다 */
  --line:rgba(242,239,247,.10);
}

/* ── 밝은 한지 표면 → 어두운 카드 (홈 포토카드와 같은 재질) ── */
.card, .master, .letter, .bokko-bubble{
  background:linear-gradient(168deg,#232130,#0c0b12 62%) !important;
  color:var(--txt) !important;
  border:1px solid rgba(242,239,247,.13);
  border-radius:var(--r-card);
  box-shadow:0 18px 44px rgba(0,0,0,.5), inset 0 1px 0 rgba(255,255,255,.08);
}
.tcard{background:linear-gradient(168deg,#232130,#0c0b12 62%);border:1px solid rgba(242,239,247,.13)}
.card *, .master *, .letter *, .bokko-bubble *{border-color:var(--line)}

/* 폼 입력 — 밝은 종이 입력칸이 어두운 화면에 떠 있었다 */
input, select, textarea{
  background:var(--raised) !important; color:var(--txt) !important;
  border:1px solid var(--line) !important; border-radius:12px;
}
input::placeholder, textarea::placeholder{color:var(--txt-3)}
input:focus, select:focus, textarea:focus{border-color:var(--accent) !important; outline:none}

/* 패널·칩 라운드를 홈과 맞춤 (홈은 20px 카드 / 999px 버튼) */
.pillar, .reading, .dream-chip, .hub, .step, .el-track{border-radius:14px}
.feat-nav a, .mm-btn, .name-opt{border-radius:var(--r-btn)}

/* ── 악센트 잠금: 핑크는 1차 CTA 에만 ── */
.btn2.solid, .auth-go{
  background:var(--accent) !important; color:#0a0910 !important;
  border:none; border-radius:var(--r-btn); font-family:var(--display); font-weight:700;
  box-shadow:0 10px 30px rgba(255,77,109,.3);
}
.btn2.solid:hover, .auth-go:hover{transform:translateY(-2px)}
/* 나머지 옛 금색 배경(상태표시·데이터)은 밝은 중립 위에 어두운 글자 */
.lang-switch button.active, .feat-nav a.active, .btn2.active{color:var(--ink)}
.tj-bar, .deck-dots .dd.on{background:var(--txt)}

/* 잠긴 점수 — 영상 훅의 주인공이라 홈 카드와 같은 홀로 재질로 */
.score-locked{
  background:var(--raised); border:1px solid var(--line); color:var(--txt);
  border-radius:var(--r-card);
}

/* ── 앱 1차 액션(.go) — 홈 CTA와 같은 지위다. 핑크 솔리드로 통일 ──
   Reveal my Four Pillars / Match with my bias / Read our compatibility.
   악센트 잠금 위반 아님: 이것들이 각 화면의 유일한 1차 행동이다. */
.go{
  background:var(--accent) !important; color:#0a0910 !important;
  border:none !important; border-radius:var(--r-btn) !important;
  font-family:var(--display) !important; font-weight:700 !important; font-size:17px;
  padding:15px 28px; box-shadow:0 10px 30px rgba(255,77,109,.3);
  transition:transform .16s cubic-bezier(.16,1,.3,1),box-shadow .16s;
}
.go:hover{transform:translateY(-2px);box-shadow:0 16px 40px rgba(255,77,109,.42)}
.go:active{transform:translateY(0) scale(.98)}
.go:disabled{opacity:.45;box-shadow:none;transform:none}
@media (prefers-reduced-motion:reduce){ .go,.go:hover,.go:active{transition:none;transform:none} }

/* 구글 버튼 — 흰 배경에 어두운 글자(구글 브랜드 관례). 2026-09-30 회귀 수정:
   한지 팔레트 일괄 치환 때 color:#1a1a1a 를 var(--txt)(밝은색)로 바꿔버려
   밝은 배경 + 밝은 글자가 됐다. 라벨이 안 보여 'G' 아이콘만 남았었다. */
.auth-google{background:#fff !important;color:#1a1a1a !important;border-radius:var(--r-btn) !important}
.auth-google:hover{background:#f2eff7 !important}

/* ═══════════════════════════════════════════════════════════════
   RESULT v3 — 결과 페이지 위계 (2026-10-04)
   ① 일간 카드: 그 사람의 오행색(--el, JS가 넣음)이 카드에 배어든다. 악센트(핑크)는 건드리지 않는다.
   ② 기둥표: 일주 = '나' → 주인공. 모르는 시주는 흐린 빈칸 대신 출생시간 입력으로 안내(결제 리포트 4주 유도).
   ③ 섹션 라벨: 모든 섹션 위 대문자 아이브로우 → 왼쪽 정렬 제목 하나(아이브로우 남발 제거).
   ═══════════════════════════════════════════════════════════════ */
.master{--el:#a8b2bd;
  background:
    radial-gradient(120% 70% at 50% 0%, color-mix(in srgb, var(--el) 30%, transparent), transparent 62%),
    linear-gradient(168deg,#232130,#0c0b12 62%) !important;
  border-color:color-mix(in srgb, var(--el) 38%, rgba(242,239,247,.13)) !important}
.m-eyebrow{color:var(--el);letter-spacing:.2em}
.m-title{font-weight:700;font-size:clamp(32px,7vw,44px);letter-spacing:-.02em;line-height:1.08;margin:8px 0 6px}
.m-hanja{font-family:var(--display);font-size:14.5px}
.m-essence{font-size:18px;color:var(--txt);line-height:1.45}
.trait{border:1px solid color-mix(in srgb, currentColor 55%, transparent);background:color-mix(in srgb, currentColor 12%, transparent)}

.pillars{gap:8px;align-items:stretch}
.pillar{padding:16px 4px 14px;background:var(--ink-2);transition:transform .2s cubic-bezier(.16,1,.3,1)}
.pillar .p-name{font-size:11px;font-weight:700;letter-spacing:.14em;color:var(--txt-3);margin-bottom:12px}
.pillar .p-hanja{font-size:34px;line-height:1.1}
.pillar .p-sub{font-size:11.5px;letter-spacing:.02em;color:var(--txt-2);margin:6px 0 14px}
.pillar .p-sub:last-child{margin-bottom:2px}
.pillar.is-day{
  background:linear-gradient(180deg, color-mix(in srgb, var(--el) 26%, #16141f), #16141f 78%);
  border:1.5px solid color-mix(in srgb, var(--el) 70%, transparent);
  box-shadow:0 14px 34px color-mix(in srgb, var(--el) 22%, transparent);
  transform:translateY(-6px)}
.pillar.is-day .p-name{color:var(--el)}
.pillar.is-day .p-hanja{font-size:42px}
.pillar.is-unknown{background:transparent;border:1.5px dashed rgba(242,239,247,.22);
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px}
.pillar.is-unknown .p-name{margin-bottom:0}
.p-q{font-family:var(--display);font-size:40px;font-weight:700;color:var(--txt-3);line-height:1}
.p-add{font-size:11.5px;font-weight:700;color:var(--txt);text-decoration:underline;text-underline-offset:3px;padding:4px 6px}
@media (max-width:520px){ .pillar .p-hanja{font-size:28px} .pillar.is-day .p-hanja{font-size:34px} .pillar .p-sub{font-size:10.5px} }

#result .section-label{justify-content:flex-start;gap:0;margin:64px 0 18px;font-family:var(--display);font-size:22px;
  font-weight:700;letter-spacing:-.01em;text-transform:none;color:var(--txt)}
#result .section-label::before,#result .section-label::after{display:none}
#result .section-label:first-child{margin-top:28px}
@media (prefers-reduced-motion:reduce){ .pillar{transition:none} }
.master::before{border-color:color-mix(in srgb, var(--el) 42%, transparent)}
.master::after{border-color:color-mix(in srgb, var(--el) 16%, transparent)}
.pillar .p-name{white-space:nowrap}
@media (max-width:520px){ .pillar .p-name{font-size:9.5px;letter-spacing:.06em} .pillar .p-sub{line-height:1.35} }

/* ── 주제별 풀이 (2026-10-09) — Life·Money·Love·Career·Reunion. --c = 주제 색(장식), CTA는 --accent 고정 ── */
.rd{margin-top:8px;word-break:keep-all}
.rd-kick{font:700 12.5px Karla,sans-serif;letter-spacing:.12em;text-transform:uppercase;color:var(--c)}
.rd-title{font-family:var(--display);font-weight:800;font-size:clamp(30px,7.4vw,46px);line-height:1.04;letter-spacing:-.03em;margin:8px 0 10px;color:var(--txt)}
.rd-intro{color:var(--txt-2);font-size:16px;margin-bottom:22px}
.rd-sec{padding:22px 20px;border-radius:var(--r-card);background:var(--surface);border:1px solid var(--line);margin-top:12px}
.rd-sec h3{font:700 20px var(--display);letter-spacing:-.01em;color:var(--txt);margin-bottom:8px}
.rd-sec h3 .lk-ico{font-size:14px;margin-right:6px}
.rd-body p{color:var(--txt-2);font-size:16px;line-height:1.6;margin-top:8px}
.rd-body p:first-child{margin-top:0}
.rd-body b{color:var(--txt)}
.rd-body a{color:var(--c)}
.rd-locked .rd-body{filter:blur(7px);user-select:none;pointer-events:none;opacity:.8}
.rd-gate{margin-top:12px;padding:20px;border-radius:var(--r-card);border:1.5px solid var(--accent);background:var(--accent-soft);display:grid;gap:6px;text-align:center}
.rd-gate b{font:800 19px var(--display);color:var(--txt)}
.rd-gate span{color:var(--txt-2);font-size:15px}
.rd-gate .btn2{margin-top:8px}
.rd-list{list-style:none;display:grid;gap:8px;margin-top:6px}
.rd-list li{color:var(--txt-2);padding-left:18px;position:relative}
.rd-list li::before{content:'';position:absolute;left:2px;top:10px;width:7px;height:7px;border-radius:50%;background:var(--c)}
.rd-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.rd-chips span{padding:7px 13px;border-radius:999px;font-weight:700;font-size:14.5px;color:var(--txt);background:color-mix(in srgb,var(--c) 18%,transparent);border:1px solid color-mix(in srgb,var(--c) 45%,transparent)}
.rd-dots{color:var(--c);letter-spacing:1px;font-size:12px;white-space:nowrap}
.rd-table{width:100%;border-collapse:collapse;font-size:14.5px}
.rd-table td{padding:8px 4px;border-bottom:1px solid var(--line);color:var(--txt-2);vertical-align:top}
.rd-table td:first-child{color:var(--txt);font-weight:700;white-space:nowrap}
.rd-bars{display:grid;gap:9px;margin:6px 0 10px}
.rd-bars div{display:grid;grid-template-columns:96px 1fr 22px;gap:10px;align-items:center;font-size:14px;color:var(--txt-2)}
.rd-bars i{display:block;height:12px;border-radius:6px;background:var(--c);width:calc(max(var(--w),.04)*100%)}
.rd-bars b{color:var(--txt);text-align:right}
.rd-decades{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-top:12px}
.rd-decades div{padding:9px 6px;border-radius:12px;text-align:center;background:color-mix(in srgb,var(--c) 14%,transparent);border:1px solid transparent}
.rd-decades div.now{border-color:var(--c);background:color-mix(in srgb,var(--c) 30%,transparent)}
.rd-decades b{display:block;font-size:13px;color:var(--txt)}
.rd-decades span{font-size:12px;color:var(--txt-2)}
.rd-others{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:26px 0 10px}
.rd-others span{font-size:13px;color:var(--txt-3);margin-right:4px}
.rd-others a{padding:7px 13px;border-radius:999px;text-decoration:none;font-weight:700;font-size:14px;color:var(--txt);border:1px solid color-mix(in srgb,var(--c) 50%,transparent)}
.rd-hub{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:6px}
.rd-card{display:block;text-decoration:none;padding:16px 14px;border-radius:18px;background:var(--surface);border:1.5px solid var(--line);
  background-image:radial-gradient(120% 90% at 100% 0,color-mix(in srgb,var(--c) 22%,transparent),transparent 65%)}
.rd-card small{display:block;font-size:11.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--c)}
.rd-card b{display:block;font:800 21px var(--display);letter-spacing:-.02em;color:var(--txt);margin:4px 0 2px}
.rd-card span{display:block;font-size:13.5px;line-height:1.35;color:var(--txt-2)}
.rd-form{display:grid;gap:7px;margin-bottom:8px;max-width:420px}
.rd-form label{font-size:13px;font-weight:700;color:var(--txt-2)}
.rd-form .btn2{margin-top:8px}
.rd-pay a,.cta-card .lock-list a{color:var(--txt-2)}
/* (2026-10-10) Discord 로그인 — 브랜드 색(Blurple) + 공식 로고(Simple Icons). .auth-google의 !important 흰 배경을 이겨야 한다 */
.auth-google.auth-discord{margin-top:10px;background:#5865f2 !important;color:#fff !important}
.auth-google.auth-discord:hover{background:#4752c4 !important}
.auth-discord .dc{flex:none}
