/* Mobile is the page layout at every viewport; desktop only adds outer margins. */
html { background: #e4e6df; scroll-padding-top: 20px; }
body[data-route=book] {
  width: 100%; max-width: 480px; margin-inline: auto;
  background: #f6f5ef; box-shadow: 0 0 0 1px #cbd0c255;
  padding-bottom: calc(96px + env(safe-area-inset-bottom));
  font-size: 16px; -webkit-text-size-adjust: 100%;
  word-break: keep-all; overflow-wrap: break-word;
}
body[data-route=book] .section-wrap,
body[data-route=book] .story-reading { width: calc(100% - 40px); margin-inline: auto; }
body[data-route=book] .header { height: 68px; gap: 14px; }
body[data-route=book] .brand { font-size: 20px; gap: 8px; }
body[data-route=book] .brand-mark { font-size: 36px; }
body[data-route=book] .brand-sub { font-size: 9px; }
body[data-route=book] .header nav { gap: 0; }
body[data-route=book] .header nav > a { display: none; }
body[data-route=book] .header nav > a[href="#book-preview"] { display: inline-flex; align-items: center; min-height: 44px; font-size: 12px; }
body[data-route=book] .hero { display: grid; grid-template-columns: minmax(0, 1fr); gap: 0; padding-top: 25px; padding-bottom: 30px; }
body[data-route=book] .hero-copy { display: contents; }
body[data-route=book] .hero-copy > .eyebrow { order: 0; font-size: 11px; line-height: 1.6; margin-bottom: 17px; letter-spacing: -.015em; }
body[data-route=book] .hero h1 { order: 1; font-size: clamp(28px, 8vw, 36px); line-height: 1.42; letter-spacing: -.05em; }
body[data-route=book] .book-editorial-hero { order: 2; margin: 22px 0 0; border-radius: 12px 38px 12px 12px; }
body[data-route=book] .book-editorial-hero > img { width: 100%; height: auto; aspect-ratio: 1.8; object-fit: cover; object-position: center 53%; }
body[data-route=book] .book-editorial-hero figcaption { display: flex; flex-wrap: wrap; padding: 11px 13px; gap: 3px 9px; font-size: 11px; }
body[data-route=book] .book-editorial-hero small { font-size: 10px; }
body[data-route=book] .hero-description { order: 3; font-size: 15px; line-height: 1.85; max-width: none; margin-top: 19px; }
body[data-route=book] .hero .route-facts { order: 4; font-size: 11px; gap: 6px; margin-top: 15px; }
body[data-route=book] .hero .route-facts span { padding: 5px 8px; }
body[data-route=book] .hero-actions { order: 5; display: block; margin-top: 13px; }
body[data-route=book] .hero-actions .text-link { display: inline-flex; align-items: center; min-height: 44px; font-size: 12px; }
body[data-route=book] .hero-note { order: 6; font-size: 11px; margin-top: 0; line-height: 1.7; }
body[data-route=book] .hero .availability { order: 7; }
body[data-route=book] .intro-strip { display: flex; flex-wrap: wrap; gap: 8px 14px; padding-block: 18px; }
body[data-route=book] .intro-strip > span { font-size: 10px; }
body[data-route=book] .intro-strip > span:first-child { font-size: 9px; letter-spacing: .04em; }
body[data-route=book] .book-story .story-section,
body[data-route=book] .book-story .story-band { padding-block: 46px; }
body[data-route=book] .book-story h2 { font-size: clamp(25px, 7vw, 29px); line-height: 1.45; letter-spacing: -.045em; }
body[data-route=book] .book-story .eyebrow { font-size: 11px; line-height: 1.8; margin-bottom: 17px; }
body[data-route=book] .book-story .story-lead { font-size: 16px; line-height: 1.85; margin-top: 23px; }
body[data-route=book] .source-caption { font-size: 11px; line-height: 1.8; }
body[data-route=book] .decision-scene { padding: 24px 19px; min-height: 355px; margin-top: 24px; background-image: linear-gradient(160deg, #17212620, #101c22df), url('../assets/book/decision-evening-v1-700.webp'); }
body[data-route=book] .decision-options { gap: 18px; }
body[data-route=book] .decision-options span:not([aria-hidden]) { padding: 10px 23px; font-size: 16px; }
body[data-route=book] .decision-scene > p { font-size: 14px; }
body[data-route=book] .decision-scene > strong { font-size: 21px; }
/* Keep the full thread visible and anchor each label to its part of the image. */
body[data-route=book] .criteria-visual .criteria-editorial { position: relative; inset: auto; z-index: 0; }
body[data-route=book] .criteria-visual .criteria-editorial img { display: block; width: 100%; height: auto; max-height: none; aspect-ratio: 3 / 2; object-fit: contain; }
body[data-route=book] .criteria-visual .criteria-stack { position: absolute; inset: 0; min-height: 0; margin: 0; padding: 0; display: block; }
body[data-route=book] .criteria-stack > * { position: absolute; margin: 0; font-size: 13px; line-height: 1.6; padding: 8px 10px; }
body[data-route=book] .criteria-stack > :first-child { top: 16%; left: 5%; margin-left: 0; }
body[data-route=book] .criteria-stack > :nth-child(2) { top: 36%; left: 8%; margin-left: 0; }
body[data-route=book] .criteria-stack > strong { right: 4%; bottom: 5%; width: 54%; padding: 7px 8px; text-align: center; }
body[data-route=book] .criteria-stack > strong::before { content: ''; position: absolute; right: 15%; bottom: 100%; height: 14px; width: 1px; background: #728450; }
@media (prefers-reduced-motion: no-preference) {
  body[data-route=book] .criteria-stack.is-playing > strong { animation-name: criteria-thread-anchor; }
}
@keyframes criteria-thread-anchor {
  0%, 100% { transform: translateY(0); box-shadow: 0 4px 12px #26362115; }
  45%, 65% { transform: translateY(3px); box-shadow: 0 0 0 4px #dcee9755, 0 8px 18px #26362120; }
}
body[data-route=book] .work-preview { padding: 24px 19px; border-width: 7px; }
body[data-route=book] .work-label { font-size: 14px; }
body[data-route=book] .work-preview dt { font-size: 14px; }
body[data-route=book] .work-preview dd { font-size: 17px; }
body[data-route=book] .writing-results li { padding: 20px 17px; gap: 13px; }
body[data-route=book] .writing-results h3 { font-size: 18px; }
body[data-route=book] .writing-results .answer-line { font-size: 16px; }
body[data-route=book] .outcome-note { font-size: 13px; }
body[data-route=book] .contents-facts strong { font-size: 32px; }
body[data-route=book] .contents-facts strong span { font-size: 14px; }
body[data-route=book] .contents-facts > div + div { padding-left: 20px; }
body[data-route=book] .contents-facts p { font-size: 12px; }
body[data-route=book] .chapter-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 11px; }
body[data-route=book] .chapter-cards li { min-height: 155px; padding: 18px 16px; }
body[data-route=book] .chapter-cards li > span { font-size: 30px; }
body[data-route=book] .chapter-cards h3 { font-size: 15px; margin-top: 20px; }
body[data-route=book] .author-context { display: block; margin-top: 36px; }
body[data-route=book] .author-context img { width: 100%; height: auto; aspect-ratio: 1.5; object-fit: cover; object-position: 70% center; margin-bottom: 23px; }
body[data-route=book] .author-context h3 { font-size: 22px; }
body[data-route=book] .author-context p:not(.eyebrow) { font-size: 15px; line-height: 1.85; }
.author-story { background: #eeeee4; }
.author-portrait { position: relative; margin: 26px 0 0; border-radius: 12px; overflow: hidden; background: #ad8c6d; }
.author-portrait img { display: block; width: 100%; height: auto; aspect-ratio: 1.05; object-fit: cover; object-position: center 26%; }
.author-portrait figcaption { position: absolute; inset: auto 0 0; padding: 45px 21px 20px; background: linear-gradient(transparent, #1b221aed); color: #fffdf4; }
.author-portrait figcaption > span { display: block; font-size: 11px; margin-bottom: 7px; }
.author-portrait figcaption > strong { display: flex; align-items: baseline; gap: 12px; font-size: 26px; }
.author-portrait figcaption strong span { font-size: 12px; font-weight: 400; }
.author-track-record { display: grid; grid-template-columns: 1fr 1fr; margin: 24px 0 0; padding-block: 20px; border-block: 1px solid #c5cbb8; }
.author-track-record > div { display: flex; flex-direction: column; gap: 13px; }
.author-track-record > div + div { border-left: 1px solid #c5cbb8; padding-left: 17px; }
.author-track-record dt { font-size: 11px; color: #59634d; }
.author-track-record dd { order: -1; font-size: 32px; line-height: 1.2; font-weight: 650; margin: 0; letter-spacing: -.04em; white-space: nowrap; }
.author-track-record dd span { font-size: 12px; font-weight: 500; letter-spacing: -.02em; }
.author-intro { font-size: 15px; line-height: 1.85; margin-top: 22px; color: #535c4b; }
.author-intro strong { color: #293125; }
.author-evidence-heading { font-size: 19px; margin-top: 48px; }
.author-evidence-heading::before { content: ''; display: block; width: 1px; height: 48px; margin: 0 auto 36px; background: #a8b58e; }
.author-evidence { display: grid; gap: 12px; margin-top: 17px; }
.author-evidence article { padding: 20px; border: 1px solid #d1d6c5; border-radius: 10px; background: #fafaf4; }
.evidence-meta { display: flex; justify-content: space-between; align-items: center; font-size: 10px; color: #69735c; margin-bottom: 12px; }
.evidence-meta > :first-child { padding: 4px 8px; background: #e5ecd5; border-radius: 4px; color: #42532c; }
.author-evidence h4 { font-size: 16px; line-height: 1.65; }
.author-evidence p { font-size: 13px; line-height: 1.8; margin-top: 9px; color: #59634e; }
.author-evidence a { display: flex; justify-content: space-between; align-items: center; min-height: 44px; margin-top: 12px; border-top: 1px solid #dce1d1; padding-top: 8px; color: #465631; font-size: 11px; text-decoration: underline; text-underline-offset: 3px; }
.author-evidence a:focus-visible { outline: 2px solid #668336; outline-offset: 3px; }
.author-book-bridge { margin-top: 26px; border-left: 3px solid #a0b768; padding: 4px 0 4px 17px; }
.author-book-bridge > span { font-size: 12px; color: #647249; }
.author-book-bridge p { font-size: 17px; line-height: 1.85; margin-top: 16px; text-wrap: balance; }
.author-book-bridge p:first-of-type { font-size: 20px; line-height: 1.7; }
.author-book-bridge p + p { color: #46513c; margin-top: 24px; }
body[data-route=book] #author-title { font-size: clamp(22px, 6.2vw, 27px); }
body[data-route=book] .consultation-fee-note { margin-top: 14px; color: #59634e; font-size: 12px; line-height: 1.8; text-align: center; }
body[data-route=book] .reader-quote { flex: 0 0 88%; min-height: 360px; padding: 25px 23px; }
body[data-route=book] .reader-quote blockquote p { font-size: 20px; line-height: 1.85; }
body[data-route=book] .review-track { overscroll-behavior-x: contain; }
body[data-route=book] .review-themes { gap: 6px; }
body[data-route=book] .review-themes span { padding: 6px 9px; font-size: 11px; }
body[data-route=book] .story-offer { padding: 27px 22px; }
body[data-route=book] .story-offer h3 { font-size: 22px; }
body[data-route=book] .story-offer > p { font-size: 14px; }
body[data-route=book] .consulting-anchor { padding-top: 30px; }
body[data-route=book] .story-consultation { background: #eeeee4; }
body[data-route=book] .story-consultation .consulting-anchor { padding-top: 0; }
body[data-route=book] .story-consultation .consulting-detail > p { font-size: 14px; line-height: 1.85; color: #59634e; }
body[data-route=book] .consulting-anchor h3 { font-size: 19px; }
body[data-route=book] .form-card { padding: 25px 20px; }
body[data-route=book] .form-card input:not([type=checkbox]) { font-size: 16px; min-height: 48px; }
body[data-route=book] .form-card label { font-size: 13px; }
body[data-route=book] .privacy-link { min-height: 44px; font-size: 12px; }
body[data-route=book] .submit-button { min-height: 52px; font-size: 14px; }
body[data-route=book] .open-faq { grid-template-columns: 1fr; gap: 12px; }
body[data-route=book] .open-faq article { padding: 22px 20px; }
body[data-route=book] .route-final { padding-block: 50px; }
body[data-route=book] .route-final h2 { font-size: 25px; }
body[data-route=book] .footer { padding-block: 35px; }
body[data-route=book] .footer-heading { display: block; }
body[data-route=book] .footer-heading p { font-size: 12px; margin-top: 15px; }
body[data-route=book] .footer-bottom { display: block; font-size: 11px; line-height: 1.85; }
body[data-route=book] .footer-bottom > span { display: block; margin-top: 18px; }
body[data-route=book] #mobile-cta { width: 100%; max-width: 480px; margin-inline: auto; padding: 12px max(20px, env(safe-area-inset-left)) calc(12px + env(safe-area-inset-bottom)); }
body[data-route=book] .purchase-bar-inner { width: 100%; gap: 16px; }
body[data-route=book] .purchase-bar-inner .sticky-link { width: min(62%, 260px); min-height: 54px; padding: 15px 17px; font-size: 15px; }
body[data-route=book] .purchase-bar-price strong { font-size: 22px; }
body[data-route=book] dialog { width: min(420px, calc(100% - 32px)); padding: 30px 23px; }
body[data-route=book] .noscript-note { position: static; margin: 20px; padding: 15px; font-size: 12px; }
/* Center the reading flow; wrap Korean at word boundaries and balance short copy. */
body[data-route=book] main { text-align: center; }
body[data-route=book] :is(h1,h2,h3,h4,.eyebrow,.story-lead,.hero-description,.author-intro,.reader-quote blockquote p) { text-wrap: balance; }
body[data-route=book] :is(p,dt,dd,li) { overflow-wrap: break-word; }
body[data-route=book] :is(.open-faq p,.author-evidence p) { text-wrap: balance; }
body[data-route=book] .faq-sentence { display: block; }
body[data-route=book] .faq-sentence + .faq-sentence { margin-top: 9px; }
body[data-route=book] .copy-line { display: block; }
body[data-route=book] .copy-stanza { display: block; margin-top: 16px; }
body[data-route=book] .hero .route-facts,
body[data-route=book] .book-editorial-hero figcaption,
body[data-route=book] .review-themes { justify-content: center; }
body[data-route=book] .intro-strip { justify-content: center; flex-direction: column; gap: 5px; }
body[data-route=book] .book-editorial-hero { border-radius: 22px; }
body[data-route=book] .work-label .copy-line { margin-bottom: 7px; font-size: 11px; color: #6a7d4c; }
body[data-route=book] .work-preview dd { margin-inline: auto; text-wrap: balance; }
body[data-route=book] .writing-results li { flex-direction: column; align-items: center; gap: 12px; }
body[data-route=book] .writing-results li > div { width: 100%; min-width: 0; }
body[data-route=book] .writing-results li > span { padding-top: 0; }
body[data-route=book] .chapter-cards li { align-items: center; }
body[data-route=book] .author-portrait figcaption > strong { justify-content: center; }
body[data-route=book] .author-track-record > div { padding-inline: 8px; }
body[data-route=book] .evidence-meta { justify-content: center; gap: 12px; }
body[data-route=book] .author-evidence a { justify-content: center; gap: 9px; }
body[data-route=book] .author-book-bridge { border-left: 0; border-top: 1px solid #b8c69b; padding: 24px 0 0; }
body[data-route=book] .purchase-includes { list-style: none; padding: 16px 0; }
body[data-route=book] .purchase-includes li { padding-block: 7px; font-size: 13px; text-wrap: balance; }
body[data-route=book] .story-offer .price { justify-content: center; }
body[data-route=book] .reader-quote { text-align: center; }
body[data-route=book] .form-card :is(input,label,.consent) { text-align: center; }
body[data-route=book] .form-card label { justify-content: center; }
body[data-route=book] .form-card .consent { align-items: center; }
body[data-route=book] .reader-reviews .review-navigation { flex-direction: column; justify-content: center; gap: 12px; }
body[data-route=book] .reader-reviews .review-navigation > div { justify-content: center; }
body[data-route=book] .footer { text-align: center; }
body[data-route=book] .footer .brand { justify-content: center; }
body[data-route=book] .route-final h2 { font-size: clamp(22px, 6.1vw, 25px); }
@media (max-width: 350px) {
  body[data-route=book] .section-wrap, body[data-route=book] .story-reading { width: calc(100% - 32px); }
  body[data-route=book] .criteria-stack > * { font-size: 12px; }
  body[data-route=book] .work-preview { padding-inline: 15px; }
  body[data-route=book] .work-preview dd { font-size: 15px; }
  body[data-route=book] .reader-quote { padding: 23px 18px; }
  body[data-route=book] .reader-quote blockquote p { font-size: 18px; }
  body[data-route=book] .story-offer { padding: 24px 18px; }
  body[data-route=book] .story-offer h3 { font-size: 20px; }
  body[data-route=book] .chapter-cards li { padding-inline: 13px; }
  body[data-route=book] .chapter-cards h3 { font-size: 14px; }
}
.review-archive-link{display:block;width:fit-content;margin:28px auto 0;padding:12px 6px;border-bottom:1px solid #879668;color:#405538;text-decoration:none;font-size:14px;font-weight:600}.review-archive-link span{margin-left:12px}
body[data-route=book] .reader-quote { flex-basis: 100%; padding-inline: 20px; }
body[data-route=book] .review-track { align-items: flex-start; overflow-y: hidden; }
body[data-route=book] .reader-quote[data-review-kind=ebook] blockquote p { font-size: 16px; line-height: 1.9; letter-spacing: -.025em; text-wrap: pretty; }
body[data-route=book] .review-paragraph { display: block; }
body[data-route=book] .review-paragraph + .review-paragraph { margin-top: 16px; }
/* Preserve the requested eight lines while scaling with the review's text area. */
body[data-route=book] .reader-quote:has(.review-line) { padding-inline: 10px; }
body[data-route=book] .reader-quote:has(.review-line) blockquote { container-type: inline-size; }
body[data-route=book] .reader-quote[data-review-kind=ebook]:has(.review-line) blockquote p { font-size: min(16px, 3.85cqw); line-height: 2; }
body[data-route=book] .review-line { display: block; width: max-content; margin-inline: auto; white-space: nowrap; }
