/* ==========================================================================
   《월하명감(月下明鑑)》 출판 단행본·문예지 조판 스타일 (wolha_original_engine.css · v7.0)
   - AI형 카드·박스·말풍선·번호 뱃지(01/02/03)·중첩 박스 전면 철거
   - 흰 종이(#FFFFFF / #FCFBF9) + 가는 먹선(1px) + 바탕체/본문체 여백 중심 서책 조판
   ========================================================================== */

/* --- 0. 데스크톱 셸 여유 폭 & 단일 스크롤 안정화 --- */
.app-shell,
.fullpage-modal .fp-card,
.sheet-overlay .reading-sheet,
.counsel-flow-overlay .cf-shell {
  max-width: 520px !important;
}

.fp-scroll,
.sheet-scroll {
  min-height: 0 !important;
}

/* --- 1. 메인 홈 스토어프론트 : 순백(#FFFFFF) 바탕 + 순검정(#111111) Pretendard 정밀 자간·띄어쓰기 --- */
.top-header {
  height: 58px !important;
  padding: 0 16px !important;
  background: rgba(255, 255, 255, 0.98) !important;
  border-bottom: 1px solid #F1F3F5 !important;
}
.brand-logo {
  display: inline-flex !important;
  align-items: center !important;
  gap: 8px !important;
}
.wolha-seal-img {
  height: 29px !important;
  width: auto !important;
  max-width: 32px !important;
  object-fit: contain !important;
  display: block !important;
  flex-shrink: 0 !important;
}
.brand-wordmark {
  font-family: 'Noto Serif KR', serif !important;
  font-size: 20.5px !important;
  font-weight: 900 !important;
  color: #111111 !important;
  letter-spacing: -0.055em !important;
  word-spacing: -0.04em !important;
  line-height: 1 !important;
}
.gnb-nav {
  background: #FFFFFF !important;
  border-bottom: 1px solid #F1F3F5 !important;
}
.gnb-tab {
  font-family: 'Pretendard Variable', 'Pretendard', sans-serif !important;
  font-size: 15.5px !important;
  font-weight: 700 !important;
  color: #6B7280 !important;
  padding: 12px 6px 11px !important;
  letter-spacing: -0.025em !important;
}
.gnb-tab.active {
  color: #111111 !important;
  font-weight: 800 !important;
}
.gnb-tab.active::after {
  background: #111111 !important;
}
.sub-chip {
  font-family: 'Pretendard Variable', 'Pretendard', sans-serif !important;
  font-size: 13.8px !important;
  padding: 7px 14px !important;
}
.sub-chip.active {
  background: #111111 !important;
  border-color: #111111 !important;
  color: #FFFFFF !important;
}
.welcome-coin-strip {
  font-size: 13.5px !important;
  padding: 9px 16px !important;
  background: #141416 !important;
  color: #F9FAFB !important;
}

/* 히어로 배너 : 세로 잘림 방지(4:4.1) + 숫자·한글 띄어쓰기 벌어짐 완전 해소 */
.home-hero-band {
  background: #FFFFFF !important;
  padding: 0 !important;
}
.hero-wrap {
  padding: 12px 16px 10px !important;
}
.hero-stage {
  aspect-ratio: 4 / 4.1 !important;
  max-height: 495px !important;
  border-radius: 18px !important;
  box-shadow: 0 10px 26px rgba(0, 0, 0, 0.09) !important;
}
.hero-vignette {
  background: linear-gradient(
    180deg,
    rgba(8, 10, 14, 0.18) 0%,
    rgba(8, 10, 14, 0.0) 38%,
    rgba(8, 10, 14, 0.68) 68%,
    rgba(6, 8, 12, 0.95) 100%
  ) !important;
}
.hero-caption {
  left: 18px !important;
  right: 18px !important;
  bottom: 18px !important;
  text-align: left !important;
}
.hero-kicker {
  display: inline-block !important;
  font-family: 'Pretendard Variable', 'Pretendard', sans-serif !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  color: #FFE4A3 !important;
  letter-spacing: -0.025em !important;
  word-spacing: -0.02em !important;
  padding: 0 !important;
  margin-bottom: 5px !important;
}
.hero-title {
  font-family: 'Pretendard Variable', 'Pretendard', sans-serif !important;
  font-size: 27.5px !important;
  font-weight: 800 !important;
  line-height: 1.22 !important;
  letter-spacing: -0.038em !important;
  word-spacing: -0.03em !important;
  margin: 0 0 6px !important;
  color: #FFFFFF !important;
}
.hero-quote {
  font-family: 'Pretendard Variable', 'Pretendard', sans-serif !important;
  font-size: 14.2px !important;
  font-weight: 500 !important;
  line-height: 1.48 !important;
  letter-spacing: -0.02em !important;
  color: rgba(255, 255, 255, 0.92) !important;
}
.hero-cta-pill {
  display: none !important;
}
.hero-dots {
  margin-top: 9px !important;
}
.hero-dot.active {
  background: #111111 !important;
}

/* 홈 전체 섹션 : 어두운 배경박스/민트박스/관청 뱃지 철거 -> 순백 바탕 + 깔끔한 순검정(#111111) 타이틀 */
.worry-guide-sec {
  background: #FFFFFF !important;
  padding: 16px 16px 18px !important;
  border-bottom: 8px solid #F4F5F7 !important;
}
.wg-kicker { display: none !important; }
.wg-title {
  font-family: 'Pretendard Variable', 'Pretendard', sans-serif !important;
  font-size: 19.5px !important;
  font-weight: 800 !important;
  color: #111111 !important;
  letter-spacing: -0.035em !important;
  word-spacing: -0.02em !important;
  line-height: 1.32 !important;
  margin: 0 0 4px !important;
}
.wg-sub {
  font-family: 'Pretendard Variable', 'Pretendard', sans-serif !important;
  font-size: 13.8px !important;
  color: #6B7280 !important;
  letter-spacing: -0.02em !important;
  line-height: 1.45 !important;
  margin-bottom: 12px !important;
}
.wg-card {
  padding: 12px !important;
  background: #F9FAFB !important;
  border: 1px solid #ECEEF2 !important;
  border-radius: 12px !important;
}
.wg-ico {
  width: 34px !important;
  height: 34px !important;
  font-size: 15px !important;
  background: #111111 !important;
  color: #FFFFFF !important;
  border-radius: 9px !important;
}
.wg-txt strong {
  font-family: 'Pretendard Variable', 'Pretendard', sans-serif !important;
  font-size: 14.8px !important;
  font-weight: 800 !important;
  color: #111111 !important;
  letter-spacing: -0.03em !important;
}
.wg-txt span {
  font-size: 12.6px !important;
  color: #6B7280 !important;
  line-height: 1.38 !important;
}
.daily-letter-card {
  background: #F9FAFB !important;
  border: 1px solid #EAECEF !important;
  border-radius: 14px !important;
}
.dl-top { font-size: 12.5px !important; color: #B31E1A !important; }
.dl-title {
  font-family: 'Pretendard Variable', 'Pretendard', sans-serif !important;
  font-size: 16px !important;
  font-weight: 800 !important;
  color: #111111 !important;
  letter-spacing: -0.03em !important;
  line-height: 1.42 !important;
}
.dl-sub { font-size: 13.5px !important; color: #4B5563 !important; line-height: 1.52 !important; }
.lrs-tag { background: #111111 !important; font-size: 12px !important; }
.lrs-text { font-size: 13.5px !important; color: #374151 !important; }

/* 깔끔한 순백 스토어프론트 섹션 (.wh-clean-home-sec) */
.wh-clean-home-sec,
.theme-band-wrap,
.sec-block {
  background: #FFFFFF !important;
  border: none !important;
  border-bottom: 8px solid #F4F5F7 !important;
  border-radius: 0 !important;
  margin: 0 !important;
  padding: 24px 16px 22px !important;
  box-shadow: none !important;
}
.theme-step-pill,
.ed-band-kicker {
  display: none !important;
}
.sec-head {
  margin-bottom: 14px !important;
}
.sec-head h2,
.wh-clean-sec-title {
  margin: 0 !important;
  font-family: 'Pretendard Variable', 'Pretendard', sans-serif !important;
  font-size: 18.5px !important;
  font-weight: 800 !important;
  color: #111111 !important;
  letter-spacing: -0.04em !important;
  word-spacing: -0.02em !important;
  line-height: 1.34 !important;
  word-break: keep-all !important;
  overflow-wrap: break-word !important;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 10px !important;
}
.wh-clean-sec-title > span {
  word-break: keep-all !important;
  overflow-wrap: break-word !important;
}
.wh-clean-sec-sub {
  margin: 5px 0 0 !important;
  font-family: 'Pretendard Variable', 'Pretendard', sans-serif !important;
  font-size: 13.2px !important;
  font-weight: 500 !important;
  color: #6B7280 !important;
  letter-spacing: -0.025em !important;
  line-height: 1.45 !important;
  word-break: keep-all !important;
  overflow-wrap: break-word !important;
}
.wh-clean-more-link {
  border: none !important;
  background: transparent !important;
  color: #6B7280 !important;
  font-family: 'Pretendard Variable', 'Pretendard', sans-serif !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  padding: 2px 0 !important;
  cursor: pointer !important;
  white-space: nowrap !important;
  flex-shrink: 0 !important;
}

/* 포스터 카드 타이포 & 띄어쓰기 정돈 */
.poster-card {
  border: 1px solid #ECEEF2 !important;
  border-radius: 14px !important;
  box-shadow: none !important;
  background: #FFFFFF !important;
}
.pc-persona-pill {
  font-family: 'Pretendard Variable', 'Pretendard', sans-serif !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  color: #FFEAB5 !important;
  letter-spacing: -0.02em !important;
  text-align: center !important;
}
.pc-photo-title,
.pc-main-title {
  font-family: 'Noto Serif KR', 'GyeonggiBatang', serif !important;
  font-size: 29px !important;
  font-weight: 900 !important;
  letter-spacing: -0.04em !important;
  word-spacing: -0.02em !important;
  line-height: 1.08 !important;
  color: #FFFFFF !important;
  text-align: center !important;
}
.poster-card-body {
  padding: 12px 11px 13px !important;
  background: #FFFFFF !important;
}
.poster-meta-title {
  font-family: 'Pretendard Variable', 'Pretendard', sans-serif !important;
  font-size: 14.4px !important;
  font-weight: 800 !important;
  color: #111111 !important;
  letter-spacing: -0.032em !important;
  word-spacing: -0.02em !important;
  line-height: 1.36 !important;
  margin-bottom: 4px !important;
  word-break: keep-all !important;
  overflow-wrap: break-word !important;
}
.poster-meta-desc {
  font-family: 'Pretendard Variable', 'Pretendard', sans-serif !important;
  font-size: 12.5px !important;
  color: #6B7280 !important;
  letter-spacing: -0.02em !important;
  line-height: 1.46 !important;
  word-break: keep-all !important;
  overflow-wrap: break-word !important;
}
.poster-price-line .sale-won {
  color: #111111 !important;
  font-size: 14.5px !important;
  font-weight: 800 !important;
  letter-spacing: -0.02em !important;
}
.poster-price-line .disc-pct {
  color: #DC2626 !important;
  font-size: 13.5px !important;
  font-weight: 800 !important;
}
.poster-price-line.is-free {
  color: #111111 !important;
  font-weight: 800 !important;
}
.btn-theme-more {
  margin-top: 14px !important;
  width: 100% !important;
  padding: 12px !important;
  border-radius: 10px !important;
  border: 1px solid #E5E7EB !important;
  background: #F9FAFB !important;
  color: #111111 !important;
  font-family: 'Pretendard Variable', 'Pretendard', sans-serif !important;
  font-size: 14px !important;
  font-weight: 700 !important;
  letter-spacing: -0.02em !important;
}

/* --- 2. 상세페이지 모달 프레임 --- */
#product-story-modal .fp-header {
  height: 54px !important;
  padding: 0 16px !important;
  border-bottom: 1px solid #ECE8DF !important;
  background: rgba(255, 255, 255, 0.98) !important;
}
#product-story-modal .fp-header h3 {
  font-family: 'GyeonggiBatang', 'Noto Serif KR', serif !important;
  font-size: 17.5px !important;
  font-weight: 700 !important;
  color: #171512 !important;
}
#product-story-modal .fp-scroll {
  padding: 0 !important;
  background: #FFFFFF !important;
}
#product-story-modal #psm-sticky-footer {
  padding: 12px 18px 16px !important;
  background: rgba(255, 255, 255, 0.98) !important;
  border-top: 1px solid #EAE5DC !important;
  box-shadow: 0 -6px 20px rgba(18, 16, 12, 0.04) !important;
}

/* --- 3. 무박스 출판 단행본·문예지 본체 (.wh-book-detail) --- */
.wh-book-detail {
  width: 100%;
  background: #FFFFFF;
  color: #191714;
  font-family: 'Pretendard Variable', 'Pretendard', sans-serif;
  overflow-x: hidden;
}

/* [표지 화보] */
.wh-hero-stage {
  position: relative;
  width: 100%;
  aspect-ratio: 4 / 4.65;
  background: #12141C;
  overflow: hidden;
}
.wh-hero-stage video,
.wh-hero-stage img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 15%;
  display: block;
}
.wh-hero-grad {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    180deg,
    rgba(10, 12, 18, 0.48) 0%,
    rgba(10, 12, 18, 0.04) 38%,
    rgba(10, 12, 18, 0.68) 74%,
    rgba(10, 12, 18, 0.95) 100%
  );
  pointer-events: none;
}
.wh-hero-topbar {
  position: absolute;
  top: 18px;
  left: 22px;
  right: 22px;
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  z-index: 2;
}
.wh-hero-meta-txt {
  font-size: 13.5px;
  font-weight: 700;
  color: #F4E6C8;
  letter-spacing: 0.02em;
  text-shadow: 0 1px 8px rgba(0, 0, 0, 0.85);
}
.wh-hero-meta-price {
  font-size: 13.5px;
  font-weight: 700;
  color: #FFE3A8;
  letter-spacing: -0.01em;
  text-shadow: 0 1px 8px rgba(0, 0, 0, 0.85);
}
.wh-hero-copy {
  position: absolute;
  left: 22px;
  right: 22px;
  bottom: 26px;
  z-index: 2;
}
.wh-hero-kicker {
  font-size: 14px;
  font-weight: 700;
  color: #ECD093;
  letter-spacing: 0.01em;
  margin-bottom: 8px;
  text-shadow: 0 1px 8px rgba(0, 0, 0, 0.8);
}
.wh-hero-headline {
  margin: 0;
  font-family: 'GyeonggiBatang', 'Noto Serif KR', serif;
  font-size: 26px;
  font-weight: 700;
  line-height: 1.38;
  color: #FFFFFF;
  letter-spacing: -0.025em;
  word-break: keep-all;
  text-shadow: 0 2px 14px rgba(0, 0, 0, 0.85);
}

/* [권두언] 흰 종이 위 오픈 서문 (말풍선 사각 박스 제거) */
.wh-epigraph {
  padding: 28px 22px 26px;
  background: #FCFBF9;
  border-bottom: 1px solid #EAE5DC;
}
.wh-epi-author {
  display: flex;
  align-items: center;
  gap: 11px;
  margin-bottom: 14px;
}
.wh-epi-avatar {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  object-fit: cover;
  object-position: center top;
  background: #181A22;
  cursor: zoom-in;
  flex-shrink: 0;
}
.wh-epi-author strong {
  display: block;
  font-family: 'GyeonggiBatang', 'Noto Serif KR', serif;
  font-size: 16px;
  font-weight: 700;
  color: #171512;
}
.wh-epi-author span {
  display: block;
  font-size: 13px;
  color: #786E5F;
  margin-top: 1px;
}
.wh-epi-quote {
  margin: 0;
  font-family: 'RIDIBatang', 'GyeonggiBatang', serif;
  font-size: 18px;
  line-height: 1.86;
  color: #181613;
  word-break: keep-all;
}

/* [공통 에디토리얼 판면] */
.wh-ed-sec {
  padding: 40px 22px;
  background: #FFFFFF;
  border-bottom: 1px solid #EAE5DC;
}
.wh-ed-sec.wh-ed-ivory {
  background: #FCFBF9;
}
.wh-ed-rubric {
  font-size: 12.8px;
  font-weight: 700;
  color: #8C312B;
  letter-spacing: 0.04em;
  margin-bottom: 10px;
}
.wh-ed-rubric.is-gold {
  color: #DFC082;
}
.wh-ed-h2 {
  margin: 0 0 12px;
  font-family: 'GyeonggiBatang', 'Noto Serif KR', serif;
  font-size: 23px;
  font-weight: 700;
  line-height: 1.42;
  color: #161412;
  letter-spacing: -0.025em;
  word-break: keep-all;
}
.wh-ed-h2.is-light {
  color: #FAF7F0;
}
.wh-ed-lead {
  margin: 0 0 24px;
  font-size: 15.8px;
  line-height: 1.78;
  color: #4E483F;
  word-break: keep-all;
}
.wh-ed-lead.is-muted {
  color: #C5BEB0;
}
.wh-ed-body {
  margin: 0;
  font-size: 15.8px;
  line-height: 1.82;
  color: #3E3931;
  word-break: keep-all;
}

.wh-text-link-btn {
  appearance: none;
  background: none;
  border: none;
  border-bottom: 1px solid #5E4B32;
  padding: 0 0 2px;
  font-family: 'Pretendard Variable', sans-serif;
  font-size: 13.5px;
  font-weight: 700;
  color: #4A3A24;
  cursor: pointer;
  white-space: nowrap;
}

/* [제1장] 밤의 문턱 산문 행 — AI 배경 박스·좌측 굵은 막대·01/02/03 완전 제거 */
.wh-prologue-lines {
  list-style: none;
  margin: 0 0 30px;
  padding: 0;
  border-top: 1px solid #ECE7DE;
}
.wh-prologue-line {
  display: flex;
  align-items: baseline;
  gap: 12px;
  padding: 16px 2px;
  border-bottom: 1px solid #ECE7DE;
  font-family: 'RIDIBatang', 'Pretendard Variable', serif;
  font-size: 16.8px;
  line-height: 1.75;
  color: #1E1B17;
  word-break: keep-all;
}
.wh-em-dash {
  color: #8C312B;
  font-family: 'GyeonggiBatang', serif;
  flex-shrink: 0;
  user-select: none;
}

/* 풀블리드 화보 삽화 (테두리 박스 없이 지면 전체 폭 확장) */
.wh-bleed-plate {
  margin: 28px -22px;
  cursor: zoom-in;
}
.wh-bleed-plate img {
  width: 100%;
  height: auto;
  display: block;
  background: #141720;
}
.wh-bleed-plate figcaption {
  padding: 9px 22px 0;
  font-size: 12.5px;
  color: #857B6C;
  text-align: right;
}

/* 문예지 대담집(희곡) 조판 — 말풍선 사각 박스 제거 */
.wh-script-dialogue {
  margin: 22px 0 26px;
}
.wh-script-turn {
  display: grid;
  grid-template-columns: 78px 1fr;
  gap: 14px;
  align-items: baseline;
  padding: 16px 0;
  border-bottom: 1px solid #EFECE5;
}
.wh-script-role {
  font-size: 13px;
  font-weight: 700;
  color: #857A6B;
  line-height: 1.5;
  word-break: keep-all;
}
.wh-script-turn.is-master .wh-script-role {
  color: #8C312B;
}
.wh-script-prose {
  margin: 0;
  font-family: 'RIDIBatang', 'Pretendard Variable', serif;
  font-size: 17px;
  line-height: 1.88;
  color: #2A251F;
  word-break: keep-all;
}
.wh-script-turn.is-master .wh-script-prose {
  color: #161412;
}

