/* =========================================================
   RC104 — FINAL REFERENCE QUALITY LAYOUT LOCK
   Non-negotiable priority:
   1) character first and large
   2) copy only in the negative space
   3) copy NEVER shrinks the character
   4) fixed page composition scales as one unit on mobile
   5) print/PDF mirrors the reader composition
   ========================================================= */

/* The approved reference is intentionally dense: narrow body column,
   large character, large gold impact sentence, almost no dead space. */
body.reading .pictureStage .picturePage{
  --rc104-side:44px;
  --rc104-title-w:354px;
  --rc104-body-w:300px;
  --rc104-impact-w:690px;
  background:#fffdf8!important;
}

/* Character first. RC103 medium 1.12 -> RC104 1.187 (+~6%).
   RC103 close 1.07 -> RC104 1.135 (+~6%). */
body.reading .pictureStage .picturePage .pageCharacter{
  transform:translateX(var(--rc104-art-shift,6%)) scale(var(--rc104-art-scale,1.187))!important;
  transform-origin:86% 47%!important;
  object-position:center!important;
  filter:none!important;
}
body.reading .pictureStage .picturePage.pose-left .pageCharacter{
  --rc104-art-shift:-6%;
  transform:translateX(var(--rc104-art-shift,-6%)) scale(var(--rc104-art-scale,1.187))!important;
  transform-origin:14% 47%!important;
}
body.reading .scene-01,body.reading .scene-04,body.reading .scene-07,
body.reading .scene-10,body.reading .scene-13,body.reading .scene-16,
body.reading .scene-19{--rc104-art-scale:1.135;--rc104-art-shift:4%}
body.reading .scene-04,body.reading .scene-10,body.reading .scene-16{--rc104-art-shift:-4%}

/* Protect only the actual text column. The older broad veil washed out the face. */
body.reading .pictureStage .picturePage::after{
  background:linear-gradient(90deg,
    rgba(255,253,248,.997) 0%,
    rgba(255,253,248,.988) 24%,
    rgba(255,253,248,.92) 31%,
    rgba(255,253,248,.68) 37%,
    rgba(255,253,248,.28) 43%,
    rgba(255,253,248,.06) 48%,
    rgba(255,253,248,0) 53%)!important;
}
body.reading .pictureStage .picturePage.pose-left::after{
  background:linear-gradient(270deg,
    rgba(255,253,248,.997) 0%,
    rgba(255,253,248,.988) 24%,
    rgba(255,253,248,.92) 31%,
    rgba(255,253,248,.68) 37%,
    rgba(255,253,248,.28) 43%,
    rgba(255,253,248,.06) 48%,
    rgba(255,253,248,0) 53%)!important;
}

body.reading .pictureStage .picturePage .pageMeta{
  top:30px!important;left:var(--rc104-side)!important;right:var(--rc104-side)!important;
  font-size:10.8px!important;padding-bottom:12px!important;
}
body.reading .pictureStage .picturePage .chapterLine{
  top:80px!important;left:var(--rc104-side)!important;width:var(--rc104-title-w)!important;
  font-size:13.6px!important;line-height:1.55!important;
}
body.reading .pictureStage .picturePage h3{
  top:126px!important;left:var(--rc104-side)!important;
  width:var(--rc104-title-w)!important;max-width:var(--rc104-title-w)!important;
  font-family:"Noto Serif CJK KR","Noto Serif KR","Nanum Myeongjo","Batang",serif!important;
  font-size:43px!important;line-height:1.34!important;letter-spacing:-.042em!important;
  font-weight:500!important;color:#8b591b!important;
  word-break:keep-all!important;overflow-wrap:normal!important;
}
body.reading .pictureStage .picturePage .bodyFlow{
  top:325px!important;left:var(--rc104-side)!important;
  width:var(--rc104-body-w)!important;max-width:var(--rc104-body-w)!important;
  height:610px!important;
  display:flex!important;flex-direction:column!important;justify-content:space-between!important;
  gap:22px!important;overflow:hidden!important;
  font-family:"Noto Serif CJK KR","Noto Serif KR","Nanum Myeongjo","Batang",serif!important;
  font-size:18.2px!important;line-height:1.76!important;letter-spacing:-.022em!important;
  color:#2f2c28!important;word-break:keep-all!important;overflow-wrap:normal!important;
}
body.reading .pictureStage .picturePage .bodyFlow p{margin:0!important;padding:0!important}
body.reading .pictureStage .picturePage .impactLine{
  left:var(--rc104-side)!important;bottom:55px!important;
  width:var(--rc104-impact-w)!important;max-width:var(--rc104-impact-w)!important;
  font-family:"Noto Serif CJK KR","Noto Serif KR","Nanum Myeongjo","Batang",serif!important;
  font-size:33px!important;line-height:1.46!important;letter-spacing:-.043em!important;
  font-weight:500!important;color:#99631d!important;
}
body.reading .pictureStage .picturePage .impactLine::before{margin-bottom:10px!important}

