@font-face{font-family:Playfair Display;src:url(/fonts/PlayfairDisplay-400.ttf) format("truetype");font-weight:400;font-style:normal;font-display:block}@font-face{font-family:Playfair Display;src:url(/fonts/PlayfairDisplay-700.ttf) format("truetype");font-weight:700;font-style:normal;font-display:block}@font-face{font-family:Playfair Display;src:url(/fonts/PlayfairDisplay-Italic-400.ttf) format("truetype");font-weight:400;font-style:italic;font-display:block}@font-face{font-family:Playfair Display;src:url(/fonts/PlayfairDisplay-Italic-500.ttf) format("truetype");font-weight:500;font-style:italic;font-display:block}@font-face{font-family:Playfair Display;src:url(/fonts/PlayfairDisplay-Italic-700.ttf) format("truetype");font-weight:700;font-style:italic;font-display:block}@font-face{font-family:UnifrakturCook;src:url(/fonts/UnifrakturCook-Bold.ttf) format("truetype");font-weight:700;font-style:normal;font-display:block}.dd-page{position:relative;background:#fff;color:#000;overflow:hidden;font-kerning:normal;-webkit-font-smoothing:antialiased;text-rendering:geometricPrecision}.dd-page>*{position:absolute}.dd-page .line{position:absolute;white-space:pre;font-kerning:normal}.dd-page .column-rule{background:#000}.dd-page .element{position:absolute}.dd-page .img-frame{position:absolute;overflow:hidden}.dd-page .img-frame img{position:absolute;max-width:none;-webkit-user-select:none;user-select:none}.dd-page .img-border{position:absolute;top:-.25pt;right:-.25pt;bottom:-.25pt;left:-.25pt;border:.5pt solid #000;pointer-events:none}.missing-widget{position:absolute;top:0;right:0;bottom:0;left:0;border:1px dashed red;color:red;font:10px sans-serif;padding:4px}:root{--bg: #f4f1ea;--panel: #fbfaf7;--ink: #1d1b18;--muted: #6f6a60;--line: #dcd6ca;--accent: #2f5d8a;--accent-ink: #fff;--danger: #a3332b;--select: #2f7de1;--radius: 6px;--font-ui: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;color-scheme:light}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:var(--font-ui);font-size:14px;color:var(--ink);background:var(--bg)}html.print-mode,html.print-mode body{background:#fff;height:auto}@page{size:8.5in 11in;margin:0}.blackletter{font-family:UnifrakturCook,serif;font-weight:700}button{font:inherit;color:inherit}.btn{display:inline-flex;align-items:center;gap:4px;border:1px solid var(--line);background:#fff;border-radius:var(--radius);padding:6px 12px;cursor:pointer;text-decoration:none;white-space:nowrap;min-height:32px}.btn:hover:not(:disabled){border-color:#bdb5a6}.btn:disabled{opacity:.5;cursor:default}.btn.small{padding:4px 10px;font-size:13px;min-height:30px}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.btn.ghost{background:transparent;border-color:transparent}.btn.ghost:hover:not(:disabled){background:#0000000d}.btn.danger{color:var(--danger)}.icon-btn{border:1px solid transparent;background:transparent;border-radius:var(--radius);min-width:30px;height:30px;font-size:17px;cursor:pointer}.icon-btn:hover:not(:disabled){background:#0000000f}.icon-btn:disabled{opacity:.35}.field{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--muted);flex:1;min-width:0}.field input,.field textarea,.field select{font:inherit;font-size:14px;color:var(--ink);padding:6px 8px;border:1px solid var(--line);border-radius:var(--radius);background:#fff;width:100%}.field textarea{resize:vertical}.field.small input{padding:4px 6px}.check{display:flex;gap:8px;align-items:center;font-size:13px}.row{display:flex;gap:8px;align-items:flex-end;flex-wrap:wrap}.row.tight{gap:2px}.stack{display:flex;flex-direction:column;gap:10px}.hint{color:var(--muted);font-size:12px;line-height:1.4;margin:0}.pad{padding:12px 16px}.error{color:var(--danger);font-size:13px}.empty{padding:64px;text-align:center;color:var(--muted)}.login{min-height:100%;display:grid;place-items:center;padding:16px}.login-card{width:min(360px,100%);background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:28px;display:flex;flex-direction:column;gap:14px}.login-card h1{text-align:center;font-size:40px;margin:0 0 8px}.shell{display:flex;height:100%}.sidebar{width:260px;flex:none;border-right:1px solid var(--line);background:var(--panel);display:flex;flex-direction:column}.sidebar-head{padding:14px 16px 10px;border-bottom:1px solid var(--line)}.brand{font-size:28px;color:var(--ink);text-decoration:none}.sidebar-scroll{flex:1;overflow:auto;padding:8px 0}.sidebar-foot{border-top:1px solid var(--line);padding:10px 12px;display:flex;justify-content:space-between}.volume{padding:6px 8px 12px}.volume-name{display:flex;flex-direction:column;align-items:flex-start;width:100%;border:0;background:transparent;text-align:left;padding:6px 8px;border-radius:var(--radius);cursor:text}.volume-name:hover{background:#0000000a}.vol-no{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.vol-title{font-family:Playfair Display,serif;font-weight:700;font-size:17px}.volume-name-input{width:100%;font:700 17px Playfair Display,serif;padding:6px 8px;border:1px solid var(--accent);border-radius:var(--radius)}.issue-list{list-style:none;margin:2px 0 4px;padding:0}.issue-list a{display:grid;grid-template-columns:auto 1fr;column-gap:8px;padding:6px 8px;border-radius:var(--radius);color:inherit;text-decoration:none}.issue-list a:hover{background:#0000000a}.issue-list a.active{background:#e6e0d4}.issue-no{font-weight:600;font-size:13px}.issue-date{font-size:12px;color:var(--muted);text-align:right}.issue-headline{grid-column:1 / -1;font-size:13px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.main{flex:1;min-width:0;display:flex;flex-direction:column}.issue-page{display:flex;flex-direction:column;height:100%}.toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:8px 16px;border-bottom:1px solid var(--line);background:var(--panel);flex-wrap:wrap}.toolbar-group{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.issue-title{font:700 16px Playfair Display,serif;margin:0 8px 0 0}.save-state{font-size:12px;color:var(--muted);margin-right:8px}.save-state.error,.save-state.conflict{color:var(--danger)}.banner{background:#fdecea;color:var(--danger);padding:8px 16px;display:flex;gap:12px;align-items:center}.workspace{flex:1;display:flex;min-height:0}.page-scroll{flex:1;overflow:auto;padding:24px;min-width:0}.page-zoom{margin:0 auto;box-shadow:0 1px 3px #0000001f,0 8px 30px #00000014;background:#fff}.inspector{width:300px;flex:none;border-left:1px solid var(--line);background:var(--panel);overflow:auto;padding-bottom:24px}.insp-section{padding:14px 16px;border-bottom:1px solid var(--line);display:flex;flex-direction:column;gap:10px}.insp-section header{display:flex;justify-content:space-between;align-items:center}.insp-section h3{margin:0;font-size:13px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.inspector .back{margin:8px 12px}.warning{background:#fff4d6;border-bottom:1px solid #ecd9a0;padding:10px 16px;font-size:13px}.segmented{display:flex;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;background:#fff}.segmented button{flex:1;border:0;background:transparent;padding:6px 4px;font-size:12px;cursor:pointer;color:var(--ink)}.segmented button+button{border-left:1px solid var(--line)}.segmented button.active{background:var(--accent);color:#fff}.story-list{list-style:none;padding:0;margin:0}.story-list button{width:100%;text-align:left;border:0;background:transparent;padding:6px 4px;border-radius:var(--radius);cursor:pointer;display:flex;flex-direction:column}.story-list button:hover{background:#0000000a}.story-list small,.menu-list small{color:var(--muted);font-size:11px}.menu-list{list-style:none;margin:-4px 0 0;padding:4px;border:1px solid var(--line);border-radius:var(--radius);background:#fff;max-height:220px;overflow:auto}.menu-list button{width:100%;border:0;background:transparent;text-align:left;padding:6px 8px;border-radius:4px;cursor:pointer;display:flex;flex-direction:column}.menu-list button:hover{background:#eef3f9}.icon-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:4px}.icon-grid button{border:1px solid var(--line);background:#fff;border-radius:var(--radius);padding:6px;display:grid;place-items:center;cursor:pointer}.icon-grid button.active{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}details.crop summary{cursor:pointer;font-size:13px;margin-bottom:8px}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#14120f66;display:grid;place-items:center;z-index:50;padding:16px}.modal{background:var(--panel);border-radius:10px;width:min(640px,100%);max-height:90vh;overflow:auto;padding:16px 20px 20px}.modal header{display:flex;justify-content:space-between;align-items:center}.modal h2{margin:0;font:700 20px Playfair Display,serif}.modal h3{font-size:13px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}.dropzone{margin-top:12px;border:2px dashed var(--line);border-radius:10px;padding:24px;text-align:center}.dropzone p{margin:0 0 10px;color:var(--muted)}.asset-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:8px}.asset-grid button{border:1px solid var(--line);background:#fff;padding:4px;border-radius:var(--radius);aspect-ratio:1;cursor:pointer}.asset-grid img{width:100%;height:100%;object-fit:contain}.dd-page.editing{cursor:default;user-select:none;-webkit-user-select:none;touch-action:none}.dd-page.editing .line{cursor:text}.guide-column{outline:1px dashed rgba(47,125,225,.18);pointer-events:none}.guide-wrap{background:#2f7de114;outline:1px dashed rgba(47,125,225,.5);pointer-events:none}.guide-story-line{background:#2f7de10a;pointer-events:none}.placeholder{color:#aaa;font-family:Playfair Display,serif;font-style:italic;pointer-events:none;white-space:nowrap}.overflow-mark{width:12pt;height:12pt;line-height:11pt;text-align:center;font:700 11pt/11pt sans-serif;color:#fff;background:#d33;border-radius:2px;pointer-events:auto}.snap-guide-x{top:0;bottom:0;width:0;border-left:1px solid #e0389a;pointer-events:none}.snap-guide-y{left:0;right:0;height:0;border-top:1px solid #e0389a;pointer-events:none}.text-selection{background:#2f7de147;pointer-events:none}.caret{width:.8pt;background:#000;pointer-events:none;animation:blink 1.06s steps(1) infinite}@keyframes blink{50%{opacity:0}}.hidden-input{position:absolute;width:2px;height:1em;opacity:0;padding:0;border:0;resize:none;overflow:hidden;white-space:pre;font-size:16px;caret-color:transparent;pointer-events:none}.el-frame{position:absolute;top:0;right:0;bottom:0;left:0;cursor:move;touch-action:none}.el-frame:hover{outline:1px solid rgba(47,125,225,.5)}.el-frame.selected{outline:1.5px solid var(--select)}.handle{position:absolute;width:10px;height:10px;background:#fff;border:1.5px solid var(--select);border-radius:2px}.handle-nw{left:-6px;top:-6px;cursor:nwse-resize}.handle-ne{right:-6px;top:-6px;cursor:nesw-resize}.handle-sw{left:-6px;bottom:-6px;cursor:nesw-resize}.handle-se{right:-6px;bottom:-6px;cursor:nwse-resize}.page-zoom.clickable{cursor:pointer}.nav-toggle,.nav-scrim{display:none}@media (max-width: 900px){.sidebar{position:fixed;inset:0 auto 0 0;z-index:40;transform:translate(-100%);transition:transform .2s ease;box-shadow:0 0 30px #00000026}.nav-open .sidebar{transform:none}.nav-scrim{display:block;position:fixed;top:0;right:0;bottom:0;left:0;z-index:39;background:#0003}.nav-toggle{display:block;position:fixed;top:9px;left:8px;z-index:41;background:var(--panel)}.toolbar{padding-left:52px}.page-scroll{padding:12px}.inspector{width:260px}}@media (max-width: 640px){.issue-page.edit .workspace{flex-direction:column}.issue-page.edit .inspector{width:auto;max-height:45vh;border-left:0;border-top:1px solid var(--line)}}