/* [제2장] 원국 초벌 기록 — 외곽 카드·내부 어두운 배너·하단 베이지 박스 전부 제거 */
.wh-ledger-head {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 12px;
  padding-bottom: 18px;
  border-bottom: 1.5px solid #221E19;
  margin-bottom: 20px;
}
.wh-ledger-submeta {
  font-size: 13.5px;
  color: #6E6557;
}
.wh-open-ilju {
  padding-bottom: 18px;
  margin-bottom: 18px;
  border-bottom: 1px solid #E8E3D9;
}
.wh-open-ilju-kicker {
  font-size: 13px;
  font-weight: 700;
  color: #7A6340;
  margin-bottom: 5px;
}
.wh-open-ilju-main {
  font-family: 'GyeonggiBatang', 'Noto Serif KR', serif;
  font-size: 21px;
  font-weight: 700;
  line-height: 1.42;
  color: #161412;
}
.wh-el-bars {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding-bottom: 20px;
  margin-bottom: 6px;
  border-bottom: 1px solid #E8E3D9;
}
.wh-el-row {
  display: grid;
  grid-template-columns: 74px 1fr 42px;
  align-items: center;
  gap: 12px;
  font-size: 14px;
}
.wh-el-lbl {
  font-weight: 700;
  color: #24201B;
  white-space: nowrap;
}
.wh-el-yong-mark {
  font-style: normal;
  font-size: 12px;
  font-weight: 800;
  color: #8C312B;
  margin-left: 3px;
}
.wh-el-track {
  height: 4px;
  background: #E9E4DA;
  overflow: hidden;
}
.wh-el-fill {
  height: 100%;
}
.wh-el-cnt {
  text-align: right;
  font-size: 13.5px;
  font-weight: 600;
  color: #5C5448;
}

.wh-open-clues {
  display: flex;
  flex-direction: column;
}
.wh-open-clue-row {
  padding: 15px 0;
  border-bottom: 1px solid #EAE5DC;
}
.wh-open-clue-row strong {
  display: block;
  font-family: 'GyeonggiBatang', 'Noto Serif KR', serif;
  font-size: 16.5px;
  font-weight: 700;
  color: #8C312B;
  margin-bottom: 5px;
}
.wh-open-clue-row p {
  margin: 0;
  font-size: 16px;
  line-height: 1.78;
  color: #211E1A;
  word-break: keep-all;
}
.wh-open-footnote {
  margin: 18px 0 0;
  font-family: 'RIDIBatang', serif;
  font-size: 15.5px;
  line-height: 1.82;
  color: #4A4338;
  word-break: keep-all;
}

/* 타로 초벌 삼패 — 외곽 어두운 박스 없이 오픈 지면 위 배치 */
.wh-tp-open-wrap {
  padding-top: 4px;
}
.wh-tp-cards {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
  margin: 8px 0 18px;
}
.wh-tp-slot {
  aspect-ratio: 2 / 3.05;
  border-radius: 6px;
  border: 1px solid #C8B288;
  background: #171A24;
  color: #EAD09B;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 10px 6px;
  cursor: pointer;
  transition: transform 0.2s ease, opacity 0.2s ease;
  text-align: center;
}
.wh-tp-slot:hover {
  transform: translateY(-2px);
}
.wh-tp-slot.picked {
  background: #FFFFFF;
  color: #171512;
  border-color: #B89B67;
  padding: 4px;
}
.wh-tp-slot.picked img {
  width: 100%;
  height: 78%;
  object-fit: cover;
  border-radius: 3px;
}
.wh-tp-slot.picked strong {
  font-size: 12.5px;
  margin-top: 5px;
  color: #171512;
}
.wh-tp-moon {
  font-family: 'GyeonggiBatang', serif;
  font-size: 22px;
  margin-bottom: 6px;
}
.wh-tp-lbl {
  font-size: 13px;
  font-weight: 600;
  line-height: 1.35;
}
.wh-tp-result {
  display: none;
  padding-top: 18px;
  border-top: 1px solid #DFD9CC;
}
.wh-tp-result.show {
  display: block;
}
.wh-tp-out-kicker {
  font-size: 13px;
  font-weight: 700;
  color: #8C312B;
  margin-bottom: 6px;
}
.wh-tp-result p {
  margin: 0;
  font-family: 'RIDIBatang', serif;
  font-size: 16.5px;
  line-height: 1.85;
  color: #1E1B17;
  word-break: keep-all;
}

/* [제3장] 먹빛 지면 — 내부 카드 박스 0개, 가는 금빛 먹선으로만 구분 */
.wh-ink-spread {
  background: #13151B;
  color: #F4EFE4;
  padding: 44px 22px;
}
.wh-ink-epigraph {
  display: flex;
  align-items: center;
  gap: 18px;
  padding: 8px 0 26px;
  border-bottom: 1px solid rgba(223, 192, 130, 0.22);
}
.wh-ink-epigraph img {
  width: 82px;
  height: 106px;
  object-fit: contain;
  object-position: center bottom;
  flex-shrink: 0;
}
.wh-ink-epigraph p {
  margin: 0;
  font-family: 'RIDIBatang', serif;
  font-size: 16.5px;
  line-height: 1.82;
  color: #EDE5D4;
  word-break: keep-all;
}
.wh-ink-chapters {
  display: flex;
  flex-direction: column;
}
.wh-ink-ch {
  padding: 20px 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.11);
}
.wh-ink-ch:last-child {
  border-bottom: none;
  padding-bottom: 0;
}
.wh-ink-ch h5 {
  margin: 0 0 7px;
  font-family: 'GyeonggiBatang', 'Noto Serif KR', serif;
  font-size: 18.5px;
  font-weight: 700;
  line-height: 1.42;
  color: #F7E7C4;
  word-break: keep-all;
}
.wh-ink-ch p {
  margin: 0;
  font-size: 15.8px;
  line-height: 1.75;
  color: #CBC4B4;
  word-break: keep-all;
}

.wh-ink-ritual {
  margin-top: 28px;
  padding-top: 26px;
  border-top: 1px solid rgba(223, 192, 130, 0.22);
  text-align: center;
}
.wh-ink-ritual-lbl {
  font-size: 13px;
  font-weight: 700;
  color: #DFC082;
  margin-bottom: 6px;
}
.wh-ink-ritual-lead {
  margin: 0 0 14px;
  font-family: 'GyeonggiBatang', serif;
  font-size: 17px;
  line-height: 1.55;
  color: #FAF6ED;
  word-break: keep-all;
}
.wh-ink-ritual-out {
  background: transparent !important;
  border: none !important;
  padding: 14px 4px 0 !important;
  margin-top: 8px !important;
  color: #F2E3C2 !important;
  font-family: 'RIDIBatang', serif !important;
  font-size: 15.8px !important;
  line-height: 1.8 !important;
}

/* [제4장] 서책 목차 조판 — 2x2 버튼 박스·패널 박스·수록 01 박스 전면 제거 */
.wh-toc-tabs {
  display: flex;
  gap: 18px;
  overflow-x: auto;
  border-bottom: 1px solid #E4DFD4;
  margin-bottom: 22px;
  scrollbar-width: none;
}
.wh-toc-tabs::-webkit-scrollbar {
  display: none;
}
.wh-toc-tab {
  appearance: none;
  background: none;
  border: none;
  border-bottom: 2px solid transparent;
  padding: 0 0 11px;
  font-family: 'Pretendard Variable', sans-serif;
  font-size: 15px;
  font-weight: 700;
  color: #8A8173;
  cursor: pointer;
  white-space: nowrap;
  transition: color 0.16s ease, border-color 0.16s ease;
}
.wh-toc-tab.active {
  color: #161412;
  border-bottom-color: #161412;
}
.wh-toc-tab.is-gift.active {
  color: #8E2420;
  border-bottom-color: #8E2420;
}

.wh-toc-panel {
  display: none;
}
.wh-toc-panel.active {
  display: block;
}
.wh-toc-vol-title {
  margin: 0 0 9px;
  font-family: 'GyeonggiBatang', 'Noto Serif KR', serif;
  font-size: 20px;
  font-weight: 700;
  line-height: 1.42;
  color: #161412;
  word-break: keep-all;
}
.wh-toc-vol-desc {
  margin: 0 0 18px;
  font-size: 15.8px;
  line-height: 1.76;
  color: #4B453C;
  word-break: keep-all;
}
.wh-toc-lines {
  list-style: none;
  margin: 0;
  padding: 0;
  border-top: 1px solid #ECE7DE;
}
.wh-toc-lines li {
  position: relative;
  padding: 13px 0 13px 16px;
  border-bottom: 1px solid #ECE7DE;
  font-size: 15.8px;
  line-height: 1.65;
  color: #1E1B17;
  word-break: keep-all;
}
.wh-toc-lines li::before {
  content: '·';
  position: absolute;
  left: 2px;
  top: 13px;
  font-weight: 900;
  color: #8C312B;
}

/* [제5장] 별책 서신 인용문 — 베이지 좌측선 박스 대신 위아래 가는 먹선 발문 */
.wh-open-letter-quote {
  margin: 0 0 20px;
  padding: 20px 0;
  border-top: 1px solid #E2DDD1;
  border-bottom: 1px solid #E2DDD1;
  font-family: 'RIDIBatang', 'GyeonggiBatang', serif;
  font-size: 17px;
  line-height: 1.94;
  color: #1F1B16;
  word-break: keep-all;
}

/* [제6장] 판권 서약 · 독자 서신 · 복돈 표 · FAQ — 무박스 지면 조판 */
.wh-colophon {
  padding-bottom: 34px;
  margin-bottom: 34px;
  border-bottom: 1px solid #EAE5DC;
}
.wh-colophon-head {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 14px;
  margin-bottom: 18px;
}
.wh-seal-mark {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 42px;
  height: 42px;
  border: 1.5px solid #9B2C2C;
  color: #9B2C2C;
  font-family: 'GyeonggiBatang', serif;
  font-size: 11.5px;
  font-weight: 700;
  line-height: 1.15;
  text-align: center;
  flex-shrink: 0;
}
.wh-colophon-rules {
  list-style: none;
  margin: 0;
  padding: 0;
  border-top: 1px solid #ECE7DE;
}
.wh-colophon-rules li {
  padding: 13px 0;
  border-bottom: 1px solid #ECE7DE;
  font-size: 15.5px;
  line-height: 1.72;
  color: #2A251F;
  word-break: keep-all;
}

.wh-reader-letters {
  padding-bottom: 34px;
  margin-bottom: 34px;
  border-bottom: 1px solid #EAE5DC;
}
.wh-letter-entry {
  padding: 18px 0;
  border-top: 1px solid #ECE7DE;
}
.wh-letter-entry p {
  margin: 0 0 8px;
  font-family: 'RIDIBatang', serif;
  font-size: 16.5px;
  line-height: 1.88;
  color: #1E1B17;
  word-break: keep-all;
}
.wh-letter-entry cite {
  display: block;
  font-style: normal;
  font-size: 13.2px;
  color: #7A7062;
}

/* 어두운 SaaS 영수증 박스를 대체하는 정갈한 종이 판권 정산표 */
.wh-fee-table {
  padding: 18px 0 16px;
  margin-bottom: 34px;
  border-top: 1.5px solid #181613;
  border-bottom: 1.5px solid #181613;
}
.wh-fee-caption {
  font-family: 'GyeonggiBatang', 'Noto Serif KR', serif;
  font-size: 17.5px;
  font-weight: 700;
  color: #171512;
  margin-bottom: 12px;
}
.wh-fee-row {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  padding: 7px 0;
  font-size: 15px;
  color: #575046;
}
.wh-fee-row .is-strike {
  text-decoration: line-through;
  color: #968D80;
}
.wh-fee-row.is-total {
  margin-top: 8px;
  padding-top: 13px;
  border-top: 1px solid #E5E0D5;
  font-size: 16.5px;
  font-weight: 800;
  color: #171512;
}
.wh-fee-row.is-total strong {
  font-family: 'GyeonggiBatang', serif;
  font-size: 22px;
  color: #8E2420;
}

.wh-faq-wrap {
  padding-top: 2px;
}
.wh-faq-item {
  border-bottom: 1px solid #EAE5DC;
}
.wh-faq-q {
  width: 100%;
  background: none;
  border: none;
  padding: 15px 0;
  text-align: left;
  font-family: 'Pretendard Variable', 'Pretendard', sans-serif;
  font-size: 15.8px;
  font-weight: 700;
  color: #191714;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  cursor: pointer;
}
.wh-faq-arr {
  color: #8A8072;
  flex-shrink: 0;
}
.wh-faq-a {
  display: none;
  padding: 0 0 16px;
  font-size: 15.2px;
  line-height: 1.76;
  color: #4E483E;
  word-break: keep-all;
}
.wh-faq-item.open .wh-faq-a {
  display: block;
}

.wh-inline-cta-wrap {
  padding: 0 22px 28px;
}

/* 상세 하단 고정 CTA 버튼 */
.btn-sd-instant {
  font-size: 16px !important;
  font-weight: 800 !important;
  padding: 15px 16px !important;
  border-radius: 8px !important;
  background: #171512 !important;
  color: #FFFFFF !important;
  letter-spacing: -0.01em !important;
}
.btn-sd-counsel {
  font-size: 15px !important;
  font-weight: 700 !important;
  padding: 12px 16px !important;
  border-radius: 8px !important;
}

/* --- 4. 열람 시트 (#reading-sheet-overlay) AI형 컬러 박스 정돈 & 서책 조판 통일 --- */
#reading-sheet-overlay .sheet-scroll {
  background: #FFFFFF !important;
}
#reading-sheet-overlay .sheet-topbar {
  height: 56px !important;
  padding: 0 16px !important;
}
#reading-sheet-overlay #sheet-title {
  font-family: 'GyeonggiBatang', 'Noto Serif KR', serif !important;
  font-size: 18px !important;
}
#reading-sheet-overlay .chapter-article {
  padding: 30px 22px !important;
  margin-bottom: 0 !important;
  border-bottom: 1px solid #EAE5DC !important;
}
#reading-sheet-overlay .ch-kicker {
  font-size: 13px !important;
  font-weight: 700 !important;
  color: #8C312B !important;
}
#reading-sheet-overlay .ch-title {
  font-family: 'GyeonggiBatang', 'Noto Serif KR', serif !important;
  font-size: 23px !important;
  line-height: 1.4 !important;
  margin-bottom: 16px !important;
}

/* 민트색/노란색 AI 콜아웃 박스를 단행본 발문·주석 선으로 교체 */
#reading-sheet-overlay .ch-summary-box {
  background: transparent !important;
  border: none !important;
  border-top: 1px solid #E5DFD4 !important;
  border-bottom: 1px solid #E5DFD4 !important;
  border-radius: 0 !important;
  padding: 14px 0 !important;
  margin: 0 0 20px !important;
  color: #1F1B17 !important;
  font-family: 'RIDIBatang', serif !important;
  font-size: 16px !important;
  font-weight: 400 !important;
  line-height: 1.82 !important;
}
#reading-sheet-overlay .ch-summary-box .sum-badge {
  color: #8C312B !important;
  font-family: 'Pretendard Variable', sans-serif !important;
  font-size: 12px !important;
  font-weight: 800 !important;
  margin-right: 8px !important;
}
#reading-sheet-overlay .ch-action-box {
  background: transparent !important;
  border: none !important;
  border-top: 1px solid #EAE5DC !important;
  border-radius: 0 !important;
  padding: 16px 0 0 !important;
  margin-top: 20px !important;
  color: #2A241C !important;
  font-size: 15.2px !important;
  font-weight: 500 !important;
  line-height: 1.78 !important;
}
#reading-sheet-overlay .ch-action-box .act-badge {
  display: inline-block;
  font-size: 12px;
  font-weight: 800;
  color: #8C312B;
  margin-bottom: 4px;
}
#reading-sheet-overlay .ch-action-box p {
  margin: 0;
}

#reading-sheet-overlay .ch-prose,
#reading-sheet-overlay .ch-prose p {
  font-family: 'RIDIBatang', 'Pretendard Variable', serif !important;
  font-size: 17.2px !important;
  line-height: 1.94 !important;
  color: #191714 !important;
  word-break: keep-all !important;
}
#reading-sheet-overlay .ch-prose p {
  margin-bottom: 16px !important;
}

/* 열람 상단 밑줄형 분철 탭 바 (알약 버튼 나열 제거) */
.wh-vol-sticky-bar {
  position: sticky;
  top: 0;
  z-index: 25;
  background: rgba(255, 255, 255, 0.98);
  backdrop-filter: blur(10px);
  border-bottom: 1px solid #E6E1D6;
  padding: 0 18px;
  display: flex;
  gap: 16px;
  overflow-x: auto;
  scrollbar-width: none;
}
.wh-vol-sticky-bar::-webkit-scrollbar {
  display: none;
}
.wh-vtab {
  appearance: none;
  border: none;
  border-bottom: 2px solid transparent;
  background: none;
  color: #847B6D;
  padding: 13px 0 11px;
  font-family: 'Pretendard Variable', 'Pretendard', sans-serif;
  font-size: 14px;
  font-weight: 700;
  cursor: pointer;
  white-space: nowrap;
}
.wh-vtab.active {
  color: #171512;
  border-bottom-color: #171512;
}
.wh-vtab.gift {
  color: #8E2420;
}
.wh-vtab.gift.active {
  color: #8E2420;
  border-bottom-color: #8E2420;
}

/* 각 권 속표지 — 둥근 어두운 박스 대신 정갈한 서책 속표지 */
.wh-vol-titlepage {
  padding: 30px 22px 24px;
  background: #FCFBF9;
  border-bottom: 1px solid #EAE5DC;
}
.wh-vol-titlepage h4 {
  margin: 0 0 8px;
  font-family: 'GyeonggiBatang', 'Noto Serif KR', serif;
  font-size: 22px;
  color: #161412;
  line-height: 1.38;
}
.wh-vol-titlepage p {
  margin: 0;
  font-size: 15.5px;
  line-height: 1.72;
  color: #544D42;
}

.wh-next-vol-box {
  padding: 20px 22px 34px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.wh-btn-next-vol {
  width: 100%;
  border: none;
  border-radius: 8px;
  padding: 16px 18px;
  background: #181613;
  color: #FAF7F0;
  font-size: 16px;
  font-weight: 800;
  cursor: pointer;
}
.wh-btn-go-gift {
  width: 100%;
  border: 1px solid #8E2420;
  border-radius: 8px;
  padding: 14px 18px;
  background: #FFFFFF;
  color: #8E2420;
  font-size: 15.5px;
  font-weight: 700;
  cursor: pointer;
}

/* --- 5. 별책 『월하 증정 서신첩』 무박스 편지지 조판 --- */
.wh-gift-studio {
  padding: 28px 22px 40px;
  background: #FFFFFF;
}
.wh-gs-intro {
  margin-bottom: 18px;
}
.wh-gs-editor {
  padding: 4px 0 24px;
  margin-bottom: 24px;
  border-bottom: 1px solid #EAE5DC;
}
.wh-gs-lbl {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 13.5px;
  font-weight: 700;
  color: #3A332A;
  margin-bottom: 8px;
}
.wh-gs-input {
  width: 100%;
  border: none;
  border-bottom: 1px solid #CFC7B8;
  border-radius: 0;
  padding: 9px 2px;
  font-family: 'Pretendard Variable', sans-serif;
  font-size: 15.5px;
  color: #181613;
  margin-bottom: 18px;
  background: transparent;
}
.wh-gs-textarea {
  width: 100%;
  min-height: 136px;
  border: 1px solid #DDD6C8;
  border-radius: 4px;
  padding: 13px 14px;
  font-family: 'RIDIBatang', 'Pretendard Variable', serif;
  font-size: 16px;
  line-height: 1.82;
  color: #181613;
  background: #FCFBF9;
  resize: vertical;
}

.wh-letter-sheet {
  background: #FCFBF9;
  border-top: 1.5px solid #181613;
  border-bottom: 1.5px solid #181613;
  margin-bottom: 24px;
}
.wh-sc-art {
  width: 100%;
  height: 205px;
  overflow: hidden;
}
.wh-sc-art img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 32%;
  display: block;
}
.wh-sc-inner {
  padding: 26px 4px 28px;
}
.wh-sc-title {
  margin: 0 0 18px;
  font-family: 'GyeonggiBatang', serif;
  font-size: 21.5px;
  line-height: 1.42;
  color: #171512;
  word-break: keep-all;
}
.wh-sc-letter {
  font-family: 'RIDIBatang', serif;
  font-size: 17px;
  line-height: 1.94;
  color: #1E1A15;
  white-space: pre-line;
  padding-bottom: 20px;
  margin-bottom: 22px;
  border-bottom: 1px solid #E2DDD1;
  word-break: keep-all;
}
.wh-sc-digest-title {
  font-family: 'GyeonggiBatang', serif;
  font-size: 16px;
  font-weight: 700;
  color: #171512;
  margin-bottom: 4px;
}
.wh-sc-sign {
  margin-top: 20px;
  text-align: right;
  font-family: 'GyeonggiBatang', serif;
  font-size: 16.5px;
  color: #3D3428;
}