body.reading .pictureStage .picturePage.pose-left .chapterLine,
body.reading .pictureStage .picturePage.pose-left h3,
body.reading .pictureStage .picturePage.pose-left .bodyFlow{
  left:auto!important;right:var(--rc104-side)!important;
}
body.reading .pictureStage .picturePage.pose-left .impactLine{left:auto!important;right:var(--rc104-side)!important}

/* Long pages widen COPY slightly and reduce copy size only. Art is never touched. */
body.reading .pictureStage .picturePage.dense{--rc104-body-w:312px}
body.reading .pictureStage .picturePage.dense h3{font-size:40px!important}
body.reading .pictureStage .picturePage.dense .bodyFlow{font-size:16.8px!important;line-height:1.70!important;top:314px!important;height:622px!important;gap:18px!important}
body.reading .pictureStage .picturePage.dense .impactLine{font-size:30px!important}
body.reading .pictureStage .picturePage.compact{--rc104-body-w:324px}
body.reading .pictureStage .picturePage.compact h3{font-size:37px!important}
body.reading .pictureStage .picturePage.compact .bodyFlow{font-size:15.4px!important;line-height:1.62!important;top:304px!important;height:636px!important;gap:14px!important}
body.reading .pictureStage .picturePage.compact .impactLine{font-size:27px!important}
body.reading .pictureStage .picturePage.fit-tight{--rc104-body-w:332px}
body.reading .pictureStage .picturePage.fit-tight .bodyFlow,
body.reading .pictureStage .picturePage.fit-tight .bodyFlowBottom{font-size:14.3px!important;line-height:1.53!important}
body.reading .pictureStage .picturePage.fit-tight .impactLine{font-size:25px!important}
body.reading .pictureStage .picturePage.fit-ultra{--rc104-body-w:338px}
body.reading .pictureStage .picturePage.fit-ultra .bodyFlow,
body.reading .pictureStage .picturePage.fit-ultra .bodyFlowBottom{font-size:13.4px!important;line-height:1.47!important}
body.reading .pictureStage .picturePage.fit-ultra .impactLine{font-size:23.5px!important}

/* Overflow copy uses a second low safe band; this creates reference-like distributed copy
   instead of crushing the side column or reducing character scale. */
body.reading .pictureStage .picturePage.has-bottom .bodyFlow{
  top:316px!important;height:438px!important;justify-content:space-between!important;
}
body.reading .pictureStage .picturePage.has-bottom .bodyFlowBottom{
  display:flex!important;position:absolute!important;z-index:5!important;
  left:var(--rc104-side)!important;top:786px!important;width:636px!important;height:164px!important;
  flex-direction:column!important;justify-content:space-between!important;gap:12px!important;overflow:hidden!important;
  margin:0!important;padding:0!important;
  font-family:"Noto Serif CJK KR","Noto Serif KR","Nanum Myeongjo","Batang",serif!important;
  font-size:17.4px!important;line-height:1.66!important;letter-spacing:-.022em!important;
  color:#2f2c28!important;word-break:keep-all!important;
}
body.reading .pictureStage .picturePage.pose-left.has-bottom .bodyFlowBottom{left:auto!important;right:var(--rc104-side)!important}
body.reading .pictureStage .picturePage.has-bottom .impactLine{bottom:48px!important}
body.reading .pictureStage .picturePage.dense.has-bottom .bodyFlowBottom{font-size:16.2px!important;line-height:1.58!important}
body.reading .pictureStage .picturePage.compact.has-bottom .bodyFlowBottom{font-size:14.9px!important;line-height:1.52!important}

