@charset "UTF-8";
:root{--ink:#24352e;--green:#344c3f;--cream:#f7f6f2;--line:#e2e4dd;--gold:#b89663;--muted:#7b827b;--primary-color:#344c3f;--secondary-color:#a55042;--tertiary-color:#8d775a}
body{display:block;margin:0;color:var(--ink);background:var(--cream);font:14px/1.5 'Segoe UI',sans-serif;height:100dvh;overflow:auto}button,input,select,textarea{font:inherit}button{cursor:pointer;transition:background .15s,box-shadow .15s}button:disabled{cursor:not-allowed;opacity:.45}button:focus-visible,a:focus-visible{outline:2px solid var(--gold);outline-offset:3px}[hidden]{display:none!important}input,select,textarea{border:1px solid var(--line);border-radius:7px;background:white;padding:10px 12px;color:var(--ink);min-width:0}input[type=checkbox]{accent-color:var(--green)}input:focus,select:focus{outline:2px solid #b9c8b6;outline-offset:1px}h1,h2,h3,p{margin:0}h2{font:32px/1.2 Georgia,serif}h3{font-size:13px;font-weight:600}button.primary,button.secondary,.primary,.secondary{border:1px solid transparent;border-radius:6px;padding:10px 16px;font-size:12px;font-weight:600;display:inline-flex;align-items:center;justify-content:center;gap:16px;white-space:nowrap}.primary{background:var(--green);color:white}.primary:hover{background:#243a2e}.secondary{background:white;color:var(--ink);border-color:var(--line)!important}.secondary:hover{background:#eff1ea}.text-button{border:0;background:transparent;padding:7px;font-size:12px;color:var(--ink)}.danger{color:#aa5346}.muted{color:var(--muted)}.compact{font-size:12px;margin:8px 0 16px}.full-width{width:100%}.eyebrow{font-size:10px;letter-spacing:2.2px;font-weight:600;color:#8c927f}.studio-header{height:87px;padding:0 4%;display:flex;align-items:center;gap:26px;border-bottom:1px solid var(--line);background:#fffdf9}.brand{border:0;background:none;display:flex;align-items:center;gap:12px;color:var(--ink);font:23px Georgia,serif;letter-spacing:4px;text-align:left}.brand-mark{background:var(--green);color:#fffbe9;font:italic 36px Georgia,serif;letter-spacing:-4px;width:43px;height:47px;border-radius:2px;text-align:center;padding-right:6px}.brand small{font:8px 'Segoe UI',sans-serif;letter-spacing:2px;display:block;margin-top:4px}.header-divider{height:28px;width:1px;background:var(--line)}.header-context{font-size:12px}.header-context small{display:block;color:var(--muted);font-size:11px;margin-top:3px}.header-actions{display:flex;gap:12px;align-items:center;margin-left:auto}.connection{font-size:11px;color:#7a8979;margin-right:8px}.connection:before{content:'●';font-size:8px;margin-right:7px}.connection.offline{color:#af6244}#dashboard{max-width:1480px;padding:46px 5% 0;margin:auto}.hero{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:40px;padding:15px 0 50px}.hero h1{font:clamp(38px,4.2vw,64px)/1.13 Georgia,serif;margin:20px 0;color:#304337;letter-spacing:-1.8px}.hero h1 em{font-weight:400;color:#858b74}.hero p{font-size:13px;line-height:1.8;color:var(--muted);margin-bottom:24px}.hero .primary{padding:13px 22px}.hero-notes{display:flex;gap:13px;align-items:center;font-size:10px;color:#8b9187;margin-top:24px}.hero-notes i{width:3px;height:3px;border-radius:50%;background:var(--gold)}.hero-art{min-height:330px;padding:25px 30px;background:#ebece4;position:relative;display:flex;align-items:center;flex-direction:column;justify-content:center;border-radius:2px;overflow:hidden}.hero-art:before{content:'';position:absolute;width:340px;height:340px;border:1px solid #d9dccf;border-radius:50%;right:-100px;top:-140px}.art-label,.art-bottom{font-size:8px;letter-spacing:2px;color:#8c957f;position:relative}.art-label{margin-bottom:35px}.art-bottom{margin-top:35px}.book{display:flex;aspect-ratio:3/1;width:100%;max-width:480px;box-shadow:0 22px 26px -16px #6b776b88;transform:rotate(-6deg);background:#faf9ee;padding:8px}.book-left,.book-right{width:50%;position:relative;display:flex;align-items:center;justify-content:center}.book-left{border-right:1px solid #c6c6b5;background:linear-gradient(90deg,transparent 90%,#b3b3a222)}.book-right{gap:8px;padding:8px}.botanical{width:44%;height:92%;background:#acb39e;display:flex;flex-direction:column;justify-content:center;align-items:center;color:#f8f3de;font:46px Georgia,serif;overflow:hidden}.botanical span:nth-child(2){font-size:65px;margin:-24px 0}.book-caption{width:50%;font:12px Georgia,serif;text-align:center;line-height:1.6}.book-caption em{font-size:16px;color:#899278}.arch{border-radius:80px 80px 0 0;background:#e1d6c2;width:66%;height:100%;display:flex;align-items:center;justify-content:center;text-align:center;font:16px Georgia,serif;line-height:1.4;color:#6d705c}.tiny-caption{writing-mode:vertical-rl;font-size:5px;letter-spacing:2px}.section-top{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);padding:26px 0}.section-top h2{margin-top:6px;font-size:29px;display:flex;gap:12px;align-items:center}.count{font:11px 'Segoe UI',sans-serif;border:1px solid var(--line);border-radius:15px;padding:3px 9px}.section-top input{width:240px;background:transparent}.project-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(245px,1fr));gap:20px;min-height:180px}.project-card{border:1px solid var(--line);border-radius:7px;overflow:hidden;background:#fff;cursor:pointer;text-align:left;padding:0;color:var(--ink)}.project-card:hover{box-shadow:0 8px 24px #30433710;border-color:#b8c2b1}.project-cover{height:132px;background:#e8e9df;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden}.project-cover .mini-book{width:70%;aspect-ratio:3;background:#fffdf4;display:flex;gap:5px;padding:7px;box-shadow:0 8px 18px #33442218;transform:rotate(-4deg)}.mini-book i{flex:1;background:#c3c9b6}.mini-book i:nth-child(2){background:#e1d6c2;flex:1.5}.mini-book i:nth-child(3){background:#b2bbaa}.project-card:nth-child(3n+2) .project-cover{background:#eee6da}.project-card:nth-child(3n+3) .project-cover{background:#e2e7e6}.project-card-body{padding:17px 19px}.project-card h3{font:19px Georgia,serif;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.project-meta{display:flex;justify-content:space-between;margin-top:12px;font-size:10px;color:var(--muted)}.empty-state{grid-column:1/-1;border:1px dashed #cfd4c8;border-radius:8px;padding:36px;text-align:center}.empty-state h3{font:24px Georgia,serif;margin-bottom:8px}.empty-state p{color:var(--muted);font-size:12px;margin-bottom:16px}.dashboard-footer{margin-top:45px;padding:22px 0;border-top:1px solid var(--line);display:flex;justify-content:space-between;font-size:9px;color:#9a9e92;letter-spacing:.8px}.workspace-top{display:flex;justify-content:space-between;align-items:center;height:60px;padding:10px 22px;background:#fffdf9;border-bottom:1px solid var(--line)}.crumb,.workspace-actions{display:flex;align-items:center;gap:12px}.crumb strong{font:17px Georgia,serif;max-width:350px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.size-tag{font-size:8px;letter-spacing:1px;background:#edf0e7;padding:4px 7px;border-radius:3px}#saveStatus{font-size:10px;color:#89917f}#saveStatus.error,.error{color:#b75343}.editor-layout{display:flex;height:calc(100dvh - 147px);min-height:510px}.library-sidebar{width:250px;flex-shrink:0;background:#fffdf9;border-right:1px solid var(--line);overflow-y:auto;padding:0 17px 20px}.library-tabs{display:flex;margin:0 -17px 14px;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:2;background:#fffdf9}.library-tabs button{flex:1;border:0;background:none;padding:15px;font-size:12px;color:var(--muted);border-bottom:2px solid transparent}.library-tabs button.active{color:var(--ink);border-bottom-color:var(--green)}.sidebar-heading{display:flex;align-items:center;justify-content:space-between;margin:12px 0}.sidebar-heading h3 span{font-size:10px;color:var(--muted);margin-left:6px}.icon-button{border:1px solid var(--line);background:transparent;border-radius:5px;min-width:30px;height:30px;color:var(--ink);font-size:18px}.upload-zone{width:100%;border:1px dashed #ccd3c2;border-radius:6px;background:#f5f7f0;display:flex;align-items:center;flex-direction:column;padding:16px 8px;color:var(--ink);margin-bottom:15px}.upload-zone>span{font-size:24px}.upload-zone strong{font-size:11px;font-weight:500}.upload-zone small{font-size:9px;color:var(--muted);margin-top:6px;line-height:1.6}.upload-zone.dragover{background:#e0e8d8;border-color:var(--green)}#photoSearch,#templateCategory{width:100%;font-size:11px;padding:8px;margin:5px 0}.check-label{display:flex;gap:7px;align-items:center;color:var(--muted);font-size:10px;margin:10px 0}.photo-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.photo-tile{border:1px solid var(--line);background:#f0f0e9;padding:0;position:relative;border-radius:4px;overflow:hidden;aspect-ratio:1;min-width:0}.photo-tile img{width:100%;height:100%;object-fit:cover;display:block}.photo-tile .used-badge{position:absolute;bottom:3px;right:3px;background:#304d36cc;color:white;border-radius:3px;padding:0 4px;font-size:9px}.photo-tile.selected{outline:3px solid var(--green);outline-offset:-3px}.photo-tile.selected:after{content:attr(data-order);position:absolute;top:5px;left:5px;background:var(--green);color:white;min-width:22px;height:22px;border-radius:50%;font-size:11px;display:grid;place-items:center}.photo-empty{grid-column:1/-1;text-align:center;font-size:11px;padding:25px 5px;color:var(--muted)}.upload-status{font-size:10px;margin-bottom:10px}.upload-status strong{font-weight:500;overflow-wrap:anywhere}progress{width:100%;height:7px;accent-color:var(--green);margin:8px 0}.design-column{flex:1;min-width:0;display:flex;flex-direction:column;background:#eeefe9;position:relative}.design-toolbar{display:flex;justify-content:space-between;gap:10px;padding:12px 15px;border-bottom:1px solid #dce0d5;background:#fafbf6;flex-wrap:wrap}.design-toolbar>div{display:flex;gap:6px;align-items:center}.design-toolbar button{font-size:10px;padding:7px 10px}.background-control{display:flex;align-items:center;gap:5px;font-size:10px;color:var(--muted)}input[type=color]{width:23px;height:23px;border:0;background:transparent;padding:0;cursor:pointer}.canvas-label{display:flex;justify-content:space-between;gap:10px;padding:16px 22px;font-size:8px;letter-spacing:1.5px;color:#8c9486;align-items:center}.canvas-label i{margin:0 12px;color:#b9c0b0}.canvas-label label{display:flex;align-items:center;gap:5px;letter-spacing:0}.canvas-label input{width:11px;height:11px}#workspace #app{position:relative;min-height:100px;flex:1;overflow:hidden}#toolbox{display:none}#main-content{min-width:0}#canvas-area{background:transparent;overflow:auto;display:flex;align-items:center;justify-content:center;padding:22px;min-height:100px}#canvas-container{box-shadow:0 6px 20px #2e402b18;flex-shrink:0;position:relative;transform-origin:center}#myCanvas{display:block;touch-action:none;background:white}#canvas-container.guides:after{content:'';position:absolute;left:50%;top:0;bottom:0;border-left:1px dashed #c9996899;pointer-events:none}#canvas-container.guides:before{content:'';position:absolute;inset:2.0833% .69444%;border:1px dashed #96ac8d66;pointer-events:none;z-index:1}#status-bar{background:transparent;border:0;font-size:8px;color:#939a8e;padding:8px 20px}#bottom-panel{padding:8px 14px;background:transparent;border:0;min-height:0;gap:6px}#bottom-panel button{font-size:10px;padding:5px 10px;color:var(--ink);border-color:#d4dace}#bottom-panel>.file-input-wrapper,#saveBtn,#saveProjectBtn{display:none}#bottom-panel #addRectBtn,#bottom-panel #addCircleBtn,#bottom-panel #deleteBtn{display:none}#right-panel{display:none;position:absolute;right:0;top:0;bottom:0;width:260px;z-index:8;background:#fffefa;border-left:1px solid var(--line);box-shadow:-8px 0 20px #3043370d;font-size:12px}#right-panel.open{display:block}.zoom-controls{bottom:8px;right:15px;box-shadow:none;border:1px solid var(--line);border-radius:4px}.zoom-btn{font-size:12px;width:27px;height:27px}.zoom-separator{height:13px}.sheet-bottom{display:flex;gap:10px;padding:4px 18px 10px;align-items:center;font-size:10px;color:#8a9284}.sheet-bottom>span{margin-right:auto}.sheet-bottom button{font-size:9px;white-space:nowrap}.filmstrip-bar{background:#fbfcf7;border-top:1px solid #dce0d5;display:flex;align-items:center;gap:16px;padding:13px 17px;min-height:105px}.filmstrip-title{min-width:90px;font-size:10px}.filmstrip-title small{display:block;font-size:9px;color:var(--muted);margin-top:4px}.page-strip{display:flex;gap:10px;overflow:auto;padding:3px 2px 8px;flex:1}.page-tile{flex-shrink:0;width:120px;border:1px solid #dce1d2;border-radius:3px;background:white;padding:4px;color:#859078;font-size:9px}.page-tile.active{outline:2px solid var(--green);outline-offset:1px;color:var(--ink)}.page-tile svg{display:block;width:100%;aspect-ratio:3;background:white;margin-bottom:4px}.page-actions{display:flex;flex-direction:column;align-items:center;flex-shrink:0}.page-actions button{font-size:9px}.page-actions .icon-button{font-size:20px}.template-grid{display:flex;flex-direction:column;gap:12px;margin-top:14px}.template-card{border:1px solid var(--line);background:white;text-align:left;padding:8px;border-radius:5px;color:var(--ink)}.template-card svg{width:100%;aspect-ratio:3;display:block;background:#f9f8f1}.template-card>span{display:block;font-size:10px;margin-top:8px}.template-card small{font-size:9px;color:var(--muted)}dialog{border:1px solid var(--line);border-radius:12px;padding:30px;width:460px;max-width:calc(100vw - 24px);max-height:90dvh;overflow:auto;color:var(--ink);background:#fffefa;margin:auto;box-shadow:0 25px 100px #17271733}dialog::backdrop{background:#24332b88;backdrop-filter:blur(4px)}.dialog-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.dialog-close{border:0;background:none;color:var(--muted);font-size:25px;width:30px;height:30px;display:grid;place-items:center}.dialog-heading h2{font-size:25px}dialog>p,dialog form>p{font-size:12px;margin:12px 0 22px}dialog label:not(.check-label){font-size:11px;display:flex;flex-direction:column;gap:7px;margin:18px 0}dialog h2{font-size:32px}dialog .form-row{display:flex;gap:15px}.form-row>label{flex:1;min-width:0}.info-box{padding:14px;background:#f0f3e9;border:1px solid #e3e8d9;border-radius:6px;font-size:11px;color:#7a846b;line-height:1.7;margin:15px 0 22px}dialog .primary.full-width{margin-top:8px}#createError{margin:8px 0 0;font-size:11px}.wide-dialog{width:900px}.picker-tools{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:15px 0}.picker-tools input[type=search]{flex:1}.picker-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:10px;max-height:40dvh;overflow:auto;padding:3px}.picker-grid .photo-tile{aspect-ratio:.9}.picker-grid .photo-tile small{position:absolute;bottom:0;left:0;right:0;padding:4px;background:#0009;color:white;font-size:8px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dialog-footer{display:flex;justify-content:space-between;align-items:center;gap:10px;border-top:1px solid var(--line);padding-top:16px;margin-top:20px;font-size:12px}.picked-order{display:flex;gap:8px;overflow:auto;margin:12px 0}.picked-chip{background:#ecf0e4;border:1px solid #d6deca;padding:5px 8px;white-space:nowrap;font-size:10px;border-radius:4px}.export-spec{margin:23px 0;background:#edf0e6;padding:20px;display:flex;align-items:center;gap:25px;border-radius:6px}.export-spec strong{font:35px Georgia,serif}.export-spec span{font-size:11px;color:#7d896f}.export-results{display:flex;flex-direction:column;gap:8px;margin:15px 0}.export-results a{color:var(--green);background:#edf1e8;padding:10px;border-radius:5px;text-decoration:none;font-size:12px}.help-list{padding-left:19px;margin:20px 0}.help-list li{padding-left:4px;margin:14px 0;font-size:12px;color:var(--muted)}.help-list strong{color:var(--ink)}#toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%) translateY(100px);opacity:0;transition:.2s;z-index:10000;background:#263c2f;color:white;padding:12px 24px;border-radius:7px;box-shadow:0 8px 30px #0002;font-size:12px;max-width:90vw;text-align:center;pointer-events:none}#toast.visible{transform:translateX(-50%) translateY(0);opacity:1}.modal{z-index:20}.modal-content{max-height:85dvh;overflow:auto}.numeric-controls{padding:12px;border-bottom:1px solid var(--line)}.numeric-controls h3{margin-bottom:10px}.numeric-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.numeric-grid label{font-size:9px;display:flex;flex-direction:column;gap:3px}.numeric-grid input{width:100%;padding:5px;font-size:11px}.numeric-controls button{margin-top:8px;font-size:10px}.numeric-controls textarea{width:100%;font-size:12px;margin-top:6px;min-height:60px}.exporting #workspace{pointer-events:none;opacity:.7}#simpleInput{width:100%}#simpleExtra{margin:10px 0}.page-options{display:grid;grid-template-columns:1fr 1fr;gap:10px}.page-options button{white-space:normal}
@media(min-width:1650px){.library-sidebar{width:290px}.photo-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:1100px){.header-context{display:none}.library-sidebar{width:210px}.design-toolbar{padding:10px}.design-toolbar button{padding:6px 8px}.background-control{font-size:0}.crumb strong{max-width:220px}.size-tag{display:none}.hero{gap:30px}.hero-art{min-height:290px;padding:20px}.filmstrip-title{display:none}}
@media(max-width:760px){.studio-header{height:64px;padding:0 16px;gap:10px}.brand{font-size:19px;gap:9px}.brand-mark{width:32px;height:36px;font-size:28px}.brand small{font-size:6px}.header-divider,.connection{display:none}.header-actions{gap:7px}.header-actions button{padding:8px 10px;font-size:10px}#dashboard{padding:25px 20px 0}.hero{grid-template-columns:1fr;padding:10px 0 25px;gap:25px}.hero h1{font-size:43px}.hero-art{min-height:215px;max-width:500px;width:100%;margin:auto;padding:20px 35px}.art-label{margin-bottom:20px}.art-bottom{margin-top:20px}.hero-notes{margin-top:16px}.section-top{gap:15px;align-items:flex-end}.section-top input{width:150px;font-size:11px}.section-top h2{font-size:25px}.project-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.project-cover{height:100px}.project-card-body{padding:12px}.project-card h3{font-size:16px}.project-meta{font-size:8px;gap:5px}.dashboard-footer span:last-child{display:none}.dashboard-footer{font-size:8px;gap:15px}.workspace-top{height:auto;min-height:64px;padding:8px 12px;gap:5px;flex-wrap:wrap}.crumb{gap:6px}.crumb strong{font-size:15px;max-width:165px}.workspace-actions{gap:7px}.workspace-actions button{font-size:10px;padding:7px 10px}#saveStatus{font-size:8px}.editor-layout{height:auto;min-height:0;flex-direction:column-reverse}.design-column{min-height:480px;height:calc(100dvh - 130px)}.library-sidebar{width:100%;border-top:1px solid var(--line);border-right:0;max-height:430px}.library-tabs{margin-bottom:8px}.upload-zone{padding:8px;flex-direction:row;gap:14px;justify-content:center}.upload-zone small{margin:0}.photo-grid{grid-template-columns:repeat(6,minmax(0,1fr))}.design-toolbar{gap:7px;padding:8px}.design-toolbar>div{gap:4px}.design-toolbar button{font-size:9px;padding:6px 7px}.canvas-label{font-size:7px;padding:12px}.canvas-label i{margin:0 4px}.canvas-label span:nth-child(2){letter-spacing:.5px}#canvas-area{padding:14px}#right-panel{width:245px}.sheet-bottom{padding:2px 9px;font-size:8px;flex-wrap:wrap;gap:0}.sheet-bottom>span{width:100%}.filmstrip-bar{padding:10px;gap:7px;min-height:86px}.page-tile{width:96px}.page-actions .text-button{max-width:45px;font-size:8px;padding:4px}.picker-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.picker-tools{gap:8px}.picker-tools input[type=search]{width:100%;flex-basis:100%}dialog{padding:22px}.picker-tools button{font-size:10px;padding:8px}.template-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.template-card svg{max-height:100px}#status-bar{font-size:7px;padding:5px 10px}#bottom-panel{padding:5px 10px}.zoom-controls{right:8px;bottom:3px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}
.page-tile img{display:block;width:100%;aspect-ratio:3;object-fit:contain;margin-bottom:4px}
@media(max-width:760px){.design-column{height:auto;min-height:565px}#workspace #app{min-height:225px}.design-toolbar button{min-height:34px}.zoom-btn{min-height:32px;min-width:32px}.studio-header button{min-height:34px}.numeric-controls input,.numeric-controls select{min-height:34px}#status-bar{white-space:nowrap;overflow:hidden}#cursorPos{display:none}.sheet-bottom .text-button{min-height:32px}}
