.ncp-fb{--ncp-fb-paper:#fbf8f1;--ncp-fb-ink:#2a2723;--ncp-fb-muted:#8a8172;--ncp-fb-accent:#6b4f2a;--ncp-fb-cover:#3b2f22;--ncp-fb-cover-ink:#f3e9d6;--ncp-fb-bg:#efe9de;--ncp-fb-font:16px;position:relative;margin:24px 0;clear:both;box-sizing:border-box;font-family:inherit}
.ncp-fb *,.ncp-fb *::before,.ncp-fb *::after{box-sizing:border-box}
.ncp-fb--wide{width:min(1240px,calc(100vw - 32px));left:50%;transform:translateX(-50%)}
.ncp-fb-bar{display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding:8px 10px;background:#fff;border:1px solid #e3dccf;border-radius:10px 10px 0 0}
.ncp-fb-bar button,.ncp-fb-bar a.ncp-fb-shelfbtn,.ncp-fb-bar a.ncp-fb-retbtn,.ncp-fb-nav button,.ncp-fb-search button{white-space:nowrap;appearance:none;border:1px solid #d9d0c0;background:#fff;color:#4a4237;border-radius:7px;padding:6px 10px;font-size:14px;line-height:1.2;cursor:pointer;min-height:34px;font-family:inherit}
.ncp-fb-bar button:hover,.ncp-fb-bar a.ncp-fb-shelfbtn:hover,.ncp-fb-nav button:hover,.ncp-fb-search button:hover{background:#f6f1e7}
.ncp-fb-bar button:disabled,.ncp-fb-nav button:disabled{opacity:.4;cursor:default}
.ncp-fb-bar .ncp-fb-title{flex:1 1 160px;min-width:0;font-weight:700;color:#3a3229;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:15px}
.ncp-fb-bar a.ncp-fb-shelfbtn{display:inline-flex;align-items:center;box-sizing:border-box;text-decoration:none!important;box-shadow:none}
.ncp-fb-bar a.ncp-fb-shelfbtn:focus-visible{outline:2px solid var(--ncp-fb-accent);outline-offset:1px}
.ncp-shelf-anchor{display:block;height:0;scroll-margin-top:90px}
.ncp-fb-search{display:none;gap:6px;align-items:center;padding:8px 10px;background:#fff;border:1px solid #e3dccf;border-top:0}
.ncp-fb.show-search .ncp-fb-search{display:flex}
.ncp-fb-q{flex:1;min-width:0;border:1px solid #d9d0c0;border-radius:7px;padding:7px 10px;font-size:15px;font-family:inherit}
.ncp-fb-qstat{font-size:13px;color:var(--ncp-fb-muted);white-space:nowrap}
.ncp-fb-toc{display:none;background:#fff;border:1px solid #e3dccf;border-top:0;padding:10px 18px;max-height:50vh;overflow:auto}
.ncp-fb-toc ol{margin:0;padding-left:0;list-style:none}
.ncp-fb-toc li{margin:4px 0}
.ncp-fb-toc li.lv1,.ncp-fb-toc li.lv2{font-weight:600}.ncp-fb-toc li.lv3{margin-left:16px;font-size:.93em}.ncp-fb-toc li.lv3::before{content:'· ';color:#a39886}
.ncp-fb-toc a{color:#3d3428;text-decoration:none}
.ncp-fb-toc a:hover{text-decoration:underline}
.ncp-fb-toc-h{font-weight:700;margin:0 0 6px;color:#3a3229}
.ncp-fb.show-toc .ncp-fb-toc,.ncp-fb:not(.is-js) .ncp-fb-toc,.ncp-fb.is-text .ncp-fb-toc{display:block}
.ncp-fb-stagewrap{position:relative;display:flex;justify-content:center;align-items:center;padding:18px 0;background:var(--ncp-fb-bg);border-left:1px solid #e3dccf;border-right:1px solid #e3dccf;min-height:200px;overflow:hidden}
.ncp-fb-stage{position:relative;margin:0 auto}
.ncp-fb-loading{color:var(--ncp-fb-muted);font-size:15px;padding:60px 0}
.ncp-fb-nav{display:flex;align-items:center;gap:8px;padding:8px 10px;background:#fff;border:1px solid #e3dccf;border-top:0;border-radius:0 0 10px 10px}
.ncp-fb-range{flex:1;min-width:60px;accent-color:var(--ncp-fb-accent)}
.ncp-fb-ind{font-size:14px;color:#4a4237;white-space:nowrap;min-width:84px;text-align:center;font-variant-numeric:tabular-nums}
.ncp-fb:not(.is-js) .ncp-fb-bar,.ncp-fb:not(.is-js) .ncp-fb-stagewrap,.ncp-fb:not(.is-js) .ncp-fb-nav,.ncp-fb:not(.is-js) .ncp-fb-search{display:none}
.ncp-fb.is-js .ncp-fb-source{display:none}
.ncp-fb.is-js.is-text .ncp-fb-source{display:block}
.ncp-fb.is-text .ncp-fb-stagewrap,.ncp-fb.is-text .ncp-fb-nav,.ncp-fb.is-text .ncp-fb-only-book{display:none}
.ncp-fb.is-fail .ncp-fb-bar{display:none}
.ncp-fb.is-text .ncp-fb-source{background:#fff;border:1px solid #e3dccf;border-top:0;border-radius:0 0 10px 10px;padding:22px clamp(16px,4vw,40px);font-size:calc(1.05em * var(--ncp-fb-text-scale,1));line-height:1.85;word-break:keep-all;overflow-wrap:anywhere}
.ncp-fb:not(.is-js) .ncp-fb-source{line-height:1.85;word-break:keep-all}
.ncp-fb-source .ncp-fb-break{display:none}
/* 페이지 */
.ncp-fb-page{background:var(--ncp-fb-paper);color:var(--ncp-fb-ink);overflow:hidden}
.ncp-fb-page.is-left{box-shadow:inset -14px 0 18px -16px rgba(60,40,10,.35)}
.ncp-fb-page.is-right{box-shadow:inset 14px 0 18px -16px rgba(60,40,10,.35)}
.ncp-fb-pg{display:flex;flex-direction:column;width:100%;height:100%;padding:calc(var(--ncp-fb-base,var(--ncp-fb-font))*1.6) calc(var(--ncp-fb-base,var(--ncp-fb-font))*1.7) calc(var(--ncp-fb-base,var(--ncp-fb-font))*1.1)}
.ncp-fb-run{flex:0 0 auto;height:1.6em;font-size:calc(var(--ncp-fb-base,var(--ncp-fb-font))*.72);color:var(--ncp-fb-muted);text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border-bottom:1px solid rgba(120,100,70,.15);margin-bottom:.9em;line-height:1.6}
.ncp-fb-body{flex:1 1 auto;min-height:0;overflow:hidden;font-size:var(--ncp-fb-font);line-height:1.8;word-break:normal;overflow-wrap:anywhere;line-break:strict;text-align:justify;text-justify:inter-character}
.ncp-fb-body h1,.ncp-fb-body h2,.ncp-fb-body h3,.ncp-fb-body h4,.ncp-fb-body .ncp-c,.ncp-fb-body .ncp-r,.ncp-fb-body .ncp-boxp,.ncp-fb-body .ncp-fb-big,.ncp-fb-body figcaption,.ncp-fb-body td{word-break:keep-all;text-align-last:auto}
.ncp-fb-body h1,.ncp-fb-body h2,.ncp-fb-body h3,.ncp-fb-body h4{text-align:left}
.ncp-fb-run:empty{border-bottom-color:transparent}
.ncp-fb-num{flex:0 0 auto;height:1.8em;padding-top:.5em;font-size:calc(var(--ncp-fb-base,var(--ncp-fb-font))*.75);color:var(--ncp-fb-muted);text-align:center;line-height:1.3}
.ncp-fb-body>*:first-child{margin-top:0!important}
.ncp-fb-body p{margin:0 0 .75em;padding:0}
.ncp-fb-body h1,.ncp-fb-body h2,.ncp-fb-body h3,.ncp-fb-body h4,.ncp-fb-body h5,.ncp-fb-body h6{color:#2f271d;line-height:1.4;margin:1.1em 0 .6em;padding:0;text-align:left;font-weight:700;border:0;background:none}
.ncp-fb-body h1{font-size:1.5em}.ncp-fb-body h2{font-size:1.32em;margin-top:.4em;padding-bottom:.35em;border-bottom:2px solid rgba(107,79,42,.25)}.ncp-fb-body h3{font-size:1.14em}.ncp-fb-body h4,.ncp-fb-body h5,.ncp-fb-body h6{font-size:1.02em}
.ncp-fb-body blockquote{margin:0 0 .8em;padding:.5em .9em;border-left:3px solid rgba(107,79,42,.45);background:rgba(107,79,42,.06);font-style:normal;font-size:.97em;color:inherit;quotes:none}
.ncp-fb-body blockquote::before,.ncp-fb-body blockquote::after{content:none!important;display:none!important}
.ncp-fb-body blockquote p:last-child{margin-bottom:0}
.ncp-fb-body ul,.ncp-fb-body ol{margin:0 0 .8em;padding-left:1.4em}
.ncp-fb-body li{margin:0 0 .25em}
.ncp-fb-body li.ncp-fb-cont{list-style:none}
.ncp-fb-body img{max-width:100%;height:auto;display:block;margin:0 auto .8em}
.ncp-fb-body figure{margin:0 0 .8em}
.ncp-fb-body figcaption{font-size:.85em;color:var(--ncp-fb-muted);text-align:center}
.ncp-fb-body table{width:100%;border-collapse:collapse;font-size:.88em;margin:0 0 .8em}
.ncp-fb-body td,.ncp-fb-body th{border:1px solid rgba(120,100,70,.3);padding:.3em .45em}
.ncp-fb-body a{color:var(--ncp-fb-accent)}
.ncp-fb-body hr{border:0;border-top:1px solid rgba(120,100,70,.3);margin:1em 0}
.ncp-fb-body .ncp-fb-cut{margin-bottom:0!important;padding-bottom:0!important}
.ncp-fb-body p.ncp-fb-cut.ncp-fb-fill,.ncp-fb-body li.ncp-fb-cut.ncp-fb-fill{text-align-last:justify}
.ncp-fb-body .ncp-fb-cont{margin-top:0!important;text-indent:0!important}
.ncp-fb-body blockquote.ncp-fb-cut{border-bottom:0}
.ncp-fb-body .ncp-fb-fit,.ncp-fb-body .ncp-fb-fit img{max-height:100%;object-fit:contain}
.ncp-fb-body .ncp-fb-fit{overflow:hidden}
.ncp-fb-body iframe{max-width:100%}
.ncp-fb-page.is-blank .ncp-fb-run,.ncp-fb-page.is-blank .ncp-fb-num{visibility:hidden}
/* 표지 */
.ncp-fb-page.ncp-fb-cover{background:var(--ncp-fb-cover);color:var(--ncp-fb-cover-ink)}
.ncp-fb-cover .ncp-fb-run,.ncp-fb-cover .ncp-fb-num{display:none}
.ncp-fb-cover .ncp-fb-pg{padding:0}
.ncp-fb-cover .ncp-fb-body{position:relative;display:flex;align-items:center;justify-content:center;text-align:center;height:100%}
.ncp-fb-cover-img{position:absolute;inset:0;width:100%!important;height:100%!important;max-width:none!important;object-fit:cover;margin:0!important}
.ncp-fb-cover-txt{position:relative;padding:2em 1.6em;border:1px solid rgba(243,233,214,.35);border-color:color-mix(in srgb,currentColor 38%,transparent);margin:9%;width:82%;min-height:60%;display:flex;flex-direction:column;justify-content:center;gap:.9em}
.ncp-fb-cover-txt.has-img{display:none}
.ncp-fb-cover-title{font-size:1.75em;font-weight:700;line-height:1.35;letter-spacing:.02em;word-break:keep-all}
.ncp-fb-cover-sub{font-size:1em;opacity:.85;word-break:keep-all}
.ncp-fb-cover-author{font-size:.9em;opacity:.75;margin-top:1.4em}
.ncp-fb-back .ncp-fb-cover-txt{border:0;min-height:0}
.ncp-fb-back-title{font-size:1.05em;opacity:.8}
/* 측정용 */
.ncp-fb-measure{position:absolute;left:0;top:0;visibility:hidden;pointer-events:none;z-index:-1;contain:layout style}
/* 기본 뷰어 */
.ncp-fb-simple .ncp-fb-page{box-shadow:0 2px 10px rgba(0,0,0,.15)}
/* 전체 화면 */
.ncp-fb:fullscreen{margin:0;background:var(--ncp-fb-bg);display:flex;flex-direction:column;overflow:auto}
.ncp-fb:fullscreen .ncp-fb-stagewrap{flex:1;border:0}
.ncp-fb:fullscreen .ncp-fb-bar,.ncp-fb:fullscreen .ncp-fb-nav{border-radius:0}
.ncp-fb.is-max{position:fixed!important;inset:0;z-index:999999;margin:0;width:auto;left:0;transform:none;background:var(--ncp-fb-bg);display:flex;flex-direction:column;overflow:auto}
.ncp-fb.is-max .ncp-fb-stagewrap{flex:1}
html.ncp-fb-lock,html.ncp-fb-lock body{overflow:hidden!important}
::highlight(ncp-fb-hit){background-color:#ffe169;color:#000}
@media (max-width:600px){
  .ncp-fb-bar{gap:4px;padding:6px}
  .ncp-fb-bar button,.ncp-fb-bar a.ncp-fb-shelfbtn,.ncp-fb-bar a.ncp-fb-retbtn{padding:5px 8px;font-size:13px;min-height:32px}
  .ncp-fb-bar .ncp-fb-title{flex-basis:100%;order:-1;font-size:14px}
  .ncp-fb-stagewrap{padding:8px 0}
  .ncp-fb-nav{gap:5px;padding:6px}
  .ncp-fb-ind{min-width:64px;font-size:13px}
  .ncp-fb-first{display:none}
  .ncp-fb-nav button{padding:5px 9px}
}
@media print{
  .ncp-fb-bar,.ncp-fb-stagewrap,.ncp-fb-nav,.ncp-fb-search,.ncp-fb-toc{display:none!important}
  .ncp-fb .ncp-fb-source{display:block!important}
}

/* 가져오기(HWP·PDF)로 만든 본문 요소 */
.ncp-fb .ncp-fb-big{font-size:1.75em;font-weight:700;text-align:center;line-height:1.45;margin:.15em 0 .35em;word-break:keep-all}
.ncp-fb .ncp-fb-body .ncp-fb-big:first-child{padding-top:28%}
.ncp-fb .ncp-c{text-align:center}
.ncp-fb .ncp-r{text-align:right}
.ncp-fb .ncp-box{border:1px solid rgba(120,100,70,.45);border-radius:4px;padding:.6em .9em;margin:0 0 .9em;background:rgba(255,255,255,.4)}
.ncp-fb .ncp-box p{margin:0 0 .3em}
.ncp-fb .ncp-box.ncp-fb-cut{border-bottom-style:dashed;border-bottom-left-radius:0;border-bottom-right-radius:0}
.ncp-fb .ncp-box.ncp-fb-cont{border-top-style:dashed;border-top-left-radius:0;border-top-right-radius:0}
.ncp-fb .ncp-boxp{text-align:center;font-weight:600}
.ncp-fb .ncp-fn{font-size:.85em;color:var(--ncp-fb-muted)}
.ncp-fb .ncp-vs{margin:0 0 .4em}
.ncp-fb .ncp-v{font-size:.72em;font-weight:700;color:var(--ncp-fb-accent);vertical-align:.18em;margin-right:.2em;font-variant-numeric:tabular-nums}
.ncp-fb .ncp-fb-fig{margin:0 0 .9em;text-align:center}
.ncp-fb .ncp-fb-fig img{display:block;margin:0 auto;max-width:100%;height:auto}
.ncp-fb .ncp-tbl{width:100%;border-collapse:collapse;margin:0 0 .9em;font-size:.9em}
.ncp-fb .ncp-tbl td,.ncp-fb .ncp-tbl th{border:1px solid rgba(120,100,70,.4);padding:.35em .5em;vertical-align:top}
.ncp-fb .ncp-tbl td p{margin:0 0 .25em}

/* V1.2: 책 양옆 화살표, 목차 쪽 번호, 쪽 번호 모양 */
.ncp-fb-arrow{position:absolute;top:50%;transform:translateY(-50%);z-index:20;width:42px;height:66px;border:0;border-radius:7px;background:rgba(58,46,32,.55);color:#fff;font-size:30px;line-height:1;cursor:pointer;opacity:.75;transition:opacity .2s,background .2s;padding:0;font-family:inherit}
.ncp-fb-arrow:hover:not(:disabled){opacity:1;background:rgba(58,46,32,.85)}
.ncp-fb-arrow:disabled{opacity:.15;cursor:default}
.ncp-fb-aprev{left:6px}.ncp-fb-anext{right:6px}
.ncp-fb.no-arrows .ncp-fb-arrow{display:none}
@media (max-width:700px),(hover:none){.ncp-fb-arrow{display:none}}
.ncp-fb-toc li{display:flex;align-items:baseline;gap:8px}
.ncp-fb-toc li a{flex:0 1 auto}
.ncp-fb-toc li::after{content:'';flex:1 1 auto;order:1;border-bottom:1px dotted #cbbfa9;min-width:12px}
.ncp-fb-toc .ncp-fb-tocpg{order:2;flex:0 0 auto;color:var(--ncp-fb-muted);font-size:.9em;font-variant-numeric:tabular-nums}
.ncp-fb-toc .ncp-fb-tocpg:empty{display:none}
.ncp-fb-toc li.lv3::before{order:-1}
.ncp-fb-num::before{content:'- '}.ncp-fb-num::after{content:' -'}
.ncp-fb-num:empty::before,.ncp-fb-num:empty::after{content:none}

/* ===== 책장 ===== */
.ncp-shelf{--ncp-shelf-per:4;margin:30px auto;max-width:1100px;padding:0 4px}
.ncp-shelf *{box-sizing:border-box}
.ncp-shelf-book{position:relative;display:block;text-decoration:none!important;color:inherit;outline-offset:4px}
.ncp-shelf-cover{position:relative;display:block;aspect-ratio:1/1.414;overflow:hidden;border-radius:2px 5px 5px 2px;background:#3b2f22;box-shadow:inset 7px 0 9px -6px rgba(0,0,0,.45),3px 3px 10px rgba(0,0,0,.22);transition:transform .25s ease,box-shadow .25s ease}
.ncp-shelf-cover::after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.18) 0,rgba(255,255,255,.12) 3%,rgba(0,0,0,0) 7%);pointer-events:none}
.ncp-shelf-cover img{position:absolute;inset:0;width:100%!important;height:100%!important;max-width:none!important;object-fit:cover;display:block;margin:0!important}
.ncp-shelf-book:hover .ncp-shelf-cover,.ncp-shelf-book:focus-visible .ncp-shelf-cover{transform:translateY(-8px);box-shadow:inset 7px 0 9px -6px rgba(0,0,0,.45),4px 12px 18px rgba(0,0,0,.28)}
.ncp-shelf-cover.is-gen{background:var(--ncp-shelf-c,#3b2f22);color:var(--ncp-shelf-ink,#f6eedf);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:14% 12%;text-align:center}
.ncp-shelf-gt{font-weight:700;font-size:clamp(14px,1.6vw,19px);line-height:1.45;word-break:keep-all;border-top:1px solid rgba(246,238,223,.45);border-bottom:1px solid rgba(246,238,223,.45);border-color:color-mix(in srgb,currentColor 45%,transparent);padding:10px 0}
.ncp-shelf-ga{font-size:12px;opacity:.8}
.ncp-shelf-cap{display:block;font-size:14px;font-weight:600;line-height:1.4;word-break:keep-all;text-align:center}
.ncp-shelf-cap small{display:block;font-weight:400;font-size:12px;opacity:.8;margin-top:2px}
.ncp-shelf--t-none .ncp-shelf-cap{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.ncp-shelf--t-hover .ncp-shelf-cap{position:absolute;left:6%;right:6%;bottom:10px;z-index:3;background:rgba(30,24,16,.86);color:#fff;padding:7px 8px;border-radius:5px;opacity:0;transform:translateY(4px);transition:opacity .2s,transform .2s;pointer-events:none}
.ncp-shelf--t-hover .ncp-shelf-book:hover .ncp-shelf-cap,.ncp-shelf--t-hover .ncp-shelf-book:focus-visible .ncp-shelf-cap{opacity:1;transform:translateY(-8px)}
.ncp-shelf--t-below .ncp-shelf-cap{margin-top:8px}
/* 선반 공통 (자바스크립트로 선반 줄을 만듦) */
.ncp-shelf--shelf .ncp-shelf-books{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:34px 22px}
.ncp-shelf--shelf.is-rows .ncp-shelf-books{display:block}
.ncp-shelf-row{position:relative;margin:0 0 70px;padding:0}
.ncp-shelf-rowbooks{position:relative;z-index:2;display:flex;justify-content:center;align-items:flex-end;gap:2.4%;padding:0 clamp(16px,8%,110px)}
.ncp-shelf--shelf .ncp-shelf-book{flex:0 0 auto;width:calc((100% - (var(--ncp-shelf-per) - 1) * 2.4%) / var(--ncp-shelf-per));max-width:190px}
.ncp-shelf--t-below.is-rows .ncp-shelf-cap{display:none}
.ncp-shelf-plank{position:relative;z-index:1}
.ncp-shelf-row::before,.ncp-shelf-row::after{content:'';position:absolute;top:100%;z-index:0}

/* 나무 */
.ncp-shelf--wood .ncp-shelf-plank{height:32px;margin-top:-10px}
.ncp-shelf--wood .ncp-shelf-plank::before{content:'';position:absolute;left:0;right:0;top:0;height:16px;clip-path:polygon(3.5% 0,96.5% 0,100% 100%,0 100%);
  background:repeating-linear-gradient(90deg,rgba(120,60,20,.10) 0 2px,rgba(255,255,255,0) 2px 9px,rgba(120,60,20,.06) 9px 10px,rgba(255,255,255,0) 10px 23px),linear-gradient(180deg,#e7b27a,#d39a5f)}
.ncp-shelf--wood .ncp-shelf-plank::after{content:'';position:absolute;left:0;right:0;top:16px;height:16px;border-radius:0 0 2px 2px;
  background:repeating-linear-gradient(90deg,rgba(90,40,10,.12) 0 1px,rgba(255,255,255,0) 1px 13px),linear-gradient(180deg,#d38d50,#b8703a 60%,#a35f2d);box-shadow:0 14px 16px -8px rgba(0,0,0,.35)}
.ncp-shelf--wood .ncp-shelf-row::before,.ncp-shelf--wood .ncp-shelf-row::after{width:40px;height:58px;background:linear-gradient(180deg,#b8703a,#8a4f24);filter:drop-shadow(6px 6px 6px rgba(0,0,0,.2))}
.ncp-shelf--wood .ncp-shelf-row::before{left:9%;clip-path:polygon(0 0,100% 0,100% 18%,34% 100%,0 100%)}
.ncp-shelf--wood .ncp-shelf-row::after{right:9%;clip-path:polygon(0 0,100% 0,100% 100%,66% 100%,0 18%)}

/* 유리 */
.ncp-shelf--glass .ncp-shelf-plank{height:24px;margin-top:-9px}
.ncp-shelf--glass .ncp-shelf-plank::before{content:'';position:absolute;left:0;right:0;top:0;height:13px;clip-path:polygon(2.5% 0,97.5% 0,100% 100%,0 100%);
  background:linear-gradient(180deg,rgba(214,238,240,.55),rgba(186,224,226,.7));-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}
.ncp-shelf--glass .ncp-shelf-plank::after{content:'';position:absolute;left:0;right:0;top:13px;height:11px;border-radius:1px;
  background:linear-gradient(180deg,rgba(255,255,255,.95) 0,rgba(176,222,214,.95) 14%,rgba(118,182,172,.92) 55%,rgba(150,206,198,.95) 85%,rgba(255,255,255,.7) 100%);
  box-shadow:0 1px 0 rgba(255,255,255,.6) inset,0 16px 22px -12px rgba(20,70,70,.28),0 3px 6px -2px rgba(20,70,70,.18)}
.ncp-shelf--glass .ncp-shelf-row .ncp-shelf-plank{background:none}
.ncp-shelf--glass .ncp-shelf-rowbooks::after{content:'';position:absolute;left:0;right:0;bottom:-9px;height:13px;pointer-events:none;
  background:linear-gradient(90deg,rgba(255,255,255,0) 3%,rgba(255,255,255,.55) 20%,rgba(255,255,255,0) 40%,rgba(255,255,255,.35) 70%,rgba(255,255,255,0) 90%);clip-path:polygon(2.5% 0,97.5% 0,100% 100%,0 100%);z-index:3;mix-blend-mode:screen}
.ncp-shelf--glass .ncp-shelf-cover{-webkit-box-reflect:below 0 linear-gradient(to bottom,rgba(0,0,0,0) 95.5%,rgba(0,0,0,.3))}
.ncp-shelf--glass .ncp-shelf-book:hover .ncp-shelf-cover{-webkit-box-reflect:none}
.ncp-shelf--glass .ncp-shelf-row::before,.ncp-shelf--glass .ncp-shelf-row::after{top:calc(100% - 6px);width:30px;height:30px;border-radius:2px;
  background:linear-gradient(90deg,#8d979e 0,#eef2f5 35%,#c4ccd2 60%,#7f8a91 100%);box-shadow:0 6px 10px -4px rgba(0,0,0,.3)}
.ncp-shelf--glass .ncp-shelf-row::before{left:11%;clip-path:polygon(0 0,100% 0,100% 40%,45% 100%,0 100%)}
.ncp-shelf--glass .ncp-shelf-row::after{right:11%;clip-path:polygon(0 0,100% 0,100% 100%,55% 100%,0 40%)}

/* 격자 */
.ncp-shelf--grid .ncp-shelf-books{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:26px 22px}
@media (max-width:640px){
  .ncp-shelf-rowbooks{gap:5%;padding:0 8%}
  .ncp-shelf--shelf .ncp-shelf-book{width:calc((100% - (var(--ncp-shelf-per) - 1) * 5%) / var(--ncp-shelf-per))}
  .ncp-shelf-row{margin-bottom:56px}
  .ncp-shelf--wood .ncp-shelf-row::before,.ncp-shelf--wood .ncp-shelf-row::after{width:28px;height:42px}
  .ncp-shelf--wood .ncp-shelf-plank{height:26px}.ncp-shelf--wood .ncp-shelf-plank::before{height:12px}.ncp-shelf--wood .ncp-shelf-plank::after{top:12px;height:14px}
  .ncp-shelf--glass .ncp-shelf-row::before,.ncp-shelf--glass .ncp-shelf-row::after{width:22px;height:22px}
}
@media (hover:none){.ncp-shelf--t-hover .ncp-shelf-cap{display:none}}

/* ===== 모든 책 내용 검색 ===== */
.ncp-bs{max-width:900px;margin:10px auto 34px;padding:0 4px;font-size:15px}
.ncp-bs-form{display:flex;gap:8px;max-width:620px;margin:0 auto}
.ncp-bs-q{flex:1;min-width:0;height:48px;padding:0 18px;border:1px solid #cfd8dc;border-radius:24px;font-size:16px;font-family:inherit;background:#fff;box-shadow:0 2px 8px rgba(0,0,0,.06)}
.ncp-bs-q:focus{outline:none;border-color:#6aa9a3;box-shadow:0 0 0 3px rgba(106,169,163,.2)}
.ncp-bs-go{height:48px;padding:0 24px;border:0;border-radius:24px;background:#3d7f7a;color:#fff;font-size:16px;font-weight:600;cursor:pointer;font-family:inherit;white-space:nowrap}
.ncp-bs-go:hover{background:#336b67}
.ncp-bs-res:empty{display:none}
.ncp-bs-res{margin-top:18px;background:#fff;border:1px solid #e3e8ea;border-radius:12px;padding:6px 18px 12px;box-shadow:0 4px 18px rgba(0,0,0,.05)}
.ncp-bs-msg{margin:12px 0;color:#555}.ncp-bs-msg.is-err{color:#b32d2e}
.ncp-bs-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:10px 0;border-bottom:1px solid #eef1f2}
.ncp-bs-head b{color:#3d7f7a}
.ncp-bs-x{margin-left:auto;border:1px solid #d5dcdf;background:#fff;border-radius:14px;padding:3px 12px;cursor:pointer;font-size:13px;font-family:inherit}
.ncp-bs-book{display:flex;gap:14px;padding:14px 0;border-bottom:1px solid #f0f2f3}
.ncp-bs-book:last-child{border-bottom:0}
.ncp-bs-cover{flex:0 0 58px;height:82px;border-radius:2px 4px 4px 2px;overflow:hidden;background:#3b2f22;box-shadow:2px 2px 6px rgba(0,0,0,.18);display:flex;align-items:center;justify-content:center;color:#fff;font-size:10px;text-align:center;text-decoration:none!important;padding:0}
.ncp-bs-cover img{width:100%;height:100%;object-fit:cover;display:block;margin:0!important}
.ncp-bs-body{flex:1;min-width:0}
.ncp-bs-title{font-weight:700;font-size:16px;margin-bottom:6px}
.ncp-bs-title a{color:inherit;text-decoration:none}.ncp-bs-title a:hover{text-decoration:underline}
.ncp-bs-cnt{display:inline-block;margin-left:6px;font-size:12px;font-weight:600;color:#fff;background:#3d7f7a;border-radius:10px;padding:1px 8px;vertical-align:2px}
.ncp-bs-hits{list-style:none;margin:0;padding:0}
.ncp-bs-hits li{margin:0}
.ncp-bs-hits li.is-more{display:none}
.ncp-bs-hits a{display:block;padding:6px 8px;border-radius:6px;color:inherit;text-decoration:none!important;line-height:1.6;word-break:keep-all}
.ncp-bs-hits a:hover{background:#f3f8f7}
.ncp-bs-where{display:block;font-size:12px;color:#6b7c80;margin-bottom:1px}
.ncp-bs-snip{font-size:14px;color:#333}
.ncp-bs-snip mark{background:#ffe169;color:#000;padding:0 1px;border-radius:2px}
.ncp-bs-more{border:0;background:none;color:#3d7f7a;cursor:pointer;padding:4px 8px;font-size:13px;font-family:inherit}
.ncp-bs-cont{display:inline-block;font-size:13px;color:#3d7f7a;padding:2px 8px}
.ncp-shelf-book.is-miss{opacity:.28;filter:grayscale(.7);transition:opacity .3s}
.ncp-shelf-book .ncp-shelf-badge{position:absolute;top:-8px;right:-8px;z-index:4;background:#e8573f;color:#fff;font-size:12px;font-weight:700;border-radius:12px;padding:2px 8px;box-shadow:0 2px 6px rgba(0,0,0,.25);pointer-events:none}
@media (max-width:600px){.ncp-bs-q,.ncp-bs-go{height:44px}.ncp-bs-go{padding:0 16px}.ncp-bs-res{padding:4px 12px 10px}.ncp-bs-cover{flex-basis:46px;height:66px}}

/* 쪽 바뀜: 넘김 움직임 없이 부드럽게 나타남 */
.ncp-fb-simple{box-shadow:0 6px 22px rgba(60,45,25,.18)}
.ncp-fb-simple .ncp-fb-page{box-shadow:none}
.ncp-fb-simple .ncp-fb-page.is-left{box-shadow:inset -18px 0 22px -18px rgba(60,40,10,.30)}
.ncp-fb-simple .ncp-fb-page.is-right{box-shadow:inset 18px 0 22px -18px rgba(60,40,10,.30)}
.ncp-fb-page.ncp-fb-in{animation:ncpFbIn .32s ease}
@keyframes ncpFbIn{from{opacity:0}to{opacity:1}}
@media (prefers-reduced-motion:reduce){.ncp-fb-page.ncp-fb-in{animation:none}}

.ncp-fb-body .ncp-fb-fig.ncp-fb-fit{margin:0!important;height:100%;display:flex;align-items:center;justify-content:center}
.ncp-fb-body .ncp-fb-fig.ncp-fb-fit img{max-height:100%;width:auto;margin:0 auto!important}

/* 책이 준비되면 무대가 부드럽게 나타남 */
.ncp-fb.is-ready .ncp-fb-stage{animation:ncpFbStageIn .4s ease}
@keyframes ncpFbStageIn{from{opacity:0}to{opacity:1}}
@media (prefers-reduced-motion:reduce){.ncp-fb.is-ready .ncp-fb-stage{animation:none}}

/* 아래 선반: 스크롤해서 다가가면 차례로 나타남 */
.ncp-shelf-row{transition:opacity .35s ease,transform .35s ease}
.ncp-shelf-row.ncp-row-wait{opacity:0;transform:translateY(14px)}
@media (prefers-reduced-motion:reduce){.ncp-shelf-row{transition:none}.ncp-shelf-row.ncp-row-wait{transform:none}}
.ncp-js .ncp-shelf-cover img{opacity:0;transition:opacity .35s ease;animation:ncpReveal .3s ease 3s forwards}
.ncp-js .ncp-shelf-cover img.is-loaded{opacity:1;animation:none}
.ncp-shelf-cover:not(.is-gen){background:#ddd4c4}
@keyframes ncpReveal{to{opacity:1}}

/* 글자 크기를 바꿀 때는 무대가 사라졌다 나타나지 않게 */
.ncp-fb.is-ready .ncp-fb-stage.ncp-fb-stage--again{animation:none}
.ncp-fb-bar button.is-end{opacity:.4}
/* 잠깐 나타나는 안내 */
.ncp-fb-toast{position:absolute;left:50%;bottom:66px;z-index:30;transform:translate(-50%,6px);box-sizing:border-box;width:max-content;max-width:calc(100% - 24px);background:rgba(42,36,30,.9);color:#fff;padding:8px 16px;border-radius:18px;font-size:14px;line-height:1.45;text-align:center;word-break:keep-all;white-space:pre-line;opacity:0;pointer-events:none;transition:opacity .2s ease,transform .2s ease}
.ncp-fb-toast.is-on{opacity:1;transform:translate(-50%,0)}

/* ---------- 테마 글자 크기 덮어쓰기 막기 ----------
 * 테마가 p·li·h2 등에 글자 크기를 직접 정해 두면(예: .entry-content p{font-size:17px})
 * 책 안의 글이 그 크기로 고정되어 가−·가+ 가 듣지 않음 → 책 안에서는 책의 글자 크기를 따르게 함 */
.ncp-fb.ncp-fb .ncp-fb-body :is(p,li,dd,dt,td,th,a,span,strong,b,em,i,u,small,label,address,pre,code,cite,q,mark,sup,sub){font-size:inherit!important}
.ncp-fb.ncp-fb .ncp-fb-body :is(ul,ol,dl){font-size:inherit!important}
.ncp-fb.ncp-fb .ncp-fb-body h1{font-size:1.5em!important}
.ncp-fb.ncp-fb .ncp-fb-body h2{font-size:1.32em!important}
.ncp-fb.ncp-fb .ncp-fb-body h3{font-size:1.14em!important}
.ncp-fb.ncp-fb .ncp-fb-body :is(h4,h5,h6){font-size:1.02em!important}
.ncp-fb.ncp-fb .ncp-fb-body blockquote{font-size:.97em!important}
.ncp-fb.ncp-fb .ncp-fb-body figcaption{font-size:.85em!important}
.ncp-fb.ncp-fb .ncp-fb-body table{font-size:.88em!important}
.ncp-fb.ncp-fb .ncp-fb-body .ncp-tbl{font-size:.9em!important}
.ncp-fb.ncp-fb .ncp-fb-body .ncp-fb-big{font-size:1.75em!important}
.ncp-fb.ncp-fb .ncp-fb-body .ncp-fn{font-size:.85em!important}
.ncp-fb.ncp-fb .ncp-fb-body .ncp-v{font-size:.72em!important}
.ncp-fb.ncp-fb .ncp-fb-body :is(h1,h2,h3,h4,h5,h6,p,li){line-height:inherit}
.ncp-fb.ncp-fb .ncp-fb-body :is(h1,h2,h3,h4,h5,h6){line-height:1.4}
/* 글로 읽기 모드도 같은 방식 */
.ncp-fb.ncp-fb.is-text .ncp-fb-source :is(p,li,dd,dt,td,th,blockquote,a,span,strong,b,em,i,u,small){font-size:inherit!important}
.ncp-fb.ncp-fb.is-text .ncp-fb-source .ncp-v{font-size:.72em!important}
.ncp-fb.ncp-fb.is-text .ncp-fb-source .ncp-fn{font-size:.85em!important}

/* 성경 구절 링크 */
.ncp-fb a.ncp-bref{color:inherit;text-decoration:underline;text-decoration-color:rgba(107,79,42,.45);text-decoration-thickness:1px;text-underline-offset:3px;cursor:pointer}
.ncp-fb a.ncp-bref:hover,.ncp-fb a.ncp-bref:focus-visible{color:var(--ncp-fb-accent);text-decoration-color:currentColor}
/* 찾아온 절 잠깐 밝게 */
.ncp-fb-body .ncp-fb-flash{animation:ncpFbFlash 2.6s ease}
@keyframes ncpFbFlash{0%,35%{background:rgba(255,214,90,.55);box-shadow:0 0 0 4px rgba(255,214,90,.55)}100%{background:transparent;box-shadow:0 0 0 4px transparent}}
/* 읽어 주는 문단 */
.ncp-fb-body .ncp-fb-reading{background:rgba(255,226,140,.38);box-shadow:0 0 0 3px rgba(255,226,140,.38);border-radius:2px;transition:background .2s}
.ncp-fb-bar button.ncp-fb-listen.is-on{background:#6b4f2a;border-color:#6b4f2a;color:#fff}
/* 이어 읽기 안내 */
.ncp-fb-resume{position:absolute;left:50%;top:10px;z-index:25;display:flex;align-items:center;gap:8px;max-width:calc(100% - 20px);transform:translate(-50%,-8px);opacity:0;transition:opacity .25s ease,transform .25s ease;background:#fffaf0;border:1px solid #e0cfa8;border-radius:22px;padding:6px 8px 6px 14px;box-shadow:0 4px 14px rgba(0,0,0,.14);font-size:14px;color:#4a4237;white-space:nowrap}
.ncp-fb-resume.is-on{opacity:1;transform:translate(-50%,0)}
.ncp-fb-resume-t{overflow:hidden;text-overflow:ellipsis}
.ncp-fb-resume button{appearance:none;border:1px solid #d9c49a;background:#fff;color:#4a4237;border-radius:16px;padding:5px 12px;font-size:13px;cursor:pointer;font-family:inherit;line-height:1.2}
.ncp-fb-resume .ncp-fb-resume-go{background:#6b4f2a;border-color:#6b4f2a;color:#fff}
.ncp-fb-resume .ncp-fb-resume-x{border:0;background:none;padding:4px 6px;color:#8a8172}
@media (max-width:600px){.ncp-fb-resume{font-size:13px;gap:6px;padding:5px 6px 5px 10px}.ncp-fb-resume-t b{font-weight:600}}
.ncp-fb.is-tts .ncp-fb-bar .ncp-fb-mode,.ncp-fb.is-tts .ncp-fb-bar .ncp-fb-searchbtn{display:none}
@media (max-width:600px){.ncp-fb-resume-l{display:none}}

/* 성경 → 원래 책으로 돌아가기 (돌아가기가 있는 동안 '책장' 자리를 대신함) */
.ncp-fb-bar a.ncp-fb-retbtn{display:inline-flex;align-items:center;box-sizing:border-box;text-decoration:none!important;box-shadow:none;background:#6b4f2a;border-color:#6b4f2a;color:#fff}
.ncp-fb-bar a.ncp-fb-retbtn:hover{background:#5a4123;color:#fff}
.ncp-fb.has-ret .ncp-fb-bar .ncp-fb-shelfbtn{display:none}