.wh-gs-actions {
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.wh-btn-copy-gift {
  width: 100%;
  border: none;
  border-radius: 8px;
  padding: 16px 18px;
  background: #8E2420;
  color: #FFFFFF;
  font-size: 16px;
  font-weight: 800;
  cursor: pointer;
}
.wh-btn-print-gift {
  width: 100%;
  border: 1px solid #181613;
  border-radius: 8px;
  padding: 15px 18px;
  background: #FFFFFF;
  color: #181613;
  font-size: 15.5px;
  font-weight: 700;
  cursor: pointer;
}
.wh-btn-fullpdf-gift {
  width: 100%;
  border: none;
  border-bottom: 1px solid #8A7E6B;
  border-radius: 0;
  padding: 10px 4px 4px;
  background: transparent;
  color: #4A3E2D;
  font-size: 14.5px;
  font-weight: 700;
  cursor: pointer;
}

/* --- 6. 열람 시트 내부 보조 모듈(명사 서문·원국표·시각 도표·야담첩·후기·수호화첩) 박스 탈피 서책 조판 --- */
#reading-sheet-overlay .detail-pad {
  padding: 0 22px !important;
  background: #FFFFFF !important;
}
#reading-sheet-overlay .webtoon-intro-panel {
  background: #FCFBF9 !important;
  border: none !important;
  border-bottom: 1px solid #EAE5DC !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  margin: 0 !important;
  padding: 26px 22px 24px !important;
}
#reading-sheet-overlay .wi-speech-bubble {
  background: transparent !important;
  border: none !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  padding: 0 0 0 4px !important;
}
#reading-sheet-overlay .wi-speech-bubble::before,
#reading-sheet-overlay .wi-speech-bubble::after {
  display: none !important;
}
#reading-sheet-overlay .wi-speaker {
  color: #8C312B !important;
  font-size: 12.5px !important;
  font-weight: 700 !important;
  margin-bottom: 5px !important;
  display: block !important;
}
#reading-sheet-overlay .wi-speech-txt {
  font-family: 'RIDIBatang', 'GyeonggiBatang', serif !important;
  font-size: 16px !important;
  line-height: 1.8 !important;
  color: #1A1714 !important;
}
#reading-sheet-overlay .sd-webtoon-cut {
  border: none !important;
  border-radius: 2px !important;
  box-shadow: none !important;
}

#reading-sheet-overlay .natal-box,
#reading-sheet-overlay .special-viz-card,
#reading-sheet-overlay .folklore-special-card,
#reading-sheet-overlay .free-suri-card {
  background: transparent !important;
  border: none !important;
  border-bottom: 1px solid #EAE5DC !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  padding: 26px 0 24px !important;
  margin: 0 !important;
}
#reading-sheet-overlay .nb-badge {
  background: transparent !important;
  border: none !important;
  border-bottom: 1px solid #DDD6C8 !important;
  border-radius: 0 !important;
  padding: 2px 2px 4px !important;
  margin-right: 10px !important;
  color: #3A332A !important;
}
#reading-sheet-overlay .fs-box-item {
  background: transparent !important;
  border: none !important;
  border-top: 1px solid #ECE7DE !important;
  border-radius: 0 !important;
  padding: 13px 0 !important;
  margin: 0 !important;
}
#reading-sheet-overlay .fsc-metric {
  background: transparent !important;
  border: none !important;
  border-top: 1.5px solid #181613 !important;
  border-bottom: 1px solid #E5DFD4 !important;
  border-radius: 0 !important;
  padding: 12px 2px !important;
}
#reading-sheet-overlay .fsc-whisper {
  background: transparent !important;
  border: none !important;
  border-top: 1px solid #E2DDD1 !important;
  border-radius: 0 !important;
  padding: 14px 0 0 !important;
  margin-top: 8px !important;
  font-family: 'RIDIBatang', serif !important;
}
#reading-sheet-overlay .reviews-box {
  background: #FFFFFF !important;
  padding: 28px 22px !important;
  margin: 0 !important;
  border-top: 1px solid #EAE5DC !important;
}
#reading-sheet-overlay .rev-item {
  background: transparent !important;
  border: none !important;
  border-top: 1px solid #ECE7DE !important;
  border-radius: 0 !important;
  padding: 15px 0 !important;
  margin: 0 !important;
}
#reading-sheet-overlay .blurred-preview-card {
  padding: 24px 22px !important;
  margin: 0 !important;
  border-bottom: 1px solid #EAE5DC !important;
}
#reading-sheet-overlay .bp-lock-pill {
  background: transparent !important;
  border: none !important;
  border-radius: 0 !important;
  padding: 0 !important;
  color: #8C312B !important;
  font-size: 13px !important;
  text-decoration: underline;
  text-underline-offset: 4px;
}
#reading-sheet-overlay .talisman-card {
  background: #FCFBF9 !important;
  border: none !important;
  border-top: 1px solid #EAE5DC !important;
  border-bottom: 1px solid #EAE5DC !important;
  border-radius: 0 !important;
  margin: 0 !important;
  padding: 32px 22px !important;
}
.btn-switch-mini {
  white-space: nowrap !important;
  flex-shrink: 0 !important;
}

/* ==========================================================================
   [v7.3] 명식첩 레이어 우선순위 보정 & 상단 명식 바로가기 바 & 모달 가독성 강화
   - 상세페이지(z:130) · 대담창(z:210) · 열람창(z:110) 어디서 눌러도 명식첩(z:260)이 최상단 표시
   ========================================================================== */
.modal-bg {
  z-index: 260 !important;
  background: rgba(15, 14, 12, 0.58) !important;
  padding: 14px !important;
}
#tarot-zoom-modal {
  z-index: 290 !important;
}
.toast-msg {
  z-index: 350 !important;
  font-size: 14px !important;
  padding: 12px 18px !important;
}

.header-right .palette-dots {
  display: none !important;
}
.hdr-profile-chip {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  background: #FCFBF9;
  border: 1px solid #D9D2C4;
  border-radius: 999px;
  padding: 6px 11px;
  font-family: 'Pretendard Variable', 'Pretendard', sans-serif;
  font-size: 13px;
  font-weight: 700;
  color: #191714;
  cursor: pointer;
  white-space: nowrap;
  max-width: 132px;
  overflow: hidden;
  text-overflow: ellipsis;
}
.hdr-profile-chip.is-empty {
  border-color: #C99A94;
  background: #FFF9F8;
  color: #8C312B;
}

.active-profile-strip {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 10px 16px;
  background: #FCFBF9;
  border-bottom: 1px solid #E8E2D7;
  font-size: 13.5px;
  color: #2B2722;
}
.aps-info {
  min-width: 0;
  flex: 1;
  line-height: 1.45;
  word-break: keep-all;
}
.aps-info strong {
  color: #171512;
  font-weight: 800;
}
.aps-info .aps-empty {
  color: #8C312B;
  font-weight: 800;
}
.aps-actions {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-shrink: 0;
}
.aps-btn {
  border: 1px solid #CFC7B8;
  background: #FFFFFF;
  color: #191714;
  border-radius: 6px;
  padding: 5px 10px;
  font-size: 12.5px;
  font-weight: 700;
  font-family: inherit;
  cursor: pointer;
  white-space: nowrap;
}
.aps-btn.primary {
  border-color: #191714;
  background: #191714;
  color: #FAF7F0;
}
.aps-btn.danger {
  border-color: #DFC0BC;
  background: #FFF8F7;
  color: #8C312B;
}

#profile-modal .modal-card {
  max-width: 460px !important;
  border-radius: 14px !important;
  padding: 22px 20px !important;
  background: #FFFFFF !important;
}
#profile-modal .modal-hd h3 {
  font-family: 'GyeonggiBatang', 'Noto Serif KR', serif !important;
  font-size: 19.5px !important;
  color: #171512 !important;
}
#profile-modal .f-lbl {
  font-size: 13px !important;
  font-weight: 700 !important;
  color: #2B2722 !important;
  margin: 11px 0 5px !important;
}
#profile-modal .f-in,
#profile-modal .f-sel {
  font-size: 14.5px !important;
  padding: 10px 12px !important;
  border-radius: 8px !important;
  border: 1px solid #CFC8BA !important;
  color: #171512 !important;
}


/* ==========================================================================
   [V10.2] 청월당식 3단계 직행 퍼널 — 장면 전환 입력 UX & 맛보기+장편 홈페이지 홍보 조판
   ========================================================================== */

/* 1) 상담 입력 오버레이 상단 진행 스텝 레일 & 장면 전환 애니메이션 */
.cf-step-rail {
  position: relative;
  z-index: 6;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 4px 16px 8px;
}
.cf-step-node {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 4px 10px;
  border-radius: 99px;
  font-size: 11.5px;
  font-weight: 700;
  color: rgba(255, 255, 255, 0.48);
  background: rgba(12, 16, 24, 0.45);
  border: 1px solid rgba(255, 255, 255, 0.12);
  backdrop-filter: blur(8px);
  transition: all 0.25s ease;
}
.cf-step-node.done {
  color: #ECD39A;
  border-color: rgba(236, 211, 154, 0.38);
  background: rgba(28, 25, 20, 0.58);
}
.cf-step-node.active {
  color: #16130E;
  background: linear-gradient(90deg, #F5DFAC 0%, #FFF4D9 100%);
  border-color: #F5DFAC;
  font-weight: 800;
  box-shadow: 0 3px 12px rgba(236, 211, 154, 0.28);
}
.cf-step-line {
  width: 12px;
  height: 1px;
  background: rgba(255, 255, 255, 0.2);
}

@keyframes cfSceneRise {
  0% {
    opacity: 0;
    transform: translateY(14px);
  }
  100% {
    opacity: 1;
    transform: translateY(0);
  }
}
.cf-scene-enter {
  animation: cfSceneRise 0.34s cubic-bezier(0.22, 1, 0.36, 1) both;
}

/* 커버 원클릭 단골 패스 & 구성 미리보기 보조 링크 */
.cf-fast-prof-btn {
  width: 100%;
  margin-top: 10px;
  padding: 12px 14px;
  border-radius: 11px;
  border: 1px solid rgba(236, 211, 154, 0.55);
  background: rgba(20, 24, 34, 0.72);
  backdrop-filter: blur(10px);
  color: #F8E5B8;
  font-family: inherit;
  font-size: 13.5px;
  font-weight: 700;
  cursor: pointer;
  transition: background 0.18s ease, transform 0.14s ease;
}
.cf-fast-prof-btn:hover {
  background: rgba(34, 39, 54, 0.86);
}
.cf-sub-story-link {
  display: inline-block;
  margin-top: 12px;
  background: none;
  border: none;
  border-bottom: 1px solid rgba(255, 255, 255, 0.42);
  padding: 0 0 2px;
  color: rgba(255, 255, 255, 0.78);
  font-size: 12.5px;
  font-weight: 600;
  cursor: pointer;
}

/* Stage 2 & Stage 3/3.5 다크 한지 글래스 패널 */
.cf-glass-card {
  background: rgba(13, 17, 26, 0.78);
  border: 1px solid rgba(232, 207, 150, 0.28);
  border-radius: 18px;
  padding: 18px 16px;
  backdrop-filter: blur(16px);
  box-shadow: 0 14px 36px rgba(0, 0, 0, 0.42);
  text-align: left;
}
.cf-glass-head {
  margin-bottom: 14px;
  padding-bottom: 11px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.12);
}
.cf-glass-kicker {
  font-size: 11.5px;
  font-weight: 800;
  color: #ECD39A;
  letter-spacing: 0.03em;
  margin-bottom: 4px;
}
.cf-glass-title {
  margin: 0;
  font-family: 'GyeonggiBatang', 'Noto Serif KR', serif;
  font-size: 18.5px;
  font-weight: 700;
  line-height: 1.44;
  color: #FFFFFF;
  word-break: keep-all;
}
.cf-glass-sub {
  margin: 5px 0 0;
  font-size: 12.5px;
  line-height: 1.5;
  color: rgba(255, 255, 255, 0.72);
  word-break: keep-all;
}

.cf-time-select {
  width: 100%;
  margin-top: 4px;
  padding: 11px 12px;
  border-radius: 10px;
  border: 1px solid rgba(232, 207, 150, 0.36);
  background: rgba(22, 28, 40, 0.92);
  color: #FFFFFF;
  font-family: inherit;
  font-size: 14px;
  font-weight: 600;
  outline: none;
}
.cf-time-select:disabled {
  opacity: 0.55;
  border-color: rgba(255, 255, 255, 0.18);
}
.cf-time-select option {
  background: #141924;
  color: #FFFFFF;
}

/* Stage 3 & Stage 3.5 상품 맞춤 구체적 상황 카드 & 원클릭 질문 완성 칩 */
.cf-sit-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 7px;
  margin-bottom: 12px;
}
.cf-sit-card {
  padding: 10px 11px;
  border-radius: 11px;
  border: 1.5px solid rgba(255, 255, 255, 0.18);
  background: rgba(20, 25, 36, 0.72);
  color: rgba(255, 255, 255, 0.9);
  font-family: inherit;
  font-size: 12.4px;
  font-weight: 700;
  line-height: 1.38;
  text-align: left;
  cursor: pointer;
  transition: all 0.16s ease;
  word-break: keep-all;
}
.cf-sit-card.on {
  border-color: #F4DCA8;
  background: rgba(236, 208, 147, 0.22);
  color: #FFF9EC;
  box-shadow: 0 4px 14px rgba(236, 208, 147, 0.16);
}
.cf-dur-row {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
  margin-bottom: 4px;
}
.cf-dur-pill {
  padding: 6px 11px;
  border-radius: 99px;
  font-size: 11.8px;
  font-weight: 700;
  cursor: pointer;
  border: 1px solid rgba(255, 255, 255, 0.22);
  background: rgba(12, 16, 24, 0.55);
  color: rgba(255, 255, 255, 0.85);
}
.cf-dur-pill.on {
  border-color: #F4DCA8;
  background: rgba(244, 220, 168, 0.24);
  color: #FFF8E6;
}

.cf-qguide-label {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 12px;
  font-weight: 800;
  color: #F5DFAC;
  margin: 2px 0 8px;
}
.cf-qguide-list {
  display: flex;
  flex-direction: column;
  gap: 7px;
  margin-bottom: 12px;
}
.cf-qguide-chip {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  width: 100%;
  padding: 10px 12px;
  border-radius: 11px;
  border: 1px solid rgba(236, 211, 154, 0.28);
  background: rgba(23, 29, 42, 0.82);
  color: #F3EFE6;
  font-family: inherit;
  font-size: 12.8px;
  font-weight: 600;
  line-height: 1.45;
  text-align: left;
  cursor: pointer;
  transition: all 0.16s ease;
  word-break: keep-all;
}
.cf-qguide-chip:hover {
  border-color: rgba(245, 223, 172, 0.65);
  background: rgba(34, 42, 60, 0.9);
}
.cf-qguide-chip.picked {
  border-color: #F5DFAC;
  background: rgba(236, 208, 147, 0.22);
  color: #FFFFFF;
}
.cf-qguide-check {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  border: 1px solid rgba(245, 223, 172, 0.55);
  color: #F5DFAC;
  font-size: 11px;
  font-weight: 900;
  flex-shrink: 0;
  margin-top: 1px;
}
.cf-qguide-chip.picked .cf-qguide-check {
  background: #F5DFAC;
  color: #16130E;
  border-color: #F5DFAC;
}

/* 금빛 봉인 해제 결과 로딩 장면 */
.wh-unseal-loader {
  min-height: 78vh;
  background: radial-gradient(circle at 50% 22%, #202638 0%, #10131C 72%);
  color: #FAF6EC;
  padding: 52px 24px 48px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
}
.wh-unseal-avatar {
  width: 88px;
  height: 88px;
  border-radius: 50%;
  border: 2px solid #DFC082;
  object-fit: cover;
  object-position: center top;
  background: #171A24;
  box-shadow: 0 8px 28px rgba(0, 0, 0, 0.55);
  margin-bottom: 16px;
}
.wh-unseal-kicker {
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.12em;
  color: #DFC082;
  margin-bottom: 8px;
}
.wh-unseal-title {
  margin: 0 0 16px;
  font-family: 'GyeonggiBatang', 'Noto Serif KR', serif;
  font-size: 22px;
  font-weight: 700;
  line-height: 1.45;
  color: #FFFFFF;
  word-break: keep-all;
}
.wh-unseal-plaque {
  width: 100%;
  max-width: 340px;
  padding: 12px 15px;
  border-radius: 10px;
  border: 1px solid rgba(223, 192, 130, 0.32);
  background: rgba(255, 255, 255, 0.05);
  font-size: 13px;
  line-height: 1.6;
  color: #E8DFCC;
  margin-bottom: 22px;
  word-break: keep-all;
}
.wh-unseal-step {
  font-family: 'RIDIBatang', 'Pretendard Variable', serif;
  font-size: 15px;
  line-height: 1.7;
  color: #F5E8C8;
  min-height: 48px;
  max-width: 320px;
}
.wh-unseal-track {
  width: 220px;
  height: 5px;
  background: rgba(255, 255, 255, 0.14);
  border-radius: 99px;
  margin-top: 14px;
  overflow: hidden;
}
.wh-unseal-fill {
  height: 100%;
  background: linear-gradient(90deg, #C8A45D 0%, #FFE6B0 100%);
  border-radius: 99px;
  transition: width 0.28s ease;
}

/* 2) 맛보기 + 청월당식 장편 홈페이지 홍보 상세페이지 가독성 대개편 */
.wh-teaser-certificate {
  padding: 28px 24px 24px;
  background: linear-gradient(180deg, #161923 0%, #1E2230 100%);
  color: #FAF6ED;
  border-bottom: 2px solid #C8A96E;
}
.wh-tc-top {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 10px;
}
.wh-tc-badge {
  display: inline-block;
  padding: 3px 9px;
  border-radius: 4px;
  background: rgba(223, 192, 130, 0.18);
  border: 1px solid rgba(223, 192, 130, 0.45);
  color: #F2D699;
  font-size: 11.5px;
  font-weight: 800;
}
.wh-tc-edit-btn {
  background: none;
  border: none;
  color: rgba(255, 255, 255, 0.72);
  font-size: 12px;
  text-decoration: underline;
  cursor: pointer;
}
.wh-tc-headline {
  margin: 0 0 8px;
  font-family: 'GyeonggiBatang', 'Noto Serif KR', serif;
  font-size: 23px;
  font-weight: 700;
  line-height: 1.42;
  color: #FFFFFF;
  word-break: keep-all;
}
.wh-tc-meta {
  font-size: 13.5px;
  color: #D7CEBE;
  line-height: 1.6;
}
.wh-tc-question {
  margin-top: 12px;
  padding: 10px 13px;
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.07);
  border-left: 1px solid #E5E0D5;
  font-size: 13.5px;
  line-height: 1.58;
  color: #F7ECD5;
  word-break: keep-all;
}

/* 무료 맛보기 본문 가독성 극대화 (시원한 여백·글자 크기·발문 강조) */
#reading-sheet-overlay .chapter-article {
  padding: 38px 24px !important;
}
#reading-sheet-overlay .ch-title {
  font-size: 24px !important;
  line-height: 1.44 !important;
  margin-bottom: 20px !important;
}
#reading-sheet-overlay .ch-summary-box {
  background: #FCF9F2 !important;
  border: none !important;
  border-left: 1px solid #E5E0D5 !important;
  border-radius: 6px !important;
  padding: 16px 18px !important;
  margin: 0 0 24px !important;
  font-size: 16.8px !important;
  line-height: 1.88 !important;
  color: #191612 !important;
}
#reading-sheet-overlay .ch-prose,
#reading-sheet-overlay .ch-prose p {
  font-size: 17.5px !important;
  line-height: 1.98 !important;
  letter-spacing: -0.01em !important;
}
#reading-sheet-overlay .ch-prose p {
  margin-bottom: 20px !important;
}

