
@font-face{font-family:"Nanum Myeongjo";src:url("fonts/NanumMyeongjo-Regular.woff2") format("woff2");font-weight:400;font-display:swap;}
@font-face{font-family:"Nanum Myeongjo";src:url("fonts/NanumMyeongjo-Bold.woff2") format("woff2");font-weight:700;font-display:swap;}
@font-face{font-family:"Nanum Myeongjo";src:url("fonts/NanumMyeongjo-ExtraBold.woff2") format("woff2");font-weight:800;font-display:swap;}
@font-face{font-family:"Song Myung";src:url("fonts/SongMyung-Regular.woff2") format("woff2");font-weight:400;font-display:swap;}
@font-face{font-family:"Gowun Dodum";src:url("fonts/GowunDodum-Regular.woff2") format("woff2");font-weight:400;font-display:swap;}
@font-face{font-family:"Hi Melody";src:url("fonts/HiMelody-Regular.woff2") format("woff2");font-weight:400;font-display:swap;}

:root{
  --paper:#FBF8F2; --card:#FBF6EF; --card-bd:#EFE4D4; --ink:#34302A;
  --accent:#C07B53; --accent2:#8E867A; --walnut:#5E3A2A; --hair:#E4DCCD;
  --disp:"Song Myung",serif; --body:"Nanum Myeongjo","Apple SD Gothic Neo",serif;
  --label:"Gowun Dodum",sans-serif; --hand:"Hi Melody",cursive;
}
*{box-sizing:border-box;}
html,body{height:100%;}
body{margin:0;background:#EAE3D6;color:var(--ink);font-family:var(--body);
  -webkit-font-smoothing:antialiased;overflow:hidden;}

#progress{position:fixed;top:0;left:0;height:3px;width:0;background:var(--accent);z-index:60;transition:width .25s;}

/* ── 리더 (화살표 | 페이지 | 화살표) ── */
.reader{height:100vh;height:100dvh;display:flex;align-items:center;justify-content:center;gap:min(3vw,34px);}
.nav{flex:0 0 auto;width:54px;height:54px;border-radius:50%;border:1px solid var(--hair);
  background:rgba(251,248,242,.78);color:var(--accent2);cursor:pointer;padding:0;
  display:flex;align-items:center;justify-content:center;transition:all .16s;
  box-shadow:0 2px 12px rgba(52,48,42,.09);-webkit-tap-highlight-color:transparent;}
.nav svg{width:20px;height:20px;}
.nav:hover{background:var(--paper);color:var(--accent);border-color:var(--accent);box-shadow:0 6px 20px rgba(52,48,42,.16);transform:scale(1.06);}
.nav:active{transform:scale(.96);}
.nav:disabled{opacity:.22;cursor:default;box-shadow:none;transform:none;}
.nav:focus{outline:none;}

/* ── 데크(페이지 카드) — 고정 540×786 A5 + 화면맞춤 균일축소(scale) ⇒ 모든 기기 동일 레이아웃 ── */
.deck-wrap{flex:0 0 auto;width:calc(540px*var(--fit,1));height:calc(786px*var(--fit,1));}
.deck{position:relative;width:540px;height:786px;transform:scale(var(--fit,1));transform-origin:top left;
  background:var(--paper);border-radius:7px;box-shadow:0 26px 64px rgba(52,48,42,.24),0 4px 12px rgba(52,48,42,.12);
  overflow:hidden;display:flex;flex-direction:column;}
.deck-head{flex:0 0 auto;height:38px;display:flex;align-items:center;justify-content:center;
  padding:0 26px;font-family:var(--label);font-size:11px;letter-spacing:.06em;color:var(--accent2);}
.dh-title{color:var(--accent2);max-width:100%;white-space:nowrap;overflow:hidden;
  text-overflow:ellipsis;text-indent:.06em;}
