@keyframes savedPop{0%{transform:scale(1)}30%{transform:scale(1.18)}to{transform:scale(1)}}.saved-pop{animation:savedPop .4s ease-out}@keyframes savedFloat{0%{opacity:0;transform:translateY(8px)}20%{opacity:1}to{opacity:0;transform:translateY(-20px)}}.saved-float{animation:savedFloat 1.1s ease-out forwards}@keyframes spreadFlip{0%{transform:perspective(1800px) rotateY(-16deg);opacity:.35}to{transform:perspective(1800px) rotateY(0deg);opacity:1}}.spread-flip{animation:spreadFlip .5s ease-out;transform-origin:left center}@keyframes pageTurnNext{0%{transform:perspective(2200px) rotateY(26deg);opacity:.35;filter:brightness(.78)}60%{filter:brightness(.92)}to{transform:perspective(2200px) rotateY(0deg);opacity:1;filter:none}}@keyframes pageTurnPrev{0%{transform:perspective(2200px) rotateY(-26deg);opacity:.35;filter:brightness(.78)}60%{filter:brightness(.92)}to{transform:perspective(2200px) rotateY(0deg);opacity:1;filter:none}}.spread-turn-next{animation:pageTurnNext .46s cubic-bezier(.22,.61,.36,1);transform-origin:center center}.spread-turn-prev{animation:pageTurnPrev .46s cubic-bezier(.22,.61,.36,1);transform-origin:center center}@keyframes leafTurnNext{0%{transform:perspective(2800px) rotateY(0deg)}to{transform:perspective(2800px) rotateY(-180deg)}}.page-leaf{animation:leafTurnNext .9s cubic-bezier(.45,.02,.28,1) forwards;transform-origin:left center;will-change:transform}@keyframes leafShade{0%{opacity:0}50%{opacity:.5}to{opacity:0}}.page-leaf .leaf-shade{opacity:0;animation:leafShade .9s ease-in-out forwards}@keyframes thumbIn{0%{opacity:0;transform:translateY(6px) scale(.96)}to{opacity:1;transform:none}}.thumb-in{animation:thumbIn .35s ease-out}@keyframes leafFlipNext{0%{transform:rotateY(0deg)}to{transform:rotateY(-180deg)}}@keyframes leafFlipPrev{0%{transform:rotateY(0deg)}to{transform:rotateY(180deg)}}@keyframes leafFlipPrevIn{0%{transform:rotateY(-180deg)}to{transform:rotateY(0deg)}}.flip-leaf{will-change:transform}.flip-leaf.leaf-flip-next{animation:leafFlipNext .6s cubic-bezier(.34,.02,.28,1) both}.flip-leaf.leaf-flip-prev{animation:leafFlipPrev .6s cubic-bezier(.34,.02,.28,1) both}.flip-leaf.leaf-flip-prev-in{animation:leafFlipPrevIn .6s cubic-bezier(.34,.02,.28,1) both}@keyframes flipShade{0%{opacity:0}50%{opacity:.55}to{opacity:0}}.flip-leaf .flip-shade{opacity:0;animation:flipShade .6s ease-in-out forwards}.modoo-wizard-root{font-family:Noto Sans KR,sans-serif}.modoo-tiptap-wrapper .ProseMirror{font-family:"Noto Serif KR",Batang,Georgia,serif;font-size:14px;line-height:1.65;color:#1f2937;padding:16px 20px;min-height:430px;outline:none}.modoo-tiptap-wrapper .ProseMirror p{margin:4px 0;text-align:justify;word-break:keep-all}.modoo-tiptap-wrapper .ProseMirror p.is-editor-empty:first-child:before{content:attr(data-placeholder);float:left;color:#9ca3af;pointer-events:none;height:0}.modoo-tiptap-wrapper .ProseMirror p.is-empty:not(.is-editor-empty):before{content:"⏎ 빈 줄 (출력에 반영되지 않음)";float:left;height:0;color:#d7dde5;font-size:11px;pointer-events:none}.book-page-shell{width:559px;height:794px;background:#fff;position:relative;flex-shrink:0}.book-page-shell.verso{box-shadow:-1px 1px 6px 0 rgba(0,0,0,.06),-8px 8px 24px -4px rgba(0,0,0,.08)}.book-page-shell.recto{box-shadow:1px 1px 6px 0 rgba(0,0,0,.06),8px 8px 24px -4px rgba(0,0,0,.08)}.toc-row .row-actions{opacity:0;transition:opacity .15s}.toc-row:hover .row-actions{opacity:1}.thin-scroll::-webkit-scrollbar{width:6px}.thin-scroll::-webkit-scrollbar-thumb{background:#d1d5db;border-radius:3px}.modoo-tiptap-wrapper .ProseMirror h2{position:relative;font-family:Noto Sans KR,sans-serif;font-size:21px;font-weight:800;color:#111827;margin:24px 0 7px}.modoo-tiptap-wrapper .ProseMirror h3{position:relative;font-family:Noto Sans KR,sans-serif;font-size:17px;font-weight:700;color:#374151;margin:18px 0 5px}.modoo-tiptap-wrapper .ProseMirror h2:after,.modoo-tiptap-wrapper .ProseMirror h3:after{position:absolute;right:0;top:.2em;font-family:Noto Sans KR,sans-serif;font-size:10.5px;font-weight:600;color:#9ca3af;background:#f3f4f6;border:1px solid #e5e7eb;border-radius:4px;padding:0 6px;opacity:0;transition:opacity .12s;pointer-events:none}.modoo-tiptap-wrapper .ProseMirror h2:hover:after{content:"소제목 1";opacity:1}.modoo-tiptap-wrapper .ProseMirror h3:hover:after{content:"소제목 2";opacity:1}.modoo-tiptap-wrapper .ProseMirror blockquote{margin:14px 16px;padding:6px 14px;border-left:3px solid #cbd5e1;background:#f9fafb;border-radius:0 4px 4px 0;color:#6b7280;font-style:italic;font-size:13px}.modoo-tiptap-wrapper .ProseMirror ol,.modoo-tiptap-wrapper .ProseMirror ul{margin:10px 0;padding-left:24px}.modoo-tiptap-wrapper .ProseMirror li{margin:2px 0;line-height:1.6}.modoo-tiptap-wrapper .ProseMirror li>p{margin:0}.modoo-tiptap-wrapper .ProseMirror hr{border:0;border-top:1px solid #9ca3af;width:30%;margin:22px auto}.modoo-tiptap-wrapper .ProseMirror{counter-reset:fn}.modoo-tiptap-wrapper .ProseMirror .fn-mark{border-bottom:1px dotted #2f8f5b;background:rgba(236,253,245,.6);cursor:pointer;counter-increment:fn}.modoo-tiptap-wrapper .ProseMirror .fn-mark:after{content:"(" counter(fn) ")";font-size:9px;font-weight:700;color:#2f8f5b;vertical-align:super;margin-left:1px}.modoo-tiptap-wrapper .ProseMirror figure.img-figure{margin:16px 0;text-align:center}.modoo-tiptap-wrapper .ProseMirror figure.img-figure>img{max-width:100%;max-height:460px;width:auto;display:block;margin:0 auto}.bw-book .ProseMirror figure.img-figure img{filter:grayscale(1)}.modoo-tiptap-wrapper .ProseMirror figure.img-figure figcaption{font-family:Noto Sans KR,sans-serif;font-size:11px;color:#6b7280;margin-top:6px;text-align:center;cursor:text}.modoo-tiptap-wrapper .ProseMirror figure.img-figure figcaption.empty{color:#cbd5e1}.modoo-tiptap-wrapper .ProseMirror figure.img-figure figcaption:hover{color:#374151}.modoo-tiptap-wrapper .ProseMirror figure.img-figure figcaption[contenteditable=true]{outline:1.5px solid #2f8f5b;outline-offset:2px;border-radius:3px;background:#fff;color:#1f2937}.modoo-tiptap-wrapper .ProseMirror figure.img-bleedBottom>img,.modoo-tiptap-wrapper .ProseMirror figure.img-bleedTop>img,.modoo-tiptap-wrapper .ProseMirror figure.img-fullPage>img,.modoo-tiptap-wrapper .ProseMirror figure.img-spread>img{-o-object-fit:cover;object-fit:cover;border:2px dashed #60a5fa;margin:0 auto;background:#f1f5f9;max-height:none}.modoo-tiptap-wrapper .ProseMirror figure.img-fullPage>img{aspect-ratio:1/1.414;width:52%}.modoo-tiptap-wrapper .ProseMirror figure.img-spread>img{aspect-ratio:1.414/1;width:92%}.modoo-tiptap-wrapper .ProseMirror figure.img-bleedBottom>img,.modoo-tiptap-wrapper .ProseMirror figure.img-bleedTop>img{aspect-ratio:auto;width:100%;max-height:300px}.modoo-tiptap-wrapper .ProseMirror figure.img-figure .img-crop-box{position:relative;overflow:hidden;margin:0 auto;border:2px dashed #60a5fa;background:#f1f5f9}.modoo-tiptap-wrapper .ProseMirror figure.img-fullPage .img-crop-box{aspect-ratio:1/1.414;width:52%}.modoo-tiptap-wrapper .ProseMirror figure.img-spread .img-crop-box{aspect-ratio:1.414/1;width:92%}.modoo-tiptap-wrapper .ProseMirror figure.img-bleedBottom .img-crop-box,.modoo-tiptap-wrapper .ProseMirror figure.img-bleedTop .img-crop-box{aspect-ratio:1.28/1;width:100%}.modoo-tiptap-wrapper .ProseMirror figure.img-figure .img-crop-box img{max-height:none;max-width:none;border:none;background:none}.modoo-tiptap-wrapper .ProseMirror .book-table-caption{font-family:Noto Sans KR,sans-serif;font-size:11px;color:#6b7280;text-align:center;margin:12px 0 3px}.modoo-tiptap-wrapper .ProseMirror figure.ProseMirror-selectednode{outline:2px solid #2f8f5b;outline-offset:2px}.modoo-tiptap-wrapper .ProseMirror .tableWrapper{margin:16px 0;overflow-x:auto}.modoo-tiptap-wrapper .ProseMirror table{border-collapse:collapse;width:100%;table-layout:fixed;font-family:Noto Sans KR,sans-serif;font-size:12px;border-top:2px solid #374151;border-bottom:2px solid #374151}.modoo-tiptap-wrapper .ProseMirror td,.modoo-tiptap-wrapper .ProseMirror th{border:0;border-bottom:1px solid #e5e7eb;padding:6px 8px;vertical-align:middle;position:relative}.modoo-tiptap-wrapper .ProseMirror th{font-weight:700;border-bottom:1.5px solid #9ca3af;background:#fafafa;text-align:left}.modoo-tiptap-wrapper .ProseMirror td p,.modoo-tiptap-wrapper .ProseMirror th p{margin:0;font-size:12px;line-height:1.5}.modoo-tiptap-wrapper .ProseMirror .selectedCell:after{content:"";position:absolute;inset:0;background:rgba(47,143,91,.08);pointer-events:none}.modoo-tiptap-wrapper .ProseMirror .column-resize-handle{position:absolute;right:-2px;top:0;bottom:-1px;width:4px;background:#2f8f5b;pointer-events:none}.modoo-tiptap-wrapper .ProseMirror.resize-cursor{cursor:col-resize}.modoo-tiptap-wrapper .ProseMirror [data-width-mode=auto] .column-resize-handle{display:none}.modoo-tiptap-wrapper .ProseMirror .callout-box{background:#fbfbfa;border:1.5px solid #9ca3af;border-radius:8px;padding:12px 14px;margin:14px 0}.modoo-tiptap-wrapper .ProseMirror .callout-box .callout-title{font-family:Noto Sans KR,sans-serif;font-weight:700;font-size:13px;color:#374151;margin-bottom:4px}.modoo-tiptap-wrapper .ProseMirror .callout-box .callout-body p{margin:4px 0;font-size:13px}.modoo-tiptap-wrapper .ProseMirror .callout-box.ProseMirror-selectednode{outline:2px solid #2f8f5b;outline-offset:2px}.modoo-tiptap-wrapper .ProseMirror .region-mark{border-bottom:2px solid #2f8f5b;background:rgba(47,143,91,.1);padding:0 1px;border-radius:2px}.modoo-tiptap-wrapper .ProseMirror .region-num{font-weight:700;color:#2f8f5b;font-size:.92em;margin:0 1px 0 0}.modoo-tiptap-wrapper .ProseMirror .math-src{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.9em;background:#eef2ff;color:#3730a3;border:1px solid #e0e7ff;border-radius:3px;padding:0 3px;cursor:help}.math-hover-tip{position:fixed;z-index:10000;background:#fff;border:1px solid #d9d9d9;border-radius:6px;box-shadow:0 6px 20px rgba(0,0,0,.14);padding:8px 12px;font-size:19px;line-height:1.2;pointer-events:none;max-width:60vw}.modoo-tiptap-wrapper .ProseMirror .example-box{background:rgba(240,253,247,.7);border:1px solid #cde8d9;border-left:4px solid #2f8f5b;border-radius:4px;padding:10px 14px;margin:14px 0}.modoo-tiptap-wrapper .ProseMirror .example-box .ex-title{font-family:Noto Sans KR,sans-serif;font-weight:800;font-size:12px;color:#1f6b45;margin-bottom:4px}.modoo-tiptap-wrapper .ProseMirror .example-box .ex-stem{font-size:14px;color:#1f2937;white-space:pre-wrap}.modoo-tiptap-wrapper .ProseMirror .example-box .ex-stem.empty{color:#9ca3af}.modoo-tiptap-wrapper .ProseMirror .example-box .ex-sol{font-size:13px;color:#374151;margin-top:6px;white-space:pre-wrap}.modoo-tiptap-wrapper .ProseMirror .example-box .ex-sol.muted{color:#9ca3af;font-style:italic}.modoo-tiptap-wrapper .ProseMirror .example-box.ProseMirror-selectednode{outline:2px solid #2f8f5b;outline-offset:2px}.modoo-tiptap-wrapper .ProseMirror table td,.modoo-tiptap-wrapper .ProseMirror table th{border:1px solid #d1d5db}.modoo-tiptap-wrapper .ProseMirror table th{background:#f3f4f6;border-bottom:1.5px solid #9ca3af}.modoo-tiptap-wrapper .ProseMirror [data-header-rows="1"] tr:nth-child(-n+1)>*,.modoo-tiptap-wrapper .ProseMirror [data-header-rows="2"] tr:nth-child(-n+2)>*,.modoo-tiptap-wrapper .ProseMirror [data-header-rows="3"] tr:nth-child(-n+3)>*{background:#f3f4f6;font-weight:700}.modoo-tiptap-wrapper .ProseMirror [data-header-rows="1"] tr:first-child>*,.modoo-tiptap-wrapper .ProseMirror [data-header-rows="2"] tr:nth-child(2)>*,.modoo-tiptap-wrapper .ProseMirror [data-header-rows="3"] tr:nth-child(3)>*{border-bottom:1.5px solid #9ca3af}.modoo-tiptap-wrapper .ProseMirror [data-header-rows="0"] th{background:transparent;font-weight:400;border-bottom:1px solid #d1d5db}.modoo-tiptap-wrapper .ProseMirror td.tbl-rh,.modoo-tiptap-wrapper .ProseMirror th.tbl-rh{background:#f3f4f6;font-weight:600}.modoo-tiptap-wrapper .ProseMirror a.manuscript-link{color:#2b6cd4;text-decoration:underline;text-underline-offset:2px;cursor:text}.modoo-tiptap-wrapper .ProseMirror .link-pending-selection{background:rgba(59,130,246,.25);border-radius:2px}@keyframes wizard-confirm-pulse-kf{0%{box-shadow:0 0 0 0 rgba(250,140,22,.5)}70%{box-shadow:0 0 0 7px rgba(250,140,22,0)}to{box-shadow:0 0 0 0 rgba(250,140,22,0)}}.wizard-confirm-pulse{animation:wizard-confirm-pulse-kf 1.8s ease-out infinite}