:root{--book-shadow: rgba(42, 29, 16, .35);--paper-cream: #f8f3eb;--paper-edge: #e8dfd2;--paper-shadow: rgba(0, 0, 0, .06);--novel-text: #2c2418;--novel-text-light: #6b5d4e;--novel-chapter: #8b6914;--novel-quote: #5c4300;--novel-bg: #eae5da}.novel-reader{position:fixed;inset:0;background:var(--novel-bg);z-index:100;display:flex;flex-direction:column;overflow:hidden}.novel-header{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1.5rem;background:#eae5daf2;backdrop-filter:blur(8px);border-bottom:1px solid var(--paper-edge);z-index:10;flex-shrink:0}.novel-header-title{font-family:"Noto Serif KR",serif;font-size:.85rem;color:var(--novel-text-light);letter-spacing:.1em}.novel-header-btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border:none;background:transparent;color:var(--novel-text-light);cursor:pointer;border-radius:8px;transition:background .15s;text-decoration:none}.novel-header-btn:hover{background:#0000000f}.book-stage{flex:1;display:flex;align-items:center;justify-content:center;padding:1.5rem;overflow:hidden;position:relative}.book-frame{position:relative;width:min(92vw,1100px);height:min(80vh,740px);background:var(--paper-cream);border-radius:4px 12px 12px 4px;box-shadow:0 1px 2px var(--paper-shadow),0 8px 24px #2a1d101f,0 20px 60px var(--book-shadow);overflow:hidden;perspective:2500px}.book-spine-overlay{position:absolute;top:0;bottom:0;left:50%;width:4px;transform:translate(-50%);background:linear-gradient(to right,#00000026,#00000008 40%,#00000005 60%,#0000001a);z-index:3;pointer-events:none}.page-shadow-left{position:absolute;top:0;bottom:0;left:0;width:50%;box-shadow:inset -12px 0 18px -12px #00000014;z-index:2;pointer-events:none}.page-shadow-right{position:absolute;top:0;bottom:0;right:0;width:50%;box-shadow:inset 12px 0 18px -12px #0000000f;border-right:1px solid var(--paper-edge);z-index:2;pointer-events:none}.page-number{position:absolute;bottom:1rem;font-family:"Noto Serif KR",serif;font-size:.75rem;color:var(--novel-text-light);opacity:.5;z-index:4;pointer-events:none}.page-number-left{left:2.5rem}.page-number-right{right:2.5rem}.nav-zone{position:absolute;top:0;bottom:0;width:15%;cursor:pointer;z-index:5;display:flex;align-items:center}.nav-zone-prev{left:0;justify-content:flex-start;padding-left:.75rem}.nav-zone-next{right:0;justify-content:flex-end;padding-right:.75rem}.nav-zone-icon{opacity:0;transition:opacity .2s;color:var(--novel-text-light);font-size:1.5rem}.nav-zone:hover .nav-zone-icon{opacity:.4}.page-cover{position:absolute;top:0;bottom:0;z-index:8;pointer-events:none;background:var(--paper-cream)}.page-cover-left{left:0;width:50%;animation:coverFade .5s ease-in-out forwards}.page-cover-right{right:0;width:50%;animation:coverFade .5s ease-in-out forwards}@keyframes coverFade{0%{opacity:1}55%{opacity:1}80%{opacity:0}to{opacity:0}}.page-flip{position:absolute;top:0;bottom:0;width:50%;z-index:10;pointer-events:none;transform-style:preserve-3d}.page-flip.forward{right:0;transform-origin:left center;animation:flipForward .5s ease-in-out forwards}.page-flip.backward{left:0;transform-origin:right center;animation:flipBackward .5s ease-in-out forwards}.page-flip-front{position:absolute;inset:0;backface-visibility:hidden;background:var(--paper-cream)}.page-flip.forward .page-flip-front{border-radius:0 8px 8px 0;background:linear-gradient(to right,var(--paper-cream) 85%,#f3ede4);box-shadow:-1px 0 3px #0000000a}.page-flip.backward .page-flip-front{border-radius:8px 0 0 8px;background:linear-gradient(to left,var(--paper-cream) 85%,#f3ede4);box-shadow:1px 0 3px #0000000a}.page-flip-back{position:absolute;inset:0;backface-visibility:hidden;transform:rotateY(180deg)}.page-flip.forward .page-flip-back{border-radius:8px 0 0 8px;background:linear-gradient(to right,#ece6db 0%,var(--paper-cream) 25%);box-shadow:inset -5px 0 12px #0000000a}.page-flip.backward .page-flip-back{border-radius:0 8px 8px 0;background:linear-gradient(to left,#ece6db 0%,var(--paper-cream) 25%);box-shadow:inset 5px 0 12px #0000000a}.page-flip-glow{position:absolute;top:0;bottom:0;z-index:9;pointer-events:none}.page-flip-glow.forward-glow{right:0;width:50%;animation:glowForward .5s ease-in-out forwards}.page-flip-glow.backward-glow{left:0;width:50%;animation:glowBackward .5s ease-in-out forwards}@keyframes flipForward{0%{transform:rotateY(0)}to{transform:rotateY(-180deg)}}@keyframes flipBackward{0%{transform:rotateY(0)}to{transform:rotateY(180deg)}}@keyframes glowForward{0%{opacity:0;background:linear-gradient(to left,rgba(0,0,0,.12),transparent 50%)}30%{opacity:1;background:linear-gradient(to left,rgba(0,0,0,.1),transparent 40%)}70%{opacity:.7;background:linear-gradient(to right,rgba(0,0,0,.08),transparent 40%)}to{opacity:0;background:transparent}}@keyframes glowBackward{0%{opacity:0;background:linear-gradient(to right,rgba(0,0,0,.12),transparent 50%)}30%{opacity:1;background:linear-gradient(to right,rgba(0,0,0,.1),transparent 40%)}70%{opacity:.7;background:linear-gradient(to left,rgba(0,0,0,.08),transparent 40%)}to{opacity:0;background:transparent}}@media(max-width:767px){.page-flip{width:100%}.page-flip.forward{right:0;transform-origin:left center}.page-flip.backward{left:0;transform-origin:right center}.page-flip-glow,.page-cover{display:none}}.book-content{column-fill:auto;height:100%;padding:2.5rem}.book-content{font-family:"Noto Serif KR",serif;font-size:1.05rem;line-height:1.95;color:var(--novel-text);word-break:keep-all;text-align:justify}.book-content h2{font-family:"Noto Serif KR",serif;font-size:1.25em;font-weight:600;color:var(--novel-chapter);text-align:center;margin:2em 0 1.5em;letter-spacing:.12em;break-after:avoid}.book-content p{margin:0 0 1.3em;text-indent:1em;orphans:2;widows:2}.book-content p:first-of-type{text-indent:0}.book-content blockquote{border-left:2px solid var(--novel-quote);padding:.5em 0 .5em 1.2em;margin:1.5em 0;font-style:italic;color:var(--novel-quote);text-indent:0}.book-content blockquote p{text-indent:0}.book-content hr{border:none;text-align:center;margin:2em 0}.book-content hr:after{content:"· · ·";color:var(--novel-text-light);letter-spacing:.5em;font-size:.9em}.book-content strong{font-weight:700;color:var(--novel-text)}.book-content em{font-style:italic}.chapter-divider{break-before:column;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100%;text-align:center;padding:3rem 2rem}.chapter-divider-part{font-family:"Noto Serif KR",serif;font-size:.8rem;color:var(--novel-text-light);letter-spacing:.25em;margin-bottom:1.5rem}.chapter-divider-title{font-family:"Noto Serif KR",serif;font-size:1.6rem;font-weight:600;color:var(--novel-chapter);margin-bottom:.75rem;letter-spacing:.05em}.chapter-divider-narrator{font-family:"Noto Serif KR",serif;font-size:.95rem;color:var(--novel-text-light);margin-bottom:1.5rem}.chapter-divider-sep{width:2rem;height:1px;background:var(--novel-text-light);opacity:.3;margin-bottom:1.5rem}.chapter-divider-ref{font-family:"Noto Serif KR",serif;font-size:.8rem;color:var(--novel-text-light);opacity:.6}.novel-footer{display:flex;align-items:center;gap:1rem;padding:.75rem 1.5rem;background:#eae5daf2;backdrop-filter:blur(8px);border-top:1px solid var(--paper-edge);flex-shrink:0}.progress-bar{flex:1;height:3px;background:var(--paper-edge);border-radius:2px;overflow:hidden;cursor:pointer}.progress-fill{height:100%;background:var(--novel-chapter);border-radius:2px;transition:width .3s ease}.progress-label{font-family:"Noto Serif KR",serif;font-size:.75rem;color:var(--novel-text-light);white-space:nowrap;min-width:5rem;text-align:right}.toc-overlay{position:fixed;inset:0;background:#0000004d;z-index:200;opacity:0;visibility:hidden;transition:opacity .3s,visibility .3s}.toc-overlay.active{opacity:1;visibility:visible}.toc-panel{position:fixed;top:0;right:0;bottom:0;width:min(360px,85vw);background:var(--paper-cream);box-shadow:-4px 0 24px #00000026;z-index:201;transform:translate(100%);transition:transform .35s cubic-bezier(.25,.1,.25,1);display:flex;flex-direction:column;overflow-y:auto}.toc-overlay.active .toc-panel{transform:translate(0)}.toc-header{display:flex;align-items:center;justify-content:space-between;padding:1.5rem;border-bottom:1px solid var(--paper-edge)}.toc-title{font-family:"Noto Serif KR",serif;font-size:1.1rem;font-weight:600;color:var(--novel-text)}.toc-list{padding:1rem 0;list-style:none}.toc-item{padding:.85rem 1.5rem;cursor:pointer;transition:background .15s;display:flex;align-items:baseline;gap:.75rem}.toc-item:hover{background:#0000000a}.toc-item.active{background:#8b691414}.toc-item-part{font-family:"Noto Serif KR",serif;font-size:.75rem;color:var(--novel-text-light);min-width:2rem}.toc-item-title{font-family:"Noto Serif KR",serif;font-size:.95rem;color:var(--novel-text)}.toc-item.active .toc-item-title{color:var(--novel-chapter);font-weight:600}.toc-item-narrator{font-size:.8rem;color:var(--novel-text-light);margin-left:auto}.font-size-controls{display:flex;align-items:center;gap:.5rem}.font-size-btn{width:32px;height:32px;border:1px solid var(--paper-edge);background:transparent;color:var(--novel-text-light);cursor:pointer;border-radius:6px;font-family:"Noto Serif KR",serif;font-size:.85rem;display:flex;align-items:center;justify-content:center;transition:background .15s,border-color .15s}.font-size-btn:hover{background:#0000000a;border-color:var(--novel-text-light)}.book-content.font-small{font-size:.92rem;line-height:1.85}.book-content.font-medium{font-size:1.05rem;line-height:1.95}.book-content.font-large{font-size:1.18rem;line-height:2}.novel-cover{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--novel-bg);padding:2rem}.novel-shelf{min-height:100vh;display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:center;gap:4rem;background:var(--novel-bg);padding:4rem 2rem}.novel-volume{display:flex;flex-direction:column;align-items:center;max-width:480px;width:100%}.cover-volume-subtitle{font-family:"Noto Serif KR",serif;font-size:1.05rem;color:var(--novel-chapter);letter-spacing:.05em;margin-bottom:1rem;font-weight:500}.cover-book{background:var(--paper-cream);padding:4rem 3rem;border-radius:4px 12px 12px 4px;box-shadow:0 1px 2px var(--paper-shadow),0 20px 60px var(--book-shadow);text-align:center;max-width:480px;width:100%}.cover-series{font-family:"Noto Serif KR",serif;font-size:.8rem;color:var(--novel-text-light);letter-spacing:.3em;margin-bottom:2rem}.cover-title{font-family:"Noto Serif KR",serif;font-size:2rem;font-weight:700;color:var(--novel-text);margin-bottom:1rem;line-height:1.4}.cover-subtitle{font-family:"Noto Serif KR",serif;font-size:1rem;color:var(--novel-text-light);margin-bottom:3rem;line-height:1.6}.cover-sep{width:3rem;height:1px;background:var(--novel-text-light);opacity:.3;margin:0 auto 3rem}.cover-actions{display:flex;flex-direction:column;gap:.75rem;align-items:center}.cover-btn{font-family:"Noto Serif KR",serif;padding:.85rem 2rem;border-radius:8px;cursor:pointer;font-size:.95rem;transition:all .2s;min-width:200px;text-decoration:none;display:inline-block;text-align:center}.cover-btn-primary{background:var(--novel-chapter);color:#fff;border:none}.cover-btn-primary:hover{background:#7a5c12}.cover-btn-secondary{background:transparent;color:var(--novel-text-light);border:1px solid var(--paper-edge)}.cover-btn-secondary:hover{border-color:var(--novel-text-light)}.cover-toc{max-width:480px;width:100%;margin-top:3rem}.cover-toc-title{font-family:"Noto Serif KR",serif;font-size:.85rem;color:var(--novel-text-light);letter-spacing:.2em;margin-bottom:1.5rem;text-align:center}.cover-toc-item{display:flex;align-items:baseline;padding:.75rem 0;border-bottom:1px solid rgba(232,223,210,.5);cursor:pointer;transition:color .15s;text-decoration:none;gap:.5rem}.cover-toc-item:hover{color:var(--novel-chapter)}.cover-toc-num{font-family:"Noto Serif KR",serif;font-size:.85rem;color:var(--novel-text-light);min-width:1.5rem}.cover-toc-name{font-family:"Noto Serif KR",serif;font-size:1rem;color:var(--novel-text);flex:1}.cover-toc-item:hover .cover-toc-name{color:var(--novel-chapter)}.cover-toc-narrator{font-family:"Noto Serif KR",serif;font-size:.85rem;color:var(--novel-text-light)}.cover-toc-ref{font-family:"Noto Serif KR",serif;font-size:.8rem;color:var(--novel-text-light);opacity:.6;min-width:3.5rem;text-align:right}@media(max-width:1023px){.book-frame{width:min(95vw,900px);height:min(78vh,680px)}.book-content{padding:2rem 2rem 1.5rem;font-size:1rem}}@media(max-width:767px){.book-frame{width:96vw;height:100%;border-radius:8px}.book-spine-overlay,.page-shadow-left,.page-shadow-right,.page-number-right{display:none}.book-content{padding:1.75rem 1.5rem 2.5rem;font-size:.98rem;line-height:1.9}.book-stage{padding:.5rem;min-height:0}.nav-zone{width:25%}.chapter-divider{padding:2rem 1.5rem}.chapter-divider-title{font-size:1.3rem}.cover-book{padding:3rem 2rem}.cover-title{font-size:1.6rem}.novel-shelf{padding:2rem 1rem;gap:3rem}.cover-volume-subtitle{font-size:.95rem}.page-number-left{left:50%;transform:translate(-50%)}}@media(prefers-reduced-motion:reduce){.toc-panel,.toc-overlay,.progress-fill{transition:none!important}.page-flip,.page-flip-glow{animation:none!important}}