/* Gowun Dodum 숫자는 한글보다 baseline 이 위로 뜸 → 숫자만 내려 정렬 (2026-07-07 사용자) */
.dh-title .dh-n{vertical-align:-.07em;}
/* 목차 버튼 — 데크 바깥 고정(표지 포함 항상 보임) */
.menu-fab{position:fixed;top:calc(10px + env(safe-area-inset-top,0px));left:calc(12px + env(safe-area-inset-left,0px));
  z-index:70;border:0;cursor:pointer;min-height:40px;display:inline-flex;align-items:center;
  background:rgba(251,248,242,.82);backdrop-filter:blur(4px);border-radius:22px;padding:10px 16px;
  font-family:var(--label);font-size:11px;letter-spacing:.1em;color:var(--accent2);
  box-shadow:0 2px 10px rgba(52,48,42,.14);touch-action:manipulation;}
.menu-fab:hover{color:var(--accent);}
.menu-fab:focus-visible,.nav:focus-visible,.toc-ov-x:focus-visible,a.toc-item:focus-visible{
  outline:2px solid var(--accent);outline-offset:2px;}
.deck-body{flex:1 1 auto;position:relative;overflow:hidden;}
.deck-foot{flex:0 0 auto;min-height:34px;padding-bottom:env(safe-area-inset-bottom,0px);
  display:flex;align-items:center;justify-content:center;
  font-family:var(--label);font-size:12.5px;letter-spacing:.22em;color:var(--accent2);}
.deck.bare .deck-head,.deck.bare .deck-foot{display:none;}

.track{display:flex;height:100%;width:100%;transition:transform .34s cubic-bezier(.4,0,.2,1);}
.page{flex:0 0 100%;width:100%;height:100%;overflow:hidden;padding:26px 40px 20px;}

/* ── 본문 ── */
/* 한글 본문 조판 공식 (한국 단행본 표준, compile_book 443행과 동일):
   justify+normal = 음절 개행 허용 → 자투리 < 글자 1개 폭 → justify 는 미세조정만 (벌어짐 구조적 불가)
   ❌ 금지: justify+keep-all(공백 폭발) / left 본문(우측 너덜) */
.page p{font-family:var(--body);font-size:calc(16px*var(--fscale,1));line-height:1.88;letter-spacing:-.01em;
  text-align:justify;text-align-last:left;word-break:normal;overflow-wrap:break-word;
  color:var(--ink);margin:0 0 12px;}
.page blockquote p{word-break:keep-all;}   /* 인용·카드는 어절 보존 ('없음입니/다' 파괴 방지, print 523행과 동일) */
.dropcap{float:left;font-family:var(--disp);font-size:calc(56px*var(--fscale,1));line-height:.82;color:var(--accent);margin:6px 11px 0 0;}
.page .block:first-child{margin-top:0;}

.chap{padding-top:6px;}
.chap-no{font-family:var(--disp);font-size:50px;line-height:1;color:var(--accent);opacity:.15;letter-spacing:.04em;}
.chap-title{font-family:var(--disp);font-size:27px;line-height:1.32;color:var(--ink);letter-spacing:-.01em;margin:3px 0 0;font-weight:400;}
.chap-rule{width:44px;height:2px;background:var(--accent);margin:14px 0 20px;}

.pull{position:relative;margin:46px 0 26px;padding:4px 2px;}
.pull-mark{position:absolute;top:-30px;left:-4px;font-family:var(--disp);font-size:92px;line-height:1;color:var(--accent);opacity:.13;pointer-events:none;}
.pull-text{position:relative;font-family:var(--disp);font-size:calc(23px*var(--fscale,1));line-height:1.56;color:var(--ink);}
.page .pull:first-child{margin-top:22px;}

blockquote.q-verse{background:var(--card);border:1px solid var(--card-bd);border-radius:12px;padding:15px 20px 17px;margin:20px 0;}
blockquote.q-verse .ref{display:block;font-family:var(--label);font-size:11px;letter-spacing:.22em;color:var(--accent);padding-bottom:11px;border-bottom:1px solid rgba(192,123,83,.22);margin-bottom:13px;}
blockquote.q-verse p{font-family:var(--body);font-size:calc(15px*var(--fscale,1));line-height:1.9;text-align:left;margin:.15em 0;}
blockquote.q-verse sup.vn{color:var(--accent);font-size:10px;font-weight:700;vertical-align:super;margin-right:3px;}
/* 편집 노트 박스 (짚어 둘 한 가지 / 겪어 보면 안다) */
blockquote.q-note{background:var(--card);border:1px solid var(--card-bd);border-radius:12px;padding:16px 22px 18px;margin:22px 0;}
blockquote.q-note .note-label{display:block;font-family:var(--label);font-size:10px;letter-spacing:.26em;color:var(--accent);padding-bottom:11px;border-bottom:1px solid rgba(192,123,83,.22);margin-bottom:13px;}
blockquote.q-note p{font-family:var(--body);font-size:calc(14.5px*var(--fscale,1));line-height:1.85;color:var(--ink);margin:.25em 0;
  text-align:justify;text-align-last:left;word-break:normal;overflow-wrap:break-word;}  /* 노트박스는 여러 줄 산문 → 본문 공식 */