/* Compatibility: same geometry, only the approved rose world changes. */
body.reading .pictureStage .picturePage.compat::after{
  background:linear-gradient(90deg,rgba(255,249,250,.997) 0%,rgba(255,249,250,.988) 24%,rgba(255,249,250,.92) 31%,rgba(255,249,250,.68) 37%,rgba(255,249,250,.28) 43%,rgba(255,249,250,.06) 48%,rgba(255,249,250,0) 53%)!important;
}
body.reading .pictureStage .picturePage.compat.pose-left::after{
  background:linear-gradient(270deg,rgba(255,249,250,.997) 0%,rgba(255,249,250,.988) 24%,rgba(255,249,250,.92) 31%,rgba(255,249,250,.68) 37%,rgba(255,249,250,.28) 43%,rgba(255,249,250,.06) 48%,rgba(255,249,250,0) 53%)!important;
}
body.reading .pictureStage .picturePage.compat .pageCharacter{filter:sepia(.05) saturate(.94) hue-rotate(314deg) brightness(1.02)!important}

/* Print/PDF: exact same composition ratios, mapped to A4. */
@media print{
  .printPage{
    --rc104-side-mm:11mm;--rc104-title-mm:91mm;--rc104-body-mm:77mm;--rc104-impact-mm:177mm;
  }
  .printPage img{
    transform:translateX(var(--rc104-print-shift,6%)) scale(var(--rc104-print-scale,1.187))!important;
    transform-origin:86% 47%!important;filter:none!important;
  }
  .printPage.pose-left img,.printPage.left img{
    --rc104-print-shift:-6%;transform:translateX(var(--rc104-print-shift,-6%)) scale(var(--rc104-print-scale,1.187))!important;
    transform-origin:14% 47%!important;
  }
  .printPage.scene-01,.printPage.scene-04,.printPage.scene-07,.printPage.scene-10,.printPage.scene-13,.printPage.scene-16,.printPage.scene-19{--rc104-print-scale:1.135;--rc104-print-shift:4%}
  .printPage.scene-04,.printPage.scene-10,.printPage.scene-16{--rc104-print-shift:-4%}
  .printPage::after{background:linear-gradient(90deg,rgba(255,253,248,.997) 0%,rgba(255,253,248,.988) 24%,rgba(255,253,248,.92) 31%,rgba(255,253,248,.68) 37%,rgba(255,253,248,.28) 43%,rgba(255,253,248,.06) 48%,rgba(255,253,248,0) 53%)!important}
  .printPage.pose-left::after,.printPage.left::after{background:linear-gradient(270deg,rgba(255,253,248,.997) 0%,rgba(255,253,248,.988) 24%,rgba(255,253,248,.92) 31%,rgba(255,253,248,.68) 37%,rgba(255,253,248,.28) 43%,rgba(255,253,248,.06) 48%,rgba(255,253,248,0) 53%)!important}
  .printPage .pMeta{top:7.5mm!important;left:var(--rc104-side-mm)!important;right:var(--rc104-side-mm)!important;font-size:7.8pt!important}
  .printPage .pChapter{top:19.5mm!important;left:var(--rc104-side-mm)!important;width:var(--rc104-title-mm)!important;max-width:var(--rc104-title-mm)!important;font-size:10pt!important}
  .printPage h2{top:31.5mm!important;left:var(--rc104-side-mm)!important;width:var(--rc104-title-mm)!important;max-width:var(--rc104-title-mm)!important;font-size:27pt!important;line-height:1.34!important;font-family:"Noto Serif CJK KR","Noto Serif KR","Nanum Myeongjo","Batang",serif!important}
  .printPage .pBody{top:82mm!important;left:var(--rc104-side-mm)!important;width:var(--rc104-body-mm)!important;max-width:var(--rc104-body-mm)!important;height:153mm!important;font-size:11.1pt!important;line-height:1.74!important;justify-content:space-between!important;gap:5mm!important;font-family:"Noto Serif CJK KR","Noto Serif KR","Nanum Myeongjo","Batang",serif!important}
  .printPage .pImpact{left:var(--rc104-side-mm)!important;bottom:14mm!important;width:var(--rc104-impact-mm)!important;max-width:var(--rc104-impact-mm)!important;font-size:21pt!important;line-height:1.46!important;font-family:"Noto Serif CJK KR","Noto Serif KR","Nanum Myeongjo","Batang",serif!important}
  .printPage.pose-left .pChapter,.printPage.pose-left h2,.printPage.pose-left .pBody,.printPage.left .pChapter,.printPage.left h2,.printPage.left .pBody{left:auto!important;right:var(--rc104-side-mm)!important}
  .printPage.pose-left .pImpact,.printPage.left .pImpact{left:auto!important;right:var(--rc104-side-mm)!important}
  .printPage.dense{--rc104-body-mm:80mm}.printPage.dense h2{font-size:25pt!important}.printPage.dense .pBody{font-size:10.2pt!important;line-height:1.67!important}.printPage.dense .pImpact{font-size:19pt!important}
  .printPage.compact{--rc104-body-mm:83mm}.printPage.compact h2{font-size:23pt!important}.printPage.compact .pBody{font-size:9.4pt!important;line-height:1.58!important}.printPage.compact .pImpact{font-size:17.5pt!important}
  .printPage.has-bottom .pBody{top:80mm!important;height:111mm!important}
  .printPage.has-bottom .pBodyBottom{display:flex!important;left:var(--rc104-side-mm)!important;top:198mm!important;width:163mm!important;height:40mm!important;font-size:10.5pt!important;line-height:1.58!important;justify-content:space-between!important;gap:2.5mm!important;font-family:"Noto Serif CJK KR","Noto Serif KR","Nanum Myeongjo","Batang",serif!important}
  .printPage.pose-left.has-bottom .pBodyBottom{left:auto!important;right:var(--rc104-side-mm)!important}
  .printPage.has-bottom .pImpact{bottom:11mm!important}
  .printPage.compat::after{background:linear-gradient(90deg,rgba(255,249,250,.997) 0%,rgba(255,249,250,.988) 24%,rgba(255,249,250,.92) 31%,rgba(255,249,250,.68) 37%,rgba(255,249,250,.28) 43%,rgba(255,249,250,.06) 48%,rgba(255,249,250,0) 53%)!important}
  .printPage.compat.pose-left::after{background:linear-gradient(270deg,rgba(255,249,250,.997) 0%,rgba(255,249,250,.988) 24%,rgba(255,249,250,.92) 31%,rgba(255,249,250,.68) 37%,rgba(255,249,250,.28) 43%,rgba(255,249,250,.06) 48%,rgba(255,249,250,0) 53%)!important}
}

