/* 평생사주 무료 결과의 서사적 흐름 (에세이·멘토 코멘터리 룩)
   카톡 말풍선/채팅방 메타포를 완전히 걷어내고, 주월의 단아한 에세이와 사주 원국이 하나의 호흡으로 어우러지게 구성 */
.rt-story { position: relative; margin: 12px 0 28px; text-align: left; }

/* 각 막(씬) 컨테이너 */
.rt-scene { display: grid; gap: 18px; margin: 0 0 36px; }

/* 주월의 에세이 해설 블록: 카톡 채팅 UI 탈피 */
.rt-talk {
  display: flex;
  flex-direction: column;
  gap: 10px;
  position: relative;
  padding: 18px 20px 20px;
  background: #fdfaf4;
  border: 1px solid #ede3d1;
  border-left: 3.5px solid var(--seal, #a3392b);
  border-radius: 16px;
  box-shadow: 0 3px 12px rgba(78, 62, 43, 0.04);
}

/* 상단 주월 멘토 헤더 (아바타 + 네임태그 일체형) */
.rt-talk::before {
  display: none;
}
.rt-avatar {
  display: flex;
  align-items: center;
  gap: 8px;
  width: auto;
  height: auto;
  border-radius: 0;
  background: none;
  box-shadow: none;
}
.rt-avatar img {
  display: inline-block;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  object-fit: cover;
  border: 1px solid #dcd1be;
  box-shadow: 0 1px 3px rgba(0,0,0,0.06);
}
.rt-avatar::after {
  content: "주월의 풀이";
  font: 700 12.5px/1 var(--sans);
  color: var(--seal, #a3392b);
  letter-spacing: .04em;
}

.rt-col {
  display: flex;
  flex-direction: column;
  gap: 10px;
  min-width: 0;
  max-width: 100%;
}
.rt-name { display: none; } /* .rt-avatar::after 로 세련되게 대체 */

/* 본문 문장: 말풍선 꼬리표/비대칭 테두리 완전 제거, 단아한 본문 서체 */
.rt-bubble {
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: none;
  color: #2b251f;
  font: 500 15px/1.72 var(--sans);
  letter-spacing: -.02em;
  word-break: keep-all;
  text-wrap: pretty;
  overflow-wrap: anywhere;
}
.rt-bubble + .rt-bubble {
  margin-top: 4px;
}

/* 사용자 고민 인용구 */
.rt-quote {
  margin: 0 0 4px;
  padding: 10px 14px;
  border-left: 2px solid #bfa47e;
  border-radius: 6px;
  background: #f5eedf;
  color: #5c4b3a;
  font: italic 500 14.5px/1.7 var(--serif, Georgia, serif);
}

/* 등장 애니메이션 */
.rt-story:not(.rt-static) .rt-talk:not(.is-in) { opacity: 0; transform: translateY(8px); }
.rt-talk.is-in { opacity: 1; transform: none; transition: opacity .4s ease, transform .4s ease; }
.rt-story:not(.rt-static) .rt-photo:not(.is-in),
.rt-story:not(.rt-static) .rt-attach:not(.is-in),
.rt-story:not(.rt-static) .rt-cta:not(.is-in) { opacity: 0; transform: translateY(10px); }
.rt-photo.is-in, .rt-attach.is-in, .rt-cta.is-in { opacity: 1; transform: none; transition: opacity .45s ease, transform .45s ease; }

/* 주월 삽화 사진 */
.rt-photo {
  position: relative;
  margin: 0;
  overflow: hidden;
  border-radius: 14px;
  background: #efe7d8;
  border: 1px solid #e5dccb;
  box-shadow: 0 4px 16px rgba(45, 37, 28, 0.08);
}
.rt-photo img { display: block; width: 100%; aspect-ratio: 16 / 10; height: auto; object-fit: cover; }
.rt-photo-caption {
  position: absolute;
  left: 12px;
  right: 12px;
  bottom: 12px;
  padding: 8px 14px;
  border-radius: 8px;
  background: rgba(255, 253, 247, 0.95);
  backdrop-filter: blur(4px);
  color: #4a3a2c;
  font: 600 13px/1.45 var(--sans);
  box-shadow: 0 2px 8px rgba(0,0,0,0.06);
}

/* 사주표·차트 첨부 섹션: 두꺼운 테두리 박스 걷어내고 서사 흐름으로 자연스럽게 결합 */
.rt-attach {
  position: relative;
  margin: 4px 0 0;
  padding: 16px 14px 18px;
  border: 1px solid #ebdcc5;
  border-radius: 14px;
  background: #fffdf9;
  box-shadow: 0 2px 12px rgba(60, 48, 35, 0.04);
}
.rt-attach-label {
  display: flex;
  align-items: center;
  gap: 6px;
  margin: 0 0 12px 2px;
  color: #7b6f5f;
  font: 700 12px/1.2 var(--sans);
  letter-spacing: .06em;
  text-transform: uppercase;
}
.rt-attach-label::before {
  content: "";
  display: inline-block;
  width: 6px;
  height: 6px;
  border-radius: 1px;
  background: var(--seal, #a3392b);
}

.rt-attach .ov-section { margin: 0; padding: 0; border: 0; border-radius: 0; background: none; box-shadow: none; }
.rt-attach .ov-title { display: none; }
.rt-attach .ov-art { display: none; }
.rt-attach .premium-decade-rows { display: none; }

/* 과거 시간의 결 타임라인 */
.rt-past { padding: 4px 2px; }
.rt-past-track { display: grid; gap: 0; margin: 4px 0 10px; padding: 0; list-style: none; }
.rt-past-item { position: relative; display: grid; grid-template-columns: 20px 1fr auto; gap: 10px; align-items: center; padding: 10px 6px; font: 500 14px/1.4 var(--sans); border-bottom: 1px solid #f2ecdf; }
.rt-past-item:last-child { border-bottom: 0; }
.rt-past-item + .rt-past-item::before { content: ""; position: absolute; left: 10px; top: -14px; height: 24px; width: 1.5px; background: #e3dccf; }
.rt-past-dot { width: 10px; height: 10px; margin-left: 1px; border-radius: 50%; background: #cfc6b5; }
.rt-past-item b { font-weight: 700; color: #332b24; }
.rt-past-item span { color: #7b6f5f; font-size: 13px; }
.rt-past-item.is-hard .rt-past-dot { background: #a44740; }
.rt-past-item.is-good .rt-past-dot { background: #4a775b; }
.rt-past-item.is-focus { background: rgba(164, 71, 64, 0.05); border-radius: 8px; }
.rt-past-item.is-now .rt-past-dot { background: var(--seal, #a3392b); box-shadow: 0 0 0 3px rgba(163, 57, 43, 0.16); }
.rt-past-note { margin: 6px 4px 0; color: #8a7e6f; font: 400 12.5px/1.55 var(--sans); }

/* 하단 CTA 섹션 */
.rt-cta { display: grid; gap: 12px; justify-items: center; margin-top: 14px; }
.rt-cta-main, .rt-cta-sub {
  display: flex;
  align-items: center;
  justify-content: center;
  width: min(100%, 320px);
  min-height: 52px;
  padding: 0 20px;
  box-sizing: border-box;
  border-radius: 12px;
  font: 700 15px/1.3 var(--sans);
  text-align: center;
  text-decoration: none;
  cursor: pointer;
  transition: transform .15s ease, box-shadow .15s ease;
}
.rt-cta-main {
  background: var(--seal, #a3392b);
  color: #fffaf0;
  border: 0;
  box-shadow: 0 4px 14px rgba(163, 57, 43, 0.25);
}
.rt-cta-main:hover {
  transform: translateY(-1px);
  box-shadow: 0 6px 18px rgba(163, 57, 43, 0.32);
}
.rt-cta-sub {
  background: #fffdf9;
  color: #4a3c30;
  border: 1px solid #d4c8b2;
}

/* 추가 정보 접힘 영역 */
.rt-more { margin: 10px 0 24px; border: 1px solid #e3dccf; border-radius: 14px; background: #fffdf8; }
.rt-more > summary { display: grid; gap: 4px; padding: 15px 18px; cursor: pointer; list-style: none; }
.rt-more > summary::-webkit-details-marker { display: none; }
.rt-more > summary b { font: 700 15px/1.3 var(--sans); color: #332b24; }
.rt-more > summary span { color: #7b6f5f; font: 400 12px/1.4 var(--sans); }
.rt-more[open] > summary { border-bottom: 1px solid #e3dccf; }
.rt-more > :not(summary) { margin-inline: 14px; }

@media (prefers-reduced-motion: reduce) {
  .rt-talk, .rt-photo, .rt-attach, .rt-cta, .rt-progress i { transition: none !important; }
}


/* 대운 풀이 그림: 타고난 글자 + 10년마다 바뀌는 운 = 지금의 마음 */
.rt-equation { display: grid; grid-template-columns: 1fr auto 1fr auto 1fr; gap: 6px; align-items: center; margin: 2px 0 4px; }
.rt-eq-part { display: grid; gap: 4px; justify-items: center; padding: 12px 6px; border-radius: 14px; text-align: center; word-break: keep-all; }
.rt-eq-part b { font: 800 14px/1.35 var(--sans); letter-spacing: -.02em; }
.rt-eq-part span { color: var(--report-meta, #7b6f5f); font: 500 12px/1.4 var(--sans); }
.rt-eq-part.is-born { background: #efe7d8; }
.rt-eq-part.is-luck { background: #e6ecf3; }
.rt-eq-part.is-now { background: color-mix(in srgb, #a44740 10%, #fff); }
.rt-eq-op { color: var(--report-meta, #7b6f5f); font: 700 18px/1 var(--sans); font-style: normal; }
/* 겹친 이유 정리 */
.rt-chain { display: grid; gap: 10px; margin: 2px 0 2px; padding: 0; list-style: none; }
.rt-chain-item { display: grid; grid-template-columns: 26px 1fr; gap: 10px; align-items: start; }
.rt-chain-no { display: grid; place-items: center; width: 26px; height: 26px; border-radius: 50%; background: var(--accent, #8a2a24); color: #fff; font: 800 13px/1 var(--sans); font-style: normal; }
.rt-chain-copy { display: grid; gap: 2px; word-break: keep-all; }
.rt-chain-copy b { font: 800 14px/1.4 var(--sans); }
.rt-chain-copy em { color: #5b4a3a; font: 500 14px/1.55 var(--sans); font-style: normal; }

/* 얼굴 아바타: 장면 사진에서 얼굴만 잘라 쓴다 */
.rt-avatar { position: relative; }
.rt-avatar img.rt-avatar-scene { position: absolute; max-width: none; height: auto; }
/* 장 표지 */
.rt-chapter { display: grid; gap: 4px; justify-items: center; margin: 4px 0 2px; padding: 18px 16px; border-radius: 16px; background: linear-gradient(135deg, #55312d, #7d4b3e); color: #fff8e9; text-align: center; box-shadow: 0 6px 20px rgba(58,32,28,.22); }
.rt-chapter-no { letter-spacing: .24em; font: 700 11px/1 var(--sans); color: #f2d9a6; }
.rt-chapter b { font: 800 20px/1.35 var(--serif, 'Noto Serif KR', Georgia, serif); letter-spacing: -.02em; }
.rt-chapter span { font: 500 13.5px/1.5 var(--sans); opacity: .9; word-break: keep-all; }
.rt-story:not(.rt-static) .rt-chapter:not(.is-in) { opacity: 0; transform: scale(.97); }
.rt-chapter.is-in { opacity: 1; transform: none; transition: opacity .5s ease, transform .5s ease; }
/* 빈칸 문장 */
.rt-blank { margin: 2px 0 0; padding: 12px 15px; border: 1px dashed #c9bfa8; border-radius: 6px 18px 18px 18px; background: #fffaf0; color: #5b4a3a; font: 600 15px/1.65 var(--sans); word-break: keep-all; }
/* 이어서 풀리는 질문 */
.rt-lock { display: grid; gap: 8px; padding: 14px 16px; border: 1px solid #e0d4bb; border-radius: 16px; background: #fffdf7; color: inherit; text-decoration: none; }
.rt-lock-label { color: #8a6941; font: 800 12px/1.2 var(--sans); letter-spacing: .04em; }
.rt-lock-list { display: grid; gap: 6px; margin: 0; padding: 0; list-style: none; }
.rt-lock-list li { position: relative; padding-left: 20px; font: 600 14px/1.5 var(--sans); color: #4a3a2c; word-break: keep-all; }
.rt-lock-list li::before { content: ""; position: absolute; left: 2px; top: .62em; width: 6px; height: 6px; border-radius: 1px; background: #a3392b; }
.rt-lock-go { display: flex; align-items: center; justify-content: center; min-height: 44px; margin-top: 4px; padding: 10px 14px; border-radius: 12px; background: var(--accent, #8a2a24); color: #fff; font: 800 14px/1.3 var(--sans); text-align: center; }
.rt-lock.is-final { gap: 10px; padding: 16px; border-color: #c9a36a; background: #fffaf0; box-shadow: 0 6px 18px rgba(138, 42, 36, .12); }
.rt-lock.is-final .rt-lock-go { min-height: 52px; font-size: 15.5px; box-shadow: 0 4px 12px rgba(138, 42, 36, .28); }
.rt-story:not(.rt-static) .rt-lock:not(.is-in) { opacity: 0; transform: translateY(10px); }
.rt-lock.is-in { opacity: 1; transform: none; transition: opacity .45s ease, transform .45s ease; }
/* 앞으로 12개월 */
.rt-months { display: grid; gap: 10px; }
.rt-months-head { margin: 0; font: 500 15px/1.6 var(--sans); word-break: keep-all; }
.rt-months-head b { font: 800 22px/1 var(--sans); color: var(--accent, #8a2a24); }
.rt-months-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.rt-month-chip { padding: 8px 14px; border-radius: 999px; background: #efe7d8; color: #5b4a3a; font: 700 14px/1 var(--sans); user-select: none; }
.rt-month-chip.is-open { background: var(--accent, #8a2a24); color: #fff; }
.rt-months-note { margin: 0; color: #5b4a3a; font: 500 14px/1.6 var(--sans); }
.rt-months-foot { color: var(--report-meta, #7b6f5f); font: 400 12px/1.5 var(--sans); }

/* 얼굴 동그라미: 장면 사진에서 얼굴만 잘라 넣는다(아바타 줄의 28px 원) */
.rt-avatar .rt-face { position: relative; display: inline-block; flex: 0 0 28px; width: 28px; height: 28px; overflow: hidden; border-radius: 50%; border: 1px solid #dcd1be; background: #efe7d8; box-shadow: 0 1px 3px rgba(0,0,0,.06); }
.rt-avatar .rt-face img { position: absolute; display: block; max-width: none; height: auto; border: 0; border-radius: 0; box-shadow: none; }
.rt-avatar .rt-face img.rt-face-plain { position: static; width: 100%; height: 100%; object-fit: cover; }

/* 가림 막대는 칸 안에서 글자 높이에 맞춘다 */
.rt-blank .ov-lock { margin: 0 4px; vertical-align: -3px; }
.rt-month-chip .ov-lock { margin: 0 2px 0 0; vertical-align: -2px; }

/* 주월 얼굴: "주월의 풀이" 글자는 걷고, 카드 왼쪽 위 모서리에 큰 얼굴을 걸쳐 둔다 */
.rt-avatar::after { content: none; }
.rt-talk { padding-top: 40px; margin-top: 22px; }
.rt-avatar { position: absolute; top: -26px; left: 14px; z-index: 2; width: auto; height: auto; }
.rt-avatar .rt-face { flex: 0 0 64px; width: 64px; height: 64px; border: 3px solid #fff; box-shadow: 0 3px 12px rgba(58,32,28,.22); }
.rt-scene > .rt-talk:first-child { margin-top: 26px; }

/* 한 문장 정리 카드 */
.rt-oneline { display: grid; gap: 8px; padding: 18px 18px 20px; border: 1px solid #e0d4bb; border-radius: 16px; background: linear-gradient(160deg, #fffdf7, #f6efe0); text-align: center; box-shadow: 0 4px 16px rgba(78,62,43,.08); }
.rt-oneline small { color: #8a6941; font: 800 12px/1 var(--sans); letter-spacing: .08em; }
.rt-oneline b { font: 800 18.5px/1.55 var(--serif, 'Noto Serif KR', Georgia, serif); letter-spacing: -.02em; word-break: keep-all; color: #3a2c20; }

.rt-month-field { margin-left: 6px; padding-left: 8px; border-left: 1px solid rgba(91,74,58,.25); font-style: normal; font-weight: 600; font-size: 12.5px; opacity: .9; }
.rt-month-chip.is-open .rt-month-field { border-left-color: rgba(255,255,255,.4); }

/* 본캐 판정 미리보기 */
.rt-bonkae { display: grid; gap: 8px; padding: 14px 16px 12px; border: 1px solid #e0d4bb; border-radius: 16px; background: linear-gradient(160deg, #fffdf7, #f7efdf); }
.rt-bonkae small { color: #8a6941; font: 800 12px/1 var(--sans); letter-spacing: .08em; }
.rt-bonkae p { display: grid; grid-template-columns: 64px 1fr; gap: 8px; margin: 0; font: 500 14px/1.55 var(--sans); word-break: keep-all; }
.rt-bonkae p b { color: #7b6f5f; font-weight: 700; }
.rt-bonkae p span { color: #3a2c20; font-weight: 700; }
.rt-bonkae em { color: var(--report-meta, #7b6f5f); font: 400 12px/1.5 var(--sans); font-style: normal; }
.rt-story:not(.rt-static) .rt-bonkae:not(.is-in) { opacity: 0; transform: translateY(10px); }
.rt-bonkae.is-in { opacity: 1; transform: none; transition: opacity .45s ease, transform .45s ease; }

/* 본캐 판정 미리보기: 글 세 줄 옆에 완성될 카드를 줄여 보여 준다. 카드는 280px 틀에서 그린 뒤 통째로 줄인다. */
.rt-bonkae { grid-template-columns: minmax(0, 1fr) 112px; align-items: center; column-gap: 14px; }
.rt-bonkae > small, .rt-bonkae > em { grid-column: 1 / -1; }
.rt-bonkae-body { display: grid; gap: 8px; min-width: 0; }
.rt-bonkae-peek { display: grid; gap: 6px; justify-items: center; width: 112px; padding: 0; border: 0; background: none; cursor: zoom-in; -webkit-tap-highlight-color: transparent; }
.rt-bonkae-peek small { color: var(--report-meta, #7b6f5f); font: 600 11px/1.2 var(--sans); }
.rt-bonkae-clip { position: relative; display: block; width: 112px; height: 200px; overflow: hidden; border-radius: 6px; box-shadow: 0 8px 18px rgba(59,40,23,.22); }
.rt-bonkae-frame { position: absolute; left: 0; top: 0; width: 280px; margin: 0; transform: scale(.4); transform-origin: 0 0; pointer-events: none; }
.rt-bonkae-frame::before { display: none; }
.rt-bonkae-frame .bc-card { box-shadow: none; }
.rt-bonkae p { grid-template-columns: 58px 1fr; }

/* 골든 타임 슬롯(앞으로 12개월 + 크게 달라지는 시기) */
.rt-golden-list { display: grid; gap: 12px; }
.rt-golden { display: grid; gap: 8px; padding: 15px 15px 14px; border: 1px solid #e0d4bb; border-radius: 16px; background: #fffdf8; box-shadow: 0 2px 8px rgba(78,62,43,.04); }
.rt-golden-tag { color: #8a6941; font: 800 11.5px/1 var(--sans); letter-spacing: .06em; }
.rt-golden-title { font: 800 17px/1.4 var(--serif, 'Noto Serif KR', Georgia, serif); letter-spacing: -.02em; word-break: keep-all; }
.rt-golden-hint { margin: 0; color: #5b4a3a; font: 500 14px/1.6 var(--sans); letter-spacing: -.015em; word-break: keep-all; }
.rt-cal { display: grid; grid-template-columns: repeat(4, 1fr); gap: 6px; margin-top: 2px; }
.rt-cal.is-years { grid-template-columns: repeat(3, 1fr); }
.rt-cal-cell { display: grid; gap: 2px; justify-items: center; padding: 8px 4px 9px; border: 1px solid #ece3d1; border-radius: 10px; background: #f8f3e8; color: #9a8e7c; text-align: center; }
.rt-cal-cell small { font: 600 10.5px/1 var(--sans); }
.rt-cal-cell b { font: 700 13px/1.2 var(--sans); }
.rt-cal-cell i { margin-top: 3px; padding: 2px 8px; border-radius: 999px; background: var(--seal, #a3392b); color: #fff; font: 700 10.5px/1.4 var(--sans); font-style: normal; }
.rt-cal-cell.is-hit { border-color: var(--seal, #a3392b); background: color-mix(in srgb, var(--seal, #a3392b) 8%, #fff); color: #3a2c20; }
.rt-golden-next { margin: 2px 0 0; color: #5b4a3a; font: 500 13.5px/1.7 var(--sans); word-break: keep-all; }
.rt-golden-next .ov-lock { margin: 0 3px; vertical-align: -3px; }
/* 채팅 상담 안내 */
.rt-chat-chips { margin-top: 2px; }
.rt-chat-q { text-align: left; min-height: 44px; height: auto; padding: 10px 16px; line-height: 1.4; }
.rt-chat-end { display: grid; gap: 12px; justify-items: center; margin: 22px 0 8px; padding: 22px 18px 20px; border-radius: 16px; background: linear-gradient(140deg, #55312d, #7d4b3e); color: #fff8e9; text-align: center; box-shadow: 0 8px 24px rgba(58,32,28,.25); }
.rt-chat-end .rt-avatar.rt-chat-end-face { position: static; margin: 0; }
.rt-chat-end .rt-avatar.rt-chat-end-face::after { content: none; }
.rt-chat-end .rt-avatar .rt-face { width: 72px; height: 72px; flex-basis: 72px; border-color: rgba(255,255,255,.85); }
.rt-chat-end-copy { display: grid; gap: 6px; }
.rt-chat-end-copy b { font: 800 19px/1.4 var(--serif, 'Noto Serif KR', Georgia, serif); letter-spacing: -.025em; word-break: keep-all; }
.rt-chat-end-copy span { font: 500 13.5px/1.6 var(--sans); opacity: .92; word-break: keep-all; }
.rt-chat-end .rt-cta-main { background: #fff8e9; color: #55312d; }

.rt-cal-cell .ov-lock { margin: 0 1px; vertical-align: -2px; }

/* SD 주월 해설: 편집기에서 만든 "SD + 빈 말풍선" 그림 위에 짧은 글을 코드로 얹는다. 오른쪽 판은 그림만 좌우로 뒤집는다. */
.rt-talk.rt-sd2 { display: block; padding: 0; margin: 10px 0; background: none; border: 0; border-radius: 0; box-shadow: none; }
.rt-scene > .rt-talk.rt-sd2:first-child { margin-top: 10px; }
.rt-sd2-fig { position: relative; width: 100%; container-type: inline-size; }
.rt-sd2-fig img { display: block; width: 100%; height: 100%; }
.rt-sd2-fig img.is-flipped { transform: scaleX(-1); }
.rt-sd2-text { position: absolute; display: flex; flex-direction: column; justify-content: center; align-items: center; gap: .1em; text-align: center; word-break: keep-all; color: #2b251f; font: 700 clamp(12px, 3.9cqw, 17px)/1.5 var(--sans); }
.rt-sd2-text .rt-bubble { margin: 0; font: inherit; line-height: inherit; text-align: center; text-wrap: balance; }
.rt-note { margin: 8px 4px 0; padding: 0 0 0 12px; border-left: 2px solid #d9c9aa; color: #4a4038; font: 500 14.5px/1.8 var(--sans); word-break: keep-all; }
/* 그림이 없거나 글이 길 때: 글 상자로만 보여 준다. */
.rt-sd2-plain { padding: 14px 16px; background: #fffdf9; border: 1.5px solid #4a4038; border-radius: 18px; }

/* 인쇄: 스크롤해야 나타나는 연출(opacity 0)과 배경 생략 때문에 아직 보지 않은 뒤쪽이 텅 비어 나오던 문제를 막는다. */
@media print {
  *:has(> .rt-story), *:has(> .rt-story) * { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  .rt-story .rt-talk, .rt-story .rt-photo, .rt-story .rt-attach, .rt-story .rt-cta, .rt-story .rt-chapter, .rt-story .rt-lock, .rt-story .rt-bonkae,
  .rt-story .rt-bubble, .rt-story .rt-quote { opacity: 1 !important; transform: none !important; transition: none !important; animation: none !important; }
  #ov-floats, .ov-float-cta { display: none !important; }
  .rt-talk, .rt-chapter, .rt-lock, .rt-attach, .pg-cut { break-inside: avoid; }
}

/* 2부 골든 타임: 첫 칸이 이용자의 고민, 나머지는 보조라 접어서 작게 보인다. */
.rt-golden.is-sub { padding-top: 10px; padding-bottom: 10px; opacity: .92; }
.rt-golden.is-sub .rt-golden-hint, .rt-golden.is-sub .rt-cal { display: none; }
/* 펼쳐 보는 칸(명식 표 등) */
.rt-fold { border: 1px solid #e3d9c4; border-radius: 14px; background: #fffdf9; }
.rt-fold > summary { padding: 13px 16px; cursor: pointer; color: #5c4b3a; font: 700 13.5px/1.4 var(--sans); list-style: none; }
.rt-fold > summary::-webkit-details-marker { display: none; }
.rt-fold > summary::after { content: ' ▾'; color: #a3392b; }
.rt-fold[open] > summary::after { content: ' ▴'; }
.rt-fold > :not(summary) { margin: 0; border-top: 1px solid #efe6d3; border-radius: 0 0 14px 14px; }
@media print { .rt-fold:not([open]) > :not(summary) { display: block; } }


/* 마지막 CTA: 버튼 위에 주월의 한마디 */
.rt-cta-row { display: grid; gap: 8px; }
.rt-cta-row + .rt-cta-row { margin-top: 14px; }
.rt-cta-line { display: grid; gap: 6px; justify-items: center; margin: 0 auto; max-width: 17em; color: #2f241a; font: 800 16.5px/1.55 var(--sans); letter-spacing: -.025em; text-align: center; word-break: keep-all; }
.rt-cta-line::before { content: "다음 이야기"; color: #a3392b; font: 800 11.5px/1 var(--sans); letter-spacing: .12em; }

/* SD+말풍선 한 덩이는 가운데가 아니라 왼쪽 또는 오른쪽으로 붙인다(해설마다 번갈아). */
.rt-sd2-fig { width: 82%; }
.rt-sd2-left .rt-sd2-fig { margin-right: auto; }
.rt-sd2-right .rt-sd2-fig { margin-left: auto; }
.rt-sd2-snow .rt-sd2-fig { width: 100%; }

/* 남긴 고민 인용과 그 안내 문장은 가운데 정렬 */
.rt-quote { text-align: center; border-left: 0; border-top: 2px solid #bfa47e; border-bottom: 2px solid #bfa47e; border-radius: 0; background: #f8f1e1; }
.rt-note-center { text-align: center; border-left: 0; padding-left: 0; margin: 4px 0 0; }

/* 재회사주: 이어서 풀 여섯 이야기(예전 랜딩의 질문 미리보기) */
.rt-chapters { display: grid; gap: 8px; }
.rt-chapter-card { border: 1px solid #e3d6b8; border-radius: 12px; background: #fffdf9; }
.rt-chapter-card > summary { display: flex; gap: 10px; align-items: baseline; padding: 12px 14px; cursor: pointer; list-style: none; }
.rt-chapter-card > summary::-webkit-details-marker { display: none; }
.rt-chapter-card > summary small { color: #a3392b; font: 800 12px/1 var(--sans); }
.rt-chapter-card > summary b { font: 700 15px/1.5 var(--serif, Georgia, serif); }
.rt-chapter-body { padding: 0 14px 14px; }
.rt-chapter-body ul { margin: 0 0 10px; padding-left: 18px; color: #4a4038; font: 500 14px/1.7 var(--sans); }
.rt-chapter-quote { margin: 0; padding: 10px 12px; border-left: 3px solid #bfa47e; background: #f8f1e1; color: #5c4b3a; font: italic 500 14px/1.7 var(--serif, Georgia, serif); }

/* 연인궁합 무료 결과: 이야기 안의 입력 장면과 일곱 질문 */
.compat-form { display: grid; gap: 12px; padding: 14px; border: 1px solid #e3d6b8; border-radius: 12px; background: #fffdf9; }
.compat-form label { display: grid; gap: 6px; color: #4a4038; font: 600 14px/1.4 var(--sans); }
.compat-form select, .compat-form input[type=number] { min-height: 44px; padding: 0 12px; border: 1px solid #d9ccb0; border-radius: 8px; background: #fff; font: 500 15px/1 var(--sans); }
.compat-form .compatibility-intimacy-choice { display: flex; margin: 0; }
.compat-cta-line { margin: 22px 0 10px; text-align: center; color: #5c4b3a; font: 600 14.5px/1.6 var(--serif, Georgia, serif); }
.rt-chapter-flat .rt-chapter-head { display: flex; gap: 10px; align-items: baseline; padding: 12px 14px; }
.rt-chapter-flat small { color: #a3392b; font: 800 12px/1 var(--sans); }
.rt-chapter-flat b { font: 700 15px/1.5 var(--serif, Georgia, serif); }
.compat-form input[type=checkbox] { width: 20px; min-height: 20px; height: 20px; margin: 2px 0 0; padding: 0; flex: 0 0 auto; }
.compat-form .compatibility-intimacy-choice span { font: 500 14px/1.5 var(--sans); }
.compat-free .rt-story .compatibility-preview-scores { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin: 0; }
.compat-free .rt-story .compatibility-preview-scores article { padding: 12px; }
.compat-free .rt-story .compatibility-preview-scores p { display: none; }

/* 평생사주 카드: 판정(제목), 설명(lead), 근거(붙인 표·그래프), 다음 질문(next) 순서 */
.rt-card { display: grid; gap: 12px; margin: 22px 0; padding: 22px 18px 20px; border: 1px solid #e0d4bb; border-radius: 16px; background: linear-gradient(160deg, #fffdf8, #f7f0e1); box-shadow: 0 4px 18px rgba(78,62,43,.07); }
.rt-card-tag { color: #8a6941; font: 800 12px/1 var(--sans); letter-spacing: .08em; }
.rt-card-title { margin: 0; color: #2f241a; font: 800 20px/1.4 var(--serif, 'Noto Serif KR', Georgia, serif); letter-spacing: -.025em; word-break: keep-all; }
.rt-card-lead { margin: 0; color: #4a4038; font: 500 15px/1.75 var(--sans); letter-spacing: -.015em; word-break: keep-all; }
.rt-card-points { display: grid; gap: 6px; margin: 0; padding: 0; list-style: none; }
.rt-card-points li { padding: 10px 12px; border-radius: 10px; background: #f3ead8; color: #3a2c20; font: 600 14px/1.6 var(--sans); word-break: keep-all; }
.rt-card-verdict { margin: 0; padding: 14px; border-radius: 12px; background: #f3ead8; color: #3a2c20; font: 800 17px/1.7 var(--sans); text-align: center; word-break: keep-all; }
.rt-card-next { margin: 4px 0 0; padding-top: 12px; border-top: 1px dashed #d9c9aa; color: #7a6548; font: 600 13.5px/1.7 var(--sans); word-break: keep-all; }
.rt-card .rt-attach, .rt-card .rt-fold, .rt-card .rt-quote { margin: 0; }
/* 카드 안에 붙인 표·그래프는 바깥 테두리를 한 번 더 두르지 않는다(좁은 화면에서 안쪽 칸이 눌리지 않게). */
.rt-card .rt-attach { padding: 0; border: 0; background: none; box-shadow: none; }
.rt-card .rt-attach-label { display: none; }

.rt-area-rows { display: grid; gap: 0; }
.rt-area-row { display: grid; gap: 6px; padding: 14px 0; border-top: 1px solid #e6dac3; }
.rt-area-row:first-child { padding-top: 0; border-top: 0; }
.rt-area-name { color: #8a6941; font: 800 12px/1 var(--sans); letter-spacing: .06em; }
.rt-area-hook { color: #2f241a; font: 800 16.5px/1.5 var(--sans); letter-spacing: -.02em; word-break: keep-all; }
.rt-area-text { margin: 0; color: #4a4038; font: 500 14.5px/1.75 var(--sans); word-break: keep-all; }

/* 강점·주의: 나란히 놓는 두 칸. 글자 앞 라벨은 작은 알약으로 */
.rt-pair { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.rt-pair-item { display: grid; align-content: start; gap: 8px; padding: 14px 13px 15px; border-radius: 16px; border: 1px solid #e4d7bd; background: #fffdf8; box-shadow: 0 2px 6px rgba(78,62,43,.03); }
.rt-pair-item small { justify-self: start; padding: 4px 9px; border-radius: 999px; font: 800 11.5px/1 var(--sans); letter-spacing: .04em; }
.rt-pair-item.is-good small { background: #e9efdd; color: #4f6b2f; }
.rt-pair-item.is-care small { background: #f6e3dc; color: #a3392b; }
.rt-pair-item b { color: #3a2c20; font: 700 14.5px/1.6 var(--sans); letter-spacing: -.02em; word-break: keep-all; }
@media (max-width: 340px) { .rt-pair { grid-template-columns: 1fr; } }
/* 카드 안에 붙인 기운 그래프는 안쪽 테두리와 위쪽 여백을 없애 카드 하나로 읽히게 한다. */
.rt-card .rt-attach .ov-energy, .rt-card .rt-attach .ov-section { margin: 0; padding: 0; border: 0; border-radius: 0; background: none; box-shadow: none; }
.rt-card .rt-attach .ov-energy > :first-child:is(h2, h3, .ov-kicker) { margin-top: 0; }
#chart-screen.is-core-design #chart-overview .rt-card .rt-attach :is(.ov-energy, .ov-section, .ov-portrait, .ov-areas) { margin: 0; padding: 0; border: 0; border-radius: 0; background: none; box-shadow: none; }
#chart-screen.is-core-design #chart-overview .rt-card .rt-attach { padding: 0; border: 0; border-radius: 0; background: none; box-shadow: none; }
/* 평생사주 디자인의 둥글기 통일: 큰 상자 8px, 그 안의 작은 칸 4px */
#chart-screen.is-core-design #chart-overview :is(.rt-card, .rt-oneline, .rt-lock, .rt-attach, .rt-fold, .rt-golden, .rt-chat-end, .ov-quote, .ov-section.ov-sales, .ov-section.ov-card-feature) { border-radius: var(--core-card-radius, 8px); }
#chart-screen.is-core-design #chart-overview :is(.rt-card-verdict, .rt-card-points li, .rt-pair-item, .rt-quote, .rt-cal-cell, .ov-toc-list, .ov-bars, .ov-pillars, .ov-scale) { border-radius: var(--core-inner-radius, 4px); }
#chart-screen.is-core-design #chart-overview :is(.rt-cta-main, .rt-cta-sub, .ov-cta, .ov-chat-free-btn, .ov-chat-sub-hook) { border-radius: var(--core-card-radius, 8px); }



/* 풀이 안내 카드의 줄: 라벨 + 글. 잠긴 줄은 끝이 흐려지고 "풀이에서 열림" 표시가 붙는다. */
.rt-rows { display: grid; gap: 8px; }
.rt-row { display: grid; gap: 4px; padding: 11px 13px; border: 1px solid #e6dac3; border-radius: 4px; background: #fffdf8; }
.rt-row-label { color: #8a6941; font: 800 12px/1.2 var(--sans); letter-spacing: .04em; }
.rt-row-text { margin: 0; color: #3a2c20; font: 600 14.5px/1.65 var(--sans); word-break: keep-all; }
.rt-row.is-locked { border-style: dashed; background: #fbf6ea; }
.rt-row-lock { justify-self: end; color: #a3392b; font: 800 11.5px/1 var(--sans); letter-spacing: .03em; }

/* 카드 안에 붙인 칸의 주월 해설(작은 얼굴 + 글)은 카드 제목과 겹치므로 숨긴다. */
.rt-card .rt-attach .ov-juwol-note { display: none; }

/* 주월의 한마디: 작은 얼굴 + 한두 문장. 카드 사이의 감정 연결용 */
.rt-quip { display: flex; align-items: center; gap: 10px; margin: 14px 4px; }
.rt-quip-face { flex: none; width: 54px; height: 54px; border-radius: 50%; border: 2px solid #fffdf8; box-shadow: 0 0 0 1px #d9c9aa, 0 2px 6px rgba(78,62,43,.12); background: #f3ead8 no-repeat; background-size: 215% auto; }
.rt-quip-text { position: relative; margin: 0; padding: 11px 14px; border: 1px solid #e0d4bb; border-radius: 8px; background: #fffdf8; color: #3a2c20; font: 600 14.5px/1.65 var(--sans); word-break: keep-all; }
.rt-quip-text::before { content: ""; position: absolute; left: -6px; top: 18px; width: 10px; height: 10px; border-left: 1px solid #e0d4bb; border-bottom: 1px solid #e0d4bb; background: #fffdf8; transform: rotate(45deg); }

/* 첫 질문 카드: 채팅 화면과 같은 알약 모양(추천 질문 → 입력창 → 둥근 보내기 단추) */
.rt-ask { display: grid; gap: 10px; margin: 8px 0; padding: 14px 14px 14px; border: 1px solid #e2d7c1; border-radius: 22px; background: #fffdf8; box-shadow: 0 4px 16px rgba(58,32,28,.08); }
.rt-ask-head { display: flex; align-items: center; gap: 10px; }
.rt-ask-head .rt-avatar { position: static; margin: 0; flex: none; }
.rt-ask-head .rt-avatar::after { content: none; }
.rt-ask-head .rt-avatar .rt-face { width: 34px; height: 34px; flex-basis: 34px; }
.rt-ask-title { font: 700 15px/1.4 var(--sans); color: #2b231e; word-break: keep-all; }
.rt-ask-chips { display: flex; flex-wrap: wrap; gap: 6px; }
.rt-ask-chip { padding: 8px 14px; border: 1px solid #d9ccb4; border-radius: 999px; background: #fbf6ea; font: 500 13.5px/1.35 var(--sans); color: #3b3126; text-align: left; cursor: pointer; word-break: keep-all; }
.rt-ask-chip:focus-visible, .rt-ask-chip:hover { border-color: #b9985a; outline: none; }
.rt-ask-form { display: flex; align-items: flex-end; gap: 8px; }
.rt-ask-input { flex: 1; min-width: 0; min-height: 44px; max-height: 110px; box-sizing: border-box; padding: 11px 16px; border: 1px solid #d9ccb4; border-radius: 22px; background: #fff; font: 500 16px/1.45 var(--sans); color: #2b231e; resize: none; overflow-y: auto; }
.rt-ask-input:focus { outline: none; border-color: #b9985a; }
.rt-ask-send { flex: none; height: 44px; padding: 0 18px; border: 0; border-radius: 999px; background: var(--accent, #5a3228); color: #fffaf4; font: 700 15px/1 var(--sans); white-space: nowrap; cursor: pointer; }
.rt-ask-send:disabled { opacity: .45; cursor: default; }

/* ── 새 무료 이야기: 한자 표지와 오행 막대 ── */
.rt-cover { margin: 8px 0 0; width: 100%; overflow: hidden; background: linear-gradient(160deg, #fffdf8, #f7f0e1); border: 1px solid #e0d4bb; border-radius: 16px; box-shadow: 0 4px 18px rgba(78,62,43,.07); }
.rt-cover img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; }
.rt-cover-cap { display: grid; gap: 6px; padding: 14px 18px 16px; border-top: 1px solid #e0d4bb; }
.rt-cover-name { color: #a3392b; font: 800 15px/1.5 Pretendard, 'Pretendard Variable', system-ui, sans-serif; letter-spacing: -.02em; word-break: keep-all; }
.rt-cover-text { margin: 0; color: #4a4038; font: 500 14px/1.7 Pretendard, 'Pretendard Variable', system-ui, sans-serif; letter-spacing: -.02em; word-break: keep-all; text-wrap: balance; }
.rt-wuxing { display: flex; width: 100%; height: 22px; margin: 10px 0 6px; overflow: hidden; border-radius: 999px; background: #efe6d6; }
.rt-wuxing-seg { display: grid; place-items: center; min-width: 6px; color: #fffdf9; font: 700 11px/1 Pretendard, 'Pretendard Variable', system-ui, sans-serif; letter-spacing: -.02em; white-space: nowrap; }

/* 오행 색깔 원 */
.rt-wx { display: grid; grid-template-columns: repeat(5, 1fr); gap: 6px; margin: 12px 0 8px; }
.rt-wx-chip { position: relative; display: grid; justify-items: center; gap: 5px; }
.rt-wx-dot { display: grid; place-items: center; width: min(52px, 15vw); aspect-ratio: 1; border-radius: 50%; background: var(--wx); color: #fffdf9; font: 800 13px/1 Pretendard, 'Pretendard Variable', system-ui, sans-serif; letter-spacing: -.02em; box-shadow: inset 0 -3px 0 rgba(0, 0, 0, .12); }
.rt-wx-chip.is-empty .rt-wx-dot { background: transparent; color: var(--wx); border: 2px dashed var(--wx); box-shadow: none; opacity: .85; }
.rt-wx-count { color: #8a7d70; font: 700 10px/1 Pretendard, 'Pretendard Variable', system-ui, sans-serif; letter-spacing: .08em; min-height: 10px; }
.rt-wx-chip.is-empty .rt-wx-count { color: #a3392b; letter-spacing: -.02em; font-size: 11px; }
.rt-wx-me { position: absolute; top: -6px; right: 4px; padding: 2px 6px; border-radius: 999px; background: #2f2822; color: #fffdf9; font: 800 10px/1.2 Pretendard, 'Pretendard Variable', system-ui, sans-serif; font-style: normal; }

/* 원국표 카드: 안내 줄과 큼직한 네 기둥 표 */
#chart-screen #chart-overview .rt-card.rt-card-wonguk { padding: 18px 14px 20px; }
#chart-screen #chart-overview .rt-card.rt-card-wonguk .ov-section { margin: 0; padding: 0; border: 0; background: transparent; box-shadow: none; }
#chart-screen #chart-overview .rt-card.rt-card-wonguk .ov-lead { margin: 0 4px 14px; text-align: center; color: #4a4038; font: 600 14.5px/1.7 Pretendard, 'Pretendard Variable', system-ui, sans-serif; letter-spacing: -.02em; word-break: keep-all; text-wrap: balance; }
#chart-screen #chart-overview .rt-card.rt-card-wonguk .ov-pillars { max-width: none; width: 100%; gap: 8px; margin: 0; padding: 0; border: 0; background: transparent; backdrop-filter: none; }
#chart-screen #chart-overview .rt-card.rt-card-wonguk .ov-pillar { padding: 12px 2px 14px; border: 1px solid #ddd2bd; border-radius: 12px; background: #fffdfa; box-shadow: 0 1px 0 rgba(74, 64, 56, .05); }
#chart-screen #chart-overview .rt-card.rt-card-wonguk .ov-pillar.is-day { border: 2px solid #a3392b; background: #fbf1ea; }
#chart-screen #chart-overview .rt-card.rt-card-wonguk .ov-pillar-label { margin-bottom: 8px; color: #8a7d70; font: 700 13px/1 Pretendard, 'Pretendard Variable', system-ui, sans-serif; }
#chart-screen #chart-overview .rt-card.rt-card-wonguk .ov-pillar.is-day .ov-pillar-label { color: #a3392b; }
#chart-screen #chart-overview .rt-card.rt-card-wonguk .ov-pillar-god { min-height: 18px; color: #a3392b; font: 700 13px/18px Pretendard, 'Pretendard Variable', system-ui, sans-serif; }
#chart-screen #chart-overview .rt-card.rt-card-wonguk .ov-char { gap: 5px; padding: 13px 0; }
#chart-screen #chart-overview .rt-card.rt-card-wonguk .ov-char strong { font: 800 clamp(36px, 11.5vw, 48px)/1.05 'Noto Serif KR', 'Noto Serif CJK KR', serif; color: #2f2822; }
#chart-screen #chart-overview .rt-card.rt-card-wonguk .ov-char small { font-size: 12px; color: #6b5f54; gap: 5px; }
#chart-screen #chart-overview .rt-card.rt-card-wonguk .ov-char small::before { width: 7px; height: 7px; }
#chart-screen #chart-overview .rt-card.rt-card-wonguk .ov-polarity { display: none; }
#chart-screen #chart-overview .rt-card.rt-card-wonguk .ov-title { width: 100%; max-width: none; margin: 2px 0 10px; padding: 0; text-align: center; color: #2f2822; font: 800 20px/1.4 Pretendard, 'Pretendard Variable', system-ui, sans-serif; letter-spacing: -.02em; }
#chart-screen #chart-overview .rt-card.rt-card-wonguk .ov-title::after { margin-left: auto; margin-right: auto; }
#chart-screen #chart-overview .rt-card.rt-card-wonguk .ov-lead { width: 100%; max-width: none; margin: 0 0 16px; padding: 0; text-align: center; }
.rt-wonguk-when { display: block; color: #a3392b; font: 800 15px/1.6 Pretendard, 'Pretendard Variable', system-ui, sans-serif; letter-spacing: -.01em; }
.rt-wonguk-line { display: block; margin-top: 2px; color: #4a4038; font: 600 14px/1.7 Pretendard, 'Pretendard Variable', system-ui, sans-serif; letter-spacing: -.02em; word-break: keep-all; }

/* 병 카드: 두 글자가 맞서는 모양 */
.rt-byeong-pair { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 8px; margin: 14px 0 12px; }
.rt-byeong-tile { display: grid; justify-items: center; gap: 4px; padding: 14px 6px 12px; border: 0; border-radius: 16px; background: #f6efe3; text-align: center; }
.rt-byeong-tile:first-child { border: 0; background: #f8e8df; }
.rt-byeong-glyph { color: #4a4038; font: 800 clamp(44px, 14vw, 60px)/1.05 'Noto Serif KR', 'Noto Serif CJK KR', serif; }
.rt-byeong-label { color: #a3392b; font: 800 12.5px/1.4 Pretendard, 'Pretendard Variable', system-ui, sans-serif; letter-spacing: -.02em; }
.rt-byeong-sub { color: #8a7d70; font: 600 11.5px/1.4 Pretendard, 'Pretendard Variable', system-ui, sans-serif; letter-spacing: -.02em; word-break: keep-all; }
.rt-byeong-rel { display: grid; place-items: center; width: 34px; aspect-ratio: 1; border-radius: 50%; background: #a3392b; color: #fffdf9; font: 800 15px/1 Pretendard, 'Pretendard Variable', system-ui, sans-serif; }
.rt-card-strong { color: #2f2822; font-weight: 700; }
.rt-card-title-2 { margin-top: 2px; }
.rt-card-tag-sub { margin-top: 10px; }

/* 연애와 인연 파트 */
.rt-love-rows { display: grid; gap: 10px; margin: 12px 0 4px; }
.rt-love-row { padding: 12px 14px; border: 1px solid #ddd2bd; border-radius: 10px; background: #fffdfa; }
.rt-love-label { display: block; margin-bottom: 4px; color: #a3392b; font: 800 12.5px/1.4 Pretendard, 'Pretendard Variable', system-ui, sans-serif; letter-spacing: -.02em; }
.rt-love-text { margin: 0; color: #2f2822; font: 600 14.5px/1.7 Pretendard, 'Pretendard Variable', system-ui, sans-serif; letter-spacing: -.02em; word-break: keep-all; }
.rt-love-palace { width: min(160px, 50%); margin: 12px auto; }

/* 분석 근거: 월지 → 격 → 주무기 → 병이 이어지는 한 줄 흐름 */
.rt-proof { display: grid; justify-items: center; gap: 4px; margin: 6px 0 2px; }
.rt-proof-row { display: grid; grid-template-columns: 86px 1fr 1fr; align-items: center; gap: 10px; width: 100%; padding: 10px 14px; border-radius: 14px; background: #f6efe3; }
.rt-proof-label { color: #8a6941; font: 800 12px/1.3 Pretendard, 'Pretendard Variable', system-ui, sans-serif; }
.rt-proof-glyph { color: #4a4038; font: 800 24px/1.2 'Noto Serif KR', 'Noto Serif CJK KR', serif; text-align: center; }
.rt-proof-sub { color: #8a7d70; font: 600 12px/1.4 Pretendard, 'Pretendard Variable', system-ui, sans-serif; word-break: keep-all; text-align: right; }
.rt-proof-arrow { color: #b9985a; font: 700 13px/1 Pretendard, system-ui, sans-serif; }
.rt-proof-note { margin: 4px 0 0; color: #8a7d70; font: 500 12px/1.6 Pretendard, 'Pretendard Variable', system-ui, sans-serif; word-break: keep-all; }
/* 정식 풀이 발췌 */
.rt-sample { display: grid; gap: 10px; padding: 14px 16px; border-left: 3px solid #a3392b; border-radius: 4px 14px 14px 4px; background: #f6efe3; }
.rt-sample-text { margin: 0; color: #4a4038; font: 500 14px/1.8 Pretendard, 'Pretendard Variable', system-ui, sans-serif; letter-spacing: -.02em; word-break: keep-all; }
/* 후기·FAQ */
.rt-review { display: grid; gap: 4px; padding: 12px 14px; border-radius: 14px; background: #f6efe3; }
.rt-review-meta { color: #a3392b; font: 800 12px/1.4 Pretendard, system-ui, sans-serif; }
.rt-review-body { margin: 0; color: #4a4038; font: 500 14px/1.7 Pretendard, 'Pretendard Variable', system-ui, sans-serif; word-break: keep-all; }
.rt-faq { display: grid; gap: 10px; margin-top: 4px; }
.rt-faq-item { display: grid; gap: 8px; padding: 14px 16px 15px; border-radius: 16px; background: #f6efe3; }
.rt-faq-q { display: flex; align-items: flex-start; gap: 10px; }
.rt-faq-mark { flex: none; display: grid; place-items: center; width: 22px; height: 22px; margin-top: 1px; border-radius: 50%; background: #a3392b; color: #fffdf9; font: 800 12px/1 Pretendard, 'Pretendard Variable', system-ui, sans-serif; }
.rt-faq-qtext { color: #4a4038; font: 800 14.5px/1.5 Pretendard, 'Pretendard Variable', system-ui, sans-serif; letter-spacing: -.02em; word-break: keep-all; }
.rt-faq-a { margin: 0 0 0 32px; padding-top: 8px; border-top: 1px dashed #e0d4bb; color: #6b5f54; font: 500 13.5px/1.8 Pretendard, 'Pretendard Variable', system-ui, sans-serif; letter-spacing: -.02em; word-break: keep-all; }

/* ── 파트 ──
   배경색은 깔지 않는다. 웹툰과 카드를 같은 본문 폭(좌우 20px)에 맞춰, 폭이 들쭉날쭉하지 않게 한다. */
.rt-part { position: relative; margin: 0; }
/* 펼치는 폭은 화면 폭이되 앱 폭(--app-max-width, 448px)을 넘지 않는다. 계산 중 화면·입력 대화방이 앱 폭이라, 그보다 넓게 펼치면 화면 양옆으로 결과지가 비쳐 보인다. */
.rt-part { margin-left: calc(50% - min(50vw, var(--app-max-width, 448px) / 2)); margin-right: calc(50% - min(50vw, var(--app-max-width, 448px) / 2)); }
.rt-part > .rt-scene > * { margin-left: 20px; margin-right: 20px; }
.rt-part .rt-cover { width: auto; }
/* 카드 제목: 카드 바깥 위에서 가운데로, 무엇을 설명하는 카드인지 먼저 말한다. */
.rt-card-head { display: grid; justify-items: center; gap: 8px; margin: 10px 0 -6px; text-align: center; }
.rt-card-head .rt-card-tag { order: 2; display: block; text-align: center; }
.rt-card-head .rt-card-title { order: 1; margin: 0; text-align: center; }
/* 파트 밖에 있는 웹툰(엔딩·상담 안내)도 모바일에서는 화면 전체 폭으로 펼친다. 이미 파트 안에서 펼쳐진 웹툰은 값이 0이라 그대로다. */
.rt-story .pg-prologue { margin-left: 0; margin-right: 0; }
.rt-part > .rt-scene > .pg-prologue { margin-left: 20px; margin-right: 20px; }
.rt-wonguk-ilju { margin: 14px 0 0; text-align: center; color: #a3392b; font: 800 15px/1.5 'Noto Serif KR', 'Noto Serif CJK KR', serif; letter-spacing: -.02em; word-break: keep-all; }

/* 연애 반복 패턴 목록: 번호가 붙은 줄로 보이게 하고, 첫 줄 말고는 흐리게 가린다. */
.rt-love-points { counter-reset: lp; gap: 10px; margin-top: 4px; }
.rt-love-points li, body #chart-screen .rt-love-points li { counter-increment: lp; position: relative; display: block; padding: 4px 4px 4px 38px; border-radius: 0; background: none !important; color: #2f2822; font: 600 14.5px/1.75 Pretendard, 'Pretendard Variable', system-ui, sans-serif; letter-spacing: -.02em; word-break: keep-all; }
.rt-love-points li::before { content: counter(lp); position: absolute; left: 4px; top: 6px; display: grid; place-items: center; width: 22px; height: 22px; border-radius: 50%; background: #a3392b; color: #fffdf9; font: 800 12px/1 Pretendard, system-ui, sans-serif; }
.rt-lp-rest { display: inline; filter: blur(5px); opacity: .75; user-select: none; pointer-events: none; }

/* 안내 문장 아래의 목록은 붉은 점 표시를 붙여, 들여쓰기만 다른 같은 문장처럼 보이지 않게 한다(번호 목록 .rt-love-points 는 따로). */
body #chart-screen .rt-card-points:not(.rt-love-points) li { position: relative; padding: 6px 4px 6px 24px; background: none !important; font-weight: 700; }
.rt-card-points:not(.rt-love-points) li::before { content: ''; position: absolute; left: 6px; top: 1.05em; width: 7px; height: 7px; border-radius: 1px; background: #a3392b; }

/* 고민 인용 아래 안내: 다른 카드 본문과 같은 글씨와 존댓말, 가운데 정렬 */
.rt-concern-note { margin: 0; text-align: center; white-space: pre-line; color: #4a4038; font: 500 15px/1.75 var(--sans); letter-spacing: -.015em; word-break: keep-all; }

.rt-price { margin: 4px 0 0; text-align: center; color: #a3392b; font: 800 26px/1.3 'Noto Serif KR', 'Noto Serif CJK KR', serif; letter-spacing: -.02em; }
.rt-price-sub { margin: -2px 0 6px; text-align: center; color: #8a7d70; font: 600 12.5px/1.5 Pretendard, system-ui, sans-serif; word-break: keep-all; }

/* 첫 화면 한 줄: 오직 나를 위한 명서 */
.rt-tagline { display: grid; justify-items: center; gap: 10px; margin: 18px 0 10px; padding: 0 20px; text-align: center; }
.rt-tagline-kicker { color: #a3392b; font: 800 12.5px/1.4 Pretendard, system-ui, sans-serif; letter-spacing: .08em; }
.rt-tagline-title { margin: 0; white-space: pre-line; color: #2f241a; font: 800 clamp(16px, 4.7vw, 19px)/1.6 'Noto Serif KR', 'Noto Serif CJK KR', serif; letter-spacing: -.04em; word-break: keep-all; }
.rt-tagline-text { margin: 0; color: #4a4038; font: 500 14.5px/1.7 Pretendard, system-ui, sans-serif; word-break: keep-all; }
#chart-screen .rt-tagline .rt-tagline-title { font: 800 clamp(15px, 4.4vw, 18px)/1.6 'Noto Serif KR', 'Noto Serif CJK KR', serif; letter-spacing: -.04em; white-space: pre-line; word-break: keep-all; }
.rt-story .rt-lock .rt-lock-go, #chart-overview .rt-lock .rt-lock-go { color: #fff !important; }
.rt-card-lead.rt-love-when { margin: 2px 0 8px; color: #b3345a; font: 800 28px/1.3 var(--sans); }

/* 약 파트: 무료 결과의 핵심 후킹. 다른 카드보다 글씨를 키우고, 1년 안에 풀리는 때를 큰 숫자로 보여 준다. */
.rt-card.rt-yak { display: grid; gap: 16px; padding: 24px 20px 22px; border: 1px solid #e3cfa6; background: #fff; box-shadow: 0 8px 24px rgba(74, 64, 56, .08); }
.rt-yak-lead { margin: 0; color: #3a2f27; font: 500 17px/1.75 var(--sans); letter-spacing: -.015em; word-break: keep-all; }
.rt-yak-time { display: grid; gap: 6px; padding: 18px 16px 16px; border: 1px solid #e3cfa6; border-radius: 16px; background: #fbf4e6; color: #2f2822; text-align: center; }
.rt-yak-count { display: grid; gap: 2px; margin: 0; }
.rt-yak-count small { color: #6b5a45; font: 700 15px/1.4 var(--sans); }
body #chart-screen .rt-yak .rt-yak-count b, .rt-yak-count b { color: #8a2a24; font: 800 44px/1.1 var(--serif, 'Noto Serif KR', Georgia, serif); letter-spacing: -.02em; }
.rt-yak-first { margin: 0; color: #2f2822; font: 700 17px/1.5 var(--sans); }
.rt-yak-vs { display: flex; justify-content: center; gap: 8px; flex-wrap: wrap; margin-top: 4px; }
.rt-yak-vs span { padding: 6px 12px; border-radius: 999px; font: 700 14px/1.2 var(--sans); }
.rt-yak-vs .is-shake { background: #fff; border: 1px solid #e6d7bb; color: #7b6f5f; }
.rt-yak-vs .is-open { background: #8a2a24; color: #fff; }
.rt-yak-steps { display: grid; gap: 10px; margin: 0; padding: 0; list-style: none; counter-reset: yak; }
body #chart-screen .rt-yak .rt-yak-steps li, .rt-yak-steps li { color: #2f2822; display: grid; grid-template-columns: 64px 1fr; gap: 12px; align-items: start; padding: 14px 14px; border: 1px solid #e6d7bb; border-radius: 14px; background: #fff; }
body #chart-screen .rt-yak .rt-yak-steps b, .rt-yak .rt-yak-steps b { color: #8a2a24; font: 800 18px/1.45 var(--sans); }
body #chart-screen .rt-yak .rt-yak-steps span, .rt-yak .rt-yak-steps span { color: #2f2822; font: 600 17px/1.55 var(--sans); letter-spacing: -.015em; word-break: keep-all; }
.rt-yak .rt-cta-main { min-height: 54px; font-size: 17px; }
.rt-yak-note { margin: -4px 0 0; color: #7b6f5f; font: 500 14px/1.6 var(--sans); text-align: center; word-break: keep-all; }
.rt-yak-near { display: inline-block; margin-left: 6px; padding: 3px 9px; border-radius: 999px; background: #f3e1c2; color: #8a2a24; font: 800 13px/1.3 var(--sans); vertical-align: 2px; }
.rt-yak-why { margin: 2px 0 0; color: #6b5a45; font: 500 15px/1.6 var(--sans); word-break: keep-all; }

/* 가치 파트: 이런 분께(체크 목록)와 풀이가 약속하는 것(달력 예시 포함). 판매 영역이라 본문보다 글씨를 키운다. */
.rt-for { display: grid; gap: 10px; }
body #chart-screen .rt-card .rt-for-row, .rt-for-row { margin: 0; text-wrap: balance; position: relative; padding: 14px 14px 14px 46px; border: 1px solid #e6d7bb; border-radius: 14px; background: #fffdf8; color: #2f2822; font: 700 17px/1.5 var(--sans); letter-spacing: -.015em; word-break: keep-all; }
.rt-for-row::before { content: "✓"; position: absolute; left: 14px; top: 50%; display: grid; place-items: center; width: 22px; height: 22px; margin-top: -11px; border-radius: 50%; background: #8a2a24; color: #fff; font: 800 13px/1 var(--sans); }
.rt-promise { display: grid; gap: 12px; }
.rt-promise-row { padding: 16px; border: 1px solid #e6d7bb; border-radius: 14px; background: #fff; }
body #chart-screen .rt-card .rt-promise-row b, .rt-promise-row b { display: block; margin-bottom: 4px; color: #8a2a24; font: 800 18px/1.4 var(--sans); }
body #chart-screen .rt-card .rt-promise-row p, .rt-promise-row p { margin: 0; color: #2f2822; font: 500 16px/1.65 var(--sans); word-break: keep-all; }
.rt-card .rt-yc { display: block; margin: 12px 0 0; padding: 12px; border-radius: 12px; background: #fbf4e6; border: 1px solid #e3cfa6; }
.rt-card .rt-yc-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 6px; width: 100%; }
.rt-card .rt-yc-cell { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 3px; min-height: 52px; padding: 6px 2px; border-radius: 8px; background: #fff; border: 1px solid #eadfc8; }
body #chart-screen .rt-card .rt-yc-m { display: block; color: #b3a58f; font: 600 12px/1 var(--sans); }
body #chart-screen .rt-card .rt-yc-tag { display: block; font: 800 11.5px/1.2 var(--sans); text-align: center; word-break: keep-all; }
.rt-card .rt-yc-cell.is-go { background: #8a2a24; border-color: #8a2a24; }
body #chart-screen .rt-card .is-go .rt-yc-m, body #chart-screen .rt-card .is-go .rt-yc-tag { color: #fff; }
.rt-card .rt-yc-cell.is-love { background: #fde8ea; border-color: #e7a9b1; }
body #chart-screen .rt-card .is-love .rt-yc-tag { color: #b23a52; }
.rt-card .rt-yc-cell.is-care { background: #f1ede6; border-color: #cfc5b4; }
body #chart-screen .rt-card .is-care .rt-yc-tag { color: #6b5a45; }
body #chart-screen .rt-card .rt-yc-note { display: block; margin-top: 8px; color: #7b6f5f; font: 500 12.5px/1.5 var(--sans); text-align: center; }
body #chart-screen .rt-card .rt-yak-cal-head, .rt-yak-cal-head { margin: 4px 0 -6px; color: #2f2822; font: 800 17px/1.5 var(--sans); word-break: keep-all; }

/* ── 무료 이야기 글자 크기 체계 ──
   제목 22 / 본문 16 / 보조 15 / 덧말 14 / 라벨 13. 카드마다 제각각이던 크기(13.5~18px)를 이 다섯 단계로 맞춘다. */
body #chart-screen .rt-story :is(.rt-card-lead, .rt-love-text, .rt-yak-lead, .rt-for-row, .rt-yak-first, .rt-yak-cal-head) { font-size: 16px; line-height: 1.7; }
body #chart-screen .rt-story .rt-yak .rt-yak-steps :is(b, span) { font-size: 16px; }
body #chart-screen .rt-story :is(.rt-cover-text, .rt-sample-text, .rt-review-body, .rt-faq-a, .rt-faq-qtext, .rt-lock-list li, .rt-card-points li, .rt-tagline-text, .rt-concern-note, .rt-yak-why, .rt-wonguk-line) { font-size: 15px; line-height: 1.7; }
body #chart-screen .rt-story :is(.rt-card-next, .rt-yak-note, .rt-proof-note, .rt-price-sub, .rt-yc-note) { font-size: 14px; }
body #chart-screen .rt-story :is(.rt-love-label, .rt-card-tag, .rt-lock-label, .rt-proof-label, .rt-review-meta, .rt-byeong-label, .rt-byeong-sub, .rt-tagline-kicker) { font-size: 13px; }

/* ── 카드 없는 구획(.rt-sec) ──
   카드는 핵심 정보와 주요 행동에만 남기고, 설명 장면은 바탕·테두리 없이 글자 크기·굵기·간격으로 위계를 만든다.
   위계: 장면 제목(22, 굵게) > 첫 문단·강조 문장(17, 진하게) > 본문(16) > 다음 장면으로 잇는 말(15, 로즈) > 라벨(13). */
body #chart-screen .rt-story .rt-sec { display: grid; gap: 14px; margin-top: 20px; margin-bottom: 44px; padding: 0 2px; border: 0; background: none; box-shadow: none; }
body #chart-screen .rt-story .rt-card-head { margin-top: 28px; }
body #chart-screen .rt-story .rt-card-head .rt-card-title { font-size: 22px; line-height: 1.42; text-wrap: balance; }
body #chart-screen .rt-story .rt-sec > .rt-card-lead:first-child { color: #2f2822; font-size: 17px; font-weight: 600; line-height: 1.7; }
body #chart-screen .rt-story .rt-sec .rt-card-lead { color: #4a4038; }
body #chart-screen .rt-story .rt-sec .rt-card-strong { color: #2f2822; font-size: 17px; font-weight: 700; }
body #chart-screen .rt-story .rt-sec .rt-card-next { margin-top: 2px; padding: 0 0 0 12px; border: 0; border-left: 3px solid #b8365a; color: #b8365a; font-size: 15px; font-weight: 700; line-height: 1.6; }
body #chart-screen .rt-story .rt-sec .rt-card-tag-sub { margin: 18px 0 -4px; color: #b8365a; font: 800 13px/1.4 var(--sans); letter-spacing: .02em; }

/* 이름표 + 본문 목록(몽타주, 끌림·걸림, 도구): 상자 대신 가는 선으로 나눈다. */
body #chart-screen .rt-story .rt-sec .rt-love-rows { gap: 0; margin: 2px 0 0; border-top: 1px solid #ece8e1; }
body #chart-screen .rt-story .rt-sec .rt-love-row { padding: 14px 2px; border: 0; border-bottom: 1px solid #ece8e1; border-radius: 0; background: none; }
body #chart-screen .rt-story .rt-sec .rt-love-label { margin-bottom: 4px; color: #b8365a; }
body #chart-screen .rt-story .rt-sec .rt-love-text { color: #2f2822; font-weight: 600; }

/* 이런 분께: 체크 표시와 굵은 글씨만 남기고 줄 사이는 선으로 */
body #chart-screen .rt-story .rt-sec .rt-for { gap: 0; border-top: 1px solid #ece8e1; }
body #chart-screen .rt-story .rt-sec .rt-for-row { padding: 16px 4px 16px 40px; border: 0; border-bottom: 1px solid #ece8e1; border-radius: 0; background: none; font-size: 17px; font-weight: 700; }
body #chart-screen .rt-story .rt-sec .rt-for-row::before { left: 4px; }

/* 후기: 바탕 상자 대신 왼쪽 선 인용 */
body #chart-screen .rt-story .rt-sec .rt-review { padding: 2px 0 2px 14px; border-left: 2px solid #e6d7bb; border-radius: 0; background: none; }
body #chart-screen .rt-story .rt-sec .rt-review + .rt-review { margin-top: 10px; }

/* 자주 묻는 질문: 질문은 굵게, 답은 들여 쓰고 항목 사이는 선으로 */
body #chart-screen .rt-story .rt-sec .rt-faq { gap: 0; border-top: 1px solid #ece8e1; }
body #chart-screen .rt-story .rt-sec .rt-faq-item { padding: 16px 2px; border-bottom: 1px solid #ece8e1; border-radius: 0; background: none; }
body #chart-screen .rt-story .rt-sec .rt-faq-qtext { color: #2f2822; font-size: 16px; }
body #chart-screen .rt-story .rt-sec .rt-faq-a { padding-top: 0; border: 0; }

/* 분석 과정: 네 단계를 흰 묶음 하나에 담는다. 줄마다 왼쪽은 큰 글자, 오른쪽은 단계 번호·이름과 설명. 화살표 대신 번호와 구분선으로 순서를 보인다. */
body #chart-screen .rt-story .rt-sec .rt-proof { counter-reset: proof; justify-items: stretch; gap: 0; margin: 4px 0 0; padding: 4px 18px; border: 1px solid #ece8e1; border-radius: 16px; background: #fff; }
body #chart-screen .rt-story .rt-sec .rt-proof-arrow { display: none; }
body #chart-screen .rt-story .rt-sec .rt-proof-row { counter-increment: proof; grid-template-columns: 76px 1fr; grid-template-areas: "glyph label" "glyph sub"; align-items: center; column-gap: 14px; row-gap: 3px; padding: 16px 0; border-radius: 0; border-bottom: 1px solid #f0ece5; background: none; }
body #chart-screen .rt-story .rt-sec .rt-proof-row:last-of-type { border-bottom: 0; }
body #chart-screen .rt-story .rt-sec .rt-proof-glyph { grid-area: glyph; color: #2f2822; font-size: 26px; text-align: center; word-break: keep-all; }
body #chart-screen .rt-story .rt-sec .rt-proof-label { grid-area: label; align-self: end; color: #b8365a; font-size: 13px; }
body #chart-screen .rt-story .rt-sec .rt-proof-label::before { content: counter(proof) ". "; }
body #chart-screen .rt-story .rt-sec .rt-proof-sub { grid-area: sub; align-self: start; color: #4a4038; font: 600 15px/1.5 var(--sans); text-align: left; }

/* 오행 설명 안의 둘째 제목(그럼 계수면… / 다섯 기운이…)은 장면 제목보다 한 단계 작게 */
body #chart-screen .rt-story .rt-sec .rt-card-title-2 { margin-top: 18px; color: #2f241a; font-size: 19px; }

/* 카드 없는 구획 안의 잠금 상자는 이 장면의 행동이라 카드로 또렷하게 남긴다. */
body #chart-screen .rt-story .rt-sec .rt-lock { margin-top: 6px; }

/* 결제 앞 판매 영역: 가격과 구매 단추가 있는 구획(.ov-pricecmp)만 카드로 두고, 미리보기·차례·달라지는 것은 카드를 걷는다.
   modern-frame.css 가 .ov-sales 에 흰 바탕을 !important 로 깔아 두어, 여기서도 !important 로 걷는다. */
body #chart-screen #chart-overview :is(.ov-sales.ov-preview, .ov-sales.ov-benefit, .ov-sales.ov-simple-toc) { margin-top: 28px; margin-bottom: 28px; padding-left: 22px; padding-right: 22px; border: 0 !important; background: transparent !important; box-shadow: none !important; }
body #chart-screen #chart-overview :is(.ov-sales.ov-preview, .ov-sales.ov-benefit, .ov-sales.ov-simple-toc) .ov-title { font-size: 22px; line-height: 1.42; }

/* 2026-10-23 그림 표지를 걷고 장 이름과 한 줄만 웹툰 컷 밑에 붙인다 */
.rt-cover.rt-cover-plain { margin: 6px 0 0; background: none; border: 0; box-shadow: none; border-radius: 0; }
.rt-cover-plain .rt-cover-cap { gap: 4px; padding: 0 4px; border-top: 0; text-align: center; }
body #chart-screen .rt-story .rt-cover-plain .rt-cover-name { font-size: 19px; line-height: 1.45; color: #2f2822; }
body #chart-screen .rt-story .rt-cover-plain .rt-cover-text { color: #6b5f52; }
/* 약 카드: 약이 오는 곳(첫 문장)을 굵게, 잠긴 것은 한 줄로 */
body #chart-screen .rt-story .rt-yak .rt-yak-lead { font-weight: 700; color: #2f2822; }
body #chart-screen .rt-story .rt-yak .rt-yak-rest { margin: 0; color: #5f5348; font: 600 15px/1.65 var(--sans); text-align: center; word-break: keep-all; }
body #chart-screen .rt-story .rt-yak .rt-yak-cure { margin: 0; color: #3a2f27; font: 500 16px/1.7 var(--sans); letter-spacing: -.015em; word-break: keep-all; }
body #chart-screen .rt-story .rt-yak .rt-yak-use { margin: 0; padding: 14px 16px; border-left: 3px solid #b83a4b; background: #fff7f3; color: #2f2822; font: 700 16px/1.7 var(--sans); letter-spacing: -.015em; word-break: keep-all; }

/* 신년 무료 화면: 지난 6개월 회고 */
.rt-past-text { display: grid; gap: 12px; }
.rt-past-text p { margin: 0; }
.rt-area .rf-ans { margin-bottom: 2px; }
.rf-ans.is-pending { color: #a39686; font-style: normal; }
.rf-buy.rt-lock-go { text-decoration: none; }

/* 신년 무료 화면: 이 해가 왜 이런지 이유 */
.rt-why { margin: 14px 0 0; padding: 12px 14px; border-left: 3px solid #a3392b; border-radius: 4px 10px 10px 4px; background: #fffdf8; }
.rt-why .rt-why-label { display: block; margin-bottom: 6px; color: #8a6941; font: 800 12px/1.4 var(--sans); }
.rt-why p { margin: 0 0 6px; color: #2f241a; font: 500 14.5px/1.7 var(--sans); letter-spacing: -.015em; word-break: keep-all; }
.rt-why p:last-child { margin-bottom: 0; }

/* 신년 A/B(B): 일간만 보면 / 격으로 보면 큰 글씨 카드 */
.rt-diff { text-align: center; padding: 28px 20px; }
.rt-diff-small { margin: 0; color: #8a7a68; font: 600 14px/1.5 var(--sans, 'Pretendard', sans-serif); }
.rt-diff-big { margin: 8px 0 24px; font: 800 28px/1.28 var(--serif, 'Noto Serif KR', Georgia, serif); letter-spacing: -.03em; word-break: keep-all; }
.rt-diff-big.is-old { color: #a89b8a; font-size: 24px; text-decoration: line-through #b3261e 3px; }
.rt-diff-big.is-new { color: #b3261e; font-size: 26px; margin-bottom: 8px; }
.rt-diff-yong { display: flex; align-items: center; gap: 16px; margin-top: 24px; padding-top: 24px; border-top: 1px solid #e6dccd; text-align: left; }
.rt-diff-yong .rt-diff-big { margin: 2px 0 2px; font-size: 26px; color: #2f241a; }
.rt-diff-book { flex: none; display: grid; justify-items: center; align-content: center; gap: 4px; width: 64px; height: 88px; border-radius: 3px 8px 8px 3px; background: #3b2a1c; box-shadow: inset 4px 0 0 #2a1d12, 2px 3px 0 #d9ccb8; color: #e8d9bd; }
.rt-diff-book b { writing-mode: vertical-rl; font: 700 17px/1 var(--serif, serif); letter-spacing: .1em; }
.rt-diff-book i { font: normal 600 10px/1 sans-serif; opacity: .8; }
.rt-yearcard .rt-diff-feel { margin: 14px 0 20px; color: #2f241a; font: 700 18px/1.55 var(--serif, serif); word-break: keep-all; }
.rt-yearcard .rt-diff-turn { margin-top: 4px; }
.rt-diff-zh { margin: 4px 0 6px; color: #2f241a; font: 700 20px/1.5 var(--serif, serif); word-break: keep-all; }
.rt-diff-yong { text-align: left; }
/* 카드 사이 한 박자: 접속어를 크게 세워 앞 말을 받고 다음으로 넘긴다 */
.rt-beat { display: grid; justify-items: center; gap: 8px; margin: 32px 8px; text-align: center; word-break: keep-all; }
.rt-beat::before { content: ''; width: 1px; height: 24px; margin-bottom: 8px; background: #b9a98f; }
.rt-beat b { color: #b3261e; font: 800 22px/1.4 var(--serif, 'Noto Serif KR', Georgia, serif); letter-spacing: -.03em; }
.rt-beat span { color: #2f241a; font: 800 25px/1.45 var(--serif, 'Noto Serif KR', Georgia, serif); letter-spacing: -.03em; }
.rt-year-art { display: block; width: calc(100% + 40px); max-width: none; height: auto; margin: -28px -20px 24px; border-radius: 22px 22px 0 0; }
/* 신년 마무리: 따뜻한 한지 톤 카드, 세로선으로 이어 간다 */
.rt-closing { margin: 16px 0 24px; padding: 16px 20px 40px; border-radius: 20px; overflow: hidden; background: #faf6ee; border: 1px solid #ebdccb; color: #2f2820; text-align: center; word-break: keep-all; box-shadow: 0 4px 16px rgba(78,62,43,.04); }
.rt-closing-part { display: grid; gap: 16px; justify-items: center; padding: 36px 0 8px; }
.rt-closing-part:first-child { padding-top: 16px; }
.rt-closing-part + .rt-closing-part::before { content: ''; width: 1px; height: 28px; margin-bottom: -4px; background: #ebdccb; }
.rt-closing-part { position: relative; }
.rt-closing-line { margin: 0; font: 800 24px/1.5 var(--serif, 'Noto Serif KR', Georgia, serif); letter-spacing: -.03em; color: #2f2820; }
.rt-closing-line.is-sub { color: #8a7a68; font: 700 15px/1.4 var(--sans, sans-serif); letter-spacing: 0; }
.rt-closing-line.is-final { color: #231c16; font-size: 26px; margin: 8px 0 12px; font-weight: 800; }
.rt-closing-line.is-note { color: #8a7a68; font: 600 13px/1.4 var(--sans, sans-serif); }
.rt-closing-pick { display: grid; gap: 12px; margin: 0; padding: 0; list-style: none; }
.rt-closing-pick li { font: 800 19px/1.45 var(--serif, serif); letter-spacing: -.02em; color: #2f2820; }
.rt-closing-pick li::before { content: '✓'; margin-right: 8px; color: #9c2d27; }
.rt-closing-go { width: 100%; border-radius: 14px; }
.rt-beat.is-claim span { font-size: 22px; }
.rt-beat.is-pair span.is-second { color: #b3261e; }
/* 신년 화면의 붉은색은 연결 문장의 접속어와 결제 단추에만 둔다 */
.ny-card .rt-card-tag { color: #8a7a68; }
.ny-card .rt-lock-list li::before { background: #8a7a68; }
.rt-diff-big.is-new { color: #2f241a; }
.rt-beat.is-pair span.is-second { color: inherit; }
.rt-area.is-compact .rf-ans { margin-bottom: 4px; }
.rt-area-hidden { margin: 0; padding-top: 12px; border-top: 1px solid #e6dccd; color: #8a7a68; font: 600 13.5px/1.7 var(--sans, sans-serif); word-break: keep-all; }
.rt-area-end { margin: 4px 0 0; }

/* 신년 화면: 카드는 꼭 필요한 곳(가림 목록, 후기, 마무리)에만 둔다. 나머지는 바탕 위에 글자 크기와 정렬로 위계를 세운다 */
body #chart-screen#chart-screen .rt-story .ny-card { gap: 16px; margin: 8px 0 !important; padding: 0 4px !important; border: 0 !important; border-radius: 0 !important; background: transparent !important; box-shadow: none !important; }
body #chart-screen#chart-screen .rt-story .ny-card :is(.rt-attach, .ov-ny-score) { padding: 0 !important; border: 0 !important; background: transparent !important; box-shadow: none !important; }
body #chart-screen#chart-screen .rt-story .ny-head { margin-top: 56px; gap: 10px; }
body #chart-screen#chart-screen .rt-story .ny-head .rt-card-title { font-size: 28px; line-height: 1.35; letter-spacing: -.035em; }
body #chart-screen#chart-screen .rt-story .ny-card :is(.rt-card-lead, .rf-ans, .rt-past-text, .rt-area-text) { color: #3e342b; font-size: 16px; line-height: 1.85; }
body #chart-screen#chart-screen .rt-story .ny-card .rt-card-next { padding-top: 12px; color: #8a7a68; font-size: 13.5px; }
body #chart-screen#chart-screen .rt-story .ny-card .rt-lock { background: #f2ede3 !important; box-shadow: none !important; border: 0 !important; border-radius: 12px !important; }
body #chart-screen#chart-screen .rt-story .ny-card .rt-chapter-card { padding: 16px 0 !important; border: 0 !important; border-top: 1px solid #ddd3c2 !important; border-radius: 0 !important; background: transparent !important; box-shadow: none !important; }
body #chart-screen#chart-screen .rt-story .ny-card .rt-chapters { gap: 0; }
.rt-yearcard .rt-year-art { width: 100%; margin: 0 0 24px; border-radius: 16px; }
.rt-diff, .rt-yearcard { padding: 0 !important; }
.rt-beat { margin: 72px 8px; }
body #chart-screen#chart-screen .rt-story .ny-card .rt-fold { border: 0 !important; background: transparent !important; box-shadow: none !important; padding-left: 0 !important; padding-right: 0 !important; }
body #chart-screen#chart-screen .rt-story .ny-chapter { margin: 56px 0 0; padding: 0 !important; border: 0 !important; border-radius: 0 !important; background: transparent !important; box-shadow: none !important; }

/* 신년 글씨 크기 체계(모바일 가독성 최적화): 각주 13 · 보조 14~15 · 본문 16~16.5 · 강조 17.5~18 · 제목 22~24 · 대제목 28~30 */
body #chart-screen#chart-screen .rt-story .ny-head .rt-card-title { font-size: 23px; line-height: 1.35; }
body #chart-screen#chart-screen .rt-story .ny-card :is(.rt-card-lead, .rf-ans, .rt-past-text p, .rt-area-text) { font-size: 16.5px; line-height: 1.72; color: #2f2820; }
body #chart-screen#chart-screen .rt-story .ny-card .rf-question p { font-size: 17.5px; line-height: 1.55; }
body #chart-screen#chart-screen .rt-story .ny-card .rf-question small { font-size: 13.5px; }
body #chart-screen#chart-screen .rt-story .ny-card :is(.rt-foot, .rt-card-next) { margin: 0; padding: 0; border: 0; color: #9a8c7a; font-size: 14px; line-height: 1.6; text-align: center; }
body #chart-screen#chart-screen .rt-story .ny-card .rt-diff-feel { font-size: 18.5px; line-height: 1.65; text-align: center; }
body #chart-screen#chart-screen .rt-story .ny-card .rt-diff-ask { font-size: 17.5px; line-height: 1.6; text-align: center; }
body #chart-screen#chart-screen .rt-story .ny-card :is(.rt-diff-small, .rt-lock-label, .rt-lock-list li, .rt-area-hidden) { font-size: 15px; line-height: 1.6; }
body #chart-screen#chart-screen .rt-story .ny-card .rt-diff-zh { font-size: 17px; }
body #chart-screen#chart-screen .rt-story .ny-card .rt-diff-yong .rt-diff-small:last-child, body #chart-screen#chart-screen .rt-story .ny-card .rt-diff-yong p:last-child { font-size: 13.5px; color: #9a8c7a; }
/* 점수 카드 */
.rt-turning-box { margin: 24px 0 16px; padding: 20px 18px; border-radius: 14px; background: #fcf9f2; border: 1px solid #ebdccb; text-align: left; word-break: keep-all; }
.rt-turning-tag { display: inline-block; font-family: var(--ny-sans, sans-serif); font-size: 12.5px; font-weight: 700; color: #9c2d27; background: rgba(156, 45, 39, 0.08); padding: 4px 10px; border-radius: 6px; letter-spacing: -.01em; margin-bottom: 10px; }
.rt-turning-title { margin: 0 0 8px; font-family: var(--ny-sans, sans-serif); font-size: 18px; font-weight: 700; line-height: 1.5; color: #2b221a; letter-spacing: -.03em; }
.rt-turning-desc { margin: 0; font-family: var(--ny-sans, sans-serif); font-size: 15.5px; font-weight: 400; line-height: 1.7; color: #5d4f42; letter-spacing: -.02em; }
.rt-score-big { display: flex; align-items: baseline; justify-content: center; gap: 8px; margin: 8px 0 0; color: #2f2820; }
.rt-score-big b { font: 800 72px/1 var(--serif, 'Noto Serif KR', Georgia, serif); letter-spacing: -.04em; }
.rt-score-big span { font: 700 24px/1 var(--serif, serif); }
.rt-score-two { display: grid; gap: 20px; margin: 8px 0 0; text-align: left; }
.rt-score-two p { display: grid; gap: 4px; margin: 0; }
.rt-score-two b { font: 800 44px/1.1 var(--serif, serif); color: #2f2820; }
.rt-score-two span { font-size: 16.5px; color: #5a4d3f; }
/* 영역 한 줄 */
.rt-area.is-compact { gap: 12px; }
body #chart-screen#chart-screen .rt-story .rt-area .rt-card-title { font-size: 22px; }
/* 목차: 장 제목 큰 글씨, 한 줄 설명은 보조 */
.rt-toc-list { display: grid; gap: 0; }
.rt-toc-row { display: grid; grid-template-columns: 40px 1fr; gap: 2px 8px; padding: 16px 0; border-top: 1px solid #ddd3c2; }
.rt-toc-row small { grid-row: 1 / 3; color: #9a8c7a; font: 700 14px/1.6 var(--sans, sans-serif); }
.rt-toc-row b { font: 800 18.5px/1.4 var(--serif, serif); letter-spacing: -.03em; color: #2f2820; }
.rt-toc-row span { font-size: 15px; line-height: 1.55; color: #6b5d4e; }
/* 원국은 접어 둔 각주 */
body #chart-screen#chart-screen .rt-story .ny-foldnote { margin: 8px 0 0 !important; padding: 0 !important; border: 0 !important; background: transparent !important; box-shadow: none !important; }
body #chart-screen#chart-screen .rt-story .ny-foldnote > summary { color: #9a8c7a; font-size: 13px; text-align: center; }
/* 연결 문구 박자 */
.rt-beat b { font-size: 18px; }
.rt-beat span { font-size: 21px; line-height: 1.45; }
.rt-beat.is-claim span { font-size: 19.5px; }
/* 후기 3건 */
body #chart-screen#chart-screen .rt-story .rf-review p { font-size: 15.5px; line-height: 1.68; -webkit-line-clamp: 4; }
body #chart-screen#chart-screen .rt-story .rf-review small { font-size: 13.5px; }
/* 이용 후기 가로 스크롤은 reunion-free.css 의 .rf-review-list 가 정한다(옛 세로 목록용 overflow: visible 제거) */
/* 마무리 */
.rt-closing-line { font-size: 20px; }
.rt-closing-line.is-sub { font-size: 14px; }
.rt-closing-line.is-final { font-size: 23px; }
.rt-closing-line.is-note { font-size: 13px; }
.rt-closing-pick li { font-size: 17.5px; }
/* 오프닝과 회고: 큰 글씨 한 줄씩 */
.rt-open { display: grid; justify-items: center; gap: 8px; margin: 88px 8px; text-align: center; word-break: keep-all; }
.rt-open b { color: #b3261e; font: 700 17px/1.4 var(--serif, 'Noto Serif KR', Georgia, serif); letter-spacing: -.03em; }
.rt-open span { color: #2f241a; font: 700 21px/1.48 var(--serif, serif); letter-spacing: -.03em; }
.rt-open span.is-second { color: #5a4d42; font-weight: 500; font-size: 16.5px; line-height: 1.7; letter-spacing: -.02em; }
.rt-pastlines { display: grid; gap: 16px; margin: 12px 0 20px; text-align: left; }
.rt-past-editorial {
  margin: 14px 0 0;
  padding: 22px 20px 20px;
  background: #fffdf9;
  border: 1px solid #ebdccb;
  border-radius: 14px;
  box-shadow: 0 3px 12px rgba(78, 62, 43, 0.03);
  text-align: left;
  word-break: keep-all;
}
.rt-past-editorial-lead {
  margin: 0 0 14px;
  font-family: var(--ny-sans, 'Pretendard', sans-serif);
  font-size: 18px;
  font-weight: 700;
  line-height: 1.5;
  color: #201812;
  letter-spacing: -.03em;
  word-break: keep-all;
}
.rt-past-editorial-body {
  margin: 0 0 12px;
  font-family: var(--ny-sans, 'Pretendard', sans-serif);
  font-size: 16.5px;
  font-weight: 400;
  line-height: 1.78;
  color: #382e25;
  letter-spacing: -.02em;
  word-break: keep-all;
}
.rt-past-editorial-close {
  margin: 12px 0 0;
  padding-top: 12px;
  border-top: 1px dashed #e6dac3;
  font-family: var(--ny-sans, 'Pretendard', sans-serif);
  font-size: 16.5px;
  font-weight: 600;
  line-height: 1.78;
  color: #201812;
  letter-spacing: -.02em;
  word-break: keep-all;
}
.rt-pastcard { margin: 0; padding: 18px 20px 20px; border-radius: 14px; background: #fff; border: 1px solid #e7dfce; text-align: left; word-break: keep-all; box-shadow: 0 2px 8px rgba(78, 62, 43, 0.03); }
.rt-pastcard-body { display: grid; gap: 12px; }
.rt-pastcard-p { margin: 0; font-family: var(--ny-sans, 'Pretendard', sans-serif); font-size: 16.5px; font-weight: 400; line-height: 1.75; color: #2f2820; letter-spacing: -.02em; }
.rt-pastcard-p:last-child { font-weight: 600; color: #201812; }

/* 신년: 확인 인원, 권위, 정확성, 가격, 편지 */
.ny-proof { display: grid; gap: 8px; margin: 40px 8px; text-align: center; }
.ny-proof-line { margin: 0; color: #2f241a; font: 800 19px/1.55 var(--serif, 'Noto Serif KR', Georgia, serif); letter-spacing: -.03em; word-break: keep-all; }
.rt-auth, .rt-acc { display: grid; gap: 20px; margin: 72px 4px 0; text-align: center; word-break: keep-all; }
.rt-auth-hook, .rt-acc-hook { margin: 0; color: #2f241a; font: 700 22px/1.42 var(--serif, 'Noto Serif KR', Georgia, serif); letter-spacing: -.035em; }
.rt-auth-sub, .rt-acc-sub { margin: 0; color: #4a4038; font-size: 16.5px; line-height: 1.7; }
.rt-auth-photos { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.rt-auth-photo { display: block; width: 100%; height: auto; border-radius: 4px; box-shadow: 0 2px 10px rgba(60, 40, 20, .18); }
.rt-acc-art { display: block; width: 100%; height: auto; border-radius: 16px; }
.ny-price { display: grid; gap: 8px; justify-items: center; margin: 72px 4px 0; text-align: center; }
.ny-price-was { margin: 0; color: #a89b8a; font: 700 24px/1.2 var(--serif, serif); text-decoration: line-through; text-decoration-thickness: 3px; }
.ny-price-row { margin: 0; color: #5a4d3f; font-size: 16.5px; line-height: 1.5; }
.ny-price-final { display: flex; align-items: baseline; justify-content: center; gap: 8px; margin: 8px 0 0; color: #2f241a; }
.ny-price-final b { font: 800 48px/1.1 var(--serif, serif); letter-spacing: -.04em; }
.ny-price-final span { color: #8a7a68; font-size: 15px; }
.ny-price-clock { margin: 8px 0 0; color: #b3261e; font: 800 19px/1.4 var(--sans, sans-serif); font-variant-numeric: tabular-nums; }
.ny-price .rt-foot { margin: 0; color: #9a8c7a; font-size: 13px; }
.ny-price .rt-lock-go { width: 100%; margin-top: 16px; }
.rt-letter { display: grid; gap: 12px; width: 100%; }
.rt-letter-art { display: block; width: 100%; height: auto; margin-bottom: 8px; border-radius: 16px; }
/* 마무리 편지만 궁서체. 조선궁서체에서 KS X 1001 한글 2350자와 기본 문장부호만 남긴 부분 글꼴(약 200KB). 굵기가 하나라 가짜 굵게를 막는다. */
@font-face { font-family: 'Chosun Gungseo'; font-style: normal; font-weight: 400; font-display: swap; src: url('/fonts/chosun-gungseo/chosun-gungseo-ks.woff2') format('woff2'); }
.rt-letter-line { margin: 0; color: #3e342b; font: 400 17.5px/1.85 'Chosun Gungseo', var(--serif, 'Noto Serif KR'), Georgia, serif; font-synthesis: none; letter-spacing: 0; word-break: keep-all; text-wrap: balance; }
.rt-letter-sign { margin: 12px 0 0; color: #5a4d42; font: 400 19px/1.5 'Chosun Gungseo', var(--serif, 'Noto Serif KR'), serif; font-synthesis: none; letter-spacing: .04em; text-align: right; }
/* modern-global.css 의 body:not(.premium-body) * { Pretendard !important } 를 이기려면 !important 에 더 높은 특정성이 필요하다. */
body #chart-screen .rt-letter :is(.rt-letter-line, .rt-letter-sign) { font-family: 'Chosun Gungseo', 'Noto Serif KR', serif !important; font-weight: 400 !important; }
.rt-acc { gap: 16px; }
.rt-acc-hook { margin-bottom: 4px; }
.rt-acc-ours { margin: 8px 0 0; color: #2f241a; font: 800 19px/1.5 var(--serif, 'Noto Serif KR', Georgia, serif); letter-spacing: -.03em; }
.ny-proof-conj, .rt-acc-lead { color: #b3261e; font: 800 18px/1.4 var(--serif, 'Noto Serif KR', Georgia, serif); letter-spacing: -.03em; }
.ny-proof { gap: 4px; }
.ny-price-lead { margin: 0 0 8px; color: #5a4d3f; font-size: 16.5px; line-height: 1.5; }

/* 설득 구간(자평진전, 격, 정확성): 개인 결과와 섞이지 않게 어두운 바탕으로 한 덩어리로 이어 간다(음양관처럼 어두운 바탕에 큰 글씨와 그림) */
body #chart-screen#chart-screen .rt-story .rt-scene:is([data-scene-id="auth"], [data-scene-id="gyeok"], [data-scene-id^="acc"]) { margin: 0 -20px; padding: 0 20px; background: #232c41; }
body #chart-screen#chart-screen .rt-story .rt-scene[data-scene-id="auth"] { padding-top: 40px; }
body #chart-screen#chart-screen .rt-story .rt-scene[data-scene-id="acc5"] { padding-bottom: 56px; margin-bottom: 40px; }
body #chart-screen#chart-screen .rt-story .rt-scene:is([data-scene-id="auth"], [data-scene-id="gyeok"], [data-scene-id^="acc"]) :is(.rt-auth, .rt-acc) { margin: 0; padding: 48px 0 8px; }
body #chart-screen#chart-screen .rt-story .rt-scene:is([data-scene-id="auth"], [data-scene-id="gyeok"], [data-scene-id^="acc"]) :is(.rt-auth-hook, .rt-acc-hook) { color: #f3efe4; }
body #chart-screen#chart-screen .rt-story .rt-scene:is([data-scene-id="auth"], [data-scene-id="gyeok"], [data-scene-id^="acc"]) :is(.rt-auth-sub, .rt-acc-sub) { color: #cfd6e6; }
body #chart-screen#chart-screen .rt-story .rt-scene:is([data-scene-id="auth"], [data-scene-id="gyeok"], [data-scene-id^="acc"]) :is(.rt-acc-ours, .rt-acc-lead) { color: #e8c56f; }
body #chart-screen#chart-screen .rt-story .rt-scene:is([data-scene-id="auth"], [data-scene-id="gyeok"], [data-scene-id^="acc"]) .rt-foot { color: #8b97b8; }
.rt-acc-art { border-radius: 16px; }
/* 신년 화면: 그림은 격 화면의 주월 한 장과 붉은 양만 둔다. 사주 원국 접기 안의 작은 주월과 아래 소개 블록의 그림은 숨긴다 */
body #chart-screen#chart-screen .rt-story .ny-foldnote img { display: none !important; }
body #chart-screen#chart-screen.ny-free :is(.engine-proof-visual, .chat-care-opening) img { display: none !important; }
/* 신년 화면: 1:1 상담 유도는 모두 숨긴다(리포트 결제에 집중) */
body.ny-free :is(.chat-care, .ov-chatwrap, #ov-chatpill, .ov-chat-sub-hook, .ov-chat-free-btn) { display: none !important; }

/* 신년 무료 화면 맨 위 메인 타이틀 */
body #chart-screen#chart-screen .ny-title { margin: 28px 0 8px; padding: 0; background: none; border: 0; text-align: center; font-weight: 800; letter-spacing: -0.02em; color: inherit }
body #chart-screen#chart-screen .ny-title small { display: block; font-size: 14px; font-weight: 600; opacity: .6; margin-bottom: 8px; letter-spacing: 0 }
body #chart-screen#chart-screen .ny-title span { display: block; font-size: 29px; line-height: 1.25 }

/* 신년 무료: 점수 꼬리표, 열린 두 달 */
.rt-score-tags { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px 8px; margin: 14px 0 0; }
.rt-score-tags span { padding: 3px 10px; border: 1px solid #d9ccb3; border-radius: 999px; color: #55312d; font: 600 13.5px/1.6 var(--sans, sans-serif); }
.rt-months { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; margin: 14px 0 0; }
.rt-month { display: grid; justify-items: center; align-content: start; gap: 3px; min-height: 82px; margin: 0; padding: 10px 4px 9px; border: 1px solid #e3d9c6; border-radius: 12px; background: #f6f1e6; color: #7a7063; }
.rt-month b { color: #3b434e; font: 700 14.5px/1.3 var(--sans, sans-serif); }
.rt-month i { color: #55312d; font: 800 17px/1.3 var(--serif, serif); font-style: normal; }
.rt-month small { color: #6b6f78; font: 500 12.5px/1.35 var(--sans, sans-serif); text-align: center; word-break: keep-all; }
.rt-month.is-open { border-color: #c9b88f; background: #fffdf8; }
.rt-month-lock { width: 22px; height: 8px; margin-top: 10px; border-radius: 4px; background: #d8cfbf; }

/* 신년 무료: 소개 문장, 가격 앞 설득 */
body #chart-screen#chart-screen .ny-title-sub { max-width: 24em; margin: 18px auto 56px; color: #4a3f33; font: 600 16px/1.75 var(--serif, serif); text-align: center; word-break: keep-all; letter-spacing: -.01em; }
body #chart-screen#chart-screen .ny-price-pitch { margin: 18px 0 8px; color: #2f241a; font: 800 19px/1.5 var(--serif, serif); text-align: center; word-break: keep-all; }
body #chart-screen#chart-screen .ny-price-pitch-sub { max-width: 24em; margin: 0 auto 22px; color: #4a3f33; font: 500 15.5px/1.75 var(--sans, sans-serif); text-align: center; word-break: keep-all; }

/* 가린 항목: 이름은 또렷하게, 내용은 흐리게 */
.ny-hide { display: grid; gap: 18px; margin: 0; padding: 0; list-style: none; }
.ny-hide li { display: grid; gap: 4px; padding: 18px 0 0; border-top: 1px solid #ddd3c2; }
.ny-hide li b { color: #2f241a; font: 700 16px/1.5 var(--sans); word-break: keep-all; }
.ny-hide li span { font-size: 14.5px; line-height: 1.6; }
.ny-ans-rest { margin-top: 6px; }
.ny-price-safe { margin: 4px 0 0; color: #2f241a; font: 700 15px/1.6 var(--sans); text-align: center; }
.ny-card .rf-buy-note { margin: 10px 0 0; color: #5a4d42; font: 600 14.5px/1.6 var(--sans); }
.ny-hide li .rf-blur p { font-size: 14.5px; }
.ny-card .rf-ans.is-pending { color: #8a7d6d; filter: blur(4.5px); user-select: none; }

.rt-score-row { display: grid; gap: 6px; padding: 18px 0 0; border-top: 1px solid #ddd3c2; }
.rt-score-row b { font: 700 16.5px/1.4 var(--sans); color: #2f2820; }
.rt-score-row strong.rf-blur { font: 700 22px/1.3 var(--serif, serif); color: #8a7d6d; letter-spacing: -.02em; word-break: keep-all; }
.rt-score-row span { font: 500 15.5px/1.68 var(--sans); color: #4a4038; word-break: keep-all; }

/* 점수 카드 안의 원국표: 원래 구획의 위아래 여백과 폭 제한을 없애고 카드 흐름에 맞춘다 */
body #chart-screen#chart-screen .rt-score .ov-hero { max-width: none; margin: 4px 0 8px; padding: 0 !important; border: 0; background: transparent; }
body #chart-screen#chart-screen .rt-score .ov-hero .ov-pillars { margin: 0; }

.rt-pastmonths { display: grid; gap: 18px; margin: 8px 0; text-align: left; }
.rt-pastmonths p { display: grid; gap: 4px; margin: 0; padding-top: 16px; border-top: 1px solid #ddd3c2; }
.rt-pastmonths b { font: 700 16.5px/1.4 var(--sans); color: #2f2820; }
.rt-pastmonths span { font: 500 16px/1.68 var(--sans); color: #4a4038; word-break: keep-all; }
.rt-pastlines .rt-pastthanks { margin: 0; color: #5a4d42; font: 500 16px/1.68 var(--serif, serif); word-break: keep-all; }
.rt-area-hidden-label { margin: 12px 0 0; color: #8a7a68; font: 700 13.5px/1.4 var(--sans); }
ul.rt-area-hidden { display: grid; gap: 4px; margin: 0; padding: 4px 0 0; border: 0; list-style: none; }
ul.rt-area-hidden li { color: #6b5d4e; font: 600 15px/1.6 var(--sans); word-break: keep-all; }
.rt-pastmonths em { font-style: normal; }

.rt-months-gap { display: grid; justify-items: center; gap: 2px; padding: 16px 0 4px; border-top: 1px solid #ddd3c2; }
.rt-months-partial { margin: 0; color: #5a4d42; font: 700 15.5px/1.5 var(--sans); }
.rt-months-dots { color: #8a7d6d; font: 400 28px/1.1 var(--sans); letter-spacing: 0; }
.rt-score-head { margin: 28px 4px 4px; color: #2f241a; font: 700 21px/1.45 var(--serif, serif); letter-spacing: -.03em; text-align: center; word-break: keep-all; }
.ny-toc-proof { margin: 88px 0 28px; color: #2f241a; font: 700 19px/1.5 var(--serif, serif); letter-spacing: -.03em; text-align: center; word-break: keep-all; }
.ny-count { color: #b3261e; font: 800 1.2em/1 var(--sans, sans-serif); font-style: normal; font-variant-numeric: tabular-nums; letter-spacing: -.02em; }
.rt-toc-sub { grid-column: 2; display: grid; gap: 4px; margin: 6px 0 0; padding: 0; list-style: none; }
.rt-toc-sub li { color: #4a4038; font: 500 15px/1.55 var(--sans); word-break: keep-all; }
.rt-toc-sub li.is-item { padding-left: 18px; color: #6b5d4e; font-size: 14px; }
.ny-blurwrap { position: relative; margin-top: 2px; }
.ny-blur-over { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; gap: 8px; margin: 0; padding: 0 16px; color: #2b221a; font-family: var(--ny-sans, sans-serif); font-size: 15px; font-weight: 700; letter-spacing: -.02em; text-align: center; text-shadow: 0 0 10px rgba(255, 255, 255, 0.95), 0 0 18px rgba(255, 255, 255, 0.9); pointer-events: none; }
.ny-lock-ico { display: inline-block; vertical-align: -2px; } .ny-lock-ico svg { display: block; }
body #chart-screen#chart-screen .rt-story .ny-card :is(.rf-ans, .rt-card-lead, .rt-past-text p, .rt-area-text) { font-family: var(--ny-sans, 'Pretendard', sans-serif); font-size: 16.5px !important; line-height: 1.75 !important; color: #2f2820; }
body #chart-screen#chart-screen .rt-story .ny-card .ny-blurwrap .rf-blur p { font-family: var(--ny-sans, 'Pretendard', sans-serif) !important; font-size: 16.5px !important; line-height: 1.75 !important; letter-spacing: -.02em !important; color: #4a3f33 !important; filter: blur(5px); margin: 0 !important; }

.ny-art { display: block; width: 100%; height: auto; margin: 28px 0; border-radius: 16px; box-shadow: none; }
.rt-pastmonths p.is-inline { display: block; } .rt-pastmonths p.is-inline b { display: inline; margin-right: 10px; } .rt-pastmonths p.is-inline span { display: inline; }

/* 그림 번짐: 가로 꽉 채우고 위는 또렷하게, 아래 18%만 바탕색으로 녹인다(오프닝, 공감, 돌아보기, 마무리). 고양이가 아래쪽에 있어 위는 지우지 않는다. 그림자와 모서리 없음 */
.ny-art.is-bleed { width: calc(100% + 40px); max-width: none; margin: 4px -20px 0; border-radius: 0; -webkit-mask-image: linear-gradient(to bottom, #000 82%, transparent 100%); mask-image: linear-gradient(to bottom, #000 82%, transparent 100%); }
/* 비교 도표(만세력 정확성): 헤더 구분 및 일반 AI(X) vs 월화담(O) 대비 강화 */
.rt-acc-table { display: grid; margin: 6px 0; border: 1px solid #3c4766; border-radius: 12px; background: #2a3350; overflow: hidden; text-align: left; }
.rt-acc-trow { display: grid; grid-template-columns: 1.4fr 1fr 1fr; align-items: center; gap: 8px; padding: 12px 14px; border-top: 1px solid #3c4766; color: #f3efe4; font: 500 14.5px/1.4 var(--ny-sans, var(--sans)); }
.rt-acc-trow:first-child { border-top: 0; background: rgba(15, 21, 36, 0.42); }
.rt-acc-trow.is-head { color: #cfd6e6; font-size: 13px; font-weight: 700; }
.rt-acc-trow.is-head span:nth-child(n+2) { text-align: center; }
.rt-acc-trow.is-head span:last-child { color: #e8c56f; font-weight: 800; }
.rt-acc-trow b { text-align: center; font: 800 17px/1 var(--ny-sans, var(--sans)); color: #e8c56f; }
.rt-acc-trow b.is-x { color: #8b97b8; opacity: .7; font-weight: 600; }
/* 표 모양 데이터(달별 목록)는 따뜻한 한지 도표 안에 둔다 */
.rt-pastmonths { background: #fffdf9; border: 1px solid #ebe2d4; border-radius: 14px; padding: 6px 18px 8px; gap: 0; }
.rt-pastmonths p { padding-top: 14px; padding-bottom: 12px; font-size: 16px; line-height: 1.65; }
.rt-pastmonths p b { font-size: 16.5px; min-width: 48px; display: inline-block; color: #a3392b; font-weight: 700; }
.rt-pastmonths p span { font-size: 16px; color: #2f2820; }
.rt-pastmonths p:first-child { border-top: 0; }
.rt-pastmonths .rt-months-gap { border-top: 1px solid #ebe2d4; }

/* 신년운세 무료 화면 글꼴 및 홍연(紅緣) 웜톤 통일: 새해를 맞이하는 밝고 화사한 한지+다홍+금빛 조화 */
body.ny-free #chart-screen#chart-screen .rt-story,
body.ny-free #chart-screen#chart-screen .rt-outro {
  --ny-sans: Pretendard, 'Pretendard Variable', system-ui, -apple-system, 'Noto Sans KR', sans-serif;
}
body.ny-free #chart-screen#chart-screen :is(.chart-kicker, #chart-kicker, .rt-tagline-kicker, .rt-card-tag, .rt-chapter-no, .rt-card-next) {
  color: #a3392b !important;
}
body.ny-free #chart-screen#chart-screen :is(.rt-story, .rt-outro) :is(.rt-card.rf-ch, .rt-card.rf-diff, .rt-card.rf-answer, .rt-card.rf-closing, .rt-card.rf-toc, .rt-card.rf-reviews, .rt-card.rf-why, .rt-card.rt-samplecard, .rf-letter, .rf-vd) {
  margin-left: -8px !important;
  margin-right: -8px !important;
}
body.ny-free #chart-screen#chart-screen :is(.rt-story, .rt-outro) :is(.rt-card.rf-ch, .rt-card.rf-diff, .rt-card.rf-answer, .rt-card.rf-closing, .rt-card.rf-toc, .rt-card.rf-reviews, .rt-card.rf-why, .rt-card.rt-samplecard) {
  padding-left: 16px !important;
  padding-right: 16px !important;
  background: #fff !important;
  border: 1px solid #ebe2d4 !important;
  border-radius: 18px !important;
  box-shadow: 0 6px 20px rgba(78, 62, 43, .05) !important;
}
body.ny-free #chart-screen#chart-screen :is(.rt-story, .rt-outro) :is(.rt-card.rf-answer, .rt-card.rf-closing) {
  background: linear-gradient(160deg, #fffdf9, #fdf3ee) !important;
  border-color: #dfc0b5 !important;
}

/* 새해 밝은 종합 판정 카드(.rf-vd.is-ny-bright): 재회 밤하늘 대신 새해 아침 햇살이 비치는 화사한 한지+홍연 다홍+금빛 카드 */
body.ny-free #chart-screen#chart-screen .rt-card.rf-vd.rf-vd.is-ny-bright {
  border: 1.5px solid #e2c2b3 !important;
  background: linear-gradient(165deg, #fffdf9 0%, #fdf4ec 55%, #f9eadc 100%) !important;
  box-shadow: 0 10px 28px rgba(163, 57, 43, .09) !important;
}
body.ny-free #chart-screen#chart-screen .rt-card.rf-vd.is-ny-bright .rf-vd-head small {
  color: #a3392b !important;
}
body.ny-free #chart-screen#chart-screen .rt-card.rf-vd.is-ny-bright .rf-vd-head h3 {
  color: #241b14 !important;
  text-shadow: none !important;
  white-space: pre-line;
}
body.ny-free #chart-screen#chart-screen .rt-card.rf-vd.is-ny-bright .rf-vd-score strong,
body.ny-free #chart-screen#chart-screen .rt-card.rf-vd.is-ny-bright .rf-vd-score span {
  color: #a3392b !important;
}
body.ny-free #chart-screen#chart-screen .rt-card.rf-vd.is-ny-bright .rf-vd-score small {
  color: #7a6548 !important;
}
body.ny-free #chart-screen#chart-screen .rt-card.rf-vd.is-ny-bright .rf-gauge {
  background: linear-gradient(90deg, #e2c699 0%, #d4834a 52%, #a3392b 100%);
}
body.ny-free #chart-screen#chart-screen .rt-card.rf-vd.is-ny-bright .rf-gauge i {
  border-color: #a3392b;
  background: #fff;
  box-shadow: 0 2px 6px rgba(163, 57, 43, .28);
}
body.ny-free #chart-screen#chart-screen .rt-card.rf-vd.is-ny-bright .rf-gauge-labels {
  color: #7a6548;
}
body.ny-free #chart-screen#chart-screen .rt-card.rf-vd.is-ny-bright .rf-vd-risk {
  background: #fff9f0;
  border: 1px solid #e6cfa8;
  color: #6b3420 !important;
}
body.ny-free #chart-screen#chart-screen .rt-card.rf-vd.is-ny-bright .rf-vd-metrics {
  border-top-color: #e6d7c3;
  border-bottom-color: #e6d7c3;
}
body.ny-free #chart-screen#chart-screen .rt-card.rf-vd.is-ny-bright .rf-vd-metric + .rf-vd-metric {
  border-left-color: #e6d7c3;
}
body.ny-free #chart-screen#chart-screen .rt-card.rf-vd.is-ny-bright .rf-vd-metric b {
  color: #6b5847 !important;
}
body.ny-free #chart-screen#chart-screen .rt-card.rf-vd.is-ny-bright .rf-vd-metric strong {
  color: #a3392b !important;
}
body.ny-free #chart-screen#chart-screen .rt-card.rf-vd.is-ny-bright .rf-vd-metric strong small {
  margin-left: 2px;
  font-size: 16px;
  font-weight: 700;
}
body.ny-free #chart-screen#chart-screen .rt-card.rf-vd.is-ny-bright .rf-vd-foot {
  color: #8a7662 !important;
}
body.ny-free #chart-screen#chart-screen .rt-card.rf-vd.is-ny-bright .ov-lock {
  background: #dfd2be !important;
}
body.ny-free #chart-screen#chart-screen .rt-card.rf-vd.is-ny-bright .rf-vd-line {
  color: #2f241a !important;
}
body.ny-free #chart-screen#chart-screen .rt-card.rf-vd.is-ny-bright .rf-vd-reason {
  border-top-color: #e6d7c3;
}
body.ny-free #chart-screen#chart-screen .rt-card.rf-vd.is-ny-bright .rf-vd-reason small {
  color: #a3392b !important;
}
body.ny-free #chart-screen#chart-screen .rt-card.rf-vd.is-ny-bright .rf-vd-reason b {
  color: #241b14 !important;
}
body.ny-free #chart-screen#chart-screen .rt-card.rf-vd.is-ny-bright .rf-vd-next {
  color: #7a6855 !important;
}

/* 12개월 미리보기 카드: 무료 공개 1~3월 행 */
.ny-months-preview {
  display: grid;
  gap: 0;
  margin: 4px 0 8px;
  padding: 4px 16px;
  background: #f7f2ea;
  border: 1px solid #ebe2d4;
  border-radius: 14px;
}
.ny-month-open-row {
  display: grid;
  gap: 6px;
  padding: 14px 0;
  border-top: 1px solid #e5dac8;
  text-align: left;
}
.ny-month-open-row:first-child {
  border-top: 0;
}
.ny-month-open-head {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 6px;
}
.ny-month-open-head .rf-badge-free {
  margin-right: 2px;
}
.ny-month-open-head b {
  color: #241b14;
  font: 800 16px/1.35 var(--ny-sans, var(--sans));
}
.ny-month-kw {
  color: #a3392b;
  font: 700 13px/1.3 var(--ny-sans, var(--sans));
}
.ny-month-open-row p {
  margin: 0;
  color: #3a2e24;
  font: 500 15px/1.68 var(--ny-sans, var(--sans));
  word-break: keep-all;
}

/* 왜 월화담 신년운세 카드 안의 자평진전 사진 */
.ny-why-photos {
  margin-top: 14px;
}
.ny-why-note {
  margin: 8px 0 0;
  color: #6b5a48;
  font: 500 13px/1.6 var(--ny-sans, var(--sans));
  text-align: center;
  word-break: keep-all;
}

/* 목차 상단 집계 인원 배지 */
.ny-toc-proof {
  margin: 0 0 12px;
  padding: 10px 14px;
  border-radius: 10px;
  background: #fdf3ee;
  border: 1px solid #e8cfc6;
  color: #2f241a;
  font: 700 14.5px/1.5 var(--ny-sans, var(--sans));
  text-align: center;
  word-break: keep-all;
}
.ny-count {
  color: #a3392b;
  font: 800 1.08em/1 var(--ny-sans, var(--sans));
  font-style: normal;
  font-variant-numeric: tabular-nums;
}

/* 마지막 결단 카드 + 일기예보 편지 묶음 */
.ny-closing-wrap {
  display: grid;
  gap: 22px;
}
body.ny-free #chart-screen#chart-screen .rt-outro .pg-prologue.rf-toon {
  margin-left: calc(50% - min(50vw, var(--app-max-width, 448px) / 2));
  margin-right: calc(50% - min(50vw, var(--app-max-width, 448px) / 2));
}