blockquote.q-major{margin:18px 0;padding-left:15px;border-left:3px solid var(--accent);}
blockquote.q-major p{font-size:calc(16px*var(--fscale,1));font-weight:700;line-height:1.7;text-align:left;margin:.1em 0;}
blockquote.q-line{margin:16px 6px;} blockquote.q-line p{font-family:var(--disp);font-size:calc(17px*var(--fscale,1));line-height:1.6;text-align:left;color:var(--ink);margin:.1em 0;}
blockquote.q-ext{border-top:1px solid var(--hair);border-bottom:1px solid var(--hair);padding:14px 0;margin:20px 0;text-align:center;}
blockquote.q-ext p{font-family:var(--disp);font-size:calc(16px*var(--fscale,1));line-height:1.7;text-align:center;margin:.1em 0;}
blockquote.q-ext .src{display:block;margin-top:9px;font-family:var(--label);font-size:11px;color:var(--accent2);}
blockquote.q-ext .src::before{content:"— ";}
blockquote.q-ask{margin:18px 0;padding:2px 0;} blockquote.q-ask::before{content:"問";display:block;font-family:var(--label);font-size:13px;letter-spacing:.2em;color:var(--accent);margin-bottom:8px;}
blockquote.q-ask p{font-size:calc(15px*var(--fscale,1));line-height:1.8;color:var(--walnut);text-align:left;margin:.1em 0;}
blockquote.q-voice{margin:18px 0;text-align:center;} blockquote.q-voice p{font-family:var(--hand);font-size:calc(23px*var(--fscale,1));line-height:1.5;color:var(--accent);margin:.1em 0;}
blockquote{border:0;margin:18px 0;padding:0;}
.brk{height:14px;}
em{font-style:normal;color:var(--walnut);}
.page p em::before{content:"\201C";} .page p em::after{content:"\201D";}   /* 대화·인용 = 곡선 따옴표 " " */
strong{font-weight:700;color:var(--ink);}
ul,ol{margin:14px 0 14px 4px;padding-left:1.3em;} li{font-size:calc(15px*var(--fscale,1));line-height:1.8;margin:.25em 0;}

/* 인라인 이미지 */
figure.fig{margin:20px 0;text-align:center;break-inside:avoid;}
figure.fig img{display:block;margin:0 auto;border-radius:5px;box-shadow:0 6px 18px rgba(52,48,42,.12);width:auto;height:auto;}
/* ⚠️ max-height 는 px 로 — 부모 높이 auto 라 % 캡은 통째로 무시됨(잘림 실사고 원인). px 캡 = 그림이 페이지를 절대 초과 못 함 */
figure.fig-full img{max-width:100%;max-height:340px;}
figure.fig-sm img{max-width:58%;max-height:255px;}
/* figcaption 미사용 — 이미지 밑 글자 전역 금지(2026-07-07). 잔여 규칙은 build 게이트가 검사. */

/* ── 커버 (full-bleed, 흐름 레이아웃) ── */
.deck.bare .page.coverpage,.deck.bare .page.endpage{height:100%;}
.page.coverpage{padding:0;position:relative;background:var(--paper);}
.coverpage.has-art{background-size:cover;background-position:center;}
.cover-frame{position:absolute;inset:24px;border:1px solid rgba(192,123,83,.45);pointer-events:none;}
.cover-inner{position:absolute;left:0;right:0;top:9%;bottom:40%;display:flex;flex-direction:column;
  align-items:center;justify-content:flex-start;text-align:center;padding:0 32px;}