/* 중간 잠금 브릿지 배너 */
.wh-mid-unlock-bridge {
  margin: 12px 20px 30px;
  padding: 26px 22px;
  border-radius: 14px;
  background: linear-gradient(155deg, #171A24 0%, #231D1A 100%);
  border: 1px solid #C8A96E;
  color: #FAF6ED;
  text-align: center;
  box-shadow: 0 12px 28px rgba(18, 16, 12, 0.12);
}
.wh-mid-unlock-bridge .wh-mub-kicker {
  font-size: 12px;
  font-weight: 800;
  color: #ECD093;
  margin-bottom: 6px;
}
.wh-mid-unlock-bridge h4 {
  margin: 0 0 10px;
  font-family: 'GyeonggiBatang', 'Noto Serif KR', serif;
  font-size: 21.5px;
  line-height: 1.42;
  color: #FFFFFF;
  word-break: keep-all;
}
.wh-mid-unlock-bridge p {
  margin: 0 0 18px;
  font-size: 14.8px;
  line-height: 1.72;
  color: #D9D1C2;
  word-break: keep-all;
}
.wh-mid-unlock-btn {
  width: 100%;
  padding: 15px 16px;
  border-radius: 9px;
  border: none;
  background: linear-gradient(90deg, #E8CA8C 0%, #F9E6BC 100%);
  color: #18140E;
  font-family: inherit;
  font-size: 15.8px;
  font-weight: 800;
  cursor: pointer;
}

/* 하단 홈페이지 공통 홍보 스토리보드 (.wh-brand-promo-zone) */
.wh-brand-promo-zone {
  border-top: 8px solid #F2EFE8;
  background: #FFFFFF;
}
.wh-brand-divider-banner {
  padding: 44px 24px 36px;
  background: #141720;
  color: #FAF6ED;
  text-align: center;
}
.wh-brand-divider-banner .wh-bdb-kicker {
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.1em;
  color: #DFC082;
  margin-bottom: 10px;
}
.wh-brand-divider-banner h3 {
  margin: 0 0 12px;
  font-family: 'GyeonggiBatang', 'Noto Serif KR', serif;
  font-size: 25px;
  line-height: 1.42;
  color: #FFFFFF;
  word-break: keep-all;
}
.wh-brand-divider-banner p {
  margin: 0 auto;
  max-width: 400px;
  font-size: 15.8px;
  line-height: 1.82;
  color: #CFC7B8;
  word-break: keep-all;
}

.wh-dual-book-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  margin: 22px 0 8px;
}
.wh-book-spec-card {
  padding: 18px 15px;
  border-radius: 10px;
  background: #FAF8F3;
  border: 1px solid #E4DDD0;
}
.wh-book-spec-card .wh-bsc-tag {
  display: inline-block;
  font-size: 11.5px;
  font-weight: 800;
  color: #8E2420;
  margin-bottom: 6px;
}
.wh-book-spec-card strong {
  display: block;
  font-family: 'GyeonggiBatang', 'Noto Serif KR', serif;
  font-size: 17px;
  line-height: 1.38;
  color: #171512;
  margin-bottom: 6px;
  word-break: keep-all;
}
.wh-book-spec-card p {
  margin: 0;
  font-size: 13.8px;
  line-height: 1.65;
  color: #4E483E;
  word-break: keep-all;
}

.wh-highlight-mark {
  background: linear-gradient(180deg, transparent 58%, rgba(232, 200, 130, 0.42) 58%);
  font-weight: 700;
  color: #161412;
}

/* 최하단 공식 채널 · 제휴 링크 슬롯 */
.wh-channel-links-slot {
  padding: 32px 24px 38px;
  background: #FAF8F3;
  border-top: 1px solid #EAE5DC;
}
.wh-channel-grid {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin-top: 14px;
}
.wh-channel-link-card {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 14px 16px;
  border-radius: 10px;
  background: #FFFFFF;
  border: 1px solid #DFD8CA;
  color: #191714;
  text-decoration: none;
  font-size: 14.5px;
  font-weight: 700;
  transition: border-color 0.16s ease, transform 0.16s ease;
}
.wh-channel-link-card:hover {
  border-color: #8E2420;
  transform: translateY(-1px);
}
.wh-brand-signoff {
  padding: 28px 24px 34px;
  background: #FAF8F3;
  border-top: 1px solid #EAE5DC;
  text-align: center;
  color: #7A7062;
  font-size: 13px;
  line-height: 1.75;
}

/* ==========================================================================
   v10.3 타로 운세 전면 고도화 — [순수 원화 영역] vs [활자 지정·진단 칸] 완벽 분리 & 여백 확장
   ========================================================================== */

/* 1) 상단 GNB [타로] 전용 허브 : 순수 3카드 원화 무대 + 하단 에디토리얼 설명문 분리 */
.wh-tarot-hub-wrap {
  padding: 16px 18px 34px;
}
.wh-tarot-sanctuary {
  border-radius: 20px;
  overflow: hidden;
  border: 1px solid #DFD5C2;
  background: #FFFDF9;
  box-shadow: 0 12px 28px rgba(18, 16, 28, 0.07);
  margin-bottom: 22px;
}
.wh-tarot-fan-stage {
  background: radial-gradient(circle at 50% 24%, rgba(235, 202, 130, 0.22) 0%, transparent 58%),
              linear-gradient(170deg, #161326 0%, #221B38 55%, #131826 100%);
  padding: 26px 18px 24px;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 14px;
  border-bottom: 1.5px solid #D5BA82;
}
.wh-tarot-fan-card {
  width: 88px;
  aspect-ratio: 2 / 3;
  border-radius: 9px;
  overflow: hidden;
  border: 1.5px solid #E5C883;
  background: #120E20;
  box-shadow: 0 12px 24px rgba(0, 0, 0, 0.45);
  cursor: zoom-in;
  transition: transform 0.24s ease, border-color 0.24s ease;
  flex-shrink: 0;
}
.wh-tarot-fan-card.pos-left { transform: rotate(-6deg) translateY(5px); }
.wh-tarot-fan-card.pos-center { width: 96px; transform: translateY(-4px); border-width: 2px; border-color: #F6DF9E; z-index: 2; }
.wh-tarot-fan-card.pos-right { transform: rotate(6deg) translateY(5px); }
.wh-tarot-fan-card:hover { transform: translateY(-8px) scale(1.04); border-color: #FFF0BE; z-index: 3; }
.wh-tarot-fan-card img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.wh-tarot-sanctuary-copy {
  padding: 22px 20px 24px;
  background: #FFFDF9;
  text-align: left;
}
.wh-ts-rubric {
  display: inline-block;
  font-size: 11.8px;
  font-weight: 800;
  color: #8E2420;
  letter-spacing: 0.04em;
  margin-bottom: 7px;
}
.wh-ts-title {
  margin: 0 0 9px;
  font-family: 'GyeonggiBatang', 'Noto Serif KR', serif;
  font-size: 22px;
  font-weight: 700;
  line-height: 1.42;
  letter-spacing: -0.025em;
  color: #161412;
  word-break: keep-all;
}
.wh-ts-desc {
  margin: 0;
  font-size: 14.2px;
  line-height: 1.72;
  color: #544D42;
  word-break: keep-all;
}

/* 2) [타로] 페이지 5가지 주제 지정 보드 (1 + 2x2 여유로운 격자) */
.wh-tarot-5cat-board {
  margin-bottom: 24px;
}
.wh-tarot-5cat-head {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  margin-bottom: 11px;
  padding: 0 2px;
}
.wh-tarot-5cat-head strong {
  font-size: 14.5px;
  font-weight: 800;
  color: #191714;
  letter-spacing: -0.02em;
}
.wh-tarot-5cat-head span {
  font-size: 12px;
  color: #7A7062;
}
.wh-tarot-5cat-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}
.wh-tarot-5cat-cell {
  border: 1.5px solid #E3DDD0;
  background: #FFFFFF;
  border-radius: 14px;
  padding: 13px 14px;
  text-align: left;
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: 11px;
  transition: all 0.18s ease;
  font-family: 'Pretendard Variable', 'Pretendard', sans-serif;
}
.wh-tarot-5cat-cell.is-all {
  grid-column: 1 / -1;
  padding: 13px 16px;
}
.wh-tarot-5cat-cell:hover {
  border-color: #C4A974;
  background: #FFFDF8;
}
.wh-tarot-5cat-cell.active {
  border-color: #1E1A2B;
  background: #1E1A2B;
  color: #FAF6EE;
  box-shadow: 0 8px 18px rgba(24, 19, 38, 0.16);
}
.wh-t5c-badge {
  width: 30px;
  height: 30px;
  border-radius: 9px;
  background: #F5F1E7;
  color: #6B5735;
  font-size: 12px;
  font-weight: 800;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.wh-tarot-5cat-cell.active .wh-t5c-badge {
  background: rgba(245, 223, 172, 0.2);
  color: #F5DFAC;
  border: 1px solid rgba(245, 223, 172, 0.45);
}
.wh-t5c-text {
  min-width: 0;
  flex: 1;
}
.wh-t5c-title {
  display: block;
  font-size: 14.5px;
  font-weight: 800;
  line-height: 1.3;
  letter-spacing: -0.02em;
  color: #171512;
  word-break: keep-all;
}
.wh-tarot-5cat-cell.active .wh-t5c-title {
  color: #FFFFFF;
}
.wh-t5c-sub {
  display: block;
  font-size: 12px;
  line-height: 1.38;
  color: #776E60;
  margin-top: 3px;
  word-break: keep-all;
}
.wh-tarot-5cat-cell.active .wh-t5c-sub {
  color: rgba(250, 246, 238, 0.78);
}

/* 3) [타로] 허브 상품 목록 카드 : 좌측 순수 원화 슬롯 | 우측 활자 스펙 슬롯 완전 분리 */
.wh-tarot-hub-list {
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.wh-thc-card {
  display: grid;
  grid-template-columns: 126px minmax(0, 1fr);
  gap: 16px;
  padding: 14px;
  border-radius: 18px;
  border: 1px solid #E3DDD1;
  background: #FFFFFF;
  cursor: pointer;
  transition: transform 0.18s ease, border-color 0.18s ease, box-shadow 0.18s ease;
  align-items: stretch;
}
.wh-thc-card:hover {
  transform: translateY(-2px);
  border-color: #C7AD79;
  box-shadow: 0 10px 24px rgba(20, 18, 28, 0.08);
}
.wh-thc-media {
  position: relative;
  width: 126px;
  aspect-ratio: 3 / 3.95;
  border-radius: 12px;
  overflow: hidden;
  background: #141222;
  border: 1px solid #DFD5C3;
  flex-shrink: 0;
}
.wh-thc-media video,
.wh-thc-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.wh-thc-corner-tag {
  position: absolute;
  top: 8px;
  left: 8px;
  padding: 3px 8px;
  border-radius: 6px;
  background: rgba(18, 15, 30, 0.86);
  border: 1px solid rgba(235, 204, 132, 0.65);
  color: #FFE7A8;
  font-size: 10.5px;
  font-weight: 800;
  z-index: 2;
}
.wh-thc-corner-tag.is-free {
  background: #1D4E3E;
  border-color: #76B8A2;
  color: #FFFFFF;
}
.wh-thc-spec {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  padding: 2px 2px 2px 0;
  min-width: 0;
}
.wh-thc-persona-row {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
  margin-bottom: 6px;
}
.wh-thc-persona {
  display: inline-block;
  font-size: 11.8px;
  font-weight: 800;
  color: #7A5828;
  background: #FBF6EC;
  border: 1px solid #E7D9BD;
  padding: 3px 9px;
  border-radius: 999px;
}
.wh-thc-role {
  font-size: 11.5px;
  font-weight: 600;
  color: #82786A;
}
.wh-thc-title {
  margin: 0 0 7px;
  font-family: 'GyeonggiBatang', 'Noto Serif KR', serif;
  font-size: 18px;
  font-weight: 700;
  line-height: 1.36;
  letter-spacing: -0.025em;
  color: #151310;
  word-break: keep-all;
}
.wh-thc-desc {
  margin: 0;
  font-size: 13.4px;
  line-height: 1.62;
  color: #575046;
  word-break: keep-all;
}
.wh-thc-foot {
  margin-top: 12px;
  padding-top: 10px;
  border-top: 1px solid #EFEAE0;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 8px;
}
.wh-thc-cta {
  font-size: 12.5px;
  font-weight: 800;
  color: #8E2420;
  white-space: nowrap;
}

/* 4) 타로 입력 Stage 3 (다섯 갈래 초점 지정 리스트) & Stage 4 (순수 카드 원화 + 하단 명패 분리) */
.cf-tarot-5choice-list {
  display: flex;
  flex-direction: column;
  gap: 9px;
  margin-bottom: 14px;
}
.cf-tarot-5choice-item {
  width: 100%;
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 13px 15px;
  border-radius: 13px;
  border: 1px solid rgba(255, 255, 255, 0.22);
  background: rgba(255, 255, 255, 0.06);
  color: rgba(255, 255, 255, 0.92);
  text-align: left;
  cursor: pointer;
  transition: all 0.16s ease;
  font-family: 'Pretendard Variable', 'Pretendard', sans-serif;
}
.cf-tarot-5choice-item:hover {
  background: rgba(255, 255, 255, 0.11);
  border-color: rgba(245, 223, 172, 0.52);
}
.cf-tarot-5choice-item.on {
  background: rgba(245, 223, 172, 0.18);
  border-color: #F5DFAC;
  color: #FFFFFF;
}
.cf-t5-num {
  width: 28px;
  height: 28px;
  border-radius: 8px;
  border: 1px solid rgba(245, 223, 172, 0.45);
  background: rgba(14, 18, 28, 0.55);
  color: #F5DFAC;
  font-size: 11.8px;
  font-weight: 800;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.cf-tarot-5choice-item.on .cf-t5-num {
  background: #F5DFAC;
  color: #191510;
  border-color: #F5DFAC;
}
.cf-t5-txt {
  font-size: 14.2px;
  font-weight: 700;
  line-height: 1.48;
  letter-spacing: -0.02em;
  word-break: keep-all;
}

.tpk-slots-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  margin: 14px 0 18px;
}
.tpk-col {
  display: flex;
  flex-direction: column;
  align-items: stretch;
}
.tpk-pos-pill {
  font-size: 11px;
  font-weight: 800;
  color: #F5DFAC;
  background: rgba(15, 20, 32, 0.68);
  border: 1px solid rgba(245, 223, 172, 0.35);
  border-radius: 999px;
  padding: 4px 6px;
  margin-bottom: 8px;
  text-align: center;
  white-space: nowrap;
}
.tpk-pure-frame {
  width: 100%;
  aspect-ratio: 2 / 3;
  border-radius: 11px;
  border: 1.5px dashed rgba(226, 214, 255, 0.45);
  background: rgba(13, 19, 30, 0.62);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  transition: all 0.25s ease;
}
.tpk-pure-frame.filled {
  border-style: solid;
  border-width: 1.5px;
  border-color: #E5C882;
  background: #130F22;
  box-shadow: 0 10px 22px rgba(0, 0, 0, 0.42);
  cursor: zoom-in;
}
.tpk-pure-frame img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.tpk-empty-emblem {
  font-family: 'GyeonggiBatang', 'Noto Serif KR', serif;
  font-size: 22px;
  color: rgba(245, 223, 172, 0.65);
}
.tpk-meta-plaque {
  margin-top: 8px;
  padding: 8px 6px;
  min-height: 54px;
  border-radius: 10px;
  background: rgba(16, 22, 34, 0.76);
  border: 1px solid rgba(255, 255, 255, 0.15);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 4px;
  text-align: center;
}
.tpk-meta-plaque.filled {
  border-color: rgba(229, 200, 130, 0.48);
  background: rgba(24, 19, 38, 0.88);
}
.tpk-card-title {
  font-family: 'Noto Serif KR', serif;
  font-size: 12.2px;
  font-weight: 800;
  color: #FFFFFF;
  line-height: 1.3;
  word-break: keep-all;
}
.tpk-card-dir {
  font-size: 10.5px;
  font-weight: 700;
  color: #F5DFAC;
}
.tpk-card-wait {
  font-size: 11px;
  color: rgba(232, 224, 250, 0.65);
}

/* 5) 타로 결과·리딩 페이지 : [3장 순수 원화 갤러리] + [5가지 핵심 신탁 진단 칸] + [제4조언패 분리 액자] */
.wh-tarot-result-section {
  background: #FFFDF9;
  border: 1px solid #E3DAC8;
  border-radius: 18px;
  padding: 22px 18px 24px;
}
.wh-trs-head {
  margin-bottom: 18px;
  padding-bottom: 14px;
  border-bottom: 1px solid #ECE5D7;
}
.wh-trs-kicker {
  display: inline-block;
  font-size: 11.8px;
  font-weight: 800;
  color: #8E2420;
  letter-spacing: 0.03em;
  margin-bottom: 5px;
}
.wh-trs-title {
  margin: 0 0 5px;
  font-family: 'GyeonggiBatang', 'Noto Serif KR', serif;
  font-size: 20.5px;
  font-weight: 700;
  line-height: 1.38;
  color: #161412;
  word-break: keep-all;
}
.wh-trs-sub {
  margin: 0;
  font-size: 13px;
  color: #776E60;
  line-height: 1.55;
}

.wh-tsg-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  align-items: start;
}
.wh-tsg-col {
  display: flex;
  flex-direction: column;
  align-items: stretch;
}
.wh-tsg-pos {
  font-size: 11.2px;
  font-weight: 800;
  color: #5A4B34;
  background: #F5EFE2;
  border: 1px solid #E2D5BC;
  border-radius: 8px;
  padding: 5px 4px;
  text-align: center;
  margin-bottom: 9px;
  letter-spacing: -0.02em;
}
.wh-tsg-frame {
  width: 100%;
  aspect-ratio: 2 / 3;
  border-radius: 11px;
  overflow: hidden;
  border: 1.5px solid #C8AA6E;
  background: #141024;
  box-shadow: 0 8px 20px rgba(24, 18, 40, 0.14);
  cursor: zoom-in;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.wh-tsg-frame:hover {
  transform: translateY(-3px);
  box-shadow: 0 12px 26px rgba(24, 18, 40, 0.24);
}
.wh-tsg-frame img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.wh-tsg-frame.is-locked {
  cursor: pointer;
  background: radial-gradient(circle at 50% 35%, rgba(231, 202, 130, 0.18) 0%, transparent 62%),
              linear-gradient(165deg, #211936 0%, #130F22 100%);
  border: 1.5px solid rgba(212, 180, 106, 0.72);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 8px;
}
.wh-tsg-crest {
  width: 48px;
  height: 68px;
  border-radius: 8px;
  border: 1px solid rgba(231, 202, 130, 0.55);
  background: rgba(255, 255, 255, 0.05);
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: 'GyeonggiBatang', 'Noto Serif KR', serif;
  font-size: 16px;
  font-weight: 700;
  color: #EAD096;
  letter-spacing: 0.06em;
}
.wh-tsg-plaque {
  margin-top: 10px;
  padding: 11px 8px;
  min-height: 82px;
  border-radius: 11px;
  background: #FFFFFF;
  border: 1px solid #E5DEC9;
  text-align: center;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  align-items: center;
  gap: 4px;
}
.wh-tsg-plaque.is-locked {
  background: #FAF7F0;
  border-style: dashed;
  border-color: #D7C8AC;
  cursor: pointer;
}
.wh-tsg-name {
  font-family: 'GyeonggiBatang', 'Noto Serif KR', serif;
  font-size: 13.5px;
  font-weight: 700;
  color: #171512;
  line-height: 1.32;
  word-break: keep-all;
}
.wh-tsg-suit {
  font-size: 11.2px;
  font-weight: 600;
  color: #786E5F;
  line-height: 1.3;
}
.wh-tsg-dir {
  display: inline-block;
  margin-top: 3px;
  padding: 3px 8px;
  border-radius: 999px;
  font-size: 10.5px;
  font-weight: 800;
  background: #F4EFE3;
  color: #6E5228;
  border: 1px solid #E2D3B5;
}
.wh-tsg-dir.is-rev {
  background: #FCFBF9;
  color: #A5352A;
  border-color: #ECCBC7;
}
.wh-tsg-dir.is-wait {
  background: #1E1A2B;
  color: #F5DFAC;
  border-color: #1E1A2B;
}

/* 5가지 핵심 신탁 진단 보드 (칸과 글씨가 널찍하게 띄워진 구조) */
.wh-tarot-5oracle-wrap {
  margin-top: 26px;
  padding-top: 22px;
  border-top: 1.5px solid #E6DFD0;
}
.wh-t5o-header {
  margin-bottom: 14px;
}
.wh-t5o-header strong {
  display: block;
  font-family: 'GyeonggiBatang', 'Noto Serif KR', serif;
  font-size: 18.5px;
  color: #161412;
  margin-bottom: 4px;
}
.wh-t5o-header span {
  font-size: 13px;
  color: #756B5D;
}
.wh-t5o-list {
  display: flex;
  flex-direction: column;
  gap: 13px;
}
.wh-t5o-cell {
  background: #FFFFFF;
  border: 1px solid #E3DCCB;
  border-radius: 14px;
  padding: 17px 18px;
}
.wh-t5o-cell.is-quote {
  background: #FCF9F2;
  border-color: #DECBA6;
}
.wh-t5o-cell.is-caution {
  background: #FCFBF9;
  border-color: #E9CECA;
}
.wh-t5o-cell-top {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 10px;
  margin-bottom: 9px;
}
.wh-t5o-tag {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 12px;
  font-weight: 800;
  color: #7A5828;
  letter-spacing: -0.01em;
}
.wh-t5o-cell.is-caution .wh-t5o-tag {
  color: #9E3026;
}
.wh-t5o-num {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 22px;
  height: 22px;
  border-radius: 6px;
  background: #F3ECE0;
  color: #6B4F25;
  font-size: 11px;
  font-weight: 800;
}
.wh-t5o-cell.is-caution .wh-t5o-num {
  background: #F3ECE0;
  color: #9E3026;
}
.wh-t5o-prob-row {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  gap: 12px;
  margin-bottom: 10px;
}
.wh-t5o-main-title {
  font-size: 16px;
  font-weight: 800;
  color: #171512;
  line-height: 1.45;
  word-break: keep-all;
}
.wh-t5o-pct {
  font-family: 'GyeonggiBatang', 'Noto Serif KR', serif;
  font-size: 30px;
  font-weight: 700;
  line-height: 1;
  color: #8E2420;
  flex-shrink: 0;
}
.wh-t5o-bar {
  height: 10px;
  background: #EAE3D5;
  border-radius: 999px;
  overflow: hidden;
  margin-bottom: 10px;
}
.wh-t5o-bar-fill {
  height: 100%;
  background: linear-gradient(90deg, #8E2420 0%, #C59B57 100%);
  border-radius: 999px;
}
.wh-t5o-body {
  margin: 0;
  font-size: 14.5px;
  line-height: 1.78;
  color: #3D372F;
  word-break: keep-all;
}
.wh-t5o-subpill {
  display: inline-block;
  padding: 4px 10px;
  border-radius: 8px;
  background: #F5F0E4;
  color: #5C4B32;
  font-size: 12.2px;
  font-weight: 700;
  margin-bottom: 9px;
}
.wh-t5o-copy-btn {
  border: 1px solid #CBB998;
  background: #FFFFFF;
  color: #2B251E;
  border-radius: 8px;
  font-size: 11.8px;
  font-weight: 800;
  padding: 5px 11px;
  cursor: pointer;
  white-space: nowrap;
}
.wh-t5o-script-quote {
  font-family: 'RIDIBatang', 'Noto Serif KR', serif;
  font-size: 15.5px;
  line-height: 1.85;
  color: #181512;
  padding: 12px 14px;
  background: #FFFFFF;
  border-left: 1px solid #E5E0D5;
  border-radius: 6px;
  margin-bottom: 9px;
  word-break: keep-all;
}

/* 미해금 상태의 5칸 프리뷰 격자 */
.wh-t5o-locked-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  margin-top: 11px;
}
.wh-t5o-locked-item {
  background: #FAF7F1;
  border: 1px dashed #D5C7AD;
  border-radius: 12px;
  padding: 14px 13px;
  cursor: pointer;
  transition: border-color 0.16s ease, background 0.16s ease;
}
.wh-t5o-locked-item:hover {
  border-color: #8E2420;
  background: #FFFDF8;
}
.wh-t5o-locked-item strong {
  display: block;
  font-size: 13.8px;
  font-weight: 800;
  color: #1B1814;
  margin: 5px 0 4px;
  line-height: 1.36;
  word-break: keep-all;
}
.wh-t5o-locked-item span {
  display: block;
  font-size: 12.2px;
  line-height: 1.52;
  color: #776D5E;
  word-break: keep-all;
}

/* 숨은 제4조언패 갤러리 액자 (좌측 2:3 원화 / 우측 설명문 완전 분리) */
.wh-tarot-4th-showcase {
  margin-top: 16px;
  background: #181524;
  color: #FAF6EE;
  border: 1.5px solid #D8B978;
  border-radius: 16px;
  padding: 18px;
  display: grid;
  grid-template-columns: 104px minmax(0, 1fr);
  gap: 18px;
  align-items: center;
  cursor: zoom-in;
}
.wh-t4-art {
  width: 104px;
  aspect-ratio: 2 / 3;
  border-radius: 10px;
  overflow: hidden;
  border: 1.5px solid #ECCF8D;
  background: #100D1B;
  flex-shrink: 0;
}
.wh-t4-art img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.wh-t4-copy {
  min-width: 0;
}
.wh-t4-kicker {
  font-size: 11.2px;
  font-weight: 800;
  color: #F5DFAC;
  letter-spacing: 0.04em;
  margin-bottom: 5px;
}
.wh-t4-title {
  margin: 0 0 7px;
  font-family: 'GyeonggiBatang', 'Noto Serif KR', serif;
  font-size: 18px;
  font-weight: 700;
  line-height: 1.35;
  color: #FFFFFF;
  word-break: keep-all;
}
.wh-t4-kw {
  display: inline-block;
  padding: 3px 9px;
  border-radius: 999px;
  background: rgba(245, 223, 172, 0.16);
  color: #FCE6B4;
  font-size: 11.5px;
  font-weight: 700;
  margin-bottom: 9px;
}
.wh-t4-desc {
  margin: 0;
  font-size: 13.8px;
  line-height: 1.68;
  color: #E4DFEE;
  word-break: keep-all;
}

/* 챕터 및 상단 화보 원화 프레임 외부 캡션 분리 */
.ch-art-wrap {
  margin: 6px 0 20px;
  text-align: center;
}
.ch-art-wrap .ch-art {
  margin-bottom: 7px !important;
}
.ch-art-caption,
.sd-wt-below-cap {
  font-size: 12px;
  font-weight: 600;
  color: #82786A;
  text-align: center;
  margin-top: 6px;
}

/* 상세페이지 초벌 삼패 오픈 시 이미지/제목 분리 정돈 */
.wh-tp-slot.picked {
  padding: 6px !important;
  justify-content: space-between !important;
  background: #FFFDF9 !important;
}
.wh-tp-picked-art {
  width: 100%;
  aspect-ratio: 2 / 3;
  border-radius: 4px;
  overflow: hidden;
  border: 1px solid #D3BC8C;
}
.wh-tp-picked-art img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  display: block;
}
.wh-tp-picked-name {
  display: block;
  font-size: 12px;
  font-weight: 800;
  color: #191612;
  padding: 5px 2px 2px;
  line-height: 1.25;
  word-break: keep-all;
}

@media (max-width: 390px) {
  .wh-thc-card {
    grid-template-columns: 108px minmax(0, 1fr);
    gap: 12px;
    padding: 12px;
  }
  .wh-thc-media { width: 108px; }
  .wh-tarot-4th-showcase {
    grid-template-columns: 88px minmax(0, 1fr);
    gap: 13px;
    padding: 14px;
  }
  .wh-t4-art { width: 88px; }
}


/* ==========================================================================
   [v10.6] Google Flow 마스터 롱테이크 호흡 시네마 슬롯 (4대 핵심 명당 전용)
   ========================================================================== */
.wh-flow-cinema-frame {
  position: relative;
  width: 100%;
  aspect-ratio: 16 / 9;
  border-radius: 6px;
  overflow: hidden;
  background: #10131C;
  border: 1px solid rgba(216, 188, 132, 0.38);
  box-shadow: 0 12px 30px rgba(15, 13, 10, 0.16);
}
.wh-flow-cinema-frame video {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.wh-flow-live-badge {
  position: absolute;
  top: 12px;
  left: 12px;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 10px;
  border-radius: 999px;
  background: rgba(14, 15, 20, 0.74);
  backdrop-filter: blur(6px);
  border: 1px solid rgba(232, 206, 152, 0.42);
  color: #F6E6C2;
  font-family: 'Pretendard Variable', 'Pretendard', sans-serif;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.02em;
  pointer-events: none;
}
.wh-flow-live-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #E8C67A;
  box-shadow: 0 0 8px rgba(232, 198, 122, 0.95);
  animation: whFlowPulse 2.6s ease-in-out infinite;
}
@keyframes whFlowPulse {
  0%, 100% { opacity: 0.45; transform: scale(0.92); }
  50% { opacity: 1; transform: scale(1.18); }
}
.wh-unseal-flow-stage {
  width: 100%;
  max-width: 380px;
  margin: 0 auto 16px;
  border-radius: 12px;
  overflow: hidden;
  border: 1px solid rgba(232, 206, 152, 0.42);
  box-shadow: 0 14px 32px rgba(0, 0, 0, 0.38);
  aspect-ratio: 16 / 9;
  position: relative;
  background: #0D1018;
}
.wh-unseal-flow-stage video {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}


/* ==========================================================================
   [v10.7] 월하 단독 오리지널 신작 5선 — 다인 가족 로스터 · 댕냥이 교감 · 배필 듀얼 초상화 족자
   ========================================================================== */
.cf-orig5-box {
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(245, 223, 172, 0.28);
  border-radius: 12px;
  padding: 13px 13px 12px;
  margin-bottom: 15px;
}
.cf-orig5-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 8px;
  margin-bottom: 10px;
}
.cf-orig5-add-btn {
  border: 1px solid rgba(245, 223, 172, 0.55);
  background: rgba(245, 223, 172, 0.14);
  color: #FCE5B2;
  border-radius: 999px;
  padding: 4px 10px;
  font-size: 11.5px;
  font-weight: 800;
  cursor: pointer;
  white-space: nowrap;
}
.cf-orig5-fam-row {
  display: grid;
  grid-template-columns: 92px 1fr 1.15fr auto;
  gap: 7px;
  align-items: center;
  margin-bottom: 8px;
}
.cf-fam-role {
  background: rgba(15, 18, 26, 0.72);
  color: #F6E9CE;
  border: 1px solid rgba(255, 255, 255, 0.22);
  border-radius: 8px;
  padding: 8px 6px;
  font-size: 12.2px;
  font-weight: 700;
  outline: none;
}
.cf-orig5-del-btn {
  border: none;
  background: rgba(255, 255, 255, 0.1);
  color: rgba(255, 255, 255, 0.75);
  width: 26px;
  height: 26px;
  border-radius: 50%;
  font-size: 11px;
  cursor: pointer;
}
.cf-orig5-hint {
  font-size: 11.2px;
  color: rgba(255, 255, 255, 0.68);
  line-height: 1.45;
  margin-top: 4px;
}
.cf-orig5-species-row {
  display: flex;
  gap: 6px;
  margin-bottom: 10px;
  flex-wrap: wrap;
}
.cf-orig5-sp-pill {
  border: 1px solid rgba(255, 255, 255, 0.24);
  background: rgba(255, 255, 255, 0.06);
  color: rgba(255, 255, 255, 0.85);
  border-radius: 999px;
  padding: 6px 12px;
  font-size: 12.2px;
  font-weight: 700;
  cursor: pointer;
}
.cf-orig5-sp-pill.on {
  border-color: #F5DFAC;
  background: rgba(245, 223, 172, 0.2);
  color: #FFF6DF;
}

.wh-family-roster-chips {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: 8px;
  margin: 10px 0 14px;
}
.wh-fam-chip {
  background: #FAF7F0;
  border: 1px solid #E2D9C8;
  border-radius: 8px;
  padding: 9px 11px;
}
.wh-fam-chip .wh-fam-role {
  display: block;
  font-size: 11px;
  font-weight: 700;
  color: #7A6E5C;
  margin-bottom: 2px;
}
.wh-fam-chip strong {
  display: block;
  font-size: 13.2px;
  font-weight: 800;
  color: #1D1812;
  line-height: 1.35;
}

.wh-pet-bond-meter {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  padding: 13px 15px;
  margin: 8px 0 14px;
  background: #FAF6FC;
  border: 1px solid #DFD2EA;
  border-radius: 10px;
}
.wh-pet-bond-meter strong {
  font-family: 'Noto Serif KR', serif;
  font-size: 26px;
  font-weight: 900;
  color: #6B3FA0;
  flex-shrink: 0;
}

.wh-portrait-dual-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 11px;
  margin: 10px 0 16px;
}
.wh-portrait-card {
  border: 1px solid #E2D6C3;
  border-radius: 10px;
  overflow: hidden;
  background: #FCF9F4;
  cursor: pointer;
  transition: transform 0.18s ease, box-shadow 0.18s ease;
}
.wh-portrait-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 20px rgba(25, 20, 15, 0.09);
}
.wh-portrait-img-wrap {
  position: relative;
  width: 100%;
  aspect-ratio: 3 / 4;
  overflow: hidden;
  background: #1B1815;
}
.wh-portrait-img-wrap img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 16%;
  display: block;
  transition: filter 0.35s ease, transform 0.35s ease;
}
.wh-portrait-card.is-veiled .wh-portrait-img-wrap img {
  filter: blur(11px) saturate(0.88) brightness(0.88);
  transform: scale(1.09);
}
.wh-portrait-veil-badge {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 10px;
  background: radial-gradient(circle, rgba(20, 15, 12, 0.25) 0%, rgba(16, 12, 10, 0.62) 100%);
}
.wh-portrait-veil-badge span {
  display: inline-block;
  padding: 7px 11px;
  border-radius: 8px;
  background: rgba(24, 19, 16, 0.84);
  border: 1px solid rgba(236, 204, 142, 0.72);
  color: #FCE6B4;
  font-size: 11.8px;
  font-weight: 800;
  line-height: 1.42;
}
.wh-portrait-cap {
  padding: 8px 10px 9px;
  border-top: 1px solid #EAE1D3;
}
.wh-portrait-cap span {
  display: block;
  font-size: 10.8px;
  font-weight: 700;
  color: #857662;
}
.wh-portrait-cap strong {
  display: block;
  font-size: 12.6px;
  font-weight: 800;
  color: #211B14;
  margin-top: 2px;
}

@media (max-width: 410px) {
  .cf-orig5-fam-row {
    grid-template-columns: 82px 1fr 1.08fr auto;
    gap: 5px;
  }
}


/* ==========================================================================
   v10.8 — 인물 중심 메인 히어로 + 1-Depth-In 달빛 장서각 배경 + 5단계 사주 회전 대기실
   ========================================================================== */
.cf-shell.hall-ambient .cf-bg-video {
  filter: blur(1.8px) brightness(0.62) saturate(1.08) !important;
  transform: scale(1.02) !important;
  object-position: center center !important;
}

.wh-wait-rotator-card {
  width: 100%;
  max-width: 430px;
  margin: 0 auto 14px;
  border-radius: 16px;
  overflow: hidden;
  border: 1.5px solid rgba(226, 199, 146, 0.55);
  background: #131118;
  box-shadow: 0 14px 34px rgba(10, 8, 16, 0.42);
  position: relative;
}
.wh-wait-media-viewport {
  width: 100%;
  aspect-ratio: 16 / 9;
  position: relative;
  overflow: hidden;
  background: #131118;
}
.wh-wait-media-viewport img,
.wh-wait-media-viewport video {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
@keyframes whWaitBreathZoom {
  0%   { transform: scale(1.0) translateY(0px); }
  50%  { transform: scale(1.055) translateY(-3px); }
  100% { transform: scale(1.0) translateY(0px); }
}
.wh-wait-kenburns {
  animation: whWaitBreathZoom 5.6s ease-in-out infinite;
  will-change: transform;
}
.wh-wait-top-chip {
  position: absolute;
  top: 10px;
  left: 10px;
  z-index: 3;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 10px;
  border-radius: 99px;
  background: rgba(16, 13, 22, 0.78);
  border: 1px solid rgba(242, 216, 162, 0.48);
  color: #FCE6B4;
  font-size: 11px;
  font-weight: 800;
  backdrop-filter: blur(6px);
}
.wh-wait-persona-mini {
  width: 22px;
  height: 22px;
  border-radius: 50%;
  object-fit: cover;
  border: 1px solid #F2D8A2;
  flex-shrink: 0;
}
.wh-wait-5pills {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 4px;
  padding: 8px 9px;
  background: linear-gradient(180deg, #1A1622 0%, #14111B 100%);
  border-top: 1px solid rgba(226, 199, 146, 0.25);
}
.wh-wait-pill-item {
  text-align: center;
  font-size: 10.2px;
  font-weight: 700;
  padding: 5px 2px;
  border-radius: 7px;
  color: rgba(242, 232, 212, 0.52);
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid transparent;
  transition: all 0.25s ease;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.wh-wait-pill-item.done {
  color: #DFC89B;
  background: rgba(226, 199, 146, 0.1);
}
.wh-wait-pill-item.active {
  color: #1B150E;
  background: linear-gradient(135deg, #F7E2B2 0%, #DFBE7D 100%);
  border-color: #FFF2D2;
  font-weight: 900;
  box-shadow: 0 2px 10px rgba(242, 210, 142, 0.35);
}
.wh-unseal-skip-link {
  margin-top: 12px;
  display: inline-block;
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(245, 223, 172, 0.35);
  color: #F5DFAC;
  border-radius: 99px;
  padding: 7px 16px;
  font-size: 12px;
  font-weight: 700;
  cursor: pointer;
}
.w-dl-flow-banner {
  position: relative;
  width: 100%;
  aspect-ratio: 21 / 9;
  border-radius: 10px;
  overflow: hidden;
  margin-bottom: 13px;
  border: 1px solid rgba(226, 199, 146, 0.36);
  background: #121016;
}
.w-dl-flow-banner video {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 42%;
  display: block;
}
.w-dl-flow-banner-cap {
  position: absolute;
  left: 10px;
  bottom: 8px;
  z-index: 2;
  background: rgba(15, 13, 18, 0.72);
  border: 1px solid rgba(226, 199, 146, 0.42);
  color: #F6E2B3;
  font-size: 10.5px;
  font-weight: 800;
  padding: 3px 9px;
  border-radius: 99px;
}

/* ==========================================================================
   [v10.30] 모바일 전 화면 초대형 스케일 & 어사이드 개편 (PC >= 769px 100% 보존)
   - PC 데스크톱은 기존 레이아웃/비율 100% 그대로 유지
   - 모바일(<= 768px): 히어로 풀블리드 확대 + 74vw 초대형 스포트라이트 포스터 슬라이드 +
     2열 포스터 폭/캘리 대폭 확대 + 청월당급 깔끔 대형 ☰ 어사이드 + 내부 상담·모달·본문 전면 대형화
   ========================================================================== */

body:not(.wolha-owner-mode) .drw-owner-only {
  display: none !important;
}

.gnb-lbl-m,
.pmt-m,
.poster-mobile-head,
.mobile-spotlight-sec {
  display: none;
}

@media (min-width: 769px) {
  .mobile-spotlight-sec,
  .poster-card.m-swipe-extra {
    display: none !important;
  }
  .poster-thumb .pc-overlay-v4 {
    left: 10px !important;
    right: 10px !important;
    bottom: 13px !important;
    text-align: center !important;
  }
  .poster-thumb .pc-persona-pill {
    font-size: 13px !important;
    font-weight: 700 !important;
    color: #FFE8B0 !important;
    margin-bottom: 3px !important;
    text-align: center !important;
  }
  .poster-thumb .pc-photo-title {
    display: block !important;
    font-family: 'Noto Serif KR', 'GyeonggiBatang', serif !important;
    font-size: 27px !important;
    font-weight: 900 !important;
    line-height: 1.12 !important;
    letter-spacing: -0.04em !important;
    color: #FFFFFF !important;
    text-align: center !important;
    text-shadow: 0 3px 14px rgba(0, 0, 0, 0.94), 0 1px 3px rgba(0, 0, 0, 0.96) !important;
  }
}

@media (max-width: 768px) {
  /* 0) 모바일 상단 불필요 장식 띠 숨김 & 전체 화면 여백 시원하게 확장 */
  .welcome-coin-strip,
  .top-header .palette-dots,
  .top-header .coin-chip,
  .top-header .hdr-profile-chip,
  #wh-kakao-home-ribbon,
  #v11-home-kakao-strip,
  .wh-kakao-home-ribbon,
  #active-profile-top-strip.is-empty {
    display: none !important;
  }

  .app-shell {
    max-width: 100% !important;
    padding-bottom: 108px !important;
  }

  /* 1) 모바일 상단 헤더 & 6대 GNB 탭 — 훨씬 큼직하고 또렷한 간판/탭 */
  .top-header {
    height: 62px !important;
    padding: 0 14px !important;
  }
  .brand-logo {
    gap: 9px !important;
  }
  .wolha-seal-img {
    height: 35px !important;
    max-width: 37px !important;
  }
  .brand-wordmark {
    font-size: 25.5px !important;
    font-weight: 900 !important;
    letter-spacing: -0.05em !important;
    color: #111111 !important;
  }
  .top-header .icon-btn {
    width: 42px !important;
    height: 42px !important;
  }
  .top-header .icon-btn svg {
    width: 28px !important;
    height: 28px !important;
    stroke-width: 2.2 !important;
  }

  .gnb-lbl-pc {
    display: none !important;
  }
  .gnb-lbl-m {
    display: inline !important;
  }
  .gnb-nav {
    top: 62px !important;
    justify-content: space-between !important;
    padding: 0 15px !important;
    gap: 0 !important;
    overflow-x: hidden !important;
    border-bottom: 1.5px solid #ECEEF2 !important;
  }
  .gnb-tab {
    font-size: 18px !important;
    font-weight: 700 !important;
    padding: 13px 4px 12px !important;
    letter-spacing: -0.035em !important;
    color: #68707D !important;
  }
  .gnb-tab.active {
    font-weight: 800 !important;
    color: #111111 !important;
  }
  .gnb-tab.active::after {
    height: 3px !important;
  }

  .sub-filter-bar {
    padding: 12px 12px 6px !important;
    gap: 8px !important;
  }
  .sub-chip {
    font-size: 15.8px !important;
    font-weight: 700 !important;
    padding: 9px 16px !important;
  }

  #active-profile-top-strip {
    margin: 8px 12px 2px !important;
    padding: 12px 15px !important;
    border-radius: 14px !important;
    font-size: 15px !important;
  }

  /* 2) 메인 상단 히어로 배너 — 좌우 여백 10px 풀와이드(화면폭 95%) + 초대형 붓글씨 */
  .home-hero-band {
    min-height: 0 !important;
    max-height: none !important;
    margin: 0 !important;
    border-bottom: none !important;
  }
  .home-hero-band .hero-wrap {
    padding: 10px 10px 14px !important;
  }
  .home-hero-band .hero-stage {
    aspect-ratio: 3 / 3.92 !important;
    min-height: 468px !important;
    max-height: 530px !important;
    border-radius: 22px !important;
  }
  .home-hero-band .hero-live-pill {
    top: 14px !important;
    left: 14px !important;
    font-size: 13.5px !important;
    font-weight: 800 !important;
    padding: 6px 13px !important;
    border-radius: 999px !important;
  }
  .home-hero-band .hero-rank-ribbon {
    right: 16px !important;
    width: 44px !important;
    padding: 9px 0 12px !important;
    font-size: 11px !important;
  }
  .home-hero-band .hero-rank-ribbon strong {
    font-size: 19px !important;
  }
  .home-hero-band .hero-nav-btn {
    width: 36px !important;
    height: 36px !important;
  }
  .home-hero-band .hero-vignette {
    background: linear-gradient(
      180deg,
      rgba(8, 10, 14, 0.08) 0%,
      rgba(8, 10, 14, 0.0) 38%,
      rgba(6, 8, 12, 0.68) 68%,
      rgba(4, 6, 10, 0.95) 100%
    ) !important;
  }
  .home-hero-band .hero-caption {
    left: 14px !important;
    right: 14px !important;
    bottom: 24px !important;
    text-align: center !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
  }
  .home-hero-band .hero-kicker {
    font-size: 17.5px !important;
    font-weight: 800 !important;
    color: #FFEAB5 !important;
    margin-bottom: 6px !important;
    text-align: center !important;
  }
  .home-hero-band .hero-title {
    font-family: 'Noto Serif KR', 'GyeonggiBatang', serif !important;
    font-size: clamp(41px, 11.4vw, 50px) !important;
    font-weight: 900 !important;
    line-height: 1.1 !important;
    letter-spacing: -0.045em !important;
    margin: 0 0 10px !important;
    color: #FFFFFF !important;
    text-align: center !important;
    text-shadow: 0 4px 18px rgba(0, 0, 0, 0.96), 0 1px 4px rgba(0, 0, 0, 0.99) !important;
  }
  .home-hero-band .hero-quote {
    font-family: 'Pretendard Variable', 'Pretendard', sans-serif !important;
    font-size: 16.2px !important;
    font-weight: 600 !important;
    line-height: 1.42 !important;
    color: rgba(255, 255, 255, 0.96) !important;
    text-align: center !important;
    display: -webkit-box !important;
    -webkit-line-clamp: 2 !important;
    -webkit-box-orient: vertical !important;
    overflow: hidden !important;
  }

  /* 3) [핵심] 모바일 초대형 대표 명감 스포트라이트 캐러셀 (청월당 74vw 빅카드 감성!) */
  .mobile-spotlight-sec {
    display: block;
    padding: 18px 0 24px !important;
    background: #FFFFFF !important;
    border-top: 8px solid #F4F5F7 !important;
    border-bottom: 8px solid #F4F5F7 !important;
  }
  .mobile-spotlight-sec .sec-head {
    padding: 0 14px !important;
    margin-bottom: 14px !important;
  }
  .m-spotlight-track {
    display: flex !important;
    overflow-x: auto !important;
    gap: 14px !important;
    padding: 0 14px 4px !important;
    scroll-snap-type: x mandatory !important;
    -webkit-overflow-scrolling: touch !important;
    scrollbar-width: none !important;
  }
  .m-spotlight-track::-webkit-scrollbar {
    display: none !important;
  }
  .m-spotlight-track .poster-card {
    flex: 0 0 74vw !important;
    max-width: 302px !important;
    scroll-snap-align: start !important;
  }
  .m-spotlight-track .poster-thumb {
    border-radius: 20px !important;
    aspect-ratio: 3 / 3.88 !important;
    box-shadow: 0 10px 26px rgba(15, 23, 42, 0.12) !important;
  }
  .m-spotlight-track .poster-thumb .pc-overlay-v4 {
    bottom: 20px !important;
  }
  .m-spotlight-track .poster-thumb .pc-persona-pill {
    font-size: 17.5px !important;
    font-weight: 800 !important;
    margin-bottom: 5px !important;
  }
  .m-spotlight-track .poster-thumb .pc-photo-title {
    font-size: clamp(44px, 12.4vw, 52px) !important;
    font-weight: 900 !important;
    letter-spacing: -0.045em !important;
  }
  .m-spotlight-track .poster-card-body {
    padding: 12px 4px 2px !important;
  }
  .m-spotlight-track .poster-mobile-head {
    font-size: 20.5px !important;
    font-weight: 800 !important;
    margin-bottom: 4px !important;
  }
  .m-spotlight-track .poster-meta-title {
    font-size: 15.8px !important;
    color: #5B6270 !important;
  }

  /* 4) 고민 빠른 길잡이 & 오늘의 운세 — 큼직한 터치 타겟 & 선명한 활자 */
  .worry-guide-sec {
    padding: 24px 12px 22px !important;
  }
  .wg-title {
    font-size: 23.5px !important;
    font-weight: 800 !important;
    color: #111111 !important;
    letter-spacing: -0.038em !important;
    margin-bottom: 6px !important;
  }
  .wg-sub {
    font-size: 15.5px !important;
    color: #5B6270 !important;
    margin-bottom: 15px !important;
  }
  .wg-grid-6 {
    gap: 10px !important;
  }
  .wg-grid-6 .wg-card {
    padding: 15px 14px !important;
    border-radius: 16px !important;
    background: #F7F8FA !important;
    border: 1px solid #E5E8EE !important;
  }
  .wg-grid-6 .wg-ico {
    display: none !important;
  }
  .wg-grid-6 .wg-txt {
    width: 100% !important;
    min-width: 0 !important;
  }
  .wg-grid-6 .wg-txt strong {
    display: block !important;
    font-size: 18px !important;
    font-weight: 800 !important;
    color: #111111 !important;
    letter-spacing: -0.03em !important;
    line-height: 1.3 !important;
    margin-bottom: 4px !important;
    white-space: nowrap !important;
  }
  .wg-grid-6 .wg-txt span {
    display: block !important;
    font-size: 14.4px !important;
    font-weight: 500 !important;
    color: #626A78 !important;
    line-height: 1.35 !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
  }

  .daily-letter-card {
    padding: 18px 16px !important;
    border-radius: 18px !important;
  }
  .dl-top {
    font-size: 14.5px !important;
    font-weight: 800 !important;
  }
  .dl-title,
  #dl-headline {
    font-size: 19px !important;
    font-weight: 800 !important;
    line-height: 1.38 !important;
    color: #111111 !important;
  }
  .dl-sub,
  #dl-body {
    font-size: 15.4px !important;
    line-height: 1.52 !important;
    color: #4B5563 !important;
  }
  .daily-letter-card .dl-home-chips,
  .daily-letter-card .dl-home-chip {
    display: none !important;
  }
  .live-review-strip {
    padding: 13px 14px !important;
    border-radius: 14px !important;
  }
  .live-review-strip .lrs-tag {
    font-size: 12.8px !important;
    padding: 4px 9px !important;
  }
  .live-review-strip .lrs-text {
    font-size: 14.8px !important;
  }

  /* 5) 섹션 대제목 및 2열 포스터 카드 — 좌우 여백 11px로 카드 면적 +17% 확대 & 초대형 캘리그래피 */
  .wh-clean-home-sec,
  .theme-band-wrap,
  .sec-block {
    padding: 26px 11px 24px !important;
  }
  .sec-head {
    margin-bottom: 16px !important;
    padding: 0 2px !important;
  }
  .sec-head h2,
  .section-head h2,
  .wh-clean-sec-title {
    font-size: 23.5px !important;
    font-weight: 800 !important;
    color: #111111 !important;
    letter-spacing: -0.04em !important;
    line-height: 1.28 !important;
  }
  .wh-clean-sec-sub {
    font-size: 15.5px !important;
    color: #5B6270 !important;
    margin-top: 5px !important;
    line-height: 1.42 !important;
  }
  .wh-clean-more-link {
    font-size: 15px !important;
    font-weight: 700 !important;
    color: #5B6270 !important;
  }
  .btn-theme-more {
    font-size: 16.5px !important;
    font-weight: 800 !important;
    padding: 15px 16px !important;
    border-radius: 14px !important;
    margin-top: 18px !important;
  }

  .poster-grid,
  .wh-poster-grid-v4 {
    gap: 26px 10px !important;
    background: #FFFFFF !important;
  }

  .poster-card {
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
    border-radius: 0 !important;
    overflow: visible !important;
  }

  .poster-thumb {
    border-radius: 16px !important;
    overflow: hidden !important;
    border: 1px solid rgba(0, 0, 0, 0.06) !important;
    aspect-ratio: 3 / 3.96 !important;
  }
  .poster-thumb .poster-badge,
  .poster-thumb .pc-best-ribbon {
    display: none !important;
  }
  .poster-thumb .pc-scrim-v4 {
    background: linear-gradient(
      180deg,
      rgba(0, 0, 0, 0.0) 40%,
      rgba(6, 8, 14, 0.58) 69%,
      rgba(4, 6, 10, 0.93) 100%
    ) !important;
  }
  .poster-thumb .pc-overlay-v4 {
    left: 5px !important;
    right: 5px !important;
    bottom: 15px !important;
    text-align: center !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
  }
  .poster-thumb .pc-persona-pill {
    font-family: 'Pretendard Variable', 'Pretendard', sans-serif !important;
    font-size: 15.2px !important;
    font-weight: 800 !important;
    color: #FFEAB5 !important;
    margin-bottom: 3px !important;
    letter-spacing: -0.025em !important;
    line-height: 1.2 !important;
    text-align: center !important;
    white-space: nowrap !important;
    text-shadow: 0 2px 8px rgba(0, 0, 0, 0.96), 0 1px 3px rgba(0, 0, 0, 0.99) !important;
  }
  .poster-thumb .pc-photo-title {
    font-family: 'Noto Serif KR', 'GyeonggiBatang', serif !important;
    font-size: clamp(34px, 9.7vw, 41px) !important;
    font-weight: 900 !important;
    line-height: 1.06 !important;
    letter-spacing: -0.045em !important;
    color: #FFFFFF !important;
    text-align: center !important;
    white-space: nowrap !important;
    text-shadow: 0 3px 14px rgba(0, 0, 0, 0.97), 0 1px 3px rgba(0, 0, 0, 0.99) !important;
  }

  .poster-card-body {
    padding: 11px 2px 2px !important;
    background: transparent !important;
  }
  .poster-mobile-head {
    display: block !important;
    font-family: 'Pretendard Variable', 'Pretendard', sans-serif !important;
    font-size: 18.2px !important;
    font-weight: 800 !important;
    color: #111111 !important;
    line-height: 1.32 !important;
    letter-spacing: -0.032em !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    margin-bottom: 3px !important;
  }
  .pmt-pc {
    display: none !important;
  }
  .pmt-m {
    display: inline !important;
  }
  .poster-meta-title {
    display: block !important;
    font-family: 'Pretendard Variable', 'Pretendard', sans-serif !important;
    font-size: 15px !important;
    font-weight: 500 !important;
    color: #626975 !important;
    line-height: 1.36 !important;
    letter-spacing: -0.02em !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    margin-bottom: 0 !important;
  }
  .poster-meta-desc,
  .poster-price-row,
  .poster-price-line {
    display: none !important;
  }

  /* 타로 탭 카드 모바일 대형화 */
  .wh-thc-title {
    font-size: 19px !important;
    font-weight: 800 !important;
  }
  .wh-thc-desc {
    font-size: 15px !important;
    line-height: 1.48 !important;
  }
  .wh-thc-persona {
    font-size: 14px !important;
  }
  .wh-thc-cta {
    font-size: 15px !important;
    font-weight: 800 !important;
  }

  /* 6) [핵심] 모바일 우측 ☰ 어사이드 메뉴 — 청월당급 여백·대형 활자·접힘 아코디언 */
  .side-drawer {
    width: 89% !important;
    max-width: 390px !important;
    border-radius: 26px 0 0 26px !important;
    background: #FFFFFF !important;
    box-shadow: -14px 0 40px rgba(0, 0, 0, 0.16) !important;
    padding-bottom: 56px !important;
  }
  .drawer-top {
    padding: 18px 20px 8px !important;
    border-bottom: none !important;
  }
  .drawer-top-label {
    font-size: 15px !important;
    font-weight: 700 !important;
    color: #8B93A1 !important;
  }
  .drawer-top .icon-btn {
    width: 42px !important;
    height: 42px !important;
  }
  .drawer-top .icon-btn svg {
    width: 28px !important;
    height: 28px !important;
  }
  .side-drawer .mc-avatar,
  .side-drawer .mc-tag,
  .side-drawer .mc-wallet-row,
  .side-drawer .theme-picker-card,
  .side-drawer #drw-kakao-crm-btn,
  .side-drawer .drw-promo-extra {
    display: none !important;
  }
  .side-drawer .member-card {
    margin: 8px 18px 14px !important;
    padding: 22px 20px !important;
    background: #FFFFFF !important;
    border: 1px solid #ECEEF3 !important;
    border-radius: 20px !important;
    box-shadow: 0 8px 26px rgba(15, 23, 42, 0.06) !important;
  }
  .side-drawer .mc-profile-row {
    gap: 10px !important;
  }
  .side-drawer .mc-profile-row > svg {
    width: 22px !important;
    height: 22px !important;
    stroke: #111111 !important;
    stroke-width: 2.2 !important;
  }
  .side-drawer .mc-name {
    font-size: 21px !important;
    font-weight: 800 !important;
    color: #111111 !important;
    letter-spacing: -0.035em !important;
  }
  .side-drawer .mc-birth {
    font-size: 15px !important;
    font-weight: 500 !important;
    color: #6B7280 !important;
    margin-top: 4px !important;
    line-height: 1.4 !important;
  }
  .side-drawer .drawer-action-list {
    padding: 2px 18px 10px !important;
  }
  .side-drawer .drawer-action-btn {
    border: none !important;
    background: transparent !important;
    border-radius: 12px !important;
    padding: 13px 6px !important;
    margin-bottom: 2px !important;
    font-size: 18.5px !important;
    font-weight: 800 !important;
    color: #111111 !important;
  }
  .side-drawer .drawer-action-btn span.left {
    gap: 11px !important;
  }
  .side-drawer .drawer-action-btn svg {
    width: 22px !important;
    height: 22px !important;
  }
  .side-drawer #drw-archive-badge,
  .side-drawer #drw-profile-cnt {
    font-size: 15px !important;
    font-weight: 800 !important;
  }
  .side-drawer .drawer-cats {
    border-top: 1px solid #ECEEF3 !important;
    padding: 8px 22px 28px !important;
  }
  .side-drawer .acc-group {
    border-bottom: 1px solid #F1F3F6 !important;
  }
  .side-drawer .acc-hd {
    padding: 18px 2px !important;
    font-size: 19.5px !important;
    font-weight: 800 !important;
    color: #111111 !important;
    letter-spacing: -0.03em !important;
  }
  .side-drawer .acc-chev {
    font-size: 20px !important;
    color: #6B7280 !important;
    transition: transform 0.2s ease !important;
  }
  .side-drawer .acc-group.open .acc-chev {
    transform: rotate(180deg) !important;
  }
  .side-drawer .acc-body {
    padding: 2px 4px 16px !important;
  }
  .side-drawer .acc-link {
    padding: 12px 8px !important;
    font-size: 16.5px !important;
    font-weight: 600 !important;
    color: #262A33 !important;
    line-height: 1.4 !important;
    border-radius: 10px !important;
  }

  /* 7) 하단 풀와이드 4탭 네비게이션 독 바 (홈 | 오늘운세 | 검색 | 보관함) */
  .floating-dock {
    bottom: 0 !important;
    left: 0 !important;
    right: 0 !important;
    transform: none !important;
    width: 100% !important;
    max-width: none !important;
    height: auto !important;
    min-height: 68px !important;
    border-radius: 22px 22px 0 0 !important;
    background: rgba(255, 255, 255, 0.98) !important;
    border: none !important;
    border-top: 1px solid #EAECEE !important;
    box-shadow: 0 -6px 24px rgba(0, 0, 0, 0.07) !important;
    padding: 9px 10px calc(9px + env(safe-area-inset-bottom, 0px)) !important;
  }
  .floating-dock #dock-saju {
    display: none !important;
  }
  .floating-dock .dock-item {
    color: #5E6470 !important;
    font-size: 13.8px !important;
    font-weight: 700 !important;
    gap: 4px !important;
    padding: 6px 14px !important;
  }
  .floating-dock .dock-item svg {
    width: 25px !important;
    height: 25px !important;
    stroke-width: 2 !important;
  }
  .floating-dock .dock-item.active {
    color: #111315 !important;
    font-weight: 800 !important;
  }

  /* 8) 상품 진입 상담 화면(#counsel-flow-overlay) · 모달 · 보관함 · 본문 전면 대형화 */
  .counsel-flow-overlay .cf-shell,
  .fullpage-modal .fp-card,
  .sheet-overlay .reading-sheet {
    max-width: 100% !important;
  }
  .cf-topbar {
    height: 60px !important;
    padding: 0 16px !important;
  }
  .cf-back-btn {
    width: 40px !important;
    height: 40px !important;
  }
  .cf-skip-btn {
    font-size: 14.5px !important;
    font-weight: 800 !important;
    padding: 7px 14px !important;
  }
  .cf-step-rail {
    gap: 5px !important;
    padding: 0 12px !important;
  }
  .cf-step-node {
    font-size: 12.2px !important;
    font-weight: 700 !important;
    padding: 5px 8px !important;
    white-space: nowrap !important;
  }
  .cf-persona-pill {
    font-size: 14.5px !important;
    font-weight: 800 !important;
    padding: 6px 14px !important;
  }
  .cf-cover-kicker {
    font-size: 16.5px !important;
    font-weight: 700 !important;
    margin-bottom: 6px !important;
    word-break: keep-all !important;
  }
  .cf-cover-title {
    font-size: clamp(41px, 11.4vw, 48px) !important;
    font-weight: 900 !important;
    line-height: 1.12 !important;
  }
  .cf-cover-quote {
    font-size: 16.5px !important;
    line-height: 1.52 !important;
  }
  .cf-cta-luminous {
    font-size: 18.5px !important;
    font-weight: 800 !important;
    padding: 19px 18px !important;
    border-radius: 14px !important;
  }
  .cf-sub-story-link {
    font-size: 15px !important;
    font-weight: 700 !important;
    margin-top: 12px !important;
  }
  .cf-dialogue-line {
    font-size: 20.5px !important;
    line-height: 1.65 !important;
  }
  .cf-tap-hint {
    font-size: 14.5px !important;
  }
  .cf-lbl {
    font-size: 16.5px !important;
    font-weight: 800 !important;
  }
  .cf-radio-group {
    font-size: 15px !important;
  }
  .cf-underline-in {
    font-size: 18px !important;
    padding: 11px 4px !important;
  }
  .cf-gender-btn {
    font-size: 17px !important;
    padding: 15px !important;
  }
  .cf-sit-sentence,
  .cf-sit-select {
    font-size: 16.5px !important;
  }

  .fp-header,
  .sheet-topbar {
    min-height: 58px !important;
    padding: 12px 16px !important;
  }
  .fp-header h3,
  .sheet-topbar h3,
  .modal-hd h3 {
    font-size: 19px !important;
    font-weight: 800 !important;
  }
  .f-lbl {
    font-size: 15px !important;
    font-weight: 700 !important;
  }
  .f-in,
  .f-sel {
    font-size: 17px !important;
    padding: 13px 14px !important;
  }
  .btn-unlock-primary {
    font-size: 18px !important;
    font-weight: 800 !important;
    padding: 17px 16px !important;
  }

  /* 결과지 및 프리뷰 본문 가독성 확대 */
  .ch-prose p,
  .wh-prologue-line,
  .wh-script-prose,
  .wh-open-clue-row p,
  .v9-prose p {
    font-size: 17.5px !important;
    line-height: 1.86 !important;
  }

  /* [v10.31 핵심] 청월당식 모바일 홈 압축 — 세로 2~3단 줄바꿈 대신 전 섹션 '1줄 가로 스와이프(3번째 카드 살짝 노출)'로 세로 길이 60% 단축! */
  .worry-guide-sec {
    display: none !important;
  }
  #catalog-container.is-home-all .wh-clean-home-sec[data-sec-key="core_saju"],
  #catalog-container.is-home-all .wh-clean-home-sec[data-sec-key="boss_saju"],
  #catalog-container.is-home-all .wh-clean-sec-sub,
  .mobile-spotlight-sec .wh-clean-sec-sub {
    display: none !important;
  }
  #catalog-container.is-home-all .wh-clean-home-sec {
    padding: 20px 0 18px !important;
    border-bottom: 6px solid #F4F5F7 !important;
  }
  #catalog-container.is-home-all .wh-clean-home-sec .sec-head {
    padding: 0 14px !important;
    margin-bottom: 12px !important;
  }
  #catalog-container.is-home-all .wh-clean-home-sec .btn-theme-more {
    display: none !important;
  }
  #catalog-container.is-home-all .poster-grid {
    display: flex !important;
    flex-wrap: nowrap !important;
    overflow-x: auto !important;
    gap: 11px !important;
    padding: 0 14px 4px !important;
    scroll-snap-type: x mandatory !important;
    -webkit-overflow-scrolling: touch !important;
    scrollbar-width: none !important;
  }
  #catalog-container.is-home-all .poster-grid::-webkit-scrollbar {
    display: none !important;
  }
  #catalog-container.is-home-all .poster-grid .poster-card {
    flex: 0 0 43.5vw !important;
    max-width: 174px !important;
    scroll-snap-align: start !important;
  }
  .portal-footer .footer-info-grid {
    font-size: 11px !important;
    line-height: 1.48 !important;
  }

}


