/* 유료 풀이는 무료 결과의 report.css 토큰과 카드 규칙을 공유한다. */
[hidden] { display: none !important; }

.premium-body { color: var(--report-ink); }
.premium-body.premium-loading-active { overflow: hidden; }
.premium-shell { width: min(calc(100% - (var(--app-gutter) * 2)), calc(var(--app-max-width) - (var(--app-gutter) * 2))); margin: 0 auto; padding-top: 28px; padding-bottom: 80px; }
.premium-shell .full-scene,
.premium-shell .premium-chapter-cover,
.premium-shell .ov-art img { border-radius: 0; }
.premium-shell .full-scene .comic-character,
.premium-shell .premium-chapter-cover,
.premium-shell .ov-art img {
  aspect-ratio: var(--report-art-ratio);
  object-fit: cover;
}
.premium-cover .section-kicker,
.premium-identity > .section-kicker,
.premium-tension > .section-kicker,
.premium-chapter > .section-kicker { margin: 0 0 10px; color: var(--report-accent); font: 600 11px/1.5 var(--sans); letter-spacing: .1em; }

/* free-report-root는 무료 결과 화면의 실제 풀이 규칙을 이 페이지 안에서만 이어받는다. */
.premium-free-report { color: var(--report-ink); --muted: var(--report-muted); --line: var(--report-line); --card: #fff; }
.premium-free-report .section-kicker { color: #64758d; font-size: 11px; letter-spacing: .1em; }
.premium-free-report .micro-label { color: var(--report-meta); font-size: 12px; }
.orientation-time-corrections { margin: 10px 0 18px; padding: 10px 12px; border-left: 2px solid var(--report-line); background: var(--report-surface); }
.orientation-time-corrections .correction-list { margin: 0; }
.orientation-time-corrections .correction-list span { color: var(--report-ink); background: var(--report-accent-soft); font-size: 12px; }
.orientation-corrected-time { margin: 6px 0 0; color: var(--report-muted); font-size: 12px; line-height: 1.6; }
.premium-free-report h3 { font: 700 22px/1.45 var(--sans); letter-spacing: -.03em; }
.premium-free-report .chart-block { margin: 0 0 var(--report-gap); padding: 0; border: 0; border-radius: 0; background: transparent; box-shadow: none; }
.premium-free-report .block-heading { margin-bottom: 20px; }
.premium-free-report .advanced-chart-details { border: 0; border-radius: var(--report-radius); background: var(--report-surface); }
.premium-free-report .advanced-chart-details > summary { color: var(--report-ink); font: 600 16px/1.6 var(--sans); }
.premium-free-report .advanced-chart-content { padding: 0 var(--report-padding) 4px; }
.premium-free-report .advanced-chart-content .chart-block { margin-top: 20px; background: transparent; }
.premium-free-report .time-axis-block > p { color: var(--report-muted); font: 15px/1.7 var(--sans); }
.premium-free-report summary:focus-visible,
.premium-free-report button:focus-visible { outline: 2px solid var(--report-accent); outline-offset: 4px; }

.premium-gate { display: grid; gap: 14px; padding: 24px 0; text-align: center; }
.premium-gate h1 { margin: 0; color: var(--report-ink); font: 700 26px/1.4 var(--sans); letter-spacing: -.035em; }
.premium-gate p { margin: 0; color: var(--report-muted); font: 15px/1.75 var(--sans); overflow-wrap: anywhere; }
.premium-gate-detail { color: var(--report-accent-strong) !important; font-size: 14px !important; }
.premium-gate .premium-cta {
  max-width: 280px;
  margin: 10px auto 0;
  background: var(--report-accent-strong);
  color: #fff;
  border: 1px solid var(--report-accent-strong);
}

/* 첫 장은 본문으로 들어가기 전, 제목만 남는 표지처럼 읽히게 한다. */
.premium-cover { padding-bottom: var(--report-gap); border-bottom: 1px solid var(--report-line); }
.premium-cover-title-block {
  min-height: calc(100svh - 56px);
  display: grid;
  align-content: center;
  justify-items: center;
  padding: 32px 20px 44px;
  text-align: center;
}
.premium-cover-title-block .section-kicker { margin: 0 0 18px; }
.premium-cover h1 {
  max-width: 14em;
  margin: 0;
  color: var(--report-ink);
  font: 700 clamp(36px, 6vw, 52px)/1.3 var(--serif);
  letter-spacing: -.055em;
  text-align: center;
  overflow-wrap: anywhere;
}
.premium-cover-copy { display: grid; gap: 16px; margin: 0 0 28px; padding: var(--report-padding); border: 1px solid var(--report-line); border-radius: var(--report-radius); background: var(--report-surface); }
.premium-cover-copy p { max-width: var(--report-copy-max); margin: 0 auto; color: var(--report-ink); font: 400 var(--report-body-size)/1.9 var(--dialogue-font); letter-spacing: -.025em; text-align: left; overflow-wrap: anywhere; }
.premium-cover-copy strong { font-weight: 600; }

.premium-prologue-signature {
  max-width: 23em;
  min-height: 1.6em;
  margin: 0 auto 34px;
  color: var(--report-accent-strong);
  font: 700 clamp(21px, 4vw, 30px)/1.65 var(--serif);
  letter-spacing: -.045em;
  text-align: center;
  overflow-wrap: anywhere;
}
.premium-prologue-signature:not(.is-arrived) { visibility: hidden; }
.premium-prologue-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 24px; max-width: 820px; margin: 0 auto; }
.premium-prologue-discovery { min-width: 0; padding-top: 16px; border-top: 1px solid var(--report-line); break-inside: avoid; }
.premium-prologue-label { margin: 0 0 8px; color: var(--report-accent-strong); font: 600 12px/1.5 var(--sans); }
.premium-prologue-discovery h3 { margin: 0 0 12px; color: var(--report-ink); font: 700 19px/1.55 var(--serif); letter-spacing: -.035em; word-break: keep-all; overflow-wrap: anywhere; }
.premium-prologue-discovery ul { margin: 0; padding-left: 17px; color: var(--report-ink); font: 400 15px/1.8 var(--sans); word-break: keep-all; overflow-wrap: anywhere; }
.premium-prologue-discovery li + li { margin-top: 6px; }
.premium-prologue-advice { font-weight: 600; color: var(--report-accent-strong); }
.premium-glance-page { max-width: 760px; margin: 0 auto 36px; }
.premium-glance-page-label { margin: 0 0 14px; color: var(--report-accent-strong); font: 600 12px/1.5 var(--sans); letter-spacing: .04em; }
.premium-glance-card { padding: 28px var(--report-padding); background: var(--report-surface); border: 1px solid var(--report-line); border-radius: var(--report-radius); break-inside: avoid; }
.premium-glance-card + .premium-glance-card { margin-top: 16px; }
.premium-glance-label { margin: 0 0 14px; color: var(--report-accent-strong); font: 600 15px/1.5 var(--sans); }
.premium-glance-value { margin: 0 0 12px; color: var(--report-ink); font: 700 clamp(21px, 3.8vw, 28px)/1.55 var(--serif); letter-spacing: -.035em; word-break: keep-all; overflow-wrap: anywhere; }
.premium-glance-day .premium-glance-value { font-size: 58px; letter-spacing: .12em; }
.premium-glance-description { margin: 0; color: var(--report-ink); font: 400 17px/1.9 var(--sans); white-space: pre-line; word-break: keep-all; overflow-wrap: anywhere; }
.premium-glance-timing { margin: 0; }
.premium-glance-timing > div + div { margin-top: 18px; padding-top: 18px; border-top: 1px solid var(--report-line); }
.premium-glance-timing dt { margin-bottom: 6px; color: var(--report-accent-strong); font: 500 12px/1.5 var(--sans); }
.premium-glance-timing dd { margin: 0; color: var(--report-ink); font: 600 20px/1.65 var(--serif); word-break: keep-all; overflow-wrap: anywhere; }
.premium-glance-footnote { margin: 12px auto 0; max-width: 760px; color: var(--report-muted); font: 400 11px/1.7 var(--sans); text-align: center; }
.premium-prologue-classics {
  max-width: 680px;
  margin: 0 auto;
  padding: 30px var(--report-padding) 0;
  border-top: 1px solid var(--report-line);
  text-align: center;
}
.premium-prologue-classics .ov-classic-list { margin-top: 6px; }
.premium-prologue-classics .ov-foot { margin-bottom: 0; }

.premium-peak { padding: var(--report-gap) 0; border-bottom: 1px solid var(--report-line); }
.premium-peak > .section-kicker { margin: 0 0 10px; color: var(--report-accent); font: 600 11px/1.5 var(--sans); letter-spacing: .1em; text-align: center; }
.premium-peak > h2 { margin: 6px 0 22px; color: var(--report-ink); font: 700 25px/1.4 var(--serif); letter-spacing: -.04em; text-align: center; }
.premium-peak-card { overflow: hidden; border: 1px solid var(--report-line); border-radius: var(--report-radius); background: var(--report-surface-strong); }
.premium-peak-summary { padding: 24px var(--report-padding); background: var(--report-accent-soft); }
.premium-peak-near { margin-bottom: 20px; }
.premium-peak-label { display: block; margin-bottom: 8px; color: var(--report-accent); font: 700 12px/1.5 var(--sans); letter-spacing: .02em; }
.premium-peak-period { display: block; margin-bottom: 7px; color: var(--report-accent-strong); font: 700 24px/1.35 var(--sans); letter-spacing: -.035em; font-variant-numeric: tabular-nums; }
.premium-peak-type { margin: 0; color: var(--report-ink); font: 600 17px/1.6 var(--sans); letter-spacing: -.025em; }
.premium-peak-context { margin: 8px 0 0; color: var(--report-muted); font: 13px/1.65 var(--sans); }
.premium-peak-note { margin: 8px 0 0; color: var(--report-muted); font: 12px/1.6 var(--sans); }
.premium-peak-evidence { display: grid; gap: 0; margin: 0; padding: 0 var(--report-padding); list-style: none; }
.premium-peak-evidence li { display: grid; grid-template-columns: 88px minmax(0, 1fr); gap: 14px; padding: 18px 0; border-bottom: 1px solid var(--report-line); }
.premium-peak-evidence li:last-child { border-bottom: 0; }
.premium-peak-axis { color: var(--report-meta); font: 600 12px/1.6 var(--sans); }
.premium-peak-evidence-copy { min-width: 0; }
.premium-peak-evidence-copy strong { display: block; margin-bottom: 4px; color: var(--report-accent-strong); font: 700 16px/1.5 var(--sans); overflow-wrap: anywhere; }
.premium-peak-evidence-copy p { margin: 0; color: var(--report-muted); font: 14px/1.75 var(--dialogue-font); letter-spacing: -.02em; overflow-wrap: anywhere; }
.premium-peak-disclaimer { margin: 0; padding: 16px var(--report-padding); border-top: 1px solid var(--report-line); color: var(--report-meta); font: 12px/1.75 var(--sans); }
.premium-peak-years { padding: 26px var(--report-padding); border-top: 1px solid var(--report-line); background: var(--report-surface); }
.premium-peak-years > h3 { margin: 0 0 18px; color: var(--report-ink); font: 700 18px/1.5 var(--sans); letter-spacing: -.025em; }
.premium-peak-year { padding: 22px 0; border-top: 1px solid var(--report-line); }
.premium-peak-year:first-of-type { padding-top: 0; border-top: 0; }
.premium-peak-year:last-child { padding-bottom: 0; }
.premium-peak-year header { margin-bottom: 12px; }
.premium-peak-year header strong { display: block; color: var(--report-accent-strong); font: 700 19px/1.45 var(--sans); font-variant-numeric: tabular-nums; }
.premium-peak-year header p { margin: 4px 0 0; color: var(--report-ink); font: 600 15px/1.65 var(--sans); }
.premium-peak-year-basis { margin: 0 0 15px; padding: 10px 12px; border-radius: 10px; background: var(--report-surface-strong); color: var(--report-meta); font: 12px/1.65 var(--sans); overflow-wrap: anywhere; }
.premium-peak-year h4 { margin: 14px 0 6px; color: var(--report-ink); font: 700 13px/1.5 var(--sans); }
.premium-peak-year ul, .premium-peak-year ol { display: grid; gap: 7px; margin: 0; padding-left: 20px; }
.premium-peak-year li { color: var(--report-muted); font: 14px/1.7 var(--dialogue-font); letter-spacing: -.02em; overflow-wrap: anywhere; }
/* 세 해 중 가장 좋은 해 하나만 크게, 나머지 두 해는 짧은 카드로 */
.premium-peak-year-best { margin: 0 0 16px; padding: 22px 18px !important; border: 2px solid var(--report-accent-strong) !important; border-radius: var(--report-radius); background: var(--report-accent-soft); }
.premium-peak-best-badge { display: inline-block; margin: 0 0 10px; padding: 4px 10px; border-radius: 999px; background: var(--report-accent-strong); color: var(--report-surface-strong); font: 700 12px/1.5 var(--sans); letter-spacing: .02em; }
.premium-peak-year-best header strong { font-size: 24px; }
.premium-peak-year-best header p { font-size: 17px; }
.premium-peak-year-rest { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 10px; }
.premium-peak-year-mini { display: grid; gap: 4px; padding: 14px 16px; border: 1px solid var(--report-line); border-radius: 12px; background: var(--report-surface-strong); }
.premium-peak-year-mini strong { color: var(--report-muted); font: 700 14px/1.5 var(--sans); font-variant-numeric: tabular-nums; }
.premium-peak-year-mini p { margin: 0; color: var(--report-ink); font: 600 14px/1.6 var(--sans); overflow-wrap: anywhere; }
.premium-peak-year-mini small { color: var(--report-muted); font: 13px/1.6 var(--dialogue-font); overflow-wrap: anywhere; }
.juwol-part-note { margin-top: 20px; }
.premium-peak-loading { padding: 24px var(--report-padding); border-radius: var(--report-radius); background: var(--report-surface); color: var(--report-muted); font: 14px/1.7 var(--sans); text-align: center; }
.premium-past-peak { display: grid; gap: 5px; margin-top: 14px; padding: 18px var(--report-padding); border-left: 3px solid var(--report-line); background: var(--report-surface); }
.premium-past-peak small { color: var(--report-meta); font: 700 11px/1.5 var(--sans); letter-spacing: .06em; }
.premium-past-peak strong { color: var(--report-ink); font: 700 17px/1.5 var(--sans); font-variant-numeric: tabular-nums; }
.premium-past-peak p { margin: 0; color: var(--report-muted); font: 13px/1.7 var(--dialogue-font); overflow-wrap: anywhere; }
.premium-past-peak p:first-of-type { color: var(--report-ink); font-weight: 600; }

/* 결제 직후 열린 계산 결과 */

/* 유료 해설도 무료의 섹션 간격과 중앙 제목 위계를 따른다. */
.premium-identity, .premium-tension, .premium-chapter { padding-top: var(--report-gap); margin-top: var(--report-gap); border-top: 1px solid var(--report-line); }
.premium-identity h2, .premium-tension h2, .premium-chapter h2 { margin: 6px 0 18px; color: var(--report-ink); font: 700 22px/1.45 var(--sans); letter-spacing: -.03em; text-align: center; overflow-wrap: anywhere; }
.premium-patterns { padding-top: var(--report-gap); margin-top: var(--report-gap); border-top: 1px solid var(--report-line); }
.premium-patterns > .section-kicker { margin: 0 0 10px; color: var(--report-accent); font: 600 11px/1.5 var(--sans); letter-spacing: .1em; }
.premium-patterns > h2 { margin: 6px 0 18px; color: var(--report-ink); font: 700 22px/1.45 var(--sans); letter-spacing: -.03em; text-align: center; overflow-wrap: anywhere; }
.premium-patterns > .premium-chapter-lead { margin-bottom: 28px; }
.premium-pattern-block { padding-top: 32px; margin-top: 32px; border-top: 1px solid var(--report-line); }
.premium-pattern-block:first-of-type { padding-top: 0; margin-top: 0; border-top: 0; }
.premium-pattern-label { margin: 0 0 8px; color: var(--report-accent); font: 600 12px/1.5 var(--sans); letter-spacing: .02em; }
.premium-pattern-block h3 { margin: 0 0 10px; color: var(--report-ink); font: 700 20px/1.5 var(--sans); letter-spacing: -.03em; overflow-wrap: anywhere; }
.premium-pattern-caption { margin: 0 0 18px; color: var(--report-muted); font: 400 15px/1.8 var(--dialogue-font); letter-spacing: -.025em; overflow-wrap: anywhere; }
.premium-pattern-lead { margin: 0 0 18px; padding: 16px var(--report-padding); border-radius: var(--report-radius); background: var(--report-accent-soft); color: var(--report-accent-strong); font: 600 16px/1.75 var(--sans); letter-spacing: -.025em; overflow-wrap: anywhere; }
.premium-pattern-lead strong { font-weight: 700; }
.premium-pattern-count-legend { display: flex; flex-wrap: wrap; gap: 7px 18px; margin: 0 0 12px; color: var(--report-muted); font: 12px/1.5 var(--sans); }
.premium-pattern-count-legend > span { display: inline-flex; align-items: center; gap: 7px; }
.premium-pattern-count-legend > span::before { content: ''; width: 12px; height: 12px; border-radius: 3px; background: var(--report-accent-strong); }
.premium-pattern-count-legend > .premium-pattern-count-legend-hidden::before { background: #b58a5a; }
.premium-pattern-counts { display: grid; gap: 10px; margin: 0 0 18px; }
.premium-pattern-count-row { display: grid; grid-template-columns: 88px minmax(0, 1fr) 32px; align-items: center; gap: 10px; }
.premium-pattern-count-name { display: grid; min-width: 0; gap: 1px; color: var(--report-ink); }
.premium-pattern-count-name strong { font: 600 13px/1.35 var(--sans); }
.premium-pattern-count-name small { color: var(--report-meta); font: 400 10px/1.3 var(--sans); }
.premium-pattern-count-track { display: flex; height: 12px; overflow: hidden; border-radius: 999px; background: var(--report-surface); }
.premium-pattern-count-fill { display: block; height: 100%; min-width: 0; background: var(--report-accent-strong); }
.premium-pattern-count-fill-hidden { background: #b58a5a; }
.premium-pattern-count-number { color: var(--report-muted); font: 600 13px/1.5 var(--sans); text-align: right; font-variant-numeric: tabular-nums; }
.premium-pattern-details { display: grid; gap: 8px; margin: 0; padding: 14px var(--report-padding); border-radius: var(--report-radius); background: var(--report-surface); }
.premium-pattern-detail { display: flex; flex-wrap: wrap; align-items: baseline; gap: 7px; color: var(--report-muted); font: 14px/1.7 var(--sans); }
.premium-pattern-detail strong { color: var(--report-ink); font-weight: 600; }
.premium-pattern-detail small { color: var(--report-meta); }
.premium-pattern-reading { margin: 20px 0 0; padding: 18px var(--report-padding); border-top: 1px solid var(--report-line); background: var(--report-surface); }
.premium-pattern-reading-title { margin: 0 0 12px; color: var(--report-ink); font: 700 15px/1.5 var(--sans); letter-spacing: -.02em; }
.premium-pattern-reading-list { display: grid; gap: 14px; }
.premium-pattern-reading-item { display: grid; gap: 4px; }
.premium-pattern-reading-item strong { color: var(--report-accent-strong); font: 700 14px/1.5 var(--sans); }
.premium-pattern-reading-item p { margin: 0; color: var(--report-ink); font: 400 14px/1.8 var(--dialogue-font); letter-spacing: -.025em; overflow-wrap: anywhere; }
.premium-pattern-reading-loading,
.premium-pattern-reading-error { margin: 0; color: var(--report-muted); font: 13px/1.7 var(--sans); }
.premium-pattern-reading-error { margin-bottom: 10px; color: var(--report-accent-strong); }
.premium-stage-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin: 0 0 18px; }
.premium-stage-card { display: grid; gap: 5px; min-width: 0; padding: 16px 14px; border: 1px solid var(--report-line); border-radius: var(--report-radius); background: var(--report-surface); }
.premium-stage-position { color: var(--report-meta); font: 600 11px/1.4 var(--sans); }
.premium-stage-branch { color: var(--report-ink); font: 400 27px/1.1 var(--serif); }
.premium-stage-name { color: var(--report-accent-strong); font: 700 17px/1.4 var(--sans); }
.premium-stage-meaning { margin: 0; color: var(--report-muted); font: 13px/1.65 var(--dialogue-font); letter-spacing: -.02em; }
.premium-stage-unknown { color: var(--report-meta); font: 13px/1.6 var(--sans); }
.premium-stage-note { margin: 0; color: var(--report-meta); font: 12px/1.7 var(--sans); }
.premium-card { padding: 24px var(--report-padding); }
.premium-timing-facts { margin: 0 0 24px; padding: 16px var(--report-padding); background: var(--report-card, #f7f7f7); border-radius: 12px; color: var(--report-muted); font: 400 14px/1.8 var(--sans); overflow-wrap: anywhere; }
.premium-timing-facts summary { cursor: pointer; color: var(--report-ink); font-weight: 600; }
.premium-timing-facts ul { padding-left: 20px; }
#premium-glossary-body .premium-card + .premium-card { margin-top: 16px; }
.premium-glossary-list { display: grid; gap: 0; margin: 18px 0 0; }
.premium-glossary-entry { display: grid; grid-template-columns: minmax(82px, .28fr) minmax(0, 1fr); gap: 18px; padding: 16px 4px; border-top: 1px solid var(--report-line); }
.premium-glossary-entry:last-child { border-bottom: 1px solid var(--report-line); }
.premium-glossary-entry dt { color: var(--report-ink); font: 700 16px/1.6 var(--serif); overflow-wrap: anywhere; }
.premium-glossary-entry dd { min-width: 0; margin: 0; color: var(--report-muted); font: var(--report-body-size)/var(--report-body-leading) var(--dialogue-font); letter-spacing: -.025em; overflow-wrap: anywhere; }
@media (max-width: 480px) {
  .premium-glossary-entry { grid-template-columns: 1fr; gap: 5px; padding: 14px 2px; }
}
.premium-identity-headline { margin: 0 0 20px; padding-bottom: 18px; border-bottom: 1px solid var(--report-line); color: var(--report-accent-strong); font: 600 18px/1.7 var(--sans); letter-spacing: -.025em; overflow-wrap: anywhere; }
.premium-identity-copy { display: grid; gap: 20px; }
.premium-card .premium-identity-copy p { font-size: var(--report-body-size); line-height: var(--report-body-leading); }
.premium-timing-parts { display: block; }
.premium-timing-part { padding-top: 40px; margin-top: 40px; border-top: 1px solid var(--report-line); }
.premium-timing-part:first-child { padding-top: 24px; margin-top: 0; border-top: 0; }
.premium-timing-part h3 { margin: 0 0 14px; color: var(--report-ink); font: 700 20px/1.5 var(--sans); letter-spacing: -.03em; overflow-wrap: anywhere; }
.premium-timing-part > .premium-card { margin: 0; }
.premium-timing-part p { margin: 0; color: var(--report-muted); font: var(--report-body-size)/var(--report-body-leading) var(--dialogue-font); letter-spacing: -.025em; white-space: pre-line; overflow-wrap: anywhere; }
.premium-timing-part-number { margin: 0 0 6px; color: var(--report-meta); font: 700 12px/1.4 var(--sans); letter-spacing: .1em; }
.premium-forecast { margin: 24px 0 34px; }
.premium-forecast > header { margin-bottom: 14px; }
.premium-forecast > header h3 { margin: 0 0 5px; color: var(--report-ink); font: 700 19px/1.45 var(--sans); letter-spacing: -.03em; }
.premium-forecast > header p { margin: 0; color: var(--report-meta); font: 12px/1.6 var(--sans); }
.premium-forecast-legend { margin: 10px 2px 0; color: var(--report-meta); font: 10px/1.55 var(--sans); word-break: keep-all; }
.premium-monthly-chart { margin: 12px 0 18px; padding: 10px 8px 4px; border: 1px solid #eadfca; border-radius: 16px; background: linear-gradient(180deg, #fffdf7, #f8f3e8); overflow: hidden; }
.premium-monthly-chart svg { display: block; width: 100%; height: auto; overflow: visible; }
.premium-monthly-area { fill: #d9bd7b24; }
.premium-monthly-line { fill: none; stroke: #9b7b40; stroke-width: 3; stroke-linecap: round; stroke-linejoin: round; }
.premium-monthly-chart circle { fill: #fffdf8; stroke: #9b7b40; stroke-width: 2; }
.premium-monthly-chart circle.is-peak { fill: #d89145; stroke: #fff8e9; stroke-width: 3; }
.premium-monthly-chart circle.is-valley { fill: #69768d; stroke: #f2f5fa; stroke-width: 3; }
.premium-monthly-chart text { fill: #817866; font: 10px var(--sans); text-anchor: middle; }
.premium-monthly-chart .premium-monthly-pin { fill: #4b4338; font-weight: 700; }
.premium-flow-timeline { display: grid; gap: 9px; }
.premium-flow-row { --flow-color: #716e65; --flow-bg: rgba(255,255,255,.72); display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 14px 16px; border: 1px solid color-mix(in srgb, var(--flow-color) 24%, white); border-radius: 14px; background: var(--flow-bg); break-inside: avoid; page-break-inside: avoid; box-sizing: border-box; }
.premium-flow-row.is-sunny, .premium-flow-row.is-fair { --flow-color: #a66b25; --flow-bg: #faf4ed; }
.premium-flow-row.is-cloudy { --flow-color: #716e65; --flow-bg: rgba(255,255,255,.72); }
.premium-flow-row.is-rain, .premium-flow-row.is-storm { --flow-color: #586a85; --flow-bg: #f0f2f5; }
.premium-flow-identity { display: flex; min-width: 0; align-items: center; gap: 10px; }
.premium-flow-identity > strong { flex: 0 0 auto; color: #2c2623; font: 700 18px/1.3 var(--serif); font-variant-numeric: tabular-nums; }
.premium-flow-ganzhi { flex: 0 1 auto; padding: 3px 8px; border-radius: 7px; background: color-mix(in srgb, var(--flow-color) 11%, white); color: #625e57; font: 600 11px/1.35 var(--serif); white-space: nowrap; }
.premium-flow-weather { flex: 0 0 auto; color: var(--flow-color); font: 700 11px/1.35 var(--sans); white-space: nowrap; }
.premium-flow-reading { flex: 0 1 280px; min-width: 150px; text-align: right; }
.premium-flow-reading b { color: var(--flow-color); font: 700 14px/1.35 var(--sans); }
.premium-flow-reading p { margin: 2px 0 0; color: var(--report-muted); font: 11px/1.45 var(--sans); word-break: keep-all; }
.premium-flow-timeline .premium-flow-row { display: block; min-height: 0 !important; height: auto !important; padding: 16px 18px; }
.premium-flow-timeline .premium-flow-identity { padding-bottom: 11px; border-bottom: 1px solid color-mix(in srgb, var(--flow-color) 18%, white); }
.premium-flow-timeline .premium-flow-reading { min-width: 0; max-width: none; margin-top: 11px; text-align: left; }
.premium-flow-timeline .premium-flow-reading > b { display: block; margin-bottom: 8px; font-size: 15px; }
.premium-flow-timeline .premium-flow-reading p { display: grid; grid-template-columns: max-content minmax(0, 1fr); column-gap: 12px; row-gap: 2px; margin: 5px 0 0; color: #46423d; font: 12px/1.55 var(--sans); }
.premium-flow-timeline .premium-flow-reading p > span { color: var(--flow-color); font-weight: 700; white-space: nowrap; }
.premium-flow-timeline .premium-month-juwol { margin-top: 8px; padding-top: 8px; border-top: 1px dashed color-mix(in srgb, var(--flow-color) 20%, white); color: #5a5148; font-family: var(--serif); }
@media (max-width: 480px) {
  .premium-monthly-chart { margin-inline: calc(var(--report-padding) * -.35); }
  .premium-flow-row { align-items: flex-start; gap: 8px; padding: 13px 12px; flex-direction: column; }
  .premium-flow-identity { width: 100%; gap: 7px; flex-wrap: wrap; }
  .premium-flow-reading { min-width: 0; text-align: left; }
  .premium-flow-timeline .premium-flow-row { padding: 14px 15px; }
  .premium-flow-timeline .premium-flow-reading p { grid-template-columns: 1fr; gap: 1px; }
}
.premium-concern-input { margin: 0 0 18px; padding: 12px 14px; border-radius: 10px; background: var(--report-accent-soft); color: var(--report-muted); font: 14px/1.7 var(--dialogue-font); overflow-wrap: anywhere; }
.premium-concern-loading { margin: 0; padding: 24px var(--report-padding); border-radius: var(--report-radius); background: var(--report-surface); color: var(--report-muted); font: 14px/1.7 var(--sans); text-align: center; }

.premium-poles { display: grid; justify-items: center; gap: 8px; margin: 0 0 26px; }
.premium-pole { display: grid; gap: 8px; width: 100%; padding: 20px var(--report-padding); border: 1px solid var(--report-line); border-radius: var(--report-radius); background: var(--report-surface); text-align: center; box-sizing: border-box; }
.premium-pole strong { color: var(--report-ink); font: 700 18px/1.5 var(--sans); letter-spacing: -.03em; overflow-wrap: anywhere; }
.premium-pole p { margin: 0; color: var(--report-muted); font: 400 15px/1.8 var(--dialogue-font); letter-spacing: -.025em; overflow-wrap: anywhere; }
.premium-poles-arrow { color: var(--report-accent-strong); font: 700 20px/1 var(--sans); }
.premium-tension-verdict { margin: 0 0 26px; padding: 18px var(--report-padding); border-left: 2px solid var(--report-accent); color: var(--report-accent-strong); font: 600 16px/1.85 var(--sans); letter-spacing: -.025em; overflow-wrap: anywhere; }

.premium-chapter-cover { display: block; width: 100%; height: auto; margin: 4px 0 24px; }
.premium-chapter-lead { max-width: var(--report-copy-max); margin: 0 auto 12px; color: var(--report-muted); font: 400 var(--report-body-size)/1.85 var(--dialogue-font); text-align: left; overflow-wrap: anywhere; }
.premium-scene { padding-top: 40px; margin-top: 40px; border-top: 1px solid var(--report-line); }
.premium-scene:first-child { padding-top: 24px; margin-top: 24px; border-top: 0; }
.premium-scene-number { margin: 0 0 6px; color: var(--report-meta); font: 700 12px/1.4 var(--sans); letter-spacing: .1em; }
.premium-scene h3 { margin: 0 0 14px; color: var(--report-ink); font: 700 20px/1.5 var(--sans); letter-spacing: -.03em; overflow-wrap: anywhere; }
.premium-scene-summary { margin: 0 0 20px; padding: 16px 18px; border-left: 3px solid var(--report-accent); background: #faf8f3; }
.premium-scene-summary p { margin: 0; overflow-wrap: anywhere; }
.premium-scene-summary-conclusion { color: var(--report-ink); font: 700 17px/1.55 var(--sans); letter-spacing: -.025em; }
.premium-scene-summary-action { margin-top: 7px !important; color: var(--report-muted); font: 500 15px/1.65 var(--sans); letter-spacing: -.02em; }
.premium-scene-headline { margin: 0 0 18px; padding-bottom: 18px; border-bottom: 1px solid var(--report-line); color: var(--report-accent-strong); font: 600 17px/1.7 var(--sans); letter-spacing: -.025em; overflow-wrap: anywhere; }

/* 주월의 개념 설명도 같은 회백색 카드와 연한 블루 강조를 사용한다. */
.concept-note { position: relative; margin: 0 0 24px; padding: 18px var(--report-padding); border: 1px solid var(--report-line); border-radius: var(--report-radius); background: var(--report-accent-soft); box-sizing: border-box; }
.concept-note-name { display: block; margin-bottom: 6px; color: var(--report-accent); font: 600 11px/1.4 var(--sans); letter-spacing: .06em; }
.concept-note-term { display: flex; align-items: baseline; gap: 7px; margin-bottom: 4px; color: var(--report-accent-strong); font: 700 19px/1.4 var(--sans); letter-spacing: -.03em; overflow-wrap: anywhere; }
.concept-note-term small { color: var(--report-muted); font: 400 13px/1.4 var(--serif); letter-spacing: .02em; }
.concept-note-oneliner { margin: 0 0 12px !important; color: var(--report-accent-strong) !important; font: 600 14px/1.6 var(--sans) !important; letter-spacing: -.02em; overflow-wrap: anywhere; }
.concept-note-body { margin: 0; color: var(--report-ink); font: 400 14px/1.85 var(--dialogue-font); letter-spacing: -.025em; overflow-wrap: anywhere; }
.concept-note-example { margin-top: 14px; padding: 12px 14px; border-radius: 12px; background: var(--report-surface-strong); }
.concept-note-example small { display: block; margin-bottom: 7px; color: var(--report-accent); font: 600 11px/1.4 var(--sans); letter-spacing: .04em; }
.concept-note-example ul { display: grid; gap: 5px; margin: 0; padding: 0; list-style: none; }
.concept-note-example li { color: var(--report-ink); font: 500 14px/1.6 var(--sans); font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.concept-note-empty { margin: 12px 0 0 !important; color: var(--report-muted) !important; font: 400 13px/1.7 var(--sans) !important; }
.premium-scene .concept-note, .premium-chapter .concept-note { margin-top: 36px; }

.premium-basis { display: flex; flex-wrap: wrap; align-items: baseline; gap: 8px; margin-top: 40px; padding-top: 14px; border-top: 1px solid var(--report-line); }
.premium-basis-label { flex: 0 0 auto; color: var(--report-meta); font: 600 11px/1.6 var(--sans); letter-spacing: .04em; }
.premium-basis-list { min-width: 0; color: var(--report-meta); font: 11px/1.7 var(--sans); overflow-wrap: anywhere; }

.premium-shell .report-status { margin-bottom: 12px; }
.premium-shell .primary-button.small,
.premium-shell .primary-button.small:hover,
.premium-shell .day-pillar-loading .skeleton-shimmer { background: linear-gradient(100deg, #eef0f3 30%, #f8f9fb 50%, #eef0f3 70%); background-size: 220% 100%; }

@media (max-width: 400px) {
  .premium-card, .premium-cover-copy { padding-inline: var(--report-padding); }
  .concept-note { margin-left: 22px; padding-left: 38px; }
}

@media (max-width: 400px) {
  .premium-pattern-count-row { grid-template-columns: 76px minmax(0, 1fr) 26px; gap: 7px; }
  .premium-stage-grid { gap: 8px; }
  .premium-stage-card { padding-inline: 12px; }
  .premium-peak-evidence li { grid-template-columns: 76px minmax(0, 1fr); gap: 10px; }
}

.premium-chapter-answers { margin: 22px 0 30px; padding: 20px; border: 1px solid var(--report-line); border-radius: 14px; background: var(--report-surface-strong, #fff); }
.premium-chapter-answers article + article { margin-top: 22px; padding-top: 22px; border-top: 1px solid var(--report-line); }
.premium-chapter-answers h3 { margin: 0 0 12px; color: var(--report-accent-strong); font: 700 17px/1.6 var(--sans); overflow-wrap: anywhere; }
.premium-answer-copy { color: var(--report-muted); font: 15px/1.85 var(--sans); overflow-wrap: anywhere; }
.premium-answer-direct { margin: 0 0 12px; color: var(--report-ink); font-weight: 700; }
.premium-answer-explanation { margin: 0; white-space: pre-line; }
.premium-answer-error { margin-top: 16px; }
@media (max-width: 480px) { .premium-chapter-answers { padding: 16px; } }

/* 13장 「다시, 나」 — 근거·점수 없이 사람에게 돌아오는 엔딩. 여백을 넉넉히 두고 문장만 남긴다. */
.premium-epilogue-loading { margin: 0; padding: 24px var(--report-padding); border-radius: var(--report-radius); background: var(--report-surface); color: var(--report-muted); font: 14px/1.7 var(--sans); text-align: center; }
.premium-epilogue-part { margin: 0 0 44px; }
.premium-epilogue-part > h3 { margin: 0 0 18px; color: var(--report-ink); font: 700 20px/1.5 var(--sans); letter-spacing: -.03em; }
.premium-epilogue-faces { display: grid; gap: 10px; margin: 0 0 24px; padding: 0; list-style: none; }
.premium-epilogue-faces li { display: grid; gap: 4px; padding: 16px var(--report-padding); border: 1px solid var(--report-line); border-radius: var(--report-radius); background: var(--report-surface); }
.premium-epilogue-faces small { color: var(--report-accent); font: 600 12px/1.5 var(--sans); letter-spacing: .02em; }
.premium-epilogue-faces strong { color: var(--report-ink); font: 700 17px/1.6 var(--sans); letter-spacing: -.03em; overflow-wrap: anywhere; }
.premium-epilogue-closing { margin: 0; color: var(--report-accent-strong); font: 600 17px/1.8 var(--serif); letter-spacing: -.03em; text-align: center; }
.premium-epilogue-profile { display: grid; gap: 20px; padding: 30px var(--report-padding); border-radius: var(--report-radius); background: var(--report-surface); }
.premium-epilogue-profile p { margin: 0; color: var(--report-ink); font: 400 16px/1.9 var(--dialogue-font); letter-spacing: -.025em; overflow-wrap: anywhere; }
.premium-epilogue-profile .premium-epilogue-profile-opener { color: var(--report-muted); font: 600 14px/1.6 var(--sans); }
.premium-epilogue-profile .premium-epilogue-profile-lead { margin-top: -12px; color: var(--report-accent-strong); font: 700 22px/1.55 var(--serif); letter-spacing: -.04em; }
.premium-epilogue-profile .premium-epilogue-profile-habits { font-weight: 600; }
.premium-epilogue-profile .premium-epilogue-profile-need { padding-top: 18px; border-top: 1px solid var(--report-line); }
.premium-epilogue-manual { padding: 28px var(--report-padding) 18px; border: 2px solid var(--report-ink); border-radius: var(--report-radius); background: var(--report-surface-strong); }
.premium-epilogue-manual-title { margin: 0 0 18px; padding-bottom: 14px; border-bottom: 2px solid var(--report-ink); color: var(--report-ink); font: 800 21px/1.4 var(--sans); letter-spacing: -.04em; }
.premium-epilogue-manual dl { display: grid; gap: 0; margin: 0; }
.premium-epilogue-manual dt { padding-top: 14px; color: var(--report-accent); font: 700 13px/1.5 var(--sans); }
.premium-epilogue-manual dd { margin: 4px 0 0; padding-bottom: 14px; border-bottom: 1px dashed var(--report-line); color: var(--report-ink); font: 600 16px/1.7 var(--sans); letter-spacing: -.03em; overflow-wrap: anywhere; }
.premium-epilogue-manual dd:last-of-type { border-bottom: 0; }
.premium-epilogue-manual-brand { display: block; margin-top: 10px; color: var(--report-meta); font: 11px/1.5 var(--sans); letter-spacing: .06em; text-align: right; }
.premium-epilogue-verdict { display: grid; gap: 16px; padding: 28px var(--report-padding); border-radius: var(--report-radius); background: var(--report-accent-soft); text-align: center; }
.premium-epilogue-verdict small { color: var(--report-accent); font: 600 12px/1.5 var(--sans); letter-spacing: .02em; }
.premium-epilogue-verdict-lines { margin: 0; color: var(--report-ink); font: 700 19px/1.7 var(--serif); letter-spacing: -.035em; overflow-wrap: anywhere; }
.premium-epilogue-meow { justify-self: center; margin: 0; padding: 14px 18px; border-radius: 18px; background: var(--report-surface-strong); color: var(--report-ink); font: 500 15px/1.75 var(--dialogue-font); letter-spacing: -.02em; overflow-wrap: anywhere; }
.premium-epilogue-face { display: block; width: 100%; height: auto; margin: 0 0 22px; border-radius: var(--report-radius); }
.premium-epilogue-letter { display: grid; gap: 18px; }
.premium-epilogue-letter p { margin: 0; color: var(--report-ink); font: 400 16px/1.9 var(--dialogue-font); letter-spacing: -.025em; overflow-wrap: anywhere; }
.premium-epilogue-letter .premium-epilogue-sign { color: var(--report-muted); text-align: right; }
.premium-epilogue-brand { margin: 56px 0 8px; color: var(--report-meta); font: 11px/1.6 var(--sans); letter-spacing: .06em; text-align: center; }

/* 무료 결과(개관, chart-overview.css)와 같은 시각 문법.
   지금 무료 결과 화면은 #chart-screen 의 블루그레이 카드가 아니라 개관 한 덩어리다.
   - 색: 크림 종이 + 골드 선. 블루는 쓰지 않는다.
   - 서체: 제목·리드·본문 해석은 세리프, 근거·수치·라벨만 산세리프.
   - 카드: 해석 본문은 카드 없이 종이 위에 얹고, 표·요약·공유 카드만 크림 카드로 남긴다. */
.premium-body {
  --report-ink: #2f3742;
  --report-muted: #5c6675;
  --report-meta: #8b929d;
  --report-surface: #fffdf8;
  --report-surface-strong: #ffffff;
  --report-accent: #a08a5f;
  --report-accent-strong: #7a6642;
  --report-accent-hover: #6a5838;
  --report-accent-soft: #f7f3e9;
  --report-line: #ece6da;
  --dialogue-font: var(--serif);
  --premium-gold-rule: #d8c9a4;
  --premium-card-bg: #fffdf8;
  --premium-card-strong-bg: #ffffff;
  --premium-card-radius: 18px;
}

/* 머리 — 개관의 .ov-kicker / .ov-title / .ov-lead 와 같은 위계 */
.premium-cover .section-kicker,
.premium-peak > .section-kicker,
.premium-identity > .section-kicker,
.premium-tension > .section-kicker,
.premium-chapter > .section-kicker,
.premium-patterns > .section-kicker,
.premium-free-report .section-kicker {
  color: #b5a98c;
  font: 600 11.5px/1.5 var(--serif);
  letter-spacing: .3em;
  text-align: center;
}

.premium-cover h1,
.premium-peak > h2,
.premium-identity > h2,
.premium-tension > h2,
.premium-chapter > h2,
.premium-patterns > h2 {
  max-width: 14em;
  margin-inline: auto;
  color: #1f242c;
  font: 700 27px/1.38 var(--serif);
  letter-spacing: -.035em;
  text-align: center;
}
.premium-peak > h2::after,
.premium-identity > h2::after,
.premium-tension > h2::after,
.premium-chapter > h2::after,
.premium-patterns > h2::after {
  content: '';
  display: block;
  width: 26px;
  height: 1px;
  margin: 18px auto 0;
  background: var(--premium-gold-rule);
}
.premium-chapter-lead {
  color: #4a5360;
  font: 500 17px/1.85 var(--serif);
  letter-spacing: -.015em;
}

/* 장과 장 사이는 카드가 아니라 가는 선으로 끊는다 */
.premium-identity,
.premium-tension,
.premium-chapter,
.premium-patterns { padding-top: 46px; border-top: 1px solid #e9e2d4; }

/* 소파트 — 세리프 제목, 해석 한 줄은 세리프로 세운다 */
.premium-scene { border-top-color: #e9e2d4; }
.premium-scene h3,
.premium-timing-part h3,
.premium-pattern-block h3,
.premium-epilogue-part > h3 { color: #1f242c; font: 700 21px/1.45 var(--serif); letter-spacing: -.03em; }
.premium-scene-number,
.premium-timing-part-number { color: #b5a98c; font-family: var(--serif); letter-spacing: .2em; }
.premium-scene-headline,
.premium-identity-headline {
  border-bottom-color: #e9e2d4;
  color: #232a34;
  font: 600 19px/1.75 var(--serif);
  letter-spacing: -.02em;
}

/* 해석 본문은 카드 없이 종이 위에 — 개관의 .ov-para p 와 같은 결 */
.premium-card {
  padding: 0;
  border: 0;
  border-radius: 0;
  background: none;
  box-shadow: none;
}
.premium-body .report-copy p,
.premium-body .premium-identity-copy p {
  color: #2f3742;
  font: 500 17.5px/1.95 var(--serif);
  letter-spacing: -.012em;
}
.premium-body .report-copy p + p { margin-top: 13px; }

/* 크림 카드 — 표지 문구·공식·전성기·두 얼굴·요약·공유 카드처럼 「다른 방」인 곳만 */
.premium-cover-copy,
.premium-peak-card,
.premium-pole,
.premium-pattern-details,
.premium-stage-card,
.premium-timing-facts,
.premium-chapter-answers,
.premium-peak-year-mini,
.premium-epilogue-faces li,
.premium-epilogue-profile,
.premium-epilogue-manual,
.premium-epilogue-verdict,
.premium-epilogue-loading,
.premium-concern-loading,
.premium-peak-loading,
.concept-note {
  border: 1px solid #e9e0cd;
  border-radius: var(--premium-card-radius);
  background: linear-gradient(160deg, #fffdf8f0, #f7f3e9e6);
  box-shadow: none;
}
.premium-peak-summary { background: #f7f3e9; border-bottom: 1px solid #e9e0cd; }
.premium-peak-year-best { border-color: #b9985a !important; background: #fffdf8; }
.premium-peak-best-badge { background: #7a6642; color: #fffdf8; }
.premium-peak-period,
.premium-peak-year header strong { color: #7a6642; font-family: var(--serif); }
.premium-epilogue-manual { border: 2px solid #2f3742; background: #fffdf8; }
.premium-pattern-lead,
.premium-concern-input { border: 1px solid #e3d9c0; background: #f7f3e9; }

/* 한 줄로 걸려야 하는 문장 — 개관의 세리프 길 */
.premium-pole strong,
.premium-epilogue-faces strong,
.premium-epilogue-closing,
.premium-epilogue-profile .premium-epilogue-profile-lead,
.premium-epilogue-quote,
.premium-epilogue-verdict-lines,
.premium-tension-verdict { font-family: var(--serif); }

/* 근거·수치·라벨은 산세리프로 눌러 둔다 */
.premium-basis,
.premium-peak-year-basis,
.premium-peak-evidence,
.premium-epilogue-faces small,
.premium-epilogue-manual dt,
.premium-epilogue-brand { font-family: var(--sans); }

.premium-shell .full-scene,
.premium-shell .full-scene .comic-character,
.premium-shell .premium-chapter-cover,
.premium-shell .ov-art,
.premium-shell .ov-art img,
.premium-shell .premium-epilogue-face {
  border-radius: 0;
}

.premium-shell .full-scene .comic-character,
.premium-shell .premium-chapter-cover,
.premium-shell .ov-art img,
.premium-shell .premium-epilogue-face {
  width: 100%;
  aspect-ratio: var(--report-art-ratio);
  object-fit: cover;
}
@media (min-width: 560px) {
  .premium-shell .premium-chapter-cover,
  .premium-shell .premium-epilogue-face { border-radius: 14px; }
}

@media (max-width: 400px) {
  .premium-peak > h2,
  .premium-identity > h2,
  .premium-tension > h2,
  .premium-chapter > h2,
  .premium-patterns > h2 { font-size: 24px; }
}

/* 유료 안에 들어온 무료 파트(무료에서 먼저 본 나 · 일주 · 오행 · 재료)도 같은 결로.
   report.css 는 이 파트에 블루그레이 색을 직접 박아 두어서 토큰만 바꿔서는 따라오지 않는다. */
.premium-free-report .block-heading { display: block; margin-bottom: 26px; text-align: center; }
.premium-free-report .block-heading > div { display: grid; justify-items: center; }
.premium-free-report .block-heading .micro-label { display: none; }
.premium-free-report h3 { color: #1f242c; font: 700 24px/1.4 var(--serif); letter-spacing: -.03em; }
.premium-free-report .block-heading h3::after { content: ''; display: block; width: 26px; height: 1px; margin: 16px auto 0; background: #d8c9a4; }
.premium-free-report .chart-block + .chart-block,
.premium-free-report .chart-block { padding-top: 46px; border-top: 1px solid #e9e2d4; }
.premium-free-report .reading-body .story-speaker { color: #b5a98c; font-family: var(--serif); letter-spacing: .2em; }
.premium-free-report .reading-body .structured-headline { color: #232a34; font: 600 19px/1.75 var(--serif); }
.premium-free-report .reading-body-copy p { color: #2f3742; font: 500 17.5px/1.95 var(--serif); letter-spacing: -.012em; }
.premium-free-report .reading-section { padding: 0; border: 0; background: none; box-shadow: none; }
.premium-free-report .report-lead,
.premium-free-report .comic-narration,
.premium-free-report .day-pillar-intro { font-family: var(--serif); }

/* 주월 말풍선 — 도표·해설과 숨을 나누도록 위 여백을 통일한다. */
.premium-body .report-note { margin-top: 32px; background: #f7f3e9; }
.premium-body .report-note-name { color: #a08a5f; }
.premium-body .report-note > p { color: #3b434e; font: 500 15px/1.8 var(--serif); }
.premium-body .report-note-face { box-shadow: 0 0 0 3px #fffdf8; }

/* 부(部) 구분 — 책의 속표지처럼 한 화면을 비우고 가운데에 세운다 */
/* 이럴 땐 이렇게 — 소파트 끝의 처방. 박스만 훑어 읽어도 되게 모양을 통일한다. */
.premium-body .premium-prescription .premium-prescription-title { margin: 0 0 4px; color: var(--report-ink); font: 700 16px/1.5 var(--serif); letter-spacing: -.03em; }
.premium-prescription { margin: 18px 0 0; padding: 14px 16px 15px; border: 1px solid #e3d6b8; border-radius: 10px; background: #fbf6ea; break-inside: avoid; }
.premium-body .premium-prescription .premium-prescription-label { display: flex; align-items: center; gap: 6px; margin: 0 0 6px; color: #8a6a34; font: 700 12px/1.4 var(--sans); letter-spacing: .02em; }
.premium-body .premium-prescription .premium-prescription-juwol { display: flex; align-items: center; gap: 8px; margin: 10px 0 0; padding-top: 10px; border-top: 1px dashed #e3d6b8; color: #7a5a2a; font: 500 13px/1.6 var(--sans); }
.premium-body .premium-prescription .premium-prescription-juwol img { flex: 0 0 auto; width: 30px; height: 30px; border-radius: 50%; object-fit: cover; object-position: 50% 30%; background: #f3ead6; }
.premium-body .premium-prescription .premium-prescription-text { margin: 0; color: var(--report-ink); font: 400 15px/1.8 var(--sans); letter-spacing: -.02em; word-break: keep-all; overflow-wrap: anywhere; }
@media print {
  .premium-prescription { margin-top: 4mm; padding: 3mm 4mm; }
  .premium-body .premium-prescription .premium-prescription-text { font-size: 10pt; }
  .premium-body .premium-prescription .premium-prescription-title { font-size: 11pt; }
  .premium-body .premium-prescription .premium-prescription-juwol { font-size: 9pt; }
}
/* 차례 — 대파트 위주. 부 이름을 크게, 장 목록은 한 줄로 작게. */
.premium-toc-list { display: grid; gap: 0; margin: 8px 0 0; padding: 0; list-style: none; border-top: 1px solid var(--report-line); }
.premium-toc-row { position: relative; display: grid; gap: 4px; padding: 20px 64px 20px 4px; border-bottom: 1px solid var(--report-line); color: var(--report-ink); text-decoration: none; }
.premium-toc-row:hover .premium-toc-title { color: var(--report-accent-strong); }
.premium-toc-mark { margin: 0; color: #b5a98c; font: 600 11px/1.5 var(--serif); letter-spacing: .24em; }
.premium-toc-title { font: 700 20px/1.45 var(--serif); letter-spacing: -.03em; }
.premium-toc-lead { margin: 0; color: #4a5360; font: 400 14px/1.75 var(--serif); }
.premium-toc-chapters { margin: 2px 0 0; color: var(--report-muted); font: 12px/1.7 var(--sans); }
.premium-toc-range { position: absolute; top: 22px; right: 4px; color: var(--report-accent-strong); font: 600 12px var(--sans); font-variant-numeric: tabular-nums; }
@media print {
  .premium-toc { break-after: page; }
  .premium-toc-row { padding-block: 3.2mm; break-inside: avoid; }
  .premium-toc-title { font-size: 14pt; }
  .premium-toc-lead { font-size: 9.5pt; }
  .premium-toc-chapters { font-size: 8pt; }
}
.premium-part-divider {
  display: grid;
  justify-items: center;
  gap: 10px;
  margin: 24px 0 0;
  padding: 72px 18px 64px;
  border-top: 1px solid #e9e2d4;
  text-align: center;
}
.premium-part-number { margin: 0; color: #b5a98c; font: 600 12px/1.5 var(--serif); letter-spacing: .4em; }
.premium-part-hanja { margin: 0; color: #cbb98f; font: 600 44px/1.2 var(--serif); letter-spacing: .12em; }
.premium-part-title { margin: 4px 0 0; color: #1f242c; font: 700 26px/1.4 var(--serif); letter-spacing: -.03em; }
.premium-part-title::after { content: ''; display: block; width: 26px; height: 1px; margin: 18px auto 0; background: #d8c9a4; }
.premium-part-lead { max-width: 20em; margin: 6px 0 0; color: #4a5360; font: 500 16px/1.85 var(--serif); }
/* 부 머리 바로 뒤 장은 선을 한 번만 긋는다 */
.premium-part-divider + .premium-chapter,
.premium-part-divider + .premium-identity,
.premium-part-divider + .premium-free-report > .premium-chapter:first-child,
.premium-part-divider + .premium-free-report { border-top: 0; }

/* 1부 기초 장 — 무료 블록 여러 개를 한 장으로 묶는다 */
.premium-basic-chapter > .chart-block,
.premium-basic-chapter > details { margin-top: 28px; }
.premium-free-report .premium-basic-chapter > .chart-block:first-of-type { padding-top: 0; border-top: 0; }

/* 13장 안으로 들어온 전성기 */
.premium-chapter .premium-peak { padding: 8px 0 36px; border-bottom: 0; }
.premium-peak > h3 { margin: 0 0 20px; color: #1f242c; font: 700 22px/1.45 var(--serif); letter-spacing: -.03em; text-align: center; }
.premium-luck-evidence {
  margin: 0 0 36px;
  padding: 28px 0 0;
  border-top: 1px solid #e9e2d4;
  border-right: 0;
  border-bottom: 0;
  border-left: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}
.premium-luck-evidence .block-heading { display: block; margin-bottom: 26px; text-align: center; }
.premium-luck-evidence .block-heading > div { display: grid; justify-items: center; }
.premium-luck-evidence .block-heading .micro-label { display: none; }
.premium-luck-evidence .block-heading h3 { color: #1f242c; font: 700 24px/1.4 var(--serif); letter-spacing: -.03em; }
.premium-luck-evidence .block-heading h3::after { content: ''; display: block; width: 26px; height: 1px; margin: 16px auto 0; background: #d8c9a4; }
.premium-luck-evidence .luck-meta { color: var(--report-meta); }
.premium-luck-evidence .luck-meta strong { color: var(--report-ink); }

/* 표지의 전성기 미리보기 */
.premium-peak-teaser:empty { display: none; }
.premium-peak-teaser { display: grid; gap: 12px; margin: 22px 0 0; padding: 22px 18px; border: 1px solid #e9e0cd; border-radius: 18px; background: linear-gradient(160deg, #fffdf8f0, #f7f3e9e6); text-align: center; }
.premium-peak-teaser-title { margin: 0; color: #a08a5f; font: 600 12px/1.5 var(--serif); letter-spacing: .12em; }
.premium-peak-teaser dl { display: grid; gap: 4px; margin: 0; }
.premium-peak-teaser dt { color: #8b929d; font: 12px/1.5 var(--sans); }
.premium-peak-teaser dd { margin: 0 0 8px; color: #7a6642; font: 700 20px/1.4 var(--serif); font-variant-numeric: tabular-nums; }
.premium-peak-teaser-link { color: #7a6642; font: 600 13px/1.5 var(--sans); text-decoration: none; }

.premium-pole-code { color: #b5a98c; font: 600 11px/1.4 var(--serif); letter-spacing: .2em; }

/* 소장용 도감 */
.premium-export-ending { margin: 36px 0 100px; padding: 46px 22px; border: 1px solid #e2d7c1; background: linear-gradient(155deg, #fffdf8, #f3ede1); text-align: center; }
.premium-export-ending h2 { margin: 8px 0 14px; color: #292622; font: 700 27px/1.45 var(--serif); }
.premium-export-ending > p:not(.section-kicker) { margin: 0 auto 24px; max-width: 25em; color: #625b52; font: 500 15px/1.8 var(--serif); }
.premium-export-ending > small { display: block; margin-top: 14px; color: #91887b; font: 12px/1.5 var(--sans); }
.premium-export-main, .premium-export-action { display: flex; width: 100%; align-items: center; justify-content: center; border: 0; color: #fffaf0; background: #382d2c; cursor: pointer; text-decoration: none; }
.premium-export-main { flex-direction: column; gap: 5px; min-height: 72px; padding: 14px 18px; }
.premium-export-main strong { font: 600 17px/1.4 var(--serif); }
.premium-export-main span { font: 500 13px/1.4 var(--sans); color: #d8c9ad; }
.premium-export-dialog { width: min(92vw, calc(var(--app-max-width) - 32px)); max-height: min(90dvh, 760px); padding: 0; overflow: hidden; border: 1px solid #d9ccb5; background: #faf6ed; color: #302b27; box-shadow: 0 24px 80px #17100c66; }
.premium-export-dialog::backdrop { background: #17120fcc; backdrop-filter: blur(5px); }
.premium-export-sheet { position: relative; max-height: min(90dvh, 760px); padding: 34px 26px 28px; overflow-y: auto; overscroll-behavior: contain; }
.premium-export-close { position: absolute; z-index: 2; top: 10px; right: 12px; width: 36px; height: 36px; border: 0; background: none; color: #766d62; font-size: 25px; cursor: pointer; }
.premium-export-dialog h2 { margin: 8px 30px 12px 0; font: 700 25px/1.45 var(--serif); }
.premium-export-intro { color: #655d54; font: 500 14px/1.75 var(--serif); }
.premium-export-options { margin: 24px 0 18px; padding: 0; border: 1px solid #ded3bf; background: #fffdf8; }
.premium-export-options h3 { margin: 0; padding: 12px 16px; border-bottom: 1px solid #e5dccb; color: #755f43; background: #f5efe4; font: 700 12px/1.4 var(--sans); letter-spacing: .08em; }
.premium-export-options ul { margin: 0; padding: 4px 16px; list-style: none; }
.premium-export-options li { display: grid; grid-template-columns: 28px minmax(0, 1fr); gap: 11px; align-items: start; padding: 14px 0; }
.premium-export-options li + li { border-top: 1px solid #ece4d6; }
.premium-export-options li > span { display: grid; width: 25px; height: 25px; place-items: center; border: 1px solid #b89a72; border-radius: 50%; color: #82433a; font: 600 11px/1 var(--serif); }
.premium-export-options strong { display: block; margin-bottom: 3px; color: #352f29; font: 700 14px/1.45 var(--serif); }
.premium-export-options p { margin: 0; color: #756c61; font: 12px/1.55 var(--sans); word-break: keep-all; }
.premium-export-spec { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin: 0 0 22px; }
.premium-export-spec div { min-width: 0; padding: 12px 13px; border: 1px solid #ded5c6; background: #f7f2e9; font: 12px/1.5 var(--sans); }
.premium-export-spec dt { margin-bottom: 4px; color: #91887b; font-weight: 600; }.premium-export-spec dd { margin: 0; color: #403a34; word-break: keep-all; }
.premium-export-action { min-height: 54px; padding: 13px 18px; font: 600 15px/1.4 var(--serif); }
.premium-export-binding, .premium-export-complete, .premium-export-error { padding: 12px 0 4px; text-align: center; }
.premium-export-binding img { display: block; width: calc(100% + 52px); height: clamp(96px, 18dvh, 140px); max-width: none; margin: -46px -26px 18px; object-fit: cover; object-position: 50% 40%; filter: sepia(.08) saturate(.86); }
.premium-export-binding-kicker { margin: 0; color: #9a7957; font: 600 12px/1.5 var(--sans); letter-spacing: .08em; }
.premium-export-binding h2 { margin: 9px auto 24px; max-width: 16em; font-size: 21px; }
.premium-export-progress { height: 4px; overflow: hidden; background: #e3dacb; }
.premium-export-progress span { display: block; width: 20%; height: 100%; background: #83443b; transition: width .7s ease; }
.premium-export-binding > strong { display: block; margin: 10px 0; color: #7d443d; font: 600 13px/1.4 var(--sans); }
.premium-export-binding > small, .premium-export-complete > small { color: #91887b; font: 12px/1.6 var(--sans); }
.premium-export-seal { display: inline-grid; width: 62px; height: 62px; place-items: center; border: 2px solid #9c4038; color: #9c4038; font: 700 17px/1.05 var(--serif); transform: rotate(-4deg); }
.premium-export-complete .premium-export-action { margin: 25px 0 16px; }
.premium-export-complete > p:not(.section-kicker), .premium-export-error p { color: #655d54; font: 13px/1.7 var(--sans); }

@media (max-height: 620px) {
  .premium-export-sheet { padding-top: 28px; padding-bottom: 20px; }
  .premium-export-binding img { height: 88px; margin-top: -40px; margin-bottom: 12px; }
  .premium-export-binding h2 { margin-bottom: 16px; font-size: 18px; }
}

@media (max-width: 380px) {
  .premium-export-sheet { padding-inline: 20px; }
  .premium-export-binding img { width: calc(100% + 40px); margin-inline: -20px; }
  .premium-export-options ul { padding-inline: 13px; }
  .premium-export-spec { grid-template-columns: 1fr; }
}

/* 읽는 면은 밝은 종이, 본문은 짙은 먹색으로 분리한다. */
.premium-calculation, .premium-hidden-stems, .premium-element-table,
.premium-free-report .story-basics {
  margin: 28px 0;
  padding: 20px 0;
  border: 0;
  border-top: 1px solid var(--report-line);
  background: transparent;
}
.premium-calculation > h3, .premium-hidden-stems > h4,
.premium-element-table > h4, .premium-free-report .story-basics > h4 {
  margin: 0 0 18px;
  color: var(--report-ink);
  font: 700 19px/1.6 var(--serif);
  break-after: avoid;
}
.premium-body {
  --report-ink: #24282e;
  --report-muted: #505761;
  --report-meta: #646973;
  --report-accent: #75603b;
  --report-accent-strong: #574527;
  --report-line: #dbd5c9;
  color: var(--report-ink);
}
.premium-body .premium-free-report {
  --report-ink: #24282e;
  --report-muted: #505761;
  --report-meta: #646973;
}
@media screen {
  body.premium-body { background: #f6f3ed; }
  .premium-shell { background: #fffdf8; padding-inline: 20px; box-sizing: border-box; }
  .premium-body :is(.report-copy p, .premium-identity-copy p, .premium-pattern-reading p, .premium-stage-meaning, .concept-note-body, .premium-epilogue p) { color: #24282e; }
  .premium-body :is(.section-kicker, .premium-scene-number, .premium-timing-part-number, .premium-pole-code, .premium-peak-teaser-title) { color: #75603b; }
  .premium-body :is(.premium-peak-teaser dt, .premium-export-ending > small) { color: #646973; }
  .premium-body :is(.premium-cover-copy, .premium-pole, .premium-stage-card, .premium-timing-facts, .premium-chapter-answers, .concept-note, .premium-peak-teaser) { background: #f7f3eb; border-color: #ded5c4; }
  .premium-body .report-copy p { line-height: 1.95; }
  .premium-body .report-copy p + p { margin-top: 20px; }
}

/* 표지의 이름·서명·판권을 분리해 긴 이름도 제목 위계를 흐리지 않게 한다. */
.premium-cover-title-block {
  position: relative;
  isolation: isolate;
  box-sizing: border-box;
  min-height: 660px;
  min-height: clamp(600px, 88svh, 820px);
  margin: 0 0 28px;
  padding: 54px 28px 34px;
  align-content: center;
  border: 1px solid #c8bca5;
  background: radial-gradient(ellipse at 50% 0%, #e8ddc44d, transparent 58%), #faf6ec;
}
.premium-cover-title-block::before {
  content: '';
  position: absolute;
  inset: 8px;
  z-index: -1;
  border: 1px solid #d8cdb8;
  pointer-events: none;
}
.premium-cover-title-block .section-kicker { margin: 0 0 10px; color: #55432c; font: 600 15px/1.5 var(--serif); letter-spacing: .2em; }
.premium-cover-edition { margin: 0 0 42px; color: #655c4f; font: 12px/1.6 var(--sans); letter-spacing: .06em; }
.premium-cover h1 { width: 100%; max-width: 100%; margin: 0; color: #242522; font: 700 clamp(36px, 9vw, 56px)/1.3 var(--serif); letter-spacing: -.04em; }
.premium-cover-owner { display: block; max-width: 100%; margin: 0 auto 20px; font: 500 20px/1.6 var(--serif); letter-spacing: -.02em; overflow-wrap: anywhere; word-break: keep-all; }
.premium-cover-title-line { display: block; white-space: nowrap; }
.premium-cover-seal { margin: 26px 0 24px; padding: 6px 7px; border: 2px solid #8b3d32; color: #8b3d32; font: 700 15px/1.15 var(--serif); letter-spacing: .08em; transform: rotate(-3deg); }
.premium-cover-subtitle { margin: 0; color: #4e504b; font: 400 15px/1.85 var(--serif); letter-spacing: -.015em; }
.premium-cover-imprint { margin: 40px 0 0; padding-top: 18px; border-top: 1px solid #d4c8b2; color: #655c4f; font: 11px/1.7 var(--sans); letter-spacing: .025em; }
@media screen and (max-width: 400px) {
  .premium-shell { width: calc(100% - 16px); padding-inline: 16px; }
  .premium-cover-title-block { padding-inline: 18px; }
  .premium-cover h1 { font-size: clamp(32px, 10vw, 40px); }
  .premium-cover-owner { font-size: 18px; }
  .premium-cover-imprint { font-size: 10px; letter-spacing: 0; }
}

@media print {
  @page { size: A4 portrait; margin: 24mm 20mm 20mm; }
  html, body { width: auto !important; min-height: 0 !important; background: #faf8f5 !important; color: #1f1d1b !important; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  body { font-size: 10.5pt; line-height: 1.85; letter-spacing: -.02em; zoom: 1; overflow: visible !important; }
  .site-header, .part-nav, .part-sheet, .part-sheet-backdrop, .chat-floating-btn, .bottom-nav, .premium-loading-screen, .premium-export-ending, .premium-export-dialog, button { display: none !important; }
  .premium-shell { width: auto !important; max-width: none !important; margin: 0 !important; padding: 0 !important; }
  #premium-content { display: block !important; }
  #premium-content h1, #premium-content h2, #premium-content h3, #premium-content h4 { color: #11100f !important; }
  .report-copy p, .premium-identity-copy p, .premium-scene p,
  .premium-pattern-reading p, .premium-stage-meaning, .premium-chapter-lead,
  .concept-note-body, .report-note > p, .premium-epilogue p {
    color: #1f1d1b !important;
    line-height: 1.85 !important;
  }
  .report-copy p, .premium-identity-copy p, .premium-pattern-reading p { margin-bottom: 16px !important; }
  .report-copy p:last-child, .premium-identity-copy p:last-child, .premium-pattern-reading p:last-child { margin-bottom: 0 !important; }
  .premium-cover { min-height: 0; break-after: page; page-break-after: always; }
  .premium-cover-title-block { box-sizing: border-box; min-height: 240mm; height: auto; padding: 16mm 12mm !important; break-inside: avoid; break-after: page; }
  .premium-cover-title-block h1 { font-size: 40pt; }
  .premium-part-divider { box-sizing: border-box; min-height: 220mm; padding: 16mm 8mm; align-content: center; border: 0; break-before: page; break-after: page; page-break-before: always; page-break-after: always; }
  .premium-chapter[data-part], .premium-epilogue { break-before: page; page-break-before: always; }
  h1, h2, h3, h4, img, figure, .pillars-grid { break-inside: avoid; page-break-inside: avoid; }
  p { orphans: 3; widows: 3; }
  details > summary { display: none !important; }
  details > * { display: block !important; }
  img { max-height: 78mm; object-fit: cover; }
  a { color: inherit !important; text-decoration: none !important; }
  .premium-chapter, .premium-identity, .premium-tension, .premium-patterns { padding-top: 4mm; }
  .report-card, .premium-card, .chart-block, .concept-note, .report-note { padding-top: 4mm !important; padding-bottom: 4mm !important; }
  .report-card, .premium-card, .premium-stage-card, .concept-note, .report-note,
  .premium-basis, .ten-god-group-facts, .ten-god-places,
  .element-inside-map, .element-summary-list {
    box-sizing: border-box;
    padding: 20px 24px !important;
    border: 1px solid rgba(210, 200, 190, .5) !important;
    border-radius: 8px !important;
    background: rgba(255, 255, 255, .65) !important;
  }
  /* 그래프·표처럼 한눈에 읽어야 하는 단위만 묶는다. 긴 산문 카드 전체를 묶으면
     앞 페이지가 비는 역효과가 있어 문단은 자연스럽게 흐르도록 둔다. */
  .element-map-chart, .element-map-columns, .element-summary-chart,
  .ten-god-chart,
  .pillars-grid, .ov-radar {
    break-inside: avoid; page-break-inside: avoid;
  }
  .strength-evidence { display: block; break-inside: auto; page-break-inside: auto; }
  .strength-evidence > * { margin-bottom: 10px; }
  .strength-evidence > *:last-child { margin-bottom: 0; }
  .strength-criteria { break-inside: avoid; page-break-inside: avoid; }
  /* 부록 전체 카드가 다음 장으로 밀리지 않게 항목 안의 문단까지 자연스럽게 흘린다. */
  #premium-glossary-body,
  #premium-glossary-body .premium-glossary-list {
    break-inside: auto !important;
    page-break-inside: auto !important;
  }
  #premium-glossary-body .premium-glossary-list { margin-top: 3mm !important; }
  #premium-glossary-body .premium-glossary-entry {
    grid-template-columns: 28mm minmax(0, 1fr);
    gap: 4mm;
    padding: 2.5mm 1mm;
    break-inside: avoid;
    page-break-inside: avoid;
  }
  #premium-glossary-body dt { font-size: 10pt; line-height: 1.55; }
  #premium-glossary-body dd { font-size: 9.2pt; line-height: 1.65; orphans: 2; widows: 2; }
  .ten-god-row { grid-template-columns: 30mm minmax(0, 1fr) 8mm; gap: 3mm; }
  .ten-god-row-name { display: flex; align-items: baseline; gap: 2mm; white-space: nowrap; }
  .ten-god-row-name strong { font-size: 10pt; }
  .ten-god-row-name small { font-size: 7.5pt; }
  .ten-god-track { min-width: 0; }
  .ov-radar { width: 105mm !important; max-width: 105mm !important; margin-right: auto; margin-left: auto; }
  .premium-stage-grid { grid-template-columns: repeat(4, minmax(0, 1fr)) !important; }
  .premium-stage-card { min-width: 0; }
  .premium-stage-meaning { word-break: keep-all; }
  h2, h3, h4 { break-after: avoid-page; page-break-after: avoid; }
  #ten-god-pattern-body, #twelve-stage-pattern-body { break-before: avoid-page; page-break-before: avoid; }
  /* 화면용 전폭 레이아웃을 인쇄 본문에서는 모두 같은 거터 안에 둔다.
     특정 표만 줄이면 장마다 왼쪽 기준선이 달라지므로 표지부터 부록까지 통일한다. */
  #premium-content > .premium-cover,
  #premium-content > .premium-chapter,
  #premium-content > .premium-identity,
  #premium-content > .premium-tension,
  #premium-content > .premium-patterns,
  #premium-content > .premium-free-report > .premium-chapter {
    box-sizing: border-box !important;
    width: 100% !important;
    max-width: 170mm !important;
    margin-right: auto !important;
    margin-left: auto !important;
    padding-right: 16px !important;
    padding-left: 16px !important;
  }
  #premium-content :is(.pillars-grid, .orientation-pillars, .strength-evidence, .structure-highlights, .orientation-data-table) {
    box-sizing: border-box !important;
    width: 100% !important;
    margin-right: auto !important;
    margin-left: auto !important;
  }
  #premium-content :is(.full-scene, [class*="-mx-"]) {
    margin-right: 0 !important;
    margin-left: 0 !important;
  }
  /* 주월 말풍선은 얼굴까지 카드 안에 넣는다. 화면용 음수 위치를 그대로 쓰면
     인쇄물에서 아바타와 문장이 왼쪽 선에 매달려 보인다. */
  #premium-content .report-note {
    margin: 26px 0 24px !important;
    padding: 20px 24px 20px 76px !important;
  }
  /* 알아 두기 박스에는 얼굴 자리가 없다. */
  #premium-content .report-note.plain-note {
    padding: 16px 20px !important;
  }
  #premium-content .report-note-face {
    left: 18px !important;
    width: 44px !important;
    height: 44px !important;
    margin-top: -22px !important;
  }
  #premium-content .concept-note {
    margin: 22px 0 26px !important;
    padding: 22px 24px !important;
  }
  #premium-content .premium-chapter > h2,
  #premium-content .premium-identity > h2,
  #premium-content .premium-tension > h2,
  #premium-content .premium-patterns > h2 { margin-bottom: 24px !important; }
  #premium-content .premium-chapter-lead { margin-bottom: 26px !important; }
  #premium-content .premium-scene h3,
  #premium-content .premium-pattern-block h3 { margin-bottom: 16px !important; }
  #premium-content :is(.premium-card, .report-card) + :is(.premium-card, .report-card) { margin-top: 18px !important; }
  /* 표가 많은 1장은 이미 내부 패딩이 겹치므로 8px 거터로 맞춰 한 페이지의
     표가 다음 장으로 홀로 밀리지 않게 한다. 바깥 20mm 안전 여백은 그대로다. */
  #premium-content > .premium-free-report > .premium-basic-chapter {
    padding-right: 8px !important;
    padding-left: 8px !important;
  }
  #premium-content .premium-basic-chapter .report-note {
    padding: 14px 18px 14px 62px !important;
  }
  #premium-content .premium-basic-chapter .report-note-face {
    left: 14px !important;
    width: 36px !important;
    height: 36px !important;
    margin-top: -18px !important;
  }
  /* 긴 카드와 CSS grid를 한 덩어리로 인쇄하면 A4 끝에서 내용이 잘린다.
     문서는 흐르게 두고 제목·개별 행 등 작은 단위만 함께 보존한다. */
  #premium-content :is(.premium-scene, .premium-card, .report-card,
    .report-copy, .premium-identity-copy, .premium-pattern-reading,
    .premium-basis, .concept-note, .report-note, .premium-epilogue-part,
    .premium-epilogue-profile, .premium-epilogue-letter, .premium-peak-card,
    .premium-peak-evidence, .premium-peak-years, .premium-stage-grid,
    .premium-glossary-list, .ten-god-rows, .luck-timeline) {
    display: block !important;
    height: auto !important;
    max-height: none !important;
    overflow: visible !important;
    break-inside: auto !important;
    page-break-inside: auto !important;
  }
  #premium-content :is(.premium-stage-card, .ten-god-row, .premium-flow-row) {
    break-inside: avoid;
    margin-bottom: 3mm;
  }
  #premium-content p { orphans: 3; widows: 3; }
  #premium-content :is(.section-kicker, .premium-scene-number, .premium-pattern-label) {
    color: #505761 !important;
    break-after: avoid-page;
    page-break-after: avoid;
  }
  #premium-content :is(table, .orientation-data-table) { max-width: 100%; break-inside: auto; }
  #premium-content tr { break-inside: avoid; }
  #premium-content thead { display: table-header-group; }
  .premium-body::before, .premium-body::after { display: none !important; }
  .premium-prologue-grid { grid-template-columns: minmax(0, 1fr); gap: 4mm; }
  .premium-prologue-discovery { padding-top: 3mm; }
  .premium-prologue-discovery h3 { font-size: 11pt; line-height: 1.5; margin-bottom: 2mm; }
  .premium-prologue-discovery ul { font-size: 9pt; line-height: 1.65; }
  .premium-prologue-discovery li + li { margin-top: 1mm; }
  .premium-prologue-label { font-size: 8pt; margin-bottom: 1mm; }
  .premium-prologue-signature { font-size: 16pt; margin-bottom: 5mm; }
  .premium-prologue-evidence { break-before: page; }
  .premium-glance-page { margin: 0; }
  .premium-glance-page + .premium-glance-page { break-before: page; padding-top: 6mm; }
  .premium-glance-page-label { font-size: 9pt; margin-bottom: 5mm; }
  .premium-glance-card { padding: 10mm 8mm; }
  .premium-glance-card + .premium-glance-card { margin-top: 8mm; }
  .premium-glance-label { font-size: 12pt; }
  .premium-glance-value { font-size: 21pt; }
  .premium-glance-description { font-size: 12pt; }
  .premium-glance-timing dd { font-size: 14pt; }
  .premium-glance-footnote { font-size: 8pt; margin-top: 6mm; }
}

/* 프롤로그 명식 총평(타고난 그릇 · 평생 복) */
.premium-verdict { margin: 18px 0 24px; padding: 20px 22px; border: 1px solid #c9b894; border-radius: 12px; background: #fbf6ea; }
.premium-verdict-label { margin: 0 0 6px; color: #7a6642; font-weight: 700; font-size: 12px; letter-spacing: .04em; }
.premium-verdict-sentence { margin: 0 0 16px; font-family: 'Noto Serif KR', serif; font-weight: 600; font-size: 18px; line-height: 1.65; }
.premium-verdict-fortunes { display: grid; gap: 8px; margin: 0; padding: 0; list-style: none; }
.premium-verdict-body { margin: -8px 0 16px; font-size: 15px; line-height: 1.75; }
.premium-verdict-fortunes li { display: grid; gap: 2px; min-width: 0; font-size: 14.5px; line-height: 1.65; }
.premium-verdict-closing { margin: 16px 0 0; padding: 12px 16px; border-left: 3px solid #7a6642; background: #f5ecd6; font-family: 'Noto Serif KR', serif; font-weight: 600; font-size: 15.5px; line-height: 1.65; }
.premium-verdict-fortunes strong { color: #7a6642; word-break: keep-all; overflow-wrap: anywhere; }
.premium-verdict-classic { margin: 14px 0 0; padding-top: 10px; border-top: 1px dashed #d8caa8; color: #73746c; font-family: 'Noto Serif KR', serif; font-size: 13px; line-height: 1.6; }
@media print { .premium-verdict { break-inside: avoid; padding: 4mm 5mm; } .premium-verdict-sentence { font-size: 12pt; } .premium-verdict-fortunes li { font-size: 9.5pt; } }

/* 인쇄 조판 다이어트(2026-09-24). 글씨를 약 1.3배 키우고, 빈 공간(쪽 전체 부 표제, 장마다 강제 새 쪽, 넓은 여백)을 줄여
   140쪽대를 110~120쪽으로 줄인다. 위의 인쇄 규칙보다 뒤에 두어 덮어쓴다. 모든 풀이에 같다. */
@media print {
  @page { size: A4 portrait; margin: 14mm 12mm 14mm; }
  body { font-size: 13.5pt; line-height: 1.65; }
  .report-copy p, .premium-identity-copy p, .premium-scene p,
  .premium-pattern-reading p, .premium-stage-meaning, .premium-chapter-lead,
  .concept-note-body, .report-note > p, .premium-epilogue p { line-height: 1.65 !important; }
  .report-copy p, .premium-identity-copy p, .premium-pattern-reading p { margin-bottom: 3mm !important; }
  #premium-content > .premium-cover,
  #premium-content > .premium-chapter,
  #premium-content > .premium-identity,
  #premium-content > .premium-tension,
  #premium-content > .premium-patterns,
  #premium-content > .premium-free-report > .premium-chapter { max-width: none !important; padding-right: 0 !important; padding-left: 0 !important; }
  /* 부 표제: 한 쪽 전체가 아니라 새 쪽 맨 위 배너로. */
  .premium-part-divider { min-height: 0 !important; padding: 6mm 4mm 5mm !important; margin: 0 0 4mm !important; gap: 1mm; break-after: avoid !important; page-break-after: avoid !important; border-bottom: 1px solid #e3d8bf !important; }
  .premium-part-hanja { font-size: 20pt; }
  .premium-part-title { font-size: 17pt; }
  .premium-part-title::after { margin-top: 2mm; }
  .premium-part-lead { font-size: 11pt; line-height: 1.55; }
  /* 장은 강제로 새 쪽을 열지 않고 이어서 흐른다. 부가 바뀔 때만 새 쪽. */
  .premium-chapter[data-part], .premium-epilogue { break-before: auto !important; page-break-before: auto !important; margin-top: 8mm; }
  .premium-chapter, .premium-identity, .premium-tension, .premium-patterns { padding-top: 2mm; }
  /* 카드·메모의 여백을 줄인다. */
  .report-card, .premium-card, .premium-stage-card, .concept-note, .report-note,
  .premium-basis, .ten-god-group-facts, .ten-god-places,
  .element-inside-map, .element-summary-list { padding: 3mm 4mm !important; }
  .report-card, .premium-card, .chart-block, .concept-note, .report-note { padding-top: 3mm !important; padding-bottom: 3mm !important; }
  .concept-note { margin: 0 0 3mm 18px; }
  .concept-note-body { font-size: 11pt !important; }
  .premium-prescription { margin-top: 3mm; padding: 2.5mm 4mm; }
  .premium-body .premium-prescription .premium-prescription-text { font-size: 12pt; }
  .premium-body .premium-prescription .premium-prescription-title { font-size: 13pt; }
  img { max-height: 55mm; }
}

/* 인쇄 가독성 2차(2026-09-24): 회색 보조 글씨가 베이지 바탕에 묻히고(대비 2~7:1), 설명·용어·월운 글씨가 본문보다 작았다.
   보조 글씨를 짙게, 글씨 하한을 올리고, 양옆 여백을 줄인다. 모든 풀이에 같다. */
@media print {
  @page { margin: 13mm 8mm 13mm; }
  body.premium-body, .premium-shell { background: #fff !important; }
  .premium-body, .premium-body .premium-free-report {
    --report-ink: #15171a; --report-muted: #2b3036; --report-meta: #3a4048;
    --report-accent: #5e4a28; --report-accent-strong: #46361b;
    --report-accent-soft: #fbf8f1; --premium-card-bg: #fff;
  }
  .premium-body, .premium-body p, .premium-body li, .premium-body dd, .premium-body dt,
  .premium-body small, .premium-body span, .premium-body .ov-foot, .premium-body .ov-year-card small,
  .premium-body .ov-line-current-detail, .premium-body .ov-line-detail small, .premium-body .ov-guiin-list small,
  .premium-body .premium-peak-teaser dt { color: #1f2328; }
  .premium-body :is(.section-kicker, .premium-scene-number, .premium-timing-part-number, .premium-pole-code,
    .concept-note-name, .concept-note-oneliner, .concept-note-example small) { color: #5e4a28 !important; }
  /* 카드 안쪽 좌우 여백을 줄여 글줄을 넓힌다. */
  .report-card, .premium-card, .premium-stage-card, .concept-note, .report-note, .premium-basis,
  .premium-prescription, .premium-scene-summary, .flow-editorial-entry { padding-left: 3mm !important; padding-right: 3mm !important; }
  /* 본문 */
  .premium-body :is(.report-copy p, .premium-identity-copy p, .premium-chapter-lead, .flow-entry-meta,
    .flow-editorial-note, .premium-epilogue-letter p, .premium-verdict-body, .premium-pattern-reading p,
    .premium-pattern-reading-item p, .element-balance-copy, .premium-stage-meaning) { font-size: 19px !important; line-height: 1.7 !important; }
  /* 보조 글: 본문보다 한 단계 아래지만 충분히 크게 */
  .premium-body :is(.premium-prescription-text, .premium-scene-summary-action, .premium-scene-summary-conclusion,
    .concept-note-body, .report-note > p, .premium-glossary-entry dd, .premium-glossary-entry dt,
    .flow-entry-action, .flow-entry-juwol, .flow-entry-current, .premium-timing-facts p, .premium-pole p,
    .premium-peak-context, .premium-peak-evidence-copy, .premium-pattern-caption, .premium-glance-description,
    .premium-prologue-advice, .premium-prologue li, .notice-row-body p, .premium-toc-lead, .premium-part-lead) { font-size: 17px !important; line-height: 1.65 !important; }
  /* 꼬리표·메모: 최소 14px */
  .premium-body :is(.premium-basis-list, .section-kicker, .premium-scene-number, .premium-toc-chapters,
    .premium-decade-description, .premium-decade-date, .concept-note-name, .concept-note-example small,
    .premium-pattern-detail small, .premium-pattern-count-name, .strength-evidence-line, .strength-criterion p,
    .premium-peak-year-mini small, .premium-peak-year-basis, .premium-prescription-label, .premium-peak-teaser dt,
    .flow-entry-current span, .flow-entry-juwol span, .flow-entry-action span,
    .ov-foot, .ov-year-card small, .ov-calc-inventory-list span, .ov-line-note, .ov-line-current-detail,
    .ov-line-detail small, .ov-guiin-list small, .ov-people-label, .ov-omen-count) { font-size: 14px !important; }
  .premium-body .premium-prescription-title { font-size: 18px !important; }
}
@media print {
  .premium-body :is(.section-kicker, .premium-scene-number) { color: #4a3a1e !important; }
  .premium-body :is(.flow-entry-current, .flow-entry-juwol, .flow-entry-action) span { color: #3a4048 !important; }
  .premium-body :is(.premium-decade-description, .premium-decade-date) span { font-size: 14px !important; color: #24302d !important; }
  .premium-body .premium-decade-date strong { font-size: 15px !important; }
  .premium-body .premium-pattern-count-name small { font-size: 13px !important; }
  .premium-body .premium-peak-evidence-copy p { font-size: 17px !important; }
  .premium-body strong { color: #4a3a1e; }
  .premium-body .ov-calc-inventory-list .is-found { color: #2c4466 !important; }
}
@media print {
  .premium-body .reading-body-copy p { font-size: 19px !important; line-height: 1.7 !important; color: #15171a !important; }
}

/* 각 부의 표제는 앞 부의 마지막 쪽에 붙이지 않고 새 A4 장 맨 위에서 연다. */
@media print {
  #premium-content > .premium-part-divider {
    break-before: page !important;
    page-break-before: always !important;
    break-after: page !important;
    page-break-after: always !important;
  }
  /* 차례에 실린 장은 직접 자식과 무료 명식 묶음 안의 장 모두 새 장에서 연다. */
  #premium-content > [data-part]:not(.premium-cover),
  #free-report-root > [data-part] {
    break-before: page !important;
    page-break-before: always !important;
  }
  .orientation-time-corrections { margin: 2mm 0 4mm; padding: 2mm 3mm; break-inside: avoid; page-break-inside: avoid; }
  .orientation-time-corrections .correction-list span,
  .orientation-corrected-time { font-size: 14px !important; line-height: 1.5; }
}

/* 12장·13장 첫머리의 한 장 지도(2026-09-26). 해·달마다 엔진이 찍은 판정 한 줄. 인쇄에서는 정확히 한 쪽. */
.premium-period-map { margin: 0 0 28px; padding: 22px 20px; border: 1px solid var(--report-line, #e3d8bf); border-radius: 16px; background: #fffdf8; }
.premium-period-map header { margin-bottom: 14px; }
.period-map-kicker { margin: 0 0 4px; font: 600 11px/1.4 var(--sans); letter-spacing: .08em; color: var(--report-accent, #75603b); }
.premium-period-map h3 { margin: 0 0 8px; font: 700 22px/1.35 var(--serif); color: var(--report-ink, #24282e); }
.period-map-lead { margin: 0; font-size: 15px; line-height: 1.6; color: var(--report-ink, #24282e); }
.period-map-table { width: 100%; border-collapse: collapse; font-size: 15px; line-height: 1.45; }
.period-map-table td { padding: 8px 6px; border-bottom: 1px solid #ece6da; vertical-align: top; }
.period-map-when { width: 5.5em; font-weight: 700; white-space: nowrap; }
.period-map-pillar { width: 7.5em; color: #3a4048; white-space: nowrap; }
.period-map-badge { color: #15171a; }
.period-map-badge strong { display: block; font-weight: 700; }
.period-map-badge span { display: block; margin-top: 2px; font-size: 14px; color: #2b3036; }
.period-map-table tr.is-phase td { padding-top: 12px; border-bottom: 0; font: 700 13px/1.4 var(--sans); color: var(--report-accent, #75603b); letter-spacing: .04em; }
.period-map-table tr.is-star .period-map-badge, .period-map-table tr.is-push .period-map-badge strong { color: #5e4a28; }
.period-map-table tr.is-warn .period-map-badge, .period-map-table tr.is-check .period-map-badge strong { color: #7a2e22; }
.period-map-note { margin: 12px 0 0; font-size: 13px; color: #3a4048; }
@media print {
  .premium-period-map { break-before: page; page-break-before: always; break-after: page; page-break-after: always; break-inside: avoid; page-break-inside: avoid; border: 0; padding: 0; margin: 0; background: #fff; }
  .premium-period-map h3 { font-size: 22pt; }
  .period-map-lead { font-size: 13pt; }
  .period-map-table { font-size: 12.5pt; }
  .period-map-table td { padding: 2.2mm 1.5mm; }
  .period-map-badge span { font-size: 11.5pt; }
  .period-map-table.is-months td { padding: 1.6mm 1.5mm; }
}

/* 서두의 「당신의 운명 한눈에 보기」 — 평생사주 4쪽과 같은 격국 줄글. */
.premium-fate-essay { border: 1px solid var(--report-line); padding: 26px 24px; border-radius: var(--report-radius); background: var(--report-accent-soft); }
.premium-fate-structure { margin: 0 0 6px; color: var(--report-accent); font: 600 12px/1.5 var(--sans); letter-spacing: .04em; }
.premium-fate-title { margin: 0 0 18px; color: var(--report-ink); font: 700 23px/1.5 var(--serif); letter-spacing: -.03em; word-break: keep-all; }
.premium-fate-paragraph { margin: 0 0 14px; color: var(--report-ink); font-size: 15.5px; line-height: 1.95; word-break: keep-all; overflow-wrap: anywhere; }
.premium-fate-paragraph:last-child { margin-bottom: 0; }
.premium-fate-luck { margin-top: 22px; padding-top: 18px; border-top: 1px solid var(--report-line); }
.premium-fate-luck-label { margin: 0 0 10px; color: var(--report-accent); font: 600 12px/1.5 var(--sans); letter-spacing: .04em; }
@media print {
  .premium-fate-essay { padding: 5mm 6mm; }
  .premium-fate-title { font-size: 13pt; margin-bottom: 3mm; }
  .premium-fate-paragraph { font-size: 9.5pt; line-height: 1.7; margin-bottom: 2mm; }
}

/* 지난 시간(2026-10-02) */
.premium-past-essay { border: 1px solid var(--report-line); padding: 26px 24px; border-radius: var(--report-radius); background: var(--report-surface); }
.premium-past-headline { margin: 0 0 20px; color: var(--report-accent-strong); font: 700 clamp(19px, 3.4vw, 24px)/1.6 var(--serif); word-break: keep-all; }
.premium-past-paragraph { margin: 0 0 14px; color: var(--report-ink); font-size: 15.5px; line-height: 1.95; word-break: keep-all; overflow-wrap: anywhere; }
.premium-past-mark { background: linear-gradient(transparent 38%, #f3dd9c 38%); color: inherit; padding: 0 1px; font-weight: 600; }
.premium-past-bands { list-style: none; margin: 24px 0 28px; padding: 0 0 0 0; border-left: 2px solid var(--report-line); }
.premium-past-band { position: relative; margin: 0 0 14px; padding: 2px 0 2px 24px; display: grid; grid-template-columns: auto 1fr; column-gap: 10px; align-items: baseline; break-inside: avoid; }
.premium-past-dot { position: absolute; left: -7px; top: 9px; width: 12px; height: 12px; border-radius: 50%; background: #b9ad94; border: 2px solid var(--report-surface); }
.premium-past-caution .premium-past-dot { background: #d9776a; }
.premium-past-good .premium-past-dot { background: #4f9a7c; }
.premium-past-age { font: 700 14px/1.8 var(--sans); color: var(--report-ink); }
.premium-past-tone { font: 600 11px/1.8 var(--sans); color: var(--report-muted); }
.premium-past-caution .premium-past-tone { color: #b4574a; }
.premium-past-good .premium-past-tone { color: #3d7d63; }
.premium-past-line { grid-column: 1 / -1; margin: 2px 0 0; font-size: 15px; line-height: 1.85; color: var(--report-ink); }
.premium-past-why-title { margin: 30px 0 14px; font: 700 20px/1.6 var(--serif); letter-spacing: -.03em; color: var(--report-ink); }
.premium-past-label { margin: 24px 0 10px; color: var(--report-accent-strong); font: 600 12px/1.5 var(--sans); }
.premium-past-patterns { display: grid; gap: 12px; margin: 0 0 22px; }
.premium-past-pattern { padding: 16px 18px; border: 1px solid var(--report-line); border-radius: 10px; break-inside: avoid; }
.premium-past-pattern h4 { margin: 0 0 6px; color: var(--report-accent-strong); font: 700 14px/1.6 var(--sans); }
.premium-past-pattern p { margin: 0; font-size: 14.5px; line-height: 1.85; color: var(--report-ink); }
.premium-past-settle { margin: 0 0 12px; padding-top: 16px; border-top: 1px solid var(--report-line); font-weight: 600; line-height: 1.9; }
.premium-past-note { margin: 0; color: var(--report-muted); font: 400 11px/1.7 var(--sans); }
@media print { .premium-past-essay { padding: 5mm 6mm; } .premium-past-mark { -webkit-print-color-adjust: exact; print-color-adjust: exact; } }

.premium-past-claim { padding: 2px 4px; background: linear-gradient(transparent 38%, #f3dd9c 38%); font-weight: 700; }
@media print { .premium-past-claim { -webkit-print-color-adjust: exact; print-color-adjust: exact; } }

.premium-past-chart { margin: 22px 0 18px; padding: 18px 16px 12px; border: 1px solid var(--report-line); border-radius: 12px; break-inside: avoid; }
.premium-past-chart-bars { display: flex; align-items: flex-end; justify-content: space-around; gap: 10px; height: 150px; border-bottom: 2px solid #cfc6b2; padding: 0 6px; }
.premium-past-bar-col { flex: 1 1 0; max-width: 84px; height: 100%; display: flex; flex-direction: column; justify-content: flex-end; align-items: center; position: relative; }
.premium-past-bar { width: 100%; border-radius: 6px 6px 0 0; background: #b9ad94; }
.premium-past-caution .premium-past-bar { background: #d9776a; }
.premium-past-good .premium-past-bar { background: #4f9a7c; }
.premium-past-bar-stage { position: absolute; bottom: -28px; font: 600 12px/1.4 var(--sans); white-space: nowrap; color: #4b4a45; }
.premium-past-legend { display: flex; flex-wrap: wrap; gap: 14px; justify-content: center; margin: 38px 0 0 !important; font: 500 12px/1.5 var(--sans); }
.premium-past-legend-item::before { content: ''; display: inline-block; width: 10px; height: 10px; border-radius: 50%; margin-right: 6px; background: #b9ad94; vertical-align: -1px; }
.premium-past-legend-item.premium-past-caution::before { background: #d9776a; }
.premium-past-legend-item.premium-past-good::before { background: #4f9a7c; }
.premium-past-captions { list-style: none; margin: 0 0 26px; padding: 0; }
.premium-past-caption { display: grid; grid-template-columns: 104px 1fr; gap: 10px; margin: 0 0 8px; font-size: 14.5px; line-height: 1.75; break-inside: avoid; }
.premium-past-caption strong { font: 700 13px/1.75 var(--sans); }
.premium-past-caption.premium-past-caution strong { color: #b4574a; }
.premium-past-caption.premium-past-good strong { color: #3d7d63; }
@media print { .premium-past-bar { -webkit-print-color-adjust: exact; print-color-adjust: exact; } }

.premium-past-punch { margin: 8px 0 24px; padding-left: 14px; border-left: 3px solid #d9776a; font: 700 19px/1.7 var(--serif); letter-spacing: -.03em; color: #5a3a34; }
.premium-past-captions { break-inside: avoid; page-break-inside: avoid; }

/* 선 그래프로 교체(2026-10-02): 위 막대 차트 규칙은 쓰지 않는다. */
.premium-past-chart { padding: 14px 12px 10px; }
.premium-past-svg { display: block; width: 100%; height: auto; overflow: visible; }
.premium-past-zone { fill: #efece4; }
.premium-past-zone.premium-past-caution { fill: #f7dcd6; }
.premium-past-zone.premium-past-good { fill: #dcefe6; }
.premium-past-mean { stroke: #9b9484; stroke-width: 1.2; stroke-dasharray: 5 5; }
.premium-past-area { fill: rgba(80, 64, 40, .07); }
.premium-past-line { fill: none; stroke: #4b4338; stroke-width: 3.2; stroke-linecap: round; stroke-linejoin: round; }
.premium-past-dot { stroke: #fff; stroke-width: 2.5; fill: #b9ad94; }
.premium-past-dot.premium-past-caution { fill: #d9776a; }
.premium-past-dot.premium-past-good { fill: #4f9a7c; }
.premium-past-axis { position: relative; height: 24px; margin-top: 4px; }
.premium-past-axis-label { position: absolute; transform: translateX(-50%); font: 600 12px/1.4 var(--sans); white-space: nowrap; color: #4b4a45; }
.premium-past-axis-label.premium-past-caution { color: #b4574a; }
.premium-past-axis-label.premium-past-good { color: #3d7d63; }
.premium-past-legend { margin-top: 8px !important; }
.premium-past-legend-mean::before { content: ''; display: inline-block; width: 18px; border-top: 2px dashed #9b9484; margin-right: 6px; vertical-align: 3px; }
@media print { .premium-past-zone, .premium-past-dot, .premium-past-area { -webkit-print-color-adjust: exact; print-color-adjust: exact; } }

.premium-past-chart { margin: 14px 0 12px; }
.premium-past-why-title { margin-top: 22px; }

@media screen {
  .premium-body .premium-gate { padding: 28px 20px; border: 1px solid var(--ui-line); border-radius: var(--ui-radius); background: var(--ui-surface); }
  .premium-body .premium-gate h1 { font-family: var(--serif); }
  .premium-body .premium-export-ending { margin: 32px 0 64px; padding: 32px 22px; border-radius: var(--ui-radius); border-color: var(--ui-line); background: var(--ui-soft); }
  .premium-body .premium-export-ending h2 { font-size: 26px; letter-spacing: -.035em; }
  .premium-body .premium-export-ending > small { font-size: 13px; line-height: 1.7; color: var(--ui-muted); }
  .premium-body .premium-export-dialog { border-radius: 20px; border-color: var(--ui-line); }
  .premium-body .premium-export-close { width: 44px; height: 44px; border-radius: 50%; }
  .premium-body .premium-export-close:hover { background: var(--ui-soft); }
  .premium-body :is(.premium-export-options,.premium-export-spec div) { overflow: hidden; border-radius: var(--ui-control-radius); border-color: var(--ui-line); }
  .premium-body :is(.premium-export-spec dt,.premium-export-binding>small,.premium-export-complete>small) { color: var(--ui-muted); }
  .premium-body .premium-export-progress { height: 6px; border-radius: 99px; }
}

/* The final chapter moves from a personal summary to practical guidance and a letter. */
@media screen {
  .premium-body .premium-epilogue-part { margin-bottom: 36px; }
  .premium-body .premium-epilogue-part > h3 { margin-bottom: 18px; font: 700 23px/1.5 var(--serif); }
  .premium-body .premium-epilogue-faces { gap: 12px; }
  .premium-body .premium-epilogue-faces li { padding: 20px; gap: 8px; border-color: var(--ui-line); background: var(--ui-surface); }
  .premium-body .premium-epilogue-faces strong { font: 600 18px/1.7 var(--serif); }
  .premium-body .premium-epilogue-profile { padding: 24px 20px; border: 1px solid var(--ui-line); background: var(--ui-soft); }
  .premium-body :is(.premium-epilogue-profile p,.premium-epilogue-letter p) { font: 400 var(--report-body-size)/var(--report-body-leading) var(--serif); }
  .premium-body .premium-epilogue-manual { padding: 24px 20px 18px; border: 1px solid var(--ui-line); background: var(--ui-surface); }
  .premium-body .premium-epilogue-manual-title { border-bottom: 1px solid var(--ui-line); padding-bottom: 18px; font: 700 23px/1.45 var(--serif); }
  .premium-body .premium-epilogue-manual dt { padding-top: 18px; color: var(--ui-gold); }
  .premium-body .premium-epilogue-manual dd { margin-top: 8px; padding-bottom: 18px; border-bottom-style: solid; font-weight: 500; line-height: 1.8; }
  .premium-body .premium-epilogue-verdict { padding: 28px 20px; border: 1px solid var(--ui-line); background: var(--ui-soft); gap: 20px; }
  .premium-body .premium-epilogue-verdict-lines { font-size: 21px; line-height: 1.8; }
  .premium-body .premium-epilogue-meow { padding: 16px; border: 1px solid var(--ui-line); border-radius: var(--ui-control-radius); background: var(--ui-surface); }
  .premium-body .premium-epilogue-letter { gap: 22px; padding-top: 22px; border-top: 1px solid var(--ui-line); }
  .premium-body :is(.premium-epilogue-brand,.premium-epilogue-manual-brand) { color: var(--ui-muted); font-size: 12px; line-height: 1.8; }
}

/* 특별 구성 · 실전 도구 */
.premium-bonus-block { display: grid; gap: 12px; margin: 0 0 22px; }
.premium-bonus-block h3 { margin: 0; }
.premium-bonus-lead { margin: 0; font-weight: 700; line-height: 1.7; }
.premium-bonus-columns { display: grid; grid-template-columns: minmax(0, 1fr); gap: 12px; }
.premium-bonus-column { padding: 14px 16px; border: 1px solid #e0d4bb; border-radius: 8px; background: #fffdf8; }
.premium-bonus-column ul { display: grid; gap: 10px; margin: 0; padding: 0; list-style: none; font-size: 14px; line-height: 1.7; }
.premium-bonus-label { margin: 0 0 8px; font-weight: 800; font-size: 13px; }
.premium-bonus-sign .premium-bonus-label { color: #a3392b; }
.premium-bonus-script { display: grid; gap: 6px; padding: 14px 16px; border: 1px solid #e0d4bb; border-radius: 8px; background: #fffdf8; }
.premium-bonus-script h4 { margin: 0; font-size: 15px; }
.premium-bonus-say, .premium-bonus-avoid { display: grid; gap: 2px; margin: 0; font-size: 14px; line-height: 1.7; }
.premium-bonus-say strong { font-size: 12px; color: #7a6642; }
.premium-bonus-avoid strong { font-size: 12px; color: #a3392b; }
@media print { .premium-bonus-block, .premium-bonus-script { break-inside: avoid; } }

.premium-bonus-row { display: grid; gap: 6px; padding: 12px 14px; border: 1px solid #e0d4bb; border-radius: 8px; background: #fffdf8; }
.premium-bonus-row h4 { margin: 0; font-size: 13px; color: #7a6642; }
.premium-bonus-fit, .premium-bonus-sign-line { display: grid; grid-template-columns: 3.4em minmax(0, 1fr); gap: 8px; margin: 0; font-size: 14px; line-height: 1.7; }
.premium-bonus-fit strong { font-size: 11px; color: #4f7d5b; }
.premium-bonus-sign-line strong { font-size: 11px; color: #a3392b; }
@media print { .premium-bonus-row { break-inside: avoid; } }