.cover-eyebrow{font-family:var(--label);font-size:12px;letter-spacing:.42em;color:#6E6659;font-weight:600;}
.cover-vrule{width:1px;height:36px;background:var(--accent);margin:18px auto;}
.cover-title{font-family:var(--disp);font-size:52px;line-height:1.16;color:var(--ink);margin:0;letter-spacing:.01em;font-weight:400;}
.cover-title.sm{font-size:37px;line-height:1.2;}
/* 표지 위계 (2026-07-07 재설계): 본선=세리프 잉크 / 보조선·구절=레터스페이스 라벨 + 헤어라인 */
.cover-sub{font-family:var(--body);font-size:16px;color:#3E3830;margin-top:24px;line-height:1.7;
  letter-spacing:.04em;word-break:keep-all;}
.cover-sub2{margin-top:12px;font-family:var(--label);font-size:12px;letter-spacing:.3em;color:#776F61;}
.cover-passage{margin-top:20px;display:flex;align-items:center;gap:14px;font-family:var(--label);
  font-size:13px;letter-spacing:.26em;color:#6E6659;background:none;border:0;padding:0;}
.cover-passage::before,.cover-passage::after{content:"";width:36px;height:1px;background:rgba(94,58,42,.38);}
.cover-hand{margin-top:24px;font-family:var(--hand);font-size:30px;color:#B4652F;
  text-shadow:0 1px 8px rgba(251,248,242,.95),0 0 3px rgba(251,248,242,.9);}
/* 그림 위 텍스트: 종이빛 글로우 3겹 — 배경 그림에 안 묻히게 */
.has-art .cover-eyebrow,.has-art .cover-title,.has-art .cover-sub,.has-art .cover-sub2,.has-art .cover-passage{
  text-shadow:0 1px 10px rgba(251,248,242,.98),0 0 24px rgba(251,248,242,.95),0 0 2px rgba(251,248,242,1);}
/* 강 표지 = 책 표지와 구분 (제 N 강 마커 중심, 손글씨 없음) */
.partcover .cover-eyebrow{color:#A65B2E;font-size:15px;letter-spacing:.3em;font-weight:600;}

/* 펴내며 / 목차 */
.fore-eyebrow{font-family:var(--label);font-size:11px;letter-spacing:.34em;color:var(--accent);text-align:center;margin-bottom:6px;}
.fore-title{font-family:var(--disp);font-size:27px;text-align:center;color:var(--ink);margin:0 0 24px;}
.toc-head{font-family:var(--label);font-size:11px;letter-spacing:.4em;color:var(--accent);text-align:center;}
.toc-title{font-family:var(--disp);font-size:27px;text-align:center;color:var(--ink);margin:6px 0 24px;}
a.toc-item{display:flex;align-items:baseline;gap:12px;text-decoration:none;color:inherit;padding:13px 4px;border-bottom:1px solid var(--hair);}
a.toc-item:last-child{border-bottom:0;}
a.toc-item:hover .toc-ttl{color:var(--accent);}
.toc-num{font-family:var(--disp);font-size:26px;line-height:1.1;color:var(--accent);white-space:nowrap;
  flex:0 0 auto;min-width:42px;opacity:.85;}
.toc-body2{flex:1;}
.toc-ttl{display:block;font-family:var(--disp);font-size:19px;color:var(--ink);transition:color .12s;line-height:1.4;}

/* 강 끝 */
.endcard{padding:0 8px;display:flex;flex-direction:column;justify-content:center;height:100%;text-align:center;}
.end-mark{font-family:var(--disp);font-size:42px;color:var(--accent);opacity:.5;}
.end-msg{font-family:var(--body);font-size:14px;color:var(--accent2);margin:14px 0 26px;}
.end-nav{display:flex;flex-direction:column;gap:12px;}
.end-nav a{text-decoration:none;color:inherit;border:1px solid var(--card-bd);background:var(--card);border-radius:12px;padding:15px 18px;}
.end-nav a:hover{border-color:var(--accent);}
.end-nav .dir{display:block;margin-bottom:3px;font-family:var(--label);font-size:10.5px;letter-spacing:.12em;color:var(--accent);}
.end-nav .t{display:block;font-family:var(--disp);font-size:16px;color:var(--ink);}
.end-nav a.disabled{opacity:.4;pointer-events:none;}

/* 좁은 화면: 바깥 화살표 숨김 → 탭/스와이프로 넘김 (데크는 고정크기 그대로 축소) */
@media (max-width:760px){
  .reader{gap:0;}
  .nav{display:none;}
}
/* ── 모바일 프로필(m): 축소가 아니라 재조판 — 시니어 가독 (2026-07-07 사용자 확정) ──
   캔버스 360×620 + 큰 글자. 페이지 분할은 브라우저 조판기가 이 크기로 다시 수행. */
html.prof-m .deck{width:360px;height:620px;}
html.prof-m .deck-wrap{width:calc(360px*var(--fit,1));height:calc(620px*var(--fit,1));}
html.prof-m .page{padding:14px 20px 10px;}
html.prof-m .page p{font-size:calc(18px*var(--fscale,1));line-height:1.78;}
html.prof-m .dropcap{font-size:calc(50px*var(--fscale,1));margin:5px 10px 0 0;}
html.prof-m .chap-no{font-size:42px;}
html.prof-m .chap-title{font-size:23px;line-height:1.3;}
html.prof-m .cover-title{font-size:46px;}
html.prof-m .cover-title.sm{font-size:33px;}
html.prof-m .cover-sub{font-size:16px;}
html.prof-m .cover-sub2{font-size:11.5px;}
html.prof-m .cover-hand{font-size:27px;}
html.prof-m .pull-mark{font-size:70px;top:-22px;}
html.prof-m .pull-text{font-size:calc(20.5px*var(--fscale,1));line-height:1.55;}
html.prof-m blockquote.q-verse p{font-size:calc(17px*var(--fscale,1));line-height:1.78;}
html.prof-m .deck-head{font-size:10px;padding:0 12px;}
html.prof-m .deck-foot{font-size:12px;min-height:30px;}

/* 글자 크기 조절 (2026-07-07 시니어) — 단계 고정(1/1.15/1.3/1.5), 변경 = 재조판(넘침 원천 불가) */
.font-fab{position:fixed;top:calc(10px + env(safe-area-inset-top,0px));right:calc(12px + env(safe-area-inset-right,0px));
  z-index:70;border:0;cursor:pointer;min-height:40px;min-width:40px;display:inline-flex;
  align-items:center;justify-content:center;
  background:rgba(251,248,242,.82);backdrop-filter:blur(4px);border-radius:22px;padding:0 15px;
  font-family:var(--body);font-size:17px;font-weight:700;letter-spacing:.02em;color:var(--accent2);
  box-shadow:0 2px 10px rgba(52,48,42,.14);touch-action:manipulation;}
.font-fab:hover{color:var(--accent);}
.font-fab:active{transform:scale(.96);}
.font-ov{position:fixed;inset:0;z-index:85;display:none;background:rgba(28,22,16,.34);backdrop-filter:blur(2px);}
.font-ov.open{display:flex;align-items:center;justify-content:center;}
.font-panel{width:min(300px,84vw);background:var(--paper);border:1px solid var(--hair);border-radius:18px;
  padding:22px 20px;box-shadow:0 24px 60px rgba(28,22,16,.4);display:flex;flex-direction:column;gap:9px;}
.font-panel-title{font-family:var(--label);font-size:12px;letter-spacing:.22em;color:var(--accent2);
  text-align:center;margin-bottom:6px;}
.fs-opt{display:flex;align-items:center;gap:14px;min-height:52px;padding:0 18px;border-radius:11px;
  border:1px solid var(--hair);background:var(--card);color:var(--ink);cursor:pointer;
  font-family:var(--body);font-size:15px;text-align:left;touch-action:manipulation;}
.fs-opt .fs-ex{font-family:var(--disp);color:var(--walnut);width:30px;text-align:center;}
.fs-opt.on{border-color:var(--walnut);background:rgba(94,58,42,.08);font-weight:700;}
.fs-opt:active{transform:scale(.98);}

/* 이어서 읽기 카드 (자동 책갈피 — 표지 전용. 책과 분리된 UI 레이어. 2026-07-07 재설계:
   하단 붙박이 배너 → 가운데 카드 + 이어서/처음부터 2선택. 로그인 없음: localStorage, 기기 로컬) */
#resumeScrim{position:fixed;inset:0;z-index:80;background:rgba(28,22,16,.34);backdrop-filter:blur(2.5px);
  animation:rcFade .3s ease;}
#resumeCard{position:fixed;z-index:81;left:50%;top:50%;transform:translate(-50%,-50%);
  width:min(322px,82vw);background:var(--paper);border:1px solid var(--hair);border-radius:20px;
  padding:28px 26px 22px;box-shadow:0 26px 64px rgba(28,22,16,.40);text-align:center;
  display:flex;flex-direction:column;align-items:center;animation:rcIn .34s cubic-bezier(.2,.9,.3,1);
  touch-action:manipulation;}
@keyframes rcFade{from{opacity:0}to{opacity:1}}
@keyframes rcIn{from{opacity:0;transform:translate(-50%,-45%) scale(.95)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}
#resumeCard .rc-eyebrow{font-family:var(--label);font-size:10.5px;letter-spacing:.18em;color:var(--accent2);}
#resumeCard .rc-loc{font-family:var(--disp);font-size:19px;color:var(--ink);margin-top:10px;line-height:1.4;}
#resumeCard .rc-page{font-family:var(--label);font-size:12px;letter-spacing:.08em;color:var(--accent2);margin-top:5px;}
#resume{margin-top:20px;width:100%;padding:14px 0;border-radius:14px;background:var(--accent);color:#fff;
  font-family:var(--label);font-weight:600;font-size:15px;letter-spacing:.06em;text-decoration:none;
  box-shadow:0 8px 20px rgba(192,123,83,.32);}
#resume:active{transform:scale(.98);}
#restart{margin-top:14px;font-family:var(--label);font-size:12.5px;letter-spacing:.04em;color:var(--accent2);
  text-decoration:none;}
#resumeX{position:absolute;top:9px;right:11px;width:32px;height:32px;border:0;background:transparent;
  color:var(--accent2);font-size:17px;line-height:1;border-radius:50%;cursor:pointer;touch-action:manipulation;}