/* ==========================================================================
   [v10.34] 명식 등록 · 생년월일 입력 시 화면 흔들림/줌인 완전 차단 & 숫자 자판 고정
   ========================================================================== */
html, body {
  overflow-x: hidden !important;
  touch-action: pan-y;
}
#counsel-flow-overlay,
#counsel-flow-overlay .cf-shell,
#counsel-flow-overlay .cf-stage,
#profile-modal,
#profile-modal .modal-card,
#wolha-kakao-crm-modal,
#wolha-kakao-crm-modal .wh-crm-dialog {
  overflow-x: hidden !important;
  touch-action: pan-y !important;
  overscroll-behavior: contain !important;
}
/* 키보드가 올라올 때 margin-top: auto 때문에 입력 카드가 위아래로 튀는 현상 완전 제거 */
#counsel-flow-overlay .cf-shell.blurred .cf-stage {
  justify-content: flex-start !important;
  padding-top: 10px !important;
  padding-bottom: 36px !important;
}
#counsel-flow-overlay .cf-shell.blurred .cf-stage > * {
  margin-top: 0 !important;
  animation: none !important;
  transform: none !important;
}
/* 모바일 브라우저가 input 포커스 시 화면을 강제 확대/이동시키지 않도록 최소 16px 고정 */
.f-in,
.f-sel,
.f-ta,
.cf-underline-in,
.cf-time-select,
#pf-name,
#pf-date,
#pf-gender,
#pf-cal,
#pf-hour,
#cf-in-name,
#cf-in-bdate,
#cf-in-pname,
#cf-in-pbdate {
  font-size: 16px !important;
}



