@font-face{font-family:Milonga;src:url(assets/milonga.woff2)}@font-face{font-family:Linden;src:url(assets/linden.woff2)}:root{--accent:#526a58;--bg:#f5f6f3;--border:#e6e9e2;--muted:#858d80;--ink:#2f3b31}*{box-sizing:border-box}body{margin:0;color:var(--ink);font:13px/1.5 Arial,sans-serif;background:var(--bg)}button,input,select,textarea{font:inherit}button{cursor:pointer;border:1px solid var(--border);background:#fff;color:var(--ink);padding:9px 12px;border-radius:7px;transition:background .15s,box-shadow .15s}button:hover{background:#eef2e9}button:disabled{opacity:.35;cursor:default}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid #97aa80;outline-offset:2px}.primary{background:var(--accent);border-color:var(--accent);color:#fff}.primary:hover{background:#3d5544}.secondary{background:#f9faf7}.danger{color:#b05c4c}.full{width:100%;margin:8px 0}.topbar{height:74px;background:white;display:flex;align-items:center;gap:14px;padding:0 25px;border-bottom:1px solid var(--border);position:relative;z-index:20}.brand{font:31px Georgia;color:#354b3d;text-decoration:none;letter-spacing:-2px}.brand span{font:26px Georgia;color:#ad8f59;margin-left:3px}.project-title{border-left:1px solid var(--border);margin-left:22px;padding-left:25px;display:flex;flex-direction:column;gap:3px}.project-title strong{font-size:13px;font-weight:500}.project-title span{font-size:10px;color:var(--muted)}.history{margin-left:auto;display:flex;gap:4px}.history button{border:0;font-size:21px;padding:3px 9px}.workspace{display:grid;grid-template-columns:258px minmax(330px,1fr) 270px;height:calc(100dvh - 74px)}.sidebar{background:white;overflow-y:auto;scrollbar-width:thin}.left-panel{border-right:1px solid var(--border)}.right-panel{border-left:1px solid var(--border);padding:4px 19px 24px}.tabs{display:flex;padding:15px 12px 0;border-bottom:1px solid var(--border);gap:3px}.tabs button{font-size:11px;border:0;border-radius:0;padding:10px 7px 15px;color:var(--muted)}.tabs .active{border-bottom:2px solid var(--accent);color:var(--ink)}.tab-body{padding:14px 17px 25px}.panel-heading{display:flex;align-items:center;justify-content:space-between;font-size:10px;letter-spacing:1.4px;font-weight:600;margin:18px 0 13px}.panel-heading button{border:0;padding:0 5px;font-size:18px}.panel-heading small{font-size:9px;font-weight:400;letter-spacing:0;color:var(--muted)}.section-item{width:100%;display:flex;align-items:center;text-align:left;gap:11px;margin:6px 0;padding:11px 10px;border-color:transparent;background:#fafbf8}.section-item.active{border-color:#c4d0b9;background:#eef3e8}.section-item .number{font-size:10px;color:#8c977e}.section-item .section-name{flex:1}.section-item small{font-size:10px;color:var(--muted)}.add-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px}.add-grid button{font:21px Georgia;padding:14px 4px 10px;background:#fafbf8}.add-grid span{display:block;font:10px Arial;margin-top:7px}.layer{display:flex;align-items:center;gap:8px;padding:9px 7px;border:1px solid transparent;border-radius:6px;cursor:pointer;margin-bottom:3px}.layer.active{background:#eef3e8;border-color:#d9e2d1}.layer .layer-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:11px}.layer .layer-icon{color:#929d88;width:18px}.layer small{font-size:10px;color:var(--muted)}.tip{font-size:11px;color:var(--muted);line-height:1.7;border-top:1px solid var(--border);padding-top:18px;margin-top:20px}.tab-body h2{font:26px/1.3 Georgia;margin:12px 0 20px}.muted{color:var(--muted);font-size:11px;line-height:1.8}.info{background:#f3f5ed;color:#6e7b63;font-size:11px;line-height:1.8;padding:12px;border-radius:7px;margin:16px 0}label{display:block;color:#697261;font-size:11px;margin:12px 0}input,select,textarea{display:block;width:100%;border:1px solid #e1e5da;border-radius:5px;background:#fcfdfb;color:#354431;padding:9px;margin-top:6px}textarea{resize:vertical;line-height:1.6}input[type=color]{height:35px;padding:3px}input[type=checkbox]{display:inline-block;width:auto}.checkbox{display:flex;align-items:center;gap:8px}.checkbox input{margin:0}.field-grid,.action-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 9px}.action-grid{gap:7px;margin:18px 0}.action-grid button{font-size:10px}.selected-type{font-size:11px;color:var(--accent);padding:10px;background:#f1f4ec;border-radius:5px}.section-properties{border-top:1px solid var(--border);margin-top:25px}.selection-icon{font-size:35px;color:#a5b296;margin:35px 0 18px}#empty-properties{text-align:center;padding:10px 5px 30px}#empty-properties h3{font:20px Georgia}#empty-properties p{font-size:11px;color:var(--muted);line-height:1.8}.stage{min-width:0;display:flex;flex-direction:column;background:#edf0e9}.stage-toolbar{height:58px;flex:none;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:0 20px;background:#f9faf7;border-bottom:1px solid var(--border);font-size:11px}.stage-toolbar>div{display:flex;align-items:center;gap:8px}.stage-toolbar strong{font-size:11px;font-weight:500}.stage-toolbar button{font-size:10px;padding:6px 9px}.stage-toolbar select{font-size:10px;padding:6px;width:63px;margin:0}.status-dot{width:6px;height:6px;border-radius:50%;background:#99ad82}.desktop-label{color:var(--muted);font-size:9px;margin-left:9px}.canvas-scroll{overflow:auto;flex:1;padding:35px 15px 20px;background-image:radial-gradient(#b8c1b680 .7px,transparent .7px);background-size:14px 14px}.canvas-wrap{position:relative;margin:auto;box-shadow:0 14px 45px #3d4f3a16;width:312px;height:624px}#canvas{width:390px;height:780px;position:absolute;top:0;left:0;transform:scale(.8);transform-origin:top left;overflow:hidden;background:#faf6ed}.canvas-caption{text-align:center;font-size:8px;color:#98a18e;letter-spacing:1.1px;margin-top:25px}.canvas-caption span{margin:0 9px}.stage-footer{height:35px;flex:none;background:#f9faf7;border-top:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;padding:0 18px;font-size:9px;color:var(--muted)}.element{position:absolute;touch-action:none;cursor:move;user-select:none;outline:1px solid transparent}.element:hover{outline:1px solid #7c9b6b88}.element.selected{outline:1.5px solid #6c9260;z-index:1000!important}.element.selected::after{content:'';position:absolute;right:-4px;bottom:-4px;width:7px;height:7px;background:#fff;border:1px solid #6c9260}.element.locked{cursor:default}.element .visual{width:100%;height:100%;transform-origin:center;pointer-events:none}.element img{width:100%;height:100%;object-fit:contain;display:block;pointer-events:none}.element .text{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.35}.moon{border-radius:50%;background:#dd9e6e;box-shadow:inset -15px -8px 0 #c57c5e}.shape{border-radius:50%;background:#c0c8af}.arch-shape{border-radius:50% 50% 0 0;background:#b97257;border:12px solid #d5b18b}.sunburst{border:2px solid #b5a077;border-radius:50%;background:repeating-conic-gradient(from 0deg,#d4b788 0deg 1deg,transparent 1deg 12deg);mask:radial-gradient(transparent 45%,#000 46%)}.hills{border-radius:50% 50% 0 0;background:#334c58;box-shadow:0 -14px 0 #73817c,0 -27px 0 #a7ada0}.loop-sway{animation:sway var(--motion-period,8s) ease-in-out infinite alternate}.loop-float{animation:float var(--motion-period,7s) ease-in-out infinite alternate}.loop-flutter{animation:flutter 2s ease-in-out infinite alternate}@keyframes sway{from{transform:rotate(calc(var(--sway-angle,2deg) * -1))}to{transform:rotate(var(--sway-angle,2deg))}}@keyframes float{from{transform:translateY(-7px)}to{transform:translateY(9px)}}@keyframes flutter{from{transform:scaleX(.62) rotate(-6deg)}to{transform:scaleX(1) rotate(5deg)}}.is-playing .element{animation:var(--anim) var(--dur) var(--delay) both cubic-bezier(.22,1,.36,1)}@keyframes enter-up{from{opacity:0;translate:0 35px}to{opacity:var(--target-opacity,1);translate:0 0}}@keyframes enter-down{from{opacity:0;translate:0 -35px}to{opacity:var(--target-opacity,1);translate:0 0}}@keyframes enter-left{from{opacity:0;translate:-40px 0}to{opacity:var(--target-opacity,1);translate:0 0}}@keyframes enter-right{from{opacity:0;translate:40px 0}to{opacity:var(--target-opacity,1);translate:0 0}}@keyframes enter-zoom{from{opacity:0;scale:.85}to{opacity:var(--target-opacity,1);scale:1}}@keyframes enter-out{from{opacity:0;scale:1.15}to{opacity:var(--target-opacity,1);scale:1}}@keyframes enter-fade{from{opacity:0}to{opacity:var(--target-opacity,1)}}dialog{border:1px solid var(--border);border-radius:12px;padding:25px;color:var(--ink);max-width:95vw}dialog::backdrop{background:#1b2a23aa;backdrop-filter:blur(4px)}#preview-dialog{padding:0;width:440px;max-width:95vw;height:94dvh;overflow:hidden}.preview-bar{height:53px;display:flex;align-items:center;gap:7px;padding:10px;background:#fff}.preview-bar strong{font-size:11px;margin-right:auto}.preview-bar button{font-size:10px;padding:7px}#preview-frame{width:100%;height:calc(100% - 53px);border:0;background:#faf6ed}#confirm-dialog{width:350px}#confirm-dialog p{font-size:12px;color:var(--muted)}#toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:#304b3b;color:white;padding:13px 24px;border-radius:8px;z-index:100;font-size:12px}[hidden]{display:none!important}@media(max-width:1150px){.desktop-label{display:none}.workspace{grid-template-columns:220px minmax(315px,1fr) 240px}.topbar{padding:0 16px}.stage-toolbar{padding:0 10px}.stage-toolbar button{padding:6px}.right-panel{padding:4px 13px 20px}}@media(max-width:850px){.workspace{grid-template-columns:190px minmax(315px,1fr);height:auto;min-height:calc(100dvh - 74px)}.right-panel{grid-column:1/-1;display:block;border-top:1px solid var(--border);max-height:460px}.right-panel>#element-properties{max-width:600px;margin:auto}.right-panel .section-properties{max-width:600px;margin:20px auto}.stage{height:calc(100dvh - 74px);min-height:700px}.project-title{margin-left:0;padding-left:13px}.topbar .history{display:none}.topbar{gap:8px}.topbar>.primary{font-size:10px}.brand{font-size:26px}.sidebar.left-panel{max-height:calc(100dvh - 74px)}.stage-footer span:last-child{display:none}}@media(max-width:540px){.workspace{grid-template-columns:1fr}.left-panel{max-height:380px!important;border-bottom:1px solid var(--border)}.tab-body{padding:10px 16px}.tabs{padding-top:0}.section-item{display:inline-flex;width:calc(50% - 6px);margin:3px}.add-grid{grid-template-columns:repeat(4,1fr)}#layers{max-height:150px;overflow:auto}.tip{display:none}.topbar{height:66px;padding:0 10px}.project-title strong{font-size:11px}.project-title span{font-size:8px}.topbar button{padding:8px;font-size:10px}.brand{font-size:23px}.project-title{padding-left:9px}.stage{height:850px}.right-panel{max-height:none}.stage-toolbar>div{gap:5px}.stage-toolbar strong{font-size:10px}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

.element svg{width:100%;height:100%;display:block;pointer-events:none}.element:focus-visible{outline:2px solid #526a58}#template-dialog{width:390px}#template-dialog p{font-size:12px;color:#738069;line-height:1.8}
.resize-handle{position:absolute;right:-7px;bottom:-7px;width:14px;height:14px;border:2px solid #526a58;background:#fff;border-radius:3px;cursor:nwse-resize;pointer-events:auto;z-index:2}.element.selected::after{display:none}.element .visual{transform-origin:50% 90%}

.element.selected{z-index:auto!important}#asset-dialog{width:690px;max-height:85dvh;padding:0;overflow:auto}#asset-dialog .preview-bar{position:sticky;top:0;z-index:1}#asset-dialog .preview-bar strong{margin-right:auto}.asset-intro{padding:10px 22px;font-size:12px;color:#738069}#asset-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;padding:10px 20px 24px}#asset-grid button{padding:8px;min-width:0;background:#f1efe5}#asset-grid button>span{display:flex;align-items:center;justify-content:center;height:125px;overflow:hidden;background:#e5e5d8}#asset-grid svg,#asset-grid img{display:block;width:100%;height:100%;object-fit:contain}#asset-grid button small{display:block;font-size:9px;line-height:1.4;margin-top:7px}@media(max-width:540px){#asset-grid{grid-template-columns:repeat(3,minmax(0,1fr));padding:10px}#asset-grid button>span{height:100px}}

#watercolor-update{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 15px;background:#f5eadb;color:#816a4c;font-size:10px}#watercolor-update button{font-size:10px;white-space:nowrap}#asset-grid img{object-fit:contain}#asset-grid button small{min-height:25px}
#asset-grid button[data-raster]{order:0}#asset-grid button[data-art]{order:1}

/* Paper shields keep text legible without flattening the surrounding garden. */
.element .paper,.element .paper-arch{border-radius:12px;border:1px solid #b9a88055;box-shadow:0 5px 24px #403d2b12;outline:1px solid #b9a88033;outline-offset:-8px}
.element .paper-arch{border-radius:145px 145px 12px 12px}
.element .text{max-height:100%;}

@font-face{font-family:'Great Vibes';src:url('assets/great-vibes.ttf');font-display:swap}@font-face{font-family:'Sacramento';src:url('assets/sacramento.ttf');font-display:swap}@font-face{font-family:'Cormorant Garamond';src:url('assets/cormorant-garamond.ttf');font-display:swap}@font-face{font-family:'Playfair Display';src:url('assets/playfair-display.ttf');font-display:swap}@font-face{font-family:'Montserrat';src:url('assets/montserrat.ttf');font-display:swap}@font-face{font-family:'Lato';src:url('assets/lato.ttf');font-display:swap}
.template-picker{padding-bottom:12px;border-bottom:1px solid var(--border)}.template-picker label{margin-top:0}.selection-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding:10px 14px;background:#fff;border-bottom:1px solid var(--border)}.selection-toolbar>span{font-size:11px;color:#697261;margin-right:auto}.selection-toolbar button{font-size:11px;padding:7px 9px}.selection-toolbar label{display:flex;align-items:center;gap:6px;margin:0}.selection-toolbar select{margin:0;width:auto;padding:6px}.alignment-buttons{display:flex;flex-wrap:wrap;gap:4px}.element.selected{outline:2px solid #7456b0}.layer.active{border-color:#ad98d4;background:#f2edf9}.selection-toolbar button:disabled{opacity:.4;cursor:default}

.font-preview{font-size:24px;line-height:1.4;padding:14px 8px;border:1px solid var(--border);border-radius:6px;background:#faf8f0;text-align:center}

#canvas .selection-box{pointer-events:none;outline:1.5px solid #7456b0;z-index:9999!important;background:transparent}#canvas .selection-box .resize-handle{pointer-events:auto;border-color:#7456b0}

.layer-control{padding:4px 6px;font-size:12px;flex:none;border-color:transparent;background:transparent}.layer-name{min-width:0}.layer small{font-size:8px}.layer-control:hover{background:#e5e7df}#layer-search{margin-bottom:10px}.inline-editing{cursor:text!important;z-index:10000!important}.inline-editing .visual{pointer-events:auto;animation:none!important}.inline-editing .text{pointer-events:auto;user-select:text;cursor:text;min-height:100%;outline:2px solid #7456b0;background:#fff8;overflow:visible}.inline-editing .resize-handle{display:none}.animation-settings{border-top:1px solid var(--border);margin-top:15px;padding-top:12px}.animation-settings summary{cursor:pointer;font-size:12px;font-weight:bold}#edit-text{margin:12px 0;font-size:12px}

.quick-text{display:flex;flex-wrap:wrap;align-items:center;gap:5px;padding:8px 14px;background:#fff;border-bottom:1px solid var(--border)}.quick-text select{width:145px;margin:0;padding:7px}.quick-text input{width:58px;margin:0;padding:7px}.quick-text button{font-size:11px;padding:7px}.quick-text button[aria-pressed=true]{background:#e7def5;border-color:#9a80bf}.position-settings{margin:12px 0;border:1px solid var(--border);padding:10px;border-radius:6px}.position-settings summary{font-size:12px;cursor:pointer}.text{max-width:100%}

@media(min-width:851px){body.editor-app{height:100dvh;overflow:hidden}.workspace{min-height:0;grid-template-rows:minmax(0,1fr)}.stage{height:100%;min-height:0;overflow:hidden}.sidebar{height:100%;min-height:0}.canvas-scroll{min-height:0}}

.number-control{display:flex;align-items:center;gap:8px;min-width:0;margin-top:6px}.number-control input[type=range]{flex:1;min-width:40px;width:0;padding:0;margin:0;accent-color:#7456b0;cursor:pointer;border:0;background:transparent}.number-control input[type=number]{width:66px;flex:none;margin:0;padding:7px 5px}.quick-text .number-control{width:155px;margin:0}.alignment-buttons button,[data-text-align]{min-width:32px;font-size:18px!important;padding:4px 8px!important}

.alignment-buttons button,[data-text-align]{display:inline-flex;align-items:center;justify-content:center;height:34px}.number-control input[type=range]{min-height:24px}[data-text-align][aria-pressed=true]{background:#e7def5;border-color:#9a80bf}

@media(max-width:850px){.topbar .history{display:flex;margin-left:auto;gap:2px}.topbar .history button{font-size:18px;padding:4px}}

#shortcut-dialog{width:610px;max-height:85dvh;overflow:auto}#shortcut-dialog p{font-size:12px;color:var(--muted)}#shortcut-dialog dl{display:grid;grid-template-columns:1fr 1fr;gap:12px;font-size:12px}#shortcut-dialog dd{margin:0}kbd{font:11px monospace;background:#f1edf6;border:1px solid #ded7e7;border-radius:4px;padding:4px 6px;display:inline-block}

#preview-dialog{height:92dvh;padding:0;overflow:hidden;width:440px;max-width:96vw}#preview-dialog.desktop-preview{width:1320px}.preview-bar{min-height:58px;flex-wrap:wrap;gap:6px}.preview-mode-label{font-size:11px;display:flex;align-items:center;gap:5px}.preview-mode-label select{padding:5px;width:auto}#preview-viewport{width:100%;height:calc(100% - 64px);overflow:hidden;display:flex;justify-content:center}#preview-frame{flex:none;max-width:none;border:0;transform-origin:top center;height:100%}

.access-locked>.topbar,.access-locked>.workspace{display:none}.access-gate{max-width:620px;margin:12vh auto;padding:28px;display:flex;flex-direction:column;align-items:flex-start;gap:22px}.access-gate h1{font:36px/1.3 Milonga,serif}.access-gate .button{padding:12px 20px;border-radius:8px;text-decoration:none}.cloud-projects{border-bottom:1px solid var(--border);padding-bottom:20px;margin-bottom:25px}

#photo-controls{padding:14px 0;display:grid;gap:10px}#photo-controls label{display:grid;gap:6px}.crop-active .element.selected{cursor:grab!important}.crop-active .selected .resize-handle{display:none}.photo-frame img{pointer-events:none}#canvas .photo-placeholder{cursor:copy}#canvas.crop-active .selected{outline:3px solid #bb8f43}
.access-pending #access-gate>:not(.brand){visibility:hidden}.access-pending #access-gate::after{content:"";display:block;width:240px;max-width:70vw;height:130px;border-radius:12px;background:#e4e9de;position:absolute;top:180px;left:50%;transform:translateX(-50%)}
.editor-flow{display:flex;gap:12px;align-items:center;font:11px Arial;color:#77836f}.editor-flow [aria-current=step]{color:#344c3c;font-weight:700}.editor-flow span+span:before{content:'›';padding-right:12px;color:#a4af9b}.advanced-export{margin-top:24px}.advanced-export summary{font-size:13px;cursor:pointer;margin-bottom:16px}.topbar #continue-to-guests{white-space:nowrap}@media(max-width:1200px){.editor-flow{display:none}}@media(max-width:650px){.topbar #continue-to-guests{font-size:11px;padding:10px;max-width:175px;white-space:normal}}

.rangkai-page-loader{display:none;position:fixed;inset:0;z-index:10000;background:#faf8f2;place-items:center}.account-pending .rangkai-page-loader,.orders-pending .rangkai-page-loader,.access-pending .rangkai-page-loader{display:grid!important}.orders-unavailable .rangkai-page-loader{display:none!important}.rangkai-loading-logo{font:clamp(36px,6vw,56px)/1.2 Georgia,serif;color:#3e5144;animation:rangkai-pulse 2.4s ease-in-out infinite}.rangkai-loading-logo i{font-style:normal;font-size:.7em;color:#a68652}.account-pending .dashboard-main>.rangkai-page-loader,.orders-pending .account-page>.rangkai-page-loader{display:grid!important}.access-pending #access-gate::after{display:none}@keyframes rangkai-pulse{0%,100%{opacity:.55;transform:scale(.98)}50%{opacity:1;transform:scale(1.025)}}@media(prefers-reduced-motion:reduce){.rangkai-loading-logo{animation:none}}

#preview-dialog[open]{display:flex;flex-direction:column}#preview-dialog .preview-bar{flex:none;background:#fff;z-index:2;min-height:64px}#preview-viewport{flex:1;min-height:0;height:auto}#close-preview{min-height:44px;flex-shrink:0;margin-left:auto}body:has(dialog[open]){overflow:hidden}
@media(max-width:650px){.topbar{height:auto;min-height:66px;flex-wrap:wrap;padding:10px;gap:8px}.project-title{margin-left:0;min-width:0;flex:1}.project-title strong{overflow:hidden;text-overflow:ellipsis;max-width:140px;white-space:nowrap}.topbar .history{margin-left:0}.topbar #continue-to-guests{max-width:none;width:100%;order:10}.workspace{grid-template-columns:minmax(0,1fr);height:auto}.stage{min-width:0;height:75dvh}.stage-toolbar{padding:8px;flex-wrap:wrap;height:auto;min-height:58px}.stage-toolbar>div{flex-wrap:wrap}.canvas-scroll{padding:20px 8px}.right-panel,.left-panel{min-width:0;max-height:55dvh}.tabs{position:sticky;top:0;background:white;z-index:2}input,select,textarea{font-size:16px}#preview-dialog,#preview-dialog.desktop-preview{width:100%;max-width:100%;height:100dvh;max-height:100dvh;inset:0;margin:0;border:0;border-radius:0;padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom)}#preview-dialog .preview-bar{display:grid;grid-template-columns:1fr auto auto;padding:8px;gap:6px}#preview-dialog .preview-bar>strong{font-size:12px}#preview-dialog .preview-mode-label{grid-row:2;grid-column:1/-1;margin:0}#preview-dialog .preview-bar button{font-size:12px;min-height:44px}}