#resumeX:active{background:rgba(94,58,42,.12);}
html.prof-m #resumeCard{width:min(300px,86vw);padding:24px 22px 20px;}

/* 가로로 누운 폰(높이≤480): 페이지 데크가 성립 안 함 — 세로 안내 */
#rotate-hint{display:none;}
@media (orientation:landscape) and (max-height:480px){
  #rotate-hint{display:flex;position:fixed;inset:0;z-index:90;background:rgba(28,26,23,.93);
    color:#f1eadb;align-items:center;justify-content:center;text-align:center;
    font-family:var(--label);font-size:14px;letter-spacing:.12em;line-height:2;}
}

/* 목차 위계 (2026-07-07 재설계): 강번호 숫자가 축 — 제목 크게, 부제목 한 줄, 긴 목차는 패널 스크롤 */
.toc-ov .toc-sub-t{font-size:15.5px;line-height:1.5;}
.toc-ov .toc-pg{font-size:13px;}
.toc-ov-title{font-size:26px;}
html.prof-m .toc-ov-panel{width:min(430px,94vw);max-height:88vh;padding:26px 20px 16px;}
html.prof-m .toc-ov .toc-num{font-size:28px;}
html.prof-m .toc-ov .toc-ttl{font-size:19.5px;}
html.prof-m .toc-ov .toc-sub-t{font-size:16px;}
html.prof-m .toc-ov .toc-sub-d{font-size:13px;}
/* 태블릿·PC: 패널과 활자 함께 확대 (2026-07-07 사용자: "태블릿 목차 너무 작다") */
@media (min-width:700px){
  .toc-ov-panel{width:min(600px,86vw);padding:36px 42px 28px;}
  .toc-ov-title{font-size:29px;}
  .toc-ov .toc-num{font-size:30px;min-width:50px;}
  .toc-ov .toc-ttl{font-size:22px;}
  .toc-ov .toc-sub-t{font-size:17px;}
  .toc-ov .toc-sub-d{font-size:14px;}
  .toc-ov .toc-pg{font-size:14px;}
  a.toc-sub{padding:8px 4px 8px 16px;}
}