/* ==========================================================================
   [v10.35] '오늘의 운세' & 무료 감정서 칸 나누기(섹션 카드화) 전면 개편
   - AI스러운 이모지 나열 및 평면 줄글 나열 완전 제거
   - 모든 섹션을 뚜렷한 카드 테두리와 10px 회색 구분선(#EEF0F4)으로 분리
   - 단어 중간 줄바꿈(기/운) 원천 차단 (word-break: keep-all)
   ========================================================================== */
#daily-suri-modal .fp-header {
  background: #FFFFFF !important;
  border-bottom: 1px solid #E5E8EE !important;
}
#daily-suri-modal .fp-header h3 {
  font-family: 'Pretendard Variable', 'Pretendard', sans-serif !important;
  font-size: 19px !important;
  font-weight: 800 !important;
  color: #111315 !important;
  letter-spacing: -0.02em !important;
}
#daily-suri-body {
  background: #FCFBF9 !important;
  padding: 0 !important;
}

.wh-daily-fortune-page {
  display: flex;
  flex-direction: column;
  gap: 10px;
  background: #FCFBF9;
  padding-bottom: 32px;
  word-break: keep-all;
  overflow-wrap: break-word;
}

.wh-df-section {
  background: #FFFFFF;
  padding: 22px 18px;
  border-top: 1px solid #E6E9EF;
  border-bottom: 1px solid #E6E9EF;
}
.wh-df-hero-sec {
  border-top: none;
  padding-top: 18px;
}