/* RC104.1 — face protection + same-side overflow continuation.
   Medium poses are moved farther toward their outer edge so body copy never sits on the face. */
body.reading .pictureStage .picturePage{--rc104-title-w:330px;--rc104-body-w:288px}
body.reading .scene-02,body.reading .scene-03,body.reading .scene-05,body.reading .scene-09,
body.reading .scene-11,body.reading .scene-15,body.reading .scene-17{--rc104-art-shift:10%}
body.reading .scene-06,body.reading .scene-08,body.reading .scene-12,body.reading .scene-14,
body.reading .scene-18,body.reading .scene-20{--rc104-art-shift:-18%}
body.reading .scene-01,body.reading .scene-07,body.reading .scene-13,body.reading .scene-19{--rc104-art-shift:6%}
body.reading .scene-04,body.reading .scene-10,body.reading .scene-16{--rc104-art-shift:-10%}
body.reading .pictureStage .picturePage.dense{--rc104-body-w:300px}
body.reading .pictureStage .picturePage.compact{--rc104-body-w:310px}
body.reading .pictureStage .picturePage.fit-tight{--rc104-body-w:318px}
body.reading .pictureStage .picturePage.fit-ultra{--rc104-body-w:324px}
body.reading .pictureStage .picturePage.has-bottom .bodyFlow{top:312px!important;height:424px!important}
body.reading .pictureStage .picturePage.has-bottom .bodyFlowBottom{
  top:756px!important;left:var(--rc104-side)!important;
  width:var(--rc104-body-w)!important;max-width:var(--rc104-body-w)!important;height:194px!important;
  justify-content:space-between!important;
}
body.reading .pictureStage .picturePage.pose-left.has-bottom .bodyFlowBottom{left:auto!important;right:var(--rc104-side)!important}