/* 터치 기기: 목차 행·닫기 버튼 탭 타겟 확보 (44px 지향 — 2026-07-07 매트릭스 하네스) */
@media (pointer:coarse){
  .toc-ov a.toc-item{padding-top:12px !important;padding-bottom:12px !important;}
  .toc-ov-x{padding:10px 12px;top:10px;right:10px;font-size:20px;touch-action:manipulation;}
  .nav{touch-action:manipulation;}
}

/* ── 목차 오버레이 (책 페이지 아님 — 팝업) ── */
.menu{border:0;background:none;font-family:var(--label);font-size:11px;letter-spacing:.1em;color:var(--accent2);cursor:pointer;padding:0;}
.menu:hover{color:var(--accent);}
.toc-ov{position:fixed;inset:0;z-index:80;display:none;align-items:center;justify-content:center;background:rgba(52,48,42,.44);}
.toc-ov.open{display:flex;animation:tocfade .18s ease;}
@keyframes tocfade{from{opacity:0}to{opacity:1}}
.toc-ov-panel{position:relative;background:var(--paper);border-radius:14px;width:min(430px,90vw);max-height:84vh;
  overflow-y:auto;padding:30px 30px 22px;box-shadow:0 30px 80px rgba(52,48,42,.45);animation:tocpop .2s cubic-bezier(.2,.9,.3,1);}