/* 상단 사용자 명식 바 */
.wh-df-user-bar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 10px;
  padding-bottom: 15px;
  margin-bottom: 16px;
  border-bottom: 1px solid #ECEEF3;
}
.wh-df-date-pill {
  display: inline-block;
  background: #F4EFE6;
  color: #6E5023;
  border: 1px solid #E2D5BE;
  font-size: 12.5px;
  font-weight: 800;
  padding: 4px 10px;
  border-radius: 6px;
  margin-bottom: 6px;
}
.wh-df-user-name strong {
  display: block;
  font-size: 20px;
  font-weight: 800;
  color: #111315;
  letter-spacing: -0.02em;
  line-height: 1.3;
}
.wh-df-user-name span {
  display: block;
  font-size: 13.5px;
  color: #636973;
  margin-top: 3px;
}
.wh-df-change-btn {
  border: 1px solid #D5DAE2;
  background: #F8F9FB;
  color: #262A30;
  border-radius: 8px;
  padding: 8px 12px;
  font-size: 13px;
  font-weight: 700;
  cursor: pointer;
  white-space: nowrap;
  flex-shrink: 0;
}

/* 총운 점수 & 헤드라인 배너 */
.wh-df-score-banner {
  display: flex;
  align-items: center;
  gap: 16px;
  background: linear-gradient(135deg, #1A2130 0%, #242E42 100%);
  color: #FFFFFF;
  border-radius: 14px;
  padding: 18px 16px;
  margin-bottom: 14px;
  border: 1px solid #35425E;
}
.wh-df-score-circle {
  width: 82px;
  height: 82px;
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.08);
  border: 1.5px solid rgba(232, 204, 146, 0.55);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.wh-df-sc-lbl {
  font-size: 11.5px;
  font-weight: 700;
  color: #E5CD9B;
  margin-bottom: 2px;
}
.wh-df-sc-num {
  font-family: 'Noto Serif KR', serif;
  font-size: 28px;
  font-weight: 900;
  color: #FFFDF9;
  line-height: 1.1;
}
.wh-df-sc-num span {
  font-size: 13px;
  font-weight: 700;
  margin-left: 1px;
}
.wh-df-score-copy {
  min-width: 0;
  flex: 1;
}
.wh-df-tengod-chip {
  display: inline-block;
  font-size: 12px;
  font-weight: 700;
  color: #F3DA9E;
  margin-bottom: 5px;
}
.wh-df-main-Copy {
  margin: 0;
  font-family: 'Noto Serif KR', serif;
  font-size: 16.5px;
  font-weight: 700;
  line-height: 1.48;
  color: #FFFFFF;
  word-break: keep-all;
}

/* 오늘의 핵심 3대 지표 표 (칸 나누기) */
.wh-df-key3-table {
  border: 1px solid #DFE3EB;
  border-radius: 12px;
  overflow: hidden;
  background: #FAFBFD;
}
.wh-df-key3-row {
  display: grid;
  grid-template-columns: 128px 1fr;
  align-items: center;
  border-bottom: 1px solid #E6E9F0;
  font-size: 14px;
}
.wh-df-key3-row:last-child {
  border-bottom: none;
}
.wh-df-k3-th {
  padding: 12px 13px;
  font-size: 13px;
  font-weight: 800;
  background: #F2F4F8;
  color: #2B303A;
  border-right: 1px solid #E6E9F0;
}
.wh-df-k3-th.is-good { color: #165B40; background: #FCFBF9; }
.wh-df-k3-th.is-warn { color: #9E2B20; background: #FCFBF9; }
.wh-df-k3-th.is-luck { color: #6B4E1B; background: #FAF5EA; }
.wh-df-k3-td {
  padding: 12px 14px;
  font-size: 14.5px;
  font-weight: 700;
  color: #141619;
  line-height: 1.4;
}

/* 섹션 공통 헤더 */
.wh-df-sec-header {
  margin-bottom: 14px;
  padding-bottom: 12px;
  border-bottom: 1.5px solid #181A1F;
}
.wh-df-sec-kicker {
  display: block;
  font-size: 11.5px;
  font-weight: 800;
  color: #8C312B;
  letter-spacing: 0.03em;
  margin-bottom: 4px;
}
.wh-df-sec-title {
  margin: 0;
  font-size: 19px;
  font-weight: 800;
  color: #111315;
  letter-spacing: -0.02em;
  line-height: 1.35;
  word-break: keep-all;
}
.wh-df-sec-sub {
  margin: 5px 0 0;
  font-size: 13.8px;
  color: #5C626D;
  line-height: 1.55;
}

/* 7대 영역 탭 바 */
.wh-df-tabs-bar {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 6px;
  margin-bottom: 14px;
}
.wh-df-tab-btn {
  border: 1px solid #DCE0E8;
  background: #F7F8FA;
  border-radius: 9px;
  padding: 10px 6px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 5px;
  font-size: 14px;
  font-weight: 700;
  color: #494E57;
  cursor: pointer;
}
.wh-df-tab-btn strong {
  font-size: 13px;
  font-weight: 800;
  color: #8C312B;
}
.wh-df-tab-btn.active {
  background: #181A1F;
  border-color: #181A1F;
  color: #FFFFFF;
}
.wh-df-tab-btn.active strong {
  color: #F6D896;
}

/* 선택된 영역의 3단 구분 카드 */
.wh-df-active-box {
  border: 1.5px solid #D8DCE6;
  border-radius: 14px;
  padding: 18px 16px;
  background: #FCFDFE;
}
.wh-dfa-top {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 12px;
  padding-bottom: 14px;
  margin-bottom: 14px;
  border-bottom: 1px solid #E4E7EE;
}
.wh-dfa-kicker {
  display: block;
  font-size: 12.5px;
  font-weight: 800;
  color: #7A5826;
  margin-bottom: 4px;
}
.wh-dfa-headline {
  margin: 0;
  font-family: 'Noto Serif KR', serif;
  font-size: 17.5px;
  font-weight: 800;
  color: #121417;
  line-height: 1.45;
  word-break: keep-all;
}
.wh-dfa-score {
  background: #FCFBF9;
  border: 1px solid #E8C5BF;
  color: #9E2B20;
  border-radius: 10px;
  padding: 8px 12px;
  font-family: 'Noto Serif KR', serif;
  font-size: 20px;
  font-weight: 900;
  white-space: nowrap;
  flex-shrink: 0;
}
.wh-dfa-score span {
  font-size: 12px;
  margin-left: 1px;
}

.wh-dfa-subcards {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin-bottom: 14px;
}
.wh-dfa-subcard {
  border-radius: 11px;
  padding: 14px 15px;
  border: 1px solid #E2E6EE;
  background: #FFFFFF;
}
.wh-dfa-subcard.is-plus {
  border-left: 1px solid #E5E0D5;
  background: #FFFFFF;
}
.wh-dfa-subcard.is-minus {
  border-left: 1px solid #E5E0D5;
  background: #FFFFFF;
}
.wh-dfa-subcard.is-action {
  border-left: 1px solid #E5E0D5;
  background: #FAF6EE;
  border-color: #E6DAC2;
}
.wh-dfa-sub-hd {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 7px;
}
.wh-dfa-pill {
  display: inline-block;
  font-size: 11.5px;
  font-weight: 800;
  padding: 3px 8px;
  border-radius: 5px;
}
.wh-dfa-pill.plus { background: #FCFBF9; border: 1px solid #E5E0D5; color: #14533B; }
.wh-dfa-pill.minus { background: #FCFBF9; border: 1px solid #E5E0D5; color: #9E2B20; }
.wh-dfa-pill.act { background: #EFE3CA; color: #6B4916; }
.wh-dfa-sub-title {
  font-size: 13.5px;
  font-weight: 800;
  color: #2B3038;
}
.wh-dfa-prose {
  margin: 0;
  font-size: 15.5px;
  line-height: 1.76;
  color: #22262C;
  word-break: keep-all;
}
.wh-dfa-prose.is-bold {
  font-weight: 700;
  color: #15171A;
}

.wh-dfa-upsell-bar {
  background: #1B2432;
  color: #FFFFFF;
  border-radius: 11px;
  padding: 15px 16px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
}
.wh-dfa-up-badge {
  display: inline-block;
  font-size: 11.5px;
  font-weight: 800;
  color: #F3D999;
  margin-bottom: 3px;
}
.wh-dfa-up-txt strong {
  display: block;
  font-size: 15px;
  font-weight: 800;
  color: #FFFFFF;
  line-height: 1.4;
}
.wh-dfa-up-txt p {
  margin: 3px 0 0;
  font-size: 12.8px;
  color: #CBD5E1;
  line-height: 1.45;
}
.wh-dfa-up-btn {
  border: none;
  background: #F3D999;
  color: #171A21;
  border-radius: 8px;
  padding: 11px 14px;
  font-size: 13.5px;
  font-weight: 800;
  cursor: pointer;
  white-space: nowrap;
  flex-shrink: 0;
}

/* [섹션 3] 분야별 요약 카드 스택 (칸 나누기) */
.wh-df-domain-stack {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.wh-df-domain-card {
  border: 1.5px solid #DFE3EC;
  border-radius: 13px;
  padding: 16px 15px;
  background: #FFFFFF;
  box-shadow: 0 2px 8px rgba(15, 23, 42, 0.03);
}
.wh-dfd-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding-bottom: 11px;
  margin-bottom: 11px;
  border-bottom: 1px solid #ECEEF3;
}
.wh-dfd-tag {
  display: inline-block;
  font-size: 11.5px;
  font-weight: 800;
  color: #8C312B;
  margin-bottom: 2px;
}
.wh-dfd-title {
  margin: 0;
  font-size: 17px;
  font-weight: 800;
  color: #141619;
}
.wh-dfd-score-pill {
  background: #F4F6F9;
  border: 1px solid #DCE1EA;
  border-radius: 8px;
  padding: 6px 11px;
  color: #141619;
}
.wh-dfd-score-pill strong {
  font-family: 'Noto Serif KR', serif;
  font-size: 18px;
  font-weight: 900;
  color: #8C312B;
}
.wh-dfd-score-pill span {
  font-size: 12px;
  font-weight: 700;
  margin-left: 1px;
}
.wh-dfd-headline {
  background: #F8F9FB;
  border-radius: 8px;
  padding: 11px 13px;
  font-family: 'Noto Serif KR', serif;
  font-size: 15.5px;
  font-weight: 700;
  color: #181A1F;
  line-height: 1.48;
  margin-bottom: 11px;
}
.wh-dfd-grid {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.wh-dfd-row {
  display: grid;
  grid-template-columns: 78px 1fr;
  align-items: flex-start;
  gap: 10px;
  padding-top: 8px;
  border-top: 1px dashed #E5E8F0;
}
.wh-dfd-row:first-child {
  border-top: none;
  padding-top: 0;
}
.wh-dfd-badge {
  display: inline-block;
  text-align: center;
  font-size: 11.5px;
  font-weight: 800;
  padding: 4px 6px;
  border-radius: 5px;
  margin-top: 2px;
}
.wh-dfd-badge.plus { background: #FCFBF9; border: 1px solid #E5E0D5; color: #165B40; }
.wh-dfd-badge.minus { background: #FCFBF9; border: 1px solid #E5E0D5; color: #9E2B20; }
.wh-dfd-badge.act { background: #F4EBDD; color: #6E4E1E; }
.wh-dfd-row p {
  margin: 0;
  font-size: 14.8px;
  line-height: 1.7;
  color: #272B33;
}

/* [섹션 4] 시간대별 4구간 흐름표 */
.wh-df-time4-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 9px;
  margin-bottom: 14px;
}
@media (max-width: 520px) {
  .wh-df-time4-grid {
    grid-template-columns: 1fr;
  }
}
.wh-df-time4-card {
  border: 1px solid #DCE1EA;
  border-radius: 11px;
  padding: 13px 14px;
  background: #FAFBFD;
}
.wh-dft4-top {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 7px;
  padding-bottom: 7px;
  border-bottom: 1px solid #EAEDF3;
}
.wh-dft4-period {
  font-size: 16px;
  font-weight: 800;
  color: #141619;
  margin-right: 6px;
}
.wh-dft4-hrs {
  font-size: 12.5px;
  color: #68707C;
  font-weight: 600;
}
.wh-dft4-right {
  display: flex;
  align-items: center;
  gap: 6px;
}
.wh-dft4-badge {
  font-size: 11.5px;
  font-weight: 800;
  padding: 3px 8px;
  border-radius: 99px;
}
.wh-dft4-badge.is-good { background: #FCFBF9; border: 1px solid #E5E0D5; color: #14533B; }
.wh-dft4-badge.is-warn { background: #FCFBF9; border: 1px solid #E5E0D5; color: #9E2B20; }
.wh-dft4-badge.is-normal { background: #EEF1F6; color: #49505B; }
.wh-dft4-score {
  font-size: 15px;
  font-weight: 800;
  color: #141619;
}
.wh-dft4-tip {
  margin: 0;
  font-size: 14.2px;
  line-height: 1.62;
  color: #2D323B;
}

.wh-df-wave-box {
  background: #1C2029;
  color: #FAF7F0;
  border-radius: 12px;
  padding: 15px 14px;
}
.wh-df-wave-hd {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 12px;
  color: #CBD5E1;
  margin-bottom: 10px;
}

/* [섹션 5] 행운 요소 4칸 그리드 */
.wh-df-lucky4-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}
.wh-df-lucky4-cell {
  border: 1px solid #DFE3EC;
  background: #FAFBFD;
  border-radius: 11px;
  padding: 14px 13px;
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.wh-dfl-k {
  font-size: 12px;
  font-weight: 800;
  color: #7A5826;
}
.wh-dfl-v {
  font-size: 16.5px;
  font-weight: 800;
  color: #141619;
  line-height: 1.35;
}
.wh-dfl-s {
  font-size: 12px;
  color: #6C7380;
}

/* [섹션 6] 연락 운세 */
.wh-df-card-inner {
  border: 1px solid #DFE3EC;
  border-radius: 12px;
  padding: 16px 15px;
  background: #FAFBFD;
}
.wh-df-sig-inputs {
  display: grid;
  grid-template-columns: 0.95fr 1.25fr 0.8fr;
  gap: 7px;
  margin-bottom: 10px;
}
.wh-df-primary-btn {
  width: 100%;
  border: none;
  background: #181A1F;
  color: #FFFFFF;
  border-radius: 10px;
  padding: 14px;
  font-size: 15px;
  font-weight: 800;
  cursor: pointer;
}
.wh-df-sig-result {
  margin-top: 14px;
  padding-top: 14px;
  border-top: 1px solid #E2E6EE;
}
.wh-df-sig-res-top {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 6px;
  margin-bottom: 8px;
}
.wh-df-sig-date {
  font-size: 12px;
  color: #68707C;
}
.wh-df-sig-head {
  margin: 0 0 6px;
  font-family: 'Noto Serif KR', serif;
  font-size: 16.5px;
  font-weight: 800;
  color: #141619;
}
.wh-df-sig-reason {
  margin: 0 0 11px;
  font-size: 14.5px;
  line-height: 1.68;
  color: #2C313A;
}
.wh-df-sig-tips {
  background: #FFFFFF;
  border: 1px solid #DFE3EC;
  border-radius: 9px;
  padding: 11px 13px;
  margin-bottom: 11px;
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.wh-df-sig-tip-row {
  display: grid;
  grid-template-columns: 98px 1fr;
  gap: 8px;
  font-size: 13.8px;
}
.wh-df-sig-tip-row span {
  font-weight: 800;
  color: #7A5826;
}
.wh-df-sig-tip-row strong {
  font-weight: 600;
  color: #181A1F;
}
.wh-df-sub-cta {
  width: 100%;
  border: none;
  border-radius: 9px;
  padding: 13px;
  background: #8E2B20;
  color: #FFFFFF;
  font-size: 14px;
  font-weight: 800;
  cursor: pointer;
}

/* [섹션 7] 원카드 타로 */
.wh-df-tarot-box {
  background: linear-gradient(180deg, #1B1829 0%, #252038 100%);
  border: 1px solid #3E355B;
  border-radius: 13px;
  padding: 18px 15px;
  color: #FAF6EE;
}
.w-tb-crest {
  font-family: 'Noto Serif KR', serif;
  font-size: 16px;
  font-weight: 900;
  color: #E8CF9B;
  border: 1px solid rgba(232, 207, 155, 0.45);
  border-radius: 6px;
  padding: 3px 9px;
  margin-bottom: 7px;
}
.w-tb-title {
  font-family: 'Noto Serif KR', serif;
  font-size: 14px;
  font-weight: 800;
  color: #FFFFFF;
}
.w-tb-sub {
  font-size: 11.5px;
  color: #C9C0DC;
  margin-top: 4px;
}
.wh-dft-top {
  display: grid;
  grid-template-columns: 92px 1fr;
  gap: 15px;
  align-items: center;
  margin-bottom: 14px;
}
.wh-dft-art {
  width: 92px;
  aspect-ratio: 2 / 3;
  border-radius: 9px;
  overflow: hidden;
  border: 1.5px solid #E5C886;
  background: #120E1F;
}
.wh-dft-art img, .wh-dft-art video {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.wh-dft-roman {
  display: block;
  font-size: 12px;
  font-weight: 700;
  color: #E8CFA0;
  margin-bottom: 4px;
}
.wh-dft-name {
  margin: 0 0 8px;
  font-family: 'Noto Serif KR', serif;
  font-size: 19px;
  font-weight: 800;
  color: #FFFFFF;
}
.wh-dft-kw {
  display: inline-block;
  background: rgba(243, 223, 182, 0.16);
  color: #FCE6B8;
  font-size: 12.5px;
  font-weight: 700;
  padding: 4px 10px;
  border-radius: 6px;
}
.wh-dft-lines {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-bottom: 14px;
}
.wh-dft-line-item {
  background: rgba(12, 9, 22, 0.5);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 9px;
  padding: 11px 13px;
}
.wh-dft-line-item.is-highlight {
  border-color: rgba(243, 223, 182, 0.45);
  background: rgba(243, 223, 182, 0.1);
}
.wh-dft-lbl {
  display: inline-block;
  font-size: 11.5px;
  font-weight: 800;
  color: #F3DA9E;
  margin-bottom: 3px;
}
.wh-dft-line-item p {
  margin: 0;
  font-size: 14.5px;
  line-height: 1.68;
  color: #F3EFFA;
}
.wh-df-tarot-cta {
  width: 100%;
  border: none;
  border-radius: 9px;
  padding: 13px;
  background: #F3DFB6;
  color: #1B162A;
  font-size: 14.5px;
  font-weight: 800;
  cursor: pointer;
}

/* [섹션 8] 출석 도장 버튼 */
.wh-df-stamp-btn {
  width: 100%;
  border: none;
  border-radius: 10px;
  padding: 14px;
  font-size: 15px;
  font-weight: 800;
  cursor: pointer;
  background: #9E2B20;
  color: #FFFFFF;
}
.wh-df-stamp-btn.is-done {
  background: #5E6470;
}

/* [섹션 9] 수호 문장 엽서 */
.wh-df-postcard-wrap {
  background: #FAF6EC;
  border: 1.5px solid #D8C49E;
  border-radius: 13px;
  padding: 16px;
  text-align: center;
}
.wh-df-pc-date {
  font-size: 12px;
  font-weight: 800;
  color: #8E3024;
  margin-bottom: 8px;
}
.wh-df-pc-img {
  background: #EFE7D6;
  padding: 6px;
  border: 1px solid #D3BC93;
  border-radius: 9px;
  margin-bottom: 12px;
}
.wh-df-pc-img img {
  width: 100%;
  aspect-ratio: 16 / 9;
  object-fit: contain;
  background: #F7F1E3;
  border-radius: 5px;
  display: block;
}
.wh-df-pc-who {
  font-size: 13px;
  font-weight: 700;
  color: #7A5B2B;
  margin-bottom: 4px;
}
.wh-df-pc-quote {
  margin: 0 0 10px;
  font-family: 'Noto Serif KR', serif;
  font-size: 16.5px;
  font-weight: 800;
  color: #181512;
  line-height: 1.6;
  white-space: pre-line;
}
.wh-df-pc-meta {
  font-size: 12.8px;
  color: #5A5042;
  border-top: 1px dashed #D8C7A6;
  padding-top: 9px;
  margin-bottom: 12px;
}
.wh-df-pc-btns {
  display: grid;
  grid-template-columns: 1.35fr 1fr;
  gap: 8px;
}
.wh-df-pc-btn-save {
  border: none;
  border-radius: 9px;
  padding: 13px 10px;
  background: #1E4E40;
  color: #FFFFFF;
  font-size: 13.8px;
  font-weight: 800;
  cursor: pointer;
}
.wh-df-pc-btn-copy {
  border: 1px solid #C8B696;
  border-radius: 9px;
  padding: 13px 10px;
  background: #FFFFFF;
  color: #2B251E;
  font-size: 13.8px;
  font-weight: 800;
  cursor: pointer;
}

/* 열람 시트(#reading-sheet-overlay) 내부의 무료 진단·원국표·특화카드가 평면 줄글처럼 뭉개지지 않도록 칸 나누기 복원 */
#reading-sheet-overlay .sheet-scroll {
  background: #FCFBF9 !important;
}
#reading-sheet-overlay .detail-pad {
  padding: 14px 16px !important;
  background: transparent !important;
}
#reading-sheet-overlay .natal-box,
#reading-sheet-overlay .special-viz-card,
#reading-sheet-overlay .folklore-special-card,
#reading-sheet-overlay .free-suri-card {
  background: #FFFFFF !important;
  border: 1px solid #DFE3EC !important;
  border-radius: 14px !important;
  box-shadow: 0 2px 10px rgba(15, 23, 42, 0.04) !important;
  padding: 20px 18px !important;
  margin: 0 !important;
}
#reading-sheet-overlay .fs-box-item {
  background: #FAFBFD !important;
  border: 1px solid #E5E8F0 !important;
  border-radius: 10px !important;
  padding: 13px 14px !important;
  margin-bottom: 9px !important;
}
#reading-sheet-overlay .chapter-article {
  background: #FFFFFF !important;
  padding: 26px 20px !important;
  margin-bottom: 10px !important;
  border-top: 1px solid #E4E7EE !important;
  border-bottom: 1px solid #E4E7EE !important;
}
#reading-sheet-overlay .ch-summary-box {
  background: #FAF7F0 !important;
  border: 1px solid #E5D9C3 !important;
  border-left: 1px solid #E5E0D5 !important;
  border-radius: 9px !important;
  padding: 13px 15px !important;
  margin: 0 0 18px !important;
}
#reading-sheet-overlay .ch-action-box {
  background: #FCFBF9 !important;
  border: 1px solid #E5E0D5 !important;
  border-left: 1px solid #E5E0D5 !important;
  border-radius: 9px !important;
  padding: 14px 15px !important;
  margin-top: 18px !important;
}

/* 무료 명식 진단 카드 (wh-free-diag-sec) */
.wh-free-diag-sec {
  padding: 12px 16px 4px;
}
.wh-fds-card {
  background: #FFFFFF;
  border: 1.5px solid #DCE1EA;
  border-radius: 14px;
  padding: 20px 17px;
  box-shadow: 0 2px 10px rgba(15, 23, 42, 0.04);
}
.wh-fds-head {
  border-bottom: 1px solid #ECEEF3;
  padding-bottom: 14px;
  margin-bottom: 14px;
}
.wh-fds-kicker {
  display: block;
  font-size: 11.5px;
  font-weight: 800;
  color: #8C312B;
  margin-bottom: 4px;
}
.wh-fds-title {
  margin: 0 0 8px;
  font-family: 'Noto Serif KR', serif;
  font-size: 19px;
  font-weight: 800;
  color: #141619;
  line-height: 1.4;
}
.wh-fds-code {
  display: inline-block;
  background: #F3EFE6;
  color: #5E4722;
  font-size: 12.5px;
  font-weight: 700;
  padding: 4px 10px;
  border-radius: 6px;
}
.wh-fds-subbox {
  background: #FAFBFD;
  border: 1px solid #E5E8F0;
  border-radius: 11px;
  padding: 14px;
  margin-bottom: 12px;
}
.wh-fds-sub-hd {
  font-size: 13.5px;
  font-weight: 800;
  color: #181A1F;
  margin-bottom: 10px;
}
.wh-fs-ratio-row {
  display: grid;
  grid-template-columns: 98px 1fr 56px;
  align-items: center;
  gap: 8px;
  margin-bottom: 7px;
  font-size: 13px;
}
.wh-fs-ratio-lbl {
  font-weight: 700;
  color: #1D2026;
}
.wh-fs-yong-tag {
  display: inline-block;
  background: #FCFBF9; border: 1px solid #E5E0D5;
  color: #9E2B20;
  font-size: 10.5px;
  font-weight: 800;
  padding: 1px 5px;
  border-radius: 4px;
}
.wh-fs-ratio-track {
  height: 8px;
  background: #E5E8F0;
  border-radius: 99px;
  overflow: hidden;
}
.wh-fs-ratio-fill {
  height: 100%;
  border-radius: 99px;
}
.wh-fs-ratio-pct {
  text-align: right;
  font-weight: 700;
  color: #49505B;
}
.wh-fds-metric-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
}
.wh-fs-metric-cell {
  background: #FFFFFF;
  border: 1px solid #DFE3EC;
  border-radius: 9px;
  padding: 10px 10px;
}
.wh-fs-metric-top {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 4px;
  margin-bottom: 6px;
}
.wh-fs-metric-top span {
  font-size: 11.5px;
  font-weight: 800;
  color: #3B404A;
  letter-spacing: -0.05em;
  word-break: keep-all;
  white-space: nowrap;
}
.wh-fs-metric-top strong {
  font-family: 'Noto Serif KR', serif;
  font-size: 15px;
  font-weight: 900;
  color: #141619;
  white-space: nowrap;
  flex-shrink: 0;
}
.wh-fs-metric-top small {
  font-size: 10.5px;
  margin-left: 1px;
}
.wh-fs-metric-bar {
  height: 6px;
  background: #E5E8F0;
  border-radius: 99px;
  overflow: hidden;
}
.wh-fs-metric-bar > div {
  height: 100%;
  background: #8C6226;
}
.wh-fds-law-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.wh-fs-law-card {
  background: #FFFFFF;
  border: 1px solid #E2E6EE;
  border-left: 1px solid #E5E0D5;
  border-radius: 8px;
  padding: 11px 13px;
}
.wh-fs-law-num {
  display: block;
  font-size: 11.5px;
  font-weight: 800;
  color: #8C312B;
  margin-bottom: 3px;
}
.wh-fs-law-card p {
  margin: 0;
  font-size: 14.5px;
  line-height: 1.65;
  color: #22262C;
}


.wh-daily-empty-wrap {
  padding: 22px 16px 36px;
}
.wh-daily-empty-card {
  background: #FFFFFF;
  border: 1.5px solid #DCE1EA;
  border-radius: 16px;
  padding: 24px 20px;
  box-shadow: 0 4px 16px rgba(15, 23, 42, 0.05);
  word-break: keep-all;
}
.wh-de-kicker {
  display: inline-block;
  font-size: 12px;
  font-weight: 800;
  color: #8C312B;
  background: #FCFBF9; border: 1px solid #E5E0D5;
  padding: 4px 10px;
  border-radius: 6px;
  margin-bottom: 10px;
}
.wh-de-title {
  margin: 0 0 8px;
  font-family: 'Noto Serif KR', serif;
  font-size: 21px;
  font-weight: 800;
  color: #141619;
  line-height: 1.4;
}
.wh-de-sub {
  margin: 0 0 18px;
  font-size: 14px;
  line-height: 1.62;
  color: #5A606B;
}
.wh-de-form {
  display: flex;
  flex-direction: column;
  gap: 12px;
  border-top: 1px solid #ECEEF3;
  padding-top: 16px;
}
.wh-de-row {
  display: flex;
  flex-direction: column;
  gap: 5px;
}
.wh-de-row-2col {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}
.wh-de-lbl {
  font-size: 13px;
  font-weight: 800;
  color: #2B303A;
}


/* ==========================================================================
   v10.42 — 앱 전역 '손톱 디자인(둥근 박스 + 굵은 좌/상단 색 막대)' 및 '파스텔 배경' 완전 철거
   ========================================================================== */
.p-tile,
.el-목, .el-화, .el-토, .el-금, .el-수, .el-미상 {
  background: #FCFBF9 !important;
  border: 1px solid #DFD8CA !important;
  border-top: 1px solid #DFD8CA !important;
  border-left: 1px solid #DFD8CA !important;
  border-radius: 4px !important;
  box-shadow: none !important;
}
.el-목 { color: #1E4635 !important; }
.el-화 { color: #8C2D22 !important; }
.el-토 { color: #6E4E1B !important; }
.el-금 { color: #363D46 !important; }
.el-수 { color: #1E3752 !important; }
.p-col.me .p-tile:first-of-type {
  border: 1.5px solid #181613 !important;
  background: #FFFFFF !important;
}
.palette-dots {
  display: none !important;
}
.ch-summary-box,
.ch-action-box,
.fsc-whisper,
.wh-dfa-subcard,
.wh-fs-law-card,
.v9-easy-lead,
.v9-easy-caution,
.v9-qa-headline,
.v9-hanji-prose-frame,
.v9-ch-hero-banner {
  border-left-width: 1px !important;
  border-top-width: 1px !important;
}
.v9-ch-hero-banner {
  border-color: #2A3040 !important;
}
