@font-face{font-family:Fraunces;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/fraunces-latin-600-normal-BFCDtZfi.woff2)format("woff2"),url(/assets/fraunces-latin-600-normal-DL5QCzvS.woff)format("woff")}@font-face{font-family:Fraunces;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/fraunces-latin-700-normal-CEOla-zY.woff2)format("woff2"),url(/assets/fraunces-latin-700-normal-DTjk5d1Q.woff)format("woff")}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-latin-400-normal-C38fXH4l.woff2)format("woff2"),url(/assets/inter-latin-400-normal-CyCys3Eg.woff)format("woff")}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-latin-500-normal-Cerq10X2.woff2)format("woff2"),url(/assets/inter-latin-500-normal-BL9OpVg8.woff)format("woff")}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-latin-600-normal-LgqL8muc.woff2)format("woff2"),url(/assets/inter-latin-600-normal-CiBQ2DWP.woff)format("woff")}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/inter-latin-700-normal-Yt3aPRUw.woff2)format("woff2"),url(/assets/inter-latin-700-normal-BLAVimhd.woff)format("woff")}@font-face{font-family:PBChewy;src:url(/assets/Chewy-Regular-9N2Sbd9b.ttf)format("truetype");font-weight:400;font-display:swap}@font-face{font-family:PBLato;src:url(/assets/Lato-Regular-LMT6Cjo-.ttf)format("truetype");font-weight:400;font-display:swap}@font-face{font-family:PBLato;src:url(/assets/Lato-Bold-CJbL-VvX.ttf)format("truetype");font-weight:700;font-display:swap}@font-face{font-family:PBBaskerville;src:url(/assets/LibreBaskerville-Regular-CIzG9Xby.ttf)format("truetype");font-weight:400;font-display:swap}@font-face{font-family:PBBaskerville;src:url(/assets/LibreBaskerville-Bold-DXi18xHf.ttf)format("truetype");font-weight:700;font-display:swap}@font-face{font-family:PBAtkinson;src:url(/assets/AtkinsonHyperlegible-Regular-ycu_OfBo.ttf)format("truetype");font-weight:400;font-display:swap}@font-face{font-family:PBAtkinson;src:url(/assets/AtkinsonHyperlegible-Bold-DND0wAMM.ttf)format("truetype");font-weight:700;font-display:swap}:root{--paper:#faf6ee;--paper-2:#f3ecdd;--card:#fffdf8;--ink:#22303f;--ink-soft:#5b6672;--ink-faint:#8b94a0;--line:#e4dcc9;--line-strong:#cfc5ac;--accent:#c94f2e;--accent-dark:#a83e21;--accent-soft:#fbe9e2;--gold:#b98a2e;--green:#4e7c59;--green-soft:#e7f0e9;--danger:#b3402e;--radius:10px;--radius-lg:16px;--shadow:0 1px 2px #22303f0f, 0 4px 16px #22303f12;--shadow-lg:0 4px 12px #22303f1a, 0 16px 48px #22303f29;--font-display:"Fraunces", Georgia, serif;--font-ui:"Inter", system-ui, -apple-system, sans-serif}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--paper);color:var(--ink);font-family:var(--font-ui);-webkit-font-smoothing:antialiased;margin:0;font-size:14px;line-height:1.5}h1,h2,h3,h4{font-family:var(--font-display);margin:0;font-weight:600;line-height:1.2}button{font-family:var(--font-ui);cursor:pointer}input,select,textarea{font-family:var(--font-ui);color:var(--ink);border:1px solid var(--line-strong);background:#fff;border-radius:8px;outline:none;padding:7px 10px;font-size:13px;transition:border-color .15s,box-shadow .15s}input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px #c94f2e1f}input[type=checkbox]{accent-color:var(--accent);width:15px;height:15px;padding:0}.app{flex-direction:column;height:100%;display:flex}.topbar{background:var(--card);border-bottom:1px solid var(--line);flex-shrink:0;align-items:center;gap:18px;height:54px;padding:0 18px;display:flex}.brand{font-family:var(--font-display);color:var(--ink);-webkit-user-select:none;user-select:none;align-items:center;gap:9px;font-size:18px;font-weight:700;text-decoration:none;display:flex}.brand-mark{background:var(--accent);color:#fff;width:28px;height:28px;font-size:15px;font-family:var(--font-display);border-radius:7px;place-items:center;font-weight:700;display:grid}.topnav{gap:4px;display:flex}.topnav button{color:var(--ink-soft);background:0 0;border:none;border-radius:8px;padding:7px 12px;font-size:13.5px;font-weight:500}.topnav button:hover{background:var(--paper-2);color:var(--ink)}.topnav button.active{background:var(--paper-2);color:var(--ink);font-weight:600}.topbar-right{align-items:center;gap:10px;margin-left:auto;display:flex}.badge{letter-spacing:.06em;text-transform:uppercase;border-radius:999px;padding:3px 9px;font-size:11px;font-weight:700}.badge.free{background:var(--paper-2);color:var(--ink-soft);border:1px solid var(--line-strong)}.badge.pro{background:var(--green-soft);color:var(--green);border:1px solid #c4d9ca}.btn{border:1px solid var(--line-strong);background:var(--card);color:var(--ink);white-space:nowrap;border-radius:9px;justify-content:center;align-items:center;gap:7px;padding:8px 14px;font-size:13.5px;font-weight:600;transition:all .15s;display:inline-flex}.btn:hover{border-color:var(--ink-faint);box-shadow:var(--shadow);transform:translateY(-1px)}.btn:disabled{opacity:.5;pointer-events:none}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn.primary:hover{background:var(--accent-dark);border-color:var(--accent-dark)}.btn.ghost{color:var(--ink-soft);background:0 0;border-color:#0000}.btn.ghost:hover{background:var(--paper-2);color:var(--ink);box-shadow:none;transform:none}.btn.small{border-radius:7px;padding:5px 10px;font-size:12.5px}.btn.danger{color:var(--danger)}.btn.gold{color:#fff;background:linear-gradient(135deg,#d9a439,#b98a2e);border-color:#b98a2e}.library{flex:1;padding:34px clamp(20px,6vw,80px) 80px;overflow-y:auto}.library-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:26px;display:flex}.library-head h1{font-size:30px}.library-head p{color:var(--ink-soft);margin:6px 0 0}.tpl-grid{grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:14px;margin-bottom:40px;display:grid}.tpl-card{text-align:left;background:var(--card);border:1px solid var(--line);border-radius:var(--radius-lg);flex-direction:column;gap:6px;padding:18px;transition:all .15s;display:flex}.tpl-card:hover{border-color:var(--accent);box-shadow:var(--shadow);transform:translateY(-2px)}.tpl-card .tpl-emoji{font-size:22px}.tpl-card h3{font-size:16px}.tpl-card p{color:var(--ink-soft);margin:0;font-size:12.5px}.tpl-card.sample{background:linear-gradient(135deg,#fdf3ec,#fbe9e2);border-color:#eccdbf}.proj-list{flex-direction:column;gap:10px;display:flex}.proj-row{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);align-items:center;gap:16px;padding:14px 18px;transition:border-color .15s,box-shadow .15s;display:flex}.proj-row:hover{border-color:var(--line-strong);box-shadow:var(--shadow)}.proj-title{text-align:left;color:var(--ink);font-size:15px;font-weight:600;font-family:var(--font-ui);background:0 0;border:none;padding:0}.proj-title:hover{color:var(--accent)}.proj-meta{color:var(--ink-faint);font-size:12px}.proj-actions{gap:6px;margin-left:auto;display:flex}.section-label{letter-spacing:.09em;text-transform:uppercase;color:var(--ink-faint);margin:0 0 12px;font-size:12px;font-weight:700}.editor{flex:1;grid-template-columns:268px 1fr 292px;min-height:0;display:grid}.panel{background:var(--card);min-height:0;overflow-y:auto}.panel.left{border-right:1px solid var(--line);padding:14px}.panel.right{border-left:1px solid var(--line);padding:16px}.editor-center{background:var(--paper-2);flex-direction:column;min-width:0;min-height:0;display:flex}.editor-toolbar{border-bottom:1px solid var(--line);background:var(--card);align-items:center;gap:10px;padding:10px 16px;display:flex}.editor-toolbar .book-name{background:0 0;border:1px solid #0000;border-radius:7px;min-width:120px;max-width:320px;padding:5px 8px;font-size:14.5px;font-weight:700}.editor-toolbar .book-name:hover{border-color:var(--line-strong);background:#fff}.editor-toolbar .book-name:focus{border-color:var(--accent);background:#fff}.page-info{color:var(--ink-faint);font-size:12.5px}.preview-wrap{flex:1;justify-content:center;align-items:center;min-height:0;padding:24px;display:flex;overflow:auto}.preview-page{box-shadow:var(--shadow-lg);background:#fff;border-radius:3px;flex-shrink:0;overflow:hidden}.preview-page svg{width:100%;height:100%;display:block}.preview-nav{background:var(--card);border-top:1px solid var(--line);justify-content:center;align-items:center;gap:14px;padding:10px;display:flex}.preview-nav .counter{color:var(--ink-soft);text-align:center;min-width:130px;font-size:12.5px}.tree-section{border:1px solid var(--line);border-radius:var(--radius);background:#fff;margin-bottom:12px;overflow:hidden}.tree-section-head{background:var(--paper-2);cursor:pointer;text-align:left;width:100%;color:var(--ink);border:none;align-items:center;gap:6px;padding:8px 10px;font-size:13px;font-weight:650;display:flex}.tree-section-head:hover{background:var(--line)}.tree-section-head .count{color:var(--ink-faint);margin-left:auto;font-size:11.5px;font-weight:500}.tree-puzzles{max-height:300px;overflow-y:auto}.tree-puzzle{width:100%;color:var(--ink-soft);text-align:left;border:none;border-top:1px solid var(--paper-2);background:0 0;align-items:center;gap:8px;padding:6px 10px;font-size:12.5px;display:flex}.tree-puzzle:hover{background:var(--accent-soft);color:var(--ink)}.tree-puzzle.selected{background:var(--accent-soft);color:var(--accent-dark);font-weight:600}.tree-puzzle .pnum{font-variant-numeric:tabular-nums;color:var(--ink-faint);min-width:22px;font-size:11px}.type-chip{text-transform:uppercase;letter-spacing:.04em;background:var(--paper-2);color:var(--ink-faint);border-radius:5px;flex-shrink:0;margin-left:auto;padding:1px 6px;font-size:10px;font-weight:700}.add-row{gap:8px;margin-top:10px;display:flex}.inspector h3{margin-bottom:4px;font-size:16px}.inspector .sub{color:var(--ink-faint);margin:0 0 14px;font-size:12px}.field{margin-bottom:12px}.field label{letter-spacing:.04em;text-transform:uppercase;color:var(--ink-faint);margin-bottom:4px;font-size:11.5px;font-weight:650;display:block}.field input[type=text],.field input[type=number],.field select,.field textarea{width:100%}.field textarea{resize:vertical;min-height:90px;font-size:12.5px;line-height:1.5}.field .hint{color:var(--ink-faint);margin-top:3px;font-size:11.5px}.check-row{align-items:center;gap:8px;margin-bottom:8px;font-size:13px;display:flex}.seg{border:1px solid var(--line-strong);border-radius:8px;display:flex;overflow:hidden}.seg button{color:var(--ink-soft);border:none;border-right:1px solid var(--line);background:#fff;flex:1;padding:6px 4px;font-size:12px;font-weight:600}.seg button:last-child{border-right:none}.seg button.on{background:var(--ink);color:#fff}.divider-line{border:none;border-top:1px solid var(--line);margin:16px 0}.modal-backdrop{z-index:60;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#22303f73;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.modal{background:var(--card);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);flex-direction:column;width:min(680px,100%);max-height:88vh;display:flex;overflow:hidden}.modal.narrow{width:min(460px,100%)}.modal-head{align-items:center;padding:18px 22px 0;display:flex}.modal-head h2{font-size:20px}.modal-head .x{color:var(--ink-faint);background:0 0;border:none;border-radius:7px;margin-left:auto;padding:4px 8px;font-size:20px}.modal-head .x:hover{background:var(--paper-2);color:var(--ink)}.modal-body{padding:14px 22px 22px;overflow-y:auto}.modal-foot{border-top:1px solid var(--line);background:var(--paper);justify-content:flex-end;gap:10px;padding:14px 22px;display:flex}.type-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;display:grid}.type-card{border:1px solid var(--line);border-radius:var(--radius);text-align:left;background:#fff;flex-direction:column;gap:3px;padding:13px;transition:all .13s;display:flex}.type-card:hover{border-color:var(--accent);box-shadow:var(--shadow)}.type-card .t-emoji{font-size:20px}.type-card .t-name{font-size:13.5px;font-weight:650}.type-card .t-desc{color:var(--ink-faint);font-size:11.5px;line-height:1.35}.theme-pick{border:1px solid var(--line-strong);border-radius:var(--radius);background:#fff;max-height:220px;overflow-y:auto}.theme-cat{text-transform:uppercase;letter-spacing:.07em;color:var(--ink-faint);background:#fff;padding:8px 10px 3px;font-size:11px;font-weight:700;position:sticky;top:0}.theme-item{cursor:pointer;align-items:center;gap:8px;padding:5px 10px;font-size:13px;display:flex}.theme-item:hover{background:var(--accent-soft)}.theme-item .wc{color:var(--ink-faint);margin-left:auto;font-size:11px}.form-grid{grid-template-columns:1fr 1fr;gap:0 16px;display:grid}.progress{background:var(--paper-2);border-radius:99px;height:8px;margin:10px 0;overflow:hidden}.progress>div{background:var(--accent);border-radius:99px;height:100%;transition:width .2s}.warn-box{color:#7a6420;border-radius:var(--radius);background:#fdf6e3;border:1px solid #ecdfb5;margin-bottom:10px;padding:10px 12px;font-size:12.5px}.ok-box{background:var(--green-soft);color:var(--green);border-radius:var(--radius);border:1px solid #c4d9ca;margin-bottom:10px;padding:10px 12px;font-size:12.5px}.err-box{color:var(--danger);border-radius:var(--radius);background:#fbe9e6;border:1px solid #eec5bd;margin-bottom:10px;padding:10px 12px;font-size:12.5px}.quick{flex:1;grid-template-columns:330px 1fr;min-height:0;display:grid}.quick-form{background:var(--card);border-right:1px solid var(--line);padding:20px;overflow-y:auto}.quick-form h2{margin-bottom:2px;font-size:20px}.quick-form .sub{color:var(--ink-soft);margin:0 0 16px;font-size:12.5px}.quick-preview{background:var(--paper-2);flex-direction:column;justify-content:center;align-items:center;min-height:0;padding:24px;display:flex;overflow:auto}.upsell{border-radius:var(--radius);background:linear-gradient(135deg,#fdf3ec,#fbe9e2);border:1px solid #eccdbf;margin-top:18px;padding:14px;font-size:12.5px}.upsell strong{margin-bottom:4px;font-size:13.5px;display:block}.help{flex:1;padding:36px clamp(20px,10vw,140px) 100px;overflow-y:auto}.help h1{margin-bottom:4px;font-size:28px}.help h2{margin:28px 0 8px;font-size:19px}.help p,.help li{color:var(--ink-soft);max-width:720px;font-size:14px}.help code{background:var(--paper-2);border-radius:5px;padding:1px 6px;font-size:12.5px}.kbd{border:1px solid var(--line-strong);font-size:12px;font-family:var(--font-ui);background:#fff;border-bottom-width:2px;border-radius:5px;padding:0 6px}.boot{height:100%;color:var(--ink-soft);flex-direction:column;justify-content:center;align-items:center;gap:14px;display:flex}.boot .brand-mark{border-radius:11px;width:44px;height:44px;font-size:24px;animation:1.2s ease-in-out infinite bootpulse}.boot-logo{animation:1.2s ease-in-out infinite bootpulse}@keyframes bootpulse{50%{transform:scale(1.08)}}.empty-state{text-align:center;color:var(--ink-faint);padding:30px 10px;font-size:13px}@media (width<=1080px){.editor{grid-template-columns:230px 1fr 250px}}@media (width<=860px){.editor{grid-template-rows:auto 1fr;grid-template-columns:1fr}.panel.right{display:none}.panel.left{border-right:none;border-bottom:1px solid var(--line);max-height:260px}.quick{grid-template-columns:1fr}.quick-form{border-right:none;border-bottom:1px solid var(--line)}}