@keyframes tocpop{from{transform:translateY(14px);opacity:.5}to{transform:none;opacity:1}}
.toc-ov-eyebrow{font-family:var(--label);font-size:10.5px;letter-spacing:.4em;color:var(--accent);text-align:center;}
.toc-ov-title{font-family:var(--disp);font-size:24px;text-align:center;color:var(--ink);margin:5px 0 18px;}
.toc-ov-x{position:absolute;top:20px;right:22px;border:0;background:none;font-size:18px;color:var(--accent2);cursor:pointer;line-height:1;}
.toc-ov-x:hover{color:var(--accent);}
.toc-ov-list a.toc-item.current .toc-ttl{color:var(--accent);}
.toc-item{border-bottom:0 !important;padding-bottom:6px !important;}
.toc-subs{margin:0 0 14px 10px;border-left:1px solid var(--hair);}
a.toc-sub{display:flex;align-items:baseline;gap:9px;text-decoration:none;color:inherit;padding:7px 4px 7px 14px;}
.toc-sub-body{flex:1;min-width:0;}
.toc-sub-t{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.toc-sub-d{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
  font-size:12.5px;color:var(--accent2);line-height:1.5;margin-top:2px;word-break:keep-all;}
a.toc-sub:hover .toc-sub-t{color:var(--accent);}
.toc-sub-ord{font-family:var(--label);font-size:9px;letter-spacing:.08em;color:var(--accent2);white-space:nowrap;flex:0 0 auto;min-width:42px;}
.toc-sub-t{flex:1;font-family:var(--body);font-size:12.5px;color:var(--ink);line-height:1.4;}
.toc-pg{font-family:var(--label);font-size:11px;color:var(--accent);flex:0 0 auto;min-width:14px;text-align:right;}

/* ── 여는 성경 (에피그래프, 세로 가운데) ── */
.page.solopage{display:flex;flex-direction:column;justify-content:center;}
.epigraph{text-align:center;padding:0 6px;}
.epi-verse{font-family:var(--body);font-size:calc(18px*var(--fscale,1));line-height:2.05;color:var(--ink);}
.epi-verse sup.vn{color:var(--accent);font-size:11px;font-weight:700;vertical-align:super;margin-right:4px;}
.epi-verse p{margin:.25em 0;text-align:center;}
.epi-ref{font-family:var(--body);font-size:14.5px;letter-spacing:.1em;color:var(--accent);margin-top:24px;}
/* 말씀 박힌 성구 이미지 (페이드 → 크림 배경에 자연스럽게 블렌딩) */
figure.scripture{margin:0;text-align:center;}
figure.scripture img{display:block;width:100%;height:auto;max-height:640px;object-fit:contain;margin:0 auto;}  /* % 캡 금지 — 부모 auto 에서 오작동(860px 실측 사고) */