@media print{
  .printPage{--rc104-title-mm:78mm;--rc104-body-mm:75mm}
  .printPage.scene-02,.printPage.scene-03,.printPage.scene-05,.printPage.scene-09,
  .printPage.scene-11,.printPage.scene-15,.printPage.scene-17{--rc104-print-shift:10%}
  .printPage.scene-06,.printPage.scene-08,.printPage.scene-12,.printPage.scene-14,
  .printPage.scene-18,.printPage.scene-20{--rc104-print-shift:-18%}
  .printPage.scene-01,.printPage.scene-07,.printPage.scene-13,.printPage.scene-19{--rc104-print-shift:6%}
  .printPage.scene-04,.printPage.scene-10,.printPage.scene-16{--rc104-print-shift:-10%}
  .printPage .pBody{font-size:11.4pt!important}
  .printPage.dense{--rc104-body-mm:78mm}.printPage.dense .pBody{font-size:10.5pt!important}
  .printPage.compact{--rc104-body-mm:80mm}.printPage.compact .pBody{font-size:9.8pt!important}
  .printPage.has-bottom .pBody{top:79mm!important;height:108mm!important}
  .printPage.has-bottom .pBodyBottom{
    top:190mm!important;left:var(--rc104-side-mm)!important;
    width:var(--rc104-body-mm)!important;max-width:var(--rc104-body-mm)!important;height:49mm!important;
    font-size:10.6pt!important;line-height:1.55!important;justify-content:space-between!important;
  }
  .printPage.pose-left.has-bottom .pBodyBottom,.printPage.left.has-bottom .pBodyBottom{left:auto!important;right:var(--rc104-side-mm)!important}
  .printPage.dense.has-bottom .pBodyBottom{font-size:9.9pt!important}
  .printPage.compact.has-bottom .pBodyBottom{font-size:9.3pt!important}
}

/* RC104.2 — apply per-scene edge shift on the image element itself (overrides RC103 image-local defaults). */
body.reading .scene-02 .pageCharacter,body.reading .scene-03 .pageCharacter,body.reading .scene-05 .pageCharacter,
body.reading .scene-09 .pageCharacter,body.reading .scene-11 .pageCharacter,body.reading .scene-15 .pageCharacter,
body.reading .scene-17 .pageCharacter{--rc104-art-shift:10%!important}
body.reading .scene-06 .pageCharacter,body.reading .scene-08 .pageCharacter,body.reading .scene-12 .pageCharacter,
body.reading .scene-14 .pageCharacter,body.reading .scene-18 .pageCharacter,body.reading .scene-20 .pageCharacter{--rc104-art-shift:-18%!important}
body.reading .scene-01 .pageCharacter,body.reading .scene-07 .pageCharacter,body.reading .scene-13 .pageCharacter,
body.reading .scene-19 .pageCharacter{--rc104-art-shift:6%!important}
body.reading .scene-04 .pageCharacter,body.reading .scene-10 .pageCharacter,body.reading .scene-16 .pageCharacter{--rc104-art-shift:-10%!important}
@media print{
  .printPage.scene-02 img,.printPage.scene-03 img,.printPage.scene-05 img,.printPage.scene-09 img,
  .printPage.scene-11 img,.printPage.scene-15 img,.printPage.scene-17 img{--rc104-print-shift:10%!important}
  .printPage.scene-06 img,.printPage.scene-08 img,.printPage.scene-12 img,.printPage.scene-14 img,
  .printPage.scene-18 img,.printPage.scene-20 img{--rc104-print-shift:-18%!important}
  .printPage.scene-01 img,.printPage.scene-07 img,.printPage.scene-13 img,.printPage.scene-19 img{--rc104-print-shift:6%!important}
  .printPage.scene-04 img,.printPage.scene-10 img,.printPage.scene-16 img{--rc104-print-shift:-10%!important}
}

/* RC104.3 — final face-clearance on medium left poses. */
body.reading .scene-06 .pageCharacter,body.reading .scene-08 .pageCharacter,body.reading .scene-12 .pageCharacter,
body.reading .scene-14 .pageCharacter,body.reading .scene-18 .pageCharacter,body.reading .scene-20 .pageCharacter{--rc104-art-shift:-24%!important}
@media print{
  .printPage.scene-06 img,.printPage.scene-08 img,.printPage.scene-12 img,.printPage.scene-14 img,
  .printPage.scene-18 img,.printPage.scene-20 img{--rc104-print-shift:-24%!important}
}
